diff --git a/.changes/extensions/intellij/0.0.34.md b/.changes/extensions/intellij/0.0.34.md new file mode 100644 index 000000000..d4dc58b80 --- /dev/null +++ b/.changes/extensions/intellij/0.0.34.md @@ -0,0 +1,8 @@ +## 0.0.34 - 2024-03-03 +### Added +* diff context provider +### Changed +* Allow LLM servers to handle templating +### Fixed +* Fix a few context providers / slash commands +* Fixed issues preventing proper extension startup diff --git a/.changes/extensions/intellij/0.0.38.md b/.changes/extensions/intellij/0.0.38.md new file mode 100644 index 000000000..6c42fc737 --- /dev/null +++ b/.changes/extensions/intellij/0.0.38.md @@ -0,0 +1,4 @@ +## 0.0.38 - 2024-03-15 +### Added +* Remote config server support +* Autocomplete support in JetBrains diff --git a/.changes/extensions/intellij/0.0.42.md b/.changes/extensions/intellij/0.0.42.md new file mode 100644 index 000000000..dbcdd3fab --- /dev/null +++ b/.changes/extensions/intellij/0.0.42.md @@ -0,0 +1,7 @@ +## 0.0.42 - 2024-04-12 +### Added +* Inline cmd/ctrl+I in JetBrains +### Fixed +* Fixed character encoding error causing display issues +* Fixed error causing input to constantly demand focus +* Fixed automatic reloading of config.json diff --git a/.changes/extensions/intellij/v0.0.1.md b/.changes/extensions/intellij/v0.0.1.md new file mode 100644 index 000000000..8cf2b6b68 --- /dev/null +++ b/.changes/extensions/intellij/v0.0.1.md @@ -0,0 +1,5 @@ +## v0.0.1 - 2023-09-01 + +### Added + +- Initial scaffold created from [IntelliJ Platform Plugin Template](https://github.com/JetBrains/intellij-platform-plugin-template) diff --git a/.changes/extensions/intellij/v0.0.19.md b/.changes/extensions/intellij/v0.0.19.md new file mode 100644 index 000000000..5d76c7d7e --- /dev/null +++ b/.changes/extensions/intellij/v0.0.19.md @@ -0,0 +1,5 @@ +## v0.0.19 - 2023-11-19 + +### Changed + +- migrated to .json config file format diff --git a/.changes/extensions/intellij/v0.0.21.md b/.changes/extensions/intellij/v0.0.21.md new file mode 100644 index 000000000..7933cd1b4 --- /dev/null +++ b/.changes/extensions/intellij/v0.0.21.md @@ -0,0 +1,5 @@ +## v0.0.21 - 2023-12-05 + +### Added + +- updated to match latest VS Code updates diff --git a/.changes/extensions/intellij/v0.0.25.md b/.changes/extensions/intellij/v0.0.25.md new file mode 100644 index 000000000..67da2d004 --- /dev/null +++ b/.changes/extensions/intellij/v0.0.25.md @@ -0,0 +1,5 @@ +## v0.0.25 - 2023-12-25 + +### Changed + +- Intellij extension no longer relies on the Continue Python server diff --git a/.changes/extensions/intellij/v0.0.26.md b/.changes/extensions/intellij/v0.0.26.md new file mode 100644 index 000000000..1ef77ba62 --- /dev/null +++ b/.changes/extensions/intellij/v0.0.26.md @@ -0,0 +1,5 @@ +## v0.0.26 - 2023-12-28 +### Added +* auto-reloading of config on save +### Fixed +* Fixed /edit bug for versions without Python server diff --git a/.changes/extensions/vscode/0.8.14.md b/.changes/extensions/vscode/0.8.14.md new file mode 100644 index 000000000..d42d9640c --- /dev/null +++ b/.changes/extensions/vscode/0.8.14.md @@ -0,0 +1,10 @@ +## 0.8.14 - 2024-03-03 +### Added +* Image support +* Full-text search index for retrieval +* Docs context provider +* CodeLlama-70b support +### Changed +* config.ts only runs in NodeJS, not browser +### Fixed +* Fixed proxy setting in config.json diff --git a/.changes/extensions/vscode/0.8.15.md b/.changes/extensions/vscode/0.8.15.md new file mode 100644 index 000000000..0bee662f3 --- /dev/null +++ b/.changes/extensions/vscode/0.8.15.md @@ -0,0 +1,3 @@ +## 0.8.15 - 2024-03-05 +### Added +* Tab-autocomplete in beta diff --git a/.changes/extensions/vscode/0.8.24.md b/.changes/extensions/vscode/0.8.24.md new file mode 100644 index 000000000..62c32d5e5 --- /dev/null +++ b/.changes/extensions/vscode/0.8.24.md @@ -0,0 +1,5 @@ +## 0.8.24 - 2024-04-12 +### Added +* Support for improved retrieval models (Voyage embeddings/reranking) +* New @code context provider +* Personal usage analytics diff --git a/.changes/extensions/vscode/0.8.40.md b/.changes/extensions/vscode/0.8.40.md new file mode 100644 index 000000000..e273a98df --- /dev/null +++ b/.changes/extensions/vscode/0.8.40.md @@ -0,0 +1,12 @@ +## 0.8.40 - 2024-07-02 +### Added +* Support for Gemini 1.5 Pro +* Link to code in the sidebar when using codebase retrieval +* Smoother onboarding experience +* .prompt files, a way of saving and sharing slash commands +* Support for Claude 3.5 Sonnet, Deepseek Coder v2, and other new models +* Support for comments in config.json +* Specify multiple autocomplete models and switch between them +* Improved bracket matching strategy reduces noisy completions +### Fixed +* Numerous reliability upgrades to codebase indexing diff --git a/.changes/extensions/vscode/v0.5.0.md b/.changes/extensions/vscode/v0.5.0.md new file mode 100644 index 000000000..7df6df9ee --- /dev/null +++ b/.changes/extensions/vscode/v0.5.0.md @@ -0,0 +1,9 @@ +## v0.5.0 - 2023-11-09 + +### Added + +- Codebase Retrieval: Use /codebase or cmd+enter and Continue will automatically gather the most important context + +### Changed + +- Switch from Websockets to Socket.io diff --git a/.changes/extensions/vscode/v0.6.0.md b/.changes/extensions/vscode/v0.6.0.md new file mode 100644 index 000000000..ee58a295c --- /dev/null +++ b/.changes/extensions/vscode/v0.6.0.md @@ -0,0 +1,11 @@ +## v0.6.0 - 2023-11-10 + +### Added + +- Full screen mode +- StackOverflow slash command to augment with web search +- VS Code context menus: right click to add code to context, debug the terminal, or share your Continue session + +### Fixed + +- Reliability improvements to JetBrains by bringing up-to-date with the socket.io refactor diff --git a/.changes/extensions/vscode/v0.6.16.md b/.changes/extensions/vscode/v0.6.16.md new file mode 100644 index 000000000..e5d7e491e --- /dev/null +++ b/.changes/extensions/vscode/v0.6.16.md @@ -0,0 +1,6 @@ +## v0.6.16 - 2023-12-25 + +### Changed + +- Context items are now kept around as a part of past messages, instead of staying at the main input +- No more Python server - Continue runs entirely in Typescript diff --git a/.changes/extensions/vscode/v0.6.19.md b/.changes/extensions/vscode/v0.6.19.md new file mode 100644 index 000000000..d338fbf43 --- /dev/null +++ b/.changes/extensions/vscode/v0.6.19.md @@ -0,0 +1,11 @@ +## v0.6.19 - 2024-01-05 + +### Added + +- support for .continuerc.json in root of workspace to override config.json +- Inline context providers +- cmd+shift+L with new diff streaming UI for edits + +### Changed + +- Allow certain LLM servers to handle templating diff --git a/.changes/extensions/vscode/v0.6.4.md b/.changes/extensions/vscode/v0.6.4.md new file mode 100644 index 000000000..9194b537d --- /dev/null +++ b/.changes/extensions/vscode/v0.6.4.md @@ -0,0 +1,5 @@ +## v0.6.4 - 2023-11-19 + +### Changed + +- migrated to .json config file format diff --git a/.changes/extensions/vscode/v0.8.1.md b/.changes/extensions/vscode/v0.8.1.md new file mode 100644 index 000000000..1a7a061ac --- /dev/null +++ b/.changes/extensions/vscode/v0.8.1.md @@ -0,0 +1,9 @@ +## v0.8.1 - 2024-01-08 + +### Added + +- disableSessionTitles option in config.json + +### Changed + +- Use Ollama /chat endpoint instead of raw completions by default, and /show endpoint to gather model parameters like context length and stop tokens diff --git a/.changes/extensions/vscode/v0.8.2.md b/.changes/extensions/vscode/v0.8.2.md new file mode 100644 index 000000000..40ada41a6 --- /dev/null +++ b/.changes/extensions/vscode/v0.8.2.md @@ -0,0 +1,8 @@ +## v0.8.2 - 2024-01-23 +### Added +* Add codellama and gemini to free trial, using new server +* Local codebase syncing and embeddings using LanceDB +* Improved VS Code theme matching +### Changed +* Updates to packaging to download native modules for current platform (lancedb, sqlite, onnxruntime, tree-sitter wasms) +* Context providers now run from the extension side (in Node.js instead of browser javascript) diff --git a/.changes/header.tpl.md b/.changes/header.tpl.md new file mode 100644 index 000000000..811d6f896 --- /dev/null +++ b/.changes/header.tpl.md @@ -0,0 +1,5 @@ +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), +adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html), +and is generated by [Changie](https://github.com/miniscruff/changie). diff --git a/.changes/server/v0.1.104.md b/.changes/server/v0.1.104.md new file mode 100644 index 000000000..8cd892433 --- /dev/null +++ b/.changes/server/v0.1.104.md @@ -0,0 +1,9 @@ +## v0.1.104 - 2023-12-25 + +### Added + +- Continuous and faster syncing of codebase index + +### Removed + +- No longer using Continue Python server diff --git a/.changes/server/v0.1.99.md b/.changes/server/v0.1.99.md new file mode 100644 index 000000000..57422d151 --- /dev/null +++ b/.changes/server/v0.1.99.md @@ -0,0 +1,5 @@ +## v0.1.99 - 2023-11-19 + +### Changed + +- migrated to .json config file format diff --git a/.changes/unreleased/.gitkeep b/.changes/unreleased/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/.changie.yaml b/.changie.yaml new file mode 100644 index 000000000..7a11e254d --- /dev/null +++ b/.changie.yaml @@ -0,0 +1,35 @@ +changesDir: .changes +unreleasedDir: unreleased +headerPath: header.tpl.md +changelogPath: CHANGELOG.md +versionExt: md +versionFormat: '## {{.Version}} - {{.Time.Format "2006-01-02"}}' +kindFormat: "### {{.Kind}}" +changeFormat: "* {{.Body}}" +kinds: + - label: Added + auto: minor + - label: Changed + auto: major + - label: Deprecated + auto: minor + - label: Removed + auto: major + - label: Fixed + auto: patch + - label: Security + auto: patch +newlines: + afterChangelogHeader: 1 + beforeChangelogVersion: 1 + endOfVersion: 1 +envPrefix: CHANGIE_ + +projects: + - label: extensions/intellij + key: extensions/intellij + changelog: extensions/intellij/CHANGELOG.md + + - label: extensions/vscode + key: extensions/vscode + changelog: extensions/vscode/CHANGELOG.md diff --git a/.continueignore b/.continueignore new file mode 100644 index 000000000..7e0d0c115 --- /dev/null +++ b/.continueignore @@ -0,0 +1,7 @@ +**/*.run.xml +docs/docs/languages +.changes/ +.idea/ +.vscode/ +.archive/ +**/*.scm \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml new file mode 100644 index 000000000..348fe493d --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -0,0 +1,70 @@ +--- +name: 🐛 Bug report +description: Create a report to help us fix your bug +labels: [bug] +body: + - type: markdown + attributes: + value: | + Thanks for taking the time to report this bug! This will help us find the cause of the problem quickly with less back-and-forth required. + - type: checkboxes + attributes: + label: Before submitting your bug report + options: + - label: I believe this is a bug. I'll try to join the [Continue Discord](https://discord.gg/NWtdYexhMs) for questions + required: false + - label: I'm not able to find an [open issue](https://github.com/continuedev/continue/issues?q=is%3Aopen+is%3Aissue) that reports the same bug + required: false + - label: I've seen the [troubleshooting guide](https://docs.continue.dev/troubleshooting) on the Continue Docs + required: false + - type: textarea + attributes: + label: Relevant environment info + description: | + Feel free to omit any info that is not relevant to your issue. + + - **OS**: e.g. macOS 14.2.1 + - **Continue**: e.g. v0.9.4 + - **IDE**: e.g. VSCode 1.85.1 + - Include also your LLM Model if it is relevant to your issue + - **Model**: e.g. Ollama v0.1.19 + - The contents of your config.json file (e.g. `~/.continue/config.json` on macOS) + value: | + - OS: + - Continue: + - IDE: + - Model: + - config.json: + ```json + + ``` + render: Markdown + validations: + required: false + - type: textarea + attributes: + label: Description + description: | + Please provide a clear and concise description of the bug + placeholder: | + Short description + validations: + required: false + - type: textarea + attributes: + label: To reproduce + description: Steps to reproduce the problem. If possible, include a gif, screenshot, or video to better illustrate. + placeholder: | + 1. Go to … + 2. Click on … + 3. Scroll down to … + 4. See error + validations: + required: false + - type: textarea + id: logs + attributes: + label: Log output + description: | + Please refer to the [troubleshooting guide](https://docs.continue.dev/troubleshooting) in the Continue Docs for instructions on obtaining the logs. Copy either the relevant lines or the last 100 lines or so. + render: Shell diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 000000000..fe243ae3f --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,5 @@ +blank_issues_enabled: false +contact_links: + - name: Something else? Message us on Discord :) + url: https://discord.gg/vapESyrFmJ + about: Join our Discord to ask questions, share thoughts, and more! diff --git a/.github/ISSUE_TEMPLATE/improvement_suggestion.yml b/.github/ISSUE_TEMPLATE/improvement_suggestion.yml new file mode 100644 index 000000000..d1e43cee9 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/improvement_suggestion.yml @@ -0,0 +1,35 @@ +--- +name: 💪 Improvement suggestion +description: Share how you think Continue could be better +labels: [enhancement] +body: + - type: markdown + attributes: + value: | + Thanks for taking the time to share your perspective! We are keen to hear how you think Continue could work better for you. + - type: checkboxes + id: checkboxes + attributes: + label: Validations + description: Before submitting your suggested improvement + options: + - label: I believe this is a way to improve. I'll try to join the [Continue Discord](https://discord.gg/NWtdYexhMs) for questions + required: false + - label: I'm not able to find an [open issue](https://github.com/continuedev/continue/issues?q=is%3Aopen+is%3Aissue+label%3Aenhancement) that requests the same enhancement + required: false + - type: textarea + attributes: + label: Problem + description: Please describe the problem you are aiming to solve with this suggested improvement. If applicable, add a screenshot, gif, or video to better convey your idea. + placeholder: | + Short description + validations: + required: false + - type: textarea + attributes: + label: Solution + description: Please describe what you might want to happen to address this issue. If applicable, add a screenshot, gif, or video to better convey your idea. + placeholder: | + Short description + validations: + required: false diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 000000000..0300aafce --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,8 @@ +version: 2 +updates: + - package-ecosystem: github-actions + directory: "/" + schedule: + interval: daily + ignore: + - dependency-name: dtolnay/rust-toolchain diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 100644 index 000000000..bad9f55f0 --- /dev/null +++ b/.github/pull_request_template.md @@ -0,0 +1,16 @@ +## Description + +[ What changed? Feel free to be brief. ] + +## Checklist + +- [ ] The base branch of this PR is `dev`, rather than `main` +- [ ] The relevant docs, if any, have been updated or created + +## Screenshots + +[ "For visual changes, include screenshots." ] + +## Testing + +[ For new or modified features, provide testing instructions. ] diff --git a/.github/workflows/README.md b/.github/workflows/README.md new file mode 100644 index 000000000..f22d06955 --- /dev/null +++ b/.github/workflows/README.md @@ -0,0 +1,19 @@ +# Deployment Process + +## preview + +When merging to `preview`: + +- the VS Code extension along with Rust extension is built and uploaded as an artifact +- all of the artifacts are downloaded and pushed to the store/registry all at once, as full releases. +- the version is bumped and this change is commited to preview +- in the future, the Intellij extension will be built and uploaded to the marketplace here + +## main + +When merging to `main`: + +- the VS Code extension along with Rust extension is built and uploaded as an artifact +- all of the artifacts are downloaded and pushed to the store/registry all at once, as full releases. +- the version is bumped and this change is commited to main +- in the future, the Intellij extension will be built and uploaded to the marketplace here diff --git a/.github/workflows/build_all.yml b/.github/workflows/build_all.yml index 918d852e4..516c01f2f 100644 --- a/.github/workflows/build_all.yml +++ b/.github/workflows/build_all.yml @@ -1,9 +1,9 @@ name: Build Workflow on: - push: - branches: - - main + release: + types: + - published jobs: build: @@ -15,8 +15,6 @@ jobs: include: - os: windows-latest arch: win32-x64 - - os: windows-latest - arch: win32-arm64 - os: macos-12 arch: darwin-x64 - os: macos-14 diff --git a/.github/workflows/jetbrains-build.yaml b/.github/workflows/jetbrains-build.yaml new file mode 100644 index 000000000..ec71c7d4e --- /dev/null +++ b/.github/workflows/jetbrains-build.yaml @@ -0,0 +1,476 @@ +# GitHub Actions Workflow is created for testing and preparing the plugin release in the following steps: +# - Validate Gradle Wrapper. +# - Run 'test' and 'verifyPlugin' tasks. +# - Run Qodana inspections. +# - Run the 'buildPlugin' task and prepare artifact for further tests. +# - Run the 'runPluginVerifier' task. +# - Create a draft release. +# +# The workflow is triggered on push and pull_request events. +# +# GitHub Actions reference: https://help.github.com/en/actions +# +## JBIJPPTPL + +name: Build +on: + # Trigger the workflow on pushes to only the 'main' branch (this avoids duplicate checks being run e.g., for dependabot pull requests) + push: + branches: [main, preview] + # Trigger the workflow on any pull request + # pull_request: + +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true + +defaults: + run: + working-directory: ./extensions/intellij + +jobs: + # Prepare environment and build the plugin + build: + name: Build + runs-on: macos-latest + outputs: + version: ${{ steps.properties.outputs.version }} + changelog: ${{ steps.properties.outputs.changelog }} + pluginVerifierHomeDir: ${{ steps.properties.outputs.pluginVerifierHomeDir }} + steps: + # Check out current repository + - name: Fetch Sources + uses: actions/checkout@v4 + + # Validate wrapper + - name: Gradle Wrapper Validation + uses: gradle/actions/wrapper-validation@v3 + + # Set up Java environment for the next steps + - name: Setup Java + uses: actions/setup-java@v4 + with: + distribution: zulu + java-version: 17 + + # Setup Gradle + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v3 + with: + gradle-home-cache-cleanup: true + + # Set environment variables + - name: Export Properties + id: properties + shell: bash + run: | + PROPERTIES="$(./gradlew properties --console=plain -q)" + VERSION="$(echo "$PROPERTIES" | grep "^version:" | cut -f2- -d ' ')" + # CHANGELOG="$(./gradlew getChangelog --unreleased --no-header --console=plain -q)" + CHANGELOG="" + + echo "version=$VERSION" >> $GITHUB_OUTPUT + echo "pluginVerifierHomeDir=~/.pluginVerifier" >> $GITHUB_OUTPUT + + echo "changelog<> $GITHUB_OUTPUT + echo "$CHANGELOG" >> $GITHUB_OUTPUT + echo "EOF" >> $GITHUB_OUTPUT + + ./gradlew listProductsReleases # prepare list of IDEs for Plugin Verifier + + # Setup Node.js + - name: Use Node.js from .nvmrc + uses: actions/setup-node@v4 + with: + node-version-file: ".nvmrc" + + # Cache node_modules + - name: Cache core node_modules + uses: actions/cache@v3 + with: + path: core/node_modules + key: ${{ runner.os }}-node-${{ hashFiles('core/package-lock.json') }} + + - name: Cache binary node_modules + uses: actions/cache@v3 + with: + path: binary/node_modules + key: ${{ runner.os }}-node-${{ hashFiles('binary/package-lock.json') }} + + - name: Cache gui node_modules + uses: actions/cache@v3 + with: + path: gui/node_modules + key: ${{ runner.os }}-node-${{ hashFiles('gui/package-lock.json') }} + + # npm install core + - name: Install core node_modules + run: | + cd ../../core + npm ci + + # npm install binary + - name: Install core node_modules + run: | + cd ../../binary + npm ci + + # npm install gui + - name: Install gui node_modules + run: | + cd ../../gui + npm ci + + # build gui + - name: Build gui + run: | + cd ../../gui + npm run build + + # Run prepackage.js script + - name: Run prepackage script + run: | + cd ../../extensions/vscode + npm ci + npm run prepackage + env: + # https://github.com/microsoft/vscode-ripgrep/issues/9#issuecomment-643965333 + GITHUB_TOKEN: ${{ secrets.CI_GITHUB_TOKEN }} + + # Build binaries + - name: Build the binaries + run: | + cd ../../binary + npm run build + + # Build plugin + - name: Build plugin + run: ./gradlew buildPlugin + + # Prepare plugin archive content for creating artifact + - name: Prepare Plugin Artifact + id: artifact + shell: bash + run: | + cd ${{ github.workspace }}/extensions/intellij/build/distributions + FILENAME=`ls *.zip` + unzip "$FILENAME" -d content + + echo "filename=${FILENAME:0:-4}" >> $GITHUB_OUTPUT + + # Store already-built plugin as an artifact for downloading + - name: Upload artifact + uses: actions/upload-artifact@v4 + with: + name: ${{ steps.artifact.outputs.filename }} + path: ./extensions/intellij/build/distributions/content/*/* + + # Upload binaries as artifacts + - name: Upload artifact (darwin-arm64) + uses: actions/upload-artifact@v4 + with: + name: continue-binary-darwin-arm64 + path: ./binary/bin/darwin-arm64/ + + - name: Upload artifact (darwin-x64) + uses: actions/upload-artifact@v4 + with: + name: continue-binary-darwin-x64 + path: ./binary/bin/darwin-x64/ + + - name: Upload artifact (win32-x64) + uses: actions/upload-artifact@v4 + with: + name: continue-binary-win32-x64 + path: ./binary/bin/win32-x64/ + + - name: Upload artifact (linux-arm64) + uses: actions/upload-artifact@v4 + with: + name: continue-binary-linux-arm64 + path: ./binary/bin/linux-arm64/ + + - name: Upload artifact (linux-x64) + uses: actions/upload-artifact@v4 + with: + name: continue-binary-linux-x64 + path: ./binary/bin/linux-x64/ + + test-binaries: + needs: build + strategy: + matrix: + include: + - os: windows-latest + platform: win32 + arch: x64 + npm_config_arch: x64 + - os: ubuntu-latest + platform: linux + arch: x64 + npm_config_arch: x64 + # arm64 not actually supported by GitHub + # - os: ubuntu-latest + # platform: linux + # arch: arm64 + # npm_config_arch: arm64 + - os: macos-12 + platform: darwin + arch: x64 + npm_config_arch: x64 + - os: macos-latest + platform: darwin + arch: arm64 + npm_config_arch: arm64 + runs-on: ${{ matrix.os }} + steps: + # 1. Check-out repository + - name: Check-out repository + uses: actions/checkout@v4 + + # 2. Install npm dependencies + - name: Use Node.js from .nvmrc + uses: actions/setup-node@v4 + with: + node-version-file: ".nvmrc" + + - name: Cache core node_modules + uses: actions/cache@v3 + with: + path: core/node_modules + key: ${{ runner.os }}-node-${{ hashFiles('core/package-lock.json') }} + + - name: Cache binary node_modules + uses: actions/cache@v3 + with: + path: binary/node_modules + key: ${{ runner.os }}-node-${{ hashFiles('binary/package-lock.json') }} + + - name: Install Core Dependencies + run: | + cd ../../core + npm ci + + - name: Install Binary Dependencies + run: | + cd ../../binary + npm ci + + # Download the binary artifact + - name: Download binary artifact + uses: actions/download-artifact@v4 + with: + name: continue-binary-${{ matrix.platform }}-${{ matrix.arch }} + path: ./binary/bin/${{ matrix.platform }}-${{ matrix.arch }}/ + + # Set execute permissions for the binary (non-Windows) + - name: Set execute permissions + run: | + cd ../../binary/bin/${{ matrix.platform }}-${{ matrix.arch }} + chmod +x continue-binary + chmod +x node_sqlite3.node + chmod +x index.node + chmod +x esbuild + if: ${{ matrix.platform }} != 'win32' + + - name: Copy node_sqlite3.node to necessary location + run: | + cd ../../binary + mkdir build + cp ./bin/${{ matrix.platform }}-${{ matrix.arch }}/node_sqlite3.node ./build/node_sqlite3.node + + # Run tests for binary + - name: Run binary tests + run: | + cd ../../binary + npm run test + + - name: Upload logs + if: ${{ always() }} + uses: actions/upload-artifact@v2 + with: + name: core-logs-${{ matrix.platform }}-${{ matrix.arch }} + path: binary/.continue/logs/core.log + + # Run tests and upload a code coverage report + test: + name: Test + needs: [build] + runs-on: ubuntu-latest + steps: + # Check out current repository + - name: Fetch Sources + uses: actions/checkout@v4 + + # Set up Java environment for the next steps + - name: Setup Java + uses: actions/setup-java@v4 + with: + distribution: zulu + java-version: 17 + + # Setup Gradle + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v3 + with: + gradle-home-cache-cleanup: true + + # Run tests + - name: Run Tests + run: ./gradlew check + + # Collect Tests Result of failed tests + - name: Collect Tests Result + if: ${{ failure() }} + uses: actions/upload-artifact@v4 + with: + name: tests-result + path: ${{ github.workspace }}/extensions/intellij/build/reports/tests + + # Upload the Kover report to CodeCov + # - name: Upload Code Coverage Report + # uses: codecov/codecov-action@v4 + # with: + # files: ${{ github.workspace }}/build/reports/kover/report.xml + + # Run Qodana inspections and provide report + inspectCode: + if: false + name: Inspect code + needs: [build] + runs-on: ubuntu-latest + permissions: + contents: write + checks: write + pull-requests: write + steps: + # Free GitHub Actions Environment Disk Space + - name: Maximize Build Space + uses: jlumbroso/free-disk-space@main + with: + tool-cache: false + large-packages: false + + # Check out current repository + - name: Fetch Sources + uses: actions/checkout@v4 + + # Set up Java environment for the next steps + - name: Setup Java + uses: actions/setup-java@v4 + with: + distribution: zulu + java-version: 17 + + # Run Qodana inspections + - name: Qodana - Code Inspection + uses: JetBrains/qodana-action@v2024.1.5 + with: + cache-default-branch-only: true + + # Run plugin structure verification along with IntelliJ Plugin Verifier + verify: + name: Verify plugin + needs: [build] + runs-on: ubuntu-latest + steps: + # Free GitHub Actions Environment Disk Space + - name: Maximize Build Space + uses: jlumbroso/free-disk-space@main + with: + tool-cache: false + large-packages: false + + # Check out current repository + - name: Fetch Sources + uses: actions/checkout@v4 + + # Set up Java environment for the next steps + - name: Setup Java + uses: actions/setup-java@v4 + with: + distribution: zulu + java-version: 17 + + # Setup Gradle + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v3 + with: + gradle-home-cache-cleanup: true + + # Cache Plugin Verifier IDEs + - name: Setup Plugin Verifier IDEs Cache + uses: actions/cache@v4 + with: + path: ${{ needs.build.outputs.pluginVerifierHomeDir }}/ides + key: plugin-verifier-${{ hashFiles('build/listProductsReleases.txt') }} + + # Run Verify Plugin task and IntelliJ Plugin Verifier tool + - name: Run Plugin Verification tasks + run: ./gradlew runPluginVerifier -Dplugin.verifier.home.dir=${{ needs.build.outputs.pluginVerifierHomeDir }} + + # Collect Plugin Verifier Result + - name: Collect Plugin Verifier Result + if: ${{ always() }} + uses: actions/upload-artifact@v4 + with: + name: pluginVerifier-result + path: ${{ github.workspace }}/build/reports/pluginVerifier + + # Prepare a draft release for GitHub Releases page for the manual verification + # If accepted and published, release workflow would be triggered + releaseDraft: + name: Release draft + if: github.event_name != 'pull_request' + needs: [build, test, test-binaries, verify] + runs-on: ubuntu-latest + permissions: + contents: write + steps: + # Check out current repository + - name: Fetch Sources + uses: actions/checkout@v4 + + - name: Set up Git + run: | + git config --local user.email "action@github.com" + git config --local user.name "GitHub Action" + + - name: Tag the repository + id: tag + run: | + # See https://docs.github.com/en/get-started/using-git/dealing-with-special-characters-in-branch-and-tag-names + TAG=v${{ needs.build.outputs.version }}-jetbrains + echo "$TAG" + echo "tag=$TAG" >> $GITHUB_OUTPUT + git tag -a $TAG -m "Published version $TAG" ${GITHUB_SHA} + git push origin $TAG + + # Remove old release drafts by using the curl request for the available releases with a draft flag + - name: Remove Old Release Drafts + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + gh api repos/{owner}/{repo}/releases \ + --jq '.[] | select(.draft == true) | .id' \ + | xargs -I '{}' gh api -X DELETE repos/{owner}/{repo}/releases/{} + + # Create a new release draft which is not publicly visible and requires manual acceptance + - name: Create Release Draft + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + gh release create "${{ steps.tag.outputs.tag }}" \ + --draft \ + --title "v${{ needs.build.outputs.version }}-jetbrains" \ + --notes "$(cat << 'EOM' + ${{ needs.build.outputs.changelog }} + EOM + )" + + # Download the Gradle build artifact + - name: Download Gradle build artifact + uses: actions/download-artifact@v4 + with: + name: ${{ needs.build.outputs.filename }} + path: ./artifacts diff --git a/.github/workflows/jetbrains-release.yaml b/.github/workflows/jetbrains-release.yaml new file mode 100644 index 000000000..291d9ebef --- /dev/null +++ b/.github/workflows/jetbrains-release.yaml @@ -0,0 +1,182 @@ +# GitHub Actions Workflow created for handling the release process based on the draft release prepared with the Build workflow. +# Running the publishPlugin task requires all following secrets to be provided: PUBLISH_TOKEN, PRIVATE_KEY, PRIVATE_KEY_PASSWORD, CERTIFICATE_CHAIN. +# See https://plugins.jetbrains.com/docs/intellij/plugin-signing.html for more information. + +name: Release +on: + release: + types: [prereleased, released] + +defaults: + run: + working-directory: ./extensions/intellij + +jobs: + check_release_name: + runs-on: ubuntu-latest + outputs: + should_run: ${{ steps.check.outputs.should_run }} + steps: + - id: check + run: | + if [[ "${{ github.event.release.name }}" == *-jetbrains ]]; then + echo "should_run=true" >> $GITHUB_OUTPUT + else + echo "should_run=false" >> $GITHUB_OUTPUT + fi + + # Prepare and publish the plugin to JetBrains Marketplace repository + release: + needs: check_release_name + if: needs.check_release_name.outputs.should_run == 'true' + name: Publish Plugin + runs-on: ubuntu-latest + permissions: + contents: write + pull-requests: write + steps: + # Check out current repository + - name: Fetch Sources + uses: actions/checkout@v4 + with: + ref: ${{ github.event.release.tag_name }} + + # Set up Java environment for the next steps + - name: Setup Java + uses: actions/setup-java@v4 + with: + distribution: zulu + java-version: 17 + + # Setup Gradle + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v3 + with: + gradle-home-cache-cleanup: true + + # Set environment variables + - name: Export Properties + id: properties + shell: bash + run: | + CHANGELOG="$(cat << 'EOM' | sed -e 's/^[[:space:]]*$//g' -e '/./,$!d' + ${{ github.event.release.body }} + EOM + )" + + echo "changelog<> $GITHUB_OUTPUT + echo "$CHANGELOG" >> $GITHUB_OUTPUT + echo "EOF" >> $GITHUB_OUTPUT + + # Setup Node.js + - name: Use Node.js from .nvmrc + uses: actions/setup-node@v4 + with: + node-version-file: ".nvmrc" + + # Cache node_modules + - name: Cache core node_modules + uses: actions/cache@v3 + with: + path: core/node_modules + key: ${{ runner.os }}-node-${{ hashFiles('core/package-lock.json') }} + + - name: Cache binary node_modules + uses: actions/cache@v3 + with: + path: binary/node_modules + key: ${{ runner.os }}-node-${{ hashFiles('binary/package-lock.json') }} + + - name: Cache gui node_modules + uses: actions/cache@v3 + with: + path: gui/node_modules + key: ${{ runner.os }}-node-${{ hashFiles('gui/package-lock.json') }} + + # npm install core + - name: Install core node_modules + run: | + cd ../../core + npm ci + + # npm install binary + - name: Install core node_modules + run: | + cd ../../binary + npm ci + + # npm install gui + - name: Install gui node_modules + run: | + cd ../../gui + npm ci + + # build gui + - name: Build gui + run: | + cd ../../gui + npm run build + + # Run prepackage.js script + - name: Run prepackage script + run: | + cd ../../extensions/vscode + npm ci + npm run prepackage + + # Build binaries + - name: Install core node_modules + run: | + cd ../../binary + npm run build + + # Update Unreleased section with the current release note + - name: Patch Changelog + if: ${{ steps.properties.outputs.changelog != '' }} + env: + CHANGELOG: ${{ steps.properties.outputs.changelog }} + run: | + ./gradlew patchChangelog --release-note="$CHANGELOG" + + # Upload artifact as a release asset + - name: Upload Release Asset + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: gh release upload ${{ github.event.release.tag_name }} ./build/distributions/* + + # Publish the plugin to JetBrains Marketplace + - name: Publish Plugin + env: + PUBLISH_TOKEN: ${{ secrets.JETBRAINS_PUBLISH_TOKEN }} + CERTIFICATE_CHAIN: ${{ secrets.JETBRAINS_CERTIFICATE_CHAIN }} + PRIVATE_KEY: ${{ secrets.JETBRAINS_PRIVATE_KEY }} + PRIVATE_KEY_PASSWORD: ${{ secrets.JETBRAINS_PRIVATE_KEY_PASSWORD }} + run: ./gradlew publishPlugin + + # Create a pull request + - name: Create Pull Request + if: ${{ steps.properties.outputs.changelog != '' }} + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + VERSION="${{ github.event.release.tag_name }}" + BRANCH="changelog-update-$VERSION" + LABEL="release changelog" + + git config user.email "action@github.com" + git config user.name "GitHub Action" + + git checkout -b $BRANCH + git commit -am "Changelog update - $VERSION" + git push --set-upstream origin $BRANCH + + gh label create "$LABEL" \ + --description "Pull requests with release changelog update" \ + --force \ + || true + + gh pr create \ + --title "Changelog update - \`$VERSION\`" \ + --body "Current pull request contains patched \`CHANGELOG.md\` file for the \`$VERSION\` version." \ + --label "$LABEL" \ + --head $BRANCH diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml new file mode 100644 index 000000000..107162244 --- /dev/null +++ b/.github/workflows/main.yaml @@ -0,0 +1,257 @@ +name: Publish Extension + +on: + push: + branches: + - main + pull_request: + types: [closed] + branches: + - main + +jobs: + build: + strategy: + matrix: + include: + - os: windows-latest + platform: win32 + arch: x64 + npm_config_arch: x64 + - os: windows-latest + platform: win32 + arch: arm64 + npm_config_arch: arm + - os: ubuntu-latest + platform: linux + arch: x64 + npm_config_arch: x64 + - os: ubuntu-latest + platform: linux + arch: arm64 + npm_config_arch: arm64 + - os: ubuntu-latest + platform: linux + arch: armhf + npm_config_arch: arm + - os: ubuntu-latest + platform: alpine + arch: x64 + npm_config_arch: x64 + - os: macos-12 # should migrate this to the newer x64 version of macos-14 + platform: darwin + arch: x64 + npm_config_arch: x64 + - os: macos-12 # same here, especially + platform: darwin + arch: arm64 + npm_config_arch: arm64 + runs-on: ${{ matrix.os }} + steps: + # 1. Check-out repository + - name: Check-out repository + uses: actions/checkout@v4 + + - name: Make sure version isn't odd + run: | + cd extensions/vscode + node scripts/versionCheck.js + + # 2. Install npm dependencies + - name: Use Node.js from .nvmrc + uses: actions/setup-node@v4 + with: + node-version-file: ".nvmrc" + + - name: Cache extension node_modules + uses: actions/cache@v3 + with: + path: extensions/vscode/node_modules + key: ${{ runner.os }}-node-${{ hashFiles('extensions/vscode/package-lock.json') }} + + - name: Cache core node_modules + uses: actions/cache@v3 + with: + path: core/node_modules + key: ${{ runner.os }}-node-${{ hashFiles('core/package-lock.json') }} + + - name: Cache gui node_modules + uses: actions/cache@v3 + with: + path: gui/node_modules + key: ${{ runner.os }}-node-${{ hashFiles('gui/package-lock.json') }} + + - name: Install extension Dependencies + run: | + cd extensions/vscode + npm ci + env: + # https://github.com/microsoft/vscode-ripgrep/issues/9#issuecomment-643965333 + GITHUB_TOKEN: ${{ secrets.CI_GITHUB_TOKEN }} + + - name: Install gui Dependencies + run: | + cd gui + npm ci + + - name: Install Core Dependencies + run: | + cd core + npm ci + + # 2.25 Run core tests + - name: Run core tests + run: | + cd core + npm run test + env: + OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} + + # 2.5. Pre package + - name: Set var for environment info + shell: pwsh + run: echo "target=${{ matrix.platform }}-${{ matrix.arch }}" >> $env:GITHUB_ENV + + - name: Prepackage the extension + run: | + cd extensions/vscode + npm run prepackage -- --target ${{ env.target }} + + # 3. Re-install esbuild (for cases that we force installed for another arch in prepackage.js) + - name: Re-install esbuild + run: | + cd extensions/vscode + npm install -f esbuild + + # 4. Run tests for the extension + # - name: Install Xvfb for Linux and run tests + run: | + sudo apt-get install -y xvfb # Install Xvfb + Xvfb :99 & # Start Xvfb + export DISPLAY=:99 # Export the display number to the environment + cd extensions/vscode + npm run test + if: matrix.os == 'ubuntu-latest' + + - name: Run extension tests + run: | + cd extensions/vscode + npm run test + if: matrix.os != 'ubuntu-latest' + + # 5. Package the extension + - name: Package the extension + run: cd extensions/vscode && npx vsce package --no-dependencies --target ${{ env.target }} + + # 6. Upload the .vsix as an artifact + - uses: actions/upload-artifact@v2 + with: + name: ${{ env.target }} + path: "extensions/vscode/*.vsix" + + release: + permissions: + contents: write + runs-on: ubuntu-latest + needs: + - build + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Set up Git + run: | + git config --local user.email "action@github.com" + git config --local user.name "GitHub Action" + + # Download the .vsix artifacts + - uses: actions/download-artifact@v3 + + - name: Tag the repository + id: tag + run: | + # See https://docs.github.com/en/get-started/using-git/dealing-with-special-characters-in-branch-and-tag-names + TAG=v$(grep -o '"version": "[^"]*' extensions/vscode/package.json | cut -d'"' -f4)-vscode + echo "$TAG" + echo "tag=$TAG" >> $GITHUB_OUTPUT + git tag -a $TAG -m "Published version $TAG" ${GITHUB_SHA} + git push origin $TAG + + - name: Release + uses: softprops/action-gh-release@v2 + with: + tag_name: ${{ steps.tag.outputs.tag }} + files: | + alpine-x64/*.vsix + darwin-arm64/*.vsix + darwin-x64/*.vsix + linux-arm64/*.vsix + linux-armhf/*.vsix + linux-x64/*.vsix + win32-x64/*.vsix + win32-arm64/*.vsix + token: ${{ secrets.CI_GITHUB_TOKEN }} + repository: continuedev/continue + + publish: + runs-on: ubuntu-latest + needs: + - build + permissions: + contents: write + steps: + # 0. Setup git + - name: Checkout + uses: actions/checkout@v4 + + - name: Set up Git + run: | + git config --local user.email "action@github.com" + git config --local user.name "GitHub Action" + + - name: Pull latest changes + run: git pull origin main + + # 1. Download the artifacts + - uses: actions/download-artifact@v3 + + # 2. Publish the extension to VS Code Marketplace + - name: Publish to VS Code Marketplace + run: | + cd extensions/vscode + npx vsce publish --packagePath ../../alpine-x64/*.vsix ../../darwin-arm64/*.vsix ../../darwin-x64/*.vsix ../../linux-arm64/*.vsix ../../linux-armhf/*.vsix ../../linux-x64/*.vsix ../../win32-x64/*.vsix ../../win32-arm64/*.vsix + env: + VSCE_PAT: ${{ secrets.VSCE_TOKEN }} + + # 3. Publish the extension to Open VSX Registry + - name: Publish (Open VSX Registry) + continue-on-error: true + run: | + cd extensions/vscode + npx ovsx publish -p ${{ secrets.VSX_REGISTRY_TOKEN }} --packagePath ../../alpine-x64/*.vsix ../../darwin-arm64/*.vsix ../../darwin-x64/*.vsix ../../linux-arm64/*.vsix ../../linux-armhf/*.vsix ../../linux-x64/*.vsix ../../win32-x64/*.vsix ../../win32-arm64/*.vsix + + # 4. Update the package.json version and push changes + # - name: Update version in package.json + # run: | + # cd extensions/vscode + # npm version patch + + # - name: Commit changes + # run: | + # git config --local user.email "action@github.com" + # git config --local user.name "GitHub Action" + # git commit -am "💚 Update package.json version [skip ci]" + + # - name: Push changes + # uses: ad-m/github-push-action@master + # with: + # github_token: ${{ secrets.GITHUB_TOKEN }} + # branch: ${{ github.ref }} + + # 5 Send to Discord Webhook + - name: Discord Commits + uses: Sniddl/discord-commits@1.7 + with: + webhook: ${{ secrets.DISCORD_WEBHOOK }} + template: "avatar-with-link" + include-extras: true diff --git a/.github/workflows/preview.yaml b/.github/workflows/preview.yaml new file mode 100644 index 000000000..a04591c89 --- /dev/null +++ b/.github/workflows/preview.yaml @@ -0,0 +1,241 @@ +name: Publish Preview Extension + +on: + push: + branches: + - preview + +jobs: + build: + strategy: + matrix: + include: + - os: windows-latest + platform: win32 + arch: x64 + npm_config_arch: x64 + - os: windows-latest + platform: win32 + arch: arm64 + npm_config_arch: arm + - os: ubuntu-latest + platform: linux + arch: x64 + npm_config_arch: x64 + - os: ubuntu-latest + platform: linux + arch: arm64 + npm_config_arch: arm64 + - os: ubuntu-latest + platform: linux + arch: armhf + npm_config_arch: arm + - os: ubuntu-latest + platform: alpine + arch: x64 + npm_config_arch: x64 + - os: macos-12 # should migrate this to the newer x64 version of macos-14 + platform: darwin + arch: x64 + npm_config_arch: x64 + - os: macos-12 # same here, especially + platform: darwin + arch: arm64 + npm_config_arch: arm64 + runs-on: ${{ matrix.os }} + steps: + # 1. Check-out repository + - name: Check-out repository + uses: actions/checkout@v4 + + # 2. Install npm dependencies + - name: Use Node.js from .nvmrc + uses: actions/setup-node@v4 + with: + node-version-file: ".nvmrc" + + - name: Cache extension node_modules + uses: actions/cache@v3 + with: + path: extensions/vscode/node_modules + key: ${{ runner.os }}-node-${{ hashFiles('extensions/vscode/package-lock.json') }} + + - name: Cache core node_modules + uses: actions/cache@v3 + with: + path: core/node_modules + key: ${{ runner.os }}-node-${{ hashFiles('core/package-lock.json') }} + + - name: Cache gui node_modules + uses: actions/cache@v3 + with: + path: gui/node_modules + key: ${{ runner.os }}-node-${{ hashFiles('gui/package-lock.json') }} + + - name: Install extension Dependencies + run: | + cd extensions/vscode + npm ci + env: + # https://github.com/microsoft/vscode-ripgrep/issues/9#issuecomment-643965333 + GITHUB_TOKEN: ${{ secrets.CI_GITHUB_TOKEN }} + + - name: Install gui Dependencies + run: | + cd gui + npm ci + + - name: Install Core Dependencies + run: | + cd core + npm ci + + # 2.25 Run core tests + - name: Run core tests + run: | + cd core + npm run test + env: + OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} + + # 2.5. Pre package + - name: Set var for environment info + shell: pwsh + run: echo "target=${{ matrix.platform }}-${{ matrix.arch }}" >> $env:GITHUB_ENV + + - name: Prepackage the extension + run: | + cd extensions/vscode + npm run prepackage -- --target ${{ env.target }} + + # 3. Re-install esbuild (for cases that we force installed for another arch in prepackage.js) + - name: Re-install esbuild + run: | + cd extensions/vscode + npm install -f esbuild + + # 4. Run tests for the extension + # - name: Install Xvfb for Linux and run tests + # run: | + # sudo apt-get install -y xvfb # Install Xvfb + # Xvfb :99 & # Start Xvfb + # export DISPLAY=:99 # Export the display number to the environment + # cd extensions/vscode + # npm run test + # if: matrix.os == 'ubuntu-latest' + + # - name: Run extension tests + # run: | + # cd extensions/vscode + # npm run test + # if: matrix.os != 'ubuntu-latest' + + # 5. Package the extension + - name: Package the extension + run: cd extensions/vscode && npx vsce package --pre-release --no-dependencies --target ${{ env.target }} + + # 6. Upload the .vsix as an artifact + - uses: actions/upload-artifact@v2 + with: + name: ${{ env.target }} + path: "extensions/vscode/*.vsix" + + release: + permissions: + contents: write + runs-on: ubuntu-latest + needs: + - build + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Set up Git + run: | + git config --local user.email "action@github.com" + git config --local user.name "GitHub Action" + + # Download the .vsix artifacts + - uses: actions/download-artifact@v3 + + - name: Tag the repository + id: tag + run: | + # See https://docs.github.com/en/get-started/using-git/dealing-with-special-characters-in-branch-and-tag-names + TAG=v$(grep -o '"version": "[^"]*' extensions/vscode/package.json | cut -d'"' -f4)-vscode + echo "$TAG" + echo "tag=$TAG" >> $GITHUB_OUTPUT + git tag -a $TAG -m "Published version $TAG" ${GITHUB_SHA} + git push origin $TAG + + - name: Release + uses: softprops/action-gh-release@v2 + with: + tag_name: ${{ steps.tag.outputs.tag }} + files: | + alpine-x64/*.vsix + darwin-arm64/*.vsix + darwin-x64/*.vsix + linux-arm64/*.vsix + linux-armhf/*.vsix + linux-x64/*.vsix + win32-x64/*.vsix + win32-arm64/*.vsix + token: ${{ secrets.CI_GITHUB_TOKEN }} + repository: continuedev/continue + prerelease: true + + publish: + runs-on: ubuntu-latest + needs: + - build + permissions: + contents: write + steps: + # 0. Setup git + - name: Checkout + uses: actions/checkout@v4 + + - name: Set up Git + run: | + git config --local user.email "action@github.com" + git config --local user.name "GitHub Action" + + - name: Pull latest changes + run: git pull origin preview + + # 1. Download the artifacts + - uses: actions/download-artifact@v3 + + # 2. Publish the extension to VS Code Marketplace + - name: Publish to VS Code Marketplace + run: | + cd extensions/vscode + npx vsce publish --pre-release --packagePath ../../alpine-x64/*.vsix ../../darwin-arm64/*.vsix ../../darwin-x64/*.vsix ../../linux-arm64/*.vsix ../../linux-armhf/*.vsix ../../linux-x64/*.vsix ../../win32-x64/*.vsix ../../win32-arm64/*.vsix + env: + VSCE_PAT: ${{ secrets.VSCE_TOKEN }} + + # 3. Publish the extension to Open VSX Registry + - name: Publish (Open VSX Registry) + continue-on-error: true + run: | + cd extensions/vscode + npx ovsx publish --pre-release -p ${{ secrets.VSX_REGISTRY_TOKEN }} --packagePath ../../alpine-x64/*.vsix ../../darwin-arm64/*.vsix ../../darwin-x64/*.vsix ../../linux-arm64/*.vsix ../../linux-armhf/*.vsix ../../linux-x64/*.vsix ../../win32-x64/*.vsix ../../win32-arm64/*.vsix + + # 4. Update the package.json version and push changes + # - name: Update version in package.json + # run: | + # cd extensions/vscode + # npm version patch + + # - name: Commit changes + # run: | + # git config --local user.email "action@github.com" + # git config --local user.name "GitHub Action" + # git commit -am "💚 Update package.json version [skip ci]" + + # - name: Push changes + # uses: ad-m/github-push-action@master + # with: + # github_token: ${{ secrets.GITHUB_TOKEN }} + # branch: ${{ github.ref }} diff --git a/.github/workflows/ts-check.yaml b/.github/workflows/ts-check.yaml new file mode 100644 index 000000000..193988990 --- /dev/null +++ b/.github/workflows/ts-check.yaml @@ -0,0 +1,90 @@ +name: TypeScript Check + +on: + pull_request: + branches: + - main + - preview + - dev + +jobs: + tsc-check: + runs-on: ubuntu-latest + + steps: + # 1. Check-out repository + - name: Check-out repository + uses: actions/checkout@v4 + + # 2. Install npm dependencies + - name: Use Node.js from .nvmrc + uses: actions/setup-node@v4 + with: + node-version-file: ".nvmrc" + + - name: Cache extension node_modules + uses: actions/cache@v3 + with: + path: extensions/vscode/node_modules + key: ${{ runner.os }}-node-${{ hashFiles('extensions/vscode/package-lock.json') }} + + - name: Cache core node_modules + uses: actions/cache@v3 + with: + path: core/node_modules + key: ${{ runner.os }}-node-${{ hashFiles('core/package-lock.json') }} + + - name: Cache gui node_modules + uses: actions/cache@v3 + with: + path: gui/node_modules + key: ${{ runner.os }}-node-${{ hashFiles('gui/package-lock.json') }} + + - name: Cache binary node_modules + uses: actions/cache@v3 + with: + path: binary/node_modules + key: ${{ runner.os }}-node-${{ hashFiles('binary/package-lock.json') }} + + - name: Install extension Dependencies + run: | + cd extensions/vscode + npm ci + env: + # https://github.com/microsoft/vscode-ripgrep/issues/9#issuecomment-643965333 + GITHUB_TOKEN: ${{ secrets.CI_GITHUB_TOKEN }} + + - name: Install gui Dependencies + run: | + cd gui + npm ci + + - name: Install Core Dependencies + run: | + cd core + npm ci + + - name: Install Binary Dependencies + run: | + cd binary + npm ci + + - name: tsc core + run: | + cd core + npx tsc --noEmit + + - name: tsc extensions/vscode + run: | + cd extensions/vscode + npx tsc --noEmit + + - name: tsc binary + run: | + cd binary + npx tsc --noEmit + + - name: tsc gui + run: | + cd gui + npx tsc --noEmit diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000..a092b3caa --- /dev/null +++ b/.gitignore @@ -0,0 +1,169 @@ +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +pip-wheel-metadata/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +*.py,cover +.hypothesis/ +.pytest_cache/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 +db.sqlite3-journal + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# IPython +profile_default/ +ipython_config.py + +# pyenv +.python-version + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don't work, or not +# install all needed dependencies. +#Pipfile.lock + +# PEP 582; used by e.g. github.com/David-OConnor/pyflow +__pypackages__/ + +# Celery stuff +celerybeat-schedule +celerybeat.pid + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ + + +**/node_modules +**/out +notes.txt +cached_embeddings.pkl +.ruff_cache +codeql + +**/.continue +.DS_Store +.continue +.test +.tiktoken_cache + + +# IntelliJ Plugin +**/**/.gradle +**/**/.qodana +**/**/build + +**/.idea/**/* +!**/.idea/.name +!**/.idea/compiler.xml +!**/.idea/gradle.xml +!**/.idea/kotlinc.xml +!**/.idea/misc.xml +!**/.idea/vcs.xml +!**/.idea/jarRepositories.xml +core/.idea + +continue_server.build +continue_server.dist + +Icon +Icon? + +.continue + +# Sandbox env default file +extensions/vscode/manual-testing-sandbox/example.ts \ No newline at end of file diff --git a/.idea/.name b/.idea/.name new file mode 100644 index 000000000..c0d78d1d5 --- /dev/null +++ b/.idea/.name @@ -0,0 +1 @@ +Continue IntelliJ Extension \ No newline at end of file diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 000000000..b589d56e9 --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/gradle.xml b/.idea/gradle.xml new file mode 100644 index 000000000..6733405f9 --- /dev/null +++ b/.idea/gradle.xml @@ -0,0 +1,17 @@ + + + + + + + \ No newline at end of file diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml new file mode 100644 index 000000000..fdc392fe8 --- /dev/null +++ b/.idea/jarRepositories.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/kotlinc.xml b/.idea/kotlinc.xml new file mode 100644 index 000000000..fdf8d994a --- /dev/null +++ b/.idea/kotlinc.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 000000000..efa79f7df --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,11 @@ + + + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 000000000..35eb1ddfb --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 000000000..df9385826 --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +v20.11.0 \ No newline at end of file diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 000000000..5d9bf3359 --- /dev/null +++ b/.prettierignore @@ -0,0 +1,2 @@ +extensions/vscode/continue_rc_schema.json +**/.continueignore \ No newline at end of file diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 000000000..d3be6d22e --- /dev/null +++ b/.prettierrc @@ -0,0 +1,5 @@ +{ + "tabWidth": 2, + "useTabs": false, + "trailingComma": "all" +} diff --git a/.prompts/jest.prompt b/.prompts/jest.prompt new file mode 100644 index 000000000..c4956bbe3 --- /dev/null +++ b/.prompts/jest.prompt @@ -0,0 +1,20 @@ +temperature: 0.5 +maxTokens: 4096 +name: jest +description: Write Jest unit tests +--- + +You are an expert programmer + + +{{{ input }}} + +Write unit tests for the above selected code, following each of these instructions: +- Use `jest` +- Properly set up and tear down +- Include important edge cases +- The tests should be complete and sophisticated +- Give the tests just as chat output, don't edit any file +- Don't explain how to set up `jest` +- Write a single code block, making sure to label with the language being used (e.g. "```typscript") +- Do not under any circumstances mock any functions or modules \ No newline at end of file diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 000000000..692e94734 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,116 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "compounds": [], + "configurations": [ + { + "type": "node", + "request": "launch", + "name": "Core Binary", + "skipFiles": ["/**"], + "program": "${workspaceFolder}/binary/out/index.js", + // "preLaunchTask": "binary:esbuild", + "outFiles": ["${workspaceFolder}/binary/out/**/*.js"], + "sourceMaps": true, + "smartStep": true, + "internalConsoleOptions": "openOnSessionStart", + "cwd": "${workspaceFolder}/binary", + "env": { + "CONTINUE_DEVELOPMENT": "true", + "CONTINUE_GLOBAL_DIR": "${workspaceFolder}/binary/.continue" + } + }, + + { + "name": "Debug Jest Tests", + "type": "node", + "request": "launch", + "runtimeArgs": [ + "--inspect-brk", + "${workspaceRoot}/core/node_modules/.bin/jest", + "${fileBasenameNoExtension}", + "--runInBand", + "--config", + "${workspaceRoot}/core/jest.config.js" + ], + "console": "integratedTerminal", + "internalConsoleOptions": "neverOpen" + }, + { + "type": "chrome", + "request": "attach", + "name": "Vite", + "url": "http://localhost:5173", + "webRoot": "${workspaceFolder}/gui/src", + "sourceMapPathOverrides": { + "webpack:///./src/*": "${webRoot}/*" + }, + "port": 9222, + // "runtimeArgs": ["--remote-debugging-port=9222"], + "sourceMaps": true + // "preLaunchTask": "gui:dev" + }, + { + "name": "Extension (VSCode)", + "type": "extensionHost", + "request": "launch", + "cwd": "${workspaceFolder}/extensions/vscode", + "args": [ + // Pass a directory to manually test in + "${workspaceFolder}/extensions/vscode", + "${workspaceFolder}/extensions/vscode/manual-testing-sandbox/test.js", + "--extensionDevelopmentPath=${workspaceFolder}/extensions/vscode" + ], + "pauseForSourceMap": false, + "outFiles": [ + "${workspaceFolder}/extensions/vscode/out/extension.js", + "/Users/natesesti/.continue/config.ts" + ], + "preLaunchTask": "vscode-extension:build" + }, + // Has to be run after starting the server (separately or using the compound configuration) + { + "name": "Tests (VSCode)", + "type": "extensionHost", + "request": "launch", + "cwd": "${workspaceFolder}/extensions/vscode", + "runtimeExecutable": "${execPath}", + "args": [ + // Pass a directory to run tests in + "${workspaceFolder}/extensions/vscode/manual-testing-sandbox", + "--extensionDevelopmentPath=${workspaceFolder}/extensions/vscode", + "--extensionTestsPath=${workspaceFolder}/extensions/vscode/out/test/runner/mochaRunner" + ], + "outFiles": [ + // Allows setting breakpoints in test suites across the /src folder + "${workspaceFolder}/extensions/vscode/out/test/test-suites/**/*.js", + // Allows setting breakpoints in mocha test runner file + "${workspaceFolder}/extensions/vscode/out/test/runner/**/*.js" + ], + "internalConsoleOptions": "openOnSessionStart", + "preLaunchTask": "vscode-extension:tests:build", + "env": { + // Avoid timing out when stopping on breakpoints during debugging in VSCode + "MOCHA_TIMEOUT": "0" + } + }, + { + "name": "[Core] Jest Test Debugger, Current Open File", + "type": "node", + "request": "launch", + "runtimeArgs": [ + "--inspect-brk", + "${workspaceRoot}/core/node_modules/jest/bin/jest.js", + "--runInBand", + "--config", + "${workspaceRoot}/core/jest.config.js", + "${relativeFile}" + ], + "cwd": "${workspaceRoot}/core", + "console": "integratedTerminal", + "internalConsoleOptions": "neverOpen" + } + ] +} diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 000000000..2224a7a16 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,16 @@ +{ + "python.defaultInterpreterPath": "${workspaceFolder}/server/.venv/bin/python3", + "rust-analyzer.linkedProjects": ["./server/Cargo.toml"], + "python.analysis.extraPaths": [], + "python.autoComplete.extraPaths": [], + "python.testing.pytestArgs": ["server"], + "python.testing.unittestEnabled": false, + "python.testing.pytestEnabled": true, + "terminal.integrated.defaultProfile.linux": "bash", + "terminal.integrated.profiles.linux": { + "bash": { + "path": "bash", + "args": ["-l"] + } + } +} diff --git a/.vscode/tasks.json b/.vscode/tasks.json new file mode 100644 index 000000000..49dbba82e --- /dev/null +++ b/.vscode/tasks.json @@ -0,0 +1,169 @@ +{ + "version": "2.0.0", + "tasks": [ + // Compile and bundle the extension + { + "label": "vscode-extension:build", + "dependsOn": [ + // To detect compile errors + "vscode-extension:tsc", + // To build the React app that is used in the extension + "vscode-extension:continue-ui:build", + // To bundle the code the same way we do for publishing + "vscode-extension:esbuild", + // Start the React app that is used in the extension + "gui:dev" + ], + "group": { + "kind": "build", + "isDefault": true + } + }, + { + "label": "vscode-extension:esbuild", + "type": "npm", + "script": "esbuild-watch", + "path": "extensions/vscode", + "isBackground": true, + "problemMatcher": [ + { + "pattern": [ + { + "regexp": "> (.*?):([0-9]+):([0-9]+): (warning|error): (.+)$", + "file": 1, + "line": 2, + "column": 3, + "severity": 4, + "message": 5 + } + ], + "background": { + "activeOnStart": true, + "beginsPattern": ">", + "endsPattern": ">" + } + } + ] + }, + // Tsc currently errors out due to testing setup issues, will be resolved in a different PR + // This will be useful for preventing debugging if there are compile errors + { + "label": "vscode-extension:tsc", + "type": "npm", + "script": "tsc", + "path": "extensions/vscode", + "problemMatcher": ["$tsc"], + "presentation": { + "revealProblems": "onProblem", + "clear": true + } + }, + // Build the React app. It gets bundled into the extension as a file resource and has a seprate build step + { + "label": "vscode-extension:continue-ui:build", + "type": "shell", + "command": "node", + "args": ["${workspaceFolder}/extensions/vscode/scripts/prepackage.js"], + "problemMatcher": ["$tsc"], + "presentation": { + "revealProblems": "onProblem", + "clear": true + }, + "options": { + "cwd": "${workspaceFolder}/extensions/vscode" + } + }, + // + // Compile and bundle tests + { + "label": "vscode-extension:tests:build", + "dependsOn": [ + // Build the extension + "vscode-extension:build", + // To detect compile errors - this type checks both the extension and the tests + "vscode-extension:tsc", + "vscode-extension:tests:esbuild" + ] + }, + { + "label": "vscode-extension:tests:esbuild", + "type": "npm", + "script": "build-test", + "path": "extensions/vscode", + "problemMatcher": [ + { + "pattern": [ + { + "regexp": "> (.*?):([0-9]+):([0-9]+): (warning|error): (.+)$", + "file": 1, + "line": 2, + "column": 3, + "severity": 4, + "message": 5 + } + ] + } + ] + }, + // + // Install or update all dependencies for all projects in the monrepo + { + "label": "install-all-dependencies", + "type": "shell", + "windows": { "command": "./scripts/install-dependencies.ps1" }, + "command": "./scripts/install-dependencies.sh", + "problemMatcher": [] // Empty so users are not prompted to select progress reporting + }, + // + // Start the React App for debugging with Vite + { + "label": "gui:dev", + "type": "shell", + "command": "npm", + "options": { + "cwd": "${workspaceFolder}/gui" + }, + "args": ["run", "dev"], + "isBackground": true, + "problemMatcher": [ + { + "pattern": [ + { + "regexp": ".", + "file": 1, + "location": 2, + "message": 3 + } + ], + "background": { + "activeOnStart": true, + "beginsPattern": ".", + "endsPattern": "." + } + } + ] + }, + // + // esbuild for the core binary + { + "label": "binary:esbuild", + "type": "shell", + "command": "npm", + "args": ["run", "esbuild"], + "problemMatcher": [], + "options": { + "cwd": "binary" + } + }, + { + "label": "docs:start", + "type": "shell", + "command": "npm", + "args": ["run", "start", "--", "--no-open"], + "problemMatcher": [], + "options": { + "cwd": "docs" + } + } + ] +} diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 0daba6aeb..60d6200b5 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -2,21 +2,33 @@ ## Table of Contents +- [Contributing to Continue](#contributing-to-continue) + - [Table of Contents](#table-of-contents) - [❤️ Ways to Contribute](#️-ways-to-contribute) - [👋 Continue Contribution Ideas](#-continue-contribution-ideas) - [🐛 Report Bugs](#-report-bugs) - [✨ Suggest Enhancements](#-suggest-enhancements) - [📖 Updating / Improving Documentation](#-updating--improving-documentation) + - [Running the Documentation Server Locally](#running-the-documentation-server-locally) + - [Method 1: NPM Script](#method-1-npm-script) + - [Method 2: VS Code Task](#method-2-vs-code-task) - [🧑‍💻 Contributing Code](#-contributing-code) - [Environment Setup](#environment-setup) + - [Pre-requisites](#pre-requisites) + - [Fork the Continue Repository with All Branches](#fork-the-continue-repository-with-all-branches) + - [VS Code](#vs-code) + - [Debugging](#debugging) + - [JetBrains](#jetbrains) + - [Debugging](#debugging-1) + - [Formatting](#formatting) - [Writing Slash Commands](#writing-slash-commands) - [Writing Context Providers](#writing-context-providers) - [Adding an LLM Provider](#adding-an-llm-provider) - [Adding Models](#adding-models) - [Adding Pre-indexed Documentation](#adding-pre-indexed-documentation) -- [📐 Continue Architecture](#-continue-architecture) - - [Continue VS Code Extension](#continue-vs-code-extension) - - [Continue JetBrains Extension](#continue-jetbrains-extension) + - [📐 Continue Architecture](#-continue-architecture) + - [Continue VS Code Extension](#continue-vs-code-extension) + - [Continue JetBrains Extension](#continue-jetbrains-extension) # ❤️ Ways to Contribute @@ -48,27 +60,60 @@ Continue is quickly adding features, and we'd love to hear which are the most im ## 📖 Updating / Improving Documentation -Continue is continuously improving, but a feature isn't complete until it is reflected in the documentation! If you see something out-of-date or missing, you can help by clicking "Edit this page" at the bottom of any page on [continue.dev/docs](https://continue.dev/docs). +Continue is continuously improving, but a feature isn't complete until it is reflected in the documentation! If you see something out-of-date or missing, you can help by clicking "Edit this page" at the bottom of any page on [docs.continue.dev](https://docs.continue.dev). + +### Running the Documentation Server Locally + +You can run the documentation server locally using either of the following methods: + +#### Method 1: NPM Script + +1. Open your terminal and navigate to the root directory of the project. + +2. Run the following command to start the documentation server: + ```bash + npm run start --prefix docs + ``` + +#### Method 2: VS Code Task + +1. Open VS Code in the root directory of the project. + +2. Open the VS Code command pallet (`cmd/ctrl+shift+p`) and select `Tasks: Run Task`. + +3. Look for the `docs:start` task and select it. + +This will start a local server and you can see the documentation rendered in your default browser, typically accessible at `http://localhost:3000`. ## 🧑‍💻 Contributing Code -> Please make PRs to the `preview` branch. We use this to first test changes in a pre-release version of the extension. +> Please make PRs to the `dev` branch. We use this to first test changes in a pre-release version of the extension. ### Environment Setup -#### VS Code +#### Pre-requisites -Pre-requisite: You should have Node.js version 20.11.0 (LTS) or higher installed. You can get it on [nodejs.org](https://nodejs.org/en/download) or, if you are using NVM (Node Version Manager), you can set the correct version of Node.js for this project by running the following command in the root of the project: +You should have Node.js version 20.11.0 (LTS) or higher installed. You can get it on [nodejs.org](https://nodejs.org/en/download) or, if you are using NVM (Node Version Manager), you can set the correct version of Node.js for this project by running the following command in the root of the project: ```bash nvm use ``` -1. Clone and open in VS Code the Continue repo `https://github.com/continuedev/continue` +#### Fork the Continue Repository with All Branches + +1. Go to the [Continue GitHub repository](https://github.com/continuedev/continue) and fork it to your GitHub account. **Ensure all branches are included in the fork**. + +2. Clone your forked repository to your local machine. Use: `git clone https://github.com/YOUR_USERNAME/continue.git` -2. Open the VS Code command pallet (`cmd/ctrl+shift+p`) and select `Tasks: Run Task` and then select `install-all-dependencies` +3. Navigate to the cloned directory and switch to the **dev** branch. Execute: `git checkout dev`, then create your feature/fix branch from there, like so: `git checkout -b 123-my-feature-branch` -3. Start debugging: +4. When you're ready to submit your changes, send your pull request specifically to the **dev** branch. + +#### VS Code + +1. Open the VS Code command pallet (`cmd/ctrl+shift+p`) and select `Tasks: Run Task` and then select `install-all-dependencies` + +2. Start debugging: 1. Switch to Run and Debug view 2. Select `Extension (VS Code)` from drop down @@ -77,27 +122,49 @@ nvm use 1. The new VS Code window with the extension is referred to as the _Host VS Code_ 2. The window you started debugging from is referred to as the _Main VS Code_ -4. To package the extension, run `npm run package` in the `extensions/vscode` directory. This will generate `extensions/vscode/build/continue-patch.vsix`, which you can install by right-clicking and selecting "Install Extension VSIX". +3. To package the extension, run `npm run package` in the `extensions/vscode` directory. This will generate `extensions/vscode/build/continue-{VERSION}.vsix`, which you can install by right-clicking and selecting "Install Extension VSIX". + +##### Debugging + +**Breakpoints** can be used in both the `core` and `extensions/vscode` folders while debugging, but are not currently supported inside of `gui` code. + +**Hot-reloading** is enabled with Vite, so if you make any changes to the `gui`, they should be automatically reflected without rebuilding. In some cases, you may need to refresh the _Host VS Code_ window to see the changes. -> Note: Breakpoints can be used in both the `core` and `extensions/vscode` folders while debugging, but are not currently supported inside of `gui` code. Hot-reloading is enabled with Vite, so if you make any changes to the `gui`, they should be automatically reflected without rebuilding. Similarly, any changes to `core` or `extensions/vscode` will be automatically included by just reloading the _Host VS Code_ window with cmd/ctrl+shift+p "Reload Window". +Similarly, any changes to `core` or `extensions/vscode` will be automatically included by just reloading the _Host VS Code_ window with cmd/ctrl+shift+p "Reload Window". #### JetBrains -Pre-requisite: You should use the Intellij IDE, which can be downloaded [here](https://www.jetbrains.com/idea/download). Either Ultimate or Community (free) will work. Continue is built with JDK version 19. +Pre-requisite: You should use the Intellij IDE, which can be downloaded [here](https://www.jetbrains.com/idea/download). Either Ultimate or Community (free) will work. Continue is built with JDK version 17, as specified in `extensions/intellij/build.gradle.kts`. You should also ensure that you have the Gradle plugin installed. 1. Clone the repository -2. Run `install-dependencies.sh` or `install-dependencies.ps1` on Windows -3. Run `cd extensions/vscode && node scripts/prepackage.js` (this will copy over the built React application to the proper JetBrains directory) -4. Select the "Run Plugin" Gradle configuration and click the "Run" or "Debug" button -5. To package the extension, choose the "Build Plugin" Gradle configuration +2. Run `scripts/install-dependencies.sh` or `scripts/install-dependencies.ps1` on Windows. This will install and build all of the necessary dependencies. +3. To test the plugin, select the "Run Plugin" Gradle configuration and click the "Run" or "Debug" button as shown in this screenshot: + ![img](./media/IntelliJRunPluginScreenshot.png) +4. To package the extension, run `./gradlew build` (or `./gradlew.bat build` on Windows) from the `extensions/intellij` directory. This will generate a .zip file in `extensions/intellij/build/distributions` with the version defined in `extensions/intellij/gradle.properties`. +5. If you make changes, you may need to re-build before running the "Build Plugin" configuration -> For changes to Typescript code, the binary/gui will currently need to be rebuilt. Changes to Kotlin code can often be hot-reloaded with "Run -> Debugging Actions -> Reload Changed Classes" + a. If you change code from the `core` or `binary` directories, make sure to run `npm run build` from the `binary` directory to create a new binary. + + b. If you change code from the `gui` directory, make sure to run `npm run build` from the `gui` directory to create a new bundle. + + c. Any changes to the Kotlin coded in the `extensions/intellij` directory will be automatically included when you run "Build Plugin" + +##### Debugging Continue's JetBrains extension shares much of the code with the VS Code extension by utilizing shared code in the `core` directory and packaging it in a binary in the `binary` directory. The Intellij extension (written in Kotlin) is then able to communicate over stdin/stdout in the [CoreMessenger.kt](./extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/continue/CoreMessenger.kt) file. +For the sake of rapid development, it is also possible to configure this communication to happen over local TCP sockets: + +1. In [CoreMessenger.kt](./extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/continue/CoreMessenger.kt), change the `useTcp` variable to `true`. +2. Open a VS Code window (we recommend this for a preconfigured Typescript debugging experience) with the `continue` repository. Select the "Core Binary" debug configuration and press play. +3. Run the "Run Plugin" Gradle configuration. +4. You can now set breakpoints in any of the TypeScript files in VS Code. If you make changes to the code, restart the "Core Binary" debug configuration and reload the _Host IntelliJ_ window. + +If you make changes to Kotlin code, they can often be hot-reloaded with "Run -> Debugging Actions -> Reload Changed Classes". + ### Formatting -Continue uses [Prettier](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode) to format JavaScript/TypeScript. Please install these extensions in VS Code and enable "Format on Save" in your settings. +Continue uses [Prettier](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode) to format JavaScript/TypeScript. Please install the Prettier extension in VS Code and enable "Format on Save" in your settings. ### Writing Slash Commands @@ -131,7 +198,7 @@ After you've written your context provider, make sure to complete the following: ### Adding an LLM Provider -Continue has support for more than a dozen different LLM "providers", making it easy to use models running on OpenAI, Ollama, Together, LM Studio, and more. You can find all of the existing providers [here](https://github.com/continuedev/continue/tree/main/core/llm/llms), and if you see one missing, you can add it with the following steps: +Continue has support for more than a dozen different LLM "providers", making it easy to use models running on OpenAI, Ollama, Together, LM Studio, Msty, and more. You can find all of the existing providers [here](https://github.com/continuedev/continue/tree/main/core/llm/llms), and if you see one missing, you can add it with the following steps: 1. Create a new file in the `core/llm/llms` directory. The name of the file should be the name of the provider, and it should export a class that extends `BaseLLM`. This class should contain the following minimal implementation. We recommend viewing pre-existing providers for more details. The [LlamaCpp Provider](./core/llm/llms/LlamaCpp.ts) is a good simple example. diff --git a/README.md b/README.md index 0e785357c..dc5994977 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,14 @@ -![Continue logo](media/c_d.png) +
+ +![Continue logo](media/readme.png) + +

Continue

-**[Continue](https://continue.dev/docs) is an open-source autopilot for [VS Code](https://marketplace.visualstudio.com/items?itemName=Continue.continue) and [JetBrains](https://plugins.jetbrains.com/plugin/22707-continue-extension)—the easiest way to code with any LLM** +**[Continue](https://docs.continue.dev) is the leading open-source AI code assistant. You can connect any models and any context to build custom autocomplete and chat experiences inside [VS Code](https://marketplace.visualstudio.com/items?itemName=Continue.continue) and [JetBrains](https://plugins.jetbrains.com/plugin/22707-continue-extension)**
@@ -13,7 +17,7 @@ - + @@ -22,49 +26,55 @@

-![Editing With Continue](media/readme.gif) +## Easily understand code sections - +![understand](docs/static/img/understand.gif) + +VS Code: `cmd+L` (MacOS) / `ctrl+L` (Windows) + +JetBrains: `cmd+J` (MacOS) / `ctrl+J` (Windows) -## Task and tab autocomplete +## Tab to autocomplete code suggestions -### Answer coding questions +![autocomplete](docs/static/img/autocomplete.gif) -Highlight + select sections of code and ask Continue for another perspective +VS Code: `tab` (MacOS) / `tab` (Windows) -- “what does this forRoot() static function do in nestjs?” -- “why is the first left join in this query necessary here?” -- “how do I run a performance benchmark on this rust binary?” +JetBrains: `tab` (MacOS) / `tab` (Windows) -### Edit in natural language +## Refactor functions where you are coding -Highlight + select a section of code and instruct Continue to refactor it +![inline](docs/static/img/inline.gif) -- “/edit rewrite this to return a flattened list from a 3x3 matrix” -- “/edit refactor these into an angular flex layout on one line" -- “/edit define a type here for a list of lists of dictionaries” +VS Code: `cmd+I` (MacOS) / `ctrl+I` (Windows) -### Generate files from scratch +JetBrains: `cmd+I` (MacOS) / `ctrl+I` (Windows) -Open a blank file and let Continue start new Python scripts, React components, etc. +## Ask questions about your codebase -- “/edit get me started with a basic supabase edge function” -- “/edit implement a c++ shortest path algo in a concise way” -- “/edit create a docker compose file with php and mysql server" +![codebase](docs/static/img/codebase.gif) -### And much more! +VS Code: `cmd+enter` (MacOS) / `ctrl+enter` (Windows) -- Try out [experimental support for local tab autocomplete](https://continue.dev/docs/walkthroughs/tab-autocomplete) in VS Code -- Use [built-in context providers](https://continue.dev/docs/customization/context-providers#built-in-context-providers) or create your own [custom context providers](https://continue.dev/docs/customization/context-providers#building-your-own-context-provider) -- Use [built-in slash commands](https://arc.net/l/quote/zbhwfjmp) or create your own [custom slash commands](https://continue.dev/docs/customization/slash-commands#custom-slash-commands) +JetBrains: `cmd+enter` (MacOS) / `ctrl+enter` (Windows) + +## Quickly use documentation as context + +![docs](docs/static/img/docs.gif) + +VS Code: `@docs` (MacOS) / `@docs` (Windows) + +JetBrains: `@docs` (MacOS) / `@docs` (Windows) + + ## Getting Started -#### Download for [VS Code](https://marketplace.visualstudio.com/items?itemName=Continue.continue) and [JetBrains](https://plugins.jetbrains.com/plugin/22707-continue-extension) +### Download for [VS Code](https://marketplace.visualstudio.com/items?itemName=Continue.continue) and [JetBrains](https://plugins.jetbrains.com/plugin/22707-continue-extension) -You can try out Continue for free using a proxy server that securely makes calls with our API key to models like GPT-4, Gemini Pro, and Phind CodeLlama via OpenAI, Google, and Together respectively. +You can try out Continue with our free trial models before configuring your setup. -Once you're ready to use your own API key or a different model / provider, press the `+` button in the bottom left to add a new model to your `config.json`. Learn more about the models and providers [here](https://continue.dev/docs/model-setup/overview). +Learn more about the models and providers [here](https://continue.dev/docs/setup/overview). ## Contributing diff --git a/binary/.gitignore b/binary/.gitignore index d748f39f1..3b0c8035f 100644 --- a/binary/.gitignore +++ b/binary/.gitignore @@ -2,3 +2,4 @@ node_modules bin data out +tmp diff --git a/binary/README.md b/binary/README.md index bc0716b7d..beff54b4b 100644 --- a/binary/README.md +++ b/binary/README.md @@ -26,3 +26,7 @@ The build process is otherwise defined entirely in `build.js`. - tree-sitter-wasms/ (\*) = need to download for each platform manually + +## Debugging + +To debug the binary with IntelliJ, set `useTcp` to `true` in `CoreMessenger.kt`, and then in VS Code run the "Core Binary" debug script. Instead of starting a subprocess for the binary and communicating over stdin/stdout, the IntelliJ extension will connect over TCP to the server started from the VS Code window. You can place breakpoints anywhere in the `core` or `binary` folders. diff --git a/binary/build.js b/binary/build.js index 9769fcf0f..5ea5c7aad 100644 --- a/binary/build.js +++ b/binary/build.js @@ -1,14 +1,41 @@ const esbuild = require("esbuild"); -const { execSync } = require("child_process"); const fs = require("fs"); +const path = require("path"); const ncp = require("ncp").ncp; +const { rimrafSync } = require("rimraf"); +const { + validateFilesPresent, + execCmdSync, + autodetectPlatformAndArch, +} = require("../scripts/util"); + +// Clean slate +const bin = path.join(__dirname, "bin"); +const out = path.join(__dirname, "out"); +const build = path.join(__dirname, "build"); +rimrafSync(bin); +rimrafSync(out); +rimrafSync(build); +rimrafSync(path.join(__dirname, "tmp")); +fs.mkdirSync(bin); +fs.mkdirSync(out); +fs.mkdirSync(build); const esbuildOutputFile = "out/index.js"; -const platforms = ["darwin", "linux", "win32"]; -const architectures = ["x64", "arm64"]; -let targets = platforms.flatMap((platform) => - architectures.map((arch) => `${platform}-${arch}`), -); +let targets = [ + "darwin-x64", + "darwin-arm64", + "linux-x64", + "linux-arm64", + "win32-x64", +]; + +const [currentPlatform, currentArch] = autodetectPlatformAndArch(); + +const assetBackups = [ + "node_modules/win-ca/lib/crypt32-ia32.node.bak", + "node_modules/win-ca/lib/crypt32-x64.node.bak", +]; let esbuildOnly = false; for (let i = 2; i < process.argv.length; i++) { @@ -26,71 +53,131 @@ const targetToLanceDb = { "linux-arm64": "@lancedb/vectordb-linux-arm64-gnu", "linux-x64": "@lancedb/vectordb-linux-x64-gnu", "win32-x64": "@lancedb/vectordb-win32-x64-msvc", + "win32-arm64": "@lancedb/vectordb-win32-x64-msvc", // they don't have a win32-arm64 build }; +async function installNodeModuleInTempDirAndCopyToCurrent(packageName, toCopy) { + console.log(`Copying ${packageName} to ${toCopy}`); + // This is a way to install only one package without npm trying to install all the dependencies + // Create a temporary directory for installing the package + const adjustedName = packageName.replace(/@/g, "").replace("/", "-"); + const tempDir = path.join( + __dirname, + "tmp", + `continue-node_modules-${adjustedName}`, + ); + const currentDir = process.cwd(); + + // // Remove the dir we will be copying to + // rimrafSync(`node_modules/${toCopy}`); + + // // Ensure the temporary directory exists + fs.mkdirSync(tempDir, { recursive: true }); + + try { + // Move to the temporary directory + process.chdir(tempDir); + + // Initialize a new package.json and install the package + execCmdSync(`npm init -y && npm i -f ${packageName} --no-save`); + + console.log( + `Contents of: ${packageName}`, + fs.readdirSync(path.join(tempDir, "node_modules", toCopy)), + ); + + // Without this it seems the file isn't completely written to disk + await new Promise((resolve) => setTimeout(resolve, 2000)); + + // Copy the installed package back to the current directory + await new Promise((resolve, reject) => { + ncp( + path.join(tempDir, "node_modules", toCopy), + path.join(currentDir, "node_modules", toCopy), + { dereference: true }, + (error) => { + if (error) { + console.error( + `[error] Error copying ${packageName} package`, + error, + ); + reject(error); + } else { + resolve(); + } + }, + ); + }); + } finally { + // Clean up the temporary directory + // rimrafSync(tempDir); + + // Return to the original directory + process.chdir(currentDir); + } +} + (async () => { - // console.log("[info] Building with ncc..."); - // execSync(`npx ncc build src/index.ts -o out`); - - // Copy node_modules for pre-built binaries - const DYNAMIC_IMPORTS = [ - // "esbuild", - // "@esbuild", - // // "@lancedb", - // "posthog-node", - // "@octokit", - ]; fs.mkdirSync("out/node_modules", { recursive: true }); fs.mkdirSync("bin/node_modules", { recursive: true }); - await Promise.all( - DYNAMIC_IMPORTS.map( - (mod) => - new Promise((resolve, reject) => { - ncp( - `node_modules/${mod}`, - `out/node_modules/${mod}`, - function (error) { - if (error) { - console.error(`[error] Error copying ${mod}`, error); - reject(error); - } else { - resolve(); - } - }, - ); - ncp( - `node_modules/${mod}`, - `bin/node_modules/${mod}`, - function (error) { - if (error) { - console.error(`[error] Error copying ${mod}`, error); - reject(error); - } else { - resolve(); - } - }, - ); - }), - ), - ); - console.log(`[info] Copied ${DYNAMIC_IMPORTS.join(", ")}`); - console.log("[info] Downloading prebuilt lancedb..."); for (const target of targets) { if (targetToLanceDb[target]) { - console.log(`[info] Downloading ${target}...`); - execSync(`npm install -f ${targetToLanceDb[target]} --no-save`); + console.log(`[info] Downloading for ${target}...`); + await installNodeModuleInTempDirAndCopyToCurrent( + targetToLanceDb[target], + "@lancedb", + ); } } - console.log("[info] Building with esbuild..."); + // tree-sitter-wasm + const treeSitterWasmsDir = path.join(out, "tree-sitter-wasms"); + fs.mkdirSync(treeSitterWasmsDir); + await new Promise((resolve, reject) => { + ncp( + path.join( + __dirname, + "..", + "core", + "node_modules", + "tree-sitter-wasms", + "out", + ), + treeSitterWasmsDir, + { dereference: true }, + (error) => { + if (error) { + console.warn("[error] Error copying tree-sitter-wasm files", error); + reject(error); + } else { + resolve(); + } + }, + ); + }); + + fs.copyFileSync( + path.join(__dirname, "../core/vendor/tree-sitter.wasm"), + path.join(__dirname, "out/tree-sitter.wasm"), + ); + console.log("[info] Copied tree-sitter wasms"); + + console.log("[info] Cleaning up artifacts from previous builds..."); + + // delete asset backups generated by previous pkg invocations, if present + for (const assetPath of assetBackups) { + fs.rmSync(assetPath, { force: true }); + } + // Bundles the extension into one file + console.log("[info] Building with esbuild..."); await esbuild.build({ entryPoints: ["src/index.ts"], bundle: true, outfile: esbuildOutputFile, - external: ["esbuild", ...DYNAMIC_IMPORTS, "./xhr-sync-worker.js", "vscode"], + external: ["esbuild", "./xhr-sync-worker.js", "vscode", "./index.node"], format: "cjs", platform: "node", sourcemap: true, @@ -120,20 +207,36 @@ const targetToLanceDb = { const targetDir = `bin/${target}`; fs.mkdirSync(targetDir, { recursive: true }); console.log(`[info] Building ${target}...`); - execSync( + execCmdSync( `npx pkg --no-bytecode --public-packages "*" --public pkgJson/${target} --out-path ${targetDir}`, ); // Download and unzip prebuilt sqlite3 binary for the target + console.log("[info] Downloading node-sqlite3"); const downloadUrl = `https://github.com/TryGhost/node-sqlite3/releases/download/v5.1.7/sqlite3-v5.1.7-napi-v6-${ target === "win32-arm64" ? "win32-ia32" : target }.tar.gz`; - execSync(`curl -L -o ${targetDir}/build.tar.gz ${downloadUrl}`); - execSync(`cd ${targetDir} && tar -xvzf build.tar.gz`); + execCmdSync(`curl -L -o ${targetDir}/build.tar.gz ${downloadUrl}`); + execCmdSync(`cd ${targetDir} && tar -xvzf build.tar.gz`); fs.copyFileSync( `${targetDir}/build/Release/node_sqlite3.node`, `${targetDir}/node_sqlite3.node`, ); + + // Copy to build directory for testing + try { + const [platform, arch] = target.split("-"); + if (platform === currentPlatform && arch === currentArch) { + fs.copyFileSync( + `${targetDir}/node_sqlite3.node`, + `build/node_sqlite3.node`, + ); + } + } catch (error) { + console.log("[warn] Could not copy node_sqlite to build"); + console.log(error); + } + fs.unlinkSync(`${targetDir}/build.tar.gz`); fs.rmSync(`${targetDir}/build`, { recursive: true, @@ -143,10 +246,10 @@ const targetToLanceDb = { // Download and unzip prebuilt esbuild binary for the target console.log(`[info] Downloading esbuild for ${target}...`); // Version is pinned to 0.19.11 in package.json to make sure that they match - execSync( + execCmdSync( `curl -o ${targetDir}/esbuild.tgz https://registry.npmjs.org/@esbuild/${target}/-/${target}-0.19.11.tgz`, ); - execSync(`tar -xzvf ${targetDir}/esbuild.tgz -C ${targetDir}`); + execCmdSync(`tar -xzvf ${targetDir}/esbuild.tgz -C ${targetDir}`); if (target.startsWith("win32")) { fs.cpSync(`${targetDir}/package/esbuild.exe`, `${targetDir}/esbuild.exe`); } else { @@ -157,9 +260,30 @@ const targetToLanceDb = { force: true, recursive: true, }); + + // copy @lancedb to bin folders + console.log("[info] Copying @lancedb files to bin"); + fs.copyFileSync( + `node_modules/${targetToLanceDb[target]}/index.node`, + `${targetDir}/index.node`, + ); } - // execSync( + // execCmdSync( // `npx pkg out/index.js --target node18-darwin-arm64 --no-bytecode --public-packages "*" --public -o bin/pkg` // ); + + const pathsToVerify = []; + for (target of targets) { + const exe = target.startsWith("win") ? ".exe" : ""; + const targetDir = `bin/${target}`; + pathsToVerify.push( + `${targetDir}/continue-binary${exe}`, + `${targetDir}/esbuild${exe}`, + `${targetDir}/index.node`, // @lancedb + `${targetDir}/node_sqlite3.node`, + ); + } + validateFilesPresent(pathsToVerify); + console.log("[info] Done!"); })(); diff --git a/binary/jest.config.js b/binary/jest.config.js new file mode 100644 index 000000000..e5d833a48 --- /dev/null +++ b/binary/jest.config.js @@ -0,0 +1,23 @@ +module.exports = { + roots: ["/test"], + transform: { + "^.+\\.ts?$": [ + "ts-jest", + { + useESM: true, + }, + ], + "^.+\\.js$": [ + "babel-jest", + { + presets: [["@babel/preset-env", { targets: { node: "current" } }]], + }, + ], + }, + moduleFileExtensions: ["ts", "tsx", "js", "jsx", "json", "node", ".d.ts"], + extensionsToTreatAsEsm: [".ts", ".d.ts"], + // Remove or comment out the moduleNameMapper configuration + moduleNameMapper: { + "^(.*)\\.js$": "$1", + }, +}; diff --git a/binary/package-lock.json b/binary/package-lock.json index 7ef50570e..41875c6b2 100644 --- a/binary/package-lock.json +++ b/binary/package-lock.json @@ -13,40 +13,57 @@ "commander": "^12.0.0", "core": "file:../core", "follow-redirects": "^1.15.5", + "mac-ca": "^2.0.3", "ncp": "^2.0.0", + "node-fetch": "^3.3.2", "posthog-node": "^3.6.3", + "system-ca": "^1.0.2", "uuid": "^9.0.1", - "vectordb": "^0.4.10" + "vectordb": "^0.4.20", + "win-ca": "^3.5.1" }, "bin": { "binary": "out/index.js" }, "devDependencies": { + "@biomejs/biome": "1.6.4", "@types/follow-redirects": "^1.14.4", + "@types/jest": "^29.5.12", "@types/uuid": "^9.0.8", "@vercel/ncc": "^0.38.1", "esbuild": "0.19.11", + "jest": "^29.7.0", "pkg": "^5.8.1", + "rimraf": "^5.0.7", + "ts-jest": "^29.1.4", "typescript": "^5.3.3" } }, "../core": { "name": "@continuedev/core", - "version": "1.0.6", + "version": "1.0.13", "license": "Apache-2.0", "dependencies": { + "@aws-sdk/client-bedrock-runtime": "^3.574.0", + "@aws-sdk/credential-providers": "^3.596.0", + "@continuedev/config-types": "^1.0.6", + "@continuedev/llm-info": "^1.0.1", "@mozilla/readability": "^0.5.0", "@octokit/rest": "^20.0.2", "@types/jsdom": "^21.1.6", "@types/mozilla-readability": "^0.2.1", "@types/node-fetch": "^2.6.11", - "@xenova/transformers": "^2.14.0", + "@typescript-eslint/eslint-plugin": "^7.8.0", + "@typescript-eslint/parser": "^7.8.0", + "@xenova/transformers": "2.14.0", "adf-to-md": "^1.1.0", + "async-mutex": "^0.5.0", "axios": "^1.6.7", "cheerio": "^1.0.0-rc.12", "commander": "^12.0.0", + "comment-json": "^4.2.3", "dbinfoz": "^0.1.4", - "dotenv": "^16.3.1", + "dotenv": "^16.4.5", "fastest-levenshtein": "^1.0.16", "follow-redirects": "^1.15.5", "handlebars": "^4.7.8", @@ -55,36 +72,46 @@ "ignore": "^5.3.1", "js-tiktoken": "^1.0.8", "jsdom": "^24.0.0", - "llama-tokenizer-js": "^1.1.3", + "launchdarkly-node-client-sdk": "^3.2.0", "llm-code-highlighter": "^0.0.14", + "mac-ca": "^3.1.0", "node-fetch": "^3.3.2", "node-html-markdown": "^1.3.0", "ollama": "^0.4.6", + "onnxruntime-node": "1.14.0", "openai": "^4.20.1", "pg": "^8.11.3", - "posthog-node": "^3.6.2", + "posthog-node": "^3.6.3", "replicate": "^0.26.0", "request": "^2.88.2", "socket.io-client": "^4.7.3", "sqlite": "^5.1.1", "sqlite3": "^5.1.7", - "tree-sitter-wasms": "^0.1.6", + "system-ca": "^1.0.3", + "tree-sitter-wasms": "^0.1.11", "uuid": "^9.0.1", - "vectordb": "0.4.12", - "web-tree-sitter": "^0.21.0" + "vectordb": "^0.4.20", + "web-tree-sitter": "^0.21.0", + "win-ca": "^3.5.1", + "yaml": "^2.4.2", + "zod": "^3.23.8" }, "devDependencies": { + "@babel/preset-env": "^7.24.7", + "@biomejs/biome": "1.6.4", "@google/generative-ai": "^0.11.4", "@types/follow-redirects": "^1.14.4", - "@types/handlebars": "^4.1.0", - "@types/jest": "^29.5.11", + "@types/jest": "^29.5.12", "@types/jquery": "^3.5.29", "@types/mustache": "^4.2.5", "@types/uuid": "^9.0.7", - "esbuild": "^0.19.11", + "esbuild": "0.17.19", + "eslint": "^8", + "eslint-plugin-import": "^2.29.1", "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "vite-plugin-node": "^3.1.0" + "onnxruntime-common": "1.14.0", + "onnxruntime-web": "1.14.0", + "ts-jest": "^29.1.1" }, "engines": { "node": ">=20.11.0" @@ -112,6 +139,19 @@ "node": ">=12.17" } }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/@apache-arrow/ts": { "version": "14.0.2", "resolved": "https://registry.npmjs.org/@apache-arrow/ts/-/ts-14.0.2.tgz", @@ -130,42 +170,77 @@ "tslib": "^2.5.3" } }, - "node_modules/@babel/generator": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.2.tgz", - "integrity": "sha512-W1lG5vUwFvfMd8HVXqdfbuG7RuaSrTCCD8cl8fP8wOivdbtbIg2Db3IWUcgvfxKbbn6ZBGYRW/Zk1MIwK49mgw==", + "node_modules/@babel/code-frame": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", + "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", "dev": true, "dependencies": { - "@babel/types": "^7.18.2", - "@jridgewell/gen-mapping": "^0.3.0", - "jsesc": "^2.5.1" + "@babel/highlight": "^7.24.7", + "picocolors": "^1.0.0" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/helper-string-parser": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz", - "integrity": "sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==", + "node_modules/@babel/compat-data": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.7.tgz", + "integrity": "sha512-qJzAIcv03PyaWqxRgO4mSU3lihncDT296vnyuE2O8uA4w3UHWI4S3hgeZd1L8W1Bft40w9JxJ2b412iDUFFRhw==", "dev": true, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "node_modules/@babel/core": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.7.tgz", + "integrity": "sha512-nykK+LEK86ahTkX/3TgauT0ikKoNCfKHEaZYTUVupJdTLzGNvrblu4u6fa7DhZONAltdf8e662t/abY8idrd/g==", "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.24.7", + "@babel/helper-compilation-targets": "^7.24.7", + "@babel/helper-module-transforms": "^7.24.7", + "@babel/helpers": "^7.24.7", + "@babel/parser": "^7.24.7", + "@babel/template": "^7.24.7", + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, "engines": { "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" } }, - "node_modules/@babel/parser": { - "version": "7.18.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.4.tgz", - "integrity": "sha512-FDge0dFazETFcxGw/EXzOkN8uJp0PC7Qbm+Pe9T+av2zlBpOgunFHkQPPn+eRuClU73JF+98D531UgayY89tow==", + "node_modules/@babel/core/node_modules/@babel/generator": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.7.tgz", + "integrity": "sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.24.7", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core/node_modules/@babel/parser": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.7.tgz", + "integrity": "sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -174,890 +249,3621 @@ "node": ">=6.0.0" } }, - "node_modules/@babel/types": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.19.0.tgz", - "integrity": "sha512-YuGopBq3ke25BVSiS6fgF49Ul9gH1x70Bcr6bqRLjWCkcX8Hre1/5+z+IiWOIerRMSSEfGZVB9z9kyq7wVs9YA==", + "node_modules/@babel/core/node_modules/@babel/types": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.7.tgz", + "integrity": "sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==", "dev": true, "dependencies": { - "@babel/helper-string-parser": "^7.18.10", - "@babel/helper-validator-identifier": "^7.18.6", + "@babel/helper-string-parser": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7", "to-fast-properties": "^2.0.0" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@esbuild/aix-ppc64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.19.11.tgz", - "integrity": "sha512-FnzU0LyE3ySQk7UntJO4+qIiQgI7KoODnZg5xzXIrFJlKd2P2gwHsHY4927xj9y5PJmJSzULiUCWmv7iWnNa7g==", - "cpu": [ - "ppc64" - ], + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=12" + "bin": { + "semver": "bin/semver.js" } }, - "node_modules/@esbuild/android-arm": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.11.tgz", - "integrity": "sha512-5OVapq0ClabvKvQ58Bws8+wkLCV+Rxg7tUVbo9xu034Nm536QTII4YzhaFriQ7rMrorfnFKUsArD2lqKbFY4vw==", - "cpu": [ - "arm" - ], + "node_modules/@babel/generator": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.2.tgz", + "integrity": "sha512-W1lG5vUwFvfMd8HVXqdfbuG7RuaSrTCCD8cl8fP8wOivdbtbIg2Db3IWUcgvfxKbbn6ZBGYRW/Zk1MIwK49mgw==", "dev": true, - "optional": true, - "os": [ - "android" - ], + "dependencies": { + "@babel/types": "^7.18.2", + "@jridgewell/gen-mapping": "^0.3.0", + "jsesc": "^2.5.1" + }, "engines": { - "node": ">=12" + "node": ">=6.9.0" } }, - "node_modules/@esbuild/android-arm64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.11.tgz", - "integrity": "sha512-aiu7K/5JnLj//KOnOfEZ0D90obUkRzDMyqd/wNAUQ34m4YUPVhRZpnqKV9uqDGxT7cToSDnIHsGooyIczu9T+Q==", - "cpu": [ - "arm64" - ], + "node_modules/@babel/helper-compilation-targets": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.7.tgz", + "integrity": "sha512-ctSdRHBi20qWOfy27RUb4Fhp07KSJ3sXcuSvTrXrc4aG8NSYDo1ici3Vhg9bg69y5bj0Mr1lh0aeEgTvc12rMg==", "dev": true, - "optional": true, - "os": [ - "android" - ], + "dependencies": { + "@babel/compat-data": "^7.24.7", + "@babel/helper-validator-option": "^7.24.7", + "browserslist": "^4.22.2", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, "engines": { - "node": ">=12" + "node": ">=6.9.0" } }, - "node_modules/@esbuild/android-x64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.11.tgz", - "integrity": "sha512-eccxjlfGw43WYoY9QgB82SgGgDbibcqyDTlk3l3C0jOVHKxrjdc9CTwDUQd0vkvYg5um0OH+GpxYvp39r+IPOg==", - "cpu": [ - "x64" - ], + "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" + "dependencies": { + "yallist": "^3.0.2" } }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.11.tgz", - "integrity": "sha512-ETp87DRWuSt9KdDVkqSoKoLFHYTrkyz2+65fj9nfXsaV3bMhTCjtQfw3y+um88vGRKRiF7erPrh/ZuIdLUIVxQ==", - "cpu": [ - "arm64" - ], + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" + "bin": { + "semver": "bin/semver.js" } }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.11.tgz", - "integrity": "sha512-fkFUiS6IUK9WYUO/+22omwetaSNl5/A8giXvQlcinLIjVkxwTLSktbF5f/kJMftM2MJp9+fXqZ5ezS7+SALp4g==", - "cpu": [ - "x64" - ], + "node_modules/@babel/helper-environment-visitor": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.7.tgz", + "integrity": "sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==", "dev": true, - "optional": true, - "os": [ - "darwin" - ], + "dependencies": { + "@babel/types": "^7.24.7" + }, "engines": { - "node": ">=12" + "node": ">=6.9.0" } }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.11.tgz", - "integrity": "sha512-lhoSp5K6bxKRNdXUtHoNc5HhbXVCS8V0iZmDvyWvYq9S5WSfTIHU2UGjcGt7UeS6iEYp9eeymIl5mJBn0yiuxA==", - "cpu": [ - "arm64" - ], + "node_modules/@babel/helper-environment-visitor/node_modules/@babel/types": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.7.tgz", + "integrity": "sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==", "dev": true, - "optional": true, - "os": [ - "freebsd" - ], + "dependencies": { + "@babel/helper-string-parser": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7", + "to-fast-properties": "^2.0.0" + }, "engines": { - "node": ">=12" + "node": ">=6.9.0" } }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.11.tgz", - "integrity": "sha512-JkUqn44AffGXitVI6/AbQdoYAq0TEullFdqcMY/PCUZ36xJ9ZJRtQabzMA+Vi7r78+25ZIBosLTOKnUXBSi1Kw==", - "cpu": [ - "x64" - ], + "node_modules/@babel/helper-function-name": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.24.7.tgz", + "integrity": "sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==", "dev": true, - "optional": true, - "os": [ - "freebsd" - ], + "dependencies": { + "@babel/template": "^7.24.7", + "@babel/types": "^7.24.7" + }, "engines": { - "node": ">=12" + "node": ">=6.9.0" } }, - "node_modules/@esbuild/linux-arm": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.11.tgz", - "integrity": "sha512-3CRkr9+vCV2XJbjwgzjPtO8T0SZUmRZla+UL1jw+XqHZPkPgZiyWvbDvl9rqAN8Zl7qJF0O/9ycMtjU67HN9/Q==", - "cpu": [ - "arm" - ], + "node_modules/@babel/helper-function-name/node_modules/@babel/types": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.7.tgz", + "integrity": "sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==", "dev": true, - "optional": true, - "os": [ - "linux" - ], + "dependencies": { + "@babel/helper-string-parser": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7", + "to-fast-properties": "^2.0.0" + }, "engines": { - "node": ">=12" + "node": ">=6.9.0" } }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.11.tgz", - "integrity": "sha512-LneLg3ypEeveBSMuoa0kwMpCGmpu8XQUh+mL8XXwoYZ6Be2qBnVtcDI5azSvh7vioMDhoJFZzp9GWp9IWpYoUg==", - "cpu": [ - "arm64" - ], + "node_modules/@babel/helper-hoist-variables": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.7.tgz", + "integrity": "sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==", "dev": true, - "optional": true, - "os": [ - "linux" - ], + "dependencies": { + "@babel/types": "^7.24.7" + }, "engines": { - "node": ">=12" + "node": ">=6.9.0" } }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.11.tgz", - "integrity": "sha512-caHy++CsD8Bgq2V5CodbJjFPEiDPq8JJmBdeyZ8GWVQMjRD0sU548nNdwPNvKjVpamYYVL40AORekgfIubwHoA==", - "cpu": [ - "ia32" - ], + "node_modules/@babel/helper-hoist-variables/node_modules/@babel/types": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.7.tgz", + "integrity": "sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==", "dev": true, - "optional": true, - "os": [ - "linux" - ], + "dependencies": { + "@babel/helper-string-parser": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7", + "to-fast-properties": "^2.0.0" + }, "engines": { - "node": ">=12" + "node": ">=6.9.0" } }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.11.tgz", - "integrity": "sha512-ppZSSLVpPrwHccvC6nQVZaSHlFsvCQyjnvirnVjbKSHuE5N24Yl8F3UwYUUR1UEPaFObGD2tSvVKbvR+uT1Nrg==", - "cpu": [ - "loong64" - ], + "node_modules/@babel/helper-module-imports": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz", + "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==", "dev": true, - "optional": true, - "os": [ - "linux" - ], + "dependencies": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, "engines": { - "node": ">=12" + "node": ">=6.9.0" } }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.11.tgz", - "integrity": "sha512-B5x9j0OgjG+v1dF2DkH34lr+7Gmv0kzX6/V0afF41FkPMMqaQ77pH7CrhWeR22aEeHKaeZVtZ6yFwlxOKPVFyg==", - "cpu": [ - "mips64el" - ], + "node_modules/@babel/helper-module-imports/node_modules/@babel/types": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.7.tgz", + "integrity": "sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==", "dev": true, - "optional": true, - "os": [ - "linux" - ], + "dependencies": { + "@babel/helper-string-parser": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7", + "to-fast-properties": "^2.0.0" + }, "engines": { - "node": ">=12" + "node": ">=6.9.0" } }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.11.tgz", - "integrity": "sha512-MHrZYLeCG8vXblMetWyttkdVRjQlQUb/oMgBNurVEnhj4YWOr4G5lmBfZjHYQHHN0g6yDmCAQRR8MUHldvvRDA==", - "cpu": [ - "ppc64" - ], + "node_modules/@babel/helper-module-transforms": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.7.tgz", + "integrity": "sha512-1fuJEwIrp+97rM4RWdO+qrRsZlAeL1lQJoPqtCYWv0NL115XM93hIH4CSRln2w52SqvmY5hqdtauB6QFCDiZNQ==", "dev": true, - "optional": true, - "os": [ - "linux" - ], + "dependencies": { + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-simple-access": "^7.24.7", + "@babel/helper-split-export-declaration": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7" + }, "engines": { - "node": ">=12" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.11.tgz", - "integrity": "sha512-f3DY++t94uVg141dozDu4CCUkYW+09rWtaWfnb3bqe4w5NqmZd6nPVBm+qbz7WaHZCoqXqHz5p6CM6qv3qnSSQ==", - "cpu": [ - "riscv64" - ], + "node_modules/@babel/helper-plugin-utils": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.7.tgz", + "integrity": "sha512-Rq76wjt7yz9AAc1KnlRKNAi/dMSVWgDRx43FHoJEbcYU6xOWaE2dVPwcdTukJrjxS65GITyfbvEYHvkirZ6uEg==", "dev": true, - "optional": true, - "os": [ - "linux" - ], "engines": { - "node": ">=12" + "node": ">=6.9.0" } }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.11.tgz", - "integrity": "sha512-A5xdUoyWJHMMlcSMcPGVLzYzpcY8QP1RtYzX5/bS4dvjBGVxdhuiYyFwp7z74ocV7WDc0n1harxmpq2ePOjI0Q==", - "cpu": [ - "s390x" - ], + "node_modules/@babel/helper-simple-access": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz", + "integrity": "sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==", "dev": true, - "optional": true, - "os": [ - "linux" - ], + "dependencies": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, "engines": { - "node": ">=12" + "node": ">=6.9.0" } }, - "node_modules/@esbuild/linux-x64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.11.tgz", - "integrity": "sha512-grbyMlVCvJSfxFQUndw5mCtWs5LO1gUlwP4CDi4iJBbVpZcqLVT29FxgGuBJGSzyOxotFG4LoO5X+M1350zmPA==", - "cpu": [ - "x64" - ], + "node_modules/@babel/helper-simple-access/node_modules/@babel/types": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.7.tgz", + "integrity": "sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==", "dev": true, - "optional": true, - "os": [ - "linux" - ], + "dependencies": { + "@babel/helper-string-parser": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7", + "to-fast-properties": "^2.0.0" + }, "engines": { - "node": ">=12" + "node": ">=6.9.0" } }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.11.tgz", - "integrity": "sha512-13jvrQZJc3P230OhU8xgwUnDeuC/9egsjTkXN49b3GcS5BKvJqZn86aGM8W9pd14Kd+u7HuFBMVtrNGhh6fHEQ==", - "cpu": [ - "x64" - ], + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.7.tgz", + "integrity": "sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==", "dev": true, - "optional": true, - "os": [ - "netbsd" - ], + "dependencies": { + "@babel/types": "^7.24.7" + }, "engines": { - "node": ">=12" + "node": ">=6.9.0" } }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.11.tgz", - "integrity": "sha512-ysyOGZuTp6SNKPE11INDUeFVVQFrhcNDVUgSQVDzqsqX38DjhPEPATpid04LCoUr2WXhQTEZ8ct/EgJCUDpyNw==", - "cpu": [ - "x64" - ], + "node_modules/@babel/helper-split-export-declaration/node_modules/@babel/types": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.7.tgz", + "integrity": "sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==", "dev": true, - "optional": true, - "os": [ - "openbsd" - ], + "dependencies": { + "@babel/helper-string-parser": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7", + "to-fast-properties": "^2.0.0" + }, "engines": { - "node": ">=12" + "node": ">=6.9.0" } }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.11.tgz", - "integrity": "sha512-Hf+Sad9nVwvtxy4DXCZQqLpgmRTQqyFyhT3bZ4F2XlJCjxGmRFF0Shwn9rzhOYRB61w9VMXUkxlBy56dk9JJiQ==", - "cpu": [ - "x64" - ], + "node_modules/@babel/helper-string-parser": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.7.tgz", + "integrity": "sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==", "dev": true, - "optional": true, - "os": [ - "sunos" - ], "engines": { - "node": ">=12" + "node": ">=6.9.0" } }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.11.tgz", - "integrity": "sha512-0P58Sbi0LctOMOQbpEOvOL44Ne0sqbS0XWHMvvrg6NE5jQ1xguCSSw9jQeUk2lfrXYsKDdOe6K+oZiwKPilYPQ==", - "cpu": [ - "arm64" - ], + "node_modules/@babel/helper-validator-identifier": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", + "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", "dev": true, - "optional": true, - "os": [ - "win32" - ], "engines": { - "node": ">=12" + "node": ">=6.9.0" } }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.11.tgz", - "integrity": "sha512-6YOrWS+sDJDmshdBIQU+Uoyh7pQKrdykdefC1avn76ss5c+RN6gut3LZA4E2cH5xUEp5/cA0+YxRaVtRAb0xBg==", - "cpu": [ - "ia32" - ], + "node_modules/@babel/helper-validator-option": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.7.tgz", + "integrity": "sha512-yy1/KvjhV/ZCL+SM7hBrvnZJ3ZuT9OuZgIJAGpPEToANvc3iM6iDvBnRjtElWibHU6n8/LPR/EjX9EtIEYO3pw==", "dev": true, - "optional": true, - "os": [ - "win32" - ], "engines": { - "node": ">=12" + "node": ">=6.9.0" } }, - "node_modules/@esbuild/win32-x64": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.11.tgz", - "integrity": "sha512-vfkhltrjCAb603XaFhqhAF4LGDi2M4OrCRrFusyQ+iTLQ/o60QQXxc9cZC/FFpihBI9N1Grn6SMKVJ4KP7Fuiw==", - "cpu": [ - "x64" - ], + "node_modules/@babel/helpers": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.7.tgz", + "integrity": "sha512-NlmJJtvcw72yRJRcnCmGvSi+3jDEg8qFu3z0AFoymmzLx5ERVWyzd9kVXr7Th9/8yIJi2Zc6av4Tqz3wFs8QWg==", "dev": true, - "optional": true, - "os": [ - "win32" - ], + "dependencies": { + "@babel/template": "^7.24.7", + "@babel/types": "^7.24.7" + }, "engines": { - "node": ">=12" + "node": ">=6.9.0" } }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", - "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "node_modules/@babel/helpers/node_modules/@babel/types": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.7.tgz", + "integrity": "sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==", "dev": true, "dependencies": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.24" + "@babel/helper-string-parser": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7", + "to-fast-properties": "^2.0.0" }, "engines": { - "node": ">=6.0.0" + "node": ">=6.9.0" } }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "node_modules/@babel/highlight": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", + "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.24.7", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, "engines": { - "node": ">=6.0.0" + "node": ">=6.9.0" } }, - "node_modules/@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, "engines": { - "node": ">=6.0.0" + "node": ">=4" } }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" } }, - "node_modules/@lancedb/vectordb-darwin-arm64": { - "version": "0.4.15", - "resolved": "https://registry.npmjs.org/@lancedb/vectordb-darwin-arm64/-/vectordb-darwin-arm64-0.4.15.tgz", - "integrity": "sha512-asNVd0ojbExbj/iRCFu/+vpnnGtAHbrn7AjrL1PFeSl1JvsvzeZBBxq+WlM4UfGKfiJhkyBvQwh609OiCP3Snw==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@lancedb/vectordb-darwin-x64": { - "version": "0.4.15", - "resolved": "https://registry.npmjs.org/@lancedb/vectordb-darwin-x64/-/vectordb-darwin-x64-0.4.15.tgz", - "integrity": "sha512-tbMGb1P9KXdnoP6dqFnjhUUjGIVzzo2V/Ewc8iktMU1scCVQ7/rEPPvTh9jHuM1r1i+wVTNtKYijIVaHZZPJLA==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@lancedb/vectordb-linux-arm64-gnu": { - "version": "0.4.15", - "resolved": "https://registry.npmjs.org/@lancedb/vectordb-linux-arm64-gnu/-/vectordb-linux-arm64-gnu-0.4.15.tgz", - "integrity": "sha512-5oiWvS9Y5mRc2PhaVzu9zoM1UFf77gDgX8IM95U87CZZdPAoREDvnbVhyIZa2SEZccEjLG7tShe+PJsOFWOT/w==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@lancedb/vectordb-linux-x64-gnu": { - "version": "0.4.15", - "resolved": "https://registry.npmjs.org/@lancedb/vectordb-linux-x64-gnu/-/vectordb-linux-x64-gnu-0.4.15.tgz", - "integrity": "sha512-FjlrV2h97t5aoammRpPSBjws2cWSKYQpzALHm8Af8QjTuvo9J/MD63Fr/D6Sb9Ie2ER3pCiWD1o8UCFndCFtRg==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@lancedb/vectordb-win32-x64-msvc": { - "version": "0.4.15", - "resolved": "https://registry.npmjs.org/@lancedb/vectordb-win32-x64-msvc/-/vectordb-win32-x64-msvc-0.4.15.tgz", - "integrity": "sha512-o3zlY/FnY426kp2Y7xn4UbD6/Oeg5xqtezYNhhmt44lCmhSlpydx+2m9Fq1OGSDNUCWtrhMhgdHVnGTu2VTa5A==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "win32" - ] + "node_modules/@babel/highlight/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } }, - "node_modules/@neon-rs/load": { - "version": "0.0.74", - "resolved": "https://registry.npmjs.org/@neon-rs/load/-/load-0.0.74.tgz", - "integrity": "sha512-/cPZD907UNz55yrc/ud4wDgQKtU1TvkD9jeqZWG6J4IMmZkp6zgjkQcKA8UvpkZlcpPHvc8J17sGzLFbP/LUYg==" + "node_modules/@babel/highlight/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "node_modules/@babel/highlight/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, "engines": { - "node": ">= 8" + "node": ">=0.8.0" } }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true, "engines": { - "node": ">= 8" + "node": ">=4" } }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" + "has-flag": "^3.0.0" }, "engines": { - "node": ">= 8" + "node": ">=4" } }, - "node_modules/@octokit/auth-token": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-4.0.0.tgz", - "integrity": "sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA==", + "node_modules/@babel/parser": { + "version": "7.18.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.4.tgz", + "integrity": "sha512-FDge0dFazETFcxGw/EXzOkN8uJp0PC7Qbm+Pe9T+av2zlBpOgunFHkQPPn+eRuClU73JF+98D531UgayY89tow==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, "engines": { - "node": ">= 18" + "node": ">=6.0.0" } }, - "node_modules/@octokit/core": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@octokit/core/-/core-5.1.0.tgz", - "integrity": "sha512-BDa2VAMLSh3otEiaMJ/3Y36GU4qf6GI+VivQ/P41NC6GHcdxpKlqV0ikSZ5gdQsmS3ojXeRx5vasgNTinF0Q4g==", + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, "dependencies": { - "@octokit/auth-token": "^4.0.0", - "@octokit/graphql": "^7.0.0", - "@octokit/request": "^8.0.2", - "@octokit/request-error": "^5.0.0", - "@octokit/types": "^12.0.0", - "before-after-hook": "^2.2.0", - "universal-user-agent": "^6.0.0" + "@babel/helper-plugin-utils": "^7.8.0" }, - "engines": { - "node": ">= 18" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@octokit/endpoint": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-9.0.4.tgz", - "integrity": "sha512-DWPLtr1Kz3tv8L0UvXTDP1fNwM0S+z6EJpRcvH66orY6Eld4XBMCSYsaWp4xIm61jTWxK68BrR7ibO+vSDnZqw==", + "node_modules/@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dev": true, "dependencies": { - "@octokit/types": "^12.0.0", - "universal-user-agent": "^6.0.0" + "@babel/helper-plugin-utils": "^7.8.0" }, - "engines": { - "node": ">= 18" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@octokit/graphql": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-7.0.2.tgz", - "integrity": "sha512-OJ2iGMtj5Tg3s6RaXH22cJcxXRi7Y3EBqbHTBRq+PQAqfaS8f/236fUrWhfSn8P4jovyzqucxme7/vWSSZBX2Q==", + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, "dependencies": { - "@octokit/request": "^8.0.1", - "@octokit/types": "^12.0.0", - "universal-user-agent": "^6.0.0" + "@babel/helper-plugin-utils": "^7.12.13" }, - "engines": { - "node": ">= 18" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@octokit/openapi-types": { - "version": "20.0.0", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-20.0.0.tgz", - "integrity": "sha512-EtqRBEjp1dL/15V7WiX5LJMIxxkdiGJnabzYx5Apx4FkQIFgAfKumXeYAqqJCj1s+BMX4cPFIFC4OLCR6stlnA==" - }, - "node_modules/@octokit/plugin-paginate-rest": { - "version": "9.2.1", - "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-9.2.1.tgz", - "integrity": "sha512-wfGhE/TAkXZRLjksFXuDZdmGnJQHvtU/joFQdweXUgzo1XwvBCD4o4+75NtFfjfLK5IwLf9vHTfSiU3sLRYpRw==", + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, "dependencies": { - "@octokit/types": "^12.6.0" - }, - "engines": { - "node": ">= 18" + "@babel/helper-plugin-utils": "^7.10.4" }, "peerDependencies": { - "@octokit/core": "5" + "@babel/core": "^7.0.0-0" } }, - "node_modules/@octokit/plugin-request-log": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-4.0.1.tgz", - "integrity": "sha512-GihNqNpGHorUrO7Qa9JbAl0dbLnqJVrV8OXe2Zm5/Y4wFkZQDfTreBzVmiRfJVfE4mClXdihHnbpyyO9FSX4HA==", - "engines": { - "node": ">= 18" + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { - "@octokit/core": "5" + "@babel/core": "^7.0.0-0" } }, - "node_modules/@octokit/plugin-rest-endpoint-methods": { - "version": "10.4.1", - "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-10.4.1.tgz", - "integrity": "sha512-xV1b+ceKV9KytQe3zCVqjg+8GTGfDYwaT1ATU5isiUyVtlVAO3HNdzpS4sr4GBx4hxQ46s7ITtZrAsxG22+rVg==", + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.7.tgz", + "integrity": "sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==", + "dev": true, "dependencies": { - "@octokit/types": "^12.6.0" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { - "node": ">= 18" + "node": ">=6.9.0" }, "peerDependencies": { - "@octokit/core": "5" + "@babel/core": "^7.0.0-0" } }, - "node_modules/@octokit/request": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-8.2.0.tgz", - "integrity": "sha512-exPif6x5uwLqv1N1irkLG1zZNJkOtj8bZxuVHd71U5Ftuxf2wGNvAJyNBcPbPC+EBzwYEbBDdSFb8EPcjpYxPQ==", + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, "dependencies": { - "@octokit/endpoint": "^9.0.0", - "@octokit/request-error": "^5.0.0", - "@octokit/types": "^12.0.0", - "universal-user-agent": "^6.0.0" + "@babel/helper-plugin-utils": "^7.10.4" }, - "engines": { - "node": ">= 18" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@octokit/request-error": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-5.0.1.tgz", - "integrity": "sha512-X7pnyTMV7MgtGmiXBwmO6M5kIPrntOXdyKZLigNfQWSEQzVxR4a4vo49vJjTWX70mPndj8KhfT4Dx+2Ng3vnBQ==", + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, "dependencies": { - "@octokit/types": "^12.0.0", - "deprecation": "^2.0.0", - "once": "^1.4.0" + "@babel/helper-plugin-utils": "^7.8.0" }, - "engines": { - "node": ">= 18" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@octokit/rest": { - "version": "20.0.2", - "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-20.0.2.tgz", - "integrity": "sha512-Ux8NDgEraQ/DMAU1PlAohyfBBXDwhnX2j33Z1nJNziqAfHi70PuxkFYIcIt8aIAxtRE7KVuKp8lSR8pA0J5iOQ==", + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, "dependencies": { - "@octokit/core": "^5.0.0", - "@octokit/plugin-paginate-rest": "^9.0.0", - "@octokit/plugin-request-log": "^4.0.0", - "@octokit/plugin-rest-endpoint-methods": "^10.0.0" + "@babel/helper-plugin-utils": "^7.10.4" }, - "engines": { - "node": ">= 18" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@octokit/types": { - "version": "12.6.0", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-12.6.0.tgz", - "integrity": "sha512-1rhSOfRa6H9w4YwK0yrf5faDaDTb+yLyBUKOCV4xtCDB5VmIPqd/v9yr9o6SAzOAlRxMiRiCic6JVM1/kunVkw==", + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, "dependencies": { - "@octokit/openapi-types": "^20.0.0" + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@types/command-line-args": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@types/command-line-args/-/command-line-args-5.2.0.tgz", - "integrity": "sha512-UuKzKpJJ/Ief6ufIaIzr3A/0XnluX7RvFgwkV89Yzvm77wCh1kFaFmqN8XEnGcN62EuHdedQjEMb8mYxFLGPyA==", - "peer": true - }, - "node_modules/@types/command-line-usage": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@types/command-line-usage/-/command-line-usage-5.0.2.tgz", - "integrity": "sha512-n7RlEEJ+4x4TS7ZQddTmNSxP+zziEG0TNsMfiRIxcIVXt71ENJ9ojeXmGO3wPoTdn7pJcU2xc3CJYMktNT6DPg==", - "peer": true - }, - "node_modules/@types/follow-redirects": { - "version": "1.14.4", - "resolved": "https://registry.npmjs.org/@types/follow-redirects/-/follow-redirects-1.14.4.tgz", - "integrity": "sha512-GWXfsD0Jc1RWiFmMuMFCpXMzi9L7oPDVwxUnZdg89kDNnqsRfUKXEtUYtA98A6lig1WXH/CYY/fvPW9HuN5fTA==", + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", "dev": true, "dependencies": { - "@types/node": "*" + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@types/node": { - "version": "20.3.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.3.0.tgz", - "integrity": "sha512-cumHmIAf6On83X7yP+LrsEyUOf/YlociZelmpRYaGFydoaPdxdt80MAbu6vWerQT2COCp2nPvHdsbD7tHn/YlQ==" - }, - "node_modules/@types/pad-left": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@types/pad-left/-/pad-left-2.1.1.tgz", - "integrity": "sha512-Xd22WCRBydkGSApl5Bw0PhAOHKSVjNL3E3AwzKaps96IMraPqy5BvZIsBVK6JLwdybUzjHnuWVwpDd0JjTfHXA==", - "peer": true - }, - "node_modules/@types/uuid": { - "version": "9.0.8", - "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-9.0.8.tgz", - "integrity": "sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==", - "dev": true - }, - "node_modules/@vercel/ncc": { - "version": "0.38.1", - "resolved": "https://registry.npmjs.org/@vercel/ncc/-/ncc-0.38.1.tgz", - "integrity": "sha512-IBBb+iI2NLu4VQn3Vwldyi2QwaXt5+hTyh58ggAMoCGE6DJmPvwL3KPBWcJl1m9LYPChBLE980Jw+CS4Wokqxw==", + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", "dev": true, - "bin": { - "ncc": "dist/ncc/cli.js" + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", "dev": true, "dependencies": { - "debug": "4" + "@babel/helper-plugin-utils": "^7.14.5" }, "engines": { - "node": ">= 6.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.7.tgz", + "integrity": "sha512-c/+fVeJBB0FeKsFvwytYiUD+LBvhHjGSI0g446PRGdSVGZLRNArBUno2PETbAly3tpiNAQR5XaZ+JslxkotsbA==", "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, "engines": { - "node": ">=8" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/@babel/template": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.7.tgz", + "integrity": "sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==", + "dev": true, "dependencies": { - "color-convert": "^2.0.1" + "@babel/code-frame": "^7.24.7", + "@babel/parser": "^7.24.7", + "@babel/types": "^7.24.7" }, "engines": { - "node": ">=8" + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template/node_modules/@babel/parser": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.7.tgz", + "integrity": "sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "engines": { + "node": ">=6.0.0" } }, - "node_modules/apache-arrow": { - "version": "14.0.2", - "resolved": "https://registry.npmjs.org/apache-arrow/-/apache-arrow-14.0.2.tgz", - "integrity": "sha512-EBO2xJN36/XoY81nhLcwCJgFwkboDZeyNQ+OPsG7bCoQjc2BT0aTyH/MR6SrL+LirSNz+cYqjGRlupMMlP1aEg==", - "peer": true, + "node_modules/@babel/template/node_modules/@babel/types": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.7.tgz", + "integrity": "sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==", + "dev": true, "dependencies": { - "@types/command-line-args": "5.2.0", - "@types/command-line-usage": "5.0.2", - "@types/node": "20.3.0", - "@types/pad-left": "2.1.1", - "command-line-args": "5.2.1", - "command-line-usage": "7.0.1", - "flatbuffers": "23.5.26", - "json-bignum": "^0.0.3", - "pad-left": "^2.1.0", - "tslib": "^2.5.3" + "@babel/helper-string-parser": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7", + "to-fast-properties": "^2.0.0" }, - "bin": { - "arrow2csv": "bin/arrow2csv.js" + "engines": { + "node": ">=6.9.0" } }, - "node_modules/array-back": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", - "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", - "peer": true, + "node_modules/@babel/traverse": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.7.tgz", + "integrity": "sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.24.7", + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-function-name": "^7.24.7", + "@babel/helper-hoist-variables": "^7.24.7", + "@babel/helper-split-export-declaration": "^7.24.7", + "@babel/parser": "^7.24.7", + "@babel/types": "^7.24.7", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, "engines": { - "node": ">=6" + "node": ">=6.9.0" } }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "node_modules/@babel/traverse/node_modules/@babel/generator": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.7.tgz", + "integrity": "sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==", "dev": true, + "dependencies": { + "@babel/types": "^7.24.7", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^2.5.1" + }, "engines": { - "node": ">=8" + "node": ">=6.9.0" } }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + "node_modules/@babel/traverse/node_modules/@babel/parser": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.7.tgz", + "integrity": "sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } }, - "node_modules/at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "node_modules/@babel/traverse/node_modules/@babel/types": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.7.tgz", + "integrity": "sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==", "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7", + "to-fast-properties": "^2.0.0" + }, "engines": { - "node": ">= 4.0.0" + "node": ">=6.9.0" } }, - "node_modules/axios": { - "version": "1.6.8", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.8.tgz", - "integrity": "sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==", + "node_modules/@babel/types": { + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.19.0.tgz", + "integrity": "sha512-YuGopBq3ke25BVSiS6fgF49Ul9gH1x70Bcr6bqRLjWCkcX8Hre1/5+z+IiWOIerRMSSEfGZVB9z9kyq7wVs9YA==", + "dev": true, "dependencies": { - "follow-redirects": "^1.15.6", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" + "@babel/helper-string-parser": "^7.18.10", + "@babel/helper-validator-identifier": "^7.18.6", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" } }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true + }, + "node_modules/@biomejs/biome": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/@biomejs/biome/-/biome-1.6.4.tgz", + "integrity": "sha512-3groVd2oWsLC0ZU+XXgHSNbq31lUcOCBkCcA7sAQGBopHcmL+jmmdoWlY3S61zIh+f2mqQTQte1g6PZKb3JJjA==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", + "hasInstallScript": true, + "bin": { + "biome": "bin/biome" + }, + "engines": { + "node": ">=14.21.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/biome" + }, + "optionalDependencies": { + "@biomejs/cli-darwin-arm64": "1.6.4", + "@biomejs/cli-darwin-x64": "1.6.4", + "@biomejs/cli-linux-arm64": "1.6.4", + "@biomejs/cli-linux-arm64-musl": "1.6.4", + "@biomejs/cli-linux-x64": "1.6.4", + "@biomejs/cli-linux-x64-musl": "1.6.4", + "@biomejs/cli-win32-arm64": "1.6.4", + "@biomejs/cli-win32-x64": "1.6.4" + } + }, + "node_modules/@biomejs/cli-darwin-arm64": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-arm64/-/cli-darwin-arm64-1.6.4.tgz", + "integrity": "sha512-2WZef8byI9NRzGajGj5RTrroW9BxtfbP9etigW1QGAtwu/6+cLkdPOWRAs7uFtaxBNiKFYA8j/BxV5zeAo5QOQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=14.21.3" + } + }, + "node_modules/@biomejs/cli-darwin-x64": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-x64/-/cli-darwin-x64-1.6.4.tgz", + "integrity": "sha512-uo1zgM7jvzcoDpF6dbGizejDLCqNpUIRkCj/oEK0PB0NUw8re/cn1EnxuOLZqDpn+8G75COLQTOx8UQIBBN/Kg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=14.21.3" + } + }, + "node_modules/@biomejs/cli-linux-arm64": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64/-/cli-linux-arm64-1.6.4.tgz", + "integrity": "sha512-wAOieaMNIpLrxGc2/xNvM//CIZg7ueWy3V5A4T7gDZ3OL/Go27EKE59a+vMKsBCYmTt7jFl4yHz0TUkUbodA/w==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=14.21.3" + } + }, + "node_modules/@biomejs/cli-linux-arm64-musl": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64-musl/-/cli-linux-arm64-musl-1.6.4.tgz", + "integrity": "sha512-Hp8Jwt6rjj0wCcYAEN6/cfwrrPLLlGOXZ56Lei4Pt4jy39+UuPeAVFPeclrrCfxyL1wQ2xPrhd/saTHSL6DoJg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=14.21.3" + } + }, + "node_modules/@biomejs/cli-linux-x64": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64/-/cli-linux-x64-1.6.4.tgz", + "integrity": "sha512-qTWhuIw+/ePvOkjE9Zxf5OqSCYxtAvcTJtVmZT8YQnmY2I62JKNV2m7tf6O5ViKZUOP0mOQ6NgqHKcHH1eT8jw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=14.21.3" + } + }, + "node_modules/@biomejs/cli-linux-x64-musl": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64-musl/-/cli-linux-x64-musl-1.6.4.tgz", + "integrity": "sha512-wqi0hr8KAx5kBO0B+m5u8QqiYFFBJOSJVSuRqTeGWW+GYLVUtXNidykNqf1JsW6jJDpbkSp2xHKE/bTlVaG2Kg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=14.21.3" + } + }, + "node_modules/@biomejs/cli-win32-arm64": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/@biomejs/cli-win32-arm64/-/cli-win32-arm64-1.6.4.tgz", + "integrity": "sha512-Wp3FiEeF6v6C5qMfLkHwf4YsoNHr/n0efvoC8jCKO/kX05OXaVExj+1uVQ1eGT7Pvx0XVm/TLprRO0vq/V6UzA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=14.21.3" + } + }, + "node_modules/@biomejs/cli-win32-x64": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/@biomejs/cli-win32-x64/-/cli-win32-x64-1.6.4.tgz", + "integrity": "sha512-mz183Di5hTSGP7KjNWEhivcP1wnHLGmOxEROvoFsIxMYtDhzJDad4k5gI/1JbmA0xe4n52vsgqo09tBhrMT/Zg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=14.21.3" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.19.11.tgz", + "integrity": "sha512-FnzU0LyE3ySQk7UntJO4+qIiQgI7KoODnZg5xzXIrFJlKd2P2gwHsHY4927xj9y5PJmJSzULiUCWmv7iWnNa7g==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.11.tgz", + "integrity": "sha512-5OVapq0ClabvKvQ58Bws8+wkLCV+Rxg7tUVbo9xu034Nm536QTII4YzhaFriQ7rMrorfnFKUsArD2lqKbFY4vw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.11.tgz", + "integrity": "sha512-aiu7K/5JnLj//KOnOfEZ0D90obUkRzDMyqd/wNAUQ34m4YUPVhRZpnqKV9uqDGxT7cToSDnIHsGooyIczu9T+Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.11.tgz", + "integrity": "sha512-eccxjlfGw43WYoY9QgB82SgGgDbibcqyDTlk3l3C0jOVHKxrjdc9CTwDUQd0vkvYg5um0OH+GpxYvp39r+IPOg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.11.tgz", + "integrity": "sha512-ETp87DRWuSt9KdDVkqSoKoLFHYTrkyz2+65fj9nfXsaV3bMhTCjtQfw3y+um88vGRKRiF7erPrh/ZuIdLUIVxQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.11.tgz", + "integrity": "sha512-fkFUiS6IUK9WYUO/+22omwetaSNl5/A8giXvQlcinLIjVkxwTLSktbF5f/kJMftM2MJp9+fXqZ5ezS7+SALp4g==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.11.tgz", + "integrity": "sha512-lhoSp5K6bxKRNdXUtHoNc5HhbXVCS8V0iZmDvyWvYq9S5WSfTIHU2UGjcGt7UeS6iEYp9eeymIl5mJBn0yiuxA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.11.tgz", + "integrity": "sha512-JkUqn44AffGXitVI6/AbQdoYAq0TEullFdqcMY/PCUZ36xJ9ZJRtQabzMA+Vi7r78+25ZIBosLTOKnUXBSi1Kw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.11.tgz", + "integrity": "sha512-3CRkr9+vCV2XJbjwgzjPtO8T0SZUmRZla+UL1jw+XqHZPkPgZiyWvbDvl9rqAN8Zl7qJF0O/9ycMtjU67HN9/Q==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.11.tgz", + "integrity": "sha512-LneLg3ypEeveBSMuoa0kwMpCGmpu8XQUh+mL8XXwoYZ6Be2qBnVtcDI5azSvh7vioMDhoJFZzp9GWp9IWpYoUg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.11.tgz", + "integrity": "sha512-caHy++CsD8Bgq2V5CodbJjFPEiDPq8JJmBdeyZ8GWVQMjRD0sU548nNdwPNvKjVpamYYVL40AORekgfIubwHoA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.11.tgz", + "integrity": "sha512-ppZSSLVpPrwHccvC6nQVZaSHlFsvCQyjnvirnVjbKSHuE5N24Yl8F3UwYUUR1UEPaFObGD2tSvVKbvR+uT1Nrg==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.11.tgz", + "integrity": "sha512-B5x9j0OgjG+v1dF2DkH34lr+7Gmv0kzX6/V0afF41FkPMMqaQ77pH7CrhWeR22aEeHKaeZVtZ6yFwlxOKPVFyg==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.11.tgz", + "integrity": "sha512-MHrZYLeCG8vXblMetWyttkdVRjQlQUb/oMgBNurVEnhj4YWOr4G5lmBfZjHYQHHN0g6yDmCAQRR8MUHldvvRDA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.11.tgz", + "integrity": "sha512-f3DY++t94uVg141dozDu4CCUkYW+09rWtaWfnb3bqe4w5NqmZd6nPVBm+qbz7WaHZCoqXqHz5p6CM6qv3qnSSQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.11.tgz", + "integrity": "sha512-A5xdUoyWJHMMlcSMcPGVLzYzpcY8QP1RtYzX5/bS4dvjBGVxdhuiYyFwp7z74ocV7WDc0n1harxmpq2ePOjI0Q==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.11.tgz", + "integrity": "sha512-grbyMlVCvJSfxFQUndw5mCtWs5LO1gUlwP4CDi4iJBbVpZcqLVT29FxgGuBJGSzyOxotFG4LoO5X+M1350zmPA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.11.tgz", + "integrity": "sha512-13jvrQZJc3P230OhU8xgwUnDeuC/9egsjTkXN49b3GcS5BKvJqZn86aGM8W9pd14Kd+u7HuFBMVtrNGhh6fHEQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.11.tgz", + "integrity": "sha512-ysyOGZuTp6SNKPE11INDUeFVVQFrhcNDVUgSQVDzqsqX38DjhPEPATpid04LCoUr2WXhQTEZ8ct/EgJCUDpyNw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.11.tgz", + "integrity": "sha512-Hf+Sad9nVwvtxy4DXCZQqLpgmRTQqyFyhT3bZ4F2XlJCjxGmRFF0Shwn9rzhOYRB61w9VMXUkxlBy56dk9JJiQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.11.tgz", + "integrity": "sha512-0P58Sbi0LctOMOQbpEOvOL44Ne0sqbS0XWHMvvrg6NE5jQ1xguCSSw9jQeUk2lfrXYsKDdOe6K+oZiwKPilYPQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.11.tgz", + "integrity": "sha512-6YOrWS+sDJDmshdBIQU+Uoyh7pQKrdykdefC1avn76ss5c+RN6gut3LZA4E2cH5xUEp5/cA0+YxRaVtRAb0xBg==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.11.tgz", + "integrity": "sha512-vfkhltrjCAb603XaFhqhAF4LGDi2M4OrCRrFusyQ+iTLQ/o60QQXxc9cZC/FFpihBI9N1Grn6SMKVJ4KP7Fuiw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", + "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/core": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", + "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", + "dev": true, + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/reporters": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^29.7.0", + "jest-config": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-resolve-dependencies": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "jest-watcher": "^29.7.0", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/core/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/core/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/environment": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", + "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", + "dev": true, + "dependencies": { + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", + "dev": true, + "dependencies": { + "expect": "^29.7.0", + "jest-snapshot": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/expect-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", + "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", + "dev": true, + "dependencies": { + "jest-get-type": "^29.6.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/fake-timers": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", + "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@sinonjs/fake-timers": "^10.0.2", + "@types/node": "*", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/globals": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", + "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", + "dev": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/types": "^29.6.3", + "jest-mock": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/reporters": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", + "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", + "dev": true, + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^6.0.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "slash": "^3.0.0", + "string-length": "^4.0.1", + "strip-ansi": "^6.0.0", + "v8-to-istanbul": "^9.0.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/reporters/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/reporters/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@jest/reporters/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@jest/reporters/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@jest/reporters/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "dev": true, + "dependencies": { + "@sinclair/typebox": "^0.27.8" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/source-map": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", + "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.18", + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/test-result": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", + "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", + "dev": true, + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/test-sequencer": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", + "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", + "dev": true, + "dependencies": { + "@jest/test-result": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/transform": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", + "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", + "dev": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^2.0.0", + "fast-json-stable-stringify": "^2.1.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "write-file-atomic": "^4.0.2" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/types": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", + "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", + "dev": true, + "dependencies": { + "@jest/schemas": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@lancedb/vectordb-darwin-arm64": { + "version": "0.4.20", + "resolved": "https://registry.npmjs.org/@lancedb/vectordb-darwin-arm64/-/vectordb-darwin-arm64-0.4.20.tgz", + "integrity": "sha512-ffP2K4sA5mQTgePyARw1y8dPN996FmpvyAYoWO+TSItaXlhcXvc+KVa5udNMCZMDYeEnEv2Xpj6k4PwW3oBz+A==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@lancedb/vectordb-darwin-x64": { + "version": "0.4.20", + "resolved": "https://registry.npmjs.org/@lancedb/vectordb-darwin-x64/-/vectordb-darwin-x64-0.4.20.tgz", + "integrity": "sha512-GSYsXE20RIehDu30FjREhJdEzhnwOTV7ZsrSXagStzLY1gr7pyd7sfqxmmUtdD09di7LnQoiM71AOpPTa01YwQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@lancedb/vectordb-linux-arm64-gnu": { + "version": "0.4.20", + "resolved": "https://registry.npmjs.org/@lancedb/vectordb-linux-arm64-gnu/-/vectordb-linux-arm64-gnu-0.4.20.tgz", + "integrity": "sha512-FpNOjOsz3nJVm6EBGyNgbOW2aFhsWZ/igeY45Z8hbZaaK2YBwrg/DASoNlUzgv6IR8cUaGJ2irNVJfsKR2cG6g==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@lancedb/vectordb-linux-x64-gnu": { + "version": "0.4.20", + "resolved": "https://registry.npmjs.org/@lancedb/vectordb-linux-x64-gnu/-/vectordb-linux-x64-gnu-0.4.20.tgz", + "integrity": "sha512-pOqWjrRZQSrLTlQPkjidRii7NZDw8Xu9pN6ouVu2JAK8n81FXaPtFCyAI+Y3v9GpnYDN0rvD4eQ36aHAVPsa2g==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@lancedb/vectordb-win32-x64-msvc": { + "version": "0.4.20", + "resolved": "https://registry.npmjs.org/@lancedb/vectordb-win32-x64-msvc/-/vectordb-win32-x64-msvc-0.4.20.tgz", + "integrity": "sha512-5J5SsYSJ7jRCmU/sgwVHdrGz43B/7R2T9OEoFTKyVAtqTZdu75rkytXyn9SyEayXVhlUOaw76N0ASm0hAoDS/A==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@neon-rs/load": { + "version": "0.0.74", + "resolved": "https://registry.npmjs.org/@neon-rs/load/-/load-0.0.74.tgz", + "integrity": "sha512-/cPZD907UNz55yrc/ud4wDgQKtU1TvkD9jeqZWG6J4IMmZkp6zgjkQcKA8UvpkZlcpPHvc8J17sGzLFbP/LUYg==" + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@octokit/auth-token": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-4.0.0.tgz", + "integrity": "sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA==", + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/core": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@octokit/core/-/core-5.2.0.tgz", + "integrity": "sha512-1LFfa/qnMQvEOAdzlQymH0ulepxbxnCYAKJZfMci/5XJyIHWgEYnDmgnKakbTh7CH2tFQ5O60oYDvns4i9RAIg==", + "dependencies": { + "@octokit/auth-token": "^4.0.0", + "@octokit/graphql": "^7.1.0", + "@octokit/request": "^8.3.1", + "@octokit/request-error": "^5.1.0", + "@octokit/types": "^13.0.0", + "before-after-hook": "^2.2.0", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/endpoint": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-9.0.5.tgz", + "integrity": "sha512-ekqR4/+PCLkEBF6qgj8WqJfvDq65RH85OAgrtnVp1mSxaXF03u2xW/hUdweGS5654IlC0wkNYC18Z50tSYTAFw==", + "dependencies": { + "@octokit/types": "^13.1.0", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/graphql": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-7.1.0.tgz", + "integrity": "sha512-r+oZUH7aMFui1ypZnAvZmn0KSqAUgE1/tUXIWaqUCa1758ts/Jio84GZuzsvUkme98kv0WFY8//n0J1Z+vsIsQ==", + "dependencies": { + "@octokit/request": "^8.3.0", + "@octokit/types": "^13.0.0", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/openapi-types": { + "version": "22.2.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-22.2.0.tgz", + "integrity": "sha512-QBhVjcUa9W7Wwhm6DBFu6ZZ+1/t/oYxqc2tp81Pi41YNuJinbFRx8B133qVOrAaBbF7D/m0Et6f9/pZt9Rc+tg==" + }, + "node_modules/@octokit/plugin-paginate-rest": { + "version": "11.3.1", + "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-11.3.1.tgz", + "integrity": "sha512-ryqobs26cLtM1kQxqeZui4v8FeznirUsksiA+RYemMPJ7Micju0WSkv50dBksTuZks9O5cg4wp+t8fZ/cLY56g==", + "dependencies": { + "@octokit/types": "^13.5.0" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "@octokit/core": "5" + } + }, + "node_modules/@octokit/plugin-request-log": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-4.0.1.tgz", + "integrity": "sha512-GihNqNpGHorUrO7Qa9JbAl0dbLnqJVrV8OXe2Zm5/Y4wFkZQDfTreBzVmiRfJVfE4mClXdihHnbpyyO9FSX4HA==", + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "@octokit/core": "5" + } + }, + "node_modules/@octokit/plugin-rest-endpoint-methods": { + "version": "13.2.2", + "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-13.2.2.tgz", + "integrity": "sha512-EI7kXWidkt3Xlok5uN43suK99VWqc8OaIMktY9d9+RNKl69juoTyxmLoWPIZgJYzi41qj/9zU7G/ljnNOJ5AFA==", + "dependencies": { + "@octokit/types": "^13.5.0" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "@octokit/core": "^5" + } + }, + "node_modules/@octokit/request": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-8.4.0.tgz", + "integrity": "sha512-9Bb014e+m2TgBeEJGEbdplMVWwPmL1FPtggHQRkV+WVsMggPtEkLKPlcVYm/o8xKLkpJ7B+6N8WfQMtDLX2Dpw==", + "dependencies": { + "@octokit/endpoint": "^9.0.1", + "@octokit/request-error": "^5.1.0", + "@octokit/types": "^13.1.0", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/request-error": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-5.1.0.tgz", + "integrity": "sha512-GETXfE05J0+7H2STzekpKObFe765O5dlAKUTLNGeH+x47z7JjXHfsHKo5z21D/o/IOZTUEI6nyWyR+bZVP/n5Q==", + "dependencies": { + "@octokit/types": "^13.1.0", + "deprecation": "^2.0.0", + "once": "^1.4.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/rest": { + "version": "20.1.1", + "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-20.1.1.tgz", + "integrity": "sha512-MB4AYDsM5jhIHro/dq4ix1iWTLGToIGk6cWF5L6vanFaMble5jTX/UBQyiv05HsWnwUtY8JrfHy2LWfKwihqMw==", + "dependencies": { + "@octokit/core": "^5.0.2", + "@octokit/plugin-paginate-rest": "11.3.1", + "@octokit/plugin-request-log": "^4.0.0", + "@octokit/plugin-rest-endpoint-methods": "13.2.2" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/types": { + "version": "13.5.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.5.0.tgz", + "integrity": "sha512-HdqWTf5Z3qwDVlzCrP8UJquMwunpDiMPt5er+QjGzL4hqr/vBVY/MauQgS1xWxCDT1oMx1EULyqxncdCY/NVSQ==", + "dependencies": { + "@octokit/openapi-types": "^22.2.0" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "dev": true + }, + "node_modules/@sinonjs/commons": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", + "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", + "dev": true, + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", + "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^3.0.0" + } + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__core/node_modules/@babel/parser": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.7.tgz", + "integrity": "sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@types/babel__core/node_modules/@babel/types": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.7.tgz", + "integrity": "sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", + "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.20.6", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz", + "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.20.7" + } + }, + "node_modules/@types/babel__traverse/node_modules/@babel/types": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.7.tgz", + "integrity": "sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@types/command-line-args": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@types/command-line-args/-/command-line-args-5.2.0.tgz", + "integrity": "sha512-UuKzKpJJ/Ief6ufIaIzr3A/0XnluX7RvFgwkV89Yzvm77wCh1kFaFmqN8XEnGcN62EuHdedQjEMb8mYxFLGPyA==", + "peer": true + }, + "node_modules/@types/command-line-usage": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@types/command-line-usage/-/command-line-usage-5.0.2.tgz", + "integrity": "sha512-n7RlEEJ+4x4TS7ZQddTmNSxP+zziEG0TNsMfiRIxcIVXt71ENJ9ojeXmGO3wPoTdn7pJcU2xc3CJYMktNT6DPg==", + "peer": true + }, + "node_modules/@types/follow-redirects": { + "version": "1.14.4", + "resolved": "https://registry.npmjs.org/@types/follow-redirects/-/follow-redirects-1.14.4.tgz", + "integrity": "sha512-GWXfsD0Jc1RWiFmMuMFCpXMzi9L7oPDVwxUnZdg89kDNnqsRfUKXEtUYtA98A6lig1WXH/CYY/fvPW9HuN5fTA==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/graceful-fs": { + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", + "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", + "dev": true + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/jest": { + "version": "29.5.12", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.12.tgz", + "integrity": "sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw==", + "dev": true, + "dependencies": { + "expect": "^29.0.0", + "pretty-format": "^29.0.0" + } + }, + "node_modules/@types/node": { + "version": "20.3.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.3.0.tgz", + "integrity": "sha512-cumHmIAf6On83X7yP+LrsEyUOf/YlociZelmpRYaGFydoaPdxdt80MAbu6vWerQT2COCp2nPvHdsbD7tHn/YlQ==" + }, + "node_modules/@types/pad-left": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@types/pad-left/-/pad-left-2.1.1.tgz", + "integrity": "sha512-Xd22WCRBydkGSApl5Bw0PhAOHKSVjNL3E3AwzKaps96IMraPqy5BvZIsBVK6JLwdybUzjHnuWVwpDd0JjTfHXA==", + "peer": true + }, + "node_modules/@types/stack-utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", + "dev": true + }, + "node_modules/@types/uuid": { + "version": "9.0.8", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-9.0.8.tgz", + "integrity": "sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==", + "dev": true + }, + "node_modules/@types/yargs": { + "version": "17.0.32", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz", + "integrity": "sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==", + "dev": true, + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.3", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", + "dev": true + }, + "node_modules/@vercel/ncc": { + "version": "0.38.1", + "resolved": "https://registry.npmjs.org/@vercel/ncc/-/ncc-0.38.1.tgz", + "integrity": "sha512-IBBb+iI2NLu4VQn3Vwldyi2QwaXt5+hTyh58ggAMoCGE6DJmPvwL3KPBWcJl1m9LYPChBLE980Jw+CS4Wokqxw==", + "dev": true, + "bin": { + "ncc": "dist/ncc/cli.js" + } + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/apache-arrow": { + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/apache-arrow/-/apache-arrow-14.0.2.tgz", + "integrity": "sha512-EBO2xJN36/XoY81nhLcwCJgFwkboDZeyNQ+OPsG7bCoQjc2BT0aTyH/MR6SrL+LirSNz+cYqjGRlupMMlP1aEg==", + "peer": true, + "dependencies": { + "@types/command-line-args": "5.2.0", + "@types/command-line-usage": "5.0.2", + "@types/node": "20.3.0", + "@types/pad-left": "2.1.1", + "command-line-args": "5.2.1", + "command-line-usage": "7.0.1", + "flatbuffers": "23.5.26", + "json-bignum": "^0.0.3", + "pad-left": "^2.1.0", + "tslib": "^2.5.3" + }, + "bin": { + "arrow2csv": "bin/arrow2csv.js" + } + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/array-back": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", + "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "node_modules/at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/axios": { + "version": "1.6.8", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.8.tgz", + "integrity": "sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/babel-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", + "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", + "dev": true, + "dependencies": { + "@jest/transform": "^29.7.0", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^29.6.3", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" + } + }, + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "dev": true, + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-istanbul/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/babel-plugin-jest-hoist": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", + "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", + "dev": true, + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/babel-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "dev": true, + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/babel-preset-jest": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", + "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", + "dev": true, + "dependencies": { + "babel-plugin-jest-hoist": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/before-after-hook": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.3.tgz", + "integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==" + }, + "node_modules/bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "optional": true, + "dependencies": { + "file-uri-to-path": "1.0.0" + } + }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/bl/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.23.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.1.tgz", + "integrity": "sha512-TUfofFo/KsK/bWZ9TWQ5O26tsWW4Uhmt8IYklbnUa70udB6P2wA7w7o4PY4muaEPBQaAX+CEnmmIA41NVHtPVw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001629", + "electron-to-chromium": "^1.4.796", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.16" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bs-logger": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", + "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", + "dev": true, + "dependencies": { + "fast-json-stable-stringify": "2.x" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dev": true, + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", "url": "https://www.patreon.com/feross" }, { - "type": "consulting", - "url": "https://feross.org/support" + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001634", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001634.tgz", + "integrity": "sha512-fbBYXQ9q3+yp1q1gBk86tOFs4pyn/yxFm5ZNP18OXJDfA3txImOY9PhfxVggZ4vRHDqoU8NrKU81eN0OtzOgRA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chalk-template": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/chalk-template/-/chalk-template-0.4.0.tgz", + "integrity": "sha512-/ghrgmhfY8RaSdeo43hNXxpoHAtxdbskUHjPpfqUWGttFgycUhYPGx3YZBCnUCvOa7Doivn1IZec3DEGFoMgLg==", + "peer": true, + "dependencies": { + "chalk": "^4.1.2" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/chalk-template?sponsor=1" + } + }, + "node_modules/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true + }, + "node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "engines": { + "node": ">=8" + } + }, + "node_modules/cjs-module-lexer": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.3.1.tgz", + "integrity": "sha512-a3KdPAANPbNE4ZUv9h6LckSl9zLsYOP4MBmhIPkRaeyybt+r4UghLvq+xw/YwUcC1gqylCkL4rdVs3Lwupjm4Q==", + "dev": true + }, + "node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/cliui/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/cliui/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true, + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/collect-v8-coverage": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", + "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", + "dev": true + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/command-line-args": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz", + "integrity": "sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==", + "peer": true, + "dependencies": { + "array-back": "^3.1.0", + "find-replace": "^3.0.0", + "lodash.camelcase": "^4.3.0", + "typical": "^4.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/command-line-usage": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-7.0.1.tgz", + "integrity": "sha512-NCyznE//MuTjwi3y84QVUGEOT+P5oto1e1Pk/jFPVdPPfsG03qpTIl3yw6etR+v73d0lXsoojRpvbru2sqePxQ==", + "peer": true, + "dependencies": { + "array-back": "^6.2.2", + "chalk-template": "^0.4.0", + "table-layout": "^3.0.0", + "typical": "^7.1.1" + }, + "engines": { + "node": ">=12.20.0" + } + }, + "node_modules/command-line-usage/node_modules/array-back": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-6.2.2.tgz", + "integrity": "sha512-gUAZ7HPyb4SJczXAMUXMGAvI976JoK3qEx9v1FTmeYuJj0IBiaKttG1ydtGKdkfqWkIkouke7nG8ufGy77+Cvw==", + "peer": true, + "engines": { + "node": ">=12.17" + } + }, + "node_modules/command-line-usage/node_modules/typical": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/typical/-/typical-7.1.1.tgz", + "integrity": "sha512-T+tKVNs6Wu7IWiAce5BgMd7OZfNYUndHwc5MknN+UHOudi7sGZzuHdCadllRuqJ3fPtgFtIH9+lt9qRv6lmpfA==", + "peer": true, + "engines": { + "node": ">=12.17" + } + }, + "node_modules/commander": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", + "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", + "engines": { + "node": ">=18" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "node_modules/core": { + "resolved": "../core", + "link": true + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true + }, + "node_modules/create-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", + "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "prompts": "^2.0.1" + }, + "bin": { + "create-jest": "bin/create-jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/data-uri-to-buffer": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", + "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", + "engines": { + "node": ">= 12" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "dev": true, + "dependencies": { + "mimic-response": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/dedent": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.3.tgz", + "integrity": "sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==", + "dev": true, + "peerDependencies": { + "babel-plugin-macros": "^3.1.0" + }, + "peerDependenciesMeta": { + "babel-plugin-macros": { + "optional": true + } + } + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/deprecation": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", + "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==" + }, + "node_modules/detect-libc": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", + "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "dev": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true + }, + "node_modules/electron-to-chromium": { + "version": "1.4.803", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.803.tgz", + "integrity": "sha512-61H9mLzGOCLLVsnLiRzCbc63uldP0AniRYPV3hbGVtONA1pI7qSGILdbofR7A8TMbOypDocEAjH/e+9k1QIe3g==", + "dev": true + }, + "node_modules/emittery": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", + "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/esbuild": { + "version": "0.19.11", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.11.tgz", + "integrity": "sha512-HJ96Hev2hX/6i5cDVwcqiJBBtuo9+FeIJOtZ9W1kA5M6AMJRHUZlpYZ1/SbEwtO0ioNAW8rUooVpC/WehY2SfA==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.19.11", + "@esbuild/android-arm": "0.19.11", + "@esbuild/android-arm64": "0.19.11", + "@esbuild/android-x64": "0.19.11", + "@esbuild/darwin-arm64": "0.19.11", + "@esbuild/darwin-x64": "0.19.11", + "@esbuild/freebsd-arm64": "0.19.11", + "@esbuild/freebsd-x64": "0.19.11", + "@esbuild/linux-arm": "0.19.11", + "@esbuild/linux-arm64": "0.19.11", + "@esbuild/linux-ia32": "0.19.11", + "@esbuild/linux-loong64": "0.19.11", + "@esbuild/linux-mips64el": "0.19.11", + "@esbuild/linux-ppc64": "0.19.11", + "@esbuild/linux-riscv64": "0.19.11", + "@esbuild/linux-s390x": "0.19.11", + "@esbuild/linux-x64": "0.19.11", + "@esbuild/netbsd-x64": "0.19.11", + "@esbuild/openbsd-x64": "0.19.11", + "@esbuild/sunos-x64": "0.19.11", + "@esbuild/win32-arm64": "0.19.11", + "@esbuild/win32-ia32": "0.19.11", + "@esbuild/win32-x64": "0.19.11" + } + }, + "node_modules/escalade": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/execa/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/expand-template": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", + "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", + "dev": true, + "dependencies": { + "@jest/expect-utils": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "dev": true, + "dependencies": { + "bser": "2.1.1" + } + }, + "node_modules/fetch-blob": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", + "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "paypal", + "url": "https://paypal.me/jimmywarting" } - ] + ], + "dependencies": { + "node-domexception": "^1.0.0", + "web-streams-polyfill": "^3.0.3" + }, + "engines": { + "node": "^12.20 || >= 14.13" + } + }, + "node_modules/file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "optional": true + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-replace": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz", + "integrity": "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==", + "peer": true, + "dependencies": { + "array-back": "^3.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/flatbuffers": { + "version": "23.5.26", + "resolved": "https://registry.npmjs.org/flatbuffers/-/flatbuffers-23.5.26.tgz", + "integrity": "sha512-vE+SI9vrJDwi1oETtTIFldC/o9GsVKRM+s6EL0nQgxXlYV1Vc4Tk30hj4xGICftInKQKj1F3up2n8UbIVobISQ==", + "peer": true + }, + "node_modules/follow-redirects": { + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/foreground-child": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", + "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/formdata-polyfill": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", + "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", + "dependencies": { + "fetch-blob": "^3.1.2" + }, + "engines": { + "node": ">=12.20.0" + } + }, + "node_modules/from2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "integrity": "sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + } + }, + "node_modules/fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", + "dev": true + }, + "node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/github-from-package": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", + "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==", + "dev": true + }, + "node_modules/glob": { + "version": "10.3.15", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.15.tgz", + "integrity": "sha512-0c6RlJt1TICLyvJYIApxb8GsXoai0KUP7AxKKAtsYXdgJR1mGEUa7DgwShbdk1nly0PYoZj01xd4hzbq3fsjpw==", + "dev": true, + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.6", + "minimatch": "^9.0.1", + "minipass": "^7.0.4", + "path-scurry": "^1.11.0" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "node_modules/before-after-hook": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.3.tgz", - "integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==" + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true }, - "node_modules/bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "node_modules/has": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.4.tgz", + "integrity": "sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==", "dev": true, - "dependencies": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" + "engines": { + "node": ">= 0.4.0" } }, - "node_modules/bl/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", "dev": true, "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" + "function-bind": "^1.1.2" }, "engines": { - "node": ">= 6" + "node": ">= 0.4" } }, - "node_modules/braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", "dev": true, "dependencies": { - "fill-range": "^7.1.1" + "agent-base": "6", + "debug": "4" }, "engines": { - "node": ">=8" + "node": ">= 6" } }, - "node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", "dev": true, "funding": [ { @@ -1072,634 +3878,1061 @@ "type": "consulting", "url": "https://feross.org/support" } - ], + ] + }, + "node_modules/ignore": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "dev": true, "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dev": true, "dependencies": { - "ansi-styles": "^4.1.0", + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, + "node_modules/into-stream": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-6.0.0.tgz", + "integrity": "sha512-XHbaOAvP+uFKUFsOgoNPRjLkwB+I22JFPFe5OjTkQ0nwgj6+pSjb4NmB6VMxaPshLiOf+zcpOCBQuLwC1KHhZA==", + "dev": true, + "dependencies": { + "from2": "^2.3.0", + "p-is-promise": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "node_modules/is-core-module": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", + "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-electron": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/is-electron/-/is-electron-2.2.2.tgz", + "integrity": "sha512-FO/Rhvz5tuw4MCWkpMzHFKWD2LsfHzIb7i6MdPYZ/KW7AlxawyLkqdy+jPZP1WubqEADE3O4FUENlJHDfQASRg==" + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.2.tgz", + "integrity": "sha512-1WUsZ9R1lA0HtBSohTkm39WTPlNKSJ5iFk7UwqXkBLoHQT+hfqPsfsTDVuZdKGaBwn7din9bS7SsnoAr943hvw==", + "dev": true, + "dependencies": { + "@babel/core": "^7.23.9", + "@babel/parser": "^7.23.9", + "@istanbuljs/schema": "^0.1.3", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-instrument/node_modules/@babel/parser": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.7.tgz", + "integrity": "sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", + "dev": true, + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", "supports-color": "^7.1.0" }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-report/node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dev": true, + "dependencies": { + "semver": "^7.5.3" + }, "engines": { "node": ">=10" }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/chalk-template": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/chalk-template/-/chalk-template-0.4.0.tgz", - "integrity": "sha512-/ghrgmhfY8RaSdeo43hNXxpoHAtxdbskUHjPpfqUWGttFgycUhYPGx3YZBCnUCvOa7Doivn1IZec3DEGFoMgLg==", - "peer": true, + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, "dependencies": { - "chalk": "^4.1.2" + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/chalk-template?sponsor=1" + "node": ">=10" } }, - "node_modules/chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "dev": true - }, - "node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "node_modules/istanbul-reports": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", + "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", "dev": true, "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/jackspeak": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", + "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", + "dev": true, "dependencies": { - "color-name": "~1.1.4" + "@isaacs/cliui": "^8.0.2" }, "engines": { - "node": ">=7.0.0" + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" } }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "node_modules/jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", + "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", + "dev": true, "dependencies": { - "delayed-stream": "~1.0.0" + "@jest/core": "^29.7.0", + "@jest/types": "^29.6.3", + "import-local": "^3.0.2", + "jest-cli": "^29.7.0" + }, + "bin": { + "jest": "bin/jest.js" }, "engines": { - "node": ">= 0.8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } } }, - "node_modules/command-line-args": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz", - "integrity": "sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==", - "peer": true, + "node_modules/jest-changed-files": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", + "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", + "dev": true, "dependencies": { - "array-back": "^3.1.0", - "find-replace": "^3.0.0", - "lodash.camelcase": "^4.3.0", - "typical": "^4.0.0" + "execa": "^5.0.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0" }, "engines": { - "node": ">=4.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/command-line-usage": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-7.0.1.tgz", - "integrity": "sha512-NCyznE//MuTjwi3y84QVUGEOT+P5oto1e1Pk/jFPVdPPfsG03qpTIl3yw6etR+v73d0lXsoojRpvbru2sqePxQ==", - "peer": true, + "node_modules/jest-circus": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", + "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", + "dev": true, "dependencies": { - "array-back": "^6.2.2", - "chalk-template": "^0.4.0", - "table-layout": "^3.0.0", - "typical": "^7.1.1" + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^1.0.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^29.7.0", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0", + "pretty-format": "^29.7.0", + "pure-rand": "^6.0.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" }, "engines": { - "node": ">=12.20.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/command-line-usage/node_modules/array-back": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-6.2.2.tgz", - "integrity": "sha512-gUAZ7HPyb4SJczXAMUXMGAvI976JoK3qEx9v1FTmeYuJj0IBiaKttG1ydtGKdkfqWkIkouke7nG8ufGy77+Cvw==", - "peer": true, + "node_modules/jest-cli": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", + "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", + "dev": true, + "dependencies": { + "@jest/core": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "create-jest": "^29.7.0", + "exit": "^0.1.2", + "import-local": "^3.0.2", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "yargs": "^17.3.1" + }, + "bin": { + "jest": "bin/jest.js" + }, "engines": { - "node": ">=12.17" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } } }, - "node_modules/command-line-usage/node_modules/typical": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/typical/-/typical-7.1.1.tgz", - "integrity": "sha512-T+tKVNs6Wu7IWiAce5BgMd7OZfNYUndHwc5MknN+UHOudi7sGZzuHdCadllRuqJ3fPtgFtIH9+lt9qRv6lmpfA==", - "peer": true, + "node_modules/jest-cli/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, "engines": { - "node": ">=12.17" + "node": ">=8" } }, - "node_modules/commander": { - "version": "12.0.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-12.0.0.tgz", - "integrity": "sha512-MwVNWlYjDTtOjX5PiD7o5pK0UrFU/OYgcJfjjK4RaHZETNtjJqrZa9Y9ds88+A+f+d5lv+561eZ+yCKoS3gbAA==", + "node_modules/jest-cli/node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, "engines": { - "node": ">=18" + "node": ">=12" } }, - "node_modules/core": { - "resolved": "../core", - "link": true - }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "node_modules/jest-cli/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "node_modules/jest-cli/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, "dependencies": { - "ms": "2.1.2" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" }, "engines": { - "node": ">=6.0" + "node": ">=8" + } + }, + "node_modules/jest-cli/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "engines": { + "node": ">=8" } }, - "node_modules/decompress-response": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", - "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "node_modules/jest-cli/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, "dependencies": { - "mimic-response": "^3.1.0" + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" }, "engines": { "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "node_modules/jest-cli/node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dev": true, + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "engines": { - "node": ">=0.4.0" + "node": ">=12" } }, - "node_modules/deprecation": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", - "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==" - }, - "node_modules/detect-libc": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", - "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==", + "node_modules/jest-cli/node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", "dev": true, "engines": { - "node": ">=8" + "node": ">=12" } }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "node_modules/jest-config": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", + "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", "dev": true, "dependencies": { - "path-type": "^4.0.0" + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-jest": "^29.7.0", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-circus": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" }, "engines": { - "node": ">=8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@types/node": "*", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "ts-node": { + "optional": true + } } }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "node_modules/jest-config/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "dependencies": { - "once": "^1.4.0" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "node_modules/esbuild": { - "version": "0.19.11", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.11.tgz", - "integrity": "sha512-HJ96Hev2hX/6i5cDVwcqiJBBtuo9+FeIJOtZ9W1kA5M6AMJRHUZlpYZ1/SbEwtO0ioNAW8rUooVpC/WehY2SfA==", + "node_modules/jest-config/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", "dev": true, - "hasInstallScript": true, - "bin": { - "esbuild": "bin/esbuild" + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" }, "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.19.11", - "@esbuild/android-arm": "0.19.11", - "@esbuild/android-arm64": "0.19.11", - "@esbuild/android-x64": "0.19.11", - "@esbuild/darwin-arm64": "0.19.11", - "@esbuild/darwin-x64": "0.19.11", - "@esbuild/freebsd-arm64": "0.19.11", - "@esbuild/freebsd-x64": "0.19.11", - "@esbuild/linux-arm": "0.19.11", - "@esbuild/linux-arm64": "0.19.11", - "@esbuild/linux-ia32": "0.19.11", - "@esbuild/linux-loong64": "0.19.11", - "@esbuild/linux-mips64el": "0.19.11", - "@esbuild/linux-ppc64": "0.19.11", - "@esbuild/linux-riscv64": "0.19.11", - "@esbuild/linux-s390x": "0.19.11", - "@esbuild/linux-x64": "0.19.11", - "@esbuild/netbsd-x64": "0.19.11", - "@esbuild/openbsd-x64": "0.19.11", - "@esbuild/sunos-x64": "0.19.11", - "@esbuild/win32-arm64": "0.19.11", - "@esbuild/win32-ia32": "0.19.11", - "@esbuild/win32-x64": "0.19.11" + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/escalade": { + "node_modules/jest-config/node_modules/minimatch": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", - "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, "engines": { - "node": ">=6" + "node": "*" } }, - "node_modules/expand-template": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", - "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==", + "node_modules/jest-config/node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "dev": true, "engines": { - "node": ">=6" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/fast-glob": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", - "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "node_modules/jest-diff": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", "dev": true, "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" + "chalk": "^4.0.0", + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" }, "engines": { - "node": ">=8.6.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/fastq": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", - "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "node_modules/jest-docblock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", + "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", "dev": true, "dependencies": { - "reusify": "^1.0.4" + "detect-newline": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "node_modules/jest-each": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", + "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", "dev": true, "dependencies": { - "to-regex-range": "^5.0.1" + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "jest-util": "^29.7.0", + "pretty-format": "^29.7.0" }, "engines": { - "node": ">=8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/find-replace": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz", - "integrity": "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==", - "peer": true, + "node_modules/jest-environment-node": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", + "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", + "dev": true, "dependencies": { - "array-back": "^3.0.1" + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" }, "engines": { - "node": ">=4.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/flatbuffers": { - "version": "23.5.26", - "resolved": "https://registry.npmjs.org/flatbuffers/-/flatbuffers-23.5.26.tgz", - "integrity": "sha512-vE+SI9vrJDwi1oETtTIFldC/o9GsVKRM+s6EL0nQgxXlYV1Vc4Tk30hj4xGICftInKQKj1F3up2n8UbIVobISQ==", - "peer": true + "node_modules/jest-get-type": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", + "dev": true, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } }, - "node_modules/follow-redirects": { - "version": "1.15.6", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", - "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], + "node_modules/jest-haste-map": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", + "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", + "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "micromatch": "^4.0.4", + "walker": "^1.0.8" + }, "engines": { - "node": ">=4.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } + "optionalDependencies": { + "fsevents": "^2.3.2" } }, - "node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "node_modules/jest-leak-detector": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", + "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", + "dev": true, "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" }, "engines": { - "node": ">= 6" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==", + "node_modules/jest-matcher-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", + "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", "dev": true, "dependencies": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" + "chalk": "^4.0.0", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", - "dev": true - }, - "node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "node_modules/jest-message-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", + "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", "dev": true, "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" + "@babel/code-frame": "^7.12.13", + "@jest/types": "^29.6.3", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" }, "engines": { - "node": ">=10" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "node_modules/jest-mock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", + "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "dependencies": { + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "node_modules/jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", "dev": true, "engines": { - "node": "6.* || 8.* || >= 10.*" + "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } } }, - "node_modules/github-from-package": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", - "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==", - "dev": true - }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "node_modules/jest-regex-util": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", + "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, "engines": { - "node": ">= 6" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "node_modules/jest-resolve": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", + "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", "dev": true, "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "resolve": "^1.20.0", + "resolve.exports": "^2.0.0", "slash": "^3.0.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true - }, - "node_modules/has": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.4.tgz", - "integrity": "sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==", + "node_modules/jest-resolve-dependencies": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", + "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", "dev": true, + "dependencies": { + "jest-regex-util": "^29.6.3", + "jest-snapshot": "^29.7.0" + }, "engines": { - "node": ">= 0.4.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/jest-runner": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", + "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", + "dev": true, + "dependencies": { + "@jest/console": "^29.7.0", + "@jest/environment": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-leak-detector": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-resolve": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-util": "^29.7.0", + "jest-watcher": "^29.7.0", + "jest-worker": "^29.7.0", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" + }, "engines": { - "node": ">=8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "node_modules/jest-runtime": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", + "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", "dev": true, "dependencies": { - "function-bind": "^1.1.2" + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/globals": "^29.7.0", + "@jest/source-map": "^29.6.3", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" }, "engines": { - "node": ">= 0.4" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "node_modules/jest-runtime/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "dependencies": { - "agent-base": "6", - "debug": "4" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/jest-runtime/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" }, "engines": { - "node": ">= 6" + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "node_modules/jest-runtime/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } }, - "node_modules/ignore": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", - "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "node_modules/jest-snapshot": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", + "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", "dev": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-jsx": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "natural-compare": "^1.4.0", + "pretty-format": "^29.7.0", + "semver": "^7.5.3" + }, "engines": { - "node": ">= 4" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true - }, - "node_modules/into-stream": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-6.0.0.tgz", - "integrity": "sha512-XHbaOAvP+uFKUFsOgoNPRjLkwB+I22JFPFe5OjTkQ0nwgj6+pSjb4NmB6VMxaPshLiOf+zcpOCBQuLwC1KHhZA==", + "node_modules/jest-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", + "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", "dev": true, "dependencies": { - "from2": "^2.3.0", - "p-is-promise": "^3.0.0" + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/is-core-module": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", - "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", + "node_modules/jest-validate": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", + "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", "dev": true, "dependencies": { - "has": "^1.0.3" + "@jest/types": "^29.6.3", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "leven": "^3.1.0", + "pretty-format": "^29.7.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "node_modules/jest-validate/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "node_modules/jest-watcher": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", + "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", "dev": true, + "dependencies": { + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "jest-util": "^29.7.0", + "string-length": "^4.0.1" + }, "engines": { - "node": ">=8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "node_modules/jest-worker": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", + "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", "dev": true, "dependencies": { - "is-extglob": "^2.1.1" + "@types/node": "*", + "jest-util": "^29.7.0", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" }, "engines": { - "node": ">=0.10.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, "engines": { - "node": ">=0.12.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", "dev": true }, + "node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, "node_modules/jsesc": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", @@ -1721,6 +4954,24 @@ "node": ">=0.8" } }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/jsonfile": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", @@ -1733,6 +4984,42 @@ "graceful-fs": "^4.1.6" } }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/lodash.assignwith": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/lodash.assignwith/-/lodash.assignwith-4.2.0.tgz", @@ -1745,18 +5032,75 @@ "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", "peer": true }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "dev": true + }, "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", + "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", "dev": true, + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/mac-ca": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/mac-ca/-/mac-ca-2.0.3.tgz", + "integrity": "sha512-FkcNXYdUzfNEElPoYYLDHOXPCQePj4iK7Ir4OYy6Tr7yAUS2bFud4Uh1QdIsATDwRQN/miNUyZEltX2nA/tDAQ==", + "dependencies": { + "node-forge": "^1.3.1" + } + }, + "node_modules/macos-export-certificate-and-key": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/macos-export-certificate-and-key/-/macos-export-certificate-and-key-1.1.2.tgz", + "integrity": "sha512-kd4ba3kVKZXy46p4tg3X19dmwaXjtz0La5It6Rt6PbtwP+YcQ0F7ab8MjcSHOvz9NSXmAU15qQG53OlBDAPDzQ==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "dependencies": { + "bindings": "^1.5.0", + "node-addon-api": "^4.3.0" + } + }, + "node_modules/make-dir": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", + "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", "dependencies": { - "yallist": "^4.0.0" + "pify": "^3.0.0" }, "engines": { - "node": ">=10" + "node": ">=4" + } + }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, + "dependencies": { + "tmpl": "1.0.5" } }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, "node_modules/merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", @@ -1798,6 +5142,15 @@ "node": ">= 0.6" } }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/mimic-response": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", @@ -1810,6 +5163,21 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/minimatch": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/minimist": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", @@ -1819,6 +5187,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/minipass": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.1.tgz", + "integrity": "sha512-UZ7eQ+h8ywIRAW1hIEl2AqdwzJucU/Kp59+8kkZeSvafXhZjul247BvIJjEVFVeON6d7lM46XX1HXCduKAS8VA==", + "dev": true, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, "node_modules/mkdirp-classic": { "version": "0.5.3", "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", @@ -1875,6 +5252,12 @@ "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==", "dev": true }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, "node_modules/ncp": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ncp/-/ncp-2.0.0.tgz", @@ -1884,9 +5267,9 @@ } }, "node_modules/node-abi": { - "version": "3.57.0", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.57.0.tgz", - "integrity": "sha512-Dp+A9JWxRaKuHP35H77I4kCKesDy5HUDEmScia2FyncMTOXASMyg251F5PhFoDA5uqBrDDffiLpbqnrZmNXW+g==", + "version": "3.62.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.62.0.tgz", + "integrity": "sha512-CPMcGa+y33xuL1E0TcNIu4YyaZCxnnvkVaEXrsosR3FxN+fV8xvb7Mzpb7IgKler10qeMkE6+Dp8qJhpzdq35g==", "dev": true, "dependencies": { "semver": "^7.3.5" @@ -1895,24 +5278,86 @@ "node": ">=10" } }, + "node_modules/node-addon-api": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-4.3.0.tgz", + "integrity": "sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==", + "optional": true + }, + "node_modules/node-domexception": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", + "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "github", + "url": "https://paypal.me/jimmywarting" + } + ], + "engines": { + "node": ">=10.5.0" + } + }, "node_modules/node-fetch": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", - "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", - "dev": true, + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz", + "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==", "dependencies": { - "whatwg-url": "^5.0.0" + "data-uri-to-buffer": "^4.0.0", + "fetch-blob": "^3.1.4", + "formdata-polyfill": "^4.0.10" }, "engines": { - "node": "4.x || >=6.0.0" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, - "peerDependencies": { - "encoding": "^0.1.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/node-fetch" + } + }, + "node_modules/node-forge": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", + "engines": { + "node": ">= 6.13.0" + } + }, + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true + }, + "node_modules/node-releases": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", + "dev": true + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } + "engines": { + "node": ">=8" } }, "node_modules/once": { @@ -1923,6 +5368,21 @@ "wrappy": "1" } }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/p-is-promise": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-3.0.0.tgz", @@ -1932,6 +5392,57 @@ "node": ">=8" } }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-locate/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/pad-left": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/pad-left/-/pad-left-2.1.0.tgz", @@ -1941,7 +5452,52 @@ "repeat-string": "^1.5.4" }, "engines": { - "node": ">=0.10.0" + "node": ">=0.10.0" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" } }, "node_modules/path-parse": { @@ -1950,6 +5506,22 @@ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "dev": true, + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", @@ -1959,6 +5531,12 @@ "node": ">=8" } }, + "node_modules/picocolors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", + "dev": true + }, "node_modules/picomatch": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", @@ -1971,6 +5549,23 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "engines": { + "node": ">=4" + } + }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, "node_modules/pkg": { "version": "5.8.1", "resolved": "https://registry.npmjs.org/pkg/-/pkg-5.8.1.tgz", @@ -2004,6 +5599,18 @@ } } }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/pkg-fetch": { "version": "3.4.2", "resolved": "https://registry.npmjs.org/pkg-fetch/-/pkg-fetch-3.4.2.tgz", @@ -2023,6 +5630,26 @@ "pkg-fetch": "lib-es5/bin.js" } }, + "node_modules/pkg-fetch/node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "dev": true, + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, "node_modules/posthog-node": { "version": "3.6.3", "resolved": "https://registry.npmjs.org/posthog-node/-/posthog-node-3.6.3.tgz", @@ -2061,6 +5688,32 @@ "node": ">=10" } }, + "node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dev": true, + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, "node_modules/process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", @@ -2076,6 +5729,19 @@ "node": ">=0.4.0" } }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/proxy-from-env": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", @@ -2091,6 +5757,22 @@ "once": "^1.3.1" } }, + "node_modules/pure-rand": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.1.0.tgz", + "integrity": "sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/dubzzz" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fast-check" + } + ] + }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -2126,6 +5808,12 @@ "rc": "cli.js" } }, + "node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "dev": true + }, "node_modules/readable-stream": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", @@ -2176,6 +5864,36 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve.exports": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", + "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", + "dev": true, + "engines": { + "node": ">=10" + } + }, "node_modules/resolve/node_modules/is-core-module": { "version": "2.13.1", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", @@ -2198,6 +5916,24 @@ "node": ">=0.10.0" } }, + "node_modules/rimraf": { + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.7.tgz", + "integrity": "sha512-nV6YcJo5wbLW77m+8KjH8aB/7/rxQy9SZ0HY5shnwULfS+9nmTtVXAJET5NdZmCzA4fPI/Hm1wo/Po/4mopOdg==", + "dev": true, + "dependencies": { + "glob": "^10.3.7" + }, + "bin": { + "rimraf": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -2233,13 +5969,10 @@ "dev": true }, "node_modules/semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, "bin": { "semver": "bin/semver.js" }, @@ -2247,6 +5980,39 @@ "node": ">=10" } }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/simple-concat": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", @@ -2292,6 +6058,12 @@ "simple-concat": "^1.0.0" } }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true + }, "node_modules/slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", @@ -2301,6 +6073,54 @@ "node": ">=8" } }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/split": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", + "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", + "dependencies": { + "through": "2" + }, + "engines": { + "node": "*" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, + "node_modules/stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/stream-meter": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/stream-meter/-/stream-meter-1.0.4.tgz", @@ -2328,7 +6148,59 @@ "safe-buffer": "~5.1.0" } }, + "node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dev": true, + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/string-length/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-length/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", @@ -2342,18 +6214,88 @@ "node": ">=8" } }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "node_modules/string-width-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/string-width-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, "engines": { "node": ">=8" } }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/strip-json-comments": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", @@ -2386,6 +6328,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/system-ca": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/system-ca/-/system-ca-1.0.3.tgz", + "integrity": "sha512-FHwdyDHM/J6SjHNVEp532J5rWsO0oPB/szZGsP/8I2s78mPLQhE0WwKTGi/RJulqTICekINsczg5q44n/1b+lQ==", + "optionalDependencies": { + "macos-export-certificate-and-key": "^1.1.1", + "win-export-certificate-and-key": "^1.1.1" + } + }, "node_modules/table-layout": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-3.0.2.tgz", @@ -2467,6 +6418,74 @@ "node": ">= 6" } }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/test-exclude/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/test-exclude/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/test-exclude/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" + }, + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true + }, "node_modules/to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", @@ -2494,6 +6513,62 @@ "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", "dev": true }, + "node_modules/ts-jest": { + "version": "29.1.4", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.1.4.tgz", + "integrity": "sha512-YiHwDhSvCiItoAgsKtoLFCuakDzDsJ1DLDnSouTaTmdOcOwIkSzbLXduaQ6M5DRVhuZC/NYaaZ/mtHbWMv/S6Q==", + "dev": true, + "dependencies": { + "bs-logger": "0.x", + "fast-json-stable-stringify": "2.x", + "jest-util": "^29.0.0", + "json5": "^2.2.3", + "lodash.memoize": "4.x", + "make-error": "1.x", + "semver": "^7.5.3", + "yargs-parser": "^21.0.1" + }, + "bin": { + "ts-jest": "cli.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || ^18.0.0 || >=20.0.0" + }, + "peerDependencies": { + "@babel/core": ">=7.0.0-beta.0 <8", + "@jest/transform": "^29.0.0", + "@jest/types": "^29.0.0", + "babel-jest": "^29.0.0", + "jest": "^29.0.0", + "typescript": ">=4.3 <6" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "@jest/transform": { + "optional": true + }, + "@jest/types": { + "optional": true + }, + "babel-jest": { + "optional": true + }, + "esbuild": { + "optional": true + } + } + }, + "node_modules/ts-jest/node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, "node_modules/tslib": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", @@ -2512,10 +6587,31 @@ "node": "*" } }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/typescript": { - "version": "5.4.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.3.tgz", - "integrity": "sha512-KrPd3PKaCLr78MalgiwJnA25Nm8HAmdwN3mYUYZgG/wizIo9EainNVQI9/yDavtVFRN2h3k8uf3GLHuhDMgEHg==", + "version": "5.4.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", + "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", "dev": true, "bin": { "tsc": "bin/tsc", @@ -2548,6 +6644,36 @@ "node": ">= 10.0.0" } }, + "node_modules/update-browserslist-db": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz", + "integrity": "sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.1.2", + "picocolors": "^1.0.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -2566,10 +6692,24 @@ "uuid": "dist/bin/uuid" } }, + "node_modules/v8-to-istanbul": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.2.0.tgz", + "integrity": "sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^2.0.0" + }, + "engines": { + "node": ">=10.12.0" + } + }, "node_modules/vectordb": { - "version": "0.4.15", - "resolved": "https://registry.npmjs.org/vectordb/-/vectordb-0.4.15.tgz", - "integrity": "sha512-iROQ92CUGHj+kDUFVCdIk1Wvqg/pGE6WHhBlOorgRXHZwiFjP2SwmcDZeW7c7lH2hXC5Sks8MAGlglPstCpELQ==", + "version": "0.4.20", + "resolved": "https://registry.npmjs.org/vectordb/-/vectordb-0.4.20.tgz", + "integrity": "sha512-A8X5uvNMl7btbKBshaOx0A6R6Q2eQqOE5Ifwu6r1fZALOS+V0rnoQmUKa1K1v31Vcr3S5GvQsFIl+v6yWataqA==", "cpu": [ "x64", "arm64" @@ -2584,17 +6724,34 @@ "axios": "^1.4.0" }, "optionalDependencies": { - "@lancedb/vectordb-darwin-arm64": "0.4.15", - "@lancedb/vectordb-darwin-x64": "0.4.15", - "@lancedb/vectordb-linux-arm64-gnu": "0.4.15", - "@lancedb/vectordb-linux-x64-gnu": "0.4.15", - "@lancedb/vectordb-win32-x64-msvc": "0.4.15" + "@lancedb/vectordb-darwin-arm64": "0.4.20", + "@lancedb/vectordb-darwin-x64": "0.4.20", + "@lancedb/vectordb-linux-arm64-gnu": "0.4.20", + "@lancedb/vectordb-linux-x64-gnu": "0.4.20", + "@lancedb/vectordb-win32-x64-msvc": "0.4.20" }, "peerDependencies": { "@apache-arrow/ts": "^14.0.2", "apache-arrow": "^14.0.2" } }, + "node_modules/walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dev": true, + "dependencies": { + "makeerror": "1.0.12" + } + }, + "node_modules/web-streams-polyfill": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz", + "integrity": "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==", + "engines": { + "node": ">= 8" + } + }, "node_modules/webidl-conversions": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", @@ -2611,6 +6768,54 @@ "webidl-conversions": "^3.0.0" } }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/win-ca": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/win-ca/-/win-ca-3.5.1.tgz", + "integrity": "sha512-RNy9gpBS6cxWHjfbqwBA7odaHyT+YQNhtdpJZwYCFoxB/Dq22oeOZ9YCXMwjhLytKpo7JJMnKdJ/ve7N12zzfQ==", + "hasInstallScript": true, + "dependencies": { + "is-electron": "^2.2.0", + "make-dir": "^1.3.0", + "node-forge": "^1.2.1", + "split": "^1.0.1" + } + }, + "node_modules/win-export-certificate-and-key": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/win-export-certificate-and-key/-/win-export-certificate-and-key-1.1.2.tgz", + "integrity": "sha512-3Su7Xdt9UR8pZicWQDcGSWNL6We/NzAGxe7AeQ1Z/zAeGHWlTKAh3HemGvIvxLRPsk4NW9D/QL3cL6SIvFcTvQ==", + "hasInstallScript": true, + "optional": true, + "os": [ + "win32" + ], + "dependencies": { + "bindings": "^1.5.0", + "node-addon-api": "^3.1.0", + "node-forge": "^1.2.1" + } + }, + "node_modules/win-export-certificate-and-key/node_modules/node-addon-api": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz", + "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==", + "optional": true + }, "node_modules/wordwrapjs": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-5.1.0.tgz", @@ -2621,6 +6826,24 @@ } }, "node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", @@ -2637,11 +6860,83 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" }, + "node_modules/write-file-atomic": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/write-file-atomic/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, "node_modules/y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", @@ -2652,9 +6947,9 @@ } }, "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "dev": true }, "node_modules/yargs": { @@ -2683,6 +6978,59 @@ "engines": { "node": ">=10" } + }, + "node_modules/yargs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/yargs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } } } } diff --git a/binary/package.json b/binary/package.json index d821cd3fe..774993a9f 100644 --- a/binary/package.json +++ b/binary/package.json @@ -20,7 +20,7 @@ "outputPath": "bin" }, "scripts": { - "test": "echo \"Error: no test specified\" && exit 1", + "test": "jest", "build": "node build.js", "build:old": "ncc build src/index.ts -o out && pkg .", "build:dev": "tsc", @@ -29,11 +29,16 @@ "author": "", "license": "Apache-2.0", "devDependencies": { + "@biomejs/biome": "1.6.4", "@types/follow-redirects": "^1.14.4", + "@types/jest": "^29.5.12", "@types/uuid": "^9.0.8", "@vercel/ncc": "^0.38.1", "esbuild": "0.19.11", + "jest": "^29.7.0", "pkg": "^5.8.1", + "rimraf": "^5.0.7", + "ts-jest": "^29.1.4", "typescript": "^5.3.3" }, "dependencies": { @@ -41,9 +46,13 @@ "commander": "^12.0.0", "core": "file:../core", "follow-redirects": "^1.15.5", + "mac-ca": "^2.0.3", "ncp": "^2.0.0", + "node-fetch": "^3.3.2", "posthog-node": "^3.6.3", + "system-ca": "^1.0.2", "uuid": "^9.0.1", - "vectordb": "^0.4.10" + "vectordb": "^0.4.20", + "win-ca": "^3.5.1" } } diff --git a/binary/pkgJson/darwin-arm64/package.json b/binary/pkgJson/darwin-arm64/package.json index 0cb1b4d32..cc41ae801 100644 --- a/binary/pkgJson/darwin-arm64/package.json +++ b/binary/pkgJson/darwin-arm64/package.json @@ -9,7 +9,6 @@ ], "assets": [ "../../../core/node_modules/sqlite3/**/*", - "../../node_modules/@lancedb/vectordb-darwin-arm64/index.node", "../../out/tree-sitter.wasm", "../../out/tree-sitter-wasms/*" ], diff --git a/binary/pkgJson/darwin-x64/package.json b/binary/pkgJson/darwin-x64/package.json index 65ad94d25..8ccb256e1 100644 --- a/binary/pkgJson/darwin-x64/package.json +++ b/binary/pkgJson/darwin-x64/package.json @@ -9,7 +9,6 @@ ], "assets": [ "../../../core/node_modules/sqlite3/**/*", - "../../node_modules/@lancedb/vectordb-darwin-x64/index.node", "../../out/tree-sitter.wasm", "../../out/tree-sitter-wasms/*" ], diff --git a/binary/pkgJson/linux-arm64/package.json b/binary/pkgJson/linux-arm64/package.json index fbea8ff60..9fe88da50 100644 --- a/binary/pkgJson/linux-arm64/package.json +++ b/binary/pkgJson/linux-arm64/package.json @@ -9,7 +9,6 @@ ], "assets": [ "../../../core/node_modules/sqlite3/**/*", - "../../node_modules/@lancedb/vectordb-linux-arm64-gnu/index.node", "../../out/tree-sitter.wasm", "../../out/tree-sitter-wasms/*" ], diff --git a/binary/pkgJson/linux-x64/package.json b/binary/pkgJson/linux-x64/package.json index 508a116d4..1c875baa0 100644 --- a/binary/pkgJson/linux-x64/package.json +++ b/binary/pkgJson/linux-x64/package.json @@ -9,7 +9,6 @@ ], "assets": [ "../../../core/node_modules/sqlite3/**/*", - "../../node_modules/@lancedb/vectordb-linux-x64-gnu/index.node", "../../out/tree-sitter.wasm", "../../out/tree-sitter-wasms/*" ], diff --git a/binary/pkgJson/win32-arm64/package.json b/binary/pkgJson/win32-arm64/package.json index 0dcf4fa57..3eeb12234 100644 --- a/binary/pkgJson/win32-arm64/package.json +++ b/binary/pkgJson/win32-arm64/package.json @@ -9,9 +9,11 @@ ], "assets": [ "../../../core/node_modules/sqlite3/**/*", - "../../node_modules/@lancedb/vectordb-win32-x64-msvc/index.node", "../../out/tree-sitter.wasm", - "../../out/tree-sitter-wasms/*" + "../../out/tree-sitter-wasms/*", + "../../node_modules/win-ca/lib/crypt32-ia32.node", + "../../node_modules/win-ca/lib/crypt32-x64.node", + "../../node_modules/win-ca/lib/roots.exe" ], "targets": [ "node18-win-arm64" diff --git a/binary/pkgJson/win32-x64/package.json b/binary/pkgJson/win32-x64/package.json index e61e1380c..2e495524b 100644 --- a/binary/pkgJson/win32-x64/package.json +++ b/binary/pkgJson/win32-x64/package.json @@ -9,9 +9,11 @@ ], "assets": [ "../../../core/node_modules/sqlite3/**/*", - "../../node_modules/@lancedb/vectordb-win32-x64-msvc/index.node", "../../out/tree-sitter.wasm", - "../../out/tree-sitter-wasms/*" + "../../out/tree-sitter-wasms/*", + "../../node_modules/win-ca/lib/crypt32-ia32.node", + "../../node_modules/win-ca/lib/crypt32-x64.node", + "../../node_modules/win-ca/lib/roots.exe" ], "targets": [ "node18-win-x64" diff --git a/binary/src/IpcIde.ts b/binary/src/IpcIde.ts index 5343a2430..ee2649c36 100644 --- a/binary/src/IpcIde.ts +++ b/binary/src/IpcIde.ts @@ -1,8 +1,8 @@ +import { TODO } from "core/util"; import { MessageIde } from "core/util/messageIde"; -import { IpcMessenger } from "./messenger"; export class IpcIde extends MessageIde { - constructor(messenger: IpcMessenger) { - super(messenger.request.bind(messenger)); + constructor(messenger: TODO) { + super(messenger.request.bind(messenger), messenger.on.bind(messenger)); } } diff --git a/binary/src/IpcMessenger.ts b/binary/src/IpcMessenger.ts new file mode 100644 index 000000000..66acb1448 --- /dev/null +++ b/binary/src/IpcMessenger.ts @@ -0,0 +1,259 @@ +import { IProtocol } from "core/protocol/index.js"; +import { IMessenger, type Message } from "core/util/messenger"; +import { ChildProcessWithoutNullStreams } from "node:child_process"; +import * as fs from "node:fs"; +import net from "node:net"; +import { v4 as uuidv4 } from "uuid"; + +class IPCMessengerBase< + ToProtocol extends IProtocol, + FromProtocol extends IProtocol, +> implements IMessenger +{ + _sendMsg(message: Message) { + throw new Error("Not implemented"); + } + + typeListeners = new Map any)[]>(); + idListeners = new Map any>(); + + private _handleLine(line: string) { + try { + const msg: Message = JSON.parse(line); + if (msg.messageType === undefined || msg.messageId === undefined) { + throw new Error("Invalid message sent: " + JSON.stringify(msg)); + } + + // Call handler and respond with return value + const listeners = this.typeListeners.get(msg.messageType as any); + listeners?.forEach(async (handler) => { + try { + const response = await handler(msg); + if ( + response && + typeof response[Symbol.asyncIterator] === "function" + ) { + for await (const update of response) { + this.send(msg.messageType, update, msg.messageId); + } + this.send(msg.messageType, { done: true }, msg.messageId); + } else { + this.send(msg.messageType, response || {}, msg.messageId); + } + } catch (e: any) { + console.warn(`Error running handler for "${msg.messageType}": `, e); + this._onErrorHandlers.forEach((handler) => { + handler(e); + }); + } + }); + + // Call handler which is waiting for the response, nothing to return + this.idListeners.get(msg.messageId)?.(msg); + } catch (e) { + let truncatedLine = line; + if (line.length > 200) { + truncatedLine = + line.substring(0, 100) + "..." + line.substring(line.length - 100); + } + console.error("Error parsing line: ", truncatedLine, e); + return; + } + } + + private _unfinishedLine: string | undefined = undefined; + protected _handleData(data: Buffer) { + const d = data.toString(); + const lines = d.split(/\r\n/).filter((line) => line.trim() !== ""); + if (lines.length === 0) { + return; + } + + if (this._unfinishedLine) { + lines[0] = this._unfinishedLine + lines[0]; + this._unfinishedLine = undefined; + } + if (!d.endsWith("\r\n")) { + this._unfinishedLine = lines.pop(); + } + lines.forEach((line) => this._handleLine(line)); + } + + private _onErrorHandlers: ((error: Error) => void)[] = []; + + onError(handler: (error: Error) => void) { + this._onErrorHandlers.push(handler); + } + + request( + messageType: T, + data: FromProtocol[T][0], + ): Promise { + const messageId = uuidv4(); + return new Promise((resolve) => { + const handler = (msg: Message) => { + resolve(msg.data); + this.idListeners.delete(messageId); + }; + this.idListeners.set(messageId, handler); + this.send(messageType, data, messageId); + }); + } + + mock(data: any) { + const d = JSON.stringify(data); + this._handleData(Buffer.from(d)); + } + + send( + messageType: T, + data: FromProtocol[T][0], + messageId?: string, + ): string { + messageId = messageId ?? uuidv4(); + const msg: Message = { + messageType: messageType as string, + data, + messageId, + }; + this._sendMsg(msg); + return messageId; + } + + invoke( + messageType: T, + data: ToProtocol[T][0], + ): ToProtocol[T][1] { + return this.typeListeners.get(messageType)?.[0]?.({ + messageId: uuidv4(), + messageType: messageType as string, + data, + }); + } + + on( + messageType: T, + handler: ( + message: Message, + ) => Promise | ToProtocol[T][1], + ): void { + if (!this.typeListeners.has(messageType)) { + this.typeListeners.set(messageType, []); + } + this.typeListeners.get(messageType)?.push(handler); + } +} + +export class IpcMessenger< + ToProtocol extends IProtocol, + FromProtocol extends IProtocol, + > + extends IPCMessengerBase + implements IMessenger +{ + constructor() { + super(); + console.log("Setup"); + process.stdin.on("data", (data) => { + // console.log("[info] Received data: ", data.toString()); + this._handleData(data); + }); + process.stdout.on("close", () => { + fs.writeFileSync("./error.log", `${new Date().toISOString()}\n`); + console.log("[info] Exiting Continue core..."); + process.exit(1); + }); + process.stdin.on("close", () => { + fs.writeFileSync("./error.log", `${new Date().toISOString()}\n`); + console.log("[info] Exiting Continue core..."); + process.exit(1); + }); + } + _sendMsg(msg: Message) { + const d = JSON.stringify(msg); + // console.log("[info] Sending message: ", d); + process.stdout?.write(d + "\r\n"); + } +} + +export class CoreBinaryMessenger< + ToProtocol extends IProtocol, + FromProtocol extends IProtocol, + > + extends IPCMessengerBase + implements IMessenger +{ + private errorHandler: (error: Error) => void = () => {}; + private messageHandlers: Map< + keyof ToProtocol, + (message: Message) => Promise | any + > = new Map(); + + constructor(private readonly subprocess: ChildProcessWithoutNullStreams) { + super(); + console.log("Setup"); + this.subprocess.stdout.on("data", (data) => { + console.log("[info] Received data from core:", data.toString() + "\n"); + this._handleData(data); + }); + this.subprocess.stdout.on("close", () => { + console.log("[info] Continue core exited"); + }); + this.subprocess.stdin.on("close", () => { + console.log("[info] Continue core exited"); + }); + } + + _sendMsg(msg: Message) { + console.log("[info] Sending message to core:", msg); + const d = JSON.stringify(msg); + this.subprocess.stdin.write(d + "\r\n"); + } +} + +export class CoreBinaryTcpMessenger< + ToProtocol extends IProtocol, + FromProtocol extends IProtocol, + > + extends IPCMessengerBase + implements IMessenger +{ + private port: number = 3000; + private socket: net.Socket | null = null; + + typeListeners = new Map any)[]>(); + idListeners = new Map any>(); + + constructor() { + super(); + const socket = net.createConnection(this.port, "localhost"); + + this.socket = socket; + socket.on("data", (data: Buffer) => { + // console.log("[info] Received data from core:", data.toString() + "\n"); + this._handleData(data); + }); + + socket.on("end", () => { + console.log("Disconnected from server"); + }); + + socket.on("error", (err: any) => { + console.error("Client error:", err); + }); + } + + close() { + this.socket?.end(); + } + + _sendMsg(msg: Message) { + if (this.socket) { + // console.log("[info] Sending message to core:", msg); + const d = JSON.stringify(msg); + this.socket.write(d + "\r\n"); + } else { + console.error("Socket is not connected"); + } + } +} diff --git a/binary/src/TcpMessenger.ts b/binary/src/TcpMessenger.ts new file mode 100644 index 000000000..9dc506d15 --- /dev/null +++ b/binary/src/TcpMessenger.ts @@ -0,0 +1,168 @@ +import { IProtocol } from "core/protocol"; +import { IMessenger, Message } from "core/util/messenger"; +import net from "net"; +import { v4 as uuidv4 } from "uuid"; + +export class TcpMessenger< + ToProtocol extends IProtocol, + FromProtocol extends IProtocol, +> implements IMessenger +{ + private port: number = 3000; + private host: string = "127.0.0.1"; + private socket: net.Socket | null = null; + + typeListeners = new Map any)[]>(); + idListeners = new Map any>(); + + constructor() { + const server = net.createServer((socket) => { + this.socket = socket; + + socket.on("connect", () => { + console.log("Connected to server"); + }); + + socket.on("data", (data: Buffer) => { + this._handleData(data); + }); + + socket.on("end", () => { + console.log("Disconnected from server"); + }); + + socket.on("error", (err: any) => { + console.error("Client error:", err); + }); + }); + + server.listen(this.port, this.host, () => { + console.log(`Server listening on port ${this.port}`); + }); + } + + private _onErrorHandlers: ((error: Error) => void)[] = []; + + onError(handler: (error: Error) => void) { + this._onErrorHandlers.push(handler); + } + + public async awaitConnection() { + while (!this.socket) { + await new Promise((resolve) => setTimeout(resolve, 100)); + } + } + + private _handleLine(line: string) { + try { + const msg: Message = JSON.parse(line); + if (msg.messageType === undefined || msg.messageId === undefined) { + throw new Error("Invalid message sent: " + JSON.stringify(msg)); + } + + // Call handler and respond with return value + const listeners = this.typeListeners.get(msg.messageType as any); + listeners?.forEach(async (handler) => { + try { + const response = await handler(msg); + if ( + response && + typeof response[Symbol.asyncIterator] === "function" + ) { + for await (const update of response) { + this.send(msg.messageType, update, msg.messageId); + } + this.send(msg.messageType, { done: true }, msg.messageId); + } else { + this.send(msg.messageType, response || {}, msg.messageId); + } + } catch (e: any) { + console.warn(`Error running handler for "${msg.messageType}": `, e); + this._onErrorHandlers.forEach((handler) => { + handler(e); + }); + } + }); + + // Call handler which is waiting for the response, nothing to return + this.idListeners.get(msg.messageId)?.(msg); + } catch (e) { + let truncatedLine = line; + if (line.length > 200) { + truncatedLine = + line.substring(0, 100) + "..." + line.substring(line.length - 100); + } + console.error("Error parsing line: ", truncatedLine, e); + return; + } + } + + private _unfinishedLine: string | undefined = undefined; + private _handleData(data: Buffer) { + const d = data.toString(); + const lines = d.split(/\r\n/).filter((line) => line.trim() !== ""); + if (lines.length === 0) { + return; + } + + if (this._unfinishedLine) { + lines[0] = this._unfinishedLine + lines[0]; + this._unfinishedLine = undefined; + } + if (!d.endsWith("\r\n")) { + this._unfinishedLine = lines.pop(); + } + lines.forEach((line) => this._handleLine(line)); + } + + send( + messageType: T, + data: FromProtocol[T][0], + messageId?: string, + ): string { + messageId = messageId ?? uuidv4(); + const msg: Message = { + messageType: messageType as string, + data, + messageId, + }; + + this.socket?.write(JSON.stringify(msg) + "\r\n"); + return messageId; + } + + on( + messageType: T, + handler: (message: Message) => ToProtocol[T][1], + ): void { + if (!this.typeListeners.has(messageType)) { + this.typeListeners.set(messageType, []); + } + this.typeListeners.get(messageType)?.push(handler); + } + + invoke( + messageType: T, + data: ToProtocol[T][0], + ): ToProtocol[T][1] { + return this.typeListeners.get(messageType)?.[0]?.({ + messageId: uuidv4(), + messageType: messageType as string, + data, + }); + } + request( + messageType: T, + data: FromProtocol[T][0], + ): Promise { + const messageId = uuidv4(); + return new Promise((resolve) => { + const handler = (msg: Message) => { + resolve(msg.data); + this.idListeners.delete(messageId); + }; + this.idListeners.set(messageId, handler); + this.send(messageType, data, messageId); + }); + } +} diff --git a/binary/src/core.ts b/binary/src/core.ts index 49285d682..05d5a534b 100644 --- a/binary/src/core.ts +++ b/binary/src/core.ts @@ -8,7 +8,7 @@ import { CodebaseIndexer, PauseToken } from "core/indexing/indexCodebase"; import { logDevData } from "core/util/devdata"; import historyManager from "core/util/history"; import { Message } from "core/util/messenger"; -import { Telemetry } from "core/util/posthog"; +import { Telemetry } from "core/util/logging"; import { streamDiffLines } from "core/util/verticalEdit"; import { v4 as uuidv4 } from "uuid"; import { IpcMessenger } from "./messenger"; diff --git a/binary/src/index.ts b/binary/src/index.ts index 4f6c8448e..04be5de5a 100644 --- a/binary/src/index.ts +++ b/binary/src/index.ts @@ -1,30 +1,41 @@ process.env.IS_BINARY = "true"; import { Command } from "commander"; -import { getCoreLogsPath } from "core/util/paths"; -import fs from "fs"; +import { Core } from "core/core"; +import { FromCoreProtocol, ToCoreProtocol } from "core/protocol"; +import { IMessenger } from "core/util/messenger"; +import { getCoreLogsPath, getPromptLogsPath } from "core/util/paths"; +import fs from "node:fs"; import { IpcIde } from "./IpcIde"; -import { Core } from "./core"; -import { IpcMessenger } from "./messenger"; +import { IpcMessenger } from "./IpcMessenger"; +import { setupCoreLogging } from "./logging"; +import { TcpMessenger } from "./TcpMessenger"; const logFilePath = getCoreLogsPath(); fs.appendFileSync(logFilePath, "[info] Starting Continue core...\n"); const program = new Command(); -program.action(() => { +program.action(async () => { try { - const messenger = new IpcMessenger(); + let messenger: IMessenger; + if (process.env.CONTINUE_DEVELOPMENT === "true") { + messenger = new TcpMessenger(); + console.log("Waiting for connection"); + await ( + messenger as TcpMessenger + ).awaitConnection(); + console.log("Connected"); + } else { + setupCoreLogging(); + // await setupCa(); + messenger = new IpcMessenger(); + } const ide = new IpcIde(messenger); - // const ide = new FileSystemIde(); - const core = new Core(messenger, ide); - - // setTimeout(() => { - // messenger.mock({ - // messageId: "2fe7823c-10bd-4771-abb5-781f520039ec", - // messageType: "loadSubmenuItems", - // data: { title: "issue" }, - // }); - // }, 1000); + const promptLogsPath = getPromptLogsPath(); + const core = new Core(messenger, ide, async (text) => { + fs.appendFileSync(promptLogsPath, text + "\n\n"); + }); + console.log("Core started"); } catch (e) { fs.writeFileSync("./error.log", `${new Date().toISOString()} ${e}\n`); console.log("Error: ", e); diff --git a/binary/src/logging.ts b/binary/src/logging.ts new file mode 100644 index 000000000..cba34855c --- /dev/null +++ b/binary/src/logging.ts @@ -0,0 +1,15 @@ +import { getCoreLogsPath } from "core/util/paths"; +import fs from "node:fs"; + +export function setupCoreLogging() { + const logger = (message: any, ...optionalParams: any[]) => { + const logFilePath = getCoreLogsPath(); + const timestamp = new Date().toISOString().split(".")[0]; + const logMessage = `[${timestamp}] ${message} ${optionalParams.join(" ")}\n`; + fs.appendFileSync(logFilePath, logMessage); + }; + console.log = logger; + console.error = logger; + console.warn = logger; + console.log("[info] Starting Continue core..."); +} diff --git a/binary/test/binary.test.ts b/binary/test/binary.test.ts new file mode 100644 index 000000000..fdd9f2ced --- /dev/null +++ b/binary/test/binary.test.ts @@ -0,0 +1,140 @@ +import { FromIdeProtocol, ToIdeProtocol } from "core/protocol/index.js"; +import FileSystemIde from "core/util/filesystem"; +import { IMessenger } from "core/util/messenger"; +import { ReverseMessageIde } from "core/util/reverseMessageIde"; +import fs from "fs"; +import { ChildProcessWithoutNullStreams, spawn } from "node:child_process"; +import path from "path"; +import { + CoreBinaryMessenger, + CoreBinaryTcpMessenger, +} from "../src/IpcMessenger"; + +// jest.setTimeout(100_000); + +const USE_TCP = false; + +function autodetectPlatformAndArch() { + const platform = { + aix: "linux", + darwin: "darwin", + freebsd: "linux", + linux: "linux", + openbsd: "linux", + sunos: "linux", + win32: "win32", + android: "linux", + cygwin: "win32", + netbsd: "linux", + haiku: "linux", + }[process.platform]; + const arch = { + arm: "arm64", + arm64: "arm64", + ia32: "x64", + loong64: "arm64", + mips: "arm64", + mipsel: "arm64", + ppc: "x64", + ppc64: "x64", + riscv64: "arm64", + s390: "x64", + s390x: "x64", + x64: "x64", + }[process.arch]; + return [platform, arch]; +} + +const CONTINUE_GLOBAL_DIR = path.join(__dirname, "..", ".continue"); + +describe("Test Suite", () => { + let messenger: IMessenger; + let subprocess: ChildProcessWithoutNullStreams; + + beforeAll(async () => { + const [platform, arch] = autodetectPlatformAndArch(); + const binaryPath = path.join( + __dirname, + "..", + "bin", + `${platform}-${arch}`, + `continue-binary${platform === "win32" ? ".exe" : ""}`, + ); + expect(fs.existsSync(binaryPath)).toBe(true); + + if (USE_TCP) { + messenger = new CoreBinaryTcpMessenger(); + } else { + subprocess = spawn(binaryPath, { + env: { ...process.env, CONTINUE_GLOBAL_DIR }, + }); + messenger = new CoreBinaryMessenger( + subprocess, + ); + } + + const testDir = path.join(__dirname, "..", ".test"); + if (!fs.existsSync(testDir)) { + fs.mkdirSync(testDir); + } + const ide = new FileSystemIde(testDir); + const reverseIde = new ReverseMessageIde(messenger.on.bind(messenger), ide); + + // Wait for core to set itself up + await new Promise((resolve) => setTimeout(resolve, 1000)); + }); + + afterAll(async () => { + // Wait for the subprocess to exit + if (USE_TCP) { + ( + messenger as CoreBinaryTcpMessenger + ).close(); + } else { + subprocess.kill(); + await new Promise((resolve) => subprocess.on("close", resolve)); + await new Promise((resolve) => setTimeout(resolve, 1000)); + } + }); + + it("should respond to ping with pong", async () => { + const resp = await messenger.request("ping", "ping"); + expect(resp).toBe("pong"); + }); + + it("should create .continue directory at the specified location with expected files", async () => { + expect(fs.existsSync(CONTINUE_GLOBAL_DIR)).toBe(true); + + // Many of the files are only created when trying to load the config + const config = await messenger.request( + "config/getSerializedProfileInfo", + undefined, + ); + + const expectedFiles = [ + "config.json", + "config.ts", + "package.json", + "logs/core.log", + "index/autocompleteCache.sqlite", + "out/config.js", + "types/core/index.d.ts", + ]; + + for (const file of expectedFiles) { + const filePath = path.join(CONTINUE_GLOBAL_DIR, file); + expect(fs.existsSync(filePath)).toBe(true); + } + }); + + it("should properly edit config", async () => { + const { config } = await messenger.request( + "config/getSerializedProfileInfo", + undefined, + ); + expect(config).toHaveProperty("models"); + expect(config).toHaveProperty("embeddingsProvider"); + expect(config).toHaveProperty("contextProviders"); + expect(config).toHaveProperty("slashCommands"); + }); +}); diff --git a/binary/tsconfig.json b/binary/tsconfig.json index 94fbda91f..351115f59 100644 --- a/binary/tsconfig.json +++ b/binary/tsconfig.json @@ -13,7 +13,8 @@ // "noFallthroughCasesInSwitch": true, /* Report errors for fallthrough cases in switch statement. */ // "noUnusedParameters": true, /* Report errors on unused parameters. */ "esModuleInterop": true /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */, - "resolveJsonModule": true /* Enable importing .json files */ + "resolveJsonModule": true /* Enable importing .json files */, + "types": ["jest"] }, - "include": ["src/**/*"] + "include": ["src/**/*", "test/**/*"] } diff --git a/biome.json b/biome.json new file mode 100644 index 000000000..dff43ae13 --- /dev/null +++ b/biome.json @@ -0,0 +1,26 @@ +{ + "$schema": "https://biomejs.dev/schemas/1.6.4/schema.json", + "organizeImports": { + "enabled": true + }, + "linter": { + "enabled": true, + "rules": { + "recommended": true, + "suspicious": { + "noExplicitAny": "off", + "noConfusingVoidType": "off" + }, + "style": { + "noUselessElse": "off", + "noNonNullAssertion": "off" + }, + "complexity": { + "noForEach": "off" + } + } + }, + "formatter": { + "indentStyle": "space" + } +} diff --git a/core/.eslintrc.json b/core/.eslintrc.json new file mode 100644 index 000000000..ed9d52781 --- /dev/null +++ b/core/.eslintrc.json @@ -0,0 +1,20 @@ +{ + "root": true, + "parser": "@typescript-eslint/parser", + "parserOptions": { + "ecmaVersion": 6, + "sourceType": "module" + }, + "plugins": ["@typescript-eslint", "import"], + "rules": { + "quotes": ["warn", "double", {}], + "import/extensions": ["error", "ignorePackages"], + "@typescript-eslint/naming-convention": "warn", + "@typescript-eslint/semi": "warn", + "curly": "warn", + "eqeqeq": "warn", + "no-throw-literal": "warn", + "semi": "off" + }, + "ignorePatterns": ["out", "dist", "**/*.d.ts"] +} diff --git a/core/.gitignore b/core/.gitignore index 81e9d5af3..646c15e7c 100644 --- a/core/.gitignore +++ b/core/.gitignore @@ -2,4 +2,5 @@ target **/node_modules **/.DS_Store npm-debug.log* -.env \ No newline at end of file +.env +.continue-test \ No newline at end of file diff --git a/core/autocomplete/ImportDefinitionsService.ts b/core/autocomplete/ImportDefinitionsService.ts new file mode 100644 index 000000000..19287bf81 --- /dev/null +++ b/core/autocomplete/ImportDefinitionsService.ts @@ -0,0 +1,81 @@ +import { IDE } from ".."; +import { RangeInFileWithContents } from "../commands/util"; +import { PrecalculatedLruCache } from "../util/LruCache"; +import { + TSQueryType, + getParserForFile, + getQueryForFile, +} from "../util/treeSitter"; + +interface FileInfo { + imports: { [key: string]: RangeInFileWithContents[] }; +} + +export class ImportDefinitionsService { + static N = 10; + + private cache: PrecalculatedLruCache = + new PrecalculatedLruCache( + this._getFileInfo.bind(this), + ImportDefinitionsService.N, + ); + + constructor(private readonly ide: IDE) { + ide.onDidChangeActiveTextEditor((filepath) => { + this.cache.initKey(filepath); + }); + } + + get(filepath: string): FileInfo | undefined { + return this.cache.get(filepath); + } + + private async _getFileInfo(filepath: string): Promise { + const parser = await getParserForFile(filepath); + if (!parser) { + return { + imports: {}, + }; + } + const ast = parser.parse(await this.ide.readFile(filepath), undefined, { + includedRanges: [ + { + startIndex: 0, + endIndex: 10_000, + startPosition: { row: 0, column: 0 }, + endPosition: { row: 100, column: 0 }, + }, + ], + }); + const query = await getQueryForFile(filepath, TSQueryType.Imports); + if (!query) { + return { + imports: {}, + }; + } + + const matches = query?.matches(ast.rootNode); + + const fileInfo: FileInfo = { + imports: {}, + }; + for (const match of matches) { + const startPosition = match.captures[0].node.startPosition; + const defs = await this.ide.gotoDefinition({ + filepath, + position: { + line: startPosition.row, + character: startPosition.column, + }, + }); + fileInfo.imports[match.captures[0].node.text] = await Promise.all( + defs.map(async (def) => ({ + ...def, + contents: await this.ide.readRangeInFile(def.filepath, def.range), + })), + ); + } + + return fileInfo; + } +} diff --git a/core/autocomplete/NearbyDefinitionsService.ts b/core/autocomplete/NearbyDefinitionsService.ts new file mode 100644 index 000000000..79cd0af0a --- /dev/null +++ b/core/autocomplete/NearbyDefinitionsService.ts @@ -0,0 +1,45 @@ +import { IDE, Location } from ".."; +import { LANGUAGES } from "./languages"; +import { getSymbolsForSnippet } from "./ranking"; + +interface FileInfo { + filepath: string; +} + +export class NearbyDefinitionsService { + static N = 10; + + constructor(private readonly ide: IDE) {} + + async getDefinitionsForLine(filepath: string, line: number) { + const lineContent = await this.ide.readRangeInFile(filepath, { + start: { + line, + character: 0, + }, + end: { + line: line + 1, + character: 0, + }, + }); + + // Remove keywords + const lang = LANGUAGES[filepath.split(".").slice(-1)[0]]; + const symbols = Array.from(getSymbolsForSnippet(lineContent)) + .filter((s) => s.length > 0) + .filter((s) => !(lang && lang?.stopWords?.includes(s))); + + return Promise.all( + symbols.map((s) => { + const character = lineContent.indexOf(s); + const pos: Location = { + filepath, + position: { + line, + character, + }, + }; + }), + ); + } +} diff --git a/core/autocomplete/README.md b/core/autocomplete/README.md index fdea37bd0..90a2066a0 100644 --- a/core/autocomplete/README.md +++ b/core/autocomplete/README.md @@ -21,14 +21,13 @@ All of the configuration options available for chat models are available to use "tabAutocompleteModel": { "title": "Tab Autocomplete Model", "provider": "ollama", - "model": "starcoder:3b", - "apiBase": "https://" + "model": "deepseek-coder:6.7b-base" }, ... } ``` -If you aren't yet familiar with the available options, you can learn more in our [overview](../model-setup/overview.md). +If you aren't yet familiar with the available options, you can learn more in our [overview](../setup/overview.md). ### What model should I use? @@ -53,7 +52,7 @@ This is just another object like the ones in the `"models"` array of `config.jso This object allows you to customize the behavior of tab-autocomplete. The available options are: - `useCopyBuffer`: Determines whether the copy buffer will be considered when constructing the prompt. (Boolean) -- `useSuffix`: Determines whether to use the file suffix in the prompt. (Boolean) +- `useFileSuffix`: Determines whether to use the file suffix in the prompt. (Boolean) - `maxPromptTokens`: The maximum number of prompt tokens to use. A smaller number will yield faster completions, but less context. (Number) - `debounceDelay`: The delay in milliseconds before triggering autocomplete after a keystroke. (Number) - `maxSuffixPercentage`: The maximum percentage of the prompt that can be dedicated to the suffix. (Number) diff --git a/core/autocomplete/ast.ts b/core/autocomplete/ast.ts index ac8f2e5c2..334c7c778 100644 --- a/core/autocomplete/ast.ts +++ b/core/autocomplete/ast.ts @@ -1,6 +1,6 @@ import Parser from "web-tree-sitter"; -import { RangeInFileWithContents } from "../commands/util"; -import { getParserForFile } from "../util/treeSitter"; +import { RangeInFileWithContents } from "../commands/util.js"; +import { getParserForFile } from "../util/treeSitter.js"; export async function getAst( filepath: string, @@ -32,6 +32,7 @@ export async function getTreePathAtCursor( path.push(child); } + for (const child of path[path.length - 1].children) { if (child.startIndex <= cursorIndex && child.endIndex >= cursorIndex) { path.push(child); foundChild = true; @@ -46,6 +47,7 @@ export async function getTreePathAtCursor( return path; } +} export async function getScopeAroundRange( range: RangeInFileWithContents, @@ -67,7 +69,7 @@ export async function getScopeAroundRange( let node = ast.rootNode; while (node.childCount > 0) { let foundChild = false; - for (let child of node.children) { + for (const child of node.children) { if (child.startIndex < startIndex && child.endIndex > endIndex) { node = child; foundChild = true; diff --git a/core/autocomplete/brackets.ts b/core/autocomplete/brackets.ts index 2beed3288..63afdfd10 100644 --- a/core/autocomplete/brackets.ts +++ b/core/autocomplete/brackets.ts @@ -3,103 +3,132 @@ * But sometimes we started the pair in a previous autocomplete suggestion */ export class BracketMatchingService { - private openingBracketsFromLastCompletion: string[] = []; - private lastCompletionFile: string | undefined = undefined; - - static BRACKETS: { [key: string]: string } = { "(": ")", "{": "}", "[": "]" }; - static BRACKETS_REVERSE: { [key: string]: string } = { - ")": "(", - "}": "{", - "]": "[", - }; - - handleAcceptedCompletion(completion: string, filepath: string) { - this.openingBracketsFromLastCompletion = []; - const stack: string[] = []; - - for (let i = 0; i < completion.length; i++) { - const char = completion[i]; - if (Object.keys(BracketMatchingService.BRACKETS).includes(char)) { - // It's an opening bracket - stack.push(char); - } else if ( - Object.values(BracketMatchingService.BRACKETS).includes(char) + private openingBracketsFromLastCompletion: string[] = []; + private lastCompletionFile: string | undefined = undefined; + + static BRACKETS: { [key: string]: string } = { "(": ")", "{": "}", "[": "]" }; + static BRACKETS_REVERSE: { [key: string]: string } = { + ")": "(", + "}": "{", + "]": "[", + }; + + handleAcceptedCompletion(completion: string, filepath: string) { + this.openingBracketsFromLastCompletion = []; + const stack: string[] = []; + + for (let i = 0; i < completion.length; i++) { + const char = completion[i]; + if (Object.keys(BracketMatchingService.BRACKETS).includes(char)) { + // It's an opening bracket + stack.push(char); + } else if ( + Object.values(BracketMatchingService.BRACKETS).includes(char) + ) { + // It's a closing bracket + if ( + stack.length === 0 || + BracketMatchingService.BRACKETS[stack.pop()!] !== char ) { - // It's a closing bracket - if ( - stack.length === 0 || - BracketMatchingService.BRACKETS[stack.pop()!] !== char - ) { - break; - } + break; } } - - // Any remaining opening brackets in the stack are uncompleted - this.openingBracketsFromLastCompletion = stack; - this.lastCompletionFile = filepath; } - - async *stopOnUnmatchedClosingBracket( - stream: AsyncGenerator, - suffix: string, - filepath: string, - ): AsyncGenerator { + + // Any remaining opening brackets in the stack are uncompleted + this.openingBracketsFromLastCompletion = stack; + this.lastCompletionFile = filepath; + } + + async *stopOnUnmatchedClosingBracket( + stream: AsyncGenerator, + prefix: string, + suffix: string, + filepath: string, + multiline: boolean, // Whether this is a multiline completion or not + ): AsyncGenerator { + let stack: string[] = []; + if (multiline) { // Add opening brackets from the previous response - let stack: string[] = []; if (this.lastCompletionFile === filepath) { stack = [...this.openingBracketsFromLastCompletion]; } else { this.lastCompletionFile = undefined; } - - // Add corresponding open brackets from suffix to stack - for (let i = 0; i < suffix.length; i++) { - if (suffix[i] === " ") continue; - const openBracket = BracketMatchingService.BRACKETS_REVERSE[suffix[i]]; - if (!openBracket) break; - stack.unshift(openBracket); - } - - let all = ""; - let seenNonWhitespaceOrClosingBracket = false; - for await (let chunk of stream) { - // Allow closing brackets before any non-whitespace characters - if (!seenNonWhitespaceOrClosingBracket) { - const firstNonWhitespaceOrClosingBracketIndex = - chunk.search(/[^\s\)\}\]]/); - if (firstNonWhitespaceOrClosingBracketIndex !== -1) { - yield chunk.slice(0, firstNonWhitespaceOrClosingBracketIndex); - chunk = chunk.slice(firstNonWhitespaceOrClosingBracketIndex); - seenNonWhitespaceOrClosingBracket = true; - } else { - yield chunk; - continue; - } - } - - all += chunk; - const allLines = all.split("\n"); - for (let i = 0; i < chunk.length; i++) { - const char = chunk[i]; - if (Object.values(BracketMatchingService.BRACKETS).includes(char)) { + } else { + // If single line completion, then allow completing bracket pairs that are + // started on the current line but not finished on the current line + if (!multiline) { + const currentLine = + (prefix.split("\n").pop() ?? "") + (suffix.split("\n")[0] ?? ""); + for (let i = 0; i < currentLine.length; i++) { + const char = currentLine[i]; + if (Object.keys(BracketMatchingService.BRACKETS).includes(char)) { + // It's an opening bracket + stack.push(char); + } else if ( + Object.values(BracketMatchingService.BRACKETS).includes(char) + ) { // It's a closing bracket if ( stack.length === 0 || BracketMatchingService.BRACKETS[stack.pop()!] !== char ) { - // If the stack is empty or the top of the stack doesn't match the current closing bracket - yield chunk.slice(0, i); - return; // Stop the generator if the closing bracket doesn't have a matching opening bracket in the stream + break; } - } else if ( - Object.keys(BracketMatchingService.BRACKETS).includes(char) + } + } + } + } + + // Add corresponding open brackets from suffix to stack + // because we overwrite them and the diff is displayed, and this allows something to be edited after that + for (let i = 0; i < suffix.length; i++) { + if (suffix[i] === " ") continue; + const openBracket = BracketMatchingService.BRACKETS_REVERSE[suffix[i]]; + if (!openBracket) break; + stack.unshift(openBracket); + } + + let all = ""; + let seenNonWhitespaceOrClosingBracket = false; + for await (let chunk of stream) { + // Allow closing brackets before any non-whitespace characters + if (!seenNonWhitespaceOrClosingBracket) { + const firstNonWhitespaceOrClosingBracketIndex = + chunk.search(/[^\s\)\}\]]/); + if (firstNonWhitespaceOrClosingBracketIndex !== -1) { + yield chunk.slice(0, firstNonWhitespaceOrClosingBracketIndex); + chunk = chunk.slice(firstNonWhitespaceOrClosingBracketIndex); + seenNonWhitespaceOrClosingBracket = true; + } else { + yield chunk; + continue; + } + } + + all += chunk; + const allLines = all.split("\n"); + for (let i = 0; i < chunk.length; i++) { + const char = chunk[i]; + if (Object.values(BracketMatchingService.BRACKETS).includes(char)) { + // It's a closing bracket + if ( + stack.length === 0 || + BracketMatchingService.BRACKETS[stack.pop()!] !== char ) { - // It's an opening bracket - stack.push(char); + // If the stack is empty or the top of the stack doesn't match the current closing bracket + yield chunk.slice(0, i); + return; // Stop the generator if the closing bracket doesn't have a matching opening bracket in the stream } + } else if ( + Object.keys(BracketMatchingService.BRACKETS).includes(char) + ) { + // It's an opening bracket + stack.push(char); } - yield chunk; } + yield chunk; } - } \ No newline at end of file + } +} diff --git a/core/autocomplete/cache.ts b/core/autocomplete/cache.ts index bd9c24d56..c3daefb1c 100644 --- a/core/autocomplete/cache.ts +++ b/core/autocomplete/cache.ts @@ -1,10 +1,12 @@ +import { Mutex } from "async-mutex"; import { open } from "sqlite"; import sqlite3 from "sqlite3"; -import { DatabaseConnection } from "../indexing/refreshIndex"; -import { getTabAutocompleteCacheSqlitePath } from "../util/paths"; +import { DatabaseConnection } from "../indexing/refreshIndex.js"; +import { getTabAutocompleteCacheSqlitePath } from "../util/paths.js"; export class AutocompleteLruCache { - private static capacity: number = 1000; + private static capacity = 1000; + private mutex = new Mutex(); db: DatabaseConnection; @@ -29,52 +31,77 @@ export class AutocompleteLruCache { return new AutocompleteLruCache(db); } - async get(key: string): Promise { + async get(prefix: string): Promise { + // NOTE: Right now prompts with different suffixes will be considered the same + + // If the query is "co" and we have "c" -> "ontinue" in the cache, + // we should return "ntinue" as the completion. + // Have to make sure we take the key with shortest length const result = await this.db.get( - "SELECT value FROM cache WHERE key = ?", - key, + "SELECT key, value FROM cache WHERE ? LIKE key || '%' ORDER BY LENGTH(key) DESC LIMIT 1", + prefix, ); - if (result) { + // Validate that the cached compeltion is a valid completion for the prefix + if (result && result.value.startsWith(prefix.slice(result.key.length))) { await this.db.run( "UPDATE cache SET timestamp = ? WHERE key = ?", Date.now(), - key, + prefix, ); - return result.value; + // And then truncate so we aren't writing something that's already there + return result.value.slice(prefix.length - result.key.length); } return undefined; } - async put(key: string, value: string) { - const result = await this.db.get( - "SELECT key FROM cache WHERE key = ?", - key, - ); - - if (result) { - await this.db.run( - "UPDATE cache SET value = ?, timestamp = ? WHERE key = ?", - value, - Date.now(), - key, - ); - } else { - const count = await this.db.get("SELECT COUNT(*) as count FROM cache"); + async put(prefix: string, completion: string) { + const release = await this.mutex.acquire(); + try { + await this.db.run("BEGIN TRANSACTION"); - if (count.count >= AutocompleteLruCache.capacity) { - await this.db.run( - "DELETE FROM cache WHERE key = (SELECT key FROM cache ORDER BY timestamp ASC LIMIT 1)", + try { + const result = await this.db.get( + "SELECT key FROM cache WHERE key = ?", + prefix, ); - } - await this.db.run( - "INSERT INTO cache (key, value, timestamp) VALUES (?, ?, ?)", - key, - value, - Date.now(), - ); + if (result) { + await this.db.run( + "UPDATE cache SET value = ?, timestamp = ? WHERE key = ?", + completion, + Date.now(), + prefix, + ); + } else { + const count = await this.db.get( + "SELECT COUNT(*) as count FROM cache", + ); + + if (count.count >= AutocompleteLruCache.capacity) { + await this.db.run( + "DELETE FROM cache WHERE key = (SELECT key FROM cache ORDER BY timestamp ASC LIMIT 1)", + ); + } + + await this.db.run( + "INSERT INTO cache (key, value, timestamp) VALUES (?, ?, ?)", + prefix, + completion, + Date.now(), + ); + } + + await this.db.run("COMMIT"); + } catch (error) { + await this.db.run("ROLLBACK"); + throw error; + } + } catch (e) { + console.error("Error creating transaction: ", e); + } finally { + release(); } } } diff --git a/core/autocomplete/charStream.ts b/core/autocomplete/charStream.ts index 9dc5e41cd..0ce49e418 100644 --- a/core/autocomplete/charStream.ts +++ b/core/autocomplete/charStream.ts @@ -38,4 +38,45 @@ export async function* noFirstCharNewline(stream: AsyncGenerator) { } yield char; } -} \ No newline at end of file +} + +export async function* stopAtStopTokens( + stream: AsyncGenerator, + stopTokens: string[], +): AsyncGenerator { + if (stopTokens.length === 0) { + for await (const char of stream) { + yield char; + } + return; + } + + const maxStopTokenLength = Math.max( + ...stopTokens.map((token) => token.length), + ); + let buffer = ""; + + for await (const chunk of stream) { + buffer += chunk; + + while (buffer.length >= maxStopTokenLength) { + let found = false; + for (const stopToken of stopTokens) { + if (buffer.startsWith(stopToken)) { + found = true; + return; + } + } + + if (!found) { + yield buffer[0]; + buffer = buffer.slice(1); + } + } + } + + // Yield any remaining characters in the buffer + for (const char of buffer) { + yield char; + } +} diff --git a/core/autocomplete/completionProvider.ts b/core/autocomplete/completionProvider.ts index 3ca959c11..fbc7e0826 100644 --- a/core/autocomplete/completionProvider.ts +++ b/core/autocomplete/completionProvider.ts @@ -1,9 +1,10 @@ -import Handlebars from "handlebars"; import ignore from "ignore"; +import OpenAI from "openai"; import path from "path"; import { v4 as uuidv4 } from "uuid"; import { RangeInFileWithContents } from "../commands/util.js"; -import { ConfigHandler } from "../config/handler.js"; +import { IConfigHandler } from "../config/IConfigHandler.js"; +import { TRIAL_FIM_MODEL } from "../config/onboarding.js"; import { streamLines } from "../diff/util.js"; import { IDE, @@ -13,15 +14,15 @@ import { Range, TabAutocompleteOptions, } from "../index.js"; -import OpenAI from "../llm/llms/OpenAI.js"; import { logDevData } from "../util/devdata.js"; import { getBasename, getLastNPathParts } from "../util/index.js"; import { COUNT_COMPLETION_REJECTED_AFTER, DEFAULT_AUTOCOMPLETE_OPTS, } from "../util/parameters.js"; -import { Telemetry } from "../util/posthog.js"; +import { Telemetry } from "../util/logging.js"; import { getRangeInString } from "../util/ranges.js"; +import { ImportDefinitionsService } from "./ImportDefinitionsService.js"; import { BracketMatchingService } from "./brackets.js"; import AutocompleteLruCache from "./cache.js"; import { @@ -37,6 +38,7 @@ import { AutocompleteLanguageInfo } from "./languages.js"; import { avoidPathLine, noTopLevelKeywordsMidline, + skipPrefixes, stopAtLines, stopAtRepeatingLines, stopAtSimilarLine, @@ -47,6 +49,8 @@ import { AutocompleteSnippet } from "./ranking.js"; import { RecentlyEditedRange } from "./recentlyEdited.js"; import { getTemplateForModel } from "./templates.js"; import { GeneratorReuseManager } from "./util.js"; +// @prettier-ignore +import Handlebars from "handlebars"; export interface AutocompleteInput { completionId: string; @@ -136,324 +140,13 @@ export type GetLspDefinitionsFunction = ( lang: AutocompleteLanguageInfo, ) => Promise; -export async function getTabCompletion( - token: AbortSignal, - options: TabAutocompleteOptions, - llm: ILLM, - ide: IDE, - generatorReuseManager: GeneratorReuseManager, - input: AutocompleteInput, - getDefinitionsFromLsp: GetLspDefinitionsFunction, - bracketMatchingService: BracketMatchingService, -): Promise { - const startTime = Date.now(); - - const { - filepath, - pos, - recentlyEditedFiles, - recentlyEditedRanges, - clipboardText, - manuallyPassFileContents, - manuallyPassPrefix, - } = input; - const fileContents = - manuallyPassFileContents ?? (await ide.readFile(filepath)); - const fileLines = fileContents.split("\n"); - - // Filter - const lang = languageForFilepath(filepath); - const line = fileLines[pos.line] ?? ""; - for (const endOfLine of lang.endOfLine) { - if (line.endsWith(endOfLine) && pos.character >= line.length) { - return undefined; - } - } - - // Model - if (!llm) { - return; - } - if (llm instanceof OpenAI) { - llm.useLegacyCompletionsEndpoint = true; - } - - // Prompt - let fullPrefix = - getRangeInString(fileContents, { - start: { line: 0, character: 0 }, - end: input.selectedCompletionInfo?.range.start ?? pos, - }) + (input.selectedCompletionInfo?.text ?? ""); - - if (input.injectDetails) { - const lines = fullPrefix.split("\n"); - fullPrefix = `${lines.slice(0, -1).join("\n")}\n${ - lang.singleLineComment - } ${input.injectDetails.split("\n").join(`\n${lang.singleLineComment} `)}\n${ - lines[lines.length - 1] - }`; - } - - const fullSuffix = getRangeInString(fileContents, { - start: pos, - end: { line: fileLines.length - 1, character: Number.MAX_SAFE_INTEGER }, - }); - - // First non-whitespace line below the cursor - let lineBelowCursor = ""; - let i = 1; - while ( - lineBelowCursor.trim() === "" && - pos.line + i <= fileLines.length - 1 - ) { - lineBelowCursor = fileLines[Math.min(pos.line + i, fileLines.length - 1)]; - i++; - } - - let extrasSnippets = options.useOtherFiles - ? ((await Promise.race([ - getDefinitionsFromLsp( - filepath, - fullPrefix + fullSuffix, - fullPrefix.length, - ide, - lang, - ), - new Promise((resolve) => { - setTimeout(() => resolve([]), 100); - }), - ])) as AutocompleteSnippet[]) - : []; - - const workspaceDirs = await ide.getWorkspaceDirs(); - if (options.onlyMyCode) { - extrasSnippets = extrasSnippets.filter((snippet) => { - return workspaceDirs.some((dir) => snippet.filepath.startsWith(dir)); - }); - } - - let { prefix, suffix, completeMultiline, snippets } = - await constructAutocompletePrompt( - filepath, - pos.line, - fullPrefix, - fullSuffix, - clipboardText, - lang, - options, - recentlyEditedRanges, - recentlyEditedFiles, - llm.model, - extrasSnippets, - ); - - // If prefix is manually passed - if (manuallyPassPrefix) { - prefix = manuallyPassPrefix; - suffix = ""; - } - - // Template prompt - const { - template, - completionOptions, - compilePrefixSuffix = undefined, - } = options.template - ? { template: options.template, completionOptions: {} } - : getTemplateForModel(llm.model); - - let prompt: string; - const filename = getBasename(filepath); - const reponame = getBasename(workspaceDirs[0] ?? "myproject"); - - // Some models have prompts that need two passes. This lets us pass the compiled prefix/suffix - // into either the 2nd template to generate a raw string, or to pass prefix, suffix to a FIM endpoint - if (compilePrefixSuffix) { - [prefix, suffix] = compilePrefixSuffix( - prefix, - suffix, - filepath, - reponame, - snippets, - ); - } - - if (typeof template === "string") { - const compiledTemplate = Handlebars.compile(template); - - // Format snippets as comments and prepend to prefix - const formattedSnippets = snippets - .map((snippet) => - formatExternalSnippet(snippet.filepath, snippet.contents, lang), - ) - .join("\n"); - if (formattedSnippets.length > 0) { - prefix = `${formattedSnippets}\n\n${prefix}`; - } else if (prefix.trim().length === 0 && suffix.trim().length === 0) { - // If it's an empty file, include the file name as a comment - prefix = `${lang.singleLineComment} ${getLastNPathParts(filepath, 2)}\n${prefix}`; - } - - prompt = compiledTemplate({ - prefix, - suffix, - filename, - reponame, - }); - } else { - // Let the template function format snippets - prompt = template(prefix, suffix, filepath, reponame, snippets); - } - - // Completion - let completion = ""; - - const cache = await autocompleteCache; - const cachedCompletion = options.useCache - ? await cache.get(prefix) - : undefined; - let cacheHit = false; - if (cachedCompletion) { - // Cache - cacheHit = true; - completion = cachedCompletion; - } else { - const stop = [ - ...(completionOptions?.stop || []), - ...multilineStops, - ...commonStops, - ...(llm.model.toLowerCase().includes("starcoder2") - ? STARCODER2_T_ARTIFACTS - : []), - ...(lang.stopWords ?? []), - ...lang.topLevelKeywords.map((word) => `\n${word}`), - ]; - - const multiline = - !input.selectedCompletionInfo && // Only ever single-line if using intellisense selected value - options.multilineCompletions !== "never" && - (options.multilineCompletions === "always" || completeMultiline); - - // Try to reuse pending requests if what the user typed matches start of completion - const generator = generatorReuseManager.getGenerator( - prefix, - () => - llm.supportsFim() - ? llm.streamFim(prefix, suffix, { - ...completionOptions, - stop, - }) - : llm.streamComplete(prompt, { - ...completionOptions, - raw: true, - stop, - }), - multiline, - ); - - // Full stop means to stop the LLM's generation, instead of just truncating the displayed completion - const fullStop = () => generatorReuseManager.currentGenerator?.cancel(); - - // LLM - let cancelled = false; - const generatorWithCancellation = async function* () { - for await (const update of generator) { - if (token.aborted) { - cancelled = true; - return; - } - yield update; - } - }; - let charGenerator = generatorWithCancellation(); - charGenerator = noFirstCharNewline(charGenerator); - charGenerator = onlyWhitespaceAfterEndOfLine( - charGenerator, - lang.endOfLine, - fullStop, - ); - charGenerator = bracketMatchingService.stopOnUnmatchedClosingBracket( - charGenerator, - suffix, - filepath, - ); - - let lineGenerator = streamLines(charGenerator); - lineGenerator = stopAtLines(lineGenerator, fullStop); - lineGenerator = stopAtRepeatingLines(lineGenerator, fullStop); - lineGenerator = avoidPathLine(lineGenerator, lang.singleLineComment); - lineGenerator = noTopLevelKeywordsMidline( - lineGenerator, - lang.topLevelKeywords, - fullStop, - ); - - for (const lineFilter of lang.lineFilters ?? []) { - lineGenerator = lineFilter({ lines: lineGenerator, fullStop }); - } - - lineGenerator = streamWithNewLines(lineGenerator); - - const finalGenerator = stopAtSimilarLine( - lineGenerator, - lineBelowCursor, - fullStop, - ); - - try { - for await (const update of finalGenerator) { - completion += update; - } - } catch (e: any) { - if (ERRORS_TO_IGNORE.some((err) => e.includes(err))) { - return undefined; - } - throw e; - } - - if (cancelled) { - return undefined; - } - - const processedCompletion = postprocessCompletion({ - completion, - prefix, - suffix, - llm, - }); - - if (!processedCompletion) { - return undefined; - } - completion = processedCompletion; - } - - const time = Date.now() - startTime; - return { - time, - completion, - prefix, - suffix, - prompt, - modelProvider: llm.providerName, - modelName: llm.model, - completionOptions, - cacheHit, - filepath: input.filepath, - completionId: input.completionId, - gitRepo: await ide.getRepoName(input.filepath), - uniqueId: await ide.getUniqueId(), - ...options, - }; -} - export class CompletionProvider { private static debounceTimeout: NodeJS.Timeout | undefined = undefined; private static debouncing = false; private static lastUUID: string | undefined = undefined; constructor( - private readonly configHandler: ConfigHandler, + private readonly configHandler: IConfigHandler, private readonly ide: IDE, private readonly getLlm: () => Promise, private readonly _onError: (e: any) => void, @@ -462,12 +155,15 @@ export class CompletionProvider { this.generatorReuseManager = new GeneratorReuseManager( this.onError.bind(this), ); + this.importDefinitionsService = new ImportDefinitionsService(this.ide); } + private importDefinitionsService: ImportDefinitionsService; private generatorReuseManager: GeneratorReuseManager; private autocompleteCache = AutocompleteLruCache.get(); public errorsShown: Set = new Set(); private bracketMatchingService = new BracketMatchingService(); + // private nearbyDefinitionsService = new NearbyDefinitionsService(); private onError(e: any) { console.warn("Error generating autocompletion: ", e); @@ -506,13 +202,16 @@ export class CompletionProvider { const outcome = this._outcomes.get(completionId)!; outcome.accepted = true; logDevData("autocomplete", outcome); - Telemetry.capture("autocomplete", { - accepted: outcome.accepted, - modelName: outcome.modelName, - modelProvider: outcome.modelProvider, - time: outcome.time, - cacheHit: outcome.cacheHit, - }); + Telemetry.capture( + "autocomplete", + { + accepted: outcome.accepted, + modelName: outcome.modelName, + modelProvider: outcome.modelProvider, + time: outcome.time, + cacheHit: outcome.cacheHit, + } + ); this._outcomes.delete(completionId); this.bracketMatchingService.handleAcceptedCompletion( @@ -627,16 +326,7 @@ export class CompletionProvider { options.maxPromptTokens = 500; } - const outcome = await getTabCompletion( - token, - options, - llm, - this.ide, - this.generatorReuseManager, - input, - this.getDefinitionsFromLsp, - this.bracketMatchingService, - ); + const outcome = await this.getTabCompletion(token, options, llm, input); if (!outcome?.completion) { return undefined; @@ -672,9 +362,12 @@ export class CompletionProvider { outcome.accepted = false; logDevData("autocomplete", outcome); const { prompt, completion, ...restOfOutcome } = outcome; - Telemetry.capture("autocomplete", { - ...restOfOutcome, - }); + Telemetry.capture( + "autocomplete", + { + ...restOfOutcome, + } + ); this._logRejectionTimeouts.delete(completionId); }, COUNT_COMPLETION_REJECTED_AFTER); this._outcomes.set(completionId, outcome); @@ -708,4 +401,339 @@ export class CompletionProvider { displayedAt: now, }; } + + async getTabCompletion( + token: AbortSignal, + options: TabAutocompleteOptions, + llm: ILLM, + input: AutocompleteInput, + ): Promise { + const startTime = Date.now(); + + const { + filepath, + pos, + recentlyEditedFiles, + recentlyEditedRanges, + clipboardText, + manuallyPassFileContents, + manuallyPassPrefix, + } = input; + const fileContents = + manuallyPassFileContents ?? (await this.ide.readFile(filepath)); + const fileLines = fileContents.split("\n"); + + // Filter + const lang = languageForFilepath(filepath); + const line = fileLines[pos.line] ?? ""; + for (const endOfLine of lang.endOfLine) { + if (line.endsWith(endOfLine) && pos.character >= line.length) { + return undefined; + } + } + + // Model + if (!llm) { + return; + } + if (llm instanceof OpenAI) { + llm.useLegacyCompletionsEndpoint = true; + } else if ( + llm.providerName === "free-trial" && + llm.model !== TRIAL_FIM_MODEL + ) { + llm.model = TRIAL_FIM_MODEL; + } + + if ( + !shownGptClaudeWarning && + nonAutocompleteModels.some((model) => llm.model.includes(model)) && + !llm.model.includes("deepseek") && + !llm.model.includes("codestral") + ) { + shownGptClaudeWarning = true; + throw new Error( + `Warning: ${llm.model} is not trained for tab-autocomplete, and will result in low-quality suggestions. See the docs to learn more about why: https://docs.continue.dev/walkthroughs/tab-autocomplete#i-want-better-completions-should-i-use-gpt-4`, + ); + } + + // Prompt + let fullPrefix = + getRangeInString(fileContents, { + start: { line: 0, character: 0 }, + end: input.selectedCompletionInfo?.range.start ?? pos, + }) + (input.selectedCompletionInfo?.text ?? ""); + + if (input.injectDetails) { + const lines = fullPrefix.split("\n"); + fullPrefix = `${lines.slice(0, -1).join("\n")}\n${ + lang.singleLineComment + } ${input.injectDetails.split("\n").join(`\n${lang.singleLineComment} `)}\n${ + lines[lines.length - 1] + }`; + } + + const fullSuffix = getRangeInString(fileContents, { + start: pos, + end: { line: fileLines.length - 1, character: Number.MAX_SAFE_INTEGER }, + }); + + // First non-whitespace line below the cursor + let lineBelowCursor = ""; + let i = 1; + while ( + lineBelowCursor.trim() === "" && + pos.line + i <= fileLines.length - 1 + ) { + lineBelowCursor = fileLines[Math.min(pos.line + i, fileLines.length - 1)]; + i++; + } + + let extrasSnippets = options.useOtherFiles + ? ((await Promise.race([ + this.getDefinitionsFromLsp( + filepath, + fullPrefix + fullSuffix, + fullPrefix.length, + this.ide, + lang, + ), + new Promise((resolve) => { + setTimeout(() => resolve([]), 100); + }), + ])) as AutocompleteSnippet[]) + : []; + + const workspaceDirs = await this.ide.getWorkspaceDirs(); + if (options.onlyMyCode) { + extrasSnippets = extrasSnippets.filter((snippet) => { + return workspaceDirs.some((dir) => snippet.filepath.startsWith(dir)); + }); + } + + let { prefix, suffix, completeMultiline, snippets } = + await constructAutocompletePrompt( + filepath, + pos.line, + fullPrefix, + fullSuffix, + clipboardText, + lang, + options, + recentlyEditedRanges, + recentlyEditedFiles, + llm.model, + extrasSnippets, + this.importDefinitionsService, + ); + + // If prefix is manually passed + if (manuallyPassPrefix) { + prefix = manuallyPassPrefix; + suffix = ""; + } + + // Template prompt + const { + template, + completionOptions, + compilePrefixSuffix = undefined, + } = options.template + ? { template: options.template, completionOptions: {} } + : getTemplateForModel(llm.model); + + let prompt: string; + const filename = getBasename(filepath); + const reponame = getBasename(workspaceDirs[0] ?? "myproject"); + + // Some models have prompts that need two passes. This lets us pass the compiled prefix/suffix + // into either the 2nd template to generate a raw string, or to pass prefix, suffix to a FIM endpoint + if (compilePrefixSuffix) { + [prefix, suffix] = compilePrefixSuffix( + prefix, + suffix, + filepath, + reponame, + snippets, + ); + } + + if (typeof template === "string") { + const compiledTemplate = Handlebars.compile(template); + + // Format snippets as comments and prepend to prefix + const formattedSnippets = snippets + .map((snippet) => + formatExternalSnippet(snippet.filepath, snippet.contents, lang), + ) + .join("\n"); + if (formattedSnippets.length > 0) { + prefix = `${formattedSnippets}\n\n${prefix}`; + } else if (prefix.trim().length === 0 && suffix.trim().length === 0) { + // If it's an empty file, include the file name as a comment + prefix = `${lang.singleLineComment} ${getLastNPathParts(filepath, 2)}\n${prefix}`; + } + + prompt = compiledTemplate({ + prefix, + suffix, + filename, + reponame, + }); + } else { + // Let the template function format snippets + prompt = template(prefix, suffix, filepath, reponame, snippets); + } + + // Completion + let completion = ""; + + const cache = await autocompleteCache; + const cachedCompletion = options.useCache + ? await cache.get(prefix) + : undefined; + let cacheHit = false; + if (cachedCompletion) { + // Cache + cacheHit = true; + completion = cachedCompletion; + } else { + const stop = [ + ...(completionOptions?.stop || []), + ...multilineStops, + ...commonStops, + ...(llm.model.toLowerCase().includes("starcoder2") + ? STARCODER2_T_ARTIFACTS + : []), + ...(lang.stopWords ?? []), + ...lang.topLevelKeywords.map((word) => `\n${word}`), + ]; + + let langMultilineDecision = lang.useMultiline?.({ prefix, suffix }); + let multiline: boolean = false; + if (langMultilineDecision) { + multiline = langMultilineDecision; + } else { + multiline = + !input.selectedCompletionInfo && // Only ever single-line if using intellisense selected value + options.multilineCompletions !== "never" && + (options.multilineCompletions === "always" || completeMultiline); + } + + // Try to reuse pending requests if what the user typed matches start of completion + const generator = this.generatorReuseManager.getGenerator( + prefix, + () => + llm.supportsFim() + ? llm.streamFim(prefix, suffix, { + ...completionOptions, + stop, + }) + : llm.streamComplete(prompt, { + ...completionOptions, + raw: true, + stop, + }), + multiline, + ); + + // Full stop means to stop the LLM's generation, instead of just truncating the displayed completion + const fullStop = () => + this.generatorReuseManager.currentGenerator?.cancel(); + + // LLM + let cancelled = false; + const generatorWithCancellation = async function* () { + for await (const update of generator) { + if (token.aborted) { + cancelled = true; + return; + } + yield update; + } + }; + let charGenerator = generatorWithCancellation(); + charGenerator = noFirstCharNewline(charGenerator); + charGenerator = onlyWhitespaceAfterEndOfLine( + charGenerator, + lang.endOfLine, + fullStop, + ); + charGenerator = this.bracketMatchingService.stopOnUnmatchedClosingBracket( + charGenerator, + prefix, + suffix, + filepath, + multiline, + ); + + let lineGenerator = streamLines(charGenerator); + lineGenerator = stopAtLines(lineGenerator, fullStop); + lineGenerator = stopAtRepeatingLines(lineGenerator, fullStop); + lineGenerator = avoidPathLine(lineGenerator, lang.singleLineComment); + lineGenerator = skipPrefixes(lineGenerator); + lineGenerator = noTopLevelKeywordsMidline( + lineGenerator, + lang.topLevelKeywords, + fullStop, + ); + + for (const lineFilter of lang.lineFilters ?? []) { + lineGenerator = lineFilter({ lines: lineGenerator, fullStop }); + } + + lineGenerator = streamWithNewLines(lineGenerator); + + const finalGenerator = stopAtSimilarLine( + lineGenerator, + lineBelowCursor, + fullStop, + ); + + try { + for await (const update of finalGenerator) { + completion += update; + } + } catch (e: any) { + if (ERRORS_TO_IGNORE.some((err) => e.includes(err))) { + return undefined; + } + throw e; + } + + if (cancelled) { + return undefined; + } + + const processedCompletion = postprocessCompletion({ + completion, + prefix, + suffix, + llm, + }); + + if (!processedCompletion) { + return undefined; + } + completion = processedCompletion; + } + + const time = Date.now() - startTime; + return { + time, + completion, + prefix, + suffix, + prompt, + modelProvider: llm.providerName, + modelName: llm.model, + completionOptions, + cacheHit, + filepath: input.filepath, + completionId: input.completionId, + gitRepo: await this.ide.getRepoName(input.filepath), + uniqueId: await this.ide.getUniqueId(), + ...options, + }; + } } diff --git a/core/autocomplete/constructPrompt.ts b/core/autocomplete/constructPrompt.ts index 996283e42..cf5b07e44 100644 --- a/core/autocomplete/constructPrompt.ts +++ b/core/autocomplete/constructPrompt.ts @@ -1,21 +1,27 @@ import Parser from "web-tree-sitter"; -import { TabAutocompleteOptions } from ".."; -import { RangeInFileWithContents } from "../commands/util"; +import { RangeInFileWithContents } from "../commands/util.js"; +import { TabAutocompleteOptions } from "../index.js"; import { countTokens, pruneLinesFromBottom, pruneLinesFromTop, -} from "../llm/countTokens"; -import { getAst, getTreePathAtCursor } from "./ast"; -import { AutocompleteLanguageInfo, LANGUAGES, Typescript } from "./languages"; +} from "../llm/countTokens.js"; +import { ImportDefinitionsService } from "./ImportDefinitionsService.js"; +import { getAst, getTreePathAtCursor } from "./ast.js"; +import { + AutocompleteLanguageInfo, + LANGUAGES, + Typescript, +} from "./languages.js"; import { - AutocompleteSnippet, fillPromptWithSnippets, + getSymbolsForSnippet, rankSnippets, removeRangeFromSnippets, -} from "./ranking"; -import { slidingWindowMatcher } from "./slidingWindow"; + type AutocompleteSnippet, +} from "./ranking.js"; +import { RecentlyEditedRange, findMatchingRange } from "./recentlyEdited.js"; export function languageForFilepath( filepath: string, @@ -52,11 +58,41 @@ function shouldCompleteMultilineAst( return false; } +function isMidlineCompletion(prefix: string, suffix: string): boolean { + return !suffix.startsWith("\n"); +} + async function shouldCompleteMultiline( filepath: string, fullPrefix: string, fullSuffix: string, + language: AutocompleteLanguageInfo, ): Promise { + // Don't complete multi-line if you are mid-line + if (isMidlineCompletion(fullPrefix, fullSuffix)) { + return false; + } + + // Don't complete multi-line for single-line comments + if ( + fullPrefix + .split("\n") + .slice(-1)[0] + ?.trimStart() + .startsWith(language.singleLineComment) + ) { + return false; + } + + // First, if the line before ends with an opening bracket, then assume multi-line + if ( + ["{", "(", "["].includes( + fullPrefix.split("\n").slice(-2)[0]?.trim().slice(-1)[0], + ) + ) { + return true; + } + // Use AST to determine whether to complete multiline let treePath: Parser.SyntaxNode[] | undefined; try { @@ -72,7 +108,7 @@ async function shouldCompleteMultiline( let completeMultiline = false; if (treePath) { - let cursorLine = fullPrefix.split("\n").length - 1; + const cursorLine = fullPrefix.split("\n").length - 1; completeMultiline = shouldCompleteMultilineAst(treePath, cursorLine); } return completeMultiline; @@ -86,10 +122,11 @@ export async function constructAutocompletePrompt( clipboardText: string, language: AutocompleteLanguageInfo, options: TabAutocompleteOptions, - recentlyEditedRanges: RangeInFileWithContents[], + recentlyEditedRanges: RecentlyEditedRange[], recentlyEditedFiles: RangeInFileWithContents[], modelName: string, extraSnippets: AutocompleteSnippet[], + importDefinitionsService: ImportDefinitionsService, ): Promise<{ prefix: string; suffix: string; @@ -99,14 +136,14 @@ export async function constructAutocompletePrompt( }> { // Construct basic prefix const maxPrefixTokens = options.maxPromptTokens * options.prefixPercentage; - let prefix = pruneLinesFromTop(fullPrefix, maxPrefixTokens, modelName); + const prefix = pruneLinesFromTop(fullPrefix, maxPrefixTokens, modelName); // Construct suffix const maxSuffixTokens = Math.min( options.maxPromptTokens - countTokens(prefix, modelName), options.maxSuffixPercentage * options.maxPromptTokens, ); - let suffix = pruneLinesFromBottom(fullSuffix, maxSuffixTokens, modelName); + const suffix = pruneLinesFromBottom(fullSuffix, maxSuffixTokens, modelName); // Find external snippets let snippets: AutocompleteSnippet[] = []; @@ -122,29 +159,70 @@ export async function constructAutocompletePrompt( options.slidingWindowSize * (1 - options.slidingWindowPrefixPercentage), ); - const slidingWindowMatches = await slidingWindowMatcher( - recentlyEditedFiles, - windowAroundCursor, - 3, - options.slidingWindowSize, - ); - snippets.push(...slidingWindowMatches); - - const recentlyEdited = ( - await Promise.all( - recentlyEditedRanges.map(async (r) => { - return r; - // return await getScopeAroundRange(r); - }), - ) - ).filter((s) => !!s); - snippets.push(...(recentlyEdited as any)); - // Filter out empty snippets - snippets = snippets.filter( - (s) => - s.contents.trim() !== "" && - !(prefix + suffix).includes(s.contents.trim()), - ); + // This was much too slow, and not super useful + // const slidingWindowMatches = await slidingWindowMatcher( + // recentlyEditedFiles, + // windowAroundCursor, + // 3, + // options.slidingWindowSize, + // ); + // snippets.push(...slidingWindowMatches); + + // snippets.push( + // ...recentlyEditedRanges.map((r) => ({ + // ...r, + // contents: r.lines.join("\n"), + // })), + // ); + + if (options.useRecentlyEdited) { + const currentLinePrefix = prefix.trim().split("\n").slice(-1)[0]; + if (currentLinePrefix?.length > options.recentLinePrefixMatchMinLength) { + const matchingRange = findMatchingRange( + recentlyEditedRanges, + currentLinePrefix, + ); + if (matchingRange) { + snippets.push({ + ...matchingRange, + contents: matchingRange.lines.join("\n"), + score: 0.8, + }); + } + } + } + + // Use imports + if (options.useImports) { + const importSnippets = []; + const fileInfo = importDefinitionsService.get(filepath); + if (fileInfo) { + const { imports } = fileInfo; + // Look for imports of any symbols around the current range + const textAroundCursor = + fullPrefix.split("\n").slice(-5).join("\n") + + fullSuffix.split("\n").slice(0, 3).join("\n"); + const symbols = Array.from( + getSymbolsForSnippet(textAroundCursor), + ).filter((symbol) => !language.topLevelKeywords.includes(symbol)); + for (const symbol of symbols) { + const rifs = imports[symbol]; + if (Array.isArray(rifs)) { + importSnippets.push(...rifs); + } + } + } + snippets.push(...importSnippets); + } + + // Filter out empty snippets and ones that are already in the prefix/suffix + snippets = snippets + .map((snippet) => ({ ...snippet })) + .filter( + (s) => + s.contents.trim() !== "" && + !(prefix + suffix).includes(s.contents.trim()), + ); // Rank / order the snippets const scoredSnippets = rankSnippets(snippets, windowAroundCursor); @@ -194,6 +272,7 @@ export async function constructAutocompletePrompt( filepath, fullPrefix, fullSuffix, + language, ), snippets, }; diff --git a/core/autocomplete/filter.ts b/core/autocomplete/filter.ts index 8b475724a..9fb9b7d0b 100644 --- a/core/autocomplete/filter.ts +++ b/core/autocomplete/filter.ts @@ -1,5 +1,4 @@ export function isOnlyPunctuationAndWhitespace(completion: string): boolean { - const punctuationAndWhitespaceRegex = /^[^\w\d\}\)\]]+$/; - return punctuationAndWhitespaceRegex.test(completion); - } - \ No newline at end of file + const punctuationAndWhitespaceRegex = /^[^\w\d\}\)\]]+$/; + return punctuationAndWhitespaceRegex.test(completion); +} diff --git a/core/autocomplete/languages.ts b/core/autocomplete/languages.ts index d1f5652a8..3360c3a9b 100644 --- a/core/autocomplete/languages.ts +++ b/core/autocomplete/languages.ts @@ -1,4 +1,4 @@ -import { LineFilter } from "./lineStream"; +import type { LineFilter } from "./lineStream"; export interface AutocompleteLanguageInfo { topLevelKeywords: string[]; @@ -6,6 +6,10 @@ export interface AutocompleteLanguageInfo { endOfLine: string[]; stopWords?: string[]; lineFilters?: LineFilter[]; + useMultiline?: (args: { + prefix: string; + suffix: string; + }) => boolean | undefined; } // TypeScript @@ -253,6 +257,30 @@ export const YAML: AutocompleteLanguageInfo = { ], }; +export const Markdown: AutocompleteLanguageInfo = { + topLevelKeywords: [], + singleLineComment: "", + endOfLine: [], + useMultiline: ({ prefix, suffix }) => { + const singleLineStarters = ["- ", "* ", /^\d+\. /, "> ", "```", /^#{1,6} /]; + let currentLine = prefix.split("\n").pop(); + if (!currentLine) { + return undefined; + } + currentLine = currentLine.trim(); + for (const starter of singleLineStarters) { + if ( + typeof starter === "string" + ? currentLine.startsWith(starter) + : starter.test(currentLine) + ) { + return false; + } + } + return undefined; + }, +}; + export const LANGUAGES: { [extension: string]: AutocompleteLanguageInfo } = { ts: Typescript, js: Typescript, @@ -291,4 +319,6 @@ export const LANGUAGES: { [extension: string]: AutocompleteLanguageInfo } = { dart: Dart, sol: Solidity, yaml: YAML, -}; \ No newline at end of file + yml: YAML, + md: Markdown, +}; diff --git a/core/autocomplete/lineStream.ts b/core/autocomplete/lineStream.ts index 36a4c2700..674f0d46e 100644 --- a/core/autocomplete/lineStream.ts +++ b/core/autocomplete/lineStream.ts @@ -67,6 +67,19 @@ function commonPrefixLength(a: string, b: string): number { return i; } +export function lineIsRepeated(a: string, b: string): boolean { + if (a.length <= 4 || b.length <= 4) { + return false; + } + + const aTrim = a.trim(); + const bTrim = b.trim(); + return ( + commonPrefixLength(aTrim, bTrim) > 12 || + distance(aTrim, bTrim) / bTrim.length < 0.1 + ); +} + export async function* stopAtSimilarLine( stream: LineStream, line: string, @@ -85,12 +98,7 @@ export async function* stopAtSimilarLine( continue; } - let lineQualifies = nextLine.length > 4 && trimmedLine.length > 4; - if ( - lineQualifies && - (commonPrefixLength(nextLine.trim(), trimmedLine.trim()) > 12 || - distance(nextLine.trim(), trimmedLine) / trimmedLine.length < 0.1) - ) { + if (lineIsRepeated(nextLine, trimmedLine)) { fullStop(); break; } @@ -113,6 +121,22 @@ export async function* stopAtLines( } } +const PREFIXES_TO_SKIP = [""]; +export async function* skipPrefixes(lines: LineStream): LineStream { + let isFirstLine = true; + for await (const line of lines) { + if (isFirstLine) { + const match = PREFIXES_TO_SKIP.find((prefix) => line.startsWith(prefix)); + if (match) { + yield line.slice(match.length); + continue; + } + isFirstLine = false; + } + yield line; + } +} + const LINES_TO_SKIP = [""]; export async function* skipLines(stream: LineStream): LineStream { @@ -194,6 +218,8 @@ function isEnglishFirstLine(line: string) { line.startsWith("sure thing") || line.startsWith("sure!") || line.startsWith("to fill") || + line.startsWith("certainly") || + line.startsWith("of course") || line.startsWith("the code should") ) { return true; @@ -320,4 +346,4 @@ export async function* stopAtRepeatingLines( while (repeatedLines.length > 0) { yield repeatedLines.shift()!; } -} \ No newline at end of file +} diff --git a/core/autocomplete/postprocessing.ts b/core/autocomplete/postprocessing.ts index 323ab44e7..958c1cdff 100644 --- a/core/autocomplete/postprocessing.ts +++ b/core/autocomplete/postprocessing.ts @@ -1,4 +1,47 @@ -import { ILLM } from ".."; +import type { ILLM } from ".."; +import { longestCommonSubsequence } from "../util/lcs"; +import { lineIsRepeated } from "./lineStream"; + +function rewritesLineAbove(completion: string, prefix: string): boolean { + const lineAbove = prefix + .split("\n") + .filter((line) => line.trim().length > 0) + .slice(-1)[0]; + if (!lineAbove) { + return false; + } + + const firstLineOfCompletion = completion + .split("\n") + .find((line) => line.trim().length > 0); + if (!firstLineOfCompletion) { + return false; + } + return lineIsRepeated(lineAbove, firstLineOfCompletion); +} + +const MAX_REPETITION_FREQ_TO_CHECK = 3; +function isExtremeRepetition(completion: string): boolean { + const lines = completion.split("\n"); + if (lines.length < 6) { + return false; + } + for (let freq = 1; freq < MAX_REPETITION_FREQ_TO_CHECK; freq++) { + const lcs = longestCommonSubsequence(lines[0], lines[freq]); + if (lcs.length > 5 || lcs.length > lines[0].length * 0.5) { + let matchCount = 0; + for (let i = 0; i < lines.length; i += freq) { + if (lines[i].includes(lcs)) { + matchCount++; + } + } + if (matchCount * freq > 8 || (matchCount * freq) / lines.length > 0.8) { + return true; + } + } + } + return false; +} export function postprocessCompletion({ completion, @@ -16,6 +59,16 @@ export function postprocessCompletion({ return undefined; } + // Dont return if it's just a repeat of the line above + if (rewritesLineAbove(completion, prefix)) { + return undefined; + } + + // Filter out repetitions of many lines in a row + if (isExtremeRepetition(completion)) { + return undefined; + } + // Remove trailing whitespace completion = completion.trimEnd(); @@ -39,5 +92,15 @@ export function postprocessCompletion({ return undefined; } + // If prefix ends with space and so does completion, then remove the space from completion + if (prefix.endsWith(" ") && completion.startsWith(" ")) { + completion = completion.slice(1); + } + + // Qwen often adds an extra space to the start + if (llm.model.toLowerCase().includes("qwen") && completion.startsWith(" ")) { + completion = completion.slice(1); + } + return completion; -} \ No newline at end of file +} diff --git a/core/autocomplete/ranking.ts b/core/autocomplete/ranking.ts index 000342330..51791794c 100644 --- a/core/autocomplete/ranking.ts +++ b/core/autocomplete/ranking.ts @@ -1,9 +1,9 @@ -import { Range } from ".."; -import { RangeInFileWithContents } from "../commands/util"; -import { countTokens } from "../llm/countTokens"; +import { RangeInFileWithContents } from "../commands/util.js"; +import { Range } from "../index.js"; +import { countTokens } from "../llm/countTokens.js"; export type AutocompleteSnippet = RangeInFileWithContents & { - score: number; + score?: number; }; const rx = /[\s.,\/#!$%\^&\*;:{}=\-_`~()\[\]]/g; @@ -42,11 +42,12 @@ export function jaccardSimilarity(a: string, b: string): number { * Rank code snippets to be used in tab-autocomplete prompt. Returns a sorted version of the snippet array. */ export function rankSnippets( - ranges: RangeInFileWithContents[], + ranges: AutocompleteSnippet[], windowAroundCursor: string, -): AutocompleteSnippet[] { - const snippets = ranges.map((snippet) => ({ - score: jaccardSimilarity(snippet.contents, windowAroundCursor), +): Required[] { + const snippets: Required[] = ranges.map((snippet) => ({ + score: + snippet.score ?? jaccardSimilarity(snippet.contents, windowAroundCursor), ...snippet, })); const uniqueSnippets = deduplicateSnippets(snippets); @@ -57,10 +58,10 @@ export function rankSnippets( * Deduplicate code snippets by merging overlapping ranges into a single range. */ export function deduplicateSnippets( - snippets: AutocompleteSnippet[], -): AutocompleteSnippet[] { + snippets: Required[], +): Required[] { // Group by file - const fileGroups: { [key: string]: AutocompleteSnippet[] } = {}; + const fileGroups: { [key: string]: Required[] } = {}; for (const snippet of snippets) { if (!fileGroups[snippet.filepath]) { fileGroups[snippet.filepath] = []; @@ -77,8 +78,8 @@ export function deduplicateSnippets( } function mergeSnippetsByRange( - snippets: AutocompleteSnippet[], -): AutocompleteSnippet[] { + snippets: Required[], +): Required[] { if (snippets.length === 0) { return snippets; } @@ -86,7 +87,7 @@ function mergeSnippetsByRange( const sorted = snippets.sort( (a, b) => a.range.start.line - b.range.start.line, ); - const merged: AutocompleteSnippet[] = []; + const merged: Required[] = []; while (sorted.length > 0) { const next = sorted.shift()!; @@ -114,19 +115,19 @@ function mergeOverlappingRangeContents( ): string { const firstLines = first.contents.split("\n"); const numOverlapping = first.range.end.line - second.range.start.line; - return firstLines.slice(-numOverlapping).join("\n") + "\n" + second.contents; + return `${firstLines.slice(-numOverlapping).join("\n")}\n${second.contents}`; } /** * Fill the allowed space with snippets */ export function fillPromptWithSnippets( - snippets: AutocompleteSnippet[], + snippets: Required[], maxSnippetTokens: number, modelName: string, -): AutocompleteSnippet[] { +): Required[] { let tokensRemaining = maxSnippetTokens; - const keptSnippets: AutocompleteSnippet[] = []; + const keptSnippets: Required[] = []; for (let i = 0; i < snippets.length; i++) { const snippet = snippets[i]; const tokenCount = countTokens(snippet.contents, modelName); @@ -134,7 +135,6 @@ export function fillPromptWithSnippets( tokensRemaining -= tokenCount; keptSnippets.push(snippet); } else { - continue; } } @@ -146,18 +146,17 @@ function rangeIntersectionByLines(a: Range, b: Range): Range | null { const endLine = Math.min(a.end.line, b.end.line); if (startLine >= endLine) { return null; - } else { - return { - start: { - line: startLine, - character: 0, - }, - end: { - line: endLine, - character: 0, - }, - }; } + return { + start: { + line: startLine, + character: 0, + }, + end: { + line: endLine, + character: 0, + }, + }; } /** @@ -170,7 +169,8 @@ function rangeDifferenceByLines(orig: Range, remove: Range): Range[] { ) { // / | | / return []; - } else if ( + } + if ( orig.start.line <= remove.start.line && orig.end.line >= remove.end.line ) { @@ -186,7 +186,8 @@ function rangeDifferenceByLines(orig: Range, remove: Range): Range[] { end: orig.end, }, ]; - } else if ( + } + if ( orig.start.line >= remove.start.line && orig.end.line >= remove.end.line ) { @@ -197,7 +198,8 @@ function rangeDifferenceByLines(orig: Range, remove: Range): Range[] { end: orig.end, }, ]; - } else if ( + } + if ( orig.start.line <= remove.start.line && orig.end.line <= remove.end.line ) { @@ -208,18 +210,17 @@ function rangeDifferenceByLines(orig: Range, remove: Range): Range[] { end: remove.start, }, ]; - } else { - return [orig]; } + return [orig]; } export function removeRangeFromSnippets( - snippets: AutocompleteSnippet[], + snippets: Required[], filepath: string, range: Range, -): AutocompleteSnippet[] { - const finalSnippets: AutocompleteSnippet[] = []; - for (let snippet of snippets) { +): Required[] { + const finalSnippets: Required[] = []; + for (const snippet of snippets) { if (snippet.filepath !== filepath) { finalSnippets.push(snippet); continue; diff --git a/core/autocomplete/recentlyEdited.ts b/core/autocomplete/recentlyEdited.ts index d809066a4..d0e7817ed 100644 --- a/core/autocomplete/recentlyEdited.ts +++ b/core/autocomplete/recentlyEdited.ts @@ -1,5 +1,18 @@ -import { RangeInFileWithContents } from "../commands/util"; +import { RangeInFile } from "../index.js"; -export type RecentlyEditedRange = RangeInFileWithContents & { +export type RecentlyEditedRange = RangeInFile & { timestamp: number; + lines: string[]; + symbols: Set; }; + +export function findMatchingRange( + recentlyEditedRanges: RecentlyEditedRange[], + linePrefix: string, +): RecentlyEditedRange | undefined { + return recentlyEditedRanges.find((recentlyEditedRange) => { + return recentlyEditedRange.lines.some((line) => + line.startsWith(linePrefix), + ); + }); +} diff --git a/core/autocomplete/retrieval.ts b/core/autocomplete/retrieval.ts index 5c9641863..635f52012 100644 --- a/core/autocomplete/retrieval.ts +++ b/core/autocomplete/retrieval.ts @@ -1,5 +1,5 @@ -import { BranchAndDir, Chunk } from ".."; -import { FullTextSearchCodebaseIndex } from "../indexing/FullTextSearch"; +import { BranchAndDir, Chunk } from "../index.js"; +import { FullTextSearchCodebaseIndex } from "../indexing/FullTextSearch.js"; export async function fullTextRetrieve( prefix: string, diff --git a/core/autocomplete/slidingWindow.ts b/core/autocomplete/slidingWindow.ts index 27537b3d9..72aa1a5ee 100644 --- a/core/autocomplete/slidingWindow.ts +++ b/core/autocomplete/slidingWindow.ts @@ -1,5 +1,5 @@ -import { RangeInFileWithContents } from "../commands/util"; -import { AutocompleteSnippet, jaccardSimilarity } from "./ranking"; +import { RangeInFileWithContents } from "../commands/util.js"; +import { AutocompleteSnippet, jaccardSimilarity } from "./ranking.js"; function* slidingWindow( content: string, @@ -38,7 +38,7 @@ export async function slidingWindowMatcher( windowSize: number, ): Promise { // Sorted lowest similarity to highest - const topMatches: AutocompleteSnippet[] = []; + const topMatches: Required[] = []; for (const { filepath, contents, range } of recentFiles) { for (const window of slidingWindow(contents, windowSize)) { diff --git a/core/autocomplete/templates.ts b/core/autocomplete/templates.ts index fa35d29fc..4de43739a 100644 --- a/core/autocomplete/templates.ts +++ b/core/autocomplete/templates.ts @@ -28,12 +28,20 @@ interface AutocompleteTemplate { const stableCodeFimTemplate: AutocompleteTemplate = { template: "{{{prefix}}}{{{suffix}}}", completionOptions: { - stop: ["", "", "", "<|endoftext|>"], + stop: [ + "", + "", + "", + "<|endoftext|>", + "", + "", + "", + ], }, }; const codestralFimTemplate: AutocompleteTemplate = { - template: "[SUFFIX]{{{suffix}}}[PREFIX]{{{prefix}}}", + template: "[SUFFIX]{{{suffix}}}[PREFIX]{{{prefix}}}", completionOptions: { stop: ["[PREFIX]", "[SUFFIX]"], }, @@ -238,11 +246,11 @@ function sum(tree: Tree): number { ## EXAMPLE QUERY: -The 4th {{FILL_HERE}} is Jupiter. +The 5th {{FILL_HERE}} is Jupiter. ## CORRECT COMPLETION: -the 4th planet after Mars +planet from the Sun ## EXAMPLE QUERY: @@ -277,7 +285,8 @@ export function getTemplateForModel(model: string): AutocompleteTemplate { lowerCaseModel.includes("starchat") || lowerCaseModel.includes("octocoder") || lowerCaseModel.includes("stable") || - lowerCaseModel.includes("codeqwen") + lowerCaseModel.includes("codeqwen") || + lowerCaseModel.includes("qwen") ) { return stableCodeFimTemplate; } @@ -307,4 +316,4 @@ export function getTemplateForModel(model: string): AutocompleteTemplate { } return stableCodeFimTemplate; -} \ No newline at end of file +} diff --git a/core/autocomplete/util.ts b/core/autocomplete/util.ts index 99f204dd8..d07658d17 100644 --- a/core/autocomplete/util.ts +++ b/core/autocomplete/util.ts @@ -2,7 +2,7 @@ export class ListenableGenerator { private _source: AsyncGenerator; private _buffer: T[] = []; private _listeners: Set<(value: T) => void> = new Set(); - private _isEnded: boolean = false; + private _isEnded = false; constructor( source: AsyncGenerator, @@ -55,7 +55,7 @@ export class ListenableGenerator { } while (!this._isEnded) { let resolve: (value: any) => void; - let promise = new Promise((res) => { + const promise = new Promise((res) => { resolve = res; this._listeners.add(resolve!); }); @@ -77,7 +77,7 @@ export class ListenableGenerator { export class GeneratorReuseManager { currentGenerator: ListenableGenerator | undefined; pendingGeneratorPrefix: string | undefined; - pendingCompletion: string = ""; + pendingCompletion = ""; constructor(private readonly onError: (err: any) => void) {} @@ -117,7 +117,7 @@ export class GeneratorReuseManager { } let alreadyTyped = prefix.slice(this.pendingGeneratorPrefix?.length) || ""; - for await (let chunk of this.currentGenerator!.tee()) { + for await (let chunk of this.currentGenerator?.tee() ?? []) { if (!chunk) { continue; } diff --git a/core/biome.json b/core/biome.json new file mode 100644 index 000000000..6308ce822 --- /dev/null +++ b/core/biome.json @@ -0,0 +1,15 @@ +{ + "$schema": "https://biomejs.dev/schemas/1.6.4/schema.json", + "organizeImports": { + "enabled": true + }, + "linter": { + "enabled": true, + "rules": { + "recommended": true + } + }, + "formatter": { + "indentStyle": "space" + } +} diff --git a/core/commands/index.ts b/core/commands/index.ts index ff0dc35db..6978b3fcf 100644 --- a/core/commands/index.ts +++ b/core/commands/index.ts @@ -1,6 +1,11 @@ -import { CustomCommand, SlashCommand, SlashCommandDescription } from ".."; -import { stripImages } from "../llm/countTokens"; -import SlashCommands from "./slash"; +import { + CustomCommand, + SlashCommand, + SlashCommandDescription, +} from "../index.js"; +import { stripImages } from "../llm/countTokens.js"; +import { renderTemplatedString } from "../llm/llms/index.js"; +import SlashCommands from "./slash/index.js"; export function slashFromCustomCommand( customCommand: CustomCommand, @@ -8,14 +13,48 @@ export function slashFromCustomCommand( return { name: customCommand.name, description: customCommand.description, - run: async function* ({ input, llm, history }) { - const promptUserInput = `Task: ${customCommand.prompt}. Additional info: ${input}`; + run: async function* ({ input, llm, history, ide }) { + // Remove slash command prefix from input + let userInput = input; + if (userInput.startsWith(`/${customCommand.name}`)) { + userInput = userInput + .slice(customCommand.name.length + 1, userInput.length) + .trimStart(); + } + + // Render prompt template + const promptUserInput = await renderTemplatedString( + customCommand.prompt, + ide.readFile.bind(ide), + { input: userInput }, + ); + const messages = [...history]; // Find the last chat message with this slash command and replace it with the user input for (let i = messages.length - 1; i >= 0; i--) { + const { role, content } = messages[i]; + if (role !== "user") { + continue; + } + if ( - messages[i].role === "user" && - stripImages(messages[i].content).startsWith(`/${customCommand.name}`) + Array.isArray(content) && + content.some((part) => + part.text?.startsWith(`/${customCommand.name}`), + ) + ) { + messages[i] = { + ...messages[i], + content: content.map((part) => { + return part.text?.startsWith(`/${customCommand.name}`) + ? { ...part, text: promptUserInput } + : part; + }), + }; + break; + } else if ( + typeof content === "string" && + content.startsWith(`/${customCommand.name}`) ) { messages[i] = { ...messages[i], content: promptUserInput }; break; @@ -39,5 +78,6 @@ export function slashCommandFromDescription( return { ...cmd, params: desc.params, + description: desc.description ?? cmd.description, }; } diff --git a/core/commands/slash/cmd.ts b/core/commands/slash/cmd.ts index 9afc4a61c..00ba5b0de 100644 --- a/core/commands/slash/cmd.ts +++ b/core/commands/slash/cmd.ts @@ -1,11 +1,24 @@ -import { SlashCommand } from "../.."; -import { streamLines } from "../../diff/util"; -import { removeQuotesAndEscapes } from "../../util"; +import { streamLines } from "../../diff/util.js"; +import { SlashCommand } from "../../index.js"; +import { removeQuotesAndEscapes } from "../../util/index.js"; + +function commandIsPotentiallyDangerous(command: string) { + return ( + command.includes("rm -rf") || + command.includes("sudo") || + command.includes("cd / ") + ); +} const GenerateTerminalCommand: SlashCommand = { name: "cmd", description: "Generate a shell command", run: async function* ({ ide, llm, input }) { + if (input.trim() === "") { + yield "Please provide a description of the shell command you want to generate. For example, '/cmd List all files in the current directory'."; + return; + } + const gen = llm.streamComplete(`The user has made a request to run a shell command. Their description of what it should do is: @@ -35,8 +48,12 @@ Please write a shell command that will do what the user requested. Your output s break; } - await ide.runCommand(cmd); yield `Generated shell command: ${cmd}`; + if (commandIsPotentiallyDangerous(cmd)) { + yield "\n\nWarning: This command may be potentially dangerous. Please double-check before pasting it in your terminal."; + } else { + await ide.runCommand(cmd); + } }, }; diff --git a/core/commands/slash/comment.ts b/core/commands/slash/comment.ts index 8430fdea8..929763bf3 100644 --- a/core/commands/slash/comment.ts +++ b/core/commands/slash/comment.ts @@ -1,5 +1,5 @@ -import { SlashCommand } from "../.."; -import EditSlashCommand from "./edit"; +import { SlashCommand } from "../../index.js"; +import EditSlashCommand from "./edit.js"; const CommentSlashCommand: SlashCommand = { name: "comment", @@ -7,7 +7,8 @@ const CommentSlashCommand: SlashCommand = { run: async function* (sdk) { for await (const update of EditSlashCommand.run({ ...sdk, - input: "Write comments for this code", + input: + "Write comments for this code. Do not change anything about the code itself.", })) { yield update; } diff --git a/core/commands/slash/commit.ts b/core/commands/slash/commit.ts index 34775fae1..37985dd1f 100644 --- a/core/commands/slash/commit.ts +++ b/core/commands/slash/commit.ts @@ -1,11 +1,17 @@ -import { SlashCommand } from "../.."; -import { stripImages } from "../../llm/countTokens"; +import { SlashCommand } from "../../index.js"; +import { stripImages } from "../../llm/countTokens.js"; const CommitMessageCommand: SlashCommand = { name: "commit", description: "Generate a commit message for current changes", run: async function* ({ ide, llm, input }) { const diff = await ide.getDiff(); + + if (!diff || diff.trim() === "") { + yield "No changes detected. Make sure you are in a git repository with current changes."; + return; + } + const prompt = `${diff}\n\nGenerate a commit message for the above set of changes. First, give a single sentence, no more than 80 characters. Then, after 2 line breaks, give a list of no more than 5 short bullet points, each no more than 40 characters. Output nothing except for the commit message, and don't surround it in quotes.`; for await (const chunk of llm.streamChat([ { role: "user", content: prompt }, diff --git a/core/commands/slash/draftIssue.ts b/core/commands/slash/draftIssue.ts index 1dd2c8cc4..0149f253d 100644 --- a/core/commands/slash/draftIssue.ts +++ b/core/commands/slash/draftIssue.ts @@ -1,6 +1,6 @@ -import { ChatMessage, SlashCommand } from "../.."; -import { stripImages } from "../../llm/countTokens"; -import { removeQuotesAndEscapes } from "../../util"; +import { ChatMessage, SlashCommand } from "../../index.js"; +import { stripImages } from "../../llm/countTokens.js"; +import { removeQuotesAndEscapes } from "../../util/index.js"; const PROMPT = ( input: string, @@ -34,7 +34,7 @@ const DraftIssueCommand: SlashCommand = { { maxTokens: 20 }, ); - title = removeQuotesAndEscapes(title.trim()) + "\n\n"; + title = `${removeQuotesAndEscapes(title.trim())}\n\n`; yield title; let body = ""; diff --git a/core/commands/slash/edit.ts b/core/commands/slash/edit.ts index 96b37962d..44ae2c9ed 100644 --- a/core/commands/slash/edit.ts +++ b/core/commands/slash/edit.ts @@ -1,4 +1,3 @@ -import { ContextItemWithId, ILLM, SlashCommand } from "../.."; import { filterCodeBlockLines, filterEnglishLinesAtEnd, @@ -6,14 +5,18 @@ import { fixCodeLlamaFirstLineIndentation, stopAtLines, streamWithNewLines, -} from "../../autocomplete/lineStream"; -import { streamLines } from "../../diff/util"; -import { stripImages } from "../../llm/countTokens"; -import { dedentAndGetCommonWhitespace } from "../../util"; +} from "../../autocomplete/lineStream.js"; +import { streamLines } from "../../diff/util.js"; +import { ContextItemWithId, ILLM, SlashCommand } from "../../index.js"; +import { stripImages } from "../../llm/countTokens.js"; +import { + dedentAndGetCommonWhitespace, + getMarkdownLanguageTagForFile, +} from "../../util/index.js"; import { - RangeInFileWithContents, contextItemToRangeInFileWithContents, -} from "../util"; + type RangeInFileWithContents, +} from "../util.js"; const PROMPT = `Take the file prefix and suffix into account, but only rewrite the code_to_edit as specified in the user_request. The code you write in modified_code_to_edit will replace the code between the code_to_edit tags. Do NOT preface your answer or write anything other than code. The tag should be written to indicate the end of the modified code section. Do not ever use nested tags. @@ -57,7 +60,7 @@ export async function getPromptParts( input: string, tokenLimit: number | undefined, ) { - let maxTokens = Math.floor(model.contextLength / 2); + const maxTokens = Math.floor(model.contextLength / 2); const TOKENS_TO_BE_CONSIDERED_LARGE_RANGE = tokenLimit ?? 1200; // if (model.countTokens(rif.contents) > TOKENS_TO_BE_CONSIDERED_LARGE_RANGE) { @@ -72,9 +75,9 @@ export async function getPromptParts( BUFFER_FOR_FUNCTIONS + maxTokens; - let fullFileContentsList = fullFileContents.split("\n"); - let maxStartLine = rif.range.start.line; - let minEndLine = rif.range.end.line; + const fullFileContentsList = fullFileContents.split("\n"); + const maxStartLine = rif.range.start.line; + const minEndLine = rif.range.end.line; let curStartLine = 0; let curEndLine = fullFileContentsList.length - 1; @@ -131,7 +134,7 @@ export async function getPromptParts( rif.contents = rif.contents.substring(1); } while (rif.contents.endsWith("\n")) { - fileSuffix = "\n" + fileSuffix; + fileSuffix = `\n${fileSuffix}`; rif.contents = rif.contents.substring(0, rif.contents.length - 1); } } @@ -144,7 +147,7 @@ function compilePrompt( fileSuffix: string, input: string, ): string { - if (contents.trim() == "") { + if (contents.trim() === "") { // Separate prompt for insertion at the cursor, the other tends to cause it to repeat whole file return `\ @@ -162,7 +165,7 @@ Please output the code to be inserted at the cursor in order to fulfill the user } let prompt = PROMPT; - if (filePrefix.trim() != "") { + if (filePrefix.trim() !== "") { prompt += ` ${filePrefix} @@ -173,7 +176,7 @@ ${filePrefix} ${contents} `; - if (fileSuffix.trim() != "") { + if (fileSuffix.trim() !== "") { prompt += ` ${fileSuffix} @@ -197,7 +200,7 @@ function isEndLine(line: string) { ); } -function lineToBeIgnored(line: string, isFirstLine: boolean = false): boolean { +function lineToBeIgnored(line: string, isFirstLine = false): boolean { return ( line.includes("```") || line.includes("") || @@ -226,7 +229,7 @@ const EditSlashCommand: SlashCommand = { } if (!contextItemToEdit) { - yield "Select (highlight and press `cmd+shift+L` (MacOS) / `ctrl+shift+L` (Windows)) the code that you want to edit first"; + yield "Please highlight the code you want to edit, then press `cmd/ctrl+shift+L` to add it to chat"; return; } @@ -234,21 +237,30 @@ const EditSlashCommand: SlashCommand = { let content = history[history.length - 1].content; if (typeof content !== "string") { content.forEach((part) => { - if (part.text && part.text.startsWith("/edit")) { + if (part.text?.startsWith("/edit")) { part.text = part.text.replace("/edit", "").trimStart(); } }); + } else if (input?.startsWith("/edit")) { + content = input.replace("/edit", "").trimStart(); + } else if (input?.startsWith("/comment")) { + content = input.replace("/comment", "").trimStart(); } let userInput = stripImages(content).replace( `\`\`\`${contextItemToEdit.name}\n${contextItemToEdit.content}\n\`\`\`\n`, "", ); + // if the above replace fails to find a match, the code will still be present + // in the userInput. Replace it with input if available. + if (userInput.includes("```") && (input !== "" || !input)) { + userInput = input; + } const rif: RangeInFileWithContents = contextItemToRangeInFileWithContents(contextItemToEdit); await ide.saveFile(rif.filepath); - let fullFileContents = await ide.readFile(rif.filepath); + const fullFileContents = await ide.readFile(rif.filepath); let { filePrefix, contents, fileSuffix, maxTokens } = await getPromptParts( rif, @@ -261,18 +273,18 @@ const EditSlashCommand: SlashCommand = { dedentAndGetCommonWhitespace(contents); contents = dedentedContents; - let prompt = compilePrompt(filePrefix, contents, fileSuffix, userInput); - let fullFileContentsLines = fullFileContents.split("\n"); - let fullPrefixLines = fullFileContentsLines.slice( + const prompt = compilePrompt(filePrefix, contents, fileSuffix, userInput); + const fullFileContentsLines = fullFileContents.split("\n"); + const fullPrefixLines = fullFileContentsLines.slice( 0, Math.max(0, rif.range.start.line - 1), ); - let fullSuffixLines = fullFileContentsLines.slice(rif.range.end.line); + const fullSuffixLines = fullFileContentsLines.slice(rif.range.end.line); let linesToDisplay: string[] = []; - async function sendDiffUpdate(lines: string[], final: boolean = false) { - let completion = lines.join("\n"); + async function sendDiffUpdate(lines: string[], final = false) { + const completion = lines.join("\n"); // Don't do this at the very end, just show the inserted code if (final) { @@ -281,9 +293,9 @@ const EditSlashCommand: SlashCommand = { // Only recalculate at every new-line, because this is sort of expensive else if (completion.endsWith("\n")) { - let contentsLines = rif.contents.split("\n"); + const contentsLines = rif.contents.split("\n"); let rewrittenLines = 0; - for (let line of lines) { + for (const line of lines) { for (let i = rewrittenLines; i < contentsLines.length; i++) { if ( // difflib.SequenceMatcher( @@ -301,22 +313,18 @@ const EditSlashCommand: SlashCommand = { linesToDisplay = contentsLines.slice(rewrittenLines); } - let newFileContents = - fullPrefixLines.join("\n") + - "\n" + - completion + - "\n" + - (linesToDisplay.length > 0 ? linesToDisplay.join("\n") + "\n" : "") + - fullSuffixLines.join("\n"); + const newFileContents = `${fullPrefixLines.join("\n")}\n${completion}\n${ + linesToDisplay.length > 0 ? `${linesToDisplay.join("\n")}\n` : "" + }${fullSuffixLines.join("\n")}`; - let stepIndex = history.length - 1; + const stepIndex = history.length - 1; await ide.showDiff(rif.filepath, newFileContents, stepIndex); } // Important state variables // ------------------------- - let originalLines = rif.contents === "" ? [] : rif.contents.split("\n"); + const originalLines = rif.contents === "" ? [] : rif.contents.split("\n"); // In the actual file, taking into account block offset let currentLineInFile = rif.range.start.line; let currentBlockLines: string[] = []; @@ -355,9 +363,9 @@ const EditSlashCommand: SlashCommand = { // In a block, and have already matched at least one line // Check if the next line matches, for each of the candidates - let matchesFound: any[] = []; + const matchesFound: any[] = []; let firstValidMatch: any = null; - for (let [ + for (const [ index_of_last_matched_line, num_lines_matched, ] of indicesOfLastMatchedLines) { @@ -389,7 +397,7 @@ const EditSlashCommand: SlashCommand = { // We added some lines to the block that were matched (including maybe some blank lines) // So here we will strip all matching lines from the end of currentBlockLines - let linesStripped: string[] = []; + const linesStripped: string[] = []; let indexOfLastLineInBlock: number = firstValidMatch[0]; while ( currentBlockLines.length > 0 && @@ -413,9 +421,9 @@ const EditSlashCommand: SlashCommand = { } // Always look for new matching candidates - let newMatches: any[] = []; + const newMatches: any[] = []; for (let i = 0; i < originalLinesBelowPreviousBlocks.length; i++) { - let ogLine = originalLinesBelowPreviousBlocks[i]; + const ogLine = originalLinesBelowPreviousBlocks[i]; // TODO: It's a bit sus to be disqualifying empty lines. // What you ideally do is find ALL matches, and then throw them out as you check the following lines if (ogLine === line) { @@ -437,17 +445,17 @@ const EditSlashCommand: SlashCommand = { messages[messages.length - 1] = { role: "user", content: prompt }; let linesOfPrefixCopied = 0; - let lines = []; - let unfinishedLine: string = ""; + const lines = []; + let unfinishedLine = ""; let completionLinesCovered = 0; let repeatingFileSuffix = false; - let lineBelowHighlightedRange = fileSuffix.trim().split("\n")[0]; + const lineBelowHighlightedRange = fileSuffix.trim().split("\n")[0]; // Use custom templates defined by the model const template = llm.promptTemplates?.edit; let generator: AsyncGenerator; if (template) { - let rendered = llm.renderPromptTemplate( + const rendered = llm.renderPromptTemplate( template, // typeof template === 'string' ? template : template.prompt, messages.slice(0, messages.length - 1), @@ -456,6 +464,12 @@ const EditSlashCommand: SlashCommand = { userInput, filePrefix: filePrefix, fileSuffix: fileSuffix, + + // Some built-in templates use these instead of the above + prefix: filePrefix, + suffix: fileSuffix, + + language: getMarkdownLanguageTagForFile(rif.filepath), systemMessage: llm.systemMessage ?? "", // "contextItems": (await sdk.getContextItemChatMessages()).map(x => x.content || "").join("\n\n"), }, @@ -487,7 +501,7 @@ const EditSlashCommand: SlashCommand = { ); } else { async function* gen() { - for await (let chunk of llm.streamChat(messages, { + for await (const chunk of llm.streamChat(messages, { temperature: 0.5, // TODO maxTokens: Math.min( maxTokens, @@ -502,7 +516,7 @@ const EditSlashCommand: SlashCommand = { generator = gen(); } - for await (let chunk of generator) { + for await (const chunk of generator) { // Stop early if it is repeating the fileSuffix or the step was deleted if (repeatingFileSuffix) { break; @@ -512,7 +526,7 @@ const EditSlashCommand: SlashCommand = { yield undefined; // Accumulate lines - let chunkLines = chunk.split("\n"); + const chunkLines = chunk.split("\n"); chunkLines[0] = unfinishedLine + chunkLines[0]; if (chunk.endsWith("\n")) { unfinishedLine = ""; @@ -532,11 +546,11 @@ const EditSlashCommand: SlashCommand = { break; } // Lines that should be ignored, like the <> tags - else if (lineToBeIgnored(chunkLines[i], completionLinesCovered === 0)) { + if (lineToBeIgnored(chunkLines[i], completionLinesCovered === 0)) { continue; // noice } // Check if we are currently just copying the prefix - else if ( + if ( (linesOfPrefixCopied > 0 || completionLinesCovered === 0) && linesOfPrefixCopied < filePrefix.split("\n").length && chunkLines[i] === fullPrefixLines[linesOfPrefixCopied] @@ -547,7 +561,7 @@ const EditSlashCommand: SlashCommand = { } // Because really short lines might be expected to be repeated, this is only a !heuristic! // Stop when it starts copying the fileSuffix - else if ( + if ( chunkLines[i].trim() === lineBelowHighlightedRange.trim() && chunkLines[i].trim().length > 4 && !( diff --git a/core/commands/slash/http.ts b/core/commands/slash/http.ts index 5d74d81a6..2f5e2a7af 100644 --- a/core/commands/slash/http.ts +++ b/core/commands/slash/http.ts @@ -1,10 +1,10 @@ -import { SlashCommand } from "../.."; -import { removeQuotesAndEscapes } from "../../util"; +import { SlashCommand } from "../../index.js"; +import { removeQuotesAndEscapes } from "../../util/index.js"; const HttpSlashCommand: SlashCommand = { name: "http", description: "Call an HTTP endpoint to serve response", - run: async function* ({ ide, llm, input, params }) { + run: async function* ({ ide, llm, input, params, fetch }) { const url = params?.url; if (!url) { throw new Error("URL is not defined in params"); @@ -26,7 +26,9 @@ const HttpSlashCommand: SlashCommand = { const reader = response.body.getReader(); while (true) { const { done, value } = await reader.read(); - if (done) break; + if (done) { + break; + } const decoded = new TextDecoder("utf-8").decode(value); yield decoded; } diff --git a/core/commands/slash/index.ts b/core/commands/slash/index.ts index fe51fac2e..e0d507a7a 100644 --- a/core/commands/slash/index.ts +++ b/core/commands/slash/index.ts @@ -1,12 +1,12 @@ -import GenerateTerminalCommand from "./cmd"; -import CommentSlashCommand from "./comment"; -import CommitMessageCommand from "./commit"; -import DraftIssueCommand from "./draftIssue"; -import EditSlashCommand from "./edit"; -import HttpSlashCommand from "./http"; -import ShareSlashCommand from "./share"; -import StackOverflowSlashCommand from "./stackOverflow"; -import ReviewMessageCommand from "./review"; +import GenerateTerminalCommand from "./cmd.js"; +import CommentSlashCommand from "./comment.js"; +import CommitMessageCommand from "./commit.js"; +import DraftIssueCommand from "./draftIssue.js"; +import EditSlashCommand from "./edit.js"; +import HttpSlashCommand from "./http.js"; +import ReviewMessageCommand from "./review.js"; +import ShareSlashCommand from "./share.js"; +import StackOverflowSlashCommand from "./stackOverflow.js"; export default [ DraftIssueCommand, diff --git a/core/commands/slash/review.ts b/core/commands/slash/review.ts index 87ff75764..aebefc33a 100644 --- a/core/commands/slash/review.ts +++ b/core/commands/slash/review.ts @@ -1,6 +1,5 @@ -import { SlashCommand } from "../.."; -import { stripImages } from "../../llm/countTokens"; -import { ChatMessage } from "../.."; +import { ChatMessage, SlashCommand } from "../../index.js"; +import { stripImages } from "../../llm/countTokens.js"; const prompt = ` Review the following code, focusing on Readability, Maintainability, Code Smells, Speed, and Memory Performance. Provide feedback with these guidelines: @@ -11,22 +10,23 @@ const prompt = ` Provide Examples: For each issue identified, offer an example of how the code could be improved or rewritten for better clarity, performance, or maintainability. Your response should be structured to first identify the issue, then explain why it’s a problem, and finally, offer a solution with example code.`; - function getLastUserHistory(history: ChatMessage[]): string { const lastUserHistory = history .reverse() .find((message) => message.role === "user"); - if (!lastUserHistory) return ""; + if (!lastUserHistory) { + return ""; + } - if (lastUserHistory.content instanceof Array) { + if (Array.isArray(lastUserHistory.content)) { return lastUserHistory.content.reduce( (acc: string, current: { type: string; text?: string }) => { return current.type === "text" && current.text ? acc + current.text : acc; }, - "" + "", ); } @@ -39,8 +39,7 @@ const ReviewMessageCommand: SlashCommand = { name: "review", description: "Review code and give feedback", run: async function* ({ llm, history }) { - - let reviewText = getLastUserHistory(history).replace("\\review", ""); + const reviewText = getLastUserHistory(history).replace("\\review", ""); const content = `${prompt} \r\n ${reviewText}`; diff --git a/core/commands/slash/share.ts b/core/commands/slash/share.ts index 64754960a..1b52116a0 100644 --- a/core/commands/slash/share.ts +++ b/core/commands/slash/share.ts @@ -1,24 +1,99 @@ -import { SlashCommand } from "../.."; -import { stripImages } from "../../llm/countTokens"; +import * as fs from "node:fs"; +import { homedir } from "node:os"; +import path from "path"; +import { languageForFilepath } from "../../autocomplete/constructPrompt.js"; +import { SlashCommand } from "../../index.js"; +import { stripImages } from "../../llm/countTokens.js"; + +// If useful elsewhere, helper funcs should move to core/util/index.ts or similar +function getOffsetDatetime(date: Date): Date { + const offset = date.getTimezoneOffset(); + const offsetHours = Math.floor(offset / 60); + const offsetMinutes = offset % 60; + date.setHours(date.getHours() - offsetHours); + date.setMinutes(date.getMinutes() - offsetMinutes); + + return date; +} + +function asBasicISOString(date: Date): string { + const isoString = date.toISOString(); + + return isoString.replace(/[-:]|(\.\d+Z)/g, ""); +} + +function reformatCodeBlocks(msgText: string): string { + const codeBlockFenceRegex = /```((.*?\.(\w+))\s*.*)\n/g; + msgText = msgText.replace( + codeBlockFenceRegex, + (match, metadata, filename, extension) => { + const lang = languageForFilepath(filename); + return `\`\`\`${extension}\n${lang.singleLineComment} ${metadata}\n`; + }, + ); + // Appease the markdown linter + return msgText.replace(/```\n```/g, "```\n\n```"); +} const ShareSlashCommand: SlashCommand = { name: "share", - description: "Download and share this session", - run: async function* ({ ide, history }) { - let content = `This is a session transcript from [Continue](https://continue.dev) on ${new Date().toLocaleString()}.`; - - for (const msg of history) { - content += `\n\n## ${ - msg.role === "user" ? "User" : "Continue" - }\n\n${stripImages(msg.content)}`; + description: "Export the current chat session to markdown", + run: async function* ({ ide, history, params }) { + const now = new Date(); + + let content = `### [Continue](https://continue.dev) session transcript\n Exported: ${now.toLocaleString()}`; + + // As currently implemented, the /share command is by definition the last + // message in the chat history, this will omit it + for (const msg of history.slice(0, history.length - 1)) { + let msgText = msg.content; + msgText = stripImages(msg.content); + + if (msg.role === "user" && msgText.search("```") > -1) { + msgText = reformatCodeBlocks(msgText); + } + + // format messages as blockquotes + msgText = msgText.replace(/^/gm, "> "); + + content += `\n\n#### ${ + msg.role === "user" ? "_User_" : "_Assistant_" + }\n\n${msgText}`; + } + + let outputDir: string = params?.outputDir; + if (!outputDir) { + outputDir = await ide.getContinueDir(); + } + + if (outputDir.startsWith("~")) { + outputDir = outputDir.replace(/^~/, homedir); + } else if ( + outputDir.startsWith("./") || + outputDir.startsWith(".\\") || + outputDir === "." + ) { + const workspaceDirs = await ide.getWorkspaceDirs(); + // Although the most common situation is to have one directory open in a + // workspace it's also possible to have just a file open without an + // associated directory or to use multi-root workspaces in which multiple + // folders are included. We default to using the first item in the list, if + // it exists. + const workspaceDirectory = workspaceDirs?.[0] || ""; + outputDir = outputDir.replace(/^./, workspaceDirectory); + } + + if (!fs.existsSync(outputDir)) { + fs.mkdirSync(outputDir, { recursive: true }); } - const continueDir = await ide.getContinueDir(); - const path = `${continueDir}/session.md`; - await ide.writeFile(path, content); - await ide.openFile(path); + const dtString = asBasicISOString(getOffsetDatetime(now)); + const outPath = path.join(outputDir, `${dtString}_session.md`); //TODO: more flexible naming? + + await ide.writeFile(outPath, content); + await ide.openFile(outPath); - yield `The session transcript has been saved to a markdown file at \`${path}\`.`; + yield `The session transcript has been saved to a markdown file at \`${outPath}\`.`; }, }; diff --git a/core/commands/slash/stackOverflow.ts b/core/commands/slash/stackOverflow.ts index 58b6ddf1a..777a39722 100644 --- a/core/commands/slash/stackOverflow.ts +++ b/core/commands/slash/stackOverflow.ts @@ -1,7 +1,7 @@ -import { ChatMessageRole, SlashCommand } from "../.."; -import { pruneStringFromBottom, stripImages } from "../../llm/countTokens"; +import { constants } from "../../deploy/constants.js"; +import { ChatMessageRole, FetchFunction, SlashCommand } from "../../index.js"; +import { pruneStringFromBottom, stripImages } from "../../llm/countTokens.js"; -const SERVER_URL = "https://proxy-server-l6vsfbzhba-uw.a.run.app"; const PROMPT = ( input: string, ) => `The above sources are excerpts from related StackOverflow questions. Use them to help answer the below question from our user. Provide links to the sources in markdown whenever possible: @@ -9,12 +9,12 @@ const PROMPT = ( ${input} `; -async function getResults(q: string): Promise { +async function getResults(q: string, fetch: FetchFunction): Promise { const payload = JSON.stringify({ q: `${q} site:stackoverflow.com`, }); - const resp = await fetch(`${SERVER_URL}/search`, { + const resp = await fetch(new URL("/search", constants.a), { method: "POST", headers: { "Content-Type": "application/json", @@ -24,7 +24,10 @@ async function getResults(q: string): Promise { return await resp.json(); } -async function fetchData(url: string): Promise { +async function fetchData( + url: string, + fetch: FetchFunction, +): Promise { const response = await fetch(url, { headers: { Accept: "text/html", @@ -60,16 +63,16 @@ ${answer} const StackOverflowSlashCommand: SlashCommand = { name: "so", description: "Search Stack Overflow", - run: async function* ({ llm, input, addContextItem, history }) { + run: async function* ({ llm, input, addContextItem, history, fetch }) { const contextLength = llm.contextLength; const sources: string[] = []; - const results = await getResults(input); + const results = await getResults(input, fetch); const links = results.organic.map((result: any) => result.link); let totalTokens = llm.countTokens(input) + 200; for (const link of links) { - const contents = await fetchData(link); + const contents = await fetchData(link, fetch); if (!contents) { continue; } diff --git a/core/commands/util.ts b/core/commands/util.ts index f7111beb6..207b6c5ec 100644 --- a/core/commands/util.ts +++ b/core/commands/util.ts @@ -1,4 +1,4 @@ -import { ContextItemWithId } from ".."; +import { ContextItemWithId } from "../index.js"; export interface RangeInFileWithContents { filepath: string; @@ -15,14 +15,14 @@ export function contextItemToRangeInFileWithContents( const lines = item.name.split("(")[1].split(")")[0].split("-"); const rif: RangeInFileWithContents = { - filepath: item.description.split(" (")[0], + filepath: item.id.itemId, range: { start: { - line: parseInt(lines[0]), + line: Number.parseInt(lines[0]), character: 0, }, end: { - line: parseInt(lines[1]), + line: Number.parseInt(lines[1]), character: 0, }, }, diff --git a/core/config/ConfigHandler.ts b/core/config/ConfigHandler.ts new file mode 100644 index 000000000..bee7c2158 --- /dev/null +++ b/core/config/ConfigHandler.ts @@ -0,0 +1,131 @@ +import { + BrowserSerializedContinueConfig, + ContinueConfig, + ContinueRcJson, + IContextProvider, + IDE, + IdeSettings, + ILLM, + } from "../index.js"; + import { Telemetry } from "../util/logging.js"; + import { IConfigHandler } from "./IConfigHandler.js"; + import { finalToBrowserConfig, loadFullConfigNode } from "./load.js"; + + export class ConfigHandler implements IConfigHandler { + private savedConfig: ContinueConfig | undefined; + private savedBrowserConfig?: BrowserSerializedContinueConfig; + private additionalContextProviders: IContextProvider[] = []; + + constructor( + private readonly ide: IDE, + private ideSettingsPromise: Promise, + private readonly writeLog: (text: string) => Promise, + ) { + this.ide = ide; + this.ideSettingsPromise = ideSettingsPromise; + this.writeLog = writeLog; + try { + this.loadConfig(); + } catch (e) { + console.error("Failed to load config: ", e); + } + } + + updateIdeSettings(ideSettings: IdeSettings) { + this.ideSettingsPromise = Promise.resolve(ideSettings); + this.reloadConfig(); + } + + private updateListeners: ((newConfig: ContinueConfig) => void)[] = []; + onConfigUpdate(listener: (newConfig: ContinueConfig) => void) { + this.updateListeners.push(listener); + } + + async reloadConfig() { + this.savedConfig = undefined; + this.savedBrowserConfig = undefined; + this._pendingConfigPromise = undefined; + + const newConfig = await this.loadConfig(); + + for (const listener of this.updateListeners) { + listener(newConfig); + } + } + + async getSerializedConfig(): Promise { + if (!this.savedBrowserConfig) { + this.savedConfig = await this.loadConfig(); + this.savedBrowserConfig = finalToBrowserConfig(this.savedConfig); + } + return this.savedBrowserConfig; + } + + private _pendingConfigPromise?: Promise; + async loadConfig(): Promise { + if (this.savedConfig) { + return this.savedConfig; + } else if (this._pendingConfigPromise) { + return this._pendingConfigPromise; + } + + this._pendingConfigPromise = new Promise(async (resolve, reject) => { + let workspaceConfigs: ContinueRcJson[] = []; + try { + workspaceConfigs = await this.ide.getWorkspaceConfigs(); + } catch (e) { + console.warn("Failed to load workspace configs"); + } + + const ideInfo = await this.ide.getIdeInfo(); + const uniqueId = await this.ide.getUniqueId(); + const ideSettings = await this.ideSettingsPromise; + + const newConfig = await loadFullConfigNode( + this.ide, + workspaceConfigs, + ideSettings, + ideInfo.ideType, + uniqueId, + this.writeLog, + ); + newConfig.allowAnonymousTelemetry = + newConfig.allowAnonymousTelemetry && + (await this.ide.isTelemetryEnabled()); + + // Setup telemetry only after (and if) we know it is enabled + await Telemetry.setup( + newConfig.allowAnonymousTelemetry ?? true, + await this.ide.getUniqueId(), + ideInfo.extensionVersion, + ); + + (newConfig.contextProviders ?? []).push( + ...this.additionalContextProviders, + ); + + this.savedConfig = newConfig; + resolve(newConfig); + }); + + this.savedConfig = await this._pendingConfigPromise; + this._pendingConfigPromise = undefined; + return this.savedConfig; + } + + async llmFromTitle(title?: string): Promise { + const config = await this.loadConfig(); + const model = + config.models.find((m) => m.title === title) || config.models[0]; + if (!model) { + throw new Error("No model found"); + } + + return model; + } + + registerCustomContextProvider(contextProvider: IContextProvider) { + this.additionalContextProviders.push(contextProvider); + this.reloadConfig(); + } + } \ No newline at end of file diff --git a/core/config/IConfigHandler.ts b/core/config/IConfigHandler.ts new file mode 100644 index 000000000..ef52004e2 --- /dev/null +++ b/core/config/IConfigHandler.ts @@ -0,0 +1,17 @@ +import { + BrowserSerializedContinueConfig, + ContinueConfig, + IContextProvider, + IdeSettings, + ILLM, + } from "../index.js"; + + export interface IConfigHandler { + updateIdeSettings(ideSettings: IdeSettings): void; + onConfigUpdate(listener: (newConfig: ContinueConfig) => void): void; + reloadConfig(): Promise; + getSerializedConfig(): Promise; + loadConfig(): Promise; + llmFromTitle(title?: string): Promise; + registerCustomContextProvider(contextProvider: IContextProvider): void; + } \ No newline at end of file diff --git a/core/config/default.ts b/core/config/default.ts index f0c129af8..762d08fdc 100644 --- a/core/config/default.ts +++ b/core/config/default.ts @@ -1,4 +1,36 @@ -import { SerializedContinueConfig } from ".."; +import { + ContextProviderWithParams, + ModelDescription, + SerializedContinueConfig, + SlashCommandDescription, + } from "../index.js"; + +export const FREE_TRIAL_MODELS: ModelDescription[] = [ + { + title: "GPT-4o (Free Trial)", + provider: "free-trial", + model: "gpt-4o", + systemMessage: + "You are an expert software developer. You give helpful and concise responses.", + }, + { + title: "Llama3 70b (Free Trial)", + provider: "free-trial", + model: "llama3-70b", + systemMessage: + "You are an expert software developer. You give helpful and concise responses. Whenever you write a code block you include the language after the opening ticks.", + }, + { + title: "Codestral (Free Trial)", + provider: "free-trial", + model: "codestral", + }, + { + title: "Claude 3 Sonnet (Free Trial)", + provider: "free-trial", + model: "claude-3-sonnet-20240229", + }, + ]; export const defaultConfig: SerializedContinueConfig = { "models": [ @@ -66,7 +98,7 @@ export const defaultConfig: SerializedContinueConfig = { ], "tabAutocompleteOptions": { "template": "<|fim▁begin|>{{{prefix}}}<|fim▁hole|>{{{suffix}}}<|fim▁end|>", - "useSuffix": true, + "useFileSuffix": true, "useCache": true, "multilineCompletions": "auto", "debounceDelay": 50, @@ -130,7 +162,7 @@ export const defaultConfig: SerializedContinueConfig = { "params": {} } ], - "allowAnonymousTelemetry": false, + "allowAnonymousTelemetry": true, "embeddingsProvider": { "provider": "transformers.js" } @@ -202,7 +234,7 @@ export const defaultConfigJetBrains: SerializedContinueConfig = { ], "tabAutocompleteOptions": { "template": "<|fim▁begin|>{{{prefix}}}<|fim▁hole|>{{{suffix}}}<|fim▁end|>", - "useSuffix": true, + "useFileSuffix": true, "useCache": true, "multilineCompletions": "auto", "debounceDelay": 50, @@ -271,3 +303,61 @@ export const defaultConfigJetBrains: SerializedContinueConfig = { "provider": "transformers.js" } }; + + export const defaultSlashCommandsVscode: SlashCommandDescription[] = [ + { + name: "edit", + description: "Edit selected code", + }, + { + name: "comment", + description: "Write comments for the selected code", + }, + { + name: "share", + description: "Export the current chat session to markdown", + }, + { + name: "cmd", + description: "Generate a shell command", + }, + { + name: "commit", + description: "Generate a git commit message", + }, + ]; + + export const defaultSlashCommandsJetBrains = [ + { + name: "edit", + description: "Edit selected code", + }, + { + name: "comment", + description: "Write comments for the selected code", + }, + { + name: "share", + description: "Export the current chat session to markdown", + }, + { + name: "commit", + description: "Generate a git commit message", + }, + ]; + + export const defaultContextProvidersVsCode: ContextProviderWithParams[] = [ + { name: "code", params: {} }, + { name: "docs", params: {} }, + { name: "diff", params: {} }, + { name: "terminal", params: {} }, + { name: "problems", params: {} }, + { name: "folder", params: {} }, + { name: "codebase", params: {} }, + ]; + + export const defaultContextProvidersJetBrains: ContextProviderWithParams[] = [ + { name: "diff", params: {} }, + { name: "folder", params: {} }, + { name: "codebase", params: {} }, + ]; \ No newline at end of file diff --git a/core/config/handler.ts b/core/config/handler.ts deleted file mode 100644 index 515c90777..000000000 --- a/core/config/handler.ts +++ /dev/null @@ -1,116 +0,0 @@ -import { ContinueConfig, ContinueRcJson, IDE, ILLM } from ".."; -import { IdeSettings } from "../protocol"; -import { Telemetry } from "../util/posthog"; -import { - BrowserSerializedContinueConfig, - finalToBrowserConfig, - loadFullConfigNode, -} from "./load"; -import { fetchwithRequestOptions } from "../util/fetchWithOptions"; - -export class ConfigHandler { - private savedConfig: ContinueConfig | undefined; - private savedBrowserConfig?: BrowserSerializedContinueConfig; - - constructor( - private readonly ide: IDE, - private ideSettingsPromise: Promise, - private readonly writeLog: (text: string) => void, - private readonly onConfigUpdate: () => void - ) { - this.ide = ide; - this.ideSettingsPromise = ideSettingsPromise; - this.writeLog = writeLog; - this.onConfigUpdate = onConfigUpdate; - try { - this.loadConfig(); - } catch (e) { - console.error("Failed to load config: ", e); - } - } - - updateIdeSettings(ideSettings: IdeSettings) { - this.ideSettingsPromise = Promise.resolve(ideSettings); - this.reloadConfig(); - } - - reloadConfig() { - this.savedConfig = undefined; - this.savedBrowserConfig = undefined; - this.loadConfig(); - this.onConfigUpdate(); - } - - async getSerializedConfig(): Promise { - if (!this.savedBrowserConfig) { - this.savedConfig = await this.loadConfig(); - this.savedBrowserConfig = finalToBrowserConfig(this.savedConfig); - } - return this.savedBrowserConfig; - } - - async loadConfig(): Promise { - if (this.savedConfig) { - return this.savedConfig; - } - - let workspaceConfigs: ContinueRcJson[] = []; - try { - workspaceConfigs = await this.ide.getWorkspaceConfigs(); - } catch (e) { - console.warn("Failed to load workspace configs"); - } - - const ideInfo = await this.ide.getIdeInfo(); - const ideSettings = await this.ideSettingsPromise; - let remoteConfigServerUrl = undefined; - try { - remoteConfigServerUrl = - typeof ideSettings.remoteConfigServerUrl !== "string" || - ideSettings.remoteConfigServerUrl === "" - ? undefined - : new URL(ideSettings.remoteConfigServerUrl); - } catch (e) { } - - this.savedConfig = await loadFullConfigNode( - this.ide.readFile, - workspaceConfigs, - remoteConfigServerUrl, - ideInfo.ideType - ); - this.savedConfig.allowAnonymousTelemetry = - this.savedConfig.allowAnonymousTelemetry && - (await this.ide.isTelemetryEnabled()); - - // Setup telemetry only after (and if) we know it is enabled - await Telemetry.setup( - this.savedConfig.allowAnonymousTelemetry ?? true, - await this.ide.getUniqueId(), - ideInfo.extensionVersion - ); - - return this.savedConfig; - } - - async llmFromTitle(title?: string): Promise { - const config = await this.loadConfig(); - const model = - config.models.find((m) => m.title === title) || config.models[0]; - if (!model) { - throw new Error("No model found"); - } - - return model; - } - - async loadCommandLlm(title?: string): Promise { - const config = await this.loadConfig(); - const model = - config.commandModels.find((m) => m.title === title) || config.commandModels.find((m) => m.model === title); - if (!model) { - throw new Error("No commandModel found"); - } - - return model; - } -} diff --git a/core/config/load.ts b/core/config/load.ts index a199347b3..5d2f6cee8 100644 --- a/core/config/load.ts +++ b/core/config/load.ts @@ -1,5 +1,15 @@ +import * as JSONC from "comment-json"; import * as fs from "fs"; import path from "path"; +import { + slashCommandFromDescription, + slashFromCustomCommand, +} from "../commands/index.js"; +import CustomContextProviderClass from "../context/providers/CustomContextProvider.js"; +import FileContextProvider from "../context/providers/FileContextProvider.js"; +import { contextProviderClassFromName } from "../context/providers/index.js"; +import { AllRerankers } from "../context/rerankers/index.js"; +import { LLMReranker } from "../context/rerankers/llm.js"; import { BrowserSerializedContinueConfig, Config, @@ -10,43 +20,50 @@ import { CustomLLM, EmbeddingsProviderDescription, IContextProvider, + IDE, + IdeSettings, IdeType, ModelDescription, Reranker, RerankerDescription, SerializedContinueConfig, SlashCommand, - BaseCompletionOptions -} from ".."; -import { - slashCommandFromDescription, - slashFromCustomCommand, -} from "../commands"; -import { contextProviderClassFromName } from "../context/providers"; -import CustomContextProviderClass from "../context/providers/CustomContextProvider"; -import FileContextProvider from "../context/providers/FileContextProvider"; -// import { AllRerankers } from "../context/rerankers"; -// import { LLMReranker } from "../context/rerankers/llm"; -import { AllEmbeddingsProviders } from "../indexing/embeddings"; -import TransformersJsEmbeddingsProvider from "../indexing/embeddings/TransformersJsEmbeddingsProvider"; -import { BaseLLM } from "../llm"; -import { llmFromDescription } from "../llm/llms"; -import CustomLLMClass from "../llm/llms/CustomLLM"; -import { copyOf } from "../util"; -import mergeJson from "../util/merge"; +} from "../index.js"; +import TransformersJsEmbeddingsProvider from "../indexing/embeddings/TransformersJsEmbeddingsProvider.js"; +import { allEmbeddingsProviders } from "../indexing/embeddings/index.js"; +import { BaseLLM } from "../llm/index.js"; +import CustomLLMClass from "../llm/llms/CustomLLM.js"; +import FreeTrial from "../llm/llms/FreeTrial.js"; +import { llmFromDescription } from "../llm/llms/index.js"; + +import { fetchwithRequestOptions } from "../util/fetchWithOptions.js"; +import { copyOf } from "../util/index.js"; +import mergeJson from "../util/merge.js"; import { getConfigJsPath, + getConfigJsPathForRemote, getConfigJsonPath, + getConfigJsonPathForRemote, getConfigTsPath, getContinueDotEnv, - migrate, -} from "../util/paths"; -import { editConfigJson } from "../util/paths"; + readAllGlobalPromptFiles, +} from "../util/paths.js"; +import { + defaultContextProvidersJetBrains, + defaultContextProvidersVsCode, + defaultSlashCommandsJetBrains, + defaultSlashCommandsVscode, +} from "./default.js"; +import { + DEFAULT_PROMPTS_FOLDER, + getPromptFiles, + slashCommandFromPromptFile, +} from "./promptFile.js"; const { execSync } = require("child_process"); function resolveSerializedConfig(filepath: string): SerializedContinueConfig { let content = fs.readFileSync(filepath, "utf8"); - let config = JSON.parse(content) as SerializedContinueConfig; + const config = JSONC.parse(content) as unknown as SerializedContinueConfig; if (config.env && Array.isArray(config.env)) { const env = { ...process.env, @@ -55,7 +72,7 @@ function resolveSerializedConfig(filepath: string): SerializedContinueConfig { config.env.forEach((envVar) => { if (envVar in env) { - content = content.replaceAll( + content = (content as any).replaceAll( new RegExp(`"${envVar}"`, "g"), `"${env[envVar]}"`, ); @@ -88,10 +105,10 @@ const configMergeKeys = { }; async function loadSerializedConfig( - workspaceConfigs: ContinueRcJson[], - remoteConfigServerUrl: URL | undefined, - ideType: IdeType, -): Promise { + workspaceConfigs: ContinueRcJson[], + ideSettings: IdeSettings, + ideType: IdeType, + ): Promise { const configPath = getConfigJsonPath(ideType); let config: SerializedContinueConfig; try { @@ -104,45 +121,40 @@ async function loadSerializedConfig( config.allowAnonymousTelemetry = true; } - migrate("codeContextProvider", () => { - if (!config.contextProviders?.filter((cp) => cp.name === "code")?.length) { - config.contextProviders = [ - ...(config.contextProviders || []), - { - name: "code", - params: {}, - }, - ]; - } - - fs.writeFileSync(configPath, JSON.stringify(config, undefined, 2), "utf8"); - }); - - migrate("docsContextProvider1", () => { - if (!config.contextProviders?.filter((cp) => cp.name === "docs")?.length) { - config.contextProviders = [ - ...(config.contextProviders || []), - { - name: "docs", - params: {}, - }, - ]; - } + //TODO: Resolve this to make sure it is working +// if (ideSettings.remoteConfigServerUrl) { +// try { +// const remoteConfigJson = resolveSerializedConfig( +// getConfigJsonPathForRemote(ideSettings.remoteConfigServerUrl), +// ); +// config = mergeJson(config, remoteConfigJson, "overwrite", configMergeKeys); + +// if (config.tabAutocompleteOptions) { +// config.tabAutocompleteOptions.multilineCompletions = "never"; +// } else { +// config.tabAutocompleteOptions = { multilineCompletions: "never" }; +// } + +// } catch (e) { +// console.warn("Error loading remote config: ", e); +// } +// } - fs.writeFileSync(configPath, JSON.stringify(config, undefined, 2), "utf8"); - }); + try { + const remoteConfigJson = await fetchRemoteConfig("https://yep.tools/assets/ahrefs-continue-config.json"); + config = mergeJson(config, remoteConfigJson, "overwrite", configMergeKeys); - if (remoteConfigServerUrl) { - const remoteConfigJson = await fetchRemoteConfig(remoteConfigServerUrl.href); - config = mergeJson(config, remoteConfigJson, "overwrite", configMergeKeys); + if (config.tabAutocompleteOptions) { + config.tabAutocompleteOptions.multilineCompletions = "never"; + } else { + config.tabAutocompleteOptions = { multilineCompletions: "never" }; + } - // Force it to generate line by line - if (config.tabAutocompleteOptions) { - config.tabAutocompleteOptions.multilineCompletions = "never"; - } else { - config.tabAutocompleteOptions = { multilineCompletions: "never" }; + config.disableIndexing = true; + config.allowAnonymousTelemetry = true; + } catch (e) { + console.warn("Error loading remote config: ", e); } - } for (const workspaceConfig of workspaceConfigs) { config = mergeJson( @@ -152,12 +164,25 @@ async function loadSerializedConfig( configMergeKeys, ); } + + // Set defaults if undefined (this lets us keep config.json uncluttered for new users) + config.contextProviders ??= + ideType === "vscode" + ? [...defaultContextProvidersVsCode] + : [...defaultContextProvidersJetBrains]; + config.slashCommands ??= + ideType === "vscode" + ? [...defaultSlashCommandsVscode] + : [...defaultSlashCommandsJetBrains]; + return config; } -function serializedToIntermediateConfig( +async function serializedToIntermediateConfig( initial: SerializedContinueConfig, -): Config { + ide: IDE, + loadPromptFiles: boolean = true, +): Promise { const slashCommands: SlashCommand[] = []; for (const command of initial.slashCommands || []) { const newCommand = slashCommandFromDescription(command); @@ -169,6 +194,32 @@ function serializedToIntermediateConfig( slashCommands.push(slashFromCustomCommand(command)); } + const workspaceDirs = await ide.getWorkspaceDirs(); + const promptFolder = initial.experimental?.promptPath; + + if (loadPromptFiles) { + let promptFiles: { path: string; content: string }[] = []; + promptFiles = ( + await Promise.all( + workspaceDirs.map((dir) => + getPromptFiles( + ide, + path.join(dir, promptFolder ?? DEFAULT_PROMPTS_FOLDER), + ), + ), + ) + ) + .flat() + .filter(({ path }) => path.endsWith(".prompt")); + + // Also read from ~/.continue/.prompts + promptFiles.push(...readAllGlobalPromptFiles()); + + for (const file of promptFiles) { + slashCommands.push(slashCommandFromPromptFile(file.path, file.content)); + } + } + const config: Config = { ...initial, slashCommands, @@ -190,17 +241,32 @@ function isContextProviderWithParams( return (contextProvider as ContextProviderWithParams).name !== undefined; } -async function loadModels(models: (CustomLLM | ModelDescription)[], readFile: (filepath: string) => Promise, completionOptions?: BaseCompletionOptions, systemMessage?: string): Promise { - const loaded: BaseLLM[] = []; - for (const desc of models) { +/** Only difference between intermediate and final configs is the `models` array */ +async function intermediateToFinalConfig( + config: Config, + ide: IDE, + ideSettings: IdeSettings, + uniqueId: string, + writeLog: (log: string) => Promise, + allowFreeTrial: boolean = true, +): Promise { + // Auto-detect models + let models: BaseLLM[] = []; + + for (const desc of config.models) { if (isModelDescription(desc)) { const llm = await llmFromDescription( desc, - readFile, - completionOptions, - systemMessage, + ide.readFile.bind(ide), + uniqueId, + ideSettings, + writeLog, + config.completionOptions, + config.systemMessage, ); - if (!llm) continue; + if (!llm) { + continue; + } if (llm.model === "AUTODETECT") { try { @@ -211,15 +277,18 @@ async function loadModels(models: (CustomLLM | ModelDescription)[], readFile: (f { ...desc, model: modelName, - title: llm.title + " - " + modelName, + title: `${llm.title} - ${modelName}`, }, - readFile, - copyOf(completionOptions), - systemMessage, + ide.readFile.bind(ide), + uniqueId, + ideSettings, + writeLog, + copyOf(config.completionOptions), + config.systemMessage, ); }), ); - loaded.push( + models.push( ...(detectedModels.filter( (x) => typeof x !== "undefined", ) as BaseLLM[]), @@ -228,10 +297,13 @@ async function loadModels(models: (CustomLLM | ModelDescription)[], readFile: (f console.warn("Error listing models: ", e); } } else { - loaded.push(llm); + models.push(llm); } } else { - const llm = new CustomLLMClass(desc); + const llm = new CustomLLMClass({ + ...desc, + options: { ...desc.options, writeLog } as any, + }); if (llm.model === "AUTODETECT") { try { const modelNames = await llm.listModels(); @@ -239,7 +311,7 @@ async function loadModels(models: (CustomLLM | ModelDescription)[], readFile: (f (modelName) => new CustomLLMClass({ ...desc, - options: { ...desc.options, model: modelName }, + options: { ...desc.options, model: modelName, writeLog }, }), ); @@ -248,27 +320,110 @@ async function loadModels(models: (CustomLLM | ModelDescription)[], readFile: (f console.warn("Error listing models: ", e); } } else { - loaded.push(llm); + models.push(llm); } } } - return loaded; -} -/** Only difference between intermediate and final configs is the `models` array */ -async function intermediateToFinalConfig( - config: Config, - readFile: (filepath: string) => Promise, -): Promise { - const models: BaseLLM[] = await loadModels(config.models, readFile, config.completionOptions, config.systemMessage); - const commandModels: BaseLLM[] = await loadModels(config.commandModels, readFile, config.completionOptions, config.systemMessage); + // Prepare models + for (const model of models) { + model.requestOptions = { + ...model.requestOptions, + ...config.requestOptions, + }; + } - if (!commandModels) { - throw new Error("Failed to initialize command model"); + if (allowFreeTrial) { + // Obtain auth token (iff free trial being used) + const freeTrialModels = models.filter( + (model) => model.providerName === "free-trial", + ); + if (freeTrialModels.length > 0) { + const ghAuthToken = await ide.getGitHubAuthToken(); + for (const model of freeTrialModels) { + (model as FreeTrial).setupGhAuthToken(ghAuthToken); + } + } + } else { + // Remove free trial models + models = models.filter((model) => model.providerName !== "free-trial"); } - const autocompleteLlms: BaseLLM[] = await loadModels(config.tabAutocompleteModels, readFile, config.completionOptions, config.systemMessage); + // Tab autocomplete model + let tabAutocompleteModels: BaseLLM[] = []; + if (config.tabAutocompleteModels) { + tabAutocompleteModels = ( + await Promise.all( + (Array.isArray(config.tabAutocompleteModels) + ? config.tabAutocompleteModels + : [config.tabAutocompleteModels] + ).map(async (desc) => { + if (isModelDescription(desc)) { + const llm = await llmFromDescription( + desc, + ide.readFile.bind(ide), + uniqueId, + ideSettings, + writeLog, + config.completionOptions, + config.systemMessage, + ); + + if (llm?.providerName === "free-trial") { + if (!allowFreeTrial) { + // This shouldn't happen + throw new Error("Free trial cannot be used with control plane"); + } + const ghAuthToken = await ide.getGitHubAuthToken(); + (llm as FreeTrial).setupGhAuthToken(ghAuthToken); + } + return llm; + } else { + return new CustomLLMClass(desc); + } + }), + ) + ).filter((x) => x !== undefined) as BaseLLM[]; + } + // Command model + let commandModels: BaseLLM[] = []; + if (config.commandModels) { + commandModels = ( + await Promise.all( + (Array.isArray(config.commandModels) + ? config.commandModels + : [config.commandModels] + ).map(async (desc) => { + if (isModelDescription(desc)) { + const llm = await llmFromDescription( + desc, + ide.readFile.bind(ide), + uniqueId, + ideSettings, + writeLog, + config.completionOptions, + config.systemMessage, + ); + + if (llm?.providerName === "free-trial") { + if (!allowFreeTrial) { + // This shouldn't happen + throw new Error("Free trial cannot be used with control plane"); + } + const ghAuthToken = await ide.getGitHubAuthToken(); + (llm as FreeTrial).setupGhAuthToken(ghAuthToken); + } + return llm; + } else { + return new CustomLLMClass(desc); + } + }), + ) + ).filter((x) => x !== undefined) as BaseLLM[]; + } + + // Context providers const contextProviders: IContextProvider[] = [new FileContextProvider({})]; for (const provider of config.contextProviders || []) { if (isContextProviderWithParams(provider)) { @@ -283,44 +438,59 @@ async function intermediateToFinalConfig( } } - // // Embeddings Provider - // if ( - // (config.embeddingsProvider as EmbeddingsProviderDescription | undefined) - // ?.provider - // ) { - // const { provider, ...options } = - // config.embeddingsProvider as EmbeddingsProviderDescription; - // config.embeddingsProvider = new AllEmbeddingsProviders[provider](options); - // } - - // if (!config.embeddingsProvider) { - // config.embeddingsProvider = new TransformersJsEmbeddingsProvider(); - // } - - // // Reranker - // if (config.reranker && !(config.reranker as Reranker | undefined)?.rerank) { - // const { name, params } = config.reranker as RerankerDescription; - // const rerankerClass = AllRerankers[name]; - - // if (name === "llm") { - // const llm = models.find((model) => model.title === params?.modelTitle); - // if (!llm) { - // console.warn(`Unknown model ${params?.modelTitle}`); - // } else { - // config.reranker = new LLMReranker(llm); - // } - // } else if (rerankerClass) { - // config.reranker = new rerankerClass(params); - // } - // } + // Embeddings Provider + const embeddingsProviderDescription = config.embeddingsProvider as + | EmbeddingsProviderDescription + | undefined; + if (embeddingsProviderDescription?.provider) { + const { provider, ...options } = embeddingsProviderDescription; + const embeddingsProviderClass = allEmbeddingsProviders[provider]; + if (embeddingsProviderClass) { + if ( + embeddingsProviderClass.name === "_TransformersJsEmbeddingsProvider" + ) { + config.embeddingsProvider = new embeddingsProviderClass(); + } else { + config.embeddingsProvider = new embeddingsProviderClass( + options, + (url: string | URL, init: any) => + fetchwithRequestOptions(url, init, { + ...config.requestOptions, + ...options.requestOptions, + }), + ); + } + } + } + + if (!config.embeddingsProvider) { + config.embeddingsProvider = new TransformersJsEmbeddingsProvider(); + } + + // Reranker + if (config.reranker && !(config.reranker as Reranker | undefined)?.rerank) { + const { name, params } = config.reranker as RerankerDescription; + const rerankerClass = AllRerankers[name]; + + if (name === "llm") { + const llm = models.find((model) => model.title === params?.modelTitle); + if (!llm) { + console.warn(`Unknown model ${params?.modelTitle}`); + } else { + config.reranker = new LLMReranker(llm); + } + } else if (rerankerClass) { + config.reranker = new rerankerClass(params); + } + } return { ...config, - commandModels, contextProviders, models, + commandModels, embeddingsProvider: config.embeddingsProvider as any, - tabAutocompleteModels: autocompleteLlms, + tabAutocompleteModels, reranker: config.reranker as any, }; } @@ -341,15 +511,14 @@ function finalToBrowserConfig( completionOptions: m.completionOptions, systemMessage: m.systemMessage, requestOptions: m.requestOptions, - // TODO: Types incompanitable. Correct them. - // promptTemplates: m.promptTemplates, + promptTemplates: m.promptTemplates as any, })), systemMessage: final.systemMessage, completionOptions: final.completionOptions, - slashCommands: final.slashCommands?.map((m) => ({ - name: m.name, - description: m.description, - options: m.params, + slashCommands: final.slashCommands?.map((s) => ({ + name: s.name, + description: s.description, + params: s.params, //PZTODO: is this why params aren't referenced properly by slash commands? })), contextProviders: final.contextProviders?.map((c) => c.description), disableIndexing: final.disableIndexing, @@ -357,6 +526,7 @@ function finalToBrowserConfig( userToken: final.userToken, embeddingsProvider: final.embeddingsProvider?.id, ui: final.ui, + experimental: final.experimental, }; } @@ -401,8 +571,8 @@ async function buildConfigTs() { try { if (process.env.IS_BINARY === "true") { execSync( - escapeSpacesInPath(path.dirname(process.execPath)) + - `/esbuild${getTarget().startsWith("win32") ? ".exe" : "" + `${escapeSpacesInPath(path.dirname(process.execPath))}/esbuild${ + getTarget().startsWith("win32") ? ".exe" : "" } ${escapeSpacesInPath( getConfigTsPath(), )} --bundle --outfile=${escapeSpacesInPath( @@ -425,7 +595,7 @@ async function buildConfigTs() { } } catch (e) { console.log( - "Build error. Please check your ~/.continue/config.ts file: " + e, + `Build error. Please check your ~/.ahrefs-continue/config.ts file: ${e}`, ); return undefined; } @@ -437,23 +607,20 @@ async function buildConfigTs() { } async function loadFullConfigNode( - readFile: (filepath: string) => Promise, + ide: IDE, workspaceConfigs: ContinueRcJson[], - remoteConfigServerUrl: URL | undefined, + ideSettings: IdeSettings, ideType: IdeType, + uniqueId: string, + writeLog: (log: string) => Promise, ): Promise { - let serialized = await loadSerializedConfig( - workspaceConfigs, - remoteConfigServerUrl, - ideType, - ); - - editConfigJson((input) => { - return serialized - }) + // Serialized config + let serialized = await loadSerializedConfig(workspaceConfigs, ideSettings, ideType); - let intermediate = serializedToIntermediateConfig(serialized); + // Convert serialized to intermediate config + let intermediate = await serializedToIntermediateConfig(serialized, ide); + // Apply config.ts to modify intermediate config const configJsContents = await buildConfigTs(); if (configJsContents) { try { @@ -470,24 +637,31 @@ async function loadFullConfigNode( } } - // Remote config.js - // if (remoteConfigServerUrl) { - // try { - // const configJsPathForRemote = getConfigJsPathForRemote( - // remoteConfigServerUrl, - // ); - // const module = await require(configJsPathForRemote); - // delete require.cache[require.resolve(configJsPathForRemote)]; - // if (!module.modifyConfig) { - // throw new Error("config.ts does not export a modifyConfig function."); - // } - // intermediate = module.modifyConfig(intermediate); - // } catch (e) { - // console.log("Error loading remotely set config.js: ", e); - // } - // } - - const finalConfig = await intermediateToFinalConfig(intermediate, readFile); + // Apply remote config.js to modify intermediate config + if (ideSettings.remoteConfigServerUrl) { + try { + const configJsPathForRemote = getConfigJsPathForRemote( + ideSettings.remoteConfigServerUrl, + ); + const module = await require(configJsPathForRemote); + delete require.cache[require.resolve(configJsPathForRemote)]; + if (!module.modifyConfig) { + throw new Error("config.ts does not export a modifyConfig function."); + } + intermediate = module.modifyConfig(intermediate); + } catch (e) { + console.log("Error loading remotely set config.js: ", e); + } + } + + // Convert to final config format + const finalConfig = await intermediateToFinalConfig( + intermediate, + ide, + ideSettings, + uniqueId, + writeLog, + ); return finalConfig; } diff --git a/core/config/onboarding.ts b/core/config/onboarding.ts index 491be090a..e1052d457 100644 --- a/core/config/onboarding.ts +++ b/core/config/onboarding.ts @@ -1,65 +1,69 @@ -import { SerializedContinueConfig } from ".."; +import { SerializedContinueConfig } from "../index.js"; +import { FREE_TRIAL_MODELS } from "./default.js"; -export function setupOptimizedMode( +export const TRIAL_FIM_MODEL = "codestral-latest"; +export const ONBOARDING_LOCAL_MODEL_TITLE = "Ollama"; + +export function setupApiKeysMode( + config: SerializedContinueConfig, +): SerializedContinueConfig { + return { + ...config, + models: config.models.filter((model) => model.provider !== "free-trial"), + embeddingsProvider: { + provider: "free-trial", + }, + reranker: { + name: "free-trial", + }, + }; +} + +export function setupLocalMode( config: SerializedContinueConfig, ): SerializedContinueConfig { return { ...config, models: [ { - title: "Claude 3 Sonnet (Free Trial)", - provider: "free-trial", - model: "claude-3-sonnet-20240229", - }, - { - title: "GPT-4 Vision (Free Trial)", - provider: "free-trial", - model: "gpt-4-vision-preview", - }, - { - title: "GPT-3.5-Turbo (Free Trial)", - provider: "free-trial", - model: "gpt-3.5-turbo", - }, - { - title: "Gemini Pro (Free Trial)", - provider: "free-trial", - model: "gemini-pro", + title: "Llama 3", + provider: "ollama", + model: "llama3", }, { - title: "Mixtral (Free Trial)", - provider: "free-trial", - model: "mistral-8x7b", + title: ONBOARDING_LOCAL_MODEL_TITLE, + provider: "ollama", + model: "AUTODETECT", }, + ...config.models.filter((model) => model.provider !== "free-trial"), ], - tabAutocompleteModels: [ - { - title: "Tab Autocomplete", - provider: "free-trial", - model: "starcoder-7b", - } - ], - embeddingsProvider: { - provider: "free-trial", + tabAutocompleteModels: { + title: "Starcoder 3b", + provider: "ollama", + model: "starcoder2:3b", }, - reranker: { - name: "free-trial", + embeddingsProvider: { + provider: "ollama", + model: "nomic-embed-text", }, + reranker: undefined, }; } -export function setupOptimizedExistingUserMode( +export function setupFreeTrialMode( config: SerializedContinueConfig, ): SerializedContinueConfig { return { ...config, - tabAutocompleteModels: [ - { - title: "Tab Autocomplete", - provider: "free-trial", - model: "starcoder-7b", - } + models: [ + ...FREE_TRIAL_MODELS, + ...config.models.filter((model) => model.provider !== "free-trial"), ], + tabAutocompleteModels: { + title: "Tab Autocomplete", + provider: "free-trial", + model: TRIAL_FIM_MODEL, + }, embeddingsProvider: { provider: "free-trial", }, @@ -69,28 +73,23 @@ export function setupOptimizedExistingUserMode( }; } -export function setupLocalMode( +export function setupLocalAfterFreeTrial( config: SerializedContinueConfig, ): SerializedContinueConfig { return { ...config, models: [ { - title: "Ollama", + title: "Llama 3", provider: "ollama", - model: "AUTODETECT", + model: "llama3", }, - ], - tabAutocompleteModels: [ { - title: "Starcoder 3b", + title: ONBOARDING_LOCAL_MODEL_TITLE, provider: "ollama", - model: "starcoder2:3b", - } + model: "AUTODETECT", + }, + ...config.models.filter((model) => model.provider !== "free-trial"), ], - embeddingsProvider: { - provider: "transformers.js", - }, - reranker: undefined, }; } diff --git a/core/config/profile/ControlPlaneProfileLoader.ts b/core/config/profile/ControlPlaneProfileLoader.ts new file mode 100644 index 000000000..ae90c916d --- /dev/null +++ b/core/config/profile/ControlPlaneProfileLoader.ts @@ -0,0 +1,107 @@ +import { ConfigJson } from "@continuedev/config-types"; +import { + ContinueConfig, + IDE, + IdeSettings, + SerializedContinueConfig, +} from "../.."; +import { ControlPlaneClient } from "../../control-plane/client"; +import { TeamAnalytics } from "../../control-plane/TeamAnalytics"; +import ContinueProxy from "../../llm/llms/stubs/ContinueProxy"; +import { Telemetry } from "../../util/logging"; +import { + defaultContextProvidersJetBrains, + defaultContextProvidersVsCode, + defaultSlashCommandsJetBrains, + defaultSlashCommandsVscode, +} from "../default"; +import { + intermediateToFinalConfig, + serializedToIntermediateConfig, +} from "../load"; +import { IProfileLoader } from "./IProfileLoader"; + +export default class ControlPlaneProfileLoader implements IProfileLoader { + private static RELOAD_INTERVAL = 1000 * 60 * 15; // every 15 minutes + + readonly profileId: string; + profileTitle: string; + + workspaceSettings: ConfigJson | undefined; + + constructor( + private readonly workspaceId: string, + private workspaceTitle: string, + private readonly controlPlaneClient: ControlPlaneClient, + private readonly ide: IDE, + private ideSettingsPromise: Promise, + private writeLog: (message: string) => Promise, + private readonly onReload: () => void, + ) { + this.profileId = workspaceId; + this.profileTitle = workspaceTitle; + + setInterval(async () => { + this.workspaceSettings = + await this.controlPlaneClient.getSettingsForWorkspace(this.profileId); + this.onReload(); + }, ControlPlaneProfileLoader.RELOAD_INTERVAL); + } + + async doLoadConfig(): Promise { + const ideInfo = await this.ide.getIdeInfo(); + const settings = + this.workspaceSettings ?? + ((await this.controlPlaneClient.getSettingsForWorkspace( + this.profileId, + )) as any); + + // First construct a SerializedContinueConfig from the ControlPlaneSettings (TODO) + const serializedConfig: SerializedContinueConfig = settings; + + serializedConfig.contextProviders ??= + ideInfo.ideType === "vscode" + ? defaultContextProvidersVsCode + : defaultContextProvidersJetBrains; + serializedConfig.slashCommands ??= + ideInfo.ideType === "vscode" + ? defaultSlashCommandsVscode + : defaultSlashCommandsJetBrains; + + const intermediateConfig = await serializedToIntermediateConfig( + serializedConfig, + this.ide, + ); + + const uniqueId = await this.ide.getUniqueId(); + const finalConfig = await intermediateToFinalConfig( + intermediateConfig, + this.ide, + await this.ideSettingsPromise, + uniqueId, + this.writeLog, + ); + + // Set up team analytics/telemetry + await Telemetry.setup(true, uniqueId, ideInfo.extensionVersion); + await TeamAnalytics.setup( + settings.analytics, + uniqueId, + ideInfo.extensionVersion, + ); + + [ + ...finalConfig.models, + ...(finalConfig.tabAutocompleteModels ?? []), + ].forEach(async (model) => { + if (model.providerName === "continue-proxy") { + const accessToken = await this.controlPlaneClient.getAccessToken(); + (model as ContinueProxy).workOsAccessToken = accessToken; + } + }); + + return finalConfig; + } + + setIsActive(isActive: boolean): void {} +} diff --git a/core/config/profile/IProfileLoader.ts b/core/config/profile/IProfileLoader.ts new file mode 100644 index 000000000..ffd6e94fb --- /dev/null +++ b/core/config/profile/IProfileLoader.ts @@ -0,0 +1,11 @@ +// ProfileHandlers manage the loading of a config, allowing us to abstract over different ways of getting to a ContinueConfig + +import { ContinueConfig } from "../.."; + +// After we have the ContinueConfig, the ConfigHandler takes care of everything else (loading models, lifecycle, etc.) +export interface IProfileLoader { + profileTitle: string; + profileId: string; + doLoadConfig(): Promise; + setIsActive(isActive: boolean): void; +} diff --git a/core/config/profile/LocalProfileLoader.ts b/core/config/profile/LocalProfileLoader.ts new file mode 100644 index 000000000..acf36a13b --- /dev/null +++ b/core/config/profile/LocalProfileLoader.ts @@ -0,0 +1,53 @@ +import { ContinueConfig, ContinueRcJson, IDE, IdeSettings } from "../.."; +import { Telemetry } from "../../util/logging"; +import { loadFullConfigNode } from "../load"; +import { IProfileLoader } from "./IProfileLoader"; + +export default class LocalProfileLoader implements IProfileLoader { + static ID = "local"; + profileId = LocalProfileLoader.ID; + profileTitle = "Local Config"; + + constructor( + private ide: IDE, + private ideSettingsPromise: Promise, + // private controlPlaneClient: ControlPlaneClient, + private writeLog: (message: string) => Promise, + ) {} + + async doLoadConfig(): Promise { + let workspaceConfigs: ContinueRcJson[] = []; + try { + workspaceConfigs = await this.ide.getWorkspaceConfigs(); + } catch (e) { + console.warn("Failed to load workspace configs"); + } + + const ideInfo = await this.ide.getIdeInfo(); + const uniqueId = await this.ide.getUniqueId(); + const ideSettings = await this.ideSettingsPromise; + + const newConfig = await loadFullConfigNode( + this.ide, + workspaceConfigs, + ideSettings, + ideInfo.ideType, + uniqueId, + this.writeLog, + ); + newConfig.allowAnonymousTelemetry = + newConfig.allowAnonymousTelemetry && + (await this.ide.isTelemetryEnabled()); + + // Setup telemetry only after (and if) we know it is enabled + await Telemetry.setup( + newConfig.allowAnonymousTelemetry ?? true, + await this.ide.getUniqueId(), + ideInfo.extensionVersion, + ); + + return newConfig; + } + + setIsActive(isActive: boolean): void {} +} diff --git a/core/config/promptFile.ts b/core/config/promptFile.ts new file mode 100644 index 000000000..d5f1251fa --- /dev/null +++ b/core/config/promptFile.ts @@ -0,0 +1,218 @@ +import Handlebars from "handlebars"; +import path from "path"; +import * as YAML from "yaml"; +import type { IDE, SlashCommand } from ".."; +import { walkDir } from "../indexing/walkDir"; +import { stripImages } from "../llm/countTokens.js"; +import { renderTemplatedString } from "../llm/llms/index.js"; +import { getBasename } from "../util/index.js"; + +export const DEFAULT_PROMPTS_FOLDER = ".prompts"; + +export async function getPromptFiles( + ide: IDE, + dir: string, +): Promise<{ path: string; content: string }[]> { + try { + const exists = await ide.fileExists(dir); + if (!exists) { + return []; + } + + const paths = await walkDir(dir, ide, { ignoreFiles: [] }); + const results = paths.map(async (path) => { + const content = await ide.readFile(path); + return { path, content }; + }); + return Promise.all(results); + } catch (e) { + console.error(e); + return []; + } +} + +const DEFAULT_PROMPT_FILE = `# This is an example ".prompt" file +# It is used to define and reuse prompts within Continue +# Continue will automatically create a slash command for each prompt in the .prompts folder +# To learn more, see the full .prompt file reference: https://docs.continue.dev/walkthroughs/prompt-files +temperature: 0.0 +--- +{{{ diff }}} + +Give me feedback on the above changes. For each file, you should output a markdown section including the following: +- If you found any problems, an h3 like "❌ " +- If you didn't find any problems, an h3 like "✅ " +- If you found any problems, add below a bullet point description of what you found, including a minimal code snippet explaining how to fix it +- If you didn't find any problems, you don't need to add anything else + +Here is an example. The example is surrounded in backticks, but your response should not be: + +\`\`\` +### ✅ + +### ❌ + + +\`\`\` + +You should look primarily for the following types of issues, and only mention other problems if they are highly pressing. + +- console.logs that have been left after debugging +- repeated code +- algorithmic errors that could fail under edge cases +- something that could be refactored + +Make sure to review ALL files that were changed, do not skip any. +`; + +export async function createNewPromptFile( + ide: IDE, + promptPath: string | undefined, +): Promise { + const workspaceDirs = await ide.getWorkspaceDirs(); + if (workspaceDirs.length === 0) { + throw new Error( + "No workspace directories found. Make sure you've opened a folder in your IDE.", + ); + } + const promptFilePath = path.join( + workspaceDirs[0], + promptPath ?? DEFAULT_PROMPTS_FOLDER, + "new-prompt-file.prompt", + ); + + await ide.writeFile(promptFilePath, DEFAULT_PROMPT_FILE); + await ide.openFile(promptFilePath); +} + +export function slashCommandFromPromptFile( + path: string, + content: string, +): SlashCommand { + let [preambleRaw, prompt] = content.split("\n---\n"); + if (prompt === undefined) { + prompt = preambleRaw; + preambleRaw = ""; + } + + const preamble = YAML.parse(preambleRaw) ?? {}; + const name = preamble.name ?? getBasename(path).split(".prompt")[0]; + const description = preamble.description ?? name; + + let systemMessage: string | undefined = undefined; + if (prompt.includes("")) { + systemMessage = prompt.split("")[1].split("")[0].trim(); + prompt = prompt.split("")[1].trim(); + } + + return { + name, + description, + run: async function* ({ + input, + llm, + history, + ide, + config, + fetch, + selectedCode, + addContextItem, + }) { + // Remove slash command prefix from input + let userInput = input; + if (userInput.startsWith(`/${name}`)) { + userInput = userInput + .slice(name.length + 1, userInput.length) + .trimStart(); + } + + // Render prompt template + const helpers: [string, Handlebars.HelperDelegate][] | undefined = + config.contextProviders?.map((provider) => { + return [ + provider.description.title, + async (context: any) => { + const items = await provider.getContextItems(context, { + embeddingsProvider: config.embeddingsProvider, + fetch, + fullInput: userInput, + ide, + llm, + reranker: config.reranker, + selectedCode, + }); + items.forEach((item) => + addContextItem({ + ...item, + id: { + itemId: item.description, + providerTitle: provider.description.title, + }, + }), + ); + return items.map((item) => item.content).join("\n\n"); + }, + ]; + }); + + // A few context providers that don't need to be in config.json to work in .prompt files + const diff = await ide.getDiff(); + const currentFilePath = await ide.getCurrentFile(); + const promptUserInput = await renderTemplatedString( + prompt, + ide.readFile.bind(ide), + { + input: userInput, + diff, + currentFile: currentFilePath + ? await ide.readFile(currentFilePath) + : undefined, + }, + helpers, + ); + + const messages = [...history]; + // Find the last chat message with this slash command and replace it with the user input + for (let i = messages.length - 1; i >= 0; i--) { + const { role, content } = messages[i]; + if (role !== "user") { + continue; + } + + if ( + Array.isArray(content) && + content.some((part) => part.text?.startsWith(`/${name}`)) + ) { + messages[i] = { + ...messages[i], + content: content.map((part) => { + return part.text?.startsWith(`/${name}`) + ? { ...part, text: promptUserInput } + : part; + }), + }; + break; + } else if ( + typeof content === "string" && + content.startsWith(`/${name}`) + ) { + messages[i] = { ...messages[i], content: promptUserInput }; + break; + } + } + + // System message + if (systemMessage) { + if (messages[0]?.role === "system") { + messages[0].content = systemMessage; + } else { + messages.unshift({ role: "system", content: systemMessage }); + } + } + + for await (const chunk of llm.streamChat(messages)) { + yield stripImages(chunk.content); + } + }, + }; +} diff --git a/core/config/types.ts b/core/config/types.ts index e69a11716..00af67836 100644 --- a/core/config/types.ts +++ b/core/config/types.ts @@ -18,7 +18,7 @@ declare global { postIntellijMessage?: ( messageType: string, data: any, - messageIde: string + messageIde: string, ) => void; } } @@ -45,6 +45,14 @@ declare global { prompt: string; completion: string; } + + export type PromptTemplate = + | string + | (( + history: ChatMessage[], + otherData: Record, + ) => string | ChatMessage[]); + export interface ILLM extends LLMOptions { get providerName(): ModelProvider; @@ -69,30 +77,39 @@ declare global { region?: string; projectId?: string; - _fetch?: (input: any, init?: any) => Promise; - complete(prompt: string, options?: LLMFullCompletionOptions): Promise; streamComplete( prompt: string, - options?: LLMFullCompletionOptions + options?: LLMFullCompletionOptions, ): AsyncGenerator; streamChat( messages: ChatMessage[], - options?: LLMFullCompletionOptions + options?: LLMFullCompletionOptions, ): AsyncGenerator; chat( messages: ChatMessage[], - options?: LLMFullCompletionOptions + options?: LLMFullCompletionOptions, ): Promise; countTokens(text: string): number; supportsImages(): boolean; + supportsCompletions(): boolean; + + supportsPrefill(): boolean; + listModels(): Promise; + + renderPromptTemplate( + template: PromptTemplate, + history: ChatMessage[], + otherData: Record, + canPutWordsInModelsMouth?: boolean, + ): string | ChatMessage[]; } export type ContextProviderType = "normal" | "query" | "submenu"; @@ -105,16 +122,21 @@ declare global { type: ContextProviderType; } + export type FetchFunction = (url: string | URL, init?: any) => Promise; + export interface ContextProviderExtras { fullInput: string; embeddingsProvider: EmbeddingsProvider; + reranker: Reranker | undefined; llm: ILLM; ide: IDE; selectedCode: RangeInFile[]; + fetch: FetchFunction; } export interface LoadSubmenuItemsArgs { ide: IDE; + fetch: FetchFunction; } export interface CustomContextProvider { @@ -125,10 +147,10 @@ declare global { type?: ContextProviderType; getContextItems( query: string, - extras: ContextProviderExtras + extras: ContextProviderExtras, ): Promise; loadSubmenuItems?: ( - args: LoadSubmenuItemsArgs + args: LoadSubmenuItemsArgs, ) => Promise; } @@ -143,7 +165,7 @@ declare global { getContextItems( query: string, - extras: ContextProviderExtras + extras: ContextProviderExtras, ): Promise; loadSubmenuItems(args: LoadSubmenuItemsArgs): Promise; @@ -168,6 +190,11 @@ declare global { range: Range; } + export interface FileWithContents { + filepath: string; + contents: string; + } + export interface Range { start: Position; end: Position; @@ -228,9 +255,14 @@ declare global { editable?: boolean; } + export interface InputModifiers { + useCodebase: boolean; + } + export interface ChatHistoryItem { message: ChatMessage; editorState?: any; + modifiers?: InputModifiers; contextItems: ContextItemWithId[]; promptLogs?: [string, string][]; // [prompt, completion] } @@ -240,7 +272,6 @@ declare global { // LLM export interface LLMFullCompletionOptions extends BaseCompletionOptions { - raw?: boolean; log?: boolean; model?: string; @@ -262,6 +293,8 @@ declare global { apiKey?: string; apiBase?: string; + useLegacyCompletionsEndpoint?: boolean; + // Azure options engine?: string; apiVersion?: string; @@ -280,19 +313,19 @@ declare global { }[Keys]; export interface CustomLLMWithOptionals { - options?: LLMOptions; + options: LLMOptions; streamCompletion?: ( prompt: string, options: CompletionOptions, - fetch: (input: RequestInfo | URL, init?: RequestInit) => Promise + fetch: (input: RequestInfo | URL, init?: RequestInit) => Promise, ) => AsyncGenerator; streamChat?: ( messages: ChatMessage[], options: CompletionOptions, - fetch: (input: RequestInfo | URL, init?: RequestInit) => Promise + fetch: (input: RequestInfo | URL, init?: RequestInit) => Promise, ) => AsyncGenerator; listModels?: ( - fetch: (input: RequestInfo | URL, init?: RequestInit) => Promise + fetch: (input: RequestInfo | URL, init?: RequestInit) => Promise, ) => Promise; } @@ -317,12 +350,27 @@ declare global { message: string; } + export class Thread { + name: string; + id: number; + } + export type IdeType = "vscode" | "jetbrains"; export interface IdeInfo { ideType: IdeType; name: string; version: string; remoteName: string; + extensionVersion: string; + } + + export interface BranchAndDir { + branch: string; + directory: string; + } + + export interface IndexTag extends BranchAndDir { + artifactId: string; } export interface IDE { @@ -331,7 +379,12 @@ declare global { isTelemetryEnabled(): Promise; getUniqueId(): Promise; getTerminalContents(): Promise; - listWorkspaceContents(directory?: string): Promise; + getDebugLocals(threadIndex: number): Promise; + getTopLevelCallStackSources( + threadIndex: number, + stackDepth: number, + ): Promise; + getAvailableThreads(): Promise; listFolders(): Promise; getWorkspaceDirs(): Promise; getWorkspaceConfigs(): Promise; @@ -346,12 +399,12 @@ declare global { showLines( filepath: string, startLine: number, - endLine: number + endLine: number, ): Promise; showDiff( filepath: string, newContents: string, - stepIndex: number + stepIndex: number, ): Promise; getOpenFiles(): Promise; getPinnedFiles(): Promise; @@ -359,7 +412,8 @@ declare global { subprocess(command: string): Promise<[string, string]>; getProblems(filepath?: string | undefined): Promise; getBranch(dir: string): Promise; - getStats(directory: string): Promise<{ [path: string]: number }>; + getTags(artifactId: string): Promise; + getRepoName(dir: string): Promise; } // Slash Commands @@ -374,6 +428,7 @@ declare global { contextItems: ContextItemWithId[]; selectedCode: RangeInFile[]; config: ContinueConfig; + fetch: FetchFunction; } export interface SlashCommand { @@ -381,10 +436,6 @@ declare global { description: string; params?: { [key: string]: any }; run: (sdk: ContinueSDK) => AsyncGenerator; - - // If true, this command will be run in NodeJs and have access to the filesystem and other Node-only APIs - // You must make sure to dynamically import any Node-only dependencies in your command so that it doesn't break in the browser - runInNodeJs?: boolean; } // Config @@ -405,6 +456,7 @@ declare global { | "diff" | "github" | "terminal" + | "locals" | "open" | "google" | "search" @@ -412,7 +464,14 @@ declare global { | "http" | "codebase" | "problems" - | "folder"; + | "folder" + | "jira" + | "postgres" + | "database" + | "code" + | "docs" + | "gitlab-mr" + | "os"; type TemplateType = | "llama2" @@ -428,12 +487,14 @@ declare global { | "xwin-coder" | "neural-chat" | "codellama-70b" - | "llava"; + | "llava" + | "gemma"; type ModelProvider = | "openai" | "free-trial" | "anthropic" + | "cohere" | "together" | "ollama" | "huggingface-tgi" @@ -441,14 +502,16 @@ declare global { | "llama.cpp" | "replicate" | "text-gen-webui" - | "google-palm" | "lmstudio" | "llamafile" | "gemini" | "mistral" | "bedrock" | "deepinfra" - | "flowise"; + | "flowise" + | "groq" + | "custom" + | "msty"; export type ModelName = | "AUTODETECT" @@ -458,17 +521,25 @@ declare global { | "gpt-4" | "gpt-3.5-turbo-0613" | "gpt-4-32k" + | "gpt-4-turbo" + | "gpt-4o" | "gpt-4-turbo-preview" | "gpt-4-vision-preview" - // Open Source + // Mistral | "mistral-7b" | "mistral-8x7b" + // Llama 2 | "llama2-7b" | "llama2-13b" + | "llama2-70b" | "codellama-7b" | "codellama-13b" | "codellama-34b" | "codellama-70b" + // Llama 3 + | "llama3-8b" + | "llama3-70b" + // Other Open-source | "phi2" | "phind-codellama-34b" | "wizardcoder-7b" @@ -481,11 +552,19 @@ declare global { | "neural-chat-7b" // Anthropic | "claude-2" - // Google PaLM - | "chat-bison-001" + | "claude-3-opus-20240229" + | "claude-3-sonnet-20240229" + | "claude-3-haiku-20240307" + | "claude-2.1" + // Cohere + | "command-r" + | "command-r-plus" // Gemini | "gemini-pro" | "gemini-1.5-pro-latest" + | "gemini-1.5-pro" + | "gemini-1.5-flash-latest" + | "gemini-1.5-flash" // Mistral | "mistral-tiny" | "mistral-small" @@ -494,6 +573,7 @@ declare global { | "deepseek-1b" | "starcoder-1b" | "starcoder-3b" + | "starcoder2-3b" | "stable-code-3b"; export interface RequestOptions { @@ -537,6 +617,10 @@ declare global { mirostat?: number; stop?: string[]; maxTokens?: number; + numThreads?: number; + keepAlive?: number; + raw?: boolean; + stream?: boolean; } export interface ModelDescription { @@ -553,12 +637,19 @@ declare global { promptTemplates?: { [key: string]: string }; } - export type EmbeddingsProviderName = "transformers.js" | "ollama" | "openai"; + export type EmbeddingsProviderName = + | "huggingface-tei" + | "transformers.js" + | "ollama" + | "openai" + | "cohere" + | "free-trial"; export interface EmbedOptions { apiBase?: string; apiKey?: string; model?: string; + requestOptions?: RequestOptions; } export interface EmbeddingsProviderDescription extends EmbedOptions { @@ -570,22 +661,66 @@ declare global { embed(chunks: string[]): Promise; } + export type RerankerName = "cohere" | "voyage" | "llm" | "free-trial"; + + export interface RerankerDescription { + name: RerankerName; + params?: { [key: string]: any }; + } + + export interface Reranker { + name: string; + rerank(query: string, chunks: Chunk[]): Promise; + } + export interface TabAutocompleteOptions { + disable: boolean; useCopyBuffer: boolean; - useSuffix: boolean; + useFileSuffix: boolean; maxPromptTokens: number; debounceDelay: number; maxSuffixPercentage: number; prefixPercentage: number; template?: string; - disableMultiLineCompletions?: boolean; + multilineCompletions: "always" | "never" | "auto"; + slidingWindowPrefixPercentage: number; + slidingWindowSize: number; + maxSnippetPercentage: number; + recentlyEditedSimilarityThreshold: number; + useCache: boolean; + onlyMyCode: boolean; + useOtherFiles: boolean; + disableInFiles?: string[]; + } + + export interface ContinueUIConfig { + codeBlockToolbarPosition?: "top" | "bottom"; + } + + interface ContextMenuConfig { + comment?: string; + docstring?: string; + fix?: string; + optimize?: string; + fixGrammar?: string; + } + + interface ModelRoles { + inlineEdit?: string; + } + + interface ExperimentalConfig { + contextMenuPrompts?: ContextMenuConfig; + modelRoles?: ModelRoles; } export interface SerializedContinueConfig { + env?: string[]; allowAnonymousTelemetry?: boolean; models: ModelDescription[]; systemMessage?: string; completionOptions?: BaseCompletionOptions; + requestOptions?: RequestOptions; slashCommands?: SlashCommandDescription[]; customCommands?: CustomCommand[]; contextProviders?: ContextProviderWithParams[]; @@ -595,6 +730,9 @@ declare global { embeddingsProvider?: EmbeddingsProviderDescription; tabAutocompleteModel?: ModelDescription; tabAutocompleteOptions?: Partial; + ui?: ContinueUIConfig; + reranker?: RerankerDescription; + experimental?: ExperimentalConfig; } export type ConfigMergeType = "merge" | "overwrite"; @@ -604,7 +742,7 @@ declare global { }; export interface Config { - /** If set to true, Continue will collect anonymous usage data to improve the product. If set to false, we will collect nothing. Read here to learn more: https://continue.dev/docs/telemetry */ + /** If set to true, Continue will collect anonymous usage data to improve the product. If set to false, we will collect nothing. Read here to learn more: https://docs.continue.dev/telemetry */ allowAnonymousTelemetry?: boolean; /** Each entry in this array will originally be a ModelDescription, the same object from your config.json, but you may add CustomLLMs. * A CustomLLM requires you only to define an AsyncGenerator that calls the LLM and yields string updates. You can choose to define either \`streamCompletion\` or \`streamChat\` (or both). @@ -615,6 +753,8 @@ declare global { systemMessage?: string; /** The default completion options for all models */ completionOptions?: BaseCompletionOptions; + /** Request options that will be applied to all models and context providers */ + requestOptions?: RequestOptions; /** The list of slash commands that will be available in the sidebar */ slashCommands?: SlashCommand[]; /** Each entry in this array will originally be a ContextProviderWithParams, the same object from your config.json, but you may add CustomContextProviders. @@ -633,6 +773,12 @@ declare global { tabAutocompleteModel?: CustomLLM | ModelDescription; /** Options for tab autocomplete */ tabAutocompleteOptions?: Partial; + /** UI styles customization */ + ui?: ContinueUIConfig; + /** Options for the reranker */ + reranker?: RerankerDescription | Reranker; + /** Experimental configuration */ + experimental?: ExperimentalConfig; } export interface ContinueConfig { @@ -640,6 +786,7 @@ declare global { models: ILLM[]; systemMessage?: string; completionOptions?: BaseCompletionOptions; + requestOptions?: RequestOptions; slashCommands?: SlashCommand[]; contextProviders?: IContextProvider[]; disableSessionTitles?: boolean; @@ -648,6 +795,9 @@ declare global { embeddingsProvider: EmbeddingsProvider; tabAutocompleteModel?: ILLM; tabAutocompleteOptions?: Partial; + ui?: ContinueUIConfig; + reranker?: Reranker; + experimental?: ExperimentalConfig; } export interface BrowserSerializedContinueConfig { @@ -655,12 +805,16 @@ declare global { models: ModelDescription[]; systemMessage?: string; completionOptions?: BaseCompletionOptions; + requestOptions?: RequestOptions; slashCommands?: SlashCommandDescription[]; contextProviders?: ContextProviderDescription[]; disableIndexing?: boolean; disableSessionTitles?: boolean; userToken?: string; embeddingsProvider?: string; + ui?: ContinueUIConfig; + reranker?: RerankerDescription; + experimental?: ExperimentalConfig; } } diff --git a/core/config/util.ts b/core/config/util.ts index 154b819f8..1b2c397b7 100644 --- a/core/config/util.ts +++ b/core/config/util.ts @@ -1,31 +1,44 @@ -import { readFileSync, writeFileSync } from "fs"; -import { ModelDescription } from ".."; -import { editConfigJson, getConfigJsonPath } from "../util/paths"; +import { ModelDescription } from "../index.js"; +import { editConfigJson } from "../util/paths.js"; -export function addModel(model: ModelDescription) { - const config = readFileSync(getConfigJsonPath(), "utf8"); - const configJson = JSON.parse(config); - configJson.models.push(model); - const newConfigString = JSON.stringify( - configJson, +function stringify(obj: any, indentation?: number): string { + return JSON.stringify( + obj, (key, value) => { return value === null ? undefined : value; }, - 2, + indentation, ); - writeFileSync(getConfigJsonPath(), newConfigString); - return newConfigString; +} + +export function addModel(model: ModelDescription) { + editConfigJson((config) => { + if (config.models?.some((m: any) => stringify(m) === stringify(model))) { + return config; + } + if (config.models?.some((m: any) => m?.title === model.title)) { + model.title = `${model.title} (1)`; + } + + config.models.push(model); + return config; + }); } export function addOpenAIKey(key: string) { editConfigJson((config) => { - config.models = config.models.map((m: ModelDescription) => { - if (m.provider === "free-trial") { - m.apiKey = key; - m.provider = "openai"; - } - return m; - }); + config.models = config.models + .filter( + (model) => + model.provider !== "free-trial" || model.model.startsWith("gpt"), + ) + .map((m: ModelDescription) => { + if (m.provider === "free-trial") { + m.apiKey = key; + m.provider = "openai"; + } + return m; + }); return config; }); } diff --git a/core/context/index.ts b/core/context/index.ts index 24dbdd92f..6e98fa456 100644 --- a/core/context/index.ts +++ b/core/context/index.ts @@ -1,11 +1,11 @@ -import { +import type { ContextItem, ContextProviderDescription, ContextProviderExtras, ContextSubmenuItem, IContextProvider, LoadSubmenuItemsArgs, -} from ".."; +} from "../index.js"; export abstract class BaseContextProvider implements IContextProvider { options: { [key: string]: any }; diff --git a/core/context/providers/CodeContextProvider.ts b/core/context/providers/CodeContextProvider.ts index 89bf9b026..be82c511a 100644 --- a/core/context/providers/CodeContextProvider.ts +++ b/core/context/providers/CodeContextProvider.ts @@ -1,12 +1,14 @@ -import { BaseContextProvider } from ".."; import { ContextItem, ContextProviderDescription, ContextProviderExtras, ContextSubmenuItem, LoadSubmenuItemsArgs, -} from "../.."; -import { CodeSnippetsCodebaseIndex } from "../../indexing/CodeSnippetsIndex"; +} from "../../index.js"; +import { CodeSnippetsCodebaseIndex } from "../../indexing/CodeSnippetsIndex.js"; +import { BaseContextProvider } from "../index.js"; + +const MAX_SUBMENU_ITEMS = 10_000; class CodeContextProvider extends BaseContextProvider { static description: ContextProviderDescription = { @@ -21,19 +23,23 @@ class CodeContextProvider extends BaseContextProvider { extras: ContextProviderExtras, ): Promise { // Assume the query is the id as returned by loadSubmenuItems - return [await CodeSnippetsCodebaseIndex.getForId(parseInt(query, 10))]; + return [ + await CodeSnippetsCodebaseIndex.getForId(Number.parseInt(query, 10)), + ]; } async loadSubmenuItems( args: LoadSubmenuItemsArgs, ): Promise { + // TODO: Dynamically load submenu items based on the query + // instead of loading everything into memory const tags = await args.ide.getTags("codeSnippets"); const snippets = await Promise.all( tags.map((tag) => CodeSnippetsCodebaseIndex.getAll(tag)), ); const submenuItems: ContextSubmenuItem[] = []; - for (const snippetList of snippets) { + for (const snippetList of snippets.slice(-MAX_SUBMENU_ITEMS)) { submenuItems.push(...snippetList); } diff --git a/core/context/providers/CodeHighlightsContextProvider.ts b/core/context/providers/CodeHighlightsContextProvider.ts index 761bd4495..1cae074a4 100644 --- a/core/context/providers/CodeHighlightsContextProvider.ts +++ b/core/context/providers/CodeHighlightsContextProvider.ts @@ -1,12 +1,10 @@ -import { BaseContextProvider } from ".."; import { ContextItem, ContextProviderDescription, ContextProviderExtras, -} from "../.."; -import { getBasename } from "../../util"; - -// import { getHighlightsThatFit, ILLMContextSizer } from "llm-code-highlighter/dist/index.continue"; +} from "../../index.js"; +import { getBasename } from "../../util/index.js"; +import { BaseContextProvider } from "../index.js"; const HIGHLIGHTS_TOKEN_BUDGET = 2000; @@ -16,12 +14,16 @@ class CodeHighlightsContextProvider extends BaseContextProvider { displayTitle: "Highlights", description: "Code highlights from open files", type: "normal", + renderInlineAs: "", }; async getContextItems( query: string, extras: ContextProviderExtras, ): Promise { + // const { getHighlightsThatFit } = await import( + // "llm-code-highlighter/src/index.continue.js" + // ); const ide = extras.ide; const openFiles = await ide.getOpenFiles(); const allFiles: { name: string; absPath: string; content: string }[] = @@ -34,11 +36,11 @@ class CodeHighlightsContextProvider extends BaseContextProvider { }; }), ); - // const contextSizer = { + // const contextSizer = { // fits(content: string): boolean { // return countTokens(content, "") < HIGHLIGHTS_TOKEN_BUDGET; - // } - // } as ILLMContextSizer + // }, + // }; // const repoMap = await getHighlightsThatFit( // contextSizer, // [], @@ -49,7 +51,7 @@ class CodeHighlightsContextProvider extends BaseContextProvider { // relPath: file.name, // code: file.content, // }; - // }) + // }), // ); // return [ // { diff --git a/core/context/providers/CodeOutlineContextProvider.ts b/core/context/providers/CodeOutlineContextProvider.ts index ead6fdc85..85781446e 100644 --- a/core/context/providers/CodeOutlineContextProvider.ts +++ b/core/context/providers/CodeOutlineContextProvider.ts @@ -1,12 +1,10 @@ -import { BaseContextProvider } from ".."; import { ContextItem, ContextProviderDescription, ContextProviderExtras, -} from "../.."; -import { getBasename } from "../../util"; - -// import { getOutlines } from "llm-code-highlighter/dist/index.continue"; +} from "../../index.js"; +import { getBasename } from "../../util/index.js"; +import { BaseContextProvider } from "../index.js"; class CodeOutlineContextProvider extends BaseContextProvider { static description: ContextProviderDescription = { @@ -14,6 +12,7 @@ class CodeOutlineContextProvider extends BaseContextProvider { displayTitle: "Outline", description: "Definition lines only (from open files)", type: "normal", + renderInlineAs: "", }; async getContextItems( diff --git a/core/context/providers/CodebaseContextProvider.ts b/core/context/providers/CodebaseContextProvider.ts index 9a46807e8..2de4352d9 100644 --- a/core/context/providers/CodebaseContextProvider.ts +++ b/core/context/providers/CodebaseContextProvider.ts @@ -1,10 +1,10 @@ -import { BaseContextProvider } from ".."; import { ContextItem, ContextProviderDescription, ContextProviderExtras, -} from "../.."; -import { retrieveContextItemsFromEmbeddings } from "../retrieval/retrieval"; +} from "../../index.js"; +import { BaseContextProvider } from "../index.js"; +import { retrieveContextItemsFromEmbeddings } from "../retrieval/retrieval.js"; class CodebaseContextProvider extends BaseContextProvider { static description: ContextProviderDescription = { diff --git a/core/context/providers/CurrentFileContextProvider.ts b/core/context/providers/CurrentFileContextProvider.ts new file mode 100644 index 000000000..e149c8079 --- /dev/null +++ b/core/context/providers/CurrentFileContextProvider.ts @@ -0,0 +1,40 @@ +import { + ContextItem, + ContextProviderDescription, + ContextProviderExtras, +} from "../../index.js"; +import { getBasename } from "../../util/index.js"; +import { BaseContextProvider } from "../index.js"; + +class CurrentFileContextProvider extends BaseContextProvider { + static description: ContextProviderDescription = { + title: "currentFile", + displayTitle: "Current File", + description: "Reference the currently open file", + type: "normal", + renderInlineAs: "", + }; + + async getContextItems( + query: string, + extras: ContextProviderExtras, + ): Promise { + const ide = extras.ide; + const currentFile = await ide.getCurrentFile(); + if (!currentFile) { + return []; + } + const contents = await ide.readFile(currentFile); + return [ + { + description: currentFile, + content: `This is the currently open file:\n\n\`\`\`${getBasename( + currentFile, + )}\n${contents}\n\`\`\``, + name: getBasename(currentFile), + }, + ]; + } +} + +export default CurrentFileContextProvider; diff --git a/core/context/providers/CustomContextProvider.ts b/core/context/providers/CustomContextProvider.ts index 1bc573e57..fd996f398 100644 --- a/core/context/providers/CustomContextProvider.ts +++ b/core/context/providers/CustomContextProvider.ts @@ -1,11 +1,11 @@ -import { +import type { ContextItem, ContextProviderDescription, ContextProviderExtras, CustomContextProvider, IContextProvider, LoadSubmenuItemsArgs, -} from "../.."; +} from "../../index.js"; class CustomContextProviderClass implements IContextProvider { custom: CustomContextProvider; diff --git a/core/context/providers/DatabaseContextProvider.ts b/core/context/providers/DatabaseContextProvider.ts index e0fa4ce3a..272fc9c34 100644 --- a/core/context/providers/DatabaseContextProvider.ts +++ b/core/context/providers/DatabaseContextProvider.ts @@ -1,11 +1,11 @@ -import { BaseContextProvider } from ".."; import { ContextItem, ContextProviderDescription, ContextProviderExtras, ContextSubmenuItem, LoadSubmenuItemsArgs, -} from "../.."; +} from "../../index.js"; +import { BaseContextProvider } from "../index.js"; class DatabaseContextProvider extends BaseContextProvider { static description: ContextProviderDescription = { @@ -13,6 +13,7 @@ class DatabaseContextProvider extends BaseContextProvider { displayTitle: "Database", description: "Table schemas", type: "submenu", + renderInlineAs: "", }; async getContextItems( @@ -27,12 +28,12 @@ class DatabaseContextProvider extends BaseContextProvider { return contextItems; } - let [connectionName, table] = query.split("."); + const [connectionName, table] = query.split("."); const getDatabaseAdapter = await require("dbinfoz"); for (const connection of connections) { - if (connection.name == connectionName) { + if (connection.name === connectionName) { const adapter = getDatabaseAdapter( connection.connection_type, connection.connection, @@ -45,9 +46,9 @@ class DatabaseContextProvider extends BaseContextProvider { let prompt = `Schema for all tables on ${connection.connection_type} is `; prompt += JSON.stringify(tablesAndSchemas); - let contextItem = { + const contextItem = { name: `${connectionName}-all-tables-schemas`, - description: `Schema for all tables.`, + description: "Schema for all tables.", content: prompt, }; @@ -60,7 +61,7 @@ class DatabaseContextProvider extends BaseContextProvider { let prompt = `Schema for ${tableName} on ${connection.connection_type} is `; prompt += JSON.stringify(tablesAndSchemas[tableName]); - let contextItem = { + const contextItem = { name: `${connectionName}-${tableName}-schema`, description: `${tableName} Schema`, content: prompt, @@ -89,7 +90,7 @@ class DatabaseContextProvider extends BaseContextProvider { const getDatabaseAdapter = await require("dbinfoz"); for (const connection of connections) { - let adapter = getDatabaseAdapter( + const adapter = getDatabaseAdapter( connection.connection_type, connection.connection, ); @@ -98,19 +99,19 @@ class DatabaseContextProvider extends BaseContextProvider { ); const tables = Object.keys(tablesAndSchemas); - let contextItem = { + const contextItem = { id: `${connection.name}.all`, title: `${connection.name} all table schemas`, - description: ``, + description: "", }; contextItems.push(contextItem); tables.forEach((tableName) => { - let contextItem = { + const contextItem = { id: `${connection.name}.${tableName}`, title: `${connection.name}.${tableName} schema`, - description: ``, + description: "", }; contextItems.push(contextItem); diff --git a/core/context/providers/DiffContextProvider.ts b/core/context/providers/DiffContextProvider.ts index 44b9168b5..696b71a21 100644 --- a/core/context/providers/DiffContextProvider.ts +++ b/core/context/providers/DiffContextProvider.ts @@ -1,9 +1,9 @@ -import { BaseContextProvider } from ".."; import { ContextItem, ContextProviderDescription, ContextProviderExtras, -} from "../.."; +} from "../../index.js"; +import { BaseContextProvider } from "../index.js"; class DiffContextProvider extends BaseContextProvider { static description: ContextProviderDescription = { @@ -21,7 +21,10 @@ class DiffContextProvider extends BaseContextProvider { return [ { description: "The current git diff", - content: `\`\`\`git diff\n${diff}\n\`\`\``, + content: + diff.trim() === "" + ? "Git shows no current changes." + : `\`\`\`git diff\n${diff}\n\`\`\``, name: "Git Diff", }, ]; diff --git a/core/context/providers/DocsContextProvider.ts b/core/context/providers/DocsContextProvider.ts index 439453807..83329a930 100644 --- a/core/context/providers/DocsContextProvider.ts +++ b/core/context/providers/DocsContextProvider.ts @@ -1,38 +1,89 @@ -import { BaseContextProvider } from ".."; +import fetch from "node-fetch"; import { ContextItem, ContextProviderDescription, ContextProviderExtras, ContextSubmenuItem, LoadSubmenuItemsArgs, -} from "../.."; -import configs from "../../indexing/docs/preIndexedDocs"; -import TransformersJsEmbeddingsProvider from "../../indexing/embeddings/TransformersJsEmbeddingsProvider"; + SiteIndexingConfig, +} from "../../index.js"; +import { DocsService } from "../../indexing/docs/DocsService.js"; +import configs from "../../indexing/docs/preIndexedDocs.js"; +import TransformersJsEmbeddingsProvider from "../../indexing/embeddings/TransformersJsEmbeddingsProvider.js"; +import { BaseContextProvider } from "../index.js"; class DocsContextProvider extends BaseContextProvider { + static DEFAULT_N_RETRIEVE = 30; + static DEFAULT_N_FINAL = 15; static description: ContextProviderDescription = { title: "docs", displayTitle: "Docs", description: "Type to search docs", type: "submenu", }; + private docsService: DocsService; + + constructor(options: any) { + super(options); + this.docsService = DocsService.getInstance(); + } + + private async _getIconDataUrl(url: string): Promise { + try { + const response = await fetch(url); + if (!response.headers.get("content-type")?.startsWith("image/")) { + console.log("Not an image: ", await response.text()); + return undefined; + } + const buffer = await response.buffer(); + const base64data = buffer.toString("base64"); + return `data:${response.headers.get("content-type")};base64,${base64data}`; + } catch (e) { + console.log("E: ", e); + return undefined; + } + } async getContextItems( query: string, extras: ContextProviderExtras, ): Promise { - const { retrieveDocs } = await import("../../indexing/docs/db"); + // Not supported in JetBrains IDEs right now + if ((await extras.ide.getIdeInfo()).ideType === "jetbrains") { + throw new Error( + "The @docs context provider is not currently supported in JetBrains IDEs. We'll have an update soon!", + ); + } const embeddingsProvider = new TransformersJsEmbeddingsProvider(); const [vector] = await embeddingsProvider.embed([extras.fullInput]); - const chunks = await retrieveDocs( + let chunks = await this.docsService.retrieve( query, vector, - this.options?.nRetrieve || 15, + this.options?.nRetrieve ?? DocsContextProvider.DEFAULT_N_RETRIEVE, embeddingsProvider.id, ); + if (extras.reranker) { + try { + const scores = await extras.reranker.rerank(extras.fullInput, chunks); + chunks.sort( + (a, b) => scores[chunks.indexOf(b)] - scores[chunks.indexOf(a)], + ); + chunks = chunks.splice( + 0, + this.options?.nFinal ?? DocsContextProvider.DEFAULT_N_FINAL, + ); + } catch (e) { + console.warn(`Failed to rerank docs results: ${e}`); + chunks = chunks.splice( + 0, + this.options?.nFinal ?? DocsContextProvider.DEFAULT_N_FINAL, + ); + } + } + return [ ...chunks .map((chunk) => ({ @@ -58,29 +109,65 @@ class DocsContextProvider extends BaseContextProvider { ]; } - async loadSubmenuItems( - args: LoadSubmenuItemsArgs, - ): Promise { - const { listDocs } = await import("../../indexing/docs/db"); - const docs = await listDocs(); - const submenuItems = docs.map((doc) => ({ + // Get combined site configs from preIndexedDocs and options.sites. + private _getDocsSitesConfig(): SiteIndexingConfig[] { + return [...configs, ...(this.options?.sites || [])]; + } + + // Get indexed docs as ContextSubmenuItems from database. + private async _getIndexedDocsContextSubmenuItems(): Promise { + return (await this.docsService.list()).map((doc) => ({ title: doc.title, description: new URL(doc.baseUrl).hostname, id: doc.baseUrl, })); + } + + async loadSubmenuItems( + args: LoadSubmenuItemsArgs, + ): Promise { + const submenuItemsMap = new Map(); + + for (const item of await this._getIndexedDocsContextSubmenuItems()) { + submenuItemsMap.set(item.id, item); + } + + for (const config of this._getDocsSitesConfig()) { + submenuItemsMap.set(config.startUrl, { + id: config.startUrl, + title: config.title, + description: new URL(config.startUrl).hostname, + metadata: { preIndexed: !!configs.find((cnf) => cnf.title === config.title), }, + }); + } + + const submenuItems = Array.from(submenuItemsMap.values()); + + // Sort submenuItems such that the objects with titles which don't occur in configs occur first, and alphabetized + submenuItems.sort((a, b) => { + const aTitleInConfigs = a.metadata?.preIndexed ?? false; + const bTitleInConfigs = b.metadata?.preIndexed ?? false; + + // Primary criterion: Items not in configs come first + if (!aTitleInConfigs && bTitleInConfigs) { + return -1; + } else if (aTitleInConfigs && !bTitleInConfigs) { + return 1; + } else { + // Secondary criterion: Alphabetical order when both items are in the same category + return a.title.toString().localeCompare(b.title.toString()); + } + }); + + // const icons = await Promise.all( + // submenuItems.map(async (item) => + // item.iconUrl ? this._getIconDataUrl(item.iconUrl) : undefined, + // ), + // ); + // icons.forEach((icon, i) => { + // submenuItems[i].iconUrl = icon; + // }); - submenuItems.push( - ...configs - // After it's actually downloaded, we don't want to show twice - .filter( - (config) => !submenuItems.some((item) => item.id === config.startUrl), - ) - .map((config) => ({ - title: config.title, - description: new URL(config.startUrl).hostname, - id: config.startUrl, - })), - ); return submenuItems; } } diff --git a/core/context/providers/FileContextProvider.ts b/core/context/providers/FileContextProvider.ts index 0a40ec705..5e9cc3f77 100644 --- a/core/context/providers/FileContextProvider.ts +++ b/core/context/providers/FileContextProvider.ts @@ -1,12 +1,19 @@ -import { BaseContextProvider } from ".."; import { ContextItem, ContextProviderDescription, ContextProviderExtras, ContextSubmenuItem, LoadSubmenuItemsArgs, -} from "../.."; -import { getBasename, getLastNPathParts } from "../../util"; +} from "../../index.js"; +import { walkDir } from "../../indexing/walkDir.js"; +import { + getBasename, + getUniqueFilePath, + groupByLastNPathParts, +} from "../../util/index.js"; +import { BaseContextProvider } from "../index.js"; + +const MAX_SUBMENU_ITEMS = 10_000; class FileContextProvider extends BaseContextProvider { static description: ContextProviderDescription = { @@ -38,15 +45,17 @@ class FileContextProvider extends BaseContextProvider { const workspaceDirs = await args.ide.getWorkspaceDirs(); const results = await Promise.all( workspaceDirs.map((dir) => { - return args.ide.listWorkspaceContents(dir); + return walkDir(dir, args.ide); }), ); - const files = results.flat(); + const files = results.flat().slice(-MAX_SUBMENU_ITEMS); + const fileGroups = groupByLastNPathParts(files, 2); + return files.map((file) => { return { id: file, title: getBasename(file), - description: getLastNPathParts(file, 2), + description: getUniqueFilePath(file, fileGroups), }; }); } diff --git a/core/context/providers/FileTreeContextProvider.ts b/core/context/providers/FileTreeContextProvider.ts index d1c175d99..52af97823 100644 --- a/core/context/providers/FileTreeContextProvider.ts +++ b/core/context/providers/FileTreeContextProvider.ts @@ -1,9 +1,11 @@ -import { BaseContextProvider } from ".."; import { ContextItem, ContextProviderDescription, ContextProviderExtras, -} from "../.."; +} from "../../index.js"; +import { walkDir } from "../../indexing/walkDir.js"; +import { splitPath } from "../../util/index.js"; +import { BaseContextProvider } from "../index.js"; interface Directory { name: string; @@ -11,24 +13,15 @@ interface Directory { directories: Directory[]; } -function splitPath(path: string, withRoot?: string): string[] { - let parts = path.includes("/") ? path.split("/") : path.split("\\"); - if (withRoot !== undefined) { - let rootParts = splitPath(withRoot); - parts = parts.slice(rootParts.length - 1); - } - return parts; -} - -function formatFileTree(tree: Directory, indentation: string = ""): string { +function formatFileTree(tree: Directory, indentation = ""): string { let result = ""; - for (let file of tree.files) { + for (const file of tree.files) { result += `${indentation}${file}\n`; } - for (let directory of tree.directories) { + for (const directory of tree.directories) { result += `${indentation}${directory.name}/\n`; - result += formatFileTree(directory, indentation + " "); + result += formatFileTree(directory, `${indentation} `); } return result; @@ -40,6 +33,7 @@ class FileTreeContextProvider extends BaseContextProvider { displayTitle: "File Tree", description: "Attach a representation of the file tree", type: "normal", + renderInlineAs: "", }; async getContextItems( @@ -47,10 +41,10 @@ class FileTreeContextProvider extends BaseContextProvider { extras: ContextProviderExtras, ): Promise { const workspaceDirs = await extras.ide.getWorkspaceDirs(); - let trees = []; + const trees = []; - for (let workspaceDir of workspaceDirs) { - const contents = await extras.ide.listWorkspaceContents(workspaceDir); + for (const workspaceDir of workspaceDirs) { + const contents = await walkDir(workspaceDir, extras.ide); const subDirTree: Directory = { name: splitPath(workspaceDir).pop() ?? "", @@ -58,11 +52,11 @@ class FileTreeContextProvider extends BaseContextProvider { directories: [], }; - for (let file of contents) { + for (const file of contents) { const parts = splitPath(file, workspaceDir); let currentTree = subDirTree; - for (let part of parts.slice(0, -1)) { + for (const part of parts.slice(0, -1)) { if (!currentTree.directories.some((d) => d.name === part)) { currentTree.directories.push({ name: part, @@ -82,9 +76,9 @@ class FileTreeContextProvider extends BaseContextProvider { return [ { - content: - "Here is a file tree of the current workspace:\n\n" + - trees.join("\n\n"), + content: `Here is a file tree of the current workspace:\n\n${trees.join( + "\n\n", + )}`, name: "File Tree", description: "File Tree", }, diff --git a/core/context/providers/FolderContextProvider.ts b/core/context/providers/FolderContextProvider.ts index 13b942094..4c2869a90 100644 --- a/core/context/providers/FolderContextProvider.ts +++ b/core/context/providers/FolderContextProvider.ts @@ -1,17 +1,17 @@ -import { BaseContextProvider } from ".."; import { ContextItem, ContextProviderDescription, ContextProviderExtras, ContextSubmenuItem, LoadSubmenuItemsArgs, -} from "../.."; -import { getBasename, getLastNPathParts } from "../../util"; +} from "../../index.js"; +import { getBasename, groupByLastNPathParts, getUniqueFilePath } from "../../util/index.js"; +import { BaseContextProvider } from "../index.js"; class FolderContextProvider extends BaseContextProvider { static description: ContextProviderDescription = { title: "folder", - displayTitle: "Folders", + displayTitle: "Folder", description: "Type to search", type: "submenu", }; @@ -21,7 +21,7 @@ class FolderContextProvider extends BaseContextProvider { extras: ContextProviderExtras, ): Promise { const { retrieveContextItemsFromEmbeddings } = await import( - "../retrieval/retrieval" + "../retrieval/retrieval.js" ); return retrieveContextItemsFromEmbeddings(extras, this.options, query); } @@ -29,11 +29,13 @@ class FolderContextProvider extends BaseContextProvider { args: LoadSubmenuItemsArgs, ): Promise { const folders = await args.ide.listFolders(); + const folderGroups = groupByLastNPathParts(folders, 2); + return folders.map((folder) => { return { id: folder, title: getBasename(folder), - description: getLastNPathParts(folder, 2), + description: getUniqueFilePath(folder, folderGroups) }; }); } diff --git a/core/context/providers/GitHubIssuesContextProvider.ts b/core/context/providers/GitHubIssuesContextProvider.ts index c3464af75..c0f25c12b 100644 --- a/core/context/providers/GitHubIssuesContextProvider.ts +++ b/core/context/providers/GitHubIssuesContextProvider.ts @@ -1,11 +1,11 @@ -import { BaseContextProvider } from ".."; import { ContextItem, ContextProviderDescription, ContextProviderExtras, ContextSubmenuItem, LoadSubmenuItemsArgs, -} from "../.."; +} from "../../index.js"; +import { BaseContextProvider } from "../index.js"; class GitHubIssuesContextProvider extends BaseContextProvider { static description: ContextProviderDescription = { @@ -24,6 +24,9 @@ class GitHubIssuesContextProvider extends BaseContextProvider { const octokit = new Octokit({ auth: this.options?.githubToken, + request: { + fetch: extras.fetch, + }, }); const { owner, repo, issue_number } = JSON.parse(issueId); @@ -46,7 +49,7 @@ class GitHubIssuesContextProvider extends BaseContextProvider { issue.data.body || "No description", ...comments.data.map((comment) => comment.body), ]; - content += "\n\n" + parts.join("\n\n---\n\n"); + content += `\n\n${parts.join("\n\n---\n\n")}`; return [ { @@ -64,6 +67,9 @@ class GitHubIssuesContextProvider extends BaseContextProvider { const octokit = new Octokit({ auth: this.options?.githubToken, + request: { + fetch: args.fetch, + }, }); const allIssues = []; diff --git a/core/context/providers/GitLabMergeRequestContextProvider.ts b/core/context/providers/GitLabMergeRequestContextProvider.ts index d1b3da8eb..802d5f2ab 100644 --- a/core/context/providers/GitLabMergeRequestContextProvider.ts +++ b/core/context/providers/GitLabMergeRequestContextProvider.ts @@ -1,6 +1,10 @@ -import { AxiosInstance, AxiosError } from "axios"; -import {BaseContextProvider} from ".."; -import { ContextProviderExtras, ContextItem, ContextProviderDescription } from "../.."; +import { AxiosError, AxiosInstance } from "axios"; +import { + ContextItem, + ContextProviderDescription, + ContextProviderExtras, +} from "../../index.js"; +import { BaseContextProvider } from "../index.js"; interface RemoteBranchInfo { branch: string | null; @@ -57,9 +61,7 @@ const trimFirstElement = (args: Array): string => { }; const getSubprocess = async (extras: ContextProviderExtras) => { - const workingDir = await extras.ide - .getWorkspaceDirs() - .then(trimFirstElement); + const workingDir = await extras.ide.getWorkspaceDirs().then(trimFirstElement); return (command: string) => extras.ide @@ -67,13 +69,12 @@ const getSubprocess = async (extras: ContextProviderExtras) => { .then(trimFirstElement); }; - class GitLabMergeRequestContextProvider extends BaseContextProvider { static description: ContextProviderDescription = { - title: 'gitlab-mr', - displayTitle: 'GitLab Merge Request', - description: 'Reference comments in a GitLab Merge Request', - type: 'normal' + title: "gitlab-mr", + displayTitle: "GitLab Merge Request", + description: "Reference comments in a GitLab Merge Request", + type: "normal", }; private async getApi(): Promise { @@ -82,85 +83,88 @@ class GitLabMergeRequestContextProvider extends BaseContextProvider { const domain = this.options.domain ?? "gitlab.com"; const token = this.options.token; - if(!token) { - throw new Error(`GitLab Private Token is required!`); + if (!token) { + throw new Error("GitLab Private Token is required!"); } - + return Axios.create({ baseURL: `https://${domain ?? "gitlab.com"}/api/v4`, headers: { "PRIVATE-TOKEN": token, }, }); - }; + } + private async getRemoteBranchName( + extras: ContextProviderExtras, + ): Promise { + const subprocess = await getSubprocess(extras); - private async getRemoteBranchName(extras: ContextProviderExtras): Promise { + const branchName = await subprocess("git branch --show-current"); - const subprocess = await getSubprocess(extras); - - const branchName = await subprocess(`git branch --show-current`); - const branchRemote = await subprocess( - `git config branch.${branchName}.remote` + `git config branch.${branchName}.remote`, ); - - const branchInfo = await subprocess(`git branch -vv`); - + + const branchInfo = await subprocess("git branch -vv"); + const currentBranchInfo = branchInfo .split("\n") .find((line) => line.startsWith("*")); - + const remoteMatches = RegExp( - `\\[${branchRemote}/(?[^\\]]+)\\]` + `\\[${branchRemote}/(?[^\\]]+)\\]`, ).exec(currentBranchInfo!); - + console.dir({ remoteMatches }); - - const remoteBranch = remoteMatches?.groups?.["remote_branch"] ?? null; - + + const remoteBranch = remoteMatches?.groups?.remote_branch ?? null; + const remoteUrl = await subprocess(`git remote get-url ${branchRemote}`); - - const urlMatches = RegExp(`:(?.*).git`).exec(remoteUrl); - - const project = urlMatches?.groups?.["project"] ?? null; - + + const urlMatches = /:(?.*).git/.exec(remoteUrl); + + const project = urlMatches?.groups?.project ?? null; + return { branch: remoteBranch, project, }; - }; - - async getContextItems(query: string, extras: ContextProviderExtras): Promise { + } + async getContextItems( + query: string, + extras: ContextProviderExtras, + ): Promise { const { branch, project } = await this.getRemoteBranchName(extras); - + const api = await this.getApi(); const result = [] as Array; - + try { - const mergeRequests = await api - .get>( - `/projects/${encodeURIComponent(project!)}/merge_requests`, - { - params: { - source_branch: branch, - state: "opened", + const mergeRequests = await api + .get>( + `/projects/${encodeURIComponent(project!)}/merge_requests`, + { + params: { + source_branch: branch, + state: "opened", + }, }, - } - ) - .then((x) => x.data); + ) + .then((x) => x.data); + const subprocess = await getSubprocess(extras); - const subprocess = await getSubprocess(extras); - for (const mergeRequest of mergeRequests) { const parts = [ - `# GitLab Merge Request\ntitle: "${mergeRequest.title}"\ndescription: "${mergeRequest.description ?? 'None'}"`, - `## Comments`, + `# GitLab Merge Request\ntitle: "${ + mergeRequest.title + }"\ndescription: "${mergeRequest.description ?? "None"}"`, + "## Comments", ]; - + const comments = await api.get>( `/projects/${mergeRequest.project_id}/merge_requests/${mergeRequest.iid}/notes`, { @@ -168,89 +172,106 @@ class GitLabMergeRequestContextProvider extends BaseContextProvider { sort: "asc", order_by: "created_at", }, - } + }, ); const filteredComments = comments.data.filter( - (x) => x.type === "DiffNote" + (x) => x.type === "DiffNote", ); - + const locations = {} as Record>; - + for (const comment of filteredComments) { const filename = comment.position?.new_path ?? "general"; - + if (!locations[filename]) { locations[filename] = []; } - + locations[filename].push(comment); } if (extras.selectedCode.length && this.options.filterComments) { - const toRemove = Object.keys(locations).filter(filename => !extras.selectedCode.find(selection => selection.filepath.endsWith(filename)) && filename !== "general"); + const toRemove = Object.keys(locations).filter( + (filename) => + !extras.selectedCode.find((selection) => + selection.filepath.endsWith(filename), + ) && filename !== "general", + ); for (const filepath of toRemove) { delete locations[filepath]; } } - + const commentFormatter = async (comment: GitLabComment) => { - const commentLabel = comment.body.includes("```suggestion") ? 'Code Suggestion' : 'Comment'; - let result = `#### ${commentLabel}\nauthor: "${comment.author.name}"\ndate: "${comment.created_at}"\nresolved: ${ - comment.resolved ? "Yes" : "No" - }`; - + const commentLabel = comment.body.includes("```suggestion") + ? "Code Suggestion" + : "Comment"; + let result = `#### ${commentLabel}\nauthor: "${ + comment.author.name + }"\ndate: "${comment.created_at}"\nresolved: ${ + comment.resolved ? "Yes" : "No" + }`; + if (comment.position?.new_line) { result += `\nline: ${comment.position.new_line}`; - + if (comment.position.head_sha) { - const sourceLines = await subprocess(`git show ${comment.position.head_sha}:${comment.position.new_path}`).then(result => result.split("\n")).catch(ex => []); + const sourceLines = await subprocess( + `git show ${comment.position.head_sha}:${comment.position.new_path}`, + ) + .then((result) => result.split("\n")) + .catch((ex) => []); - const line = comment.position.new_line <= sourceLines.length ? sourceLines[comment.position.new_line - 1] : null; + const line = + comment.position.new_line <= sourceLines.length + ? sourceLines[comment.position.new_line - 1] + : null; if (line) { result += `\nsource: \`${line}\``; } } } - + result += `\n\n${comment.body}`; - + return result; }; - + for (const [filename, locationComments] of Object.entries(locations)) { if (filename !== "general") { parts.push(`### File ${filename}`); locationComments.sort( - (a, b) => a.position!.new_line - b.position!.new_line + (a, b) => + (a.position?.new_line ?? 0) - (b.position?.new_line ?? 0), ); } else { parts.push("### General"); } - - const commentSections = await Promise.all(locationComments.map(commentFormatter)); + + const commentSections = await Promise.all( + locationComments.map(commentFormatter), + ); parts.push(...commentSections); } + const content = parts.join("\n\n"); - const content = parts.join("\n\n"); - - result.push( - { + result.push({ name: mergeRequest.title, content, - description: `Comments from the Merge Request for this branch.`, - }, - ); + description: "Comments from the Merge Request for this branch.", + }); } - } catch (ex) { - let content = `# GitLab Merge Request\n\nError getting merge request. `; + let content = "# GitLab Merge Request\n\nError getting merge request. "; if (ex instanceof AxiosError) { if (ex.response) { - const errorMessage = ex.response?.data ? ex.response.data.message ?? JSON.stringify(ex.response?.data) : `${ex.response.status}: ${ex.response.statusText}`; - content += `GitLab Error: ${errorMessage}`; + const errorMessage = ex.response?.data + ? ex.response.data.message ?? JSON.stringify(ex.response?.data) + : `${ex.response.status}: ${ex.response.statusText}`; + content += `GitLab Error: ${errorMessage}`; } else { content += `GitLab Request Error ${ex.request}`; } @@ -259,19 +280,15 @@ class GitLabMergeRequestContextProvider extends BaseContextProvider { content += `Unknown error: ${ex.message ?? JSON.stringify(ex)}`; } - - result.push( - { - name: `GitLab Merge Request`, - content, - description: `Error getting the Merge Request for this branch.`, - }, - ); + result.push({ + name: "GitLab Merge Request", + content, + description: "Error getting the Merge Request for this branch.", + }); } return result; } - } -export default GitLabMergeRequestContextProvider; \ No newline at end of file +export default GitLabMergeRequestContextProvider; diff --git a/core/context/providers/GoogleContextProvider.ts b/core/context/providers/GoogleContextProvider.ts index c2ee4877b..fb8a04d40 100644 --- a/core/context/providers/GoogleContextProvider.ts +++ b/core/context/providers/GoogleContextProvider.ts @@ -1,9 +1,9 @@ -import { BaseContextProvider } from ".."; import { ContextItem, ContextProviderDescription, ContextProviderExtras, -} from "../.."; +} from "../../index.js"; +import { BaseContextProvider } from "../index.js"; class GoogleContextProvider extends BaseContextProvider { static description: ContextProviderDescription = { @@ -32,7 +32,7 @@ class GoogleContextProvider extends BaseContextProvider { "Content-Type": "application/json", }; - const response = await fetch(url, { + const response = await extras.fetch(url, { method: "POST", headers: headers, body: payload, @@ -40,16 +40,16 @@ class GoogleContextProvider extends BaseContextProvider { const results = await response.text(); - let jsonResults = JSON.parse(results); + const jsonResults = JSON.parse(results); let content = `Google Search: ${query}\n\n`; - let answerBox = jsonResults["answerBox"]; + const answerBox = jsonResults.answerBox; if (answerBox) { - content += `Answer Box (${answerBox["title"]}): ${answerBox["answer"]}\n\n`; + content += `Answer Box (${answerBox.title}): ${answerBox.answer}\n\n`; } - for (let result of jsonResults["organic"]) { - content += `${result["title"]}\n${result["link"]}\n${result["snippet"]}\n\n`; + for (const result of jsonResults.organic) { + content += `${result.title}\n${result.link}\n${result.snippet}\n\n`; } return [ diff --git a/core/context/providers/HttpContextProvider.ts b/core/context/providers/HttpContextProvider.ts index c72d8c654..a33bcb775 100644 --- a/core/context/providers/HttpContextProvider.ts +++ b/core/context/providers/HttpContextProvider.ts @@ -1,9 +1,9 @@ -import { BaseContextProvider } from ".."; import { ContextItem, ContextProviderDescription, ContextProviderExtras, -} from "../.."; +} from "../../index.js"; +import { BaseContextProvider } from "../index.js"; class HttpContextProvider extends BaseContextProvider { static description: ContextProviderDescription = { @@ -28,7 +28,7 @@ class HttpContextProvider extends BaseContextProvider { query: string, extras: ContextProviderExtras, ): Promise { - const response = await fetch(this.options.url, { + const response = await extras.fetch(new URL(this.options.url), { method: "POST", headers: { "Content-Type": "application/json", @@ -39,7 +39,7 @@ class HttpContextProvider extends BaseContextProvider { }), }); - const json = await response.json(); + const json: any = await response.json(); return [ { description: json.description || "HTTP Context Item", diff --git a/core/context/providers/JiraIssuesContextProvider/JiraClient.ts b/core/context/providers/JiraIssuesContextProvider/JiraClient.ts index 573c5549f..c04defdaa 100644 --- a/core/context/providers/JiraIssuesContextProvider/JiraClient.ts +++ b/core/context/providers/JiraIssuesContextProvider/JiraClient.ts @@ -1,5 +1,4 @@ -import { RequestOptions } from "../../.."; -import { fetchwithRequestOptions } from "../../../util/fetchWithOptions"; +import { RequestOptions } from "../../../index.js"; const { convert: adf2md } = require("adf-to-md"); interface JiraClientOptions { @@ -68,7 +67,8 @@ export class JiraClient { private authHeader; constructor(options: JiraClientOptions) { this.options = { - issueQuery: `assignee = currentUser() AND resolution = Unresolved order by updated DESC`, + issueQuery: + "assignee = currentUser() AND resolution = Unresolved order by updated DESC", apiVersion: "3", requestOptions: {}, ...options, @@ -76,21 +76,24 @@ export class JiraClient { this.baseUrl = `https://${this.options.domain}/rest/api/${this.options.apiVersion}`; this.authHeader = this.options.username ? { - Authorization: - "Basic " + - btoa(this.options.username + ":" + this.options.password), + Authorization: `Basic ${btoa( + `${this.options.username}:${this.options.password}`, + )}`, } : { Authorization: `Bearer ${this.options.password}`, }; } - async issue(issueId: string): Promise { + async issue( + issueId: string, + customFetch: (url: string | URL, init: any) => Promise, + ): Promise { const result = {} as Issue; - const response = await fetchwithRequestOptions( + const response = await customFetch( new URL( - this.baseUrl + `/issue/${issueId}?fields=description,comment,summary` + this.baseUrl + `/issue/${issueId}?fields=description,comment,summary`, ), { method: "GET", @@ -99,7 +102,6 @@ export class JiraClient { ...this.authHeader, }, }, - this.options.requestOptions ); const issue = (await response.json()) as any; @@ -133,14 +135,16 @@ export class JiraClient { return result; } - async listIssues(): Promise> { - const response = await fetchwithRequestOptions( + async listIssues( + customFetch: (url: string | URL, init: any) => Promise, + ): Promise> { + const response = await customFetch( new URL( this.baseUrl + `/search?fields=summary&jql=${ this.options.issueQuery ?? - `assignee = currentUser() AND resolution = Unresolved order by updated DESC` - }` + "assignee = currentUser() AND resolution = Unresolved order by updated DESC" + }`, ), { method: "GET", @@ -149,13 +153,12 @@ export class JiraClient { ...this.authHeader, }, }, - this.options.requestOptions ); - if (response.status != 200) { + if (response.status !== 200) { console.warn( "Unable to get jira tickets. Response code from API is", - response.status + response.status, ); return Promise.resolve([]); } diff --git a/core/context/providers/JiraIssuesContextProvider/index.ts b/core/context/providers/JiraIssuesContextProvider/index.ts index 4ee7a4b6a..381099012 100644 --- a/core/context/providers/JiraIssuesContextProvider/index.ts +++ b/core/context/providers/JiraIssuesContextProvider/index.ts @@ -1,12 +1,12 @@ -import { BaseContextProvider } from "../.."; import { ContextItem, ContextProviderDescription, ContextProviderExtras, ContextSubmenuItem, LoadSubmenuItemsArgs, -} from "../../.."; -import { JiraClient } from "./JiraClient"; +} from "../../../index.js"; +import { BaseContextProvider } from "../../index.js"; +import { JiraClient } from "./JiraClient.js"; class JiraIssuesContextProvider extends BaseContextProvider { static description: ContextProviderDescription = { @@ -29,12 +29,12 @@ class JiraIssuesContextProvider extends BaseContextProvider { async getContextItems( query: string, - extras: ContextProviderExtras + extras: ContextProviderExtras, ): Promise { const issueId = query; const api = this.getApi(); - const issue = await api.issue(query); + const issue = await api.issue(query, extras.fetch); const parts = [ `# Jira Issue ${issue.key}: ${issue.summary}`, @@ -48,7 +48,7 @@ class JiraIssuesContextProvider extends BaseContextProvider { parts.push( ...issue.comments.map((comment) => { return `### ${comment.author.displayName} on ${comment.created}\n\n${comment.body}`; - }) + }), ); } @@ -64,12 +64,12 @@ class JiraIssuesContextProvider extends BaseContextProvider { } async loadSubmenuItems( - args: LoadSubmenuItemsArgs + args: LoadSubmenuItemsArgs, ): Promise { const api = await this.getApi(); try { - const issues = await api.listIssues(); + const issues = await api.listIssues(args.fetch); return issues.map((issue) => ({ id: issue.id, diff --git a/core/context/providers/LocalsProvider.ts b/core/context/providers/LocalsProvider.ts index 9b5ea5dbc..abd058095 100644 --- a/core/context/providers/LocalsProvider.ts +++ b/core/context/providers/LocalsProvider.ts @@ -1,11 +1,11 @@ -import { BaseContextProvider } from ".."; import { ContextItem, ContextProviderDescription, ContextProviderExtras, ContextSubmenuItem, LoadSubmenuItemsArgs, -} from "../.."; +} from "../../index.js"; +import { BaseContextProvider } from "../index.js"; class LocalsProvider extends BaseContextProvider { static description: ContextProviderDescription = { @@ -13,26 +13,27 @@ class LocalsProvider extends BaseContextProvider { displayTitle: "Locals", description: "Reference the contents of the local variables", type: "submenu", + renderInlineAs: "", }; async getContextItems( query: string, - extras: ContextProviderExtras + extras: ContextProviderExtras, ): Promise { // Assuming that the query is a number const localVariables = await extras.ide.getDebugLocals(Number(query)); const threadIndex = Number(query); const thread = (await extras.ide.getAvailableThreads()).find( - (thread) => thread.id == threadIndex + (thread) => thread.id === threadIndex, ); const callStacksSources = await extras.ide.getTopLevelCallStackSources( threadIndex, - this.options?.stackDepth || 3 + this.options?.stackDepth || 3, ); const callStackContents = callStacksSources.reduce( (acc, source, index) => - acc + `\n\ncall stack ${index}\n` + "```\n" + source + "\n```", - "" + `${acc}\n\ncall stack ${index}\n\`\`\`\n${source}\n\`\`\``, + "", ); return [ { @@ -47,7 +48,7 @@ class LocalsProvider extends BaseContextProvider { } async loadSubmenuItems( - args: LoadSubmenuItemsArgs + args: LoadSubmenuItemsArgs, ): Promise { const threads = await args.ide.getAvailableThreads(); diff --git a/core/context/providers/OSContextProvider.ts b/core/context/providers/OSContextProvider.ts index fd0996e94..5f06e5f3d 100644 --- a/core/context/providers/OSContextProvider.ts +++ b/core/context/providers/OSContextProvider.ts @@ -1,19 +1,16 @@ -//os.platform() -//os.arch() - -import { BaseContextProvider } from ".."; +import os from "os"; import { ContextItem, ContextProviderDescription, ContextProviderExtras, -} from "../.."; -import os from "os"; +} from "../../index.js"; +import { BaseContextProvider } from "../index.js"; class OSContextProvider extends BaseContextProvider { static description: ContextProviderDescription = { - title: "OS", - displayTitle: "OS", - description: "OS and CPU Information.", + title: "os", + displayTitle: "Operating System", + description: "Operating system and CPU Information.", type: "normal", }; @@ -25,9 +22,9 @@ class OSContextProvider extends BaseContextProvider { const platform = os.platform(); return [ { - description: "Your OS and CPU", + description: "Your operating system and CPU", content: `I am running ${platform} on ${cpu}.`, - name: "OS", + name: "os", }, ]; } diff --git a/core/context/providers/OpenFilesContextProvider.ts b/core/context/providers/OpenFilesContextProvider.ts index 111cf31b5..b0c85bc2e 100644 --- a/core/context/providers/OpenFilesContextProvider.ts +++ b/core/context/providers/OpenFilesContextProvider.ts @@ -1,10 +1,10 @@ -import { BaseContextProvider } from ".."; import { ContextItem, ContextProviderDescription, ContextProviderExtras, -} from "../.."; -import { getBasename } from "../../util"; +} from "../../index.js"; +import { getRelativePath } from "../../util/index.js"; +import { BaseContextProvider } from "../index.js"; class OpenFilesContextProvider extends BaseContextProvider { static description: ContextProviderDescription = { @@ -12,6 +12,7 @@ class OpenFilesContextProvider extends BaseContextProvider { displayTitle: "Open Files", description: "Reference the current open files", type: "normal", + renderInlineAs: "", }; async getContextItems( @@ -22,11 +23,12 @@ class OpenFilesContextProvider extends BaseContextProvider { const openFiles = this.options?.onlyPinned ? await ide.getPinnedFiles() : await ide.getOpenFiles(); + const workspaceDirs = await extras.ide.getWorkspaceDirs(); return await Promise.all( openFiles.map(async (filepath: string) => { return { description: filepath, - content: `\`\`\`${getBasename(filepath)}\n${await ide.readFile( + content: `\`\`\`${await getRelativePath(filepath, workspaceDirs)}\n${await ide.readFile( filepath, )}\n\`\`\``, name: (filepath.split("/").pop() ?? "").split("\\").pop() ?? "", diff --git a/core/context/providers/PostgresContextProvider.ts b/core/context/providers/PostgresContextProvider.ts index 9c7e78528..ff8ba289f 100644 --- a/core/context/providers/PostgresContextProvider.ts +++ b/core/context/providers/PostgresContextProvider.ts @@ -1,11 +1,11 @@ -import { BaseContextProvider } from ".."; import { ContextItem, ContextProviderDescription, ContextProviderExtras, ContextSubmenuItem, LoadSubmenuItemsArgs, -} from "../.."; +} from "../../index.js"; +import { BaseContextProvider } from "../index.js"; class PostgresContextProvider extends BaseContextProvider { static description: ContextProviderDescription = { @@ -13,23 +13,12 @@ class PostgresContextProvider extends BaseContextProvider { displayTitle: "PostgreSQL", description: "Retrieve PostgreSQL table schema and sample rows", type: "submenu", + renderInlineAs: "", }; static ALL_TABLES = "__all_tables"; static DEFAULT_SAMPLE_ROWS = 3; - constructor(options: { - host: string; - port: number; - user: string; - password: string; - database: string; - schema?: string; - sampleRows?: number; - }) { - super(options); - } - private async getPool() { const pg = await require("pg"); return new pg.Pool({ @@ -43,7 +32,7 @@ class PostgresContextProvider extends BaseContextProvider { private async getTableNames(pool: any): Promise { const schema = this.options.schema ?? "public"; - var tablesInfoQuery = ` + let tablesInfoQuery = ` SELECT table_schema, table_name FROM information_schema.tables`; if (schema != null) { @@ -56,7 +45,7 @@ FROM information_schema.tables`; } async getContextItems( - query: string = "", + query = "", _: ContextProviderExtras = {} as ContextProviderExtras, ): Promise { const pool = await this.getPool(); @@ -78,7 +67,7 @@ FROM information_schema.tables`; `Table name must be in format schema.table_name, got ${tableName}`, ); } - var schemaQuery = ` + const schemaQuery = ` SELECT column_name, data_type, character_maximum_length FROM INFORMATION_SCHEMA.COLUMNS WHERE table_schema = '${tableName.split(".")[0]}' @@ -96,7 +85,7 @@ FROM ${tableName} LIMIT ${sampleRows}`); // Create prompt from the table schema and sample rows - var prompt = `Postgres schema for database ${this.options.database} table ${tableName}:\n`; + let prompt = `Postgres schema for database ${this.options.database} table ${tableName}:\n`; prompt += `${JSON.stringify(tableSchema, null, 2)}\n\n`; prompt += `Sample rows: ${JSON.stringify(sampleRowResults, null, 2)}`; diff --git a/core/context/providers/ProblemsContextProvider.ts b/core/context/providers/ProblemsContextProvider.ts index 62916b8f5..d5ffd46d8 100644 --- a/core/context/providers/ProblemsContextProvider.ts +++ b/core/context/providers/ProblemsContextProvider.ts @@ -1,10 +1,10 @@ -import { BaseContextProvider } from ".."; import { ContextItem, ContextProviderDescription, ContextProviderExtras, -} from "../.."; -import { getBasename } from "../../util"; +} from "../../index.js"; +import { getBasename } from "../../util/index.js"; +import { BaseContextProvider } from "../index.js"; class ProblemsContextProvider extends BaseContextProvider { static description: ContextProviderDescription = { @@ -46,7 +46,7 @@ class ProblemsContextProvider extends BaseContextProvider { ? [ { description: "Problems in current file", - content: `There are no problems found in the open file.`, + content: "There are no problems found in the open file.", name: "No problems found", }, ] diff --git a/core/context/providers/SearchContextProvider.ts b/core/context/providers/SearchContextProvider.ts index 9760d14de..bc44964ac 100644 --- a/core/context/providers/SearchContextProvider.ts +++ b/core/context/providers/SearchContextProvider.ts @@ -1,9 +1,9 @@ -import { BaseContextProvider } from ".."; import { ContextItem, ContextProviderDescription, ContextProviderExtras, -} from "../.."; +} from "../../index.js"; +import { BaseContextProvider } from "../index.js"; class SearchContextProvider extends BaseContextProvider { static description: ContextProviderDescription = { @@ -11,6 +11,7 @@ class SearchContextProvider extends BaseContextProvider { displayTitle: "Search", description: "Use ripgrep to exact search the workspace", type: "query", + renderInlineAs: "", }; async getContextItems( diff --git a/core/context/providers/TerminalContextProvider.ts b/core/context/providers/TerminalContextProvider.ts index 67e5b5957..353ca0457 100644 --- a/core/context/providers/TerminalContextProvider.ts +++ b/core/context/providers/TerminalContextProvider.ts @@ -1,9 +1,9 @@ -import { BaseContextProvider } from ".."; import { ContextItem, ContextProviderDescription, ContextProviderExtras, -} from "../.."; +} from "../../index.js"; +import { BaseContextProvider } from "../index.js"; class TerminalContextProvider extends BaseContextProvider { static description: ContextProviderDescription = { @@ -17,6 +17,11 @@ class TerminalContextProvider extends BaseContextProvider { query: string, extras: ContextProviderExtras, ): Promise { + if ((await extras.ide.getIdeInfo()).ideType === "jetbrains") { + throw new Error( + "The terminal context provider is not currently supported in JetBrains IDEs", + ); + } const content = await extras.ide.getTerminalContents(); return [ { diff --git a/core/context/providers/URLContextProvider.ts b/core/context/providers/URLContextProvider.ts new file mode 100644 index 000000000..2e864fbb9 --- /dev/null +++ b/core/context/providers/URLContextProvider.ts @@ -0,0 +1,54 @@ +import { Readability } from "@mozilla/readability"; +import { JSDOM } from "jsdom"; +import { NodeHtmlMarkdown } from "node-html-markdown"; +import { BaseContextProvider } from "../index.js"; +import { + ContextItem, + ContextProviderDescription, + ContextProviderExtras, +} from "../../index.js"; + +class URLContextProvider extends BaseContextProvider { + static description: ContextProviderDescription = { + title: "url", + displayTitle: "URL", + description: "Reference a webpage at a given URL", + type: "query", + }; + + async getContextItems( + query: string, + extras: ContextProviderExtras, + ): Promise { + try { + const url = new URL(query); + const resp = await extras.fetch(url); + const html = await resp.text(); + + const dom = new JSDOM(html); + let reader = new Readability(dom.window.document); + let article = reader.parse(); + const content = article?.content || ""; + const markdown = NodeHtmlMarkdown.translate( + content, + {}, + undefined, + undefined, + ); + + const title = article?.title || url.pathname; + return [ + { + description: title, + content: markdown, + name: title, + }, + ]; + } catch (e) { + console.log(e); + return []; + } + } +} + +export default URLContextProvider; diff --git a/core/context/providers/index.ts b/core/context/providers/index.ts index 15f444648..72c47f044 100644 --- a/core/context/providers/index.ts +++ b/core/context/providers/index.ts @@ -1,25 +1,34 @@ -import { BaseContextProvider } from ".."; -import { ContextProviderName } from "../.."; -import CodeContextProvider from "./CodeContextProvider"; -import CodebaseContextProvider from "./CodebaseContextProvider"; -import DatabaseContextProvider from "./DatabaseContextProvider"; -import DiffContextProvider from "./DiffContextProvider"; -import DocsContextProvider from "./DocsContextProvider"; -import FileTreeContextProvider from "./FileTreeContextProvider"; -import FolderContextProvider from "./FolderContextProvider"; -import GitHubIssuesContextProvider from "./GitHubIssuesContextProvider"; -import GitLabMergeRequestContextProvider from "./GitLabMergeRequestContextProvider"; -import GoogleContextProvider from "./GoogleContextProvider"; -import HttpContextProvider from "./HttpContextProvider"; -import JiraIssuesContextProvider from "./JiraIssuesContextProvider"; -import LocalsProvider from "./LocalsProvider"; -import OSContextProvider from "./OSContextProvider"; -import OpenFilesContextProvider from "./OpenFilesContextProvider"; -import PostgresContextProvider from "./PostgresContextProvider"; -import ProblemsContextProvider from "./ProblemsContextProvider"; -import SearchContextProvider from "./SearchContextProvider"; -import TerminalContextProvider from "./TerminalContextProvider"; +import { ContextProviderName } from "../../index.js"; +import { BaseContextProvider } from "../index.js"; +import CodeContextProvider from "./CodeContextProvider.js"; +import CodebaseContextProvider from "./CodebaseContextProvider.js"; +import CurrentFileContextProvider from "./CurrentFileContextProvider.js"; +import DatabaseContextProvider from "./DatabaseContextProvider.js"; +import DiffContextProvider from "./DiffContextProvider.js"; +import DocsContextProvider from "./DocsContextProvider.js"; +import FileTreeContextProvider from "./FileTreeContextProvider.js"; +import FolderContextProvider from "./FolderContextProvider.js"; +import GitHubIssuesContextProvider from "./GitHubIssuesContextProvider.js"; +import GitLabMergeRequestContextProvider from "./GitLabMergeRequestContextProvider.js"; +import GoogleContextProvider from "./GoogleContextProvider.js"; +import HttpContextProvider from "./HttpContextProvider.js"; +import JiraIssuesContextProvider from "./JiraIssuesContextProvider/index.js"; +import LocalsProvider from "./LocalsProvider.js"; +import OSContextProvider from "./OSContextProvider.js"; +import OpenFilesContextProvider from "./OpenFilesContextProvider.js"; +import PostgresContextProvider from "./PostgresContextProvider.js"; +import ProblemsContextProvider from "./ProblemsContextProvider.js"; +import SearchContextProvider from "./SearchContextProvider.js"; +import TerminalContextProvider from "./TerminalContextProvider.js"; +import URLContextProvider from "./URLContextProvider.js"; +/** + * Note: We are currently omitting the following providers due to bugs: + * - `CodeOutlineContextProvider` + * - `CodeHighlightsContextProvider` + * + * See this issue for details: https://github.com/continuedev/continue/issues/1365 + */ const Providers: (typeof BaseContextProvider)[] = [ DiffContextProvider, FileTreeContextProvider, @@ -36,12 +45,12 @@ const Providers: (typeof BaseContextProvider)[] = [ FolderContextProvider, DocsContextProvider, GitLabMergeRequestContextProvider, - // CodeHighlightsContextProvider, - // CodeOutlineContextProvider, JiraIssuesContextProvider, PostgresContextProvider, DatabaseContextProvider, CodeContextProvider, + CurrentFileContextProvider, + URLContextProvider, ]; export function contextProviderClassFromName( diff --git a/core/context/rerankers/cohere.ts b/core/context/rerankers/cohere.ts index c6de4c7c9..7a0dcf2dc 100644 --- a/core/context/rerankers/cohere.ts +++ b/core/context/rerankers/cohere.ts @@ -44,4 +44,4 @@ export class CohereReranker implements Reranker { const results = data.results.sort((a: any, b: any) => a.index - b.index); return results.map((result: any) => result.relevance_score); } -} \ No newline at end of file +} diff --git a/core/context/rerankers/freeTrial.ts b/core/context/rerankers/freeTrial.ts index 4e6200822..5739a558f 100644 --- a/core/context/rerankers/freeTrial.ts +++ b/core/context/rerankers/freeTrial.ts @@ -1,17 +1,20 @@ import fetch from "node-fetch"; -import { Chunk, Reranker } from "../.."; -import { getHeaders } from "../../continueServer/stubs/headers"; -import { SERVER_URL } from "../../util/parameters"; +import { getHeaders } from "../../continueServer/stubs/headers.js"; +import { constants } from "../../deploy/constants.js"; +import { Chunk, Reranker } from "../../index.js"; export class FreeTrialReranker implements Reranker { name = "free-trial"; async rerank(query: string, chunks: Chunk[]): Promise { - const resp = await fetch(new URL("rerank", SERVER_URL), { + if (chunks.length === 0) { + return []; + } + const resp = await fetch(new URL("rerank", constants.a), { method: "POST", headers: { "Content-Type": "application/json", - ...getHeaders(), + ...(await getHeaders()), }, body: JSON.stringify({ query, diff --git a/core/context/rerankers/llm.ts b/core/context/rerankers/llm.ts index f108d5a62..5396c8d9b 100644 --- a/core/context/rerankers/llm.ts +++ b/core/context/rerankers/llm.ts @@ -1,5 +1,5 @@ -import { Chunk, ILLM, Reranker } from "../.."; -import { getBasename } from "../../util"; +import { Chunk, ILLM, Reranker } from "../../index.js"; +import { getBasename } from "../../util/index.js"; const RERANK_PROMPT = ( query: string, @@ -64,7 +64,7 @@ export class LLMReranker implements Reranker { return 0.0; } - let answer = completion + const answer = completion .trim() .toLowerCase() .replace(/"/g, "") @@ -72,14 +72,14 @@ export class LLMReranker implements Reranker { if (answer === "yes") { return 1.0; - } else if (answer === "no") { - return 0.0; - } else { - console.warn( - `Unexpected response from single token reranker: "${answer}". Expected "yes" or "no".`, - ); + } + if (answer === "no") { return 0.0; } + console.warn( + `Unexpected response from single token reranker: "${answer}". Expected "yes" or "no".`, + ); + return 0.0; } async rerank(query: string, chunks: Chunk[]): Promise { diff --git a/core/context/rerankers/voyage.ts b/core/context/rerankers/voyage.ts index cf82eb5e2..e2a969350 100644 --- a/core/context/rerankers/voyage.ts +++ b/core/context/rerankers/voyage.ts @@ -1,4 +1,5 @@ -import { Chunk, Reranker } from "../.."; +import fetch from "node-fetch"; +import { Chunk, Reranker } from "../../index.js"; export class VoyageReranker implements Reranker { name = "voyage"; @@ -23,7 +24,7 @@ export class VoyageReranker implements Reranker { model: this.params.model ?? "rerank-lite-1", }), }); - const data = await resp.json(); + const data: any = await resp.json(); const results = data.data.sort((a: any, b: any) => a.index - b.index); return results.map((result: any) => result.relevance_score); } diff --git a/core/context/retrieval/fullTextSearch.ts b/core/context/retrieval/fullTextSearch.ts index 34ec2e0a0..3e22db302 100644 --- a/core/context/retrieval/fullTextSearch.ts +++ b/core/context/retrieval/fullTextSearch.ts @@ -1,5 +1,6 @@ -import { BranchAndDir, Chunk } from "../.."; -import { FullTextSearchCodebaseIndex } from "../../indexing/FullTextSearch"; +import { BranchAndDir, Chunk } from "../../index.js"; +import { FullTextSearchCodebaseIndex } from "../../indexing/FullTextSearch.js"; + export async function retrieveFts( query: string, n: number, diff --git a/core/context/retrieval/pipelines/BaseRetrievalPipeline.ts b/core/context/retrieval/pipelines/BaseRetrievalPipeline.ts new file mode 100644 index 000000000..b993aea07 --- /dev/null +++ b/core/context/retrieval/pipelines/BaseRetrievalPipeline.ts @@ -0,0 +1,59 @@ +import { + BranchAndDir, + Chunk, + EmbeddingsProvider, + IDE, + Reranker, +} from "../../.."; +import { LanceDbIndex } from "../../../indexing/LanceDbIndex"; +import { retrieveFts } from "../fullTextSearch"; + +export interface RetrievalPipelineOptions { + ide: IDE; + embeddingsProvider: EmbeddingsProvider; + reranker: Reranker | undefined; + + input: string; + nRetrieve: number; + nFinal: number; + tags: BranchAndDir[]; + filterDirectory?: string; +} + +export interface IRetrievalPipeline { + run(options: RetrievalPipelineOptions): Promise; +} + +export default class BaseRetrievalPipeline implements IRetrievalPipeline { + private lanceDbIndex: LanceDbIndex; + constructor(protected readonly options: RetrievalPipelineOptions) { + this.lanceDbIndex = new LanceDbIndex(options.embeddingsProvider, (path) => + options.ide.readFile(path), + ); + } + + protected async retrieveFts(input: string, n: number): Promise { + return retrieveFts( + input, + n, + this.options.tags, + this.options.filterDirectory, + ); + } + + protected async retrieveEmbeddings( + input: string, + n: number, + ): Promise { + return this.lanceDbIndex.retrieve( + input, + n, + this.options.tags, + this.options.filterDirectory, + ); + } + + run(): Promise { + throw new Error("Not implemented"); + } +} diff --git a/core/context/retrieval/pipelines/NoRerankerRetrievalPipeline.ts b/core/context/retrieval/pipelines/NoRerankerRetrievalPipeline.ts new file mode 100644 index 000000000..7ad1819d5 --- /dev/null +++ b/core/context/retrieval/pipelines/NoRerankerRetrievalPipeline.ts @@ -0,0 +1,26 @@ +import { Chunk } from "../../.."; +import { deduplicateChunks } from "../util"; +import BaseRetrievalPipeline from "./BaseRetrievalPipeline"; + +export default class NoRerankerRetrievalPipeline extends BaseRetrievalPipeline { + async run(): Promise { + const { input } = this.options; + + // Get all retrieval results + const retrievalResults: Chunk[] = []; + + // Full-text search + const ftsResults = await this.retrieveFts(input, this.options.nFinal / 2); + retrievalResults.push(...ftsResults); + + // Embeddings + const embeddingResults = await this.retrieveEmbeddings( + input, + this.options.nFinal / 2, + ); + retrievalResults.push(...embeddingResults); + + const finalResults: Chunk[] = deduplicateChunks(retrievalResults); + return finalResults; + } +} diff --git a/core/context/retrieval/pipelines/RerankerRetrievalPipeline.ts b/core/context/retrieval/pipelines/RerankerRetrievalPipeline.ts new file mode 100644 index 000000000..47b0f1f9d --- /dev/null +++ b/core/context/retrieval/pipelines/RerankerRetrievalPipeline.ts @@ -0,0 +1,125 @@ +import { Chunk } from "../../.."; +import { RETRIEVAL_PARAMS } from "../../../util/parameters"; +import { deduplicateChunks } from "../util"; +import BaseRetrievalPipeline from "./BaseRetrievalPipeline"; + +export default class RerankerRetrievalPipeline extends BaseRetrievalPipeline { + private async _retrieveInitial(): Promise { + const { input, nRetrieve } = this.options; + + // Get all retrieval results + const retrievalResults: Chunk[] = []; + + // Full-text search + const ftsResults = await this.retrieveFts(input, nRetrieve / 2); + retrievalResults.push(...ftsResults); + + // Embeddings + const embeddingResults = await this.retrieveEmbeddings(input, nRetrieve); + retrievalResults.push( + ...embeddingResults.slice(0, nRetrieve - ftsResults.length), + ); + + const results: Chunk[] = deduplicateChunks(retrievalResults); + return results; + } + + private async _rerank(input: string, chunks: Chunk[]): Promise { + if (!this.options.reranker) { + throw new Error("No reranker provided"); + } + + let scores: number[] = await this.options.reranker.rerank(input, chunks); + + // Filter out low-scoring results + let results = chunks; + // let results = chunks.filter( + // (_, i) => scores[i] >= RETRIEVAL_PARAMS.rerankThreshold, + // ); + // scores = scores.filter( + // (score) => score >= RETRIEVAL_PARAMS.rerankThreshold, + // ); + + results.sort( + (a, b) => scores[results.indexOf(a)] - scores[results.indexOf(b)], + ); + results = results.slice(-this.options.nFinal); + return results; + } + + private async _expandWithEmbeddings(chunks: Chunk[]): Promise { + const topResults = chunks.slice( + -RETRIEVAL_PARAMS.nResultsToExpandWithEmbeddings, + ); + + const expanded = await Promise.all( + topResults.map(async (chunk, i) => { + const results = await this.retrieveEmbeddings( + chunk.content, + RETRIEVAL_PARAMS.nEmbeddingsExpandTo, + ); + return results; + }), + ); + return expanded.flat(); + } + + private async _expandRankedResults(chunks: Chunk[]): Promise { + let results: Chunk[] = []; + + const embeddingsResults = await this._expandWithEmbeddings(chunks); + results.push(...embeddingsResults); + + return results; + } + + async run(): Promise { + // Retrieve initial results + let results = await this._retrieveInitial(); + + // Rerank + const { input } = this.options; + results = await this._rerank(input, results); + + // // // Expand top reranked results + // const expanded = await this._expandRankedResults(results); + // results.push(...expanded); + + // // De-duplicate + // results = deduplicateChunks(results); + + // // Rerank again + // results = await this._rerank(input, results); + + // TODO: stitch together results + + return results; + } +} + +// Source: expansion with code graph +// consider doing this after reranking? Or just having a lower reranking threshold +// This is VS Code only until we use PSI for JetBrains or build our own general solution +// TODO: Need to pass in the expandSnippet function as a function argument +// because this import causes `tsc` to fail +// if ((await extras.ide.getIdeInfo()).ideType === "vscode") { +// const { expandSnippet } = await import( +// "../../../extensions/vscode/src/util/expandSnippet" +// ); +// let expansionResults = ( +// await Promise.all( +// extras.selectedCode.map(async (rif) => { +// return expandSnippet( +// rif.filepath, +// rif.range.start.line, +// rif.range.end.line, +// extras.ide, +// ); +// }), +// ) +// ).flat() as Chunk[]; +// retrievalResults.push(...expansionResults); +// } + +// Source: Open file exact match +// Source: Class/function name exact match diff --git a/core/context/retrieval/retrieval.ts b/core/context/retrieval/retrieval.ts index 63ed4a70d..3d7f08383 100644 --- a/core/context/retrieval/retrieval.ts +++ b/core/context/retrieval/retrieval.ts @@ -1,19 +1,13 @@ -import { BranchAndDir, Chunk, ContextItem, ContextProviderExtras } from "../.."; -import { LanceDbIndex } from "../../indexing/LanceDbIndex"; +import { + BranchAndDir, + ContextItem, + ContextProviderExtras, +} from "../../index.js"; -import { deduplicateArray, getBasename } from "../../util"; -import { RETRIEVAL_PARAMS } from "../../util/parameters"; -import { retrieveFts } from "./fullTextSearch"; - -function deduplicateChunks(chunks: Chunk[]): Chunk[] { - return deduplicateArray(chunks, (a, b) => { - return ( - a.filepath === b.filepath && - a.startLine === b.startLine && - a.endLine === b.endLine - ); - }); -} +import { getRelativePath } from "../../util/index.js"; +import { RetrievalPipelineOptions } from "./pipelines/BaseRetrievalPipeline.js"; +import NoRerankerRetrievalPipeline from "./pipelines/NoRerankerRetrievalPipeline.js"; +import RerankerRetrievalPipeline from "./pipelines/RerankerRetrievalPipeline.js"; export async function retrieveContextItemsFromEmbeddings( extras: ContextProviderExtras, @@ -24,12 +18,24 @@ export async function retrieveContextItemsFromEmbeddings( return []; } - const nFinal = options?.nFinal || RETRIEVAL_PARAMS.nFinal; + // transformers.js not supported in JetBrains IDEs right now + if ( + extras.embeddingsProvider.id === "all-MiniLM-L6-v2" && + (await extras.ide.getIdeInfo()).ideType === "jetbrains" + ) { + throw new Error( + "The transformers.js context provider is not currently supported in JetBrains. For now, you can use Ollama to set up local embeddings, or use our 'free-trial' embeddings provider. See here to learn more: https://docs.continue.dev/walkthroughs/codebase-embeddings#embeddings-providers", + ); + } + + // Fill half of the context length, up to a max of 100 snippets + const contextLength = extras.llm.contextLength; + const tokensPerSnippet = 512; + const nFinal = + options?.nFinal ?? Math.min(50, contextLength / tokensPerSnippet / 2); const useReranking = extras.reranker !== undefined; const nRetrieve = - useReranking === false - ? nFinal - : options?.nRetrieve || RETRIEVAL_PARAMS.nRetrieve; + useReranking === false ? nFinal : options?.nRetrieve || 2 * nFinal; // Get tags to retrieve for const workspaceDirs = await extras.ide.getWorkspaceDirs(); @@ -51,78 +57,21 @@ export async function retrieveContextItemsFromEmbeddings( branch: branches[i], })); - // Get all retrieval results - const retrievalResults: Chunk[] = []; - - // Source: Full-text search - let ftsResults = await retrieveFts( - extras.fullInput, - nRetrieve / 2, - tags, - filterDirectory, - ); - retrievalResults.push(...ftsResults); - - // Source: expansion with code graph - // consider doing this after reranking? Or just having a lower reranking threshold - // This is VS Code only until we use PSI for JetBrains or build our own general solution - if ((await extras.ide.getIdeInfo()).ideType === "vscode") { - const { expandSnippet } = await import( - "../../../extensions/vscode/src/util/expandSnippet" - ); - let expansionResults = ( - await Promise.all( - extras.selectedCode.map(async (rif) => { - return expandSnippet( - rif.filepath, - rif.range.start.line, - rif.range.end.line, - extras.ide, - ); - }), - ) - ).flat() as Chunk[]; - retrievalResults.push(...expansionResults); - } - - // Source: Open file exact match - // Source: Class/function name exact match - - // Source: Embeddings - const lanceDbIndex = new LanceDbIndex(extras.embeddingsProvider, (path) => - extras.ide.readFile(path), - ); - let vecResults = await lanceDbIndex.retrieve( - extras.fullInput, + const pipelineType = useReranking + ? RerankerRetrievalPipeline + : NoRerankerRetrievalPipeline; + const pipelineOptions: RetrievalPipelineOptions = { + nFinal, nRetrieve, tags, + embeddingsProvider: extras.embeddingsProvider, + reranker: extras.reranker, filterDirectory, - ); - retrievalResults.push(...vecResults); - - // De-duplicate - let results: Chunk[] = deduplicateChunks(retrievalResults); - - // Re-rank - if (useReranking && extras.reranker) { - let scores: number[] = await extras.reranker.rerank( - extras.fullInput, - results, - ); - - // Filter out low-scoring results - results = results.filter( - (_, i) => scores[i] >= RETRIEVAL_PARAMS.rerankThreshold, - ); - scores = scores.filter( - (score) => score >= RETRIEVAL_PARAMS.rerankThreshold, - ); - - results.sort( - (a, b) => scores[results.indexOf(b)] - scores[results.indexOf(a)], - ); - results = results.slice(0, nFinal); - } + ide: extras.ide, + input: extras.fullInput, + }; + const pipeline = new pipelineType(pipelineOptions); + const results = await pipeline.run(); if (results.length === 0) { throw new Error( @@ -132,7 +81,7 @@ export async function retrieveContextItemsFromEmbeddings( return [ ...results.map((r) => { - const name = `${getBasename(r.filepath)} (${r.startLine}-${r.endLine})`; + const name = `${getRelativePath(r.filepath, workspaceDirs)} (${r.startLine}-${r.endLine})`; const description = `${r.filepath} (${r.startLine}-${r.endLine})`; return { name, diff --git a/core/context/retrieval/util.ts b/core/context/retrieval/util.ts new file mode 100644 index 000000000..e783a2ca0 --- /dev/null +++ b/core/context/retrieval/util.ts @@ -0,0 +1,12 @@ +import { Chunk } from "../.."; +import { deduplicateArray } from "../../util"; + +export function deduplicateChunks(chunks: Chunk[]): Chunk[] { + return deduplicateArray(chunks, (a, b) => { + return ( + a.filepath === b.filepath && + a.startLine === b.startLine && + a.endLine === b.endLine + ); + }); +} diff --git a/core/continueServer/interface.ts b/core/continueServer/interface.ts index a306b03ae..3c67aa25e 100644 --- a/core/continueServer/interface.ts +++ b/core/continueServer/interface.ts @@ -1,4 +1,4 @@ -import { Chunk } from ".."; +import { Chunk } from "../index.js"; export interface EmbeddingsCacheChunk { vector: number[]; @@ -19,6 +19,9 @@ export interface EmbeddingsCacheResponse { } export interface IContinueServerClient { + connected: boolean; + url: URL | undefined; + getUserToken(): string | undefined; getConfig(): Promise<{ configJson: string; configJs: string }>; getFromIndexCache( keys: string[], diff --git a/core/continueServer/stubs/client.ts b/core/continueServer/stubs/client.ts index cfdde054c..f9377b1af 100644 --- a/core/continueServer/stubs/client.ts +++ b/core/continueServer/stubs/client.ts @@ -1,17 +1,50 @@ -import { +import type { ArtifactType, EmbeddingsCacheResponse, IContinueServerClient, -} from "../interface"; +} from "../interface.js"; export class ContinueServerClient implements IContinueServerClient { + url: URL | undefined; + constructor( - private readonly serverUrl: string, - private readonly userToken: Promise, - ) {} + serverUrl: string | undefined, + private readonly userToken: string | undefined, + ) { + try { + this.url = + typeof serverUrl !== "string" || serverUrl === "" + ? undefined + : new URL(serverUrl); + } catch (e) { + console.warn("Invalid Continue server url", e); + this.url = undefined; + } + } + + getUserToken(): string | undefined { + return this.userToken; + } + + get connected(): boolean { + return this.url !== undefined && this.userToken !== undefined; + } public async getConfig(): Promise<{ configJson: string; configJs: string }> { - throw new Error("Not Implemented"); + const userToken = await this.userToken; + const response = await fetch(new URL("sync", this.url).href, { + method: "GET", + headers: { + Authorization: `Bearer ${userToken}`, + }, + }); + if (!response.ok) { + throw new Error( + `Failed to sync remote config (HTTP ${response.status}): ${response.statusText}`, + ); + } + const data = await response.json(); + return data; } public async getFromIndexCache( @@ -19,6 +52,68 @@ export class ContinueServerClient implements IContinueServerClient { artifactId: T, repoName: string | undefined, ): Promise> { - return { files: {} }; + if (repoName === undefined) { + console.warn( + "No repo name provided to getFromIndexCache, this may cause no results to be returned.", + ); + } + + if (keys.length === 0) { + return { + files: {}, + }; + } + const url = new URL("indexing/cache", this.url); + + try { + const response = await fetch(url, { + method: "POST", + headers: { + Authorization: `Bearer ${await this.userToken}`, + }, + body: JSON.stringify({ + keys, + artifactId, + repo: repoName ?? "NONE", + }), + }); + + if (!response.ok) { + const text = await response.text(); + console.warn( + `Failed to retrieve from remote cache (HTTP ${response.status}): ${text}`, + ); + return { + files: {}, + }; + } + + const data = await response.json(); + return data; + } catch (e) { + console.warn("Failed to retrieve from remote cache", e); + return { + files: {}, + }; + } + } + + public async sendFeedback(feedback: string, data: string): Promise { + if (!this.url) { + return; + } + + const url = new URL("feedback", this.url); + + const response = await fetch(url, { + method: "POST", + headers: { + Authorization: `Bearer ${await this.userToken}`, + }, + body: JSON.stringify({ + feedback, + data, + }), + }); } } diff --git a/core/continueServer/stubs/headers.ts b/core/continueServer/stubs/headers.ts index f7bd60391..c735bf98f 100644 --- a/core/continueServer/stubs/headers.ts +++ b/core/continueServer/stubs/headers.ts @@ -1,3 +1,13 @@ -export function getHeaders() { - return {}; +import { constants, getTimestamp } from "../../deploy/constants"; +import { Telemetry } from "../../util/logging"; + +export async function getHeaders() { + return { + key: constants.c, + timestamp: getTimestamp(), + v: "1", + extensionVersion: Telemetry.extensionVersion ?? "0.0.0", + os: Telemetry.os ?? "Unknown", + uniqueId: Telemetry.uniqueId ?? "None", + }; } diff --git a/core/control-plane/TeamAnalytics.ts b/core/control-plane/TeamAnalytics.ts new file mode 100644 index 000000000..96fafbbf7 --- /dev/null +++ b/core/control-plane/TeamAnalytics.ts @@ -0,0 +1,48 @@ +import { Analytics } from "@continuedev/config-types"; +import os from "node:os"; + +export class TeamAnalytics { + static client: any = undefined; + static uniqueId = "NOT_UNIQUE"; + static os: string | undefined = undefined; + static extensionVersion: string | undefined = undefined; + + static async capture(event: string, properties: { [key: string]: any }) { + TeamAnalytics.client?.capture({ + distinctId: TeamAnalytics.uniqueId, + event, + properties: { + ...properties, + os: TeamAnalytics.os, + extensionVersion: TeamAnalytics.extensionVersion, + }, + }); + } + + static shutdownPosthogClient() { + TeamAnalytics.client?.shutdown(); + } + + static async setup( + config: Analytics, + uniqueId: string, + extensionVersion: string, + ) { + TeamAnalytics.uniqueId = uniqueId; + TeamAnalytics.os = os.platform(); + TeamAnalytics.extensionVersion = extensionVersion; + + if (!config || !config.clientKey || !config.url) { + TeamAnalytics.client = undefined; + } else { + try { + const { PostHog } = await import("posthog-node"); + TeamAnalytics.client = new PostHog(config.clientKey, { + host: config.url, + }); + } catch (e) { + console.error(`Failed to setup telemetry: ${e}`); + } + } + } +} diff --git a/core/control-plane/client.ts b/core/control-plane/client.ts new file mode 100644 index 000000000..f254d13d0 --- /dev/null +++ b/core/control-plane/client.ts @@ -0,0 +1,92 @@ +import { ConfigJson } from "@continuedev/config-types"; +import fetch, { RequestInit, Response } from "node-fetch"; +import { ModelDescription } from ".."; + +export interface ControlPlaneSessionInfo { + accessToken: string; + account: { + label: string; + id: string; + }; +} + +export interface ControlPlaneWorkspace { + id: string; + name: string; + settings: ConfigJson; +} + +export interface ControlPlaneModelDescription extends ModelDescription {} + +// export const CONTROL_PLANE_URL = "http://localhost:3001"; +export const CONTROL_PLANE_URL = + "https://control-plane-api-service-i3dqylpbqa-uc.a.run.app"; + +export class ControlPlaneClient { + private static URL = CONTROL_PLANE_URL; + private static ACCESS_TOKEN_VALID_FOR_MS = 1000 * 60 * 5; // 5 minutes + + private lastAccessTokenRefresh = 0; + + constructor( + private readonly sessionInfoPromise: Promise< + ControlPlaneSessionInfo | undefined + >, + ) {} + + get userId(): Promise { + return this.sessionInfoPromise.then( + (sessionInfo) => sessionInfo?.account.id, + ); + } + + async getAccessToken(): Promise { + return (await this.sessionInfoPromise)?.accessToken; + } + + private async request(path: string, init: RequestInit): Promise { + const accessToken = await this.getAccessToken(); + if (!accessToken) { + throw new Error("No access token"); + } + const resp = await fetch(new URL(path, ControlPlaneClient.URL).toString(), { + ...init, + headers: { + ...init.headers, + Authorization: `Bearer ${accessToken}`, + }, + }); + + if (!resp.ok) { + throw new Error( + `Control plane request failed: ${resp.status} ${await resp.text()}`, + ); + } + + return resp; + } + + public async listWorkspaces(): Promise { + const userId = await this.userId; + if (!userId) { + return []; + } + + const resp = await this.request(`/workspaces`, { + method: "GET", + }); + return (await resp.json()) as any; + } + + async getSettingsForWorkspace(workspaceId: string): Promise { + const userId = await this.userId; + if (!userId) { + throw new Error("No user id"); + } + + const resp = await this.request(`/workspaces/${workspaceId}`, { + method: "GET", + }); + return ((await resp.json()) as any).settings; + } +} diff --git a/core/control-plane/schema.ts b/core/control-plane/schema.ts new file mode 100644 index 000000000..5557eff13 --- /dev/null +++ b/core/control-plane/schema.ts @@ -0,0 +1,128 @@ +import { z } from "zod"; + +const modelDescriptionSchema = z.object({ + title: z.string(), + provider: z.enum([ + "openai", + "anthropic", + "cohere", + "ollama", + "huggingface-tgi", + "huggingface-inference-api", + "replicate", + "gemini", + "mistral", + "bedrock", + "cloudflare", + "azure", + ]), + model: z.string(), + apiKey: z.string().optional(), + apiBase: z.string().optional(), + contextLength: z.number().optional(), + template: z + .enum([ + "llama2", + "alpaca", + "zephyr", + "phi2", + "phind", + "anthropic", + "chatml", + "none", + "openchat", + "deepseek", + "xwin-coder", + "neural-chat", + "codellama-70b", + "llava", + "gemma", + "llama3", + ]) + .optional(), + completionOptions: z + .object({ + temperature: z.number().optional(), + topP: z.number().optional(), + topK: z.number().optional(), + minP: z.number().optional(), + presencePenalty: z.number().optional(), + frequencyPenalty: z.number().optional(), + mirostat: z.number().optional(), + stop: z.array(z.string()).optional(), + maxTokens: z.number().optional(), + numThreads: z.number().optional(), + keepAlive: z.number().optional(), + raw: z.boolean().optional(), + stream: z.boolean().optional(), + }) + .optional(), + systemMessage: z.string().optional(), + requestOptions: z + .object({ + timeout: z.number().optional(), + verifySsl: z.boolean().optional(), + caBundlePath: z.union([z.string(), z.array(z.string())]).optional(), + proxy: z.string().optional(), + headers: z.record(z.string()).optional(), + extraBodyProperties: z.record(z.any()).optional(), + noProxy: z.array(z.string()).optional(), + }) + .optional(), + promptTemplates: z.record(z.string()).optional(), +}); + +const embeddingsProviderSchema = z.object({ + provider: z.enum([ + "transformers.js", + "ollama", + "openai", + "cohere", + "free-trial", + "gemini", + ]), + apiBase: z.string().optional(), + apiKey: z.string().optional(), + model: z.string().optional(), + engine: z.string().optional(), + apiType: z.string().optional(), + apiVersion: z.string().optional(), + requestOptions: z + .object({ + timeout: z.number().optional(), + verifySsl: z.boolean().optional(), + caBundlePath: z.union([z.string(), z.array(z.string())]).optional(), + proxy: z.string().optional(), + headers: z.record(z.string()).optional(), + extraBodyProperties: z.record(z.any()).optional(), + noProxy: z.array(z.string()).optional(), + }) + .optional(), +}); + +const rerankerSchema = z.object({ + name: z.enum(["cohere", "voyage", "llm"]), + params: z.record(z.any()).optional(), +}); + +const analyticsSchema = z.object({ + url: z.string().optional(), + clientKey: z.string().optional(), +}); + +export type ControlPlaneAnalytics = z.infer; + +const devDataSchema = z.object({ + url: z.string().optional(), +}); + +export const controlPlaneSettingsSchema = z.object({ + models: z.array(modelDescriptionSchema), + tabAutocompleteModel: modelDescriptionSchema, + embeddingsModel: embeddingsProviderSchema, + reranker: rerankerSchema, + analytics: analyticsSchema, + devData: devDataSchema, +}); + +export type ControlPlaneSettings = z.infer; diff --git a/core/core.ts b/core/core.ts new file mode 100644 index 000000000..2c33dee98 --- /dev/null +++ b/core/core.ts @@ -0,0 +1,599 @@ +import { v4 as uuidv4 } from "uuid"; +import type { + ContextItemId, + IDE, + IndexingProgressUpdate, + SiteIndexingConfig, +} from "."; +import { CompletionProvider } from "./autocomplete/completionProvider.js"; +import { ConfigHandler } from "./config/ConfigHandler.js"; +import { IConfigHandler } from "./config/IConfigHandler"; +import { + setupApiKeysMode, + setupFreeTrialMode, + setupLocalAfterFreeTrial, + setupLocalMode, +} from "./config/onboarding.js"; +import { createNewPromptFile } from "./config/promptFile.js"; +import { addModel, addOpenAIKey, deleteModel } from "./config/util.js"; +import { ContinueServerClient } from "./continueServer/stubs/client.js"; +import { CodebaseIndexer, PauseToken } from "./indexing/CodebaseIndexer.js"; +import { DocsService } from "./indexing/docs/DocsService"; +import TransformersJsEmbeddingsProvider from "./indexing/embeddings/TransformersJsEmbeddingsProvider.js"; +import Ollama from "./llm/llms/Ollama.js"; +import type { FromCoreProtocol, ToCoreProtocol } from "./protocol/index"; +import { GlobalContext } from "./util/GlobalContext.js"; +import { logDevData } from "./util/devdata.js"; +import { DevDataSqliteDb } from "./util/devdataSqlite.js"; +import { fetchwithRequestOptions } from "./util/fetchWithOptions.js"; +import historyManager from "./util/history.js"; +import type { IMessenger, Message } from "./util/messenger"; +import { editConfigJson } from "./util/paths.js"; +import { Telemetry } from "./util/logging.js"; +import { streamDiffLines } from "./util/verticalEdit.js"; + +export class Core { + // implements IMessenger + configHandler: IConfigHandler; + codebaseIndexerPromise: Promise; + completionProvider: CompletionProvider; + continueServerClientPromise: Promise; + indexingState: IndexingProgressUpdate; + private globalContext = new GlobalContext(); + private docsService = DocsService.getInstance(); + private readonly indexingPauseToken = new PauseToken( + this.globalContext.get("indexingPaused") === true, + ); + + private abortedMessageIds: Set = new Set(); + + private selectedModelTitle: string | undefined; + + private async config() { + return this.configHandler.loadConfig(); + } + + private async getSelectedModel() { + return await this.configHandler.llmFromTitle(this.selectedModelTitle); + } + + invoke( + messageType: T, + data: ToCoreProtocol[T][0], + ): ToCoreProtocol[T][1] { + return this.messenger.invoke(messageType, data); + } + + // TODO: It shouldn't actually need an IDE type, because this can happen + // through the messenger (it does in the case of any non-VS Code IDEs already) + constructor( + private readonly messenger: IMessenger, + private readonly ide: IDE, + private readonly onWrite: (text: string) => Promise = async () => {}, + ) { + this.indexingState = { status: "loading", desc: "loading", progress: 0 }; + const ideSettingsPromise = messenger.request("getIdeSettings", undefined); + this.configHandler = new ConfigHandler( + this.ide, + ideSettingsPromise, + this.onWrite, + ); + this.configHandler.onConfigUpdate( + (() => this.messenger.send("configUpdate", undefined)).bind(this), + ); + + // Codebase Indexer and ContinueServerClient depend on IdeSettings + let codebaseIndexerResolve: (_: any) => void | undefined; + this.codebaseIndexerPromise = new Promise( + async (resolve) => (codebaseIndexerResolve = resolve), + ); + + let continueServerClientResolve: (_: any) => void | undefined; + this.continueServerClientPromise = new Promise( + (resolve) => (continueServerClientResolve = resolve), + ); + + ideSettingsPromise.then((ideSettings) => { + const continueServerClient = new ContinueServerClient( + ideSettings.remoteConfigServerUrl, + ideSettings.userToken, + ); + continueServerClientResolve(continueServerClient); + + codebaseIndexerResolve( + new CodebaseIndexer( + this.configHandler, + this.ide, + this.indexingPauseToken, + continueServerClient, + ), + ); + this.ide + .getWorkspaceDirs() + .then((dirs) => this.refreshCodebaseIndex(dirs)); + }); + + const getLlm = async () => { + const config = await this.configHandler.loadConfig(); + const selected = this.globalContext.get("selectedTabAutocompleteModel"); + return ( + config.tabAutocompleteModels?.find( + (model) => model.title === selected, + ) ?? config.tabAutocompleteModels?.[0] + ); + }; + this.completionProvider = new CompletionProvider( + this.configHandler, + ide, + getLlm, + (e) => {}, + (..._) => Promise.resolve([]), + ); + + const on = this.messenger.on.bind(this.messenger); + + this.messenger.onError((err) => { + console.error(err); + this.messenger.request("errorPopup", { message: err.message }); + }); + + // New + on("update/modelChange", (msg) => { + this.selectedModelTitle = msg.data; + }); + + on("update/selectTabAutocompleteModel", async (msg) => { + this.globalContext.update("selectedTabAutocompleteModel", msg.data); + this.configHandler.reloadConfig(); + }); + + // Special + on("abort", (msg) => { + this.abortedMessageIds.add(msg.messageId); + }); + + on("ping", (msg) => { + if (msg.data !== "ping") { + throw new Error("ping message incorrect"); + } + return "pong"; + }); + + // History + on("history/list", (msg) => { + return historyManager.list(msg.data); + }); + on("history/delete", (msg) => { + historyManager.delete(msg.data.id); + }); + on("history/load", (msg) => { + return historyManager.load(msg.data.id); + }); + on("history/save", (msg) => { + historyManager.save(msg.data); + }); + + // Dev data + on("devdata/log", (msg) => { + logDevData(msg.data.tableName, msg.data.data); + }); + + // Edit config + on("config/addModel", (msg) => { + const model = msg.data.model; + addModel(model); + this.configHandler.reloadConfig(); + }); + on("config/addOpenAiKey", (msg) => { + addOpenAIKey(msg.data); + this.configHandler.reloadConfig(); + }); + on("config/deleteModel", (msg) => { + deleteModel(msg.data.title); + this.configHandler.reloadConfig(); + }); + on("config/newPromptFile", async (msg) => { + createNewPromptFile( + this.ide, + (await this.config()).experimental?.promptPath, + ); + this.configHandler.reloadConfig(); + }); + on("config/reload", (msg) => { + this.configHandler.reloadConfig(); + return this.configHandler.getSerializedConfig(); + }); + on("config/ideSettingsUpdate", (msg) => { + this.configHandler.updateIdeSettings(msg.data); + }); + + // Context providers + on("context/addDocs", async (msg) => { + const siteIndexingConfig: SiteIndexingConfig = { + startUrl: msg.data.startUrl, + rootUrl: msg.data.rootUrl, + title: msg.data.title, + maxDepth: msg.data.maxDepth, + faviconUrl: new URL("/favicon.ico", msg.data.rootUrl).toString(), + }; + + for await (const _ of this.docsService.indexAndAdd( + siteIndexingConfig, + new TransformersJsEmbeddingsProvider(), + )) { + } + this.ide.infoPopup(`Successfully indexed ${msg.data.title}`); + this.messenger.send("refreshSubmenuItems", undefined); + }); + on("context/removeDocs", async (msg) => { + const baseUrl = msg.data.baseUrl; + await this.docsService.delete(baseUrl); + this.messenger.send("refreshSubmenuItems", undefined); + }); + on("context/loadSubmenuItems", async (msg) => { + const config = await this.config(); + const items = config.contextProviders + ?.find((provider) => provider.description.title === msg.data.title) + ?.loadSubmenuItems({ + ide: this.ide, + fetch: (url, init) => + fetchwithRequestOptions(url, init, config.requestOptions), + }); + return items || []; + }); + on("context/getContextItems", async (msg) => { + const { name, query, fullInput, selectedCode } = msg.data; + const config = await this.config(); + const llm = await this.getSelectedModel(); + const provider = config.contextProviders?.find( + (provider) => provider.description.title === name, + ); + if (!provider) { + return []; + } + + try { + const id: ContextItemId = { + providerTitle: provider.description.title, + itemId: uuidv4(), + }; + const items = await provider.getContextItems(query, { + llm, + embeddingsProvider: config.embeddingsProvider, + fullInput, + ide, + selectedCode, + reranker: config.reranker, + fetch: (url, init) => + fetchwithRequestOptions(url, init, config.requestOptions), + }); + + Telemetry.capture("useContextProvider", { + name: provider.description.title, + }); + + return items.map((item) => ({ + ...item, + id, + })); + } catch (e) { + this.ide.errorPopup(`Error getting context items from ${name}: ${e}`); + return []; + } + }); + + on("config/getBrowserSerialized", (msg) => { + return this.configHandler.getSerializedConfig(); + }); + + async function* llmStreamChat( + configHandler: IConfigHandler, + abortedMessageIds: Set, + msg: Message, + ) { + const model = await configHandler.llmFromTitle(msg.data.title); + const gen = model.streamChat( + msg.data.messages, + msg.data.completionOptions, + ); + let next = await gen.next(); + while (!next.done) { + if (abortedMessageIds.has(msg.messageId)) { + abortedMessageIds.delete(msg.messageId); + next = await gen.return({ + completion: "", + prompt: "", + completionOptions: { + ...msg.data.completionOptions, + model: model.model, + }, + }); + break; + } + yield { content: next.value.content }; + next = await gen.next(); + } + + return { done: true, content: next.value }; + } + + on("llm/streamChat", (msg) => + llmStreamChat(this.configHandler, this.abortedMessageIds, msg), + ); + + async function* llmStreamComplete( + configHandler: IConfigHandler, + abortedMessageIds: Set, + + msg: Message, + ) { + const model = await configHandler.llmFromTitle(msg.data.title); + const gen = model.streamComplete( + msg.data.prompt, + msg.data.completionOptions, + ); + let next = await gen.next(); + while (!next.done) { + if (abortedMessageIds.has(msg.messageId)) { + abortedMessageIds.delete(msg.messageId); + next = await gen.return({ + completion: "", + prompt: "", + completionOptions: { + ...msg.data.completionOptions, + model: model.model, + }, + }); + break; + } + yield { content: next.value }; + next = await gen.next(); + } + + return { done: true, content: next.value }; + } + + on("llm/streamComplete", (msg) => + llmStreamComplete(this.configHandler, this.abortedMessageIds, msg), + ); + + on("llm/complete", async (msg) => { + const model = await this.configHandler.llmFromTitle(msg.data.title); + const completion = await model.complete( + msg.data.prompt, + msg.data.completionOptions, + ); + return completion; + }); + on("llm/listModels", async (msg) => { + const config = await this.configHandler.loadConfig(); + const model = + config.models.find((model) => model.title === msg.data.title) ?? + config.models.find((model) => model.title?.startsWith(msg.data.title)); + try { + if (model) { + return model.listModels(); + } else { + if (msg.data.title === "Ollama") { + const models = await new Ollama({ model: "" }).listModels(); + return models; + } else { + return undefined; + } + } + } catch (e) { + console.warn(`Error listing Ollama models: ${e}`); + return undefined; + } + }); + + async function* runNodeJsSlashCommand( + configHandler: IConfigHandler, + abortedMessageIds: Set, + msg: Message, + messenger: IMessenger, + ) { + const { + input, + history, + modelTitle, + slashCommandName, + contextItems, + params, + historyIndex, + selectedCode, + } = msg.data; + + const config = await configHandler.loadConfig(); + const llm = await configHandler.llmFromTitle(modelTitle); + const slashCommand = config.slashCommands?.find( + (sc) => sc.name === slashCommandName, + ); + if (!slashCommand) { + throw new Error(`Unknown slash command ${slashCommandName}`); + } + + Telemetry.capture("useSlashCommand", { + name: slashCommandName, + }); + + const checkActiveInterval = setInterval(() => { + if (abortedMessageIds.has(msg.messageId)) { + abortedMessageIds.delete(msg.messageId); + clearInterval(checkActiveInterval); + } + }, 100); + + for await (const content of slashCommand.run({ + input, + history, + llm, + contextItems, + params, + ide, + addContextItem: (item) => { + messenger.request("addContextItem", { + item, + historyIndex, + }); + }, + selectedCode, + config, + fetch: (url, init) => + fetchwithRequestOptions(url, init, config.requestOptions), + })) { + if (abortedMessageIds.has(msg.messageId)) { + abortedMessageIds.delete(msg.messageId); + break; + } + if (content) { + yield { content }; + } + } + clearInterval(checkActiveInterval); + yield { done: true, content: "" }; + } + on("command/run", (msg) => + runNodeJsSlashCommand( + this.configHandler, + this.abortedMessageIds, + msg, + this.messenger, + ), + ); + + // Autocomplete + on("autocomplete/complete", async (msg) => { + const outcome = + await this.completionProvider.provideInlineCompletionItems( + msg.data, + undefined, + ); + return outcome ? [outcome.completion] : []; + }); + on("autocomplete/accept", async (msg) => {}); + on("autocomplete/cancel", async (msg) => { + this.completionProvider.cancel(); + }); + + async function* streamDiffLinesGenerator( + configHandler: IConfigHandler, + abortedMessageIds: Set, + msg: Message, + ) { + const data = msg.data; + const llm = await configHandler.llmFromTitle(msg.data.modelTitle); + for await (const diffLine of streamDiffLines( + data.prefix, + data.highlighted, + data.suffix, + llm, + data.input, + data.language, + )) { + if (abortedMessageIds.has(msg.messageId)) { + abortedMessageIds.delete(msg.messageId); + break; + } + console.log(diffLine); + yield { content: diffLine }; + } + + return { done: true }; + } + + on("streamDiffLines", (msg) => + streamDiffLinesGenerator(this.configHandler, this.abortedMessageIds, msg), + ); + + on("completeOnboarding", (msg) => { + const mode = msg.data.mode; + + Telemetry.capture("onboardingSelection", { + mode, + }); + + if (mode === "custom") { + return; + } + + let editConfigJsonCallback: Parameters[0]; + + switch (mode) { + case "local": + editConfigJsonCallback = setupLocalMode; + break; + + case "freeTrial": + editConfigJsonCallback = setupFreeTrialMode; + break; + + case "localAfterFreeTrial": + editConfigJsonCallback = setupLocalAfterFreeTrial; + break; + + case "apiKeys": + editConfigJsonCallback = setupApiKeysMode; + break; + + default: + console.error(`Invalid mode: ${mode}`); + editConfigJsonCallback = (config) => config; + } + + editConfigJson(editConfigJsonCallback); + + this.configHandler.reloadConfig(); + }); + + on("addAutocompleteModel", (msg) => { + editConfigJson((config) => { + return { + ...config, + tabAutocompleteModel: msg.data.model, + }; + }); + this.configHandler.reloadConfig(); + }); + + on("stats/getTokensPerDay", async (msg) => { + const rows = await DevDataSqliteDb.getTokensPerDay(); + return rows; + }); + on("stats/getTokensPerModel", async (msg) => { + const rows = await DevDataSqliteDb.getTokensPerModel(); + return rows; + }); + on("index/forceReIndex", async (msg) => { + const dirs = msg.data ? [msg.data] : await this.ide.getWorkspaceDirs(); + this.refreshCodebaseIndex(dirs); + }); + on("index/setPaused", (msg) => { + new GlobalContext().update("indexingPaused", msg.data); + this.indexingPauseToken.paused = msg.data; + }); + on("index/indexingProgressBarInitialized", async (msg) => { + // Triggered when progress bar is initialized. + // If a non-default state has been stored, update the indexing display to that state + if (this.indexingState.status !== "loading") { + this.messenger.request("indexProgress", this.indexingState); + } + }); + } + + private indexingCancellationController: AbortController | undefined; + + private async refreshCodebaseIndex(dirs: string[]) { + if (this.indexingCancellationController) { + this.indexingCancellationController.abort(); + } + this.indexingCancellationController = new AbortController(); + for await (const update of (await this.codebaseIndexerPromise).refresh( + dirs, + this.indexingCancellationController.signal, + )) { + this.messenger.request("indexProgress", update); + this.indexingState = update; + } + } +} \ No newline at end of file diff --git a/core/deploy/constants.ts b/core/deploy/constants.ts new file mode 100644 index 000000000..909e11f34 --- /dev/null +++ b/core/deploy/constants.ts @@ -0,0 +1,13 @@ +export const constants = { + a: "https://proxy-server-blue-l6vsfbzhba-uw.a.run.app", + // a: "http://localhost:3000", + b: "1710787199603", + c: "NfZFVegMpdyT3P5UmAggr7T7Hb6PlcbB", +}; + +export function getTimestamp() { + const x = Date.now().toString(); + const l = new Date().getMinutes(); + let j = Math.floor(l / 2) + 10; + return x.slice(0, -2) + j.toString(); +} diff --git a/core/diff/streamDiff.ts b/core/diff/streamDiff.ts index f30e76e07..b95bd5999 100644 --- a/core/diff/streamDiff.ts +++ b/core/diff/streamDiff.ts @@ -1,5 +1,5 @@ -import { DiffLine } from ".."; -import { LineStream, matchLine } from "./util"; +import { DiffLine } from "../index.js"; +import { LineStream, matchLine } from "./util.js"; /** * https://blog.jcoglan.com/2017/02/12/the-myers-diff-algorithm-part-1/ @@ -53,7 +53,7 @@ export async function* streamDiff( // Once at the edge, only one choice if (newLineResult.done === true && oldLines.length > 0) { - for (let oldLine of oldLines) { + for (const oldLine of oldLines) { yield { type: "old", line: oldLine }; } } @@ -64,4 +64,4 @@ export async function* streamDiff( yield { type: "new", line: newLine }; } } -} +} \ No newline at end of file diff --git a/core/diff/util.ts b/core/diff/util.ts index ade376291..41a80ca9b 100644 --- a/core/diff/util.ts +++ b/core/diff/util.ts @@ -1,20 +1,26 @@ import { distance } from "fastest-levenshtein"; -import { ChatMessage } from ".."; -import { stripImages } from "../llm/countTokens"; +import { ChatMessage } from "../index.js"; +import { stripImages } from "../llm/countTokens.js"; export type LineStream = AsyncGenerator; +export type MatchLineResult = { + /** + * -1 if it's a new line, otherwise the index of the first match + * in the old lines. + */ + matchIndex: number; + isPerfectMatch: boolean; + newLine: string; +}; + function linesMatchPerfectly(lineA: string, lineB: string): boolean { return lineA === lineB && lineA !== ""; } const END_BRACKETS = ["}", "});", "})"]; -function linesMatch( - lineA: string, - lineB: string, - linesBetween: number = 0, -): boolean { +function linesMatch(lineA: string, lineB: string, linesBetween = 0): boolean { // Require a perfect (without padding) match for these lines // Otherwise they are edit distance 1 from empty lines and other single char lines (e.g. each other) if (["}", "*", "});", "})"].includes(lineA.trim())) { @@ -22,6 +28,7 @@ function linesMatch( } const d = distance(lineA, lineB); + return ( // Should be more unlikely for lines to fuzzy match if they are further away (d / Math.max(lineA.length, lineB.length) < 0.5 - linesBetween * 0.05 || @@ -35,39 +42,40 @@ function linesMatch( * Also return a version of the line with correct indentation if needs fixing */ export function matchLine( - newLine: string, - oldLines: string[], - permissiveAboutIndentation: boolean = false, -): [number, boolean, string] { - // Only match empty lines if it's the next one: - if (newLine.trim() === "" && oldLines[0]?.trim() === "") { - return [0, true, newLine.trim()]; - } - - const isEndBracket = END_BRACKETS.includes(newLine.trim()); - for (let i = 0; i < oldLines.length; i++) { - // Don't match end bracket lines if too far away - if (i > 4 && isEndBracket) { - return [-1, false, newLine]; + newLine: string, + oldLines: string[], + permissiveAboutIndentation = false, + ): [number, boolean, string] { + // Only match empty lines if it's the next one: + if (newLine.trim() === "" && oldLines[0]?.trim() === "") { + return [0, true, newLine.trim()]; } - - if (linesMatchPerfectly(newLine, oldLines[i])) { - return [i, true, newLine]; - } else if (linesMatch(newLine, oldLines[i], i)) { - // This is a way to fix indentation, but only for sufficiently long lines to avoid matching whitespace or short lines - if ( - newLine.trimStart() === oldLines[i].trimStart() && - (permissiveAboutIndentation || newLine.trim().length > 8) - ) { - return [i, true, oldLines[i]]; + + const isEndBracket = END_BRACKETS.includes(newLine.trim()); + for (let i = 0; i < oldLines.length; i++) { + // Don't match end bracket lines if too far away + if (i > 4 && isEndBracket) { + return [-1, false, newLine]; + } + + if (linesMatchPerfectly(newLine, oldLines[i])) { + return [i, true, newLine]; + } + if (linesMatch(newLine, oldLines[i], i)) { + // This is a way to fix indentation, but only for sufficiently long lines to avoid matching whitespace or short lines + if ( + newLine.trimStart() === oldLines[i].trimStart() && + (permissiveAboutIndentation || newLine.trim().length > 8) + ) { + return [i, true, oldLines[i]]; + } + return [i, false, newLine]; } - return [i, false, newLine]; } + + return [-1, false, newLine]; } - return [-1, false, newLine]; -} - /** * Convert a stream of arbitrary chunks to a stream of lines */ diff --git a/core/index.d.ts b/core/index.d.ts index 99281e17a..8e1fc4897 100644 --- a/core/index.d.ts +++ b/core/index.d.ts @@ -23,11 +23,6 @@ declare global { } } -export interface LLMReturnValue { - prompt: string; - completion: string; -} - export interface ChunkWithoutID { content: string; startLine: number; @@ -50,9 +45,9 @@ export interface IndexingProgressUpdate { export type PromptTemplate = | string | (( - history: ChatMessage[], - otherData: Record, - ) => string | ChatMessage[]); + history: ChatMessage[], + otherData: Record, + ) => string | ChatMessage[]); export interface ILLM extends LLMOptions { get providerName(): ModelProvider; @@ -66,7 +61,6 @@ export interface ILLM extends LLMOptions { completionOptions: CompletionOptions; requestOptions?: RequestOptions; promptTemplates?: Record; - _fetch?: (input: RequestInfo, init?: RequestInit) => Promise; templateMessages?: (messages: ChatMessage[]) => string; writeLog?: (str: string) => Promise; llmRequestHook?: (model: string, prompt: string) => any; @@ -168,6 +162,16 @@ export interface ContextSubmenuItem { id: string; title: string; description: string; + iconUrl?: string; + metadata?: any; +} + +export interface SiteIndexingConfig { + startUrl: string; + rootUrl: string; + title: string; + maxDepth?: number; + faviconUrl?: string; } export interface SiteIndexingConfig { @@ -207,6 +211,11 @@ export interface RangeInFile { range: Range; } +export interface Location { + filepath: string; + position: Position; +} + export interface FileWithContents { filepath: string; contents: string; @@ -320,6 +329,9 @@ export interface LLMOptions { useLegacyCompletionsEndpoint?: boolean; + // Cloudflare options + accountId?: string; + // Azure options engine?: string; apiVersion?: string; @@ -405,8 +417,16 @@ export enum FileType { SymbolicLink = 64, } +export interface IdeSettings { + remoteConfigServerUrl: string | undefined; + remoteConfigSyncPeriod: number; + userToken: string; + enableControlServerBeta: boolean; +} + export interface IDE { getIdeInfo(): Promise; + getIdeSettings(): Promise; getDiff(): Promise; isTelemetryEnabled(): Promise; getUniqueId(): Promise; @@ -417,13 +437,10 @@ export interface IDE { stackDepth: number, ): Promise; getAvailableThreads(): Promise; - listWorkspaceContents( - directory?: string, - useGitIgnore?: boolean, - ): Promise; listFolders(): Promise; getWorkspaceDirs(): Promise; getWorkspaceConfigs(): Promise; + fileExists(filepath: string): Promise; writeFile(path: string, contents: string): Promise; showVirtualFile(title: string, contents: string): Promise; getContinueDir(): Promise; @@ -458,6 +475,13 @@ export interface IDE { listDir(dir: string): Promise<[string, FileType][]>; getLastModified(files: string[]): Promise<{ [path: string]: number }>; getGitHubAuthToken(): Promise; + + // LSP + gotoDefinition(location: Location): Promise; + + // Callbacks + onDidChangeActiveTextEditor(callback: (filepath: string) => void): void; + pathSep(): Promise; } // Slash Commands @@ -559,7 +583,11 @@ type ModelProvider = | "continue-proxy" | "fireworks" | "custom" - | "cloudflare"; + | "cloudflare" + | "deepseek" + | "azure" + | "openai-aiohttp" + | "msty"; export type ModelName = | "AUTODETECT" @@ -605,18 +633,21 @@ export type ModelName = | "deepseek-33b" | "neural-chat-7b" // Anthropic - | "claude-2" + | "claude-3-5-sonnet-20240620" | "claude-3-opus-20240229" | "claude-3-sonnet-20240229" | "claude-3-haiku-20240307" | "claude-2.1" + | "claude-2" // Cohere | "command-r" | "command-r-plus" // Gemini | "gemini-pro" | "gemini-1.5-pro-latest" + | "gemini-1.5-pro" | "gemini-1.5-flash-latest" + | "gemini-1.5-flash" // Mistral | "mistral-tiny" | "mistral-small" @@ -636,6 +667,13 @@ export interface RequestOptions { headers?: { [key: string]: string }; extraBodyProperties?: { [key: string]: any }; noProxy?: string[]; + clientCertificate?: ClientCertificateOptions; +} + +export interface ClientCertificateOptions { + cert: string; + key: string; + passphrase?: string; } export interface StepWithParams { @@ -691,17 +729,23 @@ export interface ModelDescription { } export type EmbeddingsProviderName = + | "huggingface-tei" | "transformers.js" | "ollama" | "openai" | "cohere" - | "free-trial"; + | "free-trial" + | "gemini"; export interface EmbedOptions { apiBase?: string; apiKey?: string; model?: string; + engine?: string; + apiType?: string; + apiVersion?: string; requestOptions?: RequestOptions; + maxChunkSize?: number; } export interface EmbeddingsProviderDescription extends EmbedOptions { @@ -710,6 +754,7 @@ export interface EmbeddingsProviderDescription extends EmbedOptions { export interface EmbeddingsProvider { id: string; + maxChunkSize: number; embed(chunks: string[]): Promise; } @@ -728,7 +773,7 @@ export interface Reranker { export interface TabAutocompleteOptions { disable: boolean; useCopyBuffer: boolean; - useSuffix: boolean; + useFileSuffix: boolean; maxPromptTokens: number; debounceDelay: number; maxSuffixPercentage: number; @@ -745,11 +790,13 @@ export interface TabAutocompleteOptions { useRecentlyEdited: boolean; recentLinePrefixMatchMinLength: number; disableInFiles?: string[]; + useImports?: boolean; } export interface ContinueUIConfig { codeBlockToolbarPosition?: "top" | "bottom"; fontSize?: number; + displayRawMarkdown?: boolean; } interface ContextMenuConfig { @@ -762,6 +809,32 @@ interface ContextMenuConfig { interface ModelRoles { inlineEdit?: string; + applyCodeBlock?: string; +} + +/** + * Represents the configuration for a quick action in the Code Lens. + * Quick actions are custom commands that can be added to function and class declarations. + */ +interface QuickActionConfig { + /** + * The title of the quick action that will display in the Code Lens. + */ + title: string; + + /** + * The prompt that will be sent to the model when the quick action is invoked, + * with the function or class body concatenated. + */ + prompt: string; + + /** + * If `true`, the result of the quick action will be sent to the chat panel. + * If `false`, the streamed result will be inserted into the document. + * + * Defaults to `false`. + */ + sendToChat: boolean; } interface ExperimentalConfig { @@ -769,8 +842,15 @@ interface ExperimentalConfig { modelRoles?: ModelRoles; defaultContext?: "activeFile"[]; promptPath?: string; + + /** + * Quick actions are a way to add custom commands to the Code Lens of + * function and class declarations. + */ + quickActions?: QuickActionConfig[]; } +// config.json export interface SerializedContinueConfig { env?: string[]; allowAnonymousTelemetry?: boolean; @@ -786,7 +866,7 @@ export interface SerializedContinueConfig { disableSessionTitles?: boolean; userToken?: string; embeddingsProvider?: EmbeddingsProviderDescription; - tabAutocompleteModels: ModelDescription[]; + tabAutocompleteModels?: ModelDescription | ModelDescription[]; tabAutocompleteOptions?: Partial; ui?: ContinueUIConfig; reranker?: RerankerDescription; @@ -799,6 +879,7 @@ export type ContinueRcJson = Partial & { mergeBehavior: ConfigMergeType; }; +// config.ts - give users simplified interfaces export interface Config { /** If set to true, Continue will collect anonymous usage data to improve the product. If set to false, we will collect nothing. Read here to learn more: https://docs.continue.dev/telemetry */ allowAnonymousTelemetry?: boolean; @@ -807,9 +888,8 @@ export interface Config { * Continue will do the rest of the work to construct prompt templates, handle context items, prune context, etc. */ models: (CustomLLM | ModelDescription)[]; + commandModels: ModelDescription[]; /** A system message to be followed by all of your models */ - commandModels: (CustomLLM | ModelDescription)[]; - /** Specially specified model to execution extension commands. */ systemMessage?: string; /** The default completion options for all models */ completionOptions?: BaseCompletionOptions; @@ -830,7 +910,10 @@ export interface Config { /** The provider used to calculate embeddings. If left empty, Continue will use transformers.js to calculate the embeddings with all-MiniLM-L6-v2 */ embeddingsProvider?: EmbeddingsProviderDescription | EmbeddingsProvider; /** The model that Continue will use for tab autocompletions. */ - tabAutocompleteModels: (CustomLLM | ModelDescription)[]; + tabAutocompleteModels?: + | CustomLLM + | ModelDescription + | (CustomLLM | ModelDescription)[]; /** Options for tab autocomplete */ tabAutocompleteOptions?: Partial; /** UI styles customization */ @@ -841,6 +924,7 @@ export interface Config { experimental?: ExperimentalConfig; } +// in the actual Continue source code export interface ContinueConfig { allowAnonymousTelemetry?: boolean; models: ILLM[]; @@ -854,7 +938,7 @@ export interface ContinueConfig { disableIndexing?: boolean; userToken?: string; embeddingsProvider: EmbeddingsProvider; - tabAutocompleteModels: ILLM[]; + tabAutocompleteModels?: ILLM[]; tabAutocompleteOptions?: Partial; ui?: ContinueUIConfig; reranker?: Reranker; diff --git a/core/indexing/CodeSnippetsIndex.ts b/core/indexing/CodeSnippetsIndex.ts index abf738126..a5ec68f8b 100644 --- a/core/indexing/CodeSnippetsIndex.ts +++ b/core/indexing/CodeSnippetsIndex.ts @@ -1,28 +1,27 @@ -import fs from "fs"; -import path from "path"; -import { +import type { ChunkWithoutID, ContextItem, ContextSubmenuItem, IDE, IndexTag, IndexingProgressUpdate, -} from ".."; +} from "../index.js"; import { getBasename, getLastNPathParts } from "../util/index.js"; import { - getLanguageForFile, + TSQueryType, getParserForFile, - supportedLanguages, -} from "../util/treeSitter"; -import { DatabaseConnection, SqliteDb, tagToString } from "./refreshIndex"; + getQueryForFile, +} from "../util/treeSitter.js"; +import { DatabaseConnection, SqliteDb, tagToString } from "./refreshIndex.js"; import { - CodebaseIndex, IndexResultType, MarkCompleteCallback, RefreshIndexResults, -} from "./types"; + type CodebaseIndex, +} from "./types.js"; export class CodeSnippetsCodebaseIndex implements CodebaseIndex { + relativeExpectedTime: number = 1; artifactId = "codeSnippets"; constructor(private readonly ide: IDE) {} @@ -46,35 +45,16 @@ export class CodeSnippetsCodebaseIndex implements CodebaseIndex { )`); } - private getQuerySource(filepath: string) { - const fullLangName = supportedLanguages[filepath.split(".").pop() ?? ""]; - const sourcePath = path.join( - __dirname, - "..", - "tree-sitter", - "code-snippet-queries", - `tree-sitter-${fullLangName}-tags.scm`, - ); - if (!fs.existsSync(sourcePath)) { - return ""; - } - return fs.readFileSync(sourcePath).toString(); - } - async getSnippetsInFile( filepath: string, contents: string, ): Promise<(ChunkWithoutID & { title: string })[]> { - const lang = await getLanguageForFile(filepath); - if (!lang) { - return []; - } const parser = await getParserForFile(filepath); if (!parser) { return []; } const ast = parser.parse(contents); - const query = lang?.query(this.getQuerySource(filepath)); + const query = await getQueryForFile(filepath, TSQueryType.CodeSnippets); const matches = query?.matches(ast.rootNode); return ( @@ -104,15 +84,21 @@ export class CodeSnippetsCodebaseIndex implements CodebaseIndex { for (let i = 0; i < results.compute.length; i++) { const compute = results.compute[i]; - const snippets = await this.getSnippetsInFile( - compute.path, - await this.ide.readFile(compute.path), - ); + + let snippets: (ChunkWithoutID & { title: string })[] = []; + try { + snippets = await this.getSnippetsInFile( + compute.path, + await this.ide.readFile(compute.path), + ); + } catch (e) { + // If can't parse, assume malformatted code + } // Add snippets to sqlite for (const snippet of snippets) { const { lastID } = await db.run( - `INSERT INTO code_snippets (path, cacheKey, content, title, startLine, endLine) VALUES (?, ?, ?, ?, ?, ?)`, + "INSERT INTO code_snippets (path, cacheKey, content, title, startLine, endLine) VALUES (?, ?, ?, ?, ?, ?)", [ compute.path, compute.cacheKey, @@ -124,13 +110,13 @@ export class CodeSnippetsCodebaseIndex implements CodebaseIndex { ); await db.run( - `INSERT INTO code_snippets_tags (snippetId, tag) VALUES (?, ?)`, + "INSERT INTO code_snippets_tags (snippetId, tag) VALUES (?, ?)", [lastID, tagString], ); } yield { - desc: `Indexing ${compute.path}`, + desc: `Indexing ${getBasename(compute.path)}`, progress: i / results.compute.length, status: "indexing", }; @@ -140,10 +126,10 @@ export class CodeSnippetsCodebaseIndex implements CodebaseIndex { for (let i = 0; i < results.del.length; i++) { const del = results.del[i]; const deleted = await db.run( - `DELETE FROM code_snippets WHERE path = ? AND cacheKey = ?`, + "DELETE FROM code_snippets WHERE path = ? AND cacheKey = ?", [del.path, del.cacheKey], ); - await db.run(`DELETE FROM code_snippets_tags WHERE snippetId = ?`, [ + await db.run("DELETE FROM code_snippets_tags WHERE snippetId = ?", [ deleted.lastID, ]); markComplete([del], IndexResultType.Delete); @@ -151,13 +137,13 @@ export class CodeSnippetsCodebaseIndex implements CodebaseIndex { for (let i = 0; i < results.addTag.length; i++) { const snippetsWithPath = await db.all( - `SELECT * FROM code_snippets WHERE cacheKey = ?`, + "SELECT * FROM code_snippets WHERE cacheKey = ?", [results.addTag[i].cacheKey], ); for (const snippet of snippetsWithPath) { await db.run( - `INSERT INTO code_snippets_tags (snippetId, tag) VALUES (?, ?)`, + "INSERT INTO code_snippets_tags (snippetId, tag) VALUES (?, ?)", [snippet.id, tagString], ); } @@ -184,7 +170,7 @@ export class CodeSnippetsCodebaseIndex implements CodebaseIndex { static async getForId(id: number): Promise { const db = await SqliteDb.get(); - const row = await db.get(`SELECT * FROM code_snippets WHERE id = ?`, [id]); + const row = await db.get("SELECT * FROM code_snippets WHERE id = ?", [id]); return { name: row.title, diff --git a/core/indexing/CodebaseIndexer.ts b/core/indexing/CodebaseIndexer.ts new file mode 100644 index 000000000..4f132adef --- /dev/null +++ b/core/indexing/CodebaseIndexer.ts @@ -0,0 +1,204 @@ +import { IConfigHandler } from "../config/IConfigHandler.js"; +import { IContinueServerClient } from "../continueServer/interface.js"; +import { IDE, IndexTag, IndexingProgressUpdate } from "../index.js"; +import { CodeSnippetsCodebaseIndex } from "./CodeSnippetsIndex.js"; +import { FullTextSearchCodebaseIndex } from "./FullTextSearch.js"; +import { LanceDbIndex } from "./LanceDbIndex.js"; +import { ChunkCodebaseIndex } from "./chunk/ChunkCodebaseIndex.js"; +import { getComputeDeleteAddRemove } from "./refreshIndex.js"; +import { CodebaseIndex } from "./types.js"; +import { walkDir } from "./walkDir.js"; + +export class PauseToken { + constructor(private _paused: boolean) {} + + set paused(value: boolean) { + this._paused = value; + } + + get paused(): boolean { + return this._paused; + } +} + +export class CodebaseIndexer { + constructor( + private readonly configHandler: IConfigHandler, + private readonly ide: IDE, + private readonly pauseToken: PauseToken, + private readonly continueServerClient: IContinueServerClient, + ) {} + + private async getIndexesToBuild(): Promise { + const config = await this.configHandler.loadConfig(); + + const indexes = [ + new ChunkCodebaseIndex( + this.ide.readFile.bind(this.ide), + this.continueServerClient, + ), // Chunking must come first + new LanceDbIndex( + config.embeddingsProvider, + this.ide.readFile.bind(this.ide), + this.continueServerClient, + ), + new FullTextSearchCodebaseIndex(), + new CodeSnippetsCodebaseIndex(this.ide), + ]; + + return indexes; + } + + async *refresh( + workspaceDirs: string[], + abortSignal: AbortSignal, + ): AsyncGenerator { + let progress = 0; + + if (workspaceDirs.length === 0) { + yield { + progress, + desc: "Nothing to index", + status: "disabled", + }; + return; + } + + const config = await this.configHandler.loadConfig(); + if (config.disableIndexing) { + yield { + progress, + desc: "Indexing is disabled in config.json", + status: "disabled", + }; + return; + } else { + yield { + progress, + desc: "Starting indexing", + status: "loading", + }; + } + + const indexesToBuild = await this.getIndexesToBuild(); + let completedDirs = 0; + const totalRelativeExpectedTime = indexesToBuild.reduce( + (sum, index) => sum + index.relativeExpectedTime, + 0, + ); + + // Wait until Git Extension has loaded to report progress + // so we don't appear stuck at 0% while waiting + await this.ide.getRepoName(workspaceDirs[0]); + + yield { + progress, + desc: "Starting indexing...", + status: "loading", + }; + + for (const directory of workspaceDirs) { + const files = await walkDir(directory, this.ide); + const stats = await this.ide.getLastModified(files); + const branch = await this.ide.getBranch(directory); + const repoName = await this.ide.getRepoName(directory); + let completedRelativeExpectedTime = 0; + + for (const codebaseIndex of indexesToBuild) { + // TODO: IndexTag type should use repoName rather than directory + const tag: IndexTag = { + directory, + branch, + artifactId: codebaseIndex.artifactId, + }; + const [results, markComplete] = await getComputeDeleteAddRemove( + tag, + { ...stats }, + (filepath) => this.ide.readFile(filepath), + repoName, + ); + + try { + for await (let { + progress: indexProgress, + desc, + } of codebaseIndex.update(tag, results, markComplete, repoName)) { + // Handle pausing in this loop because it's the only one really taking time + if (abortSignal.aborted) { + yield { + progress: 1, + desc: "Indexing cancelled", + status: "disabled", + }; + return; + } + + if (this.pauseToken.paused) { + yield { + progress, + desc: "Paused", + status: "paused", + }; + while (this.pauseToken.paused) { + await new Promise((resolve) => setTimeout(resolve, 100)); + } + } + + progress = + (completedDirs + + (completedRelativeExpectedTime + + Math.min(1.0, indexProgress) * + codebaseIndex.relativeExpectedTime) / + totalRelativeExpectedTime) / + workspaceDirs.length; + yield { + progress, + desc, + status: "indexing", + }; + } + + completedRelativeExpectedTime += codebaseIndex.relativeExpectedTime; + yield { + progress: + (completedDirs + + completedRelativeExpectedTime / totalRelativeExpectedTime) / + workspaceDirs.length, + desc: "Completed indexing " + codebaseIndex.artifactId, + status: "indexing", + }; + } catch (e: any) { + let errMsg = `${e}`; + + const errorRegex = + /Invalid argument error: Values length (\d+) is less than the length \((\d+)\) multiplied by the value size \(\d+\)/; + const match = e.message.match(errorRegex); + + if (match) { + const [_, valuesLength, expectedLength] = match; + errMsg = `Generated embedding had length ${valuesLength} but was expected to be ${expectedLength}. This may be solved by deleting ~/.continue/index and refreshing the window to re-index.`; + } + + yield { + progress: 0, + desc: errMsg, + status: "failed", + }; + + console.warn( + `Error updating the ${codebaseIndex.artifactId} index: ${e}`, + ); + return; + } + } + + completedDirs++; + progress = completedDirs / workspaceDirs.length; + yield { + progress, + desc: "Indexing Complete", + status: "done", + }; + } + } +} \ No newline at end of file diff --git a/core/indexing/FullTextSearch.ts b/core/indexing/FullTextSearch.ts index 81f61781c..c640eae20 100644 --- a/core/indexing/FullTextSearch.ts +++ b/core/indexing/FullTextSearch.ts @@ -1,16 +1,23 @@ -import { BranchAndDir, Chunk, IndexTag, IndexingProgressUpdate } from ".."; -import { RETRIEVAL_PARAMS } from "../util/parameters"; -import { ChunkCodebaseIndex } from "./chunk/ChunkCodebaseIndex"; -import { DatabaseConnection, SqliteDb, tagToString } from "./refreshIndex"; import { - CodebaseIndex, + BranchAndDir, + Chunk, + IndexTag, + IndexingProgressUpdate, +} from "../index.js"; +import { getBasename } from "../util/index.js"; +import { RETRIEVAL_PARAMS } from "../util/parameters.js"; +import { ChunkCodebaseIndex } from "./chunk/ChunkCodebaseIndex.js"; +import { DatabaseConnection, SqliteDb, tagToString } from "./refreshIndex.js"; +import { IndexResultType, MarkCompleteCallback, RefreshIndexResults, -} from "./types"; + type CodebaseIndex, +} from "./types.js"; export class FullTextSearchCodebaseIndex implements CodebaseIndex { - artifactId: string = "sqliteFts"; + relativeExpectedTime: number = 0.2; + artifactId = "sqliteFts"; private async _createTables(db: DatabaseConnection) { await db.exec(`CREATE VIRTUAL TABLE IF NOT EXISTS fts USING fts5( @@ -43,24 +50,29 @@ export class FullTextSearchCodebaseIndex implements CodebaseIndex { // Insert chunks const chunks = await db.all( - `SELECT * FROM chunks WHERE path = ? AND cacheKey = ?`, + "SELECT * FROM chunks WHERE path = ? AND cacheKey = ?", [item.path, item.cacheKey], ); - for (let chunk of chunks) { + for (const chunk of chunks) { const { lastID } = await db.run( - `INSERT INTO fts (path, content) VALUES (?, ?)`, + "INSERT INTO fts (path, content) VALUES (?, ?)", [item.path, chunk.content], ); await db.run( - `INSERT INTO fts_metadata (id, path, cacheKey, chunkId) VALUES (?, ?, ?, ?)`, + `INSERT INTO fts_metadata (id, path, cacheKey, chunkId) + VALUES (?, ?, ?, ?) + ON CONFLICT(id) DO UPDATE SET + path = excluded.path, + cacheKey = excluded.cacheKey, + chunkId = excluded.chunkId`, [lastID, item.path, item.cacheKey, chunk.id], ); } yield { progress: i / results.compute.length, - desc: `Indexing ${item.path}`, + desc: `Indexing ${getBasename(item.path)}`, status: "indexing", }; markComplete([item], IndexResultType.Compute); @@ -79,10 +91,10 @@ export class FullTextSearchCodebaseIndex implements CodebaseIndex { // Delete for (const item of results.del) { const { lastID } = await db.run( - `DELETE FROM fts_metadata WHERE path = ? AND cacheKey = ?`, + "DELETE FROM fts_metadata WHERE path = ? AND cacheKey = ?", [item.path, item.cacheKey], ); - await db.run(`DELETE FROM fts WHERE rowid = ?`, [lastID]); + await db.run("DELETE FROM fts WHERE rowid = ?", [lastID]); markComplete([item], IndexResultType.Delete); } @@ -122,7 +134,7 @@ export class FullTextSearchCodebaseIndex implements CodebaseIndex { let results = await db.all(query, [ ...tagStrings, ...(filterPaths || []), - n, + Math.ceil(n), ]); results = results.filter((result) => result.rank <= bm25Threshold); diff --git a/core/indexing/LanceDbIndex.ts b/core/indexing/LanceDbIndex.ts index 2fbb62afd..db1af2780 100644 --- a/core/indexing/LanceDbIndex.ts +++ b/core/indexing/LanceDbIndex.ts @@ -1,25 +1,24 @@ // NOTE: vectordb requirement must be listed in extensions/vscode to avoid error import { v4 as uuidv4 } from "uuid"; import { Table } from "vectordb"; +import { IContinueServerClient } from "../continueServer/interface.js"; import { BranchAndDir, Chunk, EmbeddingsProvider, IndexTag, IndexingProgressUpdate, -} from ".."; -import { ContinueServerClient } from "../continueServer/stubs/client"; -import { MAX_CHUNK_SIZE } from "../llm/constants"; -import { getBasename } from "../util"; -import { getLanceDbPath } from "../util/paths"; -import { chunkDocument } from "./chunk/chunk"; -import { DatabaseConnection, SqliteDb, tagToString } from "./refreshIndex"; +} from "../index.js"; +import { getBasename } from "../util/index.js"; +import { getLanceDbPath, migrate } from "../util/paths.js"; +import { chunkDocument } from "./chunk/chunk.js"; +import { DatabaseConnection, SqliteDb, tagToString } from "./refreshIndex.js"; import { CodebaseIndex, IndexResultType, PathAndCacheKey, RefreshIndexResults, -} from "./types"; +} from "./types.js"; // LanceDB converts to lowercase, so names must all be lowercase interface LanceDbRow { @@ -31,23 +30,19 @@ interface LanceDbRow { } export class LanceDbIndex implements CodebaseIndex { + relativeExpectedTime: number = 13; get artifactId(): string { - return "vectordb::" + this.embeddingsProvider.id; + return `vectordb::${this.embeddingsProvider.id}`; } - static MAX_CHUNK_SIZE = MAX_CHUNK_SIZE; - constructor( private readonly embeddingsProvider: EmbeddingsProvider, private readonly readFile: (filepath: string) => Promise, - private readonly continueServerClient?: ContinueServerClient, + private readonly continueServerClient?: IContinueServerClient, ) {} private tableNameForTag(tag: IndexTag) { - return tagToString(tag) - .replace(/\//g, "") - .replace(/\\/g, "") - .replace(/\:/g, ""); + return tagToString(tag).replace(/[^\w-_.]/g, ""); } private async createSqliteCacheTable(db: DatabaseConnection) { @@ -55,11 +50,28 @@ export class LanceDbIndex implements CodebaseIndex { uuid TEXT PRIMARY KEY, cacheKey TEXT NOT NULL, path TEXT NOT NULL, + artifact_id TEXT NOT NULL, vector TEXT NOT NULL, startLine INTEGER NOT NULL, endLine INTEGER NOT NULL, contents TEXT NOT NULL )`); + + await new Promise((resolve) => + migrate( + "lancedb_sqlite_artifact_id_column", + async () => { + try { + await db.exec( + "ALTER TABLE lance_db_cache ADD COLUMN artifact_id TEXT NOT NULL DEFAULT 'UNDEFINED'", + ); + } finally { + resolve(undefined); + } + }, + () => resolve(undefined), + ), + ); } private async *computeChunks( @@ -82,24 +94,51 @@ export class LanceDbIndex implements CodebaseIndex { const content = contents[i]; const chunks: Chunk[] = []; - for await (let chunk of chunkDocument( + let hasEmptyChunks = false; + + for await (const chunk of chunkDocument( items[i].path, content, - LanceDbIndex.MAX_CHUNK_SIZE, + this.embeddingsProvider.maxChunkSize, items[i].cacheKey, )) { + if (chunk.content.length == 0) { + hasEmptyChunks = true; + break; + } chunks.push(chunk); } + if (hasEmptyChunks) { + // File did not chunk properly, let's skip it. + continue; + } + if (chunks.length > 20) { // Too many chunks to index, probably a larger file than we want to include continue; } - // Calculate embeddings - const embeddings = await this.embeddingsProvider.embed( - chunks.map((c) => c.content), - ); + let embeddings: number[][]; + try { + // Calculate embeddings + embeddings = await this.embeddingsProvider.embed( + chunks.map((c) => c.content), + ); + } catch (e) { + // Rather than fail the entire indexing process, we'll just skip this file + // so that it may be picked up on the next indexing attempt + console.warn( + `Failed to generate embedding for ${chunks[0]?.filepath} with provider: ${this.embeddingsProvider.id}: ${e}`, + ); + continue; + } + + if (embeddings.some((emb) => emb === undefined)) { + throw new Error( + `Failed to generate embedding for ${chunks[0]?.filepath} with provider: ${this.embeddingsProvider.id}`, + ); + } // Create row format for (let j = 0; j < chunks.length; j++) { @@ -145,8 +184,8 @@ export class LanceDbIndex implements CodebaseIndex { // Compute let table: Table | undefined = undefined; - let needToCreateTable = true; const existingTables = await db.tableNames(); + let needToCreateTable = !existingTables.includes(tableName); const addComputedLanceDbRows = async ( pathAndCacheKey: PathAndCacheKey, @@ -173,7 +212,7 @@ export class LanceDbIndex implements CodebaseIndex { }; // Check remote cache - if (this.continueServerClient !== undefined) { + if (this.continueServerClient?.connected) { try { const keys = results.compute.map(({ cacheKey }) => cacheKey); const resp = await this.continueServerClient.getFromIndexCache( @@ -206,10 +245,11 @@ export class LanceDbIndex implements CodebaseIndex { rows.push(row); await sqlite.run( - "INSERT INTO lance_db_cache (uuid, cacheKey, path, vector, startLine, endLine, contents) VALUES (?, ?, ?, ?, ?, ?, ?)", + "INSERT INTO lance_db_cache (uuid, cacheKey, path, artifact_id, vector, startLine, endLine, contents) VALUES (?, ?, ?, ?, ?, ?, ?, ?)", row.uuid, row.cachekey, row.path, + this.artifactId, JSON.stringify(row.vector), chunk.startLine, chunk.endLine, @@ -229,6 +269,9 @@ export class LanceDbIndex implements CodebaseIndex { } } + const progressReservedForTagging = 0.1; + let accumulatedProgress = 0; + let computedRows: LanceDbRow[] = []; for await (const update of this.computeChunks(results.compute)) { if (Array.isArray(update)) { @@ -237,17 +280,23 @@ export class LanceDbIndex implements CodebaseIndex { // Add the computed row to the cache await sqlite.run( - "INSERT INTO lance_db_cache (uuid, cacheKey, path, vector, startLine, endLine, contents) VALUES (?, ?, ?, ?, ?, ?, ?)", + "INSERT INTO lance_db_cache (uuid, cacheKey, path, artifact_id, vector, startLine, endLine, contents) VALUES (?, ?, ?, ?, ?, ?, ?, ?)", row.uuid, row.cachekey, row.path, + this.artifactId, JSON.stringify(row.vector), data.startLine, data.endLine, data.contents, ); - yield { progress, desc, status: "indexing" }; + accumulatedProgress = progress * (1 - progressReservedForTagging); + yield { + progress: accumulatedProgress, + desc, + status: "indexing", + }; } else { await addComputedLanceDbRows(update, computedRows); computedRows = []; @@ -255,11 +304,12 @@ export class LanceDbIndex implements CodebaseIndex { } // Add tag - retrieve the computed info from lance sqlite cache - for (let { path, cacheKey } of results.addTag) { + for (const { path, cacheKey } of results.addTag) { const stmt = await sqlite.prepare( - "SELECT * FROM lance_db_cache WHERE cacheKey = ? AND path = ?", + "SELECT * FROM lance_db_cache WHERE cacheKey = ? AND path = ? AND artifact_id = ?", cacheKey, path, + this.artifactId, ); const cachedItems = await stmt.all(); @@ -272,32 +322,59 @@ export class LanceDbIndex implements CodebaseIndex { }; }); - if (needToCreateTable && lanceRows.length > 0) { - table = await db.createTable(tableName, lanceRows); - needToCreateTable = false; - } else if (lanceRows.length > 0) { - await table!.add(lanceRows); + if (lanceRows.length > 0) { + if (needToCreateTable) { + table = await db.createTable(tableName, lanceRows); + needToCreateTable = false; + } else if (!table) { + table = await db.openTable(tableName); + needToCreateTable = false; + await table.add(lanceRows); + } else { + await table?.add(lanceRows); + } } markComplete([{ path, cacheKey }], IndexResultType.AddTag); + accumulatedProgress += 1 / results.addTag.length / 3; + yield { + progress: accumulatedProgress, + desc: `Indexing ${getBasename(path)}`, + status: "indexing", + }; } // Delete or remove tag - remove from lance table) if (!needToCreateTable) { - for (let { path, cacheKey } of [...results.removeTag, ...results.del]) { + const toDel = [...results.removeTag, ...results.del]; + for (const { path, cacheKey } of toDel) { // This is where the aforementioned lowercase conversion problem shows - await table!.delete(`cachekey = '${cacheKey}' AND path = '${path}'`); + await table?.delete(`cachekey = '${cacheKey}' AND path = '${path}'`); + + accumulatedProgress += 1 / toDel.length / 3; + yield { + progress: accumulatedProgress, + desc: `Stashing ${getBasename(path)}`, + status: "indexing", + }; } } markComplete(results.removeTag, IndexResultType.RemoveTag); // Delete - also remove from sqlite cache - for (let { path, cacheKey } of results.del) { + for (const { path, cacheKey } of results.del) { await sqlite.run( - "DELETE FROM lance_db_cache WHERE cacheKey = ? AND path = ?", + "DELETE FROM lance_db_cache WHERE cacheKey = ? AND path = ? AND artifact_id = ?", cacheKey, path, + this.artifactId, ); + accumulatedProgress += 1 / results.del.length / 3; + yield { + progress: accumulatedProgress, + desc: `Removing ${getBasename(path)}`, + status: "indexing", + }; } markComplete(results.del, IndexResultType.Delete); @@ -318,6 +395,7 @@ export class LanceDbIndex implements CodebaseIndex { const tableName = this.tableNameForTag(tag); const tableNames = await db.tableNames(); if (!tableNames.includes(tableName)) { + console.warn("Table not found in LanceDB", tableName); return []; } diff --git a/core/indexing/chunk/ChunkCodebaseIndex.ts b/core/indexing/chunk/ChunkCodebaseIndex.ts index 355aefdbc..4c2be95a2 100644 --- a/core/indexing/chunk/ChunkCodebaseIndex.ts +++ b/core/indexing/chunk/ChunkCodebaseIndex.ts @@ -1,23 +1,24 @@ -import { Chunk, IndexTag, IndexingProgressUpdate } from "../.."; -import { ContinueServerClient } from "../../continueServer/stubs/client"; -import { MAX_CHUNK_SIZE } from "../../llm/constants"; -import { getBasename } from "../../util"; -import { DatabaseConnection, SqliteDb, tagToString } from "../refreshIndex"; +import { IContinueServerClient } from "../../continueServer/interface.js"; +import { Chunk, IndexTag, IndexingProgressUpdate } from "../../index.js"; +import { MAX_CHUNK_SIZE } from "../../llm/constants.js"; +import { getBasename } from "../../util/index.js"; +import { DatabaseConnection, SqliteDb, tagToString } from "../refreshIndex.js"; import { - CodebaseIndex, IndexResultType, MarkCompleteCallback, RefreshIndexResults, -} from "../types"; -import { chunkDocument } from "./chunk"; + type CodebaseIndex, +} from "../types.js"; +import { chunkDocument } from "./chunk.js"; export class ChunkCodebaseIndex implements CodebaseIndex { - static artifactId: string = "chunks"; + relativeExpectedTime: number = 1; + static artifactId = "chunks"; artifactId: string = ChunkCodebaseIndex.artifactId; constructor( private readonly readFile: (filepath: string) => Promise, - private readonly continueServerClient?: ContinueServerClient, + private readonly continueServerClient: IContinueServerClient, ) { this.readFile = readFile; } @@ -53,7 +54,7 @@ export class ChunkCodebaseIndex implements CodebaseIndex { async function handleChunk(chunk: Chunk) { const { lastID } = await db.run( - `INSERT INTO chunks (cacheKey, path, idx, startLine, endLine, content) VALUES (?, ?, ?, ?, ?, ?)`, + "INSERT INTO chunks (cacheKey, path, idx, startLine, endLine, content) VALUES (?, ?, ?, ?, ?, ?)", [ chunk.digest, chunk.filepath, @@ -64,14 +65,14 @@ export class ChunkCodebaseIndex implements CodebaseIndex { ], ); - await db.run(`INSERT INTO chunk_tags (chunkId, tag) VALUES (?, ?)`, [ + await db.run("INSERT INTO chunk_tags (chunkId, tag) VALUES (?, ?)", [ lastID, tagString, ]); } // Check the remote cache - if (this.continueServerClient !== undefined) { + if (this.continueServerClient.connected) { try { const keys = results.compute.map(({ cacheKey }) => cacheKey); const resp = await this.continueServerClient.getFromIndexCache( @@ -93,6 +94,9 @@ export class ChunkCodebaseIndex implements CodebaseIndex { } } + const progressReservedForTagging = 0.3; + let accumulatedProgress = 0; + // Compute chunks for new files const contents = await Promise.all( results.compute.map(({ path }) => this.readFile(path)), @@ -101,7 +105,7 @@ export class ChunkCodebaseIndex implements CodebaseIndex { const item = results.compute[i]; // Insert chunks - for await (let chunk of chunkDocument( + for await (const chunk of chunkDocument( item.path, contents[i], MAX_CHUNK_SIZE, @@ -110,8 +114,10 @@ export class ChunkCodebaseIndex implements CodebaseIndex { handleChunk(chunk); } + accumulatedProgress = + (i / results.compute.length) * (1 - progressReservedForTagging); yield { - progress: i / results.compute.length, + progress: accumulatedProgress, desc: `Chunking ${getBasename(item.path)}`, status: "indexing", }; @@ -121,18 +127,24 @@ export class ChunkCodebaseIndex implements CodebaseIndex { // Add tag for (const item of results.addTag) { const chunksWithPath = await db.all( - `SELECT * FROM chunks WHERE cacheKey = ?`, + "SELECT * FROM chunks WHERE cacheKey = ?", [item.cacheKey], ); for (const chunk of chunksWithPath) { - await db.run(`INSERT INTO chunk_tags (chunkId, tag) VALUES (?, ?)`, [ + await db.run("INSERT INTO chunk_tags (chunkId, tag) VALUES (?, ?)", [ chunk.id, tagString, ]); } markComplete([item], IndexResultType.AddTag); + accumulatedProgress += 1 / results.addTag.length / 4; + yield { + progress: accumulatedProgress, + desc: `Chunking ${getBasename(item.path)}`, + status: "indexing", + }; } // Remove tag @@ -149,20 +161,32 @@ export class ChunkCodebaseIndex implements CodebaseIndex { [tagString, item.cacheKey, item.path], ); markComplete([item], IndexResultType.RemoveTag); + accumulatedProgress += 1 / results.removeTag.length / 4; + yield { + progress: accumulatedProgress, + desc: `Removing ${getBasename(item.path)}`, + status: "indexing", + }; } // Delete for (const item of results.del) { - const deleted = await db.run(`DELETE FROM chunks WHERE cacheKey = ?`, [ + const deleted = await db.run("DELETE FROM chunks WHERE cacheKey = ?", [ item.cacheKey, ]); // Delete from chunk_tags - await db.run(`DELETE FROM chunk_tags WHERE chunkId = ?`, [ + await db.run("DELETE FROM chunk_tags WHERE chunkId = ?", [ deleted.lastID, ]); markComplete([item], IndexResultType.Delete); + accumulatedProgress += 1 / results.del.length / 4; + yield { + progress: accumulatedProgress, + desc: `Removing ${getBasename(item.path)}`, + status: "indexing", + }; } } -} +} \ No newline at end of file diff --git a/core/indexing/chunk/basic.ts b/core/indexing/chunk/basic.ts index 454e80202..ce2f06344 100644 --- a/core/indexing/chunk/basic.ts +++ b/core/indexing/chunk/basic.ts @@ -1,10 +1,14 @@ -import { ChunkWithoutID } from "../.."; -import { countTokens } from "../../llm/countTokens"; +import { ChunkWithoutID } from "../../index.js"; +import { countTokens } from "../../llm/countTokens.js"; export function* basicChunker( contents: string, maxChunkSize: number, ): Generator { + if (contents.trim().length === 0) { + return; + } + let chunkContent = ""; let chunkTokens = 0; let startLine = 0; @@ -20,7 +24,7 @@ export function* basicChunker( } if (lineTokens < maxChunkSize) { - chunkContent += line + "\n"; + chunkContent += `${line}\n`; chunkTokens += lineTokens + 1; } diff --git a/core/indexing/chunk/chunk.ts b/core/indexing/chunk/chunk.ts index e37d999d6..6ecacf5ce 100644 --- a/core/indexing/chunk/chunk.ts +++ b/core/indexing/chunk/chunk.ts @@ -1,9 +1,8 @@ -import { Chunk, ChunkWithoutID } from "../.."; -import { MAX_CHUNK_SIZE } from "../../llm/constants"; -import { countTokens } from "../../llm/countTokens"; -import { supportedLanguages } from "../../util/treeSitter"; -import { basicChunker } from "./basic"; -import { codeChunker } from "./code"; +import { Chunk, ChunkWithoutID } from "../../index.js"; +import { countTokens } from "../../llm/countTokens.js"; +import { supportedLanguages } from "../../util/treeSitter.js"; +import { basicChunker } from "./basic.js"; +import { codeChunker } from "./code.js"; async function* chunkDocumentWithoutId( filepath: string, @@ -38,12 +37,12 @@ export async function* chunkDocument( digest: string, ): AsyncGenerator { let index = 0; - for await (let chunkWithoutId of chunkDocumentWithoutId( + for await (const chunkWithoutId of chunkDocumentWithoutId( filepath, contents, maxChunkSize, )) { - if (countTokens(chunkWithoutId.content) > MAX_CHUNK_SIZE) { + if (countTokens(chunkWithoutId.content) > maxChunkSize) { console.warn( `Chunk with more than ${maxChunkSize} tokens constructed: `, filepath, diff --git a/core/indexing/chunk/code.ts b/core/indexing/chunk/code.ts index a772d3c20..faf2248b9 100644 --- a/core/indexing/chunk/code.ts +++ b/core/indexing/chunk/code.ts @@ -57,7 +57,10 @@ function collapseChildren( } code = code.slice(node.startIndex); let removedChild = false; - while (countTokens(code) > maxChunkSize && collapsedChildren.length > 0) { + while ( + countTokens(code.trim()) > maxChunkSize && + collapsedChildren.length > 0 + ) { removedChild = true; // Remove children starting at the end - TODO: Add multiple chunks so no children are missing const childCode = collapsedChildren.pop()!; @@ -100,6 +103,7 @@ export const FUNCTION_DECLARATION_NODE_TYPEs = [ "function_definition", "function_item", "function_declaration", + "method_declaration", ]; function constructClassDefinitionChunk( @@ -213,4 +217,4 @@ export async function* codeChunker( const tree = parser.parse(contents); yield* getSmartCollapsedChunks(tree.rootNode, contents, maxChunkSize); -} \ No newline at end of file +} diff --git a/core/indexing/chunk/markdown.ts b/core/indexing/chunk/markdown.ts index 0542004b0..ad4594dde 100644 --- a/core/indexing/chunk/markdown.ts +++ b/core/indexing/chunk/markdown.ts @@ -1,6 +1,6 @@ -import { ChunkWithoutID } from "../.."; -import { countTokens } from "../../llm/countTokens"; -import { basicChunker } from "./basic"; +import { ChunkWithoutID } from "../../index.js"; +import { countTokens } from "../../llm/countTokens.js"; +import { basicChunker } from "./basic.js"; export function cleanFragment( fragment: string | undefined, @@ -74,7 +74,8 @@ export async function* markdownChunker( }, }; return; - } else if (hLevel > 4) { + } + if (hLevel > 4) { const header = findHeader(content.split("\n")); for (const chunk of basicChunker(content, maxChunkSize)) { @@ -89,7 +90,7 @@ export async function* markdownChunker( return; } - const h = "#".repeat(hLevel + 1) + " "; + const h = `${"#".repeat(hLevel + 1)} `; const lines = content.split("\n"); const sections = []; @@ -131,7 +132,7 @@ export async function* markdownChunker( hLevel + 1, )) { yield { - content: section.header + "\n" + chunk.content, + content: `${section.header}\n${chunk.content}`, startLine: section.startLine + chunk.startLine, endLine: section.startLine + chunk.endLine, otherMetadata: { diff --git a/core/indexing/docs/DocsService.ts b/core/indexing/docs/DocsService.ts new file mode 100644 index 000000000..9cd8feb5f --- /dev/null +++ b/core/indexing/docs/DocsService.ts @@ -0,0 +1,308 @@ +import { open, type Database } from "sqlite"; +import sqlite3 from "sqlite3"; +import { + Chunk, + EmbeddingsProvider, + IndexingProgressUpdate, + SiteIndexingConfig, +} from "../../index.js"; +import { getDocsSqlitePath, getLanceDbPath } from "../../util/paths.js"; + +import { Article, chunkArticle, pageToArticle } from "./article.js"; +import { crawlPage } from "./crawl.js"; +import { downloadFromS3, SiteIndexingResults } from "./preIndexed.js"; +import { default as configs } from "./preIndexedDocs.js"; + +// Purposefully lowercase because lancedb converts +interface LanceDbDocsRow { + title: string; + baseurl: string; + // Chunk + content: string; + path: string; + startline: number; + endline: number; + vector: number[]; + [key: string]: any; +} + +export class DocsService { + private static instance: DocsService; + private static DOCS_TABLE_NAME = "docs"; + private _sqliteTable: Database | undefined; + private docsIndexingQueue: Set = new Set(); + + public static getInstance(): DocsService { + if (!DocsService.instance) { + DocsService.instance = new DocsService(); + } + return DocsService.instance; + } + + private async getSqliteTable() { + if (!this._sqliteTable) { + this._sqliteTable = await open({ + filename: getDocsSqlitePath(), + driver: sqlite3.Database, + }); + + this._sqliteTable.exec(`CREATE TABLE IF NOT EXISTS docs ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + title STRING NOT NULL, + baseUrl STRING NOT NULL UNIQUE + )`); + } + + return this._sqliteTable; + } + + private async getLanceDb() { + const lancedb = await import("vectordb"); + const lance = await lancedb.connect(getLanceDbPath()); + return lance; + } + + async retrieve( + baseUrl: string, + vector: number[], + nRetrieve: number, + embeddingsProviderId: string, + nested = false, + ): Promise { + const lance = await this.getLanceDb(); + const db = await this.getSqliteTable(); + + const downloadDocs = async () => { + const config = configs.find((config) => config.startUrl === baseUrl); + if (config) { + await this.downloadPreIndexedDocs(embeddingsProviderId, config.title); + return await this.retrieve( + baseUrl, + vector, + nRetrieve, + embeddingsProviderId, + true, + ); + } + return undefined; + }; + + const tableNames = await lance.tableNames(); + if (!tableNames.includes(DocsService.DOCS_TABLE_NAME)) { + const downloaded = await downloadDocs(); + if (downloaded) { + return downloaded; + } + } + + const table = await lance.openTable(DocsService.DOCS_TABLE_NAME); + let docs: LanceDbDocsRow[] = await table + .search(vector) + .limit(nRetrieve) + .where(`baseurl = '${baseUrl}'`) + .execute(); + + docs = docs.filter((doc) => doc.baseurl === baseUrl); + + if ((!docs || docs.length === 0) && !nested) { + const downloaded = await downloadDocs(); + if (downloaded) { + return downloaded; + } + } + + return docs.map((doc) => ({ + digest: doc.path, + filepath: doc.path, + startLine: doc.startline, + endLine: doc.endline, + index: 0, + content: doc.content, + otherMetadata: { + title: doc.title, + }, + })); + } + + private async add( + title: string, + baseUrl: URL, + chunks: Chunk[], + embeddings: number[][], + ) { + const data: LanceDbDocsRow[] = chunks.map((chunk, i) => ({ + title: chunk.otherMetadata?.title || title, + baseurl: baseUrl.toString(), + content: chunk.content, + path: chunk.filepath, + startline: chunk.startLine, + endline: chunk.endLine, + vector: embeddings[i], + })); + + const lance = await this.getLanceDb(); + const tableNames = await lance.tableNames(); + if (!tableNames.includes(DocsService.DOCS_TABLE_NAME)) { + await lance.createTable(DocsService.DOCS_TABLE_NAME, data); + } else { + const table = await lance.openTable(DocsService.DOCS_TABLE_NAME); + await table.add(data); + } + + // Only after add it to SQLite + const db = await this.getSqliteTable(); + await db.run( + "INSERT INTO docs (title, baseUrl) VALUES (?, ?)", + title, + baseUrl.toString(), + ); + } + + async list(): Promise<{ title: string; baseUrl: string }[]> { + const db = await this.getSqliteTable(); + const docs = db.all("SELECT title, baseUrl FROM docs"); + return docs; + } + + async delete(baseUrl: string) { + const db = await this.getSqliteTable(); + await db.run("DELETE FROM docs WHERE baseUrl = ?", baseUrl); + const lance = await this.getLanceDb(); + const tableNames = await lance.tableNames(); + if (tableNames.includes(DocsService.DOCS_TABLE_NAME)) { + const table = await lance.openTable(DocsService.DOCS_TABLE_NAME); + await table.delete(`baseurl = '${baseUrl}'`); + } + } + + async has(baseUrl: string) { + const db = await this.getSqliteTable(); + const doc = await db.get( + "SELECT title FROM docs WHERE baseUrl =?", + baseUrl, + ); + return !!doc; + } + + private async downloadPreIndexedDocs( + embeddingsProviderId: string, + title: string, + ) { + const data = await downloadFromS3( + "continue-indexed-docs", + `${embeddingsProviderId}/${title}`, + "us-west-1", + ); + const results = JSON.parse(data) as SiteIndexingResults; + await this.add( + results.title, + new URL(results.url), + results.chunks, + results.chunks.map((c) => c.embedding), + ); + } + + async *indexAndAdd( + siteIndexingConfig: SiteIndexingConfig, + embeddingsProvider: EmbeddingsProvider, + reIndex: boolean = false, + ): AsyncGenerator { + const startUrl = new URL(siteIndexingConfig.startUrl.toString()); + + if (this.docsIndexingQueue.has(startUrl.toString())) { + console.log("Already in queue"); + return; + } + + if (!reIndex && await this.has(startUrl.toString())) { + yield { + progress: 1, + desc: "Already indexed", + status: "done", + }; + return; + } + + // Mark the site as currently being indexed + this.docsIndexingQueue.add(startUrl.toString()); + + yield { + progress: 0, + desc: "Finding subpages", + status: "indexing", + }; + + const articles: Article[] = []; + let processedPages = 0; + let maxKnownPages = 1; + + // Crawl pages and retrieve info as articles + for await (const page of crawlPage(startUrl, siteIndexingConfig.maxDepth)) { + processedPages++; + const article = pageToArticle(page); + if (!article) { + continue; + } + articles.push(article); + + // Use a heuristic approach for progress calculation + const progress = Math.min(processedPages / maxKnownPages, 1); + + yield { + progress, // Yield the heuristic progress + desc: `Finding subpages (${page.path})`, + status: "indexing", + }; + + // Increase maxKnownPages to delay progress reaching 100% too soon + if (processedPages === maxKnownPages) { + maxKnownPages *= 2; + } + } + + const chunks: Chunk[] = []; + const embeddings: number[][] = []; + + // Create embeddings of retrieved articles + console.log("Creating Embeddings for ", articles.length, " articles"); + for (let i = 0; i < articles.length; i++) { + const article = articles[i]; + yield { + progress: i / articles.length, + desc: `Creating Embeddings: ${article.subpath}`, + status: "indexing", + }; + + try { + const subpathEmbeddings = await embeddingsProvider.embed( + chunkArticle(article, embeddingsProvider.maxChunkSize).map((chunk) => { + chunks.push(chunk); + + return chunk.content; + }), + ); + + embeddings.push(...subpathEmbeddings); + } catch (e) { + console.warn("Error chunking article: ", e); + } + } + + // Add docs to databases + console.log("Adding ", embeddings.length, " embeddings to db"); + yield { + progress: 0.5, + desc: `Adding ${embeddings.length} embeddings to db`, + status: "indexing", + }; + + await this.add(siteIndexingConfig.title, startUrl, chunks, embeddings); + this.docsIndexingQueue.delete(startUrl.toString()); + + yield { + progress: 1, + desc: "Done", + status: "done", + }; + } +} diff --git a/core/indexing/docs/article.ts b/core/indexing/docs/article.ts index e97bd3aec..d1f6a94a7 100644 --- a/core/indexing/docs/article.ts +++ b/core/indexing/docs/article.ts @@ -1,9 +1,8 @@ import { Readability } from "@mozilla/readability"; import { JSDOM } from "jsdom"; -import { Chunk } from "../.."; -import { MAX_CHUNK_SIZE } from "../../llm/constants"; -import { cleanFragment, cleanHeader } from "../chunk/markdown"; -import { PageData } from "./crawl"; +import { Chunk } from "../../index.js"; +import { cleanFragment, cleanHeader } from "../chunk/markdown.js"; +import { PageData } from "./crawl.js"; export type ArticleComponent = { title: string; @@ -21,19 +20,20 @@ function breakdownArticleComponent( url: string, article: ArticleComponent, subpath: string, + max_chunk_size: number, ): Chunk[] { - let chunks: Chunk[] = []; + const chunks: Chunk[] = []; - let lines = article.body.split("\n"); + const lines = article.body.split("\n"); let startLine = 0; let endLine = 0; let content = ""; let index = 0; for (let i = 0; i < lines.length; i++) { - let line = lines[i]; - if (content.length + line.length <= MAX_CHUNK_SIZE) { - content += line + "\n"; + const line = lines[i]; + if (content.length + line.length <= max_chunk_size) { + content += `${line}\n`; endLine = i; } else { chunks.push({ @@ -45,12 +45,12 @@ function breakdownArticleComponent( }, index: index, filepath: new URL( - subpath + `#${cleanFragment(article.title)}`, + `${subpath}#${cleanFragment(article.title)}`, url, ).toString(), digest: subpath, }); - content = line + "\n"; + content = `${line}\n`; startLine = i; endLine = i; index += 1; @@ -68,7 +68,7 @@ function breakdownArticleComponent( }, index: index, filepath: new URL( - subpath + `#${cleanFragment(article.title)}`, + `${subpath}#${cleanFragment(article.title)}`, url, ).toString(), digest: subpath, @@ -79,14 +79,18 @@ function breakdownArticleComponent( return chunks.filter((c) => c.content.trim().length > 20); } -export function chunkArticle(articleResult: Article): Chunk[] { +export function chunkArticle( + articleResult: Article, + maxChunkSize: number, +): Chunk[] { let chunks: Chunk[] = []; - for (let article of articleResult.article_components) { - let articleChunks = breakdownArticleComponent( + for (const article of articleResult.article_components) { + const articleChunks = breakdownArticleComponent( articleResult.url, article, articleResult.subpath, + maxChunkSize, ); chunks = [...chunks, ...articleChunks]; } @@ -122,14 +126,14 @@ export function stringToArticle( ): Article | undefined { try { const dom = new JSDOM(html); - let reader = new Readability(dom.window.document); - let article = reader.parse(); + const reader = new Readability(dom.window.document); + const article = reader.parse(); if (!article) { return undefined; } - let article_components = extractTitlesAndBodies(article.content); + const article_components = extractTitlesAndBodies(article.content); return { url, diff --git a/core/indexing/docs/crawl.ts b/core/indexing/docs/crawl.ts index 66b360824..376c7f40c 100644 --- a/core/indexing/docs/crawl.ts +++ b/core/indexing/docs/crawl.ts @@ -203,4 +203,4 @@ export async function* crawlPage( index += batch.length; // Proceed to next batch } console.log("Crawl completed"); -} \ No newline at end of file +} diff --git a/core/indexing/docs/db.ts b/core/indexing/docs/db.ts deleted file mode 100644 index 2e94aba91..000000000 --- a/core/indexing/docs/db.ts +++ /dev/null @@ -1,149 +0,0 @@ -import { Database, open } from "sqlite"; -import sqlite3 from "sqlite3"; -import { Chunk } from "../.."; -import { getDocsSqlitePath, getLanceDbPath } from "../../util/paths"; - -import { downloadPreIndexedDocs } from "./preIndexed"; -import { default as configs } from "./preIndexedDocs"; - -const DOCS_TABLE_NAME = "docs"; - -// Purposefully lowercase because lancedb converts -interface LanceDbDocsRow { - title: string; - baseurl: string; - // Chunk - content: string; - path: string; - startline: number; - endline: number; - vector: number[]; - [key: string]: any; -} - -let dbDocs: Database; - -async function getDBDocs() { - if (!dbDocs) { - dbDocs = await open({ - filename: getDocsSqlitePath(), - driver: sqlite3.Database, - }); - - dbDocs.exec(`CREATE TABLE IF NOT EXISTS docs ( - id INTEGER PRIMARY KEY AUTOINCREMENT, - title STRING NOT NULL, - baseUrl STRING NOT NULL UNIQUE - )`); - } - - return dbDocs; -} - -export async function retrieveDocs( - baseUrl: string, - vector: number[], - nRetrieve: number, - embeddingsProviderId: string, - nested: boolean = false, -): Promise { - const lancedb = await import("vectordb"); - const db = await getDBDocs(); - const lance = await lancedb.connect(getLanceDbPath()); - - const downloadDocs = async () => { - const config = configs.find((config) => config.startUrl === baseUrl); - if (config) { - await downloadPreIndexedDocs(embeddingsProviderId, config.title); - return await retrieveDocs( - baseUrl, - vector, - nRetrieve, - embeddingsProviderId, - true, - ); - } - return undefined; - }; - - const tableNames = await lance.tableNames(); - if (!tableNames.includes(DOCS_TABLE_NAME)) { - const downloaded = await downloadDocs(); - if (downloaded) return downloaded; - } - - const table = await lance.openTable(DOCS_TABLE_NAME); - let docs: LanceDbDocsRow[] = await table - .search(vector) - .limit(nRetrieve) - .where(`baseurl = '${baseUrl}'`) - .execute(); - - docs = docs.filter((doc) => doc.baseurl === baseUrl); - - if ((!docs || docs.length === 0) && !nested) { - const downloaded = await downloadDocs(); - if (downloaded) return downloaded; - } - - return docs.map((doc) => ({ - digest: doc.path, - filepath: doc.path, - startLine: doc.startline, - endLine: doc.endline, - index: 0, - content: doc.content, - otherMetadata: { - title: doc.title, - }, - })); -} - -export async function addDocs( - title: string, - baseUrl: URL, - chunks: Chunk[], - embeddings: number[][], -) { - const data: LanceDbDocsRow[] = chunks.map((chunk, i) => ({ - title: chunk.otherMetadata?.title || title, - baseurl: baseUrl.toString(), - content: chunk.content, - path: chunk.filepath, - startline: chunk.startLine, - endline: chunk.endLine, - vector: embeddings[i], - })); - - const lancedb = await import("vectordb"); - const lance = await lancedb.connect(getLanceDbPath()); - const tableNames = await lance.tableNames(); - if (!tableNames.includes(DOCS_TABLE_NAME)) { - await lance.createTable(DOCS_TABLE_NAME, data); - } else { - const table = await lance.openTable(DOCS_TABLE_NAME); - await table.add(data); - } - - // Only after add it to SQLite - const db = await getDBDocs(); - await db.run( - `INSERT INTO docs (title, baseUrl) VALUES (?, ?)`, - title, - baseUrl.toString(), - ); -} - -export async function listDocs(): Promise< - { title: string; baseUrl: string }[] -> { - const db = await getDBDocs(); - const docs = db.all(`SELECT title, baseUrl FROM docs`); - return docs; -} - -export async function hasDoc(baseUrl: string) { - const db = await getDBDocs(); - const doc = await db.get(`SELECT title FROM docs WHERE baseUrl =?`, baseUrl); - return !!doc; -} diff --git a/core/indexing/docs/index.ts b/core/indexing/docs/index.ts deleted file mode 100644 index d3248ceca..000000000 --- a/core/indexing/docs/index.ts +++ /dev/null @@ -1,86 +0,0 @@ -import { - Chunk, - EmbeddingsProvider, - IndexingProgressUpdate, -} from "../../index.js"; - -import { SiteIndexingConfig } from "../../index.js"; -import { Article, chunkArticle, pageToArticle } from "./article.js"; -import { crawlPage } from "./crawl.js"; -import { addDocs, hasDoc } from "./db.js"; - -export async function* indexDocs( - siteIndexingConfig: SiteIndexingConfig, - embeddingsProvider: EmbeddingsProvider, -): AsyncGenerator { - const startUrl = new URL(siteIndexingConfig.startUrl); - - if (await hasDoc(siteIndexingConfig.startUrl.toString())) { - yield { - progress: 1, - desc: "Already indexed", - status: "done", - }; - return; - } - - yield { - progress: 0, - desc: "Finding subpages", - status: "indexing", - }; - - const articles: Article[] = []; - - // Crawl pages and retrieve info as articles - for await (const page of crawlPage(startUrl, siteIndexingConfig.maxDepth)) { - const article = pageToArticle(page); - if (!article) { - continue; - } - articles.push(article); - - yield { - progress: 0, - desc: `Finding subpages (${page.path})`, - status: "indexing", - }; - } - - const chunks: Chunk[] = []; - const embeddings: number[][] = []; - - // Create embeddings of retrieved articles - console.log("Creating Embeddings for ", articles.length, " articles"); - for (const article of articles) { - yield { - progress: Math.max(1, Math.floor(100 / (articles.length + 1))), - desc: `${article.subpath}`, - status: "indexing", - }; - - try { - const subpathEmbeddings = await embeddingsProvider.embed( - chunkArticle(article).map((chunk) => { - chunks.push(chunk); - - return chunk.content; - }), - ); - - embeddings.push(...subpathEmbeddings); - } catch (e) { - console.warn("Error chunking article: ", e); - } - } - - // Add docs to databases - console.log("Adding ", embeddings.length, " embeddings to db"); - await addDocs(siteIndexingConfig.title, startUrl, chunks, embeddings); - - yield { - progress: 1, - desc: "Done", - status: "done", - }; -} \ No newline at end of file diff --git a/core/indexing/docs/preIndexed.ts b/core/indexing/docs/preIndexed.ts index 7b5c6f9a6..6f48e7d3b 100644 --- a/core/indexing/docs/preIndexed.ts +++ b/core/indexing/docs/preIndexed.ts @@ -1,5 +1,4 @@ -import { Chunk } from "../.."; -import { addDocs } from "./db"; +import { Chunk } from "../../index.js"; const request = require("request"); @@ -39,21 +38,3 @@ export interface SiteIndexingResults { url: string; title: string; } - -export async function downloadPreIndexedDocs( - embeddingsProviderId: string, - title: string, -) { - const data = await downloadFromS3( - "continue-indexed-docs", - `${embeddingsProviderId}/${title}`, - "us-west-1", - ); - const results = JSON.parse(data) as SiteIndexingResults; - await addDocs( - results.title, - new URL(results.url), - results.chunks, - results.chunks.map((c) => c.embedding), - ); -} diff --git a/core/indexing/docs/preIndexedDocs.ts b/core/indexing/docs/preIndexedDocs.ts index 2fe2fe415..8277adec5 100644 --- a/core/indexing/docs/preIndexedDocs.ts +++ b/core/indexing/docs/preIndexedDocs.ts @@ -1,220 +1,300 @@ -export interface SiteIndexingConfig { - startUrl: string; - title: string; - rootUrl: string; -} +import { SiteIndexingConfig } from "../../index.js"; const configs: SiteIndexingConfig[] = [ { title: "Jinja", startUrl: "https://jinja.palletsprojects.com/en/3.1.x/", rootUrl: "https://jinja.palletsprojects.com/en/3.1.x/", + faviconUrl: "https://jinja.palletsprojects.com/favicon.ico", }, { title: "React", startUrl: "https://react.dev/reference/", rootUrl: "https://react.dev/reference/", + faviconUrl: "https://react.dev/favicon.ico", }, { title: "PostHog", startUrl: "https://posthog.com/docs", rootUrl: "https://posthog.com/docs", + faviconUrl: "https://posthog.com/favicon.ico", }, { title: "Express", startUrl: "https://expressjs.com/en/5x/api.html", rootUrl: "https://expressjs.com/en/5x/", + faviconUrl: "https://expressjs.com/favicon.ico", }, { title: "OpenAI", startUrl: "https://platform.openai.com/docs/", rootUrl: "https://platform.openai.com/docs/", + faviconUrl: "https://platform.openai.com/favicon.ico", }, { title: "Prisma", startUrl: "https://www.prisma.io/docs", rootUrl: "https://www.prisma.io/docs", + faviconUrl: "https://www.prisma.io/favicon.ico", }, { title: "Boto3", startUrl: "https://boto3.amazonaws.com/v1/documentation/api/latest/index.html", rootUrl: "https://boto3.amazonaws.com/v1/documentation/api/latest/", + faviconUrl: "https://boto3.amazonaws.com/favicon.ico", }, { title: "Pytorch", startUrl: "https://pytorch.org/docs/stable/", rootUrl: "https://pytorch.org/docs/stable/", + faviconUrl: "https://pytorch.org/favicon.ico", }, { title: "Redis", startUrl: "https://redis.io/docs/", rootUrl: "https://redis.io/docs/", + faviconUrl: "https://redis.io/favicon.ico", }, { title: "Axios", startUrl: "https://axios-http.com/docs/intro", rootUrl: "https://axios-http.com/docs", + faviconUrl: "https://axios-http.com/favicon.ico", }, { title: "Redwood JS", startUrl: "https://redwoodjs.com/docs/introduction", rootUrl: "https://redwoodjs.com/docs", + faviconUrl: "https://redwoodjs.com/favicon.ico", }, { title: "GraphQL", startUrl: "https://graphql.org/learn/", rootUrl: "https://graphql.org/learn/", + faviconUrl: "https://graphql.org/favicon.ico", }, { title: "Typescript", startUrl: "https://www.typescriptlang.org/docs/", rootUrl: "https://www.typescriptlang.org/docs/", + faviconUrl: "https://www.typescriptlang.org/favicon.ico", }, { title: "Jest", startUrl: "https://jestjs.io/docs/getting-started", rootUrl: "https://jestjs.io/docs", + faviconUrl: "https://jestjs.io/favicon.ico", }, { title: "Tailwind CSS", startUrl: "https://tailwindcss.com/docs/installation", rootUrl: "https://tailwindcss.com/docs", + faviconUrl: "https://tailwindcss.com/favicon.ico", }, { title: "Vue.js", startUrl: "https://vuejs.org/guide/introduction.html", rootUrl: "https://vuejs.org", + faviconUrl: "https://vuejs.org/favicon.ico", }, { title: "Svelte", startUrl: "https://svelte.dev/docs/introduction", rootUrl: "https://svelte.dev/docs", + faviconUrl: "https://svelte.dev/favicon.ico", }, { title: "GitHub Actions", startUrl: "https://docs.github.com/en/actions", rootUrl: "https://docs.github.com/en/actions", + faviconUrl: "https://docs.github.com/favicon.ico", }, { title: "NodeJS", startUrl: "https://nodejs.org/docs/latest/api/", rootUrl: "https://nodejs.org/docs/latest/api/", + faviconUrl: "https://nodejs.org/favicon.ico", }, { title: "Socket.io", startUrl: "https://socket.io/docs/v4/", rootUrl: "https://socket.io/docs/v4/", + faviconUrl: "https://socket.io/favicon.ico", }, { title: "Gradle", startUrl: "https://docs.gradle.org/current/userguide/userguide.html", rootUrl: "https://docs.gradle.org/current", + faviconUrl: "https://docs.gradle.org/favicon.ico", }, { title: "Redux Toolkit", startUrl: "https://redux-toolkit.js.org/introduction/getting-started", rootUrl: "https://redux-toolkit.js.org", + faviconUrl: "https://redux-toolkit.js.org/favicon.ico", }, { title: "Chroma", startUrl: "https://docs.trychroma.com/", rootUrl: "https://docs.trychroma.com/", + faviconUrl: "https://docs.trychroma.com/favicon.ico", }, { title: "SQLite", startUrl: "https://www.sqlite.org/docs.html", rootUrl: "https://www.sqlite.org", + faviconUrl: "https://www.sqlite.org/favicon.ico", }, { title: "Redux", startUrl: "https://redux.js.org/introduction/getting-started", rootUrl: "https://redux.js.org", + faviconUrl: "https://redux.js.org/favicon.ico", }, { title: "Prettier", startUrl: "https://prettier.io/docs/en/", rootUrl: "https://prettier.io/docs/en/", + faviconUrl: "https://prettier.io/favicon.ico", }, { title: "VS Code Extension API", startUrl: "https://code.visualstudio.com/api", rootUrl: "https://code.visualstudio.com/api", + faviconUrl: "https://code.visualstudio.com/favicon.ico", }, { title: "Continue", - startUrl: "https://continue.dev/docs/intro", - rootUrl: "https://continue.dev/docs", + startUrl: "https://docs.continue.dev/intro", + rootUrl: "https://docs.continue.dev", + faviconUrl: "https://docs.continue.dev/favicon.ico", }, { title: "jQuery", startUrl: "https://api.jquery.com/", rootUrl: "https://api.jquery.com/", + faviconUrl: "https://api.jquery.com/favicon.ico", }, { title: "Python", startUrl: "https://docs.python.org/3/", rootUrl: "https://docs.python.org/3/", + faviconUrl: "https://docs.python.org/favicon.ico", }, { title: "Rust", startUrl: "https://doc.rust-lang.org/book/", rootUrl: "https://doc.rust-lang.org/book/", + faviconUrl: "https://doc.rust-lang.org/favicon.ico", }, { title: "IntelliJ Platform SDK", startUrl: "https://plugins.jetbrains.com/docs/intellij/welcome.html", rootUrl: "https://plugins.jetbrains.com/docs/intellij", + faviconUrl: "https://plugins.jetbrains.com/favicon.ico", }, { title: "Docker", startUrl: "https://docs.docker.com/", rootUrl: "https://docs.docker.com/", + faviconUrl: "https://docs.docker.com/favicon.ico", }, { title: "NPM", startUrl: "https://docs.npmjs.com/", rootUrl: "https://docs.npmjs.com/", + faviconUrl: "https://docs.npmjs.com/favicon.ico", }, { title: "TipTap", startUrl: "https://tiptap.dev/docs/editor/introduction", rootUrl: "https://tiptap.dev/docs", + faviconUrl: "https://tiptap.dev/favicon.ico", }, { title: "esbuild", startUrl: "https://esbuild.github.io/", rootUrl: "https://esbuild.github.io/", + faviconUrl: "https://esbuild.github.io/favicon.ico", }, { title: "Tree Sitter", startUrl: "https://tree-sitter.github.io/tree-sitter/", rootUrl: "https://tree-sitter.github.io/tree-sitter/", + faviconUrl: "https://tree-sitter.github.io/favicon.ico", }, { title: "Netlify", startUrl: "https://docs.netlify.com/", rootUrl: "https://docs.netlify.com/", + faviconUrl: "https://docs.netlify.com/favicon.ico", }, { title: "Replicate", startUrl: "https://replicate.com/docs", rootUrl: "https://replicate.com/docs", + faviconUrl: "https://replicate.com/favicon.ico", }, { title: "HTML", startUrl: "https://www.w3schools.com/html/default.asp", rootUrl: "https://www.w3schools.com/html", + faviconUrl: "https://www.w3schools.com/favicon.ico", }, { title: "CSS", startUrl: "https://www.w3schools.com/css/default.asp", rootUrl: "https://www.w3schools.com/css", + faviconUrl: "https://www.w3schools.com/favicon.ico", }, { title: "Langchain", startUrl: "https://python.langchain.com/docs/get_started/introduction", rootUrl: "https://python.langchain.com/docs", + faviconUrl: "https://python.langchain.com/favicon.ico", + }, + { + title: "WooCommerce", + startUrl: "https://developer.woocommerce.com/docs/", + rootUrl: "https://developer.woocommerce.com/docs/", + faviconUrl: "https://developer.woocommerce.com/favicon.ico", + }, + { + title: "WordPress", + startUrl: "https://developer.wordpress.org/reference/", + rootUrl: "https://developer.wordpress.org/reference/", + faviconUrl: "https://developer.wordpress.org/favicon.ico", + }, + { + title: "PySide6", + startUrl: "https://doc.qt.io/qtforpython-6/quickstart.html", + rootUrl: "https://doc.qt.io/qtforpython-6/api.html", + faviconUrl: "https://doc.qt.io/favicon.ico", + }, + { + title: "Bootstrap", + startUrl: "https://getbootstrap.com/docs/5.3/getting-started/introduction/", + rootUrl: "https://getbootstrap.com/docs/5.3/", + faviconUrl: "https://getbootstrap.com/favicon.ico", + }, + { + title: "Alpine.js", + startUrl: "https://alpinejs.dev/start-here", + rootUrl: "https://alpinejs.dev/", + faviconUrl: "https://alpinejs.dev/favicon.ico", + }, + { + title: "C# Language Reference", + startUrl: "https://learn.microsoft.com/en-us/dotnet/csharp/", + rootUrl: "https://learn.microsoft.com/en-us/dotnet/csharp/", + faviconUrl: "https://learn.microsoft.com/favicon.ico", + }, + { + title: "Godot", + startUrl: "https://docs.godotengine.org/en/latest/", + rootUrl: "https://docs.godotengine.org/en/latest/", + faviconUrl: "https://godotengine.org/favicon.ico", }, ]; diff --git a/core/indexing/embeddings/BaseEmbeddingsProvider.ts b/core/indexing/embeddings/BaseEmbeddingsProvider.ts index 21a12b9a1..3a26f311d 100644 --- a/core/indexing/embeddings/BaseEmbeddingsProvider.ts +++ b/core/indexing/embeddings/BaseEmbeddingsProvider.ts @@ -4,6 +4,8 @@ import { FetchFunction, } from "../../index.js"; +import { MAX_CHUNK_SIZE } from "../../llm/constants.js"; + export interface IBaseEmbeddingsProvider extends EmbeddingsProvider { options: EmbedOptions; fetch: FetchFunction; @@ -29,11 +31,20 @@ abstract class BaseEmbeddingsProvider implements IBaseEmbeddingsProvider { ...options, }; this.fetch = fetch; - this.id = this.options.model || this.constructor.name; + // Include the `max_chunk_size` if it is not the default, since we need to create other indices for different chunk_sizes + if (this.maxChunkSize !== MAX_CHUNK_SIZE) { + this.id = `${this.constructor.name}::${this.options.model}::${this.maxChunkSize}`; + } else { + this.id = `${this.constructor.name}::${this.options.model}`; + } } abstract embed(chunks: string[]): Promise; + get maxChunkSize(): number { + return this.options.maxChunkSize ?? MAX_CHUNK_SIZE; + } + static getBatchedChunks(chunks: string[]): string[][] { if (!this.maxBatchSize) { console.warn( @@ -58,4 +69,4 @@ abstract class BaseEmbeddingsProvider implements IBaseEmbeddingsProvider { } } -export default BaseEmbeddingsProvider; \ No newline at end of file +export default BaseEmbeddingsProvider; diff --git a/core/indexing/embeddings/CohereEmbeddingsProvider.ts b/core/indexing/embeddings/CohereEmbeddingsProvider.ts index 305c56ffa..59dcf23a4 100644 --- a/core/indexing/embeddings/CohereEmbeddingsProvider.ts +++ b/core/indexing/embeddings/CohereEmbeddingsProvider.ts @@ -60,4 +60,4 @@ class CohereEmbeddingsProvider extends BaseEmbeddingsProvider { } } -export default CohereEmbeddingsProvider; \ No newline at end of file +export default CohereEmbeddingsProvider; diff --git a/core/indexing/embeddings/DeepInfraEmbeddingsProvider.ts b/core/indexing/embeddings/DeepInfraEmbeddingsProvider.ts index aee908515..32c482267 100644 --- a/core/indexing/embeddings/DeepInfraEmbeddingsProvider.ts +++ b/core/indexing/embeddings/DeepInfraEmbeddingsProvider.ts @@ -27,4 +27,4 @@ class DeepInfraEmbeddingsProvider extends BaseEmbeddingsProvider { } } -export default DeepInfraEmbeddingsProvider; \ No newline at end of file +export default DeepInfraEmbeddingsProvider; diff --git a/core/indexing/embeddings/FreeTrialEmbeddingsProvider.ts b/core/indexing/embeddings/FreeTrialEmbeddingsProvider.ts index 37d65818a..6d356cef9 100644 --- a/core/indexing/embeddings/FreeTrialEmbeddingsProvider.ts +++ b/core/indexing/embeddings/FreeTrialEmbeddingsProvider.ts @@ -1,7 +1,7 @@ import { Response } from "node-fetch"; import { getHeaders } from "../../continueServer/stubs/headers.js"; -import { EmbedOptions } from "../../index.js"; -import { SERVER_URL } from "../../util/parameters.js"; +import { constants } from "../../deploy/constants.js"; +import { EmbedOptions, FetchFunction } from "../../index.js"; import { withExponentialBackoff } from "../../util/withExponentialBackoff.js"; import BaseEmbeddingsProvider from "./BaseEmbeddingsProvider.js"; @@ -12,6 +12,12 @@ class FreeTrialEmbeddingsProvider extends BaseEmbeddingsProvider { model: "voyage-code-2", }; + constructor(options: EmbedOptions, fetch: FetchFunction) { + super(options, fetch); + this.options.model = FreeTrialEmbeddingsProvider.defaultOptions?.model; + this.id = `${this.constructor.name}::${this.options.model}`; + } + async embed(chunks: string[]) { const batchedChunks = []; for ( @@ -26,9 +32,12 @@ class FreeTrialEmbeddingsProvider extends BaseEmbeddingsProvider { return ( await Promise.all( batchedChunks.map(async (batch) => { + if (batch.length === 0) { + return []; + } const fetchWithBackoff = () => withExponentialBackoff(async () => - this.fetch(new URL("embeddings", SERVER_URL), { + this.fetch(new URL("embeddings", constants.a), { method: "POST", body: JSON.stringify({ input: batch, @@ -56,4 +65,4 @@ class FreeTrialEmbeddingsProvider extends BaseEmbeddingsProvider { } } -export default FreeTrialEmbeddingsProvider; \ No newline at end of file +export default FreeTrialEmbeddingsProvider; diff --git a/core/indexing/embeddings/GeminiEmbeddingsProvider.ts b/core/indexing/embeddings/GeminiEmbeddingsProvider.ts index 1702fb2d7..3de46d5e7 100644 --- a/core/indexing/embeddings/GeminiEmbeddingsProvider.ts +++ b/core/indexing/embeddings/GeminiEmbeddingsProvider.ts @@ -69,4 +69,4 @@ class GeminiEmbeddingsProvider extends BaseEmbeddingsProvider { } } -export default GeminiEmbeddingsProvider; \ No newline at end of file +export default GeminiEmbeddingsProvider; diff --git a/core/indexing/embeddings/HuggingFaceTEIEmbeddingsProvider.ts b/core/indexing/embeddings/HuggingFaceTEIEmbeddingsProvider.ts new file mode 100644 index 000000000..3efaa74dd --- /dev/null +++ b/core/indexing/embeddings/HuggingFaceTEIEmbeddingsProvider.ts @@ -0,0 +1,103 @@ +import fetch, { Response } from "node-fetch"; +import { EmbedOptions, FetchFunction } from "../.."; +import { withExponentialBackoff } from "../../util/withExponentialBackoff"; +import BaseEmbeddingsProvider from "./BaseEmbeddingsProvider"; + +class HuggingFaceTEIEmbeddingsProvider extends BaseEmbeddingsProvider { + private maxBatchSize = 32; + + static defaultOptions: Partial | undefined = { + apiBase: "http://localhost:8080", + model: "tei", + }; + + constructor(options: EmbedOptions, fetch: FetchFunction) { + super(options, fetch); + // without this extra slash the last portion of the path will be dropped from the URL when using the node.js URL constructor + if (!this.options.apiBase?.endsWith("/")) { + this.options.apiBase += "/"; + } + this.doInfoRequest().then(response => { + this.options.model = response.model_id; + this.maxBatchSize = response.max_client_batch_size; + }); + } + + async embed(chunks: string[]) { + const promises = []; + for (let i = 0; i < chunks.length; i += this.maxBatchSize) { + promises.push(this.doEmbedRequest(chunks.slice(i, i + this.maxBatchSize))); + } + const results = await Promise.all(promises); + return results.flat(); + } + + async doEmbedRequest(batch: string[]): Promise { + const resp = await withExponentialBackoff(() => + this.fetch(new URL("embed", this.options.apiBase), { + method: "POST", + body: JSON.stringify({ + inputs: batch + }), + headers: { + "Content-Type": "application/json", + } + }), + ); + if (!resp.ok) { + const text = await resp.text(); + const embedError = JSON.parse(text) as TEIEmbedErrorResponse; + if (!embedError.error_type || !embedError.error) { + throw new Error(text); + } + throw new TEIEmbedError(embedError); + } + return (await resp.json()) as number[][]; + } + + async doInfoRequest(): Promise { + const resp = await withExponentialBackoff(() => + this.fetch(new URL("info", this.options.apiBase), { + method: "GET", + }), + ); + if (!resp.ok) { + throw new Error(await resp.text()); + } + return (await resp.json()) as TEIInfoResponse; + } +} + +class TEIEmbedError extends Error { + constructor(teiResponse: TEIEmbedErrorResponse) { + super(JSON.stringify(teiResponse)); + } +} + +type TEIEmbedErrorResponse = { + error: string + error_type: string +} + +type TEIInfoResponse = { + model_id: string; + model_sha: string; + model_dtype: string; + model_type: { + embedding: { + pooling: string; + } + }; + max_concurrent_requests: number; + max_input_length: number; + max_batch_tokens: number; + max_batch_requests: number; + max_client_batch_size: number; + auto_truncate: boolean; + tokenization_workers: number; + version: string; + sha: string; + docker_label: string; +}; + +export default HuggingFaceTEIEmbeddingsProvider; diff --git a/core/indexing/embeddings/OllamaEmbeddingsProvider.ts b/core/indexing/embeddings/OllamaEmbeddingsProvider.ts index 02d839698..d7fd6bbe0 100644 --- a/core/indexing/embeddings/OllamaEmbeddingsProvider.ts +++ b/core/indexing/embeddings/OllamaEmbeddingsProvider.ts @@ -9,23 +9,29 @@ async function embedOne( options: EmbedOptions, customFetch: FetchFunction, ) { - const fetchWithBackoff = () => - withExponentialBackoff(() => - customFetch(new URL("api/embeddings", options.apiBase), { - method: "POST", - body: JSON.stringify({ - model: options.model, - prompt: chunk, - }), + const embedding = await withExponentialBackoff(async () => { + const resp = await customFetch(new URL("api/embeddings", options.apiBase), { + method: "POST", + body: JSON.stringify({ + model: options.model, + prompt: chunk, }), - ); - const resp = await fetchWithBackoff(); + }); - if (!resp.ok) { - throw new Error(`Failed to embed chunk: ${await resp.text()}`); - } + if (!resp.ok) { + throw new Error(`Failed to embed chunk: ${await resp.text()}`); + } + + const data = await resp.json(); + const embedding = data.embedding; + + if (!embedding || embedding.length === 0) { + throw new Error("Ollama generated empty embedding"); + } + return embedding; + }); - return (await resp.json()).embedding; + return embedding; } class OllamaEmbeddingsProvider extends BaseEmbeddingsProvider { @@ -43,4 +49,4 @@ class OllamaEmbeddingsProvider extends BaseEmbeddingsProvider { } } -export default OllamaEmbeddingsProvider; \ No newline at end of file +export default OllamaEmbeddingsProvider; diff --git a/core/indexing/embeddings/OpenAIEmbeddingsProvider.ts b/core/indexing/embeddings/OpenAIEmbeddingsProvider.ts index 3a50fcc08..01a85ee5e 100644 --- a/core/indexing/embeddings/OpenAIEmbeddingsProvider.ts +++ b/core/indexing/embeddings/OpenAIEmbeddingsProvider.ts @@ -13,11 +13,27 @@ class OpenAIEmbeddingsProvider extends BaseEmbeddingsProvider { model: "text-embedding-3-small", }; - async embed(chunks: string[]) { - if (!this.options.apiBase?.endsWith("/")) { - this.options.apiBase += "/"; + private _getEndpoint() { + if (!this.options.apiBase) { + throw new Error( + "No API base URL provided. Please set the 'apiBase' option in config.json", + ); + } + + this.options.apiBase = this.options.apiBase.endsWith("/") + ? this.options.apiBase + : `${this.options.apiBase}/`; + + if (this.options.apiType === "azure") { + return new URL( + `openai/deployments/${this.options.engine}/embeddings?api-version=${this.options.apiVersion}`, + this.options.apiBase, + ); } + return new URL("embeddings", this.options.apiBase); + } + async embed(chunks: string[]) { const batchedChunks = []; for ( let i = 0; @@ -31,9 +47,13 @@ class OpenAIEmbeddingsProvider extends BaseEmbeddingsProvider { return ( await Promise.all( batchedChunks.map(async (batch) => { + if (batch.length === 0) { + return []; + } + const fetchWithBackoff = () => withExponentialBackoff(() => - this.fetch(new URL("embeddings", this.options.apiBase), { + this.fetch(this._getEndpoint(), { method: "POST", body: JSON.stringify({ input: batch, @@ -42,6 +62,7 @@ class OpenAIEmbeddingsProvider extends BaseEmbeddingsProvider { headers: { Authorization: `Bearer ${this.options.apiKey}`, "Content-Type": "application/json", + "api-key": this.options.apiKey ?? "", // For Azure }, }), ); @@ -61,4 +82,4 @@ class OpenAIEmbeddingsProvider extends BaseEmbeddingsProvider { } } -export default OpenAIEmbeddingsProvider; \ No newline at end of file +export default OpenAIEmbeddingsProvider; diff --git a/core/indexing/embeddings/TransformersJsEmbeddingsProvider.ts b/core/indexing/embeddings/TransformersJsEmbeddingsProvider.ts index 620c30442..069c5efd2 100644 --- a/core/indexing/embeddings/TransformersJsEmbeddingsProvider.ts +++ b/core/indexing/embeddings/TransformersJsEmbeddingsProvider.ts @@ -1,7 +1,7 @@ import path from "path"; // @ts-ignore // prettier-ignore -import { type PipelineType } from "core/vendor/node_modules/@xenova/transformers/src/transformers.js"; +import { type PipelineType } from "../../vendor/modules/@xenova/transformers/src/transformers.js"; import BaseEmbeddingsProvider from "./BaseEmbeddingsProvider.js"; class EmbeddingsPipeline { @@ -13,7 +13,7 @@ class EmbeddingsPipeline { if (EmbeddingsPipeline.instance === null) { // @ts-ignore // prettier-ignore - const { env, pipeline } = await import("../../vendor/node_modules/@xenova/transformers/src/transformers.js"); + const { env, pipeline } = await import("../../vendor/modules/@xenova/transformers/src/transformers.js"); env.allowLocalModels = true; env.allowRemoteModels = false; @@ -40,7 +40,7 @@ export class TransformersJsEmbeddingsProvider extends BaseEmbeddingsProvider { static maxGroupSize: number = 4; constructor() { - super({ model: "all-MiniLM-L2-v6" }, () => Promise.resolve(null)); + super({ model: "all-MiniLM-L6-v2" }, () => Promise.resolve(null)); } async embed(chunks: string[]) { @@ -74,4 +74,4 @@ export class TransformersJsEmbeddingsProvider extends BaseEmbeddingsProvider { } } -export default TransformersJsEmbeddingsProvider; \ No newline at end of file +export default TransformersJsEmbeddingsProvider; diff --git a/core/indexing/embeddings/TransformersJsWorkerThread.js b/core/indexing/embeddings/TransformersJsWorkerThread.js index 6f7dacb01..f53708664 100644 --- a/core/indexing/embeddings/TransformersJsWorkerThread.js +++ b/core/indexing/embeddings/TransformersJsWorkerThread.js @@ -59,4 +59,4 @@ parentPort.on("message", async (chunks) => { } catch (error) { parentPort.postMessage({ error: error.message }); } -}); \ No newline at end of file +}); diff --git a/core/indexing/embeddings/index.ts b/core/indexing/embeddings/index.ts index 768f7ccb5..f3979dd98 100644 --- a/core/indexing/embeddings/index.ts +++ b/core/indexing/embeddings/index.ts @@ -2,15 +2,17 @@ import { EmbeddingsProviderName } from "../../index.js"; import BaseEmbeddingsProvider from "./BaseEmbeddingsProvider.js"; import CohereEmbeddingsProvider from "./CohereEmbeddingsProvider.js"; import FreeTrialEmbeddingsProvider from "./FreeTrialEmbeddingsProvider.js"; +import HuggingFaceTEIEmbeddingsProvider from "./HuggingFaceTEIEmbeddingsProvider.js"; import OllamaEmbeddingsProvider from "./OllamaEmbeddingsProvider.js"; import OpenAIEmbeddingsProvider from "./OpenAIEmbeddingsProvider.js"; import TransformersJsEmbeddingsProvider from "./TransformersJsEmbeddingsProvider.js"; +import GeminiEmbeddingsProvider from "./GeminiEmbeddingsProvider.js"; type EmbeddingsProviderConstructor = new ( ...args: any[] ) => BaseEmbeddingsProvider; -export const AllEmbeddingsProviders: Record< +export const allEmbeddingsProviders: Record< EmbeddingsProviderName, EmbeddingsProviderConstructor > = { @@ -21,4 +23,7 @@ export const AllEmbeddingsProviders: Record< cohere: CohereEmbeddingsProvider, // eslint-disable-next-line @typescript-eslint/naming-convention "free-trial": FreeTrialEmbeddingsProvider, -}; \ No newline at end of file + // eslint-disable-next-line @typescript-eslint/naming-convention + "huggingface-tei": HuggingFaceTEIEmbeddingsProvider, + gemini: GeminiEmbeddingsProvider, +}; diff --git a/core/indexing/ignore.ts b/core/indexing/ignore.ts index c0776b3bf..07e6d873f 100644 --- a/core/indexing/ignore.ts +++ b/core/indexing/ignore.ts @@ -1,6 +1,6 @@ import ignore from "ignore"; -const DEFAULT_IGNORE_FILETYPES = [ +export const DEFAULT_IGNORE_FILETYPES = [ "*.DS_Store", "*-lock.json", "*.lock", @@ -25,6 +25,7 @@ const DEFAULT_IGNORE_FILETYPES = [ "*.dll", "*.obj", "*.o", + "*.o.d", "*.a", "*.lib", "*.so", @@ -54,10 +55,21 @@ const DEFAULT_IGNORE_FILETYPES = [ "*.sqlite", "*.wasm", "*.plist", + "*.profraw", + "*.gcda", + "*.gcno", + "go.sum", + ".env", + ".gitignore", + ".gitkeep", + ".continueignore", + "config.json", + // "*.prompt", // can be incredibly confusing for the LLM to have another set of instructions injected into the prompt ]; export const defaultIgnoreFile = ignore().add(DEFAULT_IGNORE_FILETYPES); export const DEFAULT_IGNORE_DIRS = [ ".git", + ".svn", ".vscode", ".idea", ".vs", @@ -76,5 +88,12 @@ export const DEFAULT_IGNORE_DIRS = [ ".continue", "__pycache__", "site-packages", + ".gradle", + ".cache", + "gems", + "vendor", ]; export const defaultIgnoreDir = ignore().add(DEFAULT_IGNORE_DIRS); + +export const DEFAULT_IGNORE = + DEFAULT_IGNORE_FILETYPES.join("\n") + "\n" + DEFAULT_IGNORE_DIRS.join("\n"); diff --git a/core/indexing/indexCodebase.ts b/core/indexing/indexCodebase.ts deleted file mode 100644 index dfbfec1a7..000000000 --- a/core/indexing/indexCodebase.ts +++ /dev/null @@ -1,153 +0,0 @@ -import { IDE, IndexTag, IndexingProgressUpdate } from ".."; -import { ConfigHandler } from "../config/handler"; -import { ContinueServerClient } from "../continueServer/stubs/client"; -import { CodeSnippetsCodebaseIndex } from "./CodeSnippetsIndex"; -import { FullTextSearchCodebaseIndex } from "./FullTextSearch"; -import { LanceDbIndex } from "./LanceDbIndex"; -import { ChunkCodebaseIndex } from "./chunk/ChunkCodebaseIndex"; -import { getComputeDeleteAddRemove } from "./refreshIndex"; -import { CodebaseIndex } from "./types"; - -export class PauseToken { - constructor(private _paused: boolean) {} - - set paused(value: boolean) { - this._paused = value; - } - - get paused(): boolean { - return this._paused; - } -} - -export class CodebaseIndexer { - private continueServerClient?: ContinueServerClient; - constructor( - private readonly configHandler: ConfigHandler, - private readonly ide: IDE, - private readonly pauseToken: PauseToken, - private readonly continueServerUrl: string | undefined, - private readonly userToken: Promise, - ) { - if (continueServerUrl) { - this.continueServerClient = new ContinueServerClient( - continueServerUrl, - userToken, - ); - } - } - - private async getIndexesToBuild(): Promise { - const config = await this.configHandler.loadConfig(); - - const indexes = [ - new ChunkCodebaseIndex( - this.ide.readFile.bind(this.ide), - this.continueServerClient, - ), // Chunking must come first - new LanceDbIndex( - config.embeddingsProvider, - this.ide.readFile.bind(this.ide), - this.continueServerClient, - ), - new FullTextSearchCodebaseIndex(), - new CodeSnippetsCodebaseIndex(this.ide), - ]; - - return indexes; - } - - async *refresh( - workspaceDirs: string[], - abortSignal: AbortSignal, - ): AsyncGenerator { - const config = await this.configHandler.loadConfig(); - if (config.disableIndexing) { - return; - } - - const indexesToBuild = await this.getIndexesToBuild(); - - let completedDirs = 0; - - // Wait until Git Extension has loaded to report progress - // so we don't appear stuck at 0% while waiting - await this.ide.getRepoName(workspaceDirs[0]); - yield { - progress: 0, - desc: "Nothing to index", - status: "disabled", - }; - - for (let directory of workspaceDirs) { - const files = await this.ide.listWorkspaceContents(directory); - const stats = await this.ide.getLastModified(files); - const branch = await this.ide.getBranch(directory); - const repoName = await this.ide.getRepoName(directory); - let completedIndexes = 0; - - try { - for (let codebaseIndex of indexesToBuild) { - // TODO: IndexTag type should use repoName rather than directory - const tag: IndexTag = { - directory, - branch, - artifactId: codebaseIndex.artifactId, - }; - const [results, markComplete] = await getComputeDeleteAddRemove( - tag, - { ...stats }, - (filepath) => this.ide.readFile(filepath), - repoName, - ); - - for await (let { progress, desc } of codebaseIndex.update( - tag, - results, - markComplete, - repoName, - )) { - // Handle pausing in this loop because it's the only one really taking time - if (abortSignal.aborted) { - yield { - progress: 1, - desc: "Indexing cancelled", - status: "disabled", - }; - return; - } - while (this.pauseToken.paused) { - await new Promise((resolve) => setTimeout(resolve, 100)); - } - - yield { - progress: - (completedDirs + - (completedIndexes + progress) / indexesToBuild.length) / - workspaceDirs.length, - desc, - status: "indexing", - }; - } - completedIndexes++; - yield { - progress: - (completedDirs + completedIndexes / indexesToBuild.length) / - workspaceDirs.length, - desc: "Completed indexing " + codebaseIndex.artifactId, - status: "indexing", - }; - } - } catch (e) { - console.warn("Error refreshing index: ", e); - } - - completedDirs++; - yield { - progress: completedDirs / workspaceDirs.length, - desc: "Indexing Complete", - status: "done", - }; - } - } -} diff --git a/core/indexing/refreshIndex.ts b/core/indexing/refreshIndex.ts index 3987b3519..c67379960 100644 --- a/core/indexing/refreshIndex.ts +++ b/core/indexing/refreshIndex.ts @@ -1,9 +1,9 @@ -import crypto from "crypto"; -import * as fs from "fs"; -import { Database, open } from "sqlite"; +import crypto from "node:crypto"; +import * as fs from "node:fs"; +import { open, type Database } from "sqlite"; import sqlite3 from "sqlite3"; -import { IndexTag, IndexingProgressUpdate } from ".."; -import { getIndexSqlitePath } from "../util/paths"; +import { IndexTag, IndexingProgressUpdate } from "../index.js"; +import { getIndexSqlitePath } from "../util/paths.js"; import { CodebaseIndex, IndexResultType, @@ -11,7 +11,7 @@ import { MarkCompleteCallback, PathAndCacheKey, RefreshIndexResults, -} from "./types"; +} from "./types.js"; export type DatabaseConnection = Database; @@ -106,7 +106,7 @@ async function getAddRemoveForTag( const updateOldVersion: PathAndCacheKey[] = []; const remove: PathAndCacheKey[] = []; - for (let item of saved) { + for (const item of saved) { const { lastUpdated, ...pathAndCacheKey } = item; if (currentFiles[item.path] === undefined) { @@ -157,7 +157,7 @@ async function getAddRemoveForTag( switch (resultType) { case AddRemoveResultType.Add: await db.run( - `INSERT INTO tag_catalog (path, cacheKey, lastUpdated, dir, branch, artifactId) VALUES (?, ?, ?, ?, ?, ?)`, + "INSERT INTO tag_catalog (path, cacheKey, lastUpdated, dir, branch, artifactId) VALUES (?, ?, ?, ?, ?, ?)", path, cacheKey, newLastUpdatedTimestamp, @@ -207,22 +207,22 @@ async function getAddRemoveForTag( } } - for (let item of updateNewVersion) { + for (const item of updateNewVersion) { itemToAction[JSON.stringify(item)] = [ item, AddRemoveResultType.UpdateNewVersion, ]; } - for (let item of add) { + for (const item of add) { itemToAction[JSON.stringify(item)] = [item, AddRemoveResultType.Add]; } - for (let item of updateOldVersion) { + for (const item of updateOldVersion) { itemToAction[JSON.stringify(item)] = [ item, AddRemoveResultType.UpdateOldVersion, ]; } - for (let item of remove) { + for (const item of remove) { itemToAction[JSON.stringify(item)] = [item, AddRemoveResultType.Remove]; } @@ -243,7 +243,7 @@ async function getTagsFromGlobalCache( ): Promise { const db = await SqliteDb.get(); const stmt = await db.prepare( - `SELECT dir, branch, artifactId FROM global_cache WHERE cacheKey = ? AND artifactId = ?`, + "SELECT dir, branch, artifactId FROM global_cache WHERE cacheKey = ? AND artifactId = ?", ); const rows = await stmt.all(cacheKey, artifactId); return rows; @@ -272,7 +272,7 @@ export async function getComputeDeleteAddRemove( const addTag: PathAndCacheKey[] = []; const removeTag: PathAndCacheKey[] = []; - for (let { path, cacheKey } of add) { + for (const { path, cacheKey } of add) { const existingTags = await getTagsFromGlobalCache(cacheKey, tag.artifactId); if (existingTags.length > 0) { addTag.push({ path, cacheKey }); @@ -281,7 +281,7 @@ export async function getComputeDeleteAddRemove( } } - for (let { path, cacheKey } of remove) { + for (const { path, cacheKey } of remove) { const existingTags = await getTagsFromGlobalCache(cacheKey, tag.artifactId); if (existingTags.length > 1) { removeTag.push({ path, cacheKey }); @@ -310,14 +310,14 @@ export async function getComputeDeleteAddRemove( markComplete(items, resultType); // Update the global cache - let results: any = { + const results: any = { compute: [], del: [], addTag: [], removeTag: [], }; results[resultType] = items; - for await (let _ of globalCacheIndex.update( + for await (const _ of globalCacheIndex.update( tag, results, () => {}, @@ -329,12 +329,13 @@ export async function getComputeDeleteAddRemove( } export class GlobalCacheCodeBaseIndex implements CodebaseIndex { + relativeExpectedTime: number = 1; private db: DatabaseConnection; constructor(db: DatabaseConnection) { this.db = db; } - artifactId: string = "globalCache"; + artifactId = "globalCache"; static async create(): Promise { return new GlobalCacheCodeBaseIndex(await SqliteDb.get()); diff --git a/core/indexing/types.ts b/core/indexing/types.ts index 6715413ad..d636564bd 100644 --- a/core/indexing/types.ts +++ b/core/indexing/types.ts @@ -1,4 +1,4 @@ -import { IndexTag, IndexingProgressUpdate } from ".."; +import { IndexTag, IndexingProgressUpdate } from "../index.js"; export enum IndexResultType { Compute = "compute", @@ -14,6 +14,7 @@ export type MarkCompleteCallback = ( export interface CodebaseIndex { artifactId: string; + relativeExpectedTime: number; update( tag: IndexTag, results: RefreshIndexResults, diff --git a/core/indexing/walkDir.ts b/core/indexing/walkDir.ts new file mode 100644 index 000000000..98636b857 --- /dev/null +++ b/core/indexing/walkDir.ts @@ -0,0 +1,375 @@ +import { EventEmitter } from "events"; +import { Minimatch } from "minimatch"; +import path from "node:path"; +import { FileType, IDE } from ".."; +import { DEFAULT_IGNORE_DIRS, DEFAULT_IGNORE_FILETYPES } from "./ignore"; + +export interface WalkerOptions { + isSymbolicLink?: boolean; + path?: string; + ignoreFiles?: string[]; + parent?: Walker | null; + includeEmpty?: boolean; + follow?: boolean; + exact?: boolean; + onlyDirs?: boolean; + returnRelativePaths?: boolean; + additionalIgnoreRules?: string[]; +} + +type Entry = [string, FileType]; + +class Walker extends EventEmitter { + isSymbolicLink: boolean; + path: string; + basename: string; + ignoreFiles: string[]; + ignoreRules: { [key: string]: Minimatch[] }; + parent: Walker | null; + includeEmpty: boolean; + root: string; + follow: boolean; + result: Set; + entries: Entry[] | null; + sawError: boolean; + exact: boolean | undefined; + onlyDirs: boolean | undefined; + constructor( + opts: WalkerOptions = {}, + protected readonly ide: IDE, + ) { + super(opts as any); + this.isSymbolicLink = opts.isSymbolicLink || false; + this.path = opts.path || process.cwd(); + this.basename = path.basename(this.path); + this.ignoreFiles = [...(opts.ignoreFiles || [".ignore"]), ".defaultignore"]; + this.ignoreRules = {}; + this.parent = opts.parent || null; + this.includeEmpty = !!opts.includeEmpty; + this.root = this.parent ? this.parent.root : this.path; + this.follow = !!opts.follow; + this.result = this.parent ? this.parent.result : new Set(); + this.entries = null; + this.sawError = false; + this.exact = opts.exact; + this.onlyDirs = opts.onlyDirs; + + if (opts.additionalIgnoreRules) { + this.addIgnoreRules(opts.additionalIgnoreRules); + } + } + + sort(a: string, b: string): number { + return a.localeCompare(b, "en"); + } + + emit(ev: string, data: any): boolean { + let ret = false; + if (!(this.sawError && ev === "error")) { + if (ev === "error") { + this.sawError = true; + } else if (ev === "done" && !this.parent) { + data = (Array.from(data) as any) + .map((e: string) => (/^@/.test(e) ? `./${e}` : e)) + .sort(this.sort); + this.result = new Set(data); + } + + if (ev === "error" && this.parent) { + ret = this.parent.emit("error", data); + } else { + ret = super.emit(ev, data); + } + } + return ret; + } + + start(): this { + this.ide + .listDir(this.path) + .then((entries) => { + this.onReaddir(entries); + }) + .catch((err) => { + this.emit("error", err); + }); + return this; + } + + isIgnoreFile(e: Entry): boolean { + const p = e[0]; + return p !== "." && p !== ".." && this.ignoreFiles.indexOf(p) !== -1; + } + + onReaddir(entries: Entry[]): void { + this.entries = entries; + if (entries.length === 0) { + if (this.includeEmpty) { + this.result.add(this.path.slice(this.root.length + 1)); + } + this.emit("done", this.result); + } else { + const hasIg = this.entries.some((e) => this.isIgnoreFile(e)); + + if (hasIg) { + this.addIgnoreFiles(); + } else { + this.filterEntries(); + } + } + } + + addIgnoreFiles(): void { + const newIg = this.entries!.filter((e) => this.isIgnoreFile(e)); + + let igCount = newIg.length; + const then = () => { + if (--igCount === 0) { + this.filterEntries(); + } + }; + + newIg.forEach((e) => this.addIgnoreFile(e, then)); + } + + addIgnoreFile(file: Entry, then: () => void): void { + const ig = path.resolve(this.path, file[0]); + this.ide + .readFile(ig) + .then((data) => { + this.onReadIgnoreFile(file, data, then); + }) + .catch((err) => { + this.emit("error", err); + }); + } + + onReadIgnoreFile(file: Entry, data: string, then: () => void): void { + const mmopt = { + matchBase: true, + dot: true, + flipNegate: true, + nocase: true, + }; + const rules = data + .split(/\r?\n/) + .filter((line) => !/^#|^$/.test(line.trim())) + .map((rule) => { + return new Minimatch(rule.trim(), mmopt); + }); + + this.ignoreRules[file[0]] = rules; + + then(); + } + + addIgnoreRules(rules: string[]) { + const mmopt = { + matchBase: true, + dot: true, + flipNegate: true, + nocase: true, + }; + const minimatchRules = rules + .filter((line) => !/^#|^$/.test(line.trim())) + .map((rule) => { + return new Minimatch(rule.trim(), mmopt); + }); + + this.ignoreRules[".defaultignore"] = minimatchRules; + } + + filterEntries(): void { + const filtered = this.entries!.map((entry) => { + const passFile = this.filterEntry(entry[0]); + const passDir = this.filterEntry(entry[0], true); + return passFile || passDir ? [entry, passFile, passDir] : false; + }).filter((e) => e) as [Entry, boolean, boolean][]; + let entryCount = filtered.length; + if (entryCount === 0) { + this.emit("done", this.result); + } else { + const then = () => { + if (--entryCount === 0) { + // Otherwise in onlyDirs mode, nothing would be returned + if (this.onlyDirs && this.path !== this.root) { + this.result.add(this.path.slice(this.root.length + 1)); + } + this.emit("done", this.result); + } + }; + filtered.forEach((filt) => { + const [entry, file, dir] = filt; + this.stat(entry, file, dir, then); + }); + } + } + + entryIsDirectory(entry: Entry) { + const Directory = 2 as FileType.Directory; + return entry[1] === Directory; + } + + entryIsSymlink(entry: Entry) { + const Directory = 64 as FileType.SymbolicLink; + return entry[1] === Directory; + } + + onstat(entry: Entry, file: boolean, dir: boolean, then: () => void): void { + const abs = this.path + "/" + entry[0]; + const isSymbolicLink = this.entryIsSymlink(entry); + if (!this.entryIsDirectory(entry)) { + if (file && !this.onlyDirs) { + this.result.add(abs.slice(this.root.length + 1)); + } + then(); + } else { + if (dir) { + this.walker( + entry[0], + { isSymbolicLink, exact: this.filterEntry(entry[0] + "/") }, + then, + ); + } else { + then(); + } + } + } + + stat(entry: Entry, file: boolean, dir: boolean, then: () => void): void { + this.onstat(entry, file, dir, then); + } + + walkerOpt(entry: string, opts: Partial): WalkerOptions { + return { + path: this.path + "/" + entry, + parent: this, + ignoreFiles: this.ignoreFiles, + follow: this.follow, + includeEmpty: this.includeEmpty, + onlyDirs: this.onlyDirs, + ...opts, + }; + } + + walker(entry: string, opts: Partial, then: () => void): void { + new Walker(this.walkerOpt(entry, opts), this.ide).on("done", then).start(); + } + + filterEntry( + entry: string, + partial?: boolean, + entryBasename?: string, + ): boolean { + let included = true; + + if (this.parent && this.parent.filterEntry) { + const parentEntry = this.basename + "/" + entry; + const parentBasename = entryBasename || entry; + included = this.parent.filterEntry(parentEntry, partial, parentBasename); + if (!included && !this.exact) { + return false; + } + } + + this.ignoreFiles.forEach((f) => { + if (this.ignoreRules[f]) { + this.ignoreRules[f].forEach((rule) => { + if (rule.negate !== included) { + const isRelativeRule = + entryBasename && + rule.globParts.some( + (part) => part.length <= (part.slice(-1)[0] ? 1 : 2), + ); + + const match = + rule.match("/" + entry) || + rule.match(entry) || + (!!partial && + (rule.match("/" + entry + "/") || + rule.match(entry + "/") || + (rule.negate && + (rule.match("/" + entry, true) || + rule.match(entry, true))) || + (isRelativeRule && + (rule.match("/" + entryBasename + "/") || + rule.match(entryBasename + "/") || + (rule.negate && + (rule.match("/" + entryBasename, true) || + rule.match(entryBasename, true))))))); + + if (match) { + included = rule.negate; + } + } + }); + } + }); + + return included; + } +} + +interface WalkCallback { + (err: Error | null, result?: string[]): void; +} + +async function walkDirWithCallback( + opts: WalkerOptions, + ide: IDE, + callback?: WalkCallback, +): Promise { + const p = new Promise((resolve, reject) => { + new Walker(opts, ide).on("done", resolve).on("error", reject).start(); + }); + return callback ? p.then((res) => callback(null, res), callback) : p; +} + +const defaultOptions: WalkerOptions = { + ignoreFiles: [".gitignore", ".continueignore"], + onlyDirs: false, + additionalIgnoreRules: [...DEFAULT_IGNORE_DIRS, ...DEFAULT_IGNORE_FILETYPES], +}; + +export async function walkDir( + path: string, + ide: IDE, + _options?: WalkerOptions, +): Promise { + const options = { ...defaultOptions, ..._options }; + return new Promise((resolve, reject) => { + walkDirWithCallback( + { + path, + ignoreFiles: options.ignoreFiles, + onlyDirs: options.onlyDirs, + follow: true, + includeEmpty: false, + additionalIgnoreRules: options.additionalIgnoreRules, + }, + ide, + async (err, result) => { + if (err) { + reject(err); + } else { + const relativePaths = result || []; + if (options?.returnRelativePaths) { + resolve(relativePaths); + } else { + const pathSep = await ide.pathSep(); + if (pathSep === "/") { + resolve(relativePaths.map((p) => path + pathSep + p)); + } else { + // Need to replace with windows path sep + resolve( + relativePaths.map( + (p) => path + pathSep + p.split("/").join(pathSep), + ), + ); + } + } + } + }, + ); + }); +} diff --git a/core/jest.config.js b/core/jest.config.js index ff6f33d99..1ec7c44f8 100644 --- a/core/jest.config.js +++ b/core/jest.config.js @@ -1,8 +1,23 @@ -module.exports = { - roots: [""], +import path from "path"; +import { fileURLToPath } from "url"; + +process.env.NODE_OPTIONS = "--experimental-vm-modules"; + +export default { transform: { - "^.+\\.ts?$": "ts-jest", + "\\.[jt]sx?$": ["ts-jest", { useESM: true }], }, - // testRegex: ".+\\.test\\.ts$", - moduleFileExtensions: ["ts", "tsx", "js", "jsx", "json", "node"], + + moduleNameMapper: { + "(.+)\\.js": "$1", + }, + extensionsToTreatAsEsm: [".ts"], + preset: "ts-jest/presets/default-esm", + testTimeout: 10000, + testEnvironment: "node", + globals: { + __dirname: path.dirname(fileURLToPath(import.meta.url)), + __filename: path.resolve(fileURLToPath(import.meta.url)), + }, + globalSetup: "/jest.global-setup.ts", }; diff --git a/core/jest.global-setup.ts b/core/jest.global-setup.ts new file mode 100644 index 000000000..1c4fe12e8 --- /dev/null +++ b/core/jest.global-setup.ts @@ -0,0 +1,6 @@ +// jest.global-setup.js +import path from "path"; + +export default async function () { + process.env.CONTINUE_GLOBAL_DIR = path.join(__dirname, ".continue-test"); +} diff --git a/core/llm/autodetect.ts b/core/llm/autodetect.ts index 4cc0a68cc..6f09839c2 100644 --- a/core/llm/autodetect.ts +++ b/core/llm/autodetect.ts @@ -1,4 +1,4 @@ -import { ModelProvider, TemplateType } from ".."; +import { ModelProvider, TemplateType } from "../index.js"; import { anthropicTemplateMessages, chatmlTemplateMessages, @@ -15,7 +15,7 @@ import { templateAlpacaMessages, xWinCoderTemplateMessages, zephyrTemplateMessages, -} from "./templates/chat"; +} from "./templates/chat.js"; import { alpacaEditPrompt, claudeEditPrompt, @@ -23,6 +23,7 @@ import { deepseekEditPrompt, gemmaEditPrompt, gptEditPrompt, + llama3EditPrompt, mistralEditPrompt, neuralChatEditPrompt, openchatEditPrompt, @@ -31,39 +32,60 @@ import { simplifiedEditPrompt, xWinCoderEditPrompt, zephyrEditPrompt, -} from "./templates/edit"; +} from "./templates/edit.js"; const PROVIDER_HANDLES_TEMPLATING: ModelProvider[] = [ "lmstudio", "openai", "ollama", "together", + "msty", "anthropic", "bedrock", + "continue-proxy", + "mistral", ]; const PROVIDER_SUPPORTS_IMAGES: ModelProvider[] = [ "openai", "ollama", + "gemini", "free-trial", + "msty", "anthropic", "bedrock", + "continue-proxy", +]; + +const MODEL_SUPPORTS_IMAGES: string[] = [ + "llava", + "gpt-4-turbo", + "gpt-4o", + "gpt-4-vision", + "claude-3", + "gemini-ultra", + "gemini-1.5-pro", + "gemini-1.5-flash", + "sonnet", + "opus", + "haiku", ]; -function modelSupportsImages(provider: ModelProvider, model: string): boolean { +function modelSupportsImages( + provider: ModelProvider, + model: string, + title: string | undefined, +): boolean { if (!PROVIDER_SUPPORTS_IMAGES.includes(provider)) { return false; } - if (model.includes("llava")) { - return true; - } - - if (model.includes("claude-3")) { - return true; - } - - if (["gpt-4-vision-preview"].includes(model)) { + const lower = model.toLowerCase(); + if ( + MODEL_SUPPORTS_IMAGES.some( + (modelName) => lower.includes(modelName) || title?.includes(modelName), + ) + ) { return true; } @@ -102,6 +124,7 @@ function autodetectTemplateType(model: string): TemplateType | undefined { if ( lower.includes("gpt") || + lower.includes("command") || lower.includes("chat-bison") || lower.includes("pplx") || lower.includes("gemini") @@ -109,6 +132,10 @@ function autodetectTemplateType(model: string): TemplateType | undefined { return undefined; } + if (lower.includes("llama3")) { + return "llama3"; + } + if (lower.includes("llava")) { return "llava"; } @@ -150,6 +177,10 @@ function autodetectTemplateType(model: string): TemplateType | undefined { return "none"; } + if (lower.includes("codestral")) { + return "none"; + } + if (lower.includes("alpaca") || lower.includes("wizard")) { return "alpaca"; } @@ -227,6 +258,7 @@ const USES_OS_MODELS_EDIT_PROMPT: TemplateType[] = [ "phind", "xwin-coder", "zephyr", + "llama3", ]; function autodetectPromptTemplates( @@ -270,12 +302,18 @@ function autodetectPromptTemplates( editTemplate = claudeEditPrompt; } else if (templateType === "gemma") { editTemplate = gemmaEditPrompt; + } else if (templateType === "llama3") { + editTemplate = llama3EditPrompt; + } else if (templateType === "none") { + editTemplate = null; } else if (templateType) { editTemplate = gptEditPrompt; + } else if (model.includes("codestral")) { + editTemplate = osModelsEditPrompt; } if (editTemplate !== null) { - templates["edit"] = editTemplate; + templates.edit = editTemplate; } return templates; diff --git a/core/llm/constants.ts b/core/llm/constants.ts index 0b8454540..0d63c6f6a 100644 --- a/core/llm/constants.ts +++ b/core/llm/constants.ts @@ -7,19 +7,22 @@ const DEFAULT_ARGS = { temperature: DEFAULT_TEMPERATURE, }; +const GPT_4_CTX_LEN = 4096; + const CONTEXT_LENGTH_FOR_MODEL: { [name: string]: number } = { "gpt-3.5-turbo": 4096, "gpt-3.5-turbo-0613": 4096, "gpt-3.5-turbo-16k": 16_384, - "gpt-4": 8192, "gpt-35-turbo-16k": 16_384, "gpt-35-turbo-0613": 4096, "gpt-35-turbo": 4096, - "gpt-4-32k": 32_768, - "gpt-4-turbo-preview": 128_000, - "gpt-4-vision": 128_000, - "gpt-4-0125-preview": 128_000, - "gpt-4-1106-preview": 128_000, + "gpt-4": GPT_4_CTX_LEN, + "gpt-4-32k": GPT_4_CTX_LEN, + "gpt-4-turbo-preview": GPT_4_CTX_LEN, + "gpt-4o": GPT_4_CTX_LEN, + "gpt-4-vision": GPT_4_CTX_LEN, + "gpt-4-0125-preview": GPT_4_CTX_LEN, + "gpt-4-1106-preview": GPT_4_CTX_LEN, }; const TOKEN_BUFFER_FOR_SAFETY = 350; diff --git a/core/llm/constructMessages.ts b/core/llm/constructMessages.ts index f9818075f..aaf23563e 100644 --- a/core/llm/constructMessages.ts +++ b/core/llm/constructMessages.ts @@ -1,4 +1,4 @@ -import { ChatHistory, ChatMessage, MessagePart } from ".."; +import { ChatHistory, ChatMessage, MessagePart } from "../index.js"; export function constructMessages(history: ChatHistory): ChatMessage[] { const msgs = []; @@ -11,7 +11,7 @@ export function constructMessages(history: ChatHistory): ChatMessage[] { : [{ type: "text", text: historyItem.message.content } as MessagePart]; const ctxItems = historyItem.contextItems.map((ctxItem) => { - return { type: "text", text: ctxItem.content + "\n" } as MessagePart; + return { type: "text", text: `${ctxItem.content}\n` } as MessagePart; }); content = [...ctxItems, ...content]; diff --git a/core/llm/countTokens.ts b/core/llm/countTokens.ts index a82104afd..f8cdc9b4a 100644 --- a/core/llm/countTokens.ts +++ b/core/llm/countTokens.ts @@ -1,16 +1,29 @@ import { Tiktoken, encodingForModel as _encodingForModel } from "js-tiktoken"; -// @ts-ignore -import llamaTokenizer from "llama-tokenizer-js"; -import { ChatMessage, MessageContent, MessagePart } from ".."; -import { autodetectTemplateType } from "./autodetect"; -import { TOKEN_BUFFER_FOR_SAFETY } from "./constants"; +import { ChatMessage, MessageContent, MessagePart } from "../index.js"; +import { autodetectTemplateType } from "./autodetect.js"; +import { TOKEN_BUFFER_FOR_SAFETY } from "./constants.js"; +import llamaTokenizer from "./llamaTokenizer.js"; interface Encoding { encode: Tiktoken["encode"]; decode: Tiktoken["decode"]; } +class LlamaEncoding implements Encoding { + encode( + text: string, + allowedSpecial?: string[] | "all" | undefined, + disallowedSpecial?: string[] | "all" | undefined, + ): number[] { + return llamaTokenizer.encode(text); + } + decode(tokens: number[]): string { + return llamaTokenizer.decode(tokens); + } +} + let gptEncoding: Encoding | null = null; +const llamaEncoding = new LlamaEncoding(); function encodingForModel(modelName: string): Encoding { const modelType = autodetectTemplateType(modelName); @@ -23,21 +36,20 @@ function encodingForModel(modelName: string): Encoding { return gptEncoding; } - return llamaTokenizer; + return llamaEncoding; } function countImageTokens(content: MessagePart): number { if (content.type === "imageUrl") { return 85; - } else { - throw new Error("Non-image content type"); } + throw new Error("Non-image content type"); } function countTokens( content: MessageContent, // defaults to llama2 because the tokenizer tends to produce more tokens - modelName: string = "llama2", + modelName = "llama2", ): number { const encoding = encodingForModel(modelName); if (Array.isArray(content)) { @@ -47,7 +59,7 @@ function countTokens( : encoding.encode(part.text ?? "", "all", []).length; }, 0); } else { - return encoding.encode(content, "all", []).length; + return encoding.encode(content ?? "", "all", []).length; } } @@ -59,7 +71,7 @@ function flattenMessages(msgs: ChatMessage[]): ChatMessage[] { flattened.length > 0 && flattened[flattened.length - 1].role === msg.role ) { - flattened[flattened.length - 1].content += "\n\n" + (msg.content || ""); + flattened[flattened.length - 1].content += `\n\n${msg.content || ""}`; } else { flattened.push(msg); } @@ -73,9 +85,8 @@ export function stripImages(content: MessageContent): string { .filter((part) => part.type === "text") .map((part) => part.text) .join("\n"); - } else { - return content; } + return content; } function countChatMessageTokens( @@ -171,10 +182,9 @@ function pruneRawPromptFromBottom( function summarize(message: MessageContent): string { if (Array.isArray(message)) { - return stripImages(message).substring(0, 100) + "..."; - } else { - return message.substring(0, 100) + "..."; + return `${stripImages(message).substring(0, 100)}...`; } + return `${message.substring(0, 100)}...`; } function pruneChatHistory( @@ -205,7 +215,7 @@ function pruneChatHistory( for (let i = 0; i < longerThanOneThird.length; i++) { // Prune line-by-line from the top const message = longerThanOneThird[i]; - let content = stripImages(message.content); + const content = stripImages(message.content); const deltaNeeded = totalTokens - contextLength; const delta = Math.min(deltaNeeded, distanceFromThird[i]); message.content = pruneStringFromTop( @@ -273,7 +283,7 @@ function pruneChatHistory( function compileChatMessages( modelName: string, - msgs: ChatMessage[] | undefined = undefined, + msgs: ChatMessage[] | undefined, contextLength: number, maxTokens: number, supportsImages: boolean, diff --git a/core/llm/index.ts b/core/llm/index.ts index 83f9d30cf..fbf17781e 100644 --- a/core/llm/index.ts +++ b/core/llm/index.ts @@ -1,3 +1,5 @@ +import { findLlmInfo } from "@continuedev/llm-info"; +import Handlebars from "handlebars"; import { ChatMessage, ChatMessageRole, @@ -5,37 +7,38 @@ import { ILLM, LLMFullCompletionOptions, LLMOptions, - LLMReturnValue, - PromptLog, ModelName, ModelProvider, + PromptLog, PromptTemplate, RequestOptions, TemplateType, -} from ".."; +} from "../index.js"; import { logDevData } from "../util/devdata.js"; -import { DevDataSqliteDb } from "../util/devdataSqlite"; -import mergeJson from "../util/merge"; -import { Telemetry } from "../util/posthog"; +import { DevDataSqliteDb } from "../util/devdataSqlite.js"; +import { fetchwithRequestOptions } from "../util/fetchWithOptions.js"; +import mergeJson from "../util/merge.js"; +import { Telemetry } from "../util/logging.js"; +import { withExponentialBackoff } from "../util/withExponentialBackoff.js"; import { autodetectPromptTemplates, autodetectTemplateFunction, autodetectTemplateType, modelSupportsImages, -} from "./autodetect"; +} from "./autodetect.js"; import { CONTEXT_LENGTH_FOR_MODEL, DEFAULT_ARGS, DEFAULT_CONTEXT_LENGTH, DEFAULT_MAX_TOKENS, -} from "./constants"; +} from "./constants.js"; import { compileChatMessages, countTokens, pruneRawPromptFromTop, stripImages, -} from "./countTokens"; -import CompletionOptionsForModels from "./templates/options"; +} from "./countTokens.js"; +import CompletionOptionsForModels from "./templates/options.js"; export abstract class BaseLLM implements ILLM { static providerName: ModelProvider; @@ -45,29 +48,35 @@ export abstract class BaseLLM implements ILLM { return (this.constructor as typeof BaseLLM).providerName; } + supportsFim(): boolean { + return false; + } + supportsImages(): boolean { - return modelSupportsImages(this.providerName, this.model); + return modelSupportsImages(this.providerName, this.model, this.title); } supportsCompletions(): boolean { if (this.providerName === "openai") { if ( this.apiBase?.includes("api.groq.com") || - this.apiBase?.includes(":1337") + this.apiBase?.includes("api.mistral.ai") || + this.apiBase?.includes(":1337") || + this._llmOptions.useLegacyCompletionsEndpoint?.valueOf() === false ) { - // Jan + Groq don't support completions : ( + // Jan + Groq + Mistral don't support completions : ( + // Seems to be going out of style... return false; } } + if (["groq", "mistral"].includes(this.providerName)) { + return false; + } return true; } supportsPrefill(): boolean { - return ["ollama", "anthropic"].includes(this.providerName); - } - - supportsFim(): boolean { - return false; + return ["ollama", "anthropic", "mistral"].includes(this.providerName); } uniqueId: string; @@ -79,7 +88,7 @@ export abstract class BaseLLM implements ILLM { completionOptions: CompletionOptions; requestOptions?: RequestOptions; template?: TemplateType; - promptTemplates?: Record; + promptTemplates?: Record; templateMessages?: (messages: ChatMessage[]) => string; writeLog?: (str: string) => Promise; llmRequestHook?: (model: string, prompt: string) => any; @@ -91,27 +100,32 @@ export abstract class BaseLLM implements ILLM { apiType?: string; region?: string; projectId?: string; + accountId?: string; + aiGatewaySlug?: string; private _llmOptions: LLMOptions; - constructor(options: LLMOptions) { - this._llmOptions = options; + constructor(_options: LLMOptions) { + this._llmOptions = _options; // Set default options - options = { + const options = { title: (this.constructor as typeof BaseLLM).providerName, ...(this.constructor as typeof BaseLLM).defaultOptions, - ...options, + ..._options, }; + this.model = options.model; + const llmInfo = findLlmInfo(this.model); + const templateType = options.template ?? autodetectTemplateType(options.model); this.title = options.title; this.uniqueId = options.uniqueId ?? "None"; - this.model = options.model; this.systemMessage = options.systemMessage; - this.contextLength = options.contextLength ?? DEFAULT_CONTEXT_LENGTH; + this.contextLength = + options.contextLength ?? llmInfo?.contextLength ?? DEFAULT_CONTEXT_LENGTH; this.completionOptions = { ...options.completionOptions, model: options.model || "gpt-4", @@ -138,10 +152,12 @@ export abstract class BaseLLM implements ILLM { this.writeLog = options.writeLog; this.llmRequestHook = options.llmRequestHook; this.apiKey = options.apiKey; + this.aiGatewaySlug = options.aiGatewaySlug; this.apiBase = options.apiBase; if (this.apiBase && !this.apiBase.endsWith("/")) { - this.apiBase = this.apiBase + "/"; + this.apiBase = `${this.apiBase}/`; } + this.accountId = options.accountId; this.engine = options.engine; this.apiVersion = options.apiVersion; @@ -223,12 +239,15 @@ ${prompt}`; ) { let promptTokens = this.countTokens(prompt); let generatedTokens = this.countTokens(completion); - Telemetry.capture("tokens_generated", { - model: model, - provider: this.providerName, - promptTokens: promptTokens, - generatedTokens: generatedTokens, - }); + Telemetry.capture( + "tokens_generated", + { + model: model, + provider: this.providerName, + promptTokens: promptTokens, + generatedTokens: generatedTokens, + } + ); DevDataSqliteDb.logTokensGenerated( model, this.providerName, @@ -243,36 +262,73 @@ ${prompt}`; }); } - _fetch?: (input: RequestInfo | URL, init?: RequestInit) => Promise = - undefined; - - protected fetch( - url: RequestInfo | URL, - init?: RequestInit, - ): Promise { - if (this._fetch) { - // Custom Node.js fetch - return this._fetch(url, init); - } + fetch(url: RequestInfo | URL, init?: RequestInit): Promise { + // Custom Node.js fetch + const customFetch = async (input: URL | RequestInfo, init: any) => { + try { + const resp = await fetchwithRequestOptions( + new URL(input as any), + { ...init }, + { ...this.requestOptions }, + ); - // Most of the requestOptions aren't available in the browser - const headers = new Headers(init?.headers); - for (const [key, value] of Object.entries( - this.requestOptions?.headers ?? {}, - )) { - headers.append(key, value as string); - } + // Error mapping to be more helpful + if (!resp.ok) { + let text = await resp.text(); + if (resp.status === 404 && !resp.url.includes("/v1")) { + if (text.includes("try pulling it first")) { + const model = JSON.parse(text).error.split(" ")[1].slice(1, -1); + text = `The model "${model}" was not found. To download it, run \`ollama run ${model}\`.`; + } else if (text.includes("/api/chat")) { + text = + "The /api/chat endpoint was not found. This may mean that you are using an older version of Ollama that does not support /api/chat. Upgrading to the latest version will solve the issue."; + } else { + text = + "This may mean that you forgot to add '/v1' to the end of your 'apiBase' in config.json."; + } + } else if ( + resp.status === 404 && + resp.url.includes("api.openai.com") + ) { + text = + "You may need to add pre-paid credits before using the OpenAI API."; + } + throw new Error( + `HTTP ${resp.status} ${resp.statusText} from ${resp.url}\n\n${text}`, + ); + } - return fetch(url, { - ...init, - headers, - }); + return resp; + } catch (e: any) { + // Errors to ignore + if (!e.message.includes("/api/show")) { + console.warn( + `${e.message}\n\nCode: ${e.code}\nError number: ${e.errno}\nSyscall: ${e.erroredSysCall}\nType: ${e.type}\n\n${e.stack}`, + ); + + if ( + e.code === "ECONNREFUSED" && + e.message.includes("http://127.0.0.1:11434") + ) { + throw new Error( + "Failed to connect to local Ollama instance. To start Ollama, first download it at https://ollama.ai.", + ); + } + } + throw new Error(e.message); + } + }; + return withExponentialBackoff( + () => customFetch(url, init) as any, + 5, + 0.5, + ); } private _parseCompletionOptions(options: LLMFullCompletionOptions) { const log = options.log ?? true; const raw = options.raw ?? false; - delete options.log; + options.log = undefined; const completionOptions: CompletionOptions = mergeJson( this.completionOptions, @@ -285,7 +341,7 @@ ${prompt}`; private _formatChatMessages(messages: ChatMessage[]): string { const msgsCopy = messages ? messages.map((msg) => ({ ...msg })) : []; let formatted = ""; - for (let msg of msgsCopy) { + for (const msg of msgsCopy) { if ("content" in msg && Array.isArray(msg.content)) { const content = stripImages(msg.content); msg.content = content; @@ -350,16 +406,16 @@ ${prompt}`; } async *streamComplete( - prompt: string, + _prompt: string, options: LLMFullCompletionOptions = {}, ) { const { completionOptions, log, raw } = this._parseCompletionOptions(options); - prompt = pruneRawPromptFromTop( + let prompt = pruneRawPromptFromTop( completionOptions.model, this.contextLength, - prompt, + _prompt, completionOptions.maxTokens ?? DEFAULT_MAX_TOKENS, ); @@ -391,14 +447,14 @@ ${prompt}`; return { prompt, completion, completionOptions }; } - async complete(prompt: string, options: LLMFullCompletionOptions = {}) { + async complete(_prompt: string, options: LLMFullCompletionOptions = {}) { const { completionOptions, log, raw } = this._parseCompletionOptions(options); - prompt = pruneRawPromptFromTop( + let prompt = pruneRawPromptFromTop( completionOptions.model, this.contextLength, - prompt, + _prompt, completionOptions.maxTokens ?? DEFAULT_MAX_TOKENS, ); @@ -434,13 +490,13 @@ ${prompt}`; } async *streamChat( - messages: ChatMessage[], + _messages: ChatMessage[], options: LLMFullCompletionOptions = {}, ): AsyncGenerator { const { completionOptions, log, raw } = this._parseCompletionOptions(options); - messages = this._compileChatMessages(completionOptions, messages); + const messages = this._compileChatMessages(completionOptions, _messages); const prompt = this.templateMessages ? this.templateMessages(messages) @@ -491,6 +547,7 @@ ${prompt}`; }; } + // biome-ignore lint/correctness/useYield: Purposefully not implemented protected async *_streamComplete( prompt: string, options: CompletionOptions, @@ -540,41 +597,40 @@ ${prompt}`; template: PromptTemplate, history: ChatMessage[], otherData: Record, - canPutWordsInModelsMouth: boolean = false, + canPutWordsInModelsMouth = false, ): string | ChatMessage[] { if (typeof template === "string") { - let data: any = { + const data: any = { history: history, ...otherData, }; - if (history.length > 0 && history[0].role == "system") { - data["system_message"] = history.shift()!.content; + if (history.length > 0 && history[0].role === "system") { + data.system_message = history.shift()!.content; } const compiledTemplate = Handlebars.compile(template); return compiledTemplate(data); - } else { - const rendered = template(history, { - ...otherData, - supportsCompletions: this.supportsCompletions() ? "true" : "false", - supportsPrefill: this.supportsPrefill() ? "true" : "false", - }); - if ( - typeof rendered !== "string" && - rendered[rendered.length - 1]?.role === "assistant" && - !canPutWordsInModelsMouth - ) { - // Some providers don't allow you to put words in the model's mouth - // So we have to manually compile the prompt template and use - // raw /completions, not /chat/completions - const templateMessages = autodetectTemplateFunction( - this.model, - this.providerName, - autodetectTemplateType(this.model), - ); - return templateMessages(rendered); - } - return rendered; } + const rendered = template(history, { + ...otherData, + supportsCompletions: this.supportsCompletions() ? "true" : "false", + supportsPrefill: this.supportsPrefill() ? "true" : "false", + }); + if ( + typeof rendered !== "string" && + rendered[rendered.length - 1]?.role === "assistant" && + !canPutWordsInModelsMouth + ) { + // Some providers don't allow you to put words in the model's mouth + // So we have to manually compile the prompt template and use + // raw /completions, not /chat/completions + const templateMessages = autodetectTemplateFunction( + this.model, + this.providerName, + autodetectTemplateType(this.model), + ); + return templateMessages(rendered); + } + return rendered; } } diff --git a/core/llm/llamaTokenizer.d.ts b/core/llm/llamaTokenizer.d.ts new file mode 100644 index 000000000..58e0653c9 --- /dev/null +++ b/core/llm/llamaTokenizer.d.ts @@ -0,0 +1,11 @@ +export declare class LlamaTokenizer { + vocabById: string[]; + vocabByString: Map; + merges: Map; + constructor(vocab_base64?: string, merges_binary?: string); + encode(prompt: string, add_bos_token?: boolean, add_preceding_space?: boolean, log_performance?: boolean): number[]; + decode(tokenIds: number[], add_bos_token?: boolean, add_preceding_space?: boolean): string; + runTests(tests?: (tokenizer: LlamaTokenizer) => boolean): void +} +declare const llamaTokenizer: LlamaTokenizer; +export default llamaTokenizer; \ No newline at end of file diff --git a/core/llm/llamaTokenizer.js b/core/llm/llamaTokenizer.js new file mode 100644 index 000000000..0e861ecb9 --- /dev/null +++ b/core/llm/llamaTokenizer.js @@ -0,0 +1,486 @@ +/** + * MIT LICENSE + * + * Copyright 2023 belladore.ai + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + */ + +const base64decode = function(encodedString) { + return atob(encodedString) +} + +const utf8ByteToHex = (c) => { + const hexValue = c.toString(16).toUpperCase().padStart(2, '0'); + return `<0x${hexValue}>`; +} + +const hexToUtf8Byte = (hex) => { + const strippedHex = hex.replace(/<0x|>/g, '') + return parseInt(strippedHex, 16) +} + +class PriorityQueue { + // PriorityQueue implementation is copied from https://stackoverflow.com/a/42919752 with minor refactoring + constructor(comparator = (a, b) => a > b) { + this._heap = []; + this._comparator = comparator; + } + size() { + return this._heap.length; + } + isEmpty() { + return this.size() == 0; + } + peek() { + return this._heap[0]; + } + push(...values) { + values.forEach(value => { + this._heap.push(value); + this._siftUp(); + }); + return this.size(); + } + pop() { + const poppedValue = this.peek(); + const bottom = this.size() - 1; + if (bottom > 0) { + this._swap(0, bottom); + } + this._heap.pop(); + this._siftDown(); + return poppedValue; + } + replace(value) { + const replacedValue = this.peek(); + this._heap[0] = value; + this._siftDown(); + return replacedValue; + } + _parent(i) { + return ((i + 1) >>> 1) - 1; + } + _left(i) { + return (i << 1) + 1; + } + _right(i) { + return (i + 1) << 1; + } + _greater(i, j) { + return this._comparator(this._heap[i], this._heap[j]); + } + _swap(i, j) { + [this._heap[i], this._heap[j]] = [this._heap[j], this._heap[i]]; + } + _siftUp() { + let node = this.size() - 1; + while (node > 0 && this._greater(node, this._parent(node))) { + this._swap(node, this._parent(node)); + node = this._parent(node); + } + } + _siftDown() { + let node = 0; + while ( + (this._left(node) < this.size() && this._greater(this._left(node), node)) || + (this._right(node) < this.size() && this._greater(this._right(node), node)) + ) { + let maxChild = (this._right(node) < this.size() && this._greater(this._right(node), this._left(node))) ? this._right(node) : this._left(node); + this._swap(node, maxChild); + node = maxChild; + } + } +} + +export class LlamaTokenizer { + + vocabById; + vocabByString; + merges; + + utf8Encoder = new TextEncoder(); + utf8Decoder = new TextDecoder('utf-8'); + + constructor(vocab_base64, merges_binary) { + // Array where index represents tokenId, value represents tokenString + this.vocabById = this.decodeVocabulary(vocab_base64 || llama_vocab_base64); + // Map where key represents tokenString, value represents tokenId + this.vocabByString = new Map(); + this.vocabById.forEach((tokenString, tokenId) => { + this.vocabByString.set(tokenString, tokenId); + }); + // Map where key identifies token pair, value represents merge priority + this.merges = this.decompressMerges(merges_binary || llama_merges_binary); + } + + getMergeIdentifierString(firstTokenId, secondTokenId) { + return this.vocabById[firstTokenId] + " " + this.vocabById[secondTokenId] + } + + decompressMerges(merges_binary) { + // Base64 decode binary. + const byteArrayString = base64decode(merges_binary) + + // Convert byteArrayString to byteArray. + const byteArray = new Uint8Array(byteArrayString.length); + for (let i = 0; i < byteArrayString.length; i++) { + byteArray[i] = byteArrayString.charCodeAt(i); + } + + // Each byte-pair represents a tokenId. + // Convert byte-pairs to tokenIds (integers between 0 and 32000). + const tokenIds = []; + for (let i = 0; i < byteArray.length; i += 2) { + const byte1 = byteArray[i]; + const byte2 = byteArray[i + 1]; + const tokenId = byte1 + (byte2 << 8); + tokenIds.push(tokenId); + } + + // Each pair of tokenIds represents a merge. + const merges = new Map() + for (let i=0; i". + * + * This helper function returns the vocabulary as an array that contains Strings representing tokens: + * + * "" // Special token: unknown token + * "" // Special token: beginning of string + * "" // Special token: end of string + * "<0x00>" // Byte-level token representing the 0-byte + * "<0x01>" // Byte-level token ... + * "<0x02>" // Byte-level token ... + * ... // More byte-level tokens + * "<0x0A>" // Byte-level token representing '\n' (line break). This is one of the few byte-level tokens that appear to be actually needed in practice. + * ... // More byte-level tokens + * "<0xFF>" // Byte-level token ... + * "▁▁" // Token representing 2 consecutive spaces. + * "▁t" // Token representing the space character followed by the "t" character. + * "er" // Token representing the "e" character followed by the "r" character. Most tokens look like this. + * ... // 32000 tokens + */ + decodeVocabulary(vocab_base64) { + const byteArray = Uint8Array.from(base64decode(vocab_base64), c => c.charCodeAt(0)); + const textDecoder = new TextDecoder('utf-8'); + return textDecoder.decode(byteArray).split("\n"); + } + + mapCharactersToTokenIds(prompt, add_bos_token, add_preceding_space) { + const tokenIds = [] + // Special "beginning of string" token. + if (add_bos_token) { + tokenIds.push(1) + } + // Special "preceding space" added to beginning of prompt. + if (add_preceding_space) { + prompt = " " + prompt + } + // Special: spaces are represented as thick underscore ▁ (id 29871) + const promptAltered = (prompt).replaceAll(" ", this.vocabById[29871]) + // We need to use Array.from to iterate over characters in order to support UTF-8 multipoint characters + const charArray = Array.from(promptAltered) + // Transform each character to its corresponding token + for (let i=0; i= 0)) { + // This is not supposed to happen because the LLaMA vocabulary has a token corresponding to each byte, + // but if this happens regardless, let's follow the protocol and tokenize to token instead of crashing. + console.log('Encountered unknown character ' + c + " (partial UTF-8 byte " + bytes[j] + " + hex + " + utf8ByteToHex(bytes[j]) + ")") + tokenIds[tokenIds.length-1] = 0 + } + } + } + } + return tokenIds + } + + encode(prompt, add_bos_token=true, add_preceding_space=true, log_performance=false) { + + let startTime = null + if (log_performance) { + startTime = performance.now() + } + + if (!this.vocabById || !this.vocabByString || !this.merges) { + console.log('Tokenizer not initialized properly!') + return + } + if (prompt.length === 0) { + return [] + } + // Initially each character is transformed to a tokenId, later there will be merges of these. + const tokenIds = this.mapCharactersToTokenIds(prompt, add_bos_token, add_preceding_space) + + // Set up priority queue to efficiently iterate merge possibilities in priority order + const mergeQueue = new PriorityQueue((a, b) => { + return a.mergePrio < b.mergePrio + }) + + const addToMergeQueue = (leftNode) => { + const mergeIdentifierString = this.getMergeIdentifierString(leftNode.tokenId, leftNode.next.tokenId) + // Merge priority is primarily determined by the location of the merge in the "merges" data, + // secondarily determined by the relative position of the node in the linked list + // (We want to perform equal merges from left to right) + const mergePrio = this.merges.get(mergeIdentifierString) + leftNode.origPos / prompt.length + if (mergePrio) { + // If mergePrio not found in merges, that means this merge is not possible according to vocabulary. + leftNode.mergePrio = mergePrio + leftNode.mergeToString = mergeIdentifierString.replace(" ", "") + mergeQueue.push(leftNode) + } + } + + // Fill merge queue from initial merge possibilities and construct linked list + let firstTokenNode = { + origPos: 0, + tokenId: tokenIds[0], + prev: null, + next: null, + } + let prevTokenNode = firstTokenNode + for (let i=1; i")) { + // Special case + const utf8byte = hexToUtf8Byte(tokenString) + utf8byteVals.push(utf8byte) + } else { + // Typical case + const utf8bytes = this.utf8Encoder.encode(tokenString) + utf8bytes.forEach(utf8Byte => utf8byteVals.push(utf8Byte)) + } + } + const uint8Array = new Uint8Array(utf8byteVals) + const decodedString = this.utf8Decoder.decode(uint8Array) + const spacesFixed = decodedString.replaceAll(this.vocabById[29871], " ") + // Note that preceding space must be removed here at string level, not earlier at token level, because multiple consecutive spaces are represented as single token. + return add_preceding_space ? spacesFixed.slice(1) : spacesFixed + } + + defaultTests(tokenizer) { + + function isEqual(arr1, arr2) { + return arr1.length === arr2.length && arr1.every(function(value, index) { return value === arr2[index]}) + } + + function testCase(inputString, expectedTokenIds) { + const actualTokens = tokenizer.encode(inputString, true, true, true) + if (!isEqual(actualTokens, expectedTokenIds)) { + throw `Test failed. LLaMA Tokenizer Encoder returned unexpected result: expected tokenize(${inputString}) === ${expectedTokenIds}, actual was: ${actualTokens}` + } + if (inputString !== tokenizer.decode(actualTokens)) { + throw `Test failed. LLaMA Tokenizer Decoder returned unexpected result: expected decode(${actualTokens}) === ${inputString}, actual was: ${decode(actualTokens)}` + } + } + + // Simple test case + testCase("grabbed", [1, 2646, 1327, 287]) + + // Naive implementation produces inconsistent tokenization for " grabbed", making this a good test case + testCase(" grabbed", [1, 29871, 2646, 1327, 287]) + + // Naive implementation uses incorrect merge order for multiple consecutive space merges, making this a good test case + testCase(" grabbed", [1, 9651, 2646, 1327, 287]) + + // Linebreaks and tabs are handled as fallback to byte tokens + testCase("\n", [1, 29871, 13]) + testCase(" \n", [1, 259, 13]) + testCase(" tabs out here", [1, 29871, 12, 21175, 12, 12, 12, 12, 449, 1244]) + + // Equal prio merges are performed left-to-right (fixed in 1.1.1) + testCase("ax\n####\nboo", [1, 4853, 13, 4136, 13, 833, 29877]) + + // UTF-8 multipoint character that should be found in vocabulary + testCase('镇', [1, 29871, 30411]) + + // UTF-8 multipoint character that should NOT be found in vocabulary, fallback to MULTIPLE byte tokens + testCase('🦙', [1, 29871, 243, 162, 169, 156]) + + // Consecutive UTF-8 multipoint characters that are NOT found in a vocabulary and use DIFFERENT number of bytes + testCase('🦙Ꙋ', [1, 29871, 243, 162, 169, 156, 237, 156, 141]) + testCase('Ꙋ🦙', [1, 29871, 237, 156, 141, 243, 162, 169, 156]) + + // Larger text input with various special characters sprinkled in + testCase("The llama (/ˈlɑːmə/; 🦙Spanish pronunciation: [ˈʎama]) (Lama glama) is a domesticated South American camelid, widely used as a meat and pack animal by Andean cultures since the Pre-Columbian era. Llamas are social animals and live with others as a herd. Their wool is soft and contains only a small amount of lanolin.[2] Llamas can learn simple tasks after a few repetitions. When using a pack, they can carry about 25 to 30% of their body weight for 8 to 13 km (5–8 miles).[3] The name llama (in the past also spelled \"lama\" or \"glama\") was adopted by European settlers from native Peruvians.[4] The ancestors of llamas are thought to have originated from the Great Plains of North America about 40 million years ago, and subsequently migrated to South America about three million years ago during the Great American Interchange. By the end of the last ice age (10,000–12,000 years ago), camelids were extinct in North America.[3] As of 2007, there were over seven million llamas and alpacas in South America and over 158,000 llamas and 100,000Ꙋ🦙 alpacas, descended from progenitors imported late in the 20th century, in the United States and Canada.[5] In Aymara mythology, llamas are important beings. The Heavenly Llama is said to drink water from the ocean and urinates as it rains.[6] According to Aymara eschatology, llamas will return to the water springs and lagoons where they come from at the end of time.[6]", + [1, 450, 11148, 3304, 20374, 30176, 29880, 30426, 30215, 29885, + 30184, 29914, 29936, 29871, 243, 162, 169, 156, 15495, 728, + 11504, 11173, 362, 29901, 518, 30176, 31743, 3304, 2314, 313, + 29931, 3304, 3144, 3304, 29897, 338, 263, 21849, 630, 4275, + 3082, 3949, 295, 333, 29892, 17644, 1304, 408, 263, 27654, + 322, 4870, 13019, 491, 1126, 29872, 273, 4185, 1973, 1951, + 278, 4721, 29899, 1625, 3774, 713, 3152, 29889, 365, 5288, + 294, 526, 5264, 15006, 322, 5735, 411, 4045, 408, 263, + 902, 29881, 29889, 11275, 281, 1507, 338, 4964, 322, 3743, + 871, 263, 2319, 5253, 310, 10906, 22878, 7226, 29906, 29962, + 365, 5288, 294, 508, 5110, 2560, 9595, 1156, 263, 2846, + 21159, 2187, 29889, 1932, 773, 263, 4870, 29892, 896, 508, + 8677, 1048, 29871, 29906, 29945, 304, 29871, 29941, 29900, 29995, + 310, 1009, 3573, 7688, 363, 29871, 29947, 304, 29871, 29896, + 29941, 2383, 313, 29945, 29994, 29947, 7800, 467, 29961, 29941, + 29962, 450, 1024, 11148, 3304, 313, 262, 278, 4940, 884, + 805, 14356, 376, 29880, 3304, 29908, 470, 376, 3820, 3304, + 1159, 471, 16356, 491, 7824, 3604, 9306, 515, 7531, 25493, + 1403, 550, 7226, 29946, 29962, 450, 19525, 943, 310, 11829, + 294, 526, 2714, 304, 505, 3978, 630, 515, 278, 7027, + 13494, 1144, 310, 4644, 6813, 1048, 29871, 29946, 29900, 7284, + 2440, 8020, 29892, 322, 17602, 9725, 630, 304, 4275, 6813, + 1048, 2211, 7284, 2440, 8020, 2645, 278, 7027, 3082, 4124, + 3167, 29889, 2648, 278, 1095, 310, 278, 1833, 14890, 5046, + 313, 29896, 29900, 29892, 29900, 29900, 29900, 29994, 29896, 29906, + 29892, 29900, 29900, 29900, 2440, 8020, 511, 3949, 295, 4841, + 892, 1294, 5562, 297, 4644, 6813, 7226, 29941, 29962, 1094, + 310, 29871, 29906, 29900, 29900, 29955, 29892, 727, 892, 975, + 9881, 7284, 11829, 294, 322, 394, 29886, 562, 294, 297, + 4275, 6813, 322, 975, 29871, 29896, 29945, 29947, 29892, 29900, + 29900, 29900, 11829, 294, 322, 29871, 29896, 29900, 29900, 29892, + 29900, 29900, 29900, 237, 156, 141, 243, 162, 169, 156, + 394, 29886, 562, 294, 29892, 5153, 2760, 515, 410, 1885, + 17259, 19673, 5683, 297, 278, 29871, 29906, 29900, 386, 6462, + 29892, 297, 278, 3303, 3900, 322, 7400, 7226, 29945, 29962, + 512, 319, 962, 2518, 22082, 3002, 29892, 11829, 294, 526, + 4100, 367, 886, 29889, 450, 22977, 368, 365, 29880, 3304, + 338, 1497, 304, 13748, 4094, 515, 278, 23474, 322, 5065, + 262, 1078, 408, 372, 1153, 1144, 7226, 29953, 29962, 7579, + 304, 319, 962, 2518, 831, 13496, 3002, 29892, 11829, 294, + 674, 736, 304, 278, 4094, 7689, 886, 322, 301, 4425, + 787, 988, 896, 2041, 515, 472, 278, 1095, 310, 931, + 7226, 29953, 29962]) + + console.log('LLaMA Tokenizer tests passed successfully.') + return true + } + + runTests(tests=this.defaultTests) { + tests(this); + } + +} + +const llama_vocab_base64 = "PHVuaz4KPHM+Cjwvcz4KPDB4MDA+CjwweDAxPgo8MHgwMj4KPDB4MDM+CjwweDA0Pgo8MHgwNT4KPDB4MDY+CjwweDA3Pgo8MHgwOD4KPDB4MDk+CjwweDBBPgo8MHgwQj4KPDB4MEM+CjwweDBEPgo8MHgwRT4KPDB4MEY+CjwweDEwPgo8MHgxMT4KPDB4MTI+CjwweDEzPgo8MHgxND4KPDB4MTU+CjwweDE2Pgo8MHgxNz4KPDB4MTg+CjwweDE5Pgo8MHgxQT4KPDB4MUI+CjwweDFDPgo8MHgxRD4KPDB4MUU+CjwweDFGPgo8MHgyMD4KPDB4MjE+CjwweDIyPgo8MHgyMz4KPDB4MjQ+CjwweDI1Pgo8MHgyNj4KPDB4Mjc+CjwweDI4Pgo8MHgyOT4KPDB4MkE+CjwweDJCPgo8MHgyQz4KPDB4MkQ+CjwweDJFPgo8MHgyRj4KPDB4MzA+CjwweDMxPgo8MHgzMj4KPDB4MzM+CjwweDM0Pgo8MHgzNT4KPDB4MzY+CjwweDM3Pgo8MHgzOD4KPDB4Mzk+CjwweDNBPgo8MHgzQj4KPDB4M0M+CjwweDNEPgo8MHgzRT4KPDB4M0Y+CjwweDQwPgo8MHg0MT4KPDB4NDI+CjwweDQzPgo8MHg0ND4KPDB4NDU+CjwweDQ2Pgo8MHg0Nz4KPDB4NDg+CjwweDQ5Pgo8MHg0QT4KPDB4NEI+CjwweDRDPgo8MHg0RD4KPDB4NEU+CjwweDRGPgo8MHg1MD4KPDB4NTE+CjwweDUyPgo8MHg1Mz4KPDB4NTQ+CjwweDU1Pgo8MHg1Nj4KPDB4NTc+CjwweDU4Pgo8MHg1OT4KPDB4NUE+CjwweDVCPgo8MHg1Qz4KPDB4NUQ+CjwweDVFPgo8MHg1Rj4KPDB4NjA+CjwweDYxPgo8MHg2Mj4KPDB4NjM+CjwweDY0Pgo8MHg2NT4KPDB4NjY+CjwweDY3Pgo8MHg2OD4KPDB4Njk+CjwweDZBPgo8MHg2Qj4KPDB4NkM+CjwweDZEPgo8MHg2RT4KPDB4NkY+CjwweDcwPgo8MHg3MT4KPDB4NzI+CjwweDczPgo8MHg3ND4KPDB4NzU+CjwweDc2Pgo8MHg3Nz4KPDB4Nzg+CjwweDc5Pgo8MHg3QT4KPDB4N0I+CjwweDdDPgo8MHg3RD4KPDB4N0U+CjwweDdGPgo8MHg4MD4KPDB4ODE+CjwweDgyPgo8MHg4Mz4KPDB4ODQ+CjwweDg1Pgo8MHg4Nj4KPDB4ODc+CjwweDg4Pgo8MHg4OT4KPDB4OEE+CjwweDhCPgo8MHg4Qz4KPDB4OEQ+CjwweDhFPgo8MHg4Rj4KPDB4OTA+CjwweDkxPgo8MHg5Mj4KPDB4OTM+CjwweDk0Pgo8MHg5NT4KPDB4OTY+CjwweDk3Pgo8MHg5OD4KPDB4OTk+CjwweDlBPgo8MHg5Qj4KPDB4OUM+CjwweDlEPgo8MHg5RT4KPDB4OUY+CjwweEEwPgo8MHhBMT4KPDB4QTI+CjwweEEzPgo8MHhBND4KPDB4QTU+CjwweEE2Pgo8MHhBNz4KPDB4QTg+CjwweEE5Pgo8MHhBQT4KPDB4QUI+CjwweEFDPgo8MHhBRD4KPDB4QUU+CjwweEFGPgo8MHhCMD4KPDB4QjE+CjwweEIyPgo8MHhCMz4KPDB4QjQ+CjwweEI1Pgo8MHhCNj4KPDB4Qjc+CjwweEI4Pgo8MHhCOT4KPDB4QkE+CjwweEJCPgo8MHhCQz4KPDB4QkQ+CjwweEJFPgo8MHhCRj4KPDB4QzA+CjwweEMxPgo8MHhDMj4KPDB4QzM+CjwweEM0Pgo8MHhDNT4KPDB4QzY+CjwweEM3Pgo8MHhDOD4KPDB4Qzk+CjwweENBPgo8MHhDQj4KPDB4Q0M+CjwweENEPgo8MHhDRT4KPDB4Q0Y+CjwweEQwPgo8MHhEMT4KPDB4RDI+CjwweEQzPgo8MHhEND4KPDB4RDU+CjwweEQ2Pgo8MHhENz4KPDB4RDg+CjwweEQ5Pgo8MHhEQT4KPDB4REI+CjwweERDPgo8MHhERD4KPDB4REU+CjwweERGPgo8MHhFMD4KPDB4RTE+CjwweEUyPgo8MHhFMz4KPDB4RTQ+CjwweEU1Pgo8MHhFNj4KPDB4RTc+CjwweEU4Pgo8MHhFOT4KPDB4RUE+CjwweEVCPgo8MHhFQz4KPDB4RUQ+CjwweEVFPgo8MHhFRj4KPDB4RjA+CjwweEYxPgo8MHhGMj4KPDB4RjM+CjwweEY0Pgo8MHhGNT4KPDB4RjY+CjwweEY3Pgo8MHhGOD4KPDB4Rjk+CjwweEZBPgo8MHhGQj4KPDB4RkM+CjwweEZEPgo8MHhGRT4KPDB4RkY+CuKWgeKWgQriloF0CmVyCmluCuKWgWEKZW4Kb24K4paBdGgKZXMK4paB4paB4paB4paBCuKWgXMK4paBZAphdApvcgphbgriloFjCmlzCnJlCml0CuKWgXRoZQphcgpsZQriloF3CuKWgXAKb3UKYWwK4paBZgriloFtCmVkCuKWgW8K4paBYgpvbQppb24KaW5nCmljCmFzCmVsCmVudAriloFpbgriloFoCm5kCmV0CuKWgWwK4paBbgpzdAriloF0bwpjaAriloFJCnJvCuKWgeKWgeKWgeKWgeKWgeKWgeKWgeKWgQppbAriloFvZgpkZQpjdAriloEoCmFtCuKWgUMK4paBZGUK4paBUwriloF1CuKWgUEK4paBXAriloFlCuKWgWFuZAriloFUCm9sCuKWgXYKaW0Kb3QKYWQKdXQK4paBZwplbQp1cgppZAriloEqCmlnCnJhCuKWgXJlCuKWgWlzCnF1Cm93CuKWgU0KZXN0CuKWgXkKc2UKdmUKY2UKaWUKdW4K4paBUAriloFCCmFnCnVsCuKWgT0KaGUKZW5kCm9kZQp0ZXIKbWVudApvcwriloFECmlmCmF0aW9uCuKWgWZvcgriloFyCuKWgUwK4paBeW91CuKWgWJlCmx5CnZlcgphYgp0ZQriloFpdAriloFvbgpyaQp1cwriloEiCuKWgXdoCuKWgWNvbgriloFICuKWgXN0CmlyCuKWgUUK4paBRgpjawriloFhbgp0aAplZwpheQppdGgK4paBUgppc3QKYW5kCuKWgXRoYXQK4paBYWwK4paBJAriloEjCm9kCnVtCuKWgVcKaHQKY29kZQriloFHCmF0ZQplc3MK4paBTgplcmUKcHAK4paBYXMK4paBc2UK4paBcHJvCuKWgXdpdGgKcGUK4paBawplcnMKcHQKKTsKbG8K4paB4paB4paB4paB4paBCuKWgWNvbQphbWUK4paBYAriloFDb20KaWEKYW50CuKWgWxhCuKWgXsK4paBZW4KY3Rpb24K4paBZXgKbGQKdWIK4paBagpsYQp1ZQriloFKCmljaAriloFkbwriloFPCuKWgXF1Cml2Cm9ydAphcnQK4paBdW4K4paBIyMK4paBdGhpcwprZQriloFoYQriloEtCm91dAriloFUaGUK4paBbm90CuKWgW5lCmlsbAriloFsZQpjaQpyb20KaW5lCi8vCm9wCmVnaW4K4paBQ29tbWVudAriloHiloHiloHiloHiloHiloHiloHiloHiloHiloHiloHiloHiloHiloHiloHiloEKYmVnaW4K0YHRggphc3MKaXoKKS4Kb2cK4paB0L8K4paBb3IK4paBd2FzCuKWgWF0Cm91cgriloFpCmFpbgriloFLCtC90LAK4paBVgpnZQriloFzdQphcAphZ2UKb3VsZApuZQphdgp4dApvcmUKaWxlCi0tCuKWgdCyCuKWgWJ5CmxpCmF0aArRgNCwCmJlcgphY2gKYWxsCuKWgVRoCnVsdAriloF9CuKWgVUK4paBdXMK4paBegp1c3QK4paBaGF2ZQpsaWMK0L3QuAriloFjYW4KdHIKY29tCiksCuKWgUluCmluZAplbGwK4paBZnJvbQrQvtCyCnRvCuKWgVsKYWJsZQpvc3QK4paBY2gKZWN0CmlnaHQKaW50CuKWgScK4paBYXJlCuKWgWltCuKWgXNoCuKWgTwK4paBQW4K4paB0YEKYXRhCmlyZQriloF0cgpjb24Kb3JkCml0eQphcmQK4paB4paB4paB4paB4paB4paBCuKWgWhlCuKWgWJ1dApvYwo9IgriloFwcgp1cmUKcGVyCmFjawpvcmsKb25nCmFucwrQutC+CnBsZQriloFkZXMKb2sKb3JtCndlcgphawpwcgphc2UK4paBZWwKcGgKYWMK4paBdW5kCuKWgWFyCuKWgWlmCnVkCnBzCml0ZQpibGUK0L3QvgpmZXIKcGwKaXZlCmFuZwplbnMK0YDQvgriloFzbwpzbwphc3QKKCkKc3dlcgpydQppZXMK4paBOgphdQpvdgrRgNC1CtCz0L4K4paBZGVyCuKWgW15CuKWgXdlCuKWgW1lCm50CuKWgWFkCnVybgriloF5b3VyCjovLwphcmUK4paBYWxsCmZmCmlvCmVzdGlvbgppbWUK4paBZXIKbGFzcwriloHQuAriloF3aGljaApvbWUKb250CuKWgXBhcgriloFtYQriloFZCiIsCuKWgdC+CmZ0CmlhbApjYwpvdW5kCuKWgWxpCuKWgXJlcwpldGgKamVjdAriloFhcHAK4paBU3QKaWNlCuKWgWFtCmFjdAriloFkZWwKZ3IKYXRlZAppZXIK4paB4paB4paB4paB4paB4paB4paB4paB4paB4paB4paB4paBCuKWgWFiCuKWgWV0CmFsbHkKLi4KcG9ydAppawriloFwZXIK4paBY29udArRgNC4CtC60LAKc2VyCtC70LgKbGwKaWV3CmlnbgpfewpwdXQKb25lCnVuY3Rpb24K4paBZGkKYXJ5Cml0aW9uCm1hCtC10L0KZ2V0CuKWgWxvCuKWgXZhbAriloFRCnJhbgriloHQtAplbmNlCuKWgXdvcmsK4paB0L3QsAppcAppdGVtCnlwZQriloEmCuKWgWhpcwriloF1c2UKZGVyCuKWgUFuc3dlcgriloF3aWxsCml6ZQrRgtCwCmxvdwriloFDaAriloFnZXQKaWRlCm91cwppbmsKcHRpb24K0LvQsAp0dXJuCnVuZwplYwp1Zwpmb3JtCnJlcwpodHQKb3VnCtC70YwK4paBbm8KY2wK4paBcm8K4paBb25lCnR0CmNyaQpkdQriloF1cArRgtC+CigiCuKWgW9iCndlCm9yeQriloFlc3QKZXJ5CmllbApzdHIKb2IK4paBcXVlCmlhbgriloFvdXQK4paBcGwK4paBbmV3CtC60LgK4paBKwpyeQpvdGgKdGhlcgriloF2YXIK4paBd291bGQK4paBc2VyCnRlcm4KdGV4dAriloF0aGVyZQppc2gKcm9yCtGC0LUK4paBc2V0CuKWgUAK4paB0L/QvgriloF0ZQpleAriloFyZXR1cm4KYWlsCuKWgWFueQriloFJdAriloFmdW5jdGlvbgp7XAonLArDqXMKYWxlCtCw0L0K4paBd2hlbgppYgriloFnbwphbmNlCuKWgWhhZAriloFRdQriloFjb21wCtC70LUK4paB0LcKbWF0aAriloFoYXMK4paB0LwK4paBcHJlCmVuZXIK4paBcGFydAplbGYK4paBZGllCuKWgWxpa2UKcmF5Cmlyc3QK4paBZGlzCuKWgW1hbgpyaXQK4paBdGhlbgriloFjbGFzcwpwcm8K4paBcG8K4paBdXNpbmcKZWIK4paBY29kZQpvd24K4paBc29tZQpjZXMK4paBJFwK0LXRgApsZWN0CuKWgWF1CmlzY2gK4paBY29sCuKWgeKAkwp1cApvbnMK4paBYWRkCmlsZAppc3MKdmFsCm91bnQKbGVzCnZlbnQK4paB4paB4paB4paB4paB4paB4paB4paB4paB4paB4paB4paB4paBCuKWgVoKSW4Kcm93CmVhcgphdGlvbnMKYWgKcXVlCnVibGljCmFuawriloFzcAriloFXaAotLS0tCnNrCmV3CmFncwrRgtC4CmFubgriloHigJQKZXJ0CmFjZQpzY2gK4paBbmVlZAriloHDoAppZW4Kb3VnaArQvdC1CuKWgWRlZgppagplcm4K4paBd2hhdAriloFBcgp3bwptbAo8LwriloFSZQriloFlcwriloFpbnN0CmJvCmF6CuKWgSMjIwriloHQsQplcm0K4paBQWwKbGVkCtC00LAKdGVuCnNldArQu9C+CuKWgWNvbW0Kc2gK0LLQsAriloEvCuKWgWRhdGEK4paBLy8KXSgK4paBc3RyCm9zZQriloFVbgp2ZW4KU3QKLi4uCuKWgdChCnlzdAriloHCqwppY2sKaXgKcGFyCuKWgdGDCuKWgXdhbnQKbmcKb3RlCuKWgWdyCuKWgWR1CuKWgS4KdW5kCuKWgW9ubHkK4paBc2EKZWx5CnZlcnMK4paBZW50CikpCignCuKWgW1vZAphdmEKdG9uCuKWgXNob3VsZAplbWVudAriloFmb3JtCuKWgWFsc28K4paBc2MKaW5ncwriloFZb3UKw7NuCuKWgWtuCigpOwriloF8CuKWgXdlcmUKc3MK4paBUXVlc3Rpb24KaXNlCuKWgXRoZXkK4paBRGUKb25kCuKWgXNvbAriloFmb2wK4paBbW9yZQriloFoZXIK4paBXwriloHDqQphdGNoCmZ0ZXIK4paBY3JlCmxvY2sKdHJpbmcK4paBVGhpcwp6ZQphZG8KdWxsCmdlcgpiZQriloFvdGhlcgriloFUYWdzCnV0aW9uCmljdAriloFob3cK4paBeAriloFTZQriloFjaGUKY3JpcHQK4paBanVzdAriloFwb3MKYW5nZQppZmljCnJlZQp9fQriloF0aW1lCmFwcArQvdGLCuKWgWZpbGUKYXJrCmljYWwK4paBZmlyc3QK4paBaW50CuKWgdCSCuKWgUhlCnRhCnVtZW50Cm9ycwpsZW1lbnQKcmFjCuKWgWFnCuKWgWRvZXMKeW4KcmVhZAp1YWwK4paBTGUKeXMK4paBZW0K4paBbnVtCnZlbArQtNC4Cm92ZXIK4paBZGlmCmV0aG9kCuKWgUlmCuKWgXNwZQp5bQriloF0aGVtCuKWgWludG8K4paB4paB4paB4paB4paB4paB4paB4paB4paB4paBCuKWgWxlcwriloFpdHMKZXNlCmllbGQK4paBcHVibGljCuKWgdCfCuKWgWRlbgp5c3RlbQpvZgriloFvdmVyCi0+CuKWgWZpbApuYW1lCmluYWwK4paBaWwKYW1wbGUK4paBd2F5CmljYQrQstC+CmNlc3MKaXR0CnVjaAriloF3aGVyZQrQvNC4Cm9yZwpodHRwcwriloF2bwppZW50Cm92ZQriloF2YWx1ZQplbmcK4paBTGEKXnsKcmVmCmllZApFUgriloFzdGF0CmZpZwptZQriloF2b24K4paBaW50ZXIKcm9pZAphdGVyCuKWgXRoZWlyCuKWgWJldAriloFlaW4KfVwKIj4K4paBc3ViCuKWgW9wCuKWgWRvbgp0eQriloF0cnkK4paBUHJvCuKWgXRyYQriloFzYW1lCmVwCuKWgXR3bwriloFuYW1lCm9sZApsZXQK4paBc2ltCnNwCuKWgWF2CmJyZQpibGVtCmV5CuKWgWNvdWxkCuKWgWNvcgriloFhY2MKYXlzCmNyZQp1cnIKc2kK4paBY29uc3QKdWVzCn0kClZpZXcK4paBYWN0CuKWgWJvCuKWgdC60L4K4paBc29tCuKWgWFib3V0CmxhbmQKbWVyCuKWgWxpc3QKY2FsCuKWgWltcG9ydApjb2wK4paBbmEKbmEKOjoK4paBd2hvCuKWgWVycm9yCuKWgVgKYXRvcgpleHQK4paBYmVlbgrDqXIK4paBcnVuCnBvcwriloFjbAoqKgriloHQmgp1bGFyCmF1c2UK4paBcmVnCuKWgWtub3cK4paBc2VlCuKWgWhpbQpuaW5nCuKWgdC30LAKYXRlcwpmb3JlCmlvbnMK4paBaGVsCnV0ZQriloFyZW0K4paB0LPQvgriloFNYXIK0YDRgwp2aWNlCmlyZWN0Cm5lcgriloF1bmRlcgpyaWIKaHIK0YfQtQriloFBcwriloFlbmQKZW1iZXIK4paB0LAK4paBYXR0CmluYQpzb24K4paBZm9sbG93CuKWgVNjaApwZWN0CuKWgXJlbAriloFTbwriloFsb29rCmFiZWwK4paBcHJvYmxlbQriloF2YW4Kc3Ryb25nCmNvCnBvbgpjYQphZGEKIjoKY29uZAphbWIKfSwKcXVlc3QK4paBYXV0CuKWgXJlc3VsdAriloFtYXkKUmUKaHR0cAopOgriloFBbmQKcmVkCuKWgUhvdwpwbwrRgdC60L4KYXR0Cm91cApjZWQK4paBdHlwZQriloF0aGFuCuKWgWNvbnMKdWYK0YbQuAriloFxdWVzdGlvbgpyYXBoCmlnaAriloHQnAriloFodHQKaW5zCmRlbgriloFkYQriloF2ZXIKb2gK4paBPT4Kcml2CnVkZQriloFGb3IK4paBcmEKZnJhYwrQvNCwCuKWgWFmdGVyCn17CuKWgW1ldGhvZAoiKQphbXAKYXNoCuKWgXJlYwriloFkaWZmZXIKT04KYXgKYW1lbnQKb3VyY2UKQ29uCml0cwpOYW1lCm1hbgriloFiZWMKY2hlCuKWgUVuCmFqCuKWgWdlbmVyCklOCuKWgWlkCmFnZXMK4paBbG9jCmZvCmJyCuKWgXNoZQpQcm8K4paBdW5hCuKWgdC6CmV0YQpsb2cKb2xvZwriloFzdXIKYXJnCuKWgS0tCmt0CihcCm1pbgriloFsaW5lCuKWgXZhcmkK0YHRjwppY3MK0L3Rjwp2ZXJ5CmFkZAriloFvYmplY3QKSWQK4paBQnV0CuKWgWNhc2UK4paBbWFrZQriloFjYWwK4paBcGFzcwrRgdGMCmVzc2lvbgpuZXQKLiIK4paB0LMKw6RyCtC00LUKbm8KYXRpbmcKYXRvCmxpbmUK0LLQuAriloFFeAriloFhc3MK4paBdmVycwrQu9GPCuKWgWVkCnVtbgpvdGhlcgrRgdGC0LAKYXRpdmUKU3RyaW5nCuKWgWxvcwp3bgriloFhbnN3ZXIK4paBbGV0CuKWgXBlCmVudHMK4paBZmUKaW5jZQpuaQppZGVyCm93cwriloF0ZXN0CuKWgWhlcmUKcm9sbAriloFjYWxsCnJ1Y3QK4paBcG9sCmFpdAriloFiYWNrCmhvCkV4CnJlc3MKU1QKcmllZApkYXRlCtC10YIK4paBZGlkCnRpbmcK4paBRWwK4paBZGVtCikkCtC+0LLQsAp1cnJlbnQKbGFjZQpyaWdodApyZW4K0L/QvgriloFlYWNoCmN5CmJsb2NrCmRhdGEK4paBJQriloFhYwriloE9PQrDvHIK4paBcG9yCmFzawphcmNoCmFtZXMK4paBQ29uCtGH0LAK4paBb2ZmCuKWgWZpbmQKY29udAriloFub3cKd29yawphdGlvbmFsCmRkCmNpw7NuCuKWgdCQCmF1bHQKTGlzdAriloFleHQKdXJzCmFrZQp1bGUK4paBcG9pbnQKQVQKYXV0CuKWgXRyYW5zCuKWgWNvCuKWgXJlYWQK4paBdXNlZArRgdC60LgKYXJpCkxFCmV0ZXIKb3VuCmV2ZXIKc2VsZgppbmVkCmlkdGgKdXgKanMK4paBc3VjaAriloFJcwrDqWUKZnVsCuKWgWRpc3QK4paBYnUKaXRlbWl6ZQpDb250CmplCtGB0LgK4paBcHJvdgpiYgp3YXJkCmVzZW50CmVyc29uCmFua3MKd2gKbm90CuKWgVdlCmthCnJvcAphdHVyCmFscwriloFiZWwKw7ZyCmZyCuKWgWV4YW1wbGUK4paBaW5jbAphbWlsCuKWgdGA0LAK4paB4oCcCuKWgXN0cmluZwriloF0aGluawpUaAriloF0ZW0KYXZlCuKWgUZyYW4K4paBbnVtYmVyCuKWgXNpCmltZXMKdGVtCm15Cmxlcgpsb2FkCj09CuKWgWhhbmQKemEK4paBYmVjYXVzZQriloFzY2gKdm8KdGhpcwpJRArDo28K4paBc3RhcnQK4paBd2FyCuKWgWhlbHAKdHMK4paBY2hhcgriloFwaAriloFtaW4KdGlsCnJpdGUKLS0tLS0tLS0KZWxzCuKWgW1pdAplZGlhCtC60YMK4paBU2gKYW55Cl07CuKWgdCRCmlxdWUKZGEKZWYKZGV4CuKWgXByb2R1CuKWgdCdCmdyYW0K4paBT3IK4paBZ3JlCnF1b3RlCmxlZwpvcm4K4paBaW5kCuKWgXBvc3QK4paBZGVwCl0sCnZpCuKWgXVzZXIK4paBPgpsaWNrCuKWgXZlcnkKZXRoaW5nCuKWgWFycmF5CuKWgWd1CuKWgWR1cgpgLgrRgtGMCmxpY2F0aW9uCtGB0YLQuAplawppY28K4paBZGF0CtC+0YAKaHRtbAppb25lCuKWgWRpZmZlcmVudAriloFjaGVjawriloFmcgriloFFcgriloF0ZXh0CtC90ZYKaWNodApzdGFjawpFTgpyYWcK4paBZXZlcnkKQXIK4paBYmVmb3JlCmFsc2UK4paBZmluCuKWgWTDqQriloF0aGVzZQriloFkZXQKVmFsCmNlcHRpb24K4paBYW5kcm9pZApibG9ja3F1b3RlCuKWgWplCmZpbGUKYXRzCuKWgdC00L4KZXNzYWdlCuKWgWFnYWluCmF3CkNoCndlZW4K4paB0JQKZm9yCmNpYWwKcGxheQpwcmUKaWRhCuKWgVBhcgpueQpyYWN0CuKWgXN1cHAKYXNlZApsZWN0aW9uCuKWgWRhbnMKYWlyCnJvbAriloF0aHIKRGF0YQpsaWNoCuKWgdC/0YDQvgriloFsb25nCuKWgXNlY29uZAp1YWxseQppbmVzCuKWgWZvdW5kCmVuZ3RoCnlwCmVhZAriloFsb2cKdWkKbmV3CuKWgdCgCmdvCmF1cwpvZHkK4paBc29uCtC80LUKZXJvCnZlZApzdWIK4paBcmlnaHQKdmlldwriloFmb2xsb3dpbmcKJykKIik7CuKWgXNhaWQK0LbQtQrRh9C4CtGC0YMKb3R0CtGB0LUKYXJzCiQuCmdnCuKWgWJyCm9vbAp5bGUKdXNlCuKWgXNob3cKbGVhc2UKY2lhCuKWgWRpcmVjdApkb2MK0LDRgAptcwriloFnaXYK4paBZXhwCnFsCtC00YMK0LLQtQriloFCZQpDb20KaXRlcgpSRQptcAptZW4K4paBUm8KTUEK4paBQ29sCmlzdGVyCuKWgXdlbGwK4paBPC8KYXlvdXQKYXR1cmUKaXZlcnMKenkK4paB0L3QtQriloFtZXQKdW5lCnl0aApUeXBlCuKWgWVsZW1lbnQK4paBbGluawptb2QK4paBYmV0d2VlbgpjZXB0CnF1aXJlCuKWgXRocm91Z2gK4paBd2hpbGUK4paBT24KdGhlCsOtYQriloFzb21ldGhpbmcKdm9sCuKWgW1vc3QKc2MKdXNzCuKWgWNhcgriloFzbQriloHRgNC+CmFubwpsZWZ0CnZhCuKWgXRydWUKKCQKZW1zCuKWgW11Y2gKw6FzCuKWgU5ldwriloFwcm9wZXIKZXJhCml0ZWQK4paBZG9jCmljZXMKVGhlCuKWgT8K0YHRgtC+CmZsCuKWgXNwZWMKZW5kZXIKd2F5CuKWgXNlbGYK4paBZXZlbgrRltCyCuKWgdGB0LUK0L3QuNGPCuKWgVByCuKWgWtlCmVtYgriloF0YWJsZQriloFlcXUKbGllbnQKdGQKcGFydAriloFwcmludAriloF1bmUKaWZ5CuKWgS0+CmVuZQriloFtb24K4paBZGVjCuKWgXN0aWxsCuKWgdC+0LEK4paBVHIK4paB0YQKaWZlCmlzbQpieQpyYXcKaW9yCuKWgW1lZApvcmxkCuKWgWNvbXBsZQp3dwriloFhcnQKcm9uCuKWgdCTCuKWgU15CuKWgWFscwpyZWN0CuKWgWF1ZgriloFkb3duCmF0aGVyCkNvbApUZXh0CmJhY2sKJCwK4paBeWVhcgrQvNC+CnBpCuKWgUdyCnJlYW0K4paBcmVwCmJmCnd3dwriloF3dXIK4paBb3JnCmludGVyCuKWgURpZQriloFiZWluZwoiLgpsYWJlbAriloFjZW50CmphdmEKYmFyCmFudGUKYW5hCl9fCuKWgXNvbHV0aW9uCuKWgdCeCuKWgWZsCuKWgWNyZWF0ZQppY2kKc3RlCnl0aG9uCnVudAphc29uCmZlcmVuY2UKU0UK4paBbm9uCmFuZQriloFpbnMKYWRlcgpfe1wKUmVzCuKWgW1haW4K0L/QuAriloHiloHiloHiloHiloHiloHiloHiloHiloHiloHiloHiloHiloHiloEK4paBVGhlcmUK4paBcG91cgpSTwpgLApsaXNoCmJqZWN0CmNjZXNzCuKWgW9yaWcK4paB4paB4paBCmlzY2hlbgpvd2VyCuKWgWhldAp1YwriloFlbHNlCsK7LgriloHQvtGCCmVxdQpzaWJsZQp0ZXN0CnN0YW5kCsOpbgpldHMKR0UKaWRlbnQK4paB0LUK4paB0L/RgNC4Ci4sCuKWgWRhcwpvY2sKLCIK4paBdm9sCuKWgWZvCuKWgXBhcmEK4paB0KIK4paBQ2FyCnJhbAriloFTcAp2YXIK4paBcGxheQpvdXNlCuKWgdGC0LAKaWNhbGx5CuKWgWNvbnRhaW4KcG9uc2UK4paBU3RyaW5nCsOhbgriloFib3RoCmtlbgpBUgrQtdGA0LUK4paBSWwK4paBaXNzCuKWgW9wZW4K4paBKQriloFXaGF0CmZlCnJpdmF0ZQpyZWcK4paBd2l0aG91dAriloF6dQp2aXMKZmxvdwriloFodHRwCmFiYXNlCuKWgXdvcmQK4paBY2hhbmdlCuKWgXdvcmtzCuKWgWdlCuKWgSEK4paBZWVuCml0bGUK4paBZXZlbnQKd29yZAphbmRvClNCCnJlbQriloFmaWVsZAp2aW5nClNlcgriloFvdXIK4paBcXVpCuKWgW9wZXIK4paBaXN0CmRlZgriloFtYWRlCtC90LjQtQpweAriloFtZW4Kcm0KYWlzCmNlbnQKbGlzdApUbwriloFUbwpqYQp2ZXJ0CuKWgW1hcgp2YWx1ZQriloHigJ4KIjsK4paBYXVzCuKWgUJyCm9sZQriloFtdWx0Cm91Z2h0CuKWgW1hdAriloF2aWV3CmZpbAriloHRgdC+CtCz0LAK4paBdm9pZAriloFnb29kCtCx0L4KQ1QK4paBbWFueQpiZW4K4paB0LLQvgriloHQutCwCuKWgXN5c3RlbQppbm8K4paBYW5vdGhlcgriloFyZXN0CnVzZXIKaWxpdHkKYWkK4paBbWlnaHQKdXN0b20K4paBb3JkZXIK4paBVmVyClNTCn0pCuKWgWVmZgrQtNC+CmV0dAriloFzaWduCtC80YMKSVQKc3RyaW5nCmVsbGUK4paBc2luZwpjdWwK4paBdHJ5aW5nCuKWgWJlZwriloFwYWdlCtGF0L4K4paBQ2FuCuKWgVNlcgorKwriloFtdXN0CuKWgXZhbHVlcwriloFrZXkKaWJsZQpdLgppcmQK4paBcHJvZ3JhbQpyb2xsZXIK4paBY29ubmUK4paBc2F5CuKWgXBhcmFtCmFjaGUKdmVsb3AK4paBc2VsZWN0CuKWgWZhbWlsCuKWgWxhc3QK4paBVGhhbmtzCuKWgXBvcAp9LgplcQriloFkb2VzbgpbJwriloF0ZXJtCuKWgXLDqQriloFkb2N1bWVudArQv9CwCtC70YMKYXRlZwouKQpsaW5nCmlvbmFsCmFibGVzCuKWgXRhawp1dHRvbgriloFhcmcKdHlwZQriloFzdXJlCuKWgXJlYWwK4paBd2ViCuKWgWN1cnJlbnQK4paBUGwKY2hvCm1lbnRzCuKWgUpvaApvdHMK4paBZXhpc3QK0L3RgwriloFmw7xyCuKWgdC40LcKZG8K0L3QvtCz0L4K4paBbGFzCuKWgW51bGwK4paBaW5mb3JtCuKWgdCbCuKWgXZlcnNpb24K4paBY2hhbmcKYWdlcgriloFDb21tCtC70ZYKdXNoCuKWgUdlCuKWgWhpZ2gK4paBaW5wdXQKb2dsZQpyb3MKYm94CmdlbgriloFzdGUK4paBbG9jYWwKSW0K4paBcHJvY2Vzcwp0ZXJuYWwKaXplZArQs9C4CsOpdAriloFJbmQK4paBb2NoCmx0CuKWgWNvbHVtbgriloF0cmllZAriloFjb21tYW5kCuKWgWJlc3QKYXN0ZXIK0LfQsAriloFwcmltCuKWgW1vZGVsCuKWgdGWCuKWgXRob3NlCml0aWVzCsOocmUK4paB0YDQtQrRmNC1CtGI0LgKcXVlcwriloFBbQriloFvd24KbGluCtC30LgKVmFsdWUKdGhpbmcK4paBLAriloFUZQriloFzdHVkCuKWgXVtCuKWgXNlcnZlcgppbGxlCuKWgXB1dAphdGl2Cmd5CtC+0LLQuApyYWYK0L7QstC+CuKWgXd1cmRlCuKWgVdoZW4K4paBZGl2CmFudHMK4paBdGVyCuKWgXBhcnRpYwriloHRggriloFEbwriloFObwpzZXJ0CmlkbwptYXRoY2FsCmFkZQriloFJSQpsZWFyCm9ncmFwaAplbnNlCuKWgXJvdwpudW0K4paBcG9zc2libGUK4paBc2luY2UK4paBQm8KY3Rpb25zCuKWgUltCk9SCtGG0ZYK4paBaWRlCm1hcAriloFjb3JyZWN0CnZlcwpwaHAK4paBb3V0cHV0CuKWgVBoCkFMCmFyZWQKXFwK4paBaW1hZ2UKZXNjaArQttC4CuKWgWNvbmYKcG9yCnF1ZXJ5CnVyZXMKaXVtCmVuZHMK4paBQWIKU0JOCtGW0LQKZXRoZXIKcHRpb25zCml0dQpsaWIKbnMKa2kK4paBd29ya2luZwriloFjb21vCuKWgVRoZW4KTUwKa2V5CmNsYXNzCm9wbGUKaXR0bGUK4paBbWF0Y2gKd2F5cwptYXRoYmIK4paBcmVxdWlyZQphbHQK4paBdmlzCuKWgWJsCuKWgWNhbGxlZApJdGVtCnVyYQp2ZWMKZW1lCuKWgWRlbGxhCmVtYnJlCnVyZwpTZQriloFyZXF1ZXN0CmlzY2hlCuKWgXBvcnQK4paBaW5zdGVhZAo9XAriloHQowpob3IKZW50ZQp1bWUKZXJkCtGB0LAK4paBd2h5CnJpc3QK4paBcGVyc29uCuKWgS4uLgriloFwcml2YXRlCuKWgXRvdApwaGEKaWZ0Cml0YQpsb2MK4paBb2xkCtC+0L0K4paBbmVsCiddCnRpCmlldApjaXRlCnBsZW1lbnQK4paBYWJvdmUKa3MKcmVhZHkK4paBY29tZQpzZWN0aW9uCuKWgVBvbAriloF3cml0CuKWgWh0dHBzCuKWgSQkCuKWgcK7CuKWgWJ1aWxkCml0bwriloFjb25zaWRlcgphZnQKQXBwCixcCmluZG93cwpjb21tCuKWgTsKZ3JvdW5kCuKWgXBsYWNlCkJ5CuKWgXByb2plY3QKT2JqZWN0CuKWgXJlcHIKZW5jZXMKaW5kb3cKenQK4paBZmlsZXMKY3oKaXZpdHkK4paBaW5pdAriloFwcm9iCuKWgXNrCm9ydGgKaW1lbnQKb3VibGUKYXRhbAppcmMK4paBw6gK4paBYnJlCmlzdGEKaW5wdXQK4paB0JgK0L3QvtC5CnN1bQpwYXRoCuKWgWNvdXIK4paBdG9vCuKWgUFkCuKWgUd1CuKWgWZhbHNlCuKWgWZ1bgriloHRgdGCCm9vZArDqHMK4paBZW5jCmJvbApybAphcmdldApvcmRlcgriloFtZWFuCtC/0LUKaWdlbgriloHQv9GA0LUKd2lkdGgKOw0KaXRvcgriloFzdGF0ZQriloFncmVhdAplbm4KYmluCkVyCk1vZApvegriloF3b24K4paBZmFjdAriloFqYXZhCuKWgVVuaXZlcnMK4paBY2FwCmlzdG9yCn0oCmt1Cml0aGVyCmFsZXMK4paBb3UKcm9zcwriloF0YWtlCnJpeApsb2IK4paBZWluZQphc2VzCuKWgWFjY2VzcwppdMOpCmlzdHIKaXphdGlvbgriloFhcHBybwpiYWxsCuKWgW1hawp9XgriloFDb25zCnByZXNzCnNlcnYKKCkuCmFmCuKWgXJlZgopXAriloFjb250aW4Kc3UKaXZlcgriloFjb25kCuKWgWV4cGVjdAriloFjaGFyYWN0CmJlcnQKZWx0CnRlcnMKc2NyaXB0CuKWgUVkCmFwdAonKTsKcHJpbnQK4paBc2l6ZQriloFzaWNoCmZhY2UKZW5kZW4K4paBQW1lcgppZmllZArDs3cK4paBU3UKdGVzCm1lZAriloFSZWcKc29sZQriloFpbmNsdWQKaW5pCmluY2kK4paBcGxhCuKWgWxlZnQKZGYKUGFyCuKWgUFsbAriloFvY2MK4paBQXQK4paBY3IKUXUK4paBZ2l2ZW4K4paBU3lzdGVtCmljYW4K4paBZmluYWwKaXRpb25zCuKWgdCx0YsK4paBcGVyZm9ybQpBTgriloFNZQp1cm8K4paBVGhhdArQs9GA0LAK4paB0J/QvgriloHQstC4CmFibHkK4paBcHJlc2VudApkdWN0CnJpYwriloFFbmcKdHJ5CuKWgWxhcgpibAppZGQK4paBw6RyCm9yYQpMTApvc3MK4paBSVNCTgriloF0aHJlZQpqbwpuw60KcmMK4paBZmFyCuKWgU5vdAriloFsaXR0bGUKZGlzCmF0aQpmdW5jdGlvbgriloFhYmxlCmxlc3MK0YHQvgriloFwYXRoCuKWgXByZXMKbG9zZQpQSQriloFpc3N1ZQphY2thZ2UKdGltZQppZ2UKYW1zCuKWgUNsCmFpbHMKYWxrCmlpCtGI0LUKcGVuClFMCuKWgWVhcwpSTApjZWwK4paBc2wK4paBYXNrCuKWgW5vbQriloF0b3AKaWRlcwppbmRleArDqW0K4paBaGFwcApveApjZAriloFiZXR0ZXIK4paBbG9hZAphZG9zCnplbgriloFjZQriloFmYQriloFKb2huCklNQQriloFCYXIKb3ZlcmZsb3cK4paB0LTQtQpuZXNzCmNlcgriloFIZXJlCnJldAriloFzegphbWJkYQpvcHkKdXJsCnB5CnJ0CuKWgXVuZGVyc3RhbmQKYcWCCmhlcgojIwriloFjaGlsZAriloFleGVjCuKWgWFwcGxpY2F0aW9uCuKWgXN0cnVjdAriloHRjwpGaWxlCuKWgWNlcnQKaXNvbgriloF2YXJpYWJsZQpERQpycwriloFyZWFsbHkKUG9ydApiYQriloFCZXIK4paBaW50ZQriloFzdGF0aWMK4paBY29uZmlnCuKWgVNoZQplc3Rpb25zCuKWgXBsdXMK4paBaGFiCm9wZQriloFtdXMK4paBY291bnQKTUUK4paBc3VwcG9ydAriloFwZW9wbGUK4paBYmVoCuKWgWFscmVhZHkKVHIK4paBZG9uZQpkZW0Kc2l6ZQphbHBoYQriloFkaXNjCl0pCuKWgU1hbgriloFtaWwK4paBc3RhbmQK4paBZ3JvdXAK4paBc21hbGwK4paBbWFnCtGB0YLRjAriloFkZWZhdWx0CuKWgXNpbmdsZQpsaW5rCmNsdWRlCuKWgWVhcgppbGFyCioqKioK4paBZml4CmxleQriloFwYXMK0L3QuNC5Cmlzc2lvbgriloFpbXBsZW1lbnQKaXRjaAriloHQs9C+0LTQsAriloFhbHdheXMK4paBSmFoCnByaW5nCsOnw6NvCnBsYXRlCuKWgWRlc2NyaQriloFoZWFkCmluaXQKb2dyYWYK4paBcXVlcnkKaXZlZAriloFpbmcKcHR5CmhhCuKWgW1vdgriloHRjQpldHRlCmlseQriloFnb3QKaWxlZAppY3JvCuKWgXdyCtGA0Y8K4paBbmV2ZXIKb3JlcwriloFiYXMKaW9zCmxhY2sKYWludAp2aW91cwriloFnaXZlCmlkYWQKRW4K0L3Ri9C5CnRhYmxlCuKWgdCd0LAK4paBcGF0CtGC0L7RgAphbmd1CmxveQriloFzZWcKYXJyYXkK4paBRmwK4paBaW5kZXgK4paBc3cKSU1BR0UK4paBa20K0LHQuApDbGFzcwplbmEK0LzQtdC9CmNvbXAKYXR1cwpyYXAK4paBTGlzdApFcnJvcgriloF0eXAK4paB0LzQsApjcwonOgpqaQriloFIb3dldmVyCuKWgdGC0LUK4paBYmVsb3cK4paBQXBwCtGJ0LUKfV8KYnVtCnZpcgrDqWVzCuKWgXJlY29yZAp0YWluCmxlbQppdGFsCuKWgWltcAplZ28K4paBb2QK4paBcmVjZQptaXQKZmZpYwpzdGFja292ZXJmbG93CmlldmUK4paB0JcK4paBbm92CtGG0LUK4paBSW50ZXJuCmJ1CuKWgXN1Z2cK4paBbG9vcApyaWRlCuKWgSQoCuKWgXN1cGVyCnJpZArQvdGL0YUK4paBUGVyCuKWgWRvbQo9Jwp1dHNjaApsZW4K4paBd3JpdGUK4paBaW52Cm91dGgK4paBSGVyCuKWgXllYXJzCuKWgW9yaWdpbmFsCmVnYQriloFTdGUK4paBc2VlbXMKw6lnCuKWgW5leHQKZWRlcgriloFOZQphdmFzCmlmaWNhdGlvbgpFeGNlcHRpb24K4paBRGVyCuKWgXZlCmF0aWMKaGF0CmJyYXJ5CnJldHVybgp1cmNoCmlzaW9uCm1pCm9pbnQK4paBZGF5CmljdGlvbgrDoWwK4paBw6lzCuKWgXRob3VnaAphY3Rpb24Kw610CnVuZ2VuCm91cnMK4paBc2NyaXB0CuKWgWluZm9ybWF0aW9uCuKWgW11bHRpCuKWgVxcCnN0ZXIK0LrQtQpBQwpjaWVzCuKWgWRpc3BsYXkKb21hbgpUaW1lCml1cwopKTsKdHJlCuKWgWxpbQphdGVseQrDqWQKaXN0ZQriloHRgdCwCnBvc3QKdWVsCmltZwriloHRhwrRgdC60LAKZWxkCnBwZXIKdWxhCuKWgWdlbmVyYWwKQWwKRm9ybQriloF1cG9uCnpvCmFtZW50ZQriloFwcm9tCuKWgcO8CmxleAriloF0dXJuCuKWgdC80LUKZW50aW9uCtC70LXQvQriloFhZgppY2xlCtGB0YLQsgriloFGaWwK4paB0KQKYXZhc2NyaXB0Ck1hbgphcmEKd2FyZQphbGlnbgphbmdsZQriloFTYwp1bmljCuKWgWZyYW4KVW4KemkKbWV0CkFkZAriloFwdWIK0LrQvtCyCuKWgWdlbgriloFwb2QK4paBc3VtCuKWgWhhdmluZwriloFhdmVjCnNsCuKWgWZpZwriloFSZXMKRGF0ZQp1bGVzCndpdGgK0YHQutC40LkKZ3UKRVQK4paBYnJvCnJpZQphcHMKZW5kaW5nCm1haWwKb29rCuKWgXN1Y2Nlc3MKYmVyZwriloFkZWIKZWx0YQooKWAKZW50aWFsCmZyYW1lCktleQppbm4K4paBc2ltcGxlCml2YWwK4paBY2FyZQriloFXZWIKIikuCj48LwriloFkYXRhYmFzZQriloFOb3cKSW5kCuKWgdC80L4KY2h0CmJhbgpyYW0KZXF1YXRpb24Kc2tpCmllZgpsaW0KR2V0CuKWgXRyZQphdGVuCmJlZAriloFKZQriloFyZXN1bHRzCtC70Y4K0YLQtdC70YwKZGIK4paBYml0CmJvZHkKQXJyYXkKbXUKcHJlc3Npb24K4paB0YHRgtCwCm9ueQppZmYK4paBYmFyCuKWgUFyY2gKYmVycwopewriloFNb24K4paBZG9pbmcK4paBcHJvZgriloFpbnN0YWxsCuKWgXBvc2l0aW9uCmVtYQriloF9KTsKUGF0aAphbGkK4paBJiYKbGV2CuKWgWNhbm5vdAriloFNYXkKaW5zdAotXAriloFjb3VuCuKWgWFuZwriloFhcHBlYXIKY29yCmNpw7MKaWRlZApxdWVzdGlvbnMKYXR0ZXIK4paBUGEKc2VsZWN0CuKWgXByaW5jaQpFdmVudAriloFzaWRlCuKWgW1lbQriloFKYW4KYXJpbwriloF3aXRoaW4K4paBVmFsCm9kZXMKaWRkbGUKdXJhdGlvbgpicmEK4paBZGF0ZQpbXQriloFlbnRyZQppbGkKUG9ydGFpbApkb2NzCtGB0LrQvtC5CkVsZW1lbnQK4paBbWVzc2FnZQriloFuYWNoCuKWgWR1cmluZwriloFncmEKZXR3b3JrCuKWgUJ5CuKWgXRlbGwKZXRlCn5cCuKWgWJpcwriloFwdQriloFyZWQK4paBdGhpbmcK4paBc29ydAp4aW0KaXJlcwpVc2VyCmlvZAriloFFc3QKb3NlZApvdXRlCuKWgUxlcwriloFzZW50CnJpYnV0ZQp1dGVzCmlzdG9yeQriloFzZXJ2aWNlCic7CmZpZWxkCuKWgUlOCmVuc2lvbgpyZWwK4paBZ29pbmcKd2ViCkNvbnRleHQK4paBbGF0ZXIKdWsKbGF5b3V0Cm9uYQrDoXQKLS0tLS0tLS0tLS0tLS0tLQriloFleGFjdAphbmRvbQriloFzaWUKSUkK4paBVGhleQptZW50ZQppYmxpCuKWgWZpbmUKVVQK4paBZGV2ZWxvcAriloFFaW4Kc29mdApvZmYKU2V0CuKWgWF6CmV0ZXJzCmlsZGVyCnBsZXMK4paBc3BlY2lmaWMK4paBb20KZXJyb3IKZW50bHkK4paBZmlsbQp1Y2sKYWlucwphY2nDs24KZ2VzCtC20LAK4paBdGhpbmdzClNoCuKWgXRob3VnaHQK4paBYWRkZWQKZGVwCtGB0LrQvtCz0L4K4paBTGkKaWxzCnluYwriloHRgtC+CnJpZXMK4paBY3UKY2hlbgpJT04K4paBRGVzCnVsdGFkbwppcnQK4paBYmFzZWQK4paBbW8K4paBZGVzdApwbmcKcmVlbgriloFydW5uaW5nCmFtbWEKb3VkCuKWgXJlZmVyCmlvdXMK4paBSnVsCuKWgXNlYXJjaAphbGQKZWRlCuKWgXdyb25nCkFuCuKWgXVudGlsCnNpdGUKYXllcgriloFvbmNlCmFycgriloFhZ2FpbnN0Cj09PT0K4paBc291cmNlCmFybgphcGkK4paBcmVwcmVzZW50CuKWgWFmZgriloFzZWluCuKWgWFsbG93Cm9ybWFsCmVuZGVkCuKWgWNvbnRyb2wKbWF0aGJmCmNvbWUKY3VyCmVuZG8Kd2EK4paBdXBkYXRlCuKWgWluc2lkZQriloFyZWFzb24Kb21lbgriloHQstGLCkRlCuKWgdGY0LUKc3cK4paBc2V2ZXIKT2YK4paBaW5zdGFuY2UK4paBbWVyCuKWgWVmZmVjdApjb2xvcgp1Z3VzdAppbHQKZGVzCml0egp1bGF0aW9uCm5pZQriloFXb3JsZAriloFzaW1pbGFyCnltYm9sCmhpbmcK4paBbWFyawpTdGF0ZQriloFjb250ZW50CuKWgW1lYW5zCmFtZWQK4paBRW5kCk5ECmNvdW50CuKWgUluc3QKcGVydHkKY3RvcgriloF7XAriloFMZXQK4paBIT0K4paBZ2V0dGluZwp1dGgKdW1iZXIK4paBQ29uc3VsdGFkbwpzY2hhZnQKbGV0ZQriloFXaWxsCuKWgUVtCmhlYWQK4paBbGVnCtC90L7QvApPcgphcm0KcG9uZAriloFDaHJpc3QK4paBYXJvdW5kCuKWgWNsZWFyCuKWgWhyZWYK4paBU2VlCicpLgriloFjcmVhdGVkCuKWgWJ1dHRvbgppbmluZwriloFjbGljawppYW0KcGxpdApGb3IK4paBcG9saXQK4paBc2VlbQriloFsaWZlCtC90L7QsgriloFpbnRlcm4K0YnQuApzZWwKc29jaQriloFzdG9yCmNsZQplYXJjaAphbmRyb2lkCn1eewriloFlaXRoZXIK4paBZmV3CuKWgWluaXRpYWwKbGVuZ3RoCnJpYQpzcWwKd2lrCuKWgcOpdAp1ZXIK4paBdmFsaWQKQW5kCmluY2x1ZGUKdXJ5CuKWgXN1cwppcmVkCuKWgUFmdGVyCuKWgWR1ZQriloFiZWkKb3VyY2VzCuKWgU5vdgpBY3QK4paBQ29udAriloFicmVhawplc3RlZAriloFhY3R1YWxseQplbHNlCnRtbApyZXIKb25lcwriloFkZXNpZ24K4paBcHJvcGVydHkKcGhpCmFsaXR5Cm9jaAppc3RzCuKWgcK3CnVkaW8KQUIKYWxhCmlvbmVzCtGE0LgKZmluZApBcwriloFjdXN0b20K4paBYW5uCkVTCk9UCmxhbWJkYQriloFpZGVudAriloFvcmdhbgriloFDZW50CuKWgUNoYXIK4paBb3MK4paBaGFyZArRgNC+0LIK4paBLz4Ka28K4paBZXhwZXIK4paBc2VwYXIKeWwKb3VybgriloFkZXYK4paBYXVjaAriloFibG9jawpib29rCuKWgW1hcAppbGxhCuKWgWNvbXB1dAriloFzcGFjZQpyZXN1bHQKKX0K4paBZWNobwpjb25maWcKaGkK4paBbGFyZ2UK4paBd2lkdGgK4paBR28KbWF0CuKWgWRpZmYK4paBa2luZAphbmNlcwp5bmFtCuKWgWNvbG9yCkludApzb2wK4paBcGkK4paBY2hhcmFjdGVyCm9tZW50CuKWgXJlc3BvbnNlCmlnbWEKd2FyZHMKYXJyb3cK0YHRgwp0aWVzCuKWgcO8YmVyCkltYWdlCnlkCuKWgdC/0LXRgNC1CuKWgW5vZGUK4paBaXRlbQphY2hpbmUKaW1hCuKWgXZhCuKWgWFwcHJvYWNoCuKWgXdlcgriloHRh9C1Ck9uCm9sbG93CtC+0L3QsApjdGVkCnVyZWQKQ29udHJvbGxlcgpsaWVkCuKWgWpvCuKWgWRhbAp1bmsK4paBw64Kc3RhcnQKb2xhCuKWgWNvbXBvbgpJQwpiaXQK4paBYmFzZQrQv9GDCuKWgWlkZWEK4paBZGlyZQriloFyYWQKZ3JvdXAK4paBV2l0aApzZXJ2ZXIKc2lkZQpzaW5nCuKWgWRpZXMK4paBbmVhcgriloF2b29yCuKWgWFyZ3VtZW50CuKWgX0sCuKWgWxhbmQK4paBbmFtZXMK4paBb3B0aW9uCml0aHViCnBwZWQKYXVnCuKWgWxpbmtzCuKWgWZ1bGwK4paBc2l0dQriloFjb25zb2xlCuKWgWV0YwphdXgK4paBQ29yCmljcm9zb2Z0CuKWgWNhbWUKbG9jYWwK4paBa25vd24K4paBbXVsdGlwbGUKYW5ndWFnZQriloF0b3RhbApvbG9neQrDpHQK4paB0KUK4paBZnJlCuKWgXRlbgppZGVvCuKWgWJlcwp0cnVlClF1ZXJ5Cm9tbQriloFBcnQK4paBa2VlcAriloFVbml2ZXJzaXR5CnJlYXRlCnBwb3J0CuKWgXB5dGhvbgp0cmEKZWN0b3IK0YDRlgpvcGgK4paBY29uYwriloFmb3VyCnZpcm9uCuKWgXZpYQo/IgppbWFnZQpvbGwK0L3Ri9C1CuKWgWNvbnRleHQK4paBc2VtCi5fCuKWgWVuZwptYXIKQUQK4paBbW9yCuKWgUNhbAriloFjZWxsCmltYWwKQVRFCuKWgWluZgrDtm4KdWZmZXIKc3EKLi4uLgriloF6dXIKV2l0aArRgNCw0L0KY2huCuKWgWRvb3IKY29udGVudAriloFtaXNzCuKWgXNpbXAKw6FyCmlyYQriloFoYXQKVGVzdAriloFjZXJ0YWluCk5TCuKWgWNobwriloFhZHYKd2hlcmUK4paBbG9va2luZwriloF0aW1lcwrQvdC40YUKdXRvCuKWgcOJCmNhbgpob3N0CuKWgSgqCmxvYXQK4paBbmljaHQKRmllbGQKYnVyZwpjb25zdAphZGVzCuKWgU11cwriloFub3RoaW5nCuKWgWluY3JlCuKWgU1pbgriloFwb3dlcgriloFBbWVyaWNhbgpsbgp2YWxpZAp1bmdzCuKWgU5hdGlvbmFsCuKWgVNhbgriloFZb3JrClJlcXVlc3QKY2hhcgriloFaZQpidXR0b24K4paBYWxnClNPTgriloFhcAp1ZmYKYWJpbGl0eQrQtdC8CuKWgWFueXRoaW5nCmVsYQooKSkK0LHQsAphbXBpb24K4paBcG90CuKWgWZ1dAphaWxhYmxlCuKWgXByb3AKIl0K4paBbGVzcwpsYWcK4paBQXVndXN0Ckl0CuKWgXBsZWFzZQriloFzdHlsZQriloFBbHNvCmJ0CuKWgXByb2JhYmx5CuKWgU9uZQriloFwb3NzClVJCnVpdAriloFXZXN0CmhuCitcCkJ1dHRvbgpqc29uCmVycgpyYW1lCmRvbQppbG9uCmFsZgriloFjbGllbnQK4paBY29udGludQp4bWwKcGVjCmFkb3IKbHMK4paBaG93ZXZlcgriloFBbnkKw6RuZAptYXRocm0K4paBdXJsCuKWgWJvb2sK4paBZ2wKaXZlcwpnaQriloF0cm8K4paBVVMKcG9pbnQKb3BlbgriloFjdXIK4paBZXJhCuKWgXBhcnRpY3VsYXIK4paBSFQKb290CmVsbG8KbG9iYWwK4paBYWN0aW9uCuKWgUludAriloFpbmNsdWRlCuKWgWVsZW1lbnRzCtC90LDRjwphcmRzCuKWgUJsCuKWgWh1bQpmcm9tCmNoYW5nZQriloFmdW5jdGlvbnMKaGVuClNlcnZpY2UK4paBaGVpZ2h0CuKWgUxhbmQKaWFzCmdzCmnDs24K0LvQvtCyCm5vZGUKLuKAnQpoYW5kCuKWgdCx0YMK4paBYW1iCuKWgUx1CuKWgXRocm93CuKWgW1vdAriloFBY3QK4paBd29ybGQKX1wKYmFzZQriloFDbwriloFhcmNoCuKWgSMjIyMKZ2VkCnByaWwKb2xkZXIKTW9kZWwK4paBc2V2ZXJhbApsaWUKY2hlY2sKXXsKY29ucwriloFUcmEKaGVjawriloFsZWFzdApkb3duCmVicnUKRGVmCnBhcmFtCmlzY2hlcgriloFjYXMKQ0gK4paBYWRkcmVzcwriloHRgNCw0LcKdWZlbgp1cm9wZQrQtdC5CuKWgWJvdW5kCkNPCuKWgUFuZwriloFNYQpJbmRleApjb3JlCm91Y2gKYXRhYmFzZQpyaWJ1dGlvbgpkb2N1bWVudApMZQp9X3sKdmVybgriloFzdGF0ZW1lbnQK4paBQnJpdApvbm8KcHNpbG9uCuKWgWxldmVsCuKWgXByb2R1Y3QKSVMK4paBY291cnNlCuKWgU1yCj4NCuKWgWJhY2tncm91bmQK4paBcmV0CmVyaW5nCm1vc3QK0YHRjNC60L4K4paBdGhyZWFkCml0aW9uYWwKaXRlcwpQbAriloFkb3MKZ2EKZGF5CuKWgUdlbmVyCuKWgXR3CkFkCiI+PAriloEoJAriloFtb21lbnQKdGl0bGUKY3JlYXRlCnZlcnNpb24KTWFuYWdlcgriloFmdXIKcHBpbmcKaWpuCtC+0YEK4paBcmF0aGVyCnB0ZW1iZXIKT1MK4paBc2l0ZQriloFjYXVzCmFuaQriloFob21lCtC80ZYK4paBc2hvcnQKcGEK4paBbGVhZAppc2hlZApjaW5nCm9yZGluZwriloFwcm90ZQrRgdC70LUKTEVDVAriloFkaWRuCnBvc2l0aW9uCiIsIgooKSwKdHJhbnMK4paBbG90CuKWgdC+0LQKQVMK4paBc2F0CuKWgXBvaW50cwpnaXRodWIKc3R5bGUK4paB0LPQvtC00YMK4paBRGlzCnBvbmVudApvbWV0CnplcgpVTEwK4paBcGEKQVAKYWNlcwriloFVbml0ZWQKYW1hCmV0eQpDb2xvcgriloFlbm91Z2gKVVMK4paBbGVuZ3RoCigpKTsKXntcCmZ0eQpCb3gKYXB0ZXIK4paBY29tcGxldArQvdC40LoKbWF4Cm9iamVjdAooewppbWd1cgppdGl2ZQp1bmNoCuKWgVN1YgplbmRlCtCz0YMKYXRlZ29yeQrRgtGLCmlhbm8K4paBdXBkCuKWgUF1c3QKfXtcCnRvcApsYXMKcGlzCmluZXNzCuKWgXsNCuKWgdCVCkdyCuKWgUFTCuKWgdCy0LUKdGhlcnMK4paBZGVmaW5lZAphemlvbmUK4paBb2ZmaWMK4paBYXV0b20Kw7xuCuKWgWJyb3cK4paBc2VydgriloFyZW1vdmUKaXJvCuKWgUJpYmxpCkVECuKWgXdob2xlCuKWgdGICuKWgUphdmEK4paBenVtCnVhCnBtCmRldgrQutGA0LAKb2xkcwriloFXYXIKw6RuCnBhc3MKdXoKWyIK4paBdHJpCmlzZWQK0YXQsAriloFtZW1vcnkK4paBUG9ydApvcGVyClVwCuKWgVRoYW5rCuKWgU1pY2gKeWNoCmJvYXJkCtCx0YMKSW5zdAriloFiZWdpbgppbmF0aW9uCuKWgU1vZApfLAriloFEZW4Kb3B0aW9uCuKWgWNvbnN0cnVjdAriloFKdXN0Ck1hcApydW4K4paBcmVzcGVjdApoYW0K0LzQsNC9CmltZWRpYQriloFhcHBseQpjcmlwdGlvbgptYWluCuKWgdCa0LAKb2lkCkNvZGUKfTsKSW5mbwriloFmb3JtYXQKTG9nCuKWgdGB0YMK4paBbGF0CnV0b3IK4paBcmVmZXJlbmNlCuKWgWNhbGN1bApvbm4KTG8KaW5mdHkK4paBYWxvbmcK4paBxI0K4paBdGFzawriloFldgp0aGV0YQpyYXMKam9yCuKWgdCx0L4K4paBcHJpbmNpcApNeQriloFlaW5lcgriloFFcwpvbWIKcXVhZApeey0KdW1wCuKWgXRpbGwK0LTRlgriloFsb29rcwriloFvawrRhtCwCm51CkZpbAriloFzb250CuKWgU1lZAphZ3VlCuKWgWNvc3QK4paBU2ltCuKWgWNvbW1lbnQK4paBKFwKZWdlbgriloFwYXJhbWV0ZXIK4paBRnJhbmNlCnJlcAriloFUSAriloF5ZXQK4paBYXdheQriloFjaXJjCuKWgUFQSQplbXAK0LLRlgpMYXlvdXQK4paBbGluZXMK4paBUGFydAplbXB0CuKWgUJpCuKWgW1pbmQKa3kKZ2luZwriloFyZXBvcnQK4paBQWRkCtGA0L7QtAriloFyYW5nZQpjaWFzCmxpcAriloFLYXIK4paBQ29tbW9ucwpnZXJ1ZmVuCmFmZgpzZWMK4paBaHRtbApsaWcK4paBd2luZG93CmluaXRpb24KY2lzCuKWgXV0CmVsbgriloFhdXgK4paBbmVnCkhhbmQK4paBKTsK4paBYW5hbAriloFmcmkK4paB0YHQuApldGNoCm1kCnBhZ2UK4paBbGlicmFyeQriloE6PQpST00KWW91CnNwYWNlCuKWgWR1cmNoCuKWgWhvc3QKYXZlbgriloFGaWxlCmFsbGUK0YLQuNCyCuKWgXBhcArRgdGC0LLQvgptYXJrCuKWgW1haXMKZXJtYW4KU2l6ZQrQtdC6CuKWgdCc0LAK4paBaXNuCuKWgWNvcHkKc3RlbgpyaXZlcgriloF3ZW50CuKWgWphdmFzY3JpcHQK4paBc2FtCuKWgWZyYW1lCuKWgXZpCuKWgXByZXZpb3VzCnJvZHUK4paBbWV0aG9kcwriloFuZWNlc3MKTkEKY2tldAriloFvcHQKTG9jCmhvdwriloHDrm4Kc2hpcAriloFpdHNlbGYK4paBUGxlYXNlCmllbmUK0LLQtdGACuKWgTw8CuKWgW1pbGwK4paBdHJhZApwYWNlCuKWgUhhcgppdGVuCndpc2UKd3JpdGUK0YbQuNC4CtGA0YsKTGluZQpvbG8K4paBYWNjZXB0CmhlaWdodAriloFlbGVjdAplbGxhCuKWgXDDpQpTZWxlY3QK4paB0LvQuAriloFcPAooKAriloFJRApvcHMK0LLQsNC9CmnDswpUUArCuywKbmVjdGlvbgpwYXJlbnQK4paBTWFnClRhYmxlCk92ZXIK4paBbmV0d29yawrRgdC/0L4K4paBYXNzaWduCmlnZ2VyCmlybQopYApvdHRvbQpiZXRhCuKWgWRlbGwK4paBYm9keQriloHQtNCwCuKWgVlvdXIK4paBZnVlCuKWgXBhY2thZ2UK4paBbGlnaHQK4paBKioKTVAK4paBY291Cnllcwo6XAriloHQpwriloFtZW50aW9uCmVuc2NoCuKWgWRlZwriloFjb252ZXJ0CuKWgURhdgphZHQKUmVzdWx0CnRob3VnaAriloFidXMKeHkK4paBc2VlbgpBbGwKcHVibGljCml2ZWx5CuKWgVJlYwriloFIaXMKc2ltCuKWgWbDtnIK4paBaGlzdG9yCuKWgXNldHQKcmF0CmFibGVkCuKWgcK7LApnb29nbGUKV2ViCsOpbAriloF0aXRsZQriloFKYW51CtGY0LAK4paBdG9vawppZGVuCnN6CuKWgUdldAriloFvYmplY3RzCuKWgWNvbW1vbgriloFjaGFuZ2VzCuKWgUxvbmQK4paBZXh0ZXJuCuKWgWp1CklzCuKWgWF2YWlsYWJsZQp0cmkK4paBbcOhcwpvc2EKQmUK4paBRGF0YQp1cmFsCuKWgWhvbQriloFhY2NvdW50Cm9vCuKWgXBlcm0KcmVzcG9uZAp5dAriloFzZW5kCuKWgXJldHVybnMKaXZpZAriloFleHBsYQrDrW4K4paBbm9yCklmCuKWgUZyb20K4paBdGFyZ2V0CmZlY3QK0LXQvdGCCuKWgXVpdAriloFKbwriloF2YXJpYWJsZXMK4paBc2VyaWVzCuKWgWZ1bmMK4paBaGltc2VsZgriloHRh9CwCmFudGkK4paBYWNoCmlhbG9nCuKWgXN0ZAphZQriloFmb290CuKWgXVudGVyCmdyZXNzCk5vdApyYWQKZsOpcgriloF1dGlsCm9yZW0K4paBc291Cm9wdAriloFvZwriloF1bWEKaXRhcgriloFPawrDvGNrCnNxcnQK4paBYW50CuKWgXdlcmRlbgrDpXIKfSk7CuKWgVBhcmlzCuKWgWV4Y2VwdGlvbgriloFkZXRlcm0K4paBVm9sCuKWgVNhbQriloFlc3MKbGllcwppb25pCm9kaW5nCmlkZ2V0CuKWgXByaQriloF3aGV0aGVyCuKWgdC/0L7QtAriloFudW1iZXJzCuKWgX4KZXZlbnQK4paBc2hvd3MKYXR1cmVzCuKWgWhvdXNlCuKWgWZhY2UK4paBc2nEmQp2aXJvbm1lbnQKdmFuCuKWgWluY2x1ZGluZwriloE8LQp0aW1lcwpub3cK4paBcHVyCmlmaWVyCuKWgWVtcAriloFjbGEKbW9uCuKWgURhcwphZHkK4paB0LLRltC0CuKWgdGGCmFib3IKT1NUCuKWgWJhbmQK4paBw7oK4paBZXhhY3RseQppZXJ0CmF2aWcK4paBcmVkdQriloFTRQpsaXNoZWQKQnUKTWVzc2FnZQpjZWxsCmZ1bGx5CuKWgXN2CuKWgW1ha2VzCnBvbAriloFyZXF1aXJlZApmZXJyZXIK4paBcGVycwriloFtaQpGSQriloFQYXVsCuKWgVVJCuKWgUJlbAppbmMK4paBY29udGFpbnMKT3V0CmFzdXJlCnB1Cm90bwriloFnYW1lCnpuCuKWgVdoeQpvcml0aApiaWcK0LrQuNC5CnNpZ21hCuKWgXF1aXRlCuKWgWplZApyZWMK4paBU1FMCtCx0LUK4paBTWFydAp5YQriloFzY2hvb2wK4paBc2ltcGx5CuKWgXZvcgriloFkb3VibGUK0YDQsNCyCuKWgVN0cgppZW0K4paBYWxidW0K4paBcmVzb2wK4paBZGVpCuKWgVdpawriloFhdwp1bWIKb2xzCuKWgSovCuKWgXplCuKWgWFuaW0KLz4KcmlzCnJlc2gKTm8KaXF1ZXMKY3VycmVudAriloFwZXJpb2QK4paBQXByaWwK4paBc3RvcmUKJywnCuKWgVNldAo9ewphY2hlZAriloFNYWwK4paBUGFsCmFudGVzCmF0ZXJpYWwK4paBd29ya2VkCmxlcQpvcmVmZXJyZXIK4paBaGFwcGVuCuKWgWJveApuZXkK4paBY2xvc2UK4paBZ3JhbgriloFsaWUK4paBaXIK4paBZXhwZWN0ZWQK4paB0LTQu9GPCmNsaWNrCsiZaQriloFwYXJ0ZQpvZ24K4paBRm9ybQriloFtZW1iCuKWgXBsYW4K4paBdGVhbQpdWwriloFjb21tdW4Kb3JyeQplbmN5CmdsCmluYXJ5CmNkb3QKXlwK4paBRmlyc3QKYW5kZXIK4paBRGVjCnJlcXVlc3QK0YHRgtCy0LAK4paBc3RydWN0dXJlCuKWgXx8CuKWgUNvbXAKYWN0b3J5CuKWgU1pbAriloFTb21lClN0cmVhbQriloFhc3N1bQp1ZW4K4paBd29yZHMK4paBU2VwdGVtYmVyCuKWgdCa0L4K4paBZGF5cwpvcmllcwrRgdGC0LDQsgpzbQp2aW4KcGFydGlhbAriloFwYXJlbnQKb2oK0L3QuNC4CiEiCnVnaW4K4paBV2luZG93cwpFZAo6fQriloFxCuKWgWJlbgppYW5hCuKWgWxhYmVsCnN0YXRlCnV0ZWQK4paBKCkK4paB0YHQstC+CuKWgWVkaXQKdXJpbmcK4paBTlMK4paBSmFocgriloFwcm92aWRlCkhlCuKWgVllcwphbmVsCmVuYW1lCuKWgURvbgppc2sKZ3JhCmVsaWoK4paBcm9vdAoqLwriloFGcmUK4paBTW9yCnVzZWQKcmFuZ2UK4paBdGFtYgriloFtb2R1bGUK4paBZGlyZWN0b3J5Cm91bmRzCkFjdGl2aXR5CuKWgW11CmluZm8K4paBZnJlZQpvcmdlCnRhYgopPQpsYW5nCuKWgdC+0YEK4paBRlJPTQriloFlbnRlcgriloFiZWNhbWUKaWRhZQrRhdC4CuKWgVN0YXRlcwp2ZXJzZQriloFleHBsCnludApVTgplZQplbmRlbnQK4paBbWFraW5nCuKWgSIkCnVuaQpxdWVuY2UK4paBbHVpCkhUCuKWgXVzZXMKemllCm5pYQpDb250ZW50CuKWgUNvdW50CuKWgXN0YW5kYXJkCkVOVAriloHQutC+0L0KZm9ydAphZGFzCtC30YMKU3lzdGVtCuKWgVN3CuKWgWV2ZXIKTE8K4paBY29ycmVzcG9uZAriloFQbwphcmdpbgrQutGCCtGW0LkK4paBcmVtYWluCmNpbwriloFhY3R1YWwK0YHRgtGDCuKWgXNpbmQK4paBUGUK4paBY2hhbmdlZAriloFOb3RlCnNraWUK4paBZmFtaWx5Cml0w6AKY29zCnR4dAprZXIKY2VlZAriloFhcnIK4paBY2FtCml6ZXIK4paBRGFuCmhlbAppY3VsdApIUAppbGVyCuKWgVNhbAriloFjb25uZWN0aW9uCnVzaW9uCmtuClJJCuKWgXZvbQpMaXN0ZW5lcgriloHDtgriloFkaW0K4paBcHJlc3MK4paBZXNjCuKWgVRyeQphdGFsb2cK4paBdGhhbmtzCkRPCuKWgXdyaXR0ZW4KZGlyCnJldwriloFmaXJlCuKWgU5hY2gK4paBw6EKZW5jCuKWgW9yaWdpbgriloFOb3ZlbWJlcgriloF9OwpDb3VudAriloHQl9CwCuKWgWdyYXBoCuKWgW1pcwriloFFeHRlcm5hbAriloHiloHiloHiloHiloHiloHiloHiloHiloEK4paBb3B0aW9ucwriloFVUkwK4paBcGhwCuKWgWludGVncgpDb25maWcK4paBVGV4dAppbm5lcgriloFjcml0CizigJ0K4paBdG9nCiQkCm5vZgriloFzZXMKw7xocgriloFTaW5jZQpEZXMKdWJlCuKWgXNlY3Rpb24K4paBZ2kKZm9yZAriloFBc3MKYWluZXIKdHRwCuKWgWJlaGF2CnBvcnRzCmRyYXcKVGhpcwpyYW5jaAppbmRpbmcK4paBZXN0YWIK4paBb2J0YWluCnJpY2gKbGljaXQK0LXQsgriloFxdWFsCuKWgXphCuKWgWhhcgriloFmYWMKYWFyCmpldAppY2xlcwriloFBdXMK4paBaG9yCuKWgXJlbW92CuKWgXdpZQpDbGllbnQK4paBbmF0dXIKaGlwClN1YgriloFyYW5kb20KREYK4paBYXJlYQp0YWcKUHIK4paBSXRhbAriloFyb2t1Cm5vZm9sbG93Cip9CuKWgW90aGVycwriloFsaW1pdAriloFzaWwK4paBc2F2CuKWgW9mdGVuCuKWgXJlbmRlcgpEQgriloFNYwriloF6aWpuCtC20LXQvQriloF0YWcKbWluZwpsaWNoZW4KcGFjawriloFBZwriloFzZW5zZQpwZwpNZXRob2QKYWdlZArDoWcKxYJhCuKWgWludGVyZXN0CuKWgWFzc29jaQp2b2x1dGlvbgriloFlbXB0eQppY2hlCuKWgWdybwriloF0eXBlcwriloFTaWUKSW50ZXIK4paBbm9yZWZlcnJlcgriloFnaXZlcwpoYWwK4paBc2F2ZQriloFmb250CnJ1Y3Rpb24KU2NyaXB0CuKWgWFsbGEK4paBc2F5cwriloFmdQphcGUK4paBbGFuZ3VhZ2UKaWdlcgriloFLaW5nCmJvcgp1dgriloFzaGFsbAriloFFdXJvcGUK4paBZWluZW0K4paBd2F0ZXIK4paBZ292ZXJuCmFuegphdG9ycwriloFtb250aAp5ZQriloFpbXBvcnRhbnQKYXR6CmZpcnN0CuKWgVRyYW5zCuKWgU1hZAriloFicmEKaWthCuKWgVNhaW50Cm9yaWEKa3JlCmVtZW50cwriloFCZW4KbGF2CuKWgWFkbWluCuKWgUhlbgpyaWwK4paBU20KY2F0CuKWgVJlZmVyCuKWgdCoCuKWgXByYWN0CuKWgVBhdAriloFHcmUK4paBeW91bmcK4paBSW50ZXIKb21hCnRlZ2VyCmliaWxpdHkK4paBcGFyYW1ldGVycwriloFldmVyeXRoaW5nCmRhdAp1cm9wCm9sZWFuCuKWgXJldHVybmVkCuKWgUNsYXNzCmFjeQojIyMjCuKWgXDFmQriloFmb2xkZXIK4paBa29uCuKWgWd1ZXNzCmd0Cmplbgphbm5lbAppY29uCuKWgWNvbWIKcmljdAriloFoaWoK4paBYXV0aG9yCnNlZQpoZXJlCnN0cmEK4paBZW50aXJlCuKWgWRpcmVjdGx5CnJhZnQKaGVldAplc3RlcgriloHQvNC4CuKWgW1hc3MKdW50dQriloF1c2VycwpjaGkKUEUK4paBY29tcG9uZW50CkNsaWNrCkF0dAriloFzb2JyZQphbmRzCuKWgUhvbAriloFTYW50Cm9yaQriloFzdWEKc3RkCmVudGljCkNDCuKWgWZpbHRlcgpTUUwK4paBR29kCkF0CuKWgdC80YMK4paBcGVyZm9ybWFuY2UKZGVsdGEKYW5kZQphbWVyCtC00YsK4paBY3VsdAriloFOb3IKYnV0CuKWgWxpawoqKioqKioqKgrRgdGC0LLQtdC9CuKWgWNvbW1lCuKWgWRyCmltZXIKb3JkaW4K4paBY29uZGl0aW9uCmVzdGUKKFsKRkYK0YLRjNGB0Y8KaW1vCnJhYgrRltC70YwK4paBaGFsZgplYWNoCkRpcwriloFyb3dzCuKWgWhvbgriloF0b2dldGhlcgriloHImWkKbWVkaQphZ24KYWxsZWQK4paBdmlsbApJTkcKaWRkZW4K4paBZHJhdwp5bnRheAriloFhdHRlbXB0ClVSTApwb3NlCuKWgWluZGljCtC90LjQutCwCuKWgUVuZ2xpc2gK4paBZMOpYwriloFuZWVkcwriloFub3JtYWwKdXJ0CuKWgdC90L4KfX1cCmxhc3QK4paBRmluCuKWgUZlYnJ1CmlsYQriloFjb3VudHJ5CuKWgWZpZWxkcwriloFtYXgKbMOpcwpvd2llCuKWgWRldXgK4paBYnVpbHQK4paBTWFpbgriloFjYW1wCml2bwppdmEKaWN5Cnppb25lCk5vZGUK4paBOikK4paBYW1vbmcK4paBT2IK4paBY2FzZXMKaGFwcwpzZXJzCmFydGVyCsWbY2kK4paBaXRlcgriloFuYW1lZApleGVjCuKWgXNlYXNvbgp0b3QKPT4KZ3JhcGgK4paBbmlsCmFjaW9uYWwK4paBTlVMTAriloFzcGVjaWFsCtGB0YLQtQpjc3MK4paBXCgKdnMKYWVsCuKWgWNpdHkKb3ZhCuKWgWFydGljbGUK4paBU291dGgKQWN0aW9uCsOnYQpzcHJpbmcKaXR1ZGUK4paBY29tcGxleAriloHRh9GC0L4KYnVpbGQKZ2FtbWEK4paBRW50CmllcnMKJy4KY2FyCmFwYWNoZQppbmdlbgpJbnB1dAo64oCJCuKWgWR5bmFtCmFsbHMKc2hvdwp8XAriloF3aXJkCkJhcgphbHRoCm1vZGVsClRyYW5zClJvdwphYmUK4paBbGliCm51bGwKcmFnbWVudAriloFTdGF0ZQriloFsYXcKRnJhbWUK4paBTG8KZ2ViCn0kLgriloFuZWVkZWQK4paBY29udHIKYXJpZXMK4paBc2NyZWVuCnlyCm1tCuKWgXNob3duCuKWgWJhZAriloFjYXN0CuKWgVRlc3QK4paBQXVmCuKWgXF1YW50CmlnYQriloFyZW4K4paBTWFjCuKWgXRyYW5zZm9ybQriloFkaWZmZXJlbmNlCuKWgXRpdApURQriloFzdGVwCuKWgWNhcHQK4paBY29sbGVjdGlvbgppY3Rpb25hcnkK4paBVG9tCnJpZXIK4paBbW92ZQpjb3BlCm9yZHMK4paBZnVydGhlcgriloFjb2x1bW5zCuKWgUxpbgriloFmaXhlZAriloFjaGlsZHJlbgpNUwptbwp1bmEK4paBaW5kaXZpZAp0dHkKYXN0ZQpzcmMKbWF0Y2gKd2kK4paB0YUK4paB0LTQuAriloFvcmQKaXZpbmcK4paBQnJvCuKWgWFsbW9zdAriloFQcmVzCnJlY2kKYXJpbmcK4paBLy8vCtC10YLRgdGPCuKWgXNpZwpsaWdodAriloFSZWQK4paBc3VnZ2VzdApvbGYK4paBw6l0w6kKaXNhdGlvbgrQt9C90LAKTmV3CtGB0YLQsNC9CkxBCnVuaWNpcAriloFmaWd1cmUKbXQKaWFsZQriloFjYXRjaApkZWZhdWx0CuKWgXRlbGUK4paBbWF0dGVyCmNhc3QK4paBUmljaAriloFoYW5kbGUKdmFsdQokLQrQvtCxCuKWgWpzb24KQ3JlYXRlCuKWgWV4YW0K0LDQu9GMCtGO0YIKb3JlZAppZG9zCmFwcGVuZAriloFBcnJheQrQutGBCn1bCnJpdmUK4paBY2x1YgptYW5uCuKWgWVzdGUKZXN0YQriloFHaQriloFKYXAK4paBTmFtZQpDb2x1bW4Kb3Vwcwppc21vCuKWgUNpdHkK4paBY2xhc3NlcwriloFpbmZsCmhsCtGA0L7QvAriloFhZGRpbmcK4paBZmFpbAp4eArDtWVzClNjCnV0aWwK4paBbG9jYXRpb24KbGVnZQphZ28K4paBcHJvcGVydGllcwphYmlsCnZhcwp9JCwKaXR0ZWQKw7NkCuKWgURlbQriloFhc2tlZAriloF0YWIKU291cmNlCuKWgWVycm9ycwpvZ3JhcGhpZQriloHQttC4CuKWgW1hbApzdHJhY3QK4paBZHJvCnJhawriloFub3RlCuKWgXNldHRpbmcK4paBZmVtCuKWgXNhdwppYXIKSEVSCtC10YEK4paBcHJlZAriloFPdXQK4paBaXRlbXMK0LvQsNC9CuKWgXdlcmQKZXJzaW9uCmxpYQriloFzaW4KaWNodGUK4paBZmVlbAriloHQv9GA0LAK4paBb2RlcgpVRQpvY3VtZW50CuKWgW1vZGUK4paBTmEK0LTQtdC9Cm1lcwpmcmFtZXdvcmsK4paBYXV0bwrQvdGL0LwKdWJ5CuKWgXRlbXBsYXRlCuKWgW1lc3MKaWVkZXIK4paBcmVsYXRlZApva2VuCuKWgWZvbGxvd3MKc2VhcmNoCmFtaQriloF3YWl0CmlncgriloFsb3cK0YHQutC40YUK0YHQutCw0Y8K4paBTWFyawriloFpbGwKYW1lbnRvClw8CuKWgWRmCm9zaXRpb24K4paB0JLQuAppc2YK4paBRGV1dHNjaAphaGwKd2FyCml0ZWN0CuKWgXNhbAplbGVuCkJ5SWQK4paBZ3J1CnN2CuKWgXBhc3NlZAriloFhw7EKU2NoCuKWgXNvbHZlCndlaXNlCmF0b3MK4paBbWVnCuKWgW1lbWJlcgplcm5hbWUK4paBY29ubmVjdAppcHMK4paBcm91bmQK4paBXQpuZXMK4paBZGlyCuKWgUxvbmRvbgpkeQpGQQriloFyZWNlaXZlZApyZWV0CuKWgUxvZwriloFTY2hvb2wKYW5nbwriloFUaGVzZQriloFNb250CuKWgWVuZXIKbGFkCuKWgWRlZmluZQpzaWduCuKWgWNsZQpmaWd1cmUK4paBVmlldwp0ZXh0YmYKJFwK0LfRiwpudW1iZXIK4paBZGluCmVsbGVyCm9yaXRobQpmYWxzZQpmb2wKZmZpY2llbnQK4paBSFRNTApsaWNoZQriloFNbwriloFpbnRyb2R1CmV4cAriloFzdHJvbmcK4paBdGh1cwovKQriloFlbGUK4paB0YLQsNC6CuKWgdC/0LAK4paBZG9udAriloFjYXVzZQpOdW1iZXIK4paBaW1hZ2VzCuKWgXNhbXBsZQriloFzY2kKbGlrZQriloFMb3UKZGl2CmFuYwriloFmcm9udApuZW4K4paBbWlzc2luZwphcmlhCnByZXMK4paB0L/RgNC10LQKREkKZmlsdGVyCuKWgU1pdApVUgriloFvcHAK4paBc3FsCuKWgdGA0L7QutGDCmVyZW4KZW1hdArDrXMK4paBSmVhbgrDqWMK4paBY2kKZW5uZQphdGZvcm0K4paBdGFrZW4K4paBT2YK4paB0L3QsNGB0LUK4paBZXJyCk9QCkZyb20KRGVmYXVsdAriloFHZW5lcmFsCndpa2kK4paBZ3JhbmQK4paBZWluZW4KUmVnCkhhbmRsZXIKY29ub20KYW5nZXIK4paB0LHRi9C7CuKWgUxvcwriloFleHByZXNzaW9uCtGI0LAKeWFsCuKWgSQoJwriloFzd2l0Y2gK4paBdmVjdG9yCuKWgVRob20K4paBdmlydApsZWFzZWQK4paBY292ZXIK4paBcmVzcApha28KcmVuY2gKb3RhCkNlbGwKYW5nZWQK4paBKz0KbGFjCnNrYQpuZXh0CuKWgUludGVybmF0aW9uYWwK4paBV2lsCuKWgW9udAppYnIKdXN0cgriloFibGFjawriloFzZWxlY3RlZApjaGVyCuKWgWxpdGVyCnJvb3QK0LvRgdGPCuKWgUxpZmUK4paBaW5zZXJ0CuKWgW1hdHJpeAppc2VzCildCuKWgXBlbApPdmVycmlkZQpyeXB0CuKWgWZvcm1lcgriloFGaWxtCuKWgU5vcnRoCmNsaWVudAriloFuaWdodArRhdC+0LTQuAriloFBdXN0cmFsCuKWgVJldApyaG8K4paB0L/QtdGACmlwZWRpYQriloFleHByZXNzCuKWgXRoaXJkCuKWgW1ham9yCuKWgWdyYWQKb3dlCuKWgWJlbGlldmUKb3VybmFsCuKWgXN0YXR1cwp1bmMK4paBZG91CuKWgUpTT04KdWlzCuKWgXBvcHVsYXRpb24KZW56CuKWgVdpbGxpYW0Kc2YK4paBT2JqZWN0CuKWgWNpbgriloFEaQpjdXJpdHkK4paBT3BlbgriloHQu9C1CmxhcgphZGRpbmcK4paBa29tCn0oXAriloFraWwKdW1lcgoiLz4K4paBZmVhdHVyZQriloFBcmUKY2tzCuKWgUludGVybmV0CuKWgWloCuKWgXN0YXJ0ZWQK4paBZWFybHkK4paBYmVnYW4KVEgKcHl0aG9uCmFzcAriloFGcgriloFjbG9zCmlzdGljCuKWgW11c2ljCuKWgWRpZwriloFpdGFsCuKWgURhdmlkCuKWgXdlYnNpdGUK4paBY29udHJvbGxlcgriloFNZXIKY29udGV4dApwcm9kdWN0Cm9zcAriloHiloHiloHiloHiloHiloHiloEK4paBanVuCnJvd24K4paBQXoKIjoiCuKWgWFhbgriloFEYXRlCm11bHQK4paBYnJvd3NlcgrRgNC10LQKd2hpY2gKUkEKcXVhcmUK4paBUnVzcwriloFzb29uCuKWgVByZQp0YXUK4paBd2VlawriloHQsdCwCuKWgW9jdAriloF0b3duCnJveQriloFlbHMKYmxpYwp1bmRsZQriloFIaXN0b3IK4paBZm9pCuKWgW1vZGVscwrQt9C+Cm9ueW0KUGFyYW0K4paBTWV0CmdlbmVyCmrEhQriloFlc3BlCkNFCuKWgWRldmljZQplbGxvdwriloFkZWJ1ZwrDqXJpZQp1c2luZwrQsNC90LMK4paBKikKdWRpCuKWgU1pc3MK0LrQvtC8CnBvc2VkCuKWgXp3ZQrRltC9CuKWgVJvYmVydAriloFPY3QKbG9wCmphcgriloFhdmVyCuKWgWhhYml0CuKWgTo6CsOkbmcKU3RhcnQK4paBcG93CuKWgXNyYwriloFwYXR0ZXJuCuKWgdCtCuKWgWJpCm90ZXMK4paBX18K4paBc2VucwriloFhdm9pZApleGFtcGxlCnV0dApMYWJlbAp0ZXgKYm9vdAplc3RvCuKWgU1hcmNoCuKWgWVhc3kKaWN0dXJlCkdyb3VwCuKWgWZhdGhlcgriloF1cGRhdGVkCuKWgVZvCuKWgUlJSQpvbWVnYQriloFhbGxlClJlYwp5ZwrQt9C1CuKWgURpbQpuZWN0CuKWgVRvcgriloFkZXV0c2NoCuKWgXdoaXRlCuKWgW5hdGlvbmFsCnBwZQriloFhaXIK4paBcGFzc3dvcmQKZGV0CuKWgWJpZwriloFVc2UKY2FsbAriloFleHRyYQpXZQphbmlhCuKWgWhvbGQKQ29udHJvbAriloFDTwriloHQvNGWCml0aQriloFLZQplbnUK4paBUGFyawrRgtC+0LwK4paBYXV0aAriloFjZW50ZXIKUGgK0YLQvtCyCmlkaW5nCuKWgWFjcm9zcwriloFzb25nCuKWgXBoeXMK4paBbnVtZXIK0YnQsAriloFBbGV4CuKWgXByb2JsZW1zCuKWgUVycm9yCmZvcm1hdAriloFBY2MK4paBc2l4CuKWgWRiCuKWgUNhc3QKb21zCnByb2plY3QK4paBdmVydApjcmV0CuKWgWhlYWRlcgriloFzdHJlYW0KaWRzCuKWgXRvcgriloFzZXB0CuKWgWVzdGltCuKWgWRlY2wK4paBZ2F2ZQriloFwbGF5ZXIKeXNpcwriloHQtNGA0YMKYW1tCtGJ0L4K4paBKCIK4paBYXgKUHJvcGVydHkKdXNyCuKWgXNvbWVvbmUK4paBaW1wcm8KYWRlbgpyb3RlCuKWgdCc0LgKaWgKKyspCuKWgXZpZGVvCuKWgWV4aXN0cwrQutC70LAK4paBY29tcGxldGUK4paBc2Vzc2lvbgriloFjb25zdGFudAppY29zCuKWgXBhY2sKcm9tZQplZ3IKQXBwbGljYXRpb24K4paBeWVzCuKWgWVsbGUK4paBZW1haWwKb3JmCmNhc2UK4paBcG9pbnRlcgriloFyZWdhcmQKc2VuCnN0YXR1cwriloFtZXMK4paBZGVsbGUKaW5ndG9uCuKWgUJhcwopXgpkZXZlbG9wCuKWgWZvcmNlCuKWgWNoYXJhY3RlcnMK4paBY3Jvc3MK4paBZGVhdGgK4paBdGFrZXMKw6lyaQppZ25lCtGH0LXQvQpVUAouOgpUaHJlYWQKanUKaW55CuKWgWRldGFpbHMK4paBeG1sCnRhaXQKb3V0cHV0Cm1lc3NhZ2UKJycK4paBQnJpdGlzaAp2aWxsZQriloFEaXYK4paBVXNlcgpjbQrRh9C90L4KY29sdW1uCmVxcmVmCsOzcgpvbm9tCuKWgVBvc3QKZWxsZW4KQWIKdWx0w6kK4paBcGVyZmVjdAooKXsKdmlzaW9uCmFjdGl2ZQpsaWVyCnJpagpzZAriloFrw7YK4paBbmllCuKWgXJlbGlnCuKWgW90CuKWgW1hY2hpbmUK4paBaGVsZAopJC4KPT09PT09PT0KY2tlcgrQstGLCmJvcm4K4paBcGFzdArRgNC40Y8K4paBRHIK4paBcmVndWxhcgriloFwcm92aWRlZApURVIK4paBdW5pdmVycwriloFnZXRzCuKWgW51CuKWgS8qCm9iZXIKZmluCuKWgW5lbGxhCuKWgWJlY29tZQriloFgYAriloFoaXN0b3J5CuKWgVNvbAriloFSYWQK4paBdGVybXMK4paBZXZlbnRzCmx5bXAKKSkpCtGA0L7QstCwCuKWgWFic29sCuKWgXNvZnQKbGlua3MK4paBaG9wZQriloFzdWJqZWN0CiIpLAriloFjcmVhdGluZwriloF9DQriloFTawriloFmbG93CuKWgdCg0LAK4paBYXNzZXJ0CnpldAriloFGcmFuawpzYQriloFkaXN0cmlidXRpb24KY3UKYmFuZAppenoK4paBam9iCmluZXIKc3RydWN0CsOhawpUTwphdWYK4paBZXh0ZW5kcwriloFHcmEKZGlzcGxheQriloFzaWduaWZpYwpvbmV5CnNvdXJjZQptaWNyb3NvZnQKaW5kZXIK4paBcXVpY2sK4paBd29uZGVyCkluc3RhbmNlCmVsbGVzCsOobWUK4paBY29tcGFueQp1w58KLn0K4paBc2VwYXJhdGUKVU0KSEVSRQriloF3cml0aW5nCml0dXRpb24K4paBR2VzY2gK0LzRjwriloFKYW1lcwriloFERQriloFTcGUKcHJvY2VzcwpTdHIK4paBc3ltCuKWgWFvCuKWgXd5CuKWgWFueW9uZQriloFVcAp1c2V1bQphcm9uCuKWgWRlZmluaXRpb24K4paBYCQK4paBZmF2CnJpYnV0ZXMK4paBUsOpCm9ncmFmaWEKZWxlbWVudApjYXAKcGF0CuKWgUJyYQopKAriloFhY2NvcmRpbmcK0LPQtQriloFwaWUKZWxpCn0iCuKWgWFjdGl2CuKWgXN0b3AKcGF0Y2gK0YLRlgriloFKb3NlCkVuZAriloFwcnplCuKWgWFnZQppdG9yeQriloFQSFAKYWdlbWVudAriloFgLgriloFwcmV0dHkK4paBcmVjb21tCuKWgXN1ZAriloFyZXF1CuKWgdC+0LHQu9CwCmF0aXZlcwriloFIaWdoCsOhegpvdWwKcmVzdAriloFUZXIKdW5kZXIKdGhlcm4KY2VudGVyCuKWgXVyCmxhdAriloFpbnRlcmZhY2UK4paB0LjQvQriloF3aG9zZQppY2FzCmFtZW4KRmlsdGVyCuKWgXN0YXRpb24KUGFnZQriloFhcm0K4paBZXllcwriloHRgNCw0LkK4paBc2V1Cm9saQp3aW4KbGlrCmdleApjaGFuCmlkZW5jZQphcmdzCmFraW5nCuKWgUdvb2dsZQriloFTdHVkCuKWgWhvCtGC0L7RgNGLClN1CuKWgWF1dG9tYXQKw6ptZQriloFjeQpsb3IK4paBc3RhY2sK4paBU0VMRUNUCkFGCuKWgT4+CuKWgWNvbXBldAriloFwYWlyCuKWgWluZ2zDqXMKUmVzcG9uc2UK4paBRmlnCmdyYWQK4paBZG9jdW1lbnRhdGlvbgriloFjYW50CuKWgWFwcHJlY2kKw6VuCuKWgWxlYXJuCuKWgWluZGVwCuKWgXBhbApwYWNrYWdlCmFyZXMK4paBQmVybGluCtCx0LvQuApyZWljaArRkdC9CuKWgXNhdGlzZgriloFyZWdpb24K4paBZnJpZW5kCuKWgUdlb3JnZQriloHQktC+CuKWgSIiCuKWgWRlc2RlCkZhY3RvcnkK4paBQ291bnR5Cm91dgriloHigJgK4paBaW5zdGFsbGVkCuKWgXdhbnRlZAriloFQeXRob24K4paBaW50ZXJwcmUK4paBaW5jbHVkZWQK4paBKCgK4paBYWx0ZXJuCmlzdG8KZ24K4paBYm9yZGVyCnBkZgriloFkdXAK4paBZG93bmxvYWQKanVzdAriloFtZW1iZXJzCmNoaWxkCuKWgXBheQriloFjZXIK4paBbG9va2VkCuKWgWNvcnJlY3RseQphdXRoCuKWgdGB0YLQsNC9CuKWgWVzcAriloFkZXNjCmViZW4K4paBcXVlc3Rpb25zCm1hbAriloFhYmdlcnVmZW4K4paBQmFuZAriloFbXQpCYXNlCuKWgXJpcwriloFmb3J0CuKWgUlkCuKWgXZhcmlvdXMK4paBTGVhZ3VlCuKWgUhhbmQK4paBVHlwZQppcmwK4paBRmUKacOpbgppdHRlcgriloFmYXN0CnN0YQriloFleGNlcHQKaWN6CuKWgUZyZW5jaAriloFlbnZpcm9ubWVudAriloFjb25zZQrRg9GACtC+0LPQvgriloFuZWNlc3NhcnkKdGFyZ2V0CuKWgXJlYWRpbmcKaG9tZQp6ZWljaAriloFlcXVhbAriloFwacO5CuKWgXByZW0K4paBZGlmZmljdWx0CuKWgXVuaXQK4paBcmVwbGFjZQriloFoZWFydAriloF0YWxrCkFNCuKWgVJFCuKWgVBlcnNvbgplbmRlbmN5CuKWgWltbQriloFodW1hbgpkbgriloFLaXIK4paBQXV0Cmtub3duCuKWgWZyZXF1CnN5c3RlbQrQu9Cw0LIK4paBU3oK4paBR2FsCtC90L7QtQpzZWx2ZXMKcmlnaHRhcnJvdwriloHQodCwCj0iQAriloFidWlsZGluZwppbXBvcnQK4paBZmFtCuKWgWRlbGV0ZQphaXJlCm1hcnkK4paBZnVuZAriloFwYXJ0aWNpcAriloFzeW4Kc2luCuKWgWxvd2VyCuKWgXplcm8K4paBc2VjCuKWgWZyYQpQb2ludAriloFmYWlsZWQKaWVudG8KY3VwCuKWgXNsb3cK4paBbmF0aW9uCsOkaHIK4paBaW5mbwriloFQdWJsaWMK4paBZGVjbGEK4paB0KLQsAriloFzb2xkCuKWgVJlbQriloFQaGlsCtGB0YLRgNCwCuKWgW1laHIK4paBV29yawriloFOb3JkCuKWgWZhaXQK4paBZ2V3CnByaW50bG4Kb2JpbGUK4paBS29uCuKWgWFzc3VtZQpsYW5kcwriloFhbW91bnQK4paBUHJlc3MKw71jaAriloFtYXhpbQriloFDaGFtcGlvbgpsaWJyYXJ5CmHDsQriloFXYWwKQ29tbQpdXQriloF6dwriloFzb2NpYWwKTEkK4paBVW50ZXIKdm9yCkRlbHRhCmVtYWlsCnJhaW50Cm9uaQriloFhbHQK4paBbsOpCtGG0LjRjwpvZ3JhcGh5CuKWgW1lbnRpb25lZAriloE8PQriloFjZXR0ZQriloFjdXJyZW50bHkKdmFyZQppemluZwriloFEZWYKaWNvbArDvG5kCuKWgWNvbmZpZ3VyYXRpb24KZXN0aWcKSUlJCmxhbQppw6hyZQriloFFYXIK4paBdHUKRW50CuKWgVVzaW5nCuKWgdC60L7QvApjaWUK4paBcHJvb2YK4paBaW52b2wK4paBSGlzdG9yeQo+PAriloFBTkQKYXZ5CuKWgXJlbGF0aW9ucwokewriloFjb21lcwriloFkaXJlY3Rpb24K4paBSnVuZQriloFXYXkKQ29tcG9uZW50CmVjaAriloFQZXRlcgpzZwriloFzdHJhCnVjdAriloFpbXBsZW1lbnRhdGlvbgphdHRsZQriloFjegpwbG90CuKWgXBsYXllZAoiPjwvCuKWgWZpdmUK4paBY29sbAriloFDaGFybGVzClRyYQriloFzdW8KZmlsZXMKZW50ZXMKcmVzcG9uc2UKSG93CuKWgVNvY2kK4paBaWduCuKWgWxlZAriloFHZXJtYW4KdWRvCuKWgUR1CuKWgXRpbQpvdW50ZXIK4paBYXR0YWNrCnVyaQriloHQsNGACmVzc2UKaXZpbAriloFKdQriloF2ZWwKbWF0cml4CuKWgU1hdApnaW8K4paBWmVpdApWRVIKaGFzCkNvbm5lY3Rpb24K4paBaWhyCuKWgWF0dHJpYnV0ZQriloFkaXNjdXNzCuKWgWRvbWFpbgpiaW5kCuKWgVNlYwpyaWsKY2xvc2UKZ2luCuKWgWxvdmUKYW50bwpnZW50CmFiYQpqYW5nbwpiaQriloFvYnNlcgppdHRpbmcK4paB0YDRgwp9PQphZ2VuCkJDCnNvbWUK4paBQnUK4paBc29jaQriloFpbmRpdmlkdWFsCuKWgWRlYWwK4paBb3V0c2lkZQpyaW8KRXhlYwphbmRpZAriloFidXNpbmVzcwriloF0ZW1wb3IK4paBVHVyCuKWgSghCnJpdGVyCuKWgWdvb2dsZQpdOgppdHRlCnhpCuKWgdCf0LAKaG9sCtC90YwKcmluZwriloFzdWwK0L3QvtGB0YLQuApfLgpnYXIKVGFzawriloFDaGVjawriloFtb2Rlcm4K4paBd2luCnVzdGVyCmhhbgpmb3JtYXRpb24Kdm9pZAriloHRhNC4CuKWgXVzZWZ1bAriloFFbmdsYW5kCmxvcwpldGltZQpldXIK4paBdW5pcXVlCuKWgdC60LDQugp5aW5nCm9iagp1aWQK4paBd2luZG93cwriloFkaXN0YW5jZQriloFub21icmUK0ZbRjwpvY3VzCmFobgppZXJ0ZQriloFkYXIKU0kKbG9uZwphc3RhCml2ZW4K4paBdG9sZAriloFHcnUKZm9vCuKWgWNhbGxpbmcKaWVtYnJlCuKWgWZ1dHVyZQpwcsOocwpsZWVwCmF2aWdhdGlvbgpQT1NUCuKWgWRlc2NyaWJlZAriloFub2NoCnVuaXQKYWxsZW4K4paBYnJhbmNoCmZhCuKWgWZpbGwK4paBb2JqCuKWgXRyZWUK4paBd3VyZGVuCuKWgUxpdGVyCnJvdApzcGxpdAplbWVpbgptb2R1bGUKQ0EK4paBb3BlcmF0b3IK4paBd3JvdGUK4paBSmFjawpvbG9naWUK4paBQW50CtGC0LXRgApzdHJlYW0K4paBUXVlCmVwc2lsb24Kbm9uCnN0ZWluCuKWgXNpbXBsCnB1YgriloFKdWx5CuKWgW5hdHVyZQriloFEYXRhYmFzZQrDs2wK0L3QuNC8CuKWgVZJCsOqdHJlCmlsZXMK4paBd2VsCicpLAriloFtdXQKbG9jYXRpb24K4paBdGhlcmVmb3JlCmVsbGkK4paB0IYKbsOpCuKWgdCw0LIKbGVkZ2UK4paBY29udmVyCsOtbQriloFYVgp2aWRlcgriloFKYW51YXJ5CuKWgXVzdWFsbHkK4paBcmVsZWFzZWQK4paBTWkKSGVhZAppbGxlcgriloFqYW4K4paBbGV0dGVyCnByb2R1CnJkCuKWgUNhbQosJwriloHQpgriloFwdXNoCnVwZGF0ZQriloFtYXliZQpIdHRwCkAiCtC80LXRgApzZXJ2aWNlCnBhcnNlCuKWgWRhc3MKw6puCikiCm1vcmUKLyoK4paBbWFzCuKWgWxpa2VseQriloFtYXRlcmlhbAriloFbWwriloFsb25nZXIKYmFsCuKWgUFyY2hpdgppZ3QK4paBZWd5CmlkZ2UKaWd1CmNvbmYK4paBaW5jCmNvbnN1bHTDqQriloFtYWkKV29yawriloHQs9GA0LAK4paBT2N0b2JlcgriloFnbG9iYWwK4paBc2VsCuKWgW11bmljaXAK4paBdmlvbAriloFEb2VzCuKWgVxbCtGB0LrQvtC8CuKWgWNvbXBvcwrQsdGA0Y8K0LLRjwriloFyZXNwb25zCuKWgWNvbnNpZGVyZWQK4paBSmFwYW4KcGVzCm9zdG8K4paBbWlsaXQKU1AK0YHRiwphdHRyCmNpbAppcmVjdG9yeQphdmluZwriloFEZWwK4paBcHJldmVudAppZGFkZQpnaXQKaWZvcm0Kb3V0ZXIKaW5jdApsZXZlbAphdGV2ZXIK4paBcmVwZQriloFleGMK0LTQsNGAClN0eWxlCuKWgVRob21hcwplbGluZQriloHQtgp1bnRpbWUK4paBbGFyZwpUcnVlCi4qCmNyZWVuCnlsZXMK4paBdHJhbnNsCuKWgdCh0L4KZW5zaW9ucwrDpGwKaXNzZQriloF2b2x0CmNpYWxseQpuaWsKLl0K4paBU3RhZHQK0LzRiwpmaWxsCmxvdgriloEiLwpTcAriloFBaXIKQ2FsbAriloFudXIKQ2hlY2sKaWVuY2UKZWZpbmVkCuKWgdCy0YDQtQrFgm8KZHoK4paB0L7RgAppa2VyCm93YQrQvtCy0LjRhwpyw6kKT0wK4paBbGluZWFyCuKWgWV4cG9ydAphaHIKaWNpYWwKUmVwCuKWgW5hdHVyYWwK4paBY29wCuKWgX0pCsOnw7Vlcwp6egpXaGF0CuKWgUhvdXNlClJlZgppbmdlcgriloF0YWtpbmcKbsSbCuKWgUVpbnoK4paBZGFtCuKWgWlzc3VlcwpCdWlsZGVyCmVkaXQK4paBcHJ6CnBhc3N3b3JkCkdlbmVyCnJpbQriloFwYXJ0cwotLS0KaWdpbmFsCuKWgVNjaQriloFtb3RoZXIKcmVhCuKWgWNvbnRhaW5lcgrQtNGPCuKWgUlQCuKWgW5vbmUK4paBZm9sbG93ZWQK4paBcGxlCuKWgW1lYXN1cmUK4paBdG91dApFeHQK4paBVFYK4paBZXhwbGFpbgriloFwYXBlcgrRgdGC0ZYKd3MKV2lrCuKWgW1tCuKWgU5vcm0K4paBU2VydmVyCmZvbnQKZWNhdXNlClRSCuKWgdCx0LgKTGEK4paBZW5zCuKWgXJldHIK4paBU2lsCuKWgXNlcXVlbmNlCmFyYwpJVgp6w6EK4paBQW5kcm9pZAriloFTdXBlcgriloFyb3oKb3ZpZQpPbQriloFXZWxsCm1ha2UKb3JwaAriloFKZXIK4paBUm9zCnJlZmVyZW5jZQriloFmZWF0dXJlcwriloFHZXIK4paBTGVnCuKWgWxhdGUK4paBYWRkaXRpb25hbAriloFmbG8K4paB0LXQs9C+CuKWgWFsZ29yaXRobQpCQQprYXIKSVAKXSk7CuKWgWFwcGVhcnMKeXcK4paBdGVtcAriloFhdXNzaQptZXRob2QK4paBcGV0CnN0cmFwCmFybmluZwriloFjdXQK4paBU2EK4paBdHJhY2sK4paBZW1wbG95CuKWgWluZGUKcmF2CuKWgWdlbmVyYXRlCmJlcwphcnRzClN0YXR1cwp1Z2UKYWxpcwriloFvdmVycmlkZQriloFmaQriloFsb3N0Cm90ZWQK4paBcm9vbQriloFjYWxscwriloFjb25zaXN0CtGA0LXQvQriloF2aWxsYWdlCmRpc3QK4paBdGVjaG4KZW56YQriloHRgNC+0LcK4paBQ2F0YWxvZwriloFiZWNvbQpyb3dzCuKWgU5lbApjb21wbGUK4paBcHJlbWkK4paBcm90CuKWgVdlYmxpbmtzCuKWgWZvb3RiYWxsCuKWgWNvbXBhcgriloFsaXZlCtC60LjRhQriloFlcXVpdmFsCmNhcGUK4paBR2VuCm5kZXIK4paBVmlzCuKWgWJlaGluZApnZXJzCnZva2UK4paBbWVkaWEKRVgKdGhhdAriloFzb25vCuKWgW15c3FsCmV2CuKWgXJ1bGUK0LTQvtCyCmFjYwriloFXSEVSRQrQtdC90LUKR3JpZAriloFqdWwK4paBbW9ydAriloFnZW5lcmF0ZWQKZW5jaWEKYWN0ZXIKY2x1ZAriloFzY2VuCuKWgWNsb3NlZAriloFNaWNoYWVsCuKWgW1vdW50CikkLAriloFkcm9wCuKWgWNvbWJpbgp0b2NvbAriloFnb2VzCuKWgWdlYgpNRAriloFBbnRvbgriloEkKCIKVGVtCuKWgWNhCuKWgWluc3RydQplZHMK4paBdG9vbApteXMK4paBcm91dGUKIikpCtC/0YDQtQriloFmbG9hdAriloFzZXJ2aWNlcwriloHRh9C4CtC60ZYKZW1ibHkKYWtlcgriloFTb24K4paBTWF0aAphc3NlCm91c2x5CmxpY2F0aW9ucwriloFydQriloHRidC+CuKWgUNvbnN0CuKWgWltbWVkaQpGTwpvcm8K4paBcHJvZHVjdGlvbgpyZWkK4paBanF1ZXJ5CmFubnQK4paBV2hpbGUK4paBc24K4paB0LPQvtC00LgKRm9ybWF0CuKWgXN0YXIK4paBU2VuCuKWgWtvCk5BTUUK4paBcHLDqXMKY2hhCndoYXQKb21pbgplbmRhbnQKaHkK4paBb2JzZXJ2CuKWgXByZWZlcgrRg9C9CuKWgWNvbnN0cnVjdG9yCmJzCuKWgW1hYwriloFCcmUK4paBSW5zdGl0CuKWgXN0b3J5CuKWgXN5bWJvbAplbGVzCsOfZQphc2luZwriloF3ZXN0CmlhbnMK4paBbWFzdGVyCtC10LcK4paBd2F5cwpibQriloFwaWNrCuKWgWRlcGFydApCYWNrCmVuawpsaXBzZQriloFtYXRoCuKWgUZyYW5jaXMK4paBRGVjZW1iZXIKZnMKcnVtCuKWgWRldmVsb3BtZW50CkxUCmVybmVsCuKWgVRydWUK4paBTW9yZQpyYW5nbGUK4paBY29uZGl0aW9ucwpPcHRpb25zCuKWgWdsaQriloFvcGVyYXRpb24Kw6lrCmFjaHQKaWdodHMK4paBbWlzdAphbmRhCuKWgWVuZXJneQriloHQttC1CuKWgXdvbWVuCmFrdAriloFDSApnZWJyYQriloFtZWV0Cml1CndlbGwKw7ZsCuKWgWdvdmVybm1lbnQK4paBSm9zCmllZwriloFzeW50YXgKZml4CuKWgVBldApqcXVlcnkK4paBY2FyZAriloFwcmluY2lwYWwK4paBZHJ1CuKWgXRlcnJpdAriloHQv9C+0LIK4paBU1MK0YDQuNC4CnRyZXMKYWduZQpseWluZwp0aWxkZQpiZXJuCmVudGVyClBlcgriloFzb21ldApMb2FkCmxpY2UK4paBc291cwriloFMb3VpcwriloFsb2dpYwriloFPdGhlcgriloFjaXIKw6l2CmNocm9uCuKWgWhhbgriloFtYXJnaW4KV2luZG93CsOocmVzCm55Y2gKcHVzaApib2xkcwriloFsYXlvdXQK4paBW2AKQ2hhcgriloFDYXAKYm9sZHN5bWJvbAriloFSb21hbgriloFNYXgKOigK4paBQ29kZQppc2luZwriloFzdGF0ZXMK4paBZXhpc3RpbmcKc3VwcG9ydAriloFyZXNlYXJjaApsaWNhdGUKdmFyaQriloFiaWoK4paBYXBwZQriloFoYXBwZW5zClwiCuKWgWNvbmNlcm4Kd2VzdAriloFzYXlpbmcKcGlkCuKWgXJlY29nbgriloFIZXQKQ2hpbGQK4paBY3MKXCwK4paBY2xlYW4KbGVjdGlvbnMKYWNjZXNzCtCy0YMK0L/RgNC+CmFjaXR5CuKWgU9mZgriloFlYXNpbHkKw6hxdWUK4paBamFrbwriloFpegriloFIYQriloFEZXQK4paBZm9ybWEKc2NoZQpzd2VycwriloFvZmZlcgpxdWlyZWQKVXNlcnMK4paBc3Vic3QKPigK4paBZ3JvdW5kCnVubgpyb2QKc3BlCnVyc29yCuKWgWxlYXZlCmVyawriloF0YWwK4paBYm90dG9tCklPCuKWgXBvcHVsYXIKaWdvCuKWgVRpbWUKdmFsdWVzCuKWgUxvYwriloFDbHViCuKWgWFuY2hlCmlhxYIK0ZbRlwpPbWVnYQriloFsb2NhdGVkClVybAriloFFc3AK0LvRiwrRhtGMCnVsYXRlCuKWgWpvaW4KYXZlcwp2ZXQKbGlvCnJlbW92ZQriloF0b2tlbgriloFvcHRpbQriloFjbGFpbQpvbG9naWNhbAriloFjc3MK4paBYWx0aG91Z2gK4paBcHJpdgriloFCYQrDvGwKZW50aWNhdGlvbgriloF2ZW4KU2VydmVyCuKWgUNvbmcKTkVUCkNPTgpkdApwZXJ0aWVzCuKWgWVwaXMKd2lraXBlZGlhCuKWgWVuZ2luZQriloFmZXIKZ2V0RWxlbWVudAriloFDbGEKxZnDrQriloFyb20KdmFyZXBzaWxvbgriloFwcmltZQppc3RyeQpwZWN0ZWQKb3JhZ2UK4paBdG91Y2gK4paBWycK4paBZGFuCkVtCmFjaW9uZXMKQ2FuCuKWgXdob20K4paBYmVoYXZpb3IK4paBc3RyaW5ncwriloFFdXJvcAriloFSb20KY2lyYwriloFwdW4K4paBcmVnaXN0ZXIKYnVudHUKcmFpbgpPYgpUQQriloFzb21ldGltZXMK4paBbWVudAriloFpbnRlZ2VyCuKWgUphYwpsZWdhdGUKb3RoaW5nCuKWgXNvdW5kCmxhY2VzCuKWgdCR0LAKcmIKZGkK0LvQtdC90LjRjwriloF0aGVtc2VsdmVzCuKWgUJsYWNrCuKWgXNldHRpbmdzCuKWgW5vcm0K4paBcnVucwriloFOT1QKS0UK4paBcGVyaGFwcwriloHQrwriloFtb2wK4paBYW5zCmF0cmUK4paBRGllcwpUb2tlbgphbmllCuKWgWFsbG93ZWQKUmFuZ2UK4paBR3JvCnZpYQp1dG9yaWFsCmVuc29yCmVzdGl2YWwKKTsNCtC60YDQsNGXCuKWgXR1cm5lZApzY29wZQriloFiaWVuCj0kCuKWgWV4dGVuc2lvbgphdG9yZQriloHQoNC+CuKWgXNwZWNpZnkKZWR1CkRhdG9zCuKWgXN0b3JlZAriloFwYXJzZQriloFhbnN3ZXJzCmlsbHMK4paBaGVhcmQKbHUK4paBVEhFCuKWgWfDqW4K4paBZnVsCmV6CuKWgVByZW0KdGhlbgpkcArRgdGM0LrQvtCz0L4K4paBU2kKw6dvCkVkaXQK0LrRltCyCuKWgdCb0LgK4paBU2luZwriloFjYXRlZwpFcXUK4paBZ3VlcgpXaWR0aAriloFDaHJpc3RpYW4Kc3RhdApXcml0ZQriloF3b21hbgp3b29kClZpcwrRgNCw0LcK4paBJCRcCm9kZXIK4paBYm9vbAriloFpbnRlcm5hdGlvbmFsCtC90L7RgdGC0YwK4paBUmljaGFyZAriloFhZGRpdGlvbgriloFNdXNpYwriloFhYmVyCnTDswriloFoaWVyCnVnaAriloFwb2IK4paBdGFibGVzCkRvCuKWgWhpZ2hlcgpwc2kKcsOhCuKWgWFjdGl2ZQriloFUYWJsZQrRmtC1CuKWgWRlc2NyaXB0aW9uCuKWgXNlZW1lZArDrXN0CuKWgW15c2VsZgriloFtZW51CmRlbAriloHFvgplbGUKQXV0CuKWgdCz0YDRgwptdXQKb29uCmFzYwpidWcK4paBbW92ZWQKQ0wK4paBZGF0YXMKU08K0L7Qu9C+CuKWgUdlb3JnCuKWgXJlYWNoCjoiCuKWgWV2YWx1CuKWgUhlbAriloFSaXZlcgriloHQkNGACi8vLy8K4paBc2V0cwriloFPbHltcApBZGFwdGVyCi4nCm92ZXJuCuKWgUxvcmQKIS0tCmpwZwppbWVudG8K4paBUHJvZgriloFhY2hpZXZlCn06CuKWgWluY29yCuKWgW9uZGVyCmVuZ2wKQUJMRQriloFNYXJ5CuKWgXdhcmVuCmxhZ2UKRGVjCtCw0L3Qs9C7CmVuY2lhcwrQu9C10LkK4paBTWFjaGluZQriloHQkNC9CnVkYQriloHFmwriloFYWApvbmx5CtC70LXQvdC40LUK4paBdGFtYmnDqW4KbmVqCuKWgXJlbGF0aXZlCuKWgWhvdXJzCuKWgWluZGVlZAp1bmRvCmluZ3UKYXJlYQriloFDcmVhdGUKYmVpdAriloFyZW1vdmVkCm1hc3RlcgpoYXVzCuKWgUJlcm4K4paBc3BlZWQK4paBQmF5CuKWgUF0dAriloFOb25lCmFwcGxpY2F0aW9uCsO8ZAriloFmaXQK4paBTWFyaWEK4paBbm9yZAriloFzcGxpdAriloFzdHJ1CuKWgW9mZmljaWFsCuKWgWV4ZWN1dGUKb3V2ZQp7ewriloFBcAriloHQutGDCklMCuKWgV4KZGltCuKWgXNldHVwCtGB0LoK4paBc2hhcmUK4paBbWludXRlcwpnbGUKb2NvCnN0ZWxsCuKWgUNvdW4K4paBdGVtcGVyCmtlaXQK0YHRjNC60LjQuQphbwriloFMb25nCigmCtC60LDQvQriloFkZW5zCkJ1dApYWApEQVRFCmdhbgouKS4K4paBZW50cnkKaW5zdGFsbAriloHQt9C90LAK4paBU29tCkNvbW1hbmQKw59lbgriloFzdGFydGluZwriloFzdG8KSUcK4paBbWluaW0K4paBZXhwbGljaXQK4paBYnl0ZXMK4paBcGFydHkKdG9iZXIK4paBR3JhbmQK4paBVm9yCuKWgWxldXIKRG9jdW1lbnQKZXJjCmVuc2l2ZQpDUAplbnYK4paBYXJndW1lbnRzCuKWgUdyYW4KYXJpbHkK4paBbGluCnRuCigtCmdlcQriloFGYW1pbAriloHQkdC+CuKWgXRvdXIK4paBbmF2CuKWgXByb3Blcmx5CuKWgU1ycwriloFNZWwK4paBc2NhbGUKYXN0aWMKZHMK4paBU2lyCuKWgUNodXJjaAp9XntcCnlvdQovLgpTbwriloFicm91Z2h0CuKWgXJvbGUK4paBU3VyCuKWgWZvbmQK4paBZ2VzCsW8ZQpldGVuCuKWgcOpdGFpdApTRVIK4paB0LrQvtGC0L7RgNGLCuKWgWVxdWF0aW9uCmFzcHgK4paBQWZyCuKWgWRpdAplbXB0eQphbGVtZW50CndyYXAK4paBQmV0CuKWgWNvbGxlY3QK4paBZ2l0CuKWgXZpZQriloEuLgrRgNC+0LkK4paBPD8K4paBZWR1YwprbAplbnNpcwriloFPUgriloFIaQriloFDb3VyCtCx0YsKY2VydAriloFHZXMKZXNzb3IKTWFpbgriloHQu9GOCmNhZGUKZG90CmF1Z2gKaGliCuKWgWF1dG9tYXRpY2FsbHkK4paBc3BpcgpwcmVzZW50CuKWgUZlYnJ1YXJ5CuKWgUVsbGUKY3VzdG9tCuKWgXByb2dldAriloFhZG1pbmlzdHIKQUEK4paBYm9ybgriloFDb2xsZWdlCmF0aG9sCmApCmllcnJlCuKWgXJhbgriloFwcm9mZXNzaW9uCm9nZW4KfV97XAriloFhY3Rpdml0eQriloFzY3JvbGwK4paBcHJvdmUKaWJyYXJ5CmVyaWVzClJlYWQKeWVhcgriloFsYW5nCkRldAriloFrbmV3CuKWgXByb3RlY3RlZAriloF3b3IK4paBZWZmaWMK4paBcsOpZwriloF0aGVvcnkK4paBcHVibGlzaGVkCnJlYWwK4paBVG91cgriloFkdXJhbnRlCsOkcwriloFwb3NpdGl2ZQriloFmb3J3YXJkCuKWgVJlbAp7IgpwYXJrCuKWgVVtCuKWgWVlcgplbnRhCuKWgWltYWcK0L3QvtGXCnBpZWwK4paBalF1ZXJ5CmlzbWUKY2huaQpvcmdhbgriloFhcmdzCm9pcgpoZWltCnJpYW4KZWxlc3MKdXNlcwrQtNC40L0KaWNpw7NuCuKWgWluZHVzdAriloF3aXNoCsOhbnkKb2NhCuKWgWFuZ3VsYXIKaWV2ZWQK4paBb2NjdXIKU0VMRUNUCm9uaWEKYWRtaW4K4paBQmVzdAriloHRjdGC0L4K0L7Qs9GA0LAK4paBbG9zcwriloFiYWwK4paB0KDQvtGBCuKWgWNhcmVlcgriloHQv9C1CklYCuKWgWZhbGwK4paBUm9iCuKWgU9QCmVuZWQKZ3JhcGhpY3MK4paBY29taW5nClVwZGF0ZQriloFkaWVkCmVkZW4K4paBYWJzCuKWgWlubmVyCuKWgXRyYXYK0YHRgtC+0Y8KesSFCsOpcAriloFHcm91cAriloFjZWwK4paBc3R1ZmYK4paBc2l0dWF0aW9uCuKWgSR7CmFjbGUK4paBcHVycG9zZQriloFGaXJlCuKWgU9oCuKWgVNlY29uZAriloF1cGxvYWQKb3N0YcWCCtGO0YnQuApBdXRoCuKWgXNob3dpbmcK4paBY29tcGxldGVseQphdmVsCmJkCuKWgXByb2NlZAriloHDlgpjb250cm9sCuKWgXRoYW5rCnVuZHJlZAriloF0b20K4paBZXhhbXBsZXMK4paBcmVtZW1iZXIK4paB0YDQsNCx0L4K4paBcG9zc2liCuKWgWRldGVjdAriloFwb29yCuKWgU9wCuKWgWNlbnR1cnkKdXR0ZXIK4paBbG9naW4KdW5zdApPdXRwdXQK4paBb3RoZXJ3aXNlCmxhbgrRgtGD0YAK4paB0YHQvtCyCuKWgWdyb3VwcwpyaXAK4paBc2hlbGwK4paBZGlzdHJpY3QK4paBcmVjb3JkcwriloFzacOoCmZvcnR1bgplbnR5CuKWgVRyZQriloFjaGFuZ2luZwrRgdC70LXQtAphdWdodAriloFkZWVwCnN1YnNldAphZ3kKZW5kYXIKamF4Ck9NCkVsCmltYXRlCmFyZG8K4paBcGxvdAriloF2aXNpdAriloFidWcK4paB0LLRgdC1CuKWgW9wZW5lZAriloFyZXBsYQriloFIZW5yeQriloFwcApiYXMK4paBZGFyawriloFNYXJ0aW4K4paBcmVzb3VyY2UKaWxpbmcK4paBd2F0Y2gKcmVwbGFjZQriloFyZWxlYXNlCkxvY2F0aW9uCuKWgWxlYXJuaW5nCm1lbnUK4paBYWxsb3dzCtGK0YAKTGVuZ3RoCuKWgXdoYXRldmVyCuKWgXBhZ2VzCuKWgWNvbXBpbGVyCuKWgdGC0LDQutC20LUK4paBUGFuCmNvbW1hbmQK4paBcm9hZAriloF1bmxlc3MKYD8K4paBZGlzY292ZXIK4paB0L7QvQp9XQpib3VyCuKWgUNvdWxkCuKWgXJlZ2V4CuKWgXBzCkNECtC40LcK4paBd2lmZQphbWVudGkK4paBZmFpcgriloFEQgriloFDdXAKZW5lbgphamF4Cm90aMOocXVlCuKWgXNlaW5lcgppY2tlcgrDoW0KZXhjaGFuZ2UKb2xlcwpJRgriloHQlNC+Cm9obgriloFncm93CuKWgVRodXMKc3BlYwriloFoYXR0ZQojLAphbGxlbAriloFyYXRlCuKWgWNlbnRyYWwK4paBVmFuCmlmb3JuClJ1bgriloFzdHVkeQriloFYTUwK4paBQ2hlCuKWgWJlYXV0Cm1pZAriloFhZHZhbmNlClZlcgrRgtGPCuKWgWhhbmRzCuKWgWxheQriloHFoQriloFPUwriloF7fQpQcmUK4paBSGFsbAppbXAK4paBc3VuCuKWgXN0ZXBzCuKWgWp1ZApxdWkK4paBYm9vdAriloElPgriloHQktCwCm5vc3QK4paBbmVtCuKWgXBlbgpPcGVuCuKWgWNodXJjaArQutC+0L0K4paBYXZlcmFnZQriloFjb21tZW50cwriloFjb3JyZXNwb25kaW5nCmxldmFudAriloFiZWQK4paBbWVhbmluZwpWZXJzaW9uCkxpbmsKYmVsCuKWgWV4dHJhY3QKxZvEhwriloFJVgriloFJcgriloFjb21wdXRlcgriloFhZmZlY3QK4paB0KHRgtCwCkFYCnNvcnQK4paBc3BlY2llcwriloFPcGVyCuKWgWhhc2gKY2hlcwriloFFaW56ZWxuCuKWgWtleXMK4paBbWFyem8K4paBaW50ZXJwcmV0Cmhvb2QK4paBY29vcmRpbgrDtnMKcmFnZQpldHoKaXphCtC00LXRgArDvHQKXioK4paBbW9kaWZ5CuKWgXRlcm1pbgriloFjcmVkCnpvbgrQvdGD0Y4K4paBbWllCuKWgScnCuKWgU1vcwriloFjb25uZWN0ZWQKTk8K4paBY29tcGlsZQriloEiXAriloFjYXQKZmlkZGxlCnV0YQpBY2Nlc3MK4paBU3RvCuKWgUJ1cgriloFub3J0aApHYW1tYQriloFhbGxvYwpJbml0CuKWgUxpbmsKaWFsaXplCkltcGwKb3VwZQpyb3ByaQriloFHb2xkCuKWgXNvbG8K4paBRGlzdAosLQpuYXYK4paBYWxlcnQKZXNpcwriloFPcwovLy8K4paBZmViCuKWgS0tPgpmb290CuKWgUZyaWVkCuKWgUVpbnplbG5hY2gK4paBcmV2CnplaXQK4paBU3RhdAriloFTZWcK4paBYmxvCndpY2sKRUwKY2FwdGlvbgpoZWFkZXIK4paBcHJlc2lkZW50CuKWgW11bHRpcAriloFFaW56ZWxuYWNod2Vpc2UK4paBc2VpbmUKP+KAnQpGdW5jdGlvbgriloFTdGFuZAriloFGdW5jdGlvbgriloE/PgriloFCaWxsCuKWgXNwZWN0CuKWgXJlZGlyZWN0CnJ1cHQK4paBd2FsawrQstGI0LgKc3ByaW5nZnJhbWV3b3JrCnBsYWNlCsOpaG8KRW50aXR5CuKWgVNlcnZpY2UKaW50ZQriloF0cmFpbmluZwriloEoYArRhNC+0YAK4paB0LrRgNCwCmF1cgriloFmZXRjaAriloHigKAK4paBbcOqbWUK4paBKCcKYXRpdmVseQriloFleGVjdXQKw6RjaAriloFDYXRhbG9ndWUKYmFzZWQKQXR0cmlidXRlCuKWgXNwcmluZwpwaG9uZQrRgtGA0LAK4paB0L/QuArRgtC10YDQsAriloFgXAriloFPZApPbmUKc2VuZApib24K4paBwrAKTU8K4paBYXNraW5nCuKWgW/DuQriloFpbmfDpXIK4paBdGVzdGluZwriloHRhNCwCuKWgUJvb2sKaW1tCuKWgXByb2dyZXNzCmJybwpGaXJzdAriloFwaG90CuKWgU9OClRlbXBsYXRlCmRldmVsb3Blcgphbm5vdAriloE+PQptaXNzaW9uCuKWgWt0w7MKcGMKYmFjaAp6ZW50CnVlZAriloFvbmVzCtGY0LgK4paBcm91dAriloHQmtC4ClBvc3QK0YbRltGXCuKWgVZpcgpuZWsKYWdpbmcK4paB0L7Qugppem9udAriloFhZ29zdG8K4paBY2hvb3NlCuKWgQ0K4paBc3lzdGVtcwpsb3NzCmllbnRlCuKWgUNyZQriloFjb250cmEKdW1zCuKWgWJlZ2lubmluZwplbXkKaXN0aWNzCuKWgXNlcnZlZApEb3duCm9wdGlvbnMK4paBR292ZXJuCuKWgUJZCuKWgWplc3QKdMOpCuKWgWNvbnRpbnVlCnBlcnMK4paBZWFzaWVyCuKWgWNvcwplc3NvCj4+Ck5ldAriloFCb3IK4paBQ3IK4paBdHJhbnNmZXIK4paBQ1NTCuKWgWZpbm5zCuKWgdGF0L4KdXNlcm5hbWUK4paBY29uc3RydQriloFwYWluCuKWgVRlbQriloFzcGVjaWZpZWQK4paBYnJpdArRgdC60LjQtQppcmsKcmFwcGVyCuKWgWNvdW50ZXIK4paBWyIKb2RlZArQtNCw0L0KcHJvcGVydHkKaGFyZAppc3RyaWN0CikvCuKWgVBvdXIK4paBV2hlcmUK4paBPT09CuKWgXNvd2llCuKWgdCf0YDQvgriloFkZXNzCuKWgXRyYXMK4paB0YPRh9CwCuKWgU92ZXIKbm90ZQriloFBbWVyaWNhCmNwCuKWgWdyYW5kZQpNZQopLQpNb2RlCuKWgXBhc3NpbmcK4paBZ2l2aW5nCkNsCn0vCk1lbnUKISEKYW5ndWxhcgriloFsYXVuY2gKdmFycGhpCuKWgUpvaGFubgriloFmb3JlYWNoCnLDswpzZXF1CmlmaQpBbQphcnAK4paBYnVmZmVyCuKWgW5pCuKWgW1peAriloFNdXNldW0K4paBbWVhbnQKYXNpCuKWgWthbgrQv9GA0LDQsgpDb21wCmlzdG9pcmUKaWZ1bApqZXIKaXNzaW9ucwpSZXNvdXJjZQriloHQstC+0LcK4paBU1QK4paBc29sdXRpb25zCuKWgWJlbG9uZwriloFBc3NvY2kKY2YK4paBTcOkcgriloFncmlkCk11bHQK4paBcmVxdWlyZXMKa2sK4paBdGVhY2gKZW1laW5kZQriloFzcXVhcmUK4paB0LrQvtC80LDQvQriloFFdmVudAriloFydWxlcwriloFidXIK4paBZWluZwriloFNYWkK4paBbmFtCuKWgXNsw6QKaMO2cgriloF0aXAK4paBTGl0ZXJhdHVyCuKWgXNjb3BlCm92ZXJsaW5lCuKWgWV4aXQKKT8KYmV0CuKWgXZpY3QKT2ZmCuKWgWFwcHJveGltCuKWgUdlYgprdG9wCmhlaXQK4paB0K4KdGVtcGxhdGUK0YDQvtC9CuKWgXVubwpTZXJ2CuKWgWZyYW1ld29yawpvcGVyYXRvcgriloFnZW5lcmFsbHkK4paBaHVuZHJlZAriloFkaXZlcnMKb3ZpCuKWgXLDqXMKYWJzCuKWgWdhbArDp2FpcwriloFmZWV0CuKWgXZpcnR1YWwKY3p5CtGB0LrRgwouLwpodQphbmN5CuKWgXJlY29tbWVuZAriloHQv9GW0LQK4paBbW9uZXkK4paBdmVyc2lvbnMK4paBaGVscHMK4paBSG9yCkl0ZW1zCmxvb2sKY29ubmVjdAphbmdlcwpWaWV3Q29udHJvbGxlcgplbGlqawriloFvY2N1cAriloFlZGl0b3IKYXV0bwrDtmcK4paBc2Vjb25kcwriloFvYnZpb3VzCnZtCmFrZXMK4paBZ2VnZW4K4paBdGlsCmplY3Rpb24K0LvQtdC90L3RjwriloFvcGVyYXRpb25zCuKWgUVhc3QKb2d5CuKWgVBvbGl0CnV0ZW4K4paBSm9zZXBoCiJgCuKWgUNvbXBhbnkK4paBY2FsbGJhY2sK4paBc2VuCmNjacOzbgriloFhc3NvY2lhdGVkCuKWgWNvbnRhaW5pbmcK4paBcHJhY3RpY2UKZWxpamtlCm9rZQrDqXJhCnVucwphbnRhCnZleQp6dQriloFCZXMK4paBRmxvcgptZW0KeWN6CuKWgWFyY2hpdGVjdAriloFhbm5pCuKWgWNvbnRhY3QKWVBFCuKWgUNhcwriloHQv9C+0LvRgwpvdm8K4paBYnJpbmcK4paBY29uY2VwdAriloFqcwriloFSZWZlcmVuY2lhcwplbWJsZQriloHQvQriloFzdXBwb3J0ZWQKQmlnCuKWgUhhbnMKZXJ2CuKWgU1hagriloFhcnJpdgriloFIYXZlCuKWgXByb2JhYmlsaXR5CuKWgVBvcAriloFQYXNzCnRva2VuClByb3ZpZGVyCuKWgVJhClJlYWRlcgpvb3RoCmxhcAriloFhc3Npc3QKYWRvdwriloF0ZXN0cwrRgdGB0LgK4paBa2luZwpsYW5nbGUK4paBU3VtCk9JTgriloFzZWN1cml0eQpuaXMKLi4vCuKWgWJhc2ljCnVuaXR5CmA6CuKWgdC60L7RgtC+CmtvdwriloFCaWJsaW90aMOocXVlCmFzaW9uCmFsbwppZmVzdAriloFub3ZlbWJyZQriloFwZXUK4paB0JYKZW5zY2hhZnQKY2x1cwrRmNGDCkhlaWdodArDum4K4paBdHVyCuKWgWlkZWFzCuKWgWNlcwpmcmFrCuKWgXByZW1pZXIKaXRhdGlvbgriloFzw6kKSFRNTAriloFSb3lhbArRgdGM0LrQvtGXCuKWgWJ5dGUKUFMK4paBc2VndQppbmVuCuKWgUdyZWF0CuKWgdCa0YMK4paBZXh0ZXJuYWwKVGl0bGUKVG9wClByb2Nlc3MKaXTDpHQK4paBYC8K4paBc2VjcmV0CnBvc2l0b3J5CuKWgXBvdGVudGlhbAriloFCdWQKbmFtZXMKYXNvbnMKc3RhY2tleGNoYW5nZQpiYWNrZ3JvdW5kCtC/0LXRgArRgdC+0LIKYWZ0ZXIK4paBcGVybwriloFzb2Z0d2FyZQriloFzZWQK4paBYXJyYXlzCnRtcAriloFhc3AKc2NhbGUK4paBTGF0CmFuYWwK4paBZ2VtClBVCuKWgUFsdHJpClRoYXQK4paB0J3QuAppZmFjdApBZGRyZXNzCuKWgXNvdXRoCuKWgWZvcm11bGEK4paBQ29sbGVnCuKWgdGW0L0Ka3Rpb24K4paBc2FjClNICmFqbwpldGMKdmMKYF0oCuKWgUR1cgriloHQnNC1CuKWgVNtaXRoCml0ZW1zCkNLCmVsbwriloFwbHVnaW4K4paBc2VyaWUKaWVubmUK4paB0LjQu9C4Ck1hcgriloFJbWFnZQpnb3QKYW5kYXMK4paBbWF0Y2hlcwriloF3b3J0aAriloFEZWIK4paBY2FjaGUK4paBZmVsdAplcnNjaAppemVzCk9wZXIK4paBSmFocmUK4paBY29tbXVuZQp0aHJlYWQK4paBbnkKZGVjCm91dwriloFzdXJmYWNlCuKWgVBvcgriloFTdHJlZXQK0L/RgNC4CuKWgWNhbmRpZAriloFSZXR1cm4K4paBS29tCmdydQriloHRgtC4CltcCuKWgWRlcGVuZHMK4paBaW5mbHUK4paBdG93YXJkcwphaW5lZAriloFyYW5rCuKWgUphbnVhcgriloFjb21wb25lbnRzCmdlc3QKZ2V0RWxlbWVudEJ5SWQK4paBY2hlY2tlZAphaXJzCmpvaW4K4paBZGVhZAriloFoaXQKw6lueQriloFlcXVpdmFsZW50CuKWgdCf0YDQtQriloFhcHByb3ByaQpQYXNzCuKWgXByaW1lcgplbmdsaXNjaAriloFhcHBhcgriloFEdXJpbmcK4paBa25vd2xlZGdlCuKWgXRyaWdnZXIK4paBY29yZQriloFPbAriloFQcm9kdQriloFGZXJuCuKWgdC90LDRh9CwClRlCuKWgU1vdAplcnZlCtGC0LLQvgriloFtaWQK4paBZmluYWxseQphaXJlcwriloFlc3BlY2lhbGx5CuKWgXR1dAriloFyZWNlaXZlCmFkcmUK4paBbmVpZ2gKa3RldAppbGRlCuKWgXJhZGlvCuKWgWRyaXZlcgrQu9C40YHRjAplbmRlbmNpZXMK4paBSUUK4paBc2F2ZWQKZmZlY3QK4paBV2F5YmFjawppYXQK4paBcGFkZGluZwp3aW5kb3cK0YLQuNGH0LUK4paBbXVyCmFjdG9yCuKWgUhhbgrQvtC90LDQu9GMCuKWgWdhcgriloFmYW1pbGplbgrDs3MK4paBbmF0aW9uYWxlCuKWgXByw6kKZGVkCm9uYWwK4paBUHJlc2lkZW50CuKWgVwsCuKWgXBsYWNlZAplcm5pCuKWgXNpZ25hbApuYWIKaG0KTW9uCuKWgXZzClNDCuKWgXByb2dldHRpCuKWgcOcCuKWgWZvcm1zCuKWgW1lc3NhZ2VzCmluZgp1c2VycwpHRVQK4paBZGVscwpDb2xsZWN0aW9uCuKWgUdvb2QK4paBTWF5YmUK4paBY29tcHIK4paBbGFyZ2VyCmdyZXMKYXBlcgriloHQn9GA0LgKdW5kZXMK4paBc2VhCuKWgVNwcmluZwp1bG8K4paBbWVjaGFuCuKWgXNhbnMKR0IKVmFsaWQK4paBY29tbXVuaWMK4paBcHJhCnZpZXIK4paB0KHQtQriloFhaW4K0YLRg9GA0LAKa29tCnNraWVnbwrQutC+0LLQvgphZGF0YQriloHQoNC1CuKWgWJvb2xlYW4Kc2V0cwriloFlZmZvcnQKLlsK4paBem9zdGHFggpQQQriloFWaWN0ClNECm93YcWCCuKWgWVtYgriloFwcmltYQriloFob3VyCnN1YnNlY3Rpb24K4paBRm9ydAptYXRoZnJhawppZ2luCkdMCikrCmZpCuKWgWFuY2kK4paBcGFuClwpCuKWgWx1ZwriloFkZXBsb3kKZG9tYWluCuKWgXNsaWdodApKU09OCuKWgW1vcm5pbmcK4paBaGkK4paBY29tcGFyZQppamUK4paBYmx1ZQriloFBYwriloFtaWRkbGUKYW5kZW4K4paBc2hhcmVkCuKWgUNhbXAK4paBw4EKb3VuZGVkCnV3CmllcnVuZwpTdGFjawriloFlaW5lcwriloFEYQpsaWoKZW50aQriloHQuQpVdGlsCuKWgWV4cGVyaWVuY2UK4paBYXdhaXQKdWxzCuKWgXJlcXVlc3RzCuKWgWltcG9zCuKWgWNvbnN0cmFpbnQKQ2hhbmdlCmVtcGgK0LHQtdGACuKWgUFub3RoZXIKQ3VzdG9tCuKWgXNpZ25pZmljYW50CmNyCuKWgW1pbGxpb24KcmVlawriloFkYWxsYQriloFHZXJtCm90YWwKYXRldXIKYnRuCuKWgXRoaW5raW5nCuKWgWludGVydmFsCm9ubmUK4paBbGl2CigpOgriloHQktC1Cm9lCuKWgUV2Cm1ldGEK4paBYnJvYWQKUmVtCmFwcGx5CuKWgWNvdXBsZQriloF0ZWNobmkKaWRhZGVzCuKWgWdvYWwK4paBQ0QKaGFiCuKWgWV4cGxhbgphbm5lcgriloFCZWNhdXNlCmJsb2cKaW5jbHVkZWdyYXBoaWNzCuKWgXZvaWNlCuKWgU1hcAp2ZW50aW9uClNlc3Npb24K4paBTGllbnMK4paBc29yCmNhdGVnb3J5CmFzaGluZ3RvbgriloFNw6Ryegpwb3AKaWxsZXQK4paBendlaQriloFMaWUKTnVsbAphZGRyZXNzCuKWgWZhY3RvcgriloFsaWduZQriloFIVFRQCuKWgXN1ZgriloFwZXJzb25hbApjaXAK4paBRGFyCuKWgWFkbQrQutC+0LkK4paBRXh0CuKWgWdvZAphYQpSaWdodArDqXTDqQriloFkeW5hbWljCuKWgW1haW50YWluCnRvcgojIyMjIyMjIwriloFGcmEK4paBY2hvaWNlCuKWgdGB0YLQvgrQodCgCuKWgUZlZGVyCnN0b24K4paBZmxhZwpraXQKTW9kdWxlCuKWgdGB0L/QvgriloFTdHJhCmlja3MK4paBaGF2ZW4K4paBTWFzcwriloFFbXAK4paBUGkK4paBUGVuClJlY3QK4paBS3IKaXRhdAplbGVyCtGP0LHRgNGPCml0ZXQK4paBU3RhcnQK4paBcHJvZHVjZWQK4paB0L/QvtC7CihfCuKWgWRlbGV0CuKWgWhvdAriloFHZXNjaGljaHRlCn5+CuKWgW1vbnRocwriloF0b2QK4paB0L3QuArDunMKdGVtcAriloFEZXoKeXBlcwriloFjdWkKb21tdW4KYWN0aW9ucwriloFlaWdlbgriloFpbW1lZGlhdGVseQpQTAriloHQk9C+CuKWgUJhbArRmdC1CnVsdWkK4paBb25saW5lCuKWgWHDsW9zCuKWgW5hbWVzcGFjZQriloFtb25kCuKWgUJhc2UK4paBQ2FuYWRhCmV0enQKfS0K4paBZGVmaW4K4paBZG91YnQK4paBaW52ZXN0aWcKdmlld3MK4paBTGluZQriloFzdGFnZQpldHRpbmdzCnVicmUKZmxvYXQK4paBUGxheQriloFMYXMKcHRyCuKWgWJlY29tZXMKZXN0YW1wCuKWgWluZGVwZW5kZW50CuKWgWFuYWx5c2lzCuKWgUxvb2sKbGFpbgriloHRgNCw0YEKUmVmZXJlbmNlCuKWgXNvcnJ5CuKWgXN1cHBvc2VkCsO7dAriloFkZWdyZWUKdXR6Ck1NCuKWgWRlc2lyZWQKxYJ5CuKWgWxlbgriloFhbG9uZQpzaWduZWQK4paBU3RhClBlcnNvbgriloFhcHBsaWVkCuKWgUJhY2sK4paBbWFycwpQYXJ0CuKWgURpZAriloFleHRlcm5lcwriloFucApvbmdvCuKWgWVzdGEKQmxvY2sK4paBcG91CmFkb3JlcwriloFTdHVkaW8KLiQK4paBcmVhY2hlZApib3QK4paBSnVuaQp0b25zCml0ZWwK4paBR2FyCuKWgWFydGljbGVzCuKWgURpc3RyaWN0CuKWgXRyb3VibGUKbGlkZQriloFGb3VuZArDoWQK4paBZXF1aXAK4paBaW50ZXJuYWwKJ10sCuKWgWFzeW5jClVCCmdlbAriloFhaQplbnN1cmUK4paBYXBwZWFyZWQK4paBJF8K4paBbWF4aW11bQriloHQodC4CtGA0YwK4paBYW5ub3VuCtC70LDRgdGMCuKWgWNtCtCz0LDQvQphdXB0CuKWgWxhdHRlcgriloFwbGF0Zm9ybQriloFkcmEK4paBY2FwaXRhbAriloFzb2x2ZWQKcml6CmVkaWMK4paBTXVyCuKWgVRvcArRgtGB0Y8KUGFuZWwKcnVsZQpldGljCuKWgVJlbgriloFXaWtpbWVkaWEK4paBVE8Kc2Vjb25kCmlzbAriloFoeQriloFuaWV0CuKWgWxvYWRlZApkaWcK4paBbWF5bwpbOgpBY2MK4paBYmVrCtC90LjRjgpsb2dpbgp0eAriloFGdXIK4paBU2FudGEKYXp6CuKWgWNvbmR1Y3QK4paBSW5kaWEKT3JkZXIKaXJ0aAp0dwp9KwriloF3aWVkZXIK4paBRWR1CkFWCuKWgWBgYAriloFtYW51YWxseQriloFSZWFkCmZvcnR1bmF0ZWx5CuKWgVJ1bgriloFBd2FyZAriloFGb290CiopCnBhcmFtcwrQv9GWCuKWgW5hdGl2ZQpyaWZ0CuKWgcOkCkFUSAriloF5b3Vyc2VsZgriloFwcmlvcgriloFjaXQKw6RoCuKWgXRyZWF0CuKWgW1lYXMKcmlidXRlZAriloFjbGFyCmNhcmQKUk9SCmlsbGVzCuKWgWxheWVyCmF1ZXIK4paBcmF0CmJlcm5hdGUK4paBc3RhdG8K4paBQ2hpbmEK4paBJCgnIwriloFuYWFyCnppcAriloEke1wK4paBYXBwcmVjaWF0ZWQK4paB0LjQvNC1CsW8eQriloFwcnplegriloFJbmRpYW4K4paBVG9kCuKWgVNvdXJjZQriloHQtNGA0YPQs9C4CmludGVybmFsCmlvbmFsZQpQcm9kdWN0CuKWgU1lbgriloF1cHBlcgriloFFdmVyeQp9LFwK4paBcHJpbnRmCuKWgWNvbnRpbnVlZAriloFub2RlcwrQu9C60LgK4paBbmljZQptb2R1bGVzCmVpZ24K4paBTWV4CuKWgUFjY29yZGluZwriloF1bmRlZmluZWQK4paBYmluYXJ5CmN1dApDdXJyZW50CmVkeQp9fXsKYmxlcwriloHQstC+0LkKc2NyaQplcW4KQ2hhbmdlZAriloFrw7Z6CuKWgXJlbW90ZQrQstC70Y8K4paBcXVlbAriloFhbGlnbgriloHQv9Cw0YAKU1YKeWVyCuKWgUNhbGlmb3JuCuKWgXBsYWNlcwriloFwcmltYXJ5CuKWgWNvbnYK4paBSnVsaQriloF2aXN1YWwK4paBU2VsZWN0CmF0b3J5Cj0oCmlzZXIK4paBaW50ZW50CnN1cgpjb250YWluZXIKaWNlZAriloFib2FyZAphc3RyCm9taWFsCtCy0LXRggrQt9Cy0LAK4paBY3J1CuKWgU9rdG9iZXIKc2F2ZQriloFncmVhdGVyCuKWgWlubgriloFwaWN0dXJlCuKWgdCi0L4K4paBb2J0YWluZWQKV2lraW1lZGlhCsO6YmxpYwriloFsb3JzCuKWgW1vbnQKb2JyZQriloFjaXZpbAriloFjb25zdHJ1Y3Rpb24K4paBV2VsdAriloFVbmRlcgp1bmRlcnQK4paBZWRnZQriloFMaXN0ZQpjc3YK4paBZXhwZXJpbWVudApsb2NhbGhvc3QK4paBRWRpdApncmVnCm92w6EK0ZnQsAptc2cK4paBR3JlZW4KRGlhbG9nCklkZW50CuKWgUpTCl57KAriloFzbMOka3RldApfX19fClByb2plY3QK4paBYmVza3JlCuKWgWJlcgriloF3b3VsZG4K4paBcmVhY3QKSGVsCnp3CuKWgVdhc2hpbmd0b24Kb3JpZQp0YXNrCuKWgWNhdGVnb3J5CuKWgWFydGlzdAphbm5vCuKWgW9vawphbW1lbgriloFNaW5pc3RlcgriloFkZWNsYXIK4paBS2V5CiwuCuKWgW1hY2gK4paBd3cKaXNlbgpGcmFuCuKWgdCg0L7RgdGB0LgK0LHQvtGACtGC0YDQuAriloFyb2NrCnF1aXMKbW9zCtC/0LXRgNCwCuKWgWVzdGVybmkK4paBZ29sZApXaW5kb3dzCiUlCuKWgXBhcnRpYWwK4paBd2VpZ2h0CuKWgXNwcgp9KS4K4paBZnJhbsOnYWlzCmZ1bgriloF0aG91cwpob2xkZXIK4paBZ29uZQriloHEjAriloFyZW5kCkRBCuKWgWFuc3dlcmVkCuKWgUZhbHNlCkJ1ZmZlcgriloFkYXVnaAouLS0K4paBU2hvdwriloFyZWN0CuKWgUtyZQpkcgpvc29waAriloF5aWVsZAp1cml0eQp0b1N0cmluZwphdmFsClBvbAriloFsb2NrCmltYXRpb24KYW50aWMKTG9jYWwK4paBYmVza3JldnMKaXTDqXMKZ3JpZArRg9GCCuKWgV97CtGB0ZYKRklMRQriloHQutC8CuKWgXNwZWFrCnN1bW1hcnkKcHJvcApqYXZhc2NyaXB0CnprCml6b250YWwK4paBdHJvaXMK4paBUm9kCnByaXNlCtGA0L7QstC+CuKWgW9kZAriloFnZXN0CuKWgXByb2R1Y2UK4paBd2FhcgriloFBdgpyaWJ1CtCy0LDQvdC90Y8K4paBZmluaXNoZWQK4paBYWRhcHQK4paBU2FyCnRleHRpdAriloFDZQriloFGYQpvc2VuCuKWgWRlcml2CuKWgXNoaXAK4paBb3BpbgriloFFdmVuCmdlc2NoCuKWgXN1cHBvc2UK4paBRmVyCtGB0LrQvtC1CuKWgXdvcmRlbgpzZXkKaGxpbmUK4paBVW5pb24K4paBLyoqCuKWgXZlegriloFDb2xsZWdhbWVudGkK4paBU29jaWV0eQriloFlY29ub20KxaHDrQpvaQriloFvcmllbnQK4paBVGVpbApyZW50CtC70LXQutGBCuKWgXNvbGlkCuKWgWNhcnQKKioqKioqKioqKioqKioqKgriloFjYWIK4paBTWVzc2FnZQpkb3RzCuKWgcOpZwriloF0d2UKYWdhCuKWgW5hegriloFNaWNyb3NvZnQK4paBdW5kZXJhcnRlcgpwcGVuCuKWgXJlY2VudAriloFuZXQK4paBcmVzb3VyY2VzClN0ZQouXAriloFTTwrQu9C+0LwK4paBY2VsZQriloFsaWMK4paBYmVuZWYKbGRvdHMK4paBc2VyaWFsCkludGVnZXIKY2xlcwriloFtaWxlcwriloFBbGUK4paBZW50ZXJlZAriloFUd28Kd2llCuKWgWluY2x1ZGVzCuKWgUVhY2gKZWxsaW5nCnF1ZXIK4paBRG9tCnBmCldTCuKWgXN0cmFpZ2h0CuKWgVN0YW4K4paBbm9zCsOtY3VsCmF0cm8K4paBQ2VudGVyCkZUCuKWgUluZ2EKaWxvCuKWgXd3dwpqc2ZpZGRsZQpuaWMK4paBRXVyb3BlYW4K4paBY29tbWVyCuKWgWdpcmwKdG90YWwK4paBU3RhcgriloFzdWdnZXN0ZWQKcGFsCuKWgXp3aXNjaGVuCtC/0LjRgdCwCklNCuKWgWhhbmRsZXIK4paBUHJvZ3JhbQp4c2wKw6FseQpCVQosLS0K4paBdmlkCuKWgWVzdGFibGlzaGVkCuKWgVNwaWVsCm9tZXRyeQp1bmVzCuKWgXNpdAriloFpbmhlcgriloFwdWlzCuKWgcOqdHJlCuKWgU1vc3QKSGVhZGVyCmluc2VydAriloFzaXN0CuKWgWZhdm9yCmRlc3QK4paBZW50aXR5CkNhbAriloFUaGVyZWZvcmUKREQKOzsK4paBRGV6ZW1iZXIK4paBUmgKaW1lbnRzCuKWgXJldHVybmluZwpzdG8K4paBVmFsdWUK4paBbGliZXIK4paBUmVzdWx0CuKWgWJpbmQKdm9pcgriloFUaW0K4paBTW92aWUKd2VnCmtldAriloHQuNGB0YLQvgriloFmcmllbmRzCuKWgWZuCuKWgcOpbAriloEmPQphcmRlbgpmZmljaWFsCuKWgWNvbW11bml0eQriloFhcGkKQXJncwppZXJlbgriloFkYW5uCm9tb3JwaAphZHIKbG9vcAp1bWFuCuKWgXZvdXMKYnN0CnN1Ym1pdApcfArRgtC40L0KQ29udGFpbmVyCmFza2V0Cj8pClNlYwriloFkcml2ZQpBc3MK4paBc3dlCuKWgWFtZXIK4paBbWluZQriloFIYW0K4paBYXZhaXQK4paBSG9uCuKWgWFwcsOocwriloFNYW5uCtGB0YzQutCwCuKWgWluY3JlYXNlCuKWgXR5CnNreQriloFhY2N1cgphcnRpY2xlCndlaWdodAriloFzZXgK4paBbGlzdGFkZQovKioK4paBZXN0w6EKfX0kCmFyZ28KZGVmaW5lCuKWgdGB0L7RgdGC0LDQsgpzZXNzaW9uCmFkcwrRgdGC0LLQuAriloFMYXcK4paBZGlhbG9nCuKWgWR1cGxpY2F0ZQriloHDqXAK4paBdm9jCmZyaQriloFncmVlbgriloFoaWRkZW4K4paBSXNsYW5kCuKWgWRpYWcKb3dlagpteXNxbAp0ZWlsCnLDpAppa2FuCuKWgUpvc8OpCmFsZWQKUnVudGltZQriloF0cmFpbgriloFEaXZpc2lvbgrQvdC40YYK4paBU3BhbgrQvdC40LzQsAopPVwK0YLQsNC9CuKWgXN0YXkK4paBZm9vCuKWgWFjY29tCuKWgWhlcnMK4paB0L3QsNGDCuKWgU3DvG4KaWRlb3MKc3RhdGljCuKWgXJlYWR5Cl1gCuKWgXZpc2libGUK4paBSG9wZQp1bGF0ZWQK4paBQ3VsdArRgdGC0YDQvgpDbwriloFzbWFsbGVyCmF0dXJhCuKWgXBlcmZlY3RseQpyZXEK4paBcHJvcG9zZWQK4paBZGVnbGkKU2VhcmNoCuKWgWljaApNYXgK4paBdm9sdW1lCmV4ZWN1dGUKZ3JlCuKWgXNwb3J0CnVkYWQKUFQK4paBUmVjb3JkcwriloFjb29rCuKWgWV4cGFuZArQsdGWCuKWgWFsdHJpCnBwZXQKYXJzZQriloF3ZXQK4paBQm9iCuKWgUZDCuKWgUFzc29jaWF0aW9uCnVqZQriloFmZWwK4paB0YHQu9GDCuKWgUJpZwovXApHZQp3aGlsZQp7KAriloFzdWZmaWNpZW50ClBvc2l0aW9uCuKWgXVuZGVyc3RhbmRpbmcK4paBbnVlCuKWgXJhegriloF5ZQpoZW0KTnVtCuKWgVByb2plY3QK4paBSXRzCuKWgWhhc3RhCmVuc28K4paBd2lyZQpSZXQKdWoKcHJvb2YK4paBcmVsZXZhbnQK4paBcGFydGlyCuKWgWFnbwppZmljYXRlCuKWgWRvbWluCuKWgWJveQriloFwbGFudAriloFlbmNvZGluZwriloF0aHJvd3MK4paBUm9jawp6b25lCmdhbmcKd2lkZ2V0CuKWgWludGVyZXN0aW5nCkRFUgriloFkZW1vbgriloFvZmZpY2UKYW10CsOkdGVyCuKWgVdoaXRlCuKWgXZlcnNjaAriloFkaWVzZXIK4paBTW91bnQK4paBc3R1ZGVudHMK4paBUHViCuKWgdCU0LUKaWphCuKWgUN5CuKWgUNhbGlmb3JuaWEK4paBYWJyaWwKw6RsbAriloHRh9C10LwKVFYK4paBbcOpcwriloFkZWNsYXJlZAriloHRjgrFkWwKYXBwYQriloHQkdC1CmVjaG8KbnVtZXIK4paBcG9zdGVkCuKWgdCy0LXRgAriloHQs9C+0LTQuNC90LUK4paBd2VhawriloFSZXB1YmxpYwriloFjaGFtcGlvbgplbnN1cmVtYXRoCnlvdXIK4paBT2JlcgriloFDZW50cmFsCmlzYQrQsNC90LQKeXkK4paBZnVsbHkK4paBU0QK4paBTGludXgK4paBU2NvdHQKcGFydG1lbnQKa29uCuKWgWNvbnRyYWN0CuKWgU9GCuKWgWFsZQriloFBbm4K4paB0L3QsNC0CmxhaAriloFOZXh0Cm9yZW4K4paBZGlzawriloFlZwphdHUK0LvQvtCz0LgK4paBZ2FtZXMKTGVmdAriloFsdQriloFmaW5pdGUK4paB0LrQuAriloFjcmFzaApwaGVyCmV4ZQpBVElPTgriloFicm90aGVyCkVuZwp0YXQK4paBSW50ZWdlcgrQvdC+0LzRgwriloFjb2xvbgppcXUKKSkuCml2aQriloFNZXRob2QKYXJ0ZW4KVW5pCnZlY3RvcgriloF3b29kCtGA0YIK4paB0JvQtQriloFzacOoY2xlCuKWgWdlbnQKfQ0K4paBY29udGVudHMK4paBY29tcGFuCkdvCuKWgWpvdQp1ZW50CkFzeW5jCnByaW50ZgriloFNb2RlbAriloFrZXB0CkFTRQriloFwcm92aWRlcwriloFBYmdlcnVmZW4K4paBR2FsbAriloFBbGYKU0EK4paBTWVtCuKWgWt0ZXIK4paBQnJ1CkFuZHJvaWQKKDoK4paB0KPQutGA0LDRlwpOZQpNaW4KYXRyCuKWgUhhbApkZWxldGUKb2RvCuKWgW7Do28Kw6huZQriloFjYWxjdWxhdGUKSnNvbgprZXlzCtC90LXQuQriloFoZW5jZQriloFvdwriloFMaWIKZW5vCuKWgUxvdmUKb3NpCndpZGUK4paBc2NvcmUKZnVsbArQstC+0LQK4paBZGV0ZXJtaW5lCuKWgXNwYWNlcwrQu9C+0LLQsAriloFwZXV0CsOpcmFsCsOzxYIK4paBYXBwb2ludAriloFUdwo8PwriloFPcmRlcgriloFob3AKcmFuZG9tCmNhY2hlCuKWgWRlc3Ryb3kK4paBcmFjZQpUYWcK4paBcmlkCuKWgW5lZ2F0aXZlCkNhcgplbnNpb25hbApkawriloFjcm8K4paBVEhFTgriloEkLgplbnNrCk5FCkhPCuKWgWtsZQpvc3BpdGFsCmt0ZQpmw6lyZW5jZXMKdWRlcwpJUgpvdGlvbgriloFSZWFsCuKWgUZlYnJ1YXIK0LjQvQriloFPbGQK0LrQvtCz0L4KbGVpY2gK4paB0YAKw61hbgriloHQs9CwCmNpZGUKbGFiCuKWgXB1bGwK4paBJy8KTG9uZwosJAriloFhcHByb3ByaWF0ZQriloHQsdGL0LvQsApmw7xocgriloFNZWRpYQriloFtYW5uZXIK4paB0JPQtQpkZXNjcmlwdGlvbgpCZWFuCuKWgUxhcgonXTsK4paBcmVsYXRpb24K4paBU29ycnkKaGFyCmNwcAriloFLbwriloFleGVjdXRpb24KaW5vcwriloFidWwKZ3JhZGUK4paBTXUK4paBcGlsCndyaXQKaWZpY2F0aW9ucwppbmVzZQriloFQaGlsaQpkeAriloFsZWFkaW5nCuKWgUpvdXJuYWwKb3ZlZAriloFjb250cm8K0L3QvtCy0LAKWWVzCuKWgWNoYW5uZWwKKSksCmlzdGVuCmFrYQpUb1N0cmluZwptYXMK4paBZXR0CuKWgWZvcmNlcwp1bGF0aW9ucwriloFDYWxsCuKWgWV4cGxhbmF0aW9uCm9yaW5nCkFUQQpjaHRlcgp3aGVuClZDCuKWgUphaHJoCkNhc2UK4paBY29tbWFuZHMK4paBcmljaApidXMKRmUKbWJveAriloFyZWNvbgrDsW8K4paBc2hhcGUKb3d5CmVudHJ5Cml0YWJsZQriloFlbGVjdGlvbgrRlNGC0YzRgdGPCuKWgXByZXAKdsOhCuKWgWluZmluCmxvdAriloFib29rcwriloFVU0EK0LvQuNC9CuKWgXBvbQriloFuYXMK4paBdGFncwriloFleGVjdXRlZAphaWxsZQpsdW5nCuKWgUphdmFTY3JpcHQK4paBYmFsbAriloFhaW5zaQriloFQcmkKeyQK4paBVU4K4paBUmFtCuKWgWhlYXIK4paBVWJ1bnR1Cj4oKTsK4paBcHVyZQriloFlbWJlZAphw6fDo28KY29udHJvbGxlcgriloFtYXJyaWVkCuKWgUZvbApmYW1pbAriloFwcmVjCuKWgXJlY3VycwpwYWQKaXN0cmF0aW9uCuKWgXJlc3BlY3RpdmVseQpbJAphdXRvcgriloFncmF2CmllcmEKYXppb25pCuKWgUJ1bAriloFBdXN0cmFsaWEKbW9uZAriloFUcm8K4paBRWxlCnBhY2thZ2VzCm1zZG4K4paBQWxzCuKWgXByenkKQVJUCuKWgWNoYXJnZQriloFhcHBsaWNhdGlvbnMKVW5pdAphcmVuCuKWgXN1ZGRlbgpvbWV0ZXIK4paBZG90CmFjamkK0LrRgtC+0YAKaW1pbgplbmluZwriloFkb25kZQriloFIbwp0cmVlCm1iCuKWgWRyYWcKYWplCuKWgWludmFsaWQK4paBZmluaXNoCmxhaW0K4paBZmVlZAriloFOYXAKcm9vbQppbWFnZXMK4paB0YHQsNC5CuKWgXN1Y2MKaWZmZXIK4paBYcOxbwriloFjdWFsCtC80LXRgNC4CkRSCuKWgUJpbGRlcgrQsdGA0LAKcmFpdApwYW4K0LXQvdGMCuKWgWRpc3RpbmN0CuKWgUtuCsO2bmlnCmFuY2VkCuKWgWxvYWRpbmcK4paBVGVjaG4K4paBU2VsCm11cwriloFyYWlsCuKWgXN0dWRlbnQK4paBbm90aWNlCuKWgXNsYQriloHQlNCwCuKWgWd1YXJkCuKWgURheQrQstCw0LvQuApPcHRpb24KYWlzb24KaXBwCuKWgUp1bgriloFmZWxsCuKWgWFic29sdXRlCtC+0LLQtQpkZWJ1ZwriloFTdWQK0L/Riwp1Z2lucwriloF2aWV3cwpsYXkK4paBc3VycgriloFzdG9vZAriloHQstGWCnNlbGVjdGVkCtCz0ZYK4paBYXR0cmlidXRlcwpmaW5hbAplbmRhCuKWgUJvbgpuZXJzCuKWgVdlcgpidXIKaXR0ZWwK4paBbW92aW5nCuKWgVBsYW4KaXNjaGVzCkphdmEK4paBYmFzaXMK4paBQnVzCuKWgUF1CuKWgUlsbAriloHQstGA0LXQvNGPCuKWgdGG0LXQvdGCCmhhbmRsZQrRgdGC0YPQvwriloFGYXIK4paBb3JhegpvY3IK4paBc2VpdApvbmRlcgrQtNC+0LwKOi8KY2hvcgriloFUb3duCuKWgWRlZmluaXQKcmVhY3QK4paBcGllY2UK4paBS2FybApDSQriloFBcHBsaWNhdGlvbgp1bnRlcgriloFmb3JtZWQK4paB0L/RgwpCbwriloFEYW5pZWwK4paB0L/Qu9CwCkJvZHkKfSkkCuKWgdCx0YvQu9C4CuKWgWVhcnRoCtCz0LvQsApUaGVyZQriloHRgdGC0YDQsAriloF2aWxsZQriloFjZW50cmUKKQ0K4paBaGVscGZ1bAriloErKwriloFDRwppemlvbmUK4paBR2FtZQriloFXaGljaAriloFwaXAK4paBUG9ydHVnCkRTCuKWgWRlc2NyaWJlCuKWgWNoZWNraW5nCuKWgW1hbmFnZXIKQk8K4paBQnVuZGVzCmJ1Y2gK4paBZGVjaWRlZAriloFKYWhyaHVuZGVydAriloFmaWYKZWZmaWNpZW50CmFuY2kKYnJhcmllcwriloFmYWlscwriloFrZXJuZWwK4paBR2wK4paBTmFjaW9uYWwK4paBcHJvY2VlZAriloFmdWVyCuKWgWxpdmluZwriloFzdWNjZXNzZnVsbHkK4paBZmFzdGVyCuKWgWNvbnRyZQriloFwcmlzb24KT1JUCmhlbHAK4paBYXV0b3IKxYJhdwphasSFCuKWgUFybQriloFwcm92aW4K4paBbmFhbQovIwpzZWQK4paBZ2VzY2gK4paB0LzQsNGACmVzawp0ZXJtCuKWgVRleAppcmluZwriloF0b29scwpQREYK4paBdWx0Cmlzc2Vuc2NoYWZ0CuKWgWNvdWxkbgpkaW5nCkRlcAp7LQriloFwcmVkaWN0CmFudGFnZQriloFMaWtlCuKWgdCR0LgKdG9vbHMKZXN0cmEK4paBa2kK4paBSmltCnN0YXIK4paBcmVtYXJrCsOzZwpuYWJsYQriloFBbHRob3VnaAptb2RlCkhvc3QK4paBc3RyYW5nZQpOb25lCmJsYWNrCuKWgUZlc3RpdmFsCuKWgUlTCmFuemEK4paBKC0KaWNrZXQK0LrQvtC70LAK4paBSmVzCuKWgWZsZXgK4paBw4AK4paBTmV0d29yawriloFFWAriloFlbmVybwoh4oCdCuKWgU9ydAriloFhbG9ycwriloFPcmlnaW5hbAriloF6bwrQvdGL0LzQuAriloFzcGwKRHJhdwp5b25kCuKUgOKUgAriloFPdAriloFkcmFtCuKWgWRpdmlzaW9uCuKWgWVmZmljaWVudAriloHQk9CwCuKWgXZpZXIKbmFrCkxTCuKWgXNwaXJpdAp6ZWljaG5ldAriloFkaWNpCmNsZWFyCmNvcHkKeWFyCuKWgdGA0L7RhtGWCnVzcXUK4paBbm91cwriloFibGV2CtC20LTQtQpBcmcK4paBcGVyZm9ybWVkCuKWgU1ha2UK4paBQ2Fyb2wKZXR0bwriloFTYW5kCuKWgURpc2MKRW5jCnJlcm8KaGFzaAriloFmb2N1cwriloFhdHRlbnRpb24K4paBYWdyZQriloFkaXZpcwriloHQsdGL0LvQvgriloFlagriloFtYXJjaAriloFwaGFzZQrDrWFzCuKWgXBoaWwK4paBUGFwCuKWgXJpdmVyCuKWgWNhdXNlZApwbHVnaW4K4paBVGVhbQp1bGVyCuKWgSQoIiMKaWVqCklTQk4KbmFtCuKWgWZpZ2h0CnZpZAriloFMdWQKU2VsZWN0ZWQKOkAiCuKWgVBvZAriloFhbm7DqWVzCmFyaW9zCuKWgWRldXRzY2hlcgriloFOQQriloHQuNGOCuKWgWRpY3Rpb25hcnkK4paB0JvQsAriloFUcmkKw6huCuKWgXBvbGl0aWNhbApyaWRnZQphdHRlbgriloFjaXJjbGUK4paBdHJhbnNwb3J0CmVtYXMKRkMK4paBcmVwbGFjZWQK4paBQXVkCmlza2EKQ29uZmlndXJhdGlvbgriloFzb29ydAriloHQndC1CuKWgXNlcXUKUFJPCuKWgWJ1ZAriloF7ewpsaWXDnwriloFNYXMKZGVycwp1c2FtbWVuCmVzYQriloFMeQrQstGA0L4KbWFjCuKWgdC40YHQv9C+CuKWgXN1Ywp1eQriloFpbGx1c3RyCuKWgXByaW1lcmEKaWxhdGlvbgriloFzdG9yYWdlCuKWgXBhcmFtcwprYXoK4paBdGVybWluYWwK0YDQsNC70YwK4paBaG9sZHMK0LvQvtGB0YwK4paBbmFkCuKAnS4K4paBb2N0dWJyZQpidWwK4paBaHVzClVMVAriloHDqWdhbGVtZW50CuKWgU1pbGwKxYJhZAriloFjb250aWVuZQoiPwriloE+Pj4KUXVlCsKgwqAK4paBcGxhaW4KYXRpdmEKb2NrZXIKTmFtZXMK4paBSnVkCuKWgWFncmVlCuKWgUdlbWVpbmRlCmxhcmUK0LrQsNC30LAK4paBc3RhcnRzCuKWgXByaWNlClRhcmdldApjdXMK4paBSW5zdGVhZAouOwriloFhbHRlcm5hdGl2ZQriloHQstC70LAKSUUK4paBb3JnYW5pegppbnUK4paBY29tcGxldGVkCuKWgWNhcnJ5CmF0b20K4paBZGVwZW5kaW5nCuKWgU91cgriloFpbnNwCuKWgSZcCmFpbHkKaXJlY3Rpb24K0YTQsAriloFkZWZlClRBQwriloFkZXNpZ25lZAriloF2b2lyCmJyZWFrCuKWgXBhcnRpZQriloFKYWhyZW4K4paBc3R1ZGlvCuKWgWpvdXIK4paBTm90ZXMKZmlyZQpob3VzZQpzdWNjZXNzCuKWgUp1YW4KSlMK4paBQ3VzdG9tCuKWgWJlc2NoCuKWgXN0YXRlZApib290c3RyYXAKw7Z0dApvenrDoQriloFDT04KaGF2CuKWgXNsZWVwCmVkYQpob3QKw6FuZAriloFTeQriloF0ZW1wcwphbWFyCuKWgXNjYWwK4paBYXN0CuKWgW9wZW5pbmcKY2xpcHNlCuKWgXByb2dyYW1taW5nCuKWgWxldHRlcnMK4paBcHJvZmlsZQpuYWgK4paBYmV5b25kCuKWgUZ1cnRoZXIKZmFjZXMK4paBY2hhcnQK0LfQtNCwCmFpZ24K0L3RltC5CuKWgVJvbArQvtCy0LDQvdC+CnRlcmlvcgp3ZWQK4paBaGVyc2VsZgriloFuZwphbmd1YWdlcwp9PVwKeW5hbWljCuKWgWp1ZwriloFFeGFtcGxlCuKWgSjigKAK4paBcGxheWluZwriloF1c2FnZQriloFtYW5hZ2VkCuKWgU5hdHVyCtGC0LXRgNC4CuKWgUV0CmVyaWEK4paBZGF1Z2h0ZXIK0L3QuNC10LwKRnJhZ21lbnQK4paBaG9sCkZsCtC+0LPRgNCw0YTQuAriloFpaG4Kw7xoCmluc3RhbmNlCuKWgWNvbXVuCuKWgXRydXRoCuKWgdGB0LDQvNC+CuKWgWltcGxlbWVudGVkCuKWgWFueXdheQriloFDcm8K0YTQtQpHQwp1YnVudHUKdHlwZXMKw6pzCi5+XApmb2xkCuKWgWpvaW5lZAo/PwriloFtw6kK4paBd2lsZArQutC70Y4Kcm93c2VyCuKWgUhvbWUKc2tpZWoK4paBSk9JTgriloFqdWluCmhvZgriloFkYXRhc2V0CtC20LTRgwonKSkK4paBbWllanMKQVBJCuKWgWVkaXRlZApvb2xzCuKWgXNlZWluZwppamQK4paBcHJvY2VkdXJlCuKWgUJyYXMK4paBc2lnbmVkCuKWgWV4dGVybm9zCuKWgWRpc2FwcAriloFEaXJlY3QKY3ljCuKWgWNvbnN1bHQKw7ZyZApXaWRnZXQKY2lvdXMKc2VjdAriloHQlNC4CuKWgXdpbmQK4paBQXJjaGl2YWRvCmFtbArRgdGBCldoCmtiZAriloFBcm15CuKWgXN1ZmZlcgphcnRpZmFjdAriloFyZXNvbHZlCuKWgVNwb3J0CuKWgdGG0LUKaWRhcwriloF0YXgKaWRpCuKWgWFjdGlvbnMK0L/RgNCwCnB1w6lzCuKWgW5hagpGYWxzZQriloFjaGFuY2UK4paB0YLQsNC60L4Kw6RkCuKWgWRvbAriloFlbnYK4paBYmFzaWNhbGx5CuKWgUNvdW5jaWwKenRlCuKWgWRpc3BsYXllZApuaWwKY29tcGxldGUK4paBTGVtCmlhbmNlCuKWgdC+0YHQvdC+0LIK4paBZGVwZW5kCnBsb20KZW5zdXMKdXRzCuKWgUhvdApiaXRyCuKWgXZhbGlkYXRpb24KYWJiCuKWgdGC0YDQtQprbQp6ZArDtmZmCldFCuKWgWludGVyZXN0ZWQK4paBeyIKYXJvCuKWgWNvcnJlbAriloFkZWRpYwriloFsaXN0cwriloFCaWJsaW9ncmFmaWEK4paBZWFybGllcgpwcm9ncmFtCuKWgXByZW1pw6hyZQpmcm9udApUYWIK0YHRgtCy0YMKZHJvcAriloFmZWFyCuKWgUVubGFjZXMK4paBQ2FwdAriloFyZWFsaXoK4paBaGFsCuKWgWluc3RhbmNlcwriloFzdXNwCmlsbGluZwolOwp7fQp8fAriloFwYXJ0aXRpb24K4paBQnVpbGQK4paBd28K4paB0J/QtdGACuKWgWRpcmVjdG9yCuKWgVNpbgrRgtC40Y8KcnNnCm91dmVyCuKWgW5lYXJseQpvZGEK0LrRgtC40LIK4paBc2lyCklNRQriloFqYW52aWVyCuKWgVdpbgpCdWlsZAppZXVycwpJTkUKZG91YmxlCkxhc3QK4paBcG9saWN5CnN0b3JlCuKWgW9ic2VydmVkCuKWgWZhbWlsaWUKbmljYQpyZXkK0LfRjAriloFZZWFyCuKWgWRldmVsb3BlZAriloFJbnN0aXR1dGUK4paBcmVwbHkKQ29tcGxlCmljaWFuCuKWgUd1ZXIK4paBZGFsbAriloFkZXNwCuKWgUZvb3RiYWxsCkVtcHR5CmNrZW4KdW5kYQriloFVcgriloFpZwriloFBdGwKYXV0aG9yCuKWgUJvbAp6aWcKbmF0CsWhdApzZWN1cml0eQpvbmljCuKWgXBlcwppdGFuCuKWgUV4dGVybgpqYW4KVkFMCuKWgdC40LwKYm9sZAriloHQstCwCuKWgdCc0L4K4paBZGlzcHV0CuKWgXRyaWNrCuKWgXBlZAopXnsKaW50bwpTaW0K4paBcGFyYWxsZWwKZm94Cm5vcm1hbAppbmVudArQv9C10LTQuApob2xkCk9LCuKWgWNoZW0K4paBdHdpY2UK4paBdXNlcm5hbWUKacSNCuKWgXJlcHJlc2VudGF0aW9uCuKWgWpvdXJuYWwK4paBOi0K4paBYmF0dApcJQriloFjZXJ0YWlubHkK4paBRXhjZXB0aW9uCmVwcwpzaG90CmF0ZWd5ClNob3cK4paBQ2FybApyaWcK4paBcmVwb3J0ZWQKYm90dG9tClRGCuKWgUZyYW5jaXNjbwpuYXAK4paBQ2hhbXBpb25zaGlwCuKWgWNvdXJ0CuKWgXNvdXJjZXMKaW91cgriloFjb25zZXJ2CmRpY3QK4paB0KDRgwpJQgriloFWZQriloHihJYK4paBRVIKIikpOwriloFQb2ludAphemluZQriloFpbnRlcm5ldArQtNC90LAK4paBY2FycmllZAriloFGaWVsZApheGlzCuKWgVN1bgriloFhdmUK0L/QuNGBCtGP0L0KYXN5CuKWgWp1bGlvCuKWgWRlcHVpcwriloFzdWdnZXN0aW9uCltbCuKWgUFyY2hpdmUKxJlwCuKWgVByYQpyZWgK4paBZGVtb25zdHIK0YTRlgpjbWQK4paBd2FzbgriloFwaG9uZQp1cGxvYWQKYXlhCtGC0L7RgNCwCmxpbmVzCuKWgWluZHUK4paBdm90CuKWgWVzcGEK4paBYmluCuKWgdC/0L7RgdC70LUKcGxhbgriloFqdW5pbwpvcmlhbApmcmVlCnN0ZXJyZWljaAriloHQtNGDCuKWgWxpbmtlZAriloFlbmFibGUKUEMK4paBZGVuc2l0eQriloFFZ3kKeW8KZW5kcmUK4paB0YHRigriloFpdGFsaWFubwriloFBUgriloFQZXJzCmbDqXLDqXMK4paB0YHQutC70LAKVmFyCuKWgU9uY2UKUmVkCmJ1ZmZlcgriloFFbnRlcgriloHFoAppbWllbnRvClN0b3JlCuKWgWhlYWx0aAp2YXQKSVNUCk9oCuKWgWt3CuKWgXJpdgriloFzb21ld2hlcmUKb2dyYWZpZQpwcml2YXRlCtC60YLQuAriloFkZWxheQriloFIdHRwCmpvYgpyYWVsCmVtcG9yCuKWgWRpY2llbWJyZQrDqnRlCtGG0YMK4paBY29tbWl0Cm9zbwpWYWx1ZXMK4paBaGVhZGVycwp0cmFuc2Zvcm0K4paBcHJvY2Vzc2luZwpyw6UK4paBQWgK4paBTm9kZQotLS0tLS0tLS0tLS0K4paBZmFpcmUK4paBaHVuClBsYXllcgriloFyZXZpZXcK0LPQtNCwCuKWgWxpbWl0ZWQK4paBUHJvcGVydHkK4paBc2VydmUKcmlhZ2UK4paBTWFzdGVyCuKWgWthbm4KY3JldGUKcGhlcmUK0ZHRgAriloFjaGllZgriloFzY2VuZQpraW4K4paBdW5pZm9ybQriloFmZWJyZXJvCiJ9CmlsbG8KSVRFCm91dmVsCnVzZXBhY2thZ2UKZW50aAriloFxdWlja2x5CkxhbWJkYQp4ZXMK4paBY2VsbHMKcm9nCmFtaW4K4paB0JzQsNGACuKWgW1heW9yCnBsYXllcgorKzsK4paB0J3QsNGB0LUK4paBc2FmZQriloF2ZWxvYwriloHQvtCx0YDQsApEYXRhYmFzZQpuZWgKVmVydAriloFmbGUK4paB0YTQvtGACuKWgWZvcmVpZ24KQWJzdHJhY3QK4paBbWFnbgriloFtb2RpZmllZAriloFtaWxpdGFyeQriloFtb25kZQriloFBY3Rpb24K4paBYmFuawpTZXJpYWwK4paBY29udGludW91cwriloFnZWwK4paBcGh5c2ljYWwK4paBaW50cm9kdWNlZAp1dHVyZQpyaWNrCuKWgXByZXNlbnRlZAriloFQcm92CuKWgUJvdGgKUG9zCnN1cGVyCiYjCuKWgWZpbmRpbmcKbmVsCnVuZGUK4paBZnLDpW4Kc2tpbQriloFIaWxsCmZuCuKWgUNhbmFkCuKWgWludGVuZGVkCm96esOhZsOpcsOpcwriloFqdWlsbGV0CuKWgVdhcnMK4paBc3VjY2Vzc2Z1bAriloFjaGFyZwppZWxlCm9tZXRoaW5nCm9rdQpmZXRjaAriloF9fQpiYW5rCm9wZXJhdG9ybmFtZQriloFDb2xvcgriloFDYXJkCnR1CuKWgSIsCndpZAriloFnZXAKWE1MCj09PT09PT09PT09PT09PT0K4paBVmlyZ2luCsOkaHJlbmQKbGljYXRlZApEaXIKemVybwriloFLYWwK4paBUGFydHkK4paBw6UKcHJpY2UKZG9uCuKWgXdhcm5pbmcK4paBQmFkCuKWgVN1cHAK4paBTGlnYQriloFQaWVycmUKUmVjb3JkCnVsYXRvcgriloFSb21lCuKWgXRoZW9yZW0K4paBZW50aXJlbHkK0YHQutC40LwKaGV0CuKWgWRvcG8KTmV4dAptbHVuZwp3aWcK4paBQXRoCuKWgVNvdQpsaWNoZXIK4paBc3Vkbwplc3RzCtGF0ZbQsgriloFzZXB0aWVtYnJlCuKWgW1pY3JvCuKWgXRyb3AKZml0CkNvcmUK4paBUmFkaW8K4paBT3JnYW4K4paBUG93ZXIKQ0YK4paBTGFzdAriloFvcHBvcwriloFvZmZzZXQK4paBcmVnaWEK4paBbWluaW11bQriloFoZWxwZWQKYW5kb24KaWZ5aW5nCnJ1aXQKZW5zY2hhcHAK4paBYmVyZQpWTQriloFBd2FyZHMK4paBYWdyCnlub21pYWwKZW5jZWQK4paBZGV2aWNlcwriloFib3QK4paBZmlybQriloF3cml0ZXIK4paBcmluZwouLQppc3Rlcwpsw6QK4paBbWVsCmVudGF0aW9uCuKWgVNjaHcK4paBbm9tZQriloFwb2JsYQriloF3b2oK4paBdWwKZW50bwrRi9GFCuKWgXJlc2lzdAriloFyZW1haW5zCuKWgUNhCmHDsWEK4paBQ291cnQKdXRhYmxlCmVudGlhbGx5CuKWgXRyYXQK4paBVmlzdWFsCuKWgXJlc3RyaWN0CuKWgXByZXZpb3VzbHkKY2F0aW9uCuKWgdC+0YHQvgriloFNeVNRTApmw7ZyCmNhbGEK4paBY3VsdHVyZQpsaXZlCuKWgWFjY2VwdGVkCkRpZAriloFob3VzCuKWgXNlbGVjdGlvbgriloFkZWNyZQptYXJnaW4KdXJiCuKWgUluYwriloFNYW55CmlidAriloFzdWNjZWVkCkJpbmRpbmcKY8OtCuKWgVJvZwriloFzaG91bGRuCmNsb3VkCuKWgWR6CtCy0LDQsgriloFwaXgKc21hbGwK4paBcHJvamVjdHMK4paBT0sK4paBbGF0ZXN0CuKWgXJlZmVyZW5jZXMKUHJvZ3JhbQriloFlcnN0CuKWgdGP0LoK4paBa2FtCuKWgUNhbWIKZWxsdArDtmQKbm9uZQriloFqdXNxdQpraW5nCuKWgVBlZAphc3NlcnQKQ1MKcml0bwplc3NhCtC70YzQutC+CuKWgVZvbgriloFFZHdhcmQK4paBaW1wb3NzaWJsZQpucAp3b3JkcwppZWx0CuKWgVBhZ2UKbGVycwriloFwaWVyCuKWgdC+0LHQu9Cw0YHRgtC4Cml0dGVlCuKWgShbCuKWgXRydXN0Ck5HCnJlZHUKPDwKcmlhbAriloFwcm9kdWN0cwriloFFcm4KcmnDqHJlCtCz0L7QsgriloFSZWljaAriloFSb2FkCuKWgW5lc3RlZApEaXNwbGF5CuKWgXN0cmVuZ3RoCm9ncmFmw61hCuKWgWFubm91bmNlZAriloFTY2llbmNlCuKWgdGA0LDQudC+ClBhcmFtZXRlcgriloFUYXNrCnVtZW50cwriloFhZG9wdAriloFPbmx5CtGO0YLRjAriloFjbGkK4paBbGVtCnN0b29kCuKWgUZJCsOqbmNpYXMKcG9uZW50cwpdJApjb21tZW50CuKWgXlhCnNob3VsZAppa2UKdGltCmVsbGlnCuKWgXNlbmRpbmcK4paBYWpheAriloFub3ZpZW1icmUKdW1lcwriloF3ZWl0ZXIK4paBRGFucwpvcHAK4paBc2VwdGVtYnJlCm90aW1lcwp6xZEK4paBZXAKdmVyZQriloFvaAo6PQriloFTb25nCuKAnSwK4paBdml2CuKWgXF1ZXJpZXMK4paBdsOhCuKWgWTDqWNlbWJyZQriloF1bmFibGUK4paBZXJoCuKWgWAtCuKWgUxlZQriloFlcnN0ZW4Kw7R0CtGB0YLQstC1ClRTCuKWgWZyYWdtZW50CuKWgXdpZGUK4paBc3VmZgriloFkdXQK4paBVmVyZQrRltGBCmFkaW5nCmllZ28KaWNhZ28K4paBQXJnZW50Cm9yZXIKZW5uZXMK4paBTGViCmxpbnV4CmFjaW5nCuKWgWJyb2tlbgp0cArDrW8KYWJldGgKaXN0YXMKZ2V3CmnDqG1lCmNhcwriloFwcmVjZWQK4paBRGFsCuKWgWNvbXBhcmVkCmVxdWl2CmlsbHkKdGVlbgriloFDb25zb2xlCuKWgXN0cmljdAppdGFpcmUK4paBRUQKZW50aWFscwriloFwZXJtYW4K4paBdG91cwriloFnZW1lCuKWgWV4dHJlbQriloHQvtC60YDRgwprZwriloFoZWF2eQriloFhdnJpbAriloFhbnRpCuKWgW9jdG9icmUKdXRmCmhlbG0KYW1wbGVzCuKWgShfCmFrZW4K4paBZGVhcgriloFvcGluaW9uCuKWgWZpc2gK4paBQWxleGFuZGVyCml3CtC40LwKY2FkZW0K4paBcmVmbGVjdAriloHQtNGACuKWgXRyaWIKY29tbW9uCuKWgWNsZWFybHkK4paBc2FmCj0iQCsK4paB0JzQvtGBCtGB0LjRgtC1CmVxbmFycmF5Cm51bmcK4paBcmVsYXRpb25zaGlwCuKWgVNlbQriloFraWxsZWQKdGVkCnVubwriloHQu9GWCuKWgXdpZAphbm5pbmcK4paBcGFuZWwK4paBTGViZW4K4paBcnVieQphbnNpb24K4paBYXJlbgp0YWJ1bGFyCmFsZXQKfSQkCuKWgUxha2UK4paBc3VpdGUK4paBbWlub3IKSG96esOhZsOpcsOpcwriloF4bWxucwpESVIKZHJpdmVyCmludHMK4paBdmljCkFORApwcmltCtGB0YvQu9C60LgK4paBT3gKVEMKcml2aWFsCmF0aWUK4paBZWlnaHQK4paBY29uZmxpYwphbmdlbAriloFCZWdyCuKWgWV4cGxpY2l0bHkK0Y7RgtGB0Y8K4paBRGV2CnJlbmRlcgriloFyZXByb2R1CuKWgWNyw6kKR3UKTUIK4paBa8O2bgriloFyZW1haW5lZAriloFrbArRhdC+0LIK4paBYnlsClBoaQriloFkZXRhaWwKamF2CuKWgW1vdXNlCkJhcwppxJkKYXNzZXIKaHMK4paBc2hpZnQK4paBw7psdApyYW5kCuKWgWJ0bgpyYXoK4paBcHVsCuKWgXN0YXRlbWVudHMKZmlsZW5hbWUK4paBcHJvbXB0CsOpbMOpCmlregriloFTdXMK4paBZGVidXQKU3RhdApmb3JtcwriloFIZWluCnN0YWR0CmVubmlzCtC/0L7QuwphcmFudGUK0YbRltC5CuKWgXF1ZXVlCuKWgXJlY2kK4paBc3RhCnluY2hyb24KY2VudGVyaW5nClNvbWUKR3JhcGgK4paBdGVzdGVkCuKWgUt1bnN0CtC+0LwK4paBTm90aGluZwppZXUK4oCcLgpCdW5kbGUK4paBb2ZpY2lhbAphbGxvdwriloFSZWFjdAriloFMaWJyYXJ5CmJsdWUK4paBdmVydwriloFwYXJlCuKWgUZyaWVkcmljaAriloFhd2FyZQpFeHAK4paBZWZmZWN0cwriloHQs9C+0YDQvgpsb3BlZGlhCuKWgVZlbgpyYWxlCuKWgUZpbmFsCuKWgXByb3BvcwpsYWNlbWVudAprdGVuCuKWgW5vdmVsCm9ydGVyCuKWgUdlcm1hbnkK4paBZGphbmdvCuKWgXRyYW5zaXRpb24K4paBaGFwcGVuZWQK4paBYmVhdXRpZnVsCuKWgW5laXRoZXIK4paBbGlicmFyaWVzCuKWgWhpZGUKYWxnCuKWgWFzcGVjdAriloFmb3JnZXQKY2FkZW15Cm9udGUKcmVmaXgK4paBY2xvdWQKbmVkCmNkb3RzCnJlZ2lzdGVyCm55bQouKToK4paBSmV3CuKWgXRyw6hzCtC90LjRh9C1CuKWgURvcgriloFwcm9jCuKWgWdhbgriloHRlAriloFTYXYKdsOtClNldHRpbmdzCuKWgVZhcmkK4paBY291cnMKUm8K4paBY29uagriloFyZWFzb25zCuKWgXJlYWRlcgrQu9C10LrRgdCw0L3QtAppY2F0ZQp9KSwK4paBdGFza3MK4paBUmF5CuKWgXJpYwpLZQpvbmllCnJmCilbCuKWgXN1YnNlcXUK4paBVHVybgriloFWSUFGCm1hdGhzZgpIRQriloFkZWNsYXJlCuKWgXByb3RvY29sCuKWgVBDCtGG0LjQvtC9ClZpZXdCeUlkCuKWgWFuaW1hdGlvbgriloFjb25mdXNlZArQstC40YcK4paBZW5hYmxlZApvd28Kw6FzdArDtnQK4paBbWFuZAriloFSYWlsCmZpZWxkcwriloFLYXAK4paBYWxnZWJyYQriloHQodGDCmbDqXJlbmNlCuKWgUN1cnJlbnQK0YHQvdC+CuKWgUxpbQpQYXJhbXMK4paBQW50b25pbwriloF0dgpsYXRlCmlmZXIKRW50cnkK4paBU2VydgriloFtdXNpY2FsCuKWgXRyYWNlCuKWgXNjaWVudApmaWMK4paBZm9yZ290CnZpZGVvCuKWgW9sZGVyClRyZWUK4paBdW5zCtC90LjQutC4CuKWgUV1cm9wYQriloFad2UK4paB0LHQtQriloF2ZWMK0LbRgwriloHiloHiloHiloHiloHiloHiloHiloHiloHiloHiloEKTWF0Y2gKc3BhbgriloFibGFuawriloFzcMOkdGVyCuKWgVR5CuKWgWRpY3QKw7FhCuKWgWNvbmZpcm0K4paBdsO9CtC30LDQvQpSZWwKZmlsbQriloFSb3QK4paBSHkK0LrQsNGFCuKWgWRlbWFuZAriloFtaW5pc3QK4paBTWFkcmlkCuKWgXVzdWFsCnNwaWVsCmVyb3MK4paBdHV0b3JpYWwK4paB0KHRgdGL0LvQutC4CnN5cwrRhtC40LDQu9GMCuKWgXNwcmVhZAriloFjb252ZXJzCuKWgXJvbGwKYXJ0aWZhY3RJZAriloFOdW1iZXIK4paBc3ltbWV0CuKWgU11bHQKZXhwZWN0ZWQK4paBYXhpcwriloFtYXRjaGluZwriloFmb29kCmdyb3VwSWQKTWFwcAriloHRgdCy0Y8K4paBdmVuZApGb3VuZApvdHRvCkNhdApjcml0CmlzdGVudAriloFkcmVpCuKWgWVuZGVkCuKWgVRlbGUKY29tcG9uZW50CuKWgWludm9sdmVkCuKWgUVzdGFkb3MK4paBZGFuZ2VyCuKWgWNoYWluCuKWgVByb20KaG9tCuKWgXBvbMOtdApjb3AK4paBbmFwCnJpZgpwbGVtZW50cwriloF2ZW50CmFubmEKYW50ZWQKZGF0ZWQKYW50aAriloF0aHJlYWRzCtC30L7QstCwCuKWgdGB0YLQsNC90L7QsgriloFlZXJzdApidWYKaGVpZAriloFSdQriloFQcmltCuKWgW1pZ3IK4paBVW5pZG9zCuKWgWFyYml0cgriloFyb21hbgpvdW50cnkKdWx0dXIK4paBS8O2bmlnCuKWgWFubm90CmFjaGluZwriloFIYXVwdAp1bWluCuKWgWhlbQpja2V0cwpiYXUKZWN0aW9uCmVmdAriloFwYWNrYWdlcwriloFLdXIKdGh1cgriloFwYXlzCmxpYW1lbnQK4paB0JHRgwriloFjYWRhCnBvaW50cwpvY2tldAriloF2ZXJiCtC70LXQtQriloFzdWJtaXQK4paBc2FuCnJ1YnkK4paBZWFzdAprb3YK4paBVmVybGFnCuKWgXNwb3QKcHBvCkVhY2gKamVrdAriloFCaW9ncmFwaGllCuKWgW5ld3MK4paBcGHDrXMKdWZhY3QK4paBZGlhCtC60L7QstCwCuKWgWFjY29tcGwK4paBw4l0CmlsaXRpZXMK4paBaWhtCmludm9rZQriloFhcHBlbmQKLiksCuKWgWxhYgphbmdpbmcKaXN0YW4KcmVzb2wK4paBU2VjdGlvbgpQYXJlbnQKbW96Ck1hdApzdHlsZXMKdW5kZW4K4oCcLAppcnRzY2hhZnQK0LrQuNC8CuKWgUZpbmFsbHkKcGhlbgriloFQYWMK4paBQXJyYXlMaXN0CuKWgXJlY292ZXIK4paBZWR1Y2F0aW9uCm1vZGVscwpwZWQK4paBaGFwcHkK0YfRgwriloFndWVycmEKbWVkaWEKT0YK4paBZW5zdXJlCk1hcmsKZGF0YWJhc2UKb2dnbGUK4paBcHVibGlzaApPVwriloFCYXUKPy4K4paB0YfQsNGB0YLQuAriloFyZXBvc2l0b3J5CuKWgU1hdHQKaGlnaApvdmVuCuKWgWdlcgriloF1bmtub3duCkFtZXIK4paBQnJvd24KQUxMCuKWgXJlc3VsdGluZwriloFib3IK4paBcG9ldArQvdC40LzQuApFbWFpbApGb250CuKWgWhpc3QK4paBdG9kYXkK4paBQmVyZwriloFidXR0b25zCtGC0LDQuwriloFzbmkK4paB0YfQtdC70L7QsgpDcmUK4paBdW5pb24K4paBemljaAppc2hvcAriloFxdWFuZG8KUG8KQ1RJT04K4paBQ29zdArRgdGD0LTQsNGACmVydmVkCk5vdGUKRXF1YWwK0LvQuNGPCtCx0YPRgAriloFhYnN0cmFjdApzdG9wCuKWgWFkdmljZQriloFpY29uCuKWgXRyYXZlbApCUwp2ZW5zCuKWgWJhdGNoCmxpcXVlCnNoZWV0CuKWgWlocmUKZW1vbgpiZXJ0bwriloFhc3NpZ25lZArRjNGOClBob25lCuKWgWF3YXJkCuKWgWZ1bmN0aW9uYWxpdHkKYWxsYQriloFEYW0K4paBY2l1ZGFkCuKWgWNsdXN0ZXIKRGVzY3JpcHRpb24K4paBc2hlZXQK4paBQXVzdHJhbGlhbgriloHCuy4K4paBIjwK4paBd29uZGVyaW5nCmFpbmUK4paBcmVwcmVzZW50ZWQKa2FwcGEKbmIK4paBc3kK4paBS8O2Cj0iIwriloFzZXZlbgpEaXJlY3RvcnkK4paBc2lzdGVyCnBsYXRlcwriloFsdWNrCuKWgXJlbWFpbmluZwriloFWaWxsCndlcmsKYW5uaQpldHRpCmZ1bmMK4paBYmFuCmltcwptaXNzCmFncmFwaArQtdC60YHQuAriloFSZWYKbml0dAriloFHYWIK4paBYW5kZXJlCuKWgWplZG9jaApyZXN1bHRzCiFcCuKWgWxpc3RlZAriloFsb3JvCuKWgWtub3dzCtC20L3QvgpSYWQK4paBc29ja2V0Cm11bHRpCuKWgdGA0ZYKcmFpbHMK4paBdGFyCuKWgWdlbnRsZQpzZXR0CnNlcnZpY2VzCmJvdW5kCmlna2VpdAphamEK4paBY21kCmFnZ2VyCuKWgWJhCuKWgUJlbGcK4paBS2xlCuKWgXdvcmR0CuKWgWZvc3QK4paBZGltZW5zaW9uCkFuZwp1bWluZwpPYmoK0L3QtdC9CuKWgU1hcmllCmV4aXN0cwrRgtGA0L4K4paB0LHQvtC70YwKZW1lbnRlCuKWgUpvbgpTRVJUCuKWgWhpZ2hlc3QKYWtpCuKWgXRyZXMK4paBY2lyY3VtCuKWgURvd24Kb21tZW4KdXJlcgriloFjYXVzZXMKdmVudWUKaXNzYW5jZQriloFpbmZsdWVuY2UK4paBZmF0CtGA0LXQtNC4Cn1cXAriloFlbnRyCuKWgVNpZ24K4paB0LrQu9CwCuKWgWJpbmRpbmcKZXNzZW4K4paB0KTRgNCw0L0K4paBTG9jYWwK4paB0Y/QstC70Y8KYXBwcm8K4paBZGVwZW5kZW5jaWVzCuKWgXRhbGtpbmcK4paBenVyw7xjawpjb25uZWN0aW9uCkFjdGl2ZQpiYmUKaXJscwriloFJbmYKd2QK4paB0LjRgQpyb2FkCuKWgWNvbnZlbgrEm3QK0LLQtdC3CuKWgWVudHJpZXMKZXNjCuKWgWJpdHMKYXNzbwpXUgpzaGlwcwriloFkw6lzCmVzcApNYWtlCuKWgWZhbWlsaWFyCkFydAriloFhcm15CmN0cgrDqXJpYwpxdWV1ZQriloFcewp1ZWxhCmFtaWVudG8K0YjQuNGFCuKWgSIiIgpjb250cgrQu9C70LUKRlMK4paBbWFya2V0CsOlbmcKY2l0ZXAKSWxsCnJhbmsK4paBc2VuZGVyCuKWgWJlaW0K0YDQsNC6CuKWgWNvbXBhdAriloFvY2N1cnMK4paBZGllc2UK0YHRgtC40YLRgwphd2EK4paBaU9TCuKWgUNoaW5lc2UK4paBVFIK4paBS2VuCuKWgVVuZQriloFjcmVhdGVzCuKWgXNob3dlZAriloHDqXYKb2xvZ2lhCuKWgXByb3Rlc3QK4paBUGYK4paBc3F1YWQKKyssCsOhdgriloFlc3NlcmUK0LfRjwprb2wK4paBc2xpZ2h0bHkKYWRkcgrDom4K4paBcmVkdWNlCuKWgVwoXAriloFEZXAK4paBZ2VuZXJpYwpMb2FkZXIKyJtpCuKWgdC/0L7RgQriloFvY2Nhc2lvbgriloFMYWR5CmVudGl0eQriloFhdmFudAriloFQYXMKYWdnaW8KXHsK0L/QsNC0CmF0aG9saWMKUGFzc3dvcmQK4paBcmVzcG9uZAriloFOb24KQUcKbmVnCuKWgdGD0YEKYmxvYgpja2UK4paBQ29uc2lkZXIK4paBQ2FyZQppa2kK4paBQ2hpY2FnbwppbmRlbgriloFDb3AKXSsKw7ZtCsOpdnJpZXIK0LrQu9C+CmFsZW4K4paBbWFqCnJhY3kKb3J0ZQppZW50cwplbGxzCmFjdGl2aXR5CuKWgXJ1bnRpbWUKTlVMTAriloFwb3NzaWJseQriloFzdHJpCml6aQriloFtaXIK4paBVmVyc2lvbgpwcmltZQriloF0d2VudHkK4paBTWFoCuKWgXNvdW5kcwrRiNC10L0KY2x1c2lvbgphY3oK4paBZGV0ZXJtaW5lZAriloFSZXAK4paBTGFuZGVzCuKWgXdhbGwKaWdpCuKWgXJlc2V0CtGI0L4KeWFuCk1ldAplaQriloFhcHBlYXJhbmNlCuKWgWZvaXMK4paBbmVsbAplc2kK0ZHRggpsb29yCuKWgVVsCuKWgXJlc29sdXRpb24K4paBZm90CuKWgXRocm91Z2hvdXQK4paBcmkKTGV2ZWwKcG9vbAriloFpZGVudGl0eQriloFqYW51CuKWgWltcGVyCuKWgcO2dmVyCn1gCuKWgWluZmVyCuKWgWRhdGVzCuKWgVN0YW5kYXJkCmZvcmNlCm9ja2V5CnRlcmEK4paBZGlzdGluZ3UK4paBcHJlc2VuY2UKbGljYQriloFsZWF2aW5nCml0dW5nCsOpYgriloFlc3RhYmxpc2gK4paBbWFhcgphZGkK4paBTmV3cwphem9uCmZvbGcK4paBSGVuY2UK4paBWWUK4paBZmFiCuKWgWbDvGhyCml0bWFwCuKWgVZlcnMKcm92ClNpZ24KZGV2aWNlClNpZ21hCuKWgXdldGVuc2NoYXBwCuKWgVBzClBBVEgK4paBdG9ybgp2ZXN0CtGB0YLQvtCyCmFjY291bnQK4paBbGFyZ2VzdAriloFwZXJjZW50CuKWgVdvbWVuCuKWgWltZwp0b29sCuKWgXJvY2UK4paBYXkKaW5ldAriloFhb8O7dAriloFwb2x5bm9taWFsCuKWgWludGVncmFsCuKWgWFyZWFzCn0nCuKWgWh5cApsb3llZQrRgtCw0LvRjAriloFwcm94eQriloFXeQriloHQnNC10LrRgdC4CuKWgWVzY2FwZQpvbGFyCuKWgW1pc3Rha2UKKX17CuKWgVBvdAriloFwcm9jZXNzZXMKIj4NCmhhbHRlbgp6emEKYW1vCtC60YDQtQriloFXb29kCsO4cgriloHRgdC10YAKb2NpYQp0d28KcHJvZmlsZQriloFBc3QKZW1icm8K4paBYXJtcwppbmFzCmlubmVuCuKWgW1zZwpJTlQK4paBYmF0dGVyCmlnbm1lbnQK4paBdnkKSHJzZwriloFHcnVuZApyb2MKc2VnCuKWgWRlY29yCuKWgWV2ZW50dWFsbHkKPiwK4paBcGFnCmFudGVuCuKWgXN0cnVnZwp9XlwKZGF0ZW4K4paBcmVsYQrQv9C+0LIK4paB0LrQvtGA0L4K4paBQm9zCuKWgWxhYm9yCuKWgVNlY3JldAp1Z2VuCuKWgWphcAriloFodXNiYW5kCuKWgUFsYnVtCuKWgWV0d2EK4paB0L/RgNC+0LjQtwpyaWNodApyYWNoCmJhdAriloFwcmVwYXIK4paBU3RvY2sK4paBbGFjawrRhdGW0LQK4paBaG9neQriloFDaHJvbWUK4paBQWRtaW4K4paBY29tcGFyaXNvbgriloFpbmNyZWFzaW5nCtC90LMKaW1pCkRiCuKWgWdlZgp1Y2h0CsOpc2UKZ2VuY2UK4paBQ29yZQriloFpbmNvcnJlY3QK4paBYXNzdW1pbmcKb3Vyc2UKaWVyb24K4paBVGhlb3JlbQriloFjYXNhCmplcwriloHQtNC10YDQtQriloFgIgpMRArDpMOfCkRlYgriloFzdWl2CuKWgUJhbmsKbGlicwriloFMZW9uCuKWgXF1YXJ0CuKWgXByb2Zlc3Npb25hbAriloF0aWVuZQriloFhY2NvbXAK0YHRgtC10YAK4paBVUsKTk4K4paBbMOtCtGG0Y8Ka2VsCuKWgeKAogriloFkaXNlCm9udG8K4paBbcOhCmlmcwpiaWxkCuKWgWNvbXB1dGUK4paBw6lkCmrEmQriloFNw6kK4paBbGFuZ3VhZ2VzCuKWgVRpbWVzCmNlbgriloHQsNCy0YLQvgrDvW0KZW5legriloF1cHAK4paBbcOpZAriloFjdWFuZG8K0L7QtApJbnRlbnQKZWVyZAriloFUYWwKb2Zmc2V0CuKWgWhhYmVuCnJlbWUK4paBU3RhY2sK4paBZHJpCuKWgXNlaW5lbQriloFmw6l2cmllcgriloFjb21iaW5hdGlvbgriloFzb2xsCuKWgW1vdmVtZW50ClNwZWMK0LrRgNGLCnJldGNoCk9mZnNldApSb290CtCQ0YAKd2FydAriloFGb2xsb3cK4paBU29jaWFsCtC90LjQutC+0LIK4paB4oaSCkRvbgriloFoYXJtCmFncgpuZWdvCnJlc291cmNlCuKWgUx1YwriloFzZWluZW4K4paBRGVwYXJ0bWVudAriloFVcGRhdGUK4paBVGV4YXMK4paBcmV2ZQriloFQb3MK4paBc2hvdApvdGhlCuKWgXJlcGVhdGVkCuKWgXJlY2VudGx5CsOhYmFuCmFrcwrQv9Cw0L0K4paBY2hhCm9obAriloF0ZW5kCuKWgdC00LLQvgpjaHRzCsOnYWlzZQpwbGluZwphbGJ1bQplagriloFgWwptYXBzCuKWgXVuaXRzCuKWgTwhLS0K4paB0LPQtQriloFJbmZvcm1hdGlvbgppa29uCuKWgXRhbgriloFkb2NrZXIK4paBU3RhZAriloFhdWRpbwppa28K4paBY29vcmRpbmF0ZXMKeHMK4paBcmVwbGllZAriloEpLAriloFHb3Zlcm5tZW50CuKWgUFjYWRlbXkKVU5UCuKWgdGC0YDQuApCbAriloFhbmMK0YjRgwriloHRgtCw0LrQvtC2CuKWgWluZmluaXRlClJDCuKWgWdhCuKWgWFkanVzdAriloFtZXJnZQo7YAriloFwb3N0ZXIK4paBSmFwYW5lc2UKIl07CuKWgWV4aGliCuKWgW9yZGVyZWQKaWN0dXJlcwrRgNC+0YEK4paBc8OpcmllCmxldHMK4paBaXAKU2VsZWN0b3IK4paBZXhpc3RlbmNlClJlY2UKbGlnYQpkb3dubG9hZAriloFsZW1tYQppZXYKdWRlbnQKc2tvCuKWgUFyYWIKaXRhdGUKYnl0ZQrQvtGCCmlrdArQvdCw0YLQsAriloFBZgooQAriloFtYWQKb2RiCuKWgWVsaW1pbgriloFzcGVudApFbnRlcgriloFNaXRnCldoZW4K4paBZMOpcGFydApNSQriloFmZWxsb3cK4paBdGhvdXNhbmQK4paBQ3UKa3RvcgpDYWNoZQriloF0YW1iw6ltCuKWgWV4dGVuZGVkCtCy0LXRgdGCCmF0ZXJzCuKWgUxpYwp0b3R5cGUK4paBR2EK4paBYmxvb2QK4paBbWFwcGluZwriloFub21pbgriloFtYW5pZmVzdAriloFwZW5zCuKWgXJpdAriloFmaWxlbmFtZQriloFmaWxsZWQKdsOkCuKWgXJhaXNlZAriloFtb2JpbGUKa8OpCuKWgVJpZ2h0CuKWgWdlaMO2cgriloF0ZW1wZXJhdHVyZQriloFzb21laG93CuKWgVNwYW5pc2gK4paBa29tbXVuCuKWgWNob3NlbgriloFob3JzZQo7XAriloFvcmlnaW5hbGx5Ckhhc2gK4paBY2l0dAriloFlbmNvcmUK4paBV29sZgriloFuw7oK4paBWW91bmcKVmFyaQriloFTY2h3ZQriloFjYXB0dXJlCuKWgUphbmUKSW50ZXJmYWNlCm93eWNoCuKWgURldXRzY2hsYW5kCuKWgUtvbAriloFib3VuZGFyeQriloFHTkQKTm93CmtlaHIKKCoKPS0K4paBV2VsCuKWgUNhdAphbW1lbnQKQUdFCuKWgXJpZ2h0cwpTY3JvbGwK4paBaGFwcGVuaW5nCuKWgUJsYQriloFzY2llbmNlCmF3cwriloFiZWhhdmlvdXIK4paBaW1wbGllcwriloFRdWVlbgpvdmFuCnBheQrRmtCwCmFyZXQKZXJzaGlwCuKWgUxhbmcK4paB0LPQvtC0CuKWgXJlY29yZGVkCnplbQriloFUaHJlYWQK4paBdG9kbwpvZ28K4paBc2NlbmFyaW8K4paBY29uY2VudArRgNC10LcKU3RvcmFnZQriloFkaXJpZwriloFTZXJpZXMK4paBZ2FzClNFVArDqGNlCnJhdGUKSFRUUAriloFrYXAKRW1wClVURgrDoW7DrQrRgdGC0LDQstC4CndpbmRvd3MKw6lyYXRpb24KYXBlZAriloFzaXN0ZW1hCuKWgXN1cnYK4paBV2VzdGVybgriloFnw6kK4paBU3VjaApXcml0ZXIK4paBY2FudmFzCuKWgWd1YXJhbnRlCnNjcm9sbAphdmVkCkl0YWwK4paBRWxlY3QKXSgjCuKWgUhlcm0K4paBQ29tbWFuZAriloFDaGlsZAriloFwZAp1dGNoClNxbAoqLgriloFUYWcK4paBVGEK4paBbWFpbApzY3JlZW4Kc2NyCnppYWwK4paBRsO8cgriloFzdWdnZXN0aW9ucwpjaGVzdGVyCil8CnBlcnNvbgp6ZWwK4paBd2FpdGluZwriloHRgdC70LUKRkwK4paBQWxiZXJ0CuKWgUhpagriloHRgtC10YAKZXdyaXRlCuKWgXNlbnRlbmNlCuKWgWxpbnV4CtC10LTQtQrDqm5jaWEK4paBSXRhbGlhbgrRh9C60LAKRmlsZXMK4paBbm90aWNlZApiaW5nCuKWgVJlc2VhcmNoCuKWgWFsdGVyCmhlZWwKXDxeCuKWgVByb2Nlc3MK4paBYmF0dGxlCtC80L7QsgriloFBZnJpY2EK4paBQW5uZQriloFnZWxkCn0lCuKWgWRvY3MKVHlwZXMK4paBcmV0cmlldmUK4paBT2ZmaWNpYWwK4paBdHJhYgrRhtGLCuKWgUlucHV0CnN0ZXAK4paBbGF1Z2gK4paB0KXQsAriloFwZWxhCk1lZGlhCnJvdWdoCtCz0LDQvdC4CuKWgVNob3VsZAriloFDb250ZW50CtC70LXQvApvc2gK4paBc29tZXdoYXQK4paBQ2VyCkJhY2tncm91bmQKc3RydQriloFpbmxpbmUK4paBTmVkZXIK4paBbW9kdWxlcwriloFCdWNoCsWEc2tpCndpZGV0CuKWgXpuCnBvc2VzCuKWgWdyYWR1CuKWgWFxdQpQUgriloFwdXR0aW5nCuKWgdC/0L7Qu9C4CuKWgXB1cmNoCuKWgXNtb290aArRgNC40LkKZW5naW5lCuKWgWxpdmVkCkFjY291bnQKRGV0YWlscwriloF0ZWxscwriloFPdXRwdXQKSGVyZQriloFGb3VuZGF0aW9uClRleHRWaWV3CuKWgWRlY2lzaW9uCuKWgWRlcGVuZGVuY3kKb2NhdGlvbgpvdmFsCmZlbGQK4paB0L/RgNC+0LIK4paBZW5kcwriloFpb3MK4paBZXhjZWwKYWd1CuKWgWVsZWcK4paBRWxlbWVudApRdWV1ZQriloFmw7YK0LLQtdGA0YHQuNGC0LUK4paBZXhwZXJpZW4K4paBZGlyZWN0ZWQK4paBY2FtYgriloHQlNC2CuKWgWZvbGcK4paBY29uY2UK4paBRmFiCuKWgVZpCuKWgWFkdmFudGFnZQriloFCZWkKcHJvZAriloFYSVgK4paBRmFjZQriloF2aXIK4paBUnVzc2lhbgriloFzcGFuCmVuw60K4paBem9uZQriloFhdHRhY2gK4paB0LHQtdC3CuKWgW1hbmFnZW1lbnQKQWMK4paB0L7QvwpvbmNlCmhhbHQKdXNvClNwZQriloFyYXcKw6lybwppZGVsCmxhdwpTaGVldAriloFtaXNzaW9uCuKWgWNhbWVyYQriloFob25vcgriloFhcHBvaW50ZWQK4paBUm9tYQpsaW5lYXIKUm93cwpmZXJlbmNlcwriloFJTwriloFjb3ZlcmVkCnJhagrRgdGC0LLQvtCy0LAK4paBU3ltCuKWgXRpZAppc2MK4paBUnVkCuKWgWVuY3VlbnQK4paBZmFpbHVyZQrDvHNzCuKWgXNxdQriloFwYWludAriloFzZXJpb3VzCuKWgWN1cnNvcgp0cmFzCuKWgWRpc2N1c3Npb24K4paBY3JpZWQKZXJpZQriloFEZXZlbG9wCuKWgXJld3JpdGUK4paBZ8OpbsOpcmFsCndhaXQK4paBSGFycnkKw61yCuKWgWdlcHVibGljCuKWgdC40LMK0ZbQsQrRj9GCCuKWgdCY0LcK4paBZXF1YXRpb25zCuKWgXBsYW5lCuKWgWFjcXUK4paBYW5nbGUK4paBdHJlZXMK4paB0JrQvtC9ClZECnBlcnQK4paBZG9jdW1lbnRzCmNiCuKWgWltcGxlbWVudHMK0YHRgtCw0L3QvtCyCuKWgVdhbHRlcgrQt9GL0LLQsAriloHRgdC/0LUK4paBY2hhcApwbGV4CuKWgW1hZ25ldAriloFnZXB1YmxpY2VlcmQK4paBaGlnaGx5CuKWgWxldXJzCuKWgWRyZXNzCuKWgXJlc3RhcnQKUmVuZGVyCkNhbGxiYWNrCmlzbwriloFjb25zdGl0dQriloFFbmRlClpFCuKWgUFuZ2VsZXMK4paBZGVyaXZlZAo9InsKXVwK4paBQ2hhbmdlCuKWgUhhdXMK4paBc3RhZAriloFSZXF1ZXN0Cm9tbwriloFBY3RpdmUKdXJlbgriloF0b3VybgriloFwYXJ0aWN1bGFybHkKU2VydmxldAphYmMKd2lkZXRpbGRlCmFuZHJhCkhlbHBlcgpSdWxlCuKWgXBsdXNpZXVycwriloF3YXZlCm5lcQriloHQotC1CmZyZQpza8OpCuKWgWFsYwriloFsb2dzCkdTCuKWgU1vbAriloFwZXJtaXNzaW9uCuKWgXNvdWwK4paBd2FudHMK4paBZ3VpZGUK4paBdmllbmUK4paBV2lsaGVsbQriloFldmlkZW5jZQoifSwKcm9wb2wK4paBYXV0aGVudGljYXRpb24K4paBb2NjdXJyZWQK4paBSUYKbm9jCklBCuKWgUJhbgriloHQutCw0YAK4paBYmxlCuKWgXNlZ21lbnQK4paBcGxheWVycwppc2kK4paBc3R1Y2sK4paBUHkKQW55CmhvdQriloFmb3JtYXR0CuKWgXBlYWNlCuKWgdCa0LDRgApldGVzCmRmcmFjCig/CuKWgVNpdGUK4paBTGl2ZQriloFVcwriloFjbGltCuKWgUFsaQrRgNC10LkK4paBUHJpbmNlCuKWgW9ibGlnCmllYgriloFBbHQK4paBcHJvcwpyYWNsZQriloFDZXR0ZQprZXMKesO2cwpvdXZlbGxlCi8vLy8vLy8vCmFieQrDqXJlCnJhbmUK4paBcG93ZXJzCuKWgVBhdGgK4paBV29yZAriloF0cmFuc2FjdGlvbgriloFjYXVzaW5nCmVsbHNjaGFmdArDonQK4paBQ1BVCuKWgWRlcHRoClNUUgriloFDb25mCuKWgXJhcmUK4paBQWsK4paBYm9uCuKWgUNhcmxvcwriloFzcGVjaWZpY2FsbHkKcmljcwpLRVkK4paBc3RhcnMKw6lyaWNhCuKWgdCb0YMK4paBY29uZmlndXJlCuKWgWFnZW50CuKWgWV4cGxhaW5lZAriloFjb2VmZmljaWVudArQtNGMCid9CuKWgXZpZGEK4paBU3luCuKWgdC90LDQt9Cy0LAK4paBT3B0aW9uCuKWgXJvYgriloHQutC70YMKOlsKYW50bHkKZGVwZW5kZW5jeQriloFDdXIK4paBZnJhbmNlcwriloFpZGVhbApTdwriloHQs9GA0YPQvwriloFDYXB0YWluCuKWgXRvZG9zCkpvCuKWgXBlbG8KP10oCuKWgWZhaXRoCtC+0LLQvtC5CuKWgWZyZXNoCuKWgXByb3ByaQpUaW1lb3V0CuKWgXZlaApjb250ZW50cwriloFEb2N1bWVudApjb2xsZWN0aW9uCuKWgWthcgpydWNrCllvdXIKdW1hCuKWgW1hdGhlbWF0CkVuYWJsZWQK0L/Rg9Cx0LvQuAriloFFbmdpbmUK4paBTcO8bmNoZW4K4paB0L/QvtGB0LUK4paBZm9uCmFyY2hpdmUK4paBZnJlcXVlbmN5Cn0rXArDonRlCuKWgWtvcgriloHQmtGA0LAKU2luZwptb250aAriloFIYXcK4paBc3lzCmVybWUK4paBV291bGQK4paBaW1wYWN0CnVycmVuY3kKbGljaHQK4paBYXB0CmllcmUK4paBbW90aW9uCtCh0KHQoAriloFJbml0CuKWgW1zCuKWgU1TCnNoaWZ0CuKWgWF1dHJlcwriloFiYXNoCmhpZGRlbgpvcmlvCuKWgWNlbGVicgriloFMaWJlcgpldG8K4paBZG92ZQriloFwYXRocwriloFpbmoKQ2F0ZWdvcnkK4paBY3J5CuKWgW1hcmtlZArRg9C00L4KYXNoaW9uCsOkbHQK4paBbGFuCuKWgXRlYW1zCuKWgWt2CmlhbXMKYWJhbgriloFUQUJMRQrQstCw0YAKUmVwb3MK4paBQmVsbAriloFwdWJibGljCuKWgWNvdW50cmllcwriloFzcGluCuKWgWzDqWcK4paBS3JpZQriloFKb25lcwp3aGl0ZQpIdG1sClByZXNzCuKWgUJsdWUKT3BlcmF0aW9uCuKWgUFudGgK4paBcHNlCuKWgUZvbnQK4paBdGhlbWUK4paBYmxvY2tzCiQpCuKWgWdsYWQK4paBbWFuYWdlCm9yZGVuCm9zdGVuCmNvbGUK4paBU1AK4paBc2NoZW1hCnVyYXMK4paBd2hlbmV2ZXIK0KjQkArRgNC40YLQvgriloFkaXNjb3ZlcmVkCuKWgXByZWZpeApnbG9iYWwKcm9rZQp6ZXMKY2h0ZQriloFCZWZvcmUK0LzQtdC90LgK4paBRGlnCuKWgXJhcGlkCuKWgWxsZWcKZXF1YWxzCuKWgUhvY2gKZm9yYWxsCtCy0LDRgtC4CnVzegriloFhdHRhY2hlZApFeHByZXNzaW9uCuKWgXN0b2NrCsO8bGwKcGV0CmVzc2lvbnMKY29sbwriloFneQpCb29rCuKWgUphY29iCuKWgVByb2R1Y3QK4paBaW5wdXRzCtC80LjRgAriloFsZWFybmVkCsOzd24K4paBcG9saWNlCuKWgdC70LXRggriloFJdGVtCuKWgWV5ZQphaWVudAriloFTYW1tbHVuZwriloFMb3IK4paBcmVwcmVzCuKWgWZlc3QKQ29uZAriloFub3V2ZQriloFleHRlbmQK4paBRnJhbmNlcwriloFGaW5kCuKWgWRlemUKZXJuYQriloFoYWLDrWEKcHLDvAriloFtb3RvcgpiaWUKSGVsbG8K4paBcmVzaWQK4paBZmluYWxlCiUpCnsnCuKWgUhhcmQK4paBcGFpcnMK4paBRWxsCml2b3QKcmVlcwriloFGb3JjZQriloFldmVuaW5nCuKWgWRlc3B1w6lzCnJnCldoeQriloFjb25uCnNjaGVtYQrRhdC+0LQK4paB0LzQtdC20LTRgwriloFmbGFzaApza2lwCuKWgW1pbnV0ZQriloF2ZWQKYXlsb3IK4paBc2V1cwriloFNYWpvcgriloFmcmFuYwriloFyYWMKa3cKY3YKTmF0aXZlCuKWgUJ1dHRvbgrQvdC40YbQuApzZXR0aW5ncwriloFBY2Nlc3MK4paBcXVhbGl0eQpwcm9wcwpGbG9hdAriloFTY290CuKWgUFECuKWgWFsbGVtCiZcCnVzdHJhdGlvbgpwYXR0ZXJuCm1pcgriloFpbmNvcnBvcgpza2ljaAonPgpTdGFuZAriloF0ZWNobmlxdWUK4paBRXNzCuKWgU94Zm9yZAriloHQu9CwCnRpa3oK0LvQuNC5CkxvZ2luCuKWgW1pbmlzdGVyCuKWgWN1cmwKa2FuCuKWgW1hcHMKaW5kYQpyaWViCuKWgUVORAppZmllcwpjb25zb2xlCmJ1cnkK4paBTEUK4paBaW5kZXBlbmQK4paBdGEK4paBxZoKb25lbArDqXN6CuKWgUlzdAp1dGl2ZQrRkdC7CuKWgVJlZ2lvbgriloEoPQriloFjb21wYWN0CsOnb2lzCuKWgWxhYmVscwphdXRvcml0w6kK4paBc3RhbgriloFmcmFuw6dhaXNlCuKWgXJlbW92aW5nCnljCn18CuKWgUV4ZWMKKCRfCm1hZwpiZWZvcmUK4paBc3RvcHBlZArQvNC40LgK4paBcmVmcmVzaAp1bmt0CmljaW8KWG1sCuKWgVRhYgriloFmb3VuZGVkCuKWgWZhbApmeAriloFIaXN0b3JpYQriloFFYXJseQpEb20K4paBZGVjaWRlCuKWgXVuZGVyc3Rvb2QK4paBanVyCuKWgU5yCuKWgWNhcGFjCndhcwriloFlbmVteQriloFwcm9ncmFtcwriloFtYXNrCtGB0LrQtQriloFncm91cGUKY2FtCuKWgXdpZGdldApSRUFURQriloFzZXZhCuKWgUJhcmNlbAriloFwZXJkCuKWgdCc0YMKcmFuY2UKVFlQRQriloF7JwriloFiaWxsCuKWgSJfCidgCmJhaG4K4paBY29udGFpbmVkCkNsb3NlCnJ1ZwplZ3kK4paBc2lnaHQK4paBUHJvdmluCtC90Y4KYXJ6CtGJ0LXQvQriloFKb2UK4paBZGVsZXRlZAriloFBdXRvCuKWgW1ldGVyCkNHCtGK0LsK4paBcGVudAriloFiZXplaWNobmV0ClN1bQpkYmMK4paBUGxhdHoKZWN0b3JzCuKWgUxpdHRsZQpRVUUK0YbRltGPCtGC0LXQu9GPCm5pZ2h0CuKWgWxsCuKWgW1vc3RseQpVSUQK4paBYmV6CmRvYgrQutGB0LgKdGVybmUK4paBY29ybmVyCmF0eQriloFpbXByb3ZlCuKWgWludHIK4paBYEAKYXJvZAriloFpbnN0YWxsYXRpb24K4paBUmVmZXLDqm5jaWFzCmlnYW4K4paBY3JpdGljCmFkZWwK4paB0YHQtdC70L4KLA0KYXRvcmkK4paBRnJpCuKWgXLDqWbDqXJlbmNlcwriloFJbnRlbnQK4paBdGFudAp1bmNpCuKWgWxldmVscwplcmVzCuKWgWVtZXIKc2FmZQp0awriloFjaGFtCuKWgWdyZWF0bHkK4paBd2VpdAriloFjb2FjaAriloF0b3dhcmQKSG9tZQriloFCb29sZWFuCtGC0LXQuwriloFtb2NrCuKWgWFwcHJlY2lhdGUK4paBQ3Jvc3MK4paBVGFrZQpEUAriloFzaWRlcwriloFOb3JtZGF0ZW4K0LTQtdC5CnN0YWwK4paBY291dApibgriloFWZXJ0CuKWgWJpcmQK4paBZHluYW1pY2FsbHkK4paBRG9sCuKWgUJ1cmcK4paBZG9nCsOkdHQK4paBbnVjCkVDCkJ5dGVzCuKWgWFrCnJlbGFuZAriloFndWl0YXIK4paBcmVnYXJkaW5nCuKWgUZ1w58K4paB0LTQvtC7CmF1c3MK4paBamVqCmFjbwriloF1cGRhdGVzCtGA0YPQugooJy8K4paBY29sZAriloFHaXZlbgpoaW4K4paBZmVlbGluZwppZ2xpCmZhaArRgdGC0YDQtQpib29sCmluaXRpYWwK4paB0YHRgtCw0L3QvtCy0L3QuNC60LAK4paBQW5uYQriloFob3JzCuKWgWRvbGwK4paBY29uc3VtCnViZXIKc3RhbmRpbmcKYWN0aXYK0LfRlgpjaGVja2VkCuKWgXBlcm1pc3Npb25zCuKWgU1vbnRlCldyaXRlTGluZQpwbHVzCuKWgUVxdQriloHQuNGFCtGH0LrQuAp1bnF1ZQriloFMTwplYQpzYW1wbGUKaWVzegpvcmFsCuKWgdCY0L0Kb3N0b24K4paBU2ltb24KZmFzdAptawphc3NlbgriloFhcmNoaXRlY3R1cmUKZW5zZXMK4paBw4UK4paBdG9waWMK4paBZGlzYWJsZQriloFDcnUK4paBQ29udHJvbAriloFjcmVhdGlvbgriloFoeXBlcgppdHVkCtC20LXQvdC40Y8KYXJhbQriloHQs9C00LUKaWVuc3QKZWR1bGUK4paBQm90CuKWgdCe0YEK4paBVGhlaXIKYW5uZQpNaWNyb3NvZnQK4paBUE0KeWRybwplbnRsaWNoCuKWgUVpbmUKQ0hBUgo6JwpXZWxsCmxldG9uCuKWgXN1cHBvcnRzCiddKQptYW51YWwK4paBdmljZQphc2EKY2xvcwp2aXNlZAriloFwb2sKdHJhY2sK0L3QvtGB0YIKLi4uLi4uLi4K4paBJ1wKwrIuCuKWgW9yZGVycwpldHRhCuKWgWNvbnZlcnNpb24K4paBdHJhZGUKY2xpCuKWgdCY0YHRgtC+CuKWgWFrdAriloFzdWJzZXQK4paBYXVnCuKWgWxlYXZlcwpNYXRoCmFubmVkCmthbAriloHQktC10LvQuAriloFub2cK4paBZXRoCuKWgWhhaXIKYXJvdW5kCuKWgWphdmF4CtCy0L7QuQriloFDZW50cmUKw7bDnwp1dGkK4paBbmF2aWdhdGlvbgriloFQUwriloF3YQriloHQoNC+0YHRgdC40LgKdXNhCnpldGEK4paBUERGCuKWgW1pc21vCnByb3BlcnRpZXMKbWVpc3RlcgrQu9GM0YLQsApmb3J3YXJkCuKWgU9zdApraW5zCuKWgXNpZG8K0LfQvtCyCnRhZ3MK4paBYWN0b3IK4paBZmx5CkNSCmFnaW5pCuKWgWxldHQKZW5pCnRlY2gK4paBRW5jCm9yYWNsZQphbWlsdG9uCnplagpmZW4KdW1lcmF0ZQriloFxdWVzdG8KZGFydAriloFLb3JlCmFwaXMKZXBlcgpTY3JlZW4Kd2FsbAriloFpc2xhbmQKc2hlCuKWgWxpZ2dlcgrQstGB0Y8KZmFuZwriloF0YXJkCuKWgXBsYWF0cwriloHQv9C70L4K4paBT2ZmaWNlCuKWgVNFVAriloFjaXJjdWl0CmplZApTYXZlCtC70YzQvdC+ClNvY2tldAriloFJbmRleApBQ0sKaWRlcnMKZXJlcgriloHQodCo0JAK4paBbGFkeQriloFzY2hlbWUKaWVsbGUK4paBZXhlcmMKKX1cCkRhdGVUaW1lCmF0aGFuCuKWgVByb2Zlc3NvcgriloFtb2lucwriloFFeGNlbAriloFIYXkK4paBTXVzaWsK4paB0ZcKxJlkCuKWgSIuCuKWgdCx0YPQsgriloFpbnN0cnVtZW50CtC/0LDRgAriloHQsdC10YDQtQriloFwb2xpdGlxdWUK4paBdHJhZGl0aW9uCuKWgVZNCuKWgUFydHMK4paBQ2kKVXNlCuKWgWFnZ3JlZwriloF3ZWVrcwriloFvcHBvcnQKaXRpbmcK4paBdmVydGljYWwK4paBTmF6Ci4uLikKaXpvCuKWgWN5Y2xlCuKWgXRlbXBvCtGC0YDQtQriloFoYW5kbGluZwppc3RlbmNlCuKWgXBhc3RlCuKWgWVuam8KUk9VUAriloFvdXRlcgriloFzdXBwbHkKZW1hbgriloFhY2NpZGVudAriloFcXQriloHRgtC10YUKUG9vbApvdGluZwpvbnltb3VzCuKWgUdpb3YK4paBdWQK4paBLi8KRVJST1IKY29uc3RydWN0CnRleHR3aWR0aApxdWlwZQpjYXNlcwriloHQsNC0CuKWgVJvdwpIb2xkZXIKd2FuCmFybmEKTWVtCuKWgUNhbmFkaWFuCuKWgUNvbW1pc3Npb24Kc3VuCuKWgWFwcHMK4paBQmxvCuKWgWlocmVyCuKWgWZhbWlsbGUK4paBbcSbCuKWgXB5CtC40YEK4paB0YLQvtCz0L4K4paBQWdhaW4K4paBaWdub3JlCuKWgXRlbGV2aXNpb24KUGF0CmhpZGUK4paBUmV2CuKWgWJlYXIKcGh5CuKWgW5vaXNlCuKWgXdyYQphdGlvbmFsZQriloFjb2xsYWJvcgpib3JkZXIK4paBZWxlY3RlZAriloFzdXJwcgriloFhdm9pcgriloFhc3NlbWJseQriloHQvtCx0YnQtQriloFhcmJpdHJhcnkK4paBYnJpZWYK4paBLS0tCuKWgU1hdXIKZ3Jlc3Npb24KaWNpYQriloFsaWVndAriloFGaWd1cmUK4paBb250bwpSZXBvc2l0b3J5CuKWgWTDqWYK4paBZm9ydGgK4paBY2xpY2tlZApzZWl0ZQriloFub3RlcwpuYXRpdmUK4paBRURJVArRi9C1Ck1UCmFtZW50YWwK4paBcm9zZQriloFwdWVkZQpEZWxlZ2F0ZQp1YmEKbmVvCnhpcwriloFBcnRodXIKVVJFCmFtaW5nCkRldmljZQriloFkaWFtCnN0w6RuZAriloFwcm9uCm9pcwpjb21pbmcKUGFyYW1ldGVycwp1dnVkCuKWgWFiaWxpdHkK4paBbcOpdAriloFVbmZvcnR1bmF0ZWx5CmZkCkRpY3Rpb25hcnkKc29ja2V0CuKWgWNvbm9jCmNvbnRhaW5zCmVzc2VkCuKWgWdlbGRpZwrQvdC40YbQsAriloFwb2ludGVkCmVzdGkKbm9tCtC+0LPRgNCw0YTQuNGPCuKWgXJlcHJlc2VudHMK4paBbWFuaXAKd29ybGQK4paBcmVzb2x2ZWQKdGVncgriloFkb3J0CmFzdGVybgriloFjYW1wYWlnbgriloFwcmltbwriloE7OwriloFzbmlwcGV0CuKWgU5pawpUb3RhbAppc3NlbWVudApBQ0UK4paBdmVyaWZ5CmlmZmUKbGFnZW4KaWV1cgriloFjb252ZXJ0ZWQK4paBTWlsaXQK4paBQWxnCuKWgVJvbgriloFrb25uCmFwcGxlCuKWgWRpc3BvcwpzdGVsbHVuZwriloFyZXRhaW4K4paBbWVudHJlCuKWgW5ldXQK4paBTmlnaHQKY2jDqQphdHRpCuKWgW9icmEK4paBc3VwZXJpb3IK4paBQ29uZ3Jlc3MK0ZHQvAriloFjb2RlcwriloFBbWEK4paBRWFydGgK4paBb3Bwb3NpdGUK4paBcG9vbAriloFEdW4K0LbQtdC90LjQtQriloEiJHsKaW52CuKWgdGD0L3QuAriloFBbmRyZXcK0YLQtdC70LXQuQriloFiecWCClVuaXZlcnMK4paBQW5ndWxhcgphbmltCtC00L7QstCwCkJVRwp1dGVseQriloFkcmF3aW5nCuKWgWdhaW4K4paBZm91cnRoCuKWgVByb2JsZW0K4paBc3VkZGVubHkK4paBw4QKb25uYQriloFLb250CuKWgUJpbGRlcm4K4paBa29ubnRlCsW+ZQpUcmFjZQriloFzZWN1cmUK4paBa3TDs3J5CuKWgWVxCuKWgWZvcm1hbAphbWVyaWthbgriloFBbmFsCuKWgVJld3JpdGUK4paBRG91YmxlCmNyZWF0ZWQKTlUKTURiCmFwZXMKVW5pcwriloFlc3BlY2lhbAp9KVwKZWRvbQriloFjYXRlZ29yClJldHVybgriloFIYW1iCuKWgVJpbwriloFNaXIK4paBR2VtZQphYmlsaXRpZXMKdHJ6CnVzZXQKaWVycmEKbmV0d29yawriloFkb2N0b3IKZXVycwriloFsaXN0ZW4K0LTQtgriloFIw7YK4paBY29uc2lzdHMKYXNtCkNocgphbGFuZAriloHQuNGB0L/QvtC70YwK4paBbHVnYXIK4paBZGVmaW5pdGVseQptb3ZlCsO6YmxpY2EK4paBbMOkbgppc211cwriloHQtNGA0LbQsAriloFkdAriloFQZXJoYXBzCuKWgUJyYXNpbApKb2huCuKWgXByb21pc2UKxYJ1CnJlZW5zCuKWgXBzeWNoCuKWgVdobwrRgNGP0LQK4paBSU5UTwriloFQZW9wbGUK4paBV2lsbGlhbXMK4paBTWFyZwriloHQtNCw0L0KcmVjb3JkCuKWgUV1cm8K4paBVmlyZ2luaWEK4paBUmVzdAriloFDb3JuCn19LAriloFHcmlkCuKWgWluamVjdArQvdCw0L0K4paBY3JvdwriloFQaHlzCuKWgURPCuKWgSItCuKWgWluY3JlYXNlZAphY2hlcgpwZWF0CkxpbgriloFEdWIKcmljZXMKYWdub3N0CmRsCuKWgWN1cnZlCsO8ZwpyaWNlCmxhbmd1YWdlCkNsaWNrTGlzdGVuZXIK4paBbXVuaWNpcGFsCuKWgU9yaQriloFCaWxkCuKWgUNhYgriloFWYXIK4paBbm90ZWQK4paBw44K4paBc3VicwppYXRpb24KV09SCmluZ2x5CuKWgVJ1cwppZW5zCklORk8K0LrQstCwCmF0aXZvCmdlbmRlCuKWgUZyYW56CuKWgWlzb2wKZWRlcwpuaWVyCuKWgU5PCuKWgUhhcwpiZWFucwriloFwYW5kYXMKKCIlCtCy0ZbRggrRg9GC0LHQvgriloFnYXRoZXIK4paBbGVnYWwKaW5jbHVkCuKWgWNpcmN1bXN0CmNyaXB0b3IKcmlibGUK4paBU8O8ZAriloFhcHJvCkFwaQriloHQvdCw0LkK4paBQWZyaWNhbgpvd3NraQriloFKb2huc29uCmllawriloF2b3RlCuKWgUthbgriloFiaWJsaQriloFoYWFyCuKWgXZyCl0pLApzdWJzZXRlcQpQYXJzZXIKaWFuaQppc8OpCmlkZWEKT25seQriloHDoWwK4paBQ2F0YWwK4paBQ2FzZQpzZWgK4paBZW5jb3VudGVyCuKWgXJlZm9ybQrQvNC40L3QuAriloFTdHJlCmV4Y2VwdGlvbgriloFUYXIK0YLQsNGACnRybAriloHQkNC70LXQutGB0LDQvdC0CtC70LXQutGCCmVxdWFsCk9wCuKWgWxpZgriloHQudC+0LPQvgriloF2b2x0YWdlCnNoaXJlCuKWgUdyb8OfCtCy0L3RjwpuaW5ncwrQvdGG0LgK4paBbGFnCuKWgWFuZGVyZW4K4paBdmFjCuKWgW1hY3JvCj1bClRoZW4K4paBY29udHJvbHMKc2VxCm9sb2dpZXMK4paBc2VsZWN0b3IK4paB0KPQutGA0LDRl9C90LgK0YXRltCy0L7QstCw0L3QvgrRi9C5CmFsbGVuZ2UK4paBSU1EYgp1bW15CnllbgriloFiZXN0ZQriloFCb3gK4paBY2hhaXIK4paBU2FiCmVyZGUK4paBbmFzdAppdmFtZW50ZQriloHQvtCx0YoK4paBcmVxdWlyZW1lbnRzCuKWgW1lZXRpbmcK4paBZmluYW4K4paBQWRhbQriloF0ZWxldmlzCuKWgWJyaWdodAriloFHaXQKRUcK4paBR2lsCnLDqHMK4paBQ29uZAriloFmdAriloHQsdGD0LvQvgotKwpFTkQKZXJuZQriloFDb21wdXQK4paBaWxzCuKWgWdhbGwK4paBY3N2CsWCdWcK4paBc3VtbWVyCmdhbWUK4paBcG9zdHMK0JDRgNGF0ZbQstC+0LLQsNC90L4K4paBemlqCuKWgWRldGVybWluCuKWgWFiYW5kb24KY291bnRlcgriloFyZXF1aXJlbWVudAriloFUaXQKaXJ0dWFsCuKWgVZpZGVvcwriloFxdWlldAriloFUZXJtCuKWgXRpbWVvdXQKUHJpbnQK4paBaW52ZW50CmxhaXMK4paBbW9uaXRvcgpoYWxiCuKWgVdpbGQK4paBbGVhZGVyCuKWgdGB0LXQu9GMCuKWgXV0aWxpegriloFwYXJlbnRzCuKWgWZvcmNlZAriloFwcm92ZWQK4paBZWZmZWN0aXZlCuKWgWxsYW0K4paB0KHQv9C+Cm9yYgpnZ2kK4paBYXNzdW1wdGlvbgriloFzdWJtCuKWgdCy0ZbQuQppbGlhCuKWgXJldmVyc2UKJyIK4paBcXVvdGVzCuKWgXNpdGVzCmlndW5nCuKWgUFyZwpEb3VibGUK4paBc2NyZWVucwriloFjbGF1c2UK4paBYnVuZGxlCuKWgXBoaWxvc29waAriloFOdW0K4paBZ2xlaWNoCnVseQpkaXJlY3QKYXNrZXRiYWxsCm93YW55Clx9JAriloFyYWRpdXMK4paBU2VhcmNoClByb3BlcnRpZXMK4paBZWxldgriloFwcm9kCuKWgSIlCmlzacOzbgpEZWJ1ZwpTZWNvbmQKKCEK4paBQ2F0aG9saWMK0YDQvtCy0LDQvQpsZXoKUGEKcHNvbgriloFlcnN0ZQriloFGdQriloFsaXQK4paBU2Fpc29uCuKWgUhhc2gK4paBZXhlbQriloHQv9GA0LXQtNGB0YLQsNCyCikqCuKWgWV1CuKWgeKUggriloFnYWIKZXRhaWxlZApDb3B5CuKWgdC00LLQsApldmVuCktpbmQK4paBSmFja3NvbgrQsNC7CuKWgWNvbnNlYwpVU0VSCuKWgVRvawooLgriloEkfAriloFUYW1iCuKWgUxlbW1hCmhhbmcK4paBY29udHJpYnV0aW9uCnJvbGxlcnMK4paBc3R1ZGllcwriloFwb2kKZ2VtcwriloFVUAriloFXb2wKPiIK4paBZmxvb3IK4paBaW5pdGlhbGl6ZQriloFMZXcKemVrCmFydGUK4paBcG9zaXRpb25zCuKWgXBvcnRpb24KY292ZXIKd3AK0L7QstC+0LPQvgriloFwaWFubwriloFtZXRhbAriloFzYW1wbGVzCuKWgdCh0LDQvQp2YXJpYWJsZQriloHRgdGC0LDRgtGMCuKWgWludGVnZXJzCldoZXJlCmZhbWlseQriloFudW4K4paBaW5jcmVtZW50Cml4ZWQK4paBaGVlZnQKZnRlCuKWgXZpbAriloFvdHJvcwpNdWx0aW1lZGlhCuKWgUhlbnJpCmFkZWQK0LPQtdC9CuKWgWNhcGl0CuKWgdC00YDRg9Cz0LjRhQppc3AKSVRZCuKWgWNvbnN0cmFpbnRzCuKWgUtpcmNoZQpmb3VuZArRiNC40LkK4paBcGljCuKWgXRvdQpjcmVkCtGA0L7QsQriloFNZXNzCkpvYgriloFNYWlzCuKWgXN0eWxlcwpmYWxsCuKWgVVrCuKWgXN0cmVldApvY2Nlcgplc2VuCuKWgWNvbG9ycwpjZWFuCtGO0YnQtQpjb25uZQriloFyYXRpbwphbnRvbgriloFGZWwK4paBY3VzdG9tZXIK4paBUHJpeApyw6FzCnByZWQK4paBZWxlY3Ryb24Kc3ltCuKWgdCy0LXQu9C4CuKWgW92ZXJmbG93CuKWgSRbCuKWgVBPU1QK4paBQ2luCnNjaGVpZAooIi8K4paBc2VhcmNoaW5nCuKWgXB1cnBvc2VzCuKWgWFycml2ZWQK4paBcHVudAriloFsYWQKUHl0aG9uCuKWgWxlYWRzCuKWgXNhbmQK0L/QsNC00LAK4paBY29tbXVuZXMK4paBQ0hBUAriloFjYXNvCnJ6CuKWgWR3CmFjYQriloFDb2x1bWIKY2hpbGRyZW4Kw6p0CnNjaGVtYXMK4paBaW5zdHJ1Y3Rpb25zCuKWgS1cCuKWgUlzcmFlbApub8WbY2kK4paB0L7QsdGA0LDQtwriloHRgdC+0LLQtdGCCuKWgWltbWFnaW5pCuKWgUZyZWQK4paBR2xvYmFsCuKWgXRoaWNrCuKWgWZ1ZXJvbgriloF0aHJvd24K4paBY2xvY2sKZW5hYmxlCicnJwriloFTdW5kCuKWgWNvbnRlbXBvcgphbnN3ZXIK4paBbWFudWZhY3QK4paBaW8KcXF1YWQKT1VUCuKWgUxhYgriloFadwpsZWdhbAriloFWZWwK4paBcmFpc2UK4paBZGVsaXZlcgriloFWb2lyCuKWgWFzc3VtZWQKTGV0CmllcnRlbgriloFLb25nCuKWgUV4cAriloFKdWcK4paBZGVjbGFyYXRpb24K4paBRmlzaAptw6kK4paBc3BlZWNoCuKWgXRlbnQK4paBUm91dGUKX18oCuKWgXLDqWFsaXMK4paBRGVzaWduCnNldFRleHQK4paBU3RhdGlvbgphcmNoeQriloHQutCw0YLQvgriloFkZW50CuKWgUtsCmnDnwriloFyaXNrCuKWgUJyb2FkCuKWgXZlY3RvcnMK4paBU3BlYwriloFyb3V0ZXMKeW1uCuKWgUdyZWcK4paB0L/QvtC70YPRh9C4CmdpZQpPUk0K0LLQtdC00LUKd2FsdAriloFlZnRlcgpQdHIK4paBc3VidAriloFiaXJ0aAriloFkcmF3bgptZXNzCtC80LXRgNC40LrQsNC9ClZFCuKWgVB1dAriloFhc2MK4paBZmVkZXIK0YHQu9C4CuKWgVByaW4K4paBc3RpY2sKcmVzZXQKeWsKc3R1ZGlvCuKWgVN0aWxsCkNvbnN0CmFjacOzCuKWgVBvcnR1Z2FsCuKWgXNjcmlwdHMKdW5kaWFsCuKWgWxpdmVzCuKWgXN6ZXIK4paBZXN0YWRvCmZvbGRlcgriloFjb21tdW5pY2F0aW9uClJvdXRlCuKWgXN3aWZ0CtGC0LXQvQriloFraWxsCuKWgVBSCmpvaW50CuKWgW9iamVjdGl2ZQriloFjb21wbGljYXRlZAriloHDnGJlcgplc2gKcGljdHVyZQpyYWluZQpjb21wdXQK4paBcHJvcG9ydApvZ3MKw7xsdAriloFxdWFudHVtCtC60YDQuAriloFzb3AK4paBbG9vcHMK4paBUmVmZXJlbmNlCuKWgW5laQpJQ0UK4paBdmVybQriloFhZGoK4paBcGVyw7IK4paBdHJvdQppc2lvbnMK4paBQXBwbGUKc2VydmFibGUK4paBQm9zdG9uCm9yZXQKb2tzCuKWgWtnCmRlZmluZWQKcGxhdGZvcm0KY2xlcgpvZ3JhcGhpYwpyaXR0CuKWgWRpYwriloFNb25kCuKWgUlyZWxhbmQK4paBVW5hCuKWgWNvbW1lcmNpYWwK4paBUHUKRGkK4paB0LXRkQriloFwcmVjaXMK0L3QsNGA0L7QtAriloFxdWF0cmUKdXN0cmFsCuKWgWRhZwppZ3VlCuKWgWJ1cm4K4paBb2ZmaWNlcgriloHQkNCyCuKWgWhpZ2hsaWdodAriloFTdXBwb3NlCm9kaQpzZXJ2bGV0CuKWgUVuY3ljCuKWgVJhbmdlCtGC0LjQuQpQbGVhc2UK4paB0YDQvtC60ZbQsgpxdWFudAriloFmbGF0CuKWgVLDqWbDqXJlbmNlCtGB0LvQtdC00L7QstCwCnJvbGUK4paBZGllc2VuCn19KAriloFJbmR1c3QK4paBbsO6bWVyCuKWgSI7Cmx1cwrDtGxlCuKWgXptCmRlZwriloFyb3VnaApJbnYK4paBaHVyCuKWgVJlc3MKY2hzCuKWgXR1cm5zCm5lcm8KZnVuY3Rpb25zCtCw0LvQuAriloFoYWJpdGFudHMK0LDRggppc3N1ZXMK4paBaHVnZQpVdGlscwriloFTYXQK4paB0LPQvtGB0YPQtNCw0YAK4paBY29hc3QKc2hhcGUKTEMK4paBbG9nZ2luZwplbmRvcgriloFsaWVzCuKWgWRpZmVyCuKWgWNyaXRpY2FsClhUCtC80LjQvdCwCmFuc2sKUmVzdWx0cwprYwppdmVyc2UKRVhUCkFMU0UK4paBdsOhbApQaQpjb21waWxlCmhlbGxvCuKWgdGH0LXQvNC/0LgK4paBSXRhbGlhCtC60L7Qu9C+CuKWgWVkaXRpb24KZ3J1bmQK4paBZGF0YWZyYW1lCuKWgUZvbGxvd2luZwpyZWliCuKWgUplZmYK4paBY2l0dMOgCklUYWJsZQriloEkKFwK4paBcmVkdWNlZApvYmlsCuKWgWFueXdoZXJlCicoCuKWgXBocgriloFLaAriloFGcmFtZQriloFtYW51YWwK4paBY3JhCuKWgVZTCiU9Ckluc3RhbmNlU3RhdGUK4paB0LHRgNCwCuKWgURyYWcK4paBSGVycgriloHQs9GDCuKWgW3DunMKVG9vbAriloFQcml2YXRlCuKWgXN5bmNocm9uCmlyYXRpb24K4paB0L7QsdC+CuKWgXR5cGljYWxseQriloFpbXBsaWNpdApvcmllbnQK4paBdGltZXIK4paBa8O2bm5lbgppZXN0CnJhaWQK4paBZXhwcmVzc2lvbnMK4paBYWltCuKWgXN0cmUK4paBd3JhcAriloFCYXJ0CuKWgWJyb24K4paBa2V5Ym9hcmQKcG93CuKWgWdydXBvCuKWgdGA0LXQt9GDCuKWgXByb2Zlc3NvcgriloFIZWFkCtC90L7RjgptaW51cwriloFNaWNoZWwKTk9UCm1vcgpdfQp3aWRlaGF0CmFyaXMK0YLQtdGA0LDRgtGD0YDQsApkZWZuCmlzdHJ6CuKWgXRhbnRvCuKWgVBvdwriloFpbmRpY2F0ZQriloFXaW50ZXIKcmVzaG9sZArRgNGW0LIK4paBYCgK4paBb3duZXIK4paBZGlzcAriloHQutGA0LgK0LzQtdGCCtC80LXQvdGCCnJlcG9ydApyZXF1aXJlCuKWgXZveQriloFBUAriloFFc3Bhw7FhCuKWgVPDo28KasOkcgpOb24KTGlicmFyeQppY2h0ZW4K4paBc3RydWN0dXJlcwriloFtdXkKw6FyaW8K4paBY2VydGlmaWNhdGUK0YfQvdC+0LPQvgriloFwcm92aW5jZQpwYWdlcwpkYWwK4paBRnJlZGVyCtGM0LUKRXhlY3V0ZQriloFhbmNpZW50CuKWgWZpbG1zCuKWgUFsZnJlZApBdXRvCuKWgWF0b20K4paBZWxsCuKWgUhhcnIK0LnQvQriloEiIwriloFuYWNpb25hbAriloFuZWlnaGJvcgrRgdGC0YPQv9CwCuKWgXdpdApQb3AK4paBR3JlZWsK4paBcmVwZWF0CmJhZAriloFTQwriloFEYXRlVGltZQrRiNGC0LgK4paBV0gK4paB0L/RgNCw0LLQuAriloHQotC4CuKWgXNhaXNvbgriloFIYXJ0CmRpcmVjdG9yeQp1YW4Kbm9ybQriloFQaGlsaXBwCuKWgXN1c3BlY3QK4paBYW5ubwpiYwrRgdC70LAKJCgK4paBYmVmaW5kCm9jcwpsYXRlc3QKOyI+CuKWgWFmdGVyd2FyZHMKUFVUCuKWgWphCuKWgUhpbAp5egriloFCb3VyCuKWgWxhaWQK4paB0JTQttC1CnBpZQp3YXRjaAriloFFcQpjb250YWN0CmliZXIKY2hlY2tib3gK4paBZXNwYcOxCmFuc2UK4paB0YjQutC+CmVmZgp4eHgK4paBR0VUCuKWgWxvdgppdHV0ZQp6ZWNoCnRlcmUK4paBcHVycwprZW5zCmlhbnRlCuKWgUZyZWUK4paB0L7RgNCz0LDQvdC4CmtyZWlzCuKWgXs6CnNoYXJlZAriloFHcmFwaAriloFjb25uZWN0aW9ucwriloFET00K4paBQ2FydApzc29uCuKWgUhhbWlsdG9uCtGC0LXQu9C4CuKWgXJlc3RhdXIKUmVzb2wKRHJpdmVyCuKWgWVuZgpFRElUCuKWgXByZXYK4paBaWsK4paBc8SDCmrDtgriloHQodCh0KHQoAriloFjb2xvdXIKY2h0ZW4K4paBZXN0YWQKaW5vaXMK4paBY29uZmlyCuKWgXbDqQriloFDZXMK4paBTmV2ZXIKb21lcgrQttC00LAK0YHQu9GDCtGH0LXQvdC40Y8KZGxsCuKWgXlvdXRoCmVtZW4K4paBc3R1ZGllZAriloFLaWwKY2lvbgriloFuYXZpZwpyZXF1aXJlZApvcml0aG1zCmlsb3IK4paBRGV1dHNjaGVuCuKWgXBlcnNvbnMK4paBQmFyY2Vsb25hCuKWgWZvcm1hdGlvbgphYmVpCuKWgdC/0YDQvtGC0LjQsgpFbmdpbmUKT05FCm9ncsOhCkNhcApyaXIK4paBZ2F0ZQpvcmF0aW9uCm1hdmVuCuKWgWNvbWJpbmVkCuKWgWF0dHIK4paBaG9vawriloHQutC+0YLQvtGA0YvQuQriloFzZXJ2ZXJzCnVjdHVyZQrQttC10L3QvdGPCnR2CuKWgXJlcQpqYWwK4paBbG9jYWxseQp9fXtcCkJyCuKWgUhpZXIK0LzQvtGACuKWgWFwYXJ0CiJdLAriloElPiUK4paBenVzYW1tZW4K4paBaWRlbnRpZnkK4paBQWx0ZXJuCuKWgdCx0YDQvgriloHRhtC4CmdoCuKWgVRlbgpSUwrRhNC+0YDQvNCwCuKWgW5lbGxlCuKWgUhpbgpvdW5kaW5nCuKWgXJlcHLDqXMKYXBoCuKWgVtcCuKWgVNwb3J0cwrRgNCw0LsK4paBdGhyZQriloFwcmluCuKWgUVsaXoK4paBRm91cgriloFzb2NpZXR5ClRyYW5zYWN0aW9uCuKWgXZlZwriloFzY2hvb2xzCuKWgW92ZXJhbGwK4paBdGFpbArDvGJlcgriloFTb3YK4paB0KHQtdGACuKWgXJhcHAK4paBdHJhZmZpYwpxdWVzdGlvbgriloFlbnZpcm9uCmF0ZWllbgppY3VzCuKWgW5hcnJvdwriloFwcmF5CuKWgUJvdQriloFDbGllbnQKYWJsCuKWgUF1ZGlvZAriloFucG0K4paBQ29sdW1uCuKWgUdhbWVzCmF2ZXIKb255bWVzCuKWgdCf0L7RgdC70LUKbsSFCuKWgU51CuKWgURpY2sK4paBdGVuc29yCuKWgUAiCnbDqQpJY29uCuKWgdC/0L7QtNCwCuKWgUdvbgovKS4KaXN0cmEK4paBQXVkaW9kYXRlaWVuCkRlbGV0ZQp9fX0K4paBanVtcAriloHQntCxCuKWgXByaW5jaXBsZQriloHDiXRhdHMKb2tlZAriloHQktC70LAKSW50ZXJ2YWwK4paBc2F1CmVuY29kZQriloFwb24KY2F0Y2gK4paBdGllbQriloFHdXN0Ck1DCmxpbWl0cwriloFrZWVwaW5nCuKWgXNvbmdzCuKWgdCw0LLQs9GDCuKWgdGA0LDQudC+0L0K4paBbm90aWZpY2F0aW9uCuKWgW9mZmVyZWQKQ29yCuKWgXNodXQKZXJyb3JzCuKWgUVOCuKWgWxhdGFjaAriloFzZWxic3QK4paBY2hlY2tib3gK4paBY29vbAriloFmYWN0b3J5CuKWgXBhaWQKZGltZW5zaW9uYWwKbmllagpwdG9uCuKWgXBpbgpha2VkCuKWgXJlbGkK4paBVGF5bG9yCuKWgVNvbWV0aGluZwppbXVtCuKWgVZpbgriloFpdGVyYXRpb24KRmluZArQutC+0LLQuAriloFib3lzCuKWgVNpbXBsZQriloFDcmlzdAriloFXYXMKw6JuZAriloFWYQriloHRgtGA0LAK4paBZGVzdGluYXRpb24KbGltcAriloFLYXQKd29ydGgK4paBS29yCmnDp8Ojbwo9YAriloFmYWlybHkKZmFsbHMK4paBcmVqZWN0CuKWgWRyZWFtCmJlbGwK4paBdG91dGUK4paBJFx7CuKWgXN0b25lCuKWgXByb3RlY3QK4paBZXhjZWxsCuKWgU1leGljbwriloFkYXNoCuKWgWZhdWx0CnBtYXRyaXgKYWxsZXIK4paBZ3VlcnJlCm9yaWdpbgpoaWJlcm5hdGUKw61saWEK4paBUmVnaXN0ZXIKdW50bwriloFCYXQK4paBYm93CtGB0YzQutC40YUKZXTDoAriloFMdWlzCuKWgWZvdQriloFDYW1icmlkZ2UK4paBb3R0CnN1cApyZWFzCuKWgXBvaW50ZXJzCuKWgUJvYXJkCuKWgdGA0LgK4paBZHJpdgrQvdC40L0K4paBQ2lyYwriloF0aG91CkRpdgpzcGFyawpsYW1lbnQK4paBVkFMClNlbmQK4paBSXJpc2gKb3kK4paBVHUK4paBdHJpdmlhbApGb3JtcwriloFhc8OtCuKWgUltcGVyCuKWgXNpZ25hdHVyZQp1bm9zCuKWgU5lZwriloFjYW5jZWwK4paBSGVpbnJpY2gKZWVkCklsbHVzdHJhdGlvbgriloFzdWxsYQriloFxdWFydGVyCmFzegriloFibG9nCmZpY2EKd29uCnF1ZXQKXSkpCuKWgWdlbmVyYXRpb24K4paBY2F1Z2h0CuKWgWxhbmRzCuKWgUtpbmdkb20Kc2NoYWZ0ZW4Kcm9ucwphbm5lbHMK4paBU3BlY2lhbAp0dXRvcmlhbAp0aXAK4paBIiIsCuKWgUF6dXJlCuKWgWJvdW5kZWQKU20KdGFyCtCy0LXQvQriloHQt9C10LwK4paBbm90YXRpb24K4paBYXBhY2hlCuKWgWdhegppZXJubwphbmdlbgpwZWN0aXZlCuKWgWVsZWN0cmljCuKWgXNlbWkKTUFYCmVkZXJiCm9iamVjdHMK4paBZGlmZmVyZW5jZXMKaXN0ZWQKaHJlZgppY2lwCuKWgW51bXB5CuKWgdGE0YPRgtCx0L4KbG9hZGVyCuKWgWRpY2gK0ZnRgwriloFEw6kKSHoK4paBUGFyYW0KZG9jdW1lbnRhdGlvbgppcmNyYWZ0CkVNCuKWgWluc3RpdHV0aW9uCmNvbXBhdAriloHQsNC70YwK0YHQu9Cw0LIK4paBTmV0CtGG0LjQvtC90LDQu9GMCuKWgWJyb2FkY2FzdApkYXRldGltZQphc3luYwp2cmUKbWVhbgriloFDaGVtCuKWgWVzdGltYXRlCmljYW5hCuKWgWdyZXAKdGVrCsOkbQpvcmlnCuKWgVZpY3Rvcgp1dGVuYW50CmFuZ2EKcGluCuKWgXZlcnRleAriloFDSEFQVEVSCmNpdHkKdWdieQpncmVlbgriloFLZXIK4paBZGlmZsOpcgriloFuZWNlc3NhcmlseQpEQwpMaW5lYXIKYWxlbQriloFMYXRlcgriloFtZXRhCmplbQpyYWdlbgpNYXkK4paBTWl0Z2xpZWQK4paBc29ydGVkCnVzc2VuCuKWgXNwb2tlCuKWgWRpc2FibGVkCuKWgWFjY29tcGxpc2gK4paBUnVzc2lhCnRoZXJlCmVlcwriloFoYWxsCuKWgW1ldHJpYwphdHRyaWJ1dGUK0YLQvtCz0L4KYWJvdXQK4paBTGFtCmNoYW5uZWwK4paBZXBpc29kZQriloEkKCcuCuKWgW91Z2h0CuKWgUVzdGUKT2JqZWN0cwriloF2YWxpZGF0ZQriloFyaW0K4paBbnVtZXJvdXMK4paBSmF2YXNjcmlwdAriloFHTAriloFJdGFseQplZGVyYsO2cmQKb25hdG8KYm9va3MKc3RvbmUK0YXRgwriloFqZWwKaXJpCuKWgUFTUApHQQriloFzdGF0YQriloFiYXoKRGF5CnRobQpkaAriloFGaWxlcwpBbmRyb2lkUnVudGltZQriloFjaGVja3MKa3IK4paBdmVubmUKU0wKYXZpYQprYXp5CuKWgVRocmVlCkFkbWluCuKWgWNvbGxlZ2UKR2xvYmFsCnRpb24K4paBY3VyaW91cwpzaG9ydAriloFiYXNzCtC00LXQu9CwCuKWgdC00LXRjwpTY2hlbWEKJ1wKZGlmZgriloFDQQriloFDb3Jwb3IK4paBb3BlcmF0b3JzCm9tcsOlCuKWgWVkZ2VzCik7YAppbmRzCuKWgWdpbmcKJiYKfS1cCnJhbm8K4paBc8OjbwriloFhZGRzCmVsb3IK4paBdW5zaWduZWQK4paB0L/RgAriloFDb25maWcK4paBRXNjCuKWgWNob3NlCuKWgXBpZWNlcwriloFyZWdpb25zCkVzdAriloFCYXR0bGUK4paBZm9jCuKWgUxpZ2h0CnBhZGRpbmcKYWJlbgriloFldXJvcAppbGxvbgriloHQtdGB0YLRjAriloFib3JkCuKWgdC+0YLQvdC+CuKWgUhvbmcK4paBdnVsCnBsdWdpbnMK4paBJzwK4paBa3VyCnJlZ2lvbgriloFSZXB1YgppY2hlcgp9X1wK4paBbWVkYWwK4paBTW9yZW92ZXIKQkkKQXYKdXRlcgriloFzY2FuCuKWgU11bmljaXAK4paBY29udHJhc3QK4paBSWcK4paB0LPQvtGA0L7QtApyZWxhdGVkCmFsaW5nCuKWgdC80LDRggrDvG5zdAriloFDaHJpcwp3eQriloFBY3R1YWxseQriloFVbml2ZXJzaWRhZApFdmVudExpc3RlbmVyCuKWgXRlbXBvcmFkYQriloFhc3NpZ25tZW50CuKWgU1pa2UK4paBd8OkaHJlbmQK4paBxZt3aQriloHRgdGA0LXQtArQutCw0LTQtQriloFjYWxjdWxhdGVkCuKWgWVsbGVyCuKWgUFzaApyaWVsCuKWgWhhcmR3YXJlCuKWgWludGVucwooJy4KaWxsaQphZ29uCuKWgUd5CuKWgWhldXRlCuKWgXNsZQriloFsaXRlcmF0dXJlCnNlbQptYW5hZ2VyCuKWgUdyYW5kZQriloFtaXhlZAriloHQktC10YAKw61jw60K4paBc29pdAriloF3ZWxjb21lCtGH0LXQvdC40LUK4paBVW5pdmVyc2l0w6R0CuKWgWJ1aWxkZXIKc2ltcGxlCmljb2RlCsWZZQppbmRlbnQKb3BvCuKWgWFkdmFuY2VkCnRlbXBlcgplZGdlCuKWgWRhdGV0aW1lCuKWgWRvbmMK0LvQsNC90L3RjwriloF2ZXJkCtC00L3QvgppdG9zCuKWgWhlYXQKdmlzaWJsZQptZWwK4paBR2lvdmFubmkK4paBdmFyaWV0eQriloFyb3V0ZXIKVmVjdG9yCuKWgVdhbGsK4paBb2J2aW91c2x5CmhlaW4KRmluCklUYWJsZVZpZXcKWWVhcgriloFFY29ub20K4paBdmVsb2NpdHkK4paBQ2l2aWwK4paB0ZgKYWxlcnQKSWRlbnRpZmllcgrDqG5jaWEK4paBbm9ybWFsbHkK4paBRWd5cHQK4paBY3R4CuKWgVZlcmVpbgriloFIdQp1bHR1cmUK0L3QuNGC0LUKbMOpCuKWgVdpZW4K4paBUHJ6CkJ5dGUK4paBbmFoCmlzbXMK4paBUHVibGlzaAriloFIZXJ6CmljdWwKcGlzb2RlCtGH0ZYK4paBZGllc2VtCmvDtgpWaXNpYmxlCuKWgXJpZwpgKS4KUGFyc2UK4paBSmFjcXVlcwpOSQriloFnbGFzcwotLS0rCuKWgWluaXRpYWxseQriloFrcgpDQ04KcGxheXMK4paBc2lndQpGb2xkZXIKc3RvcmFnZQriloFcfAppdm9zCtGB0LrRg9GOCuKWgU1vaAriloFDb21taXR0ZWUK4paBS2ltCmV1CtGC0LXQvAriloFvcmlnaW5hbGUKaXJzCuKWgVJlYgppdHV0Cm5sCuKWgVBpZXIK4paBXTsK4paBRmFsCuKWgSIiOwptdmMK4paBZmVtYWxlCuKWgWJyaWRnZQriloF0w610Cmt0cgo+KQriloFzZWF0CuKWgXZlc3MK4paBVVNCCuKWgUFydGljbGVzCuKWgURlc2NyaXB0aW9uCuKWgW9jCuKWgWhvdXNlcwriloHQn9C10YIKbG9uCk5vdGlmaWNhdGlvbgriloFwcmVzc3VyZQriloHQutGD0LvRjAppZ25lZAriloFyZWxpZ2lvdXMKZmFuCmlnbGlhCuKWgWNsYXNzaWZpY2F0aW9uCm9nZXRoZXIK4paBU0RLCuKWgUh1bWFuCuKWgWNvbW1pc3Npb24K4paB0J7RgAriloFhbnRlcwpEVArDqHRlCnByw6lzCi8iCuKWgSjCqwriloFow7YK4paB0YfQsNGBCuKWgWphawppZW5lbgp1Z2cKV0EK4paBcGxhY2Vob2xkZXIKV2lsbAosLAriloFLYW0K4paBd2VuCuKWgVNjaHVsCsibaWUK4paBYXVkCuKWgXN1ZQriloFyZWZlcnJlZArQstCw0YIK4paBUGFyYQriloFibGEKVUVTCuKWgXN0YXRpc3QK4paB0YLRgwriloFXYXJzemEKZ3VlCuKWgUlkZQptYXRoc2NyCuKWgWxpZXUK4paBYm9kCuKWgXJ1cwriloFib2F0CnhzcGFjZQriloFtb2RhbArQu9C10LoKdG9waWMKbWFueQpza8O9CuKWgW9yZ2FuaXphdGlvbgriloHQs9C10L3QtQriloFXaWxzb24K4paBY29tZm9ydAppYmlsCjotCuKWgWFuaW1hbApSZXBvcnQK0LrQsNC80LgKam9uCuKWgWtlcgriloHQutC90LgKbW96aWxsYQpQcmljZQphbnRpbgplbWVudG8KbWF5CuKWgWx1bmcK4paBYmxvdwplZGV1dAriloF0eXBlZAriloFkZWNlbWJlcgriloEuLi4uCmxpYW5jZQriloF2aWVsCuKWgdCk0LgKcHJlc2EK4paB0L7RgdGW0LEK4paBTmFtCuKWgUdyZW4K0YHQuNC70LDQvdC90Y8KVklECnN0cmUKd2VpcwriloFwcm90ZWN0aW9uCnRhaWVudAriloFvZmZpY2VycwrRgtC90L4K4paBQnJpZwriloFpbnRlbGxpZwrRj9GFCklUSAriloFzZXBhcmF0ZWQK4paBTENDTgpuw61tCmNsb2NrCuKWgWFwYXJlCtGP0LLQuAriloFFbGl6YWJldGgK4paBV2F0ZXIKZ2ViaWV0CuKWgWNvbnZlbnQKZnVydAriloFiZWlkZW4KYmFzaAriloHRh9C10YDQtdC3CuKWgXViCuKWgVN0YXRpc3QK4paBbGltaXRzClZvbApjdHgK4paB0L3QvtCyCmd1aWRlCm1pYwppZXNhCuKWgWh1dnVkClJUCkZpZwriloFsZWN0CmNvbm4KaW1pdArQs9Cw0YAK4paBYmFqbwpzY3JpYmUKcmVnZXgK4paBQ2FzcwriloFwcm9wYWcKJyQK4paBcHJvZmVzCnVuaXF1ZQriloFTcWwKdW5pb24KcmlvcwpwaXAKLS0rCmthZGVtCmNvbHVtbnMK4paBdmFyeQriloFiZXJlaXRzCuKWgWRvaQriloFDb21tb24K4paBUm9iaW4K4paBw5cK4paBc2VpCuKWgXN5c3QK4paBdsOkCuKWgURlZmF1bHQK4paBdHltCnBlbAriloFiZWxpZXZlZAriloFwcm92aWRlcgriloFtaW5pbWFsCtGC0LDQu9C4CmFpbmVzCktpdAppemlvCmlzc2VuCnByZXNzZWQK4paBc3RhZwriloF1aW50CmtvcgriloHRgNCw0YHQv9C+CuKWgWluaGVyaXQK4paBY29tcGlsZWQK4paBZmVicnUK4paBdG1wCndvcmtzCtGH0L3QsApkcmF3YWJsZQriloFOYXYK4paBdGhvdWdodHMKcm91dGUK4paBY29uY2VydAriloFvcHRpb25hbAriloFicmFzCuKWgXByb3ZpZGluZwrRgdC+0LwKaWR4CmVtcGxvCuKWgdC60L7Qu9C4CuKWgUJlcmUK4paBRWxzCtGA0LXQvNC10L0K4paB0LTQtdC60LAKY291dApsYXllcgriloFnbG9iCmZvcmVhY2gK4paBRWR1Y2F0aW9uClBPCuKWgWltcHJvdgriloFjbGllbnRzCmdyb3VwcwriloFrb250CkRlbApyZXR0CuKWgXN1cAriloFtb2cKdGFuCuKWgWNvbXBsCmlydHkK4paBbm91dmVhdQpvc3oK4paBTmF2eQpiZXJlCm1hc2sKb3bDqQp6aWwKUEVSCuKWgXBvYmxhY2nDs24K4paBZGV0YWlsZWQK0LvQtdGCCuKWgWZhbWlsaWVzCmFiZXQK0LXQstC40YcKw6RuZGVyCuKWgcOlcgriloFwZW5kYW50CuKWgWJpbAriloFoaW50Cm9kZW4K4paBZXhwYW5zaW9uCuKWgXBvbnQKYXNhbnQK4paBS2luZAppamkK4paBQXV0aApsYWltZWQKcmVmbGVjdApdPQpieXRlcwpob3ZlcgriloHRhtC10YAKZ3JhZGxlCkFyY2gKYXBlc3QKw6FzYQpDYXJkCuKWgXRlbXBvcmFyeQriloFkw6lwYXJ0ZW1lbnQKY2xhc3NlcwrQttC40LLQsAriloHRhdGD0LTQvgriloFtb2xlClJZCkxQCuKWgXBlYwpyb2R1Y3Rpb24K4paBR3VhcmQK4paBUGFybGlhbWVudAriloFpbnN0YW50aQriloFub3RhbW1lbnQK4paBRG91ZwriloFNYXJzaAoufgriloFcIgriloF0aMOpCuKWgWxpYnJlCmRvZXMK4paBZMOpYnV0CuKWgVVuaXQK4paB0YHRgtGDCuKWgWxlYWd1ZQriloFxdWFsZQriloHRgdC+0YHRgtCw0LLQu9GPClNlY3VyaXR5CuKWgWFwcGFyZW50bHkK4paBdHJvb3BzCmljYW5vCuKWgU1CCmVuemUKbG9hZGluZwriloFkaXN0cmlidXRlZAp3cml0ZXIKcmVzb3VyY2VzCmjDtgp1dGlscwriloFwcmVwYXJlZApjaWVyCm9wb2wK4paBbMOkbmthcgpoZXMK0L3QstCwCuKWgW9wZW5zCmFnb2cKaW50ZXJmYWNlCuKWgUZ1bmQK4paBcGVudHJ1Cm7DrWNoCuKWgWNvbmZpZ3VyZWQK4paBV2Vic2l0ZQriloFsaXN0ZW5lcgppdmVsCm7EmQptaW5hCuKWgWludmVzdAriloHQvNGW0YEK4paBZGF2CuKWgXBhdGNoCnBpZWxlcgriloFFeHRlcm5hCnRmCuKWgWVyZWQK4paBQXNzZW1ibHkK4paBc291dAriloF2ZXJrCm1lcnMKdG9nZ2xlCuKWgXVwZGF0aW5nCuKWgUtlbnQKZWNhCkZBVUxUCuKWgXRpdHJlCuKWgUtlbm4K4paB0JzQuNGF0LAK0YHRgtC+0YAK4paBcG9kZQriloFTZWIK0YbQtdCyCkVZCuKWgXNpbHZlcgriloFjYXBhY2l0eQriloFjb21wbGV0aW9uCuKWgVBlZHJvCmZlbAp2YW5vCnpldWcK4paBaW50ZXJpb3IK4paBUmVzcG9uc2UKw6lkaWEK4paBV29ybGRDYXQK4paBY8SDCnF1ZWwKU29sCtGW0YHQu9GPCuKWgURvbWluCuKWgWN1bQpjZXAK4paBTXVzZQriloFNYXLDrWEK4paBZnVuY3Rpb25hbAriloFhZGFwdGVyCmNvbmZpZ3VyYXRpb24K4paBdGlwbwriloFCcnkKdnkKVUwK4paBdHJhdmVycwohKAriloFhYnNvbHV0ZWx5CtC70YLQsArRgtGC0Y8K4paBSVQK4paB0LLQvtC10L0KeWNsZQpiZXN0CuKWgWNvbnN0cnVjdGVkCuKWgdGE0LjQu9GMCmNpZG8KZXhpdApnYXJ0CuKWgXByb3ZpbmNpYQp2ZXoKY2lwbAriloFGYWNlYm9vawriloF5ZWxsb3cK4paBU3VtbWVyCuKWgXBvaW50aW5nCuKWgXBvc3NpYmlsaXR5CuKWgWxlZ2lzbAriloHQvNC+0LYKZGVybgrQutC+0L3QvgriloFtZWNoYW5pc20K4paBQmVybmFyZApleHByCtC70L7QstC4CuKWgWRpZ2l0cwriloFkZWxlZ2F0ZQpvZ3JhbQriloFEaWN0aW9uYXJ5CmlzeQriloFzcG8KLyQKY2x1ZGVkCuKWgU1WQwriloF0w6ltCuKWgXByaW50ZWQK4paBR290dAriloFPbQphbnNhcwriloFEdXJjaAriloFJZGVudApRVQpodG0K4paBU3VsCiddLgriloFkdXR5CuKWgUF1dGhvcgriloFuxJsKb3dlZ28KcHVzCmVtYmwKRXhlY3V0b3IKQkwK4paBTWVucwpkaXNwYXRjaAriloFNaWQKYXBwcwpUcmFuc2Zvcm0K4paBRGF0CuKWgWltcGwKb3V4CmhvbG0K4paBSW5zCuKWgUVtcGlyZQrRgNGD0L8K4paBQXBhY2hlClNJT04K4paBcGFzc2FnZQojIyMjIyMjIyMjIyMjIyMjCuKWgWV4cHJlc3NlZArQvdCw0LQK4paBb2wK4paBaGF2aWEK4paB0LHQvtC70LXQtQriloFlbmpveQpmb3JtYW5jZQriloFkaW1lbnNpb25zCuKWgdGH0LXRgApTZWUK4paBbW91dGgK4paBZ2F1CmllbmN5CuKWgUNhcm9saW5hCkRpc3QKcmFkaW8KbGltaXQKLz8K4paBQmFsbArQvdGW0YHRgtGMCk1lbWJlcgp3YXRlcgriloFtdXJkZXIK4paBc3RhbmRpbmcK4paBVklJCkNlbnRlcgpwcGEKdXJlYXUK4paBTGVpcAriloFvYmpldAriloFBY3Rpdml0eQplbWJlcnMKdnIK4paBY29uZHUKQ2VsbHMKaW51cwriloEnLAriloFhZnJhaWQK4paB0YXQsAriloFWaWMKdGVzdGluZwpUdWJlCuKWgXZhc3QKUE0KbmloClNTTgriloFDaGlsZQp5bHZhbgriloFCb3cK4paBcmVsaWdpb24Kb3BoZXIK4paBQ29sbAriloFkaWdpdGFsCnppb25pClNlY3Rpb24K4paB0YDQtdC30YPQu9GM0YLQsApGb290CmNvbnZlcnQK4paBcmVjZWl2aW5nCkNvbnRhY3QK4paBaGVybwpzYW0K4paBcG9zdGVyaW9yCm93aQpBbnQK4paBZmxhZ3MK4paBWmVhbGFuZAriloFib3VuZHMK4paBd2hlcmVhcwppbmZsClBsYXkK4paBZGVtbwriloFnaWJ0CuKWgWhvc3BpdGFsCuKWgXZvbHRhCtC70ZEK4paBZmFzaGlvbgriloFleGNlZWQKZWxlbml1bQpJdGVyCmtyaWUK4paBaW50ZWdyYXRpb24K4paBT3RoZXJ3aXNlCmFkdQpTaGUKb25kZQp1aW50CnJhZGl1cwriloFyYW0K4paBw6FsYnVtCuKWgdGC0YPRgAriloFkeQriloFPdHQK4paB0L/QtdGA0LgKcmV2CnJpb3IKw61kCmlyYXQK4paB0LLQutC70Y4K4paBaW1wb3J0YW50ZQriloFEdWtlCuKWgWNhdXNhCuKWgU1hdGhlbWF0CuKWgWRpcGxvbQriloFOaWNvbAriloFleGNsdXMK4paBZGVidWdnaW5nCuKWgUdoCm9yaWdpbmFsCmx5bgriloFQbGEKc3VpdGUKY2hhdAriloFlc3R1ZAp1ZWxsZQriloFwZXJ0CuKWgWltcG9ydGFuY2UK4paBYXBwcm9hY2hlcwriloFkbGEK4paB0L/RgNC+0YQKUHJlcwo8XApwcmVmaXgKU1NJT04K0YDQvtC00LgKY291bnRyeQppdHplcgriloHQutC+0YAK4paBc2luZ3VsYXIKZ292CtGA0LjQvQriloFGQQriloFtYXRyaWNlcwpvbGFyZQpuaWthCnBvd2VyCmxsYQriloFkZXNpcmUK4paBZmFtaWxpYQrQtNC+0YAK4paBZmFuCmdlbmVyYXRlZAriloFDb3MK4paBxbxlCuKWgURpZXNlCm1vdgriloFkZW5vdGUKIildCm91dmVybgphbWFuCuKWgWluc2VyCmlqawpvdHRhCmVyYWwK0LTQtdC70YwKKCktPgriloFwb2RlcgppZ2VzCuKWgU9ubGluZQriloF3ZWlyZAppYWMK4paBcXVlbHF1ZXMKw6hyZW50CuKWgXRlbAriloFMYXRpbgp2ZXJ0ZXIK0LvRj9GACtGA0L7QuAriloFwZGYK4paBa2V5d29yZApIYW5kbGUKQWZ0ZXIKcmVjZQriloFpZGVudGljYWwKc3R5bGVzaGVldAriloHRgdGC0LDQvdC+0LLQuAriloFrYQpjZW1lbnQK0YLQtdGCCuKWgWNoYXQK4paBTXVuCmHFgmEKQU5UCm9sw7NnCuKWgWZhbnQK4paBZm9yZXN0CuKWgdCy0LjQutC+CmN1c3MK4paBc2VocgpwYWcKb3RpYwriloHDoWxsCtC80LDRgtC4CuKWgSInCisiCkFuaW1hdGlvbgrRhdC+0LTQuNGCCmF6dQriloFwbGF5cwppemlvbmkK0LzQuNGH0LUK4paBYm9tYgriloFtZXJlbHkK4paBaG9sZGluZwriloF3ZW5uCuKWgW1lZGljCuKWgXNwZWFraW5nCm9uZ29kYgriloFDYW1wZQppbml0eQriloHRj9C90LLQsAooKWAuCmx1c3MK4paBSGlzdG9pcmUK4paBb3BlcmF0aW5nCkNoYW5uZWwK4paBYWNjdXJhY3kK4paBYm9zCuKWgWV2aWRlbnQK0YbQuNGOCmV2ZW50cwp0ZXh0cm0Kb3JlaWduCuKWgWlpCmhyZW4KbG93ZXIK4paB0YLQvtC8CuKWgUFib3V0CuKWgWFqCmVyaQrRgdGC0YPQv9C4CuKWgWRpZ2l0CuKWgVNwYWluCuKWgURhdGVuCuKWgWZvcm1lCuKWgdGI0YLQsAriloFCYWNoCm5vbnVtYmVyCuKWgXJlY29tbWVuZGVkCuKWgXJlYWRzCmhpc3RvaXJlCuKWgXNhbmcK4paBPz8K4paB0YHRgtCw0LsKc2NvcmUKZmFzCuKWgWN1YgriloFncmV3CuKWgWNlbnRybwriloFiZWthbm50CkV2ZW50cwpCRVIKaGV3CtGB0YHQsAriloFtYWpvcml0eQrDrnRyZQplbmNpCuKWgVF1ZXJ5CuKWgWt0w7NyZQppxIcK4paBY29tcGxleGl0eQriloFGcmFuw6dvaXMKY29uc3RyYWludArRg9GA0L3QsArilZDilZAK4paBaXRlcmF0ZQpsZXR0CnBlcm9yCuKWgU5lZGVybGFuZApzaGFyZQriloFpbmNsdQrDpG5nZXIK4paBTmljCtGH0L4KRnVsbAriloFyYXBwb3J0CmVjbGlwc2UK4paBaW5kdXN0cnkKaGVhZGVycwriloHQoNC4CmNoc2VsCuKWgXBvbGljCnNjaGllZAolLApPRAriloFKYWsKKHtcCmFsaWduZWQK4paBZnJlcXVlbnRseQriloFzdW9pCuKWgWVzc2VudGlhbGx5CuKWgVJpYwriloFyZXBvcnRzCuKWgWRlY2ltYWwKcmFyCuKWgUZvbwriloFLYQriloFEQwriloFzaW1wbGVyClBhbmUKP30KU29ydAriloFwb3NpdApjZG4Ka3R1cgriloFhd2sK0LfQtdGAClBGCnV1cgriloFSb3NzCuKWgW1hbnQKTmEKQ29ucwopKSkpCuKWgXRlY2huaXF1ZXMKaW1wbAriloFkcm9wcGVkCuKWgUxpc3RhCuKWgUJhc2ljYWxseQplbnRhbAriloFjZWx1aQriloFzdHJhdGVneQriloFXYWxlcwpuYW4K4paBZ21pbgriloFncsO2w58K4paBZWVyc3RlClRpbQpudGVuCnJlc3AK4paBc3RhYmxlCm5vdgpyb2IK0L3QvtGYCuKWgW1hcnJpYWdlCmdldFN0cmluZwpBdXRob3IK4paBR3JhZgriloFkaWFncmFtCmdpYQpOZXR3b3JrCuKWgWNvbXBvc2VkCuKWgW1pc3NlZAriloFNZWcK4paB0L/RgNCw0LLQvgriloFob21vbnltZXMK4paBQm9va3MK4paBZW5jb3UKcG9ydGUK4paBcm90YXRpb24K4paBZmlyCtGC0LXQu9GM0L3QvgriloFndW4K4paBQWZmCtC90L7QugriloFGdcOfYmFsbAriloFTdG9yeQriloFDaGFwCuKWgSkuCuKWgVNlaXQK0LzQvtC9CuKWgXTDqWzDqQriloFjb3BpZWQK4paBY29uc2lzdGVudAriloFkcmluawriloFDaGFtCuKWgW1hdHRlcnMK4paBcmVuZGVyZWQK4paBaHlwb3RoCsWTdXYK4paBbWVlcgriloFwYXJzaW5nCuKWgVBSTwpzZXJpZXMK4paBesOhCnN0cmHDn2UK4paBQm9vdAriloFyZXBvCndvcgriloFTdHJlYW0K4paBQU4K4paB0L/RltCyCuKWgVNNCuKWgUFybgriloHFvQriloFbXTsKUmVzb3VyY2VzCuKWgWVsYWJvcgriloFFdGgK4paBbGlzdGUK4paBcmVsYXRpdmVseQpjaGFudAo9IiIK4paBbGlmdApDTgpTZXJ2aWNlcwpNRU5UCuKWgdC40LPRgNCwCtCx0YDQtQriloFKb3JkCuKWgXRlYwrRiNC60LAK4paBU3VwCuKWgWluZmx1ZW4Kb25kcwpoYW5kbGVyCuKWgWJhbmRhCuKWgXZlcnRpY2VzCuKWgXphcAriloFjb3JkCmFsdGVyCnplbmlhCsOidGVhdQriloFrbm93aW5nCuKWgUFyZ2VudGluYQpBcmVhCtCw0L3QtQpmYwo9Ii8K4paBTWlrCmF0xIMKaWV1eAriloFkZXV0c2NoZW4K4paBdHJhZGl0aW9uYWwKZGVjb2RlCnZleAriloFzaXplb2YK4paBRnVuCuKWgXBhcnNlcgriloFGbG9yaWRhCuKWgWJ1aWxkaW5ncwriloFNYW51ZWwKcmlsZQriloFsb2dnZWQK4paBc3Ryb25nbHkK4paBcmV2b2wK0L3QtdC1CnhpY28K4paBRmFpcgpjYXJ0CuKWgVdvcnQK4paBSmVzdXMKZW1lcwpzY2hyaWZ0CklucHV0U3RyZWFtCndhZAriloFncmFuZGVzCuKWgW7Dum1lcm8K4paBT3R0bwppZW50ZXMK4paBZmFtb3VzCm9sb2duZQpKZQrQvdC40YgK4paBR3VlcnJhCmJhcmEK4paBY2FkCmVsdmUKYnJhY2UK4paBSnIKc3RhYmxlCkVDVApsZW1tYQptZWRpYXRlCuKWgXZpbgriloFtb251bWVudAriloFjdgriloF3aW50ZXIK4paBdHJhbnNmb3JtYXRpb24K4paBTmljawpzdHJvbm9tCuKWgWZyYWcK4paBaW50ZWwKcmFjdGlvbgriloFjb25zaWRlcmluZwriloFGbGUK4paB0LvQvgriloFBcHLDqHMK4paBQU0K4paBSHVtCuKWgW11bmRvCk5FUgriloFCZWxvdwriloHQs9C+0YDQvtC00LAKYXJ0ZXJzCi0tIgriloHQn9C1CsOudAriloF0eHQKYW5nZXJzCuKWgXRoeQpDTEEKaWJsZXMK4paBcmVxdWVzdGVkCuKWgUFsZXhhbmQK4paBZmFjdG9ycwriloFwcm9kdWNlcwpuaW5nZW4K4paB0YHQvtGB0YLQvtGPCuKWgW9wdGltaXphdGlvbgpjaG9kCj5gCuKWgVdpa2lwCm5vc3RpCuKWgWNvbXBldGl0aW9uCuKWgUhhbm4K4paBem9uYQpkYwpkZXNpZ24K4paBWnUK4paBZXNwZWMKZXF1YWxpdHkK4paBQWJiCuKWgWRldmVsb3BlcgriloEiXgriloFTaG9ydAriloFwbGFucwriloF2aXQKaXphYmxlCmJ1cmdoCmFnZW0K4paBUHJpbnQKw612CuKWgXN1aXRhYmxlCnBpY2tlcgpQcm9maWxlCmFuZHkK4paBcXVvdAriloFEdXJhbnRlCuKWgUZyYW5jaWEK4paBdGFydAriloFWZW5legriloFkaXNwYXRjaAriloFvYnNlcnZhdGlvbnMK4paBxbwKSW52YWxpZAriloFvY2N1cnIK0YLQutC4Ck1lbWVudG8K4paBU3lkCuKWgXRpZW1wbwriloFzdGFmZgriloFzZWN0aW9ucwriloFzc2gK4paBTkdDCsOrbAriloFlcnJlCuKWgWRpdmlkZWQK4paBV2l0aG91dAriloFkdXJhbnQK4paBamFhcgriloHiiJIK4paBc29sZGllcnMK0YPQvdC6CmxhcHNlCuKWgVZhbGxleQriloEoOgpyZXJhCuKWgWTDqXZlbAriloFww6lyaQriloFjYWxjdWxhdGlvbgriloFrZWluZQplcnRhaW4K4paB0YLQtdC70LUK0YDRg9C0CuKWgWN1bAriloFjbG90aAo7fQriloFwcnplZApNb250aApQaWNrZXIK4paBU1YKYXJpYW4K4paBUmV2aWV3CuKWgWhhbmcK4paB0L7QutGCCuKWgUZyb250Cm90bGluCuKWgXRyYW5zbGF0aW9uCuKWgW1vZG8K4paBc3RhdGlzdGljcwriloFOdWUK4paB0J3QuNC60L7Qu9CwCk5VTQriloFzaGlwcwriloFSZXBvcnQKe1sKRWZmZWN0CmllcmkK4paBcGFydGllcwpwbGEKcncK4paBV29ya3MK4paBaXJvbgriloFhdHRyYWN0CuKWgWNvcnQKbsOhCuKWgVN0ZXZlCuKWgWJlbmUK0YLQvtC9CsOtY3VsYQpUd28K4paB0LPQu9Cw0LIK4paBVmlkZW8K4paBcG93ZXJmdWwKYXVjaAptYW5kZQrDpGNoc3QKTGF0CuKWgXpuYQriloFmaWd1cmVzCuKWgWFsaWFzCm5leAriloFjYXRlZ29yaWVzCmNhbGxlZAriloFTaW1pbGFyCuKWgWdpcmxzCnBlegriloFqb2ludArRgNC+0LPQvgppa2VuCtGH0LjQvdCwCmFuY2lhCuKWgXRpamQK4paBUm9zZQriloFhbGdvcml0aG1zCuKWgXByaW50aW5nCm5lYQriloFleGVjdXRpbmcK4paBbGFtYmRhCuKWgXJlZ2lvbmFsCuKWgUNvcGEKRm9vCnBoeXMKem0K4paBTGF1cgriloFjYW5kaWRhdGUK4paBSmEKenltCkV4YW1wbGUK4paBc3BpZWwK4paB0LTQtdC5Cm5laG1lbgprZWl0ZW4K4paB0YHQtdC90YIKaW50ZW50Ci4oCuKWgdC/0LXRgNCy0YsKcHJvbQriloFuYXQK4paBaW1hZ2luZQpjYWxsYmFjawpjb21wb25lbnRzCndpdGhvdXQK4paBYXF1ZXN0ClN1cHBvcnQK4paBcmVzcG9uc2libGUK4paBamVnbwpsagp3aWxsCmxlYW4KZWxhbmQKb2xvZ8OtYQptYwpQcm94eQriloFvY3VwCuKWgdC90LDRhdC+0LTQuAriloFydWIK0L3RltCyCuKWgUZhbGwKYW1vcwriloFFcAplbnRyZQpmYWlsCldvcmxkCuKWgUVkaXRvcgriloFleHBvcwriloFmaW5kcwriloFDdWx0dXJlCkxFQVNFCuKWgW1vdmllCjw9Cm9tZXRyaWMKZWxpbmcKbnVtZXJhYmxlCm91cmQK4paBU2VhCuKWgWJpbGQK4paB0L7RgdGC0LAKYmxvCuKWgWxvc2UKYXRldXJzCm91cmVkCuKWgUJhdHQKKCk7DQriloFwb3oKcG9zdHMKcGVuZApjZXJ0YWluCtC90LjQutC+0LwKSnVzdAp3ZWJraXQKZGVtw6FzCn5+fn4K4paBaW5kaWNhdGVzCuKWgXBhcmsKcmlxdWUKdm9kCuKWgUNoYW1wCmZ0d2FyZQpPUFQKZGphbmdvCnJlbGVhc2UK4paBw4gKU1IK4paBcG9saXRpY2lhbgriloFyb2kKYXR1cmVuCuKWgURldXRzY2hlCnRhZ29uCuKWgU1vdgpvYmllcm5vCuKWgWRhw58KdXRoZXIKaW5kaQriloFXaWtpcGVkaWEK4paBYW5vcwriloFvYnNlcnZlCmVsbHkK4paBcmFpbHdheQphdG9uCuKWgWVudW0KaHVzCuKWgWluaGFiClBzaQpvaXJlCuKWgdCl0L4K4paBU3BhY2UK4paB0JDRgNGF0LgK4paBYW50ZXJpb3IK4paBxYEKaXNvbnMKSWwK4paBYW3DqXJpYwpsYXBzCuKWgUJCQwpRVUVTVApDb25zdHJhCm1vbnQKw6RmdAriloHDpHZlbgp1YmVybgo8IS0tCuKWgWNvZGluZwp0aGVvcnkKYXRoZWQK4paBQXJiZQriloHRiNC4CmZvckVhY2gKb21vcnBoaXNtCmRldGFpbHMKYWNoc2VuCmludGVncgpWb3IKVW5rbm93bgphY2VhZQppbnVlCmVzb21lCuKWgUZpcgpjaGFpbgriloFleHRyZW1lbHkKbXVsdGljb2wK4paBU3dpZnQK4paBYWRkcmVzc2VzCmhzcGFjZQriloFSb2dlcgriloFkZXNzZW4K4paBY29uc2VxdQp1YWxtZW50ZQriloFQcmVtaWVyCuKWgVJlY29yZAriloFCcm9uCmtpcgpzZXgKaW50ZXJuCuKWgWJlbmVmaXQKdW1lbgriloFiZWNvbWluZwriloFsaWcK4paBcG9wdWxhCm9zYwriloFjaXYK4paBZ3JlYXRlc3QK4paBcHJvY2VzCl0qCuKWgdC80LXRgdGC0L4K4paBJyQKaGVsbAooIlwK4paBbmluZQriloFGYWMKdWxwdApqb3VycwriloFDb3B5CuKWgWFjdGl2aXRpZXMK4paBRGVtb2NyCkVzClN1Y2Nlc3MK4paBRXN0YQppdHVsCmlzdGkK4paBQmVkCmphcwriloHRgtC10LwK4paBSHVuZwpHYW1lCuKWgWhlYXYKb25uw6llcwriloFicmFuY2hlcwpib3JnCuKWgXZsCuKWgXNsb3dseQpGYQpHb29nbGUKZW1pCuKWgWNpcmN1bXN0YW5jZXMK4paBJyUK4paBVW5kCuKWgVZpY3RvcmlhCuKWgVR5cApydXB0ZWQK4paBcmVsYXRpdgriloFzbG8K4paBcGFkcmUK4paBZGFpbHkK4paBb3J0aArRh9C90LjQuQriloFmcmFuesO2cwriloF0ZWlsCuKWgVNlY3VyaXR5Cm9yZG9uCuKWgXN3ZWV0ClNJWkUK4paBQ2VsCsOodHJlcwpvbW1lcwriloHRgdGWCuKWgWVmZm9ydHMKxIV6CuKWgW9obmUK4paBU291dGhlcm4K4paBYXBwcm94aW1hdGVseQrRhtC10L0KKCcjCuKWgXNhdmluZwpuYnNwCuKWgXRyYW5zbGF0ZQriloHDjm4KbWVtYmVyCuKWgWxhd3MK4paB0LbQtdC9CuKWgdGB0LjRgdGC0LUKdGMKPlwKZWx0ZQriloFlaGVtCuKWgWNvbnRyYWQK4paB0YDRg9GBCtGM0Y8K4paBTWlkZGxlCnF1aXAK4paBY2hlegpGaWVsZHMK4paBcGVybWl0CmlrZWwK4paBd2lyCuKWgXRyaWFsCuKWgXZlcnNjaGllZAriloHRhNC10LIK4paBbWFsZQriloHRj9C30YsK4paBbnllbApha3RlcgriloFkZW5vbWluCmNlcHRvcgriloFXYXQK4paBZmlubwriloFYVklJSQpyeXB0aW9uCmRlc2MKYXBhCtC70LXQvdCwCuKWgWtvbAriloHQhAriloFkZXBlbmRlbnQK4paBQ3JhCuKWgXN0b3JtCuKWgdCT0LXRgAriloFwaXBlCuKWgWF0dGVuZGVkCuKWgXZpdGEKdXppb25lCmN6YXMKb25kYQriloFib2xkCkNvbHVtbnMKaWNpw7MK4paBY3rEmQriloHQuNC30LLQtdGB0YIK4paBQ2xvdWQK4paBd2FybQriloHRgdGLCuKWgdGB0YLQtQriloFwcm9kdWNlcgriloFMdWR3aWcK4paBTm9ydGhlcm4KxYLEhQpOU1N0cmluZwriloFIYWQK4paB0JjQstCw0L0K4paBRWcK4paBSW1wCtGI0ZYK4paBQXVjaArRgtC+0LoK4paBSGl0CuKWgXF1aWVuCuKWgWRlcGFydG1lbnQK4paBZXJoaWVsdAriloF1aQriloFTcHIK0YHQtdGACm91cnQK4paBU3RlcGhlbgp0ZWFtCuKWgXppcAriloFCYW5nCuKWgWdyb3d0aAriloFqYW0K4paBS2FpcwpibWF0cml4CuKWgUFzaWEK4paBcsOpZ2lvbgo9LwriloFQYWNpZmljCuKWgWF1dGhvcml0eQriloEjWwrRgtCw0LzQuAriloFldmVyeW9uZQriloFhdHRlbmQK4paBdGltZXN0YW1wCuKWgXRyaWVzCuKWgWZmCtGI0LXQuQriloFkZXZlbG9waW5nCm9sdAp1cHMK4paBbW9tZW50bwriloFTYWluClRlcm0K4paBY2VsbGUKR1IKTW91c2UK4paB0YfQtdC70L7QstC10LoK4paBQ29sbGVjdGlvbgrDonRyZQriloFXcml0ZQriloFQb20KWy0KQ2FtCuKWgWxvY2F0aW9ucwriloFKc29uCmVsbGVkCnNlbGVjdG9yCnJlcGVhdApjdG9ycwpvdHRlCtCy0LjQt9C4CsOkbmRlCuKWgWFjaGlldmVkCuKWgW1haW5seQpfX19fX19fXwohKQriloHRj9Cy0LvRj9C10YLRgdGPCuKWgWNpdGllcwpzaW5nbGUK0LPRgNC1CuKWgVBhawriloFhbGxvd2luZwpmZXJyZWQK4paB0LDQv9GA0LUK0YXQvtC00Y8K4paBYnJvd3NlcnMK4paBZXNjcml0CuKWgW1vdW50YWluCuKWgW5ldHdvcmtzCmtpbmQKbGl2ZXIK4paBY2xvc2luZwriloFza2lwCsO6dAriloFkdXJhdGlvbgrDqXRhaXQK4paBc2NyCkJCCsOzcmlhCuKWgUt1bHR1cgriloFvdXRwdXRzCm11bHRpY29sdW1uCuKWgWJlbG9uZ3MKZmVhdHVyZQp1Y2t5CuKWgWp1bGkK4paB0YDQsNC50L7QvdCwCtC30LLQvgpmYWN0b3J5CkZ1bmMK4paBdXR0ZXIK4paBVE9ETwriloFvYnQKYXRlZ29yaWVzCuKWgWNvbWJpbmUK4paBV2FsbAriloF1bmRlcmx5aW5nCmFyb25vCuKWgVByb3RlCmPDs3cKc3RhbgriloFHZXcK4paBb3B0aW1hbAriloFBcmNoaXZsaW5rCuKWgVNjcmlwdAriloFkZXN0cm95ZWQK0YXQtQriloFGaXJlZm94CuKWgXNvbGUKTGF5ZXIK0YLQutGDCuKWgXN0b3JlcwriloFkaXNwbGF5cwppc2hpbmcK4paB0L7RgdGCCuKWgWluc3RhbnQK4paBZWzFkQriloFoYWJpdGFudGVzCuKWgUVpbndvCuKWgWFsaQriloFFUlJPUgriloFhaGVhZAriloFnb2FscwriloFtw6FyCuKWgXPEhQriloFtYXJ0CtC80LjQvdC40YHRgtGA0LAKRnIK4paBVmlsbGEK4paBTWFyYwpyb3B5CmFncmFtCmhhcGUK0LzQtdC5CuKWgUFMCuKWgWNvbm5leGVzCuKWgUVudHJlClN0ZXAK0LvRltCyCuKWgURlYXRoCuKWgXJpc2UK4paBZm9zCuKWgWxldgpnYWJlCuKWgWJyb2tlCnByb2R1Y3RzCuKWgW1lZGkK4paBZGlzcG9uClBhY2thZ2UKSW1hZ2VWaWV3CuKWgU5hZwp1asSFCldvcmQK4paBa29sZQrDn2VyCilgLgriloFyb2wK4paBw60K0YLQtdC5ClByb2dyZXNzCmJlYW4K4paBc2VtcHJlClN0YXRlbWVudApVUERBVEUK4paBbW9uZGlhbGUK4paBd3JhcHBlcgriloFDaGFydAriloFvbkNsaWNrCtGH0LXQvdC90Y8KTE9HCnNvbWV0aGluZwriloFJTlNFUlQK0YnQtdC90LjRjwp1ZXQKd2VycApyb3VuZAppY2hlbgriloFYVkkK0LfQvdC4CuKWgWF2ZXZhCuKWgVN0b3JlCuKWgXhzCnJhY2h0CnNjYXIK4paBb3BlcmEK4paBZGVncmVlcwriloFjaXRpegrDpHNpZGVudAriloFjbGFzc2ljYWwK4paBSmVyc2V5CuKWgWVyc2NoCuKWgXRyZWF0bWVudAriloHQvdCw0YHQtdGZ0LUK0L3QvdGPCuKWgWJvb3N0CmFtb3VudAriloHRgdC+0LfQtNCwCsOpcmlldXIK4paBdGVsbGluZwpIYXMK4paBaW5pdGkK4paB0J/QuApldmFsCuKWgU1hdGNoCuKWgWNvcnJlClBvaW50ZXIK4paBcGFzc2VzCmNvbXBhbnkK4paB0LDQvQphY2hlcwriloFzaWdsbwrQvdC10LwK4paBZXhjaGFuZ2UKY2l0bwriloFCYWIKRG9jCnplxZsK4paB0L3QsNGA0L7QtAriloFjb25mbGljdAriloFub3ZlbWJlcgplYXUKw7Z2CuKWgUh1YgriloFwb2NvCmVuc2EKc2NobGllw58KbGFzc2UKZGF0YXMK4paB0YHRgtC4CnVuaXZlcnMKZWtzCuKWgUNobwriloFjw7QK4paBKC4KZXduxJkK4paBQ2hpZWYK4paBY2hlZgriloHRg9C/0YDQsNCyCnVsaQriloEnJycKbmFwc2hvdAriloFyZWxhYwrDqWdlCnd0CndlbmQKb3NpbmcK4paBaGFjZXIK4paB0YTRgNCw0L0KYXV0cmVzCuKWgWZpbHMKZXJlZAriloHQn9C+0YHQuNC70LDQvdC90Y8K4paBdGhlcm0K0LXRgNC20LAKc3VjaAriloFpaHJlbgriloFlbmNvbnRyCuKWgWxvdHMKbG9nbwriloFXaQovKArRiNGa0LUKREFUQQriloFQbGF5ZXIK4paBTGVpcHppZwriloFyZWxhdGl2ZXMK0YDQtdCyCuKWgW5ld3NwCj8sCuKWgVN0dXR0CuKWgWR1YWwK4paBY29tcGFuaWVzCuKWgXphbQpwdXRhdGlvbgriloFpbmVxdWFsaXR5CuKWgXRyZW0KaGlwcwphbmNoCuKWgcW7CtCx0YPRgNCzCuKWgWNvcGllcwpkYXNoCtCy0L7RgApzcGllbGVyCuKWgVJldm9sdXRpb24KZXN0eQriloFqdW50bwriloFJbmRlZWQKb2thbApjdHJpbmUK4paBRm9yZAriloFDUkVBVEUK4paBd2FsbHMK4paBYXV0ZQpTVQp3aHkKcGxlbWVudGF0aW9uCnJvdXQKTWF0cml4CuKWgXNhZArQsNC90LAK4paBUGljCi7igJwK4paBQUMK4paBRmVzdAriloFkZXNrdG9wCuKWgVBheQpvbWV0aW1lcwriloFUYWsK0YDQsNCxCuKWgVNldmVyCuKWgW5vcnRoZXJuCmFudGVyCuKWgU1vZGVybgp3YWwKew0Kb25saW5lCsO2awriloFicml0YW5uCiRfCuKWgWphcgpUTAp4eHh4Cm1lcmdlCuKWgU5hbWVuCuKWgUtFWQriloFyZWZlcnMK4paBaGluCuKWgVZvbGtzCnN0ZWxsZXIKdmlhdGlvbgpvbmlvCmlnaHRlcgpDb21wYXQK4paBQ0UK4paBcHLDswriloFlbmN1ZW50cmEKdGhlb3JlbQriloFwdWJsaQriloFEZXZlbG9wbWVudArQvdC0CuKWgXJvcwriloFzaHIKc2VhdQriloFnZW5lcmF0aW5nCuKWgWRpZmZpY3VsdHkK4paBRXhwcmVzcwpBbGlnbm1lbnQKZGV1dHNjaAriloHQktC70LDQtNC4CuKWgXN1Z2dlc3RzCuKWgUZhbWlseQpiYmkKXSkuCnN0YXcK4paBcHJlc2lkZW50ZQriloFzdGVzc28KaW54CnNldHVwCuKWgWNvbmZvcm0K4paBZnJvCj1cIgriloFkw6UKaWNpb25lcwriloFldm9sdXRpb24KcHJvdGUK4paBcHJpbnRzCuKWgVBvbnQK4paBY29uZnVzaW9uCuKWgdCZCuKWgWRlbGxvCuKWgW1hbmlmCkRlZmluaXRpb24Kw6FyYQptYWxzCuKWgXNhbGUK4paBZHJvcGRvd24KQ2hhaW4KQW1lcmljYW4K4paBbWsK4paBQmV6CuKWgUZ1ZQriloFORQrQs9GA0LDRhNC4CmRvY2tlcgriloFeewpBc3NlcnQK4paBaG9yaXpvbnRhbAooQCIK4paB0LTQstGDCnByb3h5ClVyaQpnZW5jeQriloEiWwriloFRdAriloFOYW1lcwriloFldmFsdWF0ZQohLwriloFlaW5nZXMK4paBc3ludGgK4paBWW91VHViZQriloF0dXJuaW5nCuKWgUVyaWMK4paB0LHQu9C4CuKWgWtsdWIKcGxvcmVyCuKWgXNwb3J0cwriloFzaWEK0L7RiAriloFkYWkK4paBZXVyb3BlCmljaWFucwppbmdzb21yw6UK4paBZHJlCuKWgXdvcmthcm91bmQK4paBc3VpdAphbWJpZ3UK4paBcXVhbnRpdHkK4paBc2VndW5kbwpTeW1ib2wK4paBbW9yYWwKQ2hhcnQK4paBZGFtaXQK4paBYXR0ZW1wdHMK4paBZG9ubgpqb3MK4paBZXJlCuKWgWhvbW1lCnNpbXAKcnlwdGVkCuKWgWFjdHMKaW5uZXJIVE1MCuKWgXRvdXJuYW1lbnQK4paBc2t5ClRpbWVyCuKWgW1pbGxpb25zCl4rCmFnZW50CicpKTsK4paBb3N0CuKWgWdsYQriloHQv9C+0LzQvgriloFmw7xuCtGB0YLQstC+0LwKZXduxJl0cnoK4paBTcOpeGljbwriloFsdWIK4paBw4lkCmlmaWsK0YfQtdGB0LrQuNC5CuKWgWltbWVyCmVuc2VuCmFubnkKaW5saW5lCuKWgWdvdmVyCmF1YwriloFyZXByZQriloFoaXN0b3JpYQpBZwriloFwbHQK4paBUHJpbmNpCmltZXRlcgrFkXMKxaFlCuKWgVVFCkVxdWFscwpEaXNwYXRjaApsZWdlbgrQu9Cw0LfQuArRh9C90L7QuQriloFzdGVsbArFhHN0CuKWgWNyaQriloFJbmRlcArDqGRlCn1cKQriloF3eXN0CuKWgWZpZ3VyZWQKQVRDSArDqWJlbgpsYWNodAriloFzdWNjZWVkZWQKZ3J5CuKWgXByZXQK4paBU2FmCuKWgSIpOwplaAriloFvZmZpY2llbArQutGA0LDRl9C9CndpbmQK4paBc2NhdHRlcgriloFGb3gKaWNpb3VzCk1hbnkKdXBlcgriloFDb252ZXJ0CnN0ZXJkCuKWgVN0ZWluCuKWgdCe0YIKfV57KApiZXR3ZWVuCmhpcmUK4paBb25DcmVhdGUKOzwvCmJhYmx5ClNZCm1vdAriloFEaXJlCml0ZWN0dXJlCtGC0L7QuQriloFjb29yZGluYXRlCigiIwriloFzw7xkCk9CCuKWgW1vcnRlCuKWgXdlYXRoZXIK4paBaGVseQriloFwcml2aWxlClJFTEVBU0UKYXRlbAriloFyZWNvZ25pemVkCuKWgVRob3VnaArRgdGB0LjQuQptZW1vcnkK4paBY29tcGlsYXRpb24KYml0cwriloF3ZWQKfX1fewriloFHVUkK0L/QvdGPCuKWgXNvdXRoZXJuCuKWgWhheQpvdmnEhwpsYXVmCuKWgUVMCuKWgUZ1bGwK4paBSGFtYnVyZwriloFNaXR0ZWwKRFUKYXBwcm94CkhTCuKWgdC/0YDQvtGG0LUK4paBbWFnYXppbmUK4paBTWlnCuKWgWNsaWNraW5nCmVudHIK4paBYXV0cmUK4paBdMOpCuKWgWjDoQrRgdGC0YsK4paBTUEKYXBweQpzdHbDrQriloFzZWxvbgriloFnZWsK4paBU2wKZnJhc3RyCkxpYgriloHQlNGDCuKWgWZhY2luZwriloHRgdGC0LDRgAriloFEdXRjaAphdGFyCuKWgWtlZXBzCuKWgVBhdHJpY2sKaWxpbwriloF2aWcK0YLQstCwCuKWgUZlZGVyYWwK4paBcGFyYWdyYXBoCuKWgWludGVyYWN0aW9uCuKWgW9jY2FzCuKWgUlyYW4K4paBbWFjaGluZXMKKCgpCnVyaWVzCuKWgdGA0L7QtNC4CuKWgdCw0LzQtdGA0LjQutCw0L0KdXBwCuKWgWljZQriloFTYXkK4paBc2FpbAriloFCZWdpbgpmaWNvCm9nYQriloFkZXNhcgriloFkdgriloHRgNCw0LTQuApvaGVuCmVyZWkKw6FuYWsK4paBZGFhcgppZmllcnMK4paBdGhlZQriloFieWxhCtCy0LDQu9CwCmFuZHJvCuKWgdC80L7Qu9C+CuKWgXRvdGFsbHkKaW9tCuKWgWFlcgpuc3lsdmFuCuKWgWNvcnBzCuKWgXRyZWF0ZWQK4paBY29tdW5lCk1pY2gKdm9pY2UKcGdmCuKWgWFueAriloFQaGlsaXAK4paBZWsK4paBTWVuc2NoZW4K4paBZGVyZQriloFwZXJtZXQKTWFpbAriloFWw6kKZW50ZWQK4paBYnVuY2gK4paBUGlldAphdHRhY2gK4paBcG9ydGUK0LTQsNGCCuKWgUJyaXRhaW4KRW5jb2RpbmcK4paBYDwKU3BhY2UK4paBcmFwCuKWgXBvcHVsCmZsb29yCnNwZWNpZmljCmNsZWFuCuKWgWNvbnF1CmZiCuKWgWludHJvZHVjZQriloFFbnRpdHkK4paBZXJmb2xnCmF0b2wKaWVudG9zCtC60LjQv9C10LTQuAriloFVdAriloHQsdGA0LgKZWR1bGVyCuKWgWNvbmNlbnRyCuKWgWNoZXIK4paBdXBncmFkZQriloFwaWN0dXJlcwriloFGYW1pbGllCk11cwpMb29rCuKWgWVyYW4K4paBZ3JhbQriloFXbwpucG0K4paBU2FsdgriloFjZAriloHQktGLCndhaGwKdHJhaW4KY2hlbQriloFQaWwK4paBQ29ubmVjdArEjWUK4paBaGFzdAriloFNdWx0aQphdHRhCuKWgVNvdW5kCnNvbHV0ZQriloFxdW90ZQriloFvYnN0CmNjaW9uZXMKaWJseQriloFicmFuZAriloFjb252ZXJzYXRpb24K4paBdG91dGVzCuKWgVJ1YgppZW5pYQppcml0CuKWgdCQ0L3QtAplZHVsZWQK4paBVG90YWwKRGlnCmVyZW0K4paBc2tpCkRlc3QKWVkK0LXQtNC4CmFseQriloFiYWNrZW5kCnVsdXMK4paBZmVhdHVyZWQK4paBcGVyc29ubgriloFzY2hvbgp0cmFjZQriloFJREUKw6FqCuKWgWFuaW1hbHMK4paBc25vdwp1dmUKdWVydG8K4paBZHJldwriloFZZWFoCuKWgVN2ClwsXAriloFTZXJpZQriloFzZWNvbmRvCuKWgUxlYmVucwriloFhY2NvcmQK4paBQ2V0CmVyYWRlCuKWgWRlc3BpdGUK4paBQ2FybG8K4paBemV3bsSZdHJ6CuKWgWxpc3RhCm5pY28K4paBQ29ycG9yYXRpb24KdnNwYWNlCuKWgdCy0L7QudC90YsK4paBc3RhbmRzCuKWgXdvcnNlCuKWgXNpbXVsdAriloFwcmFjdGljYWwKQ09MCmNoYW5nZWQK4paB0JjRgdGC0L7RgNC40Y8K0LHRgNC4CmluZG8K4paBTGV3aXMK4paBcGF0dGVybnMKaWZpY2EK4paBc21hcnQK4paBY29uY2VybmVkCsibaWkK4paBSGVsbG8KcmVsbAriloFMZXgK4paB0LLRgtC+CuKWgWNvbmRpdGlvbmFsCm90dGVkCuKWgXNob290CuKWgVdlZAriloHQvNCw0YDRgtCwCmF1ZAriloFhbnRlCmllbnRyYXMK4paBcGFwZXJzCuKWgXBvcnR1ZwriloFNYW5hZ2VtZW50CuKWgWV4ZXJjaXNlCuKWgUJlZ3JpZmYKY29tbWl0CuKWgXJlbmRlcmluZwriloFjemFzCkRyb3AKZXJnCuKWgW11bAriloFUYW4KaWVybwriloFsb2NhbGUK4paBaW5hdWcKZHVtcArRhtC40LkK4paBc3ltYm9scwppbnRhCuKWgWF3YXJkZWQK4paBc3VzdAriloFTZW5kCtGX0LIKUmVzdAp6dGVuCtC70LjQvApyaXZhbApQT1JUCsO2bGtlcgppbWF0ZWx5CmlndGUK0YfQvdGL0YUK4paBdGVycmEKw7ZnbGljaAriloFIb20K4paBaGV4CmRvbmUKYW1wcwriloFjZXQKUFJFCsO2c3QK4paBZmVtbWUKU2VsZWN0aW9uCuKWgXphdwpzcHIK4paBaG9yc2VzCuKWgXNuYXAKVGV4dEJveAriloFFY2xpcHNlCnVsbGUKb3d5bQriloFjb21lcgpuZWNlc3MKY29vawplbmdlcgotLT4K4paBcMWZw60KcGFuZGFzCuKWgVBsdXMKeWxsCuKWgXRlcnJvcgriloFjcmltCuKWgXphawppc3N1ZQpwYW5lbApzdmcK4paBcmViCkN1c3RvbWVyCnN3aXRjaArQvtCx0YDQsAriloFDaGFtcGlvbnNoaXBzCmNsbwphdHRlCuKWgWFueW1vcmUK4paBZXhjZWxsZW50CuKWgW9wcG9ydHVuaXR5CuKWgUJhaG4K0YfQuNC9CmV0aW5nCuKWgWluY2lkZW50CnRvbQpQZXJzCmJiZW4K0YHRgtCy0LXQvdC90L7QuQrQuNGFCnJvdXRlcgriloFuZXdseQriloFzaWxlbmNlCuKWgUdOVQriloFSYWlscwriloFBbWIK4paBUXVhbAriloFTY2hhdXMK4paBU29obgriloFBTEwK4paBcm95YWwK4paBwqMKd2nEmQriloFlbnRmZXIK4paBUmVtb3ZlCuKWgWhhcmRseQpVc2luZwrQu9C+0LMK4paBSWNoCuKWgWRlcm5pCuKWgUNvbm5lY3Rpb24KZmlzaAriloFJbmZvcm0K4paBRW5lcgpyb2l0CkJiYgpWaWV3TW9kZWwKVmlkZW8KaWxleQriloHQvNC90L7Qs9C+CuKWgUdlbQriloFjb21wcmVoCmVudW1lcmF0ZQp1bGFzCuKWgUJhaAriloFZZXQKQlIK0YXRgNCwCuKWgWNvdW50eQriloFIaXN0CuKWgdCT0YMK4paB0IgK4paBbWFyaQriloFDbGFyCkJpdG1hcAriloFDegriloFtw6VuCuKWgW1lcmUK4paBbXVzaXF1ZQphbHNvCmRhdGVzCuKWgURWRAriloFnb2wKZm9ueQriloFDYXN0bGUK4paB0YTQsNC80LgK4paBYXJyYW5nCuKWgUJ1c2luZXNzCuKWgUthegriloFvc2MK4paBc2Vjb2xvCuKWgWFmZmVjdGVkCuKWgUhlYWx0aApyZWIKZWRpdG9yCuKWgW93bmVkCnRsCuKWgXbDrQrRh9C90LjRhQrQutCy0LgK4paBZGV2aWVudApNdXRhYmxlCuKWgXRlZ2VuClJlZ2lzdGVyCtGU0Y4K4paBY2FyYWN0ZXIK0LvQu9C4CuKWgW5vdXZlbGxlCm9rbwppY2h0ZXQK4paBZXZvbAriloFIYWIK4paBbWlsaXRhcgriloFwdXRzCmVuZGlmCuKWgURhdmlzCuKWgVNjb3RsYW5kCnJlZ3VsYXIK4paBQ29udGV4dAppc3BpZWwK4paBR2FsbGVyeQoiLA0K4paBYXJjCuKWgUlORk8K4paBY29kCtC00ZbQsgriloF2YXJjaGFyCuKWgXRvdWpvdXJzCmF0aWFsCuKWgWhhbm5vCuKWgdC/0YDQvtGE0LXRgQriloFsYXVuY2hlZAriloHQvdCw0YHQtdC70LXQvdC90Y8K4paBdG9uCmF1c2VkCuKWgdGW0LcK4paBdMO2CuKWgVB1cgriloFvbHltcApBUk4Kw7NtCuKWgWF1Z3VzdAriloFmdXJuCuKWgUNvbG9tYgriloFTdGFhdHMKaG9yYQriloHQvNC+0YAKY2FudmFzCuKWgWdyYXZlCuKWgWNvbXBvc2l0aW9uCmFjamEK4paB0LrQvtGC0L7RgNGL0LUK4paB0YfQvgpHZW5lcmFsCtCw0L3RlgriloFKb2hhbm5lcwrQutCw0YAK4paB0YfQsNGB0YIK4paB0JLQsNGB0LgKc3NoCuKWgXJlcGxhY2luZwriloE8PgrRhtGW0LIKbGF1cwplbnkKw6RobAriloFtYXJnCmNpZW5jZQriloFpbnN0cnVjdGlvbgriloHQutC+0ZjQuApFZGl0b3IK4paBZnVuZGFtZW50YWwKbXVuZAriloFleGNlcHRpb25zCuKWgXBsYXRlCuKWgUxpcwriloFkZXJlbgpwcmVwCuKWgWphbnVhcmkKU2NvcGUKeW5hc3QKcnYKb3JzegriloFUb255CuKWgdC00ZYK4paB0L7QtNC90LAK4paBc2FiCm90aQpqZWwK4paBZ2VuZXJhdG9yCuKWgScuCuKWgXNoYXJwCuKWgdGC0L7Qu9GM0LrQvgriloFhY2NvdW50cwriloHFvmUK4paBZm9yYW0K4paBZ291dmVybgpUSU1FCuKWgVNvdmlldAriloFHw6kK4paBZXhwZWQK4paBb3JkaW5hcnkK4paBQ29uc2VydgriloFjb21wbGEKdGVpCuKWgWNhcHRhaW4K4paBU2FtdWVsCuKWgURhcmsK4paB0LLRltC9CuKWgWRlbGlnaHQKcmVjaHQKZGlhCmVzc2VzCnVscArRiNC60LgKYmV6CuKWgWRldGVjdGlvbgriloFjb29raWUKYW50cnkKTXVsdGkKb2JhCuKWgWpveQriloFzYWZldHkKfF4KcG9kCmFkw6ltCuKWgUNocm9uCuKWgURqYW5nbwriloFlaGVtYWwKa2gKw6hsZQriloFwb2MKQm90dG9tCmxhdW5jaApuZW0K4paBR1JPVVAKbsOtaG8K4paBR2liCnNkawpCRQriloFHZW5lCuKWgVN0YWZmCuKWgXN1YnNlcXVlbnQKaWNpb24K4paBdmljdG9yeQriloFjYW5vbgppemFyCml6aWEK4paBbWF0ZQriloFsYXllcnMKc3VkbwpzY2h1bGUKcGVyaW1lbnQKw7xsZXQKQVJDSEFSCuKWgdGC0LXRgNGA0LjRgtC+CuKWgW1lYXN1cmVzCuKWgXpvdQpvcHNpcwrQvdCw0LzQuAp0Ym9keQriloFlc2UKc3RlcmRhbQriloFwaG90bwp5bmNocm9ub3VzCnNldG1pbnVzCuKWgWxvYWRzCuKWgXBsZWFzdXJlCuKWgW1laWxsZQp9XCwKcXVhbAriloFmYXZvdXIK4paBcm9kCkRlcgrRgNCw0LHQvgriloFwcmVzc2VkCnLEmQppZXZpbmcKbWF0ZXJpYWwKdmlydAriloFjYXBhYmxlCtGB0LvQvgp1c2hlZAriloHQv9C+0LHQtQp1c2V0dHMKdW5zaWduZWQKa8OzdwriloFvdgplZ2ViZW4K4paBYXBwbHlpbmcK4paBZ2FsYXgK4paBT3JhY2xlCuKWgVN0dXR0Z2FydApJbmZsCmFjaHVzZXR0cwriloFkZWVsCmxpcmUK4paBc3RhdHVuaXQK4paBUG9saXRpa2VyCuKWgWJlYXV0eQopPgriloFDb2x1bWJpYQriloF6ZXduxJl0cnpuZQriloHQv9GA0L7Qs9GA0LAK4paBZHgKY2tub3cK4paBZHViCnVuw6RjaHN0CmZpbmRWaWV3QnlJZAriloFNYW5kCsOhbGwKbmFpcmUK4paBZGVzdGluCmlzdGluZwphZ2dpCmNoYXJ0CuKWgWp1c3RpY2UKU2ltcGxlCuKWgXVuZm9ydHVuYXRlbHkK0ZbRgAriloFxdWVzdGEK4paBR292ZXJub3IK0Y/QsgriloFtw7pzaWNhCuKWgWVxdWlwbwriloFEZXN0CmVsZWN0ClN0YWNrVHJhY2UK0LfQvtC8CnByb2MKZW50aW4KYWRvcmEK4paB0JvRjgriloFyZWdpc3RlcmVkCkhMCmZhY2Vib29rCuKWgXN0b3JpbmcK4paBQ3VycmVudGx5CuKWgXF1YWRyClN0YW5kYXJkCnRyaW0KZWFycwpzZW5kZXIK4paBVmFzCuKWgWVkaWZpYwriloFCw7xyCuKWgUNvdW50cnkKdGhhCjsiCm5vcgriloFEb2N0b3IKcnVtZW50CkdlbgriloFCdWVuCnJhZGUK4paBa3VuCm5hdmlnYXRpb24KUGF5CuKWgWNhcHR1cmVkCuKWgXN0cnVjawp2ZW5pcgrDqW1lbnQK4paBVHJlZQriloF4eAriloFuYXJyCtC70YzQvdC+0LPQvgriloFpbnN0YWxsaW5nCuKWgWFzc29jaWF0aW9uCuKWgWluc2VydGVkCmVybmVyCnZhbGlkYXRlCuKWgWx1dAriloFnbG8K4paBdGVjaG5vbG9neQriloFQbGFjZQokPwriloF6dgrRgdC70ZYKRVAK4paBYXRtb3MKdWdvCsOpcnQK4paBV2VyawriloElfQp0ZWxlClNwYW4K4paBUmFqCuKWgVBlcnNvbmVuCuKWgUNhbnQK4paBY29tYmF0CuKWgW9ic2VydmF0aW9uCnBhcmFtZXRlcgriloFhZ3JlZWQKcHVyCuKWgXNoYWRvdwriloFnxYIKS2V5cwpDcmVkCm91cmkK4paBcGFsZQppY2vDqQriloFXZWVrCuKWgVByaW1lCj4uCkluaXRpYWwK4paB0L7QtNC40L0K4paBJycsCuKWgdGD0YfQuAriloFJbnYKY29sYQpjaWJsZQriloFUaGVhdHJlCuKWgWJlbQriloFzYXRpc2Z5CnhsCuKWgdGA0LDQt9Cy0LgK4paBcGl4ZWwKbMOhbgriloF0d2VlCsOnb24K0L3QtdC90LjRjwriloFBVArDqGdlCuKWgU1vcnQK4paBbXlzcQpmdGVuCuKWgdC/0LXRgQrDqW1hCuKWgVNlcnZpY2VzCmN1c3RvbWVyCuKWgUFXUwrRitGCCuKWgUFjaAolLgriloFjbGFyaWZ5CuKWgdGD0L3QuNCy0LXRgNGB0LjRgtC1Cnh0dXJlCnVtaQriloFzw6UK4paBUGVsCnNlcmlhbApVUkkK4paBcmcK4paB0YHQvtGB0YLQsApjaGVzdHJhCl0uWwp3ZW4K4paBTG9uZHJlcwriloFhbnlzCkRhdGFTb3VyY2UK4paB0YDQsNC50L7QvdC1CuKWgXJlaW4K4paBbWV0YWRhdGEKdW1ibGUKYXJiZWl0CmhuZXIKY2llbnQK4paBbm9ydGUK4paB0L7QvdCwCuKWgXNjb3JlZAriloFyYXkK4paB0YTQtdCy0YDQsAriloFwcm90YWdvbgriloFTYWMK4paBY29tbW9ubHkKTGluZWFyTGF5b3V0CuKWgWFwcGxpYwriloHQvNCw0Y8K0JfQsAriloFhY2Nlc3NpYmxlCmlld2VyCmZsYWcK4paBUsO8Y2sKw6R1CuKWgWVyYW5vCuKWgWF1dGhlbnRpYwriloFSeQriloHQvdC10YHQutC+CuKWgWVtYmFyZ28K4paBZHJ5CuKWgXJlYXNvbmFibGUK4paBTW9kdWxlCuKWgWFjY2VsZXIK4paBaW50ZXJ2aWV3CuKWgUNyZWVrCuKWgWFscGhhCnNlcmllClRoZXkK0Y7Rh9C4CuKWgUhvZgriloFDUgptb2RhbAriloFzZXF1ZW5jZXMKY2xvc2VkCil9JAriloHQp9C10YAK4paBT1JERVIKUmlnaHRhcnJvdwpoYXVzZW4KfX1fCuKWgXRhbWLDqQriloFtYWduZXRpYwriloFNY0MK4paBd2lubmluZwp1bmRlcmxpbmUK4paBQmlsbGJvYXJkCm5haW8K4paBbGlxdQpkaXNwbGF5c3R5bGUKdGltZW91dAriloFjb25zaWRlcmFibGUK4paBZWJlbgppZmZlcmVudAphbnUK4paB0KHQvtCyClsoCuKWgTotKQpsZWl0dW5nCmZvcm1lZAriloFNYW5hZ2VyCuKWgW9uY2xpY2sKVFkK0YLQsNGFCkNWCnJ1bnRpbWUKcG9xdWUK4paB0JvQvgpUZW1wCmxvYWRlZAriloEhPT0K4paBc2luZ2VyCmZhcgriloFDb21wbGUK4paBw5ZzdGVycmVpY2gKUG9saWN5CuKWgXdvcmtlcgpXcmFwcGVyCm9iaQriloFkaXNjdXNzZWQK4paBYnV5CuKWgdGP0L3QstCw0YDRjwriloFEaW4K4paBZ2VkCtGB0LrQvtGYCkV1cm9wZQriloF0YWxsCmhvcwrQu9Cw0LPQvgriloFCbG9jawriloFpZGVudGlmaWVkCkxpc3RWaWV3CuKWgWF0dGVtcHRpbmcK4paBdHlwaWNhbApwc3VtCm9zdGVyCuKWgdC20YPRgNC90LAKUGUKbWVyY2UK4paBdW5leHBlY3RlZApodWkKbGV0dGVyCuKWgW51ZXZvCuKWgdCw0LHQvgriloFWQUxVRVMK4paBSXoKRmxhZ3MK4paBVFJVRQppemFjacOzbgriloFncm93aW5nCmVzdHJlCuKWgXBvbHkK4paBU3RvbmUK4paBVklJSQriloFsb2NhbGhvc3QKw6RobHQK4paBZW1iZWRkZWQKamRiYwriloFjb252ZW50aW9uCuKWgXNjYWxhCtGB0L7QugriloFhbmFsb2cK4paBIisK0YbRjgpvY2MK4paBbGl0dApQTgriloHQsNC60YLQuNCyCmF0dHJpYnV0ZXMK4paBRmVyZAriloFhenVyZQrImXRpCsOxb3MKcGluZwriloF0ZWFjaGVyCn0mCmlwZQriloFOb2IK4paB0LjQvNCwCkJpbmQK4paBbWFnaWMK4paBVHJhbnNwb3J0Cml4ZWwK4paBY29tcHV0ZWQKYWduYQplcnN0CkhBCldhaXQK4paBYXV0aG9ycwriloE7KQpjbGFtCuKWgVBlbm5zeWx2YW4K4paBZHJ1ZwriloF2YWluCuKWgWVtcGxveWVkCuKWgWluZGl2aWR1YWxzCuKWgWFuZ2UKdXRhdAriloEkLQpjb3JyZWN0CuKWgWV4cGVyaW1lbnRzCkFyZ3VtZW50CuKWgUlCCuKWgXDDqHJlCuKWgUJyaWFuCmJlcmdlcgpNYWMKaWFzdApQZXJtCkNhc3QK4paBe307CuKWgVN0dWRlbnQK4paBc3RhdHQKYWxnZWJyYQriloFlcXVhbHMK4paBcHJvamV0CuKWgXByw6lzaWRlbnQKQWN0aXZpdHlUaHJlYWQK4paBZWluegplbmlhCnJlegplc3Npb25hbAriloHQsNCy0LPRg9GB0YLQsApvdmVycmlkZQpuZXdzCuKWgXBsYW5ldApubgriloFXaXMK0YLQstC10YAK4paBVmFsaWQK4paBR2VmCtCz0YDQsNC0CuKWgWVpZwphbnRvbQriloFNZWlzdGVyCmZsYWdzCmZmaWNpYWxlCtGI0LDRjwotLAphdGlvbmVuCm1vdXNlCnN0YW5kYXJkClNpbmdsZQriloFib2wKaXNpcwriloFmcnVpdApjb3Vyc2UKaXRhbnRzCuKWgcOpdGFpZW50ClRleHRGaWVsZAriloHRhNC+0L0K4paBYWlyY3JhZnQK4paBSVNTTgriloF3ZXN0ZXJuCuKWgXJlcHJlc2VudGluZwpFc3AK4paBRWxzZQriloFzaXplcwriloFzYXRpc2ZpZWQKb3RvcwpVRApGaW5hbArDs2oKw6h2ZQriloFSb3kKZmZlbgriloFzYWx0CuKWgUxhYmVsClNrCuKWgdC60YDQtQriloHQm9C40YLQtdGA0LDRgtGD0YDQsAriloHRgdC8CkF0dHJpYnV0ZXMKYXllCtGB0YzQugriloHQstGL0YHQvgotKQpvc2VzCmNhbGN1bAriloFDYW5ub3QKR2VuZXJpYwplbW8K4paBQXV0b3IK0LvRkdC9CtC70LDQs9CwCnZvdGUKbGljYXRlcwpydXMKw6lsaQpvcGYKYXRpcXVlCnNjYWxhCuKWgU9oaW8K4paBQnJpdGFubgriloFiZWYK4paB0JXQstGA0L4K4paBQ2FyZWVyCmlzw6llCsOzdApib3NlCuKWgdCR0LXRgAriloFDb250cm9sbGVyCnBvbGUK4paBYWxsZW4K4paBaGFjawriloFleHRlbnQK4paBY2FsY2kKTWVyCuKWgXN1bW1hcnkKTWFydAriloFoaXN0b3JpY2FsCmltYXQKYnVkCuKWgUZPUgpleHBvcnQKZWRpCk1hcHBpbmcK4paBQXkK4paBUnVieQriloFkZWZpbml0aW9ucwriloF7JAriloF5b3VycwpyaWFzClRvdWNoCuKWgUdhegriloFBdXRvbQriloHQuNGB0YLQvtGA0LgK4paBZGVsZW4K4paBS2luZGVyCn19JQriloFwZXJmb3JtaW5nCkZSCuKWgVNpZwriloFCcmFkCmJyYXMK4paBSmFyCnBrZwp3cgriloFQYXlzCk5DCuKWgW9wcG9zZWQKVHJ5CuKWgdCy0LXQt9C1CuKWgUJvZwriloF3cml0ZXMK4paBc3RvcmllcwriloFtYXRlcgriloFzdGFnaW9uZQriloFzdHkK4paBY29tcGF0aWJsZQpoZWFzdAriloFHdXkKZWdyw7xuZAriloFpZGVudGlmaWVyCuKWgWhlYWRzCtC/0L7Qt9C4CuKWgXN0dXAK4paBdGYK4paB0ZjQvtGICuKWgUh1Z2gK4paBY2FyZHMKb3Z5CuKWgVRvYXN0CmFsbGFzCuKWgXDDumJsaWMK4paBYXNzdW1lcwriloHRh9C10LzQv9C40L7QvdCwCnljbGVyCuKWgUp1bmlvcgriloFGaWNoCuKWgWVzdGltYXRlZAp6ZXJ3CmRpYWxvZwrRiNC40L0Kc2hlbGwK4paB0L3QuNGFCuKWgXBpdGNoCtC00L7QuwpvdXR1YmUK4paBU2FudGkKT25DbGlja0xpc3RlbmVyCuKWgU1hZ3lhcgriloF2dWUKacOjbwriloFgIwpjb2xsZWN0CuKWgVJvdQphbmFseXNpcwppc3Ryem9zdAriloFEaWdpdGFsCuKWgWNyaXN0CnJpZXJlCuKWgWNhbXBvClVzCuKWgWNpcmNhCuKWgUNvbXBvbmVudAriloFOU1N0cmluZwpwZAriloFwcmluY2UK4paBaW52b2tlCuKWgU1hcmluZQpBbGxvdwplc3RpYwrRgNC40YHRgtC4CmJvbmUK0YLRg9GA0YsK4paBcGFzc2lvbgrDoWNpw7MK4paBb3JuCtCy0LXQtAriloFpbnZhcmkK4paB0L3RlgpSZW1vdmUKZW5jaWVzCmlsaWIK4paBRGlyZWN0b3IKIiIK4paBQ29uc2UKZ29vZ2xlYXBpcwrDs2sK4paB0KPQutGA0LAK4paBSGF2aW5nCkRvbWFpbgppZXJ6CtC90L7Qu9C+0LPQuApDaG8KdW5kZWZpbmVkCmFsbG9jCuKWgXBpZWQK4paBZnJhY3Rpb24KYmlhCuKWgdC/0L7Qu9C+CnVnbm8KbWluaXN0ZXIK4paBcHJpbmNpcGFsZQriloFyZWZ1c2VkCmJyb3dzZXIKKiwK4paBSG9zcGl0YWwK4paBdW5pdmVyc2FsCuKWgUVybnN0CndobwriloFHYXJkCidfCmNvbmRlCuKWgVt7CnNvYgriloFDcml0CuKWgdC00LXQutCw0LHRgNGPCuKWgXB1bnRvCuKWgWVpbmdlc2V0enQK4paBdMO2cgriloFOaQriloF3b3JyeQriloFsZWdlbmQK4paB0LHRg9C70LgK4paBa29tbQpyaWprCmVmZmVjdApPcmkKUkVTCuKWgVBldGVycwriloFCYXJvbgriloFHb3QK4paBaG9uZXN0CsOkcmUKw6FzegriloFub2JsZQriloFjb25jbHVzaW9uCuKWgWZvcm1hdHRpbmcK4paBb3R0bwriloFkZWxlZwrQvNCxCnB0b3AK4paBc2VuZHMKdXJuYW1lCuKWgWZlc3RpdmFsCizigI4K0YDRg9GBCuKWgWRvY2gKc3ViamVjdAriloFjYXJlZnVsCnF1ZW50CuKWgUxvYWQKdGVtcGVyYXR1cmVuCuKWgXJ1ZQpNZW1vcnkKyJthCmlvbmEK4paBZGVudHJvCuKWgWJlZ2FubgriloFBcXUK4paBc2NpZW50aWZpYwprYcWECtC70L7QugplbGRlCuKWgVRob3NlCnF1aWVyCmFjdMOpcgriloFBdWZsYWdlCiknCuKWgWdyYWRpZW50CmludGVnZXIK4paBSW1wb3J0ClNLCuKWgVN0YXR1cwriloFleHBsbwpBRQpTaGVsbAriloFQYXVsbwouwrsKfTwvCmZsZXgK4paB0LrQvtC80L8Kb25kZW4KYWNjZXB0CuKWgW1pZWpzY2UKSHViCmFsbGVuZwpXTgriloFpbXBsZW1lbnRpbmcK4paB0LvRgwriloFjb25mdXNpbmcK4paBSW5zdGFsbAriloFyb3UK4paB0L/RgNC+0LXQugpBY2Nlc3NvcgrRmdCw0YjRmtC1Cm9kaW8K4paBYXBwbGllcwrRjtGJ0LjQuQriloFNdW5kaWFsCsOJdGF0CmlldG5hbQpodW0K4paB0YHQsdC+0YAKb3JkaW5hdGUKRnJhbmNlCuKWgXByZW5kCmVsdGVtcGVyYXR1cmVuCuKWgXRyYWJhagpBeGlzCuKWgdC80L3QvgpwcmltYXJ5CuKWgVNlaXRlCnBlcm1pc3Npb24K4paBb3JkZW4Kc2luY2UK4paBaWMK4paBQnJhemlsCuKWgWJhcmUK4paBTmFyCuKWgUp1cgriloFmcmVlZG9tCuKWgW1lZGljYWwKaXNjaG9mCuKWgdGB0L8KaWXFvAriloFib290c3RyYXAK4paB4oCmCuKWgWZhY2lsCmNvcmQK0LLQsNC90LUK4paBQWxsZW4KYXZpZAppbmdoYW0KemFzCuKWgWluc3BlY3QKaXR0ZW4Kb3N0aQp1aApjw6kK4paBIyMjIyMKY2l1cwpvbXkK4paBU2VpbmUKYnJlcwriloFnZW51cwpPdGhlcgriloFHb2xkZW4KbXVsCuKWgdCh0L/QvtGZ0LDRiNGa0LUK4paBZ2VubmFpbwriloFjYXJlZnVsbHkKYWFsCuKWgWFuYWx5dApuZXVyCuKWgXN0cmV0Y2gK4paBT2NjCm9sYXMK4paBZmlyZWJhc2UK4paBZXhwZWN0aW5nCmJhc2ljCmNvbmRpdGlvbgpwcm92CuKWgVdhc3NlcgriloFjb25jYXRlbgriloFldmlsCuKWgWNvZWZmaWNpZW50cwpXZXN0CmlyeQpwaGFzCuKWgUphbQpmb2lzCuKWgWNvbnNpZAriloFtYWludGVuCm5pbQplc3Nlcgplc3oKdW50YQp1ZXN0CuKWgWNyZWRlbnRpYWxzCl87CkRpbQrQv9GA0LXQtNC1CuKWgULDvApidWlsdAriloFBY2FkZW0K4paBYXVkaQriloF0dsOlCmluYW5kCuKWgVRoZWF0ZXIK4paBZ2VucmUKw6dvcwpncmVzcWwK4paBd2VhcAriloFSYWIK4paB4oCZCuKWgWFkdWx0CuKWgWTDqW0KYGAK4paBc3RhYmlsCuKWgWNvcnJlc3BvbmRzCuKWgUVhc3Rlcm4KdW5uZWwKV29ya2VyCuKWgWNvaArQu9C60LAK4paBTWFzc2FjaHVzZXR0cwpwaW8K4paBcG9ydHMKYWdnCuKWgURlYnVnCuKWgWJyZWF0aApNSU4KVmFyaWFibGUKYmF0Y2gK0YHRgdC1CuKWgXByZWcK4paBcm9sZXMKcGFzdGUK4paBcmVmZXJlbmNlZAphZHJhdArRh9GRCmJpbm9tCuKWgWRlZmluaW5nCuKWgUJ1ZGFwZXN0CuKWgdC00LLQuAriloF0YXVnaHQK4paBaG9sZQriloFxdWVsbGEKTXNnCmFza2EKc2NhbgriloFwcm9wb3NlCuKWgdCR0LjQvtCz0YDQsNGE0LjRjwp7e1wKdGV4dHQK4paBQWxiCuKWgVN5ZG5leQriloFiYWNrdXAK4paBY3JlZGl0CuKWgdGE0YDQsNC90YbRgwpzdGF0cwpcIjoK4paB0J/QtdGA0LUK4paBYWNjb3JkaW5nbHkK4paBTGVuCnpuYQriloFSZWdpb25hbAriloHQuNC30LTQsAriloFqw7oKaGlzdG9yCuKWgWVudGl0aWVzClN0YXIK0L7QvdC1CiddWycK4paBTm92YQpkaWUK4paBYCcK4paBb2J0ZW4KYW5zdAriloFSZWxpZwriloF0cmlnCuKWgdGA0LXQttC4CuKWgVBlcnNvbmFsCuKWgXRvbmUK4paBYWlkClZpc3VhbApTdWJtaXQK4paBbW92ZXMK4paBQnJpZGdlCuKWgUJveQriloFhY2N1cmF0ZQpvc3RhCmF0dG8K4paBZGVmZWF0ZWQK4paBZGF0YWIKZ2lueAriloFMaXYKbHl3b29kClRXCnJpdW0KaXBwZWQKRmFpbApSRVFVRVNUCuKWgWlnbm9yCuKWgXNpdHRpbmcK4paBbW9sdG8K4paBZW5kcG9pbnQKdWNpw7NuCuKWgWNvbGxlY3Rpb25zCuKWgdCi0YMKdGVtYnJlCuKWgW7DqWNlc3MK4paBaW50ZXJhY3QK4paBb3RyYXMK4paBY3VycgriloF0cmFja3MK4paBZmFtw61saWEK4paBbnVtZXJpY2FsCmxlZ3QKXS8K4paBTWFyaW8K4paBdG9ydApiZwpzc2wKdGV4dHR0CuKWgXNwYXJrCtC00LjQuAriloFwcm9iYWJsZQolJSUlCnBoaWEKXSxbCuKWgWJveGVzCuKWgWFjYWRlbQriloFTbG8Kw6R1ZGUK4paBd2l0bmVzcwriloFlZGl0aW5nCtC70LjQvdCwCuKWgWxvb2t1cAriloFCdWNrCtC00L3RjwriloFqb3VycworKyl7CuKWgWluZGljZXMK4paBZmxpZ2h0CuKWgWNvbXB1dGF0aW9uClBsdWdpbgriloFyZWFsaXplCmlzc2V0CuKWgWRlcml2YXRpdmUKbGluZXdpZHRoCmJ1bmQK4paBdGhvcgriloEuPQriloFzw60K4paBQ2xpY2sK4paBU2ViYXN0Cj4nCmhhdmlvcgpsZWkKdWxmCuKWgWdlb21ldHJ5CnByZXYKZW1wbAriloFMw6kKYW5zb24K4paBQWxpY2UKcHJvdG90eXBlClJFQUQKaWN1bGFyCuKWgdCx0ZYK4paBZGV1dHNjaGUK4paBUmVwcmVzZW50CnNpdGVzCuKWgU1lYW4K4paBZGlzcwriloFadXIK4paB0L/RgNC10LcKUEFSCuKWgScjCuKWgURyYQrRgdC+0L0K4paBc3RlaHQKbWFya3QK4paBZWFzZQpEcmF3aW5nCj0lClN0b3AK4paBc2VydmluZwriloF0YWvFvGUK4paBRE5TCuKWgWxpdGVyYWwKRGllCuKWgdCy0L7RgQriloFzZW5pb3IKYWNpb24K4paBdWJ1bnR1CuKWgUZyYW5rZnVydAriloFTdW5kYXkKw6FiCuKWgWpvdXJuZXkKaXNzYQpiZXJyeQriloFzZXAK4paBaW9uCndlcnQKb3JzesOhZwpzZXJ2ZQriloFNaWxhbm8K4paB0LLQtdC60LAK0YDQsNGFCuKWgdC40Y7Qu9GPCuKWgW1hbmVyYQriloFzdGF0aW9ucwriloFhZG9wdGVkCuKWgWFueWJvZHkKVkVSU0lPTgpGRQpkb3JmCi4uLiwK4paB0L7QsdGA0LDQt9C+0LLQsApMb2dnZXIK0YTQuNGG0LjQsNC70YwKV1JJVEUK4paBaGFtCuKWgUZ1dHVyZQpvdGVuCuKWgUFHCuKWgXRyYWluZWQK4paBTmljaAriloF1bml2ZXJzaXR5CuKWgU9seW1waWNzCuKWgWRvaXQK4paBY3VsdHVyYWwKQ29uZgriloFDb25mZXJlbmNlCm9ybm8K4paBTVAK4paBYm91CmNpbgpIaWdoCmFubnRlCuKWgWRpc3BsYXlpbmcK4paBY2hhcHRlcgriloFGcmF1ZW4K4paBcmVhbGl6ZWQK4paBYXR0ZW1wdGVkCuKWgXByZWZlcnJlZApEYXQK4paBdHJvdXZlCuKWgWludGVudGlvbgriloFOb3RpY2UKdGltZXN0YW1wCiooCuKWgdCo0LAKYW5hcwpjbGEKaXN6CnRibApBcnIK4paBaW52ZXJzZQriloF0ZXJyaWJsZQriloFvY2N1cGllZApKQVgKPC0K4paBUGhpbG9zb3BoCuKWgUNvcnBzCmJ1aWxkZXIK4paBYmVnaW5zCuKWgWNlbnN1cwou4oCZCuKWgXByb3ZlbgptZXRyaWMK4paBaW5jcmVhc2VzCndpY2gK4paBQUJDCnByb2plY3RzCuKWgVRob3IK4paBY29uZmlkZW5jZQriloF1ZmZpY2lhbGUKZWxtCuKWgWdhcmRlbgriloFyb2J1c3QK4paBY29zw6wKaWVkegriloFJc2xhbQriloFBZGRyZXNzCuKWgWRpdmlkZQriloFFdQpjYXRhbApkZXRhaWwKZXBlbmRhbnQKZmcK4paBYmV3CuKWgWZpcwriloFCTwriloF3c3AK4paBcGlwZWxpbmUKaGQK4paBU2Vzc2lvbgpsw6RuZAppdmVhdQplc3RyCuKWgXBhcnRpY2xlCuKWgWxhcmF2ZWwKcGljCuKWgW5hdQriloFmaW5zCuKWgVZpbAriloFmdXMK4paBcXVhc2kKb3BlcmF0aW9uCuKWgWFsbGVyCuKWgWFuYWx5CuKWgdCe0L0K4paBTWVzCuKWgdC+0L/QtdGA0LAK4paBaGFuZGxlZAriloFkZXByZWMKdHRvCuKWgUVrCuKWgXN0cmFuCuKWgWFuZ2xhaXMKanVyZQriloFTaWx2ZXIK4paBY2xvc2VseQplbmtpbnMKYW5vcwpzdGVkCuKWgdGB0LXQvdGC0Y/QsdGA0Y8KYnJhbmQK0L3RjNC+CuKWgXByw6lzZW50CnJvawptb3VudAriloFBbnRob255CuKWgUZ1cnRoZXJtb3JlCmluaGEK4paB0LDRgNGF0LgK4paB0YDQsNC30LvQuAriloHQvtC60YLRj9Cx0YDRjwriloFwaW50Cm7DvQpwdHMK4paBaXRhbGllbgriloHRgNC10LPQuArQu9C10LcK0LTQuNC90LAKYXRoZXJpbmUKSW50ZXJuYWwKUXVlc3Rpb24K4paBc2V0dGxlbWVudAriloHQktGB0LUK4paBZm9sZGVycwrQtNGA0LgK4paBdmFsb3IK4paBTWlsbGVyCuKWgUFzc2VydAriloFwYXRpZW50CuKWgU5pZWRlcgriloFFUAriloFBZ3IK4paBb25kZQriloFzY29wCnNlcXVlbmNlCuKWgVBMCuKWgXNlZWsKamF2YXNlCuKWgVZlY3RvcgriloFuw6EK4paBY2F0ZWdvcsOtYQpjbG9uZQpOUgphdmFpbGFibGUK4paBQmVzY2gK4paBZWNsaXBzZQp3aWNrbHVuZwpkZXBsb3kKZW5pZQriloEiKQrDpHN0CuKWgXN5bmMKQ09ERQriloHQp9C1CuKWgWZsb2F0aW5nCi9gCuKWgXJldGlyZWQKZGViCuKWgXBhcnRpY3VsCuKWgWNvbGxlY3RlZAriloFkb3dubG9hZGVkCm5pY2UK4paBQnVmZmVyCuKWgUFjY291bnQK4paBbWFnZ2lvCuKWgdGA0LXQtNCwCuKWgXNhbGVzCuKWgXN0YXR1bml0ZW5zZQriloFLaQriloFGZXJyCkxvY2sK4paBSXNhYmVsCmNsYXIK4paBcG92CmF0cmEK4paBRnJhdQriloFzb3J0aW5nCuKWgXBocmFzZQriloHQsNC/0YDQtdC70Y8K4paB0LTQtdGP0YLQtdC70YwK4paBQW5kcsOpCmRlZmluaXRpb24Kd3JpdGluZwrDqXLDqQrRidGDCuKWgU9yZAriloFydW0K4paBVHVyawriloFJdmFuCnRoZWxlc3MK4paB0LPQuAriloFzYWtlCuKWgUJhc2VkCmRlY2sKb3J1cwriloF0dXR0aQriloFibGFuCuKWgdCf0YMKRGV0YWlsCuKWgdCd0L4K4paBU2t5CuKWgXByw6hzCtC80L7QuQpjb2xuCtGH0LXRgdC60L7QuQpldGkK4paBYXJyb3cK4paBQ2hhCmNobWFyawrFk3VyCmZhYgrQutGD0LvRjApHcmlkVmlldwriloFCYWNrZ3JvdW5kCnNuCuKWgXNlZ3VpdG8K4paBbmljCmNvdQrRgtGW0LIK4paBYnp3CmFkZEV2ZW50TGlzdGVuZXIKc3luYwphenpvCmFic3RyYWN0CmFzc2V0cwriloFEcnUK0LfQtApvcmRuZXQK4paBYmlnZ2VyCuKWgWluaXRpYWxpemVkCtC60LDQtwpvZ2VuZQp2aW91c2x5CuKWgWd1aWQKc2NoZWlkdW5nCuKWgVplbnQK4paBZnJhbWVzCnJpZWJlbgriloFpc3N1ZWQK4paBZG93CuKWgWRlc2NyaWJlcwppbHN0CuKWgWNyaXRlcmlhCuKWgWdlbnRsZW1hbgpCYXNpYwpuZXoKRGV2Ck1vdmUK4paBZXN0YWJhCuKWgXNldHRlbWJyZQpjaXJjbGUK4paBZmFpcwriloFteXN0CuKWgWFyY2hpdgpkeW5hbWljCmrDoAppdGFzCuKWgdGP0LrQuNC5CuKWgWRvcgriloFBbWF6b24K4paBbmVjZXMK4paBTWFyY2VsCuKWgWVsbGEK0YDQvtC6CuKWgVBlbm5zeWx2YW5pYQpjdWxhcgpQYWNrCml0YWdlCuKWgUJ1cm4K4paBUk8K4paB0L7QvdC4Cn4kClRlWAphc3NpZ24K4paBYmVhdAppZGVuc2UKYWNlbnQKQWxlcnQK4paBc3RyYXRlZwriloFtw6VuYWRlbgpMT0MK4paBY2F0YWxvZwpwcmludFN0YWNrVHJhY2UKKCkpLgp1c3RlZAriloFGcmFtZXdvcmsKRUNLCuKWgWF0w6kKRnJhbWV3b3JrCuKWgWF0dGFja3MK4paBQmVydAriloHRgtGA0LDQvQo6JQphcnNpCm5vdGF0aW9uCuKWgWxvZ2ljYWwKd2VldAriloF2aXNpdGVkCmJydQriloFzdXJwcmlzZQpeXgppbmFsZQpyZW1vdGUKJ30sClN5bnRheAppYW5lCm9ubmVuCuKWgWJyZWFraW5nCnBhcnNlcgphcGsK4paBTWlndWVsCuKWgcKnCuKWgWFjdGluZwriloFnZWJydQpBdEluZGV4CtGO0YLRjNGB0Y8K4paBb2ZmZXJzCuKWgXByYWMK4paBZ3JhbnQKdGVybm9vbgriloFhY3F1aXJlZAriloFOeQriloFjb21tYQpuw61rCuKWgVN0ZXAKaW5uZXJzCuKWgVNBCuKWgXdhdApkYXlzCuKWgXJlY3RhbmdsZQpkYXIK4paBdHJhYwriloFJbmRvbmVzCuKWgWZlZWRiYWNrCuKWgWJyZWFrcwpwYXJ0aXRpb24KaWNhbnMK4paBTm90aWNlcwriloFpbXByb3ZlZApwaGFuCuKWgWRpZmZlcmVudGlhbApzY3JpcHRzCuKWgVhJSUkK4paBTGFib3IK4paBcHJlY2lzaW9uCuKWgXNlZWQKYnVuZGxlCmlkZW50cwpocmUK4paBRG91Z2xhcwp1bGQK4paBc2Vjb25kYXJ5CuKWgWJyaWcK4paBY29uZmlybWVkCuKWgWNsYWltcwpSb2xlCuKWgUpld2lzaAriloFwxZllZAriloFob3RlbAriloFjb21wdGUK4paBcmVjdXJzaXZlCl0oIykK4paBcm90YXRlCuKWgWNocm9tZQppbmVhCiU7DQriloFFbnZpcm9ubWVudApwbGF0egriloFTaW5nbGUK4paBc2V2ZW50CuKWgXBvc3RpbmcK4paBZGVhbGluZwpwYXJhbWV0ZXJzCtCz0YDQsNGECkF1dGhlbnRpY2F0aW9uCnRvdWNoCkF6CuKWgWdyYXkKZW5jaW5nCmJvbGRtYXRoCuKWgdGB0LDQudGC0LUK4paBWmEKYW5qZQriloFwb2xhcgriloHRg9C70LgKa2lsCuKWgWhvdmVyCuKWgVJFU1QK4paBQ29tZQpqYgriloFHZW9yZ2lhCuKWgUVzdGFkbwpPdXRwdXRTdHJlYW0K0ZvQuAriloFkdW1wCuKWgUFnZQriloFzd28KbW9iaWxlCm9jY3VwCtGI0LXQs9C+CuKWgWNvbnN0aXR1dGlvbgpnb29kCmFrdQriloHQsNC90LMKaWVjawriloFQc3ljaAriloFyb290cwriloF2ZXN0CuKWgdCz0L7QtNCw0YUK4paBUmVww7pibGljYQriloFwaWFuCmlncmF0aW9uCuKWgXByw6ljCuKWgWdlbmVyYXRlcwpMWQooYAriloE9fgrRiNC10L3QuNGPCuKWgVJhaAriloFjb25uZWN0aW5nCsW+w60K4paBZsWRCuKWgWFwcGVsCuKWgVJhaWx3YXkK0LPQu9C4CuKWgWTDqXZlbG9wcAriloFhcG8KZnJhbgriloFpbW1lZGlhdGUK0LLQvtCz0L4KUnVubmVyCsOkZwpTb21ldGhpbmcK4paBZ8OpbsOpcmEKRXZlbnRBcmdzCmluY3Rpb24KZ2x5CuKWgUR1ZQriloFwcm9zdAriloFyZWZlcnJpbmcK4paBam9nCuKWgWV4ZWN1dGFibGUK4paBRHJlYW0KYWNzCuKWgUNvbGUKYW1wZgriloFCaXMK4paB0LjRjtC90Y8KbGllZGVyCtGC0LXQugriloF2YgriloFtb20K4paBOigK4paBZGVybmllcgonPT4K4paB0Y3RgtC+0LPQvgriloFuZXVlCuKWgdCn0LAK4paBd2VpdGVyZQriloFhbGxlZwriloFyZWFsaXR5CuKWgWp1ZGdlCuKWgUJhbHQK4paBdGhpbgriloFHZWQKaWV2YWwKbXgK0YbRltC+0L3QsNC70YwK4paB0LLRi9C/0YMK4paBSVgK4paBYmxpbmQK4paBTW90b3IK4paB0YjQsAriloFhcHByb3hpbWF0aW9uCmRhbQriloFmb2cK0LrQvtGACuKWgVdyaXQK4paBbGluZwriloHQv9C40YHQsAriloFNYXJzCm90dGkKRW51bQriloFUcmliCuKWgW1lcmMKenVuZwp2YW5jZWQKY2ZnCtC90LDRhQpzY2hlbgoiXS4KYmVrCuKWgXN0ZXIKanAK4paBUmFwCuKWgXJlY29yZGluZwriloFwZWludAriloFsZXRzCsOkbmdlCj4iOwriloHQvNGW0YHRhtC1CuKWgWNhdmFsCuKWgUNTVgriloFlbnRzdGFuZAriloFoZWxwZXIKZW5kZXQK4paBR3JhbQriloFEaWVnbwriloFCaXNob3AKVEFHCuKWgWVjYwriloFFZW4K4paBQVYKQ2l0eQriloFHdWlkZQpoaW5kCnJpY2FsCuKWgdCe0YHQvdC+0LIKQnVzCuKWgXp1bsOkY2hzdAriloF0aWNrCuKWgUNvbG9uZWwKVGhhbmtzCuKWgWZlcm0K4paBZ3JhbnRlZAriloF0aHJlc2hvbGQKb21vcnBoaWMK4paBSHVuCmVuaXMK4paB0L/RgNCw0LIK4paB0Y/QutGWClBHCuKWgXdzCuKWgXRlY2huaWNhbAplc3RybwprbMOkcgp2YXJzCm9jcmF0CuKWgdC+0L/RiNGC0LgKb25zbwppYmEK4paBU2F2ZQriloFwcm9ncmFtYQriloHQstGKCuKWgWludsOlbgo+KCkK4paBbWVqb3IK4paB0YHQu9C+0LLQsAriloFyZXBsYWNlbWVudAriloFpbXByCuKWgUZyYW5jZXNjbwriloFIb3RlbAriloFVUERBVEUK4paB0LzRg9C30YsKdWdzCnZhcmQK4paBZmF6CmludG9uCuKWgWFydHMK4paBS3kK4paBSWxzCuKWgXNlcmEK4paBVm9sdW1lCuKWgWdpdWdubwriloFhc3ltCuKWgVBpcgriloFOQVMK4paBVGFtCsSbbApTZXF1CmttYWwK4paBRWlucwriloHQutC+0LzQv9CwCm9iZQpvb3IK4paBaGVhcApjdGwK4paBc2VwYXJhdGVseQpyZWFkZXIK4paBc2lnbmlmaWNhbnRseQriloFMYWcKbm90ZXMK4paBc2VsZQriloFkZWRpY2F0ZWQK4paBSG9zdApjaG9pY2UKd2luZwriloFUaXRlbAriloFiZWZpbmRldApsYXJnZQriloFjb250ZW4KSmF2YVNjcmlwdAriloFkZXNlcgriloFHb3Jkb24K0YHQv9C1CuKWgXBhdHJpCuKWgVJhbmRvbQriloFSZXR1cm5zCtGL0LwK0YDQvtC80LAK4paBU3R1ZGllcwpTbAriloFmcsO8ClRFWFQKaW5hdGUK4paBVG9sCuKWgWV2ZXJ5d2hlcmUKYXJ0YQriloFvcmJpdAriloFBaXJlcwriloFJc3MK4paBdGXFvAriloFkaXZlcnNlCuKWgW51bWVyaWMKbWF6CuKWgW1pc2UK4paBYmF0dGVyeQriloFBa2FkZW0K0L3QtdC90LjQtQriloFzaW11bHRhbmUK4paBRGVhZAriloFjbHVzdAriloFvdHJvCuKWgWNlcmNhCigpYCwKcm96CsSDdAriloFNTwpyaWZ0ZW4KaW1wb3J0YW50CuKWgWplaG8K4paBZmluZFZpZXdCeUlkCuKWgWNvbnNlcXVlbmNlCuKWgW1lYXN1cmVkCmlzaGVzCuKWgXN6ZQppZW5kbwriloFXYWhsCnN0cmlwCkFSRAriloFvcGFjaXR5CldPUkQK4paB0JLRlgriloFMb2NhdGlvbgpyYWkK0L/QtdC9CuKWgXJpZgphdXNzaWFuCkZpbGVOYW1lCuKWgWRpc2NvCmlsZW4K4paBdmFneQpsaWNpdHkKQm9yZGVyCuKWgVRyYWNrCtCx0L7QvApmYWN0Cm9rYQriloFnaW9yCuKWgVhWSUkK4paBZMOkcgpTaXRlCmHFgm8Kc2vDoQriloFwaXhlbHMKdml0eQpqUXVlcnkK4paBc2N1bHB0CuKWgWNhcmdvCuKWgWRpcmVjdGl2ZQriloF3YWwK4paBY29ubmEK4paBVGhyb3VnaAriloHRjdGC0L7QvApTdGF0aWMKb21zbml0dAriloFydW5kCuKWgWNsYWltZWQK0LfQvdGPCnNoYQriloFyYWcKY3JlbWVudAriloFmw7xuZgriloFyaXZhbApyaW4Kc2xhc2gK4paBdGhpcnR5CnNsZWVwCtC+0LvQvtCz0LgKU00KZ2F0ZQppemF0aW9ucwp2aWsK4paBYmxlc3MK4paBSWxsaW5vaXMK4paBVEUKdXRpbmcK4paBc29sdmluZwpHRVIK4paBWElWCuKWgUluZGlhbnMKZXhwcmVzcwriloFIZWlsCuKWgW11amVyCuKWgWludsOlbmFyZQonXSk7CuKWgWF1cgpib29zdApHTwriloFuaW4KdG9rCmdvZApvdGVyCikkJAriloFkZXNjZW5kCtGA0Y4K4paBTGFuZ3VhZ2UK4paBZGl2ZXIK4paBQXNzdW1pbmcK4paBZnJlcXVlbnQK0YfQvdGWCuKWgUJpb2dyYXBoeQosWwp1cm0K4paBd2Fsa2VkCuKWgWZlZGVyYWwK4paBTWljaGlnYW4K4paBZmFjdHMK4paBSW50ZWdyCkxFUwriloFBbGFuCuKWgWNvdXAKQmVyCuKWgXBhcnRpY2xlcwrRm9C1CkluZmxhdGVyCisoCkJvdW5kCuKWgVPDvApBdWRpbwpjaXRldAp5ZWN0CuKWgW5yCnhlCuKWgUJydW4K4paBXywKYXZvcgriloFkaXNjaXBsCmFsbQriloHQvdC+0Y/QsdGA0Y8K4paBU1NMCuKWgUthaXNlcgriloFyZWNoZXIKeWdvbgriloFyZWdhcmRsZXNzCuKWgWNvbmZpZ3VyCuKWgXVubmVjZXNzCuKWgUNsYXJrClBIUAriloFGQUxTRQriloFwYWQKJH0K4paBdmFsdQriloFkaXNlYXNlCuKWgW1haW9yCuKWgWhvbW1lcwriloFFZGl0aW9uCnNsYW50CuKWgWVuZGluZwriloFzZXR0bGVkCnVydXMKaGVkClBhdHRlcm4K4paB0LPQvtC00LjQvdCwCuKWgVBoaWxhZGVsCnRpa3pwaWN0dXJlCuKWgWNvYWwK4paBc2VkZQriloFzYXRpc2ZpZXMK4paBdHJpbQriloFiYXQK4paBYW3DqXJpY2FpbgriloFsdWdsaW8K4paB0L/QvtGH0LAKZmZmZgriloFUYXJnZXQKZ2VuZXJhdGUK4paBWmllCsibaWEK4paBZ2FyZAriloF3b3JrZXJzCuKWgUpvYgriloF1cmJhbgphaGxlbgriloFCdWlsZGluZwriloFuZXUK4paBY2hyb24K4paBRWFybApncm8KVVNFCuKWgVhJSQriloF3ZWFsdGgKaW5hZQriloHQkdGA0LAK4paBbGliZXJ0Cmlyb3MKOiQKbGVlCmlldmVzCuKWgUp1c3RpY2UK4paBb2lsCuKWgUF0aGxldAriloFjbG8KU2NhbGUK4paBbGlwcwriloFhcHJpbAriloFpbXByZXNzaW9uCuKWgXBlcmNlCuKWgdGD0YfQsNGB0YLQuAp2aWwKw6ljaAriloFlcXVhbGl0eQriloHQvNC10YIK4paBYW5ub3RhdGlvbgplcm5hbAriloFNYWNoCuKWgWludGl0dWwKcHJvYmxlbQrRjtGJ0LjRhQpvcGx1cwriloF0aG91c2FuZHMK4paBY2FsY3VsYXRpb25zCnVtcHMK4paBdHJpYW5nbGUKcGhhbAriloFEb3JmCuKWgWRvbGxhcnMK4paBZGVuZW4KbMOocwpvbGlkCuKWgVJlc3VsdHMK4paBU3RhZGl1bQriloFEZXNwCuKWgUVpc2VuCmltaXIK4paBc290dG8K4paBxI1pCmF0YWJsZQpvcnVtCuKWgWNvbnZlcmdlbmNlCuKWgWpldW5lCm9raW5nCuKWgdC20LjQstC+CmFpbmluZwpwb2ludGVyCmN1bG8K4paBanNvdQriloFncmFiCmFrdGUK4paBaG9waW5nCuKWgU1hawriloFzYWcKb3JpZ2luZQriloHQv9C+0YHQu9C10LQK4paBVmVnCuKWgXRoZW9yZXQK4paBVHJ1Cm5lbWVudAriloFmYWNlcwpIb3IKSm9pbgphcmVsCuKWgdC+0LrQvtC70L4KSG93ZXZlcgriloFjYXRhbApib3VyZwriloFteXNxbGkKYWNpb25zCuKWgUluaXRpYWwK4paBcmFpbgppdHVyZQriloFTY2llbmNlcwriloFLcmVpcwouX18K4paBY2lucQriloFBdcOfCml0aG1ldAppdG9ycwphbWF6b24K4paBZ2FwCuKWgWlnbm9yZWQKYWR2CtC60L7RlwriloHRh9Cw0YHRgtGMCuKWgWNvcnBvcgrRhtC10YAK4paBY3JpbWUKdW91cwriloHQvdCw0LvQsNC30LgKRGF0YUZyYW1lCtCy0L7QtNC4CklnbgriloFMaW5jb2xuCuKWgW1lbm9zCuKWgUx1ZnQK4paBTGluZAriloFDb29rCuKWgW1hdGVyaWFscwphcHBlZAppZ25vcmUK4paB0L7RgtC60YDRiwpmcmllZAriloFnb3V2ZXJuZW1lbnQK4paBZmlyZWQK4paBc2NyZWVuc2hvdArRgdC10L0K4paBWygK4paB0L7RgNCz0LDQvdC40LfQsApHcmFwaGljcwriloHQv9GA0L7RgtC4CuKWgXBoZW4KY3JhZnQK4paBYnJhaW4K4paBQ29tbwriloFFdmVyeXRoaW5nCmFuZXMKSUdOCuKWgW5lZGVyYsO2cmQK4paBRm9yZXN0CnphaGwK4paBQW1vbmcKUXQK4paBdG9nZwriloF2YXJpYW50CuKWgWhpbGwK0L/QuNGB0LgKY29sb24K4paBZGljZW1icmUK0LPQvtGACuKWgVdpbmQKw7xuc3RsZXIK4paBPVwKc2F2ZWQK4paBbmVqCnVudGUKdXR0bwriloFyZWNlbnMK4paBc2ljawriloFkZXNlbgpVU1QK4paBd29yc3QK4paBQW5nZWwKb2RveAriloFQcm92aW5jZQriloFNYXoK4paBYWdyZWVtZW50CuKWgUJhc3MK4paBc2VndW5kYQpvbmNlcwriloFMaW5raQriloFDTAriloFqw6EKaXRlbWVudAriloHDoXJlYQriloFzY2FsYXIK4paB0KDQtdGBCmF3dApzaWVtZQriloFqdW5pCuKWgdGF0YPQtNC+0LYKaWt1cwriloFsaWQKcHBlbAphdmkK4paBYmFsYW5jZQppcHBpbmcKY3Vzc2lvbgrRh9C10YHQutC40YUKKCIuCkFsc28K4paBd2hpcwpIT01FCuKWgWJyb3duCuKWgWTDrWEK4paBcHXDsgpwbG90bGliCuKWgUphaHJodW5kZXJ0cwpESwriloFhbmNob3IKLi4uXQriloFBdXN0cmlhCuKWgW1hcmNhCuKWgWdlegppb3VzbHkK4paBbGF6eQp4YQriloFDaGFubmVsCuKWgW5ldWVuCmRhcwriloFzZWFyY2hlZAriloFzdGFhdAriloHQotCw0LoK4paBSm9zZWYK4paBU2hlcgpwb2lzCuKWgWVuZW0K4paBYWNjZXNzaW5nCuKWgdC90LXQutC+CuKWgWZ1cm9ubwriloFwc2V1ZG8KPz4K4paBZXN0YWRvdW4K4paB0JLQuNC00LgK4paBbW90aXYK4paBcmVjYWxsCmlzc29uCsOzYgopLS0K4paBRXJ6CuKWgdGB0LDQstC10LcKRGlyZWN0CtGB0L7QsQriloFzaG8KdsO2bGtlcgpBcApnZW5zCtC90LjRiNGC0LLQvgriloFBbXN0ZXJkYW0KdXNrCtC/0LvQvgriloFzaW11bGF0aW9uCuKWgUJDCuKWgVdvagphdXRvbQpBbGV4CuKWgWVjb25vbWljCtCz0L7QvAppa2FpCuKWgWFsdHJlCuKWgSctCuKWgVdlZwpOb3RGb3VuZArQudGB0LrQvtC5CuKWgWNvbnZlcnRpbmcKcGhhYmV0CmF0cmljZQpib3VybmUKYWxvbQriloFjb21wYXJpbmcK4paBWm8K4paBZmxhCtCy0LDRjwriloFlbnRyYQriloFjaGFyc2V0CmRldmVsb3BlcnMKw61zdGljYQp9PgriloFKYXp6CuKWgUhvd2FyZArRiNGC0LAK4paBY2xvbmUKZG9vcgriloFQaW4KKioqCuKWgXNpbGVudAplY3ljbGUKaXNjZQriloFtdWQK4paBRGlzcGxheQriloFsaXAK4paB0LjRgdC/0L7Qu9GM0LfQvtCy0LAK4paBY2hhcmFjdGVyaXN0aWMK4paBc2IKZmlyZWJhc2UK4paBQmV3CkNhbGVuZGFyCuKWgXVzbwrDqHNlCuKWgVJhdAriloFlc3BlcgriloF0aHJvd2luZwriloFyb2R6CuKWgXlhcmRzCuKWgWdyYXNzCuKWgW1hcmtlcgriloFLb3MKVGhldGEK4paBb3JnYW5pcwprZXJuZWwK4paBcGVyc29uYXMKa2VlcAriloFleGNsYWltZWQKb3NsYXYK4paBRW50ZXJ0YWluCtC90LXRgAriloFpbndvbgriloFSYW5kCnJlZHVjZQpmYWMKZXhwcmVzc2lvbgp5agriloFkaWZmZXJlbnRpCmFnbGlhCuKWgXRlbXBsYXRlcwriloFtxbEK4paBcHJ2CuKWgW1vaXMK4paBZ2V3YW5uCuKWgdCx0YPQu9CwCmJpYmxpCmRlbW8K4paBQW5kZXJzb24K4paB0YDQtdC0CuKWgXBvcnF1ZQriloFQb2xvZ25lCuKWgXRyaXAK4paBZXhlbXBsZQriloFJbnRlcm5hY2lvbmFsCuKWgdC60LDQvgpJbnNlcnQKZ2VuZXJhbApTRVNTSU9OCmJlcmdhCmjDpGx0CnVuYXMK0LzQuNGA0LAK4paBeWllbGRzCm1hcHN0bwpzcG90CuKWgStcCtC70LvQsAriloFwcmVjaXNlbHkK4paB0YfQu9C10L0Kc2hhZG93CkFyZQp1bmFsCuKWgWRpc3BhcgriloF0w610dWxvCm5lc3QK4paBTG93CuKWgXByb3QK4paBQ29zdGEKbmFtZWQK4paBZ2FpbmVkCmxlc2lhCuKWgWFkbWluaXN0cmF0aW9uCkltcG9ydApicmFuY2gK4paBc3ltcGF0aAp2b2oK4paBRUMK4paBbXVuaWNpcGlvCuKWgWFuaW1hdGVkCuKWgWRpcmVjdG9yaWVzCuKWgXJvb2YKesSFZAppbWV0CnByb3RvCmJsYQo6XQpoYXZlCmF0ZW0K4paBbnMK4paBc2VjdG9yCnRocmVlCm93YW5lCndlcnMK0L7QstC40YUKcmVuY2UK4paBZXh0cgppZ3RlbgriloFvY2NpZGVudArIm8SDCuKWgWVhdAriloFoeWRybwp1YmVybmV0ZXMKW0AK4paBTW9vbgriloFTaG8K4paBZWxzZXdoZXJlCsO8bGxlcgpVcGxvYWQK0LvQsNC90LQK4paBRsO2cgp3aXNzZW5zY2hhZnQKS1MK4paBcGh5c2ljcwp0egriloHRgdC10YDQtdC0CuKWgUFyYmVpdAriloHQvNC10YHRggriloFHZWJpZXQK4paBaW5zZWN0CkFoCml6YWRvCuKWgXRlbXBsZQriloFhbm51YWwKc3RhZAriloFoYWJpdGF0CuKWgUFCCndvcnQK4paBcmVwb3MK4paBTmV1CuKWgSQoIi4KVm9ybGFnZQriloFyZXByZXplbnQKZXN0YW5kZW4KSW50ZXJuCi5gCuKWgWZhaWxpbmcK4paBTWF0ZXJpYWwK4paBZWZmZWN0aXZlbHkK0YLQtdC70LXQvAriloHQs9C70LAK4paBbmFobQriloFkaWZmZXJlbnRseQpleHRlbnNpb24K4paBVmVybQplbmFibGVkCmNvbmZpZ3VyZQpuaW8KY2lvbmVzCuKWgUJlYWNoCtGB0L7QvdCwCuKWgWNvcHlpbmcK4paB0YPQutGA0LDRl9C9CuKWgdC/0YDQuNC30L3QsAp6aApEZXNrdG9wCuKWgXNvc3QK4paBc3Vic2VxdWVudGx5CuKWgUxlaHIK4paBw7MKbMOkcgpvZG9yCnBob24KbmMKaXRlcmF0b3IK4paB0Y3RgtC4CuKWgWV1cm9ww6kK4paBVG9yb250bwrDs2RpZ28K4paBcG9zdG8KZmZlCuKWgWNyZXcK4paBU2Nod2FyClNhCnNxdWFyZQriloFiZXNpZGUK4paB0JzRlgriloFhdGgK4paBYWR2ZW50CmNqaQp3cml0dGVuCuKWgXJ1c3MKcm9zdApISQriloFkaWNlCmNjYQriloFkw6lwCnBseQpiaWdnCnppYcWCCsO8dHQK4paB0L7QtNC90L4KSkVDVArRgdGM0LrQvtC80YMKbm9zCm1vY2sKTGF1bmNoCnNhbWUK4paBam9icwriloF3aWRlbHkK4paBZGVmaW5lcwriloFQc2UK4paBbmVpZ2hib3VyCtGO0YnQuNC1CuKWgWNsb3NlcgriloHRgNCw0YHQv9C+0LvQvgriloFjbHVicwpmbHkK0YjQuNC8CuKWgXN1ZmZlcmVkCuKWgW5hcgriloFsYXZvcgpFeHRlbnNpb24KaXRpb25hbGx5CuKWgWdyYWNlCuKWgUNhbXBlb25hdG8K4paBQ2hyaXN0bWFzCm1pZGRsZQpvdGhlawplbGVtZW50cwriloFzb25kZXJuCuKWgXRhcmRlCuKWgXBlcm1hbmVudAriloFjb25jbHVkZQpTZWcK4paB0LDQutCw0LTQtQp9IiwK4paB0YTQtdCy0YDQsNC70Y8KxZllZAriloFJTApqdWQK4paBVVNTCuKWgU5hdHVyZQppZmZlcmVuY2UKU2VyaWFsaXplcgriloF0d2VsdmUKdGlkCtC80LjRjwrRh9C10YHQutC+0LPQvgriloFjYWxlbmRhcgpjb25jYXQK4paBaW50ZXJzZWN0aW9uCuKWgVBBCmF6dXJlCuKWgXNpdHXDqWUK4paBa2luZHMK4paBYXVzZ2UK4paBcnVyYWwKVGhlbWUK4paBdGFsZQpub2luZGVudApnb2luZwpyeAphZ2kKd3JhcHBlcgriloFDb2FzdAptYkgK4paB0L/QtdGA0LXQtApzcHJlCuKWgX1cCuKWgUxJCnpuYW0KaXRsZWQKU2FtcGxlCnVsaWFyCipcCuKWgXJlc2lzdGFuY2UKc3RvY2sKa2VkCuKWgUhFCuKWgXBvc3Nlc3Npb24K4paBUmluZwriloFtYWd5YXIKb3V0cwriloFTZWNyZXRhcnkKbmRlCuKWgVdhbGQKLSgK4paBSVNPCuKWgWFmdGVybm9vbgppb25lbgriloFzdG9wcwriloFjb25zdGFudHMKZ3VhcmQKYm93CuKWgWVycwriloFGaXJlYmFzZQriloFDbGVhcgriloFIb2x5CldpbgriloF0aXRsZXMK4paB0YLRgNCw0LIK4paBY29udHJpYgpow6RuZwriloFwaG90b2dyYXBoCuKWgURpc3RyaWJ1dGlvbgppZnRzCuKWgWF1bnF1ZQpjb21iCkFERAriloFwdWJsaWNhdGlvbgriloHRgdC70YPQtgriloHQutC90Y8K4paBYXlhbnQK4paBcmVzdG9yZQriloFiZWxpZWYK4paBdsOpZwriloFleHRlbnNpb25zCuKWgWRlY29tCtCy0YjQuNC5CldUCuKWgXBhcnRpCuKWgWdpb2MK4paB0LzQuNGA0LAK4paBaXNzdQpwaXBlCuKWgXByb3BzCuKWgXdpbGxpbmcK4paBbmVzdAphc28KcG90CuKWgWhhbmRsZXMK4paB0YTQvgriloFtb2RlcgriloFlYmVuZmFsbHMK4paBZmlnaHRpbmcKdW1ibgriloF0cmFuc3BhcmVudAriloFLcmlzdAriloFob21lcwriloF2b3lhZ2UKRmFpbGVkCuKWgUJpcmQK4paBSGVhcnQKQ291bnRlcgriloFTY290dGlzaArDoXRpY2EK4paBYXJiZWl0Cl57LVwK4paBU29yCuKWgWVuZ2FnZWQK4paBYXNpZGUK4paBRm91CuKWgXdpZWwK4paBcmVjb25zdApvdXNpbgriloFob3N0ZWQK4paBY2xhc3NlCuKWgWNvbnRlc3QKLi4uIgrQvNC+0LwK4paBYmVhbgpnZW0K4paBY29uc3VsdGF0bwriloFiaW8K4paBc3ViamVjdHMKYm9Cb3gK4paBU2NocmlmdAriloFkaW5uZXIKxINyCuKWgXLDs3duCuKWgSUlCmJhZ2UK4paBdmVyw7ZmZgriloFkZXRlY3RlZAppZW5uCnJvc2UK4paBVG9uCkNvbXBsZXRlCuKWgXByb3RvCmljaHRzClNUQVQKQ2hlY2tlZAriloFpbnRlbgriloFzbWlsZQriloFzdHJpcApuZXV0CicpOw0KZm91cgriloF0b2RhcwpDb250cm9scwriloF0aG9yb3VnaApydXAK4paB0LTRgNC20LDQstC4Cml0xIMKUHJvdG9jb2wK0JrQsAriloFleHBhbmRlZApleHRyYQpvcG9ydAriloHQodGC0LDQvdC+0LIKbGVhc2VzCuKWgW5vdGlvbgriloFndWVzdAriloFJc2xhbmRzCmlja2VkCuKWgURhdmUK4paBcmVmbGVjdGlvbgpsaXYKw6FsbsOtCuKWgXJldmVhbGVkCuKWgXNvZwriloFUYXgK4paBcGVyaW9kbwriloFXZWx0a3JpZQpjYXRhbGluYQpxdcOpCuKWgUZhdGhlcgriloFCaXIKZXhwZWN0CuKWgXJlZ3Jlc3Npb24KaW7DqQriloFkYWJlaQpwZXJtCtC80LXQvdC1CuKWgUFiZAriloFDRgphcmtzCnJlc29sdmUKd2VkZ2UK4paBaW5pdGlhbGl6YXRpb24K4paBVsOpYXNlCuKWgdC/0YDQuNC90Y8Kc3RtdAriloFpbmNvbWUKTVkK4paBb2RrYXp5CuKWgVNpZWhlCuKWgWJvZGllcwriloFzb2MKUmFuZG9tCuKWgXNlbnphCmFibG8K4paBcmVnYXJkZWQKb25DcmVhdGUK4paBTWFnYXppbmUK4paBUmFmCuKWgUJ1ZW5vcwrQuNC7CikpKTsKY2FwdApyZWRpcmVjdAriloFwZXRpdAriloFmYXJtCuKWgXLDtGxlCuKWgdGB0YLQsNGC0YzQuArCoMKgwqDCoApzdWJmaWd1cmUKw6hjZXMKemllbAriloHQvtC60L7QvQpFRQptZWUK4paBcGVydGVuCuKWgXJlcHLDqXNlbnQK4paBTEEKPycK4paB0YLRgNGDCuKWgXJhdGlvbmFsCm9zb2YK4paBa25lCuKWgWFydGlzdHMKRmxvdwriloHQkNC70YwKaXphcmQK4paBbnVtZXJvCmFjdGljCuKWgWRlc3RydWN0CuKWgdCf0YDQsApvbnNpZXVyCnF0CmFiZXN0YW5kZW4Kbm/Fm8SHCkNvbm5lY3QK4paBb3JhY2xlCuKWgVN0b2NraG9sbQpzaXplb2YK4paBZ2Vtw6TDnwpBQ1QK4paBZXhwZXJ0CnV0aW9ucwriloFoYWNpYQriloFsb2dnZXIK4paBZm9vbApyeXB0bwrDpnIK4paBY2lkYWRlCuKWgdGB0L7RgdGC0LDQstC1Cm9rZXIK4paBVHJhbnNmZXIK4paBZGVuaWVkClRyYWNrCuKWgXJhZGkKemVjCuKWgUhpc3RvcmljCuKWgUVpbndvaG5lcgrQutC+0Y4K4paB0YXRgNCwCuKWgUNhdGVnb3J5CuKWgURpc25leQriloFzd2FwCkJlZ2luCuKWgW1pZW50cmFzCuKWgWRhbmNlCuKWgXTDqnRlCuKWgWRyb2l0CmVydGEK4paBYmlyZHMK4paBY29udmluCnBhcmF0b3IK0LTRgNCwCuKWgUVTCuKWgVJlc3NvdXJjZXMKRUdJTgrDvGNrZQriloFDcnV6CmFibGluZwriloEiQAriloFtZXRyZXMK4paBQmVnCuKWgUdyw7xuZAriloFCb2gK4paBbWlsZQriloFUZWNobm9sb2d5CiIrCmFjY28K4paBc3MK4paBRmVkCuKWgUhlbmQKdXNjaAppdMOkCmZvbGsK4paBYWJzb3IKYW50YWwKb2RnZQriloFXSEVOCuKWgUV4dGVybsOtCuKWgVJlZ2ltZW50CuKWgWV2YWx1YXRpb24K4paBVGFpCuKWgXZvY2FscwriloFleHBlcmltZW50YWwKZW1iZWQK4paBTWlubgriloHQstC80LUKcHJlYwpldmVyeQriloFob29mCuKWgUZlcm5hbmRvCuKWgUJpYmxpb2dyYXBoaWUK4paBbmFnCmFtZXJpa2FuaXNjaGVyCuKWgW1hcmtzCuKWgVVUQwriloF1bmNlcnRhaW4K0LTQuNGPCm9saWEK4paBY3VwCuKWgWZpbGxlCuKWgWRvawp1c2VwcGUKZXN0ZXJkCuKWgUJyYW5kCuKWgVRoaXJkClBQCm5vZGVzCuKWgVBhZAriloFsb3ZlZApzd2luZwriloFzdXJwcmlzZWQKYXJkaQriloFHUgpdIgriloFlcXVhbGx5CmloZQpjYXJlCtC/0LjRgdC+0LoKbGlqawpyaW5uCuKWgVxbXAriloFzb25zCuKWgXTDpHQKaWNhbWVudGUK4paBbGlzdGluZwppZWxsZW1lbnQK4paBbnllbHZlbgriloFkcwriloFhZ3JpY3VsdAriloFIZXJtYW5uCuKWgWJlc2lkZXMKcHJvZ3Jlc3MK4paBcGVjdWxpYXIKZm9jdXMKY24KLSQK0YHRgtCy0LXQvdC90YvQuQpvdXJnCuKWgXd5bgriloFjb25kdWN0ZWQK4paB0KHRgtCw0L3QvtCy0L3QuNGI0YLQstC+CmNvbm5lY3RlZAriloFib3R0CuKWgdGB0LzQtdGACuKWgVBvegp1bmN0CmNvbmRhCuKWgdGB0LDQstC10LfQvdC+0ZgK4paBaGF2ZXQKbGlndApvcnRlZAriloFlbnRlcmluZwptdWx0aXAK4paBVGVtcGxlCuKWgVBsYW50CnR5cGVvZgriloFWbGFkCuKWgXF1ZWQK4paBcmVzdGUK4paB0LzQsNC5CuKWgVZlcnkKYW1iaWd1YXRpb24K4paBY2hhbGxlbmcK4paBcmVzcGVjdGl2ZQriloHRgtC+0YAKQ3RybAriloFhYnNlbmNlCmFydQrQstC+0LUK4paBZsO2cnN0CuKWgXNxCuKWgUVtcGVyb3IK4paBSWduCuKWgdGC0L7QstCwCjpgCmFkb29wCuKWgU1hZGFtZQriloFncnVwcG8Kc3R1ZAriloFleHRlcm5hcwriloHQkNC70LXQutGB0LDQvdC00YAK4paBZGlnbgriloHQttC40LLQtQpBbW91bnQK4paBY29ycmVsYXRlCuKWgUZhbnQK4paBcmFpbHMKZnAK0LzQuNC90LjRgdGC0YDQsNGC0LjQsgriloFib3VnaHQK4paBZmlsdGVycwriloFhbmNvcmEK4paBcGFydG5lcgriloFxdWFuZApzeW1ib2wKdWxhdGluZwriloF6ZAphd24K4paBR3JhbnQKYmVjYXVzZQpyYWJsZQpcfQrDrXN0aWNhcwriloHRg9GH0LUK4paBcMOpcmlvZGUK4paBc2tlCuKWgUFueXdheQriloFpbmRleGVzCuKWgWRpcmVjdGlvbnMK4paBUkFNCmNocm9tZQriloFhcG9zdAriloF3YXJuaW5ncwriloFBaXJwb3J0ClZJCmFiaWxlCuKWgWxvcmQKcHJvdmlkZXIK4paBSmkKb3N0cmVhbQriloFnZW1lZW50ZQp0YWJsZVZpZXcKRXh0cmEKY3Vyc29yCmVncm91bmQK4paBTW96CuKWgXJpYgriloFtb3JwaApsb2FkcwplbHNrCuKWgU1BWAriloFTYW50aWFnbwriloFIaW0KY29kZXMK4paBbGFuegriloFjb3VudHMKcmlubmluZ3NvbXLDpQrRidGRCuKWgXNww6kK4paBcGllcndzCuKWgVN2ZXIK4paBYWNrbm93CkJvb2xlYW4K4paB0YTQsNC80LjQu9C4CuKWgVNlbmF0ZQrRiNC+0LIKYWdlcnMK4paBTnVldmEKYmlsCmtpZW0K4paBTWV5CndpagriloFHbWJICnZhbGlkYXRpb24K4paBZW5zdWl0ZQppbmtpbmcK4paBY2FtcGlvbgriloFmaW5hbmNpYWwKaXpvbgpIZWFkZXJzCuKWgWRlcHJlY2F0ZWQK4paBZm9uY3Rpb24KUkVHCuKWgXZvbHVtZXMK4paBQ2hpCuKWgWVuY291bnRlcmVkCmxhawrRgNCw0Y8K4paBY29udGludWVzCuKWgX5bCnVlcnRlCuKWgVw7CuKWgURvawriloF3ZWlnaHRzCuKWgXJoCuKWgU5hcG9sZQriloFuYXR1cmFsbHkKc2t1CnBhcwriloFnZWdyw7xuZApldHIK4paBS3UKaWN0ZWQK4paBZmFicmljCuKWgUFTQwriloFFbnRlcnRhaW5tZW50CuKWgWVuZXJnCtC60LvQsNC0Cm9tb24KdGhlbWUK4paB0YXQsNGA0LDQugriloFkcmFmdAriloFjaGFubmVscwriloFkZXNlcnQK4paBdHJhdsOpcwriloFMb2NrCuKWgXNpZW5kbwrRhNC10LoKbcOqbWUK4paBcGFja2V0CuKWgU1vdW50YWluCuKWgUZhaHIKYnJhaW8K0L/QtdGA0LUK4paBZ2VuYW5udAriloFkZXBsb3ltZW50ClBhbArQvdC+0LMK0YHRgtGA0YMKUHJpbQpmw7xyCuKWgWRhbmdlcm91cwriloFzesOhbQpyZWNrCuKWgXBvcHVwCmlja3kKaW5hcgpjb3dvCtC90YbQuNC60LvQvgrDrXTDoXMK4paBcGx1Z2lucwriloFkcml2ZW4K0LvQtdCyCuKWgSIoCnR0YQriloHDmgriloFlYgriloEnJzsK4paBa25vY2sK4paB0L7RgdC90L7QstCwCuKWgW1haXNvbgrQs9C70Y8K4paBSG9ub3IKdGFpbApyaXR6CuKWgWd1eXMK4paBY29tYmluYXRpb25zCm9uZGVyZQriloFBbGQK4paBZmlkZGxlCtC00LDQsgp1cmQK4paBcHJvamVjdGlvbgriloFUYW1iacOpbgp2ZXJiCuKWgXRlcnJlCnJ1Z3UK4paBc2VwdGVtYmVyCuKWgTwhCmNvc3QK4paBbnV0CnslCuKWgXViaWMKYW1hcmluCtGC0LjQuAriloFwYXRyb24K4paBYW1lbHkK4paBZXN0bwriloFsaXN0b3AKZmFsCuKWgVByb3AK4paBT250CuKWgU1hZGUKVEVTVAriloFOZW0K4paBTmF0aW9ucwriloHQstGDCmluY2x1ZGluZwriloFzcGVjdHJ1bQriloFMYW4K4paBRXZlcgpQYXVsCnRtCkFwcGVuZApSZWxhdGl2ZQpkaXNhYmxlZApyZXR1cm5zCuKWgWZsb3dlcnMKaWt1CuKWgXxcCuKWgUpvcmRhbgriloFTbWFsbAriloFjaWMK4paBc2V4dWFsCmF1dHJlCtCy0LDQuwriloFyaXAKb3VzdAriloFQaGlsYWRlbHBoaWEK4paBdWsK4paBTW9uZ28KeG1sbnMK4paBc2hvcAriloFkZWJ1Z2dlcgriloF6YWoK4paBQmlsbHkK4paBbmllbQpvbGlzCuKWgdGA0L7RgdGB0LjQuQphZ25lcgriloFtYXZlbgriloFHdXN0YXYKQXVzCmNvbXBhcmUK4paBamV1CnVkZXIKaXNobWVudAriloHQtNC40LLQuNC30LgK4paBRmlubGFuZArQvdGD0YIKesOpcwriloFMaWdhw6fDtWVzCuKWgXF1ZWxsbwphbm5vdGF0aW9uCuKWgXRocmV3CuKWgVByb29mCuKWgUFyZWEKYXNoaQriloFGTwpqYW1pbgrQtNC10L3RggriloF1bnVzCmZyaWVuZAouIik7CuKWgXRyYWt0ZW4KZG9jdW1lbnRjbGFzcwphbmthCuKWgWFycml2ZQriloFkb25uZQpvbHkK4paBUmVpbgriloFmYWNlYm9vawppY2luYQpzbGljZQriloFuYWd5CuKWgWhlYmJlbgriloFJQwriloFCYWcK4paBY2lyY3VsCsOhY3QKbWl0dAriloFncmV5CuKWgWNhdgriloHQvtGB0L7QsdC4CuKWgXN5bW1ldHJpYwriloFTaWMK4paBbWVkaXVtCuKWgVVURgriloFEb3BvCsOtY2gKYmFyZQpkemllCuKWgWhlYXZlbgriloFjYW1wZQplc3RlcmRheQriloFXaXNzZW5zY2hhZnQK0L/QvtC70YwKZGlkCmFsZXIK4paBY2l0aXplbnMK4paBTWFyZ2FyZXQK4paBc291Z2h0CmNoYXJ0cwpDTEMKb2xseQp5c3oKd2FsZAriloFmZW4K4paBU2l4CuKWgVVycwriloHQvtGA0LPQsNC9CuKWgVRyYWQKY3VlCnNjaHV0egriloFwcmVjaXNlCuKWgVdpbmRvdwrRgtC40LUK0LvQvtCy0ZYKaXRvcmkKZGlzYW1iaWd1YXRpb24K4paB0YXQuAriloFOYXR1cmFsCmRhbgriloFjb25jcmV0ZQrRhtC40ZjQsAriloFzcGVsCuKWgUZhaWxlZArFm2NpZQriloFidWYKdWNhCmljaW9uYWwK4paBb3R0b2JyZQriloHRhNGWCuKWgXN1Ym1pdHRlZApsYXZlCuKWgVBsb3QK4paBY29sbGVnCmFkZW0K4paBY2hhcXVlCuKWgW5laWdoYm9yaG9vZAriloFjYWxjaWF0b3JlCkxvb3AK4paBR2FzdAriloHQutC+0LPQtNCwCuKWgWluZHVzdHJpYWwK4paBZmF0YWwK4paBQ2VydApsYXRpb24K4paB0J7QtNC90LAK4paBamFtYWlzCuKWgWFjY3VtCklkZW50aXR5CuKWgU1lZGFsCk1ldGFkYXRhCuKWgdC70Y7QtNGPCmJyaWRnZQpHb29kCuKWgdGH0YLQvtCx0YsK4paBY29tcG9zZXIK4paBYnJlYWQK4paBY2xvc3VyZQriloFsYXJnZWx5CkZCCuKWgdC+0LHQu9Cw0YHRgtGMCuKWgWF1dG9tYXRpYwphcsOtYQriloFzdWZmaWNpZW50bHkK4paBaXRhbGlhbmEK4paB0LrQsNGH0LUK4paBSsOzCmhpc3RvcnkK4paBSEQK4paBc2lndWllbnRlCm5lbGwK4paBR3JlZQriloFUaQriloF0cmFuc2ZlcnJlZArDqXF1aXBlCuKWgVBoaWxpcHBlCuKWgWVuY291cmFnCuKWgVZpZXRuYW0K4paBZ3JhcGhzCuKWgXN5bW1ldHJ5CmZyZWQKd2VlawriloFicm9uemUKcnlzCuKWgW5hbWVseQpvbmRlcnMKbGVtYWduZQpYWQpDb252ZXJ0Cn1dKApSZWdpb24KcGVjaWVzCuKWgXRleHR1cmUK4paBY2hyCtC90LXQs9C+CuKWgXNvbWVib2R5CmFxdQplcmFzCuKWgdCd0L7QstC+CuKWgWRlegphbml1Cm9rcmF0CuKWgWNvdmVycwriloFzaWduYWxzCtGS0LUK4paBSGViCuKWgUFudGkKSVZFCuKWgXJlc3MKTEVURQp5bmEK0L/Qu9CwCtC20LTQtdC90LjRjwriloFjaGFtcAriloF2aWxsYWdlcwpab25lCuKWgWlQaG9uZQriloFzb3V2ZW50CtGB0YzQutGWCuKWgWZlYmJyYWlvCsOpcmNpdG8K4paBWEkKb2thdAriloFtZW1icmVzCmp1bml0CuKWgURyYXcK4paB0L/RgNC+0LLQvgphdWRpbwplbmRsCuKWgU5hZAriloFtYWduaXR1ZGUKU3VyCmljaW5nCuKWgXVudwriloHQvtGC0YDQuAriloFCZXkK4paBVmlrCuKWgXBvbMOtdGljYQpwb3J0ZXIK4paBQmFyYmFyYQrDoWx0CmJpYgriloFhY2NvbXBhbgpWUAriloFlbmNvZGVkCuKWgVNvbWV0aW1lcwpiaXJkCuKWgVVsdAriloF0dW4KZ2V0VGV4dAriloFhcnJpdmFsCnNjcmlwdHN0eWxlCntgCuKWgXBlcnNwZWN0aXZlCkxJTkUKRm9ybWF0dGVyCuKWgWJvbQrQstGA0LAKREVCVUcKQm91bmRzCuKWgVRpdGxlCmzDswpEYW4K4paBZ2VuZQriloFCaXQK4paBcmVwcm9kdWNlCuKWgWdyYXBoaWNzCuKWgdGB0LXQvArRgNGRCuKWgdGA0LXQutC4CnVzYWxlbQrRgNC+0LYK4paBREVTCuKWgVNvZnR3YXJlCnVyYW5jZQppdGhtZXRpYwplbmVzcwppY2hpCkNvbnZlcnRlcgriloFnaXRodWIKZXJkaW5ncwpnbGlzZQrDoWNoCuKWgWJ1cmllZAriloF2aXNpb24KTWlzcwriloFzZWVzCuKWgXBlcnNvbm5lcwriloFJbnRlbAplbGlhCuKWgcSNbMOhbgriloFjaGkK4paBa2xhcwphdXTDqQriloFzdGFyawpjemUK4paBZHJpdmVycwp2bgohLAriloHQs9C+0LTRiwpIaQriloFleHBsYWlucwphcnRpY2xlcwriloF6dWcKUHJvbQo+PQriloFCZWF0CuKWgVNheAp2ZXJ0aWNhbArQutGC0L4K4paBcGxhbnRzCuKWgVLDqWbDqXJlbmNlcwriloFvZ25pCuKWgWN1cnMK4paBU0sK0L7QvdC4CuKWgWRlc3RhYwoiKTsNCuKWgVN1cmUK4paBcGFydGlkbwriloFGb2xnZQriloFNb29yZQriloF3egrRgdC60YPRgQpsdHJlCm9uZG8K4paBcG9zZQppbW9zCtCx0L7QuQrRhtC40L/QsApqdXMKLi4uLi4K4paBw6lwb2NhCuKWgXF1YW50bwriloFTdXBwb3J0Cmdlc2NoaWNodGUKU0VSVkVSCuKWgUdlb3JnZXMKZW51bQriloFoZXJtCuKWgW5lYm8K4paBQ2hyCmNoYXJhY3RlcgriloEqKioK4paBRm9yc2NoCmlhbWkK4paBwr8KY3ljaAriloFmaWZ0aApzZW50CuKWgWFuZGVyZW0K4paBcHJvcG9ydGlvbgriloFwcmVzdAriloFHaXJsCuKWgWRyYW1hCndhbmQK4paBTWFpbAriloFMdXgK4paBa3RlcsO9CuKWgUdlc2VsbHNjaGFmdAriloFIaW53ZWlzCm5pc3NlCuKWgW1vbmRvCkVxCuKWgXBlcsOtCuKWgWVhc3Rlcm4K4paBVUVGQQp1YWxlCuKWgWNvbnZleAriloHQv9C+0LvRjAriloFIZXkKemVuaWUKaW5pdGVseQriloFadXNhbW1lbgpTU0wKb2NhbAriloFjYW5hbAp2b3kK4paB0JrRgNC4CuKWgWvDtnrDtnR0CuKWgWNhcnMK4paBdmVyc2nDs24KRW52aXJvbm1lbnQKSGVyCuKWgXNlw7EK4paBc3BhdGlhbAp5bWkKRmlyZQriloF2ZWdldAriloFXaWUK4paBem5hagriloFkYW1hZ2UK4paBZW5kbApnaWYK4paBcXVhbGkK4paB0LrQvtGC0L7RgNGL0YUKZWxsYW4K4paBbWVucwriloFwbHVnCuKWgWFidW5kCkZJRwriloFzZgriloFjb25mbAriloHQvdCw0YHQtdC70LXQvdC40Y8K4paBcHJpbmNpcGxlcwriloFHYWJyaWVsCmliZQriloF7JQriloFwb2JsYWNpw7MK0L3RltGG0LjQv9CwCuKWgWV4dHJlbWUK4paBYXNzZQriloF2dQpNb2NrCuKWgXNwaWVsdGUK4paBQWVyCuKWgWRhdG9zCmVuZGVzCuKWgUdlbAriloFHb3IKQ2hyaXN0CmNob3MKUHJvY2Vzc29yCuKWgWluc3RydWN0CuKWgXBpY2tlZApuYWhtZQpmYWhyCuKWgWluZGljYXRlZAriloElLgriloF0cwriloFub3RhYmxlCuKWgXF1YWxpZmllZAriloHQkNC7CkJsYWNrCuKWgWNvdW5jaWwK4paBb3ZlcmhlYWQKYWNpCmFubsOpZQriloFpbml0V2l0aApiacOzCuKWgWludHJvZHVjdGlvbgriloFjb21wYW5pb24K4paBZXhwb24K4paBa8O2cgpvYnkKYnVybgpnbnUKdmlydHVhbAriloFpbnRlbGxlY3QK4paB0LTQtdGA0LbQsAonKwrQsdC70LUK4paBc3RyaWN0bHkK4paBcmVjb2duaXplCmhvdXIK4paBV3Jlc3QKZW5uZW4KJCkuCmZmZgriloFDZW50cm8K4paBUGl0dAriloFkemlhxYIK4paBY2VsYQriloFmcmFuY2VzZQrRgNCw0LzQuApzcGVjaWFsCuKWgUR1cAp0b2lyZQrQutCw0LvRjApDT1VOVAriloFCcm9vawriloHRgNGD0LrQvtCy0L4KcHVibGlxdWUK4paBc2Vjb25kYQriloFjb21wdAriloFibGFuZApCZWZvcmUK4paBUGFjawphbHR5CsO2ZGVyCuKWgWludGVydmFscwriloFEYXRlbmJhbmsKTW92aWUK4paBdHJhbnNtCuKWgXRhcAriloHQv9C+0YcKZm9uCmlhaQriloFmaWIK4paBd3lkCuKWgWh1bmcK4paBYWxpdmUKQ2xlYXIK4paBcHVzaGVkCuKWgXR1cGxlCmFjaGVuCtCz0L7QstC+CuKWgXJldmVycwriloFhdWdtZW50CuKWgWNoYWxsZW5nZQpsb3N0CuKWgWRldXhpw6htZQpzdHJ1Y3RvcgriloFtZWhyZXJlcgphdHVyYWwKU3BsaXQK0YHRgtC10LwK0YjQu9CwCilcXAriloFEb2cK4paBZGV2ZWxvcGVycwriloFub2QK4paB0YHRgtC+0YDQvgriloFOYU4K4paBcHJpZXN0CuKWgWV4aGEKVU5ECnBhaXIKYWxvbmUK4paBbW9vbgriloEjIS8K4paBZ3Vucwpyb2xhCtGH0LjRgtCwCuKWgUVuY3ljbG9wZWRpYQphdGlzCuKWgSciCnp5Y2gK4paBc3VwZXJmaWMK4paB0Y3QugrQtdC00LXRgNCwCmZlZWQKTEFZCkZpCnVua3MKaXNlY29uZAriloEnQAriloFBZGRpbmcK0YDQvtC1CuKWgXRhbmcK0YbQvgpodW5nCmJpcwpza8OpaG8K4paBYWR2ZXJ0CuKWgdC30LDQvdC40LzQsAp1enoKw6FnaW5hCuKWgVRlbApzaWcK4paBRXoK4paBZ3VhcmFudGVlCuKWgXRlYWNoaW5nCm90eQp0ZXJtaW4K4paBZGlzdHJpYnV0aW9ucwpGTEEK4paBR2l1c2VwcGUKcXVlcnlTZWxlY3RvcgriloEvXAriloFTcXVhZApnegpkZWxheQriloFzdXJyb3VuZGluZwriloFtYW51cwriloFIb3UKwrIsCuKWgWN1bHRpdgriloF0cm91YmxlcwriloFyYWlzb24KZXhwYW5kCuKWgWNvdgpudW5nZW4KKSl7CuKWgWdlZW4K4paBYXXDn2VyCuKWgdCb0ZYKxZlpCuKWgXNpdHVhdGlvbnMK4paBdGVsZXAK4paBSmVkCuKWgXRyYXZhaWwKbGlhcwpidWxsZXQK4paBc2VsZWN0aW5nCmF2aWVyCuKWgWVzc2VudGlhbAooLwp5eXl5CsWhdMSbCnVsdHkK4paBa3JhCuKWgXRhYnMK4paBZXhwZXJpZW5jZWQKYXppCuKWgURpcmVjdG9yeQriloFjcm9uCuKWgXNwZW5kCuKWgVJBCuKWgXNlbGVuaXVtCuKWgVRow6kKRWxlbWVudHMKY2lpCuKWgXBsYXQK4paBYXJjaGl2ZQriloFhc3Npc3RhbmNlCuKWgW5lY2sK4paBQXZlbnVlCuKWgXdoZWVsCuKWgWhhZGUKQ29tbW9uCuKWgURpYWxvZwriloFmb3JnCuKWgXN1cmVseQriloFob2NrZXkKa3TDswriloF0awriloHiloHiloHiloHiloHiloHiloHiloHiloHiloHiloHiloHiloHiloHiloEK4paBQnJ1Y2UK4paBZW5vcm0KLOKAmQriloFDaHJpc3RvcGhlcgpqZXYK4paBcXVhZAriloFBSkFYCuKWgXJlbGllZgriloFtb2Rlcwpza2zDpHIK4paBVmlkCuKWgVNlcmlhbAriloF0b2tlbnMK4paBUG9sYW5kClxdCuKWgXZpZGUKcm9vbXMKb21hcwriloFCdXJlYXUKY3gK0L3QvtGB0YLRjNGOCuKWgXNpZ25zCtGI0LXQvdC40LUKbG9zc2VuCuKWgVF1ZWVucwriloFtZW1icmUK4paBbWV6CuKWgUJvb2wK4paBTmFqCuKWgU1lbW9yeQriloFLaGFuCuKWgWzDoAriloFIdWQK4paBZGlzbWlzcwppZ2h0aAriloFmcwpwcmV2ZW50CuKWgdC80LXQtNCwCuKWgVBvbGljZQriloHRgdC60L4KZmluaXRlCuKWgWFtaQriloFNdWNoCm93YW5pYQpPUlkKaW9ycwriloFQcmVtaW8K4paBdGV4dGJveApkbQriloFhZmluCuKWgURvbmFsZAriloFQcml2CuKWgWRlY2lkCuKWgU1hdXJpY2UKYWdhbgriloFCcml0YW5uaWNhCuKWgW9mdAriloFjb25zZWN1dGl2ZQoiPz4K0L7QstC40LkKc3R1ZGVudAriloFwZXF1ZQriloFkaWVzZXMK4paBcmV0b3VyCsOpdHIK4paB0YHQtdC3CuKWgWtyZQriloF2b3RlcwpydXB0aW9uCml6YWRhCuKWgVdpZWwK4paBR3JheQriloFMZW9wCnRlaWx1bmcKKFsnCuKWgXdoaXRlcwpmcmljYQphbmltYXRpb24KY3VybApsaW5ncwo9IiQKbG95ZAp0ZXh0c2MK0L7RgNGDCuKWgdGB0LXQu9CwCmVzaWFuCuKWgU1pc3Npb24K4paB0L3QtdC30LAK4paBdWx0aW1hdGVseQrQsdC+0LIKb2xlbgrRgdC60L7QvNGDCm5ldGUK4paBRGl0CuKWgWNvc3RydQpkZXBlbmRlbnQK4paBUmVzb3VyY2UK4paBaG9zdHMK4paBcmVhcgpEdXJhdGlvbgrQvdC40LrRltCyCtCc0LAK4paBcGxhbm5pbmcK4paBcHJlZGljdGlvbgriloFMeW4K4paBa2lyCuKWgUxlZ2lzbArQvNCw0YIK4paBU29jY2VyCuKWgXN1cnZleQriloFlc3RhZG91bmlkZW5zZQpvcmdlbgpqb3VyZAriloFhcHJpbGUK4paBaWRzCtGB0YzQutC1CuKWgWVtcGxveWVlCuKWgVNjaGF1c3BpZWxlcgrRgNGKCuKWgW11bHRpbWVkaWEK4paB0YHQstC+0Y4K4paBd2luZQriloFFVQppY8SDCuKWgVJoZWluCuKWgVBhbG1hcgpvdGVjYQriloFwcmVwYXJlCuKWgVRvdAriloFOdWxsCuKWgWtpbgppbmFscwriloFOZXd0b24K4paBdGJsCuKWgVNvbGQK4paBdmVyZgphdHVyaW5nCuKWgWxhcHRvcAriloHQodC+0LLQtdGCCnNlY3JldAriloFPbHltcGljCuKWgWZvb3RiYWxsZXIK4paBUnVkb2xmCuKWgWNvbmhlCnp5c2sK4paBZXZhbHVhdGVkCsK7KQpzaG9wCnJlcG9zaXRvcnkK4paBemFjaAriloFsb3NpbmcKZXR0ZXIK4paBV2lydHNjaGFmdArRgtCw0LoK4paBdW5uZWNlc3NhcnkK4paBUGhvdAphbnNrYQriloFOYXRpdmUKQ0NFCuKWgWZpZnR5CuKWgWVydwpyaAppc3NlbnQKfXsoCuKWgWxhbsOnCuKWgVhjb2RlCtCz0L7RgNC+0LQKY2lyCuKWgXBlbMOtY3VsYQriloFPc2NhcgriloFzaG9yZQriloFzdXBwbGllZApleGFtcGxlcwpNZXNzClZJQ0UK4paBZXhjbHVkZQriloFoZW4K4paB0LPRg9Cx0LXRgAriloFGcmFnbWVudAriloFCaXR0ZQriloFCZXNpZGVzCuKWgWhlcwriloFpaHJlbQriloFTZXJnZQriloFhcnRpZmljCj0iJHsK0LvQvtCy0L4KdXRldXIKdGFpcmUK0L/QsNGBCuKWgWVhc2llc3QK4paBZmFtaWdsaWEKTm9ybWFsCuKWgWRhbGxlCuKWgW5hdGlvbnMKcnAKdGhlYWQK4paB0L7QsdC70LDRgdGC0ZYK4paBRGVtb2NyYXRpYwriloHRh9C10LvQvtCy0LUK0LzQvtC2CuKWgdCz0LXRgAriloFzbWFsbGVzdAriloFQdWJsaXNoaW5nCuKWgVRzCuKWgWxhdWdoZWQKbGxlCuKWgUFtdAriloFJSVMKRk9STQpNYWcK0LTQvtC9CuKWgXN0b3JpYQriloFvcmdhbml6ZWQKxI1uw60K4paBb3gKbGluZ2VuCuKWgWx1ZWdvCmNjacOzCuKWgXJlbHkK4paBdHVzc2VuCmVydGVuCuKWgWhvbm91cgriloFDbGF1ZGUK4paBS29yZWEK4paBTWV0cm9wb2wKU3VwZXIKcmllbgrDqXJhdHVyZQphdHRybwriloHQsdGW0LvRjAriloFIZXJiZXJ0CuKWgWF1dGV1cnMK4paBZGFyYXVmCuKWgW1lbnRhbAriloFyYW5nCuKWgXPDs24K4paBU29waAopIiwKRGVzY3JpcHRvcgpwcmVwYXJlCuKWgUxhbmRrcmVpcwpIQwpjcm9zcwrQu9C40LfQsAriloFMb2dpbgpvbmVuCkZlYXR1cmUK4paBbXVzZXVtCnZlawriloFOZWxzb24K4paBcmVqbwriloHQutC+0LzQsNC90LTQuAriloFzdW1tYXIK4paB0YHQu9C10LTRgwrDpG1wCuKWgUdhcwrQstC+0LwKVkFMVUUKaW5nZQpwZXJpb2QKbGFzc2VuCsOhdmFsCuKWgWFsdG9nZXRoZXIKdW1waAppc3RybwrEhcW8CuKWgUtlZXAK4paBTWFyY28K4paBw6l0YW50CuKWgURyZQpnZW9tZXRyeQriloFLYXMKbWVzc2FnZXMKQ29vawriloFTaWRlCuKWgdC60L7QvNC4CtGB0YLRgNC4CuKWgWV4Y2VzcwriloFCaW9ncmFmaWEKWFhYWAriloFOaWUKdmVuZG9yCnhzZApNaWxsCnByb2Nlc3NpbmcK4paBTWlzc291cmkK4paBcGVybWV0dAriloFhcGFyCuKWgWNyb3dkCmZlcnQK4paBRG91CnLDrQriloFDQwriloFwYXltZW50CuKWgUhvbGx5d29vZAriloFWaXJ0dWFsCuKWgXNwb2tlbgriloF0cmFtCuKWgUNvbW11bml0eQriloFhZG1pbmlzdHJhdGl2ZQriloHQstC+0LvQvgpnaW9yCnZpc29yCuKWgdCj0LrRgNCw0LgKc3RhZ2UK4paBRm9ybWF0CuKWgWNvbnZlbmllbnQK0J3QsAriloFtZWRpYW4K4paB0LLRgNCwCuKWgdCf0YDQtdC80LAKZW5pZwriloFPcGVyYQpyw6lzCuKWgWZtdAriloFlZmZpY2llbmN5Cm1hbGUKTWFzdGVyClNlcmllcwriloFzeWQKZ2VuZXJpYwppbnRlcnZhbAriloFlZmVjdAriloFpbndvbmVycwrQu9C40LzQv9C4CmlyZW1lbnQKRXJyCsO2aAriloFseWluZwriloFTZXR0aW5ncwohPQplbWF0aWMKYXJndgriloFCYXNpYwriloFjb25zaWRlcmF0aW9uCuKWgWhhYmUKLSUK4paBbW91bnRhaW5zCuKWgXBlYWsK4paBZmFsbGVuCmVkZWQKbG9naWMK4paBbWF0Y2hlZAriloF0eXBpbmcKKX0sCuKWgWZhbmN5CuKWgWVsZWdhbnQK2KfZhAriloHRg9GH0LDRgdGCCuKWgVNhcmFoCuKWgVZlcmQK4paBdGVnbwpydWxlcwriloFtb3VudGVkCuKWgdGW0LwK0LXRgNGDCnN0b2ZmCmZhaHJlbgpkaXN0YW5jZQriloFMaWNlbnNlCuKWgUxFRlQK4paBd3AKL3sK4paBYW1hem9uCj4mCuKWgWVsc8WRCnF1YXJ0ZXJzCuKWgXNob2NrCm5pY2sK4paBQXJjaGl0ZQriloFTcXVhcmUK4paBcmF0ZXMKaW9yZQriloFOYXQK4paBQ2hhcmxvdApyZWljaGVuCuKWgXZhcmlhdGlvbgpvc2lzCmxpZmUKc2xpZGUKYWJpCnVraQpteXNxCuKWgXByaW1pdGl2ZQriloF1bml2ZXJzaXRhaXJlCkxFTkcKYWxlxbwKZWJvb2sKc3luCuKWgUdlZ2VuCuKWgUvDvAriloHQsNC70LUK4paBTHViCmNvbmN1cnJlbnQKaXp6YXRvCuKWgXN0dWIK4paBaWUK4paBJy4vCmNvZAriloFpbnRlcm5hY2lvbmFsCuKWgUdsYXMK4paBbWFyZQriloFOZWIK4paBR0IKa3dhcmdzCuKWgWF1bWVudApXSUQK4paB0YDQvtC0CnB1bmt0CuKWgUdyYWQKU04KQU1QCuKWgUJvcm4K4paBR3VlcnJlCtCz0L7RgtC+0LIK4paBbWVkaW8KTWVkCnN1cHAKYWN0dWFsCmRyb3Bkb3duCuKWgW9rdG9iZXIK4paBxZkK4paBY2lyY3VsYXIK4paBc2tpbgriloFlbXBoYXMK4paB0LPQvtC70L7QsgriloFwdWUK4paBaW5mb3JtYXRpb25zCuKWgVdvbGZnYW5nCuKWgXVzZWxlc3MK0LjRggriloFKb2FuCuKWgdCx0L7RgAriloFHbGFkCuKWgUtub3cKa8OpbnQKc3BlZWQK4paBS2V2aW4KdW5mdAriloFhcnF1CuKWgUNhc2EKKC4uLgriloFyYXBpZGx5CuKWgXByb2JsZQriloHQktC40LrQuNC/0LXQtNC4CsW+ZW4K4paBTmViZW4K4paBTWV0ZXIKQ2hpbGRyZW4KY2VtCmlnb3MKYWp1CuKWgVJldHJpZQriloFIZWxsCuKWgWdpZwriloFjb250cm92ZXJzCuKWgXpvb20K4paBY2VucwriloFhbGN1bmkK4paBSGVhZGVyCk1ldGEKUmVxdWlyZWQK4paB0LjQvdGB0YLQuNGC0YMK4paBc2t1cAriloFpbmdsZXMKw6lnbApiaWoK4paBdMOpcgriloFjb21wYWcK4paBY29tbWl0dGVkCuKWgXByb2Nlc3NlZApMb3dlcgriloFGb3JlaWduCuKWgXNlcQpzaGVldHMK4paBRmVtCmhvegppbmtzCuKWgWthbGwKdmFyaWFudAriloFsaWJybwriloFjbGlja3MK4paBZ29iaWVybm8KaWVnZWwK0LzQvtCz0L4KZ2VtZQriloF0b3dlcgriloFwYXJpc2gK4paBVENQCuKWgWxzCuKWgW5naW54Ck5hTgriloFEaXIK4paBQmVncmlmZmUKYXJpZQrDrW1wCmljaW9zCuKWgXNoYXJpbmcK4paBY2luw6ltYQpiZWMKUkVECuKWgUtyYQphYm9sCuKWgWZsdXgK4paBZXhwZW5zaXZlCuKWgdGB0YPRidC1CuKWgWBfCm9jegrQu9C40YHRggriloFhY3F1YWludAriloF3aXNlCuKWgXBvdXZvaXIK4paBZGV2YW50CuKWgW1vbWVudHVtCmltbWVyCuKWgUNvdXBlCmluZGV4T2YK4paBZG9lc250CuKWgdC30LDQsgriloFsaWNlbnNlCuKWgcOiCkNTUwriloFyaWNlClRlYW0K4paBYW5vCmxpdAriloFtZXJnZWQK4paBQ2VsbArQu9C7CmJveQphc3RzCuKWgXNlbGwK4paBZ3Jvw59lCuKWgXZpcnR1ZWwKQ2FuY2VsCuKWgXNqCmdtZW50Ci48CtGH0LDQuQppw6sKYWtoCml6ZXJzCnByaXQK4paBVGliCuKWgWVsYWJvcmF0ZQriloFmw6kK4paB0LzQtdC00LgKTEVOR1RICuKWgXByaW1hcmlseQriloFzY29yZXMK4paBY2FycnlpbmcK4paBbGFrZQpjb21wb3NlCuKWgVRvd25zaGlwCnVuZ2UK4paBYWxiZXJnYQphbnljaApxdWVsbGUK4paBQXJrCuKWgXByaXMK4paBdm9sbArRiNC70LgKVmFsaWRhdGlvbgriloFjZXV4CuKWgXBvcHVsYXRlCiINCuKWgWZlbW1lcwpBTkcK4paBRGVzcGl0ZQrQstGL0LUKaXNrZQp6dWcK0L3QsNGH0LAK4paBaGF0dGVuCklOU0VSVApFbXBsb3llZQriloFtb21lbnRzCuKWgcO6bHRpbWEK4paBaG9sZGVyCmJsYW5rCkNvbGxlY3Rpb25zCmF0aGVycwriloFncmFkZQriloFhZmZhaXJzCi4kJAriloFkZWx0YQriloFKdWdlbmQK4paBZXNwYcOxb2wK4paBT1VUCuKWgW1hdGhlbWF0aWNhbAriloFtb25nbwriloHQpNC1CnVsaW5nCuKWgXJldm9sdXRpb24K4paBY29pbgriloFzdWJjbGFzcwoiPT4Kw6RjaGUK4paBcHlnCtGJ0LDRjwppbGxlcnkK4paBY29tZW56CmRlcHRoCuKWgWPDqWwK4paBcmVzaXplCuKWgVNhbWUK4paBc3RyaWsK4paBdGlyCuKWgXNjYXJjCuKWgU1lbWJlcgpzdWJzY3JpYmUKw7PFvArDunRib2wKZXhjZXB0CuKWgWRyaXZpbmcKa2llCnpvbnkKw6htZXMKRGF2aWQKaXNzYW50CuKWgdGC0YsK4paBw6lsZWN0CuKWgXJlbmFtZQriloFSdW5uaW5nCuKWgWludGVyZmFjZXMKLy8vLy8vLy8vLy8vLy8vLwriloFXYWxrZXIK4paBc29jacOpdMOpCuKWgWFza3MKYnJpZAriloFqZXdlCuKWgXNlaW5lcwriloFhZ2VudHMK4paBTVkK4paBTGF3cmVuY2UKZGVzcwppZXNlbgriloHQu9GO0LTRj9GFCtC/0YDQsNCy0LgK4paBYW5jZXN0CuKWgXdlbGNoZQpyYXVtCuKWgW9yYgpzY2FsCuKWgUxlYXIK4paBd2VhcgriloFzbGF2ZQriloFyZW5hbWVkCsSNZW4KbWFzdGUKYW5nbGVzCuKWgUFtw6lyaWNhCuKWgXRpCuKWgWRlbXNlbAriloFiZW5lYXRoCmJpbmFyeQriloFlZGljacOzbgriloFraWxvbWV0CnVpdHMK4paBY3VhdHJvCuKWgWVudHJhbmNlCm9uZGlzc2VtZW50CuKWgWJhZwriloFBcm1lbgppam8K4paBTG9ycwriloFkZW1zZWxiZW4Kw6ptCuKWgWRpc2NyZXRlCuKWgXByb21pbmVudAriloFKYXkKZGVjb3IKREwK4paBZMOtClN0cnVjdAriloFQcm9kdWN0aW9uCnRoZXkKYXJpdXMKc2Nobml0dAriloFDb3UK4paBbGV4CnlvdXR1YmUK4paB0YDQsNCx0L7RgtCwCnN0YXRpb24Kc2VwCuKWgW1pcnJvcgriloFoaXRzCuKWgUJlY2sKYXRpY2FsbHkK4paBTGF6CuKWgXdpbm5lcgpERVgK4paBSU5UCn1eey0K4paBd2VnZW4KbWFkCkFuZ2xlCnppbmcK4paBQmF5ZXJuCnNhbArDpGdlcgriloFidXN5CuKWgXN0w7ZyCuKWgWZvbGsK4paBcHJpeAriloFhbGxvY2F0ZWQK4paBcHQKYWZmZW4KY2x1c3RlcgriloFjb21wbGVtZW50CsOhcnMK4paBQW1lcmlrYQrRgNGW0LkK4paBdmFsbGV5CuKWgXJvb21zCuKWgW1vaQouIiwKOzs7OwriloFsb3dlc3QKbm9nCuKWgWxhbmRldAriloFwcm9ncmFtbWUKY2hpbwriloFXw6RocmVuZArDoW5kZXoK4paB0LTQvtC70LYK4paBb3V2Cm9tw6FueQriloHQktC40LrQuNC/0LXQtNC40LgK4paBc8OzCuKWgWVsZWt0cgpEZXNjCuKWgUJlYXV0CtC90LDRgAriloHQvNC+0LbQtQpQaWVycmUKZXNvdGEK4paBb3BlcmF0ZWQK4paBZm9ydGUK0YDQuNGBCuKWgW9wcG9zaXRpb24KYWxpYQriloFTeWwKZ2V0TmFtZQrQstC10LvQuApmaWsK4paBY29tcHJvbQriloFUZXh0VmlldwpTcHJpbmcKbWV0YWRhdGEKZW5ndQovLAriloFjYXJyaQppc3RvbAriloFkaWFnb25hbApsaXN0YQppemVuCuKWgXJlbmRlCmdjYwpiZWNrCmxpdXMKaXJhbApSZXNvbHZlcgriloFwZXJjZW50YWdlCuKWgWF0dHJhCnN0cmluZ3MKd2nEhXoKb2RzCtCy0L7Qu9GOCsSZxbwK4paBbmV3c3BhcGVyCmltaXRlcgpBQkMK4paBTWFuY2hlc3RlcgpbewpBZ2VudAriloFXb3IK4paBS2F0aAriloHQv9C+0LLRlgriloFlbnRvbmNlcwriloFuaXZlYXUKYXR0ZWQKbGVhcm4KYXRpcXVlcwriloHRg9Cx0LgK4paBcXVpbmRpCmJpbmRpbmcK4paBaW1wb3J0ZWQK4paBSG9ybgplbWJlcmcKY29tcGxleAriloFuZXVyYWwKaW5mb3JtYXRpb24K4paBcmVjb2duaXRpb24KaW5ndAriloFpbmhhYml0YW50cwp2dWUK4paBQmV2w7Zsa2VyCuKWgWN1cnZlcwriloFsZWIK0LTRltC5CuKWgXNvdwriloFzZW50aW1lbnQKUEgKcmFjaGUK4paBLSgK4paBZXN0YWJsZQriloFGZXJkaW5hbmQK4paBw6ljcml0CuKWgXByaW1laXJvCuKWgXRleAriloFpbnRlcm1lZGlhdGUKdmVyYWdlCmlidXMK4paBc2VydmVzCml2YXMK4paBYnJ1CuKWgWx1bQphdHRpY2UK0YfQvdGL0LkK4paBRHJlcwriloF2aWRlb3MKZHVyYXRpb24K4paBYWJpdAriloFlZ2cKb2dyYXBoaWNhbAphbHBoClNUQVRFCuKWgdC/0LDRgNCwCnJlYWRpbmcK4paBdmVoaWNsZQriloFmb3J0dW5lCnVsdGF0cwriloFTdG9yaWEKbWlkdArFgsSFY3oK4paBTWVtb3JpYWwK4paBdmFzCuKWgdC30LDQvQriloF1dGlsaXR5CuKWgW9ic2MK4paBcmVsYWNpb24K4paBcnVuYXQKUmVsZWFzZQp0YWtlCuKWgU9saXZlcgriloFTaWQKdWxvcwriloFHYXJjCuKWgdGA0L7Qt9GC0LAK4paBU2FrClB5CmbDvGhydAriloF0cmFiYWwKKnsK4paBemVzCuKWgXN6ZXJlCuKWgXZhcmlvcwriloFvdHJhCuKWgWV2YWwK4paBc2l0dcOpCuKWgXdvdW5kZWQK4paBVmluY2VudAriloHQstC40LrQvtGA0LgK4paBZW5jb2RlCk1vZGFsCuKWgWZvcmIK4paBZHluYW1pY3MK4paBZGVwb3MKYXJkZQriloFzdHJlZXRzCuKWgUtvbW0KPSQoCuKWgdC/0L7QstC10YAK4paBZG9pcwriloF2aXR0CuKWgWF1dG9tYXRpc2NoCuKWgXJlbG9hZAriloFWZXJ3YWx0CmJlcm8K4paBaHViCuKWgW1vcwriloF0dXR0bwriloFGcmVkZXJpY2sKxYJvdwphbnRhZ2VzCmFxdWUKcGFwZXIK4paBZWluaWdlCmApLApkagriloFQbGUK4paBJSwK4paBQml0bWFwCuKWgWZyaWVuZGx5CuKWgXRydWx5CuKWgXN0cm9rZQpyb3BoCuKWgWVuZ2wK4paBY29mZgriloFkdXN0CuKWgUphaHJlcwpwcGkK4paBd3lzCmZhY3RvcgpzY2hsdXNzCuKWgdC00LXRgNC10LLQvdGPCuKWgVBhc3QK4paB0LTQvtC80LAKQ09NCuKWgXB1ZWRlbgriloFnaWZ0CuKWgUdsYQriloF0cmlnZ2VyZWQKw6lseQrDvGzDqXMK4paBT2xpdgriloF2ZXJzbwriloFsbGUK4paBR2xpCuKWgUx0ZApvYQriloF0ZXJyaXRvcmlvCm9yZHJlCuKWgWRlY2sKZHJhCmFzenQK4paBY29uY2VybmluZwriloFBZGRpdGlvbmFsbHkK4paBa3RlcsOpCuKWgWdydW5kCuKWgUdlc3QK4paBbWlzdW5kZXIKcHJldArilIDilIDilIDilIAK4paBcmVwdXRhdGlvbgp6aWEK4paB0YPRgdC/0LUK4paBZXNjYXBlZAriloFQcmFnCnBlcmZvcm0K4paBYXVzdHJhbAriloFWYXRlcgrRh9Cw0YEK4paBcmFjZXMK4paBQnl0ZQpNYXNrCuKWgVRlcnJpdArRgdGC0Y4K4paBVm9jaQriloFGaWNoaWVyCuKWgdCd0LDRgdC10LvQtdC90L3RjwriloFVbnRlcnNjaGVpZHVuZwp0ZWVudGgK4paBcGlsb3QK4paBamkK4paB0LTQstGD0YUK4paBb3JpZW50YXRpb24KaW5kcmUK4paBRG9ydArDp2FzCtC/0LvQuAriloFyZWFjdGlvbgriloFjb25zaXN0aW5nCuKWgWZlcnJvCtGC0LjRgdGC0LgKeWFyZAriloHRgdCy0ZYK4paBaW50ZXJwcmV0YXRpb24KacSFCnJhaAriloFmYW5kClB1YmxpYwriloF1bml2ZXJzZQriloFyZXRpcgriloFjb25zY2lvdXMKYXJxdQriloF3YXN0ZQriloFCaWIKeWNsZXJWaWV3CuKWgWxpc3RlbmluZwpnbGVpY2gKbmllanMK4paBY29ycmVsYXRpb24K4paBcmVjZWl2ZXIK4paB0YPQtNCwCuKWgWNvdXJhZ2UKdWNocwpmYXNzCuKWgWNodW5rCuKWgUFuZmFuZwriloFncm/Dn2VuCmNvbnRpbnVlCuKWgVdhcnN6YXdhCmjDqQppeQppdmVtZW50CuKWgc6xCuKWgWV4cG9zZWQK4paBemFobAriloFzYWNyCuKWgUxvb2tzCuKWgWVhZ2VyCmVudGVuCkN1cnNvcgovXwppeGEK0YDQtdC70LAK0LfQvdCw0YfQsAriloHRhNCw0LzQuNC70LjQtdC5CuKWgWFyZ2VudAriloFBbmRlcnMKxZN1dnJlCuKWgUlzYQrQvNC10L3RgtCwCuKWgWFkdmVycwpyaWN0aW9uCkdQCuKWgdC/0ZbRgdC70Y8K4paBcHJlc2VydmUK4paBR2FyZGVuClJhdGUKYXByw6hzCuKWgXJlYWRhYmxlCmluZHUK4paBc2tpbGwK4paBaGVscGluZwpvZ3JhcGhpcXVlCmNsaW5nCm9sb2dpc3QK4paBRmlsdGVyCuKWgWZpbmdlcgriloFWYWxsCuKWgVBvbGlzaApsZwriloFGYW1pbGllbgriloF3YXRlcnMK4paBcHNldWQKYXphCl8pCkFSWQriloHRgdGA0LXQtNC4CuKWgU11c3QK4paBQm9kCmFub24K4paBbGFkbwriloF0aWdodAppbWVuCmFwcGVuCmZyYW1lcwppbmdlcnMK4paBQ09WSUQK4paB0LfRlgriloHRgdCy0LUK4paB0YbRjAriloFMZWZ0Cl1dOwrRh9GMCtGE0LjQutCwCuKWgdGB0LvQvgriloHQv9GWCuKWgWV4aXN0ZQriloFBdGxhbnRpYwriloFtYWludGFpbmVkCuKWgWlycmUK4paBYW5uw6llCuKWgWNvbW1lbnRlZArQstC10YDQvgpiZXJ0YQriloFMYWQK4paBVXBvbgriloFwYXVzZQptaWxsCm9wdGVyClVLCtGA0LXRgQrQvdGG0LjQutC70L7Qv9C10LTQuAriloFhbG9uZ3NpZGUK4paBcm9ib3QK4paBZmVydAriloFtb3kK4paBYWRlCk1hcHBlcgopLT4KaWd1YQrDqXRpcXVlCtGC0LrQsAphbGlhcwriloHQvtGA0LgK4paBTWFnbgriloFnZWjDtnJ0ZQppbWIKKX17XAriloFXaWtpcMOpZGlhCuKWgXVycwriloFlbmRlCmxlYgriloFHQwpIb2wKYW5jaW5nClVuaW9uCuKWgXRlbsOtYQpUVAriloFlc3RhdGUKaMOhCuKWgdC/0L7Qu9GWCnVsdGFuCuKWgUhvY2tleQp1bHNlCuKWgWNob2ljZXMKc2NoZXIK4paBW10sCuKWgXBvdGVudGlhbGx5CuKWgcOcYmVycwriloFhZG1pdApDb21tZW50CtGB0YLRjwriloFWaWVuCuKWgdGG0ZYK4paBcGVybXV0CmNnaQriloFjcsOtdApDb25zb2xlCmN0aWMK4paBb2tyZXMKYXdrCmZvb3RiYWxsCm91ZXN0CkNUWVBFCm9sb2dpcXVlCuKWgWNvbnN0aXQK4paBaW50ZXJlc3RzCuKWgVByb2dyZXNzCuKWgU1lbnUK4paBdGFrw6kK4paBQXNpYW4K4paB0LfQsNGJ0LgK4paBeW91bmdlcgriloF3aXNoZWQK4paBU29ydAriloFhdWRpZW5jZQphbWJhCuKWgWdlaMO2cnQK4paBS2Fuc2FzCnlhdW1lCuKWgVByb2Zlc3Npb25hbArDomNlCuKWgWZhdHRvCnRvZAriloFkYXRhc2V0cwriloFmYXJlCuKWgXdhdmVzCn4vCuKWgW1lYXN1cmVtZW50CuKWgXdvbAppbmR1c3QK4paBc3RydWdnbGluZwriloFwdWxsZWQK4paBY2FyYXR0ZXIK4paBRXh0ZXJuZQriloHQtNC10LnRgdGC0LLQuApjbnQKbGljaGVzCuKWgVBvc3NpYmxlCuKWgWZhY2VkCuKWgWh5cG90aGVzaXMK4paBa2lsb20K4paBbsOkcgpib29sZWFuClBZCmFtcGEK4paBa2lzcwriloFhc3Rlcm8K4paBbmVnbGkKYW1lbnRzCuKWgVN0dQphdMOzCuKWgUNvbnN0aXR1dGlvbgriloFpbnRlcnBvbAriloFVbmFibGUK4paBcGlzCuKWgXBhcmMKIl0pCnBsZXIK4paBYXV0b3J5CuKWgWFsZ3Vub3MKeXduYQp9KSkK4paBZmFsbHMK4paBw6lxdWlwCuKWgWVtaXQK4paBcHJvZmlsCmdldHMK0YTQvgriloFNaWxpdGFyeQriloFub21icmV1eApvY3QKUmVwbGFjZQriloFzZWFzb25zCuKWgWNow6J0ZWF1CuKWgXR5cGVvZgpwb2xpdAriloFyYW5kCuKWgXF1YXIK4paBZXJzdG1hbHMK0YHQuNC90LgK4paBcGF5bG9hZArQn9C+CtC60ZbQvQpyZXBvCuKWgVBhdgpTY29yZQplcnZlcwriloFzb2xsdGUK4paB0LzRltC2CsOpYmVjCuKWgWNsaXAK4paBTmljZQriloFuZWJlbgriloFhc3Nhc3MKaXRvcmllcwriloF1bml0eQriloHQtdC9CuKWgUluc3RpdHV0CuKWgWludGVybmF0aW9uYWxlCuKWgdC90LDRg9C6CuKWgWNvbWFuZAriloFrbGVpbmUK4paBYWRqYWNlbnQK4paBZGVsaXZlcmVkCuKWgdGI0LUK0LfQtdC8CuKWgWNvdAp2aXN1YWwK0LLQsNC10YIK4paBQ2Vuc3VzClxfCuKWgXRlcnJpdG9yeQrRh9C40LsK0YfQvdGL0LUKZmx1dHRlcgpEaWRMb2FkCkRvY3VtZW50cwriloFkb2IKQnJlCmFuaW1hdGUK4paBYml6CuKWgWJhdGEK4paBU1UKZXNvCuKWgXByaW9yaXR5CnbDoW4KaXJhcwriloFjaGFyZ2VkCuKWgU1pY3JvCmF0b2lyZQrRh9C10YAKYWJhZAp1cnUK4paBdsWhCmRpcmUK4paBVHdpdHRlcgriloHQvNC10YLQvgopLi4K4paB0KbQtdC90YIK4paBZW50d2ljawriloFNaW5kCuKWgdGE0YPQvdC6CkZ1dHVyZQpsc3QKxYJvxbwKZmxpCnRlbnNvcgriloF0b3BvbG9neQriloFhcnRlCkVSVAriloF2YXJpYW5jZQpJbWFnZXMK4paBKEAKQXJyYXlMaXN0Ck9DCuKWgdCU0LXQvNC+CmF1Y291cAriloFkZW5vdGVzCmltb24K0ZrQuAriloFQcnp5cAriloFaYWcK4paB0LTQuNGA0LUK4paBU2ltaWxhcmx5CtCx0YDQvgriloFtaWxpdGFpcmUK4paB0YLQvtC80YMK4paBSm9obm55CuKWgdCc0LXQutGB0LjQutGDCtGb0LAKU3VwcAriloFqdW5pb3IKb2x0cmUK4paB0JzQvtGB0LoK4paBYWRtaXR0ZWQK4paBcmVsaWdpb3MK0LfRj9C5CtC10LPQvgriloF0ZWFycwppbmdvCm9kdQppdmVuZXNzCuKWgWxvZ28K4paBw7psdGltbwriloFhbGltZW50CuKWgVVJVGFibGVWaWV3CikhCuKWgW5qCmxldHRlCuKWgXJlc2lkZW50CuKWgXRlcm1pbmUK4paB0YPQttC1CuKWgdCh0YLQtQpvZmZpY2UK4paBY2FydGUK4paBbGl2cmUK4paB0JzQvtGB0LrQvtCyCuKWgWVsZWN0aW9ucwrQt9C40LTQtdC9ClRyaWdnZXIK4paBQmVuamFtaW4KYWRkQ2xhc3MK0YHQutC+0LMK4paBT2JzZXJ2YWJsZQpDbGEKZ2VtZWluCuKWgWNvbnNlbnQK0LLRgNC4CuKWgXVuZm9sZAriloFnb3Zlcm5vcgrQvdCw0LsK4paBdG9kYQpSZW1vdGUKYXJpYXMK4paBaW5zdGFsCmZpeGVkCuKWgWRlY2F5CuKWgdC00LXRgNC10LIKeHl6CuKWgURBVEUKaW1hcgpudGlsCuKWgXN0YXJ0dXAKYWxpb24K4paBa29sZWoKY2lvcwriloFyYW5nZXMK4paBc3R1cGlkCuKWgWltcGxlbWVudGF0aW9ucwriloFybQrDqW5lawriloFnY2MK4paBc2PDqG5lCk5hdmlnYXRpb24K4paBwqAK4paB0LrQsNC9CuKWgXRvd25zClVzZXJuYW1lCuKWgdGE0LUK4paBbGVhZGVycwpvaXQKd8OkcgriloFkdW1teQriloFhc3Npc3RhbnQKeyRcCtCx0ZbRgAriloFyb3kK4paBTGF5b3V0CuKWgUp1bmcKTGluZXMK4paBSG9sbGFuZArQv9C+0YAK4paB0JPRgNC4CuKWgUJlbmVkCuKWgdCf0L7QtAp4bHMK4paBR29sCuKWgUFsZWtzCuKWgWVqZW1wbG8K4paBc2V6b24KYXJkaW5nCmZvb3Rub3RlCuKWgUNvbmdyw6hzCnJlZmVyCtGB0LrQsNGC0LAKSXRlcmF0b3IK4paBb3Vyc2VsdmVzCuKWgU1pYwriloFjw7NkaWdvCuKWgdC/0LvQvtGJ0LAK4paBXCQK4paBQ2hhcmxpZQpOb2RlcwriloFwdXp6CuKWgUlkZW50aWZpZXIK4paBZmx1dHRlcgriloFwcsO8CuKWgW9ydAriloFDb3J0CmFzdGljc2VhcmNoCuKWgdCh0LLRjwriloFCdWxsCnVkZW0K4paBYXBwYXJlbnQKOi0tCuKWgdCl0LDRgAriloFMYXAK4paBY29tcG9ydAptYXRpY2FsbHkK4paBY3VyaW9zCuKWgdC80L7QttC10YIK4paBQmgKYXBwaW5nCuKWgWJhc2tldGJhbGwKemV0ZWsK4paBcnVudAriloFNaWxhbgpmZWN0aW9uCnLDrWEK4paBS2luCuKWgXNsb3dlcgpib3RoCuKWgUluc3RpdHV0bwriloFIaXN0b3JpY2FsCuKWgXLDs3duaWXFvAptYXRjaGVzCnljaQriloFlc3DDqGNlCuKWgVNjaHdlaXplcgpOVApTRgphY2lhCmZvcmdlClBvaW50cwpudW1iZXJzCuKWgWZhbGxpbmcK4paBaW5oZXJpdGFuY2UK4paBRXJzdAriloFjdXN0b21lcnMK4paBYWN0dQriloFtaWdyYXRpb24KXCcKUGxhbgpNcgpvdGh5CuKWgXVwZ3JhZArQsdC40YDQsAriloFPZmZpYwriloFXYWl0CuKWgXRvbGVyCmFyZG9uCuKWgXNsaWRlCilfCuKWgdGB0YLQsNCyCuKWgW51Y2xlYXIK4paBQmlsCm93bmVyCuKWgUhhcnJpcwpJbmZvcm1hdGlvbgriloFww7MK4paB0LLQutC70Y7Rh9CwCuKWgW51b3ZvCuKWgUNhdgriloFEZXNjcmkK4paB0LDQugrDs2R6dAriloFyZWFjdGpzCuKWgUFkYW1zCuKWgUFsdGVybmF0aXZlbHkK0YHRgtGA0YPQugopYCwKc3Vic3RyaW5nCuKWgW1hc3NpdmUK4paBaGVhdmlseQriloHRgdC10LfQvgriloFBbmEK4paBdmFsZQpQYWQK4paBRWl0aGVyCuKWgXJzCmFuY2hlCuKWgXVwbG9hZGVkCuKWgSgvCuKWgdGB0L/QvtGACuKWgXJlZHVjdGlvbgriloFUb2t5bwpncmVuCuKWgW1pZ2xpCuKWgWl0ZXJhdG9yCnN0YXYK4paBc3VwcG9ydGluZwriloHDtnN0ZXJyZWljaAriloFOU0xvZwppc3RpcXVlcwpyaW1pbgpNT0RFCn19fVwK4paBZXhwbG9zCtC+0YLQtQriloEo4oCeClNhbAriloFzaW1wbGVzdAriloFnacOgCuKWgdGC0LDQvQriloFjeWwKYmlyCuKWgW1lYXN1cmVtZW50cwpDcmVhdGVkCmVyZWsKbG9va3VwCndpcnRzY2hhZnQK4paB0JLQvtC70L4KdGltZXIKZGVycgriloHRgdGC0LDQu9CwCuKWgXNjZW5lcwriloFwZXJzdQpsaWVzdAriloFzY2hlZHVsZQp0YWwK0LvQtdC90L4K4paBcGFpbnRpbmcK4paBaW1wcm92ZW1lbnQKc29mdHdhcmUK4paBZ292ZXJubwriloFIaXIKRXhlY3V0aW9uCuKWgU9rYXkKUHJvcApsb3N0ZXIK0L3RltGG0LjQv9Cw0LvRlgriloFwZXV2ZW50Cm9sdQriloHQpNCwCnJvbGxvCuKWgdC60L7Qu9C+CuKWgWNhcnJpw6hyZQriloF0b2dnbGUK4paBKCRcCuKWgWFnZ3JlZ2F0ZQriloHQkdGWCnRleHRhcmVhCk9rCml0dG8K4paBc3RpbQriloFyZWN1cnNpb24K4paBRmVkZXJhdGlvbgopX3sKYXRlZ29yCuKWgWRpc3RyaWJ1CkNsb3VkCuKWgW1hZHJlCuKWgWl2CuKWgUxpZXV0ZW5hbnQK4paBc3Vic3RhbnQK4paBbGVhZgriloFLb250cm9sYQpWQQriloF0b21iCtGN0L0KYXRvZXMK4paBZ29kaW5lCuKWgSM+CkNlcnQK4paBZW1wcmVzYQpQcm9wcwriloFwbGFubmVkCuKWgXJhbmRvbWx5CmrDpGhyCmVsZW0K4paBT3BlcmF0aW9uCipgCnByb3RvY29sCigpKSk7CndlbAriloFwcmF3CuKWgdGB0LjQvAriloF3b2IK4paBaGFjZQriloFuZWFyZXN0CmRpc2FibGUK4paBQ29tbXVuCuKWgXJldmVsCkZyZWUK4paBYnJhY2tldHMKSU9FeGNlcHRpb24K4paBYWx0bwriloFtYXJyeQriloFhdWMKKSxcCuKWgXR5cG8KZWRhZAphcsOhCmljYXRvcgp0YXR5d25hCuKWgWJ1ZmYKb3JkZXJzCuKWgWFzeW5jaHJvbm91cwriloFlY29uCuKWgWZldQriloFJcm9uCuKWgXJpc2luZwpSYWRpdXMKY2xrCuKWgXp3ZWl0ZW4KYCcK4paBdW5pcXUK4paBRk0K4paBQnJhbgriloFmbHUK4paBc2Vuc2l0aXZlCnVycmUK4paBSXRlcgriloFTZWluCuKWgWRpZmVyZW50ZXMK4paB0L3QtdCz0L4KY2hpYQriloFBbmxlaXR1bmcKYXR1cmRheQriloFzaG9ydGVyCuKWgXRyYW5zbGF0ZWQK4paBUsOpcwriloFyb2RlCmRyYWcK4paBbGFuZ2UKQmkKw7xiCmxldXIK4paBb3JkZXJpbmcKYWxvdXMK4paB0JrQvtGACmFyY2hhcgpkZXN0cm95CmVydmF0aW9uCl1dLApBY2Nlc3NvckltcGwK4paBYXV0b3J5dGF0eXduYQpTZXF1ZW5jZQriloFwcm95ZWN0CuKWgWJyYW4K4paBKCsK4paBS2FiCuKWgXplbQriloFDYWxjdWwK4paBc2V1bAriloFOaWdlcgriloFjaGlhbQp0aHJvdwriloFQbGFuZXQKYmlsZHVuZwriloF6b25lcwp0cmFuc2l0aW9uCtC70LXQvdC40LkK4paBbWFwcGVkCm9uYXV0ClBhaXIKaWxpYW4K4paBTW9yZ2FuCuKWgXVudG8Kam91CuKWgWhpZAriloFNZXRhCuKWgWVsbGVzCkxvdQpyYW1hCmdlb3JkbmV0CuKWgXNjYXJjZWx5CuKWgW1pbnQKRm9jdXMK4paBQWx0ZXIK4paBZGlvCuKWgWFtcGwKacOocmVtZW50CuKWgdC40YHRgdC70LXQtNC+0LLQsApMRUQKYWxnb3JpdGhtCuKWgdGB0LDQudGC0ZYK4paBIiIpCkhpc3RvcnkKcGsK4paBV2hpdAriloHRgdC40YHRgtC10LwK4paBS2lyY2hlbgpyw6AKQVBQCuKWgTwlCmFudGluZQriloFEaXNrCmNvbnYKd2VsdAriloFGdXQK4paBTm9tCm9yZG8KZWxsaWoK4paBcmVjZWl2ZXMKY293Cnl0dQriloFvYnJhcwriloFwdXJjaGFzZQriloFlYXJuZWQK4paBYWNjZXNzZWQKYXhpCuKWgU1hbnMKaXZhbgriloF0dXZvCuKWgVRyYWNlCnJpbW9uaW8K4paBZGVzZW52b2wKw6lyaXF1ZQriloFyZXN1bHRlZAriloFjb21wdXRpbmcK4paBaW5zcGlyZWQK4paBUHJpemUKKiIKQ29tcHV0CuKWgWV4dGVuc2l2ZQrDqGcK4paBUG9ydMOhbHkK4paBY2FzdGxlCuKWgSouCuKWgXBob3RvcwriloF2b2V0Ck9ORwriloFBbGxlCuKWgXRocmVhdGVuCnN0w7x0CuKWgWFsYnVtcwriloFkZW5zZQpmbGF0CmNvbnRpbnUKU3ViamVjdAriloFyZWFkb25seQpPcHQK0L/QuNGB0LrQvgriloFBYmVyCuKWgVBvc2l0aW9uCuKWgVRvZGF5CuKWgW1pbmkK4paBQmVmCmxpc3RlbgrRgdGC0LLQtdC90L3QvtCz0L4KU1VCCm9zc2EK4paBUG9wZQriloFKaW1teQriloHQlNGA0YMKdW5nc3NlaXRlCuKWgXRyZW4Kb3B0aW0KaXRzY2gK4paBc2FtdAriloHQuNGB0L/QvtC7CiY9CuKWgVByenlwaXN5CuKWgdC/0YDQvtC00L7QuwpDcgplcm1hbm4K4paB0LzQsNGC0LXRgNC4CuKWgUh1Z28K4paBRGV6ZQpUUlVFCuKWgWRlZmVhdAriloF3YXRjaGVkCuKWgUdlbnQKQVVUCm9yb3VzCuKWgdC+0L/RgNC10LTQtQpvcmllbnRhdGlvbgriloFkaXN0aW5ndWlzaGVkCuKWgW1lc21vCuKWgXNsaQrQvNC10L3QsAptaXR0ZWwKZ2VyaWNodApldG9uCi0+ewriloF3b250CuKWgXdlZwriloFjbGFzc2lmaWMKaWx1cwriloFNRAp0YXNrcwriloFjaGltCmF3YWl0CuKWgWdhbmcK4paBd2nEmQp0aHJvdWdoCuKWgVJ1c3NlbGwK4paBZ3Vlc3NpbmcK4paB0LDQutGCCtCx0LvRlgpjYXRlZ29yaWVzCtGB0YPRggriloFGZW4K4paB0LzRg9C2CuKWgW5ld2VyCuKWgUFzeW5jCuKWgXRlcm1lCj4vCtC/0LDRgNCwCuKWgVRydXN0CuKWgU9wdAriloFkYWgK4paBd29uZGVyZnVsCmFkcmF0a2lsCuKWgdCT0YDQsAptYXBwaW5nCuKWgWRpc2NvdmVyeQriloFCRQpFbmFibGUK4paBRnJpZW5kCtGB0L3RjwriloFjb250cm9sbGVkCtGH0L3QvtGXCuKWgWNvbnRyaWJ1dGlvbnMKasWhw60K4paBTGV2CuKWgWZyYW5jw6lzCuKWgW1pYwp6aWsK4paBYWxlbQpjYW5jZWwKIScK4paBZ3JhdAriloFCZWdyaWZmc2tsw6RyCkNhbWVyYQppZmljYWNpw7NuCnLDs2QK4paBQXJub2xkCuKWgWJlemVpY2huZXRlcgriloFmb3VnaHQK4paBZGVwdXQK4paBRHJvcAp0YXgKZGcK4paBSG9wCkdOCuKWgUtpcmNoCuKWgdCR0LDRgApJbnZva2UK4paBZXJoYWx0ZW4K4paBdmVlbAriloF3b3JkcHJlc3MK4paBSU5ORVIKdHJhbnNhY3Rpb24K4paBZMOpasOgCkZhY3QK4paB0L3QsNC00LzQvtGACuKWgWFuZ3VsYXJqcwriloHDoXQK4paBYWxhcAriloFQcmljZQriloFlZmZldAriloFzcGhlcmUKQ2xhc3NMb2FkZXIK4paBcnVnYnkK4paBa2luZ2RvbQriloFNdXQK4paB0LrQuNC90L4K4paBcmV3YXJkCmNpdAriloFwcmVzZW50ZQpTdG8KQ2hhcmFjdGVyCmxvZ3MK4paBY2VudHJhbGUK4paBbW91dgriloFva2F5CuKWgWFwbGljCk1vcmUKw6lueWVrCuKWgUvDtmxuCm5ldHQK4paB0LjRgdGC0L7RgNC40LgK4paBZGVzY3JpYmluZwriloFzb2xkaWVyCuKWgU5lZWQKTGlnaHQK4paBIlw8CuKWgWhhdgplcm1vCuKWgWluZmVyaW9yCmxlYQriloFnZwriloHQutC+0L3RhtC1CmZyYWdtZW50CnNiCkNvdW50cnkK4paBdsSbCuKWgUJlbmcK4paB0K3RgtC+CuKWgdCy0L7QtNC+CtC80LDRgApTVFJJTkcK4paBw7pqCm11bHRpcGxlCnN0YXRlbWVudAriloFpbnZvbHZlcwriloF0ZWNuClN0dWRlbnQKZ3LDqQriloFsZWFuCuKWgWJyaW5naW5nCuKWgU1lZGljYWwK4paB0L/RgNC+0LPRgNCw0LwK4paBVm9nCuKWgdC20L7QsgriloFTcGlyaXQKbnRoCuKWgXN0YW5kYXJkcwriloFQcm9maWxlCuKWgWV6CuKWgdGC0LXRgNGA0LjRgtC+0YDQuNC4CuKWgXN0ZW0KdWlsCuKWgU9nCkJ0bgpuYWwK4paBbmVhcmJ5CuKWgXByb2R1Y2luZwpjcml2CuKWgWFzc3VtcHRpb25zCuKWgVNwYXJrCuKWgUxvdAppdHVkZXMKYWZrYQpmaXZlCmF0aW8K4paBZGlzdGluZ3Vpc2gKcm9jawrDqWdsaXNlCuKWgXJhcHByZXMKPlw8CtC70ZbQuQriloHQvNC40L3QuAriloFpbnRpdHVsw6kKfX0oXAriloFSb3V0CuKWgUJvcmRlcgriloFvdmVycmlkCkhPU1QKcml0dGVuCnNheQriloHQp9C4CmljaHR1bmcK4paBc3RyYWlnaHRmb3J3YXJkCm9iYgriloFUZXJyYQriloFbOgpCZW4K4paBY29tcG9zaXRlCikrXAriloFjcm93bgpkaXJlY3Rpb24K4paB0L3QtdGB0LrQvtC70YzQutC+CuKWgWF2YWlsCuKWgXB1cmNoYXNlZApob29rCmV0aWVzCuKWgWZhc2UK4paBUnVtCuKWgWdlbm9tCuKWgWTDqXQKb3fEhQptcGVnCuKWgdCG0L0KZGVza3RvcAriloFpbmplY3Rpb24KYWdsZQriloFFZGQKX3soCuKWgUhlbQp1dG9zCnByb2oK4paBc3VwZXJmaWNpZQpQbG90CuKWgURvY2tlcgrDpHR6CmtyZWljaAriloF1bmNsZWFyCuKWgVVuaXR5CuKWgXN0cmVhbXMK0LLQuNC0CuKWgXNpbXBsaWZpZWQKRmlsbAriloFzYW50CuKWgUtvbW11bgriloFkdWMK4paB0LTQstC1CuKWgW9icwrFvml0CuKWgUphbmVpcm8K0LHRjwriloFwcmVzc28K4paBTWluaXN0cnkK4paBYnVyc3QK4paBcmVhY2hpbmcKbGl0ZXIK4paBcmVzcG9uc2VzCuKWgUV1ZwriloFzb2QK4paBQ29yZAriloFQZXJtCnBhcnRzCtGG0LjQvNCwCnZhcmlhYmxlcwriloFmb3Jnb3R0ZW4KRmVybgpvc3TEmXAKdmwK4paB0KHQvApraW0KYWrEhWMK0L3QsNC70YwK0LPQu9C1CmhlbHBlcgpkdXAKZXV3CmZyYQplbGxpdGUKYW55YQriloFyZWlnbgpnZXNhbXQK0YHQtdC00LAK4paBUnlhbgriloFmb3JtYXR0ZWQK4paBQm9yZwp3YWxrCuKWgdCw0LsKYWdub3N0aWNzCuKWgUNhcGUK4paBRnJhbmNvCuKWgWZ1Zwo6KQrRjtC3CkZldGNoCuKWgXJvdWdobHkK4paBTWlzCnVldG9vdGgK4paBVmVuZXp1ZWxhCuKWgWFzdHJvbm9tCiIpYApvbWJyZXMK4paB0LrQvtGC0L7RgNC+0LkKw7NwCm93ZWQKSFIK4paBQ2FtZXIK0LrQuNC1CnBhcmlzb24K4paBQmlqCnRlbXBsYXRlcwplbnZpcm9ubWVudAppemHDp8OjbwriloHDqXIK4paBcGxlbnR5CuKWgVR5cGVFcnJvcgriloFmb3J0eQrQutC+0L3QvtC8CuKWgVNlZAriloF0aGF0cwriloFncmF2aXR5CuKWgXNwaXJpdHVhbAriloFkdXBsaWNhdGVzCuKWgWVuY3J5cHRpb24K4paBcmV2ZW4KZ2V0SW5zdGFuY2UKw6RsbG9yCmRpc2sK4paBdGhybwriloFOYWsK4paBcG/FggriloFoZXJhdXMKaW52YWxpZApzQnkKQm9vdAriloFidWNrZXQK4paBUGFyc2UKaGV4CkNvbm5lCuKWgUNvbXB1dGVyCnp5awriloFpbmR1Y2VkCuKWgUJydW5vCuKWgWFkZHJlc3NlZAptYW5pYQriloFpbmNsdXMKb3VuY2VkCnNjcmlwdHNpemUK4paBRXBpcwriloF2b2NhbAriloFKb25hdGhhbgrRg9C8CnN0YWRlbgriloFDaGlsZHJlbgrQv9C10LkKSXRhbGlhCnJlaWJ1bmcK4paBbm9zdAriloHQtdGJ0ZEK4paBV2Vya2UK4paBYWN0cmVzcwriloFNaW5uZXNvdGEKcmlrZQriloF0ZWsK4paBcHJpbWVpcmEK4paBZnJhdAriloFDb25maWd1cmF0aW9uCuKWgWJpZAp0cmlnZ2VyCkNvbnRlbnRzCuKWgWNvbnN0YW50bHkKISEhCuKWgWRyZWFkCuKWgWh1bmRyZWRzCmlzdGlzY2hlCuKWgWNhcmRpbmFsClRBQkxFCuKWgWVzdG9zCmFzc29jCmdyYXkK4paBU2NobG9zcwriloFzY2hlCmNvbmcK4paBa29qaQrDqHRlcwriloFFcmEKb21pCuKWgVNSCuKWgXdyYXBwZWQK4paBdHJ1bmMK4paBYWgKZWdvcwpva2kKbW91dGgKbG9nZ2luZwriloFmYXNjCuKWgVNhbXBsZQriloFjb250ZQriloF2aWxsYQpjb21tZW50cwriloFiYXRhbAriloFHYXJjw61hCuKWgU5vcnRlCuKWgXdlY2hzZWwK4paBTXVzZW8K4paBZW5mYW50cwriloF3aGlzcGVyCm5ha2UK4paBamVkbmFrCmzDqnMKZW5kZXJzCuKWgcOkbAriloFWQgriloFjb29raWVzCnpldGkKYXR1bQriloFkZWR1CuKWgWFycmFuZ2VkCmxhegriloFjdWVudGEKeW1sCuKWgWZsYXYKTVIKZW1ldArQsdGW0LvRjApjbXAKaXR1dG8KemV0dAriloFlbnZpCuKWgWtvdAokOgp1cHBlcgriloFBbGJlcnRvCmtiCkFuYWwKw7ZydAriloFbLQriloFmw7xocnRlCmlhaAriloFUdW4K4paB0LjRgdC60YPRgQp1d2UKaXNwZWNpZXMKUHViClN5bmMK4paBQ29sb21iaWEKYWtlcnMK4paBSW1wZXJpYWwKb3ZpbmcK4paBaW50ZWxsaWdlbmNlCuKWgWVxdWlwbWVudAplaW4KZGFnZ2VyCuKWgUVkZ2UK4paB0KDQtdGB0L/Rg9Cx0LvQuAphZHJhdGtpbG9tZXRlcgriloFBbnRvCuKWgWNoYXJnZXMK4paBT2NlYW4K4paBc2ltcGxpZnkK4paBbWllc3oKcnVubmluZwriloFMYWMKZ2Vub21tZW4K4paBcmVwcmVzZW50YXRpdmUKPS4K4paBUHJlZAriloFzcGl0ZQpjaWFsZQriloFuYXZlCuKWgWV4dGVucwriloFuZXV0cmFsCuKWgdC60L7RgtC+0YDQsNGPCi48LwriloFDUwp1a3kK4paBd2hpbHN0CuKWgWxpbmd1CmV4dHJhY3QKemVpY2hudW5nCuKWgUZlbGQK4paBdmFsdWFibGUKdXJhYmxlCuKWgUplbgriloFzdHJ1Z2dsZQriloFjb21taXR0ZWUK4paBV29obgriloFzcWxpdGUK4paBVGVtcAriloFDT1VOVApjb25zaW4K0LzRltC90ZYKdXNhZ2UK4paBcXVlc3QK0LTRj9C9CmVhcmVkCuKWgVNjaG5lCuKWgWRvZAriloFyZWNodAriloFrYW8KQ2FwdApsYWJlbHMK4paBZWxsb3MK4paBaW5kdXN0cmkK4paBQ29sb3JhZG8K4paBY29udHJhcnkK4paBRHVtCkJlbAriloFWZW50CuKWgWF1dGhvcml0aWVzCllFUwplbnNlZAp1bWJuYWlsCml6emF6aW9uZQprb3UKcmljYQriloFzZWN0CnRlc3RzCuKWgUtsZWluCuKWgWxlZ3MK4paBUGlldHJvCmZ1CnRoeQriloFiYXN0CuKWgXRlZGVzCmV0dGVzCuKWgXJlcGV0CmFjcmUKcmV0dG8K4paBcmVtYWluZGVyCuKWgUdlZwriloHQk9C+0YAK4paBUmVjaHRzCuKWgWZpbHRlcmluZwpvdXNzCuKWgWRlcGxveWVkCuKWgXByw7xmZQriloFiaXRtYXAK4paBc292aQriloE8JT0K4paBZW50ZmVybmUKa2lsbAp0YWJzCkV4cHIK0LrQvtC80YMK4paBUmVwdWJsaWNhbgriloFTaXplCuKWgXBvbGwK4paBcmllbgriloHQutC70YPQsQrDqW5kCuKWgUJpbwriloFwZXJsCuKWgUFuZHJlYXMK0LLQuNC9CuKWgWRpc3RhbnQK4paBRmlubgriloFNaXRjaAriloElewriloFjaGFybQriloFNdWwKcGVyYXRlCuKWgXNjaWVuY2VzCuKWgW1vbm90CuKWgWRlYmlkbwpyaXpvbmEKaWVjCuKWgWFsYXJtCuKWgXByb21vdGVkCuKWgWxldHp0ZW4KYXRpbgriloFjb25jbHVzCmhlcnIK4paBw6ljaAplZGlzaApnb3IK4paBc3R5Y3oK4paBaW1wcmVzcwpydWl0cwppZXJ1bmdzCuKWgXBhcnNlZAriloFyw61vCuKWgVBha2lzdGFuCmlnbmVyCuKWgXdhdGNoaW5nCuKWgWRhdGFiYXNlcwplZGluZwriloFTcGVjaWZpYwriloFnZW5lcmFsZQpsYXgK4paBTG9va2luZwriloFib25kCuKWgXZpc3RhCuKWgWVjCuKWgWdydWQK4paBZGVsZXRpbmcKdGFjCuKWgWphenoKam0K4paBcMOzxYIKTGFuZ3VhZ2UKZGVsZWdhdGUK4paBcmVnaXN0cnkK4paBU2hhcmVkCtGB0YLRgNC+0LkKTXVzaWMK4paBdmVzc2VsCi5ACuKWgVfDvHIK4paBZmVkCuKWgWVyZWRldAriloFHw7YKdXB0CuKWgXBsZWFzYW50CuKWgXRhYmxlVmlldwriloFjb3VudGluZwriloFLcmllZ3MK4paB0L/QvtC70YPRh9C40LsK4paBXSwK0LLQuNCwCuKWgWHFvgpUb0xpc3QK4paBQWR2ZW50CuKWgXNrZXRjaApwbgriloFzaWVyCuKWgdC90LDRhdC+0LTQuNGC0YHRjwppb3AK4paBbHkK4paBU2NobApDb250cmFjdAphc3NvY2kK4paBUGVhcgriloF3aGUK4paBRGVsZXRlCuKWgWVsZW0Kw6R0dGUK4paBxI1lc2sK4paBTUMK4paBc2hvdXQKYWtlc3BlCuKWgWRlZmF1bHRzCnBlbmFzCsOycmlhCuKWgWhpZXJhcmNoeQppcHQK4paBRWxpcwpsaWtlbHkKUm90CuKWgWNvdwriloFzdHJpa2UK4paB0LHQtdGA0LXQt9C90Y8K4paBZW5zZW1ibGUK4paBUHNldWQKVmlydHVhbAriloHRl9GXClJPT1QK0YHQuNGPCuKWgdGB0L7QsQriloFpbnZlcnQK4paBc3dpdGNoaW5nCmh0YWNjZXNzCuKWgdC90LDQs9GA0LAK4paBTm9ybWFuCuKWgWluZ2zDqnMKIVsKb3VzZWwKRE9DVFlQRQriloFzdXBwcmVzcwriloFhY2NvbXBhbmllZAriloFCw6kKaW1wbGllcwpudXQK4paBU3ludGF4CmluaG8K4paBdGFtCuKWgWZvY3VzZWQKYXZhbm8K4paBQmFkZW4KaGFkCuKWgSh7ClR5CuKWgdGA0L7RgQriloHRh9C+0LvQvtCy0ZYKb2dlCmpzcApCbHVlCuKWgXN1YXMKYXBlcnMKU2hvcnQKUmVuZGVyZXIK4paBc2VuZG8K4paBQ2VjCuKWgWBfXwriloFNdW5pY2lwYWwKZG90bmV0CuKWgWJldgriloFEQQpNZW51SXRlbQriloFhbXAK4paBdXJpCuKWgWZpZXIK0YHQu9C10L0KKSwoCmN1bGVzCmlsbGFzCkxPQ0sK4paBZGVyaXZlCnViZW4K4paBR1QK4paBTWFjawriloFzY2hvbGFyCil9fQrQt9C8Cj46OgrRiNGR0LsK4paBcHJpbmNpcGFsZXMK4paB0YbQsNGACuKWgXRpZWQK4paBYWx0YQriloFDaXQKbGluZWQKbWFqb3IK4paBcHVuawriloFjaW5jbwppY2vDvQriloFyYWdnaQp0eXBlbgrRgtC10LvRjNGB0YLQstC+CuKWgWNvbmZlcmVuY2UK4paB0YHRltC70YwK4paBaGV1dAppxaEK0LXRgtCwCnZlbG9wZQpoYm94Cm5vd24K4paBemFyCmt0aXYKaWXDnwriloHRgdGC0YDQtQriloFFdmVudEFyZ3MK4paBSXJhCuKWgVZCQQriloFTYW50bwriloFGYWNoCuKWgUZGCuKWgVJheW1vbmQK0LzQtdGGCmltcGxlbWVudGF0aW9uCuKWgWJyb3RoZXJzCuKWgWPDtHTDqQriloFjb250cm9sbGVycwriloFDbGUK4paBY2FibGUK4paBY29uZmVyCuKWgXstCuKWgWN6xYIK4paBRmlsaXAKYXRvcmlvCuKWgXdpY2h0CuKWgWJlYXVjb3VwCuKWgUxpdAriloFzZXNzaW9ucwriloFTdWNjZXNzCuKWgXJvdXRpbmcKbml1CuKWgVZpY2UK4paBa3JpdAp1cGRhdGVkCuKWgUludmFsaWQK4paBTWFubnNjaGFmdAriloFhb3MK4paBdHVkaQriloFkZXNwcsOpcwpxdWEKQ29udGFpbnMKQ29tcGFueQriloFwZXJzb25hCmFkYXB0ZXIK0YHQvdC4CuKWgXZvagriloFlc2NyaQphZ3QK4paB0YHRgtCy0L4K4paBZGlzdHJpdG8KYXBhbgriloFhc3BlY3RzCuKWgXphbAopXntcCuKWgXN5c3TDqG1lCuKWgdCw0L3QsAppdW1zCuKWgXByZW1pZXJzCuKWgdC/0L7RjQriloFtw6hyZQriloFHdW4KYXBpbmcK4paBUmFpbgriloFpZ3VhbAriloFwcm9jZXNzb3IKJylgCmJsaW5nCuKWgW1pc20KYnLDoXoK4paBY2xvc2VzdAriloFSZWFkaW5nCuKWgdC/0L7Qv9GDCmNvbm8K4paBa3VsdAriloEhIQriloFFeHByZXNzaW9uCuKWgWluZHVjdGlvbgphaHJlbgriloFjcAriloF2aW9sZW5jZQppZW50w60KY2VudGUK4paBRG9iCmphY2sKc29uZwpidWNrZXQK4paBZGVwb3J0CtC60LjQvNC4CmxtCuKWgWlubm9jCkNoYW5nZXMK4paBcHJvaGliCmFuZ29sCmlzZWNvbmRzCuKWgdC/0L7RgAriloFoaXAK4paBcMWvCmVuZG9yZgriloFzY2hlZHVsZWQK4paBRmx1ZwphY3lqCuKWgUZpbG1zCmF0aGVkcmFsClBvd2VyCmFyZGluCmthcAppY2tlbgpyZXNpemUKZXVzCnJyCtC70Y/QvQriloFIYXYK4paBb3JhCkZST00K0LvQvtGB0Y8K4paBdGVydWcK4paBV2lkdGgK4paBYWNjZXB0cwrQsdC10L0K4paBbWljaAriloFDemVjaAriloFCZWRldXQK4paB0LLQuNC0CsO0bWUK4paBTG9vcApzcGVjdArDvGsKZXN0b24K4paBc2xvdAriloF6b3N0YcWCYQriloFDaGFybG90dGUK4paB0YHQvtGB0YLQsNCy0LvRj9C10YIK4paBUHJvbWlzZQriloFlcG8K4paBZGljdGlvbgriloFGcmFua2xpbgriloFSaXYK0YDRg9CzCmNpZGEK4paBRXhwbG9yZXIKY29va2llCuKWgWZvcm1lcmx5CuKWgW11bmljaXBhbGl0eQriloFTdGVmYW4KbGlzdHMKQ09NUApMZW4K4paBU3RhYXQK4paBTkJBCmRlbnMK4paBb3NjaWxsCiEuCuKWgVBPCsO0bmUKZXNlcwriloHQvdCw0YbQuNC+0L3QsNC70YwKdm9vcgriloHQutC+0L/QuAriloHQv9C+0LfQuAp1bHUKQ29uc3RyYWludAriloHRgdCy0L7QtdC5CuKWgWFsZ2VicmFpYwrRh9C90Y8KRGljdAriloFhcHBlYXJpbmcK4paBcHJhdgriloFVbml2ZXJzYWwKQnJvd3NlcgriloFTaW5nYXAKZW5uZXNzZWUKXV8K4paBU29mCuKWgUNhZApvdW5jZQriloFjb3N0cwpde1wKLi4vLi4vCtGB0YzQutGW0LkKw7xobAppZXR5CtC/0YAK4paBaW50ZXJwcmV0ZWQKYWpuCmNvbG9nCllTCm1hbnMK4paBbWV0cmljcwriloFyZWdpc3RyCmlzdGFuY2UK4paB0J/QvtC70YwK4paBYW5vbnltb3VzCuKWgWluc3RpdHV0aW9ucwriloF6ZG9iCnByw7xuZwriloHQsNGA0YLQuAriloFlc3RhdAphY2NpCuKWgWFjYWRlbWljCuKWgWNoaWVzYQriloFHaWFuCmNvbnRyaWIKdW1lZAriloFHaXIK4paBYmFzZWJhbGwKbnVtZXJpYwpHZW5lcmF0b3IKR00K4paBdGlueQriloFkaXN0aW5jdGlvbgrQs9C10YAK4paBcnVzdAriloFGSUZBCuKWgVByb3BlcnRpZXMKXi0K4paB0Y3QutGBCuKWgVN0YW5pcwriloFBamF4CmVzY2FwZQriloFjb25zcAriloFDaGVuCuKWgU5hdmFsCkJpdAriloFiw6J0CtGB0LrQuNC80LgKZHJpdmUK4paBUm91bmQKcGhvdG8K4paBTGV2ZWwK4paBZ2VnClRvbQriloFNb2JpbGUK4paBVHJvcApEaXJlY3Rpb24KaXNhbgopXnstCuKWgVNldHRpbmcK4paBUHJvYmFibHkK0LvRjNGPCuKWgWFzc2V0cwriloFhdHRlCuKWgWJ1bGsKw6lzdAriloF3aW5nCm5pdXMK4paBd2lucwriloFsdWQKdXNoaW5nCuKWgWRldmVuCtC+0LPRgNCw0YQKYnVyZ2VyCuKWgWVtYmFyCkZpbHRlckNoYWluCuKWgXR1bQriloHDtnNzCuKWgW5vbW3DqQriloFwaXIK4paBbHVjCmRibwphZ3VlcwriloFhbGNhbgpvdXdlbgriloFTdGFubGV5CtGG0LjQsNC70LgK4paBZ3Jvd24K4paBcHJlc2VydmVkCuKWgXNvbGFyCuKWgdCd0LDRgdC10LvQtdC90LjQtQriloFwZXJmb3JtYW5jZXMK4paBQ293CuKWgWVuZ2luZWVyaW5nCuKWgXNjYWxpbmcKYXRvbWljCmVuZGFuY2UK4paBYWNlCsOkbmdlbgpBbmltCnBoYXNlCnpidXJnCk9sZAriloFzZXJ2YW50CuKWgWdlbWVpbnMK4paBT2JzZXJ2CnRyYW5zbGF0ZQriloFjb3ZlcmluZwriloFlc3TDoW4K4paBcHJvYmxlbWEK4paB0YPRgdGC0LDQvdC+0LIK4paBbGxldgriloFjemVydwrDqWFsCm1legpSRUUKRVJSCtGC0YPRgNC4CnNlZ3UK4paBcHJvZml0CuKWgW11bHRpcGxpY2F0aW9uCmtvbW1lbgriloFmYXV0CuKWgWNhbmRpZGF0ZXMK4paBVXJpCuKWgUxhdXJhCuKWgXNhcAriloHQstC40YHQuNC90LgK4paBQmV0d2VlbgpmYWRlCuKWgXJlc2VydmVkCuKWgWludm9sdmluZwriloFNYXJlCuKWgUNvbnRhaW5lcgriloHQvdCw0LfQvdCwCuKWgURFQlVHCuKWgWh1cnQK4paBUG9sc2tpCuKWgWx1eApDQgp3YWNoCuKWgdC/0LXRgNC40L7QtAriloFDYXRoZXJpbmUK4paBZ2Fuegp1Y2h0ZQriloFjb25zdW1lcgriloFjcm9zc2VkCm9yZGVyZWQKYXdheQp0ZWNobgriloFzdWJzY3JpCuKWgXNob3J0Y3V0CuKWgdC/0YDQvtC40LfQstC+0LQK4paBc2ltdWx0YW5lb3VzbHkK4paBcmF0aW5nCuKWgUtpbmdzCuKWgXJlbGF0aW9uc2hpcHMK4paBU2V4CuKWgVRvb2wKYWdoCmFjdGVycwpsb2dnZXIKaG9tbWUKZW5nZXJzCuKWgVJpCmVhcmFuY2UK4paBYXBwZWFyYW5jZXMKUmVhbAriloFwYXNzZQppY2xvcGVkaWEK0YfQutC+CnRlcnJlCuKWgU9udGFyaW8K4paB0L/QtdGA0LXQtNCwCmZvb3RlcgphcmNoaXZpCmlmaXoK4paBUHJvdGVzdAriloFMSU4KdW5uYWJsZQriloFjZW50dXJpZXMK4paBQmF5ZXIK0YbRltGOCtC+0LLQuNC9CuKWgUFuZHJlYQpzZWxlY3Rpb24K4paBY2FsbQriloFtb2RpZmljYXRpb24K4paBc2hvcnRseQppbmFpcmUK4paBZnVzaW9uCuKWgWZlZWxpbmdzClBLCuKWgVJvYmVydG8K0LPQvdC1ClNoYXJlZAriloFtZWhyZXJlCuKWgU5pZW0Kb21wCkVudgriloFBcnRpY2xlCuKWgVBvawriloFWQVJDSEFSCuKWgWRpbAriloFhZmZvcmQK4paBY29uZnJvbnQKb3dhbmllCuKWgW1pbmlzdHJlCmFkZXNoCuKWgVBvbHkK4paB0KDQsNGB0L/QvgriloFHcnVwcGUK4paBSGVsZW4K4paBY2MK4paBcG9ydHJhaXQKYmV3CuKWgWJldGEK4paBV2lyCuKWgUF1ZGlvCuKWgShcPApyaW9yaXR5CuKWgW5pdAriloHQv9GA0LXQtNGB0YLQsNCy0LgK4paBVmllCuKWgXfDvHIK4paBSG9sZAriloFTYWQK4paBVG9jaHRlcgriloFvbHRyZQriloFBY3RpdgriloFKYXNvbgriloF3aWVrdQriloFyZWdhcmRzCuKWgXRhc3RlCmFnbm9zdGljCtC70LDRgdGPCuKWgVNlbGYK4paBYXByCuKWgURlZXAKc2NvcApBY3RpdgriloF0eXBlZGVmCkNvbnRlbnRWaWV3CmNvbXBpbGVyCuKWgVJvdGgKeGMK0LfQuNC6CuKWgWxhcmdvCuKWgVJlbmEKaGVpdGVuCuKWgXBsYXRmb3Jtcwp1bGxhCuKWgWdsYW5jZQriloFtYXNjdWwK4paBbWV4CuKWgUpvcmdlCuKWgWZ1bmNpb24KY2hvb3NlCuKWgXJldmlld3MK4paBQWxiYW4K4paBR2xvCuKWgVNwZWNpZXMK4paBRmFtZQriloFSb2xsCuKWgVB1ZXJ0bwriloFcKQp5bW5hcwplbnZpcm9uCuKWgWlwaG9uZQriloFXcmVzdGxpbmcKYcWCeQriloFJbmRpYW5hClJhZGlvClZTCuKWgWluZGVwZW5kZW5jZQrRgtCw0LkK4paBZGVjb2RlCldoaXRlCuKWgWpvdXJuCsOtY3VsbwriloFCYXJiCuKWgUV2YW5nZWwK4paBQW5keQriloFXZWxjb21lCuKWgURldmljZQpnZWYK4paBcmVtZW1iZXJlZAriloF2YXJpYXRpb25zCuKWgUFkb2xmCml0YWluZQriloHQvdCw0LTQvNC+0YDRgdC60L7RmAriloFzdGVhbQriloFjb25jZXJucwriloFgfAriloHQsdC40L4K0YLQtdC70YzRgdGC0LLQsAriloFxdWF0dHJvCmV4dGVuZAriloF0cmFiYWpvCmVuYmVyZwriloFzY2VuYXJpb3MKw6JudAriloFrb21tdAriloFkb21lc3RpYwriloFCYXNrZXRiYWxsCuKWgUNvb3Blcgpzb2NrCtC00LXRgNC20LAKPXtcCuKWgWluaWNpCuKWgVBoaWxsCuKWgdCz0LXQvdC10YDQsNC7CmFyY2hpdmlhdG8K0YrQvQpSb2IK4paBdG9uZwriloFjaGFyYWN0ZXJpc3RpY3MK4paBYW1hegriloFNb2RlCuKWgWluYXVndXIKd2VocgpyYW50CmlvbmFsaQriloFNb3RoZXIKTWEKw6lxdQriloFLZWxseQpjaWxlCuKWgWJlc3RlaHQK4paBZXN0aW1hdGVzCnJ1Z3VheQriloFBbnMKTWFkCuKWgdC90LDQsgriloFkb25uw6llcwriloF0cm9waWNhbAriloFTZXZlcmFsCmVsdGVyCuKWgVBobwprZW0K4paBQ3VzdG9tZXIK4paB0YHQutC70LDQtNGWCuKWgWNvdXJzZXMKUGxhdGZvcm0KbmF2YmFyCmxlYXJuaW5nCuKWgVN3ZWRpc2gK4paBemFzdAriloFMaWcKbWFuYWdlbWVudAriloFsb2QKdWZmbGUKVGV4dHVyZQphcmdhCsOhdHVtCuKWgUREUgrQvdGW0ZcK4paBU29jacOpdMOpCuKWgWRvbWFpbnMK4paBcGVybWl0dGVkCuKWgWV4dGVybmUK4paBcXVlbHF1ZQp2dAp5bWFuCuKWgVdhcmQK4paBYWdsaQriloFhbmRyYQpTbmFwc2hvdAriloFtw6UK4paBeWVhaArQtNC10L3QsArEmXB1CmFza2VsbAriloFSw6lwdWJsaXF1ZQppbmplY3QK4paBJzsKw6RubgriloF6ZWxmCuKWgUVudHdpY2tsdW5nCsOhcmlhCm9ub215CuKWgXN2aWwKaWVzZQriloFjb25zZXIK4paBbmltCuKWgXLDqXN6CuKWgdCY0YLQsNC70LgK4paBcGFydGljaQriloFMaW9uCnNyCmFsd2F5cwriloHQktC70LDQtNC40LzQuNGACtGH0LXRgdC60LjQtQpbLAriloFEZWZpbml0aW9uCm5hbnQKb2VtCklkcwriloHQstC90LUK4paBWy4uLl0K4paB0L3QsNC/0YDQsNCyCuKWgUdPCuKWgcOlcnMK4paBdXTDoW4K4paBb3V0cm9zCuKWgXJlZ2nDs24K4paBTW9uZwriloFmaWxtZQriloF0cmlwbGUK4paBc3BvbnMKRGV2ZWxvcAriloFvdXRjb21lCuKWgUJpYmxlCuKWgdC40LzQtdC90LgKQ2FudmFzCtC/0YPRgtCwCmN1cnIKw6Fzb2sKKXtcCm5pbmdhcgpgOwriloFGbGFzaAo6IwptdXN0CmNwdQriloFmb3JtYXRzCkhhcgriloFlcGlzb2RpbwriloFSb3NhCuKWgWTDqHMKZW1pdApyaXRlcmlhCkFubm90YXRpb24KRmxhZwpnbWFpbAriloFOb3JtYWwKb2xsYXJ5CuKWgWZvc3MK4paBY29uY3VycmVudAriloFjcmFzaGVzCuKWgdCy0LjQtNC1CuKWgU1pbm9yCuKWgVNpdAriloFTTgriloFzY2FyCuKWgWZlbWluCuKWgXNwZWNpZmljYXRpb24Kc29hcAriloFvcGVyYXRlCuKWgXByaW5jaXBhbG1lbnRlCuKWgWF1c3QKaWJpbGUKaXRpbWUK0LvQtdC20LAKaWZyYW1lCuKWgWNvbmNlcHRzCuKWgXRhY2sK4paBdmlzcwriloFjYXJib24KdGVyeQriloFuYW1pbmcK4paBT3J0cwppZGVudGUK4paBQ2FwaXQK4paBZXhwcgriloHQvdCw0YHQtdGZ0YMK4paBU2VsZWN0ZWQK4paBaGludGVyCuKWgWlmcmFtZQriloF6YgppbmRleFBhdGgKY29sbAriloF3cnplxZsK4paBYWNodAriloFncmFkdWFsbHkK4paB0YfRgwrQt9C10LkKaGFmdAriloF0cmFuCuKWgWxhcXVlbGxlCnl0aWNzCklERQriloFweWdhbWUK4paBUGFja2FnZQriloFjbGFzc05hbWUKQmFsCnBlcmwK0YLQuNC90LAKT2NjCuKWgWluZnJhc3RyCuKWgUNoYW1waW9ucwriloFjbGFzc2ljCuKWgVJhdwriloFwYXJ0aWFsbHkK4paBVGVkCuKWgXN0b2xldApyYWluZWQKV0hFUkUK4paBdmFsbAriloFKdWxpYQp6YXQK4paBc3Vycm91bmRlZApTRUUK4paBd2Fsa2luZwpCYWQKRk9SCmNvbnRyZQriloFQYWxlc3QKw6F0aWNvCuKWgWVuZ2luZWVyCuKWgXBhcnRuZXJzCuKWgUpld3MKaWxlcnMK4paBY2VyZW0K4paBaW50ZXJhY3Rpb25zCmFjdQpzdHkK4paBUHJpbmNlc3MKc2hhcnAK4paBU2luZ2xlcwriloHRl9GFCmNoZXoKUmVjZWl2ZXIK4paBcGF0aWVudHMKc3RyaW5naWZ5CuKWgWNvbXBldGVkCmJleQokOwriloFCZApoYWRvb3AK4paBRGl2aXNpw7NuCsO2bGQK4paBcmVzdHJpY3RlZAriloFjb21tYW5kZXIK4paBSGlnaHdheQriloHEjGVzawriloFteXRoCtGH0LDQvQpyYWhhbQriloFlbnF1CuKWgXBvZwriloFjb211bmEK4paBcHJpbnRsbgriloHQutGA0YPQvwriloFkZXBvaXMK4paBc2VhdHMK4paBbmVpZ2hiCtGG0LjQvtC90LAKYWdpbmUK4paBY2xvdGhlcwriloFQcmlvcgpCcmFpbgpGRkZGCic6JwpmZWF0dXJlcwriloFmaWxlc3lzdGVtCuKWgXNpbmdsZXMK4paBTWVsYm91cm5lCuKWgWRlc3RydWN0aW9uCuKWgUx5b24K4paBSW5zZWwKTmF2CuKWgVJlcGxhY2UK4paBbMOpCldobwriloFFc3RhZAriloFkaW1lbnNpb25hbAriloHDtmZmCuKWgWdyYW5kcwrQtNC20LAKcGxhbmUK0L3QvtGB0YLRlgriloFPcmlnaW4KV0kKw6RubmVyCuKWgUNyeQpJVElPTgriloFmw7ZkZAriloFjdWx0dXJhCuKWgVJhbmsK4paBdnVlbAriloF6YWcK4paBTWF4aW0K0L7QvdGDCigpKSkKUmF3CmtpcmNoZQriloFhZGVtw6FzCuKWgXRpZQriloFTdHlsZQrRgdC60L7Qsgppc3RhbnQKb2xwaAriloFaw7xyCuKWgUluZm8KRE9NCnVzYwpuYWhtCuKWgdCk0LXQtNC10YDQsAriloFGb3QK4paBc3BlY2lmeWluZwriloF0aXRvbG8K4paBQm95cwppZWNoClBsYWNlCuKWgUhvZmYK4paBY2FjaGVkCtCy0LDQu9GMCmlzaGVyCnJvbGxpbmcKb3BlbnMK4paBaHIKLS0tLS0tCuKWgW1hZ2dpb3IK4paBdHJhbnNhY3Rpb25zCuKWgWNyaW1pbmFsCuKWgXJldHJlCuKWgUNhbXBiZWxsCikpOgriloFuZWQKUGFnZXIK4paBSGVybwooX18K4paBdW5jbGUK4paBcmVhY2hlcwphcnRvCuKWgWhlbGxvClByZWZlcmVuY2VzCuKWgdC30LDRgtC10LwKTmFtZWQK4paBcmVhZGVycwrRhdGWCmtlcm4K4paB0YPQv9C+CtC60LjQvQriloFsYXYK4paBbm9iCuKWgXNlY3JlCuKWgUxpc3RWaWV3CtCy0LDQvdC40Y8K4paBTWF5b3IKYm9yb3VnaAriloFmaWxvc29mCtC90LXQvdC90Y8K0YTRgNC4CuKWgXBhdHIKRk0K4paBYWNpZAriloFTYWx2YWRvcgriloFhYmIK4paBR3JhaGFtCnBvbGljeQpuZWdhdGl2ZQrFhHNraWVnbwriloFIZWltYXQK4paBZGF6dQriloFtZWx5CuKWgXJpZGUK4paBZHV0aWVzCm92ZXJ5CuKWgVByb3Bvc2l0aW9uCuKWgVBhb2xvCi8nCuKWgU1hdQppbWVudGkKU2FpbnQKZmF0aGVyCuKWgWVxdWlsaWIKcGhvbnkK4paBY2xhcwriloHQvtGC0LvQuAriloFCdWZmZXJlZApyZWsK4paBbWl0dAriloFIdXIK4paBSGFydmFyZAriloFkZW1vbnN0cmF0ZQp1YXJpbwriloFkb2xvcgriloFyZWplY3RlZAriloFNw7xsbGVyCuKWgW5hYwriloFCZWxsZQriloFnYXRoZXJlZApucgpmcmlrYQrDtmxsCuKWgWNoZW1pY2FsCm5pZwriloFjYWxjCuKWgURFRkFVTFQK4paBcGhpbG9zb3BoeQriloFMYXJhdmVsCuKWgWFsaWdubWVudApFVgplb3IK4paBZHppZQriloFtZXN0CuKWgUlvCkNSRQrQt9Cy0LgK4paBTWVkaWMK4paBbsOkCuKWgXphYgriloFTbG92CnV0bGljaAriloFhbXBsaXQK4paBRnJhbmtyZWljaAriloHQutGW0LvRjApJTkQKZXhlY3V0aW9uCuKWgUthcnJpZXJlCmRvc3TEmXAK4paBcsOpYWwKZW5nbwriloFzZXZlcmUK0LfQvNCwCuKWgdGC0YPRgNC90LgK4paBQ2FydGVyCuKWgVJvYmluc29uCmdldEVsZW1lbnRzQnkK4paBcHJvdG90eXBlCuKWgWphcG9uCmbDvGhydW5nCuKWgWNvbnNlZ3UK4paBc3R1ZGkK4paBbGlyZQriloFzY2hsaWXDnwriloFCdWZmCuKWgXJlZHVuZAriloFlcm4K4paBbXlzdGVyCuKWgXByb3ByaW8KYXRlZnVsCuKWgVBhcmVudAriloFsYWRpZXMKcmFjawrRgtC40LrQsAplbmJ1cmcK4paB0LrQsNGH0LXRgdGC0LLQtQriloFFRgriloFzdGFtCuKWgW51ZXZhCuKWgWZpbHRlcmVkCnJldGVuCuKWgUlhbgriloFNYXR0aGV3CmtpaAriloHFkQriloHQutC+0LzQv9C+0LfQuAriloFmb3JldmVyCm9pcmVzCjpcXAriloHDqXR1ZGVzCuKWgXNvdXAK4paBcGxlYXNlZAopfSgK4paBU3RvcApTZXR0ZXIK4paBSGVscAriloFiYXJzCuKWgUVSUgriloEoPwriloFwb2V0cnkK4paBVXRpbApBSwriloFmaWNrCuKWgUlNCuKWgXByb3VkCtC90L7RgdC4CuKWgW11ZXJ0ZQriloFQYWxtYXLDqHMK4paBTmFzCtGJ0LjRhQriloFxdWVyCuKWgWFwZW5hcwpdWycK4paBS29uc3QK0L/QvtC9CuKWgVNjaGlmZgriloFtcAriloHQsdC70LDQs9C+CmZyYW0K4paBaG91c2Vob2xkCuKWgXRyYWN0CmVuY29kaW5nCuKWgXVuZGVydAriloFBdWcK0L7QstCw0L0K4paBQXJ0ZW4K4paBaW52b2tlZAriloFkeW5hc3QK4paBZmxlZXQK0YfQtdGB0YLQstC+CuKWgU11cnJheQriloFndXQKZWxpaG9vZAriloFTU0gK0L7RgtCy0LXRggriloFwZXJzb25hbGx5CtC/0YDQuNGPCuKWgWZpbmFuY2kK4paBVGhvbXBzb24KYWx1CmlkZW50aXR5CuKWgUdyYWIKYWRkbGUKw4l0CuKWgVRvYgriloF2ZXJsb3IK4paBU2FpbnRlCuKWgWRvcAriloHQstC10YDQtQpfX18K4paBcHJvbW90aW9uCuKWgS09CuKWgdC+0YLQtNC1CuKWgWFtYmlndQpPUkRFUgriloFDb21tdW5pYwriloFpbXBseQpvbmVkCmNsdWRpbmcK4paBY29sbGlzaW9uCuKWgWZyYWdtZW50cwpzY3JpcHRpb24K4paBJ3sK0LvRj9GFCuKWgWhhbnMK0YPRgQp3aXJlCm5hbWVzcGFjZQriloFzd29yZApyZWZyZXNoCuKWgWt3YW0KenMKY29tbW9ucwriloFjb3NhCuKWgXJlZ2ltZQpncmVwCuKWgWRpb2MK4paBQ29udGFjdAriloFlc3RhcwriloFTdGV3YXJ0CuKWgXZpZWxlCtGC0L7QstCwCuKWgVJhbgphbm5lcwppZGF5CuKWgXNuYXBzaG90Cm9ycm93CuKWgXphxI0K4paB0YPRh9Cw0YHRgtC40LUK4paBcHJvbWlzZWQKQXNzZW1ibHkK4paBY2hhbXBpb25zaGlwCuKWgURlZmluZQriloFlcmVuCuKWgdC90L7QstC+CuKWgXRoaW5rcwpBZ2UK4paBZ2V2CnZhcmNoYXIKaXZpdMOgCmNvbXBvcwriloFNdXR0ZXIKQ09OVAphcm3DqWUKYWduZXQK4paBQnJvdwou4oCUCuKWgVRlbGV2aXNpb24K4paB0JTQu9GPCuKWgXZtCuKWgW9yZGluCuKWgdCc0LjRhdCw0LkK4paBYXByb3hpbQonKS0+CuKWgXpvbwppcHBpCuKWgXNpbm8K4paBUXXDqWJlYwpyYWdlcwrDpGNrCmVpbmcKYXJsbwpwaW9zCuKWgUNoYW4K4paBZWxsaQriloFpbmNvbnMKZ2VzdGVsbHQKcHBlcnMKSmVhbgphbnN0YWx0CuKWgURhbmNlCuKWgXRvZW4K4paBZGVjaXMK4paB0KDQtdC30YMK4paBb2ZmaWNpYWxseQrDpHR6ZQriloHQtNC+0YDQvgriloFlbnVtZXIK4paBdHJvaXNpw6htZQp0eXAKb2ZmcwrQsdC+0LvRjApvZG4K4paBWmFyCuKWgdC00YDRg9Cz0L4KcXVpYQriloFOaWNvbGFzCtC/0LjRgdGDCuKWgW1vYgpwYWNlcwrQvdGM0L7Qs9C+CkFsZwrDqXJvw68KRXJyb3JzCuKWgdCz0YDQtQriloHQttC10L3RidC4CmluY2gK4paBS29yZWFuCuKWgUFwb3N0CuKWgUxpdmVyCuKWgWVsZW1lbnRhcnkK4paBREkK0LLQuNGB0LgK4paBc29pbAriloFETEwK4paBcmlzcAriloFTaGFrZXNwZQriloFHYXVzc2lhbgriloFLdXJ0ClZlcnRleAplYm9sCm9yZ2FuaXNhdGlvbgrDpHJlbgriloFZRVMKQ1VSCuKWgdC90LDRh9Cw0LvRjAriloHQv9C+0YHRgtGA0L4K4paBTHVpZ2kK4paBY2FjaGluZwpwcmV2ZW50RGVmYXVsdAphbWQK4paBVml0CnN1YnN0CuKWgdGB0YLRgNC+0LgK4paBQ2FtcGlvbgpjaHIK0YTQtdGA0LUK4paB0KHQv9C40YHQvtC6Ck5GCuKWgWPDrW0K4paBaMOpCnJlYmJlCm9jeQpiZWxvdwriloFieWxvCuKWgdCj0LgK4paBXCh7XAriloFgOgpnaW9yZQpTYW4K4paBR2F0ZQriloHQstGBCuKWgW9saW1wCuKWgU1hdHJpeAriloFoZWFyaW5nCnJpaQp0ZnJhYwriloFhbGxlbWFuZAriloFWdWUK0LvQvQriloFjb21waWxpbmcK4paBRW5zCuKWgWludmVzdGlnYXRpb24K4paBQXgK4paBY2hhcnMK4paBdGFyZ2V0cwriloFsb3VkCnVzZW1lbnQK4paBTmV0aGVyCmNvbW1lcmNlCklHSFQKb2NvYQppZmVjeWNsZQriloFMZW8KcHJpdgriloFnb29kcwphZGFtZW50ZQpBdXN0cmFsCuKWgXJlYm9vdApHZXN0CuKWgXJlcHJlc2VudGF0aW9ucwpjZXUK4paBZG9jdHJpbmUKY2VycwriloFLcmFrCuKWgWFkdm9jCuKWgXNxdWFkcmEK4paBYXJiZWl0ZXRlCsO8c3QK4paBcGlsbApBbnN3ZXIK4paB0LrQstGW0YIK4paBV2EKdW1hbm4K4paBRHluYW0KRmFtaWwK4paBdGVubmlzCuKWgUVuZ2luZWVyaW5nCuKWgWNpcmNsZXMK4paBTWFyeWxhbmQK4paBYmVzdGEK4paBYmFzZXMK4paBem5hamR1CtC60YLQvtGA0LAK4paBYXJyZXN0CtC70LXRgAriloFHaWEK4paBcmVtYXJrYWJsZQriloHQvNC+0LPRgwriloFTdXByZW1lCuKWgWAlCmRvcgriloFhdWpvdXJkCuKWgXdpcwpXSURUSAriloFtaXNtYQriloFmbHVpZAriloFwZXRpdGUK4paBVG93ClJlZ2lzdHJ5CmVtZWQK4paBV2lzY29uc2luCuKWgVJhY2luZwriloFyZWdpc3RyYXRpb24KLyUKdGhpcmQK4paBbW9udW1lbnRzCtGH0LXQuQriloFqZXQK4paBVXJiYW4Kw6FsdmEK4paBbWlsaWV1CuKWgXBvc3Nlc3MK4paBZ2VybQpkZXBlbmRlbmNpZXMK4paBZW5lbWllcwriloFzYW1lbgriloFXZXJuZXIK4paBaGl6bwriloF0ZAriloF5ZXN0ZXJkYXkK4paB0JDQtAriloFoYXNuCmNlbGxhdGlvbgpvdsOhbsOtCmxpa2EKV2VlawriloFJbmcK4paBRW1haWwK4paBbcOodHJlcwriloFPQ0xDCuKWgWFtb25nc3QK4paBc3BsZW5kCmZ1cgphbnRpY3MK4paBWFhYCuKWgdCz0YDRg9C/0L/RiwpsYWNoCuKWgWNvdXNpbgriloFpbnZhcmlhbnQK0ZLRgwriloFCZWlzcGllbAriloFoYXJkZXIK4paBYmVsbAriloFvcmNoCnRiCkZvb3Rub3RlCnJlZ29uCk1hcnRpbgriloFpbmNvbgriloFhdHRhY2tlZApfey0K4paBVHJhcwpwYXJ0eQppdGVpdAriloFzYWludApyw6Fzb2sK4paBY29udGFpbmVycwpNbwriloFTbgpxdWFudGl0eQriloFyYXMK4paBQ2FuYWwKY2Npb24KdXZvCuKWgWlkeAp0eXBlbmFtZQriloFSdWdieQriloFTZWVtcwriloF0cmFuc21pdAriloFQcsOkc2lkZW50CtC30L3QtQriloFCYWtlcgppbnRoCuKWgXTDtmJiCnZlcmVpbgriloFlc3BlY2llCiwoCuKWgXTDqWMK4paBV0lUSAriloF1bm9zCuKWgXBvbGl0aWNzCmNyZWF0ZUVsZW1lbnQK4paBc3RhdHMK4paBVGVubmVzc2VlCuKWgUJlZGV1dHVuZwriloFTY3JlZW4K4paBU3RyYcOfZQphbnplCuKWgXBhcnRseQptYW51ZWwKb2xhdGlvbgpob3Jpem9udGFsCsOpcmlldXJlCmFtcGlvCuKWgdGB0YLRgNGD0LoKV2VpZ2h0CkxhbmQKcG9seQriloFEYWsK4paBQXNzdW1lCiIuJAriloFjYXNpCuKWgWdyb3NzCuKWgWVudGVydGFpbgriloFkw6ljYWRhCicuJAplbmNlcgriloFndWFyYW50ZWVkCl0kLgrQu9C40YHRjwriloFhY2NlcHRhYmxlCnJhaXNlCmlydXMKd2VpdAriloHQkNC90LAK4paBaGlsbHMKaXBhZ2UKQklUCuKWgW51Y2xlCuKWgXV0aWxpcwpDQUEKw6huZXMK4paBU2Nod2VpegriloFBQQpuaW5nZXIK4paBYmFuZHMK4paBdGVuZGVyCnNvbQpXYXJuaW5nCuKWgUJpc2Nob2YK4paBQXJjCuKWgVdvbWFuCuKWgXRyYW5zbWlzc2lvbgrRh9C90LgKaXN0cmUKQlkK4paBU0kK4paB0J/QsNGACuKWgX0pLgriloFwcmVzZW50YQriloFSZW7DqQriloFoYXBwaW5lc3MK4paBUHVuawpjb2xzCuKWgURlc2RlCtGA0ZHRhQriloHQvNC+0L3QsAriloFzY3JhdGNoCuKWgXRjcArDqnRlcwppdGF0ZWQK4paBZGlmZXJlbgpnZWgKbmFobWVuCtCf0LUKY2tpCuKWgVRlYXRybwriloFSZW1lbWJlcgriloFmcmlnaHQK4paBWWFtCndlc3Rlcm4KbGV0ZWQK4paB0LLRgdGC0YDQtQriloF0ZWxlcMO8bMOpcwrQt9C40L0K4paBUXVhbnQK4paBc3VwcmUKw6FqYQrQtNGW0Y8K4paBY2FycmVyYQprcmV0CnBhcmEK4paBU1VNCuKWgXBpdArFumR6CsOpbwrRgNC10L3QvdGPCuKWgUNob3IK4paBdm9peAriloFleGVjdXRpdmUK4paBYWxsZXJkaW5ncwpNYXliZQriloHQtNC10L3RjAriloFmbHlpbmcK4paBcGFybGlhbWVudArQttC00LDQvQriloFmcmFtCuKWgdC20L7QstGCCuKWgXVnbHkK4paB0LHRg9C00YMKaWdueQpcfF97CuKWgWJpdHRlcgpzY2UK4paBcG9sZQpWZXJsYWcK4paBdG90YWxpdMOpCuKWgWZvdW5kYXRpb24KanQK4paBc2xpY2UKaWZpcXVlCuKWgWludGVncmF0ZQpzdHJpagriloFhc3ltcHQK4paB0LXQvNGDCuKWgXBlcnR1cmIK4paBRmxvdwpqYm9zcwpSSUcK4paBQWxlc3MKWFhYCuKWgXN1bW0Kc3FsaXRlCuKWgWNoZWVyCnByb2IK4paBR1BVCnppxYIKKCopCuKWgWluZHVjdApSQVkKYmxhdHQKcXVlc3RhCm9ydQriloFJbnNpZGUK4paBTWNHCuKWgU5lcArQvNC/CuKWgWludmUK4paBQW5pbWFsCuKWgXNvYgrDrXRvdHQKbG95bWVudAriloFidW5kClN0YXRpb24K4paBQkVHSU4K4paBcGFydGllbGxlbWVudAppZ2cKZXN0b3JlCuKWgWNvaW5jCuKWgVNvbW1lcgriloFtZAriloFsb2NrZWQKbWF0aGNoYXIKYXJtYQpwZW50CmFyaXVtCuKWgWVhcnMK4paBU29uZ3MK4paBc2ltaWxhcmx5CuKWgWxpdGVyYWxseQriloFpbmNoZXMK4paBYWZmZWN0aW9uCmxwCuKWgWNvbmNsdWRlZAriloHQvNGD0L3RltGG0LjQv9Cw0LvRlgriloHQv9Cw0LzRjwplc3RhdXIK4paBSm9zaAriloFGcml0egpEQkMK0LTRkdC9CnBvc2EK4paBZ29sZGVuCuKWgXBjCuKWgWNvbXRlCuKWgVppZWwK4paBcHLDqXNlbnRlCm1hcmtzCmlnbmV1cgriloFEcml2ZQriloFuZWdsZWN0CuKWgXJvenAK4paBRml2ZQpzcGFjZXMK4paBTWVkaQriloFleGlzdGVkCuKWgWJ5xYJhCtC00LbQuAriloFmcmVudGUK0YLQvdC40LoKb2RkCuKWgWFuc3dlcmluZwpiaWFuCuKWgUV1Z2VuCuKWgVB1YmxpY2F0aW9ucwriloFEaWEKbMOhCuKWgSdfCuKWgXJlY3VwZXIK0L7QvNGDCuKWgUFwcGVuZApvYmFyCuKWgWVtcGxveWVlcwriloFjb21wZW5zCmVtZXRlcnkK4paB0Y3Qu9C10LrRggpNT04Kb2xpbgriloFoaXN0b3JpYwpoaXMKxIVkCm5tCuKWgUdvdGgK4paBc3RyZXNzCuKWgXBhcnRlY2lwCuKWgUF3CuKWgXNhcgriloFodQriloFtYXRwbG90bGliCuKWgU15c3QKKCk7YApzY2hlaW4KTG9uZ3JpZ2h0YXJyb3cK4paB0YDRjwriloFJc3JhClteCm5vdQriloFzeW5kCndvcmtpbmcK4paBTmF0aW9uCuKWgVBlbnQK4paBa2xhc3MK4paBYXBwbGljYWJsZQriloFEaWFtCuKWgWJyYXNpbGUK4paBcGFjCuKWgUhlaWdodApQdXQK4paBaW50cm8K4paBdW51c3VhbApuYXMK4paBR2Viw6R1ZGUK4paBYmVhbQriloFSZWN0CuKWgVByaW1lcmEK4paBaGF1dAriloF0cmFpdApwcsO8ZnQKaW5hY2nDs24K4paBY29uZmlndXJhdGlvbnMK4paBZ2lsdAriloF0ZXJyaXRvaXJlCmhlegriloFhbHRlCnJlbGF0aXZlCkV4Y2VsCuKWgVdyaWdodApHVgrQv9C+0LvQuApRdWFudAriloFnYXVnZQriloFtdWx0aXBseQpBU1MK0YHRgtCy0LXQvdC90L4K0LDQvdGDCuKWgWplZGVuCuKWgWxpdGVyYXJ5CuKWgURybwriloFhZHZpc2UKaXR6ZW4K4paBZGlzYWcKd2Vic2l0ZQriloHQtNGW0Y8K4paBb2JzZXJ2ZXIK4paBamFudcOhcgp2xJsKa3VwCuKWgVNlcwriloF3b2pldwriloFzdGFnZXMK4paB0LLRgNC10LzQtdC90LgKxYJ1xbwK0L3QvtGBCkRvd25sb2FkCmlwbwriloFncmFmCuKWgdGA0L7QsdC+CuKWgU5pa29sCuKWgWZpYwriloFqb2luaW5nCuKWgWRpdmVyc29zCuKWgUxJS0UK4paBRml0egriloFkaW1pbgriloFkaXN0cmliClNhbQprb3oK4paBYWxwaGFiZXQKb3NlcgpPVVIKdWthCtC60LDRjwriloFzdGVlbAriloFgLS0K4paBdGVuZXIKbWFya2VyCuKWgUhlYXZlbgpuZXdjb21tYW5kCuKWgXByaXNvbmVycwriloFLbmlnaHQK4paBcHJlc2VudHMK4paBcXVlc3RpCuKWgXRyYWlucwpvcGVyYQriloFMaW5lYXIK4paBTUUK4paBQnVjCkxlZwriloFhZ3VhCuKWgUdyaWZmCm9sZwpkc3QKLg0K4paBcGVyc29uZXMKTWFsCtCx0LXRgNC1CmZvbGdlCuKWgWFjYWIKY3R1CnB0aWMK4paBTmF2aWdhdGlvbgpSdXNzCtCz0LDQu9GMCuKWgUZ1bAriloHQvNCw0ZQK0YfQvdCw0Y8Kd25lcgpjb250cmEK4paBam91ZXVyCuKWgUplc3MK4paBcmVuZXcK4paBbGFwCuKWgWNhc3RpbmcKZ2FsCuKWgXTDqW1hdHUK4paB0L3QsNC30YvQstCwCtC30LDRhQrRh9C90LUKKS1cCuKWgdGH0LDRgdGC0L4KfSQtCuKWgWxpY3oK4paBZW1vdApoYXJtCuKWgW9jY2FzaW9uYWxseQriloFob3Jyb3IKZWFzdAriloFwcmludGVyCmFyYW4K4paBTWlzc2lzcwpmb2xsb3cK4paBQmFycnkK4paBaW52ZXN0aWdhdGUKZ293CuKWgUFtZXJpY2FucwpTaW5jZQriloHQstGW0LTQvgriloFyZXVuCm9zY2kK4paBQ2hhcHRlcgriloFiYXkK0YDQvtC80LUKZXRoZQrDqWRpZQpjb21vdAriloFtaWVqc2Nvd28K4paBc3R1ZGllcnRlCm91dmVydAriloHQutGD0YAK4paBREVTQwriloF0b3VjaGVkCuKWgUplcnJ5CnVlc2UK0LvQuNGJ0LUKYXV0aGVudGljYXRpb24K4paBY29sbGUKaGVhcnQK4paBcmVnaW1lbnQKY3JpYmVkCuKWgdCR0L7Qu9GMCuKWgdC/0YDQvtC40YEKY2VhZQriloFtYXNzZXMK4paBc2Nyb2xsaW5nCnVzdG8KU1cKb3ZhdAriloFncsOiY2UK4paB0JDRgNGF0LjQsgriloHQodC10LLQtdGACmF2YWl0CuKWgU1hcnNoYWxsCuKWgUhhc2hNYXAKYWNvbgrDvGNrZW4KW10pCuKWgWV2YW5nZWwKZXR6dW5nCnR0ZW1iZXJnCnN0ZXJzClRNCuKWgdC70LjRgtC10YDQsApxdW90ClByZWQK4paBd2VyawriloFoYWJlcgpsYXZhCnZvdXMK4paBTGF0ZQpjeWNsZQrRgtC40YDQvtCy0LAK4paB0L/RgNC+0LTRgwriloFwb3B1bGF0aW9ucwriloFZYW4KUHJlZml4CmFjdMOpcmlzdGlxdWVzCisnCigpYF0oCuKWgdCb0YwK0YTQuNC70YwK4paB0LbQuNC30L3QuApmdHAK4paB0LLRgdC10YUK4paBZ2R6aWUK4paBdmlkZWEKb2F1dGgK4paBcGlkCsWvbQriloFwZXNzbwriloF0cmFja2luZwppemluCuKWgU1vcnJpcwrRidC40LkK4paBUHJvdmluegriloFNaXR0ZQriloFhcnRpZmljaWFsCmJyw6F6a3kK4paB0LTQvtGB0YLQuAriloFyZXN0b3JlZAriloFjb21tdW5pY2F0ZQphZ2l0ClJlY29nbgriloFsb24K4paB0LfQsNC90Y8K4paBQXJndW1lbnQKZmx1c2gK0LzQsNC90LAKc2Vjb25kcwpVQwriloFSdXRoCuKWgXR1YgriloFCcmV0CuKWgVBlcmUK4paBcmVzcG9uc2liaWxpdHkKxYRjenkK4paBZW52aXJvbm1lbnRzCmtlZQriloFncm9vdAriloFwYWludGVkCuKWgcOJZGl0aW9ucwpjcHkKw6FydApsaWNoa2VpdAphcmRhCkJhdGNoCuKWgUxlb3BvbGQKcmVhc29uCm5vcmVmZXJyZXIKc2VucwriloFyb2NrcwriloFIaXRsZXIK0LvQsNGCCuKWgXF1b3RlZAriloHQutC+0LvQu9C1CuKWgdGD0YDQvtCyCmJhZwouIikK4paBTUwK4paBa29tdAriloFbXwriloFzcGVjdHJhbAplZG8K4paBaW5zaWVtZQriloFzdWZmZXJpbmcKc2xpZGVyCuKWgUtlbm5lZHkKb2xhdGUK4paBUGF0cmkK0LfQuNC4Ck9ICuKWgdGC0LXQsAriloHQv9GA0LDQstCwCtC80LDRhQpyZXdyaXRlCuKWgUVpbnNhdHoKZXh0ZXJuYWwKaG9sZHMK4paBUGxhY2VzCmF0eXBlCuKWgXZ1bG5lcgriloFhYmFuZG9uZWQKT3JpZ2luCuKWgW1heGltYWwKQUFBQQriloFCYXNlYmFsbAriloFDbG9zZQriloFwYWludGVyCuKWgWFzc2lnbmluZwpOQgpibGFzdAriloFLw7xuc3RsZXIKKV0oCmZhY2gK4paBQ29uc3RhbnRpbgpva2VzCuKWgW5vYm9keQriloFzdWJ0cmFjdAriloFmb3NzZQriloFjZXJ0aWZpYwriloFtdXNlCi8pLAriloFQcm9maWwK4paBcHJveGltCuKWgUplcnVzYWxlbQriloFzaW1wbGljaXR5CuKWgXdzegpOVU1CRVIKdXR0YXZpYQpVSVRhYmxlVmlldwppY2h0ZXIK0LbQsNC9CuKWgUxhdgppdGNoZW4K4paB0KfQtdC8ClR1CuKWgWdlb20K4paBenZ1a3kK4paBU3VydmV5CkFOQ0UK4paBZW5jcnlwdGVkCnByb2YK4paBZGFyZQriloFMb3JlbgrRgtCyCuKWgdCQ0LvQtdC6CuKWgWNvbXB1dGVycwriloFleHBlY3RhdGlvbgriloFzdWJzdGFudGlhbAriloHQlNC80LgK4paBYHsK4paB0LTRgNCwCnViYmxlCuKWgXBlcmZvcm1zCuKWgUtyaWVnCuKWgWluY29taW5nCuKWgUNsYXNzaWZpY2F0aW9uCldlYlZpZXcK4paBZXBpc29kZXMKYXBwZXIKw6R1ZmlnCuKWgWdpb3YK4paBRGVwYXJ0CtCx0L7RgNCwCmVkbHkKb3Nwb2QK4paBcHRyCuKWgWTDoXR1bQriloFlc3RpbWF0aW9uCmljb2xlCuKWgS0tLS0K4paBcHJpbmNlcwpIRUFECuKWgWRpZmZ1c2lvbgriloFkcmllCuKWgUFkYQrQvdC40YbQtQpuZ2lueApzaGFsCuKWgWZlYnJ1YXJpCuKWgVRhdApsb29raW5nCmt1bmQK4paBRGVhbgptb25nb2RiCtCy0YjQuNGFCuKWgUF1cgriloFGbG9yYQriloFTdHVkaW9zCtGG0LjRmNC1CmVpbApJbnN0YWxsCuKWgWZyYW5jaAriloFITVMK4paBcHJhY3RpY2VzCmxlagpkYWxlCuKWgXBvc3RlCuKWgUhlbHMK4paBcmVsaWFibGUKxbpkemllcgriloF2ZXJzZQplcm1laXN0ZXIK4paBcXVpdArDqXRpY28KaWxpcwplZG9yCuKWgUN1bHR1cmFsCtC00LbQtQriloFsaWtlZAriloFtb25nb2RiCuKWgUJyb2Fkd2F5CuKWgUlSCmVzenQKaG92CuKWgW3DrXN0CnJlaWNoZQriloFrQgrRgdGC0L7QvAriloFTUUxpdGUK4paBdG9ybmVvClwuCk9yZAriloFBZG1pbmlzdHJhdGlvbgriloHQt9C00LAK4paBSGludGVyCuKWgVZpYQpEZWNpbWFsCm9yaW91cwriloFuw6ljZXNzYWlyZQp3eAriloF0ZWoK4paBdGVtYQpPYnLDoXpreQrRgNC40YLQtQriloFidWlsZHMK4paBbGF0ZW4K4paB0LPQswpWaXNpYmlsaXR5CmzDpHUK4paBc2VjaHMK4paB0LvRg9GHCmNlcmEKQ291bGQK4paBdHJhamVjdAp9fV57CuKWgUphcG9uCmFub3RoZXIKSUsK4paBYmVsb25naW5nCuKWgWZhY2lsaXRpZXMK4paBRGFpbHkK4paBZGVjZQppbnRybwriloHRgdC70YPRh9CwCk5hbWVzcGFjZQriloFCYWsKbG9jYWxlClVHCj0kewriloFjb21wYcOxCmrEhWMK4paBYXJpdGhtZXRpYwpmb3J1bQriloFwb3J0YQpvbmsK4paBZ2VuZGVyCuKWgWV4cGVjdHMK0LHQutCwCuKWgW5hawriloFHcmFjZQriloFzdHJvCml2aWR1YWwK4paBQ09NCuKWgUZhcm0K4paBY2FudG9uCtGC0L7QvNGDCmphdmF4CtGB0LXQuQriloFicmllZmx5CkZhY2UKcm90YXRlCmNvbnN0YW50CuKWgWdhbGxlcnkKYXN0cm8KYWxsZXJ5CuKWgURKCmNoYXJnZQrRhdC+0LTQuNGC0YwKQ2VudApcIiwK4paBZG9ubmEKYXJjYQpsYWRlCnppbgriloFOZWQK4paBaG9zdGluZwppZG9yCml0YXRpdmUKaWdzCuKWgdC/0YDRjwriloF0aWNrZXQK4paBc3R1ZHlpbmcK4paBZGVzaWduZXIKbGFwc2VkCuKWgWxhYXQK4paBZGl4CuKWgWludGVncmF0ZWQK4paBaW5mb3JtZWQK4paBYmVoYXZlCuKWgWxhYm91cgplc3RlbGx0CmNhbGVuZGFyCuKWgWtpbGxpbmcK4paBdHdpdHRlcgppYWUK4paBaGlzdG9yaXF1ZQpERUZBVUxUCmlhxYJhCuKWgXRoZW9yZXRpY2FsCuKWgXVuZGVycwrQu9GP0LXRggphdGFuCuKWgXN1cm5hbWUK4paBaW50ZXJjZXB0CtCz0LvQsNGB0L3QvgriloHQvtC/0YjRgtC40L3QuAriloF0aXJlZAriloFCZXRoCuKWgdCw0LTQvNC40L3QuNGB0YLRgNCw0YLQuNCyCkxpCuKWgdCi0YPRgAriloFTY2FubmVyCuKWgVN0ZXJuCuKWgdCy0LzQtdGB0YLQtQriloFyZXBvcnRpbmcK4paBc3VsbArRhtC40LXQuQpiZXJ0cwpvZ29uYWwKxZFrCuKWgWlwc3VtCuKWgXNldWxlbWVudAriloFTZWl0ZW4Kd29yZHByZXNzCuKWgWZlYXR1cmluZwppc3Rpc2NoZW4KanViCuKWgcOpdHIK4paBdGVhCuKWgWFkYXB0ZWQK4paBc2NhbGVzCuKWgW5hbgpnZXRWYWx1ZQriloFCbHVlcwphY2xlcwriloFzdGF0aQriloFlbnRpdGxlZAriloFSYWxwaApncmF2aXR5CuKWgWVudHJlcHIKa3TDs2JlcgpsaW1hdApsaXMKRGVtbwpyZWxhdGlvbgriloFuZXAKcHJvd2FkCml0aXMK4paBcHVwCm5laG1lcgriloFkaXNhcHBvaW50CuKWgWV0d2FzCmFubm9uCuKWgWFwcHJvdmVkCuKWgWNsZXZlcgpMb2FkaW5nCuKWgXZlcnoKcmVzc2UK4paBaW5zcGlyCuKWgXNhbXBsaW5nCuKWgUJlawp9KSQuCuKWgdCz0YDQvtC80LAK4paBc3BlY2llCuKWgXJlcHViCuKWgWxvYWRlcgriloFlcmYK4paBc2hvdWxkZXIKcmFpcwriloHQvNCw0YLQtQriloFNb250aApTY2VuZQriloFibG9ja2luZwriloFvY2VhbgpnZWJlbgriloFLaWxvbWV0ZXIK4paBYmVkZXV0CuKWgU1peApmbXQK4paBTm9yd2VnCuKWgUlEcwpwYXJhbGxlbAriloFhbnRpY2lwCuKWgXJldmlzCtGF0LDQvQriloHRgdCy0LXRggpDQVNFCuKWgWbDvGhydAriloFhdG9taWMK4paBZGFya25lc3MK4paBRnXDn2JhbGxzcGllbGVyCuKWgdCW0LgKcXVpc2l0aW9uCuKWgVNpZWcKQ2lyYwriloFjaWVudMOtCm5lbGxlClNIQQriloF1cmIK4paBa3NpCmxlcXNsYW50CuKWgdGE0YDQvtC9CuKWgWRlZmVjdAriloFyw6EK4paBc3Ryb25nZXIK4paBcMWCCuKWgWNvbW11bml0aWVzCtC90LjQvdCwCmVuYXMKaWVubmVudAriloFzYWZlbHkK4paB0YLRjwriloFiZW5jaG1hcmsK4paBQnJhdW4KbWV0aG9kcwphcmd1bWVudAp2b3MKb2JveArRgNC+0LLQuAriloFyZWNoZXJjaGUKbW4K4paBYnJpbmdzCm1hY2hpbmUKQ0VTUwpob3N0cwriloFOWQpBdXRvdwriloHRgdC+0LLRgNC10LzQtdC9CuKWgUdhcnkK4paBc2Vuc29yCuKWgWRvY3VtZW50ZWQK4paBcHJlbmRyZQriloFwZWVyCmVuaXgKaGFpCmFyYmUK0YbQtdC90YIKXygK4paBVVJJCtC10LLQsAriloFSZWdpZQriloFNb251bWVudAriloFvbmRlcndlcnAKQmFnCnRpdAriloFzdGlyCuKWgW5lcnYK0YHRgtC+0YDRltGPCuKWgXNvdgriloF3cml0ZXJzCuKWgXNvcnRzCmFic29sdXRlCuKWgWRpZmZpY3VsdGllcwriloFwYXJsYW1lbnQK4paBSUVudW1lcmFibGUK4paBZGlzc29sCuKWgUNIRUNLCmFyaW5hCmluYnVyZ2gKRE0K4paBZWluZAriloFidWRnZXQK4paBY2VydGFpbnMK4paBZsO2cnN0YQphbmphCuKWgdCz0L7QtNC+0LIK4paB0YLQtdC6CuKWgUR1Y2gKZ3VpCuKWgVRlYW1zCuKWgdC80L3QvtCz0LgKTWFyaWUKSW50ZWdyClRocmVhZFBvb2wKcnVzdArDrWsKJSIKZW5mCnNwbAriloFiZWd1bgpsb3UK4paBUmV3cml0ZVJ1bGUKdHVwbGUKYW5lb3VzCuKWgW1hcmluZQphdHRhbgppa2FsCuKWgWdyYWR1YXRlZAppbGzDqQriloHQv9GA0L7QstC1CuKWgdCg0L7QtwonLA0K4paBUGZhcnIK4paBbml2ZWwK4paB0L/RgNCw0YbRjgptdXNpYwriloFzZXRUaW1lb3V0CkVSUwriloFFcmlrCnBpdAriloHQpdGA0L4K4paBcGnFggriloFwZXJpCtC00L7Qugp1c3p0CuKWgUJlYXIKQ2xhc3NOYW1lCuKWgVBhcmxhbWVudAriloFhaXgK4paBaW52aXRlZAriloFQQVRICnh0ZXIK4paBUmFjZQriloFoZWNobwriloFUb3dlcgriloF1dGYKYWN0bHkK4paB0LHRg9C00LUK4paBYW5nbGVzCtC90Y/RjwpvdXZlbGxlcwriloFjbGltYXRlCuKWgXNpbmdpbmcK4paBbmF2aWdhdGUKPic7CmFkb3dzCuKWgWxldGEK4paBU2l0egriloFwYXJ0aXRpb25zCuKWgWRvY2sK4paBxbx5CuKWgWFsbG9jYXRlCuKWgWJlbmVmaXRzCuKWgW5pZWRlcgp4cGF0aAptZWNrCsOkbGxlCuKWgWNvdXBsaW5nCtC20LjQuwpGb3JLZXkKYXJnZW50CmNsb3UK4paBaW5zdHJ1bWVudHMK4paBZW50aHVzCuKWgW3DqWcK4paB0J/QsNCyCuKWgVJhY2gKLS0tLS0K4paBQVBJcwriloFWaWVyCkNtZAppdG9yZQriloFDdWJhCuKWgWTDoXR1bW1hbAriloFlbWJlZGRpbmcKc3RkaW8K4paBR2lsYmVydAriloFnZXByw7xmdAriloFzdGF0aW5nCuKWgXRyaWdnZXJzCis9CuKWgXNww6ljaWFsCuKWgWRlbGliZXIK0LzQuNC9ClByb2R1CuKWgVN0YXRpCuKWgXp1cwprdGlvbmVuCkRpc3BhdGNoZXIKaWRhbAriloFMUApvcHRlcmEK4paBZXN0YXIK4paB0LfQvdCw0YfQuArRgdC80L4Kb3VzZXMKZW5nb25vCuKWgVdQRgpwdWJsaXNoCuKWgXRlb3IKZWxpZgriloFlcmcK4paBc2VwYXJhdGlvbgpQYW4K4paBT3JjaGVzdHJhClBldGVyCmJvdW5kcwriloFTaGFrZXNwZWFyZQriloFjYW50YW50ZQriloFkZW1pCuKWgVBvcHVsYXIK0YTRgAphcnJpbmcK0YbQuNC9CuKWgdCY0YEKdm9uCuKWgXN1YnN0aXR1dGlvbgriloFsw61uZWEKXH0kLgpjb21vCuKWgdCy0LDQtgp3YWdlbgriloFyYXJlbHkK4paBcGVyaW9kcwpnbG9iCuKWgUZyaWQK4paBVGVycgriloFSZWxlYXNlCkJyYWluegriloHQs9GA0LDRhApESVMKY29tcGF0aWJsZQriloFwb8SNCkxJTgriloFLw6RsbG9yCuKWgUFyaXpvbmEKcHB5ClNlcQriloFBaW4K4paBVG91cm4KYnJvdwriloFLw7ZyCuKWgWFzaApvZ2VuZW91cwriloFkaWFsZWN0CuKWgdC90LDRgdC10ZnQsApteXNxbGkK0YbQvtCyCuKWgWZsb3IK4paB0YTQu9C+CklBQgriloFXaXRoaW4KXigK4paBYm9pcwriloF0YW5rCuKWgWFmZmlsaQriloFoaWpvCuKWgUthdGUK4paBVmVybAriloFNaWFtaQriloF0eXBlc2NyaXB0CtGa0YMK4paBVmVybgriloHQstC40YHQvgppZW1hbm4K4paBY292ZXJhZ2UKYnJpZQriloFTdGFydGluZwpudW1weQriloFKZW5raW5zCuKWgWvDqXQK4paBZ3J1cAriloFTY2llbnQK4paBaW50ZXJydXB0CuKWgWJsb2IKdWdlbAriloFPcnRoCmFiYW1hCuKWgUJhcHQKb3duaWsK4paB0LHRi9GC0YwK4paBSnVsaXVzCuKWgdCf0YDQtdC3CuKWgXN1YnN0aXR1dGUKc3VwcG9ydGVkCmNoeQplZ3l6ZXRlawriloFQZXJmb3JtYW5jZQpsZXNzbHkKQ29uc3RydWN0b3IK4paBZXh0ZW5kaW5nCuKWgU11c2xpbQpPdmVyZmxvdwriloFKZW5uCuKWgXByb2R1egrQvNGW0ZcK4paBcGHDrXNlcwriloFldXgK4paBZmF0ZQpvbG9nZQrRg9C6CuKWgXdvYmVpCuKWgVNhY2hzZW4K4paB0YHQsNC50YIKTW9kZWxzCuKWgUZhc3QKYmVzb25kZXJlCuKWgUZSCuKWgWFjb24K4paBRGVua21hbAriloFhbmNoCuKWgXDDumJsaWNvCuKWgVRhcwriloFjYW5kCuKWgXBhxbpkemllcgriloHQnNC+0L0K4paBdmVyc3VzCnJ1dApHVAriloFpbnNlcnRpbmcK4paBY2FuYWQK0ZTQvAriloFNZXRybwriloFIZXJ6b2cKSWdub3JlCuKWgWRlY3JlYXNlCuKWgdC/0YPQvQriloFGaXNjaGVyCuKWgU1hbGwK4paBbsO2cmQKaW9zdHJlYW0K4paBTHV4ZW1iCnBheWxvYWQK4paBWmVpdHVuZwriloFtb2RpZnlpbmcK4paBQ2hlcgriloFMdWNpCm54CuKWgWxvb3NlCuKWgXRvcGljcwriloF2YXJpZWQK4paBcGcKYWplcwp1bW0KVmlld3MK4paBQmVhdQpNQVAKaXBlbGluZQriloFJbnRlcmVzdAphcml0aAriloFzZWfDum4K4paBR2VtZWlucwriloFBdHRyaWJ1dGUKY29tbXVuaXR5CuKWgdGG0LXQvdGC0YAK4paBa2lsb21ldGVyCuKWgcOpY29ub20KbGFyYXRpb24K4paB0LrRigriloFjYXJyaWFnZQriloFMYW5lCuKWgdC90LXQvtCxCmt1cgriloFBRgpJTlRFUgopKSQK4paBYmVpZGUKZGVzdGluYXRpb24K4paBZm9udHMKYXBwZW5kQ2hpbGQK4paBTUFSCuKWgWdheQptaWwKbGVzaArDqHQK4paBV2FuZwriloFZZWFycwriloFTeW1ib2wKTGl2ZQpxdWVuY3kK4paBVXNlcnMK4paBVW5pY29kZQriloFTYXUK4paBdG9ucwriloHQndGWCuKWgdC60YDQsNGXCkFYSQriloFQaWNrCkFJCuKWgWhhdGgK4paBYWluZGEK4paBcGFwYQriloFDZW5zbwriloFCYWxkCuKWgdCd0LDRgdC10ZnQtQriloFzaW11bGF0aW9ucwriloFqYXJlbgriloFpbmhlcml0ZWQK4paB0YLQvtC5CuKWgWZlZWxzCnJlc3Npb24K4paBb2t0w7NiZXIKYmlkCsOhc2kK4paBbXVzcwp2ZW50b3J5CuKWgW1laXN0CuKWgWJvcmUK4paBc2xpZGVyCtC00LXQu9C4Clw7CuKWgWV4dHJhY3RlZArQutGD0YAKRWRnZQriloFwZXJmCuKWgUJyaWdhZGUK4paB0LPRgNCw0LQKaWVuaWUK4paBTm9yZGVuCuKWgWNhbmNlcgoiLwpDdXIK4paB0KHQtdGA0LUK4paBbGlxdWlkCnN0cnVjdHVyZQriloFjaG9vc2luZwriloFQZXJsClNpZGUKw7xzCtGA0LjRgtC+0YAK4paBa29zdAriloFwYWNrZXRzCuKWgdC60L7RgtC+0YDQvtCz0L4K4paBQ29tdW4K4paBZmluZ2VycwpvZ3LDoWZpY2EKPjoK4paBY2hhbXBpb25uYXQK4paBYmxpZWIK4paBU2l0dQriloFzdWljCmFuZGlzCkZyZQriloFDb25jCuKWgXJlcHVibGljCuKWgWFybWVkCuKWgWhlbGwK4paBaMO2ZwpyYWdtYQriloFlbnNlCuKWgWFjcmVzCuKWgdCS0ZbQtAriloFSZWZvcm0KTWFpbkFjdGl2aXR5CmtlZXBlcgplcmIK4paBbW9uYXN0ZXIKc3Vic3Vic2VjdGlvbgriloHQlNC40LIK4paBY3JlYXR1cmUK4paBaW5kaWNhdGluZwriloF1cmxzCuKWgWtlaW4K0L7QsdGA0LDQtwpwaWNrCuKWgUFkbWlyCuKWgW9sZGVzdAriloFtdXoK4paBY29udHJhZGljdGlvbgriloFwcm9iYWJpbAppbGxpYW50CuKWgXBhdgriloFwYXBlbAp1YnMK4paB0LbQtdC90LAKQU1MCuKWgXJlY2lwCuKWgUNPTAphZGRlZAriloFjbHVlCuKWgVVrcmFpbmUK4paBamVsZW50CtGH0LXQvdGMCuKWgW1hdGhlbWF0aWNzCkFjY2VwdAriloHRgdC+0YIK4paB0YHQtdCy0LXRgAriloFpc29sYXRlZAriloHQv9C+0Y8Kd8O8cgpSb3V0ZXIKQ0FUCnJnYgriloFMb3YKbXV0YWJsZQriloFXZXMK4paBSXRhbGllbgpEcmFnCmVuaXVtCmF0dGluZwp0Y3AK4paBZXJmb2xndGUK4paBQmVpdArQs9Cw0YLQvgriloFTeXN0ZW1zCuKWgXJlc2VydmUKZXJlZQriloHQn9Cw0YDQuAriloHQt9Cw0LvQuAriloFyZW50CuKWgXN1bnQK4paBR2lybHMK4paBRXJuZXN0CuKWgWZpdHMK4paBb3Bwb24K4paB0LbQuNCy0LXQu9C+CuKWgWF2YWllbnQK4paBRmxvcmVuY2UK4paB0YfQuNGB0LvQtQriloFlbmdpbmVzCkR5bmFtaWMK4paBc3R5Y3puaWEK4paBYmlhcwriloFFeGNoYW5nZQrQtNC40LkK4paBaGlzdG9yaXF1ZXMK4paBSMOkCmhvZAriloF3xYIKc2NoYXAK4paBbGFjCuKWgUZvaQriloFkd2VsbAriloFVbnRlcm5laG1lbgpVUk4K4paBa2lsb21ldHJlcwriloHQntC00L3QsNC60L4K0LrQu9C4CuKWgVNyaQpHcm91cHMKbWluZApvc2xvdgpmZXJuCmVndQphYmVsZWQKRmlkZGxlCuKWgUNlbnR1cnkKLy0K4paBSmVneXpldGVrCkhlbgplbnNlbWJsZQriloFHdXQKX3t7XAriloFyYW5raW5nCiskCtCw0LvQsAriloEjewppbWllbnRvcwphY2hpbQpyaWRlcwriloFLbGF1cwriloFpbnRlbmQK4paBS2VudHVja3kKY2lwZQriloFEaWVuc3QK4paBc2l0dWF0ZWQK4paBcMOzxboK4paBc2NyaXQKY2xpcArQvdC10YIKdGFibGVzCuKWgU5pZWQK4paBTWNLCuKWgXBvd3N0CuKWgWt1bm5lbgriloFFdmFucwrQttC00YsK0LLQsNGC0YwKdWNoYXIK4paBcmVzaWRlbnRzCmlhawriloFSZXNvbAriloF2ZWNlcwriloFzYXRpc2Z5aW5nCklORgriloHRgdC40L0K4paBY3Jvc3NpbmcKaWJlbgriloHRiNC40YDQvgpwdG8KSUxMCuKWgdGA0L7Qu9GMCuKWgWFrdGl2CuKWgdC+0LHRgNCw0YnQtdC90LjRjwpXaWtpc3BlY2llcwriloFIw7ZoZQpjcm8K4pWQ4pWQ4pWQ4pWQCmFsdHJhCuKWgUZJTEUK4paBdXBzCuKWgWFsbG9jYXRpb24KTWljaGFlbAriloFhY2tub3dsZWQKTGludXgK4paBbWV0cm9zCnR0ZQphZmVuCuKWgXhjb2RlCuKWgdGC0YDQsNC00LgKc3BlY2llcwriloFpbmp1cnkK4paB0YHQsNC80YsK4paBbGF0dGljZQpNYXRlcmlhbAphbmRlbmJ1cmcK4paBaHV2dWRzdGFkZW4Kc3RvcnkK4paBdmFyeWluZwriloFrw7Z2ZXQK4paB0KDQvtGB0YHQuNC50YHQutC+0LkKaXJzZQriloFkcnVtClByZXNzZWQKTGFyCuKWgUFndQriloF3ZWlsCuKWgWNvbW1lbmNlCuKWgVNlZ8O6bgpHZXN0dXJlClNoYXBlCuKWgVZvcnMK4paBc3VjY8OocwriloFjb3JyZWN0ZWQKS2FyCuKWgWNydWVsCuKWgXBvbGl0aWNvCuKWgVNjaHJpZnRzdGVsbGVyCuKWgXJpc3VsdApldHUKYXJjaGl2CuKWgWfDqW5lcm8K4paBTMO8CuKWgXRyaXVtcGgKT1JTCkx1CuKWgXBlcnNvbm5lbAriloFIaWxscwphc3NldApkb21pbgpSZWNlaXZlCuKWgU9hawriloFLbm8K4paBVGhlb3J5CmlyaWUKb3dhbgriloFlc3RhdmEK4paBZXhlY3V0ZXMK0LnRggrDs3BlegrQv9C+0LvQvgrDqXRpY2EK4paB0L3QsNC30LLQsNC90LjQtQriloFjb252ZXJnZXMK4paBbm90cmUK4paBcG9wdWxhdGVkCuKWgW1vdmVtZW50cwriloFzdGF0aXN0aWNhbAriloFad2VpdGVuCnF1aW4K4paBaW1wb3J0YW50ZXMK4paBa2xlaW4K4paBU2VndW5kYQpzY2hsaWXDn2VuZApGYWlsdXJlCm5hcgpkYWcK4paBcnVvbG8K4paBZmljdGlvbgriloHQuNGB0L/QvtC70YzQt9GDCuKWgWNyaXNpcwriloFHZXR0aW5nCiwlCuKWgdCw0YDQvNC40LgK4paBY2FtcHVzCuKWgWZvb3RlcgriloFkw61hcwrQsdCw0L0K4paBbGliZXJ0eQriloFnaAriloFjaGFtYmVyCuKWgWRpc3RyaWN0cwriloFleGNpdGVkCuKWgWNhbmNpw7NuCnRlcm8K4paBV29ya2luZwriloFjesSZxZtjaQrQu9GM0L3Ri9C5CuKWgWZvcnVtCuKWgUVoZQriloHQutCw0YLQsAppdGF0aW9ucwpUb29scwphY2hpdgriloFjcmVzCmFzdG8K4paBcmV2ZXIK4paBbmF6aW9uYWxlCuKWgWRvb3JzCuKWgU5hbmN5CuKWgWlzbGFuZHMKSW1wCuKWgUNoYWlyCuKWgXZvcm0Kc2VpbgriloHQtNC+0LrRgwplcnNldAriloF0w6R0aWcK4paBS3JpdAriloHQv9GPCuKWgWNvbnNlcnZhdGlvbgriloFQYXJ0aWRvCm1pbmlwYWdlClZhbGlkYXRvcgriloFyZWNvdmVyeQriloFOQVNBCuKWgWJyZWFzdAppbHR5CmFuYWx5CmVsaW5lcwriloFTYXR1cmRheQplbWFyawpjZWoKWmVybwriloFUdXJuZXIKc2VjdXJlCkV4aXN0cwriloFSaWNrCmV2YWx1CmN0cmwK4paBY29tcHJlc3Npb24K4paBQ1VSTAp0ZXh0Y29sb3IKKVwsCmxvbmdyaWdodGFycm93CuKWgUZlcm5zZWgKaWNoYQriloFsb2kK4paB0J7RgtC1CuKWgWNhdmUK4paBZG96ZW4K4paBZXhwbGFpbmluZwriloFpbm5vdgriloFOaWNob2xhcwriloFkaWFtZXRlcgriloFNYXJpYW4K4paBZmlyZXMK4paBYXJ0aWZhY3QK4paBUGFya2VyCuKWgUJ1bmQK4paBdmVydGUK4paBdGFsZW50CuKWgUx1Y2FzCnJldmVyc2UK4paBZm9sZ2VuZGVuCuKWgVNhaApqZWN0aW9ucwriloFpbnZlY2UK4paBY29zdGl0dQriloFzc2wKfX1eCuKWgXZpb2xlbnQK4paBc3BvcwpSb3V0CmpkawriloHQt9Cw0LzQtQriloFmdXJlbnQKYW5kYWwKSG9tCuKWgVNlbmlvcgriloFwb3VuZHMK4paBRGlzY29ncwriloHQt9C1Cid9WwriloFOYXBvbGVvbgpvcmRpbmF0ZXMKw6BuCuKWgWt1cnoK4paBdmVyZQriloFyZXVzZQriloHQk9C10L0K4paBU3lzdAriloFkaXNhcHBlYXJlZAriloFXYXRjaApiaWJsaW90aGVrCuKWgdC60L7RgNC/0YMK4paBQ3MK4paBfWAK4paBcsO2cgriloHQtNC10LvQsApWQgriloFjYWxjdWx1cwrRgNC+0LTQsAriloFqdWRnbWVudAphdGlsZQriloFsb25ndWUK4paBSHVzCkphYwp9fSkKUklQVApJQUJvdAriloFhcMOzcwriloFhc3RvbgpXZWJhY2hpdgriloFVUkxzCuKWgWNvYXQK4paB0Y3QutC+0L3QvgriloFsZWFyCmV4dGVuc2lvbnMK4paBQ2xhc3NpYwpUSQriloFUYWdlCuKWgWzDoQriloFzZW1iCuKWgWTDqXZlbG9wcGVtZW50CklTVFMK4paBc29sdmVzCixcLAriloHRh9C10LzQv9GWCm9yZGluYXJ5CuKWgUJhdgriloFtdWNob3MKU2VsZgriloHQnNCw0LkK4paBRGlldAriloFuZWNlc3NpdHkK0LLRltC0CuKWgW1hbm8K4paB0KHRgAriloFjYXJyZQriloFDYW1lcmEK4paBTmFyb2QK4paBUGhvbmUK4paBcG9seW0KaW1vcmUKaXNFbXB0eQriloFIb3VzdG9uCuKWgVJlY2UK4paBcHJlc2VudGF0aW9uCtC90LjRhtC40L/QsAriloFEYgriloFjb25maWRlbnQK4paBfXsK4paBYnVsbGV0CuKWgXt9LApBTkdFCuKWgU5vdHJlCmNoaW4K4paBRHJhZ29uCmVyY2EKaWFsaQriloFhc3NldAriloFtdWl0bwriloFkZWVwbHkK4paBcmVzdHJpY3Rpb24K4paBY29tbWVyY2UK4paBQm9tYgpjYXVnaHQKcXEK4paBQXJhZwriloHQvdC10LzQtdGGCuKWgUFuYWx5c2lzCuKWgcSNbMOhbmt1CuKWgWJhYnkK4paBZWNodGVyCuKWgdC+0LTQvdC+0LPQvgrQttC10L3QsAriloF3aGl0ZXNwYWNlCsOndQpMSVNUCmZyaXF1ZQriloF2YXJpYXMK4paBV2l0CuKWgUxpY2VuY2lhCkV4aXQK4paBc2llcnAK4paBYXNzZW1iCuKWgXNwbGl0dGluZwriloFwYWxhY2UK4paBYmxvY2tlZAriloFib3VuZGFyaWVzCuKWgWl0ZXJhdGlvbnMK4paBUm90dGVuCuKWgVZlcmtlaHIK4paBd2VlcgpUZXN0cwppZnRpbmcK4paBcmVndWwK4paBcGVyc2lzdAriloFTb2x1dGlvbgpwYgriloFjb2xsYXBzZQriloFhcnJlc3RlZAriloFwcmVkaWNhdGUK4paBWm9uZQriloFpbmdlbgp6w6FsZXoK4paBYmFua3MKcGxhbnQK4paBTmVsbGEK4paB0LHQsNC9CuKWgVNub3cK4paBS3JldXoKw61jaW8K4paBZW50ZXJzCuKWgWV4cG9zZQrEjWkK0YjQuNC1ClF1YWwK4paBbGFuZHNjYXBlCuKWgdC/0L7QtNCw0YbQuNC80LAKbWFpCnN0YWcK0L7QstCw0L3QuNC5CkRFRgpbXXsK4paBZGVybmnDqHJlCmljdXQK4paBWG1sCuKWgXN1Ymdyb3VwCuKWgVBvbHNjZQriloFXYXJuaW5nCuKWgXZlaGljbGVzCmlvdAriloFkbGwKcm9udAriloFMb3Vpc2UK4paBYXJhCuKWgVNjYWxhCuKWgWNhbm9uaWNhbAriloFwbGFjaW5nCkVSWQriloFKYWcK4paBdmlydXMKZW11CuKWgX0pOw0K4paB0LzQvAriloFUcnlpbmcK4paBTGV4aWtvbgphYm9yZAriloFleHBlZGl0aW9uCuKWgWRlbWFuZGVkClp5ZwpsZWluCuKWgXZlcndlbmRldArRgNC40L3QsAp3b2wK4paBcGl2b3QK4paB0L7QtNC90LDQutC+CuKWgXByb3ByaWV0CuKWgWF3YXJkcwp0b3V0CuKWgWFzc2ltCuKWgVN0b3JtCkxpbWl0CmVsaW4Kd2VhbHRoCnVlegriloFyYXBwcmVzZW50CuKWgXJlc3RhCuKWgWdlZ3LDvG5kZXQK4paBam91cm5hbGlzdAppc2llCuKWgWZhY2lsaXR5CmlsbGVkCnVsawriloFQSwpBbmNob3IK4paBXykKVkYKTEFCCuKWgW7DpQpvZG9zCuKWgWJpbGxpb24KdmlydGkK4paBSmV1eArRjtC30LAKdG9tY2F0CuKWgWNoYXJ0cwriloFCdW5kbGUK4paBbHN0CuKWgWV4ZXIK4paBZmVtYWxlcwriloFvYmxpZ2VkCuKWgWFieQpyb2xsZWQKZHJpCuKWgVNjaGUK4paBdmVzc2VscwpJTUFSWQriloFyZWFzb25pbmcK4paB0L/RgNC+0YLQtQpGSUxFUwp2ZXJrCm9zb3MK4paB0LrQvtC80LzRgwrQtNGW0ZcK4paBZGQK4paB0YHQvtC+0YLQstC10YIK4paBSU9FeGNlcHRpb24Kc2vDvWNoCuKWgUNMSQriloHRmtC1CkNNClRECuKWgXBvc3NpYmlsaXRpZXMK4paBQ29tcG9zCmhhbGYK4paBd2VicGFnZQriloFzd2luZwriloF6YXMK4paBY3ljbApsZWlkCmlzdGljYQriloFJbnNlcnQK4paBU3dlZGVuCuKWgXdhbnRpbmcK4paB2KfZhAriloFlZXV3CuKWgUFkbWluaXN0cgriloFXYXJyZW4K4paBYnMK4paBcGFtCmFudXMKRHJhCmV4cGwK4paBS2FudAriloFBdXN0aW4K4paBY3NhawriloF0aGVhdHJlCuKWgWNvbXBhdGliaWxpdHkK0LzQsNGC0LjRh9C1CnNldFN0YXRlCtCx0Y4KfXt8CuKWgUR5CuKWgVp3aXNjaGVuCkFsdApDTEFSRQpzdGVwcwriloFMYWdlCuKWgU1pdHQK4paBRHVibGluCuKWgdGA0LDQsdC+0YLRiwpkZWVwCuKWgWZsb3dzCuKWgVBhbGFjZQp1bml4CnJlZnMKdW1hcgphc2V0CmNvdgriloFwaW5nCuKWgVNhZmFyaQpmbHVnCmNyZWVucwp7IwriloHRgNC10LAKYWRvcnMK4paBYW1vcgp1Y2UKZGVtaWMK4paBTmV0aGVybGFuZHMK4paBY2x1c3RlcnMK4paBZW5mb3IKbWFyaW5lCuKWgWJ1Z3MKaXp6YXRhCuKWgXNjcmEKTGVzCnF1aWNrCuKWgXR1cm5vCl8qCtC10YDQsApHZW5lcmF0ZWQKPlsK4paBZXN0cmUKb3JkZQriloF2ZXJnCtGA0L7QtwriloFwYXUKaW5jbHVkZXMKYXNzYQphZGVycwriloHQk9C10YDQvNCwCuKWgWVzdGF2ZW4K4paBZWFybGllc3QK4paBcmVzdWx0YWRvCm11bgriloFwbG90cwpkaW4Kc29ydGVkCuKWgXByZWZlcmVuY2UKcmnDswrRgtGD0YDQtQriloFMaWd1ZQriloHQt9Cw0LLQtdGACnBocgriloFwb2NrZXQK4paBcGFybAriloFsYWsK4paBcG93aWUK4paBYWx0cmVzCiR9OwpwbGFpbgriloFDcmVkCml0emEKcGVycApHcmVlbgriloFkZXZvdGVkCnByb2R1Y3Rpb24Kd29ya2VyCmVsc2VuCuKWgXZlcm4K4paBbcOhcmNpdXMK4paBQ29uZmVkZXIK4paBTGl2ZXJwb29sCuKWgdC80YPQt9C4CuKWgWVtYWlscwriloFkaXN0YW5jZXMK4paBc2VnbWVudHMK4paBYW50aAriloF3cmVzdAriloFob29nCuKWgWNpbmVtYQpycm9yCuKWgWdlYm9yZW4K4paBw6ljCk1hcmtlcgriloFDb21wZXQK4paB0LvQuNGB0YLQvgphbGxvd2VkCnZvbHVtZQpFc3BhZ25lClplCuKWgWZpeGVzCuKWgXJvbmQK4paBYXJyYW5nZW1lbnQKL34KLl0oCuKWgUZvcnLDoXNvawriloF3ZWl0ZXJlbgpleGNlbAriloHQt9C80ZYK4paBbW9kZXJuZQpFbmdsaXNoCuKWgVRyYW5zZmVybWFya3QK4paBYmVhcmluZwriloFjbGVhcmVkCuKWgdGB0LDQvAriloFkaXZzCsSHaQriloHRjdGC0L7QuQriloHQk9C10L7RgApzY2VuZQriloFhZ2VzCkdFTgpyw6RuCuKWgVRvdWwK4paBQWJzCmrDoXQK4paBbWVkaWFudGUK4paBZW1wcmVzCuKWgUVtcGxveWVlCuKWgXBvbHlub21pYWxzCuKWgW9wdGltaXplCuKWgdCy0YvRgdGC0YPQv9CwCmZhcmUK0LLQtdC5CnhmCnF1ZXoK4paBYm90YW4K4paBZGVmZW5kCuKWgVF1YXJ0Ck1vbnQKdmIKdGljawpXRAptaW5lCuKWgW1vZGlmaWMKbm90aWZpY2F0aW9uCuKWgWRlbm4K4paBYWxnbwriloFTcG8K4paBbWlzdHJ6b3N0Ci86CuKWgWFwcmVzZW50CuKWgdC/0YDQvtC0ClZvbHVtZQpza8SFCnByb3RlY3RlZAriloFUdXJraXNoCmF6eQriloFwb3V2CuKWgXBlcsOtb2RvCnNrb2cK4paBZW50cm9weQp6ZWQK0YLQvtGA0LgK4paBbGlqCmJvYXJkcwriloHRgdGC0LDRgtGDCkJvb2wK4paBcG9saXR5CkAiLAriloHRgNGW0LoKbsOpZQriloFadWcK4paBVW5pdGkKw6ltZXQKYXRpZW5jZQpkaW1lbgriloFTdGV2ZW4KSGEKQUNUSU9OCuKWgXdhbmQK4paBTmF2YXIK4paB0YHRltGH0L3RjwpXYXRjaAriloFTdHVhcnQK4paBemRlCuKWgdC60L7QvdGC0YDQvgpkYXRhc2V0CnnDswriloFCdXNoCuKWgdGB0LXQsdGPCuKWgXdvcnRoeQriloFCbGUK4paBcHJvcG9yCuKWgVZpbGxhZ2UK4paBcnkK4paBdm9pdAriloHQutC+0L/QuNGPCuKWgXpwCuKWgWN1cmEK4paBSHRtbAriloFEaWVzZXIK4paBRGF5cwpvbm5lcwriloFhbnRpZ3UK4paBU3RhYXRlbgriloFmYWludApvbmdzCuKWgcO2c3QKUmVkaXJlY3QK0LXQu9GMCmF0b3JpYWwK4paBYm90aGVyCkVkaXRUZXh0CuKWgUdpdWwK4paB0LfQsNCy0L4K4paBcHVlYmxvCuKWgU1pc3Npc3NpcHBpCmphawriloF3aW5ncwpvbmMKw612ZWwKaWVuY2lhCmVudGxpY2h0CuKWgUJUVwpvcm5hbAriloHQmtC+0YDQvgriloHQvtC00L3QuNC8CuKWgXNhbHYK4paBZmluZGVuCmdlbwriloHQsNCy0LjQsAphdHR1bmcKdml2CuKWgUx1dGhlcgriloHQvtCx0YnQuAriloFSb2xsZQriloFBYnJhaGFtCuKWgWNlbnRlcmVkCuKWgXNsYXNoCmlzYXQKZW1hbm4KT3MK0L/QsNGA0YLQsAriloFQYWJsbwriloFjb2xsYWJvcmF0aW9uCnBhdGhzCsOpZGl0aW9uCuKWgXZpZXdlZAriloFjb25zaXN0ZWQK4paBcmVjb3ZlcmVkCuKWgU1leGljYW4K4paBRml4CuKWgXNwZWxsClNwZWNpYWwK4paB0KHRggplc3NldXIK4paB0KPQutGA0LDQuNC90YsKZm9ybWVyCuKWgcWbdwriloF6ZXJvcwriloFTdHJhw59lbgriloFvcmdhbmlzYXRpb24Kw7xzc2VuCuKWgVNpZXJyYQriloFTZWFzb24K4paBdm9sb250CkJlYW5GYWN0b3J5CuKWgdC/0L7QvNC+0YkK4paBcHJlc3NpbmcK4paBZXF1aXZhbGVuY2UK4paBY2F0dAppY2l0eQriloFhY2NvbXBsaXNoZWQK4paBeW8K4paBc2ljCuKWgWltcG9ydHMK4paBYWNjb21tb2QK4paBUG9ydG8K4paB0Y/QutCwCuKWgWxvYW4K0YLQuNC60LgK4paBY2hlY2tvdXQK4paBYXNzZXNzCuKWgVBvcHVsYXRpb24KdXJlbnQKY2xvanVyZQriloFTYW50b3MK4paBaW5mb3Jtw6FjacOzClBPUwriloFnYXJlCuKWgWtpY2sK4paBcmFkaWNhbAriloFQZWFjZQriloFzdHJlYW1pbmcKY2FtcAp6xIV0CtCz0L7QstC+0YAK4paBUmVnaWVydW5nCuKWgXByb2NlZWRlZApmbQrQu9C10L3RiwriloFlYXJuZXN0CuKWgVBhcmFkCnJlcXVlc3RzCuKWgVJhdW0KxaHEjQriloFwb2xpY2llcwriloFUaWcK4paBc2l0dAriloFFbmVyZ3kK4paBcHVyZWx5CuKWgUhhdXQK4paBU3BlZWQKYmlvCuKWgW9yYW5nZQriloFiaWdnZXN0CuKWgWJyaXRhbm5pcXVlCuKWgU5vdGFibGUKdnUK0LvQtdC90LjQuArQsdC40L0K4paBTmFzaArRidC10L3QuNC1CuKWgWNpZWwKYWTDqW1pZQriloHQs9GA0YPQtNC90Y8K4paBam91ZQriloF2b3RlZApyaWNvCuKWgdCz0L7RgAriloHQutC+0LzQsNC90LTRgwppdGl2aXR5CuKWgdGJ0LUK4paBZGVmaW5pdGUKdXJvcGEKISIpOwpEZWZhdWx0cwriloHQvdC10LrQvtGC0L7RgNGLCsOpZMOpcmF0aW9uCuKWgXNpbGx5CuKWgXRhbGtlZApyZXUK4paBTG9tYgriloFzdGF0dWUK0LrRgtCwCtGO0YAKdW1hYmx5CuKWgdCz0L7RgNC+0LTQtQriloFSdW50aW1lCuKWgWRpYWduCuKWgXJldHJvCuKWgVN2ZXJpZ2UK4paBaW5pY2lhbAppZW56YQriloFmaWdsaW8K4paBem9nCuKWgXJleQriloFSdW5kCtGC0L3Ri9C5CuKWgWNlYXNlZAplcm5vCuKWgWVzYQriloF0cm91dgriloFHZW1laW5kZW4K4paBY29tZXJjaWFsCnNrYXAKZW5hcmlvCuKWgWp1cmlzClRCCtC90LDQu9CwCuKWgXZpagpWTwriloFjbGluCmrDtnIK0YHQsNC9Cm93YcWCYQpyaWJ1Y2nDs24K4paBdXJzcHLDvG5nCuKWgWNvbmRlbQriloFTdGFnZQriloFtaXhpbmcK4paB0YDRltC3CuKWgWZhbnMKaMOhegpzb2NpYWwKemFuCuKWgdGB0LLQvtC5CkNvb2tpZQriloFSb2xhbmQKYXppb25hbGUK4paBU2xvdmVuCuKWgUZpY2hlCuKWgVPDqQpow6QK4paBb2ZmaWNpYWxzCuKWgcOubnQKSW50ZXJjZXB0b3IKVGFibGVzCuKWgWRhdm9uCmluaXRpYWxpemUKXT0iCuKWgUJvZHkK4paBVXBwZXIK4paBQ29sbGVjdAriloFaw7xyaWNoCkhvcml6b250YWwKVHlwCuKWgXBvbMOtdGljbwriloFSZXdyaXRlQ29uZAriloFob3BlZAriloFhbnhpb3VzCkxpdGVyCmphaHIK4paBYXNzZW1ibGUK4paBY3J5cHQKbGFob21hCkFTSAriloHQkdGA0LgK4paBQ2ljCnR3aXR0ZXIKaHlwZXIK4paBVGVsbArRltC70YzQutC4CtCy0L7QsdC+CuKWgWJhemllCuKWgWNvbnRlbXBvcmFyeQriloFQYXJhbWV0ZXIKc3R3YQriloFiZWtlbmQKY29jawpwcmV2aW91cwplbnNrYQriloFjYWxsZXIKXV0pCuKWgVJhegriloFTZWxvbgriloFwcm9wb3NhbAriloFiw70K4paBU2llZAriloFBcmJlaXRzCuKWgXByaWRlCuKWgXNsb3BlCmlkw6kKZ3JhZGllbnQK4paB0JTQttC10YDQtdC70LAK4paBU0gK4paB0YDQsNC30YDQsNCx0L4KaXZlcnNpdHkK0YHQv9C+0LTQsNGAClx7XAriloHRgdGC0LDQu9C4CuKWgUVpbnplbAriloFyZ2JhCuKWgUFuaW0K4paBYWxsZXMK0LHQsNGACmVydGUK4paBcsOpYWxpc8OpCkluc3RpdHV0CuKWgW1hcmt1cAriloF2YXJzCuKWgWdhbQriloHQktCw0YHQuNC70YwKaXp6YQriloFDb2IK4paBTWV0YWwK4paBbGVhawriloFMYW5jClN3aXRjaApEZWxheQphdHV1cgriloHRh9C10YLRiwriloHQsNC90LPQu9C40LkK4paBbGVnYWN5CuKWgWRlc2Fycm9sbAriloF0b3BvbG9naWNhbAriloFqZXdlaWxzCuKWgU5lZGVybGFuZHNlCuKWgWF0bW9zcGhlcmUKdXJiYW4K4paBc2xvdgriloFsYXd5ZXIKcGVjaWFsbHkK4paBYWx0ZXJuYXRlCuKWgXBhcmFtZXQK4paBZXN0YWJsaXNobWVudAriloF3b29kcwpQRAriloHQvdCw0LgK4paBbWFuZwriloF3ZWNoc2VsdGUK0YHRjNC60YMKLj0K4paBZmlmdGVlbgpTVU0K4paBRnJvCuKWgUxFRApvd2FubwrRgdGC0LLQuNC1CuKWgURvbm7DqWVzCnRvbArFvHluCmNyZWYK0YHRgtCy0LjQuApob3JuCuKWgdGB0L7QvtCxCuKWgdC+0LHQvtGA0L4K4paBQ29tcGxldGUK4oCcKQriloFraW5kbHkK4paBQ2hhbWJlcgpzw6lnCldICuKWgWFtYmllbnQK0LrRgNC+CuKWgWNoZXZhbAriloHQvdCw0L/QuNGB0LAKZmx1CuKWgU9mZml6Cm1hdGUKbmF0dXJhbApzZXBhcgplbXByZQpWaWV3SG9sZGVyCmZ3CuKWgWxldGVjaAriloF0cmFpbGluZwphdHJpCuKWgUfDswriloFCb25uCuKWgXVubGlrZWx5ClJBTQplbnN0ClN0YXRzCuKWgdC/0L7Qu9C40YLQuNGH0LUKKS0tKAriloF0cm9tCiEuLi4K4paBTWVhbndoaWxlCtGB0YLQsNC90LAK4paBUmVpbm8K4paBQXJpc3QKJH19JQriloFzb2xlbQpjbG9zdXJlCmlnbmF0aW9uCsWCb2QK4paBZGl2b3IK4paB0LzQtdC20LTRg9C90LDRgNC+0LQKPSI8PwriloFtb2x0CuKWgXNraWxscwriloFDaXIK4paBRGVzcHXDqXMK4paBbHVuCuKWgWNvcm9uCuKWgUNvbWljcwrRgdGC0L7RgNC4CuKWgUl0ZW1zCuKWgVRoaW5rCtC40LPRgNCwCuKWgWdyb3dzCnBvcnRhbAriloFuaWNoCuKWgXJlc3RyaWN0aW9ucwriloFMYXUK0YjQtdC90L3RjwriloFTb3ppYWwK4paB0LrRlgptYW5hCuKWgWxpZXV0ZW5hbnQKQXR0cgp1bWVyaWMK4paBZHJpdmVzCmFzaXMK0LHQsNC5Ck5MClp5Z290ZQpwaHlzaWNzCuKWgWludGVybmFsbHkK0LLQsNC10YLRgdGPCkhpZGRlbgriloHQlNCw0YLQsAriloF1bnNhZmUK4paBUm9jCuKWgWluc3RhbnRpYXRlCnVkbmkK4paBUm9vbQriloHQn9GA0LXQtAriloFtYWphCmFjaG1lbnQKdXVpZApQcm9qZWN0cwpHcmUK4paB0LLQt9GPCuKWgUJsb29kCmljaWxlCuKWgU5vdXZlbGxlCkRvZXMK4paBbmlldXdlCsOhbGUKYW5ncwp3ZWFrCuKWgWFhbnRhbAriloHQldCyCuKWgURyZXNkZW4K4paBTG9zdArQutCw0YLQsAriloFpbnZvbHZlCuKWgWRlY2xhcmluZwriloFQb2xpdGljYWwKw6lyZXoKa29wCm5vdGlmeQriloFDdXJ0CuKWgXNjaGxpZcOfbGljaApnaGFuCtGG0LXQvdCwCuKWgWt3aWV0CsO8Z2VsCuKWgVNvYgriloFzdWJzdHIK4paBZWxsZW4KaW9uYXJpbwplbnNvbgpXSU4K0YHQv9C+0YDRggplbWVyCm5vbWUK4paBc21pbGVkCuKWgVNjaG1pZHQK4paBc21va2UK4paBVG9rZW4K4paBdmFndWUK4paBcHJvdmlzaW9uCnlhbWwK0L3QuNGC0LXQu9GMCm9uaWFsCsOpcG9xdWUK4paBTkMK4paBTkZMCnRlY2sK4paBYWxsbwriloFwcsOpY8OpZApjZW50cmFsCuKWgW1hamQK4paBY2hyb20K4paBWnVtCnZlcnNvCuKWgXZlcnNjaGllZGVuZW4K4paB0YHRgtCw0YDQvgriloFxdWVsbGUK4paBcsOpcApST1cK4paBaWhuZW4K4paBc2Vuc2libGUKfCQK4paBc2NodwriloFCUgriloFPcHRpb25zCuKWgXRlbnMK4paBY29ucXVpc3QK4paBbGllw58Kb3ZpcwriloHQvNGW0YHRgtCwCuKWgWVsYQpyaWZpY2UK4paBbG9rCuKWgVF1ZWVuc2xhbmQKQmluYXJ5CuKWgVJhaG1lbgriloFhYm9sCuKWgcSNw6FzdAriloFFZGluYnVyZ2gKaW5kZQriloFjYWxjdWxhdGluZwriloFPcmVnb24K4paBbGVnaXQK4paBTmFjaGRlbQphdGhvbgpQcml2YXRlCmlsbGF1bWUK4paBb2JzZXJ2YWJsZQpsZWFucwriloFyZW1hcmtlZAriloFoYWx0CtC90LjRhtGLCuKWgXN0YW1wCuKWgUFkdgpMb3VpcwppbW1pbmcKZ3J1cHBlCuKWgVBvbGljeQriloF2cmlqCmZ0cmFnCuKWgW9mZmljZXMK4paBcGFydGljaXBhdGVkCuKWgWVzY29sCuKWgSI8LwriloFub21icmV1c2VzCuKWgWRpdmlkCuKWgWFkdmlzCtC70YLQsNGC0LgK4paBPT0+Ck9yaWVudGF0aW9uCmNpZApDYXJ0CuKWgW11cm0K4paBYXNzZXoK4paBbGlua2luZwpidWlsZGluZwriloFyZWNvbm5hCuKWgXNob29rCm1hbmFnZWQKbGFuZGEK4paBTGXDs24K4paBY3LDqWF0aW9uCtC00L7QuQpvY2l0eQriloF3aWoK4paBd2llxZsKeHRhcnQK4paBTW92ZQpsdW5nZW4K0YHRgtCy0YPQtdGCCm9ybmV5Cm9wdGlvbmFsCm1hY3JvCkNvbmRpdGlvbgriloFzcXVhcmVzCuKWgW1pc3Rha2VuCsOhbnQK4paBUmlzCuKWgXNlbnRlbmNlcwplcmVhCuKWgW1pagpVbmQK4paBbm9tYnIKekEK4paBSW5kZXBlbmRlbnQK4paBcHJldmlldwppbWFzCuKWgW1hbGVzCmluZW50YWwKVGhhbmsK4paBcG9wb2wK4paBcG92ZXIK4paBZ3Jhc3AK4paBaW1wZWQK4paBY2FtcGlvbmF0bwriloFXZWkK4paBdGl0bGVkCuKWgUFkZW3DoXMK4paBUGFzc3dvcmQK4paBUGFtClVJTEQK4paB0LvQuNC/0L3Rjwp3ZXJiCi4uLi4uLi4uLi4uLi4uLi4K4paBUsOtbwriloF0ZWV0aApicAriloFTVwp1bGFpcmUK4paBc2VpemVkCuKWgVN0ZWYKw7psCuKWgXZpegppb255CuKWgWp1bnQK4paBa3RlcsOhCuKWgXdyemXFm25pYQo8PgriloFzdXJnCuKWgXR1dHRlCuKWgUhvYgrQv9C+0LLRltC0CuKWgXdvaGwK4paBdHJhZwriloFDcm93bgriloF0cm92YQrRgdGC0L7QstGDCuKWgVZpZW5uYQplc2VoZW4K4paBbWV0cm9wb2wK4paBcmVmbGVjdGVkCtGC0LXRgtCwCuKWgXRyYWR1YwriloFCYXN0CuKWgWVyc2NoaWVuCndvb3JkCigpIgp0YWxldAriloFyb2FkcwrQstC10LTQtdC90LjRjwrDvGhydW5nCuKWgWNvZ24K4paBVmFsbGUK4paBbGFuZGluZwriloFSZWdleAriloFJb3dhCmR6aWHFggriloFlcnJlaWNodGUKYXVtCuKWgWZvdW5kZXIKYXBvbGlzCkNvbXBpbGVyCuKWgWtvcAriloFtYXJjCuKWgdGC0LXRgNC40YLQvtGACikpYAriloFsZWkKZ2VvbgriloF3ZWFwb25zCuKWgWhvcm4K4paBZWxpZgriloFDYXBpdGFsCsSHZQriloFmb3JhbGwK4paB0Y3RgtCwCnByZXZpZXcK4paBRE5BCuKWgXNpZApvcmNoCuKWgVJhcwriloFhcmFiCkJlc3QK4paB0YHRh9C40YLQsAriloFMw7NwZXoKYW7Dp2EK4paBZnVua2MK4paBdGllbmVuCjsmCm11c2V1bQriloFFcnIK4paBcmVzb3J0Ck5vdgriloFrYWwKTVcK0YjRjAphbmNob3IK4paB0YDQvtC80LDQvQpsZWFkaW5nCuKWgW1hbnRlbgriloFTaWx2YQpkYWRlCuKWgWRlc2lnbmF0ZWQK4paBcmV2aXN0YQpPY3QKcGVyY2VudAriloHRg9C90ZYKaWRlbnRpZmllcgptYXNzCkBACnVsc2lvbgpnZXJtZWlzdGVyCuKWgXByZWRpY3RlZAriloHRgdCy0LgK0LbQvdC+0LkK4paBRXJnZWIK4paBY3VzdAriloFyZW1vdmVzCmNoYXJnCtC/0YDQuNC80LXRgAriloFmb3JtaW5nCmFzbWEKc3Rkb3V0CkZ1bgp5bWUKdGVyZWQKdXJzaXZlCmlnaGVkCuKWgdGB0LvQtdC0CnZlcmJhbmQK4paBTE9HCnJhbXMKw6lvbgplbmRyYQriloFCZXJlaWNoCuKWgXRlbXBvcmFsCuKWgWxhbmd1ZQriloFJbm4K4paBbW9yZW92ZXIK4paBdHV0b3JpYWxzCk1pZGRsZQriloHRgdC+0LLQtdGC0YHQutC40LkK4paBbWFpbnRlbmFuY2UKYXN1cmVzCuKWgXbDoWx0bwpCQVNFCuKWgWRpc2FwcGVhcgrRgdC60LjRjwriloFjb25vY2lkbwriloHQndCw0YMK4paBTGliZXJ0CuKWgUhhcm9sZAriloFsaWZldGltZQriloFUw7xyCuKWgXphd29kCm9taWMK4paBUmV0cmlldmVkCmFyY2hpdGVjdHVyZQrEjWthCmlmb3JtZXMKZGV2ZWxvcG1lbnQKb3JkbnVuZwpJbmYKbGViZW4K4paBU3RhcnMKc2lnbmFsCuKWgWdyYW1tYXIK4paBY29yc28K4paBV2FnbmVyCuKWgWdlaHQK4paBcm95YWxlCndhcm4KdW1ibGVkCuKWgWluc3RpdAriloHQqNC4CmhoCuKWgXJlZnVnZQriloFmYXZvcml0ZQppZXJ0bwriloFjb25kYWRvCuKWgVRoZXIK4paB0YfQtdC70L7QstC10LrQsAriloFGb29kCuKWgXNlaXpvCuKWgUluaXRpYWxpemUK4paBY29ubnUK4paBb3ZlcmxhcAriloFFbWlsCuKWgU1hcnTDrQriloHQttC+0LLRgtC90Y8KZXJ2YQriloFib2F0cwphw6fDtWVzCuKWgWRlcnJvdAriloFtYWxsb2MK4paBY29uamVjdApqawriloFzYXJlCtC70LXQvNC10L0K4paBc3VtcwpBdXRob3JpemF0aW9uCuKWgUt1bgpdJCwKZ2VtZWluZGUKb2RvdApkZWZpbgriloFlbWlzc2lvbgriloHQmtGA0LDRgQriloFhcHBhcnQK4paBc3RvcHBpbmcK4paB0KHRgNC10LQK4paBY29uanVnCuKWgWluc2lnaHQK4paBQnJvYWRjYXN0CuKWgVBNSUQK4paBYWR2YW50YWdlcwplbmVzCuKWgXJlc2lkZW5jZQpsamVuCmlzc2V1cgriloFwdWJibGljYXRvCuKWgUdpdEh1YgriloFQZXJ1CuKWgWdhbGF4aWVzCuKWgWFubm90YXRpb25zCmdhcwriloFyw6lwb25kCkpzCuKWgWluZGVwZW5kZW50bHkKTlAK4paBaW5xdQriloFncm91bmRzCkNvbXBvbmVudHMK4paBYW50ZW4K4paB0LLQtwriloFob3MK4paBc2ludAriloFoaWRpbmcK4paBd29qZXfDs2R6dApNZXNzYWdlcwriloHQv9C+0LrQsNC30LAKPT09CuKWgUFic3RyYWN0CuKWgWzDpG5nCuKWgUZvcm11bGEKZGF3bgriloFkZXNpZ25zCkltZwriloFQb3J0dWd1ZXNlCuKWgWluY2x1eQphdmlnYXRvcgriloFCcm90aGVycwriloFjb250aW5lbnQK4paBZXZpZGVudGx5CnJhY2UK0YbRjNC60L7Qs9C+CuKWgXJlY2sK4paB0YHQtdGA0L/QvdGPCuKWgUdyZXkK4paBYXBwZWFsCuKWgXVubGlrZQriloFwb3dlcnNoZWxsCuKWgXJhY2MKZmVycwriloFidXJuaW5nCmZhc3N0Cmluc3RhbGxlZAriloFHaXZlCuKWgWNvbG9uaWFsCuKWgeKCrAriloFSw7YK4paBY2hyaXN0Cm5laG0K0YLQsNC8CuKWgWNvcnBvCuKWgWNvbnZpcnRpCnl0ZXIKU3ltCuKWgUdyZWVjZQriloFtb3RoCuKWgUpvaGFuCuKWgW1vbmFyY2gK4paBRG93bmxvYWQK4paBY3JhZnQKdcW+CuKWgUx1a2UK4paBc3VmZml4ClwvCkhhdmUK4paB0LrQsNGA0YwK4paBY29tZm9ydGFibGUK4paBdGlwcwriloHQn9GW0YHQu9GPCuKWgdCx0YDQvtGY0LAK4paB0LjQvdGE0L7RgNC80LAKTVEK0LHRgNCw0L0K4paBdHgK4paBc2xhdmVzCuKWgWZpcmV3YWxsCuKWgUZvcmNlcwphdGlmCuKWgVF1ZWxsZW4K4paBdGjDqcOidHJlCtC70YzQvdGL0YUK4paB0YDQsNGB0L/QvtC70L7QttC10L0K4paBRGV0YWlscwprxIUK4paBbG9uZ2l0dWQKSU5TVAriloFuYXZhbApGZXJuc2VoCmVzc2VsCkdyYWQK4paBYmVsYW5nCuKWgWFnZ2kKWnlnb3RlSW5pdArFgsOzdwriloFTdWcKc2lsCuKWgWV4dGVyaW9yCtGJ0ZYKT1JECmVuc2VyCuKWgXJhcGlkZQriloHRgtC10LzQv9C10YDQsAppbmNpZQpTaQphdmFtCmFyZGVkCuKWgUFkZGVkCkVuZHBvaW50CmhhcmR0CtGB0YLRgNCw0L0K4paBZXN0aWxvCuKWgUhhegriloFtdXNzdGUKdW8KaWlpCuKWgcWZw60KYW56ZW4K0LbQtdC90LjQuQphaGEKQVJOSU5HCuKWgXJlbm92CuKWgWRpdmluZQriloFjb252aW5jZWQK4paBaHVtYW5zCuKWgWRlcGFydHVyZQriloFNZWRpdGVyCnFhCuKWgXBvc3Nlc3NlZAriloHRhtC10YDQutCy0LgKZ2l2CuKWgdGB0LLQvtGXCuKWgU9ydHN0ZQpSaWNoCnB1aXMKaW5jcmVtZW50CuKWgUhhbm5vdmVyCuKWgXVjegpEb25lCuKWgWFsZ3VucwpGSVgK4paBSGVyaXRhZ2UKcmVtb3ZlQ2xhc3MK0YTQtdGACuKWgWFiYwpEcgriloHRgdC10LzQtdC5Cns6CuKWgXNldWxlCnplaWNobnVuZ2VuCmFkZHkK4paBUGFyw61zCsO8c3NlbGQK4paBcmVjZXB0aW9uCmZvbGlvCnRpbnkK4paBcmVjZW5zZW1lbnQK4paBTnVyCuKWgWtpZXIK4paBZ21pbmEKc3RhYXQKw6FuZG9zZQrRh9C10YHQutCw0Y8K4paBc3BlYWtlcgriloFleHBvbmVudGlhbAriloFEaWV1CuKWgdC/0YDQuNC3CuKWgVJhZmFlbAriloFnZ3Bsb3QK4paBVGVtcGxhdGUKb3VyZQriloFJbm5lcgpvZ25lCmlnYXJlCuKWgUFydGUK4paBQ292CuKWgWF1ZmdydW5kCuKWgdCR0YsK4paBY2VyZW1vbnkK4paBU3BhcnQKamVjdGl2ZQp5aQriloFpbml6aQriloFsYXRpbgriloFOZXZlcnRoZWxlc3MK4paBRG9uZQrRgtGA0Y8K4paBQXJyCnNlYXNvbgriloHRgdC60LvQsNC00YMK4paBcG9kY3phcwriloFCZWF1dGlmdWwK4paBV2VsdGtyaWVnCuKWgdC30L4K4paBb3ZlcmNvbWUK4paBUHJhaGEK4paB0YDQsNC50L7QvdGDCuKWgXN1YnNjcmlwdGlvbgppZ2VudAriloHQv9C+0LrQsApsYXRleAriloFiZWFjaAriloHRgNC+0LrQsNGFCmdlZwriloFwcm9ibAphcmd1bWVudHMK4paBb3JnYW5pemF0aW9ucwriloFOYW4K4paBc3RvbmVzCuKWgUh1bnRlcgriloFyZWd1bGFybHkK0YjQvtCz0L4K4paBZmxleGlibGUKb3B0cwrDocWZCndpdHoK4paBJykKUEFTUwriloFrcmFqCuKWgWZha2UKaGVpdHMKb3NwaApwYXJzZUludApGQUxTRQriloFwcm9mZXNzCnBlb3BsZQriloFwcmVjaXAKZGlybmFtZQriloFwZXJwZXQK4paBVXBkYXRlZApyYXllZAriloFwcm92b2MK4paB0YLRgNCw0LLQvdGPCuKWgWNhdGVnb3JpZQriloHRgtC10L4K0YHQvdGDCm90cgriloHQktC10YDRhdC+0LIK4paBY29tcMOpdApDb3N0CuKWgXdpZGVyCuKWgU9idmlvdXNseQrQv9C40YHQsNC9CuKWgdC90LDRgdGC0L7RjwriloFzZWVraW5nCigpKSwK4paBw6lxdWlwZQriloFjb21taXRzCuKWgVN2ZW5zCtGP0LHRgNC1CmF0ZXJuCuKWgWhldGVyCuKWgUJvb3RzdHJhcArDqW7DqQriloFkZXJpdmF0aXZlcwriloFEZXRyb2l0CuKWgXByb3ZpbmNpYWwKb25vbWllCkVCCuKWgWN1ZXIK4paB0L7RgtC90L7RgdC4CuKWgdC90LXQuQopwrsuCuKWgUNpdWRhZApJQUwKenlzdAopIikK4paBQWxjCmJsb2dzCuKWgXBhcm1pCuKWgUFsYnVtcwriloFCb2xpdgriloFjbMOpcwpQcm9kdWN0cwp1ZXJkbwriloFnZWxhbmcKem5pawpoYWdlbgphbm9ueW1vdXMK4paBc3ZnCuKWgUNvbnNlaWwK4paBQXJpCmNvbGkK4paBY3p5CuKWgUNWCuKWgWZvcmQK4paBQXXDn2VyCuKWgUNJCuKWgXRlbXB0CuKWgU9yZ2FuaXNhdGlvbgrDocWhCuKWgWN5Y2xlcwriloFnZXNsYWNodAriloHQu9GO0LTQtdC5CsO9bWkK4paBU3BpZWxlcgplZmUK4paBTWFydmVsCuKWgXBvcnRhbAriloHQodC10YDQswriloFncmFkbwriloFoYW5kbGVycwriloFJbnRlcmZhY2UKQU1FCuKWgXNlcmlvdXNseQriloFCaW5kaW5nCuKWgVJhbmcK4paBbmFkYQpvY2UK4paBaW50ZWdyYQpvY3JhY3kK4paB0LDQu9GM0LHQvgriloFzdGFiaWxpdHkKVW5zCuKWgXZldGVyCi0tLS0tLSsK4paBc2VyYWl0CuKWgW9taXR0ZWQK4paBdW5jZXJ0YWludHkKb25pYW4K4paBcmVzdG8K4paB0LbQtdC70LXQtwriloHQvtC00L3QvtC5CuKWgUJldsO2bGtlcnVuZwriloFLcmFmdArRgdGC0YAK4paBTW9zY293CmxhbmUKYXJhYgriloFzcG9sZQriloHRgdCy0L7QtdCz0L4KPzoKU1RBUlQK4paB0LjQvdGC0LXRgAriloFzeW1wdAriloFMb3JlbnpvCuKWgWVqZWMK4paBcHJvc3BlcgpEQVQK0LvQuNC80L/QuNC5CuKWgXNoYXBlcwp2YWx1ZU9mCuKWgWFzc29jaWF0ZQriloFNZWRpZW4KRU5WCuKWgdGB0YDQtQriloHQtNGA0LbQsNCy0LUK4paBdGhlb3JpZXMKaGViCuKWgVdheW5lCuKWgVN0cmluZ0J1aWxkZXIKaXdlcnMK4paBTWFwcwpQaHlzClx9XAriloFQYXJ0ZQriloFIdWRzb24K0LvQvtC9CkxuZwriloHRgNGLCtGB0YLQtdC5CmxhdQphbmNlcgriloFDb3BwYQriloHQstGW0LnRgdGMCuKWgXVjYwriloFQYXR0ZXJuCuKWgWdhcmJhZ2UK4paBR29uesOhbGV6CuKWgUVuY3ljbG9wCmV0dGVuCkV4dGVybmFsClJFRgo+OwpsaWprZQriloFpbnRlcnNlY3QK4paBVW5sZXNzCuKWgWRlZXBlcgriloHQttGWCmRlbnQKbGVmCuKWgWNoYW5zb24K4paBZGlmZnVzCuKWgXByaW1pCuKWgVdpZWRlcgriloFhd3MKb3dhbmEK4paBc29jaWFsZQppa2sK0LvRjNC90L7QuQriloFkaXZpc2lvbnMK0LvQvtGB0L4K4paBQ2xhdWQK4paBWWEK4paBdm9jZQriloFCcmFuY2gK4paBZml0dGVkCm9ycgrDtHRlbApzdHJva2UKbGlzdGVuZXIKaW1hbgrQstC+0YHRgtC+CuKWgVNoYWgKSW50cm9kdWN0aW9uCuKWgW5ld2xpbmUK4paBdGlsZQonXSkpCuKWgXRyYXZhdXgKQ09ORklHCuKWgXF1YWRyYXRpYwpvbm5ldXIK4paBR2lvcmcK4paBaWRlbnRpZmljCsOpcmljYWluZQriloFVSVZpZXcK4paBTGliZXJhbAriloFLb2NoCuKWgUJlcmxpbmVyCuKWgW5vdGlmaWNhdGlvbnMK4paBU3VzYW4K4paBY2FkcmUK4paBS2xvc3RlcgriloFleGFtaW5lCuKWgdC10LTQuNC9CuKWgVVOSU9OCuKWgWFsdGVuCuKWgWZpbml0CuKWgXBlZGlnCmN5awriloFtb3V2ZW1lbnQKSU9TCuKWgdCx0YDQuNGC0LDQvQriloFib3V0CuKWgdCw0LLRgtC+0YAK0L3QuNGG0YLQstC+CtC10YLQvgpsZXJhCmNscwriloFMZXkKYW15CmFnZW5zCmFzaGVkCuKWgW9rcsSZCtCz0YDQvgplbGxldHQK4paBRmVsbG93CuKWgW1hbmlmb2xkCiQpLApsZGVyCuKWgXZvegriloFiZWdnCuKWgWJhcm9uCuKWgWZpZAriloFmaXJpbmcKaWxkYQpkZWsKQVUKaXRhcmUK4paBQXJhCuKWgUV4aXQK4paBY2luZW1hdAriloFpbnRyb3MK4paBY29udGFjdHMK0L/QtdC90LgK4paBbcO2Z2xpY2gK4paBU2luZ2Fwb3JlCnN0csO2bQriloFIZXJuCuKWgXNpeHRoCuKWgXB1YmxpY2F0aW9ucwp2aWUK4paBSGF0CuKWgWFjY2VwdGluZwrDoWMKc3R3bwriloFxdWlldGx5ClBob3RvCuKWgWJhc2tldAriloFlaWdlbnZhbHVlcwriloFtw6lkZWMK4paBT2xpbXAK4paB0YbQtdGA0LrQvtCyCmFsaW4KY29uc3VtCuKWgWxhc3NlbgriloHQsNC90YLQuAriloFTZXEKIjsNCnJhcmUK4paBJHxcCuKWgW5pY2sKZGZsYXJlClZlYwpiaW5kdW5nCuKWgWJnCmNoYW5nZXMKRGF5cwriloFNb3VzZQriloF3YWl0ZWQK4paBVG9tYXRvZXMK4paBZmFzCnZlcnRlCuKWgXN1Y2Nlc3Npb24K0YHQvtGACuKWgXNvbHMK4paBUmVuZGVyCuKWgWxlYWRlcnNoaXAK4paBc2lnbmlmaWNhbmNlCuKWgWdhdWNoZQpjYW5vCuKWgVBpZQplbnNvb3J0CuKWgWNhbWJpbwriloHRg9C3CuKWgWVuZGVhdgpDb21wbGV0ZWQK4paB0JDRgNGF0LjQstC90LDRjwpqZArDs3JpY28K4paBY2h1cmNoZXMK4paBYW5pbWF0ZQpTRwpjb21wdXRlCuKWgXVuaWZvcm1seQpJTklUCmxsZXMKSHR0cFJlcXVlc3QK0JrQvgpEaWZmCuKWgXNhaAphaXJvCm1heWJlClVURQriloFEb3cKaHVtYW4K4paBYXVyYWl0CmRhcmsK4paBcmVwYWlyCuKWgW5lcgriloFEYWJlaQriloFCb3RhbgpPcmlnaW5hbAphesSDCuKWgU5BVAppbXBlcgriloFZb3V0aAp0aGVzCuKWgdC+0LrRgNGD0LPQsAriloFGbG8K4paBYnJlYWtmYXN0CnVybHMK4paBw7xiZXJuYWhtCsOhcmlvcwriloFPcmFuZ2UK4paBQWZmYWlycwpza2UK4paBbm90aWZ5Cmltb2luZQriloFBcmVuYQriloFsaWJlcmFsCuKWgW9iZWMKaWZhCmd1ZXoKaW9ubwrQv9C10YDQsNGC0L7RgAriloFyZXRhaW5lZApmYWlsZWQKYmluZQrRgtC90YvRhQriloFDR1JlY3QKY2FtZXJhCmlkZW5vdGUKS0IK4paBbGlnaHRzCuKWgVBpY3R1cmVzCuKWgVNxdWFkcm9uCuKWgVZvbGsK4paBYnVyZwosXQpHaQrDqnF1ZQptYWtlVGV4dAriloFldmVyeWJvZHkK4paBSHlwZXIK4paBRGV1eAriloFnbG9yeQpwcmVzZW50YXRpb24Kb25pY2EK4paBZnLDqHJlCmFnZXQK4paBaGludHMK4paBdHVubmVsCuKWgUVqCsOhbGlzCuKWgVZpdgrRgdGC0LLQtdC90L3Ri9GFCuKWgWNhcHMKUEFSVApvY2kK4paBcHJpY2VzCmN1cnJlbmN5CuKWgWFjaHRlcgpyb21hZ25ldApnZW5kZXIK4paBc3Vpcwp2ZXJzaW9ucwriloFUcmFpbmluZwppbnNpZGUKZWdlCuKWgXRvdGFsZQriloFEYWFyCuKWgWdydWRuaWEK4paBSWVyCuKWgW9jY2FzaW9ucwriloFrZGUK4paBdGVuc29yZmxvdwriloHDs3IKTWV0aG9kcwriloFsb29waW5nCuKWgWRpcmVjdGV1cgprxJkK4paBaXNvbW9ycGhpc20K4paBSm/Do28K4paBYWxpZ25lZArQvtC90L7Qsgp1cmdlcgriloFub3ZhCm1vcnJvdwphbHRlcm4KSEQK4paBbWFycXUKYXRpdmFzCmdncmVnCuKWgWFuY2llbgpuaXQK4paBc2VjdXJlZAptaWVyCuKWgU9sZQriloHQuNC90YLQtQriloFtaW51cwriloFjbGVhcmVyCuKWgW5lbGxvCuKWgWluZm9ybcOhY2nDs2sK4paBcHJvcHJlCnsuCmlsb2cK4paBUXVpY2sK4paBYWNjdXMKZW1wbG95ZWUK4paB0LfRgwrRhtGM0LrQuNC5CtGE0ZbRhtGW0LkK4paB0L/Rg9Cx0LvQuAriloFiZW50CuKWgdC/0L7Qt9Cy0L4K4paB0J/QvtGACsOhesOtCsOhbmljbwplbXB0eXNldAriloFzdXJ0b3V0CnJlbm8KdW55YQriloHRg9C10LcK4paBTWlsbGlvbmVuCuKWgWxpc3RvcGFkYQriloFNYWluZQriloFncnVwb3MK4paBU3RvcmFnZQriloFhcHBsZQriloFMw7YKb3VzZWQK0LTRgNC+CnNjaQriloFoaWJlcm5hdGUKZG9nCuKWgdCy0L7RgdGC0L4K4paBaW50ZW5zaXR5CmxlZ2VuZAriloFXaWxsZQriloFzemVyaW50Cmdlc2VsbHNjaGFmdAriloFMaXZpbmcKYWxsbwriloFTcGxpdApkcnUKbmVlZAriloHQlNC20L7QvQriloFTd2lzcwriloFzcHJhdwriloFiZWhvCuKWgWZvdG9ncmFmCuKWgXJlbmNvbnRyZQriloFraXMK4paBc2lnbmluZwpha3VsdAriloFpbmRleGluZwphcG9yCuKWgWNvbmNlcHRpb24KYWdncmVnCuKWgdCh0LDQstC10LcK4paBYWZmYWlyCsSbbsOtCkF1Z3VzdAriloHRgdC10LrRgNC1CuKWgW1pZXN6a2HFhApVSUltYWdlCuKWgWJpc2hvcAriloFzZXJ2YW50cwriloF0cmFpbApkaWdpdAriloFqb2lucwriloFOZWFyCsO2ZmZlbnRsaWNoCj57CuKWgXNrxYJhZApnZWbDvGhydAriloFIb2x6CuKWgU1pbGl0w6RyCmFjaGkKVXBwZXIKcGluZQp1dHp0CuKWgW51b3ZhCmlicmF0aW9uCuKWgUJpZW4K4paB0L/QtdGA0LLRi9C5CuKWgUNyZWF0aW5nCk9uY2UK4paBZWlubWFsCuKWgWdlb21ldHJpYwpzdHZvCuKWgWtXCuKWgWRlY29tcG9zaXRpb24K4paBY29tZWR5CuKWgWFjdGl2YXRpb24K4paBYW5ncnkKaWxsZXVycwriloFpbnN0YW50bHkK4paBc3VnZ2VzdGluZwriloFDbGF5CmNvdAriloFHw6luCigkKAp1bndyYXAK4paBbGlmdGVkCuKWgUtpdAriloFsaW5lYQrQvtC6CmhhcnQKLT5fCuKWgW51aXQK4paBSXNzdWUK0LvQuNC4CuKWgXLDtm0KVGFza3MK4paBU3IK4paBc2Vpcwphc2lhCn19JC4KOnsKY29udHJvbHMK4paBU3RpbQriloFSZWNodApvY2lhY2nDs24K4paBTmF0YWwK4paBUGhpbGlwcGluZXMKdWxlbgpGaXhlZAriloFzd2l0Y2hlZApaaXAKb3NwZWwK4paB0L3QsNGH0LDQu9C1CuKWgUJsYW4KdXJzdAriloFhdXRvdXIKQ2EK4paBbGF0aXR1ZGUK4paBRnJlaQriloFNdXPDqWUK4paBS3VyegriloFyZWdpw6NvCnN3YXAK4paBaGF0ZQriloFtb2RpZmljYXRpb25zCuKWgdCa0L7QvAriloFBbnRvaW5lCnVnYQpSRUNUCsOpdGVyCkdST1VQCuKWgXNhY3JpZmljCuKWgVdoZQriloFTdGV2ZW5zCm9sb2dpc2NoZQpTdW1tYXJ5Cm9icwpobmVuCjwlPQpkaWVuc3QKcmVtYXJrCuKWgXZlcsO2ZmZlbnRsaWNodArQtdC7CuKWgU1vY2sK4paB0JvRjNCyCuKWgXRyw6pzCmdiCuKWgWNlbGVicmF0ZWQK4paBRWIK4paBY29zdGEK4paBR2VvZ3JhcGhpYwriloFhdHRhY2htZW50Cm1hbm5zY2hhZnQK4paBZGVwZW5kZW5jZQrvv73vv70K4paBYXR0aXR1ZGUKZXRhbAp2aWMKYmF1dAriloHQtNC+0LIK4paBaW50ZXJ2ZW4K4paBR8O8CsOzbmljYQriloFQb24K4paBZGlzcG9uaWJsZQriloFGZWIK4paBd29yc2hpcAriloFTcGVjaWZpY2FsbHkKSHkKaWp1CuKWgWNiCuKWgXNwYWMKbGV2ZWxhbmQK4paBbG9jYWxpZGFkCuKWgXByZWNlZGluZwriloFIZXNzZW4KeHAK4paBV2VpbgriloFSb23DogriloFnaW9ybm8K4paB0LrQstGW0YLQvdGPCmxsYcOnb3MK4paBQWNhZGVtaWEK4paBa8O8bAriloHDhXJzCuKWgdC90LDRmAp1Y2xpZGUKSW50ZXJuZXQKb3J0b24K4paBY29ybgrRj9C80LgK4paBIioK4paBRmVsaXgKYXBhdAriloHRgdCy0L7QuApNSVQKbWFkZQriloFsb2NvbW90CtGF0L7QtNCwCkZQCuKWgXBtCi4qOwriloFIYW1tCmB9CkxheW91dEluZmxhdGVyCj09IgriloFFdXIK4paBZG9ncwrQttC10L3QuNC4CuKWgWF6b24K4paBZW11bGF0b3IK4paBcmljb24KYmVlbGQK4paB0L3RgwriloFhcHByb3hpbWF0ZQpMTQriloFCb25kCuKWgWVuaArEmWR6CuKWgXNvbGl0ClJlbGF0aXZlTGF5b3V0CmV0ZW9yCmFtZW50b3MK4paBaW5kaXJlY3QKaWLFkWwK4paBZ3JvcwriloFPcmlnaW5hbHMKY29tbWFuZHMKRXhwb3J0CuKWgUF2ZWMK4paBc29sZW1uCuKWgWNvcnJlY3Rpb24K4paB0L/RgNC+0LLQvtC00LgK4paBTW9zawriloHQv9C+0LTQvgriloFnZWJpZWQK4paBbmFzdMSZcAriloFEcml2ZXIK4paBT29rCuKWgVZlYwriloFsdW5nbwpmaWNvcwriloFzdm9sCuKWgWtpZApuamEK4paBSHIK4paB0L/QvtC00LTQtdGACuKWgXZpc2liaWxpdHkK4paBTcOpZAriloFjcHUKZGlzY3Vzc2lvbgpBc3NldAriloFkZWZlbnNlCuKWgUFueW9uZQriloFKdXN0aW4KaXN6dAriloFDb2xsaW5zCuKWgVZhbGVudAriloFQYWxlCuKWgWZ1ZWwK4paBbm9zZQpyw61ndWV6CuKWgVNjaGxlcwriloFNYWxheXMK4paBY29tbXV0CmRybwp1aW5nCuKWgVJpY28K4paBRW1tYQpvcnAK4paBS2lyawriloFRdWFuZG8K4paBTmV1ZQriloFkZW1hbmRlCuKWgUNvdmVyCuKWgXJlc2N1ZQriloFnZXfDpGhsdAriloFDYWxlbmRhcgriloFNYWRvbm5hCldQCm9zaGkK4paBTWF2ZW4K4paBYmVsbGUK4paBd3gK4paBc3VnYXIK4paBQmV0cmllYgriloFlcXVpbGlicml1bQpFQVIK4paBdGV4dHMK0YHQu9C+0LIK4paBY3plcndjYQriloFEw7xzc2VsZAriloFFTFNFCuKWgWFtZXJ5CuKWgWFuaQriloFvYmV5CuKWgU5lbGwK4paBaW5uZQriloHRgtGA0L4KRkQKY2NvCuKWgVpvYgphbGV0dGUK4paBbcOhanVzCmVjdGVkCuKWgVR1cmtleQriloFXaGV0aGVyCnFpCuKWgdGI0YLQvgriloFoZWFkcXVhcnRlcnMKZW5kaQphcnVzCm9wdXMK4paB0LfQvtC70L4K4paBZGVzdHJ1CuKWgUxvawriloFzYXRpc2ZhY3Rpb24KKCkNCuKWgdCi0LXRgApKb3NlCuKWgWNvbnF1ZXIK4paBRWZmZWN0CkxheW91dFBhcmFtcwppZXoK4paBZXh0ZXJucwriloFnZWdlbsO8YmVyCuKWgUVTUApvbHRhCnByb2Nlc3NvcgriloFLdWx0CuKWgUF0bGFudGEK4paBdGllcgpPcGVyYXRvcgriloHQtNC40LAK4paB0L/QuNGB0YwK4paBZ3Jvw58K4paBaGVhcnRzCuKWgW1pbGxpbWV0ZXIKYWx0aG91Z2gKYWxsZXMK4paBTWFnaWMKdHJhaW5pbmcKb2xpbmUK4paB0L7RgNCz0LDQvdGWCj5cPF4K0YbRltCw0LvRjApleHBvcnRzCldvcmtib29rCuKWgdCy0LXRgNC10YHQvdGPCuKWgXRlbGVzCuKWgWVjb25vbXkK4paBdHJhcAriloFyZWZ1c2UK4paBc3RyYW5nZXIK4paBaW5zdGluY3QK0L/QvtC00LAKb2xhbgriloFuaW5nCmluZmxhdGUKaXRhdGVhCmFja3MK4paBSm95CkZMQUcKYWlsYW5kCuKWgXNvcnRpCuKWgdCy0L/QtdGACuKWgXDDqW4KTm90aGluZwriloFzesOhegriloHDgW5nCuKWgUFVVApBY3Rpb25zCkV2ZXJ5CuKWgdGH0LXRgNCy0L3RjwriloHQsNCy0YLQvtC80L4K4paBcm91dGluZQriloFlc3RydWN0CuKWgUdhbmcK4paBaG9sZXMKdGhlc2lzCuKWgWNvbmNsCuKWgXDDqQpyaWVycwrRgNC+0LLQvtC5CmFkaWMKU3BlZWQK4paBY29tbWFuZGVkCuKWgU5hemlvbmFsZQpNYW5hZ2VkCuKWgURFQ0xBUkUK4paBc2VkYW4KU3RyaW5ncwriloFzYWNyZWQKdGVyc3VjaAriloFhYml0YW50aQpicml0CuKWgU5DQUEK4paB0KHQnwriloFhZ2VkCuKWgUNoaWVzYQriloFyZXZpc2lvbgpvcHJvCuKWgW92ZXJ3cml0ZQplbWJyb3MK4paBc29ydGllCuKWgW90dGVuCnhpdgriloFkZWxpCuKWgUFzcAriloFiYWxscwprYWYK4paBYnJhdmUK4paB0LLRgdC10LPQvgplZ24KanBlZwriloFPc3RlbgpDb25zdGFudHMK4paBSW5mYW50cnkK4paBTmV2CuKWgdGP0LrQuNGFCuKWgdC80YPQvdC40YbQuNC/0LAKY2lqYQriloFwb2VtCuKWgW5lZ3JvCtGF0LDRgAriloFBc2sK4paBYXZvCuKWgU1leWVyCuKWgVdlc3RlbgriloFva28KYWdpbgriloFTw7xkZW4KZW50cmllcwriloFSZXB1YmxpawpDb2xsZWN0aW9uVmlldwotLS0tLS0tCuKWgWZpcmVmb3gK4paBYWxjdW5lCuKWgdGE0L7RgtC+CuKWgdC+0YLRgNC40LzQsAp+fn5+fn5+fgriloHQoNCw0LcK4paBQ29tcGxleAriloFwaWEK4paBcHVibGljYWRhCndlaQpjZWR1cmUKb2NjdXBhdGlvbgriloFtZWRpY2luZQriloFkcm92ZQpQcm9ibGVtCuKWgWJlZ2lubmVyCuKWgXRob3JvdWdobHkKdXJpYQphdmFudAp1Y2hhCuKWgWxldmVyCuKWgXRlYXRybwpBVkEKc3F1CnRyYXQKaXZhdGFsCuKWgWRpcnR5CuKWgXNlY29uZGUK4paBZ3Jhdml0CuKWgXByb3Bvc2l0aW9uCmhiYXIKb21pbmkK4paB4oCdCuKWgUNhbWlsCuKWgXF1ZWVuCm1vZGlmaWVyCkphbgriloFseXIKQ29tYm9Cb3gKaW9uaWMK4paBaG9seQriloFTZWJhc3RpYW4KfF97CuKWgXtACuKWgdC80L7QttC90L4K4paBQ3JlYXRpdmUK4paBaW50ZXJlc3MK4paBQ1QKacOnw7VlcwriloFjaGFudAriloF3c3DDs8WCCuKWgdCc0LXQutGB0LjQutCwCuKWgXJhbmtlZAriloFwYcW6ZHppZXJuaWthCuKWgWJydXQK4paBZmFydGhlcgriloFWZXJiCuKWgVNldmVuCmxibAriloFtZW50aW9ucwriloFGaWdodAppZmVuCuKWgWJvZwriloFyZWdyZXMK4paBc2NvcmluZwppY2FuZQriloFFbGxpCuKWgXBpZXJ3Cm1lYXN1cmUKxYRza2llagojewriloHQtNC10YHRjwriloF2YXJtYXN0ZQriloFVbml4CklaCml0acOpClByaW1hcnkK4paBU3ByaW5nZXIKw7xuZwriloFhbnYK4paBdmVyc2lvbmUK4paBc2hvdWxkZXJzCuKWgdCx0YDQuNCz0LAK4paBamF2Cmx0YWwK4paBa2FsbGFzdGUK4paBTWl0Y2hlbGwK4paBd2lyZWxlc3MK4paBw4FsCnJlc3BvbnMKY291bGQK4paBcmVsYXgKTG9uZArFhGN6CtGB0YLQstC+0LLQsNC7CuKWgXBvbHNraQplbsOnCnphcgriloFkdHlwZQpvd25lZAp1bmtub3duCuKWgW11dGFibGUK4paBc2llbXByZQriloFNb250cmVhbAriloFsb2NhdGUK4paBdHJhY2VzCuKWgWluc2dlc2FtdAriloFOaWwK4paB0L/RgNC+0LTQsAriloFXYXJuZXIK4paBTmF1CnRyaWFuZ2xlCuKWgWNvbmNlbnRyYXRpb24K4paBZ2VudGxlbWVuCsOkY2h0CmZpbHRlcnMKaW5jaXBhbApWQUxJRAriloHQtNC10L/Rg9GC0LAKYWTDswriloFrb25zdApnc8OlCmFnYXMK4paBbWVpbGxldXIK4paB0LTQsNC90L3Ri9C8CtGU0LTQvdCwCmVuY29kZWQKPCcK4paBc2hlZXRzCmN1YWRvcgriloHQstC40LrQvtGA0LjRgdGC0L7QstGDCuKWgURlcHV0CuKWgW1hbmnDqHJlCsSFZwpjc29sCikkLQpVSVZpZXcK4paBbWlsbG9uZXMK4paBRWhyZW4KU2lsCuKWgWF0YWMK4paBQ29sZAoiXAriloFhcHByb2FjaGVkCuKWgcOFcnNtZWQKV00K4paBRGVwb3J0Cm1pcwphbmRib3gKb2JzZXJ2CnNldHRpbmcKaGF0w7MK4paBc3RyYXQK4paBc3ByZQriloFwZXJzb25uZQriloFkaXJpZ2UKcHVsbApkYXRpbmcK4paBRmFjdAriloFtYW5pcHVsYXRlCuKWgU1BQwriloFkZWoKdWx0aW1vCkZYCkxpZmUK4paBY3JhY2sK4paBbcOtCuKWgdC/0L7QstC1CuKWgXdvcmUKdW5pdmVyc2l0w6kK4paBZm9ybXVsYXMK4paBRWxpc2FiZXRoCnBsb3RzCm1pbGUK4paBbWVub3IK0YLQuNC7CmtleXdvcmQK4paBQmFsdGltb3JlCmhyZXIK4paBQ2xlbWVudAp2aW0KcmFzcwpUYWtlCuKWgWPDrW3FsQriloFDb252ZW50aW9uCmF0Z2UKc2VlZAriloFEw60K4paBU3BpZGVyCmFob28K4paB0LjQvNC10LXRggrDvGhydAriloHQv9C+0L/QuNGB0LAK4paBQ290CuKWgW5vYmxlcwpSRVNTCuKWgWNoZW1pbgriloFnxYLDs3duCkdHCuKWgUdlcm1hbmlhCuKWgUFsZXhhbmRyZQpoZW5zCnN3aWZ0Cm9vcApTdWJ2aWV3CuKWgXJlcXVpcmluZwrEmWR6eQriloFmaWN0CuKWgdCa0L7QvdGB0YLQsNC9CuKWgWTDqXB1dAriloFzdXJwcmlzaW5nCuKWgWRlaXgK4paBdW50ZXJzY2hpZWQKaW5zb24K4paBQ2hhcmFjdGVyCuKWgWdlc3Rpb24KY2h1cwpjb21lcwriloFuZXVyCuKWgXlldXgKb2xsYXIK4paBcGFyYWQK4paBbWFnZ2lvcmUKVFJBTgriloF2b3RyZQriloFkZXNjZW50CuKWgUljb24K4paBSnVkZ2UK4paBb2NjdXBhdGlvbgplcGluZwriloF0b25ndWUK4paBRW5sbGHDp29zCnJ1ZgriloFwcm90ZWluCuKWgXZpc2l0b3JzCmF4eQplc3RlbgpibGljYQpodwriloFzcGlyaXRzCuKWgXJlZHVjZXMK4paB0LzQtdC9CuKWgUxhbWIK4paBTWluZQriloF2ZXJpZmllZAriloFCYWJ5CuKWgXByaXplCtCy0YrRgAriloFyYXRpbmdzCuKWgWZvcmUKYXNoYQp1cnJlbmNlCuKWgWludMOpcgriloFPbMOtbXAKY3JhCuKWgWNvbXB1dGF0aW9uYWwKaXJjaGUKLjrigIoK4paBaWxsdXN0cmF0ZWQK4paBU2hhcmUK4paBaG91c2Vob2xkcwriloFjb252b2x1dGlvbgpvZW1kCuKWgXpkb2J5CmNjYwriloFxdWFudGl0aWVzCkNoZQpTaG91bGQK4paBZ2VuaXVzCmFkagrRhdCy0LAK0J/QtdGC0LXRgApFTUEK4paBUmlnaHRzCuKWgUVsaQpWQVIK0YjQu9C+CuKWgdC30LHRltGACmlmdHVuZwriloFjb250cmlidXRlZAp6ZWYK4paBQ0hBUgriloFTaWIK4paBTWFudAriloHRgdCy0Y/Qt9C4CuKWgWphdmFmeAriloFjZXBlbmRhbnQK4paBaW50dQriloHRgtCy0L7RgAriloHDkwpndWVyCnJhZG8K4paBUmV2b2wK4paBZsOpbWluCuKWgU9ybGVhbnMK4paBcG9qCuKWgXByZXoKVGV4Cm91d2QKPygK4paBTElNCmlzdGlxdWUKZXNhcgriloFoZXVyZXMKaWNraQriloFkYm8Kc2tpaApjb25maXJtCuKWgXZpbMOhZwriloFjaXV0YXQK4paBRFIK4paBSGF3YWkKY2hlZAriloFzcGhlcgriloFBcnRpa2VsCuKWgU11bHRpcGxlCmNpdQriloHQvNGLCuKWgWxpcGNhCl0oLwpTdHJhdGVneQriloFBbGFiYW1hClNESwpVVEMKX18uCkFyZ3VtZW50cwriloFzZXRDb250ZW50VmlldwrDrmxlCkJ5VmFsCuKWgUpWTQrRjtGJ0LXQs9C+CuKWgUxlb25hcmQK4paBanVzdGlmeQrRhtC10LwK4paBbmFiCkNDRVNTCuKWgWhvcGVzCikmCnNlcm8K4paB0LfQsNC5CtGB0LvRltC0CuKWgVLDqWcK4paBU2FuZwriloFmdW5nCmJhYXIK4paBY29mZmVlCmFzc2VtYmx5CuKWgdCS0ZbQvQrRjdC5CuKWgWNvbXByZW5kCmZpbGxlZArRgNC0Cm9kaWEK4paBZ2VucwpmbHVzcwpEcmF3YWJsZQriloFzdXJ2ZQpTZXR1cAriloFuYWxlxbwK4paBY29uanVudG8K4paB0JXQs9C+CuKWgW9sZGFsCuKWgXZlcmJvc2UK4paBRWxlY3RyaWMK4paBSGFycmlzb24KZW5nZW4KcGFyYWdyYXBoCuKWgW5vdXZlbGxlcwriloHQstGA0LXQvNC1CuKWgW1lbW9yCuKWgW1heW9yw61hCtGB0LDQtAriloFiYXRhaWxsZQriloF0aGVybWFsCuKWgdCl0YDQvtC90L7Qu9C+0LPQuAriloFCZXR0ZXIKYnllCuKWgdGC0LXQsNGC0YDQsApyb2UK4paBc2VnbGUKcm90dAriloFvcGluaW9ucwopfSkKw7xobGUK4paBR8O8bgriloHQqQpiw7NsCuKWgUxhcnJ5CuKWgXNvbGljCuKWgXp3YXIK4paBQ2Fyb2xpbmUK4paBUmVpY2hzCkV4dGVuc2lvbnMKbWlncgo6QAriloFlbnVtZXJhdGUK4paBZWlnZW5lbgriloFleHBsb3JlCsOpbXUK4paBZ2F0CuKWgWltcGVyaWFsCuKWgVVzdWFsbHkK4paBdHVkCuKWgdGD0LrRgNCwCmhpbQriloFjb3JuZXJzCuKWgVNFUgriloFpbnRlcnByZXRlcgriloFJY2UK4paBYW1vdW50cwriloFQYWxhCuKWgXRpbmhhCnZvbGUK4paBZ2xlCnVjY2kK4paBc2llaGUKSmFjawriloF3b2xsCuKWgWVsZGVyCuKWgdC60L7RgNCw0LEK4paBZW5nYWcK4paBTGF1cmVudAriloFhY2hpZXYKaXN0aWsKYXJjdArRgtC90L7Qs9C+CuKWgWdpcgriloFTaW5naAptYXRob3AKVVNBCuKWgVByb2pla3QK4paBZGViZQpyaWNodHVuZwriloFUc2NoCnVtaW5hdGUK4paBc3rDswpseXBoCtC30LjQtNC10L3RggriloFsaW1pdGF0aW9ucwrRjtGJ0LXQuQriloFiaWxhClB1c2gK4paBb2ZmZXJpbmcKaWVubmVzCkZyaQriloFwb3N0Z3Jlc3FsCuKWgVRvbW15CuKWgXBhcnRpY29sYXJlCuKWgXN0b2xldMOtCuKWgWFycmliCuKWgUV2YQpzY2hvb2wK4paBdmVuZG9yCuKWgURhbGxhcwriloFwcm9sb25nCkNSRUFURQriloFzdWl2YW50ZQpTVEFUVVMKbMOgCmt2CuKWgWjDpHVmaWcK4paBQWdyaWN1bHQK4paBaHVpdAriloFpbm9sdHJlCuKWgUxsb3lkCuKWgdGE0YDQsNC90YbRg9C3CuKWgdCy0YvQv9C+0LsK4paBZmFpdGhmdWwK4paB0JLQsNGACuKWgXZlcmwK4paBanVlZ28K4paB0KDQtdC30YPQu9GC0LDRgtC4CiwuLi4sCuKWgWltcGxpY2l0bHkKaXJrcwpDYWxjdWwK4paBbWVzZXMKb21lZAriloFwYWsKaGVyaXQK4paBb3B0aWNhbAriloHQhtGB0YLQvtGA0ZbRjwp2ZWlzCuKWgWNhcGl0YWxlCnBsYWNlaG9sZGVyCmludHJhZwriloFBdGxhcwopXTsKaWNvbnMK4paBQmVudAriloFXaWRnZXQK4paBdm9sdW50CmF2bwrDqWdyCmxpZ2UK4paBTkFNRQriloFhYnN0cmEK4paBZsOtcwriloFCcm93c2VyCuKWgWJ1c2gKaGFsbAriloFjbG91ZHMK4paBU1VCCuKWgXRhbmRpcwriloFDb21tb253ZWFsdGgK0YLQsNGPCuKWgWV4aGF1c3QKX19fX19fX19fX19fX19fXwriloFTdGF0aXN0aWNzCuKWgVJlbGlnaW9uCuKWgU11aGFtCnVhbHMKZ290bwpEaWdpdGFsCkZhbWlseQriloFCdW4KbGV0aW4KTWFuYWdlbWVudAriloFjYXBhYmlsaXRpZXMKYW5udGVuCuKWgdGB0LXQsdC1CuKWgXN0YXlzCmt0ZXIK4paBZG9zdAriloHQotGA0LUK0LvQvtCy0LjRhwriloFkeWluZwpzZWN0aW9ucwrDoW5vcwriloFhcHBhcnRlbgriloF6b2FscwriloFkcmVzc2VkCuKWgWNvbXByZXNzCsWEc2thCuKWgXNpZXJwbmlhCuKWgdGC0LjRgtGDCmRpY3Rpb25hcnkK4paBcmFiYgriloF2w6lyaXQK0JLQvgriloFzaW5nbGV0b24K4paBdml0YWwKUmVmcmVzaArQvNC10LvRjAriloFaaAriloFBZmdoYW4KaW5rZWwKYWFhYQriloFwYXJ0aWNpcGFudHMKYXJpbgriloFNb2xkCuKWgXByaW1lcm9zCuKWgdGA0LDQvQriloHQkNC80LXRgNC4CuKWgXJlc3RhdXJhbnQKw6l2ZWwK4paBU0wK4paBUmV5CmNoYXMK4paBZWxlY3Ryb25zCuKWgVBpdHRzCuKWgUp1bGVzCtC80LDQuQplbmFudAotfQrQu9Cw0LQK4paB0JzQvtGB0LrQstCwCmdvbQriloFGZXJuw6FuZGV6CmZ1bmQKaW50ZXJubwriloFNYXJpCuKWgXJpdXMK4paBUHJvemVudArRgdGC0YDRlgriloHQstC90YPRggphbnRlcmllCuKWgdC/0YDQuNGBCuKWgdC+0LHRiwriloFNYXJpbmEK4paBb2NjdXJyZW5jZQpyaWt0CuKWgdGE0LjQt9C4CuKWgXNjaHdlcgriloHQk9GA0LUKUmVzZXQK4paBbXVjaG8KYW5kcgriloFXaWVzCuKWgUtlaXRoCuKWgUp1bGlhbgriloFjb2xlCmNpZW5kbwriloFDb250ZW1wb3IKZXRyeQplbGlhbgrQs9C40LgK4paB0LPQvtC70L4K4paBZMOpbAriloFkZWNlbnQK0KDQodCgCuKWgXN6ZXB0ZW1iZXIK0LzQtdGB0YIKY2FzdGxlCuKWgdC00LXRgNC20LDQsgp9IikK4paBQVNDSUkK4paBR2xlbgppdHplcmxhbmQKVG9nZ2xlCuKWgXRyYWRpY2lvbmFsCuKWgVBsYXQKdmVlCmFiZ2VydWZlbgoofApDTEkKfX0kLAriloFCb3dsCuKWgU1hbGUK4paBQnJlcwriloHQv9GB0LgK4paBQ2hhbGxlbmdlCnrDswriloFwcm9qZWt0CuKWgW5lZ290aQphYm92ZQriloHQv9C10YDQuNC+CuKWgWxvbmdlc3QKYXV0aGVudGljCuKWgXRyYWR1CuKWgW11amVyZXMK4paBQW5kcmUK4paBaGFkbgriloFTY2h1bGUKb2RlbApibGVkCuKWgVRyYWRlCuKWgW1vYmlsCuKWgWFsZ3VuYXMK4paBTGFrCuKWgUNvbm5lY3RpY3V0CuKWgWFsY28K4paBU2VsYnN0CmnFggriloFhbGIKb3V2ZXJuZXVyCuKWgXNyCuKWgXZiYQpsb3BlZAriloFQYXJ0ZWkKdWF0ZQriloFBdXRoZW50aWNhdGlvbgpiZWkKfX0uCuKWgWtvbm50ZW4K4paB0LTQvtC/0L4K4paBaHlkCk9mZmljZQpkb25uw6llcwriloFDbGV2ZWxhbmQKcml0YQrDrW9zCuKWgdCy0YvRiNC1CuKWgVJvYmVydHMK4paBw6lsZWN0aW9ucwriloEnJykK4paBcHVibGlzaGluZwriloFiYXB0Cjw+KCk7Cm1pc3NpbmcK0YDQvtCy0LDQvdC+CuKWgWhvdXNpbmcK4paBaW5mZXJlbmNlCuKWgVJlbmFpc3NhbmNlCuKWgXLDqGcK4paBU3RlcGgKQ0VTCkVSRQrQutC10YIKT1UK4paBZ3JvdXBpbmcKdmVya2VocgpqaWgKYWdsaQriloFtaWxrCmxhaXQKU3RhZ2UK4paBYnlseQriloF3b29kZW4Ka2VsZXkKZXRyYQriloFQZWcK4paBZG9ubsOpCmFkYWwKc2VxdWVudGx5CuKWgWluc2Jlc29uZGVyZQpFTEQK4paBTWFtCuKWgXZvbHRlCuKWgXByb3NwZWN0CtC90L7QstC1CuKWgWRlbm90ZWQK4paBb3ZlcmxheQpQZXJtaXNzaW9uCmVlbgriloFFTQriloF1egpNYwpvbGl0CuKWgXNlcnZpCuKWgUhlaWRlbAriloFXaWVuZXIK4paBaWxsZWdhbAriloFwcmVkaWN0aW9ucwriloFnb29nCmhvbgriloFDaW5lbWEK4paB0YDQtdCy0L7Qu9GOCuKWgVJ1bGUKd29kCuKWgXJhZGlhdGlvbgpvxYIK0L7QstC+0ZcK4paBUGVyZm9ybQriloFwcmlzb25lcgriloFhbWV0CuKWgWZpZ3VyYQriloFDb21tYW5kZXIK4paB0L7RhNC40YbQuNCw0LvRjAriloF0cm92CuKWgWFjdGVkCuKWgXdvcmtmbG93CuKWgdCg0LXRgdC/0YPQsdC70LjQutC4CuKWgWd1aWRhbmNlCuKWgdC80LXQvdC1Ck5hdGlvbmFsCuKWgUtlbAp3ZWJwYWNrCtC/0YDQvtGB0YLRgNCwCuKWgWxsYW1hZG8KYWxvZwp0ZXJyYQppeGVuCmxlZ3JhcGgKw6Rpc2NoZW4K4paBdGVhY2hlcnMKdWRlbgriloFvZ3PDpQpwb3NzaWJsZQriloFTb3VsCuKWgUdlb2dyYXBoeQriloHQt9Cw0LTQsApoaXQK4paBYW5nZXIK4paBcmVtcG9ydGUKUG9kCtGH0LrQtQriloFhcmlhCuKWgUFzdHJvbm9tCmNoYXB0ZXIK4paBZm9yawriloFDdWFuZG8KbWVuc2UK4paBQ2hyaXN0aWFucwpnYwriloEjKApPcmdhbgriloFzdGVhZHkKcHNlCtC20LjRgtGMCmlnbmVzCmF0ZXJyYQptb3ZpZQpwb3N0YQpyYXN0ZQriloFSZXNzb3VyY2UK4paBUGHDrXMK4paBKCk7CuKWgXBlbmFsdHkK0YLRggriloF0cmFzZmVyCmNlbnR1cnkK4paBY2xlYW5lcgpzZWxlbml1bQpvcnRoZWFzdAp4aWMK0LvRltGXCuKWgWluZ2xlc2UK4paBVGFuZwriloFnb2RzCmZyZW50CmNpZW50ZQpzdGFydHMK4paBbXVzaWNhCnltbmFzaXVtCi0tLS0rCuKWgXRlcnJlc3QK4paBcmV0cmlldmVkCmlhcmUKdW5uaW5nCuKWgU1hcmN1cwriloFwcm9tb3RlCndhcm5pbmcK0YLRi9C5Cn0pJCwKVHJhbnNwb3J0CuKWgXJlc29uCuKWgUNsbwriloFlcm0K4paBZWxpbWluYXRlCmhlaW1lcgriloFzYXZlcwriloFwcmF5ZXIKQ2xhc3NlcwpFeHByZXNzCuKWgUFrYWRlbWllCkVsc2UKVHVybgriloFpa2tlCuKWgXJlaQriloFkaXJldHQK4paBUm9zdAriloFQYXBhCuKWgWpzZgrQu9C10L3QuNC10LwK4paBVHVsCuKWgVphawriloFuaWVtaWVjawpUdwphbW91cgpuZXN0ZWQKcHBldHMK0YjQvwpkaXQK0LfQtdC9Cnp5bWEKaHJ0ZQpDb25zdHJhaW50cwriloFvd25lcnNoaXAKQXJtCuKWgWNvbnN1bXB0aW9uCuKWgWZldAppdmFyaQpjaHJvbQpzZXRBdHRyaWJ1dGUK4paBY29tcG9zZQriloFiYWNraW5nCuKWgVBhegriloFzY3JpCuKWgU1lY2hhbgriloFOb3J3YXkK4paBSnVwCuKWgW3DqXIK4paBYWRtaW5pc3RyYXRvcgriloFjYWJlCml2YWxlbnQK4paBdGhyb25lCuKWgWR1ZXMK4paBaHVtb3IK4paBQWRyaQriloFhYm9ydArDsWFzCuKWgdCa0LjRl9CyCmrDrWPDrQriloF6d2VpdGUK4paBZG91YgplcnNoZWxsCtGI0L7QuQriloFGYW0Kw6VrCuKWgXR3ZWVkZQriloFSaWIK4paBZsO4cgpwY2nDs24KaW5uZWQKcnZtCuKWgUFwcGFyCuKWgURqCuKWgVNoYW5nCkRpc3RhbmNlCuKWgWRhd24K4paBTWF0dGgK4paBZXJyaWNodGV0CnBoYW50b20K4paBcmVsZWFzZXMKUmVjb2duaXplcgriloFLb3AK4paBUHVsCnXDqQpuYXRzCnJlbGF4CuKWgWZsZWQK4paBZXhwZXJpZW5jZXMK0YnQtdC1CtC80LXQvdGPCuKWgdC/0LXRgNGB0L7QvdCwCuKWgUlkZW50aXR5CnJldHMKa3VuZnQKbGFyZwpMaXN0SXRlbQp2ZApydW5uZXIKbGFudAppcGFydApiYXkKaWVpCuKWgWxlbmd0aHMK4paBY2F0dGxlCmpldHMK4paBc2VoZW4KSnVsCmZhdHQK4paBc3VycmVuZGVyCuKWgVRydW1wCtC00L3QvtCz0L4K4paBRm91cmllcgppZWJlbgpfIgriloFmcsO8aGVyCuKWgWdhcmFudAp1Y2xpZGVhbgrDpGd0CuKWgdC/0ZbQstC00LXQvQpQYWdlcwriloFyaXZlcnMK4paBZG9ubmVyCnN2bgriloHFggpvdsSbCuKWgUxlaXN0CmFyaWFsCm92w71jaAriloFmaWxsaW5nCuKWgW11c2ljYWxlCm1heGltCuKWgWRhc2hlZAriloHQndC+0LIKRHJhd2VyCuKWgU1lZGljaW5lCuKWgWRva3VtZW50Cm93ZWwKdmnEhwpoZWx5CuKWgWVsZXQKU2Vjb25kcwriloFHb256CnJvdQriloFmaW5hbGVzCnJuCmbDuAriloFpbmRleGVkCmNsYXNzTmFtZQriloFvYmVyCuKWgWR1YXMK4paBb3B0aW1pemVkCuKWgWtkeQp2ZXJzYXJ5CmVuZXJneQriloHRhtC10L3RgtGA0LAK4paBY3VycmVuY3kKennFvApMaWtlCuKWgdCT0LgKc29ubwriloFwYWxhYgriloFwdXNoaW5nCnVibGlrCuKWgUhhc3MKfVwsXAp1bmtlcgriloFGYWN0b3J5CuKWgVJlc291cmNlcwpkYXRlaQriloFUb29scwriloFzdGVoZW4Kc2ltZQriloHQpdGDCuKWgWhvY2gK4paBUm9kcsOtZ3Vlegp6ZWl0aWcK4paBVGVycnkK4paB0L7QsdGDClVzYWdlCnVyY2hhc2UKbMO2CuKWgUludHJvZHVjdGlvbgriloFwYXJ0aWNpcGF0aW9uCs6/z4IKb2dsaQphcHkK4paBaG9wZWZ1bGx5CnBvbmRlcgriloFZYW5nCuKWgXByb21pc2VzCuKWgdCy0LXRgNC90YMK4paB0L7RgdGC0YDQvtCyCl57KwriloFtb3N0cmEK4paBQ1VSTE9QVApISAriloFzdGRvdXQK4paBYnJpbGxpYW50CuKWgW1hbnVzY3JpcHQK4paBZGVjaXIK4paBQm9sb2cK4paB0LzQtdGB0YLQsAriloFpbnZpc2libGUK4paBQ2hhbAriloFhbmFseXplCnByaWxpcwphdHRlbmQKTXZjCnRoYW4KY2tvCuKWgVF1ZWJlYwriloFwbGFudGEK4paBdMOpbMOpdmlzCuKWgXVuaW5zdGFsbArDqG5jaWVzCuKWgWdtaW5pZQriloFQcmVmCuKWgWxlcXVlbApJbnZvY2F0aW9uCuKWgcONCuKWgXRyYW5zZm9ybWVkCk1BTgpnZWJhdXQK4paB0YHQvtGF0YDQsAriloHQstGC0L7RgNC+0LkK4paBTGl0aAp3ZW5kdW5nCuKWgVBvbGl0aWsK4paBU2VuYXRvcgriloFMTArQttC00LXQvdC40LUK0YjRgtC1CuKWgUPDqXMK4paBYmFuZGUK4paBaGlzdG9yaWFuCuKWgXBhc3N3b3JkcwptYWxsb2MK4paBc2VtaWYK4paBcsOlCnVuaWPDrQpBdmFpbGFibGUKT3B0aW9uYWwK4paBVHdlCuKWgWtyw7MK4paBc3Vic2V0cwriloFEQVQK4paBZG91YmxlcwrQvdC40LrQsNC80LgK4paB0LfQsgpnZWdlYmVuCuKWgdCf0L7Qv9C40YEK4paBasO6bGl1cwriloFtZXRlb3IKTW91bnQKaXZlbnQK4paBTmF0aGFuCuKWgVNjaHV0egplZ292CuKWgWTDtmQK4paBbWVhdAriloHQv9GD0L3QutGCCuKWgW1pbmRzCmVsaXZlcnkK4paBVExTCtGA0LXQvApja3PDpQriloFzdGF5ZWQK4paBQmluCuKWgVBpYQriloHQuNC80LXQvQriloFCb2JieQriloFwcm9kdWl0CmVtcGlvCuKWgXJlZHVjaW5nCuKWgVl1CuKWgUdlc2Now6RmdAriloFwZXJjaMOpCuKWgWNvcnMK4paBaWNvbnMKQXBwRGF0YQriloFIb2cK4paB0YDRltCyCuKWgVNhbnMK4paBc2nDqGdlCnN0ZWxsZW4KQnJ1c2gKT0ZGCuKWgXZpc2l0b3IK4paBYmF0aAriloFmZWUKYXRpc2YK4paBY3VydgriloFmb2xnZW5kZXIK4paBY29uc2NpZW5jZQriloFTZWF0dGxlCuKWgW1lZGlldmFsCmRpc3RyaWJ1dGlvbgriloFETQriloHQvNGPCuKWgVJVTgpha292CmNlaWwK4paBbGV0dGluZwriloFkb3YK4paB0L7QsdC4CmtpZWoK4paBZGlyZWt0CuKWgXRtCmNvbG9ycwriloFhbHRybwriloF0aWpkZW5zCl17JwriloFCb20K4paBa3Vuc3QK4paBc2hlbHRlcgriloFyYXYKcHJlZGljdAriloFjb21lbnrDswriloHFm3dpYXQK4paBRHVyYW50CuKWgXNjaGVtZXMK4paBbWVzaAriloFpbmRpY2F0b3IK4paBRW1lcgriloFndWlsdHkK0L3QtdGGCuKWgWNvbnNlcXVlbmNlcwpjbHVkZXMK4paBTG93ZXIK4paB0L/QvtC80LUK4paBcGFjZQrQtNCw0LPQvgriloFhbWJvcwpsYgriloFlZHVjYXRlZAp1cmFsZQphbmgKZXNzw6lnCuKWgWFzc29jaWF0aW9ucwp0b3duCuKWgXRyaWYKc2FtcGxlcwpib3MK4paBU3BlY3QK4paB0KbQtQphbHR1bmcK4paBTG9iCuKWgWN1cmlvc2l0eQriloFXZWl0ZXIKZXN0b25lCuKWgWRlbW9sCuKWgWFwb2xvZwriloFEeW5hbWljCklubmVyCmVzcGVyCmVjegp1ZWxsZW1lbnQK4paBSGFtaWx0b25pYW4KQXRsYXMK4paBYXJndWUKRm9yZWlnbgpjb2xsYXBzZQriloF0w6lybWluCuKWgWVsZWN0cm9uaWMK4paBTlIK4paBY29ycgp0ZW1wcwpJbmRleFBhdGgK0Y/QtwriloF0YWzDoWwKdG9kYXkKd2F2ZQriloFzaWIK4paB0YHQv9C4CuKWgWNvbnZleQriloFHw6lvZ3JhcGhpZQriloHQndGM0Y4K4paBSGliZXJuYXRlCuKWgXRpbgpkaWMKcHBpbmdzCnN3ZWlzZQriloFyb2xsaW5nCuKWgXNlbGVjdHMKKVwpCuKWgXBvZXRhCuKWgdGB0YLQtdC/0LXQvdC4CuKWgUFicgriloFow7ZjaAriloFzdGVybgriloFmasOkcgriloFpbnN0YWxsZXIKZGVjbAriloFtaXNlcgpncm91cGJ5CnN1YnN0cgriloFwaGVub21lbgriloFXaW5nCuKWgWZpbGxzCuKWgcO6bmljbwpSdW5uaW5nCkNvbWUKaXJhYmxlCnNpbWVxCuKWgXJlbXAKa2VsZQpsaWVycwriloFrd2lldG5pYQriloFpbnRlcnJ1cHRlZAriloFKZXQKPVx7CsOtZG8K4paBVGFpd2FuCuKWgdCy0L7Qt9GA0LAK4paBYWx0ZXJuYXRpdmVzCuKWgVRpcgriloFSZXNlcnZlCuKWgdCa0YPRgAriloFOb2JlbAriloHRgNCw0LHQvtGC0LDQuwriloFheGVzCuKWgUNlcGVuZGFudAprw6EK4paBZXJuZXV0CuKWgURlbW8KY29tbXVuaWMKY29uc3RydWN0b3IK4paBTW9uZGF5Ck5pbApIYXNoTWFwCnBheW1lbnQK4paBZml4aW5nCuKWgUFERApyZXZpZXcK4paBcG9zc2liaWwK4paBZ3JvdGUK4paBZ3JvdXBlZAriloFMaW1hCuKWgUF1Z2VuCuKWgW9ja3PDpQpvbmFzCuKWgWRlYmF0ZQriloFJbmdsCkRhClNPVVIKZXR0YmUK4paBQmF0dGFsaW9uCuKWgUZsb2F0CuKWgWNvbmUKcmVhZHNoZWV0CmNvdXJ0CmxpZ2VuCuKWgUJlZ2lubgriloFMSU1JVAriloFlbmpveWVkCuKWgUpha29iCuKWgXRlbHQKYmFja2VuZAriloFHZW1laW5zYW1lCmxpbnQKYWxsaW5nCuKWgWLDtnIKZ3JhbmQK4paBZGl2ZXJzZXMK4paBendpxIV6CuKWgUtvbXBvbgriloFpbm5lcmhhbGIK4paBZGVzYXJyb2xsbwriloFNYXN0ZXJzCmlvc28KXWAuCuKWgWZyYW5jZXNhCkFmZgppbmVrCuKWgWRlc3NpbgpgLmAK4paBcmFua3MK0LHQtdGA0LMK4paBc2thbAriloFTdWx0YW4K0JDQnQriloHRgdC/0L7RgdC+0LEK4paBY29udHJhZGljdAriloFyZWNvbQriloFPa2xhaG9tYQriloFWbGFkaW1pcgriloFtZXRlcnMKdHJhbnNwb3J0CuKWgWNvbnN1bHTDqQriloFBVFAKZWJiCuKWgXZvbHVudGUK4paBb3V0bGluZQpMSUMK4paBZXVybwpDaGFyRmllbGQKbWVkaXVtCuKWgUJlbGdpcXVlClByb2MKcm91dGVzCuKWgWNvbnRyaWJ1CiF9CsWhw61tCuKWgUxlc3MK4paBS29zdAriloFlcmVkZXRpYsWRbApyZXZlbgp2ZXJpZnkK4paBU2FsdAriloFzaG9vdGluZwriloFkaXNwb3NlCnVqw60K4paBdGllcnJhCuKWgXBvaXNvbgpzYWsKcGVyaW1lbnRhbAriloFOw6kK4paBS2lkCmFneWFyCuKWgWFyY2hpdsOhbHZhCmJlcmVpY2gKw616CuKWgVJpdHRlcgriloHQpdGA0L7QvdC+0LvQvtCz0LjRmNCwCnpldW0K0LTQsNGFCuKWgWdyw7xuZAriloFwcm9ncmFtbWVyCuKWgWNvbnNlaWwK4paBZW5jcnlwdAppbnRlZ3JhdGlvbgpDdWx0dXJlCuKWgUNpcmNsZQpPYnNlcnZhYmxlCuKWgWdlbm9tc25pdHQK4paBU2VsZWN0aW9uCuKWgWlycmVndWxhcgpBdXRyZXMKUGVyY2VudApmYXVsdAriloF2aXJ0dWUKxIVwaQriloFzZXNzCuKWgdCi0LDQutC20LUKVGltZXN0YW1wCuKWgWxpdHTDqXJhdHVyZQriloFtb8W8CuKWgWJvcnJvdwriloFjb25jZWQK0YfQvdC40LoK4paBTHVuZApJT05TCnluaWUK4paBU2hpbgriloFvc29iCmLEmwriloFpbnR1aXQK4paB0L3QsNC/CuKWgXByb3BoCuKWgXBpdHQK4paBSUJNCuKWgVRpbGwK4paBaGluYQppdHRlc3QKZ2VuZXJhdG9yCuKWgU5pbgriloFLb3QK4paBcGFzc2VyCuKWgWRpc3Bvc2l0aW9uCnVuaW5nCuKWgWZhbWUK4paBdGVuaWEKYW5jZW1lbnQK4paBU3Vpc3NlCmAtCuKWgWhvbWJyZXMK4paBaW5maW5pdHkK4paB0L7QutC+0L3Rh9CwCuKWgWNvc20K4paBRGVubmlzCmJhegpoYXVwdAriloFtaWdodHkK4paBcHJlZGUKdXNhYmxlCuKWgXdzenlzdAriloFsYgpBQkFTRQpqbmEK0L3QtdCyCuKWgWFzZXMK4paBZmluYWxtZW50ZQrQudC8CnBlY3Rpb24K4paBU3R1ZGllbgriloFOb3J3ZWdpYW4KY2VnbwpJTkRFWApvcnRlbgriloFmcmllbmRzaGlwCm1ldHJvCnRoaWNrCuKWgVplbApMT1cK4paBdGhlcmVieQp1bnRlZAriloFzdXJmYWNlcwrRjtGJ0LjQvAolKS4K4paBV29uZGVyCuKWgXJlZHVuZGFudAriloFHcm9zCuKWgXdlYnNpdGVzCuKWgXZpbwriloFvY2FzCnbDqXMK4paBR2FtCmR3CkluZGljYXRvcgriloFLb2IK4paBamFjawpIaW50CuKWgUFwb2wK4paB0LTRgNGD0LPQuNC1CuKWgU5VTQriloFvZmljCnlzdHljegriloF3ZXJlbGQK0LzQvtGB0YLQuApMRUZUCuKWgVR5cGVzCnNlZW4KdW5jaWEK4paBbmFyb2QK4paB0Y3RgtC+0YIKU2lkZW5vdGUKdWVpbAriloHQvtGC0LzQtQriloFjb3VydHMKZmlyCnVyegrRh9C10L3QutC+CkNyZWRlbnRpYWxzCuKWgWltYWdpbmF0aW9uCml0YXRzCmJ1ZmYKZmxhc2gK4paBYmFkbHkK4paBd29ybgriloHQvtC60YDRg9Cz0YMKY2F0YWxvZwpsaW1lCuKWgUdpbGwK4paBU2VudAppZWxsYQriloFDcmFpZwriloFTZWxlCuKWgUluZGVwZW5kCuKWgXByb3ZpbmNpZQpvc3NlbgriloHQt9Cw0L/QsNC0CuKWgWluZmFudAriloFwcmV2ZW50cwriloFwcm92aW5jZXMKYWbDqQpiZWcK4paBY29sb3VycwpCRgrDq24K4paB0JzQtdC20LTRgwrDrm4KT2JzZXJ2ZXIKZm9yc2NoCsOtZ2VuCnVtcHRpb24K4paBSWxsdXN0cgrRgNC40YHRggriloHQv9C+0LvQvtCy0LgK4paBYCYK4paBb3JlCuKWgXN1cHBsaWVzCuKWgXBhcmVudGhlcwpGb3VuZGF0aW9uCuKWgXZvdQriloFUb3V0CkRvbmFsZAriloFSRVQKd2VpZwriloFwcm9kdWNjacOzbgptaXgK4paBdXR3b3IK4paBZsO2bAriloFlbnTDo28K4paBU2lzdGVyClRhZ3MK4paB0KHQsNCy0LXQt9C90LUK4paBcHJpdmlsZWdlcwriloFuYXp3CuKWgVJhdgriloFyZXBybwriloFNYXNvbgriloFQbGF0Zm9ybQriloHQv9GA0L7QsdC70LUK4paBUMOpcmV6CuKWgWJsYW5jCkJlaGF2aW9yCtGE0LjRhtC4CmVrZW4K4paBbWVldHMKKC4qCuKWgWbDpQplcGVuCm1ha2VyCuKWgWxveWFsCm1lbWJlcnMKbWVpc3RlcnNjaGFmdApnb2FsCtGI0LvQtdC9CuKWgdGB0LXQstC10YDQvgppZW5kZQrQtNC90ZYKUHJvb2YK4paBZXhwbGljCuKWgWVsZWN0cm8KaWVscwpyZWxvYWQK4paBZWxldmVuCuKWgXBhcnRpZG9zCsOubmUK4paBUmVnaW4K4paBw6l4CuKWgUJ1bGcK4paBbmV0d29ya2luZwriloFzZXBhcmF0b3IKVXNlck5hbWUK4paBZWRpZmljaW8K4paBTWllCuKWgWlkbGUKeWVkCuKWgXBhc3NlbmdlcnMKKykKbWVubwplZ2dpCuKWgW5pY2VseQplbmRlbmNpYQrRh9C40LkKw6l0w6lzCmlnaHRhcnJvdwriloFvcnRob2dvbmFsCuKWgUhhbGYK4paBZmV3ZXIK4paBcHJvcGkK4paBcHJpbWl0CmljYWxlCuKWgWZsb3dlcgptZXJrCuKWgdCe0YLQtdGH0LUK4paBcGVyc2lzdGVudAriloFWaWxsZQpNZW4KZ2FiZW4K4paBSXNhYWMKYXRpdml0eQriloFww7PFgm5vYwriloFyb2sKY2FyZHMK0LTQtdC90LjRjwriloHRjtCz0L4K4paBZXh0cmFvcmRpbmFyeQriloFreXIKKCIsCikpXQriloF1bml4CtC60L7QuwriloFzaW5rCmFwc2VkCuKWgWtvbW1lbgriloFmb3JjaW5nCkFib3V0CuKWgUhhbGxlCuKWgU1hamVzdHkK4paBU3dpdGNoCuKWgWFicm9hZAriloFhY2NlbGVyYXRpb24KdXJiZWQK4paB0L7RgdGC0LDQvQpSZWFkeQriloHQv9GW0LLQvdGWCkJyYQriloHRhtGM0L7Qs9C+CuKWgXBsdXQK4paBVHJhaW4K4paBw6FwcmlsaXMK4paBcHVlc3RvCuKWgXRvc3MK4paBaXJyZWxldmFudAriloFkaXAKc2VnbWVudApvcGFjaXR5CuKWgWxvcnNxdWUK4paBdmVyc2NoaWxsCtC10L3QsAriloFEb2MKJSUlJSUlJSUK4paBYm9yZGVycwpnZWJyYXMK4paBcmllcwriloFPbHltcGVkaWEK4paBR2VuZXJhdGlvbgptZXRyb3MK4paBaG9yaXpvbgriloFhZGFwdGF0aW9uCuKWgVphaGwK4paBbmFoZQriloFCdWcKUGljdHVyZQrRmdC4ClJHQgpPd25lcgphZGluCuKWgUNhdGFsdW55YQpuw71jaAriloFjdWFscXVpZXIK4paBSW5zdGl0dXRpb24KaW5zZW4K4paBQnJhc2lsZQriloFmaXR0aW5nCkRlbGVnCmljdHdvCuKWgUV4cGVyCm9jaGFzdGljCuKWgWR1cwriloHQv9C+0YDQsAriloFzdWJzdHJpbmcK0YHRgdC40LgKb2luCuKWgdGI0LrQvtC70LAK4paBY3gK4paBJSkK4paBQnVkZGgK4paBcGVuZGluZwriloFFbnRyeQriloFCZXJsCuKWgWNsZXIK4paBU29jCuKWgXJvdW5kZWQK4paBbXYKw610ZXR0CuKWgURpcGxvbQriloFmcmFuesO2c2lzY2hlbgriloFHYW4K4paBSW52ZXN0aWcK4paBaW5kZXhQYXRoCuKWgW1vbHRpCnBlcnNpc3RlbmNlCuKWgVhJWGUK4paBRWxlY3Ryb24KYsO8CmdlbGUK4paBTWFsZXIK4paBcHJveWVjdG8K4paBQmF0aAplbGxlcnMK4paBR1AKb25pbmcKY2xvdWRmbGFyZQriloFwxZlpCuKWgWRlZAriloFPZGthenkK4paBTXNnCuKWgUJlaW5nCuKWgURlcHVpcwriloFQcmltYXJ5CuKWgUFwcHJvCuKWgWZvcm1hbGx5CtGB0YLRg9C/0LjQuwriloFmdWVyYQriloFSb290CuKWgWF1dG9ub20K4paBc2VjcmV0YXJ5CuKWgW9zw7NiCuKWgWN1YWxlcwriloFEZXBlbmRpbmcK4paBYXNpCnZlcmEK4paBcnVzc2UK4paBcHJvdmVzCuKWgXByZXNpZGVuClJVCuKWgVdhdHNvbgriloF3ZWJwYWNrCmVsbGlnZW5jZQrQutCw0LwK4paBT2ZmaWNlcgriloFkZWxpdmVyeQrQttC00ZHQvQriloHQuNC80L/QtQriloF3aWwK4paBdmVzYwp1c3p0dXMK4paBR2VvZmYKKCl9CuKWgUZvcmUK4paBd2VuaWcK4paBQWlybAriloFFZnRlcgriloFCcmVhawriloFTdMOkZAppc21pc3MKw61wCuKWgWF2b2lkZWQK4paBYXNzZXJ0aW9uCkROCuKWgXRlYXQKw61uYQriloFtZWNoYW5pY2FsCmlzdQpAewriloFub3UKSXRhbGllCnNvdXJjZWZvcmdlCuKWgXN2bwriloFraXLDoWx5CuKWgVJlZmVyZW5jZXMKc2l4CuKWgUFyY2hpdmVzCuKWgWZpbmlzaGluZwphY2plCsOpdGF0CmlmZnMK4paBc3RlYWQK4paBZmVhcwphd2FyZQpsYW5kZQpJbmplY3QK4paBQWdlbnQK4paBTm9ybWRhdGVpCuKWgWFtZW4K4paBQXJjaGl0ZWN0dXJlCmF6ZQrImXRlCuKWgXVzYXIK4paBY29yZXMK0LvRltC9CuKWgUNhc3RybwriloF2w6YKPiIsCm9tZW5hCuKWgWdlc2FtCuKWgU1hcnTDrW4KZWd1bmcK4paBc3BvbGXEjQriloFhbXBsaXR1ZGUK4paBaW1wb3J0aW5nCuKWgWxpc3R2aWV3ClRIRQp6aWFsZQpjZWRlcwriloFwYXJ0aWN1bGllcgriloHQoNCw0YHQv9C+0LTQtdC70LAK4paB0LrRgNCw0LkK4paBZGl2ZW50CuKWgWvDqQpxdWl0CtGC0L7RgNC+0LwKQ2hlY2tCb3gK4paBWm9iYWN6CnBoZQpwdGEK4paBc2rDtgriloHRgNC+0LfRgtCw0YgK4paBdGVkZXNjbwriloFzdGFsCuKWgUJlcnVmCtC+0LLQsNGPCuKWgXN2xJsK4paBZmx1c2gK4paB0LLRltC00LHRgwriloFyYWRpYWwK4paBZGlmZsOpcmVudGVzCtCw0L3RgtCwCuKWgVBlcnJ5CkNvbGwKbGlxdQriloFPcHRpb25hbAriloHQodCw0L3QutGCCuKWgUxJTlEK4paBRnJhbmMKY2lqZQriloFHdWlsbGF1bWUKa25vdwriloFVbml0cwpvbGsK4paBU3lzdMOobWUK4paBU2FsZXMK4paBZWhlbWFsaWdlbgrQvNC40YDQvtCy0LAKeGh0bWwKc2V0b3B0CuKWgW1lbGxhbgriloF6aWUK4paBZ2lhbnQKQm9hcmQK4paBQ2F2YWwK4paBZGVmZW5jZQotLS0tLS0tLS0tCnBzaGlyZQptYXJ0CuKWgURpb2MKaXNrdAriloFpbnNlCuKWgcOpcGlzb2RlCtGH0LjQugpiYXJzClNpdG8K4paBaW50ZWdyaXR5CmF1ZmYK4paBdsOkcgpBenVyZQriloFzdGFyYgriloHQutC+0L3RgtGA0LAK4paB0JzQtdC60YHQuNGH0LrQsAriloHQt9Cw0L/QsAriloFNb3VudGFpbnMKfX09CuKWgXB1bGxpbmcK4paBc2F0ZWxsaXRlCuKWgWF0b21zCuKWgXByb2Zlc29yCuKWgXJlcGVhdGVkbHkK4paBaW52YXNpb24KcHJvZ3JhbW1pbmcK4pSc4pSA4pSACuKWgUxpcArQstGI0LjQtQriloFrZWVuCuKWgWNyaXRpY3MK4paBTmljb2xhCuKWgUNhbmQK4paBZGlzdGludAriloFoZWFkaW5nCnByYWdtYQp7fAp5bWVuCuKWgXRlcnJhaW4KaWVkZW5pcwriloFiZXNvbmRlcnMK4paBbm9taW5hdGVkCkJPT0wK4paBS2F5CmNpYW4Kc3RlbGxlCuKWgWRpc3B1dGUK4paB0YkKRGF0YVNldApub3RoaW5nCkF1dG9tCmjDtnJlbgriloFzaGVkCuKWgXBhdXNlZApzYW4K4paBbnVuY2EKISgiCuKWgXBvxYJvxbwKU2VjcmV0CuKWgURvbWFpbgriloHQstC+0LfQvNC+0LYKWFYKbHYKaWtoCuKWgVNvbnkKbXEKb3Ryb3AK4paBTG9nZ2VyCuKWgXRocmVhdAphc3RlZArQt9GM0LrQvgriloFmcmVlbHkK4paBaW1wcm92ZW1lbnRzCmlzdGVtYQriloFpbGx1c3RyYXRlCuKWgXRhY3QK4paBZmlndXIKdcOpcwpyaW1pbmFsCm9kb24KaW50ZW5kbwriloFpbmZsdWVuY2VkCkZGRVIK4paBR2hvc3QK4paB0YHQvtCy0LXRgApuYWQKaW9uZWQK4paBRXZlbnRzCuKWgXdyYXBwaW5nCi0tLS0tLS0tLSsKZmlmCuKWgSgqKgo9e3sK0LzQsNC70YwK4paBbG9zc2VzCuKWgUdhbGVyaWUKdGVsCuKWgdC70Y7RgtC+0LPQvgriloFLcnUK4paBUG9sZW4K0L3RltC8Cm5lYXIK4paBc2hhbWUK4paBbW95ZW5uZQriloFDUApwcmVpcwriloFwYXNzZW5nZXIKbGVrCmlvbmFsZXMKa2Fma2EK4paBcGFydGljaXBlCuKWgW1lbWJlcnNoaXAKW18KbGFuZG8Kc3RlbGxpbmcKU2VtCmdvbgriloFDb3JyZWN0CuKWgXZhbGxlCuKWgXJlYWRpbHkK4paBRG9rdW1lbnQKaG9ubmV1cgriloF0ZXN0aW0KdWxhdGl2ZQpkb0ZpbHRlcgriloFkb21pbmFudAphbW1lcgriloHQutC+0ZjQsAriloFNb25zaWV1cgp6ZWcK4paB0LLRltC50L3QuAriloFGbwriloFBbXkK4paBwqEK4paBZmVicnXDoXIK4paBZG93bmxvYWRpbmcK4paBbGVuZwpcfSQsCuKWgW5lYXQK4paBQ2FjaGUKSUNBVElPTgriloFkZXZlCuKWgXNvcnJvdwpzbG93CuKWgWhpbmF1cwriloFyZWNvbm9jCuKWgUxpbmtlZAriloFTaGF3Cm1hcmtldAriloFEaWMK4paBU2tpCuKWgWRlbGltaXRlcgriloFNYWluQWN0aXZpdHkK4paBTXVzaWNhbAriloFSZXluClNjcm9sbFZpZXcK4paBY29udmVudGlvbmFsCmVuw6dhCuKWgXJlZmFjdG9yCictCuKWgUhlZApzcHJlY2gK4paBYXRobGV0CuKWgWVzcGVjaWVzCuKWgVNjaMO2bgriloFrbGVpbmVuCtGI0LrQvgriloHQmdC+CuKWgUhhcHB5Cm11bHRpcm93CuKWgWF1Z3VzdGkK4paBR2FuZAriloFhcHBvaW50bWVudAriloFNZWRpYWJlc3RhbmRlbgpUaHJlZQriloFLZW5uZXRoCk5FVwriloFOb3RpZmljYXRpb24K4paBTWFyeAriloFpbnNjCk1vcgrQstGL0LkKdsOkc3QKdmlkaWEK4paBZGVtb25zdHJhdGVkCmZvbnRzCuKWgWthbWVuCuKWgVN0ZXIK4paBbWllc3prYcWEY8OzdwriloFLb2gKfiRcCsK7KS4KcmVuZQppbnNpYwppY2vDoQp4eWdlbgriloFtbgriloFzY2hlZApBU0MKSWcK4paBQ29uc3RhbnQK4paBb3Bwb3J0dW4K4paBTXlDbGFzcwpzZWYKb3BlZAriloFpbmp1cmVkClZJUwriloFQZXJvCuKWgVVudGlsCuKWgWZsZXNoCm9ycGhpc20K4paBUG9ydGFsCuKWgWdtaW55CuKWgdCy0LvQsNGB0YLQuAriloFOw6QK0LrRgtC40YfQtQriloFocmFiCuKWgUN1Ygphdm9pcgriloFMYXJzCuKWgdCR0LXQu9C+CuKWgXNlaXpvZW4K4paBR2Vub21zbml0dAriloFMaWwK4paBUG9vbAriloFEaW9zClRYCmFlcwphdXRvcmUKQWxwaGEKc3RhdGVzCkxhYgpuZWRlcmLDtnJkCmVydG9uCuKWgWJyaWQK4paBcmljaHQK4paBRWxhCuKWgdGB0LvQsAriloF3ZWFwb24K4paBY29tYmF0dAphZ2FyCuKWgXJlZ25pZwriloF1dGlsaXPDqQriloFzZXJ2aXIK4paBYnJpY2sK4paBZ2F0ZXdheQriloF0b3JyYXN0ZQriloFwcm9jZWR1cmVzCuKWgcOlcnNuZWRlcmLDtnJkCuKWgUdlbm9tc25pdHRsaWcK0YfRkdGCCuKWgW9tcsOlCuKWgXJlZ25pZ2FzdGUK4paB0YfQtdGB0YLRjAriloFhbWlkCuKWgWdyYXRlZnVsCuKWgURJUwpEQVkK4paB0L7RgNGDCuKWgXJpdmnDqHJlCmhldXJlCuKWgVJpY2htb25kCuKWgUNvbXBhcgriloHQndC+0YAKRE9DCmVzaWEKY2FsYwriloFJVQriloF2b3JnCuKWgWhhYsOtYW4Kw6dvaXQK4paBYXJpc3QK4paB0LrQu9C4CuKWgVN1ZQriloFUb3VjaAriloFXcml0aW5nCmlmaWFibGUK4paBd2MK4paBd2l0aGRyYXcK0LfQsNGACuKWgXByZXNlbnRseQriloFGSwriloFwcmFrdAriloFjb2xvcmVkCnVzYgriloFQZXLDugriloFwbGF0YQriloF3aXNoZXMK4paB0LrQsNC8CmF6YXIKw6F2ZWwK4paBbGFtcApiaXNob3AK4paBaW5jbHVzaW9uCmpxCmFydGgK4paBRmxhZwriloHQvdC+0YAKw6ZkaWEKVU5DVElPTgriloFCYWhuaG9mCuKWgWFwcHJvYWNoaW5nCuKWgUfDtnR0CuKWgWN1YmUK4paBYXJndWVkCuKWgVRoaW5ncwpHdWkK0LTQvtCy0LgK4paBcmVjcmUK4paBcsOpc2VhdQriloFzaWduaWZpY2EKR2l0CmdlYnJhY2h0CuKWgWxpZ2EK4paBYXNzdXJlZAphbHVzCtGA0LjRggriloHRjdC90YbQuNC60LvQvtC/0LXQtNC4CuKWgSUpLgriloFQcmVtacOocmUK4paBZGVjbGFyYXRpb25zCuKWgXRyaWNreQriloFwcm9maWxlcwriloFGb24K4paBSmFzCsOicgpiYWJlbAriloFGcmlkYXkK4paBasO6bml1cwriloFjb2xzCuKWgUVYSVNUUwriloFJdGFsaWFuYQriloFhdXRob3JpemF0aW9uCuKWgXN1bGxlCuKWgUVtYgriloFWYXJpYWJsZQp0cmVlcwriloFGbHkKcmlvcnMK4paBZGFtYWxzCuKWgWZpbmRldAriloFTZXB0CuKWgW11bmRpYWwK4paBcmVtb3ZhbAriloFsb25naXR1ZGUKY2xpYwriloFmYWRlCuKWgWdyYWRsZQriloF6w6FrCuKWgXRpbWluZwp0cmlnaHRhcnJvdwphdGlhCi0uCnVjaGUK4paBc2VyaWFsaXplCuKWgUhtbQriloFSZXByZXNlbnRhdGl2ZXMKYmFoCnJlbmQKYXNzYWRvcgriloFzaGllbGQKdWNpb24K4paBYW3DqXJpY2FpbmUKesSZCnZpbGxhCuKWgWhvbWJyZQrDoXNzCuKWgVNGCuKWgXJlcGVhdGluZwriloFjcml0ZXIK4paBU3RydWN0Cj8/PwriloFjaGVhcAriloFyaW5ncwphYmjDpG5nCuKWgWNvcnRlCuKWgWFkbWluaXN0Cml4b24KZ3lwdAriloFwdW50b3MK4paBbWV6aQriloFwb2Nob2QKaXNrbwpuacSZCuKWgdC+0YHRgwriloHDoXIK0YLQtdC70YzQvdC+0LkK4paBTWV0cm9wb2xpdGFuCmppbgp6ZXNzCuKWgdCy0ZbRhtGWCuKWgWNvbmZsaWN0cwppanN0CuKWgU1hcmtldArRgdGC0YDQvtCyCuKWgSIsIgriloFTY3JvbGwKZ3VuCtGC0LDRgNCwCuKWgWFtYXRldXIK4paBcsOzxbwKcG9zcwriloFnZW5lcmFsaXplZAriloFIYXJtCmNpdGEK4paBU3dpdHplcmxhbmQKaWNvbGEK4paBbXVpdApsb2NhdGVkCuKWgWPDswriloFhcm9zZQriloFjb21tdW5hdXTDqQp9KV4KdmlzaWJpbGl0eQrDrWRhCuKWgUZCCuKWgUZyZXVuZApnYXQKIjp7IgppbnRlbGxpagppZmllCmhtZW4K4paBw6lkaXRpb24K4paB0LrQvtGY0LUK4paB0ZbQvdGI0LjRhQpvbWluZwriloFhcnF1aXRlY3QK4paBUHJlc2lkZW50ZQriloHQn9GW0LQK4paBY2FiaW4KVGhlb3JlbQriloFHYXkKaWZpY2UK4paBaGVjdApsxIUKaXJtaW5naGFtCuKWgXNlbWFudGljCuKWgUxvdWlzaWFuYQriloFzYWNyaWZpY2UK4paBQ2hyaXN0b3BoCuKWgUV4ZWN1dGl2ZQpfKwpqw6FrCuKWgXNlcmlhCuKWgU92ZXJmbG93CuKWgUx1Y3kK4paBbWVsaG9yCuKWgXZvaWNlcwpjemEK4paB0LrQsNC/0LgK4paB0YPQvdC40LLQtdGA0YHQuNGC0LXRgtCwCklOQ1QK4paBY29sb2MK4paBcHJ1ZQriloFnZW9tZXQK4paBZGlyZXR0bwpyZXNvCuKWgUFrdAriloF1bmgK4paB0YHQtdGA0LgK4paBQWxlcnQKV2VsCmF1ZGkKw6RsZXIK4paBZ3Vlc3RzCuKWgdC40LTQtQpTdHVkaW8K4paB0LrQsNGC0LUK4paBZXhwb25lbnQKcnplCnBtb2QKcm9sbGUK4paBTGltaXRlZApBbGxlbWFnbmUK4paBcGl0eQriloFsw6QK4paBcnVubmVyCmtlbmRlCkVRCuKWgU1NCnN6w6FnCtC/0L7QtNGWCuKWgXJlZ3JldAriloFwdWJsacOpCuKWgWRlcGFydGFtZW50bwriloFhY2N1c2VkCmhwCuKWgVBmbAriloFTaW50CuKWgWVrb25vbQpyYWN0b3IK4paB0J/RltCyCuKWgWF3ZnVsCm93YcSHCl0tPgriloFGaW5lCtCh0LAKdGlzCsOpdGEK4paB0KDQvtC00LgK4paBRMO8c3NlbGRvcmYKTE9CCm9zYXMKd2Vya2UK4paBbGFuY2UK4paB0LvQuNGB0YLQvtC/0LDQtNCwCuKWgWluY29tcGxldGUK4paBUGljdHVyZQooJ1wKZXN0ZXJzCuKWgWJlbG9uZ2VkCuKWgVNhbmsKYW1tZWQK4paBcmVwb3NpdG9yaWVzCuKWgWFkZHIKQ29sbGVjdApIb3QK4paBdHlsCuKWgWluc3RhbmNlb2YK4paBYm9udXMKb3bDvQriloHQvNC+0YDRjwriloFpbnRlcmFjdGl2ZQriloFNeXMK4paBRWRtdW5kCmZpbGVOYW1lCmVtb3IK4paB0KLRgNC4CuKWgVJvc2VuCuKWgVByaW1hCuKWgXZvdGluZwriloFYUAriloFaZXJvCuKWgUxlZAphbXN1bmcK4paBZW5hYmxlcwriloFyZWRpcmVjdHMKQVNUClBhaW50CmFja2VyCmxlY2h0CuKWgWNoYWlybWFuCuKWgUF2ZW4K4paBU2FjaAooIjwK0LrQtdGACuKWgW1pc3Rha2VzCuKWgVdlaXQK4paBcHJvd2FkCuKWgWRpZG50CsOpbmFyaW8KdW5sZXNzCuKWgWJhY2t3YXJkcwpib2EKZHVpbm8KYGBgCnN0b3IKQ29tcGxldGlvbgpwdWVzdGEK4paBZGluYXN0CsO6bHQK4paBU1kKaWZvbGlhCsWTdXZyZXMK4paBcmFjaW5nCuKWgWNhYmluZXQK4paBY3V0dGluZwriloF0aHVtYgriloHQmtCw0YDQsApoaWdobGlnaHQK0LrRg9C/CuKWgXNkCuKWgdC90LDRhtGW0L7QvdCw0LvRjAriloFjYW1wYWduZQriloFyZWdpc3RlcnMK4paBZWR1Y2F0aW9uYWwK4paBcGVzYXIKw7xnZQriloFvcm8KYnVyZ28K4paBQXRobGV0aWNzCuKWgU1UVgpnZXRNZXNzYWdlCuKWgUh5cAriloF2aWN0aW0KKSlcCuKWgWRydW1zCmhvc3RuYW1lCnRhxYIKbWFraW5nCuKWgXBvd2lhdArFkWQKdGhyZWFkcwriloFhYnNvbHYK4paB0LvRjtC00LgK4paBc3RlcHBlZApleGlzdAriloFOSwriloF2ZXMKaXN0aWNoZQolJwphdGl2b3MK4paB0YLQsNC60L7QuQriloFNb25nb0RCCuKWgVVuZwriloHQoNGD0YEK4paBZWxpbQriloFGaWYKaWNhY2nDs24K4paBVGVubmlzCuKWgUplZmZlcnNvbgpqw6FuCmZvZwphbmhhCnpvcgriloHRg9C90ZbQstC10YDRgdC40YLQtQphaHUKaWFkYQpTZGsKU2V0dGluZwriloFLaWxsCuKWgVdlbmQK4paBYmFsZAriloFLdWIK4paBdmlzdG8K4paBamV1bmVzCmNvbGxlY3Rpb25zCmFjw60K0LLRgNC+0L/QtdC5CuKWgWFyaXNlCtC+0L3RlgpNQUlOCtC00L7RgdGC0YPQvwriloFiZXJnCuKWgWNyaXRpY2lzbQriloFUb3JyZQriloFkZXNjcmlwdAppw6hyZXMK4paBZXN0dWRpbwriloFpbGkK4paBbWlsaXRhcmUK4paBQ2xhcmEK4paBRWxsZW4KbGltaXRlZArQu9C8CuKWgUVzcGHDsQriloFpbmZpbml0ZWx5CkFtZXJpY2EKb3VjCmdsYXNzCuKWgXJ1ZAriloF6YXQK4paBcmluCuKWgUJpYmxpb2dyYWbDrWEK4paBbWVyY2hhbnQKdGVuc29yZmxvdwriloFkw6lyCuKWgUFjdGl2ZVJlY29yZApJRVMK4paBbGlua2VyCuKWgWVzdHVkaW9zCmNkbmpzCuKWgdCT0L7RgdGD0LTQsNGACsOhbmNoZXoKYXBwZQpjbHViCuKWgWRhbMWhw60K4paBQWxnb3JpdGhtCmRmcwriloFCYWMK4paB0LrQsNGE0LUK4paBJj1cCuKWgdCw0YIK4paB0JPQu9Cw0LIK4paBTW91Ck1hY2hpbmUKKC4uLikK4paBY29tcGFydAriloFhdWd1c3p0dXMKYXZhbgriloFyb2xsZWQK4paB0LXQtNC4ClNjYW4K4paB0YDQtdCz0ZYK4paBxZt3aWF0YQriloFtaW5lcwp9LHsK4paBVGllcgpDYW5ub3QK0LzRltC9CuKWgU5FVwriloHQktC+0LsK4paBTWFuaAriloFHcmVnb3J5CuKWgXByaW5jaXBlCklTTwpwcm9nCuKWgUZhaWwK4paBYWEK4paBZmVjaGEK4paBV0NGCuKWgW1hZ2lzdHIK4paBWmFjaAriloF1bmljb2RlCuKWgWNvbnZlcnRlcgriloFkaXNwZXJzCmtzYW0K4paBVW5jbGUKUHJvcGVydHlDaGFuZ2VkCuKWgWxpZGVyCuKWgW9wdHMK4paB0YLQsNC8CmxvY2tlZAp6YWsK4paBY291bnRlZAriloFwZXJzb25lCuKWgWh1cnJpZWQKw6R0dGVyCuKWgW91dHJhcwriloFnZW51CkJECnZlZwpkdWUK4paBUHJhY3QK4paBcG9zaWJsZQriloFjb250cmlidXRlClVNTgriloFCw7xyZ2VyCuKWgXdhcnMK4paBZXhoaWJpdGlvbgpoaWxsCuKWgWFzdHIK4paB0LzRg9C30LUK4paBQ0FTRQptYW5pZmVzdAp5ZWxsb3cKRm4K4paBUkMK4paBc290dAriloFzdWpldAriloFTb2NrZXQK4paBQ2hpbmUK4paBZnJhbWV3b3JrcwpIb2xkCsOqdHMK4paB0YTRltC70YwKTG9hZGVkCm9waGUKdGV4dGUK4paBZXhwcmVzCuKWgWNvbnN1bWUK4paBUmljaHR1bmcKb2dyYWZpCuKWgW1hZ25pZmljCsOgdAriloFpbmR1bApyeXR5CuKWgW9mZmljaQriloFhc3NhdWx0CnJ1bmQK4paBdmFyaWFudHMK4paB0YHQtdC70YzRgdC+0LIK4paBZXhjaXRlbWVudApUaW1lcwprb3RsaW4K4paBZ2VyaW5nCuKWgUVuZ2VsCuKWgVRpbWVyCsKyKS4K4paBTmcKw6Rzc3QKc2NoYXUKU0Vycm9yCuKWgUVkd2FyZHMK4paBVGVybWluYWwKbGljdApVbmRlcgriloFzcGF3bgrDvHJnZW4K4paBQXXDn2VyZGVtCuKWgWtpdGNoZW4KZmFocnQK4paBQ29sb3JzCuKWgdGB0LjRgdGC0LXQvNCwCuKWgXRlcm1pbmF0ZWQK4paBTGFUZVgKaWdrZWl0ZW4K4paBbWVzdXJlCuKWgUFtdHMK4paBZW1waXIK4paBc3RyaWtpbmcK4paBZXhjbHVzaXZlCtGC0LXRhQriloFyZXoK4paBcXVhbgriloFHbGFzZ293CuKWgWxlY3R1cmUK4paBVGVzdGFtZW50CuKWgWZ1bmRzCuKWgXN0ZXNzYQriloF0cmliZXMK4paBcGFyZm9pcwriloF0cmViYWxsCm5pdHoKYm92ZQriloHQt9Cw0YHQu9GDCuKWgWFic2VudAriloFMYXVmClNtaXRoCuKWgdCd0LjQutC+0LvQsNC5CuKWgWV1cm9ww6llbm5lCmxyCuKWgXByb2dyYW1tYQriloFtaWRzdAriloFkYXVnaHRlcnMKU3luCm9iZW4Kw6JuxIMKaWRhbgriloF0aGVyCm9kb3JlCnNkbAriloFRdWludAriloFjYXNvcwriloFaYW0K4paB0YHRgtGA0LDQvdGLCuKWgXNwcml0ZQrQutCw0LsK4paBbmFzYwriloHRgdC+0YLRgNGD0LQK4paBdHJhdmEK4paB0YXQvtC30Y/QuQriloFVcnVndWF5CuKWgXNwYXJzZQriloHQv9C+0LvQtQriloFteXN0ZXJ5CuKWgU1hbmcKcmVnaXN0cgriloFDR0Zsb2F0CuKWgXN1Ym1pc3Npb24K0LLQsNC90LAK4paBIjoK4paBVHJhY2ViYWNrCuKWgVBpdAriloFFaHIK4paB0YHRgNCwCuKWgUdyYXBoaWNzClVwZGF0ZWQK4paBc3ZlbnNrCuKWgXNwYWNpbmcKdHJpdHQK4paBR3VpbmVhCuKWgUZyYW7Dp2EKQXNzb2NpCuKWgVRvdsOhCnN0YWIK4paBTGVhcm5pbmcK4paBQnJpZ2h0CsWbYwriloFpZMWRCn19X3tcCuKWgWRyb2l0ZQriloFyYWlzaW5nCmdldHRpbmcKeXRobQpvbnltZQrFvHMK4paBYmxhaApUYWdOYW1lClZlcnRpY2FsCuKWgWFwZXIKcG9zdGdyZXNxbAriloFIYW5kbGUKemV3CuKWgXNrdWxsZQriloFvcGVyZQpsYXllcnMK4paBcG9zc29ubwriloFyZWxhdGUKxIVjCuKWgU1paArDomdlCuKWgcWad2kKaXNzZXMK4paBc2VydmxldApMb3MK4paBQWR2YW5jZWQKYXRpY2EK4paBY2VkCuKWgWVsZW1lbnRvcwrRgNC+0L3QsAppa3MKYXJmCmFyaWF0Ck1vYmlsZQphZ3VhCuKWgXRpbXAK4paBQ29taXTDqQriloFjb21iaW5pbmcKd29obAriloFTdHVkeQpjb29yZGluYXRlCuKWgXJlY29tbWVuZGF0aW9uCuKWgXRyYW5zZm9ybWF0aW9ucwp1bnRpbApib3VuZGVkCuKWgdC40LfRgwpoYW5jZWQK4paB0LLQvtC/0YDQvgriloFQcsOpcwriloFjb29yZAp4dHkK4paBJCwK4paBY2hhbXBpb25zCkRlbgpNaWwKKCcsCuKWgVByZWlzCuKWgWVpZ2gK4paBbWFya2VycwriloFnZXdlc2VuCsOkdHRlbgriloFwaW9uZQptdgriloHRmNGDCnplaWNobmlzCmhvZmYKTmV3cwriloFTdGFuaXPFgmF3CuKWgUJyYW5kZW5idXJnCuKWgUZldWVyCj0mCtC20LXRggriloFOZWlsCuKWgXdpcmsK4paBc29jaWV0w6AK4paBc3BhcmUK4paBY2l2aWxlCnNwcmFjaAriloFkaXNzZQriloFnYXRlcwriloFhbm9tCuKWgdCk0LXQtNC10YDQsNGG0LjQuAriloF0aWIK4paBZsO6dGJvbAriloFXaWtpcGVkCmlhdGUKRnJvbnQK4paBY3JhdwriloFSYWsK4paB0LfQstGDCnN0cmVldAriloFBZ2VuY3kK0LLQsNC70L4K4paB0KDQsNGBCuKWgW1rZGlyCmFjasSZCuKWgXNoYXJlcwpTdG9yeQriloFyZW1hcmtzCuKWgWtleXdvcmRzCkJvYgriloF0b2UK4paBVml0dAriloFyaHMKUk9QCm9yaXMKL0AK0YHQuNC4CuKWgXRyYXZlcnNlCuKWgXJlZmVyZW5jaW5nCnByw6RzaWRlbnQKcm9uZwonKToKYXRpZXMKQVcKT3V0bGV0CuKWgcOpdm9sCmlrZXMK4paBZW52aXJvbm1lbnRhbAppY3VtCuKWgUxpZWQK4paBd2FybgriloFCdXRsZXIK4paBJSksCuKWgVplaXRzY2hyaWZ0CuKWgU1vbnRyCtCy0LDQttCwCuKWgU1lcmN1cgpqZWt0ZQptZXRlcgpkdWNhdGlvbgriloFhdHRyaWJ1dGVkCiokCuKWgXVuZgriloFWZXJ0cmFnCnppZW4K4paB0KDQvtCxCmxpY2VzCnBwbHkKYW5zZW4K4paBemVpdAriloFpbW1lbnNlCuKWgWx1dGVnbwriloFCdWxnYXIK4paBbWllbWJyb3MK4paB0J3QsNGG0LjQvtC90LDQu9GMCuKWgUFsbG93CuKWgWFuZ2zDqHMK0LTQstC4CuKWgVRveQrRgtGD0LAK4paBeWFyZAooJQppc3NlcgriloFnb2xmCuKWgVVrcmFpbgriloFob3NwCkluY2x1ZGUK4paBTGlzYQriloFjc2FsCuKWgU1pcmEKcmVjb2duCuKWgdCa0LUK4paBaGl0dGluZwrQutC+0L3QvtC80ZYK4paBVG91cm5hbWVudApMT0FECuKWgUd1YXJkaWFuCuKWgWRhaGVyCuKWgXRpbWV6b25lCuKWgXRvbWNhdAriloFzdWNjZXNzb3IK4paBVm9pZAriloFjb21lw6cK4paBY29udmVydHMKw6RjaHMKb3NleAp4ZWxsZXMKYXNlcgriloHDiXMK4paBbW91CuKWgXVuZwriloFvcmlnZW4K4paBQ3JvdwriloFFcmQK4paBc2llYmVuCmx1YQriloFCQgpSRU5UCuKWgXBpxYJrYXIK4paBbWFycXVlCuKWgUxhYm91cgp2aWRlcnMK4paBZXhlbXBsClNvdW5kCuKWgVdhc3MKYXJyaXNvbgriloHRgtC10YfQtdC90LjQtQriloFPZmljaW5hCuKWgURhdwriloFLYXVmCsOpbnQKw6lzxZEK4paBPSIK4paBa2F0CmRpY3Rpb24K4paBVm9sbAriloFoaWdod2F5CkphbWVzCnpldWdlCuKWgW1vZGVsbwpUaHJvdwriloFGb3J1bQooIkAK4paBZW5mZXIK4paB0YHQv9C10YbQuNCw0LvRjApOdW1iZXJzCuKWgUJpbmFyeQriloFNYXJ0w61uZXoK4paBU3RhdG8K4paBZmVzdGl2CuKWgWthdG9sCuKWgdCQ0LEK4paBbGltaXRhdGlvbgriloFTVFIK4paB0J7RhNC40YbQuNCw0LvRjAppcGVzCuKWgUlzbgriloFydWxlZAriloFjw60KZ2ViZXIK4paBbGF2b3JvCuKWgXBhcmVudGhlc2VzCtC+0LcK4paBw6lxdWlwZXMK4paBZWZmaWNpZW50bHkK4paBUGVyaW9kCuKWgVJlZ2FyZGluZwpsZWFmCuKWgXNpbWlsYXJpdHkK4paBZ2VzdHVyZQpkYXRhYgriloF0ZXJtaW5hdGUK4paBc2VtYW50aWNzCuKWgUFsbwriloFjaWcK4paBT3BlbkdMCuKWgWhldXRpZ2VuCnhhbWwK4paBZnJlcXVlbmNpZXMKKX0uCuKWgXRocmVhdGVuZWQK0YLQuNC6CuKWgWNhbGNpbwriloFSaWVtYW5uCnNsdWcK4paBRmluYWxlCkxSCuKWgURlcmJ5CuKWgdC+0YnQtQriloFkZXZpYXRpb24Kw6RjaGVuCuKWgUNyaXMK0L3QvtCy0L4K4paB0YHRgtC+0LvRlgriloFyZWxldgriloFzcGxlbmRpZAriloHRg9GH0ZEKZXJ2aW5nCmdhYmxlCuKWgWfDqW7DqXJhbGUKcG9tCuKWgUNoZWVycwriloFpbXByaXNvbgriloFpbmRlbnQK4paBYW5hbHl6CuKWgXJldmVydArDqXJlcgriloFwaGFzZXMKRmlyc3ROYW1lCuKWgW1pZwriloFkaXN0dXJiCuKWgW1peHR1cmUK4paBKXsKaW50dXJlCuKWgVRyaWVkCuKWgXNvb25lcgriloFwZWxzCuKWgcOpdGFibApldHJvCml0aWUK4paBcXVhcnRpZXIK4paB0LPQvtCy0L4K4paBdsOhcm9zCnVmZQpoZXRlbgrRhdC+0LwK4paBc29hcAp1dG9ycwriloFkdWNoCnN5bnRheAriloF0cmliZQriloFjaGFudGUKVHJpCuKWgU1hdGUKcXVhbGl0eQp1b2xhCj0iLgpjaGsK4paB0LLRgdGWCuKWgXByemVjaQriloFNZXRlb3IK4paBc2NhdHRlcmVkClBsdXMKdHJhZAriloFzdGFja292ZXJmbG93CuKWgXJldHJhCuKWgcOpZGl0aW9ucwriloFzYWluCmNyaWJlCmlnbm9uCnVja2VyCuKWgdC80LDQu9C+CuKWgXRlbmlyCuKWgWV4cG9ydHMK4paBYXV4aWxpCuKWgV1dCuKWgUNCUwp1bmlmb3JtCuKWgXBlcmlvZGljCmFncmFudAriloFlbXBsZQpXaWwK4paBZnJlcwriloFzdHJ1dHQK4paB0YHQstGW0YIK4paBYmV0cmUK4paB0L7QsdGK0LXQugrRgtC40YHRjwriloFiaXNoZXIKYmF1bQppc2hpCuKWgUdhemV0dGUKYmFja2dyb3VuZENvbG9yCmpsCuKWgWZpZWwK4paB0L/RgNC10LzQsAriloFwcm90YWdvbmlzdGEK4paBTXVoYW1tYWQK4paBc2ltdWxhdGUK4paBSG9vawpmZXN0CuKWgdGB0LLQvtC40YUKU2VuZGVyCuKWgWxpc3RlbmVkCtC20ZYKamVzdAprb3JkCkNob2ljZQriloFob29mZApyZWR1Y2libGUKaHBwCuKWgVd1CsWhaQriloFNYXJzZQriloFzb2lyCndlc3RlbgplbW9zCuKWgUR1YwriloFhbWVyaWsKfH17CuKWgUd1bAriloFTcHJhY2hlCuKWgW1pc21hdGNoClNjYWwKUGl4ZWwKRUYK4paBU2VwCuKWgXBvd2llY2llCnVyawriloFOYXBvbGkK4paBbmVpZ2hib3VyaG9vZArRgdGC0L7Rj9C9CuKWgXNlYXJjaGVzCnlydXMK0L/QtdGCCkhlbHAKcG9udAriloFPcmllbnQK4paBQWxmb25zbwriloFtb25pdG9yaW5nCmlhbwrDqWTDqQriloFDw6lzYXIK0YjQtdC1ClNoaWZ0CnN1aXQKY29kZWQK0L3QvtGC0L4K4paBUGFydGkK4paBbGFzY2kK4paBYXdlc29tZQp1c3RhCuKWgdCh0L7QstC1CuKWgUZsYW5kCm9vbQriloFkZXZpCmVuZ2Vsc2sKZW5kdW0K4paBUGFzY2FsCuKWgUJpbmQK4paBc2lndWllbnRlcwpKQgriloFQZXRlcnNidXJnCuKWgWluY29ycmVjdGx5CuKWgUJhc2gK4paBcGVsb3MK4paBemVzcG8KTlNVUkwK4paBcMWZZWsK4paBQ3JpbWUKbmFjaAriloF0aHJ1c3QK4paBQ3VsdHVyYQpXRgriloFTb2xvCuKWgWludmFzCuKWgWluZGl2aWR1YWxseQppYm0K4paBZXRhcGEK4paBaGFuZGVkCuKWgXdoZXJldmVyCuKWgWludGVycG9sYXRpb24K4paBbXVzw6llCuKWgUNOTgppZGlhCsWEc3R3CuKWgXByemV3CnVnaGluZwriloFhY3RvcnMK4paBT3JpZW50YWwK4paBY29udmVuaWVuY2UK4paBbWlhc3RhCmJyYWlucwriloHQvNC10YHRjwriloFpbmZhdHRpCuKWgUFsbE1vdmllCuKWgWNyaXRpcXVlCuKWgXN1Y2Nlc3NvCmFuY291dmVyCuKWgWbDoQrRitC70LPQsNGACuKWgXdpc2RvbQriloFQaG9lbml4CmhvbGUK4paBaW5mb3JtYWNpw7NuCuKWgUFpcmxpbmVzCi7Cqwptb3J0CnVzZXJJZAriloEqLw0K4paBQ29uZ28K4paBImAKY29ycgriloFwcm9ibGVtYXMK4paBYmliCuKWgXDDs8W6bmllagriloFmaWxlTmFtZQp6b3R0Cm1hY2h0CuKWgVVscmljaApDeQplbmRwb2ludAriloFzaGVlcAriloFpYm4KRmVlZAriloFzeW1wYXRoeQriloFJYgriloF0ZXJyaXRvcmlhbApyYXRpbmcK0LTQsNC80LgK4paBZHN0CtGD0Y4KYWhvCuKWgXN1ZwplbWlhCuKWgXRlZAriloFBcGkK4paBUmljYQriloFNUgrFhHNraW0K4paBVm9vcgriloFkZXZpbAriloHQpNC+CuKWgU7DpHIK4paBLi4uKQriloF2b2lzCuKWgWFiYnJlCuKWgU3DpG5uZXIKeGltbwriloFpbnRlbGxlY3R1YWwK4paBdGFsZXMKc2ltaWxhcgpuZXVtCuKWgU9yaWcK4paBcG9zdGFsCuKWgWh2b3IK4paBaWRlbnRpZmljYXRpb24K4paB0J7QtAp1ZXN0bwriloEuLi8K4paBYmlyCuKWgdCb0L7QvQriloFlc2VtcGlvCuKWgUVpbmcKRXhwYW5kCuKWgVBSSU1BUlkK4paBSmluCuKWgXbFoWFrCm91cnNlcwriloFCZXR0eQriloFXTQriloFmbGFzawpobGVuCuKWgUFkZWwKbGFyYXZlbAriloHQtNC10YIK0YHRjNC60L7RjgriloFNdW5kbwppY3puCmlmacOpCuKWgdCc0L7RgAriloHQtNGA0LXQsgpEYXRlRm9ybWF0CtGB0YzQutC40LwK4paBZGF0ZWQK0LrQvtC70LgK4paB0YDQtdC30YPQu9GM0YLQsNGC0LUKXCkuCuKWgWRlbGF5ZWQKc291bmQK4paB0JzQsNC6CuKWgSIuLi4K4paBYmlubmVuCuKWgdGE0LDQutGD0LvRjAriloFwb2x5Z29uCuKWgWVnZ3MKQXRJbmRleFBhdGgK0LzQtdC90YLQsNC70YwK4paBaW5jcmVkCmNodW5rCndlYmRyaXZlcgriloHRgdCy0L7QsdC+CuKWgW1pxJlkenkKUmVjZWl2ZWQK4paBTW9uZGUK4paBSlF1ZXJ5CkJ1dHQK4paBUERPCuKWgWZvcmVjCuKWgWRpc2NpcGxpbmUKY2hldgrQvdCw0YIK4paBcmVkaXMK4paBaHVudGluZwriloFhbGsK4paBcHJvb2ZzClBSSQriloFjaGlwCsOpc2llCuKWgUhPCuKWgXJ1Zwp6b3MK4paBc29ydGUK4paBemVpZ3QK4paBUGh5c2ljcwpsZWd0ZQriloFwcm9wb3J0aW9uYWwK4paBdG9vbGJhcgp2ZW1lbnQKbm90aW4K4paBcHJ2bsOtCmJsYWgK4paBcHLDqXNlbmNlCuKWgWxsb2MK4paBbMOtZGVyCuKWgUFjY2VwdAriloFBbHdheXMK4paBInsK4paBZGl2ZXJzaQppa29yClBlcmlvZArQttGR0L0K4paBQWxsaWFuY2UK4paBcmVsYXkKQnJvCmrDtm4K4paBQmF1ZAriloFCaWFuCicpWwrRh9C40LIK4paBUG9zcwriloFNaXRnbGllZGVyCuKWgW5ldgpEYW5pZWwK4paBdGVuZHMK4paBY29tcGFnbmllCuKWgWxpdnJlcwpsdWIK4paBCmUKdAphCmkKbgpvCnIKcwpsCmQKaApjCnUKbQpwCmcKZgouCmIKeQosCncKdgprCjEKKQooCi0KMAo6CkkKUwrQvgpcCjIKQwoiCkEK0LAKVAp7Cn0KLwonCngK0LgKXwrQtQp6CtC9Cj0KRQpNClAKagrRgApECjkKKgpMCtGCCkIKUgrRgQo7CiMKJApxCk4KMwrQsgpGCtC7CjUKNAo4CsOpCk8KSArQugpgCjYKRwo3ClcK0LQKPgrQvArRgwpbCl0KVgrQvwpVCjwKSgpLCtCzCtGPCtGWCtC3Cj8KKwrQsQrDoQrQuQrRjApZCsOzCtGHCtGLCsOtClEKXgrDpAomCtGFCnwKWAohCkAKw7wK4oCTCiUK0YYKw7YK0LYKWgrDqArDoArRiArigJQKDQrRjgrFggrCuwrQoQrCqwrigJkK0YQK0JIK0J8K0JoK4oCcCtGYCtCcCtCQCsOnCsOlCtGJCn4KxJkK4oCdCsSFCsSNCtCgCtGXCtCdCsO6CtCRCtCUCsOjCsOfCsSDCsSbCsOqCtCeCsWhCtCTCtCiCsW8CtGRCsW+CsWbCsOxCsWZCsWRCuKAngrQmwrRjQrDvQrQowrQmArRigrRlArDogrDrgrDsgrQlwrQpArDiQrEhwrCtwrImQrFhArImwrQpQrDtArQlQrDuQrFrwrCsArQqArRmQrQpwrDuArDpgrRmgrigIkKwqAK0K0Kw6sKw7UKw68K4oCYCuKAoArCsgrFsQrQhgrilIAK0KYK0ZsKw5YKw7sK0K8Kw6wK4oCmCsWNCtCWCtCuCsOBCsyBCsOcCsK6CsWTCsSBCsSMCsW6Cs6xCuKUggrYpwrDgArilZAKxaAK0ZIK4oSWCuKAigrigKIK4oiSCuKGkgrDlwrOvwrigoIKw4QKw44KxZoKxJEKw4UKxLEK4oCOCsWrCs69CtCZCsKqCs65Cs+ECtmECuKAsgrvv70Kw4gKzrsK77u/CsW9Cs+CCsWICs+BCuKCgQrQhArEqwrOtQrCpwrFgQrQiArCowrYsQrFuwrCvwrZhQrigLMKw5oK2YYK2YoKz4MKwrQK4oCLCs68CsKzCsWfCs+ACtmICtivCs66CuKCgwrDjQrLiArYqArDkwrDgwrCoQrigqwKxaUKzrcKyZkK44O8CtCpCs6yCuKUnArDsArSkQrCrQrPhQrCuQrigoQK2KoK15kKzrMK2LMK44GuCsSfCs60CtuMCuODswrZhwrXlQrPiQrOrwrilogKzrgK55qECsKpCsOCCuKGkQrvvIwKy5AKzqwK4oCVCti5CsOHCuKCgArCsQrDmArEjwrFmArFkgrCvQrilJQKz4wK4oCaCsSTCuKChQrDhgrImArJmwrXlArXqArPhgrigoYKxJcK2K0K2YEK2KkKxLAK4oCCCuKGkArilZEKyZQK4omkCtecCsSQCtWhCsWMCteQCuC1jQrjgrkK2LQK5aSnCuODqwrRnwrjgqQK4p+pCuKArwrCtQriiIgK2YIK4p+oCuOAggrSkArgpL4K2KwKyr8K4YOQCs6tCs+HCuS4rQrXkQrhg5gK4oKICuODiArOrgrjg6kK0I8K2YMK4oKHCteeCteqCuS4gArOoArguLIK44O7Cs6jCs6RCs6UCtepCtiyCuCljQrguKMK44GECsq7CtCKCuKCiQrKvArjg6oK4oCQCuOCrwriiJ4K4oGECs+NCsWeCuOCogrOlQrJqgrkuroKzpoK4oiACuCksArjg4MK4pa6CuWtkArCrArYrgril4QK2Y4K16IK5pelCuOBlwrhuKUK16AK5bGxCuOAgQrQhwrjgosK5paHCsORCuODiQrXkwrVtgrQggrOkwrDvgrCkgrCrgraqQrCkwrimq0K5pysCuKElQrguJkK0Z0KzLYK4LitCtGeCuOBqwrmlbAK4YOUCuWbvQrOqQrjgIAKx44K2LUKwpQKzpwK4oCDCuOBqArigaAK44GfCti3CtaACuOCvwrDvwrjgaoK2KMK44K3CuaWsArvuZUKyoMKxL4K44OtCuKBtArgr40K4oeSCsWjCu+8mgrImgrgtJUK4omlCuC0vwrjg54K44KTCuG5owrjgrgK5pivCuydtArii4UK55SwCuOCkgrpgZMK4LiHCsKoCtmACuC5gArmnZEKw4oK150K4oC6CueUqArPjgrlpKkK77yJCuC8iwrplYcK44GLCuS4jQrOpArlraYKxrAK5pyJCtW4Cu+8iArjg6wK2q8K4oCPCuODlQrgpKgK4LiBCsmRCuOBmQrXlwrkuIoK4oCMCuKIpwrhua0K16cKzr4KwqQK4KS/CuS8mgrgtKgK44KrCsWzCuOBvgrgtYEKzaEK4KSVCuCmvgrlsI8K158K6KGMCuOBrwrKgQrFkArDngrjgooK44KtCs6bCuGDoArkuIkK44GMCuOCswrOtgrluIIK546LCuKEnQrFuQrjgYYK44GmCuWMugrgtL4KwoIK5bm0CtekCtWrCsW/CuKAuQrgpKQKxY8K4oCRCsyDCsSGCtmJCuOAjArjgI0K4YOhCsSACuCkrgrnlJ8K4omgCtCJCuCkuArihpQKzp8K4LinCuGDmgrmiJAK5a6aCuC4pQrCtgrXmwrjgacK1rwK4LihCuS4qgrlkowK16EK5ZyoCs6SCuC4tArOmQrigbUK4LixCsmhCuKUgQrjgokK44KqCsK8CtWlCuODkArWuArFiwrFrQrjgrAK4oG2CtCsCuKBsArmlrkK4LiaCsKXCumrmArhu4cKzp0K0aMK44KjCuWcsArmnIgKw5QK4oSiCuOCpgrjgY0K5YWsCuG6oQrhg50Kyb4K4LmICuWHugrms5UKzpgK4LiqCuWQjQrguKIK4LSkCs6mCuKGkwrjgowK15IK0IEKxqEK5LiLCtOZCs+ICuKUvArjg6MK4oiaCsKlCuekvgrhuYcK44GVCtmQCuOBjwrgpYcK0KsK4byQCuODhgrkuLoK5LmhCuW3nQrjg4oK5LmLCuWtlwrjg6AK4KWACua1twrjg5YK4omICu+8gQrZvgrCrwrhvIAKwoMK44GTCtawCuadsQrmmI4K4b22CuaXtgrguJcKyagK44OHCu+4jwrKigrjgqgK5Y2XCuilvwrgpLIK44OhCuODlwrlubMK5byPCuG/lgrSmwrgpLUK2LoKw5IK5a62CsqSCuOCtQriiaEK44OACuC4lQriiIMK4oK5CuCkqgrnrKwK4LSwCti2CuKWhArln44K44OfCsmQCsKmCue+jgrku7YK4YOcCsOQCta3CuODiwrpg6gKxYYKx5AK15gK4KSvCuOBggrCvgrhuqMK44GhCuODpQrDtwrlpbMK56WeCuKZpgrCogrku6UK4LmJCuCmsArlpKoK4KeNCuODgQrVtQrliY0K6YeRCtaCCumHjgrljJcK4LirCuKAsArjgaMK5YqgCuWOnwrKsgrnva4K5a6JCuOCrArmiJEK4bikCuC0rwrkuqwK4paACuGDmwrhg5UKyr4K4oioCta0CuWPrwrlj5YK5Y6/CuS6jArilpIK55CGCuiHqgrkv6EK5LujCuC4tQrXpgrhgLoK4KSmCuKBuArMrwrjgYoK6KaBCuG/pgrgrpUK4buFCuClgQrGkgrKsArljJYK4pyTCuC0qgrsnZgK64ukCuacqArZjwrMgArLjArgpLkK44ORCuawtArhur8K4LiUCuOCugrigbkK5bO2CuKAjQrjgoIK5q2jCuKWoArYogrguJ4K5YaFCsOMCseUCuKUrArkvZwK5ZCICuG9uArjgb8K4pa8CuG/tgriipkK772eCuG7iwrZkgrlm54K5LqGCuaJgArkuosK6KGoCuC4swrliIYK4oG3CtKvCsKACuWFpQrlhagK2KUK6YeMCs6nCuCkggrjg48K4LiECuKBuwrjg6IK6YOOCuaNrgril48K5beeCuKIqQrogIUK6YCaCumDvQrihKQK4pmtCuKVjArjgaQK4biNCuaxnwrXlgrDnQrTqQrguYwK5YiwCuCuvwrKggrlr7kK7IqkCuS9vwrgpr8K44KICuG8iArDjwriiJgK7IKsCuCmqArkuJYKyZUK1a8K4YOjCuC0nwrhg5EK4KWLCuC0tQrmnpwK5Y2BCuC4uArol6QK5p2lCumdogrjgZEKxJUK44OTCui/mQrsp4AK4LSCCuihlwrnn7MK6IO9CuepugrVvwrYpgrmraYKyrkKz5UK5ZCOCuC4sArlhYMKypQK66asCuq4sArmsrMK55S6CuiKsQrhvZAK57G7CuKWkQrniakKzpcKwrgK4K+BCuGDlwrYqwrgtYYK4pWgCuKKhgrjgIsK44OECueJiArliqgK5aaCCuecnwrJsgrlj7cK2LAK7KCVCuaelwrmm7gK5rCRCuWPowrZkQrnpLoK4LSuCuyVhArlm74K4oiqCuaIpgrmnY4K4LSyCuOAigrlhYkK55m9CuW/gwrgrqQK4KScCuiuvgrhvbcK6LevCuCklwriiKUK7ZWcCuacgArQiwrmiYsK1b0K77yfCuWeiwrhuqcK44K7CuW7ugrjgqcK5Li7CuyLnArrjIAK4b+GCuKAoQrpm4YK4YOTCuebrgrOoQrjgqEK5bqmCumVtwrmmJ8K44OOCuG7mQrqsIAK5LqUCtqGCuuhnArjg6cK6YeNCuS6jgrlj5EK5Y+yCti4CuC4igrjgYgK5ZyLCsStCuCuqgrsnbgK5L2gCumnhQrigJIK4pmlCuWkmgrEpwrSmgrhu5MK5aOrCuWbmwrilLQK4K6uCuWPuArgp4cK4b2wCuKIggrilawK5qyhCsS9CuKftgrnq4sK54K5CumfswrioIAK5ZmoCu2VmArkupUK5a2YCta5CuW9kwrDiwrimIUK5a+6CuaApwrkuZ8K44KBCuOBoArkvY0K4LSZCtuBCuWAvArlj6QK4YOSCuCmrArpmaIK4LWHCuKWtgrgrrAK55WMCuiqngrgtLgK7IiYCseSCuaEmwrinJQK5pmCCuG7jQrgtLEK1bQK44KxCuS4nArlkIwK7KO8CuS/nQrDlQrhu5EK4bywCumdkgrjgrQK5L2TCua4hQrnm7gK4LiICtihCuaDhQrwnZWcCuCmlQrhuKsK4budCuWwhgrml48K64+ZCs6lCuKUjArjg5wK5a6uCuOAjwrgpq4K44COCsS8CuCktgrguJsK1LEK4KSsCuyekArmlL8K4K6+CumXtArvrIEK5p2+CuG5gwrlp4sK5oGvCuWwkQrmlZkK6I63CuWIlwrlvIAK4YOiCuODrwrhg5kK56eRCuaYpQrmsrsK5ZCJCuC9pgrguKgKyZIK5Y+wCuODjQrhgLgKxKkK5belCuG9sQrnn6UK5YWrCuWgtArnlLsK55m+CuKYhgroqJgK5b6XCuOCvQrmsI8K4YCsCuyXkArgprIK4bmbCuWFswrEoQrhvbMK4oiRCuODmQrmoIcK64uICuG9tArWtQrlpJYK4pmgCuOCjwrplpMK4LigCuagoQrliLYK4LmBCuWKmwrploAK5aW9CtKTCsOZCuKEkwrWtgrripQK4pSQCuKIlwrmjIcK6ImyCui/lArppqwK6K+3CuKJqwrpoqgK4b25CuaOpQrshJwK4oazCuOBmwrlv5cKzLIK6a2UCtKjCuabtArnqIsK6rmACumDoQrgvbwKxakK4LSaCuWIqQrnnIwK5ZGoCuOBnQrjgoQK6LC3CummmQrima8K44GYCtiMCuacnwriiIUK4pSYCuWInQrnpo8K54mHCuOCtgrli5UK5Y+CCuyEsQrGjwrilaYK7Ja0CuGDrgrnvqkK4KSaCuixoQrlip8K4pmCCuuPhArqs6AK6L+HCtW+CueahwrnibkK4bqtCumVvwroi7EK4bqlCuC0owrQqgrgprgK5YW2CuCmpArmtYEK6ZmkCuydvArgp4EK4Z+SCuawuArnm7QK7IOBCuWNgwrhuq8K6aSoCsWkCuacnQrgrp8KyaMK5Y2VCsqACuagvArlvrcK7KCECuKYugrjg5QK5q2MCui/mwrpmZAK5aSrCu2KuAriiqIK5ZySCumHjwrlnJ8K5pS+CueggQrnrYkK57O7CuKIvAroj68K4oa1CuyGjArluLgK5ZCmCuimiwrmupAK14EK5a6eCuWNmgrrnbwK7JuQCuuztAriipUK6KejCuOAnArnlLcK4KamCuODnQrjgo0K64KYCuC9ggrnhKEKw5sKzKUK0rEK5p+lCsyjCuKVlwrilakK5p2hCuCmrwrhvYEK5b6MCuS7lgrnvZEK4K6yCuKJgwrtmZQK25UK6Zi/CuGAsQrmiLcK4oirCuq1rArgvaIK4YCZCuKWuArVrAril4sK5ZG9CuWwsQrpvo0K5ZCbCuWkjwrCgQroqIAK5YWICuKenArhg6gK4YOrCuCovgrgrrUK44GpCuODkgrguYQK4K6pCuOBsArjgq4K1aMK4byECuODpArlhbgK5bqcCsyECuyLoArnu4QK5pS5CuG9sgrljY4K5LiOCuiwgwrilZ0K44O0CuGDpQrnlLEK5L+uCuWtuArimaMK5raICuespgrKjArrtoAK4bubCuKAvgrilrIK5b2VCuC0swrsl7AK7J2ECuOBsgrsmIEK4pSkCuW3sgrpmb0K4YCECuq1rQrlrrkK5pyqCuWulwrhtIcK44GzCuyepQrpvpkK4LeKCuaPkArEnQrlha0K5b2iCuygnArVgArkvIoKz7UK4LiCCsWwCuOCgwrngasK4bmiCuS9kAriiqUKzKoK4bupCuKWoQrnu5MK5LmdCumbhArVqQrhnrYK6ICMCuC9lgrsmrAK5bygCuCknwrgpLcK5ZCRCuG/pQrpgIkK6rO1CuOCsgrKkArku4EK5aCCCteaCuGArwrhvJQK4LSFCuG7gQrgvZEK7ISgCuyYpArkuYUKwpwK5LmJCuCkhQrilZQK5pegCuKAqArsnYAKyrcK6YKjCue3mgrliqEK5Z+6CuWxngrphY0K66+4Cui7jQrguYIK5rSlCuWujArnoJQK5rOoCuWksQrlupQK4YCACuKVmgrlj4sK56ugCs6oCuaxggrgpKMK6rK9CuKArArgpK0K5LusCuaooQrpnIAK4K6aCumbuwrgpqoK1aQK44G4CuatpArlpJwK5oiWCuapiwrmoLkKxKoK546JCuC4uQrhuYUK5LqkCuWTgQroia8K4L2ECuOCqQrliJkK6ZaLCs6WCuusuArooqsK7KGwCuagqgrorrAK5pyDCue7jwrgpYIK44KHCui9rArltI4K66eICuKMmArmr5QK6YCgCtyQCuC4twrmsqEK546wCuS4gwrOhgrllYYK4K+ICuacugrpmLMKxIkK6KeSCuermQrVogrtlbQK5Y+KCuCkpwrooZMK6K6kCsKRCuWImwrnt6gK1bIK4bipCuS8nQrlsqEK4KShCuODmwrmuK8K5Lu7CueZuwrgvbIK4LmHCuW4gwrnqbYK5bidCuyXrArsgrAK4YCUCuKXpgrlr4YK5Y+YCuW6jwrimYAK4oijCuiuoQrmm7IKxIIK4b27CsqLCuS8oArjgJEK5YyFCuaEjwrljrsK5rKZCuK4rgrjgJAK5YaZCui2hQrgrq8K5LuKCuKUiArmo64K4LeSCuKKlwrruYQK1bAK4bioCserCum7hAriiJkK65OcCvCfjI0K5pmvCua5lgrWhArhgK0K4oG/CsyCCuODmgrkvZUK5a6HCuW8tQror60K6ICBCuS+iwrhuawK6YmECuWFiwrimIkKwpkKybkK4byxCuK0sArnhLYK66W8CsenCuWgsQrmnI0KxI4K5oOzCuKAlgrjg6YK5a6fCui9vQrsmpQK4oSaCuazogrpqawK54q2Cue6vwrsnKAK5rSLCuS4hwrsp4QK4KacCua3uwrnkIMK5qmfCuaUrwrmmL4K5ouJCuG9kQrpgIEK6ZqKCuC4mArlpIQK5birCuKKggrlg48K4Ka8Cum7kgrWgQrCnQrhu6cK5Y+qCui1twrmrrUK4YCQCuWNgArpgbgK7LKcCualrQrnrpcK5bm/CuGemgrop4YK56eLCuWboArrhYQK25IK6L6TCsyxCtWECuKIhgrlurcK7IS4CuaAnQrmrbsK6IGWCuuvvArvvI0K5aS0CuC1vAriiIkK6LuKCuKUgwrilocK5oyJCuKNtQrlpKIK5rGJCuS7jgrgp4AK6aKYCsuGCuG8oQrlsZUK55yBCuC9tArokYkK7Zi4CuCosArntKAK6ZaiCuq3uArvvJsK4LaxCumhtQrlhbEK5a6/CuaAgQrgvZMK5oqACuS5kArmjqcK56e7CuW9sQrhu6UK44KGCuOBlArgs40K566hCuC1vgrilaMK5oi4CuKHlArlh70K4bqTCuWwvgrlnLoK5LuLCu+/vArogrIK4La7CuaziQrgtb0K6K+0CuaNogrlv4UK57SACuC9mArgvboK4bujCuC1uwrlrp0K5rCXCumXqArku6QK5bemCua8ogroi6UK5bGLCuWxgArmiZMK55m6CumXrgrmgYsK5YW1CuWIpQrgqr4K1Y0K36wK4KaXCuW5tgrgpJYK4b21CuiKggrKkQrXpQrhuKoK4oSCCuW8lQrnu58K5pm6CsypCuCliArnlLUK7ZiECuKchQrotaQK5patCuOBrQrnp7AK4Ka2Cui6qwrpppYK5LuYCuKFkwrgqLgK6YCjCuGDlgrlrpgK5oyBCuWliArlvqEK6KaqCuq1sArlupMK56eACuWdgArlrogK5rS7CuC9owrjgbUK6JePCuGenwrnq7kK6I2JCue1kArgt48K5piMCuaouQrgrrMK66y0CuCmuQrjgrwKzIgK1bcK5YudCui2swrhgJsK7JyECsSvCuG8uAroiKoK6ZmzCuS4mgrlr4wK6ZuqCuCkhgrlho0K7JWICum7mArrsJUK7JqpCuKcvwrmpb0K5rKiCue+hQrElgrKjgrlv6AK6ZSZCuuLqArrqbQKxLcK5qGlCumbsgror6UK4bmvCuWyqQrrgqgK4bu5CuS4kwrliIcK5bqXCuacsQrXowrjgZoK5bm4CuavjQrJqwrjgIUK4oi3CuS4sgrlh7sK4byYCuiorQriiqQK4oKXCue2kwrqsJUK4YCVCuClpArRkArhvrYK4p6WCuW6pwrslKgK44G2CsWiCuS6kQrlkYoK5aSJCuivlQrpmoYK6rCcCtW6CuWIpArliokKy5wKy6AK57yWCuC4kwrhu68K6L6+CsSaCtydCuGAvArhuLcK5Y+zCuuTpArFnQrTjwrgsY0K4LSOCuCusQrlpI0K55yLCuipsQrlnYIK5bCUCuihmwrVpgrssKgK5Li4CuagtwrprLwK4KS8Cu2VmQrllpwK5pavCumKgArrp4wKzp4K4YOqCue+pArov5EK5aGUCs+KCuCuqArjgoAK56GuCue0ogriiIcK6Z2eCuacmwrina8K5biMCuG7swrnlLIK6LaKCumzpQrpursK6ZuFCuaLswrhnoAK5rqqCua1iwror50K5rGgCuiPnArpo58K7YSwCuCovwrmuKEK6YCfCtq+CuCysArpmYgK5YGlCuCniwrgtpoK4b26CuWGmwrluoQK57qiCsSmCuirlgrFuArOiArhu7EK5a2dCumgrQrpo5sKy5oK4paTCtmLCuKArQrkuYgK6YGUCtGrCuW3tArmtJ4K6LK0CumhuQrgtKYKybUKzI0K0qEK56eNCui/kArsi50K4L6xCuG4swrlvaYK4qWkCuS5pgrmnoQK57GzCui/ngrmk40K6KOFCuqzvArjgZAK5Y+NCsyMCuS7rgrlkZgK5pitCuC0tgrlhbQK5a6iCuWIoArgtrgK4LeACuGDngrEiwrgtLcK4YCeCuG1iQrlsYUK7YOACvCdk50K4KSlCuePvgrLhwrsooUK5YqpCuWUkArngKwK4Z6TCuW+rgrvvJEKxKAK44G7CuiIngrrgrQK7KSRCsSSCuWvvArmlYgK67CpCuG4jwrmt7EK5qKFCuaWmQrsm5QK5q+PCua0sgrtmowK6Iy2Cui0pQrgtJ4K4buDCuODqArkupsK5Y+MCuWYiQrrqqgK67CUCuC4qQrpgLIK7J2MCuC4jQrkuIEK5pWFCuioiArpgaAK6rWQCuyerArlgJkK5oi/CuuqhQrkuKQK4YOkCuaJjQrtlakK5q2iCueVqgrJrwrlpYcK5oCqCuiBlArsl60K5rOwCuuwsQrhvYAK44GSCuOBuQrovrkK6L+YCum7gwrsmZUK5pS2CuW8mArnu5k=" + +const llama_merges_binary = "r3SxdLB0tnSzdLR0r3SydLB0tHS1dLR0BAG6dK90ggGwdLd0r3S3dK90uXSydLF0tXS2dLJ0tHSvdLt0s3S3dLZ0sHSzdLF0BAFiAQoBsHSvdBAGsnS2dLh0sHSvdMV0r3S+dLV0vHSydLh0r3TAdK90vXSwdLl0r3S1dK90wnS1dL10WQK0dLN0CQEGAb90s3RhA7N0u3SydLd0sHS4dAgBsXSwdFEC2gG0dK90BgGvdLp0tHS5dLB0sXSvdLh0r3S0dLd0sXQEAbV0r3QFArt0unSvdM50tnS1dLN0uHQgAcB0r3TOA7l0sHS7dLF0r3TKdLJ0vXSvdNN0DgGwdK90NwGvdM90r3S8dK901XSvdNF0r3SwdAcBKwGBAbl0r3SIAa9013S1dLh0r3TGdLN0vXS1dLF0snS5dLx0sXSvdL90sHS9dLx0tnSzdLl0r3TqdLN0v3S2dLJ0bAGwdK90FAHaAbd0r3QTAfN0vHS1dMV0r3TkdAsBsXSwdC8Br3TDdLd0sHTGdLB0u3SwdLN0sHS8dLR0r3TldK907XSydL90vHS4dK904nS6dLB0CAG5dLB0KwGNAbB0tXQ3AXMBtnSxdAUB7ANRAvcFsXS9dCgBtXS3dK906HSzdMB0DwEjAasICQFTUbR0snTVMR0BEAGlBrZ0r3SuBa90tnSvdOt0VwEbAeBgvHSvdJUYIQGwdK90kwO4dMN0WQG2dMZ0BQGydMJ0sXSwdNoBsXSvdBUBIAG0dK90CQG2dLN0vHS3dK901HQZAbp0r3Q0BRIBCQEWBbR0r3QXAq90/nQNAbF0r3QvAbN0tnSvdON0r3T3dLt0x3QHAbR0r3QRAbF0unSwdL90snTDdBUBunSzdIIBr3TudBMBsXSzdC8BEQG5dLJ0KwEEAZcJCgEPAa90cxYHAbh0r3QcAa908nSvdPF0tXS5dLx0vXSvdAR1unSxdFcENwFUS7B0u3RkAa90AnUPAbB0snRzAQsBt3SwdH0Dr3T0dAUBsHSwdBQBvnS+dAcBt3SvdCYBDQGwdK90WAEaATMBIAK1dK90AwMZAYUBFTC6dK907Qm+dLB0r3THdAUBt3SwdPAIvnSxdMl08HS4dLV0EgEiARYFvXSvdP4BOgGwdLJ07AOvdAB1OwEiAXUMvXSvdPMFs3SydBEBsXSydFECLQGydK90sQGvdNh0QQG0dK90CAE4ASMBu3TVMUEB3HSvdN8CuHS5dLx0wnSvdOZ0uHSydLx0sHSvdA91JQG6dLN0MQEOAbV0r3RLB690/XQPD7x0r3RTAbN0xnQQAbF0tXThCBcBsXSydOEIPgG0dK90XAGMAfF0r3TlCAQBYFkKARMBr3RWBcd0sHQqAbJ0r3QuCa90y3QbAbF0tXRJAUMBYgHyAbB0r3QoBi4BRwG2ArF0r3Q1BS4BsHSvdOQBNQG4dLN0hQItAbB0r3QYAbt0s3QzAb10tnQiAQYBsHSzdOQB2nTadLV0vnSDAQYBsHTvFKYBZgFUBygBr3QhTpMD7xScbQYBwnTMAe907HQmAbd0snR9A7N04HTJdMF0tXS/dK90DHUgAbZ0r3QQARkBJgE8LLd0r3ReKwcBsXSvdA8BGwG2dLV0TAGvdLN0Age0dLJ0BgGvdBB14XTWdK90C3W/dLB0DQG8dK90YgiydL50XwGwdLJ03wEbAa4BwxO5dLV0UkG0dLB0snTGdNx0sXQQAbB0tXQUATUBsHSzdBgBy3TLdK909nQhAcN0r3RJBrh0s3QPAbp0snSCAed01nSTA7Z0wnQFATICunSydDEBHAG4dLJ0hQJDAbp0r3RFBWABsXS8dGgHr3TZdK90DXU+Abd0r3R3Aa904HR3AbF0vHQvASoBRwW/AVkBI1GwdK90fETsAbt0uHQlAeF03XQSAREBkRa0dK90/AuxdLZ0VwS9dLt0IgHJdMR0MgG0dK90HQMGAbl0s3QrAScBuHSwdIUCHQHIAZAFIgFPOb10r3ReDNB09nSxdLV0r3QJdXIBGAG+MLB0snQ5AmcBsXS1dC8BEgG6dK90MQGvArF0sHQ4AU8BkAF1BLF0BgGxdLN0UQKvdNt0BwEUATQCsHSvdFYC2gG9dK90RgENAbp0r3RNA690DnU/AbR0r3S4Cq9073QPAbJ0snStA30BsHSzdBQBBAG2dK90/QFXBLR0u3QJARABuXS1dHsVFQHDdLN0+QMXAbl0snR7FSoBsHSvdGIBIQFJASkFsXSvdFsQtXS7dOJ01HQaAbZ0r3QuAkwBsHS8dBQBnAG2dL50BQEyAsd0snSAARABx3QJAb90tXRhAxEBt3SydL8H/3TQdDwCsHS+dBgBDgELATwBt3SvdN8KtXTHdBABvXS1dN4GwQK2dMV0BQGydMd0vnS2dCYBsHSydFgBQQG4dK90JwG+dLp0snS7dD4BKwG7Abl0r3RmAwcBtnSvdBcB2gHAdK90aQG8dLl0vnS3dBUBsHSzdHMBnAiwdMJ0GAHhdNB0vQa2dMB0BQG+dLh0uAGwdLN0WQERAb90snRhAwgBt3SwdL8H53TQdA0BtXSvdEICt3S1dCYBsXSydC8BynTJdNYKBQG3dCwCtnS8dFsBt3SzdAsBr3TNdLJ0vHS1dMZ053TfdBF10HQOAQUBPAG2dK90oAIeAcN0r3RNBRkBsHSvdMECHgGwdK907AO0dLF0BwG5dK90SAFMAbR0vHSTa1cB2QFuAbZ04GBMAa90gh/jINp0zXTKARcBsHSydBQBBwGFAooBuHSvdPEBwHTAdLN0tXQLAdUxVgEjAQEtCQFGAbB0s3TsA0EBtnSvdAUBsQF9AwUNt3S4dNEBr3TddHkBtAGvdGwSIgGwdLV07AMJAbF0tXRRAhoBFwHkDLZ0r3ReAx4BsnSvdI8Cr3QbddR0xHSvdNB0wHSxdKcBuHSzdBwBu3S7dBsBKwEdBbl0tXRmAy0Bs3SvdOwBUQG3dGwBCwGvdLICLAG6dLB0ggEsBTgB5nQKAgcBlwEXDL50r3SkAz0BsXSvdFcDJQGwdLN0WgEHAb10r3Q6ATICsXSydDgBDgEnATwBuHSvdAAYv3S2dA8BHwGTAbl0snTmJFsBtnSzdAUBBwHCdK90cgFBAbF0r3QsARwBcAHxAcN0wXTBdGkE4QizB7F0vnS5AbN0x3QaAQUB1AS2dK90IgISAWECegGxdBYFUQKvdAUF53TddP901nRYAbZ0t3QFAfh03XS4dLh0WwHFdLN0KQNPAbR0s3QSFN502HSiDrF0vnRJAQkBsHS1dOQBXAGsATUS1TGBRiMBDgGzdK90oxcXAcN0snTPAhUBIwHMEgkBs3TVMb10snTfdOF03wGxdL90LAEtAbV0r3ShAUUBHAGDC7h0r3QXA690IHVQAbR0tnQRAa90BXUIAVoBiQ+wdBkBJALdGMd0r3QHBTgb1nSvdN0Bs3S+dBUBSwE4Ar10s3RMBcYFsHTDdJwBr3QjdSoBEwFTHLd0r3RgWT4BWAH2AbB0r3TlBTcBtnS5dAUBEgJFAnVVLAKvdBZYGQHFAYRuuHSvdNs20gGwdLN0jwPsdNZ0oQHFdLh0VAE7Abp0r3SrBUoBLAHJBrF0r3SRAk0BsHSzdDcBGwG3dLV0dwEGAcd0nwEjAb501TH4dNZ0ySOTa7F0UwJcAb90vHRhA7B0u3S8dL90nQTeBq4FvXTAdCsCFAG3dLZ0CwGQAbF0unS6AhsBv3S1dLAC+HQadS4BtXSvdMEEu3S4dGwBtXSvdDMBIAHkAXUBsHSvdIoCsXSxdHMcs3S7dHYBuXS8dD4BvnSvdBID7HTQdMp01HQgAcJ0r3THAsV0sHQQAcN0tXTPAkEBLwE/A7F0r3RWAQUBw3SwdM8CWwG4dLN0JwEvAbZ0t3T9AbV0wnS3AbB0Dw+yAa90IgOnAbR0s3QRASABSQFLCLF0r3TBARoBuHSvdDwCLgEpA8QBxXSvdMoF/3TddK90FnW2dMN0RwG6dLV0ggGCAQUBEAa2dLF05AhFARcBgwu2dK90qwYZAeMBryJSQQ0BBQGZAbZ0r3SDAmUBtHRzAZNrsXQ4A3MB5gGoErF0sXQmBAQBNhAKAZYBFgEUASRysHSvdKcxEwG6dLN0TQMzAbZ0tnQQAex033QNASwBmQGxdK90SgOvdCh11QHQdK909AQEAbB0r3RzAbB03HRRAa0CqAxTAq90mQkCB7h0snQ1AQcBtAWBAcN0r3RoBTIBsXSvdCgMHQGLAioIrAFFDtUxr3SsCNh00XTbdMR0/HS3dBwBsHSydBgB1nThdBkBYQx5AQgBElO0dK90QCCzdMJ0SgG1dK90zAURAVoB1BGwdCoBSAG/Abl0r3RAU5QCvHSvdIYIEgHwVKMBvnQWBfYFr3RUCfh033SvdBR1jwKCAWoLunS9dO0BKgEmAb8Bt3SvdOUUr3QHdRoBFAEgArB0r3SxBQgBBQFABrZ0sHRBBBoBugFiArF05AzhCK90OwYnAcB0DgFbAYwCsHSvdFk/LQGBJGsCvgFcELB0r3TREVABw3S2dIQBfQEvAYcysXQOARMBjAK3dK90qggeAREBYwK0dK90kwR2AbF0tnQVAQQBYQwKAQgBFgG0dK900hcSAV0CKwTRAX8OfQPHVrd0r3TGBy4CtXS+dDMBGgG1dK90aQQ+AaAL9gEkAa90ihKwdMJ0EgFkARYFNwGCO7B0r3SRAVQBtHS1dNEEDQFgAkEC7AMXBLB0r3T8FFoBt3S7dAsBiwHRdK90txHfdOd0GAE4Abh0CgIHAbx0r3RJAhMBMQGtKbp0s3QwAxIBRAEWBbh0r3QeBK90KnW8dL50CQG3dLV0vwcHAQkFUgK5dK90sgQ1Abl0s3SuARMBt3SzdH0DHAa4dMZ0HAEbAVECHQWxdLV0eQYYAbd0uHQLAVkBUQJWA7F0xnQoAa90L3XOdLR0MwHFdLZ0VAHwK7Z0sHQXAQ8BOARqAbd0qwgTA1NRvweydLp0UwGwdPN0sgGvAfoBvHR5EhEBx3QNAb50r3QEBI8BunSvdGki6QHpAQIWy3TLdAIWt3THdLB0xXRfAbd0snRmDOx03XQRAbR0snSLPa90M3UFAbF0sHThCDICsHSydFoBFQa6dLd0MQEuAUUxxAEfAa90RGavdDF1WwG0dLN0CAEbAZswtAK6dLV08RfhdN90DgFtBTwBwHSvdNkGs3TmdAUBtHSwdJNrGQGXCXkBDwGvdLgWPwG2dK90mQXFdLV0vXS4dA512nSGAbB0r3RjBEEBt3SvdAsBKQEvAX8GsXSvdDMKwnS1dLJ04HSMAeUIvAHxdK90F3UFAb10sHTeBj8BuHSvdMMJGAG5dLh0HwEFddZ0cwG0dLF0CAFYAbF0t3QsAfh00HQSAcMLowG9dBYF3RCvdAcIt3S6dPZ01nSvdNp0DgEUAnoErQOKBbJ0r3T4BE8D2nSvdMoBCnXKdA0B/QF8AbZ0r3TGAmcBsHS1dFgB9QG0dK903QlZAbR0xnQIAc90sXR8AsF0wXR8Aq90OHW4A7F0w3QvAa90OXUlAcd0s3SAAbN03HTKDLZ0vnQXAa90CHUZAagBPCxRArR0v3RHAbB0tXRzAUoBtnSvdHUCDgG8dK90vAKvdMF0XAG5dLx0KwF1AXABr3QyGA0BsnSvdHETJwHDdLB0cAFZAfAIcQG3dMZ0ngFBAVECqwGxdK90KAHJdMl0ynTbdB4BjQGqCrl0r3QJBuUBsnSydBwGBQK0dLF0CQEQAuMB8kNSQa90gCRLASgB1AdRAm4wsXSwdGYBHQErAmsBvXSlBt4Gr3SxAooBQgJUBrV0r3RVOw0Bu3SvdBUGBgFmDCQBt3RkAhsBr3SkDRx1tHSdAbR0r3R3D0QC8HTKdKABr3QldRkBlgFPAhQBhQuwdLd0t3TvAloCr3RsQBMBsHSzdFgBCgEIBBYBw3SvdGpMaAGwdK901AoJAbl0tXQrAQ0BRAFBArh0r3RxCx0BRAGlBrh0r3S+ER4B5wGqChQB3AuwdK90ihUqAQUBHAK2dK905AivdN50r3T8dA8BMQFnAgUBly62dMB0ZQESARQBhQiwdK90DQShAYAB7QfHdLh0ogb9ASQBKg5hA7F0ERVDAWBZ8gETAa90rQ/gdLB0SAG1dLJ0SwdgAbh0vHSFAt8BtnS/dAUBwnSwdCAB0QJEE+QIr3TMBEMBKgMaKbd0GylmDK90uW1JASMBOSwJAbx01TElAbF0s3Q4ASoBVAHhE8V0r3TFDa903HQ9AbB0r3TYBxIBYgEJArB0r3SVBLsCnwFzHB5TsAH4AScOLwGvdBcUGgFnAQQDt3SvdCoEEQHfAT4CsHRpASUBsBq7dLN0pyUUAbB0tnRBD9l02XQEAVsC1xSwdFJM7AOvdLYI4QG+dLJ0lwHhdB51HQHoAdEDsHRRFhgBr3SlBRcBx3QlARwB1wO4dLN0HAQdAf0CpjUvAa90BhApAbF02gFRAq90DAKvdDx1ewGwdK90HA+xdLJ0jgEoAeEHUQJaN7F0vHRmARABt3S1dPAIGAFmAWkJKAG4dHIDUAG7dLZ0MgIHAb90r3RfAbUBCwGvdKUzw3S0dBQBSAEGFrl0tnTHBR0NuHS8dBwBbQGwdK90mgzDdLd0QQG9dK90SwEuAY4BVBO9dK90nQdZAbh0xnQnAQV13XRKAgUB4gO2dLV0cQEOAWkBjALAdCwByF1tAo0BMgHAdK90PA4NAZwBJQOwdK90TRfDdL10BAFIHwoBSwEWAb10KQEFAqoDtXSvdO0iLQELAcYBt3SvdBkDdAG3dNoBXAWvdJEECwGwdLB0WAFbAa4BxQK5dLN0vwkaASMD4Qn6AV0KeRI5Obt0r3QNDq90PXUOAQgBPAG0dK90eQRaA0sBuANMBbV0wHQgAXEBJTwFAa90vQPLdAZ1HQE1AVEWuHSvdPEGIATsA4whsHS0dKQBBgEcAUsEuHSzdElR2gG4dK90NQE6ASgCiAQYARkBhAE8LMN0r3QuBiUBsnSzdFkE9nTQdFoBfQMKA7d0u3SUARUBsXSzdLoCkga6dLx0MQEZATYQeQGWARJTFAGvdPYLB3XddBABv3S1dP8qswI3AmQEt3RFAbV0r3RVBVsBUQIzA7F0s3QoAUoCsHS1dFkBkwKyAe5CsHSvdOcGCAG/dLB0YQNtAbJ0r3QdFiF12HQUAcB0tnRtBVsBuXSzdB8B43TudA0BpR98AQ8BMyWxdK904BdJHL90wHRPAb10sHRFAQkB4AO0dK90kFwpAWUBqgMFAfUItnSvdGcGMwFNAbZ0Rg0PAQUBkwG2dLJ0ZQEWAX0BIQEsAW8BsXSvdN4aQQEGAa90XFLZdNF01HQGdQ0BrwHgAcJ0r3TTBSABvnSvdMsBDgEJAbUBtHSvdNgjsXTDdAQBzwIWAsN0r3SaCF0BMwE0BrV0r3SgBAQBUAEWArJ0r3TKCw0BpAFoA+wDug2wdK906kSwdL50BAE7A7QMtXSvdMgnLgGkAR8E7APVGrB0r3TSA0QBuXS1dK4BGAGxdLh0LAENAUYBSgW9dK90EQ63dL50BwHGdK905QGeBLB0wnQUATkCvXScCEsBwnRpCbB0w3QSAeMBFgVSQf0NrgGvdDhoEgEQARYFtnSvdDgKBwFpAvoEu3SvdHkWhAG3dLJ0uANzHLB0u3QUAUwBtnS8dOZTt3SzdHoBLwFwBLF0r3QDDLIBt3S8dAsB2XTydAt1hgIHATgB+gSxdK90cwIhAbV0r3RBA6IE0HSvdCcCDQEiAUECvXSvdLRYeQLBAa90rTGxASsBRBm5dLh0iAHsA7Z0vXQFAS0BhwFrAi8Br3ThBlkEuHS7dBwBDwJ9AmsJuQGvdF8UVwS4dLt0RAEuAbJ0r3QgBLR0snTNdM10GQHjBHkBtXSvdGI+QQEoYFwC2QLtERABr3SQCq90JnUPARABwwS2dLJ0sRzfArF0sHTmASEBnmpvAQgB/HS2dGwBXAGkFrR0r3Q9DWkEt3S+dGcBEgG4dK90twLqdOp0r3Q+dWABFwHBCbZ0vHRDEkkCWAHNBbB0snTlBVEBv3RsAYMBr3S/Bp0Bew55A1QBr3Thbg0BQQ+ZAbB0r3Q1ECoBRgFTHL10r3RyadgEYQO0dCQB8gLWdK90bgcPAQsBkwG3dLJ0dwidBBQBrgWwdMB05wEjAbd0WQK/B7N0EwMqAScBHAK4dK90cA9JAbB0vHRzAVEBvXRsAUsBr3TRBr4E0HSvdEwCVQEXAZMMtnSvdKsb53QIdXsFWgHHZrB0xnRxAn0BCgIVAjgBs3RVBuQBtnS0dAUBPgFsFrsBoAIzAgUBr3TGE3YBwnS2dOsCunS2dB1133Q/Abd0r3RHC0EBKwGrAbl0r3RjAUsB7wE2BgUBr3TWdAcBugLYAbF0r3RrBAYBsnSzdCAEQgK0dLd0CQEdAYgLhAOlAq9091k9ATEB2gm6dK90mBGcATgBPwyxdL50CgJRAbh0bAEnAa90cgo9AbV0r3SXGC0B9gmSAioCr3QCG3IBJwHOELh0snTEGZoBBwQWCGkJgUu9dGJkSwGvdC9DRQERAYMLtHSvdHcOLwG9csYCJQK7dLV0aQS0dL50CQG7dLJ0SAGydLJ0bAXUdM10FwK5dFcEKwG7dIIDOgHCdLJ0kSDZdMR0UwFWASIDLwF4B7F083QLPwcBSQEOA7F0r3QUBWwC8wGvdGILHgGEAWMCw3SvdOUy7nSwdJABsCSzAr50unSpD8l0zXQ/ASsBEgK5dK90JwsUAbl0tnQfAXsBVAGPIMV0r3TQFL50tXRXGNB073QnAg8BsXSydLoCGwG+dLV0EgNaAbl0u3QfAQQBnAJZCbB05x6cAa90PQcEARsVCgERAa9002sSARMDegG3dBYFvwevdIAMvHTAdCx13XS3AVoChlIjAcZZCQGvdLYwUAExAlYJunS2dKMwTwG6dLN0mzCvdEF1KgG6Aq90swIGAbd0s3S/BzcBtHS5dAgBDgGydK90bAVFAQUBlQm2dK90cQG1dLp0YQEGda90pRB2AcZ0tnS4ATYCsHS8dDcBfwEQAXRvtnSvdA8LbAGydK90UAE9BTICrlG7dMB0sQMHddZ0BwGKA88JZQGvdIUb2XTYdB4BvwMDBshdr3RAFtR0yXQ6Ab50snT2BSYBunSydE0DUQG7dGwBrwKvdK0ODgGdIL4DOwJrCwUB/XT0dLJ03HQ6ASgBpAFRAs8TsXSydGYB2QFaAR8ftHTTdAkBFQG3dLN0XAV/NewD9HSkAY8CtHS9dBEBIQGvAm8Bu3SvdLlLMQGwdLt0YgF+AbR0r3RBCbJ05nRKAfcCyQZBBOMJBQFiSLZ0r3SCEs509HTaAbl0r3RNAV8BCwHiAbd0snSWCi0BHgKSArt0r3TtB8B0tXTCdLZ0DQFiARACsHSvdGAsyA+1dOV0MwE+ASAEuwGydK90+xCvdP90LAGydLB0rQOhAb90uHTUAUQB1AHXDb90tXSkBA0BTAHgAbZ0r3S6HRcBv3SydP8qwAHLdK906QHHdLF0ynTRdJwJtHS9dAYBLQHJAWsC5AGEGLB0r3TEBEUBGgXSArN0gwt2Aa90JxfvdBJ1JQG3dLN0WwnhdBJ1WQHPAnEBw3TGdMQCSAG5dLJ0CQUgAYsGwAJuAkYVCgKvdPYMznS5dF4BSQH9FLF0r3RmGBIBLwKJDLB0kRZYAa90DhMeARAFYwK+AVgIsHSvdCsWEgEcAZEWuHSvdBwEGgHRARsJt3TkDH0Dr3QkDe90GnWUASMB5AGxdLR0LAHBdNR0r3QRdSJ1tnQFdd90tHS1dA8BJAGrCGED01K/dLJ06wQPAbV0snQFAuwB5AF7B7B0uHTJAfZ03XR+Adx0r3TkBAcBfQOYAbd0r3TRAUUBngF7BLd0lQnwCK90agP4dBJ1QQG5dK90HwGOAbR0vHThW0cB5AjQAgUBUyi2dLV00QLQAdZ073SkAg8BPQKGB7B0qwhZAVcDERWXEyQBz3SNAy0BZwGSArd0r3QhFcV0tHSBAUUCrxcsAq906y4tASwBxgGxdK90AgQaAbB0r3ScAQgBXAUoAbd0HQGwdK90vQYGAVoBng6wdLR0s3RNAQUBqAK2dLN0oAJUAbd0tXQUFgQBVgHeAi8Br3SYBioBlgEcAhQBhgOwdK90NhAzAYUCuwW4dLZ01AsSAfEBuAS4dJEWhQKvdMQSRgI4AbZ0wRQaAUQBBAO4dK90lQ4CB7F0snQVASEBIwLCJoABr3RbBrp0tXTjdNx0FAF9A7ICt3S2dJQBz3TXdHYBHwHyCbl0tnToA2wFcwEiELB0uXSTAd907HQOAU0BjAK5dK90uUfyB2EDsXQkAX4BuHSvdFkZDgFLATwBvXSvdAYJyXTydAQC1nTQdE4DTAFbHg4EKAEXUFECsQFaAQwSsHS4dC8DBiOQAbZ0CwIUAbR0tnQIAQx10HRBAfABr3RsELt0w3ScCKIG+TaAAcJ0jANsBa0DIhCydLl0FAKvdCt1BwG7dK90MgJhAeJ0r3RQBSl1tnQaARABBAO2dK90swcmAcd0snQoAxcBMQEiFrp0OgELAaQBt3SydHMROwEJAXUMtHSvdJAEHXXWdCABWAI2AcB0r3SICh0BAQKcBbl0URYrAa90RgsXArF0VwRRArt0YQIuAVQBtgLFdK90ew7CNcd0xXQkAg8BOAdqARwBqwgJHFNRSVG5dLl0xwF4AzkKtHS7dGcMr3RCdUkCaAeydPMBclsvAet0hwFBAeYBrQGxdK90JgRMAbd0vHTwCC0CsHSydL4BYAGwdLx0GAEaAZ0JBAMMAnsuUQKvdE0M1XTXdEkCsXSydEkBFgImAvwDvwcIVrd0r3TWDBIBtXSvdFcEUQFIAWwBxwWvdLUDPgElIfYBHwGfArl0r3QoD1cY3XTvdM0CFwGzdLJ0dgHrdON0LAEFAVoKtnSwdGUBGwG0dLV0XAF2FgUBsHRxARYLwHS3dPkCBgEfAckBuXSzdGMlTQGCAbx03HTmdLd0DQHbA+ABMQG2Ibp0r3TlODIBt3SvdCgO/HSwdKJSuHTAdGABDgGHAYwCLwH+ArF0r3RZFiEBvHSvdHcJmwKjApAEsXQfH1EC03RhAuZ0sHTvdN10GgGbJ5oBxnQgAkoCr3T7PsJ0wnTOCnsVjxG5dMV0GgILASgByANRArIusXSwdLhIBQFMBJ4BCQERAfcHJAO3dMV0unTBBLF0tHRHAY8BsHSvdMYSx3SydDMBvnS2dMsBDwFMAZgftnQcAbd0snRBDCEBJwFvAbh0r3TEGS11tnTAdLZ0rQHVAygRKAKvdKUSKQG3ApgVuHQ6ATUBfxG4dLJ0LV0JINZ0r3TuAa90P3UNAY0DfAERFVMDJAFcJ2EDr3QPBwoBqgLDQcd013S6dAQBSwHeAr10r3RMBeUBsHSydFkBfwGVAlUSEQGzHLR0r3T7HS4B9wq6A+8Br3S5EQ0Bs3SvdA8ERgELAVsCt3SzdHMRcwG9dLF0SwG9dMN0GAG2dLh0BQGhAUgB4nTidCoBiAG/ASsBERe5dK90awzgdLJ0IQEaFpQELwSvdLdGDQExAXUDunSvdDADxnS1dIIBEwGxdGBZznTodFF1tXR8AboBshaxdDMl4QivdJILGQEXATwstnSvdI8RHAIxWTkEvnSvdB0hsXS3dBIBHiAJAhcBWSi2dK90EgwaAbp0r3QxAh4BBgGZDrR0r3SrBPIHuHSxdDUBdgFzAQADsHS2dDgC6QGOVicDJwMCFmBcjlbpAWBcAhbdZ8t0y3TdZycBt3SwdEEMHgEVAZkOsXSvdG8JHwGnAeQ9snSwdNk7/3QIdT0BunSvdJkKEQHDdLJ0tAUKdfB0r3RPdakfsHSzdCIDuXSydLB0wHQ3Adx0uXTfAhoBvg2aAbwCIALgTlMuvHSvdHoVr3RNdXUCOgEiD710v3QMCrYBtnSvdAALSgEUAWMDsHSvdCsfUwFiAytasHQYAb90uHSDARABtHS1dJNrKQG5dNoBKwGvdAECGgEIAgQDLwGeA7F0r3S6CQ4B/gM8Ab50r3ScCgp1xHTGdLN0PgGDAvYBBQGfArZ0r3QAB690BnXsAYAB+gHHdLh0XANFAcQCewTDdJUJzwKvdLEELAHmCm0CJAGwdH4HNAL8AmwPhAGvdEoJSgG8dK907wkOAUwBZAO2dAB1wXTsdBp17AEkJPoBagGLJ9Ux0AHddO90KwOwdMd0JQG1dLN0VwQOAQ8BegSxdK90IhDQdOd0kAE8Ay00uHS6dDcLIwGwdFkC5AGzdIoCDgEGPYsEKAESAYIMmwOAAa90fgwdAbZ0r3Q9BX4BtnSvdD4IBAEmBN4C5gHwTLF0r3TWAuF0E3UlAZABtAGxdLN0CgovASMCNRSAAeN09HRQAb90tnRfAUEBsQRXDcQCVg/DdK90R0bVdLZ0bwE3BM895wGvdEsrHAFYAToFsHQdAQYBURa0dK90VxMOAfx0CgHIAxYBWAEOASwBPAGxdK90wRILdRwBWgGrAgsGIwH0M9UxQgHvA690Gwv3BHQFsAGwdK90LAXxBrB0SRwYAcB06AEPAbd0snRcBZYC0HSvdAoHlAHiAVEk3wGyA9sBsnTFdNN0unTBAggBxXSeaq90UHWdBLZ0wHQQAccBHAHoBbh0u3RoAjwChAGWNsN0vnTDIC4CsHS+dBQBTQGydLN0bAVdARcBPQq2dK90gQi0dMN0UAE4AbEDsXS2dHMCDQEpOuABlwFnM750r3RnSyYBHwEvArl0snQlIRgBrAENAyMBuHQLJg4BJgJ6BL8HiRe3dAIHtnSydH0BMwG4dLZ0RAEEAUQECgG2dAZAsnS+bK0D6HQUAuwBMQH6Abp0uHS0AdUBQALtMdB0r3Q5Fy0BJQKSAmEDU1q/dK90MhWZAVwEahSCA690SB22A3ABvHR7AgYBCwHJAbd0s3SjER0BagKlBmYDKDErAa90pC7kA4IBw3S+dPAruXSwdEgBLQHUAZICv3SvdKQEvHSzdOQBxXS0dCkDr3RLdb90tXRJArd0snR3AY0Bw3S1dKYRDQEJAUECtHSvdEwEB3XfdAUBtXSwdDMBWQG5dMZ0HwFiCMJ0t3SvAWwBCwJwMpABr3TyBHsFKQNtZcV0xnSGAk0EJAHbdMl0hwTwdNR0oAFoA00BLnXfdB113XTsdAh1RwGxdLV0ugLvdN90FwG3dLJ08AjydMF0v3S/dCEBtnSvdJ4EMg64dLV0RAFYC7B0w3QYAXcBsHS8dFgBDQHFDRACVAHyQ8V0r3TGEBgBLwImUVgBxwGydLt0pwEOAUAEjAJVBpoLOAGkEQoCr3RLLksHu3S5dB4C1nTndL10t3RKAbgBpQ/GdK90GGRBAdpmrQG+dK90xBHzdLh0BXUIdfZ033ReAbB0r3QtDh8fvXTTdCIBFQEFATgCtnSzdGUB7nTjdL10vnTsA7R0vXQIAYYBtXSvdHQl5HTVdDsBRAF1DLh0r3RZBhMBZQGHAQUBuAm2dLN0qwkZAQICTwKFAmQVuHSvdPAWEQLadK90PQOEAcEBDwEhAjkFsHSYHxQBuAGeAT0C8AhjCLd0s3RqA+B0w3Q4G990r3Q1Ax4BLAFQArF0r3TfCVwBsHS8dOQBNQ66dMN0ggFCU5wBZWGwdNd0nAJBAbADMAJyA8gRZgEUUygBr3SlEy0BqgKEGMd0r3QUCfoQuXS9dI0B8gOsBa902zlaAZ8B9DOxdFMBFQKyGRQBCgFNKbwFNAPhUfEXr3TGUHkB6AGvdEAftgG0dK90hwuCAbB0sXRiAR91snQNAcEjCQN+BxcEgAUHF+YKr3SROFUFuHTGdEQBHgEIAqoKLwE3TbF0r3SqDLd0u3R3Abd0vHR9AxIBFwGRFrZ0r3S/EA0BvXSvdAQPCSDQdK90QAIRAbV0snTBBBgBZwISZbF0uHQMJsZ0snQWArIBr3TBC8p08nRLAbd0sHTsBR4B2wMvDzEBGHW3dJUBKQOQCcV0r3QVEZoBIgIgAiwNIwwFAQUBsnSwdFABFQEfATgCuXSzdOYkDgEeArUBu3SvdOoFJQELAXECt3SzdAoDRQWwdNd0YgGvdBV10AHQdO90vgLAdLh0DQE/DCUDrwLBA7t0r3SWGQgBoAJjAQUB/Ay2dLB0bBbOCsN0xXSEAQ0B+QKfFcB0r3QfBUEBVgNXDQgBr3RsLhN19nQTAt90r3TeBfsBEnVdAbZ0r3TID50BsHSvdL4BSwHCdLB0kSAEAQcCUhEYATYrOQKvdEMJQQFTAUotvHSvdJYG7AEoAX0MUQK4dOEDsXS5dF4DsXTKDOEIvnS6ASACDAJrDlECqDCxdK90bgg+AeQBuwGwdK90BAZpAcN0wAEGda900AMIAbB0sHTkAR4BCQGqCrR0r3SADg4BrwI8Abt0r3S7G3wBxQFmAhd1r3QlEUMBtnSvdAQJr3Q7dWkBsHSzdL0GEwG9dLN0BA/CdMN0UAHFdLZ0qgVZArZ0s3QQAR4BHwFQArl0r3R4CBABrgGjASgC8AIYAWozsHSvdGEWxXTFdAcB4Qg0ArF0r3S6ATMBtHS2dAkBr3RYdVUBw3SvdF0NBwFBDIoBt3SvdDoFFAE4Aa0OsXS2dAoCBwFxBA4DwHSvdHsTDgEIA7UB0QTjQLR0r3SEDA8B5AjtAQUBsnTRAh8fuHTTdEQB5RvmAQdpsXTXdCYE8wiAAcJ0IwLydMR0VwEfA0cfFwGvdNgYB3XQdL50s3SSAbZ0r3QKDRQBOgEGFr10UQG+dGwB/gOvdHUNwnTAdE8GxXTFdE8GGQFMASAB/yrWAb90r3TeAwYBZQEMAgUBJRq2dGgBWwE/ErB0r3TOPyEBnldvASQBLgthA9R0wXSxAcQZDSAnAbh0UwQSASgB0QhRAq904AbkBhwGFiWydOZ0bwPzCLZ0wnQXAREBcwGoAbB0EQGydLJ0IATedN50gwOWA690VnUdAbh0r3QrBhIBxwuLA5MBr3S6DCUBs3SzdMcBLwGwdLd0cwEFBgkBNQ6palwBsXS8dFECJgEJAWRFtHSydEwEOwKXAr0GhETPdON0LgEJAbYCtHSvdFgVEQGwdLJ05AEpAbd02gG/B690eARIAQUBlwe2dLJ0oAKIAtF03nTlAmMEt3TudAsBHgHbAWMCBgGaFbR0r3REDQx13XRDATYQwgEUAfIBlgFrY7B0r3T3IBoB2QEEA0wBFh22dO50/XQAdcR07AFNA5NbunS4dNgCwnRuAmkClAG7dNkDIAEGI9YBTwGvdIsxEwGkCg8DCAHaB7R0rSlhDLN03UFUAQUBMRK2dLV0LAIqASwBHAKxdK905CO8dLt0MAJYAXgSsHSvdDYLN3XBdGYC7HSvdJYoLQe8dLB0UwEPBDkCt3QdB3MBLwF3CLF0sXRWAS8BiAE1FCsBSzi5dPx0tHQsAbd0sHRcBQJ143RNASgBqAJRAh8OsXSzdBFlr3TfdNUBgQLtMd10r3TAG8F0xHQOASYBegS3dK902kMeAsd0tXSAAcR01HRFAUQB4AO4dK90EwYdAbV0r3SdBBoB1gliArJ05AxQAa904FivdFl1OwEXARsktnSvdPMfUAG4dLZ0HAE9Ab50r3TYFRwGtnTGdBcBGgHDIMsChAF+CMN0r3SwBRsBWAGpArB0tXTlBZEH1nSvdKQCJQF7AqgDcAF6AWgJgALbAVgEWAE9AY0DcAIRFbcOJAGvdM8EGHW0dCEB0AIVBIIBCSS6dK90WU++AbR0x3QIAdV07nQMA99033RLAjIBuHSvdC43UgG3dNoBfQOvdBYDIAG+CPcDCAGvdE4Mr3TJdI8BlwkmAw8Br3TyFcB0sHR+BJMBFAG/dLZ0gwGbAcEBr3TVNvcBvHSvdCcbewW3dMZ0EwErBlQBwHSlAioBqQ93BL50r3RkBHIBLwLzFFgBsnR0DBkBGALdGLl0ryJ7Fa90zgYJAp8DUgewdK90XwyYArd03Rj3B690STNKAbB0r3TfAa90J3VBAQgBr3SeahUBGAFBARoDMAaxdFcNKAGvdHAOOwN7FcI1uXTFdBgCEQFLB4gBtXTPdO10FAG9dLZ0SwEdAckDURa/CadzuXSvdG8KewVhAwUPv3TGdCQB2Ae2dM90BQEgAUwBSwi2dK902QG3AbN0Dw/JBa90shkgASIC9wMFAa90LA1SAbF02gEvAa90hwE3AcB0uXRtBR4BlwdjAjcBmyiwdK907mb7Ad90vnTcdB4BCAFQArR0r3T3BbZ0vXQCB7d0snQTAVoBUQImKLF0u3QoAewBLwGTW7F0uHSHAdd0tXRDAbV0r3TiBuZ0snRZAeEIcQGxdMZ0LgMeARcBYwK2dK902gsXA7IBIxGwdK90YXXUdPB0BwF3AQ4Dt3SvdM0FXgG2dK90kDBEAbB0tXQYAR4B8wEvD2gH2TqxdK90aRK0ApABNAOxdB4BDwFjArF0r3RqC0UBhgK8DSkDrBjFdK901QVJHLh0wHQ1ARMC0HSvdK8IEXXWdEUBRg3gA00Br3QdFUoBLAjsAo0Br3SFQRd10HTTdNd0HgFoBWMCtAX/AsN0r3TTMpMDtHTCdAgB6gHQdK902AOiBNZ0r3SCAg0BzQN8KkwFMzNLAa90VRQGAbV0s3TBBIEBzATSS9ECr3QfW1EBLwFsAVYBbAKxdK90xBN3AQUB5QW2dLx0gwI1ARkCTgr5A7J0s3QeAQsCZnOQAXcBHzv4ASIBGVq9dNYBoAIEEQUB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WQK5dLN0jQF+AS8BXw2xdK908zFnAR8BVAO5dLV0JSEbAXMBwQGwdLV0OgRtAQsBtwO3dK908F8NASgBmQFRAhwbsXSvdLhIQwQ6BD0ecwFJAQsBOgS3dLx0dwiHAcICRgjDdBEUzwKzdCJe1AI/BBQNcQKjaloBr3SFFdt08HRJHL8JwHTJAzIB9HSvdJkEPwIjARQBuHS2dCcB7AIkAa90IEXBAsJ0xXQGA5AE1gIrBSYELQHwA6kBZQFNDQUBMxa2dLx0x3TDIMEBuHT+BQkBsnS1dCAEGHWxdCcDcCNiBWIFcCMnA45W8G7wbo5WrQFzAhEBOQyIASIBzwa9dA0BWwFKBbB0znTOdMIBw3TyAQgEr3TtPGYBsHT3BXMBvXTgB+sC7AEdAckBnAWwdFEW5AENddd0PAEmB35vlRKvdBgTfgEGAUICZwLOA8B0tXRYAtgHsXTPdCwBBwHgdK90QgMsAZ4BHAW3dFoK8AiwdGkINQGgAhUDBQHyG7Z0s3RXZSgCt3Q8AgsBvnQZAywGoAOvdFw6IAG9dK90IgEFAdkCNwwQAbB0KGAoAXAB0QO9dFEW0VOvdL8lkgbHdLx0gAHbAbd0Age/B7J0eAQyAmcMLC+0dA9JeAOydAoF3wG3dL90CwEuddZ0CgF2A18Kt3TDQWYMz3S6dAoB7gaiCbF0UgIIHBQDHwGvdJddNwG+dLl0/gNqBEwCVxg8FPZO0HTvdAcgbQGzdK90cls1Abd0s3RBDLQDu3TDdMhEkQfQdK90vgJ2AQsB8gm3dLZ0RwISAbx0r3RzEzEBCAGVBLR0u3RhDFMX9HTOdIwEaAELAYEDt3SvdKIP8wGQA30BsXSzdOEIIQG3BToJHwGXC7l0wiYlIa90MxoeAbV0r3T6EA4BVgE8AS8BKQKxdK90rh4JU790vnRhAxQBCAGhA7R0tnSeamwB/WopBDQEr3RmUjoBjwLyErJ0GwG5dLV0NgJRATsCXwgFAa90M09ZAncBs3SpArMBYAHeFLh0r3Rtaw0BGguZAf8Er3R+ERwBuXSydK4BHwGwdLB0NwEZAb1yNgklAtV0tHQ+AQlPuwFgBa90eXIPBHMBt3Q4AoQBBQG6PbZ0snSuHXUBWgGvdJYpFwG2dLJ05lOpBS8BUAVQBahj4nTidKhjDQGPBK90gRMXAbR0snSTa+EBs3SydF8G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" + +const llamaTokenizer = new LlamaTokenizer(); + +if (typeof window !== 'undefined') { + window.llamaTokenizer = llamaTokenizer +} + +export default llamaTokenizer \ No newline at end of file diff --git a/core/llm/llms/Anthropic.ts b/core/llm/llms/Anthropic.ts index 974bfc7cd..213790641 100644 --- a/core/llm/llms/Anthropic.ts +++ b/core/llm/llms/Anthropic.ts @@ -1,29 +1,25 @@ -import { BaseLLM } from ".."; import { ChatMessage, CompletionOptions, LLMOptions, ModelProvider, -} from "../.."; -import { stripImages } from "../countTokens"; -import { streamSse } from "../stream"; +} from "../../index.js"; +import { stripImages } from "../countTokens.js"; +import { BaseLLM } from "../index.js"; +import { streamSse } from "../stream.js"; class Anthropic extends BaseLLM { static providerName: ModelProvider = "anthropic"; static defaultOptions: Partial = { - model: "claude-3-opus-20240229", + model: "claude-3-5-sonnet-20240620", contextLength: 200_000, completionOptions: { - model: "claude-3-opus-20240229", + model: "claude-3-5-sonnet-20240620", maxTokens: 4096, }, apiBase: "https://api.anthropic.com/v1/", }; - constructor(options: LLMOptions) { - super(options); - } - private _convertArgs(options: CompletionOptions) { const finalOptions = { top_k: options.topK, @@ -44,25 +40,23 @@ class Anthropic extends BaseLLM { .map((message) => { if (typeof message.content === "string") { return message; - } else { - return { - ...message, - content: message.content.map((part) => { - if (part.type === "text") { - return part; - } else { - return { - type: "image", - source: { - type: "base64", - media_type: "image/jpeg", - data: part.imageUrl?.url.split(",")[1], - }, - }; - } - }), - }; } + return { + ...message, + content: message.content.map((part) => { + if (part.type === "text") { + return part; + } + return { + type: "image", + source: { + type: "base64", + media_type: "image/jpeg", + data: part.imageUrl?.url.split(",")[1], + }, + }; + }), + }; }); return messages; } diff --git a/core/llm/llms/Bedrock.ts b/core/llm/llms/Bedrock.ts index 138a7f536..19b4c85d2 100644 --- a/core/llm/llms/Bedrock.ts +++ b/core/llm/llms/Bedrock.ts @@ -1,29 +1,20 @@ -import * as fs from "fs"; -import { join as joinPath } from "path"; -import { promisify } from "util"; -import { BaseLLM } from ".."; +import { + BedrockRuntimeClient, + InvokeModelWithResponseStreamCommand, +} from "@aws-sdk/client-bedrock-runtime"; +import { fromIni } from "@aws-sdk/credential-providers"; import { ChatMessage, CompletionOptions, LLMOptions, + MessageContent, ModelProvider, -} from "../.."; -import { stripImages } from "../countTokens"; - -const aws4 = require("aws4"); -const readFile = promisify(fs.readFile); - -namespace BedrockCommon { - export enum Method { - Chat = "invoke", - Completion = "invoke-with-response-stream", - } - export const Service: string = "bedrock"; - export const AuthAlgo: string = "AWS4-HMAC-SHA256"; - export const HashAlgo: string = "sha256"; -} +} from "../../index.js"; +import { stripImages } from "../countTokens.js"; +import { BaseLLM } from "../index.js"; class Bedrock extends BaseLLM { + private static PROFILE_NAME: string = "bedrock"; static providerName: ModelProvider = "bedrock"; static defaultOptions: Partial = { region: "us-east-1", @@ -33,177 +24,191 @@ class Bedrock extends BaseLLM { constructor(options: LLMOptions) { super(options); - this.apiBase = `https://bedrock-runtime.${options.region}.amazonaws.com`; - } - - private _convertModelName(model: string): string { - return ( - { - "claude-3-sonnet-20240229": "anthropic.claude-3-sonnet-20240229-v1:0", - "claude-3-haiku-20240307": "anthropic.claude-3-haiku-20240307-v1:0", - "claude-2": "anthropic.claude-v2:1", - }[model] ?? model - ); + if (!options.apiBase) { + this.apiBase = `https://bedrock-runtime.${options.region}.amazonaws.com`; + } } - private _convertArgs(options: CompletionOptions) { - const finalOptions = { - top_k: options.topK, - top_p: options.topP, - temperature: options.temperature, - max_tokens: options.maxTokens ?? 4096, - stop_sequences: options.stop, - }; - - return finalOptions; + protected async *_streamComplete( + prompt: string, + options: CompletionOptions, + ): AsyncGenerator { + const messages = [{ role: "user" as const, content: prompt }]; + for await (const update of this._streamChat(messages, options)) { + yield stripImages(update.content); + } } - private _convertMessages(msgs: ChatMessage[]): any[] { - const messages = msgs - .filter((m) => m.role !== "system") - .map((message) => { - if (typeof message.content === "string") { - return message; - } else { - return { - ...message, - content: message.content.map((part) => { - if (part.type === "text") { - return part; - } else { - return { - type: "image", - source: { - type: "base64", - media_type: "image/jpeg", - data: part.imageUrl?.url.split(",")[1], - }, - }; - } - }), - }; + protected async *_streamChat( + messages: ChatMessage[], + options: CompletionOptions, + ): AsyncGenerator { + const credentials = await this._getCredentials(); + const client = new BedrockRuntimeClient({ + region: this.region, + credentials: { + accessKeyId: credentials.accessKeyId, + secretAccessKey: credentials.secretAccessKey, + sessionToken: credentials.sessionToken || "", + }, + }); + const toolkit = this._getToolkit(options.model); + const command = toolkit.generateCommand(messages, options); + const response = await client.send(command); + if (response.body) { + for await (const value of response.body) { + const text = toolkit.unwrapResponseChunk(value); + if (text) { + yield { role: "assistant", content: text }; } - }); - return messages; + } + } } - private _parseCredentialsFile(fileContents: string) { - const profiles: { [key: string]: any } = {}; - const lines = fileContents.trim().split("\n"); - - let currentProfile: string | null = null; + private async _getCredentials() { + try { + return await fromIni({ + profile: Bedrock.PROFILE_NAME, + })(); + } catch (e) { + console.warn( + `AWS profile with name ${Bedrock.PROFILE_NAME} not found in ~/.aws/credentials, using default profile`, + ); + return await fromIni()(); + } + } - for (const line of lines) { - const trimmedLine = line.trim(); + private _getToolkit(model: string): BedrockModelToolkit { + if (model.includes("claude-3")) { + return new AnthropicClaude3Toolkit(this); + } else if (model.includes("llama")) { + return new Llama3Toolkit(this); + } else { + throw new Error( + `Model ${model} is currently not supported in Continue for Bedrock`, + ); + } + } +} - if (trimmedLine.startsWith("[") && trimmedLine.endsWith("]")) { - currentProfile = trimmedLine.slice(1, -1); - profiles[currentProfile] = {}; - } else if (currentProfile !== null && trimmedLine.includes("=")) { - const [key, value] = trimmedLine.split("="); - const trimmedKey = key.trim(); - const trimmedValue = value.trim(); +interface BedrockModelToolkit { + generateCommand( + messages: ChatMessage[], + options: CompletionOptions, + ): InvokeModelWithResponseStreamCommand; + unwrapResponseChunk(rawValue: any): string; +} - if (trimmedKey === "aws_access_key_id") { - profiles[currentProfile].accessKeyId = trimmedValue; - } else if (trimmedKey === "aws_secret_access_key") { - profiles[currentProfile].secretAccessKey = trimmedValue; - } else if (trimmedKey === "aws_session_token") { - profiles[currentProfile].sessionToken = trimmedValue; - } - } - } +class AnthropicClaude3Toolkit implements BedrockModelToolkit { + constructor(private bedrock: Bedrock) {} + generateCommand( + messages: ChatMessage[], + options: CompletionOptions, + ): InvokeModelWithResponseStreamCommand { + const payload = { + anthropic_version: "bedrock-2023-05-31", + max_tokens: options.maxTokens, + system: this.bedrock.systemMessage, + messages: this._convertMessages(messages), + temperature: options.temperature, + top_p: options.topP, + top_k: options.topK, + // each stop sequence must contain non-whitespace + stop_sequences: options.stop?.filter((stop) => stop.trim() !== ""), + }; + return new InvokeModelWithResponseStreamCommand({ + body: new TextEncoder().encode(JSON.stringify(payload)), + contentType: "application/json", + modelId: options.model, + }); + } - return profiles; + private _convertMessages(msgs: ChatMessage[]): any[] { + return msgs + .filter((m) => m.role !== "system") + .map((message) => this._convertMessage(message)); } - private async _fetchWithAwsAuthSigV4( - apiMethod: BedrockCommon.Method, - body: string, - model: string, - ): Promise { - const path = `/model/${model}/${apiMethod}`; - const opts = { - headers: { - accept: - apiMethod === BedrockCommon.Method.Chat - ? "application/json" - : "application/vnd.amazon.eventstream", - "content-type": "application/json", - "x-amzn-bedrock-accept": "*/*", - }, - path: path, - body: body, - service: "bedrock", - host: new URL(this.apiBase!).host, - region: this.region, + private _convertMessage(message: ChatMessage): any { + return { + role: message.role, + content: this._convertMessageContent(message.content), }; + } - let accessKeyId: string, secretAccessKey: string, sessionToken: string; - - try { - const data = await readFile( - joinPath(process.env.HOME!, ".aws", "credentials"), - "utf8", - ); - const credentials = this._parseCredentialsFile(data); - accessKeyId = credentials.bedrock.accessKeyId; - secretAccessKey = credentials.bedrock.secretAccessKey; - sessionToken = credentials.bedrock.sessionToken || ""; - } catch (err) { - console.error("Error reading AWS credentials", err); - return new Response("403"); + private _convertMessageContent(messageContent: MessageContent): any { + if (typeof messageContent === "string") { + return messageContent; } - return await this.fetch(new URL(`${this.apiBase}${path}`), { - method: "POST", - headers: aws4.sign(opts, { accessKeyId, secretAccessKey, sessionToken })[ - "headers" - ], - body: body, + return messageContent.map((part) => { + if (part.type === "text") { + return part; + } + return { + type: "image", + source: { + type: "base64", + media_type: "image/jpeg", + data: part.imageUrl?.url.split(",")[1], + }, + }; }); } - - protected async *_streamComplete( - prompt: string, - options: CompletionOptions, - ): AsyncGenerator { - const messages = [{ role: "user" as const, content: prompt }]; - for await (const update of this._streamChat(messages, options)) { - yield stripImages(update.content); - } - // TODO: Couldn't seem to get this stream API working yet. Deferring to _streamChat. - // import { streamSse } from "../stream"; - // const response = await this._fetchWithAwsAuthSigV4(BedrockCommon.Method.Completion, JSON.stringify({ - // ...this._convertArgs(options), - // max_tokens: undefined, // Delete this key in favor of the correct one for the Completions API. - // max_tokens_to_sample: options.maxTokens, - // prompt: `\n\nHuman: ${prompt}\n\nAssistant:`, - // }) - // ); - // for await (const value of streamSse(response)) { - // if (value.completion) { - // yield value.completion - // } - // } + unwrapResponseChunk(rawValue: any): string { + const binaryChunk = rawValue.chunk?.bytes; + const textChunk = new TextDecoder().decode(binaryChunk); + const chunk = JSON.parse(textChunk).delta?.text; + return chunk; } +} - protected async *_streamChat( +class Llama3Toolkit implements BedrockModelToolkit { + constructor(private bedrock: Bedrock) {} + generateCommand( messages: ChatMessage[], options: CompletionOptions, - ): AsyncGenerator { - const response = await this._fetchWithAwsAuthSigV4( - BedrockCommon.Method.Chat, - JSON.stringify({ - ...this._convertArgs(options), - messages: this._convertMessages(messages), - anthropic_version: "bedrock-2023-05-31", // Fixed, required parameter for Chat API. - }), - this._convertModelName(options.model), - ); - yield { - role: "assistant", - content: (await response.json()).content[0].text, + ): InvokeModelWithResponseStreamCommand { + let prompt = "<|begin_of_text|>"; + if (this.bedrock.systemMessage) { + prompt += `<|start_header_id|>system<|end_header_id|>${this.bedrock.systemMessage}<|eot_id|>`; + } + for (const message of messages) { + let content = ""; + if (typeof message.content === "string") { + content = message.content; + } else { + for (const part of message.content) { + if (part.type === "text") { + content += part.text || ""; + } else { + console.warn("Skipping non-text message part", part); + } + } + } + if (content) { + prompt += `<|start_header_id|>${message.role}<|end_header_id|>${content}<|eot_id|>`; + } + } + prompt += "<|start_header_id|>assistant<|end_header_id|>"; + + const payload = { + prompt, + max_gen_len: options.maxTokens, + temperature: options.temperature, + top_p: options.topP, }; + + return new InvokeModelWithResponseStreamCommand({ + body: new TextEncoder().encode(JSON.stringify(payload)), + contentType: "application/json", + modelId: options.model, + }); + } + unwrapResponseChunk(rawValue: any): string { + const binaryChunk = rawValue.chunk?.bytes; + const textChunk = new TextDecoder().decode(binaryChunk); + const chunk = JSON.parse(textChunk).generation; + return chunk; } } diff --git a/core/llm/llms/Cloudflare.ts b/core/llm/llms/Cloudflare.ts new file mode 100644 index 000000000..dcaf333c4 --- /dev/null +++ b/core/llm/llms/Cloudflare.ts @@ -0,0 +1,59 @@ +import { BaseLLM } from "../index.js"; +import { ChatMessage, CompletionOptions, ModelProvider } from "../../index.js"; +import { stripImages } from "../countTokens.js"; +import { streamSse } from "../stream.js"; + +export default class Cloudflare extends BaseLLM { + static providerName: ModelProvider = "cloudflare"; + + private _convertArgs(options: CompletionOptions) { + const finalOptions = { + max_tokens: options.maxTokens, + }; + + return finalOptions; + } + + protected async *_streamChat( + messages: ChatMessage[], + options: CompletionOptions, + ): AsyncGenerator { + const headers = { + "Content-Type": "application/json", + Authorization: `Bearer ${this.apiKey}`, + ...this.requestOptions?.headers, + }; + const url = this.aiGatewaySlug + ? `https://gateway.ai.cloudflare.com/v1/${this.accountId}/${this.aiGatewaySlug}/workers-ai/v1/chat/completions` + : `https://api.cloudflare.com/client/v4/accounts/${this.accountId}/ai/v1/chat/completions`; + const resp = await this.fetch(new URL(url), { + method: "POST", + headers, + body: JSON.stringify({ + messages, + stream: true, + model: this.model, + ...this._convertArgs(options), + }), + }); + + for await (const value of streamSse(resp)) { + console.log(value); + if (value.choices?.[0]?.delta?.content) { + yield value.choices[0].delta; + } + } + } + + protected async *_streamComplete( + prompt: string, + options: CompletionOptions, + ): AsyncGenerator { + for await (const chunk of this._streamChat( + [{ role: "user", content: prompt }], + options, + )) { + yield stripImages(chunk.content); + } + } +} diff --git a/core/llm/llms/Cohere.ts b/core/llm/llms/Cohere.ts new file mode 100644 index 000000000..6ca492bb2 --- /dev/null +++ b/core/llm/llms/Cohere.ts @@ -0,0 +1,92 @@ +import { BaseLLM } from "../index.js"; +import { + ChatMessage, + CompletionOptions, + LLMOptions, + ModelProvider, +} from "../../index.js"; +import { stripImages } from "../countTokens.js"; +import { streamJSON } from "../stream.js"; + +class Cohere extends BaseLLM { + static providerName: ModelProvider = "cohere"; + static defaultOptions: Partial = { + apiBase: "https://api.cohere.ai/v1", + }; + static maxStopSequences = 5; + + private _convertMessages(msgs: ChatMessage[]): any[] { + const messages = []; + for (const m of msgs) { + if (m.role === "system" || !m.content) { + continue; + } + messages.push({ + role: m.role === "assistant" ? "chatbot" : m.role, + message: m.content, + }); + } + return messages; + } + + private _convertArgs(options: CompletionOptions) { + return { + model: options.model, + stream: options.stream ?? true, + temperature: options.temperature, + max_tokens: options.maxTokens, + k: options.topK, + p: options.topP, + stop_sequences: options.stop?.slice(0, Cohere.maxStopSequences), + frequency_penalty: options.frequencyPenalty, + presence_penalty: options.presencePenalty, + raw_prompting: options.raw, + }; + } + + protected async *_streamComplete( + prompt: string, + options: CompletionOptions, + ): AsyncGenerator { + const messages = [{ role: "user" as const, content: prompt }]; + for await (const update of this._streamChat(messages, options)) { + yield stripImages(update.content); + } + } + + protected async *_streamChat( + messages: ChatMessage[], + options: CompletionOptions, + ): AsyncGenerator { + const headers = { + "Content-Type": "application/json", + Authorization: `Bearer ${this.apiKey}`, + ...this.requestOptions?.headers, + }; + + const resp = await this.fetch(new URL("chat", this.apiBase), { + method: "POST", + headers, + body: JSON.stringify({ + ...this._convertArgs(options), + message: messages.pop()?.content, + chat_history: this._convertMessages(messages), + preamble: this.systemMessage, + }), + }); + + if (options.stream === false) { + const data = await resp.json(); + yield { role: "assistant", content: data.text }; + return; + } + + for await (const value of streamJSON(resp)) { + if (value.event_type === "text-generation") { + yield { role: "assistant", content: value.text }; + } + } + } +} + +export default Cohere; diff --git a/core/llm/llms/CustomLLM.ts b/core/llm/llms/CustomLLM.ts index 38a5adaa4..487eec7d9 100644 --- a/core/llm/llms/CustomLLM.ts +++ b/core/llm/llms/CustomLLM.ts @@ -1,7 +1,16 @@ -import { BaseLLM } from ".."; -import { ChatMessage, CompletionOptions, CustomLLM } from "../.."; +import { BaseLLM } from "../index.js"; +import { + ChatMessage, + CompletionOptions, + CustomLLM, + ModelProvider, +} from "../../index.js"; class CustomLLMClass extends BaseLLM { + get providerName(): ModelProvider { + return "custom"; + } + private customStreamCompletion?: ( prompt: string, options: CompletionOptions, diff --git a/core/llm/llms/DeepInfra.ts b/core/llm/llms/DeepInfra.ts index 1a6952cfa..6b33a4bdc 100644 --- a/core/llm/llms/DeepInfra.ts +++ b/core/llm/llms/DeepInfra.ts @@ -1,5 +1,5 @@ -import { LLMOptions, ModelProvider } from "../.."; -import OpenAI from "./OpenAI"; +import { LLMOptions, ModelProvider } from "../../index.js"; +import OpenAI from "./OpenAI.js"; class DeepInfra extends OpenAI { static providerName: ModelProvider = "deepinfra"; diff --git a/core/llm/llms/Deepseek.ts b/core/llm/llms/Deepseek.ts new file mode 100644 index 000000000..48dc9e61b --- /dev/null +++ b/core/llm/llms/Deepseek.ts @@ -0,0 +1,18 @@ +import { LLMOptions, ModelProvider } from "../../index.js"; +import { osModelsEditPrompt } from "../templates/edit.js"; +import OpenAI from "./OpenAI.js"; + +class Deepseek extends OpenAI { + static providerName: ModelProvider = "deepseek"; + static defaultOptions: Partial = { + apiBase: "https://api.deepseek.com/", + model: "deepseek-coder", + promptTemplates: { + edit: osModelsEditPrompt, + }, + useLegacyCompletionsEndpoint: false, + }; + protected maxStopWords: number | undefined = 16; +} + +export default Deepseek; diff --git a/core/llm/llms/Fireworks.ts b/core/llm/llms/Fireworks.ts new file mode 100644 index 000000000..02a310761 --- /dev/null +++ b/core/llm/llms/Fireworks.ts @@ -0,0 +1,18 @@ +import { LLMOptions, ModelProvider } from "../../index.js"; +import OpenAI from "./OpenAI.js"; + +class Fireworks extends OpenAI { + static providerName: ModelProvider = "fireworks"; + static defaultOptions: Partial = { + apiBase: "https://api.fireworks.ai/inference/v1", + }; + + private static modelConversion: { [key: string]: string } = { + "starcoder-7b": "accounts/fireworks/models/starcoder-7b", + }; + protected _convertModelName(model: string): string { + return Fireworks.modelConversion[model] ?? model; + } +} + +export default Fireworks; diff --git a/core/llm/llms/Flowise.ts b/core/llm/llms/Flowise.ts index 482bcce25..14e2451e4 100644 --- a/core/llm/llms/Flowise.ts +++ b/core/llm/llms/Flowise.ts @@ -1,12 +1,12 @@ import socketIOClient, { Socket } from "socket.io-client"; -import { BaseLLM } from ".."; import { ChatMessage, CompletionOptions, LLMOptions, ModelProvider, -} from "../.."; -import { stripImages } from "../countTokens"; +} from "../../index.js"; +import { stripImages } from "../countTokens.js"; +import { BaseLLM } from "../index.js"; interface IFlowiseApiOptions { /** Sampling temperature to use */ @@ -67,7 +67,7 @@ class Flowise extends BaseLLM { }; protected additionalFlowiseConfiguration: IFlowiseKeyValueProperty[] = []; - protected timeout: number = 5000; + protected timeout = 5000; protected additionalHeaders: IFlowiseKeyValueProperty[] = []; constructor(options: IFlowiseProviderLLMOptions) { @@ -92,7 +92,7 @@ class Flowise extends BaseLLM { }; if (this.apiKey) { - headers["Authorization"] = `Bearer ${this.apiKey}`; + headers.Authorization = `Bearer ${this.apiKey}`; } for (const additionalHeader of this.additionalHeaders) { diff --git a/core/llm/llms/FreeTrial.ts b/core/llm/llms/FreeTrial.ts index 05cec040e..4c641bc47 100644 --- a/core/llm/llms/FreeTrial.ts +++ b/core/llm/llms/FreeTrial.ts @@ -1,20 +1,48 @@ -import { BaseLLM } from ".."; -import { ChatMessage, CompletionOptions, ModelProvider } from "../.."; -import { getHeaders } from "../../continueServer/stubs/headers"; -import { SERVER_URL } from "../../util/parameters"; -import { streamResponse } from "../stream"; +import { TRIAL_FIM_MODEL } from "../../config/onboarding.js"; +import { getHeaders } from "../../continueServer/stubs/headers.js"; +import { constants } from "../../deploy/constants.js"; +import { ChatMessage, CompletionOptions, ModelProvider } from "../../index.js"; +import { Telemetry } from "../../util/logging.js"; +import { BaseLLM } from "../index.js"; +import { streamResponse } from "../stream.js"; class FreeTrial extends BaseLLM { static providerName: ModelProvider = "free-trial"; - private _getHeaders() { + private ghAuthToken: string | undefined = undefined; + + setupGhAuthToken(ghAuthToken: string | undefined) { + this.ghAuthToken = ghAuthToken; + } + + private async _getHeaders() { + if (!this.ghAuthToken) { + throw new Error( + "Please sign in with GitHub in order to use the free trial. If you'd like to use Continue without signing in, you can set up your own local model or API key.", + ); + } return { - uniqueId: this.uniqueId || "None", "Content-Type": "application/json", - ...getHeaders(), + Authorization: `Bearer ${this.ghAuthToken}`, + ...(await getHeaders()), }; } + private async _countTokens(prompt: string, model: string, isPrompt: boolean) { + // if (!Telemetry.client) { + // throw new Error( + // 'In order to use the free trial, telemetry must be enabled so that we can monitor abuse. To enable telemetry, set "allowAnonymousTelemetry": true in config.json and make sure the box is checked in IDE settings. If you use your own model (local or API key), telemetry will never be required.', + // ); + // } + const event = isPrompt + ? "free_trial_prompt_tokens" + : "free_trial_completion_tokens"; + Telemetry.capture(event, { + tokens: this.countTokens(prompt), + model, + }); + } + private _convertArgs(options: CompletionOptions): any { return { model: options.model, @@ -22,7 +50,7 @@ class FreeTrial extends BaseLLM { presence_penalty: options.presencePenalty, max_tokens: options.maxTokens, stop: - options.model === "starcoder-7b" + options.model === TRIAL_FIM_MODEL ? options.stop : options.stop?.slice(0, 2), temperature: options.temperature, @@ -36,18 +64,23 @@ class FreeTrial extends BaseLLM { ): AsyncGenerator { const args = this._convertArgs(this.collectArgs(options)); - const response = await this.fetch(`${SERVER_URL}/stream_complete`, { + await this._countTokens(prompt, args.model, true); + + const response = await this.fetch(`${constants.a}/stream_complete`, { method: "POST", - headers: this._getHeaders(), + headers: await this._getHeaders(), body: JSON.stringify({ prompt, ...args, }), }); + let completion = ""; for await (const value of streamResponse(response)) { yield value; + completion += value; } + this._countTokens(completion, args.model, false); } protected _convertMessage(message: ChatMessage) { @@ -74,33 +107,69 @@ class FreeTrial extends BaseLLM { ): AsyncGenerator { const args = this._convertArgs(this.collectArgs(options)); - const response = await this.fetch(`${SERVER_URL}/stream_chat`, { + await this._countTokens( + messages.map((m) => m.content).join("\n"), + args.model, + true, + ); + + const response = await this.fetch(`${constants.a}/stream_chat`, { method: "POST", - headers: this._getHeaders(), + headers: await this._getHeaders(), body: JSON.stringify({ messages: messages.map(this._convertMessage), ...args, }), }); + let completion = ""; for await (const chunk of streamResponse(response)) { yield { role: "assistant", content: chunk, }; + completion += chunk; + } + this._countTokens(completion, args.model, false); + } + + supportsFim(): boolean { + return this.model === "codestral-latest"; + } + + async *_streamFim( + prefix: string, + suffix: string, + options: CompletionOptions, + ): AsyncGenerator { + const args = this._convertArgs(this.collectArgs(options)); + const resp = await this.fetch(`${constants.a}/stream_fim`, { + method: "POST", + headers: await this._getHeaders(), + body: JSON.stringify({ + prefix, + suffix, + ...args, + }), + }); + + let completion = ""; + for await (const value of streamResponse(resp)) { + yield value; + completion += value; } + this._countTokens(completion, args.model, false); } async listModels(): Promise { return [ + "codestral-latest", + "claude-3-5-sonnet-20240620", + "llama3-70b", + "gpt-4o", "gpt-3.5-turbo", - "gpt-4", - "gemini-pro", - "gpt-4-vision-preview", - "codellama-70b", - "claude-3-opus-20240229", - "claude-3-sonnet-20240229", "claude-3-haiku-20240307", + "gemini-1.5-pro-latest", ]; } } diff --git a/core/llm/llms/Gemini.ts b/core/llm/llms/Gemini.ts index 836bdf970..422f42e06 100644 --- a/core/llm/llms/Gemini.ts +++ b/core/llm/llms/Gemini.ts @@ -1,72 +1,242 @@ -import { BaseLLM } from ".."; import { ChatMessage, CompletionOptions, LLMOptions, + MessagePart, ModelProvider, -} from "../.."; -import { stripImages } from "../countTokens"; +} from "../../index.js"; +import { stripImages } from "../countTokens.js"; +import { BaseLLM } from "../index.js"; +import { streamResponse } from "../stream.js"; class Gemini extends BaseLLM { static providerName: ModelProvider = "gemini"; static defaultOptions: Partial = { model: "gemini-pro", - region: "us-central1", + apiBase: "https://generativelanguage.googleapis.com/v1beta/", }; + // Function to convert completion options to Gemini format + private _convertArgs(options: CompletionOptions) { + const finalOptions: any = {}; // Initialize an empty object + + // Map known options + if (options.topK) { + finalOptions.topK = options.topK; + } + if (options.topP) { + finalOptions.topP = options.topP; + } + if (options.temperature !== undefined && options.temperature !== null) { + finalOptions.temperature = options.temperature; + } + if (options.maxTokens) { + finalOptions.maxOutputTokens = options.maxTokens; + } + if (options.stop) { + finalOptions.stopSequences = options.stop.filter((x) => x.trim() !== ""); + } + + return { generationConfig: finalOptions }; // Wrap options under 'generationConfig' + } + protected async *_streamComplete( prompt: string, options: CompletionOptions, ): AsyncGenerator { - for await (const chunk of this._streamChat( - [{ role: "user", content: prompt }], + for await (const message of this._streamChat( + [{ content: prompt, role: "user" }], options, )) { - yield stripImages(chunk.content); + yield stripImages(message.content); + } + } + + private removeSystemMessage(messages: ChatMessage[]) { + const msgs = [...messages]; + + if (msgs[0]?.role === "system") { + const sysMsg = msgs.shift()?.content; + // @ts-ignore + if (msgs[0]?.role === "user") { + msgs[0].content = `System message - follow these instructions in every response: ${sysMsg}\n\n---\n\n${msgs[0].content}`; + } } + + return msgs; } protected async *_streamChat( messages: ChatMessage[], options: CompletionOptions, ): AsyncGenerator { - const apiUrl = `https://${this.region}-aiplatform.googleapis.com/v1/projects/${this.projectId}/locations/${this.region}/publishers/google/models/gemini-pro:streamGenerateContent`; - const body = { - contents: messages.map((msg) => { + // Ensure this.apiBase is used if available, otherwise use default + const apiBase = + this.apiBase || + Gemini.defaultOptions?.apiBase || + "https://generativelanguage.googleapis.com/v1beta/"; // Determine if it's a v1 API call based on apiBase + const isV1API = apiBase.includes("/v1/"); + + // Conditionally apply removeSystemMessage + const convertedMsgs = isV1API + ? this.removeSystemMessage(messages) + : messages; + + if (options.model.includes("gemini")) { + for await (const message of this.streamChatGemini( + convertedMsgs, + options, + )) { + yield message; + } + } else { + for await (const message of this.streamChatBison( + convertedMsgs, + options, + )) { + yield message; + } + } + } + + private _continuePartToGeminiPart(part: MessagePart) { + return part.type === "text" + ? { + text: part.text, + } + : { + inlineData: { + mimeType: "image/jpeg", + data: part.imageUrl?.url.split(",")[1], + }, + }; + } + + private async *streamChatGemini( + messages: ChatMessage[], + options: CompletionOptions, + ): AsyncGenerator { + const apiURL = new URL( + `models/${options.model}:streamGenerateContent?key=${this.apiKey}`, + this.apiBase, + ); + // This feels hacky to repeat code from above function but was the quickest + // way to ensure system message re-formatting isn't done if user has specified v1 + const apiBase = + this.apiBase || + Gemini.defaultOptions?.apiBase || + "https://generativelanguage.googleapis.com/v1beta/"; // Determine if it's a v1 API call based on apiBase + const isV1API = apiBase.includes("/v1/"); + + const contents = messages + .map((msg) => { + if (msg.role === "system" && !isV1API) { + return null; // Don't include system message in contents + } return { - role: msg.role === "assistant" ? "ASSISTANT" : "USER", - parts: [{ text: msg.content }], + role: msg.role === "assistant" ? "model" : "user", + parts: + typeof msg.content === "string" + ? [{ text: msg.content }] + : msg.content.map(this._continuePartToGeminiPart), }; - }), - generationConfig: { - temperature: options.temperature, - topP: options.topP, - topK: options.topK, - candidateCount: 1, - maxOutputTokens: options.maxTokens, - stopSequences: options.stop, - }, + }) + .filter((c) => c !== null); + + const body = { + ...this._convertArgs(options), + contents, + // if this.systemMessage is defined, reformat it for Gemini API + ...(this.systemMessage && + !isV1API && { + systemInstruction: { parts: [{ text: this.systemMessage }] }, + }), }; - const response = await this.fetch(apiUrl, { + const response = await this.fetch(apiURL, { method: "POST", body: JSON.stringify(body), - headers: { - Authorization: `Bearer ${this.apiKey}`, - "Content-Type": "application/json; charset=utf-8", - }, }); - const data = await response.json(); - if (data[0]?.error) { - throw new Error(data[0].error.message); + + let buffer = ""; + for await (const chunk of streamResponse(response)) { + buffer += chunk; + if (buffer.startsWith("[")) { + buffer = buffer.slice(1); + } + if (buffer.endsWith("]")) { + buffer = buffer.slice(0, -1); + } + if (buffer.startsWith(",")) { + buffer = buffer.slice(1); + } + + const parts = buffer.split("\n,"); + + let foundIncomplete = false; + for (let i = 0; i < parts.length; i++) { + const part = parts[i]; + let data; + try { + data = JSON.parse(part); + } catch (e) { + foundIncomplete = true; + continue; // yo! + } + if (data.error) { + throw new Error(data.error.message); + } + // Check for existence of each level before accessing the final 'text' property + if (data?.candidates?.[0]?.content?.parts?.[0]?.text) { + // Incrementally stream the content to make it smoother + const content = data.candidates[0].content.parts[0].text; + const words = content.split(/(\s+)/); + const delaySeconds = Math.min(4.0 / (words.length + 1), 0.1); + while (words.length > 0) { + const wordsToYield = Math.min(3, words.length); + yield { + role: "assistant", + content: words.splice(0, wordsToYield).join(""), + }; + await delay(delaySeconds); + } + } else { + // Handle the case where the expected data structure is not found + console.warn('Unexpected response format:', data); + } + } + if (foundIncomplete) { + buffer = parts[parts.length - 1]; + } else { + buffer = ""; + } } - let combinedText = ""; - for (const entry of data || []) { - combinedText += entry?.candidates?.[0]?.content?.parts?.[0]?.text || ""; + } + private async *streamChatBison( + messages: ChatMessage[], + options: CompletionOptions, + ): AsyncGenerator { + const msgList = []; + for (const message of messages) { + msgList.push({ content: message.content }); } - yield { role: "assistant", content: combinedText.trim() }; + const apiURL = new URL( + `models/${options.model}:generateMessage?key=${this.apiKey}`, + this.apiBase, + ); + const body = { prompt: { messages: msgList } }; + const response = await this.fetch(apiURL, { + method: "POST", + body: JSON.stringify(body), + }); + const data = await response.json(); + yield { role: "assistant", content: data.candidates[0].content }; } } +async function delay(seconds: number) { + return new Promise((resolve) => setTimeout(resolve, seconds * 1000)); +} + export default Gemini; diff --git a/core/llm/llms/Groq.ts b/core/llm/llms/Groq.ts index 6c9515795..0aa5b5636 100644 --- a/core/llm/llms/Groq.ts +++ b/core/llm/llms/Groq.ts @@ -1,16 +1,19 @@ -import { LLMOptions, ModelProvider } from "../.."; -import OpenAI from "./OpenAI"; +import { LLMOptions, ModelProvider } from "../../index.js"; +import OpenAI from "./OpenAI.js"; class Groq extends OpenAI { static providerName: ModelProvider = "groq"; static defaultOptions: Partial = { apiBase: "https://api.groq.com/openai/v1/", }; + protected maxStopWords: number | undefined = 4; private static modelConversion: { [key: string]: string } = { "llama2-70b": "llama2-70b-4096", "mistral-8x7b": "mixtral-8x7b-32768", gemma: "gemma-7b-it", + "llama3-8b": "llama3-8b-8192", + "llama3-70b": "llama3-70b-8192", }; protected _convertModelName(model: string): string { return Groq.modelConversion[model] ?? model; diff --git a/core/llm/llms/HuggingFaceInferenceAPI.ts b/core/llm/llms/HuggingFaceInferenceAPI.ts index 001680523..a016a357d 100644 --- a/core/llm/llms/HuggingFaceInferenceAPI.ts +++ b/core/llm/llms/HuggingFaceInferenceAPI.ts @@ -1,6 +1,7 @@ -import { BaseLLM } from ".."; -import { CompletionOptions, ModelProvider } from "../.."; -import { streamSse } from "../stream"; +import { stopAtStopTokens } from "../../autocomplete/charStream.js"; +import { CompletionOptions, ModelProvider } from "../../index.js"; +import { BaseLLM } from "../index.js"; +import { streamSse } from "../stream.js"; class HuggingFaceInferenceAPI extends BaseLLM { static providerName: ModelProvider = "huggingface-inference-api"; @@ -37,14 +38,21 @@ class HuggingFaceInferenceAPI extends BaseLLM { parameters: this._convertArgs(options), }), }); - for await (const chunk of streamSse(response)) { - let text = chunk?.token?.text ?? ""; - if (text.endsWith("")) { - yield text.slice(0, -5); - } else { - yield text; + + async function* stream() { + for await (const chunk of streamSse(response)) { + const text = chunk?.token?.text ?? ""; + if (text.endsWith("")) { + yield text.slice(0, -5); + } else { + yield text; + } } } + + for await (const text of stopAtStopTokens(stream(), options.stop ?? [])) { + yield text; + } } } diff --git a/core/llm/llms/HuggingFaceTGI.ts b/core/llm/llms/HuggingFaceTGI.ts index f7f759e1e..947e15e6f 100644 --- a/core/llm/llms/HuggingFaceTGI.ts +++ b/core/llm/llms/HuggingFaceTGI.ts @@ -1,6 +1,6 @@ -import { BaseLLM } from ".."; -import { CompletionOptions, LLMOptions, ModelProvider } from "../.."; -import { streamSse } from "../stream"; +import { CompletionOptions, LLMOptions, ModelProvider } from "../../index.js"; +import { BaseLLM } from "../index.js"; +import { streamSse } from "../stream.js"; class HuggingFaceTGI extends BaseLLM { static providerName: ModelProvider = "huggingface-tgi"; @@ -23,7 +23,7 @@ class HuggingFaceTGI extends BaseLLM { } const json = await response.json(); this.model = json.model_id; - this.contextLength = parseInt(json.max_input_length); + this.contextLength = Number.parseInt(json.max_input_length); }); } diff --git a/core/llm/llms/LMStudio.ts b/core/llm/llms/LMStudio.ts index 5a63701e1..d1e15c395 100644 --- a/core/llm/llms/LMStudio.ts +++ b/core/llm/llms/LMStudio.ts @@ -1,5 +1,5 @@ -import { LLMOptions, ModelProvider } from "../.."; -import OpenAI from "./OpenAI"; +import { LLMOptions, ModelProvider } from "../../index.js"; +import OpenAI from "./OpenAI.js"; class LMStudio extends OpenAI { static providerName: ModelProvider = "lmstudio"; diff --git a/core/llm/llms/LlamaCpp.ts b/core/llm/llms/LlamaCpp.ts index c52f6e527..e37b445e6 100644 --- a/core/llm/llms/LlamaCpp.ts +++ b/core/llm/llms/LlamaCpp.ts @@ -1,6 +1,6 @@ -import { BaseLLM } from ".."; -import { CompletionOptions, LLMOptions, ModelProvider } from "../.."; -import { streamSse } from "../stream"; +import { CompletionOptions, LLMOptions, ModelProvider } from "../../index.js"; +import { BaseLLM } from "../index.js"; +import { streamSse } from "../stream.js"; class LlamaCpp extends BaseLLM { static providerName: ModelProvider = "llama.cpp"; @@ -16,6 +16,9 @@ class LlamaCpp extends BaseLLM { min_p: options.minP, mirostat: options.mirostat, stop: options.stop, + top_k: options.topK, + top_p: options.topP, + temperature: options.temperature, }; return finalOptions; diff --git a/core/llm/llms/Llamafile.ts b/core/llm/llms/Llamafile.ts index f22ec3ba7..0f95787ef 100644 --- a/core/llm/llms/Llamafile.ts +++ b/core/llm/llms/Llamafile.ts @@ -1,5 +1,5 @@ -import { ModelProvider } from "../.."; -import LlamaCpp from "./LlamaCpp"; +import { ModelProvider } from "../../index.js"; +import LlamaCpp from "./LlamaCpp.js"; class Llamafile extends LlamaCpp { static providerName: ModelProvider = "llamafile"; diff --git a/core/llm/llms/Mistral.ts b/core/llm/llms/Mistral.ts index 03a2b3a07..95208bb8c 100644 --- a/core/llm/llms/Mistral.ts +++ b/core/llm/llms/Mistral.ts @@ -1,12 +1,49 @@ -import { LLMOptions, ModelProvider } from "../.."; -import OpenAI from "./OpenAI"; +import { ChatMessage, LLMOptions, ModelProvider } from "../../index.js"; +import { gptEditPrompt } from "../templates/edit.js"; +import OpenAI from "./OpenAI.js"; class Mistral extends OpenAI { static providerName: ModelProvider = "mistral"; static defaultOptions: Partial = { apiBase: "https://api.mistral.ai/v1/", - model: "mistral-small", + model: "codestral-latest", + promptTemplates: { + edit: gptEditPrompt, + }, }; + + constructor(options: LLMOptions) { + super(options); + if ( + options.model.includes("codestral") && + !options.model.includes("mamba") + ) { + this.apiBase = options.apiBase ?? "https://codestral.mistral.ai/v1/"; + } + } + + private static modelConversion: { [key: string]: string } = { + "mistral-7b": "open-mistral-7b", + "mistral-8x7b": "open-mixtral-8x7b", + }; + protected _convertModelName(model: string): string { + return Mistral.modelConversion[model] ?? model; + } + + protected _convertArgs(options: any, messages: ChatMessage[]) { + const finalOptions = super._convertArgs(options, messages); + + const lastMessage = finalOptions.messages[finalOptions.messages.length - 1]; + if (lastMessage?.role === "assistant") { + (lastMessage as any).prefix = true; + } + + return finalOptions; + } + + supportsFim(): boolean { + return true; + } } export default Mistral; diff --git a/core/llm/llms/Msty.ts b/core/llm/llms/Msty.ts new file mode 100644 index 000000000..2f126ad13 --- /dev/null +++ b/core/llm/llms/Msty.ts @@ -0,0 +1,12 @@ +import Ollama from "./Ollama"; +import {LLMOptions, ModelProvider} from "../../index"; + +class Msty extends Ollama { + static providerName: ModelProvider = "msty"; + static defaultOptions: Partial = { + apiBase: "http://localhost:10000", + model: "codellama-7b", + }; +} + +export default Msty; diff --git a/core/llm/llms/Ollama.ts b/core/llm/llms/Ollama.ts index b7c05bbcc..e24a489f0 100644 --- a/core/llm/llms/Ollama.ts +++ b/core/llm/llms/Ollama.ts @@ -1,12 +1,12 @@ -import { BaseLLM } from ".."; import { ChatMessage, CompletionOptions, LLMOptions, ModelProvider, -} from "../.."; -import { stripImages } from "../countTokens"; -import { streamResponse } from "../stream"; +} from "../../index.js"; +import { stripImages } from "../countTokens.js"; +import { BaseLLM } from "../index.js"; +import { streamResponse } from "../stream.js"; class Ollama extends BaseLLM { static providerName: ModelProvider = "ollama"; @@ -21,38 +21,48 @@ class Ollama extends BaseLLM { if (options.model === "AUTODETECT") { return; } + this.fetch(this.getEndpoint("api/show"), { method: "POST", - headers: {}, + headers: { + Authorization: `Bearer ${this.apiKey}`, + "Content-Type": "application/json", + }, body: JSON.stringify({ name: this._getModel() }), }) .then(async (response) => { if (response.status !== 200) { - console.warn( - "Error calling Ollama /api/show endpoint: ", - await response.text(), - ); + // console.warn( + // "Error calling Ollama /api/show endpoint: ", + // await response.text(), + // ); return; } const body = await response.json(); if (body.parameters) { const params = []; - for (let line of body.parameters.split("\n")) { - let parts = line.split(" "); + for (const line of body.parameters.split("\n")) { + let parts = line.match(/^(\S+)\s+((?:".*")|\S+)$/); if (parts.length < 2) { continue; } - let key = parts[0]; - let value = parts[parts.length - 1]; + let key = parts[1]; + let value = parts[2]; switch (key) { case "num_ctx": - this.contextLength = parseInt(value); + this.contextLength = Number.parseInt(value); break; case "stop": if (!this.completionOptions.stop) { this.completionOptions.stop = []; } - this.completionOptions.stop.push(value); + try { + this.completionOptions.stop.push(JSON.parse(value)); + } catch (e) { + console.warn( + 'Error parsing stop parameter value "{value}: ${e}', + ); + } break; default: break; @@ -61,7 +71,7 @@ class Ollama extends BaseLLM { } }) .catch((e) => { - console.warn(`Error calling Ollama /api/show endpoint: ${e}`); + // console.warn("Error calling the Ollama /api/show endpoint: ", e); }); } @@ -76,6 +86,8 @@ class Ollama extends BaseLLM { "codellama-13b": "codellama:13b", "codellama-34b": "codellama:34b", "codellama-70b": "codellama:70b", + "llama3-8b": "llama3:8b", + "llama3-70b": "llama3:70b", "phi-2": "phi:2.7b", "phind-codellama-34b": "phind-codellama:34b-v2", "wizardcoder-7b": "wizardcoder:7b-python", @@ -155,6 +167,7 @@ class Ollama extends BaseLLM { method: "POST", headers: { "Content-Type": "application/json", + Authorization: `Bearer ${this.apiKey}`, }, body: JSON.stringify(this._convertArgs(options, prompt)), }); @@ -173,9 +186,9 @@ class Ollama extends BaseLLM { try { const j = JSON.parse(chunk); if ("response" in j) { - yield j["response"]; + yield j.response; } else if ("error" in j) { - throw new Error(j["error"]); + throw new Error(j.error); } } catch (e) { throw new Error(`Error parsing Ollama response: ${e} ${chunk}`); @@ -193,6 +206,7 @@ class Ollama extends BaseLLM { method: "POST", headers: { "Content-Type": "application/json", + Authorization: `Bearer ${this.apiKey}`, }, body: JSON.stringify(this._convertArgs(options, messages)), }); diff --git a/core/llm/llms/OpenAI.ts b/core/llm/llms/OpenAI.ts index 9dfba7fee..470f5184b 100644 --- a/core/llm/llms/OpenAI.ts +++ b/core/llm/llms/OpenAI.ts @@ -1,12 +1,12 @@ -import { BaseLLM } from ".."; import { ChatMessage, CompletionOptions, LLMOptions, ModelProvider, -} from "../.."; -import { stripImages } from "../countTokens"; -import { streamSse } from "../stream"; +} from "../../index.js"; +import { stripImages } from "../countTokens.js"; +import { BaseLLM } from "../index.js"; +import { streamSse } from "../stream.js"; const NON_CHAT_MODELS = [ "text-davinci-002", @@ -26,6 +26,8 @@ const CHAT_ONLY_MODELS = [ "gpt-3.5-turbo-0613", "gpt-3.5-turbo-16k", "gpt-4", + "gpt-4-turbo", + "gpt-4o", "gpt-35-turbo-16k", "gpt-35-turbo-0613", "gpt-35-turbo", @@ -37,12 +39,14 @@ const CHAT_ONLY_MODELS = [ ]; class OpenAI extends BaseLLM { - public useLegacyCompletionsEndpoint = false; + public useLegacyCompletionsEndpoint: boolean | undefined = undefined; + + protected maxStopWords: number | undefined = undefined; constructor(options: LLMOptions) { super(options); - this.useLegacyCompletionsEndpoint = - options.useLegacyCompletionsEndpoint ?? false; + this.useLegacyCompletionsEndpoint = options.useLegacyCompletionsEndpoint; + this.apiVersion = options.apiVersion ?? "2023-07-01-preview"; } static providerName: ModelProvider = "openai"; @@ -53,6 +57,14 @@ class OpenAI extends BaseLLM { protected _convertMessage(message: ChatMessage) { if (typeof message.content === "string") { return message; + } else if (!message.content.some((item) => item.type !== "text")) { + // If no multi-media is in the message, just send as text + // for compatibility with OpenAI "compatible" servers + // that don't support multi-media format + return { + ...message, + content: message.content.map((item) => item.text).join(""), + }; } const parts = message.content.map((part) => { @@ -62,6 +74,7 @@ class OpenAI extends BaseLLM { }; if (part.type === "imageUrl") { msg.image_url = { ...part.imageUrl, detail: "low" }; + msg.type = "image_url"; } return msg; }); @@ -87,16 +100,29 @@ class OpenAI extends BaseLLM { presence_penalty: options.presencePenalty, stop: // Jan + Azure OpenAI don't truncate and will throw an error - url.port === "1337" || - url.host === "api.openai.com" || - this.apiType === "azure" - ? options.stop?.slice(0, 4) - : options.stop, + this.maxStopWords !== undefined + ? options.stop?.slice(0, this.maxStopWords) + : url.host === "api.deepseek.com" + ? options.stop?.slice(0, 16) + : url.port === "1337" || + url.host === "api.openai.com" || + url.host === "api.groq.com" || + this.apiType === "azure" + ? options.stop?.slice(0, 4) + : options.stop, }; return finalOptions; } + protected _getHeaders() { + return { + "Content-Type": "application/json", + Authorization: `Bearer ${this.apiKey}`, + "api-key": this.apiKey ?? "", // For Azure + }; + } + protected async _complete( prompt: string, options: CompletionOptions, @@ -120,15 +146,14 @@ class OpenAI extends BaseLLM { `openai/deployments/${this.engine}/${endpoint}?api-version=${this.apiVersion}`, this.apiBase, ); - } else { - if (!this.apiBase) { - throw new Error( - "No API base URL provided. Please set the 'apiBase' option in config.json", - ); - } - - return new URL(endpoint, this.apiBase); } + if (!this.apiBase) { + throw new Error( + "No API base URL provided. Please set the 'apiBase' option in config.json", + ); + } + + return new URL(endpoint, this.apiBase); } protected async *_streamComplete( @@ -149,15 +174,11 @@ class OpenAI extends BaseLLM { ): AsyncGenerator { const args: any = this._convertArgs(options, []); args.prompt = prompt; - delete args.messages; + args.messages = undefined; const response = await this.fetch(this._getEndpoint("completions"), { method: "POST", - headers: { - "Content-Type": "application/json", - Authorization: `Bearer ${this.apiKey}`, - "api-key": this.apiKey ?? "", // For Azure - }, + headers: this._getHeaders(), body: JSON.stringify({ ...args, stream: true, @@ -194,7 +215,7 @@ class OpenAI extends BaseLLM { return; } - let body = { + const body = { ...this._convertArgs(options, messages), stream: true, }; @@ -205,11 +226,7 @@ class OpenAI extends BaseLLM { })) as any; const response = await this.fetch(this._getEndpoint("chat/completions"), { method: "POST", - headers: { - "Content-Type": "application/json", - Authorization: `Bearer ${this.apiKey}`, - "api-key": this.apiKey ?? "", // For Azure - }, + headers: this._getHeaders(), body: JSON.stringify(body), }); @@ -220,14 +237,43 @@ class OpenAI extends BaseLLM { } } - async listModels(): Promise { - const response = await this.fetch(this._getEndpoint("models"), { - method: "GET", + async *_streamFim( + prefix: string, + suffix: string, + options: CompletionOptions, + ): AsyncGenerator { + const endpoint = new URL("fim/completions", this.apiBase); + const resp = await this.fetch(endpoint, { + method: "POST", + body: JSON.stringify({ + model: options.model, + prompt: prefix, + suffix, + max_tokens: options.maxTokens, + temperature: options.temperature, + top_p: options.topP, + frequency_penalty: options.frequencyPenalty, + presence_penalty: options.presencePenalty, + stop: options.stop, + stream: true, + }), headers: { + "Content-Type": "application/json", + Accept: "application/json", + "x-api-key": this.apiKey ?? "", Authorization: `Bearer ${this.apiKey}`, - "api-key": this.apiKey ?? "", // For Azure }, }); + for await (const chunk of streamSse(resp)) { + yield chunk.choices[0].delta.content; + } + } + + async listModels(): Promise { + const response = await this.fetch(this._getEndpoint("models"), { + method: "GET", + headers: this._getHeaders(), + }); const data = await response.json(); return data.data.map((m: any) => m.id); diff --git a/core/llm/llms/Replicate.ts b/core/llm/llms/Replicate.ts index daca82a83..7cfa6e890 100644 --- a/core/llm/llms/Replicate.ts +++ b/core/llm/llms/Replicate.ts @@ -1,6 +1,6 @@ import ReplicateClient from "replicate"; -import { BaseLLM } from ".."; -import { CompletionOptions, LLMOptions, ModelProvider } from "../.."; +import { CompletionOptions, LLMOptions, ModelProvider } from "../../index.js"; +import { BaseLLM } from "../index.js"; class Replicate extends BaseLLM { private static MODEL_IDS: { @@ -16,6 +16,8 @@ class Replicate extends BaseLLM { "meta/codellama-70b-instruct:a279116fe47a0f65701a8817188601e2fe8f4b9e04a518789655ea7b995851bf", "llama2-7b": "meta/llama-2-7b-chat" as any, "llama2-13b": "meta/llama-2-13b-chat" as any, + "llama3-8b": "meta/meta-llama-3-8b-instruct" as any, + "llama3-70b": "meta/meta-llama-3-70b-instruct" as any, "zephyr-7b": "nateraw/zephyr-7b-beta:b79f33de5c6c4e34087d44eaea4a9d98ce5d3f3a09522f7328eea0685003a931", "mistral-7b": diff --git a/core/llm/llms/TextGenWebUI.ts b/core/llm/llms/TextGenWebUI.ts index ce7e65ebd..2ee36f94a 100644 --- a/core/llm/llms/TextGenWebUI.ts +++ b/core/llm/llms/TextGenWebUI.ts @@ -1,5 +1,5 @@ -import { LLMOptions, ModelProvider } from "../.."; -import OpenAI from "./OpenAI"; +import { LLMOptions, ModelProvider } from "../../index.js"; +import OpenAI from "./OpenAI.js"; class TextGenWebUI extends OpenAI { static providerName: ModelProvider = "text-gen-webui"; diff --git a/core/llm/llms/Together.ts b/core/llm/llms/Together.ts index 62ce21e83..277389c77 100644 --- a/core/llm/llms/Together.ts +++ b/core/llm/llms/Together.ts @@ -1,11 +1,10 @@ -import { - ChatMessage, +import type { CompletionOptions, LLMOptions, ModelProvider, -} from "../.."; +} from "../../index.js"; -import OpenAI from "./OpenAI"; +import OpenAI from "./OpenAI.js"; class Together extends OpenAI { static providerName: ModelProvider = "together"; @@ -18,6 +17,8 @@ class Together extends OpenAI { "codellama-13b": "togethercomputer/CodeLlama-13b-Instruct", "codellama-34b": "togethercomputer/CodeLlama-34b-Instruct", "codellama-70b": "codellama/CodeLlama-70b-Instruct-hf", + "llama3-8b": "meta-llama/Llama-3-8b-chat-hf", + "llama3-70b": "meta-llama/Llama-3-70b-chat-hf", "llama2-7b": "togethercomputer/llama-2-7b-chat", "llama2-13b": "togethercomputer/llama-2-13b-chat", "llama2-70b": "togethercomputer/llama-2-70b-chat", @@ -27,16 +28,10 @@ class Together extends OpenAI { "wizardcoder-34b": "WizardLM/WizardCoder-Python-34B-V1.0", }; - private _getModelName(model: string) { + protected _convertModelName(model: string) { return Together.MODEL_IDS[model] || this.model; } - protected _convertArgs(options: any, messages: ChatMessage[]) { - const finalOptions = super._convertArgs(options, messages); - finalOptions.model = this._getModelName(options.model); - return finalOptions; - } - protected async *_streamComplete( prompt: string, options: CompletionOptions, diff --git a/core/llm/llms/index.ts b/core/llm/llms/index.ts index abd6ded8a..a245f025c 100644 --- a/core/llm/llms/index.ts +++ b/core/llm/llms/index.ts @@ -1,32 +1,38 @@ import Handlebars from "handlebars"; -import { BaseLLM } from ".."; +import { v4 as uuidv4 } from "uuid"; import { BaseCompletionOptions, + IdeSettings, ILLM, LLMOptions, ModelDescription, -} from "../.."; -import { DEFAULT_MAX_TOKENS } from "../constants"; -import Anthropic from "./Anthropic"; -import Bedrock from "./Bedrock"; -import DeepInfra from "./DeepInfra"; -import Flowise from "./Flowise"; -import FreeTrial from "./FreeTrial"; -import Gemini from "./Gemini"; -// import GooglePalm from "./GooglePalm"; -import Groq from "./Groq"; -import HuggingFaceInferenceAPI from "./HuggingFaceInferenceAPI"; -import HuggingFaceTGI from "./HuggingFaceTGI"; -import LMStudio from "./LMStudio"; -import LlamaCpp from "./LlamaCpp"; -import Llamafile from "./Llamafile"; -import Mistral from "./Mistral"; -import Ollama from "./Ollama"; -import OpenAI from "./OpenAI"; -import OpenAIFreeTrial from "./OpenAIFreeTrial"; -import Replicate from "./Replicate"; -import TextGenWebUI from "./TextGenWebUI"; -import Together from "./Together"; +} from "../../index.js"; +import { DEFAULT_MAX_TOKENS } from "../constants.js"; +import { BaseLLM } from "../index.js"; +import Anthropic from "./Anthropic.js"; +import Bedrock from "./Bedrock.js"; +import Cloudflare from "./Cloudflare.js"; +import Cohere from "./Cohere.js"; +import DeepInfra from "./DeepInfra.js"; +import Deepseek from "./Deepseek.js"; +import Fireworks from "./Fireworks.js"; +import Flowise from "./Flowise.js"; +import FreeTrial from "./FreeTrial.js"; +import Gemini from "./Gemini.js"; +import Groq from "./Groq.js"; +import HuggingFaceInferenceAPI from "./HuggingFaceInferenceAPI.js"; +import HuggingFaceTGI from "./HuggingFaceTGI.js"; +import LMStudio from "./LMStudio.js"; +import LlamaCpp from "./LlamaCpp.js"; +import Llamafile from "./Llamafile.js"; +import Mistral from "./Mistral.js"; +import Msty from "./Msty.js"; +import Ollama from "./Ollama.js"; +import OpenAI from "./OpenAI.js"; +import Replicate from "./Replicate.js"; +import TextGenWebUI from "./TextGenWebUI.js"; +import Together from "./Together.js"; +import ContinueProxy from "./stubs/ContinueProxy.js"; function convertToLetter(num: number): string { let result = ""; @@ -43,14 +49,14 @@ const getHandlebarsVars = ( ): [string, { [key: string]: string }] => { const ast = Handlebars.parse(value); - let keysToFilepath: { [key: string]: string } = {}; + const keysToFilepath: { [key: string]: string } = {}; let keyIndex = 1; - for (let i in ast.body) { + for (const i in ast.body) { if (ast.body[i].type === "MustacheStatement") { const letter = convertToLetter(keyIndex); keysToFilepath[letter] = (ast.body[i] as any).path.original; value = value.replace( - new RegExp("{{\\s*" + (ast.body[i] as any).path.original + "\\s*}}"), + new RegExp(`{{\\s*${(ast.body[i] as any).path.original}\\s*}}`), `{{${letter}}}`, ); keyIndex++; @@ -59,25 +65,45 @@ const getHandlebarsVars = ( return [value, keysToFilepath]; }; -async function renderTemplatedString( +export async function renderTemplatedString( template: string, readFile: (filepath: string) => Promise, + inputData: any, + helpers?: [string, Handlebars.HelperDelegate][], ): Promise { + const promises: { [key: string]: Promise } = {}; + if (helpers) { + for (const [name, helper] of helpers) { + Handlebars.registerHelper(name, (...args) => { + const id = uuidv4(); + promises[id] = helper(...args); + return `__${id}__`; + }); + } + } + const [newTemplate, vars] = getHandlebarsVars(template); - template = newTemplate; - let data: any = {}; - for (let key in vars) { - let fileContents = await readFile(vars[key]); - data[key] = fileContents || vars[key]; + const data: any = { ...inputData }; + for (const key in vars) { + const fileContents = await readFile(vars[key]); + data[key] = fileContents || (inputData[vars[key]] ?? vars[key]); } - const templateFn = Handlebars.compile(template); + const templateFn = Handlebars.compile(newTemplate); let final = templateFn(data); + + await Promise.all(Object.values(promises)); + for (const id in promises) { + final = final.replace(`__${id}__`, await promises[id]); + } + return final; } const LLMs = [ Anthropic, + Cohere, FreeTrial, + Gemini, Llamafile, Ollama, Replicate, @@ -88,18 +114,24 @@ const LLMs = [ LlamaCpp, OpenAI, LMStudio, - Gemini, Mistral, Bedrock, DeepInfra, - OpenAIFreeTrial, Flowise, Groq, + Fireworks, + ContinueProxy, + Cloudflare, + Deepseek, + Msty, ]; export async function llmFromDescription( desc: ModelDescription, readFile: (filepath: string) => Promise, + uniqueId: string, + ideSettings: IdeSettings, + writeLog: (log: string) => Promise, completionOptions?: BaseCompletionOptions, systemMessage?: string, ): Promise { @@ -116,10 +148,10 @@ export async function llmFromDescription( systemMessage = desc.systemMessage ?? systemMessage; if (systemMessage !== undefined) { - systemMessage = await renderTemplatedString(systemMessage, readFile); + systemMessage = await renderTemplatedString(systemMessage, readFile, {}); } - const options: LLMOptions = { + let options: LLMOptions = { ...desc, completionOptions: { ...finalCompletionOptions, @@ -130,8 +162,20 @@ export async function llmFromDescription( DEFAULT_MAX_TOKENS, }, systemMessage, + writeLog, + uniqueId, }; + if (desc.provider === "continue-proxy") { + options.apiKey = ideSettings.userToken; + if (ideSettings.remoteConfigServerUrl) { + options.apiBase = new URL( + "/proxy/v1", + ideSettings.remoteConfigServerUrl, + ).toString(); + } + } + return new cls(options); } diff --git a/core/llm/llms/stubs/ContinueProxy.ts b/core/llm/llms/stubs/ContinueProxy.ts new file mode 100644 index 000000000..7c085bf75 --- /dev/null +++ b/core/llm/llms/stubs/ContinueProxy.ts @@ -0,0 +1,28 @@ +import type { LLMOptions, ModelProvider } from "../../.."; +import OpenAI from "../OpenAI.js"; + +class ContinueProxy extends OpenAI { + private _workOsAccessToken: string | undefined = undefined; + + get workOsAccessToken(): string | undefined { + return this._workOsAccessToken; + } + + set workOsAccessToken(value: string | undefined) { + if (this._workOsAccessToken !== value) { + this._workOsAccessToken = value; + this.apiKey = value; + } + } + static providerName: ModelProvider = "continue-proxy"; + static defaultOptions: Partial = { + apiBase: + "https://control-plane-api-service-i3dqylpbqa-uc.a.run.app/model-proxy/v1", + }; + + supportsFim(): boolean { + return true; + } +} + +export default ContinueProxy; diff --git a/core/llm/stream.ts b/core/llm/stream.ts index 302ee82ed..b51f1fd36 100644 --- a/core/llm/stream.ts +++ b/core/llm/stream.ts @@ -1,20 +1,35 @@ -export async function* streamResponse( - response: Response, -): AsyncGenerator { +async function* toAsyncIterable(nodeReadable: NodeJS.ReadableStream): AsyncGenerator { + for await (const chunk of nodeReadable) { + yield chunk as Uint8Array; + } +} + +export async function* streamResponse(response: Response): AsyncGenerator { if (response.status !== 200) { throw new Error(await response.text()); } if (!response.body) { - throw new Error(`No response body returned.`); + throw new Error("No response body returned."); } - const stream = response.body as any; + // Get the major version of Node.js + const nodeMajorVersion = parseInt(process.versions.node.split(".")[0], 10); - const decoder = new TextDecoder("utf-8"); - - for await (const chunk of stream) { - yield decoder.decode(chunk); + if (nodeMajorVersion >= 20) { + // Use the new API for Node 20 and above + const stream = (ReadableStream as any).from(response.body); + for await (const chunk of stream.pipeThrough(new TextDecoderStream("utf-8"))) { + yield chunk; + } + } else { + // Fallback for Node versions below 20 + // Streaming with this method doesn't work as version 20+ does + const decoder = new TextDecoder("utf-8"); + const nodeStream = response.body as unknown as NodeJS.ReadableStream; + for await (const chunk of toAsyncIterable(nodeStream)) { + yield decoder.decode(chunk, { stream: true }); + } } } @@ -38,9 +53,11 @@ function parseDataLine(line: string): any { function parseSseLine(line: string): { done: boolean; data: any } { if (line.startsWith("data: [DONE]")) { return { done: true, data: undefined }; - } else if (line.startsWith("data:")) { + } + if (line.startsWith("data:")) { return { done: false, data: parseDataLine(line) }; - } else if (line.startsWith(": ping")) { + } + if (line.startsWith(": ping")) { return { done: true, data: undefined }; } return { done: false, data: undefined }; @@ -51,7 +68,7 @@ export async function* streamSse(response: Response): AsyncGenerator { for await (const value of streamResponse(response)) { buffer += value; - let position; + let position: number; while ((position = buffer.indexOf("\n")) >= 0) { const line = buffer.slice(0, position); buffer = buffer.slice(position + 1); @@ -73,3 +90,18 @@ export async function* streamSse(response: Response): AsyncGenerator { } } } + +export async function* streamJSON(response: Response): AsyncGenerator { + let buffer = ""; + for await (const value of streamResponse(response)) { + buffer += value; + + let position; + while ((position = buffer.indexOf("\n")) >= 0) { + const line = buffer.slice(0, position); + const data = JSON.parse(line); + yield data; + buffer = buffer.slice(position + 1); + } + } +} diff --git a/core/llm/templates/chat.ts b/core/llm/templates/chat.ts index a4f12771c..e230fe7f7 100644 --- a/core/llm/templates/chat.ts +++ b/core/llm/templates/chat.ts @@ -1,5 +1,5 @@ -import { ChatMessage } from "../.."; -import { stripImages } from "../countTokens"; +import { ChatMessage } from "../../index.js"; +import { stripImages } from "../countTokens.js"; function templateFactory( systemMessage: (msg: ChatMessage) => string, @@ -166,7 +166,7 @@ function deepseekTemplateMessages(msgs: ChatMessage[]): string { prompt += msg.role === "user" ? "### Instruction:\n" : "### Response:\n"; if (system && msg.role === "user" && i === msgs.length - 1) { - prompt += system + "\n"; + prompt += `${system}\n`; } prompt += `${msg.content}`; diff --git a/core/llm/templates/edit.ts b/core/llm/templates/edit.ts index 188ff0966..fd288a48e 100644 --- a/core/llm/templates/edit.ts +++ b/core/llm/templates/edit.ts @@ -1,4 +1,4 @@ -import { ChatMessage, PromptTemplate } from "../.."; +import { ChatMessage, PromptTemplate } from "../../index.js"; const simplifiedEditPrompt = `Consider the following code: \`\`\`{{{language}}} @@ -95,7 +95,7 @@ ${otherData.codeToEdit} ${suffixTag} \`\`\` -Please rewrite the entire code block above in order to satisfy the following request: "${otherData.userInput}".${suffixExplanation}`, +Please rewrite the entire code block above in order to satisfy the following request: "${otherData.userInput}". You should rewrite the entire code block without leaving placeholders, even if the code is the same as before.${suffixExplanation}`, }, { role: "assistant", @@ -115,7 +115,7 @@ ${otherData.codeToEdit} ${suffixTag} \`\`\` -Please rewrite the entire code block above, editing the portion below "${START_TAG}" in order to satisfy the following request: "${otherData.userInput}".${suffixExplanation} +Please rewrite the entire code block above, editing the portion below "${START_TAG}" in order to satisfy the following request: "${otherData.userInput}". You should rewrite the entire code block without leaving placeholders, even if the code is the same as before.${suffixExplanation} `, }, { @@ -259,6 +259,15 @@ Output only a code block with the rewritten code: }, ]; +const llama3EditPrompt: PromptTemplate = `<|begin_of_text|><|start_header_id|>user<|end_header_id|> +\`\`\`{{{language}}} +{{{codeToEdit}}} +\`\`\` + +Rewrite the above code to satisfy this request: "{{{userInput}}}"<|eot_id|><|start_header_id|>assistant<|end_header_id|> +Sure! Here's the code you requested: +\`\`\`{{{language}}}`; + const gemmaEditPrompt = `user You are an expert programmer and write code on the first attempt without any errors or fillers. Rewrite the code to satisfy this request: "{{{userInput}}}" @@ -279,6 +288,7 @@ export { deepseekEditPrompt, gemmaEditPrompt, gptEditPrompt, + llama3EditPrompt, mistralEditPrompt, neuralChatEditPrompt, openchatEditPrompt, diff --git a/core/llm/templates/options.ts b/core/llm/templates/options.ts index 1ebb02ba2..614cca52a 100644 --- a/core/llm/templates/options.ts +++ b/core/llm/templates/options.ts @@ -1,4 +1,4 @@ -import { CompletionOptions, ModelName } from "../.."; +import { CompletionOptions, ModelName } from "../../index.js"; const CompletionOptionsForModels: { [key in ModelName]?: Partial; diff --git a/core/package-lock.json b/core/package-lock.json index dfbad11b1..cc2167bf1 100644 --- a/core/package-lock.json +++ b/core/package-lock.json @@ -1,26 +1,34 @@ { "name": "@continuedev/core", - "version": "1.0.6", + "version": "1.0.13", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@continuedev/core", - "version": "1.0.6", + "version": "1.0.13", "license": "Apache-2.0", "dependencies": { + "@aws-sdk/client-bedrock-runtime": "^3.574.0", + "@aws-sdk/credential-providers": "^3.596.0", + "@continuedev/config-types": "^1.0.6", + "@continuedev/llm-info": "^1.0.1", "@mozilla/readability": "^0.5.0", "@octokit/rest": "^20.0.2", "@types/jsdom": "^21.1.6", "@types/mozilla-readability": "^0.2.1", "@types/node-fetch": "^2.6.11", - "@xenova/transformers": "^2.14.0", + "@typescript-eslint/eslint-plugin": "^7.8.0", + "@typescript-eslint/parser": "^7.8.0", + "@xenova/transformers": "2.14.0", "adf-to-md": "^1.1.0", + "async-mutex": "^0.5.0", "axios": "^1.6.7", "cheerio": "^1.0.0-rc.12", "commander": "^12.0.0", + "comment-json": "^4.2.3", "dbinfoz": "^0.1.4", - "dotenv": "^16.3.1", + "dotenv": "^16.4.5", "fastest-levenshtein": "^1.0.16", "follow-redirects": "^1.15.5", "handlebars": "^4.7.8", @@ -29,36 +37,46 @@ "ignore": "^5.3.1", "js-tiktoken": "^1.0.8", "jsdom": "^24.0.0", - "llama-tokenizer-js": "^1.1.3", + "launchdarkly-node-client-sdk": "^3.2.0", "llm-code-highlighter": "^0.0.14", + "mac-ca": "^3.1.0", "node-fetch": "^3.3.2", "node-html-markdown": "^1.3.0", "ollama": "^0.4.6", + "onnxruntime-node": "1.14.0", "openai": "^4.20.1", "pg": "^8.11.3", - "posthog-node": "^3.6.2", + "posthog-node": "^3.6.3", "replicate": "^0.26.0", "request": "^2.88.2", "socket.io-client": "^4.7.3", "sqlite": "^5.1.1", "sqlite3": "^5.1.7", - "tree-sitter-wasms": "^0.1.6", + "system-ca": "^1.0.3", + "tree-sitter-wasms": "^0.1.11", "uuid": "^9.0.1", - "vectordb": "0.4.12", - "web-tree-sitter": "^0.21.0" + "vectordb": "^0.4.20", + "web-tree-sitter": "^0.21.0", + "win-ca": "^3.5.1", + "yaml": "^2.4.2", + "zod": "^3.23.8" }, "devDependencies": { + "@babel/preset-env": "^7.24.7", + "@biomejs/biome": "1.6.4", "@google/generative-ai": "^0.11.4", "@types/follow-redirects": "^1.14.4", - "@types/handlebars": "^4.1.0", - "@types/jest": "^29.5.11", + "@types/jest": "^29.5.12", "@types/jquery": "^3.5.29", "@types/mustache": "^4.2.5", "@types/uuid": "^9.0.7", - "esbuild": "^0.19.11", + "esbuild": "0.17.19", + "eslint": "^8", + "eslint-plugin-import": "^2.29.1", "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "vite-plugin-node": "^3.1.0" + "onnxruntime-common": "1.14.0", + "onnxruntime-web": "1.14.0", + "ts-jest": "^29.1.1" }, "engines": { "node": ">=20.11.0" @@ -86,15 +104,6 @@ "node": ">=12.17" } }, - "node_modules/@aashutoshrathi/word-wrap": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", - "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/@ampproject/remapping": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", @@ -126,3914 +135,7449 @@ "tslib": "^2.5.3" } }, - "node_modules/@babel/code-frame": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", - "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", - "dev": true, + "node_modules/@aws-crypto/crc32": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/crc32/-/crc32-3.0.0.tgz", + "integrity": "sha512-IzSgsrxUcsrejQbPVilIKy16kAT52EwB6zSaI+M3xxIhKh5+aldEyvI+z6erM7TCLB2BJsFrtHjp6/4/sr+3dA==", "dependencies": { - "@babel/highlight": "^7.23.4", - "chalk": "^2.4.2" - }, - "engines": { - "node": ">=6.9.0" + "@aws-crypto/util": "^3.0.0", + "@aws-sdk/types": "^3.222.0", + "tslib": "^1.11.1" } }, - "node_modules/@babel/code-frame/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, + "node_modules/@aws-crypto/crc32/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/@aws-crypto/ie11-detection": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/ie11-detection/-/ie11-detection-3.0.0.tgz", + "integrity": "sha512-341lBBkiY1DfDNKai/wXM3aujNBkXR7tq1URPQDL9wi3AUbI80NR74uF1TXHMm7po1AcnFk8iu2S2IeU/+/A+Q==", "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" + "tslib": "^1.11.1" } }, - "node_modules/@babel/code-frame/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, + "node_modules/@aws-crypto/ie11-detection/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/@aws-crypto/sha256-browser": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-browser/-/sha256-browser-3.0.0.tgz", + "integrity": "sha512-8VLmW2B+gjFbU5uMeqtQM6Nj0/F1bro80xQXCW6CQBWgosFWXTx77aeOF5CAIAmbOK64SdMBJdNr6J41yP5mvQ==", "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" + "@aws-crypto/ie11-detection": "^3.0.0", + "@aws-crypto/sha256-js": "^3.0.0", + "@aws-crypto/supports-web-crypto": "^3.0.0", + "@aws-crypto/util": "^3.0.0", + "@aws-sdk/types": "^3.222.0", + "@aws-sdk/util-locate-window": "^3.0.0", + "@aws-sdk/util-utf8-browser": "^3.0.0", + "tslib": "^1.11.1" } }, - "node_modules/@babel/code-frame/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, + "node_modules/@aws-crypto/sha256-browser/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/@aws-crypto/sha256-js": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-3.0.0.tgz", + "integrity": "sha512-PnNN7os0+yd1XvXAy23CFOmTbMaDxgxXtTKHybrJ39Y8kGzBATgBFibWJKH6BhytLI/Zyszs87xCOBNyBig6vQ==", "dependencies": { - "color-name": "1.1.3" + "@aws-crypto/util": "^3.0.0", + "@aws-sdk/types": "^3.222.0", + "tslib": "^1.11.1" } }, - "node_modules/@babel/code-frame/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true + "node_modules/@aws-crypto/sha256-js/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, - "node_modules/@babel/code-frame/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" + "node_modules/@aws-crypto/supports-web-crypto": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/supports-web-crypto/-/supports-web-crypto-3.0.0.tgz", + "integrity": "sha512-06hBdMwUAb2WFTuGG73LSC0wfPu93xWwo5vL2et9eymgmu3Id5vFAHBbajVWiGhPO37qcsdCap/FqXvJGJWPIg==", + "dependencies": { + "tslib": "^1.11.1" } }, - "node_modules/@babel/code-frame/node_modules/has-flag": { + "node_modules/@aws-crypto/supports-web-crypto/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/@aws-crypto/util": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" + "resolved": "https://registry.npmjs.org/@aws-crypto/util/-/util-3.0.0.tgz", + "integrity": "sha512-2OJlpeJpCR48CC8r+uKVChzs9Iungj9wkZrl8Z041DWEWvyIHILYKCPNzJghKsivj+S3mLo6BVc7mBNzdxA46w==", + "dependencies": { + "@aws-sdk/types": "^3.222.0", + "@aws-sdk/util-utf8-browser": "^3.0.0", + "tslib": "^1.11.1" } }, - "node_modules/@babel/code-frame/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, + "node_modules/@aws-crypto/util/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/@aws-sdk/client-bedrock-runtime": { + "version": "3.577.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-bedrock-runtime/-/client-bedrock-runtime-3.577.0.tgz", + "integrity": "sha512-etKXJqf+//3Sche5/vPFxF5pV59MZ06I/2SEpOr60mxgZG3hYbpznB9LTw9c4eHrBAPvvQbJewIusM40BP2FZQ==", + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/client-sso-oidc": "3.577.0", + "@aws-sdk/client-sts": "3.577.0", + "@aws-sdk/core": "3.576.0", + "@aws-sdk/credential-provider-node": "3.577.0", + "@aws-sdk/middleware-host-header": "3.577.0", + "@aws-sdk/middleware-logger": "3.577.0", + "@aws-sdk/middleware-recursion-detection": "3.577.0", + "@aws-sdk/middleware-user-agent": "3.577.0", + "@aws-sdk/region-config-resolver": "3.577.0", + "@aws-sdk/types": "3.577.0", + "@aws-sdk/util-endpoints": "3.577.0", + "@aws-sdk/util-user-agent-browser": "3.577.0", + "@aws-sdk/util-user-agent-node": "3.577.0", + "@smithy/config-resolver": "^3.0.0", + "@smithy/core": "^2.0.0", + "@smithy/eventstream-serde-browser": "^3.0.0", + "@smithy/eventstream-serde-config-resolver": "^3.0.0", + "@smithy/eventstream-serde-node": "^3.0.0", + "@smithy/fetch-http-handler": "^3.0.0", + "@smithy/hash-node": "^3.0.0", + "@smithy/invalid-dependency": "^3.0.0", + "@smithy/middleware-content-length": "^3.0.0", + "@smithy/middleware-endpoint": "^3.0.0", + "@smithy/middleware-retry": "^3.0.0", + "@smithy/middleware-serde": "^3.0.0", + "@smithy/middleware-stack": "^3.0.0", + "@smithy/node-config-provider": "^3.0.0", + "@smithy/node-http-handler": "^3.0.0", + "@smithy/protocol-http": "^4.0.0", + "@smithy/smithy-client": "^3.0.0", + "@smithy/types": "^3.0.0", + "@smithy/url-parser": "^3.0.0", + "@smithy/util-base64": "^3.0.0", + "@smithy/util-body-length-browser": "^3.0.0", + "@smithy/util-body-length-node": "^3.0.0", + "@smithy/util-defaults-mode-browser": "^3.0.0", + "@smithy/util-defaults-mode-node": "^3.0.0", + "@smithy/util-endpoints": "^2.0.0", + "@smithy/util-middleware": "^3.0.0", + "@smithy/util-retry": "^3.0.0", + "@smithy/util-stream": "^3.0.0", + "@smithy/util-utf8": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-cognito-identity": { + "version": "3.598.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-cognito-identity/-/client-cognito-identity-3.598.0.tgz", + "integrity": "sha512-N/1lnkhkzk1Il8WEZBWR713/7sDEqBtl/1AS6dfgw6Zh7NWUYSwBkZx6xdN8KogDu4CFExRHhilNOgI1JMug3w==", + "dependencies": { + "@aws-crypto/sha256-browser": "5.2.0", + "@aws-crypto/sha256-js": "5.2.0", + "@aws-sdk/client-sso-oidc": "3.598.0", + "@aws-sdk/client-sts": "3.598.0", + "@aws-sdk/core": "3.598.0", + "@aws-sdk/credential-provider-node": "3.598.0", + "@aws-sdk/middleware-host-header": "3.598.0", + "@aws-sdk/middleware-logger": "3.598.0", + "@aws-sdk/middleware-recursion-detection": "3.598.0", + "@aws-sdk/middleware-user-agent": "3.598.0", + "@aws-sdk/region-config-resolver": "3.598.0", + "@aws-sdk/types": "3.598.0", + "@aws-sdk/util-endpoints": "3.598.0", + "@aws-sdk/util-user-agent-browser": "3.598.0", + "@aws-sdk/util-user-agent-node": "3.598.0", + "@smithy/config-resolver": "^3.0.2", + "@smithy/core": "^2.2.1", + "@smithy/fetch-http-handler": "^3.0.2", + "@smithy/hash-node": "^3.0.1", + "@smithy/invalid-dependency": "^3.0.1", + "@smithy/middleware-content-length": "^3.0.1", + "@smithy/middleware-endpoint": "^3.0.2", + "@smithy/middleware-retry": "^3.0.4", + "@smithy/middleware-serde": "^3.0.1", + "@smithy/middleware-stack": "^3.0.1", + "@smithy/node-config-provider": "^3.1.1", + "@smithy/node-http-handler": "^3.0.1", + "@smithy/protocol-http": "^4.0.1", + "@smithy/smithy-client": "^3.1.2", + "@smithy/types": "^3.1.0", + "@smithy/url-parser": "^3.0.1", + "@smithy/util-base64": "^3.0.0", + "@smithy/util-body-length-browser": "^3.0.0", + "@smithy/util-body-length-node": "^3.0.0", + "@smithy/util-defaults-mode-browser": "^3.0.4", + "@smithy/util-defaults-mode-node": "^3.0.4", + "@smithy/util-endpoints": "^2.0.2", + "@smithy/util-middleware": "^3.0.1", + "@smithy/util-retry": "^3.0.1", + "@smithy/util-utf8": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-crypto/sha256-browser": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-browser/-/sha256-browser-5.2.0.tgz", + "integrity": "sha512-AXfN/lGotSQwu6HNcEsIASo7kWXZ5HYWvfOmSNKDsEqC4OashTp8alTmaz+F7TC2L083SFv5RdB+qU3Vs1kZqw==", "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" + "@aws-crypto/sha256-js": "^5.2.0", + "@aws-crypto/supports-web-crypto": "^5.2.0", + "@aws-crypto/util": "^5.2.0", + "@aws-sdk/types": "^3.222.0", + "@aws-sdk/util-locate-window": "^3.0.0", + "@smithy/util-utf8": "^2.0.0", + "tslib": "^2.6.2" } }, - "node_modules/@babel/compat-data": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz", - "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==", - "dev": true, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-crypto/sha256-browser/node_modules/@smithy/util-utf8": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-2.3.0.tgz", + "integrity": "sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==", + "dependencies": { + "@smithy/util-buffer-from": "^2.2.0", + "tslib": "^2.6.2" + }, "engines": { - "node": ">=6.9.0" + "node": ">=14.0.0" } }, - "node_modules/@babel/core": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.0.tgz", - "integrity": "sha512-fQfkg0Gjkza3nf0c7/w6Xf34BW4YvzNfACRLmmb7XRLa6XHdR+K9AlJlxneFfWYf6uhOzuzZVTjF/8KfndZANw==", - "dev": true, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-crypto/sha256-js": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-5.2.0.tgz", + "integrity": "sha512-FFQQyu7edu4ufvIZ+OadFpHHOt+eSTBaYaki44c+akjg7qZg9oOQeLlk77F6tSYqjDAFClrHJk9tMf0HdVyOvA==", "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.23.5", - "@babel/generator": "^7.23.6", - "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helpers": "^7.24.0", - "@babel/parser": "^7.24.0", - "@babel/template": "^7.24.0", - "@babel/traverse": "^7.24.0", - "@babel/types": "^7.24.0", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" + "@aws-crypto/util": "^5.2.0", + "@aws-sdk/types": "^3.222.0", + "tslib": "^2.6.2" }, "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" + "node": ">=16.0.0" } }, - "node_modules/@babel/generator": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz", - "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==", - "dev": true, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-crypto/supports-web-crypto": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/supports-web-crypto/-/supports-web-crypto-5.2.0.tgz", + "integrity": "sha512-iAvUotm021kM33eCdNfwIN//F77/IADDSs58i+MDaOqFrVjZo9bAal0NK7HurRuWLLpF1iLX7gbWrjHjeo+YFg==", "dependencies": { - "@babel/types": "^7.23.6", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", - "jsesc": "^2.5.1" - }, - "engines": { - "node": ">=6.9.0" + "tslib": "^2.6.2" } }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", - "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", - "dev": true, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-crypto/util": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/util/-/util-5.2.0.tgz", + "integrity": "sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==", "dependencies": { - "@babel/compat-data": "^7.23.5", - "@babel/helper-validator-option": "^7.23.5", - "browserslist": "^4.22.2", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" + "@aws-sdk/types": "^3.222.0", + "@smithy/util-utf8": "^2.0.0", + "tslib": "^2.6.2" + } + }, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-crypto/util/node_modules/@smithy/util-utf8": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-2.3.0.tgz", + "integrity": "sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==", + "dependencies": { + "@smithy/util-buffer-from": "^2.2.0", + "tslib": "^2.6.2" }, "engines": { - "node": ">=6.9.0" + "node": ">=14.0.0" } }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", - "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", - "dev": true, - "engines": { - "node": ">=6.9.0" + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/client-sso": { + "version": "3.598.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.598.0.tgz", + "integrity": "sha512-nOI5lqPYa+YZlrrzwAJywJSw3MKVjvu6Ge2fCqQUNYMfxFB0NAaDFnl0EPjXi+sEbtCuz/uWE77poHbqiZ+7Iw==", + "dependencies": { + "@aws-crypto/sha256-browser": "5.2.0", + "@aws-crypto/sha256-js": "5.2.0", + "@aws-sdk/core": "3.598.0", + "@aws-sdk/middleware-host-header": "3.598.0", + "@aws-sdk/middleware-logger": "3.598.0", + "@aws-sdk/middleware-recursion-detection": "3.598.0", + "@aws-sdk/middleware-user-agent": "3.598.0", + "@aws-sdk/region-config-resolver": "3.598.0", + "@aws-sdk/types": "3.598.0", + "@aws-sdk/util-endpoints": "3.598.0", + "@aws-sdk/util-user-agent-browser": "3.598.0", + "@aws-sdk/util-user-agent-node": "3.598.0", + "@smithy/config-resolver": "^3.0.2", + "@smithy/core": "^2.2.1", + "@smithy/fetch-http-handler": "^3.0.2", + "@smithy/hash-node": "^3.0.1", + "@smithy/invalid-dependency": "^3.0.1", + "@smithy/middleware-content-length": "^3.0.1", + "@smithy/middleware-endpoint": "^3.0.2", + "@smithy/middleware-retry": "^3.0.4", + "@smithy/middleware-serde": "^3.0.1", + "@smithy/middleware-stack": "^3.0.1", + "@smithy/node-config-provider": "^3.1.1", + "@smithy/node-http-handler": "^3.0.1", + "@smithy/protocol-http": "^4.0.1", + "@smithy/smithy-client": "^3.1.2", + "@smithy/types": "^3.1.0", + "@smithy/url-parser": "^3.0.1", + "@smithy/util-base64": "^3.0.0", + "@smithy/util-body-length-browser": "^3.0.0", + "@smithy/util-body-length-node": "^3.0.0", + "@smithy/util-defaults-mode-browser": "^3.0.4", + "@smithy/util-defaults-mode-node": "^3.0.4", + "@smithy/util-endpoints": "^2.0.2", + "@smithy/util-middleware": "^3.0.1", + "@smithy/util-retry": "^3.0.1", + "@smithy/util-utf8": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/client-sso-oidc": { + "version": "3.598.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.598.0.tgz", + "integrity": "sha512-jfdH1pAO9Tt8Nkta/JJLoUnwl7jaRdxToQTJfUtE+o3+0JP5sA4LfC2rBkJSWcU5BdAA+kyOs5Lv776DlN04Vg==", + "dependencies": { + "@aws-crypto/sha256-browser": "5.2.0", + "@aws-crypto/sha256-js": "5.2.0", + "@aws-sdk/client-sts": "3.598.0", + "@aws-sdk/core": "3.598.0", + "@aws-sdk/credential-provider-node": "3.598.0", + "@aws-sdk/middleware-host-header": "3.598.0", + "@aws-sdk/middleware-logger": "3.598.0", + "@aws-sdk/middleware-recursion-detection": "3.598.0", + "@aws-sdk/middleware-user-agent": "3.598.0", + "@aws-sdk/region-config-resolver": "3.598.0", + "@aws-sdk/types": "3.598.0", + "@aws-sdk/util-endpoints": "3.598.0", + "@aws-sdk/util-user-agent-browser": "3.598.0", + "@aws-sdk/util-user-agent-node": "3.598.0", + "@smithy/config-resolver": "^3.0.2", + "@smithy/core": "^2.2.1", + "@smithy/fetch-http-handler": "^3.0.2", + "@smithy/hash-node": "^3.0.1", + "@smithy/invalid-dependency": "^3.0.1", + "@smithy/middleware-content-length": "^3.0.1", + "@smithy/middleware-endpoint": "^3.0.2", + "@smithy/middleware-retry": "^3.0.4", + "@smithy/middleware-serde": "^3.0.1", + "@smithy/middleware-stack": "^3.0.1", + "@smithy/node-config-provider": "^3.1.1", + "@smithy/node-http-handler": "^3.0.1", + "@smithy/protocol-http": "^4.0.1", + "@smithy/smithy-client": "^3.1.2", + "@smithy/types": "^3.1.0", + "@smithy/url-parser": "^3.0.1", + "@smithy/util-base64": "^3.0.0", + "@smithy/util-body-length-browser": "^3.0.0", + "@smithy/util-body-length-node": "^3.0.0", + "@smithy/util-defaults-mode-browser": "^3.0.4", + "@smithy/util-defaults-mode-node": "^3.0.4", + "@smithy/util-endpoints": "^2.0.2", + "@smithy/util-middleware": "^3.0.1", + "@smithy/util-retry": "^3.0.1", + "@smithy/util-utf8": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/client-sts": { + "version": "3.598.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.598.0.tgz", + "integrity": "sha512-bXhz/cHL0iB9UH9IFtMaJJf4F8mV+HzncETCRFzZ9SyUMt5rP9j8A7VZknqGYSx/6mI8SsB1XJQkWSbhn6FiSQ==", + "dependencies": { + "@aws-crypto/sha256-browser": "5.2.0", + "@aws-crypto/sha256-js": "5.2.0", + "@aws-sdk/client-sso-oidc": "3.598.0", + "@aws-sdk/core": "3.598.0", + "@aws-sdk/credential-provider-node": "3.598.0", + "@aws-sdk/middleware-host-header": "3.598.0", + "@aws-sdk/middleware-logger": "3.598.0", + "@aws-sdk/middleware-recursion-detection": "3.598.0", + "@aws-sdk/middleware-user-agent": "3.598.0", + "@aws-sdk/region-config-resolver": "3.598.0", + "@aws-sdk/types": "3.598.0", + "@aws-sdk/util-endpoints": "3.598.0", + "@aws-sdk/util-user-agent-browser": "3.598.0", + "@aws-sdk/util-user-agent-node": "3.598.0", + "@smithy/config-resolver": "^3.0.2", + "@smithy/core": "^2.2.1", + "@smithy/fetch-http-handler": "^3.0.2", + "@smithy/hash-node": "^3.0.1", + "@smithy/invalid-dependency": "^3.0.1", + "@smithy/middleware-content-length": "^3.0.1", + "@smithy/middleware-endpoint": "^3.0.2", + "@smithy/middleware-retry": "^3.0.4", + "@smithy/middleware-serde": "^3.0.1", + "@smithy/middleware-stack": "^3.0.1", + "@smithy/node-config-provider": "^3.1.1", + "@smithy/node-http-handler": "^3.0.1", + "@smithy/protocol-http": "^4.0.1", + "@smithy/smithy-client": "^3.1.2", + "@smithy/types": "^3.1.0", + "@smithy/url-parser": "^3.0.1", + "@smithy/util-base64": "^3.0.0", + "@smithy/util-body-length-browser": "^3.0.0", + "@smithy/util-body-length-node": "^3.0.0", + "@smithy/util-defaults-mode-browser": "^3.0.4", + "@smithy/util-defaults-mode-node": "^3.0.4", + "@smithy/util-endpoints": "^2.0.2", + "@smithy/util-middleware": "^3.0.1", + "@smithy/util-retry": "^3.0.1", + "@smithy/util-utf8": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/core": { + "version": "3.598.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.598.0.tgz", + "integrity": "sha512-HaSjt7puO5Cc7cOlrXFCW0rtA0BM9lvzjl56x0A20Pt+0wxXGeTOZZOkXQIepbrFkV2e/HYukuT9e99vXDm59g==", + "dependencies": { + "@smithy/core": "^2.2.1", + "@smithy/protocol-http": "^4.0.1", + "@smithy/signature-v4": "^3.1.0", + "@smithy/smithy-client": "^3.1.2", + "@smithy/types": "^3.1.0", + "fast-xml-parser": "4.2.5", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/credential-provider-env": { + "version": "3.598.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.598.0.tgz", + "integrity": "sha512-vi1khgn7yXzLCcgSIzQrrtd2ilUM0dWodxj3PQ6BLfP0O+q1imO3hG1nq7DVyJtq7rFHs6+9N8G4mYvTkxby2w==", + "dependencies": { + "@aws-sdk/types": "3.598.0", + "@smithy/property-provider": "^3.1.1", + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/credential-provider-http": { + "version": "3.598.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.598.0.tgz", + "integrity": "sha512-N7cIafi4HVlQvEgvZSo1G4T9qb/JMLGMdBsDCT5XkeJrF0aptQWzTFH0jIdZcLrMYvzPcuEyO3yCBe6cy/ba0g==", + "dependencies": { + "@aws-sdk/types": "3.598.0", + "@smithy/fetch-http-handler": "^3.0.2", + "@smithy/node-http-handler": "^3.0.1", + "@smithy/property-provider": "^3.1.1", + "@smithy/protocol-http": "^4.0.1", + "@smithy/smithy-client": "^3.1.2", + "@smithy/types": "^3.1.0", + "@smithy/util-stream": "^3.0.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/credential-provider-ini": { + "version": "3.598.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.598.0.tgz", + "integrity": "sha512-/ppcIVUbRwDIwJDoYfp90X3+AuJo2mvE52Y1t2VSrvUovYn6N4v95/vXj6LS8CNDhz2jvEJYmu+0cTMHdhI6eA==", + "dependencies": { + "@aws-sdk/credential-provider-env": "3.598.0", + "@aws-sdk/credential-provider-http": "3.598.0", + "@aws-sdk/credential-provider-process": "3.598.0", + "@aws-sdk/credential-provider-sso": "3.598.0", + "@aws-sdk/credential-provider-web-identity": "3.598.0", + "@aws-sdk/types": "3.598.0", + "@smithy/credential-provider-imds": "^3.1.1", + "@smithy/property-provider": "^3.1.1", + "@smithy/shared-ini-file-loader": "^3.1.1", + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "@aws-sdk/client-sts": "^3.598.0" } }, - "node_modules/@babel/helper-function-name": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", - "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", - "dev": true, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/credential-provider-node": { + "version": "3.598.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.598.0.tgz", + "integrity": "sha512-sXTlqL5I/awlF9Dg2MQ17SfrEaABVnsj2mf4jF5qQrIRhfbvQOIYdEqdy8Rn1AWlJMz/N450SGzc0XJ5owxxqw==", "dependencies": { - "@babel/template": "^7.22.15", - "@babel/types": "^7.23.0" + "@aws-sdk/credential-provider-env": "3.598.0", + "@aws-sdk/credential-provider-http": "3.598.0", + "@aws-sdk/credential-provider-ini": "3.598.0", + "@aws-sdk/credential-provider-process": "3.598.0", + "@aws-sdk/credential-provider-sso": "3.598.0", + "@aws-sdk/credential-provider-web-identity": "3.598.0", + "@aws-sdk/types": "3.598.0", + "@smithy/credential-provider-imds": "^3.1.1", + "@smithy/property-provider": "^3.1.1", + "@smithy/shared-ini-file-loader": "^3.1.1", + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" }, "engines": { - "node": ">=6.9.0" + "node": ">=16.0.0" } }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", - "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", - "dev": true, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/credential-provider-process": { + "version": "3.598.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.598.0.tgz", + "integrity": "sha512-rM707XbLW8huMk722AgjVyxu2tMZee++fNA8TJVNgs1Ma02Wx6bBrfIvlyK0rCcIRb0WdQYP6fe3Xhiu4e8IBA==", "dependencies": { - "@babel/types": "^7.22.5" + "@aws-sdk/types": "3.598.0", + "@smithy/property-provider": "^3.1.1", + "@smithy/shared-ini-file-loader": "^3.1.1", + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" }, "engines": { - "node": ">=6.9.0" + "node": ">=16.0.0" } }, - "node_modules/@babel/helper-module-imports": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", - "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", - "dev": true, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/credential-provider-sso": { + "version": "3.598.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.598.0.tgz", + "integrity": "sha512-5InwUmrAuqQdOOgxTccRayMMkSmekdLk6s+az9tmikq0QFAHUCtofI+/fllMXSR9iL6JbGYi1940+EUmS4pHJA==", "dependencies": { - "@babel/types": "^7.22.15" + "@aws-sdk/client-sso": "3.598.0", + "@aws-sdk/token-providers": "3.598.0", + "@aws-sdk/types": "3.598.0", + "@smithy/property-provider": "^3.1.1", + "@smithy/shared-ini-file-loader": "^3.1.1", + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" }, "engines": { - "node": ">=6.9.0" + "node": ">=16.0.0" } }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", - "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", - "dev": true, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/credential-provider-web-identity": { + "version": "3.598.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.598.0.tgz", + "integrity": "sha512-GV5GdiMbz5Tz9JO4NJtRoFXjW0GPEujA0j+5J/B723rTN+REHthJu48HdBKouHGhdzkDWkkh1bu52V02Wprw8w==", "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-simple-access": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/helper-validator-identifier": "^7.22.20" + "@aws-sdk/types": "3.598.0", + "@smithy/property-provider": "^3.1.1", + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" }, "engines": { - "node": ">=6.9.0" + "node": ">=16.0.0" }, "peerDependencies": { - "@babel/core": "^7.0.0" + "@aws-sdk/client-sts": "^3.598.0" } }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", - "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", - "dev": true, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/middleware-host-header": { + "version": "3.598.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.598.0.tgz", + "integrity": "sha512-WiaG059YBQwQraNejLIi0gMNkX7dfPZ8hDIhvMr5aVPRbaHH8AYF3iNSsXYCHvA2Cfa1O9haYXsuMF9flXnCmA==", + "dependencies": { + "@aws-sdk/types": "3.598.0", + "@smithy/protocol-http": "^4.0.1", + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" + }, "engines": { - "node": ">=6.9.0" + "node": ">=16.0.0" } }, - "node_modules/@babel/helper-simple-access": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", - "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", - "dev": true, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/middleware-logger": { + "version": "3.598.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.598.0.tgz", + "integrity": "sha512-bxBjf/VYiu3zfu8SYM2S9dQQc3tz5uBAOcPz/Bt8DyyK3GgOpjhschH/2XuUErsoUO1gDJqZSdGOmuHGZQn00Q==", "dependencies": { - "@babel/types": "^7.22.5" + "@aws-sdk/types": "3.598.0", + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" }, "engines": { - "node": ">=6.9.0" + "node": ">=16.0.0" } }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", - "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", - "dev": true, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/middleware-recursion-detection": { + "version": "3.598.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.598.0.tgz", + "integrity": "sha512-vjT9BeFY9FeN0f8hm2l6F53tI0N5bUq6RcDkQXKNabXBnQxKptJRad6oP2X5y3FoVfBLOuDkQgiC2940GIPxtQ==", "dependencies": { - "@babel/types": "^7.22.5" + "@aws-sdk/types": "3.598.0", + "@smithy/protocol-http": "^4.0.1", + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" }, "engines": { - "node": ">=6.9.0" + "node": ">=16.0.0" } }, - "node_modules/@babel/helper-string-parser": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", - "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", - "dev": true, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/middleware-user-agent": { + "version": "3.598.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.598.0.tgz", + "integrity": "sha512-4tjESlHG5B5MdjUaLK7tQs/miUtHbb6deauQx8ryqSBYOhfHVgb1ZnzvQR0bTrhpqUg0WlybSkDaZAICf9xctg==", + "dependencies": { + "@aws-sdk/types": "3.598.0", + "@aws-sdk/util-endpoints": "3.598.0", + "@smithy/protocol-http": "^4.0.1", + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" + }, "engines": { - "node": ">=6.9.0" + "node": ">=16.0.0" } }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", - "dev": true, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/region-config-resolver": { + "version": "3.598.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.598.0.tgz", + "integrity": "sha512-oYXhmTokSav4ytmWleCr3rs/1nyvZW/S0tdi6X7u+dLNL5Jee+uMxWGzgOrWK6wrQOzucLVjS4E/wA11Kv2GTw==", + "dependencies": { + "@aws-sdk/types": "3.598.0", + "@smithy/node-config-provider": "^3.1.1", + "@smithy/types": "^3.1.0", + "@smithy/util-config-provider": "^3.0.0", + "@smithy/util-middleware": "^3.0.1", + "tslib": "^2.6.2" + }, "engines": { - "node": ">=6.9.0" + "node": ">=16.0.0" } }, - "node_modules/@babel/helper-validator-option": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", - "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", - "dev": true, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/token-providers": { + "version": "3.598.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.598.0.tgz", + "integrity": "sha512-TKY1EVdHVBnZqpyxyTHdpZpa1tUpb6nxVeRNn1zWG8QB5MvH4ALLd/jR+gtmWDNQbIG4cVuBOZFVL8hIYicKTA==", + "dependencies": { + "@aws-sdk/types": "3.598.0", + "@smithy/property-provider": "^3.1.1", + "@smithy/shared-ini-file-loader": "^3.1.1", + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" + }, "engines": { - "node": ">=6.9.0" + "node": ">=16.0.0" + }, + "peerDependencies": { + "@aws-sdk/client-sso-oidc": "^3.598.0" } }, - "node_modules/@babel/helpers": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.0.tgz", - "integrity": "sha512-ulDZdc0Aj5uLc5nETsa7EPx2L7rM0YJM8r7ck7U73AXi7qOV44IHHRAYZHY6iU1rr3C5N4NtTmMRUJP6kwCWeA==", - "dev": true, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/types": { + "version": "3.598.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.598.0.tgz", + "integrity": "sha512-742uRl6z7u0LFmZwDrFP6r1wlZcgVPw+/TilluDJmCAR8BgRw3IR+743kUXKBGd8QZDRW2n6v/PYsi/AWCDDMQ==", "dependencies": { - "@babel/template": "^7.24.0", - "@babel/traverse": "^7.24.0", - "@babel/types": "^7.24.0" + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" }, "engines": { - "node": ">=6.9.0" + "node": ">=16.0.0" } }, - "node_modules/@babel/highlight": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", - "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", - "dev": true, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/util-endpoints": { + "version": "3.598.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.598.0.tgz", + "integrity": "sha512-Qo9UoiVVZxcOEdiOMZg3xb1mzkTxrhd4qSlg5QQrfWPJVx/QOg+Iy0NtGxPtHtVZNHZxohYwDwV/tfsnDSE2gQ==", "dependencies": { - "@babel/helper-validator-identifier": "^7.22.20", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0" + "@aws-sdk/types": "3.598.0", + "@smithy/types": "^3.1.0", + "@smithy/util-endpoints": "^2.0.2", + "tslib": "^2.6.2" }, "engines": { - "node": ">=6.9.0" + "node": ">=16.0.0" } }, - "node_modules/@babel/highlight/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/util-user-agent-browser": { + "version": "3.598.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.598.0.tgz", + "integrity": "sha512-36Sxo6F+ykElaL1mWzWjlg+1epMpSe8obwhCN1yGE7Js9ywy5U6k6l+A3q3YM9YRbm740sNxncbwLklMvuhTKw==", "dependencies": { - "color-convert": "^1.9.0" + "@aws-sdk/types": "3.598.0", + "@smithy/types": "^3.1.0", + "bowser": "^2.11.0", + "tslib": "^2.6.2" + } + }, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@aws-sdk/util-user-agent-node": { + "version": "3.598.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.598.0.tgz", + "integrity": "sha512-oyWGcOlfTdzkC6SVplyr0AGh54IMrDxbhg5RxJ5P+V4BKfcDoDcZV9xenUk9NsOi9MuUjxMumb9UJGkDhM1m0A==", + "dependencies": { + "@aws-sdk/types": "3.598.0", + "@smithy/node-config-provider": "^3.1.1", + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" }, "engines": { - "node": ">=4" + "node": ">=16.0.0" + }, + "peerDependencies": { + "aws-crt": ">=1.0.0" + }, + "peerDependenciesMeta": { + "aws-crt": { + "optional": true + } } }, - "node_modules/@babel/highlight/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@smithy/is-array-buffer": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-2.2.0.tgz", + "integrity": "sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==", "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "tslib": "^2.6.2" }, "engines": { - "node": ">=4" + "node": ">=14.0.0" } }, - "node_modules/@babel/highlight/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, + "node_modules/@aws-sdk/client-cognito-identity/node_modules/@smithy/util-buffer-from": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-2.2.0.tgz", + "integrity": "sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==", "dependencies": { - "color-name": "1.1.3" + "@smithy/is-array-buffer": "^2.2.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=14.0.0" } }, - "node_modules/@babel/highlight/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true + "node_modules/@aws-sdk/client-sso": { + "version": "3.577.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.577.0.tgz", + "integrity": "sha512-BwujdXrydlk6UEyPmewm5GqG4nkQ6OVyRhS/SyZP/6UKSFv2/sf391Cmz0hN0itUTH1rR4XeLln8XCOtarkrzg==", + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/core": "3.576.0", + "@aws-sdk/middleware-host-header": "3.577.0", + "@aws-sdk/middleware-logger": "3.577.0", + "@aws-sdk/middleware-recursion-detection": "3.577.0", + "@aws-sdk/middleware-user-agent": "3.577.0", + "@aws-sdk/region-config-resolver": "3.577.0", + "@aws-sdk/types": "3.577.0", + "@aws-sdk/util-endpoints": "3.577.0", + "@aws-sdk/util-user-agent-browser": "3.577.0", + "@aws-sdk/util-user-agent-node": "3.577.0", + "@smithy/config-resolver": "^3.0.0", + "@smithy/core": "^2.0.0", + "@smithy/fetch-http-handler": "^3.0.0", + "@smithy/hash-node": "^3.0.0", + "@smithy/invalid-dependency": "^3.0.0", + "@smithy/middleware-content-length": "^3.0.0", + "@smithy/middleware-endpoint": "^3.0.0", + "@smithy/middleware-retry": "^3.0.0", + "@smithy/middleware-serde": "^3.0.0", + "@smithy/middleware-stack": "^3.0.0", + "@smithy/node-config-provider": "^3.0.0", + "@smithy/node-http-handler": "^3.0.0", + "@smithy/protocol-http": "^4.0.0", + "@smithy/smithy-client": "^3.0.0", + "@smithy/types": "^3.0.0", + "@smithy/url-parser": "^3.0.0", + "@smithy/util-base64": "^3.0.0", + "@smithy/util-body-length-browser": "^3.0.0", + "@smithy/util-body-length-node": "^3.0.0", + "@smithy/util-defaults-mode-browser": "^3.0.0", + "@smithy/util-defaults-mode-node": "^3.0.0", + "@smithy/util-endpoints": "^2.0.0", + "@smithy/util-middleware": "^3.0.0", + "@smithy/util-retry": "^3.0.0", + "@smithy/util-utf8": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-sso-oidc": { + "version": "3.577.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.577.0.tgz", + "integrity": "sha512-njmKSPDWueWWYVFpFcZ2P3fI6/pdQVDa0FgCyYZhOnJLgEHZIcBBg1AsnkVWacBuLopp9XVt2m+7hO6ugY1/1g==", + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/client-sts": "3.577.0", + "@aws-sdk/core": "3.576.0", + "@aws-sdk/credential-provider-node": "3.577.0", + "@aws-sdk/middleware-host-header": "3.577.0", + "@aws-sdk/middleware-logger": "3.577.0", + "@aws-sdk/middleware-recursion-detection": "3.577.0", + "@aws-sdk/middleware-user-agent": "3.577.0", + "@aws-sdk/region-config-resolver": "3.577.0", + "@aws-sdk/types": "3.577.0", + "@aws-sdk/util-endpoints": "3.577.0", + "@aws-sdk/util-user-agent-browser": "3.577.0", + "@aws-sdk/util-user-agent-node": "3.577.0", + "@smithy/config-resolver": "^3.0.0", + "@smithy/core": "^2.0.0", + "@smithy/fetch-http-handler": "^3.0.0", + "@smithy/hash-node": "^3.0.0", + "@smithy/invalid-dependency": "^3.0.0", + "@smithy/middleware-content-length": "^3.0.0", + "@smithy/middleware-endpoint": "^3.0.0", + "@smithy/middleware-retry": "^3.0.0", + "@smithy/middleware-serde": "^3.0.0", + "@smithy/middleware-stack": "^3.0.0", + "@smithy/node-config-provider": "^3.0.0", + "@smithy/node-http-handler": "^3.0.0", + "@smithy/protocol-http": "^4.0.0", + "@smithy/smithy-client": "^3.0.0", + "@smithy/types": "^3.0.0", + "@smithy/url-parser": "^3.0.0", + "@smithy/util-base64": "^3.0.0", + "@smithy/util-body-length-browser": "^3.0.0", + "@smithy/util-body-length-node": "^3.0.0", + "@smithy/util-defaults-mode-browser": "^3.0.0", + "@smithy/util-defaults-mode-node": "^3.0.0", + "@smithy/util-endpoints": "^2.0.0", + "@smithy/util-middleware": "^3.0.0", + "@smithy/util-retry": "^3.0.0", + "@smithy/util-utf8": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/client-sts": { + "version": "3.577.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.577.0.tgz", + "integrity": "sha512-509Kklimva1XVlhGbpTpeX3kOP6ORpm44twJxDHpa9TURbmoaxj7veWlnLCbDorxDTrbsDghvYZshvcLsojVpg==", + "dependencies": { + "@aws-crypto/sha256-browser": "3.0.0", + "@aws-crypto/sha256-js": "3.0.0", + "@aws-sdk/client-sso-oidc": "3.577.0", + "@aws-sdk/core": "3.576.0", + "@aws-sdk/credential-provider-node": "3.577.0", + "@aws-sdk/middleware-host-header": "3.577.0", + "@aws-sdk/middleware-logger": "3.577.0", + "@aws-sdk/middleware-recursion-detection": "3.577.0", + "@aws-sdk/middleware-user-agent": "3.577.0", + "@aws-sdk/region-config-resolver": "3.577.0", + "@aws-sdk/types": "3.577.0", + "@aws-sdk/util-endpoints": "3.577.0", + "@aws-sdk/util-user-agent-browser": "3.577.0", + "@aws-sdk/util-user-agent-node": "3.577.0", + "@smithy/config-resolver": "^3.0.0", + "@smithy/core": "^2.0.0", + "@smithy/fetch-http-handler": "^3.0.0", + "@smithy/hash-node": "^3.0.0", + "@smithy/invalid-dependency": "^3.0.0", + "@smithy/middleware-content-length": "^3.0.0", + "@smithy/middleware-endpoint": "^3.0.0", + "@smithy/middleware-retry": "^3.0.0", + "@smithy/middleware-serde": "^3.0.0", + "@smithy/middleware-stack": "^3.0.0", + "@smithy/node-config-provider": "^3.0.0", + "@smithy/node-http-handler": "^3.0.0", + "@smithy/protocol-http": "^4.0.0", + "@smithy/smithy-client": "^3.0.0", + "@smithy/types": "^3.0.0", + "@smithy/url-parser": "^3.0.0", + "@smithy/util-base64": "^3.0.0", + "@smithy/util-body-length-browser": "^3.0.0", + "@smithy/util-body-length-node": "^3.0.0", + "@smithy/util-defaults-mode-browser": "^3.0.0", + "@smithy/util-defaults-mode-node": "^3.0.0", + "@smithy/util-endpoints": "^2.0.0", + "@smithy/util-middleware": "^3.0.0", + "@smithy/util-retry": "^3.0.0", + "@smithy/util-utf8": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/core": { + "version": "3.576.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.576.0.tgz", + "integrity": "sha512-KDvDlbeipSTIf+ffKtTg1m419TK7s9mZSWC8bvuZ9qx6/sjQFOXIKOVqyuli6DnfxGbvRcwoRuY99OcCH1N/0w==", + "dependencies": { + "@smithy/core": "^2.0.0", + "@smithy/protocol-http": "^4.0.0", + "@smithy/signature-v4": "^3.0.0", + "@smithy/smithy-client": "^3.0.0", + "@smithy/types": "^3.0.0", + "fast-xml-parser": "4.2.5", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-cognito-identity": { + "version": "3.598.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.598.0.tgz", + "integrity": "sha512-u6oocRReswkA2mFlOwtCetgmEr9B+Yhle3K13x37rb1lQgq1wUuWUvHU7U9v26hUZIhfUpigV/Mgr/RQZB6+Yw==", + "dependencies": { + "@aws-sdk/client-cognito-identity": "3.598.0", + "@aws-sdk/types": "3.598.0", + "@smithy/property-provider": "^3.1.1", + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-cognito-identity/node_modules/@aws-sdk/types": { + "version": "3.598.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.598.0.tgz", + "integrity": "sha512-742uRl6z7u0LFmZwDrFP6r1wlZcgVPw+/TilluDJmCAR8BgRw3IR+743kUXKBGd8QZDRW2n6v/PYsi/AWCDDMQ==", + "dependencies": { + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } }, - "node_modules/@babel/highlight/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, + "node_modules/@aws-sdk/credential-provider-env": { + "version": "3.577.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.577.0.tgz", + "integrity": "sha512-Jxu255j0gToMGEiqufP8ZtKI8HW90lOLjwJ3LrdlD/NLsAY0tOQf1fWc53u28hWmmNGMxmCrL2p66IOgMDhDUw==", + "dependencies": { + "@aws-sdk/types": "3.577.0", + "@smithy/property-provider": "^3.0.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/credential-provider-http": { + "version": "3.577.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.577.0.tgz", + "integrity": "sha512-n++yhCp67b9+ZRGEdY1jhamB5E/O+QsIDOPSuRmdaSGMCOd82oUEKPgIVEU1bkqxDsBxgiEWuvtfhK6sNiDS0A==", + "dependencies": { + "@aws-sdk/types": "3.577.0", + "@smithy/fetch-http-handler": "^3.0.0", + "@smithy/node-http-handler": "^3.0.0", + "@smithy/property-provider": "^3.0.0", + "@smithy/protocol-http": "^4.0.0", + "@smithy/smithy-client": "^3.0.0", + "@smithy/types": "^3.0.0", + "@smithy/util-stream": "^3.0.0", + "tslib": "^2.6.2" + }, "engines": { - "node": ">=0.8.0" + "node": ">=16.0.0" } }, - "node_modules/@babel/highlight/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, + "node_modules/@aws-sdk/credential-provider-ini": { + "version": "3.577.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.577.0.tgz", + "integrity": "sha512-q7lHPtv6BjRvChUE3m0tIaEZKxPTaZ1B3lKxGYsFl3VLAu5N8yGCUKwuA1izf4ucT+LyKscVGqK6VDZx1ev3nw==", + "dependencies": { + "@aws-sdk/credential-provider-env": "3.577.0", + "@aws-sdk/credential-provider-process": "3.577.0", + "@aws-sdk/credential-provider-sso": "3.577.0", + "@aws-sdk/credential-provider-web-identity": "3.577.0", + "@aws-sdk/types": "3.577.0", + "@smithy/credential-provider-imds": "^3.0.0", + "@smithy/property-provider": "^3.0.0", + "@smithy/shared-ini-file-loader": "^3.0.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, "engines": { - "node": ">=4" + "node": ">=16.0.0" + }, + "peerDependencies": { + "@aws-sdk/client-sts": "^3.577.0" } }, - "node_modules/@babel/highlight/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, + "node_modules/@aws-sdk/credential-provider-node": { + "version": "3.577.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.577.0.tgz", + "integrity": "sha512-epZ1HOMsrXBNczc0HQpv0VMjqAEpc09DUA7Rg3gUJfn8umhML7A7bXnUyqPA+S54q397UYg1leQKdSn23OiwQQ==", "dependencies": { - "has-flag": "^3.0.0" + "@aws-sdk/credential-provider-env": "3.577.0", + "@aws-sdk/credential-provider-http": "3.577.0", + "@aws-sdk/credential-provider-ini": "3.577.0", + "@aws-sdk/credential-provider-process": "3.577.0", + "@aws-sdk/credential-provider-sso": "3.577.0", + "@aws-sdk/credential-provider-web-identity": "3.577.0", + "@aws-sdk/types": "3.577.0", + "@smithy/credential-provider-imds": "^3.0.0", + "@smithy/property-provider": "^3.0.0", + "@smithy/shared-ini-file-loader": "^3.0.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" }, "engines": { - "node": ">=4" + "node": ">=16.0.0" } }, - "node_modules/@babel/parser": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.0.tgz", - "integrity": "sha512-QuP/FxEAzMSjXygs8v4N9dvdXzEHN4W1oF3PxuWAtPo08UdM17u89RDMgjLn/mlc56iM0HlLmVkO/wgR+rDgHg==", - "dev": true, - "bin": { - "parser": "bin/babel-parser.js" + "node_modules/@aws-sdk/credential-provider-process": { + "version": "3.577.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.577.0.tgz", + "integrity": "sha512-Gin6BWtOiXxIgITrJ3Nwc+Y2P1uVT6huYR4EcbA/DJUPWyO0n9y5UFLewPvVbLkRn15JeEqErBLUrHclkiOKtw==", + "dependencies": { + "@aws-sdk/types": "3.577.0", + "@smithy/property-provider": "^3.0.0", + "@smithy/shared-ini-file-loader": "^3.0.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" }, "engines": { - "node": ">=6.0.0" + "node": ">=16.0.0" } }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, + "node_modules/@aws-sdk/credential-provider-sso": { + "version": "3.577.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.577.0.tgz", + "integrity": "sha512-iVm5SQvS7EgZTJsRaqUOmDQpBQPPPat42SCbWFvFQOLrl8qewq8OP94hFS5w2mP62zngeYzqhJnDel79HXbxew==", "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "@aws-sdk/client-sso": "3.577.0", + "@aws-sdk/token-providers": "3.577.0", + "@aws-sdk/types": "3.577.0", + "@smithy/property-provider": "^3.0.0", + "@smithy/shared-ini-file-loader": "^3.0.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "engines": { + "node": ">=16.0.0" } }, - "node_modules/@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", - "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", - "dev": true, + "node_modules/@aws-sdk/credential-provider-web-identity": { + "version": "3.577.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.577.0.tgz", + "integrity": "sha512-ZGHGNRaCtJJmszb9UTnC7izNCtRUttdPlLdMkh41KPS32vfdrBDHs1JrpbZijItRj1xKuOXsiYSXLAaHGcLh8Q==", "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "@aws-sdk/types": "3.577.0", + "@smithy/property-provider": "^3.0.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@aws-sdk/client-sts": "^3.577.0" } }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dev": true, + "node_modules/@aws-sdk/credential-providers": { + "version": "3.598.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-providers/-/credential-providers-3.598.0.tgz", + "integrity": "sha512-IFZwH3F2rA2WbpYFUxOeu/M3/9p4+oRbKVLDZlaaDtwwuZ9VHEbnkUm20zOgSXeVExa3qgYhJvg7H5JrqxP97A==", "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" + "@aws-sdk/client-cognito-identity": "3.598.0", + "@aws-sdk/client-sso": "3.598.0", + "@aws-sdk/client-sts": "3.598.0", + "@aws-sdk/credential-provider-cognito-identity": "3.598.0", + "@aws-sdk/credential-provider-env": "3.598.0", + "@aws-sdk/credential-provider-http": "3.598.0", + "@aws-sdk/credential-provider-ini": "3.598.0", + "@aws-sdk/credential-provider-node": "3.598.0", + "@aws-sdk/credential-provider-process": "3.598.0", + "@aws-sdk/credential-provider-sso": "3.598.0", + "@aws-sdk/credential-provider-web-identity": "3.598.0", + "@aws-sdk/types": "3.598.0", + "@smithy/credential-provider-imds": "^3.1.1", + "@smithy/property-provider": "^3.1.1", + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "engines": { + "node": ">=16.0.0" } }, - "node_modules/@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "dev": true, + "node_modules/@aws-sdk/credential-providers/node_modules/@aws-crypto/sha256-browser": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-browser/-/sha256-browser-5.2.0.tgz", + "integrity": "sha512-AXfN/lGotSQwu6HNcEsIASo7kWXZ5HYWvfOmSNKDsEqC4OashTp8alTmaz+F7TC2L083SFv5RdB+qU3Vs1kZqw==", "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" + "@aws-crypto/sha256-js": "^5.2.0", + "@aws-crypto/supports-web-crypto": "^5.2.0", + "@aws-crypto/util": "^5.2.0", + "@aws-sdk/types": "^3.222.0", + "@aws-sdk/util-locate-window": "^3.0.0", + "@smithy/util-utf8": "^2.0.0", + "tslib": "^2.6.2" + } + }, + "node_modules/@aws-sdk/credential-providers/node_modules/@aws-crypto/sha256-browser/node_modules/@smithy/util-utf8": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-2.3.0.tgz", + "integrity": "sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==", + "dependencies": { + "@smithy/util-buffer-from": "^2.2.0", + "tslib": "^2.6.2" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "engines": { + "node": ">=14.0.0" } }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, + "node_modules/@aws-sdk/credential-providers/node_modules/@aws-crypto/sha256-js": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-5.2.0.tgz", + "integrity": "sha512-FFQQyu7edu4ufvIZ+OadFpHHOt+eSTBaYaki44c+akjg7qZg9oOQeLlk77F6tSYqjDAFClrHJk9tMf0HdVyOvA==", "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "@aws-crypto/util": "^5.2.0", + "@aws-sdk/types": "^3.222.0", + "tslib": "^2.6.2" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "engines": { + "node": ">=16.0.0" } }, - "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz", - "integrity": "sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==", - "dev": true, + "node_modules/@aws-sdk/credential-providers/node_modules/@aws-crypto/supports-web-crypto": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/supports-web-crypto/-/supports-web-crypto-5.2.0.tgz", + "integrity": "sha512-iAvUotm021kM33eCdNfwIN//F77/IADDSs58i+MDaOqFrVjZo9bAal0NK7HurRuWLLpF1iLX7gbWrjHjeo+YFg==", + "dependencies": { + "tslib": "^2.6.2" + } + }, + "node_modules/@aws-sdk/credential-providers/node_modules/@aws-crypto/util": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@aws-crypto/util/-/util-5.2.0.tgz", + "integrity": "sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==", + "dependencies": { + "@aws-sdk/types": "^3.222.0", + "@smithy/util-utf8": "^2.0.0", + "tslib": "^2.6.2" + } + }, + "node_modules/@aws-sdk/credential-providers/node_modules/@aws-crypto/util/node_modules/@smithy/util-utf8": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-2.3.0.tgz", + "integrity": "sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@smithy/util-buffer-from": "^2.2.0", + "tslib": "^2.6.2" }, "engines": { - "node": ">=6.9.0" + "node": ">=14.0.0" + } + }, + "node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/client-sso": { + "version": "3.598.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.598.0.tgz", + "integrity": "sha512-nOI5lqPYa+YZlrrzwAJywJSw3MKVjvu6Ge2fCqQUNYMfxFB0NAaDFnl0EPjXi+sEbtCuz/uWE77poHbqiZ+7Iw==", + "dependencies": { + "@aws-crypto/sha256-browser": "5.2.0", + "@aws-crypto/sha256-js": "5.2.0", + "@aws-sdk/core": "3.598.0", + "@aws-sdk/middleware-host-header": "3.598.0", + "@aws-sdk/middleware-logger": "3.598.0", + "@aws-sdk/middleware-recursion-detection": "3.598.0", + "@aws-sdk/middleware-user-agent": "3.598.0", + "@aws-sdk/region-config-resolver": "3.598.0", + "@aws-sdk/types": "3.598.0", + "@aws-sdk/util-endpoints": "3.598.0", + "@aws-sdk/util-user-agent-browser": "3.598.0", + "@aws-sdk/util-user-agent-node": "3.598.0", + "@smithy/config-resolver": "^3.0.2", + "@smithy/core": "^2.2.1", + "@smithy/fetch-http-handler": "^3.0.2", + "@smithy/hash-node": "^3.0.1", + "@smithy/invalid-dependency": "^3.0.1", + "@smithy/middleware-content-length": "^3.0.1", + "@smithy/middleware-endpoint": "^3.0.2", + "@smithy/middleware-retry": "^3.0.4", + "@smithy/middleware-serde": "^3.0.1", + "@smithy/middleware-stack": "^3.0.1", + "@smithy/node-config-provider": "^3.1.1", + "@smithy/node-http-handler": "^3.0.1", + "@smithy/protocol-http": "^4.0.1", + "@smithy/smithy-client": "^3.1.2", + "@smithy/types": "^3.1.0", + "@smithy/url-parser": "^3.0.1", + "@smithy/util-base64": "^3.0.0", + "@smithy/util-body-length-browser": "^3.0.0", + "@smithy/util-body-length-node": "^3.0.0", + "@smithy/util-defaults-mode-browser": "^3.0.4", + "@smithy/util-defaults-mode-node": "^3.0.4", + "@smithy/util-endpoints": "^2.0.2", + "@smithy/util-middleware": "^3.0.1", + "@smithy/util-retry": "^3.0.1", + "@smithy/util-utf8": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/client-sso-oidc": { + "version": "3.598.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.598.0.tgz", + "integrity": "sha512-jfdH1pAO9Tt8Nkta/JJLoUnwl7jaRdxToQTJfUtE+o3+0JP5sA4LfC2rBkJSWcU5BdAA+kyOs5Lv776DlN04Vg==", + "dependencies": { + "@aws-crypto/sha256-browser": "5.2.0", + "@aws-crypto/sha256-js": "5.2.0", + "@aws-sdk/client-sts": "3.598.0", + "@aws-sdk/core": "3.598.0", + "@aws-sdk/credential-provider-node": "3.598.0", + "@aws-sdk/middleware-host-header": "3.598.0", + "@aws-sdk/middleware-logger": "3.598.0", + "@aws-sdk/middleware-recursion-detection": "3.598.0", + "@aws-sdk/middleware-user-agent": "3.598.0", + "@aws-sdk/region-config-resolver": "3.598.0", + "@aws-sdk/types": "3.598.0", + "@aws-sdk/util-endpoints": "3.598.0", + "@aws-sdk/util-user-agent-browser": "3.598.0", + "@aws-sdk/util-user-agent-node": "3.598.0", + "@smithy/config-resolver": "^3.0.2", + "@smithy/core": "^2.2.1", + "@smithy/fetch-http-handler": "^3.0.2", + "@smithy/hash-node": "^3.0.1", + "@smithy/invalid-dependency": "^3.0.1", + "@smithy/middleware-content-length": "^3.0.1", + "@smithy/middleware-endpoint": "^3.0.2", + "@smithy/middleware-retry": "^3.0.4", + "@smithy/middleware-serde": "^3.0.1", + "@smithy/middleware-stack": "^3.0.1", + "@smithy/node-config-provider": "^3.1.1", + "@smithy/node-http-handler": "^3.0.1", + "@smithy/protocol-http": "^4.0.1", + "@smithy/smithy-client": "^3.1.2", + "@smithy/types": "^3.1.0", + "@smithy/url-parser": "^3.0.1", + "@smithy/util-base64": "^3.0.0", + "@smithy/util-body-length-browser": "^3.0.0", + "@smithy/util-body-length-node": "^3.0.0", + "@smithy/util-defaults-mode-browser": "^3.0.4", + "@smithy/util-defaults-mode-node": "^3.0.4", + "@smithy/util-endpoints": "^2.0.2", + "@smithy/util-middleware": "^3.0.1", + "@smithy/util-retry": "^3.0.1", + "@smithy/util-utf8": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/client-sts": { + "version": "3.598.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.598.0.tgz", + "integrity": "sha512-bXhz/cHL0iB9UH9IFtMaJJf4F8mV+HzncETCRFzZ9SyUMt5rP9j8A7VZknqGYSx/6mI8SsB1XJQkWSbhn6FiSQ==", + "dependencies": { + "@aws-crypto/sha256-browser": "5.2.0", + "@aws-crypto/sha256-js": "5.2.0", + "@aws-sdk/client-sso-oidc": "3.598.0", + "@aws-sdk/core": "3.598.0", + "@aws-sdk/credential-provider-node": "3.598.0", + "@aws-sdk/middleware-host-header": "3.598.0", + "@aws-sdk/middleware-logger": "3.598.0", + "@aws-sdk/middleware-recursion-detection": "3.598.0", + "@aws-sdk/middleware-user-agent": "3.598.0", + "@aws-sdk/region-config-resolver": "3.598.0", + "@aws-sdk/types": "3.598.0", + "@aws-sdk/util-endpoints": "3.598.0", + "@aws-sdk/util-user-agent-browser": "3.598.0", + "@aws-sdk/util-user-agent-node": "3.598.0", + "@smithy/config-resolver": "^3.0.2", + "@smithy/core": "^2.2.1", + "@smithy/fetch-http-handler": "^3.0.2", + "@smithy/hash-node": "^3.0.1", + "@smithy/invalid-dependency": "^3.0.1", + "@smithy/middleware-content-length": "^3.0.1", + "@smithy/middleware-endpoint": "^3.0.2", + "@smithy/middleware-retry": "^3.0.4", + "@smithy/middleware-serde": "^3.0.1", + "@smithy/middleware-stack": "^3.0.1", + "@smithy/node-config-provider": "^3.1.1", + "@smithy/node-http-handler": "^3.0.1", + "@smithy/protocol-http": "^4.0.1", + "@smithy/smithy-client": "^3.1.2", + "@smithy/types": "^3.1.0", + "@smithy/url-parser": "^3.0.1", + "@smithy/util-base64": "^3.0.0", + "@smithy/util-body-length-browser": "^3.0.0", + "@smithy/util-body-length-node": "^3.0.0", + "@smithy/util-defaults-mode-browser": "^3.0.4", + "@smithy/util-defaults-mode-node": "^3.0.4", + "@smithy/util-endpoints": "^2.0.2", + "@smithy/util-middleware": "^3.0.1", + "@smithy/util-retry": "^3.0.1", + "@smithy/util-utf8": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/core": { + "version": "3.598.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.598.0.tgz", + "integrity": "sha512-HaSjt7puO5Cc7cOlrXFCW0rtA0BM9lvzjl56x0A20Pt+0wxXGeTOZZOkXQIepbrFkV2e/HYukuT9e99vXDm59g==", + "dependencies": { + "@smithy/core": "^2.2.1", + "@smithy/protocol-http": "^4.0.1", + "@smithy/signature-v4": "^3.1.0", + "@smithy/smithy-client": "^3.1.2", + "@smithy/types": "^3.1.0", + "fast-xml-parser": "4.2.5", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/credential-provider-env": { + "version": "3.598.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.598.0.tgz", + "integrity": "sha512-vi1khgn7yXzLCcgSIzQrrtd2ilUM0dWodxj3PQ6BLfP0O+q1imO3hG1nq7DVyJtq7rFHs6+9N8G4mYvTkxby2w==", + "dependencies": { + "@aws-sdk/types": "3.598.0", + "@smithy/property-provider": "^3.1.1", + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/credential-provider-http": { + "version": "3.598.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.598.0.tgz", + "integrity": "sha512-N7cIafi4HVlQvEgvZSo1G4T9qb/JMLGMdBsDCT5XkeJrF0aptQWzTFH0jIdZcLrMYvzPcuEyO3yCBe6cy/ba0g==", + "dependencies": { + "@aws-sdk/types": "3.598.0", + "@smithy/fetch-http-handler": "^3.0.2", + "@smithy/node-http-handler": "^3.0.1", + "@smithy/property-provider": "^3.1.1", + "@smithy/protocol-http": "^4.0.1", + "@smithy/smithy-client": "^3.1.2", + "@smithy/types": "^3.1.0", + "@smithy/util-stream": "^3.0.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/credential-provider-ini": { + "version": "3.598.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.598.0.tgz", + "integrity": "sha512-/ppcIVUbRwDIwJDoYfp90X3+AuJo2mvE52Y1t2VSrvUovYn6N4v95/vXj6LS8CNDhz2jvEJYmu+0cTMHdhI6eA==", + "dependencies": { + "@aws-sdk/credential-provider-env": "3.598.0", + "@aws-sdk/credential-provider-http": "3.598.0", + "@aws-sdk/credential-provider-process": "3.598.0", + "@aws-sdk/credential-provider-sso": "3.598.0", + "@aws-sdk/credential-provider-web-identity": "3.598.0", + "@aws-sdk/types": "3.598.0", + "@smithy/credential-provider-imds": "^3.1.1", + "@smithy/property-provider": "^3.1.1", + "@smithy/shared-ini-file-loader": "^3.1.1", + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@aws-sdk/client-sts": "^3.598.0" } }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dev": true, + "node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/credential-provider-node": { + "version": "3.598.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.598.0.tgz", + "integrity": "sha512-sXTlqL5I/awlF9Dg2MQ17SfrEaABVnsj2mf4jF5qQrIRhfbvQOIYdEqdy8Rn1AWlJMz/N450SGzc0XJ5owxxqw==", "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" + "@aws-sdk/credential-provider-env": "3.598.0", + "@aws-sdk/credential-provider-http": "3.598.0", + "@aws-sdk/credential-provider-ini": "3.598.0", + "@aws-sdk/credential-provider-process": "3.598.0", + "@aws-sdk/credential-provider-sso": "3.598.0", + "@aws-sdk/credential-provider-web-identity": "3.598.0", + "@aws-sdk/types": "3.598.0", + "@smithy/credential-provider-imds": "^3.1.1", + "@smithy/property-provider": "^3.1.1", + "@smithy/shared-ini-file-loader": "^3.1.1", + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "engines": { + "node": ">=16.0.0" } }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dev": true, + "node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/credential-provider-process": { + "version": "3.598.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.598.0.tgz", + "integrity": "sha512-rM707XbLW8huMk722AgjVyxu2tMZee++fNA8TJVNgs1Ma02Wx6bBrfIvlyK0rCcIRb0WdQYP6fe3Xhiu4e8IBA==", "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "@aws-sdk/types": "3.598.0", + "@smithy/property-provider": "^3.1.1", + "@smithy/shared-ini-file-loader": "^3.1.1", + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "engines": { + "node": ">=16.0.0" } }, - "node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dev": true, + "node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/credential-provider-sso": { + "version": "3.598.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.598.0.tgz", + "integrity": "sha512-5InwUmrAuqQdOOgxTccRayMMkSmekdLk6s+az9tmikq0QFAHUCtofI+/fllMXSR9iL6JbGYi1940+EUmS4pHJA==", "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" + "@aws-sdk/client-sso": "3.598.0", + "@aws-sdk/token-providers": "3.598.0", + "@aws-sdk/types": "3.598.0", + "@smithy/property-provider": "^3.1.1", + "@smithy/shared-ini-file-loader": "^3.1.1", + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "engines": { + "node": ">=16.0.0" } }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, + "node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/credential-provider-web-identity": { + "version": "3.598.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.598.0.tgz", + "integrity": "sha512-GV5GdiMbz5Tz9JO4NJtRoFXjW0GPEujA0j+5J/B723rTN+REHthJu48HdBKouHGhdzkDWkkh1bu52V02Wprw8w==", "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "@aws-sdk/types": "3.598.0", + "@smithy/property-provider": "^3.1.1", + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@aws-sdk/client-sts": "^3.598.0" } }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, + "node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/middleware-host-header": { + "version": "3.598.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.598.0.tgz", + "integrity": "sha512-WiaG059YBQwQraNejLIi0gMNkX7dfPZ8hDIhvMr5aVPRbaHH8AYF3iNSsXYCHvA2Cfa1O9haYXsuMF9flXnCmA==", "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "@aws-sdk/types": "3.598.0", + "@smithy/protocol-http": "^4.0.1", + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "engines": { + "node": ">=16.0.0" } }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, + "node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/middleware-logger": { + "version": "3.598.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.598.0.tgz", + "integrity": "sha512-bxBjf/VYiu3zfu8SYM2S9dQQc3tz5uBAOcPz/Bt8DyyK3GgOpjhschH/2XuUErsoUO1gDJqZSdGOmuHGZQn00Q==", "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "@aws-sdk/types": "3.598.0", + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "engines": { + "node": ">=16.0.0" } }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dev": true, + "node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/middleware-recursion-detection": { + "version": "3.598.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.598.0.tgz", + "integrity": "sha512-vjT9BeFY9FeN0f8hm2l6F53tI0N5bUq6RcDkQXKNabXBnQxKptJRad6oP2X5y3FoVfBLOuDkQgiC2940GIPxtQ==", "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" + "@aws-sdk/types": "3.598.0", + "@smithy/protocol-http": "^4.0.1", + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" }, "engines": { - "node": ">=6.9.0" + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/middleware-user-agent": { + "version": "3.598.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.598.0.tgz", + "integrity": "sha512-4tjESlHG5B5MdjUaLK7tQs/miUtHbb6deauQx8ryqSBYOhfHVgb1ZnzvQR0bTrhpqUg0WlybSkDaZAICf9xctg==", + "dependencies": { + "@aws-sdk/types": "3.598.0", + "@aws-sdk/util-endpoints": "3.598.0", + "@smithy/protocol-http": "^4.0.1", + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "engines": { + "node": ">=16.0.0" } }, - "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz", - "integrity": "sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==", - "dev": true, + "node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/region-config-resolver": { + "version": "3.598.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.598.0.tgz", + "integrity": "sha512-oYXhmTokSav4ytmWleCr3rs/1nyvZW/S0tdi6X7u+dLNL5Jee+uMxWGzgOrWK6wrQOzucLVjS4E/wA11Kv2GTw==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@aws-sdk/types": "3.598.0", + "@smithy/node-config-provider": "^3.1.1", + "@smithy/types": "^3.1.0", + "@smithy/util-config-provider": "^3.0.0", + "@smithy/util-middleware": "^3.0.1", + "tslib": "^2.6.2" }, "engines": { - "node": ">=6.9.0" + "node": ">=16.0.0" + } + }, + "node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/token-providers": { + "version": "3.598.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.598.0.tgz", + "integrity": "sha512-TKY1EVdHVBnZqpyxyTHdpZpa1tUpb6nxVeRNn1zWG8QB5MvH4ALLd/jR+gtmWDNQbIG4cVuBOZFVL8hIYicKTA==", + "dependencies": { + "@aws-sdk/types": "3.598.0", + "@smithy/property-provider": "^3.1.1", + "@smithy/shared-ini-file-loader": "^3.1.1", + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@aws-sdk/client-sso-oidc": "^3.598.0" } }, - "node_modules/@babel/template": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz", - "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", - "dev": true, + "node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/types": { + "version": "3.598.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.598.0.tgz", + "integrity": "sha512-742uRl6z7u0LFmZwDrFP6r1wlZcgVPw+/TilluDJmCAR8BgRw3IR+743kUXKBGd8QZDRW2n6v/PYsi/AWCDDMQ==", "dependencies": { - "@babel/code-frame": "^7.23.5", - "@babel/parser": "^7.24.0", - "@babel/types": "^7.24.0" + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" }, "engines": { - "node": ">=6.9.0" + "node": ">=16.0.0" } }, - "node_modules/@babel/traverse": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.0.tgz", - "integrity": "sha512-HfuJlI8qq3dEDmNU5ChzzpZRWq+oxCZQyMzIMEqLho+AQnhMnKQUzH6ydo3RBl/YjPCuk68Y6s0Gx0AeyULiWw==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.23.5", - "@babel/generator": "^7.23.6", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.24.0", - "@babel/types": "^7.24.0", - "debug": "^4.3.1", - "globals": "^11.1.0" + "node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/util-endpoints": { + "version": "3.598.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.598.0.tgz", + "integrity": "sha512-Qo9UoiVVZxcOEdiOMZg3xb1mzkTxrhd4qSlg5QQrfWPJVx/QOg+Iy0NtGxPtHtVZNHZxohYwDwV/tfsnDSE2gQ==", + "dependencies": { + "@aws-sdk/types": "3.598.0", + "@smithy/types": "^3.1.0", + "@smithy/util-endpoints": "^2.0.2", + "tslib": "^2.6.2" }, "engines": { - "node": ">=6.9.0" + "node": ">=16.0.0" } }, - "node_modules/@babel/traverse/node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true, - "engines": { - "node": ">=4" + "node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/util-user-agent-browser": { + "version": "3.598.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.598.0.tgz", + "integrity": "sha512-36Sxo6F+ykElaL1mWzWjlg+1epMpSe8obwhCN1yGE7Js9ywy5U6k6l+A3q3YM9YRbm740sNxncbwLklMvuhTKw==", + "dependencies": { + "@aws-sdk/types": "3.598.0", + "@smithy/types": "^3.1.0", + "bowser": "^2.11.0", + "tslib": "^2.6.2" } }, - "node_modules/@babel/types": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz", - "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==", - "dev": true, + "node_modules/@aws-sdk/credential-providers/node_modules/@aws-sdk/util-user-agent-node": { + "version": "3.598.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.598.0.tgz", + "integrity": "sha512-oyWGcOlfTdzkC6SVplyr0AGh54IMrDxbhg5RxJ5P+V4BKfcDoDcZV9xenUk9NsOi9MuUjxMumb9UJGkDhM1m0A==", "dependencies": { - "@babel/helper-string-parser": "^7.23.4", - "@babel/helper-validator-identifier": "^7.22.20", - "to-fast-properties": "^2.0.0" + "@aws-sdk/types": "3.598.0", + "@smithy/node-config-provider": "^3.1.1", + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" }, "engines": { - "node": ">=6.9.0" + "node": ">=16.0.0" + }, + "peerDependencies": { + "aws-crt": ">=1.0.0" + }, + "peerDependenciesMeta": { + "aws-crt": { + "optional": true + } } }, - "node_modules/@bcoe/v8-coverage": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", - "dev": true - }, - "node_modules/@esbuild/aix-ppc64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.19.12.tgz", - "integrity": "sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "aix" - ], + "node_modules/@aws-sdk/credential-providers/node_modules/@smithy/is-array-buffer": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-2.2.0.tgz", + "integrity": "sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==", + "dependencies": { + "tslib": "^2.6.2" + }, "engines": { - "node": ">=12" + "node": ">=14.0.0" } }, - "node_modules/@esbuild/android-arm": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.12.tgz", - "integrity": "sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], + "node_modules/@aws-sdk/credential-providers/node_modules/@smithy/util-buffer-from": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-2.2.0.tgz", + "integrity": "sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==", + "dependencies": { + "@smithy/is-array-buffer": "^2.2.0", + "tslib": "^2.6.2" + }, "engines": { - "node": ">=12" + "node": ">=14.0.0" } }, - "node_modules/@esbuild/android-arm64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.12.tgz", - "integrity": "sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], + "node_modules/@aws-sdk/middleware-host-header": { + "version": "3.577.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.577.0.tgz", + "integrity": "sha512-9ca5MJz455CODIVXs0/sWmJm7t3QO4EUa1zf8pE8grLpzf0J94bz/skDWm37Pli13T3WaAQBHCTiH2gUVfCsWg==", + "dependencies": { + "@aws-sdk/types": "3.577.0", + "@smithy/protocol-http": "^4.0.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, "engines": { - "node": ">=12" + "node": ">=16.0.0" } }, - "node_modules/@esbuild/android-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.12.tgz", - "integrity": "sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], + "node_modules/@aws-sdk/middleware-logger": { + "version": "3.577.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.577.0.tgz", + "integrity": "sha512-aPFGpGjTZcJYk+24bg7jT4XdIp42mFXSuPt49lw5KygefLyJM/sB0bKKqPYYivW0rcuZ9brQ58eZUNthrzYAvg==", + "dependencies": { + "@aws-sdk/types": "3.577.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, "engines": { - "node": ">=12" + "node": ">=16.0.0" } }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.12.tgz", - "integrity": "sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], + "node_modules/@aws-sdk/middleware-recursion-detection": { + "version": "3.577.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.577.0.tgz", + "integrity": "sha512-pn3ZVEd2iobKJlR3H+bDilHjgRnNrQ6HMmK9ZzZw89Ckn3Dcbv48xOv4RJvu0aU8SDLl/SNCxppKjeLDTPGBNA==", + "dependencies": { + "@aws-sdk/types": "3.577.0", + "@smithy/protocol-http": "^4.0.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, "engines": { - "node": ">=12" + "node": ">=16.0.0" } }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.12.tgz", - "integrity": "sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], + "node_modules/@aws-sdk/middleware-user-agent": { + "version": "3.577.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.577.0.tgz", + "integrity": "sha512-P55HAXgwmiHHpFx5JEPvOnAbfhN7v6sWv9PBQs+z2tC7QiBcPS0cdJR6PfV7J1n4VPK52/OnrK3l9VxdQ7Ms0g==", + "dependencies": { + "@aws-sdk/types": "3.577.0", + "@aws-sdk/util-endpoints": "3.577.0", + "@smithy/protocol-http": "^4.0.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, "engines": { - "node": ">=12" + "node": ">=16.0.0" } }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.12.tgz", - "integrity": "sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], + "node_modules/@aws-sdk/region-config-resolver": { + "version": "3.577.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.577.0.tgz", + "integrity": "sha512-4ChCFACNwzqx/xjg3zgFcW8Ali6R9C95cFECKWT/7CUM1D0MGvkclSH2cLarmHCmJgU6onKkJroFtWp0kHhgyg==", + "dependencies": { + "@aws-sdk/types": "3.577.0", + "@smithy/node-config-provider": "^3.0.0", + "@smithy/types": "^3.0.0", + "@smithy/util-config-provider": "^3.0.0", + "@smithy/util-middleware": "^3.0.0", + "tslib": "^2.6.2" + }, "engines": { - "node": ">=12" + "node": ">=16.0.0" } }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.12.tgz", - "integrity": "sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], + "node_modules/@aws-sdk/token-providers": { + "version": "3.577.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.577.0.tgz", + "integrity": "sha512-0CkIZpcC3DNQJQ1hDjm2bdSy/Xjs7Ny5YvSsacasGOkNfk+FdkiQy6N67bZX3Zbc9KIx+Nz4bu3iDeNSNplnnQ==", + "dependencies": { + "@aws-sdk/types": "3.577.0", + "@smithy/property-provider": "^3.0.0", + "@smithy/shared-ini-file-loader": "^3.0.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, "engines": { - "node": ">=12" + "node": ">=16.0.0" + }, + "peerDependencies": { + "@aws-sdk/client-sso-oidc": "^3.577.0" } }, - "node_modules/@esbuild/linux-arm": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.12.tgz", - "integrity": "sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], + "node_modules/@aws-sdk/types": { + "version": "3.577.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.577.0.tgz", + "integrity": "sha512-FT2JZES3wBKN/alfmhlo+3ZOq/XJ0C7QOZcDNrpKjB0kqYoKjhVKZ/Hx6ArR0czkKfHzBBEs6y40ebIHx2nSmA==", + "dependencies": { + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, "engines": { - "node": ">=12" + "node": ">=16.0.0" } }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.12.tgz", - "integrity": "sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], + "node_modules/@aws-sdk/util-endpoints": { + "version": "3.577.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.577.0.tgz", + "integrity": "sha512-FjuUz1Kdy4Zly2q/c58tpdqHd6z7iOdU/caYzoc8jwgAHBDBbIJNQLCU9hXJnPV2M8pWxQDyIZsoVwtmvErPzw==", + "dependencies": { + "@aws-sdk/types": "3.577.0", + "@smithy/types": "^3.0.0", + "@smithy/util-endpoints": "^2.0.0", + "tslib": "^2.6.2" + }, "engines": { - "node": ">=12" + "node": ">=16.0.0" } }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.12.tgz", - "integrity": "sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], + "node_modules/@aws-sdk/util-locate-window": { + "version": "3.568.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-3.568.0.tgz", + "integrity": "sha512-3nh4TINkXYr+H41QaPelCceEB2FXP3fxp93YZXB/kqJvX0U9j0N0Uk45gvsjmEPzG8XxkPEeLIfT2I1M7A6Lig==", + "dependencies": { + "tslib": "^2.6.2" + }, "engines": { - "node": ">=12" + "node": ">=16.0.0" } }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.12.tgz", - "integrity": "sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==", - "cpu": [ - "loong64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], + "node_modules/@aws-sdk/util-user-agent-browser": { + "version": "3.577.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.577.0.tgz", + "integrity": "sha512-zEAzHgR6HWpZOH7xFgeJLc6/CzMcx4nxeQolZxVZoB5pPaJd3CjyRhZN0xXeZB0XIRCWmb4yJBgyiugXLNMkLA==", + "dependencies": { + "@aws-sdk/types": "3.577.0", + "@smithy/types": "^3.0.0", + "bowser": "^2.11.0", + "tslib": "^2.6.2" + } + }, + "node_modules/@aws-sdk/util-user-agent-node": { + "version": "3.577.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.577.0.tgz", + "integrity": "sha512-XqvtFjbSMtycZTWVwDe8DRWovuoMbA54nhUoZwVU6rW9OSD6NZWGR512BUGHFaWzW0Wg8++Dj10FrKTG2XtqfA==", + "dependencies": { + "@aws-sdk/types": "3.577.0", + "@smithy/node-config-provider": "^3.0.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, "engines": { - "node": ">=12" + "node": ">=16.0.0" + }, + "peerDependencies": { + "aws-crt": ">=1.0.0" + }, + "peerDependenciesMeta": { + "aws-crt": { + "optional": true + } } }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.12.tgz", - "integrity": "sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==", - "cpu": [ - "mips64el" - ], + "node_modules/@aws-sdk/util-utf8-browser": { + "version": "3.259.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.259.0.tgz", + "integrity": "sha512-UvFa/vR+e19XookZF8RzFZBrw2EUkQWxiBW0yYQAhvk3C+QVGl0H3ouca8LDBlBfQKXwmW3huo/59H8rwb1wJw==", + "dependencies": { + "tslib": "^2.3.1" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", + "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", "dev": true, - "optional": true, - "os": [ - "linux" - ], + "dependencies": { + "@babel/highlight": "^7.24.7", + "picocolors": "^1.0.0" + }, "engines": { - "node": ">=12" + "node": ">=6.9.0" } }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.12.tgz", - "integrity": "sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==", - "cpu": [ - "ppc64" - ], + "node_modules/@babel/compat-data": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.7.tgz", + "integrity": "sha512-qJzAIcv03PyaWqxRgO4mSU3lihncDT296vnyuE2O8uA4w3UHWI4S3hgeZd1L8W1Bft40w9JxJ2b412iDUFFRhw==", "dev": true, - "optional": true, - "os": [ - "linux" - ], "engines": { - "node": ">=12" + "node": ">=6.9.0" } }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.12.tgz", - "integrity": "sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==", - "cpu": [ - "riscv64" - ], + "node_modules/@babel/core": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.5.tgz", + "integrity": "sha512-tVQRucExLQ02Boi4vdPp49svNGcfL2GhdTCT9aldhXgCJVAI21EtRfBettiuLUwce/7r6bFdgs6JFkcdTiFttA==", "dev": true, - "optional": true, - "os": [ - "linux" - ], + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.24.2", + "@babel/generator": "^7.24.5", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-module-transforms": "^7.24.5", + "@babel/helpers": "^7.24.5", + "@babel/parser": "^7.24.5", + "@babel/template": "^7.24.0", + "@babel/traverse": "^7.24.5", + "@babel/types": "^7.24.5", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, "engines": { - "node": ">=12" + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" } }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.12.tgz", - "integrity": "sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==", - "cpu": [ - "s390x" - ], + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" + "bin": { + "semver": "bin/semver.js" } }, - "node_modules/@esbuild/linux-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.12.tgz", - "integrity": "sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==", - "cpu": [ - "x64" - ], + "node_modules/@babel/generator": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.7.tgz", + "integrity": "sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==", "dev": true, - "optional": true, - "os": [ - "linux" - ], + "dependencies": { + "@babel/types": "^7.24.7", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^2.5.1" + }, "engines": { - "node": ">=12" + "node": ">=6.9.0" } }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.12.tgz", - "integrity": "sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==", - "cpu": [ - "x64" - ], + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.7.tgz", + "integrity": "sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==", "dev": true, - "optional": true, - "os": [ - "netbsd" - ], + "dependencies": { + "@babel/types": "^7.24.7" + }, "engines": { - "node": ">=12" + "node": ">=6.9.0" } }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.12.tgz", - "integrity": "sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==", - "cpu": [ - "x64" - ], + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.24.7.tgz", + "integrity": "sha512-xZeCVVdwb4MsDBkkyZ64tReWYrLRHlMN72vP7Bdm3OUOuyFZExhsHUUnuWnm2/XOlAJzR0LfPpB56WXZn0X/lA==", "dev": true, - "optional": true, - "os": [ - "openbsd" - ], + "dependencies": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, "engines": { - "node": ">=12" + "node": ">=6.9.0" } }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.12.tgz", - "integrity": "sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==", - "cpu": [ - "x64" - ], + "node_modules/@babel/helper-compilation-targets": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.7.tgz", + "integrity": "sha512-ctSdRHBi20qWOfy27RUb4Fhp07KSJ3sXcuSvTrXrc4aG8NSYDo1ici3Vhg9bg69y5bj0Mr1lh0aeEgTvc12rMg==", "dev": true, - "optional": true, - "os": [ - "sunos" - ], + "dependencies": { + "@babel/compat-data": "^7.24.7", + "@babel/helper-validator-option": "^7.24.7", + "browserslist": "^4.22.2", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, "engines": { - "node": ">=12" + "node": ">=6.9.0" } }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.12.tgz", - "integrity": "sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==", - "cpu": [ - "arm64" - ], + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" + "bin": { + "semver": "bin/semver.js" } }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.12.tgz", - "integrity": "sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==", - "cpu": [ - "ia32" - ], + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.7.tgz", + "integrity": "sha512-kTkaDl7c9vO80zeX1rJxnuRpEsD5tA81yh11X1gQo+PhSti3JS+7qeZo9U4RHobKRiFPKaGK3svUAeb8D0Q7eg==", "dev": true, - "optional": true, - "os": [ - "win32" - ], + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-function-name": "^7.24.7", + "@babel/helper-member-expression-to-functions": "^7.24.7", + "@babel/helper-optimise-call-expression": "^7.24.7", + "@babel/helper-replace-supers": "^7.24.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", + "@babel/helper-split-export-declaration": "^7.24.7", + "semver": "^6.3.1" + }, "engines": { - "node": ">=12" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/@esbuild/win32-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.12.tgz", - "integrity": "sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==", - "cpu": [ - "x64" - ], + "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" + "bin": { + "semver": "bin/semver.js" } }, - "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", - "peer": true, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.24.7.tgz", + "integrity": "sha512-03TCmXy2FtXJEZfbXDTSqq1fRJArk7lX9DOFC/47VthYcxyIOx+eXQmdo6DOQvrbpIix+KfXwvuXdFDZHxt+rA==", + "dev": true, "dependencies": { - "eslint-visitor-keys": "^3.3.0" + "@babel/helper-annotate-as-pure": "^7.24.7", + "regexpu-core": "^5.3.1", + "semver": "^6.3.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=6.9.0" }, "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + "@babel/core": "^7.0.0" } }, - "node_modules/@eslint-community/regexpp": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", - "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", - "peer": true, - "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" } }, - "node_modules/@eslint/eslintrc": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", - "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", - "peer": true, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.2.tgz", + "integrity": "sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==", + "dev": true, "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" }, - "funding": { - "url": "https://opencollective.com/eslint" + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, - "node_modules/@eslint/js": { - "version": "8.57.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", - "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", - "peer": true, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.7.tgz", + "integrity": "sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.24.7" + }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=6.9.0" } }, - "node_modules/@gar/promisify": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", - "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", - "optional": true + "node_modules/@babel/helper-function-name": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.24.7.tgz", + "integrity": "sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==", + "dev": true, + "dependencies": { + "@babel/template": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } }, - "node_modules/@google/generative-ai": { - "version": "0.11.5", - "resolved": "https://registry.npmjs.org/@google/generative-ai/-/generative-ai-0.11.5.tgz", - "integrity": "sha512-DviMgrnljEKh6qkDT2pVFW+NEuVhggqBUoEnyy2PNL7l4ewxXRJubk3PctC9yPl1AdRIlhqP7E076QQt+IWuTg==", + "node_modules/@babel/helper-hoist-variables": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.7.tgz", + "integrity": "sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==", "dev": true, + "dependencies": { + "@babel/types": "^7.24.7" + }, "engines": { - "node": ">=18.0.0" + "node": ">=6.9.0" } }, - "node_modules/@huggingface/jinja": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@huggingface/jinja/-/jinja-0.2.1.tgz", - "integrity": "sha512-HxjVCll8oGfgUQmN91NYWCjfuaQ5mYZkc/BB1gjfp28q3s48yiB5jUEV7BvaRdIAb/+14cNdX8TIdalFykwywA==", + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.7.tgz", + "integrity": "sha512-LGeMaf5JN4hAT471eJdBs/GK1DoYIJ5GCtZN/EsL6KUiiDZOvO/eKE11AMZJa2zP4zk4qe9V2O/hxAmkRc8p6w==", + "dev": true, + "dependencies": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, "engines": { - "node": ">=18" + "node": ">=6.9.0" } }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.11.14", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", - "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", - "peer": true, + "node_modules/@babel/helper-module-imports": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz", + "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==", + "dev": true, "dependencies": { - "@humanwhocodes/object-schema": "^2.0.2", - "debug": "^4.3.1", - "minimatch": "^3.0.5" + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" }, "engines": { - "node": ">=10.10.0" + "node": ">=6.9.0" } }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "peer": true, + "node_modules/@babel/helper-module-transforms": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.7.tgz", + "integrity": "sha512-1fuJEwIrp+97rM4RWdO+qrRsZlAeL1lQJoPqtCYWv0NL115XM93hIH4CSRln2w52SqvmY5hqdtauB6QFCDiZNQ==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-simple-access": "^7.24.7", + "@babel/helper-split-export-declaration": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7" + }, "engines": { - "node": ">=12.22" + "node": ">=6.9.0" }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz", - "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==", - "peer": true - }, - "node_modules/@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.24.7.tgz", + "integrity": "sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A==", "dev": true, "dependencies": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" + "@babel/types": "^7.24.7" }, "engines": { - "node": ">=8" + "node": ">=6.9.0" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "node_modules/@babel/helper-plugin-utils": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.7.tgz", + "integrity": "sha512-Rq76wjt7yz9AAc1KnlRKNAi/dMSVWgDRx43FHoJEbcYU6xOWaE2dVPwcdTukJrjxS65GITyfbvEYHvkirZ6uEg==", "dev": true, - "dependencies": { - "sprintf-js": "~1.0.2" + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.24.7.tgz", + "integrity": "sha512-9pKLcTlZ92hNZMQfGCHImUpDOlAgkkpqalWEeftW5FBya75k8Li2ilerxkM/uBEj01iBZXcCIB/bwvDYgWyibA==", "dev": true, "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-wrap-function": "^7.24.7" }, "engines": { - "node": ">=8" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "node_modules/@babel/helper-replace-supers": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.24.7.tgz", + "integrity": "sha512-qTAxxBM81VEyoAY0TtLrx1oAEJc09ZK67Q9ljQToqCnA+55eNwCORaxlKyu+rNfX86o8OXRUSNUnrtsAZXM9sg==", "dev": true, "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-member-expression-to-functions": "^7.24.7", + "@babel/helper-optimise-call-expression": "^7.24.7" }, - "bin": { - "js-yaml": "bin/js-yaml.js" + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "node_modules/@babel/helper-simple-access": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz", + "integrity": "sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==", "dev": true, "dependencies": { - "p-locate": "^4.1.0" + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" }, "engines": { - "node": ">=8" + "node": ">=6.9.0" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.24.7.tgz", + "integrity": "sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ==", "dev": true, "dependencies": { - "p-try": "^2.0.0" + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" }, "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=6.9.0" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.7.tgz", + "integrity": "sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==", "dev": true, "dependencies": { - "p-limit": "^2.2.0" + "@babel/types": "^7.24.7" }, "engines": { - "node": ">=8" + "node": ">=6.9.0" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "node_modules/@babel/helper-string-parser": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.7.tgz", + "integrity": "sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==", "dev": true, "engines": { - "node": ">=8" + "node": ">=6.9.0" } }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "dev": true + "node_modules/@babel/helper-validator-identifier": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", + "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "node_modules/@babel/helper-validator-option": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.7.tgz", + "integrity": "sha512-yy1/KvjhV/ZCL+SM7hBrvnZJ3ZuT9OuZgIJAGpPEToANvc3iM6iDvBnRjtElWibHU6n8/LPR/EjX9EtIEYO3pw==", "dev": true, "engines": { - "node": ">=8" + "node": ">=6.9.0" } }, - "node_modules/@jest/console": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", - "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", + "node_modules/@babel/helper-wrap-function": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.24.7.tgz", + "integrity": "sha512-N9JIYk3TD+1vq/wn77YnJOqMtfWhNewNE+DJV4puD2X7Ew9J4JvrzrFDfTfyv5EgEXVy9/Wt8QiOErzEmv5Ifw==", "dev": true, "dependencies": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0", - "slash": "^3.0.0" + "@babel/helper-function-name": "^7.24.7", + "@babel/template": "^7.24.7", + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=6.9.0" } }, - "node_modules/@jest/core": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", - "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", + "node_modules/@babel/helpers": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.5.tgz", + "integrity": "sha512-CiQmBMMpMQHwM5m01YnrM6imUG1ebgYJ+fAIW4FZe6m4qHTPaRHti+R8cggAwkdz4oXhtO4/K9JWlh+8hIfR2Q==", "dev": true, "dependencies": { - "@jest/console": "^29.7.0", - "@jest/reporters": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-changed-files": "^29.7.0", - "jest-config": "^29.7.0", - "jest-haste-map": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.7.0", - "jest-resolve-dependencies": "^29.7.0", - "jest-runner": "^29.7.0", - "jest-runtime": "^29.7.0", - "jest-snapshot": "^29.7.0", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "jest-watcher": "^29.7.0", - "micromatch": "^4.0.4", - "pretty-format": "^29.7.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" + "@babel/template": "^7.24.0", + "@babel/traverse": "^7.24.5", + "@babel/types": "^7.24.5" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } + "node": ">=6.9.0" } }, - "node_modules/@jest/environment": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", - "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", + "node_modules/@babel/highlight": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", + "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", "dev": true, "dependencies": { - "@jest/fake-timers": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "jest-mock": "^29.7.0" + "@babel/helper-validator-identifier": "^7.24.7", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=6.9.0" } }, - "node_modules/@jest/expect": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", - "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "dependencies": { - "expect": "^29.7.0", - "jest-snapshot": "^29.7.0" + "color-convert": "^1.9.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=4" } }, - "node_modules/@jest/expect-utils": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", - "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, "dependencies": { - "jest-get-type": "^29.6.3" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=4" } }, - "node_modules/@jest/fake-timers": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", - "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", + "node_modules/@babel/highlight/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, "dependencies": { - "@jest/types": "^29.6.3", - "@sinonjs/fake-timers": "^10.0.2", - "@types/node": "*", - "jest-message-util": "^29.7.0", - "jest-mock": "^29.7.0", - "jest-util": "^29.7.0" - }, + "color-name": "1.1.3" + } + }, + "node_modules/@babel/highlight/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/@babel/highlight/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=0.8.0" } }, - "node_modules/@jest/globals": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", - "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/expect": "^29.7.0", - "@jest/types": "^29.6.3", - "jest-mock": "^29.7.0" + "has-flag": "^3.0.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=4" } }, - "node_modules/@jest/reporters": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", - "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", + "node_modules/@babel/parser": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.7.tgz", + "integrity": "sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.24.7.tgz", + "integrity": "sha512-TiT1ss81W80eQsN+722OaeQMY/G4yTb4G9JrqeiDADs3N8lbPMGldWi9x8tyqCW5NLx1Jh2AvkE6r6QvEltMMQ==", "dev": true, "dependencies": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@jridgewell/trace-mapping": "^0.3.18", - "@types/node": "*", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^6.0.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.1.3", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0", - "jest-worker": "^29.7.0", - "slash": "^3.0.0", - "string-length": "^4.0.1", - "strip-ansi": "^6.0.0", - "v8-to-istanbul": "^9.0.1" + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=6.9.0" }, "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } + "@babel/core": "^7.0.0" } }, - "node_modules/@jest/schemas": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", - "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.24.7.tgz", + "integrity": "sha512-unaQgZ/iRu/By6tsjMZzpeBZjChYfLYry6HrEXPoz3KmfF0sVBQ1l8zKMQ4xRGLWVsjuvB8nQfjNP/DcfEOCsg==", "dev": true, "dependencies": { - "@sinclair/typebox": "^0.27.8" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/@jest/source-map": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", - "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.7.tgz", + "integrity": "sha512-+izXIbke1T33mY4MSNnrqhPXDz01WYhEf3yF5NbnUtkiNnm+XBZJl3kNfoK6NKmYlz/D07+l2GWVK/QfDkNCuQ==", "dev": true, "dependencies": { - "@jridgewell/trace-mapping": "^0.3.18", - "callsites": "^3.0.0", - "graceful-fs": "^4.2.9" + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", + "@babel/plugin-transform-optional-chaining": "^7.24.7" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" } }, - "node_modules/@jest/test-result": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", - "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", + "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.24.7.tgz", + "integrity": "sha512-utA4HuR6F4Vvcr+o4DnjL8fCOlgRFGbeeBEGNg3ZTrLFw6VWG5XmUrvcQ0FjIYMU2ST4XcR2Wsp7t9qOAPnxMg==", "dev": true, "dependencies": { - "@jest/console": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/@jest/test-sequencer": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", - "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", "dev": true, - "dependencies": { - "@jest/test-result": "^29.7.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "slash": "^3.0.0" - }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@jest/transform": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", - "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", "dev": true, "dependencies": { - "@babel/core": "^7.11.6", - "@jest/types": "^29.6.3", - "@jridgewell/trace-mapping": "^0.3.18", - "babel-plugin-istanbul": "^6.1.1", - "chalk": "^4.0.0", - "convert-source-map": "^2.0.0", - "fast-json-stable-stringify": "^2.1.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "jest-regex-util": "^29.6.3", - "jest-util": "^29.7.0", - "micromatch": "^4.0.4", - "pirates": "^4.0.4", - "slash": "^3.0.0", - "write-file-atomic": "^4.0.2" + "@babel/helper-plugin-utils": "^7.8.0" }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@jest/types": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", - "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", + "node_modules/@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", "dev": true, "dependencies": { - "@jest/schemas": "^29.6.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^17.0.8", - "chalk": "^4.0.0" + "@babel/helper-plugin-utils": "^7.8.0" }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", - "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", "dev": true, "dependencies": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.24" + "@babel/helper-plugin-utils": "^7.12.13" }, - "engines": { - "node": ">=6.0.0" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", - "dev": true, - "engines": { - "node": ">=6.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", "dev": true, "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@lancedb/vectordb-darwin-arm64": { - "version": "0.4.12", - "resolved": "https://registry.npmjs.org/@lancedb/vectordb-darwin-arm64/-/vectordb-darwin-arm64-0.4.12.tgz", - "integrity": "sha512-38/rkJRlWXkPWXuj9onzvbrhnIWcIUQjgEp5G9v5ixPosBowm7A4j8e2Q8CJMsVSNcVX2JLqwWVldiWegZFuYw==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@lancedb/vectordb-darwin-x64": { - "version": "0.4.12", - "resolved": "https://registry.npmjs.org/@lancedb/vectordb-darwin-x64/-/vectordb-darwin-x64-0.4.12.tgz", - "integrity": "sha512-psE48dztyO450hXWdv9Rl9aayM2HQ1uF9wErfC0gKmDUh1N0NdVq2viDuFpZxnmCis/nvGwKlYiYT9OnYNCJ9g==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@lancedb/vectordb-linux-arm64-gnu": { - "version": "0.4.12", - "resolved": "https://registry.npmjs.org/@lancedb/vectordb-linux-arm64-gnu/-/vectordb-linux-arm64-gnu-0.4.12.tgz", - "integrity": "sha512-xwkgF6MiF5aAdG9JG8v4ke652YxUJrhs9z4OrsEfrENnvsIQd2C5UyKMepVLdvij4BI/XPFRFWXdjPvP7S9rTA==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@lancedb/vectordb-linux-x64-gnu": { - "version": "0.4.12", - "resolved": "https://registry.npmjs.org/@lancedb/vectordb-linux-x64-gnu/-/vectordb-linux-x64-gnu-0.4.12.tgz", - "integrity": "sha512-gJqYR0aymrS+C60xc4EQPzmQ5/69XfeFv2ofBvAj7qW+c6BcnoAcfVl+7s1IrcWeGz251sm5cD5Lx4AzJd89dA==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@lancedb/vectordb-win32-x64-msvc": { - "version": "0.4.12", - "resolved": "https://registry.npmjs.org/@lancedb/vectordb-win32-x64-msvc/-/vectordb-win32-x64-msvc-0.4.12.tgz", - "integrity": "sha512-LhCzpyEeBUyO6L2fuVqeP3mW8kYDryyU9PNqcM01m88sZB1Do6AlwiM+GjPRQ0SpzD0LK9oxQqSmJrdcNGqjbw==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@mozilla/readability": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@mozilla/readability/-/readability-0.5.0.tgz", - "integrity": "sha512-Z+CZ3QaosfFaTqvhQsIktyGrjFjSC0Fa4EMph4mqKnWhmyoGICsV/8QK+8HpXut6zV7zwfWwqDmEjtk1Qf6EgQ==", - "engines": { - "node": ">=14.0.0" + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@neon-rs/load": { - "version": "0.0.74", - "resolved": "https://registry.npmjs.org/@neon-rs/load/-/load-0.0.74.tgz", - "integrity": "sha512-/cPZD907UNz55yrc/ud4wDgQKtU1TvkD9jeqZWG6J4IMmZkp6zgjkQcKA8UvpkZlcpPHvc8J17sGzLFbP/LUYg==" - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "peer": true, + "node_modules/@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dev": true, "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" + "@babel/helper-plugin-utils": "^7.8.3" }, - "engines": { - "node": ">= 8" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "peer": true, + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.24.7.tgz", + "integrity": "sha512-Ec3NRUMoi8gskrkBe3fNmEQfxDvY8bgfQpz6jlk/41kX9eUjvpyqWU7PBP/pLAvMaSQjbMNKJmvX57jP+M6bPg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, "engines": { - "node": ">= 8" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "peer": true, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.7.tgz", + "integrity": "sha512-hbX+lKKeUMGihnK8nvKqmXBInriT3GVjzXKFriV3YC6APGxMbP8RZNFwy91+hocLXq90Mta+HshoB31802bb8A==", + "dev": true, "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { - "node": ">= 8" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@npmcli/fs": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz", - "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==", - "optional": true, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, "dependencies": { - "@gar/promisify": "^1.0.1", - "semver": "^7.3.5" + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@npmcli/fs/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "optional": true, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, "dependencies": { - "yallist": "^4.0.0" + "@babel/helper-plugin-utils": "^7.8.0" }, - "engines": { - "node": ">=10" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@npmcli/fs/node_modules/semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", - "optional": true, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.1.tgz", + "integrity": "sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA==", + "dev": true, "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { - "node": ">=10" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@npmcli/fs/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "optional": true - }, - "node_modules/@npmcli/move-file": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", - "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", - "deprecated": "This functionality has been moved to @npmcli/fs", - "optional": true, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, "dependencies": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" + "@babel/helper-plugin-utils": "^7.10.4" }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@octokit/auth-token": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-4.0.0.tgz", - "integrity": "sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA==", - "engines": { - "node": ">= 18" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@octokit/core": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@octokit/core/-/core-5.1.0.tgz", - "integrity": "sha512-BDa2VAMLSh3otEiaMJ/3Y36GU4qf6GI+VivQ/P41NC6GHcdxpKlqV0ikSZ5gdQsmS3ojXeRx5vasgNTinF0Q4g==", + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, "dependencies": { - "@octokit/auth-token": "^4.0.0", - "@octokit/graphql": "^7.0.0", - "@octokit/request": "^8.0.2", - "@octokit/request-error": "^5.0.0", - "@octokit/types": "^12.0.0", - "before-after-hook": "^2.2.0", - "universal-user-agent": "^6.0.0" + "@babel/helper-plugin-utils": "^7.8.0" }, - "engines": { - "node": ">= 18" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@octokit/endpoint": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-9.0.4.tgz", - "integrity": "sha512-DWPLtr1Kz3tv8L0UvXTDP1fNwM0S+z6EJpRcvH66orY6Eld4XBMCSYsaWp4xIm61jTWxK68BrR7ibO+vSDnZqw==", + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, "dependencies": { - "@octokit/types": "^12.0.0", - "universal-user-agent": "^6.0.0" + "@babel/helper-plugin-utils": "^7.10.4" }, - "engines": { - "node": ">= 18" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@octokit/graphql": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-7.0.2.tgz", - "integrity": "sha512-OJ2iGMtj5Tg3s6RaXH22cJcxXRi7Y3EBqbHTBRq+PQAqfaS8f/236fUrWhfSn8P4jovyzqucxme7/vWSSZBX2Q==", + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, "dependencies": { - "@octokit/request": "^8.0.1", - "@octokit/types": "^12.0.0", - "universal-user-agent": "^6.0.0" + "@babel/helper-plugin-utils": "^7.8.0" }, - "engines": { - "node": ">= 18" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@octokit/openapi-types": { - "version": "20.0.0", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-20.0.0.tgz", - "integrity": "sha512-EtqRBEjp1dL/15V7WiX5LJMIxxkdiGJnabzYx5Apx4FkQIFgAfKumXeYAqqJCj1s+BMX4cPFIFC4OLCR6stlnA==" - }, - "node_modules/@octokit/plugin-paginate-rest": { - "version": "9.2.1", - "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-9.2.1.tgz", - "integrity": "sha512-wfGhE/TAkXZRLjksFXuDZdmGnJQHvtU/joFQdweXUgzo1XwvBCD4o4+75NtFfjfLK5IwLf9vHTfSiU3sLRYpRw==", + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, "dependencies": { - "@octokit/types": "^12.6.0" - }, - "engines": { - "node": ">= 18" + "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { - "@octokit/core": "5" + "@babel/core": "^7.0.0-0" } }, - "node_modules/@octokit/plugin-request-log": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-4.0.1.tgz", - "integrity": "sha512-GihNqNpGHorUrO7Qa9JbAl0dbLnqJVrV8OXe2Zm5/Y4wFkZQDfTreBzVmiRfJVfE4mClXdihHnbpyyO9FSX4HA==", - "engines": { - "node": ">= 18" + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" }, "peerDependencies": { - "@octokit/core": "5" + "@babel/core": "^7.0.0-0" } }, - "node_modules/@octokit/plugin-rest-endpoint-methods": { - "version": "10.4.1", - "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-10.4.1.tgz", - "integrity": "sha512-xV1b+ceKV9KytQe3zCVqjg+8GTGfDYwaT1ATU5isiUyVtlVAO3HNdzpS4sr4GBx4hxQ46s7ITtZrAsxG22+rVg==", + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dev": true, "dependencies": { - "@octokit/types": "^12.6.0" + "@babel/helper-plugin-utils": "^7.14.5" }, "engines": { - "node": ">= 18" + "node": ">=6.9.0" }, "peerDependencies": { - "@octokit/core": "5" + "@babel/core": "^7.0.0-0" } }, - "node_modules/@octokit/request": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-8.2.0.tgz", - "integrity": "sha512-exPif6x5uwLqv1N1irkLG1zZNJkOtj8bZxuVHd71U5Ftuxf2wGNvAJyNBcPbPC+EBzwYEbBDdSFb8EPcjpYxPQ==", + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, "dependencies": { - "@octokit/endpoint": "^9.0.0", - "@octokit/request-error": "^5.0.0", - "@octokit/types": "^12.0.0", - "universal-user-agent": "^6.0.0" + "@babel/helper-plugin-utils": "^7.14.5" }, "engines": { - "node": ">= 18" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@octokit/request-error": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-5.0.1.tgz", - "integrity": "sha512-X7pnyTMV7MgtGmiXBwmO6M5kIPrntOXdyKZLigNfQWSEQzVxR4a4vo49vJjTWX70mPndj8KhfT4Dx+2Ng3vnBQ==", + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.1.tgz", + "integrity": "sha512-Yhnmvy5HZEnHUty6i++gcfH1/l68AHnItFHnaCv6hn9dNh0hQvvQJsxpi4BMBFN5DLeHBuucT/0DgzXif/OyRw==", + "dev": true, "dependencies": { - "@octokit/types": "^12.0.0", - "deprecation": "^2.0.0", - "once": "^1.4.0" + "@babel/helper-plugin-utils": "^7.24.0" }, "engines": { - "node": ">= 18" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@octokit/rest": { - "version": "20.0.2", - "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-20.0.2.tgz", - "integrity": "sha512-Ux8NDgEraQ/DMAU1PlAohyfBBXDwhnX2j33Z1nJNziqAfHi70PuxkFYIcIt8aIAxtRE7KVuKp8lSR8pA0J5iOQ==", + "node_modules/@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "dev": true, "dependencies": { - "@octokit/core": "^5.0.0", - "@octokit/plugin-paginate-rest": "^9.0.0", - "@octokit/plugin-request-log": "^4.0.0", - "@octokit/plugin-rest-endpoint-methods": "^10.0.0" + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { - "node": ">= 18" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/@octokit/types": { - "version": "12.6.0", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-12.6.0.tgz", - "integrity": "sha512-1rhSOfRa6H9w4YwK0yrf5faDaDTb+yLyBUKOCV4xtCDB5VmIPqd/v9yr9o6SAzOAlRxMiRiCic6JVM1/kunVkw==", + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.7.tgz", + "integrity": "sha512-Dt9LQs6iEY++gXUwY03DNFat5C2NbO48jj+j/bSAz6b3HgPs39qcPiYt77fDObIcFwj3/C2ICX9YMwGflUoSHQ==", + "dev": true, "dependencies": { - "@octokit/openapi-types": "^20.0.0" + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==" - }, - "node_modules/@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" - }, - "node_modules/@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" - }, - "node_modules/@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==" - }, - "node_modules/@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", + "node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.24.7.tgz", + "integrity": "sha512-o+iF77e3u7ZS4AoAuJvapz9Fm001PuD2V3Lp6OSE4FYQke+cSewYtnek+THqGRWyQloRCyvWL1OkyfNEl9vr/g==", + "dev": true, "dependencies": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-remap-async-to-generator": "^7.24.7", + "@babel/plugin-syntax-async-generators": "^7.8.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==" - }, - "node_modules/@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==" - }, - "node_modules/@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==" - }, - "node_modules/@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==" - }, - "node_modules/@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" - }, - "node_modules/@rollup/pluginutils": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.1.tgz", - "integrity": "sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==", + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.7.tgz", + "integrity": "sha512-SQY01PcJfmQ+4Ash7NE+rpbLFbmqA2GPIgqzxfFTL4t1FKRq4zTms/7htKpoCUI9OcFYgzqfmCdH53s6/jn5fA==", "dev": true, "dependencies": { - "estree-walker": "^2.0.1", - "picomatch": "^2.2.2" + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-remap-async-to-generator": "^7.24.7" }, "engines": { - "node": ">= 8.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@sinclair/typebox": { - "version": "0.27.8", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", - "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", - "dev": true - }, - "node_modules/@sinonjs/commons": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", - "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.7.tgz", + "integrity": "sha512-yO7RAz6EsVQDaBH18IDJcMB1HnrUn2FJ/Jslc/WtPPWcjhpUJXU/rjbwmluzp7v/ZzWcEhTMXELnnsz8djWDwQ==", "dev": true, "dependencies": { - "type-detect": "4.0.8" + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@sinonjs/fake-timers": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", - "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.24.7.tgz", + "integrity": "sha512-Nd5CvgMbWc+oWzBsuaMcbwjJWAcp5qzrbg69SZdHSP7AMY0AbWFqFO0WTFCA1jxhMCwodRwvRec8k0QUbZk7RQ==", "dev": true, "dependencies": { - "@sinonjs/commons": "^3.0.0" - } - }, - "node_modules/@socket.io/component-emitter": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz", - "integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==" - }, - "node_modules/@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", - "optional": true, + "@babel/helper-plugin-utils": "^7.24.7" + }, "engines": { - "node": ">= 6" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@types/babel__core": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", - "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "node_modules/@babel/plugin-transform-class-properties": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.24.7.tgz", + "integrity": "sha512-vKbfawVYayKcSeSR5YYzzyXvsDFWU2mD8U5TFeXtbCPLFUqe7GyCgvO6XDHzje862ODrOwy6WCPmKeWHbCFJ4w==", "dev": true, "dependencies": { - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" + "@babel/helper-create-class-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@types/babel__generator": { - "version": "7.6.8", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", - "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", + "node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.7.tgz", + "integrity": "sha512-HMXK3WbBPpZQufbMG4B46A90PkuuhN9vBCb5T8+VAHqvAqvcLi+2cKoukcpmUYkszLhScU3l1iudhrks3DggRQ==", "dev": true, "dependencies": { - "@babel/types": "^7.0.0" + "@babel/helper-create-class-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" } }, - "node_modules/@types/babel__template": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", - "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "node_modules/@babel/plugin-transform-classes": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.24.7.tgz", + "integrity": "sha512-CFbbBigp8ln4FU6Bpy6g7sE8B/WmCmzvivzUC6xDAdWVsjYTXijpuuGJmYkAaoWAzcItGKT3IOAbxRItZ5HTjw==", "dev": true, "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-compilation-targets": "^7.24.7", + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-function-name": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-replace-supers": "^7.24.7", + "@babel/helper-split-export-declaration": "^7.24.7", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@types/babel__traverse": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.5.tgz", - "integrity": "sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==", + "node_modules/@babel/plugin-transform-classes/node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true, - "dependencies": { - "@babel/types": "^7.20.7" + "engines": { + "node": ">=4" } }, - "node_modules/@types/command-line-args": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@types/command-line-args/-/command-line-args-5.2.0.tgz", - "integrity": "sha512-UuKzKpJJ/Ief6ufIaIzr3A/0XnluX7RvFgwkV89Yzvm77wCh1kFaFmqN8XEnGcN62EuHdedQjEMb8mYxFLGPyA==", - "peer": true - }, - "node_modules/@types/command-line-usage": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@types/command-line-usage/-/command-line-usage-5.0.2.tgz", - "integrity": "sha512-n7RlEEJ+4x4TS7ZQddTmNSxP+zziEG0TNsMfiRIxcIVXt71ENJ9ojeXmGO3wPoTdn7pJcU2xc3CJYMktNT6DPg==", - "peer": true - }, - "node_modules/@types/follow-redirects": { - "version": "1.14.4", - "resolved": "https://registry.npmjs.org/@types/follow-redirects/-/follow-redirects-1.14.4.tgz", - "integrity": "sha512-GWXfsD0Jc1RWiFmMuMFCpXMzi9L7oPDVwxUnZdg89kDNnqsRfUKXEtUYtA98A6lig1WXH/CYY/fvPW9HuN5fTA==", + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.7.tgz", + "integrity": "sha512-25cS7v+707Gu6Ds2oY6tCkUwsJ9YIDbggd9+cu9jzzDgiNq7hR/8dkzxWfKWnTic26vsI3EsCXNd4iEB6e8esQ==", "dev": true, "dependencies": { - "@types/node": "*" + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/template": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@types/graceful-fs": { - "version": "4.1.9", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", - "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.7.tgz", + "integrity": "sha512-19eJO/8kdCQ9zISOf+SEUJM/bAUIsvY3YDnXZTupUCQ8LgrWnsG/gFB9dvXqdXnRXMAM8fvt7b0CBKQHNGy1mw==", "dev": true, "dependencies": { - "@types/node": "*" + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@types/handlebars": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@types/handlebars/-/handlebars-4.1.0.tgz", - "integrity": "sha512-gq9YweFKNNB1uFK71eRqsd4niVkXrxHugqWFQkeLRJvGjnxsLr16bYtcsG4tOFwmYi0Bax+wCkbf1reUfdl4kA==", - "deprecated": "This is a stub types definition. handlebars provides its own type definitions, so you do not need this installed.", + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.7.tgz", + "integrity": "sha512-ZOA3W+1RRTSWvyqcMJDLqbchh7U4NRGqwRfFSVbOLS/ePIP4vHB5e8T8eXcuqyN1QkgKyj5wuW0lcS85v4CrSw==", "dev": true, "dependencies": { - "handlebars": "*" + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", - "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", - "dev": true - }, - "node_modules/@types/istanbul-lib-report": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", - "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.7.tgz", + "integrity": "sha512-JdYfXyCRihAe46jUIliuL2/s0x0wObgwwiGxw/UbgJBr20gQBThrokO4nYKgWkD7uBaqM7+9x5TU7NkExZJyzw==", "dev": true, "dependencies": { - "@types/istanbul-lib-coverage": "*" + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@types/istanbul-reports": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", - "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", + "node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.7.tgz", + "integrity": "sha512-sc3X26PhZQDb3JhORmakcbvkeInvxz+A8oda99lj7J60QRuPZvNAk9wQlTBS1ZynelDrDmTU4pw1tyc5d5ZMUg==", "dev": true, "dependencies": { - "@types/istanbul-lib-report": "*" + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@types/jest": { - "version": "29.5.12", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.12.tgz", - "integrity": "sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw==", + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.7.tgz", + "integrity": "sha512-Rqe/vSc9OYgDajNIK35u7ot+KeCoetqQYFXM4Epf7M7ez3lWlOjrDjrwMei6caCVhfdw+mIKD4cgdGNy5JQotQ==", "dev": true, "dependencies": { - "expect": "^29.0.0", - "pretty-format": "^29.0.0" + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@types/jquery": { - "version": "3.5.29", - "resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-3.5.29.tgz", - "integrity": "sha512-oXQQC9X9MOPRrMhPHHOsXqeQDnWeCDT3PelUIg/Oy8FAbzSZtFHRjc7IpbfFVmpLtJ+UOoywpRsuO5Jxjybyeg==", + "node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.24.7.tgz", + "integrity": "sha512-v0K9uNYsPL3oXZ/7F9NNIbAj2jv1whUEtyA6aujhekLs56R++JDQuzRcP2/z4WX5Vg/c5lE9uWZA0/iUoFhLTA==", "dev": true, "dependencies": { - "@types/sizzle": "*" + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@types/jsdom": { - "version": "21.1.6", - "resolved": "https://registry.npmjs.org/@types/jsdom/-/jsdom-21.1.6.tgz", - "integrity": "sha512-/7kkMsC+/kMs7gAYmmBR9P0vGTnOoLhQhyhQJSlXGI5bzTHp6xdo0TtKWQAsz6pmSAeVqKSbqeyP6hytqr9FDw==", + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.7.tgz", + "integrity": "sha512-wo9ogrDG1ITTTBsy46oGiN1dS9A7MROBTcYsfS8DtsImMkHk9JXJ3EWQM6X2SUw4x80uGPlwj0o00Uoc6nEE3g==", + "dev": true, "dependencies": { - "@types/node": "*", - "@types/tough-cookie": "*", - "parse5": "^7.0.0" + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", - "peer": true - }, - "node_modules/@types/long": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", - "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==" - }, - "node_modules/@types/mozilla-readability": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@types/mozilla-readability/-/mozilla-readability-0.2.1.tgz", - "integrity": "sha512-RjLpe3MIpj53L+q50DTNlhv6KjHjgajFQwAF4KuxVZTa2+6Cs2UNAxS5awxABfZEHRYjGKeRDB21Zrtnsi911w==" - }, - "node_modules/@types/mustache": { - "version": "4.2.5", - "resolved": "https://registry.npmjs.org/@types/mustache/-/mustache-4.2.5.tgz", - "integrity": "sha512-PLwiVvTBg59tGFL/8VpcGvqOu3L4OuveNvPi0EYbWchRdEVP++yRUXJPFl+CApKEq13017/4Nf7aQ5lTtHUNsA==", - "dev": true - }, - "node_modules/@types/node": { - "version": "20.3.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.3.0.tgz", - "integrity": "sha512-cumHmIAf6On83X7yP+LrsEyUOf/YlociZelmpRYaGFydoaPdxdt80MAbu6vWerQT2COCp2nPvHdsbD7tHn/YlQ==" - }, - "node_modules/@types/node-fetch": { - "version": "2.6.11", - "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.11.tgz", - "integrity": "sha512-24xFj9R5+rfQJLRyM56qh+wnVSYhyXC2tkoBndtY0U+vubqNsYXGjufB2nn8Q6gt0LrARwL6UBtMCSVCwl4B1g==", + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.24.7.tgz", + "integrity": "sha512-U9FcnA821YoILngSmYkW6FjyQe2TyZD5pHt4EVIhmcTkrJw/3KqcrRSxuOo5tFZJi7TE19iDyI1u+weTI7bn2w==", + "dev": true, "dependencies": { - "@types/node": "*", - "form-data": "^4.0.0" + "@babel/helper-compilation-targets": "^7.24.7", + "@babel/helper-function-name": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@types/pad-left": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@types/pad-left/-/pad-left-2.1.1.tgz", - "integrity": "sha512-Xd22WCRBydkGSApl5Bw0PhAOHKSVjNL3E3AwzKaps96IMraPqy5BvZIsBVK6JLwdybUzjHnuWVwpDd0JjTfHXA==", - "peer": true - }, - "node_modules/@types/sizzle": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.8.tgz", - "integrity": "sha512-0vWLNK2D5MT9dg0iOo8GlKguPAU02QjmZitPEsXRuJXU/OGIOt9vT9Fc26wtYuavLxtO45v9PGleoL9Z0k1LHg==", - "dev": true - }, - "node_modules/@types/stack-utils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", - "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", - "dev": true - }, - "node_modules/@types/tough-cookie": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.5.tgz", - "integrity": "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==" - }, - "node_modules/@types/uuid": { - "version": "9.0.8", - "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-9.0.8.tgz", - "integrity": "sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==", - "dev": true - }, - "node_modules/@types/yargs": { - "version": "17.0.32", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz", - "integrity": "sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==", + "node_modules/@babel/plugin-transform-json-strings": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.24.7.tgz", + "integrity": "sha512-2yFnBGDvRuxAaE/f0vfBKvtnvvqU8tGpMHqMNpTN2oWMKIR3NqFkjaAgGwawhqK/pIN2T3XdjGPdaG0vDhOBGw==", "dev": true, "dependencies": { - "@types/yargs-parser": "*" + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-json-strings": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@types/yargs-parser": { - "version": "21.0.3", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", - "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", - "dev": true - }, - "node_modules/@ungap/structured-clone": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", - "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", - "peer": true - }, - "node_modules/@xenova/transformers": { - "version": "2.16.0", - "resolved": "https://registry.npmjs.org/@xenova/transformers/-/transformers-2.16.0.tgz", - "integrity": "sha512-UMlw9D9IHq8DSekl9J5DHB0SmEREHThqDZiMloexHoOqXF9wPLXe7Emiisqm9RPU6hKwTVAVFo2uPFxMoByF+w==", + "node_modules/@babel/plugin-transform-literals": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.24.7.tgz", + "integrity": "sha512-vcwCbb4HDH+hWi8Pqenwnjy+UiklO4Kt1vfspcQYFhJdpthSnW8XvWGyDZWKNVrVbVViI/S7K9PDJZiUmP2fYQ==", + "dev": true, "dependencies": { - "@huggingface/jinja": "^0.2.1", - "onnxruntime-web": "1.14.0", - "sharp": "^0.32.0" + "@babel/helper-plugin-utils": "^7.24.7" }, - "optionalDependencies": { - "onnxruntime-node": "1.14.0" + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@yomguithereal/helpers": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@yomguithereal/helpers/-/helpers-1.1.1.tgz", - "integrity": "sha512-UYvAq/XCA7xoh1juWDYsq3W0WywOB+pz8cgVnE1b45ZfdMhBvHDrgmSFG3jXeZSr2tMTYLGHFHON+ekG05Jebg==" - }, - "node_modules/abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "optional": true - }, - "node_modules/abort-controller": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", - "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.7.tgz", + "integrity": "sha512-4D2tpwlQ1odXmTEIFWy9ELJcZHqrStlzK/dAOWYyxX3zT0iXQB6banjgeOJQXzEc4S0E0a5A+hahxPaEFYftsw==", + "dev": true, "dependencies": { - "event-target-shim": "^5.0.0" + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" }, "engines": { - "node": ">=6.5" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/acorn": { - "version": "8.11.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", - "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", - "peer": true, - "bin": { - "acorn": "bin/acorn" + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.7.tgz", + "integrity": "sha512-T/hRC1uqrzXMKLQ6UCwMT85S3EvqaBXDGf0FaMf4446Qx9vKwlghvee0+uuZcDUCZU5RuNi4781UQ7R308zzBw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "peer": true, + "node": ">=6.9.0" + }, "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + "@babel/core": "^7.0.0-0" } }, - "node_modules/adf-to-md": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/adf-to-md/-/adf-to-md-1.1.0.tgz", - "integrity": "sha512-iYY6SNkgnfeRq7/7Qazy9Lq00X6DJmnEwfTWFIpSGLJ929Q26Zo/lHN0AVa5yLQT6pXTtKIWvRgKur/xSibJ0g==", + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.7.tgz", + "integrity": "sha512-9+pB1qxV3vs/8Hdmz/CulFB8w2tuu6EB94JZFsjdqxQokwGa9Unap7Bo2gGBGIvPmDIVvQrom7r5m/TCDMURhg==", + "dev": true, "dependencies": { - "eslint-config-nodebb": "0.1.1" + "@babel/helper-module-transforms": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/agent-base": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz", - "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==", + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.7.tgz", + "integrity": "sha512-iFI8GDxtevHJ/Z22J5xQpVqFLlMNstcLXh994xifFwxxGslr2ZXXLWgtBeLctOD63UFDArdvN6Tg8RFw+aEmjQ==", + "dev": true, "dependencies": { - "debug": "^4.3.4" + "@babel/helper-module-transforms": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-simple-access": "^7.24.7" }, "engines": { - "node": ">= 14" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/agentkeepalive": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.5.0.tgz", - "integrity": "sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==", + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.24.7.tgz", + "integrity": "sha512-GYQE0tW7YoaN13qFh3O1NCY4MPkUiAH3fiF7UcV/I3ajmDKEdG3l+UOcbAm4zUE3gnvUU+Eni7XrVKo9eO9auw==", + "dev": true, "dependencies": { - "humanize-ms": "^1.2.1" + "@babel/helper-hoist-variables": "^7.24.7", + "@babel/helper-module-transforms": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7" }, "engines": { - "node": ">= 8.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "optional": true, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.7.tgz", + "integrity": "sha512-3aytQvqJ/h9z4g8AsKPLvD4Zqi2qT+L3j7XoFFu1XBlZWEl2/1kWnhmAbxpLgPrHSY0M6UA02jyTiwUVtiKR6A==", + "dev": true, "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" + "@babel/helper-module-transforms": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { - "node": ">=8" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.24.7.tgz", + "integrity": "sha512-/jr7h/EWeJtk1U/uz2jlsCioHkZk1JJZVcc8oQsJ1dUlaJD83f4/6Zeh2aHt9BIFokHIsSeDfhUmju0+1GPd6g==", + "dev": true, "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.7.tgz", + "integrity": "sha512-RNKwfRIXg4Ls/8mMTza5oPF5RkOW8Wy/WgMAp1/F1yZ8mMbtwXW+HDoJiOsagWrAhI5f57Vncrmr9XeT4CVapA==", "dev": true, "dependencies": { - "type-fest": "^0.21.3" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { - "node": ">=8" + "node": ">=6.9.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/ansi-escapes/node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.7.tgz", + "integrity": "sha512-Ts7xQVk1OEocqzm8rHMXHlxvsfZ0cEF2yomUqpKENHWMF4zKk175Y4q8H5knJes6PgYad50uuRmt3UJuhBw8pQ==", "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, "engines": { - "node": ">=10" + "node": ">=6.9.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "node_modules/@babel/plugin-transform-numeric-separator": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.7.tgz", + "integrity": "sha512-e6q1TiVUzvH9KRvicuxdBTUj4AdKSRwzIyFFnfnezpCfP2/7Qmbb8qbU2j7GODbl4JMkblitCQjKYUaX/qkkwA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, "engines": { - "node": ">=8" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/@babel/plugin-transform-object-rest-spread": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.7.tgz", + "integrity": "sha512-4QrHAr0aXQCEFni2q4DqKLD31n2DL+RxcwnNjDFkSG0eNQ/xCavnRkfCUjsyqGC2OviNJvZOF/mQqZBw7i2C5Q==", + "dev": true, "dependencies": { - "color-convert": "^2.0.1" + "@babel/helper-compilation-targets": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.24.7" }, "engines": { - "node": ">=8" + "node": ">=6.9.0" }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.7.tgz", + "integrity": "sha512-A/vVLwN6lBrMFmMDmPPz0jnE6ZGx7Jq7d6sT/Ev4H65RER6pZ+kczlf1DthF5N0qaPHBsI7UXiE8Zy66nmAovg==", "dev": true, "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-replace-supers": "^7.24.7" }, "engines": { - "node": ">= 8" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/apache-arrow": { - "version": "14.0.2", - "resolved": "https://registry.npmjs.org/apache-arrow/-/apache-arrow-14.0.2.tgz", - "integrity": "sha512-EBO2xJN36/XoY81nhLcwCJgFwkboDZeyNQ+OPsG7bCoQjc2BT0aTyH/MR6SrL+LirSNz+cYqjGRlupMMlP1aEg==", - "peer": true, + "node_modules/@babel/plugin-transform-optional-catch-binding": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.7.tgz", + "integrity": "sha512-uLEndKqP5BfBbC/5jTwPxLh9kqPWWgzN/f8w6UwAIirAEqiIVJWWY312X72Eub09g5KF9+Zn7+hT7sDxmhRuKA==", + "dev": true, "dependencies": { - "@types/command-line-args": "5.2.0", - "@types/command-line-usage": "5.0.2", - "@types/node": "20.3.0", - "@types/pad-left": "2.1.1", - "command-line-args": "5.2.1", - "command-line-usage": "7.0.1", - "flatbuffers": "23.5.26", - "json-bignum": "^0.0.3", - "pad-left": "^2.1.0", - "tslib": "^2.5.3" + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" }, - "bin": { - "arrow2csv": "bin/arrow2csv.js" + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/aproba": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", - "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", - "optional": true - }, - "node_modules/are-we-there-yet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", - "optional": true, + "node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.7.tgz", + "integrity": "sha512-tK+0N9yd4j+x/4hxF3F0e0fu/VdcxU18y5SevtyM/PCFlQvXbR0Zmlo2eBrKtVipGNFzpq56o8WsIIKcJFUCRQ==", + "dev": true, "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/are-we-there-yet/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "optional": true, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.7.tgz", + "integrity": "sha512-yGWW5Rr+sQOhK0Ot8hjDJuxU3XLRQGflvT4lhlSY0DFvdb3TwKaY26CJzHtYllU0vT9j58hc37ndFPsqT1SrzA==", + "dev": true, "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { - "node": ">= 6" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "peer": true - }, - "node_modules/array-back": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", - "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", - "peer": true, + "node_modules/@babel/plugin-transform-private-methods": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.24.7.tgz", + "integrity": "sha512-COTCOkG2hn4JKGEKBADkA8WNb35TGkkRbI5iT845dB+NyqgO8Hn+ajPbSnIQznneJTa3d30scb6iz/DhH8GsJQ==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, "engines": { - "node": ">=6" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/array-buffer-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", - "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", + "node_modules/@babel/plugin-transform-private-property-in-object": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.7.tgz", + "integrity": "sha512-9z76mxwnwFxMyxZWEgdgECQglF2Q7cFLm0kMf8pGwt+GSJsY0cONKj/UuO4bOH0w/uAel3ekS4ra5CEAyJRmDA==", + "dev": true, "dependencies": { - "call-bind": "^1.0.5", - "is-array-buffer": "^3.0.4" + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-create-class-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" }, "engines": { - "node": ">= 0.4" + "node": ">=6.9.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/array-includes": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz", - "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==", - "peer": true, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.7.tgz", + "integrity": "sha512-EMi4MLQSHfd2nrCqQEWxFdha2gBCqU4ZcCng4WBGZ5CJL4bBRW0ptdqqDdeirGZcpALazVVNJqRmsO8/+oNCBA==", + "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", - "is-string": "^1.0.7" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { - "node": ">= 0.4" + "node": ">=6.9.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/array.prototype.filter": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array.prototype.filter/-/array.prototype.filter-1.0.3.tgz", - "integrity": "sha512-VizNcj/RGJiUyQBgzwxzE5oHdeuXY5hSbbmKMlphj1cy1Vl7Pn2asCGbSrru6hSQjmCzqTBPVWAF/whmEOVHbw==", - "peer": true, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.7.tgz", + "integrity": "sha512-lq3fvXPdimDrlg6LWBoqj+r/DEWgONuwjuOuQCSYgRroXDH/IdM1C0IZf59fL5cHLpjEH/O6opIRBbqv7ELnuA==", + "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-array-method-boxes-properly": "^1.0.0", - "is-string": "^1.0.7" + "@babel/helper-plugin-utils": "^7.24.7", + "regenerator-transform": "^0.15.2" }, "engines": { - "node": ">= 0.4" + "node": ">=6.9.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/array.prototype.findlastindex": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.4.tgz", - "integrity": "sha512-hzvSHUshSpCflDR1QMUBLHGHP1VIEBegT4pix9H/Z92Xw3ySoy6c2qh7lJWTJnRJ8JCZ9bJNCgTyYaJGcJu6xQ==", - "peer": true, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.7.tgz", + "integrity": "sha512-0DUq0pHcPKbjFZCfTss/pGkYMfy3vFWydkUBd9r0GHpIyfs2eCDENvqadMycRS9wZCXR41wucAfJHJmwA0UmoQ==", + "dev": true, "dependencies": { - "call-bind": "^1.0.5", - "define-properties": "^1.2.1", - "es-abstract": "^1.22.3", - "es-errors": "^1.3.0", - "es-shim-unscopables": "^1.0.2" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { - "node": ">= 0.4" + "node": ">=6.9.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/array.prototype.flat": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", - "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", - "peer": true, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.7.tgz", + "integrity": "sha512-KsDsevZMDsigzbA09+vacnLpmPH4aWjcZjXdyFKGzpplxhbeB4wYtury3vglQkg6KM/xEPKt73eCjPPf1PgXBA==", + "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { - "node": ">= 0.4" + "node": ">=6.9.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/array.prototype.flatmap": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", - "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", - "peer": true, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.7.tgz", + "integrity": "sha512-x96oO0I09dgMDxJaANcRyD4ellXFLLiWhuwDxKZX5g2rWP1bTPkBSwCYv96VDXVT1bD9aPj8tppr5ITIh8hBng==", + "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7" }, "engines": { - "node": ">= 0.4" + "node": ">=6.9.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/arraybuffer.prototype.slice": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", - "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.7.tgz", + "integrity": "sha512-kHPSIJc9v24zEml5geKg9Mjx5ULpfncj0wRpYtxbvKyTtHCYDkVE3aHQ03FrpEo4gEe2vrJJS1Y9CJTaThA52g==", + "dev": true, "dependencies": { - "array-buffer-byte-length": "^1.0.1", - "call-bind": "^1.0.5", - "define-properties": "^1.2.1", - "es-abstract": "^1.22.3", - "es-errors": "^1.2.1", - "get-intrinsic": "^1.2.3", - "is-array-buffer": "^3.0.4", - "is-shared-array-buffer": "^1.0.2" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { - "node": ">= 0.4" + "node": ">=6.9.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/asn1": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", - "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.7.tgz", + "integrity": "sha512-AfDTQmClklHCOLxtGoP7HkeMw56k1/bTQjwsfhL6pppo/M4TOBSq+jjBUBLmV/4oeFg4GWMavIl44ZeCtmmZTw==", + "dev": true, "dependencies": { - "safer-buffer": "~2.1.0" - } - }, - "node_modules/assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", + "@babel/helper-plugin-utils": "^7.24.7" + }, "engines": { - "node": ">=0.8" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" - }, - "node_modules/available-typed-arrays": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", - "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.7.tgz", + "integrity": "sha512-VtR8hDy7YLB7+Pet9IarXjg/zgCMSF+1mNS/EQEiEaUPoFXCVsHG64SIxcaaI2zJgRiv+YmgaQESUfWAdbjzgg==", + "dev": true, "dependencies": { - "possible-typed-array-names": "^1.0.0" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { - "node": ">= 0.4" + "node": ">=6.9.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", - "engines": { - "node": "*" - } - }, - "node_modules/aws4": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.12.0.tgz", - "integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==" - }, - "node_modules/axios": { - "version": "1.6.7", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.7.tgz", - "integrity": "sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA==", - "dependencies": { - "follow-redirects": "^1.15.4", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/b4a": { - "version": "1.6.6", - "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.6.tgz", - "integrity": "sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg==" - }, - "node_modules/babel-jest": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", - "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.7.tgz", + "integrity": "sha512-U3ap1gm5+4edc2Q/P+9VrBNhGkfnf+8ZqppY71Bo/pzZmXhhLdqgaUl6cuB07O1+AQJtCLfaOmswiNbSQ9ivhw==", "dev": true, "dependencies": { - "@jest/transform": "^29.7.0", - "@types/babel__core": "^7.1.14", - "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^29.6.3", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "slash": "^3.0.0" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=6.9.0" }, "peerDependencies": { - "@babel/core": "^7.8.0" + "@babel/core": "^7.0.0-0" } }, - "node_modules/babel-plugin-istanbul": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", - "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "node_modules/@babel/plugin-transform-unicode-property-regex": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.24.7.tgz", + "integrity": "sha512-uH2O4OV5M9FZYQrwc7NdVmMxQJOCCzFeYudlZSzUAHRFeOujQefa92E74TQDVskNHCzOXoigEuoyzHDhaEaK5w==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^5.0.4", - "test-exclude": "^6.0.0" + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { - "node": ">=8" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", - "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.7.tgz", + "integrity": "sha512-hlQ96MBZSAXUq7ltkjtu3FJCCSMx/j629ns3hA3pXnBXjanNP0LHi+JpPeA81zaWgVK1VGH95Xuy7u0RyQ8kMg==", "dev": true, "dependencies": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { - "node": ">=8" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/babel-plugin-jest-hoist": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", - "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", + "node_modules/@babel/plugin-transform-unicode-sets-regex": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.24.7.tgz", + "integrity": "sha512-2G8aAvF4wy1w/AGZkemprdGMRg5o6zPNhbHVImRz3lss55TYCBd6xStN19rt8XJHq20sqV0JbyWjOWwQRwV/wg==", "dev": true, "dependencies": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.1.14", - "@types/babel__traverse": "^7.0.6" + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/babel-preset-current-node-syntax": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", - "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "node_modules/@babel/preset-env": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.24.7.tgz", + "integrity": "sha512-1YZNsc+y6cTvWlDHidMBsQZrZfEFjRIo/BZCT906PMdzOyXtSLTgqGdrpcuTDCXyd11Am5uQULtDIcCfnTc8fQ==", "dev": true, "dependencies": { + "@babel/compat-data": "^7.24.7", + "@babel/helper-compilation-targets": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-validator-option": "^7.24.7", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.24.7", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.24.7", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.24.7", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.24.7", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.8.3", - "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.24.7", + "@babel/plugin-syntax-import-attributes": "^7.24.7", + "@babel/plugin-syntax-import-meta": "^7.10.4", "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-top-level-await": "^7.8.3" + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.24.7", + "@babel/plugin-transform-async-generator-functions": "^7.24.7", + "@babel/plugin-transform-async-to-generator": "^7.24.7", + "@babel/plugin-transform-block-scoped-functions": "^7.24.7", + "@babel/plugin-transform-block-scoping": "^7.24.7", + "@babel/plugin-transform-class-properties": "^7.24.7", + "@babel/plugin-transform-class-static-block": "^7.24.7", + "@babel/plugin-transform-classes": "^7.24.7", + "@babel/plugin-transform-computed-properties": "^7.24.7", + "@babel/plugin-transform-destructuring": "^7.24.7", + "@babel/plugin-transform-dotall-regex": "^7.24.7", + "@babel/plugin-transform-duplicate-keys": "^7.24.7", + "@babel/plugin-transform-dynamic-import": "^7.24.7", + "@babel/plugin-transform-exponentiation-operator": "^7.24.7", + "@babel/plugin-transform-export-namespace-from": "^7.24.7", + "@babel/plugin-transform-for-of": "^7.24.7", + "@babel/plugin-transform-function-name": "^7.24.7", + "@babel/plugin-transform-json-strings": "^7.24.7", + "@babel/plugin-transform-literals": "^7.24.7", + "@babel/plugin-transform-logical-assignment-operators": "^7.24.7", + "@babel/plugin-transform-member-expression-literals": "^7.24.7", + "@babel/plugin-transform-modules-amd": "^7.24.7", + "@babel/plugin-transform-modules-commonjs": "^7.24.7", + "@babel/plugin-transform-modules-systemjs": "^7.24.7", + "@babel/plugin-transform-modules-umd": "^7.24.7", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.24.7", + "@babel/plugin-transform-new-target": "^7.24.7", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.7", + "@babel/plugin-transform-numeric-separator": "^7.24.7", + "@babel/plugin-transform-object-rest-spread": "^7.24.7", + "@babel/plugin-transform-object-super": "^7.24.7", + "@babel/plugin-transform-optional-catch-binding": "^7.24.7", + "@babel/plugin-transform-optional-chaining": "^7.24.7", + "@babel/plugin-transform-parameters": "^7.24.7", + "@babel/plugin-transform-private-methods": "^7.24.7", + "@babel/plugin-transform-private-property-in-object": "^7.24.7", + "@babel/plugin-transform-property-literals": "^7.24.7", + "@babel/plugin-transform-regenerator": "^7.24.7", + "@babel/plugin-transform-reserved-words": "^7.24.7", + "@babel/plugin-transform-shorthand-properties": "^7.24.7", + "@babel/plugin-transform-spread": "^7.24.7", + "@babel/plugin-transform-sticky-regex": "^7.24.7", + "@babel/plugin-transform-template-literals": "^7.24.7", + "@babel/plugin-transform-typeof-symbol": "^7.24.7", + "@babel/plugin-transform-unicode-escapes": "^7.24.7", + "@babel/plugin-transform-unicode-property-regex": "^7.24.7", + "@babel/plugin-transform-unicode-regex": "^7.24.7", + "@babel/plugin-transform-unicode-sets-regex": "^7.24.7", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "babel-plugin-polyfill-corejs2": "^0.4.10", + "babel-plugin-polyfill-corejs3": "^0.10.4", + "babel-plugin-polyfill-regenerator": "^0.6.1", + "core-js-compat": "^3.31.0", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { - "@babel/core": "^7.0.0" + "@babel/core": "^7.0.0-0" } }, - "node_modules/babel-preset-jest": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", - "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", + "node_modules/@babel/preset-env/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", "dev": true, "dependencies": { - "babel-plugin-jest-hoist": "^29.6.3", - "babel-preset-current-node-syntax": "^1.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" }, "peerDependencies": { - "@babel/core": "^7.0.0" + "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" } }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "node_modules/bare-events": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.2.1.tgz", - "integrity": "sha512-9GYPpsPFvrWBkelIhOhTWtkeZxVxZOdb3VnFTCzlOo3OjvmTvzLoZFUT8kNFACx0vJej6QPney1Cf9BvzCNE/A==", - "optional": true + "node_modules/@babel/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", + "dev": true }, - "node_modules/bare-fs": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-2.2.2.tgz", - "integrity": "sha512-X9IqgvyB0/VA5OZJyb5ZstoN62AzD7YxVGog13kkfYWYqJYcK0kcqLZ6TrmH5qr4/8//ejVcX4x/a0UvaogXmA==", - "optional": true, + "node_modules/@babel/runtime": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.7.tgz", + "integrity": "sha512-UwgBRMjJP+xv857DCngvqXI3Iq6J4v0wXmwc6sapg+zyhbwmQX67LUEFrkK5tbyJ30jGuG3ZvWpBiB9LCy1kWw==", + "dev": true, "dependencies": { - "bare-events": "^2.0.0", - "bare-os": "^2.0.0", - "bare-path": "^2.0.0", - "streamx": "^2.13.0" + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" } }, - "node_modules/bare-os": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-2.2.1.tgz", - "integrity": "sha512-OwPyHgBBMkhC29Hl3O4/YfxW9n7mdTr2+SsO29XBWKKJsbgj3mnorDB80r5TiCQgQstgE5ga1qNYrpes6NvX2w==", - "optional": true - }, - "node_modules/bare-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/bare-path/-/bare-path-2.1.0.tgz", - "integrity": "sha512-DIIg7ts8bdRKwJRJrUMy/PICEaQZaPGZ26lsSx9MJSwIhSrcdHn7/C8W+XmnG/rKi6BaRcz+JO00CjZteybDtw==", - "optional": true, + "node_modules/@babel/template": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.7.tgz", + "integrity": "sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==", + "dev": true, "dependencies": { - "bare-os": "^2.1.0" + "@babel/code-frame": "^7.24.7", + "@babel/parser": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" } }, - "node_modules/base-64": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/base-64/-/base-64-0.1.0.tgz", - "integrity": "sha512-Y5gU45svrR5tI2Vt/X9GPd3L0HNIKzGu202EjxrXMpuc2V2CiKgemAbUUsqYmZJvPtCXoUKjNZwBJzsNScUbXA==" + "node_modules/@babel/traverse": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.7.tgz", + "integrity": "sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.24.7", + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-function-name": "^7.24.7", + "@babel/helper-hoist-variables": "^7.24.7", + "@babel/helper-split-export-declaration": "^7.24.7", + "@babel/parser": "^7.24.7", + "@babel/types": "^7.24.7", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] + "node_modules/@babel/traverse/node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } }, - "node_modules/bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", + "node_modules/@babel/types": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.7.tgz", + "integrity": "sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==", + "dev": true, "dependencies": { - "tweetnacl": "^0.14.3" + "@babel/helper-string-parser": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" } }, - "node_modules/before-after-hook": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.3.tgz", - "integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==" + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true }, - "node_modules/bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "dependencies": { - "file-uri-to-path": "1.0.0" + "node_modules/@biomejs/biome": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/@biomejs/biome/-/biome-1.6.4.tgz", + "integrity": "sha512-3groVd2oWsLC0ZU+XXgHSNbq31lUcOCBkCcA7sAQGBopHcmL+jmmdoWlY3S61zIh+f2mqQTQte1g6PZKb3JJjA==", + "dev": true, + "hasInstallScript": true, + "bin": { + "biome": "bin/biome" + }, + "engines": { + "node": ">=14.21.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/biome" + }, + "optionalDependencies": { + "@biomejs/cli-darwin-arm64": "1.6.4", + "@biomejs/cli-darwin-x64": "1.6.4", + "@biomejs/cli-linux-arm64": "1.6.4", + "@biomejs/cli-linux-arm64-musl": "1.6.4", + "@biomejs/cli-linux-x64": "1.6.4", + "@biomejs/cli-linux-x64-musl": "1.6.4", + "@biomejs/cli-win32-arm64": "1.6.4", + "@biomejs/cli-win32-x64": "1.6.4" + } + }, + "node_modules/@biomejs/cli-darwin-arm64": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-arm64/-/cli-darwin-arm64-1.6.4.tgz", + "integrity": "sha512-2WZef8byI9NRzGajGj5RTrroW9BxtfbP9etigW1QGAtwu/6+cLkdPOWRAs7uFtaxBNiKFYA8j/BxV5zeAo5QOQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=14.21.3" } }, - "node_modules/bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "dependencies": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" + "node_modules/@biomejs/cli-darwin-x64": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-x64/-/cli-darwin-x64-1.6.4.tgz", + "integrity": "sha512-uo1zgM7jvzcoDpF6dbGizejDLCqNpUIRkCj/oEK0PB0NUw8re/cn1EnxuOLZqDpn+8G75COLQTOx8UQIBBN/Kg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=14.21.3" } }, - "node_modules/bl/node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } + "node_modules/@biomejs/cli-linux-arm64": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64/-/cli-linux-arm64-1.6.4.tgz", + "integrity": "sha512-wAOieaMNIpLrxGc2/xNvM//CIZg7ueWy3V5A4T7gDZ3OL/Go27EKE59a+vMKsBCYmTt7jFl4yHz0TUkUbodA/w==", + "cpu": [ + "arm64" ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=14.21.3" } }, - "node_modules/bl/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, + "node_modules/@biomejs/cli-linux-arm64-musl": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64-musl/-/cli-linux-arm64-musl-1.6.4.tgz", + "integrity": "sha512-Hp8Jwt6rjj0wCcYAEN6/cfwrrPLLlGOXZ56Lei4Pt4jy39+UuPeAVFPeclrrCfxyL1wQ2xPrhd/saTHSL6DoJg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">= 6" + "node": ">=14.21.3" } }, - "node_modules/boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "node_modules/@biomejs/cli-linux-x64": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64/-/cli-linux-x64-1.6.4.tgz", + "integrity": "sha512-qTWhuIw+/ePvOkjE9Zxf5OqSCYxtAvcTJtVmZT8YQnmY2I62JKNV2m7tf6O5ViKZUOP0mOQ6NgqHKcHH1eT8jw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=14.21.3" } }, - "node_modules/braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "node_modules/@biomejs/cli-linux-x64-musl": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64-musl/-/cli-linux-x64-musl-1.6.4.tgz", + "integrity": "sha512-wqi0hr8KAx5kBO0B+m5u8QqiYFFBJOSJVSuRqTeGWW+GYLVUtXNidykNqf1JsW6jJDpbkSp2xHKE/bTlVaG2Kg==", + "cpu": [ + "x64" + ], "dev": true, - "dependencies": { - "fill-range": "^7.1.1" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=8" + "node": ">=14.21.3" } }, - "node_modules/browserslist": { - "version": "4.23.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", - "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", + "node_modules/@biomejs/cli-win32-arm64": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/@biomejs/cli-win32-arm64/-/cli-win32-arm64-1.6.4.tgz", + "integrity": "sha512-Wp3FiEeF6v6C5qMfLkHwf4YsoNHr/n0efvoC8jCKO/kX05OXaVExj+1uVQ1eGT7Pvx0XVm/TLprRO0vq/V6UzA==", + "cpu": [ + "arm64" + ], "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } + "optional": true, + "os": [ + "win32" ], - "dependencies": { - "caniuse-lite": "^1.0.30001587", - "electron-to-chromium": "^1.4.668", - "node-releases": "^2.0.14", - "update-browserslist-db": "^1.0.13" - }, - "bin": { - "browserslist": "cli.js" - }, "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + "node": ">=14.21.3" } }, - "node_modules/bs-logger": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", - "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", + "node_modules/@biomejs/cli-win32-x64": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/@biomejs/cli-win32-x64/-/cli-win32-x64-1.6.4.tgz", + "integrity": "sha512-mz183Di5hTSGP7KjNWEhivcP1wnHLGmOxEROvoFsIxMYtDhzJDad4k5gI/1JbmA0xe4n52vsgqo09tBhrMT/Zg==", + "cpu": [ + "x64" + ], "dev": true, - "dependencies": { - "fast-json-stable-stringify": "2.x" - }, + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": ">= 6" + "node": ">=14.21.3" } }, - "node_modules/bser": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", - "dev": true, + "node_modules/@continuedev/config-types": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@continuedev/config-types/-/config-types-1.0.6.tgz", + "integrity": "sha512-JTlaGtsNW9vfSPcDJBn+I2vcs0wWRFIQcN3sa6pBFg2fj8W6qcMZoYUdzoU/+X+2ZT8OKcbomWfP2+qW0uuy6A==", "dependencies": { - "node-int64": "^0.4.0" + "zod": "^3.23.8" } }, - "node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } + "node_modules/@continuedev/llm-info": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@continuedev/llm-info/-/llm-info-1.0.1.tgz", + "integrity": "sha512-fmRXuOSwJ9ogBPSDduoedHF3WVg1rge3o8SRRg1hkUagRnxwZqtQj1sS5SjQyAqjQv6VPMGPDEtD77Za/hc4Jg==" + }, + "node_modules/@esbuild/android-arm": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.19.tgz", + "integrity": "sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==", + "cpu": [ + "arm" ], + "dev": true, "optional": true, - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" + "os": [ + "android" + ], + "engines": { + "node": ">=12" } }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true - }, - "node_modules/buffer-writer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/buffer-writer/-/buffer-writer-2.0.0.tgz", - "integrity": "sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw==", + "node_modules/@esbuild/android-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.19.tgz", + "integrity": "sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], "engines": { - "node": ">=4" + "node": ">=12" } }, - "node_modules/cacache": { - "version": "15.3.0", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", - "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", + "node_modules/@esbuild/android-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.19.tgz", + "integrity": "sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==", + "cpu": [ + "x64" + ], + "dev": true, "optional": true, - "dependencies": { - "@npmcli/fs": "^1.0.0", - "@npmcli/move-file": "^1.0.1", - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "glob": "^7.1.4", - "infer-owner": "^1.0.4", - "lru-cache": "^6.0.0", - "minipass": "^3.1.1", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.2", - "mkdirp": "^1.0.3", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^8.0.1", - "tar": "^6.0.2", - "unique-filename": "^1.1.1" - }, + "os": [ + "android" + ], "engines": { - "node": ">= 10" + "node": ">=12" } }, - "node_modules/cacache/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "node_modules/@esbuild/darwin-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.19.tgz", + "integrity": "sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==", + "cpu": [ + "arm64" + ], + "dev": true, "optional": true, - "dependencies": { - "yallist": "^4.0.0" - }, + "os": [ + "darwin" + ], "engines": { - "node": ">=10" + "node": ">=12" } }, - "node_modules/cacache/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "optional": true - }, - "node_modules/call-bind": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", - "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", - "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.1" - }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz", + "integrity": "sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=12" } }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.19.tgz", + "integrity": "sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], "engines": { - "node": ">=6" + "node": ">=12" } }, - "node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "node_modules/@esbuild/freebsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.19.tgz", + "integrity": "sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==", + "cpu": [ + "x64" + ], "dev": true, + "optional": true, + "os": [ + "freebsd" + ], "engines": { - "node": ">=6" + "node": ">=12" } }, - "node_modules/caniuse-lite": { - "version": "1.0.30001597", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001597.tgz", - "integrity": "sha512-7LjJvmQU6Sj7bL0j5b5WY/3n7utXUJvAe1lxhsHDbLmwX9mdL86Yjtr+5SRCyf8qME4M7pU2hswj0FpyBVCv9w==", + "node_modules/@esbuild/linux-arm": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.19.tgz", + "integrity": "sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==", + "cpu": [ + "arm" + ], "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ] - }, - "node_modules/caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==" - }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": ">=12" } }, - "node_modules/chalk-template": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/chalk-template/-/chalk-template-0.4.0.tgz", - "integrity": "sha512-/ghrgmhfY8RaSdeo43hNXxpoHAtxdbskUHjPpfqUWGttFgycUhYPGx3YZBCnUCvOa7Doivn1IZec3DEGFoMgLg==", - "peer": true, - "dependencies": { - "chalk": "^4.1.2" - }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz", + "integrity": "sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], "engines": { "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/chalk-template?sponsor=1" } }, - "node_modules/char-regex": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", - "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "node_modules/@esbuild/linux-ia32": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.19.tgz", + "integrity": "sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==", + "cpu": [ + "ia32" + ], "dev": true, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=10" + "node": ">=12" } }, - "node_modules/charenc": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz", - "integrity": "sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==", + "node_modules/@esbuild/linux-loong64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz", + "integrity": "sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": "*" + "node": ">=12" } }, - "node_modules/cheerio": { - "version": "1.0.0-rc.12", - "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz", - "integrity": "sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==", - "dependencies": { - "cheerio-select": "^2.1.0", - "dom-serializer": "^2.0.0", - "domhandler": "^5.0.3", - "domutils": "^3.0.1", - "htmlparser2": "^8.0.1", - "parse5": "^7.0.0", - "parse5-htmlparser2-tree-adapter": "^7.0.0" - }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.19.tgz", + "integrity": "sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">= 6" - }, - "funding": { - "url": "https://github.com/cheeriojs/cheerio?sponsor=1" - } - }, - "node_modules/cheerio-select": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz", - "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==", - "dependencies": { - "boolbase": "^1.0.0", - "css-select": "^5.1.0", - "css-what": "^6.1.0", - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3", - "domutils": "^3.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" + "node": ">=12" } }, - "node_modules/chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "node_modules/@esbuild/linux-ppc64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.19.tgz", + "integrity": "sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=10" + "node": ">=12" } }, - "node_modules/ci-info": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", - "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "node_modules/@esbuild/linux-riscv64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.19.tgz", + "integrity": "sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==", + "cpu": [ + "riscv64" + ], "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/sibiraj-s" - } + "optional": true, + "os": [ + "linux" ], "engines": { - "node": ">=8" + "node": ">=12" } }, - "node_modules/cjs-module-lexer": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz", - "integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==", - "dev": true - }, - "node_modules/clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "node_modules/@esbuild/linux-s390x": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.19.tgz", + "integrity": "sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==", + "cpu": [ + "s390x" + ], + "dev": true, "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=6" + "node": ">=12" } }, - "node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "node_modules/@esbuild/linux-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz", + "integrity": "sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==", + "cpu": [ + "x64" + ], "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { "node": ">=12" } }, - "node_modules/co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", - "dev": true, - "engines": { - "iojs": ">= 1.0.0", - "node": ">= 0.12.0" + "node_modules/@esbuild/netbsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.19.tgz", + "integrity": "sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" } }, - "node_modules/collect-v8-coverage": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", - "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", - "dev": true - }, - "node_modules/color": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", - "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", - "dependencies": { - "color-convert": "^2.0.1", - "color-string": "^1.9.0" - }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.19.tgz", + "integrity": "sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], "engines": { - "node": ">=12.5.0" + "node": ">=12" } }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.19.tgz", + "integrity": "sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], "engines": { - "node": ">=7.0.0" + "node": ">=12" } }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "node_modules/@esbuild/win32-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz", + "integrity": "sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } }, - "node_modules/color-string": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", - "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", - "dependencies": { - "color-name": "^1.0.0", - "simple-swizzle": "^0.2.2" + "node_modules/@esbuild/win32-ia32": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.19.tgz", + "integrity": "sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" } }, - "node_modules/color-support": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", + "node_modules/@esbuild/win32-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz", + "integrity": "sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==", + "cpu": [ + "x64" + ], + "dev": true, "optional": true, - "bin": { - "color-support": "bin.js" + "os": [ + "win32" + ], + "engines": { + "node": ">=12" } }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", "dependencies": { - "delayed-stream": "~1.0.0" + "eslint-visitor-keys": "^3.3.0" }, "engines": { - "node": ">= 0.8" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, - "node_modules/command-line-args": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz", - "integrity": "sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==", - "peer": true, + "node_modules/@eslint-community/regexpp": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", + "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", "dependencies": { - "array-back": "^3.1.0", - "find-replace": "^3.0.0", - "lodash.camelcase": "^4.3.0", - "typical": "^4.0.0" + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" }, "engines": { - "node": ">=4.0.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/command-line-usage": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-7.0.1.tgz", - "integrity": "sha512-NCyznE//MuTjwi3y84QVUGEOT+P5oto1e1Pk/jFPVdPPfsG03qpTIl3yw6etR+v73d0lXsoojRpvbru2sqePxQ==", - "peer": true, + "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dependencies": { - "array-back": "^6.2.2", - "chalk-template": "^0.4.0", - "table-layout": "^3.0.0", - "typical": "^7.1.1" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@eslint/eslintrc/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" }, "engines": { - "node": ">=12.20.0" + "node": "*" } }, - "node_modules/command-line-usage/node_modules/array-back": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-6.2.2.tgz", - "integrity": "sha512-gUAZ7HPyb4SJczXAMUXMGAvI976JoK3qEx9v1FTmeYuJj0IBiaKttG1ydtGKdkfqWkIkouke7nG8ufGy77+Cvw==", - "peer": true, + "node_modules/@eslint/js": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", + "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", "engines": { - "node": ">=12.17" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/command-line-usage/node_modules/typical": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/typical/-/typical-7.1.1.tgz", - "integrity": "sha512-T+tKVNs6Wu7IWiAce5BgMd7OZfNYUndHwc5MknN+UHOudi7sGZzuHdCadllRuqJ3fPtgFtIH9+lt9qRv6lmpfA==", - "peer": true, + "node_modules/@gar/promisify": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", + "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", + "optional": true + }, + "node_modules/@google/generative-ai": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/@google/generative-ai/-/generative-ai-0.11.4.tgz", + "integrity": "sha512-hlw+E9Prv9aUIQISRnLSXi4rukFqKe5WhxPvzBccTvIvXjw2BHMFOJWSC/Gq7WE0W+L/qRHGmYxopmx9qjrB9w==", + "dev": true, "engines": { - "node": ">=12.17" + "node": ">=18.0.0" } }, - "node_modules/commander": { - "version": "12.0.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-12.0.0.tgz", - "integrity": "sha512-MwVNWlYjDTtOjX5PiD7o5pK0UrFU/OYgcJfjjK4RaHZETNtjJqrZa9Y9ds88+A+f+d5lv+561eZ+yCKoS3gbAA==", + "node_modules/@huggingface/jinja": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@huggingface/jinja/-/jinja-0.1.3.tgz", + "integrity": "sha512-9KsiorsdIK8+7VmlamAT7Uh90zxAhC/SeKaKc80v58JhtPYuwaJpmR/ST7XAUxrHAFqHTCoTH5aJnJDwSL6xIQ==", "engines": { "node": ">=18" } }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" - }, - "node_modules/confusing-browser-globals": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", - "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==" + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.14", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", + "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.2", + "debug": "^4.3.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } }, - "node_modules/console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", - "optional": true + "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } }, - "node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true + "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } }, - "node_modules/core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==" - }, - "node_modules/create-jest": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", - "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", - "dev": true, - "dependencies": { - "@jest/types": "^29.6.3", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-config": "^29.7.0", - "jest-util": "^29.7.0", - "prompts": "^2.0.1" - }, - "bin": { - "create-jest": "bin/create-jest.js" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/crypt": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz", - "integrity": "sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==", + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", "engines": { - "node": "*" - } - }, - "node_modules/css-select": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", - "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^6.1.0", - "domhandler": "^5.0.2", - "domutils": "^3.0.1", - "nth-check": "^2.0.1" + "node": ">=12.22" }, "funding": { - "url": "https://github.com/sponsors/fb55" + "type": "github", + "url": "https://github.com/sponsors/nzakas" } }, - "node_modules/css-what": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", - "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", - "engines": { - "node": ">= 6" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==" }, - "node_modules/cssstyle": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-4.0.1.tgz", - "integrity": "sha512-8ZYiJ3A/3OkDd093CBT/0UKDWry7ak4BdPTFP2+QEP7cmhouyq/Up709ASSj2cK02BbZiMgk7kYjZNS4QP5qrQ==", + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, "dependencies": { - "rrweb-cssom": "^0.6.0" + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" }, "engines": { - "node": ">=18" + "node": ">=8" } }, - "node_modules/dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", + "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, "dependencies": { - "assert-plus": "^1.0.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/data-uri-to-buffer": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", - "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", - "engines": { - "node": ">= 12" + "sprintf-js": "~1.0.2" } }, - "node_modules/data-urls": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-5.0.0.tgz", - "integrity": "sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==", + "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, "dependencies": { - "whatwg-mimetype": "^4.0.0", - "whatwg-url": "^14.0.0" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" }, "engines": { - "node": ">=18" + "node": ">=8" } }, - "node_modules/dbinfoz": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/dbinfoz/-/dbinfoz-0.1.4.tgz", - "integrity": "sha512-MB56+xS571ip7qoXqxdnOUtXebbWaqoZN+S++W51SQYJRSjQFGEIPucNmxgeQlBGJ1vM4mQNV47wzV6fcrezZg==", + "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, "dependencies": { - "mysql2": "^3.9.1", - "pg": "^8.11.3", - "sqlite3": "^5.1.7" + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" } }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, "dependencies": { - "ms": "2.1.2" + "p-locate": "^4.1.0" }, "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "node": ">=8" } }, - "node_modules/decimal.js": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", - "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==" - }, - "node_modules/decompress-response": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", - "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, "dependencies": { - "mimic-response": "^3.1.0" + "p-try": "^2.0.0" }, "engines": { - "node": ">=10" + "node": ">=6" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/dedent": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.1.tgz", - "integrity": "sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==", + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, - "peerDependencies": { - "babel-plugin-macros": "^3.1.0" + "dependencies": { + "p-limit": "^2.2.0" }, - "peerDependenciesMeta": { - "babel-plugin-macros": { - "optional": true - } + "engines": { + "node": ">=8" } }, - "node_modules/deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, "engines": { - "node": ">=4.0.0" + "node": ">=8" } }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "peer": true + "node_modules/@istanbuljs/load-nyc-config/node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true }, - "node_modules/deepmerge": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", - "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/define-data-property": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "node_modules/@jest/console": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", + "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", + "dev": true, "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/define-properties": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", - "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "node_modules/@jest/core": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", + "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", + "dev": true, "dependencies": { - "define-data-property": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" + "@jest/console": "^29.7.0", + "@jest/reporters": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^29.7.0", + "jest-config": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-resolve-dependencies": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "jest-watcher": "^29.7.0", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" }, "engines": { - "node": ">= 0.4" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } } }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "node_modules/@jest/environment": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", + "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", + "dev": true, + "dependencies": { + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0" + }, "engines": { - "node": ">=0.4.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", - "optional": true - }, - "node_modules/denque": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz", - "integrity": "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==", + "node_modules/@jest/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", + "dev": true, + "dependencies": { + "expect": "^29.7.0", + "jest-snapshot": "^29.7.0" + }, "engines": { - "node": ">=0.10" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/deprecation": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", - "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==" - }, - "node_modules/detect-libc": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.2.tgz", - "integrity": "sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==", + "node_modules/@jest/expect-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", + "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", + "dev": true, + "dependencies": { + "jest-get-type": "^29.6.3" + }, "engines": { - "node": ">=8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/detect-newline": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", - "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "node_modules/@jest/fake-timers": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", + "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "@sinonjs/fake-timers": "^10.0.2", + "@types/node": "*", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" + }, "engines": { - "node": ">=8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/diff-sequences": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", - "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "node_modules/@jest/globals": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", + "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", "dev": true, + "dependencies": { + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/types": "^29.6.3", + "jest-mock": "^29.7.0" + }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/digest-fetch": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/digest-fetch/-/digest-fetch-1.3.0.tgz", - "integrity": "sha512-CGJuv6iKNM7QyZlM2T3sPAdZWd/p9zQiRNS9G+9COUCwzWFTs0Xp8NF5iePx7wtvhDykReiRRrSeNb4oMmB8lA==", + "node_modules/@jest/reporters": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", + "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", + "dev": true, "dependencies": { - "base-64": "^0.1.0", - "md5": "^2.3.0" + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^6.0.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "slash": "^3.0.0", + "string-length": "^4.0.1", + "strip-ansi": "^6.0.0", + "v8-to-istanbul": "^9.0.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } } }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "peer": true, + "node_modules/@jest/schemas": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", + "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "dev": true, "dependencies": { - "esutils": "^2.0.2" + "@sinclair/typebox": "^0.27.8" }, "engines": { - "node": ">=6.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/dom-serializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", - "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "node_modules/@jest/source-map": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", + "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", + "dev": true, "dependencies": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.2", - "entities": "^4.2.0" + "@jridgewell/trace-mapping": "^0.3.18", + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9" }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/domelementtype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", - "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ] - }, - "node_modules/domhandler": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", - "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "node_modules/@jest/test-result": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", + "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", + "dev": true, "dependencies": { - "domelementtype": "^2.3.0" + "@jest/console": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" }, "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/domutils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", - "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", + "node_modules/@jest/test-sequencer": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", + "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", + "dev": true, "dependencies": { - "dom-serializer": "^2.0.0", - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3" + "@jest/test-result": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "slash": "^3.0.0" }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/dotenv": { - "version": "16.4.5", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz", - "integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==", + "node_modules/@jest/transform": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", + "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", + "dev": true, + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/types": "^29.6.3", + "@jridgewell/trace-mapping": "^0.3.18", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^2.0.0", + "fast-json-stable-stringify": "^2.1.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "write-file-atomic": "^4.0.2" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/types": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", + "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", + "dev": true, + "dependencies": { + "@jest/schemas": "^29.6.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@lancedb/vectordb-darwin-arm64": { + "version": "0.4.20", + "resolved": "https://registry.npmjs.org/@lancedb/vectordb-darwin-arm64/-/vectordb-darwin-arm64-0.4.20.tgz", + "integrity": "sha512-ffP2K4sA5mQTgePyARw1y8dPN996FmpvyAYoWO+TSItaXlhcXvc+KVa5udNMCZMDYeEnEv2Xpj6k4PwW3oBz+A==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@lancedb/vectordb-darwin-x64": { + "version": "0.4.20", + "resolved": "https://registry.npmjs.org/@lancedb/vectordb-darwin-x64/-/vectordb-darwin-x64-0.4.20.tgz", + "integrity": "sha512-GSYsXE20RIehDu30FjREhJdEzhnwOTV7ZsrSXagStzLY1gr7pyd7sfqxmmUtdD09di7LnQoiM71AOpPTa01YwQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@lancedb/vectordb-linux-arm64-gnu": { + "version": "0.4.20", + "resolved": "https://registry.npmjs.org/@lancedb/vectordb-linux-arm64-gnu/-/vectordb-linux-arm64-gnu-0.4.20.tgz", + "integrity": "sha512-FpNOjOsz3nJVm6EBGyNgbOW2aFhsWZ/igeY45Z8hbZaaK2YBwrg/DASoNlUzgv6IR8cUaGJ2irNVJfsKR2cG6g==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@lancedb/vectordb-linux-x64-gnu": { + "version": "0.4.20", + "resolved": "https://registry.npmjs.org/@lancedb/vectordb-linux-x64-gnu/-/vectordb-linux-x64-gnu-0.4.20.tgz", + "integrity": "sha512-pOqWjrRZQSrLTlQPkjidRii7NZDw8Xu9pN6ouVu2JAK8n81FXaPtFCyAI+Y3v9GpnYDN0rvD4eQ36aHAVPsa2g==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@lancedb/vectordb-win32-x64-msvc": { + "version": "0.4.20", + "resolved": "https://registry.npmjs.org/@lancedb/vectordb-win32-x64-msvc/-/vectordb-win32-x64-msvc-0.4.20.tgz", + "integrity": "sha512-5J5SsYSJ7jRCmU/sgwVHdrGz43B/7R2T9OEoFTKyVAtqTZdu75rkytXyn9SyEayXVhlUOaw76N0ASm0hAoDS/A==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@mozilla/readability": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@mozilla/readability/-/readability-0.5.0.tgz", + "integrity": "sha512-Z+CZ3QaosfFaTqvhQsIktyGrjFjSC0Fa4EMph4mqKnWhmyoGICsV/8QK+8HpXut6zV7zwfWwqDmEjtk1Qf6EgQ==", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@neon-rs/load": { + "version": "0.0.74", + "resolved": "https://registry.npmjs.org/@neon-rs/load/-/load-0.0.74.tgz", + "integrity": "sha512-/cPZD907UNz55yrc/ud4wDgQKtU1TvkD9jeqZWG6J4IMmZkp6zgjkQcKA8UvpkZlcpPHvc8J17sGzLFbP/LUYg==" + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@npmcli/fs": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz", + "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==", + "optional": true, + "dependencies": { + "@gar/promisify": "^1.0.1", + "semver": "^7.3.5" + } + }, + "node_modules/@npmcli/move-file": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", + "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", + "deprecated": "This functionality has been moved to @npmcli/fs", + "optional": true, + "dependencies": { + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@octokit/auth-token": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-4.0.0.tgz", + "integrity": "sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA==", + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/core": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@octokit/core/-/core-5.2.0.tgz", + "integrity": "sha512-1LFfa/qnMQvEOAdzlQymH0ulepxbxnCYAKJZfMci/5XJyIHWgEYnDmgnKakbTh7CH2tFQ5O60oYDvns4i9RAIg==", + "dependencies": { + "@octokit/auth-token": "^4.0.0", + "@octokit/graphql": "^7.1.0", + "@octokit/request": "^8.3.1", + "@octokit/request-error": "^5.1.0", + "@octokit/types": "^13.0.0", + "before-after-hook": "^2.2.0", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/endpoint": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-9.0.5.tgz", + "integrity": "sha512-ekqR4/+PCLkEBF6qgj8WqJfvDq65RH85OAgrtnVp1mSxaXF03u2xW/hUdweGS5654IlC0wkNYC18Z50tSYTAFw==", + "dependencies": { + "@octokit/types": "^13.1.0", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/graphql": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-7.1.0.tgz", + "integrity": "sha512-r+oZUH7aMFui1ypZnAvZmn0KSqAUgE1/tUXIWaqUCa1758ts/Jio84GZuzsvUkme98kv0WFY8//n0J1Z+vsIsQ==", + "dependencies": { + "@octokit/request": "^8.3.0", + "@octokit/types": "^13.0.0", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/openapi-types": { + "version": "22.2.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-22.2.0.tgz", + "integrity": "sha512-QBhVjcUa9W7Wwhm6DBFu6ZZ+1/t/oYxqc2tp81Pi41YNuJinbFRx8B133qVOrAaBbF7D/m0Et6f9/pZt9Rc+tg==" + }, + "node_modules/@octokit/plugin-paginate-rest": { + "version": "11.3.1", + "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-11.3.1.tgz", + "integrity": "sha512-ryqobs26cLtM1kQxqeZui4v8FeznirUsksiA+RYemMPJ7Micju0WSkv50dBksTuZks9O5cg4wp+t8fZ/cLY56g==", + "dependencies": { + "@octokit/types": "^13.5.0" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "@octokit/core": "5" + } + }, + "node_modules/@octokit/plugin-request-log": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-4.0.1.tgz", + "integrity": "sha512-GihNqNpGHorUrO7Qa9JbAl0dbLnqJVrV8OXe2Zm5/Y4wFkZQDfTreBzVmiRfJVfE4mClXdihHnbpyyO9FSX4HA==", + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "@octokit/core": "5" + } + }, + "node_modules/@octokit/plugin-rest-endpoint-methods": { + "version": "13.2.2", + "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-13.2.2.tgz", + "integrity": "sha512-EI7kXWidkt3Xlok5uN43suK99VWqc8OaIMktY9d9+RNKl69juoTyxmLoWPIZgJYzi41qj/9zU7G/ljnNOJ5AFA==", + "dependencies": { + "@octokit/types": "^13.5.0" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "@octokit/core": "^5" + } + }, + "node_modules/@octokit/request": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-8.4.0.tgz", + "integrity": "sha512-9Bb014e+m2TgBeEJGEbdplMVWwPmL1FPtggHQRkV+WVsMggPtEkLKPlcVYm/o8xKLkpJ7B+6N8WfQMtDLX2Dpw==", + "dependencies": { + "@octokit/endpoint": "^9.0.1", + "@octokit/request-error": "^5.1.0", + "@octokit/types": "^13.1.0", + "universal-user-agent": "^6.0.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/request-error": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-5.1.0.tgz", + "integrity": "sha512-GETXfE05J0+7H2STzekpKObFe765O5dlAKUTLNGeH+x47z7JjXHfsHKo5z21D/o/IOZTUEI6nyWyR+bZVP/n5Q==", + "dependencies": { + "@octokit/types": "^13.1.0", + "deprecation": "^2.0.0", + "once": "^1.4.0" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/rest": { + "version": "20.1.1", + "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-20.1.1.tgz", + "integrity": "sha512-MB4AYDsM5jhIHro/dq4ix1iWTLGToIGk6cWF5L6vanFaMble5jTX/UBQyiv05HsWnwUtY8JrfHy2LWfKwihqMw==", + "dependencies": { + "@octokit/core": "^5.0.2", + "@octokit/plugin-paginate-rest": "11.3.1", + "@octokit/plugin-request-log": "^4.0.0", + "@octokit/plugin-rest-endpoint-methods": "13.2.2" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/@octokit/types": { + "version": "13.5.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-13.5.0.tgz", + "integrity": "sha512-HdqWTf5Z3qwDVlzCrP8UJquMwunpDiMPt5er+QjGzL4hqr/vBVY/MauQgS1xWxCDT1oMx1EULyqxncdCY/NVSQ==", + "dependencies": { + "@octokit/openapi-types": "^22.2.0" + } + }, + "node_modules/@protobufjs/aspromise": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", + "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==" + }, + "node_modules/@protobufjs/base64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" + }, + "node_modules/@protobufjs/codegen": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", + "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" + }, + "node_modules/@protobufjs/eventemitter": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", + "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==" + }, + "node_modules/@protobufjs/fetch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", + "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", + "dependencies": { + "@protobufjs/aspromise": "^1.1.1", + "@protobufjs/inquire": "^1.1.0" + } + }, + "node_modules/@protobufjs/float": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", + "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==" + }, + "node_modules/@protobufjs/inquire": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", + "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==" + }, + "node_modules/@protobufjs/path": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", + "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==" + }, + "node_modules/@protobufjs/pool": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", + "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==" + }, + "node_modules/@protobufjs/utf8": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", + "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" + }, + "node_modules/@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "dev": true + }, + "node_modules/@sinonjs/commons": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", + "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", + "dev": true, + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", + "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^3.0.0" + } + }, + "node_modules/@smithy/abort-controller": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@smithy/abort-controller/-/abort-controller-3.0.1.tgz", + "integrity": "sha512-Jb7jg4E+C+uvrUQi+h9kbILY6ts6fglKZzseMCHlH9ayq+1f5QdpYf8MV/xppuiN6DAMJAmwGz53GwP3213dmA==", + "dependencies": { + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/config-resolver": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-3.0.2.tgz", + "integrity": "sha512-wUyG6ezpp2sWAvfqmSYTROwFUmJqKV78GLf55WODrosBcT0BAMd9bOLO4HRhynWBgAobPml2cF9ZOdgCe00r+g==", + "dependencies": { + "@smithy/node-config-provider": "^3.1.1", + "@smithy/types": "^3.1.0", + "@smithy/util-config-provider": "^3.0.0", + "@smithy/util-middleware": "^3.0.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/core": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@smithy/core/-/core-2.2.1.tgz", + "integrity": "sha512-R8Pzrr2v2oGUoj4CTZtKPr87lVtBsz7IUBGhSwS1kc6Cj0yPwNdYbkzhFsxhoDE9+BPl09VN/6rFsW9GJzWnBA==", + "dependencies": { + "@smithy/middleware-endpoint": "^3.0.2", + "@smithy/middleware-retry": "^3.0.4", + "@smithy/middleware-serde": "^3.0.1", + "@smithy/protocol-http": "^4.0.1", + "@smithy/smithy-client": "^3.1.2", + "@smithy/types": "^3.1.0", + "@smithy/util-middleware": "^3.0.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/credential-provider-imds": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-3.1.1.tgz", + "integrity": "sha512-htndP0LwHdE3R3Nam9ZyVWhwPYOmD4xCL79kqvNxy8u/bv0huuy574CSiRY4cvEICgimv8jlVfLeZ7zZqbnB2g==", + "dependencies": { + "@smithy/node-config-provider": "^3.1.1", + "@smithy/property-provider": "^3.1.1", + "@smithy/types": "^3.1.0", + "@smithy/url-parser": "^3.0.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/eventstream-codec": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-codec/-/eventstream-codec-3.0.0.tgz", + "integrity": "sha512-PUtyEA0Oik50SaEFCZ0WPVtF9tz/teze2fDptW6WRXl+RrEenH8UbEjudOz8iakiMl3lE3lCVqYf2Y+znL8QFQ==", + "dependencies": { + "@aws-crypto/crc32": "3.0.0", + "@smithy/types": "^3.0.0", + "@smithy/util-hex-encoding": "^3.0.0", + "tslib": "^2.6.2" + } + }, + "node_modules/@smithy/eventstream-serde-browser": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-3.0.0.tgz", + "integrity": "sha512-NB7AFiPN4NxP/YCAnrvYR18z2/ZsiHiF7VtG30gshO9GbFrIb1rC8ep4NGpJSWrz6P64uhPXeo4M0UsCLnZKqw==", + "dependencies": { + "@smithy/eventstream-serde-universal": "^3.0.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/eventstream-serde-config-resolver": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-3.0.0.tgz", + "integrity": "sha512-RUQG3vQ3LX7peqqHAbmayhgrF5aTilPnazinaSGF1P0+tgM3vvIRWPHmlLIz2qFqB9LqFIxditxc8O2Z6psrRw==", + "dependencies": { + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/eventstream-serde-node": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-node/-/eventstream-serde-node-3.0.0.tgz", + "integrity": "sha512-baRPdMBDMBExZXIUAoPGm/hntixjt/VFpU6+VmCyiYJYzRHRxoaI1MN+5XE+hIS8AJ2GCHLMFEIOLzq9xx1EgQ==", + "dependencies": { + "@smithy/eventstream-serde-universal": "^3.0.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/eventstream-serde-universal": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-3.0.0.tgz", + "integrity": "sha512-HNFfShmotWGeAoW4ujP8meV9BZavcpmerDbPIjkJbxKbN8RsUcpRQ/2OyIxWNxXNH2GWCAxuSB7ynmIGJlQ3Dw==", + "dependencies": { + "@smithy/eventstream-codec": "^3.0.0", + "@smithy/types": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/fetch-http-handler": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-3.0.2.tgz", + "integrity": "sha512-0nW6tLK0b7EqSsfKvnOmZCgJqnodBAnvqcrlC5dotKfklLedPTRGsQamSVbVDWyuU/QGg+YbZDJUQ0CUufJXZQ==", + "dependencies": { + "@smithy/protocol-http": "^4.0.1", + "@smithy/querystring-builder": "^3.0.1", + "@smithy/types": "^3.1.0", + "@smithy/util-base64": "^3.0.0", + "tslib": "^2.6.2" + } + }, + "node_modules/@smithy/hash-node": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@smithy/hash-node/-/hash-node-3.0.1.tgz", + "integrity": "sha512-w2ncjgk2EYO2+WhAsSQA8owzoOSY7IL1qVytlwpnL1pFGWTjIoIh5nROkEKXY51unB63bMGZqDiVoXaFbyKDlg==", + "dependencies": { + "@smithy/types": "^3.1.0", + "@smithy/util-buffer-from": "^3.0.0", + "@smithy/util-utf8": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/invalid-dependency": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@smithy/invalid-dependency/-/invalid-dependency-3.0.1.tgz", + "integrity": "sha512-RSNF/32BKygXKKMyS7koyuAq1rcdW5p5c4EFa77QenBFze9As+JiRnV9OWBh2cB/ejGZalEZjvIrMLHwJl7aGA==", + "dependencies": { + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" + } + }, + "node_modules/@smithy/is-array-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-3.0.0.tgz", + "integrity": "sha512-+Fsu6Q6C4RSJiy81Y8eApjEB5gVtM+oFKTffg+jSuwtvomJJrhUJBu2zS8wjXSgH/g1MKEWrzyChTBe6clb5FQ==", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/middleware-content-length": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@smithy/middleware-content-length/-/middleware-content-length-3.0.1.tgz", + "integrity": "sha512-6QdK/VbrCfXD5/QolE2W/ok6VqxD+SM28Ds8iSlEHXZwv4buLsvWyvoEEy0322K/g5uFgPzBmZjGqesTmPL+yQ==", + "dependencies": { + "@smithy/protocol-http": "^4.0.1", + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/middleware-endpoint": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-3.0.2.tgz", + "integrity": "sha512-gWEaGYB3Bei17Oiy/F2IlUPpBazNXImytoOdJ1xbrUOaJKAOiUhx8/4FOnYLLJHdAwa9PlvJ2ULda2f/Dnwi9w==", + "dependencies": { + "@smithy/middleware-serde": "^3.0.1", + "@smithy/node-config-provider": "^3.1.1", + "@smithy/shared-ini-file-loader": "^3.1.1", + "@smithy/types": "^3.1.0", + "@smithy/url-parser": "^3.0.1", + "@smithy/util-middleware": "^3.0.1", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/middleware-retry": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-3.0.4.tgz", + "integrity": "sha512-Tu+FggbLNF5G9L6Wi8o32Mg4bhlBInWlhhaFKyytGRnkfxGopxFVXJQn7sjZdFYJyTz6RZZa06tnlvavUgtoVg==", + "dependencies": { + "@smithy/node-config-provider": "^3.1.1", + "@smithy/protocol-http": "^4.0.1", + "@smithy/service-error-classification": "^3.0.1", + "@smithy/smithy-client": "^3.1.2", + "@smithy/types": "^3.1.0", + "@smithy/util-middleware": "^3.0.1", + "@smithy/util-retry": "^3.0.1", + "tslib": "^2.6.2", + "uuid": "^9.0.1" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/middleware-serde": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@smithy/middleware-serde/-/middleware-serde-3.0.1.tgz", + "integrity": "sha512-ak6H/ZRN05r5+SR0/IUc5zOSyh2qp3HReg1KkrnaSLXmncy9lwOjNqybX4L4x55/e5mtVDn1uf/gQ6bw5neJPw==", + "dependencies": { + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/middleware-stack": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@smithy/middleware-stack/-/middleware-stack-3.0.1.tgz", + "integrity": "sha512-fS5uT//y1SlBdkzIvgmWQ9FufwMXrHSSbuR25ygMy1CRDIZkcBMoF4oTMYNfR9kBlVBcVzlv7joFdNrFuQirPA==", + "dependencies": { + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/node-config-provider": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.1.tgz", + "integrity": "sha512-z5G7+ysL4yUtMghUd2zrLkecu0mTfnYlt5dR76g/HsFqf7evFazwiZP1ag2EJenGxNBDwDM5g8nm11NPogiUVA==", + "dependencies": { + "@smithy/property-provider": "^3.1.1", + "@smithy/shared-ini-file-loader": "^3.1.1", + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/node-http-handler": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-3.0.1.tgz", + "integrity": "sha512-hlBI6MuREA4o1wBMEt+QNhUzoDtFFvwR6ecufimlx9D79jPybE/r8kNorphXOi91PgSO9S2fxRjcKCLk7Jw8zA==", + "dependencies": { + "@smithy/abort-controller": "^3.0.1", + "@smithy/protocol-http": "^4.0.1", + "@smithy/querystring-builder": "^3.0.1", + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/property-provider": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@smithy/property-provider/-/property-provider-3.1.1.tgz", + "integrity": "sha512-YknOMZcQkB5on+MU0DvbToCmT2YPtTETMXW0D3+/Iln7ezT+Zm1GMHhCW1dOH/X/+LkkQD9aXEoCX/B10s4Xdw==", + "dependencies": { + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/protocol-http": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-4.0.1.tgz", + "integrity": "sha512-eBhm9zwcFPEazc654c0BEWtxYAzrw+OhoSf5pkwKzfftWKXRoqEhwOE2Pvn30v0iAdo7Mfsfb6pi1NnZlGCMpg==", + "dependencies": { + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/querystring-builder": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@smithy/querystring-builder/-/querystring-builder-3.0.1.tgz", + "integrity": "sha512-vKitpnG/2KOMVlx3x1S3FkBH075EROG3wcrcDaNerQNh8yuqnSL23btCD2UyX4i4lpPzNW6VFdxbn2Z25b/g5Q==", + "dependencies": { + "@smithy/types": "^3.1.0", + "@smithy/util-uri-escape": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/querystring-parser": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@smithy/querystring-parser/-/querystring-parser-3.0.1.tgz", + "integrity": "sha512-Qt8DMC05lVS8NcQx94lfVbZSX+2Ym7032b/JR8AlboAa/D669kPzqb35dkjkvAG6+NWmUchef3ENtrD6F+5n8Q==", + "dependencies": { + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/service-error-classification": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@smithy/service-error-classification/-/service-error-classification-3.0.1.tgz", + "integrity": "sha512-ubFUvIePjDCyIzZ+pLETqNC6KXJ/fc6g+/baqel7Zf6kJI/kZKgjwkCI7zbUhoUuOZ/4eA/87YasVu40b/B4bA==", + "dependencies": { + "@smithy/types": "^3.1.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/shared-ini-file-loader": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.1.tgz", + "integrity": "sha512-nD6tXIX2126/P9e3wqRY1bm9dTtPZwRDyjVOd18G28o+1UOG+kOVgUwujE795HslSuPlEgqzsH5sgNP1hDjj9g==", + "dependencies": { + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/signature-v4": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-3.1.0.tgz", + "integrity": "sha512-m0/6LW3IQ3/JBcdhqjpkpABPTPhcejqeAn0U877zxBdNLiWAnG2WmCe5MfkUyVuvpFTPQnQwCo/0ZBR4uF5kxg==", + "dependencies": { + "@smithy/is-array-buffer": "^3.0.0", + "@smithy/types": "^3.1.0", + "@smithy/util-hex-encoding": "^3.0.0", + "@smithy/util-middleware": "^3.0.1", + "@smithy/util-uri-escape": "^3.0.0", + "@smithy/util-utf8": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/smithy-client": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-3.1.2.tgz", + "integrity": "sha512-f3eQpczBOFUtdT/ptw2WpUKu1qH1K7xrssrSiHYtd9TuLXkvFqb88l9mz9FHeUVNSUxSnkW1anJnw6rLwUKzQQ==", + "dependencies": { + "@smithy/middleware-endpoint": "^3.0.2", + "@smithy/middleware-stack": "^3.0.1", + "@smithy/protocol-http": "^4.0.1", + "@smithy/types": "^3.1.0", + "@smithy/util-stream": "^3.0.2", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/types": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@smithy/types/-/types-3.1.0.tgz", + "integrity": "sha512-qi4SeCVOUPjhSSZrxxB/mB8DrmuSFUcJnD9KXjuP+7C3LV/KFV4kpuUSH3OHDZgQB9TEH/1sO/Fq/5HyaK9MPw==", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/url-parser": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@smithy/url-parser/-/url-parser-3.0.1.tgz", + "integrity": "sha512-G140IlNFlzYWVCedC4E2d6NycM1dCUbe5CnsGW1hmGt4hYKiGOw0v7lVru9WAn5T2w09QEjl4fOESWjGmCvVmg==", + "dependencies": { + "@smithy/querystring-parser": "^3.0.1", + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" + } + }, + "node_modules/@smithy/util-base64": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/util-base64/-/util-base64-3.0.0.tgz", + "integrity": "sha512-Kxvoh5Qtt0CDsfajiZOCpJxgtPHXOKwmM+Zy4waD43UoEMA+qPxxa98aE/7ZhdnBFZFXMOiBR5xbcaMhLtznQQ==", + "dependencies": { + "@smithy/util-buffer-from": "^3.0.0", + "@smithy/util-utf8": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/util-body-length-browser": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/util-body-length-browser/-/util-body-length-browser-3.0.0.tgz", + "integrity": "sha512-cbjJs2A1mLYmqmyVl80uoLTJhAcfzMOyPgjwAYusWKMdLeNtzmMz9YxNl3/jRLoxSS3wkqkf0jwNdtXWtyEBaQ==", + "dependencies": { + "tslib": "^2.6.2" + } + }, + "node_modules/@smithy/util-body-length-node": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/util-body-length-node/-/util-body-length-node-3.0.0.tgz", + "integrity": "sha512-Tj7pZ4bUloNUP6PzwhN7K386tmSmEET9QtQg0TgdNOnxhZvCssHji+oZTUIuzxECRfG8rdm2PMw2WCFs6eIYkA==", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/util-buffer-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-3.0.0.tgz", + "integrity": "sha512-aEOHCgq5RWFbP+UDPvPot26EJHjOC+bRgse5A8V3FSShqd5E5UN4qc7zkwsvJPPAVsf73QwYcHN1/gt/rtLwQA==", + "dependencies": { + "@smithy/is-array-buffer": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/util-config-provider": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/util-config-provider/-/util-config-provider-3.0.0.tgz", + "integrity": "sha512-pbjk4s0fwq3Di/ANL+rCvJMKM5bzAQdE5S/6RL5NXgMExFAi6UgQMPOm5yPaIWPpr+EOXKXRonJ3FoxKf4mCJQ==", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/util-defaults-mode-browser": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-3.0.4.tgz", + "integrity": "sha512-sXtin3Mue3A3xo4+XkozpgPptgmRwvNPOqTvb3ANGTCzzoQgAPBNjpE+aXCINaeSMXwHmv7E2oEn2vWdID+SAQ==", + "dependencies": { + "@smithy/property-provider": "^3.1.1", + "@smithy/smithy-client": "^3.1.2", + "@smithy/types": "^3.1.0", + "bowser": "^2.11.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@smithy/util-defaults-mode-node": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-3.0.4.tgz", + "integrity": "sha512-CUF6TyxLh3CgBRVYgZNOPDfzHQjeQr0vyALR6/DkQkOm7rNfGEzW1BRFi88C73pndmfvoiIT7ochuT76OPz9Dw==", + "dependencies": { + "@smithy/config-resolver": "^3.0.2", + "@smithy/credential-provider-imds": "^3.1.1", + "@smithy/node-config-provider": "^3.1.1", + "@smithy/property-provider": "^3.1.1", + "@smithy/smithy-client": "^3.1.2", + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@smithy/util-endpoints": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@smithy/util-endpoints/-/util-endpoints-2.0.2.tgz", + "integrity": "sha512-4zFOcBFQvifd2LSD4a1dKvfIWWwh4sWNtS3oZ7mpob/qPPmJseqKB148iT+hWCDsG//TmI+8vjYPgZdvnkYlTg==", + "dependencies": { + "@smithy/node-config-provider": "^3.1.1", + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/util-hex-encoding": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/util-hex-encoding/-/util-hex-encoding-3.0.0.tgz", + "integrity": "sha512-eFndh1WEK5YMUYvy3lPlVmYY/fZcQE1D8oSf41Id2vCeIkKJXPcYDCZD+4+xViI6b1XSd7tE+s5AmXzz5ilabQ==", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/util-middleware": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@smithy/util-middleware/-/util-middleware-3.0.1.tgz", + "integrity": "sha512-WRODCQtUsO7vIvfrdxS8RFPeLKcewYtaCglZsBsedIKSUGIIvMlZT5oh+pCe72I+1L+OjnZuqRNpN2LKhWA4KQ==", + "dependencies": { + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/util-retry": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@smithy/util-retry/-/util-retry-3.0.1.tgz", + "integrity": "sha512-5lRtYm+8fNFEUTdqZXg5M4ppVp40rMIJfR1TpbHAhKQgPIDpWT+iYMaqgnwEbtpi9U1smyUOPv5Sg+M1neOBgw==", + "dependencies": { + "@smithy/service-error-classification": "^3.0.1", + "@smithy/types": "^3.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/util-stream": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-3.0.2.tgz", + "integrity": "sha512-n5Obp5AnlI6qHo8sbupwrcpBe6vFp4qkl0SRNuExKPNrH3ABAMG2ZszRTIUIv2b4AsFrCO+qiy4uH1Q3z1dxTA==", + "dependencies": { + "@smithy/fetch-http-handler": "^3.0.2", + "@smithy/node-http-handler": "^3.0.1", + "@smithy/types": "^3.1.0", + "@smithy/util-base64": "^3.0.0", + "@smithy/util-buffer-from": "^3.0.0", + "@smithy/util-hex-encoding": "^3.0.0", + "@smithy/util-utf8": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/util-uri-escape": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/util-uri-escape/-/util-uri-escape-3.0.0.tgz", + "integrity": "sha512-LqR7qYLgZTD7nWLBecUi4aqolw8Mhza9ArpNEQ881MJJIU2sE5iHCK6TdyqqzcDLy0OPe10IY4T8ctVdtynubg==", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@smithy/util-utf8": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-3.0.0.tgz", + "integrity": "sha512-rUeT12bxFnplYDe815GXbq/oixEGHfRFFtcTF3YdDi/JaENIM6aSYYLJydG83UNzLXeRI5K8abYd/8Sp/QM0kA==", + "dependencies": { + "@smithy/util-buffer-from": "^3.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@socket.io/component-emitter": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz", + "integrity": "sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==" + }, + "node_modules/@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "optional": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", + "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.5.tgz", + "integrity": "sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.20.7" + } + }, + "node_modules/@types/command-line-args": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@types/command-line-args/-/command-line-args-5.2.0.tgz", + "integrity": "sha512-UuKzKpJJ/Ief6ufIaIzr3A/0XnluX7RvFgwkV89Yzvm77wCh1kFaFmqN8XEnGcN62EuHdedQjEMb8mYxFLGPyA==", + "peer": true + }, + "node_modules/@types/command-line-usage": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@types/command-line-usage/-/command-line-usage-5.0.2.tgz", + "integrity": "sha512-n7RlEEJ+4x4TS7ZQddTmNSxP+zziEG0TNsMfiRIxcIVXt71ENJ9ojeXmGO3wPoTdn7pJcU2xc3CJYMktNT6DPg==", + "peer": true + }, + "node_modules/@types/follow-redirects": { + "version": "1.14.4", + "resolved": "https://registry.npmjs.org/@types/follow-redirects/-/follow-redirects-1.14.4.tgz", + "integrity": "sha512-GWXfsD0Jc1RWiFmMuMFCpXMzi9L7oPDVwxUnZdg89kDNnqsRfUKXEtUYtA98A6lig1WXH/CYY/fvPW9HuN5fTA==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/graceful-fs": { + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", + "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", + "dev": true + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/jest": { + "version": "29.5.12", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.12.tgz", + "integrity": "sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw==", + "dev": true, + "dependencies": { + "expect": "^29.0.0", + "pretty-format": "^29.0.0" + } + }, + "node_modules/@types/jquery": { + "version": "3.5.30", + "resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-3.5.30.tgz", + "integrity": "sha512-nbWKkkyb919DOUxjmRVk8vwtDb0/k8FKncmUKFi+NY+QXqWltooxTrswvz4LspQwxvLdvzBN1TImr6cw3aQx2A==", + "dev": true, + "dependencies": { + "@types/sizzle": "*" + } + }, + "node_modules/@types/jsdom": { + "version": "21.1.6", + "resolved": "https://registry.npmjs.org/@types/jsdom/-/jsdom-21.1.6.tgz", + "integrity": "sha512-/7kkMsC+/kMs7gAYmmBR9P0vGTnOoLhQhyhQJSlXGI5bzTHp6xdo0TtKWQAsz6pmSAeVqKSbqeyP6hytqr9FDw==", + "dependencies": { + "@types/node": "*", + "@types/tough-cookie": "*", + "parse5": "^7.0.0" + } + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==" + }, + "node_modules/@types/long": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", + "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==" + }, + "node_modules/@types/mozilla-readability": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@types/mozilla-readability/-/mozilla-readability-0.2.1.tgz", + "integrity": "sha512-RjLpe3MIpj53L+q50DTNlhv6KjHjgajFQwAF4KuxVZTa2+6Cs2UNAxS5awxABfZEHRYjGKeRDB21Zrtnsi911w==" + }, + "node_modules/@types/mustache": { + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/@types/mustache/-/mustache-4.2.5.tgz", + "integrity": "sha512-PLwiVvTBg59tGFL/8VpcGvqOu3L4OuveNvPi0EYbWchRdEVP++yRUXJPFl+CApKEq13017/4Nf7aQ5lTtHUNsA==", + "dev": true + }, + "node_modules/@types/node": { + "version": "20.3.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.3.0.tgz", + "integrity": "sha512-cumHmIAf6On83X7yP+LrsEyUOf/YlociZelmpRYaGFydoaPdxdt80MAbu6vWerQT2COCp2nPvHdsbD7tHn/YlQ==" + }, + "node_modules/@types/node-fetch": { + "version": "2.6.11", + "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.11.tgz", + "integrity": "sha512-24xFj9R5+rfQJLRyM56qh+wnVSYhyXC2tkoBndtY0U+vubqNsYXGjufB2nn8Q6gt0LrARwL6UBtMCSVCwl4B1g==", + "dependencies": { + "@types/node": "*", + "form-data": "^4.0.0" + } + }, + "node_modules/@types/pad-left": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@types/pad-left/-/pad-left-2.1.1.tgz", + "integrity": "sha512-Xd22WCRBydkGSApl5Bw0PhAOHKSVjNL3E3AwzKaps96IMraPqy5BvZIsBVK6JLwdybUzjHnuWVwpDd0JjTfHXA==", + "peer": true + }, + "node_modules/@types/sizzle": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.8.tgz", + "integrity": "sha512-0vWLNK2D5MT9dg0iOo8GlKguPAU02QjmZitPEsXRuJXU/OGIOt9vT9Fc26wtYuavLxtO45v9PGleoL9Z0k1LHg==", + "dev": true + }, + "node_modules/@types/stack-utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", + "dev": true + }, + "node_modules/@types/tough-cookie": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.5.tgz", + "integrity": "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==" + }, + "node_modules/@types/uuid": { + "version": "9.0.8", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-9.0.8.tgz", + "integrity": "sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==", + "dev": true + }, + "node_modules/@types/yargs": { + "version": "17.0.32", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz", + "integrity": "sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==", + "dev": true, + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.3", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==", + "dev": true + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "7.10.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.10.0.tgz", + "integrity": "sha512-PzCr+a/KAef5ZawX7nbyNwBDtM1HdLIT53aSA2DDlxmxMngZ43O8SIePOeX8H5S+FHXeI6t97mTt/dDdzY4Fyw==", + "dependencies": { + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "7.10.0", + "@typescript-eslint/type-utils": "7.10.0", + "@typescript-eslint/utils": "7.10.0", + "@typescript-eslint/visitor-keys": "7.10.0", + "graphemer": "^1.4.0", + "ignore": "^5.3.1", + "natural-compare": "^1.4.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^7.0.0", + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "7.10.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.10.0.tgz", + "integrity": "sha512-2EjZMA0LUW5V5tGQiaa2Gys+nKdfrn2xiTIBLR4fxmPmVSvgPcKNW+AE/ln9k0A4zDUti0J/GZXMDupQoI+e1w==", + "dependencies": { + "@typescript-eslint/scope-manager": "7.10.0", + "@typescript-eslint/types": "7.10.0", + "@typescript-eslint/typescript-estree": "7.10.0", + "@typescript-eslint/visitor-keys": "7.10.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "7.10.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.10.0.tgz", + "integrity": "sha512-7L01/K8W/VGl7noe2mgH0K7BE29Sq6KAbVmxurj8GGaPDZXPr8EEQ2seOeAS+mEV9DnzxBQB6ax6qQQ5C6P4xg==", + "dependencies": { + "@typescript-eslint/types": "7.10.0", + "@typescript-eslint/visitor-keys": "7.10.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "7.10.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.10.0.tgz", + "integrity": "sha512-D7tS4WDkJWrVkuzgm90qYw9RdgBcrWmbbRkrLA4d7Pg3w0ttVGDsvYGV19SH8gPR5L7OtcN5J1hTtyenO9xE9g==", + "dependencies": { + "@typescript-eslint/typescript-estree": "7.10.0", + "@typescript-eslint/utils": "7.10.0", + "debug": "^4.3.4", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "7.10.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.10.0.tgz", + "integrity": "sha512-7fNj+Ya35aNyhuqrA1E/VayQX9Elwr8NKZ4WueClR3KwJ7Xx9jcCdOrLW04h51de/+gNbyFMs+IDxh5xIwfbNg==", + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "7.10.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.10.0.tgz", + "integrity": "sha512-LXFnQJjL9XIcxeVfqmNj60YhatpRLt6UhdlFwAkjNc6jSUlK8zQOl1oktAP8PlWFzPQC1jny/8Bai3/HPuvN5g==", + "dependencies": { + "@typescript-eslint/types": "7.10.0", + "@typescript-eslint/visitor-keys": "7.10.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "7.10.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.10.0.tgz", + "integrity": "sha512-olzif1Fuo8R8m/qKkzJqT7qwy16CzPRWBvERS0uvyc+DHd8AKbO4Jb7kpAvVzMmZm8TrHnI7hvjN4I05zow+tg==", + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@typescript-eslint/scope-manager": "7.10.0", + "@typescript-eslint/types": "7.10.0", + "@typescript-eslint/typescript-estree": "7.10.0" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.56.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "7.10.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.10.0.tgz", + "integrity": "sha512-9ntIVgsi6gg6FIq9xjEO4VQJvwOqA3jaBFQJ/6TK5AvEup2+cECI6Fh7QiBxmfMHXU0V0J4RyPeOU1VDNzl9cg==", + "dependencies": { + "@typescript-eslint/types": "7.10.0", + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==" + }, + "node_modules/@xenova/transformers": { + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/@xenova/transformers/-/transformers-2.14.0.tgz", + "integrity": "sha512-rQ3O7SW5EM64b6XFZGx3XQ2cfiroefxUwU9ShfSpEZyhd082GvwNJJKndxgaukse1hZP1JUDoT0DfjDiq4IZiw==", + "dependencies": { + "@huggingface/jinja": "^0.1.0", + "onnxruntime-web": "1.14.0", + "sharp": "^0.32.0" + }, + "optionalDependencies": { + "onnxruntime-node": "1.14.0" + } + }, + "node_modules/@yomguithereal/helpers": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@yomguithereal/helpers/-/helpers-1.1.1.tgz", + "integrity": "sha512-UYvAq/XCA7xoh1juWDYsq3W0WywOB+pz8cgVnE1b45ZfdMhBvHDrgmSFG3jXeZSr2tMTYLGHFHON+ekG05Jebg==" + }, + "node_modules/abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "optional": true + }, + "node_modules/abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "dependencies": { + "event-target-shim": "^5.0.0" + }, + "engines": { + "node": ">=6.5" + } + }, + "node_modules/acorn": { + "version": "8.11.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/adf-to-md": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/adf-to-md/-/adf-to-md-1.1.0.tgz", + "integrity": "sha512-iYY6SNkgnfeRq7/7Qazy9Lq00X6DJmnEwfTWFIpSGLJ929Q26Zo/lHN0AVa5yLQT6pXTtKIWvRgKur/xSibJ0g==", + "dependencies": { + "eslint-config-nodebb": "0.1.1" + } + }, + "node_modules/agent-base": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", + "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", + "dependencies": { + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/agentkeepalive": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.5.0.tgz", + "integrity": "sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==", + "dependencies": { + "humanize-ms": "^1.2.1" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "optional": true, + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-escapes/node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/apache-arrow": { + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/apache-arrow/-/apache-arrow-14.0.2.tgz", + "integrity": "sha512-EBO2xJN36/XoY81nhLcwCJgFwkboDZeyNQ+OPsG7bCoQjc2BT0aTyH/MR6SrL+LirSNz+cYqjGRlupMMlP1aEg==", + "peer": true, + "dependencies": { + "@types/command-line-args": "5.2.0", + "@types/command-line-usage": "5.0.2", + "@types/node": "20.3.0", + "@types/pad-left": "2.1.1", + "command-line-args": "5.2.1", + "command-line-usage": "7.0.1", + "flatbuffers": "23.5.26", + "json-bignum": "^0.0.3", + "pad-left": "^2.1.0", + "tslib": "^2.5.3" + }, + "bin": { + "arrow2csv": "bin/arrow2csv.js" + } + }, + "node_modules/aproba": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", + "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", + "optional": true + }, + "node_modules/are-we-there-yet": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", + "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", + "deprecated": "This package is no longer supported.", + "optional": true, + "dependencies": { + "delegates": "^1.0.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/are-we-there-yet/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "optional": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "node_modules/array-back": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", + "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", + "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", + "dependencies": { + "call-bind": "^1.0.5", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-includes": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", + "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.4", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-timsort": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-timsort/-/array-timsort-1.0.3.tgz", + "integrity": "sha512-/+3GRL7dDAGEfM6TseQk/U+mi18TU2Ms9I3UlLdUMhz2hbvGNTKdj9xniwXfUqgYhHxRx0+8UnKkvlNwVU+cWQ==" + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/array.prototype.findlastindex": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz", + "integrity": "sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", + "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", + "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", + "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.2.1", + "get-intrinsic": "^1.2.3", + "is-array-buffer": "^3.0.4", + "is-shared-array-buffer": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/asn1": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", + "dependencies": { + "safer-buffer": "~2.1.0" + } + }, + "node_modules/assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/async-mutex": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/async-mutex/-/async-mutex-0.5.0.tgz", + "integrity": "sha512-1A94B18jkJ3DYq284ohPxoXbfTA5HsQ7/Mf4DEhcyLx3Bz27Rh59iScbB6EPiP+B+joue6YCxcMXSbFC1tZKwA==", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", + "engines": { + "node": "*" + } + }, + "node_modules/aws4": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.13.0.tgz", + "integrity": "sha512-3AungXC4I8kKsS9PuS4JH2nc+0bVY/mjgrephHTIi8fpEeGsTHBUJeosp0Wc1myYMElmD0B3Oc4XL/HVJ4PV2g==" + }, + "node_modules/axios": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.1.tgz", + "integrity": "sha512-+LV37nQcd1EpFalkXksWNBiA17NZ5m5/WspmHGmZmdx1qBOg/VNq/c4eRJiA9VQQHBOs+N0ZhhdU10h2TyNK7Q==", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/b4a": { + "version": "1.6.6", + "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.6.tgz", + "integrity": "sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg==" + }, + "node_modules/babel-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", + "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", + "dev": true, + "dependencies": { + "@jest/transform": "^29.7.0", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^29.6.3", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" + } + }, + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "dev": true, + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-istanbul/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/babel-plugin-jest-hoist": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", + "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", + "dev": true, + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.11", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.11.tgz", + "integrity": "sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.6.2", + "semver": "^6.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.4.tgz", + "integrity": "sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.1", + "core-js-compat": "^3.36.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.2.tgz", + "integrity": "sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "dev": true, + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/babel-preset-jest": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", + "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", + "dev": true, + "dependencies": { + "babel-plugin-jest-hoist": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/bare-events": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.2.2.tgz", + "integrity": "sha512-h7z00dWdG0PYOQEvChhOSWvOfkIKsdZGkWr083FgN/HyoQuebSew/cgirYqh9SCuy/hRvxc5Vy6Fw8xAmYHLkQ==", + "optional": true + }, + "node_modules/bare-fs": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-2.3.0.tgz", + "integrity": "sha512-TNFqa1B4N99pds2a5NYHR15o0ZpdNKbAeKTE/+G6ED/UeOavv8RY3dr/Fu99HW3zU3pXpo2kDNO8Sjsm2esfOw==", + "optional": true, + "dependencies": { + "bare-events": "^2.0.0", + "bare-path": "^2.0.0", + "bare-stream": "^1.0.0" + } + }, + "node_modules/bare-os": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-2.3.0.tgz", + "integrity": "sha512-oPb8oMM1xZbhRQBngTgpcQ5gXw6kjOaRsSWsIeNyRxGed2w/ARyP7ScBYpWR1qfX2E5rS3gBw6OWcSQo+s+kUg==", + "optional": true + }, + "node_modules/bare-path": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/bare-path/-/bare-path-2.1.2.tgz", + "integrity": "sha512-o7KSt4prEphWUHa3QUwCxUI00R86VdjiuxmJK0iNVDHYPGo+HsDaVCnqCmPbf/MiW1ok8F4p3m8RTHlWk8K2ig==", + "optional": true, + "dependencies": { + "bare-os": "^2.1.0" + } + }, + "node_modules/bare-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/bare-stream/-/bare-stream-1.0.0.tgz", + "integrity": "sha512-KhNUoDL40iP4gFaLSsoGE479t0jHijfYdIcxRn/XtezA2BaUD0NRf/JGRpsMq6dMNM+SrCrB0YSSo/5wBY4rOQ==", + "optional": true, + "dependencies": { + "streamx": "^2.16.1" + } + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", + "dependencies": { + "tweetnacl": "^0.14.3" + } + }, + "node_modules/before-after-hook": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.3.tgz", + "integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==" + }, + "node_modules/bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "dependencies": { + "file-uri-to-path": "1.0.0" + } + }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/bl/node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/bl/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" + }, + "node_modules/bowser": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/bowser/-/bowser-2.11.0.tgz", + "integrity": "sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==" + }, + "node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", + "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001587", + "electron-to-chromium": "^1.4.668", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.13" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bs-logger": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", + "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", + "dev": true, + "dependencies": { + "fast-json-stable-stringify": "2.x" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dev": true, + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "optional": true, + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "node_modules/cacache": { + "version": "15.3.0", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", + "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", + "optional": true, + "dependencies": { + "@npmcli/fs": "^1.0.0", + "@npmcli/move-file": "^1.0.1", + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "glob": "^7.1.4", + "infer-owner": "^1.0.4", + "lru-cache": "^6.0.0", + "minipass": "^3.1.1", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "mkdirp": "^1.0.3", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^8.0.1", + "tar": "^6.0.2", + "unique-filename": "^1.1.1" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/cacache/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "optional": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cacache/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "optional": true + }, + "node_modules/call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001620", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001620.tgz", + "integrity": "sha512-WJvYsOjd1/BYUY6SNGUosK9DUidBPDTnOARHp3fSmFO1ekdxaY6nKRttEVrfMmYi80ctS0kz1wiWmm14fVc3ew==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==" + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chalk-template": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/chalk-template/-/chalk-template-0.4.0.tgz", + "integrity": "sha512-/ghrgmhfY8RaSdeo43hNXxpoHAtxdbskUHjPpfqUWGttFgycUhYPGx3YZBCnUCvOa7Doivn1IZec3DEGFoMgLg==", + "peer": true, + "dependencies": { + "chalk": "^4.1.2" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/chalk-template?sponsor=1" + } + }, + "node_modules/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/cheerio": { + "version": "1.0.0-rc.12", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz", + "integrity": "sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==", + "dependencies": { + "cheerio-select": "^2.1.0", + "dom-serializer": "^2.0.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "htmlparser2": "^8.0.1", + "parse5": "^7.0.0", + "parse5-htmlparser2-tree-adapter": "^7.0.0" + }, + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/cheeriojs/cheerio?sponsor=1" + } + }, + "node_modules/cheerio-select": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz", + "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==", + "dependencies": { + "boolbase": "^1.0.0", + "css-select": "^5.1.0", + "css-what": "^6.1.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "engines": { + "node": ">=10" + } + }, + "node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "engines": { + "node": ">=8" + } + }, + "node_modules/cjs-module-lexer": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.3.1.tgz", + "integrity": "sha512-a3KdPAANPbNE4ZUv9h6LckSl9zLsYOP4MBmhIPkRaeyybt+r4UghLvq+xw/YwUcC1gqylCkL4rdVs3Lwupjm4Q==", + "dev": true + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "optional": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, "engines": { "node": ">=12" + } + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true, + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/collect-v8-coverage": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", + "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", + "dev": true + }, + "node_modules/color": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", + "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", + "dependencies": { + "color-convert": "^2.0.1", + "color-string": "^1.9.0" + }, + "engines": { + "node": ">=12.5.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/color-string": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", + "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", + "dependencies": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "node_modules/color-support": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", + "optional": true, + "bin": { + "color-support": "bin.js" + } + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/command-line-args": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz", + "integrity": "sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==", + "peer": true, + "dependencies": { + "array-back": "^3.1.0", + "find-replace": "^3.0.0", + "lodash.camelcase": "^4.3.0", + "typical": "^4.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/command-line-usage": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-7.0.1.tgz", + "integrity": "sha512-NCyznE//MuTjwi3y84QVUGEOT+P5oto1e1Pk/jFPVdPPfsG03qpTIl3yw6etR+v73d0lXsoojRpvbru2sqePxQ==", + "peer": true, + "dependencies": { + "array-back": "^6.2.2", + "chalk-template": "^0.4.0", + "table-layout": "^3.0.0", + "typical": "^7.1.1" }, - "funding": { - "url": "https://dotenvx.com" + "engines": { + "node": ">=12.20.0" } }, - "node_modules/ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", + "node_modules/command-line-usage/node_modules/array-back": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-6.2.2.tgz", + "integrity": "sha512-gUAZ7HPyb4SJczXAMUXMGAvI976JoK3qEx9v1FTmeYuJj0IBiaKttG1ydtGKdkfqWkIkouke7nG8ufGy77+Cvw==", + "peer": true, + "engines": { + "node": ">=12.17" + } + }, + "node_modules/command-line-usage/node_modules/typical": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/typical/-/typical-7.1.1.tgz", + "integrity": "sha512-T+tKVNs6Wu7IWiAce5BgMd7OZfNYUndHwc5MknN+UHOudi7sGZzuHdCadllRuqJ3fPtgFtIH9+lt9qRv6lmpfA==", + "peer": true, + "engines": { + "node": ">=12.17" + } + }, + "node_modules/commander": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", + "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", + "engines": { + "node": ">=18" + } + }, + "node_modules/comment-json": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/comment-json/-/comment-json-4.2.3.tgz", + "integrity": "sha512-SsxdiOf064DWoZLH799Ata6u7iV658A11PlWtZATDlXPpKGJnbJZ5Z24ybixAi+LUUqJ/GKowAejtC5GFUG7Tw==", "dependencies": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" + "array-timsort": "^1.0.3", + "core-util-is": "^1.0.3", + "esprima": "^4.0.1", + "has-own-prop": "^2.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">= 6" } }, - "node_modules/ecc-jsbn/node_modules/jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==" + "node_modules/comment-json/node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" }, - "node_modules/electron-to-chromium": { - "version": "1.4.705", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.705.tgz", - "integrity": "sha512-LKqhpwJCLhYId2VVwEzFXWrqQI5n5zBppz1W9ehhTlfYU8CUUW6kClbN8LHF/v7flMgRdETS772nqywJ+ckVAw==", + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "node_modules/confusing-browser-globals": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", + "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==" + }, + "node_modules/console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", + "optional": true + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", "dev": true }, - "node_modules/emittery": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", - "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", + "node_modules/core-js-compat": { + "version": "3.37.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.37.1.tgz", + "integrity": "sha512-9TNiImhKvQqSUkOvk/mMRZzOANTiEVC7WaBNhHcKM7x+/5E1l5NvsysR19zuDQScE8k+kfQXWRN3AtS/eOSHpg==", "dev": true, - "engines": { - "node": ">=12" + "dependencies": { + "browserslist": "^4.23.0" }, "funding": { - "url": "https://github.com/sindresorhus/emittery?sponsor=1" + "type": "opencollective", + "url": "https://opencollective.com/core-js" } }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "devOptional": true + "node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==" }, - "node_modules/encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "optional": true, + "node_modules/create-jest": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", + "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", + "dev": true, "dependencies": { - "iconv-lite": "^0.6.2" + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "prompts": "^2.0.1" + }, + "bin": { + "create-jest": "bin/create-jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dependencies": { - "once": "^1.4.0" + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" } }, - "node_modules/engine.io-client": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.5.3.tgz", - "integrity": "sha512-9Z0qLB0NIisTRt1DZ/8U2k12RJn8yls/nXMZLn+/N8hANT3TcYjKFKcwbw5zFQiN4NTde3TSY9zb79e1ij6j9Q==", + "node_modules/css-select": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", + "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", "dependencies": { - "@socket.io/component-emitter": "~3.1.0", - "debug": "~4.3.1", - "engine.io-parser": "~5.2.1", - "ws": "~8.11.0", - "xmlhttprequest-ssl": "~2.0.0" + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" } }, - "node_modules/engine.io-client/node_modules/ws": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", - "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" + "node": ">= 6" }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/fb55" } }, - "node_modules/engine.io-parser": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.2.tgz", - "integrity": "sha512-RcyUFKA93/CXH20l4SoVvzZfrSDMOTUS3bWVpTt2FuFP+XYrL8i8oonHP7WInRyVHXh0n/ORtoeiE1os+8qkSw==", + "node_modules/cssstyle": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-4.0.1.tgz", + "integrity": "sha512-8ZYiJ3A/3OkDd093CBT/0UKDWry7ak4BdPTFP2+QEP7cmhouyq/Up709ASSj2cK02BbZiMgk7kYjZNS4QP5qrQ==", + "dependencies": { + "rrweb-cssom": "^0.6.0" + }, "engines": { - "node": ">=10.0.0" + "node": ">=18" } }, - "node_modules/entities": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", - "engines": { - "node": ">=0.12" + "node_modules/dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", + "dependencies": { + "assert-plus": "^1.0.0" }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/env-paths": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", - "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", - "optional": true, "engines": { - "node": ">=6" + "node": ">=0.10" } }, - "node_modules/err-code": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", - "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", - "optional": true - }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "dependencies": { - "is-arrayish": "^0.2.1" + "node_modules/data-uri-to-buffer": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", + "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", + "engines": { + "node": ">= 12" } }, - "node_modules/es-abstract": { - "version": "1.22.5", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.5.tgz", - "integrity": "sha512-oW69R+4q2wG+Hc3KZePPZxOiisRIqfKBVo/HLx94QcJeWGU/8sZhCvc829rd1kS366vlJbzBfXf9yWwf0+Ko7w==", - "dependencies": { - "array-buffer-byte-length": "^1.0.1", - "arraybuffer.prototype.slice": "^1.0.3", - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "es-set-tostringtag": "^2.0.3", - "es-to-primitive": "^1.2.1", - "function.prototype.name": "^1.1.6", - "get-intrinsic": "^1.2.4", - "get-symbol-description": "^1.0.2", - "globalthis": "^1.0.3", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2", - "has-proto": "^1.0.3", - "has-symbols": "^1.0.3", - "hasown": "^2.0.1", - "internal-slot": "^1.0.7", - "is-array-buffer": "^3.0.4", - "is-callable": "^1.2.7", - "is-negative-zero": "^2.0.3", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.3", - "is-string": "^1.0.7", - "is-typed-array": "^1.1.13", - "is-weakref": "^1.0.2", - "object-inspect": "^1.13.1", - "object-keys": "^1.1.1", - "object.assign": "^4.1.5", - "regexp.prototype.flags": "^1.5.2", - "safe-array-concat": "^1.1.0", - "safe-regex-test": "^1.0.3", - "string.prototype.trim": "^1.2.8", - "string.prototype.trimend": "^1.0.7", - "string.prototype.trimstart": "^1.0.7", - "typed-array-buffer": "^1.0.2", - "typed-array-byte-length": "^1.0.1", - "typed-array-byte-offset": "^1.0.2", - "typed-array-length": "^1.0.5", - "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.14" + "node_modules/data-urls": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-5.0.0.tgz", + "integrity": "sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==", + "dependencies": { + "whatwg-mimetype": "^4.0.0", + "whatwg-url": "^14.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/data-view-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", + "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" }, "engines": { "node": ">= 0.4" @@ -4042,1477 +7586,1538 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/es-array-method-boxes-properly": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", - "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==", - "peer": true - }, - "node_modules/es-define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", - "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "node_modules/data-view-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", + "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", "dependencies": { - "get-intrinsic": "^1.2.4" + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" }, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/es-errors": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "node_modules/data-view-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", + "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/es-set-tostringtag": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", - "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", + "node_modules/dbinfoz": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/dbinfoz/-/dbinfoz-0.1.4.tgz", + "integrity": "sha512-MB56+xS571ip7qoXqxdnOUtXebbWaqoZN+S++W51SQYJRSjQFGEIPucNmxgeQlBGJ1vM4mQNV47wzV6fcrezZg==", "dependencies": { - "get-intrinsic": "^1.2.4", - "has-tostringtag": "^1.0.2", - "hasown": "^2.0.1" - }, - "engines": { - "node": ">= 0.4" + "mysql2": "^3.9.1", + "pg": "^8.11.3", + "sqlite3": "^5.1.7" } }, - "node_modules/es-shim-unscopables": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", - "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", - "peer": true, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dependencies": { - "hasown": "^2.0.0" + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "node_modules/decimal.js": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", + "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==" + }, + "node_modules/decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" + "mimic-response": "^3.1.0" }, "engines": { - "node": ">= 0.4" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/esbuild": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.12.tgz", - "integrity": "sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==", + "node_modules/dedent": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.3.tgz", + "integrity": "sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==", "dev": true, - "hasInstallScript": true, - "bin": { - "esbuild": "bin/esbuild" + "peerDependencies": { + "babel-plugin-macros": "^3.1.0" }, + "peerDependenciesMeta": { + "babel-plugin-macros": { + "optional": true + } + } + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.19.12", - "@esbuild/android-arm": "0.19.12", - "@esbuild/android-arm64": "0.19.12", - "@esbuild/android-x64": "0.19.12", - "@esbuild/darwin-arm64": "0.19.12", - "@esbuild/darwin-x64": "0.19.12", - "@esbuild/freebsd-arm64": "0.19.12", - "@esbuild/freebsd-x64": "0.19.12", - "@esbuild/linux-arm": "0.19.12", - "@esbuild/linux-arm64": "0.19.12", - "@esbuild/linux-ia32": "0.19.12", - "@esbuild/linux-loong64": "0.19.12", - "@esbuild/linux-mips64el": "0.19.12", - "@esbuild/linux-ppc64": "0.19.12", - "@esbuild/linux-riscv64": "0.19.12", - "@esbuild/linux-s390x": "0.19.12", - "@esbuild/linux-x64": "0.19.12", - "@esbuild/netbsd-x64": "0.19.12", - "@esbuild/openbsd-x64": "0.19.12", - "@esbuild/sunos-x64": "0.19.12", - "@esbuild/win32-arm64": "0.19.12", - "@esbuild/win32-ia32": "0.19.12", - "@esbuild/win32-x64": "0.19.12" + "node": ">=4.0.0" } }, - "node_modules/escalade": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", - "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", "dev": true, "engines": { - "node": ">=6" + "node": ">=0.10.0" } }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "peer": true, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, "engines": { - "node": ">=10" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/eslint": { - "version": "8.57.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", - "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", - "peer": true, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.57.0", - "@humanwhocodes/config-array": "^0.11.14", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "@ungap/structured-clone": "^1.2.0", - "ajv": "^6.12.4", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.3", - "espree": "^9.6.1", - "esquery": "^1.4.2", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" - }, - "bin": { - "eslint": "bin/eslint.js" + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">= 0.4" }, "funding": { - "url": "https://opencollective.com/eslint" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/eslint-config-airbnb-base": { - "version": "15.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz", - "integrity": "sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==", - "dependencies": { - "confusing-browser-globals": "^1.0.10", - "object.assign": "^4.1.2", - "object.entries": "^1.1.5", - "semver": "^6.3.0" - }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", "engines": { - "node": "^10.12.0 || >=12.0.0" - }, - "peerDependencies": { - "eslint": "^7.32.0 || ^8.2.0", - "eslint-plugin-import": "^2.25.2" + "node": ">=0.4.0" } }, - "node_modules/eslint-config-nodebb": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/eslint-config-nodebb/-/eslint-config-nodebb-0.1.1.tgz", - "integrity": "sha512-+LSX8iYe10fKb6k4JuyMygce7GQMSMsttdgi+BO+v+P3tXXxH//OUnEfZ2cbTungZap9Z8NuK6Tog1wrRQo6CQ==", - "dependencies": { - "eslint-config-airbnb-base": "15.0.0" - }, - "peerDependencies": { - "eslint": "7.x || 8.x", - "eslint-plugin-import": "2.x" + "node_modules/delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", + "optional": true + }, + "node_modules/denque": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz", + "integrity": "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==", + "engines": { + "node": ">=0.10" } }, - "node_modules/eslint-import-resolver-node": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", - "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", - "peer": true, - "dependencies": { - "debug": "^3.2.7", - "is-core-module": "^2.13.0", - "resolve": "^1.22.4" + "node_modules/deprecation": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", + "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==" + }, + "node_modules/detect-libc": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", + "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==", + "engines": { + "node": ">=8" } }, - "node_modules/eslint-import-resolver-node/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "peer": true, - "dependencies": { - "ms": "^2.1.1" + "node_modules/detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "dev": true, + "engines": { + "node": ">=8" } }, - "node_modules/eslint-module-utils": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.1.tgz", - "integrity": "sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==", - "peer": true, - "dependencies": { - "debug": "^3.2.7" - }, + "node_modules/diff-sequences": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "dev": true, "engines": { - "node": ">=4" - }, - "peerDependenciesMeta": { - "eslint": { - "optional": true - } + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/eslint-module-utils/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "peer": true, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", "dependencies": { - "ms": "^2.1.1" + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/eslint-plugin-import": { - "version": "2.29.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz", - "integrity": "sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==", - "peer": true, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", "dependencies": { - "array-includes": "^3.1.7", - "array.prototype.findlastindex": "^1.2.3", - "array.prototype.flat": "^1.3.2", - "array.prototype.flatmap": "^1.3.2", - "debug": "^3.2.7", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.9", - "eslint-module-utils": "^2.8.0", - "hasown": "^2.0.0", - "is-core-module": "^2.13.1", - "is-glob": "^4.0.3", - "minimatch": "^3.1.2", - "object.fromentries": "^2.0.7", - "object.groupby": "^1.0.1", - "object.values": "^1.1.7", - "semver": "^6.3.1", - "tsconfig-paths": "^3.15.0" + "esutils": "^2.0.2" }, "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + "node": ">=6.0.0" } }, - "node_modules/eslint-plugin-import/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "peer": true, + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", "dependencies": { - "ms": "^2.1.1" + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" } }, - "node_modules/eslint-plugin-import/node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "peer": true, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", "dependencies": { - "esutils": "^2.0.2" + "domelementtype": "^2.3.0" }, "engines": { - "node": ">=0.10.0" + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" } }, - "node_modules/eslint-scope": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", - "peer": true, + "node_modules/domutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", + "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" }, "funding": { - "url": "https://opencollective.com/eslint" + "url": "https://github.com/fb55/domutils?sponsor=1" } }, - "node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "peer": true, + "node_modules/dotenv": { + "version": "16.4.5", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz", + "integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==", "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=12" }, "funding": { - "url": "https://opencollective.com/eslint" + "url": "https://dotenvx.com" } }, - "node_modules/espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", - "peer": true, + "node_modules/ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", "dependencies": { - "acorn": "^8.9.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" - }, + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/ecc-jsbn/node_modules/jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==" + }, + "node_modules/electron-to-chromium": { + "version": "1.4.776", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.776.tgz", + "integrity": "sha512-s694bi3+gUzlliqxjPHpa9NRTlhzTgB34aan+pVKZmOTGy2xoZXl+8E1B8i5p5rtev3PKMK/H4asgNejC+YHNg==", + "dev": true + }, + "node_modules/emittery": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", + "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", + "dev": true, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=12" }, "funding": { - "url": "https://opencollective.com/eslint" + "url": "https://github.com/sindresorhus/emittery?sponsor=1" } }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "devOptional": true + }, + "node_modules/encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "optional": true, + "dependencies": { + "iconv-lite": "^0.6.2" } }, - "node_modules/esquery": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", - "peer": true, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" + "once": "^1.4.0" } }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "peer": true, + "node_modules/engine.io-client": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.5.3.tgz", + "integrity": "sha512-9Z0qLB0NIisTRt1DZ/8U2k12RJn8yls/nXMZLn+/N8hANT3TcYjKFKcwbw5zFQiN4NTde3TSY9zb79e1ij6j9Q==", "dependencies": { - "estraverse": "^5.2.0" - }, + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.1", + "engine.io-parser": "~5.2.1", + "ws": "~8.11.0", + "xmlhttprequest-ssl": "~2.0.0" + } + }, + "node_modules/engine.io-client/node_modules/ws": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", + "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", "engines": { - "node": ">=4.0" + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } } }, - "node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "peer": true, + "node_modules/engine.io-parser": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.2.tgz", + "integrity": "sha512-RcyUFKA93/CXH20l4SoVvzZfrSDMOTUS3bWVpTt2FuFP+XYrL8i8oonHP7WInRyVHXh0n/ORtoeiE1os+8qkSw==", "engines": { - "node": ">=4.0" + "node": ">=10.0.0" } }, - "node_modules/estree-walker": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", - "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", - "dev": true - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "peer": true, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", "engines": { - "node": ">=0.10.0" + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" } }, - "node_modules/event-target-shim": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", - "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "optional": true, "engines": { "node": ">=6" } }, - "node_modules/events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "engines": { - "node": ">=0.8.x" - } + "node_modules/err-code": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", + "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", + "optional": true }, - "node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "dev": true, "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-abstract": { + "version": "1.23.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", + "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "arraybuffer.prototype.slice": "^1.0.3", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "data-view-buffer": "^1.0.1", + "data-view-byte-length": "^1.0.1", + "data-view-byte-offset": "^1.0.0", + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-set-tostringtag": "^2.0.3", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.4", + "get-symbol-description": "^1.0.2", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", + "has-symbols": "^1.0.3", + "hasown": "^2.0.2", + "internal-slot": "^1.0.7", + "is-array-buffer": "^3.0.4", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.1", + "is-negative-zero": "^2.0.3", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.3", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.13", + "is-weakref": "^1.0.2", + "object-inspect": "^1.13.1", + "object-keys": "^1.1.1", + "object.assign": "^4.1.5", + "regexp.prototype.flags": "^1.5.2", + "safe-array-concat": "^1.1.2", + "safe-regex-test": "^1.0.3", + "string.prototype.trim": "^1.2.9", + "string.prototype.trimend": "^1.0.8", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.2", + "typed-array-byte-length": "^1.0.1", + "typed-array-byte-offset": "^1.0.2", + "typed-array-length": "^1.0.6", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.15" }, "engines": { - "node": ">=10" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", - "dev": true, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dependencies": { + "get-intrinsic": "^1.2.4" + }, "engines": { - "node": ">= 0.8.0" + "node": ">= 0.4" } }, - "node_modules/expand-template": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", - "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==", + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", "engines": { - "node": ">=6" + "node": ">= 0.4" } }, - "node_modules/expect": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", - "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", - "dev": true, + "node_modules/es-object-atoms": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", + "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", "dependencies": { - "@jest/expect-utils": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-matcher-utils": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0" + "es-errors": "^1.3.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "node_modules/extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", - "engines": [ - "node >=0.6.0" - ] - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" - }, - "node_modules/fast-fifo": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", - "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==" - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "peer": true - }, - "node_modules/fastest-levenshtein": { - "version": "1.0.16", - "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", - "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", - "engines": { - "node": ">= 4.9.1" + "node": ">= 0.4" } }, - "node_modules/fastq": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", - "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", - "peer": true, + "node_modules/es-set-tostringtag": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", + "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", "dependencies": { - "reusify": "^1.0.4" + "get-intrinsic": "^1.2.4", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" } }, - "node_modules/fb-watchman": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", - "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", - "dev": true, + "node_modules/es-shim-unscopables": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", + "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", "dependencies": { - "bser": "2.1.1" + "hasown": "^2.0.0" } }, - "node_modules/fetch-blob": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", - "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/jimmywarting" - }, - { - "type": "paypal", - "url": "https://paypal.me/jimmywarting" - } - ], + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", "dependencies": { - "node-domexception": "^1.0.0", - "web-streams-polyfill": "^3.0.3" + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" }, "engines": { - "node": "^12.20 || >= 14.13" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "peer": true, - "dependencies": { - "flat-cache": "^3.0.4" + "node_modules/esbuild": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.19.tgz", + "integrity": "sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.17.19", + "@esbuild/android-arm64": "0.17.19", + "@esbuild/android-x64": "0.17.19", + "@esbuild/darwin-arm64": "0.17.19", + "@esbuild/darwin-x64": "0.17.19", + "@esbuild/freebsd-arm64": "0.17.19", + "@esbuild/freebsd-x64": "0.17.19", + "@esbuild/linux-arm": "0.17.19", + "@esbuild/linux-arm64": "0.17.19", + "@esbuild/linux-ia32": "0.17.19", + "@esbuild/linux-loong64": "0.17.19", + "@esbuild/linux-mips64el": "0.17.19", + "@esbuild/linux-ppc64": "0.17.19", + "@esbuild/linux-riscv64": "0.17.19", + "@esbuild/linux-s390x": "0.17.19", + "@esbuild/linux-x64": "0.17.19", + "@esbuild/netbsd-x64": "0.17.19", + "@esbuild/openbsd-x64": "0.17.19", + "@esbuild/sunos-x64": "0.17.19", + "@esbuild/win32-arm64": "0.17.19", + "@esbuild/win32-ia32": "0.17.19", + "@esbuild/win32-x64": "0.17.19" } }, - "node_modules/file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" - }, - "node_modules/fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "node_modules/escalade": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, "engines": { - "node": ">=8" + "node": ">=6" } }, - "node_modules/find-replace": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz", - "integrity": "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==", - "peer": true, - "dependencies": { - "array-back": "^3.0.1" - }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "engines": { - "node": ">=4.0.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "peer": true, + "node_modules/eslint": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", + "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.0", + "@humanwhocodes/config-array": "^0.11.14", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" }, "engines": { - "node": ">=10" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://opencollective.com/eslint" } }, - "node_modules/flat-cache": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", - "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", - "peer": true, + "node_modules/eslint-config-airbnb-base": { + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz", + "integrity": "sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==", "dependencies": { - "flatted": "^3.2.9", - "keyv": "^4.5.3", - "rimraf": "^3.0.2" + "confusing-browser-globals": "^1.0.10", + "object.assign": "^4.1.2", + "object.entries": "^1.1.5", + "semver": "^6.3.0" }, "engines": { "node": "^10.12.0 || >=12.0.0" + }, + "peerDependencies": { + "eslint": "^7.32.0 || ^8.2.0", + "eslint-plugin-import": "^2.25.2" } }, - "node_modules/flatbuffers": { - "version": "23.5.26", - "resolved": "https://registry.npmjs.org/flatbuffers/-/flatbuffers-23.5.26.tgz", - "integrity": "sha512-vE+SI9vrJDwi1oETtTIFldC/o9GsVKRM+s6EL0nQgxXlYV1Vc4Tk30hj4xGICftInKQKj1F3up2n8UbIVobISQ==", - "peer": true - }, - "node_modules/flatted": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", - "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", - "peer": true + "node_modules/eslint-config-airbnb-base/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } }, - "node_modules/follow-redirects": { - "version": "1.15.5", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.5.tgz", - "integrity": "sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "engines": { - "node": ">=4.0" + "node_modules/eslint-config-nodebb": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/eslint-config-nodebb/-/eslint-config-nodebb-0.1.1.tgz", + "integrity": "sha512-+LSX8iYe10fKb6k4JuyMygce7GQMSMsttdgi+BO+v+P3tXXxH//OUnEfZ2cbTungZap9Z8NuK6Tog1wrRQo6CQ==", + "dependencies": { + "eslint-config-airbnb-base": "15.0.0" }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } + "peerDependencies": { + "eslint": "7.x || 8.x", + "eslint-plugin-import": "2.x" } }, - "node_modules/for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "node_modules/eslint-import-resolver-node": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", + "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", "dependencies": { - "is-callable": "^1.1.3" + "debug": "^3.2.7", + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" } }, - "node_modules/forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", - "engines": { - "node": "*" + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dependencies": { + "ms": "^2.1.1" } }, - "node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "node_modules/eslint-module-utils": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.1.tgz", + "integrity": "sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==", "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" + "debug": "^3.2.7" }, "engines": { - "node": ">= 6" + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } } }, - "node_modules/form-data-encoder": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-1.7.2.tgz", - "integrity": "sha512-qfqtYan3rxrnCk1VYaA4H+Ms9xdpPqvLZa6xmMgFvhO32x7/3J/ExcTd6qpxM0vH2GdMI+poehyBZvqfMTto8A==" - }, - "node_modules/formdata-node": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/formdata-node/-/formdata-node-4.4.1.tgz", - "integrity": "sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ==", + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dependencies": { - "node-domexception": "1.0.0", - "web-streams-polyfill": "4.0.0-beta.3" - }, - "engines": { - "node": ">= 12.20" + "ms": "^2.1.1" } }, - "node_modules/formdata-node/node_modules/web-streams-polyfill": { - "version": "4.0.0-beta.3", - "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-4.0.0-beta.3.tgz", - "integrity": "sha512-QW95TCTaHmsYfHDybGMwO5IJIM93I/6vTRk+daHTWFPhwh+C8Cg7j7XyKrwrj8Ib6vYXe0ocYNrmzY4xAAN6ug==", + "node_modules/eslint-plugin-import": { + "version": "2.29.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz", + "integrity": "sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==", + "dependencies": { + "array-includes": "^3.1.7", + "array.prototype.findlastindex": "^1.2.3", + "array.prototype.flat": "^1.3.2", + "array.prototype.flatmap": "^1.3.2", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.9", + "eslint-module-utils": "^2.8.0", + "hasown": "^2.0.0", + "is-core-module": "^2.13.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.7", + "object.groupby": "^1.0.1", + "object.values": "^1.1.7", + "semver": "^6.3.1", + "tsconfig-paths": "^3.15.0" + }, "engines": { - "node": ">= 14" + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" } }, - "node_modules/formdata-polyfill": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", - "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", + "node_modules/eslint-plugin-import/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dependencies": { - "fetch-blob": "^3.1.2" - }, - "engines": { - "node": ">=12.20.0" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "node_modules/fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dependencies": { + "ms": "^2.1.1" + } }, - "node_modules/fs-minipass": { + "node_modules/eslint-plugin-import/node_modules/doctrine": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "dependencies": { - "minipass": "^3.0.0" + "esutils": "^2.0.2" }, "engines": { - "node": ">= 8" + "node": ">=0.10.0" } }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], + "node_modules/eslint-plugin-import/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + "node": "*" } }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node_modules/eslint-plugin-import/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" } }, - "node_modules/function.prototype.name": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", - "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "functions-have-names": "^1.2.3" + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" }, "engines": { - "node": ">= 0.4" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://opencollective.com/eslint" } }, - "node_modules/functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://opencollective.com/eslint" } }, - "node_modules/gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", - "optional": true, + "node_modules/eslint/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/eslint/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "*" } }, - "node_modules/generate-function": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.3.1.tgz", - "integrity": "sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==", + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", "dependencies": { - "is-property": "^1.0.2" + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, "engines": { - "node": ">=6.9.0" + "node": ">=4" } }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true, + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dependencies": { + "estraverse": "^5.1.0" + }, "engines": { - "node": "6.* || 8.* || >= 10.*" + "node": ">=0.10" } }, - "node_modules/get-intrinsic": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", - "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dependencies": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" + "estraverse": "^5.2.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=4.0" } }, - "node_modules/get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "dev": true, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "engines": { - "node": ">=8.0.0" + "node": ">=4.0" } }, - "node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.10.0" } }, - "node_modules/get-symbol-description": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", - "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", + "node_modules/event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, "dependencies": { - "call-bind": "^1.0.5", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4" + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" }, "engines": { - "node": ">= 0.4" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, - "node_modules/getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", - "dependencies": { - "assert-plus": "^1.0.0" + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "dev": true, + "engines": { + "node": ">= 0.8.0" } }, - "node_modules/github-from-package": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", - "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==" - }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, + "node_modules/expand-template": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", + "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==", "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">=6" } }, - "node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "peer": true, + "node_modules/expect": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", + "dev": true, "dependencies": { - "is-glob": "^4.0.3" + "@jest/expect-utils": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0" }, "engines": { - "node": ">=10.13.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", - "peer": true, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "node_modules/extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", + "engines": [ + "node >=0.6.0" + ] + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "node_modules/fast-fifo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", + "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==" + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", "dependencies": { - "type-fest": "^0.20.2" + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8.6.0" } }, - "node_modules/globalthis": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", - "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dependencies": { - "define-properties": "^1.1.3" + "is-glob": "^4.0.1" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">= 6" } }, - "node_modules/gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==" + }, + "node_modules/fast-xml-parser": { + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.2.5.tgz", + "integrity": "sha512-B9/wizE4WngqQftFPmdaMYlXoJlJOYxGQOanC77fq9k8+Z0v5dDSVh+3glErdIROP//s/jgb7ZuxKfB8nVyo0g==", + "funding": [ + { + "type": "paypal", + "url": "https://paypal.me/naturalintelligence" + }, + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + } + ], "dependencies": { - "get-intrinsic": "^1.1.3" + "strnum": "^1.0.5" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "bin": { + "fxparser": "src/cli/cli.js" } }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "devOptional": true - }, - "node_modules/graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "peer": true + "node_modules/fastest-levenshtein": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", + "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", + "engines": { + "node": ">= 4.9.1" + } }, - "node_modules/graphology": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/graphology/-/graphology-0.25.4.tgz", - "integrity": "sha512-33g0Ol9nkWdD6ulw687viS8YJQBxqG5LWII6FI6nul0pq6iM2t5EKquOTFDbyTblRB3O9I+7KX4xI8u5ffekAQ==", + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", "dependencies": { - "events": "^3.3.0", - "obliterator": "^2.0.2" - }, - "peerDependencies": { - "graphology-types": ">=0.24.0" + "reusify": "^1.0.4" } }, - "node_modules/graphology-indices": { - "version": "0.17.0", - "resolved": "https://registry.npmjs.org/graphology-indices/-/graphology-indices-0.17.0.tgz", - "integrity": "sha512-A7RXuKQvdqSWOpn7ZVQo4S33O0vCfPBnUSf7FwE0zNCasqwZVUaCXePuWo5HBpWw68KJcwObZDHpFk6HKH6MYQ==", + "node_modules/fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "dev": true, "dependencies": { - "graphology-utils": "^2.4.2", - "mnemonist": "^0.39.0" - }, - "peerDependencies": { - "graphology-types": ">=0.20.0" + "bser": "2.1.1" } }, - "node_modules/graphology-metrics": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/graphology-metrics/-/graphology-metrics-2.2.0.tgz", - "integrity": "sha512-eZZFRLGGyyI+iD+XwQvc+lLM3EKCoqUvVjvF/14Htgy4grB2m95OytToYq3saWuHfuf22VVnj9GBHv/pTzKuTw==", + "node_modules/fetch-blob": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", + "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "paypal", + "url": "https://paypal.me/jimmywarting" + } + ], "dependencies": { - "graphology-shortest-path": "^2.0.0", - "graphology-utils": "^2.4.4", - "mnemonist": "^0.39.0" + "node-domexception": "^1.0.0", + "web-streams-polyfill": "^3.0.3" }, - "peerDependencies": { - "graphology-types": ">=0.20.0" + "engines": { + "node": "^12.20 || >= 14.13" } }, - "node_modules/graphology-shortest-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/graphology-shortest-path/-/graphology-shortest-path-2.0.2.tgz", - "integrity": "sha512-hlGvh4Yb1Vmd2J7wT8Q8+t4RQ6Tx+9wRYm0/fZB9PZJ4uW3nml5kJ7yXZ2+JYWT+7wLLmY5mg3o9bLSAWmv/jQ==", + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", "dependencies": { - "@yomguithereal/helpers": "^1.1.1", - "graphology-indices": "^0.17.0", - "graphology-utils": "^2.4.3", - "mnemonist": "^0.39.0" + "flat-cache": "^3.0.4" }, - "peerDependencies": { - "graphology-types": ">=0.20.0" + "engines": { + "node": "^10.12.0 || >=12.0.0" } }, - "node_modules/graphology-types": { - "version": "0.24.7", - "resolved": "https://registry.npmjs.org/graphology-types/-/graphology-types-0.24.7.tgz", - "integrity": "sha512-tdcqOOpwArNjEr0gNQKCXwaNCWnQJrog14nJNQPeemcLnXQUUGrsCWpWkVKt46zLjcS6/KGoayeJfHHyPDlvwA==", - "peer": true + "node_modules/file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" }, - "node_modules/graphology-utils": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/graphology-utils/-/graphology-utils-2.5.2.tgz", - "integrity": "sha512-ckHg8MXrXJkOARk56ZaSCM1g1Wihe2d6iTmz1enGOz4W/l831MBCKSayeFQfowgF8wd+PQ4rlch/56Vs/VZLDQ==", - "peerDependencies": { - "graphology-types": ">=0.23.0" + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" } }, - "node_modules/guid-typescript": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/guid-typescript/-/guid-typescript-1.0.9.tgz", - "integrity": "sha512-Y8T4vYhEfwJOTbouREvG+3XDsjr8E3kIr7uf+JZ0BYloFsttiHU0WfvANVsR7TxNUJa/WpCnw/Ino/p+DeBhBQ==" - }, - "node_modules/handlebars": { - "version": "4.7.8", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", - "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", + "node_modules/find-replace": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz", + "integrity": "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==", + "peer": true, "dependencies": { - "minimist": "^1.2.5", - "neo-async": "^2.6.2", - "source-map": "^0.6.1", - "wordwrap": "^1.0.0" - }, - "bin": { - "handlebars": "bin/handlebars" + "array-back": "^3.0.1" }, "engines": { - "node": ">=0.4.7" - }, - "optionalDependencies": { - "uglify-js": "^3.1.4" + "node": ">=4.0.0" } }, - "node_modules/har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==", + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, "engines": { - "node": ">=4" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "deprecated": "this library is no longer supported", + "node_modules/flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", "dependencies": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" }, "engines": { - "node": ">=6" + "node": "^10.12.0 || >=12.0.0" } }, - "node_modules/has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "node_modules/flatbuffers": { + "version": "23.5.26", + "resolved": "https://registry.npmjs.org/flatbuffers/-/flatbuffers-23.5.26.tgz", + "integrity": "sha512-vE+SI9vrJDwi1oETtTIFldC/o9GsVKRM+s6EL0nQgxXlYV1Vc4Tk30hj4xGICftInKQKj1F3up2n8UbIVobISQ==", + "peer": true }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/flatted": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==" + }, + "node_modules/follow-redirects": { + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], "engines": { - "node": ">=8" + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } } }, - "node_modules/has-property-descriptors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", "dependencies": { - "es-define-property": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "is-callable": "^1.1.3" } }, - "node_modules/has-proto": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", - "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "node_modules/forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": "*" } }, - "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "engines": { - "node": ">= 0.4" + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">= 6" } }, - "node_modules/has-tostringtag": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", - "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "node_modules/form-data-encoder": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-1.7.2.tgz", + "integrity": "sha512-qfqtYan3rxrnCk1VYaA4H+Ms9xdpPqvLZa6xmMgFvhO32x7/3J/ExcTd6qpxM0vH2GdMI+poehyBZvqfMTto8A==" + }, + "node_modules/formdata-node": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/formdata-node/-/formdata-node-4.4.1.tgz", + "integrity": "sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ==", "dependencies": { - "has-symbols": "^1.0.3" + "node-domexception": "1.0.0", + "web-streams-polyfill": "4.0.0-beta.3" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">= 12.20" } }, - "node_modules/has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", - "optional": true + "node_modules/formdata-node/node_modules/web-streams-polyfill": { + "version": "4.0.0-beta.3", + "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-4.0.0-beta.3.tgz", + "integrity": "sha512-QW95TCTaHmsYfHDybGMwO5IJIM93I/6vTRk+daHTWFPhwh+C8Cg7j7XyKrwrj8Ib6vYXe0ocYNrmzY4xAAN6ug==", + "engines": { + "node": ">= 14" + } }, - "node_modules/hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "node_modules/formdata-polyfill": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", + "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", "dependencies": { - "function-bind": "^1.1.2" + "fetch-blob": "^3.1.2" }, "engines": { - "node": ">= 0.4" + "node": ">=12.20.0" } }, - "node_modules/he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "bin": { - "he": "bin/he" - } + "node_modules/fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" }, - "node_modules/html-encoding-sniffer": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-4.0.0.tgz", - "integrity": "sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==", + "node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", "dependencies": { - "whatwg-encoding": "^3.1.1" + "minipass": "^3.0.0" }, "engines": { - "node": ">=18" + "node": ">= 8" } }, - "node_modules/html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" }, - "node_modules/htmlparser2": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz", - "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==", - "funding": [ - "https://github.com/fb55/htmlparser2?sponsor=1", - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" ], - "dependencies": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3", - "domutils": "^3.0.1", - "entities": "^4.4.0" + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, - "node_modules/http-cache-semantics": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", - "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", - "optional": true + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "node_modules/http-proxy-agent": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", - "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", + "node_modules/function.prototype.name": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", "dependencies": { - "agent-base": "^7.1.0", - "debug": "^4.3.4" + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" }, "engines": { - "node": ">= 14" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gauge": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", + "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", + "deprecated": "This package is no longer supported.", + "optional": true, "dependencies": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" + "aproba": "^1.0.3 || ^2.0.0", + "color-support": "^1.1.3", + "console-control-strings": "^1.1.0", + "has-unicode": "^2.0.1", + "signal-exit": "^3.0.7", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wide-align": "^1.1.5" }, "engines": { - "node": ">=0.8", - "npm": ">=1.3.7" + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, - "node_modules/https-proxy-agent": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz", - "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==", + "node_modules/generate-function": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.3.1.tgz", + "integrity": "sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==", "dependencies": { - "agent-base": "^7.0.2", - "debug": "4" - }, - "engines": { - "node": ">= 14" + "is-property": "^1.0.2" } }, - "node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", "dev": true, "engines": { - "node": ">=10.17.0" + "node": ">=6.9.0" } }, - "node_modules/humanize-ms": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", - "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", - "dependencies": { - "ms": "^2.0.0" + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" } }, - "node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/ignore": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", - "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true, "engines": { - "node": ">= 4" + "node": ">=8.0.0" } }, - "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "peer": true, - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, "engines": { - "node": ">=6" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/import-local": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", - "dev": true, + "node_modules/get-symbol-description": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", + "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", "dependencies": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" + "call-bind": "^1.0.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4" }, "engines": { - "node": ">=8" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "engines": { - "node": ">=0.8.19" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "optional": true, - "engines": { - "node": ">=8" + "node_modules/getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", + "dependencies": { + "assert-plus": "^1.0.0" } }, - "node_modules/infer-owner": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", - "optional": true + "node_modules/github-from-package": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", + "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==" }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", "once": "^1.3.0", - "wrappy": "1" + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" - }, - "node_modules/internal-slot": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", - "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dependencies": { - "es-errors": "^1.3.0", - "hasown": "^2.0.0", - "side-channel": "^1.0.4" + "is-glob": "^4.0.3" }, "engines": { - "node": ">= 0.4" + "node": ">=10.13.0" } }, - "node_modules/ip-address": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", - "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==", - "optional": true, + "node_modules/glob/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dependencies": { - "jsbn": "1.1.0", - "sprintf-js": "^1.1.3" - }, - "engines": { - "node": ">= 12" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "node_modules/is-array-buffer": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", - "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", + "node_modules/glob/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1" + "brace-expansion": "^1.1.7" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": "*" } }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true - }, - "node_modules/is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", "dependencies": { - "has-bigints": "^1.0.1" + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" + "define-properties": "^1.2.1", + "gopd": "^1.0.1" }, "engines": { "node": ">= 0.4" @@ -5521,167 +9126,196 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" - }, - "node_modules/is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, "engines": { - "node": ">= 0.4" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-core-module": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", - "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", "dependencies": { - "hasown": "^2.0.0" + "get-intrinsic": "^1.1.3" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==" + }, + "node_modules/graphology": { + "version": "0.25.4", + "resolved": "https://registry.npmjs.org/graphology/-/graphology-0.25.4.tgz", + "integrity": "sha512-33g0Ol9nkWdD6ulw687viS8YJQBxqG5LWII6FI6nul0pq6iM2t5EKquOTFDbyTblRB3O9I+7KX4xI8u5ffekAQ==", "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" + "events": "^3.3.0", + "obliterator": "^2.0.2" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "peerDependencies": { + "graphology-types": ">=0.24.0" } }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "peer": true, - "engines": { - "node": ">=0.10.0" + "node_modules/graphology-indices": { + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/graphology-indices/-/graphology-indices-0.17.0.tgz", + "integrity": "sha512-A7RXuKQvdqSWOpn7ZVQo4S33O0vCfPBnUSf7FwE0zNCasqwZVUaCXePuWo5HBpWw68KJcwObZDHpFk6HKH6MYQ==", + "dependencies": { + "graphology-utils": "^2.4.2", + "mnemonist": "^0.39.0" + }, + "peerDependencies": { + "graphology-types": ">=0.20.0" } }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "devOptional": true, - "engines": { - "node": ">=8" + "node_modules/graphology-metrics": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/graphology-metrics/-/graphology-metrics-2.2.0.tgz", + "integrity": "sha512-eZZFRLGGyyI+iD+XwQvc+lLM3EKCoqUvVjvF/14Htgy4grB2m95OytToYq3saWuHfuf22VVnj9GBHv/pTzKuTw==", + "dependencies": { + "graphology-shortest-path": "^2.0.0", + "graphology-utils": "^2.4.4", + "mnemonist": "^0.39.0" + }, + "peerDependencies": { + "graphology-types": ">=0.20.0" } }, - "node_modules/is-generator-fn": { + "node_modules/graphology-shortest-path": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", - "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "peer": true, + "resolved": "https://registry.npmjs.org/graphology-shortest-path/-/graphology-shortest-path-2.1.0.tgz", + "integrity": "sha512-KbT9CTkP/u72vGEJzyRr24xFC7usI9Es3LMmCPHGwQ1KTsoZjxwA9lMKxfU0syvT/w+7fZUdB/Hu2wWYcJBm6Q==", "dependencies": { - "is-extglob": "^2.1.1" + "@yomguithereal/helpers": "^1.1.1", + "graphology-indices": "^0.17.0", + "graphology-utils": "^2.4.3", + "mnemonist": "^0.39.0" }, - "engines": { - "node": ">=0.10.0" + "peerDependencies": { + "graphology-types": ">=0.20.0" } }, - "node_modules/is-lambda": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", - "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", - "optional": true + "node_modules/graphology-types": { + "version": "0.24.7", + "resolved": "https://registry.npmjs.org/graphology-types/-/graphology-types-0.24.7.tgz", + "integrity": "sha512-tdcqOOpwArNjEr0gNQKCXwaNCWnQJrog14nJNQPeemcLnXQUUGrsCWpWkVKt46zLjcS6/KGoayeJfHHyPDlvwA==", + "peer": true }, - "node_modules/is-negative-zero": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", - "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "node_modules/graphology-utils": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/graphology-utils/-/graphology-utils-2.5.2.tgz", + "integrity": "sha512-ckHg8MXrXJkOARk56ZaSCM1g1Wihe2d6iTmz1enGOz4W/l831MBCKSayeFQfowgF8wd+PQ4rlch/56Vs/VZLDQ==", + "peerDependencies": { + "graphology-types": ">=0.23.0" + } + }, + "node_modules/guid-typescript": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/guid-typescript/-/guid-typescript-1.0.9.tgz", + "integrity": "sha512-Y8T4vYhEfwJOTbouREvG+3XDsjr8E3kIr7uf+JZ0BYloFsttiHU0WfvANVsR7TxNUJa/WpCnw/Ino/p+DeBhBQ==" + }, + "node_modules/handlebars": { + "version": "4.7.8", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", + "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", + "dependencies": { + "minimist": "^1.2.5", + "neo-async": "^2.6.2", + "source-map": "^0.6.1", + "wordwrap": "^1.0.0" + }, + "bin": { + "handlebars": "bin/handlebars" + }, "engines": { - "node": ">= 0.4" + "node": ">=0.4.7" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "optionalDependencies": { + "uglify-js": "^3.1.4" } }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, + "node_modules/har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==", "engines": { - "node": ">=0.12.0" + "node": ">=4" } }, - "node_modules/is-number-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "node_modules/har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "deprecated": "this library is no longer supported", "dependencies": { - "has-tostringtag": "^1.0.0" + "ajv": "^6.12.3", + "har-schema": "^2.0.0" }, "engines": { - "node": ">= 0.4" - }, + "node": ">=6" + } + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "peer": true, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "engines": { "node": ">=8" } }, - "node_modules/is-potential-custom-element-name": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", - "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==" + "node_modules/has-own-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-own-prop/-/has-own-prop-2.0.0.tgz", + "integrity": "sha512-Pq0h+hvsVm6dDEa8x82GnLSYHOzNDt7f0ddFa3FqcQlgzEiptPqL+XrOJNavjOzSYiYWIrgeVYYgGlLmnxwilQ==", + "engines": { + "node": ">=8" + } }, - "node_modules/is-property": { + "node_modules/has-property-descriptors": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", - "integrity": "sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g==" - }, - "node_modules/is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" + "es-define-property": "^1.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-shared-array-buffer": { + "node_modules/has-proto": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", - "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", - "dependencies": { - "call-bind": "^1.0.7" - }, + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", "engines": { "node": ">= 0.4" }, @@ -5689,24 +9323,23 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", "engines": { - "node": ">=8" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", "dependencies": { - "has-tostringtag": "^1.0.0" + "has-symbols": "^1.0.3" }, "engines": { "node": ">= 0.4" @@ -5715,1232 +9348,1142 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "node_modules/has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", + "optional": true + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", "dependencies": { - "has-symbols": "^1.0.2" + "function-bind": "^1.1.2" }, "engines": { "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-typed-array": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", - "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "bin": { + "he": "bin/he" + } + }, + "node_modules/html-encoding-sniffer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-4.0.0.tgz", + "integrity": "sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==", "dependencies": { - "which-typed-array": "^1.1.14" + "whatwg-encoding": "^3.1.1" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=18" } }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true }, - "node_modules/is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "node_modules/htmlparser2": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz", + "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==", + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "entities": "^4.4.0" } }, - "node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" + "node_modules/http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", + "optional": true }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + "node_modules/http-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } }, - "node_modules/isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==" + "node_modules/http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", + "dependencies": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + }, + "engines": { + "node": ">=0.8", + "npm": ">=1.3.7" + } }, - "node_modules/istanbul-lib-coverage": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", - "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", - "dev": true, + "node_modules/https-proxy-agent": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz", + "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==", + "dependencies": { + "agent-base": "^7.0.2", + "debug": "4" + }, "engines": { - "node": ">=8" + "node": ">= 14" } }, - "node_modules/istanbul-lib-instrument": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.2.tgz", - "integrity": "sha512-1WUsZ9R1lA0HtBSohTkm39WTPlNKSJ5iFk7UwqXkBLoHQT+hfqPsfsTDVuZdKGaBwn7din9bS7SsnoAr943hvw==", + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", "dev": true, + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/humanize-ms": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", "dependencies": { - "@babel/core": "^7.23.9", - "@babel/parser": "^7.23.9", - "@istanbuljs/schema": "^0.1.3", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^7.5.4" + "ms": "^2.0.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" }, "engines": { - "node": ">=10" + "node": ">=0.10.0" } }, - "node_modules/istanbul-lib-instrument/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/ignore": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dependencies": { - "yallist": "^4.0.0" + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" }, "engines": { - "node": ">=10" + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/istanbul-lib-instrument/node_modules/semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "node_modules/import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", "dev": true, "dependencies": { - "lru-cache": "^6.0.0" + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" }, "bin": { - "semver": "bin/semver.js" + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "engines": { - "node": ">=10" + "node": ">=0.8.19" } }, - "node_modules/istanbul-lib-instrument/node_modules/yallist": { + "node_modules/indent-string": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/istanbul-lib-report": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", - "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", - "dev": true, - "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^4.0.0", - "supports-color": "^7.1.0" - }, + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "optional": true, "engines": { - "node": ">=10" + "node": ">=8" } }, - "node_modules/istanbul-lib-source-maps": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", - "dev": true, + "node_modules/infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", + "optional": true + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=10" + "once": "^1.3.0", + "wrappy": "1" } }, - "node_modules/istanbul-reports": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", - "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", - "dev": true, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + }, + "node_modules/internal-slot": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", + "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" + "es-errors": "^1.3.0", + "hasown": "^2.0.0", + "side-channel": "^1.0.4" }, "engines": { - "node": ">=8" + "node": ">= 0.4" } }, - "node_modules/jest": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", - "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", - "dev": true, + "node_modules/ip-address": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", + "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==", + "optional": true, "dependencies": { - "@jest/core": "^29.7.0", - "@jest/types": "^29.6.3", - "import-local": "^3.0.2", - "jest-cli": "^29.7.0" - }, - "bin": { - "jest": "bin/jest.js" + "jsbn": "1.1.0", + "sprintf-js": "^1.1.3" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } + "node": ">= 12" } }, - "node_modules/jest-changed-files": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", - "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", - "dev": true, + "node_modules/is-array-buffer": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", + "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", "dependencies": { - "execa": "^5.0.0", - "jest-util": "^29.7.0", - "p-limit": "^3.1.0" + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/jest-circus": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", - "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", - "dev": true, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/expect": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "dedent": "^1.0.0", - "is-generator-fn": "^2.0.0", - "jest-each": "^29.7.0", - "jest-matcher-utils": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-runtime": "^29.7.0", - "jest-snapshot": "^29.7.0", - "jest-util": "^29.7.0", - "p-limit": "^3.1.0", - "pretty-format": "^29.7.0", - "pure-rand": "^6.0.0", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" + "has-bigints": "^1.0.1" }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/jest-cli": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", - "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", - "dev": true, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", "dependencies": { - "@jest/core": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/types": "^29.6.3", - "chalk": "^4.0.0", - "create-jest": "^29.7.0", - "exit": "^0.1.2", - "import-local": "^3.0.2", - "jest-config": "^29.7.0", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "yargs": "^17.3.1" - }, - "bin": { - "jest": "bin/jest.js" + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + "node": ">= 0.4" }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/jest-config": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", - "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", - "dev": true, - "dependencies": { - "@babel/core": "^7.11.6", - "@jest/test-sequencer": "^29.7.0", - "@jest/types": "^29.6.3", - "babel-jest": "^29.7.0", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-circus": "^29.7.0", - "jest-environment-node": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.7.0", - "jest-runner": "^29.7.0", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "micromatch": "^4.0.4", - "parse-json": "^5.2.0", - "pretty-format": "^29.7.0", - "slash": "^3.0.0", - "strip-json-comments": "^3.1.1" - }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "@types/node": "*", - "ts-node": ">=9.0.0" + "node": ">= 0.4" }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "ts-node": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/jest-diff": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", - "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", - "dev": true, + "node_modules/is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^29.6.3", - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" + "hasown": "^2.0.0" }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/jest-docblock": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", - "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", - "dev": true, + "node_modules/is-data-view": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", + "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", "dependencies": { - "detect-newline": "^3.0.0" + "is-typed-array": "^1.1.13" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/jest-each": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", - "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", - "dev": true, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", "dependencies": { - "@jest/types": "^29.6.3", - "chalk": "^4.0.0", - "jest-get-type": "^29.6.3", - "jest-util": "^29.7.0", - "pretty-format": "^29.7.0" + "has-tostringtag": "^1.0.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/jest-environment-node": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", - "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", - "dev": true, - "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/fake-timers": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "jest-mock": "^29.7.0", - "jest-util": "^29.7.0" - }, + "node_modules/is-electron": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/is-electron/-/is-electron-2.2.2.tgz", + "integrity": "sha512-FO/Rhvz5tuw4MCWkpMzHFKWD2LsfHzIb7i6MdPYZ/KW7AlxawyLkqdy+jPZP1WubqEADE3O4FUENlJHDfQASRg==" + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=0.10.0" } }, - "node_modules/jest-get-type": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", - "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", - "dev": true, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "devOptional": true, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=8" } }, - "node_modules/jest-haste-map": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", - "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", + "node_modules/is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", "dev": true, - "dependencies": { - "@jest/types": "^29.6.3", - "@types/graceful-fs": "^4.1.3", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-regex-util": "^29.6.3", - "jest-util": "^29.7.0", - "jest-worker": "^29.7.0", - "micromatch": "^4.0.4", - "walker": "^1.0.8" - }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "optionalDependencies": { - "fsevents": "^2.3.2" + "node": ">=6" } }, - "node_modules/jest-leak-detector": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", - "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", - "dev": true, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dependencies": { - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" + "is-extglob": "^2.1.1" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=0.10.0" } }, - "node_modules/jest-matcher-utils": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", - "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "jest-diff": "^29.7.0", - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" - }, + "node_modules/is-lambda": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", + "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", + "optional": true + }, + "node_modules/is-negative-zero": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/jest-message-util": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", - "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^29.6.3", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^29.7.0", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=0.12.0" } }, - "node_modules/jest-mock": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", - "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", - "dev": true, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", "dependencies": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "jest-util": "^29.7.0" + "has-tostringtag": "^1.0.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/jest-pnp-resolver": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", - "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", - "dev": true, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", "engines": { - "node": ">=6" + "node": ">=8" + } + }, + "node_modules/is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==" + }, + "node_modules/is-property": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", + "integrity": "sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g==" + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" }, - "peerDependencies": { - "jest-resolve": "*" + "engines": { + "node": ">= 0.4" }, - "peerDependenciesMeta": { - "jest-resolve": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/jest-regex-util": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", - "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", - "dev": true, + "node_modules/is-shared-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", + "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", + "dependencies": { + "call-bind": "^1.0.7" + }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/jest-resolve": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", - "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "resolve": "^1.20.0", - "resolve.exports": "^2.0.0", - "slash": "^3.0.0" - }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/jest-resolve-dependencies": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", - "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", - "dev": true, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", "dependencies": { - "jest-regex-util": "^29.6.3", - "jest-snapshot": "^29.7.0" + "has-tostringtag": "^1.0.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/jest-runner": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", - "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", - "dev": true, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", "dependencies": { - "@jest/console": "^29.7.0", - "@jest/environment": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.13.1", - "graceful-fs": "^4.2.9", - "jest-docblock": "^29.7.0", - "jest-environment-node": "^29.7.0", - "jest-haste-map": "^29.7.0", - "jest-leak-detector": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-resolve": "^29.7.0", - "jest-runtime": "^29.7.0", - "jest-util": "^29.7.0", - "jest-watcher": "^29.7.0", - "jest-worker": "^29.7.0", - "p-limit": "^3.1.0", - "source-map-support": "0.5.13" + "has-symbols": "^1.0.2" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/jest-runtime": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", - "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", - "dev": true, + "node_modules/is-typed-array": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", + "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/fake-timers": "^29.7.0", - "@jest/globals": "^29.7.0", - "@jest/source-map": "^29.6.3", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "cjs-module-lexer": "^1.0.0", - "collect-v8-coverage": "^1.0.0", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-mock": "^29.7.0", - "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.7.0", - "jest-snapshot": "^29.7.0", - "jest-util": "^29.7.0", - "slash": "^3.0.0", - "strip-bom": "^4.0.0" + "which-typed-array": "^1.1.14" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/jest-snapshot": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", - "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", - "dev": true, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", "dependencies": { - "@babel/core": "^7.11.6", - "@babel/generator": "^7.7.2", - "@babel/plugin-syntax-jsx": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/types": "^7.3.3", - "@jest/expect-utils": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^29.7.0", - "graceful-fs": "^4.2.9", - "jest-diff": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-matcher-utils": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0", - "natural-compare": "^1.4.0", - "pretty-format": "^29.7.0", - "semver": "^7.5.3" + "call-bind": "^1.0.2" }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/jest-snapshot/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "node_modules/isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==" + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, "engines": { - "node": ">=10" + "node": ">=8" } }, - "node_modules/jest-snapshot/node_modules/semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "node_modules/istanbul-lib-instrument": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.2.tgz", + "integrity": "sha512-1WUsZ9R1lA0HtBSohTkm39WTPlNKSJ5iFk7UwqXkBLoHQT+hfqPsfsTDVuZdKGaBwn7din9bS7SsnoAr943hvw==", "dev": true, "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" + "@babel/core": "^7.23.9", + "@babel/parser": "^7.23.9", + "@istanbuljs/schema": "^0.1.3", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^7.5.4" }, "engines": { "node": ">=10" } }, - "node_modules/jest-snapshot/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/jest-util": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", - "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", + "node_modules/istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", "dev": true, "dependencies": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=10" } }, - "node_modules/jest-validate": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", - "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", "dev": true, "dependencies": { - "@jest/types": "^29.6.3", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^29.6.3", - "leven": "^3.1.0", - "pretty-format": "^29.7.0" + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=10" } }, - "node_modules/jest-validate/node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "node_modules/istanbul-reports": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", + "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", "dev": true, - "engines": { - "node": ">=10" + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">=8" } }, - "node_modules/jest-watcher": { + "node_modules/jest": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", - "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", + "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", + "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", "dev": true, "dependencies": { - "@jest/test-result": "^29.7.0", + "@jest/core": "^29.7.0", "@jest/types": "^29.6.3", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.13.1", - "jest-util": "^29.7.0", - "string-length": "^4.0.1" + "import-local": "^3.0.2", + "jest-cli": "^29.7.0" + }, + "bin": { + "jest": "bin/jest.js" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } } }, - "node_modules/jest-worker": { + "node_modules/jest-changed-files": { "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", - "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", + "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", "dev": true, "dependencies": { - "@types/node": "*", + "execa": "^5.0.0", "jest-util": "^29.7.0", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" + "p-limit": "^3.1.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "node_modules/jest-circus": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", + "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", "dev": true, "dependencies": { - "has-flag": "^4.0.0" + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^1.0.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^29.7.0", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0", + "pretty-format": "^29.7.0", + "pure-rand": "^6.0.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/js-tiktoken": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/js-tiktoken/-/js-tiktoken-1.0.10.tgz", - "integrity": "sha512-ZoSxbGjvGyMT13x6ACo9ebhDha/0FHdKA+OsQcMOWcm1Zs7r90Rhk5lhERLzji+3rA7EKpXCgwXcM5fF3DMpdA==", - "dependencies": { - "base64-js": "^1.5.1" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "peer": true, + "node_modules/jest-cli": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", + "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", + "dev": true, "dependencies": { - "argparse": "^2.0.1" + "@jest/core": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "create-jest": "^29.7.0", + "exit": "^0.1.2", + "import-local": "^3.0.2", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "yargs": "^17.3.1" }, "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsbn": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", - "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==", - "optional": true - }, - "node_modules/jsdom": { - "version": "24.0.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-24.0.0.tgz", - "integrity": "sha512-UDS2NayCvmXSXVP6mpTj+73JnNQadZlr9N68189xib2tx5Mls7swlTNao26IoHv46BZJFvXygyRtyXd1feAk1A==", - "dependencies": { - "cssstyle": "^4.0.1", - "data-urls": "^5.0.0", - "decimal.js": "^10.4.3", - "form-data": "^4.0.0", - "html-encoding-sniffer": "^4.0.0", - "http-proxy-agent": "^7.0.0", - "https-proxy-agent": "^7.0.2", - "is-potential-custom-element-name": "^1.0.1", - "nwsapi": "^2.2.7", - "parse5": "^7.1.2", - "rrweb-cssom": "^0.6.0", - "saxes": "^6.0.0", - "symbol-tree": "^3.2.4", - "tough-cookie": "^4.1.3", - "w3c-xmlserializer": "^5.0.0", - "webidl-conversions": "^7.0.0", - "whatwg-encoding": "^3.1.1", - "whatwg-mimetype": "^4.0.0", - "whatwg-url": "^14.0.0", - "ws": "^8.16.0", - "xml-name-validator": "^5.0.0" + "jest": "bin/jest.js" }, "engines": { - "node": ">=18" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" }, "peerDependencies": { - "canvas": "^2.11.2" + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" }, "peerDependenciesMeta": { - "canvas": { + "node-notifier": { "optional": true } } }, - "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "node_modules/jest-config": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", + "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", "dev": true, - "bin": { - "jsesc": "bin/jsesc" + "dependencies": { + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-jest": "^29.7.0", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-circus": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" }, "engines": { - "node": ">=4" - } - }, - "node_modules/json-bignum": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/json-bignum/-/json-bignum-0.0.3.tgz", - "integrity": "sha512-2WHyXj3OfHSgNyuzDbSxI1w2jgw5gkWSWhS7Qg4bWXx1nLk3jnbwfUeS0PSba3IzpTUWdHxBieELUzXRjQB2zg==", - "peer": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "peer": true - }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, - "node_modules/json-schema": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", - "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "peer": true - }, - "node_modules/json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==" - }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true, - "bin": { - "json5": "lib/cli.js" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsprim": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", - "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", - "dependencies": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.4.0", - "verror": "1.10.0" + "peerDependencies": { + "@types/node": "*", + "ts-node": ">=9.0.0" }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/keyv": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", - "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", - "peer": true, - "dependencies": { - "json-buffer": "3.0.1" - } - }, - "node_modules/kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", - "dev": true, - "engines": { - "node": ">=6" + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "ts-node": { + "optional": true + } } }, - "node_modules/leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "node_modules/jest-diff": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, "engines": { - "node": ">=6" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "peer": true, + "node_modules/jest-docblock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", + "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", + "dev": true, "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" + "detect-newline": "^3.0.0" }, "engines": { - "node": ">= 0.8.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true - }, - "node_modules/llama-tokenizer-js": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/llama-tokenizer-js/-/llama-tokenizer-js-1.1.3.tgz", - "integrity": "sha512-+BUgsLCXVQJkjiD/t7PdESLn+yXJIRX/BJfwzVVYfKZ9aN3gsP9xoadBZxKnCxGz2Slby+S7x41gUr2TKNaS4Q==" - }, - "node_modules/llm-code-highlighter": { - "version": "0.0.14", - "resolved": "https://registry.npmjs.org/llm-code-highlighter/-/llm-code-highlighter-0.0.14.tgz", - "integrity": "sha512-FxGAmu4zRp3Xi+9esP5SYrr4neC6SZqP+YnP/IfksT9k+AdnoemkQopUtilqKAWZp5c2VqG6NDMnHp6zyadebg==", + "node_modules/jest-each": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", + "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", + "dev": true, "dependencies": { - "graphology": "^0.25.4", - "graphology-metrics": "^2.2.0", - "lodash": "^4.17.21", - "tree-sitter-wasms": "^0.1.6", - "web-tree-sitter": "^0.21.0" + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "jest-util": "^29.7.0", + "pretty-format": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "peer": true, + "node_modules/jest-environment-node": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", + "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", + "dev": true, "dependencies": { - "p-locate": "^5.0.0" + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "node_modules/lodash.assignwith": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.assignwith/-/lodash.assignwith-4.2.0.tgz", - "integrity": "sha512-ZznplvbvtjK2gMvnQ1BR/zqPFZmS6jbK4p+6Up4xcRYA7yMIwxHCfbTcrYxXKzzqLsQ05eJPVznEW3tuwV7k1g==", - "peer": true - }, - "node_modules/lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", - "peer": true - }, - "node_modules/lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", - "dev": true - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "peer": true - }, - "node_modules/long": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", - "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==" - }, - "node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "node_modules/jest-get-type": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", "dev": true, - "dependencies": { - "yallist": "^3.0.2" + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/make-dir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", - "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "node_modules/jest-haste-map": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", + "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", "dev": true, "dependencies": { - "semver": "^7.5.3" + "@jest/types": "^29.6.3", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "micromatch": "^4.0.4", + "walker": "^1.0.8" }, "engines": { - "node": ">=10" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "optionalDependencies": { + "fsevents": "^2.3.2" } }, - "node_modules/make-dir/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "node_modules/jest-leak-detector": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", + "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", "dev": true, "dependencies": { - "yallist": "^4.0.0" + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" }, "engines": { - "node": ">=10" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/make-dir/node_modules/semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "node_modules/jest-matcher-utils": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", + "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", "dev": true, "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" + "chalk": "^4.0.0", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" }, "engines": { - "node": ">=10" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/make-dir/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true - }, - "node_modules/make-fetch-happen": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", - "integrity": "sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==", - "optional": true, + "node_modules/jest-message-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", + "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", + "dev": true, "dependencies": { - "agentkeepalive": "^4.1.3", - "cacache": "^15.2.0", - "http-cache-semantics": "^4.1.0", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^6.0.0", - "minipass": "^3.1.3", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^1.3.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.2", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^6.0.0", - "ssri": "^8.0.0" + "@babel/code-frame": "^7.12.13", + "@jest/types": "^29.6.3", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" }, "engines": { - "node": ">= 10" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/make-fetch-happen/node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "optional": true, + "node_modules/jest-mock": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", + "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", + "dev": true, "dependencies": { - "debug": "4" + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-util": "^29.7.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", + "dev": true, + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } + } + }, + "node_modules/jest-regex-util": { + "version": "29.6.3", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", + "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", + "dev": true, "engines": { - "node": ">= 6.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/make-fetch-happen/node_modules/http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", - "optional": true, + "node_modules/jest-resolve": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", + "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", + "dev": true, "dependencies": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "resolve": "^1.20.0", + "resolve.exports": "^2.0.0", + "slash": "^3.0.0" }, "engines": { - "node": ">= 6" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/make-fetch-happen/node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "optional": true, + "node_modules/jest-resolve-dependencies": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", + "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", + "dev": true, "dependencies": { - "agent-base": "6", - "debug": "4" + "jest-regex-util": "^29.6.3", + "jest-snapshot": "^29.7.0" }, "engines": { - "node": ">= 6" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/make-fetch-happen/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "optional": true, + "node_modules/jest-runner": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", + "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", + "dev": true, "dependencies": { - "yallist": "^4.0.0" + "@jest/console": "^29.7.0", + "@jest/environment": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-leak-detector": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-resolve": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-util": "^29.7.0", + "jest-watcher": "^29.7.0", + "jest-worker": "^29.7.0", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" }, "engines": { - "node": ">=10" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/make-fetch-happen/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "optional": true - }, - "node_modules/makeerror": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", - "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "node_modules/jest-runtime": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", + "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", "dev": true, "dependencies": { - "tmpl": "1.0.5" - } - }, - "node_modules/md5": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz", - "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==", - "dependencies": { - "charenc": "0.0.2", - "crypt": "0.0.2", - "is-buffer": "~1.1.6" + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/globals": "^29.7.0", + "@jest/source-map": "^29.6.3", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "node_modules/jest-snapshot": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", + "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", "dev": true, "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" + "@babel/core": "^7.11.6", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-jsx": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "natural-compare": "^1.4.0", + "pretty-format": "^29.7.0", + "semver": "^7.5.3" }, "engines": { - "node": ">=8.6" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "engines": { - "node": ">= 0.6" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "node_modules/jest-util": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", + "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", + "dev": true, "dependencies": { - "mime-db": "1.52.0" + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" }, "engines": { - "node": ">= 0.6" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "node_modules/jest-validate": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", + "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", "dev": true, + "dependencies": { + "@jest/types": "^29.6.3", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "leven": "^3.1.0", + "pretty-format": "^29.7.0" + }, "engines": { - "node": ">=6" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/mimic-response": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", - "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "node_modules/jest-validate/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, "engines": { "node": ">=10" }, @@ -6948,1957 +10491,1903 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "node_modules/jest-watcher": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", + "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", + "dev": true, "dependencies": { - "brace-expansion": "^1.1.7" + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.13.1", + "jest-util": "^29.7.0", + "string-length": "^4.0.1" }, "engines": { - "node": "*" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "node_modules/jest-worker": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", + "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", + "dev": true, + "dependencies": { + "@types/node": "*", + "jest-util": "^29.7.0", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "node_modules/js-tiktoken": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/js-tiktoken/-/js-tiktoken-1.0.12.tgz", + "integrity": "sha512-L7wURW1fH9Qaext0VzaUDpFGVQgjkdE3Dgsy9/+yXyGEpBKnylTd0mU0bfbNkKDlXRb6TEsZkwuflu1B8uQbJQ==", "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" + "base64-js": "^1.5.1" } }, - "node_modules/minipass-collect": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", - "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", - "optional": true, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dependencies": { - "minipass": "^3.0.0" + "argparse": "^2.0.1" }, - "engines": { - "node": ">= 8" + "bin": { + "js-yaml": "bin/js-yaml.js" } }, - "node_modules/minipass-fetch": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz", - "integrity": "sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==", - "optional": true, + "node_modules/jsbn": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", + "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==", + "optional": true + }, + "node_modules/jsdom": { + "version": "24.0.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-24.0.0.tgz", + "integrity": "sha512-UDS2NayCvmXSXVP6mpTj+73JnNQadZlr9N68189xib2tx5Mls7swlTNao26IoHv46BZJFvXygyRtyXd1feAk1A==", "dependencies": { - "minipass": "^3.1.0", - "minipass-sized": "^1.0.3", - "minizlib": "^2.0.0" + "cssstyle": "^4.0.1", + "data-urls": "^5.0.0", + "decimal.js": "^10.4.3", + "form-data": "^4.0.0", + "html-encoding-sniffer": "^4.0.0", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.2", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.7", + "parse5": "^7.1.2", + "rrweb-cssom": "^0.6.0", + "saxes": "^6.0.0", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.1.3", + "w3c-xmlserializer": "^5.0.0", + "webidl-conversions": "^7.0.0", + "whatwg-encoding": "^3.1.1", + "whatwg-mimetype": "^4.0.0", + "whatwg-url": "^14.0.0", + "ws": "^8.16.0", + "xml-name-validator": "^5.0.0" }, "engines": { - "node": ">=8" + "node": ">=18" }, - "optionalDependencies": { - "encoding": "^0.1.12" + "peerDependencies": { + "canvas": "^2.11.2" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } } }, - "node_modules/minipass-flush": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", - "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", - "optional": true, - "dependencies": { - "minipass": "^3.0.0" + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" }, "engines": { - "node": ">= 8" + "node": ">=4" } }, - "node_modules/minipass-pipeline": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", - "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", - "optional": true, - "dependencies": { - "minipass": "^3.0.0" - }, + "node_modules/json-bignum": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/json-bignum/-/json-bignum-0.0.3.tgz", + "integrity": "sha512-2WHyXj3OfHSgNyuzDbSxI1w2jgw5gkWSWhS7Qg4bWXx1nLk3jnbwfUeS0PSba3IzpTUWdHxBieELUzXRjQB2zg==", + "peer": true, "engines": { - "node": ">=8" + "node": ">=0.8" } }, - "node_modules/minipass-sized": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", - "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", - "optional": true, - "dependencies": { - "minipass": "^3.0.0" + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "node_modules/json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==" + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "bin": { + "json5": "lib/cli.js" }, "engines": { - "node": ">=8" + "node": ">=6" } }, - "node_modules/minipass/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, - "node_modules/minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "node_modules/jsprim": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", + "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", "dependencies": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.4.0", + "verror": "1.10.0" }, "engines": { - "node": ">= 8" + "node": ">=0.6.0" } }, - "node_modules/minizlib/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dependencies": { + "json-buffer": "3.0.1" + } }, - "node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "bin": { - "mkdirp": "bin/cmd.js" - }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true, "engines": { - "node": ">=10" + "node": ">=6" } }, - "node_modules/mkdirp-classic": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", - "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==" + "node_modules/launchdarkly-eventsource": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/launchdarkly-eventsource/-/launchdarkly-eventsource-2.0.2.tgz", + "integrity": "sha512-9Aj5KgtbV5E7XGA74Z7Ui2fSwyeNlkGtbPkdTsPOQBzT7/3ZNtOjplg+HWhNMtsM2B9orFebTy3XBGxidyHbQg==", + "engines": { + "node": ">=0.12.0" + } }, - "node_modules/mnemonist": { - "version": "0.39.8", - "resolved": "https://registry.npmjs.org/mnemonist/-/mnemonist-0.39.8.tgz", - "integrity": "sha512-vyWo2K3fjrUw8YeeZ1zF0fy6Mu59RHokURlld8ymdUPjMlD9EC9ov1/YPqTgqRvUN9nTr3Gqfz29LYAmu0PHPQ==", + "node_modules/launchdarkly-js-sdk-common": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/launchdarkly-js-sdk-common/-/launchdarkly-js-sdk-common-5.2.0.tgz", + "integrity": "sha512-aLv2ZrUv229RIwLtFhdILu2aJS/fqGSJzTk4L/bCDZA8RuIh7PutI3ui/AJeNnzPzjKzdEQZw6wVhkVc84baog==", "dependencies": { - "obliterator": "^2.0.1" + "base64-js": "^1.3.0", + "fast-deep-equal": "^2.0.1", + "uuid": "^8.0.0" } }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + "node_modules/launchdarkly-js-sdk-common/node_modules/fast-deep-equal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", + "integrity": "sha512-bCK/2Z4zLidyB4ReuIsvALH6w31YfAQDmXMqMx6FyfHqvBxtjC0eRumeSu4Bs3XtXwpyIywtSTrVT99BxY1f9w==" }, - "node_modules/mysql2": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/mysql2/-/mysql2-3.10.1.tgz", - "integrity": "sha512-6zo1T3GILsXMCex3YEu7hCz2OXLUarxFsxvFcUHWMpkPtmZLeTTWgRdc1gWyNJiYt6AxITmIf9bZDRy/jAfWew==", + "node_modules/launchdarkly-js-sdk-common/node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/launchdarkly-node-client-sdk": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/launchdarkly-node-client-sdk/-/launchdarkly-node-client-sdk-3.2.0.tgz", + "integrity": "sha512-S4WGbf0r1xtU9fAkjGSjRk95N01uSzIE+vWvpio8tMIxKB04nRMMig1pXdtI1OWgz6MRalTDYeCdcIF55TZ9HQ==", "dependencies": { - "denque": "^2.1.0", - "generate-function": "^2.3.1", - "iconv-lite": "^0.6.3", - "long": "^5.2.1", - "lru-cache": "^8.0.0", - "named-placeholders": "^1.1.3", - "seq-queue": "^0.0.5", - "sqlstring": "^2.3.2" + "launchdarkly-eventsource": "2.0.2", + "launchdarkly-js-sdk-common": "5.2.0", + "node-localstorage": "^1.3.1" }, "engines": { - "node": ">= 8.0" + "node": ">= 12.0.0" } }, - "node_modules/mysql2/node_modules/lru-cache": { - "version": "8.0.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-8.0.5.tgz", - "integrity": "sha512-MhWWlVnuab1RG5/zMRRcVGXZLCXrZTgfwMikgzCegsPnG62yDQo5JnqKkrK4jO5iKqDAZGItAqN5CtKBCBWRUA==", + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true, "engines": { - "node": ">=16.14" + "node": ">=6" } }, - "node_modules/named-placeholders": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/named-placeholders/-/named-placeholders-1.1.3.tgz", - "integrity": "sha512-eLoBxg6wE/rZkJPhU/xRX1WTpkFEwDJEN96oxFrTsqBdbT5ec295Q+CoHrL9IT0DipqKhmGcaZmwOt8OON5x1w==", + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dependencies": { - "lru-cache": "^7.14.1" + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" }, "engines": { - "node": ">=12.0.0" + "node": ">= 0.8.0" } }, - "node_modules/named-placeholders/node_modules/lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "engines": { - "node": ">=12" + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "node_modules/llm-code-highlighter": { + "version": "0.0.14", + "resolved": "https://registry.npmjs.org/llm-code-highlighter/-/llm-code-highlighter-0.0.14.tgz", + "integrity": "sha512-FxGAmu4zRp3Xi+9esP5SYrr4neC6SZqP+YnP/IfksT9k+AdnoemkQopUtilqKAWZp5c2VqG6NDMnHp6zyadebg==", + "dependencies": { + "graphology": "^0.25.4", + "graphology-metrics": "^2.2.0", + "lodash": "^4.17.21", + "tree-sitter-wasms": "^0.1.6", + "web-tree-sitter": "^0.21.0" } }, - "node_modules/nanoid": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", - "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "peer": true, - "bin": { - "nanoid": "bin/nanoid.cjs" + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dependencies": { + "p-locate": "^5.0.0" }, "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/napi-build-utils": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz", - "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==" + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==" + "node_modules/lodash.assignwith": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.assignwith/-/lodash.assignwith-4.2.0.tgz", + "integrity": "sha512-ZznplvbvtjK2gMvnQ1BR/zqPFZmS6jbK4p+6Up4xcRYA7yMIwxHCfbTcrYxXKzzqLsQ05eJPVznEW3tuwV7k1g==", + "peer": true }, - "node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "optional": true, - "engines": { - "node": ">= 0.6" - } + "node_modules/lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", + "peer": true }, - "node_modules/neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "dev": true }, - "node_modules/node-abi": { - "version": "3.56.0", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.56.0.tgz", - "integrity": "sha512-fZjdhDOeRcaS+rcpve7XuwHBmktS1nS1gzgghwKUQQ8nTy2FdSDr6ZT8k6YhvlJeHmmQMYiT/IH9hfco5zeW2Q==", + "node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "dev": true + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" + }, + "node_modules/long": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", + "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==" + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, "dependencies": { - "semver": "^7.3.5" - }, - "engines": { - "node": ">=10" + "yallist": "^3.0.2" } }, - "node_modules/node-abi/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "node_modules/mac-ca": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mac-ca/-/mac-ca-3.1.0.tgz", + "integrity": "sha512-ts8slRarTfSQhtEYRVRjfLMEOsvFBtZdlnI6jvqAcWAS8dSQwyrcACkFz5GvV4bshe3WAOcPHwN8fuovdqsxOQ==", "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" + "node-forge": "^1.3.1", + "undici": "^6.16.1" + } + }, + "node_modules/macos-export-certificate-and-key": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/macos-export-certificate-and-key/-/macos-export-certificate-and-key-1.1.2.tgz", + "integrity": "sha512-kd4ba3kVKZXy46p4tg3X19dmwaXjtz0La5It6Rt6PbtwP+YcQ0F7ab8MjcSHOvz9NSXmAU15qQG53OlBDAPDzQ==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "dependencies": { + "bindings": "^1.5.0", + "node-addon-api": "^4.3.0" } }, - "node_modules/node-abi/node_modules/semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "node_modules/macos-export-certificate-and-key/node_modules/node-addon-api": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-4.3.0.tgz", + "integrity": "sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==", + "optional": true + }, + "node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dev": true, "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" + "semver": "^7.5.3" }, "engines": { "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/node-abi/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, - "node_modules/node-addon-api": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-6.1.0.tgz", - "integrity": "sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==" + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true }, - "node_modules/node-domexception": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", - "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/jimmywarting" - }, - { - "type": "github", - "url": "https://paypal.me/jimmywarting" - } - ], + "node_modules/make-fetch-happen": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", + "integrity": "sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==", + "optional": true, + "dependencies": { + "agentkeepalive": "^4.1.3", + "cacache": "^15.2.0", + "http-cache-semantics": "^4.1.0", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-lambda": "^1.0.1", + "lru-cache": "^6.0.0", + "minipass": "^3.1.3", + "minipass-collect": "^1.0.2", + "minipass-fetch": "^1.3.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.2", + "promise-retry": "^2.0.1", + "socks-proxy-agent": "^6.0.0", + "ssri": "^8.0.0" + }, "engines": { - "node": ">=10.5.0" + "node": ">= 10" } }, - "node_modules/node-fetch": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz", - "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==", + "node_modules/make-fetch-happen/node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "optional": true, "dependencies": { - "data-uri-to-buffer": "^4.0.0", - "fetch-blob": "^3.1.4", - "formdata-polyfill": "^4.0.10" + "debug": "4" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/node-fetch" + "node": ">= 6.0.0" } }, - "node_modules/node-gyp": { - "version": "8.4.1", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-8.4.1.tgz", - "integrity": "sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==", + "node_modules/make-fetch-happen/node_modules/http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", "optional": true, "dependencies": { - "env-paths": "^2.2.0", - "glob": "^7.1.4", - "graceful-fs": "^4.2.6", - "make-fetch-happen": "^9.1.0", - "nopt": "^5.0.0", - "npmlog": "^6.0.0", - "rimraf": "^3.0.2", - "semver": "^7.3.5", - "tar": "^6.1.2", - "which": "^2.0.2" - }, - "bin": { - "node-gyp": "bin/node-gyp.js" + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" }, "engines": { - "node": ">= 10.12.0" + "node": ">= 6" } }, - "node_modules/node-gyp/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "node_modules/make-fetch-happen/node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", "optional": true, "dependencies": { - "yallist": "^4.0.0" + "agent-base": "6", + "debug": "4" }, "engines": { - "node": ">=10" + "node": ">= 6" } }, - "node_modules/node-gyp/node_modules/semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "node_modules/make-fetch-happen/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "optional": true, "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" + "yallist": "^4.0.0" }, "engines": { "node": ">=10" } }, - "node_modules/node-gyp/node_modules/yallist": { + "node_modules/make-fetch-happen/node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "optional": true }, - "node_modules/node-html-markdown": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/node-html-markdown/-/node-html-markdown-1.3.0.tgz", - "integrity": "sha512-OeFi3QwC/cPjvVKZ114tzzu+YoR+v9UXW5RwSXGUqGb0qCl0DvP406tzdL7SFn8pZrMyzXoisfG2zcuF9+zw4g==", - "dependencies": { - "node-html-parser": "^6.1.1" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/node-html-parser": { - "version": "6.1.12", - "resolved": "https://registry.npmjs.org/node-html-parser/-/node-html-parser-6.1.12.tgz", - "integrity": "sha512-/bT/Ncmv+fbMGX96XG9g05vFt43m/+SYKIs9oAemQVYyVcZmDAI2Xq/SbNcpOA35eF0Zk2av3Ksf+Xk8Vt8abA==", + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, "dependencies": { - "css-select": "^5.1.0", - "he": "1.2.0" + "tmpl": "1.0.5" } }, - "node_modules/node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", "dev": true }, - "node_modules/node-releases": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", - "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", - "dev": true + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "engines": { + "node": ">= 8" + } }, - "node_modules/nopt": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", - "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", - "optional": true, + "node_modules/micromatch": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.6.tgz", + "integrity": "sha512-Y4Ypn3oujJYxJcMacVgcs92wofTHxp9FzfDpQON4msDefoC0lb3ETvQLOdLcbhSwU1bz8HrL/1sygfBIHudrkQ==", "dependencies": { - "abbrev": "1" - }, - "bin": { - "nopt": "bin/nopt.js" + "braces": "^3.0.3", + "picomatch": "^4.0.2" }, "engines": { - "node": ">=6" + "node": ">=8.6" } }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, + "node_modules/micromatch/node_modules/picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "dependencies": { - "path-key": "^3.0.0" + "node": ">=12" }, - "engines": { - "node": ">=8" + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", - "optional": true, - "dependencies": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" - }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">= 0.6" } }, - "node_modules/nth-check": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", - "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", "dependencies": { - "boolbase": "^1.0.0" + "mime-db": "1.52.0" }, - "funding": { - "url": "https://github.com/fb55/nth-check?sponsor=1" - } - }, - "node_modules/nwsapi": { - "version": "2.2.7", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.7.tgz", - "integrity": "sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==" - }, - "node_modules/oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", "engines": { - "node": "*" + "node": ">= 0.6" } }, - "node_modules/object-inspect": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", - "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" } }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "node_modules/mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", "engines": { - "node": ">= 0.4" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/object.assign": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", - "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", + "node_modules/minimatch": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", "dependencies": { - "call-bind": "^1.0.5", - "define-properties": "^1.2.1", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" + "brace-expansion": "^2.0.1" }, "engines": { - "node": ">= 0.4" + "node": ">=16 || 14 >=14.17" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/object.entries": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.7.tgz", - "integrity": "sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==", - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - }, - "engines": { - "node": ">= 0.4" + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/object.fromentries": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz", - "integrity": "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==", - "peer": true, + "node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "yallist": "^4.0.0" }, "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=8" } }, - "node_modules/object.groupby": { + "node_modules/minipass-collect": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.2.tgz", - "integrity": "sha512-bzBq58S+x+uo0VjurFT0UktpKHOZmv4/xePiOA1nbB9pMqpGK7rUPNgf+1YC+7mE+0HzhTMqNUuCqvKhj6FnBw==", - "peer": true, + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", + "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", + "optional": true, "dependencies": { - "array.prototype.filter": "^1.0.3", - "call-bind": "^1.0.5", - "define-properties": "^1.2.1", - "es-abstract": "^1.22.3", - "es-errors": "^1.0.0" + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" } }, - "node_modules/object.values": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz", - "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==", - "peer": true, + "node_modules/minipass-fetch": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz", + "integrity": "sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==", + "optional": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "minipass": "^3.1.0", + "minipass-sized": "^1.0.3", + "minizlib": "^2.0.0" }, "engines": { - "node": ">= 0.4" + "node": ">=8" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/obliterator": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/obliterator/-/obliterator-2.0.4.tgz", - "integrity": "sha512-lgHwxlxV1qIg1Eap7LgIeoBWIMFibOjbrYPIPJZcI1mmGAI2m3lNYpK12Y+GBdPQ0U1hRwSord7GIaawz962qQ==" - }, - "node_modules/ollama": { - "version": "0.4.9", - "resolved": "https://registry.npmjs.org/ollama/-/ollama-0.4.9.tgz", - "integrity": "sha512-hVf5xix5zwswfMN6ydt3K2TS886aOk9RT9xksajXxdIHhi2yokEsdzJYE7IGg+1bjQSPZ6JHzHbESYjNB0pTCg==", - "dependencies": { - "whatwg-fetch": "^3.6.20" + "optionalDependencies": { + "encoding": "^0.1.12" } }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "node_modules/minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "optional": true, "dependencies": { - "wrappy": "1" + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" } }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, + "node_modules/minipass-pipeline": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", + "optional": true, "dependencies": { - "mimic-fn": "^2.1.0" + "minipass": "^3.0.0" }, "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, - "node_modules/onnx-proto": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/onnx-proto/-/onnx-proto-4.0.4.tgz", - "integrity": "sha512-aldMOB3HRoo6q/phyB6QRQxSt895HNNw82BNyZ2CMh4bjeKv7g/c+VpAFtJuEMVfYLMbRx61hbuqnKceLeDcDA==", + "node_modules/minipass-sized": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", + "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", + "optional": true, "dependencies": { - "protobufjs": "^6.8.8" + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/onnxruntime-common": { - "version": "1.14.0", - "resolved": "https://registry.npmjs.org/onnxruntime-common/-/onnxruntime-common-1.14.0.tgz", - "integrity": "sha512-3LJpegM2iMNRX2wUmtYfeX/ytfOzNwAWKSq1HbRrKc9+uqG/FsEA0bbKZl1btQeZaXhC26l44NWpNUeXPII7Ew==" + "node_modules/minipass/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, - "node_modules/onnxruntime-node": { - "version": "1.14.0", - "resolved": "https://registry.npmjs.org/onnxruntime-node/-/onnxruntime-node-1.14.0.tgz", - "integrity": "sha512-5ba7TWomIV/9b6NH/1x/8QEeowsb+jBEvFzU6z0T4mNsFwdPqXeFUM7uxC6QeSRkEbWu3qEB0VMjrvzN/0S9+w==", - "optional": true, - "os": [ - "win32", - "darwin", - "linux" - ], + "node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", "dependencies": { - "onnxruntime-common": "~1.14.0" + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" } }, - "node_modules/onnxruntime-web": { - "version": "1.14.0", - "resolved": "https://registry.npmjs.org/onnxruntime-web/-/onnxruntime-web-1.14.0.tgz", - "integrity": "sha512-Kcqf43UMfW8mCydVGcX9OMXI2VN17c0p6XvR7IPSZzBf/6lteBzXHvcEVWDPmCKuGombl997HgLqj91F11DzXw==", - "dependencies": { - "flatbuffers": "^1.12.0", - "guid-typescript": "^1.0.9", - "long": "^4.0.0", - "onnx-proto": "^4.0.4", - "onnxruntime-common": "~1.14.0", - "platform": "^1.3.6" + "node_modules/minizlib/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" } }, - "node_modules/onnxruntime-web/node_modules/flatbuffers": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/flatbuffers/-/flatbuffers-1.12.0.tgz", - "integrity": "sha512-c7CZADjRcl6j0PlvFy0ZqXQ67qSEZfrVPynmnL+2zPc+NtMvrF8Y0QceMo7QqnSPc7+uWjUIAbvCQ5WIKlMVdQ==" + "node_modules/mkdirp-classic": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", + "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==" }, - "node_modules/onnxruntime-web/node_modules/long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" + "node_modules/mnemonist": { + "version": "0.39.8", + "resolved": "https://registry.npmjs.org/mnemonist/-/mnemonist-0.39.8.tgz", + "integrity": "sha512-vyWo2K3fjrUw8YeeZ1zF0fy6Mu59RHokURlld8ymdUPjMlD9EC9ov1/YPqTgqRvUN9nTr3Gqfz29LYAmu0PHPQ==", + "dependencies": { + "obliterator": "^2.0.1" + } }, - "node_modules/openai": { - "version": "4.28.4", - "resolved": "https://registry.npmjs.org/openai/-/openai-4.28.4.tgz", - "integrity": "sha512-RNIwx4MT/F0zyizGcwS+bXKLzJ8QE9IOyigDG/ttnwB220d58bYjYFp0qjvGwEFBO6+pvFVIDABZPGDl46RFsg==", + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/mysql2": { + "version": "3.9.7", + "resolved": "https://registry.npmjs.org/mysql2/-/mysql2-3.9.7.tgz", + "integrity": "sha512-KnJT8vYRcNAZv73uf9zpXqNbvBG7DJrs+1nACsjZP1HMJ1TgXEy8wnNilXAn/5i57JizXKtrUtwDB7HxT9DDpw==", "dependencies": { - "@types/node": "^18.11.18", - "@types/node-fetch": "^2.6.4", - "abort-controller": "^3.0.0", - "agentkeepalive": "^4.2.1", - "digest-fetch": "^1.3.0", - "form-data-encoder": "1.7.2", - "formdata-node": "^4.3.2", - "node-fetch": "^2.6.7", - "web-streams-polyfill": "^3.2.1" + "denque": "^2.1.0", + "generate-function": "^2.3.1", + "iconv-lite": "^0.6.3", + "long": "^5.2.1", + "lru-cache": "^8.0.0", + "named-placeholders": "^1.1.3", + "seq-queue": "^0.0.5", + "sqlstring": "^2.3.2" }, - "bin": { - "openai": "bin/cli" + "engines": { + "node": ">= 8.0" } }, - "node_modules/openai/node_modules/@types/node": { - "version": "18.19.24", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.24.tgz", - "integrity": "sha512-eghAz3gnbQbvnHqB+mgB2ZR3aH6RhdEmHGS48BnV75KceQPHqabkxKI0BbUSsqhqy2Ddhc2xD/VAR9ySZd57Lw==", - "dependencies": { - "undici-types": "~5.26.4" + "node_modules/mysql2/node_modules/lru-cache": { + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-8.0.5.tgz", + "integrity": "sha512-MhWWlVnuab1RG5/zMRRcVGXZLCXrZTgfwMikgzCegsPnG62yDQo5JnqKkrK4jO5iKqDAZGItAqN5CtKBCBWRUA==", + "engines": { + "node": ">=16.14" } }, - "node_modules/openai/node_modules/node-fetch": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", - "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "node_modules/named-placeholders": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/named-placeholders/-/named-placeholders-1.1.3.tgz", + "integrity": "sha512-eLoBxg6wE/rZkJPhU/xRX1WTpkFEwDJEN96oxFrTsqBdbT5ec295Q+CoHrL9IT0DipqKhmGcaZmwOt8OON5x1w==", "dependencies": { - "whatwg-url": "^5.0.0" + "lru-cache": "^7.14.1" }, "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } + "node": ">=12.0.0" } }, - "node_modules/openai/node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + "node_modules/named-placeholders/node_modules/lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "engines": { + "node": ">=12" + } }, - "node_modules/openai/node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + "node_modules/napi-build-utils": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz", + "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==" }, - "node_modules/openai/node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==" }, - "node_modules/optionator": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", - "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", - "peer": true, - "dependencies": { - "@aashutoshrathi/word-wrap": "^1.2.3", - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0" - }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "optional": true, "engines": { - "node": ">= 0.8.0" + "node": ">= 0.6" } }, - "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" + }, + "node_modules/node-abi": { + "version": "3.62.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.62.0.tgz", + "integrity": "sha512-CPMcGa+y33xuL1E0TcNIu4YyaZCxnnvkVaEXrsosR3FxN+fV8xvb7Mzpb7IgKler10qeMkE6+Dp8qJhpzdq35g==", "dependencies": { - "yocto-queue": "^0.1.0" + "semver": "^7.3.5" }, "engines": { "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "peer": true, - "dependencies": { - "p-limit": "^3.0.2" - }, + "node_modules/node-addon-api": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-6.1.0.tgz", + "integrity": "sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==" + }, + "node_modules/node-domexception": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", + "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "github", + "url": "https://paypal.me/jimmywarting" + } + ], "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=10.5.0" } }, - "node_modules/p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "optional": true, + "node_modules/node-fetch": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz", + "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==", "dependencies": { - "aggregate-error": "^3.0.0" + "data-uri-to-buffer": "^4.0.0", + "fetch-blob": "^3.1.4", + "formdata-polyfill": "^4.0.10" }, "engines": { - "node": ">=10" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "opencollective", + "url": "https://opencollective.com/node-fetch" } }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true, + "node_modules/node-forge": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", "engines": { - "node": ">=6" + "node": ">= 6.13.0" } }, - "node_modules/packet-reader": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/packet-reader/-/packet-reader-1.0.0.tgz", - "integrity": "sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ==" - }, - "node_modules/pad-left": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/pad-left/-/pad-left-2.1.0.tgz", - "integrity": "sha512-HJxs9K9AztdIQIAIa/OIazRAUW/L6B9hbQDxO4X07roW3eo9XqZc2ur9bn1StH9CnbbI9EgvejHQX7CBpCF1QA==", - "peer": true, + "node_modules/node-gyp": { + "version": "8.4.1", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-8.4.1.tgz", + "integrity": "sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==", + "optional": true, "dependencies": { - "repeat-string": "^1.5.4" + "env-paths": "^2.2.0", + "glob": "^7.1.4", + "graceful-fs": "^4.2.6", + "make-fetch-happen": "^9.1.0", + "nopt": "^5.0.0", + "npmlog": "^6.0.0", + "rimraf": "^3.0.2", + "semver": "^7.3.5", + "tar": "^6.1.2", + "which": "^2.0.2" + }, + "bin": { + "node-gyp": "bin/node-gyp.js" }, "engines": { - "node": ">=0.10.0" + "node": ">= 10.12.0" } }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "peer": true, + "node_modules/node-html-markdown": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/node-html-markdown/-/node-html-markdown-1.3.0.tgz", + "integrity": "sha512-OeFi3QwC/cPjvVKZ114tzzu+YoR+v9UXW5RwSXGUqGb0qCl0DvP406tzdL7SFn8pZrMyzXoisfG2zcuF9+zw4g==", "dependencies": { - "callsites": "^3.0.0" + "node-html-parser": "^6.1.1" }, "engines": { - "node": ">=6" + "node": ">=10.0.0" } }, - "node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, + "node_modules/node-html-parser": { + "version": "6.1.13", + "resolved": "https://registry.npmjs.org/node-html-parser/-/node-html-parser-6.1.13.tgz", + "integrity": "sha512-qIsTMOY4C/dAa5Q5vsobRpOOvPfC4pB61UVW2uSwZNUp0QU/jCekTal1vMmbO0DgdHeLUJpv/ARmDqErVxA3Sg==", "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "css-select": "^5.1.0", + "he": "1.2.0" } }, - "node_modules/parse5": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", - "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true + }, + "node_modules/node-localstorage": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/node-localstorage/-/node-localstorage-1.3.1.tgz", + "integrity": "sha512-NMWCSWWc6JbHT5PyWlNT2i8r7PgGYXVntmKawY83k/M0UJScZ5jirb61TLnqKwd815DfBQu+lR3sRw08SPzIaQ==", "dependencies": { - "entities": "^4.4.0" + "write-file-atomic": "^1.1.4" }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" + "engines": { + "node": ">=0.12" } }, - "node_modules/parse5-htmlparser2-tree-adapter": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz", - "integrity": "sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==", + "node_modules/node-localstorage/node_modules/write-file-atomic": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-1.3.4.tgz", + "integrity": "sha512-SdrHoC/yVBPpV0Xq/mUZQIpW2sWXAShb/V4pomcJXh92RuaO+f3UTWItiR3Px+pLnV2PvC2/bfn5cwr5X6Vfxw==", "dependencies": { - "domhandler": "^5.0.2", - "parse5": "^7.0.0" - }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "slide": "^1.1.5" } }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "node_modules/node-releases": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", + "dev": true + }, + "node_modules/nopt": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", + "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", + "optional": true, + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + }, "engines": { - "node": ">=8" + "node": ">=6" } }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, "engines": { "node": ">=0.10.0" } }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" + }, "engines": { "node": ">=8" } }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" - }, - "node_modules/performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==" - }, - "node_modules/pg": { - "version": "8.11.3", - "resolved": "https://registry.npmjs.org/pg/-/pg-8.11.3.tgz", - "integrity": "sha512-+9iuvG8QfaaUrrph+kpF24cXkH1YOOUeArRNYIxq1viYHZagBxrTno7cecY1Fa44tJeZvaoG+Djpkc3JwehN5g==", - "dependencies": { - "buffer-writer": "2.0.0", - "packet-reader": "1.0.0", - "pg-connection-string": "^2.6.2", - "pg-pool": "^3.6.1", - "pg-protocol": "^1.6.0", - "pg-types": "^2.1.0", - "pgpass": "1.x" + "node_modules/npmlog": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", + "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", + "deprecated": "This package is no longer supported.", + "optional": true, + "dependencies": { + "are-we-there-yet": "^3.0.0", + "console-control-strings": "^1.1.0", + "gauge": "^4.0.3", + "set-blocking": "^2.0.0" }, "engines": { - "node": ">= 8.0.0" - }, - "optionalDependencies": { - "pg-cloudflare": "^1.1.1" - }, - "peerDependencies": { - "pg-native": ">=3.0.1" - }, - "peerDependenciesMeta": { - "pg-native": { - "optional": true - } + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, - "node_modules/pg-cloudflare": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pg-cloudflare/-/pg-cloudflare-1.1.1.tgz", - "integrity": "sha512-xWPagP/4B6BgFO+EKz3JONXv3YDgvkbVrGw2mTo3D6tVDQRh1e7cqVGvyR3BE+eQgAvx1XhW/iEASj4/jCWl3Q==", - "optional": true + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } }, - "node_modules/pg-connection-string": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.6.2.tgz", - "integrity": "sha512-ch6OwaeaPYcova4kKZ15sbJ2hKb/VP48ZD2gE7i1J+L4MspCtBMAx8nMgz7bksc7IojCIIWuEhHibSMFH8m8oA==" + "node_modules/nwsapi": { + "version": "2.2.10", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.10.tgz", + "integrity": "sha512-QK0sRs7MKv0tKe1+5uZIQk/C8XGza4DAnztJG8iD+TpJIORARrCxczA738awHrZoHeTjSSoHqao2teO0dC/gFQ==" }, - "node_modules/pg-int8": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz", - "integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==", + "node_modules/oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", "engines": { - "node": ">=4.0.0" + "node": "*" } }, - "node_modules/pg-pool": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.6.1.tgz", - "integrity": "sha512-jizsIzhkIitxCGfPRzJn1ZdcosIt3pz9Sh3V01fm1vZnbnCMgmGl5wvGGdNN2EL9Rmb0EcFoCkixH4Pu+sP9Og==", - "peerDependencies": { - "pg": ">=8.0" + "node_modules/object-inspect": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/pg-protocol": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.6.0.tgz", - "integrity": "sha512-M+PDm637OY5WM307051+bsDia5Xej6d9IR4GwJse1qA1DIhiKlksvrneZOYQq42OM+spubpcNYEo2FcKQrDk+Q==" - }, - "node_modules/pg-types": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz", - "integrity": "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==", - "dependencies": { - "pg-int8": "1.0.1", - "postgres-array": "~2.0.0", - "postgres-bytea": "~1.0.0", - "postgres-date": "~1.0.4", - "postgres-interval": "^1.1.0" - }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", "engines": { - "node": ">=4" + "node": ">= 0.4" } }, - "node_modules/pgpass": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/pgpass/-/pgpass-1.0.5.tgz", - "integrity": "sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==", + "node_modules/object.assign": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", "dependencies": { - "split2": "^4.1.0" - } - }, - "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, "engines": { - "node": ">=8.6" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pirates": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", - "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", - "dev": true, - "engines": { - "node": ">= 6" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, + "node_modules/object.entries": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.8.tgz", + "integrity": "sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==", "dependencies": { - "find-up": "^4.0.0" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" }, "engines": { - "node": ">=8" + "node": ">= 0.4" } }, - "node_modules/pkg-dir/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, + "node_modules/object.fromentries": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", + "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" }, "engines": { - "node": ">=8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/pkg-dir/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, + "node_modules/object.groupby": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", + "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", "dependencies": { - "p-locate": "^4.1.0" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2" }, "engines": { - "node": ">=8" + "node": ">= 0.4" } }, - "node_modules/pkg-dir/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, + "node_modules/object.values": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz", + "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==", "dependencies": { - "p-try": "^2.0.0" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" }, "engines": { - "node": ">=6" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/pkg-dir/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, + "node_modules/obliterator": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/obliterator/-/obliterator-2.0.4.tgz", + "integrity": "sha512-lgHwxlxV1qIg1Eap7LgIeoBWIMFibOjbrYPIPJZcI1mmGAI2m3lNYpK12Y+GBdPQ0U1hRwSord7GIaawz962qQ==" + }, + "node_modules/ollama": { + "version": "0.4.9", + "resolved": "https://registry.npmjs.org/ollama/-/ollama-0.4.9.tgz", + "integrity": "sha512-hVf5xix5zwswfMN6ydt3K2TS886aOk9RT9xksajXxdIHhi2yokEsdzJYE7IGg+1bjQSPZ6JHzHbESYjNB0pTCg==", "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" + "whatwg-fetch": "^3.6.20" } }, - "node_modules/platform": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/platform/-/platform-1.3.6.tgz", - "integrity": "sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg==" - }, - "node_modules/possible-typed-array-names": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", - "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", - "engines": { - "node": ">= 0.4" + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dependencies": { + "wrappy": "1" } }, - "node_modules/postcss": { - "version": "8.4.38", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", - "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "peer": true, "dependencies": { - "nanoid": "^3.3.7", - "picocolors": "^1.0.0", - "source-map-js": "^1.2.0" + "mimic-fn": "^2.1.0" }, "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/postgres-array": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz", - "integrity": "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==", - "engines": { - "node": ">=4" + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/postgres-bytea": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz", - "integrity": "sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==", - "engines": { - "node": ">=0.10.0" + "node_modules/onnx-proto": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/onnx-proto/-/onnx-proto-4.0.4.tgz", + "integrity": "sha512-aldMOB3HRoo6q/phyB6QRQxSt895HNNw82BNyZ2CMh4bjeKv7g/c+VpAFtJuEMVfYLMbRx61hbuqnKceLeDcDA==", + "dependencies": { + "protobufjs": "^6.8.8" } }, - "node_modules/postgres-date": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz", - "integrity": "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==", - "engines": { - "node": ">=0.10.0" - } + "node_modules/onnxruntime-common": { + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/onnxruntime-common/-/onnxruntime-common-1.14.0.tgz", + "integrity": "sha512-3LJpegM2iMNRX2wUmtYfeX/ytfOzNwAWKSq1HbRrKc9+uqG/FsEA0bbKZl1btQeZaXhC26l44NWpNUeXPII7Ew==" }, - "node_modules/postgres-interval": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz", - "integrity": "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==", + "node_modules/onnxruntime-node": { + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/onnxruntime-node/-/onnxruntime-node-1.14.0.tgz", + "integrity": "sha512-5ba7TWomIV/9b6NH/1x/8QEeowsb+jBEvFzU6z0T4mNsFwdPqXeFUM7uxC6QeSRkEbWu3qEB0VMjrvzN/0S9+w==", + "os": [ + "win32", + "darwin", + "linux" + ], "dependencies": { - "xtend": "^4.0.0" - }, - "engines": { - "node": ">=0.10.0" + "onnxruntime-common": "~1.14.0" } }, - "node_modules/posthog-node": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/posthog-node/-/posthog-node-3.6.3.tgz", - "integrity": "sha512-JB+ei0LkwE+rKHyW5z79Nd1jUaGxU6TvkfjFqY9vQaHxU5aU8dRl0UUaEmZdZbHwjp3WmXCBQQRNyimwbNQfCw==", + "node_modules/onnxruntime-web": { + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/onnxruntime-web/-/onnxruntime-web-1.14.0.tgz", + "integrity": "sha512-Kcqf43UMfW8mCydVGcX9OMXI2VN17c0p6XvR7IPSZzBf/6lteBzXHvcEVWDPmCKuGombl997HgLqj91F11DzXw==", "dependencies": { - "axios": "^1.6.2", - "rusha": "^0.8.14" - }, - "engines": { - "node": ">=15.0.0" + "flatbuffers": "^1.12.0", + "guid-typescript": "^1.0.9", + "long": "^4.0.0", + "onnx-proto": "^4.0.4", + "onnxruntime-common": "~1.14.0", + "platform": "^1.3.6" } }, - "node_modules/prebuild-install": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.2.tgz", - "integrity": "sha512-UnNke3IQb6sgarcZIDU3gbMeTp/9SSU1DAIkil7PrqG1vZlBtY5msYccSKSHDqa3hNg436IXK+SNImReuA1wEQ==", + "node_modules/onnxruntime-web/node_modules/flatbuffers": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/flatbuffers/-/flatbuffers-1.12.0.tgz", + "integrity": "sha512-c7CZADjRcl6j0PlvFy0ZqXQ67qSEZfrVPynmnL+2zPc+NtMvrF8Y0QceMo7QqnSPc7+uWjUIAbvCQ5WIKlMVdQ==" + }, + "node_modules/onnxruntime-web/node_modules/long": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", + "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" + }, + "node_modules/openai": { + "version": "4.47.1", + "resolved": "https://registry.npmjs.org/openai/-/openai-4.47.1.tgz", + "integrity": "sha512-WWSxhC/69ZhYWxH/OBsLEirIjUcfpQ5+ihkXKp06hmeYXgBBIUCa9IptMzYx6NdkiOCsSGYCnTIsxaic3AjRCQ==", "dependencies": { - "detect-libc": "^2.0.0", - "expand-template": "^2.0.3", - "github-from-package": "0.0.0", - "minimist": "^1.2.3", - "mkdirp-classic": "^0.5.3", - "napi-build-utils": "^1.0.1", - "node-abi": "^3.3.0", - "pump": "^3.0.0", - "rc": "^1.2.7", - "simple-get": "^4.0.0", - "tar-fs": "^2.0.0", - "tunnel-agent": "^0.6.0" + "@types/node": "^18.11.18", + "@types/node-fetch": "^2.6.4", + "abort-controller": "^3.0.0", + "agentkeepalive": "^4.2.1", + "form-data-encoder": "1.7.2", + "formdata-node": "^4.3.2", + "node-fetch": "^2.6.7", + "web-streams-polyfill": "^3.2.1" }, "bin": { - "prebuild-install": "bin.js" - }, - "engines": { - "node": ">=10" + "openai": "bin/cli" } }, - "node_modules/prebuild-install/node_modules/chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" + "node_modules/openai/node_modules/@types/node": { + "version": "18.19.33", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.33.tgz", + "integrity": "sha512-NR9+KrpSajr2qBVp/Yt5TU/rp+b5Mayi3+OlMlcg2cVCfRmcG5PWZ7S4+MG9PZ5gWBoc9Pd0BKSRViuBCRPu0A==", + "dependencies": { + "undici-types": "~5.26.4" + } }, - "node_modules/prebuild-install/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "node_modules/openai/node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" + "whatwg-url": "^5.0.0" }, "engines": { - "node": ">= 6" + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } } }, - "node_modules/prebuild-install/node_modules/tar-fs": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", - "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", + "node_modules/openai/node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, + "node_modules/openai/node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + "node_modules/openai/node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", "dependencies": { - "chownr": "^1.1.1", - "mkdirp-classic": "^0.5.2", - "pump": "^3.0.0", - "tar-stream": "^2.1.4" + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" } }, - "node_modules/prebuild-install/node_modules/tar-stream": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", "dependencies": { - "bl": "^4.0.3", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" }, - "engines": { - "node": ">=6" - } - }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "peer": true, "engines": { "node": ">= 0.8.0" } }, - "node_modules/pretty-format": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", - "dev": true, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" + "yocto-queue": "^0.1.0" }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, "engines": { "node": ">=10" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", - "optional": true, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dependencies": { + "p-limit": "^3.0.2" + }, "engines": { - "node": ">= 0.6.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", - "optional": true - }, - "node_modules/promise-retry": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", - "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", + "node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", "optional": true, "dependencies": { - "err-code": "^2.0.2", - "retry": "^0.12.0" + "aggregate-error": "^3.0.0" }, "engines": { "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/prompts": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true, - "dependencies": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - }, "engines": { - "node": ">= 6" + "node": ">=6" } }, - "node_modules/protobufjs": { - "version": "6.11.4", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.4.tgz", - "integrity": "sha512-5kQWPaJHi1WoCpjTGszzQ32PG2F4+wRY6BmAT4Vfw56Q2FZ4YZzK20xUYQH4YkfehY1e6QSICrJquM6xXZNcrw==", - "hasInstallScript": true, + "node_modules/pad-left": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/pad-left/-/pad-left-2.1.0.tgz", + "integrity": "sha512-HJxs9K9AztdIQIAIa/OIazRAUW/L6B9hbQDxO4X07roW3eo9XqZc2ur9bn1StH9CnbbI9EgvejHQX7CBpCF1QA==", + "peer": true, "dependencies": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.1", - "@types/node": ">=13.7.0", - "long": "^4.0.0" + "repeat-string": "^1.5.4" }, - "bin": { - "pbjs": "bin/pbjs", - "pbts": "bin/pbts" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/protobufjs/node_modules/long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" - }, - "node_modules/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" - }, - "node_modules/psl": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", - "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==" - }, - "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "callsites": "^3.0.0" + }, "engines": { "node": ">=6" } }, - "node_modules/pure-rand": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.4.tgz", - "integrity": "sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA==", + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/dubzzz" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/fast-check" - } - ] - }, - "node_modules/qs": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", - "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, "engines": { - "node": ">=0.6" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/querystringify": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", - "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "peer": true - }, - "node_modules/queue-tick": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz", - "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==" + "node_modules/parse5": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", + "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", + "dependencies": { + "entities": "^4.4.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } }, - "node_modules/rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "node_modules/parse5-htmlparser2-tree-adapter": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz", + "integrity": "sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==", "dependencies": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" + "domhandler": "^5.0.2", + "parse5": "^7.0.0" }, - "bin": { - "rc": "cli.js" + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" } }, - "node_modules/rc/node_modules/strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", "engines": { "node": ">=0.10.0" } }, - "node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "engines": { + "node": ">=8" + } }, - "node_modules/readable-stream": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.5.2.tgz", - "integrity": "sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==", - "optional": true, - "dependencies": { - "abort-controller": "^3.0.0", - "buffer": "^6.0.3", - "events": "^3.3.0", - "process": "^0.11.10", - "string_decoder": "^1.3.0" - }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=8" } }, - "node_modules/regexp.prototype.flags": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", - "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", + "node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==" + }, + "node_modules/pg": { + "version": "8.11.5", + "resolved": "https://registry.npmjs.org/pg/-/pg-8.11.5.tgz", + "integrity": "sha512-jqgNHSKL5cbDjFlHyYsCXmQDrfIX/3RsNwYqpd4N0Kt8niLuNoRNH+aazv6cOd43gPh9Y4DjQCtb+X0MH0Hvnw==", "dependencies": { - "call-bind": "^1.0.6", - "define-properties": "^1.2.1", - "es-errors": "^1.3.0", - "set-function-name": "^2.0.1" + "pg-connection-string": "^2.6.4", + "pg-pool": "^3.6.2", + "pg-protocol": "^1.6.1", + "pg-types": "^2.1.0", + "pgpass": "1.x" }, "engines": { - "node": ">= 0.4" + "node": ">= 8.0.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "optionalDependencies": { + "pg-cloudflare": "^1.1.1" + }, + "peerDependencies": { + "pg-native": ">=3.0.1" + }, + "peerDependenciesMeta": { + "pg-native": { + "optional": true + } } }, - "node_modules/repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", - "peer": true, + "node_modules/pg-cloudflare": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pg-cloudflare/-/pg-cloudflare-1.1.1.tgz", + "integrity": "sha512-xWPagP/4B6BgFO+EKz3JONXv3YDgvkbVrGw2mTo3D6tVDQRh1e7cqVGvyR3BE+eQgAvx1XhW/iEASj4/jCWl3Q==", + "optional": true + }, + "node_modules/pg-connection-string": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.6.4.tgz", + "integrity": "sha512-v+Z7W/0EO707aNMaAEfiGnGL9sxxumwLl2fJvCQtMn9Fxsg+lPpPkdcyBSv/KFgpGdYkMfn+EI1Or2EHjpgLCA==" + }, + "node_modules/pg-int8": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz", + "integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==", "engines": { - "node": ">=0.10" + "node": ">=4.0.0" } }, - "node_modules/replicate": { - "version": "0.26.0", - "resolved": "https://registry.npmjs.org/replicate/-/replicate-0.26.0.tgz", - "integrity": "sha512-BR7zI/pJp11IuCZZ38hdJVZ07ZCfe6b3tbPuUpRIbt76sVKoGtQhn4Cp2H6/r6qU1fOO6dHadl2VKK4Y0j9Lkg==", - "engines": { - "git": ">=2.11.0", - "node": ">=18.0.0", - "npm": ">=7.19.0", - "yarn": ">=1.7.0" - }, - "optionalDependencies": { - "readable-stream": ">=4.0.0" + "node_modules/pg-pool": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.6.2.tgz", + "integrity": "sha512-Htjbg8BlwXqSBQ9V8Vjtc+vzf/6fVUuak/3/XXKA9oxZprwW3IMDQTGHP+KDmVL7rtd+R1QjbnCFPuTHm3G4hg==", + "peerDependencies": { + "pg": ">=8.0" } }, - "node_modules/request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", + "node_modules/pg-protocol": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.6.1.tgz", + "integrity": "sha512-jPIlvgoD63hrEuihvIg+tJhoGjUsLPn6poJY9N5CnlPd91c2T18T/9zBtLxZSb1EhYxBRoZJtzScCaWlYLtktg==" + }, + "node_modules/pg-types": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz", + "integrity": "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==", "dependencies": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" + "pg-int8": "1.0.1", + "postgres-array": "~2.0.0", + "postgres-bytea": "~1.0.0", + "postgres-date": "~1.0.4", + "postgres-interval": "^1.1.0" }, "engines": { - "node": ">= 6" + "node": ">=4" } }, - "node_modules/request/node_modules/form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "node_modules/pgpass": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/pgpass/-/pgpass-1.0.5.tgz", + "integrity": "sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==", "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 0.12" + "split2": "^4.1.0" } }, - "node_modules/request/node_modules/tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dependencies": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - }, + "node_modules/picocolors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, "engines": { - "node": ">=0.8" + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/request/node_modules/uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", - "bin": { - "uuid": "bin/uuid" + "node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "engines": { + "node": ">=4" } }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">= 6" } }, - "node_modules/requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==" - }, - "node_modules/resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" + "find-up": "^4.0.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=8" } }, - "node_modules/resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "node_modules/pkg-dir/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, "dependencies": { - "resolve-from": "^5.0.0" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" }, "engines": { "node": ">=8" } }, - "node_modules/resolve-cwd/node_modules/resolve-from": { + "node_modules/pkg-dir/node_modules/locate-path": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, "engines": { "node": ">=8" } }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "peer": true, + "node_modules/pkg-dir/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, "engines": { - "node": ">=4" + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/resolve.exports": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", - "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", + "node_modules/pkg-dir/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, "engines": { - "node": ">=10" + "node": ">=8" } }, - "node_modules/retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", - "optional": true, + "node_modules/platform": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/platform/-/platform-1.3.6.tgz", + "integrity": "sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg==" + }, + "node_modules/possible-typed-array-names": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", + "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", "engines": { - "node": ">= 4" + "node": ">= 0.4" } }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "peer": true, + "node_modules/postgres-array": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz", + "integrity": "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==", "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" + "node": ">=4" } }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node_modules/postgres-bytea": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz", + "integrity": "sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==", + "engines": { + "node": ">=0.10.0" } }, - "node_modules/rollup": { - "version": "3.29.4", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz", - "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==", - "dev": true, - "peer": true, - "bin": { - "rollup": "dist/bin/rollup" - }, + "node_modules/postgres-date": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz", + "integrity": "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==", "engines": { - "node": ">=14.18.0", - "npm": ">=8.0.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" + "node": ">=0.10.0" } }, - "node_modules/rrweb-cssom": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.6.0.tgz", - "integrity": "sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==" - }, - "node_modules/run-parallel": { + "node_modules/postgres-interval": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "peer": true, + "resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz", + "integrity": "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==", "dependencies": { - "queue-microtask": "^1.2.2" + "xtend": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/rusha": { - "version": "0.8.14", - "resolved": "https://registry.npmjs.org/rusha/-/rusha-0.8.14.tgz", - "integrity": "sha512-cLgakCUf6PedEu15t8kbsjnwIFFR2D4RfL+W3iWFJ4iac7z4B0ZI8fxy4R3J956kAI68HclCFGL8MPoUVC3qVA==" - }, - "node_modules/safe-array-concat": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", - "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", + "node_modules/posthog-node": { + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/posthog-node/-/posthog-node-3.6.3.tgz", + "integrity": "sha512-JB+ei0LkwE+rKHyW5z79Nd1jUaGxU6TvkfjFqY9vQaHxU5aU8dRl0UUaEmZdZbHwjp3WmXCBQQRNyimwbNQfCw==", "dependencies": { - "call-bind": "^1.0.7", - "get-intrinsic": "^1.2.4", - "has-symbols": "^1.0.3", - "isarray": "^2.0.5" + "axios": "^1.6.2", + "rusha": "^0.8.14" }, "engines": { - "node": ">=0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=15.0.0" } }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/safe-regex-test": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", - "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", + "node_modules/prebuild-install": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.2.tgz", + "integrity": "sha512-UnNke3IQb6sgarcZIDU3gbMeTp/9SSU1DAIkil7PrqG1vZlBtY5msYccSKSHDqa3hNg436IXK+SNImReuA1wEQ==", "dependencies": { - "call-bind": "^1.0.6", - "es-errors": "^1.3.0", - "is-regex": "^1.1.4" + "detect-libc": "^2.0.0", + "expand-template": "^2.0.3", + "github-from-package": "0.0.0", + "minimist": "^1.2.3", + "mkdirp-classic": "^0.5.3", + "napi-build-utils": "^1.0.1", + "node-abi": "^3.3.0", + "pump": "^3.0.0", + "rc": "^1.2.7", + "simple-get": "^4.0.0", + "tar-fs": "^2.0.0", + "tunnel-agent": "^0.6.0" }, - "engines": { - "node": ">= 0.4" + "bin": { + "prebuild-install": "bin.js" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=10" } }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + "node_modules/prebuild-install/node_modules/chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" }, - "node_modules/saxes": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", - "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", + "node_modules/prebuild-install/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dependencies": { - "xmlchars": "^2.2.0" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" }, "engines": { - "node": ">=v12.22.7" - } - }, - "node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "bin": { - "semver": "bin/semver.js" + "node": ">= 6" } }, - "node_modules/seq-queue": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/seq-queue/-/seq-queue-0.0.5.tgz", - "integrity": "sha512-hr3Wtp/GZIc/6DAGPDcV4/9WoZhjrkXsi5B/07QgX8tsdc6ilr7BFM6PM6rbdAX1kFSDYeZGLipIZZKyQP0O5Q==" - }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", - "optional": true + "node_modules/prebuild-install/node_modules/tar-fs": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", + "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", + "dependencies": { + "chownr": "^1.1.1", + "mkdirp-classic": "^0.5.2", + "pump": "^3.0.0", + "tar-stream": "^2.1.4" + } }, - "node_modules/set-function-length": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", - "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "node_modules/prebuild-install/node_modules/tar-stream": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2" + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" }, "engines": { - "node": ">= 0.4" + "node": ">=6" } }, - "node_modules/set-function-name": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", - "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", - "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "functions-have-names": "^1.2.3", - "has-property-descriptors": "^1.0.2" - }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "engines": { - "node": ">= 0.4" + "node": ">= 0.8.0" } }, - "node_modules/sharp": { - "version": "0.32.6", - "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.32.6.tgz", - "integrity": "sha512-KyLTWwgcR9Oe4d9HwCwNM2l7+J0dUQwn/yf7S0EnTtb0eVS4RxO0eUSvxPtzT4F3SY+C4K6fqdv/DO27sJ/v/w==", - "hasInstallScript": true, + "node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dev": true, "dependencies": { - "color": "^4.2.3", - "detect-libc": "^2.0.2", - "node-addon-api": "^6.1.0", - "prebuild-install": "^7.1.1", - "semver": "^7.5.4", - "simple-get": "^4.0.1", - "tar-fs": "^3.0.4", - "tunnel-agent": "^0.6.0" + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" }, "engines": { - "node": ">=14.15.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" }, "funding": { - "url": "https://opencollective.com/libvips" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/sharp/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "optional": true, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", + "optional": true + }, + "node_modules/promise-retry": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", + "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", + "optional": true, "dependencies": { - "yallist": "^4.0.0" + "err-code": "^2.0.2", + "retry": "^0.12.0" }, "engines": { "node": ">=10" } }, - "node_modules/sharp/node_modules/semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" }, "engines": { - "node": ">=10" + "node": ">= 6" } }, - "node_modules/sharp/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "node_modules/protobufjs": { + "version": "6.11.4", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.4.tgz", + "integrity": "sha512-5kQWPaJHi1WoCpjTGszzQ32PG2F4+wRY6BmAT4Vfw56Q2FZ4YZzK20xUYQH4YkfehY1e6QSICrJquM6xXZNcrw==", + "hasInstallScript": true, "dependencies": { - "shebang-regex": "^3.0.0" + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/long": "^4.0.1", + "@types/node": ">=13.7.0", + "long": "^4.0.0" }, - "engines": { - "node": ">=8" + "bin": { + "pbjs": "bin/pbjs", + "pbts": "bin/pbts" } }, - "node_modules/shebang-regex": { + "node_modules/protobufjs/node_modules/long": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", + "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, + "node_modules/psl": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", + "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==" + }, + "node_modules/pump": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "engines": { - "node": ">=8" + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" } }, - "node_modules/side-channel": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", - "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", - "dependencies": { - "call-bind": "^1.0.7", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4", - "object-inspect": "^1.13.1" - }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=6" } }, - "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "devOptional": true - }, - "node_modules/simple-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", - "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", + "node_modules/pure-rand": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.1.0.tgz", + "integrity": "sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==", + "dev": true, "funding": [ { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" + "type": "individual", + "url": "https://github.com/sponsors/dubzzz" }, { - "type": "consulting", - "url": "https://feross.org/support" + "type": "opencollective", + "url": "https://opencollective.com/fast-check" } ] }, - "node_modules/simple-get": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz", - "integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==", + "node_modules/qs": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", + "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", "funding": [ { "type": "github", @@ -8912,418 +12401,535 @@ "type": "consulting", "url": "https://feross.org/support" } - ], + ] + }, + "node_modules/queue-tick": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz", + "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==" + }, + "node_modules/rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", "dependencies": { - "decompress-response": "^6.0.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" } }, - "node_modules/simple-swizzle": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", - "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", - "dependencies": { - "is-arrayish": "^0.3.1" + "node_modules/rc/node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "engines": { + "node": ">=0.10.0" } }, - "node_modules/simple-swizzle/node_modules/is-arrayish": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", - "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" - }, - "node_modules/sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", "dev": true }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/smart-buffer": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", - "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "node_modules/readable-stream": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.5.2.tgz", + "integrity": "sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==", "optional": true, - "engines": { - "node": ">= 6.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/socket.io-client": { - "version": "4.7.4", - "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.7.4.tgz", - "integrity": "sha512-wh+OkeF0rAVCrABWQBaEjLfb7DVPotMbu0cgWgyR0v6eA4EoVnAwcIeIbcdTE3GT/H3kbdLl7OoH2+asoDRIIg==", "dependencies": { - "@socket.io/component-emitter": "~3.1.0", - "debug": "~4.3.2", - "engine.io-client": "~6.5.2", - "socket.io-parser": "~4.2.4" + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10", + "string_decoder": "^1.3.0" }, "engines": { - "node": ">=10.0.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/socket.io-parser": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.4.tgz", - "integrity": "sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==", + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", + "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", + "dev": true, "dependencies": { - "@socket.io/component-emitter": "~3.1.0", - "debug": "~4.3.1" + "regenerate": "^1.4.2" }, "engines": { - "node": ">=10.0.0" + "node": ">=4" } }, - "node_modules/socks": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.1.tgz", - "integrity": "sha512-B6w7tkwNid7ToxjZ08rQMT8M9BJAf8DKx8Ft4NivzH0zBUfd6jldGcisJn/RLgxcX3FPNDdNQCUEMMT79b+oCQ==", - "optional": true, + "node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", + "dev": true + }, + "node_modules/regenerator-transform": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", + "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", + "dev": true, "dependencies": { - "ip-address": "^9.0.5", - "smart-buffer": "^4.2.0" - }, - "engines": { - "node": ">= 10.0.0", - "npm": ">= 3.0.0" + "@babel/runtime": "^7.8.4" } }, - "node_modules/socks-proxy-agent": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz", - "integrity": "sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==", - "optional": true, + "node_modules/regexp.prototype.flags": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", + "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", "dependencies": { - "agent-base": "^6.0.2", - "debug": "^4.3.3", - "socks": "^2.6.2" + "call-bind": "^1.0.6", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "set-function-name": "^2.0.1" }, "engines": { - "node": ">= 10" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/socks-proxy-agent/node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "optional": true, + "node_modules/regexpu-core": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", + "dev": true, "dependencies": { - "debug": "4" + "@babel/regjsgen": "^0.8.0", + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsparser": "^0.9.1", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" }, "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "engines": { - "node": ">=0.10.0" + "node": ">=4" } }, - "node_modules/source-map-js": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", - "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "node_modules/regjsparser": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", "dev": true, - "peer": true, - "engines": { - "node": ">=0.10.0" + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" } }, - "node_modules/source-map-support": { - "version": "0.5.13", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", - "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", "dev": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" + "bin": { + "jsesc": "bin/jsesc" } }, - "node_modules/split2": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", - "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", + "node_modules/repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", "engines": { - "node": ">= 10.x" + "node": ">=0.10" } }, - "node_modules/sprintf-js": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", - "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", - "optional": true - }, - "node_modules/sqlite": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/sqlite/-/sqlite-5.1.1.tgz", - "integrity": "sha512-oBkezXa2hnkfuJwUo44Hl9hS3er+YFtueifoajrgidvqsJRQFpc5fKoAkAor1O5ZnLoa28GBScfHXs8j0K358Q==" - }, - "node_modules/sqlite3": { - "version": "5.1.7", - "resolved": "https://registry.npmjs.org/sqlite3/-/sqlite3-5.1.7.tgz", - "integrity": "sha512-GGIyOiFaG+TUra3JIfkI/zGP8yZYLPQ0pl1bH+ODjiX57sPhrLU5sQJn1y9bDKZUFYkX1crlrPfSYt0BKKdkog==", - "hasInstallScript": true, - "dependencies": { - "bindings": "^1.5.0", - "node-addon-api": "^7.0.0", - "prebuild-install": "^7.1.1", - "tar": "^6.1.11" + "node_modules/replicate": { + "version": "0.26.0", + "resolved": "https://registry.npmjs.org/replicate/-/replicate-0.26.0.tgz", + "integrity": "sha512-BR7zI/pJp11IuCZZ38hdJVZ07ZCfe6b3tbPuUpRIbt76sVKoGtQhn4Cp2H6/r6qU1fOO6dHadl2VKK4Y0j9Lkg==", + "engines": { + "git": ">=2.11.0", + "node": ">=18.0.0", + "npm": ">=7.19.0", + "yarn": ">=1.7.0" }, "optionalDependencies": { - "node-gyp": "8.x" - }, - "peerDependencies": { - "node-gyp": "8.x" - }, - "peerDependenciesMeta": { - "node-gyp": { - "optional": true - } + "readable-stream": ">=4.0.0" } }, - "node_modules/sqlite3/node_modules/node-addon-api": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.0.tgz", - "integrity": "sha512-mNcltoe1R8o7STTegSOHdnJNN7s5EUvhoS7ShnTHDyOSd+8H+UdWODq6qSv67PjC8Zc5JRT8+oLAMCr0SIXw7g==", + "node_modules/request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", + "dependencies": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, "engines": { - "node": "^16 || ^18 || >= 20" + "node": ">= 6" } }, - "node_modules/sqlstring": { + "node_modules/request/node_modules/form-data": { "version": "2.3.3", - "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.3.tgz", - "integrity": "sha512-qC9iz2FlN7DQl3+wjwn3802RTyjCx7sDvfQEXchwa6CWOx07/WVfh91gBmQ9fahw8snwGEWU3xGzOt4tFyHLxg==", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + }, "engines": { - "node": ">= 0.6" + "node": ">= 0.12" } }, - "node_modules/sshpk": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.18.0.tgz", - "integrity": "sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==", + "node_modules/request/node_modules/tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", "dependencies": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" + "psl": "^1.1.28", + "punycode": "^2.1.1" }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/request/node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", "bin": { - "sshpk-conv": "bin/sshpk-conv", - "sshpk-sign": "bin/sshpk-sign", - "sshpk-verify": "bin/sshpk-verify" - }, + "uuid": "bin/uuid" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, "engines": { "node": ">=0.10.0" } }, - "node_modules/sshpk/node_modules/jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==" + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==" }, - "node_modules/ssri": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", - "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", - "optional": true, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "dependencies": { - "minipass": "^3.1.1" + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" }, - "engines": { - "node": ">= 8" + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/stack-utils": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", - "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", "dev": true, "dependencies": { - "escape-string-regexp": "^2.0.0" + "resolve-from": "^5.0.0" }, "engines": { - "node": ">=10" + "node": ">=8" } }, - "node_modules/stack-utils/node_modules/escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "node_modules/resolve-cwd/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true, "engines": { "node": ">=8" } }, - "node_modules/stream-read-all": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/stream-read-all/-/stream-read-all-3.0.1.tgz", - "integrity": "sha512-EWZT9XOceBPlVJRrYcykW8jyRSZYbkb/0ZK36uLEmoWVO5gxBOnntNTseNzfREsqxqdfEGQrD8SXQ3QWbBmq8A==", - "peer": true, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve.exports": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", + "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", + "dev": true, "engines": { "node": ">=10" } }, - "node_modules/streamx": { - "version": "2.16.1", - "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.16.1.tgz", - "integrity": "sha512-m9QYj6WygWyWa3H1YY69amr4nVgy61xfjys7xO7kviL5rfIEc2naf+ewFiOA+aEJD7y0JO3h2GoiUv4TDwEGzQ==", + "node_modules/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", + "optional": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dependencies": { - "fast-fifo": "^1.1.0", - "queue-tick": "^1.0.1" + "glob": "^7.1.3" }, - "optionalDependencies": { - "bare-events": "^2.2.0" + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "node_modules/rrweb-cssom": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.6.0.tgz", + "integrity": "sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==" + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], "dependencies": { - "safe-buffer": "~5.2.0" + "queue-microtask": "^1.2.2" } }, - "node_modules/string-length": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", - "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", - "dev": true, + "node_modules/rusha": { + "version": "0.8.14", + "resolved": "https://registry.npmjs.org/rusha/-/rusha-0.8.14.tgz", + "integrity": "sha512-cLgakCUf6PedEu15t8kbsjnwIFFR2D4RfL+W3iWFJ4iac7z4B0ZI8fxy4R3J956kAI68HclCFGL8MPoUVC3qVA==" + }, + "node_modules/safe-array-concat": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", + "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", "dependencies": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" }, "engines": { - "node": ">=10" + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "devOptional": true, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safe-regex-test": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", + "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-regex": "^1.1.4" }, "engines": { - "node": ">=8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/string.prototype.trim": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", - "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==", + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/saxes": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", + "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=v12.22.7" + } + }, + "node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/seq-queue": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/seq-queue/-/seq-queue-0.0.5.tgz", + "integrity": "sha512-hr3Wtp/GZIc/6DAGPDcV4/9WoZhjrkXsi5B/07QgX8tsdc6ilr7BFM6PM6rbdAX1kFSDYeZGLipIZZKyQP0O5Q==" + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", + "optional": true + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" }, "engines": { "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/string.prototype.trimend": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz", - "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==", + "node_modules/set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">= 0.4" } }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", - "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", + "node_modules/sharp": { + "version": "0.32.6", + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.32.6.tgz", + "integrity": "sha512-KyLTWwgcR9Oe4d9HwCwNM2l7+J0dUQwn/yf7S0EnTtb0eVS4RxO0eUSvxPtzT4F3SY+C4K6fqdv/DO27sJ/v/w==", + "hasInstallScript": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "color": "^4.2.3", + "detect-libc": "^2.0.2", + "node-addon-api": "^6.1.0", + "prebuild-install": "^7.1.1", + "semver": "^7.5.4", + "simple-get": "^4.0.1", + "tar-fs": "^3.0.4", + "tunnel-agent": "^0.6.0" + }, + "engines": { + "node": ">=14.15.0" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://opencollective.com/libvips" } }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dependencies": { - "ansi-regex": "^5.0.1" + "shebang-regex": "^3.0.0" }, "engines": { "node": ">=8" } }, - "node_modules/strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/side-channel": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", "dependencies": { - "has-flag": "^4.0.0" + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", "engines": { "node": ">= 0.4" }, @@ -9331,366 +12937,409 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/symbol-tree": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", - "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==" + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "devOptional": true }, - "node_modules/table-layout": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-3.0.2.tgz", - "integrity": "sha512-rpyNZYRw+/C+dYkcQ3Pr+rLxW4CfHpXjPDnG7lYhdRoUcZTUt+KEsX+94RGp/aVp/MQU35JCITv2T/beY4m+hw==", - "peer": true, + "node_modules/simple-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", + "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/simple-get": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz", + "integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], "dependencies": { - "@75lb/deep-merge": "^1.1.1", - "array-back": "^6.2.2", - "command-line-args": "^5.2.1", - "command-line-usage": "^7.0.0", - "stream-read-all": "^3.0.1", - "typical": "^7.1.1", - "wordwrapjs": "^5.1.0" - }, - "bin": { - "table-layout": "bin/cli.js" - }, - "engines": { - "node": ">=12.17" + "decompress-response": "^6.0.0", + "once": "^1.3.1", + "simple-concat": "^1.0.0" } }, - "node_modules/table-layout/node_modules/array-back": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-6.2.2.tgz", - "integrity": "sha512-gUAZ7HPyb4SJczXAMUXMGAvI976JoK3qEx9v1FTmeYuJj0IBiaKttG1ydtGKdkfqWkIkouke7nG8ufGy77+Cvw==", - "peer": true, + "node_modules/simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", + "dependencies": { + "is-arrayish": "^0.3.1" + } + }, + "node_modules/simple-swizzle/node_modules/is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "engines": { - "node": ">=12.17" + "node": ">=8" } }, - "node_modules/table-layout/node_modules/typical": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/typical/-/typical-7.1.1.tgz", - "integrity": "sha512-T+tKVNs6Wu7IWiAce5BgMd7OZfNYUndHwc5MknN+UHOudi7sGZzuHdCadllRuqJ3fPtgFtIH9+lt9qRv6lmpfA==", - "peer": true, + "node_modules/slide": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", + "integrity": "sha512-NwrtjCg+lZoqhFU8fOwl4ay2ei8PaqCBOUV3/ektPY9trO1yQ1oXEfmHAhKArUVUr/hOHvy5f6AdP17dCM0zMw==", "engines": { - "node": ">=12.17" + "node": "*" } }, - "node_modules/tar": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz", - "integrity": "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==", - "dependencies": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^5.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - }, + "node_modules/smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "optional": true, "engines": { - "node": ">=10" + "node": ">= 6.0.0", + "npm": ">= 3.0.0" } }, - "node_modules/tar-fs": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.5.tgz", - "integrity": "sha512-JOgGAmZyMgbqpLwct7ZV8VzkEB6pxXFBVErLtb+XCOqzc6w1xiWKI9GVd6bwk68EX7eJ4DWmfXVmq8K2ziZTGg==", + "node_modules/socket.io-client": { + "version": "4.7.5", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.7.5.tgz", + "integrity": "sha512-sJ/tqHOCe7Z50JCBCXrsY3I2k03iOiUe+tj1OmKeD2lXPiGH/RUCdTZFoqVyN7l1MnpIzPrGtLcijffmeouNlQ==", "dependencies": { - "pump": "^3.0.0", - "tar-stream": "^3.1.5" + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.2", + "engine.io-client": "~6.5.2", + "socket.io-parser": "~4.2.4" }, - "optionalDependencies": { - "bare-fs": "^2.1.1", - "bare-path": "^2.1.0" + "engines": { + "node": ">=10.0.0" } }, - "node_modules/tar-stream": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz", - "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==", + "node_modules/socket.io-parser": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.4.tgz", + "integrity": "sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==", "dependencies": { - "b4a": "^1.6.4", - "fast-fifo": "^1.2.0", - "streamx": "^2.15.0" + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.1" + }, + "engines": { + "node": ">=10.0.0" } }, - "node_modules/tar/node_modules/minipass": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "node_modules/socks": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.3.tgz", + "integrity": "sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==", + "optional": true, + "dependencies": { + "ip-address": "^9.0.5", + "smart-buffer": "^4.2.0" + }, "engines": { - "node": ">=8" + "node": ">= 10.0.0", + "npm": ">= 3.0.0" } }, - "node_modules/tar/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, - "node_modules/test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "dev": true, + "node_modules/socks-proxy-agent": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz", + "integrity": "sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==", + "optional": true, "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" + "agent-base": "^6.0.2", + "debug": "^4.3.3", + "socks": "^2.6.2" }, "engines": { - "node": ">=8" + "node": ">= 10" } }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "peer": true - }, - "node_modules/tmpl": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", - "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", - "dev": true + "node_modules/socks-proxy-agent/node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "optional": true, + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "node_modules/source-map-support": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", "dev": true, "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" } }, - "node_modules/tough-cookie": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz", - "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==", + "node_modules/split": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", + "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", "dependencies": { - "psl": "^1.1.33", - "punycode": "^2.1.1", - "universalify": "^0.2.0", - "url-parse": "^1.5.3" + "through": "2" }, "engines": { - "node": ">=6" + "node": "*" } }, - "node_modules/tr46": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-5.0.0.tgz", - "integrity": "sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g==", - "dependencies": { - "punycode": "^2.3.1" - }, + "node_modules/split2": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", + "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", "engines": { - "node": ">=18" + "node": ">= 10.x" } }, - "node_modules/tree-sitter-wasms": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/tree-sitter-wasms/-/tree-sitter-wasms-0.1.7.tgz", - "integrity": "sha512-/EnmSDDqEnSnIuCqVhSOc14T8r792LmiztqlZMFSRg+4ACrgUWNLvEr2AUP1K76XCJrvuH8liSWfkdQpK41hIA==" + "node_modules/sprintf-js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", + "optional": true }, - "node_modules/ts-jest": { - "version": "29.1.2", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.1.2.tgz", - "integrity": "sha512-br6GJoH/WUX4pu7FbZXuWGKGNDuU7b8Uj77g/Sp7puZV6EXzuByl6JrECvm0MzVzSTkSHWTihsXt+5XYER5b+g==", - "dev": true, + "node_modules/sqlite": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/sqlite/-/sqlite-5.1.1.tgz", + "integrity": "sha512-oBkezXa2hnkfuJwUo44Hl9hS3er+YFtueifoajrgidvqsJRQFpc5fKoAkAor1O5ZnLoa28GBScfHXs8j0K358Q==" + }, + "node_modules/sqlite3": { + "version": "5.1.7", + "resolved": "https://registry.npmjs.org/sqlite3/-/sqlite3-5.1.7.tgz", + "integrity": "sha512-GGIyOiFaG+TUra3JIfkI/zGP8yZYLPQ0pl1bH+ODjiX57sPhrLU5sQJn1y9bDKZUFYkX1crlrPfSYt0BKKdkog==", + "hasInstallScript": true, "dependencies": { - "bs-logger": "0.x", - "fast-json-stable-stringify": "2.x", - "jest-util": "^29.0.0", - "json5": "^2.2.3", - "lodash.memoize": "4.x", - "make-error": "1.x", - "semver": "^7.5.3", - "yargs-parser": "^21.0.1" - }, - "bin": { - "ts-jest": "cli.js" + "bindings": "^1.5.0", + "node-addon-api": "^7.0.0", + "prebuild-install": "^7.1.1", + "tar": "^6.1.11" }, - "engines": { - "node": "^16.10.0 || ^18.0.0 || >=20.0.0" + "optionalDependencies": { + "node-gyp": "8.x" }, "peerDependencies": { - "@babel/core": ">=7.0.0-beta.0 <8", - "@jest/types": "^29.0.0", - "babel-jest": "^29.0.0", - "jest": "^29.0.0", - "typescript": ">=4.3 <6" + "node-gyp": "8.x" }, "peerDependenciesMeta": { - "@babel/core": { - "optional": true - }, - "@jest/types": { - "optional": true - }, - "babel-jest": { - "optional": true - }, - "esbuild": { + "node-gyp": { "optional": true } } }, - "node_modules/ts-jest/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, + "node_modules/sqlite3/node_modules/node-addon-api": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.0.tgz", + "integrity": "sha512-mNcltoe1R8o7STTegSOHdnJNN7s5EUvhoS7ShnTHDyOSd+8H+UdWODq6qSv67PjC8Zc5JRT8+oLAMCr0SIXw7g==", "engines": { - "node": ">=10" + "node": "^16 || ^18 || >= 20" } }, - "node_modules/ts-jest/node_modules/semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", - "dev": true, + "node_modules/sqlstring": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.3.tgz", + "integrity": "sha512-qC9iz2FlN7DQl3+wjwn3802RTyjCx7sDvfQEXchwa6CWOx07/WVfh91gBmQ9fahw8snwGEWU3xGzOt4tFyHLxg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/sshpk": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.18.0.tgz", + "integrity": "sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==", "dependencies": { - "lru-cache": "^6.0.0" + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" }, "bin": { - "semver": "bin/semver.js" + "sshpk-conv": "bin/sshpk-conv", + "sshpk-sign": "bin/sshpk-sign", + "sshpk-verify": "bin/sshpk-verify" }, "engines": { - "node": ">=10" + "node": ">=0.10.0" } }, - "node_modules/ts-jest/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "node_modules/sshpk/node_modules/jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==" }, - "node_modules/tsconfig-paths": { - "version": "3.15.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", - "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", - "peer": true, + "node_modules/ssri": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", + "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", + "optional": true, "dependencies": { - "@types/json5": "^0.0.29", - "json5": "^1.0.2", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" + "minipass": "^3.1.1" + }, + "engines": { + "node": ">= 8" } }, - "node_modules/tsconfig-paths/node_modules/json5": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", - "peer": true, + "node_modules/stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "dev": true, "dependencies": { - "minimist": "^1.2.0" + "escape-string-regexp": "^2.0.0" }, - "bin": { - "json5": "lib/cli.js" + "engines": { + "node": ">=10" } }, - "node_modules/tsconfig-paths/node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "node_modules/stack-utils/node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/stream-read-all": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/stream-read-all/-/stream-read-all-3.0.1.tgz", + "integrity": "sha512-EWZT9XOceBPlVJRrYcykW8jyRSZYbkb/0ZK36uLEmoWVO5gxBOnntNTseNzfREsqxqdfEGQrD8SXQ3QWbBmq8A==", "peer": true, "engines": { - "node": ">=4" + "node": ">=10" } }, - "node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", - "peer": true - }, - "node_modules/tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "node_modules/streamx": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.16.1.tgz", + "integrity": "sha512-m9QYj6WygWyWa3H1YY69amr4nVgy61xfjys7xO7kviL5rfIEc2naf+ewFiOA+aEJD7y0JO3h2GoiUv4TDwEGzQ==", "dependencies": { - "safe-buffer": "^5.0.1" + "fast-fifo": "^1.1.0", + "queue-tick": "^1.0.1" }, - "engines": { - "node": "*" + "optionalDependencies": { + "bare-events": "^2.2.0" } }, - "node_modules/tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==" + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dependencies": { + "safe-buffer": "~5.2.0" + } }, - "node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "peer": true, + "node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dev": true, "dependencies": { - "prelude-ls": "^1.2.1" + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" }, "engines": { - "node": ">= 0.8.0" + "node": ">=10" } }, - "node_modules/type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "devOptional": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, "engines": { - "node": ">=4" + "node": ">=8" } }, - "node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "peer": true, + "node_modules/string.prototype.trim": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", + "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.0", + "es-object-atoms": "^1.0.0" + }, "engines": { - "node": ">=10" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/typed-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", - "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", + "node_modules/string.prototype.trimend": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", + "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", "dependencies": { "call-bind": "^1.0.7", - "es-errors": "^1.3.0", - "is-typed-array": "^1.1.13" + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" }, - "engines": { - "node": ">= 0.4" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/typed-array-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", - "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", + "node_modules/string.prototype.trimstart": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", "dependencies": { "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-proto": "^1.0.3", - "is-typed-array": "^1.1.13" + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -9699,37 +13348,66 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/typed-array-byte-offset": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", - "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dependencies": { - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-proto": "^1.0.3", - "is-typed-array": "^1.1.13" + "ansi-regex": "^5.0.1" }, "engines": { - "node": ">= 0.4" + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "engines": { + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/typed-array-length": { + "node_modules/strnum": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.5.tgz", - "integrity": "sha512-yMi0PlwuznKHxKmcpoOdeLwxBoVPkqZxd7q2FgMkmD3bNwvF5VW0+UlUQ1k1vmktTu4Yu13Q0RIxEP8+B+wloA==", + "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz", + "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==" + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dependencies": { - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-proto": "^1.0.3", - "is-typed-array": "^1.1.13", - "possible-typed-array-names": "^1.0.0" + "has-flag": "^4.0.0" }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", "engines": { "node": ">= 0.4" }, @@ -9737,697 +13415,672 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/typescript": { - "version": "5.4.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.2.tgz", - "integrity": "sha512-+2/g0Fds1ERlP6JsakQQDXjZdZMM+rqpamFZJEKh4kwTIn3iDkgKtby0CeNd5ATNZ4Ry1ax15TMx0W2V+miizQ==", - "dev": true, + "node_modules/symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==" + }, + "node_modules/system-ca": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/system-ca/-/system-ca-1.0.3.tgz", + "integrity": "sha512-FHwdyDHM/J6SjHNVEp532J5rWsO0oPB/szZGsP/8I2s78mPLQhE0WwKTGi/RJulqTICekINsczg5q44n/1b+lQ==", + "optionalDependencies": { + "macos-export-certificate-and-key": "^1.1.1", + "win-export-certificate-and-key": "^1.1.1" + } + }, + "node_modules/table-layout": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-3.0.2.tgz", + "integrity": "sha512-rpyNZYRw+/C+dYkcQ3Pr+rLxW4CfHpXjPDnG7lYhdRoUcZTUt+KEsX+94RGp/aVp/MQU35JCITv2T/beY4m+hw==", "peer": true, + "dependencies": { + "@75lb/deep-merge": "^1.1.1", + "array-back": "^6.2.2", + "command-line-args": "^5.2.1", + "command-line-usage": "^7.0.0", + "stream-read-all": "^3.0.1", + "typical": "^7.1.1", + "wordwrapjs": "^5.1.0" + }, "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" + "table-layout": "bin/cli.js" }, "engines": { - "node": ">=14.17" + "node": ">=12.17" } }, - "node_modules/typical": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz", - "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==", + "node_modules/table-layout/node_modules/array-back": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-6.2.2.tgz", + "integrity": "sha512-gUAZ7HPyb4SJczXAMUXMGAvI976JoK3qEx9v1FTmeYuJj0IBiaKttG1ydtGKdkfqWkIkouke7nG8ufGy77+Cvw==", "peer": true, "engines": { - "node": ">=8" + "node": ">=12.17" } }, - "node_modules/uglify-js": { - "version": "3.17.4", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", - "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==", - "optional": true, - "bin": { - "uglifyjs": "bin/uglifyjs" - }, + "node_modules/table-layout/node_modules/typical": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/typical/-/typical-7.1.1.tgz", + "integrity": "sha512-T+tKVNs6Wu7IWiAce5BgMd7OZfNYUndHwc5MknN+UHOudi7sGZzuHdCadllRuqJ3fPtgFtIH9+lt9qRv6lmpfA==", + "peer": true, "engines": { - "node": ">=0.8.0" + "node": ">=12.17" } }, - "node_modules/unbox-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "node_modules/tar": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", + "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", "dependencies": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^5.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=10" } }, - "node_modules/undici-types": { - "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" - }, - "node_modules/unique-filename": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", - "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", - "optional": true, + "node_modules/tar-fs": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.6.tgz", + "integrity": "sha512-iokBDQQkUyeXhgPYaZxmczGPhnhXZ0CmrqI+MOb/WFGS9DW5wnfrLgtjUJBvz50vQ3qfRwJ62QVoCFu8mPVu5w==", "dependencies": { - "unique-slug": "^2.0.0" + "pump": "^3.0.0", + "tar-stream": "^3.1.5" + }, + "optionalDependencies": { + "bare-fs": "^2.1.1", + "bare-path": "^2.1.0" } }, - "node_modules/unique-slug": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", - "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", - "optional": true, + "node_modules/tar-stream": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz", + "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==", "dependencies": { - "imurmurhash": "^0.1.4" + "b4a": "^1.6.4", + "fast-fifo": "^1.2.0", + "streamx": "^2.15.0" } }, - "node_modules/universal-user-agent": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.1.tgz", - "integrity": "sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==" - }, - "node_modules/universalify": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", - "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", + "node_modules/tar/node_modules/minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", "engines": { - "node": ">= 4.0.0" + "node": ">=8" } }, - "node_modules/update-browserslist-db": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", - "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "node_modules/tar/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - }, - "bin": { - "update-browserslist-db": "cli.js" + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" }, - "peerDependencies": { - "browserslist": ">= 4.21.0" + "engines": { + "node": ">=8" } }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "node_modules/test-exclude/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, "dependencies": { - "punycode": "^2.1.0" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "node_modules/url-parse": { - "version": "1.5.10", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", - "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "node_modules/test-exclude/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, "dependencies": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" } }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==" }, - "node_modules/uuid": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", - "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", - "funding": [ - "https://github.com/sponsors/broofa", - "https://github.com/sponsors/ctavan" - ], - "bin": { - "uuid": "dist/bin/uuid" - } + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" }, - "node_modules/v8-to-istanbul": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.2.0.tgz", - "integrity": "sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==", + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dependencies": { - "@jridgewell/trace-mapping": "^0.3.12", - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^2.0.0" + "is-number": "^7.0.0" }, "engines": { - "node": ">=10.12.0" + "node": ">=8.0" } }, - "node_modules/vectordb": { - "version": "0.4.12", - "resolved": "https://registry.npmjs.org/vectordb/-/vectordb-0.4.12.tgz", - "integrity": "sha512-H2mFwZ87d3BcuX4yGx5RoW06amRZQ3W5u/FRTNc86rwVINuEEa+Ivsqng1i8hURHXoTDbF/0Y9qwCshySkeznQ==", - "cpu": [ - "x64", - "arm64" - ], - "os": [ - "darwin", - "linux", - "win32" - ], + "node_modules/tough-cookie": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.4.tgz", + "integrity": "sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==", "dependencies": { - "@neon-rs/load": "^0.0.74", - "axios": "^1.4.0" - }, - "optionalDependencies": { - "@lancedb/vectordb-darwin-arm64": "0.4.12", - "@lancedb/vectordb-darwin-x64": "0.4.12", - "@lancedb/vectordb-linux-arm64-gnu": "0.4.12", - "@lancedb/vectordb-linux-x64-gnu": "0.4.12", - "@lancedb/vectordb-win32-x64-msvc": "0.4.12" + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.2.0", + "url-parse": "^1.5.3" }, - "peerDependencies": { - "@apache-arrow/ts": "^14.0.2", - "apache-arrow": "^14.0.2" + "engines": { + "node": ">=6" } }, - "node_modules/verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", - "engines": [ - "node >=0.6.0" - ], + "node_modules/tr46": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-5.0.0.tgz", + "integrity": "sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g==", "dependencies": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" + "punycode": "^2.3.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/tree-sitter-wasms": { + "version": "0.1.11", + "resolved": "https://registry.npmjs.org/tree-sitter-wasms/-/tree-sitter-wasms-0.1.11.tgz", + "integrity": "sha512-26sE4+qoTi1CbzHdo9sHs9pRE/jXVFVRigSG/5TNAbwhSMVjHfMAg4UjmOhAFAIx5UxgoQuaURwqhm0SRNrpWA==" + }, + "node_modules/ts-api-utils": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", + "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==", + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "typescript": ">=4.2.0" } }, - "node_modules/vite": { - "version": "4.5.3", - "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.3.tgz", - "integrity": "sha512-kQL23kMeX92v3ph7IauVkXkikdDRsYMGTVl5KY2E9OY4ONLvkHf04MDTbnfo6NKxZiDLWzVpP5oTa8hQD8U3dg==", + "node_modules/ts-jest": { + "version": "29.1.3", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.1.3.tgz", + "integrity": "sha512-6L9qz3ginTd1NKhOxmkP0qU3FyKjj5CPoY+anszfVn6Pmv/RIKzhiMCsH7Yb7UvJR9I2A64rm4zQl531s2F1iw==", "dev": true, - "peer": true, "dependencies": { - "esbuild": "^0.18.10", - "postcss": "^8.4.27", - "rollup": "^3.27.1" + "bs-logger": "0.x", + "fast-json-stable-stringify": "2.x", + "jest-util": "^29.0.0", + "json5": "^2.2.3", + "lodash.memoize": "4.x", + "make-error": "1.x", + "semver": "^7.5.3", + "yargs-parser": "^21.0.1" }, "bin": { - "vite": "bin/vite.js" + "ts-jest": "cli.js" }, "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/vitejs/vite?sponsor=1" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" + "node": "^14.15.0 || ^16.10.0 || ^18.0.0 || >=20.0.0" }, "peerDependencies": { - "@types/node": ">= 14", - "less": "*", - "lightningcss": "^1.21.0", - "sass": "*", - "stylus": "*", - "sugarss": "*", - "terser": "^5.4.0" + "@babel/core": ">=7.0.0-beta.0 <8", + "@jest/transform": "^29.0.0", + "@jest/types": "^29.0.0", + "babel-jest": "^29.0.0", + "jest": "^29.0.0", + "typescript": ">=4.3 <6" }, "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "less": { - "optional": true - }, - "lightningcss": { + "@babel/core": { "optional": true }, - "sass": { + "@jest/transform": { "optional": true }, - "stylus": { + "@jest/types": { "optional": true }, - "sugarss": { + "babel-jest": { "optional": true }, - "terser": { + "esbuild": { "optional": true } } }, - "node_modules/vite-plugin-node": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/vite-plugin-node/-/vite-plugin-node-3.1.0.tgz", - "integrity": "sha512-LN9byKedZaokEWcH+DTdeV7YLN34dWH7Em2ldHZ77oVGvC/uxHnK43AGPrV9+9CoOh1x9X3Yc55vW/OQYssFDQ==", - "dev": true, + "node_modules/tsconfig-paths": { + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", + "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tsconfig-paths/node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/tsconfig-paths/node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + }, + "node_modules/tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", "dependencies": { - "@rollup/pluginutils": "^4.1.1", - "chalk": "^4.1.2", - "debug": "^4.3.2" - }, - "peerDependencies": { - "@swc/core": "^1.2.153", - "vite": "^4.0.0" + "safe-buffer": "^5.0.1" }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - } - } - }, - "node_modules/vite/node_modules/@esbuild/android-arm": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz", - "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "peer": true, "engines": { - "node": ">=12" + "node": "*" } }, - "node_modules/vite/node_modules/@esbuild/android-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz", - "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "peer": true, + "node_modules/tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==" + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dependencies": { + "prelude-ls": "^1.2.1" + }, "engines": { - "node": ">=12" + "node": ">= 0.8.0" } }, - "node_modules/vite/node_modules/@esbuild/android-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz", - "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==", - "cpu": [ - "x64" - ], + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", "dev": true, - "optional": true, - "os": [ - "android" - ], - "peer": true, "engines": { - "node": ">=12" + "node": ">=4" } }, - "node_modules/vite/node_modules/@esbuild/darwin-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz", - "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "peer": true, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "engines": { - "node": ">=12" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/vite/node_modules/@esbuild/darwin-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz", - "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "peer": true, + "node_modules/typed-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", + "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.13" + }, "engines": { - "node": ">=12" + "node": ">= 0.4" } }, - "node_modules/vite/node_modules/@esbuild/freebsd-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz", - "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "peer": true, + "node_modules/typed-array-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", + "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, "engines": { - "node": ">=12" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/vite/node_modules/@esbuild/freebsd-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz", - "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "peer": true, + "node_modules/typed-array-byte-offset": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", + "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, "engines": { - "node": ">=12" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/vite/node_modules/@esbuild/linux-arm": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz", - "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "peer": true, + "node_modules/typed-array-length": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz", + "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0" + }, "engines": { - "node": ">=12" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/vite/node_modules/@esbuild/linux-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz", - "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], + "node_modules/typescript": { + "version": "5.4.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", + "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", "peer": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, "engines": { - "node": ">=12" + "node": ">=14.17" } }, - "node_modules/vite/node_modules/@esbuild/linux-ia32": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz", - "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], + "node_modules/typical": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz", + "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==", "peer": true, "engines": { - "node": ">=12" + "node": ">=8" } }, - "node_modules/vite/node_modules/@esbuild/linux-loong64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz", - "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==", - "cpu": [ - "loong64" - ], - "dev": true, + "node_modules/uglify-js": { + "version": "3.17.4", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", + "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==", "optional": true, - "os": [ - "linux" - ], - "peer": true, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, "engines": { - "node": ">=12" + "node": ">=0.8.0" } }, - "node_modules/vite/node_modules/@esbuild/linux-mips64el": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz", - "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==", - "cpu": [ - "mips64el" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">=12" + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/vite/node_modules/@esbuild/linux-ppc64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz", - "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "peer": true, + "node_modules/undici": { + "version": "6.18.2", + "resolved": "https://registry.npmjs.org/undici/-/undici-6.18.2.tgz", + "integrity": "sha512-o/MQLTwRm9IVhOqhZ0NQ9oXax1ygPjw6Vs+Vq/4QRjbOAC3B1GCHy7TYxxbExKlb7bzDRzt9vBWU6BDz0RFfYg==", "engines": { - "node": ">=12" + "node": ">=18.17" } }, - "node_modules/vite/node_modules/@esbuild/linux-riscv64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz", - "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==", - "cpu": [ - "riscv64" - ], + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", "dev": true, - "optional": true, - "os": [ - "linux" - ], - "peer": true, "engines": { - "node": ">=12" + "node": ">=4" } }, - "node_modules/vite/node_modules/@esbuild/linux-s390x": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz", - "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==", - "cpu": [ - "s390x" - ], + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", "dev": true, - "optional": true, - "os": [ - "linux" - ], - "peer": true, + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, "engines": { - "node": ">=12" + "node": ">=4" } }, - "node_modules/vite/node_modules/@esbuild/linux-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz", - "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==", - "cpu": [ - "x64" - ], + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", "dev": true, - "optional": true, - "os": [ - "linux" - ], - "peer": true, "engines": { - "node": ">=12" + "node": ">=4" } }, - "node_modules/vite/node_modules/@esbuild/netbsd-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz", - "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==", - "cpu": [ - "x64" - ], + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", "dev": true, - "optional": true, - "os": [ - "netbsd" - ], - "peer": true, "engines": { - "node": ">=12" + "node": ">=4" } }, - "node_modules/vite/node_modules/@esbuild/openbsd-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz", - "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==", - "cpu": [ - "x64" - ], - "dev": true, + "node_modules/unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", "optional": true, - "os": [ - "openbsd" - ], - "peer": true, - "engines": { - "node": ">=12" + "dependencies": { + "unique-slug": "^2.0.0" } }, - "node_modules/vite/node_modules/@esbuild/sunos-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz", - "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==", - "cpu": [ - "x64" - ], - "dev": true, + "node_modules/unique-slug": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", "optional": true, - "os": [ - "sunos" - ], - "peer": true, + "dependencies": { + "imurmurhash": "^0.1.4" + } + }, + "node_modules/universal-user-agent": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.1.tgz", + "integrity": "sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==" + }, + "node_modules/universalify": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", "engines": { - "node": ">=12" + "node": ">= 4.0.0" } }, - "node_modules/vite/node_modules/@esbuild/win32-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz", - "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==", - "cpu": [ - "arm64" - ], + "node_modules/update-browserslist-db": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz", + "integrity": "sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==", "dev": true, - "optional": true, - "os": [ - "win32" + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } ], - "peer": true, - "engines": { - "node": ">=12" + "dependencies": { + "escalade": "^3.1.2", + "picocolors": "^1.0.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" } }, - "node_modules/vite/node_modules/@esbuild/win32-ia32": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz", - "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==", - "cpu": [ - "ia32" + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" ], + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/v8-to-istanbul": { + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.2.0.tgz", + "integrity": "sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==", "dev": true, - "optional": true, - "os": [ - "win32" - ], - "peer": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.12", + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^2.0.0" + }, "engines": { - "node": ">=12" + "node": ">=10.12.0" } }, - "node_modules/vite/node_modules/@esbuild/win32-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz", - "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==", + "node_modules/vectordb": { + "version": "0.4.20", + "resolved": "https://registry.npmjs.org/vectordb/-/vectordb-0.4.20.tgz", + "integrity": "sha512-A8X5uvNMl7btbKBshaOx0A6R6Q2eQqOE5Ifwu6r1fZALOS+V0rnoQmUKa1K1v31Vcr3S5GvQsFIl+v6yWataqA==", "cpu": [ - "x64" + "x64", + "arm64" ], - "dev": true, - "optional": true, "os": [ + "darwin", + "linux", "win32" ], - "peer": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/esbuild": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz", - "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==", - "dev": true, - "hasInstallScript": true, - "peer": true, - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" + "dependencies": { + "@neon-rs/load": "^0.0.74", + "axios": "^1.4.0" }, "optionalDependencies": { - "@esbuild/android-arm": "0.18.20", - "@esbuild/android-arm64": "0.18.20", - "@esbuild/android-x64": "0.18.20", - "@esbuild/darwin-arm64": "0.18.20", - "@esbuild/darwin-x64": "0.18.20", - "@esbuild/freebsd-arm64": "0.18.20", - "@esbuild/freebsd-x64": "0.18.20", - "@esbuild/linux-arm": "0.18.20", - "@esbuild/linux-arm64": "0.18.20", - "@esbuild/linux-ia32": "0.18.20", - "@esbuild/linux-loong64": "0.18.20", - "@esbuild/linux-mips64el": "0.18.20", - "@esbuild/linux-ppc64": "0.18.20", - "@esbuild/linux-riscv64": "0.18.20", - "@esbuild/linux-s390x": "0.18.20", - "@esbuild/linux-x64": "0.18.20", - "@esbuild/netbsd-x64": "0.18.20", - "@esbuild/openbsd-x64": "0.18.20", - "@esbuild/sunos-x64": "0.18.20", - "@esbuild/win32-arm64": "0.18.20", - "@esbuild/win32-ia32": "0.18.20", - "@esbuild/win32-x64": "0.18.20" + "@lancedb/vectordb-darwin-arm64": "0.4.20", + "@lancedb/vectordb-darwin-x64": "0.4.20", + "@lancedb/vectordb-linux-arm64-gnu": "0.4.20", + "@lancedb/vectordb-linux-x64-gnu": "0.4.20", + "@lancedb/vectordb-win32-x64-msvc": "0.4.20" + }, + "peerDependencies": { + "@apache-arrow/ts": "^14.0.2", + "apache-arrow": "^14.0.2" + } + }, + "node_modules/verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" } }, "node_modules/w3c-xmlserializer": { @@ -10537,15 +14190,15 @@ } }, "node_modules/which-typed-array": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.14.tgz", - "integrity": "sha512-VnXFiIW8yNn9kIHN88xvZ4yOWchftKDsRJ8fEPacX/wl1lOvBrhsJ/OeJCXq7B0AaijRuqgzSKalJoPk+D8MPg==", + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", + "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", "dependencies": { - "available-typed-arrays": "^1.0.6", - "call-bind": "^1.0.5", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", "for-each": "^0.3.3", "gopd": "^1.0.1", - "has-tostringtag": "^1.0.1" + "has-tostringtag": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -10563,6 +14216,58 @@ "string-width": "^1.0.2 || 2 || 3 || 4" } }, + "node_modules/win-ca": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/win-ca/-/win-ca-3.5.1.tgz", + "integrity": "sha512-RNy9gpBS6cxWHjfbqwBA7odaHyT+YQNhtdpJZwYCFoxB/Dq22oeOZ9YCXMwjhLytKpo7JJMnKdJ/ve7N12zzfQ==", + "hasInstallScript": true, + "dependencies": { + "is-electron": "^2.2.0", + "make-dir": "^1.3.0", + "node-forge": "^1.2.1", + "split": "^1.0.1" + } + }, + "node_modules/win-ca/node_modules/make-dir": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", + "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "dependencies": { + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/win-export-certificate-and-key": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/win-export-certificate-and-key/-/win-export-certificate-and-key-1.1.2.tgz", + "integrity": "sha512-3Su7Xdt9UR8pZicWQDcGSWNL6We/NzAGxe7AeQ1Z/zAeGHWlTKAh3HemGvIvxLRPsk4NW9D/QL3cL6SIvFcTvQ==", + "hasInstallScript": true, + "optional": true, + "os": [ + "win32" + ], + "dependencies": { + "bindings": "^1.5.0", + "node-addon-api": "^3.1.0", + "node-forge": "^1.2.1" + } + }, + "node_modules/win-export-certificate-and-key/node_modules/node-addon-api": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz", + "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==", + "optional": true + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/wordwrap": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", @@ -10613,9 +14318,9 @@ } }, "node_modules/ws": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz", - "integrity": "sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==", + "version": "8.17.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.0.tgz", + "integrity": "sha512-uJq6108EgZMAl20KagGkzCKfMEjxmKvZHG7Tlq0Z6nOky7YF7aq4mOx6xK8TJ/i1LeK4Qus7INktacctDgY8Ow==", "engines": { "node": ">=10.0.0" }, @@ -10676,6 +14381,17 @@ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "dev": true }, + "node_modules/yaml": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.2.tgz", + "integrity": "sha512-B3VqDZ+JAg1nZpaEmWtTXUlBneoGx6CPM9b0TENK6aoSu5t73dItudwdgmi6tHlIZZId4dZ9skcAQ2UbcyAeVA==", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14" + } + }, "node_modules/yargs": { "version": "17.7.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", @@ -10713,6 +14429,14 @@ "funding": { "url": "https://github.com/sponsors/sindresorhus" } + }, + "node_modules/zod": { + "version": "3.23.8", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.23.8.tgz", + "integrity": "sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } } } } diff --git a/core/package.json b/core/package.json index 24041a75f..cfd12929f 100644 --- a/core/package.json +++ b/core/package.json @@ -1,39 +1,54 @@ { "name": "@continuedev/core", - "version": "1.0.6", + "version": "1.0.13", "description": "The Continue Core contains functionality that can be shared across web, VS Code, or Node.js server. It is written in TypeScript and contains much of the functionality that was previously inside of the legacy Continue Python Server.", "scripts": { - "test": "jest ./test/diff.test.ts", - "build:npm": "tsc -p ./tsconfig.npm.json" + "test": "jest", + "build:npm": "tsc -p ./tsconfig.npm.json", + "lint": "eslint . --ext ts", + "lint:fix": "eslint . --ext ts --fix" }, + "type": "module", "author": "Nate Sesti and Ty Dunn", "license": "Apache-2.0", "devDependencies": { + "@babel/preset-env": "^7.24.7", + "@biomejs/biome": "1.6.4", "@google/generative-ai": "^0.11.4", "@types/follow-redirects": "^1.14.4", - "@types/handlebars": "^4.1.0", - "@types/jest": "^29.5.11", + "@types/jest": "^29.5.12", "@types/jquery": "^3.5.29", "@types/mustache": "^4.2.5", "@types/uuid": "^9.0.7", - "esbuild": "^0.19.11", + "esbuild": "0.17.19", + "eslint": "^8", + "eslint-plugin-import": "^2.29.1", "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "vite-plugin-node": "^3.1.0" + "onnxruntime-common": "1.14.0", + "onnxruntime-web": "1.14.0", + "ts-jest": "^29.1.1" }, "dependencies": { + "@aws-sdk/client-bedrock-runtime": "^3.574.0", + "@aws-sdk/credential-providers": "^3.596.0", + "@continuedev/config-types": "^1.0.6", + "@continuedev/llm-info": "^1.0.1", "@mozilla/readability": "^0.5.0", "@octokit/rest": "^20.0.2", "@types/jsdom": "^21.1.6", "@types/mozilla-readability": "^0.2.1", "@types/node-fetch": "^2.6.11", - "@xenova/transformers": "^2.14.0", + "@typescript-eslint/eslint-plugin": "^7.8.0", + "@typescript-eslint/parser": "^7.8.0", + "@xenova/transformers": "2.14.0", "adf-to-md": "^1.1.0", + "async-mutex": "^0.5.0", "axios": "^1.6.7", "cheerio": "^1.0.0-rc.12", "commander": "^12.0.0", + "comment-json": "^4.2.3", "dbinfoz": "^0.1.4", - "dotenv": "^16.3.1", + "dotenv": "^16.4.5", "fastest-levenshtein": "^1.0.16", "follow-redirects": "^1.15.5", "handlebars": "^4.7.8", @@ -42,23 +57,29 @@ "ignore": "^5.3.1", "js-tiktoken": "^1.0.8", "jsdom": "^24.0.0", - "llama-tokenizer-js": "^1.1.3", + "launchdarkly-node-client-sdk": "^3.2.0", "llm-code-highlighter": "^0.0.14", + "mac-ca": "^3.1.0", "node-fetch": "^3.3.2", "node-html-markdown": "^1.3.0", "ollama": "^0.4.6", + "onnxruntime-node": "1.14.0", "openai": "^4.20.1", "pg": "^8.11.3", - "posthog-node": "^3.6.2", + "posthog-node": "^3.6.3", "replicate": "^0.26.0", "request": "^2.88.2", "socket.io-client": "^4.7.3", "sqlite": "^5.1.1", "sqlite3": "^5.1.7", - "tree-sitter-wasms": "^0.1.6", + "system-ca": "^1.0.3", + "tree-sitter-wasms": "^0.1.11", "uuid": "^9.0.1", - "vectordb": "0.4.12", - "web-tree-sitter": "^0.21.0" + "vectordb": "^0.4.20", + "web-tree-sitter": "^0.21.0", + "win-ca": "^3.5.1", + "yaml": "^2.4.2", + "zod": "^3.23.8" }, "puppeteer": { "chromium_revision": "119.0.6045.105" diff --git a/core/protocol/core.ts b/core/protocol/core.ts new file mode 100644 index 000000000..df143b9ba --- /dev/null +++ b/core/protocol/core.ts @@ -0,0 +1,141 @@ +import type { + BrowserSerializedContinueConfig, + ChatMessage, + ContextItemWithId, + ContextSubmenuItem, + DiffLine, + IdeSettings, + LLMFullCompletionOptions, + MessageContent, + ModelDescription, + PersistedSessionInfo, + RangeInFile, + SerializedContinueConfig, + SessionInfo, + SiteIndexingConfig, +} from ".."; +import type { AutocompleteInput } from "../autocomplete/completionProvider"; + +export type ProtocolGeneratorType = AsyncGenerator<{ + done?: boolean; + content: T; +}>; + +export interface ListHistoryOptions { + offset?: number; + limit?: number; +} + +export type ToCoreFromIdeOrWebviewProtocol = { + "update/modelChange": [string, void]; + "update/selectTabAutocompleteModel": [string, void]; + + // Special + ping: [string, string]; + abort: [undefined, void]; + + // History + "history/list": [ListHistoryOptions, SessionInfo[]]; + "history/delete": [{ id: string }, void]; + "history/load": [{ id: string }, PersistedSessionInfo]; + "history/save": [PersistedSessionInfo, void]; + "devdata/log": [{ tableName: string; data: any }, void]; + "config/addOpenAiKey": [string, void]; + "config/addModel": [ + { model: SerializedContinueConfig["models"][number] }, + void, + ]; + "config/newPromptFile": [undefined, void]; + "config/ideSettingsUpdate": [IdeSettings, void]; + "config/getBrowserSerialized": [undefined, BrowserSerializedContinueConfig]; + "config/deleteModel": [{ title: string }, void]; + "config/reload": [undefined, BrowserSerializedContinueConfig]; + "context/getContextItems": [ + { + name: string; + query: string; + fullInput: string; + selectedCode: RangeInFile[]; + }, + ContextItemWithId[], + ]; + "context/loadSubmenuItems": [{ title: string }, ContextSubmenuItem[]]; + "autocomplete/complete": [AutocompleteInput, string[]]; + "context/addDocs": [SiteIndexingConfig, void]; + "context/removeDocs": [{ baseUrl: string }, void]; + "autocomplete/cancel": [undefined, void]; + "autocomplete/accept": [{ completionId: string }, void]; + "command/run": [ + { + input: string; + history: ChatMessage[]; + modelTitle: string; + slashCommandName: string; + contextItems: ContextItemWithId[]; + params: any; + historyIndex: number; + selectedCode: RangeInFile[]; + }, + ProtocolGeneratorType, + ]; + "llm/complete": [ + { + prompt: string; + completionOptions: LLMFullCompletionOptions; + title: string; + }, + string, + ]; + "llm/listModels": [{ title: string }, string[] | undefined]; + "llm/streamComplete": [ + { + prompt: string; + completionOptions: LLMFullCompletionOptions; + title: string; + }, + ProtocolGeneratorType, + ]; + "llm/streamChat": [ + { + messages: ChatMessage[]; + completionOptions: LLMFullCompletionOptions; + title: string; + }, + ProtocolGeneratorType, + ]; + streamDiffLines: [ + { + prefix: string; + highlighted: string; + suffix: string; + input: string; + language: string | undefined; + modelTitle: string | undefined; + }, + ProtocolGeneratorType, + ]; + "stats/getTokensPerDay": [ + undefined, + { day: string; promptTokens: number; generatedTokens: number }[], + ]; + "stats/getTokensPerModel": [ + undefined, + { model: string; promptTokens: number; generatedTokens: number }[], + ]; + "index/setPaused": [boolean, void]; + "index/forceReIndex": [undefined | string, void]; + "index/indexingProgressBarInitialized": [undefined, void]; + completeOnboarding: [ + { + mode: + | "local" + | "apiKeys" + | "custom" + | "freeTrial" + | "localAfterFreeTrial" + | "bestExperience"; + }, + void, + ]; + addAutocompleteModel: [{ model: ModelDescription }, void]; +}; diff --git a/core/protocol/coreWebview.ts b/core/protocol/coreWebview.ts new file mode 100644 index 000000000..6aa130112 --- /dev/null +++ b/core/protocol/coreWebview.ts @@ -0,0 +1,5 @@ +import { ToCoreFromIdeOrWebviewProtocol } from "./core.js"; +import { ToWebviewFromIdeOrCoreProtocol } from "./webview.js"; + +export type ToCoreFromWebviewProtocol = ToCoreFromIdeOrWebviewProtocol; +export type ToWebviewFromCoreProtocol = ToWebviewFromIdeOrCoreProtocol; diff --git a/core/protocol/ide.ts b/core/protocol/ide.ts new file mode 100644 index 000000000..84a5fc1ab --- /dev/null +++ b/core/protocol/ide.ts @@ -0,0 +1,79 @@ +import type { + ContinueRcJson, + DiffLine, + FileType, + IdeInfo, + IdeSettings, + IndexTag, + Location, + Problem, + Range, + RangeInFile, + Thread, +} from ".."; + +export type ToIdeFromWebviewOrCoreProtocol = { + // Methods from IDE type + getIdeInfo: [undefined, IdeInfo]; + getWorkspaceDirs: [undefined, string[]]; + listFolders: [undefined, string[]]; + writeFile: [{ path: string; contents: string }, void]; + showVirtualFile: [{ name: string; content: string }, void]; + getContinueDir: [undefined, string]; + openFile: [{ path: string }, void]; + runCommand: [{ command: string }, void]; + getSearchResults: [{ query: string }, string]; + subprocess: [{ command: string }, [string, string]]; + saveFile: [{ filepath: string }, void]; + fileExists: [{ filepath: string }, boolean]; + readFile: [{ filepath: string }, string]; + showDiff: [ + { filepath: string; newContents: string; stepIndex: number }, + void, + ]; + diffLine: [ + { + diffLine: DiffLine; + filepath: string; + startLine: number; + endLine: number; + }, + void, + ]; + getProblems: [{ filepath: string }, Problem[]]; + getOpenFiles: [undefined, string[]]; + getCurrentFile: [undefined, string | undefined]; + getPinnedFiles: [undefined, string[]]; + showLines: [{ filepath: string; startLine: number; endLine: number }, void]; + readRangeInFile: [{ filepath: string; range: Range }, string]; + getDiff: [undefined, string]; + getWorkspaceConfigs: [undefined, ContinueRcJson[]]; + getTerminalContents: [undefined, string]; + getDebugLocals: [{ threadIndex: number }, string]; + getTopLevelCallStackSources: [ + { threadIndex: number; stackDepth: number }, + string[], + ]; + getAvailableThreads: [undefined, Thread[]]; + isTelemetryEnabled: [undefined, boolean]; + getUniqueId: [undefined, string]; + getTags: [string, IndexTag[]]; + // end methods from IDE type + + getIdeSettings: [undefined, IdeSettings]; + + // Git + getBranch: [{ dir: string }, string]; + getRepoName: [{ dir: string }, string | undefined]; + + errorPopup: [{ message: string }, void]; + infoPopup: [{ message: string }, void]; + getGitRootPath: [{ dir: string }, string | undefined]; + listDir: [{ dir: string }, [string, FileType][]]; + getLastModified: [{ files: string[] }, { [path: string]: number }]; + + gotoDefinition: [{ location: Location }, RangeInFile[]]; + + getGitHubAuthToken: [undefined, string | undefined]; + pathSep: [undefined, string]; +}; diff --git a/core/protocol/ideCore.ts b/core/protocol/ideCore.ts new file mode 100644 index 000000000..eca0acde5 --- /dev/null +++ b/core/protocol/ideCore.ts @@ -0,0 +1,5 @@ +import { ToCoreFromIdeOrWebviewProtocol } from "./core.js"; +import { ToIdeFromWebviewOrCoreProtocol } from "./ide.js"; + +export type ToIdeFromCoreProtocol = ToIdeFromWebviewOrCoreProtocol; +export type ToCoreFromIdeProtocol = ToCoreFromIdeOrWebviewProtocol; diff --git a/core/protocol/ideWebview.ts b/core/protocol/ideWebview.ts new file mode 100644 index 000000000..7b50d574a --- /dev/null +++ b/core/protocol/ideWebview.ts @@ -0,0 +1,65 @@ +import type { ChatHistory, ContextSubmenuItem } from ".."; +import type { RangeInFileWithContents } from "../commands/util"; +import { ToIdeFromWebviewOrCoreProtocol } from "./ide.js"; +import { ToWebviewFromIdeOrCoreProtocol } from "./webview.js"; + +export type ToIdeFromWebviewProtocol = ToIdeFromWebviewOrCoreProtocol & { + onLoad: [ + undefined, + { + windowId: string; + serverUrl: string; + workspacePaths: string[]; + vscMachineId: string; + vscMediaUrl: string; + }, + ]; + openUrl: [string, void]; + applyToCurrentFile: [{ text: string }, void]; + showTutorial: [undefined, void]; + showFile: [{ filepath: string }, void]; + openConfigJson: [undefined, void]; + toggleDevTools: [undefined, void]; + reloadWindow: [undefined, void]; + focusEditor: [undefined, void]; + toggleFullScreen: [undefined, void]; + insertAtCursor: [{ text: string }, void]; + copyText: [{ text: string }, void]; + "jetbrains/editorInsetHeight": [{ height: number }, void]; + setGitHubAuthToken: [{ token: string }, void]; + saveSessionChatHistory: [ { chatHistory: ChatHistory, defaultTitle: string }, void]; +}; + +export type ToWebviewFromIdeProtocol = ToWebviewFromIdeOrCoreProtocol & { + setInactive: [undefined, void]; + submitMessage: [{ message: any }, void]; // any -> JSONContent from TipTap + updateSubmenuItems: [ + { provider: string; submenuItems: ContextSubmenuItem[] }, + void, + ]; + newSessionWithPrompt: [{ prompt: string }, void]; + userInput: [{ input: string }, void]; + focusContinueInput: [undefined, void]; + focusContinueInputWithoutClear: [undefined, void]; + focusContinueInputWithNewSession: [undefined, void]; + highlightedCode: [ + { + rangeInFileWithContents: RangeInFileWithContents; + prompt?: string; + shouldRun?: boolean; + }, + void, + ]; + addModel: [undefined, void]; + openSettings: [undefined, void]; + viewHistory: [undefined, void]; + newSession: [undefined, void]; + setTheme: [{ theme: any }, void]; + setColors: [{ [key: string]: string }, void]; + "jetbrains/editorInsetRefresh": [undefined, void]; + addApiKey: [undefined, void]; + setupLocalModel: [undefined, void]; + incrementFtc: [undefined, void]; + openOnboarding: [undefined, void]; + sendSessionChatHistory: [undefined, void] +}; diff --git a/core/protocol/index.ts b/core/protocol/index.ts new file mode 100644 index 000000000..ac89c3b42 --- /dev/null +++ b/core/protocol/index.ts @@ -0,0 +1,29 @@ +import { + ToCoreFromWebviewProtocol, + ToWebviewFromCoreProtocol, +} from "./coreWebview.js"; +import { ToCoreFromIdeProtocol, ToIdeFromCoreProtocol } from "./ideCore.js"; +import { + ToIdeFromWebviewProtocol, + ToWebviewFromIdeProtocol, +} from "./ideWebview.js"; + +export type IProtocol = Record; + +// IDE +export type ToIdeProtocol = ToIdeFromWebviewProtocol & ToIdeFromCoreProtocol; +export type FromIdeProtocol = ToWebviewFromIdeProtocol & + ToCoreFromIdeProtocol & { + didChangeActiveTextEditor: [{ filepath: string }, void]; + }; + +// Webview +export type ToWebviewProtocol = ToWebviewFromIdeProtocol & + ToWebviewFromCoreProtocol; +export type FromWebviewProtocol = ToIdeFromWebviewProtocol & + ToCoreFromWebviewProtocol; + +// Core +export type ToCoreProtocol = ToCoreFromIdeProtocol | ToCoreFromWebviewProtocol; +export type FromCoreProtocol = ToWebviewFromCoreProtocol & + ToIdeFromCoreProtocol; diff --git a/core/protocol/passThrough.ts b/core/protocol/passThrough.ts new file mode 100644 index 000000000..f0734bcac --- /dev/null +++ b/core/protocol/passThrough.ts @@ -0,0 +1,54 @@ +import { + ToCoreFromWebviewProtocol, + ToWebviewFromCoreProtocol, +} from "./coreWebview.js"; + +// Message types to pass through from webview to core +export const WEBVIEW_TO_CORE_PASS_THROUGH: (keyof ToCoreFromWebviewProtocol)[] = + [ + "update/modelChange", + "ping", + "abort", + "history/list", + "history/delete", + "history/load", + "history/save", + "devdata/log", + "config/addOpenAiKey", + "config/addModel", + "config/newPromptFile", + "config/ideSettingsUpdate", + "config/getBrowserSerialized", + "config/deleteModel", + "config/reload", + "context/getContextItems", + "context/loadSubmenuItems", + "context/addDocs", + "context/removeDocs", + "autocomplete/complete", + "autocomplete/cancel", + "autocomplete/accept", + "command/run", + "llm/complete", + "llm/streamComplete", + "llm/streamChat", + "llm/listModels", + "streamDiffLines", + "stats/getTokensPerDay", + "stats/getTokensPerModel", + "index/setPaused", + "index/forceReIndex", + "index/indexingProgressBarInitialized", + "completeOnboarding", + "addAutocompleteModel", + ]; + +// Message types to pass through from core to webview +export const CORE_TO_WEBVIEW_PASS_THROUGH: (keyof ToWebviewFromCoreProtocol)[] = + [ + "configUpdate", + "getDefaultModelTitle", + "indexProgress", + "addContextItem", + "refreshSubmenuItems", + ]; diff --git a/core/protocol/webview.ts b/core/protocol/webview.ts new file mode 100644 index 000000000..c0326bfa0 --- /dev/null +++ b/core/protocol/webview.ts @@ -0,0 +1,15 @@ +import type { ContextItemWithId, IndexingProgressUpdate } from ".."; + +export type ToWebviewFromIdeOrCoreProtocol = { + configUpdate: [undefined, void]; + getDefaultModelTitle: [undefined, string]; + indexProgress: [IndexingProgressUpdate, void]; + refreshSubmenuItems: [undefined, void]; + addContextItem: [ + { + historyIndex: number; + item: ContextItemWithId; + }, + void, + ]; +}; diff --git a/core/test/.gitignore b/core/test/.gitignore new file mode 100644 index 000000000..227f3fc4f --- /dev/null +++ b/core/test/.gitignore @@ -0,0 +1 @@ +scratch.test.ts \ No newline at end of file diff --git a/core/test/_testEnv.test.ts b/core/test/_testEnv.test.ts new file mode 100644 index 000000000..3ebddd64b --- /dev/null +++ b/core/test/_testEnv.test.ts @@ -0,0 +1,6 @@ +describe("Test environment", () => { + test("should have CONTINUE_GLOBAL_DIR env var set to .continue-test", () => { + expect(process.env.CONTINUE_GLOBAL_DIR).toBeDefined(); + expect(process.env.CONTINUE_GLOBAL_DIR)?.toMatch(/\.continue-test$/); + }); +}); diff --git a/core/test/baseLLM.test.ts b/core/test/baseLLM.test.ts new file mode 100644 index 000000000..9a6f4fc3d --- /dev/null +++ b/core/test/baseLLM.test.ts @@ -0,0 +1,140 @@ +import { ChatMessage, LLMOptions, ModelProvider } from "../index"; +import { BaseLLM } from "../llm/index.js"; + +class DummyLLM extends BaseLLM { + static providerName: ModelProvider = "openai"; + static defaultOptions: Partial = { + model: "dummy-model", + contextLength: 200_000, + completionOptions: { + model: "some-model", + maxTokens: 4096, + }, + apiBase: "https://api.test-api-dummy.com/v1/", + }; +} +describe("BaseLLM", () => { + let baseLLM: BaseLLM; + + beforeEach(() => { + const options: LLMOptions = { + model: "dummy-model", + }; + // Instantiate a DummyLLM instance + baseLLM = new DummyLLM(options); + }); + + describe("BaseLLM constructor", () => { + it("should correctly initialize with given options", () => { + const templatMessagesFunction = (messages: ChatMessage[]) => { + return messages[0]?.content.toString() ?? ""; + }; + const writeLogFunction = async () => {}; + const options: LLMOptions = { + model: "gpt-3.5-turbo", + uniqueId: "testId", + systemMessage: "Test System Message", + contextLength: 1024, + completionOptions: { + model: "some-model", + maxTokens: 150, + }, + requestOptions: {}, + promptTemplates: {}, + templateMessages: templatMessagesFunction, + writeLog: writeLogFunction, + llmRequestHook: () => {}, + apiKey: "testApiKey", + aiGatewaySlug: "testSlug", + apiBase: "https://api.example.com", + accountId: "testAccountId", + engine: "davinci", + apiVersion: "v1", + apiType: "public", + region: "us", + projectId: "testProjectId", + }; + + const instance = new DummyLLM(options); + + expect(instance.title).toBeDefined(); + expect(instance.uniqueId).toBe("testId"); + expect(instance.model).toBe("gpt-3.5-turbo"); + expect(instance.systemMessage).toBe("Test System Message"); + expect(instance.contextLength).toBe(1024); + expect(instance.completionOptions.maxTokens).toBe(150); + expect(instance.requestOptions).toEqual({}); + expect(instance.promptTemplates).toEqual({}); + expect(instance.templateMessages).toEqual(templatMessagesFunction); + expect(instance.writeLog).toBe(writeLogFunction); + expect(instance.apiKey).toBe("testApiKey"); + expect(instance.aiGatewaySlug).toBe("testSlug"); + expect(instance.apiBase).toBe("https://api.example.com/"); + expect(instance.accountId).toBe("testAccountId"); + expect(instance.engine).toBe("davinci"); + expect(instance.apiVersion).toBe("v1"); + expect(instance.apiType).toBe("public"); + expect(instance.region).toBe("us"); + expect(instance.projectId).toBe("testProjectId"); + }); + }); + + test("model should return correct provider model", () => { + expect(baseLLM.model).toBe("dummy-model"); + }); + + test("supportsFim should always return false", () => { + expect(baseLLM.supportsFim()).toBe(false); + }); + + describe("supportsImages", () => { + test("should return true when modelSupportsImages returns true", () => { + baseLLM.model = "gpt-4-vision"; + expect(baseLLM.supportsImages()).toBe(true); + }); + + test("should return false when modelSupportsImages returns false", () => { + expect(baseLLM.supportsImages()).toBe(false); + }); + }); + + describe("supportsCompletions", () => { + test("should return correctly under specific conditions", () => { + // Mocking properties and scenarios to match the conditions in supportsCompletions + baseLLM.apiBase = "api.groq.com"; + expect(baseLLM.supportsCompletions()).toBe(false); + + baseLLM.apiBase = "api.mistral.ai"; + expect(baseLLM.supportsCompletions()).toBe(false); + + baseLLM.apiBase = ":1337"; + expect(baseLLM.supportsCompletions()).toBe(false); + + baseLLM.apiBase = "something:3000"; + expect(baseLLM.supportsCompletions()).toBe(true); + }); + }); + describe("supportsPrefill", () => { + test("should return correctly under specific conditions", () => { + expect(baseLLM.supportsPrefill()).toBe(false); + + class PrefillLLM extends BaseLLM { + static providerName: ModelProvider = "ollama"; + } + const prefillLLM = new PrefillLLM({ model: "some-model" }); + expect(prefillLLM.supportsPrefill()).toBe(true); + }); + }); + describe("fetch", () => { + // TODO: Implement tests for fetch method + }); + describe("*_streamFim", () => { + // TODO: Implement tests for *_streamFim method + }); + describe("complete", () => { + // TODO: Implement tests for complete method + }); + describe("*streamChat", () => { + // TODO: Implement tests for *streamChat method + }); +}); diff --git a/core/test/context/retrieval/RetrievalPipeline.test.ts b/core/test/context/retrieval/RetrievalPipeline.test.ts new file mode 100644 index 000000000..03e1a5c3b --- /dev/null +++ b/core/test/context/retrieval/RetrievalPipeline.test.ts @@ -0,0 +1,25 @@ +import { IRetrievalPipeline } from "../../../context/retrieval/pipelines/BaseRetrievalPipeline"; + +function testRetrievalPipeline(pipeline: IRetrievalPipeline) { + test("should successfully run"); +} + + +describe.skip("RetrievalPipeline", () => { + test.todo("should successfully run"); +}); + +// describe("Retrieval Pipelines", () => { +// const ide = new FileSystemIde(); +// const options: RetrievalPipelineOptions; + +// test("NoRerankerRetrievalPipeline", () => { +// const pipeline = new NoRerankerRetrievalPipeline(options); +// testRetrievalPipeline(pipeline); +// }); + +// test("NoRerankerRetrievalPipeline", () => { +// const pipeline = new NoRerankerRetrievalPipeline(options); +// testRetrievalPipeline(pipeline); +// }); +// }); diff --git a/core/test/indexing/CodebaseIndexer.skip.ts b/core/test/indexing/CodebaseIndexer.skip.ts new file mode 100644 index 000000000..404ef96fd --- /dev/null +++ b/core/test/indexing/CodebaseIndexer.skip.ts @@ -0,0 +1,175 @@ +import fs from "node:fs"; +import path from "node:path"; +import { ConfigHandler } from "../../config/ConfigHandler"; +import { ContinueServerClient } from "../../continueServer/stubs/client"; +import { CodebaseIndexer, PauseToken } from "../../indexing/CodebaseIndexer"; +import { LanceDbIndex } from "../../indexing/LanceDbIndex"; +import TransformersJsEmbeddingsProvider from "../../indexing/embeddings/TransformersJsEmbeddingsProvider"; +import FileSystemIde from "../../util/filesystem"; +import { + getIndexFolderPath, + getIndexSqlitePath, + getLanceDbPath, +} from "../../util/paths"; +import { + addToTestDir, + setUpTestDir, + tearDownTestDir, + TEST_DIR, +} from "../testUtils/testDir"; + +const TEST_TS = `\ +function main() { + console.log("Hello, world!"); +} + +class Foo { + constructor(public bar: string) {} +} +`; + +const TEST_PY = `\ +def main(): + print("Hello, world!") + +class Foo: + def __init__(self, bar: str): + self.bar = bar +`; + +const TEST_RS = `\ +fn main() { + println!("Hello, world!"); +} + +struct Foo { + bar: String, +} +`; + +// These are more like integration tests, whereas we should separately test +// the individual CodebaseIndex classes +describe.skip("CodebaseIndexer", () => { + const ide = new FileSystemIde(TEST_DIR); + const ideSettingsPromise = ide.getIdeSettings(); + const configHandler = new ConfigHandler( + ide, + ideSettingsPromise, + async (text) => {}, + undefined as any, // TODO + ); + const pauseToken = new PauseToken(false); + const continueServerClient = new ContinueServerClient(undefined, undefined); + const codebaseIndexer = new CodebaseIndexer( + configHandler, + ide, + pauseToken, + continueServerClient, + ); + const lancedbIndex = new LanceDbIndex( + new TransformersJsEmbeddingsProvider(), + ide.readFile.bind(ide), + continueServerClient, + ); + + beforeAll(async () => { + setUpTestDir(); + }); + + afterAll(async () => { + tearDownTestDir(); + }); + + test("should index test folder without problem", async () => { + addToTestDir([ + ["test.ts", TEST_TS], + ["py/main.py", TEST_PY], + ]); + const abortController = new AbortController(); + const abortSignal = abortController.signal; + + const updates = []; + for await (const update of codebaseIndexer.refresh( + [TEST_DIR], + abortSignal, + )) { + updates.push(update); + } + + expect(updates.length).toBeGreaterThan(0); + }); + + test("should have created index folder with all necessary files", async () => { + expect(fs.existsSync(getIndexFolderPath())).toBe(true); + expect(fs.existsSync(getIndexSqlitePath())).toBe(true); + expect(fs.existsSync(getLanceDbPath())).toBe(true); + }); + + test("should be able to query lancedb index", async () => { + const chunks = await lancedbIndex.retrieve( + "What is the main function doing?", + 10, + await ide.getTags(lancedbIndex.artifactId), + undefined, + ); + + expect(chunks.length).toBe(2); + // Check that the main function from both files is returned + expect(chunks.some((chunk) => chunk.filepath.endsWith("test.ts"))).toBe( + true, + ); + expect(chunks.some((chunk) => chunk.filepath.endsWith("main.py"))).toBe( + true, + ); + }); + + test("should successfully re-index after adding a file", async () => { + addToTestDir([["main.rs", TEST_RS]]); + const abortController = new AbortController(); + const abortSignal = abortController.signal; + const updates = []; + for await (const update of codebaseIndexer.refresh( + [TEST_DIR], + abortSignal, + )) { + updates.push(update); + } + expect(updates.length).toBeGreaterThan(0); + // Check that the new file was indexed + const chunks = await lancedbIndex.retrieve( + "What is the main function doing?", + 3, + await ide.getTags(lancedbIndex.artifactId), + undefined, + ); + expect(chunks.length).toBe(3); + expect(chunks.some((chunk) => chunk.filepath.endsWith("main.rs"))).toBe( + true, + ); + }); + + test("should successfully re-index after deleting a file", async () => { + fs.rmSync(path.join(TEST_DIR, "main.rs")); + const abortController = new AbortController(); + const abortSignal = abortController.signal; + const updates = []; + for await (const update of codebaseIndexer.refresh( + [TEST_DIR], + abortSignal, + )) { + updates.push(update); + } + expect(updates.length).toBeGreaterThan(0); + // Check that the deleted file was removed from the index + const chunks = await lancedbIndex.retrieve( + "What is the main function doing?", + 10, + await ide.getTags(lancedbIndex.artifactId), + undefined, + ); + expect(chunks.length).toBe(2); + expect(chunks.every((chunk) => !chunk.filepath.endsWith("main.rs"))).toBe( + true, + ); + }); +}); diff --git a/core/test/indexing/chunk/code.test.ts b/core/test/indexing/chunk/code.test.ts new file mode 100644 index 000000000..41f8c7add --- /dev/null +++ b/core/test/indexing/chunk/code.test.ts @@ -0,0 +1,72 @@ +import { ChunkWithoutID } from "../../.."; +import { codeChunker } from "../../../indexing/chunk/code"; + +async function genToArr(generator: AsyncGenerator): Promise { + const result: T[] = []; + for await (const item of generator) { + result.push(item); + } + return result; +} + +async function genToStrs( + generator: AsyncGenerator, +): Promise { + return (await genToArr(generator)).map((chunk) => chunk.content); +} + +describe("codeChunker", () => { + test("should return empty array if file empty", async () => { + const chunks = await genToStrs(codeChunker("test.ts", "", 100)); + expect(chunks).toEqual([]); + }); + + test("should include entire file if smaller than max chunk size", async () => { + const chunks = await genToStrs(codeChunker("test.ts", "abc", 100)); + expect(chunks).toEqual(["abc"]); + }); + + test("should capture small class and function from large python file", async () => { + const extraLine = "# This is a comment"; + const myClass = "class MyClass:\n def __init__(self):\n pass"; + const myFunction = 'def my_function():\n return "Hello, World!"'; + + const file = + Array(100).fill(extraLine).join("\n") + + "\n\n" + + myClass + + "\n\n" + + myFunction + + "\n\n" + + Array(100).fill(extraLine).join("\n"); + + const chunks = await genToStrs(codeChunker("test.py", file, 200)); + expect(chunks.length).toBeGreaterThan(1); + expect(chunks).toContain(myClass); + expect(chunks).toContain(myFunction); + }); + + test("should split large python class into methods and class with truncated methods", async () => { + const methodI = (i: number) => + ` def method${i}():\n return "Hello, ${i}!"`; + + const file = + "class MyClass:\n" + + Array(100) + .fill(0) + .map((_, i) => methodI(i + 1)) + .join("\n") + + "\n\n"; + + console.log(file); + + const chunks = await genToStrs(codeChunker("test.py", file, 200)); + expect(chunks.length).toBeGreaterThan(1); + expect( + chunks[0].startsWith("class MyClass:\n def method1():\n ..."), + ).toBe(true); + // The extra spaces seem to be a bug with tree-sitter-python + expect(chunks).toContain('def method1():\n return "Hello, 1!"'); + expect(chunks).toContain('def method20():\n return "Hello, 20!"'); + }); +}); diff --git a/core/test/llm.test.ts b/core/test/llm.test.ts index 02b5596ca..bb6ebffde 100644 --- a/core/test/llm.test.ts +++ b/core/test/llm.test.ts @@ -1,9 +1,17 @@ import * as dotenv from "dotenv"; +<<<<<<< HEAD import { CompletionOptions } from ".."; import { BaseLLM } from "../llm"; jest.setTimeout(100_000); +======= +import { CompletionOptions } from "../index.js"; +import { BaseLLM } from "../llm/index.js"; +import OpenAI from "../llm/llms/OpenAI.js"; + +// jest.setTimeout(100_000); +>>>>>>> v0.9.184-vscode dotenv.config(); @@ -32,7 +40,10 @@ function testLLM(llm: BaseLLM) { } expect(total.length).toBeGreaterThan(0); +<<<<<<< HEAD console.log(total); +======= +>>>>>>> v0.9.184-vscode return; }); @@ -43,7 +54,10 @@ function testLLM(llm: BaseLLM) { } expect(total.length).toBeGreaterThan(0); +<<<<<<< HEAD console.log(total); +======= +>>>>>>> v0.9.184-vscode return; }); @@ -51,7 +65,10 @@ function testLLM(llm: BaseLLM) { const completion = await llm.complete("Hi"); expect(completion.length).toBeGreaterThan(0); +<<<<<<< HEAD console.log(completion); +======= +>>>>>>> v0.9.184-vscode return; }); }); @@ -61,17 +78,29 @@ describe("LLM", () => { // testLLM( // new FreeTrial({ // model: "gpt-3.5-turbo", +<<<<<<< HEAD // }) +======= + // }), +>>>>>>> v0.9.184-vscode // ); // testLLM( // new Anthropic({ // model: "claude-2", // apiKey: process.env.ANTHROPIC_API_KEY, +<<<<<<< HEAD // }) // ); // testLLM( // new OpenAI({ apiKey: process.env.OPENAI_API_KEY, model: "gpt-3.5-turbo" }) // ); +======= + // }), + // ); + testLLM( + new OpenAI({ apiKey: process.env.OPENAI_API_KEY, model: "gpt-3.5-turbo" }), + ); +>>>>>>> v0.9.184-vscode // TODO: Fix Replicate // testLLM( // new Replicate({ @@ -94,7 +123,11 @@ describe("LLM", () => { // testLLM(new HuggingFaceTGI({ model: "codellama-7b" })); // testLLM(new HuggingFaceInferenceAPI({ model: "codellama-7b" })); // testLLM( +<<<<<<< HEAD // new GooglePalm({ +======= + // new Gemini({ +>>>>>>> v0.9.184-vscode // model: "gemini-pro", // // model: "chat-bison-001", // apiKey: process.env.GOOGLE_PALM_API_KEY, diff --git a/core/test/streamDiff.test.ts b/core/test/streamDiff.test.ts new file mode 100644 index 000000000..b539ec5ee --- /dev/null +++ b/core/test/streamDiff.test.ts @@ -0,0 +1,164 @@ +import { streamDiff } from "../diff/streamDiff.js"; +import { DiffLine } from "../index.js"; + +async function* generateLines(lines: string[]): AsyncGenerator { + for (const line of lines) { + yield line; + } +} + +const collectDiff = async ( + oldLines: string[], + newLines: string[], +): Promise => { + const result: DiffLine[] = []; + + for await (const diffLine of streamDiff(oldLines, generateLines(newLines))) { + result.push(diffLine); + } + + return result; +}; + +// We use a longer `console.log()` string here to not get +// caught by the fuzzy matcher +describe("streamDiff()", () => { + test("no changes", async () => { + const oldLines = [ + "console.log(first)", + "console.log(second)", + "console.log(third)", + ]; + const newLines = [ + "console.log(first)", + "console.log(second)", + "console.log(third)", + ]; + + const diff = await collectDiff(oldLines, newLines); + + expect(diff).toEqual([ + { type: "same", line: "console.log(first)" }, + { type: "same", line: "console.log(second)" }, + { type: "same", line: "console.log(third)" }, + ]); + }); + + test("add new line", async () => { + const oldLines = ["console.log(first)", "console.log(second)"]; + const newLines = [ + "console.log(first)", + "console.log(second)", + "console.log(third)", + ]; + + const diff = await collectDiff(oldLines, newLines); + + expect(diff).toEqual([ + { type: "same", line: "console.log(first)" }, + { type: "same", line: "console.log(second)" }, + { type: "new", line: "console.log(third)" }, + ]); + }); + + test("remove line", async () => { + const oldLines = [ + "console.log(first)", + "console.log(second)", + "console.log(third)", + ]; + const newLines = ["console.log(first)", "console.log(third)"]; + + const diff = await collectDiff(oldLines, newLines); + + expect(diff).toEqual([ + { type: "same", line: "console.log(first)" }, + { type: "old", line: "console.log(second)" }, + { type: "same", line: "console.log(third)" }, + ]); + }); + + test("modify line", async () => { + const oldLines = [ + "console.log(first)", + "console.log(second)", + "console.log(third)", + ]; + const newLines = [ + "console.log(first)", + "console.log(modified second)", + "console.log(third)", + ]; + + const diff = await collectDiff(oldLines, newLines); + + expect(diff).toEqual([ + { type: "same", line: "console.log(first)" }, + { type: "old", line: "console.log(second)" }, + { type: "new", line: "console.log(modified second)" }, + { type: "same", line: "console.log(third)" }, + ]); + }); + + test("add multiple lines", async () => { + const oldLines = ["console.log(first)", "fourth"]; + const newLines = [ + "console.log(first)", + "console.log(second)", + "console.log(third)", + "fourth", + ]; + + const diff = await collectDiff(oldLines, newLines); + + expect(diff).toEqual([ + { type: "same", line: "console.log(first)" }, + { type: "new", line: "console.log(second)" }, + { type: "new", line: "console.log(third)" }, + { type: "same", line: "fourth" }, + ]); + }); + + test("remove multiple lines", async () => { + const oldLines = [ + "console.log(first)", + "console.log(second)", + "console.log(third)", + "fourth", + ]; + const newLines = ["console.log(first)", "fourth"]; + + const diff = await collectDiff(oldLines, newLines); + + expect(diff).toEqual([ + { type: "same", line: "console.log(first)" }, + { type: "old", line: "console.log(second)" }, + { type: "old", line: "console.log(third)" }, + { type: "same", line: "fourth" }, + ]); + }); + + test("empty old lines", async () => { + const oldLines: string[] = []; + const newLines = ["console.log(first)", "console.log(second)"]; + + const diff = await collectDiff(oldLines, newLines); + + expect(diff).toEqual([ + { type: "new", line: "console.log(first)" }, + { type: "new", line: "console.log(second)" }, + ]); + }); + + test("empty new lines", async () => { + const oldLines = ["console.log(first)", "console.log(second)"]; + const newLines: string[] = []; + + const diff = await collectDiff(oldLines, newLines); + + expect(diff).toEqual([ + { type: "old", line: "console.log(first)" }, + { type: "old", line: "console.log(second)" }, + ]); + }); +}); diff --git a/core/test/streamTransforms/stopAtStopTokens.test.ts b/core/test/streamTransforms/stopAtStopTokens.test.ts new file mode 100644 index 000000000..de9d29d98 --- /dev/null +++ b/core/test/streamTransforms/stopAtStopTokens.test.ts @@ -0,0 +1,160 @@ +import { stopAtStopTokens } from "../../autocomplete/charStream"; + +describe("stopAtStopTokens", () => { + async function* createMockStream(chunks: string[]): AsyncGenerator { + for (const chunk of chunks) { + yield chunk; + } + } + + it("should yield characters until a stop token is encountered", async () => { + const mockStream = createMockStream(["Hello", " world", "! Stop", "here"]); + const stopTokens = ["Stop"]; + const result = stopAtStopTokens(mockStream, stopTokens); + + const output = []; + for await (const char of result) { + output.push(char); + } + + expect(output.join("")).toBe("Hello world! "); + }); + + it("should handle multiple stop tokens", async () => { + const mockStream = createMockStream([ + "This", + " is a ", + "test. END", + " of stream", + ]); + const stopTokens = ["END", "STOP", "HALT"]; + const result = stopAtStopTokens(mockStream, stopTokens); + + const output = []; + for await (const char of result) { + output.push(char); + } + + expect(output.join("")).toBe("This is a test. "); + }); + + it("should handle stop tokens split across chunks", async () => { + const mockStream = createMockStream([ + "Hello", + " wo", + "r", + "ld! ST", + "OP now", + ]); + const stopTokens = ["STOP"]; + const result = stopAtStopTokens(mockStream, stopTokens); + + const output = []; + for await (const char of result) { + output.push(char); + } + + expect(output.join("")).toBe("Hello world! "); + }); + + it("should yield all characters if no stop token is encountered", async () => { + const mockStream = createMockStream([ + "This", + " is ", + "a complete", + " stream", + ]); + const stopTokens = ["END"]; + const result = stopAtStopTokens(mockStream, stopTokens); + + const output = []; + for await (const char of result) { + output.push(char); + } + + expect(output.join("")).toBe("This is a complete stream"); + }); + + it("should handle empty chunks", async () => { + const mockStream = createMockStream(["Hello", "", " world", "", "! STOP"]); + const stopTokens = ["STOP"]; + const result = stopAtStopTokens(mockStream, stopTokens); + + const output = []; + for await (const char of result) { + output.push(char); + } + + expect(output.join("")).toBe("Hello world! "); + }); + + it("should handle stop token at the beginning of the stream", async () => { + const mockStream = createMockStream(["STOP", "Hello world"]); + const stopTokens = ["STOP"]; + const result = stopAtStopTokens(mockStream, stopTokens); + + const output = []; + for await (const char of result) { + output.push(char); + } + + expect(output.join("")).toBe(""); + }); + + it("should handle stop token at the end of the stream", async () => { + const mockStream = createMockStream(["Hello world", "STOP"]); + const stopTokens = ["STOP"]; + const result = stopAtStopTokens(mockStream, stopTokens); + + const output = []; + for await (const char of result) { + output.push(char); + } + + expect(output.join("")).toBe("Hello world"); + }); + + it("should handle multiple stop tokens of different lengths", async () => { + const mockStream = createMockStream([ + "This is a ", + "test with ", + "multiple STOP", + " tokens END", + ]); + const stopTokens = ["STOP", "END", "HALT"]; + const result = stopAtStopTokens(mockStream, stopTokens); + + const output = []; + for await (const char of result) { + output.push(char); + } + + expect(output.join("")).toBe("This is a test with multiple "); + }); + + it("should handle an empty stream", async () => { + const mockStream = createMockStream([]); + const stopTokens = ["STOP"]; + const result = stopAtStopTokens(mockStream, stopTokens); + + const output = []; + for await (const char of result) { + output.push(char); + } + + expect(output.join("")).toBe(""); + }); + + it("should handle an empty stop tokens array", async () => { + const mockStream = createMockStream(["Hello", " world!"]); + const stopTokens: string[] = []; + const result = stopAtStopTokens(mockStream, stopTokens); + + const output = []; + for await (const char of result) { + output.push(char); + } + + expect(output.join("")).toBe("Hello world!"); + }); +}); diff --git a/core/test/testUtils/testDir.ts b/core/test/testUtils/testDir.ts new file mode 100644 index 000000000..33a636d08 --- /dev/null +++ b/core/test/testUtils/testDir.ts @@ -0,0 +1,27 @@ +import fs from "fs"; +import path from "path"; + +export const TEST_DIR = path.join(__dirname, "testDir"); + +export function setUpTestDir() { + if (fs.existsSync(TEST_DIR)) { + fs.rmSync(TEST_DIR, { recursive: true }); + } + fs.mkdirSync(TEST_DIR); +} + +export function tearDownTestDir() { + fs.rmSync(TEST_DIR, { recursive: true }); +} + +export function addToTestDir(paths: (string | string[])[]) { + for (const p of paths) { + if (Array.isArray(p)) { + fs.writeFileSync(path.join(TEST_DIR, p[0]), p[1]); + } else if (p.endsWith("/")) { + fs.mkdirSync(path.join(TEST_DIR, p), { recursive: true }); + } else { + fs.writeFileSync(path.join(TEST_DIR, p), ""); + } + } +} diff --git a/core/test/util/dedentAndGetCommonWhitespace.test.ts b/core/test/util/dedentAndGetCommonWhitespace.test.ts new file mode 100644 index 000000000..5f3c6a4be --- /dev/null +++ b/core/test/util/dedentAndGetCommonWhitespace.test.ts @@ -0,0 +1,76 @@ +// File generated by Continue +import { dedentAndGetCommonWhitespace } from "../../util"; + +describe("dedentAndGetCommonWhitespace", () => { + let originalString: string; + + beforeEach(() => { + // Setup any global variables or states if needed + originalString = " line1\n line2\n line3"; + }); + + afterEach(() => { + // Tear down any changes to global variables or states if needed + originalString = ""; + }); + + test("should dedent and return common whitespace for a simple case", () => { + const input = " line1\n line2\n line3"; + const output = dedentAndGetCommonWhitespace(input); + expect(output).toEqual(["line1\nline2\nline3", " "]); + }); + + test("should handle empty string", () => { + const input = ""; + const output = dedentAndGetCommonWhitespace(input); + expect(output).toEqual(["", ""]); + }); + + test("should handle string with only whitespace", () => { + const input = " "; + const output = dedentAndGetCommonWhitespace(input); + expect(output).toEqual(["", ""]); + }); + + test("should handle string with mixed whitespace and content", () => { + const input = " line1\n line2\n line3"; + const output = dedentAndGetCommonWhitespace(input); + expect(output).toEqual([" line1\nline2\n line3", " "]); + }); + + test("should handle string with no common leading whitespace", () => { + const input = "line1\n line2\n line3"; + const output = dedentAndGetCommonWhitespace(input); + expect(output).toEqual([input, ""]); + }); + + test("should handle string with empty lines", () => { + const input = " line1\n\n line3"; + const output = dedentAndGetCommonWhitespace(input); + expect(output).toEqual(["line1\n\nline3", " "]); + }); + + test("should handle string with only empty lines", () => { + const input = "\n\n"; + const output = dedentAndGetCommonWhitespace(input); + expect(output).toEqual(["\n\n", ""]); + }); + + test("should handle string with tabs as whitespace", () => { + const input = "\tline1\n\tline2\n\tline3"; + const output = dedentAndGetCommonWhitespace(input); + expect(output).toEqual(["line1\nline2\nline3", "\t"]); + }); + + test("should handle string with mixed tabs and spaces", () => { + const input = "\t line1\n\t line2\n\t line3"; + const output = dedentAndGetCommonWhitespace(input); + expect(output).toEqual(["line1\nline2\nline3", "\t "]); + }); + + test("should handle string with different leading whitespace lengths", () => { + const input = " line1\n line2\n line3"; + const output = dedentAndGetCommonWhitespace(input); + expect(output).toEqual([" line1\nline2\n line3", " "]); + }); +}); diff --git a/core/test/util/deduplicateArray.test.ts b/core/test/util/deduplicateArray.test.ts new file mode 100644 index 000000000..f26b2c782 --- /dev/null +++ b/core/test/util/deduplicateArray.test.ts @@ -0,0 +1,82 @@ +import { deduplicateArray } from "../../util"; + +describe("deduplicateArray", () => { + it("should return an empty array when given an empty array", () => { + const result = deduplicateArray([], (a, b) => a === b); + expect(result).toEqual([]); + }); + + it("should return the same array when there are no duplicates", () => { + const input = [1, 2, 3, 4, 5]; + const result = deduplicateArray(input, (a, b) => a === b); + expect(result).toEqual(input); + }); + + it("should remove duplicates based on the equality function", () => { + const input = [1, 2, 2, 3, 4, 4, 5]; + const result = deduplicateArray(input, (a, b) => a === b); + expect(result).toEqual([1, 2, 3, 4, 5]); + }); + + it("should work with objects using custom equality function", () => { + const input = [ + { id: 1, name: "Alice" }, + { id: 2, name: "Bob" }, + { id: 1, name: "Alice" }, + { id: 3, name: "Charlie" }, + ]; + const result = deduplicateArray(input, (a, b) => a.id === b.id); + expect(result).toEqual([ + { id: 1, name: "Alice" }, + { id: 2, name: "Bob" }, + { id: 3, name: "Charlie" }, + ]); + }); + + it("should preserve the order of items", () => { + const input = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]; + const result = deduplicateArray(input, (a, b) => a === b); + expect(result).toEqual([3, 1, 4, 5, 9, 2, 6]); + }); + + it("should work with strings", () => { + const input = ["apple", "banana", "apple", "cherry", "banana", "date"]; + const result = deduplicateArray(input, (a, b) => a === b); + expect(result).toEqual(["apple", "banana", "cherry", "date"]); + }); + + it("should handle arrays with all duplicate elements", () => { + const input = [1, 1, 1, 1, 1]; + const result = deduplicateArray(input, (a, b) => a === b); + expect(result).toEqual([1]); + }); + + it("should work with custom equality function for complex objects", () => { + const input = [ + { x: 1, y: 2 }, + { x: 2, y: 1 }, + { x: 1, y: 2 }, + { x: 3, y: 4 }, + ]; + const result = deduplicateArray( + input, + (a, b) => a.x === b.x && a.y === b.y, + ); + expect(result).toEqual([ + { x: 1, y: 2 }, + { x: 2, y: 1 }, + { x: 3, y: 4 }, + ]); + }); + + it("should handle large arrays efficiently", () => { + const input = Array(10000) + .fill(0) + .map((_, i) => i % 100); + const start = performance.now(); + const result = deduplicateArray(input, (a, b) => a === b); + const end = performance.now(); + expect(result).toHaveLength(100); + expect(end - start).toBeLessThan(1000); // Ensure it completes in less than 1 second + }); +}); diff --git a/core/test/util/getLastNPathParts.test.ts b/core/test/util/getLastNPathParts.test.ts new file mode 100644 index 000000000..ba72b4520 --- /dev/null +++ b/core/test/util/getLastNPathParts.test.ts @@ -0,0 +1,51 @@ +// File generated by Continue +import { getLastNPathParts } from "../../util"; + +describe("getLastNPathParts", () => { + const SEP_REGEX = /[\\/]+/; + + beforeAll(() => { + // Setup code if needed + }); + + afterAll(() => { + // Teardown code if needed + }); + + test("returns the last N parts of a filepath with forward slashes", () => { + const filepath = "home/user/documents/project/file.txt"; + expect(getLastNPathParts(filepath, 2)).toBe("project/file.txt"); + }); + + test("returns the last N parts of a filepath with backward slashes", () => { + const filepath = "C:\\home\\user\\documents\\project\\file.txt"; + expect(getLastNPathParts(filepath, 3)).toBe("documents/project/file.txt"); + }); + + test("returns the last part if N is 1", () => { + const filepath = "/home/user/documents/project/file.txt"; + expect(getLastNPathParts(filepath, 1)).toBe("file.txt"); + }); + + test("returns the entire path if N is greater than the number of parts", () => { + const filepath = "home/user/documents/project/file.txt"; + expect(getLastNPathParts(filepath, 10)).toBe( + "home/user/documents/project/file.txt", + ); + }); + + test("returns an empty string if N is 0", () => { + const filepath = "home/user/documents/project/file.txt"; + expect(getLastNPathParts(filepath, 0)).toBe(""); + }); + + test("handles paths with mixed forward and backward slashes", () => { + const filepath = "home\\user/documents\\project/file.txt"; + expect(getLastNPathParts(filepath, 3)).toBe("documents/project/file.txt"); + }); + + test("handles edge case with empty filepath", () => { + const filepath = ""; + expect(getLastNPathParts(filepath, 2)).toBe(""); + }); +}); diff --git a/core/test/util/lcs.test.ts b/core/test/util/lcs.test.ts new file mode 100644 index 000000000..da10cdf90 --- /dev/null +++ b/core/test/util/lcs.test.ts @@ -0,0 +1,40 @@ +// This file is generated by Continue +import { longestCommonSubsequence } from "../../util/lcs"; + +describe("longestCommonSubsequence", () => { + beforeAll(() => { + // Setup if needed + }); + + afterAll(() => { + // Teardown if needed + }); + + test("should return the longest common subsequence for non-empty strings", () => { + expect(longestCommonSubsequence("abcde", "ace")).toBe("ace"); + expect(longestCommonSubsequence("abc", "abc")).toBe("abc"); + expect(longestCommonSubsequence("abc", "def")).toBe(""); + }); + + test("should handle cases where one or both strings are empty", () => { + expect(longestCommonSubsequence("", "abc")).toBe(""); + expect(longestCommonSubsequence("abc", "")).toBe(""); + expect(longestCommonSubsequence("", "")).toBe(""); + }); + + test("should handle cases with no common subsequence", () => { + expect(longestCommonSubsequence("abc", "def")).toBe(""); + expect(longestCommonSubsequence("xyz", "abc")).toBe(""); + }); + + test("should handle cases with special characters", () => { + expect(longestCommonSubsequence("a!@#b$c", "!@#$")).toBe("!@#$"); + expect(longestCommonSubsequence("a!@#b$c", "xyz")).toBe(""); + }); + + test("should handle long strings efficiently", () => { + const str1 = "a".repeat(1000) + "b".repeat(1000); + const str2 = "a".repeat(1000) + "c".repeat(1000); + expect(longestCommonSubsequence(str1, str2)).toBe("a".repeat(1000)); + }); +}); diff --git a/core/test/util/merge.test.ts b/core/test/util/merge.test.ts new file mode 100644 index 000000000..a39a5bc30 --- /dev/null +++ b/core/test/util/merge.test.ts @@ -0,0 +1,100 @@ +// File generated by Continue +import { mergeJson } from "../../util/merge"; + +describe("mergeJson", () => { + it("should merge two simple JSON objects", () => { + const first = { a: 1, b: 2 }; + const second = { b: 3, c: 4 }; + const result = mergeJson(first, second); + expect(result).toEqual({ a: 1, b: 3, c: 4 }); + }); + + it('should overwrite values when mergeBehavior is "overwrite"', () => { + const first = { a: 1, b: 2 }; + const second = { b: 3, c: 4 }; + const result = mergeJson(first, second, "overwrite"); + expect(result).toEqual({ a: 1, b: 3, c: 4 }); + }); + + it("should merge nested objects", () => { + const first = { a: { b: 1 } }; + const second = { a: { c: 2 } }; + const result = mergeJson(first, second); + expect(result).toEqual({ a: { b: 1, c: 2 } }); + }); + + it("should merge arrays without mergeKeys", () => { + const first = { a: [1, 2] }; + const second = { a: [3, 4] }; + const result = mergeJson(first, second); + expect(result).toEqual({ a: [1, 2, 3, 4] }); + }); + + it("should merge arrays with mergeKeys", () => { + const first = { + a: [ + { id: 1, value: "first" }, + { id: 2, value: "second" }, + ], + }; + const second = { + a: [ + { id: 2, value: "updated" }, + { id: 3, value: "third" }, + ], + }; + const mergeKeys = { + a: (item1: any, item2: any) => item1.id === item2.id, + }; + const result = mergeJson(first, second, undefined, mergeKeys); + expect(result).toEqual({ + a: [ + { id: 1, value: "first" }, + { id: 2, value: "updated" }, + { id: 3, value: "third" }, + ], + }); + }); + + it("should handle non-object values correctly", () => { + const first = { a: 1, b: "string", c: true }; + const second = { a: 2, b: "new string", c: false }; + const result = mergeJson(first, second); + expect(result).toEqual({ a: 2, b: "new string", c: false }); + }); + + it("should handle null and undefined values correctly", () => { + const first = { a: 1, b: null }; + const second = { b: 2, c: undefined }; + const result = mergeJson(first, second); + expect(result).toEqual({ a: 1, b: 2, c: undefined }); + }); + + it("should handle empty objects", () => { + const first = {}; + const second = { a: 1 }; + const result = mergeJson(first, second); + expect(result).toEqual({ a: 1 }); + }); + + it("should handle empty second object", () => { + const first = { a: 1 }; + const second = {}; + const result = mergeJson(first, second); + expect(result).toEqual({ a: 1 }); + }); + + it("should handle errors gracefully", () => { + const first = { a: 1 }; + const second = { b: () => {} }; // Functions are not serializable in JSON + const result = mergeJson(first, second); + expect(result).toEqual({ a: 1, b: expect.any(Function) }); + }); + + it("should merge deeply nested objects", () => { + const first = { a: { b: { c: 1 } } }; + const second = { a: { b: { d: 2 } } }; + const result = mergeJson(first, second); + expect(result).toEqual({ a: { b: { c: 1, d: 2 } } }); + }); +}); diff --git a/core/test/util/ranges/getRangeInString.test.ts b/core/test/util/ranges/getRangeInString.test.ts new file mode 100644 index 000000000..e0a4df67a --- /dev/null +++ b/core/test/util/ranges/getRangeInString.test.ts @@ -0,0 +1,105 @@ +// This file is generated by Continue + +import { getRangeInString } from "../../../util/ranges"; + +describe.skip("getRangeInString", () => { + let content: string; + + beforeEach(() => { + content = `Line 1 +Line 2 +Line 3 +Line 4 +Line 5`; + }); + + afterEach(() => { + content = ""; + }); + + test("should return substring within the same line", () => { + const range = { + start: { line: 1, character: 0 }, + end: { line: 1, character: 4 }, + }; + expect(getRangeInString(content, range)).toBe("Line"); + }); + + test("should return substring spanning multiple lines", () => { + const range = { + start: { line: 1, character: 2 }, + end: { line: 3, character: 3 }, + }; + const expected = `ne 2 +Line 3 +Line 4`; + expect(getRangeInString(content, range)).toBe(expected); + }); + + test("should handle range that starts and ends at the same character", () => { + const range = { + start: { line: 2, character: 0 }, + end: { line: 2, character: 0 }, + }; + expect(getRangeInString(content, range)).toBe("L"); + }); + + test("should handle range that spans entire content", () => { + const range = { + start: { line: 0, character: 0 }, + end: { line: 4, character: 5 }, + }; + expect(getRangeInString(content, range)).toBe(content); + }); + + test("should handle range that spans to the end of the last line", () => { + const range = { + start: { line: 3, character: 2 }, + end: { line: 4, character: 5 }, + }; + const expected = `ne 4 +Line 5`; + expect(getRangeInString(content, range)).toBe(expected); + }); + + test("should handle empty content", () => { + content = ""; + const range = { + start: { line: 0, character: 0 }, + end: { line: 0, character: 0 }, + }; + expect(getRangeInString(content, range)).toBe(""); + }); + + test("should handle invalid range (start line > end line)", () => { + const range = { + start: { line: 3, character: 0 }, + end: { line: 2, character: 0 }, + }; + expect(getRangeInString(content, range)).toBe(""); + }); + + test("should handle invalid range (start character > end character on same line)", () => { + const range = { + start: { line: 1, character: 5 }, + end: { line: 1, character: 2 }, + }; + expect(getRangeInString(content, range)).toBe(""); + }); + + test("should handle range that starts and ends at the same line but different characters", () => { + const range = { + start: { line: 1, character: 2 }, + end: { line: 1, character: 6 }, + }; + expect(getRangeInString(content, range)).toBe("ne 2"); + }); + + test("should handle range that starts and ends at the same line and same characters", () => { + const range = { + start: { line: 1, character: 2 }, + end: { line: 1, character: 2 }, + }; + expect(getRangeInString(content, range)).toBe("n"); + }); +}); diff --git a/core/test/util/ranges/intersection.test.ts b/core/test/util/ranges/intersection.test.ts new file mode 100644 index 000000000..397dbc1a8 --- /dev/null +++ b/core/test/util/ranges/intersection.test.ts @@ -0,0 +1,123 @@ +// This file is generated by Continue + +import { intersection } from "../../../util/ranges"; + +interface Position { + line: number; + character: number; +} + +interface Range { + start: Position; + end: Position; +} + +describe("intersection", () => { + let rangeA: Range; + let rangeB: Range; + + beforeEach(() => { + rangeA = { + start: { line: 1, character: 0 }, + end: { line: 3, character: 5 }, + }; + + rangeB = { + start: { line: 2, character: 2 }, + end: { line: 4, character: 0 }, + }; + }); + + test("returns correct intersection for overlapping ranges", () => { + const result = intersection(rangeA, rangeB); + expect(result).toEqual({ + start: { line: 2, character: 2 }, + end: { line: 3, character: 5 }, + }); + }); + + test("returns null for non-overlapping ranges", () => { + rangeA = { + start: { line: 1, character: 0 }, + end: { line: 2, character: 0 }, + }; + + rangeB = { + start: { line: 3, character: 0 }, + end: { line: 4, character: 0 }, + }; + + const result = intersection(rangeA, rangeB); + expect(result).toBeNull(); + }); + + // TODO + test.skip("returns correct intersection for single line overlap", () => { + rangeA = { + start: { line: 1, character: 0 }, + end: { line: 1, character: 5 }, + }; + + rangeB = { + start: { line: 1, character: 3 }, + end: { line: 2, character: 0 }, + }; + + const result = intersection(rangeA, rangeB); + expect(result).toEqual({ + start: { line: 1, character: 3 }, + end: { line: 1, character: 5 }, + }); + }); + + test("returns null for single line non-overlapping ranges", () => { + rangeA = { + start: { line: 1, character: 0 }, + end: { line: 1, character: 2 }, + }; + + rangeB = { + start: { line: 1, character: 3 }, + end: { line: 1, character: 5 }, + }; + + const result = intersection(rangeA, rangeB); + expect(result).toBeNull(); + }); + + test("returns correct intersection when one range is fully within another", () => { + rangeA = { + start: { line: 1, character: 0 }, + end: { line: 4, character: 5 }, + }; + + rangeB = { + start: { line: 2, character: 2 }, + end: { line: 3, character: 3 }, + }; + + const result = intersection(rangeA, rangeB); + expect(result).toEqual({ + start: { line: 2, character: 2 }, + end: { line: 3, character: 3 }, + }); + }); + + test("returns correct intersection when ranges touch at the edge", () => { + rangeA = { + start: { line: 1, character: 0 }, + end: { line: 2, character: 0 }, + }; + + rangeB = { + start: { line: 2, character: 0 }, + end: { line: 3, character: 0 }, + }; + + const result = intersection(rangeA, rangeB); + expect(result).toEqual({ + start: { line: 2, character: 0 }, + end: { line: 2, character: 0 }, + }); + }); +}); diff --git a/core/test/util/ranges/maxMinPosition.test.ts b/core/test/util/ranges/maxMinPosition.test.ts new file mode 100644 index 000000000..0468df1cd --- /dev/null +++ b/core/test/util/ranges/maxMinPosition.test.ts @@ -0,0 +1,70 @@ +import { maxPosition, minPosition } from "../../../util/ranges"; + +// This file is generated by Continue +interface Position { + line: number; + character: number; +} + +describe("Position comparison functions", () => { + let pos1: Position; + let pos2: Position; + let pos3: Position; + let pos4: Position; + + beforeAll(() => { + // Setup: Initializing positions + pos1 = { line: 1, character: 5 }; + pos2 = { line: 2, character: 3 }; + pos3 = { line: 1, character: 7 }; + pos4 = { line: 2, character: 3 }; // Same as pos2 to test equality + }); + + describe("maxPosition", () => { + it("should return the position with the greater line number", () => { + expect(maxPosition(pos1, pos2)).toEqual(pos2); + }); + + it("should return the position with the greater character number when lines are equal", () => { + expect(maxPosition(pos1, pos3)).toEqual(pos3); + }); + + it("should return the first position when both positions are equal", () => { + expect(maxPosition(pos2, pos4)).toEqual(pos2); + }); + + it("should handle positions with negative line numbers", () => { + const posNegative = { line: -1, character: 0 }; + expect(maxPosition(posNegative, pos1)).toEqual(pos1); + }); + + it("should handle positions with negative character numbers", () => { + const posNegativeChar = { line: 1, character: -1 }; + expect(maxPosition(posNegativeChar, pos1)).toEqual(pos1); + }); + }); + + describe("minPosition", () => { + it("should return the position with the lesser line number", () => { + expect(minPosition(pos1, pos2)).toEqual(pos1); + }); + + it("should return the position with the lesser character number when lines are equal", () => { + expect(minPosition(pos1, pos3)).toEqual(pos1); + }); + + it("should return the first position when both positions are equal", () => { + expect(minPosition(pos2, pos4)).toEqual(pos2); + }); + + it("should handle positions with negative line numbers", () => { + const posNegative = { line: -1, character: 0 }; + expect(minPosition(posNegative, pos1)).toEqual(posNegative); + }); + + it("should handle positions with negative character numbers", () => { + const posNegativeChar = { line: 1, character: -1 }; + expect(minPosition(posNegativeChar, pos1)).toEqual(posNegativeChar); + }); + }); +}); diff --git a/core/test/util/ranges/union.test.ts b/core/test/util/ranges/union.test.ts new file mode 100644 index 000000000..9d06a97b4 --- /dev/null +++ b/core/test/util/ranges/union.test.ts @@ -0,0 +1,92 @@ +import { union } from "../../../util/ranges"; + +// This file is generated by Continue +interface Position { + line: number; + character: number; +} + +interface Range { + start: Position; + end: Position; +} + +describe("union", () => { + let rangeA: Range; + let rangeB: Range; + + beforeEach(() => { + rangeA = { + start: { line: 1, character: 0 }, + end: { line: 3, character: 5 }, + }; + + rangeB = { + start: { line: 2, character: 3 }, + end: { line: 4, character: 2 }, + }; + }); + + test("should return the union of two overlapping ranges", () => { + const result = union(rangeA, rangeB); + expect(result).toEqual({ + start: { line: 1, character: 0 }, + end: { line: 4, character: 2 }, + }); + }); + + test("should return the union when ranges are identical", () => { + const result = union(rangeA, rangeA); + expect(result).toEqual(rangeA); + }); + + test("should return the union when ranges do not overlap but are adjacent", () => { + rangeB = { + start: { line: 3, character: 5 }, + end: { line: 4, character: 2 }, + }; + const result = union(rangeA, rangeB); + expect(result).toEqual({ + start: { line: 1, character: 0 }, + end: { line: 4, character: 2 }, + }); + }); + + test("should return the union when one range is completely within the other", () => { + rangeB = { + start: { line: 2, character: 1 }, + end: { line: 2, character: 4 }, + }; + const result = union(rangeA, rangeB); + expect(result).toEqual(rangeA); + }); + + test("should return the union when ranges do not overlap and are not adjacent", () => { + rangeB = { + start: { line: 4, character: 3 }, + end: { line: 5, character: 1 }, + }; + const result = union(rangeA, rangeB); + expect(result).toEqual({ + start: { line: 1, character: 0 }, + end: { line: 5, character: 1 }, + }); + }); + + // TODO + test.skip("should handle edge case where start and end lines are the same", () => { + rangeA = { + start: { line: 1, character: 0 }, + end: { line: 1, character: 5 }, + }; + rangeB = { + start: { line: 1, character: 3 }, + end: { line: 1, character: 7 }, + }; + const result = union(rangeA, rangeB); + expect(result).toEqual({ + start: { line: 1, character: 0 }, + end: { line: 1, character: 7 }, + }); + }); +}); diff --git a/core/test/walkDir.test.ts b/core/test/walkDir.test.ts new file mode 100644 index 000000000..5ed3851f0 --- /dev/null +++ b/core/test/walkDir.test.ts @@ -0,0 +1,276 @@ +import path from "path"; +import { walkDir, WalkerOptions } from "../indexing/walkDir"; +import FileSystemIde from "../util/filesystem"; +import { + addToTestDir, + setUpTestDir, + tearDownTestDir, + TEST_DIR, +} from "./testUtils/testDir"; +const ide = new FileSystemIde(TEST_DIR); + +async function walkTestDir( + options?: WalkerOptions, +): Promise { + return walkDir(TEST_DIR, ide, { + returnRelativePaths: true, + ...options, + }); +} + +async function expectPaths( + toExist: string[], + toNotExist: string[], + options?: WalkerOptions, +) { + const result = await walkTestDir(options); + + for (const p of toExist) { + expect(result).toContain(p); + } + for (const p of toNotExist) { + expect(result).not.toContain(p); + } +} + +describe("walkDir", () => { + beforeEach(() => { + setUpTestDir(); + }); + + afterEach(() => { + tearDownTestDir(); + }); + + test("should return nothing for empty dir", async () => { + const result = await walkTestDir(); + expect(result).toEqual([]); + }); + + test("should return all files in flat dir", async () => { + const files = ["a.txt", "b.py", "c.ts"]; + addToTestDir(files); + const result = await walkTestDir(); + expect(result).toEqual(files); + }); + + test("should ignore ignored files in flat dir", async () => { + const files = [[".gitignore", "*.py"], "a.txt", "c.ts", "b.py"]; + addToTestDir(files); + await expectPaths(["a.txt", "c.ts"], ["b.py"]); + }); + + test("should handle negation in flat folder", async () => { + const files = [[".gitignore", "**/*\n!*.py"], "a.txt", "c.ts", "b.py"]; + addToTestDir(files); + await expectPaths(["b.py"], [".gitignore", "a.txt", "c.ts"]); + }); + + test("should get all files in nested folder structure", async () => { + const files = [ + "a.txt", + "b.py", + "c.ts", + "d/", + "d/e.txt", + "d/f.py", + "d/g/", + "d/g/h.ts", + ]; + addToTestDir(files); + await expectPaths( + files.filter((files) => !files.endsWith("/")), + [], + ); + }); + + test("should ignore ignored files in nested folder structure", async () => { + const files = [ + "a.txt", + "b.py", + "c.ts", + "d/", + "d/e.txt", + "d/f.py", + "d/g/", + "d/g/h.ts", + ["d/.gitignore", "*.py"], + ]; + addToTestDir(files); + await expectPaths( + ["a.txt", "b.py", "c.ts", "d/e.txt", "d/g/h.ts"], + ["d/f.py"], + ); + }); + + test("should handle leading slash in gitignore", async () => { + const files = [[".gitignore", "/no.txt"], "a.txt", "b.py", "no.txt"]; + addToTestDir(files); + await expectPaths(["a.txt", "b.py"], ["no.txt"]); + }); + + test("should handle multiple .gitignore files in nested structure", async () => { + const files = [ + [".gitignore", "*.txt"], + "a.py", + "b.txt", + "c/", + "c/d.txt", + "c/e.py", + ["c/.gitignore", "*.py"], + ]; + addToTestDir(files); + await expectPaths(["a.py"], ["b.txt", "c/e.py", "c/d.txt"]); + }); + + test("should handle wildcards in .gitignore", async () => { + const files = [ + [".gitignore", "*.txt\n*.py"], + "a.txt", + "b.py", + "c.ts", + "d/", + "d/e.txt", + "d/f.py", + "d/g.ts", + ]; + addToTestDir(files); + await expectPaths( + ["c.ts", "d/g.ts"], + ["a.txt", "b.py", "d/e.txt", "d/f.py"], + ); + }); + + test("should handle directory ignores in .gitignore", async () => { + const files = [ + [".gitignore", "ignored_dir/"], + "a.txt", + "ignored_dir/", + "ignored_dir/b.txt", + "ignored_dir/c/", + "ignored_dir/c/d.py", + ]; + addToTestDir(files); + await expectPaths(["a.txt"], ["ignored_dir/b.txt", "ignored_dir/c/d.py"]); + }); + + test("should handle complex patterns in .gitignore", async () => { + const files = [ + [".gitignore", "*.what\n!important.what\ntemp/\n/root_only.txt"], + "a.what", + "important.what", + "root_only.txt", + "subdir/", + "subdir/root_only.txt", + "subdir/b.what", + "temp/", + "temp/c.txt", + ]; + addToTestDir(files); + await expectPaths( + ["important.what", "subdir/root_only.txt"], + ["a.what", "root_only.txt", "subdir/b.what", "temp/c.txt"], + ); + }); + + test("should listen to both .gitignore and .continueignore", async () => { + const files = [ + [".gitignore", "*.py"], + [".continueignore", "*.ts"], + "a.txt", + "b.py", + "c.ts", + "d.js", + ]; + addToTestDir(files); + await expectPaths(["a.txt", "d.js"], ["b.py", "c.ts"]); + }); + + test("should return dirs and only dirs in onlyDirs mode", async () => { + const files = [ + "a.txt", + "b.py", + "c.ts", + "d/", + "d/e.txt", + "d/f.py", + "d/g/", + "d/g/h.ts", + ]; + addToTestDir(files); + await expectPaths( + ["d", "d/g"], + ["a.txt", "b.py", "c.ts", "d/e.txt", "d/f.py", "d/g/h.ts"], + { onlyDirs: true, includeEmpty: true }, + ); + }); + + test("should return valid paths in absolute path mode", async () => { + const files = ["a.txt", "b/", "b/c.txt"]; + addToTestDir(files); + await expectPaths( + [path.join(TEST_DIR, "a.txt"), path.join(TEST_DIR, "b", "c.txt")], + [], + { + returnRelativePaths: false, + }, + ); + }); + + test("should skip .git and node_modules folders", async () => { + const files = [ + "a.txt", + ".git/", + ".git/config", + ".git/HEAD", + ".git/objects/", + ".git/objects/1234567890abcdef", + "node_modules/", + "node_modules/package/", + "node_modules/package/index.js", + "src/", + "src/index.ts", + ]; + addToTestDir(files); + await expectPaths( + ["a.txt", "src/index.ts"], + [ + ".git/config", + ".git/HEAD", + "node_modules/package/index.js", + ".git/objects/1234567890abcdef", + ], + ); + }); + + test("should walk continue repo without getting any files of the default ignore types", async () => { + const results = await walkDir(path.join(__dirname, ".."), ide, { + ignoreFiles: [".gitignore", ".continueignore"], + }); + expect(results.length).toBeGreaterThan(0); + expect(results.some((file) => file.includes("/node_modules/"))).toBe(false); + expect(results.some((file) => file.includes("/.git/"))).toBe(false); + expect( + results.some( + (file) => + file.endsWith(".gitignore") || + file.endsWith(".continueignore") || + file.endsWith("package-lock.json"), + ), + ).toBe(false); + // At some point we will cross this number, but in case we leap past it suddenly I think we'd want to investigate why + expect(results.length).toBeLessThan(1500); + }); + + test("should walk continue/extensions/vscode without getting any files in the .continueignore", async () => { + const vscodePath = path.join(__dirname, "..", "extensions", "vscode"); + const results = await walkDir(vscodePath, ide, { + ignoreFiles: [".gitignore", ".continueignore"], + }); + expect(results.length).toBeGreaterThan(0); + expect(results.some((file) => file.includes("/textmate-syntaxes/"))).toBe( + false, + ); + expect(results.some((file) => file.includes(".tmLanguage"))).toBe(false); + }); +}); diff --git a/core/tsconfig.json b/core/tsconfig.json index 91573d8a6..d59b9a3d9 100644 --- a/core/tsconfig.json +++ b/core/tsconfig.json @@ -3,9 +3,9 @@ "target": "ESNext", "useDefineForClassFields": true, "lib": ["DOM", "DOM.Iterable", "ESNext", "ES2021"], - "allowJs": false, + "allowJs": true, "skipLibCheck": true, - "esModuleInterop": false, + "esModuleInterop": true, "allowSyntheticDefaultImports": true, "strict": true, "forceConsistentCasingInFileNames": true, @@ -18,5 +18,6 @@ "noEmitOnError": false, "types": ["jest", "node"] }, - "include": ["./**/*.ts", "indexing/embeddings/TransformersJsWorkerThread.js"] + "include": ["./**/*.ts", "./**/*.js", "./**/*.d.ts"], + "exclude": ["dist"] } diff --git a/core/tsconfig.npm.json b/core/tsconfig.npm.json index 3e6d85576..153e1af18 100644 --- a/core/tsconfig.npm.json +++ b/core/tsconfig.npm.json @@ -3,7 +3,7 @@ "target": "ESNext", "useDefineForClassFields": true, "lib": ["DOM", "DOM.Iterable", "ESNext", "ES2021"], - "allowJs": false, + "allowJs": true, "skipLibCheck": true, "esModuleInterop": false, "allowSyntheticDefaultImports": true, @@ -20,5 +20,6 @@ "declaration": true, "declarationMap": true }, - "include": ["./**/*.ts", "indexing/embeddings/TransformersJsWorkerThread.js"] + "include": ["./**/*.ts", "**/*.js", "./**/*.d.ts"], + "exclude": ["test", "dist"] } diff --git a/core/util/GlobalContext.ts b/core/util/GlobalContext.ts new file mode 100644 index 000000000..d3b931c87 --- /dev/null +++ b/core/util/GlobalContext.ts @@ -0,0 +1,51 @@ +import fs from "node:fs"; +import { getGlobalContextFilePath } from "./paths.js"; + +export type GlobalContextType = { + indexingPaused: boolean; + selectedTabAutocompleteModel: string; + lastSelectedProfileForWorkspace: { [workspaceIdentifier: string]: string }; +}; + +/** + * A way to persist global state + */ +export class GlobalContext { + update( + key: T, + value: GlobalContextType[T], + ) { + if (!fs.existsSync(getGlobalContextFilePath())) { + fs.writeFileSync( + getGlobalContextFilePath(), + JSON.stringify( + { + [key]: value, + }, + null, + 2, + ), + ); + } else { + const data = fs.readFileSync(getGlobalContextFilePath(), "utf-8"); + const parsed = JSON.parse(data); + parsed[key] = value; + fs.writeFileSync( + getGlobalContextFilePath(), + JSON.stringify(parsed, null, 2), + ); + } + } + + get( + key: T, + ): GlobalContextType[T] | undefined { + if (!fs.existsSync(getGlobalContextFilePath())) { + return undefined; + } + + const data = fs.readFileSync(getGlobalContextFilePath(), "utf-8"); + const parsed = JSON.parse(data); + return parsed[key]; + } +} diff --git a/core/util/LruCache.ts b/core/util/LruCache.ts new file mode 100644 index 000000000..f6d923fed --- /dev/null +++ b/core/util/LruCache.ts @@ -0,0 +1,30 @@ +export class PrecalculatedLruCache { + private items: [string, V][] = []; + constructor( + private readonly calculateValue: (key: string) => Promise, + private readonly N: number, + ) {} + + async initKey(key: string) { + // Maintain LRU + const index = this.items.findIndex((item) => item[0] === key); + + if (index < 0) { + // Calculate info for new file + const value: V = await this.calculateValue(key); + + this.items.push([key, value]); + if (this.items.length > this.N) { + this.items.shift(); + } + } else { + // Move to end of array, since it was recently used + const [item] = this.items.splice(index, 1); + this.items.push(item); + } + } + + get(key: string): V | undefined { + return this.items.find((item) => item[0] === key)?.[1]; + } +} diff --git a/core/util/ca.ts b/core/util/ca.ts new file mode 100644 index 000000000..9767c556b --- /dev/null +++ b/core/util/ca.ts @@ -0,0 +1,23 @@ +import { globalAgent } from "https"; +import { systemCertsAsync } from "system-ca"; + +export async function setupCa() { + try { + switch (process.platform) { + case "darwin": + // https://www.npmjs.com/package/mac-ca#usage + require("mac-ca").addToGlobalAgent(); + break; + case "win32": + // https://www.npmjs.com/package/win-ca#caveats + require("win-ca").inject("+"); + break; + default: + // https://www.npmjs.com/package/system-ca + globalAgent.options.ca = await systemCertsAsync(); + break; + } + } catch (e) { + console.warn("Failed to setup CA: ", e); + } +} diff --git a/core/util/devdata.ts b/core/util/devdata.ts index 1e62cf252..fc223c6e2 100644 --- a/core/util/devdata.ts +++ b/core/util/devdata.ts @@ -1,8 +1,8 @@ -import * as fs from "fs"; -import { getDevDataFilePath } from "./paths"; +import { writeFileSync } from "fs"; +import { getDevDataFilePath } from "./paths.js"; export function logDevData(tableName: string, data: any) { const filepath: string = getDevDataFilePath(tableName); const jsonLine = JSON.stringify(data); - fs.writeFileSync(filepath, `${jsonLine}\n`, { flag: "a" }); + writeFileSync(filepath, `${jsonLine}\n`, { flag: "a" }); } diff --git a/core/util/devdataSqlite.ts b/core/util/devdataSqlite.ts index d278bc125..9724e9f21 100644 --- a/core/util/devdataSqlite.ts +++ b/core/util/devdataSqlite.ts @@ -1,6 +1,8 @@ import fs from "fs"; -import { DatabaseConnection } from "../indexing/refreshIndex"; -import { getDevDataSqlitePath } from "./paths"; +import { open } from "sqlite"; +import sqlite3 from "sqlite3"; +import { DatabaseConnection } from "../indexing/refreshIndex.js"; +import { getDevDataSqlitePath } from "./paths.js"; export class DevDataSqliteDb { static db: DatabaseConnection | null = null; @@ -12,9 +14,23 @@ export class DevDataSqliteDb { model TEXT NOT NULL, provider TEXT NOT NULL, tokens_generated INTEGER NOT NULL, + tokens_prompt INTEGER NOT NULL DEFAULT 0, timestamp DATETIME DEFAULT CURRENT_TIMESTAMP )`, ); + + // Add tokens_prompt column if it doesn't exist + const columnCheckResult = await db.all( + `PRAGMA table_info(tokens_generated);`, + ); + const columnExists = columnCheckResult.some( + (col: any) => col.name === "tokens_prompt", + ); + if (!columnExists) { + await db.exec( + `ALTER TABLE tokens_generated ADD COLUMN tokens_prompt INTEGER NOT NULL DEFAULT 0;`, + ); + } } public static async logTokensGenerated( @@ -32,22 +48,20 @@ export class DevDataSqliteDb { public static async getTokensPerDay() { const db = await DevDataSqliteDb.get(); - // Return a sum of tokens_generated column aggregated by day const result = await db?.all( - `SELECT date(timestamp) as day, sum(tokens_generated) as tokens + // Return a sum of tokens_generated and tokens_prompt columns aggregated by day + `SELECT date(timestamp) as day, sum(tokens_prompt) as promptTokens, sum(tokens_generated) as generatedTokens FROM tokens_generated GROUP BY date(timestamp)`, - // WHERE model = ? AND provider = ? - // [model, provider], ); return result ?? []; } public static async getTokensPerModel() { const db = await DevDataSqliteDb.get(); - // Return a sum of tokens_generated column aggregated by model const result = await db?.all( - `SELECT model, sum(tokens_generated) as tokens + // Return a sum of tokens_generated and tokens_prompt columns aggregated by model + `SELECT model, sum(tokens_prompt) as promptTokens, sum(tokens_generated) as generatedTokens FROM tokens_generated GROUP BY model`, ); @@ -60,8 +74,6 @@ export class DevDataSqliteDb { return DevDataSqliteDb.db; } - const { open } = require("sqlite"); - const sqlite3 = require("sqlite3"); DevDataSqliteDb.db = await open({ filename: devDataSqlitePath, driver: sqlite3.Database, diff --git a/core/util/fetchWithOptions.ts b/core/util/fetchWithOptions.ts index 5dd94d9ab..f2e782266 100644 --- a/core/util/fetchWithOptions.ts +++ b/core/util/fetchWithOptions.ts @@ -1,4 +1,4 @@ -import { http, https } from "follow-redirects"; +import * as followRedirects from "follow-redirects"; import { HttpProxyAgent } from "http-proxy-agent"; import { globalAgent } from "https"; import { HttpsProxyAgent } from "https-proxy-agent"; @@ -7,6 +7,8 @@ import * as fs from "node:fs"; import tls from "node:tls"; import { RequestOptions } from "../index.js"; +const { http, https } = (followRedirects as any).default; + export function fetchwithRequestOptions( url_: URL | string, init?: RequestInit, @@ -40,7 +42,7 @@ export function fetchwithRequestOptions( const timeout = (requestOptions?.timeout ?? TIMEOUT) * 1000; // measured in ms - const agentOptions = { + const agentOptions: {[key: string]: any} = { ca, rejectUnauthorized: requestOptions?.verifySsl, timeout, @@ -49,6 +51,15 @@ export function fetchwithRequestOptions( keepAliveMsecs: timeout, }; + // Handle ClientCertificateOptions + if (requestOptions?.clientCertificate){ + agentOptions.cert = fs.readFileSync(requestOptions.clientCertificate.cert,"utf8"); + agentOptions.key = fs.readFileSync(requestOptions.clientCertificate.key,"utf8"); + if(requestOptions.clientCertificate.passphrase){ + agentOptions.passphrase = requestOptions.clientCertificate.passphrase; + } + } + const proxy = requestOptions?.proxy; // Create agent @@ -97,4 +108,4 @@ export function fetchwithRequestOptions( }); return resp; -} \ No newline at end of file +} diff --git a/core/util/filesystem.ts b/core/util/filesystem.ts index 1eaf62e7b..bf81921f7 100644 --- a/core/util/filesystem.ts +++ b/core/util/filesystem.ts @@ -1,18 +1,45 @@ import * as fs from "node:fs"; +import * as path from "node:path"; import { ContinueRcJson, FileType, IDE, IdeInfo, + IdeSettings, IndexTag, + Location, Problem, Range, + RangeInFile, Thread, -} from "../index.js"; +} from "../index.d.js"; import { getContinueGlobalPath } from "./paths.js"; class FileSystemIde implements IDE { + constructor(private readonly workspaceDir: string) {} + pathSep(): Promise { + return Promise.resolve(path.sep); + } + fileExists(filepath: string): Promise { + return Promise.resolve(fs.existsSync(filepath)); + } + + gotoDefinition(location: Location): Promise { + throw new Error("Method not implemented."); + } + onDidChangeActiveTextEditor(callback: (filepath: string) => void): void { + throw new Error("Method not implemented."); + } + + async getIdeSettings(): Promise { + return { + remoteConfigServerUrl: "https://yep.tools/assets/ahrefs-continue-config.json", + remoteConfigSyncPeriod: 60, + userToken: "", + enableControlServerBeta: false, + }; + } async getGitHubAuthToken(): Promise { return undefined; } @@ -30,12 +57,12 @@ class FileSystemIde implements IDE { const all: [string, FileType][] = fs .readdirSync(dir, { withFileTypes: true }) .map((dirent: any) => [ - dirent.path, + dirent.name, dirent.isDirectory() - ? FileType.Directory + ? (2 as FileType.Directory) : dirent.isSymbolicLink() - ? FileType.SymbolicLink - : FileType.File, + ? (64 as FileType.SymbolicLink) + : (1 as FileType.File), ]); return Promise.resolve(all); } @@ -68,7 +95,7 @@ class FileSystemIde implements IDE { } isTelemetryEnabled(): Promise { - return Promise.resolve(false); + return Promise.resolve(true); } getUniqueId(): Promise { @@ -110,29 +137,8 @@ class FileSystemIde implements IDE { return Promise.resolve(); } - listWorkspaceContents( - directory?: string, - useGitIgnore?: boolean, - ): Promise { - return new Promise((resolve, reject) => { - fs.readdir("/tmp/continue", (err, files) => { - if (err) { - reject(err); - } - resolve(files); - }); - }); - } - getWorkspaceDirs(): Promise { - return new Promise((resolve, reject) => { - fs.mkdtemp("/tmp/continue", (err, folder) => { - if (err) { - reject(err); - } - resolve([folder]); - }); - }); + return Promise.resolve([this.workspaceDir]); } listFolders(): Promise { @@ -218,4 +224,4 @@ class FileSystemIde implements IDE { } } -export default FileSystemIde; \ No newline at end of file +export default FileSystemIde; diff --git a/core/util/history.ts b/core/util/history.ts index a7b4167e4..ac1744ada 100644 --- a/core/util/history.ts +++ b/core/util/history.ts @@ -1,18 +1,26 @@ import * as fs from "fs"; -import { PersistedSessionInfo, SessionInfo } from ".."; -import { getSessionFilePath, getSessionsListPath } from "./paths"; +import { PersistedSessionInfo, SessionInfo } from "../index.js"; +import { ListHistoryOptions } from "../protocol/core.js"; +import { getSessionFilePath, getSessionsListPath } from "./paths.js"; class HistoryManager { - list(): SessionInfo[] { + list(options: ListHistoryOptions): SessionInfo[] { const filepath = getSessionsListPath(); if (!fs.existsSync(filepath)) { return []; } const content = fs.readFileSync(filepath, "utf8"); - const sessions = JSON.parse(content).filter((session: any) => { + let sessions = JSON.parse(content).filter((session: any) => { // Filter out old format return typeof session.session_id !== "string"; }); + + // Apply limit and offset + if (options.limit) { + const offset = options.offset || 0; + sessions = sessions.slice(offset, offset + options.limit); + } + return sessions; } @@ -55,7 +63,7 @@ class HistoryManager { session.sessionId = sessionId; return session; } catch (e) { - console.log(`Error migrating session: ${e}`); + console.log(`Error loading session: ${e}`); return { history: [], title: "Failed to load session", @@ -94,7 +102,6 @@ class HistoryManager { if (sessionInfo.sessionId === session.sessionId) { sessionInfo.title = session.title; sessionInfo.workspaceDirectory = session.workspaceDirectory; - sessionInfo.dateCreated = String(Date.now()); found = true; break; } @@ -116,11 +123,10 @@ class HistoryManager { throw new Error( `It looks like there is a JSON formatting error in your sessions.json file (${sessionsListFilePath}). Please fix this before creating a new session.`, ); - } else { - throw new Error( - `It looks like there is a validation error in your sessions.json file (${sessionsListFilePath}). Please fix this before creating a new session. Error: ${error}`, - ); } + throw new Error( + `It looks like there is a validation error in your sessions.json file (${sessionsListFilePath}). Please fix this before creating a new session. Error: ${error}`, + ); } } } diff --git a/core/util/index.ts b/core/util/index.ts index bc25fe7c5..0c7a06317 100644 --- a/core/util/index.ts +++ b/core/util/index.ts @@ -1,256 +1,272 @@ -import { - ContextProviderExtras, -} from "../index.js"; - export function removeQuotesAndEscapes(output: string): string { -output = output.trim(); - -// Replace smart quotes -output = output.replace("“", '"'); -output = output.replace("”", '"'); -output = output.replace("‘", "'"); -output = output.replace("’", "'"); - -// Remove escapes -output = output.replace('\\"', '"'); -output = output.replace("\\'", "'"); -output = output.replace("\\n", "\n"); -output = output.replace("\\t", "\t"); -output = output.replace("\\\\", "\\"); -while ( - (output.startsWith('"') && output.endsWith('"')) || - (output.startsWith("'") && output.endsWith("'")) -) { - output = output.slice(1, -1); -} - -while (output.startsWith("`") && output.endsWith("`")) { - output = output.slice(1, -1); -} - -return output; -} - -export function proxyFetch(url: string, init?: RequestInit): Promise { -if (!(window as any)._fetch) { - throw new Error("Proxy fetch not initialized"); -} - -if (!(url.startsWith("http://") || url.startsWith("https://"))) { - // Relative URL - const fullUrl = `${window.vscMediaUrl}/${url}`; - return (window as any)._fetch(fullUrl, init); -} - -const proxyServerUrl = - (window as any).proxyServerUrl || "http://localhost:65433"; + output = output.trim(); + + // Replace smart quotes + output = output.replace("“", '"'); + output = output.replace("”", '"'); + output = output.replace("‘", "'"); + output = output.replace("’", "'"); + + // Remove escapes + output = output.replace('\\"', '"'); + output = output.replace("\\'", "'"); + output = output.replace("\\n", "\n"); + output = output.replace("\\t", "\t"); + output = output.replace("\\\\", "\\"); + while ( + (output.startsWith('"') && output.endsWith('"')) || + (output.startsWith("'") && output.endsWith("'")) + ) { + output = output.slice(1, -1); + } -const headers = new Headers(init?.headers); -headers.append("x-continue-url", url); + while (output.startsWith("`") && output.endsWith("`")) { + output = output.slice(1, -1); + } -return (window as any)._fetch(proxyServerUrl, { - ...init, - headers, -}); + return output; } export function dedentAndGetCommonWhitespace(s: string): [string, string] { -const lines = s.split("\n"); -if (lines.length === 0 || (lines[0].trim() === "" && lines.length === 1)) { - return ["", ""]; -} - -// Longest common whitespace prefix -let lcp = lines[0].split(lines[0].trim())[0]; -// Iterate through the lines -for (let i = 1; i < lines.length; i++) { - // Empty lines are wildcards - if (lines[i].trim() === "") { - continue; // hey that's us! + const lines = s.split("\n"); + if (lines.length === 0 || (lines[0].trim() === "" && lines.length === 1)) { + return ["", ""]; } - if (lcp === undefined) { - lcp = lines[i].split(lines[i].trim())[0]; - } + // Longest common whitespace prefix + let lcp = lines[0].split(lines[0].trim())[0]; + // Iterate through the lines + for (let i = 1; i < lines.length; i++) { + // Empty lines are wildcards + if (lines[i].trim() === "") { + continue; // hey that's us! + } + + if (lcp === undefined) { + lcp = lines[i].split(lines[i].trim())[0]; + } - // Iterate through the leading whitespace characters of the current line - for (let j = 0; j < lcp.length; j++) { - // If it doesn't have the same whitespace as lcp, then update lcp - if (j >= lines[i].length || lcp[j] !== lines[i][j]) { - lcp = lcp.slice(0, j); - if (lcp === "") { - return [s, ""]; + // Iterate through the leading whitespace characters of the current line + for (let j = 0; j < lcp.length; j++) { + // If it doesn't have the same whitespace as lcp, then update lcp + if (j >= lines[i].length || lcp[j] !== lines[i][j]) { + lcp = lcp.slice(0, j); + if (lcp === "") { + return [s, ""]; + } + break; } - break; } } -} -if (lcp === undefined) { - return [s, ""]; -} + if (lcp === undefined) { + return [s, ""]; + } -return [lines.map((x) => x.replace(lcp, "")).join("\n"), lcp]; + return [lines.map((x) => x.replace(lcp, "")).join("\n"), lcp]; } const SEP_REGEX = /[\\/]/; export function getBasename(filepath: string): string { -return filepath.split(SEP_REGEX).pop() ?? ""; + return filepath.split(SEP_REGEX).pop() ?? ""; } export function getLastNPathParts(filepath: string, n: number): string { -return filepath.split(SEP_REGEX).slice(-n).join("/"); + if (n <= 0) { + return ""; + } + return filepath.split(SEP_REGEX).slice(-n).join("/"); } -export function getRelativePath( -filepath: string, -workspaceDirs: string[], +export function groupByLastNPathParts( + filepaths: string[], + n: number, +): Record { + return filepaths.reduce( + (groups, item) => { + const lastNParts = getLastNPathParts(item, n); + if (!groups[lastNParts]) { + groups[lastNParts] = []; + } + groups[lastNParts].push(item); + return groups; + }, + {} as Record, + ); +} + +export function getUniqueFilePath( + item: string, + itemGroups: Record, ): string { -for (const workspaceDir of workspaceDirs) { - const filepathParts = splitPath(filepath); - const workspaceDirParts = splitPath(workspaceDir); - if ( - filepathParts.slice(0, workspaceDirParts.length).join("/") === - workspaceDirParts.join("/") - ) { - return filepathParts.slice(workspaceDirParts.length).join("/"); + const lastTwoParts = getLastNPathParts(item, 2); + const group = itemGroups[lastTwoParts]; + + let n = 2; + if (group.length > 1) { + while ( + group.some( + (otherItem) => + otherItem !== item && + getLastNPathParts(otherItem, n) === getLastNPathParts(item, n), + ) + ) { + n++; + } } -} -return splitPath(filepath).pop() ?? ""; // If the file is not in any of the workspaces, return the plain filename + + return getLastNPathParts(item, n); } export function shortestRelativePaths(paths: string[]): string[] { -if (paths.length === 0) return []; - -const partsLengths = paths.map((x) => x.split(SEP_REGEX).length); -const currentRelativePaths = paths.map(getBasename); -const currentNumParts = paths.map(() => 1); -const isDuplicated = currentRelativePaths.map( - (x, i) => - currentRelativePaths.filter((y, j) => y === x && paths[i] !== paths[j]) - .length > 1, -); - -while (isDuplicated.some(Boolean)) { - const firstDuplicatedPath = currentRelativePaths.find( - (x, i) => isDuplicated[i], + if (paths.length === 0) return []; + + const partsLengths = paths.map((x) => x.split(SEP_REGEX).length); + const currentRelativePaths = paths.map(getBasename); + const currentNumParts = paths.map(() => 1); + const isDuplicated = currentRelativePaths.map( + (x, i) => + currentRelativePaths.filter((y, j) => y === x && paths[i] !== paths[j]) + .length > 1, ); - if (!firstDuplicatedPath) break; - - currentRelativePaths.forEach((x, i) => { - if (x === firstDuplicatedPath) { - currentNumParts[i] += 1; - currentRelativePaths[i] = getLastNPathParts( - paths[i], - currentNumParts[i], - ); - } - }); - isDuplicated.forEach((x, i) => { - if (x) { - isDuplicated[i] = - // Once we've used up all the parts, we can't make it longer - currentNumParts[i] < partsLengths[i] && - currentRelativePaths.filter((y) => y === currentRelativePaths[i]) - .length > 1; - } - }); -} + while (isDuplicated.some(Boolean)) { + const firstDuplicatedPath = currentRelativePaths.find( + (x, i) => isDuplicated[i], + ); + if (!firstDuplicatedPath) break; + + currentRelativePaths.forEach((x, i) => { + if (x === firstDuplicatedPath) { + currentNumParts[i] += 1; + currentRelativePaths[i] = getLastNPathParts( + paths[i], + currentNumParts[i], + ); + } + }); + + isDuplicated.forEach((x, i) => { + if (x) { + isDuplicated[i] = + // Once we've used up all the parts, we can't make it longer + currentNumParts[i] < partsLengths[i] && + currentRelativePaths.filter((y) => y === currentRelativePaths[i]) + .length > 1; + } + }); + } -return currentRelativePaths; + return currentRelativePaths; } export function splitPath(path: string, withRoot?: string): string[] { -let parts = path.includes("/") ? path.split("/") : path.split("\\"); -if (withRoot !== undefined) { - const rootParts = splitPath(withRoot); - parts = parts.slice(rootParts.length - 1); + let parts = path.includes("/") ? path.split("/") : path.split("\\"); + if (withRoot !== undefined) { + const rootParts = splitPath(withRoot); + parts = parts.slice(rootParts.length - 1); + } + return parts; } -return parts; + +export function getRelativePath( + filepath: string, + workspaceDirs: string[], +): string { + for (const workspaceDir of workspaceDirs) { + const filepathParts = splitPath(filepath); + const workspaceDirParts = splitPath(workspaceDir); + if ( + filepathParts.slice(0, workspaceDirParts.length).join("/") === + workspaceDirParts.join("/") + ) { + return filepathParts.slice(workspaceDirParts.length).join("/"); + } + } + return splitPath(filepath).pop() ?? ""; // If the file is not in any of the workspaces, return the plain filename } export function getMarkdownLanguageTagForFile(filepath: string): string { -const ext = filepath.split(".").pop(); -switch (ext) { - case "py": - return "python"; - case "js": - return "javascript"; - case "jsx": - return "jsx"; - case "tsx": - return "tsx"; - case "ts": - return "typescript"; - case "java": - return "java"; - case "go": - return "go"; - case "rb": - return "ruby"; - case "rs": - return "rust"; - case "c": - return "c"; - case "cpp": - return "cpp"; - case "cs": - return "csharp"; - case "php": - return "php"; - case "scala": - return "scala"; - case "swift": - return "swift"; - case "kt": - return "kotlin"; - case "md": - return "markdown"; - case "json": - return "json"; - case "html": - return "html"; - case "css": - return "css"; - case "sh": - return "shell"; - case "yaml": - return "yaml"; - case "toml": - return "toml"; - case "tex": - return "latex"; - case "sql": - return "sql"; - case "ps1": - return "powershell"; - default: - return ext ?? ""; -} + const ext = filepath.split(".").pop(); + switch (ext) { + case "py": + return "python"; + case "js": + return "javascript"; + case "jsx": + return "jsx"; + case "tsx": + return "tsx"; + case "ts": + return "typescript"; + case "java": + return "java"; + case "go": + return "go"; + case "rb": + return "ruby"; + case "rs": + return "rust"; + case "c": + return "c"; + case "cpp": + return "cpp"; + case "cs": + return "csharp"; + case "php": + return "php"; + case "scala": + return "scala"; + case "swift": + return "swift"; + case "kt": + return "kotlin"; + case "md": + return "markdown"; + case "json": + return "json"; + case "html": + return "html"; + case "css": + return "css"; + case "sh": + return "shell"; + case "yaml": + return "yaml"; + case "toml": + return "toml"; + case "tex": + return "latex"; + case "sql": + return "sql"; + case "ps1": + return "powershell"; + default: + return ext ?? ""; + } } export function copyOf(obj: any): any { -if (obj === null || obj === undefined) { - return obj; -} -return JSON.parse(JSON.stringify(obj)); + if (obj === null || obj === undefined) { + return obj; + } + return JSON.parse(JSON.stringify(obj)); } export function deduplicateArray( -array: T[], -equal: (a: T, b: T) => boolean, + array: T[], + equal: (a: T, b: T) => boolean, ): T[] { -const result: T[] = []; + const result: T[] = []; -for (const item of array) { - if (!result.some((existingItem) => equal(existingItem, item))) { - result.push(item); + for (const item of array) { + if (!result.some((existingItem) => equal(existingItem, item))) { + result.push(item); + } } -} -return result; + return result; } -export type TODO = any; \ No newline at end of file +export type TODO = any; diff --git a/core/util/lcs.ts b/core/util/lcs.ts new file mode 100644 index 000000000..17ea63f9a --- /dev/null +++ b/core/util/lcs.ts @@ -0,0 +1,30 @@ +export function longestCommonSubsequence(a: string, b: string) { + const lengths: number[][] = []; + for (let i = 0; i <= a.length; i++) { + lengths[i] = []; + for (let j = 0; j <= b.length; j++) { + if (i === 0 || j === 0) { + lengths[i][j] = 0; + } else if (a[i - 1] === b[j - 1]) { + lengths[i][j] = lengths[i - 1][j - 1] + 1; + } else { + lengths[i][j] = Math.max(lengths[i - 1][j], lengths[i][j - 1]); + } + } + } + let result = ""; + let x = a.length; + let y = b.length; + while (x !== 0 && y !== 0) { + if (lengths[x][y] === lengths[x - 1][y]) { + x--; + } else if (lengths[x][y] === lengths[x][y - 1]) { + y--; + } else { + result = a[x - 1] + result; + x--; + y--; + } + } + return result; +} diff --git a/core/util/logging.ts b/core/util/logging.ts new file mode 100644 index 000000000..4f74c13e7 --- /dev/null +++ b/core/util/logging.ts @@ -0,0 +1,56 @@ +import os from "os"; + +export class Telemetry { + // Set to undefined whenever telemetry is disabled + static serverUrl?: string = "https://ahrefs_continue_logging_prod.ahrefs.dev/user/log"; + static uniqueId: string = "NOT_UNIQUE"; + static os: string | undefined = undefined; + static extensionVersion: string | undefined = undefined; + + static async capture(event: string, properties: { [key: string]: any }) { + if (Telemetry.serverUrl) { + const data = { + distinctId: Telemetry.uniqueId, + event, + properties: { + ...properties, + os: Telemetry.os, + extensionVersion: Telemetry.extensionVersion, + }, + }; + + try { + const response = await fetch(Telemetry.serverUrl, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + body: JSON.stringify(data), + }); + + if (!response.ok) { + console.error(`Failed to send telemetry data: ${response.statusText}`); + } + } catch (e) { + console.error(`Failed to send telemetry data: ${e}`); + } + } + } + + static async setup( + allow: boolean, + uniqueId: string, + extensionVersion: string, + serverUrl?: string + ) { + Telemetry.uniqueId = uniqueId; + Telemetry.os = os.platform(); + Telemetry.extensionVersion = extensionVersion; + + if (!allow) { + Telemetry.serverUrl = undefined; + } else { + Telemetry.serverUrl = serverUrl || Telemetry.serverUrl; + } + } +} diff --git a/core/util/merge.ts b/core/util/merge.ts index 1dab1baab..d20ebcd15 100644 --- a/core/util/merge.ts +++ b/core/util/merge.ts @@ -1,4 +1,4 @@ -import { ConfigMergeType } from ".."; +import { ConfigMergeType } from "../index.js"; type JsonObject = { [key: string]: any }; @@ -11,8 +11,8 @@ export function mergeJson( const copyOfFirst = JSON.parse(JSON.stringify(first)); try { - for (var key in second) { - let secondValue = second[key]; + for (const key in second) { + const secondValue = second[key]; if (!(key in copyOfFirst) || mergeBehavior === "overwrite") { // New value @@ -25,7 +25,7 @@ export function mergeJson( // Array if (mergeKeys?.[key]) { // Merge keys are used to determine whether an item form the second object should override one from the first - let keptFromFirst: any[] = []; + const keptFromFirst: any[] = []; firstValue.forEach((item: any) => { if ( !secondValue.some((item2: any) => mergeKeys[key](item, item2)) diff --git a/core/util/messageIde.ts b/core/util/messageIde.ts index 8f4f874c5..11bd9b3b2 100644 --- a/core/util/messageIde.ts +++ b/core/util/messageIde.ts @@ -1,25 +1,66 @@ -import { +import type { ContinueRcJson, - IDE, FileType, + IDE, IdeInfo, + IdeSettings, IndexTag, + Location, Problem, Range, + RangeInFile, Thread, -} from ".."; +} from "../index.js"; +import { ToIdeFromWebviewOrCoreProtocol } from "../protocol/ide.js"; +import { FromIdeProtocol } from "../protocol/index.js"; export class MessageIde implements IDE { constructor( - private readonly request: (messageType: string, data: any) => Promise, + private readonly request: ( + messageType: T, + data: ToIdeFromWebviewOrCoreProtocol[T][0], + ) => Promise, + private readonly on: ( + messageType: T, + callback: (data: FromIdeProtocol[T][0]) => FromIdeProtocol[T][1], + ) => void, ) {} + pathSep(): Promise { + return this.request("pathSep", undefined); + } + fileExists(filepath: string): Promise { + return this.request("fileExists", { filepath }); + } + async gotoDefinition(location: Location): Promise { + return this.request("gotoDefinition", { location }); + } + onDidChangeActiveTextEditor(callback: (filepath: string) => void): void { + this.on("didChangeActiveTextEditor", (data) => callback(data.filepath)); + } + getIdeSettings(): Promise { + return this.request("getIdeSettings", undefined); + } getGitHubAuthToken(): Promise { return this.request("getGitHubAuthToken", undefined); } getLastModified(files: string[]): Promise<{ [path: string]: number }> { return this.request("getLastModified", { files }); } + getGitRootPath(dir: string): Promise { + return this.request("getGitRootPath", { dir }); + } + listDir(dir: string): Promise<[string, FileType][]> { + return this.request("listDir", { dir }); + } + + infoPopup(message: string): Promise { + return this.request("errorPopup", { message }); + } + + errorPopup(message: string): Promise { + return this.request("errorPopup", { message }); + } getRepoName(dir: string): Promise { return this.request("getRepoName", { dir }); @@ -29,13 +70,6 @@ export class MessageIde implements IDE { return this.request("getDebugLocals", { threadIndex }); } - getGitRootPath(dir: string): Promise { - return this.request("getGitRootPath", { dir }); - } - listDir(dir: string): Promise<[string, FileType][]> { - return this.request("listDir", { dir }); - } - getTopLevelCallStackSources( threadIndex: number, stackDepth: number, @@ -62,10 +96,6 @@ export class MessageIde implements IDE { return this.request("readRangeInFile", { filepath, range }); } - getStats(directory: string): Promise<{ [path: string]: number }> { - throw new Error("Method not implemented."); - } - isTelemetryEnabled(): Promise { return this.request("isTelemetryEnabled", undefined); } @@ -86,10 +116,6 @@ export class MessageIde implements IDE { return await this.request("getTerminalContents", undefined); } - async listWorkspaceContents(directory?: string): Promise { - return await this.request("listWorkspaceContents", undefined); - } - async getWorkspaceDirs(): Promise { return await this.request("getWorkspaceDirs", undefined); } @@ -151,6 +177,10 @@ export class MessageIde implements IDE { return this.request("getOpenFiles", undefined); } + getCurrentFile(): Promise { + return this.request("getCurrentFile", undefined); + } + getPinnedFiles(): Promise { return this.request("getPinnedFiles", undefined); } @@ -159,7 +189,7 @@ export class MessageIde implements IDE { return this.request("getSearchResults", { query }); } - getProblems(filepath?: string | undefined): Promise { + getProblems(filepath: string): Promise { return this.request("getProblems", { filepath }); } @@ -170,16 +200,4 @@ export class MessageIde implements IDE { async getBranch(dir: string): Promise { return this.request("getBranch", { dir }); } - - getCurrentFile(): Promise { - return this.request("getCurrentFile", undefined); - } - - infoPopup(message: string): Promise { - return this.request("errorPopup", { message }); - } - - errorPopup(message: string): Promise { - return this.request("errorPopup", { message }); - } } diff --git a/core/util/messenger.ts b/core/util/messenger.ts index 9f12b9630..416e4e8da 100644 --- a/core/util/messenger.ts +++ b/core/util/messenger.ts @@ -1,5 +1,151 @@ +import { v4 as uuidv4 } from "uuid"; +import type { IProtocol } from "../protocol/index.js"; + export interface Message { messageType: string; messageId: string; data: T; } + +export interface FromMessage< + FromProtocol extends IProtocol, + T extends keyof FromProtocol, +> { + messageType: T; + messageId: string; + data: FromProtocol[T][1]; +} + +export interface IMessenger< + ToProtocol extends IProtocol, + FromProtocol extends IProtocol, +> { + onError(handler: (error: Error) => void): void; + send( + messageType: T, + data: FromProtocol[T][0], + messageId?: string, + ): string; + + on( + messageType: T, + handler: ( + message: Message, + ) => Promise | ToProtocol[T][1], + ): void; + + request( + messageType: T, + data: FromProtocol[T][0], + ): Promise; + + invoke( + messageType: T, + data: ToProtocol[T][0], + messageId?: string, + ): ToProtocol[T][1]; +} + +export class InProcessMessenger< + ToProtocol extends IProtocol, + FromProtocol extends IProtocol, +> implements IMessenger +{ + // Listeners for the entity that owns this messenger (right now, always Core) + protected myTypeListeners = new Map< + keyof ToProtocol, + (message: Message) => any + >(); + + // Listeners defined by the other side of the protocol (right now, always IDE) + protected externalTypeListeners = new Map< + keyof FromProtocol, + (message: Message) => any + >(); + + protected _onErrorHandlers: ((error: Error) => void)[] = []; + + onError(handler: (error: Error) => void) { + this._onErrorHandlers.push(handler); + } + + invoke( + messageType: T, + data: ToProtocol[T][0], + messageId?: string, + ): ToProtocol[T][1] { + const listener = this.myTypeListeners.get(messageType); + if (!listener) return; + + const msg: Message = { + messageType: messageType as string, + data, + messageId: messageId ?? uuidv4(), + }; + return listener(msg); + } + + send( + messageType: T, + message: any, + _messageId?: string, + ): string { + const messageId = _messageId ?? uuidv4(); + const data: Message = { + messageType: messageType as string, + data: message, + messageId, + }; + this.externalTypeListeners.get(messageType)?.(data); + return messageId; + } + + on( + messageType: T, + handler: (message: Message) => ToProtocol[T][1], + ): void { + this.myTypeListeners.set(messageType, handler); + } + + async request( + messageType: T, + data: FromProtocol[T][0], + ): Promise { + const messageId = uuidv4(); + const listener = this.externalTypeListeners.get(messageType); + if (!listener) { + throw new Error(`No handler for message type "${String(messageType)}"`); + } + const response = await listener({ + messageType: messageType as string, + data, + messageId, + }); + return response; + } + + externalOn( + messageType: T, + handler: (message: Message) => any, + ) { + this.externalTypeListeners.set(messageType, handler); + } + + externalRequest( + messageType: T, + data: ToProtocol[T][0], + _messageId?: string, + ): Promise { + const messageId = _messageId ?? uuidv4(); + const listener = this.myTypeListeners.get(messageType); + if (!listener) { + throw new Error(`No handler for message type "${String(messageType)}"`); + } + const response = listener({ + messageType: messageType as string, + data, + messageId, + }); + return Promise.resolve(response); + } +} diff --git a/core/util/parameters.ts b/core/util/parameters.ts index e3f8844f4..b413a869e 100644 --- a/core/util/parameters.ts +++ b/core/util/parameters.ts @@ -3,7 +3,7 @@ import { TabAutocompleteOptions } from "../index.js"; export const DEFAULT_AUTOCOMPLETE_OPTS: TabAutocompleteOptions = { disable: false, useCopyBuffer: false, - useSuffix: true, + useFileSuffix: true, maxPromptTokens: 1024, prefixPercentage: 0.85, maxSuffixPercentage: 0.25, @@ -19,6 +19,7 @@ export const DEFAULT_AUTOCOMPLETE_OPTS: TabAutocompleteOptions = { useRecentlyEdited: true, recentLinePrefixMatchMinLength: 7, disableInFiles: undefined, + useImports: true, }; export const COUNT_COMPLETION_REJECTED_AFTER = 10_000; @@ -26,10 +27,9 @@ export const DO_NOT_COUNT_REJECTED_BEFORE = 250; export const RETRIEVAL_PARAMS = { rerankThreshold: 0.3, - nFinal: 10, - nRetrieve: 20, + nFinal: 20, + nRetrieve: 50, bm25Threshold: -2.5, + nResultsToExpandWithEmbeddings: 5, + nEmbeddingsExpandTo: 5, }; - -// export const SERVER_URL = "http://localhost:3000"; -export const SERVER_URL = "https://proxy-server-blue-l6vsfbzhba-uw.a.run.app"; \ No newline at end of file diff --git a/core/util/paths.ts b/core/util/paths.ts index 36b846f72..27df773d2 100644 --- a/core/util/paths.ts +++ b/core/util/paths.ts @@ -1,28 +1,25 @@ +import * as JSONC from "comment-json"; import dotenv from "dotenv"; import * as fs from "fs"; import * as os from "os"; import * as path from "path"; -import { IdeType, SerializedContinueConfig } from ".."; -import { defaultConfig, defaultConfigJetBrains } from "../config/default"; -import Types from "../config/types"; +import { defaultConfig, defaultConfigJetBrains } from "../config/default.js"; +import Types from "../config/types.js"; +import { IdeType, SerializedContinueConfig } from "../index.js"; + +dotenv.config(); +const CONTINUE_GLOBAL_DIR = + process.env.CONTINUE_GLOBAL_DIR ?? path.join(os.homedir(), ".ahrefs-continue"); export function getContinueGlobalPath(): string { // This is ~/.continue on mac/linux - const continuePath = path.join(os.homedir(), ".ahrefs-continue"); + const continuePath = CONTINUE_GLOBAL_DIR; if (!fs.existsSync(continuePath)) { fs.mkdirSync(continuePath); } return continuePath; } -export function getContinueSavedSessionsPath(): string { - const savedSessionsPath = path.join(getContinueGlobalPath(), "saved_sessions"); - if (!fs.existsSync(savedSessionsPath)) { - fs.mkdirSync(savedSessionsPath); - } - return savedSessionsPath; -} - export function getSessionsFolderPath(): string { const sessionsPath = path.join(getContinueGlobalPath(), "sessions"); if (!fs.existsSync(sessionsPath)) { @@ -39,6 +36,10 @@ export function getIndexFolderPath(): string { return indexPath; } +export function getGlobalContextFilePath(): string { + return path.join(getIndexFolderPath(), "globalContext.json"); +} + export function getSessionFilePath(sessionId: string): string { return path.join(getSessionsFolderPath(), `${sessionId}.json`); } @@ -87,7 +88,7 @@ export function getConfigTsPath(): string { fs.writeFileSync( packageJsonPath, JSON.stringify({ - name: "continue-config", + name: "ahrefs-continue-config", version: "1.0.0", description: "My Continue Configuration", main: "config.js", @@ -138,6 +139,24 @@ export function getTsConfigPath(): string { return tsConfigPath; } +export function getContinueRcPath(): string { + // Disable indexing of the config folder to prevent infinite loops + const continuercPath = path.join(getContinueGlobalPath(), ".ahrefs-continuerc.json"); + if (!fs.existsSync(continuercPath)) { + fs.writeFileSync( + continuercPath, + JSON.stringify( + { + disableIndexing: true, + }, + null, + 2, + ), + ); + } + return continuercPath; +} + export function devDataPath(): string { const sPath = path.join(getContinueGlobalPath(), "dev_data"); if (!fs.existsSync(sPath)) { @@ -151,17 +170,21 @@ export function getDevDataSqlitePath(): string { } export function getDevDataFilePath(fileName: string): string { - return path.join(devDataPath(), fileName + ".jsonl"); + return path.join(devDataPath(), `${fileName}.jsonl`); } export function editConfigJson( callback: (config: SerializedContinueConfig) => SerializedContinueConfig, -) { +): void { const config = fs.readFileSync(getConfigJsonPath(), "utf8"); - let configJson = JSON.parse(config); - configJson = callback(configJson); - fs.writeFileSync(getConfigJsonPath(), JSON.stringify(configJson, null, 2)); - return configJson; + let configJson = JSONC.parse(config); + // Check if it's an object + if (typeof configJson === "object" && configJson !== null) { + configJson = callback(configJson as any) as any; + fs.writeFileSync(getConfigJsonPath(), JSONC.stringify(configJson, null, 2)); + } else { + console.warn("config.json is not a valid object"); + } } function getMigrationsFolderPath(): string { @@ -172,12 +195,23 @@ function getMigrationsFolderPath(): string { return migrationsPath; } -export function migrate(id: string, callback: () => void) { +export async function migrate( + id: string, + callback: () => void | Promise, + onAlreadyComplete?: () => void, +) { const migrationsPath = getMigrationsFolderPath(); const migrationPath = path.join(migrationsPath, id); + if (!fs.existsSync(migrationPath)) { - fs.writeFileSync(migrationPath, ""); - callback(); + try { + await callback(); + fs.writeFileSync(migrationPath, ""); + } catch (e) { + console.warn(`Migration ${id} failed`, e); + } + } else if (onAlreadyComplete) { + onAlreadyComplete(); } } @@ -205,22 +239,35 @@ export function getRemoteConfigsFolderPath(): string { return dir; } -export function getPathToRemoteConfig(remoteConfigServerUrl: URL): string { - const dir = path.join( - getRemoteConfigsFolderPath(), - remoteConfigServerUrl.hostname, - ); +export function getPathToRemoteConfig(remoteConfigServerUrl: string): string { + let url: URL | undefined = undefined; + try { + url = + typeof remoteConfigServerUrl !== "string" || remoteConfigServerUrl === "" + ? undefined + : new URL(remoteConfigServerUrl); + } catch (e) {} + const dir = path.join(getRemoteConfigsFolderPath(), url?.hostname ?? "None"); if (!fs.existsSync(dir)) { fs.mkdirSync(dir); } return dir; } -export function getConfigJsonPathForRemote(remoteConfigServerUrl: URL): string { - return path.join(getPathToRemoteConfig(remoteConfigServerUrl), "ahrefs-continue-config.json"); +export function internalBetaPathExists(): boolean { + const sPath = path.join(getContinueGlobalPath(), ".internal_beta"); + return fs.existsSync(sPath); +} + +export function getConfigJsonPathForRemote( + remoteConfigServerUrl: string, +): string { + return path.join(getPathToRemoteConfig(remoteConfigServerUrl), "config.json"); } -export function getConfigJsPathForRemote(remoteConfigServerUrl: URL): string { +export function getConfigJsPathForRemote( + remoteConfigServerUrl: string, +): string { return path.join(getPathToRemoteConfig(remoteConfigServerUrl), "config.js"); } @@ -228,11 +275,50 @@ export function getContinueDotEnv(): { [key: string]: string } { const filepath = path.join(getContinueGlobalPath(), ".env"); if (fs.existsSync(filepath)) { return dotenv.parse(fs.readFileSync(filepath)); - } else { - return {}; } + return {}; +} + +export function getLogsDirPath(): string { + const logsPath = path.join(getContinueGlobalPath(), "logs"); + if (!fs.existsSync(logsPath)) { + fs.mkdirSync(logsPath); + } + return logsPath; } export function getCoreLogsPath(): string { - return path.join(getContinueGlobalPath(), "core.log"); + return path.join(getLogsDirPath(), "core.log"); +} + +export function getPromptLogsPath(): string { + return path.join(getLogsDirPath(), "prompt.log"); +} + +export function getGlobalPromptsPath(): string { + return path.join(getContinueGlobalPath(), ".prompts"); +} + +export function readAllGlobalPromptFiles( + folderPath: string = getGlobalPromptsPath(), +): { path: string; content: string }[] { + if (!fs.existsSync(folderPath)) { + return []; + } + const files = fs.readdirSync(folderPath); + const promptFiles: { path: string; content: string }[] = []; + files.forEach((file) => { + const filepath = path.join(folderPath, file); + const stats = fs.statSync(filepath); + + if (stats.isDirectory()) { + const nestedPromptFiles = readAllGlobalPromptFiles(filepath); + promptFiles.push(...nestedPromptFiles); + } else { + const content = fs.readFileSync(filepath, "utf8"); + promptFiles.push({ path: filepath, content }); + } + }); + + return promptFiles; } diff --git a/core/util/posthog.ts b/core/util/posthog.ts index 071654372..c164a0349 100644 --- a/core/util/posthog.ts +++ b/core/util/posthog.ts @@ -1,13 +1,18 @@ -import os from "os"; +import os from "node:os"; +import { TeamAnalytics } from "../control-plane/TeamAnalytics"; export class Telemetry { // Set to undefined whenever telemetry is disabled static client: any = undefined; - static uniqueId: string = "NOT_UNIQUE"; + static uniqueId = "NOT_UNIQUE"; static os: string | undefined = undefined; static extensionVersion: string | undefined = undefined; - static async capture(event: string, properties: { [key: string]: any }) { + static async capture( + event: string, + properties: { [key: string]: any }, + sendToTeam: boolean = false, + ) { Telemetry.client?.capture({ distinctId: Telemetry.uniqueId, event, @@ -17,6 +22,10 @@ export class Telemetry { extensionVersion: Telemetry.extensionVersion, }, }); + + if (sendToTeam) { + TeamAnalytics.capture(event, properties); + } } static shutdownPosthogClient() { diff --git a/core/util/ranges.ts b/core/util/ranges.ts index 7cdc57b19..345933f03 100644 --- a/core/util/ranges.ts +++ b/core/util/ranges.ts @@ -90,4 +90,4 @@ export function minPosition(a: Position, b: Position): Position { } else { return a.character < b.character ? a : b; } -} \ No newline at end of file +} diff --git a/core/util/reverseMessageIde.ts b/core/util/reverseMessageIde.ts new file mode 100644 index 000000000..08a1ffe09 --- /dev/null +++ b/core/util/reverseMessageIde.ts @@ -0,0 +1,194 @@ +import { IDE } from ".."; +import { ToIdeFromWebviewOrCoreProtocol } from "../protocol/ide"; +import { Message } from "./messenger"; + +export class ReverseMessageIde { + private on( + messageType: T, + handler: ( + data: ToIdeFromWebviewOrCoreProtocol[T][0], + ) => + | Promise + | ToIdeFromWebviewOrCoreProtocol[T][1], + ): void { + this._on(messageType, (msg) => { + const data = msg.data; + const result = handler(data); + return result; + }); + } + + constructor( + private readonly _on: ( + messageType: T, + handler: ( + message: Message, + ) => + | Promise + | ToIdeFromWebviewOrCoreProtocol[T][1], + ) => void, + private readonly ide: IDE, + ) { + this.initializeListeners(); + } + + private initializeListeners() { + this.on("getGitHubAuthToken", () => { + return this.ide.getGitHubAuthToken(); + }); + + this.on("getLastModified", (data) => { + return this.ide.getLastModified(data.files); + }); + + this.on("getGitRootPath", (data) => { + return this.ide.getGitRootPath(data.dir); + }); + + this.on("listDir", (data) => { + return this.ide.listDir(data.dir); + }); + + this.on("infoPopup", (data) => { + return this.ide.infoPopup(data.message); + }); + + this.on("errorPopup", (data) => { + return this.ide.errorPopup(data.message); + }); + + this.on("getRepoName", (data) => { + return this.ide.getRepoName(data.dir); + }); + + this.on("getDebugLocals", (data) => { + return this.ide.getDebugLocals(data.threadIndex); + }); + + this.on("getTopLevelCallStackSources", (data) => { + return this.ide.getTopLevelCallStackSources( + data.threadIndex, + data.stackDepth, + ); + }); + + this.on("getAvailableThreads", () => { + return this.ide.getAvailableThreads(); + }); + + this.on("getTags", (data) => { + return this.ide.getTags(data); + }); + + this.on("getIdeInfo", () => { + return this.ide.getIdeInfo(); + }); + + this.on("readRangeInFile", (data) => { + return this.ide.readRangeInFile(data.filepath, data.range); + }); + + this.on("isTelemetryEnabled", () => { + return this.ide.isTelemetryEnabled(); + }); + + this.on("getUniqueId", () => { + return this.ide.getUniqueId(); + }); + + this.on("getWorkspaceConfigs", () => { + return this.ide.getWorkspaceConfigs(); + }); + + this.on("getIdeSettings", () => { + return this.ide.getIdeSettings(); + }); + + this.on("getDiff", () => { + return this.ide.getDiff(); + }); + + this.on("getTerminalContents", () => { + return this.ide.getTerminalContents(); + }); + + this.on("getWorkspaceDirs", () => { + return this.ide.getWorkspaceDirs(); + }); + + this.on("showLines", (data) => { + return this.ide.showLines(data.filepath, data.startLine, data.endLine); + }); + + this.on("listFolders", () => { + return this.ide.listFolders(); + }); + + this.on("getContinueDir", () => { + return this.ide.getContinueDir(); + }); + + this.on("writeFile", (data) => { + return this.ide.writeFile(data.path, data.contents); + }); + + this.on("fileExists", (data) => { + return this.ide.fileExists(data.filepath); + }); + + this.on("showVirtualFile", (data) => { + return this.ide.showVirtualFile(data.name, data.content); + }); + + this.on("openFile", (data) => { + return this.ide.openFile(data.path); + }); + + this.on("runCommand", (data) => { + return this.ide.runCommand(data.command); + }); + + this.on("saveFile", (data) => { + return this.ide.saveFile(data.filepath); + }); + + this.on("readFile", (data) => { + return this.ide.readFile(data.filepath); + }); + + this.on("showDiff", (data) => { + return this.ide.showDiff(data.filepath, data.newContents, data.stepIndex); + }); + + this.on("getOpenFiles", () => { + return this.ide.getOpenFiles(); + }); + + this.on("getCurrentFile", () => { + return this.ide.getCurrentFile(); + }); + + this.on("getPinnedFiles", () => { + return this.ide.getPinnedFiles(); + }); + + this.on("getSearchResults", (data) => { + return this.ide.getSearchResults(data.query); + }); + + this.on("getProblems", (data) => { + return this.ide.getProblems(data.filepath); + }); + + this.on("subprocess", (data) => { + return this.ide.subprocess(data.command); + }); + + this.on("getBranch", (data) => { + return this.ide.getBranch(data.dir); + }); + this.on("pathSep", (data) => { + return this.ide.pathSep(); + }); + } +} diff --git a/core/util/treeSitter.ts b/core/util/treeSitter.ts index 64a7d66d3..428c90d94 100644 --- a/core/util/treeSitter.ts +++ b/core/util/treeSitter.ts @@ -1,6 +1,6 @@ -import * as path from "path"; -import { Language } from "web-tree-sitter"; -const Parser = require("web-tree-sitter"); +import fs from "node:fs"; +import * as path from "node:path"; +import Parser, { Language } from "web-tree-sitter"; export const supportedLanguages: { [key: string]: string } = { cpp: "cpp", @@ -70,6 +70,7 @@ export const supportedLanguages: { [key: string]: string } = { rs: "rust", rdl: "systemrdl", toml: "toml", + sol: "solidity", // jl: "julia", // swift: "swift", @@ -78,9 +79,6 @@ export const supportedLanguages: { [key: string]: string } = { }; export async function getParserForFile(filepath: string) { - if (process.env.IS_BINARY) { - return undefined; - } try { await Parser.init(); const parser = new Parser(); @@ -95,6 +93,11 @@ export async function getParserForFile(filepath: string) { } } +// Loading the wasm files to create a Language object is an expensive operation and with +// sufficient number of files can result in errors, instead keep a map of language name +// to Language object +const nameToLanguage = new Map(); + export async function getLanguageForFile( filepath: string, ): Promise { @@ -102,19 +105,62 @@ export async function getLanguageForFile( await Parser.init(); const extension = path.extname(filepath).slice(1); - if (!supportedLanguages[extension]) { + const languageName = supportedLanguages[extension]; + if (!languageName) { return undefined; } - - const wasmPath = path.join( - __dirname, - "tree-sitter-wasms", - `tree-sitter-${supportedLanguages[extension]}.wasm`, - ); - const language = await Parser.Language.load(wasmPath); + let language = nameToLanguage.get(languageName); + if (!language) { + language = await loadLanguageForFileExt(extension); + nameToLanguage.set(languageName, language); + } return language; } catch (e) { console.error("Unable to load language for file", filepath, e); return undefined; } } + +export enum TSQueryType { + CodeSnippets = "code-snippet-queries", + Imports = "import-queries", +} + +export async function getQueryForFile( + filepath: string, + queryType: TSQueryType, +): Promise { + const language = await getLanguageForFile(filepath); + if (!language) { + return undefined; + } + + const fullLangName = supportedLanguages[filepath.split(".").pop() ?? ""]; + const sourcePath = path.join( + __dirname, + "..", + "tree-sitter", + queryType, + `${fullLangName}.scm`, + ); + if (!fs.existsSync(sourcePath)) { + return undefined; + } + const querySource = fs.readFileSync(sourcePath).toString(); + + const query = language.query(querySource); + return query; +} + +async function loadLanguageForFileExt( + fileExtension: string, +): Promise { + const wasmPath = path.join( + __dirname, + ...(process.env.NODE_ENV === "test" + ? ["node_modules", "tree-sitter-wasms", "out"] + : ["tree-sitter-wasms"]), + `tree-sitter-${supportedLanguages[fileExtension]}.wasm`, + ); + return await Parser.Language.load(wasmPath); +} diff --git a/core/util/verticalEdit.ts b/core/util/verticalEdit.ts index 149a65a43..e9516414b 100644 --- a/core/util/verticalEdit.ts +++ b/core/util/verticalEdit.ts @@ -1,15 +1,21 @@ -import { ChatMessage, DiffLine, ILLM } from ".."; import { filterCodeBlockLines, filterEnglishLinesAtEnd, filterEnglishLinesAtStart, filterLeadingAndTrailingNewLineInsertion, + skipLines, stopAtLines, -} from "../autocomplete/lineStream"; -import { streamDiff } from "../diff/streamDiff"; -import { streamLines } from "../diff/util"; -import { gptEditPrompt } from "../llm/templates/edit"; -import { Telemetry } from "./posthog"; +} from "../autocomplete/lineStream.js"; +import { streamDiff } from "../diff/streamDiff.js"; +import { streamLines } from "../diff/util.js"; +import { + ChatMessage, + DiffLine, + ILLM, + LLMFullCompletionOptions, +} from "../index.js"; +import { gptEditPrompt } from "../llm/templates/edit.js"; +import { Telemetry } from "./logging.js"; function constructPrompt( prefix: string, @@ -52,11 +58,15 @@ export async function* streamDiffLines( llm: ILLM, input: string, language: string | undefined, + onlyOneInsertion?: boolean, ): AsyncGenerator { - Telemetry.capture("inlineEdit", { - model: llm.model, - provider: llm.providerName, - }); + Telemetry.capture( + "inlineEdit", + { + model: llm.model, + provider: llm.providerName, + }, + ); // Strip common indentation for the LLM, then add back after generation let oldLines = @@ -80,6 +90,7 @@ export async function* streamDiffLines( ); const inept = modelIsInept(llm.model); + const options: LLMFullCompletionOptions = {}; const completion = typeof prompt === "string" ? llm.streamComplete(prompt, { raw: true }) @@ -90,6 +101,7 @@ export async function* streamDiffLines( lines = filterEnglishLinesAtStart(lines); lines = filterCodeBlockLines(lines); lines = stopAtLines(lines, () => {}); + lines = skipLines(lines); if (inept) { // lines = fixCodeLlamaFirstLineIndentation(lines); lines = filterEnglishLinesAtEnd(lines); @@ -103,7 +115,13 @@ export async function* streamDiffLines( diffLines = addIndentation(diffLines, indentation); } - for await (let diffLine of diffLines) { + let seenGreen = false; + for await (const diffLine of diffLines) { yield diffLine; + if (diffLine.type === "new") { + seenGreen = true; + } else if (onlyOneInsertion && seenGreen && diffLine.type === "same") { + break; + } } } diff --git a/core/util/withExponentialBackoff.ts b/core/util/withExponentialBackoff.ts index ff3aa7fec..efe9d95c1 100644 --- a/core/util/withExponentialBackoff.ts +++ b/core/util/withExponentialBackoff.ts @@ -2,10 +2,12 @@ interface APIError extends Error { response?: Response; } +const RETRY_AFTER_HEADER = "Retry-After"; + const withExponentialBackoff = async ( apiCall: () => Promise, maxRetries = 5, - initialDelaySeconds = 1 + initialDelaySeconds = 1, ) => { for (let attempt = 0; attempt < maxRetries; attempt++) { try { @@ -16,11 +18,12 @@ const withExponentialBackoff = async ( (error as APIError).response?.status === 429 && attempt < maxRetries - 1 ) { - const delay = initialDelaySeconds * 2 ** attempt; + const retryAfter = (error as APIError).response?.headers.get(RETRY_AFTER_HEADER); + const delay = retryAfter ? parseInt(retryAfter, 10) : initialDelaySeconds * 2 ** attempt; console.log( `Hit rate limit. Retrying in ${delay} seconds (attempt ${ attempt + 1 - })` + })`, ); await new Promise((resolve) => setTimeout(resolve, delay * 1000)); } else { diff --git a/core/vendor/modules/.package-lock.json b/core/vendor/modules/.package-lock.json new file mode 100644 index 000000000..75d2e2367 --- /dev/null +++ b/core/vendor/modules/.package-lock.json @@ -0,0 +1,713 @@ +{ + "name": "vendor", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "node_modules/@huggingface/jinja": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@huggingface/jinja/-/jinja-0.1.2.tgz", + "integrity": "sha512-x5mpbfJt1nKmVep5WNP5VjNsjWApWNj8pPYI+uYMkBWH9bWUJmQmHt2lbf0VCoQd54Oq3XuFEh/UyoVh7rPxmg==", + "engines": { + "node": ">=18" + } + }, + "node_modules/@protobufjs/aspromise": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", + "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==" + }, + "node_modules/@protobufjs/base64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" + }, + "node_modules/@protobufjs/codegen": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", + "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" + }, + "node_modules/@protobufjs/eventemitter": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", + "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==" + }, + "node_modules/@protobufjs/fetch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", + "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", + "dependencies": { + "@protobufjs/aspromise": "^1.1.1", + "@protobufjs/inquire": "^1.1.0" + } + }, + "node_modules/@protobufjs/float": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", + "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==" + }, + "node_modules/@protobufjs/inquire": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", + "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==" + }, + "node_modules/@protobufjs/path": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", + "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==" + }, + "node_modules/@protobufjs/pool": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", + "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==" + }, + "node_modules/@protobufjs/utf8": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", + "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" + }, + "node_modules/@types/long": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", + "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==" + }, + "node_modules/@types/node": { + "version": "20.11.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.3.tgz", + "integrity": "sha512-nrlmbvGPNGaj84IJZXMPhQuCMEVTT/hXZMJJG/aIqVL9fKxqk814sGGtJA4GI6hpJSLQjpi6cn0Qx9eOf9SDVg==", + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@xenova/transformers": { + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/@xenova/transformers/-/transformers-2.14.0.tgz", + "integrity": "sha512-rQ3O7SW5EM64b6XFZGx3XQ2cfiroefxUwU9ShfSpEZyhd082GvwNJJKndxgaukse1hZP1JUDoT0DfjDiq4IZiw==", + "dependencies": { + "@huggingface/jinja": "^0.1.0", + "onnxruntime-web": "1.14.0", + "sharp": "^0.32.0" + }, + "optionalDependencies": { + "onnxruntime-node": "1.14.0" + } + }, + "node_modules/b4a": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.4.tgz", + "integrity": "sha512-fpWrvyVHEKyeEvbKZTVOeZF3VSKKWtJxFIxX/jaVPf+cLbGUSitjb49pHLqPV2BUNNZ0LcoeEGfE/YCpyDYHIw==" + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" + }, + "node_modules/color": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", + "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", + "dependencies": { + "color-convert": "^2.0.1", + "color-string": "^1.9.0" + }, + "engines": { + "node": ">=12.5.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/color-string": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", + "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", + "dependencies": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "node_modules/decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "dependencies": { + "mimic-response": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/detect-libc": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.2.tgz", + "integrity": "sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/expand-template": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", + "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/fast-fifo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", + "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==" + }, + "node_modules/flatbuffers": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/flatbuffers/-/flatbuffers-1.12.0.tgz", + "integrity": "sha512-c7CZADjRcl6j0PlvFy0ZqXQ67qSEZfrVPynmnL+2zPc+NtMvrF8Y0QceMo7QqnSPc7+uWjUIAbvCQ5WIKlMVdQ==" + }, + "node_modules/fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" + }, + "node_modules/github-from-package": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", + "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==" + }, + "node_modules/guid-typescript": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/guid-typescript/-/guid-typescript-1.0.9.tgz", + "integrity": "sha512-Y8T4vYhEfwJOTbouREvG+3XDsjr8E3kIr7uf+JZ0BYloFsttiHU0WfvANVsR7TxNUJa/WpCnw/Ino/p+DeBhBQ==" + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + }, + "node_modules/is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" + }, + "node_modules/long": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", + "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mkdirp-classic": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", + "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==" + }, + "node_modules/napi-build-utils": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz", + "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==" + }, + "node_modules/node-abi": { + "version": "3.54.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.54.0.tgz", + "integrity": "sha512-p7eGEiQil0YUV3ItH4/tBb781L5impVmmx2E9FRKF7d18XXzp4PGT2tdYMFY6wQqgxD0IwNZOiSJ0/K0fSi/OA==", + "dependencies": { + "semver": "^7.3.5" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/node-addon-api": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-6.1.0.tgz", + "integrity": "sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==" + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onnx-proto": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/onnx-proto/-/onnx-proto-4.0.4.tgz", + "integrity": "sha512-aldMOB3HRoo6q/phyB6QRQxSt895HNNw82BNyZ2CMh4bjeKv7g/c+VpAFtJuEMVfYLMbRx61hbuqnKceLeDcDA==", + "dependencies": { + "protobufjs": "^6.8.8" + } + }, + "node_modules/onnxruntime-common": { + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/onnxruntime-common/-/onnxruntime-common-1.14.0.tgz", + "integrity": "sha512-3LJpegM2iMNRX2wUmtYfeX/ytfOzNwAWKSq1HbRrKc9+uqG/FsEA0bbKZl1btQeZaXhC26l44NWpNUeXPII7Ew==" + }, + "node_modules/onnxruntime-node": { + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/onnxruntime-node/-/onnxruntime-node-1.14.0.tgz", + "integrity": "sha512-5ba7TWomIV/9b6NH/1x/8QEeowsb+jBEvFzU6z0T4mNsFwdPqXeFUM7uxC6QeSRkEbWu3qEB0VMjrvzN/0S9+w==", + "optional": true, + "os": [ + "win32", + "darwin", + "linux" + ], + "dependencies": { + "onnxruntime-common": "~1.14.0" + } + }, + "node_modules/onnxruntime-web": { + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/onnxruntime-web/-/onnxruntime-web-1.14.0.tgz", + "integrity": "sha512-Kcqf43UMfW8mCydVGcX9OMXI2VN17c0p6XvR7IPSZzBf/6lteBzXHvcEVWDPmCKuGombl997HgLqj91F11DzXw==", + "dependencies": { + "flatbuffers": "^1.12.0", + "guid-typescript": "^1.0.9", + "long": "^4.0.0", + "onnx-proto": "^4.0.4", + "onnxruntime-common": "~1.14.0", + "platform": "^1.3.6" + } + }, + "node_modules/platform": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/platform/-/platform-1.3.6.tgz", + "integrity": "sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg==" + }, + "node_modules/prebuild-install": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.1.tgz", + "integrity": "sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw==", + "dependencies": { + "detect-libc": "^2.0.0", + "expand-template": "^2.0.3", + "github-from-package": "0.0.0", + "minimist": "^1.2.3", + "mkdirp-classic": "^0.5.3", + "napi-build-utils": "^1.0.1", + "node-abi": "^3.3.0", + "pump": "^3.0.0", + "rc": "^1.2.7", + "simple-get": "^4.0.0", + "tar-fs": "^2.0.0", + "tunnel-agent": "^0.6.0" + }, + "bin": { + "prebuild-install": "bin.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/prebuild-install/node_modules/tar-fs": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", + "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", + "dependencies": { + "chownr": "^1.1.1", + "mkdirp-classic": "^0.5.2", + "pump": "^3.0.0", + "tar-stream": "^2.1.4" + } + }, + "node_modules/prebuild-install/node_modules/tar-stream": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "dependencies": { + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/protobufjs": { + "version": "6.11.4", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.4.tgz", + "integrity": "sha512-5kQWPaJHi1WoCpjTGszzQ32PG2F4+wRY6BmAT4Vfw56Q2FZ4YZzK20xUYQH4YkfehY1e6QSICrJquM6xXZNcrw==", + "hasInstallScript": true, + "dependencies": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/long": "^4.0.1", + "@types/node": ">=13.7.0", + "long": "^4.0.0" + }, + "bin": { + "pbjs": "bin/pbjs", + "pbts": "bin/pbts" + } + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/queue-tick": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz", + "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==" + }, + "node_modules/rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/sharp": { + "version": "0.32.6", + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.32.6.tgz", + "integrity": "sha512-KyLTWwgcR9Oe4d9HwCwNM2l7+J0dUQwn/yf7S0EnTtb0eVS4RxO0eUSvxPtzT4F3SY+C4K6fqdv/DO27sJ/v/w==", + "hasInstallScript": true, + "dependencies": { + "color": "^4.2.3", + "detect-libc": "^2.0.2", + "node-addon-api": "^6.1.0", + "prebuild-install": "^7.1.1", + "semver": "^7.5.4", + "simple-get": "^4.0.1", + "tar-fs": "^3.0.4", + "tunnel-agent": "^0.6.0" + }, + "engines": { + "node": ">=14.15.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/simple-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", + "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/simple-get": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz", + "integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "decompress-response": "^6.0.0", + "once": "^1.3.1", + "simple-concat": "^1.0.0" + } + }, + "node_modules/simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", + "dependencies": { + "is-arrayish": "^0.3.1" + } + }, + "node_modules/streamx": { + "version": "2.15.6", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.15.6.tgz", + "integrity": "sha512-q+vQL4AAz+FdfT137VF69Cc/APqUbxy+MDOImRrMvchJpigHj9GksgDU2LYbO9rx7RX6osWgxJB2WxhYv4SZAw==", + "dependencies": { + "fast-fifo": "^1.1.0", + "queue-tick": "^1.0.1" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/tar-fs": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.4.tgz", + "integrity": "sha512-5AFQU8b9qLfZCX9zp2duONhPmZv0hGYiBPJsyUdqMjzq/mqVpy/rEUSeHk1+YitmxugaptgBh5oDGU3VsAJq4w==", + "dependencies": { + "mkdirp-classic": "^0.5.2", + "pump": "^3.0.0", + "tar-stream": "^3.1.5" + } + }, + "node_modules/tar-stream": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.6.tgz", + "integrity": "sha512-B/UyjYwPpMBv+PaFSWAmtYjwdrlEaZQEhMIBFNC5oEG8lpiW8XjcSdmEaClj28ArfKScKHs2nshz3k2le6crsg==", + "dependencies": { + "b4a": "^1.6.4", + "fast-fifo": "^1.2.0", + "streamx": "^2.15.0" + } + }, + "node_modules/tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + } + } +} diff --git a/core/vendor/modules/@xenova/transformers/LICENSE b/core/vendor/modules/@xenova/transformers/LICENSE new file mode 100644 index 000000000..d64569567 --- /dev/null +++ b/core/vendor/modules/@xenova/transformers/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/core/vendor/modules/@xenova/transformers/README.md b/core/vendor/modules/@xenova/transformers/README.md new file mode 100644 index 000000000..d0f9bec49 --- /dev/null +++ b/core/vendor/modules/@xenova/transformers/README.md @@ -0,0 +1,351 @@ + + +

+
+ + + + transformers.js javascript library logo + +
+

+ +

+ + NPM + + + NPM Downloads + + + jsDelivr Hits + + + License + + + Documentation + +

+ + +State-of-the-art Machine Learning for the web. Run 🤗 Transformers directly in your browser, with no need for a server! + +Transformers.js is designed to be functionally equivalent to Hugging Face's [transformers](https://github.com/huggingface/transformers) python library, meaning you can run the same pretrained models using a very similar API. These models support common tasks in different modalities, such as: + - 📝 **Natural Language Processing**: text classification, named entity recognition, question answering, language modeling, summarization, translation, multiple choice, and text generation. + - 🖼️ **Computer Vision**: image classification, object detection, and segmentation. + - 🗣️ **Audio**: automatic speech recognition and audio classification. + - 🐙 **Multimodal**: zero-shot image classification. + +Transformers.js uses [ONNX Runtime](https://onnxruntime.ai/) to run models in the browser. The best part about it, is that you can easily [convert](#convert-your-models-to-onnx) your pretrained PyTorch, TensorFlow, or JAX models to ONNX using [🤗 Optimum](https://github.com/huggingface/optimum#onnx--onnx-runtime). + +For more information, check out the full [documentation](https://huggingface.co/docs/transformers.js). + + +## Quick tour + + +It's super simple to translate from existing code! Just like the python library, we support the `pipeline` API. Pipelines group together a pretrained model with preprocessing of inputs and postprocessing of outputs, making it the easiest way to run models with the library. + + + + + + + + + + +
Python (original)Javascript (ours)
+ +```python +from transformers import pipeline + +# Allocate a pipeline for sentiment-analysis +pipe = pipeline('sentiment-analysis') + +out = pipe('I love transformers!') +# [{'label': 'POSITIVE', 'score': 0.999806941}] +``` + + + +```javascript +import { pipeline } from '@xenova/transformers'; + +// Allocate a pipeline for sentiment-analysis +let pipe = await pipeline('sentiment-analysis'); + +let out = await pipe('I love transformers!'); +// [{'label': 'POSITIVE', 'score': 0.999817686}] +``` + +
+ + +You can also use a different model by specifying the model id or path as the second argument to the `pipeline` function. For example: +```javascript +// Use a different model for sentiment-analysis +let pipe = await pipeline('sentiment-analysis', 'Xenova/bert-base-multilingual-uncased-sentiment'); +``` + + +## Installation + + +To install via [NPM](https://www.npmjs.com/package/@xenova/transformers), run: +```bash +npm i @xenova/transformers +``` + +Alternatively, you can use it in vanilla JS, without any bundler, by using a CDN or static hosting. For example, using [ES Modules](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Modules), you can import the library with: +```html + +``` + + +## Examples + +Want to jump straight in? Get started with one of our sample applications/templates: + +| Name | Description | Links | +|-------------------|----------------------------------|-------------------------------| +| Whisper Web | Speech recognition w/ Whisper | [code](https://github.com/xenova/whisper-web), [demo](https://huggingface.co/spaces/Xenova/whisper-web) | +| Doodle Dash | Real-time sketch-recognition game | [blog](https://huggingface.co/blog/ml-web-games), [code](https://github.com/xenova/doodle-dash), [demo](https://huggingface.co/spaces/Xenova/doodle-dash) | +| Code Playground | In-browser code completion website | [code](./examples/code-completion/), [demo](https://huggingface.co/spaces/Xenova/ai-code-playground) | +| Semantic Image Search (client-side) | Search for images with text | [code](./examples/semantic-image-search-client/), [demo](https://huggingface.co/spaces/Xenova/semantic-image-search-client) | +| Semantic Image Search (server-side) | Search for images with text (Supabase) | [code](./examples/semantic-image-search/), [demo](https://huggingface.co/spaces/Xenova/semantic-image-search) | +| Vanilla JavaScript | In-browser object detection | [video](https://scrimba.com/scrim/cKm9bDAg), [code](./examples/vanilla-js/), [demo](https://huggingface.co/spaces/Scrimba/vanilla-js-object-detector) | +| React | Multilingual translation website | [code](./examples/react-translator/), [demo](https://huggingface.co/spaces/Xenova/react-translator) | +| Text to speech (client-side) | In-browser speech synthesis | [code](./examples/text-to-speech-client/), [demo](https://huggingface.co/spaces/Xenova/text-to-speech-client) | +| Browser extension | Text classification extension | [code](./examples/extension/) | +| Electron | Text classification application | [code](./examples/electron/) | +| Next.js (client-side) | Sentiment analysis (in-browser inference) | [code](./examples/next-client/), [demo](https://huggingface.co/spaces/Xenova/next-example-app) | +| Next.js (server-side) | Sentiment analysis (Node.js inference) | [code](./examples/next-server/), [demo](https://huggingface.co/spaces/Xenova/next-server-example-app) | +| Node.js | Sentiment analysis API | [code](./examples/node/) | +| Demo site | A collection of demos | [code](./examples/demo-site/), [demo](https://xenova.github.io/transformers.js/) | + +Check out the Transformers.js [template](https://huggingface.co/new-space?template=static-templates%2Ftransformers.js) on Hugging Face to get started in one click! + + +## Custom usage + + + +By default, Transformers.js uses [hosted pretrained models](https://huggingface.co/models?library=transformers.js) and [precompiled WASM binaries](https://cdn.jsdelivr.net/npm/@xenova/transformers@2.14.0/dist/), which should work out-of-the-box. You can customize this as follows: + + +### Settings + +```javascript +import { env } from '@xenova/transformers'; + +// Specify a custom location for models (defaults to '/models/'). +env.localModelPath = '/path/to/models/'; + +// Disable the loading of remote models from the Hugging Face Hub: +env.allowRemoteModels = false; + +// Set location of .wasm files. Defaults to use a CDN. +env.backends.onnx.wasm.wasmPaths = '/path/to/files/'; +``` + +For a full list of available settings, check out the [API Reference](https://huggingface.co/docs/transformers.js/api/env). + +### Convert your models to ONNX + +We recommend using our [conversion script](https://github.com/xenova/transformers.js/blob/main/scripts/convert.py) to convert your PyTorch, TensorFlow, or JAX models to ONNX in a single command. Behind the scenes, it uses [🤗 Optimum](https://huggingface.co/docs/optimum) to perform conversion and quantization of your model. + +```bash +python -m scripts.convert --quantize --model_id +``` + +For example, convert and quantize [bert-base-uncased](https://huggingface.co/bert-base-uncased) using: +```bash +python -m scripts.convert --quantize --model_id bert-base-uncased +``` + +This will save the following files to `./models/`: + +``` +bert-base-uncased/ +├── config.json +├── tokenizer.json +├── tokenizer_config.json +└── onnx/ + ├── model.onnx + └── model_quantized.onnx +``` + +For the full list of supported architectures, see the [Optimum documentation](https://huggingface.co/docs/optimum/main/en/exporters/onnx/overview). + + +## Supported tasks/models + +Here is the list of all tasks and architectures currently supported by Transformers.js. +If you don't see your task/model listed here or it is not yet supported, feel free +to open up a feature request [here](https://github.com/xenova/transformers.js/issues/new/choose). + +To find compatible models on the Hub, select the "transformers.js" library tag in the filter menu (or visit [this link](https://huggingface.co/models?library=transformers.js)). +You can refine your search by selecting the task you're interested in (e.g., [text-classification](https://huggingface.co/models?pipeline_tag=text-classification&library=transformers.js)). + + +### Tasks + +#### Natural Language Processing + +| Task | ID | Description | Supported? | +|--------------------------|----|-------------|------------| +| [Conversational](https://huggingface.co/tasks/conversational) | `conversational` | Generating conversational text that is relevant, coherent and knowledgable given a prompt. | ❌ | +| [Fill-Mask](https://huggingface.co/tasks/fill-mask) | `fill-mask` | Masking some of the words in a sentence and predicting which words should replace those masks. | ✅ [(docs)](https://huggingface.co/docs/transformers.js/api/pipelines#module_pipelines.FillMaskPipeline)
[(models)](https://huggingface.co/models?pipeline_tag=fill-mask&library=transformers.js) | +| [Question Answering](https://huggingface.co/tasks/question-answering) | `question-answering` | Retrieve the answer to a question from a given text. | ✅ [(docs)](https://huggingface.co/docs/transformers.js/api/pipelines#module_pipelines.QuestionAnsweringPipeline)
[(models)](https://huggingface.co/models?pipeline_tag=question-answering&library=transformers.js) | +| [Sentence Similarity](https://huggingface.co/tasks/sentence-similarity) | `sentence-similarity` | Determining how similar two texts are. | ✅ [(docs)](https://huggingface.co/docs/transformers.js/api/pipelines#module_pipelines.FeatureExtractionPipeline)
[(models)](https://huggingface.co/models?pipeline_tag=feature-extraction&library=transformers.js) | +| [Summarization](https://huggingface.co/tasks/summarization) | `summarization` | Producing a shorter version of a document while preserving its important information. | ✅ [(docs)](https://huggingface.co/docs/transformers.js/api/pipelines#module_pipelines.SummarizationPipeline)
[(models)](https://huggingface.co/models?pipeline_tag=summarization&library=transformers.js) | +| [Table Question Answering](https://huggingface.co/tasks/table-question-answering) | `table-question-answering` | Answering a question about information from a given table. | ❌ | +| [Text Classification](https://huggingface.co/tasks/text-classification) | `text-classification` or `sentiment-analysis` | Assigning a label or class to a given text. | ✅ [(docs)](https://huggingface.co/docs/transformers.js/api/pipelines#module_pipelines.TextClassificationPipeline)
[(models)](https://huggingface.co/models?pipeline_tag=text-classification&library=transformers.js) | +| [Text Generation](https://huggingface.co/tasks/text-generation#completion-generation-models) | `text-generation` | Producing new text by predicting the next word in a sequence. | ✅ [(docs)](https://huggingface.co/docs/transformers.js/api/pipelines#module_pipelines.TextGenerationPipeline)
[(models)](https://huggingface.co/models?pipeline_tag=text-generation&library=transformers.js) | +| [Text-to-text Generation](https://huggingface.co/tasks/text-generation#text-to-text-generation-models) | `text2text-generation` | Converting one text sequence into another text sequence. | ✅ [(docs)](https://huggingface.co/docs/transformers.js/api/pipelines#module_pipelines.Text2TextGenerationPipeline)
[(models)](https://huggingface.co/models?pipeline_tag=text2text-generation&library=transformers.js) | +| [Token Classification](https://huggingface.co/tasks/token-classification) | `token-classification` or `ner` | Assigning a label to each token in a text. | ✅ [(docs)](https://huggingface.co/docs/transformers.js/api/pipelines#module_pipelines.TokenClassificationPipeline)
[(models)](https://huggingface.co/models?pipeline_tag=token-classification&library=transformers.js) | +| [Translation](https://huggingface.co/tasks/translation) | `translation` | Converting text from one language to another. | ✅ [(docs)](https://huggingface.co/docs/transformers.js/api/pipelines#module_pipelines.TranslationPipeline)
[(models)](https://huggingface.co/models?pipeline_tag=translation&library=transformers.js) | +| [Zero-Shot Classification](https://huggingface.co/tasks/zero-shot-classification) | `zero-shot-classification` | Classifying text into classes that are unseen during training. | ✅ [(docs)](https://huggingface.co/docs/transformers.js/api/pipelines#module_pipelines.ZeroShotClassificationPipeline)
[(models)](https://huggingface.co/models?pipeline_tag=zero-shot-classification&library=transformers.js) | + +#### Vision + +| Task | ID | Description | Supported? | +|--------------------------|----|-------------|------------| +| [Depth Estimation](https://huggingface.co/tasks/depth-estimation) | `depth-estimation` | Predicting the depth of objects present in an image. | ✅ [(docs)](https://huggingface.co/docs/transformers.js/api/pipelines#module_pipelines.DepthEstimationPipeline)
[(models)](https://huggingface.co/models?pipeline_tag=depth-estimation&library=transformers.js) | +| [Image Classification](https://huggingface.co/tasks/image-classification) | `image-classification` | Assigning a label or class to an entire image. | ✅ [(docs)](https://huggingface.co/docs/transformers.js/api/pipelines#module_pipelines.ImageClassificationPipeline)
[(models)](https://huggingface.co/models?pipeline_tag=image-classification&library=transformers.js) | +| [Image Segmentation](https://huggingface.co/tasks/image-segmentation) | `image-segmentation` | Divides an image into segments where each pixel is mapped to an object. This task has multiple variants such as instance segmentation, panoptic segmentation and semantic segmentation. | ✅ [(docs)](https://huggingface.co/docs/transformers.js/api/pipelines#module_pipelines.ImageSegmentationPipeline)
[(models)](https://huggingface.co/models?pipeline_tag=image-segmentation&library=transformers.js) | +| [Image-to-Image](https://huggingface.co/tasks/image-to-image) | `image-to-image` | Transforming a source image to match the characteristics of a target image or a target image domain. | ✅ [(docs)](https://huggingface.co/docs/transformers.js/api/pipelines#module_pipelines.ImageToImagePipeline)
[(models)](https://huggingface.co/models?pipeline_tag=image-to-image&library=transformers.js) | +| [Mask Generation](https://huggingface.co/tasks/mask-generation) | `mask-generation` | Generate masks for the objects in an image. | ❌ | +| [Object Detection](https://huggingface.co/tasks/object-detection) | `object-detection` | Identify objects of certain defined classes within an image. | ✅ [(docs)](https://huggingface.co/docs/transformers.js/api/pipelines#module_pipelines.ObjectDetectionPipeline)
[(models)](https://huggingface.co/models?pipeline_tag=object-detection&library=transformers.js) | +| [Video Classification](https://huggingface.co/tasks/video-classification) | n/a | Assigning a label or class to an entire video. | ❌ | +| [Unconditional Image Generation](https://huggingface.co/tasks/unconditional-image-generation) | n/a | Generating images with no condition in any context (like a prompt text or another image). | ❌ | + +#### Audio + +| Task | ID | Description | Supported? | +|--------------------------|----|-------------|------------| +| [Audio Classification](https://huggingface.co/tasks/audio-classification) | `audio-classification` | Assigning a label or class to a given audio. | ✅ [(docs)](https://huggingface.co/docs/transformers.js/api/pipelines#module_pipelines.AudioClassificationPipeline)
[(models)](https://huggingface.co/models?pipeline_tag=audio-classification&library=transformers.js) | +| [Audio-to-Audio](https://huggingface.co/tasks/audio-to-audio) | n/a | Generating audio from an input audio source. | ❌ | +| [Automatic Speech Recognition](https://huggingface.co/tasks/automatic-speech-recognition) | `automatic-speech-recognition` | Transcribing a given audio into text. | ✅ [(docs)](https://huggingface.co/docs/transformers.js/api/pipelines#module_pipelines.AutomaticSpeechRecognitionPipeline)
[(models)](https://huggingface.co/models?pipeline_tag=automatic-speech-recognition&library=transformers.js) | +| [Text-to-Speech](https://huggingface.co/tasks/text-to-speech) | `text-to-speech` or `text-to-audio` | Generating natural-sounding speech given text input. | ✅ [(docs)](https://huggingface.co/docs/transformers.js/api/pipelines#module_pipelines.TextToAudioPipeline)
[(models)](https://huggingface.co/models?pipeline_tag=text-to-audio&library=transformers.js) | + + +#### Tabular + +| Task | ID | Description | Supported? | +|--------------------------|----|-------------|------------| +| [Tabular Classification](https://huggingface.co/tasks/tabular-classification) | n/a | Classifying a target category (a group) based on set of attributes. | ❌ | +| [Tabular Regression](https://huggingface.co/tasks/tabular-regression) | n/a | Predicting a numerical value given a set of attributes. | ❌ | + + +#### Multimodal + +| Task | ID | Description | Supported? | +|--------------------------|----|-------------|------------| +| [Document Question Answering](https://huggingface.co/tasks/document-question-answering) | `document-question-answering` | Answering questions on document images. | ✅ [(docs)](https://huggingface.co/docs/transformers.js/api/pipelines#module_pipelines.DocumentQuestionAnsweringPipeline)
[(models)](https://huggingface.co/models?pipeline_tag=document-question-answering&library=transformers.js) | +| [Feature Extraction](https://huggingface.co/tasks/feature-extraction) | `feature-extraction` | Transforming raw data into numerical features that can be processed while preserving the information in the original dataset. | ✅ [(docs)](https://huggingface.co/docs/transformers.js/api/pipelines#module_pipelines.FeatureExtractionPipeline)
[(models)](https://huggingface.co/models?pipeline_tag=feature-extraction&library=transformers.js) | +| [Image-to-Text](https://huggingface.co/tasks/image-to-text) | `image-to-text` | Output text from a given image. | ✅ [(docs)](https://huggingface.co/docs/transformers.js/api/pipelines#module_pipelines.ImageToTextPipeline)
[(models)](https://huggingface.co/models?pipeline_tag=image-to-text&library=transformers.js) | +| [Text-to-Image](https://huggingface.co/tasks/text-to-image) | `text-to-image` | Generates images from input text. | ❌ | +| [Visual Question Answering](https://huggingface.co/tasks/visual-question-answering) | `visual-question-answering` | Answering open-ended questions based on an image. | ❌ | +| [Zero-Shot Audio Classification](https://huggingface.co/learn/audio-course/chapter4/classification_models#zero-shot-audio-classification) | `zero-shot-audio-classification` | Classifying audios into classes that are unseen during training. | ✅ [(docs)](https://huggingface.co/docs/transformers.js/api/pipelines#module_pipelines.ZeroShotAudioClassificationPipeline)
[(models)](https://huggingface.co/models?other=zero-shot-audio-classification&library=transformers.js) | +| [Zero-Shot Image Classification](https://huggingface.co/tasks/zero-shot-image-classification) | `zero-shot-image-classification` | Classifying images into classes that are unseen during training. | ✅ [(docs)](https://huggingface.co/docs/transformers.js/api/pipelines#module_pipelines.ZeroShotImageClassificationPipeline)
[(models)](https://huggingface.co/models?pipeline_tag=zero-shot-image-classification&library=transformers.js) | +| [Zero-Shot Object Detection](https://huggingface.co/tasks/zero-shot-object-detection) | `zero-shot-object-detection` | Identify objects of classes that are unseen during training. | ✅ [(docs)](https://huggingface.co/docs/transformers.js/api/pipelines#module_pipelines.ZeroShotObjectDetectionPipeline)
[(models)](https://huggingface.co/models?other=zero-shot-object-detection&library=transformers.js) | + + +#### Reinforcement Learning + +| Task | ID | Description | Supported? | +|--------------------------|----|-------------|------------| +| [Reinforcement Learning](https://huggingface.co/tasks/reinforcement-learning) | n/a | Learning from actions by interacting with an environment through trial and error and receiving rewards (negative or positive) as feedback. | ❌ | + + + +### Models + +1. **[ALBERT](https://huggingface.co/docs/transformers/model_doc/albert)** (from Google Research and the Toyota Technological Institute at Chicago) released with the paper [ALBERT: A Lite BERT for Self-supervised Learning of Language Representations](https://arxiv.org/abs/1909.11942), by Zhenzhong Lan, Mingda Chen, Sebastian Goodman, Kevin Gimpel, Piyush Sharma, Radu Soricut. +1. **[Audio Spectrogram Transformer](https://huggingface.co/docs/transformers/model_doc/audio-spectrogram-transformer)** (from MIT) released with the paper [AST: Audio Spectrogram Transformer](https://arxiv.org/abs/2104.01778) by Yuan Gong, Yu-An Chung, James Glass. +1. **[BART](https://huggingface.co/docs/transformers/model_doc/bart)** (from Facebook) released with the paper [BART: Denoising Sequence-to-Sequence Pre-training for Natural Language Generation, Translation, and Comprehension](https://arxiv.org/abs/1910.13461) by Mike Lewis, Yinhan Liu, Naman Goyal, Marjan Ghazvininejad, Abdelrahman Mohamed, Omer Levy, Ves Stoyanov and Luke Zettlemoyer. +1. **[BEiT](https://huggingface.co/docs/transformers/model_doc/beit)** (from Microsoft) released with the paper [BEiT: BERT Pre-Training of Image Transformers](https://arxiv.org/abs/2106.08254) by Hangbo Bao, Li Dong, Furu Wei. +1. **[BERT](https://huggingface.co/docs/transformers/model_doc/bert)** (from Google) released with the paper [BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding](https://arxiv.org/abs/1810.04805) by Jacob Devlin, Ming-Wei Chang, Kenton Lee and Kristina Toutanova. +1. **[Blenderbot](https://huggingface.co/docs/transformers/model_doc/blenderbot)** (from Facebook) released with the paper [Recipes for building an open-domain chatbot](https://arxiv.org/abs/2004.13637) by Stephen Roller, Emily Dinan, Naman Goyal, Da Ju, Mary Williamson, Yinhan Liu, Jing Xu, Myle Ott, Kurt Shuster, Eric M. Smith, Y-Lan Boureau, Jason Weston. +1. **[BlenderbotSmall](https://huggingface.co/docs/transformers/model_doc/blenderbot-small)** (from Facebook) released with the paper [Recipes for building an open-domain chatbot](https://arxiv.org/abs/2004.13637) by Stephen Roller, Emily Dinan, Naman Goyal, Da Ju, Mary Williamson, Yinhan Liu, Jing Xu, Myle Ott, Kurt Shuster, Eric M. Smith, Y-Lan Boureau, Jason Weston. +1. **[BLOOM](https://huggingface.co/docs/transformers/model_doc/bloom)** (from BigScience workshop) released by the [BigScience Workshop](https://bigscience.huggingface.co/). +1. **[CamemBERT](https://huggingface.co/docs/transformers/model_doc/camembert)** (from Inria/Facebook/Sorbonne) released with the paper [CamemBERT: a Tasty French Language Model](https://arxiv.org/abs/1911.03894) by Louis Martin*, Benjamin Muller*, Pedro Javier Ortiz Suárez*, Yoann Dupont, Laurent Romary, Éric Villemonte de la Clergerie, Djamé Seddah and Benoît Sagot. +1. **[Chinese-CLIP](https://huggingface.co/docs/transformers/model_doc/chinese_clip)** (from OFA-Sys) released with the paper [Chinese CLIP: Contrastive Vision-Language Pretraining in Chinese](https://arxiv.org/abs/2211.01335) by An Yang, Junshu Pan, Junyang Lin, Rui Men, Yichang Zhang, Jingren Zhou, Chang Zhou. +1. **[CLAP](https://huggingface.co/docs/transformers/model_doc/clap)** (from LAION-AI) released with the paper [Large-scale Contrastive Language-Audio Pretraining with Feature Fusion and Keyword-to-Caption Augmentation](https://arxiv.org/abs/2211.06687) by Yusong Wu, Ke Chen, Tianyu Zhang, Yuchen Hui, Taylor Berg-Kirkpatrick, Shlomo Dubnov. +1. **[CLIP](https://huggingface.co/docs/transformers/model_doc/clip)** (from OpenAI) released with the paper [Learning Transferable Visual Models From Natural Language Supervision](https://arxiv.org/abs/2103.00020) by Alec Radford, Jong Wook Kim, Chris Hallacy, Aditya Ramesh, Gabriel Goh, Sandhini Agarwal, Girish Sastry, Amanda Askell, Pamela Mishkin, Jack Clark, Gretchen Krueger, Ilya Sutskever. +1. **[CLIPSeg](https://huggingface.co/docs/transformers/model_doc/clipseg)** (from University of Göttingen) released with the paper [Image Segmentation Using Text and Image Prompts](https://arxiv.org/abs/2112.10003) by Timo Lüddecke and Alexander Ecker. +1. **[CodeGen](https://huggingface.co/docs/transformers/model_doc/codegen)** (from Salesforce) released with the paper [A Conversational Paradigm for Program Synthesis](https://arxiv.org/abs/2203.13474) by Erik Nijkamp, Bo Pang, Hiroaki Hayashi, Lifu Tu, Huan Wang, Yingbo Zhou, Silvio Savarese, Caiming Xiong. +1. **[CodeLlama](https://huggingface.co/docs/transformers/model_doc/llama_code)** (from MetaAI) released with the paper [Code Llama: Open Foundation Models for Code](https://ai.meta.com/research/publications/code-llama-open-foundation-models-for-code/) by Baptiste Rozière, Jonas Gehring, Fabian Gloeckle, Sten Sootla, Itai Gat, Xiaoqing Ellen Tan, Yossi Adi, Jingyu Liu, Tal Remez, Jérémy Rapin, Artyom Kozhevnikov, Ivan Evtimov, Joanna Bitton, Manish Bhatt, Cristian Canton Ferrer, Aaron Grattafiori, Wenhan Xiong, Alexandre Défossez, Jade Copet, Faisal Azhar, Hugo Touvron, Louis Martin, Nicolas Usunier, Thomas Scialom, Gabriel Synnaeve. +1. **[ConvBERT](https://huggingface.co/docs/transformers/model_doc/convbert)** (from YituTech) released with the paper [ConvBERT: Improving BERT with Span-based Dynamic Convolution](https://arxiv.org/abs/2008.02496) by Zihang Jiang, Weihao Yu, Daquan Zhou, Yunpeng Chen, Jiashi Feng, Shuicheng Yan. +1. **[ConvNeXT](https://huggingface.co/docs/transformers/model_doc/convnext)** (from Facebook AI) released with the paper [A ConvNet for the 2020s](https://arxiv.org/abs/2201.03545) by Zhuang Liu, Hanzi Mao, Chao-Yuan Wu, Christoph Feichtenhofer, Trevor Darrell, Saining Xie. +1. **[ConvNeXTV2](https://huggingface.co/docs/transformers/model_doc/convnextv2)** (from Facebook AI) released with the paper [ConvNeXt V2: Co-designing and Scaling ConvNets with Masked Autoencoders](https://arxiv.org/abs/2301.00808) by Sanghyun Woo, Shoubhik Debnath, Ronghang Hu, Xinlei Chen, Zhuang Liu, In So Kweon, Saining Xie. +1. **[DeBERTa](https://huggingface.co/docs/transformers/model_doc/deberta)** (from Microsoft) released with the paper [DeBERTa: Decoding-enhanced BERT with Disentangled Attention](https://arxiv.org/abs/2006.03654) by Pengcheng He, Xiaodong Liu, Jianfeng Gao, Weizhu Chen. +1. **[DeBERTa-v2](https://huggingface.co/docs/transformers/model_doc/deberta-v2)** (from Microsoft) released with the paper [DeBERTa: Decoding-enhanced BERT with Disentangled Attention](https://arxiv.org/abs/2006.03654) by Pengcheng He, Xiaodong Liu, Jianfeng Gao, Weizhu Chen. +1. **[DeiT](https://huggingface.co/docs/transformers/model_doc/deit)** (from Facebook) released with the paper [Training data-efficient image transformers & distillation through attention](https://arxiv.org/abs/2012.12877) by Hugo Touvron, Matthieu Cord, Matthijs Douze, Francisco Massa, Alexandre Sablayrolles, Hervé Jégou. +1. **[DETR](https://huggingface.co/docs/transformers/model_doc/detr)** (from Facebook) released with the paper [End-to-End Object Detection with Transformers](https://arxiv.org/abs/2005.12872) by Nicolas Carion, Francisco Massa, Gabriel Synnaeve, Nicolas Usunier, Alexander Kirillov, Sergey Zagoruyko. +1. **[DINOv2](https://huggingface.co/docs/transformers/model_doc/dinov2)** (from Meta AI) released with the paper [DINOv2: Learning Robust Visual Features without Supervision](https://arxiv.org/abs/2304.07193) by Maxime Oquab, Timothée Darcet, Théo Moutakanni, Huy Vo, Marc Szafraniec, Vasil Khalidov, Pierre Fernandez, Daniel Haziza, Francisco Massa, Alaaeldin El-Nouby, Mahmoud Assran, Nicolas Ballas, Wojciech Galuba, Russell Howes, Po-Yao Huang, Shang-Wen Li, Ishan Misra, Michael Rabbat, Vasu Sharma, Gabriel Synnaeve, Hu Xu, Hervé Jegou, Julien Mairal, Patrick Labatut, Armand Joulin, Piotr Bojanowski. +1. **[DistilBERT](https://huggingface.co/docs/transformers/model_doc/distilbert)** (from HuggingFace), released together with the paper [DistilBERT, a distilled version of BERT: smaller, faster, cheaper and lighter](https://arxiv.org/abs/1910.01108) by Victor Sanh, Lysandre Debut and Thomas Wolf. The same method has been applied to compress GPT2 into [DistilGPT2](https://github.com/huggingface/transformers/tree/main/examples/research_projects/distillation), RoBERTa into [DistilRoBERTa](https://github.com/huggingface/transformers/tree/main/examples/research_projects/distillation), Multilingual BERT into [DistilmBERT](https://github.com/huggingface/transformers/tree/main/examples/research_projects/distillation) and a German version of DistilBERT. +1. **[DiT](https://huggingface.co/docs/transformers/model_doc/dit)** (from Microsoft Research) released with the paper [DiT: Self-supervised Pre-training for Document Image Transformer](https://arxiv.org/abs/2203.02378) by Junlong Li, Yiheng Xu, Tengchao Lv, Lei Cui, Cha Zhang, Furu Wei. +1. **[Donut](https://huggingface.co/docs/transformers/model_doc/donut)** (from NAVER), released together with the paper [OCR-free Document Understanding Transformer](https://arxiv.org/abs/2111.15664) by Geewook Kim, Teakgyu Hong, Moonbin Yim, Jeongyeon Nam, Jinyoung Park, Jinyeong Yim, Wonseok Hwang, Sangdoo Yun, Dongyoon Han, Seunghyun Park. +1. **[DPT](https://huggingface.co/docs/transformers/master/model_doc/dpt)** (from Intel Labs) released with the paper [Vision Transformers for Dense Prediction](https://arxiv.org/abs/2103.13413) by René Ranftl, Alexey Bochkovskiy, Vladlen Koltun. +1. **[ELECTRA](https://huggingface.co/docs/transformers/model_doc/electra)** (from Google Research/Stanford University) released with the paper [ELECTRA: Pre-training text encoders as discriminators rather than generators](https://arxiv.org/abs/2003.10555) by Kevin Clark, Minh-Thang Luong, Quoc V. Le, Christopher D. Manning. +1. **[ESM](https://huggingface.co/docs/transformers/model_doc/esm)** (from Meta AI) are transformer protein language models. **ESM-1b** was released with the paper [Biological structure and function emerge from scaling unsupervised learning to 250 million protein sequences](https://www.pnas.org/content/118/15/e2016239118) by Alexander Rives, Joshua Meier, Tom Sercu, Siddharth Goyal, Zeming Lin, Jason Liu, Demi Guo, Myle Ott, C. Lawrence Zitnick, Jerry Ma, and Rob Fergus. **ESM-1v** was released with the paper [Language models enable zero-shot prediction of the effects of mutations on protein function](https://doi.org/10.1101/2021.07.09.450648) by Joshua Meier, Roshan Rao, Robert Verkuil, Jason Liu, Tom Sercu and Alexander Rives. **ESM-2 and ESMFold** were released with the paper [Language models of protein sequences at the scale of evolution enable accurate structure prediction](https://doi.org/10.1101/2022.07.20.500902) by Zeming Lin, Halil Akin, Roshan Rao, Brian Hie, Zhongkai Zhu, Wenting Lu, Allan dos Santos Costa, Maryam Fazel-Zarandi, Tom Sercu, Sal Candido, Alexander Rives. +1. **[Falcon](https://huggingface.co/docs/transformers/model_doc/falcon)** (from Technology Innovation Institute) by Almazrouei, Ebtesam and Alobeidli, Hamza and Alshamsi, Abdulaziz and Cappelli, Alessandro and Cojocaru, Ruxandra and Debbah, Merouane and Goffinet, Etienne and Heslow, Daniel and Launay, Julien and Malartic, Quentin and Noune, Badreddine and Pannier, Baptiste and Penedo, Guilherme. +1. **[FLAN-T5](https://huggingface.co/docs/transformers/model_doc/flan-t5)** (from Google AI) released in the repository [google-research/t5x](https://github.com/google-research/t5x/blob/main/docs/models.md#flan-t5-checkpoints) by Hyung Won Chung, Le Hou, Shayne Longpre, Barret Zoph, Yi Tay, William Fedus, Eric Li, Xuezhi Wang, Mostafa Dehghani, Siddhartha Brahma, Albert Webson, Shixiang Shane Gu, Zhuyun Dai, Mirac Suzgun, Xinyun Chen, Aakanksha Chowdhery, Sharan Narang, Gaurav Mishra, Adams Yu, Vincent Zhao, Yanping Huang, Andrew Dai, Hongkun Yu, Slav Petrov, Ed H. Chi, Jeff Dean, Jacob Devlin, Adam Roberts, Denny Zhou, Quoc V. Le, and Jason Wei +1. **[GLPN](https://huggingface.co/docs/transformers/model_doc/glpn)** (from KAIST) released with the paper [Global-Local Path Networks for Monocular Depth Estimation with Vertical CutDepth](https://arxiv.org/abs/2201.07436) by Doyeon Kim, Woonghyun Ga, Pyungwhan Ahn, Donggyu Joo, Sehwan Chun, Junmo Kim. +1. **[GPT Neo](https://huggingface.co/docs/transformers/model_doc/gpt_neo)** (from EleutherAI) released in the repository [EleutherAI/gpt-neo](https://github.com/EleutherAI/gpt-neo) by Sid Black, Stella Biderman, Leo Gao, Phil Wang and Connor Leahy. +1. **[GPT NeoX](https://huggingface.co/docs/transformers/model_doc/gpt_neox)** (from EleutherAI) released with the paper [GPT-NeoX-20B: An Open-Source Autoregressive Language Model](https://arxiv.org/abs/2204.06745) by Sid Black, Stella Biderman, Eric Hallahan, Quentin Anthony, Leo Gao, Laurence Golding, Horace He, Connor Leahy, Kyle McDonell, Jason Phang, Michael Pieler, USVSN Sai Prashanth, Shivanshu Purohit, Laria Reynolds, Jonathan Tow, Ben Wang, Samuel Weinbach +1. **[GPT-2](https://huggingface.co/docs/transformers/model_doc/gpt2)** (from OpenAI) released with the paper [Language Models are Unsupervised Multitask Learners](https://blog.openai.com/better-language-models/) by Alec Radford*, Jeffrey Wu*, Rewon Child, David Luan, Dario Amodei** and Ilya Sutskever**. +1. **[GPT-J](https://huggingface.co/docs/transformers/model_doc/gptj)** (from EleutherAI) released in the repository [kingoflolz/mesh-transformer-jax](https://github.com/kingoflolz/mesh-transformer-jax/) by Ben Wang and Aran Komatsuzaki. +1. **[GPTBigCode](https://huggingface.co/docs/transformers/model_doc/gpt_bigcode)** (from BigCode) released with the paper [SantaCoder: don't reach for the stars!](https://arxiv.org/abs/2301.03988) by Loubna Ben Allal, Raymond Li, Denis Kocetkov, Chenghao Mou, Christopher Akiki, Carlos Munoz Ferrandis, Niklas Muennighoff, Mayank Mishra, Alex Gu, Manan Dey, Logesh Kumar Umapathi, Carolyn Jane Anderson, Yangtian Zi, Joel Lamy Poirier, Hailey Schoelkopf, Sergey Troshin, Dmitry Abulkhanov, Manuel Romero, Michael Lappert, Francesco De Toni, Bernardo García del Río, Qian Liu, Shamik Bose, Urvashi Bhattacharyya, Terry Yue Zhuo, Ian Yu, Paulo Villegas, Marco Zocca, Sourab Mangrulkar, David Lansky, Huu Nguyen, Danish Contractor, Luis Villa, Jia Li, Dzmitry Bahdanau, Yacine Jernite, Sean Hughes, Daniel Fried, Arjun Guha, Harm de Vries, Leandro von Werra. +1. **[HerBERT](https://huggingface.co/docs/transformers/model_doc/herbert)** (from Allegro.pl, AGH University of Science and Technology) released with the paper [KLEJ: Comprehensive Benchmark for Polish Language Understanding](https://www.aclweb.org/anthology/2020.acl-main.111.pdf) by Piotr Rybak, Robert Mroczkowski, Janusz Tracz, Ireneusz Gawlik. +1. **[Hubert](https://huggingface.co/docs/transformers/model_doc/hubert)** (from Facebook) released with the paper [HuBERT: Self-Supervised Speech Representation Learning by Masked Prediction of Hidden Units](https://arxiv.org/abs/2106.07447) by Wei-Ning Hsu, Benjamin Bolte, Yao-Hung Hubert Tsai, Kushal Lakhotia, Ruslan Salakhutdinov, Abdelrahman Mohamed. +1. **[LongT5](https://huggingface.co/docs/transformers/model_doc/longt5)** (from Google AI) released with the paper [LongT5: Efficient Text-To-Text Transformer for Long Sequences](https://arxiv.org/abs/2112.07916) by Mandy Guo, Joshua Ainslie, David Uthus, Santiago Ontanon, Jianmo Ni, Yun-Hsuan Sung, Yinfei Yang. +1. **[LLaMA](https://huggingface.co/docs/transformers/model_doc/llama)** (from The FAIR team of Meta AI) released with the paper [LLaMA: Open and Efficient Foundation Language Models](https://arxiv.org/abs/2302.13971) by Hugo Touvron, Thibaut Lavril, Gautier Izacard, Xavier Martinet, Marie-Anne Lachaux, Timothée Lacroix, Baptiste Rozière, Naman Goyal, Eric Hambro, Faisal Azhar, Aurelien Rodriguez, Armand Joulin, Edouard Grave, Guillaume Lample. +1. **[Llama2](https://huggingface.co/docs/transformers/model_doc/llama2)** (from The FAIR team of Meta AI) released with the paper [Llama2: Open Foundation and Fine-Tuned Chat Models](https://ai.meta.com/research/publications/llama-2-open-foundation-and-fine-tuned-chat-models/XXX) by Hugo Touvron, Louis Martin, Kevin Stone, Peter Albert, Amjad Almahairi, Yasmine Babaei, Nikolay Bashlykov, Soumya Batra, Prajjwal Bhargava, Shruti Bhosale, Dan Bikel, Lukas Blecher, Cristian Canton Ferrer, Moya Chen, Guillem Cucurull, David Esiobu, Jude Fernandes, Jeremy Fu, Wenyin Fu, Brian Fuller, Cynthia Gao, Vedanuj Goswami, Naman Goyal, Anthony Hartshorn, Saghar Hosseini, Rui Hou, Hakan Inan, Marcin Kardas, Viktor Kerkez Madian Khabsa, Isabel Kloumann, Artem Korenev, Punit Singh Koura, Marie-Anne Lachaux, Thibaut Lavril, Jenya Lee, Diana Liskovich, Yinghai Lu, Yuning Mao, Xavier Martinet, Todor Mihaylov, Pushka rMishra, Igor Molybog, Yixin Nie, Andrew Poulton, Jeremy Reizenstein, Rashi Rungta, Kalyan Saladi, Alan Schelten, Ruan Silva, Eric Michael Smith, Ranjan Subramanian, Xiaoqing EllenTan, Binh Tang, Ross Taylor, Adina Williams, Jian Xiang Kuan, Puxin Xu, Zheng Yan, Iliyan Zarov, Yuchen Zhang, Angela Fan, Melanie Kambadur, Sharan Narang, Aurelien Rodriguez, Robert Stojnic, Sergey Edunov, Thomas Scialom. +1. **[M2M100](https://huggingface.co/docs/transformers/model_doc/m2m_100)** (from Facebook) released with the paper [Beyond English-Centric Multilingual Machine Translation](https://arxiv.org/abs/2010.11125) by Angela Fan, Shruti Bhosale, Holger Schwenk, Zhiyi Ma, Ahmed El-Kishky, Siddharth Goyal, Mandeep Baines, Onur Celebi, Guillaume Wenzek, Vishrav Chaudhary, Naman Goyal, Tom Birch, Vitaliy Liptchinsky, Sergey Edunov, Edouard Grave, Michael Auli, Armand Joulin. +1. **[MarianMT](https://huggingface.co/docs/transformers/model_doc/marian)** Machine translation models trained using [OPUS](http://opus.nlpl.eu/) data by Jörg Tiedemann. The [Marian Framework](https://marian-nmt.github.io/) is being developed by the Microsoft Translator Team. +1. **[mBART](https://huggingface.co/docs/transformers/model_doc/mbart)** (from Facebook) released with the paper [Multilingual Denoising Pre-training for Neural Machine Translation](https://arxiv.org/abs/2001.08210) by Yinhan Liu, Jiatao Gu, Naman Goyal, Xian Li, Sergey Edunov, Marjan Ghazvininejad, Mike Lewis, Luke Zettlemoyer. +1. **[mBART-50](https://huggingface.co/docs/transformers/model_doc/mbart)** (from Facebook) released with the paper [Multilingual Translation with Extensible Multilingual Pretraining and Finetuning](https://arxiv.org/abs/2008.00401) by Yuqing Tang, Chau Tran, Xian Li, Peng-Jen Chen, Naman Goyal, Vishrav Chaudhary, Jiatao Gu, Angela Fan. +1. **[Mistral](https://huggingface.co/docs/transformers/model_doc/mistral)** (from Mistral AI) by The [Mistral AI](https://mistral.ai) team: Albert Jiang, Alexandre Sablayrolles, Arthur Mensch, Chris Bamford, Devendra Singh Chaplot, Diego de las Casas, Florian Bressand, Gianna Lengyel, Guillaume Lample, Lélio Renard Lavaud, Lucile Saulnier, Marie-Anne Lachaux, Pierre Stock, Teven Le Scao, Thibaut Lavril, Thomas Wang, Timothée Lacroix, William El Sayed. +1. **[MMS](https://huggingface.co/docs/transformers/model_doc/mms)** (from Facebook) released with the paper [Scaling Speech Technology to 1,000+ Languages](https://arxiv.org/abs/2305.13516) by Vineel Pratap, Andros Tjandra, Bowen Shi, Paden Tomasello, Arun Babu, Sayani Kundu, Ali Elkahky, Zhaoheng Ni, Apoorv Vyas, Maryam Fazel-Zarandi, Alexei Baevski, Yossi Adi, Xiaohui Zhang, Wei-Ning Hsu, Alexis Conneau, Michael Auli. +1. **[MobileBERT](https://huggingface.co/docs/transformers/model_doc/mobilebert)** (from CMU/Google Brain) released with the paper [MobileBERT: a Compact Task-Agnostic BERT for Resource-Limited Devices](https://arxiv.org/abs/2004.02984) by Zhiqing Sun, Hongkun Yu, Xiaodan Song, Renjie Liu, Yiming Yang, and Denny Zhou. +1. **[MobileViT](https://huggingface.co/docs/transformers/model_doc/mobilevit)** (from Apple) released with the paper [MobileViT: Light-weight, General-purpose, and Mobile-friendly Vision Transformer](https://arxiv.org/abs/2110.02178) by Sachin Mehta and Mohammad Rastegari. +1. **[MPNet](https://huggingface.co/docs/transformers/model_doc/mpnet)** (from Microsoft Research) released with the paper [MPNet: Masked and Permuted Pre-training for Language Understanding](https://arxiv.org/abs/2004.09297) by Kaitao Song, Xu Tan, Tao Qin, Jianfeng Lu, Tie-Yan Liu. +1. **[MPT](https://huggingface.co/docs/transformers/model_doc/mpt)** (from MosaiML) released with the repository [llm-foundry](https://github.com/mosaicml/llm-foundry/) by the MosaicML NLP Team. +1. **[MT5](https://huggingface.co/docs/transformers/model_doc/mt5)** (from Google AI) released with the paper [mT5: A massively multilingual pre-trained text-to-text transformer](https://arxiv.org/abs/2010.11934) by Linting Xue, Noah Constant, Adam Roberts, Mihir Kale, Rami Al-Rfou, Aditya Siddhant, Aditya Barua, Colin Raffel. +1. **[NLLB](https://huggingface.co/docs/transformers/model_doc/nllb)** (from Meta) released with the paper [No Language Left Behind: Scaling Human-Centered Machine Translation](https://arxiv.org/abs/2207.04672) by the NLLB team. +1. **[Nougat](https://huggingface.co/docs/transformers/model_doc/nougat)** (from Meta AI) released with the paper [Nougat: Neural Optical Understanding for Academic Documents](https://arxiv.org/abs/2308.13418) by Lukas Blecher, Guillem Cucurull, Thomas Scialom, Robert Stojnic. +1. **[OPT](https://huggingface.co/docs/transformers/master/model_doc/opt)** (from Meta AI) released with the paper [OPT: Open Pre-trained Transformer Language Models](https://arxiv.org/abs/2205.01068) by Susan Zhang, Stephen Roller, Naman Goyal, Mikel Artetxe, Moya Chen, Shuohui Chen et al. +1. **[OWL-ViT](https://huggingface.co/docs/transformers/model_doc/owlvit)** (from Google AI) released with the paper [Simple Open-Vocabulary Object Detection with Vision Transformers](https://arxiv.org/abs/2205.06230) by Matthias Minderer, Alexey Gritsenko, Austin Stone, Maxim Neumann, Dirk Weissenborn, Alexey Dosovitskiy, Aravindh Mahendran, Anurag Arnab, Mostafa Dehghani, Zhuoran Shen, Xiao Wang, Xiaohua Zhai, Thomas Kipf, and Neil Houlsby. +1. **[Phi](https://huggingface.co/docs/transformers/main/model_doc/phi)** (from Microsoft) released with the papers - [Textbooks Are All You Need](https://arxiv.org/abs/2306.11644) by Suriya Gunasekar, Yi Zhang, Jyoti Aneja, Caio César Teodoro Mendes, Allie Del Giorno, Sivakanth Gopi, Mojan Javaheripi, Piero Kauffmann, Gustavo de Rosa, Olli Saarikivi, Adil Salim, Shital Shah, Harkirat Singh Behl, Xin Wang, Sébastien Bubeck, Ronen Eldan, Adam Tauman Kalai, Yin Tat Lee and Yuanzhi Li, [Textbooks Are All You Need II: phi-1.5 technical report](https://arxiv.org/abs/2309.05463) by Yuanzhi Li, Sébastien Bubeck, Ronen Eldan, Allie Del Giorno, Suriya Gunasekar and Yin Tat Lee. +1. **[ResNet](https://huggingface.co/docs/transformers/model_doc/resnet)** (from Microsoft Research) released with the paper [Deep Residual Learning for Image Recognition](https://arxiv.org/abs/1512.03385) by Kaiming He, Xiangyu Zhang, Shaoqing Ren, Jian Sun. +1. **[RoBERTa](https://huggingface.co/docs/transformers/model_doc/roberta)** (from Facebook), released together with the paper [RoBERTa: A Robustly Optimized BERT Pretraining Approach](https://arxiv.org/abs/1907.11692) by Yinhan Liu, Myle Ott, Naman Goyal, Jingfei Du, Mandar Joshi, Danqi Chen, Omer Levy, Mike Lewis, Luke Zettlemoyer, Veselin Stoyanov. +1. **[RoFormer](https://huggingface.co/docs/transformers/model_doc/roformer)** (from ZhuiyiTechnology), released together with the paper [RoFormer: Enhanced Transformer with Rotary Position Embedding](https://arxiv.org/abs/2104.09864) by Jianlin Su and Yu Lu and Shengfeng Pan and Bo Wen and Yunfeng Liu. +1. **[SegFormer](https://huggingface.co/docs/transformers/model_doc/segformer)** (from NVIDIA) released with the paper [SegFormer: Simple and Efficient Design for Semantic Segmentation with Transformers](https://arxiv.org/abs/2105.15203) by Enze Xie, Wenhai Wang, Zhiding Yu, Anima Anandkumar, Jose M. Alvarez, Ping Luo. +1. **[Segment Anything](https://huggingface.co/docs/transformers/model_doc/sam)** (from Meta AI) released with the paper [Segment Anything](https://arxiv.org/pdf/2304.02643v1.pdf) by Alexander Kirillov, Eric Mintun, Nikhila Ravi, Hanzi Mao, Chloe Rolland, Laura Gustafson, Tete Xiao, Spencer Whitehead, Alex Berg, Wan-Yen Lo, Piotr Dollar, Ross Girshick. +1. **[SigLIP](https://huggingface.co/docs/transformers/main/model_doc/siglip)** (from Google AI) released with the paper [Sigmoid Loss for Language Image Pre-Training](https://arxiv.org/abs/2303.15343) by Xiaohua Zhai, Basil Mustafa, Alexander Kolesnikov, Lucas Beyer. +1. **[SpeechT5](https://huggingface.co/docs/transformers/model_doc/speecht5)** (from Microsoft Research) released with the paper [SpeechT5: Unified-Modal Encoder-Decoder Pre-Training for Spoken Language Processing](https://arxiv.org/abs/2110.07205) by Junyi Ao, Rui Wang, Long Zhou, Chengyi Wang, Shuo Ren, Yu Wu, Shujie Liu, Tom Ko, Qing Li, Yu Zhang, Zhihua Wei, Yao Qian, Jinyu Li, Furu Wei. +1. **[SqueezeBERT](https://huggingface.co/docs/transformers/model_doc/squeezebert)** (from Berkeley) released with the paper [SqueezeBERT: What can computer vision teach NLP about efficient neural networks?](https://arxiv.org/abs/2006.11316) by Forrest N. Iandola, Albert E. Shaw, Ravi Krishna, and Kurt W. Keutzer. +1. **[Swin Transformer](https://huggingface.co/docs/transformers/model_doc/swin)** (from Microsoft) released with the paper [Swin Transformer: Hierarchical Vision Transformer using Shifted Windows](https://arxiv.org/abs/2103.14030) by Ze Liu, Yutong Lin, Yue Cao, Han Hu, Yixuan Wei, Zheng Zhang, Stephen Lin, Baining Guo. +1. **[Swin2SR](https://huggingface.co/docs/transformers/model_doc/swin2sr)** (from University of Würzburg) released with the paper [Swin2SR: SwinV2 Transformer for Compressed Image Super-Resolution and Restoration](https://arxiv.org/abs/2209.11345) by Marcos V. Conde, Ui-Jin Choi, Maxime Burchi, Radu Timofte. +1. **[T5](https://huggingface.co/docs/transformers/model_doc/t5)** (from Google AI) released with the paper [Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer](https://arxiv.org/abs/1910.10683) by Colin Raffel and Noam Shazeer and Adam Roberts and Katherine Lee and Sharan Narang and Michael Matena and Yanqi Zhou and Wei Li and Peter J. Liu. +1. **[T5v1.1](https://huggingface.co/docs/transformers/model_doc/t5v1.1)** (from Google AI) released in the repository [google-research/text-to-text-transfer-transformer](https://github.com/google-research/text-to-text-transfer-transformer/blob/main/released_checkpoints.md#t511) by Colin Raffel and Noam Shazeer and Adam Roberts and Katherine Lee and Sharan Narang and Michael Matena and Yanqi Zhou and Wei Li and Peter J. Liu. +1. **[Table Transformer](https://huggingface.co/docs/transformers/model_doc/table-transformer)** (from Microsoft Research) released with the paper [PubTables-1M: Towards Comprehensive Table Extraction From Unstructured Documents](https://arxiv.org/abs/2110.00061) by Brandon Smock, Rohith Pesala, Robin Abraham. +1. **[TrOCR](https://huggingface.co/docs/transformers/model_doc/trocr)** (from Microsoft), released together with the paper [TrOCR: Transformer-based Optical Character Recognition with Pre-trained Models](https://arxiv.org/abs/2109.10282) by Minghao Li, Tengchao Lv, Lei Cui, Yijuan Lu, Dinei Florencio, Cha Zhang, Zhoujun Li, Furu Wei. +1. **[Vision Transformer (ViT)](https://huggingface.co/docs/transformers/model_doc/vit)** (from Google AI) released with the paper [An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale](https://arxiv.org/abs/2010.11929) by Alexey Dosovitskiy, Lucas Beyer, Alexander Kolesnikov, Dirk Weissenborn, Xiaohua Zhai, Thomas Unterthiner, Mostafa Dehghani, Matthias Minderer, Georg Heigold, Sylvain Gelly, Jakob Uszkoreit, Neil Houlsby. +1. **[ViTMatte](https://huggingface.co/docs/transformers/model_doc/vitmatte)** (from HUST-VL) released with the paper [ViTMatte: Boosting Image Matting with Pretrained Plain Vision Transformers](https://arxiv.org/abs/2305.15272) by Jingfeng Yao, Xinggang Wang, Shusheng Yang, Baoyuan Wang. +1. **[VITS](https://huggingface.co/docs/transformers/model_doc/vits)** (from Kakao Enterprise) released with the paper [Conditional Variational Autoencoder with Adversarial Learning for End-to-End Text-to-Speech](https://arxiv.org/abs/2106.06103) by Jaehyeon Kim, Jungil Kong, Juhee Son. +1. **[Wav2Vec2](https://huggingface.co/docs/transformers/model_doc/wav2vec2)** (from Facebook AI) released with the paper [wav2vec 2.0: A Framework for Self-Supervised Learning of Speech Representations](https://arxiv.org/abs/2006.11477) by Alexei Baevski, Henry Zhou, Abdelrahman Mohamed, Michael Auli. +1. **[WavLM](https://huggingface.co/docs/transformers/model_doc/wavlm)** (from Microsoft Research) released with the paper [WavLM: Large-Scale Self-Supervised Pre-Training for Full Stack Speech Processing](https://arxiv.org/abs/2110.13900) by Sanyuan Chen, Chengyi Wang, Zhengyang Chen, Yu Wu, Shujie Liu, Zhuo Chen, Jinyu Li, Naoyuki Kanda, Takuya Yoshioka, Xiong Xiao, Jian Wu, Long Zhou, Shuo Ren, Yanmin Qian, Yao Qian, Jian Wu, Michael Zeng, Furu Wei. +1. **[Whisper](https://huggingface.co/docs/transformers/model_doc/whisper)** (from OpenAI) released with the paper [Robust Speech Recognition via Large-Scale Weak Supervision](https://cdn.openai.com/papers/whisper.pdf) by Alec Radford, Jong Wook Kim, Tao Xu, Greg Brockman, Christine McLeavey, Ilya Sutskever. +1. **[XLM](https://huggingface.co/docs/transformers/model_doc/xlm)** (from Facebook) released together with the paper [Cross-lingual Language Model Pretraining](https://arxiv.org/abs/1901.07291) by Guillaume Lample and Alexis Conneau. +1. **[XLM-RoBERTa](https://huggingface.co/docs/transformers/model_doc/xlm-roberta)** (from Facebook AI), released together with the paper [Unsupervised Cross-lingual Representation Learning at Scale](https://arxiv.org/abs/1911.02116) by Alexis Conneau*, Kartikay Khandelwal*, Naman Goyal, Vishrav Chaudhary, Guillaume Wenzek, Francisco Guzmán, Edouard Grave, Myle Ott, Luke Zettlemoyer and Veselin Stoyanov. +1. **[YOLOS](https://huggingface.co/docs/transformers/model_doc/yolos)** (from Huazhong University of Science & Technology) released with the paper [You Only Look at One Sequence: Rethinking Transformer in Vision through Object Detection](https://arxiv.org/abs/2106.00666) by Yuxin Fang, Bencheng Liao, Xinggang Wang, Jiemin Fang, Jiyang Qi, Rui Wu, Jianwei Niu, Wenyu Liu. + + diff --git a/core/vendor/modules/@xenova/transformers/package.json b/core/vendor/modules/@xenova/transformers/package.json new file mode 100644 index 000000000..cedc521b9 --- /dev/null +++ b/core/vendor/modules/@xenova/transformers/package.json @@ -0,0 +1,85 @@ +{ + "name": "@xenova/transformers", + "version": "2.14.0", + "description": "State-of-the-art Machine Learning for the web. Run 🤗 Transformers directly in your browser, with no need for a server!", + "main": "./src/transformers.js", + "types": "./types/transformers.d.ts", + "type": "module", + "scripts": { + "typegen": "tsc ./src/transformers.js --allowJs --declaration --emitDeclarationOnly --declarationMap --outDir types", + "dev": "webpack serve --no-client-overlay", + "build": "webpack && npm run typegen", + "generate-tests": "python -m tests.generate_tests", + "test": "node --experimental-vm-modules node_modules/jest/bin/jest.js --verbose --maxConcurrency 1", + "readme": "python ./docs/scripts/build_readme.py", + "docs-api": "node ./docs/scripts/generate.js", + "docs-preview": "doc-builder preview transformers.js ./docs/source/ --not_python_module", + "docs-build": "doc-builder build transformers.js ./docs/source/ --not_python_module --build_dir ./docs/build/ --repo_owner xenova" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/xenova/transformers.js.git" + }, + "keywords": [ + "transformers", + "transformers.js", + "huggingface", + "hugging face", + "machine learning", + "deep learning", + "artificial intelligence", + "AI", + "ML" + ], + "author": "Xenova", + "license": "Apache-2.0", + "bugs": { + "url": "https://github.com/xenova/transformers.js/issues" + }, + "homepage": "https://github.com/xenova/transformers.js#readme", + "dependencies": { + "onnxruntime-web": "1.14.0", + "sharp": "^0.32.0", + "@huggingface/jinja": "^0.1.0" + }, + "optionalDependencies": { + "onnxruntime-node": "1.14.0" + }, + "devDependencies": { + "@types/jest": "^29.5.1", + "catharsis": "github:xenova/catharsis", + "copy-webpack-plugin": "^11.0.0", + "jest": "^29.5.0", + "jest-environment-node": "^29.5.0", + "jsdoc-to-markdown": "^8.0.0", + "typescript": "^5.2.2", + "wavefile": "^11.0.0", + "webpack": "^5.80.0", + "webpack-cli": "^5.0.2", + "webpack-dev-server": "^4.13.3" + }, + "overrides": { + "semver": "^7.5.4", + "protobufjs": "^7.2.4" + }, + "files": [ + "src", + "dist", + "types", + "README.md", + "LICENSE" + ], + "browser": { + "fs": false, + "path": false, + "url": false, + "sharp": false, + "onnxruntime-node": false, + "stream/web": false + }, + "publishConfig": { + "access": "public" + }, + "jsdelivr": "./dist/transformers.min.js", + "unpkg": "./dist/transformers.min.js" +} diff --git a/core/vendor/modules/@xenova/transformers/src/backends/onnx.js b/core/vendor/modules/@xenova/transformers/src/backends/onnx.js new file mode 100644 index 000000000..0bee3dce7 --- /dev/null +++ b/core/vendor/modules/@xenova/transformers/src/backends/onnx.js @@ -0,0 +1,50 @@ +/** + * @file Handler file for choosing the correct version of ONNX Runtime, based on the environment. + * Ideally, we could import the `onnxruntime-web` and `onnxruntime-node` packages only when needed, + * but dynamic imports don't seem to work with the current webpack version and/or configuration. + * This is possibly due to the experimental nature of top-level await statements. + * So, we just import both packages, and use the appropriate one based on the environment: + * - When running in node, we use `onnxruntime-node`. + * - When running in the browser, we use `onnxruntime-web` (`onnxruntime-node` is not bundled). + * + * This module is not directly exported, but can be accessed through the environment variables: + * ```javascript + * import { env } from '@xenova/transformers'; + * console.log(env.backends.onnx); + * ``` + * + * @module backends/onnx + */ + +// NOTE: Import order matters here. We need to import `onnxruntime-node` before `onnxruntime-web`. +// In either case, we select the default export if it exists, otherwise we use the named export. +import * as ONNX_NODE from 'onnxruntime-node'; +import * as ONNX_WEB from 'onnxruntime-web'; + +/** @type {import('onnxruntime-web')} The ONNX runtime module. */ +export let ONNX; + +export const executionProviders = [ + // 'webgpu', + 'wasm' +]; + +if (typeof process !== 'undefined' && process?.release?.name === 'node') { + // Running in a node-like environment. + ONNX = ONNX_NODE.default ?? ONNX_NODE; + + // Add `cpu` execution provider, with higher precedence that `wasm`. + executionProviders.unshift('cpu'); + +} else { + // Running in a browser-environment + ONNX = ONNX_WEB.default ?? ONNX_WEB; + + // SIMD for WebAssembly does not operate correctly in some recent versions of iOS (16.4.x). + // As a temporary fix, we disable it for now. + // For more information, see: https://github.com/microsoft/onnxruntime/issues/15644 + const isIOS = typeof navigator !== 'undefined' && /iP(hone|od|ad).+16_4.+AppleWebKit/.test(navigator.userAgent); + if (isIOS) { + ONNX.env.wasm.simd = false; + } +} diff --git a/core/vendor/modules/@xenova/transformers/src/configs.js b/core/vendor/modules/@xenova/transformers/src/configs.js new file mode 100644 index 000000000..4506d2d9c --- /dev/null +++ b/core/vendor/modules/@xenova/transformers/src/configs.js @@ -0,0 +1,107 @@ + +/** + * @file Helper module for using model configs. For more information, see the corresponding + * [Python documentation](https://huggingface.co/docs/transformers/main/en/model_doc/auto#transformers.AutoConfig). + * + * **Example:** Load an `AutoConfig`. + * + * ```javascript + * import { AutoConfig } from '@xenova/transformers'; + * let config = await AutoConfig.from_pretrained('bert-base-uncased'); + * console.log(config); + * // PretrainedConfig { + * // "model_type": "bert", + * // "is_encoder_decoder": false, + * // "architectures": [ + * // "BertForMaskedLM" + * // ], + * // "vocab_size": 30522 + * // "num_attention_heads": 12, + * // "num_hidden_layers": 12, + * // "hidden_size": 768, + * // "max_position_embeddings": 512, + * // ... + * // } + * ``` + * + * @module configs + */ + +import { + getModelJSON, +} from './utils/hub.js'; + +/** + * @typedef {import('./utils/hub.js').PretrainedOptions} PretrainedOptions + */ + + +/** + * Loads a config from the specified path. + * @param {string} pretrained_model_name_or_path The path to the config directory. + * @param {PretrainedOptions} options Additional options for loading the config. + * @returns {Promise} A promise that resolves with information about the loaded config. + */ +async function loadConfig(pretrained_model_name_or_path, options) { + let info = await getModelJSON(pretrained_model_name_or_path, 'config.json', true, options); + return info; +} + +/** + * Base class for all configuration classes. For more information, see the corresponding + * [Python documentation](https://huggingface.co/docs/transformers/main/en/main_classes/configuration#transformers.PretrainedConfig). + */ +export class PretrainedConfig { + // NOTE: Typo in original + + /** + * Create a new PreTrainedTokenizer instance. + * @param {Object} configJSON The JSON of the config. + */ + constructor(configJSON) { + this.model_type = null; + this.is_encoder_decoder = false; + + Object.assign(this, configJSON); + } + + /** + * Loads a pre-trained config from the given `pretrained_model_name_or_path`. + * + * @param {string} pretrained_model_name_or_path The path to the pre-trained config. + * @param {PretrainedOptions} options Additional options for loading the config. + * @throws {Error} Throws an error if the config.json is not found in the `pretrained_model_name_or_path`. + * + * @returns {Promise} A new instance of the `PretrainedConfig` class. + */ + static async from_pretrained(pretrained_model_name_or_path, { + progress_callback = null, + config = null, + cache_dir = null, + local_files_only = false, + revision = 'main', + } = {}) { + + let data = config ?? await loadConfig(pretrained_model_name_or_path, { + progress_callback, + config, + cache_dir, + local_files_only, + revision, + }) + return new this(data); + } +} + +/** + * Helper class which is used to instantiate pretrained configs with the `from_pretrained` function. + * + * @example + * let config = await AutoConfig.from_pretrained('bert-base-uncased'); + */ +export class AutoConfig { + /** @type {PretrainedConfig.from_pretrained} */ + static async from_pretrained(...args) { + return PretrainedConfig.from_pretrained(...args); + } +} diff --git a/core/vendor/modules/@xenova/transformers/src/env.js b/core/vendor/modules/@xenova/transformers/src/env.js new file mode 100644 index 000000000..49ea43ca6 --- /dev/null +++ b/core/vendor/modules/@xenova/transformers/src/env.js @@ -0,0 +1,126 @@ +/** + * @file Module used to configure Transformers.js. + * + * **Example:** Disable remote models. + * ```javascript + * import { env } from '@xenova/transformers'; + * env.allowRemoteModels = false; + * ``` + * + * **Example:** Set local model path. + * ```javascript + * import { env } from '@xenova/transformers'; + * env.localModelPath = '/path/to/local/models/'; + * ``` + * + * **Example:** Set cache directory. + * ```javascript + * import { env } from '@xenova/transformers'; + * env.cacheDir = '/path/to/cache/directory/'; + * ``` + * + * @module env + */ + +import fs from 'fs'; +import path from 'path'; + +import { ONNX } from './backends/onnx.js'; +const { env: onnx_env } = ONNX; + +const VERSION = '2.14.0'; + +// Check if various APIs are available (depends on environment) +const WEB_CACHE_AVAILABLE = typeof self !== 'undefined' && 'caches' in self; +const FS_AVAILABLE = !isEmpty(fs); // check if file system is available +const PATH_AVAILABLE = !isEmpty(path); // check if path is available + +const RUNNING_LOCALLY = FS_AVAILABLE && PATH_AVAILABLE; + +// const __dirname = RUNNING_LOCALLY +// ? path.dirname(path.dirname(url.fileURLToPath(import.meta.url))) +// : './'; + +// Only used for environments with access to file system +const DEFAULT_CACHE_DIR = RUNNING_LOCALLY + ? path.join(__dirname, '/.cache/') + : null; + +// Set local model path, based on available APIs +const DEFAULT_LOCAL_MODEL_PATH = '/models/'; +const localModelPath = RUNNING_LOCALLY + ? path.join(__dirname, DEFAULT_LOCAL_MODEL_PATH) + : DEFAULT_LOCAL_MODEL_PATH; + +// Set path to wasm files. This is needed when running in a web worker. +// https://onnxruntime.ai/docs/api/js/interfaces/Env.WebAssemblyFlags.html#wasmPaths +// We use remote wasm files by default to make it easier for newer users. +// In practice, users should probably self-host the necessary .wasm files. +onnx_env.wasm.wasmPaths = RUNNING_LOCALLY + ? path.join(__dirname, '/dist/') + : `https://cdn.jsdelivr.net/npm/@xenova/transformers@${VERSION}/dist/`; + + +/** + * Global variable used to control execution. This provides users a simple way to configure Transformers.js. + * @property {Object} backends Expose environment variables of different backends, + * allowing users to set these variables if they want to. + * @property {string} __dirname Directory name of module. Useful for resolving local paths. + * @property {string} version This version of Transformers.js. + * @property {boolean} allowRemoteModels Whether to allow loading of remote files, defaults to `true`. + * If set to `false`, it will have the same effect as setting `local_files_only=true` when loading pipelines, models, tokenizers, processors, etc. + * @property {string} remoteHost Host URL to load models from. Defaults to the Hugging Face Hub. + * @property {string} remotePathTemplate Path template to fill in and append to `remoteHost` when loading models. + * @property {boolean} allowLocalModels Whether to allow loading of local files, defaults to `true`. + * If set to `false`, it will skip the local file check and try to load the model from the remote host. + * @property {string} localModelPath Path to load local models from. Defaults to `/models/`. + * @property {boolean} useFS Whether to use the file system to load files. By default, it is `true` if available. + * @property {boolean} useBrowserCache Whether to use Cache API to cache models. By default, it is `true` if available. + * @property {boolean} useFSCache Whether to use the file system to cache files. By default, it is `true` if available. + * @property {string} cacheDir The directory to use for caching files with the file system. By default, it is `./.cache`. + * @property {boolean} useCustomCache Whether to use a custom cache system (defined by `customCache`), defaults to `false`. + * @property {Object} customCache The custom cache to use. Defaults to `null`. Note: this must be an object which + * implements the `match` and `put` functions of the Web Cache API. For more information, see https://developer.mozilla.org/en-US/docs/Web/API/Cache + */ +export const env = { + /////////////////// Backends settings /////////////////// + backends: { + // onnxruntime-web/onnxruntime-node + onnx: onnx_env, + + // TensorFlow.js + tfjs: {}, + }, + + __dirname, + version: VERSION, + + /////////////////// Model settings /////////////////// + allowRemoteModels: true, + remoteHost: 'https://huggingface.co/', + remotePathTemplate: '{model}/resolve/{revision}/', + + allowLocalModels: true, + localModelPath: localModelPath, + useFS: FS_AVAILABLE, + + /////////////////// Cache settings /////////////////// + useBrowserCache: WEB_CACHE_AVAILABLE, + + useFSCache: FS_AVAILABLE, + cacheDir: DEFAULT_CACHE_DIR, + + useCustomCache: false, + customCache: null, + ////////////////////////////////////////////////////// +} + + +/** + * @param {Object} obj + * @private + */ +function isEmpty(obj) { + return Object.keys(obj).length === 0; +} + diff --git a/core/vendor/modules/@xenova/transformers/src/models.js b/core/vendor/modules/@xenova/transformers/src/models.js new file mode 100644 index 000000000..1c48030a4 --- /dev/null +++ b/core/vendor/modules/@xenova/transformers/src/models.js @@ -0,0 +1,5794 @@ + +/** + * @file Definitions of all models available in Transformers.js. + * + * **Example:** Load and run an `AutoModel`. + * + * ```javascript + * import { AutoModel, AutoTokenizer } from '@xenova/transformers'; + * + * let tokenizer = await AutoTokenizer.from_pretrained('Xenova/bert-base-uncased'); + * let model = await AutoModel.from_pretrained('Xenova/bert-base-uncased'); + * + * let inputs = await tokenizer('I love transformers!'); + * let { logits } = await model(inputs); + * // Tensor { + * // data: Float32Array(183132) [-7.117443084716797, -7.107812881469727, -7.092104911804199, ...] + * // dims: (3) [1, 6, 30522], + * // type: "float32", + * // size: 183132, + * // } + * ``` + * + * We also provide other `AutoModel`s (listed below), which you can use in the same way as the Python library. For example: + * + * **Example:** Load and run an `AutoModelForSeq2SeqLM`. + * ```javascript + * import { AutoModelForSeq2SeqLM, AutoTokenizer } from '@xenova/transformers'; + * + * let tokenizer = await AutoTokenizer.from_pretrained('Xenova/t5-small'); + * let model = await AutoModelForSeq2SeqLM.from_pretrained('Xenova/t5-small'); + * + * let { input_ids } = await tokenizer('translate English to German: I love transformers!'); + * let outputs = await model.generate(input_ids); + * let decoded = tokenizer.decode(outputs[0], { skip_special_tokens: true }); + * // 'Ich liebe Transformatoren!' + * ``` + * + * @module models + */ + +import { + AutoConfig, +} from './configs.js'; + +import { + Callable, + isIntegralNumber, + isTypedArray, + mergeArrays, +} from './utils/core.js'; + +import { + getModelFile, + getModelJSON, +} from './utils/hub.js'; + +import { + ForcedBOSTokenLogitsProcessor, + ForcedEOSTokenLogitsProcessor, + ForceTokensLogitsProcessor, + GenerationConfig, + LogitsProcessorList, + MinLengthLogitsProcessor, + MinNewTokensLengthLogitsProcessor, + NoBadWordsLogitsProcessor, + NoRepeatNGramLogitsProcessor, + RepetitionPenaltyLogitsProcessor, + Sampler, + SuppressTokensAtBeginLogitsProcessor, + WhisperTimeStampLogitsProcessor, +} from './utils/generation.js'; + +import { + cat, + dynamicTimeWarping, + mean, + ones_like, + stack, + std_mean, + Tensor, +} from './utils/tensor.js'; + +import { executionProviders, ONNX } from './backends/onnx.js'; +// import { medianFilter } from './transformers.js'; +const { InferenceSession, Tensor: ONNXTensor, env } = ONNX; + +/** @typedef {import('onnxruntime-web').InferenceSession} InferenceSession */ + +////////////////////////////////////////////////// +// Model types: used internally +const MODEL_TYPES = { + EncoderOnly: 0, + EncoderDecoder: 1, + Seq2Seq: 2, + Vision2Seq: 3, + DecoderOnly: 4, + MaskGeneration: 5, +} +////////////////////////////////////////////////// + + +////////////////////////////////////////////////// +// Helper functions + +// NOTE: These will be populated fully later +const MODEL_TYPE_MAPPING = new Map(); +const MODEL_NAME_TO_CLASS_MAPPING = new Map(); +const MODEL_CLASS_TO_NAME_MAPPING = new Map(); + + +/** + * Constructs an InferenceSession using a model file located at the specified path. + * @param {string} pretrained_model_name_or_path The path to the directory containing the model file. + * @param {string} fileName The name of the model file. + * @param {import('./utils/hub.js').PretrainedOptions} options Additional options for loading the model. + * @returns {Promise} A Promise that resolves to an InferenceSession object. + * @private + */ +async function constructSession(pretrained_model_name_or_path, fileName, options) { + // TODO add option for user to force specify their desired execution provider + let modelFileName = `onnx/${fileName}${options.quantized ? '_quantized' : ''}.onnx`; + let buffer = await getModelFile(pretrained_model_name_or_path, modelFileName, true, options); + + try { + return await InferenceSession.create(buffer, { + executionProviders, + }); + } catch (err) { + // If the execution provided was only wasm, throw the error + if (executionProviders.length === 1 && executionProviders[0] === 'wasm') { + throw err; + } + + console.warn(err); + console.warn( + 'Something went wrong during model construction (most likely a missing operation). ' + + 'Using `wasm` as a fallback. ' + ) + return await InferenceSession.create(buffer, { + executionProviders: ['wasm'] + }); + } +} + +/** + * Validate model inputs + * @param {InferenceSession} session The InferenceSession object that will be run. + * @param {Record} inputs The inputs to check. + * @returns {Record} The checked inputs. + * @throws {Error} If any inputs are missing. + * @private + */ +function validateInputs(session, inputs) { + /** + * NOTE: Create either a shallow or deep copy based on `onnx.wasm.proxy` + * @type {Record} + */ + const checkedInputs = Object.create(null); + const missingInputs = []; + for (const inputName of session.inputNames) { + const tensor = inputs[inputName]; + // Rare case where one of the model's input names corresponds to a built-in + // object name (e.g., toString), which would cause a simple (!tensor) check to fail, + // because it's not undefined but a function. + if (!(tensor instanceof Tensor)) { + missingInputs.push(inputName); + continue; + } + // NOTE: When `env.wasm.proxy is true` the tensor is moved across the Worker + // boundary, transferring ownership to the worker and invalidating the tensor. + // So, in this case, we simply sacrifice a clone for it. + checkedInputs[inputName] = env.wasm.proxy ? tensor.clone() : tensor; + } + if (missingInputs.length > 0) { + throw new Error( + `An error occurred during model execution: "Missing the following inputs: ${missingInputs.join(', ')}.`); + } + + const numInputsProvided = Object.keys(inputs).length; + const numInputsNeeded = session.inputNames.length; + if (numInputsProvided > numInputsNeeded) { + // No missing inputs, but too many inputs were provided. + // Warn the user and ignore the extra inputs. + let ignored = Object.keys(inputs).filter(inputName => !session.inputNames.includes(inputName)); + console.warn(`WARNING: Too many inputs were provided (${numInputsProvided} > ${numInputsNeeded}). The following inputs will be ignored: "${ignored.join(', ')}".`); + } + + return checkedInputs; +} + +/** + * Executes an InferenceSession using the specified inputs. + * NOTE: `inputs` must contain at least the input names of the model. + * - If additional inputs are passed, they will be ignored. + * - If inputs are missing, an error will be thrown. + * + * @param {InferenceSession} session The InferenceSession object to run. + * @param {Object} inputs An object that maps input names to input tensors. + * @returns {Promise} A Promise that resolves to an object that maps output names to output tensors. + * @private + */ +async function sessionRun(session, inputs) { + const checkedInputs = validateInputs(session, inputs); + try { + // @ts-ignore + let output = await session.run(checkedInputs); + output = replaceTensors(output); + return output; + } catch (e) { + // This usually occurs when the inputs are of the wrong type. + console.error(`An error occurred during model execution: "${e}".`); + console.error('Inputs given to model:', checkedInputs); + throw e; + } +} + +/** + * Replaces ONNX Tensor objects with custom Tensor objects to support additional functions. + * @param {Object} obj The object to replace tensor objects in. + * @returns {Object} The object with tensor objects replaced by custom Tensor objects. + * @private + */ +function replaceTensors(obj) { + for (let prop in obj) { + if (obj[prop] instanceof ONNXTensor) { + obj[prop] = new Tensor(obj[prop]); + } else if (typeof obj[prop] === 'object') { + replaceTensors(obj[prop]); + } + } + return obj; +} + + +/** + * Converts an array or Tensor of integers to an int64 Tensor. + * @param {Array|Tensor} items The input integers to be converted. + * @returns {Tensor} The int64 Tensor with the converted values. + * @throws {Error} If the input array is empty or the input is a batched Tensor and not all sequences have the same length. + * @private + */ +function toI64Tensor(items) { + if (items instanceof Tensor) { + return items; + } + // items is an array + if (items.length === 0) { + throw Error("items must be non-empty"); + } + + if (Array.isArray(items[0])) { + // batched + if (items.some(x => x.length !== items[0].length)) { + throw Error("Unable to create tensor, you should probably activate truncation and/or padding with 'padding=True' and/or 'truncation=True' to have batched tensors with the same length.") + } + + return new Tensor('int64', + BigInt64Array.from(items.flat().map(x => BigInt(x))), + [items.length, items[0].length] + ); + } else { + //flat + return new Tensor('int64', + BigInt64Array.from(items.map(x => BigInt(x))), + [1, items.length] + ); + } +} + +/** + * Prepares an attention mask for a sequence of tokens based on configuration options. + * @param {Object} self The calling object instance. + * @param {Tensor} tokens The input tokens. + * @returns {Tensor} The attention mask tensor. + * @private + */ +function prepareAttentionMask(self, tokens) { + + // Prepare attention mask + let pad_token_id = self.config.pad_token_id ?? null; + let eos_token_id = self.config.eos_token_id ?? null; + if (isIntegralNumber(eos_token_id)) { + eos_token_id = [eos_token_id]; + } + + let is_pad_token_in_inputs = tokens.indexOf(pad_token_id) !== -1; + let is_pad_token_not_equal_to_eos_token_id = (eos_token_id === null) || !eos_token_id.includes(pad_token_id) + + if (is_pad_token_in_inputs && is_pad_token_not_equal_to_eos_token_id) { + let data = BigInt64Array.from( + // Note: != so that int matches bigint + // @ts-ignore + tokens.data.map(x => x != pad_token_id) + ) + return new Tensor('int64', data, tokens.dims) + } else { + return ones_like(tokens); + } +} + +/** + * Add position IDs to the feeds object. + * @param {Object} session The inference session. + * @param {Object} feeds The input to the model. + * @param {boolean} use_cache_branch Whether to use the cache branch of the model. + * @returns {void} + * @private + */ +function preparePositionIds(session, feeds, use_cache_branch) { + if (!session.inputNames.includes('position_ids')) return; + + const data = new BigInt64Array(feeds.attention_mask.data.length); + + // Compute cumulative sum of the attention mask along the sequence length dimension + for (let i = 0; i < feeds.attention_mask.dims[0]; ++i) { + let start = i * feeds.attention_mask.dims[1]; + let sum = BigInt(0); + for (let j = 0; j < feeds.attention_mask.dims[1]; ++j) { + const index = start + j; + if (feeds.attention_mask.data[index] === 0n) { + data[index] = BigInt(1); + } else { // === 1n + data[index] = sum; + sum += feeds.attention_mask.data[index]; + } + } + } + + feeds.position_ids = new Tensor('int64', data, feeds.attention_mask.dims); + + if (use_cache_branch) { + feeds.position_ids = feeds.position_ids.slice(null, -1).unsqueeze_(-1); + } +} + +/** + * Creates a boolean tensor with a single value. + * @param {boolean} value The value of the tensor. + * @returns {Tensor} The boolean tensor. + * @private + */ +function boolTensor(value) { + return new Tensor('bool', [value], [1]); +} + +// JS doesn't support mixins, so we define some reused functions here, and allow "this" to be passed in +/** + * Perform forward pass on the seq2seq model (both encoder and decoder). + * @param {Object} self The seq2seq model object. + * @param {Object} model_inputs The input object for the model containing encoder and decoder inputs. + * @returns {Promise} Promise that resolves with the output of the seq2seq model. + * @private + */ +async function seq2seqForward(self, model_inputs) { + + let { encoder_outputs, past_key_values } = model_inputs; + + if (!encoder_outputs) { + // Encoder outputs are not given, so we must compute them. + encoder_outputs = (await encoderForward(self, model_inputs)).last_hidden_state; + } + let decoderFeeds = { + input_ids: model_inputs.decoder_input_ids, + encoder_hidden_states: encoder_outputs, + }; + const use_cache_branch = !!past_key_values; + + if (self.decoder_merged_session.inputNames.includes('use_cache_branch')) { + decoderFeeds.use_cache_branch = boolTensor(use_cache_branch); + } + + if (self.decoder_merged_session.inputNames.includes('encoder_attention_mask')) { + decoderFeeds.encoder_attention_mask = model_inputs.attention_mask + } + + preparePositionIds(self.decoder_merged_session, decoderFeeds, use_cache_branch); + self.addPastKeyValues(decoderFeeds, past_key_values); + + const decoderResults = await sessionRun(self.decoder_merged_session, decoderFeeds); + let logits = decoderResults.logits; + past_key_values = self.getPastKeyValues(decoderResults, past_key_values); + + // Get cross attention and/or decoder attentions if they are present + const attns = self.getAttentions(decoderResults); + + return new Seq2SeqLMOutput({ logits, past_key_values, encoder_outputs, ...attns }); +} + +/** + * Start the beam search process for the seq2seq model. + * @param {PreTrainedModel} self The seq2seq model object. + * @param {Tensor} inputTokenIds Array of input token ids for each input sequence. + * @param {Object} generation_config The generation config. + * @param {number} numOutputTokens The maximum number of output tokens for the model. + * @returns {Object[]} Array of beam search objects. + * @private + */ +function seq2seqStartBeams(self, inputTokenIds, generation_config, numOutputTokens) { + let beams = []; + let beamId = 0; + + // @ts-ignore + const requires_attention_mask = self.requires_attention_mask ?? true; + + // decoder_input_ids == output_token_ids + let decoder_input_ids = + generation_config.decoder_input_ids + ?? generation_config.decoder_start_token_id + ?? generation_config.bos_token_id + ?? generation_config.eos_token_id; + + // Support input as tensor or list + // TODO support batched decoder_input_ids + if (decoder_input_ids instanceof Tensor) { + decoder_input_ids = decoder_input_ids.tolist().flat(); + } else if (!Array.isArray(decoder_input_ids)) { + decoder_input_ids = [decoder_input_ids]; + } + + for (let tokens of inputTokenIds) { + // TODO: Improve + // Currently, just add back batch dimension. + // In future, allow for true parallel execution + tokens.dims = [1, ...tokens.dims] + + // Create beam + let start = { + inputs: tokens, + encoder_outputs: null, + prev_model_outputs: null, + + output_token_ids: decoder_input_ids, + done: false, + score: 0, + id: beamId++ // assign unique id to beams + } + + if (requires_attention_mask) { + start.attention_mask = prepareAttentionMask(self, tokens); + } + + beams.push(start); + } + + return beams; +} + +/** + * Run beam search on the seq2seq model for a single beam. + * @param {PreTrainedModel} self The seq2seq model object. + * @param {Object} beam The beam search object for which to run the model. + * @param {Object} options options + * @param {string} [options.input_name='input_ids'] The name of the input tensor for the encoder. + * @returns {Promise} Promise that resolves with the output of the seq2seq model for the given beam. + * @private + */ +async function seq2seqRunBeam(self, beam) { + const input_name = self.main_input_name; + + let decoder_input_ids = beam.output_token_ids; + if (beam.prev_model_outputs) { + // After the first step, `prev_model_outputs` won't be null. + // So, we cut decoder_input_ids if past is used + decoder_input_ids = decoder_input_ids.slice(-1); + } + + // 1. Prepare + let model_inputs = { + [input_name]: beam.inputs, + decoder_input_ids: toI64Tensor(decoder_input_ids), + encoder_outputs: beam.encoder_outputs, + past_key_values: beam.prev_model_outputs?.past_key_values, + } + if (beam.attention_mask) { + model_inputs.attention_mask = beam.attention_mask + } + + // 2. Run + let output = await self.forward(model_inputs); + + // 3. Update + beam.prev_model_outputs = output; + beam.encoder_outputs = output.encoder_outputs; + + return output; +} + +/** + * Update a beam with a new token ID. + * @param {Object} beam The beam to update. + * @param {number} newTokenId The new token ID to add to the beam's output. + * @private + */ +function seq2seqUpdatebeam(beam, newTokenId) { + beam.output_token_ids = [...beam.output_token_ids, newTokenId]; +} + +/** + * Forward pass of an encoder model. + * @param {Object} self The encoder model. + * @param {Object} model_inputs The input data to be used for the forward pass. + * @returns {Promise} Promise that resolves with an object containing the model's outputs. + * @private + */ +async function encoderForward(self, model_inputs) { + const encoderFeeds = Object.create(null); + for (const key of self.session.inputNames) { + encoderFeeds[key] = model_inputs[key]; + } + if (self.session.inputNames.includes('token_type_ids') && !encoderFeeds.token_type_ids) { + // Assign default `token_type_ids` (all zeroes) to the `encoderFeeds` if the model expects it, + // but they weren't created by the tokenizer. + encoderFeeds.token_type_ids = new Tensor( + 'int64', + new BigInt64Array(encoderFeeds.input_ids.data.length), + encoderFeeds.input_ids.dims + ) + } + return await sessionRun(self.session, encoderFeeds); +} + + +/** + * Forward pass of a decoder model. + * @param {Object} self The decoder model. + * @param {Object} model_inputs The input data to be used for the forward pass. + * @returns {Promise} Promise that resolves with an object containing the logits and past key values. + * @private + */ +async function decoderForward(self, model_inputs) { + let { input_ids, past_key_values, attention_mask } = model_inputs; + let decoderFeeds = { + input_ids: input_ids, + attention_mask: attention_mask ?? prepareAttentionMask(self, input_ids), + } + const use_cache_branch = !!past_key_values; + + if (self.session.inputNames.includes('use_cache_branch')) { + decoderFeeds.use_cache_branch = boolTensor(use_cache_branch); + } + + preparePositionIds(self.session, decoderFeeds, use_cache_branch); + + self.addPastKeyValues(decoderFeeds, past_key_values); + + let decoderResults = await sessionRun(self.session, decoderFeeds); + + let logits = decoderResults.logits; + + past_key_values = self.getPastKeyValues(decoderResults, past_key_values); + return { logits, past_key_values }; +} + +/** + * Starts the generation of text by initializing the beams for the given input token IDs. + * @param {Object} self The text generation model object. + * @param {Tensor} inputTokenIds An tensor of input token IDs to generate text from. + * @param {Object} generation_config The generation config. + * @param {number} numOutputTokens The maximum number of tokens to generate for each beam. + * @param {Tensor} [inputs_attention_mask] The attention mask tensor for the input token IDs. + * @returns {Object[]} An array of beams initialized with the given inputs and parameters. + * @private + */ +function decoderStartBeams(self, inputTokenIds, generation_config, numOutputTokens, inputs_attention_mask) { + let beams = []; + + let beamId = 0; + for (let tokens of inputTokenIds) { + let output_token_ids = tokens.tolist().map(Number); + + // TODO: Improve + // Currently, just add back batch dimension. + // In future, allow for true parallel execution + tokens.dims = [1, ...tokens.dims] + + let attn_mask; + if (inputs_attention_mask) { + attn_mask = inputs_attention_mask[beamId]; + attn_mask.dims = [1, ...attn_mask.dims] + + } else { + attn_mask = prepareAttentionMask(self, tokens) + } + + let start = { + input: tokens, + model_input_ids: tokens, + attention_mask: attn_mask, + prev_model_outputs: null, + + output_token_ids: output_token_ids, + num_output_tokens: numOutputTokens, + + done: false, + score: 0, + id: beamId++ // assign unique id to beams + } + + beams.push(start); + } + return beams; +} + +/** + * Runs a single step of the text generation process for a given beam. + * + * @param {Object} self The decoder object. + * @param {Object} beam The beam to run. + * @param {Tensor} beam.input The input tensor. + * @param {Tensor} beam.model_input_ids The input ids to the model. + * @param {Tensor} beam.attention_mask The attention mask. + * @param {Object} beam.prev_model_outputs The past key values. + * @param {number[]} beam.output_token_ids The output token ids. + * @returns {Promise} The output of the generation step. + * @private + */ +async function decoderRunBeam(self, beam) { + let attnMaskData = new BigInt64Array(beam.output_token_ids.length).fill(1n) + + // 1. Prepare + let model_inputs = { + input_ids: beam.model_input_ids, + attention_mask: new Tensor( + 'int64', + attnMaskData, + [1, attnMaskData.length] + ), + past_key_values: beam.prev_model_outputs?.past_key_values, + } + + // 2. Run + let output = await self.forward(model_inputs); + + // 3. Update + beam.prev_model_outputs = output; + + return output; +} + +/** + * Update a beam with a new token ID. + * @param {Object} beam The beam to update. + * @param {number} newTokenId The new token ID to add to the beam's output. + * @private + */ +function decoderUpdatebeam(beam, newTokenId) { + beam.output_token_ids = [...beam.output_token_ids, newTokenId]; + beam.model_input_ids = new Tensor('int64', [BigInt(newTokenId)], [1, 1]); +} + +////////////////////////////////////////////////// + +////////////////////////////////////////////////// +/** + * A base class for pre-trained models that provides the model configuration and an ONNX session. + */ +export class PreTrainedModel extends Callable { + main_input_name = 'input_ids'; + + /** + * Creates a new instance of the `PreTrainedModel` class. + * @param {Object} config The model configuration. + * @param {any} session session for the model. + */ + constructor(config, session) { + super(); + + this.config = config; + this.session = session; + + const modelName = MODEL_CLASS_TO_NAME_MAPPING.get(this.constructor); + const modelType = MODEL_TYPE_MAPPING.get(modelName); + + this.can_generate = false; + this._runBeam = null; + this._getStartBeams = null; + this._updateBeam = null; + this._forward = null; + if (modelType === MODEL_TYPES.DecoderOnly) { + this.can_generate = true; + + this._runBeam = decoderRunBeam; + this._getStartBeams = decoderStartBeams; + this._updateBeam = decoderUpdatebeam; + this._forward = decoderForward; + + } else if (modelType === MODEL_TYPES.Seq2Seq || modelType === MODEL_TYPES.Vision2Seq) { + this.can_generate = true; + + this._runBeam = seq2seqRunBeam; + this._getStartBeams = seq2seqStartBeams; + this._updateBeam = seq2seqUpdatebeam; + this._forward = seq2seqForward; + + } else if (modelType === MODEL_TYPES.EncoderDecoder) { + this._forward = encoderForward; + + } else { // should be MODEL_TYPES.EncoderOnly + this._forward = encoderForward; + } + } + + /** + * Disposes of all the ONNX sessions that were created during inference. + * @returns {Promise} An array of promises, one for each ONNX session that is being disposed. + * @todo Use https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/FinalizationRegistry + */ + async dispose() { + const promises = []; + for (let key of Object.keys(this)) { + const item = this[key]; + // @ts-ignore + if (item instanceof InferenceSession) { + promises.push(item.handler.dispose()) + } + } + return await Promise.all(promises); + } + + /** + * Instantiate one of the model classes of the library from a pretrained model. + * + * The model class to instantiate is selected based on the `model_type` property of the config object + * (either passed as an argument or loaded from `pretrained_model_name_or_path` if possible) + * + * @param {string} pretrained_model_name_or_path The name or path of the pretrained model. Can be either: + * - A string, the *model id* of a pretrained model hosted inside a model repo on huggingface.co. + * Valid model ids can be located at the root-level, like `bert-base-uncased`, or namespaced under a + * user or organization name, like `dbmdz/bert-base-german-cased`. + * - A path to a *directory* containing model weights, e.g., `./my_model_directory/`. + * @param {import('./utils/hub.js').PretrainedOptions} options Additional options for loading the model. + * + * @returns {Promise} A new instance of the `PreTrainedModel` class. + */ + static async from_pretrained(pretrained_model_name_or_path, { + quantized = true, + progress_callback = null, + config = null, + cache_dir = null, + local_files_only = false, + revision = 'main', + model_file_name = null, + } = {}) { + + let options = { + quantized, + progress_callback, + config, + cache_dir, + local_files_only, + revision, + model_file_name, + } + + const modelName = MODEL_CLASS_TO_NAME_MAPPING.get(this); + const modelType = MODEL_TYPE_MAPPING.get(modelName); + + let info; + if (modelType === MODEL_TYPES.DecoderOnly) { + info = await Promise.all([ + AutoConfig.from_pretrained(pretrained_model_name_or_path, options), + constructSession(pretrained_model_name_or_path, options.model_file_name ?? 'decoder_model_merged', options), + getModelJSON(pretrained_model_name_or_path, 'generation_config.json', false, options), + ]); + + } else if (modelType === MODEL_TYPES.Seq2Seq || modelType === MODEL_TYPES.Vision2Seq) { + info = await Promise.all([ + AutoConfig.from_pretrained(pretrained_model_name_or_path, options), + constructSession(pretrained_model_name_or_path, 'encoder_model', options), + constructSession(pretrained_model_name_or_path, 'decoder_model_merged', options), + getModelJSON(pretrained_model_name_or_path, 'generation_config.json', false, options), + ]); + + } else if (modelType === MODEL_TYPES.MaskGeneration) { + info = await Promise.all([ + AutoConfig.from_pretrained(pretrained_model_name_or_path, options), + constructSession(pretrained_model_name_or_path, 'vision_encoder', options), + constructSession(pretrained_model_name_or_path, 'prompt_encoder_mask_decoder', options), + ]); + + } else if (modelType === MODEL_TYPES.EncoderDecoder) { + info = await Promise.all([ + AutoConfig.from_pretrained(pretrained_model_name_or_path, options), + constructSession(pretrained_model_name_or_path, 'encoder_model', options), + constructSession(pretrained_model_name_or_path, 'decoder_model_merged', options), + ]); + + } else { // should be MODEL_TYPES.EncoderOnly + if (modelType !== MODEL_TYPES.EncoderOnly) { + console.warn(`Model type for '${modelName}' not found, assuming encoder-only architecture. Please report this at https://github.com/xenova/transformers.js/issues/new/choose.`) + } + info = await Promise.all([ + AutoConfig.from_pretrained(pretrained_model_name_or_path, options), + constructSession(pretrained_model_name_or_path, options.model_file_name ?? 'model', options) + ]); + } + + // @ts-ignore + return new this(...info); + } + + /** + * Runs the model with the provided inputs + * @param {Object} model_inputs Object containing input tensors + * @returns {Promise} Object containing output tensors + */ + async _call(model_inputs) { + return await this.forward(model_inputs); + } + + /** + * Forward method for a pretrained model. If not overridden by a subclass, the correct forward method + * will be chosen based on the model type. + * @param {Object} model_inputs The input data to the model in the format specified in the ONNX model. + * @returns {Promise} The output data from the model in the format specified in the ONNX model. + * @throws {Error} This method must be implemented in subclasses. + */ + async forward(model_inputs) { + return await this._forward(this, model_inputs); + } + + /** + * @param {import('./utils/generation.js').GenerationConfigType} generation_config + * @param {number} input_ids_seq_length The starting sequence length for the input ids. + * @returns {LogitsProcessorList} + * @private + */ + _get_logits_processor( + generation_config, + input_ids_seq_length, + // encoder_input_ids, TODO + // prefix_allowed_tokens_fn, TODO + logits_processor = null + ) { + const processors = new LogitsProcessorList(); + + // if (generation_config.diversity_penalty !== null && generation_config.diversity_penalty > 0.0) { + // processors.push(new HammingDiversityLogitsProcessor( + // generation_config.diversity_penalty, + // generation_config.num_beams, + // generation_config.num_beam_groups + // )); + // } + + // if (generation_config.encoder_repetition_penalty !== null && generation_config.encoder_repetition_penalty !== 1.0) { + // processors.push(new EncoderRepetitionPenaltyLogitsProcessor( + // generation_config.encoder_repetition_penalty, + // encoder_input_ids + // )); + // } + + if (generation_config.repetition_penalty !== null && generation_config.repetition_penalty !== 1.0) { + processors.push(new RepetitionPenaltyLogitsProcessor(generation_config.repetition_penalty)); + } + + if (generation_config.no_repeat_ngram_size !== null && generation_config.no_repeat_ngram_size > 0) { + processors.push(new NoRepeatNGramLogitsProcessor(generation_config.no_repeat_ngram_size)); + } + + // if (generation_config.encoder_no_repeat_ngram_size !== null && generation_config.encoder_no_repeat_ngram_size > 0) { + // if (this.config.is_encoder_decoder) { + // processors.push(new EncoderNoRepeatNGramLogitsProcessor( + // generation_config.encoder_no_repeat_ngram_size, + // encoder_input_ids + // )); + // } else { + // throw new Error("It's impossible to use `encoder_no_repeat_ngram_size` with decoder-only architecture"); + // } + // } + + if (generation_config.bad_words_ids !== null) { + processors.push(new NoBadWordsLogitsProcessor(generation_config.bad_words_ids, generation_config.eos_token_id)); + } + + if (generation_config.min_length !== null && generation_config.eos_token_id !== null && generation_config.min_length > 0) { + processors.push(new MinLengthLogitsProcessor(generation_config.min_length, generation_config.eos_token_id)); + } + + if (generation_config.min_new_tokens !== null && generation_config.eos_token_id !== null && generation_config.min_new_tokens > 0) { + processors.push(new MinNewTokensLengthLogitsProcessor( + input_ids_seq_length, + generation_config.min_new_tokens, + generation_config.eos_token_id + )); + } + + // if (prefix_allowed_tokens_fn !== null) { + // processors.push(new PrefixConstrainedLogitsProcessor( + // prefix_allowed_tokens_fn, + // generation_config.num_beams / generation_config.num_beam_groups + // )); + // } + + + if (generation_config.forced_bos_token_id !== null) { + processors.push(new ForcedBOSTokenLogitsProcessor(generation_config.forced_bos_token_id)); + } + + if (generation_config.forced_eos_token_id !== null) { + processors.push(new ForcedEOSTokenLogitsProcessor( + generation_config.max_length, + generation_config.forced_eos_token_id + )); + } + + // if (generation_config.remove_invalid_values === true) { + // processors.push(new InfNanRemoveLogitsProcessor()); + // } + + // if (generation_config.exponential_decay_length_penalty !== null) { + // processors.push(new ExponentialDecayLengthPenalty( + // generation_config.exponential_decay_length_penalty, + // generation_config.eos_token_id, + // input_ids_seq_length + // )); + // } + + // if (generation_config.suppress_tokens !== null) { + // processors.push(new SuppressTokensLogitsProcessor(generation_config.suppress_tokens)); + // } + + if (generation_config.begin_suppress_tokens !== null) { + let begin_index = (input_ids_seq_length > 1 || generation_config.forced_bos_token_id === null) + ? input_ids_seq_length + : input_ids_seq_length + 1; + + if (generation_config.forced_decoder_ids !== null) { + // generation starts after the last token that is forced + begin_index += generation_config.forced_decoder_ids[generation_config.forced_decoder_ids.length - 1][0]; + } + processors.push(new SuppressTokensAtBeginLogitsProcessor(generation_config.begin_suppress_tokens, begin_index)); + } + + if (generation_config.forced_decoder_ids !== null) { + processors.push(new ForceTokensLogitsProcessor(generation_config.forced_decoder_ids)); + } + + if (logits_processor !== null) { + processors.extend(logits_processor) + } + + // `LogitNormalization` should always be the last logit processor, when present + // if (generation_config.renormalize_logits === true) { + // processors.push(new LogitNormalization()); + // } + + return processors; + } + + /** + * This function merges multiple generation configs together to form a final generation config to be used by the model for text generation. + * It first creates an empty `GenerationConfig` object, then it applies the model's own `generation_config` property to it. Finally, if a `generation_config` object was passed in the arguments, it overwrites the corresponding properties in the final config with those of the passed config object. + * @param {import('./utils/generation.js').GenerationConfigType} generation_config A `GenerationConfig` object containing generation parameters. + * @returns {import('./utils/generation.js').GenerationConfigType} The final generation config object to be used by the model for text generation. + */ + _get_generation_config(generation_config) { + // Create empty generation config (contains defaults) + // We pass `this.config` so that if `eos_token_id` or `bos_token_id` exist in the model's config, we will use them + let gen_config = new GenerationConfig(this.config); + + // Apply model's generation config, if it exists + if ('generation_config' in this) { + Object.assign(gen_config, this.generation_config); + } + + // Finally, use any generation config specified by the user + // when calling `generate` + if (generation_config !== null) { + Object.assign(gen_config, generation_config); + } + return gen_config; + } + + /** + * @typedef {import('./utils/maths.js').TypedArray} TypedArray + */ + + /** + * @typedef {{ sequences: Tensor, decoder_attentions: Tensor, cross_attentions: Tensor }} EncoderDecoderOutput + * @typedef {Object} DecoderOutput + * + * Generates text based on the given inputs and generation configuration using the model. + * @param {Tensor|Array|TypedArray} inputs An array of input token IDs. + * @param {Object|GenerationConfig|null} generation_config The generation configuration to use. If null, default configuration will be used. + * @param {Object|null} logits_processor An optional logits processor to use. If null, a new LogitsProcessorList instance will be created. + * @param {Object} options options + * @param {Object} [options.inputs_attention_mask=null] An optional attention mask for the inputs. + * @returns {Promise} An array of generated output sequences, where each sequence is an array of token IDs. + * @throws {Error} Throws an error if the inputs array is empty. + */ + async generate( + inputs, + generation_config = null, + logits_processor = null, + { + inputs_attention_mask = null + } = {}, + ) { + if (!this.can_generate) { + const modelName = MODEL_CLASS_TO_NAME_MAPPING.get(this.constructor); + let errorMessage = `The current model class (${modelName}) is not compatible with \`.generate()\`, as it doesn't have a language model head.` + + const modelType = this.config.model_type; + const possibleInfo = + MODEL_WITH_LM_HEAD_MAPPING_NAMES.get(modelType) + ?? MODEL_FOR_SEQ_TO_SEQ_CAUSAL_LM_MAPPING_NAMES.get(modelType) + ?? MODEL_FOR_SPEECH_SEQ_2_SEQ_MAPPING_NAMES.get(modelType) + // ?? MODEL_FOR_TEXT_TO_SPECTROGRAM_MAPPING_NAMES.get(modelType) // TODO + ?? MODEL_FOR_VISION_2_SEQ_MAPPING_NAMES.get(modelType); + + if (possibleInfo) { + // TODO: support multiple possible classes + errorMessage += ` Please use the following class instead: '${possibleInfo[0]}'`; + } + throw Error(errorMessage); + } + + if (!(inputs instanceof Tensor) && !isTypedArray(inputs) && !Array.isArray(inputs)) { + throw Error(`\`inputs\` must be a Tensor, TypedArray, or Array, but is "${inputs.constructor.name}".`); + } + + let input_ids_seq_length; + + // Prepare `input_ids` which will be used for auto-regressive generation + // TODO: Update to align with HF transformers' implementation + if (this.config.is_encoder_decoder) { + // Generating from the encoder outputs + input_ids_seq_length = 0; + + } else { + input_ids_seq_length = inputs instanceof Tensor ? inputs.dims.at(-1) : inputs.length; + + // decoder-only + if (input_ids_seq_length === 0) { + throw Error("Must supply a non-empty array of input token ids.") + } + } + + // Update generation config with defaults + generation_config = this._get_generation_config(generation_config); + + logits_processor = logits_processor ?? new LogitsProcessorList() + + // Update logits processor + logits_processor = this._get_logits_processor( + generation_config, + input_ids_seq_length, + logits_processor + ) + + /** @type {number[]} */ + let eos_token_ids = generation_config.eos_token_id; + if (eos_token_ids !== null && !Array.isArray(eos_token_ids)) { + eos_token_ids = [eos_token_ids]; + } + + // TODO implement early_stopping + // https://huggingface.co/blog/how-to-generate + + let numOutputTokens = 1; + const maxOutputTokens = numOutputTokens + (generation_config.max_new_tokens ?? Infinity); + + // Only use max length if max_new_tokens is not provided + const useMaxLength = Number.isInteger(generation_config.max_length) && (generation_config.max_new_tokens ?? null) === null; + let sampler = Sampler.getSampler(generation_config); + + // @ts-ignore + let beams = this.getStartBeams(inputs, generation_config, numOutputTokens, inputs_attention_mask); + + while (beams.some(x => !x.done) && numOutputTokens < maxOutputTokens) { + let newest_beams = []; + for (let beam of beams) { + if (beam.done) { + // Add this beam back into the pool + newest_beams.push(beam); + continue + } + if (useMaxLength && beam.output_token_ids.length >= generation_config.max_length) { + // Set this beam to done and add it back into the pool + beam.done = true; + newest_beams.push(beam); + continue + } + + // @ts-ignore + let output = await this.runBeam(beam); + + // add attentions/scores to beam only if user requested + if (generation_config.output_attentions) { + this.addAttentionsToBeam(beam, output); + } + if (generation_config.output_scores) { + // TODO add + } + + // Logits are of the form [batch_size, out_seq_length, vocab_size] + // In most cases, this will be [batch_size, 1, vocab_size] + // So, we select the last token's logits: + // (equivalent to `logits = outputs.logits[:, -1, :]`) + let logits = output.logits.slice(null, -1, null); + + // Apply logits processor + logits_processor(beam.output_token_ids, logits); + + let sampledTokens = sampler(logits); + for (let [newTokenId, logProb] of sampledTokens) { + // use previous beam as a starting point + let newBeam = { ...beam }; + + // update new beam + // @ts-ignore + this.updateBeam(newBeam, newTokenId); + + newBeam.score += logProb; + + if (eos_token_ids && eos_token_ids.includes(newTokenId)) { + newBeam.done = true; + } + + newest_beams.push(newBeam); + } + } + ++numOutputTokens; + + // Next, we get the best beams, per ID + newest_beams = this.groupBeams(newest_beams).map( + group => group + .sort((a, b) => b.score - a.score) // sort by score + .slice(0, generation_config.num_beams) // remove outside beam width + ); + + // Flatten beams + beams = newest_beams.flat(); + + // Run callback + if (generation_config.callback_function) { + generation_config.callback_function(beams); + } + } + + // TODO: Ensure that we can return non-batched outputs + + const groupedBeams = this.groupBeams(beams); + + const getFlattened = (key) => groupedBeams.map( + batch => { + if (generation_config.num_return_sequences > 1) { + return batch.slice(0, generation_config.num_return_sequences).map(x => x[key]); + } else { + return [batch[0][key]]; + } + } + ).flat(); // Flatten across batches (depth=1) + + const sequences = getFlattened('output_token_ids'); // [1, seqLength] + + if (generation_config.return_dict_in_generate) { + // NOTE: `decoder_attentions` and `cross_attentions` should be: + // list (one element for each generated token) + // of list (one element for each layer of the decoder) + // of torch.FloatTensor of shape (batch_size, num_heads, generated_length, sequence_length) + // However, since we are only generating one batch at a time, they are of the form: + // list (batches) + // of list (one element for each generated token) + // of list (one element for each layer of the decoder) + // of torch.FloatTensor of shape (1, num_heads, generated_length, sequence_length) + // + // TODO: In future (when true parallelism, we should be able to return the correct shape) + + const decoder_attentions = getFlattened('decoder_attentions'); + const cross_attentions = getFlattened('cross_attentions'); + + return { + sequences, + + decoder_attentions, + cross_attentions, + } + } else { + return sequences; + } + } + + /** + * Helper function to add attentions to beam + * @param {Object} beam + * @param {Object} output + * @private + */ + addAttentionsToBeam(beam, output) { + if (this.config.is_encoder_decoder) { + if (!output.cross_attentions || output.cross_attentions.length === 0) { + throw Error( + "`output_attentions` is true, but the model did not produce cross-attentions. " + + "This is most likely because the model was not exported with `output_attentions=True`." + ) + } + if (!beam.cross_attentions) { + beam.cross_attentions = []; + } + beam.cross_attentions.push(output.cross_attentions); + } + + if (!output.decoder_attentions || output.decoder_attentions.length === 0) { + throw Error( + "`output_attentions` is true, but the model did not produce decoder-attentions. " + + "This is most likely because the model was not exported with `output_attentions=True`." + ) + } + if (!beam.decoder_attentions) { + beam.decoder_attentions = []; + } + beam.decoder_attentions.push(output.decoder_attentions); + } + + /** + * Groups an array of beam objects by their ids. + * + * @param {Array} beams The array of beam objects to group. + * @returns {Array} An array of arrays, where each inner array contains beam objects with the same id. + */ + groupBeams(beams) { + // Group beams by their ids + const groups = Object.create(null); + for (const obj of beams) { + if (groups[obj.id] === undefined) { + groups[obj.id] = [obj]; + } else { + groups[obj.id].push(obj); + } + } + + return Object.values(groups); + } + + /** + * Returns an object containing past key values from the given decoder results object. + * + * @param {Object} decoderResults The decoder results object. + * @param {Object} pastKeyValues The previous past key values. + * @returns {Object} An object containing past key values. + */ + getPastKeyValues(decoderResults, pastKeyValues) { + + const pkvs = Object.create(null); + + for (const name in decoderResults) { + if (name.startsWith('present')) { + let newName = name.replace('present', 'past_key_values'); + + if (pastKeyValues && name.includes('encoder')) { + // Optimization introduced by optimum to reuse past key values. So, we just replace the constant + // outputs with the previous past key values. + // https://github.com/huggingface/optimum/blob/0bf2c05fb7e1182b52d21b703cfc95fd9e4ea3dc/optimum/onnxruntime/base.py#L677-L704 + pkvs[newName] = pastKeyValues[newName]; + } else { + pkvs[newName] = decoderResults[name]; + } + } + } + return pkvs; + } + + /** + * Returns an object containing attentions from the given decoder results object. + * + * @param {Object} decoderResults The decoder results object. + * @returns {Object} An object containing attentions. + */ + getAttentions(decoderResults) { + const attns = Object.create(null); + + for (const attnName of ['cross_attentions', 'decoder_attentions']) { + const result = []; + for (const name in decoderResults) { + if (name.startsWith(attnName)) { + const index = name.split('.').pop() + result[index] = decoderResults[name]; + } + } + attns[attnName] = result; + } + return attns; + } + + /** + * Adds past key values to the decoder feeds object. If pastKeyValues is null, creates new tensors for past key values. + * + * @param {Object} decoderFeeds The decoder feeds object to add past key values to. + * @param {Object} pastKeyValues An object containing past key values. + */ + addPastKeyValues(decoderFeeds, pastKeyValues) { + if (pastKeyValues) { + Object.assign(decoderFeeds, pastKeyValues) + } else { + // TODO support batches (i.e., batch_size > 1) + const batch_size = 1; + + // @ts-ignore + if (this.config.is_encoder_decoder && (this.add_encoder_pkv ?? true)) { + // @ts-ignore + let encoder_dims = [batch_size, this.num_encoder_heads, 0, this.encoder_dim_kv]; + // @ts-ignore + let decoder_dims = [batch_size, this.num_decoder_heads, 0, this.decoder_dim_kv]; + // @ts-ignore + for (let i = 0; i < this.num_decoder_layers; ++i) { + decoderFeeds[`past_key_values.${i}.encoder.key`] = new Tensor('float32', [], encoder_dims) + decoderFeeds[`past_key_values.${i}.encoder.value`] = new Tensor('float32', [], encoder_dims) + decoderFeeds[`past_key_values.${i}.decoder.key`] = new Tensor('float32', [], decoder_dims) + decoderFeeds[`past_key_values.${i}.decoder.value`] = new Tensor('float32', [], decoder_dims) + } + } else if (this.config.model_type === 'falcon') { + // NOTE: Custom implementation for Falcon + // @ts-ignore + let dims = [batch_size * this.num_heads, 0, this.dim_kv] + // @ts-ignore + for (let i = 0; i < this.num_layers; ++i) { + decoderFeeds[`past_key_values.${i}.key`] = new Tensor('float32', [], dims) + decoderFeeds[`past_key_values.${i}.value`] = new Tensor('float32', [], dims) + } + } else if (this.config.multi_query) { // e.g., for `gpt_bigcode` + // @ts-ignore + let dims = [batch_size * this.num_heads, 0, 2 * this.dim_kv] + // @ts-ignore + for (let i = 0; i < this.num_layers; ++i) { + decoderFeeds[`past_key_values.${i}.key_value`] = new Tensor('float32', [], dims) + } + } else if (this.config.model_type === 'bloom') { + // NOTE: Custom implementation for Bloom + + // @ts-ignore + let keyDims = [batch_size * this.num_heads, this.dim_kv, 0] // [batch_size x num_heads,64,past_sequence_length] + // @ts-ignore + let valueDims = [batch_size * this.num_heads, 0, this.dim_kv] // [batch_size x num_heads,past_sequence_length,64] + // @ts-ignore + for (let i = 0; i < this.num_layers; ++i) { + decoderFeeds[`past_key_values.${i}.key`] = new Tensor('float32', [], keyDims) + decoderFeeds[`past_key_values.${i}.value`] = new Tensor('float32', [], valueDims) + } + } else { // Decoder-only + // @ts-ignore + let dims = [batch_size, this.num_heads, 0, this.dim_kv] + // @ts-ignore + for (let i = 0; i < this.num_layers; ++i) { + decoderFeeds[`past_key_values.${i}.key`] = new Tensor('float32', [], dims) + decoderFeeds[`past_key_values.${i}.value`] = new Tensor('float32', [], dims) + } + } + } + } + + /** + * Initializes and returns the beam for text generation task + * @param {Tensor} inputTokenIds The input token ids. + * @param {Object} generation_config The generation config. + * @param {number} numOutputTokens The number of tokens to be generated. + * @param {Tensor} inputs_attention_mask Optional input attention mask. + * @returns {any} A Beam object representing the initialized beam. + * @private + */ + getStartBeams(inputTokenIds, generation_config, numOutputTokens, inputs_attention_mask) { + return this._getStartBeams(this, inputTokenIds, generation_config, numOutputTokens, inputs_attention_mask) + } + + /** + * Runs a single step of the beam search generation algorithm. + * @param {any} beam The current beam being generated. + * @returns {Promise} The updated beam after a single generation step. + * @private + */ + async runBeam(beam) { + return await this._runBeam(this, beam); + } + + /** + * Update a beam with a new token ID. + * @param {Object} beam The beam to update. + * @param {number} newTokenId The new token ID to add to the beam's output. + * @private + */ + updateBeam(beam, newTokenId) { + return this._updateBeam(beam, newTokenId); + } +} + +////////////////////////////////////////////////// +// Base model output class +export class ModelOutput { } + +/** + * Base class for model's outputs, with potential hidden states and attentions. + */ +export class BaseModelOutput extends ModelOutput { + /** + * @param {Object} output The output of the model. + * @param {Tensor} output.last_hidden_state Sequence of hidden-states at the output of the last layer of the model. + * @param {Tensor} [output.hidden_states] Hidden-states of the model at the output of each layer plus the optional initial embedding outputs. + * @param {Tensor} [output.attentions] Attentions weights after the attention softmax, used to compute the weighted average in the self-attention heads. + */ + constructor({ last_hidden_state, hidden_states = null, attentions = null }) { + super(); + this.last_hidden_state = last_hidden_state; + this.hidden_states = hidden_states; + this.attentions = attentions; + } +} +////////////////////////////////////////////////// +// Bert models +export class BertPreTrainedModel extends PreTrainedModel { } +export class BertModel extends BertPreTrainedModel { } + +/** + * BertForMaskedLM is a class representing a BERT model for masked language modeling. + */ +export class BertForMaskedLM extends BertPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} An object containing the model's output logits for masked language modeling. + */ + async _call(model_inputs) { + return new MaskedLMOutput(await super._call(model_inputs)); + } +} + +/** + * BertForSequenceClassification is a class representing a BERT model for sequence classification. + */ +export class BertForSequenceClassification extends BertPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} An object containing the model's output logits for sequence classification. + */ + async _call(model_inputs) { + return new SequenceClassifierOutput(await super._call(model_inputs)); + } +} + +/** + * BertForTokenClassification is a class representing a BERT model for token classification. + */ +export class BertForTokenClassification extends BertPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} An object containing the model's output logits for token classification. + */ + async _call(model_inputs) { + return new TokenClassifierOutput(await super._call(model_inputs)); + } +} + +/** + * BertForQuestionAnswering is a class representing a BERT model for question answering. + */ +export class BertForQuestionAnswering extends BertPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} An object containing the model's output logits for question answering. + */ + async _call(model_inputs) { + return new QuestionAnsweringModelOutput(await super._call(model_inputs)); + } +} +////////////////////////////////////////////////// + +////////////////////////////////////////////////// +// RoFormer models +export class RoFormerPreTrainedModel extends PreTrainedModel { } + +/** + * The bare RoFormer Model transformer outputting raw hidden-states without any specific head on top. + */ +export class RoFormerModel extends RoFormerPreTrainedModel { } + +/** + * RoFormer Model with a `language modeling` head on top. + */ +export class RoFormerForMaskedLM extends RoFormerPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} An object containing the model's output logits for masked language modeling. + */ + async _call(model_inputs) { + return new MaskedLMOutput(await super._call(model_inputs)); + } +} + +/** + * RoFormer Model transformer with a sequence classification/regression head on top (a linear layer on top of the pooled output) + */ +export class RoFormerForSequenceClassification extends RoFormerPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} An object containing the model's output logits for sequence classification. + */ + async _call(model_inputs) { + return new SequenceClassifierOutput(await super._call(model_inputs)); + } +} + +/** + * RoFormer Model with a token classification head on top (a linear layer on top of the hidden-states output) + * e.g. for Named-Entity-Recognition (NER) tasks. + */ +export class RoFormerForTokenClassification extends RoFormerPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} An object containing the model's output logits for token classification. + */ + async _call(model_inputs) { + return new TokenClassifierOutput(await super._call(model_inputs)); + } +} + +/** + * RoFormer Model with a span classification head on top for extractive question-answering tasks like SQuAD + * (a linear layers on top of the hidden-states output to compute `span start logits` and `span end logits`). + */ +export class RoFormerForQuestionAnswering extends RoFormerPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} An object containing the model's output logits for question answering. + */ + async _call(model_inputs) { + return new QuestionAnsweringModelOutput(await super._call(model_inputs)); + } +} +// TODO: Add RoFormerForCausalLM and RoFormerForMultipleChoice +////////////////////////////////////////////////// + +////////////////////////////////////////////////// +// ConvBert models +export class ConvBertPreTrainedModel extends PreTrainedModel { } + +/** + * The bare ConvBERT Model transformer outputting raw hidden-states without any specific head on top. + */ +export class ConvBertModel extends ConvBertPreTrainedModel { } + +/** + * ConvBERT Model with a language modeling head on top. + */ +export class ConvBertForMaskedLM extends ConvBertPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} An object containing the model's output logits for masked language modeling. + */ + async _call(model_inputs) { + return new MaskedLMOutput(await super._call(model_inputs)); + } +} + +/** + * ConvBERT Model transformer with a sequence classification/regression head on top (a linear layer on top of the pooled output) + */ +export class ConvBertForSequenceClassification extends ConvBertPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} An object containing the model's output logits for sequence classification. + */ + async _call(model_inputs) { + return new SequenceClassifierOutput(await super._call(model_inputs)); + } +} + +/** + * ConvBERT Model with a token classification head on top (a linear layer on top of the hidden-states output) + * e.g. for Named-Entity-Recognition (NER) tasks. + */ +export class ConvBertForTokenClassification extends ConvBertPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} An object containing the model's output logits for token classification. + */ + async _call(model_inputs) { + return new TokenClassifierOutput(await super._call(model_inputs)); + } +} + +/** + * ConvBERT Model with a span classification head on top for extractive question-answering tasks like SQuAD + * (a linear layers on top of the hidden-states output to compute `span start logits` and `span end logits`) + */ +export class ConvBertForQuestionAnswering extends ConvBertPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} An object containing the model's output logits for question answering. + */ + async _call(model_inputs) { + return new QuestionAnsweringModelOutput(await super._call(model_inputs)); + } +} +////////////////////////////////////////////////// + + +////////////////////////////////////////////////// +// Electra models +export class ElectraPreTrainedModel extends PreTrainedModel { } + +/** + * The bare Electra Model transformer outputting raw hidden-states without any specific head on top. + * Identical to the BERT model except that it uses an additional linear layer between the embedding + * layer and the encoder if the hidden size and embedding size are different. + */ +export class ElectraModel extends ElectraPreTrainedModel { } +// TODO add ElectraForPreTraining +/** + * Electra model with a language modeling head on top. + */ +export class ElectraForMaskedLM extends ElectraPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} An object containing the model's output logits for masked language modeling. + */ + async _call(model_inputs) { + return new MaskedLMOutput(await super._call(model_inputs)); + } +} + +/** + * ELECTRA Model transformer with a sequence classification/regression head on top (a linear layer on top of the pooled output) + */ +export class ElectraForSequenceClassification extends ElectraPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} An object containing the model's output logits for sequence classification. + */ + async _call(model_inputs) { + return new SequenceClassifierOutput(await super._call(model_inputs)); + } +} + +/** + * Electra model with a token classification head on top. + */ +export class ElectraForTokenClassification extends ElectraPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} An object containing the model's output logits for token classification. + */ + async _call(model_inputs) { + return new TokenClassifierOutput(await super._call(model_inputs)); + } +} + +/** + * LECTRA Model with a span classification head on top for extractive question-answering tasks like SQuAD + * (a linear layers on top of the hidden-states output to compute `span start logits` and `span end logits`). + */ +export class ElectraForQuestionAnswering extends ElectraPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} An object containing the model's output logits for question answering. + */ + async _call(model_inputs) { + return new QuestionAnsweringModelOutput(await super._call(model_inputs)); + } +} +////////////////////////////////////////////////// + + +////////////////////////////////////////////////// +// CamemBERT models +export class CamembertPreTrainedModel extends PreTrainedModel { } + +/** + * The bare CamemBERT Model transformer outputting raw hidden-states without any specific head on top. + */ +export class CamembertModel extends CamembertPreTrainedModel { } + +/** + * CamemBERT Model with a `language modeling` head on top. + */ +export class CamembertForMaskedLM extends CamembertPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} An object containing the model's output logits for masked language modeling. + */ + async _call(model_inputs) { + return new MaskedLMOutput(await super._call(model_inputs)); + } +} + +/** + * CamemBERT Model transformer with a sequence classification/regression head on top (a linear layer on top of the pooled output) e.g. for GLUE tasks. + */ +export class CamembertForSequenceClassification extends CamembertPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} An object containing the model's output logits for sequence classification. + */ + async _call(model_inputs) { + return new SequenceClassifierOutput(await super._call(model_inputs)); + } +} + +/** + * CamemBERT Model with a token classification head on top (a linear layer on top of the hidden-states output) e.g. for Named-Entity-Recognition (NER) tasks. + */ +export class CamembertForTokenClassification extends CamembertPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} An object containing the model's output logits for token classification. + */ + async _call(model_inputs) { + return new TokenClassifierOutput(await super._call(model_inputs)); + } +} + +/** + * CamemBERT Model with a span classification head on top for extractive question-answering tasks + */ +export class CamembertForQuestionAnswering extends CamembertPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} An object containing the model's output logits for question answering. + */ + async _call(model_inputs) { + return new QuestionAnsweringModelOutput(await super._call(model_inputs)); + } +} +////////////////////////////////////////////////// + +////////////////////////////////////////////////// +// DeBERTa models +export class DebertaPreTrainedModel extends PreTrainedModel { } + +/** + * The bare DeBERTa Model transformer outputting raw hidden-states without any specific head on top. + */ +export class DebertaModel extends DebertaPreTrainedModel { } + +/** + * DeBERTa Model with a `language modeling` head on top. + */ +export class DebertaForMaskedLM extends DebertaPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} An object containing the model's output logits for masked language modeling. + */ + async _call(model_inputs) { + return new MaskedLMOutput(await super._call(model_inputs)); + } +} + +/** + * DeBERTa Model transformer with a sequence classification/regression head on top (a linear layer on top of the pooled output) + */ +export class DebertaForSequenceClassification extends DebertaPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} An object containing the model's output logits for sequence classification. + */ + async _call(model_inputs) { + return new SequenceClassifierOutput(await super._call(model_inputs)); + } +} + +/** + * DeBERTa Model with a token classification head on top (a linear layer on top of the hidden-states output) e.g. for Named-Entity-Recognition (NER) tasks. + */ +export class DebertaForTokenClassification extends DebertaPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} An object containing the model's output logits for token classification. + */ + async _call(model_inputs) { + return new TokenClassifierOutput(await super._call(model_inputs)); + } +} + +/** + * DeBERTa Model with a span classification head on top for extractive question-answering tasks like SQuAD (a linear + * layers on top of the hidden-states output to compute `span start logits` and `span end logits`). + */ +export class DebertaForQuestionAnswering extends DebertaPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} An object containing the model's output logits for question answering. + */ + async _call(model_inputs) { + return new QuestionAnsweringModelOutput(await super._call(model_inputs)); + } +} +////////////////////////////////////////////////// + +////////////////////////////////////////////////// +// DeBERTa-v2 models +export class DebertaV2PreTrainedModel extends PreTrainedModel { } + +/** + * The bare DeBERTa-V2 Model transformer outputting raw hidden-states without any specific head on top. + */ +export class DebertaV2Model extends DebertaV2PreTrainedModel { } + +/** + * DeBERTa-V2 Model with a `language modeling` head on top. + */ +export class DebertaV2ForMaskedLM extends DebertaV2PreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} An object containing the model's output logits for masked language modeling. + */ + async _call(model_inputs) { + return new MaskedLMOutput(await super._call(model_inputs)); + } +} + +/** + * DeBERTa-V2 Model transformer with a sequence classification/regression head on top (a linear layer on top of the pooled output) + */ +export class DebertaV2ForSequenceClassification extends DebertaV2PreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} An object containing the model's output logits for sequence classification. + */ + async _call(model_inputs) { + return new SequenceClassifierOutput(await super._call(model_inputs)); + } +} + +/** + * DeBERTa-V2 Model with a token classification head on top (a linear layer on top of the hidden-states output) e.g. for Named-Entity-Recognition (NER) tasks. + */ +export class DebertaV2ForTokenClassification extends DebertaV2PreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} An object containing the model's output logits for token classification. + */ + async _call(model_inputs) { + return new TokenClassifierOutput(await super._call(model_inputs)); + } +} + +/** + * DeBERTa-V2 Model with a span classification head on top for extractive question-answering tasks like SQuAD (a linear + * layers on top of the hidden-states output to compute `span start logits` and `span end logits`). + */ +export class DebertaV2ForQuestionAnswering extends DebertaV2PreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} An object containing the model's output logits for question answering. + */ + async _call(model_inputs) { + return new QuestionAnsweringModelOutput(await super._call(model_inputs)); + } +} +////////////////////////////////////////////////// + +////////////////////////////////////////////////// +// DistilBert models +export class DistilBertPreTrainedModel extends PreTrainedModel { } +export class DistilBertModel extends DistilBertPreTrainedModel { } + +/** + * DistilBertForSequenceClassification is a class representing a DistilBERT model for sequence classification. + */ +export class DistilBertForSequenceClassification extends DistilBertPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} An object containing the model's output logits for sequence classification. + */ + async _call(model_inputs) { + return new SequenceClassifierOutput(await super._call(model_inputs)); + } +} + +/** + * DistilBertForTokenClassification is a class representing a DistilBERT model for token classification. + */ +export class DistilBertForTokenClassification extends DistilBertPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} An object containing the model's output logits for token classification. + */ + async _call(model_inputs) { + return new TokenClassifierOutput(await super._call(model_inputs)); + } +} + + +/** + * DistilBertForQuestionAnswering is a class representing a DistilBERT model for question answering. + */ +export class DistilBertForQuestionAnswering extends DistilBertPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} An object containing the model's output logits for question answering. + */ + async _call(model_inputs) { + return new QuestionAnsweringModelOutput(await super._call(model_inputs)); + } +} + +/** + * DistilBertForMaskedLM is a class representing a DistilBERT model for masking task. + */ +export class DistilBertForMaskedLM extends DistilBertPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} returned object + */ + async _call(model_inputs) { + return new MaskedLMOutput(await super._call(model_inputs)); + } +} +////////////////////////////////////////////////// + + +////////////////////////////////////////////////// +// ESM models +export class EsmPreTrainedModel extends PreTrainedModel { } + +/** + * The bare ESM Model transformer outputting raw hidden-states without any specific head on top. + */ +export class EsmModel extends EsmPreTrainedModel { } + +/** + * ESM Model with a `language modeling` head on top. + */ +export class EsmForMaskedLM extends EsmPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} An object containing the model's output logits for masked language modeling. + */ + async _call(model_inputs) { + return new MaskedLMOutput(await super._call(model_inputs)); + } +} + +/** + * ESM Model transformer with a sequence classification/regression head on top (a linear layer on top of the pooled output) + */ +export class EsmForSequenceClassification extends EsmPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} An object containing the model's output logits for sequence classification. + */ + async _call(model_inputs) { + return new SequenceClassifierOutput(await super._call(model_inputs)); + } +} + +/** + * ESM Model with a token classification head on top (a linear layer on top of the hidden-states output) + * e.g. for Named-Entity-Recognition (NER) tasks. + */ +export class EsmForTokenClassification extends EsmPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} An object containing the model's output logits for token classification. + */ + async _call(model_inputs) { + return new TokenClassifierOutput(await super._call(model_inputs)); + } +} +////////////////////////////////////////////////// + + +////////////////////////////////////////////////// +// MobileBert models +export class MobileBertPreTrainedModel extends PreTrainedModel { } +export class MobileBertModel extends MobileBertPreTrainedModel { } + +/** + * MobileBertForMaskedLM is a class representing a MobileBERT model for masking task. + */ +export class MobileBertForMaskedLM extends MobileBertPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} returned object + */ + async _call(model_inputs) { + return new MaskedLMOutput(await super._call(model_inputs)); + } +} + +/** + * MobileBert Model transformer with a sequence classification/regression head on top (a linear layer on top of the pooled output) + */ +export class MobileBertForSequenceClassification extends MobileBertPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} returned object + */ + async _call(model_inputs) { + return new SequenceClassifierOutput(await super._call(model_inputs)); + } +} + +/** + * MobileBert Model with a span classification head on top for extractive question-answering tasks + */ +export class MobileBertForQuestionAnswering extends MobileBertPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} returned object + */ + async _call(model_inputs) { + return new QuestionAnsweringModelOutput(await super._call(model_inputs)); + } +} +////////////////////////////////////////////////// + +////////////////////////////////////////////////// +// MPNet models +export class MPNetPreTrainedModel extends PreTrainedModel { } + +/** + * The bare MPNet Model transformer outputting raw hidden-states without any specific head on top. + */ +export class MPNetModel extends MPNetPreTrainedModel { } + +/** + * MPNetForMaskedLM is a class representing a MPNet model for masked language modeling. + */ +export class MPNetForMaskedLM extends MPNetPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} An object containing the model's output logits for masked language modeling. + */ + async _call(model_inputs) { + return new MaskedLMOutput(await super._call(model_inputs)); + } +} + +/** + * MPNetForSequenceClassification is a class representing a MPNet model for sequence classification. + */ +export class MPNetForSequenceClassification extends MPNetPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} An object containing the model's output logits for sequence classification. + */ + async _call(model_inputs) { + return new SequenceClassifierOutput(await super._call(model_inputs)); + } +} + +/** + * MPNetForTokenClassification is a class representing a MPNet model for token classification. + */ +export class MPNetForTokenClassification extends MPNetPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} An object containing the model's output logits for token classification. + */ + async _call(model_inputs) { + return new TokenClassifierOutput(await super._call(model_inputs)); + } +} + +/** + * MPNetForQuestionAnswering is a class representing a MPNet model for question answering. + */ +export class MPNetForQuestionAnswering extends MPNetPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} An object containing the model's output logits for question answering. + */ + async _call(model_inputs) { + return new QuestionAnsweringModelOutput(await super._call(model_inputs)); + } +} +////////////////////////////////////////////////// + + +////////////////////////////////////////////////// +// SqueezeBert models +export class SqueezeBertPreTrainedModel extends PreTrainedModel { } +export class SqueezeBertModel extends SqueezeBertPreTrainedModel { } +export class SqueezeBertForMaskedLM extends SqueezeBertPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} returned object + */ + async _call(model_inputs) { + return new MaskedLMOutput(await super._call(model_inputs)); + } +} +export class SqueezeBertForSequenceClassification extends SqueezeBertPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} returned object + */ + async _call(model_inputs) { + return new SequenceClassifierOutput(await super._call(model_inputs)); + } +} +export class SqueezeBertForQuestionAnswering extends SqueezeBertPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} returned object + */ + async _call(model_inputs) { + return new QuestionAnsweringModelOutput(await super._call(model_inputs)); + } +} +////////////////////////////////////////////////// + + +////////////////////////////////////////////////// +// Albert models +export class AlbertPreTrainedModel extends PreTrainedModel { } +export class AlbertModel extends AlbertPreTrainedModel { } +export class AlbertForSequenceClassification extends AlbertPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} returned object + */ + async _call(model_inputs) { + return new SequenceClassifierOutput(await super._call(model_inputs)); + } +} +export class AlbertForQuestionAnswering extends AlbertPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} returned object + */ + async _call(model_inputs) { + return new QuestionAnsweringModelOutput(await super._call(model_inputs)); + } +} +export class AlbertForMaskedLM extends AlbertPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} returned object + */ + async _call(model_inputs) { + return new MaskedLMOutput(await super._call(model_inputs)); + } +} +////////////////////////////////////////////////// + + +////////////////////////////////////////////////// +// T5 models +export class T5PreTrainedModel extends PreTrainedModel { }; + +export class T5Model extends T5PreTrainedModel { } + +/** + * T5Model is a class representing a T5 model for conditional generation. + */ +export class T5ForConditionalGeneration extends T5PreTrainedModel { + + /** + * Creates a new instance of the `T5ForConditionalGeneration` class. + * @param {Object} config The model configuration. + * @param {any} session session for the model. + * @param {any} decoder_merged_session session for the decoder. + * @param {GenerationConfig} generation_config The generation configuration. + */ + constructor(config, session, decoder_merged_session, generation_config) { + super(config, session); + this.decoder_merged_session = decoder_merged_session; + this.generation_config = generation_config; + + this.num_decoder_layers = this.config.num_decoder_layers; + this.num_decoder_heads = this.config.num_heads; + this.decoder_dim_kv = this.config.d_kv; + + this.num_encoder_layers = this.config.num_layers; + this.num_encoder_heads = this.config.num_heads; + this.encoder_dim_kv = this.config.d_kv; + } +} +////////////////////////////////////////////////// + + +////////////////////////////////////////////////// +// LONGT5 models +/** + * An abstract class to handle weights initialization and a simple interface for downloading and loading pretrained models. + */ +export class LongT5PreTrainedModel extends PreTrainedModel { }; + +/** + * The bare LONGT5 Model transformer outputting raw hidden-states without any specific head on top. + */ +export class LongT5Model extends LongT5PreTrainedModel { } + +/** + * LONGT5 Model with a `language modeling` head on top. + */ +export class LongT5ForConditionalGeneration extends LongT5PreTrainedModel { + /** + * Creates a new instance of the `LongT5ForConditionalGeneration` class. + * @param {Object} config The model configuration. + * @param {any} session session for the model. + * @param {any} decoder_merged_session session for the decoder. + * @param {GenerationConfig} generation_config The generation configuration. + */ + constructor(config, session, decoder_merged_session, generation_config) { + super(config, session); + this.decoder_merged_session = decoder_merged_session; + this.generation_config = generation_config; + + this.num_decoder_layers = this.config.num_decoder_layers; + this.num_decoder_heads = this.config.num_heads; + this.decoder_dim_kv = this.config.d_kv; + + this.num_encoder_layers = this.config.num_layers; + this.num_encoder_heads = this.config.num_heads; + this.encoder_dim_kv = this.config.d_kv; + } +} +////////////////////////////////////////////////// + + +////////////////////////////////////////////////// +// MT5 models +export class MT5PreTrainedModel extends PreTrainedModel { }; + +export class MT5Model extends MT5PreTrainedModel { } + +/** + * A class representing a conditional sequence-to-sequence model based on the MT5 architecture. + */ +export class MT5ForConditionalGeneration extends MT5PreTrainedModel { + + /** + * Creates a new instance of the `MT5ForConditionalGeneration` class. + * @param {any} config The model configuration. + * @param {any} session The ONNX session containing the encoder weights. + * @param {any} decoder_merged_session The ONNX session containing the merged decoder weights. + * @param {GenerationConfig} generation_config The generation configuration. + */ + constructor(config, session, decoder_merged_session, generation_config) { + super(config, session); + this.decoder_merged_session = decoder_merged_session; + this.generation_config = generation_config; + + this.num_decoder_layers = this.config.num_decoder_layers; + this.num_decoder_heads = this.config.num_heads; + this.decoder_dim_kv = this.config.d_kv; + + this.num_encoder_layers = this.config.num_layers; + this.num_encoder_heads = this.config.num_heads; + this.encoder_dim_kv = this.config.d_kv; + } +} +////////////////////////////////////////////////// + +////////////////////////////////////////////////// +// Bart models +export class BartPretrainedModel extends PreTrainedModel { }; + +/** + * The bare BART Model outputting raw hidden-states without any specific head on top. + */ +export class BartModel extends BartPretrainedModel { } + +/** + * The BART Model with a language modeling head. Can be used for summarization. + */ +export class BartForConditionalGeneration extends BartPretrainedModel { + + /** + * Creates a new instance of the `BartForConditionalGeneration` class. + * @param {Object} config The configuration object for the Bart model. + * @param {Object} session The ONNX session used to execute the model. + * @param {Object} decoder_merged_session The ONNX session used to execute the decoder. + * @param {Object} generation_config The generation configuration object. + */ + constructor(config, session, decoder_merged_session, generation_config) { + super(config, session); + this.decoder_merged_session = decoder_merged_session; + this.generation_config = generation_config; + + this.num_decoder_layers = this.config.decoder_layers; + this.num_decoder_heads = this.config.decoder_attention_heads; + this.decoder_dim_kv = this.config.d_model / this.num_decoder_heads; + + this.num_encoder_layers = this.config.encoder_layers; + this.num_encoder_heads = this.config.encoder_attention_heads; + this.encoder_dim_kv = this.config.d_model / this.num_encoder_heads; + } + +} + +/** + * Bart model with a sequence classification/head on top (a linear layer on top of the pooled output) + */ +export class BartForSequenceClassification extends BartPretrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} An object containing the model's output logits for sequence classification. + */ + async _call(model_inputs) { + return new SequenceClassifierOutput(await super._call(model_inputs)); + } +} + +////////////////////////////////////////////////// + +////////////////////////////////////////////////// +// MBart models +export class MBartPreTrainedModel extends PreTrainedModel { }; + +/** + * The bare MBART Model outputting raw hidden-states without any specific head on top. + */ +export class MBartModel extends MBartPreTrainedModel { } + +/** + * The MBART Model with a language modeling head. Can be used for summarization, after fine-tuning the pretrained models. + */ +export class MBartForConditionalGeneration extends MBartPreTrainedModel { + + /** + * Creates a new instance of the `MBartForConditionalGeneration` class. + * @param {Object} config The configuration object for the Bart model. + * @param {Object} session The ONNX session used to execute the model. + * @param {Object} decoder_merged_session The ONNX session used to execute the decoder. + * @param {Object} generation_config The generation configuration object. + */ + constructor(config, session, decoder_merged_session, generation_config) { + super(config, session); + this.decoder_merged_session = decoder_merged_session; + this.generation_config = generation_config; + + this.num_decoder_layers = this.config.decoder_layers; + this.num_decoder_heads = this.config.decoder_attention_heads; + this.decoder_dim_kv = this.config.d_model / this.num_decoder_heads; + + this.num_encoder_layers = this.config.encoder_layers; + this.num_encoder_heads = this.config.encoder_attention_heads; + this.encoder_dim_kv = this.config.d_model / this.num_encoder_heads; + } + +} + +/** + * MBart model with a sequence classification/head on top (a linear layer on top of the pooled output). + */ +export class MBartForSequenceClassification extends MBartPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} An object containing the model's output logits for sequence classification. + */ + async _call(model_inputs) { + return new SequenceClassifierOutput(await super._call(model_inputs)); + } +} + + +export class MBartForCausalLM extends MBartPreTrainedModel { + /** + * Creates a new instance of the `MBartForCausalLM` class. + * @param {Object} config Configuration object for the model. + * @param {Object} decoder_merged_session ONNX Session object for the decoder. + * @param {Object} generation_config Configuration object for the generation process. + */ + constructor(config, decoder_merged_session, generation_config) { + super(config, decoder_merged_session); + this.generation_config = generation_config; + + this.num_decoder_layers = this.config.decoder_layers; + this.num_decoder_heads = this.config.decoder_attention_heads; + this.decoder_dim_kv = this.config.d_model / this.num_decoder_heads; + + this.num_encoder_layers = this.config.encoder_layers; + this.num_encoder_heads = this.config.encoder_attention_heads; + this.encoder_dim_kv = this.config.d_model / this.num_encoder_heads; + } +} +////////////////////////////////////////////////// + + +////////////////////////////////////////////////// +// Blenderbot models +export class BlenderbotPreTrainedModel extends PreTrainedModel { }; + +/** + * The bare Blenderbot Model outputting raw hidden-states without any specific head on top. + */ +export class BlenderbotModel extends BlenderbotPreTrainedModel { } + +/** + * The Blenderbot Model with a language modeling head. Can be used for summarization. + */ +export class BlenderbotForConditionalGeneration extends BlenderbotPreTrainedModel { + + /** + * Creates a new instance of the `BlenderbotForConditionalGeneration` class. + * @param {any} config The model configuration. + * @param {any} session The ONNX session containing the encoder weights. + * @param {any} decoder_merged_session The ONNX session containing the merged decoder weights. + * @param {GenerationConfig} generation_config The generation configuration. + */ + constructor(config, session, decoder_merged_session, generation_config) { + super(config, session); + this.decoder_merged_session = decoder_merged_session; + this.generation_config = generation_config; + + this.num_decoder_layers = this.config.decoder_layers; + this.num_decoder_heads = this.config.decoder_attention_heads; + this.decoder_dim_kv = this.config.d_model / this.num_decoder_heads; + + this.num_encoder_layers = this.config.encoder_layers; + this.num_encoder_heads = this.config.encoder_attention_heads; + this.encoder_dim_kv = this.config.d_model / this.num_encoder_heads; + } +} +////////////////////////////////////////////////// + + +////////////////////////////////////////////////// +// Blenderbot models +export class BlenderbotSmallPreTrainedModel extends PreTrainedModel { }; + +/** + * The bare BlenderbotSmall Model outputting raw hidden-states without any specific head on top. + */ +export class BlenderbotSmallModel extends BlenderbotSmallPreTrainedModel { } + +/** + * The BlenderbotSmall Model with a language modeling head. Can be used for summarization. + */ +export class BlenderbotSmallForConditionalGeneration extends BlenderbotSmallPreTrainedModel { + + /** + * Creates a new instance of the `BlenderbotForConditionalGeneration` class. + * @param {any} config The model configuration. + * @param {any} session The ONNX session containing the encoder weights. + * @param {any} decoder_merged_session The ONNX session containing the merged decoder weights. + * @param {GenerationConfig} generation_config The generation configuration. + */ + constructor(config, session, decoder_merged_session, generation_config) { + super(config, session); + this.decoder_merged_session = decoder_merged_session; + this.generation_config = generation_config; + + this.num_decoder_layers = this.config.decoder_layers; + this.num_decoder_heads = this.config.decoder_attention_heads; + this.decoder_dim_kv = this.config.d_model / this.num_decoder_heads; + + this.num_encoder_layers = this.config.encoder_layers; + this.num_encoder_heads = this.config.encoder_attention_heads; + this.encoder_dim_kv = this.config.d_model / this.num_encoder_heads; + } +} +////////////////////////////////////////////////// + + +////////////////////////////////////////////////// +// Roberta models +export class RobertaPreTrainedModel extends PreTrainedModel { } +export class RobertaModel extends RobertaPreTrainedModel { } + +/** + * RobertaForMaskedLM class for performing masked language modeling on Roberta models. + */ +export class RobertaForMaskedLM extends RobertaPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} returned object + */ + async _call(model_inputs) { + return new MaskedLMOutput(await super._call(model_inputs)); + } +} + +/** + * RobertaForSequenceClassification class for performing sequence classification on Roberta models. + */ +export class RobertaForSequenceClassification extends RobertaPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} returned object + */ + async _call(model_inputs) { + return new SequenceClassifierOutput(await super._call(model_inputs)); + } +} + +/** + * RobertaForTokenClassification class for performing token classification on Roberta models. + */ +export class RobertaForTokenClassification extends RobertaPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} An object containing the model's output logits for token classification. + */ + async _call(model_inputs) { + return new TokenClassifierOutput(await super._call(model_inputs)); + } +} + +/** + * RobertaForQuestionAnswering class for performing question answering on Roberta models. + */ +export class RobertaForQuestionAnswering extends RobertaPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} returned object + */ + async _call(model_inputs) { + return new QuestionAnsweringModelOutput(await super._call(model_inputs)); + } +} +////////////////////////////////////////////////// + + +////////////////////////////////////////////////// +// XLM models +/** + * An abstract class to handle weights initialization and a simple interface for downloading and loading pretrained models. + */ +export class XLMPreTrainedModel extends PreTrainedModel { } + +/** + * The bare XLM Model transformer outputting raw hidden-states without any specific head on top. + */ +export class XLMModel extends XLMPreTrainedModel { } + +/** + * The XLM Model transformer with a language modeling head on top (linear layer with weights tied to the input embeddings). + */ +export class XLMWithLMHeadModel extends XLMPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} returned object + */ + async _call(model_inputs) { + return new MaskedLMOutput(await super._call(model_inputs)); + } +} + +/** + * XLM Model with a sequence classification/regression head on top (a linear layer on top of the pooled output) + */ +export class XLMForSequenceClassification extends XLMPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} returned object + */ + async _call(model_inputs) { + return new SequenceClassifierOutput(await super._call(model_inputs)); + } +} + +/** + * XLM Model with a token classification head on top (a linear layer on top of the hidden-states output) + */ +export class XLMForTokenClassification extends XLMPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} An object containing the model's output logits for token classification. + */ + async _call(model_inputs) { + return new TokenClassifierOutput(await super._call(model_inputs)); + } +} + +/** + * XLM Model with a span classification head on top for extractive question-answering tasks + */ +export class XLMForQuestionAnswering extends XLMPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} returned object + */ + async _call(model_inputs) { + return new QuestionAnsweringModelOutput(await super._call(model_inputs)); + } +} +////////////////////////////////////////////////// + +////////////////////////////////////////////////// +// XLMRoberta models +export class XLMRobertaPreTrainedModel extends PreTrainedModel { } +export class XLMRobertaModel extends XLMRobertaPreTrainedModel { } + +/** + * XLMRobertaForMaskedLM class for performing masked language modeling on XLMRoberta models. + */ +export class XLMRobertaForMaskedLM extends XLMRobertaPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} returned object + */ + async _call(model_inputs) { + return new MaskedLMOutput(await super._call(model_inputs)); + } +} + +/** + * XLMRobertaForSequenceClassification class for performing sequence classification on XLMRoberta models. + */ +export class XLMRobertaForSequenceClassification extends XLMRobertaPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} returned object + */ + async _call(model_inputs) { + return new SequenceClassifierOutput(await super._call(model_inputs)); + } +} + +/** + * XLMRobertaForTokenClassification class for performing token classification on XLMRoberta models. + */ +export class XLMRobertaForTokenClassification extends XLMRobertaPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} An object containing the model's output logits for token classification. + */ + async _call(model_inputs) { + return new TokenClassifierOutput(await super._call(model_inputs)); + } +} + +/** + * XLMRobertaForQuestionAnswering class for performing question answering on XLMRoberta models. + */ +export class XLMRobertaForQuestionAnswering extends XLMRobertaPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} returned object + */ + async _call(model_inputs) { + return new QuestionAnsweringModelOutput(await super._call(model_inputs)); + } +} +////////////////////////////////////////////////// + +////////////////////////////////////////////////// +// Audio Spectrogram Transformer (AST) models +export class ASTPreTrainedModel extends PreTrainedModel { }; + +/** + * The bare AST Model transformer outputting raw hidden-states without any specific head on top. + */ +export class ASTModel extends ASTPreTrainedModel { } + +/** + * Audio Spectrogram Transformer model with an audio classification head on top + * (a linear layer on top of the pooled output) e.g. for datasets like AudioSet, Speech Commands v2. + */ +export class ASTForAudioClassification extends ASTPreTrainedModel { } +////////////////////////////////////////////////// + +////////////////////////////////////////////////// +// Whisper models +export class WhisperPreTrainedModel extends PreTrainedModel { }; + +/** + * WhisperModel class for training Whisper models without a language model head. + */ +export class WhisperModel extends WhisperPreTrainedModel { } + +/** + * WhisperForConditionalGeneration class for generating conditional outputs from Whisper models. + */ +export class WhisperForConditionalGeneration extends WhisperPreTrainedModel { + + requires_attention_mask = false; + main_input_name = 'input_features'; + + /** + * Creates a new instance of the `WhisperForConditionalGeneration` class. + * @param {Object} config Configuration object for the model. + * @param {Object} session ONNX Session object for the model. + * @param {Object} decoder_merged_session ONNX Session object for the decoder. + * @param {Object} generation_config Configuration object for the generation process. + */ + constructor(config, session, decoder_merged_session, generation_config) { + super(config, session); + this.decoder_merged_session = decoder_merged_session; + this.generation_config = generation_config; + + this.num_decoder_layers = this.config.decoder_layers; + this.num_decoder_heads = this.config.decoder_attention_heads; + this.decoder_dim_kv = this.config.d_model / this.num_decoder_heads; + + this.num_encoder_layers = this.config.encoder_layers; + this.num_encoder_heads = this.config.encoder_attention_heads; + this.encoder_dim_kv = this.config.d_model / this.num_encoder_heads; + } + + /** + * @typedef {Object} WhisperGenerationConfig + * @extends GenerationConfig + * @property {boolean} [return_timestamps=null] Whether to return the timestamps with the text. This enables the `WhisperTimestampsLogitsProcessor`. + * @property {boolean} [return_token_timestamps=null] Whether to return token-level timestamps + * with the text. This can be used with or without the `return_timestamps` option. To get word-level + * timestamps, use the tokenizer to group the tokens into words. + * @property {number} [num_frames=null] The number of audio frames available in this chunk. This is only used generating word-level timestamps. + */ + + /** + * Generates outputs based on input and generation configuration. + * @param {Object} inputs Input data for the model. + * @param {WhisperGenerationConfig} generation_config Configuration object for the generation process. + * @param {Object} logits_processor Optional logits processor object. + * @returns {Promise} Promise object represents the generated outputs. + */ + async generate( + inputs, + generation_config = null, + logits_processor = null, + // { + // return_timestamps = null, + // return_token_timestamps = null, + // language = null, + // task = null, + // } = {}, + ) { + // Create generation config object + generation_config = this._get_generation_config(generation_config); + + + // Whisper has additional options for returning timestamps + generation_config.return_timestamps ??= false; + + // TODO add language and task + + if (generation_config.return_timestamps) { + logits_processor = [new WhisperTimeStampLogitsProcessor(generation_config)] + } + + if (generation_config.return_token_timestamps) { + generation_config.output_attentions = true; + generation_config.return_dict_in_generate = true; + + if (generation_config.task === 'translate') { + console.warn("Token-level timestamps may not be reliable for task 'translate'.") + } + + if (!generation_config.alignment_heads) { + throw new Error( + "Model generation config has no `alignment_heads`, token-level timestamps not available. " + + "See https://gist.github.com/hollance/42e32852f24243b748ae6bc1f985b13a on how to add this property to the generation config." + ) + } + } + + const outputs = await super.generate(inputs, generation_config, logits_processor); + + if (generation_config.return_token_timestamps && generation_config.alignment_heads) { + outputs["token_timestamps"] = this._extract_token_timestamps( + outputs, + generation_config.alignment_heads, + generation_config.num_frames, + ) + } + + return outputs + } + + /** + * Calculates token-level timestamps using the encoder-decoder cross-attentions and + * dynamic time-warping (DTW) to map each output token to a position in the input audio. + * @param {Object} generate_outputs Outputs generated by the model + * @param {Tensor[][][]} generate_outputs.cross_attentions The cross attentions output by the model + * @param {Tensor[][][]} generate_outputs.decoder_attentions The decoder attentions output by the model + * @param {number[][]} generate_outputs.sequences The sequences output by the model + * @param {number[][]} alignment_heads Alignment heads of the model + * @param {number} [num_frames=null] Number of frames in the input audio. + * @param {number} [time_precision=0.02] Precision of the timestamps in seconds + * @returns {Tensor} tensor containing the timestamps in seconds for each predicted token + */ + _extract_token_timestamps(generate_outputs, alignment_heads, num_frames = null, time_precision = 0.02) { + if (!generate_outputs.cross_attentions) { + throw new Error( + "Model outputs must contain cross attentions to extract timestamps. " + + "This is most likely because the model was not exported with `output_attentions=True`." + ) + } + + let median_filter_width = this.config.median_filter_width; + if (median_filter_width === undefined) { + console.warn("Model config has no `median_filter_width`, using default value of 7.") + median_filter_width = 7; + } + + const batchedMatrices = generate_outputs.cross_attentions.map(batch => { + // Create a list with `decoder_layers` elements, each a tensor of shape + // (batch size, attention_heads, output length, input length). + let cross_attentions = Array.from({ length: this.config.decoder_layers }, + (_, i) => cat(batch.map(x => x[i]), 2) + ); + + let weights = stack(alignment_heads.map(([l, h]) => { + return num_frames + ? cross_attentions[l].slice(null, h, null, [0, num_frames]) + : cross_attentions[l].slice(null, h); + })); + weights = weights.transpose(1, 0, 2, 3) + + let [std, calculatedMean] = std_mean(weights, -2, 0, true); + + // Normalize and smoothen the weights. + let smoothedWeights = weights.clone(); // [1, 8, seqLength, 1500] + + for (let a = 0; a < smoothedWeights.dims[0]; ++a) { + let aTensor = smoothedWeights[a]; // [8, seqLength, 1500] + + for (let b = 0; b < aTensor.dims[0]; ++b) { + let bTensor = aTensor[b]; // [seqLength, 1500] + + const stdTensor = std[a][b][0]; // [1500] + const meanTensor = calculatedMean[a][b][0]; // [1500] + + for (let c = 0; c < bTensor.dims[0]; ++c) { + + let cTensor = bTensor[c]; // [1500] + for (let d = 0; d < cTensor.data.length; ++d) { + cTensor.data[d] = (cTensor.data[d] - meanTensor.data[d]) / stdTensor.data[d] + } + + // Apply median filter. + // cTensor.data.set(medianFilter(cTensor.data, median_filter_width)) + } + } + } + + // Average the different cross-attention heads. + const matrix = mean(smoothedWeights, 1); + return matrix; + }); + + const timestampsShape = [generate_outputs.sequences.length, generate_outputs.sequences[0].length]; + + const timestamps = new Tensor( + 'float32', + new Float32Array(timestampsShape[0] * timestampsShape[1]), + timestampsShape + ); + + // Perform dynamic time warping on each element of the batch. + for (let batch_idx = 0; batch_idx < timestampsShape[0]; ++batch_idx) { + // NOTE: Since we run only one batch at a time, we can squeeze to get the same dimensions + // as the python implementation + const matrix = batchedMatrices[batch_idx].neg().squeeze_(0); + let [text_indices, time_indices] = dynamicTimeWarping(matrix); + + let diffs = Array.from({ length: text_indices.length - 1 }, (v, i) => text_indices[i + 1] - text_indices[i]); + let jumps = mergeArrays([1], diffs).map(x => !!x); // convert to boolean + + let jump_times = []; + for (let i = 0; i < jumps.length; ++i) { + if (jumps[i]) { + jump_times.push(time_indices[i] * time_precision); + // NOTE: No point in rounding here, since we set to Float32Array later + } + } + timestamps[batch_idx].data.set(jump_times, 1) + } + + return timestamps; + } +} +////////////////////////////////////////////////// + +////////////////////////////////////////////////// +/** + * Vision Encoder-Decoder model based on OpenAI's GPT architecture for image captioning and other vision tasks + */ +export class VisionEncoderDecoderModel extends PreTrainedModel { + main_input_name = 'pixel_values'; + + /** + * Creates a new instance of the `VisionEncoderDecoderModel` class. + * @param {Object} config The configuration object specifying the hyperparameters and other model settings. + * @param {Object} session The ONNX session containing the encoder model. + * @param {any} decoder_merged_session The ONNX session containing the merged decoder model. + * @param {Object} generation_config Configuration object for the generation process. + */ + constructor(config, session, decoder_merged_session, generation_config) { + super(config, session); + this.decoder_merged_session = decoder_merged_session; + this.generation_config = generation_config; + + // Extract configs + const encoderConfig = this.config.encoder; + const decoderConfig = this.config.decoder; + + // Validate encoder + const encoderModelType = encoderConfig.model_type; + const encoderModel = + MODEL_MAPPING_NAMES_ENCODER_ONLY.get(encoderModelType) + ?? MODEL_MAPPING_NAMES_ENCODER_DECODER.get(encoderModelType); + if (!encoderModel) { + console.warn(`Model type for encoder '${encoderModelType}' not found, assuming encoder-only architecture. Please report this at https://github.com/xenova/transformers.js/issues/new/choose.`); + } + + // Validate decoder + const decoderModel = MODEL_WITH_LM_HEAD_MAPPING_NAMES.get(decoderConfig.model_type); + if (!decoderModel) { + throw new Error(`Unable to construct \`VisionEncoderDecoder\` due to unsupported decoder: "${this.config.decoder.model_type}"`); + } + + // @ts-ignore + const decoderModelClass = decoderModel[1]; + // @ts-ignore + const decoder = new decoderModelClass(decoderConfig, decoder_merged_session, generation_config); + + this.add_encoder_pkv = 'num_decoder_layers' in decoder; + if (this.add_encoder_pkv) { + // Decoder is part of an encoder-decoder model + this.num_decoder_layers = decoder.num_decoder_layers; + this.num_decoder_heads = decoder.num_decoder_heads; + this.decoder_dim_kv = decoder.decoder_dim_kv; + + this.num_encoder_layers = decoder.num_encoder_layers; + this.num_encoder_heads = decoder.num_encoder_heads; + this.encoder_dim_kv = decoder.encoder_dim_kv; + + } else { + // Decoder is a decoder-only model + this.num_layers = decoder.num_layers; + this.num_heads = decoder.num_heads; + this.dim_kv = decoder.dim_kv; + } + } +} +////////////////////////////////////////////////// + +////////////////////////////////////////////////// +// CLIP models +export class CLIPPreTrainedModel extends PreTrainedModel { } + +/** + * CLIP Text and Vision Model with a projection layers on top + * + * **Example:** Perform zero-shot image classification with a `CLIPModel`. + * + * ```javascript + * import { AutoTokenizer, AutoProcessor, CLIPModel, RawImage } from '@xenova/transformers'; + * + * // Load tokenizer, processor, and model + * let tokenizer = await AutoTokenizer.from_pretrained('Xenova/clip-vit-base-patch16'); + * let processor = await AutoProcessor.from_pretrained('Xenova/clip-vit-base-patch16'); + * let model = await CLIPModel.from_pretrained('Xenova/clip-vit-base-patch16'); + * + * // Run tokenization + * let texts = ['a photo of a car', 'a photo of a football match'] + * let text_inputs = tokenizer(texts, { padding: true, truncation: true }); + * + * // Read image and run processor + * let image = await RawImage.read('https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main/football-match.jpg'); + * let image_inputs = await processor(image); + * + * // Run model with both text and pixel inputs + * let output = await model({ ...text_inputs, ...image_inputs }); + * // { + * // logits_per_image: Tensor { + * // dims: [ 1, 2 ], + * // data: Float32Array(2) [ 18.579734802246094, 24.31830596923828 ], + * // }, + * // logits_per_text: Tensor { + * // dims: [ 2, 1 ], + * // data: Float32Array(2) [ 18.579734802246094, 24.31830596923828 ], + * // }, + * // text_embeds: Tensor { + * // dims: [ 2, 512 ], + * // data: Float32Array(1024) [ ... ], + * // }, + * // image_embeds: Tensor { + * // dims: [ 1, 512 ], + * // data: Float32Array(512) [ ... ], + * // } + * // } + * ``` + */ +export class CLIPModel extends CLIPPreTrainedModel { } + +/** + * CLIP Text Model with a projection layer on top (a linear layer on top of the pooled output) + * + * **Example:** Compute text embeddings with `CLIPTextModelWithProjection`. + * + * ```javascript + * import { AutoTokenizer, CLIPTextModelWithProjection } from '@xenova/transformers'; + * + * // Load tokenizer and text model + * const tokenizer = await AutoTokenizer.from_pretrained('Xenova/clip-vit-base-patch16'); + * const text_model = await CLIPTextModelWithProjection.from_pretrained('Xenova/clip-vit-base-patch16'); + * + * // Run tokenization + * let texts = ['a photo of a car', 'a photo of a football match']; + * let text_inputs = tokenizer(texts, { padding: true, truncation: true }); + * + * // Compute embeddings + * const { text_embeds } = await text_model(text_inputs); + * // Tensor { + * // dims: [ 2, 512 ], + * // type: 'float32', + * // data: Float32Array(1024) [ ... ], + * // size: 1024 + * // } + * ``` + */ +export class CLIPTextModelWithProjection extends CLIPPreTrainedModel { + + /** @type {PreTrainedModel.from_pretrained} */ + static async from_pretrained(pretrained_model_name_or_path, options = {}) { + // Update default model file name if not provided + options.model_file_name ??= 'text_model'; + return super.from_pretrained(pretrained_model_name_or_path, options); + } +} + +/** + * CLIP Vision Model with a projection layer on top (a linear layer on top of the pooled output) + * + * **Example:** Compute vision embeddings with `CLIPVisionModelWithProjection`. + * + * ```javascript + * import { AutoProcessor, CLIPVisionModelWithProjection, RawImage} from '@xenova/transformers'; + * + * // Load processor and vision model + * const processor = await AutoProcessor.from_pretrained('Xenova/clip-vit-base-patch16'); + * const vision_model = await CLIPVisionModelWithProjection.from_pretrained('Xenova/clip-vit-base-patch16'); + * + * // Read image and run processor + * let image = await RawImage.read('https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main/football-match.jpg'); + * let image_inputs = await processor(image); + * + * // Compute embeddings + * const { image_embeds } = await vision_model(image_inputs); + * // Tensor { + * // dims: [ 1, 512 ], + * // type: 'float32', + * // data: Float32Array(512) [ ... ], + * // size: 512 + * // } + * ``` + */ +export class CLIPVisionModelWithProjection extends CLIPPreTrainedModel { + /** @type {PreTrainedModel.from_pretrained} */ + static async from_pretrained(pretrained_model_name_or_path, options = {}) { + // Update default model file name if not provided + options.model_file_name ??= 'vision_model'; + return super.from_pretrained(pretrained_model_name_or_path, options); + } +} +////////////////////////////////////////////////// + + +////////////////////////////////////////////////// +// SigLIP models +export class SiglipPreTrainedModel extends PreTrainedModel { } + +/** + * SigLIP Text and Vision Model with a projection layers on top + * + * **Example:** Perform zero-shot image classification with a `SiglipModel`. + * + * ```javascript + * import { AutoTokenizer, AutoProcessor, SiglipModel, RawImage } from '@xenova/transformers'; + * + * // Load tokenizer, processor, and model + * const tokenizer = await AutoTokenizer.from_pretrained('Xenova/siglip-base-patch16-224'); + * const processor = await AutoProcessor.from_pretrained('Xenova/siglip-base-patch16-224'); + * const model = await SiglipModel.from_pretrained('Xenova/siglip-base-patch16-224'); + * + * // Run tokenization + * const texts = ['a photo of 2 cats', 'a photo of 2 dogs']; + * const text_inputs = tokenizer(texts, { padding: 'max_length', truncation: true }); + * + * // Read image and run processor + * const image = await RawImage.read('http://images.cocodataset.org/val2017/000000039769.jpg'); + * const image_inputs = await processor(image); + * + * // Run model with both text and pixel inputs + * const output = await model({ ...text_inputs, ...image_inputs }); + * // { + * // logits_per_image: Tensor { + * // dims: [ 1, 2 ], + * // data: Float32Array(2) [ -1.6019744873046875, -10.720091819763184 ], + * // }, + * // logits_per_text: Tensor { + * // dims: [ 2, 1 ], + * // data: Float32Array(2) [ -1.6019744873046875, -10.720091819763184 ], + * // }, + * // text_embeds: Tensor { + * // dims: [ 2, 768 ], + * // data: Float32Array(1536) [ ... ], + * // }, + * // image_embeds: Tensor { + * // dims: [ 1, 768 ], + * // data: Float32Array(768) [ ... ], + * // } + * // } + * ``` + */ +export class SiglipModel extends SiglipPreTrainedModel { } + +/** + * The text model from SigLIP without any head or projection on top. + * + * **Example:** Compute text embeddings with `SiglipTextModel`. + * + * ```javascript + * import { AutoTokenizer, SiglipTextModel } from '@xenova/transformers'; + * + * // Load tokenizer and text model + * const tokenizer = await AutoTokenizer.from_pretrained('Xenova/siglip-base-patch16-224'); + * const text_model = await SiglipTextModel.from_pretrained('Xenova/siglip-base-patch16-224'); + * + * // Run tokenization + * const texts = ['a photo of 2 cats', 'a photo of 2 dogs']; + * const text_inputs = tokenizer(texts, { padding: 'max_length', truncation: true }); + * + * // Compute embeddings + * const { pooler_output } = await text_model(text_inputs); + * // Tensor { + * // dims: [ 2, 768 ], + * // type: 'float32', + * // data: Float32Array(1536) [ ... ], + * // size: 1536 + * // } + * ``` + */ +export class SiglipTextModel extends SiglipPreTrainedModel { + + /** @type {PreTrainedModel.from_pretrained} */ + static async from_pretrained(pretrained_model_name_or_path, options = {}) { + // Update default model file name if not provided + options.model_file_name ??= 'text_model'; + return super.from_pretrained(pretrained_model_name_or_path, options); + } +} + +/** + * The vision model from SigLIP without any head or projection on top. + * + * **Example:** Compute vision embeddings with `SiglipVisionModel`. + * + * ```javascript + * import { AutoProcessor, SiglipVisionModel, RawImage} from '@xenova/transformers'; + * + * // Load processor and vision model + * const processor = await AutoProcessor.from_pretrained('Xenova/siglip-base-patch16-224'); + * const vision_model = await SiglipVisionModel.from_pretrained('Xenova/siglip-base-patch16-224'); + * + * // Read image and run processor + * const image = await RawImage.read('https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main/football-match.jpg'); + * const image_inputs = await processor(image); + * + * // Compute embeddings + * const { pooler_output } = await vision_model(image_inputs); + * // Tensor { + * // dims: [ 1, 768 ], + * // type: 'float32', + * // data: Float32Array(768) [ ... ], + * // size: 768 + * // } + * ``` + */ +export class SiglipVisionModel extends CLIPPreTrainedModel { + /** @type {PreTrainedModel.from_pretrained} */ + static async from_pretrained(pretrained_model_name_or_path, options = {}) { + // Update default model file name if not provided + options.model_file_name ??= 'vision_model'; + return super.from_pretrained(pretrained_model_name_or_path, options); + } +} +////////////////////////////////////////////////// +// ChineseCLIP models +export class ChineseCLIPPreTrainedModel extends PreTrainedModel { } + +export class ChineseCLIPModel extends ChineseCLIPPreTrainedModel { } +////////////////////////////////////////////////// + + +////////////////////////////////////////////////// +// CLIPSeg models +export class CLIPSegPreTrainedModel extends PreTrainedModel { } + +export class CLIPSegModel extends CLIPSegPreTrainedModel { } + +/** + * CLIPSeg model with a Transformer-based decoder on top for zero-shot and one-shot image segmentation. + * + * **Example:** Perform zero-shot image segmentation with a `CLIPSegForImageSegmentation` model. + * + * ```javascript + * import { AutoTokenizer, AutoProcessor, CLIPSegForImageSegmentation, RawImage } from '@xenova/transformers'; + * + * // Load tokenizer, processor, and model + * const tokenizer = await AutoTokenizer.from_pretrained('Xenova/clipseg-rd64-refined'); + * const processor = await AutoProcessor.from_pretrained('Xenova/clipseg-rd64-refined'); + * const model = await CLIPSegForImageSegmentation.from_pretrained('Xenova/clipseg-rd64-refined'); + * + * // Run tokenization + * const texts = ['a glass', 'something to fill', 'wood', 'a jar']; + * const text_inputs = tokenizer(texts, { padding: true, truncation: true }); + * + * // Read image and run processor + * const image = await RawImage.read('https://github.com/timojl/clipseg/blob/master/example_image.jpg?raw=true'); + * const image_inputs = await processor(image); + * + * // Run model with both text and pixel inputs + * const { logits } = await model({ ...text_inputs, ...image_inputs }); + * // logits: Tensor { + * // dims: [4, 352, 352], + * // type: 'float32', + * // data: Float32Array(495616) [ ... ], + * // size: 495616 + * // } + * ``` + * + * You can visualize the predictions as follows: + * ```javascript + * const preds = logits + * .unsqueeze_(1) + * .sigmoid_() + * .mul_(255) + * .round_() + * .to('uint8'); + * + * for (let i = 0; i < preds.dims[0]; ++i) { + * const img = RawImage.fromTensor(preds[i]); + * img.save(`prediction_${i}.png`); + * } + * ``` + */ +export class CLIPSegForImageSegmentation extends CLIPSegPreTrainedModel { } +////////////////////////////////////////////////// + + +////////////////////////////////////////////////// +// GPT2 models +export class GPT2PreTrainedModel extends PreTrainedModel { + /** + * Creates a new instance of the `GPT2PreTrainedModel` class. + * @param {Object} config The configuration of the model. + * @param {any} session The ONNX session containing the model weights. + * @param {GenerationConfig} generation_config The generation configuration. + */ + constructor(config, session, generation_config) { + super(config, session); + this.generation_config = generation_config; + + // config doesn't contain pad_token_id, so we assume it is the eos_token_id + this.config.pad_token_id = this.config.eos_token_id + + this.num_heads = this.config.n_head + this.num_layers = this.config.n_layer + this.dim_kv = this.config.n_embd / this.num_heads; + } +} + +export class GPT2Model extends GPT2PreTrainedModel { } + +/** + * GPT-2 language model head on top of the GPT-2 base model. This model is suitable for text generation tasks. + */ +export class GPT2LMHeadModel extends GPT2PreTrainedModel { } +// export class GPT2ForSequenceClassification extends GPT2PreTrainedModel { +// TODO +// } +////////////////////////////////////////////////// + +////////////////////////////////////////////////// +// GPTNeo models +export class GPTNeoPreTrainedModel extends PreTrainedModel { + /** + * Creates a new instance of the `GPTNeoPreTrainedModel` class. + * @param {Object} config The configuration of the model. + * @param {any} session The ONNX session containing the model weights. + * @param {GenerationConfig} generation_config The generation configuration. + */ + constructor(config, session, generation_config) { + super(config, session); + this.generation_config = generation_config; + + // config doesn't contain pad_token_id, so we assume it is the eos_token_id + this.config.pad_token_id = this.config.eos_token_id + + this.num_heads = this.config.num_heads; + this.num_layers = this.config.num_layers; + this.dim_kv = this.config.hidden_size / this.num_heads; + } +} +export class GPTNeoModel extends GPTNeoPreTrainedModel { } + +export class GPTNeoForCausalLM extends GPTNeoPreTrainedModel { } +////////////////////////////////////////////////// + +////////////////////////////////////////////////// +// GPTNeoX models +export class GPTNeoXPreTrainedModel extends PreTrainedModel { + /** + * Creates a new instance of the `GPTNeoXPreTrainedModel` class. + * @param {Object} config The configuration of the model. + * @param {any} session The ONNX session containing the model weights. + * @param {GenerationConfig} generation_config The generation configuration. + */ + constructor(config, session, generation_config) { + super(config, session); + this.generation_config = generation_config; + + // config doesn't contain pad_token_id, so we assume it is the eos_token_id + this.config.pad_token_id = this.config.eos_token_id + + this.num_heads = this.config.num_attention_heads; + this.num_layers = this.config.num_hidden_layers; + this.dim_kv = this.config.hidden_size / this.num_heads; + } +} +export class GPTNeoXModel extends GPTNeoXPreTrainedModel { } + +export class GPTNeoXForCausalLM extends GPTNeoXPreTrainedModel { } +////////////////////////////////////////////////// + + +////////////////////////////////////////////////// +// GPT-J models +export class GPTJPreTrainedModel extends PreTrainedModel { + /** + * Creates a new instance of the `GPTJPreTrainedModel` class. + * @param {Object} config The configuration of the model. + * @param {any} session The ONNX session containing the model weights. + * @param {GenerationConfig} generation_config The generation configuration. + */ + constructor(config, session, generation_config) { + super(config, session); + this.generation_config = generation_config; + + // config doesn't contain pad_token_id, so we assume it is the eos_token_id + this.config.pad_token_id = this.config.eos_token_id + + this.num_heads = this.config.n_head + this.num_layers = this.config.n_layer + this.dim_kv = this.config.n_embd / this.num_heads; + } +} + +export class GPTJModel extends GPTJPreTrainedModel { } + +export class GPTJForCausalLM extends GPTJPreTrainedModel { } +////////////////////////////////////////////////// + + +////////////////////////////////////////////////// +// GPTBigCode models +export class GPTBigCodePreTrainedModel extends PreTrainedModel { + /** + * Creates a new instance of the `GPTBigCodePreTrainedModel` class. + * @param {Object} config The configuration of the model. + * @param {any} session The ONNX session containing the model weights. + * @param {GenerationConfig} generation_config The generation configuration. + */ + constructor(config, session, generation_config) { + super(config, session); + this.generation_config = generation_config; + + // config doesn't contain pad_token_id, so we assume it is the eos_token_id + this.config.pad_token_id = this.config.eos_token_id + + this.num_heads = this.config.n_head + this.num_layers = this.config.n_layer + this.dim_kv = this.config.n_embd / this.num_heads; + } +} + +export class GPTBigCodeModel extends GPTBigCodePreTrainedModel { } + +export class GPTBigCodeForCausalLM extends GPTBigCodePreTrainedModel { } +////////////////////////////////////////////////// + +////////////////////////////////////////////////// +// CodeGen models +export class CodeGenPreTrainedModel extends PreTrainedModel { + /** + * Creates a new instance of the `CodeGenPreTrainedModel` class. + * @param {Object} config The model configuration object. + * @param {Object} session The ONNX session object. + * @param {GenerationConfig} generation_config The generation configuration. + */ + constructor(config, session, generation_config) { + super(config, session); + this.generation_config = generation_config; + + // config doesn't contain pad_token_id, so we assume it is the eos_token_id + this.config.pad_token_id = this.config.eos_token_id + + this.num_heads = this.config.n_head + this.num_layers = this.config.n_layer + this.dim_kv = this.config.n_embd / this.num_heads; + } +} +/** + * CodeGenModel is a class representing a code generation model without a language model head. + */ +export class CodeGenModel extends CodeGenPreTrainedModel { } + +/** + * CodeGenForCausalLM is a class that represents a code generation model based on the GPT-2 architecture. It extends the `CodeGenPreTrainedModel` class. + */ +export class CodeGenForCausalLM extends CodeGenPreTrainedModel { } +////////////////////////////////////////////////// + + +////////////////////////////////////////////////// +// LLama models + +/** + * The bare LLama Model outputting raw hidden-states without any specific head on top. + */ +export class LlamaPreTrainedModel extends PreTrainedModel { + /** + * Creates a new instance of the `LlamaPreTrainedModel` class. + * @param {Object} config The model configuration object. + * @param {Object} session The ONNX session object. + * @param {GenerationConfig} generation_config The generation configuration. + */ + constructor(config, session, generation_config) { + super(config, session); + this.generation_config = generation_config; + + // config doesn't contain pad_token_id, so we assume it is the eos_token_id + this.config.pad_token_id = this.config.eos_token_id + + this.num_heads = this.config.num_key_value_heads ?? this.config.num_attention_heads + this.num_layers = this.config.num_hidden_layers + this.dim_kv = this.config.hidden_size / this.config.num_attention_heads + } +} +/** + * The bare LLaMA Model outputting raw hidden-states without any specific head on top. + */ +export class LlamaModel extends LlamaPreTrainedModel { } + +export class LlamaForCausalLM extends LlamaPreTrainedModel { } +////////////////////////////////////////////////// + +////////////////////////////////////////////////// +// Phi models + +export class PhiPreTrainedModel extends PreTrainedModel { + /** + * Creates a new instance of the `PhiPreTrainedModel` class. + * @param {Object} config The model configuration object. + * @param {Object} session The ONNX session object. + * @param {GenerationConfig} generation_config The generation configuration. + */ + constructor(config, session, generation_config) { + super(config, session); + this.generation_config = generation_config; + + // config doesn't contain pad_token_id, so we assume it is the eos_token_id + this.config.pad_token_id = this.config.eos_token_id; + + this.num_heads = this.config.num_attention_heads; + this.num_layers = this.config.num_hidden_layers; + this.dim_kv = this.config.hidden_size / this.num_heads; + } +} +/** + * The bare Phi Model outputting raw hidden-states without any specific head on top. + */ +export class PhiModel extends PhiPreTrainedModel { } + +export class PhiForCausalLM extends PhiPreTrainedModel { } +////////////////////////////////////////////////// + + +////////////////////////////////////////////////// +// Bloom models +/** + * The Bloom Model transformer with a language modeling head on top (linear layer with weights tied to the input embeddings). + */ +export class BloomPreTrainedModel extends PreTrainedModel { + /** + * Creates a new instance of the `BloomPreTrainedModel` class. + * @param {Object} config The configuration of the model. + * @param {any} session The ONNX session containing the model weights. + * @param {GenerationConfig} generation_config The generation configuration. + */ + constructor(config, session, generation_config) { + super(config, session); + this.generation_config = generation_config; + + // config doesn't contain pad_token_id, so we assume it is the eos_token_id + this.config.pad_token_id = this.config.eos_token_id + + this.num_heads = this.config.n_head + this.num_layers = this.config.n_layer + this.dim_kv = this.config.hidden_size / this.num_heads; + } +} + +/** + * The bare Bloom Model transformer outputting raw hidden-states without any specific head on top. + */ +export class BloomModel extends BloomPreTrainedModel { } + +/** + * The Bloom Model transformer with a language modeling head on top (linear layer with weights tied to the input embeddings). + */ +export class BloomForCausalLM extends BloomPreTrainedModel { } +////////////////////////////////////////////////// + +////////////////////////////////////////////////// +// MPT models +export class MptPreTrainedModel extends PreTrainedModel { + /** + * Creates a new instance of the `MptPreTrainedModel` class. + * @param {Object} config The model configuration object. + * @param {Object} session The ONNX session object. + * @param {GenerationConfig} generation_config The generation configuration. + */ + constructor(config, session, generation_config) { + super(config, session); + this.generation_config = generation_config; + + // config doesn't contain pad_token_id, so we assume it is the eos_token_id + this.config.pad_token_id = this.config.eos_token_id + + this.num_heads = this.config.n_heads + this.num_layers = this.config.n_layers + this.dim_kv = this.config.d_model / this.num_heads; + } +} + +/** + * The bare Mpt Model transformer outputting raw hidden-states without any specific head on top. + */ +export class MptModel extends MptPreTrainedModel { } + +/** + * The MPT Model transformer with a language modeling head on top (linear layer with weights tied to the input embeddings). + */ +export class MptForCausalLM extends MptPreTrainedModel { } +////////////////////////////////////////////////// + + +////////////////////////////////////////////////// +// OPT models +export class OPTPreTrainedModel extends PreTrainedModel { + /** + * Creates a new instance of the `OPTPreTrainedModel` class. + * @param {Object} config The model configuration object. + * @param {Object} session The ONNX session object. + * @param {GenerationConfig} generation_config The generation configuration. + */ + constructor(config, session, generation_config) { + super(config, session); + this.generation_config = generation_config; + + // config doesn't contain pad_token_id, so we assume it is the eos_token_id + this.config.pad_token_id = this.config.eos_token_id + + this.num_heads = this.config.num_attention_heads; + this.num_layers = this.config.num_hidden_layers; + this.dim_kv = this.config.hidden_size / this.num_heads; + } +} + +/** + * The bare OPT Model outputting raw hidden-states without any specific head on top. + */ +export class OPTModel extends OPTPreTrainedModel { } + +/** + * The OPT Model transformer with a language modeling head on top (linear layer with weights tied to the input embeddings). + */ +export class OPTForCausalLM extends OPTPreTrainedModel { } +////////////////////////////////////////////////// + +////////////////////////////////////////////////// +export class ViTPreTrainedModel extends PreTrainedModel { } +export class ViTModel extends ViTPreTrainedModel { } +export class ViTForImageClassification extends ViTPreTrainedModel { + /** + * @param {any} model_inputs + */ + async _call(model_inputs) { + return new SequenceClassifierOutput(await super._call(model_inputs)); + } +} +////////////////////////////////////////////////// + +////////////////////////////////////////////////// +export class VitMattePreTrainedModel extends PreTrainedModel { } + +/** + * ViTMatte framework leveraging any vision backbone e.g. for ADE20k, CityScapes. + * + * **Example:** Perform image matting with a `VitMatteForImageMatting` model. + * ```javascript + * import { AutoProcessor, VitMatteForImageMatting, RawImage } from '@xenova/transformers'; + * + * // Load processor and model + * const processor = await AutoProcessor.from_pretrained('Xenova/vitmatte-small-distinctions-646'); + * const model = await VitMatteForImageMatting.from_pretrained('Xenova/vitmatte-small-distinctions-646'); + * + * // Load image and trimap + * const image = await RawImage.fromURL('https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main/vitmatte_image.png'); + * const trimap = await RawImage.fromURL('https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main/vitmatte_trimap.png'); + * + * // Prepare image + trimap for the model + * const inputs = await processor(image, trimap); + * + * // Predict alpha matte + * const { alphas } = await model(inputs); + * // Tensor { + * // dims: [ 1, 1, 640, 960 ], + * // type: 'float32', + * // size: 614400, + * // data: Float32Array(614400) [ 0.9894027709960938, 0.9970508813858032, ... ] + * // } + * ``` + * + * You can visualize the alpha matte as follows: + * ```javascript + * import { Tensor, cat } from '@xenova/transformers'; + * + * // Visualize predicted alpha matte + * const imageTensor = new Tensor( + * 'uint8', + * new Uint8Array(image.data), + * [image.height, image.width, image.channels] + * ).transpose(2, 0, 1); + * + * // Convert float (0-1) alpha matte to uint8 (0-255) + * const alphaChannel = alphas + * .squeeze(0) + * .mul_(255) + * .clamp_(0, 255) + * .round_() + * .to('uint8'); + * + * // Concatenate original image with predicted alpha + * const imageData = cat([imageTensor, alphaChannel], 0); + * + * // Save output image + * const outputImage = RawImage.fromTensor(imageData); + * outputImage.save('output.png'); + * ``` + */ +export class VitMatteForImageMatting extends VitMattePreTrainedModel { + /** + * @param {any} model_inputs + */ + async _call(model_inputs) { + return new ImageMattingOutput(await super._call(model_inputs)); + } +} +////////////////////////////////////////////////// + +////////////////////////////////////////////////// +export class MobileViTPreTrainedModel extends PreTrainedModel { } +export class MobileViTModel extends MobileViTPreTrainedModel { } +export class MobileViTForImageClassification extends MobileViTPreTrainedModel { + /** + * @param {any} model_inputs + */ + async _call(model_inputs) { + return new SequenceClassifierOutput(await super._call(model_inputs)); + } +} +// TODO: MobileViTForSemanticSegmentation + +////////////////////////////////////////////////// + +////////////////////////////////////////////////// +export class OwlViTPreTrainedModel extends PreTrainedModel { } +export class OwlViTModel extends OwlViTPreTrainedModel { } +export class OwlViTForObjectDetection extends OwlViTPreTrainedModel { } +////////////////////////////////////////////////// + +////////////////////////////////////////////////// +// Beit Models +export class BeitPreTrainedModel extends PreTrainedModel { } +export class BeitModel extends BeitPreTrainedModel { } +export class BeitForImageClassification extends BeitPreTrainedModel { + /** + * @param {any} model_inputs + */ + async _call(model_inputs) { + return new SequenceClassifierOutput(await super._call(model_inputs)); + } +} +////////////////////////////////////////////////// + + +////////////////////////////////////////////////// +export class DetrPreTrainedModel extends PreTrainedModel { } +export class DetrModel extends DetrPreTrainedModel { } +export class DetrForObjectDetection extends DetrPreTrainedModel { + /** + * @param {any} model_inputs + */ + async _call(model_inputs) { + return new DetrObjectDetectionOutput(await super._call(model_inputs)); + } +} + +export class DetrForSegmentation extends DetrPreTrainedModel { + /** + * Runs the model with the provided inputs + * @param {Object} model_inputs Model inputs + * @returns {Promise} Object containing segmentation outputs + */ + async _call(model_inputs) { + return new DetrSegmentationOutput(await super._call(model_inputs)); + } +} + +export class DetrObjectDetectionOutput extends ModelOutput { + /** + * @param {Object} output The output of the model. + * @param {Tensor} output.logits Classification logits (including no-object) for all queries. + * @param {Tensor} output.pred_boxes Normalized boxes coordinates for all queries, represented as (center_x, center_y, width, height). + * These values are normalized in [0, 1], relative to the size of each individual image in the batch (disregarding possible padding). + */ + constructor({ logits, pred_boxes }) { + super(); + this.logits = logits; + this.pred_boxes = pred_boxes; + } +} + +export class DetrSegmentationOutput extends ModelOutput { + /** + * @param {Object} output The output of the model. + * @param {Tensor} output.logits The output logits of the model. + * @param {Tensor} output.pred_boxes Predicted boxes. + * @param {Tensor} output.pred_masks Predicted masks. + */ + constructor({ logits, pred_boxes, pred_masks }) { + super(); + this.logits = logits; + this.pred_boxes = pred_boxes; + this.pred_masks = pred_masks; + } +} +////////////////////////////////////////////////// + +////////////////////////////////////////////////// +export class TableTransformerPreTrainedModel extends PreTrainedModel { } + +/** + * The bare Table Transformer Model (consisting of a backbone and encoder-decoder Transformer) + * outputting raw hidden-states without any specific head on top. + */ +export class TableTransformerModel extends TableTransformerPreTrainedModel { } + +/** + * Table Transformer Model (consisting of a backbone and encoder-decoder Transformer) + * with object detection heads on top, for tasks such as COCO detection. + */ +export class TableTransformerForObjectDetection extends TableTransformerPreTrainedModel { + /** + * @param {any} model_inputs + */ + async _call(model_inputs) { + return new TableTransformerObjectDetectionOutput(await super._call(model_inputs)); + } +} +export class TableTransformerObjectDetectionOutput extends DetrObjectDetectionOutput { } +////////////////////////////////////////////////// + + +////////////////////////////////////////////////// +export class DeiTPreTrainedModel extends PreTrainedModel { } +export class DeiTModel extends DeiTPreTrainedModel { } +export class DeiTForImageClassification extends DeiTPreTrainedModel { + /** + * @param {any} model_inputs + */ + async _call(model_inputs) { + return new SequenceClassifierOutput(await super._call(model_inputs)); + } +} +////////////////////////////////////////////////// + + +////////////////////////////////////////////////// +/** + * An abstract class to handle weights initialization and a simple interface for downloading and loading pretrained models. + */ +export class ResNetPreTrainedModel extends PreTrainedModel { } + +/** + * The bare ResNet model outputting raw features without any specific head on top. + */ +export class ResNetModel extends ResNetPreTrainedModel { } + +/** + * ResNet Model with an image classification head on top (a linear layer on top of the pooled features), e.g. for ImageNet. + */ +export class ResNetForImageClassification extends ResNetPreTrainedModel { + /** + * @param {any} model_inputs + */ + async _call(model_inputs) { + return new SequenceClassifierOutput(await super._call(model_inputs)); + } +} +////////////////////////////////////////////////// + + +////////////////////////////////////////////////// +export class SwinPreTrainedModel extends PreTrainedModel { } +export class SwinModel extends SwinPreTrainedModel { } +export class SwinForImageClassification extends SwinPreTrainedModel { + /** + * @param {any} model_inputs + */ + async _call(model_inputs) { + return new SequenceClassifierOutput(await super._call(model_inputs)); + } +} +////////////////////////////////////////////////// + +////////////////////////////////////////////////// +export class Swin2SRPreTrainedModel extends PreTrainedModel { } + +/** + * The bare Swin2SR Model transformer outputting raw hidden-states without any specific head on top. + */ +export class Swin2SRModel extends Swin2SRPreTrainedModel { } + +/** + * Swin2SR Model transformer with an upsampler head on top for image super resolution and restoration. + * + * **Example:** Super-resolution w/ `Xenova/swin2SR-classical-sr-x2-64`. + * + * ```javascript + * import { AutoProcessor, Swin2SRForImageSuperResolution, RawImage } from '@xenova/transformers'; + * + * // Load processor and model + * const model_id = 'Xenova/swin2SR-classical-sr-x2-64'; + * const processor = await AutoProcessor.from_pretrained(model_id); + * const model = await Swin2SRForImageSuperResolution.from_pretrained(model_id); + * + * // Prepare model inputs + * const url = 'https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main/butterfly.jpg'; + * const image = await RawImage.fromURL(url); + * const inputs = await processor(image); + * + * // Run model + * const outputs = await model(inputs); + * + * // Convert Tensor to RawImage + * const output = outputs.reconstruction.squeeze().clamp_(0, 1).mul_(255).round_().to('uint8'); + * const outputImage = RawImage.fromTensor(output); + * // RawImage { + * // data: Uint8Array(786432) [ 41, 31, 24, ... ], + * // width: 512, + * // height: 512, + * // channels: 3 + * // } + * ``` + */ +export class Swin2SRForImageSuperResolution extends Swin2SRPreTrainedModel { } +////////////////////////////////////////////////// + +////////////////////////////////////////////////// +export class DPTPreTrainedModel extends PreTrainedModel { } + +/** + * The bare DPT Model transformer outputting raw hidden-states without any specific head on top. + */ +export class DPTModel extends DPTPreTrainedModel { } + +/** + * DPT Model with a depth estimation head on top (consisting of 3 convolutional layers) e.g. for KITTI, NYUv2. + * + * **Example:** Depth estimation w/ `Xenova/dpt-hybrid-midas`. + * ```javascript + * import { DPTForDepthEstimation, AutoProcessor, RawImage, interpolate, max } from '@xenova/transformers'; + * + * // Load model and processor + * const model_id = 'Xenova/dpt-hybrid-midas'; + * const model = await DPTForDepthEstimation.from_pretrained(model_id); + * const processor = await AutoProcessor.from_pretrained(model_id); + * + * // Load image from URL + * const url = 'http://images.cocodataset.org/val2017/000000039769.jpg'; + * const image = await RawImage.fromURL(url); + * + * // Prepare image for the model + * const inputs = await processor(image); + * + * // Run model + * const { predicted_depth } = await model(inputs); + * + * // Interpolate to original size + * const prediction = interpolate(predicted_depth, image.size.reverse(), 'bilinear', false); + * + * // Visualize the prediction + * const formatted = prediction.mul_(255 / max(prediction.data)[0]).to('uint8'); + * const depth = RawImage.fromTensor(formatted); + * // RawImage { + * // data: Uint8Array(307200) [ 85, 85, 84, ... ], + * // width: 640, + * // height: 480, + * // channels: 1 + * // } + * ``` + */ +export class DPTForDepthEstimation extends DPTPreTrainedModel { } +////////////////////////////////////////////////// + +////////////////////////////////////////////////// +export class GLPNPreTrainedModel extends PreTrainedModel { } + +/** + * The bare GLPN encoder (Mix-Transformer) outputting raw hidden-states without any specific head on top. + */ +export class GLPNModel extends GLPNPreTrainedModel { } + +/** + * GLPN Model transformer with a lightweight depth estimation head on top e.g. for KITTI, NYUv2. + * + * **Example:** Depth estimation w/ `Xenova/glpn-kitti`. + * ```javascript + * import { GLPNForDepthEstimation, AutoProcessor, RawImage, interpolate, max } from '@xenova/transformers'; + * + * // Load model and processor + * const model_id = 'Xenova/glpn-kitti'; + * const model = await GLPNForDepthEstimation.from_pretrained(model_id); + * const processor = await AutoProcessor.from_pretrained(model_id); + * + * // Load image from URL + * const url = 'http://images.cocodataset.org/val2017/000000039769.jpg'; + * const image = await RawImage.fromURL(url); + * + * // Prepare image for the model + * const inputs = await processor(image); + * + * // Run model + * const { predicted_depth } = await model(inputs); + * + * // Interpolate to original size + * const prediction = interpolate(predicted_depth, image.size.reverse(), 'bilinear', false); + * + * // Visualize the prediction + * const formatted = prediction.mul_(255 / max(prediction.data)[0]).to('uint8'); + * const depth = RawImage.fromTensor(formatted); + * // RawImage { + * // data: Uint8Array(307200) [ 207, 169, 154, ... ], + * // width: 640, + * // height: 480, + * // channels: 1 + * // } + * ``` + */ +export class GLPNForDepthEstimation extends GLPNPreTrainedModel { } +////////////////////////////////////////////////// + +////////////////////////////////////////////////// +export class DonutSwinPreTrainedModel extends PreTrainedModel { } + +/** + * The bare Donut Swin Model transformer outputting raw hidden-states without any specific head on top. + * + * **Example:** Step-by-step Document Parsing. + * + * ```javascript + * import { AutoProcessor, AutoTokenizer, AutoModelForVision2Seq, RawImage } from '@xenova/transformers'; + * + * // Choose model to use + * const model_id = 'Xenova/donut-base-finetuned-cord-v2'; + * + * // Prepare image inputs + * const processor = await AutoProcessor.from_pretrained(model_id); + * const url = 'https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main/receipt.png'; + * const image = await RawImage.read(url); + * const image_inputs = await processor(image); + * + * // Prepare decoder inputs + * const tokenizer = await AutoTokenizer.from_pretrained(model_id); + * const task_prompt = ''; + * const decoder_input_ids = tokenizer(task_prompt, { + * add_special_tokens: false, + * }).input_ids; + * + * // Create the model + * const model = await AutoModelForVision2Seq.from_pretrained(model_id); + * + * // Run inference + * const output = await model.generate(image_inputs.pixel_values, { + * decoder_input_ids, + * max_length: model.config.decoder.max_position_embeddings, + * }); + * + * // Decode output + * const decoded = tokenizer.batch_decode(output)[0]; + * // CINNAMON SUGAR 17,000 1 x 17,000 17,000 17,000 20,000 3,000 + * ``` + * + * **Example:** Step-by-step Document Visual Question Answering (DocVQA) + * + * ```javascript + * import { AutoProcessor, AutoTokenizer, AutoModelForVision2Seq, RawImage } from '@xenova/transformers'; + * + * // Choose model to use + * const model_id = 'Xenova/donut-base-finetuned-docvqa'; + * + * // Prepare image inputs + * const processor = await AutoProcessor.from_pretrained(model_id); + * const url = 'https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main/invoice.png'; + * const image = await RawImage.read(url); + * const image_inputs = await processor(image); + * + * // Prepare decoder inputs + * const tokenizer = await AutoTokenizer.from_pretrained(model_id); + * const question = 'What is the invoice number?'; + * const task_prompt = `${question}`; + * const decoder_input_ids = tokenizer(task_prompt, { + * add_special_tokens: false, + * }).input_ids; + * + * // Create the model + * const model = await AutoModelForVision2Seq.from_pretrained(model_id); + * + * // Run inference + * const output = await model.generate(image_inputs.pixel_values, { + * decoder_input_ids, + * max_length: model.config.decoder.max_position_embeddings, + * }); + * + * // Decode output + * const decoded = tokenizer.batch_decode(output)[0]; + * // What is the invoice number? us-001 + * ``` + */ +export class DonutSwinModel extends DonutSwinPreTrainedModel { } +////////////////////////////////////////////////// + + +////////////////////////////////////////////////// +export class ConvNextPreTrainedModel extends PreTrainedModel { } + +/** + * The bare ConvNext model outputting raw features without any specific head on top. + */ +export class ConvNextModel extends ConvNextPreTrainedModel { } + +/** + * ConvNext Model with an image classification head on top (a linear layer on top of the pooled features), e.g. for ImageNet. + */ +export class ConvNextForImageClassification extends ConvNextPreTrainedModel { + /** + * @param {any} model_inputs + */ + async _call(model_inputs) { + return new SequenceClassifierOutput(await super._call(model_inputs)); + } +} +////////////////////////////////////////////////// + + +////////////////////////////////////////////////// +export class ConvNextV2PreTrainedModel extends PreTrainedModel { } + +/** + * The bare ConvNextV2 model outputting raw features without any specific head on top. + */ +export class ConvNextV2Model extends ConvNextV2PreTrainedModel { } + +/** + * ConvNextV2 Model with an image classification head on top (a linear layer on top of the pooled features), e.g. for ImageNet. + */ +export class ConvNextV2ForImageClassification extends ConvNextV2PreTrainedModel { + /** + * @param {any} model_inputs + */ + async _call(model_inputs) { + return new SequenceClassifierOutput(await super._call(model_inputs)); + } +} +////////////////////////////////////////////////// + +////////////////////////////////////////////////// +export class Dinov2PreTrainedModel extends PreTrainedModel { } + +/** + * The bare DINOv2 Model transformer outputting raw hidden-states without any specific head on top. + */ +export class Dinov2Model extends Dinov2PreTrainedModel { } + +/** + * Dinov2 Model transformer with an image classification head on top (a linear layer on top of the final hidden state of the [CLS] token) e.g. for ImageNet. + */ +export class Dinov2ForImageClassification extends Dinov2PreTrainedModel { + /** + * @param {any} model_inputs + */ + async _call(model_inputs) { + return new SequenceClassifierOutput(await super._call(model_inputs)); + } +} +////////////////////////////////////////////////// + + +////////////////////////////////////////////////// +export class YolosPreTrainedModel extends PreTrainedModel { } +export class YolosModel extends YolosPreTrainedModel { } +export class YolosForObjectDetection extends YolosPreTrainedModel { + /** + * @param {any} model_inputs + */ + async _call(model_inputs) { + return new YolosObjectDetectionOutput(await super._call(model_inputs)); + } +} + +export class YolosObjectDetectionOutput extends ModelOutput { + /** + * @param {Object} output The output of the model. + * @param {Tensor} output.logits Classification logits (including no-object) for all queries. + * @param {Tensor} output.pred_boxes Normalized boxes coordinates for all queries, represented as (center_x, center_y, width, height). + * These values are normalized in [0, 1], relative to the size of each individual image in the batch (disregarding possible padding). + */ + constructor({ logits, pred_boxes }) { + super(); + this.logits = logits; + this.pred_boxes = pred_boxes; + } +} +////////////////////////////////////////////////// + + +////////////////////////////////////////////////// +export class SamPreTrainedModel extends PreTrainedModel { } + +/** + * Segment Anything Model (SAM) for generating segmentation masks, given an input image + * and optional 2D location and bounding boxes. + * + * **Example:** Perform mask generation w/ `Xenova/sam-vit-base`. + * ```javascript + * import { SamModel, AutoProcessor, RawImage } from '@xenova/transformers'; + * + * const model = await SamModel.from_pretrained('Xenova/sam-vit-base'); + * const processor = await AutoProcessor.from_pretrained('Xenova/sam-vit-base'); + * + * const img_url = 'https://huggingface.co/ybelkada/segment-anything/resolve/main/assets/car.png'; + * const raw_image = await RawImage.read(img_url); + * const input_points = [[[450, 600]]] // 2D localization of a window + * + * const inputs = await processor(raw_image, input_points); + * const outputs = await model(inputs); + * + * const masks = await processor.post_process_masks(outputs.pred_masks, inputs.original_sizes, inputs.reshaped_input_sizes); + * // [ + * // Tensor { + * // dims: [ 1, 3, 1764, 2646 ], + * // type: 'bool', + * // data: Uint8Array(14002632) [ ... ], + * // size: 14002632 + * // } + * // ] + * const scores = outputs.iou_scores; + * // Tensor { + * // dims: [ 1, 1, 3 ], + * // type: 'float32', + * // data: Float32Array(3) [ + * // 0.8892380595207214, + * // 0.9311248064041138, + * // 0.983696699142456 + * // ], + * // size: 3 + * // } + * ``` + */ +export class SamModel extends SamPreTrainedModel { + /** + * Creates a new instance of the `SamModel` class. + * @param {Object} config The configuration object specifying the hyperparameters and other model settings. + * @param {Object} vision_encoder The ONNX session containing the vision encoder model. + * @param {any} prompt_encoder_mask_decoder The ONNX session containing the prompt encoder and mask decoder model. + */ + constructor(config, vision_encoder, prompt_encoder_mask_decoder) { + super(config, vision_encoder); + this.prompt_encoder_mask_decoder = prompt_encoder_mask_decoder; + } + + /** + * Compute image embeddings and positional image embeddings, given the pixel values of an image. + * @param {Object} model_inputs Object containing the model inputs. + * @param {Tensor} model_inputs.pixel_values Pixel values obtained using a `SamProcessor`. + * @returns {Promise<{ image_embeddings: Tensor, image_positional_embeddings: Tensor }>} The image embeddings and positional image embeddings. + */ + async get_image_embeddings({ pixel_values }) { + // in: + // - pixel_values: tensor.float32[batch_size,3,1024,1024] + // + // out: + // - image_embeddings: tensor.float32[batch_size,256,64,64] + // - image_positional_embeddings: tensor.float32[batch_size,256,64,64] + return await encoderForward(this, { pixel_values }) + } + + /** + * @typedef {Object} SamModelInputs Object containing the model inputs. + * @property {Tensor} pixel_values Pixel values as a Tensor with shape `(batch_size, num_channels, height, width)`. + * These can be obtained using a `SamProcessor`. + * @property {Tensor} input_points Input 2D spatial points with shape `(batch_size, num_points, 2)`. + * This is used by the prompt encoder to encode the prompt. + * @property {Tensor} [input_labels] Input labels for the points, as a Tensor of shape `(batch_size, point_batch_size, num_points)`. + * This is used by the prompt encoder to encode the prompt. There are 4 types of labels: + * - `1`: the point is a point that contains the object of interest + * - `0`: the point is a point that does not contain the object of interest + * - `-1`: the point corresponds to the background + * - `-10`: the point is a padding point, thus should be ignored by the prompt encoder + * @property {Tensor} [image_embeddings] Image embeddings used by the mask decoder. + * @property {Tensor} [image_positional_embeddings] Image positional embeddings used by the mask decoder. + */ + + /** + * @param {SamModelInputs} model_inputs Object containing the model inputs. + * @returns {Promise} The output of the model. + */ + async forward(model_inputs) { + if (!model_inputs.image_embeddings || !model_inputs.image_positional_embeddings) { + // Compute the image embeddings if they are missing + model_inputs = { + ...model_inputs, + ...(await this.get_image_embeddings(model_inputs)) + } + } + + if (!model_inputs.input_labels) { + // Set default input labels if they are missing + const shape = model_inputs.input_points.dims.slice(0, -1); + const numElements = shape.reduce((a, b) => a * b, 1); + model_inputs.input_labels = new Tensor( + 'int64', + new BigInt64Array(numElements).fill(1n), + shape + ); + } + + // Returns: + // - iou_scores: tensor.float32[batch_size,point_batch_size,3] + // - pred_masks: tensor.float32[batch_size,point_batch_size,3,256,256] + return await sessionRun(this.prompt_encoder_mask_decoder, { + input_points: model_inputs.input_points, + input_labels: model_inputs.input_labels, + image_embeddings: model_inputs.image_embeddings, + image_positional_embeddings: model_inputs.image_positional_embeddings, + }); + } + + /** + * Runs the model with the provided inputs + * @param {Object} model_inputs Model inputs + * @returns {Promise} Object containing segmentation outputs + */ + async _call(model_inputs) { + return new SamImageSegmentationOutput(await super._call(model_inputs)); + } +} + + +/** + * Base class for Segment-Anything model's output. + */ +export class SamImageSegmentationOutput extends ModelOutput { + /** + * @param {Object} output The output of the model. + * @param {Tensor} output.iou_scores The output logits of the model. + * @param {Tensor} output.pred_masks Predicted boxes. + */ + constructor({ iou_scores, pred_masks }) { + super(); + this.iou_scores = iou_scores; + this.pred_masks = pred_masks; + } +} +////////////////////////////////////////////////// + + +////////////////////////////////////////////////// +// MarianMT models +export class MarianPreTrainedModel extends PreTrainedModel { }; + +export class MarianModel extends MarianPreTrainedModel { } + +export class MarianMTModel extends MarianPreTrainedModel { + + /** + * Creates a new instance of the `MarianMTModel` class. + * @param {Object} config The model configuration object. + * @param {Object} session The ONNX session object. + * @param {any} decoder_merged_session + * @param {any} generation_config + */ + constructor(config, session, decoder_merged_session, generation_config) { + super(config, session); + this.decoder_merged_session = decoder_merged_session; + this.generation_config = generation_config; + + this.num_decoder_layers = this.config.decoder_layers; + this.num_decoder_heads = this.config.decoder_attention_heads; + this.decoder_dim_kv = this.config.d_model / this.num_decoder_heads; + + this.num_encoder_layers = this.config.encoder_layers; + this.num_encoder_heads = this.config.encoder_attention_heads; + this.encoder_dim_kv = this.config.d_model / this.num_encoder_heads; + } +} +////////////////////////////////////////////////// + +////////////////////////////////////////////////// +// M2M100 models +export class M2M100PreTrainedModel extends PreTrainedModel { }; + +export class M2M100Model extends M2M100PreTrainedModel { } + +export class M2M100ForConditionalGeneration extends M2M100PreTrainedModel { + + /** + * Creates a new instance of the `M2M100ForConditionalGeneration` class. + * @param {Object} config The model configuration object. + * @param {Object} session The ONNX session object. + * @param {any} decoder_merged_session + * @param {any} generation_config + */ + constructor(config, session, decoder_merged_session, generation_config) { + super(config, session); + this.decoder_merged_session = decoder_merged_session; + this.generation_config = generation_config; + + this.num_decoder_layers = this.config.decoder_layers; + this.num_decoder_heads = this.config.decoder_attention_heads; + this.decoder_dim_kv = this.config.d_model / this.num_decoder_heads; + + this.num_encoder_layers = this.config.encoder_layers; + this.num_encoder_heads = this.config.encoder_attention_heads; + this.encoder_dim_kv = this.config.d_model / this.num_encoder_heads; + } + +} +////////////////////////////////////////////////// + +////////////////////////////////////////////////// +// Wav2Vec2 models +export class Wav2Vec2PreTrainedModel extends PreTrainedModel { }; + +/** + * The bare Wav2Vec2 Model transformer outputting raw hidden-states without any specific head on top. + * + * **Example:** Load and run a `Wav2Vec2Model` for feature extraction. + * + * ```javascript + * import { AutoProcessor, AutoModel, read_audio } from '@xenova/transformers'; + * + * // Read and preprocess audio + * const processor = await AutoProcessor.from_pretrained('Xenova/mms-300m'); + * const audio = await read_audio('https://huggingface.co/datasets/Narsil/asr_dummy/resolve/main/mlk.flac', 16000); + * const inputs = await processor(audio); + * + * // Run model with inputs + * const model = await AutoModel.from_pretrained('Xenova/mms-300m'); + * const output = await model(inputs); + * // { + * // last_hidden_state: Tensor { + * // dims: [ 1, 1144, 1024 ], + * // type: 'float32', + * // data: Float32Array(1171456) [ ... ], + * // size: 1171456 + * // } + * // } + * ``` + */ +export class Wav2Vec2Model extends Wav2Vec2PreTrainedModel { } + +export class Wav2Vec2ForCTC extends Wav2Vec2PreTrainedModel { + /** + * @param {Object} model_inputs + * @param {Tensor} model_inputs.input_values Float values of input raw speech waveform. + * @param {Tensor} model_inputs.attention_mask Mask to avoid performing convolution and attention on padding token indices. Mask values selected in [0, 1] + */ + async _call(model_inputs) { + return new CausalLMOutput(await super._call(model_inputs)); + } +} + +export class Wav2Vec2ForSequenceClassification extends Wav2Vec2PreTrainedModel { + /** + * Calls the model on new inputs. + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} An object containing the model's output logits for sequence classification. + */ + async _call(model_inputs) { + return new SequenceClassifierOutput(await super._call(model_inputs)); + } +} +////////////////////////////////////////////////// + +////////////////////////////////////////////////// +// Hubert models +export class HubertPreTrainedModel extends PreTrainedModel { } + +/** + * The bare Hubert Model transformer outputting raw hidden-states without any specific head on top. + * + * **Example:** Load and run a `HubertModel` for feature extraction. + * + * ```javascript + * import { AutoProcessor, AutoModel, read_audio } from '@xenova/transformers'; + * + * // Read and preprocess audio + * const processor = await AutoProcessor.from_pretrained('Xenova/hubert-base-ls960'); + * const audio = await read_audio('https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main/jfk.wav', 16000); + * const inputs = await processor(audio); + * + * // Load and run model with inputs + * const model = await AutoModel.from_pretrained('Xenova/hubert-base-ls960'); + * const output = await model(inputs); + * // { + * // last_hidden_state: Tensor { + * // dims: [ 1, 549, 768 ], + * // type: 'float32', + * // data: Float32Array(421632) [0.0682469978928566, 0.08104046434164047, -0.4975186586380005, ...], + * // size: 421632 + * // } + * // } + * ``` + */ +export class HubertModel extends Wav2Vec2PreTrainedModel { } + +/** + * Hubert Model with a `language modeling` head on top for Connectionist Temporal Classification (CTC). + */ +export class HubertForCTC extends Wav2Vec2PreTrainedModel { + /** + * @param {Object} model_inputs + * @param {Tensor} model_inputs.input_values Float values of input raw speech waveform. + * @param {Tensor} model_inputs.attention_mask Mask to avoid performing convolution and attention on padding token indices. Mask values selected in [0, 1] + */ + async _call(model_inputs) { + return new CausalLMOutput(await super._call(model_inputs)); + } +} + +/** + * Hubert Model with a sequence classification head on top (a linear layer over the pooled output) for tasks like SUPERB Keyword Spotting. + */ +export class HubertForSequenceClassification extends Wav2Vec2PreTrainedModel { + /** + * Calls the model on new inputs. + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} An object containing the model's output logits for sequence classification. + */ + async _call(model_inputs) { + return new SequenceClassifierOutput(await super._call(model_inputs)); + } +} +////////////////////////////////////////////////// + +////////////////////////////////////////////////// +// WavLM models +/** + * An abstract class to handle weights initialization and a simple interface for downloading and loading pretrained models. + */ +export class WavLMPreTrainedModel extends PreTrainedModel { }; + +/** + * The bare WavLM Model transformer outputting raw hidden-states without any specific head on top. + * + * **Example:** Load and run a `WavLMModel` for feature extraction. + * + * ```javascript + * import { AutoProcessor, AutoModel, read_audio } from '@xenova/transformers'; + * + * // Read and preprocess audio + * const processor = await AutoProcessor.from_pretrained('Xenova/wavlm-base'); + * const audio = await read_audio('https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main/jfk.wav', 16000); + * const inputs = await processor(audio); + * + * // Run model with inputs + * const model = await AutoModel.from_pretrained('Xenova/wavlm-base'); + * const output = await model(inputs); + * // { + * // last_hidden_state: Tensor { + * // dims: [ 1, 549, 768 ], + * // type: 'float32', + * // data: Float32Array(421632) [-0.349443256855011, -0.39341306686401367, 0.022836603224277496, ...], + * // size: 421632 + * // } + * // } + * ``` + */ +export class WavLMModel extends WavLMPreTrainedModel { } + +/** + * WavLM Model with a `language modeling` head on top for Connectionist Temporal Classification (CTC). + */ +export class WavLMForCTC extends WavLMPreTrainedModel { + /** + * @param {Object} model_inputs + * @param {Tensor} model_inputs.input_values Float values of input raw speech waveform. + * @param {Tensor} model_inputs.attention_mask Mask to avoid performing convolution and attention on padding token indices. Mask values selected in [0, 1] + */ + async _call(model_inputs) { + return new CausalLMOutput(await super._call(model_inputs)); + } +} + +/** + * WavLM Model with a sequence classification head on top (a linear layer over the pooled output). + */ +export class WavLMForSequenceClassification extends WavLMPreTrainedModel { + /** + * Calls the model on new inputs. + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} An object containing the model's output logits for sequence classification. + */ + async _call(model_inputs) { + return new SequenceClassifierOutput(await super._call(model_inputs)); + } +} + +////////////////////////////////////////////////// +// SpeechT5 models +/** + * An abstract class to handle weights initialization and a simple interface for downloading and loading pretrained models. + */ +export class SpeechT5PreTrainedModel extends PreTrainedModel { }; + +/** + * The bare SpeechT5 Encoder-Decoder Model outputting raw hidden-states without any specific pre- or post-nets. + */ +export class SpeechT5Model extends SpeechT5PreTrainedModel { }; + +/** + * SpeechT5 Model with a speech encoder and a text decoder. + * + * **Example:** Generate speech from text with `SpeechT5ForSpeechToText`. + * ```javascript + * import { AutoTokenizer, AutoProcessor, SpeechT5ForTextToSpeech, SpeechT5HifiGan, Tensor } from '@xenova/transformers'; + * + * // Load the tokenizer and processor + * const tokenizer = await AutoTokenizer.from_pretrained('Xenova/speecht5_tts'); + * const processor = await AutoProcessor.from_pretrained('Xenova/speecht5_tts'); + * + * // Load the models + * // NOTE: We use the unquantized versions as they are more accurate + * const model = await SpeechT5ForTextToSpeech.from_pretrained('Xenova/speecht5_tts', { quantized: false }); + * const vocoder = await SpeechT5HifiGan.from_pretrained('Xenova/speecht5_hifigan', { quantized: false }); + * + * // Load speaker embeddings from URL + * const speaker_embeddings_data = new Float32Array( + * await (await fetch('https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main/speaker_embeddings.bin')).arrayBuffer() + * ); + * const speaker_embeddings = new Tensor( + * 'float32', + * speaker_embeddings_data, + * [1, speaker_embeddings_data.length] + * ) + * + * // Run tokenization + * const { input_ids } = tokenizer('Hello, my dog is cute'); + * + * // Generate waveform + * const { waveform } = await model.generate_speech(input_ids, speaker_embeddings, { vocoder }); + * console.log(waveform) + * // Tensor { + * // dims: [ 26112 ], + * // type: 'float32', + * // size: 26112, + * // data: Float32Array(26112) [ -0.00043630177970044315, -0.00018082228780258447, ... ], + * // } + * ``` + */ +export class SpeechT5ForSpeechToText extends SpeechT5PreTrainedModel { } + +/** + * SpeechT5 Model with a text encoder and a speech decoder. + */ +export class SpeechT5ForTextToSpeech extends SpeechT5PreTrainedModel { + + /** + * Creates a new instance of the `SpeechT5ForTextToSpeech` class. + * @param {Object} config The model configuration. + * @param {any} session session for the model. + * @param {any} decoder_merged_session session for the decoder. + * @param {GenerationConfig} generation_config The generation configuration. + */ + constructor(config, session, decoder_merged_session, generation_config) { + super(config, session); + this.decoder_merged_session = decoder_merged_session; + this.generation_config = generation_config; + + this.num_decoder_layers = this.config.decoder_layers; + this.num_decoder_heads = this.config.decoder_attention_heads; + this.decoder_dim_kv = this.config.hidden_size / this.num_decoder_heads; + + this.num_encoder_layers = this.config.encoder_layers; + this.num_encoder_heads = this.config.encoder_attention_heads; + this.encoder_dim_kv = this.config.hidden_size / this.num_encoder_heads; + } + + /** + * @typedef {Object} SpeechOutput + * @property {Tensor} [spectrogram] The predicted log-mel spectrogram of shape + * `(output_sequence_length, config.num_mel_bins)`. Returned when no `vocoder` is provided + * @property {Tensor} [waveform] The predicted waveform of shape `(num_frames,)`. Returned when a `vocoder` is provided. + * @property {Tensor} [cross_attentions] The outputs of the decoder's cross-attention layers of shape + * `(config.decoder_layers, config.decoder_attention_heads, output_sequence_length, input_sequence_length)`. returned when `output_cross_attentions` is `true`. + */ + + /** + * Converts a sequence of input tokens into a sequence of mel spectrograms, which are subsequently turned into a speech waveform using a vocoder. + * @param {Tensor} input_values Indices of input sequence tokens in the vocabulary. + * @param {Tensor} speaker_embeddings Tensor containing the speaker embeddings. + * @param {Object} options Optional parameters for generating speech. + * @param {number} [options.threshold=0.5] The generated sequence ends when the predicted stop token probability exceeds this value. + * @param {number} [options.minlenratio=0.0] Used to calculate the minimum required length for the output sequence. + * @param {number} [options.maxlenratio=20.0] Used to calculate the maximum allowed length for the output sequence. + * @param {Object} [options.vocoder=null] The vocoder that converts the mel spectrogram into a speech waveform. If `null`, the output is the mel spectrogram. + * @param {boolean} [options.output_cross_attentions=false] Whether or not to return the attentions tensors of the decoder's cross-attention layers. + * @returns {Promise} A promise which resolves to an object containing the spectrogram, waveform, and cross-attention tensors. + */ + async generate_speech(input_values, speaker_embeddings, { + threshold = 0.5, + minlenratio = 0.0, + maxlenratio = 20.0, + vocoder = null, + // output_cross_attentions = false, // TODO add + } = {}) { + + const model_inputs = { + input_ids: input_values + } + + const { encoder_outputs, encoder_attention_mask } = await encoderForward(this, model_inputs); + + const r = encoder_outputs.dims[1] / this.config.reduction_factor; + const maxlen = Math.floor(r * maxlenratio); + const minlen = Math.floor(r * minlenratio); + + const num_mel_bins = this.config.num_mel_bins; + + let spectrogramParts = []; + let past_key_values = null; + let decoder_outputs = null; + let idx = 0; + + while (true) { + ++idx; + + const use_cache_branch = boolTensor(!!decoder_outputs); + let output_sequence; + if (decoder_outputs) { + output_sequence = decoder_outputs.output_sequence_out; + } else { + output_sequence = new Tensor( + 'float32', + new Float32Array(num_mel_bins), + [1, 1, num_mel_bins], + ) + } + let decoderFeeds = { + use_cache_branch, + output_sequence, + encoder_attention_mask: encoder_attention_mask, + speaker_embeddings: speaker_embeddings, + encoder_hidden_states: encoder_outputs, + }; + + this.addPastKeyValues(decoderFeeds, past_key_values); + decoder_outputs = await sessionRun(this.decoder_merged_session, decoderFeeds); + past_key_values = this.getPastKeyValues(decoder_outputs, past_key_values); + + const { prob, spectrum } = decoder_outputs; + spectrogramParts.push(spectrum); + + if (idx >= minlen && ( + // Finished when stop token or maximum length is reached. + Array.from(prob.data).filter(p => p >= threshold).length > 0 || idx >= maxlen + )) { + break; + } + } + + const spectrogram = cat(spectrogramParts); + const { waveform } = await sessionRun(vocoder.session, { spectrogram }); + + return { + spectrogram, + waveform, + // cross_attentions: null, // TODO add + } + } +} + +/** + * HiFi-GAN vocoder. + * + * See [SpeechT5ForSpeechToText](./models#module_models.SpeechT5ForSpeechToText) for example usage. + */ +export class SpeechT5HifiGan extends PreTrainedModel { + main_input_name = 'spectrogram'; +} +////////////////////////////////////////////////// + + +////////////////////////////////////////////////// +// TrOCR models +export class TrOCRPreTrainedModel extends PreTrainedModel { + /** + * Creates a new instance of the `TrOCRPreTrainedModel` class. + * @param {Object} config The configuration of the model. + * @param {any} session The ONNX session containing the model weights. + * @param {GenerationConfig} generation_config The generation configuration. + */ + constructor(config, session, generation_config) { + super(config, session); + this.generation_config = generation_config; + + // config doesn't contain pad_token_id, so we assume it is the eos_token_id + this.config.pad_token_id = this.config.eos_token_id; + + this.num_encoder_layers = this.num_decoder_layers = this.config.decoder_layers; + this.num_encoder_heads = this.num_decoder_heads = this.config.decoder_attention_heads; + this.encoder_dim_kv = this.decoder_dim_kv = this.config.d_model / this.num_decoder_heads; + } +} + +/** + * The TrOCR Decoder with a language modeling head. + */ +export class TrOCRForCausalLM extends TrOCRPreTrainedModel { } + +////////////////////////////////////////////////// + + +////////////////////////////////////////////////// +// Mistral models +/** + * The bare Mistral Model outputting raw hidden-states without any specific head on top. + */ +export class MistralPreTrainedModel extends PreTrainedModel { + /** + * Creates a new instance of the `MistralPreTrainedModel` class. + * @param {Object} config The configuration of the model. + * @param {any} session The ONNX session containing the model weights. + * @param {GenerationConfig} generation_config The generation configuration. + */ + constructor(config, session, generation_config) { + super(config, session); + this.generation_config = generation_config; + + // config doesn't contain pad_token_id, so we assume it is the eos_token_id + this.config.pad_token_id = this.config.eos_token_id + + this.num_heads = this.config.num_key_value_heads; + this.num_layers = this.config.num_hidden_layers; + this.dim_kv = this.config.hidden_size / this.config.num_attention_heads; + } +} + +export class MistralModel extends MistralPreTrainedModel { } + +export class MistralForCausalLM extends MistralPreTrainedModel { } +////////////////////////////////////////////////// + +////////////////////////////////////////////////// +// Falcon models +/** + * The bare Falcon Model outputting raw hidden-states without any specific head on top. + */ +export class FalconPreTrainedModel extends PreTrainedModel { + /** + * Creates a new instance of the `FalconPreTrainedModel` class. + * @param {Object} config The configuration of the model. + * @param {any} session The ONNX session containing the model weights. + * @param {GenerationConfig} generation_config The generation configuration. + */ + constructor(config, session, generation_config) { + super(config, session); + this.generation_config = generation_config; + + // config doesn't contain pad_token_id, so we assume it is the eos_token_id + this.config.pad_token_id = this.config.eos_token_id + + this.num_heads = this.config.num_attention_heads; + this.num_layers = this.config.num_hidden_layers; + this.dim_kv = this.config.hidden_size / this.config.num_attention_heads; + } +} + +export class FalconModel extends FalconPreTrainedModel { } + +export class FalconForCausalLM extends FalconPreTrainedModel { } +////////////////////////////////////////////////// + + +////////////////////////////////////////////////// +// CLAP models +export class ClapPreTrainedModel extends PreTrainedModel { } + +export class ClapModel extends ClapPreTrainedModel { } + +/** + * CLAP Text Model with a projection layer on top (a linear layer on top of the pooled output). + * + * **Example:** Compute text embeddings with `ClapTextModelWithProjection`. + * + * ```javascript + * import { AutoTokenizer, ClapTextModelWithProjection } from '@xenova/transformers'; + * + * // Load tokenizer and text model + * const tokenizer = await AutoTokenizer.from_pretrained('Xenova/clap-htsat-unfused'); + * const text_model = await ClapTextModelWithProjection.from_pretrained('Xenova/clap-htsat-unfused'); + * + * // Run tokenization + * const texts = ['a sound of a cat', 'a sound of a dog']; + * const text_inputs = tokenizer(texts, { padding: true, truncation: true }); + * + * // Compute embeddings + * const { text_embeds } = await text_model(text_inputs); + * // Tensor { + * // dims: [ 2, 512 ], + * // type: 'float32', + * // data: Float32Array(1024) [ ... ], + * // size: 1024 + * // } + * ``` + */ +export class ClapTextModelWithProjection extends ClapPreTrainedModel { + + /** @type {PreTrainedModel.from_pretrained} */ + static async from_pretrained(pretrained_model_name_or_path, options = {}) { + // Update default model file name if not provided + options.model_file_name ??= 'text_model'; + return super.from_pretrained(pretrained_model_name_or_path, options); + } +} + +/** + * CLAP Audio Model with a projection layer on top (a linear layer on top of the pooled output). + * + * **Example:** Compute audio embeddings with `ClapAudioModelWithProjection`. + * + * ```javascript + * import { AutoProcessor, ClapAudioModelWithProjection, read_audio } from '@xenova/transformers'; + * + * // Load processor and audio model + * const processor = await AutoProcessor.from_pretrained('Xenova/clap-htsat-unfused'); + * const audio_model = await ClapAudioModelWithProjection.from_pretrained('Xenova/clap-htsat-unfused'); + * + * // Read audio and run processor + * const audio = await read_audio('https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main/cat_meow.wav'); + * const audio_inputs = await processor(audio); + * + * // Compute embeddings + * const { audio_embeds } = await audio_model(audio_inputs); + * // Tensor { + * // dims: [ 1, 512 ], + * // type: 'float32', + * // data: Float32Array(512) [ ... ], + * // size: 512 + * // } + * ``` + */ +export class ClapAudioModelWithProjection extends ClapPreTrainedModel { + /** @type {PreTrainedModel.from_pretrained} */ + static async from_pretrained(pretrained_model_name_or_path, options = {}) { + // Update default model file name if not provided + options.model_file_name ??= 'audio_model'; + return super.from_pretrained(pretrained_model_name_or_path, options); + } +} +////////////////////////////////////////////////// + + +////////////////////////////////////////////////// +// VITS models +export class VitsPreTrainedModel extends PreTrainedModel { } + +/** + * The complete VITS model, for text-to-speech synthesis. + * + * **Example:** Generate speech from text with `VitsModel`. + * ```javascript + * import { AutoTokenizer, VitsModel } from '@xenova/transformers'; + * + * // Load the tokenizer and model + * const tokenizer = await AutoTokenizer.from_pretrained('Xenova/mms-tts-eng'); + * const model = await VitsModel.from_pretrained('Xenova/mms-tts-eng'); + * + * // Run tokenization + * const inputs = tokenizer('I love transformers'); + * + * // Generate waveform + * const { waveform } = await model(inputs); + * // Tensor { + * // dims: [ 1, 35328 ], + * // type: 'float32', + * // data: Float32Array(35328) [ ... ], + * // size: 35328, + * // } + * ``` + */ +export class VitsModel extends VitsPreTrainedModel { + /** + * Calls the model on new inputs. + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} The outputs for the VITS model. + */ + async _call(model_inputs) { + return new VitsModelOutput(await super._call(model_inputs)); + } +} +////////////////////////////////////////////////// + +////////////////////////////////////////////////// +// Segformer models +export class SegformerPreTrainedModel extends PreTrainedModel { } + +/** + * The bare SegFormer encoder (Mix-Transformer) outputting raw hidden-states without any specific head on top. + */ +export class SegformerModel extends SegformerPreTrainedModel { } + +/** + * SegFormer Model transformer with an image classification head on top (a linear layer on top of the final hidden states) e.g. for ImageNet. + */ +export class SegformerForImageClassification extends SegformerPreTrainedModel { } + +/** + * SegFormer Model transformer with an all-MLP decode head on top e.g. for ADE20k, CityScapes. + */ +export class SegformerForSemanticSegmentation extends SegformerPreTrainedModel { } + +////////////////////////////////////////////////// + + +////////////////////////////////////////////////// +// AutoModels, used to simplify construction of PreTrainedModels +// (uses config to instantiate correct class) + +/** + * Base class of all AutoModels. Contains the `from_pretrained` function + * which is used to instantiate pretrained models. + */ +export class PretrainedMixin { + /** + * Mapping from model type to model class. + * @type {Map[]} + */ + static MODEL_CLASS_MAPPINGS = null; + + /** + * Whether to attempt to instantiate the base class (`PretrainedModel`) if + * the model type is not found in the mapping. + */ + static BASE_IF_FAIL = false; + + + /** @type {PreTrainedModel.from_pretrained} */ + static async from_pretrained(pretrained_model_name_or_path, { + quantized = true, + progress_callback = null, + config = null, + cache_dir = null, + local_files_only = false, + revision = 'main', + model_file_name = null, + } = {}) { + + let options = { + quantized, + progress_callback, + config, + cache_dir, + local_files_only, + revision, + model_file_name, + } + config = await AutoConfig.from_pretrained(pretrained_model_name_or_path, options); + if (!options.config) { + // If no config was passed, reuse this config for future processing + options.config = config; + } + + if (!this.MODEL_CLASS_MAPPINGS) { + throw new Error("`MODEL_CLASS_MAPPINGS` not implemented for this type of `AutoClass`: " + this.name); + } + + for (let MODEL_CLASS_MAPPING of this.MODEL_CLASS_MAPPINGS) { + const modelInfo = MODEL_CLASS_MAPPING.get(config.model_type); + if (!modelInfo) { + continue; // Item not found in this mapping + } + return await modelInfo[1].from_pretrained(pretrained_model_name_or_path, options); + } + + if (this.BASE_IF_FAIL) { + console.warn(`Unknown model class "${config.model_type}", attempting to construct from base class.`); + return await PreTrainedModel.from_pretrained(pretrained_model_name_or_path, options); + } else { + throw Error(`Unsupported model type: ${config.model_type}`) + } + } +} + +const MODEL_MAPPING_NAMES_ENCODER_ONLY = new Map([ + ['bert', ['BertModel', BertModel]], + ['roformer', ['RoFormerModel', RoFormerModel]], + ['electra', ['ElectraModel', ElectraModel]], + ['esm', ['EsmModel', EsmModel]], + ['convbert', ['ConvBertModel', ConvBertModel]], + ['camembert', ['CamembertModel', CamembertModel]], + ['deberta', ['DebertaModel', DebertaModel]], + ['deberta-v2', ['DebertaV2Model', DebertaV2Model]], + ['mpnet', ['MPNetModel', MPNetModel]], + ['albert', ['AlbertModel', AlbertModel]], + ['distilbert', ['DistilBertModel', DistilBertModel]], + ['roberta', ['RobertaModel', RobertaModel]], + ['xlm', ['XLMModel', XLMModel]], + ['xlm-roberta', ['XLMRobertaModel', XLMRobertaModel]], + ['clap', ['ClapModel', ClapModel]], + ['clip', ['CLIPModel', CLIPModel]], + ['clipseg', ['CLIPSegModel', CLIPSegModel]], + ['chinese_clip', ['ChineseCLIPModel', ChineseCLIPModel]], + ['siglip', ['SiglipModel', SiglipModel]], + ['mobilebert', ['MobileBertModel', MobileBertModel]], + ['squeezebert', ['SqueezeBertModel', SqueezeBertModel]], + ['wav2vec2', ['Wav2Vec2Model', Wav2Vec2Model]], + ['hubert', ['HubertModel', HubertModel]], + ['wavlm', ['WavLMModel', WavLMModel]], + ['audio-spectrogram-transformer', ['ASTModel', ASTModel]], + ['vits', ['VitsModel', VitsModel]], + + ['detr', ['DetrModel', DetrModel]], + ['table-transformer', ['TableTransformerModel', TableTransformerModel]], + ['vit', ['ViTModel', ViTModel]], + ['mobilevit', ['MobileViTModel', MobileViTModel]], + ['owlvit', ['OwlViTModel', OwlViTModel]], + ['beit', ['BeitModel', BeitModel]], + ['deit', ['DeiTModel', DeiTModel]], + ['convnext', ['ConvNextModel', ConvNextModel]], + ['convnextv2', ['ConvNextV2Model', ConvNextV2Model]], + ['dinov2', ['Dinov2Model', Dinov2Model]], + ['resnet', ['ResNetModel', ResNetModel]], + ['swin', ['SwinModel', SwinModel]], + ['swin2sr', ['Swin2SRModel', Swin2SRModel]], + ['donut-swin', ['DonutSwinModel', DonutSwinModel]], + ['yolos', ['YolosModel', YolosModel]], + ['dpt', ['DPTModel', DPTModel]], + ['glpn', ['GLPNModel', GLPNModel]], + + ['hifigan', ['SpeechT5HifiGan', SpeechT5HifiGan]], + +]); + +const MODEL_MAPPING_NAMES_ENCODER_DECODER = new Map([ + ['t5', ['T5Model', T5Model]], + ['longt5', ['LongT5Model', LongT5Model]], + ['mt5', ['MT5Model', MT5Model]], + ['bart', ['BartModel', BartModel]], + ['mbart', ['MBartModel', MBartModel]], + ['marian', ['MarianModel', MarianModel]], + ['whisper', ['WhisperModel', WhisperModel]], + ['m2m_100', ['M2M100Model', M2M100Model]], + ['blenderbot', ['BlenderbotModel', BlenderbotModel]], + ['blenderbot-small', ['BlenderbotSmallModel', BlenderbotSmallModel]], +]); + + +const MODEL_MAPPING_NAMES_DECODER_ONLY = new Map([ + ['bloom', ['BloomModel', BloomModel]], + ['gpt2', ['GPT2Model', GPT2Model]], + ['gptj', ['GPTJModel', GPTJModel]], + ['gpt_bigcode', ['GPTBigCodeModel', GPTBigCodeModel]], + ['gpt_neo', ['GPTNeoModel', GPTNeoModel]], + ['gpt_neox', ['GPTNeoXModel', GPTNeoXModel]], + ['codegen', ['CodeGenModel', CodeGenModel]], + ['llama', ['LlamaModel', LlamaModel]], + ['phi', ['PhiModel', PhiModel]], + ['mpt', ['MptModel', MptModel]], + ['opt', ['OPTModel', OPTModel]], + ['mistral', ['MistralModel', MistralModel]], + ['falcon', ['FalconModel', FalconModel]], +]); + +const MODEL_FOR_SPEECH_SEQ_2_SEQ_MAPPING_NAMES = new Map([ + ['speecht5', ['SpeechT5ForSpeechToText', SpeechT5ForSpeechToText]], + ['whisper', ['WhisperForConditionalGeneration', WhisperForConditionalGeneration]], +]); + +const MODEL_FOR_TEXT_TO_SPECTROGRAM_MAPPING_NAMES = new Map([ + ['speecht5', ['SpeechT5ForTextToSpeech', SpeechT5ForTextToSpeech]], +]); + +const MODEL_FOR_TEXT_TO_WAVEFORM_MAPPING_NAMES = new Map([ + ['vits', ['VitsModel', VitsModel]], +]); + +const MODEL_FOR_SEQUENCE_CLASSIFICATION_MAPPING_NAMES = new Map([ + ['bert', ['BertForSequenceClassification', BertForSequenceClassification]], + ['roformer', ['RoFormerForSequenceClassification', RoFormerForSequenceClassification]], + ['electra', ['ElectraForSequenceClassification', ElectraForSequenceClassification]], + ['esm', ['EsmForSequenceClassification', EsmForSequenceClassification]], + ['convbert', ['ConvBertForSequenceClassification', ConvBertForSequenceClassification]], + ['camembert', ['CamembertForSequenceClassification', CamembertForSequenceClassification]], + ['deberta', ['DebertaForSequenceClassification', DebertaForSequenceClassification]], + ['deberta-v2', ['DebertaV2ForSequenceClassification', DebertaV2ForSequenceClassification]], + ['mpnet', ['MPNetForSequenceClassification', MPNetForSequenceClassification]], + ['albert', ['AlbertForSequenceClassification', AlbertForSequenceClassification]], + ['distilbert', ['DistilBertForSequenceClassification', DistilBertForSequenceClassification]], + ['roberta', ['RobertaForSequenceClassification', RobertaForSequenceClassification]], + ['xlm', ['XLMForSequenceClassification', XLMForSequenceClassification]], + ['xlm-roberta', ['XLMRobertaForSequenceClassification', XLMRobertaForSequenceClassification]], + ['bart', ['BartForSequenceClassification', BartForSequenceClassification]], + ['mbart', ['MBartForSequenceClassification', MBartForSequenceClassification]], + ['mobilebert', ['MobileBertForSequenceClassification', MobileBertForSequenceClassification]], + ['squeezebert', ['SqueezeBertForSequenceClassification', SqueezeBertForSequenceClassification]], +]); + +const MODEL_FOR_TOKEN_CLASSIFICATION_MAPPING_NAMES = new Map([ + ['bert', ['BertForTokenClassification', BertForTokenClassification]], + ['roformer', ['RoFormerForTokenClassification', RoFormerForTokenClassification]], + ['electra', ['ElectraForTokenClassification', ElectraForTokenClassification]], + ['esm', ['EsmForTokenClassification', EsmForTokenClassification]], + ['convbert', ['ConvBertForTokenClassification', ConvBertForTokenClassification]], + ['camembert', ['CamembertForTokenClassification', CamembertForTokenClassification]], + ['deberta', ['DebertaForTokenClassification', DebertaForTokenClassification]], + ['deberta-v2', ['DebertaV2ForTokenClassification', DebertaV2ForTokenClassification]], + ['mpnet', ['MPNetForTokenClassification', MPNetForTokenClassification]], + ['distilbert', ['DistilBertForTokenClassification', DistilBertForTokenClassification]], + ['roberta', ['RobertaForTokenClassification', RobertaForTokenClassification]], + ['xlm', ['XLMForTokenClassification', XLMForTokenClassification]], + ['xlm-roberta', ['XLMRobertaForTokenClassification', XLMRobertaForTokenClassification]], +]); + +const MODEL_FOR_SEQ_TO_SEQ_CAUSAL_LM_MAPPING_NAMES = new Map([ + ['t5', ['T5ForConditionalGeneration', T5ForConditionalGeneration]], + ['longt5', ['LongT5ForConditionalGeneration', LongT5ForConditionalGeneration]], + ['mt5', ['MT5ForConditionalGeneration', MT5ForConditionalGeneration]], + ['bart', ['BartForConditionalGeneration', BartForConditionalGeneration]], + ['mbart', ['MBartForConditionalGeneration', MBartForConditionalGeneration]], + ['marian', ['MarianMTModel', MarianMTModel]], + ['m2m_100', ['M2M100ForConditionalGeneration', M2M100ForConditionalGeneration]], + ['blenderbot', ['BlenderbotForConditionalGeneration', BlenderbotForConditionalGeneration]], + ['blenderbot-small', ['BlenderbotSmallForConditionalGeneration', BlenderbotSmallForConditionalGeneration]], +]); + +const MODEL_WITH_LM_HEAD_MAPPING_NAMES = new Map([ + ['bloom', ['BloomForCausalLM', BloomForCausalLM]], + ['gpt2', ['GPT2LMHeadModel', GPT2LMHeadModel]], + ['gptj', ['GPTJForCausalLM', GPTJForCausalLM]], + ['gpt_bigcode', ['GPTBigCodeForCausalLM', GPTBigCodeForCausalLM]], + ['gpt_neo', ['GPTNeoForCausalLM', GPTNeoForCausalLM]], + ['gpt_neox', ['GPTNeoXForCausalLM', GPTNeoXForCausalLM]], + ['codegen', ['CodeGenForCausalLM', CodeGenForCausalLM]], + ['llama', ['LlamaForCausalLM', LlamaForCausalLM]], + ['phi', ['PhiForCausalLM', PhiForCausalLM]], + ['mpt', ['MptForCausalLM', MptForCausalLM]], + ['opt', ['OPTForCausalLM', OPTForCausalLM]], + ['mbart', ['MBartForCausalLM', MBartForCausalLM]], + ['mistral', ['MistralForCausalLM', MistralForCausalLM]], + ['falcon', ['FalconForCausalLM', FalconForCausalLM]], + ['trocr', ['TrOCRForCausalLM', TrOCRForCausalLM]], +]); + +const MODEL_FOR_MASKED_LM_MAPPING_NAMES = new Map([ + ['bert', ['BertForMaskedLM', BertForMaskedLM]], + ['roformer', ['RoFormerForMaskedLM', RoFormerForMaskedLM]], + ['electra', ['ElectraForMaskedLM', ElectraForMaskedLM]], + ['esm', ['EsmForMaskedLM', EsmForMaskedLM]], + ['convbert', ['ConvBertForMaskedLM', ConvBertForMaskedLM]], + ['camembert', ['CamembertForMaskedLM', CamembertForMaskedLM]], + ['deberta', ['DebertaForMaskedLM', DebertaForMaskedLM]], + ['deberta-v2', ['DebertaV2ForMaskedLM', DebertaV2ForMaskedLM]], + ['mpnet', ['MPNetForMaskedLM', MPNetForMaskedLM]], + ['albert', ['AlbertForMaskedLM', AlbertForMaskedLM]], + ['distilbert', ['DistilBertForMaskedLM', DistilBertForMaskedLM]], + ['roberta', ['RobertaForMaskedLM', RobertaForMaskedLM]], + ['xlm', ['XLMWithLMHeadModel', XLMWithLMHeadModel]], + ['xlm-roberta', ['XLMRobertaForMaskedLM', XLMRobertaForMaskedLM]], + ['mobilebert', ['MobileBertForMaskedLM', MobileBertForMaskedLM]], + ['squeezebert', ['SqueezeBertForMaskedLM', SqueezeBertForMaskedLM]], +]); + +const MODEL_FOR_QUESTION_ANSWERING_MAPPING_NAMES = new Map([ + ['bert', ['BertForQuestionAnswering', BertForQuestionAnswering]], + ['roformer', ['RoFormerForQuestionAnswering', RoFormerForQuestionAnswering]], + ['electra', ['ElectraForQuestionAnswering', ElectraForQuestionAnswering]], + ['convbert', ['ConvBertForQuestionAnswering', ConvBertForQuestionAnswering]], + ['camembert', ['CamembertForQuestionAnswering', CamembertForQuestionAnswering]], + ['deberta', ['DebertaForQuestionAnswering', DebertaForQuestionAnswering]], + ['deberta-v2', ['DebertaV2ForQuestionAnswering', DebertaV2ForQuestionAnswering]], + ['mpnet', ['MPNetForQuestionAnswering', MPNetForQuestionAnswering]], + ['albert', ['AlbertForQuestionAnswering', AlbertForQuestionAnswering]], + ['distilbert', ['DistilBertForQuestionAnswering', DistilBertForQuestionAnswering]], + ['roberta', ['RobertaForQuestionAnswering', RobertaForQuestionAnswering]], + ['xlm', ['XLMForQuestionAnswering', XLMForQuestionAnswering]], + ['xlm-roberta', ['XLMRobertaForQuestionAnswering', XLMRobertaForQuestionAnswering]], + ['mobilebert', ['MobileBertForQuestionAnswering', MobileBertForQuestionAnswering]], + ['squeezebert', ['SqueezeBertForQuestionAnswering', SqueezeBertForQuestionAnswering]], +]); + +const MODEL_FOR_VISION_2_SEQ_MAPPING_NAMES = new Map([ + ['vision-encoder-decoder', ['VisionEncoderDecoderModel', VisionEncoderDecoderModel]], +]); + +const MODEL_FOR_DOCUMENT_QUESTION_ANSWERING_MAPPING_NAMES = new Map([ + ['vision-encoder-decoder', ['VisionEncoderDecoderModel', VisionEncoderDecoderModel]], +]); + +const MODEL_FOR_IMAGE_CLASSIFICATION_MAPPING_NAMES = new Map([ + ['vit', ['ViTForImageClassification', ViTForImageClassification]], + ['mobilevit', ['MobileViTForImageClassification', MobileViTForImageClassification]], + ['beit', ['BeitForImageClassification', BeitForImageClassification]], + ['deit', ['DeiTForImageClassification', DeiTForImageClassification]], + ['convnext', ['ConvNextForImageClassification', ConvNextForImageClassification]], + ['convnextv2', ['ConvNextV2ForImageClassification', ConvNextV2ForImageClassification]], + ['dinov2', ['Dinov2ForImageClassification', Dinov2ForImageClassification]], + ['resnet', ['ResNetForImageClassification', ResNetForImageClassification]], + ['swin', ['SwinForImageClassification', SwinForImageClassification]], + ['segformer', ['SegformerForImageClassification', SegformerForImageClassification]], +]); + +const MODEL_FOR_OBJECT_DETECTION_MAPPING_NAMES = new Map([ + ['detr', ['DetrForObjectDetection', DetrForObjectDetection]], + ['table-transformer', ['TableTransformerForObjectDetection', TableTransformerForObjectDetection]], + ['yolos', ['YolosForObjectDetection', YolosForObjectDetection]], +]); + +const MODEL_FOR_ZERO_SHOT_OBJECT_DETECTION_MAPPING_NAMES = new Map([ + ['owlvit', ['OwlViTForObjectDetection', OwlViTForObjectDetection]], +]); + +const MODEL_FOR_IMAGE_SEGMENTATION_MAPPING_NAMES = new Map([ + ['detr', ['DetrForSegmentation', DetrForSegmentation]], + ['clipseg', ['CLIPSegForImageSegmentation', CLIPSegForImageSegmentation]], +]); + +const MODEL_FOR_SEMANTIC_SEGMENTATION_MAPPING_NAMES = new Map([ + ['segformer', ['SegformerForSemanticSegmentation', SegformerForSemanticSegmentation]], +]); + +const MODEL_FOR_MASK_GENERATION_MAPPING_NAMES = new Map([ + ['sam', ['SamModel', SamModel]], +]); + +const MODEL_FOR_CTC_MAPPING_NAMES = new Map([ + ['wav2vec2', ['Wav2Vec2ForCTC', Wav2Vec2ForCTC]], + ['wavlm', ['WavLMForCTC', WavLMForCTC]], + ['hubert', ['HubertForCTC', HubertForCTC]], +]); + +const MODEL_FOR_AUDIO_CLASSIFICATION_MAPPING_NAMES = new Map([ + ['wav2vec2', ['Wav2Vec2ForSequenceClassification', Wav2Vec2ForSequenceClassification]], + ['wavlm', ['WavLMForSequenceClassification', WavLMForSequenceClassification]], + ['hubert', ['HubertForSequenceClassification', HubertForSequenceClassification]], + ['audio-spectrogram-transformer', ['ASTForAudioClassification', ASTForAudioClassification]], +]); + +const MODEL_FOR_IMAGE_MATTING_MAPPING_NAMES = new Map([ + ['vitmatte', ['VitMatteForImageMatting', VitMatteForImageMatting]], +]); + +const MODEL_FOR_IMAGE_TO_IMAGE_MAPPING_NAMES = new Map([ + ['swin2sr', ['Swin2SRForImageSuperResolution', Swin2SRForImageSuperResolution]], +]) + +const MODEL_FOR_DEPTH_ESTIMATION_MAPPING_NAMES = new Map([ + ['dpt', ['DPTForDepthEstimation', DPTForDepthEstimation]], + ['glpn', ['GLPNForDepthEstimation', GLPNForDepthEstimation]], +]) + + +const MODEL_CLASS_TYPE_MAPPING = [ + [MODEL_MAPPING_NAMES_ENCODER_ONLY, MODEL_TYPES.EncoderOnly], + [MODEL_MAPPING_NAMES_ENCODER_DECODER, MODEL_TYPES.EncoderDecoder], + [MODEL_MAPPING_NAMES_DECODER_ONLY, MODEL_TYPES.DecoderOnly], + [MODEL_FOR_SEQUENCE_CLASSIFICATION_MAPPING_NAMES, MODEL_TYPES.EncoderOnly], + [MODEL_FOR_TOKEN_CLASSIFICATION_MAPPING_NAMES, MODEL_TYPES.EncoderOnly], + [MODEL_FOR_SEQ_TO_SEQ_CAUSAL_LM_MAPPING_NAMES, MODEL_TYPES.Seq2Seq], + [MODEL_FOR_SPEECH_SEQ_2_SEQ_MAPPING_NAMES, MODEL_TYPES.Seq2Seq], + [MODEL_WITH_LM_HEAD_MAPPING_NAMES, MODEL_TYPES.DecoderOnly], + [MODEL_FOR_MASKED_LM_MAPPING_NAMES, MODEL_TYPES.EncoderOnly], + [MODEL_FOR_QUESTION_ANSWERING_MAPPING_NAMES, MODEL_TYPES.EncoderOnly], + [MODEL_FOR_VISION_2_SEQ_MAPPING_NAMES, MODEL_TYPES.Vision2Seq], + [MODEL_FOR_IMAGE_CLASSIFICATION_MAPPING_NAMES, MODEL_TYPES.EncoderOnly], + [MODEL_FOR_IMAGE_SEGMENTATION_MAPPING_NAMES, MODEL_TYPES.EncoderOnly], + [MODEL_FOR_SEMANTIC_SEGMENTATION_MAPPING_NAMES, MODEL_TYPES.EncoderOnly], + [MODEL_FOR_IMAGE_MATTING_MAPPING_NAMES, MODEL_TYPES.EncoderOnly], + [MODEL_FOR_IMAGE_TO_IMAGE_MAPPING_NAMES, MODEL_TYPES.EncoderOnly], + [MODEL_FOR_DEPTH_ESTIMATION_MAPPING_NAMES, MODEL_TYPES.EncoderOnly], + [MODEL_FOR_OBJECT_DETECTION_MAPPING_NAMES, MODEL_TYPES.EncoderOnly], + [MODEL_FOR_ZERO_SHOT_OBJECT_DETECTION_MAPPING_NAMES, MODEL_TYPES.EncoderOnly], + [MODEL_FOR_MASK_GENERATION_MAPPING_NAMES, MODEL_TYPES.MaskGeneration], + [MODEL_FOR_CTC_MAPPING_NAMES, MODEL_TYPES.EncoderOnly], + [MODEL_FOR_AUDIO_CLASSIFICATION_MAPPING_NAMES, MODEL_TYPES.EncoderOnly], + [MODEL_FOR_TEXT_TO_SPECTROGRAM_MAPPING_NAMES, MODEL_TYPES.Seq2Seq], + [MODEL_FOR_TEXT_TO_WAVEFORM_MAPPING_NAMES, MODEL_TYPES.EncoderOnly], +]; + +for (const [mappings, type] of MODEL_CLASS_TYPE_MAPPING) { + // @ts-ignore + for (const [name, model] of mappings.values()) { + MODEL_TYPE_MAPPING.set(name, type); + MODEL_CLASS_TO_NAME_MAPPING.set(model, name); + MODEL_NAME_TO_CLASS_MAPPING.set(name, model); + } +} + +const CUSTOM_MAPPING = [ + ['CLIPTextModelWithProjection', CLIPTextModelWithProjection, MODEL_TYPES.EncoderOnly], + ['CLIPVisionModelWithProjection', CLIPVisionModelWithProjection, MODEL_TYPES.EncoderOnly], + ['SiglipTextModel', SiglipTextModel, MODEL_TYPES.EncoderOnly], + ['SiglipVisionModel', SiglipVisionModel, MODEL_TYPES.EncoderOnly], + ['ClapTextModelWithProjection', ClapTextModelWithProjection, MODEL_TYPES.EncoderOnly], + ['ClapAudioModelWithProjection', ClapAudioModelWithProjection, MODEL_TYPES.EncoderOnly], +] +for (const [name, model, type] of CUSTOM_MAPPING) { + MODEL_TYPE_MAPPING.set(name, type); + MODEL_CLASS_TO_NAME_MAPPING.set(model, name); + MODEL_NAME_TO_CLASS_MAPPING.set(name, model); +} + + +/** + * Helper class which is used to instantiate pretrained models with the `from_pretrained` function. + * The chosen model class is determined by the type specified in the model config. + * + * @example + * let model = await AutoModel.from_pretrained('bert-base-uncased'); + */ +export class AutoModel extends PretrainedMixin { + /** @type {Map[]} */ + // @ts-ignore + static MODEL_CLASS_MAPPINGS = MODEL_CLASS_TYPE_MAPPING.map(x => x[0]); + static BASE_IF_FAIL = true; +} + +/** + * Helper class which is used to instantiate pretrained sequence classification models with the `from_pretrained` function. + * The chosen model class is determined by the type specified in the model config. + * + * @example + * let model = await AutoModelForSequenceClassification.from_pretrained('distilbert-base-uncased-finetuned-sst-2-english'); + */ +export class AutoModelForSequenceClassification extends PretrainedMixin { + static MODEL_CLASS_MAPPINGS = [MODEL_FOR_SEQUENCE_CLASSIFICATION_MAPPING_NAMES]; +} + +/** + * Helper class which is used to instantiate pretrained token classification models with the `from_pretrained` function. + * The chosen model class is determined by the type specified in the model config. + * + * @example + * let model = await AutoModelForTokenClassification.from_pretrained('Davlan/distilbert-base-multilingual-cased-ner-hrl'); + */ +export class AutoModelForTokenClassification extends PretrainedMixin { + static MODEL_CLASS_MAPPINGS = [MODEL_FOR_TOKEN_CLASSIFICATION_MAPPING_NAMES]; +} + +/** + * Helper class which is used to instantiate pretrained sequence-to-sequence models with the `from_pretrained` function. + * The chosen model class is determined by the type specified in the model config. + * + * @example + * let model = await AutoModelForSeq2SeqLM.from_pretrained('t5-small'); + */ +export class AutoModelForSeq2SeqLM extends PretrainedMixin { + static MODEL_CLASS_MAPPINGS = [MODEL_FOR_SEQ_TO_SEQ_CAUSAL_LM_MAPPING_NAMES]; +} + +/** + * Helper class which is used to instantiate pretrained sequence-to-sequence speech-to-text models with the `from_pretrained` function. + * The chosen model class is determined by the type specified in the model config. + * + * @example + * let model = await AutoModelForSpeechSeq2Seq.from_pretrained('openai/whisper-tiny.en'); + */ +export class AutoModelForSpeechSeq2Seq extends PretrainedMixin { + static MODEL_CLASS_MAPPINGS = [MODEL_FOR_SPEECH_SEQ_2_SEQ_MAPPING_NAMES]; +} + +/** + * Helper class which is used to instantiate pretrained sequence-to-sequence text-to-spectrogram models with the `from_pretrained` function. + * The chosen model class is determined by the type specified in the model config. + * + * @example + * let model = await AutoModelForTextToSpectrogram.from_pretrained('microsoft/speecht5_tts'); + */ +export class AutoModelForTextToSpectrogram extends PretrainedMixin { + static MODEL_CLASS_MAPPINGS = [MODEL_FOR_TEXT_TO_SPECTROGRAM_MAPPING_NAMES]; +} + +/** + * Helper class which is used to instantiate pretrained text-to-waveform models with the `from_pretrained` function. + * The chosen model class is determined by the type specified in the model config. + * + * @example + * let model = await AutoModelForTextToSpectrogram.from_pretrained('facebook/mms-tts-eng'); + */ +export class AutoModelForTextToWaveform extends PretrainedMixin { + static MODEL_CLASS_MAPPINGS = [MODEL_FOR_TEXT_TO_WAVEFORM_MAPPING_NAMES]; +} + +/** + * Helper class which is used to instantiate pretrained causal language models with the `from_pretrained` function. + * The chosen model class is determined by the type specified in the model config. + * + * @example + * let model = await AutoModelForCausalLM.from_pretrained('gpt2'); + */ +export class AutoModelForCausalLM extends PretrainedMixin { + static MODEL_CLASS_MAPPINGS = [MODEL_WITH_LM_HEAD_MAPPING_NAMES]; +} + +/** + * Helper class which is used to instantiate pretrained masked language models with the `from_pretrained` function. + * The chosen model class is determined by the type specified in the model config. + * + * @example + * let model = await AutoModelForMaskedLM.from_pretrained('bert-base-uncased'); + */ +export class AutoModelForMaskedLM extends PretrainedMixin { + static MODEL_CLASS_MAPPINGS = [MODEL_FOR_MASKED_LM_MAPPING_NAMES]; +} + +/** + * Helper class which is used to instantiate pretrained question answering models with the `from_pretrained` function. + * The chosen model class is determined by the type specified in the model config. + * + * @example + * let model = await AutoModelForQuestionAnswering.from_pretrained('distilbert-base-cased-distilled-squad'); + */ +export class AutoModelForQuestionAnswering extends PretrainedMixin { + static MODEL_CLASS_MAPPINGS = [MODEL_FOR_QUESTION_ANSWERING_MAPPING_NAMES]; +} + +/** + * Helper class which is used to instantiate pretrained vision-to-sequence models with the `from_pretrained` function. + * The chosen model class is determined by the type specified in the model config. + * + * @example + * let model = await AutoModelForVision2Seq.from_pretrained('nlpconnect/vit-gpt2-image-captioning'); + */ +export class AutoModelForVision2Seq extends PretrainedMixin { + static MODEL_CLASS_MAPPINGS = [MODEL_FOR_VISION_2_SEQ_MAPPING_NAMES]; +} + +/** + * Helper class which is used to instantiate pretrained image classification models with the `from_pretrained` function. + * The chosen model class is determined by the type specified in the model config. + * + * @example + * let model = await AutoModelForImageClassification.from_pretrained('google/vit-base-patch16-224'); + */ +export class AutoModelForImageClassification extends PretrainedMixin { + static MODEL_CLASS_MAPPINGS = [MODEL_FOR_IMAGE_CLASSIFICATION_MAPPING_NAMES]; +} + +/** + * Helper class which is used to instantiate pretrained image segmentation models with the `from_pretrained` function. + * The chosen model class is determined by the type specified in the model config. + * + * @example + * let model = await AutoModelForImageSegmentation.from_pretrained('facebook/detr-resnet-50-panoptic'); + */ +export class AutoModelForImageSegmentation extends PretrainedMixin { + static MODEL_CLASS_MAPPINGS = [MODEL_FOR_IMAGE_SEGMENTATION_MAPPING_NAMES]; +} + +/** + * Helper class which is used to instantiate pretrained image segmentation models with the `from_pretrained` function. + * The chosen model class is determined by the type specified in the model config. + * + * @example + * let model = await AutoModelForSemanticSegmentation.from_pretrained('nvidia/segformer-b3-finetuned-cityscapes-1024-1024'); + */ +export class AutoModelForSemanticSegmentation extends PretrainedMixin { + static MODEL_CLASS_MAPPINGS = [MODEL_FOR_SEMANTIC_SEGMENTATION_MAPPING_NAMES]; +} + +/** + * Helper class which is used to instantiate pretrained object detection models with the `from_pretrained` function. + * The chosen model class is determined by the type specified in the model config. + * + * @example + * let model = await AutoModelForObjectDetection.from_pretrained('facebook/detr-resnet-50'); + */ +export class AutoModelForObjectDetection extends PretrainedMixin { + static MODEL_CLASS_MAPPINGS = [MODEL_FOR_OBJECT_DETECTION_MAPPING_NAMES]; +} + +export class AutoModelForZeroShotObjectDetection extends PretrainedMixin { + static MODEL_CLASS_MAPPINGS = [MODEL_FOR_ZERO_SHOT_OBJECT_DETECTION_MAPPING_NAMES]; +} + + +/** + * Helper class which is used to instantiate pretrained mask generation models with the `from_pretrained` function. + * The chosen model class is determined by the type specified in the model config. + * + * @example + * let model = await AutoModelForMaskGeneration.from_pretrained('Xenova/sam-vit-base'); + */ +export class AutoModelForMaskGeneration extends PretrainedMixin { + static MODEL_CLASS_MAPPINGS = [MODEL_FOR_MASK_GENERATION_MAPPING_NAMES]; +} + +export class AutoModelForCTC extends PretrainedMixin { + static MODEL_CLASS_MAPPINGS = [MODEL_FOR_CTC_MAPPING_NAMES]; +} + +export class AutoModelForAudioClassification extends PretrainedMixin { + static MODEL_CLASS_MAPPINGS = [MODEL_FOR_AUDIO_CLASSIFICATION_MAPPING_NAMES]; +} + +export class AutoModelForDocumentQuestionAnswering extends PretrainedMixin { + static MODEL_CLASS_MAPPINGS = [MODEL_FOR_DOCUMENT_QUESTION_ANSWERING_MAPPING_NAMES]; +} + +export class AutoModelForImageMatting extends PretrainedMixin { + static MODEL_CLASS_MAPPINGS = [MODEL_FOR_IMAGE_MATTING_MAPPING_NAMES]; +} + +export class AutoModelForImageToImage extends PretrainedMixin { + static MODEL_CLASS_MAPPINGS = [MODEL_FOR_IMAGE_TO_IMAGE_MAPPING_NAMES]; +} + +export class AutoModelForDepthEstimation extends PretrainedMixin { + static MODEL_CLASS_MAPPINGS = [MODEL_FOR_DEPTH_ESTIMATION_MAPPING_NAMES]; +} + +////////////////////////////////////////////////// + +////////////////////////////////////////////////// +export class Seq2SeqLMOutput extends ModelOutput { + /** + * @param {Object} output The output of the model. + * @param {Tensor} output.logits The output logits of the model. + * @param {Tensor} output.past_key_values An tensor of key/value pairs that represent the previous state of the model. + * @param {Tensor} output.encoder_outputs The output of the encoder in a sequence-to-sequence model. + * @param {Tensor} [output.decoder_attentions] Attentions weights of the decoder, after the attention softmax, used to compute the weighted average in the self-attention heads. + * @param {Tensor} [output.cross_attentions] Attentions weights of the decoder's cross-attention layer, after the attention softmax, used to compute the weighted average in the cross-attention heads. + */ + constructor({ logits, past_key_values, encoder_outputs, decoder_attentions = null, cross_attentions = null }) { + super(); + this.logits = logits; + this.past_key_values = past_key_values; + this.encoder_outputs = encoder_outputs; + this.decoder_attentions = decoder_attentions; + this.cross_attentions = cross_attentions; + } +} + +/** + * Base class for outputs of sentence classification models. + */ +export class SequenceClassifierOutput extends ModelOutput { + /** + * @param {Object} output The output of the model. + * @param {Tensor} output.logits classification (or regression if config.num_labels==1) scores (before SoftMax). + */ + constructor({ logits }) { + super(); + this.logits = logits; + } +} + +/** + * Base class for outputs of token classification models. + */ +export class TokenClassifierOutput extends ModelOutput { + /** + * @param {Object} output The output of the model. + * @param {Tensor} output.logits Classification scores (before SoftMax). + */ + constructor({ logits }) { + super(); + this.logits = logits; + } +} + +/** + * Base class for masked language models outputs. + */ +export class MaskedLMOutput extends ModelOutput { + /** + * @param {Object} output The output of the model. + * @param {Tensor} output.logits Prediction scores of the language modeling head (scores for each vocabulary token before SoftMax). + */ + constructor({ logits }) { + super(); + this.logits = logits; + } +} + +/** + * Base class for outputs of question answering models. + */ +export class QuestionAnsweringModelOutput extends ModelOutput { + /** + * @param {Object} output The output of the model. + * @param {Tensor} output.start_logits Span-start scores (before SoftMax). + * @param {Tensor} output.end_logits Span-end scores (before SoftMax). + */ + constructor({ start_logits, end_logits }) { + super(); + this.start_logits = start_logits; + this.end_logits = end_logits; + } +} + + +/** + * Base class for causal language model (or autoregressive) outputs. + */ +export class CausalLMOutput extends ModelOutput { + /** + * @param {Object} output The output of the model. + * @param {Tensor} output.logits Prediction scores of the language modeling head (scores for each vocabulary token before softmax). + */ + constructor({ logits }) { + super(); + this.logits = logits; + } +} + +/** + * Base class for causal language model (or autoregressive) outputs. + */ +export class CausalLMOutputWithPast extends ModelOutput { + /** + * @param {Object} output The output of the model. + * @param {Tensor} output.logits Prediction scores of the language modeling head (scores for each vocabulary token before softmax). + * @param {Tensor} output.past_key_values Contains pre-computed hidden-states (key and values in the self-attention blocks) + * that can be used (see `past_key_values` input) to speed up sequential decoding. + */ + constructor({ logits, past_key_values }) { + super(); + this.logits = logits; + this.past_key_values = past_key_values; + } +} + +export class ImageMattingOutput extends ModelOutput { + /** + * @param {Object} output The output of the model. + * @param {Tensor} output.alphas Estimated alpha values, of shape `(batch_size, num_channels, height, width)`. + */ + constructor({ alphas }) { + super(); + this.alphas = alphas; + } +} + +/** + * Describes the outputs for the VITS model. + */ +export class VitsModelOutput extends ModelOutput { + /** + * @param {Object} output The output of the model. + * @param {Tensor} output.waveform The final audio waveform predicted by the model, of shape `(batch_size, sequence_length)`. + * @param {Tensor} output.spectrogram The log-mel spectrogram predicted at the output of the flow model. + * This spectrogram is passed to the Hi-Fi GAN decoder model to obtain the final audio waveform. + */ + constructor({ waveform, spectrogram }) { + super(); + this.waveform = waveform; + this.spectrogram = spectrogram; + } +} diff --git a/core/vendor/modules/@xenova/transformers/src/pipelines.js b/core/vendor/modules/@xenova/transformers/src/pipelines.js new file mode 100644 index 000000000..0c388e282 --- /dev/null +++ b/core/vendor/modules/@xenova/transformers/src/pipelines.js @@ -0,0 +1,3124 @@ +/** + * @file Pipelines provide a high-level, easy to use, API for running machine learning models. + * + * **Example:** Instantiate pipeline using the `pipeline` function. + * ```javascript + * import { pipeline } from '@xenova/transformers'; + * + * const classifier = await pipeline('sentiment-analysis'); + * const output = await classifier('I love transformers!'); + * // [{'label': 'POSITIVE', 'score': 0.999817686}] + * ``` + * + * @module pipelines + */ + +import { + AutoModel, + AutoModelForAudioClassification, + AutoModelForCTC, + AutoModelForCausalLM, + AutoModelForDepthEstimation, + AutoModelForDocumentQuestionAnswering, + AutoModelForImageClassification, + AutoModelForImageSegmentation, + AutoModelForImageToImage, + AutoModelForMaskedLM, + AutoModelForObjectDetection, + AutoModelForQuestionAnswering, + AutoModelForSemanticSegmentation, + AutoModelForSeq2SeqLM, + AutoModelForSequenceClassification, + AutoModelForSpeechSeq2Seq, + AutoModelForTextToSpectrogram, + AutoModelForTextToWaveform, + AutoModelForTokenClassification, + AutoModelForVision2Seq, + AutoModelForZeroShotObjectDetection, + PreTrainedModel, +} from './models.js'; +import { + AutoProcessor, + Processor +} from './processors.js'; +import { + AutoTokenizer, + PreTrainedTokenizer, +} from './tokenizers.js'; + + +import { + read_audio +} from './utils/audio.js'; +import { + Callable, + dispatchCallback, + pop, + product, +} from './utils/core.js'; +import { + getTopItems, + max, + round, + softmax, +} from './utils/maths.js'; +import { + Tensor, + interpolate, + mean_pooling, +} from './utils/tensor.js'; +// import { RawImage } from './utils/image.js'; + + +/** + * @typedef {string | RawImage | URL} ImageInput + * @typedef {ImageInput|ImageInput[]} ImagePipelineInputs + */ + +/** + * Prepare images for further tasks. + * @param {ImagePipelineInputs} images images to prepare. + * @returns {Promise} returns processed images. + * @private + */ +async function prepareImages(images) { + if (!Array.isArray(images)) { + images = [images]; + } + + // Possibly convert any non-images to images + // return await Promise.all(images.map(x => RawImage.read(x))); + return Promise.resolve([]); +} + +/** + * @typedef {string | URL | Float32Array | Float64Array} AudioInput + * @typedef {AudioInput|AudioInput[]} AudioPipelineInputs + */ + +/** + * Prepare audios for further tasks. + * @param {AudioPipelineInputs} audios audios to prepare. + * @param {number} sampling_rate sampling rate of the audios. + * @returns {Promise} The preprocessed audio data. + * @private + */ +async function prepareAudios(audios, sampling_rate) { + if (!Array.isArray(audios)) { + audios = [audios]; + } + + return await Promise.all(audios.map(x => { + if (typeof x === 'string' || x instanceof URL) { + return read_audio(x, sampling_rate); + } else if (x instanceof Float64Array) { + return new Float32Array(x); + } + return x; + })); +} + +/** + * @typedef {Object} BoundingBox + * @property {number} xmin The minimum x coordinate of the bounding box. + * @property {number} ymin The minimum y coordinate of the bounding box. + * @property {number} xmax The maximum x coordinate of the bounding box. + * @property {number} ymax The maximum y coordinate of the bounding box. + */ + +/** + * Helper function to convert list [xmin, xmax, ymin, ymax] into object { "xmin": xmin, ... } + * @param {number[]} box The bounding box as a list. + * @param {boolean} asInteger Whether to cast to integers. + * @returns {BoundingBox} The bounding box as an object. + * @private + */ +function get_bounding_box(box, asInteger) { + if (asInteger) { + box = box.map(x => x | 0); + } + const [xmin, ymin, xmax, ymax] = box; + + return { xmin, ymin, xmax, ymax }; +} + + +/** + * @callback DisposeType Disposes the item. + * @returns {Promise} A promise that resolves when the item has been disposed. + * + * @typedef {Object} Disposable + * @property {DisposeType} dispose A promise that resolves when the pipeline has been disposed. + */ + +/** + * The Pipeline class is the class from which all pipelines inherit. + * Refer to this class for methods shared across different pipelines. + * @extends Callable + */ +export class Pipeline extends Callable { + /** + * Create a new Pipeline. + * @param {Object} options An object containing the following properties: + * @param {string} [options.task] The task of the pipeline. Useful for specifying subtasks. + * @param {PreTrainedModel} [options.model] The model used by the pipeline. + * @param {PreTrainedTokenizer} [options.tokenizer=null] The tokenizer used by the pipeline (if any). + * @param {Processor} [options.processor=null] The processor used by the pipeline (if any). + */ + constructor({ task, model, tokenizer = null, processor = null }) { + super(); + this.task = task; + this.model = model; + this.tokenizer = tokenizer; + this.processor = processor; + } + + /** @type {DisposeType} */ + async dispose() { + await this.model.dispose(); + } +} + +/** + * @typedef {Object} ModelTokenizerConstructorArgs + * @property {string} task The task of the pipeline. Useful for specifying subtasks. + * @property {PreTrainedModel} model The model used by the pipeline. + * @property {PreTrainedTokenizer} tokenizer The tokenizer used by the pipeline. + * + * @typedef {ModelTokenizerConstructorArgs} TextPipelineConstructorArgs An object used to instantiate a text-based pipeline. + */ + +/** + * @typedef {Object} ModelProcessorConstructorArgs + * @property {string} task The task of the pipeline. Useful for specifying subtasks. + * @property {PreTrainedModel} model The model used by the pipeline. + * @property {Processor} processor The processor used by the pipeline. + * + * @typedef {ModelProcessorConstructorArgs} AudioPipelineConstructorArgs An object used to instantiate an audio-based pipeline. + * @typedef {ModelProcessorConstructorArgs} ImagePipelineConstructorArgs An object used to instantiate an image-based pipeline. + */ + + +/** + * @typedef {Object} ModelTokenizerProcessorConstructorArgs + * @property {string} task The task of the pipeline. Useful for specifying subtasks. + * @property {PreTrainedModel} model The model used by the pipeline. + * @property {PreTrainedTokenizer} tokenizer The tokenizer used by the pipeline. + * @property {Processor} processor The processor used by the pipeline. + * + * @typedef {ModelTokenizerProcessorConstructorArgs} TextAudioPipelineConstructorArgs An object used to instantiate a text- and audio-based pipeline. + * @typedef {ModelTokenizerProcessorConstructorArgs} TextImagePipelineConstructorArgs An object used to instantiate a text- and image-based pipeline. + */ + +/** + * @typedef {Object} TextClassificationSingle + * @property {string} label The label predicted. + * @property {number} score The corresponding probability. + * @typedef {TextClassificationSingle[]} TextClassificationOutput + * + * @typedef {Object} TextClassificationPipelineOptions Parameters specific to text classification pipelines. + * @property {number} [topk=1] The number of top predictions to be returned. + * + * @callback TextClassificationPipelineCallback Classify the text(s) given as inputs. + * @param {string|string[]} texts The input text(s) to be classified. + * @param {TextClassificationPipelineOptions} [options] The options to use for text classification. + * @returns {Promise} An array or object containing the predicted labels and scores. + * + * @typedef {TextPipelineConstructorArgs & TextClassificationPipelineCallback & Disposable} TextClassificationPipelineType + */ + +/** + * Text classification pipeline using any `ModelForSequenceClassification`. + * + * **Example:** Sentiment-analysis w/ `Xenova/distilbert-base-uncased-finetuned-sst-2-english`. + * ```javascript + * const classifier = await pipeline('sentiment-analysis', 'Xenova/distilbert-base-uncased-finetuned-sst-2-english'); + * const output = await classifier('I love transformers!'); + * // [{ label: 'POSITIVE', score: 0.999788761138916 }] + * ``` + * + * **Example:** Multilingual sentiment-analysis w/ `Xenova/bert-base-multilingual-uncased-sentiment` (and return top 5 classes). + * ```javascript + * const classifier = await pipeline('sentiment-analysis', 'Xenova/bert-base-multilingual-uncased-sentiment'); + * const output = await classifier('Le meilleur film de tous les temps.', { topk: 5 }); + * // [ + * // { label: '5 stars', score: 0.9610759615898132 }, + * // { label: '4 stars', score: 0.03323351591825485 }, + * // { label: '3 stars', score: 0.0036155181005597115 }, + * // { label: '1 star', score: 0.0011325967498123646 }, + * // { label: '2 stars', score: 0.0009423971059732139 } + * // ] + * ``` + * + * **Example:** Toxic comment classification w/ `Xenova/toxic-bert` (and return all classes). + * ```javascript + * const classifier = await pipeline('text-classification', 'Xenova/toxic-bert'); + * const output = await classifier('I hate you!', { topk: null }); + * // [ + * // { label: 'toxic', score: 0.9593140482902527 }, + * // { label: 'insult', score: 0.16187334060668945 }, + * // { label: 'obscene', score: 0.03452680632472038 }, + * // { label: 'identity_hate', score: 0.0223250575363636 }, + * // { label: 'threat', score: 0.019197041168808937 }, + * // { label: 'severe_toxic', score: 0.005651099607348442 } + * // ] + * ``` + */ +export class TextClassificationPipeline extends (/** @type {new (options: TextPipelineConstructorArgs) => TextClassificationPipelineType} */ (Pipeline)) { + + /** + * Create a new TextClassificationPipeline. + * @param {TextPipelineConstructorArgs} options An object used to instantiate the pipeline. + */ + constructor(options) { + super(options); + } + + /** @type {TextClassificationPipelineCallback} */ + async _call(texts, { + topk = 1 + } = {}) { + + // Run tokenization + const model_inputs = this.tokenizer(texts, { + padding: true, + truncation: true, + }); + + // Run model + const outputs = await this.model(model_inputs) + + // TODO: Use softmax tensor function + const function_to_apply = + this.model.config.problem_type === 'multi_label_classification' + ? batch => batch.sigmoid().data + : batch => softmax(batch.data); // single_label_classification (default) + + const id2label = this.model.config.id2label; + + const toReturn = []; + for (const batch of outputs.logits) { + const output = function_to_apply(batch); + const scores = getTopItems(output, topk); + + const vals = scores.map(x => ({ + label: id2label[x[0]], + score: x[1], + })); + if (topk === 1) { + toReturn.push(...vals); + } else { + toReturn.push(vals); + } + } + + return Array.isArray(texts) || topk === 1 ? /** @type {TextClassificationOutput} */ (toReturn) : /** @type {TextClassificationOutput[]} */ (toReturn)[0]; + } +} + +/** + * @typedef {Object} TokenClassificationSingle + * @property {string} word The token/word classified. This is obtained by decoding the selected tokens. + * @property {number} score The corresponding probability for `entity`. + * @property {string} entity The entity predicted for that token/word. + * @property {number} index The index of the corresponding token in the sentence. + * @property {number} [start] The index of the start of the corresponding entity in the sentence. + * @property {number} [end] The index of the end of the corresponding entity in the sentence. + * @typedef {TokenClassificationSingle[]} TokenClassificationOutput + * + * @typedef {Object} TokenClassificationPipelineOptions Parameters specific to token classification pipelines. + * @property {string[]} [ignore_labels] A list of labels to ignore. + * + * @callback TokenClassificationPipelineCallback Classify each token of the text(s) given as inputs. + * @param {string|string[]} texts One or several texts (or one list of texts) for token classification. + * @param {TokenClassificationPipelineOptions} [options] The options to use for token classification. + * @returns {Promise} The result. + * + * @typedef {TextPipelineConstructorArgs & TokenClassificationPipelineCallback & Disposable} TokenClassificationPipelineType + */ + +/** + * Named Entity Recognition pipeline using any `ModelForTokenClassification`. + * + * **Example:** Perform named entity recognition with `Xenova/bert-base-NER`. + * ```javascript + * const classifier = await pipeline('token-classification', 'Xenova/bert-base-NER'); + * const output = await classifier('My name is Sarah and I live in London'); + * // [ + * // { entity: 'B-PER', score: 0.9980202913284302, index: 4, word: 'Sarah' }, + * // { entity: 'B-LOC', score: 0.9994474053382874, index: 9, word: 'London' } + * // ] + * ``` + * + * **Example:** Perform named entity recognition with `Xenova/bert-base-NER` (and return all labels). + * ```javascript + * const classifier = await pipeline('token-classification', 'Xenova/bert-base-NER'); + * const output = await classifier('Sarah lives in the United States of America', { ignore_labels: [] }); + * // [ + * // { entity: 'B-PER', score: 0.9966587424278259, index: 1, word: 'Sarah' }, + * // { entity: 'O', score: 0.9987385869026184, index: 2, word: 'lives' }, + * // { entity: 'O', score: 0.9990072846412659, index: 3, word: 'in' }, + * // { entity: 'O', score: 0.9988298416137695, index: 4, word: 'the' }, + * // { entity: 'B-LOC', score: 0.9995510578155518, index: 5, word: 'United' }, + * // { entity: 'I-LOC', score: 0.9990395307540894, index: 6, word: 'States' }, + * // { entity: 'I-LOC', score: 0.9986724853515625, index: 7, word: 'of' }, + * // { entity: 'I-LOC', score: 0.9975294470787048, index: 8, word: 'America' } + * // ] + * ``` + */ +export class TokenClassificationPipeline extends (/** @type {new (options: TextPipelineConstructorArgs) => TokenClassificationPipelineType} */ (Pipeline)) { + + /** + * Create a new TokenClassificationPipeline. + * @param {TextPipelineConstructorArgs} options An object used to instantiate the pipeline. + */ + constructor(options) { + super(options); + } + + /** @type {TokenClassificationPipelineCallback} */ + async _call(texts, { + ignore_labels = ['O'], + } = {}) { + + const isBatched = Array.isArray(texts); + + // Run tokenization + const model_inputs = this.tokenizer(isBatched ? texts : [texts], { + padding: true, + truncation: true, + }); + + // Run model + const outputs = await this.model(model_inputs) + + const logits = outputs.logits; + const id2label = this.model.config.id2label; + + const toReturn = []; + for (let i = 0; i < logits.dims[0]; ++i) { + const ids = model_inputs.input_ids[i]; + const batch = logits[i]; + + // List of tokens that aren't ignored + const tokens = []; + for (let j = 0; j < batch.dims[0]; ++j) { + const tokenData = batch[j]; + const topScoreIndex = max(tokenData.data)[1]; + + const entity = id2label ? id2label[topScoreIndex] : `LABEL_${topScoreIndex}`; + if (ignore_labels.includes(entity)) { + // We predicted a token that should be ignored. So, we skip it. + continue; + } + + // TODO add option to keep special tokens? + const word = this.tokenizer.decode([ids[j].item()], { skip_special_tokens: true }); + if (word === '') { + // Was a special token. So, we skip it. + continue; + } + + const scores = softmax(tokenData.data); + + tokens.push({ + entity: entity, + score: scores[topScoreIndex], + index: j, + word: word, + + // TODO: null for now, but will add + start: null, + end: null, + }); + } + toReturn.push(tokens); + } + return isBatched ? toReturn : toReturn[0]; + } +} + +/** + * @typedef {Object} QuestionAnsweringOutput + * @property {number} score The probability associated to the answer. + * @property {number} [start] The character start index of the answer (in the tokenized version of the input). + * @property {number} [end] The character end index of the answer (in the tokenized version of the input). + * @property {string} answer The answer to the question. + * + * @typedef {Object} QuestionAnsweringPipelineOptions Parameters specific to question answering pipelines. + * @property {number} [topk=1] The number of top answer predictions to be returned. + * + * @callback QuestionAnsweringPipelineCallback Answer the question(s) given as inputs by using the context(s). + * @param {string|string[]} question One or several question(s) (must be used in conjunction with the `context` argument). + * @param {string|string[]} context One or several context(s) associated with the question(s) (must be used in conjunction with the `question` argument). + * @param {QuestionAnsweringPipelineOptions} [options] The options to use for question answering. + * @returns {Promise} An array or object containing the predicted answers and scores. + * + * @typedef {TextPipelineConstructorArgs & QuestionAnsweringPipelineCallback & Disposable} QuestionAnsweringPipelineType + */ + +/** + * Question Answering pipeline using any `ModelForQuestionAnswering`. + * + * **Example:** Run question answering with `Xenova/distilbert-base-uncased-distilled-squad`. + * ```javascript + * const answerer = await pipeline('question-answering', 'Xenova/distilbert-base-uncased-distilled-squad'); + * const question = 'Who was Jim Henson?'; + * const context = 'Jim Henson was a nice puppet.'; + * const output = await answerer(question, context); + * // { + * // answer: "a nice puppet", + * // score: 0.5768911502526741 + * // } + * ``` + */ +export class QuestionAnsweringPipeline extends (/** @type {new (options: TextPipelineConstructorArgs) => QuestionAnsweringPipelineType} */ (Pipeline)) { + + /** + * Create a new QuestionAnsweringPipeline. + * @param {TextPipelineConstructorArgs} options An object used to instantiate the pipeline. + */ + constructor(options) { + super(options); + } + + /** @type {QuestionAnsweringPipelineCallback} */ + async _call(question, context, { + topk = 1 + } = {}) { + + // Run tokenization + const inputs = this.tokenizer(question, { + text_pair: context, + padding: true, + truncation: true, + }); + + const output = await this.model(inputs); + + /** @type {QuestionAnsweringOutput[]} */ + const toReturn = []; + for (let j = 0; j < output.start_logits.dims[0]; ++j) { + const ids = inputs.input_ids[j]; + const sepIndex = ids.indexOf(this.tokenizer.sep_token_id); + + const s1 = Array.from(softmax(output.start_logits[j].data)) + .map((x, i) => [x, i]) + .filter(x => x[1] > sepIndex); + const e1 = Array.from(softmax(output.end_logits[j].data)) + .map((x, i) => [x, i]) + .filter(x => x[1] > sepIndex); + + const options = product(s1, e1) + .filter(x => x[0][1] <= x[1][1]) + .map(x => [x[0][1], x[1][1], x[0][0] * x[1][0]]) + .sort((a, b) => b[2] - a[2]); + + for (let k = 0; k < Math.min(options.length, topk); ++k) { + const [start, end, score] = options[k]; + + const answer_tokens = [...ids].slice(start, end + 1) + + const answer = this.tokenizer.decode(answer_tokens, { + skip_special_tokens: true, + }); + + // TODO add start and end? + // NOTE: HF returns character index + toReturn.push({ + answer, score + }); + } + } + + // Mimic HF's return type based on topk + return (topk === 1) ? toReturn[0] : toReturn; + } +} + + +/** + * @typedef {Object} FillMaskSingle + * @property {string} sequence The corresponding input with the mask token prediction. + * @property {number} score The corresponding probability. + * @property {number} token The predicted token id (to replace the masked one). + * @property {string} token_str The predicted token (to replace the masked one). + * @typedef {FillMaskSingle[]} FillMaskOutput + * + * @typedef {Object} FillMaskPipelineOptions Parameters specific to fill mask pipelines. + * @property {number} [topk=5] When passed, overrides the number of predictions to return. + * + * @callback FillMaskPipelineCallback Fill the masked token in the text(s) given as inputs. + * @param {string|string[]} texts One or several texts (or one list of prompts) with masked tokens. + * @param {FillMaskPipelineOptions} [options] The options to use for masked language modelling. + * @returns {Promise} An array of objects containing the score, predicted token, predicted token string, + * and the sequence with the predicted token filled in, or an array of such arrays (one for each input text). + * If only one input text is given, the output will be an array of objects. + * @throws {Error} When the mask token is not found in the input text. + * + * @typedef {TextPipelineConstructorArgs & FillMaskPipelineCallback & Disposable} FillMaskPipelineType + */ + +/** + * Masked language modeling prediction pipeline using any `ModelWithLMHead`. + * + * **Example:** Perform masked language modelling (a.k.a. "fill-mask") with `Xenova/bert-base-uncased`. + * ```javascript + * const unmasker = await pipeline('fill-mask', 'Xenova/bert-base-cased'); + * const output = await unmasker('The goal of life is [MASK].'); + * // [ + * // { token_str: 'survival', score: 0.06137419492006302, token: 8115, sequence: 'The goal of life is survival.' }, + * // { token_str: 'love', score: 0.03902450203895569, token: 1567, sequence: 'The goal of life is love.' }, + * // { token_str: 'happiness', score: 0.03253183513879776, token: 9266, sequence: 'The goal of life is happiness.' }, + * // { token_str: 'freedom', score: 0.018736306577920914, token: 4438, sequence: 'The goal of life is freedom.' }, + * // { token_str: 'life', score: 0.01859794743359089, token: 1297, sequence: 'The goal of life is life.' } + * // ] + * ``` + * + * **Example:** Perform masked language modelling (a.k.a. "fill-mask") with `Xenova/bert-base-cased` (and return top result). + * ```javascript + * const unmasker = await pipeline('fill-mask', 'Xenova/bert-base-cased'); + * const output = await unmasker('The Milky Way is a [MASK] galaxy.', { topk: 1 }); + * // [{ token_str: 'spiral', score: 0.6299987435340881, token: 14061, sequence: 'The Milky Way is a spiral galaxy.' }] + * ``` + */ +export class FillMaskPipeline extends (/** @type {new (options: TextPipelineConstructorArgs) => FillMaskPipelineType} */ (Pipeline)) { + + /** + * Create a new FillMaskPipeline. + * @param {TextPipelineConstructorArgs} options An object used to instantiate the pipeline. + */ + constructor(options) { + super(options); + } + + /** @type {FillMaskPipelineCallback} */ + async _call(texts, { + topk = 5 + } = {}) { + + // Run tokenization + const model_inputs = this.tokenizer(texts, { + padding: true, + truncation: true, + }); + + // Run model + const outputs = await this.model(model_inputs) + + const toReturn = []; + + for (let i = 0; i < model_inputs.input_ids.dims[0]; ++i) { + const ids = model_inputs.input_ids[i]; + const mask_token_index = ids.indexOf(this.tokenizer.mask_token_id) + + if (mask_token_index === -1) { + throw Error(`Mask token (${this.tokenizer.mask_token}) not found in text.`) + } + const logits = outputs.logits[i]; + const itemLogits = logits[mask_token_index]; + + const scores = getTopItems(softmax(itemLogits.data), topk); + + toReturn.push(scores.map(x => { + const sequence = [...ids]; + sequence[mask_token_index] = x[0]; + + return { + score: x[1], + token: x[0], + token_str: this.tokenizer.model.vocab[x[0]], + sequence: this.tokenizer.decode(sequence, { skip_special_tokens: true }), + } + })); + } + return Array.isArray(texts) ? toReturn : toReturn[0]; + } +} + + +/** + * @typedef {Object} Text2TextGenerationSingle + * @property {string} generated_text The generated text. + * @typedef {Text2TextGenerationSingle[]} Text2TextGenerationOutput + * + * @callback Text2TextGenerationPipelineCallback Generate the output text(s) using text(s) given as inputs. + * @param {string|string[]} texts Input text for the encoder. + * @param {import('./utils/generation.js').GenerationConfigType} [options] Additional keyword arguments to pass along to the generate method of the model. + * @returns {Promise} + * + * @typedef {TextPipelineConstructorArgs & Text2TextGenerationPipelineCallback & Disposable} Text2TextGenerationPipelineType + */ + +/** + * Text2TextGenerationPipeline class for generating text using a model that performs text-to-text generation tasks. + * + * **Example:** Text-to-text generation w/ `Xenova/LaMini-Flan-T5-783M`. + * ```javascript + * const generator = await pipeline('text2text-generation', 'Xenova/LaMini-Flan-T5-783M'); + * const output = await generator('how can I become more healthy?', { + * max_new_tokens: 100, + * }); + * // [{ generated_text: "To become more healthy, you can: 1. Eat a balanced diet with plenty of fruits, vegetables, whole grains, lean proteins, and healthy fats. 2. Stay hydrated by drinking plenty of water. 3. Get enough sleep and manage stress levels. 4. Avoid smoking and excessive alcohol consumption. 5. Regularly exercise and maintain a healthy weight. 6. Practice good hygiene and sanitation. 7. Seek medical attention if you experience any health issues." }] + * ``` + */ +export class Text2TextGenerationPipeline extends (/** @type {new (options: TextPipelineConstructorArgs) => Text2TextGenerationPipelineType} */ (Pipeline)) { + /** @type {'generated_text'} */ + _key = 'generated_text'; + + /** + * Create a new Text2TextGenerationPipeline. + * @param {TextPipelineConstructorArgs} options An object used to instantiate the pipeline. + */ + constructor(options) { + super(options); + } + + /** @type {Text2TextGenerationPipelineCallback} */ + async _call(texts, generate_kwargs = {}) { + if (!Array.isArray(texts)) { + texts = [texts]; + } + + + // Add global prefix, if present + if (this.model.config.prefix) { + texts = texts.map(x => this.model.config.prefix + x) + } + + // Handle task specific params: + const task_specific_params = this.model.config.task_specific_params + if (task_specific_params && task_specific_params[this.task]) { + // Add prefixes, if present + if (task_specific_params[this.task].prefix) { + texts = texts.map(x => task_specific_params[this.task].prefix + x) + } + + // TODO update generation config + } + + const tokenizer = this.tokenizer; + const tokenizer_options = { + padding: true, + truncation: true, + } + let input_ids; + if (this instanceof TranslationPipeline && '_build_translation_inputs' in tokenizer) { + // TODO: move to Translation pipeline? + // Currently put here to avoid code duplication + // @ts-ignore + input_ids = tokenizer._build_translation_inputs(texts, tokenizer_options, generate_kwargs).input_ids; + + } else { + input_ids = tokenizer(texts, tokenizer_options).input_ids; + } + + const outputTokenIds = await this.model.generate(input_ids, generate_kwargs); + + return tokenizer.batch_decode(outputTokenIds, { + skip_special_tokens: true, + }).map(text => ({ [this._key]: text })); + } +} + + +/** + * @typedef {Object} SummarizationSingle + * @property {string} summary_text The summary text. + * @typedef {SummarizationSingle[]} SummarizationOutput + * + * @callback SummarizationPipelineCallback Summarize the text(s) given as inputs. + * @param {string|string[]} texts One or several articles (or one list of articles) to summarize. + * @param {import('./utils/generation.js').GenerationConfigType} [options] Additional keyword arguments to pass along to the generate method of the model. + * @returns {Promise} + * + * @typedef {TextPipelineConstructorArgs & SummarizationPipelineCallback & Disposable} SummarizationPipelineType + */ + +/** + * A pipeline for summarization tasks, inheriting from Text2TextGenerationPipeline. + * + * **Example:** Summarization w/ `Xenova/distilbart-cnn-6-6`. + * ```javascript + * const generator = await pipeline('summarization', 'Xenova/distilbart-cnn-6-6'); + * const text = 'The tower is 324 metres (1,063 ft) tall, about the same height as an 81-storey building, ' + + * 'and the tallest structure in Paris. Its base is square, measuring 125 metres (410 ft) on each side. ' + + * 'During its construction, the Eiffel Tower surpassed the Washington Monument to become the tallest ' + + * 'man-made structure in the world, a title it held for 41 years until the Chrysler Building in New ' + + * 'York City was finished in 1930. It was the first structure to reach a height of 300 metres. Due to ' + + * 'the addition of a broadcasting aerial at the top of the tower in 1957, it is now taller than the ' + + * 'Chrysler Building by 5.2 metres (17 ft). Excluding transmitters, the Eiffel Tower is the second ' + + * 'tallest free-standing structure in France after the Millau Viaduct.'; + * const output = await generator(text, { + * max_new_tokens: 100, + * }); + * // [{ summary_text: ' The Eiffel Tower is about the same height as an 81-storey building and the tallest structure in Paris. It is the second tallest free-standing structure in France after the Millau Viaduct.' }] + * ``` + */ +export class SummarizationPipeline extends (/** @type {new (options: TextPipelineConstructorArgs) => SummarizationPipelineType} */ (/** @type {any} */ (Text2TextGenerationPipeline))) { + /** @type {'summary_text'} */ + _key = 'summary_text'; + + /** + * Create a new SummarizationPipeline. + * @param {TextPipelineConstructorArgs} options An object used to instantiate the pipeline. + */ + constructor(options) { + super(options); + } +} + + +/** + * @typedef {Object} TranslationSingle + * @property {string} translation_text The translated text. + * @typedef {TranslationSingle[]} TranslationOutput + * + * @callback TranslationPipelineCallback Translate the text(s) given as inputs. + * @param {string|string[]} texts Texts to be translated. + * @param {import('./utils/generation.js').GenerationConfigType} [options] Additional keyword arguments to pass along to the generate method of the model. + * @returns {Promise} + * + * @typedef {TextPipelineConstructorArgs & TranslationPipelineCallback & Disposable} TranslationPipelineType + */ + +/** + * Translates text from one language to another. + * + * **Example:** Multilingual translation w/ `Xenova/nllb-200-distilled-600M`. + * + * See [here](https://github.com/facebookresearch/flores/blob/main/flores200/README.md#languages-in-flores-200) + * for the full list of languages and their corresponding codes. + * + * ```javascript + * const translator = await pipeline('translation', 'Xenova/nllb-200-distilled-600M'); + * const output = await translator('जीवन एक चॉकलेट बॉक्स की तरह है।', { + * src_lang: 'hin_Deva', // Hindi + * tgt_lang: 'fra_Latn', // French + * }); + * // [{ translation_text: 'La vie est comme une boîte à chocolat.' }] + * ``` + * + * **Example:** Multilingual translation w/ `Xenova/m2m100_418M`. + * + * See [here](https://huggingface.co/facebook/m2m100_418M#languages-covered) + * for the full list of languages and their corresponding codes. + * + * ```javascript + * const translator = await pipeline('translation', 'Xenova/m2m100_418M'); + * const output = await translator('生活就像一盒巧克力。', { + * src_lang: 'zh', // Chinese + * tgt_lang: 'en', // English + * }); + * // [{ translation_text: 'Life is like a box of chocolate.' }] + * ``` + * + * **Example:** Multilingual translation w/ `Xenova/mbart-large-50-many-to-many-mmt`. + * + * See [here](https://huggingface.co/facebook/mbart-large-50-many-to-many-mmt#languages-covered) + * for the full list of languages and their corresponding codes. + * + * ```javascript + * const translator = await pipeline('translation', 'Xenova/mbart-large-50-many-to-many-mmt'); + * const output = await translator('संयुक्त राष्ट्र के प्रमुख का कहना है कि सीरिया में कोई सैन्य समाधान नहीं है', { + * src_lang: 'hi_IN', // Hindi + * tgt_lang: 'fr_XX', // French + * }); + * // [{ translation_text: 'Le chef des Nations affirme qu 'il n 'y a military solution in Syria.' }] + * ``` + */ +export class TranslationPipeline extends (/** @type {new (options: TextPipelineConstructorArgs) => TranslationPipelineType} */ (/** @type {any} */ (Text2TextGenerationPipeline))) { + /** @type {'translation_text'} */ + _key = 'translation_text'; + + /** + * Create a new TranslationPipeline. + * @param {TextPipelineConstructorArgs} options An object used to instantiate the pipeline. + */ + constructor(options) { + super(options); + } +} + + +/** + * @typedef {Object} TextGenerationSingle + * @property {string} generated_text The generated text. + * @typedef {TextGenerationSingle[]} TextGenerationOutput + * + * @typedef {Object} TextGenerationSpecificParams Parameters specific to text-generation pipelines. + * @property {boolean} [add_special_tokens] Whether or not to add special tokens when tokenizing the sequences. + * @typedef {import('./utils/generation.js').GenerationConfigType & TextGenerationSpecificParams} TextGenerationConfig + * + * @callback TextGenerationPipelineCallback Complete the prompt(s) given as inputs. + * @param {string|string[]} texts One or several prompts (or one list of prompts) to complete. + * @param {TextGenerationConfig} [options] Additional keyword arguments to pass along to the generate method of the model. + * @returns {Promise} An array or object containing the generated texts. + * + * @typedef {TextPipelineConstructorArgs & TextGenerationPipelineCallback & Disposable} TextGenerationPipelineType + */ + +/** + * Language generation pipeline using any `ModelWithLMHead` or `ModelForCausalLM`. + * This pipeline predicts the words that will follow a specified text prompt. + * NOTE: For the full list of generation parameters, see [`GenerationConfig`](./utils/generation#module_utils/generation.GenerationConfig). + * + * **Example:** Text generation with `Xenova/distilgpt2` (default settings). + * ```javascript + * const generator = await pipeline('text-generation', 'Xenova/distilgpt2'); + * const text = 'I enjoy walking with my cute dog,'; + * const output = await generator(text); + * // [{ generated_text: "I enjoy walking with my cute dog, and I love to play with the other dogs." }] + * ``` + * + * **Example:** Text generation with `Xenova/distilgpt2` (custom settings). + * ```javascript + * const generator = await pipeline('text-generation', 'Xenova/distilgpt2'); + * const text = 'Once upon a time, there was'; + * const output = await generator(text, { + * temperature: 2, + * max_new_tokens: 10, + * repetition_penalty: 1.5, + * no_repeat_ngram_size: 2, + * num_beams: 2, + * num_return_sequences: 2, + * }); + * // [{ + * // "generated_text": "Once upon a time, there was an abundance of information about the history and activities that" + * // }, { + * // "generated_text": "Once upon a time, there was an abundance of information about the most important and influential" + * // }] + * ``` + * + * **Example:** Run code generation with `Xenova/codegen-350M-mono`. + * ```javascript + * const generator = await pipeline('text-generation', 'Xenova/codegen-350M-mono'); + * const text = 'def fib(n):'; + * const output = await generator(text, { + * max_new_tokens: 44, + * }); + * // [{ + * // generated_text: 'def fib(n):\n' + + * // ' if n == 0:\n' + + * // ' return 0\n' + + * // ' elif n == 1:\n' + + * // ' return 1\n' + + * // ' else:\n' + + * // ' return fib(n-1) + fib(n-2)\n' + * // }] + * ``` + */ +export class TextGenerationPipeline extends (/** @type {new (options: TextPipelineConstructorArgs) => TextGenerationPipelineType} */ (Pipeline)) { + + /** + * Create a new TextGenerationPipeline. + * @param {TextPipelineConstructorArgs} options An object used to instantiate the pipeline. + */ + constructor(options) { + super(options); + } + + /** @type {TextGenerationPipelineCallback} */ + async _call(texts, generate_kwargs = {}) { + + const isBatched = Array.isArray(texts); + if (!isBatched) { + texts = [/** @type {string}*/ (texts)]; + } + + // By default, do not add special tokens + const add_special_tokens = generate_kwargs.add_special_tokens ?? false; + + this.tokenizer.padding_side = 'left'; + const { input_ids, attention_mask } = this.tokenizer(texts, { + add_special_tokens, + padding: true, + truncation: true, + }); + + const outputTokenIds = await this.model.generate(input_ids, generate_kwargs, null, { + inputs_attention_mask: attention_mask + }); + + const decoded = this.tokenizer.batch_decode(outputTokenIds, { + skip_special_tokens: true, + }); + + /** @type {TextGenerationOutput[]} */ + const toReturn = Array.from({ length: texts.length }, _ => []); + for (let i = 0; i < decoded.length; ++i) { + const textIndex = Math.floor(i / outputTokenIds.length * texts.length); + + toReturn[textIndex].push({ + generated_text: decoded[i] + }); + } + return (!isBatched && toReturn.length === 1) ? toReturn[0] : toReturn; + } +} + +/** + * @typedef {Object} ZeroShotClassificationOutput + * @property {string} sequence The sequence for which this is the output. + * @property {string[]} labels The labels sorted by order of likelihood. + * @property {number[]} scores The probabilities for each of the labels. + * + * @typedef {Object} ZeroShotClassificationPipelineOptions Parameters specific to zero-shot classification pipelines. + * @property {string} [hypothesis_template="This example is {}."] The template used to turn each + * candidate label into an NLI-style hypothesis. The candidate label will replace the {} placeholder. + * @property {boolean} [multi_label=false] Whether or not multiple candidate labels can be true. + * If `false`, the scores are normalized such that the sum of the label likelihoods for each sequence + * is 1. If `true`, the labels are considered independent and probabilities are normalized for each + * candidate by doing a softmax of the entailment score vs. the contradiction score. + * + * @callback ZeroShotClassificationPipelineCallback Classify the sequence(s) given as inputs. + * @param {string|string[]} texts The sequence(s) to classify, will be truncated if the model input is too large. + * @param {string|string[]} candidate_labels The set of possible class labels to classify each sequence into. + * Can be a single label, a string of comma-separated labels, or a list of labels. + * @param {ZeroShotClassificationPipelineOptions} [options] The options to use for zero-shot classification. + * @returns {Promise} An array or object containing the predicted labels and scores. + * + * @typedef {TextPipelineConstructorArgs & ZeroShotClassificationPipelineCallback & Disposable} ZeroShotClassificationPipelineType + */ + +/** + * NLI-based zero-shot classification pipeline using a `ModelForSequenceClassification` + * trained on NLI (natural language inference) tasks. Equivalent of `text-classification` + * pipelines, but these models don't require a hardcoded number of potential classes, they + * can be chosen at runtime. It usually means it's slower but it is **much** more flexible. + * + * **Example:** Zero shot classification with `Xenova/mobilebert-uncased-mnli`. + * ```javascript + * const classifier = await pipeline('zero-shot-classification', 'Xenova/mobilebert-uncased-mnli'); + * const text = 'Last week I upgraded my iOS version and ever since then my phone has been overheating whenever I use your app.'; + * const labels = [ 'mobile', 'billing', 'website', 'account access' ]; + * const output = await classifier(text, labels); + * // { + * // sequence: 'Last week I upgraded my iOS version and ever since then my phone has been overheating whenever I use your app.', + * // labels: [ 'mobile', 'website', 'billing', 'account access' ], + * // scores: [ 0.5562091040482018, 0.1843621307860853, 0.13942646639336376, 0.12000229877234923 ] + * // } + * ``` + * + * **Example:** Zero shot classification with `Xenova/nli-deberta-v3-xsmall` (multi-label). + * ```javascript + * const classifier = await pipeline('zero-shot-classification', 'Xenova/nli-deberta-v3-xsmall'); + * const text = 'I have a problem with my iphone that needs to be resolved asap!'; + * const labels = [ 'urgent', 'not urgent', 'phone', 'tablet', 'computer' ]; + * const output = await classifier(text, labels, { multi_label: true }); + * // { + * // sequence: 'I have a problem with my iphone that needs to be resolved asap!', + * // labels: [ 'urgent', 'phone', 'computer', 'tablet', 'not urgent' ], + * // scores: [ 0.9958870956360275, 0.9923963400697035, 0.002333537946160235, 0.0015134138567598765, 0.0010699384208377163 ] + * // } + * ``` + */ +export class ZeroShotClassificationPipeline extends (/** @type {new (options: TextPipelineConstructorArgs) => ZeroShotClassificationPipelineType} */ (Pipeline)) { + /** + * Create a new ZeroShotClassificationPipeline. + * @param {TextPipelineConstructorArgs} options An object used to instantiate the pipeline. + */ + constructor(options) { + super(options); + + // Use model config to get label2id mapping + this.label2id = Object.fromEntries( + Object.entries((/** @type {any} */(this).model).config.label2id).map( + ([k, v]) => [k.toLowerCase(), v] + ) + ); + + this.entailment_id = this.label2id['entailment']; + if (this.entailment_id === undefined) { + console.warn("Could not find 'entailment' in label2id mapping. Using 2 as entailment_id."); + this.entailment_id = 2; + } + + this.contradiction_id = this.label2id['contradiction'] ?? this.label2id['not_entailment']; + if (this.contradiction_id === undefined) { + console.warn("Could not find 'contradiction' in label2id mapping. Using 0 as contradiction_id."); + this.contradiction_id = 0; + } + } + + /** @type {ZeroShotClassificationPipelineCallback} */ + async _call(texts, candidate_labels, { + hypothesis_template = "This example is {}.", + multi_label = false, + } = {}) { + + const isBatched = Array.isArray(texts); + if (!isBatched) { + texts = [/** @type {string} */ (texts)]; + } + if (!Array.isArray(candidate_labels)) { + candidate_labels = [candidate_labels]; + } + + // Insert labels into hypothesis template + const hypotheses = candidate_labels.map( + x => hypothesis_template.replace('{}', x) + ); + + // How to perform the softmax over the logits: + // - true: softmax over the entailment vs. contradiction dim for each label independently + // - false: softmax the "entailment" logits over all candidate labels + const softmaxEach = multi_label || candidate_labels.length === 1; + + /** @type {ZeroShotClassificationOutput[]} */ + const toReturn = []; + for (const premise of texts) { + const entails_logits = []; + + for (const hypothesis of hypotheses) { + const inputs = this.tokenizer(premise, { + text_pair: hypothesis, + padding: true, + truncation: true, + }) + const outputs = await this.model(inputs) + + if (softmaxEach) { + entails_logits.push([ + outputs.logits.data[this.contradiction_id], + outputs.logits.data[this.entailment_id] + ]) + } else { + entails_logits.push(outputs.logits.data[this.entailment_id]) + } + } + + /** @type {number[]} */ + const scores = softmaxEach + ? entails_logits.map(x => softmax(x)[1]) + : softmax(entails_logits); + + // Sort by scores (desc) and return scores with indices + const scores_sorted = scores + .map((x, i) => [x, i]) + .sort((a, b) => (b[0] - a[0])); + + toReturn.push({ + sequence: premise, + labels: scores_sorted.map(x => candidate_labels[x[1]]), + scores: scores_sorted.map(x => x[0]), + }); + } + return isBatched ? toReturn : toReturn[0]; + } +} + +/** + * @typedef {Object} FeatureExtractionPipelineOptions Parameters specific to feature extraction pipelines. + * @property {'none'|'mean'|'cls'} [pooling="none"] The pooling method to use. + * @property {boolean} [normalize=false] Whether or not to normalize the embeddings in the last dimension. + * + * @callback FeatureExtractionPipelineCallback Extract the features of the input(s). + * @param {string|string[]} texts One or several texts (or one list of texts) to get the features of. + * @param {FeatureExtractionPipelineOptions} [options] The options to use for feature extraction. + * @returns {Promise} The features computed by the model. + * + * @typedef {TextPipelineConstructorArgs & FeatureExtractionPipelineCallback & Disposable} FeatureExtractionPipelineType + */ + +/** + * Feature extraction pipeline using no model head. This pipeline extracts the hidden + * states from the base transformer, which can be used as features in downstream tasks. + * + * **Example:** Run feature extraction with `bert-base-uncased` (without pooling/normalization). + * ```javascript + * const extractor = await pipeline('feature-extraction', 'Xenova/bert-base-uncased', { revision: 'default' }); + * const output = await extractor('This is a simple test.'); + * // Tensor { + * // type: 'float32', + * // data: Float32Array [0.05939924716949463, 0.021655935794115067, ...], + * // dims: [1, 8, 768] + * // } + * ``` + * + * **Example:** Run feature extraction with `bert-base-uncased` (with pooling/normalization). + * ```javascript + * const extractor = await pipeline('feature-extraction', 'Xenova/bert-base-uncased', { revision: 'default' }); + * const output = await extractor('This is a simple test.', { pooling: 'mean', normalize: true }); + * // Tensor { + * // type: 'float32', + * // data: Float32Array [0.03373778983950615, -0.010106077417731285, ...], + * // dims: [1, 768] + * // } + * ``` + * + * **Example:** Calculating embeddings with `sentence-transformers` models. + * ```javascript + * const extractor = await pipeline('feature-extraction', 'Xenova/all-MiniLM-L6-v2'); + * const output = await extractor('This is a simple test.', { pooling: 'mean', normalize: true }); + * // Tensor { + * // type: 'float32', + * // data: Float32Array [0.09094982594251633, -0.014774246141314507, ...], + * // dims: [1, 384] + * // } + * ``` + */ +export class FeatureExtractionPipeline extends (/** @type {new (options: TextPipelineConstructorArgs) => FeatureExtractionPipelineType} */ (Pipeline)) { + /** + * Create a new FeatureExtractionPipeline. + * @param {TextPipelineConstructorArgs} options An object used to instantiate the pipeline. + */ + constructor(options) { + super(options); + } + + /** @type {FeatureExtractionPipelineCallback} */ + async _call(texts, { + pooling = /** @type {'none'} */('none'), + normalize = false, + } = {}) { + + // Run tokenization + const model_inputs = this.tokenizer(texts, { + padding: true, + truncation: true, + }); + + // Run model + const outputs = await this.model(model_inputs) + + // TODO: Provide warning to the user that they might be using model which was not exported + // specifically for feature extraction + // console.log(this.model.config) + // console.log(outputs) + + /** @type {Tensor} */ + let result = outputs.last_hidden_state ?? outputs.logits; + if (pooling === 'none') { + // Skip pooling + } else if (pooling === 'mean') { + result = mean_pooling(result, model_inputs.attention_mask); + } else if (pooling === 'cls') { + result = result.slice(null, 0); + } else { + throw Error(`Pooling method '${pooling}' not supported.`); + } + + if (normalize) { + result = result.normalize(2, -1); + } + + return result; + } +} + +// TODO +// export class SentenceSimilarityPipeline extends Pipeline { +// } + +/** + * @typedef {Object} AudioClassificationSingle + * @property {string} label The label predicted. + * @property {number} score The corresponding probability. + * @typedef {AudioClassificationSingle[]} AudioClassificationOutput + * + * @typedef {Object} AudioClassificationPipelineOptions Parameters specific to audio classification pipelines. + * @property {number} [topk=null] The number of top labels that will be returned by the pipeline. + * If the provided number is `null` or higher than the number of labels available in the model configuration, + * it will default to the number of labels. + * + * @callback AudioClassificationPipelineCallback Classify the sequence(s) given as inputs. + * @param {AudioPipelineInputs} audio The input audio file(s) to be classified. The input is either: + * - `string` or `URL` that is the filename/URL of the audio file, the file will be read at the processor's sampling rate + * to get the waveform using the [`AudioContext`](https://developer.mozilla.org/en-US/docs/Web/API/AudioContext) API. + * If `AudioContext` is not available, you should pass the raw waveform in as a Float32Array of shape `(n, )`. + * - `Float32Array` or `Float64Array` of shape `(n, )`, representing the raw audio at the correct sampling rate (no further check will be done). + * @param {AudioClassificationPipelineOptions} [options] The options to use for audio classification. + * @returns {Promise} An array or object containing the predicted labels and scores. + * + * @typedef {AudioPipelineConstructorArgs & AudioClassificationPipelineCallback & Disposable} AudioClassificationPipelineType + */ + +/** + * Audio classification pipeline using any `AutoModelForAudioClassification`. + * This pipeline predicts the class of a raw waveform or an audio file. + * + * **Example:** Perform audio classification with `Xenova/wav2vec2-large-xlsr-53-gender-recognition-librispeech`. + * ```javascript + * const classifier = await pipeline('audio-classification', 'Xenova/wav2vec2-large-xlsr-53-gender-recognition-librispeech'); + * const url = 'https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main/jfk.wav'; + * const output = await classifier(url); + * // [ + * // { label: 'male', score: 0.9981542229652405 }, + * // { label: 'female', score: 0.001845747814513743 } + * // ] + * ``` + * + * **Example:** Perform audio classification with `Xenova/ast-finetuned-audioset-10-10-0.4593` and return top 4 results. + * ```javascript + * const classifier = await pipeline('audio-classification', 'Xenova/ast-finetuned-audioset-10-10-0.4593'); + * const url = 'https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main/cat_meow.wav'; + * const output = await classifier(url, { topk: 4 }); + * // [ + * // { label: 'Meow', score: 0.5617874264717102 }, + * // { label: 'Cat', score: 0.22365376353263855 }, + * // { label: 'Domestic animals, pets', score: 0.1141069084405899 }, + * // { label: 'Animal', score: 0.08985692262649536 }, + * // ] + * ``` + */ +export class AudioClassificationPipeline extends (/** @type {new (options: AudioPipelineConstructorArgs) => AudioClassificationPipelineType} */ (Pipeline)) { + + /** + * Create a new AudioClassificationPipeline. + * @param {AudioPipelineConstructorArgs} options An object used to instantiate the pipeline. + */ + constructor(options) { + super(options); + } + + /** @type {AudioClassificationPipelineCallback} */ + async _call(audio, { + topk = null + } = {}) { + + const single = !Array.isArray(audio); + + const sampling_rate = this.processor.feature_extractor.config.sampling_rate; + const preparedAudios = await prepareAudios(audio, sampling_rate); + + const id2label = this.model.config.id2label; + + const toReturn = []; + for (const aud of preparedAudios) { + const inputs = await this.processor(aud); + const output = await this.model(inputs); + const logits = output.logits[0]; + + const scores = getTopItems(softmax(logits.data), topk); + + const vals = scores.map(x => ({ + label: /** @type {string} */ (id2label[x[0]]), + score: /** @type {number} */ (x[1]), + })); + + if (topk === 1) { + toReturn.push(...vals); + } else { + toReturn.push(vals); + } + } + return !single || topk === 1 ? /** @type {AudioClassificationOutput} */ (toReturn) : /** @type {AudioClassificationOutput[]} */ (toReturn)[0]; + } +} + +/** + * @typedef {Object} ZeroShotAudioClassificationOutput + * @property {string} label The label identified by the model. It is one of the suggested `candidate_label`. + * @property {number} score The score attributed by the model for that label (between 0 and 1). + * + * @typedef {Object} ZeroShotAudioClassificationPipelineOptions Parameters specific to zero-shot audio classification pipelines. + * @property {string} [hypothesis_template="This is a sound of {}."] The sentence used in conjunction with `candidate_labels` + * to attempt the audio classification by replacing the placeholder with the candidate_labels. + * Then likelihood is estimated by using `logits_per_audio`. + * + * @callback ZeroShotAudioClassificationPipelineCallback Classify the sequence(s) given as inputs. + * @param {AudioPipelineInputs} audio The input audio file(s) to be classified. The input is either: + * - `string` or `URL` that is the filename/URL of the audio file, the file will be read at the processor's sampling rate + * to get the waveform using the [`AudioContext`](https://developer.mozilla.org/en-US/docs/Web/API/AudioContext) API. + * If `AudioContext` is not available, you should pass the raw waveform in as a Float32Array of shape `(n, )`. + * - `Float32Array` or `Float64Array` of shape `(n, )`, representing the raw audio at the correct sampling rate (no further check will be done). + * @param {string[]} candidate_labels The candidate labels for this audio. + * @param {ZeroShotAudioClassificationPipelineOptions} [options] The options to use for zero-shot audio classification. + * @returns {Promise} An array of objects containing the predicted labels and scores. + * + * @typedef {TextAudioPipelineConstructorArgs & ZeroShotAudioClassificationPipelineCallback & Disposable} ZeroShotAudioClassificationPipelineType + */ + +/** + * Zero shot audio classification pipeline using `ClapModel`. This pipeline predicts the class of an audio when you + * provide an audio and a set of `candidate_labels`. + * + * **Example**: Perform zero-shot audio classification with `Xenova/clap-htsat-unfused`. + * ```javascript + * const classifier = await pipeline('zero-shot-audio-classification', 'Xenova/clap-htsat-unfused'); + * const audio = 'https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main/dog_barking.wav'; + * const candidate_labels = ['dog', 'vaccum cleaner']; + * const scores = await classifier(audio, candidate_labels); + * // [ + * // { score: 0.9993992447853088, label: 'dog' }, + * // { score: 0.0006007603369653225, label: 'vaccum cleaner' } + * // ] + * ``` + */ +export class ZeroShotAudioClassificationPipeline extends (/** @type {new (options: TextAudioPipelineConstructorArgs) => ZeroShotAudioClassificationPipelineType} */ (Pipeline)) { + + /** + * Create a new ZeroShotAudioClassificationPipeline. + * @param {TextAudioPipelineConstructorArgs} options An object used to instantiate the pipeline. + */ + constructor(options) { + super(options); + } + + /** @type {ZeroShotAudioClassificationPipelineCallback} */ + async _call(audio, candidate_labels, { + hypothesis_template = "This is a sound of {}." + } = {}) { + + const single = !Array.isArray(audio); + if (single) { + audio = [/** @type {AudioInput} */ (audio)]; + } + + // Insert label into hypothesis template + const texts = candidate_labels.map( + x => hypothesis_template.replace('{}', x) + ); + + // Run tokenization + const text_inputs = this.tokenizer(texts, { + padding: true, + truncation: true, + }); + + const sampling_rate = this.processor.feature_extractor.config.sampling_rate; + const preparedAudios = await prepareAudios(audio, sampling_rate); + + const toReturn = []; + for (const aud of preparedAudios) { + const audio_inputs = await this.processor(aud); + + // Run model with both text and audio inputs + const output = await this.model({ ...text_inputs, ...audio_inputs }); + + // Compute softmax per audio + const probs = softmax(output.logits_per_audio.data); + + toReturn.push([...probs].map((x, i) => ({ + score: x, + label: candidate_labels[i] + }))); + } + return single ? toReturn[0] : toReturn; + } +} + +/** + * @typedef {{stride: number[], input_features: Tensor, is_last: boolean, tokens?: number[], token_timestamps?: number[]}} ChunkCallbackItem + * @callback ChunkCallback + * @param {ChunkCallbackItem} chunk The chunk to process. + */ + +/** + * @typedef {Object} Chunk + * @property {[number, number]} timestamp The start and end timestamp of the chunk in seconds. + * @property {string} text The recognized text. + */ + +/** + * @typedef {Object} AutomaticSpeechRecognitionOutput + * @property {string} text The recognized text. + * @property {Chunk[]} [chunks] When using `return_timestamps`, the `chunks` will become a list + * containing all the various text chunks identified by the model. + * + * @typedef {Object} AutomaticSpeechRecognitionSpecificParams Parameters specific to automatic-speech-recognition pipelines. + * @property {boolean|'word'} [kwargs.return_timestamps] Whether to return timestamps or not. Default is `false`. + * @property {number} [kwargs.chunk_length_s] The length of audio chunks to process in seconds. Default is 0 (no chunking). + * @property {number} [kwargs.stride_length_s] The length of overlap between consecutive audio chunks in seconds. If not provided, defaults to `chunk_length_s / 6`. + * @property {ChunkCallback} [kwargs.chunk_callback] Callback function to be called with each chunk processed. + * @property {boolean} [kwargs.force_full_sequences] Whether to force outputting full sequences or not. Default is `false`. + * @property {string} [kwargs.language] The source language. Default is `null`, meaning it should be auto-detected. Use this to potentially improve performance if the source language is known. + * @property {string} [kwargs.task] The task to perform. Default is `null`, meaning it should be auto-detected. + * @property {number[][]} [kwargs.forced_decoder_ids] A list of pairs of integers which indicates a mapping from generation indices to token indices + * that will be forced before sampling. For example, [[1, 123]] means the second generated token will always be a token of index 123. + * @property {number} [num_frames] The number of frames in the input audio. + * @typedef {import('./utils/generation.js').GenerationConfigType & AutomaticSpeechRecognitionSpecificParams} AutomaticSpeechRecognitionConfig + * + * @callback AutomaticSpeechRecognitionPipelineCallback Transcribe the audio sequence(s) given as inputs to text. + * @param {AudioPipelineInputs} audio The input audio file(s) to be transcribed. The input is either: + * - `string` or `URL` that is the filename/URL of the audio file, the file will be read at the processor's sampling rate + * to get the waveform using the [`AudioContext`](https://developer.mozilla.org/en-US/docs/Web/API/AudioContext) API. + * If `AudioContext` is not available, you should pass the raw waveform in as a Float32Array of shape `(n, )`. + * - `Float32Array` or `Float64Array` of shape `(n, )`, representing the raw audio at the correct sampling rate (no further check will be done). + * @param {AutomaticSpeechRecognitionConfig} [options] Additional keyword arguments to pass along to the generate method of the model. + * @returns {Promise} An object containing the transcription text and optionally timestamps if `return_timestamps` is `true`. + * + * @typedef {TextAudioPipelineConstructorArgs & AutomaticSpeechRecognitionPipelineCallback & Disposable} AutomaticSpeechRecognitionPipelineType + */ + +/** + * Pipeline that aims at extracting spoken text contained within some audio. + * + * **Example:** Transcribe English. + * ```javascript + * const transcriber = await pipeline('automatic-speech-recognition', 'Xenova/whisper-tiny.en'); + * const url = 'https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main/jfk.wav'; + * const output = await transcriber(url); + * // { text: " And so my fellow Americans ask not what your country can do for you, ask what you can do for your country." } + * ``` + * + * **Example:** Transcribe English w/ timestamps. + * ```javascript + * const transcriber = await pipeline('automatic-speech-recognition', 'Xenova/whisper-tiny.en'); + * const url = 'https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main/jfk.wav'; + * const output = await transcriber(url, { return_timestamps: true }); + * // { + * // text: " And so my fellow Americans ask not what your country can do for you, ask what you can do for your country." + * // chunks: [ + * // { timestamp: [0, 8], text: " And so my fellow Americans ask not what your country can do for you" } + * // { timestamp: [8, 11], text: " ask what you can do for your country." } + * // ] + * // } + * ``` + * + * **Example:** Transcribe English w/ word-level timestamps. + * ```javascript + * const transcriber = await pipeline('automatic-speech-recognition', 'Xenova/whisper-tiny.en'); + * const url = 'https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main/jfk.wav'; + * const output = await transcriber(url, { return_timestamps: 'word' }); + * // { + * // "text": " And so my fellow Americans ask not what your country can do for you ask what you can do for your country.", + * // "chunks": [ + * // { "text": " And", "timestamp": [0, 0.78] }, + * // { "text": " so", "timestamp": [0.78, 1.06] }, + * // { "text": " my", "timestamp": [1.06, 1.46] }, + * // ... + * // { "text": " for", "timestamp": [9.72, 9.92] }, + * // { "text": " your", "timestamp": [9.92, 10.22] }, + * // { "text": " country.", "timestamp": [10.22, 13.5] } + * // ] + * // } + * ``` + * + * **Example:** Transcribe French. + * ```javascript + * const transcriber = await pipeline('automatic-speech-recognition', 'Xenova/whisper-small'); + * const url = 'https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main/french-audio.mp3'; + * const output = await transcriber(url, { language: 'french', task: 'transcribe' }); + * // { text: " J'adore, j'aime, je n'aime pas, je déteste." } + * ``` + * + * **Example:** Translate French to English. + * ```javascript + * const transcriber = await pipeline('automatic-speech-recognition', 'Xenova/whisper-small'); + * const url = 'https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main/french-audio.mp3'; + * const output = await transcriber(url, { language: 'french', task: 'translate' }); + * // { text: " I love, I like, I don't like, I hate." } + * ``` + * + * **Example:** Transcribe/translate audio longer than 30 seconds. + * ```javascript + * const transcriber = await pipeline('automatic-speech-recognition', 'Xenova/whisper-tiny.en'); + * const url = 'https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main/ted_60.wav'; + * const output = await transcriber(url, { chunk_length_s: 30, stride_length_s: 5 }); + * // { text: " So in college, I was a government major, which means [...] So I'd start off light and I'd bump it up" } + * ``` + */ +export class AutomaticSpeechRecognitionPipeline extends (/** @type {new (options: TextAudioPipelineConstructorArgs) => AutomaticSpeechRecognitionPipelineType} */ (Pipeline)) { + + /** + * Create a new AutomaticSpeechRecognitionPipeline. + * @param {TextAudioPipelineConstructorArgs} options An object used to instantiate the pipeline. + */ + constructor(options) { + super(options); + } + + /** @type {AutomaticSpeechRecognitionPipelineCallback} */ + async _call(audio, kwargs = {}) { + switch (this.model.config.model_type) { + case 'whisper': + return this._call_whisper(audio, kwargs) + case 'wav2vec2': + case 'hubert': + return this._call_wav2vec2(audio, kwargs) + default: + throw new Error(`AutomaticSpeechRecognitionPipeline does not support model type '${this.model.config.model_type}'.`) + } + } + + /** + * @type {AutomaticSpeechRecognitionPipelineCallback} + * @private + */ + async _call_wav2vec2(audio, kwargs = {}) { + // TODO use kwargs + + if (kwargs.language) { + console.warn('`language` parameter is not yet supported for `wav2vec2` models, defaulting to "English".'); + } + if (kwargs.task) { + console.warn('`task` parameter is not yet supported for `wav2vec2` models, defaulting to "transcribe".'); + } + + const single = !Array.isArray(audio); + if (single) { + audio = [/** @type {AudioInput} */ (audio)]; + } + + const sampling_rate = this.processor.feature_extractor.config.sampling_rate; + const preparedAudios = await prepareAudios(audio, sampling_rate); + + const toReturn = []; + for (const aud of preparedAudios) { + const inputs = await this.processor(aud); + const output = await this.model(inputs); + const logits = output.logits[0]; + + const predicted_ids = []; + for (const item of logits) { + predicted_ids.push(max(item.data)[1]) + } + const predicted_sentences = this.tokenizer.decode(predicted_ids) + toReturn.push({ text: predicted_sentences }) + } + return single ? toReturn[0] : toReturn; + } + + /** + * @type {AutomaticSpeechRecognitionPipelineCallback} + * @private + */ + async _call_whisper(audio, kwargs = {}) { + + const return_timestamps = kwargs.return_timestamps ?? false; + const chunk_length_s = kwargs.chunk_length_s ?? 0; + const chunk_callback = kwargs.chunk_callback ?? null; + const force_full_sequences = kwargs.force_full_sequences ?? false; + let stride_length_s = kwargs.stride_length_s ?? null; + + if (return_timestamps === 'word') { + kwargs['return_token_timestamps'] = true; + } + + const language = pop(kwargs, 'language', null); + const task = pop(kwargs, 'task', null); + + if (language || task || return_timestamps) { + if (kwargs.forced_decoder_ids) { + throw new Error("Cannot specify `language`/`task`/`return_timestamps` and `forced_decoder_ids` at the same time.") + } + // @ts-ignore + const decoder_prompt_ids = this.tokenizer.get_decoder_prompt_ids({ language, task, no_timestamps: !return_timestamps }) + if (decoder_prompt_ids.length > 0) { + kwargs.forced_decoder_ids = decoder_prompt_ids; + } + } + + const single = !Array.isArray(audio); + if (single) { + audio = [/** @type {AudioInput} */ (audio)]; + } + + const time_precision = this.processor.feature_extractor.config.chunk_length / this.model.config.max_source_positions; + const hop_length = this.processor.feature_extractor.config.hop_length; + + const sampling_rate = this.processor.feature_extractor.config.sampling_rate; + const preparedAudios = await prepareAudios(audio, sampling_rate); + + const toReturn = []; + for (const aud of preparedAudios) { + /** @type {ChunkCallbackItem[]} */ + let chunks = []; + if (chunk_length_s > 0) { + if (stride_length_s === null) { + stride_length_s = chunk_length_s / 6; + } else if (chunk_length_s <= stride_length_s) { + throw Error("`chunk_length_s` must be larger than `stride_length_s`.") + } + + // TODO support different stride_length_s (for left and right) + + const window = sampling_rate * chunk_length_s; + const stride = sampling_rate * stride_length_s; + const jump = window - 2 * stride; + let offset = 0; + + // Create subarrays of audio with overlaps + + while (offset < aud.length) { + const subarr = aud.subarray(offset, offset + window); + const feature = await this.processor(subarr); + + const isFirst = offset === 0; + const isLast = offset + jump >= aud.length; + chunks.push({ + stride: [ + subarr.length, + isFirst ? 0 : stride, + isLast ? 0 : stride + ], + input_features: feature.input_features, + is_last: isLast + }) + offset += jump; + } + + } else { + chunks = [{ + stride: [aud.length, 0, 0], + input_features: (await this.processor(aud)).input_features, + is_last: true + }] + } + + // Generate for each set of input features + for (const chunk of chunks) { + kwargs.num_frames = Math.floor(chunk.stride[0] / hop_length); + + // NOTE: doing sequentially for now + const data = await this.model.generate(chunk.input_features, kwargs); + + // TODO: Right now we only get top beam + if (return_timestamps === 'word') { + chunk.tokens = data.sequences[0]; + chunk.token_timestamps = data.token_timestamps.tolist()[0].map( + (/** @type {number} */ x) => round(x, 2) + ); + + } else { + chunk.tokens = data[0]; + } + + // convert stride to seconds + chunk.stride = chunk.stride.map(x => x / sampling_rate); + + if (chunk_callback !== null) { + chunk_callback(chunk) + } + } + + // Merge text chunks + // @ts-ignore + const [full_text, optional] = this.tokenizer._decode_asr(chunks, { + time_precision, return_timestamps, force_full_sequences + }); + + toReturn.push({ text: full_text, ...optional }) + } + return single ? toReturn[0] : toReturn; + } +} + +/** + * @typedef {Object} ImageToTextSingle + * @property {string} generated_text The generated text. + * @typedef {ImageToTextSingle[]} ImageToTextOutput + * + * @callback ImageToTextPipelineCallback Assign labels to the image(s) passed as inputs. + * @param {ImagePipelineInputs} texts The images to be captioned. + * @param {import('./utils/generation.js').GenerationConfigType} [options] Additional keyword arguments to pass along to the generate method of the model. + * @returns {Promise} An object (or array of objects) containing the generated text(s). + * + * @typedef {TextImagePipelineConstructorArgs & ImageToTextPipelineCallback & Disposable} ImageToTextPipelineType + */ + +/** + * Image To Text pipeline using a `AutoModelForVision2Seq`. This pipeline predicts a caption for a given image. + * + * **Example:** Generate a caption for an image w/ `Xenova/vit-gpt2-image-captioning`. + * ```javascript + * const captioner = await pipeline('image-to-text', 'Xenova/vit-gpt2-image-captioning'); + * const url = 'https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main/cats.jpg'; + * const output = await captioner(url); + * // [{ generated_text: 'a cat laying on a couch with another cat' }] + * ``` + * + * **Example:** Optical Character Recognition (OCR) w/ `Xenova/trocr-small-handwritten`. + * ```javascript + * const captioner = await pipeline('image-to-text', 'Xenova/trocr-small-handwritten'); + * const url = 'https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main/handwriting.jpg'; + * const output = await captioner(url); + * // [{ generated_text: 'Mr. Brown commented icily.' }] + * ``` + */ +export class ImageToTextPipeline extends (/** @type {new (options: TextImagePipelineConstructorArgs) => ImageToTextPipelineType} */ (Pipeline)) { + + /** + * Create a new ImageToTextPipeline. + * @param {TextImagePipelineConstructorArgs} options An object used to instantiate the pipeline. + */ + constructor(options) { + super(options); + } + + /** @type {ImageToTextPipelineCallback} */ + async _call(images, generate_kwargs = {}) { + + const isBatched = Array.isArray(images); + const preparedImages = await prepareImages(images); + + const { pixel_values } = await this.processor(preparedImages); + + const toReturn = []; + for (const batch of pixel_values) { + batch.dims = [1, ...batch.dims] + const output = await this.model.generate(batch, generate_kwargs); + const decoded = this.tokenizer.batch_decode(output, { + skip_special_tokens: true, + }).map(x => ({ generated_text: x.trim() })) + toReturn.push(decoded); + } + + return isBatched ? toReturn : toReturn[0]; + } +} + +/** + * @typedef {Object} ImageClassificationSingle + * @property {string} label The label identified by the model. + * @property {number} score The score attributed by the model for that label. + * @typedef {ImageClassificationSingle[]} ImageClassificationOutput + * + * @typedef {Object} ImageClassificationPipelineOptions Parameters specific to image classification pipelines. + * @property {number} [topk=1] The number of top labels that will be returned by the pipeline. + * + * @callback ImageClassificationPipelineCallback Assign labels to the image(s) passed as inputs. + * @param {ImagePipelineInputs} images The input images(s) to be classified. + * @param {ImageClassificationPipelineOptions} [options] The options to use for image classification. + * @returns {Promise} An array or object containing the predicted labels and scores. + * + * @typedef {ImagePipelineConstructorArgs & ImageClassificationPipelineCallback & Disposable} ImageClassificationPipelineType + */ + +/** + * Image classification pipeline using any `AutoModelForImageClassification`. + * This pipeline predicts the class of an image. + * + * **Example:** Classify an image. + * ```javascript + * const classifier = await pipeline('image-classification', 'Xenova/vit-base-patch16-224'); + * const url = 'https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main/tiger.jpg'; + * const output = await classifier(url); + * // [ + * // { label: 'tiger, Panthera tigris', score: 0.632695734500885 }, + * // ] + * ``` + * + * **Example:** Classify an image and return top `n` classes. + * ```javascript + * const classifier = await pipeline('image-classification', 'Xenova/vit-base-patch16-224'); + * const url = 'https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main/tiger.jpg'; + * const output = await classifier(url, { topk: 3 }); + * // [ + * // { label: 'tiger, Panthera tigris', score: 0.632695734500885 }, + * // { label: 'tiger cat', score: 0.3634825646877289 }, + * // { label: 'lion, king of beasts, Panthera leo', score: 0.00045060308184474707 }, + * // ] + * ``` + * + * **Example:** Classify an image and return all classes. + * ```javascript + * const classifier = await pipeline('image-classification', 'Xenova/vit-base-patch16-224'); + * const url = 'https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main/tiger.jpg'; + * const output = await classifier(url, { topk: 0 }); + * // [ + * // { label: 'tiger, Panthera tigris', score: 0.632695734500885 }, + * // { label: 'tiger cat', score: 0.3634825646877289 }, + * // { label: 'lion, king of beasts, Panthera leo', score: 0.00045060308184474707 }, + * // { label: 'jaguar, panther, Panthera onca, Felis onca', score: 0.00035465499968267977 }, + * // ... + * // ] + * ``` + */ +export class ImageClassificationPipeline extends (/** @type {new (options: ImagePipelineConstructorArgs) => ImageClassificationPipelineType} */ (Pipeline)) { + + /** + * Create a new ImageClassificationPipeline. + * @param {ImagePipelineConstructorArgs} options An object used to instantiate the pipeline. + */ + constructor(options) { + super(options); + } + + /** @type {ImageClassificationPipelineCallback} */ + async _call(images, { + topk = 1 + } = {}) { + + const isBatched = Array.isArray(images); + const preparedImages = await prepareImages(images); + + const { pixel_values } = await this.processor(preparedImages); + const output = await this.model({ pixel_values }); + + const id2label = this.model.config.id2label; + const toReturn = []; + for (const batch of output.logits) { + const scores = getTopItems(softmax(batch.data), topk); + + const vals = scores.map(x => ({ + label: id2label[x[0]], + score: x[1], + })); + if (topk === 1) { + toReturn.push(...vals); + } else { + toReturn.push(vals); + } + } + + return isBatched || topk === 1 ? /** @type {ImageClassificationOutput} */ (toReturn) : /** @type {ImageClassificationOutput[]} */ (toReturn)[0]; + } + +} + +/** + * @typedef {Object} ImageSegmentationPipelineOutput + * @property {string} label The label of the segment. + * @property {number|null} score The score of the segment. + * @property {RawImage} mask The mask of the segment. + * + * @typedef {Object} ImageSegmentationPipelineOptions Parameters specific to image segmentation pipelines. + * @property {number} [threshold=0.5] Probability threshold to filter out predicted masks. + * @property {number} [mask_threshold=0.5] Threshold to use when turning the predicted masks into binary values. + * @property {number} [overlap_mask_area_threshold=0.8] Mask overlap threshold to eliminate small, disconnected segments. + * @property {null|string} [subtask=null] Segmentation task to be performed. One of [`panoptic`, `instance`, and `semantic`], + * depending on model capabilities. If not set, the pipeline will attempt to resolve (in that order). + * @property {number[]} [label_ids_to_fuse=null] List of label ids to fuse. If not set, do not fuse any labels. + * @property {number[][]} [target_sizes=null] List of target sizes for the input images. If not set, use the original image sizes. + * + * @callback ImageSegmentationPipelineCallback Segment the input images. + * @param {ImagePipelineInputs} images The input images. + * @param {ImageSegmentationPipelineOptions} [options] The options to use for image segmentation. + * @returns {Promise} The annotated segments. + * + * @typedef {ImagePipelineConstructorArgs & ImageSegmentationPipelineCallback & Disposable} ImageSegmentationPipelineType + */ + +/** + * Image segmentation pipeline using any `AutoModelForXXXSegmentation`. + * This pipeline predicts masks of objects and their classes. + * + * **Example:** Perform image segmentation with `Xenova/detr-resnet-50-panoptic`. + * ```javascript + * const segmenter = await pipeline('image-segmentation', 'Xenova/detr-resnet-50-panoptic'); + * const url = 'https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main/cats.jpg'; + * const output = await segmenter(url); + * // [ + * // { label: 'remote', score: 0.9984649419784546, mask: RawImage { ... } }, + * // { label: 'cat', score: 0.9994316101074219, mask: RawImage { ... } } + * // ] + * ``` + */ +export class ImageSegmentationPipeline extends (/** @type {new (options: ImagePipelineConstructorArgs) => ImageSegmentationPipelineType} */ (Pipeline)) { + /** + * Create a new ImageSegmentationPipeline. + * @param {ImagePipelineConstructorArgs} options An object used to instantiate the pipeline. + */ + constructor(options) { + super(options); + + this.subtasks_mapping = { + // Mapping of subtasks to their corresponding post-processing function names. + panoptic: 'post_process_panoptic_segmentation', + instance: 'post_process_instance_segmentation', + semantic: 'post_process_semantic_segmentation' + } + } + + /** @type {ImageSegmentationPipelineCallback} */ + async _call(images, { + threshold = 0.5, + mask_threshold = 0.5, + overlap_mask_area_threshold = 0.8, + label_ids_to_fuse = null, + target_sizes = null, + subtask = null, + } = {}) { + const isBatched = Array.isArray(images); + + if (isBatched && images.length !== 1) { + throw Error("Image segmentation pipeline currently only supports a batch size of 1."); + } + + const preparedImages = await prepareImages(images); + const imageSizes = preparedImages.map(x => [x.height, x.width]); + + const { pixel_values, pixel_mask } = await this.processor(preparedImages); + const output = await this.model({ pixel_values, pixel_mask }); + + let fn = null; + if (subtask !== null) { + fn = this.subtasks_mapping[subtask]; + } else { + for (let [task, func] of Object.entries(this.subtasks_mapping)) { + if (func in this.processor.feature_extractor) { + fn = this.processor.feature_extractor[func].bind(this.processor.feature_extractor); + subtask = task; + break; + } + } + } + + const id2label = this.model.config.id2label; + + /** @type {ImageSegmentationPipelineOutput[]} */ + const annotation = []; + if (subtask === 'panoptic' || subtask === 'instance') { + const processed = fn( + output, + threshold, + mask_threshold, + overlap_mask_area_threshold, + label_ids_to_fuse, + target_sizes ?? imageSizes, // TODO FIX? + )[0]; + + const segmentation = processed.segmentation; + + for (const segment of processed.segments_info) { + const maskData = new Uint8ClampedArray(segmentation.data.length); + for (let i = 0; i < segmentation.data.length; ++i) { + if (segmentation.data[i] === segment.id) { + maskData[i] = 255; + } + } + + // const mask = new RawImage(maskData, segmentation.dims[1], segmentation.dims[0], 1) + + annotation.push({ + score: segment.score, + label: id2label[segment.label_id], + // mask: mask + }) + } + + } else if (subtask === 'semantic') { + const { segmentation, labels } = fn(output, target_sizes ?? imageSizes)[0]; + + for (const label of labels) { + const maskData = new Uint8ClampedArray(segmentation.data.length); + for (let i = 0; i < segmentation.data.length; ++i) { + if (segmentation.data[i] === label) { + maskData[i] = 255; + } + } + + // const mask = new RawImage(maskData, segmentation.dims[1], segmentation.dims[0], 1); + + annotation.push({ + score: null, + label: id2label[label], + // mask: mask + }); + } + } else { + throw Error(`Subtask ${subtask} not supported.`); + } + + return annotation; + } +} + +/** + * @typedef {Object} ZeroShotImageClassificationOutput + * @property {string} label The label identified by the model. It is one of the suggested `candidate_label`. + * @property {number} score The score attributed by the model for that label (between 0 and 1). + * + * @typedef {Object} ZeroShotImageClassificationPipelineOptions Parameters specific to zero-shot image classification pipelines. + * @property {string} [hypothesis_template="This is a photo of {}"] The sentence used in conjunction with `candidate_labels` + * to attempt the image classification by replacing the placeholder with the candidate_labels. + * Then likelihood is estimated by using `logits_per_image`. + * + * @callback ZeroShotImageClassificationPipelineCallback Assign labels to the image(s) passed as inputs. + * @param {ImagePipelineInputs} images The input images. + * @param {string[]} candidate_labels The candidate labels for this image. + * @param {ZeroShotImageClassificationPipelineOptions} [options] The options to use for zero-shot image classification. + * @returns {Promise} An array of objects containing the predicted labels and scores. + * + * @typedef {TextImagePipelineConstructorArgs & ZeroShotImageClassificationPipelineCallback & Disposable} ZeroShotImageClassificationPipelineType + */ + +/** + * Zero shot image classification pipeline. This pipeline predicts the class of + * an image when you provide an image and a set of `candidate_labels`. + * + * **Example:** Zero shot image classification w/ `Xenova/clip-vit-base-patch32`. + * ```javascript + * const classifier = await pipeline('zero-shot-image-classification', 'Xenova/clip-vit-base-patch32'); + * const url = 'https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main/tiger.jpg'; + * const output = await classifier(url, ['tiger', 'horse', 'dog']); + * // [ + * // { score: 0.9993917942047119, label: 'tiger' }, + * // { score: 0.0003519294841680676, label: 'horse' }, + * // { score: 0.0002562698791734874, label: 'dog' } + * // ] + * ``` + */ +export class ZeroShotImageClassificationPipeline extends (/** @type {new (options: TextImagePipelineConstructorArgs) => ZeroShotImageClassificationPipelineType} */ (Pipeline)) { + /** + * Create a new ZeroShotImageClassificationPipeline. + * @param {TextImagePipelineConstructorArgs} options An object used to instantiate the pipeline. + */ + constructor(options) { + super(options); + } + + /** @type {ZeroShotImageClassificationPipelineCallback} */ + async _call(images, candidate_labels, { + hypothesis_template = "This is a photo of {}" + } = {}) { + + const isBatched = Array.isArray(images); + const preparedImages = await prepareImages(images); + + // Insert label into hypothesis template + const texts = candidate_labels.map( + x => hypothesis_template.replace('{}', x) + ); + + // Run tokenization + const text_inputs = this.tokenizer(texts, { + padding: this.model.config.model_type === 'siglip' ? 'max_length' : true, + truncation: true, + }); + + // Run processor + const { pixel_values } = await this.processor(preparedImages); + + // Run model with both text and pixel inputs + const output = await this.model({ ...text_inputs, pixel_values }); + + const function_to_apply = + this.model.config.model_type === 'siglip' + ? batch => batch.sigmoid().data + : batch => softmax(batch.data); + + // Compare each image with each candidate label + const toReturn = []; + for (const batch of output.logits_per_image) { + // Compute softmax per image + const probs = function_to_apply(batch); + + const result = [...probs].map((x, i) => ({ + score: x, + label: candidate_labels[i] + })); + result.sort((a, b) => b.score - a.score); // sort by score in descending order + toReturn.push(result); + } + + return isBatched ? toReturn : toReturn[0]; + } +} + + +/** + * @typedef {Object} ObjectDetectionPipelineSingle + * @property {string} label The class label identified by the model. + * @property {number} score The score attributed by the model for that label. + * @property {BoundingBox} box The bounding box of detected object in image's original size, or as a percentage if `percentage` is set to true. + * @typedef {ObjectDetectionPipelineSingle[]} ObjectDetectionPipelineOutput + * + * @typedef {Object} ObjectDetectionPipelineOptions Parameters specific to object detection pipelines. + * @property {number} [threshold=0.9] The threshold used to filter boxes by score. + * @property {boolean} [percentage=false] Whether to return the boxes coordinates in percentage (true) or in pixels (false). + * + * @callback ObjectDetectionPipelineCallback Detect objects (bounding boxes & classes) in the image(s) passed as inputs. + * @param {ImagePipelineInputs} images The input images. + * @param {ObjectDetectionPipelineOptions} [options] The options to use for object detection. + * @returns {Promise} A list of objects or a list of list of objects. + * + * @typedef {ImagePipelineConstructorArgs & ObjectDetectionPipelineCallback & Disposable} ObjectDetectionPipelineType + */ + +/** + * Object detection pipeline using any `AutoModelForObjectDetection`. + * This pipeline predicts bounding boxes of objects and their classes. + * + * **Example:** Run object-detection with `Xenova/detr-resnet-50`. + * ```javascript + * const detector = await pipeline('object-detection', 'Xenova/detr-resnet-50'); + * const img = 'https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main/cats.jpg'; + * const output = await detector(img, { threshold: 0.9 }); + * // [{ + * // score: 0.9976370930671692, + * // label: "remote", + * // box: { xmin: 31, ymin: 68, xmax: 190, ymax: 118 } + * // }, + * // ... + * // { + * // score: 0.9984092116355896, + * // label: "cat", + * // box: { xmin: 331, ymin: 19, xmax: 649, ymax: 371 } + * // }] + * ``` + */ +export class ObjectDetectionPipeline extends (/** @type {new (options: ImagePipelineConstructorArgs) => ObjectDetectionPipelineType} */ (Pipeline)) { + + /** + * Create a new ObjectDetectionPipeline. + * @param {ImagePipelineConstructorArgs} options An object used to instantiate the pipeline. + */ + constructor(options) { + super(options); + } + + /** @type {ObjectDetectionPipelineCallback} */ + async _call(images, { + threshold = 0.9, + percentage = false, + } = {}) { + + const isBatched = Array.isArray(images); + + if (isBatched && images.length !== 1) { + throw Error("Object detection pipeline currently only supports a batch size of 1."); + } + const preparedImages = await prepareImages(images); + + const imageSizes = percentage ? null : preparedImages.map(x => [x.height, x.width]); + + const { pixel_values, pixel_mask } = await this.processor(preparedImages); + const output = await this.model({ pixel_values, pixel_mask }); + + // @ts-ignore + const processed = this.processor.feature_extractor.post_process_object_detection(output, threshold, imageSizes); + + // Add labels + const id2label = this.model.config.id2label; + + // Format output + /** @type {ObjectDetectionPipelineOutput[]} */ + const result = processed.map(batch => ( + batch.boxes.map((box, i) => ({ + score: batch.scores[i], + label: id2label[batch.classes[i]], + box: get_bounding_box(box, !percentage), + })) + )) + + return isBatched ? result : result[0]; + } +} + + +/** + * @typedef {Object} ZeroShotObjectDetectionOutput + * @property {string} label Text query corresponding to the found object. + * @property {number} score Score corresponding to the object (between 0 and 1). + * @property {BoundingBox} box Bounding box of the detected object in image's original size, or as a percentage if `percentage` is set to true. + * + * @typedef {Object} ZeroShotObjectDetectionPipelineOptions Parameters specific to zero-shot object detection pipelines. + * @property {number} [threshold=0.1] The probability necessary to make a prediction. + * @property {number} [topk=null] The number of top predictions that will be returned by the pipeline. + * If the provided number is `null` or higher than the number of predictions available, it will default + * to the number of predictions. + * @property {boolean} [percentage=false] Whether to return the boxes coordinates in percentage (true) or in pixels (false). + * + * @callback ZeroShotObjectDetectionPipelineCallback Detect objects (bounding boxes & classes) in the image(s) passed as inputs. + * @param {ImagePipelineInputs} images The input images. + * @param {string[]} candidate_labels What the model should recognize in the image. + * @param {ZeroShotObjectDetectionPipelineOptions} [options] The options to use for zero-shot object detection. + * @returns {Promise} An array of objects containing the predicted labels, scores, and bounding boxes. + * + * @typedef {TextImagePipelineConstructorArgs & ZeroShotObjectDetectionPipelineCallback & Disposable} ZeroShotObjectDetectionPipelineType + */ + +/** + * Zero-shot object detection pipeline. This pipeline predicts bounding boxes of + * objects when you provide an image and a set of `candidate_labels`. + * + * **Example:** Zero-shot object detection w/ `Xenova/owlvit-base-patch32`. + * ```javascript + * const detector = await pipeline('zero-shot-object-detection', 'Xenova/owlvit-base-patch32'); + * const url = 'https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main/astronaut.png'; + * const candidate_labels = ['human face', 'rocket', 'helmet', 'american flag']; + * const output = await detector(url, candidate_labels); + * // [ + * // { + * // score: 0.24392342567443848, + * // label: 'human face', + * // box: { xmin: 180, ymin: 67, xmax: 274, ymax: 175 } + * // }, + * // { + * // score: 0.15129457414150238, + * // label: 'american flag', + * // box: { xmin: 0, ymin: 4, xmax: 106, ymax: 513 } + * // }, + * // { + * // score: 0.13649864494800568, + * // label: 'helmet', + * // box: { xmin: 277, ymin: 337, xmax: 511, ymax: 511 } + * // }, + * // { + * // score: 0.10262022167444229, + * // label: 'rocket', + * // box: { xmin: 352, ymin: -1, xmax: 463, ymax: 287 } + * // } + * // ] + * ``` + * + * **Example:** Zero-shot object detection w/ `Xenova/owlvit-base-patch32` (returning top 4 matches and setting a threshold). + * ```javascript + * const detector = await pipeline('zero-shot-object-detection', 'Xenova/owlvit-base-patch32'); + * const url = 'https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main/beach.png'; + * const candidate_labels = ['hat', 'book', 'sunglasses', 'camera']; + * const output = await detector(url, candidate_labels, { topk: 4, threshold: 0.05 }); + * // [ + * // { + * // score: 0.1606510728597641, + * // label: 'sunglasses', + * // box: { xmin: 347, ymin: 229, xmax: 429, ymax: 264 } + * // }, + * // { + * // score: 0.08935828506946564, + * // label: 'hat', + * // box: { xmin: 38, ymin: 174, xmax: 258, ymax: 364 } + * // }, + * // { + * // score: 0.08530698716640472, + * // label: 'camera', + * // box: { xmin: 187, ymin: 350, xmax: 260, ymax: 411 } + * // }, + * // { + * // score: 0.08349756896495819, + * // label: 'book', + * // box: { xmin: 261, ymin: 280, xmax: 494, ymax: 425 } + * // } + * // ] + * ``` + */ +export class ZeroShotObjectDetectionPipeline extends (/** @type {new (options: TextImagePipelineConstructorArgs) => ZeroShotObjectDetectionPipelineType} */ (Pipeline)) { + + /** + * Create a new ZeroShotObjectDetectionPipeline. + * @param {TextImagePipelineConstructorArgs} options An object used to instantiate the pipeline. + */ + constructor(options) { + super(options); + } + + /** @type {ZeroShotObjectDetectionPipelineCallback} */ + async _call(images, candidate_labels, { + threshold = 0.1, + topk = null, + percentage = false, + } = {}) { + + const isBatched = Array.isArray(images); + const preparedImages = await prepareImages(images); + + // Run tokenization + const text_inputs = this.tokenizer(candidate_labels, { + padding: true, + truncation: true, + }); + + // Run processor + const model_inputs = await this.processor(preparedImages); + + // Since non-maximum suppression is performed for exporting, we need to + // process each image separately. For more information, see: + // https://github.com/huggingface/optimum/blob/e3b7efb1257c011db907ef40ab340e795cc5684c/optimum/exporters/onnx/model_configs.py#L1028-L1032 + const toReturn = []; + for (let i = 0; i < preparedImages.length; ++i) { + const image = preparedImages[i]; + const imageSize = percentage ? null : [[image.height, image.width]]; + const pixel_values = model_inputs.pixel_values[i].unsqueeze_(0); + + // Run model with both text and pixel inputs + const output = await this.model({ ...text_inputs, pixel_values }); + + // @ts-ignore + const processed = this.processor.feature_extractor.post_process_object_detection(output, threshold, imageSize, true)[0]; + let result = processed.boxes.map((box, i) => ({ + score: processed.scores[i], + label: candidate_labels[processed.classes[i]], + box: get_bounding_box(box, !percentage), + })).sort((a, b) => b.score - a.score); + if (topk !== null) { + result = result.slice(0, topk); + } + toReturn.push(result) + } + + return isBatched ? toReturn : toReturn[0]; + } +} + +/** + * @typedef {Object} DocumentQuestionAnsweringSingle + * @property {string} answer The generated text. + * @typedef {DocumentQuestionAnsweringSingle[]} DocumentQuestionAnsweringOutput + * + * @callback DocumentQuestionAnsweringPipelineCallback Answer the question given as input by using the document. + * @param {ImageInput} image The image of the document to use. + * @param {string} question A question to ask of the document. + * @param {import('./utils/generation.js').GenerationConfigType} [options] Additional keyword arguments to pass along to the generate method of the model. + * @returns {Promise} An object (or array of objects) containing the answer(s). + * + * @typedef {TextImagePipelineConstructorArgs & DocumentQuestionAnsweringPipelineCallback & Disposable} DocumentQuestionAnsweringPipelineType + */ + +/** + * Document Question Answering pipeline using any `AutoModelForDocumentQuestionAnswering`. + * The inputs/outputs are similar to the (extractive) question answering pipeline; however, + * the pipeline takes an image (and optional OCR'd words/boxes) as input instead of text context. + * + * **Example:** Answer questions about a document with `Xenova/donut-base-finetuned-docvqa`. + * ```javascript + * const qa_pipeline = await pipeline('document-question-answering', 'Xenova/donut-base-finetuned-docvqa'); + * const image = 'https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main/invoice.png'; + * const question = 'What is the invoice number?'; + * const output = await qa_pipeline(image, question); + * // [{ answer: 'us-001' }] + * ``` + */ +export class DocumentQuestionAnsweringPipeline extends (/** @type {new (options: TextImagePipelineConstructorArgs) => DocumentQuestionAnsweringPipelineType} */ (Pipeline)) { + + /** + * Create a new DocumentQuestionAnsweringPipeline. + * @param {TextImagePipelineConstructorArgs} options An object used to instantiate the pipeline. + */ + constructor(options) { + super(options); + } + + /** @type {DocumentQuestionAnsweringPipelineCallback} */ + async _call(image, question, generate_kwargs = {}) { + + // NOTE: For now, we only support a batch size of 1 + + // Preprocess image + const preparedImage = (await prepareImages(image))[0]; + const { pixel_values } = await this.processor(preparedImage); + + // Run tokenization + const task_prompt = `${question}`; + const decoder_input_ids = this.tokenizer(task_prompt, { + add_special_tokens: false, + padding: true, + truncation: true, + }).input_ids; + + // Run model + const output = await this.model.generate( + pixel_values, + { + ...generate_kwargs, + decoder_input_ids, + max_length: this.model.config.decoder.max_position_embeddings, + } + ); + + // Decode output + const decoded = this.tokenizer.batch_decode(output)[0]; + + // Parse answer + const match = decoded.match(/(.*?)<\/s_answer>/); + let answer = null; + if (match && match.length >= 2) { + answer = match[1].trim(); + } + return [{ answer }]; + } +} + + +/** + * @typedef {Object} VocoderOptions + * @property {PreTrainedModel} [vocoder] The vocoder used by the pipeline (if the model uses one). If not provided, use the default HifiGan vocoder. + * @typedef {TextAudioPipelineConstructorArgs & VocoderOptions} TextToAudioPipelineConstructorArgs + */ + +/** + * @typedef {Object} TextToAudioOutput + * @property {Float32Array} audio The generated audio waveform. + * @property {number} sampling_rate The sampling rate of the generated audio waveform. + * + * @typedef {Object} TextToAudioPipelineOptions Parameters specific to text-to-audio pipelines. + * @property {Tensor|Float32Array|string|URL} [speaker_embeddings=null] The speaker embeddings (if the model requires it). + * + * @callback TextToAudioPipelineCallback Generates speech/audio from the inputs. + * @param {string|string[]} texts The text(s) to generate. + * @param {TextToAudioPipelineOptions} options Parameters passed to the model generation/forward method. + * @returns {Promise} An object containing the generated audio and sampling rate. + * + * @typedef {TextToAudioPipelineConstructorArgs & TextToAudioPipelineCallback & Disposable} TextToAudioPipelineType + */ + +/** + * Text-to-audio generation pipeline using any `AutoModelForTextToWaveform` or `AutoModelForTextToSpectrogram`. + * This pipeline generates an audio file from an input text and optional other conditional inputs. + * + * **Example:** Generate audio from text with `Xenova/speecht5_tts`. + * ```javascript + * const synthesizer = await pipeline('text-to-speech', 'Xenova/speecht5_tts', { quantized: false }); + * const speaker_embeddings = 'https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main/speaker_embeddings.bin'; + * const out = await synthesizer('Hello, my dog is cute', { speaker_embeddings }); + * // { + * // audio: Float32Array(26112) [-0.00005657337896991521, 0.00020583874720614403, ...], + * // sampling_rate: 16000 + * // } + * ``` + * + * You can then save the audio to a .wav file with the `wavefile` package: + * ```javascript + * import wavefile from 'wavefile'; + * import fs from 'fs'; + * + * const wav = new wavefile.WaveFile(); + * wav.fromScratch(1, out.sampling_rate, '32f', out.audio); + * fs.writeFileSync('out.wav', wav.toBuffer()); + * ``` + * + * **Example:** Multilingual speech generation with `Xenova/mms-tts-fra`. See [here](https://huggingface.co/models?pipeline_tag=text-to-speech&other=vits&sort=trending) for the full list of available languages (1107). + * ```javascript + * const synthesizer = await pipeline('text-to-speech', 'Xenova/mms-tts-fra'); + * const out = await synthesizer('Bonjour'); + * // { + * // audio: Float32Array(23808) [-0.00037693005288019776, 0.0003325853613205254, ...], + * // sampling_rate: 16000 + * // } + * ``` + */ +export class TextToAudioPipeline extends (/** @type {new (options: TextToAudioPipelineConstructorArgs) => TextToAudioPipelineType} */ (Pipeline)) { + DEFAULT_VOCODER_ID = "Xenova/speecht5_hifigan" + + /** + * Create a new TextToAudioPipeline. + * @param {TextToAudioPipelineConstructorArgs} options An object used to instantiate the pipeline. + */ + constructor(options) { + super(options); + + // TODO: Find a better way for `pipeline` to set the default vocoder + this.vocoder = options.vocoder ?? null; + } + + + /** @type {TextToAudioPipelineCallback} */ + async _call(text_inputs, { + speaker_embeddings = null, + } = {}) { + + // If this.processor is not set, we are using a `AutoModelForTextToWaveform` model + if (this.processor) { + return this._call_text_to_spectrogram(text_inputs, { speaker_embeddings }); + } else { + return this._call_text_to_waveform(text_inputs); + } + } + + async _call_text_to_waveform(text_inputs) { + + // Run tokenization + const inputs = this.tokenizer(text_inputs, { + padding: true, + truncation: true, + }); + + // Generate waveform + const { waveform } = await this.model(inputs); + + const sampling_rate = this.model.config.sampling_rate; + return { + audio: waveform.data, + sampling_rate, + } + } + + async _call_text_to_spectrogram(text_inputs, { speaker_embeddings }) { + + // Load vocoder, if not provided + if (!this.vocoder) { + console.log('No vocoder specified, using default HifiGan vocoder.'); + this.vocoder = await AutoModel.from_pretrained(this.DEFAULT_VOCODER_ID, { quantized: false }); + } + + // Load speaker embeddings as Float32Array from path/URL + if (typeof speaker_embeddings === 'string' || speaker_embeddings instanceof URL) { + // Load from URL with fetch + speaker_embeddings = new Float32Array( + await (await fetch(speaker_embeddings)).arrayBuffer() + ); + } + + if (speaker_embeddings instanceof Float32Array) { + speaker_embeddings = new Tensor( + 'float32', + speaker_embeddings, + [1, speaker_embeddings.length] + ) + } else if (!(speaker_embeddings instanceof Tensor)) { + throw new Error("Speaker embeddings must be a `Tensor`, `Float32Array`, `string`, or `URL`.") + } + + // Run tokenization + const { input_ids } = this.tokenizer(text_inputs, { + padding: true, + truncation: true, + }); + + // NOTE: At this point, we are guaranteed that `speaker_embeddings` is a `Tensor` + // @ts-ignore + const { waveform } = await this.model.generate_speech(input_ids, speaker_embeddings, { vocoder: this.vocoder }); + + const sampling_rate = this.processor.feature_extractor.config.sampling_rate; + return { + audio: waveform.data, + sampling_rate, + } + } +} + +/** + * @callback ImageToImagePipelineCallback Transform the image(s) passed as inputs. + * @param {ImagePipelineInputs} images The images to transform. + * @returns {Promise} The transformed image or list of images. + * + * @typedef {ImagePipelineConstructorArgs & ImageToImagePipelineCallback & Disposable} ImageToImagePipelineType + */ + +/** + * Image to Image pipeline using any `AutoModelForImageToImage`. This pipeline generates an image based on a previous image input. + * + * **Example:** Super-resolution w/ `Xenova/swin2SR-classical-sr-x2-64` + * ```javascript + * const upscaler = await pipeline('image-to-image', 'Xenova/swin2SR-classical-sr-x2-64'); + * const url = 'https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main/butterfly.jpg'; + * const output = await upscaler(url); + * // RawImage { + * // data: Uint8Array(786432) [ 41, 31, 24, 43, ... ], + * // width: 512, + * // height: 512, + * // channels: 3 + * // } + * ``` + */ +export class ImageToImagePipeline extends (/** @type {new (options: ImagePipelineConstructorArgs) => ImageToImagePipelineType} */ (Pipeline)) { + /** + * Create a new ImageToImagePipeline. + * @param {ImagePipelineConstructorArgs} options An object used to instantiate the pipeline. + */ + constructor(options) { + super(options); + } + + /** @type {ImageToImagePipelineCallback} */ + async _call(images) { + + const preparedImages = await prepareImages(images); + const inputs = await this.processor(preparedImages); + const outputs = await this.model(inputs); + + /** @type {RawImage[]} */ + const toReturn = []; + for (const batch of outputs.reconstruction) { + const output = batch.squeeze().clamp_(0, 1).mul_(255).round_().to('uint8'); + // toReturn.push(RawImage.fromTensor(output)); + } + + return toReturn.length > 1 ? toReturn : toReturn[0]; + } +} + +/** + * @typedef {Object} DepthEstimationPipelineOutput + * @property {Tensor} predicted_depth The raw depth map predicted by the model. + * @property {RawImage} depth The processed depth map as an image (with the same size as the input image). + * + * @callback DepthEstimationPipelineCallback Predicts the depth for the image(s) passed as inputs. + * @param {ImagePipelineInputs} images The images to compute depth for. + * @returns {Promise} An image or a list of images containing result(s). + * + * @typedef {ImagePipelineConstructorArgs & DepthEstimationPipelineCallback & Disposable} DepthEstimationPipelineType + */ + +/** + * Depth estimation pipeline using any `AutoModelForDepthEstimation`. This pipeline predicts the depth of an image. + * + * **Example:** Depth estimation w/ `Xenova/dpt-hybrid-midas` + * ```javascript + * const depth_estimator = await pipeline('depth-estimation', 'Xenova/dpt-hybrid-midas'); + * const url = 'https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main/cats.jpg'; + * const out = await depth_estimator(url); + * // { + * // predicted_depth: Tensor { + * // dims: [ 384, 384 ], + * // type: 'float32', + * // data: Float32Array(147456) [ 542.859130859375, 545.2833862304688, 546.1649169921875, ... ], + * // size: 147456 + * // }, + * // depth: RawImage { + * // data: Uint8Array(307200) [ 86, 86, 86, ... ], + * // width: 640, + * // height: 480, + * // channels: 1 + * // } + * // } + * ``` + */ +export class DepthEstimationPipeline extends (/** @type {new (options: ImagePipelineConstructorArgs) => DepthEstimationPipelineType} */ (Pipeline)) { + /** + * Create a new DepthEstimationPipeline. + * @param {ImagePipelineConstructorArgs} options An object used to instantiate the pipeline. + */ + constructor(options) { + super(options); + } + + /** @type {DepthEstimationPipelineCallback} */ + async _call(images) { + + const preparedImages = await prepareImages(images); + + const inputs = await this.processor(preparedImages); + const { predicted_depth } = await this.model(inputs); + + const toReturn = []; + for (let i = 0; i < preparedImages.length; ++i) { + const prediction = interpolate(predicted_depth[i], preparedImages[i].size.reverse(), 'bilinear', false); + const formatted = prediction.mul_(255 / max(prediction.data)[0]).to('uint8'); + toReturn.push({ + predicted_depth: predicted_depth[i], + // depth: RawImage.fromTensor(formatted), + }); + } + + return toReturn.length > 1 ? toReturn : toReturn[0]; + } +} + +const SUPPORTED_TASKS = Object.freeze({ + "text-classification": { + "tokenizer": AutoTokenizer, + "pipeline": TextClassificationPipeline, + "model": AutoModelForSequenceClassification, + "default": { + // TODO: replace with original + // "model": "distilbert-base-uncased-finetuned-sst-2-english", + "model": "Xenova/distilbert-base-uncased-finetuned-sst-2-english", + }, + "type": "text", + }, + "token-classification": { + "tokenizer": AutoTokenizer, + "pipeline": TokenClassificationPipeline, + "model": AutoModelForTokenClassification, + "default": { + // TODO: replace with original + // "model": "Davlan/bert-base-multilingual-cased-ner-hrl", + "model": "Xenova/bert-base-multilingual-cased-ner-hrl", + }, + "type": "text", + }, + "question-answering": { + "tokenizer": AutoTokenizer, + "pipeline": QuestionAnsweringPipeline, + "model": AutoModelForQuestionAnswering, + "default": { + // TODO: replace with original + // "model": "distilbert-base-cased-distilled-squad", + "model": "Xenova/distilbert-base-cased-distilled-squad", + }, + "type": "text", + }, + + "fill-mask": { + "tokenizer": AutoTokenizer, + "pipeline": FillMaskPipeline, + "model": AutoModelForMaskedLM, + "default": { + // TODO: replace with original + // "model": "bert-base-uncased", + "model": "Xenova/bert-base-uncased", + }, + "type": "text", + }, + "summarization": { + "tokenizer": AutoTokenizer, + "pipeline": SummarizationPipeline, + "model": AutoModelForSeq2SeqLM, + "default": { + // TODO: replace with original + // "model": "sshleifer/distilbart-cnn-6-6", + "model": "Xenova/distilbart-cnn-6-6", + }, + "type": "text", + }, + "translation": { + "tokenizer": AutoTokenizer, + "pipeline": TranslationPipeline, + "model": AutoModelForSeq2SeqLM, + "default": { + // TODO: replace with original + // "model": "t5-small", + "model": "Xenova/t5-small", + }, + "type": "text", + }, + "text2text-generation": { + "tokenizer": AutoTokenizer, + "pipeline": Text2TextGenerationPipeline, + "model": AutoModelForSeq2SeqLM, + "default": { + // TODO: replace with original + // "model": "google/flan-t5-small", + "model": "Xenova/flan-t5-small", + }, + "type": "text", + }, + "text-generation": { + "tokenizer": AutoTokenizer, + "pipeline": TextGenerationPipeline, + "model": AutoModelForCausalLM, + "default": { + // TODO: replace with original + // "model": "gpt2", + "model": "Xenova/gpt2", + }, + "type": "text", + }, + "zero-shot-classification": { + "tokenizer": AutoTokenizer, + "pipeline": ZeroShotClassificationPipeline, + "model": AutoModelForSequenceClassification, + "default": { + // TODO: replace with original + // "model": "typeform/distilbert-base-uncased-mnli", + "model": "Xenova/distilbert-base-uncased-mnli", + }, + "type": "text", + }, + "audio-classification": { + "pipeline": AudioClassificationPipeline, + "model": AutoModelForAudioClassification, + "processor": AutoProcessor, + "default": { + // TODO: replace with original + // "model": "superb/wav2vec2-base-superb-ks", + "model": "Xenova/wav2vec2-base-superb-ks", + }, + "type": "audio", + }, + "zero-shot-audio-classification": { + "tokenizer": AutoTokenizer, + "pipeline": ZeroShotAudioClassificationPipeline, + "model": AutoModel, + "processor": AutoProcessor, + "default": { + // TODO: replace with original + // "model": "laion/clap-htsat-fused", + "model": "Xenova/clap-htsat-unfused", + }, + "type": "multimodal", + }, + "automatic-speech-recognition": { + "tokenizer": AutoTokenizer, + "pipeline": AutomaticSpeechRecognitionPipeline, + "model": [AutoModelForSpeechSeq2Seq, AutoModelForCTC], + "processor": AutoProcessor, + "default": { + // TODO: replace with original + // "model": "openai/whisper-tiny.en", + "model": "Xenova/whisper-tiny.en", + }, + "type": "multimodal", + }, + "text-to-audio": { + "tokenizer": AutoTokenizer, + "pipeline": TextToAudioPipeline, + "model": [AutoModelForTextToWaveform, AutoModelForTextToSpectrogram], + "processor": [AutoProcessor, /* Some don't use a processor */ null], + "default": { + // TODO: replace with original + // "model": "microsoft/speecht5_tts", + "model": "Xenova/speecht5_tts", + }, + "type": "text", + }, + "image-to-text": { + "tokenizer": AutoTokenizer, + "pipeline": ImageToTextPipeline, + "model": AutoModelForVision2Seq, + "processor": AutoProcessor, + "default": { + // TODO: replace with original + // "model": "nlpconnect/vit-gpt2-image-captioning", + "model": "Xenova/vit-gpt2-image-captioning", + }, + "type": "multimodal", + }, + + "image-classification": { + // no tokenizer + "pipeline": ImageClassificationPipeline, + "model": AutoModelForImageClassification, + "processor": AutoProcessor, + "default": { + // TODO: replace with original + // "model": "google/vit-base-patch16-224", + "model": "Xenova/vit-base-patch16-224", + }, + "type": "multimodal", + }, + + "image-segmentation": { + // no tokenizer + "pipeline": ImageSegmentationPipeline, + "model": [AutoModelForImageSegmentation, AutoModelForSemanticSegmentation], + "processor": AutoProcessor, + "default": { + // TODO: replace with original + // "model": "facebook/detr-resnet-50-panoptic", + "model": "Xenova/detr-resnet-50-panoptic", + }, + "type": "multimodal", + }, + + "zero-shot-image-classification": { + "tokenizer": AutoTokenizer, + "pipeline": ZeroShotImageClassificationPipeline, + "model": AutoModel, + "processor": AutoProcessor, + "default": { + // TODO: replace with original + // "model": "openai/clip-vit-base-patch32", + "model": "Xenova/clip-vit-base-patch32", + }, + "type": "multimodal", + }, + + "object-detection": { + // no tokenizer + "pipeline": ObjectDetectionPipeline, + "model": AutoModelForObjectDetection, + "processor": AutoProcessor, + "default": { + // TODO: replace with original + // "model": "facebook/detr-resnet-50", + "model": "Xenova/detr-resnet-50", + }, + "type": "multimodal", + }, + "zero-shot-object-detection": { + "tokenizer": AutoTokenizer, + "pipeline": ZeroShotObjectDetectionPipeline, + "model": AutoModelForZeroShotObjectDetection, + "processor": AutoProcessor, + "default": { + // TODO: replace with original + // "model": "google/owlvit-base-patch32", + "model": "Xenova/owlvit-base-patch32", + }, + "type": "multimodal", + }, + "document-question-answering": { + "tokenizer": AutoTokenizer, + "pipeline": DocumentQuestionAnsweringPipeline, + "model": AutoModelForDocumentQuestionAnswering, + "processor": AutoProcessor, + "default": { + // TODO: replace with original + // "model": "naver-clova-ix/donut-base-finetuned-docvqa", + "model": "Xenova/donut-base-finetuned-docvqa", + }, + "type": "multimodal", + }, + "image-to-image": { + // no tokenizer + "pipeline": ImageToImagePipeline, + "model": AutoModelForImageToImage, + "processor": AutoProcessor, + "default": { + // TODO: replace with original + // "model": "caidas/swin2SR-classical-sr-x2-64", + "model": "Xenova/swin2SR-classical-sr-x2-64", + }, + "type": "image", + }, + "depth-estimation": { + // no tokenizer + "pipeline": DepthEstimationPipeline, + "model": AutoModelForDepthEstimation, + "processor": AutoProcessor, + "default": { + // TODO: replace with original + // "model": "Intel/dpt-large", + "model": "Xenova/dpt-large", + }, + "type": "image", + }, + + // This task serves as a useful interface for dealing with sentence-transformers (https://huggingface.co/sentence-transformers). + "feature-extraction": { + "tokenizer": AutoTokenizer, + "pipeline": FeatureExtractionPipeline, + "model": AutoModel, + "default": { + // TODO: replace with original + // "model": "sentence-transformers/all-MiniLM-L6-v2", + "model": "Xenova/all-MiniLM-L6-v2", + }, + "type": "text", + }, +}) + + +// TODO: Add types for TASK_ALIASES +const TASK_ALIASES = Object.freeze({ + "sentiment-analysis": "text-classification", + "ner": "token-classification", + // "vqa": "visual-question-answering", // TODO: Add + "asr": "automatic-speech-recognition", + "text-to-speech": "text-to-audio", + + // Add for backwards compatibility + "embeddings": "feature-extraction", +}); + +/** + * @typedef {keyof typeof SUPPORTED_TASKS} TaskType + * @typedef {keyof typeof TASK_ALIASES} AliasType + * @typedef {TaskType | AliasType} PipelineType All possible pipeline types. + * @typedef {{[K in TaskType]: InstanceType}} SupportedTasks A mapping of pipeline names to their corresponding pipeline classes. + * @typedef {{[K in AliasType]: InstanceType}} AliasTasks A mapping from pipeline aliases to their corresponding pipeline classes. + * @typedef {SupportedTasks & AliasTasks} AllTasks A mapping from all pipeline names and aliases to their corresponding pipeline classes. + */ + +/** + * Utility factory method to build a `Pipeline` object. + * + * @template {PipelineType} T The type of pipeline to return. + * @param {T} task The task defining which pipeline will be returned. Currently accepted tasks are: + * - `"audio-classification"`: will return a `AudioClassificationPipeline`. + * - `"automatic-speech-recognition"`: will return a `AutomaticSpeechRecognitionPipeline`. + * - `"depth-estimation"`: will return a `DepthEstimationPipeline`. + * - `"document-question-answering"`: will return a `DocumentQuestionAnsweringPipeline`. + * - `"feature-extraction"`: will return a `FeatureExtractionPipeline`. + * - `"fill-mask"`: will return a `FillMaskPipeline`. + * - `"image-classification"`: will return a `ImageClassificationPipeline`. + * - `"image-segmentation"`: will return a `ImageSegmentationPipeline`. + * - `"image-to-text"`: will return a `ImageToTextPipeline`. + * - `"object-detection"`: will return a `ObjectDetectionPipeline`. + * - `"question-answering"`: will return a `QuestionAnsweringPipeline`. + * - `"summarization"`: will return a `SummarizationPipeline`. + * - `"text2text-generation"`: will return a `Text2TextGenerationPipeline`. + * - `"text-classification"` (alias "sentiment-analysis" available): will return a `TextClassificationPipeline`. + * - `"text-generation"`: will return a `TextGenerationPipeline`. + * - `"token-classification"` (alias "ner" available): will return a `TokenClassificationPipeline`. + * - `"translation"`: will return a `TranslationPipeline`. + * - `"translation_xx_to_yy"`: will return a `TranslationPipeline`. + * - `"zero-shot-classification"`: will return a `ZeroShotClassificationPipeline`. + * - `"zero-shot-audio-classification"`: will return a `ZeroShotAudioClassificationPipeline`. + * - `"zero-shot-image-classification"`: will return a `ZeroShotImageClassificationPipeline`. + * - `"zero-shot-object-detection"`: will return a `ZeroShotObjectDetectionPipeline`. + * @param {string} [model=null] The name of the pre-trained model to use. If not specified, the default model for the task will be used. + * @param {import('./utils/hub.js').PretrainedOptions} [options] Optional parameters for the pipeline. + * @returns {Promise} A Pipeline object for the specified task. + * @throws {Error} If an unsupported pipeline is requested. + */ +export async function pipeline( + task, + model = null, + { + quantized = true, + progress_callback = null, + config = null, + cache_dir = null, + local_files_only = false, + revision = 'main', + } = {} +) { + // Helper method to construct pipeline + + // Apply aliases + // @ts-ignore + task = TASK_ALIASES[task] ?? task; + + // Get pipeline info + const pipelineInfo = SUPPORTED_TASKS[task.split('_', 1)[0]]; + if (!pipelineInfo) { + throw Error(`Unsupported pipeline: ${task}. Must be one of [${Object.keys(SUPPORTED_TASKS)}]`) + } + + // Use model if specified, otherwise, use default + if (!model) { + model = pipelineInfo.default.model + console.log(`No model specified. Using default model: "${model}".`); + } + + const pretrainedOptions = { + quantized, + progress_callback, + config, + cache_dir, + local_files_only, + revision, + } + + const classes = new Map([ + ['tokenizer', pipelineInfo.tokenizer], + ['model', pipelineInfo.model], + ['processor', pipelineInfo.processor], + ]); + + // Load model, tokenizer, and processor (if they exist) + const results = await loadItems(classes, model, pretrainedOptions); + results.task = task; + + dispatchCallback(progress_callback, { + 'status': 'ready', + 'task': task, + 'model': model, + }); + + const pipelineClass = pipelineInfo.pipeline; + return new pipelineClass(results); +} + + +/** + * Helper function to get applicable model, tokenizer, or processor classes for a given model. + * @param {Map} mapping The mapping of names to classes, arrays of classes, or null. + * @param {string} model The name of the model to load. + * @param {import('./utils/hub.js').PretrainedOptions} pretrainedOptions The options to pass to the `from_pretrained` method. + * @private + */ +async function loadItems(mapping, model, pretrainedOptions) { + + const result = Object.create(null); + + /**@type {Promise[]} */ + const promises = []; + for (let [name, cls] of mapping.entries()) { + if (!cls) continue; + + /**@type {Promise} */ + let promise; + if (Array.isArray(cls)) { + promise = new Promise(async (resolve, reject) => { + let e; + for (let c of cls) { + if (c === null) { + // If null, we resolve it immediately, meaning the relevant + // class was not found, but it is optional. + resolve(null); + return; + } + try { + resolve(await c.from_pretrained(model, pretrainedOptions)); + return; + } catch (err) { + e = err; + } + } + reject(e); + }) + } else { + promise = cls.from_pretrained(model, pretrainedOptions); + } + + result[name] = promise; + promises.push(promise); + } + + // Wait for all promises to resolve (in parallel) + await Promise.all(promises); + + // Then assign to result + for (let [name, promise] of Object.entries(result)) { + result[name] = await promise; + } + + return result; +} \ No newline at end of file diff --git a/core/vendor/modules/@xenova/transformers/src/processors.js b/core/vendor/modules/@xenova/transformers/src/processors.js new file mode 100644 index 000000000..37e70c197 --- /dev/null +++ b/core/vendor/modules/@xenova/transformers/src/processors.js @@ -0,0 +1,1966 @@ + +/** + * @file Processors are used to prepare non-textual inputs (e.g., image or audio) for a model. + * + * **Example:** Using a `WhisperProcessor` to prepare an audio input for a model. + * ```javascript + * import { AutoProcessor, read_audio } from '@xenova/transformers'; + * + * let processor = await AutoProcessor.from_pretrained('openai/whisper-tiny.en'); + * let audio = await read_audio('https://huggingface.co/datasets/Narsil/asr_dummy/resolve/main/mlk.flac', 16000); + * let { input_features } = await processor(audio); + * // Tensor { + * // data: Float32Array(240000) [0.4752984642982483, 0.5597258806228638, 0.56434166431427, ...], + * // dims: [1, 80, 3000], + * // type: 'float32', + * // size: 240000, + * // } + * ``` + * + * @module processors + */ +import { + Callable, + calculateDimensions, + calculateReflectOffset, +} from './utils/core.js'; + +import { + getModelJSON, +} from './utils/hub.js'; + +import { + max, + min, + softmax, +} from './utils/maths.js'; + + +import { Tensor, cat, interpolate, stack, transpose } from './utils/tensor.js'; + +// import { RawImage } from './utils/image.js'; +import { + mel_filter_bank, + spectrogram, + window_function, +} from './utils/audio.js'; + + +// Helper functions + +/** + * Converts bounding boxes from center format to corners format. + * + * @param {number[]} arr The coordinate for the center of the box and its width, height dimensions (center_x, center_y, width, height) + * @returns {number[]} The coodinates for the top-left and bottom-right corners of the box (top_left_x, top_left_y, bottom_right_x, bottom_right_y) + */ +function center_to_corners_format([centerX, centerY, width, height]) { + return [ + centerX - width / 2, + centerY - height / 2, + centerX + width / 2, + centerY + height / 2 + ]; +} + +/** + * Post-processes the outputs of the model (for object detection). + * @param {Object} outputs The outputs of the model that must be post-processed + * @param {Tensor} outputs.logits The logits + * @param {Tensor} outputs.pred_boxes The predicted boxes. + * @param {number} [threshold=0.5] The threshold to use for the scores. + * @param {number[][]} [target_sizes=null] The sizes of the original images. + * @param {boolean} [is_zero_shot=false] Whether zero-shot object detection was performed. + * @return {Object[]} An array of objects containing the post-processed outputs. + * @private + */ +function post_process_object_detection(outputs, threshold = 0.5, target_sizes = null, is_zero_shot = false) { + const out_logits = outputs.logits; + const out_bbox = outputs.pred_boxes; + const [batch_size, num_boxes, num_classes] = out_logits.dims; + + if (target_sizes !== null && target_sizes.length !== batch_size) { + throw Error("Make sure that you pass in as many target sizes as the batch dimension of the logits") + } + let toReturn = []; + for (let i = 0; i < batch_size; ++i) { + let target_size = target_sizes !== null ? target_sizes[i] : null; + let info = { + boxes: [], + classes: [], + scores: [] + } + let logits = out_logits[i]; + let bbox = out_bbox[i]; + + for (let j = 0; j < num_boxes; ++j) { + let logit = logits[j]; + + let indices = []; + let probs; + if (is_zero_shot) { + // Get indices of classes with high enough probability + probs = logit.sigmoid().data; + for (let k = 0; k < probs.length; ++k) { + if (probs[k] > threshold) { + indices.push(k); + } + } + + } else { + // Get most probable class + let maxIndex = max(logit.data)[1]; + + if (maxIndex === num_classes - 1) { + // This is the background class, skip it + continue; + } + indices.push(maxIndex); + + // Compute softmax over classes + probs = softmax(logit.data); + } + + for (const index of indices) { + + // Some class has a high enough probability + /** @type {number[]} */ + let box = bbox[j].data; + + // convert to [x0, y0, x1, y1] format + box = center_to_corners_format(box) + if (target_size !== null) { + box = box.map((x, i) => x * target_size[(i + 1) % 2]) + } + + info.boxes.push(box); + info.classes.push(index); + info.scores.push(probs[index]); + } + } + toReturn.push(info); + } + return toReturn; +} + +/** + * Named tuple to indicate the order we are using is (height x width), even though + * the Graphics’ industry standard is (width x height). + * @typedef {[height: number, width: number]} HeightWidth + */ + +/** + * Helper function to validate audio inputs. + * @param {any} audio The audio data. + * @param {string} feature_extractor The name of the feature extractor. + * @private + */ +function validate_audio_inputs(audio, feature_extractor) { + if (!(audio instanceof Float32Array || audio instanceof Float64Array)) { + throw new Error( + `${feature_extractor} expects input to be a Float32Array or a Float64Array, but got ${audio?.constructor?.name ?? typeof audio} instead.` + + `If using the feature extractor directly, remember to use \`read_audio(url, sampling_rate)\` to obtain the raw audio data of the file/url.` + ) + } +} + +/** + * Base class for feature extractors. + * + * @extends Callable + */ +export class FeatureExtractor extends Callable { + /** + * Constructs a new FeatureExtractor instance. + * + * @param {Object} config The configuration for the feature extractor. + */ + constructor(config) { + super(); + this.config = config + } +} + +/** + * @typedef {object} ImageFeatureExtractorResult + * @property {Tensor} pixel_values The pixel values of the batched preprocessed images. + * @property {HeightWidth[]} original_sizes Array of two-dimensional tuples like [[480, 640]]. + * @property {HeightWidth[]} reshaped_input_sizes Array of two-dimensional tuples like [[1000, 1330]]. + */ + +/** + * Feature extractor for image models. + * + * @extends FeatureExtractor + */ +export class ImageFeatureExtractor extends FeatureExtractor { + + /** + * Constructs a new ImageFeatureExtractor instance. + * + * @param {Object} config The configuration for the feature extractor. + * @param {number[]} config.image_mean The mean values for image normalization. + * @param {number[]} config.image_std The standard deviation values for image normalization. + * @param {boolean} config.do_rescale Whether to rescale the image pixel values to the [0,1] range. + * @param {number} config.rescale_factor The factor to use for rescaling the image pixel values. + * @param {boolean} config.do_normalize Whether to normalize the image pixel values. + * @param {boolean} config.do_resize Whether to resize the image. + * @param {number} config.resample What method to use for resampling. + * @param {number} config.size The size to resize the image to. + */ + constructor(config) { + super(config); + + this.image_mean = this.config.image_mean ?? this.config.mean; + this.image_std = this.config.image_std ?? this.config.std; + + this.resample = this.config.resample ?? 2; // 2 => bilinear + this.do_rescale = this.config.do_rescale ?? true; + this.rescale_factor = this.config.rescale_factor ?? (1 / 255); + this.do_normalize = this.config.do_normalize; + + this.do_resize = this.config.do_resize; + this.do_thumbnail = this.config.do_thumbnail; + this.size = this.config.size; + this.size_divisibility = this.config.size_divisibility ?? this.config.size_divisor; + + this.do_center_crop = this.config.do_center_crop; + this.crop_size = this.config.crop_size; + this.do_convert_rgb = this.config.do_convert_rgb ?? true; + this.do_crop_margin = this.config.do_crop_margin; + + this.pad_size = this.config.pad_size; + this.do_pad = this.config.do_pad; + + if (this.do_pad && !this.pad_size && this.size && this.size.width !== undefined && this.size.height !== undefined) { + // Should pad, but no pad size specified + // We infer the pad size from the resize size + this.pad_size = this.size + } + } + + /** + * Resize the image to make a thumbnail. The image is resized so that no dimension is larger than any + * corresponding dimension of the specified size. + * @param {RawImage} image The image to be resized. + * @param {{height:number, width:number}} size The size `{"height": h, "width": w}` to resize the image to. + * @param {string | 0 | 1 | 2 | 3 | 4 | 5} [resample=2] The resampling filter to use. + * @returns {Promise} The resized image. + */ + async thumbnail(image, size, resample = 2) { + const input_height = image.height; + const input_width = image.width; + + const output_height = size.height; + const output_width = size.width; + + // We always resize to the smallest of either the input or output size. + let height = Math.min(input_height, output_height) + let width = Math.min(input_width, output_width) + + if (height === input_height && width === input_width) { + return image; + } + if (input_height > input_width) { + width = Math.floor(input_width * height / input_height); + } else if (input_width > input_height) { + height = Math.floor(input_height * width / input_width); + } + return await image.resize(width, height, { resample }); + } + + + /** + * Crops the margin of the image. Gray pixels are considered margin (i.e., pixels with a value below the threshold). + * @param {RawImage} image The image to be cropped. + * @param {number} gray_threshold Value below which pixels are considered to be gray. + * @returns {Promise} The cropped image. + */ + async crop_margin(image, gray_threshold = 200) { + + const gray_image = image.clone().grayscale(); + + const minValue = min(gray_image.data)[0]; + const maxValue = max(gray_image.data)[0]; + const diff = maxValue - minValue; + + if (diff === 0) { + return image; + } + + const threshold = gray_threshold / 255; + + let x_min = gray_image.width, y_min = gray_image.height, x_max = 0, y_max = 0; + for (let j = 0; j < gray_image.height; ++j) { + const row = j * gray_image.width; + for (let i = 0; i < gray_image.width; ++i) { + if ((gray_image.data[row + i] - minValue) / diff < threshold) { + // We have a non-zero pixel, so we update the min/max values accordingly + x_min = Math.min(x_min, i); + y_min = Math.min(y_min, j); + x_max = Math.max(x_max, i); + y_max = Math.max(y_max, j); + } + } + } + + image = await image.crop([x_min, y_min, x_max, y_max]); + return image; + } + + /** + * Pad the image by a certain amount. + * @param {Float32Array} pixelData The pixel data to pad. + * @param {number[]} imgDims The dimensions of the image. + * @param {{width:number; height:number}|number} padSize The dimensions of the padded image. + * @param {Object} options The options for padding. + * @param {'constant'|'symmetric'} [options.mode='constant'] The type of padding to add. + * @param {boolean} [options.center=false] Whether to center the image. + * @param {number} [options.constant_values=0] The constant value to use for padding. + * @returns {[Float32Array, number[]]} The padded pixel data and image dimensions. + */ + pad_image(pixelData, imgDims, padSize, { + mode = 'constant', + center = false, + constant_values = 0, + } = {}) { + const [imageWidth, imageHeight, imageChannels] = imgDims; + + let paddedImageWidth, paddedImageHeight; + if (typeof padSize === 'number') { + paddedImageWidth = padSize; + paddedImageHeight = padSize; + } else { + paddedImageWidth = padSize.width; + paddedImageHeight = padSize.height; + } + + // Only add padding if there is a difference in size + if (paddedImageWidth !== imageWidth || paddedImageHeight !== imageHeight) { + const paddedPixelData = new Float32Array(paddedImageWidth * paddedImageHeight * imageChannels); + if (Array.isArray(constant_values)) { + // Fill with constant values, cycling through the array + for (let i = 0; i < paddedPixelData.length; ++i) { + paddedPixelData[i] = constant_values[i % imageChannels]; + } + } else if (constant_values !== 0) { + paddedPixelData.fill(constant_values); + } + + const [left, top] = center + ? [Math.floor((paddedImageWidth - imageWidth) / 2), Math.floor((paddedImageHeight - imageHeight) / 2)] + : [0, 0]; + + // Copy the original image into the padded image + for (let i = 0; i < imageHeight; ++i) { + const a = (i + top) * paddedImageWidth; + const b = i * imageWidth; + for (let j = 0; j < imageWidth; ++j) { + const c = (a + j + left) * imageChannels; + const d = (b + j) * imageChannels; + for (let k = 0; k < imageChannels; ++k) { + paddedPixelData[c + k] = pixelData[d + k]; + } + } + } + + if (mode === 'symmetric') { + if (center) { + throw new Error('`center` padding is not supported when `mode` is set to `symmetric`.'); + // TODO: Implement this + } + const h1 = imageHeight - 1; + const w1 = imageWidth - 1; + for (let i = 0; i < paddedImageHeight; ++i) { + const a = i * paddedImageWidth; + const b = calculateReflectOffset(i, h1) * imageWidth; + + for (let j = 0; j < paddedImageWidth; ++j) { + if (i < imageHeight && j < imageWidth) continue; // Do not overwrite original image + const c = (a + j) * imageChannels; + const d = (b + calculateReflectOffset(j, w1)) * imageChannels; + + // Copy channel-wise + for (let k = 0; k < imageChannels; ++k) { + paddedPixelData[c + k] = pixelData[d + k]; + } + } + } + } + + + // Update pixel data and image dimensions + pixelData = paddedPixelData; + imgDims = [paddedImageHeight, paddedImageWidth, imageChannels] + } + return [pixelData, imgDims]; + } + + /** + * Rescale the image' pixel values by `this.rescale_factor`. + * @param {Float32Array} pixelData The pixel data to rescale. + * @returns {void} + */ + rescale(pixelData) { + for (let i = 0; i < pixelData.length; ++i) { + pixelData[i] = this.rescale_factor * pixelData[i]; + } + } + + /** + * Find the target (width, height) dimension of the output image after + * resizing given the input image and the desired size. + * @param {RawImage} image The image to resize. + * @param {any} size The size to use for resizing the image. + * @returns {[number, number]} The target (width, height) dimension of the output image after resizing. + */ + get_resize_output_image_size(image, size) { + // `size` comes in many forms, so we need to handle them all here: + // 1. `size` is an integer, in which case we resize the image to be a square + + const [srcWidth, srcHeight] = image.size; + + let shortest_edge; + let longest_edge; + + if (this.do_thumbnail) { + // NOTE: custom logic for `Donut` models + const { height, width } = size; + shortest_edge = Math.min(height, width) + } + // Support both formats for backwards compatibility + else if (Number.isInteger(size)) { + shortest_edge = size; + longest_edge = this.config.max_size ?? shortest_edge; + + } else if (size !== undefined) { + // Extract known properties from `size` + shortest_edge = size.shortest_edge; + longest_edge = size.longest_edge; + } + + // If `longest_edge` and `shortest_edge` are set, maintain aspect ratio and resize to `shortest_edge` + // while keeping the largest dimension <= `longest_edge` + if (shortest_edge !== undefined || longest_edge !== undefined) { + // http://opensourcehacker.com/2011/12/01/calculate-aspect-ratio-conserving-resize-for-images-in-javascript/ + // Try resize so that shortest edge is `shortest_edge` (target) + const shortResizeFactor = shortest_edge === undefined + ? 1 // If `shortest_edge` is not set, don't upscale + : Math.max(shortest_edge / srcWidth, shortest_edge / srcHeight); + + const newWidth = srcWidth * shortResizeFactor; + const newHeight = srcHeight * shortResizeFactor; + + // The new width and height might be greater than `longest_edge`, so + // we downscale again to ensure the largest dimension is `longest_edge` + const longResizeFactor = longest_edge === undefined + ? 1 // If `longest_edge` is not set, don't downscale + : Math.min(longest_edge / newWidth, longest_edge / newHeight); + + // To avoid certain floating point precision issues, we round to 2 decimal places + const finalWidth = Math.floor(Number((newWidth * longResizeFactor).toFixed(2))); + const finalHeight = Math.floor(Number((newHeight * longResizeFactor).toFixed(2))); + + return [finalWidth, finalHeight]; + + } else if (size !== undefined && size.width !== undefined && size.height !== undefined) { + // If `width` and `height` are set, resize to those dimensions + return [size.width, size.height]; + + } else if (this.size_divisibility !== undefined) { + // Rounds the height and width down to the closest multiple of size_divisibility + const newWidth = Math.floor(srcWidth / this.size_divisibility) * this.size_divisibility; + const newHeight = Math.floor(srcHeight / this.size_divisibility) * this.size_divisibility; + return [newWidth, newHeight]; + } else { + throw new Error(`Could not resize image due to unsupported \`this.size\` option in config: ${JSON.stringify(size)}`); + } + } + + /** + * Resizes the image. + * @param {RawImage} image The image to resize. + * @returns {Promise} The resized image. + */ + async resize(image) { + const [newWidth, newHeight] = this.get_resize_output_image_size(image, this.size); + return await image.resize(newWidth, newHeight, { + resample: this.resample, + }); + } + + /** + * @typedef {object} PreprocessedImage + * @property {HeightWidth} original_size The original size of the image. + * @property {HeightWidth} reshaped_input_size The reshaped input size of the image. + * @property {Tensor} pixel_values The pixel values of the preprocessed image. + */ + + /** + * Preprocesses the given image. + * + * @param {RawImage} image The image to preprocess. + * @param {Object} overrides The overrides for the preprocessing options. + * @returns {Promise} The preprocessed image. + */ + async preprocess(image, { + do_normalize = null, + do_pad = null, + do_convert_rgb = null, + do_convert_grayscale = null, + } = {}) { + if (this.do_crop_margin) { + // NOTE: Specific to nougat processors. This is done before resizing, + // and can be interpreted as a pre-preprocessing step. + image = await this.crop_margin(image); + } + + const [srcWidth, srcHeight] = image.size; // original image size + + // Convert image to RGB if specified in config. + if (do_convert_rgb ?? this.do_convert_rgb) { + image = image.rgb(); + } else if (do_convert_grayscale) { + image = image.grayscale(); + } + + // TODO: + // For efficiency reasons, it might be best to merge the resize and center crop operations into one. + + // Resize all images + if (this.do_resize) { + image = await this.resize(image); + } + + // Resize the image using thumbnail method. + if (this.do_thumbnail) { + image = await this.thumbnail(image, this.size, this.resample); + } + + if (this.do_center_crop) { + + let crop_width; + let crop_height; + if (Number.isInteger(this.crop_size)) { + crop_width = this.crop_size; + crop_height = this.crop_size; + } else { + crop_width = this.crop_size.width; + crop_height = this.crop_size.height; + } + + image = await image.center_crop(crop_width, crop_height); + } + + /** @type {HeightWidth} */ + const reshaped_input_size = [image.height, image.width]; + + let pixelData = Float32Array.from(image.data); + let imgDims = [image.height, image.width, image.channels]; + + if (this.do_rescale) { + this.rescale(pixelData); + } + + if (do_normalize ?? this.do_normalize) { + let image_mean = this.image_mean; + if (!Array.isArray(this.image_mean)) { + image_mean = new Array(image.channels).fill(image_mean); + } + + let image_std = this.image_std; + if (!Array.isArray(this.image_std)) { + image_std = new Array(image.channels).fill(image_mean); + } + + if (image_mean.length !== image.channels || image_std.length !== image.channels) { + throw new Error(`When set to arrays, the length of \`image_mean\` (${image_mean.length}) and \`image_std\` (${image_std.length}) must match the number of channels in the image (${image.channels}).`); + } + + for (let i = 0; i < pixelData.length; i += image.channels) { + for (let j = 0; j < image.channels; ++j) { + pixelData[i + j] = (pixelData[i + j] - this.image_mean[j]) / this.image_std[j]; + } + } + } + + // do padding after rescaling/normalizing + if (do_pad ?? (this.do_pad && this.pad_size)) { + const padded = this.pad_image(pixelData, [image.width, image.height, image.channels], this.pad_size); + [pixelData, imgDims] = padded; // Update pixel data and image dimensions + } + + // Create HWC tensor + const img = new Tensor('float32', pixelData, imgDims); + + // convert to channel dimension format: + const transposed = transpose(img, [2, 0, 1]); // hwc -> chw + + return { + original_size: [srcHeight, srcWidth], + reshaped_input_size: reshaped_input_size, + pixel_values: transposed, + } + } + + /** + * Calls the feature extraction process on an array of images, + * preprocesses each image, and concatenates the resulting + * features into a single Tensor. + * @param {RawImage[]} images The image(s) to extract features from. + * @param {...any} args Additional arguments. + * @returns {Promise} An object containing the concatenated pixel values (and other metadata) of the preprocessed images. + */ + async _call(images, ...args) { + if (!Array.isArray(images)) { + images = [images]; + } + /** @type {PreprocessedImage[]} */ + const imageData = await Promise.all(images.map(x => this.preprocess(x))); + + // Stack pixel values + const pixel_values = stack(imageData.map(x => x.pixel_values), 0); + + return { + pixel_values: pixel_values, + + // Original sizes of images + original_sizes: imageData.map(x => x.original_size), + + // Reshaped sizes of images, before padding or cropping + reshaped_input_sizes: imageData.map(x => x.reshaped_input_size), + } + } + +} + +export class SegformerFeatureExtractor extends ImageFeatureExtractor { + + /** + * Converts the output of `SegformerForSemanticSegmentation` into semantic segmentation maps. + * @param {*} outputs Raw outputs of the model. + * @param {number[][]} [target_sizes=null] List of tuples corresponding to the requested final size + * (height, width) of each prediction. If unset, predictions will not be resized. + * @returns {{segmentation: Tensor; labels: number[]}[]} The semantic segmentation maps. + */ + post_process_semantic_segmentation(outputs, target_sizes = null) { + + const logits = outputs.logits; + const batch_size = logits.dims[0]; + + if (target_sizes !== null && target_sizes.length !== batch_size) { + throw Error("Make sure that you pass in as many target sizes as the batch dimension of the logits") + } + + const toReturn = []; + for (let i = 0; i < batch_size; ++i) { + const target_size = target_sizes !== null ? target_sizes[i] : null; + + let data = logits[i]; + + // 1. If target_size is not null, we need to resize the masks to the target size + if (target_size !== null) { + // resize the masks to the target size + data = interpolate(data, target_size, 'bilinear', false); + } + const [height, width] = target_size ?? data.dims.slice(-2); + + const segmentation = new Tensor( + 'int32', + new Int32Array(height * width), + [height, width] + ); + + // Buffer to store current largest value + const buffer = data[0].data; + for (let j = 1; j < data.dims[0]; ++j) { + const row = data[j].data; + for (let k = 0; k < row.length; ++k) { + if (row[k] > buffer[k]) { + buffer[k] = row[k]; + segmentation.data[k] = j; + } + } + } + + // Store which objects have labels + // This is much more efficient that creating a set of the final values + const hasLabel = new Array(data.dims[0]); + const out = segmentation.data; + for (let j = 0; j < out.length; ++j) { + const index = out[j]; + hasLabel[index] = index; + } + /** @type {number[]} The unique list of labels that were detected */ + const labels = hasLabel.filter(x => x !== undefined); + + toReturn.push({ segmentation, labels }); + } + return toReturn; + } +} +export class BitImageProcessor extends ImageFeatureExtractor { } +export class DPTFeatureExtractor extends ImageFeatureExtractor { } +export class GLPNFeatureExtractor extends ImageFeatureExtractor { } +export class CLIPFeatureExtractor extends ImageFeatureExtractor { } +export class ChineseCLIPFeatureExtractor extends ImageFeatureExtractor { } +export class SiglipImageProcessor extends ImageFeatureExtractor { } +export class ConvNextFeatureExtractor extends ImageFeatureExtractor { + constructor(config) { + super(config); + + /** + * Percentage of the image to crop. Only has an effect if this.size < 384. + */ + this.crop_pct = this.config.crop_pct ?? (224 / 256); + } + + async resize(image) { + const shortest_edge = this.size?.shortest_edge; + if (shortest_edge === undefined) { + throw new Error(`Size dictionary must contain 'shortest_edge' key.`); + } + + if (shortest_edge < 384) { + // maintain same ratio, resizing shortest edge to shortest_edge/crop_pct + const resize_shortest_edge = Math.floor(shortest_edge / this.crop_pct); + + const [newWidth, newHeight] = this.get_resize_output_image_size(image, { + shortest_edge: resize_shortest_edge, + }); + + image = await image.resize(newWidth, newHeight, { + resample: this.resample, + }); + + // then crop to (shortest_edge, shortest_edge) + image = await image.center_crop(shortest_edge, shortest_edge); + } else { + // warping (no cropping) when evaluated at 384 or larger + image = await image.resize(shortest_edge, shortest_edge, { + resample: this.resample, + }); + } + + return image; + } +} +export class ConvNextImageProcessor extends ConvNextFeatureExtractor { } // NOTE extends ConvNextFeatureExtractor +export class ViTFeatureExtractor extends ImageFeatureExtractor { } +export class ViTImageProcessor extends ImageFeatureExtractor { } + +export class MobileViTFeatureExtractor extends ImageFeatureExtractor { } +export class OwlViTFeatureExtractor extends ImageFeatureExtractor { + /** @type {post_process_object_detection} */ + post_process_object_detection(...args) { + return post_process_object_detection(...args); + } +} +export class DeiTFeatureExtractor extends ImageFeatureExtractor { } +export class BeitFeatureExtractor extends ImageFeatureExtractor { } +export class DonutFeatureExtractor extends ImageFeatureExtractor { + pad_image(pixelData, imgDims, padSize, options = {}) { + const [imageWidth, imageHeight, imageChannels] = imgDims; + + let image_mean = this.image_mean; + if (!Array.isArray(this.image_mean)) { + image_mean = new Array(imageChannels).fill(image_mean); + } + + let image_std = this.image_std; + if (!Array.isArray(image_std)) { + image_std = new Array(imageChannels).fill(image_mean); + } + + const constant_values = image_mean.map((x, i) => - x / this.image_std[i]); + + return super.pad_image(pixelData, imgDims, padSize, { + center: true, + + // Since normalization is done after padding, we need to use certain constant values to ensure the same behaviour is observed. + // For more information, see https://github.com/huggingface/transformers/blob/main/src/transformers/models/donut/image_processing_donut.py#L433-L451 + constant_values: constant_values, + ...options, + }); + } +} +export class NougatImageProcessor extends DonutFeatureExtractor { } // NOTE extends DonutFeatureExtractor + +/** + * @typedef {object} DetrFeatureExtractorResultProps + * @property {Tensor} pixel_mask + * @typedef {ImageFeatureExtractorResult & DetrFeatureExtractorResultProps} DetrFeatureExtractorResult + */ + +/** + * Detr Feature Extractor. + * + * @extends ImageFeatureExtractor + */ +export class DetrFeatureExtractor extends ImageFeatureExtractor { + /** + * Calls the feature extraction process on an array of images, preprocesses + * each image, and concatenates the resulting features into a single Tensor. + * @param {RawImage[]} images The image(s) to extract features from. + * @returns {Promise} An object containing the concatenated pixel values of the preprocessed images. + */ + async _call(images) { + const result = await super._call(images); + + // TODO support differently-sized images, for now assume all images are the same size. + // TODO support different mask sizes (not just 64x64) + // Currently, just fill pixel mask with 1s + const maskSize = [result.pixel_values.dims[0], 64, 64]; + const pixel_mask = new Tensor( + 'int64', + new BigInt64Array(maskSize.reduce((a, b) => a * b)).fill(1n), + maskSize + ); + + return { ...result, pixel_mask }; + } + + /** + * Post-processes the outputs of the model (for object detection). + * @param {Object} outputs The outputs of the model that must be post-processed + * @param {Tensor} outputs.logits The logits + * @param {Tensor} outputs.pred_boxes The predicted boxes. + * @return {Object[]} An array of objects containing the post-processed outputs. + */ + + /** @type {post_process_object_detection} */ + post_process_object_detection(...args) { + return post_process_object_detection(...args); + } + + /** + * Binarize the given masks using `object_mask_threshold`, it returns the associated values of `masks`, `scores` and `labels`. + * @param {Tensor} class_logits The class logits. + * @param {Tensor} mask_logits The mask logits. + * @param {number} object_mask_threshold A number between 0 and 1 used to binarize the masks. + * @param {number} num_labels The number of labels. + * @returns {[Tensor[], number[], number[]]} The binarized masks, the scores, and the labels. + */ + remove_low_and_no_objects(class_logits, mask_logits, object_mask_threshold, num_labels) { + + let mask_probs_item = []; + let pred_scores_item = []; + let pred_labels_item = []; + + for (let j = 0; j < class_logits.dims[0]; ++j) { + let cls = class_logits[j]; + let mask = mask_logits[j]; + + let pred_label = max(cls.data)[1]; + if (pred_label === num_labels) { + // Is the background, so we ignore it + continue; + } + + let scores = softmax(cls.data); + let pred_score = scores[pred_label]; + if (pred_score > object_mask_threshold) { + mask_probs_item.push(mask); + pred_scores_item.push(pred_score); + pred_labels_item.push(pred_label); + } + } + + return [mask_probs_item, pred_scores_item, pred_labels_item]; + + } + + /** + * Checks whether the segment is valid or not. + * @param {Int32Array} mask_labels Labels for each pixel in the mask. + * @param {Tensor[]} mask_probs Probabilities for each pixel in the masks. + * @param {number} k The class id of the segment. + * @param {number} mask_threshold The mask threshold. + * @param {number} overlap_mask_area_threshold The overlap mask area threshold. + * @returns {[boolean, number[]]} Whether the segment is valid or not, and the indices of the valid labels. + */ + check_segment_validity( + mask_labels, + mask_probs, + k, + mask_threshold = 0.5, + overlap_mask_area_threshold = 0.8 + ) { + // mask_k is a 1D array of indices, indicating where the mask is equal to k + let mask_k = []; + let mask_k_area = 0; + let original_area = 0; + + // Compute the area of all the stuff in query k + for (let i = 0; i < mask_labels.length; ++i) { + if (mask_labels[i] === k) { + mask_k.push(i); + ++mask_k_area; + } + + if (mask_probs[k].data[i] >= mask_threshold) { + ++original_area; + } + } + let mask_exists = mask_k_area > 0 && original_area > 0; + + // Eliminate disconnected tiny segments + if (mask_exists) { + // Perform additional check + let area_ratio = mask_k_area / original_area; + mask_exists = area_ratio > overlap_mask_area_threshold; + } + + return [mask_exists, mask_k] + } + + /** + * Computes the segments. + * @param {Tensor[]} mask_probs The mask probabilities. + * @param {number[]} pred_scores The predicted scores. + * @param {number[]} pred_labels The predicted labels. + * @param {number} mask_threshold The mask threshold. + * @param {number} overlap_mask_area_threshold The overlap mask area threshold. + * @param {Set} label_ids_to_fuse The label ids to fuse. + * @param {number[]} target_size The target size of the image. + * @returns {[Tensor, Array<{id: number, label_id: number, score: number}>]} The computed segments. + */ + compute_segments( + mask_probs, + pred_scores, + pred_labels, + mask_threshold, + overlap_mask_area_threshold, + label_ids_to_fuse = null, + target_size = null, + ) { + let [height, width] = target_size ?? mask_probs[0].dims; + + let segmentation = new Tensor( + 'int32', + new Int32Array(height * width), + [height, width] + ); + let segments = []; + + // 1. If target_size is not null, we need to resize the masks to the target size + if (target_size !== null) { + // resize the masks to the target size + for (let i = 0; i < mask_probs.length; ++i) { + mask_probs[i] = interpolate(mask_probs[i], target_size, 'bilinear', false); + } + } + + // 2. Weigh each mask by its prediction score + // NOTE: `mask_probs` is updated in-place + // + // Temporary storage for the best label/scores for each pixel ([height, width]): + let mask_labels = new Int32Array(mask_probs[0].data.length); + let bestScores = new Float32Array(mask_probs[0].data.length); + + for (let i = 0; i < mask_probs.length; ++i) { + let score = pred_scores[i]; + + for (let j = 0; j < mask_probs[i].data.length; ++j) { + mask_probs[i].data[j] *= score + if (mask_probs[i].data[j] > bestScores[j]) { + mask_labels[j] = i; + bestScores[j] = mask_probs[i].data[j]; + } + } + } + + let current_segment_id = 0; + + // let stuff_memory_list = {} + for (let k = 0; k < pred_labels.length; ++k) { + let pred_class = pred_labels[k]; + + // TODO add `should_fuse` + // let should_fuse = pred_class in label_ids_to_fuse + + // Check if mask exists and large enough to be a segment + let [mask_exists, mask_k] = this.check_segment_validity( + mask_labels, + mask_probs, + k, + mask_threshold, + overlap_mask_area_threshold + ) + + if (!mask_exists) { + // Nothing to see here + continue; + } + + // TODO + // if (pred_class in stuff_memory_list) { + // current_segment_id = stuff_memory_list[pred_class] + // } else { + // current_segment_id += 1; + // } + ++current_segment_id; + + + // Add current object segment to final segmentation map + for (let index of mask_k) { + segmentation.data[index] = current_segment_id; + } + + segments.push({ + id: current_segment_id, + label_id: pred_class, + // was_fused: should_fuse, TODO + score: pred_scores[k], + }) + + // TODO + // if(should_fuse){ + // stuff_memory_list[pred_class] = current_segment_id + // } + } + + return [segmentation, segments]; + } + + /** + * Post-process the model output to generate the final panoptic segmentation. + * @param {*} outputs The model output to post process + * @param {number} [threshold=0.5] The probability score threshold to keep predicted instance masks. + * @param {number} [mask_threshold=0.5] Threshold to use when turning the predicted masks into binary values. + * @param {number} [overlap_mask_area_threshold=0.8] The overlap mask area threshold to merge or discard small disconnected parts within each binary instance mask. + * @param {Set} [label_ids_to_fuse=null] The labels in this state will have all their instances be fused together. + * @param {number[][]} [target_sizes=null] The target sizes to resize the masks to. + * @returns {Array<{ segmentation: Tensor, segments_info: Array<{id: number, label_id: number, score: number}>}>} + */ + post_process_panoptic_segmentation( + outputs, + threshold = 0.5, + mask_threshold = 0.5, + overlap_mask_area_threshold = 0.8, + label_ids_to_fuse = null, + target_sizes = null, + ) { + if (label_ids_to_fuse === null) { + console.warn("`label_ids_to_fuse` unset. No instance will be fused.") + label_ids_to_fuse = new Set(); + } + + const class_queries_logits = outputs.logits; // [batch_size, num_queries, num_classes+1] + const masks_queries_logits = outputs.pred_masks; // [batch_size, num_queries, height, width] + + const mask_probs = masks_queries_logits.sigmoid() // [batch_size, num_queries, height, width] + + let [batch_size, num_queries, num_labels] = class_queries_logits.dims; + num_labels -= 1; // Remove last class (background) + + if (target_sizes !== null && target_sizes.length !== batch_size) { + throw Error("Make sure that you pass in as many target sizes as the batch dimension of the logits") + } + + let toReturn = []; + for (let i = 0; i < batch_size; ++i) { + let target_size = target_sizes !== null ? target_sizes[i] : null; + + let class_logits = class_queries_logits[i]; + let mask_logits = mask_probs[i]; + + let [mask_probs_item, pred_scores_item, pred_labels_item] = this.remove_low_and_no_objects(class_logits, mask_logits, threshold, num_labels); + + if (pred_labels_item.length === 0) { + // No mask found + let [height, width] = target_size ?? mask_logits.dims.slice(-2); + + let segmentation = new Tensor( + 'int32', + new Int32Array(height * width).fill(-1), + [height, width] + ) + toReturn.push({ + segmentation: segmentation, + segments_info: [] + }); + continue; + } + + + // Get segmentation map and segment information of batch item + let [segmentation, segments] = this.compute_segments( + mask_probs_item, + pred_scores_item, + pred_labels_item, + mask_threshold, + overlap_mask_area_threshold, + label_ids_to_fuse, + target_size, + ) + + toReturn.push({ + segmentation: segmentation, + segments_info: segments + }) + } + + return toReturn; + } + + post_process_instance_segmentation() { + // TODO + throw Error("Not implemented yet"); + } +} + +export class YolosFeatureExtractor extends ImageFeatureExtractor { + /** @type {post_process_object_detection} */ + post_process_object_detection(...args) { + return post_process_object_detection(...args); + } +} + +/** + * @typedef {object} SamImageProcessorResult + * @property {Tensor} pixel_values + * @property {HeightWidth[]} original_sizes + * @property {HeightWidth[]} reshaped_input_sizes + * @property {Tensor} [input_points] + * @property {Tensor} [input_labels] + */ + +export class SamImageProcessor extends ImageFeatureExtractor { + + /** + * + * @param {any} input_points + * @param {HeightWidth[]} original_sizes + * @param {HeightWidth[]} reshaped_input_sizes + * @returns {Tensor} + */ + reshape_input_points(input_points, original_sizes, reshaped_input_sizes) { + + // Make deep copy to avoid altering user's input + input_points = structuredClone(input_points); + let shape = calculateDimensions(input_points); + + // TODO: add support for 2D input_points + if (shape.length === 3) { + // Correct user's input + shape = [1, ...shape]; + input_points = [input_points]; + } else if (shape.length !== 4) { + throw Error("The input_points must be a 4D tensor of shape `batch_size`, `point_batch_size`, `nb_points_per_image`, `2`.") + } + + // Reshape input points + for (let i = 0; i < input_points.length; ++i) { // batch_size + let originalImageSize = original_sizes[i]; + let reshapedImageSize = reshaped_input_sizes[i]; + + let resizeFactors = [ + reshapedImageSize[0] / originalImageSize[0], + reshapedImageSize[1] / originalImageSize[1] + ] + + for (let j = 0; j < input_points[i].length; ++j) { // point_batch_size + for (let k = 0; k < input_points[i][j].length; ++k) { // nb_points_per_image + for (let w = 0; w < input_points[i][j][k].length; ++w) { // 2 + input_points[i][j][k][w] *= resizeFactors[w]; + } + } + } + } + + return new Tensor( + 'float32', + Float32Array.from(input_points.flat(Infinity)), + shape + ) + + } + + /** + * + * @param {any} input_labels + * @param {Tensor} input_points + * @returns {Tensor} + */ + add_input_labels(input_labels, input_points) { + let shape = calculateDimensions(input_labels); + if (shape.length === 2) { + // Correct user's input + shape = [1, ...shape]; + input_labels = [input_labels]; + } else if (shape.length !== 3) { + throw Error("The input_points must be a 4D tensor of shape `batch_size`, `point_batch_size`, `nb_points_per_image`, `2`.") + } + + if (shape.some((x, i) => x !== input_points.dims[i])) { + throw Error(`The first ${shape.length} dimensions of 'input_points' and 'input_labels' must be the same.`) + } + return new Tensor( + 'int64', + input_labels.flat(Infinity).map(BigInt), + shape, + ) + } + /** + * @param {any[]} images The URL(s) of the image(s) to extract features from. + * @param {any} [input_points] A 3D or 4D array, representing the input points provided by the user. + * - 3D: `[point_batch_size, nb_points_per_image, 2]`. In this case, `batch_size` is assumed to be 1. + * - 4D: `[batch_size, point_batch_size, nb_points_per_image, 2]`. + * @param {any} [input_labels] A 2D or 3D array, representing the input labels for the points, used by the prompt encoder to encode the prompt. + * - 2D: `[point_batch_size, nb_points_per_image]`. In this case, `batch_size` is assumed to be 1. + * - 3D: `[batch_size, point_batch_size, nb_points_per_image]`. + * @returns {Promise} + */ + async _call(images, input_points = null, input_labels = null) { + // TODO allow user to use preprocessed images + /** @type {SamImageProcessorResult} */ + const processed = await super._call(images); + + if (input_points) { + processed.input_points = this.reshape_input_points( + input_points, processed.original_sizes, processed.reshaped_input_sizes + ); + } + + if (input_labels) { + if (!processed.input_points) { + throw Error("`input_points` must be provided if `input_labels` are provided.") + } + processed.input_labels = this.add_input_labels(input_labels, processed.input_points); + } + + return processed; + } + + /** + * Remove padding and upscale masks to the original image size. + * @param {Tensor} masks Batched masks from the mask_decoder in (batch_size, num_channels, height, width) format. + * @param {number[][]} original_sizes The original sizes of each image before it was resized to the model's expected input shape, in (height, width) format. + * @param {number[][]} reshaped_input_sizes The size of each image as it is fed to the model, in (height, width) format. Used to remove padding. + * @param {Object} options Optional parameters for post-processing. + * @param {number} [options.mask_threshold] The threshold to use for binarizing the masks. + * @param {boolean} [options.binarize] Whether to binarize the masks. + * @param {Object} [options.pad_size] The target size the images were padded to before being passed to the model. If `null`, the target size is assumed to be the processor's `pad_size`. + * @param {number} [options.pad_size.height] The height the images were padded to. + * @param {number} [options.pad_size.width] The width the images were padded to. + * @returns {Tensor[]} Batched masks in batch_size, num_channels, height, width) format, where (height, width) is given by original_size. + */ + post_process_masks(masks, original_sizes, reshaped_input_sizes, { + mask_threshold = 0.0, + binarize = true, + pad_size = null, + } = {}) { + // masks: [1, 1, 3, 256, 256] + + const output_masks = []; + + pad_size = pad_size ?? this.pad_size; + + const target_image_size = [pad_size.height, pad_size.width]; + + for (let i = 0; i < original_sizes.length; ++i) { + const original_size = original_sizes[i]; + const reshaped_input_size = reshaped_input_sizes[i]; + + const mask = masks[i]; // [b, c, h, w] + + // TODO: improve + const interpolated_masks = []; + for (let j = 0; j < mask.dims[0]; ++j) { + const m = mask[j]; // 3d tensor + + // Upscale mask to padded size + let interpolated_mask = interpolate(m, target_image_size, 'bilinear', false); + + // Crop mask + interpolated_mask = interpolated_mask.slice(null, [0, reshaped_input_size[0]], [0, reshaped_input_size[1]]); + + // Downscale mask + interpolated_mask = interpolate(interpolated_mask, original_size, 'bilinear', false); + + if (binarize) { + const binarizedMaskData = new Uint8Array(interpolated_mask.data.length); + for (let i = 0; i < interpolated_mask.data.length; ++i) { + if (interpolated_mask.data[i] > mask_threshold) { + binarizedMaskData[i] = 1; + } + } + interpolated_mask = new Tensor( + 'bool', + binarizedMaskData, + interpolated_mask.dims + ) + } + + interpolated_masks.push(interpolated_mask); + } + + output_masks.push(stack(interpolated_masks)); + } + + return output_masks; + } +} + +export class Swin2SRImageProcessor extends ImageFeatureExtractor { + pad_image(pixelData, imgDims, padSize, options = {}) { + // NOTE: In this case, `padSize` represents the size of the sliding window for the local attention. + // In other words, the image is padded so that its width and height are multiples of `padSize`. + const [imageWidth, imageHeight, imageChannels] = imgDims; + + return super.pad_image(pixelData, imgDims, { + // NOTE: For Swin2SR models, the original python implementation adds padding even when the image's width/height is already + // a multiple of `pad_size`. However, this is most likely a bug (PR: https://github.com/mv-lab/swin2sr/pull/19). + // For this reason, we only add padding when the image's width/height is not a multiple of `pad_size`. + width: imageWidth + (padSize - imageWidth % padSize) % padSize, + height: imageHeight + (padSize - imageHeight % padSize) % padSize, + }, { + mode: 'symmetric', + center: false, + constant_values: -1, + ...options, + }) + } +} + +export class VitMatteImageProcessor extends ImageFeatureExtractor { + /** + * Calls the feature extraction process on an array of images, preprocesses + * each image, and concatenates the resulting features into a single Tensor. + * @param {RawImage[]} images The image(s) to extract features from. + * @param {RawImage[]} trimaps The trimaps(s) to extract features from. + * @returns {Promise} An object containing the concatenated pixel values of the preprocessed images. + */ + async _call(images, trimaps) { + if (!Array.isArray(images)) { + images = [images]; + } + if (!Array.isArray(trimaps)) { + trimaps = [trimaps]; + } + + const imageData = await Promise.all(images.map(x => this.preprocess(x))); + const trimapData = await Promise.all(trimaps.map(x => this.preprocess(x, { + do_normalize: false, + do_convert_rgb: false, + do_convert_grayscale: true, + }))); + + + // Stack pixel values + const pixel_values = stack(imageData.map( + // Concatenate images and trimaps + (x, i) => cat([x.pixel_values, trimapData[i].pixel_values], 0) + ), 0); + + return { + pixel_values: pixel_values, + + // Original sizes of images + original_sizes: imageData.map(x => x.original_size), + + // Reshaped sizes of images, before padding or cropping + reshaped_input_sizes: imageData.map(x => x.reshaped_input_size), + } + } +} + +export class WhisperFeatureExtractor extends FeatureExtractor { + + constructor(config) { + super(config); + + // Prefer given `mel_filters` from preprocessor_config.json, or calculate them if they don't exist. + this.config.mel_filters ??= mel_filter_bank( + Math.floor(1 + this.config.n_fft / 2), // num_frequency_bins + this.config.feature_size, // num_mel_filters + 0.0, // min_frequency + 8000.0, // max_frequency + this.config.sampling_rate, // sampling_rate + "slaney", // norm + "slaney", // mel_scale + ); + + this.window = window_function(this.config.n_fft, 'hann'); + } + + /** + * Computes the log-Mel spectrogram of the provided audio waveform. + * @param {Float32Array|Float64Array} waveform The audio waveform to process. + * @returns {{data: Float32Array, dims: number[]}} An object containing the log-Mel spectrogram data as a Float32Array and its dimensions as an array of numbers. + */ + _extract_fbank_features(waveform) { + const { data, dims } = spectrogram( + waveform, + this.window, // window + this.config.n_fft, // frame_length + this.config.hop_length, // hop_length + { + power: 2.0, + mel_filters: this.config.mel_filters, + log_mel: 'log10', + + // Custom + max_num_frames: this.config.nb_max_frames, // 3000 + } + ) + + const maxValue = max(data)[0]; + + for (let i = 0; i < data.length; ++i) { + data[i] = (Math.max(data[i], maxValue - 8.0) + 4.0) / 4.0; + } + + return { data, dims }; + } + + /** + * Asynchronously extracts features from a given audio using the provided configuration. + * @param {Float32Array|Float64Array} audio The audio data as a Float32Array/Float64Array. + * @returns {Promise<{ input_features: Tensor }>} A Promise resolving to an object containing the extracted input features as a Tensor. + */ + async _call(audio) { + validate_audio_inputs(audio, 'WhisperFeatureExtractor'); + + let waveform; + if (audio.length > this.config.n_samples) { + console.warn( + "Attempting to extract features for audio longer than 30 seconds. " + + "If using a pipeline to extract transcript from a long audio clip, " + + "remember to specify `chunk_length_s` and/or `stride_length_s`." + ); + waveform = audio.slice(0, this.config.n_samples); + } else { + // pad with zeros + waveform = new Float32Array(this.config.n_samples); + waveform.set(audio); + } + + const { data, dims } = this._extract_fbank_features(waveform); + + return { + input_features: new Tensor('float32', + data, + [1, ...dims] + ) + }; + } +} + +export class Wav2Vec2FeatureExtractor extends FeatureExtractor { + + /** + * @param {Float32Array} input_values + * @returns {Float32Array} + */ + _zero_mean_unit_var_norm(input_values) { + // TODO support batch? + const sum = input_values.reduce((a, b) => a + b, 0); + const mean = sum / input_values.length; + const variance = input_values.reduce((a, b) => a + (b - mean) ** 2, 0) / input_values.length; + return input_values.map(x => (x - mean) / Math.sqrt(variance + 1e-7)); + } + + /** + * Asynchronously extracts features from a given audio using the provided configuration. + * @param {Float32Array|Float64Array} audio The audio data as a Float32Array/Float64Array. + * @returns {Promise<{ input_values: Tensor; attention_mask: Tensor }>} A Promise resolving to an object containing the extracted input features and attention mask as Tensors. + */ + async _call(audio) { + validate_audio_inputs(audio, 'Wav2Vec2FeatureExtractor'); + + if (audio instanceof Float64Array) { + audio = new Float32Array(audio); + } + + let input_values = audio; + + // zero-mean and unit-variance normalization + if (this.config.do_normalize) { + input_values = this._zero_mean_unit_var_norm(input_values); + } + + // TODO: allow user to pass in attention mask + const shape = [1, input_values.length]; + return { + input_values: new Tensor('float32', input_values, shape), + attention_mask: new Tensor('int64', new BigInt64Array(input_values.length).fill(1n), shape) + }; + } +} + +export class ASTFeatureExtractor extends FeatureExtractor { + + + constructor(config) { + super(config); + + const sampling_rate = this.config.sampling_rate; + const mel_filters = mel_filter_bank( + 256, // num_frequency_bins + this.config.num_mel_bins, // num_mel_filters + 20, // min_frequency + Math.floor(sampling_rate / 2), // max_frequency + sampling_rate, // sampling_rate + null, // norm + "kaldi", // mel_scale + true, // triangularize_in_mel_space + ); + + // Do padding: + for (let i = 0; i < mel_filters.length; ++i) { + mel_filters[i].push(0); + } + this.mel_filters = mel_filters; + + this.window = window_function(400, 'hann', { + periodic: false, + }) + + this.mean = this.config.mean; + this.std = this.config.std; + } + + /** + * Computes the log-Mel spectrogram of the provided audio waveform. + * @param {Float32Array|Float64Array} waveform The audio waveform to process. + * @param {number} max_length The maximum number of frames to return. + * @returns {{data: Float32Array, dims: number[]}} An object containing the log-Mel spectrogram data as a Float32Array and its dimensions as an array of numbers. + */ + _extract_fbank_features(waveform, max_length) { + // NOTE: We don't pad/truncate since that is passed in as `max_num_frames` + return spectrogram( + waveform, + this.window, // window + 400, // frame_length + 160, // hop_length + { + fft_length: 512, + power: 2.0, + center: false, + preemphasis: 0.97, + mel_filters: this.mel_filters, + log_mel: 'log', + mel_floor: 1.192092955078125e-07, + remove_dc_offset: true, + + // Custom + max_num_frames: max_length, + transpose: true, + } + ) + } + + + /** + * Asynchronously extracts features from a given audio using the provided configuration. + * @param {Float32Array|Float64Array} audio The audio data as a Float32Array/Float64Array. + * @returns {Promise<{ input_values: Tensor }>} A Promise resolving to an object containing the extracted input features as a Tensor. + */ + async _call(audio) { + validate_audio_inputs(audio, 'ASTFeatureExtractor'); + + const features = this._extract_fbank_features(audio, this.config.max_length); + if (this.config.do_normalize) { + // Normalize the input audio spectrogram to have mean=0, std=0.5 + const denom = this.std * 2; + for (let i = 0; i < features.data.length; ++i) { + features.data[i] = (features.data[i] - this.mean) / denom; + } + } + + return { + input_values: new Tensor('float32', + features.data, + [1, ...features.dims] + ) + }; + } +} + +export class ClapFeatureExtractor extends FeatureExtractor { + + constructor(config) { + super(config); + + this.mel_filters = mel_filter_bank( + this.config.nb_frequency_bins, // num_frequency_bins + this.config.feature_size, // num_mel_filters + this.config.frequency_min, // min_frequency + this.config.frequency_max, // max_frequency + this.config.sampling_rate, // sampling_rate + null, // norm + "htk", // mel_scale + ); + + this.mel_filters_slaney = mel_filter_bank( + this.config.nb_frequency_bins, // num_frequency_bins + this.config.feature_size, // num_mel_filters + this.config.frequency_min, // min_frequency + this.config.frequency_max, // max_frequency + this.config.sampling_rate, // sampling_rate + "slaney", // norm + "slaney", // mel_scale + ); + + this.window = window_function(this.config.fft_window_size, 'hann') + + } + + + /** + * Extracts the mel spectrogram and prepares it for the mode based on the `truncation` and `padding` arguments. + * + * Four different path are possible: + * - `truncation="fusion"` and the length of the waveform is greater than the max length: the mel spectrogram + * will be computed on the entire audio. 3 random crops and a dowsampled version of the full mel spectrogram + * are then stacked together. They will later be used for `feature_fusion`. + * - `truncation="rand_trunc"` and the length of the waveform is smaller than the max length: the audio is + * padded based on `padding`. + * - `truncation="fusion"` and the length of the waveform is smaller than the max length: the audio is padded + * based on `padding`, and is repeated `4` times. + * - `truncation="rand_trunc"` and the length of the waveform is greater than the max length: the mel + * spectrogram will be computed on a random crop of the waveform. + * + * @param {Float32Array|Float64Array} waveform The input waveform. + * @param {number} max_length The maximum length of the waveform. + * @param {string} truncation The truncation strategy to use. + * @param {string} padding The padding strategy to use. + * @returns {{ data: Float32Array; dims: number[]; longer: boolean; }} An object containing the mel spectrogram data as a Float32Array, its dimensions as an array of numbers, and a boolean indicating whether the waveform was longer than the max length. + */ + _get_input_mel(waveform, max_length, truncation, padding) { + + /** @type {{ data: Float32Array; dims: number[]}} */ + let input_mel; + let longer = false; + const diff = waveform.length - max_length; + if (diff > 0) { + if (truncation === 'rand_trunc') { + longer = true; + const idx = Math.floor(Math.random() * (diff + 1)); + waveform = waveform.subarray(idx, idx + max_length); + + input_mel = this._extract_fbank_features(waveform, this.mel_filters_slaney, this.config.nb_max_samples); + input_mel.dims = [1, ...input_mel.dims]; // "unsqueeze" + } else { + // TODO implement fusion strategy + throw new Error(`Truncation strategy "${truncation}" not implemented`) + } + } else { + if (diff < 0) { + let padded = new Float64Array(max_length); // already padded with zeros + padded.set(waveform); + + if (padding === 'repeat') { + for (let i = waveform.length; i < max_length; i += waveform.length) { + padded.set(waveform.subarray(0, Math.min(waveform.length, max_length - i)), i); + } + } else if (padding === 'repeatpad') { + for (let i = waveform.length; i < -diff; i += waveform.length) { + padded.set(waveform, i); + } + } + waveform = padded; + } + + if (truncation === 'fusion') { + throw new Error(`Truncation strategy "${truncation}" not implemented`) + } + + input_mel = this._extract_fbank_features(waveform, this.mel_filters_slaney, this.config.nb_max_samples); + input_mel.dims = [1, ...input_mel.dims]; // "unsqueeze" + } + + return { + ...input_mel, + longer, + } + } + + /** + * Compute the log-mel spectrogram of the provided `waveform` using the Hann window. + * In CLAP, two different filter banks are used depending on the truncation pattern: + * - `self.mel_filters`: they correspond to the default parameters of `torchaudio` which can be obtained from + * calling `torchaudio.transforms.MelSpectrogram().mel_scale.fb`. These filters are used when `truncation` + * is set to `"fusion"`. + * - `self.mel_filteres_slaney` : they correspond to the default parameters of `librosa` which used + * `librosa.filters.mel` when computing the mel spectrogram. These filters were only used in the original + * implementation when the truncation mode is not `"fusion"`. + * + * @param {Float32Array|Float64Array} waveform The audio waveform to process. + * @param {number[][]} mel_filters The mel filters to use. + * @param {number} [max_length=null] The maximum number of frames to return. + * @returns {{data: Float32Array, dims: number[]}} An object containing the log-Mel spectrogram data as a Float32Array and its dimensions as an array of numbers. + */ + _extract_fbank_features(waveform, mel_filters, max_length = null) { + // NOTE: We don't pad/truncate since that is passed in as `max_num_frames` + return spectrogram( + waveform, + this.window, // window + this.config.fft_window_size, // frame_length + this.config.hop_length, // hop_length + { + power: 2.0, + mel_filters, + log_mel: 'dB', + + // Custom + max_num_frames: max_length, + do_pad: false, + transpose: true, + } + ) + } + + + /** + * Asynchronously extracts features from a given audio using the provided configuration. + * @param {Float32Array|Float64Array} audio The audio data as a Float32Array/Float64Array. + * @returns {Promise<{ input_features: Tensor }>} A Promise resolving to an object containing the extracted input features as a Tensor. + */ + async _call(audio, { + max_length = null, + } = {}) { + validate_audio_inputs(audio, 'ClapFeatureExtractor'); + + // convert to mel spectrogram, truncate and pad if needed. + const padded_inputs = this._get_input_mel( + audio, + max_length ?? this.config.nb_max_samples, + this.config.truncation, + this.config.padding, + ); + + + return { + input_features: new Tensor('float32', + padded_inputs.data, + [1, ...padded_inputs.dims] + ) + }; + } +} + + + +export class SpeechT5FeatureExtractor extends FeatureExtractor { } + +/** + * Represents a Processor that extracts features from an input. + * @extends Callable + */ +export class Processor extends Callable { + /** + * Creates a new Processor with the given feature extractor. + * @param {FeatureExtractor} feature_extractor The function used to extract features from the input. + */ + constructor(feature_extractor) { + super(); + this.feature_extractor = feature_extractor; + // TODO use tokenizer here? + } + + /** + * Calls the feature_extractor function with the given input. + * @param {any} input The input to extract features from. + * @param {...any} args Additional arguments. + * @returns {Promise} A Promise that resolves with the extracted features. + */ + async _call(input, ...args) { + return await this.feature_extractor(input, ...args); + } +} + +export class SamProcessor extends Processor { + /** + * @borrows SamImageProcessor#_call as _call + */ + async _call(...args) { + return await this.feature_extractor(...args); + } + + /** + * @borrows SamImageProcessor#post_process_masks as post_process_masks + */ + post_process_masks(...args) { + // @ts-ignore + return this.feature_extractor.post_process_masks(...args); + } + /** + * @borrows SamImageProcessor#reshape_input_points as reshape_input_points + */ + reshape_input_points(...args) { + // @ts-ignore + return this.feature_extractor.reshape_input_points(...args); + } +} + +/** + * Represents a WhisperProcessor that extracts features from an audio input. + * @extends Processor + */ +export class WhisperProcessor extends Processor { + /** + * Calls the feature_extractor function with the given audio input. + * @param {any} audio The audio input to extract features from. + * @returns {Promise} A Promise that resolves with the extracted features. + */ + async _call(audio) { + return await this.feature_extractor(audio) + } +} + + +export class Wav2Vec2ProcessorWithLM extends Processor { + /** + * Calls the feature_extractor function with the given audio input. + * @param {any} audio The audio input to extract features from. + * @returns {Promise} A Promise that resolves with the extracted features. + */ + async _call(audio) { + return await this.feature_extractor(audio) + } +} + +export class SpeechT5Processor extends Processor { + /** + * Calls the feature_extractor function with the given input. + * @param {any} input The input to extract features from. + * @returns {Promise} A Promise that resolves with the extracted features. + */ + async _call(input) { + return await this.feature_extractor(input) + } +} + +export class OwlViTProcessor extends Processor { } + + +////////////////////////////////////////////////// +/** + * Helper class which is used to instantiate pretrained processors with the `from_pretrained` function. + * The chosen processor class is determined by the type specified in the processor config. + * + * **Example:** Load a processor using `from_pretrained`. + * ```javascript + * let processor = await AutoProcessor.from_pretrained('openai/whisper-tiny.en'); + * ``` + * + * **Example:** Run an image through a processor. + * ```javascript + * let processor = await AutoProcessor.from_pretrained('Xenova/clip-vit-base-patch16'); + * let image = await RawImage.read('https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main/football-match.jpg'); + * let image_inputs = await processor(image); + * // { + * // "pixel_values": { + * // "dims": [ 1, 3, 224, 224 ], + * // "type": "float32", + * // "data": Float32Array [ -1.558687686920166, -1.558687686920166, -1.5440893173217773, ... ], + * // "size": 150528 + * // }, + * // "original_sizes": [ + * // [ 533, 800 ] + * // ], + * // "reshaped_input_sizes": [ + * // [ 224, 224 ] + * // ] + * // } + * ``` + */ +export class AutoProcessor { + static FEATURE_EXTRACTOR_CLASS_MAPPING = { + WhisperFeatureExtractor, + ViTFeatureExtractor, + MobileViTFeatureExtractor, + OwlViTFeatureExtractor, + CLIPFeatureExtractor, + ChineseCLIPFeatureExtractor, + SiglipImageProcessor, + ConvNextFeatureExtractor, + ConvNextImageProcessor, + SegformerFeatureExtractor, + BitImageProcessor, + DPTFeatureExtractor, + GLPNFeatureExtractor, + BeitFeatureExtractor, + DeiTFeatureExtractor, + DetrFeatureExtractor, + YolosFeatureExtractor, + DonutFeatureExtractor, + NougatImageProcessor, + + ViTImageProcessor, + VitMatteImageProcessor, + SamImageProcessor, + Swin2SRImageProcessor, + Wav2Vec2FeatureExtractor, + SpeechT5FeatureExtractor, + ASTFeatureExtractor, + ClapFeatureExtractor, + } + + static PROCESSOR_CLASS_MAPPING = { + WhisperProcessor, + Wav2Vec2ProcessorWithLM, + SamProcessor, + SpeechT5Processor, + OwlViTProcessor, + } + + /** + * Instantiate one of the processor classes of the library from a pretrained model. + * + * The processor class to instantiate is selected based on the `feature_extractor_type` property of the config object + * (either passed as an argument or loaded from `pretrained_model_name_or_path` if possible) + * + * @param {string} pretrained_model_name_or_path The name or path of the pretrained model. Can be either: + * - A string, the *model id* of a pretrained processor hosted inside a model repo on huggingface.co. + * Valid model ids can be located at the root-level, like `bert-base-uncased`, or namespaced under a + * user or organization name, like `dbmdz/bert-base-german-cased`. + * - A path to a *directory* containing processor files, e.g., `./my_model_directory/`. + * @param {import('./utils/hub.js').PretrainedOptions} options Additional options for loading the processor. + * + * @returns {Promise} A new instance of the Processor class. + */ + static async from_pretrained(pretrained_model_name_or_path, { + progress_callback = null, + config = null, + cache_dir = null, + local_files_only = false, + revision = 'main', + } = {}) { + + let preprocessorConfig = config ?? await getModelJSON(pretrained_model_name_or_path, 'preprocessor_config.json', true, { + progress_callback, + config, + cache_dir, + local_files_only, + revision, + }) + + // Determine feature extractor class + // TODO: Ensure backwards compatibility with old configs + let key = preprocessorConfig.feature_extractor_type ?? preprocessorConfig.image_processor_type; + let feature_extractor_class = this.FEATURE_EXTRACTOR_CLASS_MAPPING[key]; + + if (!feature_extractor_class) { + if (preprocessorConfig.size !== undefined) { + // Assume ImageFeatureExtractor + console.warn(`Feature extractor type "${key}" not found, assuming ImageFeatureExtractor due to size parameter in config.`); + feature_extractor_class = ImageFeatureExtractor; + } else { + throw new Error(`Unknown Feature Extractor type: ${key}`); + } + } + + // If no associated processor class, use default + let processor_class = this.PROCESSOR_CLASS_MAPPING[preprocessorConfig.processor_class] ?? Processor; + + // Instantiate processor and feature extractor + let feature_extractor = new feature_extractor_class(preprocessorConfig); + return new processor_class(feature_extractor); + } +} +////////////////////////////////////////////////// + diff --git a/core/vendor/modules/@xenova/transformers/src/tokenizers.js b/core/vendor/modules/@xenova/transformers/src/tokenizers.js new file mode 100644 index 000000000..a786cd1ed --- /dev/null +++ b/core/vendor/modules/@xenova/transformers/src/tokenizers.js @@ -0,0 +1,4316 @@ + +/** + * @file Tokenizers are used to prepare textual inputs for a model. + * + * **Example:** Create an `AutoTokenizer` and use it to tokenize a sentence. + * This will automatically detect the tokenizer type based on the tokenizer class defined in `tokenizer.json`. + * ```javascript + * import { AutoTokenizer } from '@xenova/transformers'; + * + * const tokenizer = await AutoTokenizer.from_pretrained('Xenova/bert-base-uncased'); + * const { input_ids } = await tokenizer('I love transformers!'); + * // Tensor { + * // data: BigInt64Array(6) [101n, 1045n, 2293n, 19081n, 999n, 102n], + * // dims: [1, 6], + * // type: 'int64', + * // size: 6, + * // } + * ``` + * + * @module tokenizers + */ + +import { + Callable, + reverseDictionary, + escapeRegExp, + isIntegralNumber, + mergeArrays, +} from './utils/core.js'; + +import { + getModelJSON, +} from './utils/hub.js'; + +import { max, min, round } from './utils/maths.js'; +import { Tensor } from './utils/tensor.js'; + +import { + PriorityQueue, + TokenLattice, + CharTrie, +} from './utils/data-structures.js'; + +import { Template } from '@huggingface/jinja'; + + +/** + * @typedef {Object} TokenizerProperties Additional tokenizer-specific properties. + * @property {boolean} [legacy=false] Whether or not the `legacy` behavior of the tokenizer should be used. + * @typedef {import('./utils/hub.js').PretrainedOptions & TokenizerProperties} PretrainedTokenizerOptions + */ + +/** + * Loads a tokenizer from the specified path. + * @param {string} pretrained_model_name_or_path The path to the tokenizer directory. + * @param {PretrainedTokenizerOptions} options Additional options for loading the tokenizer. + * @returns {Promise} A promise that resolves with information about the loaded tokenizer. + */ +async function loadTokenizer(pretrained_model_name_or_path, options) { + + const info = await Promise.all([ + getModelJSON(pretrained_model_name_or_path, 'tokenizer.json', true, options), + getModelJSON(pretrained_model_name_or_path, 'tokenizer_config.json', true, options), + ]) + + // Override legacy option if `options.legacy` is not null + if (options.legacy !== null) { + info[1].legacy = options.legacy; + } + return info; +} + + +/** + * Helper function to split a string on a regex, but keep the delimiters. + * This is required, because the JavaScript `.split()` method does not keep the delimiters, + * and wrapping in a capturing group causes issues with existing capturing groups (due to nesting). + * @param {string} text The text to split. + * @param {RegExp} regex The regex to split on. + * @returns {string[]} The split string. + */ +function regexSplit(text, regex) { + const result = []; + let prev = 0; + for (const match of text.matchAll(regex)) { + const fullMatch = match[0]; + if (prev < match.index) { + result.push(text.slice(prev, match.index)); + } + if (fullMatch.length > 0) { + result.push(fullMatch); + } + prev = match.index + fullMatch.length; + } + if (prev < text.length) { + result.push(text.slice(prev)); + } + return result; +} + + +/** + * Helper method to construct a pattern from a config object. + * @param {Object} pattern The pattern object. + * @param {boolean} invert Whether to invert the pattern. + * @returns {RegExp|null} The compiled pattern. + */ +function createPattern(pattern, invert = true) { + + if (pattern.Regex !== undefined) { + // In certain cases, the pattern may contain unnecessary escape sequences (e.g., \# or \& or \~). + // i.e., valid in Python (where the patterns are exported from) but invalid in JavaScript (where the patterns are parsed). + // This isn't an issue when creating the regex w/o the 'u' flag, but it is when the 'u' flag is used. + // For this reason, it is necessary to remove these backslashes before creating the regex. + // See https://stackoverflow.com/a/63007777/13989043 for more information + const regex = pattern.Regex.replace(/\\([#&~])/g, '$1'); // TODO: add more characters to this list if necessary + return new RegExp(regex, 'gu'); + + } else if (pattern.String !== undefined) { + const escaped = escapeRegExp(pattern.String); + // NOTE: if invert is true, we wrap the pattern in a group so that it is kept when performing .split() + return new RegExp(invert ? escaped : `(${escaped})`, 'gu'); + + } else { + console.warn('Unknown pattern type:', pattern) + return null; + } +} + +/** + * Helper function to convert an Object to a Map + * @param {Object} obj The object to convert. + * @returns {Map} The map. + */ +function objectToMap(obj) { + return new Map(Object.entries(obj)); +} + +/** + * Helper function to convert a tensor to a list before decoding. + * @param {Tensor} tensor The tensor to convert. + * @returns {number[]} The tensor as a list. + */ +function prepareTensorForDecode(tensor) { + const dims = tensor.dims; + switch (dims.length) { + case 1: + return tensor.tolist(); + case 2: + if (dims[0] !== 1) { + throw new Error('Unable to decode tensor with `batch size !== 1`. Use `tokenizer.batch_decode(...)` for batched inputs.'); + } + return tensor.tolist()[0]; + default: + throw new Error(`Expected tensor to have 1-2 dimensions, got ${dims.length}.`) + } +} + +/** + * Clean up a list of simple English tokenization artifacts like spaces before punctuations and abbreviated forms + * @param {string} text The text to clean up. + * @returns {string} The cleaned up text. + */ +function clean_up_tokenization(text) { + // Clean up a list of simple English tokenization artifacts + // like spaces before punctuations and abbreviated forms + return text.replace(/ \./g, '.') + .replace(/ \?/g, '?') + .replace(/ \!/g, '!') + .replace(/ ,/g, ',') + .replace(/ \' /g, "'") + .replace(/ n\'t/g, "n't") + .replace(/ \'m/g, "'m") + .replace(/ \'s/g, "'s") + .replace(/ \'ve/g, "'ve") + .replace(/ \'re/g, "'re"); +} + +/** + * Helper function to remove accents from a string. + * @param {string} text The text to remove accents from. + * @returns {string} The text with accents removed. + */ +function remove_accents(text) { + return text.replace(/[\u0300-\u036f]/g, ''); +} + +/** + * Helper function to lowercase a string and remove accents. + * @param {string} text The text to lowercase and remove accents from. + * @returns {string} The lowercased text with accents removed. + */ +function lowercase_and_remove_accent(text) { + return remove_accents(text.toLowerCase()); +} + +/** + * Helper function to fuse consecutive values in an array equal to the specified value. + * @param {string[]} arr The input array + * @param {any} value The value to fuse on. + * @param {Map} mapping The mapping from input domain to value. + */ +function fuse(arr, value, mapping) { + const fused = []; + let i = 0; + while (i < arr.length) { + fused.push(arr[i]) + if ((mapping.get(arr[i]) ?? value) !== value) { + ++i; + continue; + } + + while (i < arr.length && (mapping.get(arr[i]) ?? value) === value) { + ++i; + } + } + + return fused; +} + +/** + * Split a string on whitespace. + * @param {string} text The text to split. + * @returns {string[]} The split string. + */ +function whitespace_split(text) { + return text.match(/\S+/g) || []; +} + +const PUNCTUATION_REGEX = '\\p{P}\\u0021-\\u002F\\u003A-\\u0040\\u005B-\\u0060\\u007B-\\u007E'; + +/** + * Represent a token added by the user on top of the existing Model vocabulary. + * AddedToken can be configured to specify the behavior they should have in various situations like: + * - Whether they should only match single words + * - Whether to include any whitespace on its left or right + */ +class AddedToken { + /** + * Creates a new instance of AddedToken. + * @param {Object} config Added token configuration object. + * @param {string} config.content The content of the added token. + * @param {number} config.id The id of the added token. + * @param {boolean} [config.single_word=false] Whether this token must be a single word or can break words. + * @param {boolean} [config.lstrip=false] Whether this token should strip whitespaces on its left. + * @param {boolean} [config.rstrip=false] Whether this token should strip whitespaces on its right. + * @param {boolean} [config.normalized=false] Whether this token should be normalized. + * @param {boolean} [config.special=false] Whether this token is special. + */ + constructor(config) { + this.content = config.content; + this.id = config.id; + this.single_word = config.single_word ?? false; + this.lstrip = config.lstrip ?? false; + this.rstrip = config.rstrip ?? false; + this.special = config.special ?? false; + this.normalized = config.normalized ?? null; + } +} + +/** + * Abstract base class for tokenizer models. + * + * @extends Callable + */ +export class TokenizerModel extends Callable { + /** + * Creates a new instance of TokenizerModel. + * @param {Object} config The configuration object for the TokenizerModel. + */ + constructor(config) { + super(); + this.config = config; + + /** @type {string[]} */ + this.vocab = []; + + /** + * A mapping of tokens to ids. + * @type {Map} + */ + this.tokens_to_ids = new Map(); + + this.unk_token_id = undefined; + this.unk_token = undefined; + this.end_of_word_suffix = undefined; + + /** @type {boolean} Whether to fuse unknown tokens when encoding. Defaults to false. */ + this.fuse_unk = this.config.fuse_unk ?? false; + } + + /** + * Instantiates a new TokenizerModel instance based on the configuration object provided. + * @param {Object} config The configuration object for the TokenizerModel. + * @param {...*} args Optional arguments to pass to the specific TokenizerModel constructor. + * @returns {TokenizerModel} A new instance of a TokenizerModel. + * @throws Will throw an error if the TokenizerModel type in the config is not recognized. + */ + static fromConfig(config, ...args) { + switch (config.type) { + case 'WordPiece': + return new WordPieceTokenizer(config); + case 'Unigram': + // @ts-ignore + return new Unigram(config, ...args); + + case 'BPE': + return new BPE(config); + + default: + if (config.vocab) { + // @ts-ignore + return new LegacyTokenizerModel(config, ...args); + } + throw new Error(`Unknown TokenizerModel type: ${config.type}`); + } + } + + /** + * Internal function to call the TokenizerModel instance. + * @param {string[]} tokens The tokens to encode. + * @returns {string[]} The encoded token IDs. + */ + _call(tokens) { + let ids = this.encode(tokens); + if (this.fuse_unk) { + // Fuse unknown tokens + ids = fuse(ids, this.unk_token_id, this.tokens_to_ids); + } + return ids; + } + + /** + * Encodes a list of tokens into a list of token IDs. + * @param {string[]} tokens The tokens to encode. + * @returns {string[]} The encoded tokens. + * @throws Will throw an error if not implemented in a subclass. + */ + encode(tokens) { + throw Error("encode should be implemented in subclass.") + } + + /** + * Converts a list of tokens into a list of token IDs. + * @param {string[]} tokens The tokens to convert. + * @returns {number[]} The converted token IDs. + */ + convert_tokens_to_ids(tokens) { + return tokens.map(t => this.tokens_to_ids.get(t) ?? this.unk_token_id); + } + + /** + * Converts a list of token IDs into a list of tokens. + * @param {number[]} ids The token IDs to convert. + * @returns {string[]} The converted tokens. + */ + convert_ids_to_tokens(ids) { + return ids.map(i => this.vocab[i] ?? this.unk_token); + } +} + +/** + * A subclass of TokenizerModel that uses WordPiece encoding to encode tokens. + * @extends TokenizerModel + */ +class WordPieceTokenizer extends TokenizerModel { + /** + * @param {Object} config The configuration object. + * @param {Object} config.vocab A mapping of tokens to ids. + * @param {string} config.unk_token The unknown token string. + * @param {string} config.continuing_subword_prefix The prefix to use for continuing subwords. + * @param {number} [config.max_input_chars_per_word=100] The maximum number of characters per word. + */ + constructor(config) { + super(config); + /** + * A mapping of tokens to ids. + * @type {Map} + */ + this.tokens_to_ids = objectToMap(config.vocab); + + /** + * The id of the unknown token. + * @type {number} + */ + this.unk_token_id = this.tokens_to_ids.get(config.unk_token); + + /** + * The unknown token string. + * @type {string} + */ + this.unk_token = config.unk_token; + + /** + * The maximum number of characters allowed per word. + * @type {number} + */ + this.max_input_chars_per_word = config.max_input_chars_per_word ?? 100; + + /** + * An array of tokens. + * @type {string[]} + */ + this.vocab = new Array(this.tokens_to_ids.size); + for (const [key, value] of this.tokens_to_ids) { + this.vocab[value] = key; + } + } + + /** + * Encodes an array of tokens using WordPiece encoding. + * @param {string[]} tokens The tokens to encode. + * @returns {string[]} An array of encoded tokens. + */ + encode(tokens) { + const outputTokens = []; + for (const token of tokens) { + const chars = [...token]; + if (chars.length > this.max_input_chars_per_word) { + outputTokens.push(this.unk_token); + continue; + } + + let isUnknown = false; + let start = 0; + const subTokens = []; + + while (start < chars.length) { + let end = chars.length; + let currentSubstring = null; + while (start < end) { + let substr = chars.slice(start, end).join(''); + + if (start > 0) { + substr = this.config.continuing_subword_prefix + substr; + } + if (this.tokens_to_ids.has(substr)) { + currentSubstring = substr; + break; + } + + --end; + } + if (currentSubstring === null) { + isUnknown = true; + break; + } + subTokens.push(currentSubstring); + start = end; + } + if (isUnknown) { + outputTokens.push(this.unk_token); + } else { + outputTokens.push(...subTokens); + } + } + + return outputTokens; + } + +} + +/** + * Class representing a Unigram tokenizer model. + * @extends TokenizerModel + */ +class Unigram extends TokenizerModel { + /** + * Create a new Unigram tokenizer model. + * @param {Object} config The configuration object for the Unigram model. + * @param {number} config.unk_id The ID of the unknown token + * @param {any[][]} config.vocab A 2D array representing a mapping of tokens to scores. + * @param {Object} moreConfig Additional configuration object for the Unigram model. + */ + constructor(config, moreConfig) { + super(config); + + const vocabSize = config.vocab.length; + this.vocab = new Array(vocabSize); + this.scores = new Array(vocabSize); + for (let i = 0; i < vocabSize; ++i) { + const piece = config.vocab[i]; + this.vocab[i] = piece[0]; + this.scores[i] = piece[1]; + } + + this.unk_token_id = config.unk_id; + this.unk_token = this.vocab[config.unk_id]; + + this.tokens_to_ids = new Map(this.vocab.map((x, i) => [x, i])); + this.bosToken = ' '; // beginning of a sentence token + + this.bosTokenId = this.tokens_to_ids.get(this.bosToken); // NOTE: may be undefined + this.eosToken = moreConfig.eos_token; + + this.eosTokenId = this.tokens_to_ids.get(this.eosToken); + this.unkToken = this.vocab[this.unk_token_id]; + + this.minScore = min(this.scores)[0]; + + this.unkScore = this.minScore - 10.0; + this.scores[this.unk_token_id] = this.unkScore; + + this.trie = new CharTrie(); + this.trie.extend(this.vocab); + + // NOTE: `fuse_unk` is hardcoded to true for Unigram models + // See: https://github.com/huggingface/tokenizers/blob/b58227c7f1ccf8b73ee2268354336da56d91e492/tokenizers/src/models/unigram/model.rs#L119 + this.fuse_unk = true; + } + + /** + * Populates lattice nodes. + * @param {TokenLattice} lattice The token lattice to populate with nodes. + */ + populateNodes(lattice) { + const sentence = lattice.sentence; + const len = sentence.length; + let beginPos = 0; + while (beginPos < len) { + const mblen = 1; + let hasSingleNode = false; + const tokens = []; + + for (let token of this.trie.commonPrefixSearch(sentence.slice(beginPos))) { + tokens.push(token); + const tokenId = this.tokens_to_ids.get(token); + const tokenScore = this.scores[tokenId]; + const n = token.length; + lattice.insert(beginPos, n, tokenScore, tokenId); + if (!hasSingleNode && n === mblen) { + hasSingleNode = true; + } + } + if (!hasSingleNode) { + lattice.insert(beginPos, mblen, this.unkScore, this.unk_token_id); + } + beginPos += mblen; + } + } + + /** + * Encodes an array of tokens into an array of subtokens using the unigram model. + * + * @param {string} normalized The normalized string. + * @returns {string[]} An array of subtokens obtained by encoding the input tokens using the unigram model. + */ + tokenize(normalized) { + const lattice = new TokenLattice(normalized, this.bosTokenId, this.eosTokenId); + this.populateNodes(lattice); + return lattice.tokens(); + } + + /** + * Encodes an array of tokens using Unigram encoding. + * @param {string[]} tokens The tokens to encode. + * @returns {string[]} An array of encoded tokens. + */ + encode(tokens) { + const toReturn = []; + for (const token of tokens) { + const tokenized = this.tokenize(token); + toReturn.push(...tokenized); + } + return toReturn; + } + +} + +/** + * Returns list of utf-8 byte and a mapping to unicode strings. + * Specifically avoids mapping to whitespace/control characters the BPE code barfs on. + * @returns {Object} Object with utf-8 byte keys and unicode string values. + */ +const BYTES_TO_UNICODE = (() => { + // Returns list of utf-8 byte and a mapping to unicode strings. + // We specifically avoids mapping to whitespace/control characters + // the bpe code barfs on. + + const bs = [ + ...Array.from({ length: "~".charCodeAt(0) - "!".charCodeAt(0) + 1 }, (_, i) => i + "!".charCodeAt(0)), + ...Array.from({ length: "¬".charCodeAt(0) - "¡".charCodeAt(0) + 1 }, (_, i) => i + "¡".charCodeAt(0)), + ...Array.from({ length: "ÿ".charCodeAt(0) - "®".charCodeAt(0) + 1 }, (_, i) => i + "®".charCodeAt(0)), + ]; + const cs = bs.slice(); + let n = 0; + for (let b = 0; b < 256; ++b) { + if (!bs.includes(b)) { + bs.push(b); + cs.push(256 + n); + n += 1; + } + } + const ccs = cs.map(n => String.fromCharCode(n)); + return Object.fromEntries(bs.map((b, i) => [b, ccs[i]])); +})(); + +const UNICODE_TO_BYTES = reverseDictionary(BYTES_TO_UNICODE); + + +/** + * @typedef {Object} BPENode + * @property {string} token The token associated with the node + * @property {number} bias A positional bias for the node. + * @property {number} [score] The score of the node. + * @property {BPENode} [prev] The previous node in the linked list. + * @property {BPENode} [next] The next node in the linked list. + */ + +/** + * BPE class for encoding text into Byte-Pair-Encoding (BPE) tokens. + * @extends TokenizerModel + */ +class BPE extends TokenizerModel { + /** + * Create a BPE instance. + * @param {Object} config The configuration object for BPE. + * @param {Object} config.vocab A mapping of tokens to ids. + * @param {string} config.unk_token The unknown token used for out of vocabulary words. + * @param {string} config.end_of_word_suffix The suffix to place at the end of each word. + * @param {string} [config.continuing_subword_suffix] The suffix to insert between words. + * @param {Array} config.merges An array of BPE merges as strings. + */ + constructor(config) { + super(config); + + this.BPE_SPLIT_TOKEN = ' '; + + /** @type {Map} */ + this.tokens_to_ids = objectToMap(config.vocab); + + this.unk_token_id = this.tokens_to_ids.get(config.unk_token); + this.unk_token = config.unk_token; + + this.vocab = new Array(this.tokens_to_ids.size); + for (const [key, value] of this.tokens_to_ids) { + this.vocab[value] = key; + } + + this.bpe_ranks = new Map(config.merges.map((x, i) => [x, i])); + this.merges = config.merges.map(x => x.split(this.BPE_SPLIT_TOKEN)); + + this.end_of_word_suffix = config.end_of_word_suffix; + + // NOTE: `continuing_subword_suffix` is custom (to support `BlenderbotSmallTokenizer`) + this.continuing_subword_suffix = config.continuing_subword_suffix ?? null; + + this.byte_fallback = this.config.byte_fallback ?? false; + + if (this.byte_fallback) { + this.text_encoder = new TextEncoder(); + } + + /** @type {Map} */ + this.cache = new Map(); + } + + /** + * Apply Byte-Pair-Encoding (BPE) to a given token. Efficient heap-based priority + * queue implementation adapted from https://github.com/belladoreai/llama-tokenizer-js. + * @param {string} token The token to encode. + * @returns {string[]} The BPE encoded tokens. + */ + bpe(token) { + if (token.length === 0) { + return []; + } + + const cached = this.cache.get(token); + if (cached !== undefined) { + return cached; + } + + const word = Array.from(token); + if (this.end_of_word_suffix) { + word[word.length - 1] += this.end_of_word_suffix; + } + + let result = []; + if (word.length > 1) { + // Create a priority queue to store the nodes that will be merged. + // The comparator function compares the scores of the nodes. + const queue = new PriorityQueue((a, b) => a.score < b.score); + + // Construct a doubly-linked list of nodes that will be inserted into the priority queue, + // starting with the individual characters. We also populate each node with a positional + // bias to break ties in the priority queue. + let startingNode = { + token: word[0], + bias: 0, + prev: null, + next: null, + } + + let previousNode = startingNode + for (let i = 1; i < word.length; ++i) { + const currentNode = { + bias: i / word.length, // Add fractional component to break ties + token: word[i], + prev: previousNode, + next: null, + } + previousNode.next = currentNode + this._add_node(queue, previousNode) + previousNode = currentNode + } + + while (!queue.isEmpty()) { + // Get the next node with the highest priority + const node = queue.pop(); + + // Check that this merge is still possible + if (node.deleted || !node.next || node.next.deleted) continue; + + // Here, we mark the current node (left side of the merge) and the next node (right side of the merge) as deleted. + // This is because they will both be replaced by a new node representing the merge result. + node.deleted = true; + node.next.deleted = true; + + // Next, we fix the node that comes before the current node (i.e., left side of the merge). + if (node.prev) { + + // Make a shallow copy of the previous node + const newPreviousNode = { ...node.prev }; + + // Mark the old previous node as deleted. This avoids erroneous merges later, + // because there may still be references to this node in the priority queue. + node.prev.deleted = true; + node.prev = newPreviousNode; + + // Update the reference of the previous node, by pointing its previous node to this new previous node. + if (newPreviousNode.prev) { + newPreviousNode.prev.next = newPreviousNode; + } else { + // If the previous of the previous node does not exist, it means that + // `newPreviousNode` must be the new `startingNode`. + startingNode = newPreviousNode; + } + } + + // Create a new node which represents the result of the merge. + const merged = { + token: node.token + node.next.token, + bias: node.bias, + prev: node.prev, + next: node.next.next, + } + + // We now consider where we can add the new merged node to the priority queue: + // 1. prev <-> merged + if (merged.prev) { + merged.prev.next = merged; + this._add_node(queue, merged.prev); + } else { + // If `merged.prev` does not exist, then `merged` must be the new `startingNode`. + startingNode = merged; + } + + // 2. merged <-> next + if (merged.next) { + merged.next.prev = merged; + this._add_node(queue, merged); + } + } + + // Traverse the linked list, starting from the `startingNode`, and collect the tokens. + for (let currentNode = startingNode; currentNode !== null; currentNode = currentNode.next) { + result.push(currentNode.token); + } + } else { + result = word; + } + + // Possibly append suffix + if (this.continuing_subword_suffix) { + // Do not append suffix to the last token + for (let i = 0; i < result.length - 1; ++i) { + result[i] += this.continuing_subword_suffix; + } + } + + // Save the result to the cache + this.cache.set(token, result); + + return result; + } + + + /** + * Helper function to add a node to the priority queue. + * @param {PriorityQueue} queue + * @param {BPENode} node + * @private + */ + _add_node(queue, node) { + // `score` is a measure of the merge priority: lower means higher priority + // We use the BPE rank as a measure of priority (i.e., the local of the merge in the merges list) + // We also add a fractional component to the score to break ties (with the earlier character having higher priority) + const rank = this.bpe_ranks.get(node.token + this.BPE_SPLIT_TOKEN + node.next.token); + if (rank !== undefined) { + node.score = rank + node.bias; + queue.push(node); + } + } + + /** + * Encodes the input sequence of tokens using the BPE algorithm and returns the resulting subword tokens. + * @param {string[]} tokens The input sequence of tokens to encode. + * @returns {string[]} The resulting subword tokens after applying the BPE algorithm to the input sequence of tokens. + */ + encode(tokens) { + const outputTokens = []; + + for (const token of tokens) { + const bpe_token_list = this.bpe(token); + + for (const t of bpe_token_list) { + if (this.tokens_to_ids.has(t)) { + outputTokens.push(t); + } else { + if (this.byte_fallback) { + outputTokens.push( + ...Array.from(this.text_encoder.encode(t)) + .map(x => `<0x${x.toString(16).toUpperCase().padStart(2, '0')}>`) + ); + } else { + outputTokens.push(this.unk_token); + } + } + } + } + + return outputTokens; + } + +} + +/** + * Legacy tokenizer class for tokenizers with only a vocabulary. + */ +class LegacyTokenizerModel extends TokenizerModel { + /** + * Create a LegacyTokenizerModel instance. + * @param {Object} config The configuration object for LegacyTokenizerModel. + * @param {Object} config.vocab A (possibly nested) mapping of tokens to ids. + * @param {Object} moreConfig Additional configuration object for the LegacyTokenizerModel model. + */ + constructor(config, moreConfig) { + super(config); + + /**@type {Map} */ + this.tokens_to_ids = objectToMap( + moreConfig.target_lang + ? config.vocab[moreConfig.target_lang] + : config.vocab + ); + + this.bos_token = moreConfig.bos_token; + this.bos_token_id = this.tokens_to_ids.get(this.bos_token); + + this.eos_token = moreConfig.eos_token; + this.eos_token_id = this.tokens_to_ids.get(this.eos_token); + + this.pad_token = moreConfig.pad_token; + this.pad_token_id = this.tokens_to_ids.get(this.pad_token); + + this.unk_token = moreConfig.unk_token; + this.unk_token_id = this.tokens_to_ids.get(this.unk_token); + + this.vocab = new Array(this.tokens_to_ids.size); + for (const [key, value] of this.tokens_to_ids) { + this.vocab[value] = key; + } + } + + encode(tokens) { + return tokens; + } +} + + +/** + * A base class for text normalization. + * @abstract + */ +class Normalizer extends Callable { + /** + * @param {Object} config The configuration object for the normalizer. + */ + constructor(config) { + super(); + this.config = config; + } + + /** + * Factory method for creating normalizers from config objects. + * @static + * @param {Object} config The configuration object for the normalizer. + * @returns {Normalizer} A Normalizer object. + * @throws {Error} If an unknown Normalizer type is specified in the config. + */ + static fromConfig(config) { + if (config === null) return null; + switch (config.type) { + case 'BertNormalizer': + return new BertNormalizer(config); + case 'Precompiled': + return new Precompiled(config); + case 'Sequence': + return new NormalizerSequence(config); + case 'Replace': + return new Replace(config); + case 'NFC': + return new NFC(config); + case 'NFKC': + return new NFKC(config); + case 'NFKD': + return new NFKD(config); + case 'Strip': + return new StripNormalizer(config); + case 'StripAccents': + return new StripAccents(config); + case 'Lowercase': + return new Lowercase(config); + case 'Prepend': + return new Prepend(config); + default: + throw new Error(`Unknown Normalizer type: ${config.type}`); + } + } + + /** + * Normalize the input text. + * @abstract + * @param {string} text The text to normalize. + * @returns {string} The normalized text. + * @throws {Error} If this method is not implemented in a subclass. + */ + normalize(text) { + throw Error("normalize should be implemented in subclass.") + } + + /** + * Alias for {@link Normalizer#normalize}. + * @param {string} text The text to normalize. + * @returns {string} The normalized text. + */ + _call(text) { + return this.normalize(text); + } + +} + +/** + * Replace normalizer that replaces occurrences of a pattern with a given string or regular expression. + * @extends Normalizer + */ +class Replace extends Normalizer { + /** + * Normalize the input text by replacing the pattern with the content. + * @param {string} text The input text to be normalized. + * @returns {string} The normalized text after replacing the pattern with the content. + */ + normalize(text) { + const pattern = createPattern(this.config.pattern); + return pattern === null + ? text + : text.replaceAll(pattern, this.config.content); + } +} + +/** + * A normalizer that applies Unicode normalization form C (NFC) to the input text. + * @extends Normalizer + */ +class NFC extends Normalizer { + /** + * Normalize the input text by applying Unicode normalization form C (NFC). + * @param {string} text The input text to be normalized. + * @returns {string} The normalized text. + */ + normalize(text) { + text = text.normalize('NFC') + return text; + } +} + +/** + * NFKC Normalizer. + * @extends Normalizer + */ +class NFKC extends Normalizer { + /** + * Normalize text using NFKC normalization. + * @param {string} text The text to be normalized. + * @returns {string} The normalized text. + */ + normalize(text) { + text = text.normalize('NFKC') + return text; + } +} +/** + * NFKD Normalizer. + * @extends Normalizer + */ +class NFKD extends Normalizer { + /** + * Normalize text using NFKD normalization. + * @param {string} text The text to be normalized. + * @returns {string} The normalized text. + */ + normalize(text) { + text = text.normalize('NFKD') + return text; + } +} + +/** + * A normalizer that strips leading and/or trailing whitespace from the input text. + */ +class StripNormalizer extends Normalizer { + /** + * Strip leading and/or trailing whitespace from the input text. + * @param {string} text The input text. + * @returns {string} The normalized text. + */ + normalize(text) { + if (this.config.strip_left && this.config.strip_right) { + // Fast path to avoid an extra trim call + text = text.trim(); + } else { + if (this.config.strip_left) { + text = text.trimStart(); + } + if (this.config.strip_right) { + text = text.trimEnd(); + } + } + return text; + } +} + +/** + * StripAccents normalizer removes all accents from the text. + * @extends Normalizer + */ +class StripAccents extends Normalizer { + /** + * Remove all accents from the text. + * @param {string} text The input text. + * @returns {string} The normalized text without accents. + */ + normalize(text) { + text = remove_accents(text); + return text; + } +} + +/** + * A Normalizer that lowercases the input string. + * @extends Normalizer + */ +class Lowercase extends Normalizer { + /** + * Lowercases the input string. + * @param {string} text The text to normalize. + * @returns {string} The normalized text. + */ + normalize(text) { + text = text.toLowerCase(); + return text; + } +} + +/** + * A Normalizer that prepends a string to the input string. + * @extends Normalizer + */ +class Prepend extends Normalizer { + /** + * Prepends the input string. + * @param {string} text The text to normalize. + * @returns {string} The normalized text. + */ + normalize(text) { + text = this.config.prepend + text; + return text; + } +} + +/** + * A Normalizer that applies a sequence of Normalizers. + * @extends Normalizer + */ +class NormalizerSequence extends Normalizer { + /** + * Create a new instance of NormalizerSequence. + * @param {Object} config The configuration object. + * @param {Object[]} config.normalizers An array of Normalizer configuration objects. + */ + constructor(config) { + super(config); + this.normalizers = config.normalizers.map(x => Normalizer.fromConfig(x)); + } + /** + * Apply a sequence of Normalizers to the input text. + * @param {string} text The text to normalize. + * @returns {string} The normalized text. + */ + normalize(text) { + return this.normalizers.reduce((t, normalizer) => { + return normalizer.normalize(t); + }, text); + } +} + +/** + * A class representing a normalizer used in BERT tokenization. + * @extends Normalizer + */ +class BertNormalizer extends Normalizer { + /** + * Adds whitespace around any CJK (Chinese, Japanese, or Korean) character in the input text. + * + * @param {string} text The input text to tokenize. + * @returns {string} The tokenized text with whitespace added around CJK characters. + */ + _tokenize_chinese_chars(text) { + /* Adds whitespace around any CJK character. */ + const output = []; + for (let i = 0; i < text.length; ++i) { + const char = text[i]; + const cp = char.charCodeAt(0); + if (this._is_chinese_char(cp)) { + output.push(" "); + output.push(char); + output.push(" "); + } else { + output.push(char); + } + } + return output.join(""); + } + + /** + * Checks whether the given Unicode codepoint represents a CJK (Chinese, Japanese, or Korean) character. + * + * A "chinese character" is defined as anything in the CJK Unicode block: + * https://en.wikipedia.org/wiki/CJK_Unified_Ideographs_(Unicode_block) + * + * Note that the CJK Unicode block is NOT all Japanese and Korean characters, despite its name. + * The modern Korean Hangul alphabet is a different block, as is Japanese Hiragana and Katakana. + * Those alphabets are used to write space-separated words, so they are not treated specially + * and are handled like all other languages. + * + * @param {number} cp The Unicode codepoint to check. + * @returns {boolean} True if the codepoint represents a CJK character, false otherwise. + */ + _is_chinese_char(cp) { + return ( + (cp >= 0x4E00 && cp <= 0x9FFF) + || (cp >= 0x3400 && cp <= 0x4DBF) + || (cp >= 0x20000 && cp <= 0x2A6DF) + || (cp >= 0x2A700 && cp <= 0x2B73F) + || (cp >= 0x2B740 && cp <= 0x2B81F) + || (cp >= 0x2B820 && cp <= 0x2CEAF) + || (cp >= 0xF900 && cp <= 0xFAFF) + || (cp >= 0x2F800 && cp <= 0x2FA1F) + ) + } + /** + * Strips accents from the given text. + * @param {string} text The text to strip accents from. + * @returns {string} The text with accents removed. + */ + stripAccents(text) { + return text.normalize('NFD').replace(/[\u0300-\u036f]/g, ''); + } + + + /** + * Checks whether `char` is a control character. + * @param {string} char The character to check. + * @returns {boolean} Whether `char` is a control character. + * @private + */ + _is_control(char) { + switch (char) { + case '\t': + case '\n': + case '\r': + // These are technically control characters but we count them as whitespace characters. + return false; + + default: + // Check if unicode category starts with C: + // Cc - Control + // Cf - Format + // Co - Private Use + // Cs - Surrogate + return /^\p{Cc}|\p{Cf}|\p{Co}|\p{Cs}$/u.test(char); + } + } + + /** + * Performs invalid character removal and whitespace cleanup on text. + * @param {string} text The text to clean. + * @returns {string} The cleaned text. + * @private + */ + _clean_text(text) { + const output = []; + for (const char of text) { + const cp = char.charCodeAt(0); + if (cp === 0 || cp === 0xFFFD || this._is_control(char)) { + continue; + } + if (/^\s$/.test(char)) { // is whitespace + output.push(" "); + } else { + output.push(char); + } + } + return output.join(""); + } + /** + * Normalizes the given text based on the configuration. + * @param {string} text The text to normalize. + * @returns {string} The normalized text. + */ + normalize(text) { + if (this.config.clean_text) { + text = this._clean_text(text); + } + + if (this.config.handle_chinese_chars) { + text = this._tokenize_chinese_chars(text); + } + + if (this.config.lowercase) { + text = text.toLowerCase(); + + if (this.config.strip_accents !== false) { + text = this.stripAccents(text); + } + } else if (this.config.strip_accents) { + text = this.stripAccents(text); + } + + return text; + } +} + +/** + * A callable class representing a pre-tokenizer used in tokenization. Subclasses + * should implement the `pre_tokenize_text` method to define the specific pre-tokenization logic. + * @extends Callable + */ +class PreTokenizer extends Callable { + /** + * Factory method that returns an instance of a subclass of `PreTokenizer` based on the provided configuration. + * + * @static + * @param {Object} config A configuration object for the pre-tokenizer. + * @returns {PreTokenizer} An instance of a subclass of `PreTokenizer`. + * @throws {Error} If the provided configuration object does not correspond to any known pre-tokenizer. + */ + static fromConfig(config) { + if (config === null) return null; + + switch (config.type) { + case 'BertPreTokenizer': + return new BertPreTokenizer(config); + case 'Sequence': + return new PreTokenizerSequence(config); + case 'WhitespaceSplit': + return new WhitespaceSplit(config); + case 'Metaspace': + return new MetaspacePreTokenizer(config); + + case 'ByteLevel': + return new ByteLevelPreTokenizer(config); + case 'Split': + return new SplitPreTokenizer(config); + case 'Punctuation': + return new PunctuationPreTokenizer(config); + case 'Digits': + return new DigitsPreTokenizer(config); + case 'Replace': + return new ReplacePreTokenizer(config); + default: + throw new Error(`Unknown PreTokenizer type: ${config.type}`); + } + } + + /** + * Method that should be implemented by subclasses to define the specific pre-tokenization logic. + * + * @abstract + * @param {string} text The text to pre-tokenize. + * @param {Object} [options] Additional options for the pre-tokenization logic. + * @returns {string[]} The pre-tokenized text. + * @throws {Error} If the method is not implemented in the subclass. + */ + pre_tokenize_text(text, options) { + throw Error("pre_tokenize_text should be implemented in subclass.") + } + + /** + * Tokenizes the given text into pre-tokens. + * @param {string|string[]} text The text or array of texts to pre-tokenize. + * @param {Object} [options] Additional options for the pre-tokenization logic. + * @returns {string[]} An array of pre-tokens. + */ + pre_tokenize(text, options) { + return (Array.isArray(text) + ? text.map(x => this.pre_tokenize_text(x, options)) + : this.pre_tokenize_text(text, options) + ).flat(); + } + + /** + * Alias for {@link PreTokenizer#pre_tokenize}. + * @param {string|string[]} text The text or array of texts to pre-tokenize. + * @param {Object} [options] Additional options for the pre-tokenization logic. + * @returns {string[]} An array of pre-tokens. + */ + _call(text, options) { + return this.pre_tokenize(text, options); + } +} + +/** + * @extends PreTokenizer + */ +class BertPreTokenizer extends PreTokenizer { + /** + * A PreTokenizer that splits text into wordpieces using a basic tokenization scheme + * similar to that used in the original implementation of BERT. + * + * @param {Object} config The configuration object. + */ + constructor(config) { + super(); + // Construct a pattern which matches the rust implementation: + // https://github.com/huggingface/tokenizers/blob/b4fcc9ce6e4ad5806e82826f816acfdfdc4fcc67/tokenizers/src/pre_tokenizers/bert.rs#L11 + // Equivalent to removing whitespace and splitting on punctuation (both \p{P} and other ascii characters) + this.pattern = new RegExp(`[^\\s${PUNCTUATION_REGEX}]+|[${PUNCTUATION_REGEX}]`, 'gu'); + } + /** + * Tokenizes a single text using the BERT pre-tokenization scheme. + * + * @param {string} text The text to tokenize. + * @param {Object} [options] Additional options for the pre-tokenization logic. + * @returns {string[]} An array of tokens. + */ + pre_tokenize_text(text, options) { + return text.trim().match(this.pattern) || []; + } +} + +/** + * A pre-tokenizer that splits text into Byte-Pair-Encoding (BPE) subwords. + * @extends PreTokenizer + */ +class ByteLevelPreTokenizer extends PreTokenizer { + /** + * Creates a new instance of the `ByteLevelPreTokenizer` class. + * @param {Object} config The configuration object. + */ + constructor(config) { + super(); + this.config = config; + + /** + * @type {boolean} Whether to add a leading space to the first word. + * This allows to treat the leading word just as any other word. + */ + this.add_prefix_space = this.config.add_prefix_space; + + /** + * @type {boolean} Whether the post processing step should trim offsets + * to avoid including whitespaces. + * @todo Use this in the pretokenization step. + */ + this.trim_offsets = this.config.trim_offsets; + + /** + * @type {boolean} Whether to use the standard GPT2 regex for whitespace splitting. + * Set it to False if you want to use your own splitting. Defaults to true. + */ + this.use_regex = this.config.use_regex ?? true; + this.pattern = /'s|'t|'re|'ve|'m|'ll|'d| ?\p{L}+| ?\p{N}+| ?[^\s\p{L}\p{N}]+|\s+(?!\S)|\s+/gu; + + this.byte_encoder = BYTES_TO_UNICODE; + this.text_encoder = new TextEncoder(); + } + + /** + * Tokenizes a single piece of text using byte-level tokenization. + * @param {string} text The text to tokenize. + * @param {Object} [options] Additional options for the pre-tokenization logic. + * @returns {string[]} An array of tokens. + */ + pre_tokenize_text(text, options) { + // Add a leading space if the option is enabled + if (this.add_prefix_space && !text.startsWith(' ')) { + text = ' ' + text; + } + + // Split on whitespace and punctuation + const tokens = this.use_regex ? (text.match(this.pattern) || []) : [text]; + + // Maps all our bytes to unicode strings, avoiding control tokens of the BPE (spaces in our case) + return tokens.map( + token => Array.from(this.text_encoder.encode(token), byte => this.byte_encoder[byte]).join('') + ); + } +} + +/** + * @typedef {'removed'|'isolated'|'mergedWithPrevious'|'mergedWithNext'|'contiguous'} SplitDelimiterBehavior + */ + +/** + * Splits text using a given pattern. + * @extends PreTokenizer + */ +class SplitPreTokenizer extends PreTokenizer { + /** + * @param {Object} config The configuration options for the pre-tokenizer. + * @param {Object} config.pattern The pattern used to split the text. Can be a string or a regex object. + * @param {string|undefined} config.pattern.String The string to use for splitting. Only defined if the pattern is a string. + * @param {string|undefined} config.pattern.Regex The regex to use for splitting. Only defined if the pattern is a regex. + * @param {SplitDelimiterBehavior} config.behavior The behavior to use when splitting. + * @param {boolean} config.invert Whether to split (invert=false) or match (invert=true) the pattern. + */ + constructor(config) { + super(); + this.config = config; + // TODO support all behaviours (config.behavior) + + this.pattern = createPattern(this.config.pattern, this.config.invert); + } + + /** + * Tokenizes text by splitting it using the given pattern. + * @param {string} text The text to tokenize. + * @param {Object} [options] Additional options for the pre-tokenization logic. + * @returns {string[]} An array of tokens. + */ + pre_tokenize_text(text, options) { + if (this.pattern === null) { + return []; + } + + if (this.config.invert) { + return text.match(this.pattern) || []; + } else { + return regexSplit(text, this.pattern); + } + } +} + +/** + * Splits text based on punctuation. + * @extends PreTokenizer + */ +class PunctuationPreTokenizer extends PreTokenizer { + /** + * @param {Object} config The configuration options for the pre-tokenizer. + * @param {SplitDelimiterBehavior} config.behavior The behavior to use when splitting. + */ + constructor(config) { + super(); + this.config = config; + this.pattern = new RegExp(`[^${PUNCTUATION_REGEX}]+|[${PUNCTUATION_REGEX}]+`, 'gu'); + } + + /** + * Tokenizes text by splitting it using the given pattern. + * @param {string} text The text to tokenize. + * @param {Object} [options] Additional options for the pre-tokenization logic. + * @returns {string[]} An array of tokens. + */ + pre_tokenize_text(text, options) { + return text.match(this.pattern) || []; + } +} + + +/** + * Splits text based on digits. + * @extends PreTokenizer + */ +class DigitsPreTokenizer extends PreTokenizer { + /** + * @param {Object} config The configuration options for the pre-tokenizer. + * @param {boolean} config.individual_digits Whether to split on individual digits. + */ + constructor(config) { + super(); + this.config = config; + + // Construct a pattern which matches the rust implementation: + const digit_pattern = `[^\\d]+|\\d${this.config.individual_digits ? '' : '+'}`; + this.pattern = new RegExp(digit_pattern, 'gu'); + } + + /** + * Tokenizes text by splitting it using the given pattern. + * @param {string} text The text to tokenize. + * @param {Object} [options] Additional options for the pre-tokenization logic. + * @returns {string[]} An array of tokens. + */ + pre_tokenize_text(text, options) { + return text.match(this.pattern) || []; + } +} + +/** + * @typedef {Object} PostProcessedOutput + * @property {string[]} tokens List of token produced by the post-processor. + * @property {number[]} [token_type_ids] List of token type ids produced by the post-processor. + */ + + +/** + * @typedef {Object} EncodingSingle + * @property {number[]} input_ids List of token ids to be fed to a model. + * @property {number[]} attention_mask List of token type ids to be fed to a model + * @property {number[]} [token_type_ids] List of indices specifying which tokens should be attended to by the model + */ + + +/** + * @extends Callable + */ +class PostProcessor extends Callable { + + /** + * @param {Object} config The configuration for the post-processor. + */ + constructor(config) { + super(); + this.config = config; + } + + /** + * Factory method to create a PostProcessor object from a configuration object. + * + * @param {Object} config Configuration object representing a PostProcessor. + * @returns {PostProcessor} A PostProcessor object created from the given configuration. + * @throws {Error} If an unknown PostProcessor type is encountered. + */ + static fromConfig(config) { + if (config === null) return null; + switch (config.type) { + case 'TemplateProcessing': + return new TemplateProcessing(config); + + case 'ByteLevel': + return new ByteLevelPostProcessor(config); + + case 'RobertaProcessing': + return new RobertaProcessing(config); + case 'BertProcessing': + return new BertProcessing(config); + + default: + throw new Error(`Unknown PostProcessor type: ${config.type}`); + } + } + + /** + * Method to be implemented in subclass to apply post-processing on the given tokens. + * + * @param {Array} tokens The input tokens to be post-processed. + * @param {...*} args Additional arguments required by the post-processing logic. + * @returns {PostProcessedOutput} The post-processed tokens. + * @throws {Error} If the method is not implemented in subclass. + */ + post_process(tokens, ...args) { + throw Error("post_process should be implemented in subclass.") + } + + /** + * Alias for {@link PostProcessor#post_process}. + * @param {Array} tokens The text or array of texts to post-process. + * @param {...*} args Additional arguments required by the post-processing logic. + * @returns {PostProcessedOutput} The post-processed tokens. + */ + _call(tokens, ...args) { + return this.post_process(tokens, ...args); + } +} + +/** + * A post-processor that adds special tokens to the beginning and end of the input. + */ +class BertProcessing extends PostProcessor { + /** + * @param {Object} config The configuration for the post-processor. + * @param {string[]} config.cls The special tokens to add to the beginning of the input. + * @param {string[]} config.sep The special tokens to add to the end of the input. + */ + constructor(config) { + super(config); + // TODO use all of config: add_prefix_space, trim_offsets + + this.cls = config.cls[0]; + this.sep = config.sep[0]; + } + + /** + * Adds the special tokens to the beginning and end of the input. + * @param {string[]} tokens The input tokens. + * @param {string[]} [tokens_pair=null] An optional second set of input tokens. + * @returns {PostProcessedOutput} The post-processed tokens with the special tokens added to the beginning and end. + */ + post_process(tokens, tokens_pair = null, { + add_special_tokens = true, + } = {}) { + if (add_special_tokens) { + tokens = mergeArrays([this.cls], tokens, [this.sep]); + } + + let token_type_ids = new Array(tokens.length).fill(0); + if (tokens_pair !== null) { + // NOTE: It is intended to add 2 EOS tokens after the first set of tokens + // https://github.com/huggingface/tokenizers/issues/983 + const middle = (add_special_tokens && this instanceof RobertaProcessing) + ? [this.sep] + : []; + const after = add_special_tokens ? [this.sep] : []; + + tokens = mergeArrays(tokens, middle, tokens_pair, after); + token_type_ids = mergeArrays(token_type_ids, new Array(tokens_pair.length + middle.length + after.length).fill(1)); + } + return { tokens, token_type_ids }; + } +} +class RobertaProcessing extends BertProcessing { } // NOTE: extends BertProcessing + +/** + * Post processor that replaces special tokens in a template with actual tokens. + * @extends PostProcessor + */ +class TemplateProcessing extends PostProcessor { + /** + * Creates a new instance of `TemplateProcessing`. + * @param {Object} config The configuration options for the post processor. + * @param {Array} config.single The template for a single sequence of tokens. + * @param {Array} config.pair The template for a pair of sequences of tokens. + */ + constructor(config) { + super(config); + + this.single = config.single; + this.pair = config.pair; + } + + /** + * Replaces special tokens in the template with actual tokens. + * @param {string[]} tokens The list of tokens for the first sequence. + * @param {string[]} [tokens_pair=null] The list of tokens for the second sequence (optional). + * @returns {PostProcessedOutput} An object containing the list of tokens with the special tokens replaced with actual tokens. + */ + post_process(tokens, tokens_pair = null, { + add_special_tokens = true, + } = {}) { + const type = tokens_pair === null ? this.single : this.pair + + let processedTokens = []; + let types = []; + for (const item of type) { + if ('SpecialToken' in item) { + if (add_special_tokens) { + processedTokens.push(item.SpecialToken.id); + types.push(item.SpecialToken.type_id); + } + } else if ('Sequence' in item) { + if (item.Sequence.id === 'A') { + processedTokens = mergeArrays(processedTokens, tokens); + types = mergeArrays(types, new Array(tokens.length).fill(item.Sequence.type_id)); + + } else if (item.Sequence.id === 'B') { + processedTokens = mergeArrays(processedTokens, tokens_pair); + types = mergeArrays(types, new Array(tokens_pair.length).fill(item.Sequence.type_id)); + } + } + } + return { tokens: processedTokens, token_type_ids: types }; + } +} + +/** + * A PostProcessor that returns the given tokens as is. + * @extends PostProcessor + */ +class ByteLevelPostProcessor extends PostProcessor { + /** + * Post process the given tokens. + * @param {string[]} tokens The list of tokens for the first sequence. + * @param {string[]} [tokens_pair=null] The list of tokens for the second sequence (optional). + * @returns {PostProcessedOutput} An object containing the post-processed tokens. + */ + post_process(tokens, tokens_pair = null) { + if (tokens_pair) { + tokens = mergeArrays(tokens, tokens_pair); + } + return { tokens }; + } +} + +/** + * The base class for token decoders. + * @extends Callable + */ +class Decoder extends Callable { + + /** + * Creates an instance of `Decoder`. + * + * @param {Object} config The configuration object. + */ + constructor(config) { + super(); + this.config = config; + + /** @type {AddedToken[]} */ + this.added_tokens = []; + this.end_of_word_suffix = null; + this.trim_offsets = config.trim_offsets; + } + + /** + * Creates a decoder instance based on the provided configuration. + * + * @param {Object} config The configuration object. + * @returns {Decoder} A decoder instance. + * @throws {Error} If an unknown decoder type is provided. + */ + static fromConfig(config) { + if (config === null) return null; + switch (config.type) { + case 'WordPiece': + return new WordPieceDecoder(config); + case 'Metaspace': + return new MetaspaceDecoder(config); + case 'ByteLevel': + return new ByteLevelDecoder(config); + + case 'Replace': + return new ReplaceDecoder(config); + case 'ByteFallback': + return new ByteFallback(config); + case 'Fuse': + return new FuseDecoder(config); + case 'Strip': + return new StripDecoder(config); + + case 'Sequence': + return new DecoderSequence(config); + + case 'CTC': + return new CTCDecoder(config); + case 'BPEDecoder': + return new BPEDecoder(config); + default: + throw new Error(`Unknown Decoder type: ${config.type}`); + } + } + + /** + * Calls the `decode` method. + * + * @param {string[]} tokens The list of tokens. + * @returns {string} The decoded string. + */ + _call(tokens) { + return this.decode(tokens); + } + + /** + * Decodes a list of tokens. + * @param {string[]} tokens The list of tokens. + * @returns {string} The decoded string. + */ + decode(tokens) { + return this.decode_chain(tokens).join(''); + } + + /** + * Apply the decoder to a list of tokens. + * + * @param {string[]} tokens The list of tokens. + * @returns {string[]} The decoded list of tokens. + * @throws {Error} If the `decode_chain` method is not implemented in the subclass. + */ + decode_chain(tokens) { + throw Error("`decode_chain` should be implemented in subclass.") + } + +} + +class ReplaceDecoder extends Decoder { + + /** @type {Decoder['decode_chain']} */ + decode_chain(tokens) { + const pattern = createPattern(this.config.pattern); + return pattern === null + ? tokens + : tokens.map(token => token.replaceAll(pattern, this.config.content)) + } +} + + +class ByteFallback extends Decoder { + constructor(config) { + super(config); + + this.text_decoder = new TextDecoder(); + } + + /** @type {Decoder['decode_chain']} */ + decode_chain(tokens) { + + const new_tokens = []; + let previous_byte_tokens = []; + + for (const token of tokens) { + let bytes = null; + if (token.length === 6 && token.startsWith('<0x') && token.endsWith('>')) { + const byte = parseInt(token.slice(3, 5), 16); + if (!isNaN(byte)) { + bytes = byte; + } + } + if (bytes !== null) { + previous_byte_tokens.push(bytes); + } else { + if (previous_byte_tokens.length > 0) { + const string = this.text_decoder.decode(Uint8Array.from(previous_byte_tokens)); + new_tokens.push(string); + previous_byte_tokens = []; + } + new_tokens.push(token); + } + } + if (previous_byte_tokens.length > 0) { + const string = this.text_decoder.decode(Uint8Array.from(previous_byte_tokens)); + new_tokens.push(string); + previous_byte_tokens = []; + } + + return new_tokens; + } +} + +/** + * Fuse simply fuses all tokens into one big string. + * It's usually the last decoding step anyway, but this decoder + * exists incase some decoders need to happen after that step + */ +class FuseDecoder extends Decoder { + + /** @type {Decoder['decode_chain']} */ + decode_chain(tokens) { + return [tokens.join('')]; + } +} + + +class StripDecoder extends Decoder { + constructor(config) { + super(config); + + this.content = this.config.content; + this.start = this.config.start; + this.stop = this.config.stop; + } + + /** @type {Decoder['decode_chain']} */ + decode_chain(tokens) { + return tokens.map(token => { + let start_cut = 0; + for (let i = 0; i < this.start; ++i) { + if (token[i] === this.content) { + start_cut = i + 1; + continue; + } else { + break; + } + } + + let stop_cut = token.length; + for (let i = 0; i < this.stop; ++i) { + const index = token.length - i - 1; + if (token[index] === this.content) { + stop_cut = index; + continue; + } else { + break; + } + } + + return token.slice(start_cut, stop_cut) + }); + } +} + +/** + * A decoder that decodes a list of WordPiece tokens into a single string. + * @extends Decoder + */ +class WordPieceDecoder extends Decoder { + + /** + * Creates a new instance of WordPieceDecoder. + * @param {Object} config The configuration object. + * @param {string} config.prefix The prefix used for WordPiece encoding. + * @param {boolean} config.cleanup Whether to cleanup the decoded string. + */ + constructor(config) { + super(config); + this.cleanup = config.cleanup; + } + + /** @type {Decoder['decode_chain']} */ + decode_chain(tokens) { + return tokens.map((token, i) => { + if (i !== 0) { + if (token.startsWith(this.config.prefix)) { + // NOTE: .replace() is intended; only replace first occurrence + token = token.replace(this.config.prefix, ''); + } else { + token = ' ' + token; + } + } + if (this.cleanup) { + token = clean_up_tokenization(token) + } + + return token; + }); + } +} + +/** + * Byte-level decoder for tokenization output. Inherits from the `Decoder` class. + * @extends Decoder + */ +class ByteLevelDecoder extends Decoder { + + /** + * Create a `ByteLevelDecoder` object. + * @param {Object} config Configuration object. + */ + constructor(config) { + super(config); + + this.byte_decoder = UNICODE_TO_BYTES; + this.text_decoder = new TextDecoder("utf-8", { + fatal: false, + ignoreBOM: true, + }); + + this.end_of_word_suffix = null; + } + + /** + * Convert an array of tokens to string by decoding each byte. + * @param {string[]} tokens Array of tokens to be decoded. + * @returns {string} The decoded string. + */ + convert_tokens_to_string(tokens) { + const text = tokens.join(''); + const byteArray = new Uint8Array([...text].map(c => this.byte_decoder[c])); + const decoded_text = this.text_decoder.decode(byteArray); + return decoded_text; + } + + /** @type {Decoder['decode_chain']} */ + decode_chain(tokens) { + // TODO move to base class (like HF) + // tokens === filtered_tokens + + // To avoid mixing byte-level and unicode for byte-level BPT + // we need to build string separately for added tokens and byte-level tokens + // cf. https://github.com/huggingface/transformers/issues/1133 + const sub_texts = []; + let current_sub_text = []; + for (const token of tokens) { + // tokens sent here are already filtered, so we don't need to do this + // if (skip_special_tokens && this.all_special_ids.includes(token)) { + // continue; + // } + + if (this.added_tokens.find(x => x.content === token) !== undefined) { + if (current_sub_text.length > 0) { + sub_texts.push(this.convert_tokens_to_string(current_sub_text)); + current_sub_text = []; + } + sub_texts.push(token); + } else { + current_sub_text.push(token); + } + } + if (current_sub_text.length > 0) { + sub_texts.push(this.convert_tokens_to_string(current_sub_text)); + } + + // TODO add spaces_between_special_tokens and clean_up_tokenization_spaces options + + return sub_texts; + } +} + +/** + * The CTC (Connectionist Temporal Classification) decoder. + * See https://github.com/huggingface/tokenizers/blob/bb38f390a61883fc2f29d659af696f428d1cda6b/tokenizers/src/decoders/ctc.rs + */ +class CTCDecoder extends Decoder { + + constructor(config) { + super(config); + + this.pad_token = this.config.pad_token; + this.word_delimiter_token = this.config.word_delimiter_token; + this.cleanup = this.config.cleanup; + } + /** + * Converts a connectionist-temporal-classification (CTC) output tokens into a single string. + * @param {string[]} tokens Array of tokens to be decoded. + * @returns {string} The decoded string. + */ + convert_tokens_to_string(tokens) { + if (tokens.length === 0) return ''; + + // group same tokens into non-repeating tokens in CTC style decoding + const grouped_tokens = [tokens[0]]; + for (let i = 1; i < tokens.length; ++i) { + if (tokens[i] !== grouped_tokens.at(-1)) { + grouped_tokens.push(tokens[i]); + } + } + + // filter self.pad_token which is used as CTC-blank token + const filtered_tokens = grouped_tokens.filter(token => token !== this.pad_token); + + let text = filtered_tokens.join(''); + if (this.cleanup) { + // cleanup and replace delimiter token + text = clean_up_tokenization(text) + .replaceAll(this.word_delimiter_token, ' ') + .trim(); + } + return text; + } + + + /** @type {Decoder['decode_chain']} */ + decode_chain(tokens) { + return [this.convert_tokens_to_string(tokens)]; + } +} + +/** + * Apply a sequence of decoders. + * @extends Decoder + */ +class DecoderSequence extends Decoder { + + /** + * Creates a new instance of DecoderSequence. + * @param {Object} config The configuration object. + * @param {Decoder[]} config.decoders The list of decoders to apply. + */ + constructor(config) { + super(config); + this.decoders = config.decoders.map(x => Decoder.fromConfig(x)); + } + + /** @type {Decoder['decode_chain']} */ + decode_chain(tokens) { + // Use reduce to apply each decoder to the tokens + return this.decoders.reduce((toks, decoder) => { + return decoder.decode_chain(toks); + }, tokens); + } + +} + +class BPEDecoder extends Decoder { + constructor(config) { + super(config); + + this.suffix = this.config.suffix; + } + /** @type {Decoder['decode_chain']} */ + decode_chain(tokens) { + return tokens.map((token, i) => { + return token.replaceAll(this.suffix, (i === tokens.length - 1) ? '' : ' ') + }); + } +} + +// Custom decoder for VITS +class VitsDecoder extends Decoder { + /** @type {Decoder['decode_chain']} */ + decode_chain(tokens) { + let decoded = ''; + for (let i = 1; i < tokens.length; i += 2) { + decoded += tokens[i]; + } + return [decoded]; + } +} + + +/** + * This PreTokenizer replaces spaces with the given replacement character, adds a prefix space if requested, + * and returns a list of tokens. + * @extends PreTokenizer + */ +class MetaspacePreTokenizer extends PreTokenizer { + /** + * @param {Object} config The configuration object for the MetaspacePreTokenizer. + * @param {boolean} config.add_prefix_space Whether to add a prefix space to the first token. + * @param {string} config.replacement The character to replace spaces with. + * @param {string} [config.str_rep=config.replacement] An optional string representation of the replacement character. + * @param {'first'|'never'|'always'} [config.prepend_scheme='always'] The metaspace prepending scheme. + */ + constructor(config) { + super(); + + this.addPrefixSpace = config.add_prefix_space; + this.replacement = config.replacement; + this.strRep = config.str_rep || this.replacement; + this.prepend_scheme = config.prepend_scheme ?? 'always'; + } + + /** + * This method takes a string, replaces spaces with the replacement character, + * adds a prefix space if requested, and returns a new list of tokens. + * @param {string} text The text to pre-tokenize. + * @param {Object} [options] The options for the pre-tokenization. + * @param {number} [options.section_index] The index of the section to pre-tokenize. + * @returns {string[]} A new list of pre-tokenized tokens. + */ + pre_tokenize_text(text, { + section_index = undefined, + } = {}) { + + let normalized = text.replaceAll(' ', this.strRep); + + if ( + // We add a prefix space if: + // (1) The addPrefixSpace option is enabled and the normalized + // token does not already start with the replacement character. + (this.addPrefixSpace && !normalized.startsWith(this.replacement)) + + // and (2) either: + // (a) prepend_scheme is 'always' + // (b) prepend_scheme is 'first' and this is the first section + && ( + this.prepend_scheme === 'always' || + (this.prepend_scheme === 'first' && section_index === 0) + ) + ) { + normalized = this.strRep + normalized; + } + return [normalized]; + } +} + +/** + * MetaspaceDecoder class extends the Decoder class and decodes Metaspace tokenization. + * @extends Decoder + */ +class MetaspaceDecoder extends Decoder { + /** + * Constructs a new MetaspaceDecoder object. + * @param {Object} config The configuration object for the MetaspaceDecoder. + * @param {boolean} config.add_prefix_space Whether to add a prefix space to the decoded string. + * @param {string} config.replacement The string to replace spaces with. + */ + constructor(config) { + super(config); + + this.addPrefixSpace = config.add_prefix_space; + this.replacement = config.replacement; + } + + /** @type {Decoder['decode_chain']} */ + decode_chain(tokens) { + const result = []; + for (let i = 0; i < tokens.length; ++i) { + let normalized = tokens[i].replaceAll(this.replacement, ' '); + if (this.addPrefixSpace && i == 0 && normalized.startsWith(' ')) { + normalized = normalized.substring(1); + } + result.push(normalized); + } + return result; + } +} + +/** + * A normalizer that applies a precompiled charsmap. + * This is useful for applying complex normalizations in C++ and exposing them to JavaScript. + * @extends Normalizer + * @param {Object} config The configuration object for the Precompiled normalizer. + * @param {Object} config.precompiled_charsmap The precompiled charsmap object. + */ +class Precompiled extends Normalizer { + /** + * Create a new instance of Precompiled normalizer. + * @param {Object} config The configuration object. + * @param {any} config.precompiled_charsmap Precompiled chars mapping. + */ + constructor(config) { + super(config); + this.charsmap = config.precompiled_charsmap; + } + + /** + * Normalizes the given text by applying the precompiled charsmap. + * @param {string} text The text to normalize. + * @returns {string} The normalized text. + */ + normalize(text) { + // As stated in the sentencepiece normalization docs (https://github.com/google/sentencepiece/blob/master/doc/normalization.md#use-pre-defined-normalization-rule), + // there are 5 pre-defined normalization rules: + // 1. nmt_nfkc: NFKC normalization with some additional normalization around spaces. (default) + // 2. nfkc: original NFKC normalization. + // 3. nmt_nfkc_cf: nmt_nfkc + Unicode case folding (mostly lower casing) + // 4. nfkc_cf: nfkc + Unicode case folding. + // 5. identity: no normalization + // + // For now, we only implement the default (nmt_nfkc). + // See https://raw.githubusercontent.com/google/sentencepiece/master/data/nmt_nfkc.tsv for the full list of rules. + // TODO: detect when a different `this.charsmap` is used. + + text = text.replace(/[\u0001-\u0008\u000B\u000E-\u001F\u007F\u008F\u009F]/gm, ''); // Remove control characters + text = text.replace(/[\u0009\u000A\u000C\u000D\u1680\u200B\u200C\u200E\u200F\u2028\u2029\u2581\uFEFF\uFFFD]/gm, '\u0020'); // Replace certain characters with a space + + if (text.includes('\uFF5E')) { + // To match the sentencepiece implementation 100%, we must handle a very strange edge-case. + // For some reason, the "Fullwidth Tilde" character (\uFF5E) should not be converted to the standard Tilde character (\u007E). + // However, NFKC normalization does do this conversion. As a result, we split the string on the Fullwidth Tilde character, + // perform NFKC normalization on each substring, and then join them back together with the Fullwidth Tilde character. + const parts = text.split('\uFF5E'); + text = parts.map(part => part.normalize('NFKC')).join('\uFF5E'); + } else { + text = text.normalize('NFKC'); + } + + return text; + } +} + +/** + * A pre-tokenizer that applies a sequence of pre-tokenizers to the input text. + * @extends PreTokenizer + */ +class PreTokenizerSequence extends PreTokenizer { + /** + * Creates an instance of PreTokenizerSequence. + * @param {Object} config The configuration object for the pre-tokenizer sequence. + * @param {Object[]} config.pretokenizers An array of pre-tokenizer configurations. + */ + constructor(config) { + super(); + this.tokenizers = config.pretokenizers.map(x => PreTokenizer.fromConfig(x)); + } + + /** + * Applies each pre-tokenizer in the sequence to the input text in turn. + * @param {string} text The text to pre-tokenize. + * @param {Object} [options] Additional options for the pre-tokenization logic. + * @returns {string[]} The pre-tokenized text. + */ + pre_tokenize_text(text, options) { + // Use reduce to apply each tokenizer to the text + return this.tokenizers.reduce((preTokenizedText, tokenizer) => { + return tokenizer.pre_tokenize(preTokenizedText, options); + }, [text]); + } +} + +/** + * Splits a string of text by whitespace characters into individual tokens. + * @extends PreTokenizer + */ +class WhitespaceSplit extends PreTokenizer { + /** + * Creates an instance of WhitespaceSplit. + * @param {Object} config The configuration object for the pre-tokenizer sequence. + */ + constructor(config) { + super(); + } + /** + * Pre-tokenizes the input text by splitting it on whitespace characters. + * @param {string} text The text to be pre-tokenized. + * @param {Object} [options] Additional options for the pre-tokenization logic. + * @returns {string[]} An array of tokens produced by splitting the input text on whitespace. + */ + pre_tokenize_text(text, options) { + return whitespace_split(text); + } +} + +// NOTE: `ReplacePreTokenizer` is custom (to support `BlenderbotSmallTokenizer`) +class ReplacePreTokenizer extends PreTokenizer { + /** + * @param {Object} config The configuration options for the pre-tokenizer. + * @param {Object} config.pattern The pattern used to split the text. Can be a string or a regex object. + * @param {string} config.content What to replace the pattern with. + */ + constructor(config) { + super(); + this.config = config; + this.pattern = createPattern(this.config.pattern); + this.content = this.config.content; + } + + /** + * Pre-tokenizes the input text by replacing certain characters. + * @param {string} text The text to be pre-tokenized. + * @param {Object} [options] Additional options for the pre-tokenization logic. + * @returns {string[]} An array of tokens produced by replacing certain characters. + */ + pre_tokenize_text(text, options) { + if (this.pattern === null) { + return [text]; + } + return [text.replaceAll(this.pattern, this.config.content)]; + } +} + +const SPECIAL_TOKEN_ATTRIBUTES = [ + 'bos_token', + 'eos_token', + 'unk_token', + 'sep_token', + 'pad_token', + 'cls_token', + 'mask_token', + // additional_special_tokens (TODO) +] + +/** + * + * Helper function for padding values of an object, which are each arrays. + * NOTE: No additional checks are made here for validity of arguments. + * @param {Record} item The input object. + * @param {number} length The length to pad to. + * @param {(key: string) => any} value_fn Determine the value to fill the array, based on its key. + * @param {'right'|'left'} side Which side to pad the array. + * @private + */ +function padHelper(item, length, value_fn, side) { + for (const key of Object.keys(item)) { + const diff = length - item[key].length; + const value = value_fn(key); + + const padData = new Array(diff).fill(value); + item[key] = side === 'right' + ? mergeArrays(item[key], padData) + : mergeArrays(padData, item[key]); + } +} + +/** + * Helper function for truncating values of an object, which are each arrays. + * NOTE: No additional checks are made here for validity of arguments. + * @param {Record} item The input object. + * @param {number} length The length to truncate to. + * @private + */ +function truncateHelper(item, length) { + // Setting .length to a lower value truncates the array in-place: + // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/length + for (const key of Object.keys(item)) { + item[key].length = length; + } +} + + +export class PreTrainedTokenizer extends Callable { + return_token_type_ids = false; + + _default_chat_template = `{% for message in messages %}{{'<|im_start|>' + message['role'] + '\n' + message['content'] + '<|im_end|>' + '\n'}}{% endfor %}{% if add_generation_prompt %}{{ '<|im_start|>assistant\n' }}{% endif %}`; + + /** + * Create a new PreTrainedTokenizer instance. + * @param {Object} tokenizerJSON The JSON of the tokenizer. + * @param {Object} tokenizerConfig The config of the tokenizer. + */ + constructor(tokenizerJSON, tokenizerConfig) { + super(); + + this._tokenizer_config = tokenizerConfig; + + // Construct parts of the tokenizer from the JSON + this.normalizer = Normalizer.fromConfig(tokenizerJSON.normalizer); + this.pre_tokenizer = PreTokenizer.fromConfig(tokenizerJSON.pre_tokenizer); + this.model = TokenizerModel.fromConfig(tokenizerJSON.model, tokenizerConfig); + this.post_processor = PostProcessor.fromConfig(tokenizerJSON.post_processor); + this.decoder = Decoder.fromConfig(tokenizerJSON.decoder); + + // Add added_tokens to model + this.special_tokens = []; + this.all_special_ids = []; + + /** @type {AddedToken[]} */ + this.added_tokens = []; + for (const addedToken of tokenizerJSON.added_tokens) { + const token = new AddedToken(addedToken); + this.added_tokens.push(token); + + this.model.tokens_to_ids.set(token.content, token.id); + this.model.vocab[token.id] = token.content; + + if (token.special) { + this.special_tokens.push(token.content); + this.all_special_ids.push(token.id); + } + } + + // Update additional_special_tokens + this.additional_special_tokens = tokenizerConfig.additional_special_tokens ?? []; + this.special_tokens.push(...this.additional_special_tokens); + this.special_tokens = [...new Set(this.special_tokens)]; // Remove duplicates + + if (this.decoder) { + // Slight hack, but it prevents code duplication: + this.decoder.added_tokens = this.added_tokens; + + // Another slight hack to add `end_of_word_suffix` (if present) to the decoder + // This is needed for cases where BPE model and ByteLevel decoder are used + // For more information, see https://github.com/xenova/transformers.js/issues/74 + // TODO: save this to the decoder when exporting? + this.decoder.end_of_word_suffix = this.model.end_of_word_suffix; + } + + + this.added_tokens_regex = this.added_tokens.length > 0 ? new RegExp( + this.added_tokens.map(x => `${x.lstrip ? '\\s*' : ''}(${escapeRegExp(x.content)})${x.rstrip ? '\\s*' : ''}`).join('|') + ) : null; + + // Set mask token if present (otherwise will be undefined, which is fine) + this.mask_token = this.getToken('mask_token'); + this.mask_token_id = this.model.tokens_to_ids.get(this.mask_token); + + this.pad_token = this.getToken('pad_token', 'eos_token'); + this.pad_token_id = this.model.tokens_to_ids.get(this.pad_token); + + this.sep_token = this.getToken('sep_token'); + this.sep_token_id = this.model.tokens_to_ids.get(this.sep_token); + + this.unk_token = this.getToken(tokenizerConfig, 'unk_token'); + this.unk_token_id = this.model.tokens_to_ids.get(this.unk_token); + + this.model_max_length = tokenizerConfig.model_max_length; + + /** @type {boolean} Whether or not to strip the text when tokenizing (removing excess spaces before and after the string). */ + this.remove_space = tokenizerConfig.remove_space; + + this.clean_up_tokenization_spaces = tokenizerConfig.clean_up_tokenization_spaces ?? true; + this.do_lowercase_and_remove_accent = tokenizerConfig.do_lowercase_and_remove_accent ?? false; + + // TODO allow user to change this + /** @type {'right'|'left'} */ + this.padding_side = 'right'; + + this.legacy = false; + + this.chat_template = tokenizerConfig.chat_template ?? null; + this._compiled_template_cache = new Map(); + } + + /** + * Returns the value of the first matching key in the tokenizer config object. + * @param {...string} keys One or more keys to search for in the tokenizer config object. + * @returns {string|null} The value associated with the first matching key, or null if no match is found. + * @throws {Error} If an object is found for a matching key and its __type property is not "AddedToken". + */ + getToken(...keys) { + for (const key of keys) { + const item = this._tokenizer_config[key]; + + if (!item) continue; + + if (typeof item === 'object') { + if (item.__type === 'AddedToken') { + return item.content; + } else { + throw Error(`Unknown token: ${item}`); + } + } else { + return item; + } + } + return null; + } + + /** + * Loads a pre-trained tokenizer from the given `pretrained_model_name_or_path`. + * + * @param {string} pretrained_model_name_or_path The path to the pre-trained tokenizer. + * @param {PretrainedTokenizerOptions} options Additional options for loading the tokenizer. + * + * @throws {Error} Throws an error if the tokenizer.json or tokenizer_config.json files are not found in the `pretrained_model_name_or_path`. + * @returns {Promise} A new instance of the `PreTrainedTokenizer` class. + */ + static async from_pretrained(pretrained_model_name_or_path, { + progress_callback = null, + config = null, + cache_dir = null, + local_files_only = false, + revision = 'main', + legacy = null, + } = {}) { + + const info = await loadTokenizer(pretrained_model_name_or_path, { + progress_callback, + config, + cache_dir, + local_files_only, + revision, + legacy, + }) + + // @ts-ignore + return new this(...info); + } + + /** + * @typedef {number[]|number[][]|Tensor} BatchEncodingItem + * + * @typedef {Object} BatchEncoding Holds the output of the tokenizer's call function. + * @property {BatchEncodingItem} input_ids List of token ids to be fed to a model. + * @property {BatchEncodingItem} attention_mask List of indices specifying which tokens should be attended to by the model. + * @property {BatchEncodingItem} [token_type_ids] List of token type ids to be fed to a model. + */ + + /** + * Encode/tokenize the given text(s). + * @param {string|string[]} text The text to tokenize. + * @param {Object} options An optional object containing the following properties: + * @param {string|string[]} [options.text_pair=null] Optional second sequence to be encoded. If set, must be the same type as text. + * @param {boolean|'max_length'} [options.padding=false] Whether to pad the input sequences. + * @param {boolean} [options.add_special_tokens=true] Whether or not to add the special tokens associated with the corresponding model. + * @param {boolean} [options.truncation=null] Whether to truncate the input sequences. + * @param {number} [options.max_length=null] Maximum length of the returned list and optionally padding length. + * @param {boolean} [options.return_tensor=true] Whether to return the results as Tensors or arrays. + * @returns {BatchEncoding} Object to be passed to the model. + */ + _call( + // Required positional arguments + text, + + // Optional keyword arguments + { + text_pair = null, + add_special_tokens = true, + padding = false, + truncation = null, + max_length = null, + return_tensor = true, // Different to HF + } = {}, + ) { + + const isBatched = Array.isArray(text); + + /** @type {EncodingSingle[]} */ + let encodedTokens; + + if (isBatched) { + if (text.length === 0) { + throw Error('text array must be non-empty') + } + + if (text_pair !== null) { + if (!Array.isArray(text_pair)) { + throw Error('text_pair must also be an array') + + } else if (text.length !== text_pair.length) { + throw Error('text and text_pair must have the same length') + } + + encodedTokens = text.map( + (t, i) => this._encode_plus(t, text_pair[i], { add_special_tokens }) + ) + + } else { + encodedTokens = text.map(x => this._encode_plus(x, null, { add_special_tokens })); + } + + } else { + if (text === null) { + throw Error('text may not be null') + } + + if (Array.isArray(text_pair)) { + throw Error('When specifying `text_pair`, since `text` is a string, `text_pair` must also be a string (i.e., not an array).') + } + + // For single input, we just wrap in an array, and then unwrap later. + encodedTokens = [this._encode_plus(text, text_pair, { add_special_tokens })]; + } + // At this point, tokens is batched: [batch_size, tokens] + // However, array may be jagged. So, we pad to max_length + + if (max_length === null) { + if (padding === 'max_length') { + max_length = this.model_max_length; + } else { + // Calculate max length from sequences + max_length = max(encodedTokens.map(x => x.input_ids.length))[0]; + } + } else { + if (!truncation) { + console.warn(`Truncation was not explicitly activated but \`max_length\` is provided a specific value, please use \`truncation=true\` to explicitly truncate examples to max length.`) + } + } + + // Ensure it is less than model max length + max_length = Math.min(max_length, this.model_max_length) + + if (padding || truncation) { + + // Perform padding and/or truncation + for (let i = 0; i < encodedTokens.length; ++i) { + if (encodedTokens[i].input_ids.length === max_length) { + continue; + + } else if (encodedTokens[i].input_ids.length > max_length) { + // possibly truncate + if (truncation) { + truncateHelper(encodedTokens[i], max_length); + } + + } else { // t.length < max_length + // possibly pad + if (padding) { + padHelper( + encodedTokens[i], + max_length, + key => key === 'input_ids' ? this.pad_token_id : 0, + this.padding_side + ); + } + } + } + } + + const result = {}; + + if (return_tensor) { + if (!(padding && truncation)) { + // Not, guaranteed that all items have same length, so + // we perform additional check + + if ( + encodedTokens.some(x => { + for (const key of Object.keys(x)) { + if (x[key].length !== encodedTokens[0][key]?.length) { + return true; + } + } + return false; + }) + ) { + throw Error( + "Unable to create tensor, you should probably activate truncation and/or padding " + + "with 'padding=true' and 'truncation=true' to have batched tensors with the same length." + ) + } + } + + // Now we actually convert to tensor + // NOTE: In the same way as the python library, we return a batched tensor, regardless of + // whether we have a single input or multiple inputs. + const dims = [encodedTokens.length, encodedTokens[0].input_ids.length]; + + for (const key of Object.keys(encodedTokens[0])) { + result[key] = new Tensor('int64', + BigInt64Array.from(encodedTokens.flatMap(x => x[key]).map(BigInt)), + dims + ); + } + + } else { + for (const key of Object.keys(encodedTokens[0])) { + result[key] = encodedTokens.map(x => x[key]); + } + + // If not returning a tensor, we match the input type + if (!isBatched) { + // Input was not batched, so we unwrap + for (const key of Object.keys(result)) { + result[key] = result[key][0]; + } + } + } + + return /** @type {BatchEncoding} */(result); + } + + /** + * Encodes a single text using the preprocessor pipeline of the tokenizer. + * + * @param {string|null} text The text to encode. + * @returns {string[]|null} The encoded tokens. + */ + _encode_text(text) { + if (text === null) return null; + + // Actual function which does encoding, for a single text + // First, we take care of special tokens. Needed to avoid issues arising from + // normalization and/or pretokenization (which may not preserve special tokens) + const sections = this.added_tokens_regex ? text.split(this.added_tokens_regex).filter(x => x) : [text]; + + const tokens = sections.map((x, section_index) => { + const addedToken = this.added_tokens.find(t => t.content === x); + if (addedToken !== undefined) { + // Ignore added tokens + return x + } else { + if (this.remove_space === true) { + x = x.trim().split(/\s+/).join(' '); + } + if (this.do_lowercase_and_remove_accent) { + x = lowercase_and_remove_accent(x); + } + + if (this.normalizer !== null) { + x = this.normalizer(x); + } + + const sectionTokens = (this.pre_tokenizer !== null) ? this.pre_tokenizer(x, { + section_index, + }) : [x]; + + const tokens = this.model(sectionTokens); + + return tokens; + } + }).flat(); + + return tokens; + } + + /** + * Encodes a single text or a pair of texts using the model's tokenizer. + * + * @param {string} text The text to encode. + * @param {string|null} text_pair The optional second text to encode. + * @param {Object} options An optional object containing the following properties: + * @param {boolean} [options.add_special_tokens=true] Whether or not to add the special tokens associated with the corresponding model. + * @returns {EncodingSingle} An object containing the encoded text. + * @private + */ + _encode_plus(text, text_pair = null, { + add_special_tokens = true, + } = {}) { + // Function called by users to encode possibly multiple texts + const tokens = this._encode_text(text); + const tokens2 = this._encode_text(text_pair); + + const combinedTokens = this.post_processor + ? this.post_processor(tokens, tokens2, { add_special_tokens }) + : { tokens: mergeArrays(tokens ?? [], tokens2 ?? []) }; + + const input_ids = this.model.convert_tokens_to_ids(combinedTokens.tokens); + + const result = { + input_ids, + attention_mask: new Array(input_ids.length).fill(1), + } + if (this.return_token_type_ids && combinedTokens.token_type_ids) { + result.token_type_ids = combinedTokens.token_type_ids; + } + return result; + } + + /** + * Encodes a single text or a pair of texts using the model's tokenizer. + * + * @param {string} text The text to encode. + * @param {string|null} text_pair The optional second text to encode. + * @param {Object} options An optional object containing the following properties: + * @param {boolean} [options.add_special_tokens=true] Whether or not to add the special tokens associated with the corresponding model. + * @returns {number[]} An array of token IDs representing the encoded text(s). + */ + encode(text, text_pair = null, { + add_special_tokens = true, + } = {}) { + const { input_ids } = this._encode_plus(text, text_pair, { + add_special_tokens, + }); + return input_ids; + } + + /** + * Decode a batch of tokenized sequences. + * @param {number[][]|Tensor} batch List/Tensor of tokenized input sequences. + * @param {Object} decode_args (Optional) Object with decoding arguments. + * @returns {string[]} List of decoded sequences. + */ + batch_decode(batch, decode_args = {}) { + if (batch instanceof Tensor) { + batch = batch.tolist(); + } + return batch.map(x => this.decode(x, decode_args)); + } + + /** + * Decodes a sequence of token IDs back to a string. + * + * @param {number[]|Tensor} token_ids List/Tensor of token IDs to decode. + * @param {Object} [decode_args={}] + * @param {boolean} [decode_args.skip_special_tokens=false] If true, special tokens are removed from the output string. + * @param {boolean} [decode_args.clean_up_tokenization_spaces=true] If true, spaces before punctuations and abbreviated forms are removed. + * + * @returns {string} The decoded string. + * @throws {Error} If `token_ids` is not a non-empty array of integers. + */ + decode( + token_ids, + decode_args = {}, + ) { + if (token_ids instanceof Tensor) { + token_ids = prepareTensorForDecode(token_ids); + } + + if (!Array.isArray(token_ids) || token_ids.length === 0 || !isIntegralNumber(token_ids[0])) { + throw Error("token_ids must be a non-empty array of integers."); + } + + return this.decode_single(token_ids, decode_args) + } + + /** + * Decode a single list of token ids to a string. + * @param {number[]} token_ids List of token ids to decode + * @param {Object} decode_args Optional arguments for decoding + * @param {boolean} [decode_args.skip_special_tokens=false] Whether to skip special tokens during decoding + * @param {boolean} [decode_args.clean_up_tokenization_spaces=null] Whether to clean up tokenization spaces during decoding. + * If null, the value is set to `this.decoder.cleanup` if it exists, falling back to `this.clean_up_tokenization_spaces` if it exists, falling back to `true`. + * @returns {string} The decoded string + */ + decode_single( + token_ids, + { + skip_special_tokens = false, + clean_up_tokenization_spaces = null, + } + ) { + let tokens = this.model.convert_ids_to_tokens(token_ids); + if (skip_special_tokens) { + tokens = tokens.filter(x => !this.special_tokens.includes(x)); + } + + // If `this.decoder` is null, we just join tokens with a space: + // https://github.com/huggingface/tokenizers/blob/8edec536a737cb04494b454805be16c020abb14f/tokenizers/src/tokenizer/mod.rs#L835 + /** @type {string} */ + let decoded = this.decoder ? this.decoder(tokens) : tokens.join(' '); + + // Slight hack, but prevents having to pass `skip_special_tokens` to + // each call to `decode`, which would lead to code duplication. + if (this.decoder && this.decoder.end_of_word_suffix) { + decoded = decoded.replaceAll(this.decoder.end_of_word_suffix, ' '); + if (skip_special_tokens) { + decoded = decoded.trim(); + } + } + + if (clean_up_tokenization_spaces ?? this.clean_up_tokenization_spaces) { + decoded = clean_up_tokenization(decoded); + } + + return decoded; + } + + get default_chat_template() { + if (!this._warned_about_chat_template) { + console.warn( + "No chat template is defined for this tokenizer - using a default chat template " + + "that implements the ChatML format. If the default is not appropriate for " + + "your model, please set `tokenizer.chat_template` to an appropriate template. " + + "See https://huggingface.co/docs/transformers/main/chat_templating for more information." + ) + this._warned_about_chat_template = true; // TODO move to logger.warning_once() + } + + return this._default_chat_template; + } + + /** + * @typedef {Object} Message + * @property {string} role The role of the message (e.g., "user" or "assistant" or "system"). + * @property {string} content The content of the message. + */ + + /** + * Converts a list of message objects with `"role"` and `"content"` keys to a list of token + * ids. This method is intended for use with chat models, and will read the tokenizer's chat_template attribute to + * determine the format and control tokens to use when converting. When chat_template is None, it will fall back + * to the default_chat_template specified at the class level. + * + * See [here](https://huggingface.co/docs/transformers/chat_templating) for more information. + * + * **Example:** Applying a chat template to a conversation. + * + * ```javascript + * import { AutoTokenizer } from "@xenova/transformers"; + * + * const tokenizer = await AutoTokenizer.from_pretrained("mistralai/Mistral-7B-Instruct-v0.1"); + * + * const chat = [ + * { "role": "user", "content": "Hello, how are you?" }, + * { "role": "assistant", "content": "I'm doing great. How can I help you today?" }, + * { "role": "user", "content": "I'd like to show off how chat templating works!" }, + * ] + * + * const text = tokenizer.apply_chat_template(chat, { tokenize: false }); + * // "[INST] Hello, how are you? [/INST]I'm doing great. How can I help you today? [INST] I'd like to show off how chat templating works! [/INST]" + * + * const input_ids = tokenizer.apply_chat_template(chat, { tokenize: true, return_tensor: false }); + * // [1, 733, 16289, 28793, 22557, 28725, 910, 460, 368, 28804, 733, 28748, 16289, 28793, 28737, 28742, 28719, 2548, 1598, 28723, 1602, 541, 315, 1316, 368, 3154, 28804, 2, 28705, 733, 16289, 28793, 315, 28742, 28715, 737, 298, 1347, 805, 910, 10706, 5752, 1077, 3791, 28808, 733, 28748, 16289, 28793] + * ``` + * + * @param {Message[]} conversation A list of message objects with `"role"` and `"content"` keys. + * @param {Object} options An optional object containing the following properties: + * @param {string} [options.chat_template=null] A Jinja template to use for this conversion. If + * this is not passed, the model's default chat template will be used instead. + * @param {boolean} [options.add_generation_prompt=false] Whether to end the prompt with the token(s) that indicate + * the start of an assistant message. This is useful when you want to generate a response from the model. + * Note that this argument will be passed to the chat template, and so it must be supported in the + * template for this argument to have any effect. + * @param {boolean} [options.tokenize=true] Whether to tokenize the output. If false, the output will be a string. + * @param {boolean} [options.padding=false] Whether to pad sequences to the maximum length. Has no effect if tokenize is false. + * @param {boolean} [options.truncation=false] Whether to truncate sequences to the maximum length. Has no effect if tokenize is false. + * @param {number} [options.max_length=null] Maximum length (in tokens) to use for padding or truncation. Has no effect if tokenize is false. + * If not specified, the tokenizer's `max_length` attribute will be used as a default. + * @param {boolean} [options.return_tensor=true] Whether to return the output as a Tensor or an Array. Has no effect if tokenize is false. + * @returns {string | Tensor | number[]| number[][]} The tokenized output. + */ + apply_chat_template(conversation, { + chat_template = null, + add_generation_prompt = false, + tokenize = true, + padding = false, + truncation = false, + max_length = null, + return_tensor = true, + } = {}) { + + chat_template ??= this.chat_template ?? this.default_chat_template; + + // Compilation function uses a cache to avoid recompiling the same template + let compiledTemplate = this._compiled_template_cache.get(chat_template); + if (compiledTemplate === undefined) { + compiledTemplate = new Template(chat_template); + this._compiled_template_cache.set(chat_template, compiledTemplate); + } + + const special_tokens_map = Object.create(null); + for (const key of SPECIAL_TOKEN_ATTRIBUTES) { + const value = this.getToken(key); + if (value) { + special_tokens_map[key] = value; + } + } + + const rendered = compiledTemplate.render({ + messages: conversation, + add_generation_prompt: add_generation_prompt, + + ...special_tokens_map, + }); + + if (tokenize) { + return this._call(rendered, { + add_special_tokens: false, + padding, + truncation, + max_length, + return_tensor, + }).input_ids; + } + + return rendered; + } +} + +/** + * BertTokenizer is a class used to tokenize text for BERT models. + * @extends PreTrainedTokenizer + */ +export class BertTokenizer extends PreTrainedTokenizer { + return_token_type_ids = true; +} +/** + * Albert tokenizer + * @extends PreTrainedTokenizer + */ +export class AlbertTokenizer extends PreTrainedTokenizer { + return_token_type_ids = true; +} +export class MobileBertTokenizer extends PreTrainedTokenizer { + return_token_type_ids = true; +} +export class SqueezeBertTokenizer extends PreTrainedTokenizer { + return_token_type_ids = true; +} +export class DebertaTokenizer extends PreTrainedTokenizer { + return_token_type_ids = true; +} +export class DebertaV2Tokenizer extends PreTrainedTokenizer { + return_token_type_ids = true; +} +export class HerbertTokenizer extends PreTrainedTokenizer { + return_token_type_ids = true; +} +export class ConvBertTokenizer extends PreTrainedTokenizer { + return_token_type_ids = true; +} +export class RoFormerTokenizer extends PreTrainedTokenizer { + return_token_type_ids = true; +} +export class DistilBertTokenizer extends PreTrainedTokenizer { } +export class CamembertTokenizer extends PreTrainedTokenizer { } +export class XLMTokenizer extends PreTrainedTokenizer { + return_token_type_ids = true; + + constructor(tokenizerJSON, tokenizerConfig) { + super(tokenizerJSON, tokenizerConfig); + console.warn('WARNING: `XLMTokenizer` is not yet supported by Hugging Face\'s "fast" tokenizers library. Therefore, you may experience slightly inaccurate results.') + } +} +export class ElectraTokenizer extends PreTrainedTokenizer { + return_token_type_ids = true; +} + +export class T5Tokenizer extends PreTrainedTokenizer { } +export class GPT2Tokenizer extends PreTrainedTokenizer { + _default_chat_template = `{% for message in messages %}" "{{ message.content }}{{ eos_token }}" "{% endfor %}` +} +export class BartTokenizer extends PreTrainedTokenizer { } +export class MBartTokenizer extends PreTrainedTokenizer { + constructor(tokenizerJSON, tokenizerConfig) { + super(tokenizerJSON, tokenizerConfig); + + this.languageRegex = /^[a-z]{2}_[A-Z]{2}$/; + this.language_codes = this.special_tokens.filter(x => this.languageRegex.test(x)); + this.lang_to_token = x => x; // Identity function + } + + /** + * Helper function to build translation inputs for an `MBartTokenizer`. + * @param {string|string[]} raw_inputs The text to tokenize. + * @param {Object} tokenizer_options Options to be sent to the tokenizer + * @param {Object} generate_kwargs Generation options. + * @returns {Object} Object to be passed to the model. + */ + _build_translation_inputs(raw_inputs, tokenizer_options, generate_kwargs) { + return _build_translation_inputs(this, raw_inputs, tokenizer_options, generate_kwargs); + } +} +export class MBart50Tokenizer extends MBartTokenizer { } // NOTE: extends MBartTokenizer + +export class RobertaTokenizer extends PreTrainedTokenizer { } + +export class BloomTokenizer extends GPT2Tokenizer { // NOTE: `GPT2Tokenizer` to get the correct chat template + + constructor(tokenizerJSON, tokenizerConfig) { + // Override the default (invalid) regex of the pretokenizer. + // For more information, see https://github.com/xenova/transformers.js/issues/94 + const splitChars = '.,!?\u2026\u3002\uff0c\u3001\u0964\u06d4\u060c'; + const patternObject = tokenizerJSON.pre_tokenizer?.pretokenizers[0]?.pattern; + if (patternObject && patternObject.Regex === ` ?[^(\\s|[${splitChars}])]+`) { + patternObject.Regex = ` ?[^\\s${splitChars}]+`; + } + super(tokenizerJSON, tokenizerConfig); + } +} + +const SPIECE_UNDERLINE = "▁"; + +export class LlamaTokenizer extends PreTrainedTokenizer { + _default_chat_template = `{% if messages[0]['role'] == 'system' %}{% set loop_messages = messages[1:] %}{% set system_message = messages[0]['content'] %}{% elif USE_DEFAULT_PROMPT == true and not '<>' in messages[0]['content'] %}{% set loop_messages = messages %}{% set system_message = 'DEFAULT_SYSTEM_MESSAGE' %}{% else %}{% set loop_messages = messages %}{% set system_message = false %}{% endif %}{% for message in loop_messages %}{% if (message['role'] == 'user') != (loop.index0 % 2 == 0) %}{{ raise_exception('Conversation roles must alternate user/assistant/user/assistant/...') }}{% endif %}{% if loop.index0 == 0 and system_message != false %}{% set content = '<>\n' + system_message + '\n<>\n\n' + message['content'] %}{% else %}{% set content = message['content'] %}{% endif %}{% if message['role'] == 'user' %}{{ bos_token + '[INST] ' + content.strip() + ' [/INST]' }}{% elif message['role'] == 'system' %}{{ '<>\n' + content.strip() + '\n<>\n\n' }}{% elif message['role'] == 'assistant' %}{{ ' ' + content.strip() + ' ' + eos_token }}{% endif %}{% endfor %}` + + DEFAULT_SYSTEM_PROMPT = + "You are a helpful, respectful and honest assistant. Always answer as helpfully as possible, while being safe. Your " + + "answers should not include any harmful, unethical, racist, sexist, toxic, dangerous, or illegal content. Please ensure " + + "that your responses are socially unbiased and positive in nature.\n\n" + + "If a question does not make any sense, or is not factually coherent, explain why instead of answering something not " + + "correct. If you don't know the answer to a question, please don't share false information." + + constructor(tokenizerJSON, tokenizerConfig) { + super(tokenizerJSON, tokenizerConfig); + this.use_default_system_prompt = tokenizerConfig.use_default_system_prompt ?? false; + + this.legacy = tokenizerConfig.legacy ?? true; + if (!this.legacy) { + // See https://github.com/huggingface/transformers/pull/24565 for more information + this.normalizer = null; + this.pre_tokenizer = new MetaspacePreTokenizer({ + replacement: SPIECE_UNDERLINE, + add_prefix_space: true, + prepend_scheme: "first", + }); + } + } + + /** + * Helper function to handle legacy encoding of SPM tokenizers. + * Adapted from https://github.com/huggingface/transformers/blob/e6dcf8abd6f65bb4b6dfc1831b20d9ba49ce00e2/src/transformers/models/t5/tokenization_t5.py#L374-L387 + * @param {string} text The text to encode. + * @returns {string[]} The encoded tokens. + */ + _encode_text(text) { + if (text === null) return null; + + if (this.legacy || text.length === 0) { + return super._encode_text(text); + } + + let tokens = super._encode_text(SPIECE_UNDERLINE + text.replaceAll(SPIECE_UNDERLINE, " ")); + if (tokens.length > 1 && tokens[0] === SPIECE_UNDERLINE && this.special_tokens.includes(tokens[1])) { + tokens = tokens.slice(1); + } + return tokens; + } + + get default_chat_template() { + return super.default_chat_template + .replaceAll('USE_DEFAULT_PROMPT', this.use_default_system_prompt ? 'true' : 'false') + .replaceAll('DEFAULT_SYSTEM_MESSAGE', this.DEFAULT_SYSTEM_PROMPT.replaceAll("\n", "\\n").replaceAll("'", "\\'")); + } +} +export class CodeLlamaTokenizer extends LlamaTokenizer { } // NOTE: `LlamaTokenizer` to get the correct chat template + +export class XLMRobertaTokenizer extends PreTrainedTokenizer { } +export class MPNetTokenizer extends PreTrainedTokenizer { } + +export class FalconTokenizer extends PreTrainedTokenizer { } + +export class GPTNeoXTokenizer extends PreTrainedTokenizer { } + +export class EsmTokenizer extends PreTrainedTokenizer { } + +/** + * Helper function to build translation inputs for an `NllbTokenizer` or `M2M100Tokenizer`. + * @param {PreTrainedTokenizer} self The tokenizer instance. + * @param {string|string[]} raw_inputs The text to tokenize. + * @param {Object} tokenizer_options Options to be sent to the tokenizer + * @param {Object} generate_kwargs Generation options. + * @returns {Object} Object to be passed to the model. + * @private + */ +function _build_translation_inputs(self, raw_inputs, tokenizer_options, generate_kwargs) { + if (!('language_codes' in self) || !Array.isArray(self.language_codes)) { + throw new Error('Tokenizer must have `language_codes` attribute set and it should be an array of language ids.') + } + if (!('languageRegex' in self) || !(self.languageRegex instanceof RegExp)) { + throw new Error('Tokenizer must have `languageRegex` attribute set and it should be a regular expression.') + } + if (!('lang_to_token' in self) || typeof self.lang_to_token !== 'function') { + throw new Error('Tokenizer must have `lang_to_token` attribute set and it should be a function.') + } + const src_lang_token = generate_kwargs.src_lang; + const tgt_lang_token = generate_kwargs.tgt_lang; + + // Check that the target language is valid: + if (!self.language_codes.includes(tgt_lang_token)) { + throw new Error(`Target language code "${tgt_lang_token}" is not valid. Must be one of: {${self.language_codes.join(', ')}}`); + } + + // Allow `src_lang` to be optional. If not set, we'll use the tokenizer's default. + if (src_lang_token !== undefined) { + // Check that the source language is valid: + if (!self.language_codes.includes(src_lang_token)) { + throw new Error(`Source language code "${src_lang_token}" is not valid. Must be one of: {${self.language_codes.join(', ')}}`); + } + + // In the same way as the Python library, we override the post-processor + // to force the source language to be first: + for (const item of self.post_processor.config.single) { + if ('SpecialToken' in item && self.languageRegex.test(item.SpecialToken.id)) { + item.SpecialToken.id = self.lang_to_token(src_lang_token); + break; + } + } + // TODO: Do the same for pair? + } + + // Override the `forced_bos_token_id` to force the correct language + generate_kwargs.forced_bos_token_id = self.model.convert_tokens_to_ids([self.lang_to_token(tgt_lang_token)])[0]; + + return self._call(raw_inputs, tokenizer_options); +} + +/** + * The NllbTokenizer class is used to tokenize text for NLLB ("No Language Left Behind") models. + * + * No Language Left Behind (NLLB) is a first-of-its-kind, AI breakthrough project + * that open-sources models capable of delivering high-quality translations directly + * between any pair of 200+ languages — including low-resource languages like Asturian, + * Luganda, Urdu and more. It aims to help people communicate with anyone, anywhere, + * regardless of their language preferences. For more information, check out their + * [paper](https://arxiv.org/abs/2207.04672). + * + * For a list of supported languages (along with their language codes), + * @see {@link https://github.com/facebookresearch/flores/blob/main/flores200/README.md#languages-in-flores-200} + */ +export class NllbTokenizer extends PreTrainedTokenizer { + + constructor(tokenizerJSON, tokenizerConfig) { + super(tokenizerJSON, tokenizerConfig); + + this.languageRegex = /^[a-z]{3}_[A-Z][a-z]{3}$/; + this.language_codes = this.special_tokens.filter(x => this.languageRegex.test(x)); + this.lang_to_token = x => x; // Identity function + } + + /** + * Helper function to build translation inputs for an `NllbTokenizer`. + * @param {string|string[]} raw_inputs The text to tokenize. + * @param {Object} tokenizer_options Options to be sent to the tokenizer + * @param {Object} generate_kwargs Generation options. + * @returns {Object} Object to be passed to the model. + */ + _build_translation_inputs(raw_inputs, tokenizer_options, generate_kwargs) { + return _build_translation_inputs(this, raw_inputs, tokenizer_options, generate_kwargs); + } +} + +/** + * The M2M100Tokenizer class is used to tokenize text for M2M100 ("Many-to-Many") models. + * + * M2M100 is a multilingual encoder-decoder (seq-to-seq) model trained for Many-to-Many + * multilingual translation. It was introduced in this [paper](https://arxiv.org/abs/2010.11125) + * and first released in [this](https://github.com/pytorch/fairseq/tree/master/examples/m2m_100) repository. + * + * For a list of supported languages (along with their language codes), + * @see {@link https://huggingface.co/facebook/m2m100_418M#languages-covered} + */ +export class M2M100Tokenizer extends PreTrainedTokenizer { + constructor(tokenizerJSON, tokenizerConfig) { + super(tokenizerJSON, tokenizerConfig); + + this.languageRegex = /^__[a-z]{2,3}__$/; + this.language_codes = this.special_tokens + .filter(x => this.languageRegex.test(x)) + .map(x => x.slice(2, -2)); + this.lang_to_token = x => `__${x}__`; + } + + /** + * Helper function to build translation inputs for an `M2M100Tokenizer`. + * @param {string|string[]} raw_inputs The text to tokenize. + * @param {Object} tokenizer_options Options to be sent to the tokenizer + * @param {Object} generate_kwargs Generation options. + * @returns {Object} Object to be passed to the model. + */ + _build_translation_inputs(raw_inputs, tokenizer_options, generate_kwargs) { + return _build_translation_inputs(this, raw_inputs, tokenizer_options, generate_kwargs); + } +} + + +const WHISPER_LANGUAGES = [ + ["en", "english"], + ["zh", "chinese"], + ["de", "german"], + ["es", "spanish"], + ["ru", "russian"], + ["ko", "korean"], + ["fr", "french"], + ["ja", "japanese"], + ["pt", "portuguese"], + ["tr", "turkish"], + ["pl", "polish"], + ["ca", "catalan"], + ["nl", "dutch"], + ["ar", "arabic"], + ["sv", "swedish"], + ["it", "italian"], + ["id", "indonesian"], + ["hi", "hindi"], + ["fi", "finnish"], + ["vi", "vietnamese"], + ["he", "hebrew"], + ["uk", "ukrainian"], + ["el", "greek"], + ["ms", "malay"], + ["cs", "czech"], + ["ro", "romanian"], + ["da", "danish"], + ["hu", "hungarian"], + ["ta", "tamil"], + ["no", "norwegian"], + ["th", "thai"], + ["ur", "urdu"], + ["hr", "croatian"], + ["bg", "bulgarian"], + ["lt", "lithuanian"], + ["la", "latin"], + ["mi", "maori"], + ["ml", "malayalam"], + ["cy", "welsh"], + ["sk", "slovak"], + ["te", "telugu"], + ["fa", "persian"], + ["lv", "latvian"], + ["bn", "bengali"], + ["sr", "serbian"], + ["az", "azerbaijani"], + ["sl", "slovenian"], + ["kn", "kannada"], + ["et", "estonian"], + ["mk", "macedonian"], + ["br", "breton"], + ["eu", "basque"], + ["is", "icelandic"], + ["hy", "armenian"], + ["ne", "nepali"], + ["mn", "mongolian"], + ["bs", "bosnian"], + ["kk", "kazakh"], + ["sq", "albanian"], + ["sw", "swahili"], + ["gl", "galician"], + ["mr", "marathi"], + ["pa", "punjabi"], + ["si", "sinhala"], + ["km", "khmer"], + ["sn", "shona"], + ["yo", "yoruba"], + ["so", "somali"], + ["af", "afrikaans"], + ["oc", "occitan"], + ["ka", "georgian"], + ["be", "belarusian"], + ["tg", "tajik"], + ["sd", "sindhi"], + ["gu", "gujarati"], + ["am", "amharic"], + ["yi", "yiddish"], + ["lo", "lao"], + ["uz", "uzbek"], + ["fo", "faroese"], + ["ht", "haitian creole"], + ["ps", "pashto"], + ["tk", "turkmen"], + ["nn", "nynorsk"], + ["mt", "maltese"], + ["sa", "sanskrit"], + ["lb", "luxembourgish"], + ["my", "myanmar"], + ["bo", "tibetan"], + ["tl", "tagalog"], + ["mg", "malagasy"], + ["as", "assamese"], + ["tt", "tatar"], + ["haw", "hawaiian"], + ["ln", "lingala"], + ["ha", "hausa"], + ["ba", "bashkir"], + ["jw", "javanese"], + ["su", "sundanese"], +] + +// @ts-ignore +const WHISPER_LANGUAGE_MAPPING = new Map(WHISPER_LANGUAGES); +// @ts-ignore +const WHISPER_TO_LANGUAGE_CODE_MAPPING = new Map([ + ...WHISPER_LANGUAGES.map(([k, v]) => [v, k]), + ...[ + ["burmese", "my"], + ["valencian", "ca"], + ["flemish", "nl"], + ["haitian", "ht"], + ["letzeburgesch", "lb"], + ["pushto", "ps"], + ["panjabi", "pa"], + ["moldavian", "ro"], + ["moldovan", "ro"], + ["sinhalese", "si"], + ["castilian", "es"], + ] +]); + +/** + * WhisperTokenizer tokenizer + * @extends PreTrainedTokenizer + */ +export class WhisperTokenizer extends PreTrainedTokenizer { + _default_chat_template = `{% for message in messages %}" "{{ message.content }}{{ eos_token }}" "{% endfor %}`; + + /** + * Decodes automatic speech recognition (ASR) sequences. + * @param {Array<{tokens: number[], token_timestamps?: number[], stride: number[]}>} sequences The sequences to decode. + * @param {Object} options The options to use for decoding. + * @returns {Array, text: string}>}>} The decoded sequences. + */ + _decode_asr(sequences, { + return_timestamps = false, + return_language = false, + time_precision = null, + force_full_sequences = true + } = {}) { + // Set force_full_sequences=false if you want streaming + // TODO add support for `return_language` + + // Internal method meant to only be used by asr pipeline. + // Handles all the little quirks specific to whisper to handle + // the various options not allowed in other seq2seq models + + // =========== Overview ============ + // - iterate over all outputs + // - all tokens within output + // - Each token can be + // - language token + // - special token + // - timestamp token + // - text token + // - We accumulate the text tokens. + // - We split on end timestamps + // - Lots of complexity comes from stride and timestamps + + if (time_precision === null) { + throw Error("Must specify time_precision") + } + let last_language = null; + + const returnWordTimestamps = return_timestamps === "word"; + + function new_chunk() { + return { "language": last_language, "timestamp": [null, null], "text": "" }; + } + + // Welcome to the state machine! + const chunks = []; + let chunk = new_chunk(); + let time_offset = 0.0; + const timestamp_begin = this.model.convert_tokens_to_ids(["<|notimestamps|>"])[0] + 1; + + let previous_tokens = []; + let previous_token_timestamps = []; + + let skip = false; + let right_stride_start = null; + + + const all_special_ids = new Set(this.all_special_ids); + + for (const output of sequences) { + // NOTE: python version has batches, so it uses [0] + const token_ids = output.tokens; + const token_timestamps = returnWordTimestamps ? output.token_timestamps : null; + + // These keep track of timestamps within strides, which need + // to be skipped and resolve all tokens in a single chunk. + let last_timestamp = null; + let first_timestamp = timestamp_begin; + + if ("stride" in output) { + const [chunk_len, stride_left, stride_right] = output.stride; + + // Offset the timings to account for the other `model_outputs`. + time_offset -= stride_left; + right_stride_start = chunk_len - stride_right; + + // Keeping track of timestamps within strides + // We're going to NOT split on those, and delay until we're + // out of BOTH stride. Otherwise lots of issues occur and + // corner cases + if (stride_left) { + first_timestamp = stride_left / time_precision + timestamp_begin; + } + + if (stride_right) { + for (let i = token_ids.length - 1; i >= 0; --i) { + const token = token_ids[i]; + if (token >= timestamp_begin) { + // There can be several token in the right stride + // But the last one is ALWAYS going to be skipped + if (last_timestamp !== null && (token - timestamp_begin) * time_precision < right_stride_start) { + break; + } + last_timestamp = token; + } + } + } + } + + let current_tokens = []; + let current_token_timestamps = []; + + // - all tokens within output + for (let i = 0; i < token_ids.length; ++i) { + const token = token_ids[i]; + // 4 possible states for each token + // - 1/ Language code + // - 2/ all other special tokens (which we ignore) + // - 3/ Timestamp + // - 4/ Regular text + + if (all_special_ids.has(token)) { + const text = this.decode([token]); + const language = WHISPER_LANGUAGE_MAPPING.get(text.slice(2, -2)); + + if (language !== undefined) { + // 1/ Indeed some language + // TODO Handle when language is different from the previous + // one, and we cannot use timestamped tokens to create chunks + if (last_language !== null && language !== last_language && !return_timestamps) { + previous_tokens.push(current_tokens); + const resolved_tokens = this.findLongestCommonSequence(previous_tokens)[0]; + const resolved_text = this.decode(resolved_tokens); + chunk.text = resolved_text; + chunks.push(chunk); + + // Flush all our temporary context + previous_tokens = []; + current_tokens = []; + chunk = new_chunk(); + } + + last_language = chunk.language = language; + } else { + // 2/ This is a regular special token, ignoring it + } + } else if (token >= timestamp_begin) { + // 3/ Timestamp token + const time = (token - timestamp_begin) * time_precision + time_offset; + const rounded_time = round(time, 2); + + if (last_timestamp !== null && token >= last_timestamp) { + // Whisper outputted a timestamp token, but it falls within + // our stride, so we're going to skip it for the time being + // and resolve this later + // Skip is necessary because timestamp tokens always come + // by pair, so we need to skip the next one too (which would mark the start of another chunk). + skip = true; + } else if (skip || (previous_tokens.length > 0 && token < first_timestamp)) { + skip = false; + } else if (chunk.timestamp[0] === null) { + chunk.timestamp[0] = rounded_time; + } else { + // This is the end of the timestamp chunk + if (rounded_time === chunk.timestamp[0]) { + // This is a bug in timestamp token output + // where we're taking the duplicate token + // as a stop where it should be a start. + // This is an issue in the underlying model output + // Let's just skip it so it becomes de-factor a start agin + } else { + chunk.timestamp[1] = rounded_time; + + // Handling merges + previous_tokens.push(current_tokens) + + if (returnWordTimestamps) { + previous_token_timestamps.push(current_token_timestamps); + } + const [resolved_tokens, resolved_token_timestamps] = this.findLongestCommonSequence( + previous_tokens, previous_token_timestamps + ) + + const resolved_text = this.decode(resolved_tokens) + chunk.text = resolved_text + + if (returnWordTimestamps) { + chunk.words = this.collateWordTimestamps( + resolved_tokens, resolved_token_timestamps, last_language, + ) + } + + chunks.push(chunk) + + // Flush all our temporary context + previous_tokens = [] + current_tokens = [] + previous_token_timestamps = [] + current_token_timestamps = [] + chunk = new_chunk() + } + } + + } else { + // 4/ Regular token + // We just append to the list of all tokens so we can handle + // merges later and decode into text. + current_tokens.push(token) + + if (returnWordTimestamps) { + let start_time = round(token_timestamps[i] + time_offset, 2); + + let end_time; + if (i + 1 < token_timestamps.length) { + end_time = round(token_timestamps[i + 1] + time_offset, 2); + } else { + // should never happen + end_time = null; + } + current_token_timestamps.push([start_time, end_time]); + } + + } + } + + if ('stride' in output) { + const [chunk_len, stride_left, stride_right] = output.stride; + time_offset += chunk_len - stride_right + } + + // Leftover tokens + if (current_tokens.length > 0) { + previous_tokens.push(current_tokens) + if (returnWordTimestamps) { + previous_token_timestamps.push(current_token_timestamps); + } + } else if (previous_tokens.every(p => p.length === 0)) { + // Flushing previous tokens (END)" + chunk = new_chunk() + previous_tokens = [] + current_tokens = [] + previous_token_timestamps = []; + current_token_timestamps = []; + } + + } + + if (previous_tokens.length > 0) { + if (force_full_sequences && return_timestamps) { + // Last token should always be timestamps, so there shouldn't be + // leftover + throw new Error( + "Whisper did not predict an ending timestamp, which can happen if audio is cut off in the middle of a word. " + + "Also make sure WhisperTimeStampLogitsProcessor was used during generation." + ); + } + + // Happens when we don't use timestamps + const [resolved_tokens, resolved_token_timestamps] = this.findLongestCommonSequence(previous_tokens, previous_token_timestamps); + + // Flushing previous tokens (FINAL) + const resolved_text = this.decode(resolved_tokens); + chunk.text = resolved_text; + if (returnWordTimestamps) { + chunk.words = this.collateWordTimestamps( + resolved_tokens, resolved_token_timestamps, last_language, + ) + } + chunks.push(chunk); + } + + let optional = Object.create(null); + + // Preparing and cleaning up the pipeline output + const full_text = chunks.map(chunk => chunk.text).join(''); + if (return_timestamps || return_language) { + for (let i = 0; i < chunks.length; ++i) { + const chunk = chunks[i]; + if (!return_timestamps) { + delete chunk["timestamp"]; + } + + if (!return_language) { + delete chunk["language"]; + } + } + if (returnWordTimestamps) { + const new_chunks = []; + for (const chunk of chunks) { + for (const word of chunk.words) { + new_chunks.push(word); + } + } + optional = { "chunks": new_chunks }; + } else { + optional = { "chunks": chunks }; + } + } + return [full_text, optional]; + + } + + /** + * Finds the longest common sequence among the provided sequences. + * @param {number[][]} sequences An array of sequences of token ids to compare. + * @returns {number[][]} The longest common sequence found. + * @throws {Error} If there is a bug within the function. + * @private + */ + findLongestCommonSequence(sequences, token_timestamp_sequences = null) { + // It would be much harder to do O(n) because of fault tolerance. + // We actually have a really good property which is that the total sequence + // MUST be those subsequences in order. + // If token_timestamp_sequences is provided, will split those sequences in + // exactly the same way. + let leftSequence = sequences[0]; + let leftLength = leftSequence.length; + let totalSequence = []; + + const use_token_timestamp_sequences = Array.isArray(token_timestamp_sequences) && token_timestamp_sequences.length > 0; + let total_token_timestamp_sequence = use_token_timestamp_sequences ? [] : null; + let left_token_timestamp_sequence = use_token_timestamp_sequences ? token_timestamp_sequences[0] : null; + for (let i = 1; i < sequences.length; ++i) { + const rightSequence = sequences[i]; + let max = 0.0; + let maxIndices = [leftLength, leftLength, 0, 0]; + // Here we're sliding matches + // [a, b, c, d] + // [c, d, f] + // = [c] == [d] + + // [a, b, c, d] + // [c, d, f] + // = [c, d] == [c, d] + + + // [a, b, c, d] + // [c, d, f] + + // = [b, c, d] == [c, d, f] + + // [a, b, c, d] + // [c, d, f] + + // [a, b, c] == [c, d, f] + + // [a, b, c, d] + // [d, f] + + // [a, b] == [d, f] + + // [a, b, c, d] + // [f] + + // [a] == [f] + + const rightLength = rightSequence.length; + for (let j = 1; j < leftLength + rightLength; ++j) { + const eps = j / 10000.0; + const leftStart = Math.max(0, leftLength - j); + const leftStop = Math.min(leftLength, leftLength + rightLength - j); + const left = leftSequence.slice(leftStart, leftStop); + const rightStart = Math.max(0, j - leftLength); + const rightStop = Math.min(rightLength, j); + const right = rightSequence.slice(rightStart, rightStop); + if (left.length !== right.length) { + throw new Error("There is a bug within whisper `decode_asr` function, please report it. Dropping to prevent bad inference."); + } + const matches = left.filter((elem, idx) => elem === right[idx]).length; + const matching = matches / j + eps; + if (matches > 1 && matching > max) { + max = matching; + maxIndices = [leftStart, leftStop, rightStart, rightStop]; + } + } + const [leftStart, leftStop, rightStart, rightStop] = maxIndices; + const leftMid = Math.floor((leftStop + leftStart) / 2); + const rightMid = Math.floor((rightStop + rightStart) / 2); + totalSequence.push(...leftSequence.slice(0, leftMid)); + leftSequence = rightSequence.slice(rightMid); + leftLength = leftSequence.length; + + if (use_token_timestamp_sequences) { + total_token_timestamp_sequence.push(...left_token_timestamp_sequence.slice(0, leftMid)); + left_token_timestamp_sequence = token_timestamp_sequences[i].slice(rightMid); + } + } + totalSequence.push(...leftSequence); + + if (use_token_timestamp_sequences) { + total_token_timestamp_sequence.push(...left_token_timestamp_sequence); + return [totalSequence, total_token_timestamp_sequence]; + } else { + return [totalSequence, []]; + } + } + + /** @private */ + collateWordTimestamps(tokens, token_timestamps, language) { + + const [words, _, token_indices] = this.combineTokensIntoWords(tokens, language); + + const timings = []; + for (let i = 0; i < words.length; ++i) { + const indices = token_indices[i]; + timings.push({ + text: words[i], + timestamp: [ + token_timestamps[indices.at(0)][0], + token_timestamps[indices.at(-1)][1], + ], + }); + } + return timings; + } + + /** + * Groups tokens by word. Returns a tuple containing a list of strings with the words, + * and a list of `token_id` sequences with the tokens making up each word. + * @param {number[]} tokens + * @param {string} [language] + * @param {string} prepend_punctionations + * @param {string} append_punctuations + * + * @private + */ + combineTokensIntoWords(tokens, language, prepend_punctionations = "\"'“¡¿([{-", append_punctuations = "\"'.。,,!!??::”)]}、") { + language = language ?? 'english'; + + let words, word_tokens, token_indices; + + if (["chinese", "japanese", "thai", "lao", "myanmar"].includes(language)) { + // These languages don't typically use spaces. + [words, word_tokens, token_indices] = this.splitTokensOnUnicode(tokens) + } else { + [words, word_tokens, token_indices] = this.splitTokensOnSpaces(tokens) + } + + return this.mergePunctuations(words, word_tokens, token_indices, prepend_punctionations, append_punctuations); + } + + /** @type {PreTrainedTokenizer['decode']} */ + decode( + token_ids, + decode_args, + ) { + let text; + // @ts-ignore + if (decode_args && decode_args.decode_with_timestamps) { + if (token_ids instanceof Tensor) { + token_ids = prepareTensorForDecode(token_ids); + } + text = this.decodeWithTimestamps(token_ids, decode_args); + } else { + text = super.decode(token_ids, decode_args); + } + // TODO: implement offsets + // if (decode_args.output_offsets) { + // let offsets = this.computeOffsets + // } + return text; + } + + /** + * @param {number[]} token_ids List of token IDs to decode. + * @param {Object} decode_args Optional arguments for decoding + * @private + */ + decodeWithTimestamps(token_ids, decode_args) { + const time_precision = decode_args?.time_precision ?? 0.02; + + const timestamp_begin = Array.from(this.all_special_ids).at(-1) + 1; + /**@type {Array} */ + let outputs = [[]]; + for (const token of token_ids) { + if (token >= timestamp_begin) { + const timestamp = round((token - timestamp_begin) * time_precision, 2); + outputs.push(`<|${timestamp}|>`); + outputs.push([]); + } else { + outputs[outputs.length - 1].push(token); + } + } + outputs = outputs.map( + s => { + if (typeof s === 'string') { + return s; + } else { + return super.decode(s, decode_args); + } + } + ) + + return outputs.join(''); + } + + /** + * Combine tokens into words by splitting at any position where the tokens are decoded as valid unicode points. + * @param {number[]} tokens + * @returns {*} + * @private + */ + splitTokensOnUnicode(tokens) { + const decoded_full = this.decode(tokens, { + // @ts-ignore + decode_with_timestamps: true, + }); + const replacement_char = '\uFFFD'; + + const words = [] + const word_tokens = [] + const token_indices = [] + let current_tokens = [] + let current_indices = [] + let unicode_offset = 0 + + for (let token_idx = 0; token_idx < tokens.length; ++token_idx) { + const token = tokens[token_idx]; + + current_tokens.push(token); + current_indices.push(token_idx); + + const decoded = this.decode(current_tokens, { + // @ts-ignore + decode_with_timestamps: true, + }); + + if (!decoded.includes(replacement_char) || decoded_full[unicode_offset + decoded.indexOf(replacement_char)] === replacement_char) { + words.push(decoded) + word_tokens.push(current_tokens) + token_indices.push(current_indices) + current_tokens = [] + current_indices = [] + unicode_offset += decoded.length; + } + + } + + return [words, word_tokens, token_indices] + } + + /** + * Combine tokens into words by splitting at whitespace and punctuation tokens. + * @param {number[]} tokens + * @private + */ + splitTokensOnSpaces(tokens) { + + const [subwords, subword_tokens_list, subword_indices_list] = this.splitTokensOnUnicode(tokens); + + const words = [] + const word_tokens = [] + const token_indices = [] + + const punctuationRegex = new RegExp(`^[${PUNCTUATION_REGEX}]$`, 'gu'); + + for (let i = 0; i < subwords.length; ++i) { + + const subword = subwords[i]; + const subword_tokens = subword_tokens_list[i]; + const subword_indices = subword_indices_list[i]; + + // @ts-ignore + const special = subword_tokens[0] >= this.model.tokens_to_ids.get('<|endoftext|>'); + const with_space = subword.startsWith(' '); + const trimmed = subword.trim(); + const punctuation = punctuationRegex.test(trimmed); + + if (special || with_space || punctuation || words.length === 0) { + words.push(subword); + word_tokens.push(subword_tokens); + token_indices.push(subword_indices); + } else { + const ix = words.length - 1; + words[ix] += subword; + word_tokens[ix].push(...subword_tokens); + token_indices[ix].push(...subword_indices); + } + } + + return [words, word_tokens, token_indices]; + + } + + /** + * Merges punctuation tokens with neighboring words. + * @param {string[]} words + * @param {number[][]} tokens + * @param {number[][]} indices + * @param {string} prepended + * @param {string} appended + * @private + */ + mergePunctuations(words, tokens, indices, prepended, appended) { + + const newWords = structuredClone(words); + const newTokens = structuredClone(tokens); + const newIndices = structuredClone(indices); + + + // prepend punctuations + let i = newWords.length - 2; + let j = newWords.length - 1; + + while (i >= 0) { + if (newWords[i].startsWith(' ') && prepended.includes(newWords[i].trim())) { + newWords[j] = newWords[i] + newWords[j]; + newTokens[j] = mergeArrays(newTokens[i], newTokens[j]); + newIndices[j] = mergeArrays(newIndices[i], newIndices[j]); + newWords[i] = ''; + newTokens[i] = []; + newIndices[i] = []; + } else { + j = i; + } + --i; + } + + // append punctuations + i = 0; + j = 1; + while (j < newWords.length) { + if (!newWords[i].endsWith(' ') && appended.includes(newWords[j])) { + newWords[i] += newWords[j]; + newTokens[i] = mergeArrays(newTokens[i], newTokens[j]); + newIndices[i] = mergeArrays(newIndices[i], newIndices[j]); + newWords[j] = ''; + newTokens[j] = []; + newIndices[j] = []; + } else { + i = j; + } + ++j; + } + + return [ + newWords.filter(x => x), + newTokens.filter(x => x.length > 0), + newIndices.filter(x => x.length > 0), + ] + } + + /** + * Helper function to build translation inputs for a `WhisperTokenizer`, + * depending on the language, task, and whether to predict timestamp tokens. + * + * Used to override the prefix tokens appended to the start of the label sequence. + * + * **Example: Get ids for a language** + * ```javascript + * // instantiate the tokenizer and set the prefix token to Spanish + * const tokenizer = await WhisperTokenizer.from_pretrained('Xenova/whisper-tiny'); + * const forced_decoder_ids = tokenizer.get_decoder_prompt_ids({ language: 'spanish' }); + * // [(1, 50262), (2, 50363)] + * ``` + * + * @param {Object} options Options to generate the decoder prompt. + * @param {string} [options.language] The language of the transcription text. + * The corresponding language id token is appended to the start of the sequence for multilingual + * speech recognition and speech translation tasks, e.g. for "Spanish" the token "<|es|>" is appended + * to the start of sequence. + * @param {string} [options.task] Task identifier to append at the start of sequence (if any). + * This should be used for mulitlingual fine-tuning, with "transcribe" for speech recognition and + * "translate" for speech translation. + * @param {boolean} [options.no_timestamps] Whether to add the <|notimestamps|> token at the start of the sequence. + * @returns {number[][]} The decoder prompt ids. + */ + get_decoder_prompt_ids({ + language = null, + task = null, + no_timestamps = true, + } = {}) { + + // <|lang_id|> <|task|> <|notimestamps|> + + const forced_decoder_ids = []; + + if (language) { + // User wishes to specify the language + language = language.toLowerCase(); + + // Map to code from user-friendly name (e.g., "english" -> "en") + let language_code = WHISPER_TO_LANGUAGE_CODE_MAPPING.get(language); + + if (language_code === undefined) { + // User provided something that is not a language name + + if (WHISPER_LANGUAGE_MAPPING.has(language)) { + // User provided the language code directly (e.g., "en") + language_code = language; + + } else { + // User provided something that is not a language code or name + const is_language_code = language.length === 2; + const langs = is_language_code ? WHISPER_LANGUAGE_MAPPING.keys() : WHISPER_LANGUAGE_MAPPING.values(); + + throw new Error(`Language "${language}" is not supported. Must be one of: ${JSON.stringify(langs)}`); + } + } + + const language_token_id = this.model.tokens_to_ids.get(`<|${language_code}|>`); + if (language_token_id === undefined) { + throw new Error(`Unable to find language "${language_code}" in model vocabulary. Please report this issue at https://github.com/xenova/transformers.js/issues/new/choose.`) + } + + forced_decoder_ids.push(language_token_id); + } else { + // No token will be forced, which leaves the model to predict the language + forced_decoder_ids.push(null); + } + + if (task) { + task = task.toLowerCase(); + if (task !== 'transcribe' && task !== 'translate') { + throw new Error(`Task "${task}" is not supported. Must be one of: ["transcribe", "translate"]`); + } + + const task_token_id = this.model.tokens_to_ids.get(`<|${task}|>`); + if (task_token_id === undefined) { + throw new Error(`Unable to find task "${task}" in model vocabulary. Please report this issue at https://github.com/xenova/transformers.js/issues/new/choose.`) + } + + forced_decoder_ids.push(task_token_id); + } else { + // No token will be forced, which leaves the model to predict the task + forced_decoder_ids.push(null); + } + + if (no_timestamps) { + const no_timestamps_id = this.model.tokens_to_ids.get(`<|notimestamps|>`); + if (no_timestamps_id === undefined) { + throw new Error('Unable to find "<|notimestamps|>" in model vocabulary. Please report this issue at https://github.com/xenova/transformers.js/issues/new/choose.') + } + + forced_decoder_ids.push(no_timestamps_id); + } + + return forced_decoder_ids.map((x, i) => [i + 1, x]).filter(x => x[1] !== null); + + } +} +export class CodeGenTokenizer extends PreTrainedTokenizer { } +export class CLIPTokenizer extends PreTrainedTokenizer { } +export class SiglipTokenizer extends PreTrainedTokenizer { } + +/** + * @todo This model is not yet supported by Hugging Face's "fast" tokenizers library (https://github.com/huggingface/tokenizers). + * Therefore, this implementation (which is based on fast tokenizers) may produce slightly inaccurate results. + */ +export class MarianTokenizer extends PreTrainedTokenizer { + /** + * Create a new MarianTokenizer instance. + * @param {Object} tokenizerJSON The JSON of the tokenizer. + * @param {Object} tokenizerConfig The config of the tokenizer. + */ + constructor(tokenizerJSON, tokenizerConfig) { + super(tokenizerJSON, tokenizerConfig); + + this.languageRegex = /^(>>\w+<<)\s*/g; + + this.supported_language_codes = this.model.vocab.filter( + x => this.languageRegex.test(x) + ); + + console.warn('WARNING: `MarianTokenizer` is not yet supported by Hugging Face\'s "fast" tokenizers library. Therefore, you may experience slightly inaccurate results.') + } + + /** + * Encodes a single text. Overriding this method is necessary since the language codes + * must be removed before encoding with sentencepiece model. + * @see https://github.com/huggingface/transformers/blob/12d51db243a00726a548a43cc333390ebae731e3/src/transformers/models/marian/tokenization_marian.py#L204-L213 + * + * @param {string|null} text The text to encode. + * @returns {Array} The encoded tokens. + */ + _encode_text(text) { + if (text === null) return null; + + // Check if text starts with language code: + const [matchInfo, ...remainder] = text.trim().split(this.languageRegex); + + if (remainder.length === 0) { + // No language code, encode normally + return super._encode_text(matchInfo); + + } else if (remainder.length === 2) { + // Text starts with language code, so we do not encode it with sentencepiece. + const [language, text] = remainder; + + if (!this.supported_language_codes.includes(language)) { + console.warn(`Unsupported language code "${language}" detected, which may lead to unexpected behavior. Should be one of: ${JSON.stringify(this.supported_language_codes)}`) + } + return mergeArrays([language], super._encode_text(text)); + } + } + +} + +export class Wav2Vec2CTCTokenizer extends PreTrainedTokenizer { } + +export class BlenderbotTokenizer extends PreTrainedTokenizer { + _default_chat_template = `{% for message in messages %}{% if message['role'] == 'user' %}{{ ' ' }}{% endif %}{{ message['content'] }}{% if not loop.last %}{{ ' ' }}{% endif %}{% endfor %}{{ eos_token }}`; +} +export class BlenderbotSmallTokenizer extends BlenderbotTokenizer { } // NOTE `BlenderbotTokenizer` to get the correct chat template + +export class SpeechT5Tokenizer extends PreTrainedTokenizer { } + +export class NougatTokenizer extends PreTrainedTokenizer { } + +export class VitsTokenizer extends PreTrainedTokenizer { + + constructor(tokenizerJSON, tokenizerConfig) { + super(tokenizerJSON, tokenizerConfig); + + // Custom decoder function + this.decoder = new VitsDecoder({}); + } +} +/** + * Helper class which is used to instantiate pretrained tokenizers with the `from_pretrained` function. + * The chosen tokenizer class is determined by the type specified in the tokenizer config. + * + * @example + * const tokenizer = await AutoTokenizer.from_pretrained('Xenova/bert-base-uncased'); + */ +export class AutoTokenizer { + static TOKENIZER_CLASS_MAPPING = { + T5Tokenizer, + DistilBertTokenizer, + CamembertTokenizer, + DebertaTokenizer, + DebertaV2Tokenizer, + BertTokenizer, + HerbertTokenizer, + ConvBertTokenizer, + RoFormerTokenizer, + XLMTokenizer, + ElectraTokenizer, + MobileBertTokenizer, + SqueezeBertTokenizer, + AlbertTokenizer, + GPT2Tokenizer, + BartTokenizer, + MBartTokenizer, + MBart50Tokenizer, + RobertaTokenizer, + WhisperTokenizer, + CodeGenTokenizer, + CLIPTokenizer, + SiglipTokenizer, + MarianTokenizer, + BloomTokenizer, + NllbTokenizer, + M2M100Tokenizer, + LlamaTokenizer, + CodeLlamaTokenizer, + XLMRobertaTokenizer, + MPNetTokenizer, + FalconTokenizer, + GPTNeoXTokenizer, + EsmTokenizer, + Wav2Vec2CTCTokenizer, + BlenderbotTokenizer, + BlenderbotSmallTokenizer, + SpeechT5Tokenizer, + NougatTokenizer, + VitsTokenizer, + + // Base case: + PreTrainedTokenizer, + } + + + /** + * Instantiate one of the tokenizer classes of the library from a pretrained model. + * + * The tokenizer class to instantiate is selected based on the `tokenizer_class` property of the config object + * (either passed as an argument or loaded from `pretrained_model_name_or_path` if possible) + * + * @param {string} pretrained_model_name_or_path The name or path of the pretrained model. Can be either: + * - A string, the *model id* of a pretrained tokenizer hosted inside a model repo on huggingface.co. + * Valid model ids can be located at the root-level, like `bert-base-uncased`, or namespaced under a + * user or organization name, like `dbmdz/bert-base-german-cased`. + * - A path to a *directory* containing tokenizer files, e.g., `./my_model_directory/`. + * @param {PretrainedTokenizerOptions} options Additional options for loading the tokenizer. + * + * @returns {Promise} A new instance of the PreTrainedTokenizer class. + */ + static async from_pretrained(pretrained_model_name_or_path, { + quantized = true, + progress_callback = null, + config = null, + cache_dir = null, + local_files_only = false, + revision = 'main', + legacy = null, + } = {}) { + + const [tokenizerJSON, tokenizerConfig] = await loadTokenizer(pretrained_model_name_or_path, { + quantized, + progress_callback, + config, + cache_dir, + local_files_only, + revision, + legacy, + }) + + // Some tokenizers are saved with the "Fast" suffix, so we remove that if present. + const tokenizerName = tokenizerConfig.tokenizer_class?.replace(/Fast$/, '') ?? 'PreTrainedTokenizer'; + + let cls = this.TOKENIZER_CLASS_MAPPING[tokenizerName]; + if (!cls) { + console.warn(`Unknown tokenizer class "${tokenizerName}", attempting to construct from base class.`); + cls = PreTrainedTokenizer; + } + return new cls(tokenizerJSON, tokenizerConfig); + } +} diff --git a/core/vendor/modules/@xenova/transformers/src/transformers.js b/core/vendor/modules/@xenova/transformers/src/transformers.js new file mode 100644 index 000000000..acce33784 --- /dev/null +++ b/core/vendor/modules/@xenova/transformers/src/transformers.js @@ -0,0 +1,24 @@ +/** + * @file Entry point for the Transformers.js library. Only the exports from this file + * are available to the end user, and are grouped as follows: + * + * 1. [Pipelines](./pipelines) + * 2. [Environment variables](./env) + * 3. [Models](./models) + * 4. [Tokenizers](./tokenizers) + * 5. [Processors](./processors) + * + * @module transformers + */ + +export * from './env.js'; +export * from './pipelines.js'; +// export * from './models.js'; +// export * from './tokenizers.js'; +// export * from './processors.js'; +// export * from './configs.js'; + +// export * from './utils/audio.js'; +// export * from './utils/image.js'; +// export * from './utils/tensor.js'; +// export * from './utils/maths.js'; diff --git a/core/vendor/modules/@xenova/transformers/src/utils/audio.js b/core/vendor/modules/@xenova/transformers/src/utils/audio.js new file mode 100644 index 000000000..082870de8 --- /dev/null +++ b/core/vendor/modules/@xenova/transformers/src/utils/audio.js @@ -0,0 +1,664 @@ +/** + * @file Helper module for audio processing. + * + * These functions and classes are only used internally, + * meaning an end-user shouldn't need to access anything here. + * + * @module utils/audio + */ + +import { + getFile, +} from './hub.js'; +import { FFT, max } from './maths.js'; +import { + calculateReflectOffset, +} from './core.js'; + + +/** + * Helper function to read audio from a path/URL. + * @param {string|URL} url The path/URL to load the audio from. + * @param {number} sampling_rate The sampling rate to use when decoding the audio. + * @returns {Promise} The decoded audio as a `Float32Array`. + */ +export async function read_audio(url, sampling_rate) { + if (typeof AudioContext === 'undefined') { + // Running in node or an environment without AudioContext + throw Error( + "Unable to load audio from path/URL since `AudioContext` is not available in your environment. " + + "Instead, audio data should be passed directly to the pipeline/processor. " + + "For more information and some example code, see https://huggingface.co/docs/transformers.js/guides/node-audio-processing." + ) + } + + const response = await (await getFile(url)).arrayBuffer(); + const audioCTX = new AudioContext({ sampleRate: sampling_rate }); + if (typeof sampling_rate === 'undefined') { + console.warn(`No sampling rate provided, using default of ${audioCTX.sampleRate}Hz.`) + } + const decoded = await audioCTX.decodeAudioData(response); + + /** @type {Float32Array} */ + let audio; + + // We now replicate HuggingFace's `ffmpeg_read` method: + if (decoded.numberOfChannels === 2) { + // When downmixing a stereo audio file to mono using the -ac 1 option in FFmpeg, + // the audio signal is summed across both channels to create a single mono channel. + // However, if the audio is at full scale (i.e. the highest possible volume level), + // the summing of the two channels can cause the audio signal to clip or distort. + + // To prevent this clipping, FFmpeg applies a scaling factor of 1/sqrt(2) (~ 0.707) + // to the audio signal before summing the two channels. This scaling factor ensures + // that the combined audio signal will not exceed the maximum possible level, even + // if both channels are at full scale. + + // After applying this scaling factor, the audio signal from both channels is summed + // to create a single mono channel. It's worth noting that this scaling factor is + // only applied when downmixing stereo audio to mono using the -ac 1 option in FFmpeg. + // If you're using a different downmixing method, or if you're not downmixing the + // audio at all, this scaling factor may not be needed. + const SCALING_FACTOR = Math.sqrt(2); + + const left = decoded.getChannelData(0); + const right = decoded.getChannelData(1); + + audio = new Float32Array(left.length); + for (let i = 0; i < decoded.length; ++i) { + audio[i] = SCALING_FACTOR * (left[i] + right[i]) / 2; + } + + } else { + // If the audio is not stereo, we can just use the first channel: + audio = decoded.getChannelData(0); + } + + return audio; +} + +/** + * Generates a Hanning window of length M. + * + * @param {number} M The length of the Hanning window to generate. + * @returns {Float64Array} The generated Hanning window. + */ +export function hanning(M) { + if (M < 1) { + return new Float64Array(); + } + if (M === 1) { + return new Float64Array([1]); + } + const denom = M - 1; + const factor = Math.PI / denom; + const cos_vals = new Float64Array(M); + for (let i = 0; i < M; ++i) { + const n = 2 * i - denom; + cos_vals[i] = 0.5 + 0.5 * Math.cos(factor * n); + } + return cos_vals; +} + +const HERTZ_TO_MEL_MAPPING = { + "htk": (/** @type {number} */ freq) => 2595.0 * Math.log10(1.0 + (freq / 700.0)), + "kaldi": (/** @type {number} */ freq) => 1127.0 * Math.log(1.0 + (freq / 700.0)), + "slaney": (/** @type {number} */ freq, min_log_hertz = 1000.0, min_log_mel = 15.0, logstep = 27.0 / Math.log(6.4)) => + freq >= min_log_hertz + ? min_log_mel + Math.log(freq / min_log_hertz) * logstep + : 3.0 * freq / 200.0, +} + +/** + * @template {Float32Array|Float64Array|number} T + * @param {T} freq + * @param {string} [mel_scale] + * @returns {T} + */ +function hertz_to_mel(freq, mel_scale = "htk") { + const fn = HERTZ_TO_MEL_MAPPING[mel_scale]; + if (!fn) { + throw new Error('mel_scale should be one of "htk", "slaney" or "kaldi".'); + } + + return typeof freq === 'number' ? fn(freq) : freq.map(x => fn(x)); +} + +const MEL_TO_HERTZ_MAPPING = { + "htk": (/** @type {number} */ mels) => 700.0 * (10.0 ** (mels / 2595.0) - 1.0), + "kaldi": (/** @type {number} */ mels) => 700.0 * (Math.exp(mels / 1127.0) - 1.0), + "slaney": (/** @type {number} */ mels, min_log_hertz = 1000.0, min_log_mel = 15.0, logstep = Math.log(6.4) / 27.0) => mels >= min_log_mel + ? min_log_hertz * Math.exp(logstep * (mels - min_log_mel)) + : 200.0 * mels / 3.0, +} + +/** + * @template {Float32Array|Float64Array|number} T + * @param {T} mels + * @param {string} [mel_scale] + * @returns {T} + */ +function mel_to_hertz(mels, mel_scale = "htk") { + const fn = MEL_TO_HERTZ_MAPPING[mel_scale]; + if (!fn) { + throw new Error('mel_scale should be one of "htk", "slaney" or "kaldi".'); + } + + return typeof mels === 'number' ? fn(mels) : mels.map(x => fn(x)); +} + +/** +* Creates a triangular filter bank. +* +* Adapted from torchaudio and librosa. +* +* @param {Float64Array} fft_freqs Discrete frequencies of the FFT bins in Hz, of shape `(num_frequency_bins,)`. +* @param {Float64Array} filter_freqs Center frequencies of the triangular filters to create, in Hz, of shape `(num_mel_filters,)`. +* @returns {number[][]} of shape `(num_frequency_bins, num_mel_filters)`. +*/ +function _create_triangular_filter_bank(fft_freqs, filter_freqs) { + const filter_diff = Float64Array.from( + { length: filter_freqs.length - 1 }, + (_, i) => filter_freqs[i + 1] - filter_freqs[i] + ); + + const slopes = Array.from({ + length: fft_freqs.length + }, () => new Array(filter_freqs.length)); + + for (let j = 0; j < fft_freqs.length; ++j) { + const slope = slopes[j]; + for (let i = 0; i < filter_freqs.length; ++i) { + slope[i] = filter_freqs[i] - fft_freqs[j]; + } + } + + const numFreqs = filter_freqs.length - 2; + const ret = Array.from({ length: numFreqs }, () => new Array(fft_freqs.length)); + + for (let j = 0; j < fft_freqs.length; ++j) { // 201 + const slope = slopes[j]; + for (let i = 0; i < numFreqs; ++i) { // 80 + const down = -slope[i] / filter_diff[i]; + const up = slope[i + 2] / filter_diff[i + 1]; + ret[i][j] = Math.max(0, Math.min(down, up)); + } + } + return ret; +} + +/** + * Return evenly spaced numbers over a specified interval. + * @param {number} start The starting value of the sequence. + * @param {number} end The end value of the sequence. + * @param {number} num Number of samples to generate. + * @returns `num` evenly spaced samples, calculated over the interval `[start, stop]`. + */ +function linspace(start, end, num) { + const step = (end - start) / (num - 1); + return Float64Array.from({ length: num }, (_, i) => start + step * i); +} + +/** + * Creates a frequency bin conversion matrix used to obtain a mel spectrogram. This is called a *mel filter bank*, and + * various implementation exist, which differ in the number of filters, the shape of the filters, the way the filters + * are spaced, the bandwidth of the filters, and the manner in which the spectrum is warped. The goal of these + * features is to approximate the non-linear human perception of the variation in pitch with respect to the frequency. + * @param {number} num_frequency_bins Number of frequencies used to compute the spectrogram (should be the same as in `stft`). + * @param {number} num_mel_filters Number of mel filters to generate. + * @param {number} min_frequency Lowest frequency of interest in Hz. + * @param {number} max_frequency Highest frequency of interest in Hz. This should not exceed `sampling_rate / 2`. + * @param {number} sampling_rate Sample rate of the audio waveform. + * @param {string} [norm] If `"slaney"`, divide the triangular mel weights by the width of the mel band (area normalization). + * @param {string} [mel_scale] The mel frequency scale to use, `"htk"` or `"slaney"`. + * @param {boolean} [triangularize_in_mel_space] If this option is enabled, the triangular filter is applied in mel space rather than frequency space. + * This should be set to `true` in order to get the same results as `torchaudio` when computing mel filters. + * @returns {number[][]} Triangular filter bank matrix, which is a 2D array of shape (`num_frequency_bins`, `num_mel_filters`). + * This is a projection matrix to go from a spectrogram to a mel spectrogram. + */ +export function mel_filter_bank( + num_frequency_bins, + num_mel_filters, + min_frequency, + max_frequency, + sampling_rate, + norm = null, + mel_scale = "htk", + triangularize_in_mel_space = false, +) { + if (norm !== null && norm !== "slaney") { + throw new Error('norm must be one of null or "slaney"'); + } + + const mel_min = hertz_to_mel(min_frequency, mel_scale); + const mel_max = hertz_to_mel(max_frequency, mel_scale); + const mel_freqs = linspace(mel_min, mel_max, num_mel_filters + 2); + + let filter_freqs = mel_to_hertz(mel_freqs, mel_scale); + let fft_freqs; // frequencies of FFT bins in Hz + + if (triangularize_in_mel_space) { + const fft_bin_width = sampling_rate / (num_frequency_bins * 2); + fft_freqs = hertz_to_mel(Float64Array.from({ length: num_frequency_bins }, (_, i) => i * fft_bin_width), mel_scale); + filter_freqs = mel_freqs; + } else { + fft_freqs = linspace(0, Math.floor(sampling_rate / 2), num_frequency_bins); + } + + const mel_filters = _create_triangular_filter_bank(fft_freqs, filter_freqs); + + if (norm !== null && norm === "slaney") { + // Slaney-style mel is scaled to be approx constant energy per channel + for (let i = 0; i < num_mel_filters; ++i) { + const filter = mel_filters[i]; + const enorm = 2.0 / (filter_freqs[i + 2] - filter_freqs[i]); + for (let j = 0; j < num_frequency_bins; ++j) { + // Apply this enorm to all frequency bins + filter[j] *= enorm; + } + } + } + + // TODO warn if there is a zero row + + return mel_filters; + +} + +/** + * @template {Float32Array|Float64Array} T + * Pads an array with a reflected version of itself on both ends. + * @param {T} array The array to pad. + * @param {number} left The amount of padding to add to the left. + * @param {number} right The amount of padding to add to the right. + * @returns {T} The padded array. + */ +function padReflect(array, left, right) { + // @ts-ignore + const padded = new array.constructor(array.length + left + right); + const w = array.length - 1; + + for (let i = 0; i < array.length; ++i) { + padded[left + i] = array[i]; + } + + for (let i = 1; i <= left; ++i) { + padded[left - i] = array[calculateReflectOffset(i, w)]; + } + + for (let i = 1; i <= right; ++i) { + padded[w + left + i] = array[calculateReflectOffset(w - i, w)]; + } + + return padded; +} + +/** + * Helper function to compute `amplitude_to_db` and `power_to_db`. + * @template {Float32Array|Float64Array} T + * @param {T} spectrogram + * @param {number} factor + * @param {number} reference + * @param {number} min_value + * @param {number} db_range + * @returns {T} + */ +function _db_conversion_helper(spectrogram, factor, reference, min_value, db_range) { + if (reference <= 0) { + throw new Error('reference must be greater than zero'); + } + + if (min_value <= 0) { + throw new Error('min_value must be greater than zero'); + } + + reference = Math.max(min_value, reference); + + const logReference = Math.log10(reference); + for (let i = 0; i < spectrogram.length; ++i) { + spectrogram[i] = factor * Math.log10(Math.max(min_value, spectrogram[i]) - logReference) + } + + if (db_range !== null) { + if (db_range <= 0) { + throw new Error('db_range must be greater than zero'); + } + const maxValue = max(spectrogram)[0] - db_range; + for (let i = 0; i < spectrogram.length; ++i) { + spectrogram[i] = Math.max(spectrogram[i], maxValue); + } + } + + return spectrogram; +} + +/** + * Converts an amplitude spectrogram to the decibel scale. This computes `20 * log10(spectrogram / reference)`, + * using basic logarithm properties for numerical stability. NOTE: Operates in-place. + * + * The motivation behind applying the log function on the (mel) spectrogram is that humans do not hear loudness on a + * linear scale. Generally to double the perceived volume of a sound we need to put 8 times as much energy into it. + * This means that large variations in energy may not sound all that different if the sound is loud to begin with. + * This compression operation makes the (mel) spectrogram features match more closely what humans actually hear. + * + * @template {Float32Array|Float64Array} T + * @param {T} spectrogram The input amplitude (mel) spectrogram. + * @param {number} [reference=1.0] Sets the input spectrogram value that corresponds to 0 dB. + * For example, use `np.max(spectrogram)` to set the loudest part to 0 dB. Must be greater than zero. + * @param {number} [min_value=1e-5] The spectrogram will be clipped to this minimum value before conversion to decibels, + * to avoid taking `log(0)`. The default of `1e-5` corresponds to a minimum of -100 dB. Must be greater than zero. + * @param {number} [db_range=null] Sets the maximum dynamic range in decibels. For example, if `db_range = 80`, the + * difference between the peak value and the smallest value will never be more than 80 dB. Must be greater than zero. + * @returns {T} The modified spectrogram in decibels. + */ +function amplitude_to_db(spectrogram, reference = 1.0, min_value = 1e-5, db_range = null) { + return _db_conversion_helper(spectrogram, 20.0, reference, min_value, db_range); +} + +/** + * Converts a power spectrogram to the decibel scale. This computes `10 * log10(spectrogram / reference)`, + * using basic logarithm properties for numerical stability. NOTE: Operates in-place. + * + * The motivation behind applying the log function on the (mel) spectrogram is that humans do not hear loudness on a + * linear scale. Generally to double the perceived volume of a sound we need to put 8 times as much energy into it. + * This means that large variations in energy may not sound all that different if the sound is loud to begin with. + * This compression operation makes the (mel) spectrogram features match more closely what humans actually hear. + * + * Based on the implementation of `librosa.power_to_db`. + * + * @template {Float32Array|Float64Array} T + * @param {T} spectrogram The input power (mel) spectrogram. Note that a power spectrogram has the amplitudes squared! + * @param {number} [reference=1.0] Sets the input spectrogram value that corresponds to 0 dB. + * For example, use `np.max(spectrogram)` to set the loudest part to 0 dB. Must be greater than zero. + * @param {number} [min_value=1e-10] The spectrogram will be clipped to this minimum value before conversion to decibels, + * to avoid taking `log(0)`. The default of `1e-10` corresponds to a minimum of -100 dB. Must be greater than zero. + * @param {number} [db_range=null] Sets the maximum dynamic range in decibels. For example, if `db_range = 80`, the + * difference between the peak value and the smallest value will never be more than 80 dB. Must be greater than zero. + * @returns {T} The modified spectrogram in decibels. + */ +function power_to_db(spectrogram, reference = 1.0, min_value = 1e-10, db_range = null) { + return _db_conversion_helper(spectrogram, 10.0, reference, min_value, db_range); +} + +/** + * Calculates a spectrogram over one waveform using the Short-Time Fourier Transform. + * + * This function can create the following kinds of spectrograms: + * - amplitude spectrogram (`power = 1.0`) + * - power spectrogram (`power = 2.0`) + * - complex-valued spectrogram (`power = None`) + * - log spectrogram (use `log_mel` argument) + * - mel spectrogram (provide `mel_filters`) + * - log-mel spectrogram (provide `mel_filters` and `log_mel`) + * + * In this implementation, the window is assumed to be zero-padded to have the same size as the analysis frame. + * A padded window can be obtained from `window_function()`. The FFT input buffer may be larger than the analysis frame, + * typically the next power of two. + * + * @param {Float32Array|Float64Array} waveform The input waveform of shape `(length,)`. This must be a single real-valued, mono waveform. + * @param {Float32Array|Float64Array} window The windowing function to apply of shape `(frame_length,)`, including zero-padding if necessary. The actual window length may be + * shorter than `frame_length`, but we're assuming the array has already been zero-padded. + * @param {number} frame_length The length of the analysis frames in samples (a.k.a., `fft_length`). + * @param {number} hop_length The stride between successive analysis frames in samples. + * @param {Object} options + * @param {number} [options.fft_length=null] The size of the FFT buffer in samples. This determines how many frequency bins the spectrogram will have. + * For optimal speed, this should be a power of two. If `null`, uses `frame_length`. + * @param {number} [options.power=1.0] If 1.0, returns the amplitude spectrogram. If 2.0, returns the power spectrogram. If `null`, returns complex numbers. + * @param {boolean} [options.center=true] Whether to pad the waveform so that frame `t` is centered around time `t * hop_length`. If `false`, frame + * `t` will start at time `t * hop_length`. + * @param {string} [options.pad_mode="reflect"] Padding mode used when `center` is `true`. Possible values are: `"constant"` (pad with zeros), + * `"edge"` (pad with edge values), `"reflect"` (pads with mirrored values). + * @param {boolean} [options.onesided=true] If `true`, only computes the positive frequencies and returns a spectrogram containing `fft_length // 2 + 1` + * frequency bins. If `false`, also computes the negative frequencies and returns `fft_length` frequency bins. + * @param {number} [options.preemphasis=null] Coefficient for a low-pass filter that applies pre-emphasis before the DFT. + * @param {number[][]} [options.mel_filters=null] The mel filter bank of shape `(num_freq_bins, num_mel_filters)`. + * If supplied, applies this filter bank to create a mel spectrogram. + * @param {number} [options.mel_floor=1e-10] Minimum value of mel frequency banks. + * @param {string} [options.log_mel=null] How to convert the spectrogram to log scale. Possible options are: + * `null` (don't convert), `"log"` (take the natural logarithm) `"log10"` (take the base-10 logarithm), `"dB"` (convert to decibels). + * Can only be used when `power` is not `null`. + * @param {number} [options.reference=1.0] Sets the input spectrogram value that corresponds to 0 dB. For example, use `max(spectrogram)[0]` to set + * the loudest part to 0 dB. Must be greater than zero. + * @param {number} [options.min_value=1e-10] The spectrogram will be clipped to this minimum value before conversion to decibels, to avoid taking `log(0)`. + * For a power spectrogram, the default of `1e-10` corresponds to a minimum of -100 dB. For an amplitude spectrogram, the value `1e-5` corresponds to -100 dB. + * Must be greater than zero. + * @param {number} [options.db_range=null] Sets the maximum dynamic range in decibels. For example, if `db_range = 80`, the difference between the + * peak value and the smallest value will never be more than 80 dB. Must be greater than zero. + * @param {boolean} [options.remove_dc_offset=null] Subtract mean from waveform on each frame, applied before pre-emphasis. This should be set to `true` in + * order to get the same results as `torchaudio.compliance.kaldi.fbank` when computing mel filters. + * @param {number} [options.max_num_frames=null] If provided, limits the number of frames to compute to this value. + * @param {boolean} [options.do_pad=true] If `true`, pads the output spectrogram to have `max_num_frames` frames. + * @param {boolean} [options.transpose=false] If `true`, the returned spectrogram will have shape `(num_frames, num_frequency_bins/num_mel_filters)`. If `false`, the returned spectrogram will have shape `(num_frequency_bins/num_mel_filters, num_frames)`. + * @returns {{data: Float32Array, dims: number[]}} Spectrogram of shape `(num_frequency_bins, length)` (regular spectrogram) or shape `(num_mel_filters, length)` (mel spectrogram). + */ +export function spectrogram( + waveform, + window, + frame_length, + hop_length, + { + fft_length = null, + power = 1.0, + center = true, + pad_mode = "reflect", + onesided = true, + preemphasis = null, + mel_filters = null, + mel_floor = 1e-10, + log_mel = null, + reference = 1.0, + min_value = 1e-10, + db_range = null, + remove_dc_offset = null, + + // Custom parameters for efficiency reasons + max_num_frames = null, + do_pad = true, + transpose = false, + } = {} +) { + const window_length = window.length; + if (fft_length === null) { + fft_length = frame_length; + } + if (frame_length > fft_length) { + throw Error(`frame_length (${frame_length}) may not be larger than fft_length (${fft_length})`) + } + + if (window_length !== frame_length) { + throw new Error(`Length of the window (${window_length}) must equal frame_length (${frame_length})`); + } + + if (hop_length <= 0) { + throw new Error("hop_length must be greater than zero"); + } + + if (center) { + if (pad_mode !== 'reflect') { + throw new Error(`pad_mode="${pad_mode}" not implemented yet.`) + } + const half_window = Math.floor((fft_length - 1) / 2) + 1; + waveform = padReflect(waveform, half_window, half_window); + } + + // split waveform into frames of frame_length size + const num_frames = Math.floor(1 + Math.floor((waveform.length - frame_length) / hop_length)) + + const num_frequency_bins = onesided ? Math.floor(fft_length / 2) + 1 : fft_length + + let d1 = num_frames; + let d1Max = num_frames; + + // If maximum number of frames is provided, we must either pad or truncate + if (max_num_frames !== null) { + if (max_num_frames > num_frames) { // input is too short, so we pad + if (do_pad) { + d1Max = max_num_frames; + } + } else { // input is too long, so we truncate + d1Max = d1 = max_num_frames; + } + } + + // Preallocate arrays to store output. + const fft = new FFT(fft_length); + const inputBuffer = new Float64Array(fft_length); + const outputBuffer = new Float64Array(fft.outputBufferSize); + const magnitudes = new Array(d1); + + for (let i = 0; i < d1; ++i) { + // Populate buffer with waveform data + const offset = i * hop_length; + for (let j = 0; j < frame_length; ++j) { + inputBuffer[j] = waveform[offset + j]; + } + + if (remove_dc_offset) { + let sum = 0; + for (let j = 0; j < frame_length; ++j) { + sum += inputBuffer[j]; + } + const mean = sum / frame_length; + for (let j = 0; j < frame_length; ++j) { + inputBuffer[j] -= mean; + } + } + + if (preemphasis !== null) { + // Done in reverse to avoid copies and distructive modification + for (let j = frame_length - 1; j >= 1; --j) { + inputBuffer[j] -= preemphasis * inputBuffer[j - 1]; + } + inputBuffer[0] *= 1 - preemphasis; + } + + for (let j = 0; j < window.length; ++j) { + inputBuffer[j] *= window[j]; + } + + fft.realTransform(outputBuffer, inputBuffer); + + // compute magnitudes + const row = new Array(num_frequency_bins); + for (let j = 0; j < row.length; ++j) { + const j2 = j << 1; + row[j] = outputBuffer[j2] ** 2 + outputBuffer[j2 + 1] ** 2; + } + magnitudes[i] = row; + } + + // TODO what should happen if power is None? + // https://github.com/huggingface/transformers/issues/27772 + if (power !== null && power !== 2) { + // slight optimization to not sqrt + const pow = 2 / power; // we use 2 since we already squared + for (let i = 0; i < magnitudes.length; ++i) { + const magnitude = magnitudes[i]; + for (let j = 0; j < magnitude.length; ++j) { + magnitude[j] **= pow; + } + } + } + + // TODO: What if `mel_filters` is null? + const num_mel_filters = mel_filters.length; + + // Only here do we create Float32Array + const mel_spec = new Float32Array(num_mel_filters * d1Max); + + // Perform matrix muliplication: + // mel_spec = mel_filters @ magnitudes.T + // - mel_filters.shape=(80, 201) + // - magnitudes.shape=(3000, 201) => - magnitudes.T.shape=(201, 3000) + // - mel_spec.shape=(80, 3000) + const dims = transpose ? [d1Max, num_mel_filters] : [num_mel_filters, d1Max]; + for (let i = 0; i < num_mel_filters; ++i) { // num melfilters (e.g., 80) + const filter = mel_filters[i]; + for (let j = 0; j < d1; ++j) { // num frames (e.g., 3000) + const magnitude = magnitudes[j]; + + let sum = 0; + for (let k = 0; k < num_frequency_bins; ++k) { // num frequency bins (e.g., 201) + sum += filter[k] * magnitude[k]; + } + + mel_spec[ + transpose + ? j * num_mel_filters + i + : i * d1 + j + ] = Math.max(mel_floor, sum); + } + } + + if (power !== null && log_mel !== null) { + const o = Math.min(mel_spec.length, d1 * num_mel_filters); + switch (log_mel) { + case 'log': + for (let i = 0; i < o; ++i) { + mel_spec[i] = Math.log(mel_spec[i]); + } + break; + case 'log10': + for (let i = 0; i < o; ++i) { + mel_spec[i] = Math.log10(mel_spec[i]); + } + break; + case 'dB': + if (power === 1.0) { + // NOTE: operates in-place + amplitude_to_db(mel_spec, reference, min_value, db_range); + } else if (power === 2.0) { + power_to_db(mel_spec, reference, min_value, db_range); + } else { + throw new Error(`Cannot use log_mel option '${log_mel}' with power ${power}`) + } + break; + default: + throw new Error(`log_mel must be one of null, 'log', 'log10' or 'dB'. Got '${log_mel}'`); + } + } + + return { data: mel_spec, dims }; +} + +/** + * Returns an array containing the specified window. + * @param {number} window_length The length of the window in samples. + * @param {string} name The name of the window function. + * @param {Object} options Additional options. + * @param {boolean} [options.periodic=true] Whether the window is periodic or symmetric. + * @param {number} [options.frame_length=null] The length of the analysis frames in samples. + * Provide a value for `frame_length` if the window is smaller than the frame length, so that it will be zero-padded. + * @param {boolean} [options.center=true] Whether to center the window inside the FFT buffer. Only used when `frame_length` is provided. + * @returns {Float64Array} The window of shape `(window_length,)` or `(frame_length,)`. + */ +export function window_function(window_length, name, { + periodic = true, + frame_length = null, + center = true, +} = {}) { + const length = periodic ? window_length + 1 : window_length; + let window; + switch (name) { + case 'boxcar': + window = new Float64Array(length).fill(1.0); + break; + case 'hann': + case 'hann_window': + window = hanning(length); + break; + default: + throw new Error(`Unknown window type ${name}.`); + } + if (periodic) { + window = window.subarray(0, window_length); + } + if (frame_length === null) { + return window; + } + if (window_length > frame_length) { + throw new Error(`Length of the window (${window_length}) may not be larger than frame_length (${frame_length})`); + } + + return window; +} diff --git a/core/vendor/modules/@xenova/transformers/src/utils/core.js b/core/vendor/modules/@xenova/transformers/src/utils/core.js new file mode 100644 index 000000000..4ed0f15ef --- /dev/null +++ b/core/vendor/modules/@xenova/transformers/src/utils/core.js @@ -0,0 +1,175 @@ + +/** + * @file Core utility functions/classes for Transformers.js. + * + * These are only used internally, meaning an end-user shouldn't + * need to access anything here. + * + * @module utils/core + */ + +/** + * Helper function to dispatch progress callbacks. + * + * @param {Function} progress_callback The progress callback function to dispatch. + * @param {any} data The data to pass to the progress callback function. + * @returns {void} + * @private + */ +export function dispatchCallback(progress_callback, data) { + if (progress_callback) progress_callback(data); +} + +/** + * Reverses the keys and values of an object. + * + * @param {Object} data The object to reverse. + * @returns {Object} The reversed object. + * @see https://ultimatecourses.com/blog/reverse-object-keys-and-values-in-javascript + */ +export function reverseDictionary(data) { + // https://ultimatecourses.com/blog/reverse-object-keys-and-values-in-javascript + return Object.fromEntries(Object.entries(data).map(([key, value]) => [value, key])); +} + +/** + * Escapes regular expression special characters from a string by replacing them with their escaped counterparts. + * + * @param {string} string The string to escape. + * @returns {string} The escaped string. + */ +export function escapeRegExp(string) { + return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string +} + +/** + * A base class for creating callable objects. + * + * @type {new () => {(...args: any[]): any, _call(...args: any[]): any}} + */ +export const Callable = /** @type {any} */ (class { + /** + * Creates a new instance of the Callable class. + */ + constructor() { + /** + * Creates a closure that delegates to a private method '_call' with the given arguments. + * @type {any} + * @param {...any} args Zero or more arguments to pass to the '_call' method. + * @returns {*} The result of calling the '_call' method. + */ + let closure = function (...args) { + return closure._call(...args) + } + return Object.setPrototypeOf(closure, new.target.prototype) + } + + /** + * This method should be implemented in subclasses to provide the + * functionality of the callable object. + * + * @param {any[]} args + * @throws {Error} If the subclass does not implement the `_call` method. + */ + _call(...args) { + throw Error('Must implement _call method in subclass') + } +}); + +/** + * Check if a value is a typed array. + * @param {*} val The value to check. + * @returns {boolean} True if the value is a `TypedArray`, false otherwise. + * + * Adapted from https://stackoverflow.com/a/71091338/13989043 + */ +export function isTypedArray(val) { + return val?.prototype?.__proto__?.constructor?.name === 'TypedArray'; +} + + +/** + * Check if a value is an integer. + * @param {*} x The value to check. + * @returns {boolean} True if the value is a string, false otherwise. + */ +export function isIntegralNumber(x) { + return Number.isInteger(x) || typeof x === 'bigint' +} + +/** + * Check if a value is exists. + * @param {*} x The value to check. + * @returns {boolean} True if the value exists, false otherwise. + */ +export function exists(x) { + return x !== undefined && x !== null; +} + +/** + * Calculates the dimensions of a nested array. + * + * @param {any[]} arr The nested array to calculate dimensions for. + * @returns {number[]} An array containing the dimensions of the input array. + */ +export function calculateDimensions(arr) { + const dimensions = []; + let current = arr; + while (Array.isArray(current)) { + dimensions.push(current.length); + current = current[0]; + } + return dimensions; +} + +/** + * Replicate python's .pop() method for objects. + * @param {Object} obj The object to pop from. + * @param {string} key The key to pop. + * @param {*} defaultValue The default value to return if the key does not exist. + * @returns {*} The value of the popped key. + * @throws {Error} If the key does not exist and no default value is provided. + */ +export function pop(obj, key, defaultValue = undefined) { + const value = obj[key]; + if (value !== undefined) { + delete obj[key]; + return value; + } + if (defaultValue === undefined) { + throw Error(`Key ${key} does not exist in object.`) + } + return defaultValue; +} + +/** + * Efficiently merge arrays, creating a new copy. + * Adapted from https://stackoverflow.com/a/6768642/13989043 + * @param {Array[]} arrs Arrays to merge. + * @returns {Array} The merged array. + */ +export function mergeArrays(...arrs) { + return Array.prototype.concat.apply([], arrs); +} + +/** + * Compute the Cartesian product of given arrays + * @param {...Array} a Arrays to compute the product + * @returns {Array} Returns the computed Cartesian product as an array + * @private + */ +export function product(...a) { + // Cartesian product of items + // Adapted from https://stackoverflow.com/a/43053803 + return a.reduce((a, b) => a.flatMap(d => b.map(e => [d, e]))); +} + +/** + * Calculates the index offset for a given index and window size. + * @param {number} i The index. + * @param {number} w The window size. + * @returns {number} The index offset. + */ +export function calculateReflectOffset(i, w) { + return Math.abs((i + w) % (2 * w) - w); +} diff --git a/core/vendor/modules/@xenova/transformers/src/utils/data-structures.js b/core/vendor/modules/@xenova/transformers/src/utils/data-structures.js new file mode 100644 index 000000000..dd8a78867 --- /dev/null +++ b/core/vendor/modules/@xenova/transformers/src/utils/data-structures.js @@ -0,0 +1,415 @@ + +/** + * @file Custom data structures. + * + * These are only used internally, meaning an end-user shouldn't + * need to access anything here. + * + * @module utils/data-structures + */ + + +/** + * Efficient Heap-based Implementation of a Priority Queue. + * It uses an array-based binary heap, where the root is at index `0`, and the + * children of node `i` are located at indices `2i + 1` and `2i + 2`, respectively. + * + * Adapted from the following sources: + * - https://stackoverflow.com/a/42919752/13989043 (original) + * - https://github.com/belladoreai/llama-tokenizer-js (minor improvements) + */ +export class PriorityQueue { + + /** + * Create a new PriorityQueue. + * @param {Function} comparator Comparator function to determine priority. Defaults to a MaxHeap. + */ + constructor(comparator = (a, b) => a > b) { + this._heap = []; + this._comparator = comparator; + } + + /** + * The size of the queue + */ + get size() { + return this._heap.length; + } + + /** + * Check if the queue is empty. + * @returns {boolean} `true` if the queue is empty, `false` otherwise. + */ + isEmpty() { + return this.size === 0; + } + + /** + * Return the element with the highest priority in the queue. + * @returns {any} The highest priority element in the queue. + */ + peek() { + return this._heap[0]; + } + + /** + * Add one or more elements to the queue. + * @param {...any} values The values to push into the queue. + * @returns {number} The new size of the queue. + */ + push(...values) { + return this.extend(values); + } + + /** + * Add multiple elements to the queue. + * @param {any[]} values The values to push into the queue. + * @returns {number} The new size of the queue. + */ + extend(values) { + for (const value of values) { + this._heap.push(value); + this._siftUp(); + } + return this.size; + } + + /** + * Remove and return the element with the highest priority in the queue. + * @returns {any} The element with the highest priority in the queue. + */ + pop() { + const poppedValue = this.peek(); + const bottom = this.size - 1; + if (bottom > 0) { + this._swap(0, bottom); + } + this._heap.pop(); + this._siftDown(); + return poppedValue; + } + + /** + * Replace the element with the highest priority in the queue with a new value. + * @param {*} value The new value. + * @returns {*} The replaced value. + */ + replace(value) { + const replacedValue = this.peek(); + this._heap[0] = value; + this._siftDown(); + return replacedValue; + } + + /** + * Compute the index for the parent of the node at index `i`. + * @param {number} i The index of the node to get the parent of. + * @returns {number} The index of the parent node. + * @private + */ + _parent(i) { + return ((i + 1) >>> 1) - 1; + } + + /** + * Compute the index for the left child of the node at index `i`. + * @param {number} i The index of the node to get the left child of. + * @returns {number} The index of the left child. + * @private + */ + _left(i) { + return (i << 1) + 1; + } + + /** + * Compute the index for the right child of the node at index `i`. + * @param {number} i The index of the node to get the right child of. + * @returns {number} The index of the right child. + * @private + */ + _right(i) { + return (i + 1) << 1; + } + + /** + * Check if the element at index `i` is greater than the element at index `j`. + * @param {number} i The index of the first element to compare. + * @param {number} j The index of the second element to compare. + * @returns {boolean} `true` if the element at index `i` is greater than the element at index `j`, `false` otherwise. + * @private + */ + _greater(i, j) { + return this._comparator(this._heap[i], this._heap[j]); + } + + /** + * Swap the elements at indices `i` and `j`. + * @param {number} i The index of the first element to swap. + * @param {number} j The index of the second element to swap. + * @private + */ + _swap(i, j) { + const temp = this._heap[i]; + this._heap[i] = this._heap[j]; + this._heap[j] = temp; + } + + /** + * Maintain the heap property by updating positions in the heap, + * starting at the last element and moving up the heap. + * @private + */ + _siftUp() { + let node = this.size - 1; + while (node > 0 && this._greater(node, this._parent(node))) { + this._swap(node, this._parent(node)); + node = this._parent(node); + } + } + /** + * Maintain the heap property by updating positions in the heap, + * starting at the first element and moving down the heap. + * @private + */ + _siftDown() { + let node = 0; + while ( + (this._left(node) < this.size && this._greater(this._left(node), node)) || + (this._right(node) < this.size && this._greater(this._right(node), node)) + ) { + const maxChild = (this._right(node) < this.size && this._greater(this._right(node), this._left(node))) + ? this._right(node) + : this._left(node); + this._swap(node, maxChild); + node = maxChild; + } + } +} + +/** + * A trie structure to efficiently store and search for strings. + */ +export class CharTrie { + constructor() { + this.root = CharTrieNode.default(); + } + + /** + * Adds one or more `texts` to the trie. + * @param {string[]} texts The strings to add to the trie. + */ + extend(texts) { + for (let text of texts) { + this.push(text); + } + } + + /** + * Adds text to the trie. + * @param {string} text The string to add to the trie. + */ + push(text) { + let node = this.root; + for (let ch of text) { + let child = node.children.get(ch); + if (child === undefined) { + child = CharTrieNode.default(); + node.children.set(ch, child); + } + node = child; + } + node.isLeaf = true; + } + + /** + * Searches the trie for all strings with a common prefix of `text`. + * @param {string} text The common prefix to search for. + * @yields {string} Each string in the trie that has `text` as a prefix. + */ + *commonPrefixSearch(text) { + let node = this.root; + let prefix = ""; + for (let i = 0; i < text.length && node !== undefined; ++i) { + const ch = text[i]; + prefix += ch; + node = node.children.get(ch); + if (node !== undefined && node.isLeaf) { + yield prefix; + } + } + } +} + +/** + * Represents a node in a character trie. + */ +class CharTrieNode { + /** + * Create a new CharTrieNode. + * @param {boolean} isLeaf Whether the node is a leaf node or not. + * @param {Map} children A map containing the node's children, where the key is a character and the value is a `CharTrieNode`. + */ + constructor(isLeaf, children) { + this.isLeaf = isLeaf; + this.children = children; + } + + /** + * Returns a new `CharTrieNode` instance with default values. + * @returns {CharTrieNode} A new `CharTrieNode` instance with `isLeaf` set to `false` and an empty `children` map. + */ + static default() { + return new CharTrieNode(false, new Map()); + } +} + +/** + * A lattice data structure to be used for tokenization. + */ +export class TokenLattice { + /** + * Creates a new TokenLattice instance. + * + * @param {string} sentence The input sentence to be tokenized. + * @param {number} bosTokenId The beginning-of-sequence token ID. + * @param {number} eosTokenId The end-of-sequence token ID. + */ + constructor(sentence, bosTokenId, eosTokenId) { + this.sentence = sentence; + this.len = sentence.length; + this.bosTokenId = bosTokenId; + this.eosTokenId = eosTokenId; + this.nodes = []; + this.beginNodes = Array.from({ length: this.len + 1 }, () => []); + this.endNodes = Array.from({ length: this.len + 1 }, () => []); + + const bos = new TokenLatticeNode(this.bosTokenId, 0, 0, 0, 0.0); + const eos = new TokenLatticeNode(this.eosTokenId, 1, this.len, 0, 0.0); + this.nodes.push(bos.clone()); + this.nodes.push(eos.clone()); + this.beginNodes[this.len].push(eos); + this.endNodes[0].push(bos); + } + + /** + * Inserts a new token node into the token lattice. + * + * @param {number} pos The starting position of the token. + * @param {number} length The length of the token. + * @param {number} score The score of the token. + * @param {number} tokenId The token ID of the token. + */ + insert(pos, length, score, tokenId) { + const nodeId = this.nodes.length; + const node = new TokenLatticeNode(tokenId, nodeId, pos, length, score); + this.beginNodes[pos].push(node); + this.endNodes[pos + length].push(node); + this.nodes.push(node); + } + + /** + * Implements the Viterbi algorithm to compute the most likely sequence of tokens. + * + * @returns {TokenLatticeNode[]} The array of nodes representing the most likely sequence of tokens. + */ + viterbi() { + const len = this.len; + let pos = 0; + while (pos <= len) { + if (this.beginNodes[pos].length == 0) { + return []; + } + for (let rnode of this.beginNodes[pos]) { + rnode.prev = null; + let bestScore = 0.0; + let bestNode = null; + for (let lnode of this.endNodes[pos]) { + const score = lnode.backtraceScore + rnode.score; + if (bestNode === null || score > bestScore) { + bestNode = lnode.clone(); + bestScore = score; + } + } + + if (bestNode !== null) { + rnode.prev = bestNode; + rnode.backtraceScore = bestScore; + } else { + return []; + } + } + ++pos; + } + + const results = []; + const root = this.beginNodes[len][0]; + const prev = root.prev; + if (prev === null) { + return []; + } + + let node = prev.clone(); + while (node.prev !== null) { + results.push(node.clone()); + const n = node.clone(); + node = n.prev.clone(); + } + + results.reverse(); + return results; + } + + /** + * @param {TokenLatticeNode} node + * @returns {string} The array of nodes representing the most likely sequence of tokens. + */ + piece(node) { + return this.sentence.slice(node.pos, node.pos + node.length); + } + + /** + * @returns {Array} The array of nodes representing the most likely sequence of tokens. + */ + tokens() { + const nodes = this.viterbi(); + return nodes.map(x => this.piece(x)); + } + + /** + * @returns {Array} The array of nodes representing the most likely sequence of tokens. + */ + tokenIds() { + const nodes = this.viterbi(); + return nodes.map(x => x.tokenId); + } +} +class TokenLatticeNode { + /** + * Represents a node in a token lattice for a given sentence. + * @param {number} tokenId The ID of the token associated with this node. + * @param {number} nodeId The ID of this node. + * @param {number} pos The starting position of the token in the sentence. + * @param {number} length The length of the token. + * @param {number} score The score associated with the token. + */ + constructor(tokenId, nodeId, pos, length, score) { + this.tokenId = tokenId; + this.nodeId = nodeId; + this.pos = pos; + this.length = length; + this.score = score; + this.prev = null; + this.backtraceScore = 0.0; + } + + /** + * Returns a clone of this node. + * @returns {TokenLatticeNode} A clone of this node. + */ + clone() { + const n = new TokenLatticeNode(this.tokenId, this.nodeId, this.pos, this.length, this.score); + n.prev = this.prev; + n.backtraceScore = this.backtraceScore; + return n; + } +} diff --git a/core/vendor/modules/@xenova/transformers/src/utils/generation.js b/core/vendor/modules/@xenova/transformers/src/utils/generation.js new file mode 100644 index 000000000..1f9dc898b --- /dev/null +++ b/core/vendor/modules/@xenova/transformers/src/utils/generation.js @@ -0,0 +1,873 @@ + +/** + * @file Classes, functions, and utilities for generation. + * + * @todo Describe how to create a custom `GenerationConfig`. + * + * @module utils/generation + */ +import { Tensor } from './tensor.js'; +import { + Callable, + exists, +} from './core.js'; +import { + max, + softmax, + log_softmax, + getTopItems, +} from './maths.js'; + +/** + * A class representing a list of logits processors. A logits processor is a function that modifies the logits + * output of a language model. This class provides methods for adding new processors and applying all processors to a + * batch of logits. + * + * @extends Callable + */ +export class LogitsProcessorList extends Callable { + /** + * Constructs a new instance of `LogitsProcessorList`. + */ + constructor() { + super(); + this.processors = []; + } + + /** + * Adds a new logits processor to the list. + * + * @param {LogitsProcessor} item The logits processor function to add. + */ + push(item) { + this.processors.push(item); + } + + /** + * Adds multiple logits processors to the list. + * + * @param {LogitsProcessor[]} items The logits processor functions to add. + */ + extend(items) { + this.processors.push(...items); + } + + /** + * Applies all logits processors in the list to a batch of logits, modifying them in-place. + * + * @param {number[]} input_ids The input IDs for the language model. + * @param {number[][]} batchedLogits A 2D array of logits, where each row corresponds to a single + * input sequence in the batch. + */ + _call(input_ids, batchedLogits) { + // NOTE: This is different from the Python code, since vanilla JS does not support vectorized operations. + // As a result, we apply each processor to each item in the batch. + for (let logits of batchedLogits) { + // Modifies logits inplace + this.processors.forEach( + func => func(input_ids, logits) + ) + } + } + + [Symbol.iterator]() { + return this.processors.values(); + } +} + +/** + * Base class for processing logits. + * @extends Callable + */ +export class LogitsProcessor extends Callable { + /** + * Apply the processor to the input logits. + * + * @abstract + * @param {Array} input_ids The input ids. + * @param {Tensor} logits The logits to process. + * @throws {Error} Throws an error if `_call` is not implemented in the subclass. + */ + _call(input_ids, logits) { + throw Error("`_call` should be implemented in a subclass") + } +} + +/** + * A logits processor that forces a specific token to be generated by the decoder. + * + * @extends LogitsProcessor + */ +export class ForceTokensLogitsProcessor extends LogitsProcessor { + /** + * Constructs a new instance of `ForceTokensLogitsProcessor`. + * + * @param {Array} forced_decoder_ids The ids of tokens that should be forced. + */ + constructor(forced_decoder_ids) { + super(); + this.force_token_map = Object.fromEntries(forced_decoder_ids ?? []); + } + + /** + * Apply the processor to the input logits. + * + * @param {Array} input_ids The input ids. + * @param {Tensor} logits The logits to process. + * @returns {Tensor} The processed logits. + */ + _call(input_ids, logits) { + let map = this.force_token_map[input_ids.length]; + if (exists(map)) { // There exists a mapping + logits.data.fill(-Infinity) + logits.data[map] = 0; + } + return logits; + } +} + +/** + * A LogitsProcessor that forces a BOS token at the beginning of the generated sequence. + * @extends LogitsProcessor + */ +export class ForcedBOSTokenLogitsProcessor extends LogitsProcessor { + /** + * Create a ForcedBOSTokenLogitsProcessor. + * @param {number} bos_token_id The ID of the beginning-of-sequence token to be forced. + */ + constructor(bos_token_id) { + super(); + this.bos_token_id = bos_token_id; + } + + /** + * Apply the BOS token forcing to the logits. + * @param {Array} input_ids The input IDs. + * @param {Object} logits The logits. + * @returns {Object} The logits with BOS token forcing. + */ + _call(input_ids, logits) { + if (input_ids.length === 1) { + logits.data.fill(-Infinity) + logits.data[this.bos_token_id] = 0; + } + return logits; + } +} + +/** + * A logits processor that forces end-of-sequence token probability to 1. + * + * @extends LogitsProcessor + */ +export class ForcedEOSTokenLogitsProcessor extends LogitsProcessor { + /** + * Create a ForcedEOSTokenLogitsProcessor. + * @param {number} max_length Max length of the sequence. + * @param {number|number[]} forced_eos_token_id The ID of the end-of-sequence token to be forced. + */ + constructor(max_length, forced_eos_token_id) { + super(); + this.max_length = max_length; + this.forced_eos_token_id = forced_eos_token_id; + } + + /** + * Apply the processor to input_ids and logits. + * + * @param {number[]} input_ids The input ids. + * @param {Tensor} logits The logits tensor. + */ + _call(input_ids, logits) { + // console.log('call ForcedEOSTokenLogitsProcessor') + // TODO + } +} + +/** + * A LogitsProcessor that suppresses a list of tokens as soon as the `generate` function starts + * generating using `begin_index` tokens. This should ensure that the tokens defined by + * `begin_suppress_tokens` at not sampled at the begining of the generation. + * @extends LogitsProcessor + */ +export class SuppressTokensAtBeginLogitsProcessor extends LogitsProcessor { + /** + * Create a SuppressTokensAtBeginLogitsProcessor. + * @param {number[]} begin_suppress_tokens The IDs of the tokens to suppress. + * @param {number} begin_index The number of tokens to generate before suppressing tokens. + */ + constructor(begin_suppress_tokens, begin_index) { + super(); + this.begin_suppress_tokens = begin_suppress_tokens; + this.begin_index = begin_index; + } + + /** + * Apply the BOS token forcing to the logits. + * @param {Array} input_ids The input IDs. + * @param {Object} logits The logits. + * @returns {Object} The logits with BOS token forcing. + */ + _call(input_ids, logits) { + if (input_ids.length === this.begin_index) { + for (let token_id of this.begin_suppress_tokens) { + logits.data[token_id] = -Infinity; + } + } + return logits; + } +} + +/** + * A LogitsProcessor that handles adding timestamps to generated text. + * @extends LogitsProcessor + */ +export class WhisperTimeStampLogitsProcessor extends LogitsProcessor { + /** + * Constructs a new WhisperTimeStampLogitsProcessor. + * @param {Object} generate_config The config object passed to the `generate()` method of a transformer model. + * @param {number} generate_config.eos_token_id The ID of the end-of-sequence token. + * @param {number} generate_config.no_timestamps_token_id The ID of the token used to indicate that a token should not have a timestamp. + * @param {number[][]} [generate_config.forced_decoder_ids] An array of two-element arrays representing decoder IDs that are forced to appear in the output. The second element of each array indicates whether the token is a timestamp. + * @param {number} [generate_config.max_initial_timestamp_index] The maximum index at which an initial timestamp can appear. + */ + constructor(generate_config) { + super(); + this.eos_token_id = generate_config.eos_token_id; + this.no_timestamps_token_id = generate_config.no_timestamps_token_id; + this.timestamp_begin = this.no_timestamps_token_id + 1; + + this.begin_index = (generate_config.forced_decoder_ids || []).length + 2; + if (generate_config.forced_decoder_ids.slice(-1)[0][1] === this.no_timestamps_token_id) { + this.begin_index -= 1; + } + this.max_initial_timestamp_index = generate_config.max_initial_timestamp_index; + + } + + /** + * Modify the logits to handle timestamp tokens. + * @param {Array} input_ids The input sequence of tokens. + * @param {Tensor} logits The logits output by the model. + * @returns {Tensor} The modified logits. + */ + _call(input_ids, logits) { + const logitsData = /** @type {Float32Array} */(logits.data); + + // suppress <|notimestamps|> which is handled by without_timestamps + logitsData[this.no_timestamps_token_id] = -Infinity; + + if (input_ids.length === this.begin_index - 1) { + logitsData.fill(-Infinity); + logitsData[this.timestamp_begin] = 0; + return logits; + } + + // timestamps have to appear in pairs, except directly before eos_token; mask logits accordingly + const seq = input_ids.slice(this.begin_index); + const last_was_timestamp = seq.length >= 1 && seq[seq.length - 1] >= this.timestamp_begin; + const penultimate_was_timestamp = seq.length < 2 || seq[seq.length - 2] >= this.timestamp_begin; + + if (last_was_timestamp) { + if (penultimate_was_timestamp) { // has to be non-timestamp + logitsData.subarray(this.timestamp_begin).fill(-Infinity); + } else { // cannot be normal text tokens + logitsData.subarray(0, this.eos_token_id).fill(-Infinity); + } + } + + // apply the `max_initial_timestamp` option + if (input_ids.length === this.begin_index && this.max_initial_timestamp_index !== null) { + const last_allowed = this.timestamp_begin + this.max_initial_timestamp_index; + logitsData.subarray(last_allowed + 1).fill(-Infinity); + } + + // if sum of probability over timestamps is above any other token, sample timestamp + const logprobs = log_softmax(logitsData); + const timestamp_logprob = Math.log(logprobs.subarray(this.timestamp_begin).map(Math.exp).reduce((a, b) => a + b)); + const max_text_token_logprob = max(logprobs.subarray(0, this.timestamp_begin))[0]; + + if (timestamp_logprob > max_text_token_logprob) { + logitsData.subarray(0, this.timestamp_begin).fill(-Infinity); + } + + return logits; + } +} + +/** + * A logits processor that disallows ngrams of a certain size to be repeated. + * + * @extends LogitsProcessor + */ +export class NoRepeatNGramLogitsProcessor extends LogitsProcessor { + /** + * Create a NoRepeatNGramLogitsProcessor. + * @param {number} no_repeat_ngram_size The no-repeat-ngram size. All ngrams of this size can only occur once. + */ + constructor(no_repeat_ngram_size) { + super(); + this.no_repeat_ngram_size = no_repeat_ngram_size; + } + + /** + * Generate n-grams from a sequence of token ids. + * @param {number[]} prevInputIds List of previous input ids + * @returns {Map} Map of generated n-grams + */ + getNgrams(prevInputIds) { + const curLen = prevInputIds.length; + + /**@type {number[][]} */ + const ngrams = []; + for (let j = 0; j < curLen + 1 - this.no_repeat_ngram_size; ++j) { + const ngram = []; + for (let k = 0; k < this.no_repeat_ngram_size; ++k) { + ngram.push(prevInputIds[j + k]); + } + ngrams.push(ngram); + } + + /** @type {Map} */ + const generatedNgram = new Map(); + for (const ngram of ngrams) { + const prevNgram = ngram.slice(0, ngram.length - 1); + const prevNgramKey = JSON.stringify(prevNgram); + const prevNgramValue = generatedNgram.get(prevNgramKey) ?? []; + prevNgramValue.push(ngram[ngram.length - 1]); + generatedNgram.set(prevNgramKey, prevNgramValue); + } + return generatedNgram; + } + + /** + * Generate n-grams from a sequence of token ids. + * @param {Map} bannedNgrams Map of banned n-grams + * @param {number[]} prevInputIds List of previous input ids + * @returns {number[]} Map of generated n-grams + */ + getGeneratedNgrams(bannedNgrams, prevInputIds) { + const ngramIdx = prevInputIds.slice(prevInputIds.length + 1 - this.no_repeat_ngram_size, prevInputIds.length); + const banned = bannedNgrams.get(JSON.stringify(ngramIdx)) ?? []; + return banned; + } + + /** + * Calculate banned n-gram tokens + * @param {number[]} prevInputIds List of previous input ids + * @returns {number[]} Map of generated n-grams + */ + calcBannedNgramTokens(prevInputIds) { + const bannedTokens = []; + if (prevInputIds.length + 1 < this.no_repeat_ngram_size) { + // return no banned tokens if we haven't generated no_repeat_ngram_size tokens yet + return bannedTokens; + + } else { + const generatedNgrams = this.getNgrams(prevInputIds); + const bannedTokens = this.getGeneratedNgrams(generatedNgrams, prevInputIds); + return bannedTokens; + } + } + + /** + * Apply the no-repeat-ngram processor to the logits. + * @param {Array} input_ids The input IDs. + * @param {Object} logits The logits. + * @returns {Object} The logits with no-repeat-ngram processing. + */ + _call(input_ids, logits) { + const bannedTokens = this.calcBannedNgramTokens(input_ids); + + for (const token of bannedTokens) { + logits.data[token] = -Infinity; + } + return logits; + } +} + +/** + * A logits processor that penalises repeated output tokens. + * + * @extends LogitsProcessor + */ +export class RepetitionPenaltyLogitsProcessor extends LogitsProcessor { + /** + * Create a RepetitionPenaltyLogitsProcessor. + * @param {number} penalty The penalty to apply for repeated tokens. + */ + constructor(penalty) { + super(); + this.penalty = penalty; + } + + /** + * Apply the repetition penalty to the logits. + * @param {Array} input_ids The input IDs. + * @param {Object} logits The logits. + * @returns {Object} The logits with repetition penalty processing. + */ + _call(input_ids, logits) { + // Modify the logits corresponding to each element in `input_ids`. + // As a consequence, the logits corresponding to tokens that appear + // many times in the output will be penalised more. + for (const input_id of input_ids) { + if (logits.data[input_id] < 0) { + logits.data[input_id] *= this.penalty; + } else { + logits.data[input_id] /= this.penalty; + } + } + return logits + } +} + +/** + * A logits processor that enforces a minimum number of tokens. + * + * @extends LogitsProcessor + */ +export class MinLengthLogitsProcessor extends LogitsProcessor { + /** + * Create a MinLengthLogitsProcessor. + * @param {number} min_length The minimum length below which the score of `eos_token_id` is set to negative infinity. + * @param {number|number[]} eos_token_id The ID/IDs of the end-of-sequence token. + */ + constructor(min_length, eos_token_id) { + super(); + this.min_length = min_length; + this.eos_token_id = Array.isArray(eos_token_id) ? eos_token_id : [eos_token_id]; + } + + /** + * Apply logit processor. + * @param {Array} input_ids The input IDs. + * @param {Object} logits The logits. + * @returns {Object} The processed logits. + */ + _call(input_ids, logits) { + if (input_ids.length < this.min_length) { + for (const eos_token of this.eos_token_id) { + logits.data[eos_token] = -Infinity; + } + } + + return logits + } +} + +/** + * A logits processor that enforces a minimum number of new tokens. + * + * @extends LogitsProcessor + */ +export class MinNewTokensLengthLogitsProcessor extends LogitsProcessor { + /** + * Create a MinNewTokensLengthLogitsProcessor. + * @param {number} prompt_length_to_skip The input tokens length. + * @param {number} min_new_tokens The minimum *new* tokens length below which the score of `eos_token_id` is set to negative infinity. + * @param {number|number[]} eos_token_id The ID/IDs of the end-of-sequence token. + */ + constructor(prompt_length_to_skip, min_new_tokens, eos_token_id) { + super(); + this.prompt_length_to_skip = prompt_length_to_skip; + this.min_new_tokens = min_new_tokens; + this.eos_token_id = Array.isArray(eos_token_id) ? eos_token_id : [eos_token_id]; + } + + /** + * Apply logit processor. + * @param {Array} input_ids The input IDs. + * @param {Object} logits The logits. + * @returns {Object} The processed logits. + */ + _call(input_ids, logits) { + const new_tokens_length = input_ids.length - this.prompt_length_to_skip; + if (new_tokens_length < this.min_new_tokens) { + for (const eos_token of this.eos_token_id) { + logits.data[eos_token] = -Infinity; + } + } + + return logits + } +} + +export class NoBadWordsLogitsProcessor extends LogitsProcessor { + /** + * Create a `NoBadWordsLogitsProcessor`. + * @param {number[][]} bad_words_ids List of list of token ids that are not allowed to be generated. + * @param {number|number[]} eos_token_id The id of the *end-of-sequence* token. Optionally, use a list to set multiple *end-of-sequence* tokens. + */ + constructor(bad_words_ids, eos_token_id) { + super(); + this.bad_words_ids = bad_words_ids; + this.eos_token_id = Array.isArray(eos_token_id) ? eos_token_id : [eos_token_id]; + } + + /** + * Apply logit processor. + * @param {Array} input_ids The input IDs. + * @param {Object} logits The logits. + * @returns {Object} The processed logits. + */ + _call(input_ids, logits) { + + for (const bad_word_ids of this.bad_words_ids) { + // Whether to modify the logits of the last token in the bad word id sequence + let mark = true; + + // For each bad word in the list, if the current sequence of input ids ends with this sequence (excluding the last), + // then we set the logits of the last bad word id to -Infinity. + for (let i = 1; i <= bad_word_ids.length - 1 && bad_word_ids.length < input_ids.length; ++i) { + + if (bad_word_ids.at(-i - 1) !== input_ids.at(-i)) { + // We have found a mismatch + mark = false; + break; + } + } + if (mark) { + logits.data[bad_word_ids.at(-1)] = -Infinity; + } + } + + return logits + } +} + +/** + * @typedef {Object} GenerationConfigType The default configuration parameters. + * @property {number} [max_length=20] The maximum length the generated tokens can have. Corresponds to the length of the input prompt + `max_new_tokens`. Its effect is overridden by `max_new_tokens`, if also set. + * @property {number} [max_new_tokens=null] The maximum numbers of tokens to generate, ignoring the number of tokens in the prompt. + * @property {number} [min_length=0] The minimum length of the sequence to be generated. Corresponds to the length of the input prompt + `min_new_tokens`. Its effect is overridden by `min_new_tokens`, if also set. + * @property {number} [min_new_tokens=null] The minimum numbers of tokens to generate, ignoring the number of tokens in the prompt. + * @property {boolean|"never"} [early_stopping=false] Controls the stopping condition for beam-based methods, like beam-search. It accepts the following values: + * - `true`, where the generation stops as soon as there are `num_beams` complete candidates; + * - `false`, where an heuristic is applied and the generation stops when is it very unlikely to find better candidates; + * - `"never"`, where the beam search procedure only stops when there cannot be better candidates (canonical beam search algorithm). + * @property {number} [max_time=null] The maximum amount of time you allow the computation to run for in seconds. Generation will still finish the current pass after allocated time has been passed. + * + * @property {boolean} [do_sample=false] Whether or not to use sampling; use greedy decoding otherwise. + * @property {number} [num_beams=1] Number of beams for beam search. 1 means no beam search. + * @property {number} [num_beam_groups=1] Number of groups to divide `num_beams` into in order to ensure diversity among different groups of beams. See [this paper](https://arxiv.org/pdf/1610.02424.pdf) for more details. + * @property {number} [penalty_alpha=null] The values balance the model confidence and the degeneration penalty in contrastive search decoding. + * @property {boolean} [use_cache=true] Whether or not the model should use the past last key/values attentions (if applicable to the model) to speed up decoding. + * + * @property {number} [temperature=1.0] The value used to modulate the next token probabilities. + * @property {number} [top_k=50] The number of highest probability vocabulary tokens to keep for top-k-filtering. + * @property {number} [top_p=1.0] If set to float < 1, only the smallest set of most probable tokens with probabilities that add up to `top_p` or higher are kept for generation. + * @property {number} [typical_p=1.0] Local typicality measures how similar the conditional probability of predicting a target token next is to the expected conditional probability of predicting a random token next, given the partial text already generated. If set to float < 1, the smallest set of the most locally typical tokens with probabilities that add up to `typical_p` or higher are kept for generation. See [this paper](https://arxiv.org/pdf/2202.00666.pdf) for more details. + * @property {number} [epsilon_cutoff=0.0] If set to float strictly between 0 and 1, only tokens with a conditional probability greater than `epsilon_cutoff` will be sampled. In the paper, suggested values range from 3e-4 to 9e-4, depending on the size of the model. See [Truncation Sampling as Language Model Desmoothing](https://arxiv.org/abs/2210.15191) for more details. + * @property {number} [eta_cutoff=0.0] Eta sampling is a hybrid of locally typical sampling and epsilon sampling. If set to float strictly between 0 and 1, a token is only considered if it is greater than either `eta_cutoff` or `sqrt(eta_cutoff) * exp(-entropy(softmax(next_token_logits)))`. The latter term is intuitively the expected next token probability, scaled by `sqrt(eta_cutoff)`. In the paper, suggested values range from 3e-4 to 2e-3, depending on the size of the model. See [Truncation Sampling as Language Model Desmoothing](https://arxiv.org/abs/2210.15191) for more details. + * @property {number} [diversity_penalty=0.0] This value is subtracted from a beam's score if it generates a token same as any beam from other group at a particular time. Note that `diversity_penalty` is only effective if `group beam search` is enabled. + * @property {number} [repetition_penalty=1.0] The parameter for repetition penalty. 1.0 means no penalty. See [this paper](https://arxiv.org/pdf/1909.05858.pdf) for more details. + * @property {number} [encoder_repetition_penalty=1.0] The paramater for encoder_repetition_penalty. An exponential penalty on sequences that are not in the original input. 1.0 means no penalty. + * @property {number} [length_penalty=1.0] Exponential penalty to the length that is used with beam-based generation. It is applied as an exponent to the sequence length, which in turn is used to divide the score of the sequence. Since the score is the log likelihood of the sequence (i.e. negative), `length_penalty` > 0.0 promotes longer sequences, while `length_penalty` < 0.0 encourages shorter sequences. + * @property {number} [no_repeat_ngram_size=0] If set to int > 0, all ngrams of that size can only occur once. + * @property {number[][]} [bad_words_ids=null] List of token ids that are not allowed to be generated. In order to get the token ids of the words that should not appear in the generated text, use `(await tokenizer(bad_words, {add_prefix_space: true, add_special_tokens: false})).input_ids`. + * @property {number[][]|number[][][]} [force_words_ids=null] List of token ids that must be generated. If given a `number[][]`, this is treated as a simple list of words that must be included, the opposite to `bad_words_ids`. If given `number[][][]`, this triggers a [disjunctive constraint](https://github.com/huggingface/transformers/issues/14081), where one can allow different forms of each word. + * @property {boolean} [renormalize_logits=false] Whether to renormalize the logits after applying all the logits processors or warpers (including the custom ones). It's highly recommended to set this flag to `true` as the search algorithms suppose the score logits are normalized but some logit processors or warpers break the normalization. + * @property {Object[]} [constraints=null] Custom constraints that can be added to the generation to ensure that the output will contain the use of certain tokens as defined by `Constraint` objects, in the most sensible way possible. + * + * @property {number} [forced_bos_token_id=null] The id of the token to force as the first generated token after the `decoder_start_token_id`. Useful for multilingual models like mBART where the first generated token needs to be the target language token. + * @property {number|number[]} [forced_eos_token_id=null] The id of the token to force as the last generated token when `max_length` is reached. Optionally, use a list to set multiple *end-of-sequence* tokens. + * @property {boolean} [remove_invalid_values=false] Whether to remove possible *nan* and *inf* outputs of the model to prevent the generation method to crash. Note that using `remove_invalid_values` can slow down generation. + * @property {number[]} [exponential_decay_length_penalty=null] This Tuple adds an exponentially increasing length penalty, after a certain amount of tokens have been generated. The tuple shall consist of: `(start_index, decay_factor)` where `start_index` indicates where penalty starts and `decay_factor` represents the factor of exponential decay. + * @property {number[]} [suppress_tokens=null] A list of tokens that will be suppressed at generation. The `SupressTokens` logit processor will set their log probs to `-inf` so that they are not sampled. + * @property {number[]} [begin_suppress_tokens=null] A list of tokens that will be suppressed at the beginning of the generation. The `SupressBeginTokens` logit processor will set their log probs to `-inf` so that they are not sampled. + * @property {number[][]} [forced_decoder_ids=null] A list of pairs of integers which indicates a mapping from generation indices to token indices that will be forced before sampling. For example, `[[1, 123]]` means the second generated token will always be a token of index 123. + * + * @property {number} [num_return_sequences=1] The number of independently computed returned sequences for each element in the batch. + * @property {boolean} [output_attentions=false] Whether or not to return the attentions tensors of all attention layers. See `attentions` under returned tensors for more details. + * @property {boolean} [output_hidden_states=false] Whether or not to return the hidden states of all layers. See `hidden_states` under returned tensors for more details. + * @property {boolean} [output_scores=false] Whether or not to return the prediction scores. See `scores` under returned tensors for more details. + * @property {boolean} [return_dict_in_generate=false] Whether or not to return a `ModelOutput` instead of a plain tuple. + * + * @property {number} [pad_token_id=null] The id of the *padding* token. + * @property {number} [bos_token_id=null] The id of the *beginning-of-sequence* token. + * @property {number|number[]} [eos_token_id=null] The id of the *end-of-sequence* token. Optionally, use a list to set multiple *end-of-sequence* tokens. + * + * @property {number} [encoder_no_repeat_ngram_size=0] If set to int > 0, all ngrams of that size that occur in the `encoder_input_ids` cannot occur in the `decoder_input_ids`. + * @property {number} [decoder_start_token_id=null] If an encoder-decoder model starts decoding with a different token than *bos*, the id of that token. + * + * @property {Object} [generation_kwargs={}] Additional generation kwargs will be forwarded to the `generate` function of the model. Kwargs that are not present in `generate`'s signature will be used in the model forward pass. + */ + +/** + * Class that holds a configuration for a generation task. + * @type {new (kwargs?: GenerationConfigType) => GenerationConfigType} + */ +export const GenerationConfig = /** @type {any} */ (class { + + /** + * Create a new GenerationConfig object. + * @param {GenerationConfigType} kwargs + */ + constructor(kwargs = {}) { + // Parameters that control the length of the output + this.max_length = kwargs.max_length ?? 20; + this.max_new_tokens = kwargs.max_new_tokens ?? null; + this.min_length = kwargs.min_length ?? 0; + this.min_new_tokens = kwargs.min_new_tokens ?? null; + this.early_stopping = kwargs.early_stopping ?? false; + this.max_time = kwargs.max_time ?? null; + + // Parameters that control the generation strategy used + this.do_sample = kwargs.do_sample ?? false; + this.num_beams = kwargs.num_beams ?? 1; + this.num_beam_groups = kwargs.num_beam_groups ?? 1; + this.penalty_alpha = kwargs.penalty_alpha ?? null; + this.use_cache = kwargs.use_cache ?? true; + + // Parameters for manipulation of the model output logits + this.temperature = kwargs.temperature ?? 1.0; + this.top_k = kwargs.top_k ?? 50; + this.top_p = kwargs.top_p ?? 1.0; + this.typical_p = kwargs.typical_p ?? 1.0; + this.epsilon_cutoff = kwargs.epsilon_cutoff ?? 0.0; + this.eta_cutoff = kwargs.eta_cutoff ?? 0.0; + this.diversity_penalty = kwargs.diversity_penalty ?? 0.0; + this.repetition_penalty = kwargs.repetition_penalty ?? 1.0; + this.encoder_repetition_penalty = kwargs.encoder_repetition_penalty ?? 1.0; + this.length_penalty = kwargs.length_penalty ?? 1.0; + this.no_repeat_ngram_size = kwargs.no_repeat_ngram_size ?? 0; + this.bad_words_ids = kwargs.bad_words_ids ?? null; + this.force_words_ids = kwargs.force_words_ids ?? null; + this.renormalize_logits = kwargs.renormalize_logits ?? false; + this.constraints = kwargs.constraints ?? null; + this.forced_bos_token_id = kwargs.forced_bos_token_id ?? null; + this.forced_eos_token_id = kwargs.forced_eos_token_id ?? null; + this.remove_invalid_values = kwargs.remove_invalid_values ?? false; + this.exponential_decay_length_penalty = kwargs.exponential_decay_length_penalty ?? null; + this.suppress_tokens = kwargs.suppress_tokens ?? null; + this.begin_suppress_tokens = kwargs.begin_suppress_tokens ?? null; + this.forced_decoder_ids = kwargs.forced_decoder_ids ?? null; + + // Parameters that define the output variables of `generate` + this.num_return_sequences = kwargs.num_return_sequences ?? 1; + this.output_attentions = kwargs.output_attentions ?? false; + this.output_hidden_states = kwargs.output_hidden_states ?? false; + this.output_scores = kwargs.output_scores ?? false; + this.return_dict_in_generate = kwargs.return_dict_in_generate ?? false; + + // Special tokens that can be used at generation time + this.pad_token_id = kwargs.pad_token_id ?? null; + this.bos_token_id = kwargs.bos_token_id ?? null; + this.eos_token_id = kwargs.eos_token_id ?? null; + + // Generation parameters exclusive to encoder-decoder models + this.encoder_no_repeat_ngram_size = kwargs.encoder_no_repeat_ngram_size ?? 0; + this.decoder_start_token_id = kwargs.decoder_start_token_id ?? null; + + // Wild card + this.generation_kwargs = kwargs.generation_kwargs ?? {}; + } +}); + +/** + * Sampler is a base class for all sampling methods used for text generation. + */ +export class Sampler extends Callable { + /** + * Creates a new Sampler object with the specified generation config. + * @param {GenerationConfigType} generation_config The generation config. + */ + constructor(generation_config) { + super(); + this.generation_config = generation_config; + } + + /** + * Executes the sampler, using the specified logits. + * @param {Tensor} logits + * @param {number} index + * @returns {void} + */ + _call(logits, index = -1) { + // Sample from logits, of dims [batch, sequence_length, vocab_size]. + // If index is specified, sample from [batch, index, vocab_size]. + return this.sample(logits, index); + } + + /** + * Abstract method for sampling the logits. + * @param {Tensor} logits + * @param {number} index + * @throws {Error} + */ + sample(logits, index) { + throw Error("sample should be implemented in subclasses.") + } + + /** + * Returns the specified logits as an array, with temperature applied. + * @param {Tensor} logits + * @param {number} index + * @returns {Float32Array} + */ + getLogits(logits, index) { + let vocabSize = logits.dims.at(-1); + + let logs = /** @type {Float32Array} */(logits.data); + + if (index === -1) { + logs = logs.slice(-vocabSize); + } else { + let startIndex = index * vocabSize; + logs = logs.slice(startIndex, startIndex + vocabSize); + } + + // add temperature + if (this.generation_config.temperature > 0) { + logs = logs.map(x => x / this.generation_config.temperature) + } + return logs; + } + + /** + * Selects an item randomly based on the specified probabilities. + * @param {Array} probabilities An array of probabilities to use for selection. + * @returns {number} The index of the selected item. + */ + randomSelect(probabilities) { + // Return index of chosen item + let sumProbabilities = probabilities.reduce((acc, curr) => acc + curr, 0); + + let r = Math.random() * sumProbabilities; + for (let i = 0; i < probabilities.length; ++i) { + r -= probabilities[i]; + if (r <= 0) { + return i; + } + } + return 0; // return first (most probable) as a fallback + } + + /** + * Returns a Sampler object based on the specified options. + * @param {GenerationConfigType} generation_config An object containing options for the sampler. + * @returns {Sampler} A Sampler object. + */ + static getSampler(generation_config) { + // - *greedy decoding*: `num_beams=1` and `do_sample=False` + // - *contrastive search*: `penalty_alpha>0` and `top_k>1` + // - *multinomial sampling*: `num_beams=1` and `do_sample=True` + // - *beam-search decoding*: `num_beams>1` and `do_sample=False` + // - *beam-search multinomial sampling*: `num_beams>1` and `do_sample=True` + // - *diverse beam-search decoding*: `num_beams>1` and `num_beam_groups>1` + // - *constrained beam-search decoding*: `constraints!=None` or `force_words_ids!=None` + + // NOTE: beam search is implemented directly into the generation function + if (generation_config.do_sample) { + return new MultinomialSampler(generation_config); + + } else if (generation_config.num_beams > 1) { + return new BeamSearchSampler(generation_config); + + } else { + if (generation_config.num_return_sequences > 1) { + throw Error(`num_return_sequences has to be 1 when doing greedy search, but is ${generation_config.num_return_sequences}.`) + } + return new GreedySampler(generation_config); + } + } +} + +/** + * Class representing a Greedy Sampler. + * @extends Sampler + */ +class GreedySampler extends Sampler { + /** + * Sample the maximum probability of a given logits tensor. + * @param {Tensor} logits + * @param {number} [index=-1] + * @returns {Array} An array with a single tuple, containing the index of the maximum value and a meaningless score (since this is a greedy search). + */ + sample(logits, index = -1) { + // NOTE: no need to do log_softmax here since we only take the maximum + let logs = this.getLogits(logits, index); + let argmax = max(logs)[1]; + + // Note: score is meaningless in this context, since we are performing + // greedy search (p = 1 => log(p) = 0) + return [ + [argmax, 0] + ]; + } +} + +/** + * Class representing a MultinomialSampler. + * @extends Sampler + */ +class MultinomialSampler extends Sampler { + + /** + * Sample from the logits. + * @param {Tensor} logits + * @param {number} index + * @returns {Array} + */ + sample(logits, index = -1) { + let k = logits.dims.at(-1); // defaults to vocab size + if (this.generation_config.top_k > 0) { + k = Math.min(this.generation_config.top_k, k); + } + + // Get logits of nth token + const logs = this.getLogits(logits, index); + + // Get top k tokens + const topLogits = getTopItems(logs, k); + + // Compute softmax over logits + const probabilities = softmax(topLogits.map(x => x[1])); + + return Array.from({ length: this.generation_config.num_beams }, () => { + const sampledIndex = this.randomSelect(probabilities); + return [ + topLogits[sampledIndex][0], // token id + Math.log(probabilities[sampledIndex]), // score + ]; + }); + } +} + + +/** + * Class representing a BeamSearchSampler. + * @extends Sampler + */ +class BeamSearchSampler extends Sampler { + + /** + * Sample from the logits. + * @param {Tensor} logits + * @param {number} index + * @returns {Array} + */ + sample(logits, index = -1) { + let k = logits.dims.at(-1); // defaults to vocab size + if (this.generation_config.top_k > 0) { + k = Math.min(this.generation_config.top_k, k); + } + + // Get logits of nth token + const logs = this.getLogits(logits, index); + + // Get top k tokens + const topLogits = getTopItems(logs, k); + + // Compute softmax over logits + const probabilities = softmax(topLogits.map(x => x[1])); + + return Array.from({ length: this.generation_config.num_beams }, (_, i) => { + return [ + topLogits[i][0], // token id + Math.log(probabilities[i]), // score + ]; + }); + } +} diff --git a/core/vendor/modules/@xenova/transformers/src/utils/hub.js b/core/vendor/modules/@xenova/transformers/src/utils/hub.js new file mode 100644 index 000000000..93617674c --- /dev/null +++ b/core/vendor/modules/@xenova/transformers/src/utils/hub.js @@ -0,0 +1,661 @@ + +/** + * @file Utility functions to interact with the Hugging Face Hub (https://huggingface.co/models) + * + * @module utils/hub + */ + +import fs from 'fs'; +import path from 'path'; +import stream from 'stream/web'; + +import { env } from '../env.js'; +import { dispatchCallback } from './core.js'; + +if (!globalThis.ReadableStream) { + // @ts-ignore + globalThis.ReadableStream = stream.ReadableStream; // ReadableStream is not a global with Node 16 +} + +/** + * @typedef {Object} PretrainedOptions Options for loading a pretrained model. + * @property {boolean?} [quantized=true] Whether to load the 8-bit quantized version of the model (only applicable when loading model files). + * @property {function} [progress_callback=null] If specified, this function will be called during model construction, to provide the user with progress updates. + * @property {Object} [config=null] Configuration for the model to use instead of an automatically loaded configuration. Configuration can be automatically loaded when: + * - The model is a model provided by the library (loaded with the *model id* string of a pretrained model). + * - The model is loaded by supplying a local directory as `pretrained_model_name_or_path` and a configuration JSON file named *config.json* is found in the directory. + * @property {string} [cache_dir=null] Path to a directory in which a downloaded pretrained model configuration should be cached if the standard cache should not be used. + * @property {boolean} [local_files_only=false] Whether or not to only look at local files (e.g., not try downloading the model). + * @property {string} [revision='main'] The specific model version to use. It can be a branch name, a tag name, or a commit id, + * since we use a git-based system for storing models and other artifacts on huggingface.co, so `revision` can be any identifier allowed by git. + * NOTE: This setting is ignored for local requests. + * @property {string} [model_file_name=null] If specified, load the model with this name (excluding the .onnx suffix). Currently only valid for encoder- or decoder-only models. + */ + +class FileResponse { + /** + * Mapping from file extensions to MIME types. + */ + _CONTENT_TYPE_MAP = { + 'txt': 'text/plain', + 'html': 'text/html', + 'css': 'text/css', + 'js': 'text/javascript', + 'json': 'application/json', + 'png': 'image/png', + 'jpg': 'image/jpeg', + 'jpeg': 'image/jpeg', + 'gif': 'image/gif', + } + /** + * Creates a new `FileResponse` object. + * @param {string|URL} filePath + */ + constructor(filePath) { + this.filePath = filePath; + this.headers = new Headers(); + + this.exists = fs.existsSync(filePath); + if (this.exists) { + this.status = 200; + this.statusText = 'OK'; + + let stats = fs.statSync(filePath); + this.headers.set('content-length', stats.size.toString()); + + this.updateContentType(); + + let self = this; + this.body = new ReadableStream({ + start(controller) { + self.arrayBuffer().then(buffer => { + controller.enqueue(new Uint8Array(buffer)); + controller.close(); + }) + } + }); + } else { + this.status = 404; + this.statusText = 'Not Found'; + this.body = null; + } + } + + /** + * Updates the 'content-type' header property of the response based on the extension of + * the file specified by the filePath property of the current object. + * @returns {void} + */ + updateContentType() { + // Set content-type header based on file extension + const extension = this.filePath.toString().split('.').pop().toLowerCase(); + this.headers.set('content-type', this._CONTENT_TYPE_MAP[extension] ?? 'application/octet-stream'); + } + + /** + * Clone the current FileResponse object. + * @returns {FileResponse} A new FileResponse object with the same properties as the current object. + */ + clone() { + let response = new FileResponse(this.filePath); + response.exists = this.exists; + response.status = this.status; + response.statusText = this.statusText; + response.headers = new Headers(this.headers); + return response; + } + + /** + * Reads the contents of the file specified by the filePath property and returns a Promise that + * resolves with an ArrayBuffer containing the file's contents. + * @returns {Promise} A Promise that resolves with an ArrayBuffer containing the file's contents. + * @throws {Error} If the file cannot be read. + */ + async arrayBuffer() { + const data = await fs.promises.readFile(this.filePath); + return data.buffer; + } + + /** + * Reads the contents of the file specified by the filePath property and returns a Promise that + * resolves with a Blob containing the file's contents. + * @returns {Promise} A Promise that resolves with a Blob containing the file's contents. + * @throws {Error} If the file cannot be read. + */ + async blob() { + const data = await fs.promises.readFile(this.filePath); + return new Blob([data], { type: this.headers.get('content-type') }); + } + + /** + * Reads the contents of the file specified by the filePath property and returns a Promise that + * resolves with a string containing the file's contents. + * @returns {Promise} A Promise that resolves with a string containing the file's contents. + * @throws {Error} If the file cannot be read. + */ + async text() { + const data = await fs.promises.readFile(this.filePath, 'utf8'); + return data; + } + + /** + * Reads the contents of the file specified by the filePath property and returns a Promise that + * resolves with a parsed JavaScript object containing the file's contents. + * + * @returns {Promise} A Promise that resolves with a parsed JavaScript object containing the file's contents. + * @throws {Error} If the file cannot be read. + */ + async json() { + return JSON.parse(await this.text()); + } +} + +/** + * Determines whether the given string is a valid HTTP or HTTPS URL. + * @param {string|URL} string The string to test for validity as an HTTP or HTTPS URL. + * @param {string[]} [validHosts=null] A list of valid hostnames. If specified, the URL's hostname must be in this list. + * @returns {boolean} True if the string is a valid HTTP or HTTPS URL, false otherwise. + */ +function isValidHttpUrl(string, validHosts = null) { + // https://stackoverflow.com/a/43467144 + let url; + try { + url = new URL(string); + } catch (_) { + return false; + } + if (validHosts && !validHosts.includes(url.hostname)) { + return false; + } + return url.protocol === "http:" || url.protocol === "https:"; +} + +/** + * Helper function to get a file, using either the Fetch API or FileSystem API. + * + * @param {URL|string} urlOrPath The URL/path of the file to get. + * @returns {Promise} A promise that resolves to a FileResponse object (if the file is retrieved using the FileSystem API), or a Response object (if the file is retrieved using the Fetch API). + */ +export async function getFile(urlOrPath) { + + if (env.useFS && !isValidHttpUrl(urlOrPath)) { + return new FileResponse(urlOrPath); + + } else if (typeof process !== 'undefined' && process?.release?.name === 'node') { + const IS_CI = !!process.env?.TESTING_REMOTELY; + const version = env.version; + + const headers = new Headers(); + headers.set('User-Agent', `transformers.js/${version}; is_ci/${IS_CI};`); + + // Check whether we are making a request to the Hugging Face Hub. + const isHFURL = isValidHttpUrl(urlOrPath, ['huggingface.co', 'hf.co']); + if (isHFURL) { + // If an access token is present in the environment variables, + // we add it to the request headers. + // NOTE: We keep `HF_ACCESS_TOKEN` for backwards compatibility (as a fallback). + const token = process.env?.HF_TOKEN ?? process.env?.HF_ACCESS_TOKEN; + if (token) { + headers.set('Authorization', `Bearer ${token}`); + } + } + return fetch(urlOrPath, { headers }); + } else { + // Running in a browser-environment, so we use default headers + // NOTE: We do not allow passing authorization headers in the browser, + // since this would require exposing the token to the client. + return fetch(urlOrPath); + } +} + +const ERROR_MAPPING = { + // 4xx errors (https://developer.mozilla.org/en-US/docs/Web/HTTP/Status#client_error_responses) + 400: 'Bad request error occurred while trying to load file', + 401: 'Unauthorized access to file', + 403: 'Forbidden access to file', + 404: 'Could not locate file', + 408: 'Request timeout error occurred while trying to load file', + + // 5xx errors (https://developer.mozilla.org/en-US/docs/Web/HTTP/Status#server_error_responses) + 500: 'Internal server error error occurred while trying to load file', + 502: 'Bad gateway error occurred while trying to load file', + 503: 'Service unavailable error occurred while trying to load file', + 504: 'Gateway timeout error occurred while trying to load file', +} +/** + * Helper method to handle fatal errors that occur while trying to load a file from the Hugging Face Hub. + * @param {number} status The HTTP status code of the error. + * @param {string} remoteURL The URL of the file that could not be loaded. + * @param {boolean} fatal Whether to raise an error if the file could not be loaded. + * @returns {null} Returns `null` if `fatal = true`. + * @throws {Error} If `fatal = false`. + */ +function handleError(status, remoteURL, fatal) { + if (!fatal) { + // File was not loaded correctly, but it is optional. + // TODO in future, cache the response? + return null; + } + + const message = ERROR_MAPPING[status] ?? `Error (${status}) occurred while trying to load file`; + throw Error(`${message}: "${remoteURL}".`); +} + +class FileCache { + /** + * Instantiate a `FileCache` object. + * @param {string} path + */ + constructor(path) { + this.path = path; + } + + /** + * Checks whether the given request is in the cache. + * @param {string} request + * @returns {Promise} + */ + async match(request) { + + let filePath = path.join(this.path, request); + let file = new FileResponse(filePath); + + if (file.exists) { + return file; + } else { + return undefined; + } + } + + /** + * Adds the given response to the cache. + * @param {string} request + * @param {Response|FileResponse} response + * @returns {Promise} + */ + async put(request, response) { + const buffer = Buffer.from(await response.arrayBuffer()); + + let outputPath = path.join(this.path, request); + + try { + await fs.promises.mkdir(path.dirname(outputPath), { recursive: true }); + await fs.promises.writeFile(outputPath, buffer); + + } catch (err) { + console.warn('An error occurred while writing the file to cache:', err) + } + } + + // TODO add the rest? + // addAll(requests: RequestInfo[]): Promise; + // delete(request: RequestInfo | URL, options?: CacheQueryOptions): Promise; + // keys(request?: RequestInfo | URL, options?: CacheQueryOptions): Promise>; + // match(request: RequestInfo | URL, options?: CacheQueryOptions): Promise; + // matchAll(request?: RequestInfo | URL, options?: CacheQueryOptions): Promise>; +} + +/** + * + * @param {FileCache|Cache} cache The cache to search + * @param {string[]} names The names of the item to search for + * @returns {Promise} The item from the cache, or undefined if not found. + */ +async function tryCache(cache, ...names) { + for (let name of names) { + try { + let result = await cache.match(name); + if (result) return result; + } catch (e) { + continue; + } + } + return undefined; +} + +/** + * + * Retrieves a file from either a remote URL using the Fetch API or from the local file system using the FileSystem API. + * If the filesystem is available and `env.useCache = true`, the file will be downloaded and cached. + * + * @param {string} path_or_repo_id This can be either: + * - a string, the *model id* of a model repo on huggingface.co. + * - a path to a *directory* potentially containing the file. + * @param {string} filename The name of the file to locate in `path_or_repo`. + * @param {boolean} [fatal=true] Whether to throw an error if the file is not found. + * @param {PretrainedOptions} [options] An object containing optional parameters. + * + * @throws Will throw an error if the file is not found and `fatal` is true. + * @returns {Promise} A Promise that resolves with the file content as a buffer. + */ +export async function getModelFile(path_or_repo_id, filename, fatal = true, options = {}) { + + if (!env.allowLocalModels) { + // User has disabled local models, so we just make sure other settings are correct. + + if (options.local_files_only) { + throw Error("Invalid configuration detected: local models are disabled (`env.allowLocalModels=false`) but you have requested to only use local models (`local_files_only=true`).") + } else if (!env.allowRemoteModels) { + throw Error("Invalid configuration detected: both local and remote models are disabled. Fix by setting `env.allowLocalModels` or `env.allowRemoteModels` to `true`.") + } + } + + // Initiate file retrieval + dispatchCallback(options.progress_callback, { + status: 'initiate', + name: path_or_repo_id, + file: filename + }) + + // First, check if the a caching backend is available + // If no caching mechanism available, will download the file every time + let cache; + if (!cache && env.useBrowserCache) { + if (typeof caches === 'undefined') { + throw Error('Browser cache is not available in this environment.') + } + try { + // In some cases, the browser cache may be visible, but not accessible due to security restrictions. + // For example, when running an application in an iframe, if a user attempts to load the page in + // incognito mode, the following error is thrown: `DOMException: Failed to execute 'open' on 'CacheStorage': + // An attempt was made to break through the security policy of the user agent.` + // So, instead of crashing, we just ignore the error and continue without using the cache. + cache = await caches.open('transformers-cache'); + } catch (e) { + console.warn('An error occurred while opening the browser cache:', e); + } + } + + if (!cache && env.useFSCache) { + // TODO throw error if not available + + // If `cache_dir` is not specified, use the default cache directory + cache = new FileCache(options.cache_dir ?? env.cacheDir); + } + + if (!cache && env.useCustomCache) { + // Allow the user to specify a custom cache system. + if (!env.customCache) { + throw Error('`env.useCustomCache=true`, but `env.customCache` is not defined.') + } + + // Check that the required methods are defined: + if (!env.customCache.match || !env.customCache.put) { + throw new Error( + "`env.customCache` must be an object which implements the `match` and `put` functions of the Web Cache API. " + + "For more information, see https://developer.mozilla.org/en-US/docs/Web/API/Cache" + ) + } + cache = env.customCache; + } + + const revision = options.revision ?? 'main'; + + let requestURL = pathJoin(path_or_repo_id, filename); + let localPath = pathJoin(env.localModelPath, requestURL); + + let remoteURL = pathJoin( + env.remoteHost, + env.remotePathTemplate + .replaceAll('{model}', path_or_repo_id) + .replaceAll('{revision}', encodeURIComponent(revision)), + filename + ); + + // Choose cache key for filesystem cache + // When using the main revision (default), we use the request URL as the cache key. + // If a specific revision is requested, we account for this in the cache key. + let fsCacheKey = revision === 'main' ? requestURL : pathJoin(path_or_repo_id, revision, filename); + + /** @type {string} */ + let cacheKey; + let proposedCacheKey = cache instanceof FileCache ? fsCacheKey : remoteURL; + + // Whether to cache the final response in the end. + let toCacheResponse = false; + + /** @type {Response|FileResponse|undefined} */ + let response; + + if (cache) { + // A caching system is available, so we try to get the file from it. + // 1. We first try to get from cache using the local path. In some environments (like deno), + // non-URL cache keys are not allowed. In these cases, `response` will be undefined. + // 2. If no response is found, we try to get from cache using the remote URL or file system cache. + response = await tryCache(cache, localPath, proposedCacheKey); + } + + const cacheHit = response !== undefined; + + if (response === undefined) { + // Caching not available, or file is not cached, so we perform the request + + if (env.allowLocalModels) { + // Accessing local models is enabled, so we try to get the file locally. + // If request is a valid HTTP URL, we skip the local file check. Otherwise, we try to get the file locally. + const isURL = isValidHttpUrl(requestURL); + if (!isURL) { + try { + response = await getFile(localPath); + cacheKey = localPath; // Update the cache key to be the local path + } catch (e) { + // Something went wrong while trying to get the file locally. + // NOTE: error handling is done in the next step (since `response` will be undefined) + console.warn(`Unable to load from local path "${localPath}": "${e}"`); + } + } else if (options.local_files_only) { + throw new Error(`\`local_files_only=true\`, but attempted to load a remote file from: ${requestURL}.`); + } else if (!env.allowRemoteModels) { + throw new Error(`\`env.allowRemoteModels=false\`, but attempted to load a remote file from: ${requestURL}.`); + } + } + + if (response === undefined || response.status === 404) { + // File not found locally. This means either: + // - The user has disabled local file access (`env.allowLocalModels=false`) + // - the path is a valid HTTP url (`response === undefined`) + // - the path is not a valid HTTP url and the file is not present on the file system or local server (`response.status === 404`) + + if (options.local_files_only || !env.allowRemoteModels) { + // User requested local files only, but the file is not found locally. + if (fatal) { + throw Error(`\`local_files_only=true\` or \`env.allowRemoteModels=false\` and file was not found locally at "${localPath}".`); + } else { + // File not found, but this file is optional. + // TODO in future, cache the response? + return null; + } + } + + // File not found locally, so we try to download it from the remote server + response = await getFile(remoteURL); + + if (response.status !== 200) { + return handleError(response.status, remoteURL, fatal); + } + + // Success! We use the proposed cache key from earlier + cacheKey = proposedCacheKey; + } + + // Only cache the response if: + toCacheResponse = + cache // 1. A caching system is available + && typeof Response !== 'undefined' // 2. `Response` is defined (i.e., we are in a browser-like environment) + && response instanceof Response // 3. result is a `Response` object (i.e., not a `FileResponse`) + && response.status === 200 // 4. request was successful (status code 200) + } + + // Start downloading + dispatchCallback(options.progress_callback, { + status: 'download', + name: path_or_repo_id, + file: filename + }) + + const progressInfo = { + status: 'progress', + name: path_or_repo_id, + file: filename + } + + /** @type {Uint8Array} */ + let buffer; + + if (!options.progress_callback) { + // If no progress callback is specified, we can use the `.arrayBuffer()` + // method to read the response. + buffer = new Uint8Array(await response.arrayBuffer()); + + } else if ( + cacheHit // The item is being read from the cache + && + typeof navigator !== 'undefined' && /firefox/i.test(navigator.userAgent) // We are in Firefox + ) { + // Due to bug in Firefox, we cannot display progress when loading from cache. + // Fortunately, since this should be instantaneous, this should not impact users too much. + buffer = new Uint8Array(await response.arrayBuffer()); + + // For completeness, we still fire the final progress callback + dispatchCallback(options.progress_callback, { + ...progressInfo, + progress: 100, + loaded: buffer.length, + total: buffer.length, + }) + } else { + buffer = await readResponse(response, data => { + dispatchCallback(options.progress_callback, { + ...progressInfo, + ...data, + }) + }) + } + + if ( + // Only cache web responses + // i.e., do not cache FileResponses (prevents duplication) + toCacheResponse && cacheKey + && + // Check again whether request is in cache. If not, we add the response to the cache + (await cache.match(cacheKey) === undefined) + ) { + // NOTE: We use `new Response(buffer, ...)` instead of `response.clone()` to handle LFS files + await cache.put(cacheKey, new Response(buffer, { + headers: response.headers + })) + .catch(err => { + // Do not crash if unable to add to cache (e.g., QuotaExceededError). + // Rather, log a warning and proceed with execution. + console.warn(`Unable to add response to browser cache: ${err}.`); + }); + + } + + dispatchCallback(options.progress_callback, { + status: 'done', + name: path_or_repo_id, + file: filename + }); + + return buffer; +} + +/** + * Fetches a JSON file from a given path and file name. + * + * @param {string} modelPath The path to the directory containing the file. + * @param {string} fileName The name of the file to fetch. + * @param {boolean} [fatal=true] Whether to throw an error if the file is not found. + * @param {PretrainedOptions} [options] An object containing optional parameters. + * @returns {Promise} The JSON data parsed into a JavaScript object. + * @throws Will throw an error if the file is not found and `fatal` is true. + */ +export async function getModelJSON(modelPath, fileName, fatal = true, options = {}) { + let buffer = await getModelFile(modelPath, fileName, fatal, options); + if (buffer === null) { + // Return empty object + return {} + } + + let decoder = new TextDecoder('utf-8'); + let jsonData = decoder.decode(buffer); + + return JSON.parse(jsonData); +} + +/** + * Read and track progress when reading a Response object + * + * @param {any} response The Response object to read + * @param {function} progress_callback The function to call with progress updates + * @returns {Promise} A Promise that resolves with the Uint8Array buffer + */ +async function readResponse(response, progress_callback) { + + const contentLength = response.headers.get('Content-Length'); + if (contentLength === null) { + console.warn('Unable to determine content-length from response headers. Will expand buffer when needed.') + } + let total = parseInt(contentLength ?? '0'); + let buffer = new Uint8Array(total); + let loaded = 0; + + const reader = response.body.getReader(); + async function read() { + const { done, value } = await reader.read(); + if (done) return; + + let newLoaded = loaded + value.length; + if (newLoaded > total) { + total = newLoaded; + + // Adding the new data will overflow buffer. + // In this case, we extend the buffer + let newBuffer = new Uint8Array(total); + + // copy contents + newBuffer.set(buffer); + + buffer = newBuffer; + } + buffer.set(value, loaded) + loaded = newLoaded; + + const progress = (loaded / total) * 100; + + // Call your function here + progress_callback({ + progress: progress, + loaded: loaded, + total: total, + }) + + return read(); + } + + // Actually read + await read(); + + return buffer; +} + +/** + * Joins multiple parts of a path into a single path, while handling leading and trailing slashes. + * + * @param {...string} parts Multiple parts of a path. + * @returns {string} A string representing the joined path. + */ +function pathJoin(...parts) { + // https://stackoverflow.com/a/55142565 + parts = parts.map((part, index) => { + if (index) { + part = part.replace(new RegExp('^/'), ''); + } + if (index !== parts.length - 1) { + part = part.replace(new RegExp('/$'), ''); + } + return part; + }) + return parts.join('/'); +} diff --git a/core/vendor/modules/@xenova/transformers/src/utils/image.js b/core/vendor/modules/@xenova/transformers/src/utils/image.js new file mode 100644 index 000000000..2d12cb876 --- /dev/null +++ b/core/vendor/modules/@xenova/transformers/src/utils/image.js @@ -0,0 +1,713 @@ + +/** + * @file Helper module for image processing. + * + * These functions and classes are only used internally, + * meaning an end-user shouldn't need to access anything here. + * + * @module utils/image + */ + +import { getFile } from './hub.js'; +import { env } from '../env.js'; + +// Will be empty (or not used) if running in browser or web-worker +import sharp from 'sharp'; + +const BROWSER_ENV = typeof self !== 'undefined'; +const WEBWORKER_ENV = BROWSER_ENV && self.constructor.name === 'DedicatedWorkerGlobalScope'; + +let createCanvasFunction; +let ImageDataClass; +let loadImageFunction; +if (BROWSER_ENV) { + // Running in browser or web-worker + createCanvasFunction = (/** @type {number} */ width, /** @type {number} */ height) => { + if (!self.OffscreenCanvas) { + throw new Error('OffscreenCanvas not supported by this browser.'); + } + return new self.OffscreenCanvas(width, height) + }; + loadImageFunction = self.createImageBitmap; + ImageDataClass = self.ImageData; + +} else if (sharp) { + // Running in Node.js, electron, or other non-browser environment + + loadImageFunction = async (/**@type {sharp.Sharp}*/img) => { + const metadata = await img.metadata(); + const rawChannels = metadata.channels; + + let { data, info } = await img.raw().toBuffer({ resolveWithObject: true }); + + const newImage = new RawImage(new Uint8ClampedArray(data), info.width, info.height, info.channels); + if (rawChannels !== undefined && rawChannels !== info.channels) { + // Make sure the new image has the same number of channels as the input image. + // This is necessary for grayscale images. + newImage.convert(rawChannels); + } + return newImage; + } + +} else { + throw new Error('Unable to load image processing library.'); +} + + +// Defined here: https://github.com/python-pillow/Pillow/blob/a405e8406b83f8bfb8916e93971edc7407b8b1ff/src/libImaging/Imaging.h#L262-L268 +const RESAMPLING_MAPPING = { + 0: 'nearest', + 1: 'lanczos', + 2: 'bilinear', + 3: 'bicubic', + 4: 'box', + 5: 'hamming', +} + +/** + * Mapping from file extensions to MIME types. + */ +const CONTENT_TYPE_MAP = new Map([ + ['png', 'image/png'], + ['jpg', 'image/jpeg'], + ['jpeg', 'image/jpeg'], + ['gif', 'image/gif'], +]); + +export class RawImage { + + /** + * Create a new `RawImage` object. + * @param {Uint8ClampedArray|Uint8Array} data The pixel data. + * @param {number} width The width of the image. + * @param {number} height The height of the image. + * @param {1|2|3|4} channels The number of channels. + */ + constructor(data, width, height, channels) { + this.data = data; + this.width = width; + this.height = height; + this.channels = channels; + } + + /** + * Returns the size of the image (width, height). + * @returns {[number, number]} The size of the image (width, height). + */ + get size() { + return [this.width, this.height]; + } + + /** + * Helper method for reading an image from a variety of input types. + * @param {RawImage|string|URL} input + * @returns The image object. + * + * **Example:** Read image from a URL. + * ```javascript + * let image = await RawImage.read('https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main/football-match.jpg'); + * // RawImage { + * // "data": Uint8ClampedArray [ 25, 25, 25, 19, 19, 19, ... ], + * // "width": 800, + * // "height": 533, + * // "channels": 3 + * // } + * ``` + */ + static async read(input) { + if (input instanceof RawImage) { + return input; + } else if (typeof input === 'string' || input instanceof URL) { + return await this.fromURL(input); + } else { + throw new Error(`Unsupported input type: ${typeof input}`); + } + } + + + /** + * Read an image from a URL or file path. + * @param {string|URL} url The URL or file path to read the image from. + * @returns {Promise} The image object. + */ + static async fromURL(url) { + let response = await getFile(url); + if (response.status !== 200) { + throw new Error(`Unable to read image from "${url}" (${response.status} ${response.statusText})`); + } + let blob = await response.blob(); + return this.fromBlob(blob); + } + + /** + * Helper method to create a new Image from a blob. + * @param {Blob} blob The blob to read the image from. + * @returns {Promise} The image object. + */ + static async fromBlob(blob) { + if (BROWSER_ENV) { + // Running in environment with canvas + let img = await loadImageFunction(blob); + + const ctx = createCanvasFunction(img.width, img.height).getContext('2d'); + + // Draw image to context + ctx.drawImage(img, 0, 0); + + return new this(ctx.getImageData(0, 0, img.width, img.height).data, img.width, img.height, 4); + + } else { + // Use sharp.js to read (and possible resize) the image. + let img = sharp(await blob.arrayBuffer()); + + return await loadImageFunction(img); + } + } + + /** + * Helper method to create a new Image from a tensor + * @param {import('./tensor.js').Tensor} tensor + */ + static fromTensor(tensor, channel_format = 'CHW') { + if (tensor.dims.length !== 3) { + throw new Error(`Tensor should have 3 dimensions, but has ${tensor.dims.length} dimensions.`); + } + + if (channel_format === 'CHW') { + tensor = tensor.transpose(1, 2, 0); + } else if (channel_format === 'HWC') { + // Do nothing + } else { + throw new Error(`Unsupported channel format: ${channel_format}`); + } + if (!(tensor.data instanceof Uint8ClampedArray || tensor.data instanceof Uint8Array)) { + throw new Error(`Unsupported tensor type: ${tensor.type}`); + } + switch (tensor.dims[2]) { + case 1: + case 2: + case 3: + case 4: + return new RawImage(tensor.data, tensor.dims[1], tensor.dims[0], tensor.dims[2]); + default: + throw new Error(`Unsupported number of channels: ${tensor.dims[2]}`); + } + } + + /** + * Convert the image to grayscale format. + * @returns {RawImage} `this` to support chaining. + */ + grayscale() { + if (this.channels === 1) { + return this; + } + + let newData = new Uint8ClampedArray(this.width * this.height * 1); + switch (this.channels) { + case 3: // rgb to grayscale + case 4: // rgba to grayscale + for (let i = 0, offset = 0; i < this.data.length; i += this.channels) { + const red = this.data[i]; + const green = this.data[i + 1]; + const blue = this.data[i + 2]; + + newData[offset++] = Math.round(0.2989 * red + 0.5870 * green + 0.1140 * blue); + } + break; + default: + throw new Error(`Conversion failed due to unsupported number of channels: ${this.channels}`); + } + return this._update(newData, this.width, this.height, 1); + } + + /** + * Convert the image to RGB format. + * @returns {RawImage} `this` to support chaining. + */ + rgb() { + if (this.channels === 3) { + return this; + } + + let newData = new Uint8ClampedArray(this.width * this.height * 3); + + switch (this.channels) { + case 1: // grayscale to rgb + for (let i = 0, offset = 0; i < this.data.length; ++i) { + newData[offset++] = this.data[i]; + newData[offset++] = this.data[i]; + newData[offset++] = this.data[i]; + } + break; + case 4: // rgba to rgb + for (let i = 0, offset = 0; i < this.data.length; i += 4) { + newData[offset++] = this.data[i]; + newData[offset++] = this.data[i + 1]; + newData[offset++] = this.data[i + 2]; + } + break; + default: + throw new Error(`Conversion failed due to unsupported number of channels: ${this.channels}`); + } + return this._update(newData, this.width, this.height, 3); + + } + + /** + * Convert the image to RGBA format. + * @returns {RawImage} `this` to support chaining. + */ + rgba() { + if (this.channels === 4) { + return this; + } + + let newData = new Uint8ClampedArray(this.width * this.height * 4); + + switch (this.channels) { + case 1: // grayscale to rgba + for (let i = 0, offset = 0; i < this.data.length; ++i) { + newData[offset++] = this.data[i]; + newData[offset++] = this.data[i]; + newData[offset++] = this.data[i]; + newData[offset++] = 255; + } + break; + case 3: // rgb to rgba + for (let i = 0, offset = 0; i < this.data.length; i += 3) { + newData[offset++] = this.data[i]; + newData[offset++] = this.data[i + 1]; + newData[offset++] = this.data[i + 2]; + newData[offset++] = 255; + } + break; + default: + throw new Error(`Conversion failed due to unsupported number of channels: ${this.channels}`); + } + + return this._update(newData, this.width, this.height, 4); + } + + /** + * Resize the image to the given dimensions. This method uses the canvas API to perform the resizing. + * @param {number} width The width of the new image. + * @param {number} height The height of the new image. + * @param {Object} options Additional options for resizing. + * @param {0|1|2|3|4|5|string} [options.resample] The resampling method to use. + * @returns {Promise} `this` to support chaining. + */ + async resize(width, height, { + resample = 2, + } = {}) { + + // Ensure resample method is a string + let resampleMethod = RESAMPLING_MAPPING[resample] ?? resample; + + if (BROWSER_ENV) { + // TODO use `resample` in browser environment + + // Store number of channels before resizing + let numChannels = this.channels; + + // Create canvas object for this image + let canvas = this.toCanvas(); + + // Actually perform resizing using the canvas API + const ctx = createCanvasFunction(width, height).getContext('2d'); + + // Draw image to context, resizing in the process + ctx.drawImage(canvas, 0, 0, width, height); + + // Create image from the resized data + let resizedImage = new RawImage(ctx.getImageData(0, 0, width, height).data, width, height, 4); + + // Convert back so that image has the same number of channels as before + return resizedImage.convert(numChannels); + + } else { + // Create sharp image from raw data, and resize + let img = this.toSharp(); + + switch (resampleMethod) { + case 'box': + case 'hamming': + if (resampleMethod === 'box' || resampleMethod === 'hamming') { + console.warn(`Resampling method ${resampleMethod} is not yet supported. Using bilinear instead.`); + resampleMethod = 'bilinear'; + } + + case 'nearest': + case 'bilinear': + case 'bicubic': + // Perform resizing using affine transform. + // This matches how the python Pillow library does it. + img = img.affine([width / this.width, 0, 0, height / this.height], { + interpolator: resampleMethod + }); + break; + + case 'lanczos': + // https://github.com/python-pillow/Pillow/discussions/5519 + // https://github.com/lovell/sharp/blob/main/docs/api-resize.md + img = img.resize({ + width, height, + fit: 'fill', + kernel: 'lanczos3', // PIL Lanczos uses a kernel size of 3 + }); + break; + + default: + throw new Error(`Resampling method ${resampleMethod} is not supported.`); + } + + return await loadImageFunction(img); + } + + } + + async pad([left, right, top, bottom]) { + left = Math.max(left, 0); + right = Math.max(right, 0); + top = Math.max(top, 0); + bottom = Math.max(bottom, 0); + + if (left === 0 && right === 0 && top === 0 && bottom === 0) { + // No padding needed + return this; + } + + if (BROWSER_ENV) { + // Store number of channels before padding + let numChannels = this.channels; + + // Create canvas object for this image + let canvas = this.toCanvas(); + + let newWidth = this.width + left + right; + let newHeight = this.height + top + bottom; + + // Create a new canvas of the desired size. + const ctx = createCanvasFunction(newWidth, newHeight).getContext('2d'); + + // Draw image to context, padding in the process + ctx.drawImage(canvas, + 0, 0, this.width, this.height, + left, top, newWidth, newHeight + ); + + // Create image from the padded data + let paddedImage = new RawImage( + ctx.getImageData(0, 0, newWidth, newHeight).data, + newWidth, newHeight, 4); + + // Convert back so that image has the same number of channels as before + return paddedImage.convert(numChannels); + + } else { + let img = this.toSharp().extend({ left, right, top, bottom }); + return await loadImageFunction(img); + } + } + + async crop([x_min, y_min, x_max, y_max]) { + // Ensure crop bounds are within the image + x_min = Math.max(x_min, 0); + y_min = Math.max(y_min, 0); + x_max = Math.min(x_max, this.width - 1); + y_max = Math.min(y_max, this.height - 1); + + // Do nothing if the crop is the entire image + if (x_min === 0 && y_min === 0 && x_max === this.width - 1 && y_max === this.height - 1) { + return this; + } + + const crop_width = x_max - x_min + 1; + const crop_height = y_max - y_min + 1; + + if (BROWSER_ENV) { + // Store number of channels before resizing + const numChannels = this.channels; + + // Create canvas object for this image + const canvas = this.toCanvas(); + + // Create a new canvas of the desired size. This is needed since if the + // image is too small, we need to pad it with black pixels. + const ctx = createCanvasFunction(crop_width, crop_height).getContext('2d'); + + // Draw image to context, cropping in the process + ctx.drawImage(canvas, + x_min, y_min, crop_width, crop_height, + 0, 0, crop_width, crop_height + ); + + // Create image from the resized data + const resizedImage = new RawImage(ctx.getImageData(0, 0, crop_width, crop_height).data, crop_width, crop_height, 4); + + // Convert back so that image has the same number of channels as before + return resizedImage.convert(numChannels); + + } else { + // Create sharp image from raw data + const img = this.toSharp().extract({ + left: x_min, + top: y_min, + width: crop_width, + height: crop_height, + }); + + return await loadImageFunction(img); + } + + } + + async center_crop(crop_width, crop_height) { + // If the image is already the desired size, return it + if (this.width === crop_width && this.height === crop_height) { + return this; + } + + // Determine bounds of the image in the new canvas + let width_offset = (this.width - crop_width) / 2; + let height_offset = (this.height - crop_height) / 2; + + + if (BROWSER_ENV) { + // Store number of channels before resizing + let numChannels = this.channels; + + // Create canvas object for this image + let canvas = this.toCanvas(); + + // Create a new canvas of the desired size. This is needed since if the + // image is too small, we need to pad it with black pixels. + const ctx = createCanvasFunction(crop_width, crop_height).getContext('2d'); + + let sourceX = 0; + let sourceY = 0; + let destX = 0; + let destY = 0; + + if (width_offset >= 0) { + sourceX = width_offset; + } else { + destX = -width_offset; + } + + if (height_offset >= 0) { + sourceY = height_offset; + } else { + destY = -height_offset; + } + + // Draw image to context, cropping in the process + ctx.drawImage(canvas, + sourceX, sourceY, crop_width, crop_height, + destX, destY, crop_width, crop_height + ); + + // Create image from the resized data + let resizedImage = new RawImage(ctx.getImageData(0, 0, crop_width, crop_height).data, crop_width, crop_height, 4); + + // Convert back so that image has the same number of channels as before + return resizedImage.convert(numChannels); + + } else { + // Create sharp image from raw data + let img = this.toSharp(); + + if (width_offset >= 0 && height_offset >= 0) { + // Cropped image lies entirely within the original image + img = img.extract({ + left: Math.floor(width_offset), + top: Math.floor(height_offset), + width: crop_width, + height: crop_height, + }) + } else if (width_offset <= 0 && height_offset <= 0) { + // Cropped image lies entirely outside the original image, + // so we add padding + let top = Math.floor(-height_offset); + let left = Math.floor(-width_offset); + img = img.extend({ + top: top, + left: left, + + // Ensures the resulting image has the desired dimensions + right: crop_width - this.width - left, + bottom: crop_height - this.height - top, + }); + } else { + // Cropped image lies partially outside the original image. + // We first pad, then crop. + + let y_padding = [0, 0]; + let y_extract = 0; + if (height_offset < 0) { + y_padding[0] = Math.floor(-height_offset); + y_padding[1] = crop_height - this.height - y_padding[0]; + } else { + y_extract = Math.floor(height_offset); + } + + let x_padding = [0, 0]; + let x_extract = 0; + if (width_offset < 0) { + x_padding[0] = Math.floor(-width_offset); + x_padding[1] = crop_width - this.width - x_padding[0]; + } else { + x_extract = Math.floor(width_offset); + } + + img = img.extend({ + top: y_padding[0], + bottom: y_padding[1], + left: x_padding[0], + right: x_padding[1], + }).extract({ + left: x_extract, + top: y_extract, + width: crop_width, + height: crop_height, + }) + } + + return await loadImageFunction(img); + } + } + + async toBlob(type = 'image/png', quality = 1) { + if (!BROWSER_ENV) { + throw new Error('toBlob() is only supported in browser environments.') + } + + const canvas = this.toCanvas(); + return await canvas.convertToBlob({ type, quality }); + } + + toCanvas() { + if (!BROWSER_ENV) { + throw new Error('toCanvas() is only supported in browser environments.') + } + + // Clone, and convert data to RGBA before drawing to canvas. + // This is because the canvas API only supports RGBA + let cloned = this.clone().rgba(); + + // Create canvas object for the cloned image + let clonedCanvas = createCanvasFunction(cloned.width, cloned.height); + + // Draw image to context + let data = new ImageDataClass(cloned.data, cloned.width, cloned.height); + clonedCanvas.getContext('2d').putImageData(data, 0, 0); + + return clonedCanvas; + } + + /** + * Helper method to update the image data. + * @param {Uint8ClampedArray} data The new image data. + * @param {number} width The new width of the image. + * @param {number} height The new height of the image. + * @param {1|2|3|4|null} [channels] The new number of channels of the image. + * @private + */ + _update(data, width, height, channels = null) { + this.data = data; + this.width = width; + this.height = height; + if (channels !== null) { + this.channels = channels; + } + return this; + } + + /** + * Clone the image + * @returns {RawImage} The cloned image + */ + clone() { + return new RawImage(this.data.slice(), this.width, this.height, this.channels); + } + + /** + * Helper method for converting image to have a certain number of channels + * @param {number} numChannels The number of channels. Must be 1, 3, or 4. + * @returns {RawImage} `this` to support chaining. + */ + convert(numChannels) { + if (this.channels === numChannels) return this; // Already correct number of channels + + switch (numChannels) { + case 1: + this.grayscale(); + break; + case 3: + this.rgb(); + break; + case 4: + this.rgba(); + break; + default: + throw new Error(`Conversion failed due to unsupported number of channels: ${this.channels}`); + } + return this; + } + + /** + * Save the image to the given path. + * @param {string} path The path to save the image to. + */ + async save(path) { + + if (BROWSER_ENV) { + if (WEBWORKER_ENV) { + throw new Error('Unable to save an image from a Web Worker.') + } + + const extension = path.split('.').pop().toLowerCase(); + const mime = CONTENT_TYPE_MAP.get(extension) ?? 'image/png'; + + // Convert image to Blob + const blob = await this.toBlob(mime); + + // Convert the canvas content to a data URL + const dataURL = URL.createObjectURL(blob); + + // Create an anchor element with the data URL as the href attribute + const downloadLink = document.createElement('a'); + downloadLink.href = dataURL; + + // Set the download attribute to specify the desired filename for the downloaded image + downloadLink.download = path; + + // Trigger the download + downloadLink.click(); + + // Clean up: remove the anchor element from the DOM + downloadLink.remove(); + + } else if (!env.useFS) { + throw new Error('Unable to save the image because filesystem is disabled in this environment.') + + } else { + const img = this.toSharp(); + return await img.toFile(path); + } + } + + toSharp() { + if (BROWSER_ENV) { + throw new Error('toSharp() is only supported in server-side environments.') + } + + return sharp(this.data, { + raw: { + width: this.width, + height: this.height, + channels: this.channels + } + }); + } +} diff --git a/core/vendor/modules/@xenova/transformers/src/utils/maths.js b/core/vendor/modules/@xenova/transformers/src/utils/maths.js new file mode 100644 index 000000000..216def07e --- /dev/null +++ b/core/vendor/modules/@xenova/transformers/src/utils/maths.js @@ -0,0 +1,954 @@ + +/** + * @file Helper module for mathematical processing. + * + * These functions and classes are only used internally, + * meaning an end-user shouldn't need to access anything here. + * + * @module utils/maths + */ + +/** + * @typedef {Int8Array | Uint8Array | Uint8ClampedArray | Int16Array | Uint16Array | Int32Array | Uint32Array | Float32Array | Float64Array} TypedArray + * @typedef {BigInt64Array | BigUint64Array} BigTypedArray + * @typedef {TypedArray | BigTypedArray} AnyTypedArray + */ + +/** + * @param {TypedArray} input + */ +export function interpolate_data(input, [in_channels, in_height, in_width], [out_height, out_width], mode = 'bilinear', align_corners = false) { + // TODO use mode and align_corners + + // Output image dimensions + const x_scale = out_width / in_width; + const y_scale = out_height / in_height; + + // Output image + // @ts-ignore + const out_img = new input.constructor(out_height * out_width * in_channels); + + // Pre-calculate strides + const inStride = in_height * in_width; + const outStride = out_height * out_width; + + for (let i = 0; i < out_height; ++i) { + for (let j = 0; j < out_width; ++j) { + // Calculate output offset + const outOffset = i * out_width + j; + + // Calculate input pixel coordinates + const x = (j + 0.5) / x_scale - 0.5; + const y = (i + 0.5) / y_scale - 0.5; + + // Calculate the four nearest input pixels + // We also check if the input pixel coordinates are within the image bounds + let x1 = Math.floor(x); + let y1 = Math.floor(y); + const x2 = Math.min(x1 + 1, in_width - 1); + const y2 = Math.min(y1 + 1, in_height - 1); + + x1 = Math.max(x1, 0); + y1 = Math.max(y1, 0); + + + // Calculate the fractional distances between the input pixel and the four nearest pixels + const s = x - x1; + const t = y - y1; + + // Perform bilinear interpolation + const w1 = (1 - s) * (1 - t); + const w2 = s * (1 - t); + const w3 = (1 - s) * t; + const w4 = s * t; + + // Calculate the four nearest input pixel indices + const yStride = y1 * in_width; + const xStride = y2 * in_width; + const idx1 = yStride + x1; + const idx2 = yStride + x2; + const idx3 = xStride + x1; + const idx4 = xStride + x2; + + for (let k = 0; k < in_channels; ++k) { + // Calculate channel offset + const cOffset = k * inStride; + + out_img[k * outStride + outOffset] = + w1 * input[cOffset + idx1] + + w2 * input[cOffset + idx2] + + w3 * input[cOffset + idx3] + + w4 * input[cOffset + idx4]; + } + } + } + + return out_img; +} + + +/** + * Helper method to transpose a `AnyTypedArray` directly + * @template {AnyTypedArray} T + * @param {T} array + * @param {number[]} dims + * @param {number[]} axes + * @returns {[T, number[]]} The transposed array and the new shape. + */ +export function transpose_data(array, dims, axes) { + // Calculate the new shape of the transposed array + // and the stride of the original array + const shape = new Array(axes.length); + const stride = new Array(axes.length); + + for (let i = axes.length - 1, s = 1; i >= 0; --i) { + stride[i] = s; + shape[i] = dims[axes[i]]; + s *= shape[i]; + } + + // Precompute inverse mapping of stride + const invStride = axes.map((_, i) => stride[axes.indexOf(i)]); + + // Create the transposed array with the new shape + // @ts-ignore + const transposedData = new array.constructor(array.length); + + // Transpose the original array to the new array + for (let i = 0; i < array.length; ++i) { + let newIndex = 0; + for (let j = dims.length - 1, k = i; j >= 0; --j) { + newIndex += (k % dims[j]) * invStride[j]; + k = Math.floor(k / dims[j]); + } + transposedData[newIndex] = array[i]; + } + + return [transposedData, shape]; +} + + +/** + * Compute the softmax of an array of numbers. + * @template {TypedArray|number[]} T + * @param {T} arr The array of numbers to compute the softmax of. + * @returns {T} The softmax array. + */ +export function softmax(arr) { + // Compute the maximum value in the array + const maxVal = max(arr)[0]; + + // Compute the exponentials of the array values + const exps = arr.map(x => Math.exp(x - maxVal)); + + // Compute the sum of the exponentials + // @ts-ignore + const sumExps = exps.reduce((acc, val) => acc + val, 0); + + // Compute the softmax values + const softmaxArr = exps.map(x => x / sumExps); + + return /** @type {T} */(softmaxArr); +} + +/** + * Calculates the logarithm of the softmax function for the input array. + * @template {TypedArray|number[]} T + * @param {T} arr The input array to calculate the log_softmax function for. + * @returns {T} The resulting log_softmax array. + */ +export function log_softmax(arr) { + // Compute the softmax values + const softmaxArr = softmax(arr); + + // Apply log formula to each element + const logSoftmaxArr = softmaxArr.map(x => Math.log(x)); + + return /** @type {T} */(logSoftmaxArr); +} + +/** + * Calculates the dot product of two arrays. + * @param {number[]} arr1 The first array. + * @param {number[]} arr2 The second array. + * @returns {number} The dot product of arr1 and arr2. + */ +export function dot(arr1, arr2) { + return arr1.reduce((acc, val, i) => acc + val * arr2[i], 0); +} + + +/** + * Get the top k items from an iterable, sorted by descending order + * @param {any[]|TypedArray} items The items to be sorted + * @param {number|null} [top_k=0] The number of top items to return (default: 0 = return all) + * @returns {[number, any][]} The top k items, sorted by descending order + */ +export function getTopItems(items, top_k = 0) { + // if top == 0, return all + + items = Array.from(items) + .map((x, i) => [i, x]) // Get indices ([index, score]) + .sort((a, b) => b[1] - a[1]) // Sort by log probabilities + + if (top_k !== null && top_k > 0) { + items = items.slice(0, top_k); // Get top k items + } + + return items +} + +/** + * Computes the cosine similarity between two arrays. + * + * @param {number[]} arr1 The first array. + * @param {number[]} arr2 The second array. + * @returns {number} The cosine similarity between the two arrays. + */ +export function cos_sim(arr1, arr2) { + // Calculate dot product of the two arrays + const dotProduct = dot(arr1, arr2); + + // Calculate the magnitude of the first array + const magnitudeA = magnitude(arr1); + + // Calculate the magnitude of the second array + const magnitudeB = magnitude(arr2); + + // Calculate the cosine similarity + const cosineSimilarity = dotProduct / (magnitudeA * magnitudeB); + + return cosineSimilarity; +} + +/** + * Calculates the magnitude of a given array. + * @param {number[]} arr The array to calculate the magnitude of. + * @returns {number} The magnitude of the array. + */ +export function magnitude(arr) { + return Math.sqrt(arr.reduce((acc, val) => acc + val * val, 0)); +} + + +/** + * Returns the value and index of the minimum element in an array. + * @param {number[]|TypedArray} arr array of numbers. + * @returns {number[]} the value and index of the minimum element, of the form: [valueOfMin, indexOfMin] + * @throws {Error} If array is empty. + */ +export function min(arr) { + if (arr.length === 0) throw Error('Array must not be empty'); + let min = arr[0]; + let indexOfMin = 0; + for (let i = 1; i < arr.length; ++i) { + if (arr[i] < min) { + min = arr[i]; + indexOfMin = i; + } + } + return [min, indexOfMin]; +} + + +/** + * Returns the value and index of the maximum element in an array. + * @param {number[]|AnyTypedArray} arr array of numbers. + * @returns {[number, number]} the value and index of the maximum element, of the form: [valueOfMax, indexOfMax] + * @throws {Error} If array is empty. + */ +export function max(arr) { + if (arr.length === 0) throw Error('Array must not be empty'); + let max = arr[0]; + let indexOfMax = 0; + for (let i = 1; i < arr.length; ++i) { + if (arr[i] > max) { + max = arr[i]; + indexOfMax = i; + } + } + return [Number(max), indexOfMax]; +} + +function isPowerOfTwo(number) { + // Check if the number is greater than 0 and has only one bit set to 1 + return (number > 0) && ((number & (number - 1)) === 0); +} + +/** + * Implementation of Radix-4 FFT. + * + * P2FFT class provides functionality for performing Fast Fourier Transform on arrays + * which are a power of two in length. + * Code adapted from https://www.npmjs.com/package/fft.js + */ +class P2FFT { + /** + * @param {number} size The size of the input array. Must be a power of two larger than 1. + * @throws {Error} FFT size must be a power of two larger than 1. + */ + constructor(size) { + this.size = size | 0; // convert to a 32-bit signed integer + if (this.size <= 1 || !isPowerOfTwo(this.size)) + throw new Error('FFT size must be a power of two larger than 1'); + + this._csize = size << 1; + + this.table = new Float64Array(this.size * 2); + for (let i = 0; i < this.table.length; i += 2) { + const angle = Math.PI * i / this.size; + this.table[i] = Math.cos(angle); + this.table[i + 1] = -Math.sin(angle); + } + + // Find size's power of two + let power = 0; + for (let t = 1; this.size > t; t <<= 1) + ++power; + + // Calculate initial step's width: + // * If we are full radix-4, it is 2x smaller to give inital len=8 + // * Otherwise it is the same as `power` to give len=4 + this._width = power % 2 === 0 ? power - 1 : power; + + // Pre-compute bit-reversal patterns + this._bitrev = new Int32Array(1 << this._width); + for (let j = 0; j < this._bitrev.length; ++j) { + this._bitrev[j] = 0; + for (let shift = 0; shift < this._width; shift += 2) { + const revShift = this._width - shift - 2; + this._bitrev[j] |= ((j >>> shift) & 3) << revShift; + } + } + } + + /** + * Create a complex number array with size `2 * size` + * + * @returns {Float64Array} A complex number array with size `2 * size` + */ + createComplexArray() { + return new Float64Array(this._csize); + } + + /** + * Converts a complex number representation stored in a Float64Array to an array of real numbers. + * + * @param {Float64Array} complex The complex number representation to be converted. + * @param {number[]} [storage] An optional array to store the result in. + * @returns {number[]} An array of real numbers representing the input complex number representation. + */ + fromComplexArray(complex, storage) { + const res = storage || new Array(complex.length >>> 1); + for (let i = 0; i < complex.length; i += 2) + res[i >>> 1] = complex[i]; + return res; + } + + /** + * Convert a real-valued input array to a complex-valued output array. + * @param {Float64Array} input The real-valued input array. + * @param {Float64Array} [storage] Optional buffer to store the output array. + * @returns {Float64Array} The complex-valued output array. + */ + toComplexArray(input, storage) { + const res = storage || this.createComplexArray(); + for (let i = 0; i < res.length; i += 2) { + res[i] = input[i >>> 1]; + res[i + 1] = 0; + } + return res; + } + + /** + * Completes the spectrum by adding its mirrored negative frequency components. + * @param {Float64Array} spectrum The input spectrum. + * @returns {void} + */ + completeSpectrum(spectrum) { + const size = this._csize; + const half = size >>> 1; + for (let i = 2; i < half; i += 2) { + spectrum[size - i] = spectrum[i]; + spectrum[size - i + 1] = -spectrum[i + 1]; + } + } + + /** + * Performs a Fast Fourier Transform (FFT) on the given input data and stores the result in the output buffer. + * + * @param {Float64Array} out The output buffer to store the result. + * @param {Float64Array} data The input data to transform. + * + * @throws {Error} Input and output buffers must be different. + * + * @returns {void} + */ + transform(out, data) { + if (out === data) + throw new Error('Input and output buffers must be different'); + + this._transform4(out, data, 1 /* DONE */); + } + + /** + * Performs a real-valued forward FFT on the given input buffer and stores the result in the given output buffer. + * The input buffer must contain real values only, while the output buffer will contain complex values. The input and + * output buffers must be different. + * + * @param {Float64Array} out The output buffer. + * @param {Float64Array} data The input buffer containing real values. + * + * @throws {Error} If the input and output buffers are the same. + */ + realTransform(out, data) { + if (out === data) + throw new Error('Input and output buffers must be different'); + + this._realTransform4(out, data, 1 /* DONE */); + } + + /** + * Performs an inverse FFT transformation on the given `data` array, and stores the result in `out`. + * The `out` array must be a different buffer than the `data` array. The `out` array will contain the + * result of the transformation. The `data` array will not be modified. + * + * @param {Float64Array} out The output buffer for the transformed data. + * @param {Float64Array} data The input data to transform. + * @throws {Error} If `out` and `data` refer to the same buffer. + * @returns {void} + */ + inverseTransform(out, data) { + if (out === data) + throw new Error('Input and output buffers must be different'); + + this._transform4(out, data, -1 /* DONE */); + for (let i = 0; i < out.length; ++i) + out[i] /= this.size; + } + + /** + * Performs a radix-4 implementation of a discrete Fourier transform on a given set of data. + * + * @param {Float64Array} out The output buffer for the transformed data. + * @param {Float64Array} data The input buffer of data to be transformed. + * @param {number} inv A scaling factor to apply to the transform. + * @returns {void} + */ + _transform4(out, data, inv) { + // radix-4 implementation + + const size = this._csize; + + // Initial step (permute and transform) + const width = this._width; + let step = 1 << width; + let len = (size / step) << 1; + + let outOff; + let t; + const bitrev = this._bitrev; + if (len === 4) { + for (outOff = 0, t = 0; outOff < size; outOff += len, ++t) { + const off = bitrev[t]; + this._singleTransform2(data, out, outOff, off, step); + } + } else { + // len === 8 + for (outOff = 0, t = 0; outOff < size; outOff += len, ++t) { + const off = bitrev[t]; + this._singleTransform4(data, out, outOff, off, step, inv); + } + } + + // Loop through steps in decreasing order + for (step >>= 2; step >= 2; step >>= 2) { + len = (size / step) << 1; + const quarterLen = len >>> 2; + + // Loop through offsets in the data + for (outOff = 0; outOff < size; outOff += len) { + // Full case + const limit = outOff + quarterLen - 1; + for (let i = outOff, k = 0; i < limit; i += 2, k += step) { + const A = i; + const B = A + quarterLen; + const C = B + quarterLen; + const D = C + quarterLen; + + // Original values + const Ar = out[A]; + const Ai = out[A + 1]; + const Br = out[B]; + const Bi = out[B + 1]; + const Cr = out[C]; + const Ci = out[C + 1]; + const Dr = out[D]; + const Di = out[D + 1]; + + const tableBr = this.table[k]; + const tableBi = inv * this.table[k + 1]; + const MBr = Br * tableBr - Bi * tableBi; + const MBi = Br * tableBi + Bi * tableBr; + + const tableCr = this.table[2 * k]; + const tableCi = inv * this.table[2 * k + 1]; + const MCr = Cr * tableCr - Ci * tableCi; + const MCi = Cr * tableCi + Ci * tableCr; + + const tableDr = this.table[3 * k]; + const tableDi = inv * this.table[3 * k + 1]; + const MDr = Dr * tableDr - Di * tableDi; + const MDi = Dr * tableDi + Di * tableDr; + + // Pre-Final values + const T0r = Ar + MCr; + const T0i = Ai + MCi; + const T1r = Ar - MCr; + const T1i = Ai - MCi; + const T2r = MBr + MDr; + const T2i = MBi + MDi; + const T3r = inv * (MBr - MDr); + const T3i = inv * (MBi - MDi); + + // Final values + out[A] = T0r + T2r; + out[A + 1] = T0i + T2i; + out[B] = T1r + T3i; + out[B + 1] = T1i - T3r; + out[C] = T0r - T2r; + out[C + 1] = T0i - T2i; + out[D] = T1r - T3i; + out[D + 1] = T1i + T3r; + } + } + } + } + + /** + * Performs a radix-2 implementation of a discrete Fourier transform on a given set of data. + * + * @param {Float64Array} data The input buffer of data to be transformed. + * @param {Float64Array} out The output buffer for the transformed data. + * @param {number} outOff The offset at which to write the output data. + * @param {number} off The offset at which to begin reading the input data. + * @param {number} step The step size for indexing the input data. + * @returns {void} + */ + _singleTransform2(data, out, outOff, off, step) { + // radix-2 implementation + // NOTE: Only called for len=4 + + const evenR = data[off]; + const evenI = data[off + 1]; + const oddR = data[off + step]; + const oddI = data[off + step + 1]; + + out[outOff] = evenR + oddR; + out[outOff + 1] = evenI + oddI; + out[outOff + 2] = evenR - oddR; + out[outOff + 3] = evenI - oddI; + } + + /** + * Performs radix-4 transformation on input data of length 8 + * + * @param {Float64Array} data Input data array of length 8 + * @param {Float64Array} out Output data array of length 8 + * @param {number} outOff Index of output array to start writing from + * @param {number} off Index of input array to start reading from + * @param {number} step Step size between elements in input array + * @param {number} inv Scaling factor for inverse transform + * + * @returns {void} + */ + _singleTransform4(data, out, outOff, off, step, inv) { + // radix-4 + // NOTE: Only called for len=8 + const step2 = step * 2; + const step3 = step * 3; + + // Original values + const Ar = data[off]; + const Ai = data[off + 1]; + const Br = data[off + step]; + const Bi = data[off + step + 1]; + const Cr = data[off + step2]; + const Ci = data[off + step2 + 1]; + const Dr = data[off + step3]; + const Di = data[off + step3 + 1]; + + // Pre-Final values + const T0r = Ar + Cr; + const T0i = Ai + Ci; + const T1r = Ar - Cr; + const T1i = Ai - Ci; + const T2r = Br + Dr; + const T2i = Bi + Di; + const T3r = inv * (Br - Dr); + const T3i = inv * (Bi - Di); + + // Final values + out[outOff] = T0r + T2r; + out[outOff + 1] = T0i + T2i; + out[outOff + 2] = T1r + T3i; + out[outOff + 3] = T1i - T3r; + out[outOff + 4] = T0r - T2r; + out[outOff + 5] = T0i - T2i; + out[outOff + 6] = T1r - T3i; + out[outOff + 7] = T1i + T3r; + } + + /** + * Real input radix-4 implementation + * @param {Float64Array} out Output array for the transformed data + * @param {Float64Array} data Input array of real data to be transformed + * @param {number} inv The scale factor used to normalize the inverse transform + */ + _realTransform4(out, data, inv) { + // Real input radix-4 implementation + const size = this._csize; + + // Initial step (permute and transform) + const width = this._width; + let step = 1 << width; + let len = (size / step) << 1; + + let outOff; + let t; + const bitrev = this._bitrev; + if (len === 4) { + for (outOff = 0, t = 0; outOff < size; outOff += len, ++t) { + const off = bitrev[t]; + this._singleRealTransform2(data, out, outOff, off >>> 1, step >>> 1); + } + } else { + // len === 8 + for (outOff = 0, t = 0; outOff < size; outOff += len, ++t) { + const off = bitrev[t]; + this._singleRealTransform4(data, out, outOff, off >>> 1, step >>> 1, inv); + } + } + + // TODO: Optimize once https://github.com/indutny/fft.js/issues/25 is fixed + // Loop through steps in decreasing order + for (step >>= 2; step >= 2; step >>= 2) { + len = (size / step) << 1; + const quarterLen = len >>> 2; + + // Loop through offsets in the data + for (outOff = 0; outOff < size; outOff += len) { + // Full case + const limit = outOff + quarterLen - 1; + for (let i = outOff, k = 0; i < limit; i += 2, k += step) { + const A = i; + const B = A + quarterLen; + const C = B + quarterLen; + const D = C + quarterLen; + + // Original values + const Ar = out[A]; + const Ai = out[A + 1]; + const Br = out[B]; + const Bi = out[B + 1]; + const Cr = out[C]; + const Ci = out[C + 1]; + const Dr = out[D]; + const Di = out[D + 1]; + + const tableBr = this.table[k]; + const tableBi = inv * this.table[k + 1]; + const MBr = Br * tableBr - Bi * tableBi; + const MBi = Br * tableBi + Bi * tableBr; + + const tableCr = this.table[2 * k]; + const tableCi = inv * this.table[2 * k + 1]; + const MCr = Cr * tableCr - Ci * tableCi; + const MCi = Cr * tableCi + Ci * tableCr; + + const tableDr = this.table[3 * k]; + const tableDi = inv * this.table[3 * k + 1]; + const MDr = Dr * tableDr - Di * tableDi; + const MDi = Dr * tableDi + Di * tableDr; + + // Pre-Final values + const T0r = Ar + MCr; + const T0i = Ai + MCi; + const T1r = Ar - MCr; + const T1i = Ai - MCi; + const T2r = MBr + MDr; + const T2i = MBi + MDi; + const T3r = inv * (MBr - MDr); + const T3i = inv * (MBi - MDi); + + // Final values + out[A] = T0r + T2r; + out[A + 1] = T0i + T2i; + out[B] = T1r + T3i; + out[B + 1] = T1i - T3r; + out[C] = T0r - T2r; + out[C + 1] = T0i - T2i; + out[D] = T1r - T3i; + out[D + 1] = T1i + T3r; + } + } + } + } + + /** + * Performs a single real input radix-2 transformation on the provided data + * + * @param {Float64Array} data The input data array + * @param {Float64Array} out The output data array + * @param {number} outOff The output offset + * @param {number} off The input offset + * @param {number} step The step + * + * @returns {void} + */ + _singleRealTransform2(data, out, outOff, off, step) { + // radix-2 implementation + // NOTE: Only called for len=4 + + const evenR = data[off]; + const oddR = data[off + step]; + + out[outOff] = evenR + oddR; + out[outOff + 1] = 0; + out[outOff + 2] = evenR - oddR; + out[outOff + 3] = 0; + } + + /** + * Computes a single real-valued transform using radix-4 algorithm. + * This method is only called for len=8. + * + * @param {Float64Array} data The input data array. + * @param {Float64Array} out The output data array. + * @param {number} outOff The offset into the output array. + * @param {number} off The offset into the input array. + * @param {number} step The step size for the input array. + * @param {number} inv The value of inverse. + */ + _singleRealTransform4(data, out, outOff, off, step, inv) { + // radix-4 + // NOTE: Only called for len=8 + const step2 = step * 2; + const step3 = step * 3; + + // Original values + const Ar = data[off]; + const Br = data[off + step]; + const Cr = data[off + step2]; + const Dr = data[off + step3]; + + // Pre-Final values + const T0r = Ar + Cr; + const T1r = Ar - Cr; + const T2r = Br + Dr; + const T3r = inv * (Br - Dr); + + // Final values + out[outOff] = T0r + T2r; + out[outOff + 1] = 0; + out[outOff + 2] = T1r; + out[outOff + 3] = -T3r; + out[outOff + 4] = T0r - T2r; + out[outOff + 5] = 0; + out[outOff + 6] = T1r; + out[outOff + 7] = T3r; + } +} + +/** + * NP2FFT class provides functionality for performing Fast Fourier Transform on arrays + * which are not a power of two in length. In such cases, the chirp-z transform is used. + * + * For more information, see: https://math.stackexchange.com/questions/77118/non-power-of-2-ffts/77156#77156 + */ +class NP2FFT { + + /** + * Constructs a new NP2FFT object. + * @param {number} fft_length The length of the FFT + */ + constructor(fft_length) { + // Helper variables + const a = 2 * (fft_length - 1); + const b = 2 * (2 * fft_length - 1); + const nextP2 = 2 ** (Math.ceil(Math.log2(b))) + this.bufferSize = nextP2; + this._a = a; + + // Define buffers + // Compute chirp for transform + const chirp = new Float64Array(b); + const ichirp = new Float64Array(nextP2); + this._chirpBuffer = new Float64Array(nextP2); + this._buffer1 = new Float64Array(nextP2); + this._buffer2 = new Float64Array(nextP2); + this._outBuffer1 = new Float64Array(nextP2); + this._outBuffer2 = new Float64Array(nextP2); + + // Compute complex exponentiation + const theta = -2 * Math.PI / fft_length; + const baseR = Math.cos(theta); + const baseI = Math.sin(theta); + + // Precompute helper for chirp-z transform + for (let i = 0; i < b >> 1; ++i) { + // Compute complex power: + const e = (i + 1 - fft_length) ** 2 / 2.0; + + // Compute the modulus and argument of the result + const result_mod = Math.sqrt(baseR ** 2 + baseI ** 2) ** e; + const result_arg = e * Math.atan2(baseI, baseR); + + // Convert the result back to rectangular form + // and assign to chirp and ichirp + const i2 = 2 * i; + chirp[i2] = result_mod * Math.cos(result_arg); + chirp[i2 + 1] = result_mod * Math.sin(result_arg); + + // conjugate + ichirp[i2] = chirp[i2]; + ichirp[i2 + 1] = - chirp[i2 + 1]; + } + this._slicedChirpBuffer = chirp.subarray(a, b); + + // create object to perform Fast Fourier Transforms + // with `nextP2` complex numbers + this._f = new P2FFT(nextP2 >> 1); + this._f.transform(this._chirpBuffer, ichirp); + } + + _transform(output, input, real) { + const ib1 = this._buffer1; + const ib2 = this._buffer2; + const ob2 = this._outBuffer1; + const ob3 = this._outBuffer2; + const cb = this._chirpBuffer; + const sb = this._slicedChirpBuffer; + const a = this._a; + + if (real) { + // Real multiplication + for (let j = 0; j < sb.length; j += 2) { + const j2 = j + 1 + const j3 = j >> 1; + + const a_real = input[j3]; + ib1[j] = a_real * sb[j]; + ib1[j2] = a_real * sb[j2]; + } + } else { + // Complex multiplication + for (let j = 0; j < sb.length; j += 2) { + const j2 = j + 1 + ib1[j] = input[j] * sb[j] - input[j2] * sb[j2]; + ib1[j2] = input[j] * sb[j2] + input[j2] * sb[j]; + } + } + this._f.transform(ob2, ib1); + + for (let j = 0; j < cb.length; j += 2) { + const j2 = j + 1; + + ib2[j] = ob2[j] * cb[j] - ob2[j2] * cb[j2]; + ib2[j2] = ob2[j] * cb[j2] + ob2[j2] * cb[j]; + } + this._f.inverseTransform(ob3, ib2); + + for (let j = 0; j < ob3.length; j += 2) { + const a_real = ob3[j + a]; + const a_imag = ob3[j + a + 1]; + const b_real = sb[j]; + const b_imag = sb[j + 1]; + + output[j] = a_real * b_real - a_imag * b_imag; + output[j + 1] = a_real * b_imag + a_imag * b_real; + } + } + + transform(output, input) { + this._transform(output, input, false); + } + + realTransform(output, input) { + this._transform(output, input, true); + } +} + +export class FFT { + constructor(fft_length) { + this.fft_length = fft_length; + this.isPowerOfTwo = isPowerOfTwo(fft_length); + if (this.isPowerOfTwo) { + this.fft = new P2FFT(fft_length); + this.outputBufferSize = 2 * fft_length; + } else { + this.fft = new NP2FFT(fft_length); + this.outputBufferSize = this.fft.bufferSize; + } + } + + realTransform(out, input) { + this.fft.realTransform(out, input); + } + + transform(out, input) { + this.fft.transform(out, input); + } +} + + +/** + * Performs median filter on the provided data. Padding is done by mirroring the data. + * @param {AnyTypedArray} data The input array + * @param {number} windowSize The window size + */ +export function medianFilter(data, windowSize) { + + if (windowSize % 2 === 0 || windowSize <= 0) { + throw new Error('Window size must be a positive odd number'); + } + + // @ts-ignore + const outputArray = new data.constructor(data.length); + + // @ts-ignore + const buffer = new data.constructor(windowSize); // Reusable array for storing values + + const halfWindowSize = Math.floor(windowSize / 2); + + for (let i = 0; i < data.length; ++i) { + let valuesIndex = 0; + + for (let j = -halfWindowSize; j <= halfWindowSize; ++j) { + let index = i + j; + if (index < 0) { + index = Math.abs(index); + } else if (index >= data.length) { + index = 2 * (data.length - 1) - index; + } + + buffer[valuesIndex++] = data[index]; + } + + buffer.sort(); + outputArray[i] = buffer[halfWindowSize]; + } + + return outputArray; +} + +/** + * Helper function to round a number to a given number of decimals + * @param {number} num The number to round + * @param {number} decimals The number of decimals + * @returns {number} The rounded number + */ +export function round(num, decimals) { + const pow = Math.pow(10, decimals); + return Math.round(num * pow) / pow; +} diff --git a/core/vendor/modules/@xenova/transformers/src/utils/tensor.js b/core/vendor/modules/@xenova/transformers/src/utils/tensor.js new file mode 100644 index 000000000..74cb23880 --- /dev/null +++ b/core/vendor/modules/@xenova/transformers/src/utils/tensor.js @@ -0,0 +1,1157 @@ +/** + * @file Helper module for `Tensor` processing. + * + * These functions and classes are only used internally, + * meaning an end-user shouldn't need to access anything here. + * + * @module utils/tensor + */ + +import { ONNX } from '../backends/onnx.js'; + +import { + interpolate_data, + transpose_data +} from './maths.js'; + + +const DataTypeMap = Object.freeze({ + float32: Float32Array, + float64: Float64Array, + string: Array, // string[] + int8: Int8Array, + uint8: Uint8Array, + int16: Int16Array, + uint16: Uint16Array, + int32: Int32Array, + uint32: Uint32Array, + int64: BigInt64Array, + uint64: BigUint64Array, + bool: Uint8Array, +}); + +/** + * @typedef {keyof typeof DataTypeMap} DataType + * @typedef {import('./maths.js').AnyTypedArray | any[]} DataArray + */ + +const ONNXTensor = ONNX.Tensor; + +export class Tensor { + /** @type {number[]} Dimensions of the tensor. */ + dims; + + /** @type {DataType} Type of the tensor. */ + type; + + /** @type {DataArray} The data stored in the tensor. */ + data; + + /** @type {number} The number of elements in the tensor. */ + size; + + /** + * Create a new Tensor or copy an existing Tensor. + * @param {[DataType, DataArray, number[]]|[import('onnxruntime-common').Tensor]} args + */ + constructor(...args) { + if (args[0] instanceof ONNXTensor) { + // Create shallow copy + Object.assign(this, args[0]); + + } else { + // Create new tensor + Object.assign(this, new ONNXTensor( + /** @type {DataType} */(args[0]), + /** @type {Exclude} */(args[1]), + args[2] + )); + } + + return new Proxy(this, { + get: (obj, key) => { + if (typeof key === 'string') { + let index = Number(key); + if (Number.isInteger(index)) { + // key is an integer (i.e., index) + return obj._getitem(index); + } + } + // @ts-ignore + return obj[key]; + }, + set: (obj, key, value) => { + // TODO allow setting of data + + // @ts-ignore + return obj[key] = value; + } + }); + } + + /** + * Returns an iterator object for iterating over the tensor data in row-major order. + * If the tensor has more than one dimension, the iterator will yield subarrays. + * @returns {Iterator} An iterator object for iterating over the tensor data in row-major order. + */ + *[Symbol.iterator]() { + const [iterLength, ...iterDims] = this.dims; + + if (iterDims.length > 0) { + const iterSize = iterDims.reduce((a, b) => a * b); + for (let i = 0; i < iterLength; ++i) { + yield this._subarray(i, iterSize, iterDims); + } + } else { + yield* this.data + } + + } + + /** + * Index into a Tensor object. + * @param {number} index The index to access. + * @returns {Tensor} The data at the specified index. + */ + _getitem(index) { + const [iterLength, ...iterDims] = this.dims; + + index = safeIndex(index, iterLength); + + if (iterDims.length > 0) { + const iterSize = iterDims.reduce((a, b) => a * b); + return this._subarray(index, iterSize, iterDims); + } else { + return new Tensor(this.type, [this.data[index]], iterDims); + } + } + + /** + * @param {number|bigint} item The item to search for in the tensor + * @returns {number} The index of the first occurrence of item in the tensor data. + */ + indexOf(item) { + for (let index = 0; index < this.data.length; ++index) { + // Note: == instead of === so we can match Ints with BigInts + if (this.data[index] == item) { + return index; + } + } + return -1; + } + + /** + * @param {number} index + * @param {number} iterSize + * @param {any} iterDims + * @returns {Tensor} + */ + _subarray(index, iterSize, iterDims) { + const o1 = index * iterSize; + const o2 = (index + 1) * iterSize; + + // We use subarray if available (typed array), otherwise we use slice (normal array) + const data = + ('subarray' in this.data) + ? this.data.subarray(o1, o2) + : this.data.slice(o1, o2); + return new Tensor(this.type, data, iterDims); + } + + /** + * Returns the value of this tensor as a standard JavaScript Number. This only works + * for tensors with one element. For other cases, see `Tensor.tolist()`. + * @returns {number|bigint} The value of this tensor as a standard JavaScript Number. + * @throws {Error} If the tensor has more than one element. + */ + item() { + if (this.data.length !== 1) { + throw new Error(`a Tensor with ${this.data.length} elements cannot be converted to Scalar`); + } + return this.data[0]; + } + + /** + * Convert tensor data to a n-dimensional JS list + * @returns {Array} + */ + tolist() { + return reshape(this.data, this.dims) + } + + /** + * Return a new Tensor with the sigmoid function applied to each element. + * @returns {Tensor} The tensor with the sigmoid function applied. + */ + sigmoid() { + return this.clone().sigmoid_(); + } + + /** + * Applies the sigmoid function to the tensor in place. + * @returns {Tensor} Returns `this`. + */ + sigmoid_() { + for (let i = 0; i < this.data.length; ++i) { + this.data[i] = 1 / (1 + Math.exp(-this.data[i])); + } + return this; + } + + /** + * Return a new Tensor with every element multiplied by a constant. + * @param {number} val The value to multiply by. + * @returns {Tensor} The new tensor. + */ + mul(val) { + return this.clone().mul_(val); + } + + /** + * Multiply the tensor by a constant in place. + * @param {number} val The value to multiply by. + * @returns {Tensor} Returns `this`. + */ + mul_(val) { + for (let i = 0; i < this.data.length; ++i) { + this.data[i] *= val; + } + return this; + } + + + /** + * Return a new Tensor with every element added by a constant. + * @param {number} val The value to add by. + * @returns {Tensor} The new tensor. + */ + add(val) { + return this.clone().add_(val); + } + + /** + * Add the tensor by a constant in place. + * @param {number} val The value to add by. + * @returns {Tensor} Returns `this`. + */ + add_(val) { + for (let i = 0; i < this.data.length; ++i) { + this.data[i] += val; + } + return this; + } + clone() { + return new Tensor(this.type, this.data.slice(), this.dims.slice()); + } + + slice(...slices) { + // This allows for slicing with ranges and numbers + let newTensorDims = []; + let newOffsets = []; + + // slices is an array of numbers or arrays of numbers + // e.g., slices = [0, [1, 3], null, [0, 3]] + for (let sliceIndex = 0; sliceIndex < this.dims.length; ++sliceIndex) { + let slice = slices[sliceIndex]; + + if (slice === null || slice === undefined) { + // null or undefined means take the whole dimension + newOffsets.push([0, this.dims[sliceIndex]]); + newTensorDims.push(this.dims[sliceIndex]); + + } else if (typeof slice === 'number') { + slice = safeIndex(slice, this.dims[sliceIndex], sliceIndex); + + // A number means take a single element + newOffsets.push([slice, slice + 1]); + + } else if (Array.isArray(slice) && slice.length === 2) { + // An array of length 2 means take a range of elements + + if (slice[0] > slice[1]) { + throw new Error(`Invalid slice: ${slice}`); + } + + let offsets = [ + Math.max(slice[0], 0), + Math.min(slice[1], this.dims[sliceIndex]) + ]; + + newOffsets.push(offsets); + newTensorDims.push(offsets[1] - offsets[0]); + + } else { + throw new Error(`Invalid slice: ${slice}`); + } + } + + let newDims = newOffsets.map(([start, end]) => end - start); + let newBufferSize = newDims.reduce((a, b) => a * b); + + // Allocate memory + // @ts-ignore + let data = new this.data.constructor(newBufferSize); + + // Precompute strides + const stride = this.stride(); + + for (let i = 0; i < newBufferSize; ++i) { + let originalIndex = 0; + for (let j = newDims.length - 1, num = i; j >= 0; --j) { + const size = newDims[j]; + originalIndex += ((num % size) + newOffsets[j][0]) * stride[j]; + num = Math.floor(num / size); + } + data[i] = this.data[originalIndex]; + } + return new Tensor(this.type, data, newTensorDims); + + } + + /** + * Return a transposed version of this Tensor, according to the provided dimensions. + * @param {...number} dims Dimensions to transpose. + * @returns {Tensor} The transposed tensor. + */ + transpose(...dims) { + return transpose(this, dims); + } + + // TODO: rename transpose to permute + // TODO: implement transpose + + // TODO add .max() and .min() methods + + /** + * Returns the sum of each row of the input tensor in the given dimension dim. + * + * @param {number} [dim=null] The dimension or dimensions to reduce. If `null`, all dimensions are reduced. + * @param {boolean} keepdim Whether the output tensor has `dim` retained or not. + * @returns The summed tensor + */ + sum(dim = null, keepdim = false) { + return this.norm(1, dim, keepdim); + } + + /** + * Returns the matrix norm or vector norm of a given tensor. + * @param {number|string} [p='fro'] The order of norm + * @param {number} [dim=null] Specifies which dimension of the tensor to calculate the norm across. + * If dim is None, the norm will be calculated across all dimensions of input. + * @param {boolean} [keepdim=false] Whether the output tensors have dim retained or not. + * @returns {Tensor} The norm of the tensor. + */ + norm(p = 'fro', dim = null, keepdim = false) { + if (p === 'fro') { + // NOTE: Since we only support integer dims, Frobenius norm produces the same result as p=2. + p = 2; + } else if (typeof p === 'string') { + throw Error(`Unsupported norm: ${p}`); + } + + if (dim === null) { + // @ts-ignore + let val = this.data.reduce((a, b) => a + (b ** p), 0) ** (1 / p); + return new Tensor(this.type, [val], []); + } + + // Negative indexing + dim = safeIndex(dim, this.dims.length); + + // Calculate the shape of the resulting array after summation + const resultDims = this.dims.slice(); // Copy the original dimensions + resultDims[dim] = 1; // Remove the specified axis + + // Create a new array to store the accumulated values + // @ts-ignore + const result = new this.data.constructor(this.data.length / this.dims[dim]); + + // Iterate over the data array + for (let i = 0; i < this.data.length; ++i) { + + // Calculate the index in the resulting array + let resultIndex = 0; + + for (let j = this.dims.length - 1, num = i, resultMultiplier = 1; j >= 0; --j) { + const size = this.dims[j]; + if (j !== dim) { + const index = num % size; + resultIndex += index * resultMultiplier; + resultMultiplier *= resultDims[j]; + } + num = Math.floor(num / size); + } + + // Accumulate the value at the current index + result[resultIndex] += (this.data[i]) ** p; + } + + if (p !== 1) { + for (let i = 0; i < result.length; ++i) { + result[i] = result[i] ** (1 / p); + } + } + + if (!keepdim) { + resultDims.splice(dim, 1); + } + + return new Tensor(this.type, result, resultDims); + } + + /** + * Performs `L_p` normalization of inputs over specified dimension. Operates in place. + * @param {number} [p=2] The exponent value in the norm formulation + * @param {number} [dim=1] The dimension to reduce + * @returns {Tensor} `this` for operation chaining. + */ + normalize_(p = 2.0, dim = 1) { + dim = safeIndex(dim, this.dims.length); + + const norm = this.norm(p, dim, true); + + for (let i = 0; i < this.data.length; ++i) { + + // Calculate the index in the resulting array + let resultIndex = 0; + + for (let j = this.dims.length - 1, num = i, resultMultiplier = 1; j >= 0; --j) { + const size = this.dims[j]; + if (j !== dim) { + const index = num % size; + resultIndex += index * resultMultiplier; + resultMultiplier *= this.dims[j]; + } + num = Math.floor(num / size); + } + + // Divide by normalized value + this.data[i] /= norm.data[resultIndex]; + } + + return this; + } + + /** + * Performs `L_p` normalization of inputs over specified dimension. + * @param {number} [p=2] The exponent value in the norm formulation + * @param {number} [dim=1] The dimension to reduce + * @returns {Tensor} The normalized tensor. + */ + normalize(p = 2.0, dim = 1) { + return this.clone().normalize_(p, dim); + } + + /** + * Compute and return the stride of this tensor. + * Stride is the jump necessary to go from one element to the next one in the specified dimension dim. + * @returns {number[]} The stride of this tensor. + */ + stride() { + return dimsToStride(this.dims); + } + + /** + * Returns a tensor with all specified dimensions of input of size 1 removed. + * + * NOTE: The returned tensor shares the storage with the input tensor, so changing the contents of one will change the contents of the other. + * If you would like a copy, use `tensor.clone()` before squeezing. + * + * @param {number} [dim=null] If given, the input will be squeezed only in the specified dimensions. + * @returns The squeezed tensor + */ + squeeze(dim = null) { + return new Tensor( + this.type, + this.data, + calc_squeeze_dims(this.dims, dim) + ) + } + + /** + * In-place version of @see {@link Tensor.squeeze} + */ + squeeze_(dim = null) { + this.dims = calc_squeeze_dims(this.dims, dim); + return this; + } + + /** + * Returns a new tensor with a dimension of size one inserted at the specified position. + * + * NOTE: The returned tensor shares the same underlying data with this tensor. + * + * @param {number} dim The index at which to insert the singleton dimension + * @returns The unsqueezed tensor + */ + unsqueeze(dim = null) { + return new Tensor( + this.type, + this.data, + calc_unsqueeze_dims(this.dims, dim) + ); + } + + /** + * In-place version of @see {@link Tensor.unsqueeze} + */ + unsqueeze_(dim = null) { + this.dims = calc_unsqueeze_dims(this.dims, dim); + return this; + } + + /** + * In-place version of @see {@link Tensor.flatten} + */ + flatten_(start_dim = 0, end_dim = -1) { + // TODO validate inputs + end_dim = (end_dim + this.dims.length) % this.dims.length; + + let dimsToKeepBefore = this.dims.slice(0, start_dim); + let dimsToFlatten = this.dims.slice(start_dim, end_dim + 1); + let dimsToKeepAfter = this.dims.slice(end_dim + 1); + + this.dims = [...dimsToKeepBefore, dimsToFlatten.reduce((a, b) => a * b, 1), ...dimsToKeepAfter] + return this; + } + + /** + * Flattens input by reshaping it into a one-dimensional tensor. + * If `start_dim` or `end_dim` are passed, only dimensions starting with `start_dim` + * and ending with `end_dim` are flattened. The order of elements in input is unchanged. + * @param {number} start_dim the first dim to flatten + * @param {number} end_dim the last dim to flatten + * @returns The flattened tensor. + */ + flatten(start_dim = 0, end_dim = -1) { + return this.clone().flatten_(start_dim, end_dim); + } + + /** + * Returns a new tensor with the same data as the `self` tensor but of a different `shape`. + * @param {...number} dims the desired size + * @returns {Tensor} The tensor with the same data but different shape + */ + view(...dims) { + // TODO: validate dims + let inferredIndex = -1; + for (let i = 0; i < dims.length; ++i) { + if (dims[i] === -1) { + if (inferredIndex !== -1) { + throw new Error("Only one dimension can be inferred"); + } + inferredIndex = i; + } + } + + if (inferredIndex !== -1) { + // Some dimension must be inferred + const productOther = dims.reduce((product, curr, index) => { + return index !== inferredIndex ? product * curr : product + }, 1); + + dims[inferredIndex] = this.data.length / productOther; + } + return new Tensor(this.type, this.data, dims); // NOTE: uses same underlying storage + } + + neg_() { + for (let i = 0; i < this.data.length; ++i) { + this.data[i] = -this.data[i]; + } + return this; + } + neg() { + return this.clone().neg_(); + } + + /** + * In-place version of @see {@link Tensor.clamp} + */ + clamp_(min, max) { + for (let i = 0; i < this.data.length; ++i) { + this.data[i] = Math.min(Math.max(this.data[i], min), max); + } + return this; + } + + /** + * Clamps all elements in input into the range [ min, max ] + * @param {number} min lower-bound of the range to be clamped to + * @param {number} max upper-bound of the range to be clamped to + * @returns the output tensor. + */ + clamp(min, max) { + return this.clone().clamp_(min, max); + } + + /** + * In-place version of @see {@link Tensor.round} + */ + round_() { + for (let i = 0; i < this.data.length; ++i) { + this.data[i] = Math.round(this.data[i]); + } + return this; + } + + /** + * Rounds elements of input to the nearest integer. + * @returns the output tensor. + */ + round() { + return this.clone().round_(); + } + + /** + * Performs Tensor dtype conversion. + * @param {DataType} type The desired data type. + * @returns {Tensor} The converted tensor. + */ + to(type) { + // If the self Tensor already has the correct dtype, then self is returned. + if (this.type === type) return this; + + // Otherwise, the returned tensor is a copy of self with the desired dtype. + if (!DataTypeMap.hasOwnProperty(type)) { + throw new Error(`Unsupported type: ${type}`); + } + // @ts-ignore + return new Tensor(type, DataTypeMap[type].from(this.data), this.dims); + } +} + +/** + * This creates a nested array of a given type and depth (see examples). + * + * @example + * NestArray; // string[] + * @example + * NestArray; // number[][] + * @example + * NestArray; // string[][][] etc. + * @template T + * @template {number} Depth + * @template {never[]} [Acc=[]] + * @typedef {Acc['length'] extends Depth ? T : NestArray} NestArray + */ + +/** + * Reshapes a 1-dimensional array into an n-dimensional array, according to the provided dimensions. + * + * @example + * reshape([10 ], [1 ]); // Type: number[] Value: [10] + * reshape([1, 2, 3, 4 ], [2, 2 ]); // Type: number[][] Value: [[1, 2], [3, 4]] + * reshape([1, 2, 3, 4, 5, 6, 7, 8], [2, 2, 2]); // Type: number[][][] Value: [[[1, 2], [3, 4]], [[5, 6], [7, 8]]] + * reshape([1, 2, 3, 4, 5, 6, 7, 8], [4, 2 ]); // Type: number[][] Value: [[1, 2], [3, 4], [5, 6], [7, 8]] + * @param {T[]|DataArray} data The input array to reshape. + * @param {DIM} dimensions The target shape/dimensions. + * @template T + * @template {[number]|number[]} DIM + * @returns {NestArray} The reshaped array. + */ +function reshape(data, dimensions) { + + const totalElements = data.length; + const dimensionSize = dimensions.reduce((a, b) => a * b); + + if (totalElements !== dimensionSize) { + throw Error(`cannot reshape array of size ${totalElements} into shape (${dimensions})`); + } + + /** @type {any} */ + let reshapedArray = data; + + for (let i = dimensions.length - 1; i >= 0; i--) { + reshapedArray = reshapedArray.reduce((acc, val) => { + let lastArray = acc[acc.length - 1]; + + if (lastArray.length < dimensions[i]) { + lastArray.push(val); + } else { + acc.push([val]); + } + + return acc; + }, [[]]); + } + + return reshapedArray[0]; +} + +/** + * Transposes a tensor according to the provided axes. + * @param {any} tensor The input tensor to transpose. + * @param {Array} axes The axes to transpose the tensor along. + * @returns {Tensor} The transposed tensor. + */ +export function transpose(tensor, axes) { + const [transposedData, shape] = transpose_data(tensor.data, tensor.dims, axes); + return new Tensor(tensor.type, transposedData, shape); +} + + +/** + * Interpolates an Tensor to the given size. + * @param {Tensor} input The input tensor to interpolate. Data must be channel-first (i.e., [c, h, w]) + * @param {number[]} size The output size of the image + * @param {string} mode The interpolation mode + * @param {boolean} align_corners Whether to align corners. + * @returns {Tensor} The interpolated tensor. + */ +export function interpolate(input, [out_height, out_width], mode = 'bilinear', align_corners = false) { + + // Input image dimensions + const in_channels = input.dims.at(-3) ?? 1; + const in_height = input.dims.at(-2); + const in_width = input.dims.at(-1); + + let output = interpolate_data( + /** @type {import('./maths.js').TypedArray}*/(input.data), + [in_channels, in_height, in_width], + [out_height, out_width], + mode, + align_corners + ); + return new Tensor(input.type, output, [in_channels, out_height, out_width]); +} + +/** + * Perform mean pooling of the last hidden state followed by a normalization step. + * @param {Tensor} last_hidden_state Tensor of shape [batchSize, seqLength, embedDim] + * @param {Tensor} attention_mask Tensor of shape [batchSize, seqLength] + * @returns {Tensor} Returns a new Tensor of shape [batchSize, embedDim]. + */ +export function mean_pooling(last_hidden_state, attention_mask) { + // last_hidden_state: [batchSize, seqLength, embedDim] + // attention_mask: [batchSize, seqLength] + + let shape = [last_hidden_state.dims[0], last_hidden_state.dims[2]]; + // @ts-ignore + let returnedData = new last_hidden_state.data.constructor(shape[0] * shape[1]); + let [batchSize, seqLength, embedDim] = last_hidden_state.dims; + + let outIndex = 0; + for (let i = 0; i < batchSize; ++i) { + let offset = i * embedDim * seqLength; + + for (let k = 0; k < embedDim; ++k) { + let sum = 0; + let count = 0; + + let attnMaskOffset = i * seqLength; + let offset2 = offset + k; + // Pool over all words in sequence + for (let j = 0; j < seqLength; ++j) { + // index into attention mask + let attn = Number(attention_mask.data[attnMaskOffset + j]); + + count += attn; + sum += last_hidden_state.data[offset2 + j * embedDim] * attn; + } + + let avg = sum / count; + returnedData[outIndex++] = avg; + } + } + + return new Tensor( + last_hidden_state.type, + returnedData, + shape + ) +} + +/** + * Helper function to calculate new dimensions when performing a squeeze operation. + * @param {number[]} dims The dimensions of the tensor. + * @param {number|number[]|null} dim The dimension(s) to squeeze. + * @returns The new dimensions. + * @private + */ +function calc_squeeze_dims(dims, dim) { + dims = dims.slice(); + if (dim === null) { + dims = dims.filter((d) => d !== 1); + } else if (typeof dim === 'number') { + if (dims[dim] === 1) { + dims.splice(dim, 1); + } + } else if (Array.isArray(dim)) { + dims = dims.filter((x, i) => { + return x !== 1 || !dim.includes(i); + }); + } + return dims; +} + +/** + * Helper function to calculate new dimensions when performing an unsqueeze operation. + * @param {number[]} dims The dimensions of the tensor. + * @param {number} dim The dimension to unsqueeze. + * @returns The new dimensions. + * @private + */ +function calc_unsqueeze_dims(dims, dim) { + // Dimension out of range (e.g., "expected to be in range of [-4, 3], but got 4") + // + 1 since we allow inserting at the end (i.e. dim = -1) + dim = safeIndex(dim, dims.length + 1); + dims = dims.slice(); + // Insert 1 into specified dimension + dims.splice(dim, 0, 1); + return dims; +} + +/** + * Safely calculate the index for an array of a given size, allowing negative indexing. + * @param {number} index The index that will be used. + * @param {number} size The size of the array. + * @param {number} [dimension=null] The dimension that the index is for (optional). + * @returns {number} The index, guaranteed to be non-negative and less than `arrayLength`. + * + * @throws {Error} If the index is out of range. + * @private + */ +function safeIndex(index, size, dimension = null) { + if (index < -size || index >= size) { + throw new Error(`IndexError: index ${index} is out of bounds for dimension${dimension === null ? '' : ' ' + dimension} with size ${size}`); + } + + if (index < 0) { + // Negative indexing, ensuring positive index + index = ((index % size) + size) % size; + } + return index; +} + +/** + * Concatenates an array of tensors along a specified dimension. + * @param {Tensor[]} tensors The array of tensors to concatenate. + * @param {number} dim The dimension to concatenate along. + * @returns {Tensor} The concatenated tensor. + */ +export function cat(tensors, dim = 0) { + dim = safeIndex(dim, tensors[0].dims.length); + + // TODO do validation of shapes + + const resultDims = tensors[0].dims.slice(); + resultDims[dim] = tensors.reduce((a, b) => a + b.dims[dim], 0); + + // Create a new array to store the accumulated values + const resultSize = resultDims.reduce((a, b) => a * b, 1); + // @ts-ignore + const result = new tensors[0].data.constructor(resultSize); + + // Create output tensor of same type as first + const resultType = tensors[0].type; + + if (dim === 0) { + // Handle special case for performance reasons + + let offset = 0; + for (let t of tensors) { + result.set(t.data, offset); + offset += t.data.length; + } + + } else { + + let currentDim = 0; + + for (let t = 0; t < tensors.length; ++t) { + let tensor = tensors[t]; + + // Iterate over the data array + for (let i = 0; i < tensor.data.length; ++i) { + // Calculate the index in the resulting array + let resultIndex = 0; + + for (let j = tensor.dims.length - 1, num = i, resultMultiplier = 1; j >= 0; --j) { + const size = tensor.dims[j]; + let index = num % size; + if (j === dim) { + index += currentDim; + } + resultIndex += index * resultMultiplier; + resultMultiplier *= resultDims[j]; + num = Math.floor(num / size); + } + // Accumulate the value at the current index + result[resultIndex] = tensor.data[i]; + } + + currentDim += tensor.dims[dim]; + } + } + return new Tensor(resultType, result, resultDims); +} + +/** + * Stack an array of tensors along a specified dimension. + * @param {Tensor[]} tensors The array of tensors to stack. + * @param {number} dim The dimension to stack along. + * @returns {Tensor} The stacked tensor. + */ +export function stack(tensors, dim = 0) { + // TODO do validation of shapes + // NOTE: stack expects each tensor to be equal size + return cat(tensors.map(t => t.unsqueeze(dim)), dim); +} + + +/** + * Calculates the standard deviation and mean over the dimensions specified by dim. dim can be a single dimension or `null` to reduce over all dimensions. + * @param {Tensor} input the input tenso + * @param {number|null} dim the dimension to reduce. If None, all dimensions are reduced. + * @param {number} correction difference between the sample size and sample degrees of freedom. Defaults to Bessel's correction, correction=1. + * @param {boolean} keepdim whether the output tensor has dim retained or not. + * @returns {Tensor[]} A tuple of (std, mean) tensors. + */ +export function std_mean(input, dim = null, correction = 1, keepdim = false) { + + if (dim === null) { + // None to reduce over all dimensions. + // @ts-ignore + const sum = input.data.reduce((a, b) => a + b, 0); + const mean = sum / input.data.length; + // @ts-ignore + const std = Math.sqrt(input.data.reduce((a, b) => a + (b - mean) ** 2, 0) / (input.data.length - correction)); + + const meanTensor = new Tensor(input.type, [mean], [/* scalar */]); + const stdTensor = new Tensor(input.type, [std], [/* scalar */]); + + return [stdTensor, meanTensor]; + } + + // Negative indexing + dim = safeIndex(dim, input.dims.length); + + const meanTensor = mean(input, dim, keepdim); + + // Calculate the shape of the resulting array after summation + const resultDims = input.dims.slice(); // Copy the original dimensions + resultDims[dim] = 1; // Remove the specified axis + + // Create a new array to store the accumulated values + // @ts-ignore + const result = new input.data.constructor(input.data.length / input.dims[dim]); + + // Iterate over the data array + for (let i = 0; i < input.data.length; ++i) { + + // Calculate the index in the resulting array + let resultIndex = 0; + + for (let j = input.dims.length - 1, num = i, resultMultiplier = 1; j >= 0; --j) { + const size = input.dims[j]; + if (j !== dim) { + const index = num % size; + resultIndex += index * resultMultiplier; + resultMultiplier *= resultDims[j]; + } + num = Math.floor(num / size); + } + + // Accumulate the value at the current index + result[resultIndex] += (input.data[i] - meanTensor.data[resultIndex]) ** 2; + } + + for (let i = 0; i < result.length; ++i) { + result[i] = Math.sqrt(result[i] / (input.dims[dim] - correction)); + } + + if (!keepdim) { + resultDims.splice(dim, 1); + } + + const stdTensor = new Tensor(input.type, result, resultDims); + + return [stdTensor, meanTensor]; +} + + +/** + * Returns the mean value of each row of the input tensor in the given dimension dim. + * @param {Tensor} input the input tensor. + * @param {number|null} dim the dimension to reduce. + * @param {boolean} keepdim whether the output tensor has dim retained or not. + * @returns A new tensor with means taken along the specified dimension. + */ +export function mean(input, dim = null, keepdim = false) { + + if (dim === null) { + // None to reduce over all dimensions. + // @ts-ignore + let val = input.data.reduce((a, b) => a + b, 0); + return new Tensor(input.type, [val / input.data.length], [/* scalar */]); + } + + // Negative indexing + dim = safeIndex(dim, input.dims.length); + + // Calculate the shape of the resulting array after summation + const resultDims = input.dims.slice(); // Copy the original dimensions + resultDims[dim] = 1; // Remove the specified axis + + // Create a new array to store the accumulated values + // @ts-ignore + const result = new input.data.constructor(input.data.length / input.dims[dim]); + + // Iterate over the data array + for (let i = 0; i < input.data.length; ++i) { + + // Calculate the index in the resulting array + let resultIndex = 0; + + for (let j = input.dims.length - 1, num = i, resultMultiplier = 1; j >= 0; --j) { + const size = input.dims[j]; + if (j !== dim) { + const index = num % size; + resultIndex += index * resultMultiplier; + resultMultiplier *= resultDims[j]; + } + num = Math.floor(num / size); + } + + // Accumulate the value at the current index + result[resultIndex] += input.data[i]; + } + + if (input.dims[dim] !== 1) { + for (let i = 0; i < result.length; ++i) { + result[i] = result[i] / input.dims[dim]; + } + } + + if (!keepdim) { + resultDims.splice(dim, 1); + } + + return new Tensor(input.type, result, resultDims); +} + + +/** + * + * Measures similarity between two temporal sequences (e.g., input audio and output tokens + * to generate token-level timestamps). + * @param {Tensor} matrix + * @returns {number[][]} + */ +export function dynamicTimeWarping(matrix) { + const [output_length, input_length] = matrix.dims; + + const outputShape = [output_length + 1, input_length + 1]; + + const cost = new Tensor( + 'float32', + new Float32Array(outputShape[0] * outputShape[1]).fill(Infinity), + outputShape + ); + + const trace = new Tensor( + 'float32', + new Float32Array(outputShape[0] * outputShape[1]).fill(-1), + outputShape + ) + + // same as `cost[0][0] = 0`; + cost[0].data[0] = 0; + + for (let j = 1; j < input_length + 1; ++j) { + for (let i = 1; i < output_length + 1; ++i) { + + const c0 = cost[i - 1][j - 1].item(); + const c1 = cost[i - 1][j].item(); + const c2 = cost[i][j - 1].item(); + + let c, t; + if (c0 < c1 && c0 < c2) { + c = c0; + t = 0; + } else if (c1 < c0 && c1 < c2) { + c = c1; + t = 1; + } else { + c = c2; + t = 2; + } + + cost[i].data[j] = matrix[i - 1][j - 1].item() + c; + trace[i].data[j] = t; + } + } + + // backtrace + let i = output_length; + let j = input_length; + + // @ts-ignore + trace.data.fill(2, 0, outputShape[1]) // trace[0, :] = 2 + for (let i = 0; i < outputShape[0]; ++i) { // trace[:, 0] = 1 + trace[i].data[0] = 1; + } + + let text_indices = []; + let time_indices = []; + + while (i > 0 || j > 0) { + text_indices.push(i - 1); + time_indices.push(j - 1); + + const t = trace[i][j].item(); + switch (t) { + case 0: + --i; --j; + break; + case 1: + --i; + break; + case 2: + --j; + break; + default: + throw new Error( + `Internal error in dynamic time warping. Unexpected trace[${i}, ${j}]. Please file a bug report.` + ) + } + } + + text_indices.reverse(); + time_indices.reverse(); + + return [text_indices, time_indices]; + +} + +function dimsToStride(dims) { + const stride = new Array(dims.length); + for (let i = dims.length - 1, s2 = 1; i >= 0; --i) { + stride[i] = s2; + s2 *= dims[i]; + } + return stride; +} + +/** + * Returns a tensor filled with the scalar value 1, with the shape defined by the variable argument size. + * @param {number[]} size A sequence of integers defining the shape of the output tensor. + */ +export function ones(size) { + const numElements = size.reduce((a, b) => a * b, 1); + return new Tensor( + 'int64', + new BigInt64Array(numElements).fill(1n), + size + ) +} + +/** + * Returns a tensor filled with the scalar value 1, with the same size as input. + * @param {Tensor} tensor The size of input will determine size of the output tensor. + * @returns The ones tensor. + */ +export function ones_like(tensor) { + return ones(tensor.dims); +} diff --git a/core/vendor/modules/@xenova/transformers/types/backends/onnx.d.ts b/core/vendor/modules/@xenova/transformers/types/backends/onnx.d.ts new file mode 100644 index 000000000..a287ca200 --- /dev/null +++ b/core/vendor/modules/@xenova/transformers/types/backends/onnx.d.ts @@ -0,0 +1,5 @@ +/** @type {import('onnxruntime-web')} The ONNX runtime module. */ +export let ONNX: typeof ONNX_WEB; +export const executionProviders: string[]; +import * as ONNX_WEB from 'onnxruntime-web'; +//# sourceMappingURL=onnx.d.ts.map \ No newline at end of file diff --git a/core/vendor/modules/@xenova/transformers/types/backends/onnx.d.ts.map b/core/vendor/modules/@xenova/transformers/types/backends/onnx.d.ts.map new file mode 100644 index 000000000..dfa827f92 --- /dev/null +++ b/core/vendor/modules/@xenova/transformers/types/backends/onnx.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"onnx.d.ts","sourceRoot":"","sources":["../../src/backends/onnx.js"],"names":[],"mappings":"AAuBA,iEAAiE;AACjE,iCAAgB;AAEhB,0CAGE;0BARwB,iBAAiB"} \ No newline at end of file diff --git a/core/vendor/modules/@xenova/transformers/types/configs.d.ts b/core/vendor/modules/@xenova/transformers/types/configs.d.ts new file mode 100644 index 000000000..fa3989912 --- /dev/null +++ b/core/vendor/modules/@xenova/transformers/types/configs.d.ts @@ -0,0 +1,43 @@ +/** + * Base class for all configuration classes. For more information, see the corresponding + * [Python documentation](https://huggingface.co/docs/transformers/main/en/main_classes/configuration#transformers.PretrainedConfig). + */ +export class PretrainedConfig { + /** + * Loads a pre-trained config from the given `pretrained_model_name_or_path`. + * + * @param {string} pretrained_model_name_or_path The path to the pre-trained config. + * @param {PretrainedOptions} options Additional options for loading the config. + * @throws {Error} Throws an error if the config.json is not found in the `pretrained_model_name_or_path`. + * + * @returns {Promise} A new instance of the `PretrainedConfig` class. + */ + static from_pretrained(pretrained_model_name_or_path: string, { progress_callback, config, cache_dir, local_files_only, revision, }?: PretrainedOptions): Promise; + /** + * Create a new PreTrainedTokenizer instance. + * @param {Object} configJSON The JSON of the config. + */ + constructor(configJSON: any); + model_type: any; + is_encoder_decoder: boolean; +} +/** + * Helper class which is used to instantiate pretrained configs with the `from_pretrained` function. + * + * @example + * let config = await AutoConfig.from_pretrained('bert-base-uncased'); + */ +export class AutoConfig { + /** + * Loads a pre-trained config from the given `pretrained_model_name_or_path`. + * + * @param {string} pretrained_model_name_or_path The path to the pre-trained config. + * @param {PretrainedOptions} options Additional options for loading the config. + * @throws {Error} Throws an error if the config.json is not found in the `pretrained_model_name_or_path`. + * + * @returns {Promise} A new instance of the `PretrainedConfig` class. + */ + static from_pretrained(pretrained_model_name_or_path: string, { progress_callback, config, cache_dir, local_files_only, revision, }?: import("./utils/hub.js").PretrainedOptions): Promise; +} +export type PretrainedOptions = import('./utils/hub.js').PretrainedOptions; +//# sourceMappingURL=configs.d.ts.map \ No newline at end of file diff --git a/core/vendor/modules/@xenova/transformers/types/configs.d.ts.map b/core/vendor/modules/@xenova/transformers/types/configs.d.ts.map new file mode 100644 index 000000000..66011d266 --- /dev/null +++ b/core/vendor/modules/@xenova/transformers/types/configs.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"configs.d.ts","sourceRoot":"","sources":["../src/configs.js"],"names":[],"mappings":"AAiDA;;;GAGG;AACH;IAcI;;;;;;;;OAQG;IACH,sDANW,MAAM,0EACN,iBAAiB,GAGf,QAAQ,gBAAgB,CAAC,CAkBrC;IApCD;;;OAGG;IACH,6BAKC;IAJG,gBAAsB;IACtB,4BAA+B;CA+BtC;AAED;;;;;GAKG;AACH;IAlCI;;;;;;;;OAQG;IACH,6MAgBC;CAcJ;gCAxEY,OAAO,gBAAgB,EAAE,iBAAiB"} \ No newline at end of file diff --git a/core/vendor/modules/@xenova/transformers/types/env.d.ts b/core/vendor/modules/@xenova/transformers/types/env.d.ts new file mode 100644 index 000000000..bfba7425b --- /dev/null +++ b/core/vendor/modules/@xenova/transformers/types/env.d.ts @@ -0,0 +1,28 @@ +export namespace env { + export namespace backends { + export { onnx_env as onnx }; + export let tfjs: {}; + } + export { __dirname }; + export { VERSION as version }; + export let allowRemoteModels: boolean; + export let remoteHost: string; + export let remotePathTemplate: string; + export let allowLocalModels: boolean; + export { localModelPath }; + export { FS_AVAILABLE as useFS }; + export { WEB_CACHE_AVAILABLE as useBrowserCache }; + export { FS_AVAILABLE as useFSCache }; + export { DEFAULT_CACHE_DIR as cacheDir }; + export let useCustomCache: boolean; + export let customCache: any; +} +declare const onnx_env: import("onnxruntime-common").Env; +declare const __dirname: any; +declare const VERSION: "2.14.0"; +declare const localModelPath: any; +declare const FS_AVAILABLE: boolean; +declare const WEB_CACHE_AVAILABLE: boolean; +declare const DEFAULT_CACHE_DIR: any; +export {}; +//# sourceMappingURL=env.d.ts.map \ No newline at end of file diff --git a/core/vendor/modules/@xenova/transformers/types/env.d.ts.map b/core/vendor/modules/@xenova/transformers/types/env.d.ts.map new file mode 100644 index 000000000..3952df4f4 --- /dev/null +++ b/core/vendor/modules/@xenova/transformers/types/env.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../src/env.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAwCA,6BAEW;AAXX,gCAAyB;AAoBzB,kCAE+B;AAlB/B,oCAAkC;AADlC,2CAA4E;AAW5E,qCAEW"} \ No newline at end of file diff --git a/core/vendor/modules/@xenova/transformers/types/models.d.ts b/core/vendor/modules/@xenova/transformers/types/models.d.ts new file mode 100644 index 000000000..380a4702b --- /dev/null +++ b/core/vendor/modules/@xenova/transformers/types/models.d.ts @@ -0,0 +1,3318 @@ +declare const PreTrainedModel_base: new () => { + (...args: any[]): any; + _call(...args: any[]): any; +}; +/** + * A base class for pre-trained models that provides the model configuration and an ONNX session. + */ +export class PreTrainedModel extends PreTrainedModel_base { + /** + * Instantiate one of the model classes of the library from a pretrained model. + * + * The model class to instantiate is selected based on the `model_type` property of the config object + * (either passed as an argument or loaded from `pretrained_model_name_or_path` if possible) + * + * @param {string} pretrained_model_name_or_path The name or path of the pretrained model. Can be either: + * - A string, the *model id* of a pretrained model hosted inside a model repo on huggingface.co. + * Valid model ids can be located at the root-level, like `bert-base-uncased`, or namespaced under a + * user or organization name, like `dbmdz/bert-base-german-cased`. + * - A path to a *directory* containing model weights, e.g., `./my_model_directory/`. + * @param {import('./utils/hub.js').PretrainedOptions} options Additional options for loading the model. + * + * @returns {Promise} A new instance of the `PreTrainedModel` class. + */ + static from_pretrained(pretrained_model_name_or_path: string, { quantized, progress_callback, config, cache_dir, local_files_only, revision, model_file_name, }?: import('./utils/hub.js').PretrainedOptions): Promise; + /** + * Creates a new instance of the `PreTrainedModel` class. + * @param {Object} config The model configuration. + * @param {any} session session for the model. + */ + constructor(config: any, session: any); + main_input_name: string; + config: any; + session: any; + can_generate: boolean; + _runBeam: typeof decoderRunBeam; + _getStartBeams: typeof decoderStartBeams; + _updateBeam: typeof decoderUpdatebeam; + _forward: typeof encoderForward; + /** + * Disposes of all the ONNX sessions that were created during inference. + * @returns {Promise} An array of promises, one for each ONNX session that is being disposed. + * @todo Use https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/FinalizationRegistry + */ + dispose(): Promise; + /** + * Runs the model with the provided inputs + * @param {Object} model_inputs Object containing input tensors + * @returns {Promise} Object containing output tensors + */ + _call(model_inputs: any): Promise; + /** + * Forward method for a pretrained model. If not overridden by a subclass, the correct forward method + * will be chosen based on the model type. + * @param {Object} model_inputs The input data to the model in the format specified in the ONNX model. + * @returns {Promise} The output data from the model in the format specified in the ONNX model. + * @throws {Error} This method must be implemented in subclasses. + */ + forward(model_inputs: any): Promise; + /** + * @param {import('./utils/generation.js').GenerationConfigType} generation_config + * @param {number} input_ids_seq_length The starting sequence length for the input ids. + * @returns {LogitsProcessorList} + * @private + */ + private _get_logits_processor; + /** + * This function merges multiple generation configs together to form a final generation config to be used by the model for text generation. + * It first creates an empty `GenerationConfig` object, then it applies the model's own `generation_config` property to it. Finally, if a `generation_config` object was passed in the arguments, it overwrites the corresponding properties in the final config with those of the passed config object. + * @param {import('./utils/generation.js').GenerationConfigType} generation_config A `GenerationConfig` object containing generation parameters. + * @returns {import('./utils/generation.js').GenerationConfigType} The final generation config object to be used by the model for text generation. + */ + _get_generation_config(generation_config: import('./utils/generation.js').GenerationConfigType): import('./utils/generation.js').GenerationConfigType; + /** + * @typedef {import('./utils/maths.js').TypedArray} TypedArray + */ + /** + * @typedef {{ sequences: Tensor, decoder_attentions: Tensor, cross_attentions: Tensor }} EncoderDecoderOutput + * @typedef {Object} DecoderOutput + * + * Generates text based on the given inputs and generation configuration using the model. + * @param {Tensor|Array|TypedArray} inputs An array of input token IDs. + * @param {Object|GenerationConfig|null} generation_config The generation configuration to use. If null, default configuration will be used. + * @param {Object|null} logits_processor An optional logits processor to use. If null, a new LogitsProcessorList instance will be created. + * @param {Object} options options + * @param {Object} [options.inputs_attention_mask=null] An optional attention mask for the inputs. + * @returns {Promise} An array of generated output sequences, where each sequence is an array of token IDs. + * @throws {Error} Throws an error if the inputs array is empty. + */ + generate(inputs: any[] | import("./transformers.js").TypedArray | Tensor, generation_config?: any | (new (kwargs?: import("./utils/generation.js").GenerationConfigType) => import("./utils/generation.js").GenerationConfigType) | null, logits_processor?: any | null, { inputs_attention_mask }?: { + inputs_attention_mask?: any; + }): Promise; + /** + * Helper function to add attentions to beam + * @param {Object} beam + * @param {Object} output + * @private + */ + private addAttentionsToBeam; + /** + * Groups an array of beam objects by their ids. + * + * @param {Array} beams The array of beam objects to group. + * @returns {Array} An array of arrays, where each inner array contains beam objects with the same id. + */ + groupBeams(beams: any[]): any[]; + /** + * Returns an object containing past key values from the given decoder results object. + * + * @param {Object} decoderResults The decoder results object. + * @param {Object} pastKeyValues The previous past key values. + * @returns {Object} An object containing past key values. + */ + getPastKeyValues(decoderResults: any, pastKeyValues: any): any; + /** + * Returns an object containing attentions from the given decoder results object. + * + * @param {Object} decoderResults The decoder results object. + * @returns {Object} An object containing attentions. + */ + getAttentions(decoderResults: any): any; + /** + * Adds past key values to the decoder feeds object. If pastKeyValues is null, creates new tensors for past key values. + * + * @param {Object} decoderFeeds The decoder feeds object to add past key values to. + * @param {Object} pastKeyValues An object containing past key values. + */ + addPastKeyValues(decoderFeeds: any, pastKeyValues: any): void; + /** + * Initializes and returns the beam for text generation task + * @param {Tensor} inputTokenIds The input token ids. + * @param {Object} generation_config The generation config. + * @param {number} numOutputTokens The number of tokens to be generated. + * @param {Tensor} inputs_attention_mask Optional input attention mask. + * @returns {any} A Beam object representing the initialized beam. + * @private + */ + private getStartBeams; + /** + * Runs a single step of the beam search generation algorithm. + * @param {any} beam The current beam being generated. + * @returns {Promise} The updated beam after a single generation step. + * @private + */ + private runBeam; + /** + * Update a beam with a new token ID. + * @param {Object} beam The beam to update. + * @param {number} newTokenId The new token ID to add to the beam's output. + * @private + */ + private updateBeam; +} +export class ModelOutput { +} +/** + * Base class for model's outputs, with potential hidden states and attentions. + */ +export class BaseModelOutput extends ModelOutput { + /** + * @param {Object} output The output of the model. + * @param {Tensor} output.last_hidden_state Sequence of hidden-states at the output of the last layer of the model. + * @param {Tensor} [output.hidden_states] Hidden-states of the model at the output of each layer plus the optional initial embedding outputs. + * @param {Tensor} [output.attentions] Attentions weights after the attention softmax, used to compute the weighted average in the self-attention heads. + */ + constructor({ last_hidden_state, hidden_states, attentions }: { + last_hidden_state: Tensor; + hidden_states?: Tensor; + attentions?: Tensor; + }); + last_hidden_state: Tensor; + hidden_states: Tensor; + attentions: Tensor; +} +export class BertPreTrainedModel extends PreTrainedModel { +} +export class BertModel extends BertPreTrainedModel { +} +/** + * BertForMaskedLM is a class representing a BERT model for masked language modeling. + */ +export class BertForMaskedLM extends BertPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} An object containing the model's output logits for masked language modeling. + */ + _call(model_inputs: any): Promise; +} +/** + * BertForSequenceClassification is a class representing a BERT model for sequence classification. + */ +export class BertForSequenceClassification extends BertPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} An object containing the model's output logits for sequence classification. + */ + _call(model_inputs: any): Promise; +} +/** + * BertForTokenClassification is a class representing a BERT model for token classification. + */ +export class BertForTokenClassification extends BertPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} An object containing the model's output logits for token classification. + */ + _call(model_inputs: any): Promise; +} +/** + * BertForQuestionAnswering is a class representing a BERT model for question answering. + */ +export class BertForQuestionAnswering extends BertPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} An object containing the model's output logits for question answering. + */ + _call(model_inputs: any): Promise; +} +export class RoFormerPreTrainedModel extends PreTrainedModel { +} +/** + * The bare RoFormer Model transformer outputting raw hidden-states without any specific head on top. + */ +export class RoFormerModel extends RoFormerPreTrainedModel { +} +/** + * RoFormer Model with a `language modeling` head on top. + */ +export class RoFormerForMaskedLM extends RoFormerPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} An object containing the model's output logits for masked language modeling. + */ + _call(model_inputs: any): Promise; +} +/** + * RoFormer Model transformer with a sequence classification/regression head on top (a linear layer on top of the pooled output) + */ +export class RoFormerForSequenceClassification extends RoFormerPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} An object containing the model's output logits for sequence classification. + */ + _call(model_inputs: any): Promise; +} +/** + * RoFormer Model with a token classification head on top (a linear layer on top of the hidden-states output) + * e.g. for Named-Entity-Recognition (NER) tasks. + */ +export class RoFormerForTokenClassification extends RoFormerPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} An object containing the model's output logits for token classification. + */ + _call(model_inputs: any): Promise; +} +/** + * RoFormer Model with a span classification head on top for extractive question-answering tasks like SQuAD + * (a linear layers on top of the hidden-states output to compute `span start logits` and `span end logits`). + */ +export class RoFormerForQuestionAnswering extends RoFormerPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} An object containing the model's output logits for question answering. + */ + _call(model_inputs: any): Promise; +} +export class ConvBertPreTrainedModel extends PreTrainedModel { +} +/** + * The bare ConvBERT Model transformer outputting raw hidden-states without any specific head on top. + */ +export class ConvBertModel extends ConvBertPreTrainedModel { +} +/** + * ConvBERT Model with a language modeling head on top. + */ +export class ConvBertForMaskedLM extends ConvBertPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} An object containing the model's output logits for masked language modeling. + */ + _call(model_inputs: any): Promise; +} +/** + * ConvBERT Model transformer with a sequence classification/regression head on top (a linear layer on top of the pooled output) + */ +export class ConvBertForSequenceClassification extends ConvBertPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} An object containing the model's output logits for sequence classification. + */ + _call(model_inputs: any): Promise; +} +/** + * ConvBERT Model with a token classification head on top (a linear layer on top of the hidden-states output) + * e.g. for Named-Entity-Recognition (NER) tasks. + */ +export class ConvBertForTokenClassification extends ConvBertPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} An object containing the model's output logits for token classification. + */ + _call(model_inputs: any): Promise; +} +/** + * ConvBERT Model with a span classification head on top for extractive question-answering tasks like SQuAD + * (a linear layers on top of the hidden-states output to compute `span start logits` and `span end logits`) + */ +export class ConvBertForQuestionAnswering extends ConvBertPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} An object containing the model's output logits for question answering. + */ + _call(model_inputs: any): Promise; +} +export class ElectraPreTrainedModel extends PreTrainedModel { +} +/** + * The bare Electra Model transformer outputting raw hidden-states without any specific head on top. + * Identical to the BERT model except that it uses an additional linear layer between the embedding + * layer and the encoder if the hidden size and embedding size are different. + */ +export class ElectraModel extends ElectraPreTrainedModel { +} +/** + * Electra model with a language modeling head on top. + */ +export class ElectraForMaskedLM extends ElectraPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} An object containing the model's output logits for masked language modeling. + */ + _call(model_inputs: any): Promise; +} +/** + * ELECTRA Model transformer with a sequence classification/regression head on top (a linear layer on top of the pooled output) + */ +export class ElectraForSequenceClassification extends ElectraPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} An object containing the model's output logits for sequence classification. + */ + _call(model_inputs: any): Promise; +} +/** + * Electra model with a token classification head on top. + */ +export class ElectraForTokenClassification extends ElectraPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} An object containing the model's output logits for token classification. + */ + _call(model_inputs: any): Promise; +} +/** + * LECTRA Model with a span classification head on top for extractive question-answering tasks like SQuAD + * (a linear layers on top of the hidden-states output to compute `span start logits` and `span end logits`). + */ +export class ElectraForQuestionAnswering extends ElectraPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} An object containing the model's output logits for question answering. + */ + _call(model_inputs: any): Promise; +} +export class CamembertPreTrainedModel extends PreTrainedModel { +} +/** + * The bare CamemBERT Model transformer outputting raw hidden-states without any specific head on top. + */ +export class CamembertModel extends CamembertPreTrainedModel { +} +/** + * CamemBERT Model with a `language modeling` head on top. + */ +export class CamembertForMaskedLM extends CamembertPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} An object containing the model's output logits for masked language modeling. + */ + _call(model_inputs: any): Promise; +} +/** + * CamemBERT Model transformer with a sequence classification/regression head on top (a linear layer on top of the pooled output) e.g. for GLUE tasks. + */ +export class CamembertForSequenceClassification extends CamembertPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} An object containing the model's output logits for sequence classification. + */ + _call(model_inputs: any): Promise; +} +/** + * CamemBERT Model with a token classification head on top (a linear layer on top of the hidden-states output) e.g. for Named-Entity-Recognition (NER) tasks. + */ +export class CamembertForTokenClassification extends CamembertPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} An object containing the model's output logits for token classification. + */ + _call(model_inputs: any): Promise; +} +/** + * CamemBERT Model with a span classification head on top for extractive question-answering tasks + */ +export class CamembertForQuestionAnswering extends CamembertPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} An object containing the model's output logits for question answering. + */ + _call(model_inputs: any): Promise; +} +export class DebertaPreTrainedModel extends PreTrainedModel { +} +/** + * The bare DeBERTa Model transformer outputting raw hidden-states without any specific head on top. + */ +export class DebertaModel extends DebertaPreTrainedModel { +} +/** + * DeBERTa Model with a `language modeling` head on top. + */ +export class DebertaForMaskedLM extends DebertaPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} An object containing the model's output logits for masked language modeling. + */ + _call(model_inputs: any): Promise; +} +/** + * DeBERTa Model transformer with a sequence classification/regression head on top (a linear layer on top of the pooled output) + */ +export class DebertaForSequenceClassification extends DebertaPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} An object containing the model's output logits for sequence classification. + */ + _call(model_inputs: any): Promise; +} +/** + * DeBERTa Model with a token classification head on top (a linear layer on top of the hidden-states output) e.g. for Named-Entity-Recognition (NER) tasks. + */ +export class DebertaForTokenClassification extends DebertaPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} An object containing the model's output logits for token classification. + */ + _call(model_inputs: any): Promise; +} +/** + * DeBERTa Model with a span classification head on top for extractive question-answering tasks like SQuAD (a linear + * layers on top of the hidden-states output to compute `span start logits` and `span end logits`). + */ +export class DebertaForQuestionAnswering extends DebertaPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} An object containing the model's output logits for question answering. + */ + _call(model_inputs: any): Promise; +} +export class DebertaV2PreTrainedModel extends PreTrainedModel { +} +/** + * The bare DeBERTa-V2 Model transformer outputting raw hidden-states without any specific head on top. + */ +export class DebertaV2Model extends DebertaV2PreTrainedModel { +} +/** + * DeBERTa-V2 Model with a `language modeling` head on top. + */ +export class DebertaV2ForMaskedLM extends DebertaV2PreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} An object containing the model's output logits for masked language modeling. + */ + _call(model_inputs: any): Promise; +} +/** + * DeBERTa-V2 Model transformer with a sequence classification/regression head on top (a linear layer on top of the pooled output) + */ +export class DebertaV2ForSequenceClassification extends DebertaV2PreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} An object containing the model's output logits for sequence classification. + */ + _call(model_inputs: any): Promise; +} +/** + * DeBERTa-V2 Model with a token classification head on top (a linear layer on top of the hidden-states output) e.g. for Named-Entity-Recognition (NER) tasks. + */ +export class DebertaV2ForTokenClassification extends DebertaV2PreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} An object containing the model's output logits for token classification. + */ + _call(model_inputs: any): Promise; +} +/** + * DeBERTa-V2 Model with a span classification head on top for extractive question-answering tasks like SQuAD (a linear + * layers on top of the hidden-states output to compute `span start logits` and `span end logits`). + */ +export class DebertaV2ForQuestionAnswering extends DebertaV2PreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} An object containing the model's output logits for question answering. + */ + _call(model_inputs: any): Promise; +} +export class DistilBertPreTrainedModel extends PreTrainedModel { +} +export class DistilBertModel extends DistilBertPreTrainedModel { +} +/** + * DistilBertForSequenceClassification is a class representing a DistilBERT model for sequence classification. + */ +export class DistilBertForSequenceClassification extends DistilBertPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} An object containing the model's output logits for sequence classification. + */ + _call(model_inputs: any): Promise; +} +/** + * DistilBertForTokenClassification is a class representing a DistilBERT model for token classification. + */ +export class DistilBertForTokenClassification extends DistilBertPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} An object containing the model's output logits for token classification. + */ + _call(model_inputs: any): Promise; +} +/** + * DistilBertForQuestionAnswering is a class representing a DistilBERT model for question answering. + */ +export class DistilBertForQuestionAnswering extends DistilBertPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} An object containing the model's output logits for question answering. + */ + _call(model_inputs: any): Promise; +} +/** + * DistilBertForMaskedLM is a class representing a DistilBERT model for masking task. + */ +export class DistilBertForMaskedLM extends DistilBertPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} returned object + */ + _call(model_inputs: any): Promise; +} +export class EsmPreTrainedModel extends PreTrainedModel { +} +/** + * The bare ESM Model transformer outputting raw hidden-states without any specific head on top. + */ +export class EsmModel extends EsmPreTrainedModel { +} +/** + * ESM Model with a `language modeling` head on top. + */ +export class EsmForMaskedLM extends EsmPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} An object containing the model's output logits for masked language modeling. + */ + _call(model_inputs: any): Promise; +} +/** + * ESM Model transformer with a sequence classification/regression head on top (a linear layer on top of the pooled output) + */ +export class EsmForSequenceClassification extends EsmPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} An object containing the model's output logits for sequence classification. + */ + _call(model_inputs: any): Promise; +} +/** + * ESM Model with a token classification head on top (a linear layer on top of the hidden-states output) + * e.g. for Named-Entity-Recognition (NER) tasks. + */ +export class EsmForTokenClassification extends EsmPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} An object containing the model's output logits for token classification. + */ + _call(model_inputs: any): Promise; +} +export class MobileBertPreTrainedModel extends PreTrainedModel { +} +export class MobileBertModel extends MobileBertPreTrainedModel { +} +/** + * MobileBertForMaskedLM is a class representing a MobileBERT model for masking task. + */ +export class MobileBertForMaskedLM extends MobileBertPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} returned object + */ + _call(model_inputs: any): Promise; +} +/** + * MobileBert Model transformer with a sequence classification/regression head on top (a linear layer on top of the pooled output) + */ +export class MobileBertForSequenceClassification extends MobileBertPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} returned object + */ + _call(model_inputs: any): Promise; +} +/** + * MobileBert Model with a span classification head on top for extractive question-answering tasks + */ +export class MobileBertForQuestionAnswering extends MobileBertPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} returned object + */ + _call(model_inputs: any): Promise; +} +export class MPNetPreTrainedModel extends PreTrainedModel { +} +/** + * The bare MPNet Model transformer outputting raw hidden-states without any specific head on top. + */ +export class MPNetModel extends MPNetPreTrainedModel { +} +/** + * MPNetForMaskedLM is a class representing a MPNet model for masked language modeling. + */ +export class MPNetForMaskedLM extends MPNetPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} An object containing the model's output logits for masked language modeling. + */ + _call(model_inputs: any): Promise; +} +/** + * MPNetForSequenceClassification is a class representing a MPNet model for sequence classification. + */ +export class MPNetForSequenceClassification extends MPNetPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} An object containing the model's output logits for sequence classification. + */ + _call(model_inputs: any): Promise; +} +/** + * MPNetForTokenClassification is a class representing a MPNet model for token classification. + */ +export class MPNetForTokenClassification extends MPNetPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} An object containing the model's output logits for token classification. + */ + _call(model_inputs: any): Promise; +} +/** + * MPNetForQuestionAnswering is a class representing a MPNet model for question answering. + */ +export class MPNetForQuestionAnswering extends MPNetPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} An object containing the model's output logits for question answering. + */ + _call(model_inputs: any): Promise; +} +export class SqueezeBertPreTrainedModel extends PreTrainedModel { +} +export class SqueezeBertModel extends SqueezeBertPreTrainedModel { +} +export class SqueezeBertForMaskedLM extends SqueezeBertPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} returned object + */ + _call(model_inputs: any): Promise; +} +export class SqueezeBertForSequenceClassification extends SqueezeBertPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} returned object + */ + _call(model_inputs: any): Promise; +} +export class SqueezeBertForQuestionAnswering extends SqueezeBertPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} returned object + */ + _call(model_inputs: any): Promise; +} +export class AlbertPreTrainedModel extends PreTrainedModel { +} +export class AlbertModel extends AlbertPreTrainedModel { +} +export class AlbertForSequenceClassification extends AlbertPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} returned object + */ + _call(model_inputs: any): Promise; +} +export class AlbertForQuestionAnswering extends AlbertPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} returned object + */ + _call(model_inputs: any): Promise; +} +export class AlbertForMaskedLM extends AlbertPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} returned object + */ + _call(model_inputs: any): Promise; +} +export class T5PreTrainedModel extends PreTrainedModel { +} +export class T5Model extends T5PreTrainedModel { +} +/** + * T5Model is a class representing a T5 model for conditional generation. + */ +export class T5ForConditionalGeneration extends T5PreTrainedModel { + /** + * Creates a new instance of the `T5ForConditionalGeneration` class. + * @param {Object} config The model configuration. + * @param {any} session session for the model. + * @param {any} decoder_merged_session session for the decoder. + * @param {GenerationConfig} generation_config The generation configuration. + */ + constructor(config: any, session: any, decoder_merged_session: any, generation_config: new (kwargs?: import("./utils/generation.js").GenerationConfigType) => import("./utils/generation.js").GenerationConfigType); + decoder_merged_session: any; + generation_config: new (kwargs?: import("./utils/generation.js").GenerationConfigType) => import("./utils/generation.js").GenerationConfigType; + num_decoder_layers: any; + num_decoder_heads: any; + decoder_dim_kv: any; + num_encoder_layers: any; + num_encoder_heads: any; + encoder_dim_kv: any; +} +/** + * An abstract class to handle weights initialization and a simple interface for downloading and loading pretrained models. + */ +export class LongT5PreTrainedModel extends PreTrainedModel { +} +/** + * The bare LONGT5 Model transformer outputting raw hidden-states without any specific head on top. + */ +export class LongT5Model extends LongT5PreTrainedModel { +} +/** + * LONGT5 Model with a `language modeling` head on top. + */ +export class LongT5ForConditionalGeneration extends LongT5PreTrainedModel { + /** + * Creates a new instance of the `LongT5ForConditionalGeneration` class. + * @param {Object} config The model configuration. + * @param {any} session session for the model. + * @param {any} decoder_merged_session session for the decoder. + * @param {GenerationConfig} generation_config The generation configuration. + */ + constructor(config: any, session: any, decoder_merged_session: any, generation_config: new (kwargs?: import("./utils/generation.js").GenerationConfigType) => import("./utils/generation.js").GenerationConfigType); + decoder_merged_session: any; + generation_config: new (kwargs?: import("./utils/generation.js").GenerationConfigType) => import("./utils/generation.js").GenerationConfigType; + num_decoder_layers: any; + num_decoder_heads: any; + decoder_dim_kv: any; + num_encoder_layers: any; + num_encoder_heads: any; + encoder_dim_kv: any; +} +export class MT5PreTrainedModel extends PreTrainedModel { +} +export class MT5Model extends MT5PreTrainedModel { +} +/** + * A class representing a conditional sequence-to-sequence model based on the MT5 architecture. + */ +export class MT5ForConditionalGeneration extends MT5PreTrainedModel { + /** + * Creates a new instance of the `MT5ForConditionalGeneration` class. + * @param {any} config The model configuration. + * @param {any} session The ONNX session containing the encoder weights. + * @param {any} decoder_merged_session The ONNX session containing the merged decoder weights. + * @param {GenerationConfig} generation_config The generation configuration. + */ + constructor(config: any, session: any, decoder_merged_session: any, generation_config: new (kwargs?: import("./utils/generation.js").GenerationConfigType) => import("./utils/generation.js").GenerationConfigType); + decoder_merged_session: any; + generation_config: new (kwargs?: import("./utils/generation.js").GenerationConfigType) => import("./utils/generation.js").GenerationConfigType; + num_decoder_layers: any; + num_decoder_heads: any; + decoder_dim_kv: any; + num_encoder_layers: any; + num_encoder_heads: any; + encoder_dim_kv: any; +} +export class BartPretrainedModel extends PreTrainedModel { +} +/** + * The bare BART Model outputting raw hidden-states without any specific head on top. + */ +export class BartModel extends BartPretrainedModel { +} +/** + * The BART Model with a language modeling head. Can be used for summarization. + */ +export class BartForConditionalGeneration extends BartPretrainedModel { + /** + * Creates a new instance of the `BartForConditionalGeneration` class. + * @param {Object} config The configuration object for the Bart model. + * @param {Object} session The ONNX session used to execute the model. + * @param {Object} decoder_merged_session The ONNX session used to execute the decoder. + * @param {Object} generation_config The generation configuration object. + */ + constructor(config: any, session: any, decoder_merged_session: any, generation_config: any); + decoder_merged_session: any; + generation_config: any; + num_decoder_layers: any; + num_decoder_heads: any; + decoder_dim_kv: number; + num_encoder_layers: any; + num_encoder_heads: any; + encoder_dim_kv: number; +} +/** + * Bart model with a sequence classification/head on top (a linear layer on top of the pooled output) + */ +export class BartForSequenceClassification extends BartPretrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} An object containing the model's output logits for sequence classification. + */ + _call(model_inputs: any): Promise; +} +export class MBartPreTrainedModel extends PreTrainedModel { +} +/** + * The bare MBART Model outputting raw hidden-states without any specific head on top. + */ +export class MBartModel extends MBartPreTrainedModel { +} +/** + * The MBART Model with a language modeling head. Can be used for summarization, after fine-tuning the pretrained models. + */ +export class MBartForConditionalGeneration extends MBartPreTrainedModel { + /** + * Creates a new instance of the `MBartForConditionalGeneration` class. + * @param {Object} config The configuration object for the Bart model. + * @param {Object} session The ONNX session used to execute the model. + * @param {Object} decoder_merged_session The ONNX session used to execute the decoder. + * @param {Object} generation_config The generation configuration object. + */ + constructor(config: any, session: any, decoder_merged_session: any, generation_config: any); + decoder_merged_session: any; + generation_config: any; + num_decoder_layers: any; + num_decoder_heads: any; + decoder_dim_kv: number; + num_encoder_layers: any; + num_encoder_heads: any; + encoder_dim_kv: number; +} +/** + * MBart model with a sequence classification/head on top (a linear layer on top of the pooled output). + */ +export class MBartForSequenceClassification extends MBartPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} An object containing the model's output logits for sequence classification. + */ + _call(model_inputs: any): Promise; +} +export class MBartForCausalLM extends MBartPreTrainedModel { + /** + * Creates a new instance of the `MBartForCausalLM` class. + * @param {Object} config Configuration object for the model. + * @param {Object} decoder_merged_session ONNX Session object for the decoder. + * @param {Object} generation_config Configuration object for the generation process. + */ + constructor(config: any, decoder_merged_session: any, generation_config: any); + generation_config: any; + num_decoder_layers: any; + num_decoder_heads: any; + decoder_dim_kv: number; + num_encoder_layers: any; + num_encoder_heads: any; + encoder_dim_kv: number; +} +export class BlenderbotPreTrainedModel extends PreTrainedModel { +} +/** + * The bare Blenderbot Model outputting raw hidden-states without any specific head on top. + */ +export class BlenderbotModel extends BlenderbotPreTrainedModel { +} +/** + * The Blenderbot Model with a language modeling head. Can be used for summarization. + */ +export class BlenderbotForConditionalGeneration extends BlenderbotPreTrainedModel { + /** + * Creates a new instance of the `BlenderbotForConditionalGeneration` class. + * @param {any} config The model configuration. + * @param {any} session The ONNX session containing the encoder weights. + * @param {any} decoder_merged_session The ONNX session containing the merged decoder weights. + * @param {GenerationConfig} generation_config The generation configuration. + */ + constructor(config: any, session: any, decoder_merged_session: any, generation_config: new (kwargs?: import("./utils/generation.js").GenerationConfigType) => import("./utils/generation.js").GenerationConfigType); + decoder_merged_session: any; + generation_config: new (kwargs?: import("./utils/generation.js").GenerationConfigType) => import("./utils/generation.js").GenerationConfigType; + num_decoder_layers: any; + num_decoder_heads: any; + decoder_dim_kv: number; + num_encoder_layers: any; + num_encoder_heads: any; + encoder_dim_kv: number; +} +export class BlenderbotSmallPreTrainedModel extends PreTrainedModel { +} +/** + * The bare BlenderbotSmall Model outputting raw hidden-states without any specific head on top. + */ +export class BlenderbotSmallModel extends BlenderbotSmallPreTrainedModel { +} +/** + * The BlenderbotSmall Model with a language modeling head. Can be used for summarization. + */ +export class BlenderbotSmallForConditionalGeneration extends BlenderbotSmallPreTrainedModel { + /** + * Creates a new instance of the `BlenderbotForConditionalGeneration` class. + * @param {any} config The model configuration. + * @param {any} session The ONNX session containing the encoder weights. + * @param {any} decoder_merged_session The ONNX session containing the merged decoder weights. + * @param {GenerationConfig} generation_config The generation configuration. + */ + constructor(config: any, session: any, decoder_merged_session: any, generation_config: new (kwargs?: import("./utils/generation.js").GenerationConfigType) => import("./utils/generation.js").GenerationConfigType); + decoder_merged_session: any; + generation_config: new (kwargs?: import("./utils/generation.js").GenerationConfigType) => import("./utils/generation.js").GenerationConfigType; + num_decoder_layers: any; + num_decoder_heads: any; + decoder_dim_kv: number; + num_encoder_layers: any; + num_encoder_heads: any; + encoder_dim_kv: number; +} +export class RobertaPreTrainedModel extends PreTrainedModel { +} +export class RobertaModel extends RobertaPreTrainedModel { +} +/** + * RobertaForMaskedLM class for performing masked language modeling on Roberta models. + */ +export class RobertaForMaskedLM extends RobertaPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} returned object + */ + _call(model_inputs: any): Promise; +} +/** + * RobertaForSequenceClassification class for performing sequence classification on Roberta models. + */ +export class RobertaForSequenceClassification extends RobertaPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} returned object + */ + _call(model_inputs: any): Promise; +} +/** + * RobertaForTokenClassification class for performing token classification on Roberta models. + */ +export class RobertaForTokenClassification extends RobertaPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} An object containing the model's output logits for token classification. + */ + _call(model_inputs: any): Promise; +} +/** + * RobertaForQuestionAnswering class for performing question answering on Roberta models. + */ +export class RobertaForQuestionAnswering extends RobertaPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} returned object + */ + _call(model_inputs: any): Promise; +} +/** + * An abstract class to handle weights initialization and a simple interface for downloading and loading pretrained models. + */ +export class XLMPreTrainedModel extends PreTrainedModel { +} +/** + * The bare XLM Model transformer outputting raw hidden-states without any specific head on top. + */ +export class XLMModel extends XLMPreTrainedModel { +} +/** + * The XLM Model transformer with a language modeling head on top (linear layer with weights tied to the input embeddings). + */ +export class XLMWithLMHeadModel extends XLMPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} returned object + */ + _call(model_inputs: any): Promise; +} +/** + * XLM Model with a sequence classification/regression head on top (a linear layer on top of the pooled output) + */ +export class XLMForSequenceClassification extends XLMPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} returned object + */ + _call(model_inputs: any): Promise; +} +/** + * XLM Model with a token classification head on top (a linear layer on top of the hidden-states output) + */ +export class XLMForTokenClassification extends XLMPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} An object containing the model's output logits for token classification. + */ + _call(model_inputs: any): Promise; +} +/** + * XLM Model with a span classification head on top for extractive question-answering tasks + */ +export class XLMForQuestionAnswering extends XLMPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} returned object + */ + _call(model_inputs: any): Promise; +} +export class XLMRobertaPreTrainedModel extends PreTrainedModel { +} +export class XLMRobertaModel extends XLMRobertaPreTrainedModel { +} +/** + * XLMRobertaForMaskedLM class for performing masked language modeling on XLMRoberta models. + */ +export class XLMRobertaForMaskedLM extends XLMRobertaPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} returned object + */ + _call(model_inputs: any): Promise; +} +/** + * XLMRobertaForSequenceClassification class for performing sequence classification on XLMRoberta models. + */ +export class XLMRobertaForSequenceClassification extends XLMRobertaPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} returned object + */ + _call(model_inputs: any): Promise; +} +/** + * XLMRobertaForTokenClassification class for performing token classification on XLMRoberta models. + */ +export class XLMRobertaForTokenClassification extends XLMRobertaPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} An object containing the model's output logits for token classification. + */ + _call(model_inputs: any): Promise; +} +/** + * XLMRobertaForQuestionAnswering class for performing question answering on XLMRoberta models. + */ +export class XLMRobertaForQuestionAnswering extends XLMRobertaPreTrainedModel { + /** + * Calls the model on new inputs. + * + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} returned object + */ + _call(model_inputs: any): Promise; +} +export class ASTPreTrainedModel extends PreTrainedModel { +} +/** + * The bare AST Model transformer outputting raw hidden-states without any specific head on top. + */ +export class ASTModel extends ASTPreTrainedModel { +} +/** + * Audio Spectrogram Transformer model with an audio classification head on top + * (a linear layer on top of the pooled output) e.g. for datasets like AudioSet, Speech Commands v2. + */ +export class ASTForAudioClassification extends ASTPreTrainedModel { +} +export class WhisperPreTrainedModel extends PreTrainedModel { +} +/** + * WhisperModel class for training Whisper models without a language model head. + */ +export class WhisperModel extends WhisperPreTrainedModel { +} +/** + * WhisperForConditionalGeneration class for generating conditional outputs from Whisper models. + */ +export class WhisperForConditionalGeneration extends WhisperPreTrainedModel { + /** + * Creates a new instance of the `WhisperForConditionalGeneration` class. + * @param {Object} config Configuration object for the model. + * @param {Object} session ONNX Session object for the model. + * @param {Object} decoder_merged_session ONNX Session object for the decoder. + * @param {Object} generation_config Configuration object for the generation process. + */ + constructor(config: any, session: any, decoder_merged_session: any, generation_config: any); + requires_attention_mask: boolean; + decoder_merged_session: any; + generation_config: any; + num_decoder_layers: any; + num_decoder_heads: any; + decoder_dim_kv: number; + num_encoder_layers: any; + num_encoder_heads: any; + encoder_dim_kv: number; + /** + * @typedef {Object} WhisperGenerationConfig + * @extends GenerationConfig + * @property {boolean} [return_timestamps=null] Whether to return the timestamps with the text. This enables the `WhisperTimestampsLogitsProcessor`. + * @property {boolean} [return_token_timestamps=null] Whether to return token-level timestamps + * with the text. This can be used with or without the `return_timestamps` option. To get word-level + * timestamps, use the tokenizer to group the tokens into words. + * @property {number} [num_frames=null] The number of audio frames available in this chunk. This is only used generating word-level timestamps. + */ + /** + * Generates outputs based on input and generation configuration. + * @param {Object} inputs Input data for the model. + * @param {WhisperGenerationConfig} generation_config Configuration object for the generation process. + * @param {Object} logits_processor Optional logits processor object. + * @returns {Promise} Promise object represents the generated outputs. + */ + generate(inputs: any, generation_config?: any, logits_processor?: any): Promise; + /** + * Calculates token-level timestamps using the encoder-decoder cross-attentions and + * dynamic time-warping (DTW) to map each output token to a position in the input audio. + * @param {Object} generate_outputs Outputs generated by the model + * @param {Tensor[][][]} generate_outputs.cross_attentions The cross attentions output by the model + * @param {Tensor[][][]} generate_outputs.decoder_attentions The decoder attentions output by the model + * @param {number[][]} generate_outputs.sequences The sequences output by the model + * @param {number[][]} alignment_heads Alignment heads of the model + * @param {number} [num_frames=null] Number of frames in the input audio. + * @param {number} [time_precision=0.02] Precision of the timestamps in seconds + * @returns {Tensor} tensor containing the timestamps in seconds for each predicted token + */ + _extract_token_timestamps(generate_outputs: { + cross_attentions: Tensor[][][]; + decoder_attentions: Tensor[][][]; + sequences: number[][]; + }, alignment_heads: number[][], num_frames?: number, time_precision?: number): Tensor; +} +/** + * Vision Encoder-Decoder model based on OpenAI's GPT architecture for image captioning and other vision tasks + */ +export class VisionEncoderDecoderModel extends PreTrainedModel { + /** + * Creates a new instance of the `VisionEncoderDecoderModel` class. + * @param {Object} config The configuration object specifying the hyperparameters and other model settings. + * @param {Object} session The ONNX session containing the encoder model. + * @param {any} decoder_merged_session The ONNX session containing the merged decoder model. + * @param {Object} generation_config Configuration object for the generation process. + */ + constructor(config: any, session: any, decoder_merged_session: any, generation_config: any); + decoder_merged_session: any; + generation_config: any; + add_encoder_pkv: boolean; + num_decoder_layers: any; + num_decoder_heads: any; + decoder_dim_kv: any; + num_encoder_layers: any; + num_encoder_heads: any; + encoder_dim_kv: any; + num_layers: any; + num_heads: any; + dim_kv: any; +} +export class CLIPPreTrainedModel extends PreTrainedModel { +} +/** + * CLIP Text and Vision Model with a projection layers on top + * + * **Example:** Perform zero-shot image classification with a `CLIPModel`. + * + * ```javascript + * import { AutoTokenizer, AutoProcessor, CLIPModel, RawImage } from '@xenova/transformers'; + * + * // Load tokenizer, processor, and model + * let tokenizer = await AutoTokenizer.from_pretrained('Xenova/clip-vit-base-patch16'); + * let processor = await AutoProcessor.from_pretrained('Xenova/clip-vit-base-patch16'); + * let model = await CLIPModel.from_pretrained('Xenova/clip-vit-base-patch16'); + * + * // Run tokenization + * let texts = ['a photo of a car', 'a photo of a football match'] + * let text_inputs = tokenizer(texts, { padding: true, truncation: true }); + * + * // Read image and run processor + * let image = await RawImage.read('https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main/football-match.jpg'); + * let image_inputs = await processor(image); + * + * // Run model with both text and pixel inputs + * let output = await model({ ...text_inputs, ...image_inputs }); + * // { + * // logits_per_image: Tensor { + * // dims: [ 1, 2 ], + * // data: Float32Array(2) [ 18.579734802246094, 24.31830596923828 ], + * // }, + * // logits_per_text: Tensor { + * // dims: [ 2, 1 ], + * // data: Float32Array(2) [ 18.579734802246094, 24.31830596923828 ], + * // }, + * // text_embeds: Tensor { + * // dims: [ 2, 512 ], + * // data: Float32Array(1024) [ ... ], + * // }, + * // image_embeds: Tensor { + * // dims: [ 1, 512 ], + * // data: Float32Array(512) [ ... ], + * // } + * // } + * ``` + */ +export class CLIPModel extends CLIPPreTrainedModel { +} +/** + * CLIP Text Model with a projection layer on top (a linear layer on top of the pooled output) + * + * **Example:** Compute text embeddings with `CLIPTextModelWithProjection`. + * + * ```javascript + * import { AutoTokenizer, CLIPTextModelWithProjection } from '@xenova/transformers'; + * + * // Load tokenizer and text model + * const tokenizer = await AutoTokenizer.from_pretrained('Xenova/clip-vit-base-patch16'); + * const text_model = await CLIPTextModelWithProjection.from_pretrained('Xenova/clip-vit-base-patch16'); + * + * // Run tokenization + * let texts = ['a photo of a car', 'a photo of a football match']; + * let text_inputs = tokenizer(texts, { padding: true, truncation: true }); + * + * // Compute embeddings + * const { text_embeds } = await text_model(text_inputs); + * // Tensor { + * // dims: [ 2, 512 ], + * // type: 'float32', + * // data: Float32Array(1024) [ ... ], + * // size: 1024 + * // } + * ``` + */ +export class CLIPTextModelWithProjection extends CLIPPreTrainedModel { +} +/** + * CLIP Vision Model with a projection layer on top (a linear layer on top of the pooled output) + * + * **Example:** Compute vision embeddings with `CLIPVisionModelWithProjection`. + * + * ```javascript + * import { AutoProcessor, CLIPVisionModelWithProjection, RawImage} from '@xenova/transformers'; + * + * // Load processor and vision model + * const processor = await AutoProcessor.from_pretrained('Xenova/clip-vit-base-patch16'); + * const vision_model = await CLIPVisionModelWithProjection.from_pretrained('Xenova/clip-vit-base-patch16'); + * + * // Read image and run processor + * let image = await RawImage.read('https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main/football-match.jpg'); + * let image_inputs = await processor(image); + * + * // Compute embeddings + * const { image_embeds } = await vision_model(image_inputs); + * // Tensor { + * // dims: [ 1, 512 ], + * // type: 'float32', + * // data: Float32Array(512) [ ... ], + * // size: 512 + * // } + * ``` + */ +export class CLIPVisionModelWithProjection extends CLIPPreTrainedModel { +} +export class SiglipPreTrainedModel extends PreTrainedModel { +} +/** + * SigLIP Text and Vision Model with a projection layers on top + * + * **Example:** Perform zero-shot image classification with a `SiglipModel`. + * + * ```javascript + * import { AutoTokenizer, AutoProcessor, SiglipModel, RawImage } from '@xenova/transformers'; + * + * // Load tokenizer, processor, and model + * const tokenizer = await AutoTokenizer.from_pretrained('Xenova/siglip-base-patch16-224'); + * const processor = await AutoProcessor.from_pretrained('Xenova/siglip-base-patch16-224'); + * const model = await SiglipModel.from_pretrained('Xenova/siglip-base-patch16-224'); + * + * // Run tokenization + * const texts = ['a photo of 2 cats', 'a photo of 2 dogs']; + * const text_inputs = tokenizer(texts, { padding: 'max_length', truncation: true }); + * + * // Read image and run processor + * const image = await RawImage.read('http://images.cocodataset.org/val2017/000000039769.jpg'); + * const image_inputs = await processor(image); + * + * // Run model with both text and pixel inputs + * const output = await model({ ...text_inputs, ...image_inputs }); + * // { + * // logits_per_image: Tensor { + * // dims: [ 1, 2 ], + * // data: Float32Array(2) [ -1.6019744873046875, -10.720091819763184 ], + * // }, + * // logits_per_text: Tensor { + * // dims: [ 2, 1 ], + * // data: Float32Array(2) [ -1.6019744873046875, -10.720091819763184 ], + * // }, + * // text_embeds: Tensor { + * // dims: [ 2, 768 ], + * // data: Float32Array(1536) [ ... ], + * // }, + * // image_embeds: Tensor { + * // dims: [ 1, 768 ], + * // data: Float32Array(768) [ ... ], + * // } + * // } + * ``` + */ +export class SiglipModel extends SiglipPreTrainedModel { +} +/** + * The text model from SigLIP without any head or projection on top. + * + * **Example:** Compute text embeddings with `SiglipTextModel`. + * + * ```javascript + * import { AutoTokenizer, SiglipTextModel } from '@xenova/transformers'; + * + * // Load tokenizer and text model + * const tokenizer = await AutoTokenizer.from_pretrained('Xenova/siglip-base-patch16-224'); + * const text_model = await SiglipTextModel.from_pretrained('Xenova/siglip-base-patch16-224'); + * + * // Run tokenization + * const texts = ['a photo of 2 cats', 'a photo of 2 dogs']; + * const text_inputs = tokenizer(texts, { padding: 'max_length', truncation: true }); + * + * // Compute embeddings + * const { pooler_output } = await text_model(text_inputs); + * // Tensor { + * // dims: [ 2, 768 ], + * // type: 'float32', + * // data: Float32Array(1536) [ ... ], + * // size: 1536 + * // } + * ``` + */ +export class SiglipTextModel extends SiglipPreTrainedModel { +} +/** + * The vision model from SigLIP without any head or projection on top. + * + * **Example:** Compute vision embeddings with `SiglipVisionModel`. + * + * ```javascript + * import { AutoProcessor, SiglipVisionModel, RawImage} from '@xenova/transformers'; + * + * // Load processor and vision model + * const processor = await AutoProcessor.from_pretrained('Xenova/siglip-base-patch16-224'); + * const vision_model = await SiglipVisionModel.from_pretrained('Xenova/siglip-base-patch16-224'); + * + * // Read image and run processor + * const image = await RawImage.read('https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main/football-match.jpg'); + * const image_inputs = await processor(image); + * + * // Compute embeddings + * const { pooler_output } = await vision_model(image_inputs); + * // Tensor { + * // dims: [ 1, 768 ], + * // type: 'float32', + * // data: Float32Array(768) [ ... ], + * // size: 768 + * // } + * ``` + */ +export class SiglipVisionModel extends CLIPPreTrainedModel { +} +export class ChineseCLIPPreTrainedModel extends PreTrainedModel { +} +export class ChineseCLIPModel extends ChineseCLIPPreTrainedModel { +} +export class CLIPSegPreTrainedModel extends PreTrainedModel { +} +export class CLIPSegModel extends CLIPSegPreTrainedModel { +} +/** + * CLIPSeg model with a Transformer-based decoder on top for zero-shot and one-shot image segmentation. + * + * **Example:** Perform zero-shot image segmentation with a `CLIPSegForImageSegmentation` model. + * + * ```javascript + * import { AutoTokenizer, AutoProcessor, CLIPSegForImageSegmentation, RawImage } from '@xenova/transformers'; + * + * // Load tokenizer, processor, and model + * const tokenizer = await AutoTokenizer.from_pretrained('Xenova/clipseg-rd64-refined'); + * const processor = await AutoProcessor.from_pretrained('Xenova/clipseg-rd64-refined'); + * const model = await CLIPSegForImageSegmentation.from_pretrained('Xenova/clipseg-rd64-refined'); + * + * // Run tokenization + * const texts = ['a glass', 'something to fill', 'wood', 'a jar']; + * const text_inputs = tokenizer(texts, { padding: true, truncation: true }); + * + * // Read image and run processor + * const image = await RawImage.read('https://github.com/timojl/clipseg/blob/master/example_image.jpg?raw=true'); + * const image_inputs = await processor(image); + * + * // Run model with both text and pixel inputs + * const { logits } = await model({ ...text_inputs, ...image_inputs }); + * // logits: Tensor { + * // dims: [4, 352, 352], + * // type: 'float32', + * // data: Float32Array(495616) [ ... ], + * // size: 495616 + * // } + * ``` + * + * You can visualize the predictions as follows: + * ```javascript + * const preds = logits + * .unsqueeze_(1) + * .sigmoid_() + * .mul_(255) + * .round_() + * .to('uint8'); + * + * for (let i = 0; i < preds.dims[0]; ++i) { + * const img = RawImage.fromTensor(preds[i]); + * img.save(`prediction_${i}.png`); + * } + * ``` + */ +export class CLIPSegForImageSegmentation extends CLIPSegPreTrainedModel { +} +export class GPT2PreTrainedModel extends PreTrainedModel { + /** + * Creates a new instance of the `GPT2PreTrainedModel` class. + * @param {Object} config The configuration of the model. + * @param {any} session The ONNX session containing the model weights. + * @param {GenerationConfig} generation_config The generation configuration. + */ + constructor(config: any, session: any, generation_config: new (kwargs?: import("./utils/generation.js").GenerationConfigType) => import("./utils/generation.js").GenerationConfigType); + generation_config: new (kwargs?: import("./utils/generation.js").GenerationConfigType) => import("./utils/generation.js").GenerationConfigType; + num_heads: any; + num_layers: any; + dim_kv: number; +} +export class GPT2Model extends GPT2PreTrainedModel { +} +/** + * GPT-2 language model head on top of the GPT-2 base model. This model is suitable for text generation tasks. + */ +export class GPT2LMHeadModel extends GPT2PreTrainedModel { +} +export class GPTNeoPreTrainedModel extends PreTrainedModel { + /** + * Creates a new instance of the `GPTNeoPreTrainedModel` class. + * @param {Object} config The configuration of the model. + * @param {any} session The ONNX session containing the model weights. + * @param {GenerationConfig} generation_config The generation configuration. + */ + constructor(config: any, session: any, generation_config: new (kwargs?: import("./utils/generation.js").GenerationConfigType) => import("./utils/generation.js").GenerationConfigType); + generation_config: new (kwargs?: import("./utils/generation.js").GenerationConfigType) => import("./utils/generation.js").GenerationConfigType; + num_heads: any; + num_layers: any; + dim_kv: number; +} +export class GPTNeoModel extends GPTNeoPreTrainedModel { +} +export class GPTNeoForCausalLM extends GPTNeoPreTrainedModel { +} +export class GPTNeoXPreTrainedModel extends PreTrainedModel { + /** + * Creates a new instance of the `GPTNeoXPreTrainedModel` class. + * @param {Object} config The configuration of the model. + * @param {any} session The ONNX session containing the model weights. + * @param {GenerationConfig} generation_config The generation configuration. + */ + constructor(config: any, session: any, generation_config: new (kwargs?: import("./utils/generation.js").GenerationConfigType) => import("./utils/generation.js").GenerationConfigType); + generation_config: new (kwargs?: import("./utils/generation.js").GenerationConfigType) => import("./utils/generation.js").GenerationConfigType; + num_heads: any; + num_layers: any; + dim_kv: number; +} +export class GPTNeoXModel extends GPTNeoXPreTrainedModel { +} +export class GPTNeoXForCausalLM extends GPTNeoXPreTrainedModel { +} +export class GPTJPreTrainedModel extends PreTrainedModel { + /** + * Creates a new instance of the `GPTJPreTrainedModel` class. + * @param {Object} config The configuration of the model. + * @param {any} session The ONNX session containing the model weights. + * @param {GenerationConfig} generation_config The generation configuration. + */ + constructor(config: any, session: any, generation_config: new (kwargs?: import("./utils/generation.js").GenerationConfigType) => import("./utils/generation.js").GenerationConfigType); + generation_config: new (kwargs?: import("./utils/generation.js").GenerationConfigType) => import("./utils/generation.js").GenerationConfigType; + num_heads: any; + num_layers: any; + dim_kv: number; +} +export class GPTJModel extends GPTJPreTrainedModel { +} +export class GPTJForCausalLM extends GPTJPreTrainedModel { +} +export class GPTBigCodePreTrainedModel extends PreTrainedModel { + /** + * Creates a new instance of the `GPTBigCodePreTrainedModel` class. + * @param {Object} config The configuration of the model. + * @param {any} session The ONNX session containing the model weights. + * @param {GenerationConfig} generation_config The generation configuration. + */ + constructor(config: any, session: any, generation_config: new (kwargs?: import("./utils/generation.js").GenerationConfigType) => import("./utils/generation.js").GenerationConfigType); + generation_config: new (kwargs?: import("./utils/generation.js").GenerationConfigType) => import("./utils/generation.js").GenerationConfigType; + num_heads: any; + num_layers: any; + dim_kv: number; +} +export class GPTBigCodeModel extends GPTBigCodePreTrainedModel { +} +export class GPTBigCodeForCausalLM extends GPTBigCodePreTrainedModel { +} +export class CodeGenPreTrainedModel extends PreTrainedModel { + /** + * Creates a new instance of the `CodeGenPreTrainedModel` class. + * @param {Object} config The model configuration object. + * @param {Object} session The ONNX session object. + * @param {GenerationConfig} generation_config The generation configuration. + */ + constructor(config: any, session: any, generation_config: new (kwargs?: import("./utils/generation.js").GenerationConfigType) => import("./utils/generation.js").GenerationConfigType); + generation_config: new (kwargs?: import("./utils/generation.js").GenerationConfigType) => import("./utils/generation.js").GenerationConfigType; + num_heads: any; + num_layers: any; + dim_kv: number; +} +/** + * CodeGenModel is a class representing a code generation model without a language model head. + */ +export class CodeGenModel extends CodeGenPreTrainedModel { +} +/** + * CodeGenForCausalLM is a class that represents a code generation model based on the GPT-2 architecture. It extends the `CodeGenPreTrainedModel` class. + */ +export class CodeGenForCausalLM extends CodeGenPreTrainedModel { +} +/** + * The bare LLama Model outputting raw hidden-states without any specific head on top. + */ +export class LlamaPreTrainedModel extends PreTrainedModel { + /** + * Creates a new instance of the `LlamaPreTrainedModel` class. + * @param {Object} config The model configuration object. + * @param {Object} session The ONNX session object. + * @param {GenerationConfig} generation_config The generation configuration. + */ + constructor(config: any, session: any, generation_config: new (kwargs?: import("./utils/generation.js").GenerationConfigType) => import("./utils/generation.js").GenerationConfigType); + generation_config: new (kwargs?: import("./utils/generation.js").GenerationConfigType) => import("./utils/generation.js").GenerationConfigType; + num_heads: any; + num_layers: any; + dim_kv: number; +} +/** + * The bare LLaMA Model outputting raw hidden-states without any specific head on top. + */ +export class LlamaModel extends LlamaPreTrainedModel { +} +export class LlamaForCausalLM extends LlamaPreTrainedModel { +} +export class PhiPreTrainedModel extends PreTrainedModel { + /** + * Creates a new instance of the `PhiPreTrainedModel` class. + * @param {Object} config The model configuration object. + * @param {Object} session The ONNX session object. + * @param {GenerationConfig} generation_config The generation configuration. + */ + constructor(config: any, session: any, generation_config: new (kwargs?: import("./utils/generation.js").GenerationConfigType) => import("./utils/generation.js").GenerationConfigType); + generation_config: new (kwargs?: import("./utils/generation.js").GenerationConfigType) => import("./utils/generation.js").GenerationConfigType; + num_heads: any; + num_layers: any; + dim_kv: number; +} +/** + * The bare Phi Model outputting raw hidden-states without any specific head on top. + */ +export class PhiModel extends PhiPreTrainedModel { +} +export class PhiForCausalLM extends PhiPreTrainedModel { +} +/** + * The Bloom Model transformer with a language modeling head on top (linear layer with weights tied to the input embeddings). + */ +export class BloomPreTrainedModel extends PreTrainedModel { + /** + * Creates a new instance of the `BloomPreTrainedModel` class. + * @param {Object} config The configuration of the model. + * @param {any} session The ONNX session containing the model weights. + * @param {GenerationConfig} generation_config The generation configuration. + */ + constructor(config: any, session: any, generation_config: new (kwargs?: import("./utils/generation.js").GenerationConfigType) => import("./utils/generation.js").GenerationConfigType); + generation_config: new (kwargs?: import("./utils/generation.js").GenerationConfigType) => import("./utils/generation.js").GenerationConfigType; + num_heads: any; + num_layers: any; + dim_kv: number; +} +/** + * The bare Bloom Model transformer outputting raw hidden-states without any specific head on top. + */ +export class BloomModel extends BloomPreTrainedModel { +} +/** + * The Bloom Model transformer with a language modeling head on top (linear layer with weights tied to the input embeddings). + */ +export class BloomForCausalLM extends BloomPreTrainedModel { +} +export class MptPreTrainedModel extends PreTrainedModel { + /** + * Creates a new instance of the `MptPreTrainedModel` class. + * @param {Object} config The model configuration object. + * @param {Object} session The ONNX session object. + * @param {GenerationConfig} generation_config The generation configuration. + */ + constructor(config: any, session: any, generation_config: new (kwargs?: import("./utils/generation.js").GenerationConfigType) => import("./utils/generation.js").GenerationConfigType); + generation_config: new (kwargs?: import("./utils/generation.js").GenerationConfigType) => import("./utils/generation.js").GenerationConfigType; + num_heads: any; + num_layers: any; + dim_kv: number; +} +/** + * The bare Mpt Model transformer outputting raw hidden-states without any specific head on top. + */ +export class MptModel extends MptPreTrainedModel { +} +/** + * The MPT Model transformer with a language modeling head on top (linear layer with weights tied to the input embeddings). + */ +export class MptForCausalLM extends MptPreTrainedModel { +} +export class OPTPreTrainedModel extends PreTrainedModel { + /** + * Creates a new instance of the `OPTPreTrainedModel` class. + * @param {Object} config The model configuration object. + * @param {Object} session The ONNX session object. + * @param {GenerationConfig} generation_config The generation configuration. + */ + constructor(config: any, session: any, generation_config: new (kwargs?: import("./utils/generation.js").GenerationConfigType) => import("./utils/generation.js").GenerationConfigType); + generation_config: new (kwargs?: import("./utils/generation.js").GenerationConfigType) => import("./utils/generation.js").GenerationConfigType; + num_heads: any; + num_layers: any; + dim_kv: number; +} +/** + * The bare OPT Model outputting raw hidden-states without any specific head on top. + */ +export class OPTModel extends OPTPreTrainedModel { +} +/** + * The OPT Model transformer with a language modeling head on top (linear layer with weights tied to the input embeddings). + */ +export class OPTForCausalLM extends OPTPreTrainedModel { +} +export class ViTPreTrainedModel extends PreTrainedModel { +} +export class ViTModel extends ViTPreTrainedModel { +} +export class ViTForImageClassification extends ViTPreTrainedModel { + /** + * @param {any} model_inputs + */ + _call(model_inputs: any): Promise; +} +export class VitMattePreTrainedModel extends PreTrainedModel { +} +/** + * ViTMatte framework leveraging any vision backbone e.g. for ADE20k, CityScapes. + * + * **Example:** Perform image matting with a `VitMatteForImageMatting` model. + * ```javascript + * import { AutoProcessor, VitMatteForImageMatting, RawImage } from '@xenova/transformers'; + * + * // Load processor and model + * const processor = await AutoProcessor.from_pretrained('Xenova/vitmatte-small-distinctions-646'); + * const model = await VitMatteForImageMatting.from_pretrained('Xenova/vitmatte-small-distinctions-646'); + * + * // Load image and trimap + * const image = await RawImage.fromURL('https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main/vitmatte_image.png'); + * const trimap = await RawImage.fromURL('https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main/vitmatte_trimap.png'); + * + * // Prepare image + trimap for the model + * const inputs = await processor(image, trimap); + * + * // Predict alpha matte + * const { alphas } = await model(inputs); + * // Tensor { + * // dims: [ 1, 1, 640, 960 ], + * // type: 'float32', + * // size: 614400, + * // data: Float32Array(614400) [ 0.9894027709960938, 0.9970508813858032, ... ] + * // } + * ``` + * + * You can visualize the alpha matte as follows: + * ```javascript + * import { Tensor, cat } from '@xenova/transformers'; + * + * // Visualize predicted alpha matte + * const imageTensor = new Tensor( + * 'uint8', + * new Uint8Array(image.data), + * [image.height, image.width, image.channels] + * ).transpose(2, 0, 1); + * + * // Convert float (0-1) alpha matte to uint8 (0-255) + * const alphaChannel = alphas + * .squeeze(0) + * .mul_(255) + * .clamp_(0, 255) + * .round_() + * .to('uint8'); + * + * // Concatenate original image with predicted alpha + * const imageData = cat([imageTensor, alphaChannel], 0); + * + * // Save output image + * const outputImage = RawImage.fromTensor(imageData); + * outputImage.save('output.png'); + * ``` + */ +export class VitMatteForImageMatting extends VitMattePreTrainedModel { + /** + * @param {any} model_inputs + */ + _call(model_inputs: any): Promise; +} +export class MobileViTPreTrainedModel extends PreTrainedModel { +} +export class MobileViTModel extends MobileViTPreTrainedModel { +} +export class MobileViTForImageClassification extends MobileViTPreTrainedModel { + /** + * @param {any} model_inputs + */ + _call(model_inputs: any): Promise; +} +export class OwlViTPreTrainedModel extends PreTrainedModel { +} +export class OwlViTModel extends OwlViTPreTrainedModel { +} +export class OwlViTForObjectDetection extends OwlViTPreTrainedModel { +} +export class BeitPreTrainedModel extends PreTrainedModel { +} +export class BeitModel extends BeitPreTrainedModel { +} +export class BeitForImageClassification extends BeitPreTrainedModel { + /** + * @param {any} model_inputs + */ + _call(model_inputs: any): Promise; +} +export class DetrPreTrainedModel extends PreTrainedModel { +} +export class DetrModel extends DetrPreTrainedModel { +} +export class DetrForObjectDetection extends DetrPreTrainedModel { + /** + * @param {any} model_inputs + */ + _call(model_inputs: any): Promise; +} +export class DetrForSegmentation extends DetrPreTrainedModel { + /** + * Runs the model with the provided inputs + * @param {Object} model_inputs Model inputs + * @returns {Promise} Object containing segmentation outputs + */ + _call(model_inputs: any): Promise; +} +export class DetrObjectDetectionOutput extends ModelOutput { + /** + * @param {Object} output The output of the model. + * @param {Tensor} output.logits Classification logits (including no-object) for all queries. + * @param {Tensor} output.pred_boxes Normalized boxes coordinates for all queries, represented as (center_x, center_y, width, height). + * These values are normalized in [0, 1], relative to the size of each individual image in the batch (disregarding possible padding). + */ + constructor({ logits, pred_boxes }: { + logits: Tensor; + pred_boxes: Tensor; + }); + logits: Tensor; + pred_boxes: Tensor; +} +export class DetrSegmentationOutput extends ModelOutput { + /** + * @param {Object} output The output of the model. + * @param {Tensor} output.logits The output logits of the model. + * @param {Tensor} output.pred_boxes Predicted boxes. + * @param {Tensor} output.pred_masks Predicted masks. + */ + constructor({ logits, pred_boxes, pred_masks }: { + logits: Tensor; + pred_boxes: Tensor; + pred_masks: Tensor; + }); + logits: Tensor; + pred_boxes: Tensor; + pred_masks: Tensor; +} +export class TableTransformerPreTrainedModel extends PreTrainedModel { +} +/** + * The bare Table Transformer Model (consisting of a backbone and encoder-decoder Transformer) + * outputting raw hidden-states without any specific head on top. + */ +export class TableTransformerModel extends TableTransformerPreTrainedModel { +} +/** + * Table Transformer Model (consisting of a backbone and encoder-decoder Transformer) + * with object detection heads on top, for tasks such as COCO detection. + */ +export class TableTransformerForObjectDetection extends TableTransformerPreTrainedModel { + /** + * @param {any} model_inputs + */ + _call(model_inputs: any): Promise; +} +export class TableTransformerObjectDetectionOutput extends DetrObjectDetectionOutput { +} +export class DeiTPreTrainedModel extends PreTrainedModel { +} +export class DeiTModel extends DeiTPreTrainedModel { +} +export class DeiTForImageClassification extends DeiTPreTrainedModel { + /** + * @param {any} model_inputs + */ + _call(model_inputs: any): Promise; +} +/** + * An abstract class to handle weights initialization and a simple interface for downloading and loading pretrained models. + */ +export class ResNetPreTrainedModel extends PreTrainedModel { +} +/** + * The bare ResNet model outputting raw features without any specific head on top. + */ +export class ResNetModel extends ResNetPreTrainedModel { +} +/** + * ResNet Model with an image classification head on top (a linear layer on top of the pooled features), e.g. for ImageNet. + */ +export class ResNetForImageClassification extends ResNetPreTrainedModel { + /** + * @param {any} model_inputs + */ + _call(model_inputs: any): Promise; +} +export class SwinPreTrainedModel extends PreTrainedModel { +} +export class SwinModel extends SwinPreTrainedModel { +} +export class SwinForImageClassification extends SwinPreTrainedModel { + /** + * @param {any} model_inputs + */ + _call(model_inputs: any): Promise; +} +export class Swin2SRPreTrainedModel extends PreTrainedModel { +} +/** + * The bare Swin2SR Model transformer outputting raw hidden-states without any specific head on top. + */ +export class Swin2SRModel extends Swin2SRPreTrainedModel { +} +/** + * Swin2SR Model transformer with an upsampler head on top for image super resolution and restoration. + * + * **Example:** Super-resolution w/ `Xenova/swin2SR-classical-sr-x2-64`. + * + * ```javascript + * import { AutoProcessor, Swin2SRForImageSuperResolution, RawImage } from '@xenova/transformers'; + * + * // Load processor and model + * const model_id = 'Xenova/swin2SR-classical-sr-x2-64'; + * const processor = await AutoProcessor.from_pretrained(model_id); + * const model = await Swin2SRForImageSuperResolution.from_pretrained(model_id); + * + * // Prepare model inputs + * const url = 'https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main/butterfly.jpg'; + * const image = await RawImage.fromURL(url); + * const inputs = await processor(image); + * + * // Run model + * const outputs = await model(inputs); + * + * // Convert Tensor to RawImage + * const output = outputs.reconstruction.squeeze().clamp_(0, 1).mul_(255).round_().to('uint8'); + * const outputImage = RawImage.fromTensor(output); + * // RawImage { + * // data: Uint8Array(786432) [ 41, 31, 24, ... ], + * // width: 512, + * // height: 512, + * // channels: 3 + * // } + * ``` + */ +export class Swin2SRForImageSuperResolution extends Swin2SRPreTrainedModel { +} +export class DPTPreTrainedModel extends PreTrainedModel { +} +/** + * The bare DPT Model transformer outputting raw hidden-states without any specific head on top. + */ +export class DPTModel extends DPTPreTrainedModel { +} +/** + * DPT Model with a depth estimation head on top (consisting of 3 convolutional layers) e.g. for KITTI, NYUv2. + * + * **Example:** Depth estimation w/ `Xenova/dpt-hybrid-midas`. + * ```javascript + * import { DPTForDepthEstimation, AutoProcessor, RawImage, interpolate, max } from '@xenova/transformers'; + * + * // Load model and processor + * const model_id = 'Xenova/dpt-hybrid-midas'; + * const model = await DPTForDepthEstimation.from_pretrained(model_id); + * const processor = await AutoProcessor.from_pretrained(model_id); + * + * // Load image from URL + * const url = 'http://images.cocodataset.org/val2017/000000039769.jpg'; + * const image = await RawImage.fromURL(url); + * + * // Prepare image for the model + * const inputs = await processor(image); + * + * // Run model + * const { predicted_depth } = await model(inputs); + * + * // Interpolate to original size + * const prediction = interpolate(predicted_depth, image.size.reverse(), 'bilinear', false); + * + * // Visualize the prediction + * const formatted = prediction.mul_(255 / max(prediction.data)[0]).to('uint8'); + * const depth = RawImage.fromTensor(formatted); + * // RawImage { + * // data: Uint8Array(307200) [ 85, 85, 84, ... ], + * // width: 640, + * // height: 480, + * // channels: 1 + * // } + * ``` + */ +export class DPTForDepthEstimation extends DPTPreTrainedModel { +} +export class GLPNPreTrainedModel extends PreTrainedModel { +} +/** + * The bare GLPN encoder (Mix-Transformer) outputting raw hidden-states without any specific head on top. + */ +export class GLPNModel extends GLPNPreTrainedModel { +} +/** + * GLPN Model transformer with a lightweight depth estimation head on top e.g. for KITTI, NYUv2. + * + * **Example:** Depth estimation w/ `Xenova/glpn-kitti`. + * ```javascript + * import { GLPNForDepthEstimation, AutoProcessor, RawImage, interpolate, max } from '@xenova/transformers'; + * + * // Load model and processor + * const model_id = 'Xenova/glpn-kitti'; + * const model = await GLPNForDepthEstimation.from_pretrained(model_id); + * const processor = await AutoProcessor.from_pretrained(model_id); + * + * // Load image from URL + * const url = 'http://images.cocodataset.org/val2017/000000039769.jpg'; + * const image = await RawImage.fromURL(url); + * + * // Prepare image for the model + * const inputs = await processor(image); + * + * // Run model + * const { predicted_depth } = await model(inputs); + * + * // Interpolate to original size + * const prediction = interpolate(predicted_depth, image.size.reverse(), 'bilinear', false); + * + * // Visualize the prediction + * const formatted = prediction.mul_(255 / max(prediction.data)[0]).to('uint8'); + * const depth = RawImage.fromTensor(formatted); + * // RawImage { + * // data: Uint8Array(307200) [ 207, 169, 154, ... ], + * // width: 640, + * // height: 480, + * // channels: 1 + * // } + * ``` + */ +export class GLPNForDepthEstimation extends GLPNPreTrainedModel { +} +export class DonutSwinPreTrainedModel extends PreTrainedModel { +} +/** + * The bare Donut Swin Model transformer outputting raw hidden-states without any specific head on top. + * + * **Example:** Step-by-step Document Parsing. + * + * ```javascript + * import { AutoProcessor, AutoTokenizer, AutoModelForVision2Seq, RawImage } from '@xenova/transformers'; + * + * // Choose model to use + * const model_id = 'Xenova/donut-base-finetuned-cord-v2'; + * + * // Prepare image inputs + * const processor = await AutoProcessor.from_pretrained(model_id); + * const url = 'https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main/receipt.png'; + * const image = await RawImage.read(url); + * const image_inputs = await processor(image); + * + * // Prepare decoder inputs + * const tokenizer = await AutoTokenizer.from_pretrained(model_id); + * const task_prompt = ''; + * const decoder_input_ids = tokenizer(task_prompt, { + * add_special_tokens: false, + * }).input_ids; + * + * // Create the model + * const model = await AutoModelForVision2Seq.from_pretrained(model_id); + * + * // Run inference + * const output = await model.generate(image_inputs.pixel_values, { + * decoder_input_ids, + * max_length: model.config.decoder.max_position_embeddings, + * }); + * + * // Decode output + * const decoded = tokenizer.batch_decode(output)[0]; + * // CINNAMON SUGAR 17,000 1 x 17,000 17,000 17,000 20,000 3,000 + * ``` + * + * **Example:** Step-by-step Document Visual Question Answering (DocVQA) + * + * ```javascript + * import { AutoProcessor, AutoTokenizer, AutoModelForVision2Seq, RawImage } from '@xenova/transformers'; + * + * // Choose model to use + * const model_id = 'Xenova/donut-base-finetuned-docvqa'; + * + * // Prepare image inputs + * const processor = await AutoProcessor.from_pretrained(model_id); + * const url = 'https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main/invoice.png'; + * const image = await RawImage.read(url); + * const image_inputs = await processor(image); + * + * // Prepare decoder inputs + * const tokenizer = await AutoTokenizer.from_pretrained(model_id); + * const question = 'What is the invoice number?'; + * const task_prompt = `${question}`; + * const decoder_input_ids = tokenizer(task_prompt, { + * add_special_tokens: false, + * }).input_ids; + * + * // Create the model + * const model = await AutoModelForVision2Seq.from_pretrained(model_id); + * + * // Run inference + * const output = await model.generate(image_inputs.pixel_values, { + * decoder_input_ids, + * max_length: model.config.decoder.max_position_embeddings, + * }); + * + * // Decode output + * const decoded = tokenizer.batch_decode(output)[0]; + * // What is the invoice number? us-001 + * ``` + */ +export class DonutSwinModel extends DonutSwinPreTrainedModel { +} +export class ConvNextPreTrainedModel extends PreTrainedModel { +} +/** + * The bare ConvNext model outputting raw features without any specific head on top. + */ +export class ConvNextModel extends ConvNextPreTrainedModel { +} +/** + * ConvNext Model with an image classification head on top (a linear layer on top of the pooled features), e.g. for ImageNet. + */ +export class ConvNextForImageClassification extends ConvNextPreTrainedModel { + /** + * @param {any} model_inputs + */ + _call(model_inputs: any): Promise; +} +export class ConvNextV2PreTrainedModel extends PreTrainedModel { +} +/** + * The bare ConvNextV2 model outputting raw features without any specific head on top. + */ +export class ConvNextV2Model extends ConvNextV2PreTrainedModel { +} +/** + * ConvNextV2 Model with an image classification head on top (a linear layer on top of the pooled features), e.g. for ImageNet. + */ +export class ConvNextV2ForImageClassification extends ConvNextV2PreTrainedModel { + /** + * @param {any} model_inputs + */ + _call(model_inputs: any): Promise; +} +export class Dinov2PreTrainedModel extends PreTrainedModel { +} +/** + * The bare DINOv2 Model transformer outputting raw hidden-states without any specific head on top. + */ +export class Dinov2Model extends Dinov2PreTrainedModel { +} +/** + * Dinov2 Model transformer with an image classification head on top (a linear layer on top of the final hidden state of the [CLS] token) e.g. for ImageNet. + */ +export class Dinov2ForImageClassification extends Dinov2PreTrainedModel { + /** + * @param {any} model_inputs + */ + _call(model_inputs: any): Promise; +} +export class YolosPreTrainedModel extends PreTrainedModel { +} +export class YolosModel extends YolosPreTrainedModel { +} +export class YolosForObjectDetection extends YolosPreTrainedModel { + /** + * @param {any} model_inputs + */ + _call(model_inputs: any): Promise; +} +export class YolosObjectDetectionOutput extends ModelOutput { + /** + * @param {Object} output The output of the model. + * @param {Tensor} output.logits Classification logits (including no-object) for all queries. + * @param {Tensor} output.pred_boxes Normalized boxes coordinates for all queries, represented as (center_x, center_y, width, height). + * These values are normalized in [0, 1], relative to the size of each individual image in the batch (disregarding possible padding). + */ + constructor({ logits, pred_boxes }: { + logits: Tensor; + pred_boxes: Tensor; + }); + logits: Tensor; + pred_boxes: Tensor; +} +export class SamPreTrainedModel extends PreTrainedModel { +} +/** + * Segment Anything Model (SAM) for generating segmentation masks, given an input image + * and optional 2D location and bounding boxes. + * + * **Example:** Perform mask generation w/ `Xenova/sam-vit-base`. + * ```javascript + * import { SamModel, AutoProcessor, RawImage } from '@xenova/transformers'; + * + * const model = await SamModel.from_pretrained('Xenova/sam-vit-base'); + * const processor = await AutoProcessor.from_pretrained('Xenova/sam-vit-base'); + * + * const img_url = 'https://huggingface.co/ybelkada/segment-anything/resolve/main/assets/car.png'; + * const raw_image = await RawImage.read(img_url); + * const input_points = [[[450, 600]]] // 2D localization of a window + * + * const inputs = await processor(raw_image, input_points); + * const outputs = await model(inputs); + * + * const masks = await processor.post_process_masks(outputs.pred_masks, inputs.original_sizes, inputs.reshaped_input_sizes); + * // [ + * // Tensor { + * // dims: [ 1, 3, 1764, 2646 ], + * // type: 'bool', + * // data: Uint8Array(14002632) [ ... ], + * // size: 14002632 + * // } + * // ] + * const scores = outputs.iou_scores; + * // Tensor { + * // dims: [ 1, 1, 3 ], + * // type: 'float32', + * // data: Float32Array(3) [ + * // 0.8892380595207214, + * // 0.9311248064041138, + * // 0.983696699142456 + * // ], + * // size: 3 + * // } + * ``` + */ +export class SamModel extends SamPreTrainedModel { + /** + * Creates a new instance of the `SamModel` class. + * @param {Object} config The configuration object specifying the hyperparameters and other model settings. + * @param {Object} vision_encoder The ONNX session containing the vision encoder model. + * @param {any} prompt_encoder_mask_decoder The ONNX session containing the prompt encoder and mask decoder model. + */ + constructor(config: any, vision_encoder: any, prompt_encoder_mask_decoder: any); + prompt_encoder_mask_decoder: any; + /** + * Compute image embeddings and positional image embeddings, given the pixel values of an image. + * @param {Object} model_inputs Object containing the model inputs. + * @param {Tensor} model_inputs.pixel_values Pixel values obtained using a `SamProcessor`. + * @returns {Promise<{ image_embeddings: Tensor, image_positional_embeddings: Tensor }>} The image embeddings and positional image embeddings. + */ + get_image_embeddings({ pixel_values }: { + pixel_values: Tensor; + }): Promise<{ + image_embeddings: Tensor; + image_positional_embeddings: Tensor; + }>; + /** + * @typedef {Object} SamModelInputs Object containing the model inputs. + * @property {Tensor} pixel_values Pixel values as a Tensor with shape `(batch_size, num_channels, height, width)`. + * These can be obtained using a `SamProcessor`. + * @property {Tensor} input_points Input 2D spatial points with shape `(batch_size, num_points, 2)`. + * This is used by the prompt encoder to encode the prompt. + * @property {Tensor} [input_labels] Input labels for the points, as a Tensor of shape `(batch_size, point_batch_size, num_points)`. + * This is used by the prompt encoder to encode the prompt. There are 4 types of labels: + * - `1`: the point is a point that contains the object of interest + * - `0`: the point is a point that does not contain the object of interest + * - `-1`: the point corresponds to the background + * - `-10`: the point is a padding point, thus should be ignored by the prompt encoder + * @property {Tensor} [image_embeddings] Image embeddings used by the mask decoder. + * @property {Tensor} [image_positional_embeddings] Image positional embeddings used by the mask decoder. + */ + /** + * @param {SamModelInputs} model_inputs Object containing the model inputs. + * @returns {Promise} The output of the model. + */ + forward(model_inputs: { + /** + * Pixel values as a Tensor with shape `(batch_size, num_channels, height, width)`. + * These can be obtained using a `SamProcessor`. + */ + pixel_values: Tensor; + /** + * Input 2D spatial points with shape `(batch_size, num_points, 2)`. + * This is used by the prompt encoder to encode the prompt. + */ + input_points: Tensor; + /** + * Input labels for the points, as a Tensor of shape `(batch_size, point_batch_size, num_points)`. + * This is used by the prompt encoder to encode the prompt. There are 4 types of labels: + * - `1`: the point is a point that contains the object of interest + * - `0`: the point is a point that does not contain the object of interest + * - `-1`: the point corresponds to the background + * - `-10`: the point is a padding point, thus should be ignored by the prompt encoder + */ + input_labels?: Tensor; + /** + * Image embeddings used by the mask decoder. + */ + image_embeddings?: Tensor; + /** + * Image positional embeddings used by the mask decoder. + */ + image_positional_embeddings?: Tensor; + }): Promise; + /** + * Runs the model with the provided inputs + * @param {Object} model_inputs Model inputs + * @returns {Promise} Object containing segmentation outputs + */ + _call(model_inputs: any): Promise; +} +/** + * Base class for Segment-Anything model's output. + */ +export class SamImageSegmentationOutput extends ModelOutput { + /** + * @param {Object} output The output of the model. + * @param {Tensor} output.iou_scores The output logits of the model. + * @param {Tensor} output.pred_masks Predicted boxes. + */ + constructor({ iou_scores, pred_masks }: { + iou_scores: Tensor; + pred_masks: Tensor; + }); + iou_scores: Tensor; + pred_masks: Tensor; +} +export class MarianPreTrainedModel extends PreTrainedModel { +} +export class MarianModel extends MarianPreTrainedModel { +} +export class MarianMTModel extends MarianPreTrainedModel { + /** + * Creates a new instance of the `MarianMTModel` class. + * @param {Object} config The model configuration object. + * @param {Object} session The ONNX session object. + * @param {any} decoder_merged_session + * @param {any} generation_config + */ + constructor(config: any, session: any, decoder_merged_session: any, generation_config: any); + decoder_merged_session: any; + generation_config: any; + num_decoder_layers: any; + num_decoder_heads: any; + decoder_dim_kv: number; + num_encoder_layers: any; + num_encoder_heads: any; + encoder_dim_kv: number; +} +export class M2M100PreTrainedModel extends PreTrainedModel { +} +export class M2M100Model extends M2M100PreTrainedModel { +} +export class M2M100ForConditionalGeneration extends M2M100PreTrainedModel { + /** + * Creates a new instance of the `M2M100ForConditionalGeneration` class. + * @param {Object} config The model configuration object. + * @param {Object} session The ONNX session object. + * @param {any} decoder_merged_session + * @param {any} generation_config + */ + constructor(config: any, session: any, decoder_merged_session: any, generation_config: any); + decoder_merged_session: any; + generation_config: any; + num_decoder_layers: any; + num_decoder_heads: any; + decoder_dim_kv: number; + num_encoder_layers: any; + num_encoder_heads: any; + encoder_dim_kv: number; +} +export class Wav2Vec2PreTrainedModel extends PreTrainedModel { +} +/** + * The bare Wav2Vec2 Model transformer outputting raw hidden-states without any specific head on top. + * + * **Example:** Load and run a `Wav2Vec2Model` for feature extraction. + * + * ```javascript + * import { AutoProcessor, AutoModel, read_audio } from '@xenova/transformers'; + * + * // Read and preprocess audio + * const processor = await AutoProcessor.from_pretrained('Xenova/mms-300m'); + * const audio = await read_audio('https://huggingface.co/datasets/Narsil/asr_dummy/resolve/main/mlk.flac', 16000); + * const inputs = await processor(audio); + * + * // Run model with inputs + * const model = await AutoModel.from_pretrained('Xenova/mms-300m'); + * const output = await model(inputs); + * // { + * // last_hidden_state: Tensor { + * // dims: [ 1, 1144, 1024 ], + * // type: 'float32', + * // data: Float32Array(1171456) [ ... ], + * // size: 1171456 + * // } + * // } + * ``` + */ +export class Wav2Vec2Model extends Wav2Vec2PreTrainedModel { +} +export class Wav2Vec2ForCTC extends Wav2Vec2PreTrainedModel { + /** + * @param {Object} model_inputs + * @param {Tensor} model_inputs.input_values Float values of input raw speech waveform. + * @param {Tensor} model_inputs.attention_mask Mask to avoid performing convolution and attention on padding token indices. Mask values selected in [0, 1] + */ + _call(model_inputs: { + input_values: Tensor; + attention_mask: Tensor; + }): Promise; +} +export class Wav2Vec2ForSequenceClassification extends Wav2Vec2PreTrainedModel { + /** + * Calls the model on new inputs. + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} An object containing the model's output logits for sequence classification. + */ + _call(model_inputs: any): Promise; +} +export class HubertPreTrainedModel extends PreTrainedModel { +} +/** + * The bare Hubert Model transformer outputting raw hidden-states without any specific head on top. + * + * **Example:** Load and run a `HubertModel` for feature extraction. + * + * ```javascript + * import { AutoProcessor, AutoModel, read_audio } from '@xenova/transformers'; + * + * // Read and preprocess audio + * const processor = await AutoProcessor.from_pretrained('Xenova/hubert-base-ls960'); + * const audio = await read_audio('https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main/jfk.wav', 16000); + * const inputs = await processor(audio); + * + * // Load and run model with inputs + * const model = await AutoModel.from_pretrained('Xenova/hubert-base-ls960'); + * const output = await model(inputs); + * // { + * // last_hidden_state: Tensor { + * // dims: [ 1, 549, 768 ], + * // type: 'float32', + * // data: Float32Array(421632) [0.0682469978928566, 0.08104046434164047, -0.4975186586380005, ...], + * // size: 421632 + * // } + * // } + * ``` + */ +export class HubertModel extends Wav2Vec2PreTrainedModel { +} +/** + * Hubert Model with a `language modeling` head on top for Connectionist Temporal Classification (CTC). + */ +export class HubertForCTC extends Wav2Vec2PreTrainedModel { + /** + * @param {Object} model_inputs + * @param {Tensor} model_inputs.input_values Float values of input raw speech waveform. + * @param {Tensor} model_inputs.attention_mask Mask to avoid performing convolution and attention on padding token indices. Mask values selected in [0, 1] + */ + _call(model_inputs: { + input_values: Tensor; + attention_mask: Tensor; + }): Promise; +} +/** + * Hubert Model with a sequence classification head on top (a linear layer over the pooled output) for tasks like SUPERB Keyword Spotting. + */ +export class HubertForSequenceClassification extends Wav2Vec2PreTrainedModel { + /** + * Calls the model on new inputs. + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} An object containing the model's output logits for sequence classification. + */ + _call(model_inputs: any): Promise; +} +/** + * An abstract class to handle weights initialization and a simple interface for downloading and loading pretrained models. + */ +export class WavLMPreTrainedModel extends PreTrainedModel { +} +/** + * The bare WavLM Model transformer outputting raw hidden-states without any specific head on top. + * + * **Example:** Load and run a `WavLMModel` for feature extraction. + * + * ```javascript + * import { AutoProcessor, AutoModel, read_audio } from '@xenova/transformers'; + * + * // Read and preprocess audio + * const processor = await AutoProcessor.from_pretrained('Xenova/wavlm-base'); + * const audio = await read_audio('https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main/jfk.wav', 16000); + * const inputs = await processor(audio); + * + * // Run model with inputs + * const model = await AutoModel.from_pretrained('Xenova/wavlm-base'); + * const output = await model(inputs); + * // { + * // last_hidden_state: Tensor { + * // dims: [ 1, 549, 768 ], + * // type: 'float32', + * // data: Float32Array(421632) [-0.349443256855011, -0.39341306686401367, 0.022836603224277496, ...], + * // size: 421632 + * // } + * // } + * ``` + */ +export class WavLMModel extends WavLMPreTrainedModel { +} +/** + * WavLM Model with a `language modeling` head on top for Connectionist Temporal Classification (CTC). + */ +export class WavLMForCTC extends WavLMPreTrainedModel { + /** + * @param {Object} model_inputs + * @param {Tensor} model_inputs.input_values Float values of input raw speech waveform. + * @param {Tensor} model_inputs.attention_mask Mask to avoid performing convolution and attention on padding token indices. Mask values selected in [0, 1] + */ + _call(model_inputs: { + input_values: Tensor; + attention_mask: Tensor; + }): Promise; +} +/** + * WavLM Model with a sequence classification head on top (a linear layer over the pooled output). + */ +export class WavLMForSequenceClassification extends WavLMPreTrainedModel { + /** + * Calls the model on new inputs. + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} An object containing the model's output logits for sequence classification. + */ + _call(model_inputs: any): Promise; +} +/** + * An abstract class to handle weights initialization and a simple interface for downloading and loading pretrained models. + */ +export class SpeechT5PreTrainedModel extends PreTrainedModel { +} +/** + * The bare SpeechT5 Encoder-Decoder Model outputting raw hidden-states without any specific pre- or post-nets. + */ +export class SpeechT5Model extends SpeechT5PreTrainedModel { +} +/** + * SpeechT5 Model with a speech encoder and a text decoder. + * + * **Example:** Generate speech from text with `SpeechT5ForSpeechToText`. + * ```javascript + * import { AutoTokenizer, AutoProcessor, SpeechT5ForTextToSpeech, SpeechT5HifiGan, Tensor } from '@xenova/transformers'; + * + * // Load the tokenizer and processor + * const tokenizer = await AutoTokenizer.from_pretrained('Xenova/speecht5_tts'); + * const processor = await AutoProcessor.from_pretrained('Xenova/speecht5_tts'); + * + * // Load the models + * // NOTE: We use the unquantized versions as they are more accurate + * const model = await SpeechT5ForTextToSpeech.from_pretrained('Xenova/speecht5_tts', { quantized: false }); + * const vocoder = await SpeechT5HifiGan.from_pretrained('Xenova/speecht5_hifigan', { quantized: false }); + * + * // Load speaker embeddings from URL + * const speaker_embeddings_data = new Float32Array( + * await (await fetch('https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main/speaker_embeddings.bin')).arrayBuffer() + * ); + * const speaker_embeddings = new Tensor( + * 'float32', + * speaker_embeddings_data, + * [1, speaker_embeddings_data.length] + * ) + * + * // Run tokenization + * const { input_ids } = tokenizer('Hello, my dog is cute'); + * + * // Generate waveform + * const { waveform } = await model.generate_speech(input_ids, speaker_embeddings, { vocoder }); + * console.log(waveform) + * // Tensor { + * // dims: [ 26112 ], + * // type: 'float32', + * // size: 26112, + * // data: Float32Array(26112) [ -0.00043630177970044315, -0.00018082228780258447, ... ], + * // } + * ``` + */ +export class SpeechT5ForSpeechToText extends SpeechT5PreTrainedModel { +} +/** + * SpeechT5 Model with a text encoder and a speech decoder. + */ +export class SpeechT5ForTextToSpeech extends SpeechT5PreTrainedModel { + /** + * Creates a new instance of the `SpeechT5ForTextToSpeech` class. + * @param {Object} config The model configuration. + * @param {any} session session for the model. + * @param {any} decoder_merged_session session for the decoder. + * @param {GenerationConfig} generation_config The generation configuration. + */ + constructor(config: any, session: any, decoder_merged_session: any, generation_config: new (kwargs?: import("./utils/generation.js").GenerationConfigType) => import("./utils/generation.js").GenerationConfigType); + decoder_merged_session: any; + generation_config: new (kwargs?: import("./utils/generation.js").GenerationConfigType) => import("./utils/generation.js").GenerationConfigType; + num_decoder_layers: any; + num_decoder_heads: any; + decoder_dim_kv: number; + num_encoder_layers: any; + num_encoder_heads: any; + encoder_dim_kv: number; + /** + * @typedef {Object} SpeechOutput + * @property {Tensor} [spectrogram] The predicted log-mel spectrogram of shape + * `(output_sequence_length, config.num_mel_bins)`. Returned when no `vocoder` is provided + * @property {Tensor} [waveform] The predicted waveform of shape `(num_frames,)`. Returned when a `vocoder` is provided. + * @property {Tensor} [cross_attentions] The outputs of the decoder's cross-attention layers of shape + * `(config.decoder_layers, config.decoder_attention_heads, output_sequence_length, input_sequence_length)`. returned when `output_cross_attentions` is `true`. + */ + /** + * Converts a sequence of input tokens into a sequence of mel spectrograms, which are subsequently turned into a speech waveform using a vocoder. + * @param {Tensor} input_values Indices of input sequence tokens in the vocabulary. + * @param {Tensor} speaker_embeddings Tensor containing the speaker embeddings. + * @param {Object} options Optional parameters for generating speech. + * @param {number} [options.threshold=0.5] The generated sequence ends when the predicted stop token probability exceeds this value. + * @param {number} [options.minlenratio=0.0] Used to calculate the minimum required length for the output sequence. + * @param {number} [options.maxlenratio=20.0] Used to calculate the maximum allowed length for the output sequence. + * @param {Object} [options.vocoder=null] The vocoder that converts the mel spectrogram into a speech waveform. If `null`, the output is the mel spectrogram. + * @param {boolean} [options.output_cross_attentions=false] Whether or not to return the attentions tensors of the decoder's cross-attention layers. + * @returns {Promise} A promise which resolves to an object containing the spectrogram, waveform, and cross-attention tensors. + */ + generate_speech(input_values: Tensor, speaker_embeddings: Tensor, { threshold, minlenratio, maxlenratio, vocoder, }?: { + threshold?: number; + minlenratio?: number; + maxlenratio?: number; + vocoder?: any; + output_cross_attentions?: boolean; + }): Promise<{ + /** + * The predicted log-mel spectrogram of shape + * `(output_sequence_length, config.num_mel_bins)`. Returned when no `vocoder` is provided + */ + spectrogram?: Tensor; + /** + * The predicted waveform of shape `(num_frames,)`. Returned when a `vocoder` is provided. + */ + waveform?: Tensor; + /** + * The outputs of the decoder's cross-attention layers of shape + * `(config.decoder_layers, config.decoder_attention_heads, output_sequence_length, input_sequence_length)`. returned when `output_cross_attentions` is `true`. + */ + cross_attentions?: Tensor; + }>; +} +/** + * HiFi-GAN vocoder. + * + * See [SpeechT5ForSpeechToText](./models#module_models.SpeechT5ForSpeechToText) for example usage. + */ +export class SpeechT5HifiGan extends PreTrainedModel { +} +export class TrOCRPreTrainedModel extends PreTrainedModel { + /** + * Creates a new instance of the `TrOCRPreTrainedModel` class. + * @param {Object} config The configuration of the model. + * @param {any} session The ONNX session containing the model weights. + * @param {GenerationConfig} generation_config The generation configuration. + */ + constructor(config: any, session: any, generation_config: new (kwargs?: import("./utils/generation.js").GenerationConfigType) => import("./utils/generation.js").GenerationConfigType); + generation_config: new (kwargs?: import("./utils/generation.js").GenerationConfigType) => import("./utils/generation.js").GenerationConfigType; + num_encoder_layers: any; + num_decoder_layers: any; + num_encoder_heads: any; + num_decoder_heads: any; + encoder_dim_kv: number; + decoder_dim_kv: number; +} +/** + * The TrOCR Decoder with a language modeling head. + */ +export class TrOCRForCausalLM extends TrOCRPreTrainedModel { +} +/** + * The bare Mistral Model outputting raw hidden-states without any specific head on top. + */ +export class MistralPreTrainedModel extends PreTrainedModel { + /** + * Creates a new instance of the `MistralPreTrainedModel` class. + * @param {Object} config The configuration of the model. + * @param {any} session The ONNX session containing the model weights. + * @param {GenerationConfig} generation_config The generation configuration. + */ + constructor(config: any, session: any, generation_config: new (kwargs?: import("./utils/generation.js").GenerationConfigType) => import("./utils/generation.js").GenerationConfigType); + generation_config: new (kwargs?: import("./utils/generation.js").GenerationConfigType) => import("./utils/generation.js").GenerationConfigType; + num_heads: any; + num_layers: any; + dim_kv: number; +} +export class MistralModel extends MistralPreTrainedModel { +} +export class MistralForCausalLM extends MistralPreTrainedModel { +} +/** + * The bare Falcon Model outputting raw hidden-states without any specific head on top. + */ +export class FalconPreTrainedModel extends PreTrainedModel { + /** + * Creates a new instance of the `FalconPreTrainedModel` class. + * @param {Object} config The configuration of the model. + * @param {any} session The ONNX session containing the model weights. + * @param {GenerationConfig} generation_config The generation configuration. + */ + constructor(config: any, session: any, generation_config: new (kwargs?: import("./utils/generation.js").GenerationConfigType) => import("./utils/generation.js").GenerationConfigType); + generation_config: new (kwargs?: import("./utils/generation.js").GenerationConfigType) => import("./utils/generation.js").GenerationConfigType; + num_heads: any; + num_layers: any; + dim_kv: number; +} +export class FalconModel extends FalconPreTrainedModel { +} +export class FalconForCausalLM extends FalconPreTrainedModel { +} +export class ClapPreTrainedModel extends PreTrainedModel { +} +export class ClapModel extends ClapPreTrainedModel { +} +/** + * CLAP Text Model with a projection layer on top (a linear layer on top of the pooled output). + * + * **Example:** Compute text embeddings with `ClapTextModelWithProjection`. + * + * ```javascript + * import { AutoTokenizer, ClapTextModelWithProjection } from '@xenova/transformers'; + * + * // Load tokenizer and text model + * const tokenizer = await AutoTokenizer.from_pretrained('Xenova/clap-htsat-unfused'); + * const text_model = await ClapTextModelWithProjection.from_pretrained('Xenova/clap-htsat-unfused'); + * + * // Run tokenization + * const texts = ['a sound of a cat', 'a sound of a dog']; + * const text_inputs = tokenizer(texts, { padding: true, truncation: true }); + * + * // Compute embeddings + * const { text_embeds } = await text_model(text_inputs); + * // Tensor { + * // dims: [ 2, 512 ], + * // type: 'float32', + * // data: Float32Array(1024) [ ... ], + * // size: 1024 + * // } + * ``` + */ +export class ClapTextModelWithProjection extends ClapPreTrainedModel { +} +/** + * CLAP Audio Model with a projection layer on top (a linear layer on top of the pooled output). + * + * **Example:** Compute audio embeddings with `ClapAudioModelWithProjection`. + * + * ```javascript + * import { AutoProcessor, ClapAudioModelWithProjection, read_audio } from '@xenova/transformers'; + * + * // Load processor and audio model + * const processor = await AutoProcessor.from_pretrained('Xenova/clap-htsat-unfused'); + * const audio_model = await ClapAudioModelWithProjection.from_pretrained('Xenova/clap-htsat-unfused'); + * + * // Read audio and run processor + * const audio = await read_audio('https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main/cat_meow.wav'); + * const audio_inputs = await processor(audio); + * + * // Compute embeddings + * const { audio_embeds } = await audio_model(audio_inputs); + * // Tensor { + * // dims: [ 1, 512 ], + * // type: 'float32', + * // data: Float32Array(512) [ ... ], + * // size: 512 + * // } + * ``` + */ +export class ClapAudioModelWithProjection extends ClapPreTrainedModel { +} +export class VitsPreTrainedModel extends PreTrainedModel { +} +/** + * The complete VITS model, for text-to-speech synthesis. + * + * **Example:** Generate speech from text with `VitsModel`. + * ```javascript + * import { AutoTokenizer, VitsModel } from '@xenova/transformers'; + * + * // Load the tokenizer and model + * const tokenizer = await AutoTokenizer.from_pretrained('Xenova/mms-tts-eng'); + * const model = await VitsModel.from_pretrained('Xenova/mms-tts-eng'); + * + * // Run tokenization + * const inputs = tokenizer('I love transformers'); + * + * // Generate waveform + * const { waveform } = await model(inputs); + * // Tensor { + * // dims: [ 1, 35328 ], + * // type: 'float32', + * // data: Float32Array(35328) [ ... ], + * // size: 35328, + * // } + * ``` + */ +export class VitsModel extends VitsPreTrainedModel { + /** + * Calls the model on new inputs. + * @param {Object} model_inputs The inputs to the model. + * @returns {Promise} The outputs for the VITS model. + */ + _call(model_inputs: any): Promise; +} +export class SegformerPreTrainedModel extends PreTrainedModel { +} +/** + * The bare SegFormer encoder (Mix-Transformer) outputting raw hidden-states without any specific head on top. + */ +export class SegformerModel extends SegformerPreTrainedModel { +} +/** + * SegFormer Model transformer with an image classification head on top (a linear layer on top of the final hidden states) e.g. for ImageNet. + */ +export class SegformerForImageClassification extends SegformerPreTrainedModel { +} +/** + * SegFormer Model transformer with an all-MLP decode head on top e.g. for ADE20k, CityScapes. + */ +export class SegformerForSemanticSegmentation extends SegformerPreTrainedModel { +} +/** + * Base class of all AutoModels. Contains the `from_pretrained` function + * which is used to instantiate pretrained models. + */ +export class PretrainedMixin { + /** + * Mapping from model type to model class. + * @type {Map[]} + */ + static MODEL_CLASS_MAPPINGS: Map[]; + /** + * Whether to attempt to instantiate the base class (`PretrainedModel`) if + * the model type is not found in the mapping. + */ + static BASE_IF_FAIL: boolean; + /** + * Instantiate one of the model classes of the library from a pretrained model. + * + * The model class to instantiate is selected based on the `model_type` property of the config object + * (either passed as an argument or loaded from `pretrained_model_name_or_path` if possible) + * + * @param {string} pretrained_model_name_or_path The name or path of the pretrained model. Can be either: + * - A string, the *model id* of a pretrained model hosted inside a model repo on huggingface.co. + * Valid model ids can be located at the root-level, like `bert-base-uncased`, or namespaced under a + * user or organization name, like `dbmdz/bert-base-german-cased`. + * - A path to a *directory* containing model weights, e.g., `./my_model_directory/`. + * @param {import('./utils/hub.js').PretrainedOptions} options Additional options for loading the model. + * + * @returns {Promise} A new instance of the `PreTrainedModel` class. + */ + static from_pretrained(pretrained_model_name_or_path: string, { quantized, progress_callback, config, cache_dir, local_files_only, revision, model_file_name, }?: import("./utils/hub.js").PretrainedOptions): Promise; +} +/** + * Helper class which is used to instantiate pretrained models with the `from_pretrained` function. + * The chosen model class is determined by the type specified in the model config. + * + * @example + * let model = await AutoModel.from_pretrained('bert-base-uncased'); + */ +export class AutoModel extends PretrainedMixin { +} +/** + * Helper class which is used to instantiate pretrained sequence classification models with the `from_pretrained` function. + * The chosen model class is determined by the type specified in the model config. + * + * @example + * let model = await AutoModelForSequenceClassification.from_pretrained('distilbert-base-uncased-finetuned-sst-2-english'); + */ +export class AutoModelForSequenceClassification extends PretrainedMixin { + static MODEL_CLASS_MAPPINGS: Map[]; +} +/** + * Helper class which is used to instantiate pretrained token classification models with the `from_pretrained` function. + * The chosen model class is determined by the type specified in the model config. + * + * @example + * let model = await AutoModelForTokenClassification.from_pretrained('Davlan/distilbert-base-multilingual-cased-ner-hrl'); + */ +export class AutoModelForTokenClassification extends PretrainedMixin { + static MODEL_CLASS_MAPPINGS: Map[]; +} +/** + * Helper class which is used to instantiate pretrained sequence-to-sequence models with the `from_pretrained` function. + * The chosen model class is determined by the type specified in the model config. + * + * @example + * let model = await AutoModelForSeq2SeqLM.from_pretrained('t5-small'); + */ +export class AutoModelForSeq2SeqLM extends PretrainedMixin { + static MODEL_CLASS_MAPPINGS: Map[]; +} +/** + * Helper class which is used to instantiate pretrained sequence-to-sequence speech-to-text models with the `from_pretrained` function. + * The chosen model class is determined by the type specified in the model config. + * + * @example + * let model = await AutoModelForSpeechSeq2Seq.from_pretrained('openai/whisper-tiny.en'); + */ +export class AutoModelForSpeechSeq2Seq extends PretrainedMixin { + static MODEL_CLASS_MAPPINGS: Map[]; +} +/** + * Helper class which is used to instantiate pretrained sequence-to-sequence text-to-spectrogram models with the `from_pretrained` function. + * The chosen model class is determined by the type specified in the model config. + * + * @example + * let model = await AutoModelForTextToSpectrogram.from_pretrained('microsoft/speecht5_tts'); + */ +export class AutoModelForTextToSpectrogram extends PretrainedMixin { + static MODEL_CLASS_MAPPINGS: Map[]; +} +/** + * Helper class which is used to instantiate pretrained text-to-waveform models with the `from_pretrained` function. + * The chosen model class is determined by the type specified in the model config. + * + * @example + * let model = await AutoModelForTextToSpectrogram.from_pretrained('facebook/mms-tts-eng'); + */ +export class AutoModelForTextToWaveform extends PretrainedMixin { + static MODEL_CLASS_MAPPINGS: Map[]; +} +/** + * Helper class which is used to instantiate pretrained causal language models with the `from_pretrained` function. + * The chosen model class is determined by the type specified in the model config. + * + * @example + * let model = await AutoModelForCausalLM.from_pretrained('gpt2'); + */ +export class AutoModelForCausalLM extends PretrainedMixin { + static MODEL_CLASS_MAPPINGS: Map[]; +} +/** + * Helper class which is used to instantiate pretrained masked language models with the `from_pretrained` function. + * The chosen model class is determined by the type specified in the model config. + * + * @example + * let model = await AutoModelForMaskedLM.from_pretrained('bert-base-uncased'); + */ +export class AutoModelForMaskedLM extends PretrainedMixin { + static MODEL_CLASS_MAPPINGS: Map[]; +} +/** + * Helper class which is used to instantiate pretrained question answering models with the `from_pretrained` function. + * The chosen model class is determined by the type specified in the model config. + * + * @example + * let model = await AutoModelForQuestionAnswering.from_pretrained('distilbert-base-cased-distilled-squad'); + */ +export class AutoModelForQuestionAnswering extends PretrainedMixin { + static MODEL_CLASS_MAPPINGS: Map[]; +} +/** + * Helper class which is used to instantiate pretrained vision-to-sequence models with the `from_pretrained` function. + * The chosen model class is determined by the type specified in the model config. + * + * @example + * let model = await AutoModelForVision2Seq.from_pretrained('nlpconnect/vit-gpt2-image-captioning'); + */ +export class AutoModelForVision2Seq extends PretrainedMixin { + static MODEL_CLASS_MAPPINGS: Map[]; +} +/** + * Helper class which is used to instantiate pretrained image classification models with the `from_pretrained` function. + * The chosen model class is determined by the type specified in the model config. + * + * @example + * let model = await AutoModelForImageClassification.from_pretrained('google/vit-base-patch16-224'); + */ +export class AutoModelForImageClassification extends PretrainedMixin { + static MODEL_CLASS_MAPPINGS: Map[]; +} +/** + * Helper class which is used to instantiate pretrained image segmentation models with the `from_pretrained` function. + * The chosen model class is determined by the type specified in the model config. + * + * @example + * let model = await AutoModelForImageSegmentation.from_pretrained('facebook/detr-resnet-50-panoptic'); + */ +export class AutoModelForImageSegmentation extends PretrainedMixin { + static MODEL_CLASS_MAPPINGS: Map[]; +} +/** + * Helper class which is used to instantiate pretrained image segmentation models with the `from_pretrained` function. + * The chosen model class is determined by the type specified in the model config. + * + * @example + * let model = await AutoModelForSemanticSegmentation.from_pretrained('nvidia/segformer-b3-finetuned-cityscapes-1024-1024'); + */ +export class AutoModelForSemanticSegmentation extends PretrainedMixin { + static MODEL_CLASS_MAPPINGS: Map[]; +} +/** + * Helper class which is used to instantiate pretrained object detection models with the `from_pretrained` function. + * The chosen model class is determined by the type specified in the model config. + * + * @example + * let model = await AutoModelForObjectDetection.from_pretrained('facebook/detr-resnet-50'); + */ +export class AutoModelForObjectDetection extends PretrainedMixin { + static MODEL_CLASS_MAPPINGS: Map[]; +} +export class AutoModelForZeroShotObjectDetection extends PretrainedMixin { + static MODEL_CLASS_MAPPINGS: Map[]; +} +/** + * Helper class which is used to instantiate pretrained mask generation models with the `from_pretrained` function. + * The chosen model class is determined by the type specified in the model config. + * + * @example + * let model = await AutoModelForMaskGeneration.from_pretrained('Xenova/sam-vit-base'); + */ +export class AutoModelForMaskGeneration extends PretrainedMixin { + static MODEL_CLASS_MAPPINGS: Map[]; +} +export class AutoModelForCTC extends PretrainedMixin { + static MODEL_CLASS_MAPPINGS: Map[]; +} +export class AutoModelForAudioClassification extends PretrainedMixin { + static MODEL_CLASS_MAPPINGS: Map[]; +} +export class AutoModelForDocumentQuestionAnswering extends PretrainedMixin { + static MODEL_CLASS_MAPPINGS: Map[]; +} +export class AutoModelForImageMatting extends PretrainedMixin { + static MODEL_CLASS_MAPPINGS: Map[]; +} +export class AutoModelForImageToImage extends PretrainedMixin { + static MODEL_CLASS_MAPPINGS: Map[]; +} +export class AutoModelForDepthEstimation extends PretrainedMixin { + static MODEL_CLASS_MAPPINGS: Map[]; +} +export class Seq2SeqLMOutput extends ModelOutput { + /** + * @param {Object} output The output of the model. + * @param {Tensor} output.logits The output logits of the model. + * @param {Tensor} output.past_key_values An tensor of key/value pairs that represent the previous state of the model. + * @param {Tensor} output.encoder_outputs The output of the encoder in a sequence-to-sequence model. + * @param {Tensor} [output.decoder_attentions] Attentions weights of the decoder, after the attention softmax, used to compute the weighted average in the self-attention heads. + * @param {Tensor} [output.cross_attentions] Attentions weights of the decoder's cross-attention layer, after the attention softmax, used to compute the weighted average in the cross-attention heads. + */ + constructor({ logits, past_key_values, encoder_outputs, decoder_attentions, cross_attentions }: { + logits: Tensor; + past_key_values: Tensor; + encoder_outputs: Tensor; + decoder_attentions?: Tensor; + cross_attentions?: Tensor; + }); + logits: Tensor; + past_key_values: Tensor; + encoder_outputs: Tensor; + decoder_attentions: Tensor; + cross_attentions: Tensor; +} +/** + * Base class for outputs of sentence classification models. + */ +export class SequenceClassifierOutput extends ModelOutput { + /** + * @param {Object} output The output of the model. + * @param {Tensor} output.logits classification (or regression if config.num_labels==1) scores (before SoftMax). + */ + constructor({ logits }: { + logits: Tensor; + }); + logits: Tensor; +} +/** + * Base class for outputs of token classification models. + */ +export class TokenClassifierOutput extends ModelOutput { + /** + * @param {Object} output The output of the model. + * @param {Tensor} output.logits Classification scores (before SoftMax). + */ + constructor({ logits }: { + logits: Tensor; + }); + logits: Tensor; +} +/** + * Base class for masked language models outputs. + */ +export class MaskedLMOutput extends ModelOutput { + /** + * @param {Object} output The output of the model. + * @param {Tensor} output.logits Prediction scores of the language modeling head (scores for each vocabulary token before SoftMax). + */ + constructor({ logits }: { + logits: Tensor; + }); + logits: Tensor; +} +/** + * Base class for outputs of question answering models. + */ +export class QuestionAnsweringModelOutput extends ModelOutput { + /** + * @param {Object} output The output of the model. + * @param {Tensor} output.start_logits Span-start scores (before SoftMax). + * @param {Tensor} output.end_logits Span-end scores (before SoftMax). + */ + constructor({ start_logits, end_logits }: { + start_logits: Tensor; + end_logits: Tensor; + }); + start_logits: Tensor; + end_logits: Tensor; +} +/** + * Base class for causal language model (or autoregressive) outputs. + */ +export class CausalLMOutput extends ModelOutput { + /** + * @param {Object} output The output of the model. + * @param {Tensor} output.logits Prediction scores of the language modeling head (scores for each vocabulary token before softmax). + */ + constructor({ logits }: { + logits: Tensor; + }); + logits: Tensor; +} +/** + * Base class for causal language model (or autoregressive) outputs. + */ +export class CausalLMOutputWithPast extends ModelOutput { + /** + * @param {Object} output The output of the model. + * @param {Tensor} output.logits Prediction scores of the language modeling head (scores for each vocabulary token before softmax). + * @param {Tensor} output.past_key_values Contains pre-computed hidden-states (key and values in the self-attention blocks) + * that can be used (see `past_key_values` input) to speed up sequential decoding. + */ + constructor({ logits, past_key_values }: { + logits: Tensor; + past_key_values: Tensor; + }); + logits: Tensor; + past_key_values: Tensor; +} +export class ImageMattingOutput extends ModelOutput { + /** + * @param {Object} output The output of the model. + * @param {Tensor} output.alphas Estimated alpha values, of shape `(batch_size, num_channels, height, width)`. + */ + constructor({ alphas }: { + alphas: Tensor; + }); + alphas: Tensor; +} +/** + * Describes the outputs for the VITS model. + */ +export class VitsModelOutput extends ModelOutput { + /** + * @param {Object} output The output of the model. + * @param {Tensor} output.waveform The final audio waveform predicted by the model, of shape `(batch_size, sequence_length)`. + * @param {Tensor} output.spectrogram The log-mel spectrogram predicted at the output of the flow model. + * This spectrogram is passed to the Hi-Fi GAN decoder model to obtain the final audio waveform. + */ + constructor({ waveform, spectrogram }: { + waveform: Tensor; + spectrogram: Tensor; + }); + waveform: Tensor; + spectrogram: Tensor; +} +export type InferenceSession = import('onnxruntime-web').InferenceSession; +/** + * Runs a single step of the text generation process for a given beam. + * + * @param {Object} self The decoder object. + * @param {Object} beam The beam to run. + * @param {Tensor} beam.input The input tensor. + * @param {Tensor} beam.model_input_ids The input ids to the model. + * @param {Tensor} beam.attention_mask The attention mask. + * @param {Object} beam.prev_model_outputs The past key values. + * @param {number[]} beam.output_token_ids The output token ids. + * @returns {Promise} The output of the generation step. + * @private + */ +declare function decoderRunBeam(self: any, beam: { + input: Tensor; + model_input_ids: Tensor; + attention_mask: Tensor; + prev_model_outputs: any; + output_token_ids: number[]; +}): Promise; +/** + * Starts the generation of text by initializing the beams for the given input token IDs. + * @param {Object} self The text generation model object. + * @param {Tensor} inputTokenIds An tensor of input token IDs to generate text from. + * @param {Object} generation_config The generation config. + * @param {number} numOutputTokens The maximum number of tokens to generate for each beam. + * @param {Tensor} [inputs_attention_mask] The attention mask tensor for the input token IDs. + * @returns {Object[]} An array of beams initialized with the given inputs and parameters. + * @private + */ +declare function decoderStartBeams(self: any, inputTokenIds: Tensor, generation_config: any, numOutputTokens: number, inputs_attention_mask?: Tensor): any[]; +/** + * Update a beam with a new token ID. + * @param {Object} beam The beam to update. + * @param {number} newTokenId The new token ID to add to the beam's output. + * @private + */ +declare function decoderUpdatebeam(beam: any, newTokenId: number): void; +/** + * Forward pass of an encoder model. + * @param {Object} self The encoder model. + * @param {Object} model_inputs The input data to be used for the forward pass. + * @returns {Promise} Promise that resolves with an object containing the model's outputs. + * @private + */ +declare function encoderForward(self: any, model_inputs: any): Promise; +import { Tensor } from './utils/tensor.js'; +export {}; +//# sourceMappingURL=models.d.ts.map \ No newline at end of file diff --git a/core/vendor/modules/@xenova/transformers/types/models.d.ts.map b/core/vendor/modules/@xenova/transformers/types/models.d.ts.map new file mode 100644 index 000000000..d87a33fe3 --- /dev/null +++ b/core/vendor/modules/@xenova/transformers/types/models.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../src/models.js"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/core/vendor/modules/@xenova/transformers/types/pipelines.d.ts b/core/vendor/modules/@xenova/transformers/types/pipelines.d.ts new file mode 100644 index 000000000..840a5dac5 --- /dev/null +++ b/core/vendor/modules/@xenova/transformers/types/pipelines.d.ts @@ -0,0 +1,2330 @@ +/** + * @typedef {keyof typeof SUPPORTED_TASKS} TaskType + * @typedef {keyof typeof TASK_ALIASES} AliasType + * @typedef {TaskType | AliasType} PipelineType All possible pipeline types. + * @typedef {{[K in TaskType]: InstanceType}} SupportedTasks A mapping of pipeline names to their corresponding pipeline classes. + * @typedef {{[K in AliasType]: InstanceType}} AliasTasks A mapping from pipeline aliases to their corresponding pipeline classes. + * @typedef {SupportedTasks & AliasTasks} AllTasks A mapping from all pipeline names and aliases to their corresponding pipeline classes. + */ +/** + * Utility factory method to build a `Pipeline` object. + * + * @template {PipelineType} T The type of pipeline to return. + * @param {T} task The task defining which pipeline will be returned. Currently accepted tasks are: + * - `"audio-classification"`: will return a `AudioClassificationPipeline`. + * - `"automatic-speech-recognition"`: will return a `AutomaticSpeechRecognitionPipeline`. + * - `"depth-estimation"`: will return a `DepthEstimationPipeline`. + * - `"document-question-answering"`: will return a `DocumentQuestionAnsweringPipeline`. + * - `"feature-extraction"`: will return a `FeatureExtractionPipeline`. + * - `"fill-mask"`: will return a `FillMaskPipeline`. + * - `"image-classification"`: will return a `ImageClassificationPipeline`. + * - `"image-segmentation"`: will return a `ImageSegmentationPipeline`. + * - `"image-to-text"`: will return a `ImageToTextPipeline`. + * - `"object-detection"`: will return a `ObjectDetectionPipeline`. + * - `"question-answering"`: will return a `QuestionAnsweringPipeline`. + * - `"summarization"`: will return a `SummarizationPipeline`. + * - `"text2text-generation"`: will return a `Text2TextGenerationPipeline`. + * - `"text-classification"` (alias "sentiment-analysis" available): will return a `TextClassificationPipeline`. + * - `"text-generation"`: will return a `TextGenerationPipeline`. + * - `"token-classification"` (alias "ner" available): will return a `TokenClassificationPipeline`. + * - `"translation"`: will return a `TranslationPipeline`. + * - `"translation_xx_to_yy"`: will return a `TranslationPipeline`. + * - `"zero-shot-classification"`: will return a `ZeroShotClassificationPipeline`. + * - `"zero-shot-audio-classification"`: will return a `ZeroShotAudioClassificationPipeline`. + * - `"zero-shot-image-classification"`: will return a `ZeroShotImageClassificationPipeline`. + * - `"zero-shot-object-detection"`: will return a `ZeroShotObjectDetectionPipeline`. + * @param {string} [model=null] The name of the pre-trained model to use. If not specified, the default model for the task will be used. + * @param {import('./utils/hub.js').PretrainedOptions} [options] Optional parameters for the pipeline. + * @returns {Promise} A Pipeline object for the specified task. + * @throws {Error} If an unsupported pipeline is requested. + */ +export function pipeline(task: T, model?: string, { quantized, progress_callback, config, cache_dir, local_files_only, revision, }?: import('./utils/hub.js').PretrainedOptions): Promise; +declare const Pipeline_base: new () => { + (...args: any[]): any; + _call(...args: any[]): any; +}; +/** + * @callback DisposeType Disposes the item. + * @returns {Promise} A promise that resolves when the item has been disposed. + * + * @typedef {Object} Disposable + * @property {DisposeType} dispose A promise that resolves when the pipeline has been disposed. + */ +/** + * The Pipeline class is the class from which all pipelines inherit. + * Refer to this class for methods shared across different pipelines. + * @extends Callable + */ +export class Pipeline extends Pipeline_base { + /** + * Create a new Pipeline. + * @param {Object} options An object containing the following properties: + * @param {string} [options.task] The task of the pipeline. Useful for specifying subtasks. + * @param {PreTrainedModel} [options.model] The model used by the pipeline. + * @param {PreTrainedTokenizer} [options.tokenizer=null] The tokenizer used by the pipeline (if any). + * @param {Processor} [options.processor=null] The processor used by the pipeline (if any). + */ + constructor({ task, model, tokenizer, processor }: { + task?: string; + model?: PreTrainedModel; + tokenizer?: PreTrainedTokenizer; + processor?: Processor; + }); + task: string; + model: PreTrainedModel; + tokenizer: PreTrainedTokenizer; + processor: Processor; + dispose(): Promise; +} +declare const TextClassificationPipeline_base: new (options: TextPipelineConstructorArgs) => TextClassificationPipelineType; +/** + * @typedef {Object} ModelTokenizerConstructorArgs + * @property {string} task The task of the pipeline. Useful for specifying subtasks. + * @property {PreTrainedModel} model The model used by the pipeline. + * @property {PreTrainedTokenizer} tokenizer The tokenizer used by the pipeline. + * + * @typedef {ModelTokenizerConstructorArgs} TextPipelineConstructorArgs An object used to instantiate a text-based pipeline. + */ +/** + * @typedef {Object} ModelProcessorConstructorArgs + * @property {string} task The task of the pipeline. Useful for specifying subtasks. + * @property {PreTrainedModel} model The model used by the pipeline. + * @property {Processor} processor The processor used by the pipeline. + * + * @typedef {ModelProcessorConstructorArgs} AudioPipelineConstructorArgs An object used to instantiate an audio-based pipeline. + * @typedef {ModelProcessorConstructorArgs} ImagePipelineConstructorArgs An object used to instantiate an image-based pipeline. + */ +/** + * @typedef {Object} ModelTokenizerProcessorConstructorArgs + * @property {string} task The task of the pipeline. Useful for specifying subtasks. + * @property {PreTrainedModel} model The model used by the pipeline. + * @property {PreTrainedTokenizer} tokenizer The tokenizer used by the pipeline. + * @property {Processor} processor The processor used by the pipeline. + * + * @typedef {ModelTokenizerProcessorConstructorArgs} TextAudioPipelineConstructorArgs An object used to instantiate a text- and audio-based pipeline. + * @typedef {ModelTokenizerProcessorConstructorArgs} TextImagePipelineConstructorArgs An object used to instantiate a text- and image-based pipeline. + */ +/** + * @typedef {Object} TextClassificationSingle + * @property {string} label The label predicted. + * @property {number} score The corresponding probability. + * @typedef {TextClassificationSingle[]} TextClassificationOutput + * + * @typedef {Object} TextClassificationPipelineOptions Parameters specific to text classification pipelines. + * @property {number} [topk=1] The number of top predictions to be returned. + * + * @callback TextClassificationPipelineCallback Classify the text(s) given as inputs. + * @param {string|string[]} texts The input text(s) to be classified. + * @param {TextClassificationPipelineOptions} [options] The options to use for text classification. + * @returns {Promise} An array or object containing the predicted labels and scores. + * + * @typedef {TextPipelineConstructorArgs & TextClassificationPipelineCallback & Disposable} TextClassificationPipelineType + */ +/** + * Text classification pipeline using any `ModelForSequenceClassification`. + * + * **Example:** Sentiment-analysis w/ `Xenova/distilbert-base-uncased-finetuned-sst-2-english`. + * ```javascript + * const classifier = await pipeline('sentiment-analysis', 'Xenova/distilbert-base-uncased-finetuned-sst-2-english'); + * const output = await classifier('I love transformers!'); + * // [{ label: 'POSITIVE', score: 0.999788761138916 }] + * ``` + * + * **Example:** Multilingual sentiment-analysis w/ `Xenova/bert-base-multilingual-uncased-sentiment` (and return top 5 classes). + * ```javascript + * const classifier = await pipeline('sentiment-analysis', 'Xenova/bert-base-multilingual-uncased-sentiment'); + * const output = await classifier('Le meilleur film de tous les temps.', { topk: 5 }); + * // [ + * // { label: '5 stars', score: 0.9610759615898132 }, + * // { label: '4 stars', score: 0.03323351591825485 }, + * // { label: '3 stars', score: 0.0036155181005597115 }, + * // { label: '1 star', score: 0.0011325967498123646 }, + * // { label: '2 stars', score: 0.0009423971059732139 } + * // ] + * ``` + * + * **Example:** Toxic comment classification w/ `Xenova/toxic-bert` (and return all classes). + * ```javascript + * const classifier = await pipeline('text-classification', 'Xenova/toxic-bert'); + * const output = await classifier('I hate you!', { topk: null }); + * // [ + * // { label: 'toxic', score: 0.9593140482902527 }, + * // { label: 'insult', score: 0.16187334060668945 }, + * // { label: 'obscene', score: 0.03452680632472038 }, + * // { label: 'identity_hate', score: 0.0223250575363636 }, + * // { label: 'threat', score: 0.019197041168808937 }, + * // { label: 'severe_toxic', score: 0.005651099607348442 } + * // ] + * ``` + */ +export class TextClassificationPipeline extends TextClassificationPipeline_base { + _call(texts: string | string[], options?: TextClassificationPipelineOptions): Promise; +} +declare const TokenClassificationPipeline_base: new (options: TextPipelineConstructorArgs) => TokenClassificationPipelineType; +/** + * @typedef {Object} TokenClassificationSingle + * @property {string} word The token/word classified. This is obtained by decoding the selected tokens. + * @property {number} score The corresponding probability for `entity`. + * @property {string} entity The entity predicted for that token/word. + * @property {number} index The index of the corresponding token in the sentence. + * @property {number} [start] The index of the start of the corresponding entity in the sentence. + * @property {number} [end] The index of the end of the corresponding entity in the sentence. + * @typedef {TokenClassificationSingle[]} TokenClassificationOutput + * + * @typedef {Object} TokenClassificationPipelineOptions Parameters specific to token classification pipelines. + * @property {string[]} [ignore_labels] A list of labels to ignore. + * + * @callback TokenClassificationPipelineCallback Classify each token of the text(s) given as inputs. + * @param {string|string[]} texts One or several texts (or one list of texts) for token classification. + * @param {TokenClassificationPipelineOptions} [options] The options to use for token classification. + * @returns {Promise} The result. + * + * @typedef {TextPipelineConstructorArgs & TokenClassificationPipelineCallback & Disposable} TokenClassificationPipelineType + */ +/** + * Named Entity Recognition pipeline using any `ModelForTokenClassification`. + * + * **Example:** Perform named entity recognition with `Xenova/bert-base-NER`. + * ```javascript + * const classifier = await pipeline('token-classification', 'Xenova/bert-base-NER'); + * const output = await classifier('My name is Sarah and I live in London'); + * // [ + * // { entity: 'B-PER', score: 0.9980202913284302, index: 4, word: 'Sarah' }, + * // { entity: 'B-LOC', score: 0.9994474053382874, index: 9, word: 'London' } + * // ] + * ``` + * + * **Example:** Perform named entity recognition with `Xenova/bert-base-NER` (and return all labels). + * ```javascript + * const classifier = await pipeline('token-classification', 'Xenova/bert-base-NER'); + * const output = await classifier('Sarah lives in the United States of America', { ignore_labels: [] }); + * // [ + * // { entity: 'B-PER', score: 0.9966587424278259, index: 1, word: 'Sarah' }, + * // { entity: 'O', score: 0.9987385869026184, index: 2, word: 'lives' }, + * // { entity: 'O', score: 0.9990072846412659, index: 3, word: 'in' }, + * // { entity: 'O', score: 0.9988298416137695, index: 4, word: 'the' }, + * // { entity: 'B-LOC', score: 0.9995510578155518, index: 5, word: 'United' }, + * // { entity: 'I-LOC', score: 0.9990395307540894, index: 6, word: 'States' }, + * // { entity: 'I-LOC', score: 0.9986724853515625, index: 7, word: 'of' }, + * // { entity: 'I-LOC', score: 0.9975294470787048, index: 8, word: 'America' } + * // ] + * ``` + */ +export class TokenClassificationPipeline extends TokenClassificationPipeline_base { + _call(texts: string | string[], options?: TokenClassificationPipelineOptions): Promise; +} +declare const QuestionAnsweringPipeline_base: new (options: TextPipelineConstructorArgs) => QuestionAnsweringPipelineType; +/** + * @typedef {Object} QuestionAnsweringOutput + * @property {number} score The probability associated to the answer. + * @property {number} [start] The character start index of the answer (in the tokenized version of the input). + * @property {number} [end] The character end index of the answer (in the tokenized version of the input). + * @property {string} answer The answer to the question. + * + * @typedef {Object} QuestionAnsweringPipelineOptions Parameters specific to question answering pipelines. + * @property {number} [topk=1] The number of top answer predictions to be returned. + * + * @callback QuestionAnsweringPipelineCallback Answer the question(s) given as inputs by using the context(s). + * @param {string|string[]} question One or several question(s) (must be used in conjunction with the `context` argument). + * @param {string|string[]} context One or several context(s) associated with the question(s) (must be used in conjunction with the `question` argument). + * @param {QuestionAnsweringPipelineOptions} [options] The options to use for question answering. + * @returns {Promise} An array or object containing the predicted answers and scores. + * + * @typedef {TextPipelineConstructorArgs & QuestionAnsweringPipelineCallback & Disposable} QuestionAnsweringPipelineType + */ +/** + * Question Answering pipeline using any `ModelForQuestionAnswering`. + * + * **Example:** Run question answering with `Xenova/distilbert-base-uncased-distilled-squad`. + * ```javascript + * const answerer = await pipeline('question-answering', 'Xenova/distilbert-base-uncased-distilled-squad'); + * const question = 'Who was Jim Henson?'; + * const context = 'Jim Henson was a nice puppet.'; + * const output = await answerer(question, context); + * // { + * // answer: "a nice puppet", + * // score: 0.5768911502526741 + * // } + * ``` + */ +export class QuestionAnsweringPipeline extends QuestionAnsweringPipeline_base { + _call(question: string | string[], context: string | string[], options?: QuestionAnsweringPipelineOptions): Promise; +} +declare const FillMaskPipeline_base: new (options: TextPipelineConstructorArgs) => FillMaskPipelineType; +/** + * @typedef {Object} FillMaskSingle + * @property {string} sequence The corresponding input with the mask token prediction. + * @property {number} score The corresponding probability. + * @property {number} token The predicted token id (to replace the masked one). + * @property {string} token_str The predicted token (to replace the masked one). + * @typedef {FillMaskSingle[]} FillMaskOutput + * + * @typedef {Object} FillMaskPipelineOptions Parameters specific to fill mask pipelines. + * @property {number} [topk=5] When passed, overrides the number of predictions to return. + * + * @callback FillMaskPipelineCallback Fill the masked token in the text(s) given as inputs. + * @param {string|string[]} texts One or several texts (or one list of prompts) with masked tokens. + * @param {FillMaskPipelineOptions} [options] The options to use for masked language modelling. + * @returns {Promise} An array of objects containing the score, predicted token, predicted token string, + * and the sequence with the predicted token filled in, or an array of such arrays (one for each input text). + * If only one input text is given, the output will be an array of objects. + * @throws {Error} When the mask token is not found in the input text. + * + * @typedef {TextPipelineConstructorArgs & FillMaskPipelineCallback & Disposable} FillMaskPipelineType + */ +/** + * Masked language modeling prediction pipeline using any `ModelWithLMHead`. + * + * **Example:** Perform masked language modelling (a.k.a. "fill-mask") with `Xenova/bert-base-uncased`. + * ```javascript + * const unmasker = await pipeline('fill-mask', 'Xenova/bert-base-cased'); + * const output = await unmasker('The goal of life is [MASK].'); + * // [ + * // { token_str: 'survival', score: 0.06137419492006302, token: 8115, sequence: 'The goal of life is survival.' }, + * // { token_str: 'love', score: 0.03902450203895569, token: 1567, sequence: 'The goal of life is love.' }, + * // { token_str: 'happiness', score: 0.03253183513879776, token: 9266, sequence: 'The goal of life is happiness.' }, + * // { token_str: 'freedom', score: 0.018736306577920914, token: 4438, sequence: 'The goal of life is freedom.' }, + * // { token_str: 'life', score: 0.01859794743359089, token: 1297, sequence: 'The goal of life is life.' } + * // ] + * ``` + * + * **Example:** Perform masked language modelling (a.k.a. "fill-mask") with `Xenova/bert-base-cased` (and return top result). + * ```javascript + * const unmasker = await pipeline('fill-mask', 'Xenova/bert-base-cased'); + * const output = await unmasker('The Milky Way is a [MASK] galaxy.', { topk: 1 }); + * // [{ token_str: 'spiral', score: 0.6299987435340881, token: 14061, sequence: 'The Milky Way is a spiral galaxy.' }] + * ``` + */ +export class FillMaskPipeline extends FillMaskPipeline_base { + _call(texts: string | string[], options?: FillMaskPipelineOptions): Promise; +} +declare const Text2TextGenerationPipeline_base: new (options: TextPipelineConstructorArgs) => Text2TextGenerationPipelineType; +/** + * @typedef {Object} Text2TextGenerationSingle + * @property {string} generated_text The generated text. + * @typedef {Text2TextGenerationSingle[]} Text2TextGenerationOutput + * + * @callback Text2TextGenerationPipelineCallback Generate the output text(s) using text(s) given as inputs. + * @param {string|string[]} texts Input text for the encoder. + * @param {import('./utils/generation.js').GenerationConfigType} [options] Additional keyword arguments to pass along to the generate method of the model. + * @returns {Promise} + * + * @typedef {TextPipelineConstructorArgs & Text2TextGenerationPipelineCallback & Disposable} Text2TextGenerationPipelineType + */ +/** + * Text2TextGenerationPipeline class for generating text using a model that performs text-to-text generation tasks. + * + * **Example:** Text-to-text generation w/ `Xenova/LaMini-Flan-T5-783M`. + * ```javascript + * const generator = await pipeline('text2text-generation', 'Xenova/LaMini-Flan-T5-783M'); + * const output = await generator('how can I become more healthy?', { + * max_new_tokens: 100, + * }); + * // [{ generated_text: "To become more healthy, you can: 1. Eat a balanced diet with plenty of fruits, vegetables, whole grains, lean proteins, and healthy fats. 2. Stay hydrated by drinking plenty of water. 3. Get enough sleep and manage stress levels. 4. Avoid smoking and excessive alcohol consumption. 5. Regularly exercise and maintain a healthy weight. 6. Practice good hygiene and sanitation. 7. Seek medical attention if you experience any health issues." }] + * ``` + */ +export class Text2TextGenerationPipeline extends Text2TextGenerationPipeline_base { + /** @type {'generated_text'} */ + _key: 'generated_text'; + _call(texts: string | string[], options?: import('./utils/generation.js').GenerationConfigType): Promise; +} +declare const SummarizationPipeline_base: new (options: TextPipelineConstructorArgs) => SummarizationPipelineType; +/** + * @typedef {Object} SummarizationSingle + * @property {string} summary_text The summary text. + * @typedef {SummarizationSingle[]} SummarizationOutput + * + * @callback SummarizationPipelineCallback Summarize the text(s) given as inputs. + * @param {string|string[]} texts One or several articles (or one list of articles) to summarize. + * @param {import('./utils/generation.js').GenerationConfigType} [options] Additional keyword arguments to pass along to the generate method of the model. + * @returns {Promise} + * + * @typedef {TextPipelineConstructorArgs & SummarizationPipelineCallback & Disposable} SummarizationPipelineType + */ +/** + * A pipeline for summarization tasks, inheriting from Text2TextGenerationPipeline. + * + * **Example:** Summarization w/ `Xenova/distilbart-cnn-6-6`. + * ```javascript + * const generator = await pipeline('summarization', 'Xenova/distilbart-cnn-6-6'); + * const text = 'The tower is 324 metres (1,063 ft) tall, about the same height as an 81-storey building, ' + + * 'and the tallest structure in Paris. Its base is square, measuring 125 metres (410 ft) on each side. ' + + * 'During its construction, the Eiffel Tower surpassed the Washington Monument to become the tallest ' + + * 'man-made structure in the world, a title it held for 41 years until the Chrysler Building in New ' + + * 'York City was finished in 1930. It was the first structure to reach a height of 300 metres. Due to ' + + * 'the addition of a broadcasting aerial at the top of the tower in 1957, it is now taller than the ' + + * 'Chrysler Building by 5.2 metres (17 ft). Excluding transmitters, the Eiffel Tower is the second ' + + * 'tallest free-standing structure in France after the Millau Viaduct.'; + * const output = await generator(text, { + * max_new_tokens: 100, + * }); + * // [{ summary_text: ' The Eiffel Tower is about the same height as an 81-storey building and the tallest structure in Paris. It is the second tallest free-standing structure in France after the Millau Viaduct.' }] + * ``` + */ +export class SummarizationPipeline extends SummarizationPipeline_base { + /** @type {'summary_text'} */ + _key: 'summary_text'; +} +declare const TranslationPipeline_base: new (options: TextPipelineConstructorArgs) => TranslationPipelineType; +/** + * @typedef {Object} TranslationSingle + * @property {string} translation_text The translated text. + * @typedef {TranslationSingle[]} TranslationOutput + * + * @callback TranslationPipelineCallback Translate the text(s) given as inputs. + * @param {string|string[]} texts Texts to be translated. + * @param {import('./utils/generation.js').GenerationConfigType} [options] Additional keyword arguments to pass along to the generate method of the model. + * @returns {Promise} + * + * @typedef {TextPipelineConstructorArgs & TranslationPipelineCallback & Disposable} TranslationPipelineType + */ +/** + * Translates text from one language to another. + * + * **Example:** Multilingual translation w/ `Xenova/nllb-200-distilled-600M`. + * + * See [here](https://github.com/facebookresearch/flores/blob/main/flores200/README.md#languages-in-flores-200) + * for the full list of languages and their corresponding codes. + * + * ```javascript + * const translator = await pipeline('translation', 'Xenova/nllb-200-distilled-600M'); + * const output = await translator('जीवन एक चॉकलेट बॉक्स की तरह है।', { + * src_lang: 'hin_Deva', // Hindi + * tgt_lang: 'fra_Latn', // French + * }); + * // [{ translation_text: 'La vie est comme une boîte à chocolat.' }] + * ``` + * + * **Example:** Multilingual translation w/ `Xenova/m2m100_418M`. + * + * See [here](https://huggingface.co/facebook/m2m100_418M#languages-covered) + * for the full list of languages and their corresponding codes. + * + * ```javascript + * const translator = await pipeline('translation', 'Xenova/m2m100_418M'); + * const output = await translator('生活就像一盒巧克力。', { + * src_lang: 'zh', // Chinese + * tgt_lang: 'en', // English + * }); + * // [{ translation_text: 'Life is like a box of chocolate.' }] + * ``` + * + * **Example:** Multilingual translation w/ `Xenova/mbart-large-50-many-to-many-mmt`. + * + * See [here](https://huggingface.co/facebook/mbart-large-50-many-to-many-mmt#languages-covered) + * for the full list of languages and their corresponding codes. + * + * ```javascript + * const translator = await pipeline('translation', 'Xenova/mbart-large-50-many-to-many-mmt'); + * const output = await translator('संयुक्त राष्ट्र के प्रमुख का कहना है कि सीरिया में कोई सैन्य समाधान नहीं है', { + * src_lang: 'hi_IN', // Hindi + * tgt_lang: 'fr_XX', // French + * }); + * // [{ translation_text: 'Le chef des Nations affirme qu 'il n 'y a military solution in Syria.' }] + * ``` + */ +export class TranslationPipeline extends TranslationPipeline_base { + /** @type {'translation_text'} */ + _key: 'translation_text'; +} +declare const TextGenerationPipeline_base: new (options: TextPipelineConstructorArgs) => TextGenerationPipelineType; +/** + * @typedef {Object} TextGenerationSingle + * @property {string} generated_text The generated text. + * @typedef {TextGenerationSingle[]} TextGenerationOutput + * + * @typedef {Object} TextGenerationSpecificParams Parameters specific to text-generation pipelines. + * @property {boolean} [add_special_tokens] Whether or not to add special tokens when tokenizing the sequences. + * @typedef {import('./utils/generation.js').GenerationConfigType & TextGenerationSpecificParams} TextGenerationConfig + * + * @callback TextGenerationPipelineCallback Complete the prompt(s) given as inputs. + * @param {string|string[]} texts One or several prompts (or one list of prompts) to complete. + * @param {TextGenerationConfig} [options] Additional keyword arguments to pass along to the generate method of the model. + * @returns {Promise} An array or object containing the generated texts. + * + * @typedef {TextPipelineConstructorArgs & TextGenerationPipelineCallback & Disposable} TextGenerationPipelineType + */ +/** + * Language generation pipeline using any `ModelWithLMHead` or `ModelForCausalLM`. + * This pipeline predicts the words that will follow a specified text prompt. + * NOTE: For the full list of generation parameters, see [`GenerationConfig`](./utils/generation#module_utils/generation.GenerationConfig). + * + * **Example:** Text generation with `Xenova/distilgpt2` (default settings). + * ```javascript + * const generator = await pipeline('text-generation', 'Xenova/distilgpt2'); + * const text = 'I enjoy walking with my cute dog,'; + * const output = await generator(text); + * // [{ generated_text: "I enjoy walking with my cute dog, and I love to play with the other dogs." }] + * ``` + * + * **Example:** Text generation with `Xenova/distilgpt2` (custom settings). + * ```javascript + * const generator = await pipeline('text-generation', 'Xenova/distilgpt2'); + * const text = 'Once upon a time, there was'; + * const output = await generator(text, { + * temperature: 2, + * max_new_tokens: 10, + * repetition_penalty: 1.5, + * no_repeat_ngram_size: 2, + * num_beams: 2, + * num_return_sequences: 2, + * }); + * // [{ + * // "generated_text": "Once upon a time, there was an abundance of information about the history and activities that" + * // }, { + * // "generated_text": "Once upon a time, there was an abundance of information about the most important and influential" + * // }] + * ``` + * + * **Example:** Run code generation with `Xenova/codegen-350M-mono`. + * ```javascript + * const generator = await pipeline('text-generation', 'Xenova/codegen-350M-mono'); + * const text = 'def fib(n):'; + * const output = await generator(text, { + * max_new_tokens: 44, + * }); + * // [{ + * // generated_text: 'def fib(n):\n' + + * // ' if n == 0:\n' + + * // ' return 0\n' + + * // ' elif n == 1:\n' + + * // ' return 1\n' + + * // ' else:\n' + + * // ' return fib(n-1) + fib(n-2)\n' + * // }] + * ``` + */ +export class TextGenerationPipeline extends TextGenerationPipeline_base { + _call(texts: string | string[], options?: TextGenerationConfig): Promise; +} +declare const ZeroShotClassificationPipeline_base: new (options: TextPipelineConstructorArgs) => ZeroShotClassificationPipelineType; +/** + * @typedef {Object} ZeroShotClassificationOutput + * @property {string} sequence The sequence for which this is the output. + * @property {string[]} labels The labels sorted by order of likelihood. + * @property {number[]} scores The probabilities for each of the labels. + * + * @typedef {Object} ZeroShotClassificationPipelineOptions Parameters specific to zero-shot classification pipelines. + * @property {string} [hypothesis_template="This example is {}."] The template used to turn each + * candidate label into an NLI-style hypothesis. The candidate label will replace the {} placeholder. + * @property {boolean} [multi_label=false] Whether or not multiple candidate labels can be true. + * If `false`, the scores are normalized such that the sum of the label likelihoods for each sequence + * is 1. If `true`, the labels are considered independent and probabilities are normalized for each + * candidate by doing a softmax of the entailment score vs. the contradiction score. + * + * @callback ZeroShotClassificationPipelineCallback Classify the sequence(s) given as inputs. + * @param {string|string[]} texts The sequence(s) to classify, will be truncated if the model input is too large. + * @param {string|string[]} candidate_labels The set of possible class labels to classify each sequence into. + * Can be a single label, a string of comma-separated labels, or a list of labels. + * @param {ZeroShotClassificationPipelineOptions} [options] The options to use for zero-shot classification. + * @returns {Promise} An array or object containing the predicted labels and scores. + * + * @typedef {TextPipelineConstructorArgs & ZeroShotClassificationPipelineCallback & Disposable} ZeroShotClassificationPipelineType + */ +/** + * NLI-based zero-shot classification pipeline using a `ModelForSequenceClassification` + * trained on NLI (natural language inference) tasks. Equivalent of `text-classification` + * pipelines, but these models don't require a hardcoded number of potential classes, they + * can be chosen at runtime. It usually means it's slower but it is **much** more flexible. + * + * **Example:** Zero shot classification with `Xenova/mobilebert-uncased-mnli`. + * ```javascript + * const classifier = await pipeline('zero-shot-classification', 'Xenova/mobilebert-uncased-mnli'); + * const text = 'Last week I upgraded my iOS version and ever since then my phone has been overheating whenever I use your app.'; + * const labels = [ 'mobile', 'billing', 'website', 'account access' ]; + * const output = await classifier(text, labels); + * // { + * // sequence: 'Last week I upgraded my iOS version and ever since then my phone has been overheating whenever I use your app.', + * // labels: [ 'mobile', 'website', 'billing', 'account access' ], + * // scores: [ 0.5562091040482018, 0.1843621307860853, 0.13942646639336376, 0.12000229877234923 ] + * // } + * ``` + * + * **Example:** Zero shot classification with `Xenova/nli-deberta-v3-xsmall` (multi-label). + * ```javascript + * const classifier = await pipeline('zero-shot-classification', 'Xenova/nli-deberta-v3-xsmall'); + * const text = 'I have a problem with my iphone that needs to be resolved asap!'; + * const labels = [ 'urgent', 'not urgent', 'phone', 'tablet', 'computer' ]; + * const output = await classifier(text, labels, { multi_label: true }); + * // { + * // sequence: 'I have a problem with my iphone that needs to be resolved asap!', + * // labels: [ 'urgent', 'phone', 'computer', 'tablet', 'not urgent' ], + * // scores: [ 0.9958870956360275, 0.9923963400697035, 0.002333537946160235, 0.0015134138567598765, 0.0010699384208377163 ] + * // } + * ``` + */ +export class ZeroShotClassificationPipeline extends ZeroShotClassificationPipeline_base { + label2id: { + [k: string]: any; + }; + entailment_id: any; + contradiction_id: any; + _call(texts: string | string[], candidate_labels: string | string[], options?: ZeroShotClassificationPipelineOptions): Promise; +} +declare const FeatureExtractionPipeline_base: new (options: TextPipelineConstructorArgs) => FeatureExtractionPipelineType; +/** + * @typedef {Object} FeatureExtractionPipelineOptions Parameters specific to feature extraction pipelines. + * @property {'none'|'mean'|'cls'} [pooling="none"] The pooling method to use. + * @property {boolean} [normalize=false] Whether or not to normalize the embeddings in the last dimension. + * + * @callback FeatureExtractionPipelineCallback Extract the features of the input(s). + * @param {string|string[]} texts One or several texts (or one list of texts) to get the features of. + * @param {FeatureExtractionPipelineOptions} [options] The options to use for feature extraction. + * @returns {Promise} The features computed by the model. + * + * @typedef {TextPipelineConstructorArgs & FeatureExtractionPipelineCallback & Disposable} FeatureExtractionPipelineType + */ +/** + * Feature extraction pipeline using no model head. This pipeline extracts the hidden + * states from the base transformer, which can be used as features in downstream tasks. + * + * **Example:** Run feature extraction with `bert-base-uncased` (without pooling/normalization). + * ```javascript + * const extractor = await pipeline('feature-extraction', 'Xenova/bert-base-uncased', { revision: 'default' }); + * const output = await extractor('This is a simple test.'); + * // Tensor { + * // type: 'float32', + * // data: Float32Array [0.05939924716949463, 0.021655935794115067, ...], + * // dims: [1, 8, 768] + * // } + * ``` + * + * **Example:** Run feature extraction with `bert-base-uncased` (with pooling/normalization). + * ```javascript + * const extractor = await pipeline('feature-extraction', 'Xenova/bert-base-uncased', { revision: 'default' }); + * const output = await extractor('This is a simple test.', { pooling: 'mean', normalize: true }); + * // Tensor { + * // type: 'float32', + * // data: Float32Array [0.03373778983950615, -0.010106077417731285, ...], + * // dims: [1, 768] + * // } + * ``` + * + * **Example:** Calculating embeddings with `sentence-transformers` models. + * ```javascript + * const extractor = await pipeline('feature-extraction', 'Xenova/all-MiniLM-L6-v2'); + * const output = await extractor('This is a simple test.', { pooling: 'mean', normalize: true }); + * // Tensor { + * // type: 'float32', + * // data: Float32Array [0.09094982594251633, -0.014774246141314507, ...], + * // dims: [1, 384] + * // } + * ``` + */ +export class FeatureExtractionPipeline extends FeatureExtractionPipeline_base { + _call(texts: string | string[], options?: FeatureExtractionPipelineOptions): Promise; +} +declare const AudioClassificationPipeline_base: new (options: AudioPipelineConstructorArgs) => AudioClassificationPipelineType; +/** + * @typedef {Object} AudioClassificationSingle + * @property {string} label The label predicted. + * @property {number} score The corresponding probability. + * @typedef {AudioClassificationSingle[]} AudioClassificationOutput + * + * @typedef {Object} AudioClassificationPipelineOptions Parameters specific to audio classification pipelines. + * @property {number} [topk=null] The number of top labels that will be returned by the pipeline. + * If the provided number is `null` or higher than the number of labels available in the model configuration, + * it will default to the number of labels. + * + * @callback AudioClassificationPipelineCallback Classify the sequence(s) given as inputs. + * @param {AudioPipelineInputs} audio The input audio file(s) to be classified. The input is either: + * - `string` or `URL` that is the filename/URL of the audio file, the file will be read at the processor's sampling rate + * to get the waveform using the [`AudioContext`](https://developer.mozilla.org/en-US/docs/Web/API/AudioContext) API. + * If `AudioContext` is not available, you should pass the raw waveform in as a Float32Array of shape `(n, )`. + * - `Float32Array` or `Float64Array` of shape `(n, )`, representing the raw audio at the correct sampling rate (no further check will be done). + * @param {AudioClassificationPipelineOptions} [options] The options to use for audio classification. + * @returns {Promise} An array or object containing the predicted labels and scores. + * + * @typedef {AudioPipelineConstructorArgs & AudioClassificationPipelineCallback & Disposable} AudioClassificationPipelineType + */ +/** + * Audio classification pipeline using any `AutoModelForAudioClassification`. + * This pipeline predicts the class of a raw waveform or an audio file. + * + * **Example:** Perform audio classification with `Xenova/wav2vec2-large-xlsr-53-gender-recognition-librispeech`. + * ```javascript + * const classifier = await pipeline('audio-classification', 'Xenova/wav2vec2-large-xlsr-53-gender-recognition-librispeech'); + * const url = 'https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main/jfk.wav'; + * const output = await classifier(url); + * // [ + * // { label: 'male', score: 0.9981542229652405 }, + * // { label: 'female', score: 0.001845747814513743 } + * // ] + * ``` + * + * **Example:** Perform audio classification with `Xenova/ast-finetuned-audioset-10-10-0.4593` and return top 4 results. + * ```javascript + * const classifier = await pipeline('audio-classification', 'Xenova/ast-finetuned-audioset-10-10-0.4593'); + * const url = 'https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main/cat_meow.wav'; + * const output = await classifier(url, { topk: 4 }); + * // [ + * // { label: 'Meow', score: 0.5617874264717102 }, + * // { label: 'Cat', score: 0.22365376353263855 }, + * // { label: 'Domestic animals, pets', score: 0.1141069084405899 }, + * // { label: 'Animal', score: 0.08985692262649536 }, + * // ] + * ``` + */ +export class AudioClassificationPipeline extends AudioClassificationPipeline_base { + _call(audio: AudioPipelineInputs, options?: AudioClassificationPipelineOptions): Promise; +} +declare const ZeroShotAudioClassificationPipeline_base: new (options: TextAudioPipelineConstructorArgs) => ZeroShotAudioClassificationPipelineType; +/** + * @typedef {Object} ZeroShotAudioClassificationOutput + * @property {string} label The label identified by the model. It is one of the suggested `candidate_label`. + * @property {number} score The score attributed by the model for that label (between 0 and 1). + * + * @typedef {Object} ZeroShotAudioClassificationPipelineOptions Parameters specific to zero-shot audio classification pipelines. + * @property {string} [hypothesis_template="This is a sound of {}."] The sentence used in conjunction with `candidate_labels` + * to attempt the audio classification by replacing the placeholder with the candidate_labels. + * Then likelihood is estimated by using `logits_per_audio`. + * + * @callback ZeroShotAudioClassificationPipelineCallback Classify the sequence(s) given as inputs. + * @param {AudioPipelineInputs} audio The input audio file(s) to be classified. The input is either: + * - `string` or `URL` that is the filename/URL of the audio file, the file will be read at the processor's sampling rate + * to get the waveform using the [`AudioContext`](https://developer.mozilla.org/en-US/docs/Web/API/AudioContext) API. + * If `AudioContext` is not available, you should pass the raw waveform in as a Float32Array of shape `(n, )`. + * - `Float32Array` or `Float64Array` of shape `(n, )`, representing the raw audio at the correct sampling rate (no further check will be done). + * @param {string[]} candidate_labels The candidate labels for this audio. + * @param {ZeroShotAudioClassificationPipelineOptions} [options] The options to use for zero-shot audio classification. + * @returns {Promise} An array of objects containing the predicted labels and scores. + * + * @typedef {TextAudioPipelineConstructorArgs & ZeroShotAudioClassificationPipelineCallback & Disposable} ZeroShotAudioClassificationPipelineType + */ +/** + * Zero shot audio classification pipeline using `ClapModel`. This pipeline predicts the class of an audio when you + * provide an audio and a set of `candidate_labels`. + * + * **Example**: Perform zero-shot audio classification with `Xenova/clap-htsat-unfused`. + * ```javascript + * const classifier = await pipeline('zero-shot-audio-classification', 'Xenova/clap-htsat-unfused'); + * const audio = 'https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main/dog_barking.wav'; + * const candidate_labels = ['dog', 'vaccum cleaner']; + * const scores = await classifier(audio, candidate_labels); + * // [ + * // { score: 0.9993992447853088, label: 'dog' }, + * // { score: 0.0006007603369653225, label: 'vaccum cleaner' } + * // ] + * ``` + */ +export class ZeroShotAudioClassificationPipeline extends ZeroShotAudioClassificationPipeline_base { + _call(audio: AudioPipelineInputs, candidate_labels: string[], options?: ZeroShotAudioClassificationPipelineOptions): Promise; +} +declare const AutomaticSpeechRecognitionPipeline_base: new (options: TextAudioPipelineConstructorArgs) => AutomaticSpeechRecognitionPipelineType; +/** + * @typedef {{stride: number[], input_features: Tensor, is_last: boolean, tokens?: number[], token_timestamps?: number[]}} ChunkCallbackItem + * @callback ChunkCallback + * @param {ChunkCallbackItem} chunk The chunk to process. + */ +/** + * @typedef {Object} Chunk + * @property {[number, number]} timestamp The start and end timestamp of the chunk in seconds. + * @property {string} text The recognized text. + */ +/** + * @typedef {Object} AutomaticSpeechRecognitionOutput + * @property {string} text The recognized text. + * @property {Chunk[]} [chunks] When using `return_timestamps`, the `chunks` will become a list + * containing all the various text chunks identified by the model. + * + * @typedef {Object} AutomaticSpeechRecognitionSpecificParams Parameters specific to automatic-speech-recognition pipelines. + * @property {boolean|'word'} [kwargs.return_timestamps] Whether to return timestamps or not. Default is `false`. + * @property {number} [kwargs.chunk_length_s] The length of audio chunks to process in seconds. Default is 0 (no chunking). + * @property {number} [kwargs.stride_length_s] The length of overlap between consecutive audio chunks in seconds. If not provided, defaults to `chunk_length_s / 6`. + * @property {ChunkCallback} [kwargs.chunk_callback] Callback function to be called with each chunk processed. + * @property {boolean} [kwargs.force_full_sequences] Whether to force outputting full sequences or not. Default is `false`. + * @property {string} [kwargs.language] The source language. Default is `null`, meaning it should be auto-detected. Use this to potentially improve performance if the source language is known. + * @property {string} [kwargs.task] The task to perform. Default is `null`, meaning it should be auto-detected. + * @property {number[][]} [kwargs.forced_decoder_ids] A list of pairs of integers which indicates a mapping from generation indices to token indices + * that will be forced before sampling. For example, [[1, 123]] means the second generated token will always be a token of index 123. + * @property {number} [num_frames] The number of frames in the input audio. + * @typedef {import('./utils/generation.js').GenerationConfigType & AutomaticSpeechRecognitionSpecificParams} AutomaticSpeechRecognitionConfig + * + * @callback AutomaticSpeechRecognitionPipelineCallback Transcribe the audio sequence(s) given as inputs to text. + * @param {AudioPipelineInputs} audio The input audio file(s) to be transcribed. The input is either: + * - `string` or `URL` that is the filename/URL of the audio file, the file will be read at the processor's sampling rate + * to get the waveform using the [`AudioContext`](https://developer.mozilla.org/en-US/docs/Web/API/AudioContext) API. + * If `AudioContext` is not available, you should pass the raw waveform in as a Float32Array of shape `(n, )`. + * - `Float32Array` or `Float64Array` of shape `(n, )`, representing the raw audio at the correct sampling rate (no further check will be done). + * @param {AutomaticSpeechRecognitionConfig} [options] Additional keyword arguments to pass along to the generate method of the model. + * @returns {Promise} An object containing the transcription text and optionally timestamps if `return_timestamps` is `true`. + * + * @typedef {TextAudioPipelineConstructorArgs & AutomaticSpeechRecognitionPipelineCallback & Disposable} AutomaticSpeechRecognitionPipelineType + */ +/** + * Pipeline that aims at extracting spoken text contained within some audio. + * + * **Example:** Transcribe English. + * ```javascript + * const transcriber = await pipeline('automatic-speech-recognition', 'Xenova/whisper-tiny.en'); + * const url = 'https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main/jfk.wav'; + * const output = await transcriber(url); + * // { text: " And so my fellow Americans ask not what your country can do for you, ask what you can do for your country." } + * ``` + * + * **Example:** Transcribe English w/ timestamps. + * ```javascript + * const transcriber = await pipeline('automatic-speech-recognition', 'Xenova/whisper-tiny.en'); + * const url = 'https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main/jfk.wav'; + * const output = await transcriber(url, { return_timestamps: true }); + * // { + * // text: " And so my fellow Americans ask not what your country can do for you, ask what you can do for your country." + * // chunks: [ + * // { timestamp: [0, 8], text: " And so my fellow Americans ask not what your country can do for you" } + * // { timestamp: [8, 11], text: " ask what you can do for your country." } + * // ] + * // } + * ``` + * + * **Example:** Transcribe English w/ word-level timestamps. + * ```javascript + * const transcriber = await pipeline('automatic-speech-recognition', 'Xenova/whisper-tiny.en'); + * const url = 'https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main/jfk.wav'; + * const output = await transcriber(url, { return_timestamps: 'word' }); + * // { + * // "text": " And so my fellow Americans ask not what your country can do for you ask what you can do for your country.", + * // "chunks": [ + * // { "text": " And", "timestamp": [0, 0.78] }, + * // { "text": " so", "timestamp": [0.78, 1.06] }, + * // { "text": " my", "timestamp": [1.06, 1.46] }, + * // ... + * // { "text": " for", "timestamp": [9.72, 9.92] }, + * // { "text": " your", "timestamp": [9.92, 10.22] }, + * // { "text": " country.", "timestamp": [10.22, 13.5] } + * // ] + * // } + * ``` + * + * **Example:** Transcribe French. + * ```javascript + * const transcriber = await pipeline('automatic-speech-recognition', 'Xenova/whisper-small'); + * const url = 'https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main/french-audio.mp3'; + * const output = await transcriber(url, { language: 'french', task: 'transcribe' }); + * // { text: " J'adore, j'aime, je n'aime pas, je déteste." } + * ``` + * + * **Example:** Translate French to English. + * ```javascript + * const transcriber = await pipeline('automatic-speech-recognition', 'Xenova/whisper-small'); + * const url = 'https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main/french-audio.mp3'; + * const output = await transcriber(url, { language: 'french', task: 'translate' }); + * // { text: " I love, I like, I don't like, I hate." } + * ``` + * + * **Example:** Transcribe/translate audio longer than 30 seconds. + * ```javascript + * const transcriber = await pipeline('automatic-speech-recognition', 'Xenova/whisper-tiny.en'); + * const url = 'https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main/ted_60.wav'; + * const output = await transcriber(url, { chunk_length_s: 30, stride_length_s: 5 }); + * // { text: " So in college, I was a government major, which means [...] So I'd start off light and I'd bump it up" } + * ``` + */ +export class AutomaticSpeechRecognitionPipeline extends AutomaticSpeechRecognitionPipeline_base { + _call(audio: AudioPipelineInputs, options?: AutomaticSpeechRecognitionConfig): Promise; + /** + * @type {AutomaticSpeechRecognitionPipelineCallback} + * @private + */ + private _call_wav2vec2; + /** + * @type {AutomaticSpeechRecognitionPipelineCallback} + * @private + */ + private _call_whisper; +} +declare const ImageToTextPipeline_base: new (options: TextImagePipelineConstructorArgs) => ImageToTextPipelineType; +/** + * @typedef {Object} ImageToTextSingle + * @property {string} generated_text The generated text. + * @typedef {ImageToTextSingle[]} ImageToTextOutput + * + * @callback ImageToTextPipelineCallback Assign labels to the image(s) passed as inputs. + * @param {ImagePipelineInputs} texts The images to be captioned. + * @param {import('./utils/generation.js').GenerationConfigType} [options] Additional keyword arguments to pass along to the generate method of the model. + * @returns {Promise} An object (or array of objects) containing the generated text(s). + * + * @typedef {TextImagePipelineConstructorArgs & ImageToTextPipelineCallback & Disposable} ImageToTextPipelineType + */ +/** + * Image To Text pipeline using a `AutoModelForVision2Seq`. This pipeline predicts a caption for a given image. + * + * **Example:** Generate a caption for an image w/ `Xenova/vit-gpt2-image-captioning`. + * ```javascript + * const captioner = await pipeline('image-to-text', 'Xenova/vit-gpt2-image-captioning'); + * const url = 'https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main/cats.jpg'; + * const output = await captioner(url); + * // [{ generated_text: 'a cat laying on a couch with another cat' }] + * ``` + * + * **Example:** Optical Character Recognition (OCR) w/ `Xenova/trocr-small-handwritten`. + * ```javascript + * const captioner = await pipeline('image-to-text', 'Xenova/trocr-small-handwritten'); + * const url = 'https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main/handwriting.jpg'; + * const output = await captioner(url); + * // [{ generated_text: 'Mr. Brown commented icily.' }] + * ``` + */ +export class ImageToTextPipeline extends ImageToTextPipeline_base { + _call(texts: ImagePipelineInputs, options?: import('./utils/generation.js').GenerationConfigType): Promise; +} +declare const ImageClassificationPipeline_base: new (options: ImagePipelineConstructorArgs) => ImageClassificationPipelineType; +/** + * @typedef {Object} ImageClassificationSingle + * @property {string} label The label identified by the model. + * @property {number} score The score attributed by the model for that label. + * @typedef {ImageClassificationSingle[]} ImageClassificationOutput + * + * @typedef {Object} ImageClassificationPipelineOptions Parameters specific to image classification pipelines. + * @property {number} [topk=1] The number of top labels that will be returned by the pipeline. + * + * @callback ImageClassificationPipelineCallback Assign labels to the image(s) passed as inputs. + * @param {ImagePipelineInputs} images The input images(s) to be classified. + * @param {ImageClassificationPipelineOptions} [options] The options to use for image classification. + * @returns {Promise} An array or object containing the predicted labels and scores. + * + * @typedef {ImagePipelineConstructorArgs & ImageClassificationPipelineCallback & Disposable} ImageClassificationPipelineType + */ +/** + * Image classification pipeline using any `AutoModelForImageClassification`. + * This pipeline predicts the class of an image. + * + * **Example:** Classify an image. + * ```javascript + * const classifier = await pipeline('image-classification', 'Xenova/vit-base-patch16-224'); + * const url = 'https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main/tiger.jpg'; + * const output = await classifier(url); + * // [ + * // { label: 'tiger, Panthera tigris', score: 0.632695734500885 }, + * // ] + * ``` + * + * **Example:** Classify an image and return top `n` classes. + * ```javascript + * const classifier = await pipeline('image-classification', 'Xenova/vit-base-patch16-224'); + * const url = 'https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main/tiger.jpg'; + * const output = await classifier(url, { topk: 3 }); + * // [ + * // { label: 'tiger, Panthera tigris', score: 0.632695734500885 }, + * // { label: 'tiger cat', score: 0.3634825646877289 }, + * // { label: 'lion, king of beasts, Panthera leo', score: 0.00045060308184474707 }, + * // ] + * ``` + * + * **Example:** Classify an image and return all classes. + * ```javascript + * const classifier = await pipeline('image-classification', 'Xenova/vit-base-patch16-224'); + * const url = 'https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main/tiger.jpg'; + * const output = await classifier(url, { topk: 0 }); + * // [ + * // { label: 'tiger, Panthera tigris', score: 0.632695734500885 }, + * // { label: 'tiger cat', score: 0.3634825646877289 }, + * // { label: 'lion, king of beasts, Panthera leo', score: 0.00045060308184474707 }, + * // { label: 'jaguar, panther, Panthera onca, Felis onca', score: 0.00035465499968267977 }, + * // ... + * // ] + * ``` + */ +export class ImageClassificationPipeline extends ImageClassificationPipeline_base { + _call(images: ImagePipelineInputs, options?: ImageClassificationPipelineOptions): Promise; +} +declare const ImageSegmentationPipeline_base: new (options: ImagePipelineConstructorArgs) => ImageSegmentationPipelineType; +/** + * @typedef {Object} ImageSegmentationPipelineOutput + * @property {string} label The label of the segment. + * @property {number|null} score The score of the segment. + * @property {RawImage} mask The mask of the segment. + * + * @typedef {Object} ImageSegmentationPipelineOptions Parameters specific to image segmentation pipelines. + * @property {number} [threshold=0.5] Probability threshold to filter out predicted masks. + * @property {number} [mask_threshold=0.5] Threshold to use when turning the predicted masks into binary values. + * @property {number} [overlap_mask_area_threshold=0.8] Mask overlap threshold to eliminate small, disconnected segments. + * @property {null|string} [subtask=null] Segmentation task to be performed. One of [`panoptic`, `instance`, and `semantic`], + * depending on model capabilities. If not set, the pipeline will attempt to resolve (in that order). + * @property {number[]} [label_ids_to_fuse=null] List of label ids to fuse. If not set, do not fuse any labels. + * @property {number[][]} [target_sizes=null] List of target sizes for the input images. If not set, use the original image sizes. + * + * @callback ImageSegmentationPipelineCallback Segment the input images. + * @param {ImagePipelineInputs} images The input images. + * @param {ImageSegmentationPipelineOptions} [options] The options to use for image segmentation. + * @returns {Promise} The annotated segments. + * + * @typedef {ImagePipelineConstructorArgs & ImageSegmentationPipelineCallback & Disposable} ImageSegmentationPipelineType + */ +/** + * Image segmentation pipeline using any `AutoModelForXXXSegmentation`. + * This pipeline predicts masks of objects and their classes. + * + * **Example:** Perform image segmentation with `Xenova/detr-resnet-50-panoptic`. + * ```javascript + * const segmenter = await pipeline('image-segmentation', 'Xenova/detr-resnet-50-panoptic'); + * const url = 'https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main/cats.jpg'; + * const output = await segmenter(url); + * // [ + * // { label: 'remote', score: 0.9984649419784546, mask: RawImage { ... } }, + * // { label: 'cat', score: 0.9994316101074219, mask: RawImage { ... } } + * // ] + * ``` + */ +export class ImageSegmentationPipeline extends ImageSegmentationPipeline_base { + subtasks_mapping: { + panoptic: string; + instance: string; + semantic: string; + }; + _call(images: ImagePipelineInputs, options?: ImageSegmentationPipelineOptions): Promise; +} +declare const ZeroShotImageClassificationPipeline_base: new (options: TextImagePipelineConstructorArgs) => ZeroShotImageClassificationPipelineType; +/** + * @typedef {Object} ZeroShotImageClassificationOutput + * @property {string} label The label identified by the model. It is one of the suggested `candidate_label`. + * @property {number} score The score attributed by the model for that label (between 0 and 1). + * + * @typedef {Object} ZeroShotImageClassificationPipelineOptions Parameters specific to zero-shot image classification pipelines. + * @property {string} [hypothesis_template="This is a photo of {}"] The sentence used in conjunction with `candidate_labels` + * to attempt the image classification by replacing the placeholder with the candidate_labels. + * Then likelihood is estimated by using `logits_per_image`. + * + * @callback ZeroShotImageClassificationPipelineCallback Assign labels to the image(s) passed as inputs. + * @param {ImagePipelineInputs} images The input images. + * @param {string[]} candidate_labels The candidate labels for this image. + * @param {ZeroShotImageClassificationPipelineOptions} [options] The options to use for zero-shot image classification. + * @returns {Promise} An array of objects containing the predicted labels and scores. + * + * @typedef {TextImagePipelineConstructorArgs & ZeroShotImageClassificationPipelineCallback & Disposable} ZeroShotImageClassificationPipelineType + */ +/** + * Zero shot image classification pipeline. This pipeline predicts the class of + * an image when you provide an image and a set of `candidate_labels`. + * + * **Example:** Zero shot image classification w/ `Xenova/clip-vit-base-patch32`. + * ```javascript + * const classifier = await pipeline('zero-shot-image-classification', 'Xenova/clip-vit-base-patch32'); + * const url = 'https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main/tiger.jpg'; + * const output = await classifier(url, ['tiger', 'horse', 'dog']); + * // [ + * // { score: 0.9993917942047119, label: 'tiger' }, + * // { score: 0.0003519294841680676, label: 'horse' }, + * // { score: 0.0002562698791734874, label: 'dog' } + * // ] + * ``` + */ +export class ZeroShotImageClassificationPipeline extends ZeroShotImageClassificationPipeline_base { + _call(images: ImagePipelineInputs, candidate_labels: string[], options?: ZeroShotImageClassificationPipelineOptions): Promise; +} +declare const ObjectDetectionPipeline_base: new (options: ImagePipelineConstructorArgs) => ObjectDetectionPipelineType; +/** + * @typedef {Object} ObjectDetectionPipelineSingle + * @property {string} label The class label identified by the model. + * @property {number} score The score attributed by the model for that label. + * @property {BoundingBox} box The bounding box of detected object in image's original size, or as a percentage if `percentage` is set to true. + * @typedef {ObjectDetectionPipelineSingle[]} ObjectDetectionPipelineOutput + * + * @typedef {Object} ObjectDetectionPipelineOptions Parameters specific to object detection pipelines. + * @property {number} [threshold=0.9] The threshold used to filter boxes by score. + * @property {boolean} [percentage=false] Whether to return the boxes coordinates in percentage (true) or in pixels (false). + * + * @callback ObjectDetectionPipelineCallback Detect objects (bounding boxes & classes) in the image(s) passed as inputs. + * @param {ImagePipelineInputs} images The input images. + * @param {ObjectDetectionPipelineOptions} [options] The options to use for object detection. + * @returns {Promise} A list of objects or a list of list of objects. + * + * @typedef {ImagePipelineConstructorArgs & ObjectDetectionPipelineCallback & Disposable} ObjectDetectionPipelineType + */ +/** + * Object detection pipeline using any `AutoModelForObjectDetection`. + * This pipeline predicts bounding boxes of objects and their classes. + * + * **Example:** Run object-detection with `Xenova/detr-resnet-50`. + * ```javascript + * const detector = await pipeline('object-detection', 'Xenova/detr-resnet-50'); + * const img = 'https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main/cats.jpg'; + * const output = await detector(img, { threshold: 0.9 }); + * // [{ + * // score: 0.9976370930671692, + * // label: "remote", + * // box: { xmin: 31, ymin: 68, xmax: 190, ymax: 118 } + * // }, + * // ... + * // { + * // score: 0.9984092116355896, + * // label: "cat", + * // box: { xmin: 331, ymin: 19, xmax: 649, ymax: 371 } + * // }] + * ``` + */ +export class ObjectDetectionPipeline extends ObjectDetectionPipeline_base { + _call(images: ImagePipelineInputs, options?: ObjectDetectionPipelineOptions): Promise; +} +declare const ZeroShotObjectDetectionPipeline_base: new (options: TextImagePipelineConstructorArgs) => ZeroShotObjectDetectionPipelineType; +/** + * @typedef {Object} ZeroShotObjectDetectionOutput + * @property {string} label Text query corresponding to the found object. + * @property {number} score Score corresponding to the object (between 0 and 1). + * @property {BoundingBox} box Bounding box of the detected object in image's original size, or as a percentage if `percentage` is set to true. + * + * @typedef {Object} ZeroShotObjectDetectionPipelineOptions Parameters specific to zero-shot object detection pipelines. + * @property {number} [threshold=0.1] The probability necessary to make a prediction. + * @property {number} [topk=null] The number of top predictions that will be returned by the pipeline. + * If the provided number is `null` or higher than the number of predictions available, it will default + * to the number of predictions. + * @property {boolean} [percentage=false] Whether to return the boxes coordinates in percentage (true) or in pixels (false). + * + * @callback ZeroShotObjectDetectionPipelineCallback Detect objects (bounding boxes & classes) in the image(s) passed as inputs. + * @param {ImagePipelineInputs} images The input images. + * @param {string[]} candidate_labels What the model should recognize in the image. + * @param {ZeroShotObjectDetectionPipelineOptions} [options] The options to use for zero-shot object detection. + * @returns {Promise} An array of objects containing the predicted labels, scores, and bounding boxes. + * + * @typedef {TextImagePipelineConstructorArgs & ZeroShotObjectDetectionPipelineCallback & Disposable} ZeroShotObjectDetectionPipelineType + */ +/** + * Zero-shot object detection pipeline. This pipeline predicts bounding boxes of + * objects when you provide an image and a set of `candidate_labels`. + * + * **Example:** Zero-shot object detection w/ `Xenova/owlvit-base-patch32`. + * ```javascript + * const detector = await pipeline('zero-shot-object-detection', 'Xenova/owlvit-base-patch32'); + * const url = 'https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main/astronaut.png'; + * const candidate_labels = ['human face', 'rocket', 'helmet', 'american flag']; + * const output = await detector(url, candidate_labels); + * // [ + * // { + * // score: 0.24392342567443848, + * // label: 'human face', + * // box: { xmin: 180, ymin: 67, xmax: 274, ymax: 175 } + * // }, + * // { + * // score: 0.15129457414150238, + * // label: 'american flag', + * // box: { xmin: 0, ymin: 4, xmax: 106, ymax: 513 } + * // }, + * // { + * // score: 0.13649864494800568, + * // label: 'helmet', + * // box: { xmin: 277, ymin: 337, xmax: 511, ymax: 511 } + * // }, + * // { + * // score: 0.10262022167444229, + * // label: 'rocket', + * // box: { xmin: 352, ymin: -1, xmax: 463, ymax: 287 } + * // } + * // ] + * ``` + * + * **Example:** Zero-shot object detection w/ `Xenova/owlvit-base-patch32` (returning top 4 matches and setting a threshold). + * ```javascript + * const detector = await pipeline('zero-shot-object-detection', 'Xenova/owlvit-base-patch32'); + * const url = 'https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main/beach.png'; + * const candidate_labels = ['hat', 'book', 'sunglasses', 'camera']; + * const output = await detector(url, candidate_labels, { topk: 4, threshold: 0.05 }); + * // [ + * // { + * // score: 0.1606510728597641, + * // label: 'sunglasses', + * // box: { xmin: 347, ymin: 229, xmax: 429, ymax: 264 } + * // }, + * // { + * // score: 0.08935828506946564, + * // label: 'hat', + * // box: { xmin: 38, ymin: 174, xmax: 258, ymax: 364 } + * // }, + * // { + * // score: 0.08530698716640472, + * // label: 'camera', + * // box: { xmin: 187, ymin: 350, xmax: 260, ymax: 411 } + * // }, + * // { + * // score: 0.08349756896495819, + * // label: 'book', + * // box: { xmin: 261, ymin: 280, xmax: 494, ymax: 425 } + * // } + * // ] + * ``` + */ +export class ZeroShotObjectDetectionPipeline extends ZeroShotObjectDetectionPipeline_base { + _call(images: ImagePipelineInputs, candidate_labels: string[], options?: ZeroShotObjectDetectionPipelineOptions): Promise; +} +declare const DocumentQuestionAnsweringPipeline_base: new (options: TextImagePipelineConstructorArgs) => DocumentQuestionAnsweringPipelineType; +/** + * @typedef {Object} DocumentQuestionAnsweringSingle + * @property {string} answer The generated text. + * @typedef {DocumentQuestionAnsweringSingle[]} DocumentQuestionAnsweringOutput + * + * @callback DocumentQuestionAnsweringPipelineCallback Answer the question given as input by using the document. + * @param {ImageInput} image The image of the document to use. + * @param {string} question A question to ask of the document. + * @param {import('./utils/generation.js').GenerationConfigType} [options] Additional keyword arguments to pass along to the generate method of the model. + * @returns {Promise} An object (or array of objects) containing the answer(s). + * + * @typedef {TextImagePipelineConstructorArgs & DocumentQuestionAnsweringPipelineCallback & Disposable} DocumentQuestionAnsweringPipelineType + */ +/** + * Document Question Answering pipeline using any `AutoModelForDocumentQuestionAnswering`. + * The inputs/outputs are similar to the (extractive) question answering pipeline; however, + * the pipeline takes an image (and optional OCR'd words/boxes) as input instead of text context. + * + * **Example:** Answer questions about a document with `Xenova/donut-base-finetuned-docvqa`. + * ```javascript + * const qa_pipeline = await pipeline('document-question-answering', 'Xenova/donut-base-finetuned-docvqa'); + * const image = 'https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main/invoice.png'; + * const question = 'What is the invoice number?'; + * const output = await qa_pipeline(image, question); + * // [{ answer: 'us-001' }] + * ``` + */ +export class DocumentQuestionAnsweringPipeline extends DocumentQuestionAnsweringPipeline_base { + _call(image: ImageInput, question: string, options?: import('./utils/generation.js').GenerationConfigType): Promise; +} +declare const TextToAudioPipeline_base: new (options: TextToAudioPipelineConstructorArgs) => TextToAudioPipelineType; +/** + * @typedef {Object} VocoderOptions + * @property {PreTrainedModel} [vocoder] The vocoder used by the pipeline (if the model uses one). If not provided, use the default HifiGan vocoder. + * @typedef {TextAudioPipelineConstructorArgs & VocoderOptions} TextToAudioPipelineConstructorArgs + */ +/** + * @typedef {Object} TextToAudioOutput + * @property {Float32Array} audio The generated audio waveform. + * @property {number} sampling_rate The sampling rate of the generated audio waveform. + * + * @typedef {Object} TextToAudioPipelineOptions Parameters specific to text-to-audio pipelines. + * @property {Tensor|Float32Array|string|URL} [speaker_embeddings=null] The speaker embeddings (if the model requires it). + * + * @callback TextToAudioPipelineCallback Generates speech/audio from the inputs. + * @param {string|string[]} texts The text(s) to generate. + * @param {TextToAudioPipelineOptions} options Parameters passed to the model generation/forward method. + * @returns {Promise} An object containing the generated audio and sampling rate. + * + * @typedef {TextToAudioPipelineConstructorArgs & TextToAudioPipelineCallback & Disposable} TextToAudioPipelineType + */ +/** + * Text-to-audio generation pipeline using any `AutoModelForTextToWaveform` or `AutoModelForTextToSpectrogram`. + * This pipeline generates an audio file from an input text and optional other conditional inputs. + * + * **Example:** Generate audio from text with `Xenova/speecht5_tts`. + * ```javascript + * const synthesizer = await pipeline('text-to-speech', 'Xenova/speecht5_tts', { quantized: false }); + * const speaker_embeddings = 'https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main/speaker_embeddings.bin'; + * const out = await synthesizer('Hello, my dog is cute', { speaker_embeddings }); + * // { + * // audio: Float32Array(26112) [-0.00005657337896991521, 0.00020583874720614403, ...], + * // sampling_rate: 16000 + * // } + * ``` + * + * You can then save the audio to a .wav file with the `wavefile` package: + * ```javascript + * import wavefile from 'wavefile'; + * import fs from 'fs'; + * + * const wav = new wavefile.WaveFile(); + * wav.fromScratch(1, out.sampling_rate, '32f', out.audio); + * fs.writeFileSync('out.wav', wav.toBuffer()); + * ``` + * + * **Example:** Multilingual speech generation with `Xenova/mms-tts-fra`. See [here](https://huggingface.co/models?pipeline_tag=text-to-speech&other=vits&sort=trending) for the full list of available languages (1107). + * ```javascript + * const synthesizer = await pipeline('text-to-speech', 'Xenova/mms-tts-fra'); + * const out = await synthesizer('Bonjour'); + * // { + * // audio: Float32Array(23808) [-0.00037693005288019776, 0.0003325853613205254, ...], + * // sampling_rate: 16000 + * // } + * ``` + */ +export class TextToAudioPipeline extends TextToAudioPipeline_base { + DEFAULT_VOCODER_ID: string; + vocoder: PreTrainedModel; + _call(texts: string | string[], options: TextToAudioPipelineOptions): Promise; + _call_text_to_waveform(text_inputs: any): Promise<{ + audio: any; + sampling_rate: any; + }>; + _call_text_to_spectrogram(text_inputs: any, { speaker_embeddings }: { + speaker_embeddings: any; + }): Promise<{ + audio: any; + sampling_rate: any; + }>; +} +declare const ImageToImagePipeline_base: new (options: ImagePipelineConstructorArgs) => ImageToImagePipelineType; +/** + * @callback ImageToImagePipelineCallback Transform the image(s) passed as inputs. + * @param {ImagePipelineInputs} images The images to transform. + * @returns {Promise} The transformed image or list of images. + * + * @typedef {ImagePipelineConstructorArgs & ImageToImagePipelineCallback & Disposable} ImageToImagePipelineType + */ +/** + * Image to Image pipeline using any `AutoModelForImageToImage`. This pipeline generates an image based on a previous image input. + * + * **Example:** Super-resolution w/ `Xenova/swin2SR-classical-sr-x2-64` + * ```javascript + * const upscaler = await pipeline('image-to-image', 'Xenova/swin2SR-classical-sr-x2-64'); + * const url = 'https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main/butterfly.jpg'; + * const output = await upscaler(url); + * // RawImage { + * // data: Uint8Array(786432) [ 41, 31, 24, 43, ... ], + * // width: 512, + * // height: 512, + * // channels: 3 + * // } + * ``` + */ +export class ImageToImagePipeline extends ImageToImagePipeline_base { + _call(images: ImagePipelineInputs): Promise; +} +declare const DepthEstimationPipeline_base: new (options: ImagePipelineConstructorArgs) => DepthEstimationPipelineType; +/** + * @typedef {Object} DepthEstimationPipelineOutput + * @property {Tensor} predicted_depth The raw depth map predicted by the model. + * @property {RawImage} depth The processed depth map as an image (with the same size as the input image). + * + * @callback DepthEstimationPipelineCallback Predicts the depth for the image(s) passed as inputs. + * @param {ImagePipelineInputs} images The images to compute depth for. + * @returns {Promise} An image or a list of images containing result(s). + * + * @typedef {ImagePipelineConstructorArgs & DepthEstimationPipelineCallback & Disposable} DepthEstimationPipelineType + */ +/** + * Depth estimation pipeline using any `AutoModelForDepthEstimation`. This pipeline predicts the depth of an image. + * + * **Example:** Depth estimation w/ `Xenova/dpt-hybrid-midas` + * ```javascript + * const depth_estimator = await pipeline('depth-estimation', 'Xenova/dpt-hybrid-midas'); + * const url = 'https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main/cats.jpg'; + * const out = await depth_estimator(url); + * // { + * // predicted_depth: Tensor { + * // dims: [ 384, 384 ], + * // type: 'float32', + * // data: Float32Array(147456) [ 542.859130859375, 545.2833862304688, 546.1649169921875, ... ], + * // size: 147456 + * // }, + * // depth: RawImage { + * // data: Uint8Array(307200) [ 86, 86, 86, ... ], + * // width: 640, + * // height: 480, + * // channels: 1 + * // } + * // } + * ``` + */ +export class DepthEstimationPipeline extends DepthEstimationPipeline_base { + _call(images: ImagePipelineInputs): Promise; +} +export type ImageInput = string | RawImage | URL; +export type ImagePipelineInputs = ImageInput | ImageInput[]; +export type AudioInput = string | URL | Float32Array | Float64Array; +export type AudioPipelineInputs = AudioInput | AudioInput[]; +export type BoundingBox = { + /** + * The minimum x coordinate of the bounding box. + */ + xmin: number; + /** + * The minimum y coordinate of the bounding box. + */ + ymin: number; + /** + * The maximum x coordinate of the bounding box. + */ + xmax: number; + /** + * The maximum y coordinate of the bounding box. + */ + ymax: number; +}; +export type TaskType = keyof typeof SUPPORTED_TASKS; +export type AliasType = keyof typeof TASK_ALIASES; +/** + * All possible pipeline types. + */ +export type PipelineType = TaskType | AliasType; +/** + * A mapping of pipeline names to their corresponding pipeline classes. + */ +export type SupportedTasks = { + "text-classification": TextClassificationPipeline; + "token-classification": TokenClassificationPipeline; + "question-answering": QuestionAnsweringPipeline; + "fill-mask": FillMaskPipeline; + summarization: SummarizationPipeline; + translation: TranslationPipeline; + "text2text-generation": Text2TextGenerationPipeline; + "text-generation": TextGenerationPipeline; + "zero-shot-classification": ZeroShotClassificationPipeline; + "audio-classification": AudioClassificationPipeline; + "zero-shot-audio-classification": ZeroShotAudioClassificationPipeline; + "automatic-speech-recognition": AutomaticSpeechRecognitionPipeline; + "text-to-audio": TextToAudioPipeline; + "image-to-text": ImageToTextPipeline; + "image-classification": ImageClassificationPipeline; + "image-segmentation": ImageSegmentationPipeline; + "zero-shot-image-classification": ZeroShotImageClassificationPipeline; + "object-detection": ObjectDetectionPipeline; + "zero-shot-object-detection": ZeroShotObjectDetectionPipeline; + "document-question-answering": DocumentQuestionAnsweringPipeline; + "image-to-image": ImageToImagePipeline; + "depth-estimation": DepthEstimationPipeline; + "feature-extraction": FeatureExtractionPipeline; +}; +/** + * A mapping from pipeline aliases to their corresponding pipeline classes. + */ +export type AliasTasks = { + "sentiment-analysis": TextClassificationPipeline; + ner: TokenClassificationPipeline; + asr: AutomaticSpeechRecognitionPipeline; + "text-to-speech": TextToAudioPipeline; + embeddings: FeatureExtractionPipeline; +}; +/** + * A mapping from all pipeline names and aliases to their corresponding pipeline classes. + */ +export type AllTasks = SupportedTasks & AliasTasks; +/** + * Disposes the item. + */ +export type DisposeType = () => Promise; +export type Disposable = { + /** + * A promise that resolves when the pipeline has been disposed. + */ + dispose: DisposeType; +}; +export type ModelTokenizerConstructorArgs = { + /** + * The task of the pipeline. Useful for specifying subtasks. + */ + task: string; + /** + * The model used by the pipeline. + */ + model: PreTrainedModel; + /** + * The tokenizer used by the pipeline. + */ + tokenizer: PreTrainedTokenizer; +}; +/** + * An object used to instantiate a text-based pipeline. + */ +export type TextPipelineConstructorArgs = ModelTokenizerConstructorArgs; +export type ModelProcessorConstructorArgs = { + /** + * The task of the pipeline. Useful for specifying subtasks. + */ + task: string; + /** + * The model used by the pipeline. + */ + model: PreTrainedModel; + /** + * The processor used by the pipeline. + */ + processor: Processor; +}; +/** + * An object used to instantiate an audio-based pipeline. + */ +export type AudioPipelineConstructorArgs = ModelProcessorConstructorArgs; +/** + * An object used to instantiate an image-based pipeline. + */ +export type ImagePipelineConstructorArgs = ModelProcessorConstructorArgs; +export type ModelTokenizerProcessorConstructorArgs = { + /** + * The task of the pipeline. Useful for specifying subtasks. + */ + task: string; + /** + * The model used by the pipeline. + */ + model: PreTrainedModel; + /** + * The tokenizer used by the pipeline. + */ + tokenizer: PreTrainedTokenizer; + /** + * The processor used by the pipeline. + */ + processor: Processor; +}; +/** + * An object used to instantiate a text- and audio-based pipeline. + */ +export type TextAudioPipelineConstructorArgs = ModelTokenizerProcessorConstructorArgs; +/** + * An object used to instantiate a text- and image-based pipeline. + */ +export type TextImagePipelineConstructorArgs = ModelTokenizerProcessorConstructorArgs; +export type TextClassificationSingle = { + /** + * The label predicted. + */ + label: string; + /** + * The corresponding probability. + */ + score: number; +}; +export type TextClassificationOutput = TextClassificationSingle[]; +/** + * Parameters specific to text classification pipelines. + */ +export type TextClassificationPipelineOptions = { + /** + * The number of top predictions to be returned. + */ + topk?: number; +}; +/** + * Classify the text(s) given as inputs. + */ +export type TextClassificationPipelineCallback = (texts: string | string[], options?: TextClassificationPipelineOptions) => Promise; +export type TextClassificationPipelineType = TextPipelineConstructorArgs & TextClassificationPipelineCallback & Disposable; +export type TokenClassificationSingle = { + /** + * The token/word classified. This is obtained by decoding the selected tokens. + */ + word: string; + /** + * The corresponding probability for `entity`. + */ + score: number; + /** + * The entity predicted for that token/word. + */ + entity: string; + /** + * The index of the corresponding token in the sentence. + */ + index: number; + /** + * The index of the start of the corresponding entity in the sentence. + */ + start?: number; + /** + * The index of the end of the corresponding entity in the sentence. + */ + end?: number; +}; +export type TokenClassificationOutput = TokenClassificationSingle[]; +/** + * Parameters specific to token classification pipelines. + */ +export type TokenClassificationPipelineOptions = { + /** + * A list of labels to ignore. + */ + ignore_labels?: string[]; +}; +/** + * Classify each token of the text(s) given as inputs. + */ +export type TokenClassificationPipelineCallback = (texts: string | string[], options?: TokenClassificationPipelineOptions) => Promise; +export type TokenClassificationPipelineType = TextPipelineConstructorArgs & TokenClassificationPipelineCallback & Disposable; +export type QuestionAnsweringOutput = { + /** + * The probability associated to the answer. + */ + score: number; + /** + * The character start index of the answer (in the tokenized version of the input). + */ + start?: number; + /** + * The character end index of the answer (in the tokenized version of the input). + */ + end?: number; + /** + * The answer to the question. + */ + answer: string; +}; +/** + * Parameters specific to question answering pipelines. + */ +export type QuestionAnsweringPipelineOptions = { + /** + * The number of top answer predictions to be returned. + */ + topk?: number; +}; +/** + * Answer the question(s) given as inputs by using the context(s). + */ +export type QuestionAnsweringPipelineCallback = (question: string | string[], context: string | string[], options?: QuestionAnsweringPipelineOptions) => Promise; +export type QuestionAnsweringPipelineType = TextPipelineConstructorArgs & QuestionAnsweringPipelineCallback & Disposable; +export type FillMaskSingle = { + /** + * The corresponding input with the mask token prediction. + */ + sequence: string; + /** + * The corresponding probability. + */ + score: number; + /** + * The predicted token id (to replace the masked one). + */ + token: number; + /** + * The predicted token (to replace the masked one). + */ + token_str: string; +}; +export type FillMaskOutput = FillMaskSingle[]; +/** + * Parameters specific to fill mask pipelines. + */ +export type FillMaskPipelineOptions = { + /** + * When passed, overrides the number of predictions to return. + */ + topk?: number; +}; +/** + * Fill the masked token in the text(s) given as inputs. + */ +export type FillMaskPipelineCallback = (texts: string | string[], options?: FillMaskPipelineOptions) => Promise; +export type FillMaskPipelineType = TextPipelineConstructorArgs & FillMaskPipelineCallback & Disposable; +export type Text2TextGenerationSingle = { + /** + * The generated text. + */ + generated_text: string; +}; +export type Text2TextGenerationOutput = Text2TextGenerationSingle[]; +/** + * Generate the output text(s) using text(s) given as inputs. + */ +export type Text2TextGenerationPipelineCallback = (texts: string | string[], options?: import('./utils/generation.js').GenerationConfigType) => Promise; +export type Text2TextGenerationPipelineType = TextPipelineConstructorArgs & Text2TextGenerationPipelineCallback & Disposable; +export type SummarizationSingle = { + /** + * The summary text. + */ + summary_text: string; +}; +export type SummarizationOutput = SummarizationSingle[]; +/** + * Summarize the text(s) given as inputs. + */ +export type SummarizationPipelineCallback = (texts: string | string[], options?: import('./utils/generation.js').GenerationConfigType) => Promise; +export type SummarizationPipelineType = TextPipelineConstructorArgs & SummarizationPipelineCallback & Disposable; +export type TranslationSingle = { + /** + * The translated text. + */ + translation_text: string; +}; +export type TranslationOutput = TranslationSingle[]; +/** + * Translate the text(s) given as inputs. + */ +export type TranslationPipelineCallback = (texts: string | string[], options?: import('./utils/generation.js').GenerationConfigType) => Promise; +export type TranslationPipelineType = TextPipelineConstructorArgs & TranslationPipelineCallback & Disposable; +export type TextGenerationSingle = { + /** + * The generated text. + */ + generated_text: string; +}; +export type TextGenerationOutput = TextGenerationSingle[]; +/** + * Parameters specific to text-generation pipelines. + */ +export type TextGenerationSpecificParams = { + /** + * Whether or not to add special tokens when tokenizing the sequences. + */ + add_special_tokens?: boolean; +}; +export type TextGenerationConfig = import('./utils/generation.js').GenerationConfigType & TextGenerationSpecificParams; +/** + * Complete the prompt(s) given as inputs. + */ +export type TextGenerationPipelineCallback = (texts: string | string[], options?: TextGenerationConfig) => Promise; +export type TextGenerationPipelineType = TextPipelineConstructorArgs & TextGenerationPipelineCallback & Disposable; +export type ZeroShotClassificationOutput = { + /** + * The sequence for which this is the output. + */ + sequence: string; + /** + * The labels sorted by order of likelihood. + */ + labels: string[]; + /** + * The probabilities for each of the labels. + */ + scores: number[]; +}; +/** + * Parameters specific to zero-shot classification pipelines. + */ +export type ZeroShotClassificationPipelineOptions = { + /** + * The template used to turn each + * candidate label into an NLI-style hypothesis. The candidate label will replace the {} placeholder. + */ + hypothesis_template?: string; + /** + * Whether or not multiple candidate labels can be true. + * If `false`, the scores are normalized such that the sum of the label likelihoods for each sequence + * is 1. If `true`, the labels are considered independent and probabilities are normalized for each + * candidate by doing a softmax of the entailment score vs. the contradiction score. + */ + multi_label?: boolean; +}; +/** + * Classify the sequence(s) given as inputs. + */ +export type ZeroShotClassificationPipelineCallback = (texts: string | string[], candidate_labels: string | string[], options?: ZeroShotClassificationPipelineOptions) => Promise; +export type ZeroShotClassificationPipelineType = TextPipelineConstructorArgs & ZeroShotClassificationPipelineCallback & Disposable; +/** + * Parameters specific to feature extraction pipelines. + */ +export type FeatureExtractionPipelineOptions = { + /** + * The pooling method to use. + */ + pooling?: 'none' | 'mean' | 'cls'; + /** + * Whether or not to normalize the embeddings in the last dimension. + */ + normalize?: boolean; +}; +/** + * Extract the features of the input(s). + */ +export type FeatureExtractionPipelineCallback = (texts: string | string[], options?: FeatureExtractionPipelineOptions) => Promise; +export type FeatureExtractionPipelineType = TextPipelineConstructorArgs & FeatureExtractionPipelineCallback & Disposable; +export type AudioClassificationSingle = { + /** + * The label predicted. + */ + label: string; + /** + * The corresponding probability. + */ + score: number; +}; +export type AudioClassificationOutput = AudioClassificationSingle[]; +/** + * Parameters specific to audio classification pipelines. + */ +export type AudioClassificationPipelineOptions = { + /** + * The number of top labels that will be returned by the pipeline. + * If the provided number is `null` or higher than the number of labels available in the model configuration, + * it will default to the number of labels. + */ + topk?: number; +}; +/** + * Classify the sequence(s) given as inputs. + */ +export type AudioClassificationPipelineCallback = (audio: AudioPipelineInputs, options?: AudioClassificationPipelineOptions) => Promise; +export type AudioClassificationPipelineType = AudioPipelineConstructorArgs & AudioClassificationPipelineCallback & Disposable; +export type ZeroShotAudioClassificationOutput = { + /** + * The label identified by the model. It is one of the suggested `candidate_label`. + */ + label: string; + /** + * The score attributed by the model for that label (between 0 and 1). + */ + score: number; +}; +/** + * Parameters specific to zero-shot audio classification pipelines. + */ +export type ZeroShotAudioClassificationPipelineOptions = { + /** + * The sentence used in conjunction with `candidate_labels` + * to attempt the audio classification by replacing the placeholder with the candidate_labels. + * Then likelihood is estimated by using `logits_per_audio`. + */ + hypothesis_template?: string; +}; +/** + * Classify the sequence(s) given as inputs. + */ +export type ZeroShotAudioClassificationPipelineCallback = (audio: AudioPipelineInputs, candidate_labels: string[], options?: ZeroShotAudioClassificationPipelineOptions) => Promise; +export type ZeroShotAudioClassificationPipelineType = TextAudioPipelineConstructorArgs & ZeroShotAudioClassificationPipelineCallback & Disposable; +export type ChunkCallbackItem = { + stride: number[]; + input_features: Tensor; + is_last: boolean; + tokens?: number[]; + token_timestamps?: number[]; +}; +export type ChunkCallback = (chunk: ChunkCallbackItem) => any; +export type Chunk = { + /** + * The start and end timestamp of the chunk in seconds. + */ + timestamp: [number, number]; + /** + * The recognized text. + */ + text: string; +}; +export type AutomaticSpeechRecognitionOutput = { + /** + * The recognized text. + */ + text: string; + /** + * When using `return_timestamps`, the `chunks` will become a list + * containing all the various text chunks identified by the model. + */ + chunks?: Chunk[]; +}; +/** + * Parameters specific to automatic-speech-recognition pipelines. + */ +export type AutomaticSpeechRecognitionSpecificParams = { + /** + * Whether to return timestamps or not. Default is `false`. + */ + return_timestamps?: boolean | 'word'; + /** + * The length of audio chunks to process in seconds. Default is 0 (no chunking). + */ + chunk_length_s?: number; + /** + * The length of overlap between consecutive audio chunks in seconds. If not provided, defaults to `chunk_length_s / 6`. + */ + stride_length_s?: number; + /** + * Callback function to be called with each chunk processed. + */ + chunk_callback?: ChunkCallback; + /** + * Whether to force outputting full sequences or not. Default is `false`. + */ + force_full_sequences?: boolean; + /** + * The source language. Default is `null`, meaning it should be auto-detected. Use this to potentially improve performance if the source language is known. + */ + language?: string; + /** + * The task to perform. Default is `null`, meaning it should be auto-detected. + */ + task?: string; + /** + * A list of pairs of integers which indicates a mapping from generation indices to token indices + * that will be forced before sampling. For example, [[1, 123]] means the second generated token will always be a token of index 123. + */ + forced_decoder_ids?: number[][]; + /** + * The number of frames in the input audio. + */ + num_frames?: number; +}; +export type AutomaticSpeechRecognitionConfig = import('./utils/generation.js').GenerationConfigType & AutomaticSpeechRecognitionSpecificParams; +/** + * Transcribe the audio sequence(s) given as inputs to text. + */ +export type AutomaticSpeechRecognitionPipelineCallback = (audio: AudioPipelineInputs, options?: AutomaticSpeechRecognitionConfig) => Promise; +export type AutomaticSpeechRecognitionPipelineType = TextAudioPipelineConstructorArgs & AutomaticSpeechRecognitionPipelineCallback & Disposable; +export type ImageToTextSingle = { + /** + * The generated text. + */ + generated_text: string; +}; +export type ImageToTextOutput = ImageToTextSingle[]; +/** + * Assign labels to the image(s) passed as inputs. + */ +export type ImageToTextPipelineCallback = (texts: ImagePipelineInputs, options?: import('./utils/generation.js').GenerationConfigType) => Promise; +export type ImageToTextPipelineType = TextImagePipelineConstructorArgs & ImageToTextPipelineCallback & Disposable; +export type ImageClassificationSingle = { + /** + * The label identified by the model. + */ + label: string; + /** + * The score attributed by the model for that label. + */ + score: number; +}; +export type ImageClassificationOutput = ImageClassificationSingle[]; +/** + * Parameters specific to image classification pipelines. + */ +export type ImageClassificationPipelineOptions = { + /** + * The number of top labels that will be returned by the pipeline. + */ + topk?: number; +}; +/** + * Assign labels to the image(s) passed as inputs. + */ +export type ImageClassificationPipelineCallback = (images: ImagePipelineInputs, options?: ImageClassificationPipelineOptions) => Promise; +export type ImageClassificationPipelineType = ImagePipelineConstructorArgs & ImageClassificationPipelineCallback & Disposable; +export type ImageSegmentationPipelineOutput = { + /** + * The label of the segment. + */ + label: string; + /** + * The score of the segment. + */ + score: number | null; + /** + * The mask of the segment. + */ + mask: RawImage; +}; +/** + * Parameters specific to image segmentation pipelines. + */ +export type ImageSegmentationPipelineOptions = { + /** + * Probability threshold to filter out predicted masks. + */ + threshold?: number; + /** + * Threshold to use when turning the predicted masks into binary values. + */ + mask_threshold?: number; + /** + * Mask overlap threshold to eliminate small, disconnected segments. + */ + overlap_mask_area_threshold?: number; + /** + * Segmentation task to be performed. One of [`panoptic`, `instance`, and `semantic`], + * depending on model capabilities. If not set, the pipeline will attempt to resolve (in that order). + */ + subtask?: null | string; + /** + * List of label ids to fuse. If not set, do not fuse any labels. + */ + label_ids_to_fuse?: number[]; + /** + * List of target sizes for the input images. If not set, use the original image sizes. + */ + target_sizes?: number[][]; +}; +/** + * Segment the input images. + */ +export type ImageSegmentationPipelineCallback = (images: ImagePipelineInputs, options?: ImageSegmentationPipelineOptions) => Promise; +export type ImageSegmentationPipelineType = ImagePipelineConstructorArgs & ImageSegmentationPipelineCallback & Disposable; +export type ZeroShotImageClassificationOutput = { + /** + * The label identified by the model. It is one of the suggested `candidate_label`. + */ + label: string; + /** + * The score attributed by the model for that label (between 0 and 1). + */ + score: number; +}; +/** + * Parameters specific to zero-shot image classification pipelines. + */ +export type ZeroShotImageClassificationPipelineOptions = { + /** + * The sentence used in conjunction with `candidate_labels` + * to attempt the image classification by replacing the placeholder with the candidate_labels. + * Then likelihood is estimated by using `logits_per_image`. + */ + hypothesis_template?: string; +}; +/** + * Assign labels to the image(s) passed as inputs. + */ +export type ZeroShotImageClassificationPipelineCallback = (images: ImagePipelineInputs, candidate_labels: string[], options?: ZeroShotImageClassificationPipelineOptions) => Promise; +export type ZeroShotImageClassificationPipelineType = TextImagePipelineConstructorArgs & ZeroShotImageClassificationPipelineCallback & Disposable; +export type ObjectDetectionPipelineSingle = { + /** + * The class label identified by the model. + */ + label: string; + /** + * The score attributed by the model for that label. + */ + score: number; + /** + * The bounding box of detected object in image's original size, or as a percentage if `percentage` is set to true. + */ + box: BoundingBox; +}; +export type ObjectDetectionPipelineOutput = ObjectDetectionPipelineSingle[]; +/** + * Parameters specific to object detection pipelines. + */ +export type ObjectDetectionPipelineOptions = { + /** + * The threshold used to filter boxes by score. + */ + threshold?: number; + /** + * Whether to return the boxes coordinates in percentage (true) or in pixels (false). + */ + percentage?: boolean; +}; +/** + * Detect objects (bounding boxes & classes) in the image(s) passed as inputs. + */ +export type ObjectDetectionPipelineCallback = (images: ImagePipelineInputs, options?: ObjectDetectionPipelineOptions) => Promise; +export type ObjectDetectionPipelineType = ImagePipelineConstructorArgs & ObjectDetectionPipelineCallback & Disposable; +export type ZeroShotObjectDetectionOutput = { + /** + * Text query corresponding to the found object. + */ + label: string; + /** + * Score corresponding to the object (between 0 and 1). + */ + score: number; + /** + * Bounding box of the detected object in image's original size, or as a percentage if `percentage` is set to true. + */ + box: BoundingBox; +}; +/** + * Parameters specific to zero-shot object detection pipelines. + */ +export type ZeroShotObjectDetectionPipelineOptions = { + /** + * The probability necessary to make a prediction. + */ + threshold?: number; + /** + * The number of top predictions that will be returned by the pipeline. + * If the provided number is `null` or higher than the number of predictions available, it will default + * to the number of predictions. + */ + topk?: number; + /** + * Whether to return the boxes coordinates in percentage (true) or in pixels (false). + */ + percentage?: boolean; +}; +/** + * Detect objects (bounding boxes & classes) in the image(s) passed as inputs. + */ +export type ZeroShotObjectDetectionPipelineCallback = (images: ImagePipelineInputs, candidate_labels: string[], options?: ZeroShotObjectDetectionPipelineOptions) => Promise; +export type ZeroShotObjectDetectionPipelineType = TextImagePipelineConstructorArgs & ZeroShotObjectDetectionPipelineCallback & Disposable; +export type DocumentQuestionAnsweringSingle = { + /** + * The generated text. + */ + answer: string; +}; +export type DocumentQuestionAnsweringOutput = DocumentQuestionAnsweringSingle[]; +/** + * Answer the question given as input by using the document. + */ +export type DocumentQuestionAnsweringPipelineCallback = (image: ImageInput, question: string, options?: import('./utils/generation.js').GenerationConfigType) => Promise; +export type DocumentQuestionAnsweringPipelineType = TextImagePipelineConstructorArgs & DocumentQuestionAnsweringPipelineCallback & Disposable; +export type VocoderOptions = { + /** + * The vocoder used by the pipeline (if the model uses one). If not provided, use the default HifiGan vocoder. + */ + vocoder?: PreTrainedModel; +}; +export type TextToAudioPipelineConstructorArgs = TextAudioPipelineConstructorArgs & VocoderOptions; +export type TextToAudioOutput = { + /** + * The generated audio waveform. + */ + audio: Float32Array; + /** + * The sampling rate of the generated audio waveform. + */ + sampling_rate: number; +}; +/** + * Parameters specific to text-to-audio pipelines. + */ +export type TextToAudioPipelineOptions = { + /** + * The speaker embeddings (if the model requires it). + */ + speaker_embeddings?: Tensor | Float32Array | string | URL; +}; +/** + * Generates speech/audio from the inputs. + */ +export type TextToAudioPipelineCallback = (texts: string | string[], options: TextToAudioPipelineOptions) => Promise; +export type TextToAudioPipelineType = TextToAudioPipelineConstructorArgs & TextToAudioPipelineCallback & Disposable; +/** + * Transform the image(s) passed as inputs. + */ +export type ImageToImagePipelineCallback = (images: ImagePipelineInputs) => Promise; +export type ImageToImagePipelineType = ImagePipelineConstructorArgs & ImageToImagePipelineCallback & Disposable; +export type DepthEstimationPipelineOutput = { + /** + * The raw depth map predicted by the model. + */ + predicted_depth: Tensor; + /** + * The processed depth map as an image (with the same size as the input image). + */ + depth: RawImage; +}; +/** + * Predicts the depth for the image(s) passed as inputs. + */ +export type DepthEstimationPipelineCallback = (images: ImagePipelineInputs) => Promise; +export type DepthEstimationPipelineType = ImagePipelineConstructorArgs & DepthEstimationPipelineCallback & Disposable; +import { PreTrainedModel } from './models.js'; +import { PreTrainedTokenizer } from './tokenizers.js'; +import { Processor } from './processors.js'; +import { Tensor } from './utils/tensor.js'; +import { RawImage } from './utils/image.js'; +declare const SUPPORTED_TASKS: Readonly<{ + "text-classification": { + tokenizer: typeof AutoTokenizer; + pipeline: typeof TextClassificationPipeline; + model: typeof AutoModelForSequenceClassification; + default: { + model: string; + }; + type: string; + }; + "token-classification": { + tokenizer: typeof AutoTokenizer; + pipeline: typeof TokenClassificationPipeline; + model: typeof AutoModelForTokenClassification; + default: { + model: string; + }; + type: string; + }; + "question-answering": { + tokenizer: typeof AutoTokenizer; + pipeline: typeof QuestionAnsweringPipeline; + model: typeof AutoModelForQuestionAnswering; + default: { + model: string; + }; + type: string; + }; + "fill-mask": { + tokenizer: typeof AutoTokenizer; + pipeline: typeof FillMaskPipeline; + model: typeof AutoModelForMaskedLM; + default: { + model: string; + }; + type: string; + }; + summarization: { + tokenizer: typeof AutoTokenizer; + pipeline: typeof SummarizationPipeline; + model: typeof AutoModelForSeq2SeqLM; + default: { + model: string; + }; + type: string; + }; + translation: { + tokenizer: typeof AutoTokenizer; + pipeline: typeof TranslationPipeline; + model: typeof AutoModelForSeq2SeqLM; + default: { + model: string; + }; + type: string; + }; + "text2text-generation": { + tokenizer: typeof AutoTokenizer; + pipeline: typeof Text2TextGenerationPipeline; + model: typeof AutoModelForSeq2SeqLM; + default: { + model: string; + }; + type: string; + }; + "text-generation": { + tokenizer: typeof AutoTokenizer; + pipeline: typeof TextGenerationPipeline; + model: typeof AutoModelForCausalLM; + default: { + model: string; + }; + type: string; + }; + "zero-shot-classification": { + tokenizer: typeof AutoTokenizer; + pipeline: typeof ZeroShotClassificationPipeline; + model: typeof AutoModelForSequenceClassification; + default: { + model: string; + }; + type: string; + }; + "audio-classification": { + pipeline: typeof AudioClassificationPipeline; + model: typeof AutoModelForAudioClassification; + processor: typeof AutoProcessor; + default: { + model: string; + }; + type: string; + }; + "zero-shot-audio-classification": { + tokenizer: typeof AutoTokenizer; + pipeline: typeof ZeroShotAudioClassificationPipeline; + model: typeof AutoModel; + processor: typeof AutoProcessor; + default: { + model: string; + }; + type: string; + }; + "automatic-speech-recognition": { + tokenizer: typeof AutoTokenizer; + pipeline: typeof AutomaticSpeechRecognitionPipeline; + model: (typeof AutoModelForSpeechSeq2Seq)[]; + processor: typeof AutoProcessor; + default: { + model: string; + }; + type: string; + }; + "text-to-audio": { + tokenizer: typeof AutoTokenizer; + pipeline: typeof TextToAudioPipeline; + model: (typeof AutoModelForTextToSpectrogram | typeof AutoModelForTextToWaveform)[]; + processor: (typeof AutoProcessor)[]; + default: { + model: string; + }; + type: string; + }; + "image-to-text": { + tokenizer: typeof AutoTokenizer; + pipeline: typeof ImageToTextPipeline; + model: typeof AutoModelForVision2Seq; + processor: typeof AutoProcessor; + default: { + model: string; + }; + type: string; + }; + "image-classification": { + pipeline: typeof ImageClassificationPipeline; + model: typeof AutoModelForImageClassification; + processor: typeof AutoProcessor; + default: { + model: string; + }; + type: string; + }; + "image-segmentation": { + pipeline: typeof ImageSegmentationPipeline; + model: (typeof AutoModelForImageSegmentation)[]; + processor: typeof AutoProcessor; + default: { + model: string; + }; + type: string; + }; + "zero-shot-image-classification": { + tokenizer: typeof AutoTokenizer; + pipeline: typeof ZeroShotImageClassificationPipeline; + model: typeof AutoModel; + processor: typeof AutoProcessor; + default: { + model: string; + }; + type: string; + }; + "object-detection": { + pipeline: typeof ObjectDetectionPipeline; + model: typeof AutoModelForObjectDetection; + processor: typeof AutoProcessor; + default: { + model: string; + }; + type: string; + }; + "zero-shot-object-detection": { + tokenizer: typeof AutoTokenizer; + pipeline: typeof ZeroShotObjectDetectionPipeline; + model: typeof AutoModelForZeroShotObjectDetection; + processor: typeof AutoProcessor; + default: { + model: string; + }; + type: string; + }; + "document-question-answering": { + tokenizer: typeof AutoTokenizer; + pipeline: typeof DocumentQuestionAnsweringPipeline; + model: typeof AutoModelForDocumentQuestionAnswering; + processor: typeof AutoProcessor; + default: { + model: string; + }; + type: string; + }; + "image-to-image": { + pipeline: typeof ImageToImagePipeline; + model: typeof AutoModelForImageToImage; + processor: typeof AutoProcessor; + default: { + model: string; + }; + type: string; + }; + "depth-estimation": { + pipeline: typeof DepthEstimationPipeline; + model: typeof AutoModelForDepthEstimation; + processor: typeof AutoProcessor; + default: { + model: string; + }; + type: string; + }; + "feature-extraction": { + tokenizer: typeof AutoTokenizer; + pipeline: typeof FeatureExtractionPipeline; + model: typeof AutoModel; + default: { + model: string; + }; + type: string; + }; +}>; +declare const TASK_ALIASES: Readonly<{ + "sentiment-analysis": "text-classification"; + ner: "token-classification"; + asr: "automatic-speech-recognition"; + "text-to-speech": "text-to-audio"; + embeddings: "feature-extraction"; +}>; +import { AutoTokenizer } from './tokenizers.js'; +import { AutoModelForSequenceClassification } from './models.js'; +import { AutoModelForTokenClassification } from './models.js'; +import { AutoModelForQuestionAnswering } from './models.js'; +import { AutoModelForMaskedLM } from './models.js'; +import { AutoModelForSeq2SeqLM } from './models.js'; +import { AutoModelForCausalLM } from './models.js'; +import { AutoModelForAudioClassification } from './models.js'; +import { AutoProcessor } from './processors.js'; +import { AutoModel } from './models.js'; +import { AutoModelForSpeechSeq2Seq } from './models.js'; +import { AutoModelForTextToSpectrogram } from './models.js'; +import { AutoModelForTextToWaveform } from './models.js'; +import { AutoModelForVision2Seq } from './models.js'; +import { AutoModelForImageClassification } from './models.js'; +import { AutoModelForImageSegmentation } from './models.js'; +import { AutoModelForObjectDetection } from './models.js'; +import { AutoModelForZeroShotObjectDetection } from './models.js'; +import { AutoModelForDocumentQuestionAnswering } from './models.js'; +import { AutoModelForImageToImage } from './models.js'; +import { AutoModelForDepthEstimation } from './models.js'; +export {}; +//# sourceMappingURL=pipelines.d.ts.map \ No newline at end of file diff --git a/core/vendor/modules/@xenova/transformers/types/pipelines.d.ts.map b/core/vendor/modules/@xenova/transformers/types/pipelines.d.ts.map new file mode 100644 index 000000000..a128b8cc3 --- /dev/null +++ b/core/vendor/modules/@xenova/transformers/types/pipelines.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"pipelines.d.ts","sourceRoot":"","sources":["../src/pipelines.js"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/core/vendor/modules/@xenova/transformers/types/processors.d.ts b/core/vendor/modules/@xenova/transformers/types/processors.d.ts new file mode 100644 index 000000000..b604b1244 --- /dev/null +++ b/core/vendor/modules/@xenova/transformers/types/processors.d.ts @@ -0,0 +1,715 @@ +declare const FeatureExtractor_base: new () => { + (...args: any[]): any; + _call(...args: any[]): any; +}; +/** + * Base class for feature extractors. + * + * @extends Callable + */ +export class FeatureExtractor extends FeatureExtractor_base { + /** + * Constructs a new FeatureExtractor instance. + * + * @param {Object} config The configuration for the feature extractor. + */ + constructor(config: any); + config: any; +} +/** + * @typedef {object} ImageFeatureExtractorResult + * @property {Tensor} pixel_values The pixel values of the batched preprocessed images. + * @property {HeightWidth[]} original_sizes Array of two-dimensional tuples like [[480, 640]]. + * @property {HeightWidth[]} reshaped_input_sizes Array of two-dimensional tuples like [[1000, 1330]]. + */ +/** + * Feature extractor for image models. + * + * @extends FeatureExtractor + */ +export class ImageFeatureExtractor extends FeatureExtractor { + /** + * Constructs a new ImageFeatureExtractor instance. + * + * @param {Object} config The configuration for the feature extractor. + * @param {number[]} config.image_mean The mean values for image normalization. + * @param {number[]} config.image_std The standard deviation values for image normalization. + * @param {boolean} config.do_rescale Whether to rescale the image pixel values to the [0,1] range. + * @param {number} config.rescale_factor The factor to use for rescaling the image pixel values. + * @param {boolean} config.do_normalize Whether to normalize the image pixel values. + * @param {boolean} config.do_resize Whether to resize the image. + * @param {number} config.resample What method to use for resampling. + * @param {number} config.size The size to resize the image to. + */ + constructor(config: { + image_mean: number[]; + image_std: number[]; + do_rescale: boolean; + rescale_factor: number; + do_normalize: boolean; + do_resize: boolean; + resample: number; + size: number; + }); + image_mean: any; + image_std: any; + resample: any; + do_rescale: any; + rescale_factor: any; + do_normalize: any; + do_resize: any; + do_thumbnail: any; + size: any; + size_divisibility: any; + do_center_crop: any; + crop_size: any; + do_convert_rgb: any; + do_crop_margin: any; + pad_size: any; + do_pad: any; + /** + * Resize the image to make a thumbnail. The image is resized so that no dimension is larger than any + * corresponding dimension of the specified size. + * @param {RawImage} image The image to be resized. + * @param {{height:number, width:number}} size The size `{"height": h, "width": w}` to resize the image to. + * @param {string | 0 | 1 | 2 | 3 | 4 | 5} [resample=2] The resampling filter to use. + * @returns {Promise} The resized image. + */ + thumbnail(image: RawImage, size: { + height: number; + width: number; + }, resample?: string | 0 | 1 | 2 | 3 | 4 | 5): Promise; + /** + * Crops the margin of the image. Gray pixels are considered margin (i.e., pixels with a value below the threshold). + * @param {RawImage} image The image to be cropped. + * @param {number} gray_threshold Value below which pixels are considered to be gray. + * @returns {Promise} The cropped image. + */ + crop_margin(image: RawImage, gray_threshold?: number): Promise; + /** + * Pad the image by a certain amount. + * @param {Float32Array} pixelData The pixel data to pad. + * @param {number[]} imgDims The dimensions of the image. + * @param {{width:number; height:number}|number} padSize The dimensions of the padded image. + * @param {Object} options The options for padding. + * @param {'constant'|'symmetric'} [options.mode='constant'] The type of padding to add. + * @param {boolean} [options.center=false] Whether to center the image. + * @param {number} [options.constant_values=0] The constant value to use for padding. + * @returns {[Float32Array, number[]]} The padded pixel data and image dimensions. + */ + pad_image(pixelData: Float32Array, imgDims: number[], padSize: { + width: number; + height: number; + } | number, { mode, center, constant_values, }?: { + mode?: 'constant' | 'symmetric'; + center?: boolean; + constant_values?: number; + }): [Float32Array, number[]]; + /** + * Rescale the image' pixel values by `this.rescale_factor`. + * @param {Float32Array} pixelData The pixel data to rescale. + * @returns {void} + */ + rescale(pixelData: Float32Array): void; + /** + * Find the target (width, height) dimension of the output image after + * resizing given the input image and the desired size. + * @param {RawImage} image The image to resize. + * @param {any} size The size to use for resizing the image. + * @returns {[number, number]} The target (width, height) dimension of the output image after resizing. + */ + get_resize_output_image_size(image: RawImage, size: any): [number, number]; + /** + * Resizes the image. + * @param {RawImage} image The image to resize. + * @returns {Promise} The resized image. + */ + resize(image: RawImage): Promise; + /** + * @typedef {object} PreprocessedImage + * @property {HeightWidth} original_size The original size of the image. + * @property {HeightWidth} reshaped_input_size The reshaped input size of the image. + * @property {Tensor} pixel_values The pixel values of the preprocessed image. + */ + /** + * Preprocesses the given image. + * + * @param {RawImage} image The image to preprocess. + * @param {Object} overrides The overrides for the preprocessing options. + * @returns {Promise} The preprocessed image. + */ + preprocess(image: RawImage, { do_normalize, do_pad, do_convert_rgb, do_convert_grayscale, }?: any): Promise<{ + /** + * The original size of the image. + */ + original_size: HeightWidth; + /** + * The reshaped input size of the image. + */ + reshaped_input_size: HeightWidth; + /** + * The pixel values of the preprocessed image. + */ + pixel_values: Tensor; + }>; + /** + * Calls the feature extraction process on an array of images, + * preprocesses each image, and concatenates the resulting + * features into a single Tensor. + * @param {RawImage[]} images The image(s) to extract features from. + * @param {...any} args Additional arguments. + * @returns {Promise} An object containing the concatenated pixel values (and other metadata) of the preprocessed images. + */ + _call(images: RawImage[], ...args: any[]): Promise; +} +export class SegformerFeatureExtractor extends ImageFeatureExtractor { + /** + * Converts the output of `SegformerForSemanticSegmentation` into semantic segmentation maps. + * @param {*} outputs Raw outputs of the model. + * @param {number[][]} [target_sizes=null] List of tuples corresponding to the requested final size + * (height, width) of each prediction. If unset, predictions will not be resized. + * @returns {{segmentation: Tensor; labels: number[]}[]} The semantic segmentation maps. + */ + post_process_semantic_segmentation(outputs: any, target_sizes?: number[][]): { + segmentation: Tensor; + labels: number[]; + }[]; +} +export class BitImageProcessor extends ImageFeatureExtractor { +} +export class DPTFeatureExtractor extends ImageFeatureExtractor { +} +export class GLPNFeatureExtractor extends ImageFeatureExtractor { +} +export class CLIPFeatureExtractor extends ImageFeatureExtractor { +} +export class ChineseCLIPFeatureExtractor extends ImageFeatureExtractor { +} +export class SiglipImageProcessor extends ImageFeatureExtractor { +} +export class ConvNextFeatureExtractor extends ImageFeatureExtractor { + constructor(config: any); + /** + * Percentage of the image to crop. Only has an effect if this.size < 384. + */ + crop_pct: any; + resize(image: any): Promise; +} +export class ConvNextImageProcessor extends ConvNextFeatureExtractor { +} +export class ViTFeatureExtractor extends ImageFeatureExtractor { +} +export class ViTImageProcessor extends ImageFeatureExtractor { +} +export class MobileViTFeatureExtractor extends ImageFeatureExtractor { +} +export class OwlViTFeatureExtractor extends ImageFeatureExtractor { + /** + * Post-processes the outputs of the model (for object detection). + * @param {Object} outputs The outputs of the model that must be post-processed + * @param {Tensor} outputs.logits The logits + * @param {Tensor} outputs.pred_boxes The predicted boxes. + * @param {number} [threshold=0.5] The threshold to use for the scores. + * @param {number[][]} [target_sizes=null] The sizes of the original images. + * @param {boolean} [is_zero_shot=false] Whether zero-shot object detection was performed. + * @return {Object[]} An array of objects containing the post-processed outputs. + * @private + */ + post_process_object_detection(outputs: { + logits: Tensor; + pred_boxes: Tensor; + }, threshold?: number, target_sizes?: number[][], is_zero_shot?: boolean): any[]; +} +export class DeiTFeatureExtractor extends ImageFeatureExtractor { +} +export class BeitFeatureExtractor extends ImageFeatureExtractor { +} +export class DonutFeatureExtractor extends ImageFeatureExtractor { + pad_image(pixelData: any, imgDims: any, padSize: any, options?: {}): [Float32Array, number[]]; +} +export class NougatImageProcessor extends DonutFeatureExtractor { +} +/** + * @typedef {object} DetrFeatureExtractorResultProps + * @property {Tensor} pixel_mask + * @typedef {ImageFeatureExtractorResult & DetrFeatureExtractorResultProps} DetrFeatureExtractorResult + */ +/** + * Detr Feature Extractor. + * + * @extends ImageFeatureExtractor + */ +export class DetrFeatureExtractor extends ImageFeatureExtractor { + /** + * Calls the feature extraction process on an array of images, preprocesses + * each image, and concatenates the resulting features into a single Tensor. + * @param {RawImage[]} images The image(s) to extract features from. + * @returns {Promise} An object containing the concatenated pixel values of the preprocessed images. + */ + _call(images: RawImage[]): Promise; + /** + * Post-processes the outputs of the model (for object detection). + * @param {Object} outputs The outputs of the model that must be post-processed + * @param {Tensor} outputs.logits The logits + * @param {Tensor} outputs.pred_boxes The predicted boxes. + * @param {number} [threshold=0.5] The threshold to use for the scores. + * @param {number[][]} [target_sizes=null] The sizes of the original images. + * @param {boolean} [is_zero_shot=false] Whether zero-shot object detection was performed. + * @return {Object[]} An array of objects containing the post-processed outputs. + * @private + */ + post_process_object_detection(outputs: { + logits: Tensor; + pred_boxes: Tensor; + }, threshold?: number, target_sizes?: number[][], is_zero_shot?: boolean): any[]; + /** + * Binarize the given masks using `object_mask_threshold`, it returns the associated values of `masks`, `scores` and `labels`. + * @param {Tensor} class_logits The class logits. + * @param {Tensor} mask_logits The mask logits. + * @param {number} object_mask_threshold A number between 0 and 1 used to binarize the masks. + * @param {number} num_labels The number of labels. + * @returns {[Tensor[], number[], number[]]} The binarized masks, the scores, and the labels. + */ + remove_low_and_no_objects(class_logits: Tensor, mask_logits: Tensor, object_mask_threshold: number, num_labels: number): [Tensor[], number[], number[]]; + /** + * Checks whether the segment is valid or not. + * @param {Int32Array} mask_labels Labels for each pixel in the mask. + * @param {Tensor[]} mask_probs Probabilities for each pixel in the masks. + * @param {number} k The class id of the segment. + * @param {number} mask_threshold The mask threshold. + * @param {number} overlap_mask_area_threshold The overlap mask area threshold. + * @returns {[boolean, number[]]} Whether the segment is valid or not, and the indices of the valid labels. + */ + check_segment_validity(mask_labels: Int32Array, mask_probs: Tensor[], k: number, mask_threshold?: number, overlap_mask_area_threshold?: number): [boolean, number[]]; + /** + * Computes the segments. + * @param {Tensor[]} mask_probs The mask probabilities. + * @param {number[]} pred_scores The predicted scores. + * @param {number[]} pred_labels The predicted labels. + * @param {number} mask_threshold The mask threshold. + * @param {number} overlap_mask_area_threshold The overlap mask area threshold. + * @param {Set} label_ids_to_fuse The label ids to fuse. + * @param {number[]} target_size The target size of the image. + * @returns {[Tensor, Array<{id: number, label_id: number, score: number}>]} The computed segments. + */ + compute_segments(mask_probs: Tensor[], pred_scores: number[], pred_labels: number[], mask_threshold: number, overlap_mask_area_threshold: number, label_ids_to_fuse?: Set, target_size?: number[]): [Tensor, Array<{ + id: number; + label_id: number; + score: number; + }>]; + /** + * Post-process the model output to generate the final panoptic segmentation. + * @param {*} outputs The model output to post process + * @param {number} [threshold=0.5] The probability score threshold to keep predicted instance masks. + * @param {number} [mask_threshold=0.5] Threshold to use when turning the predicted masks into binary values. + * @param {number} [overlap_mask_area_threshold=0.8] The overlap mask area threshold to merge or discard small disconnected parts within each binary instance mask. + * @param {Set} [label_ids_to_fuse=null] The labels in this state will have all their instances be fused together. + * @param {number[][]} [target_sizes=null] The target sizes to resize the masks to. + * @returns {Array<{ segmentation: Tensor, segments_info: Array<{id: number, label_id: number, score: number}>}>} + */ + post_process_panoptic_segmentation(outputs: any, threshold?: number, mask_threshold?: number, overlap_mask_area_threshold?: number, label_ids_to_fuse?: Set, target_sizes?: number[][]): Array<{ + segmentation: Tensor; + segments_info: Array<{ + id: number; + label_id: number; + score: number; + }>; + }>; + post_process_instance_segmentation(): void; +} +export class YolosFeatureExtractor extends ImageFeatureExtractor { + /** + * Post-processes the outputs of the model (for object detection). + * @param {Object} outputs The outputs of the model that must be post-processed + * @param {Tensor} outputs.logits The logits + * @param {Tensor} outputs.pred_boxes The predicted boxes. + * @param {number} [threshold=0.5] The threshold to use for the scores. + * @param {number[][]} [target_sizes=null] The sizes of the original images. + * @param {boolean} [is_zero_shot=false] Whether zero-shot object detection was performed. + * @return {Object[]} An array of objects containing the post-processed outputs. + * @private + */ + post_process_object_detection(outputs: { + logits: Tensor; + pred_boxes: Tensor; + }, threshold?: number, target_sizes?: number[][], is_zero_shot?: boolean): any[]; +} +/** + * @typedef {object} SamImageProcessorResult + * @property {Tensor} pixel_values + * @property {HeightWidth[]} original_sizes + * @property {HeightWidth[]} reshaped_input_sizes + * @property {Tensor} [input_points] + * @property {Tensor} [input_labels] + */ +export class SamImageProcessor extends ImageFeatureExtractor { + /** + * + * @param {any} input_points + * @param {HeightWidth[]} original_sizes + * @param {HeightWidth[]} reshaped_input_sizes + * @returns {Tensor} + */ + reshape_input_points(input_points: any, original_sizes: HeightWidth[], reshaped_input_sizes: HeightWidth[]): Tensor; + /** + * + * @param {any} input_labels + * @param {Tensor} input_points + * @returns {Tensor} + */ + add_input_labels(input_labels: any, input_points: Tensor): Tensor; + /** + * @param {any[]} images The URL(s) of the image(s) to extract features from. + * @param {any} [input_points] A 3D or 4D array, representing the input points provided by the user. + * - 3D: `[point_batch_size, nb_points_per_image, 2]`. In this case, `batch_size` is assumed to be 1. + * - 4D: `[batch_size, point_batch_size, nb_points_per_image, 2]`. + * @param {any} [input_labels] A 2D or 3D array, representing the input labels for the points, used by the prompt encoder to encode the prompt. + * - 2D: `[point_batch_size, nb_points_per_image]`. In this case, `batch_size` is assumed to be 1. + * - 3D: `[batch_size, point_batch_size, nb_points_per_image]`. + * @returns {Promise} + */ + _call(images: any[], input_points?: any, input_labels?: any): Promise; + /** + * Remove padding and upscale masks to the original image size. + * @param {Tensor} masks Batched masks from the mask_decoder in (batch_size, num_channels, height, width) format. + * @param {number[][]} original_sizes The original sizes of each image before it was resized to the model's expected input shape, in (height, width) format. + * @param {number[][]} reshaped_input_sizes The size of each image as it is fed to the model, in (height, width) format. Used to remove padding. + * @param {Object} options Optional parameters for post-processing. + * @param {number} [options.mask_threshold] The threshold to use for binarizing the masks. + * @param {boolean} [options.binarize] Whether to binarize the masks. + * @param {Object} [options.pad_size] The target size the images were padded to before being passed to the model. If `null`, the target size is assumed to be the processor's `pad_size`. + * @param {number} [options.pad_size.height] The height the images were padded to. + * @param {number} [options.pad_size.width] The width the images were padded to. + * @returns {Tensor[]} Batched masks in batch_size, num_channels, height, width) format, where (height, width) is given by original_size. + */ + post_process_masks(masks: Tensor, original_sizes: number[][], reshaped_input_sizes: number[][], { mask_threshold, binarize, pad_size, }?: { + mask_threshold?: number; + binarize?: boolean; + pad_size?: { + height?: number; + width?: number; + }; + }): Tensor[]; +} +export class Swin2SRImageProcessor extends ImageFeatureExtractor { + pad_image(pixelData: any, imgDims: any, padSize: any, options?: {}): [Float32Array, number[]]; +} +export class VitMatteImageProcessor extends ImageFeatureExtractor { + /** + * Calls the feature extraction process on an array of images, preprocesses + * each image, and concatenates the resulting features into a single Tensor. + * @param {RawImage[]} images The image(s) to extract features from. + * @param {RawImage[]} trimaps The trimaps(s) to extract features from. + * @returns {Promise} An object containing the concatenated pixel values of the preprocessed images. + */ + _call(images: RawImage[], trimaps: RawImage[]): Promise; +} +export class WhisperFeatureExtractor extends FeatureExtractor { + constructor(config: any); + window: Float64Array; + /** + * Computes the log-Mel spectrogram of the provided audio waveform. + * @param {Float32Array|Float64Array} waveform The audio waveform to process. + * @returns {{data: Float32Array, dims: number[]}} An object containing the log-Mel spectrogram data as a Float32Array and its dimensions as an array of numbers. + */ + _extract_fbank_features(waveform: Float32Array | Float64Array): { + data: Float32Array; + dims: number[]; + }; + /** + * Asynchronously extracts features from a given audio using the provided configuration. + * @param {Float32Array|Float64Array} audio The audio data as a Float32Array/Float64Array. + * @returns {Promise<{ input_features: Tensor }>} A Promise resolving to an object containing the extracted input features as a Tensor. + */ + _call(audio: Float32Array | Float64Array): Promise<{ + input_features: Tensor; + }>; +} +export class Wav2Vec2FeatureExtractor extends FeatureExtractor { + /** + * @param {Float32Array} input_values + * @returns {Float32Array} + */ + _zero_mean_unit_var_norm(input_values: Float32Array): Float32Array; + /** + * Asynchronously extracts features from a given audio using the provided configuration. + * @param {Float32Array|Float64Array} audio The audio data as a Float32Array/Float64Array. + * @returns {Promise<{ input_values: Tensor; attention_mask: Tensor }>} A Promise resolving to an object containing the extracted input features and attention mask as Tensors. + */ + _call(audio: Float32Array | Float64Array): Promise<{ + input_values: Tensor; + attention_mask: Tensor; + }>; +} +export class ASTFeatureExtractor extends FeatureExtractor { + constructor(config: any); + mel_filters: number[][]; + window: Float64Array; + mean: any; + std: any; + /** + * Computes the log-Mel spectrogram of the provided audio waveform. + * @param {Float32Array|Float64Array} waveform The audio waveform to process. + * @param {number} max_length The maximum number of frames to return. + * @returns {{data: Float32Array, dims: number[]}} An object containing the log-Mel spectrogram data as a Float32Array and its dimensions as an array of numbers. + */ + _extract_fbank_features(waveform: Float32Array | Float64Array, max_length: number): { + data: Float32Array; + dims: number[]; + }; + /** + * Asynchronously extracts features from a given audio using the provided configuration. + * @param {Float32Array|Float64Array} audio The audio data as a Float32Array/Float64Array. + * @returns {Promise<{ input_values: Tensor }>} A Promise resolving to an object containing the extracted input features as a Tensor. + */ + _call(audio: Float32Array | Float64Array): Promise<{ + input_values: Tensor; + }>; +} +export class ClapFeatureExtractor extends FeatureExtractor { + constructor(config: any); + mel_filters: number[][]; + mel_filters_slaney: number[][]; + window: Float64Array; + /** + * Extracts the mel spectrogram and prepares it for the mode based on the `truncation` and `padding` arguments. + * + * Four different path are possible: + * - `truncation="fusion"` and the length of the waveform is greater than the max length: the mel spectrogram + * will be computed on the entire audio. 3 random crops and a dowsampled version of the full mel spectrogram + * are then stacked together. They will later be used for `feature_fusion`. + * - `truncation="rand_trunc"` and the length of the waveform is smaller than the max length: the audio is + * padded based on `padding`. + * - `truncation="fusion"` and the length of the waveform is smaller than the max length: the audio is padded + * based on `padding`, and is repeated `4` times. + * - `truncation="rand_trunc"` and the length of the waveform is greater than the max length: the mel + * spectrogram will be computed on a random crop of the waveform. + * + * @param {Float32Array|Float64Array} waveform The input waveform. + * @param {number} max_length The maximum length of the waveform. + * @param {string} truncation The truncation strategy to use. + * @param {string} padding The padding strategy to use. + * @returns {{ data: Float32Array; dims: number[]; longer: boolean; }} An object containing the mel spectrogram data as a Float32Array, its dimensions as an array of numbers, and a boolean indicating whether the waveform was longer than the max length. + */ + _get_input_mel(waveform: Float32Array | Float64Array, max_length: number, truncation: string, padding: string): { + data: Float32Array; + dims: number[]; + longer: boolean; + }; + /** + * Compute the log-mel spectrogram of the provided `waveform` using the Hann window. + * In CLAP, two different filter banks are used depending on the truncation pattern: + * - `self.mel_filters`: they correspond to the default parameters of `torchaudio` which can be obtained from + * calling `torchaudio.transforms.MelSpectrogram().mel_scale.fb`. These filters are used when `truncation` + * is set to `"fusion"`. + * - `self.mel_filteres_slaney` : they correspond to the default parameters of `librosa` which used + * `librosa.filters.mel` when computing the mel spectrogram. These filters were only used in the original + * implementation when the truncation mode is not `"fusion"`. + * + * @param {Float32Array|Float64Array} waveform The audio waveform to process. + * @param {number[][]} mel_filters The mel filters to use. + * @param {number} [max_length=null] The maximum number of frames to return. + * @returns {{data: Float32Array, dims: number[]}} An object containing the log-Mel spectrogram data as a Float32Array and its dimensions as an array of numbers. + */ + _extract_fbank_features(waveform: Float32Array | Float64Array, mel_filters: number[][], max_length?: number): { + data: Float32Array; + dims: number[]; + }; + /** + * Asynchronously extracts features from a given audio using the provided configuration. + * @param {Float32Array|Float64Array} audio The audio data as a Float32Array/Float64Array. + * @returns {Promise<{ input_features: Tensor }>} A Promise resolving to an object containing the extracted input features as a Tensor. + */ + _call(audio: Float32Array | Float64Array, { max_length, }?: { + max_length?: any; + }): Promise<{ + input_features: Tensor; + }>; +} +export class SpeechT5FeatureExtractor extends FeatureExtractor { +} +declare const Processor_base: new () => { + (...args: any[]): any; + _call(...args: any[]): any; +}; +/** + * Represents a Processor that extracts features from an input. + * @extends Callable + */ +export class Processor extends Processor_base { + /** + * Creates a new Processor with the given feature extractor. + * @param {FeatureExtractor} feature_extractor The function used to extract features from the input. + */ + constructor(feature_extractor: FeatureExtractor); + feature_extractor: FeatureExtractor; + /** + * Calls the feature_extractor function with the given input. + * @param {any} input The input to extract features from. + * @param {...any} args Additional arguments. + * @returns {Promise} A Promise that resolves with the extracted features. + */ + _call(input: any, ...args: any[]): Promise; +} +export class SamProcessor extends Processor { + /** + * @borrows SamImageProcessor#_call as _call + */ + _call(...args: any[]): Promise; + /** + * @borrows SamImageProcessor#post_process_masks as post_process_masks + */ + post_process_masks(...args: any[]): any; + /** + * @borrows SamImageProcessor#reshape_input_points as reshape_input_points + */ + reshape_input_points(...args: any[]): any; +} +/** + * Represents a WhisperProcessor that extracts features from an audio input. + * @extends Processor + */ +export class WhisperProcessor extends Processor { + /** + * Calls the feature_extractor function with the given audio input. + * @param {any} audio The audio input to extract features from. + * @returns {Promise} A Promise that resolves with the extracted features. + */ + _call(audio: any): Promise; +} +export class Wav2Vec2ProcessorWithLM extends Processor { + /** + * Calls the feature_extractor function with the given audio input. + * @param {any} audio The audio input to extract features from. + * @returns {Promise} A Promise that resolves with the extracted features. + */ + _call(audio: any): Promise; +} +export class SpeechT5Processor extends Processor { + /** + * Calls the feature_extractor function with the given input. + * @param {any} input The input to extract features from. + * @returns {Promise} A Promise that resolves with the extracted features. + */ + _call(input: any): Promise; +} +export class OwlViTProcessor extends Processor { +} +/** + * Helper class which is used to instantiate pretrained processors with the `from_pretrained` function. + * The chosen processor class is determined by the type specified in the processor config. + * + * **Example:** Load a processor using `from_pretrained`. + * ```javascript + * let processor = await AutoProcessor.from_pretrained('openai/whisper-tiny.en'); + * ``` + * + * **Example:** Run an image through a processor. + * ```javascript + * let processor = await AutoProcessor.from_pretrained('Xenova/clip-vit-base-patch16'); + * let image = await RawImage.read('https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main/football-match.jpg'); + * let image_inputs = await processor(image); + * // { + * // "pixel_values": { + * // "dims": [ 1, 3, 224, 224 ], + * // "type": "float32", + * // "data": Float32Array [ -1.558687686920166, -1.558687686920166, -1.5440893173217773, ... ], + * // "size": 150528 + * // }, + * // "original_sizes": [ + * // [ 533, 800 ] + * // ], + * // "reshaped_input_sizes": [ + * // [ 224, 224 ] + * // ] + * // } + * ``` + */ +export class AutoProcessor { + static FEATURE_EXTRACTOR_CLASS_MAPPING: { + WhisperFeatureExtractor: typeof WhisperFeatureExtractor; + ViTFeatureExtractor: typeof ViTFeatureExtractor; + MobileViTFeatureExtractor: typeof MobileViTFeatureExtractor; + OwlViTFeatureExtractor: typeof OwlViTFeatureExtractor; + CLIPFeatureExtractor: typeof CLIPFeatureExtractor; + ChineseCLIPFeatureExtractor: typeof ChineseCLIPFeatureExtractor; + SiglipImageProcessor: typeof SiglipImageProcessor; + ConvNextFeatureExtractor: typeof ConvNextFeatureExtractor; + ConvNextImageProcessor: typeof ConvNextImageProcessor; + SegformerFeatureExtractor: typeof SegformerFeatureExtractor; + BitImageProcessor: typeof BitImageProcessor; + DPTFeatureExtractor: typeof DPTFeatureExtractor; + GLPNFeatureExtractor: typeof GLPNFeatureExtractor; + BeitFeatureExtractor: typeof BeitFeatureExtractor; + DeiTFeatureExtractor: typeof DeiTFeatureExtractor; + DetrFeatureExtractor: typeof DetrFeatureExtractor; + YolosFeatureExtractor: typeof YolosFeatureExtractor; + DonutFeatureExtractor: typeof DonutFeatureExtractor; + NougatImageProcessor: typeof NougatImageProcessor; + ViTImageProcessor: typeof ViTImageProcessor; + VitMatteImageProcessor: typeof VitMatteImageProcessor; + SamImageProcessor: typeof SamImageProcessor; + Swin2SRImageProcessor: typeof Swin2SRImageProcessor; + Wav2Vec2FeatureExtractor: typeof Wav2Vec2FeatureExtractor; + SpeechT5FeatureExtractor: typeof SpeechT5FeatureExtractor; + ASTFeatureExtractor: typeof ASTFeatureExtractor; + ClapFeatureExtractor: typeof ClapFeatureExtractor; + }; + static PROCESSOR_CLASS_MAPPING: { + WhisperProcessor: typeof WhisperProcessor; + Wav2Vec2ProcessorWithLM: typeof Wav2Vec2ProcessorWithLM; + SamProcessor: typeof SamProcessor; + SpeechT5Processor: typeof SpeechT5Processor; + OwlViTProcessor: typeof OwlViTProcessor; + }; + /** + * Instantiate one of the processor classes of the library from a pretrained model. + * + * The processor class to instantiate is selected based on the `feature_extractor_type` property of the config object + * (either passed as an argument or loaded from `pretrained_model_name_or_path` if possible) + * + * @param {string} pretrained_model_name_or_path The name or path of the pretrained model. Can be either: + * - A string, the *model id* of a pretrained processor hosted inside a model repo on huggingface.co. + * Valid model ids can be located at the root-level, like `bert-base-uncased`, or namespaced under a + * user or organization name, like `dbmdz/bert-base-german-cased`. + * - A path to a *directory* containing processor files, e.g., `./my_model_directory/`. + * @param {import('./utils/hub.js').PretrainedOptions} options Additional options for loading the processor. + * + * @returns {Promise} A new instance of the Processor class. + */ + static from_pretrained(pretrained_model_name_or_path: string, { progress_callback, config, cache_dir, local_files_only, revision, }?: import('./utils/hub.js').PretrainedOptions): Promise; +} +/** + * Named tuple to indicate the order we are using is (height x width), even though + * the Graphics’ industry standard is (width x height). + */ +export type HeightWidth = [height: number, width: number]; +export type ImageFeatureExtractorResult = { + /** + * The pixel values of the batched preprocessed images. + */ + pixel_values: Tensor; + /** + * Array of two-dimensional tuples like [[480, 640]]. + */ + original_sizes: HeightWidth[]; + /** + * Array of two-dimensional tuples like [[1000, 1330]]. + */ + reshaped_input_sizes: HeightWidth[]; +}; +export type DetrFeatureExtractorResultProps = { + pixel_mask: Tensor; +}; +export type DetrFeatureExtractorResult = ImageFeatureExtractorResult & DetrFeatureExtractorResultProps; +export type SamImageProcessorResult = { + pixel_values: Tensor; + original_sizes: HeightWidth[]; + reshaped_input_sizes: HeightWidth[]; + input_points?: Tensor; + input_labels?: Tensor; +}; +import { RawImage } from './utils/image.js'; +import { Tensor } from './utils/tensor.js'; +export {}; +//# sourceMappingURL=processors.d.ts.map \ No newline at end of file diff --git a/core/vendor/modules/@xenova/transformers/types/processors.d.ts.map b/core/vendor/modules/@xenova/transformers/types/processors.d.ts.map new file mode 100644 index 000000000..15d6e0394 --- /dev/null +++ b/core/vendor/modules/@xenova/transformers/types/processors.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"processors.d.ts","sourceRoot":"","sources":["../src/processors.js"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/core/vendor/modules/@xenova/transformers/types/tokenizers.d.ts b/core/vendor/modules/@xenova/transformers/types/tokenizers.d.ts new file mode 100644 index 000000000..b33c028b0 --- /dev/null +++ b/core/vendor/modules/@xenova/transformers/types/tokenizers.d.ts @@ -0,0 +1,912 @@ +declare const TokenizerModel_base: new () => { + (...args: any[]): any; + _call(...args: any[]): any; +}; +/** + * Abstract base class for tokenizer models. + * + * @extends Callable + */ +export class TokenizerModel extends TokenizerModel_base { + /** + * Instantiates a new TokenizerModel instance based on the configuration object provided. + * @param {Object} config The configuration object for the TokenizerModel. + * @param {...*} args Optional arguments to pass to the specific TokenizerModel constructor. + * @returns {TokenizerModel} A new instance of a TokenizerModel. + * @throws Will throw an error if the TokenizerModel type in the config is not recognized. + */ + static fromConfig(config: any, ...args: any[]): TokenizerModel; + /** + * Creates a new instance of TokenizerModel. + * @param {Object} config The configuration object for the TokenizerModel. + */ + constructor(config: any); + config: any; + /** @type {string[]} */ + vocab: string[]; + /** + * A mapping of tokens to ids. + * @type {Map} + */ + tokens_to_ids: Map; + unk_token_id: any; + unk_token: any; + end_of_word_suffix: any; + /** @type {boolean} Whether to fuse unknown tokens when encoding. Defaults to false. */ + fuse_unk: boolean; + /** + * Internal function to call the TokenizerModel instance. + * @param {string[]} tokens The tokens to encode. + * @returns {string[]} The encoded token IDs. + */ + _call(tokens: string[]): string[]; + /** + * Encodes a list of tokens into a list of token IDs. + * @param {string[]} tokens The tokens to encode. + * @returns {string[]} The encoded tokens. + * @throws Will throw an error if not implemented in a subclass. + */ + encode(tokens: string[]): string[]; + /** + * Converts a list of tokens into a list of token IDs. + * @param {string[]} tokens The tokens to convert. + * @returns {number[]} The converted token IDs. + */ + convert_tokens_to_ids(tokens: string[]): number[]; + /** + * Converts a list of token IDs into a list of tokens. + * @param {number[]} ids The token IDs to convert. + * @returns {string[]} The converted tokens. + */ + convert_ids_to_tokens(ids: number[]): string[]; +} +declare const PreTrainedTokenizer_base: new () => { + (...args: any[]): any; + _call(...args: any[]): any; +}; +export class PreTrainedTokenizer extends PreTrainedTokenizer_base { + /** + * Loads a pre-trained tokenizer from the given `pretrained_model_name_or_path`. + * + * @param {string} pretrained_model_name_or_path The path to the pre-trained tokenizer. + * @param {PretrainedTokenizerOptions} options Additional options for loading the tokenizer. + * + * @throws {Error} Throws an error if the tokenizer.json or tokenizer_config.json files are not found in the `pretrained_model_name_or_path`. + * @returns {Promise} A new instance of the `PreTrainedTokenizer` class. + */ + static from_pretrained(pretrained_model_name_or_path: string, { progress_callback, config, cache_dir, local_files_only, revision, legacy, }?: PretrainedTokenizerOptions): Promise; + /** + * Create a new PreTrainedTokenizer instance. + * @param {Object} tokenizerJSON The JSON of the tokenizer. + * @param {Object} tokenizerConfig The config of the tokenizer. + */ + constructor(tokenizerJSON: any, tokenizerConfig: any); + return_token_type_ids: boolean; + _default_chat_template: string; + _tokenizer_config: any; + normalizer: Normalizer; + pre_tokenizer: PreTokenizer; + model: TokenizerModel; + post_processor: PostProcessor; + decoder: Decoder; + special_tokens: any[]; + all_special_ids: number[]; + /** @type {AddedToken[]} */ + added_tokens: AddedToken[]; + additional_special_tokens: any; + added_tokens_regex: RegExp; + mask_token: string; + mask_token_id: number; + pad_token: string; + pad_token_id: number; + sep_token: string; + sep_token_id: number; + unk_token: string; + unk_token_id: number; + model_max_length: any; + /** @type {boolean} Whether or not to strip the text when tokenizing (removing excess spaces before and after the string). */ + remove_space: boolean; + clean_up_tokenization_spaces: any; + do_lowercase_and_remove_accent: any; + /** @type {'right'|'left'} */ + padding_side: 'right' | 'left'; + legacy: boolean; + chat_template: any; + _compiled_template_cache: Map; + /** + * Returns the value of the first matching key in the tokenizer config object. + * @param {...string} keys One or more keys to search for in the tokenizer config object. + * @returns {string|null} The value associated with the first matching key, or null if no match is found. + * @throws {Error} If an object is found for a matching key and its __type property is not "AddedToken". + */ + getToken(...keys: string[]): string | null; + /** + * @typedef {number[]|number[][]|Tensor} BatchEncodingItem + * + * @typedef {Object} BatchEncoding Holds the output of the tokenizer's call function. + * @property {BatchEncodingItem} input_ids List of token ids to be fed to a model. + * @property {BatchEncodingItem} attention_mask List of indices specifying which tokens should be attended to by the model. + * @property {BatchEncodingItem} [token_type_ids] List of token type ids to be fed to a model. + */ + /** + * Encode/tokenize the given text(s). + * @param {string|string[]} text The text to tokenize. + * @param {Object} options An optional object containing the following properties: + * @param {string|string[]} [options.text_pair=null] Optional second sequence to be encoded. If set, must be the same type as text. + * @param {boolean|'max_length'} [options.padding=false] Whether to pad the input sequences. + * @param {boolean} [options.add_special_tokens=true] Whether or not to add the special tokens associated with the corresponding model. + * @param {boolean} [options.truncation=null] Whether to truncate the input sequences. + * @param {number} [options.max_length=null] Maximum length of the returned list and optionally padding length. + * @param {boolean} [options.return_tensor=true] Whether to return the results as Tensors or arrays. + * @returns {BatchEncoding} Object to be passed to the model. + */ + _call(text: string | string[], { text_pair, add_special_tokens, padding, truncation, max_length, return_tensor, }?: { + text_pair?: string | string[]; + padding?: boolean | 'max_length'; + add_special_tokens?: boolean; + truncation?: boolean; + max_length?: number; + return_tensor?: boolean; + }): { + /** + * List of token ids to be fed to a model. + */ + input_ids: number[] | Tensor | number[][]; + /** + * List of indices specifying which tokens should be attended to by the model. + */ + attention_mask: number[] | Tensor | number[][]; + /** + * List of token type ids to be fed to a model. + */ + token_type_ids?: number[] | Tensor | number[][]; + }; + /** + * Encodes a single text using the preprocessor pipeline of the tokenizer. + * + * @param {string|null} text The text to encode. + * @returns {string[]|null} The encoded tokens. + */ + _encode_text(text: string | null): string[] | null; + /** + * Encodes a single text or a pair of texts using the model's tokenizer. + * + * @param {string} text The text to encode. + * @param {string|null} text_pair The optional second text to encode. + * @param {Object} options An optional object containing the following properties: + * @param {boolean} [options.add_special_tokens=true] Whether or not to add the special tokens associated with the corresponding model. + * @returns {EncodingSingle} An object containing the encoded text. + * @private + */ + private _encode_plus; + /** + * Encodes a single text or a pair of texts using the model's tokenizer. + * + * @param {string} text The text to encode. + * @param {string|null} text_pair The optional second text to encode. + * @param {Object} options An optional object containing the following properties: + * @param {boolean} [options.add_special_tokens=true] Whether or not to add the special tokens associated with the corresponding model. + * @returns {number[]} An array of token IDs representing the encoded text(s). + */ + encode(text: string, text_pair?: string | null, { add_special_tokens, }?: { + add_special_tokens?: boolean; + }): number[]; + /** + * Decode a batch of tokenized sequences. + * @param {number[][]|Tensor} batch List/Tensor of tokenized input sequences. + * @param {Object} decode_args (Optional) Object with decoding arguments. + * @returns {string[]} List of decoded sequences. + */ + batch_decode(batch: number[][] | Tensor, decode_args?: any): string[]; + /** + * Decodes a sequence of token IDs back to a string. + * + * @param {number[]|Tensor} token_ids List/Tensor of token IDs to decode. + * @param {Object} [decode_args={}] + * @param {boolean} [decode_args.skip_special_tokens=false] If true, special tokens are removed from the output string. + * @param {boolean} [decode_args.clean_up_tokenization_spaces=true] If true, spaces before punctuations and abbreviated forms are removed. + * + * @returns {string} The decoded string. + * @throws {Error} If `token_ids` is not a non-empty array of integers. + */ + decode(token_ids: number[] | Tensor, decode_args?: { + skip_special_tokens?: boolean; + clean_up_tokenization_spaces?: boolean; + }): string; + /** + * Decode a single list of token ids to a string. + * @param {number[]} token_ids List of token ids to decode + * @param {Object} decode_args Optional arguments for decoding + * @param {boolean} [decode_args.skip_special_tokens=false] Whether to skip special tokens during decoding + * @param {boolean} [decode_args.clean_up_tokenization_spaces=null] Whether to clean up tokenization spaces during decoding. + * If null, the value is set to `this.decoder.cleanup` if it exists, falling back to `this.clean_up_tokenization_spaces` if it exists, falling back to `true`. + * @returns {string} The decoded string + */ + decode_single(token_ids: number[], { skip_special_tokens, clean_up_tokenization_spaces, }: { + skip_special_tokens?: boolean; + clean_up_tokenization_spaces?: boolean; + }): string; + get default_chat_template(): string; + _warned_about_chat_template: boolean; + /** + * @typedef {Object} Message + * @property {string} role The role of the message (e.g., "user" or "assistant" or "system"). + * @property {string} content The content of the message. + */ + /** + * Converts a list of message objects with `"role"` and `"content"` keys to a list of token + * ids. This method is intended for use with chat models, and will read the tokenizer's chat_template attribute to + * determine the format and control tokens to use when converting. When chat_template is None, it will fall back + * to the default_chat_template specified at the class level. + * + * See [here](https://huggingface.co/docs/transformers/chat_templating) for more information. + * + * **Example:** Applying a chat template to a conversation. + * + * ```javascript + * import { AutoTokenizer } from "@xenova/transformers"; + * + * const tokenizer = await AutoTokenizer.from_pretrained("mistralai/Mistral-7B-Instruct-v0.1"); + * + * const chat = [ + * { "role": "user", "content": "Hello, how are you?" }, + * { "role": "assistant", "content": "I'm doing great. How can I help you today?" }, + * { "role": "user", "content": "I'd like to show off how chat templating works!" }, + * ] + * + * const text = tokenizer.apply_chat_template(chat, { tokenize: false }); + * // "[INST] Hello, how are you? [/INST]I'm doing great. How can I help you today? [INST] I'd like to show off how chat templating works! [/INST]" + * + * const input_ids = tokenizer.apply_chat_template(chat, { tokenize: true, return_tensor: false }); + * // [1, 733, 16289, 28793, 22557, 28725, 910, 460, 368, 28804, 733, 28748, 16289, 28793, 28737, 28742, 28719, 2548, 1598, 28723, 1602, 541, 315, 1316, 368, 3154, 28804, 2, 28705, 733, 16289, 28793, 315, 28742, 28715, 737, 298, 1347, 805, 910, 10706, 5752, 1077, 3791, 28808, 733, 28748, 16289, 28793] + * ``` + * + * @param {Message[]} conversation A list of message objects with `"role"` and `"content"` keys. + * @param {Object} options An optional object containing the following properties: + * @param {string} [options.chat_template=null] A Jinja template to use for this conversion. If + * this is not passed, the model's default chat template will be used instead. + * @param {boolean} [options.add_generation_prompt=false] Whether to end the prompt with the token(s) that indicate + * the start of an assistant message. This is useful when you want to generate a response from the model. + * Note that this argument will be passed to the chat template, and so it must be supported in the + * template for this argument to have any effect. + * @param {boolean} [options.tokenize=true] Whether to tokenize the output. If false, the output will be a string. + * @param {boolean} [options.padding=false] Whether to pad sequences to the maximum length. Has no effect if tokenize is false. + * @param {boolean} [options.truncation=false] Whether to truncate sequences to the maximum length. Has no effect if tokenize is false. + * @param {number} [options.max_length=null] Maximum length (in tokens) to use for padding or truncation. Has no effect if tokenize is false. + * If not specified, the tokenizer's `max_length` attribute will be used as a default. + * @param {boolean} [options.return_tensor=true] Whether to return the output as a Tensor or an Array. Has no effect if tokenize is false. + * @returns {string | Tensor | number[]| number[][]} The tokenized output. + */ + apply_chat_template(conversation: { + /** + * The role of the message (e.g., "user" or "assistant" or "system"). + */ + role: string; + /** + * The content of the message. + */ + content: string; + }[], { chat_template, add_generation_prompt, tokenize, padding, truncation, max_length, return_tensor, }?: { + chat_template?: string; + add_generation_prompt?: boolean; + tokenize?: boolean; + padding?: boolean; + truncation?: boolean; + max_length?: number; + return_tensor?: boolean; + }): string | Tensor | number[] | number[][]; +} +/** + * BertTokenizer is a class used to tokenize text for BERT models. + * @extends PreTrainedTokenizer + */ +export class BertTokenizer extends PreTrainedTokenizer { +} +/** + * Albert tokenizer + * @extends PreTrainedTokenizer + */ +export class AlbertTokenizer extends PreTrainedTokenizer { +} +export class MobileBertTokenizer extends PreTrainedTokenizer { +} +export class SqueezeBertTokenizer extends PreTrainedTokenizer { +} +export class DebertaTokenizer extends PreTrainedTokenizer { +} +export class DebertaV2Tokenizer extends PreTrainedTokenizer { +} +export class HerbertTokenizer extends PreTrainedTokenizer { +} +export class ConvBertTokenizer extends PreTrainedTokenizer { +} +export class RoFormerTokenizer extends PreTrainedTokenizer { +} +export class DistilBertTokenizer extends PreTrainedTokenizer { +} +export class CamembertTokenizer extends PreTrainedTokenizer { +} +export class XLMTokenizer extends PreTrainedTokenizer { + constructor(tokenizerJSON: any, tokenizerConfig: any); +} +export class ElectraTokenizer extends PreTrainedTokenizer { +} +export class T5Tokenizer extends PreTrainedTokenizer { +} +export class GPT2Tokenizer extends PreTrainedTokenizer { +} +export class BartTokenizer extends PreTrainedTokenizer { +} +export class MBartTokenizer extends PreTrainedTokenizer { + constructor(tokenizerJSON: any, tokenizerConfig: any); + languageRegex: RegExp; + language_codes: any[]; + lang_to_token: (x: any) => any; + /** + * Helper function to build translation inputs for an `MBartTokenizer`. + * @param {string|string[]} raw_inputs The text to tokenize. + * @param {Object} tokenizer_options Options to be sent to the tokenizer + * @param {Object} generate_kwargs Generation options. + * @returns {Object} Object to be passed to the model. + */ + _build_translation_inputs(raw_inputs: string | string[], tokenizer_options: any, generate_kwargs: any): any; +} +export class MBart50Tokenizer extends MBartTokenizer { +} +export class RobertaTokenizer extends PreTrainedTokenizer { +} +export class BloomTokenizer extends GPT2Tokenizer { + constructor(tokenizerJSON: any, tokenizerConfig: any); +} +export class LlamaTokenizer extends PreTrainedTokenizer { + constructor(tokenizerJSON: any, tokenizerConfig: any); + DEFAULT_SYSTEM_PROMPT: string; + use_default_system_prompt: any; + legacy: any; + get default_chat_template(): any; +} +export class CodeLlamaTokenizer extends LlamaTokenizer { +} +export class XLMRobertaTokenizer extends PreTrainedTokenizer { +} +export class MPNetTokenizer extends PreTrainedTokenizer { +} +export class FalconTokenizer extends PreTrainedTokenizer { +} +export class GPTNeoXTokenizer extends PreTrainedTokenizer { +} +export class EsmTokenizer extends PreTrainedTokenizer { +} +/** + * The NllbTokenizer class is used to tokenize text for NLLB ("No Language Left Behind") models. + * + * No Language Left Behind (NLLB) is a first-of-its-kind, AI breakthrough project + * that open-sources models capable of delivering high-quality translations directly + * between any pair of 200+ languages — including low-resource languages like Asturian, + * Luganda, Urdu and more. It aims to help people communicate with anyone, anywhere, + * regardless of their language preferences. For more information, check out their + * [paper](https://arxiv.org/abs/2207.04672). + * + * For a list of supported languages (along with their language codes), + * @see {@link https://github.com/facebookresearch/flores/blob/main/flores200/README.md#languages-in-flores-200} + */ +export class NllbTokenizer extends PreTrainedTokenizer { + constructor(tokenizerJSON: any, tokenizerConfig: any); + languageRegex: RegExp; + language_codes: any[]; + lang_to_token: (x: any) => any; + /** + * Helper function to build translation inputs for an `NllbTokenizer`. + * @param {string|string[]} raw_inputs The text to tokenize. + * @param {Object} tokenizer_options Options to be sent to the tokenizer + * @param {Object} generate_kwargs Generation options. + * @returns {Object} Object to be passed to the model. + */ + _build_translation_inputs(raw_inputs: string | string[], tokenizer_options: any, generate_kwargs: any): any; +} +/** + * The M2M100Tokenizer class is used to tokenize text for M2M100 ("Many-to-Many") models. + * + * M2M100 is a multilingual encoder-decoder (seq-to-seq) model trained for Many-to-Many + * multilingual translation. It was introduced in this [paper](https://arxiv.org/abs/2010.11125) + * and first released in [this](https://github.com/pytorch/fairseq/tree/master/examples/m2m_100) repository. + * + * For a list of supported languages (along with their language codes), + * @see {@link https://huggingface.co/facebook/m2m100_418M#languages-covered} + */ +export class M2M100Tokenizer extends PreTrainedTokenizer { + constructor(tokenizerJSON: any, tokenizerConfig: any); + languageRegex: RegExp; + language_codes: any[]; + lang_to_token: (x: any) => string; + /** + * Helper function to build translation inputs for an `M2M100Tokenizer`. + * @param {string|string[]} raw_inputs The text to tokenize. + * @param {Object} tokenizer_options Options to be sent to the tokenizer + * @param {Object} generate_kwargs Generation options. + * @returns {Object} Object to be passed to the model. + */ + _build_translation_inputs(raw_inputs: string | string[], tokenizer_options: any, generate_kwargs: any): any; +} +/** + * WhisperTokenizer tokenizer + * @extends PreTrainedTokenizer + */ +export class WhisperTokenizer extends PreTrainedTokenizer { + /** + * Decodes automatic speech recognition (ASR) sequences. + * @param {Array<{tokens: number[], token_timestamps?: number[], stride: number[]}>} sequences The sequences to decode. + * @param {Object} options The options to use for decoding. + * @returns {Array, text: string}>}>} The decoded sequences. + */ + _decode_asr(sequences: Array<{ + tokens: number[]; + token_timestamps?: number[]; + stride: number[]; + }>, { return_timestamps, return_language, time_precision, force_full_sequences }?: any): (string | { + chunks?: undefined | Array<{ + language: string | null; + timestamp: Array; + text: string; + }>; + })[]; + /** + * Finds the longest common sequence among the provided sequences. + * @param {number[][]} sequences An array of sequences of token ids to compare. + * @returns {number[][]} The longest common sequence found. + * @throws {Error} If there is a bug within the function. + * @private + */ + private findLongestCommonSequence; + /** @private */ + private collateWordTimestamps; + /** + * Groups tokens by word. Returns a tuple containing a list of strings with the words, + * and a list of `token_id` sequences with the tokens making up each word. + * @param {number[]} tokens + * @param {string} [language] + * @param {string} prepend_punctionations + * @param {string} append_punctuations + * + * @private + */ + private combineTokensIntoWords; + /** + * @param {number[]} token_ids List of token IDs to decode. + * @param {Object} decode_args Optional arguments for decoding + * @private + */ + private decodeWithTimestamps; + /** + * Combine tokens into words by splitting at any position where the tokens are decoded as valid unicode points. + * @param {number[]} tokens + * @returns {*} + * @private + */ + private splitTokensOnUnicode; + /** + * Combine tokens into words by splitting at whitespace and punctuation tokens. + * @param {number[]} tokens + * @private + */ + private splitTokensOnSpaces; + /** + * Merges punctuation tokens with neighboring words. + * @param {string[]} words + * @param {number[][]} tokens + * @param {number[][]} indices + * @param {string} prepended + * @param {string} appended + * @private + */ + private mergePunctuations; + /** + * Helper function to build translation inputs for a `WhisperTokenizer`, + * depending on the language, task, and whether to predict timestamp tokens. + * + * Used to override the prefix tokens appended to the start of the label sequence. + * + * **Example: Get ids for a language** + * ```javascript + * // instantiate the tokenizer and set the prefix token to Spanish + * const tokenizer = await WhisperTokenizer.from_pretrained('Xenova/whisper-tiny'); + * const forced_decoder_ids = tokenizer.get_decoder_prompt_ids({ language: 'spanish' }); + * // [(1, 50262), (2, 50363)] + * ``` + * + * @param {Object} options Options to generate the decoder prompt. + * @param {string} [options.language] The language of the transcription text. + * The corresponding language id token is appended to the start of the sequence for multilingual + * speech recognition and speech translation tasks, e.g. for "Spanish" the token "<|es|>" is appended + * to the start of sequence. + * @param {string} [options.task] Task identifier to append at the start of sequence (if any). + * This should be used for mulitlingual fine-tuning, with "transcribe" for speech recognition and + * "translate" for speech translation. + * @param {boolean} [options.no_timestamps] Whether to add the <|notimestamps|> token at the start of the sequence. + * @returns {number[][]} The decoder prompt ids. + */ + get_decoder_prompt_ids({ language, task, no_timestamps, }?: { + language?: string; + task?: string; + no_timestamps?: boolean; + }): number[][]; +} +export class CodeGenTokenizer extends PreTrainedTokenizer { +} +export class CLIPTokenizer extends PreTrainedTokenizer { +} +export class SiglipTokenizer extends PreTrainedTokenizer { +} +/** + * @todo This model is not yet supported by Hugging Face's "fast" tokenizers library (https://github.com/huggingface/tokenizers). + * Therefore, this implementation (which is based on fast tokenizers) may produce slightly inaccurate results. + */ +export class MarianTokenizer extends PreTrainedTokenizer { + languageRegex: RegExp; + supported_language_codes: string[]; + /** + * Encodes a single text. Overriding this method is necessary since the language codes + * must be removed before encoding with sentencepiece model. + * @see https://github.com/huggingface/transformers/blob/12d51db243a00726a548a43cc333390ebae731e3/src/transformers/models/marian/tokenization_marian.py#L204-L213 + * + * @param {string|null} text The text to encode. + * @returns {Array} The encoded tokens. + */ + _encode_text(text: string | null): any[]; +} +export class Wav2Vec2CTCTokenizer extends PreTrainedTokenizer { +} +export class BlenderbotTokenizer extends PreTrainedTokenizer { +} +export class BlenderbotSmallTokenizer extends BlenderbotTokenizer { +} +export class SpeechT5Tokenizer extends PreTrainedTokenizer { +} +export class NougatTokenizer extends PreTrainedTokenizer { +} +export class VitsTokenizer extends PreTrainedTokenizer { + constructor(tokenizerJSON: any, tokenizerConfig: any); +} +/** + * Helper class which is used to instantiate pretrained tokenizers with the `from_pretrained` function. + * The chosen tokenizer class is determined by the type specified in the tokenizer config. + * + * @example + * const tokenizer = await AutoTokenizer.from_pretrained('Xenova/bert-base-uncased'); + */ +export class AutoTokenizer { + static TOKENIZER_CLASS_MAPPING: { + T5Tokenizer: typeof T5Tokenizer; + DistilBertTokenizer: typeof DistilBertTokenizer; + CamembertTokenizer: typeof CamembertTokenizer; + DebertaTokenizer: typeof DebertaTokenizer; + DebertaV2Tokenizer: typeof DebertaV2Tokenizer; + BertTokenizer: typeof BertTokenizer; + HerbertTokenizer: typeof HerbertTokenizer; + ConvBertTokenizer: typeof ConvBertTokenizer; + RoFormerTokenizer: typeof RoFormerTokenizer; + XLMTokenizer: typeof XLMTokenizer; + ElectraTokenizer: typeof ElectraTokenizer; + MobileBertTokenizer: typeof MobileBertTokenizer; + SqueezeBertTokenizer: typeof SqueezeBertTokenizer; + AlbertTokenizer: typeof AlbertTokenizer; + GPT2Tokenizer: typeof GPT2Tokenizer; + BartTokenizer: typeof BartTokenizer; + MBartTokenizer: typeof MBartTokenizer; + MBart50Tokenizer: typeof MBart50Tokenizer; + RobertaTokenizer: typeof RobertaTokenizer; + WhisperTokenizer: typeof WhisperTokenizer; + CodeGenTokenizer: typeof CodeGenTokenizer; + CLIPTokenizer: typeof CLIPTokenizer; + SiglipTokenizer: typeof SiglipTokenizer; + MarianTokenizer: typeof MarianTokenizer; + BloomTokenizer: typeof BloomTokenizer; + NllbTokenizer: typeof NllbTokenizer; + M2M100Tokenizer: typeof M2M100Tokenizer; + LlamaTokenizer: typeof LlamaTokenizer; + CodeLlamaTokenizer: typeof CodeLlamaTokenizer; + XLMRobertaTokenizer: typeof XLMRobertaTokenizer; + MPNetTokenizer: typeof MPNetTokenizer; + FalconTokenizer: typeof FalconTokenizer; + GPTNeoXTokenizer: typeof GPTNeoXTokenizer; + EsmTokenizer: typeof EsmTokenizer; + Wav2Vec2CTCTokenizer: typeof Wav2Vec2CTCTokenizer; + BlenderbotTokenizer: typeof BlenderbotTokenizer; + BlenderbotSmallTokenizer: typeof BlenderbotSmallTokenizer; + SpeechT5Tokenizer: typeof SpeechT5Tokenizer; + NougatTokenizer: typeof NougatTokenizer; + VitsTokenizer: typeof VitsTokenizer; + PreTrainedTokenizer: typeof PreTrainedTokenizer; + }; + /** + * Instantiate one of the tokenizer classes of the library from a pretrained model. + * + * The tokenizer class to instantiate is selected based on the `tokenizer_class` property of the config object + * (either passed as an argument or loaded from `pretrained_model_name_or_path` if possible) + * + * @param {string} pretrained_model_name_or_path The name or path of the pretrained model. Can be either: + * - A string, the *model id* of a pretrained tokenizer hosted inside a model repo on huggingface.co. + * Valid model ids can be located at the root-level, like `bert-base-uncased`, or namespaced under a + * user or organization name, like `dbmdz/bert-base-german-cased`. + * - A path to a *directory* containing tokenizer files, e.g., `./my_model_directory/`. + * @param {PretrainedTokenizerOptions} options Additional options for loading the tokenizer. + * + * @returns {Promise} A new instance of the PreTrainedTokenizer class. + */ + static from_pretrained(pretrained_model_name_or_path: string, { quantized, progress_callback, config, cache_dir, local_files_only, revision, legacy, }?: PretrainedTokenizerOptions): Promise; +} +/** + * Additional tokenizer-specific properties. + */ +export type TokenizerProperties = { + /** + * Whether or not the `legacy` behavior of the tokenizer should be used. + */ + legacy?: boolean; +}; +export type PretrainedTokenizerOptions = import('./utils/hub.js').PretrainedOptions & TokenizerProperties; +export type BPENode = { + /** + * The token associated with the node + */ + token: string; + /** + * A positional bias for the node. + */ + bias: number; + /** + * The score of the node. + */ + score?: number; + /** + * The previous node in the linked list. + */ + prev?: BPENode; + /** + * The next node in the linked list. + */ + next?: BPENode; +}; +export type SplitDelimiterBehavior = 'removed' | 'isolated' | 'mergedWithPrevious' | 'mergedWithNext' | 'contiguous'; +export type PostProcessedOutput = { + /** + * List of token produced by the post-processor. + */ + tokens: string[]; + /** + * List of token type ids produced by the post-processor. + */ + token_type_ids?: number[]; +}; +export type EncodingSingle = { + /** + * List of token ids to be fed to a model. + */ + input_ids: number[]; + /** + * List of token type ids to be fed to a model + */ + attention_mask: number[]; + /** + * List of indices specifying which tokens should be attended to by the model + */ + token_type_ids?: number[]; +}; +declare const Normalizer_base: new () => { + (...args: any[]): any; + _call(...args: any[]): any; +}; +/** + * A base class for text normalization. + * @abstract + */ +declare class Normalizer extends Normalizer_base { + /** + * Factory method for creating normalizers from config objects. + * @static + * @param {Object} config The configuration object for the normalizer. + * @returns {Normalizer} A Normalizer object. + * @throws {Error} If an unknown Normalizer type is specified in the config. + */ + static fromConfig(config: any): Normalizer; + /** + * @param {Object} config The configuration object for the normalizer. + */ + constructor(config: any); + config: any; + /** + * Normalize the input text. + * @abstract + * @param {string} text The text to normalize. + * @returns {string} The normalized text. + * @throws {Error} If this method is not implemented in a subclass. + */ + normalize(text: string): string; + /** + * Alias for {@link Normalizer#normalize}. + * @param {string} text The text to normalize. + * @returns {string} The normalized text. + */ + _call(text: string): string; +} +declare const PreTokenizer_base: new () => { + (...args: any[]): any; + _call(...args: any[]): any; +}; +/** + * A callable class representing a pre-tokenizer used in tokenization. Subclasses + * should implement the `pre_tokenize_text` method to define the specific pre-tokenization logic. + * @extends Callable + */ +declare class PreTokenizer extends PreTokenizer_base { + /** + * Factory method that returns an instance of a subclass of `PreTokenizer` based on the provided configuration. + * + * @static + * @param {Object} config A configuration object for the pre-tokenizer. + * @returns {PreTokenizer} An instance of a subclass of `PreTokenizer`. + * @throws {Error} If the provided configuration object does not correspond to any known pre-tokenizer. + */ + static fromConfig(config: any): PreTokenizer; + /** + * Method that should be implemented by subclasses to define the specific pre-tokenization logic. + * + * @abstract + * @param {string} text The text to pre-tokenize. + * @param {Object} [options] Additional options for the pre-tokenization logic. + * @returns {string[]} The pre-tokenized text. + * @throws {Error} If the method is not implemented in the subclass. + */ + pre_tokenize_text(text: string, options?: any): string[]; + /** + * Tokenizes the given text into pre-tokens. + * @param {string|string[]} text The text or array of texts to pre-tokenize. + * @param {Object} [options] Additional options for the pre-tokenization logic. + * @returns {string[]} An array of pre-tokens. + */ + pre_tokenize(text: string | string[], options?: any): string[]; + /** + * Alias for {@link PreTokenizer#pre_tokenize}. + * @param {string|string[]} text The text or array of texts to pre-tokenize. + * @param {Object} [options] Additional options for the pre-tokenization logic. + * @returns {string[]} An array of pre-tokens. + */ + _call(text: string | string[], options?: any): string[]; +} +declare const PostProcessor_base: new () => { + (...args: any[]): any; + _call(...args: any[]): any; +}; +/** + * @typedef {Object} PostProcessedOutput + * @property {string[]} tokens List of token produced by the post-processor. + * @property {number[]} [token_type_ids] List of token type ids produced by the post-processor. + */ +/** + * @typedef {Object} EncodingSingle + * @property {number[]} input_ids List of token ids to be fed to a model. + * @property {number[]} attention_mask List of token type ids to be fed to a model + * @property {number[]} [token_type_ids] List of indices specifying which tokens should be attended to by the model + */ +/** + * @extends Callable + */ +declare class PostProcessor extends PostProcessor_base { + /** + * Factory method to create a PostProcessor object from a configuration object. + * + * @param {Object} config Configuration object representing a PostProcessor. + * @returns {PostProcessor} A PostProcessor object created from the given configuration. + * @throws {Error} If an unknown PostProcessor type is encountered. + */ + static fromConfig(config: any): PostProcessor; + /** + * @param {Object} config The configuration for the post-processor. + */ + constructor(config: any); + config: any; + /** + * Method to be implemented in subclass to apply post-processing on the given tokens. + * + * @param {Array} tokens The input tokens to be post-processed. + * @param {...*} args Additional arguments required by the post-processing logic. + * @returns {PostProcessedOutput} The post-processed tokens. + * @throws {Error} If the method is not implemented in subclass. + */ + post_process(tokens: any[], ...args: any[]): PostProcessedOutput; + /** + * Alias for {@link PostProcessor#post_process}. + * @param {Array} tokens The text or array of texts to post-process. + * @param {...*} args Additional arguments required by the post-processing logic. + * @returns {PostProcessedOutput} The post-processed tokens. + */ + _call(tokens: any[], ...args: any[]): PostProcessedOutput; +} +declare const Decoder_base: new () => { + (...args: any[]): any; + _call(...args: any[]): any; +}; +/** + * The base class for token decoders. + * @extends Callable + */ +declare class Decoder extends Decoder_base { + /** + * Creates a decoder instance based on the provided configuration. + * + * @param {Object} config The configuration object. + * @returns {Decoder} A decoder instance. + * @throws {Error} If an unknown decoder type is provided. + */ + static fromConfig(config: any): Decoder; + /** + * Creates an instance of `Decoder`. + * + * @param {Object} config The configuration object. + */ + constructor(config: any); + config: any; + /** @type {AddedToken[]} */ + added_tokens: AddedToken[]; + end_of_word_suffix: any; + trim_offsets: any; + /** + * Calls the `decode` method. + * + * @param {string[]} tokens The list of tokens. + * @returns {string} The decoded string. + */ + _call(tokens: string[]): string; + /** + * Decodes a list of tokens. + * @param {string[]} tokens The list of tokens. + * @returns {string} The decoded string. + */ + decode(tokens: string[]): string; + /** + * Apply the decoder to a list of tokens. + * + * @param {string[]} tokens The list of tokens. + * @returns {string[]} The decoded list of tokens. + * @throws {Error} If the `decode_chain` method is not implemented in the subclass. + */ + decode_chain(tokens: string[]): string[]; +} +/** + * Represent a token added by the user on top of the existing Model vocabulary. + * AddedToken can be configured to specify the behavior they should have in various situations like: + * - Whether they should only match single words + * - Whether to include any whitespace on its left or right + */ +declare class AddedToken { + /** + * Creates a new instance of AddedToken. + * @param {Object} config Added token configuration object. + * @param {string} config.content The content of the added token. + * @param {number} config.id The id of the added token. + * @param {boolean} [config.single_word=false] Whether this token must be a single word or can break words. + * @param {boolean} [config.lstrip=false] Whether this token should strip whitespaces on its left. + * @param {boolean} [config.rstrip=false] Whether this token should strip whitespaces on its right. + * @param {boolean} [config.normalized=false] Whether this token should be normalized. + * @param {boolean} [config.special=false] Whether this token is special. + */ + constructor(config: { + content: string; + id: number; + single_word?: boolean; + lstrip?: boolean; + rstrip?: boolean; + normalized?: boolean; + special?: boolean; + }); + content: string; + id: number; + single_word: boolean; + lstrip: boolean; + rstrip: boolean; + special: boolean; + normalized: boolean; +} +import { Tensor } from './utils/tensor.js'; +export {}; +//# sourceMappingURL=tokenizers.d.ts.map \ No newline at end of file diff --git a/core/vendor/modules/@xenova/transformers/types/tokenizers.d.ts.map b/core/vendor/modules/@xenova/transformers/types/tokenizers.d.ts.map new file mode 100644 index 000000000..089898b48 --- /dev/null +++ b/core/vendor/modules/@xenova/transformers/types/tokenizers.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"tokenizers.d.ts","sourceRoot":"","sources":["../src/tokenizers.js"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/core/vendor/modules/@xenova/transformers/types/transformers.d.ts b/core/vendor/modules/@xenova/transformers/types/transformers.d.ts new file mode 100644 index 000000000..3b83ad482 --- /dev/null +++ b/core/vendor/modules/@xenova/transformers/types/transformers.d.ts @@ -0,0 +1,11 @@ +export * from "./pipelines.js"; +export * from "./env.js"; +export * from "./models.js"; +export * from "./tokenizers.js"; +export * from "./processors.js"; +export * from "./configs.js"; +export * from "./utils/audio.js"; +export * from "./utils/image.js"; +export * from "./utils/tensor.js"; +export * from "./utils/maths.js"; +//# sourceMappingURL=transformers.d.ts.map \ No newline at end of file diff --git a/core/vendor/modules/@xenova/transformers/types/transformers.d.ts.map b/core/vendor/modules/@xenova/transformers/types/transformers.d.ts.map new file mode 100644 index 000000000..7994743ed --- /dev/null +++ b/core/vendor/modules/@xenova/transformers/types/transformers.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"transformers.d.ts","sourceRoot":"","sources":["../src/transformers.js"],"names":[],"mappings":""} \ No newline at end of file diff --git a/core/vendor/modules/@xenova/transformers/types/utils/audio.d.ts b/core/vendor/modules/@xenova/transformers/types/utils/audio.d.ts new file mode 100644 index 000000000..a670b3658 --- /dev/null +++ b/core/vendor/modules/@xenova/transformers/types/utils/audio.d.ts @@ -0,0 +1,121 @@ +/** + * Helper function to read audio from a path/URL. + * @param {string|URL} url The path/URL to load the audio from. + * @param {number} sampling_rate The sampling rate to use when decoding the audio. + * @returns {Promise} The decoded audio as a `Float32Array`. + */ +export function read_audio(url: string | URL, sampling_rate: number): Promise; +/** + * Generates a Hanning window of length M. + * + * @param {number} M The length of the Hanning window to generate. + * @returns {Float64Array} The generated Hanning window. + */ +export function hanning(M: number): Float64Array; +/** + * Creates a frequency bin conversion matrix used to obtain a mel spectrogram. This is called a *mel filter bank*, and + * various implementation exist, which differ in the number of filters, the shape of the filters, the way the filters + * are spaced, the bandwidth of the filters, and the manner in which the spectrum is warped. The goal of these + * features is to approximate the non-linear human perception of the variation in pitch with respect to the frequency. + * @param {number} num_frequency_bins Number of frequencies used to compute the spectrogram (should be the same as in `stft`). + * @param {number} num_mel_filters Number of mel filters to generate. + * @param {number} min_frequency Lowest frequency of interest in Hz. + * @param {number} max_frequency Highest frequency of interest in Hz. This should not exceed `sampling_rate / 2`. + * @param {number} sampling_rate Sample rate of the audio waveform. + * @param {string} [norm] If `"slaney"`, divide the triangular mel weights by the width of the mel band (area normalization). + * @param {string} [mel_scale] The mel frequency scale to use, `"htk"` or `"slaney"`. + * @param {boolean} [triangularize_in_mel_space] If this option is enabled, the triangular filter is applied in mel space rather than frequency space. + * This should be set to `true` in order to get the same results as `torchaudio` when computing mel filters. + * @returns {number[][]} Triangular filter bank matrix, which is a 2D array of shape (`num_frequency_bins`, `num_mel_filters`). + * This is a projection matrix to go from a spectrogram to a mel spectrogram. + */ +export function mel_filter_bank(num_frequency_bins: number, num_mel_filters: number, min_frequency: number, max_frequency: number, sampling_rate: number, norm?: string, mel_scale?: string, triangularize_in_mel_space?: boolean): number[][]; +/** + * Calculates a spectrogram over one waveform using the Short-Time Fourier Transform. + * + * This function can create the following kinds of spectrograms: + * - amplitude spectrogram (`power = 1.0`) + * - power spectrogram (`power = 2.0`) + * - complex-valued spectrogram (`power = None`) + * - log spectrogram (use `log_mel` argument) + * - mel spectrogram (provide `mel_filters`) + * - log-mel spectrogram (provide `mel_filters` and `log_mel`) + * + * In this implementation, the window is assumed to be zero-padded to have the same size as the analysis frame. + * A padded window can be obtained from `window_function()`. The FFT input buffer may be larger than the analysis frame, + * typically the next power of two. + * + * @param {Float32Array|Float64Array} waveform The input waveform of shape `(length,)`. This must be a single real-valued, mono waveform. + * @param {Float32Array|Float64Array} window The windowing function to apply of shape `(frame_length,)`, including zero-padding if necessary. The actual window length may be + * shorter than `frame_length`, but we're assuming the array has already been zero-padded. + * @param {number} frame_length The length of the analysis frames in samples (a.k.a., `fft_length`). + * @param {number} hop_length The stride between successive analysis frames in samples. + * @param {Object} options + * @param {number} [options.fft_length=null] The size of the FFT buffer in samples. This determines how many frequency bins the spectrogram will have. + * For optimal speed, this should be a power of two. If `null`, uses `frame_length`. + * @param {number} [options.power=1.0] If 1.0, returns the amplitude spectrogram. If 2.0, returns the power spectrogram. If `null`, returns complex numbers. + * @param {boolean} [options.center=true] Whether to pad the waveform so that frame `t` is centered around time `t * hop_length`. If `false`, frame + * `t` will start at time `t * hop_length`. + * @param {string} [options.pad_mode="reflect"] Padding mode used when `center` is `true`. Possible values are: `"constant"` (pad with zeros), + * `"edge"` (pad with edge values), `"reflect"` (pads with mirrored values). + * @param {boolean} [options.onesided=true] If `true`, only computes the positive frequencies and returns a spectrogram containing `fft_length // 2 + 1` + * frequency bins. If `false`, also computes the negative frequencies and returns `fft_length` frequency bins. + * @param {number} [options.preemphasis=null] Coefficient for a low-pass filter that applies pre-emphasis before the DFT. + * @param {number[][]} [options.mel_filters=null] The mel filter bank of shape `(num_freq_bins, num_mel_filters)`. + * If supplied, applies this filter bank to create a mel spectrogram. + * @param {number} [options.mel_floor=1e-10] Minimum value of mel frequency banks. + * @param {string} [options.log_mel=null] How to convert the spectrogram to log scale. Possible options are: + * `null` (don't convert), `"log"` (take the natural logarithm) `"log10"` (take the base-10 logarithm), `"dB"` (convert to decibels). + * Can only be used when `power` is not `null`. + * @param {number} [options.reference=1.0] Sets the input spectrogram value that corresponds to 0 dB. For example, use `max(spectrogram)[0]` to set + * the loudest part to 0 dB. Must be greater than zero. + * @param {number} [options.min_value=1e-10] The spectrogram will be clipped to this minimum value before conversion to decibels, to avoid taking `log(0)`. + * For a power spectrogram, the default of `1e-10` corresponds to a minimum of -100 dB. For an amplitude spectrogram, the value `1e-5` corresponds to -100 dB. + * Must be greater than zero. + * @param {number} [options.db_range=null] Sets the maximum dynamic range in decibels. For example, if `db_range = 80`, the difference between the + * peak value and the smallest value will never be more than 80 dB. Must be greater than zero. + * @param {boolean} [options.remove_dc_offset=null] Subtract mean from waveform on each frame, applied before pre-emphasis. This should be set to `true` in + * order to get the same results as `torchaudio.compliance.kaldi.fbank` when computing mel filters. + * @param {number} [options.max_num_frames=null] If provided, limits the number of frames to compute to this value. + * @param {boolean} [options.do_pad=true] If `true`, pads the output spectrogram to have `max_num_frames` frames. + * @param {boolean} [options.transpose=false] If `true`, the returned spectrogram will have shape `(num_frames, num_frequency_bins/num_mel_filters)`. If `false`, the returned spectrogram will have shape `(num_frequency_bins/num_mel_filters, num_frames)`. + * @returns {{data: Float32Array, dims: number[]}} Spectrogram of shape `(num_frequency_bins, length)` (regular spectrogram) or shape `(num_mel_filters, length)` (mel spectrogram). + */ +export function spectrogram(waveform: Float32Array | Float64Array, window: Float32Array | Float64Array, frame_length: number, hop_length: number, { fft_length, power, center, pad_mode, onesided, preemphasis, mel_filters, mel_floor, log_mel, reference, min_value, db_range, remove_dc_offset, max_num_frames, do_pad, transpose, }?: { + fft_length?: number; + power?: number; + center?: boolean; + pad_mode?: string; + onesided?: boolean; + preemphasis?: number; + mel_filters?: number[][]; + mel_floor?: number; + log_mel?: string; + reference?: number; + min_value?: number; + db_range?: number; + remove_dc_offset?: boolean; + max_num_frames?: number; + do_pad?: boolean; + transpose?: boolean; +}): { + data: Float32Array; + dims: number[]; +}; +/** + * Returns an array containing the specified window. + * @param {number} window_length The length of the window in samples. + * @param {string} name The name of the window function. + * @param {Object} options Additional options. + * @param {boolean} [options.periodic=true] Whether the window is periodic or symmetric. + * @param {number} [options.frame_length=null] The length of the analysis frames in samples. + * Provide a value for `frame_length` if the window is smaller than the frame length, so that it will be zero-padded. + * @param {boolean} [options.center=true] Whether to center the window inside the FFT buffer. Only used when `frame_length` is provided. + * @returns {Float64Array} The window of shape `(window_length,)` or `(frame_length,)`. + */ +export function window_function(window_length: number, name: string, { periodic, frame_length, center, }?: { + periodic?: boolean; + frame_length?: number; + center?: boolean; +}): Float64Array; +//# sourceMappingURL=audio.d.ts.map \ No newline at end of file diff --git a/core/vendor/modules/@xenova/transformers/types/utils/audio.d.ts.map b/core/vendor/modules/@xenova/transformers/types/utils/audio.d.ts.map new file mode 100644 index 000000000..b5df9ec03 --- /dev/null +++ b/core/vendor/modules/@xenova/transformers/types/utils/audio.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"audio.d.ts","sourceRoot":"","sources":["../../src/utils/audio.js"],"names":[],"mappings":"AAkBA;;;;;GAKG;AACH,gCAJW,MAAM,GAAC,GAAG,iBACV,MAAM,GACJ,QAAQ,YAAY,CAAC,CAuDjC;AAED;;;;;GAKG;AACH,2BAHW,MAAM,GACJ,YAAY,CAiBxB;AAqGD;;;;;;;;;;;;;;;;GAgBG;AACH,oDAZW,MAAM,mBACN,MAAM,iBACN,MAAM,iBACN,MAAM,iBACN,MAAM,SACN,MAAM,cACN,MAAM,+BACN,OAAO,GAEL,MAAM,EAAE,EAAE,CAkDtB;AAqHD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AACH,sCApCW,YAAY,GAAC,YAAY,UACzB,YAAY,GAAC,YAAY,gBAEzB,MAAM,cACN,MAAM;IAEW,UAAU,GAA3B,MAAM;IAEW,KAAK,GAAtB,MAAM;IACY,MAAM,GAAxB,OAAO;IAEU,QAAQ,GAAzB,MAAM;IAEY,QAAQ,GAA1B,OAAO;IAEU,WAAW,GAA5B,MAAM;IACe,WAAW,GAAhC,MAAM,EAAE,EAAE;IAEO,SAAS,GAA1B,MAAM;IACW,OAAO,GAAxB,MAAM;IAGW,SAAS,GAA1B,MAAM;IAEW,SAAS,GAA1B,MAAM;IAGW,QAAQ,GAAzB,MAAM;IAEY,gBAAgB,GAAlC,OAAO;IAEU,cAAc,GAA/B,MAAM;IACY,MAAM,GAAxB,OAAO;IACW,SAAS,GAA3B,OAAO;;UACE,YAAY;UAAQ,MAAM,EAAE;EA8L/C;AAED;;;;;;;;;;GAUG;AACH,+CATW,MAAM,QACN,MAAM;IAEY,QAAQ,GAA1B,OAAO;IACU,YAAY,GAA7B,MAAM;IAEY,MAAM,GAAxB,OAAO;IACL,YAAY,CA+BxB"} \ No newline at end of file diff --git a/core/vendor/modules/@xenova/transformers/types/utils/core.d.ts b/core/vendor/modules/@xenova/transformers/types/utils/core.d.ts new file mode 100644 index 000000000..6d5e7e0c0 --- /dev/null +++ b/core/vendor/modules/@xenova/transformers/types/utils/core.d.ts @@ -0,0 +1,99 @@ +/** + * @file Core utility functions/classes for Transformers.js. + * + * These are only used internally, meaning an end-user shouldn't + * need to access anything here. + * + * @module utils/core + */ +/** + * Helper function to dispatch progress callbacks. + * + * @param {Function} progress_callback The progress callback function to dispatch. + * @param {any} data The data to pass to the progress callback function. + * @returns {void} + * @private + */ +export function dispatchCallback(progress_callback: Function, data: any): void; +/** + * Reverses the keys and values of an object. + * + * @param {Object} data The object to reverse. + * @returns {Object} The reversed object. + * @see https://ultimatecourses.com/blog/reverse-object-keys-and-values-in-javascript + */ +export function reverseDictionary(data: any): any; +/** + * Escapes regular expression special characters from a string by replacing them with their escaped counterparts. + * + * @param {string} string The string to escape. + * @returns {string} The escaped string. + */ +export function escapeRegExp(string: string): string; +/** + * Check if a value is a typed array. + * @param {*} val The value to check. + * @returns {boolean} True if the value is a `TypedArray`, false otherwise. + * + * Adapted from https://stackoverflow.com/a/71091338/13989043 + */ +export function isTypedArray(val: any): boolean; +/** + * Check if a value is an integer. + * @param {*} x The value to check. + * @returns {boolean} True if the value is a string, false otherwise. + */ +export function isIntegralNumber(x: any): boolean; +/** + * Check if a value is exists. + * @param {*} x The value to check. + * @returns {boolean} True if the value exists, false otherwise. + */ +export function exists(x: any): boolean; +/** + * Calculates the dimensions of a nested array. + * + * @param {any[]} arr The nested array to calculate dimensions for. + * @returns {number[]} An array containing the dimensions of the input array. + */ +export function calculateDimensions(arr: any[]): number[]; +/** + * Replicate python's .pop() method for objects. + * @param {Object} obj The object to pop from. + * @param {string} key The key to pop. + * @param {*} defaultValue The default value to return if the key does not exist. + * @returns {*} The value of the popped key. + * @throws {Error} If the key does not exist and no default value is provided. + */ +export function pop(obj: any, key: string, defaultValue?: any): any; +/** + * Efficiently merge arrays, creating a new copy. + * Adapted from https://stackoverflow.com/a/6768642/13989043 + * @param {Array[]} arrs Arrays to merge. + * @returns {Array} The merged array. + */ +export function mergeArrays(...arrs: any[][]): any[]; +/** + * Compute the Cartesian product of given arrays + * @param {...Array} a Arrays to compute the product + * @returns {Array} Returns the computed Cartesian product as an array + * @private + */ +export function product(...a: any[][]): any[]; +/** + * Calculates the index offset for a given index and window size. + * @param {number} i The index. + * @param {number} w The window size. + * @returns {number} The index offset. + */ +export function calculateReflectOffset(i: number, w: number): number; +/** + * A base class for creating callable objects. + * + * @type {new () => {(...args: any[]): any, _call(...args: any[]): any}} + */ +export const Callable: new () => { + (...args: any[]): any; + _call(...args: any[]): any; +}; +//# sourceMappingURL=core.d.ts.map \ No newline at end of file diff --git a/core/vendor/modules/@xenova/transformers/types/utils/core.d.ts.map b/core/vendor/modules/@xenova/transformers/types/utils/core.d.ts.map new file mode 100644 index 000000000..4c54845cc --- /dev/null +++ b/core/vendor/modules/@xenova/transformers/types/utils/core.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../src/utils/core.js"],"names":[],"mappings":"AACA;;;;;;;GAOG;AAEH;;;;;;;GAOG;AACH,oEAJW,GAAG,GACD,IAAI,CAKhB;AAED;;;;;;GAMG;AACH,kDAGC;AAED;;;;;GAKG;AACH,qCAHW,MAAM,GACJ,MAAM,CAIlB;AAoCD;;;;;;GAMG;AACH,wCAJa,OAAO,CAMnB;AAGD;;;;GAIG;AACH,0CAFa,OAAO,CAInB;AAED;;;;GAIG;AACH,gCAFa,OAAO,CAInB;AAED;;;;;GAKG;AACH,yCAHW,GAAG,EAAE,GACH,MAAM,EAAE,CAUpB;AAED;;;;;;;GAOG;AACH,mCALW,MAAM,2BAehB;AAED;;;;;GAKG;AACH,qCAHY,OAAO,SAKlB;AAED;;;;;GAKG;AACH,8CAIC;AAED;;;;;GAKG;AACH,0CAJW,MAAM,KACN,MAAM,GACJ,MAAM,CAIlB;AAlID;;;;GAIG;AACH;cAF+B,GAAG,EAAE,GAAG,GAAG;mBAAiB,GAAG,EAAE,GAAG,GAAG;EA6BnE"} \ No newline at end of file diff --git a/core/vendor/modules/@xenova/transformers/types/utils/data-structures.d.ts b/core/vendor/modules/@xenova/transformers/types/utils/data-structures.d.ts new file mode 100644 index 000000000..1741f75a2 --- /dev/null +++ b/core/vendor/modules/@xenova/transformers/types/utils/data-structures.d.ts @@ -0,0 +1,224 @@ +/** + * @file Custom data structures. + * + * These are only used internally, meaning an end-user shouldn't + * need to access anything here. + * + * @module utils/data-structures + */ +/** + * Efficient Heap-based Implementation of a Priority Queue. + * It uses an array-based binary heap, where the root is at index `0`, and the + * children of node `i` are located at indices `2i + 1` and `2i + 2`, respectively. + * + * Adapted from the following sources: + * - https://stackoverflow.com/a/42919752/13989043 (original) + * - https://github.com/belladoreai/llama-tokenizer-js (minor improvements) + */ +export class PriorityQueue { + /** + * Create a new PriorityQueue. + * @param {Function} comparator Comparator function to determine priority. Defaults to a MaxHeap. + */ + constructor(comparator?: Function); + _heap: any[]; + _comparator: Function; + /** + * The size of the queue + */ + get size(): number; + /** + * Check if the queue is empty. + * @returns {boolean} `true` if the queue is empty, `false` otherwise. + */ + isEmpty(): boolean; + /** + * Return the element with the highest priority in the queue. + * @returns {any} The highest priority element in the queue. + */ + peek(): any; + /** + * Add one or more elements to the queue. + * @param {...any} values The values to push into the queue. + * @returns {number} The new size of the queue. + */ + push(...values: any[]): number; + /** + * Add multiple elements to the queue. + * @param {any[]} values The values to push into the queue. + * @returns {number} The new size of the queue. + */ + extend(values: any[]): number; + /** + * Remove and return the element with the highest priority in the queue. + * @returns {any} The element with the highest priority in the queue. + */ + pop(): any; + /** + * Replace the element with the highest priority in the queue with a new value. + * @param {*} value The new value. + * @returns {*} The replaced value. + */ + replace(value: any): any; + /** + * Compute the index for the parent of the node at index `i`. + * @param {number} i The index of the node to get the parent of. + * @returns {number} The index of the parent node. + * @private + */ + private _parent; + /** + * Compute the index for the left child of the node at index `i`. + * @param {number} i The index of the node to get the left child of. + * @returns {number} The index of the left child. + * @private + */ + private _left; + /** + * Compute the index for the right child of the node at index `i`. + * @param {number} i The index of the node to get the right child of. + * @returns {number} The index of the right child. + * @private + */ + private _right; + /** + * Check if the element at index `i` is greater than the element at index `j`. + * @param {number} i The index of the first element to compare. + * @param {number} j The index of the second element to compare. + * @returns {boolean} `true` if the element at index `i` is greater than the element at index `j`, `false` otherwise. + * @private + */ + private _greater; + /** + * Swap the elements at indices `i` and `j`. + * @param {number} i The index of the first element to swap. + * @param {number} j The index of the second element to swap. + * @private + */ + private _swap; + /** + * Maintain the heap property by updating positions in the heap, + * starting at the last element and moving up the heap. + * @private + */ + private _siftUp; + /** + * Maintain the heap property by updating positions in the heap, + * starting at the first element and moving down the heap. + * @private + */ + private _siftDown; +} +/** + * A trie structure to efficiently store and search for strings. + */ +export class CharTrie { + root: CharTrieNode; + /** + * Adds one or more `texts` to the trie. + * @param {string[]} texts The strings to add to the trie. + */ + extend(texts: string[]): void; + /** + * Adds text to the trie. + * @param {string} text The string to add to the trie. + */ + push(text: string): void; + /** + * Searches the trie for all strings with a common prefix of `text`. + * @param {string} text The common prefix to search for. + * @yields {string} Each string in the trie that has `text` as a prefix. + */ + commonPrefixSearch(text: string): Generator; +} +/** + * A lattice data structure to be used for tokenization. + */ +export class TokenLattice { + /** + * Creates a new TokenLattice instance. + * + * @param {string} sentence The input sentence to be tokenized. + * @param {number} bosTokenId The beginning-of-sequence token ID. + * @param {number} eosTokenId The end-of-sequence token ID. + */ + constructor(sentence: string, bosTokenId: number, eosTokenId: number); + sentence: string; + len: number; + bosTokenId: number; + eosTokenId: number; + nodes: TokenLatticeNode[]; + beginNodes: any[][]; + endNodes: any[][]; + /** + * Inserts a new token node into the token lattice. + * + * @param {number} pos The starting position of the token. + * @param {number} length The length of the token. + * @param {number} score The score of the token. + * @param {number} tokenId The token ID of the token. + */ + insert(pos: number, length: number, score: number, tokenId: number): void; + /** + * Implements the Viterbi algorithm to compute the most likely sequence of tokens. + * + * @returns {TokenLatticeNode[]} The array of nodes representing the most likely sequence of tokens. + */ + viterbi(): TokenLatticeNode[]; + /** + * @param {TokenLatticeNode} node + * @returns {string} The array of nodes representing the most likely sequence of tokens. + */ + piece(node: TokenLatticeNode): string; + /** + * @returns {Array} The array of nodes representing the most likely sequence of tokens. + */ + tokens(): any[]; + /** + * @returns {Array} The array of nodes representing the most likely sequence of tokens. + */ + tokenIds(): any[]; +} +/** + * Represents a node in a character trie. + */ +declare class CharTrieNode { + /** + * Returns a new `CharTrieNode` instance with default values. + * @returns {CharTrieNode} A new `CharTrieNode` instance with `isLeaf` set to `false` and an empty `children` map. + */ + static default(): CharTrieNode; + /** + * Create a new CharTrieNode. + * @param {boolean} isLeaf Whether the node is a leaf node or not. + * @param {Map} children A map containing the node's children, where the key is a character and the value is a `CharTrieNode`. + */ + constructor(isLeaf: boolean, children: Map); + isLeaf: boolean; + children: Map; +} +declare class TokenLatticeNode { + /** + * Represents a node in a token lattice for a given sentence. + * @param {number} tokenId The ID of the token associated with this node. + * @param {number} nodeId The ID of this node. + * @param {number} pos The starting position of the token in the sentence. + * @param {number} length The length of the token. + * @param {number} score The score associated with the token. + */ + constructor(tokenId: number, nodeId: number, pos: number, length: number, score: number); + tokenId: number; + nodeId: number; + pos: number; + length: number; + score: number; + prev: any; + backtraceScore: number; + /** + * Returns a clone of this node. + * @returns {TokenLatticeNode} A clone of this node. + */ + clone(): TokenLatticeNode; +} +export {}; +//# sourceMappingURL=data-structures.d.ts.map \ No newline at end of file diff --git a/core/vendor/modules/@xenova/transformers/types/utils/data-structures.d.ts.map b/core/vendor/modules/@xenova/transformers/types/utils/data-structures.d.ts.map new file mode 100644 index 000000000..66b9a21b0 --- /dev/null +++ b/core/vendor/modules/@xenova/transformers/types/utils/data-structures.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"data-structures.d.ts","sourceRoot":"","sources":["../../src/utils/data-structures.js"],"names":[],"mappings":"AACA;;;;;;;GAOG;AAGH;;;;;;;;GAQG;AACH;IAEI;;;OAGG;IACH,mCAGC;IAFG,aAAe;IACf,sBAA6B;IAGjC;;OAEG;IACH,mBAEC;IAED;;;OAGG;IACH,WAFa,OAAO,CAInB;IAED;;;OAGG;IACH,QAFa,GAAG,CAIf;IAED;;;;OAIG;IACH,gBAHe,GAAG,KACL,MAAM,CAIlB;IAED;;;;OAIG;IACH,eAHW,GAAG,EAAE,GACH,MAAM,CAQlB;IAED;;;OAGG;IACH,OAFa,GAAG,CAWf;IAED;;;;OAIG;IACH,yBAKC;IAED;;;;;OAKG;IACH,gBAEC;IAED;;;;;OAKG;IACH,cAEC;IAED;;;;;OAKG;IACH,eAEC;IAED;;;;;;OAMG;IACH,iBAEC;IAED;;;;;OAKG;IACH,cAIC;IAED;;;;OAIG;IACH,gBAMC;IACD;;;;OAIG;IACH,kBAYC;CACJ;AAED;;GAEG;AACH;IAEQ,mBAAkC;IAGtC;;;OAGG;IACH,cAFW,MAAM,EAAE,QAMlB;IAED;;;OAGG;IACH,WAFW,MAAM,QAahB;IAED;;;;OAIG;IACH,yBAHW,MAAM,oCAchB;CACJ;AAyBD;;GAEG;AACH;IACI;;;;;;OAMG;IACH,sBAJW,MAAM,cACN,MAAM,cACN,MAAM,EAiBhB;IAdG,iBAAwB;IACxB,YAA0B;IAC1B,mBAA4B;IAC5B,mBAA4B;IAC5B,0BAAe;IACf,oBAAgE;IAChE,kBAA8D;IAUlE;;;;;;;OAOG;IACH,YALW,MAAM,UACN,MAAM,SACN,MAAM,WACN,MAAM,QAQhB;IAED;;;;OAIG;IACH,WAFa,gBAAgB,EAAE,CA+C9B;IAED;;;OAGG;IACH,YAHW,gBAAgB,GACd,MAAM,CAIlB;IAED;;OAEG;IACH,gBAGC;IAED;;OAEG;IACH,kBAGC;CACJ;AA9ID;;GAEG;AACH;IAWI;;;OAGG;IACH,kBAFa,YAAY,CAIxB;IAhBD;;;;OAIG;IACH,oBAHW,OAAO,YACP,IAAI,MAAM,EAAE,YAAY,CAAC,EAKnC;IAFG,gBAAoB;IACpB,oCAAwB;CAU/B;AA0HD;IACI;;;;;;;OAOG;IACH,qBANW,MAAM,UACN,MAAM,OACN,MAAM,UACN,MAAM,SACN,MAAM,EAUhB;IAPG,gBAAsB;IACtB,eAAoB;IACpB,YAAc;IACd,eAAoB;IACpB,cAAkB;IAClB,UAAgB;IAChB,uBAAyB;IAG7B;;;OAGG;IACH,SAFa,gBAAgB,CAO5B;CACJ"} \ No newline at end of file diff --git a/core/vendor/modules/@xenova/transformers/types/utils/generation.d.ts b/core/vendor/modules/@xenova/transformers/types/utils/generation.d.ts new file mode 100644 index 000000000..1688d6a6d --- /dev/null +++ b/core/vendor/modules/@xenova/transformers/types/utils/generation.d.ts @@ -0,0 +1,593 @@ +declare const LogitsProcessorList_base: new () => { + (...args: any[]): any; + _call(...args: any[]): any; +}; +/** + * A class representing a list of logits processors. A logits processor is a function that modifies the logits + * output of a language model. This class provides methods for adding new processors and applying all processors to a + * batch of logits. + * + * @extends Callable + */ +export class LogitsProcessorList extends LogitsProcessorList_base { + processors: any[]; + /** + * Adds a new logits processor to the list. + * + * @param {LogitsProcessor} item The logits processor function to add. + */ + push(item: LogitsProcessor): void; + /** + * Adds multiple logits processors to the list. + * + * @param {LogitsProcessor[]} items The logits processor functions to add. + */ + extend(items: LogitsProcessor[]): void; + /** + * Applies all logits processors in the list to a batch of logits, modifying them in-place. + * + * @param {number[]} input_ids The input IDs for the language model. + * @param {number[][]} batchedLogits A 2D array of logits, where each row corresponds to a single + * input sequence in the batch. + */ + _call(input_ids: number[], batchedLogits: number[][]): void; + [Symbol.iterator](): IterableIterator; +} +declare const LogitsProcessor_base: new () => { + (...args: any[]): any; + _call(...args: any[]): any; +}; +/** + * Base class for processing logits. + * @extends Callable + */ +export class LogitsProcessor extends LogitsProcessor_base { + /** + * Apply the processor to the input logits. + * + * @abstract + * @param {Array} input_ids The input ids. + * @param {Tensor} logits The logits to process. + * @throws {Error} Throws an error if `_call` is not implemented in the subclass. + */ + _call(input_ids: any[], logits: Tensor): void; +} +/** + * A logits processor that forces a specific token to be generated by the decoder. + * + * @extends LogitsProcessor + */ +export class ForceTokensLogitsProcessor extends LogitsProcessor { + /** + * Constructs a new instance of `ForceTokensLogitsProcessor`. + * + * @param {Array} forced_decoder_ids The ids of tokens that should be forced. + */ + constructor(forced_decoder_ids: any[]); + force_token_map: { + [k: string]: any; + }; + /** + * Apply the processor to the input logits. + * + * @param {Array} input_ids The input ids. + * @param {Tensor} logits The logits to process. + * @returns {Tensor} The processed logits. + */ + _call(input_ids: any[], logits: Tensor): Tensor; +} +/** + * A LogitsProcessor that forces a BOS token at the beginning of the generated sequence. + * @extends LogitsProcessor + */ +export class ForcedBOSTokenLogitsProcessor extends LogitsProcessor { + /** + * Create a ForcedBOSTokenLogitsProcessor. + * @param {number} bos_token_id The ID of the beginning-of-sequence token to be forced. + */ + constructor(bos_token_id: number); + bos_token_id: number; + /** + * Apply the BOS token forcing to the logits. + * @param {Array} input_ids The input IDs. + * @param {Object} logits The logits. + * @returns {Object} The logits with BOS token forcing. + */ + _call(input_ids: any[], logits: any): any; +} +/** + * A logits processor that forces end-of-sequence token probability to 1. + * + * @extends LogitsProcessor + */ +export class ForcedEOSTokenLogitsProcessor extends LogitsProcessor { + /** + * Create a ForcedEOSTokenLogitsProcessor. + * @param {number} max_length Max length of the sequence. + * @param {number|number[]} forced_eos_token_id The ID of the end-of-sequence token to be forced. + */ + constructor(max_length: number, forced_eos_token_id: number | number[]); + max_length: number; + forced_eos_token_id: number | number[]; + /** + * Apply the processor to input_ids and logits. + * + * @param {number[]} input_ids The input ids. + * @param {Tensor} logits The logits tensor. + */ + _call(input_ids: number[], logits: Tensor): void; +} +/** + * A LogitsProcessor that suppresses a list of tokens as soon as the `generate` function starts + * generating using `begin_index` tokens. This should ensure that the tokens defined by + * `begin_suppress_tokens` at not sampled at the begining of the generation. + * @extends LogitsProcessor + */ +export class SuppressTokensAtBeginLogitsProcessor extends LogitsProcessor { + /** + * Create a SuppressTokensAtBeginLogitsProcessor. + * @param {number[]} begin_suppress_tokens The IDs of the tokens to suppress. + * @param {number} begin_index The number of tokens to generate before suppressing tokens. + */ + constructor(begin_suppress_tokens: number[], begin_index: number); + begin_suppress_tokens: number[]; + begin_index: number; + /** + * Apply the BOS token forcing to the logits. + * @param {Array} input_ids The input IDs. + * @param {Object} logits The logits. + * @returns {Object} The logits with BOS token forcing. + */ + _call(input_ids: any[], logits: any): any; +} +/** + * A LogitsProcessor that handles adding timestamps to generated text. + * @extends LogitsProcessor + */ +export class WhisperTimeStampLogitsProcessor extends LogitsProcessor { + /** + * Constructs a new WhisperTimeStampLogitsProcessor. + * @param {Object} generate_config The config object passed to the `generate()` method of a transformer model. + * @param {number} generate_config.eos_token_id The ID of the end-of-sequence token. + * @param {number} generate_config.no_timestamps_token_id The ID of the token used to indicate that a token should not have a timestamp. + * @param {number[][]} [generate_config.forced_decoder_ids] An array of two-element arrays representing decoder IDs that are forced to appear in the output. The second element of each array indicates whether the token is a timestamp. + * @param {number} [generate_config.max_initial_timestamp_index] The maximum index at which an initial timestamp can appear. + */ + constructor(generate_config: { + eos_token_id: number; + no_timestamps_token_id: number; + forced_decoder_ids?: number[][]; + max_initial_timestamp_index?: number; + }); + eos_token_id: number; + no_timestamps_token_id: number; + timestamp_begin: number; + begin_index: number; + max_initial_timestamp_index: number; + /** + * Modify the logits to handle timestamp tokens. + * @param {Array} input_ids The input sequence of tokens. + * @param {Tensor} logits The logits output by the model. + * @returns {Tensor} The modified logits. + */ + _call(input_ids: any[], logits: Tensor): Tensor; +} +/** + * A logits processor that disallows ngrams of a certain size to be repeated. + * + * @extends LogitsProcessor + */ +export class NoRepeatNGramLogitsProcessor extends LogitsProcessor { + /** + * Create a NoRepeatNGramLogitsProcessor. + * @param {number} no_repeat_ngram_size The no-repeat-ngram size. All ngrams of this size can only occur once. + */ + constructor(no_repeat_ngram_size: number); + no_repeat_ngram_size: number; + /** + * Generate n-grams from a sequence of token ids. + * @param {number[]} prevInputIds List of previous input ids + * @returns {Map} Map of generated n-grams + */ + getNgrams(prevInputIds: number[]): Map; + /** + * Generate n-grams from a sequence of token ids. + * @param {Map} bannedNgrams Map of banned n-grams + * @param {number[]} prevInputIds List of previous input ids + * @returns {number[]} Map of generated n-grams + */ + getGeneratedNgrams(bannedNgrams: Map, prevInputIds: number[]): number[]; + /** + * Calculate banned n-gram tokens + * @param {number[]} prevInputIds List of previous input ids + * @returns {number[]} Map of generated n-grams + */ + calcBannedNgramTokens(prevInputIds: number[]): number[]; + /** + * Apply the no-repeat-ngram processor to the logits. + * @param {Array} input_ids The input IDs. + * @param {Object} logits The logits. + * @returns {Object} The logits with no-repeat-ngram processing. + */ + _call(input_ids: any[], logits: any): any; +} +/** + * A logits processor that penalises repeated output tokens. + * + * @extends LogitsProcessor + */ +export class RepetitionPenaltyLogitsProcessor extends LogitsProcessor { + /** + * Create a RepetitionPenaltyLogitsProcessor. + * @param {number} penalty The penalty to apply for repeated tokens. + */ + constructor(penalty: number); + penalty: number; + /** + * Apply the repetition penalty to the logits. + * @param {Array} input_ids The input IDs. + * @param {Object} logits The logits. + * @returns {Object} The logits with repetition penalty processing. + */ + _call(input_ids: any[], logits: any): any; +} +/** + * A logits processor that enforces a minimum number of tokens. + * + * @extends LogitsProcessor + */ +export class MinLengthLogitsProcessor extends LogitsProcessor { + /** + * Create a MinLengthLogitsProcessor. + * @param {number} min_length The minimum length below which the score of `eos_token_id` is set to negative infinity. + * @param {number|number[]} eos_token_id The ID/IDs of the end-of-sequence token. + */ + constructor(min_length: number, eos_token_id: number | number[]); + min_length: number; + eos_token_id: number[]; + /** + * Apply logit processor. + * @param {Array} input_ids The input IDs. + * @param {Object} logits The logits. + * @returns {Object} The processed logits. + */ + _call(input_ids: any[], logits: any): any; +} +/** + * A logits processor that enforces a minimum number of new tokens. + * + * @extends LogitsProcessor + */ +export class MinNewTokensLengthLogitsProcessor extends LogitsProcessor { + /** + * Create a MinNewTokensLengthLogitsProcessor. + * @param {number} prompt_length_to_skip The input tokens length. + * @param {number} min_new_tokens The minimum *new* tokens length below which the score of `eos_token_id` is set to negative infinity. + * @param {number|number[]} eos_token_id The ID/IDs of the end-of-sequence token. + */ + constructor(prompt_length_to_skip: number, min_new_tokens: number, eos_token_id: number | number[]); + prompt_length_to_skip: number; + min_new_tokens: number; + eos_token_id: number[]; + /** + * Apply logit processor. + * @param {Array} input_ids The input IDs. + * @param {Object} logits The logits. + * @returns {Object} The processed logits. + */ + _call(input_ids: any[], logits: any): any; +} +export class NoBadWordsLogitsProcessor extends LogitsProcessor { + /** + * Create a `NoBadWordsLogitsProcessor`. + * @param {number[][]} bad_words_ids List of list of token ids that are not allowed to be generated. + * @param {number|number[]} eos_token_id The id of the *end-of-sequence* token. Optionally, use a list to set multiple *end-of-sequence* tokens. + */ + constructor(bad_words_ids: number[][], eos_token_id: number | number[]); + bad_words_ids: number[][]; + eos_token_id: number[]; + /** + * Apply logit processor. + * @param {Array} input_ids The input IDs. + * @param {Object} logits The logits. + * @returns {Object} The processed logits. + */ + _call(input_ids: any[], logits: any): any; +} +/** + * @typedef {Object} GenerationConfigType The default configuration parameters. + * @property {number} [max_length=20] The maximum length the generated tokens can have. Corresponds to the length of the input prompt + `max_new_tokens`. Its effect is overridden by `max_new_tokens`, if also set. + * @property {number} [max_new_tokens=null] The maximum numbers of tokens to generate, ignoring the number of tokens in the prompt. + * @property {number} [min_length=0] The minimum length of the sequence to be generated. Corresponds to the length of the input prompt + `min_new_tokens`. Its effect is overridden by `min_new_tokens`, if also set. + * @property {number} [min_new_tokens=null] The minimum numbers of tokens to generate, ignoring the number of tokens in the prompt. + * @property {boolean|"never"} [early_stopping=false] Controls the stopping condition for beam-based methods, like beam-search. It accepts the following values: + * - `true`, where the generation stops as soon as there are `num_beams` complete candidates; + * - `false`, where an heuristic is applied and the generation stops when is it very unlikely to find better candidates; + * - `"never"`, where the beam search procedure only stops when there cannot be better candidates (canonical beam search algorithm). + * @property {number} [max_time=null] The maximum amount of time you allow the computation to run for in seconds. Generation will still finish the current pass after allocated time has been passed. + * + * @property {boolean} [do_sample=false] Whether or not to use sampling; use greedy decoding otherwise. + * @property {number} [num_beams=1] Number of beams for beam search. 1 means no beam search. + * @property {number} [num_beam_groups=1] Number of groups to divide `num_beams` into in order to ensure diversity among different groups of beams. See [this paper](https://arxiv.org/pdf/1610.02424.pdf) for more details. + * @property {number} [penalty_alpha=null] The values balance the model confidence and the degeneration penalty in contrastive search decoding. + * @property {boolean} [use_cache=true] Whether or not the model should use the past last key/values attentions (if applicable to the model) to speed up decoding. + * + * @property {number} [temperature=1.0] The value used to modulate the next token probabilities. + * @property {number} [top_k=50] The number of highest probability vocabulary tokens to keep for top-k-filtering. + * @property {number} [top_p=1.0] If set to float < 1, only the smallest set of most probable tokens with probabilities that add up to `top_p` or higher are kept for generation. + * @property {number} [typical_p=1.0] Local typicality measures how similar the conditional probability of predicting a target token next is to the expected conditional probability of predicting a random token next, given the partial text already generated. If set to float < 1, the smallest set of the most locally typical tokens with probabilities that add up to `typical_p` or higher are kept for generation. See [this paper](https://arxiv.org/pdf/2202.00666.pdf) for more details. + * @property {number} [epsilon_cutoff=0.0] If set to float strictly between 0 and 1, only tokens with a conditional probability greater than `epsilon_cutoff` will be sampled. In the paper, suggested values range from 3e-4 to 9e-4, depending on the size of the model. See [Truncation Sampling as Language Model Desmoothing](https://arxiv.org/abs/2210.15191) for more details. + * @property {number} [eta_cutoff=0.0] Eta sampling is a hybrid of locally typical sampling and epsilon sampling. If set to float strictly between 0 and 1, a token is only considered if it is greater than either `eta_cutoff` or `sqrt(eta_cutoff) * exp(-entropy(softmax(next_token_logits)))`. The latter term is intuitively the expected next token probability, scaled by `sqrt(eta_cutoff)`. In the paper, suggested values range from 3e-4 to 2e-3, depending on the size of the model. See [Truncation Sampling as Language Model Desmoothing](https://arxiv.org/abs/2210.15191) for more details. + * @property {number} [diversity_penalty=0.0] This value is subtracted from a beam's score if it generates a token same as any beam from other group at a particular time. Note that `diversity_penalty` is only effective if `group beam search` is enabled. + * @property {number} [repetition_penalty=1.0] The parameter for repetition penalty. 1.0 means no penalty. See [this paper](https://arxiv.org/pdf/1909.05858.pdf) for more details. + * @property {number} [encoder_repetition_penalty=1.0] The paramater for encoder_repetition_penalty. An exponential penalty on sequences that are not in the original input. 1.0 means no penalty. + * @property {number} [length_penalty=1.0] Exponential penalty to the length that is used with beam-based generation. It is applied as an exponent to the sequence length, which in turn is used to divide the score of the sequence. Since the score is the log likelihood of the sequence (i.e. negative), `length_penalty` > 0.0 promotes longer sequences, while `length_penalty` < 0.0 encourages shorter sequences. + * @property {number} [no_repeat_ngram_size=0] If set to int > 0, all ngrams of that size can only occur once. + * @property {number[][]} [bad_words_ids=null] List of token ids that are not allowed to be generated. In order to get the token ids of the words that should not appear in the generated text, use `(await tokenizer(bad_words, {add_prefix_space: true, add_special_tokens: false})).input_ids`. + * @property {number[][]|number[][][]} [force_words_ids=null] List of token ids that must be generated. If given a `number[][]`, this is treated as a simple list of words that must be included, the opposite to `bad_words_ids`. If given `number[][][]`, this triggers a [disjunctive constraint](https://github.com/huggingface/transformers/issues/14081), where one can allow different forms of each word. + * @property {boolean} [renormalize_logits=false] Whether to renormalize the logits after applying all the logits processors or warpers (including the custom ones). It's highly recommended to set this flag to `true` as the search algorithms suppose the score logits are normalized but some logit processors or warpers break the normalization. + * @property {Object[]} [constraints=null] Custom constraints that can be added to the generation to ensure that the output will contain the use of certain tokens as defined by `Constraint` objects, in the most sensible way possible. + * + * @property {number} [forced_bos_token_id=null] The id of the token to force as the first generated token after the `decoder_start_token_id`. Useful for multilingual models like mBART where the first generated token needs to be the target language token. + * @property {number|number[]} [forced_eos_token_id=null] The id of the token to force as the last generated token when `max_length` is reached. Optionally, use a list to set multiple *end-of-sequence* tokens. + * @property {boolean} [remove_invalid_values=false] Whether to remove possible *nan* and *inf* outputs of the model to prevent the generation method to crash. Note that using `remove_invalid_values` can slow down generation. + * @property {number[]} [exponential_decay_length_penalty=null] This Tuple adds an exponentially increasing length penalty, after a certain amount of tokens have been generated. The tuple shall consist of: `(start_index, decay_factor)` where `start_index` indicates where penalty starts and `decay_factor` represents the factor of exponential decay. + * @property {number[]} [suppress_tokens=null] A list of tokens that will be suppressed at generation. The `SupressTokens` logit processor will set their log probs to `-inf` so that they are not sampled. + * @property {number[]} [begin_suppress_tokens=null] A list of tokens that will be suppressed at the beginning of the generation. The `SupressBeginTokens` logit processor will set their log probs to `-inf` so that they are not sampled. + * @property {number[][]} [forced_decoder_ids=null] A list of pairs of integers which indicates a mapping from generation indices to token indices that will be forced before sampling. For example, `[[1, 123]]` means the second generated token will always be a token of index 123. + * + * @property {number} [num_return_sequences=1] The number of independently computed returned sequences for each element in the batch. + * @property {boolean} [output_attentions=false] Whether or not to return the attentions tensors of all attention layers. See `attentions` under returned tensors for more details. + * @property {boolean} [output_hidden_states=false] Whether or not to return the hidden states of all layers. See `hidden_states` under returned tensors for more details. + * @property {boolean} [output_scores=false] Whether or not to return the prediction scores. See `scores` under returned tensors for more details. + * @property {boolean} [return_dict_in_generate=false] Whether or not to return a `ModelOutput` instead of a plain tuple. + * + * @property {number} [pad_token_id=null] The id of the *padding* token. + * @property {number} [bos_token_id=null] The id of the *beginning-of-sequence* token. + * @property {number|number[]} [eos_token_id=null] The id of the *end-of-sequence* token. Optionally, use a list to set multiple *end-of-sequence* tokens. + * + * @property {number} [encoder_no_repeat_ngram_size=0] If set to int > 0, all ngrams of that size that occur in the `encoder_input_ids` cannot occur in the `decoder_input_ids`. + * @property {number} [decoder_start_token_id=null] If an encoder-decoder model starts decoding with a different token than *bos*, the id of that token. + * + * @property {Object} [generation_kwargs={}] Additional generation kwargs will be forwarded to the `generate` function of the model. Kwargs that are not present in `generate`'s signature will be used in the model forward pass. + */ +/** + * Class that holds a configuration for a generation task. + * @type {new (kwargs?: GenerationConfigType) => GenerationConfigType} + */ +export const GenerationConfig: new (kwargs?: GenerationConfigType) => GenerationConfigType; +declare const Sampler_base: new () => { + (...args: any[]): any; + _call(...args: any[]): any; +}; +/** + * Sampler is a base class for all sampling methods used for text generation. + */ +export class Sampler extends Sampler_base { + /** + * Returns a Sampler object based on the specified options. + * @param {GenerationConfigType} generation_config An object containing options for the sampler. + * @returns {Sampler} A Sampler object. + */ + static getSampler(generation_config: GenerationConfigType): Sampler; + /** + * Creates a new Sampler object with the specified generation config. + * @param {GenerationConfigType} generation_config The generation config. + */ + constructor(generation_config: GenerationConfigType); + generation_config: GenerationConfigType; + /** + * Executes the sampler, using the specified logits. + * @param {Tensor} logits + * @param {number} index + * @returns {void} + */ + _call(logits: Tensor, index?: number): void; + /** + * Abstract method for sampling the logits. + * @param {Tensor} logits + * @param {number} index + * @throws {Error} + */ + sample(logits: Tensor, index: number): void; + /** + * Returns the specified logits as an array, with temperature applied. + * @param {Tensor} logits + * @param {number} index + * @returns {Float32Array} + */ + getLogits(logits: Tensor, index: number): Float32Array; + /** + * Selects an item randomly based on the specified probabilities. + * @param {Array} probabilities An array of probabilities to use for selection. + * @returns {number} The index of the selected item. + */ + randomSelect(probabilities: any[]): number; +} +/** + * The default configuration parameters. + */ +export type GenerationConfigType = { + /** + * The maximum length the generated tokens can have. Corresponds to the length of the input prompt + `max_new_tokens`. Its effect is overridden by `max_new_tokens`, if also set. + */ + max_length?: number; + /** + * The maximum numbers of tokens to generate, ignoring the number of tokens in the prompt. + */ + max_new_tokens?: number; + /** + * The minimum length of the sequence to be generated. Corresponds to the length of the input prompt + `min_new_tokens`. Its effect is overridden by `min_new_tokens`, if also set. + */ + min_length?: number; + /** + * The minimum numbers of tokens to generate, ignoring the number of tokens in the prompt. + */ + min_new_tokens?: number; + /** + * Controls the stopping condition for beam-based methods, like beam-search. It accepts the following values: + * - `true`, where the generation stops as soon as there are `num_beams` complete candidates; + * - `false`, where an heuristic is applied and the generation stops when is it very unlikely to find better candidates; + * - `"never"`, where the beam search procedure only stops when there cannot be better candidates (canonical beam search algorithm). + */ + early_stopping?: boolean | "never"; + /** + * The maximum amount of time you allow the computation to run for in seconds. Generation will still finish the current pass after allocated time has been passed. + */ + max_time?: number; + /** + * Whether or not to use sampling; use greedy decoding otherwise. + */ + do_sample?: boolean; + /** + * Number of beams for beam search. 1 means no beam search. + */ + num_beams?: number; + /** + * Number of groups to divide `num_beams` into in order to ensure diversity among different groups of beams. See [this paper](https://arxiv.org/pdf/1610.02424.pdf) for more details. + */ + num_beam_groups?: number; + /** + * The values balance the model confidence and the degeneration penalty in contrastive search decoding. + */ + penalty_alpha?: number; + /** + * Whether or not the model should use the past last key/values attentions (if applicable to the model) to speed up decoding. + */ + use_cache?: boolean; + /** + * The value used to modulate the next token probabilities. + */ + temperature?: number; + /** + * The number of highest probability vocabulary tokens to keep for top-k-filtering. + */ + top_k?: number; + /** + * If set to float < 1, only the smallest set of most probable tokens with probabilities that add up to `top_p` or higher are kept for generation. + */ + top_p?: number; + /** + * Local typicality measures how similar the conditional probability of predicting a target token next is to the expected conditional probability of predicting a random token next, given the partial text already generated. If set to float < 1, the smallest set of the most locally typical tokens with probabilities that add up to `typical_p` or higher are kept for generation. See [this paper](https://arxiv.org/pdf/2202.00666.pdf) for more details. + */ + typical_p?: number; + /** + * If set to float strictly between 0 and 1, only tokens with a conditional probability greater than `epsilon_cutoff` will be sampled. In the paper, suggested values range from 3e-4 to 9e-4, depending on the size of the model. See [Truncation Sampling as Language Model Desmoothing](https://arxiv.org/abs/2210.15191) for more details. + */ + epsilon_cutoff?: number; + /** + * Eta sampling is a hybrid of locally typical sampling and epsilon sampling. If set to float strictly between 0 and 1, a token is only considered if it is greater than either `eta_cutoff` or `sqrt(eta_cutoff) * exp(-entropy(softmax(next_token_logits)))`. The latter term is intuitively the expected next token probability, scaled by `sqrt(eta_cutoff)`. In the paper, suggested values range from 3e-4 to 2e-3, depending on the size of the model. See [Truncation Sampling as Language Model Desmoothing](https://arxiv.org/abs/2210.15191) for more details. + */ + eta_cutoff?: number; + /** + * This value is subtracted from a beam's score if it generates a token same as any beam from other group at a particular time. Note that `diversity_penalty` is only effective if `group beam search` is enabled. + */ + diversity_penalty?: number; + /** + * The parameter for repetition penalty. 1.0 means no penalty. See [this paper](https://arxiv.org/pdf/1909.05858.pdf) for more details. + */ + repetition_penalty?: number; + /** + * The paramater for encoder_repetition_penalty. An exponential penalty on sequences that are not in the original input. 1.0 means no penalty. + */ + encoder_repetition_penalty?: number; + /** + * Exponential penalty to the length that is used with beam-based generation. It is applied as an exponent to the sequence length, which in turn is used to divide the score of the sequence. Since the score is the log likelihood of the sequence (i.e. negative), `length_penalty` > 0.0 promotes longer sequences, while `length_penalty` < 0.0 encourages shorter sequences. + */ + length_penalty?: number; + /** + * If set to int > 0, all ngrams of that size can only occur once. + */ + no_repeat_ngram_size?: number; + /** + * List of token ids that are not allowed to be generated. In order to get the token ids of the words that should not appear in the generated text, use `(await tokenizer(bad_words, {add_prefix_space: true, add_special_tokens: false})).input_ids`. + */ + bad_words_ids?: number[][]; + /** + * List of token ids that must be generated. If given a `number[][]`, this is treated as a simple list of words that must be included, the opposite to `bad_words_ids`. If given `number[][][]`, this triggers a [disjunctive constraint](https://github.com/huggingface/transformers/issues/14081), where one can allow different forms of each word. + */ + force_words_ids?: number[][] | number[][][]; + /** + * Whether to renormalize the logits after applying all the logits processors or warpers (including the custom ones). It's highly recommended to set this flag to `true` as the search algorithms suppose the score logits are normalized but some logit processors or warpers break the normalization. + */ + renormalize_logits?: boolean; + /** + * Custom constraints that can be added to the generation to ensure that the output will contain the use of certain tokens as defined by `Constraint` objects, in the most sensible way possible. + */ + constraints?: any[]; + /** + * The id of the token to force as the first generated token after the `decoder_start_token_id`. Useful for multilingual models like mBART where the first generated token needs to be the target language token. + */ + forced_bos_token_id?: number; + /** + * The id of the token to force as the last generated token when `max_length` is reached. Optionally, use a list to set multiple *end-of-sequence* tokens. + */ + forced_eos_token_id?: number | number[]; + /** + * Whether to remove possible *nan* and *inf* outputs of the model to prevent the generation method to crash. Note that using `remove_invalid_values` can slow down generation. + */ + remove_invalid_values?: boolean; + /** + * This Tuple adds an exponentially increasing length penalty, after a certain amount of tokens have been generated. The tuple shall consist of: `(start_index, decay_factor)` where `start_index` indicates where penalty starts and `decay_factor` represents the factor of exponential decay. + */ + exponential_decay_length_penalty?: number[]; + /** + * A list of tokens that will be suppressed at generation. The `SupressTokens` logit processor will set their log probs to `-inf` so that they are not sampled. + */ + suppress_tokens?: number[]; + /** + * A list of tokens that will be suppressed at the beginning of the generation. The `SupressBeginTokens` logit processor will set their log probs to `-inf` so that they are not sampled. + */ + begin_suppress_tokens?: number[]; + /** + * A list of pairs of integers which indicates a mapping from generation indices to token indices that will be forced before sampling. For example, `[[1, 123]]` means the second generated token will always be a token of index 123. + */ + forced_decoder_ids?: number[][]; + /** + * The number of independently computed returned sequences for each element in the batch. + */ + num_return_sequences?: number; + /** + * Whether or not to return the attentions tensors of all attention layers. See `attentions` under returned tensors for more details. + */ + output_attentions?: boolean; + /** + * Whether or not to return the hidden states of all layers. See `hidden_states` under returned tensors for more details. + */ + output_hidden_states?: boolean; + /** + * Whether or not to return the prediction scores. See `scores` under returned tensors for more details. + */ + output_scores?: boolean; + /** + * Whether or not to return a `ModelOutput` instead of a plain tuple. + */ + return_dict_in_generate?: boolean; + /** + * The id of the *padding* token. + */ + pad_token_id?: number; + /** + * The id of the *beginning-of-sequence* token. + */ + bos_token_id?: number; + /** + * The id of the *end-of-sequence* token. Optionally, use a list to set multiple *end-of-sequence* tokens. + */ + eos_token_id?: number | number[]; + /** + * If set to int > 0, all ngrams of that size that occur in the `encoder_input_ids` cannot occur in the `decoder_input_ids`. + */ + encoder_no_repeat_ngram_size?: number; + /** + * If an encoder-decoder model starts decoding with a different token than *bos*, the id of that token. + */ + decoder_start_token_id?: number; + /** + * Additional generation kwargs will be forwarded to the `generate` function of the model. Kwargs that are not present in `generate`'s signature will be used in the model forward pass. + */ + generation_kwargs?: any; +}; +import { Tensor } from './tensor.js'; +export {}; +//# sourceMappingURL=generation.d.ts.map \ No newline at end of file diff --git a/core/vendor/modules/@xenova/transformers/types/utils/generation.d.ts.map b/core/vendor/modules/@xenova/transformers/types/utils/generation.d.ts.map new file mode 100644 index 000000000..62e720b5f --- /dev/null +++ b/core/vendor/modules/@xenova/transformers/types/utils/generation.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"generation.d.ts","sourceRoot":"","sources":["../../src/utils/generation.js"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/core/vendor/modules/@xenova/transformers/types/utils/hub.d.ts b/core/vendor/modules/@xenova/transformers/types/utils/hub.d.ts new file mode 100644 index 000000000..cfd26cbf7 --- /dev/null +++ b/core/vendor/modules/@xenova/transformers/types/utils/hub.d.ts @@ -0,0 +1,154 @@ +/** + * Helper function to get a file, using either the Fetch API or FileSystem API. + * + * @param {URL|string} urlOrPath The URL/path of the file to get. + * @returns {Promise} A promise that resolves to a FileResponse object (if the file is retrieved using the FileSystem API), or a Response object (if the file is retrieved using the Fetch API). + */ +export function getFile(urlOrPath: URL | string): Promise; +/** + * + * Retrieves a file from either a remote URL using the Fetch API or from the local file system using the FileSystem API. + * If the filesystem is available and `env.useCache = true`, the file will be downloaded and cached. + * + * @param {string} path_or_repo_id This can be either: + * - a string, the *model id* of a model repo on huggingface.co. + * - a path to a *directory* potentially containing the file. + * @param {string} filename The name of the file to locate in `path_or_repo`. + * @param {boolean} [fatal=true] Whether to throw an error if the file is not found. + * @param {PretrainedOptions} [options] An object containing optional parameters. + * + * @throws Will throw an error if the file is not found and `fatal` is true. + * @returns {Promise} A Promise that resolves with the file content as a buffer. + */ +export function getModelFile(path_or_repo_id: string, filename: string, fatal?: boolean, options?: PretrainedOptions): Promise; +/** + * Fetches a JSON file from a given path and file name. + * + * @param {string} modelPath The path to the directory containing the file. + * @param {string} fileName The name of the file to fetch. + * @param {boolean} [fatal=true] Whether to throw an error if the file is not found. + * @param {PretrainedOptions} [options] An object containing optional parameters. + * @returns {Promise} The JSON data parsed into a JavaScript object. + * @throws Will throw an error if the file is not found and `fatal` is true. + */ +export function getModelJSON(modelPath: string, fileName: string, fatal?: boolean, options?: PretrainedOptions): Promise; +/** + * Options for loading a pretrained model. + */ +export type PretrainedOptions = { + /** + * Whether to load the 8-bit quantized version of the model (only applicable when loading model files). + */ + quantized?: boolean | null; + /** + * If specified, this function will be called during model construction, to provide the user with progress updates. + */ + progress_callback?: Function; + /** + * Configuration for the model to use instead of an automatically loaded configuration. Configuration can be automatically loaded when: + * - The model is a model provided by the library (loaded with the *model id* string of a pretrained model). + * - The model is loaded by supplying a local directory as `pretrained_model_name_or_path` and a configuration JSON file named *config.json* is found in the directory. + */ + config?: any; + /** + * Path to a directory in which a downloaded pretrained model configuration should be cached if the standard cache should not be used. + */ + cache_dir?: string; + /** + * Whether or not to only look at local files (e.g., not try downloading the model). + */ + local_files_only?: boolean; + /** + * The specific model version to use. It can be a branch name, a tag name, or a commit id, + * since we use a git-based system for storing models and other artifacts on huggingface.co, so `revision` can be any identifier allowed by git. + * NOTE: This setting is ignored for local requests. + */ + revision?: string; + /** + * If specified, load the model with this name (excluding the .onnx suffix). Currently only valid for encoder- or decoder-only models. + */ + model_file_name?: string; +}; +/** + * @typedef {Object} PretrainedOptions Options for loading a pretrained model. + * @property {boolean?} [quantized=true] Whether to load the 8-bit quantized version of the model (only applicable when loading model files). + * @property {function} [progress_callback=null] If specified, this function will be called during model construction, to provide the user with progress updates. + * @property {Object} [config=null] Configuration for the model to use instead of an automatically loaded configuration. Configuration can be automatically loaded when: + * - The model is a model provided by the library (loaded with the *model id* string of a pretrained model). + * - The model is loaded by supplying a local directory as `pretrained_model_name_or_path` and a configuration JSON file named *config.json* is found in the directory. + * @property {string} [cache_dir=null] Path to a directory in which a downloaded pretrained model configuration should be cached if the standard cache should not be used. + * @property {boolean} [local_files_only=false] Whether or not to only look at local files (e.g., not try downloading the model). + * @property {string} [revision='main'] The specific model version to use. It can be a branch name, a tag name, or a commit id, + * since we use a git-based system for storing models and other artifacts on huggingface.co, so `revision` can be any identifier allowed by git. + * NOTE: This setting is ignored for local requests. + * @property {string} [model_file_name=null] If specified, load the model with this name (excluding the .onnx suffix). Currently only valid for encoder- or decoder-only models. + */ +declare class FileResponse { + /** + * Creates a new `FileResponse` object. + * @param {string|URL} filePath + */ + constructor(filePath: string | URL); + /** + * Mapping from file extensions to MIME types. + */ + _CONTENT_TYPE_MAP: { + txt: string; + html: string; + css: string; + js: string; + json: string; + png: string; + jpg: string; + jpeg: string; + gif: string; + }; + filePath: string | URL; + headers: Headers; + exists: any; + status: number; + statusText: string; + body: ReadableStream; + /** + * Updates the 'content-type' header property of the response based on the extension of + * the file specified by the filePath property of the current object. + * @returns {void} + */ + updateContentType(): void; + /** + * Clone the current FileResponse object. + * @returns {FileResponse} A new FileResponse object with the same properties as the current object. + */ + clone(): FileResponse; + /** + * Reads the contents of the file specified by the filePath property and returns a Promise that + * resolves with an ArrayBuffer containing the file's contents. + * @returns {Promise} A Promise that resolves with an ArrayBuffer containing the file's contents. + * @throws {Error} If the file cannot be read. + */ + arrayBuffer(): Promise; + /** + * Reads the contents of the file specified by the filePath property and returns a Promise that + * resolves with a Blob containing the file's contents. + * @returns {Promise} A Promise that resolves with a Blob containing the file's contents. + * @throws {Error} If the file cannot be read. + */ + blob(): Promise; + /** + * Reads the contents of the file specified by the filePath property and returns a Promise that + * resolves with a string containing the file's contents. + * @returns {Promise} A Promise that resolves with a string containing the file's contents. + * @throws {Error} If the file cannot be read. + */ + text(): Promise; + /** + * Reads the contents of the file specified by the filePath property and returns a Promise that + * resolves with a parsed JavaScript object containing the file's contents. + * + * @returns {Promise} A Promise that resolves with a parsed JavaScript object containing the file's contents. + * @throws {Error} If the file cannot be read. + */ + json(): Promise; +} +export {}; +//# sourceMappingURL=hub.d.ts.map \ No newline at end of file diff --git a/core/vendor/modules/@xenova/transformers/types/utils/hub.d.ts.map b/core/vendor/modules/@xenova/transformers/types/utils/hub.d.ts.map new file mode 100644 index 000000000..75192575c --- /dev/null +++ b/core/vendor/modules/@xenova/transformers/types/utils/hub.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"hub.d.ts","sourceRoot":"","sources":["../../src/utils/hub.js"],"names":[],"mappings":"AA4KA;;;;;GAKG;AACH,mCAHW,GAAG,GAAC,MAAM,GACR,QAAQ,YAAY,GAAC,QAAQ,CAAC,CAgC1C;AA2GD;;;;;;;;;;;;;;GAcG;AACH,8CAVW,MAAM,YAGN,MAAM,UACN,OAAO,YACP,iBAAiB,gBA4O3B;AAED;;;;;;;;;GASG;AACH,wCAPW,MAAM,YACN,MAAM,UACN,OAAO,YACP,iBAAiB,GACf,YAAe,CAc3B;;;;;;;;gBAnjBa,OAAO;;;;;;;;;;;;;;gBAKP,MAAM;;;;uBACN,OAAO;;;;;;eACP,MAAM;;;;sBAGN,MAAM;;AAZpB;;;;;;;;;;;;;GAaG;AAEH;IAeI;;;OAGG;IACH,sBAFW,MAAM,GAAC,GAAG,EA8BpB;IA9CD;;OAEG;IACH;;;;;;;;;;MAUC;IAMG,uBAAwB;IACxB,iBAA4B;IAE5B,YAAqC;IAEjC,eAAiB;IACjB,mBAAsB;IAQtB,0BAOE;IAQV;;;;OAIG;IACH,qBAFa,IAAI,CAMhB;IAED;;;OAGG;IACH,SAFa,YAAY,CASxB;IAED;;;;;OAKG;IACH,eAHa,QAAQ,WAAW,CAAC,CAMhC;IAED;;;;;OAKG;IACH,QAHa,QAAQ,IAAI,CAAC,CAMzB;IAED;;;;;OAKG;IACH,QAHa,QAAQ,MAAM,CAAC,CAM3B;IAED;;;;;;OAMG;IACH,QAHa,YAAe,CAK3B;CACJ"} \ No newline at end of file diff --git a/core/vendor/modules/@xenova/transformers/types/utils/image.d.ts b/core/vendor/modules/@xenova/transformers/types/utils/image.d.ts new file mode 100644 index 000000000..cd912a7c7 --- /dev/null +++ b/core/vendor/modules/@xenova/transformers/types/utils/image.d.ts @@ -0,0 +1,111 @@ +export class RawImage { + /** + * Helper method for reading an image from a variety of input types. + * @param {RawImage|string|URL} input + * @returns The image object. + * + * **Example:** Read image from a URL. + * ```javascript + * let image = await RawImage.read('https://huggingface.co/datasets/Xenova/transformers.js-docs/resolve/main/football-match.jpg'); + * // RawImage { + * // "data": Uint8ClampedArray [ 25, 25, 25, 19, 19, 19, ... ], + * // "width": 800, + * // "height": 533, + * // "channels": 3 + * // } + * ``` + */ + static read(input: RawImage | string | URL): Promise; + /** + * Read an image from a URL or file path. + * @param {string|URL} url The URL or file path to read the image from. + * @returns {Promise} The image object. + */ + static fromURL(url: string | URL): Promise; + /** + * Helper method to create a new Image from a blob. + * @param {Blob} blob The blob to read the image from. + * @returns {Promise} The image object. + */ + static fromBlob(blob: Blob): Promise; + /** + * Helper method to create a new Image from a tensor + * @param {import('./tensor.js').Tensor} tensor + */ + static fromTensor(tensor: import('./tensor.js').Tensor, channel_format?: string): RawImage; + /** + * Create a new `RawImage` object. + * @param {Uint8ClampedArray|Uint8Array} data The pixel data. + * @param {number} width The width of the image. + * @param {number} height The height of the image. + * @param {1|2|3|4} channels The number of channels. + */ + constructor(data: Uint8ClampedArray | Uint8Array, width: number, height: number, channels: 1 | 2 | 3 | 4); + data: Uint8Array | Uint8ClampedArray; + width: number; + height: number; + channels: 2 | 1 | 3 | 4; + /** + * Returns the size of the image (width, height). + * @returns {[number, number]} The size of the image (width, height). + */ + get size(): [number, number]; + /** + * Convert the image to grayscale format. + * @returns {RawImage} `this` to support chaining. + */ + grayscale(): RawImage; + /** + * Convert the image to RGB format. + * @returns {RawImage} `this` to support chaining. + */ + rgb(): RawImage; + /** + * Convert the image to RGBA format. + * @returns {RawImage} `this` to support chaining. + */ + rgba(): RawImage; + /** + * Resize the image to the given dimensions. This method uses the canvas API to perform the resizing. + * @param {number} width The width of the new image. + * @param {number} height The height of the new image. + * @param {Object} options Additional options for resizing. + * @param {0|1|2|3|4|5|string} [options.resample] The resampling method to use. + * @returns {Promise} `this` to support chaining. + */ + resize(width: number, height: number, { resample, }?: { + resample?: 0 | 1 | 2 | 3 | 4 | 5 | string; + }): Promise; + pad([left, right, top, bottom]: [any, any, any, any]): Promise; + crop([x_min, y_min, x_max, y_max]: [any, any, any, any]): Promise; + center_crop(crop_width: any, crop_height: any): Promise; + toBlob(type?: string, quality?: number): Promise; + toCanvas(): any; + /** + * Helper method to update the image data. + * @param {Uint8ClampedArray} data The new image data. + * @param {number} width The new width of the image. + * @param {number} height The new height of the image. + * @param {1|2|3|4|null} [channels] The new number of channels of the image. + * @private + */ + private _update; + /** + * Clone the image + * @returns {RawImage} The cloned image + */ + clone(): RawImage; + /** + * Helper method for converting image to have a certain number of channels + * @param {number} numChannels The number of channels. Must be 1, 3, or 4. + * @returns {RawImage} `this` to support chaining. + */ + convert(numChannels: number): RawImage; + /** + * Save the image to the given path. + * @param {string} path The path to save the image to. + */ + save(path: string): Promise; + toSharp(): any; +} +//# sourceMappingURL=image.d.ts.map \ No newline at end of file diff --git a/core/vendor/modules/@xenova/transformers/types/utils/image.d.ts.map b/core/vendor/modules/@xenova/transformers/types/utils/image.d.ts.map new file mode 100644 index 000000000..d2c91292b --- /dev/null +++ b/core/vendor/modules/@xenova/transformers/types/utils/image.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"image.d.ts","sourceRoot":"","sources":["../../src/utils/image.js"],"names":[],"mappings":"AA4EA;IAwBI;;;;;;;;;;;;;;;OAeG;IACH,mBAdW,QAAQ,GAAC,MAAM,GAAC,GAAG,qBAsB7B;IAGD;;;;OAIG;IACH,oBAHW,MAAM,GAAC,GAAG,GACR,QAAQ,QAAQ,CAAC,CAS7B;IAED;;;;OAIG;IACH,sBAHW,IAAI,GACF,QAAQ,QAAQ,CAAC,CAoB7B;IAED;;;OAGG;IACH,0BAFW,OAAO,aAAa,EAAE,MAAM,qCA0BtC;IApHD;;;;;;OAMG;IACH,kBALW,iBAAiB,GAAC,UAAU,SAC5B,MAAM,UACN,MAAM,YACN,CAAC,GAAC,CAAC,GAAC,CAAC,GAAC,CAAC,EAOjB;IAJG,qCAAgB;IAChB,cAAkB;IAClB,eAAoB;IACpB,wBAAwB;IAG5B;;;OAGG;IACH,6BAEC;IAkGD;;;OAGG;IACH,aAFa,QAAQ,CAuBpB;IAED;;;OAGG;IACH,OAFa,QAAQ,CA6BpB;IAED;;;OAGG;IACH,QAFa,QAAQ,CA+BpB;IAED;;;;;;;OAOG;IACH,cANW,MAAM,UACN,MAAM;QAEuB,QAAQ,GAArC,CAAC,GAAC,CAAC,GAAC,CAAC,GAAC,CAAC,GAAC,CAAC,GAAC,CAAC,GAAC,MAAM;QAChB,QAAQ,QAAQ,CAAC,CAqE7B;IAED,oEA0CC;IAED,uEAkDC;IAED,6DAiHC;IAED,sDAOC;IAED,gBAiBC;IAED;;;;;;;OAOG;IACH,gBAQC;IAED;;;OAGG;IACH,SAFa,QAAQ,CAIpB;IAED;;;;OAIG;IACH,qBAHW,MAAM,GACJ,QAAQ,CAmBpB;IAED;;;OAGG;IACH,WAFW,MAAM,gBAsChB;IAED,eAYC;CACJ"} \ No newline at end of file diff --git a/core/vendor/modules/@xenova/transformers/types/utils/maths.d.ts b/core/vendor/modules/@xenova/transformers/types/utils/maths.d.ts new file mode 100644 index 000000000..840ce70da --- /dev/null +++ b/core/vendor/modules/@xenova/transformers/types/utils/maths.d.ts @@ -0,0 +1,277 @@ +/** + * @file Helper module for mathematical processing. + * + * These functions and classes are only used internally, + * meaning an end-user shouldn't need to access anything here. + * + * @module utils/maths + */ +/** + * @typedef {Int8Array | Uint8Array | Uint8ClampedArray | Int16Array | Uint16Array | Int32Array | Uint32Array | Float32Array | Float64Array} TypedArray + * @typedef {BigInt64Array | BigUint64Array} BigTypedArray + * @typedef {TypedArray | BigTypedArray} AnyTypedArray + */ +/** + * @param {TypedArray} input + */ +export function interpolate_data(input: TypedArray, [in_channels, in_height, in_width]: [any, any, any], [out_height, out_width]: [any, any], mode?: string, align_corners?: boolean): any; +/** + * Helper method to transpose a `AnyTypedArray` directly + * @template {AnyTypedArray} T + * @param {T} array + * @param {number[]} dims + * @param {number[]} axes + * @returns {[T, number[]]} The transposed array and the new shape. + */ +export function transpose_data(array: T, dims: number[], axes: number[]): [T, number[]]; +/** + * Compute the softmax of an array of numbers. + * @template {TypedArray|number[]} T + * @param {T} arr The array of numbers to compute the softmax of. + * @returns {T} The softmax array. + */ +export function softmax(arr: T): T; +/** + * Calculates the logarithm of the softmax function for the input array. + * @template {TypedArray|number[]} T + * @param {T} arr The input array to calculate the log_softmax function for. + * @returns {T} The resulting log_softmax array. + */ +export function log_softmax(arr: T): T; +/** + * Calculates the dot product of two arrays. + * @param {number[]} arr1 The first array. + * @param {number[]} arr2 The second array. + * @returns {number} The dot product of arr1 and arr2. + */ +export function dot(arr1: number[], arr2: number[]): number; +/** + * Get the top k items from an iterable, sorted by descending order + * @param {any[]|TypedArray} items The items to be sorted + * @param {number|null} [top_k=0] The number of top items to return (default: 0 = return all) + * @returns {[number, any][]} The top k items, sorted by descending order + */ +export function getTopItems(items: any[] | TypedArray, top_k?: number | null): [number, any][]; +/** + * Computes the cosine similarity between two arrays. + * + * @param {number[]} arr1 The first array. + * @param {number[]} arr2 The second array. + * @returns {number} The cosine similarity between the two arrays. + */ +export function cos_sim(arr1: number[], arr2: number[]): number; +/** + * Calculates the magnitude of a given array. + * @param {number[]} arr The array to calculate the magnitude of. + * @returns {number} The magnitude of the array. + */ +export function magnitude(arr: number[]): number; +/** + * Returns the value and index of the minimum element in an array. + * @param {number[]|TypedArray} arr array of numbers. + * @returns {number[]} the value and index of the minimum element, of the form: [valueOfMin, indexOfMin] + * @throws {Error} If array is empty. + */ +export function min(arr: number[] | TypedArray): number[]; +/** + * Returns the value and index of the maximum element in an array. + * @param {number[]|AnyTypedArray} arr array of numbers. + * @returns {[number, number]} the value and index of the maximum element, of the form: [valueOfMax, indexOfMax] + * @throws {Error} If array is empty. + */ +export function max(arr: number[] | AnyTypedArray): [number, number]; +/** + * Performs median filter on the provided data. Padding is done by mirroring the data. + * @param {AnyTypedArray} data The input array + * @param {number} windowSize The window size + */ +export function medianFilter(data: AnyTypedArray, windowSize: number): any; +/** + * Helper function to round a number to a given number of decimals + * @param {number} num The number to round + * @param {number} decimals The number of decimals + * @returns {number} The rounded number + */ +export function round(num: number, decimals: number): number; +export class FFT { + constructor(fft_length: any); + fft_length: any; + isPowerOfTwo: boolean; + fft: P2FFT | NP2FFT; + outputBufferSize: number; + realTransform(out: any, input: any): void; + transform(out: any, input: any): void; +} +export type TypedArray = Int8Array | Uint8Array | Uint8ClampedArray | Int16Array | Uint16Array | Int32Array | Uint32Array | Float32Array | Float64Array; +export type BigTypedArray = BigInt64Array | BigUint64Array; +export type AnyTypedArray = TypedArray | BigTypedArray; +/** + * Implementation of Radix-4 FFT. + * + * P2FFT class provides functionality for performing Fast Fourier Transform on arrays + * which are a power of two in length. + * Code adapted from https://www.npmjs.com/package/fft.js + */ +declare class P2FFT { + /** + * @param {number} size The size of the input array. Must be a power of two larger than 1. + * @throws {Error} FFT size must be a power of two larger than 1. + */ + constructor(size: number); + size: number; + _csize: number; + table: Float64Array; + _width: number; + _bitrev: Int32Array; + /** + * Create a complex number array with size `2 * size` + * + * @returns {Float64Array} A complex number array with size `2 * size` + */ + createComplexArray(): Float64Array; + /** + * Converts a complex number representation stored in a Float64Array to an array of real numbers. + * + * @param {Float64Array} complex The complex number representation to be converted. + * @param {number[]} [storage] An optional array to store the result in. + * @returns {number[]} An array of real numbers representing the input complex number representation. + */ + fromComplexArray(complex: Float64Array, storage?: number[]): number[]; + /** + * Convert a real-valued input array to a complex-valued output array. + * @param {Float64Array} input The real-valued input array. + * @param {Float64Array} [storage] Optional buffer to store the output array. + * @returns {Float64Array} The complex-valued output array. + */ + toComplexArray(input: Float64Array, storage?: Float64Array): Float64Array; + /** + * Completes the spectrum by adding its mirrored negative frequency components. + * @param {Float64Array} spectrum The input spectrum. + * @returns {void} + */ + completeSpectrum(spectrum: Float64Array): void; + /** + * Performs a Fast Fourier Transform (FFT) on the given input data and stores the result in the output buffer. + * + * @param {Float64Array} out The output buffer to store the result. + * @param {Float64Array} data The input data to transform. + * + * @throws {Error} Input and output buffers must be different. + * + * @returns {void} + */ + transform(out: Float64Array, data: Float64Array): void; + /** + * Performs a real-valued forward FFT on the given input buffer and stores the result in the given output buffer. + * The input buffer must contain real values only, while the output buffer will contain complex values. The input and + * output buffers must be different. + * + * @param {Float64Array} out The output buffer. + * @param {Float64Array} data The input buffer containing real values. + * + * @throws {Error} If the input and output buffers are the same. + */ + realTransform(out: Float64Array, data: Float64Array): void; + /** + * Performs an inverse FFT transformation on the given `data` array, and stores the result in `out`. + * The `out` array must be a different buffer than the `data` array. The `out` array will contain the + * result of the transformation. The `data` array will not be modified. + * + * @param {Float64Array} out The output buffer for the transformed data. + * @param {Float64Array} data The input data to transform. + * @throws {Error} If `out` and `data` refer to the same buffer. + * @returns {void} + */ + inverseTransform(out: Float64Array, data: Float64Array): void; + /** + * Performs a radix-4 implementation of a discrete Fourier transform on a given set of data. + * + * @param {Float64Array} out The output buffer for the transformed data. + * @param {Float64Array} data The input buffer of data to be transformed. + * @param {number} inv A scaling factor to apply to the transform. + * @returns {void} + */ + _transform4(out: Float64Array, data: Float64Array, inv: number): void; + /** + * Performs a radix-2 implementation of a discrete Fourier transform on a given set of data. + * + * @param {Float64Array} data The input buffer of data to be transformed. + * @param {Float64Array} out The output buffer for the transformed data. + * @param {number} outOff The offset at which to write the output data. + * @param {number} off The offset at which to begin reading the input data. + * @param {number} step The step size for indexing the input data. + * @returns {void} + */ + _singleTransform2(data: Float64Array, out: Float64Array, outOff: number, off: number, step: number): void; + /** + * Performs radix-4 transformation on input data of length 8 + * + * @param {Float64Array} data Input data array of length 8 + * @param {Float64Array} out Output data array of length 8 + * @param {number} outOff Index of output array to start writing from + * @param {number} off Index of input array to start reading from + * @param {number} step Step size between elements in input array + * @param {number} inv Scaling factor for inverse transform + * + * @returns {void} + */ + _singleTransform4(data: Float64Array, out: Float64Array, outOff: number, off: number, step: number, inv: number): void; + /** + * Real input radix-4 implementation + * @param {Float64Array} out Output array for the transformed data + * @param {Float64Array} data Input array of real data to be transformed + * @param {number} inv The scale factor used to normalize the inverse transform + */ + _realTransform4(out: Float64Array, data: Float64Array, inv: number): void; + /** + * Performs a single real input radix-2 transformation on the provided data + * + * @param {Float64Array} data The input data array + * @param {Float64Array} out The output data array + * @param {number} outOff The output offset + * @param {number} off The input offset + * @param {number} step The step + * + * @returns {void} + */ + _singleRealTransform2(data: Float64Array, out: Float64Array, outOff: number, off: number, step: number): void; + /** + * Computes a single real-valued transform using radix-4 algorithm. + * This method is only called for len=8. + * + * @param {Float64Array} data The input data array. + * @param {Float64Array} out The output data array. + * @param {number} outOff The offset into the output array. + * @param {number} off The offset into the input array. + * @param {number} step The step size for the input array. + * @param {number} inv The value of inverse. + */ + _singleRealTransform4(data: Float64Array, out: Float64Array, outOff: number, off: number, step: number, inv: number): void; +} +/** + * NP2FFT class provides functionality for performing Fast Fourier Transform on arrays + * which are not a power of two in length. In such cases, the chirp-z transform is used. + * + * For more information, see: https://math.stackexchange.com/questions/77118/non-power-of-2-ffts/77156#77156 + */ +declare class NP2FFT { + /** + * Constructs a new NP2FFT object. + * @param {number} fft_length The length of the FFT + */ + constructor(fft_length: number); + bufferSize: number; + _a: number; + _chirpBuffer: Float64Array; + _buffer1: Float64Array; + _buffer2: Float64Array; + _outBuffer1: Float64Array; + _outBuffer2: Float64Array; + _slicedChirpBuffer: Float64Array; + _f: P2FFT; + _transform(output: any, input: any, real: any): void; + transform(output: any, input: any): void; + realTransform(output: any, input: any): void; +} +export {}; +//# sourceMappingURL=maths.d.ts.map \ No newline at end of file diff --git a/core/vendor/modules/@xenova/transformers/types/utils/maths.d.ts.map b/core/vendor/modules/@xenova/transformers/types/utils/maths.d.ts.map new file mode 100644 index 000000000..7c92f4f42 --- /dev/null +++ b/core/vendor/modules/@xenova/transformers/types/utils/maths.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"maths.d.ts","sourceRoot":"","sources":["../../src/utils/maths.js"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/core/vendor/modules/@xenova/transformers/types/utils/tensor.d.ts b/core/vendor/modules/@xenova/transformers/types/utils/tensor.d.ts new file mode 100644 index 000000000..da2650e42 --- /dev/null +++ b/core/vendor/modules/@xenova/transformers/types/utils/tensor.d.ts @@ -0,0 +1,299 @@ +/** + * Transposes a tensor according to the provided axes. + * @param {any} tensor The input tensor to transpose. + * @param {Array} axes The axes to transpose the tensor along. + * @returns {Tensor} The transposed tensor. + */ +export function transpose(tensor: any, axes: any[]): Tensor; +/** + * Interpolates an Tensor to the given size. + * @param {Tensor} input The input tensor to interpolate. Data must be channel-first (i.e., [c, h, w]) + * @param {number[]} size The output size of the image + * @param {string} mode The interpolation mode + * @param {boolean} align_corners Whether to align corners. + * @returns {Tensor} The interpolated tensor. + */ +export function interpolate(input: Tensor, [out_height, out_width]: number[], mode?: string, align_corners?: boolean): Tensor; +/** + * Perform mean pooling of the last hidden state followed by a normalization step. + * @param {Tensor} last_hidden_state Tensor of shape [batchSize, seqLength, embedDim] + * @param {Tensor} attention_mask Tensor of shape [batchSize, seqLength] + * @returns {Tensor} Returns a new Tensor of shape [batchSize, embedDim]. + */ +export function mean_pooling(last_hidden_state: Tensor, attention_mask: Tensor): Tensor; +/** + * Concatenates an array of tensors along a specified dimension. + * @param {Tensor[]} tensors The array of tensors to concatenate. + * @param {number} dim The dimension to concatenate along. + * @returns {Tensor} The concatenated tensor. + */ +export function cat(tensors: Tensor[], dim?: number): Tensor; +/** + * Stack an array of tensors along a specified dimension. + * @param {Tensor[]} tensors The array of tensors to stack. + * @param {number} dim The dimension to stack along. + * @returns {Tensor} The stacked tensor. + */ +export function stack(tensors: Tensor[], dim?: number): Tensor; +/** + * Calculates the standard deviation and mean over the dimensions specified by dim. dim can be a single dimension or `null` to reduce over all dimensions. + * @param {Tensor} input the input tenso + * @param {number|null} dim the dimension to reduce. If None, all dimensions are reduced. + * @param {number} correction difference between the sample size and sample degrees of freedom. Defaults to Bessel's correction, correction=1. + * @param {boolean} keepdim whether the output tensor has dim retained or not. + * @returns {Tensor[]} A tuple of (std, mean) tensors. + */ +export function std_mean(input: Tensor, dim?: number | null, correction?: number, keepdim?: boolean): Tensor[]; +/** + * Returns the mean value of each row of the input tensor in the given dimension dim. + * @param {Tensor} input the input tensor. + * @param {number|null} dim the dimension to reduce. + * @param {boolean} keepdim whether the output tensor has dim retained or not. + * @returns A new tensor with means taken along the specified dimension. + */ +export function mean(input: Tensor, dim?: number | null, keepdim?: boolean): Tensor; +/** + * + * Measures similarity between two temporal sequences (e.g., input audio and output tokens + * to generate token-level timestamps). + * @param {Tensor} matrix + * @returns {number[][]} + */ +export function dynamicTimeWarping(matrix: Tensor): number[][]; +/** + * Returns a tensor filled with the scalar value 1, with the shape defined by the variable argument size. + * @param {number[]} size A sequence of integers defining the shape of the output tensor. + */ +export function ones(size: number[]): Tensor; +/** + * Returns a tensor filled with the scalar value 1, with the same size as input. + * @param {Tensor} tensor The size of input will determine size of the output tensor. + * @returns The ones tensor. + */ +export function ones_like(tensor: Tensor): Tensor; +export class Tensor { + /** + * Create a new Tensor or copy an existing Tensor. + * @param {[DataType, DataArray, number[]]|[import('onnxruntime-common').Tensor]} args + */ + constructor(...args: [DataType, DataArray, number[]] | [import('onnxruntime-common').Tensor]); + /** @type {number[]} Dimensions of the tensor. */ + dims: number[]; + /** @type {DataType} Type of the tensor. */ + type: DataType; + /** @type {DataArray} The data stored in the tensor. */ + data: DataArray; + /** @type {number} The number of elements in the tensor. */ + size: number; + /** + * Index into a Tensor object. + * @param {number} index The index to access. + * @returns {Tensor} The data at the specified index. + */ + _getitem(index: number): Tensor; + /** + * @param {number|bigint} item The item to search for in the tensor + * @returns {number} The index of the first occurrence of item in the tensor data. + */ + indexOf(item: number | bigint): number; + /** + * @param {number} index + * @param {number} iterSize + * @param {any} iterDims + * @returns {Tensor} + */ + _subarray(index: number, iterSize: number, iterDims: any): Tensor; + /** + * Returns the value of this tensor as a standard JavaScript Number. This only works + * for tensors with one element. For other cases, see `Tensor.tolist()`. + * @returns {number|bigint} The value of this tensor as a standard JavaScript Number. + * @throws {Error} If the tensor has more than one element. + */ + item(): number | bigint; + /** + * Convert tensor data to a n-dimensional JS list + * @returns {Array} + */ + tolist(): any[]; + /** + * Return a new Tensor with the sigmoid function applied to each element. + * @returns {Tensor} The tensor with the sigmoid function applied. + */ + sigmoid(): Tensor; + /** + * Applies the sigmoid function to the tensor in place. + * @returns {Tensor} Returns `this`. + */ + sigmoid_(): Tensor; + /** + * Return a new Tensor with every element multiplied by a constant. + * @param {number} val The value to multiply by. + * @returns {Tensor} The new tensor. + */ + mul(val: number): Tensor; + /** + * Multiply the tensor by a constant in place. + * @param {number} val The value to multiply by. + * @returns {Tensor} Returns `this`. + */ + mul_(val: number): Tensor; + /** + * Return a new Tensor with every element added by a constant. + * @param {number} val The value to add by. + * @returns {Tensor} The new tensor. + */ + add(val: number): Tensor; + /** + * Add the tensor by a constant in place. + * @param {number} val The value to add by. + * @returns {Tensor} Returns `this`. + */ + add_(val: number): Tensor; + clone(): Tensor; + slice(...slices: any[]): Tensor; + /** + * Return a transposed version of this Tensor, according to the provided dimensions. + * @param {...number} dims Dimensions to transpose. + * @returns {Tensor} The transposed tensor. + */ + transpose(...dims: number[]): Tensor; + /** + * Returns the sum of each row of the input tensor in the given dimension dim. + * + * @param {number} [dim=null] The dimension or dimensions to reduce. If `null`, all dimensions are reduced. + * @param {boolean} keepdim Whether the output tensor has `dim` retained or not. + * @returns The summed tensor + */ + sum(dim?: number, keepdim?: boolean): Tensor; + /** + * Returns the matrix norm or vector norm of a given tensor. + * @param {number|string} [p='fro'] The order of norm + * @param {number} [dim=null] Specifies which dimension of the tensor to calculate the norm across. + * If dim is None, the norm will be calculated across all dimensions of input. + * @param {boolean} [keepdim=false] Whether the output tensors have dim retained or not. + * @returns {Tensor} The norm of the tensor. + */ + norm(p?: number | string, dim?: number, keepdim?: boolean): Tensor; + /** + * Performs `L_p` normalization of inputs over specified dimension. Operates in place. + * @param {number} [p=2] The exponent value in the norm formulation + * @param {number} [dim=1] The dimension to reduce + * @returns {Tensor} `this` for operation chaining. + */ + normalize_(p?: number, dim?: number): Tensor; + /** + * Performs `L_p` normalization of inputs over specified dimension. + * @param {number} [p=2] The exponent value in the norm formulation + * @param {number} [dim=1] The dimension to reduce + * @returns {Tensor} The normalized tensor. + */ + normalize(p?: number, dim?: number): Tensor; + /** + * Compute and return the stride of this tensor. + * Stride is the jump necessary to go from one element to the next one in the specified dimension dim. + * @returns {number[]} The stride of this tensor. + */ + stride(): number[]; + /** + * Returns a tensor with all specified dimensions of input of size 1 removed. + * + * NOTE: The returned tensor shares the storage with the input tensor, so changing the contents of one will change the contents of the other. + * If you would like a copy, use `tensor.clone()` before squeezing. + * + * @param {number} [dim=null] If given, the input will be squeezed only in the specified dimensions. + * @returns The squeezed tensor + */ + squeeze(dim?: number): Tensor; + /** + * In-place version of @see {@link Tensor.squeeze} + */ + squeeze_(dim?: any): this; + /** + * Returns a new tensor with a dimension of size one inserted at the specified position. + * + * NOTE: The returned tensor shares the same underlying data with this tensor. + * + * @param {number} dim The index at which to insert the singleton dimension + * @returns The unsqueezed tensor + */ + unsqueeze(dim?: number): Tensor; + /** + * In-place version of @see {@link Tensor.unsqueeze} + */ + unsqueeze_(dim?: any): this; + /** + * In-place version of @see {@link Tensor.flatten} + */ + flatten_(start_dim?: number, end_dim?: number): this; + /** + * Flattens input by reshaping it into a one-dimensional tensor. + * If `start_dim` or `end_dim` are passed, only dimensions starting with `start_dim` + * and ending with `end_dim` are flattened. The order of elements in input is unchanged. + * @param {number} start_dim the first dim to flatten + * @param {number} end_dim the last dim to flatten + * @returns The flattened tensor. + */ + flatten(start_dim?: number, end_dim?: number): Tensor; + /** + * Returns a new tensor with the same data as the `self` tensor but of a different `shape`. + * @param {...number} dims the desired size + * @returns {Tensor} The tensor with the same data but different shape + */ + view(...dims: number[]): Tensor; + neg_(): this; + neg(): Tensor; + /** + * In-place version of @see {@link Tensor.clamp} + */ + clamp_(min: any, max: any): this; + /** + * Clamps all elements in input into the range [ min, max ] + * @param {number} min lower-bound of the range to be clamped to + * @param {number} max upper-bound of the range to be clamped to + * @returns the output tensor. + */ + clamp(min: number, max: number): Tensor; + /** + * In-place version of @see {@link Tensor.round} + */ + round_(): this; + /** + * Rounds elements of input to the nearest integer. + * @returns the output tensor. + */ + round(): Tensor; + /** + * Performs Tensor dtype conversion. + * @param {DataType} type The desired data type. + * @returns {Tensor} The converted tensor. + */ + to(type: DataType): Tensor; + /** + * Returns an iterator object for iterating over the tensor data in row-major order. + * If the tensor has more than one dimension, the iterator will yield subarrays. + * @returns {Iterator} An iterator object for iterating over the tensor data in row-major order. + */ + [Symbol.iterator](): Iterator; +} +/** + * This creates a nested array of a given type and depth (see examples). + */ +export type NestArray = Acc['length'] extends Depth ? T : NestArray; +export type DataType = keyof typeof DataTypeMap; +export type DataArray = import('./maths.js').AnyTypedArray | any[]; +declare const DataTypeMap: Readonly<{ + float32: Float32ArrayConstructor; + float64: Float64ArrayConstructor; + string: ArrayConstructor; + int8: Int8ArrayConstructor; + uint8: Uint8ArrayConstructor; + int16: Int16ArrayConstructor; + uint16: Uint16ArrayConstructor; + int32: Int32ArrayConstructor; + uint32: Uint32ArrayConstructor; + int64: BigInt64ArrayConstructor; + uint64: BigUint64ArrayConstructor; + bool: Uint8ArrayConstructor; +}>; +export {}; +//# sourceMappingURL=tensor.d.ts.map \ No newline at end of file diff --git a/core/vendor/modules/@xenova/transformers/types/utils/tensor.d.ts.map b/core/vendor/modules/@xenova/transformers/types/utils/tensor.d.ts.map new file mode 100644 index 000000000..23e7637d3 --- /dev/null +++ b/core/vendor/modules/@xenova/transformers/types/utils/tensor.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"tensor.d.ts","sourceRoot":"","sources":["../../src/utils/tensor.js"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/core/web/webviewProtocol.ts b/core/web/webviewProtocol.ts index 9bbf09d97..afeb45a80 100644 --- a/core/web/webviewProtocol.ts +++ b/core/web/webviewProtocol.ts @@ -1,4 +1,3 @@ -import { Message } from "ollama"; import { ChatHistory, ContextItemWithId, diff --git a/core/yarn.lock b/core/yarn.lock index 00b57b2e9..4d84142a5 100644 --- a/core/yarn.lock +++ b/core/yarn.lock @@ -2,6 +2,14 @@ # yarn lockfile v1 +"@75lb/deep-merge@^1.1.1": + version "1.1.1" + resolved "https://registry.npmjs.org/@75lb/deep-merge/-/deep-merge-1.1.1.tgz" + integrity sha512-xvgv6pkMGBA6GwdyJbNAnDmfAIR/DfWhrj9jgWh3TY7gRm3KO46x/GPjRg6wJ0nOepwqrNxFfojebh0Df4h4Tw== + dependencies: + lodash.assignwith "^4.2.0" + typical "^7.1.1" + "@ampproject/remapping@^2.2.0": version "2.3.0" resolved "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz" @@ -10,155 +18,1239 @@ "@jridgewell/gen-mapping" "^0.3.5" "@jridgewell/trace-mapping" "^0.3.24" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.23.5": - version "7.23.5" - resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz" - integrity sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA== +"@apache-arrow/ts@^14.0.2": + version "14.0.2" + resolved "https://registry.npmjs.org/@apache-arrow/ts/-/ts-14.0.2.tgz" + integrity sha512-CtwAvLkK0CZv7xsYeCo91ml6PvlfzAmAJZkRYuz2GNBwfYufj5SVi0iuSMwIMkcU/szVwvLdzORSLa5PlF/2ug== + dependencies: + "@types/command-line-args" "5.2.0" + "@types/command-line-usage" "5.0.2" + "@types/node" "20.3.0" + "@types/pad-left" "2.1.1" + command-line-args "5.2.1" + command-line-usage "7.0.1" + flatbuffers "23.5.26" + json-bignum "^0.0.3" + pad-left "^2.1.0" + tslib "^2.5.3" + +"@aws-crypto/crc32@3.0.0": + version "3.0.0" + resolved "https://registry.npmjs.org/@aws-crypto/crc32/-/crc32-3.0.0.tgz" + integrity sha512-IzSgsrxUcsrejQbPVilIKy16kAT52EwB6zSaI+M3xxIhKh5+aldEyvI+z6erM7TCLB2BJsFrtHjp6/4/sr+3dA== dependencies: - "@babel/highlight" "^7.23.4" - chalk "^2.4.2" + "@aws-crypto/util" "^3.0.0" + "@aws-sdk/types" "^3.222.0" + tslib "^1.11.1" + +"@aws-crypto/ie11-detection@^3.0.0": + version "3.0.0" + resolved "https://registry.npmjs.org/@aws-crypto/ie11-detection/-/ie11-detection-3.0.0.tgz" + integrity sha512-341lBBkiY1DfDNKai/wXM3aujNBkXR7tq1URPQDL9wi3AUbI80NR74uF1TXHMm7po1AcnFk8iu2S2IeU/+/A+Q== + dependencies: + tslib "^1.11.1" + +"@aws-crypto/sha256-browser@3.0.0": + version "3.0.0" + resolved "https://registry.npmjs.org/@aws-crypto/sha256-browser/-/sha256-browser-3.0.0.tgz" + integrity sha512-8VLmW2B+gjFbU5uMeqtQM6Nj0/F1bro80xQXCW6CQBWgosFWXTx77aeOF5CAIAmbOK64SdMBJdNr6J41yP5mvQ== + dependencies: + "@aws-crypto/ie11-detection" "^3.0.0" + "@aws-crypto/sha256-js" "^3.0.0" + "@aws-crypto/supports-web-crypto" "^3.0.0" + "@aws-crypto/util" "^3.0.0" + "@aws-sdk/types" "^3.222.0" + "@aws-sdk/util-locate-window" "^3.0.0" + "@aws-sdk/util-utf8-browser" "^3.0.0" + tslib "^1.11.1" + +"@aws-crypto/sha256-browser@5.2.0": + version "5.2.0" + resolved "https://registry.npmjs.org/@aws-crypto/sha256-browser/-/sha256-browser-5.2.0.tgz" + integrity sha512-AXfN/lGotSQwu6HNcEsIASo7kWXZ5HYWvfOmSNKDsEqC4OashTp8alTmaz+F7TC2L083SFv5RdB+qU3Vs1kZqw== + dependencies: + "@aws-crypto/sha256-js" "^5.2.0" + "@aws-crypto/supports-web-crypto" "^5.2.0" + "@aws-crypto/util" "^5.2.0" + "@aws-sdk/types" "^3.222.0" + "@aws-sdk/util-locate-window" "^3.0.0" + "@smithy/util-utf8" "^2.0.0" + tslib "^2.6.2" + +"@aws-crypto/sha256-js@^3.0.0", "@aws-crypto/sha256-js@3.0.0": + version "3.0.0" + resolved "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-3.0.0.tgz" + integrity sha512-PnNN7os0+yd1XvXAy23CFOmTbMaDxgxXtTKHybrJ39Y8kGzBATgBFibWJKH6BhytLI/Zyszs87xCOBNyBig6vQ== + dependencies: + "@aws-crypto/util" "^3.0.0" + "@aws-sdk/types" "^3.222.0" + tslib "^1.11.1" + +"@aws-crypto/sha256-js@^5.2.0", "@aws-crypto/sha256-js@5.2.0": + version "5.2.0" + resolved "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-5.2.0.tgz" + integrity sha512-FFQQyu7edu4ufvIZ+OadFpHHOt+eSTBaYaki44c+akjg7qZg9oOQeLlk77F6tSYqjDAFClrHJk9tMf0HdVyOvA== + dependencies: + "@aws-crypto/util" "^5.2.0" + "@aws-sdk/types" "^3.222.0" + tslib "^2.6.2" + +"@aws-crypto/supports-web-crypto@^3.0.0": + version "3.0.0" + resolved "https://registry.npmjs.org/@aws-crypto/supports-web-crypto/-/supports-web-crypto-3.0.0.tgz" + integrity sha512-06hBdMwUAb2WFTuGG73LSC0wfPu93xWwo5vL2et9eymgmu3Id5vFAHBbajVWiGhPO37qcsdCap/FqXvJGJWPIg== + dependencies: + tslib "^1.11.1" + +"@aws-crypto/supports-web-crypto@^5.2.0": + version "5.2.0" + resolved "https://registry.npmjs.org/@aws-crypto/supports-web-crypto/-/supports-web-crypto-5.2.0.tgz" + integrity sha512-iAvUotm021kM33eCdNfwIN//F77/IADDSs58i+MDaOqFrVjZo9bAal0NK7HurRuWLLpF1iLX7gbWrjHjeo+YFg== + dependencies: + tslib "^2.6.2" + +"@aws-crypto/util@^3.0.0": + version "3.0.0" + resolved "https://registry.npmjs.org/@aws-crypto/util/-/util-3.0.0.tgz" + integrity sha512-2OJlpeJpCR48CC8r+uKVChzs9Iungj9wkZrl8Z041DWEWvyIHILYKCPNzJghKsivj+S3mLo6BVc7mBNzdxA46w== + dependencies: + "@aws-sdk/types" "^3.222.0" + "@aws-sdk/util-utf8-browser" "^3.0.0" + tslib "^1.11.1" + +"@aws-crypto/util@^5.2.0": + version "5.2.0" + resolved "https://registry.npmjs.org/@aws-crypto/util/-/util-5.2.0.tgz" + integrity sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ== + dependencies: + "@aws-sdk/types" "^3.222.0" + "@smithy/util-utf8" "^2.0.0" + tslib "^2.6.2" + +"@aws-sdk/client-bedrock-runtime@^3.574.0": + version "3.577.0" + resolved "https://registry.npmjs.org/@aws-sdk/client-bedrock-runtime/-/client-bedrock-runtime-3.577.0.tgz" + integrity sha512-etKXJqf+//3Sche5/vPFxF5pV59MZ06I/2SEpOr60mxgZG3hYbpznB9LTw9c4eHrBAPvvQbJewIusM40BP2FZQ== + dependencies: + "@aws-crypto/sha256-browser" "3.0.0" + "@aws-crypto/sha256-js" "3.0.0" + "@aws-sdk/client-sso-oidc" "3.577.0" + "@aws-sdk/client-sts" "3.577.0" + "@aws-sdk/core" "3.576.0" + "@aws-sdk/credential-provider-node" "3.577.0" + "@aws-sdk/middleware-host-header" "3.577.0" + "@aws-sdk/middleware-logger" "3.577.0" + "@aws-sdk/middleware-recursion-detection" "3.577.0" + "@aws-sdk/middleware-user-agent" "3.577.0" + "@aws-sdk/region-config-resolver" "3.577.0" + "@aws-sdk/types" "3.577.0" + "@aws-sdk/util-endpoints" "3.577.0" + "@aws-sdk/util-user-agent-browser" "3.577.0" + "@aws-sdk/util-user-agent-node" "3.577.0" + "@smithy/config-resolver" "^3.0.0" + "@smithy/core" "^2.0.0" + "@smithy/eventstream-serde-browser" "^3.0.0" + "@smithy/eventstream-serde-config-resolver" "^3.0.0" + "@smithy/eventstream-serde-node" "^3.0.0" + "@smithy/fetch-http-handler" "^3.0.0" + "@smithy/hash-node" "^3.0.0" + "@smithy/invalid-dependency" "^3.0.0" + "@smithy/middleware-content-length" "^3.0.0" + "@smithy/middleware-endpoint" "^3.0.0" + "@smithy/middleware-retry" "^3.0.0" + "@smithy/middleware-serde" "^3.0.0" + "@smithy/middleware-stack" "^3.0.0" + "@smithy/node-config-provider" "^3.0.0" + "@smithy/node-http-handler" "^3.0.0" + "@smithy/protocol-http" "^4.0.0" + "@smithy/smithy-client" "^3.0.0" + "@smithy/types" "^3.0.0" + "@smithy/url-parser" "^3.0.0" + "@smithy/util-base64" "^3.0.0" + "@smithy/util-body-length-browser" "^3.0.0" + "@smithy/util-body-length-node" "^3.0.0" + "@smithy/util-defaults-mode-browser" "^3.0.0" + "@smithy/util-defaults-mode-node" "^3.0.0" + "@smithy/util-endpoints" "^2.0.0" + "@smithy/util-middleware" "^3.0.0" + "@smithy/util-retry" "^3.0.0" + "@smithy/util-stream" "^3.0.0" + "@smithy/util-utf8" "^3.0.0" + tslib "^2.6.2" + +"@aws-sdk/client-cognito-identity@3.598.0": + version "3.598.0" + resolved "https://registry.npmjs.org/@aws-sdk/client-cognito-identity/-/client-cognito-identity-3.598.0.tgz" + integrity sha512-N/1lnkhkzk1Il8WEZBWR713/7sDEqBtl/1AS6dfgw6Zh7NWUYSwBkZx6xdN8KogDu4CFExRHhilNOgI1JMug3w== + dependencies: + "@aws-crypto/sha256-browser" "5.2.0" + "@aws-crypto/sha256-js" "5.2.0" + "@aws-sdk/client-sso-oidc" "3.598.0" + "@aws-sdk/client-sts" "3.598.0" + "@aws-sdk/core" "3.598.0" + "@aws-sdk/credential-provider-node" "3.598.0" + "@aws-sdk/middleware-host-header" "3.598.0" + "@aws-sdk/middleware-logger" "3.598.0" + "@aws-sdk/middleware-recursion-detection" "3.598.0" + "@aws-sdk/middleware-user-agent" "3.598.0" + "@aws-sdk/region-config-resolver" "3.598.0" + "@aws-sdk/types" "3.598.0" + "@aws-sdk/util-endpoints" "3.598.0" + "@aws-sdk/util-user-agent-browser" "3.598.0" + "@aws-sdk/util-user-agent-node" "3.598.0" + "@smithy/config-resolver" "^3.0.2" + "@smithy/core" "^2.2.1" + "@smithy/fetch-http-handler" "^3.0.2" + "@smithy/hash-node" "^3.0.1" + "@smithy/invalid-dependency" "^3.0.1" + "@smithy/middleware-content-length" "^3.0.1" + "@smithy/middleware-endpoint" "^3.0.2" + "@smithy/middleware-retry" "^3.0.4" + "@smithy/middleware-serde" "^3.0.1" + "@smithy/middleware-stack" "^3.0.1" + "@smithy/node-config-provider" "^3.1.1" + "@smithy/node-http-handler" "^3.0.1" + "@smithy/protocol-http" "^4.0.1" + "@smithy/smithy-client" "^3.1.2" + "@smithy/types" "^3.1.0" + "@smithy/url-parser" "^3.0.1" + "@smithy/util-base64" "^3.0.0" + "@smithy/util-body-length-browser" "^3.0.0" + "@smithy/util-body-length-node" "^3.0.0" + "@smithy/util-defaults-mode-browser" "^3.0.4" + "@smithy/util-defaults-mode-node" "^3.0.4" + "@smithy/util-endpoints" "^2.0.2" + "@smithy/util-middleware" "^3.0.1" + "@smithy/util-retry" "^3.0.1" + "@smithy/util-utf8" "^3.0.0" + tslib "^2.6.2" + +"@aws-sdk/client-sso-oidc@^3.577.0", "@aws-sdk/client-sso-oidc@3.577.0": + version "3.577.0" + resolved "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.577.0.tgz" + integrity sha512-njmKSPDWueWWYVFpFcZ2P3fI6/pdQVDa0FgCyYZhOnJLgEHZIcBBg1AsnkVWacBuLopp9XVt2m+7hO6ugY1/1g== + dependencies: + "@aws-crypto/sha256-browser" "3.0.0" + "@aws-crypto/sha256-js" "3.0.0" + "@aws-sdk/client-sts" "3.577.0" + "@aws-sdk/core" "3.576.0" + "@aws-sdk/credential-provider-node" "3.577.0" + "@aws-sdk/middleware-host-header" "3.577.0" + "@aws-sdk/middleware-logger" "3.577.0" + "@aws-sdk/middleware-recursion-detection" "3.577.0" + "@aws-sdk/middleware-user-agent" "3.577.0" + "@aws-sdk/region-config-resolver" "3.577.0" + "@aws-sdk/types" "3.577.0" + "@aws-sdk/util-endpoints" "3.577.0" + "@aws-sdk/util-user-agent-browser" "3.577.0" + "@aws-sdk/util-user-agent-node" "3.577.0" + "@smithy/config-resolver" "^3.0.0" + "@smithy/core" "^2.0.0" + "@smithy/fetch-http-handler" "^3.0.0" + "@smithy/hash-node" "^3.0.0" + "@smithy/invalid-dependency" "^3.0.0" + "@smithy/middleware-content-length" "^3.0.0" + "@smithy/middleware-endpoint" "^3.0.0" + "@smithy/middleware-retry" "^3.0.0" + "@smithy/middleware-serde" "^3.0.0" + "@smithy/middleware-stack" "^3.0.0" + "@smithy/node-config-provider" "^3.0.0" + "@smithy/node-http-handler" "^3.0.0" + "@smithy/protocol-http" "^4.0.0" + "@smithy/smithy-client" "^3.0.0" + "@smithy/types" "^3.0.0" + "@smithy/url-parser" "^3.0.0" + "@smithy/util-base64" "^3.0.0" + "@smithy/util-body-length-browser" "^3.0.0" + "@smithy/util-body-length-node" "^3.0.0" + "@smithy/util-defaults-mode-browser" "^3.0.0" + "@smithy/util-defaults-mode-node" "^3.0.0" + "@smithy/util-endpoints" "^2.0.0" + "@smithy/util-middleware" "^3.0.0" + "@smithy/util-retry" "^3.0.0" + "@smithy/util-utf8" "^3.0.0" + tslib "^2.6.2" + +"@aws-sdk/client-sso-oidc@^3.598.0", "@aws-sdk/client-sso-oidc@3.598.0": + version "3.598.0" + resolved "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.598.0.tgz" + integrity sha512-jfdH1pAO9Tt8Nkta/JJLoUnwl7jaRdxToQTJfUtE+o3+0JP5sA4LfC2rBkJSWcU5BdAA+kyOs5Lv776DlN04Vg== + dependencies: + "@aws-crypto/sha256-browser" "5.2.0" + "@aws-crypto/sha256-js" "5.2.0" + "@aws-sdk/client-sts" "3.598.0" + "@aws-sdk/core" "3.598.0" + "@aws-sdk/credential-provider-node" "3.598.0" + "@aws-sdk/middleware-host-header" "3.598.0" + "@aws-sdk/middleware-logger" "3.598.0" + "@aws-sdk/middleware-recursion-detection" "3.598.0" + "@aws-sdk/middleware-user-agent" "3.598.0" + "@aws-sdk/region-config-resolver" "3.598.0" + "@aws-sdk/types" "3.598.0" + "@aws-sdk/util-endpoints" "3.598.0" + "@aws-sdk/util-user-agent-browser" "3.598.0" + "@aws-sdk/util-user-agent-node" "3.598.0" + "@smithy/config-resolver" "^3.0.2" + "@smithy/core" "^2.2.1" + "@smithy/fetch-http-handler" "^3.0.2" + "@smithy/hash-node" "^3.0.1" + "@smithy/invalid-dependency" "^3.0.1" + "@smithy/middleware-content-length" "^3.0.1" + "@smithy/middleware-endpoint" "^3.0.2" + "@smithy/middleware-retry" "^3.0.4" + "@smithy/middleware-serde" "^3.0.1" + "@smithy/middleware-stack" "^3.0.1" + "@smithy/node-config-provider" "^3.1.1" + "@smithy/node-http-handler" "^3.0.1" + "@smithy/protocol-http" "^4.0.1" + "@smithy/smithy-client" "^3.1.2" + "@smithy/types" "^3.1.0" + "@smithy/url-parser" "^3.0.1" + "@smithy/util-base64" "^3.0.0" + "@smithy/util-body-length-browser" "^3.0.0" + "@smithy/util-body-length-node" "^3.0.0" + "@smithy/util-defaults-mode-browser" "^3.0.4" + "@smithy/util-defaults-mode-node" "^3.0.4" + "@smithy/util-endpoints" "^2.0.2" + "@smithy/util-middleware" "^3.0.1" + "@smithy/util-retry" "^3.0.1" + "@smithy/util-utf8" "^3.0.0" + tslib "^2.6.2" + +"@aws-sdk/client-sso@3.577.0": + version "3.577.0" + resolved "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.577.0.tgz" + integrity sha512-BwujdXrydlk6UEyPmewm5GqG4nkQ6OVyRhS/SyZP/6UKSFv2/sf391Cmz0hN0itUTH1rR4XeLln8XCOtarkrzg== + dependencies: + "@aws-crypto/sha256-browser" "3.0.0" + "@aws-crypto/sha256-js" "3.0.0" + "@aws-sdk/core" "3.576.0" + "@aws-sdk/middleware-host-header" "3.577.0" + "@aws-sdk/middleware-logger" "3.577.0" + "@aws-sdk/middleware-recursion-detection" "3.577.0" + "@aws-sdk/middleware-user-agent" "3.577.0" + "@aws-sdk/region-config-resolver" "3.577.0" + "@aws-sdk/types" "3.577.0" + "@aws-sdk/util-endpoints" "3.577.0" + "@aws-sdk/util-user-agent-browser" "3.577.0" + "@aws-sdk/util-user-agent-node" "3.577.0" + "@smithy/config-resolver" "^3.0.0" + "@smithy/core" "^2.0.0" + "@smithy/fetch-http-handler" "^3.0.0" + "@smithy/hash-node" "^3.0.0" + "@smithy/invalid-dependency" "^3.0.0" + "@smithy/middleware-content-length" "^3.0.0" + "@smithy/middleware-endpoint" "^3.0.0" + "@smithy/middleware-retry" "^3.0.0" + "@smithy/middleware-serde" "^3.0.0" + "@smithy/middleware-stack" "^3.0.0" + "@smithy/node-config-provider" "^3.0.0" + "@smithy/node-http-handler" "^3.0.0" + "@smithy/protocol-http" "^4.0.0" + "@smithy/smithy-client" "^3.0.0" + "@smithy/types" "^3.0.0" + "@smithy/url-parser" "^3.0.0" + "@smithy/util-base64" "^3.0.0" + "@smithy/util-body-length-browser" "^3.0.0" + "@smithy/util-body-length-node" "^3.0.0" + "@smithy/util-defaults-mode-browser" "^3.0.0" + "@smithy/util-defaults-mode-node" "^3.0.0" + "@smithy/util-endpoints" "^2.0.0" + "@smithy/util-middleware" "^3.0.0" + "@smithy/util-retry" "^3.0.0" + "@smithy/util-utf8" "^3.0.0" + tslib "^2.6.2" + +"@aws-sdk/client-sso@3.598.0": + version "3.598.0" + resolved "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.598.0.tgz" + integrity sha512-nOI5lqPYa+YZlrrzwAJywJSw3MKVjvu6Ge2fCqQUNYMfxFB0NAaDFnl0EPjXi+sEbtCuz/uWE77poHbqiZ+7Iw== + dependencies: + "@aws-crypto/sha256-browser" "5.2.0" + "@aws-crypto/sha256-js" "5.2.0" + "@aws-sdk/core" "3.598.0" + "@aws-sdk/middleware-host-header" "3.598.0" + "@aws-sdk/middleware-logger" "3.598.0" + "@aws-sdk/middleware-recursion-detection" "3.598.0" + "@aws-sdk/middleware-user-agent" "3.598.0" + "@aws-sdk/region-config-resolver" "3.598.0" + "@aws-sdk/types" "3.598.0" + "@aws-sdk/util-endpoints" "3.598.0" + "@aws-sdk/util-user-agent-browser" "3.598.0" + "@aws-sdk/util-user-agent-node" "3.598.0" + "@smithy/config-resolver" "^3.0.2" + "@smithy/core" "^2.2.1" + "@smithy/fetch-http-handler" "^3.0.2" + "@smithy/hash-node" "^3.0.1" + "@smithy/invalid-dependency" "^3.0.1" + "@smithy/middleware-content-length" "^3.0.1" + "@smithy/middleware-endpoint" "^3.0.2" + "@smithy/middleware-retry" "^3.0.4" + "@smithy/middleware-serde" "^3.0.1" + "@smithy/middleware-stack" "^3.0.1" + "@smithy/node-config-provider" "^3.1.1" + "@smithy/node-http-handler" "^3.0.1" + "@smithy/protocol-http" "^4.0.1" + "@smithy/smithy-client" "^3.1.2" + "@smithy/types" "^3.1.0" + "@smithy/url-parser" "^3.0.1" + "@smithy/util-base64" "^3.0.0" + "@smithy/util-body-length-browser" "^3.0.0" + "@smithy/util-body-length-node" "^3.0.0" + "@smithy/util-defaults-mode-browser" "^3.0.4" + "@smithy/util-defaults-mode-node" "^3.0.4" + "@smithy/util-endpoints" "^2.0.2" + "@smithy/util-middleware" "^3.0.1" + "@smithy/util-retry" "^3.0.1" + "@smithy/util-utf8" "^3.0.0" + tslib "^2.6.2" + +"@aws-sdk/client-sts@^3.577.0", "@aws-sdk/client-sts@3.577.0": + version "3.577.0" + resolved "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.577.0.tgz" + integrity sha512-509Kklimva1XVlhGbpTpeX3kOP6ORpm44twJxDHpa9TURbmoaxj7veWlnLCbDorxDTrbsDghvYZshvcLsojVpg== + dependencies: + "@aws-crypto/sha256-browser" "3.0.0" + "@aws-crypto/sha256-js" "3.0.0" + "@aws-sdk/client-sso-oidc" "3.577.0" + "@aws-sdk/core" "3.576.0" + "@aws-sdk/credential-provider-node" "3.577.0" + "@aws-sdk/middleware-host-header" "3.577.0" + "@aws-sdk/middleware-logger" "3.577.0" + "@aws-sdk/middleware-recursion-detection" "3.577.0" + "@aws-sdk/middleware-user-agent" "3.577.0" + "@aws-sdk/region-config-resolver" "3.577.0" + "@aws-sdk/types" "3.577.0" + "@aws-sdk/util-endpoints" "3.577.0" + "@aws-sdk/util-user-agent-browser" "3.577.0" + "@aws-sdk/util-user-agent-node" "3.577.0" + "@smithy/config-resolver" "^3.0.0" + "@smithy/core" "^2.0.0" + "@smithy/fetch-http-handler" "^3.0.0" + "@smithy/hash-node" "^3.0.0" + "@smithy/invalid-dependency" "^3.0.0" + "@smithy/middleware-content-length" "^3.0.0" + "@smithy/middleware-endpoint" "^3.0.0" + "@smithy/middleware-retry" "^3.0.0" + "@smithy/middleware-serde" "^3.0.0" + "@smithy/middleware-stack" "^3.0.0" + "@smithy/node-config-provider" "^3.0.0" + "@smithy/node-http-handler" "^3.0.0" + "@smithy/protocol-http" "^4.0.0" + "@smithy/smithy-client" "^3.0.0" + "@smithy/types" "^3.0.0" + "@smithy/url-parser" "^3.0.0" + "@smithy/util-base64" "^3.0.0" + "@smithy/util-body-length-browser" "^3.0.0" + "@smithy/util-body-length-node" "^3.0.0" + "@smithy/util-defaults-mode-browser" "^3.0.0" + "@smithy/util-defaults-mode-node" "^3.0.0" + "@smithy/util-endpoints" "^2.0.0" + "@smithy/util-middleware" "^3.0.0" + "@smithy/util-retry" "^3.0.0" + "@smithy/util-utf8" "^3.0.0" + tslib "^2.6.2" + +"@aws-sdk/client-sts@^3.598.0", "@aws-sdk/client-sts@3.598.0": + version "3.598.0" + resolved "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.598.0.tgz" + integrity sha512-bXhz/cHL0iB9UH9IFtMaJJf4F8mV+HzncETCRFzZ9SyUMt5rP9j8A7VZknqGYSx/6mI8SsB1XJQkWSbhn6FiSQ== + dependencies: + "@aws-crypto/sha256-browser" "5.2.0" + "@aws-crypto/sha256-js" "5.2.0" + "@aws-sdk/client-sso-oidc" "3.598.0" + "@aws-sdk/core" "3.598.0" + "@aws-sdk/credential-provider-node" "3.598.0" + "@aws-sdk/middleware-host-header" "3.598.0" + "@aws-sdk/middleware-logger" "3.598.0" + "@aws-sdk/middleware-recursion-detection" "3.598.0" + "@aws-sdk/middleware-user-agent" "3.598.0" + "@aws-sdk/region-config-resolver" "3.598.0" + "@aws-sdk/types" "3.598.0" + "@aws-sdk/util-endpoints" "3.598.0" + "@aws-sdk/util-user-agent-browser" "3.598.0" + "@aws-sdk/util-user-agent-node" "3.598.0" + "@smithy/config-resolver" "^3.0.2" + "@smithy/core" "^2.2.1" + "@smithy/fetch-http-handler" "^3.0.2" + "@smithy/hash-node" "^3.0.1" + "@smithy/invalid-dependency" "^3.0.1" + "@smithy/middleware-content-length" "^3.0.1" + "@smithy/middleware-endpoint" "^3.0.2" + "@smithy/middleware-retry" "^3.0.4" + "@smithy/middleware-serde" "^3.0.1" + "@smithy/middleware-stack" "^3.0.1" + "@smithy/node-config-provider" "^3.1.1" + "@smithy/node-http-handler" "^3.0.1" + "@smithy/protocol-http" "^4.0.1" + "@smithy/smithy-client" "^3.1.2" + "@smithy/types" "^3.1.0" + "@smithy/url-parser" "^3.0.1" + "@smithy/util-base64" "^3.0.0" + "@smithy/util-body-length-browser" "^3.0.0" + "@smithy/util-body-length-node" "^3.0.0" + "@smithy/util-defaults-mode-browser" "^3.0.4" + "@smithy/util-defaults-mode-node" "^3.0.4" + "@smithy/util-endpoints" "^2.0.2" + "@smithy/util-middleware" "^3.0.1" + "@smithy/util-retry" "^3.0.1" + "@smithy/util-utf8" "^3.0.0" + tslib "^2.6.2" + +"@aws-sdk/core@3.576.0": + version "3.576.0" + resolved "https://registry.npmjs.org/@aws-sdk/core/-/core-3.576.0.tgz" + integrity sha512-KDvDlbeipSTIf+ffKtTg1m419TK7s9mZSWC8bvuZ9qx6/sjQFOXIKOVqyuli6DnfxGbvRcwoRuY99OcCH1N/0w== + dependencies: + "@smithy/core" "^2.0.0" + "@smithy/protocol-http" "^4.0.0" + "@smithy/signature-v4" "^3.0.0" + "@smithy/smithy-client" "^3.0.0" + "@smithy/types" "^3.0.0" + fast-xml-parser "4.2.5" + tslib "^2.6.2" + +"@aws-sdk/core@3.598.0": + version "3.598.0" + resolved "https://registry.npmjs.org/@aws-sdk/core/-/core-3.598.0.tgz" + integrity sha512-HaSjt7puO5Cc7cOlrXFCW0rtA0BM9lvzjl56x0A20Pt+0wxXGeTOZZOkXQIepbrFkV2e/HYukuT9e99vXDm59g== + dependencies: + "@smithy/core" "^2.2.1" + "@smithy/protocol-http" "^4.0.1" + "@smithy/signature-v4" "^3.1.0" + "@smithy/smithy-client" "^3.1.2" + "@smithy/types" "^3.1.0" + fast-xml-parser "4.2.5" + tslib "^2.6.2" + +"@aws-sdk/credential-provider-cognito-identity@3.598.0": + version "3.598.0" + resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.598.0.tgz" + integrity sha512-u6oocRReswkA2mFlOwtCetgmEr9B+Yhle3K13x37rb1lQgq1wUuWUvHU7U9v26hUZIhfUpigV/Mgr/RQZB6+Yw== + dependencies: + "@aws-sdk/client-cognito-identity" "3.598.0" + "@aws-sdk/types" "3.598.0" + "@smithy/property-provider" "^3.1.1" + "@smithy/types" "^3.1.0" + tslib "^2.6.2" + +"@aws-sdk/credential-provider-env@3.577.0": + version "3.577.0" + resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.577.0.tgz" + integrity sha512-Jxu255j0gToMGEiqufP8ZtKI8HW90lOLjwJ3LrdlD/NLsAY0tOQf1fWc53u28hWmmNGMxmCrL2p66IOgMDhDUw== + dependencies: + "@aws-sdk/types" "3.577.0" + "@smithy/property-provider" "^3.0.0" + "@smithy/types" "^3.0.0" + tslib "^2.6.2" + +"@aws-sdk/credential-provider-env@3.598.0": + version "3.598.0" + resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.598.0.tgz" + integrity sha512-vi1khgn7yXzLCcgSIzQrrtd2ilUM0dWodxj3PQ6BLfP0O+q1imO3hG1nq7DVyJtq7rFHs6+9N8G4mYvTkxby2w== + dependencies: + "@aws-sdk/types" "3.598.0" + "@smithy/property-provider" "^3.1.1" + "@smithy/types" "^3.1.0" + tslib "^2.6.2" + +"@aws-sdk/credential-provider-http@3.577.0": + version "3.577.0" + resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.577.0.tgz" + integrity sha512-n++yhCp67b9+ZRGEdY1jhamB5E/O+QsIDOPSuRmdaSGMCOd82oUEKPgIVEU1bkqxDsBxgiEWuvtfhK6sNiDS0A== + dependencies: + "@aws-sdk/types" "3.577.0" + "@smithy/fetch-http-handler" "^3.0.0" + "@smithy/node-http-handler" "^3.0.0" + "@smithy/property-provider" "^3.0.0" + "@smithy/protocol-http" "^4.0.0" + "@smithy/smithy-client" "^3.0.0" + "@smithy/types" "^3.0.0" + "@smithy/util-stream" "^3.0.0" + tslib "^2.6.2" + +"@aws-sdk/credential-provider-http@3.598.0": + version "3.598.0" + resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.598.0.tgz" + integrity sha512-N7cIafi4HVlQvEgvZSo1G4T9qb/JMLGMdBsDCT5XkeJrF0aptQWzTFH0jIdZcLrMYvzPcuEyO3yCBe6cy/ba0g== + dependencies: + "@aws-sdk/types" "3.598.0" + "@smithy/fetch-http-handler" "^3.0.2" + "@smithy/node-http-handler" "^3.0.1" + "@smithy/property-provider" "^3.1.1" + "@smithy/protocol-http" "^4.0.1" + "@smithy/smithy-client" "^3.1.2" + "@smithy/types" "^3.1.0" + "@smithy/util-stream" "^3.0.2" + tslib "^2.6.2" + +"@aws-sdk/credential-provider-ini@3.577.0": + version "3.577.0" + resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.577.0.tgz" + integrity sha512-q7lHPtv6BjRvChUE3m0tIaEZKxPTaZ1B3lKxGYsFl3VLAu5N8yGCUKwuA1izf4ucT+LyKscVGqK6VDZx1ev3nw== + dependencies: + "@aws-sdk/credential-provider-env" "3.577.0" + "@aws-sdk/credential-provider-process" "3.577.0" + "@aws-sdk/credential-provider-sso" "3.577.0" + "@aws-sdk/credential-provider-web-identity" "3.577.0" + "@aws-sdk/types" "3.577.0" + "@smithy/credential-provider-imds" "^3.0.0" + "@smithy/property-provider" "^3.0.0" + "@smithy/shared-ini-file-loader" "^3.0.0" + "@smithy/types" "^3.0.0" + tslib "^2.6.2" + +"@aws-sdk/credential-provider-ini@3.598.0": + version "3.598.0" + resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.598.0.tgz" + integrity sha512-/ppcIVUbRwDIwJDoYfp90X3+AuJo2mvE52Y1t2VSrvUovYn6N4v95/vXj6LS8CNDhz2jvEJYmu+0cTMHdhI6eA== + dependencies: + "@aws-sdk/credential-provider-env" "3.598.0" + "@aws-sdk/credential-provider-http" "3.598.0" + "@aws-sdk/credential-provider-process" "3.598.0" + "@aws-sdk/credential-provider-sso" "3.598.0" + "@aws-sdk/credential-provider-web-identity" "3.598.0" + "@aws-sdk/types" "3.598.0" + "@smithy/credential-provider-imds" "^3.1.1" + "@smithy/property-provider" "^3.1.1" + "@smithy/shared-ini-file-loader" "^3.1.1" + "@smithy/types" "^3.1.0" + tslib "^2.6.2" + +"@aws-sdk/credential-provider-node@3.577.0": + version "3.577.0" + resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.577.0.tgz" + integrity sha512-epZ1HOMsrXBNczc0HQpv0VMjqAEpc09DUA7Rg3gUJfn8umhML7A7bXnUyqPA+S54q397UYg1leQKdSn23OiwQQ== + dependencies: + "@aws-sdk/credential-provider-env" "3.577.0" + "@aws-sdk/credential-provider-http" "3.577.0" + "@aws-sdk/credential-provider-ini" "3.577.0" + "@aws-sdk/credential-provider-process" "3.577.0" + "@aws-sdk/credential-provider-sso" "3.577.0" + "@aws-sdk/credential-provider-web-identity" "3.577.0" + "@aws-sdk/types" "3.577.0" + "@smithy/credential-provider-imds" "^3.0.0" + "@smithy/property-provider" "^3.0.0" + "@smithy/shared-ini-file-loader" "^3.0.0" + "@smithy/types" "^3.0.0" + tslib "^2.6.2" + +"@aws-sdk/credential-provider-node@3.598.0": + version "3.598.0" + resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.598.0.tgz" + integrity sha512-sXTlqL5I/awlF9Dg2MQ17SfrEaABVnsj2mf4jF5qQrIRhfbvQOIYdEqdy8Rn1AWlJMz/N450SGzc0XJ5owxxqw== + dependencies: + "@aws-sdk/credential-provider-env" "3.598.0" + "@aws-sdk/credential-provider-http" "3.598.0" + "@aws-sdk/credential-provider-ini" "3.598.0" + "@aws-sdk/credential-provider-process" "3.598.0" + "@aws-sdk/credential-provider-sso" "3.598.0" + "@aws-sdk/credential-provider-web-identity" "3.598.0" + "@aws-sdk/types" "3.598.0" + "@smithy/credential-provider-imds" "^3.1.1" + "@smithy/property-provider" "^3.1.1" + "@smithy/shared-ini-file-loader" "^3.1.1" + "@smithy/types" "^3.1.0" + tslib "^2.6.2" + +"@aws-sdk/credential-provider-process@3.577.0": + version "3.577.0" + resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.577.0.tgz" + integrity sha512-Gin6BWtOiXxIgITrJ3Nwc+Y2P1uVT6huYR4EcbA/DJUPWyO0n9y5UFLewPvVbLkRn15JeEqErBLUrHclkiOKtw== + dependencies: + "@aws-sdk/types" "3.577.0" + "@smithy/property-provider" "^3.0.0" + "@smithy/shared-ini-file-loader" "^3.0.0" + "@smithy/types" "^3.0.0" + tslib "^2.6.2" + +"@aws-sdk/credential-provider-process@3.598.0": + version "3.598.0" + resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.598.0.tgz" + integrity sha512-rM707XbLW8huMk722AgjVyxu2tMZee++fNA8TJVNgs1Ma02Wx6bBrfIvlyK0rCcIRb0WdQYP6fe3Xhiu4e8IBA== + dependencies: + "@aws-sdk/types" "3.598.0" + "@smithy/property-provider" "^3.1.1" + "@smithy/shared-ini-file-loader" "^3.1.1" + "@smithy/types" "^3.1.0" + tslib "^2.6.2" + +"@aws-sdk/credential-provider-sso@3.577.0": + version "3.577.0" + resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.577.0.tgz" + integrity sha512-iVm5SQvS7EgZTJsRaqUOmDQpBQPPPat42SCbWFvFQOLrl8qewq8OP94hFS5w2mP62zngeYzqhJnDel79HXbxew== + dependencies: + "@aws-sdk/client-sso" "3.577.0" + "@aws-sdk/token-providers" "3.577.0" + "@aws-sdk/types" "3.577.0" + "@smithy/property-provider" "^3.0.0" + "@smithy/shared-ini-file-loader" "^3.0.0" + "@smithy/types" "^3.0.0" + tslib "^2.6.2" + +"@aws-sdk/credential-provider-sso@3.598.0": + version "3.598.0" + resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.598.0.tgz" + integrity sha512-5InwUmrAuqQdOOgxTccRayMMkSmekdLk6s+az9tmikq0QFAHUCtofI+/fllMXSR9iL6JbGYi1940+EUmS4pHJA== + dependencies: + "@aws-sdk/client-sso" "3.598.0" + "@aws-sdk/token-providers" "3.598.0" + "@aws-sdk/types" "3.598.0" + "@smithy/property-provider" "^3.1.1" + "@smithy/shared-ini-file-loader" "^3.1.1" + "@smithy/types" "^3.1.0" + tslib "^2.6.2" + +"@aws-sdk/credential-provider-web-identity@3.577.0": + version "3.577.0" + resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.577.0.tgz" + integrity sha512-ZGHGNRaCtJJmszb9UTnC7izNCtRUttdPlLdMkh41KPS32vfdrBDHs1JrpbZijItRj1xKuOXsiYSXLAaHGcLh8Q== + dependencies: + "@aws-sdk/types" "3.577.0" + "@smithy/property-provider" "^3.0.0" + "@smithy/types" "^3.0.0" + tslib "^2.6.2" + +"@aws-sdk/credential-provider-web-identity@3.598.0": + version "3.598.0" + resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.598.0.tgz" + integrity sha512-GV5GdiMbz5Tz9JO4NJtRoFXjW0GPEujA0j+5J/B723rTN+REHthJu48HdBKouHGhdzkDWkkh1bu52V02Wprw8w== + dependencies: + "@aws-sdk/types" "3.598.0" + "@smithy/property-provider" "^3.1.1" + "@smithy/types" "^3.1.0" + tslib "^2.6.2" + +"@aws-sdk/credential-providers@^3.596.0": + version "3.598.0" + resolved "https://registry.npmjs.org/@aws-sdk/credential-providers/-/credential-providers-3.598.0.tgz" + integrity sha512-IFZwH3F2rA2WbpYFUxOeu/M3/9p4+oRbKVLDZlaaDtwwuZ9VHEbnkUm20zOgSXeVExa3qgYhJvg7H5JrqxP97A== + dependencies: + "@aws-sdk/client-cognito-identity" "3.598.0" + "@aws-sdk/client-sso" "3.598.0" + "@aws-sdk/client-sts" "3.598.0" + "@aws-sdk/credential-provider-cognito-identity" "3.598.0" + "@aws-sdk/credential-provider-env" "3.598.0" + "@aws-sdk/credential-provider-http" "3.598.0" + "@aws-sdk/credential-provider-ini" "3.598.0" + "@aws-sdk/credential-provider-node" "3.598.0" + "@aws-sdk/credential-provider-process" "3.598.0" + "@aws-sdk/credential-provider-sso" "3.598.0" + "@aws-sdk/credential-provider-web-identity" "3.598.0" + "@aws-sdk/types" "3.598.0" + "@smithy/credential-provider-imds" "^3.1.1" + "@smithy/property-provider" "^3.1.1" + "@smithy/types" "^3.1.0" + tslib "^2.6.2" + +"@aws-sdk/middleware-host-header@3.577.0": + version "3.577.0" + resolved "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.577.0.tgz" + integrity sha512-9ca5MJz455CODIVXs0/sWmJm7t3QO4EUa1zf8pE8grLpzf0J94bz/skDWm37Pli13T3WaAQBHCTiH2gUVfCsWg== + dependencies: + "@aws-sdk/types" "3.577.0" + "@smithy/protocol-http" "^4.0.0" + "@smithy/types" "^3.0.0" + tslib "^2.6.2" + +"@aws-sdk/middleware-host-header@3.598.0": + version "3.598.0" + resolved "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.598.0.tgz" + integrity sha512-WiaG059YBQwQraNejLIi0gMNkX7dfPZ8hDIhvMr5aVPRbaHH8AYF3iNSsXYCHvA2Cfa1O9haYXsuMF9flXnCmA== + dependencies: + "@aws-sdk/types" "3.598.0" + "@smithy/protocol-http" "^4.0.1" + "@smithy/types" "^3.1.0" + tslib "^2.6.2" + +"@aws-sdk/middleware-logger@3.577.0": + version "3.577.0" + resolved "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.577.0.tgz" + integrity sha512-aPFGpGjTZcJYk+24bg7jT4XdIp42mFXSuPt49lw5KygefLyJM/sB0bKKqPYYivW0rcuZ9brQ58eZUNthrzYAvg== + dependencies: + "@aws-sdk/types" "3.577.0" + "@smithy/types" "^3.0.0" + tslib "^2.6.2" + +"@aws-sdk/middleware-logger@3.598.0": + version "3.598.0" + resolved "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.598.0.tgz" + integrity sha512-bxBjf/VYiu3zfu8SYM2S9dQQc3tz5uBAOcPz/Bt8DyyK3GgOpjhschH/2XuUErsoUO1gDJqZSdGOmuHGZQn00Q== + dependencies: + "@aws-sdk/types" "3.598.0" + "@smithy/types" "^3.1.0" + tslib "^2.6.2" + +"@aws-sdk/middleware-recursion-detection@3.577.0": + version "3.577.0" + resolved "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.577.0.tgz" + integrity sha512-pn3ZVEd2iobKJlR3H+bDilHjgRnNrQ6HMmK9ZzZw89Ckn3Dcbv48xOv4RJvu0aU8SDLl/SNCxppKjeLDTPGBNA== + dependencies: + "@aws-sdk/types" "3.577.0" + "@smithy/protocol-http" "^4.0.0" + "@smithy/types" "^3.0.0" + tslib "^2.6.2" + +"@aws-sdk/middleware-recursion-detection@3.598.0": + version "3.598.0" + resolved "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.598.0.tgz" + integrity sha512-vjT9BeFY9FeN0f8hm2l6F53tI0N5bUq6RcDkQXKNabXBnQxKptJRad6oP2X5y3FoVfBLOuDkQgiC2940GIPxtQ== + dependencies: + "@aws-sdk/types" "3.598.0" + "@smithy/protocol-http" "^4.0.1" + "@smithy/types" "^3.1.0" + tslib "^2.6.2" + +"@aws-sdk/middleware-user-agent@3.577.0": + version "3.577.0" + resolved "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.577.0.tgz" + integrity sha512-P55HAXgwmiHHpFx5JEPvOnAbfhN7v6sWv9PBQs+z2tC7QiBcPS0cdJR6PfV7J1n4VPK52/OnrK3l9VxdQ7Ms0g== + dependencies: + "@aws-sdk/types" "3.577.0" + "@aws-sdk/util-endpoints" "3.577.0" + "@smithy/protocol-http" "^4.0.0" + "@smithy/types" "^3.0.0" + tslib "^2.6.2" + +"@aws-sdk/middleware-user-agent@3.598.0": + version "3.598.0" + resolved "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.598.0.tgz" + integrity sha512-4tjESlHG5B5MdjUaLK7tQs/miUtHbb6deauQx8ryqSBYOhfHVgb1ZnzvQR0bTrhpqUg0WlybSkDaZAICf9xctg== + dependencies: + "@aws-sdk/types" "3.598.0" + "@aws-sdk/util-endpoints" "3.598.0" + "@smithy/protocol-http" "^4.0.1" + "@smithy/types" "^3.1.0" + tslib "^2.6.2" + +"@aws-sdk/region-config-resolver@3.577.0": + version "3.577.0" + resolved "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.577.0.tgz" + integrity sha512-4ChCFACNwzqx/xjg3zgFcW8Ali6R9C95cFECKWT/7CUM1D0MGvkclSH2cLarmHCmJgU6onKkJroFtWp0kHhgyg== + dependencies: + "@aws-sdk/types" "3.577.0" + "@smithy/node-config-provider" "^3.0.0" + "@smithy/types" "^3.0.0" + "@smithy/util-config-provider" "^3.0.0" + "@smithy/util-middleware" "^3.0.0" + tslib "^2.6.2" + +"@aws-sdk/region-config-resolver@3.598.0": + version "3.598.0" + resolved "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.598.0.tgz" + integrity sha512-oYXhmTokSav4ytmWleCr3rs/1nyvZW/S0tdi6X7u+dLNL5Jee+uMxWGzgOrWK6wrQOzucLVjS4E/wA11Kv2GTw== + dependencies: + "@aws-sdk/types" "3.598.0" + "@smithy/node-config-provider" "^3.1.1" + "@smithy/types" "^3.1.0" + "@smithy/util-config-provider" "^3.0.0" + "@smithy/util-middleware" "^3.0.1" + tslib "^2.6.2" + +"@aws-sdk/token-providers@3.577.0": + version "3.577.0" + resolved "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.577.0.tgz" + integrity sha512-0CkIZpcC3DNQJQ1hDjm2bdSy/Xjs7Ny5YvSsacasGOkNfk+FdkiQy6N67bZX3Zbc9KIx+Nz4bu3iDeNSNplnnQ== + dependencies: + "@aws-sdk/types" "3.577.0" + "@smithy/property-provider" "^3.0.0" + "@smithy/shared-ini-file-loader" "^3.0.0" + "@smithy/types" "^3.0.0" + tslib "^2.6.2" + +"@aws-sdk/token-providers@3.598.0": + version "3.598.0" + resolved "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.598.0.tgz" + integrity sha512-TKY1EVdHVBnZqpyxyTHdpZpa1tUpb6nxVeRNn1zWG8QB5MvH4ALLd/jR+gtmWDNQbIG4cVuBOZFVL8hIYicKTA== + dependencies: + "@aws-sdk/types" "3.598.0" + "@smithy/property-provider" "^3.1.1" + "@smithy/shared-ini-file-loader" "^3.1.1" + "@smithy/types" "^3.1.0" + tslib "^2.6.2" + +"@aws-sdk/types@^3.222.0", "@aws-sdk/types@3.577.0": + version "3.577.0" + resolved "https://registry.npmjs.org/@aws-sdk/types/-/types-3.577.0.tgz" + integrity sha512-FT2JZES3wBKN/alfmhlo+3ZOq/XJ0C7QOZcDNrpKjB0kqYoKjhVKZ/Hx6ArR0czkKfHzBBEs6y40ebIHx2nSmA== + dependencies: + "@smithy/types" "^3.0.0" + tslib "^2.6.2" + +"@aws-sdk/types@3.598.0": + version "3.598.0" + resolved "https://registry.npmjs.org/@aws-sdk/types/-/types-3.598.0.tgz" + integrity sha512-742uRl6z7u0LFmZwDrFP6r1wlZcgVPw+/TilluDJmCAR8BgRw3IR+743kUXKBGd8QZDRW2n6v/PYsi/AWCDDMQ== + dependencies: + "@smithy/types" "^3.1.0" + tslib "^2.6.2" + +"@aws-sdk/util-endpoints@3.577.0": + version "3.577.0" + resolved "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.577.0.tgz" + integrity sha512-FjuUz1Kdy4Zly2q/c58tpdqHd6z7iOdU/caYzoc8jwgAHBDBbIJNQLCU9hXJnPV2M8pWxQDyIZsoVwtmvErPzw== + dependencies: + "@aws-sdk/types" "3.577.0" + "@smithy/types" "^3.0.0" + "@smithy/util-endpoints" "^2.0.0" + tslib "^2.6.2" + +"@aws-sdk/util-endpoints@3.598.0": + version "3.598.0" + resolved "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.598.0.tgz" + integrity sha512-Qo9UoiVVZxcOEdiOMZg3xb1mzkTxrhd4qSlg5QQrfWPJVx/QOg+Iy0NtGxPtHtVZNHZxohYwDwV/tfsnDSE2gQ== + dependencies: + "@aws-sdk/types" "3.598.0" + "@smithy/types" "^3.1.0" + "@smithy/util-endpoints" "^2.0.2" + tslib "^2.6.2" + +"@aws-sdk/util-locate-window@^3.0.0": + version "3.568.0" + resolved "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-3.568.0.tgz" + integrity sha512-3nh4TINkXYr+H41QaPelCceEB2FXP3fxp93YZXB/kqJvX0U9j0N0Uk45gvsjmEPzG8XxkPEeLIfT2I1M7A6Lig== + dependencies: + tslib "^2.6.2" + +"@aws-sdk/util-user-agent-browser@3.577.0": + version "3.577.0" + resolved "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.577.0.tgz" + integrity sha512-zEAzHgR6HWpZOH7xFgeJLc6/CzMcx4nxeQolZxVZoB5pPaJd3CjyRhZN0xXeZB0XIRCWmb4yJBgyiugXLNMkLA== + dependencies: + "@aws-sdk/types" "3.577.0" + "@smithy/types" "^3.0.0" + bowser "^2.11.0" + tslib "^2.6.2" + +"@aws-sdk/util-user-agent-browser@3.598.0": + version "3.598.0" + resolved "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.598.0.tgz" + integrity sha512-36Sxo6F+ykElaL1mWzWjlg+1epMpSe8obwhCN1yGE7Js9ywy5U6k6l+A3q3YM9YRbm740sNxncbwLklMvuhTKw== + dependencies: + "@aws-sdk/types" "3.598.0" + "@smithy/types" "^3.1.0" + bowser "^2.11.0" + tslib "^2.6.2" + +"@aws-sdk/util-user-agent-node@3.577.0": + version "3.577.0" + resolved "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.577.0.tgz" + integrity sha512-XqvtFjbSMtycZTWVwDe8DRWovuoMbA54nhUoZwVU6rW9OSD6NZWGR512BUGHFaWzW0Wg8++Dj10FrKTG2XtqfA== + dependencies: + "@aws-sdk/types" "3.577.0" + "@smithy/node-config-provider" "^3.0.0" + "@smithy/types" "^3.0.0" + tslib "^2.6.2" + +"@aws-sdk/util-user-agent-node@3.598.0": + version "3.598.0" + resolved "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.598.0.tgz" + integrity sha512-oyWGcOlfTdzkC6SVplyr0AGh54IMrDxbhg5RxJ5P+V4BKfcDoDcZV9xenUk9NsOi9MuUjxMumb9UJGkDhM1m0A== + dependencies: + "@aws-sdk/types" "3.598.0" + "@smithy/node-config-provider" "^3.1.1" + "@smithy/types" "^3.1.0" + tslib "^2.6.2" + +"@aws-sdk/util-utf8-browser@^3.0.0": + version "3.259.0" + resolved "https://registry.npmjs.org/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.259.0.tgz" + integrity sha512-UvFa/vR+e19XookZF8RzFZBrw2EUkQWxiBW0yYQAhvk3C+QVGl0H3ouca8LDBlBfQKXwmW3huo/59H8rwb1wJw== + dependencies: + tslib "^2.3.1" + +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.24.2", "@babel/code-frame@^7.24.7": + version "7.24.7" + resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz" + integrity sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA== + dependencies: + "@babel/highlight" "^7.24.7" + picocolors "^1.0.0" -"@babel/compat-data@^7.23.5": - version "7.23.5" - resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz" - integrity sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw== +"@babel/compat-data@^7.22.6", "@babel/compat-data@^7.24.7": + version "7.24.7" + resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.7.tgz" + integrity sha512-qJzAIcv03PyaWqxRgO4mSU3lihncDT296vnyuE2O8uA4w3UHWI4S3hgeZd1L8W1Bft40w9JxJ2b412iDUFFRhw== -"@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.23.9": - version "7.24.0" - resolved "https://registry.npmjs.org/@babel/core/-/core-7.24.0.tgz" - integrity sha512-fQfkg0Gjkza3nf0c7/w6Xf34BW4YvzNfACRLmmb7XRLa6XHdR+K9AlJlxneFfWYf6uhOzuzZVTjF/8KfndZANw== +"@babel/core@^7.0.0", "@babel/core@^7.0.0-0", "@babel/core@^7.0.0-0 || ^8.0.0-0 <8.0.0", "@babel/core@^7.11.6", "@babel/core@^7.12.0", "@babel/core@^7.12.3", "@babel/core@^7.13.0", "@babel/core@^7.23.9", "@babel/core@^7.4.0 || ^8.0.0-0 <8.0.0", "@babel/core@^7.8.0", "@babel/core@>=7.0.0-beta.0 <8": + version "7.24.5" + resolved "https://registry.npmjs.org/@babel/core/-/core-7.24.5.tgz" + integrity sha512-tVQRucExLQ02Boi4vdPp49svNGcfL2GhdTCT9aldhXgCJVAI21EtRfBettiuLUwce/7r6bFdgs6JFkcdTiFttA== dependencies: "@ampproject/remapping" "^2.2.0" - "@babel/code-frame" "^7.23.5" - "@babel/generator" "^7.23.6" + "@babel/code-frame" "^7.24.2" + "@babel/generator" "^7.24.5" "@babel/helper-compilation-targets" "^7.23.6" - "@babel/helper-module-transforms" "^7.23.3" - "@babel/helpers" "^7.24.0" - "@babel/parser" "^7.24.0" + "@babel/helper-module-transforms" "^7.24.5" + "@babel/helpers" "^7.24.5" + "@babel/parser" "^7.24.5" "@babel/template" "^7.24.0" - "@babel/traverse" "^7.24.0" - "@babel/types" "^7.24.0" + "@babel/traverse" "^7.24.5" + "@babel/types" "^7.24.5" convert-source-map "^2.0.0" debug "^4.1.0" gensync "^1.0.0-beta.2" json5 "^2.2.3" semver "^6.3.1" -"@babel/generator@^7.23.6", "@babel/generator@^7.7.2": - version "7.23.6" - resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz" - integrity sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw== +"@babel/generator@^7.24.5", "@babel/generator@^7.24.7", "@babel/generator@^7.7.2": + version "7.24.7" + resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.24.7.tgz" + integrity sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA== dependencies: - "@babel/types" "^7.23.6" - "@jridgewell/gen-mapping" "^0.3.2" - "@jridgewell/trace-mapping" "^0.3.17" + "@babel/types" "^7.24.7" + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.25" jsesc "^2.5.1" -"@babel/helper-compilation-targets@^7.23.6": - version "7.23.6" - resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz" - integrity sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ== +"@babel/helper-annotate-as-pure@^7.24.7": + version "7.24.7" + resolved "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.7.tgz" + integrity sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg== + dependencies: + "@babel/types" "^7.24.7" + +"@babel/helper-builder-binary-assignment-operator-visitor@^7.24.7": + version "7.24.7" + resolved "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.24.7.tgz" + integrity sha512-xZeCVVdwb4MsDBkkyZ64tReWYrLRHlMN72vP7Bdm3OUOuyFZExhsHUUnuWnm2/XOlAJzR0LfPpB56WXZn0X/lA== dependencies: - "@babel/compat-data" "^7.23.5" - "@babel/helper-validator-option" "^7.23.5" + "@babel/traverse" "^7.24.7" + "@babel/types" "^7.24.7" + +"@babel/helper-compilation-targets@^7.22.6", "@babel/helper-compilation-targets@^7.23.6", "@babel/helper-compilation-targets@^7.24.7": + version "7.24.7" + resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.7.tgz" + integrity sha512-ctSdRHBi20qWOfy27RUb4Fhp07KSJ3sXcuSvTrXrc4aG8NSYDo1ici3Vhg9bg69y5bj0Mr1lh0aeEgTvc12rMg== + dependencies: + "@babel/compat-data" "^7.24.7" + "@babel/helper-validator-option" "^7.24.7" browserslist "^4.22.2" lru-cache "^5.1.1" semver "^6.3.1" -"@babel/helper-environment-visitor@^7.22.20": - version "7.22.20" - resolved "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz" - integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA== +"@babel/helper-create-class-features-plugin@^7.24.7": + version "7.24.7" + resolved "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.7.tgz" + integrity sha512-kTkaDl7c9vO80zeX1rJxnuRpEsD5tA81yh11X1gQo+PhSti3JS+7qeZo9U4RHobKRiFPKaGK3svUAeb8D0Q7eg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.24.7" + "@babel/helper-environment-visitor" "^7.24.7" + "@babel/helper-function-name" "^7.24.7" + "@babel/helper-member-expression-to-functions" "^7.24.7" + "@babel/helper-optimise-call-expression" "^7.24.7" + "@babel/helper-replace-supers" "^7.24.7" + "@babel/helper-skip-transparent-expression-wrappers" "^7.24.7" + "@babel/helper-split-export-declaration" "^7.24.7" + semver "^6.3.1" -"@babel/helper-function-name@^7.23.0": - version "7.23.0" - resolved "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz" - integrity sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw== +"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.24.7": + version "7.24.7" + resolved "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.24.7.tgz" + integrity sha512-03TCmXy2FtXJEZfbXDTSqq1fRJArk7lX9DOFC/47VthYcxyIOx+eXQmdo6DOQvrbpIix+KfXwvuXdFDZHxt+rA== dependencies: - "@babel/template" "^7.22.15" - "@babel/types" "^7.23.0" + "@babel/helper-annotate-as-pure" "^7.24.7" + regexpu-core "^5.3.1" + semver "^6.3.1" -"@babel/helper-hoist-variables@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz" - integrity sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw== +"@babel/helper-define-polyfill-provider@^0.6.1", "@babel/helper-define-polyfill-provider@^0.6.2": + version "0.6.2" + resolved "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.2.tgz" + integrity sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ== dependencies: - "@babel/types" "^7.22.5" + "@babel/helper-compilation-targets" "^7.22.6" + "@babel/helper-plugin-utils" "^7.22.5" + debug "^4.1.1" + lodash.debounce "^4.0.8" + resolve "^1.14.2" -"@babel/helper-module-imports@^7.22.15": - version "7.22.15" - resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz" - integrity sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w== - dependencies: - "@babel/types" "^7.22.15" +"@babel/helper-environment-visitor@^7.24.7": + version "7.24.7" + resolved "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.7.tgz" + integrity sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ== + dependencies: + "@babel/types" "^7.24.7" -"@babel/helper-module-transforms@^7.23.3": - version "7.23.3" - resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz" - integrity sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ== +"@babel/helper-function-name@^7.24.7": + version "7.24.7" + resolved "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.24.7.tgz" + integrity sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA== dependencies: - "@babel/helper-environment-visitor" "^7.22.20" - "@babel/helper-module-imports" "^7.22.15" - "@babel/helper-simple-access" "^7.22.5" - "@babel/helper-split-export-declaration" "^7.22.6" - "@babel/helper-validator-identifier" "^7.22.20" - -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.8.0": - version "7.24.0" - resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz" - integrity sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w== - -"@babel/helper-simple-access@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz" - integrity sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w== + "@babel/template" "^7.24.7" + "@babel/types" "^7.24.7" + +"@babel/helper-hoist-variables@^7.24.7": + version "7.24.7" + resolved "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.7.tgz" + integrity sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ== + dependencies: + "@babel/types" "^7.24.7" + +"@babel/helper-member-expression-to-functions@^7.24.7": + version "7.24.7" + resolved "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.7.tgz" + integrity sha512-LGeMaf5JN4hAT471eJdBs/GK1DoYIJ5GCtZN/EsL6KUiiDZOvO/eKE11AMZJa2zP4zk4qe9V2O/hxAmkRc8p6w== + dependencies: + "@babel/traverse" "^7.24.7" + "@babel/types" "^7.24.7" + +"@babel/helper-module-imports@^7.24.7": + version "7.24.7" + resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz" + integrity sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA== + dependencies: + "@babel/traverse" "^7.24.7" + "@babel/types" "^7.24.7" + +"@babel/helper-module-transforms@^7.24.5", "@babel/helper-module-transforms@^7.24.7": + version "7.24.7" + resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.7.tgz" + integrity sha512-1fuJEwIrp+97rM4RWdO+qrRsZlAeL1lQJoPqtCYWv0NL115XM93hIH4CSRln2w52SqvmY5hqdtauB6QFCDiZNQ== + dependencies: + "@babel/helper-environment-visitor" "^7.24.7" + "@babel/helper-module-imports" "^7.24.7" + "@babel/helper-simple-access" "^7.24.7" + "@babel/helper-split-export-declaration" "^7.24.7" + "@babel/helper-validator-identifier" "^7.24.7" + +"@babel/helper-optimise-call-expression@^7.24.7": + version "7.24.7" + resolved "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.24.7.tgz" + integrity sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A== + dependencies: + "@babel/types" "^7.24.7" + +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.24.0", "@babel/helper-plugin-utils@^7.24.7", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": + version "7.24.7" + resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.7.tgz" + integrity sha512-Rq76wjt7yz9AAc1KnlRKNAi/dMSVWgDRx43FHoJEbcYU6xOWaE2dVPwcdTukJrjxS65GITyfbvEYHvkirZ6uEg== + +"@babel/helper-remap-async-to-generator@^7.24.7": + version "7.24.7" + resolved "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.24.7.tgz" + integrity sha512-9pKLcTlZ92hNZMQfGCHImUpDOlAgkkpqalWEeftW5FBya75k8Li2ilerxkM/uBEj01iBZXcCIB/bwvDYgWyibA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.24.7" + "@babel/helper-environment-visitor" "^7.24.7" + "@babel/helper-wrap-function" "^7.24.7" + +"@babel/helper-replace-supers@^7.24.7": + version "7.24.7" + resolved "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.24.7.tgz" + integrity sha512-qTAxxBM81VEyoAY0TtLrx1oAEJc09ZK67Q9ljQToqCnA+55eNwCORaxlKyu+rNfX86o8OXRUSNUnrtsAZXM9sg== + dependencies: + "@babel/helper-environment-visitor" "^7.24.7" + "@babel/helper-member-expression-to-functions" "^7.24.7" + "@babel/helper-optimise-call-expression" "^7.24.7" + +"@babel/helper-simple-access@^7.24.7": + version "7.24.7" + resolved "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz" + integrity sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg== + dependencies: + "@babel/traverse" "^7.24.7" + "@babel/types" "^7.24.7" + +"@babel/helper-skip-transparent-expression-wrappers@^7.24.7": + version "7.24.7" + resolved "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.24.7.tgz" + integrity sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ== + dependencies: + "@babel/traverse" "^7.24.7" + "@babel/types" "^7.24.7" + +"@babel/helper-split-export-declaration@^7.24.7": + version "7.24.7" + resolved "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.7.tgz" + integrity sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA== + dependencies: + "@babel/types" "^7.24.7" + +"@babel/helper-string-parser@^7.24.7": + version "7.24.7" + resolved "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.7.tgz" + integrity sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg== + +"@babel/helper-validator-identifier@^7.24.7": + version "7.24.7" + resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz" + integrity sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w== + +"@babel/helper-validator-option@^7.24.7": + version "7.24.7" + resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.7.tgz" + integrity sha512-yy1/KvjhV/ZCL+SM7hBrvnZJ3ZuT9OuZgIJAGpPEToANvc3iM6iDvBnRjtElWibHU6n8/LPR/EjX9EtIEYO3pw== + +"@babel/helper-wrap-function@^7.24.7": + version "7.24.7" + resolved "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.24.7.tgz" + integrity sha512-N9JIYk3TD+1vq/wn77YnJOqMtfWhNewNE+DJV4puD2X7Ew9J4JvrzrFDfTfyv5EgEXVy9/Wt8QiOErzEmv5Ifw== + dependencies: + "@babel/helper-function-name" "^7.24.7" + "@babel/template" "^7.24.7" + "@babel/traverse" "^7.24.7" + "@babel/types" "^7.24.7" + +"@babel/helpers@^7.24.5": + version "7.24.5" + resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.5.tgz" + integrity sha512-CiQmBMMpMQHwM5m01YnrM6imUG1ebgYJ+fAIW4FZe6m4qHTPaRHti+R8cggAwkdz4oXhtO4/K9JWlh+8hIfR2Q== dependencies: - "@babel/types" "^7.22.5" + "@babel/template" "^7.24.0" + "@babel/traverse" "^7.24.5" + "@babel/types" "^7.24.5" -"@babel/helper-split-export-declaration@^7.22.6": - version "7.22.6" - resolved "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz" - integrity sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g== +"@babel/highlight@^7.24.7": + version "7.24.7" + resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz" + integrity sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw== dependencies: - "@babel/types" "^7.22.5" + "@babel/helper-validator-identifier" "^7.24.7" + chalk "^2.4.2" + js-tokens "^4.0.0" + picocolors "^1.0.0" -"@babel/helper-string-parser@^7.23.4": - version "7.23.4" - resolved "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz" - integrity sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ== +"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.23.9", "@babel/parser@^7.24.5", "@babel/parser@^7.24.7": + version "7.24.7" + resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.24.7.tgz" + integrity sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw== -"@babel/helper-validator-identifier@^7.22.20": - version "7.22.20" - resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz" - integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A== +"@babel/plugin-bugfix-firefox-class-in-computed-class-key@^7.24.7": + version "7.24.7" + resolved "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.24.7.tgz" + integrity sha512-TiT1ss81W80eQsN+722OaeQMY/G4yTb4G9JrqeiDADs3N8lbPMGldWi9x8tyqCW5NLx1Jh2AvkE6r6QvEltMMQ== + dependencies: + "@babel/helper-environment-visitor" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" -"@babel/helper-validator-option@^7.23.5": - version "7.23.5" - resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz" - integrity sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw== +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.24.7": + version "7.24.7" + resolved "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.24.7.tgz" + integrity sha512-unaQgZ/iRu/By6tsjMZzpeBZjChYfLYry6HrEXPoz3KmfF0sVBQ1l8zKMQ4xRGLWVsjuvB8nQfjNP/DcfEOCsg== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" -"@babel/helpers@^7.24.0": - version "7.24.0" - resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.0.tgz" - integrity sha512-ulDZdc0Aj5uLc5nETsa7EPx2L7rM0YJM8r7ck7U73AXi7qOV44IHHRAYZHY6iU1rr3C5N4NtTmMRUJP6kwCWeA== +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.24.7": + version "7.24.7" + resolved "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.7.tgz" + integrity sha512-+izXIbke1T33mY4MSNnrqhPXDz01WYhEf3yF5NbnUtkiNnm+XBZJl3kNfoK6NKmYlz/D07+l2GWVK/QfDkNCuQ== dependencies: - "@babel/template" "^7.24.0" - "@babel/traverse" "^7.24.0" - "@babel/types" "^7.24.0" + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-skip-transparent-expression-wrappers" "^7.24.7" + "@babel/plugin-transform-optional-chaining" "^7.24.7" -"@babel/highlight@^7.23.4": - version "7.23.4" - resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz" - integrity sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A== +"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.24.7": + version "7.24.7" + resolved "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.24.7.tgz" + integrity sha512-utA4HuR6F4Vvcr+o4DnjL8fCOlgRFGbeeBEGNg3ZTrLFw6VWG5XmUrvcQ0FjIYMU2ST4XcR2Wsp7t9qOAPnxMg== dependencies: - "@babel/helper-validator-identifier" "^7.22.20" - chalk "^2.4.2" - js-tokens "^4.0.0" + "@babel/helper-environment-visitor" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" -"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.23.9", "@babel/parser@^7.24.0": - version "7.24.0" - resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.24.0.tgz" - integrity sha512-QuP/FxEAzMSjXygs8v4N9dvdXzEHN4W1oF3PxuWAtPo08UdM17u89RDMgjLn/mlc56iM0HlLmVkO/wgR+rDgHg== +"@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2": + version "7.21.0-placeholder-for-preset-env.2" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz" + integrity sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w== "@babel/plugin-syntax-async-generators@^7.8.4": version "7.8.4" @@ -174,14 +1266,49 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-class-properties@^7.8.3": +"@babel/plugin-syntax-class-properties@^7.12.13", "@babel/plugin-syntax-class-properties@^7.8.3": version "7.12.13" resolved "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz" integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== dependencies: "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-syntax-import-meta@^7.8.3": +"@babel/plugin-syntax-class-static-block@^7.14.5": + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz" + integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-dynamic-import@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz" + integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-export-namespace-from@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz" + integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-syntax-import-assertions@^7.24.7": + version "7.24.7" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.24.7.tgz" + integrity sha512-Ec3NRUMoi8gskrkBe3fNmEQfxDvY8bgfQpz6jlk/41kX9eUjvpyqWU7PBP/pLAvMaSQjbMNKJmvX57jP+M6bPg== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-syntax-import-attributes@^7.24.7": + version "7.24.7" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.7.tgz" + integrity sha512-hbX+lKKeUMGihnK8nvKqmXBInriT3GVjzXKFriV3YC6APGxMbP8RZNFwy91+hocLXq90Mta+HshoB31802bb8A== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-syntax-import-meta@^7.10.4", "@babel/plugin-syntax-import-meta@^7.8.3": version "7.10.4" resolved "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz" integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== @@ -196,13 +1323,13 @@ "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-jsx@^7.7.2": - version "7.23.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz" - integrity sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg== + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.1.tgz" + integrity sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.0" -"@babel/plugin-syntax-logical-assignment-operators@^7.8.3": +"@babel/plugin-syntax-logical-assignment-operators@^7.10.4", "@babel/plugin-syntax-logical-assignment-operators@^7.8.3": version "7.10.4" resolved "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz" integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== @@ -216,7 +1343,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-numeric-separator@^7.8.3": +"@babel/plugin-syntax-numeric-separator@^7.10.4", "@babel/plugin-syntax-numeric-separator@^7.8.3": version "7.10.4" resolved "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz" integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== @@ -244,7 +1371,14 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-top-level-await@^7.8.3": +"@babel/plugin-syntax-private-property-in-object@^7.14.5": + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz" + integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-top-level-await@^7.14.5", "@babel/plugin-syntax-top-level-await@^7.8.3": version "7.14.5" resolved "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz" integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== @@ -252,44 +1386,547 @@ "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-typescript@^7.7.2": - version "7.23.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz" - integrity sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ== + version "7.24.1" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.1.tgz" + integrity sha512-Yhnmvy5HZEnHUty6i++gcfH1/l68AHnItFHnaCv6hn9dNh0hQvvQJsxpi4BMBFN5DLeHBuucT/0DgzXif/OyRw== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.24.0" + +"@babel/plugin-syntax-unicode-sets-regex@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz" + integrity sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-arrow-functions@^7.24.7": + version "7.24.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.7.tgz" + integrity sha512-Dt9LQs6iEY++gXUwY03DNFat5C2NbO48jj+j/bSAz6b3HgPs39qcPiYt77fDObIcFwj3/C2ICX9YMwGflUoSHQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-async-generator-functions@^7.24.7": + version "7.24.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.24.7.tgz" + integrity sha512-o+iF77e3u7ZS4AoAuJvapz9Fm001PuD2V3Lp6OSE4FYQke+cSewYtnek+THqGRWyQloRCyvWL1OkyfNEl9vr/g== + dependencies: + "@babel/helper-environment-visitor" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-remap-async-to-generator" "^7.24.7" + "@babel/plugin-syntax-async-generators" "^7.8.4" + +"@babel/plugin-transform-async-to-generator@^7.24.7": + version "7.24.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.7.tgz" + integrity sha512-SQY01PcJfmQ+4Ash7NE+rpbLFbmqA2GPIgqzxfFTL4t1FKRq4zTms/7htKpoCUI9OcFYgzqfmCdH53s6/jn5fA== + dependencies: + "@babel/helper-module-imports" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-remap-async-to-generator" "^7.24.7" + +"@babel/plugin-transform-block-scoped-functions@^7.24.7": + version "7.24.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.7.tgz" + integrity sha512-yO7RAz6EsVQDaBH18IDJcMB1HnrUn2FJ/Jslc/WtPPWcjhpUJXU/rjbwmluzp7v/ZzWcEhTMXELnnsz8djWDwQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-block-scoping@^7.24.7": + version "7.24.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.24.7.tgz" + integrity sha512-Nd5CvgMbWc+oWzBsuaMcbwjJWAcp5qzrbg69SZdHSP7AMY0AbWFqFO0WTFCA1jxhMCwodRwvRec8k0QUbZk7RQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-class-properties@^7.24.7": + version "7.24.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.24.7.tgz" + integrity sha512-vKbfawVYayKcSeSR5YYzzyXvsDFWU2mD8U5TFeXtbCPLFUqe7GyCgvO6XDHzje862ODrOwy6WCPmKeWHbCFJ4w== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-class-static-block@^7.24.7": + version "7.24.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.7.tgz" + integrity sha512-HMXK3WbBPpZQufbMG4B46A90PkuuhN9vBCb5T8+VAHqvAqvcLi+2cKoukcpmUYkszLhScU3l1iudhrks3DggRQ== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + +"@babel/plugin-transform-classes@^7.24.7": + version "7.24.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.24.7.tgz" + integrity sha512-CFbbBigp8ln4FU6Bpy6g7sE8B/WmCmzvivzUC6xDAdWVsjYTXijpuuGJmYkAaoWAzcItGKT3IOAbxRItZ5HTjw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.24.7" + "@babel/helper-compilation-targets" "^7.24.7" + "@babel/helper-environment-visitor" "^7.24.7" + "@babel/helper-function-name" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-replace-supers" "^7.24.7" + "@babel/helper-split-export-declaration" "^7.24.7" + globals "^11.1.0" + +"@babel/plugin-transform-computed-properties@^7.24.7": + version "7.24.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.7.tgz" + integrity sha512-25cS7v+707Gu6Ds2oY6tCkUwsJ9YIDbggd9+cu9jzzDgiNq7hR/8dkzxWfKWnTic26vsI3EsCXNd4iEB6e8esQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/template" "^7.24.7" + +"@babel/plugin-transform-destructuring@^7.24.7": + version "7.24.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.7.tgz" + integrity sha512-19eJO/8kdCQ9zISOf+SEUJM/bAUIsvY3YDnXZTupUCQ8LgrWnsG/gFB9dvXqdXnRXMAM8fvt7b0CBKQHNGy1mw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-dotall-regex@^7.24.7": + version "7.24.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.7.tgz" + integrity sha512-ZOA3W+1RRTSWvyqcMJDLqbchh7U4NRGqwRfFSVbOLS/ePIP4vHB5e8T8eXcuqyN1QkgKyj5wuW0lcS85v4CrSw== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-duplicate-keys@^7.24.7": + version "7.24.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.7.tgz" + integrity sha512-JdYfXyCRihAe46jUIliuL2/s0x0wObgwwiGxw/UbgJBr20gQBThrokO4nYKgWkD7uBaqM7+9x5TU7NkExZJyzw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-dynamic-import@^7.24.7": + version "7.24.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.7.tgz" + integrity sha512-sc3X26PhZQDb3JhORmakcbvkeInvxz+A8oda99lj7J60QRuPZvNAk9wQlTBS1ZynelDrDmTU4pw1tyc5d5ZMUg== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + +"@babel/plugin-transform-exponentiation-operator@^7.24.7": + version "7.24.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.7.tgz" + integrity sha512-Rqe/vSc9OYgDajNIK35u7ot+KeCoetqQYFXM4Epf7M7ez3lWlOjrDjrwMei6caCVhfdw+mIKD4cgdGNy5JQotQ== + dependencies: + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-export-namespace-from@^7.24.7": + version "7.24.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.24.7.tgz" + integrity sha512-v0K9uNYsPL3oXZ/7F9NNIbAj2jv1whUEtyA6aujhekLs56R++JDQuzRcP2/z4WX5Vg/c5lE9uWZA0/iUoFhLTA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + +"@babel/plugin-transform-for-of@^7.24.7": + version "7.24.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.7.tgz" + integrity sha512-wo9ogrDG1ITTTBsy46oGiN1dS9A7MROBTcYsfS8DtsImMkHk9JXJ3EWQM6X2SUw4x80uGPlwj0o00Uoc6nEE3g== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-skip-transparent-expression-wrappers" "^7.24.7" + +"@babel/plugin-transform-function-name@^7.24.7": + version "7.24.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.24.7.tgz" + integrity sha512-U9FcnA821YoILngSmYkW6FjyQe2TyZD5pHt4EVIhmcTkrJw/3KqcrRSxuOo5tFZJi7TE19iDyI1u+weTI7bn2w== + dependencies: + "@babel/helper-compilation-targets" "^7.24.7" + "@babel/helper-function-name" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-json-strings@^7.24.7": + version "7.24.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.24.7.tgz" + integrity sha512-2yFnBGDvRuxAaE/f0vfBKvtnvvqU8tGpMHqMNpTN2oWMKIR3NqFkjaAgGwawhqK/pIN2T3XdjGPdaG0vDhOBGw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/plugin-syntax-json-strings" "^7.8.3" + +"@babel/plugin-transform-literals@^7.24.7": + version "7.24.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.24.7.tgz" + integrity sha512-vcwCbb4HDH+hWi8Pqenwnjy+UiklO4Kt1vfspcQYFhJdpthSnW8XvWGyDZWKNVrVbVViI/S7K9PDJZiUmP2fYQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-logical-assignment-operators@^7.24.7": + version "7.24.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.7.tgz" + integrity sha512-4D2tpwlQ1odXmTEIFWy9ELJcZHqrStlzK/dAOWYyxX3zT0iXQB6banjgeOJQXzEc4S0E0a5A+hahxPaEFYftsw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + +"@babel/plugin-transform-member-expression-literals@^7.24.7": + version "7.24.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.7.tgz" + integrity sha512-T/hRC1uqrzXMKLQ6UCwMT85S3EvqaBXDGf0FaMf4446Qx9vKwlghvee0+uuZcDUCZU5RuNi4781UQ7R308zzBw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-modules-amd@^7.24.7": + version "7.24.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.7.tgz" + integrity sha512-9+pB1qxV3vs/8Hdmz/CulFB8w2tuu6EB94JZFsjdqxQokwGa9Unap7Bo2gGBGIvPmDIVvQrom7r5m/TCDMURhg== + dependencies: + "@babel/helper-module-transforms" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" -"@babel/template@^7.22.15", "@babel/template@^7.24.0", "@babel/template@^7.3.3": - version "7.24.0" - resolved "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz" - integrity sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA== - dependencies: - "@babel/code-frame" "^7.23.5" - "@babel/parser" "^7.24.0" - "@babel/types" "^7.24.0" - -"@babel/traverse@^7.24.0": - version "7.24.0" - resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.0.tgz" - integrity sha512-HfuJlI8qq3dEDmNU5ChzzpZRWq+oxCZQyMzIMEqLho+AQnhMnKQUzH6ydo3RBl/YjPCuk68Y6s0Gx0AeyULiWw== - dependencies: - "@babel/code-frame" "^7.23.5" - "@babel/generator" "^7.23.6" - "@babel/helper-environment-visitor" "^7.22.20" - "@babel/helper-function-name" "^7.23.0" - "@babel/helper-hoist-variables" "^7.22.5" - "@babel/helper-split-export-declaration" "^7.22.6" - "@babel/parser" "^7.24.0" - "@babel/types" "^7.24.0" +"@babel/plugin-transform-modules-commonjs@^7.24.7": + version "7.24.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.7.tgz" + integrity sha512-iFI8GDxtevHJ/Z22J5xQpVqFLlMNstcLXh994xifFwxxGslr2ZXXLWgtBeLctOD63UFDArdvN6Tg8RFw+aEmjQ== + dependencies: + "@babel/helper-module-transforms" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-simple-access" "^7.24.7" + +"@babel/plugin-transform-modules-systemjs@^7.24.7": + version "7.24.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.24.7.tgz" + integrity sha512-GYQE0tW7YoaN13qFh3O1NCY4MPkUiAH3fiF7UcV/I3ajmDKEdG3l+UOcbAm4zUE3gnvUU+Eni7XrVKo9eO9auw== + dependencies: + "@babel/helper-hoist-variables" "^7.24.7" + "@babel/helper-module-transforms" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-validator-identifier" "^7.24.7" + +"@babel/plugin-transform-modules-umd@^7.24.7": + version "7.24.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.7.tgz" + integrity sha512-3aytQvqJ/h9z4g8AsKPLvD4Zqi2qT+L3j7XoFFu1XBlZWEl2/1kWnhmAbxpLgPrHSY0M6UA02jyTiwUVtiKR6A== + dependencies: + "@babel/helper-module-transforms" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-named-capturing-groups-regex@^7.24.7": + version "7.24.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.24.7.tgz" + integrity sha512-/jr7h/EWeJtk1U/uz2jlsCioHkZk1JJZVcc8oQsJ1dUlaJD83f4/6Zeh2aHt9BIFokHIsSeDfhUmju0+1GPd6g== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-new-target@^7.24.7": + version "7.24.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.7.tgz" + integrity sha512-RNKwfRIXg4Ls/8mMTza5oPF5RkOW8Wy/WgMAp1/F1yZ8mMbtwXW+HDoJiOsagWrAhI5f57Vncrmr9XeT4CVapA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-nullish-coalescing-operator@^7.24.7": + version "7.24.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.7.tgz" + integrity sha512-Ts7xQVk1OEocqzm8rHMXHlxvsfZ0cEF2yomUqpKENHWMF4zKk175Y4q8H5knJes6PgYad50uuRmt3UJuhBw8pQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + +"@babel/plugin-transform-numeric-separator@^7.24.7": + version "7.24.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.7.tgz" + integrity sha512-e6q1TiVUzvH9KRvicuxdBTUj4AdKSRwzIyFFnfnezpCfP2/7Qmbb8qbU2j7GODbl4JMkblitCQjKYUaX/qkkwA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + +"@babel/plugin-transform-object-rest-spread@^7.24.7": + version "7.24.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.7.tgz" + integrity sha512-4QrHAr0aXQCEFni2q4DqKLD31n2DL+RxcwnNjDFkSG0eNQ/xCavnRkfCUjsyqGC2OviNJvZOF/mQqZBw7i2C5Q== + dependencies: + "@babel/helper-compilation-targets" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-transform-parameters" "^7.24.7" + +"@babel/plugin-transform-object-super@^7.24.7": + version "7.24.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.7.tgz" + integrity sha512-A/vVLwN6lBrMFmMDmPPz0jnE6ZGx7Jq7d6sT/Ev4H65RER6pZ+kczlf1DthF5N0qaPHBsI7UXiE8Zy66nmAovg== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-replace-supers" "^7.24.7" + +"@babel/plugin-transform-optional-catch-binding@^7.24.7": + version "7.24.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.7.tgz" + integrity sha512-uLEndKqP5BfBbC/5jTwPxLh9kqPWWgzN/f8w6UwAIirAEqiIVJWWY312X72Eub09g5KF9+Zn7+hT7sDxmhRuKA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + +"@babel/plugin-transform-optional-chaining@^7.24.7": + version "7.24.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.7.tgz" + integrity sha512-tK+0N9yd4j+x/4hxF3F0e0fu/VdcxU18y5SevtyM/PCFlQvXbR0Zmlo2eBrKtVipGNFzpq56o8WsIIKcJFUCRQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-skip-transparent-expression-wrappers" "^7.24.7" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + +"@babel/plugin-transform-parameters@^7.24.7": + version "7.24.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.7.tgz" + integrity sha512-yGWW5Rr+sQOhK0Ot8hjDJuxU3XLRQGflvT4lhlSY0DFvdb3TwKaY26CJzHtYllU0vT9j58hc37ndFPsqT1SrzA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-private-methods@^7.24.7": + version "7.24.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.24.7.tgz" + integrity sha512-COTCOkG2hn4JKGEKBADkA8WNb35TGkkRbI5iT845dB+NyqgO8Hn+ajPbSnIQznneJTa3d30scb6iz/DhH8GsJQ== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-private-property-in-object@^7.24.7": + version "7.24.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.7.tgz" + integrity sha512-9z76mxwnwFxMyxZWEgdgECQglF2Q7cFLm0kMf8pGwt+GSJsY0cONKj/UuO4bOH0w/uAel3ekS4ra5CEAyJRmDA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.24.7" + "@babel/helper-create-class-features-plugin" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + +"@babel/plugin-transform-property-literals@^7.24.7": + version "7.24.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.7.tgz" + integrity sha512-EMi4MLQSHfd2nrCqQEWxFdha2gBCqU4ZcCng4WBGZ5CJL4bBRW0ptdqqDdeirGZcpALazVVNJqRmsO8/+oNCBA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-regenerator@^7.24.7": + version "7.24.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.7.tgz" + integrity sha512-lq3fvXPdimDrlg6LWBoqj+r/DEWgONuwjuOuQCSYgRroXDH/IdM1C0IZf59fL5cHLpjEH/O6opIRBbqv7ELnuA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + regenerator-transform "^0.15.2" + +"@babel/plugin-transform-reserved-words@^7.24.7": + version "7.24.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.7.tgz" + integrity sha512-0DUq0pHcPKbjFZCfTss/pGkYMfy3vFWydkUBd9r0GHpIyfs2eCDENvqadMycRS9wZCXR41wucAfJHJmwA0UmoQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-shorthand-properties@^7.24.7": + version "7.24.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.7.tgz" + integrity sha512-KsDsevZMDsigzbA09+vacnLpmPH4aWjcZjXdyFKGzpplxhbeB4wYtury3vglQkg6KM/xEPKt73eCjPPf1PgXBA== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-spread@^7.24.7": + version "7.24.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.7.tgz" + integrity sha512-x96oO0I09dgMDxJaANcRyD4ellXFLLiWhuwDxKZX5g2rWP1bTPkBSwCYv96VDXVT1bD9aPj8tppr5ITIh8hBng== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-skip-transparent-expression-wrappers" "^7.24.7" + +"@babel/plugin-transform-sticky-regex@^7.24.7": + version "7.24.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.7.tgz" + integrity sha512-kHPSIJc9v24zEml5geKg9Mjx5ULpfncj0wRpYtxbvKyTtHCYDkVE3aHQ03FrpEo4gEe2vrJJS1Y9CJTaThA52g== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-template-literals@^7.24.7": + version "7.24.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.7.tgz" + integrity sha512-AfDTQmClklHCOLxtGoP7HkeMw56k1/bTQjwsfhL6pppo/M4TOBSq+jjBUBLmV/4oeFg4GWMavIl44ZeCtmmZTw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-typeof-symbol@^7.24.7": + version "7.24.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.7.tgz" + integrity sha512-VtR8hDy7YLB7+Pet9IarXjg/zgCMSF+1mNS/EQEiEaUPoFXCVsHG64SIxcaaI2zJgRiv+YmgaQESUfWAdbjzgg== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-unicode-escapes@^7.24.7": + version "7.24.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.7.tgz" + integrity sha512-U3ap1gm5+4edc2Q/P+9VrBNhGkfnf+8ZqppY71Bo/pzZmXhhLdqgaUl6cuB07O1+AQJtCLfaOmswiNbSQ9ivhw== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-unicode-property-regex@^7.24.7": + version "7.24.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.24.7.tgz" + integrity sha512-uH2O4OV5M9FZYQrwc7NdVmMxQJOCCzFeYudlZSzUAHRFeOujQefa92E74TQDVskNHCzOXoigEuoyzHDhaEaK5w== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-unicode-regex@^7.24.7": + version "7.24.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.7.tgz" + integrity sha512-hlQ96MBZSAXUq7ltkjtu3FJCCSMx/j629ns3hA3pXnBXjanNP0LHi+JpPeA81zaWgVK1VGH95Xuy7u0RyQ8kMg== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/plugin-transform-unicode-sets-regex@^7.24.7": + version "7.24.7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.24.7.tgz" + integrity sha512-2G8aAvF4wy1w/AGZkemprdGMRg5o6zPNhbHVImRz3lss55TYCBd6xStN19rt8XJHq20sqV0JbyWjOWwQRwV/wg== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + +"@babel/preset-env@^7.24.7": + version "7.24.7" + resolved "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.24.7.tgz" + integrity sha512-1YZNsc+y6cTvWlDHidMBsQZrZfEFjRIo/BZCT906PMdzOyXtSLTgqGdrpcuTDCXyd11Am5uQULtDIcCfnTc8fQ== + dependencies: + "@babel/compat-data" "^7.24.7" + "@babel/helper-compilation-targets" "^7.24.7" + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-validator-option" "^7.24.7" + "@babel/plugin-bugfix-firefox-class-in-computed-class-key" "^7.24.7" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.24.7" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.24.7" + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly" "^7.24.7" + "@babel/plugin-proposal-private-property-in-object" "7.21.0-placeholder-for-preset-env.2" + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-syntax-class-properties" "^7.12.13" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + "@babel/plugin-syntax-import-assertions" "^7.24.7" + "@babel/plugin-syntax-import-attributes" "^7.24.7" + "@babel/plugin-syntax-import-meta" "^7.10.4" + "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + "@babel/plugin-syntax-top-level-await" "^7.14.5" + "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6" + "@babel/plugin-transform-arrow-functions" "^7.24.7" + "@babel/plugin-transform-async-generator-functions" "^7.24.7" + "@babel/plugin-transform-async-to-generator" "^7.24.7" + "@babel/plugin-transform-block-scoped-functions" "^7.24.7" + "@babel/plugin-transform-block-scoping" "^7.24.7" + "@babel/plugin-transform-class-properties" "^7.24.7" + "@babel/plugin-transform-class-static-block" "^7.24.7" + "@babel/plugin-transform-classes" "^7.24.7" + "@babel/plugin-transform-computed-properties" "^7.24.7" + "@babel/plugin-transform-destructuring" "^7.24.7" + "@babel/plugin-transform-dotall-regex" "^7.24.7" + "@babel/plugin-transform-duplicate-keys" "^7.24.7" + "@babel/plugin-transform-dynamic-import" "^7.24.7" + "@babel/plugin-transform-exponentiation-operator" "^7.24.7" + "@babel/plugin-transform-export-namespace-from" "^7.24.7" + "@babel/plugin-transform-for-of" "^7.24.7" + "@babel/plugin-transform-function-name" "^7.24.7" + "@babel/plugin-transform-json-strings" "^7.24.7" + "@babel/plugin-transform-literals" "^7.24.7" + "@babel/plugin-transform-logical-assignment-operators" "^7.24.7" + "@babel/plugin-transform-member-expression-literals" "^7.24.7" + "@babel/plugin-transform-modules-amd" "^7.24.7" + "@babel/plugin-transform-modules-commonjs" "^7.24.7" + "@babel/plugin-transform-modules-systemjs" "^7.24.7" + "@babel/plugin-transform-modules-umd" "^7.24.7" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.24.7" + "@babel/plugin-transform-new-target" "^7.24.7" + "@babel/plugin-transform-nullish-coalescing-operator" "^7.24.7" + "@babel/plugin-transform-numeric-separator" "^7.24.7" + "@babel/plugin-transform-object-rest-spread" "^7.24.7" + "@babel/plugin-transform-object-super" "^7.24.7" + "@babel/plugin-transform-optional-catch-binding" "^7.24.7" + "@babel/plugin-transform-optional-chaining" "^7.24.7" + "@babel/plugin-transform-parameters" "^7.24.7" + "@babel/plugin-transform-private-methods" "^7.24.7" + "@babel/plugin-transform-private-property-in-object" "^7.24.7" + "@babel/plugin-transform-property-literals" "^7.24.7" + "@babel/plugin-transform-regenerator" "^7.24.7" + "@babel/plugin-transform-reserved-words" "^7.24.7" + "@babel/plugin-transform-shorthand-properties" "^7.24.7" + "@babel/plugin-transform-spread" "^7.24.7" + "@babel/plugin-transform-sticky-regex" "^7.24.7" + "@babel/plugin-transform-template-literals" "^7.24.7" + "@babel/plugin-transform-typeof-symbol" "^7.24.7" + "@babel/plugin-transform-unicode-escapes" "^7.24.7" + "@babel/plugin-transform-unicode-property-regex" "^7.24.7" + "@babel/plugin-transform-unicode-regex" "^7.24.7" + "@babel/plugin-transform-unicode-sets-regex" "^7.24.7" + "@babel/preset-modules" "0.1.6-no-external-plugins" + babel-plugin-polyfill-corejs2 "^0.4.10" + babel-plugin-polyfill-corejs3 "^0.10.4" + babel-plugin-polyfill-regenerator "^0.6.1" + core-js-compat "^3.31.0" + semver "^6.3.1" + +"@babel/preset-modules@0.1.6-no-external-plugins": + version "0.1.6-no-external-plugins" + resolved "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz" + integrity sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/types" "^7.4.4" + esutils "^2.0.2" + +"@babel/regjsgen@^0.8.0": + version "0.8.0" + resolved "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz" + integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA== + +"@babel/runtime@^7.8.4": + version "7.24.7" + resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.7.tgz" + integrity sha512-UwgBRMjJP+xv857DCngvqXI3Iq6J4v0wXmwc6sapg+zyhbwmQX67LUEFrkK5tbyJ30jGuG3ZvWpBiB9LCy1kWw== + dependencies: + regenerator-runtime "^0.14.0" + +"@babel/template@^7.24.0", "@babel/template@^7.24.7", "@babel/template@^7.3.3": + version "7.24.7" + resolved "https://registry.npmjs.org/@babel/template/-/template-7.24.7.tgz" + integrity sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig== + dependencies: + "@babel/code-frame" "^7.24.7" + "@babel/parser" "^7.24.7" + "@babel/types" "^7.24.7" + +"@babel/traverse@^7.24.5", "@babel/traverse@^7.24.7": + version "7.24.7" + resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.7.tgz" + integrity sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA== + dependencies: + "@babel/code-frame" "^7.24.7" + "@babel/generator" "^7.24.7" + "@babel/helper-environment-visitor" "^7.24.7" + "@babel/helper-function-name" "^7.24.7" + "@babel/helper-hoist-variables" "^7.24.7" + "@babel/helper-split-export-declaration" "^7.24.7" + "@babel/parser" "^7.24.7" + "@babel/types" "^7.24.7" debug "^4.3.1" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.22.15", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.23.6", "@babel/types@^7.24.0", "@babel/types@^7.3.3": - version "7.24.0" - resolved "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz" - integrity sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w== +"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.24.5", "@babel/types@^7.24.7", "@babel/types@^7.3.3", "@babel/types@^7.4.4": + version "7.24.7" + resolved "https://registry.npmjs.org/@babel/types/-/types-7.24.7.tgz" + integrity sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q== dependencies: - "@babel/helper-string-parser" "^7.23.4" - "@babel/helper-validator-identifier" "^7.22.20" + "@babel/helper-string-parser" "^7.24.7" + "@babel/helper-validator-identifier" "^7.24.7" to-fast-properties "^2.0.0" "@bcoe/v8-coverage@^0.2.3": @@ -297,120 +1934,73 @@ resolved "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@esbuild/aix-ppc64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.19.12.tgz#d1bc06aedb6936b3b6d313bf809a5a40387d2b7f" - integrity sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA== - -"@esbuild/android-arm64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.19.12.tgz#7ad65a36cfdb7e0d429c353e00f680d737c2aed4" - integrity sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA== - -"@esbuild/android-arm@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.19.12.tgz#b0c26536f37776162ca8bde25e42040c203f2824" - integrity sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w== - -"@esbuild/android-x64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.19.12.tgz#cb13e2211282012194d89bf3bfe7721273473b3d" - integrity sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew== - -"@esbuild/darwin-arm64@0.19.12": - version "0.19.12" - resolved "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.12.tgz" - integrity sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g== - -"@esbuild/darwin-x64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.19.12.tgz#e37d9633246d52aecf491ee916ece709f9d5f4cd" - integrity sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A== - -"@esbuild/freebsd-arm64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.12.tgz#1ee4d8b682ed363b08af74d1ea2b2b4dbba76487" - integrity sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA== - -"@esbuild/freebsd-x64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.19.12.tgz#37a693553d42ff77cd7126764b535fb6cc28a11c" - integrity sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg== - -"@esbuild/linux-arm64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.19.12.tgz#be9b145985ec6c57470e0e051d887b09dddb2d4b" - integrity sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA== - -"@esbuild/linux-arm@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.19.12.tgz#207ecd982a8db95f7b5279207d0ff2331acf5eef" - integrity sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w== - -"@esbuild/linux-ia32@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.19.12.tgz#d0d86b5ca1562523dc284a6723293a52d5860601" - integrity sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA== - -"@esbuild/linux-loong64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.19.12.tgz#9a37f87fec4b8408e682b528391fa22afd952299" - integrity sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA== - -"@esbuild/linux-mips64el@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.19.12.tgz#4ddebd4e6eeba20b509d8e74c8e30d8ace0b89ec" - integrity sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w== - -"@esbuild/linux-ppc64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.19.12.tgz#adb67dadb73656849f63cd522f5ecb351dd8dee8" - integrity sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg== - -"@esbuild/linux-riscv64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.19.12.tgz#11bc0698bf0a2abf8727f1c7ace2112612c15adf" - integrity sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg== - -"@esbuild/linux-s390x@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.19.12.tgz#e86fb8ffba7c5c92ba91fc3b27ed5a70196c3cc8" - integrity sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg== - -"@esbuild/linux-x64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.19.12.tgz#5f37cfdc705aea687dfe5dfbec086a05acfe9c78" - integrity sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg== - -"@esbuild/netbsd-x64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.19.12.tgz#29da566a75324e0d0dd7e47519ba2f7ef168657b" - integrity sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA== - -"@esbuild/openbsd-x64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.19.12.tgz#306c0acbdb5a99c95be98bdd1d47c916e7dc3ff0" - integrity sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw== - -"@esbuild/sunos-x64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.19.12.tgz#0933eaab9af8b9b2c930236f62aae3fc593faf30" - integrity sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA== - -"@esbuild/win32-arm64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.19.12.tgz#773bdbaa1971b36db2f6560088639ccd1e6773ae" - integrity sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A== - -"@esbuild/win32-ia32@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.19.12.tgz#000516cad06354cc84a73f0943a4aa690ef6fd67" - integrity sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ== - -"@esbuild/win32-x64@0.19.12": - version "0.19.12" - resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.19.12.tgz#c57c8afbb4054a3ab8317591a0b7320360b444ae" - integrity sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA== +"@biomejs/biome@1.6.4": + version "1.6.4" + resolved "https://registry.npmjs.org/@biomejs/biome/-/biome-1.6.4.tgz" + integrity sha512-3groVd2oWsLC0ZU+XXgHSNbq31lUcOCBkCcA7sAQGBopHcmL+jmmdoWlY3S61zIh+f2mqQTQte1g6PZKb3JJjA== + optionalDependencies: + "@biomejs/cli-darwin-arm64" "1.6.4" + "@biomejs/cli-darwin-x64" "1.6.4" + "@biomejs/cli-linux-arm64" "1.6.4" + "@biomejs/cli-linux-arm64-musl" "1.6.4" + "@biomejs/cli-linux-x64" "1.6.4" + "@biomejs/cli-linux-x64-musl" "1.6.4" + "@biomejs/cli-win32-arm64" "1.6.4" + "@biomejs/cli-win32-x64" "1.6.4" + +"@biomejs/cli-darwin-arm64@1.6.4": + version "1.6.4" + resolved "https://registry.npmjs.org/@biomejs/cli-darwin-arm64/-/cli-darwin-arm64-1.6.4.tgz" + integrity sha512-2WZef8byI9NRzGajGj5RTrroW9BxtfbP9etigW1QGAtwu/6+cLkdPOWRAs7uFtaxBNiKFYA8j/BxV5zeAo5QOQ== + +"@continuedev/config-types@^1.0.6": + version "1.0.6" + resolved "https://registry.npmjs.org/@continuedev/config-types/-/config-types-1.0.6.tgz" + integrity sha512-JTlaGtsNW9vfSPcDJBn+I2vcs0wWRFIQcN3sa6pBFg2fj8W6qcMZoYUdzoU/+X+2ZT8OKcbomWfP2+qW0uuy6A== + dependencies: + zod "^3.23.8" + +"@continuedev/llm-info@^1.0.1": + version "1.0.1" + resolved "https://registry.npmjs.org/@continuedev/llm-info/-/llm-info-1.0.1.tgz" + integrity sha512-fmRXuOSwJ9ogBPSDduoedHF3WVg1rge3o8SRRg1hkUagRnxwZqtQj1sS5SjQyAqjQv6VPMGPDEtD77Za/hc4Jg== + +"@esbuild/darwin-arm64@0.17.19": + version "0.17.19" + resolved "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.19.tgz" + integrity sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg== + +"@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": + version "4.4.0" + resolved "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz" + integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== + dependencies: + eslint-visitor-keys "^3.3.0" + +"@eslint-community/regexpp@^4.10.0", "@eslint-community/regexpp@^4.6.1": + version "4.10.0" + resolved "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz" + integrity sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA== + +"@eslint/eslintrc@^2.1.4": + version "2.1.4" + resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz" + integrity sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ== + dependencies: + ajv "^6.12.4" + debug "^4.3.2" + espree "^9.6.0" + globals "^13.19.0" + ignore "^5.2.0" + import-fresh "^3.2.1" + js-yaml "^4.1.0" + minimatch "^3.1.2" + strip-json-comments "^3.1.1" + +"@eslint/js@8.57.0": + version "8.57.0" + resolved "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz" + integrity sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g== "@gar/promisify@^1.0.1": version "1.1.3" @@ -418,14 +2008,33 @@ integrity sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw== "@google/generative-ai@^0.11.4": - version "0.11.5" - resolved "https://registry.npmjs.org/@google/generative-ai/-/generative-ai-0.11.5.tgz" - integrity sha512-DviMgrnljEKh6qkDT2pVFW+NEuVhggqBUoEnyy2PNL7l4ewxXRJubk3PctC9yPl1AdRIlhqP7E076QQt+IWuTg== + version "0.11.4" + resolved "https://registry.npmjs.org/@google/generative-ai/-/generative-ai-0.11.4.tgz" + integrity sha512-hlw+E9Prv9aUIQISRnLSXi4rukFqKe5WhxPvzBccTvIvXjw2BHMFOJWSC/Gq7WE0W+L/qRHGmYxopmx9qjrB9w== -"@huggingface/jinja@^0.2.1": - version "0.2.1" - resolved "https://registry.npmjs.org/@huggingface/jinja/-/jinja-0.2.1.tgz" - integrity sha512-HxjVCll8oGfgUQmN91NYWCjfuaQ5mYZkc/BB1gjfp28q3s48yiB5jUEV7BvaRdIAb/+14cNdX8TIdalFykwywA== +"@huggingface/jinja@^0.1.0": + version "0.1.3" + resolved "https://registry.npmjs.org/@huggingface/jinja/-/jinja-0.1.3.tgz" + integrity sha512-9KsiorsdIK8+7VmlamAT7Uh90zxAhC/SeKaKc80v58JhtPYuwaJpmR/ST7XAUxrHAFqHTCoTH5aJnJDwSL6xIQ== + +"@humanwhocodes/config-array@^0.11.14": + version "0.11.14" + resolved "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz" + integrity sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg== + dependencies: + "@humanwhocodes/object-schema" "^2.0.2" + debug "^4.3.1" + minimatch "^3.0.5" + +"@humanwhocodes/module-importer@^1.0.1": + version "1.0.1" + resolved "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz" + integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== + +"@humanwhocodes/object-schema@^2.0.2": + version "2.0.3" + resolved "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz" + integrity sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA== "@istanbuljs/load-nyc-config@^1.0.0": version "1.1.0" @@ -602,7 +2211,7 @@ jest-haste-map "^29.7.0" slash "^3.0.0" -"@jest/transform@^29.7.0": +"@jest/transform@^29.0.0", "@jest/transform@^29.7.0": version "29.7.0" resolved "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz" integrity sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw== @@ -623,7 +2232,7 @@ slash "^3.0.0" write-file-atomic "^4.0.2" -"@jest/types@^29.6.3": +"@jest/types@^29.0.0", "@jest/types@^29.6.3": version "29.6.3" resolved "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz" integrity sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw== @@ -635,7 +2244,7 @@ "@types/yargs" "^17.0.8" chalk "^4.0.0" -"@jridgewell/gen-mapping@^0.3.2", "@jridgewell/gen-mapping@^0.3.5": +"@jridgewell/gen-mapping@^0.3.5": version "0.3.5" resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz" integrity sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg== @@ -659,7 +2268,7 @@ resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz" integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== -"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.18", "@jridgewell/trace-mapping@^0.3.24": +"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.18", "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25": version "0.3.25" resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz" integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== @@ -667,30 +2276,10 @@ "@jridgewell/resolve-uri" "^3.1.0" "@jridgewell/sourcemap-codec" "^1.4.14" -"@lancedb/vectordb-darwin-arm64@0.4.12": - version "0.4.12" - resolved "https://registry.npmjs.org/@lancedb/vectordb-darwin-arm64/-/vectordb-darwin-arm64-0.4.12.tgz" - integrity sha512-38/rkJRlWXkPWXuj9onzvbrhnIWcIUQjgEp5G9v5ixPosBowm7A4j8e2Q8CJMsVSNcVX2JLqwWVldiWegZFuYw== - -"@lancedb/vectordb-darwin-x64@0.4.12": - version "0.4.12" - resolved "https://registry.yarnpkg.com/@lancedb/vectordb-darwin-x64/-/vectordb-darwin-x64-0.4.12.tgz#7a2cac3118d35af8de3011a393668024bc75b5c9" - integrity sha512-psE48dztyO450hXWdv9Rl9aayM2HQ1uF9wErfC0gKmDUh1N0NdVq2viDuFpZxnmCis/nvGwKlYiYT9OnYNCJ9g== - -"@lancedb/vectordb-linux-arm64-gnu@0.4.12": - version "0.4.12" - resolved "https://registry.yarnpkg.com/@lancedb/vectordb-linux-arm64-gnu/-/vectordb-linux-arm64-gnu-0.4.12.tgz#fc8a35e2781655374bd72e2c9a25a692f5c5092a" - integrity sha512-xwkgF6MiF5aAdG9JG8v4ke652YxUJrhs9z4OrsEfrENnvsIQd2C5UyKMepVLdvij4BI/XPFRFWXdjPvP7S9rTA== - -"@lancedb/vectordb-linux-x64-gnu@0.4.12": - version "0.4.12" - resolved "https://registry.yarnpkg.com/@lancedb/vectordb-linux-x64-gnu/-/vectordb-linux-x64-gnu-0.4.12.tgz#b4b1384d233dfe7e5254ab712dbe490313982b72" - integrity sha512-gJqYR0aymrS+C60xc4EQPzmQ5/69XfeFv2ofBvAj7qW+c6BcnoAcfVl+7s1IrcWeGz251sm5cD5Lx4AzJd89dA== - -"@lancedb/vectordb-win32-x64-msvc@0.4.12": - version "0.4.12" - resolved "https://registry.yarnpkg.com/@lancedb/vectordb-win32-x64-msvc/-/vectordb-win32-x64-msvc-0.4.12.tgz#7aa0899fe72271e2eb9ec7cf53b445ef54bc596f" - integrity sha512-LhCzpyEeBUyO6L2fuVqeP3mW8kYDryyU9PNqcM01m88sZB1Do6AlwiM+GjPRQ0SpzD0LK9oxQqSmJrdcNGqjbw== +"@lancedb/vectordb-darwin-arm64@0.4.20": + version "0.4.20" + resolved "https://registry.npmjs.org/@lancedb/vectordb-darwin-arm64/-/vectordb-darwin-arm64-0.4.20.tgz" + integrity sha512-ffP2K4sA5mQTgePyARw1y8dPN996FmpvyAYoWO+TSItaXlhcXvc+KVa5udNMCZMDYeEnEv2Xpj6k4PwW3oBz+A== "@mozilla/readability@^0.5.0": version "0.5.0" @@ -702,6 +2291,27 @@ resolved "https://registry.npmjs.org/@neon-rs/load/-/load-0.0.74.tgz" integrity sha512-/cPZD907UNz55yrc/ud4wDgQKtU1TvkD9jeqZWG6J4IMmZkp6zgjkQcKA8UvpkZlcpPHvc8J17sGzLFbP/LUYg== +"@nodelib/fs.scandir@2.1.5": + version "2.1.5" + resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz" + integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== + dependencies: + "@nodelib/fs.stat" "2.0.5" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@^2.0.2", "@nodelib/fs.stat@2.0.5": + version "2.0.5" + resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== + +"@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": + version "1.2.8" + resolved "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz" + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== + dependencies: + "@nodelib/fs.scandir" "2.1.5" + fastq "^1.6.0" + "@npmcli/fs@^1.0.0": version "1.1.1" resolved "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz" @@ -723,95 +2333,95 @@ resolved "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-4.0.0.tgz" integrity sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA== -"@octokit/core@^5.0.0": - version "5.1.0" - resolved "https://registry.npmjs.org/@octokit/core/-/core-5.1.0.tgz" - integrity sha512-BDa2VAMLSh3otEiaMJ/3Y36GU4qf6GI+VivQ/P41NC6GHcdxpKlqV0ikSZ5gdQsmS3ojXeRx5vasgNTinF0Q4g== +"@octokit/core@^5", "@octokit/core@^5.0.2", "@octokit/core@5": + version "5.2.0" + resolved "https://registry.npmjs.org/@octokit/core/-/core-5.2.0.tgz" + integrity sha512-1LFfa/qnMQvEOAdzlQymH0ulepxbxnCYAKJZfMci/5XJyIHWgEYnDmgnKakbTh7CH2tFQ5O60oYDvns4i9RAIg== dependencies: "@octokit/auth-token" "^4.0.0" - "@octokit/graphql" "^7.0.0" - "@octokit/request" "^8.0.2" - "@octokit/request-error" "^5.0.0" - "@octokit/types" "^12.0.0" + "@octokit/graphql" "^7.1.0" + "@octokit/request" "^8.3.1" + "@octokit/request-error" "^5.1.0" + "@octokit/types" "^13.0.0" before-after-hook "^2.2.0" universal-user-agent "^6.0.0" -"@octokit/endpoint@^9.0.0": - version "9.0.4" - resolved "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-9.0.4.tgz" - integrity sha512-DWPLtr1Kz3tv8L0UvXTDP1fNwM0S+z6EJpRcvH66orY6Eld4XBMCSYsaWp4xIm61jTWxK68BrR7ibO+vSDnZqw== +"@octokit/endpoint@^9.0.1": + version "9.0.5" + resolved "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-9.0.5.tgz" + integrity sha512-ekqR4/+PCLkEBF6qgj8WqJfvDq65RH85OAgrtnVp1mSxaXF03u2xW/hUdweGS5654IlC0wkNYC18Z50tSYTAFw== dependencies: - "@octokit/types" "^12.0.0" + "@octokit/types" "^13.1.0" universal-user-agent "^6.0.0" -"@octokit/graphql@^7.0.0": - version "7.0.2" - resolved "https://registry.npmjs.org/@octokit/graphql/-/graphql-7.0.2.tgz" - integrity sha512-OJ2iGMtj5Tg3s6RaXH22cJcxXRi7Y3EBqbHTBRq+PQAqfaS8f/236fUrWhfSn8P4jovyzqucxme7/vWSSZBX2Q== +"@octokit/graphql@^7.1.0": + version "7.1.0" + resolved "https://registry.npmjs.org/@octokit/graphql/-/graphql-7.1.0.tgz" + integrity sha512-r+oZUH7aMFui1ypZnAvZmn0KSqAUgE1/tUXIWaqUCa1758ts/Jio84GZuzsvUkme98kv0WFY8//n0J1Z+vsIsQ== dependencies: - "@octokit/request" "^8.0.1" - "@octokit/types" "^12.0.0" + "@octokit/request" "^8.3.0" + "@octokit/types" "^13.0.0" universal-user-agent "^6.0.0" -"@octokit/openapi-types@^20.0.0": - version "20.0.0" - resolved "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-20.0.0.tgz" - integrity sha512-EtqRBEjp1dL/15V7WiX5LJMIxxkdiGJnabzYx5Apx4FkQIFgAfKumXeYAqqJCj1s+BMX4cPFIFC4OLCR6stlnA== +"@octokit/openapi-types@^22.2.0": + version "22.2.0" + resolved "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-22.2.0.tgz" + integrity sha512-QBhVjcUa9W7Wwhm6DBFu6ZZ+1/t/oYxqc2tp81Pi41YNuJinbFRx8B133qVOrAaBbF7D/m0Et6f9/pZt9Rc+tg== -"@octokit/plugin-paginate-rest@^9.0.0": - version "9.2.1" - resolved "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-9.2.1.tgz" - integrity sha512-wfGhE/TAkXZRLjksFXuDZdmGnJQHvtU/joFQdweXUgzo1XwvBCD4o4+75NtFfjfLK5IwLf9vHTfSiU3sLRYpRw== +"@octokit/plugin-paginate-rest@11.3.1": + version "11.3.1" + resolved "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-11.3.1.tgz" + integrity sha512-ryqobs26cLtM1kQxqeZui4v8FeznirUsksiA+RYemMPJ7Micju0WSkv50dBksTuZks9O5cg4wp+t8fZ/cLY56g== dependencies: - "@octokit/types" "^12.6.0" + "@octokit/types" "^13.5.0" "@octokit/plugin-request-log@^4.0.0": version "4.0.1" resolved "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-4.0.1.tgz" integrity sha512-GihNqNpGHorUrO7Qa9JbAl0dbLnqJVrV8OXe2Zm5/Y4wFkZQDfTreBzVmiRfJVfE4mClXdihHnbpyyO9FSX4HA== -"@octokit/plugin-rest-endpoint-methods@^10.0.0": - version "10.4.1" - resolved "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-10.4.1.tgz" - integrity sha512-xV1b+ceKV9KytQe3zCVqjg+8GTGfDYwaT1ATU5isiUyVtlVAO3HNdzpS4sr4GBx4hxQ46s7ITtZrAsxG22+rVg== +"@octokit/plugin-rest-endpoint-methods@13.2.2": + version "13.2.2" + resolved "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-13.2.2.tgz" + integrity sha512-EI7kXWidkt3Xlok5uN43suK99VWqc8OaIMktY9d9+RNKl69juoTyxmLoWPIZgJYzi41qj/9zU7G/ljnNOJ5AFA== dependencies: - "@octokit/types" "^12.6.0" + "@octokit/types" "^13.5.0" -"@octokit/request-error@^5.0.0": - version "5.0.1" - resolved "https://registry.npmjs.org/@octokit/request-error/-/request-error-5.0.1.tgz" - integrity sha512-X7pnyTMV7MgtGmiXBwmO6M5kIPrntOXdyKZLigNfQWSEQzVxR4a4vo49vJjTWX70mPndj8KhfT4Dx+2Ng3vnBQ== +"@octokit/request-error@^5.1.0": + version "5.1.0" + resolved "https://registry.npmjs.org/@octokit/request-error/-/request-error-5.1.0.tgz" + integrity sha512-GETXfE05J0+7H2STzekpKObFe765O5dlAKUTLNGeH+x47z7JjXHfsHKo5z21D/o/IOZTUEI6nyWyR+bZVP/n5Q== dependencies: - "@octokit/types" "^12.0.0" + "@octokit/types" "^13.1.0" deprecation "^2.0.0" once "^1.4.0" -"@octokit/request@^8.0.1", "@octokit/request@^8.0.2": - version "8.2.0" - resolved "https://registry.npmjs.org/@octokit/request/-/request-8.2.0.tgz" - integrity sha512-exPif6x5uwLqv1N1irkLG1zZNJkOtj8bZxuVHd71U5Ftuxf2wGNvAJyNBcPbPC+EBzwYEbBDdSFb8EPcjpYxPQ== +"@octokit/request@^8.3.0", "@octokit/request@^8.3.1": + version "8.4.0" + resolved "https://registry.npmjs.org/@octokit/request/-/request-8.4.0.tgz" + integrity sha512-9Bb014e+m2TgBeEJGEbdplMVWwPmL1FPtggHQRkV+WVsMggPtEkLKPlcVYm/o8xKLkpJ7B+6N8WfQMtDLX2Dpw== dependencies: - "@octokit/endpoint" "^9.0.0" - "@octokit/request-error" "^5.0.0" - "@octokit/types" "^12.0.0" + "@octokit/endpoint" "^9.0.1" + "@octokit/request-error" "^5.1.0" + "@octokit/types" "^13.1.0" universal-user-agent "^6.0.0" "@octokit/rest@^20.0.2": - version "20.0.2" - resolved "https://registry.npmjs.org/@octokit/rest/-/rest-20.0.2.tgz" - integrity sha512-Ux8NDgEraQ/DMAU1PlAohyfBBXDwhnX2j33Z1nJNziqAfHi70PuxkFYIcIt8aIAxtRE7KVuKp8lSR8pA0J5iOQ== + version "20.1.1" + resolved "https://registry.npmjs.org/@octokit/rest/-/rest-20.1.1.tgz" + integrity sha512-MB4AYDsM5jhIHro/dq4ix1iWTLGToIGk6cWF5L6vanFaMble5jTX/UBQyiv05HsWnwUtY8JrfHy2LWfKwihqMw== dependencies: - "@octokit/core" "^5.0.0" - "@octokit/plugin-paginate-rest" "^9.0.0" + "@octokit/core" "^5.0.2" + "@octokit/plugin-paginate-rest" "11.3.1" "@octokit/plugin-request-log" "^4.0.0" - "@octokit/plugin-rest-endpoint-methods" "^10.0.0" + "@octokit/plugin-rest-endpoint-methods" "13.2.2" -"@octokit/types@^12.0.0", "@octokit/types@^12.6.0": - version "12.6.0" - resolved "https://registry.npmjs.org/@octokit/types/-/types-12.6.0.tgz" - integrity sha512-1rhSOfRa6H9w4YwK0yrf5faDaDTb+yLyBUKOCV4xtCDB5VmIPqd/v9yr9o6SAzOAlRxMiRiCic6JVM1/kunVkw== +"@octokit/types@^13.0.0", "@octokit/types@^13.1.0", "@octokit/types@^13.5.0": + version "13.5.0" + resolved "https://registry.npmjs.org/@octokit/types/-/types-13.5.0.tgz" + integrity sha512-HdqWTf5Z3qwDVlzCrP8UJquMwunpDiMPt5er+QjGzL4hqr/vBVY/MauQgS1xWxCDT1oMx1EULyqxncdCY/NVSQ== dependencies: - "@octokit/openapi-types" "^20.0.0" + "@octokit/openapi-types" "^22.2.0" "@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2": version "1.1.2" @@ -866,14 +2476,6 @@ resolved "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz" integrity sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw== -"@rollup/pluginutils@^4.1.1": - version "4.2.1" - resolved "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.1.tgz" - integrity sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ== - dependencies: - estree-walker "^2.0.1" - picomatch "^2.2.2" - "@sinclair/typebox@^0.27.8": version "0.27.8" resolved "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz" @@ -893,10 +2495,445 @@ dependencies: "@sinonjs/commons" "^3.0.0" -"@socket.io/component-emitter@~3.1.0": +"@smithy/abort-controller@^3.0.1": + version "3.0.1" + resolved "https://registry.npmjs.org/@smithy/abort-controller/-/abort-controller-3.0.1.tgz" + integrity sha512-Jb7jg4E+C+uvrUQi+h9kbILY6ts6fglKZzseMCHlH9ayq+1f5QdpYf8MV/xppuiN6DAMJAmwGz53GwP3213dmA== + dependencies: + "@smithy/types" "^3.1.0" + tslib "^2.6.2" + +"@smithy/config-resolver@^3.0.0", "@smithy/config-resolver@^3.0.2": + version "3.0.2" + resolved "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-3.0.2.tgz" + integrity sha512-wUyG6ezpp2sWAvfqmSYTROwFUmJqKV78GLf55WODrosBcT0BAMd9bOLO4HRhynWBgAobPml2cF9ZOdgCe00r+g== + dependencies: + "@smithy/node-config-provider" "^3.1.1" + "@smithy/types" "^3.1.0" + "@smithy/util-config-provider" "^3.0.0" + "@smithy/util-middleware" "^3.0.1" + tslib "^2.6.2" + +"@smithy/core@^2.0.0", "@smithy/core@^2.2.1": + version "2.2.1" + resolved "https://registry.npmjs.org/@smithy/core/-/core-2.2.1.tgz" + integrity sha512-R8Pzrr2v2oGUoj4CTZtKPr87lVtBsz7IUBGhSwS1kc6Cj0yPwNdYbkzhFsxhoDE9+BPl09VN/6rFsW9GJzWnBA== + dependencies: + "@smithy/middleware-endpoint" "^3.0.2" + "@smithy/middleware-retry" "^3.0.4" + "@smithy/middleware-serde" "^3.0.1" + "@smithy/protocol-http" "^4.0.1" + "@smithy/smithy-client" "^3.1.2" + "@smithy/types" "^3.1.0" + "@smithy/util-middleware" "^3.0.1" + tslib "^2.6.2" + +"@smithy/credential-provider-imds@^3.0.0", "@smithy/credential-provider-imds@^3.1.1": + version "3.1.1" + resolved "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-3.1.1.tgz" + integrity sha512-htndP0LwHdE3R3Nam9ZyVWhwPYOmD4xCL79kqvNxy8u/bv0huuy574CSiRY4cvEICgimv8jlVfLeZ7zZqbnB2g== + dependencies: + "@smithy/node-config-provider" "^3.1.1" + "@smithy/property-provider" "^3.1.1" + "@smithy/types" "^3.1.0" + "@smithy/url-parser" "^3.0.1" + tslib "^2.6.2" + +"@smithy/eventstream-codec@^3.0.0": + version "3.0.0" + resolved "https://registry.npmjs.org/@smithy/eventstream-codec/-/eventstream-codec-3.0.0.tgz" + integrity sha512-PUtyEA0Oik50SaEFCZ0WPVtF9tz/teze2fDptW6WRXl+RrEenH8UbEjudOz8iakiMl3lE3lCVqYf2Y+znL8QFQ== + dependencies: + "@aws-crypto/crc32" "3.0.0" + "@smithy/types" "^3.0.0" + "@smithy/util-hex-encoding" "^3.0.0" + tslib "^2.6.2" + +"@smithy/eventstream-serde-browser@^3.0.0": + version "3.0.0" + resolved "https://registry.npmjs.org/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-3.0.0.tgz" + integrity sha512-NB7AFiPN4NxP/YCAnrvYR18z2/ZsiHiF7VtG30gshO9GbFrIb1rC8ep4NGpJSWrz6P64uhPXeo4M0UsCLnZKqw== + dependencies: + "@smithy/eventstream-serde-universal" "^3.0.0" + "@smithy/types" "^3.0.0" + tslib "^2.6.2" + +"@smithy/eventstream-serde-config-resolver@^3.0.0": + version "3.0.0" + resolved "https://registry.npmjs.org/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-3.0.0.tgz" + integrity sha512-RUQG3vQ3LX7peqqHAbmayhgrF5aTilPnazinaSGF1P0+tgM3vvIRWPHmlLIz2qFqB9LqFIxditxc8O2Z6psrRw== + dependencies: + "@smithy/types" "^3.0.0" + tslib "^2.6.2" + +"@smithy/eventstream-serde-node@^3.0.0": + version "3.0.0" + resolved "https://registry.npmjs.org/@smithy/eventstream-serde-node/-/eventstream-serde-node-3.0.0.tgz" + integrity sha512-baRPdMBDMBExZXIUAoPGm/hntixjt/VFpU6+VmCyiYJYzRHRxoaI1MN+5XE+hIS8AJ2GCHLMFEIOLzq9xx1EgQ== + dependencies: + "@smithy/eventstream-serde-universal" "^3.0.0" + "@smithy/types" "^3.0.0" + tslib "^2.6.2" + +"@smithy/eventstream-serde-universal@^3.0.0": + version "3.0.0" + resolved "https://registry.npmjs.org/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-3.0.0.tgz" + integrity sha512-HNFfShmotWGeAoW4ujP8meV9BZavcpmerDbPIjkJbxKbN8RsUcpRQ/2OyIxWNxXNH2GWCAxuSB7ynmIGJlQ3Dw== + dependencies: + "@smithy/eventstream-codec" "^3.0.0" + "@smithy/types" "^3.0.0" + tslib "^2.6.2" + +"@smithy/fetch-http-handler@^3.0.0", "@smithy/fetch-http-handler@^3.0.2": + version "3.0.2" + resolved "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-3.0.2.tgz" + integrity sha512-0nW6tLK0b7EqSsfKvnOmZCgJqnodBAnvqcrlC5dotKfklLedPTRGsQamSVbVDWyuU/QGg+YbZDJUQ0CUufJXZQ== + dependencies: + "@smithy/protocol-http" "^4.0.1" + "@smithy/querystring-builder" "^3.0.1" + "@smithy/types" "^3.1.0" + "@smithy/util-base64" "^3.0.0" + tslib "^2.6.2" + +"@smithy/hash-node@^3.0.0", "@smithy/hash-node@^3.0.1": + version "3.0.1" + resolved "https://registry.npmjs.org/@smithy/hash-node/-/hash-node-3.0.1.tgz" + integrity sha512-w2ncjgk2EYO2+WhAsSQA8owzoOSY7IL1qVytlwpnL1pFGWTjIoIh5nROkEKXY51unB63bMGZqDiVoXaFbyKDlg== + dependencies: + "@smithy/types" "^3.1.0" + "@smithy/util-buffer-from" "^3.0.0" + "@smithy/util-utf8" "^3.0.0" + tslib "^2.6.2" + +"@smithy/invalid-dependency@^3.0.0", "@smithy/invalid-dependency@^3.0.1": + version "3.0.1" + resolved "https://registry.npmjs.org/@smithy/invalid-dependency/-/invalid-dependency-3.0.1.tgz" + integrity sha512-RSNF/32BKygXKKMyS7koyuAq1rcdW5p5c4EFa77QenBFze9As+JiRnV9OWBh2cB/ejGZalEZjvIrMLHwJl7aGA== + dependencies: + "@smithy/types" "^3.1.0" + tslib "^2.6.2" + +"@smithy/is-array-buffer@^2.2.0": + version "2.2.0" + resolved "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-2.2.0.tgz" + integrity sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA== + dependencies: + tslib "^2.6.2" + +"@smithy/is-array-buffer@^3.0.0": + version "3.0.0" + resolved "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-3.0.0.tgz" + integrity sha512-+Fsu6Q6C4RSJiy81Y8eApjEB5gVtM+oFKTffg+jSuwtvomJJrhUJBu2zS8wjXSgH/g1MKEWrzyChTBe6clb5FQ== + dependencies: + tslib "^2.6.2" + +"@smithy/middleware-content-length@^3.0.0", "@smithy/middleware-content-length@^3.0.1": + version "3.0.1" + resolved "https://registry.npmjs.org/@smithy/middleware-content-length/-/middleware-content-length-3.0.1.tgz" + integrity sha512-6QdK/VbrCfXD5/QolE2W/ok6VqxD+SM28Ds8iSlEHXZwv4buLsvWyvoEEy0322K/g5uFgPzBmZjGqesTmPL+yQ== + dependencies: + "@smithy/protocol-http" "^4.0.1" + "@smithy/types" "^3.1.0" + tslib "^2.6.2" + +"@smithy/middleware-endpoint@^3.0.0", "@smithy/middleware-endpoint@^3.0.2": + version "3.0.2" + resolved "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-3.0.2.tgz" + integrity sha512-gWEaGYB3Bei17Oiy/F2IlUPpBazNXImytoOdJ1xbrUOaJKAOiUhx8/4FOnYLLJHdAwa9PlvJ2ULda2f/Dnwi9w== + dependencies: + "@smithy/middleware-serde" "^3.0.1" + "@smithy/node-config-provider" "^3.1.1" + "@smithy/shared-ini-file-loader" "^3.1.1" + "@smithy/types" "^3.1.0" + "@smithy/url-parser" "^3.0.1" + "@smithy/util-middleware" "^3.0.1" + tslib "^2.6.2" + +"@smithy/middleware-retry@^3.0.0", "@smithy/middleware-retry@^3.0.4": + version "3.0.4" + resolved "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-3.0.4.tgz" + integrity sha512-Tu+FggbLNF5G9L6Wi8o32Mg4bhlBInWlhhaFKyytGRnkfxGopxFVXJQn7sjZdFYJyTz6RZZa06tnlvavUgtoVg== + dependencies: + "@smithy/node-config-provider" "^3.1.1" + "@smithy/protocol-http" "^4.0.1" + "@smithy/service-error-classification" "^3.0.1" + "@smithy/smithy-client" "^3.1.2" + "@smithy/types" "^3.1.0" + "@smithy/util-middleware" "^3.0.1" + "@smithy/util-retry" "^3.0.1" + tslib "^2.6.2" + uuid "^9.0.1" + +"@smithy/middleware-serde@^3.0.0", "@smithy/middleware-serde@^3.0.1": + version "3.0.1" + resolved "https://registry.npmjs.org/@smithy/middleware-serde/-/middleware-serde-3.0.1.tgz" + integrity sha512-ak6H/ZRN05r5+SR0/IUc5zOSyh2qp3HReg1KkrnaSLXmncy9lwOjNqybX4L4x55/e5mtVDn1uf/gQ6bw5neJPw== + dependencies: + "@smithy/types" "^3.1.0" + tslib "^2.6.2" + +"@smithy/middleware-stack@^3.0.0", "@smithy/middleware-stack@^3.0.1": + version "3.0.1" + resolved "https://registry.npmjs.org/@smithy/middleware-stack/-/middleware-stack-3.0.1.tgz" + integrity sha512-fS5uT//y1SlBdkzIvgmWQ9FufwMXrHSSbuR25ygMy1CRDIZkcBMoF4oTMYNfR9kBlVBcVzlv7joFdNrFuQirPA== + dependencies: + "@smithy/types" "^3.1.0" + tslib "^2.6.2" + +"@smithy/node-config-provider@^3.0.0", "@smithy/node-config-provider@^3.1.1": + version "3.1.1" + resolved "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.1.tgz" + integrity sha512-z5G7+ysL4yUtMghUd2zrLkecu0mTfnYlt5dR76g/HsFqf7evFazwiZP1ag2EJenGxNBDwDM5g8nm11NPogiUVA== + dependencies: + "@smithy/property-provider" "^3.1.1" + "@smithy/shared-ini-file-loader" "^3.1.1" + "@smithy/types" "^3.1.0" + tslib "^2.6.2" + +"@smithy/node-http-handler@^3.0.0", "@smithy/node-http-handler@^3.0.1": + version "3.0.1" + resolved "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-3.0.1.tgz" + integrity sha512-hlBI6MuREA4o1wBMEt+QNhUzoDtFFvwR6ecufimlx9D79jPybE/r8kNorphXOi91PgSO9S2fxRjcKCLk7Jw8zA== + dependencies: + "@smithy/abort-controller" "^3.0.1" + "@smithy/protocol-http" "^4.0.1" + "@smithy/querystring-builder" "^3.0.1" + "@smithy/types" "^3.1.0" + tslib "^2.6.2" + +"@smithy/property-provider@^3.0.0", "@smithy/property-provider@^3.1.1": + version "3.1.1" + resolved "https://registry.npmjs.org/@smithy/property-provider/-/property-provider-3.1.1.tgz" + integrity sha512-YknOMZcQkB5on+MU0DvbToCmT2YPtTETMXW0D3+/Iln7ezT+Zm1GMHhCW1dOH/X/+LkkQD9aXEoCX/B10s4Xdw== + dependencies: + "@smithy/types" "^3.1.0" + tslib "^2.6.2" + +"@smithy/protocol-http@^4.0.0", "@smithy/protocol-http@^4.0.1": + version "4.0.1" + resolved "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-4.0.1.tgz" + integrity sha512-eBhm9zwcFPEazc654c0BEWtxYAzrw+OhoSf5pkwKzfftWKXRoqEhwOE2Pvn30v0iAdo7Mfsfb6pi1NnZlGCMpg== + dependencies: + "@smithy/types" "^3.1.0" + tslib "^2.6.2" + +"@smithy/querystring-builder@^3.0.1": + version "3.0.1" + resolved "https://registry.npmjs.org/@smithy/querystring-builder/-/querystring-builder-3.0.1.tgz" + integrity sha512-vKitpnG/2KOMVlx3x1S3FkBH075EROG3wcrcDaNerQNh8yuqnSL23btCD2UyX4i4lpPzNW6VFdxbn2Z25b/g5Q== + dependencies: + "@smithy/types" "^3.1.0" + "@smithy/util-uri-escape" "^3.0.0" + tslib "^2.6.2" + +"@smithy/querystring-parser@^3.0.1": + version "3.0.1" + resolved "https://registry.npmjs.org/@smithy/querystring-parser/-/querystring-parser-3.0.1.tgz" + integrity sha512-Qt8DMC05lVS8NcQx94lfVbZSX+2Ym7032b/JR8AlboAa/D669kPzqb35dkjkvAG6+NWmUchef3ENtrD6F+5n8Q== + dependencies: + "@smithy/types" "^3.1.0" + tslib "^2.6.2" + +"@smithy/service-error-classification@^3.0.1": + version "3.0.1" + resolved "https://registry.npmjs.org/@smithy/service-error-classification/-/service-error-classification-3.0.1.tgz" + integrity sha512-ubFUvIePjDCyIzZ+pLETqNC6KXJ/fc6g+/baqel7Zf6kJI/kZKgjwkCI7zbUhoUuOZ/4eA/87YasVu40b/B4bA== + dependencies: + "@smithy/types" "^3.1.0" + +"@smithy/shared-ini-file-loader@^3.0.0", "@smithy/shared-ini-file-loader@^3.1.1": + version "3.1.1" + resolved "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.1.tgz" + integrity sha512-nD6tXIX2126/P9e3wqRY1bm9dTtPZwRDyjVOd18G28o+1UOG+kOVgUwujE795HslSuPlEgqzsH5sgNP1hDjj9g== + dependencies: + "@smithy/types" "^3.1.0" + tslib "^2.6.2" + +"@smithy/signature-v4@^3.0.0", "@smithy/signature-v4@^3.1.0": + version "3.1.0" + resolved "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-3.1.0.tgz" + integrity sha512-m0/6LW3IQ3/JBcdhqjpkpABPTPhcejqeAn0U877zxBdNLiWAnG2WmCe5MfkUyVuvpFTPQnQwCo/0ZBR4uF5kxg== + dependencies: + "@smithy/is-array-buffer" "^3.0.0" + "@smithy/types" "^3.1.0" + "@smithy/util-hex-encoding" "^3.0.0" + "@smithy/util-middleware" "^3.0.1" + "@smithy/util-uri-escape" "^3.0.0" + "@smithy/util-utf8" "^3.0.0" + tslib "^2.6.2" + +"@smithy/smithy-client@^3.0.0", "@smithy/smithy-client@^3.1.2": + version "3.1.2" + resolved "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-3.1.2.tgz" + integrity sha512-f3eQpczBOFUtdT/ptw2WpUKu1qH1K7xrssrSiHYtd9TuLXkvFqb88l9mz9FHeUVNSUxSnkW1anJnw6rLwUKzQQ== + dependencies: + "@smithy/middleware-endpoint" "^3.0.2" + "@smithy/middleware-stack" "^3.0.1" + "@smithy/protocol-http" "^4.0.1" + "@smithy/types" "^3.1.0" + "@smithy/util-stream" "^3.0.2" + tslib "^2.6.2" + +"@smithy/types@^3.0.0", "@smithy/types@^3.1.0": version "3.1.0" - resolved "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz" - integrity sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg== + resolved "https://registry.npmjs.org/@smithy/types/-/types-3.1.0.tgz" + integrity sha512-qi4SeCVOUPjhSSZrxxB/mB8DrmuSFUcJnD9KXjuP+7C3LV/KFV4kpuUSH3OHDZgQB9TEH/1sO/Fq/5HyaK9MPw== + dependencies: + tslib "^2.6.2" + +"@smithy/url-parser@^3.0.0", "@smithy/url-parser@^3.0.1": + version "3.0.1" + resolved "https://registry.npmjs.org/@smithy/url-parser/-/url-parser-3.0.1.tgz" + integrity sha512-G140IlNFlzYWVCedC4E2d6NycM1dCUbe5CnsGW1hmGt4hYKiGOw0v7lVru9WAn5T2w09QEjl4fOESWjGmCvVmg== + dependencies: + "@smithy/querystring-parser" "^3.0.1" + "@smithy/types" "^3.1.0" + tslib "^2.6.2" + +"@smithy/util-base64@^3.0.0": + version "3.0.0" + resolved "https://registry.npmjs.org/@smithy/util-base64/-/util-base64-3.0.0.tgz" + integrity sha512-Kxvoh5Qtt0CDsfajiZOCpJxgtPHXOKwmM+Zy4waD43UoEMA+qPxxa98aE/7ZhdnBFZFXMOiBR5xbcaMhLtznQQ== + dependencies: + "@smithy/util-buffer-from" "^3.0.0" + "@smithy/util-utf8" "^3.0.0" + tslib "^2.6.2" + +"@smithy/util-body-length-browser@^3.0.0": + version "3.0.0" + resolved "https://registry.npmjs.org/@smithy/util-body-length-browser/-/util-body-length-browser-3.0.0.tgz" + integrity sha512-cbjJs2A1mLYmqmyVl80uoLTJhAcfzMOyPgjwAYusWKMdLeNtzmMz9YxNl3/jRLoxSS3wkqkf0jwNdtXWtyEBaQ== + dependencies: + tslib "^2.6.2" + +"@smithy/util-body-length-node@^3.0.0": + version "3.0.0" + resolved "https://registry.npmjs.org/@smithy/util-body-length-node/-/util-body-length-node-3.0.0.tgz" + integrity sha512-Tj7pZ4bUloNUP6PzwhN7K386tmSmEET9QtQg0TgdNOnxhZvCssHji+oZTUIuzxECRfG8rdm2PMw2WCFs6eIYkA== + dependencies: + tslib "^2.6.2" + +"@smithy/util-buffer-from@^2.2.0": + version "2.2.0" + resolved "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-2.2.0.tgz" + integrity sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA== + dependencies: + "@smithy/is-array-buffer" "^2.2.0" + tslib "^2.6.2" + +"@smithy/util-buffer-from@^3.0.0": + version "3.0.0" + resolved "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-3.0.0.tgz" + integrity sha512-aEOHCgq5RWFbP+UDPvPot26EJHjOC+bRgse5A8V3FSShqd5E5UN4qc7zkwsvJPPAVsf73QwYcHN1/gt/rtLwQA== + dependencies: + "@smithy/is-array-buffer" "^3.0.0" + tslib "^2.6.2" + +"@smithy/util-config-provider@^3.0.0": + version "3.0.0" + resolved "https://registry.npmjs.org/@smithy/util-config-provider/-/util-config-provider-3.0.0.tgz" + integrity sha512-pbjk4s0fwq3Di/ANL+rCvJMKM5bzAQdE5S/6RL5NXgMExFAi6UgQMPOm5yPaIWPpr+EOXKXRonJ3FoxKf4mCJQ== + dependencies: + tslib "^2.6.2" + +"@smithy/util-defaults-mode-browser@^3.0.0", "@smithy/util-defaults-mode-browser@^3.0.4": + version "3.0.4" + resolved "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-3.0.4.tgz" + integrity sha512-sXtin3Mue3A3xo4+XkozpgPptgmRwvNPOqTvb3ANGTCzzoQgAPBNjpE+aXCINaeSMXwHmv7E2oEn2vWdID+SAQ== + dependencies: + "@smithy/property-provider" "^3.1.1" + "@smithy/smithy-client" "^3.1.2" + "@smithy/types" "^3.1.0" + bowser "^2.11.0" + tslib "^2.6.2" + +"@smithy/util-defaults-mode-node@^3.0.0", "@smithy/util-defaults-mode-node@^3.0.4": + version "3.0.4" + resolved "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-3.0.4.tgz" + integrity sha512-CUF6TyxLh3CgBRVYgZNOPDfzHQjeQr0vyALR6/DkQkOm7rNfGEzW1BRFi88C73pndmfvoiIT7ochuT76OPz9Dw== + dependencies: + "@smithy/config-resolver" "^3.0.2" + "@smithy/credential-provider-imds" "^3.1.1" + "@smithy/node-config-provider" "^3.1.1" + "@smithy/property-provider" "^3.1.1" + "@smithy/smithy-client" "^3.1.2" + "@smithy/types" "^3.1.0" + tslib "^2.6.2" + +"@smithy/util-endpoints@^2.0.0", "@smithy/util-endpoints@^2.0.2": + version "2.0.2" + resolved "https://registry.npmjs.org/@smithy/util-endpoints/-/util-endpoints-2.0.2.tgz" + integrity sha512-4zFOcBFQvifd2LSD4a1dKvfIWWwh4sWNtS3oZ7mpob/qPPmJseqKB148iT+hWCDsG//TmI+8vjYPgZdvnkYlTg== + dependencies: + "@smithy/node-config-provider" "^3.1.1" + "@smithy/types" "^3.1.0" + tslib "^2.6.2" + +"@smithy/util-hex-encoding@^3.0.0": + version "3.0.0" + resolved "https://registry.npmjs.org/@smithy/util-hex-encoding/-/util-hex-encoding-3.0.0.tgz" + integrity sha512-eFndh1WEK5YMUYvy3lPlVmYY/fZcQE1D8oSf41Id2vCeIkKJXPcYDCZD+4+xViI6b1XSd7tE+s5AmXzz5ilabQ== + dependencies: + tslib "^2.6.2" + +"@smithy/util-middleware@^3.0.0", "@smithy/util-middleware@^3.0.1": + version "3.0.1" + resolved "https://registry.npmjs.org/@smithy/util-middleware/-/util-middleware-3.0.1.tgz" + integrity sha512-WRODCQtUsO7vIvfrdxS8RFPeLKcewYtaCglZsBsedIKSUGIIvMlZT5oh+pCe72I+1L+OjnZuqRNpN2LKhWA4KQ== + dependencies: + "@smithy/types" "^3.1.0" + tslib "^2.6.2" + +"@smithy/util-retry@^3.0.0", "@smithy/util-retry@^3.0.1": + version "3.0.1" + resolved "https://registry.npmjs.org/@smithy/util-retry/-/util-retry-3.0.1.tgz" + integrity sha512-5lRtYm+8fNFEUTdqZXg5M4ppVp40rMIJfR1TpbHAhKQgPIDpWT+iYMaqgnwEbtpi9U1smyUOPv5Sg+M1neOBgw== + dependencies: + "@smithy/service-error-classification" "^3.0.1" + "@smithy/types" "^3.1.0" + tslib "^2.6.2" + +"@smithy/util-stream@^3.0.0", "@smithy/util-stream@^3.0.2": + version "3.0.2" + resolved "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-3.0.2.tgz" + integrity sha512-n5Obp5AnlI6qHo8sbupwrcpBe6vFp4qkl0SRNuExKPNrH3ABAMG2ZszRTIUIv2b4AsFrCO+qiy4uH1Q3z1dxTA== + dependencies: + "@smithy/fetch-http-handler" "^3.0.2" + "@smithy/node-http-handler" "^3.0.1" + "@smithy/types" "^3.1.0" + "@smithy/util-base64" "^3.0.0" + "@smithy/util-buffer-from" "^3.0.0" + "@smithy/util-hex-encoding" "^3.0.0" + "@smithy/util-utf8" "^3.0.0" + tslib "^2.6.2" + +"@smithy/util-uri-escape@^3.0.0": + version "3.0.0" + resolved "https://registry.npmjs.org/@smithy/util-uri-escape/-/util-uri-escape-3.0.0.tgz" + integrity sha512-LqR7qYLgZTD7nWLBecUi4aqolw8Mhza9ArpNEQ881MJJIU2sE5iHCK6TdyqqzcDLy0OPe10IY4T8ctVdtynubg== + dependencies: + tslib "^2.6.2" + +"@smithy/util-utf8@^2.0.0": + version "2.3.0" + resolved "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-2.3.0.tgz" + integrity sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A== + dependencies: + "@smithy/util-buffer-from" "^2.2.0" + tslib "^2.6.2" + +"@smithy/util-utf8@^3.0.0": + version "3.0.0" + resolved "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-3.0.0.tgz" + integrity sha512-rUeT12bxFnplYDe815GXbq/oixEGHfRFFtcTF3YdDi/JaENIM6aSYYLJydG83UNzLXeRI5K8abYd/8Sp/QM0kA== + dependencies: + "@smithy/util-buffer-from" "^3.0.0" + tslib "^2.6.2" + +"@socket.io/component-emitter@~3.1.0": + version "3.1.2" + resolved "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz" + integrity sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA== "@tootallnate/once@1": version "1.1.2" @@ -936,6 +2973,16 @@ dependencies: "@babel/types" "^7.20.7" +"@types/command-line-args@5.2.0": + version "5.2.0" + resolved "https://registry.npmjs.org/@types/command-line-args/-/command-line-args-5.2.0.tgz" + integrity sha512-UuKzKpJJ/Ief6ufIaIzr3A/0XnluX7RvFgwkV89Yzvm77wCh1kFaFmqN8XEnGcN62EuHdedQjEMb8mYxFLGPyA== + +"@types/command-line-usage@5.0.2": + version "5.0.2" + resolved "https://registry.npmjs.org/@types/command-line-usage/-/command-line-usage-5.0.2.tgz" + integrity sha512-n7RlEEJ+4x4TS7ZQddTmNSxP+zziEG0TNsMfiRIxcIVXt71ENJ9ojeXmGO3wPoTdn7pJcU2xc3CJYMktNT6DPg== + "@types/follow-redirects@^1.14.4": version "1.14.4" resolved "https://registry.npmjs.org/@types/follow-redirects/-/follow-redirects-1.14.4.tgz" @@ -950,13 +2997,6 @@ dependencies: "@types/node" "*" -"@types/handlebars@^4.1.0": - version "4.1.0" - resolved "https://registry.npmjs.org/@types/handlebars/-/handlebars-4.1.0.tgz" - integrity sha512-gq9YweFKNNB1uFK71eRqsd4niVkXrxHugqWFQkeLRJvGjnxsLr16bYtcsG4tOFwmYi0Bax+wCkbf1reUfdl4kA== - dependencies: - handlebars "*" - "@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": version "2.0.6" resolved "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz" @@ -976,7 +3016,7 @@ dependencies: "@types/istanbul-lib-report" "*" -"@types/jest@^29.5.11": +"@types/jest@^29.5.12": version "29.5.12" resolved "https://registry.npmjs.org/@types/jest/-/jest-29.5.12.tgz" integrity sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw== @@ -985,9 +3025,9 @@ pretty-format "^29.0.0" "@types/jquery@^3.5.29": - version "3.5.29" - resolved "https://registry.npmjs.org/@types/jquery/-/jquery-3.5.29.tgz" - integrity sha512-oXQQC9X9MOPRrMhPHHOsXqeQDnWeCDT3PelUIg/Oy8FAbzSZtFHRjc7IpbfFVmpLtJ+UOoywpRsuO5Jxjybyeg== + version "3.5.30" + resolved "https://registry.npmjs.org/@types/jquery/-/jquery-3.5.30.tgz" + integrity sha512-nbWKkkyb919DOUxjmRVk8vwtDb0/k8FKncmUKFi+NY+QXqWltooxTrswvz4LspQwxvLdvzBN1TImr6cw3aQx2A== dependencies: "@types/sizzle" "*" @@ -1000,6 +3040,11 @@ "@types/tough-cookie" "*" parse5 "^7.0.0" +"@types/json5@^0.0.29": + version "0.0.29" + resolved "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz" + integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== + "@types/long@^4.0.1": version "4.0.2" resolved "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz" @@ -1023,18 +3068,23 @@ "@types/node" "*" form-data "^4.0.0" -"@types/node@*", "@types/node@>=13.7.0": +"@types/node@*", "@types/node@>=13.7.0", "@types/node@20.3.0": version "20.3.0" resolved "https://registry.npmjs.org/@types/node/-/node-20.3.0.tgz" integrity sha512-cumHmIAf6On83X7yP+LrsEyUOf/YlociZelmpRYaGFydoaPdxdt80MAbu6vWerQT2COCp2nPvHdsbD7tHn/YlQ== "@types/node@^18.11.18": - version "18.19.24" - resolved "https://registry.npmjs.org/@types/node/-/node-18.19.24.tgz" - integrity sha512-eghAz3gnbQbvnHqB+mgB2ZR3aH6RhdEmHGS48BnV75KceQPHqabkxKI0BbUSsqhqy2Ddhc2xD/VAR9ySZd57Lw== + version "18.19.33" + resolved "https://registry.npmjs.org/@types/node/-/node-18.19.33.tgz" + integrity sha512-NR9+KrpSajr2qBVp/Yt5TU/rp+b5Mayi3+OlMlcg2cVCfRmcG5PWZ7S4+MG9PZ5gWBoc9Pd0BKSRViuBCRPu0A== dependencies: undici-types "~5.26.4" +"@types/pad-left@2.1.1": + version "2.1.1" + resolved "https://registry.npmjs.org/@types/pad-left/-/pad-left-2.1.1.tgz" + integrity sha512-Xd22WCRBydkGSApl5Bw0PhAOHKSVjNL3E3AwzKaps96IMraPqy5BvZIsBVK6JLwdybUzjHnuWVwpDd0JjTfHXA== + "@types/sizzle@*": version "2.3.8" resolved "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.8.tgz" @@ -1067,12 +3117,98 @@ dependencies: "@types/yargs-parser" "*" -"@xenova/transformers@^2.14.0": - version "2.16.0" - resolved "https://registry.npmjs.org/@xenova/transformers/-/transformers-2.16.0.tgz" - integrity sha512-UMlw9D9IHq8DSekl9J5DHB0SmEREHThqDZiMloexHoOqXF9wPLXe7Emiisqm9RPU6hKwTVAVFo2uPFxMoByF+w== +"@typescript-eslint/eslint-plugin@^7.8.0": + version "7.10.0" + resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.10.0.tgz" + integrity sha512-PzCr+a/KAef5ZawX7nbyNwBDtM1HdLIT53aSA2DDlxmxMngZ43O8SIePOeX8H5S+FHXeI6t97mTt/dDdzY4Fyw== + dependencies: + "@eslint-community/regexpp" "^4.10.0" + "@typescript-eslint/scope-manager" "7.10.0" + "@typescript-eslint/type-utils" "7.10.0" + "@typescript-eslint/utils" "7.10.0" + "@typescript-eslint/visitor-keys" "7.10.0" + graphemer "^1.4.0" + ignore "^5.3.1" + natural-compare "^1.4.0" + ts-api-utils "^1.3.0" + +"@typescript-eslint/parser@^7.0.0", "@typescript-eslint/parser@^7.8.0": + version "7.10.0" + resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.10.0.tgz" + integrity sha512-2EjZMA0LUW5V5tGQiaa2Gys+nKdfrn2xiTIBLR4fxmPmVSvgPcKNW+AE/ln9k0A4zDUti0J/GZXMDupQoI+e1w== dependencies: - "@huggingface/jinja" "^0.2.1" + "@typescript-eslint/scope-manager" "7.10.0" + "@typescript-eslint/types" "7.10.0" + "@typescript-eslint/typescript-estree" "7.10.0" + "@typescript-eslint/visitor-keys" "7.10.0" + debug "^4.3.4" + +"@typescript-eslint/scope-manager@7.10.0": + version "7.10.0" + resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.10.0.tgz" + integrity sha512-7L01/K8W/VGl7noe2mgH0K7BE29Sq6KAbVmxurj8GGaPDZXPr8EEQ2seOeAS+mEV9DnzxBQB6ax6qQQ5C6P4xg== + dependencies: + "@typescript-eslint/types" "7.10.0" + "@typescript-eslint/visitor-keys" "7.10.0" + +"@typescript-eslint/type-utils@7.10.0": + version "7.10.0" + resolved "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.10.0.tgz" + integrity sha512-D7tS4WDkJWrVkuzgm90qYw9RdgBcrWmbbRkrLA4d7Pg3w0ttVGDsvYGV19SH8gPR5L7OtcN5J1hTtyenO9xE9g== + dependencies: + "@typescript-eslint/typescript-estree" "7.10.0" + "@typescript-eslint/utils" "7.10.0" + debug "^4.3.4" + ts-api-utils "^1.3.0" + +"@typescript-eslint/types@7.10.0": + version "7.10.0" + resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.10.0.tgz" + integrity sha512-7fNj+Ya35aNyhuqrA1E/VayQX9Elwr8NKZ4WueClR3KwJ7Xx9jcCdOrLW04h51de/+gNbyFMs+IDxh5xIwfbNg== + +"@typescript-eslint/typescript-estree@7.10.0": + version "7.10.0" + resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.10.0.tgz" + integrity sha512-LXFnQJjL9XIcxeVfqmNj60YhatpRLt6UhdlFwAkjNc6jSUlK8zQOl1oktAP8PlWFzPQC1jny/8Bai3/HPuvN5g== + dependencies: + "@typescript-eslint/types" "7.10.0" + "@typescript-eslint/visitor-keys" "7.10.0" + debug "^4.3.4" + globby "^11.1.0" + is-glob "^4.0.3" + minimatch "^9.0.4" + semver "^7.6.0" + ts-api-utils "^1.3.0" + +"@typescript-eslint/utils@7.10.0": + version "7.10.0" + resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.10.0.tgz" + integrity sha512-olzif1Fuo8R8m/qKkzJqT7qwy16CzPRWBvERS0uvyc+DHd8AKbO4Jb7kpAvVzMmZm8TrHnI7hvjN4I05zow+tg== + dependencies: + "@eslint-community/eslint-utils" "^4.4.0" + "@typescript-eslint/scope-manager" "7.10.0" + "@typescript-eslint/types" "7.10.0" + "@typescript-eslint/typescript-estree" "7.10.0" + +"@typescript-eslint/visitor-keys@7.10.0": + version "7.10.0" + resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.10.0.tgz" + integrity sha512-9ntIVgsi6gg6FIq9xjEO4VQJvwOqA3jaBFQJ/6TK5AvEup2+cECI6Fh7QiBxmfMHXU0V0J4RyPeOU1VDNzl9cg== + dependencies: + "@typescript-eslint/types" "7.10.0" + eslint-visitor-keys "^3.4.3" + +"@ungap/structured-clone@^1.2.0": + version "1.2.0" + resolved "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz" + integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ== + +"@xenova/transformers@2.14.0": + version "2.14.0" + resolved "https://registry.npmjs.org/@xenova/transformers/-/transformers-2.14.0.tgz" + integrity sha512-rQ3O7SW5EM64b6XFZGx3XQ2cfiroefxUwU9ShfSpEZyhd082GvwNJJKndxgaukse1hZP1JUDoT0DfjDiq4IZiw== + dependencies: + "@huggingface/jinja" "^0.1.0" onnxruntime-web "1.14.0" sharp "^0.32.0" optionalDependencies: @@ -1095,6 +3231,16 @@ abort-controller@^3.0.0: dependencies: event-target-shim "^5.0.0" +acorn-jsx@^5.3.2: + version "5.3.2" + resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz" + integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== + +"acorn@^6.0.0 || ^7.0.0 || ^8.0.0", acorn@^8.9.0: + version "8.11.3" + resolved "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz" + integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg== + adf-to-md@^1.1.0: version "1.1.0" resolved "https://registry.npmjs.org/adf-to-md/-/adf-to-md-1.1.0.tgz" @@ -1102,7 +3248,7 @@ adf-to-md@^1.1.0: dependencies: eslint-config-nodebb "0.1.1" -agent-base@6, agent-base@^6.0.2: +agent-base@^6.0.2: version "6.0.2" resolved "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz" integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== @@ -1110,12 +3256,19 @@ agent-base@6, agent-base@^6.0.2: debug "4" agent-base@^7.0.2, agent-base@^7.1.0: - version "7.1.0" - resolved "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz" - integrity sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg== + version "7.1.1" + resolved "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz" + integrity sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA== dependencies: debug "^4.3.4" +agent-base@6: + version "6.0.2" + resolved "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz" + integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== + dependencies: + debug "4" + agentkeepalive@^4.1.3, agentkeepalive@^4.2.1: version "4.5.0" resolved "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.5.0.tgz" @@ -1131,7 +3284,7 @@ aggregate-error@^3.0.0: clean-stack "^2.0.0" indent-string "^4.0.0" -ajv@^6.12.3: +ajv@^6.12.3, ajv@^6.12.4: version "6.12.6" resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== @@ -1180,6 +3333,22 @@ anymatch@^3.0.3: normalize-path "^3.0.0" picomatch "^2.0.4" +apache-arrow@^14.0.2: + version "14.0.2" + resolved "https://registry.npmjs.org/apache-arrow/-/apache-arrow-14.0.2.tgz" + integrity sha512-EBO2xJN36/XoY81nhLcwCJgFwkboDZeyNQ+OPsG7bCoQjc2BT0aTyH/MR6SrL+LirSNz+cYqjGRlupMMlP1aEg== + dependencies: + "@types/command-line-args" "5.2.0" + "@types/command-line-usage" "5.0.2" + "@types/node" "20.3.0" + "@types/pad-left" "2.1.1" + command-line-args "5.2.1" + command-line-usage "7.0.1" + flatbuffers "23.5.26" + json-bignum "^0.0.3" + pad-left "^2.1.0" + tslib "^2.5.3" + "aproba@^1.0.3 || ^2.0.0": version "2.0.0" resolved "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz" @@ -1200,6 +3369,21 @@ argparse@^1.0.7: dependencies: sprintf-js "~1.0.2" +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + +array-back@^3.0.1, array-back@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz" + integrity sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q== + +array-back@^6.2.2: + version "6.2.2" + resolved "https://registry.npmjs.org/array-back/-/array-back-6.2.2.tgz" + integrity sha512-gUAZ7HPyb4SJczXAMUXMGAvI976JoK3qEx9v1FTmeYuJj0IBiaKttG1ydtGKdkfqWkIkouke7nG8ufGy77+Cvw== + array-buffer-byte-length@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz" @@ -1208,6 +3392,60 @@ array-buffer-byte-length@^1.0.1: call-bind "^1.0.5" is-array-buffer "^3.0.4" +array-includes@^3.1.7: + version "3.1.8" + resolved "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz" + integrity sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-object-atoms "^1.0.0" + get-intrinsic "^1.2.4" + is-string "^1.0.7" + +array-timsort@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/array-timsort/-/array-timsort-1.0.3.tgz" + integrity sha512-/+3GRL7dDAGEfM6TseQk/U+mi18TU2Ms9I3UlLdUMhz2hbvGNTKdj9xniwXfUqgYhHxRx0+8UnKkvlNwVU+cWQ== + +array-union@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz" + integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== + +array.prototype.findlastindex@^1.2.3: + version "1.2.5" + resolved "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz" + integrity sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-errors "^1.3.0" + es-object-atoms "^1.0.0" + es-shim-unscopables "^1.0.2" + +array.prototype.flat@^1.3.2: + version "1.3.2" + resolved "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz" + integrity sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + es-shim-unscopables "^1.0.0" + +array.prototype.flatmap@^1.3.2: + version "1.3.2" + resolved "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz" + integrity sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + es-shim-unscopables "^1.0.0" + arraybuffer.prototype.slice@^1.0.3: version "1.0.3" resolved "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz" @@ -1229,17 +3467,24 @@ asn1@~0.2.3: dependencies: safer-buffer "~2.1.0" -assert-plus@1.0.0, assert-plus@^1.0.0: +assert-plus@^1.0.0, assert-plus@1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz" integrity sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw== +async-mutex@^0.5.0: + version "0.5.0" + resolved "https://registry.npmjs.org/async-mutex/-/async-mutex-0.5.0.tgz" + integrity sha512-1A94B18jkJ3DYq284ohPxoXbfTA5HsQ7/Mf4DEhcyLx3Bz27Rh59iScbB6EPiP+B+joue6YCxcMXSbFC1tZKwA== + dependencies: + tslib "^2.4.0" + asynckit@^0.4.0: version "0.4.0" resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz" integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== -available-typed-arrays@^1.0.6, available-typed-arrays@^1.0.7: +available-typed-arrays@^1.0.7: version "1.0.7" resolved "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz" integrity sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ== @@ -1252,16 +3497,16 @@ aws-sign2@~0.7.0: integrity sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA== aws4@^1.8.0: - version "1.12.0" - resolved "https://registry.npmjs.org/aws4/-/aws4-1.12.0.tgz" - integrity sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg== + version "1.13.0" + resolved "https://registry.npmjs.org/aws4/-/aws4-1.13.0.tgz" + integrity sha512-3AungXC4I8kKsS9PuS4JH2nc+0bVY/mjgrephHTIi8fpEeGsTHBUJeosp0Wc1myYMElmD0B3Oc4XL/HVJ4PV2g== axios@^1.4.0, axios@^1.6.2, axios@^1.6.7: - version "1.6.7" - resolved "https://registry.npmjs.org/axios/-/axios-1.6.7.tgz" - integrity sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA== + version "1.7.1" + resolved "https://registry.npmjs.org/axios/-/axios-1.7.1.tgz" + integrity sha512-+LV37nQcd1EpFalkXksWNBiA17NZ5m5/WspmHGmZmdx1qBOg/VNq/c4eRJiA9VQQHBOs+N0ZhhdU10h2TyNK7Q== dependencies: - follow-redirects "^1.15.4" + follow-redirects "^1.15.6" form-data "^4.0.0" proxy-from-env "^1.1.0" @@ -1270,7 +3515,7 @@ b4a@^1.6.4: resolved "https://registry.npmjs.org/b4a/-/b4a-1.6.6.tgz" integrity sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg== -babel-jest@^29.7.0: +babel-jest@^29.0.0, babel-jest@^29.7.0: version "29.7.0" resolved "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz" integrity sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg== @@ -1299,10 +3544,34 @@ babel-plugin-jest-hoist@^29.6.3: resolved "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz" integrity sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg== dependencies: - "@babel/template" "^7.3.3" - "@babel/types" "^7.3.3" - "@types/babel__core" "^7.1.14" - "@types/babel__traverse" "^7.0.6" + "@babel/template" "^7.3.3" + "@babel/types" "^7.3.3" + "@types/babel__core" "^7.1.14" + "@types/babel__traverse" "^7.0.6" + +babel-plugin-polyfill-corejs2@^0.4.10: + version "0.4.11" + resolved "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.11.tgz" + integrity sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q== + dependencies: + "@babel/compat-data" "^7.22.6" + "@babel/helper-define-polyfill-provider" "^0.6.2" + semver "^6.3.1" + +babel-plugin-polyfill-corejs3@^0.10.4: + version "0.10.4" + resolved "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.4.tgz" + integrity sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.6.1" + core-js-compat "^3.36.1" + +babel-plugin-polyfill-regenerator@^0.6.1: + version "0.6.2" + resolved "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.2.tgz" + integrity sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.6.2" babel-preset-current-node-syntax@^1.0.0: version "1.0.1" @@ -1336,38 +3605,39 @@ balanced-match@^1.0.0: integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== bare-events@^2.0.0, bare-events@^2.2.0: - version "2.2.1" - resolved "https://registry.npmjs.org/bare-events/-/bare-events-2.2.1.tgz" - integrity sha512-9GYPpsPFvrWBkelIhOhTWtkeZxVxZOdb3VnFTCzlOo3OjvmTvzLoZFUT8kNFACx0vJej6QPney1Cf9BvzCNE/A== + version "2.2.2" + resolved "https://registry.npmjs.org/bare-events/-/bare-events-2.2.2.tgz" + integrity sha512-h7z00dWdG0PYOQEvChhOSWvOfkIKsdZGkWr083FgN/HyoQuebSew/cgirYqh9SCuy/hRvxc5Vy6Fw8xAmYHLkQ== bare-fs@^2.1.1: - version "2.2.2" - resolved "https://registry.npmjs.org/bare-fs/-/bare-fs-2.2.2.tgz" - integrity sha512-X9IqgvyB0/VA5OZJyb5ZstoN62AzD7YxVGog13kkfYWYqJYcK0kcqLZ6TrmH5qr4/8//ejVcX4x/a0UvaogXmA== + version "2.3.0" + resolved "https://registry.npmjs.org/bare-fs/-/bare-fs-2.3.0.tgz" + integrity sha512-TNFqa1B4N99pds2a5NYHR15o0ZpdNKbAeKTE/+G6ED/UeOavv8RY3dr/Fu99HW3zU3pXpo2kDNO8Sjsm2esfOw== dependencies: bare-events "^2.0.0" - bare-os "^2.0.0" bare-path "^2.0.0" - streamx "^2.13.0" + bare-stream "^1.0.0" -bare-os@^2.0.0, bare-os@^2.1.0: - version "2.2.1" - resolved "https://registry.npmjs.org/bare-os/-/bare-os-2.2.1.tgz" - integrity sha512-OwPyHgBBMkhC29Hl3O4/YfxW9n7mdTr2+SsO29XBWKKJsbgj3mnorDB80r5TiCQgQstgE5ga1qNYrpes6NvX2w== +bare-os@^2.1.0: + version "2.3.0" + resolved "https://registry.npmjs.org/bare-os/-/bare-os-2.3.0.tgz" + integrity sha512-oPb8oMM1xZbhRQBngTgpcQ5gXw6kjOaRsSWsIeNyRxGed2w/ARyP7ScBYpWR1qfX2E5rS3gBw6OWcSQo+s+kUg== bare-path@^2.0.0, bare-path@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/bare-path/-/bare-path-2.1.0.tgz" - integrity sha512-DIIg7ts8bdRKwJRJrUMy/PICEaQZaPGZ26lsSx9MJSwIhSrcdHn7/C8W+XmnG/rKi6BaRcz+JO00CjZteybDtw== + version "2.1.2" + resolved "https://registry.npmjs.org/bare-path/-/bare-path-2.1.2.tgz" + integrity sha512-o7KSt4prEphWUHa3QUwCxUI00R86VdjiuxmJK0iNVDHYPGo+HsDaVCnqCmPbf/MiW1ok8F4p3m8RTHlWk8K2ig== dependencies: bare-os "^2.1.0" -base-64@^0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/base-64/-/base-64-0.1.0.tgz" - integrity sha512-Y5gU45svrR5tI2Vt/X9GPd3L0HNIKzGu202EjxrXMpuc2V2CiKgemAbUUsqYmZJvPtCXoUKjNZwBJzsNScUbXA== +bare-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/bare-stream/-/bare-stream-1.0.0.tgz" + integrity sha512-KhNUoDL40iP4gFaLSsoGE479t0jHijfYdIcxRn/XtezA2BaUD0NRf/JGRpsMq6dMNM+SrCrB0YSSo/5wBY4rOQ== + dependencies: + streamx "^2.16.1" -base64-js@^1.3.1, base64-js@^1.5.1: +base64-js@^1.3.0, base64-js@^1.3.1, base64-js@^1.5.1: version "1.5.1" resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== @@ -1405,6 +3675,11 @@ boolbase@^1.0.0: resolved "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz" integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== +bowser@^2.11.0: + version "2.11.0" + resolved "https://registry.npmjs.org/bowser/-/bowser-2.11.0.tgz" + integrity sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA== + brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" @@ -1413,14 +3688,21 @@ brace-expansion@^1.1.7: balanced-match "^1.0.0" concat-map "0.0.1" -braces@^3.0.2: +brace-expansion@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz" + integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== + dependencies: + balanced-match "^1.0.0" + +braces@^3.0.3: version "3.0.3" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789" + resolved "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz" integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== dependencies: fill-range "^7.1.1" -browserslist@^4.22.2: +browserslist@^4.22.2, browserslist@^4.23.0, "browserslist@>= 4.21.0": version "4.23.0" resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz" integrity sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ== @@ -1449,11 +3731,6 @@ buffer-from@^1.0.0: resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz" integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== -buffer-writer@2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/buffer-writer/-/buffer-writer-2.0.0.tgz" - integrity sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw== - buffer@^5.5.0: version "5.7.1" resolved "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz" @@ -1521,15 +3798,22 @@ camelcase@^6.2.0: integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== caniuse-lite@^1.0.30001587: - version "1.0.30001597" - resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001597.tgz" - integrity sha512-7LjJvmQU6Sj7bL0j5b5WY/3n7utXUJvAe1lxhsHDbLmwX9mdL86Yjtr+5SRCyf8qME4M7pU2hswj0FpyBVCv9w== + version "1.0.30001620" + resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001620.tgz" + integrity sha512-WJvYsOjd1/BYUY6SNGUosK9DUidBPDTnOARHp3fSmFO1ekdxaY6nKRttEVrfMmYi80ctS0kz1wiWmm14fVc3ew== caseless@~0.12.0: version "0.12.0" resolved "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz" integrity sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw== +chalk-template@^0.4.0: + version "0.4.0" + resolved "https://registry.npmjs.org/chalk-template/-/chalk-template-0.4.0.tgz" + integrity sha512-/ghrgmhfY8RaSdeo43hNXxpoHAtxdbskUHjPpfqUWGttFgycUhYPGx3YZBCnUCvOa7Doivn1IZec3DEGFoMgLg== + dependencies: + chalk "^4.1.2" + chalk@^2.4.2: version "2.4.2" resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" @@ -1552,11 +3836,6 @@ char-regex@^1.0.2: resolved "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz" integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== -charenc@0.0.2: - version "0.0.2" - resolved "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz" - integrity sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA== - cheerio-select@^2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz" @@ -1598,9 +3877,9 @@ ci-info@^3.2.0: integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ== cjs-module-lexer@^1.0.0: - version "1.2.3" - resolved "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz" - integrity sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ== + version "1.3.1" + resolved "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.3.1.tgz" + integrity sha512-a3KdPAANPbNE4ZUv9h6LckSl9zLsYOP4MBmhIPkRaeyybt+r4UghLvq+xw/YwUcC1gqylCkL4rdVs3Lwupjm4Q== clean-stack@^2.0.0: version "2.2.0" @@ -1640,16 +3919,16 @@ color-convert@^2.0.1: dependencies: color-name "~1.1.4" -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" - integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== - color-name@^1.0.0, color-name@~1.1.4: version "1.1.4" resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== + color-string@^1.9.0: version "1.9.1" resolved "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz" @@ -1678,10 +3957,41 @@ combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: dependencies: delayed-stream "~1.0.0" +command-line-args@^5.2.1, command-line-args@5.2.1: + version "5.2.1" + resolved "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz" + integrity sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg== + dependencies: + array-back "^3.1.0" + find-replace "^3.0.0" + lodash.camelcase "^4.3.0" + typical "^4.0.0" + +command-line-usage@^7.0.0, command-line-usage@7.0.1: + version "7.0.1" + resolved "https://registry.npmjs.org/command-line-usage/-/command-line-usage-7.0.1.tgz" + integrity sha512-NCyznE//MuTjwi3y84QVUGEOT+P5oto1e1Pk/jFPVdPPfsG03qpTIl3yw6etR+v73d0lXsoojRpvbru2sqePxQ== + dependencies: + array-back "^6.2.2" + chalk-template "^0.4.0" + table-layout "^3.0.0" + typical "^7.1.1" + commander@^12.0.0: - version "12.0.0" - resolved "https://registry.npmjs.org/commander/-/commander-12.0.0.tgz" - integrity sha512-MwVNWlYjDTtOjX5PiD7o5pK0UrFU/OYgcJfjjK4RaHZETNtjJqrZa9Y9ds88+A+f+d5lv+561eZ+yCKoS3gbAA== + version "12.1.0" + resolved "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz" + integrity sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA== + +comment-json@^4.2.3: + version "4.2.3" + resolved "https://registry.npmjs.org/comment-json/-/comment-json-4.2.3.tgz" + integrity sha512-SsxdiOf064DWoZLH799Ata6u7iV658A11PlWtZATDlXPpKGJnbJZ5Z24ybixAi+LUUqJ/GKowAejtC5GFUG7Tw== + dependencies: + array-timsort "^1.0.3" + core-util-is "^1.0.3" + esprima "^4.0.1" + has-own-prop "^2.0.0" + repeat-string "^1.6.1" concat-map@0.0.1: version "0.0.1" @@ -1703,6 +4013,18 @@ convert-source-map@^2.0.0: resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz" integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== +core-js-compat@^3.31.0, core-js-compat@^3.36.1: + version "3.37.1" + resolved "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.37.1.tgz" + integrity sha512-9TNiImhKvQqSUkOvk/mMRZzOANTiEVC7WaBNhHcKM7x+/5E1l5NvsysR19zuDQScE8k+kfQXWRN3AtS/eOSHpg== + dependencies: + browserslist "^4.23.0" + +core-util-is@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz" + integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== + core-util-is@1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz" @@ -1721,7 +4043,7 @@ create-jest@^29.7.0: jest-util "^29.7.0" prompts "^2.0.1" -cross-spawn@^7.0.3: +cross-spawn@^7.0.2, cross-spawn@^7.0.3: version "7.0.3" resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz" integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== @@ -1730,11 +4052,6 @@ cross-spawn@^7.0.3: shebang-command "^2.0.0" which "^2.0.1" -crypt@0.0.2: - version "0.0.2" - resolved "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz" - integrity sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow== - css-select@^5.1.0: version "5.1.0" resolved "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz" @@ -1778,6 +4095,33 @@ data-urls@^5.0.0: whatwg-mimetype "^4.0.0" whatwg-url "^14.0.0" +data-view-buffer@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz" + integrity sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA== + dependencies: + call-bind "^1.0.6" + es-errors "^1.3.0" + is-data-view "^1.0.1" + +data-view-byte-length@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz" + integrity sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ== + dependencies: + call-bind "^1.0.7" + es-errors "^1.3.0" + is-data-view "^1.0.1" + +data-view-byte-offset@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz" + integrity sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA== + dependencies: + call-bind "^1.0.6" + es-errors "^1.3.0" + is-data-view "^1.0.1" + dbinfoz@^0.1.4: version "0.1.4" resolved "https://registry.npmjs.org/dbinfoz/-/dbinfoz-0.1.4.tgz" @@ -1787,7 +4131,14 @@ dbinfoz@^0.1.4: pg "^8.11.3" sqlite3 "^5.1.7" -debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4, debug@~4.3.1, debug@~4.3.2: +debug@^3.2.7: + version "3.2.7" + resolved "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz" + integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== + dependencies: + ms "^2.1.1" + +debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4, debug@~4.3.1, debug@~4.3.2, debug@4: version "4.3.4" resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== @@ -1807,15 +4158,20 @@ decompress-response@^6.0.0: mimic-response "^3.1.0" dedent@^1.0.0: - version "1.5.1" - resolved "https://registry.npmjs.org/dedent/-/dedent-1.5.1.tgz" - integrity sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg== + version "1.5.3" + resolved "https://registry.npmjs.org/dedent/-/dedent-1.5.3.tgz" + integrity sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ== deep-extend@^0.6.0: version "0.6.0" resolved "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz" integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== +deep-is@^0.1.3: + version "0.1.4" + resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz" + integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== + deepmerge@^4.2.2: version "4.3.1" resolved "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz" @@ -1830,7 +4186,7 @@ define-data-property@^1.0.1, define-data-property@^1.1.4: es-errors "^1.3.0" gopd "^1.0.1" -define-properties@^1.1.3, define-properties@^1.2.0, define-properties@^1.2.1: +define-properties@^1.2.0, define-properties@^1.2.1: version "1.2.1" resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz" integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg== @@ -1860,9 +4216,9 @@ deprecation@^2.0.0: integrity sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ== detect-libc@^2.0.0, detect-libc@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.2.tgz" - integrity sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw== + version "2.0.3" + resolved "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz" + integrity sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw== detect-newline@^3.0.0: version "3.1.0" @@ -1874,13 +4230,26 @@ diff-sequences@^29.6.3: resolved "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz" integrity sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q== -digest-fetch@^1.3.0: - version "1.3.0" - resolved "https://registry.npmjs.org/digest-fetch/-/digest-fetch-1.3.0.tgz" - integrity sha512-CGJuv6iKNM7QyZlM2T3sPAdZWd/p9zQiRNS9G+9COUCwzWFTs0Xp8NF5iePx7wtvhDykReiRRrSeNb4oMmB8lA== +dir-glob@^3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz" + integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== + dependencies: + path-type "^4.0.0" + +doctrine@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz" + integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== dependencies: - base-64 "^0.1.0" - md5 "^2.3.0" + esutils "^2.0.2" + +doctrine@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz" + integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== + dependencies: + esutils "^2.0.2" dom-serializer@^2.0.0: version "2.0.0" @@ -1912,7 +4281,7 @@ domutils@^3.0.1: domelementtype "^2.3.0" domhandler "^5.0.3" -dotenv@^16.3.1: +dotenv@^16.4.5: version "16.4.5" resolved "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz" integrity sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg== @@ -1926,9 +4295,9 @@ ecc-jsbn@~0.1.1: safer-buffer "^2.1.0" electron-to-chromium@^1.4.668: - version "1.4.705" - resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.705.tgz" - integrity sha512-LKqhpwJCLhYId2VVwEzFXWrqQI5n5zBppz1W9ehhTlfYU8CUUW6kClbN8LHF/v7flMgRdETS772nqywJ+ckVAw== + version "1.4.776" + resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.776.tgz" + integrity sha512-s694bi3+gUzlliqxjPHpa9NRTlhzTgB34aan+pVKZmOTGy2xoZXl+8E1B8i5p5rtev3PKMK/H4asgNejC+YHNg== emittery@^0.13.1: version "0.13.1" @@ -1940,7 +4309,7 @@ emoji-regex@^8.0.0: resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== -encoding@^0.1.12: +encoding@^0.1.0, encoding@^0.1.12: version "0.1.13" resolved "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz" integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== @@ -1992,17 +4361,21 @@ error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" -es-abstract@^1.22.1, es-abstract@^1.22.3: - version "1.22.5" - resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.5.tgz" - integrity sha512-oW69R+4q2wG+Hc3KZePPZxOiisRIqfKBVo/HLx94QcJeWGU/8sZhCvc829rd1kS366vlJbzBfXf9yWwf0+Ko7w== +es-abstract@^1.22.1, es-abstract@^1.22.3, es-abstract@^1.23.0, es-abstract@^1.23.2: + version "1.23.3" + resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz" + integrity sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A== dependencies: array-buffer-byte-length "^1.0.1" arraybuffer.prototype.slice "^1.0.3" available-typed-arrays "^1.0.7" call-bind "^1.0.7" + data-view-buffer "^1.0.1" + data-view-byte-length "^1.0.1" + data-view-byte-offset "^1.0.0" es-define-property "^1.0.0" es-errors "^1.3.0" + es-object-atoms "^1.0.0" es-set-tostringtag "^2.0.3" es-to-primitive "^1.2.1" function.prototype.name "^1.1.6" @@ -2013,10 +4386,11 @@ es-abstract@^1.22.1, es-abstract@^1.22.3: has-property-descriptors "^1.0.2" has-proto "^1.0.3" has-symbols "^1.0.3" - hasown "^2.0.1" + hasown "^2.0.2" internal-slot "^1.0.7" is-array-buffer "^3.0.4" is-callable "^1.2.7" + is-data-view "^1.0.1" is-negative-zero "^2.0.3" is-regex "^1.1.4" is-shared-array-buffer "^1.0.3" @@ -2027,17 +4401,17 @@ es-abstract@^1.22.1, es-abstract@^1.22.3: object-keys "^1.1.1" object.assign "^4.1.5" regexp.prototype.flags "^1.5.2" - safe-array-concat "^1.1.0" + safe-array-concat "^1.1.2" safe-regex-test "^1.0.3" - string.prototype.trim "^1.2.8" - string.prototype.trimend "^1.0.7" - string.prototype.trimstart "^1.0.7" + string.prototype.trim "^1.2.9" + string.prototype.trimend "^1.0.8" + string.prototype.trimstart "^1.0.8" typed-array-buffer "^1.0.2" typed-array-byte-length "^1.0.1" typed-array-byte-offset "^1.0.2" - typed-array-length "^1.0.5" + typed-array-length "^1.0.6" unbox-primitive "^1.0.2" - which-typed-array "^1.1.14" + which-typed-array "^1.1.15" es-define-property@^1.0.0: version "1.0.0" @@ -2051,6 +4425,13 @@ es-errors@^1.2.1, es-errors@^1.3.0: resolved "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz" integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== +es-object-atoms@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz" + integrity sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw== + dependencies: + es-errors "^1.3.0" + es-set-tostringtag@^2.0.3: version "2.0.3" resolved "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz" @@ -2060,6 +4441,13 @@ es-set-tostringtag@^2.0.3: has-tostringtag "^1.0.2" hasown "^2.0.1" +es-shim-unscopables@^1.0.0, es-shim-unscopables@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz" + integrity sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw== + dependencies: + hasown "^2.0.0" + es-to-primitive@^1.2.1: version "1.2.1" resolved "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz" @@ -2069,36 +4457,35 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" -esbuild@^0.19.11: - version "0.19.12" - resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.19.12.tgz" - integrity sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg== +esbuild@0.17.19: + version "0.17.19" + resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.17.19.tgz" + integrity sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw== optionalDependencies: - "@esbuild/aix-ppc64" "0.19.12" - "@esbuild/android-arm" "0.19.12" - "@esbuild/android-arm64" "0.19.12" - "@esbuild/android-x64" "0.19.12" - "@esbuild/darwin-arm64" "0.19.12" - "@esbuild/darwin-x64" "0.19.12" - "@esbuild/freebsd-arm64" "0.19.12" - "@esbuild/freebsd-x64" "0.19.12" - "@esbuild/linux-arm" "0.19.12" - "@esbuild/linux-arm64" "0.19.12" - "@esbuild/linux-ia32" "0.19.12" - "@esbuild/linux-loong64" "0.19.12" - "@esbuild/linux-mips64el" "0.19.12" - "@esbuild/linux-ppc64" "0.19.12" - "@esbuild/linux-riscv64" "0.19.12" - "@esbuild/linux-s390x" "0.19.12" - "@esbuild/linux-x64" "0.19.12" - "@esbuild/netbsd-x64" "0.19.12" - "@esbuild/openbsd-x64" "0.19.12" - "@esbuild/sunos-x64" "0.19.12" - "@esbuild/win32-arm64" "0.19.12" - "@esbuild/win32-ia32" "0.19.12" - "@esbuild/win32-x64" "0.19.12" - -escalade@^3.1.1: + "@esbuild/android-arm" "0.17.19" + "@esbuild/android-arm64" "0.17.19" + "@esbuild/android-x64" "0.17.19" + "@esbuild/darwin-arm64" "0.17.19" + "@esbuild/darwin-x64" "0.17.19" + "@esbuild/freebsd-arm64" "0.17.19" + "@esbuild/freebsd-x64" "0.17.19" + "@esbuild/linux-arm" "0.17.19" + "@esbuild/linux-arm64" "0.17.19" + "@esbuild/linux-ia32" "0.17.19" + "@esbuild/linux-loong64" "0.17.19" + "@esbuild/linux-mips64el" "0.17.19" + "@esbuild/linux-ppc64" "0.17.19" + "@esbuild/linux-riscv64" "0.17.19" + "@esbuild/linux-s390x" "0.17.19" + "@esbuild/linux-x64" "0.17.19" + "@esbuild/netbsd-x64" "0.17.19" + "@esbuild/openbsd-x64" "0.17.19" + "@esbuild/sunos-x64" "0.17.19" + "@esbuild/win32-arm64" "0.17.19" + "@esbuild/win32-ia32" "0.17.19" + "@esbuild/win32-x64" "0.17.19" + +escalade@^3.1.1, escalade@^3.1.2: version "3.1.2" resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz" integrity sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA== @@ -2113,6 +4500,11 @@ escape-string-regexp@^2.0.0: resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz" integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== +escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + eslint-config-airbnb-base@15.0.0: version "15.0.0" resolved "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz" @@ -2130,15 +4522,139 @@ eslint-config-nodebb@0.1.1: dependencies: eslint-config-airbnb-base "15.0.0" -esprima@^4.0.0: +eslint-import-resolver-node@^0.3.9: + version "0.3.9" + resolved "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz" + integrity sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g== + dependencies: + debug "^3.2.7" + is-core-module "^2.13.0" + resolve "^1.22.4" + +eslint-module-utils@^2.8.0: + version "2.8.1" + resolved "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.1.tgz" + integrity sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q== + dependencies: + debug "^3.2.7" + +eslint-plugin-import@^2.25.2, eslint-plugin-import@^2.29.1, eslint-plugin-import@2.x: + version "2.29.1" + resolved "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz" + integrity sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw== + dependencies: + array-includes "^3.1.7" + array.prototype.findlastindex "^1.2.3" + array.prototype.flat "^1.3.2" + array.prototype.flatmap "^1.3.2" + debug "^3.2.7" + doctrine "^2.1.0" + eslint-import-resolver-node "^0.3.9" + eslint-module-utils "^2.8.0" + hasown "^2.0.0" + is-core-module "^2.13.1" + is-glob "^4.0.3" + minimatch "^3.1.2" + object.fromentries "^2.0.7" + object.groupby "^1.0.1" + object.values "^1.1.7" + semver "^6.3.1" + tsconfig-paths "^3.15.0" + +eslint-scope@^7.2.2: + version "7.2.2" + resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz" + integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== + dependencies: + esrecurse "^4.3.0" + estraverse "^5.2.0" + +eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3: + version "3.4.3" + resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz" + integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== + +"eslint@^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8", "eslint@^6.0.0 || ^7.0.0 || >=8.0.0", "eslint@^7.32.0 || ^8.2.0", eslint@^8, eslint@^8.56.0, "eslint@7.x || 8.x": + version "8.57.0" + resolved "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz" + integrity sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ== + dependencies: + "@eslint-community/eslint-utils" "^4.2.0" + "@eslint-community/regexpp" "^4.6.1" + "@eslint/eslintrc" "^2.1.4" + "@eslint/js" "8.57.0" + "@humanwhocodes/config-array" "^0.11.14" + "@humanwhocodes/module-importer" "^1.0.1" + "@nodelib/fs.walk" "^1.2.8" + "@ungap/structured-clone" "^1.2.0" + ajv "^6.12.4" + chalk "^4.0.0" + cross-spawn "^7.0.2" + debug "^4.3.2" + doctrine "^3.0.0" + escape-string-regexp "^4.0.0" + eslint-scope "^7.2.2" + eslint-visitor-keys "^3.4.3" + espree "^9.6.1" + esquery "^1.4.2" + esutils "^2.0.2" + fast-deep-equal "^3.1.3" + file-entry-cache "^6.0.1" + find-up "^5.0.0" + glob-parent "^6.0.2" + globals "^13.19.0" + graphemer "^1.4.0" + ignore "^5.2.0" + imurmurhash "^0.1.4" + is-glob "^4.0.0" + is-path-inside "^3.0.3" + js-yaml "^4.1.0" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.4.1" + lodash.merge "^4.6.2" + minimatch "^3.1.2" + natural-compare "^1.4.0" + optionator "^0.9.3" + strip-ansi "^6.0.1" + text-table "^0.2.0" + +espree@^9.6.0, espree@^9.6.1: + version "9.6.1" + resolved "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz" + integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== + dependencies: + acorn "^8.9.0" + acorn-jsx "^5.3.2" + eslint-visitor-keys "^3.4.1" + +esprima@^4.0.0, esprima@^4.0.1: version "4.0.1" resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== -estree-walker@^2.0.1: - version "2.0.2" - resolved "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz" - integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== +esquery@^1.4.2: + version "1.5.0" + resolved "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz" + integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== + dependencies: + estraverse "^5.1.0" + +esrecurse@^4.3.0: + version "4.3.0" + resolved "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== + dependencies: + estraverse "^5.2.0" + +estraverse@^5.1.0, estraverse@^5.2.0: + version "5.3.0" + resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz" + integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== event-target-shim@^5.0.0: version "5.0.1" @@ -2191,12 +4707,17 @@ extend@~3.0.2: resolved "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz" integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== -extsprintf@1.3.0, extsprintf@^1.2.0: +extsprintf@^1.2.0, extsprintf@1.3.0: version "1.3.0" resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz" integrity sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g== -fast-deep-equal@^3.1.1: +fast-deep-equal@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz" + integrity sha512-bCK/2Z4zLidyB4ReuIsvALH6w31YfAQDmXMqMx6FyfHqvBxtjC0eRumeSu4Bs3XtXwpyIywtSTrVT99BxY1f9w== + +fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== @@ -2206,16 +4727,46 @@ fast-fifo@^1.1.0, fast-fifo@^1.2.0: resolved "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz" integrity sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ== -fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.0: +fast-glob@^3.2.9: + version "3.3.2" + resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz" + integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" + +fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.0, fast-json-stable-stringify@2.x: version "2.1.0" resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== +fast-levenshtein@^2.0.6: + version "2.0.6" + resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz" + integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== + +fast-xml-parser@4.2.5: + version "4.2.5" + resolved "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.2.5.tgz" + integrity sha512-B9/wizE4WngqQftFPmdaMYlXoJlJOYxGQOanC77fq9k8+Z0v5dDSVh+3glErdIROP//s/jgb7ZuxKfB8nVyo0g== + dependencies: + strnum "^1.0.5" + fastest-levenshtein@^1.0.16: version "1.0.16" resolved "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz" integrity sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg== +fastq@^1.6.0: + version "1.17.1" + resolved "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz" + integrity sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w== + dependencies: + reusify "^1.0.4" + fb-watchman@^2.0.0: version "2.0.2" resolved "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz" @@ -2231,6 +4782,13 @@ fetch-blob@^3.1.2, fetch-blob@^3.1.4: node-domexception "^1.0.0" web-streams-polyfill "^3.0.3" +file-entry-cache@^6.0.1: + version "6.0.1" + resolved "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz" + integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== + dependencies: + flat-cache "^3.0.4" + file-uri-to-path@1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz" @@ -2238,12 +4796,27 @@ file-uri-to-path@1.0.0: fill-range@^7.1.1: version "7.1.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292" + resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz" integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== dependencies: to-regex-range "^5.0.1" -find-up@^4.0.0, find-up@^4.1.0: +find-replace@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz" + integrity sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ== + dependencies: + array-back "^3.0.1" + +find-up@^4.0.0: + version "4.1.0" + resolved "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + +find-up@^4.1.0: version "4.1.0" resolved "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz" integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== @@ -2251,15 +4824,42 @@ find-up@^4.0.0, find-up@^4.1.0: locate-path "^5.0.0" path-exists "^4.0.0" +find-up@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== + dependencies: + locate-path "^6.0.0" + path-exists "^4.0.0" + +flat-cache@^3.0.4: + version "3.2.0" + resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz" + integrity sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw== + dependencies: + flatted "^3.2.9" + keyv "^4.5.3" + rimraf "^3.0.2" + flatbuffers@^1.12.0: version "1.12.0" resolved "https://registry.npmjs.org/flatbuffers/-/flatbuffers-1.12.0.tgz" integrity sha512-c7CZADjRcl6j0PlvFy0ZqXQ67qSEZfrVPynmnL+2zPc+NtMvrF8Y0QceMo7QqnSPc7+uWjUIAbvCQ5WIKlMVdQ== -follow-redirects@^1.15.4, follow-redirects@^1.15.5: - version "1.15.5" - resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.5.tgz" - integrity sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw== +flatbuffers@23.5.26: + version "23.5.26" + resolved "https://registry.npmjs.org/flatbuffers/-/flatbuffers-23.5.26.tgz" + integrity sha512-vE+SI9vrJDwi1oETtTIFldC/o9GsVKRM+s6EL0nQgxXlYV1Vc4Tk30hj4xGICftInKQKj1F3up2n8UbIVobISQ== + +flatted@^3.2.9: + version "3.3.1" + resolved "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz" + integrity sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw== + +follow-redirects@^1.15.5, follow-redirects@^1.15.6: + version "1.15.6" + resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz" + integrity sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA== for-each@^0.3.3: version "0.3.3" @@ -2426,6 +5026,20 @@ github-from-package@0.0.0: resolved "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz" integrity sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw== +glob-parent@^5.1.2: + version "5.1.2" + resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +glob-parent@^6.0.2: + version "6.0.2" + resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz" + integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== + dependencies: + is-glob "^4.0.3" + glob@^7.1.3, glob@^7.1.4: version "7.2.3" resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" @@ -2443,12 +5057,32 @@ globals@^11.1.0: resolved "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== +globals@^13.19.0: + version "13.24.0" + resolved "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz" + integrity sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ== + dependencies: + type-fest "^0.20.2" + globalthis@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz" - integrity sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA== + version "1.0.4" + resolved "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz" + integrity sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ== + dependencies: + define-properties "^1.2.1" + gopd "^1.0.1" + +globby@^11.1.0: + version "11.1.0" + resolved "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz" + integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== dependencies: - define-properties "^1.1.3" + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.2.9" + ignore "^5.2.0" + merge2 "^1.4.1" + slash "^3.0.0" gopd@^1.0.1: version "1.0.1" @@ -2457,11 +5091,16 @@ gopd@^1.0.1: dependencies: get-intrinsic "^1.1.3" -graceful-fs@^4.2.6, graceful-fs@^4.2.9: +graceful-fs@^4.1.11, graceful-fs@^4.2.6, graceful-fs@^4.2.9: version "4.2.11" resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz" integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== +graphemer@^1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz" + integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== + graphology-indices@^0.17.0: version "0.17.0" resolved "https://registry.npmjs.org/graphology-indices/-/graphology-indices-0.17.0.tgz" @@ -2480,15 +5119,20 @@ graphology-metrics@^2.2.0: mnemonist "^0.39.0" graphology-shortest-path@^2.0.0: - version "2.0.2" - resolved "https://registry.npmjs.org/graphology-shortest-path/-/graphology-shortest-path-2.0.2.tgz" - integrity sha512-hlGvh4Yb1Vmd2J7wT8Q8+t4RQ6Tx+9wRYm0/fZB9PZJ4uW3nml5kJ7yXZ2+JYWT+7wLLmY5mg3o9bLSAWmv/jQ== + version "2.1.0" + resolved "https://registry.npmjs.org/graphology-shortest-path/-/graphology-shortest-path-2.1.0.tgz" + integrity sha512-KbT9CTkP/u72vGEJzyRr24xFC7usI9Es3LMmCPHGwQ1KTsoZjxwA9lMKxfU0syvT/w+7fZUdB/Hu2wWYcJBm6Q== dependencies: "@yomguithereal/helpers" "^1.1.1" graphology-indices "^0.17.0" graphology-utils "^2.4.3" mnemonist "^0.39.0" +graphology-types@>=0.20.0, graphology-types@>=0.23.0, graphology-types@>=0.24.0: + version "0.24.7" + resolved "https://registry.npmjs.org/graphology-types/-/graphology-types-0.24.7.tgz" + integrity sha512-tdcqOOpwArNjEr0gNQKCXwaNCWnQJrog14nJNQPeemcLnXQUUGrsCWpWkVKt46zLjcS6/KGoayeJfHHyPDlvwA== + graphology-utils@^2.4.2, graphology-utils@^2.4.3, graphology-utils@^2.4.4: version "2.5.2" resolved "https://registry.npmjs.org/graphology-utils/-/graphology-utils-2.5.2.tgz" @@ -2507,7 +5151,7 @@ guid-typescript@^1.0.9: resolved "https://registry.npmjs.org/guid-typescript/-/guid-typescript-1.0.9.tgz" integrity sha512-Y8T4vYhEfwJOTbouREvG+3XDsjr8E3kIr7uf+JZ0BYloFsttiHU0WfvANVsR7TxNUJa/WpCnw/Ino/p+DeBhBQ== -handlebars@*, handlebars@^4.7.8: +handlebars@^4.7.8: version "4.7.8" resolved "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz" integrity sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ== @@ -2547,6 +5191,11 @@ has-flag@^4.0.0: resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== +has-own-prop@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/has-own-prop/-/has-own-prop-2.0.0.tgz" + integrity sha512-Pq0h+hvsVm6dDEa8x82GnLSYHOzNDt7f0ddFa3FqcQlgzEiptPqL+XrOJNavjOzSYiYWIrgeVYYgGlLmnxwilQ== + has-property-descriptors@^1.0.0, has-property-descriptors@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz" @@ -2564,7 +5213,7 @@ has-symbols@^1.0.2, has-symbols@^1.0.3: resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz" integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== -has-tostringtag@^1.0.0, has-tostringtag@^1.0.1, has-tostringtag@^1.0.2: +has-tostringtag@^1.0.0, has-tostringtag@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz" integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw== @@ -2576,7 +5225,7 @@ has-unicode@^2.0.1: resolved "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz" integrity sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ== -hasown@^2.0.0, hasown@^2.0.1: +hasown@^2.0.0, hasown@^2.0.1, hasown@^2.0.2: version "2.0.2" resolved "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz" integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== @@ -2669,7 +5318,7 @@ humanize-ms@^1.2.1: dependencies: ms "^2.0.0" -iconv-lite@0.6.3, iconv-lite@^0.6.2, iconv-lite@^0.6.3: +iconv-lite@^0.6.2, iconv-lite@^0.6.3, iconv-lite@0.6.3: version "0.6.3" resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz" integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== @@ -2681,11 +5330,19 @@ ieee754@^1.1.13, ieee754@^1.2.1: resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz" integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== -ignore@^5.3.1: +ignore@^5.2.0, ignore@^5.3.1: version "5.3.1" resolved "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz" integrity sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw== +import-fresh@^3.2.1: + version "3.3.0" + resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz" + integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + import-local@^3.0.2: version "3.1.0" resolved "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz" @@ -2717,7 +5374,7 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@^2.0.3, inherits@^2.0.4: +inherits@^2.0.3, inherits@^2.0.4, inherits@2: version "2.0.4" resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -2777,23 +5434,25 @@ is-boolean-object@^1.1.0: call-bind "^1.0.2" has-tostringtag "^1.0.0" -is-buffer@~1.1.6: - version "1.1.6" - resolved "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz" - integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== - is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: version "1.2.7" resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz" integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== -is-core-module@^2.13.0: +is-core-module@^2.13.0, is-core-module@^2.13.1: version "2.13.1" resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz" integrity sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw== dependencies: hasown "^2.0.0" +is-data-view@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz" + integrity sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w== + dependencies: + is-typed-array "^1.1.13" + is-date-object@^1.0.1: version "1.0.5" resolved "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz" @@ -2801,6 +5460,16 @@ is-date-object@^1.0.1: dependencies: has-tostringtag "^1.0.0" +is-electron@^2.2.0: + version "2.2.2" + resolved "https://registry.npmjs.org/is-electron/-/is-electron-2.2.2.tgz" + integrity sha512-FO/Rhvz5tuw4MCWkpMzHFKWD2LsfHzIb7i6MdPYZ/KW7AlxawyLkqdy+jPZP1WubqEADE3O4FUENlJHDfQASRg== + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== + is-fullwidth-code-point@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" @@ -2811,6 +5480,13 @@ is-generator-fn@^2.0.0: resolved "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz" integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3: + version "4.0.3" + resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + is-lambda@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz" @@ -2833,6 +5509,11 @@ is-number@^7.0.0: resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== +is-path-inside@^3.0.3: + version "3.0.3" + resolved "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz" + integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== + is-potential-custom-element-name@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz" @@ -3168,7 +5849,7 @@ jest-resolve-dependencies@^29.7.0: jest-regex-util "^29.6.3" jest-snapshot "^29.7.0" -jest-resolve@^29.7.0: +jest-resolve@*, jest-resolve@^29.7.0: version "29.7.0" resolved "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz" integrity sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA== @@ -3312,7 +5993,7 @@ jest-worker@^29.7.0: merge-stream "^2.0.0" supports-color "^8.0.0" -jest@^29.7.0: +jest@^29.0.0, jest@^29.7.0: version "29.7.0" resolved "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz" integrity sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw== @@ -3323,9 +6004,9 @@ jest@^29.7.0: jest-cli "^29.7.0" js-tiktoken@^1.0.8: - version "1.0.10" - resolved "https://registry.npmjs.org/js-tiktoken/-/js-tiktoken-1.0.10.tgz" - integrity sha512-ZoSxbGjvGyMT13x6ACo9ebhDha/0FHdKA+OsQcMOWcm1Zs7r90Rhk5lhERLzji+3rA7EKpXCgwXcM5fF3DMpdA== + version "1.0.12" + resolved "https://registry.npmjs.org/js-tiktoken/-/js-tiktoken-1.0.12.tgz" + integrity sha512-L7wURW1fH9Qaext0VzaUDpFGVQgjkdE3Dgsy9/+yXyGEpBKnylTd0mU0bfbNkKDlXRb6TEsZkwuflu1B8uQbJQ== dependencies: base64-js "^1.5.1" @@ -3342,16 +6023,23 @@ js-yaml@^3.13.1: argparse "^1.0.7" esprima "^4.0.0" -jsbn@1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz" - integrity sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A== +js-yaml@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" jsbn@~0.1.0: version "0.1.1" resolved "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz" integrity sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg== +jsbn@1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz" + integrity sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A== + jsdom@^24.0.0: version "24.0.0" resolved "https://registry.npmjs.org/jsdom/-/jsdom-24.0.0.tgz" @@ -3384,6 +6072,21 @@ jsesc@^2.5.1: resolved "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz" integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== +jsesc@~0.5.0: + version "0.5.0" + resolved "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz" + integrity sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA== + +json-bignum@^0.0.3: + version "0.0.3" + resolved "https://registry.npmjs.org/json-bignum/-/json-bignum-0.0.3.tgz" + integrity sha512-2WHyXj3OfHSgNyuzDbSxI1w2jgw5gkWSWhS7Qg4bWXx1nLk3jnbwfUeS0PSba3IzpTUWdHxBieELUzXRjQB2zg== + +json-buffer@3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz" + integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== + json-parse-even-better-errors@^2.3.0: version "2.3.1" resolved "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz" @@ -3399,11 +6102,23 @@ json-schema@0.4.0: resolved "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz" integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA== +json-stable-stringify-without-jsonify@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz" + integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== + json-stringify-safe@~5.0.1: version "5.0.1" resolved "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== +json5@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz" + integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== + dependencies: + minimist "^1.2.0" + json5@^2.2.3: version "2.2.3" resolved "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz" @@ -3419,26 +6134,59 @@ jsprim@^1.2.2: json-schema "0.4.0" verror "1.10.0" +keyv@^4.5.3: + version "4.5.4" + resolved "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz" + integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== + dependencies: + json-buffer "3.0.1" + kleur@^3.0.3: version "3.0.3" resolved "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz" integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== +launchdarkly-eventsource@2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/launchdarkly-eventsource/-/launchdarkly-eventsource-2.0.2.tgz" + integrity sha512-9Aj5KgtbV5E7XGA74Z7Ui2fSwyeNlkGtbPkdTsPOQBzT7/3ZNtOjplg+HWhNMtsM2B9orFebTy3XBGxidyHbQg== + +launchdarkly-js-sdk-common@5.2.0: + version "5.2.0" + resolved "https://registry.npmjs.org/launchdarkly-js-sdk-common/-/launchdarkly-js-sdk-common-5.2.0.tgz" + integrity sha512-aLv2ZrUv229RIwLtFhdILu2aJS/fqGSJzTk4L/bCDZA8RuIh7PutI3ui/AJeNnzPzjKzdEQZw6wVhkVc84baog== + dependencies: + base64-js "^1.3.0" + fast-deep-equal "^2.0.1" + uuid "^8.0.0" + +launchdarkly-node-client-sdk@^3.2.0: + version "3.2.0" + resolved "https://registry.npmjs.org/launchdarkly-node-client-sdk/-/launchdarkly-node-client-sdk-3.2.0.tgz" + integrity sha512-S4WGbf0r1xtU9fAkjGSjRk95N01uSzIE+vWvpio8tMIxKB04nRMMig1pXdtI1OWgz6MRalTDYeCdcIF55TZ9HQ== + dependencies: + launchdarkly-eventsource "2.0.2" + launchdarkly-js-sdk-common "5.2.0" + node-localstorage "^1.3.1" + leven@^3.1.0: version "3.1.0" resolved "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz" integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== +levn@^0.4.1: + version "0.4.1" + resolved "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz" + integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== + dependencies: + prelude-ls "^1.2.1" + type-check "~0.4.0" + lines-and-columns@^1.1.6: version "1.2.4" resolved "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz" integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== -llama-tokenizer-js@^1.1.3: - version "1.1.3" - resolved "https://registry.npmjs.org/llama-tokenizer-js/-/llama-tokenizer-js-1.1.3.tgz" - integrity sha512-+BUgsLCXVQJkjiD/t7PdESLn+yXJIRX/BJfwzVVYfKZ9aN3gsP9xoadBZxKnCxGz2Slby+S7x41gUr2TKNaS4Q== - llm-code-highlighter@^0.0.14: version "0.0.14" resolved "https://registry.npmjs.org/llm-code-highlighter/-/llm-code-highlighter-0.0.14.tgz" @@ -3457,11 +6205,38 @@ locate-path@^5.0.0: dependencies: p-locate "^4.1.0" +locate-path@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz" + integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== + dependencies: + p-locate "^5.0.0" + +lodash.assignwith@^4.2.0: + version "4.2.0" + resolved "https://registry.npmjs.org/lodash.assignwith/-/lodash.assignwith-4.2.0.tgz" + integrity sha512-ZznplvbvtjK2gMvnQ1BR/zqPFZmS6jbK4p+6Up4xcRYA7yMIwxHCfbTcrYxXKzzqLsQ05eJPVznEW3tuwV7k1g== + +lodash.camelcase@^4.3.0: + version "4.3.0" + resolved "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz" + integrity sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA== + +lodash.debounce@^4.0.8: + version "4.0.8" + resolved "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz" + integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== + lodash.memoize@4.x: version "4.1.2" resolved "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz" integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag== +lodash.merge@^4.6.2: + version "4.6.2" + resolved "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz" + integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== + lodash@^4.17.21: version "4.17.21" resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" @@ -3501,6 +6276,21 @@ lru-cache@^8.0.0: resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-8.0.5.tgz" integrity sha512-MhWWlVnuab1RG5/zMRRcVGXZLCXrZTgfwMikgzCegsPnG62yDQo5JnqKkrK4jO5iKqDAZGItAqN5CtKBCBWRUA== +mac-ca@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/mac-ca/-/mac-ca-3.1.0.tgz" + integrity sha512-ts8slRarTfSQhtEYRVRjfLMEOsvFBtZdlnI6jvqAcWAS8dSQwyrcACkFz5GvV4bshe3WAOcPHwN8fuovdqsxOQ== + dependencies: + node-forge "^1.3.1" + undici "^6.16.1" + +make-dir@^1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz" + integrity sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ== + dependencies: + pify "^3.0.0" + make-dir@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz" @@ -3542,27 +6332,23 @@ makeerror@1.0.12: dependencies: tmpl "1.0.5" -md5@^2.3.0: - version "2.3.0" - resolved "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz" - integrity sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g== - dependencies: - charenc "0.0.2" - crypt "0.0.2" - is-buffer "~1.1.6" - merge-stream@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz" integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== +merge2@^1.3.0, merge2@^1.4.1: + version "1.4.1" + resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + micromatch@^4.0.4: - version "4.0.5" - resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz" - integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== + version "4.0.6" + resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.6.tgz" + integrity sha512-Y4Ypn3oujJYxJcMacVgcs92wofTHxp9FzfDpQON4msDefoC0lb3ETvQLOdLcbhSwU1bz8HrL/1sygfBIHudrkQ== dependencies: - braces "^3.0.2" - picomatch "^2.3.1" + braces "^3.0.3" + picomatch "^4.0.2" mime-db@1.52.0: version "1.52.0" @@ -3586,14 +6372,42 @@ mimic-response@^3.1.0: resolved "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz" integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== -minimatch@^3.0.4, minimatch@^3.1.1: +minimatch@^3.0.4: version "3.1.2" resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== dependencies: brace-expansion "^1.1.7" -minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.5: +minimatch@^3.0.5: + version "3.1.2" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + +minimatch@^3.1.1: + version "3.1.2" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + +minimatch@^3.1.2: + version "3.1.2" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + +minimatch@^9.0.4: + version "9.0.4" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz" + integrity sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw== + dependencies: + brace-expansion "^2.0.1" + +minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.5, minimist@^1.2.6: version "1.2.8" resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz" integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== @@ -3674,15 +6488,15 @@ mnemonist@^0.39.0: dependencies: obliterator "^2.0.1" -ms@2.1.2, ms@^2.0.0: +ms@^2.0.0, ms@^2.1.1, ms@2.1.2: version "2.1.2" resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== mysql2@^3.9.1: - version "3.10.1" - resolved "https://registry.yarnpkg.com/mysql2/-/mysql2-3.10.1.tgz#c39b8faf24ef4fd56330ef269122471a22d19198" - integrity sha512-6zo1T3GILsXMCex3YEu7hCz2OXLUarxFsxvFcUHWMpkPtmZLeTTWgRdc1gWyNJiYt6AxITmIf9bZDRy/jAfWew== + version "3.9.7" + resolved "https://registry.npmjs.org/mysql2/-/mysql2-3.9.7.tgz" + integrity sha512-KnJT8vYRcNAZv73uf9zpXqNbvBG7DJrs+1nACsjZP1HMJ1TgXEy8wnNilXAn/5i57JizXKtrUtwDB7HxT9DDpw== dependencies: denque "^2.1.0" generate-function "^2.3.1" @@ -3721,9 +6535,9 @@ neo-async@^2.6.2: integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== node-abi@^3.3.0: - version "3.56.0" - resolved "https://registry.npmjs.org/node-abi/-/node-abi-3.56.0.tgz" - integrity sha512-fZjdhDOeRcaS+rcpve7XuwHBmktS1nS1gzgghwKUQQ8nTy2FdSDr6ZT8k6YhvlJeHmmQMYiT/IH9hfco5zeW2Q== + version "3.62.0" + resolved "https://registry.npmjs.org/node-abi/-/node-abi-3.62.0.tgz" + integrity sha512-CPMcGa+y33xuL1E0TcNIu4YyaZCxnnvkVaEXrsosR3FxN+fV8xvb7Mzpb7IgKler10qeMkE6+Dp8qJhpzdq35g== dependencies: semver "^7.3.5" @@ -3737,7 +6551,7 @@ node-addon-api@^7.0.0: resolved "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.0.tgz" integrity sha512-mNcltoe1R8o7STTegSOHdnJNN7s5EUvhoS7ShnTHDyOSd+8H+UdWODq6qSv67PjC8Zc5JRT8+oLAMCr0SIXw7g== -node-domexception@1.0.0, node-domexception@^1.0.0: +node-domexception@^1.0.0, node-domexception@1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz" integrity sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ== @@ -3758,6 +6572,11 @@ node-fetch@^3.3.2: fetch-blob "^3.1.4" formdata-polyfill "^4.0.10" +node-forge@^1.2.1, node-forge@^1.3.1: + version "1.3.1" + resolved "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz" + integrity sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA== + node-gyp@8.x: version "8.4.1" resolved "https://registry.npmjs.org/node-gyp/-/node-gyp-8.4.1.tgz" @@ -3782,9 +6601,9 @@ node-html-markdown@^1.3.0: node-html-parser "^6.1.1" node-html-parser@^6.1.1: - version "6.1.12" - resolved "https://registry.npmjs.org/node-html-parser/-/node-html-parser-6.1.12.tgz" - integrity sha512-/bT/Ncmv+fbMGX96XG9g05vFt43m/+SYKIs9oAemQVYyVcZmDAI2Xq/SbNcpOA35eF0Zk2av3Ksf+Xk8Vt8abA== + version "6.1.13" + resolved "https://registry.npmjs.org/node-html-parser/-/node-html-parser-6.1.13.tgz" + integrity sha512-qIsTMOY4C/dAa5Q5vsobRpOOvPfC4pB61UVW2uSwZNUp0QU/jCekTal1vMmbO0DgdHeLUJpv/ARmDqErVxA3Sg== dependencies: css-select "^5.1.0" he "1.2.0" @@ -3794,6 +6613,13 @@ node-int64@^0.4.0: resolved "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz" integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw== +node-localstorage@^1.3.1: + version "1.3.1" + resolved "https://registry.npmjs.org/node-localstorage/-/node-localstorage-1.3.1.tgz" + integrity sha512-NMWCSWWc6JbHT5PyWlNT2i8r7PgGYXVntmKawY83k/M0UJScZ5jirb61TLnqKwd815DfBQu+lR3sRw08SPzIaQ== + dependencies: + write-file-atomic "^1.1.4" + node-releases@^2.0.14: version "2.0.14" resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz" @@ -3836,9 +6662,9 @@ nth-check@^2.0.1: boolbase "^1.0.0" nwsapi@^2.2.7: - version "2.2.7" - resolved "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.7.tgz" - integrity sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ== + version "2.2.10" + resolved "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.10.tgz" + integrity sha512-QK0sRs7MKv0tKe1+5uZIQk/C8XGza4DAnztJG8iD+TpJIORARrCxczA738awHrZoHeTjSSoHqao2teO0dC/gFQ== oauth-sign@~0.9.0: version "0.9.0" @@ -3866,13 +6692,41 @@ object.assign@^4.1.2, object.assign@^4.1.5: object-keys "^1.1.1" object.entries@^1.1.5: - version "1.1.7" - resolved "https://registry.npmjs.org/object.entries/-/object.entries-1.1.7.tgz" - integrity sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA== + version "1.1.8" + resolved "https://registry.npmjs.org/object.entries/-/object.entries-1.1.8.tgz" + integrity sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ== dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" + call-bind "^1.0.7" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" + +object.fromentries@^2.0.7: + version "2.0.8" + resolved "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz" + integrity sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-object-atoms "^1.0.0" + +object.groupby@^1.0.1: + version "1.0.3" + resolved "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz" + integrity sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + +object.values@^1.1.7: + version "1.2.0" + resolved "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz" + integrity sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" obliterator@^2.0.1, obliterator@^2.0.2: version "2.0.4" @@ -3907,7 +6761,7 @@ onnx-proto@^4.0.4: dependencies: protobufjs "^6.8.8" -onnxruntime-common@~1.14.0: +onnxruntime-common@~1.14.0, onnxruntime-common@1.14.0: version "1.14.0" resolved "https://registry.npmjs.org/onnxruntime-common/-/onnxruntime-common-1.14.0.tgz" integrity sha512-3LJpegM2iMNRX2wUmtYfeX/ytfOzNwAWKSq1HbRrKc9+uqG/FsEA0bbKZl1btQeZaXhC26l44NWpNUeXPII7Ew== @@ -3932,20 +6786,31 @@ onnxruntime-web@1.14.0: platform "^1.3.6" openai@^4.20.1: - version "4.28.4" - resolved "https://registry.npmjs.org/openai/-/openai-4.28.4.tgz" - integrity sha512-RNIwx4MT/F0zyizGcwS+bXKLzJ8QE9IOyigDG/ttnwB220d58bYjYFp0qjvGwEFBO6+pvFVIDABZPGDl46RFsg== + version "4.47.1" + resolved "https://registry.npmjs.org/openai/-/openai-4.47.1.tgz" + integrity sha512-WWSxhC/69ZhYWxH/OBsLEirIjUcfpQ5+ihkXKp06hmeYXgBBIUCa9IptMzYx6NdkiOCsSGYCnTIsxaic3AjRCQ== dependencies: "@types/node" "^18.11.18" "@types/node-fetch" "^2.6.4" abort-controller "^3.0.0" agentkeepalive "^4.2.1" - digest-fetch "^1.3.0" form-data-encoder "1.7.2" formdata-node "^4.3.2" node-fetch "^2.6.7" web-streams-polyfill "^3.2.1" +optionator@^0.9.3: + version "0.9.4" + resolved "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz" + integrity sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g== + dependencies: + deep-is "^0.1.3" + fast-levenshtein "^2.0.6" + levn "^0.4.1" + prelude-ls "^1.2.1" + type-check "^0.4.0" + word-wrap "^1.2.5" + p-limit@^2.2.0: version "2.3.0" resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz" @@ -3953,7 +6818,7 @@ p-limit@^2.2.0: dependencies: p-try "^2.0.0" -p-limit@^3.1.0: +p-limit@^3.0.2, p-limit@^3.1.0: version "3.1.0" resolved "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz" integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== @@ -3967,6 +6832,13 @@ p-locate@^4.1.0: dependencies: p-limit "^2.2.0" +p-locate@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz" + integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== + dependencies: + p-limit "^3.0.2" + p-map@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz" @@ -3979,10 +6851,19 @@ p-try@^2.0.0: resolved "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== -packet-reader@1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/packet-reader/-/packet-reader-1.0.0.tgz" - integrity sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ== +pad-left@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/pad-left/-/pad-left-2.1.0.tgz" + integrity sha512-HJxs9K9AztdIQIAIa/OIazRAUW/L6B9hbQDxO4X07roW3eo9XqZc2ur9bn1StH9CnbbI9EgvejHQX7CBpCF1QA== + dependencies: + repeat-string "^1.5.4" + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" parse-json@^5.2.0: version "5.2.0" @@ -4029,6 +6910,11 @@ path-parse@^1.0.7: resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + performance-now@^2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz" @@ -4039,25 +6925,25 @@ pg-cloudflare@^1.1.1: resolved "https://registry.npmjs.org/pg-cloudflare/-/pg-cloudflare-1.1.1.tgz" integrity sha512-xWPagP/4B6BgFO+EKz3JONXv3YDgvkbVrGw2mTo3D6tVDQRh1e7cqVGvyR3BE+eQgAvx1XhW/iEASj4/jCWl3Q== -pg-connection-string@^2.6.2: - version "2.6.2" - resolved "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.6.2.tgz" - integrity sha512-ch6OwaeaPYcova4kKZ15sbJ2hKb/VP48ZD2gE7i1J+L4MspCtBMAx8nMgz7bksc7IojCIIWuEhHibSMFH8m8oA== +pg-connection-string@^2.6.4: + version "2.6.4" + resolved "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.6.4.tgz" + integrity sha512-v+Z7W/0EO707aNMaAEfiGnGL9sxxumwLl2fJvCQtMn9Fxsg+lPpPkdcyBSv/KFgpGdYkMfn+EI1Or2EHjpgLCA== pg-int8@1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz" integrity sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw== -pg-pool@^3.6.1: - version "3.6.1" - resolved "https://registry.npmjs.org/pg-pool/-/pg-pool-3.6.1.tgz" - integrity sha512-jizsIzhkIitxCGfPRzJn1ZdcosIt3pz9Sh3V01fm1vZnbnCMgmGl5wvGGdNN2EL9Rmb0EcFoCkixH4Pu+sP9Og== +pg-pool@^3.6.2: + version "3.6.2" + resolved "https://registry.npmjs.org/pg-pool/-/pg-pool-3.6.2.tgz" + integrity sha512-Htjbg8BlwXqSBQ9V8Vjtc+vzf/6fVUuak/3/XXKA9oxZprwW3IMDQTGHP+KDmVL7rtd+R1QjbnCFPuTHm3G4hg== -pg-protocol@^1.6.0: - version "1.6.0" - resolved "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.6.0.tgz" - integrity sha512-M+PDm637OY5WM307051+bsDia5Xej6d9IR4GwJse1qA1DIhiKlksvrneZOYQq42OM+spubpcNYEo2FcKQrDk+Q== +pg-protocol@^1.6.1: + version "1.6.1" + resolved "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.6.1.tgz" + integrity sha512-jPIlvgoD63hrEuihvIg+tJhoGjUsLPn6poJY9N5CnlPd91c2T18T/9zBtLxZSb1EhYxBRoZJtzScCaWlYLtktg== pg-types@^2.1.0: version "2.2.0" @@ -4070,16 +6956,14 @@ pg-types@^2.1.0: postgres-date "~1.0.4" postgres-interval "^1.1.0" -pg@^8.11.3: - version "8.11.3" - resolved "https://registry.npmjs.org/pg/-/pg-8.11.3.tgz" - integrity sha512-+9iuvG8QfaaUrrph+kpF24cXkH1YOOUeArRNYIxq1viYHZagBxrTno7cecY1Fa44tJeZvaoG+Djpkc3JwehN5g== - dependencies: - buffer-writer "2.0.0" - packet-reader "1.0.0" - pg-connection-string "^2.6.2" - pg-pool "^3.6.1" - pg-protocol "^1.6.0" +pg@^8.11.3, pg@>=8.0: + version "8.11.5" + resolved "https://registry.npmjs.org/pg/-/pg-8.11.5.tgz" + integrity sha512-jqgNHSKL5cbDjFlHyYsCXmQDrfIX/3RsNwYqpd4N0Kt8niLuNoRNH+aazv6cOd43gPh9Y4DjQCtb+X0MH0Hvnw== + dependencies: + pg-connection-string "^2.6.4" + pg-pool "^3.6.2" + pg-protocol "^1.6.1" pg-types "^2.1.0" pgpass "1.x" optionalDependencies: @@ -4092,16 +6976,26 @@ pgpass@1.x: dependencies: split2 "^4.1.0" -picocolors@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz" - integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== +picocolors@^1.0.0, picocolors@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz" + integrity sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew== -picomatch@^2.0.4, picomatch@^2.2.2, picomatch@^2.2.3, picomatch@^2.3.1: +picomatch@^2.0.4, picomatch@^2.2.3: version "2.3.1" resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== +picomatch@^4.0.2: + version "4.0.2" + resolved "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz" + integrity sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg== + +pify@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz" + integrity sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg== + pirates@^4.0.4: version "4.0.6" resolved "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz" @@ -4146,7 +7040,7 @@ postgres-interval@^1.1.0: dependencies: xtend "^4.0.0" -posthog-node@^3.6.2: +posthog-node@^3.6.3: version "3.6.3" resolved "https://registry.npmjs.org/posthog-node/-/posthog-node-3.6.3.tgz" integrity sha512-JB+ei0LkwE+rKHyW5z79Nd1jUaGxU6TvkfjFqY9vQaHxU5aU8dRl0UUaEmZdZbHwjp3WmXCBQQRNyimwbNQfCw== @@ -4172,6 +7066,11 @@ prebuild-install@^7.1.1: tar-fs "^2.0.0" tunnel-agent "^0.6.0" +prelude-ls@^1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz" + integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== + pretty-format@^29.0.0, pretty-format@^29.7.0: version "29.7.0" resolved "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz" @@ -4250,9 +7149,9 @@ punycode@^2.1.0, punycode@^2.1.1, punycode@^2.3.1: integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== pure-rand@^6.0.0: - version "6.0.4" - resolved "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.4.tgz" - integrity sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA== + version "6.1.0" + resolved "https://registry.npmjs.org/pure-rand/-/pure-rand-6.1.0.tgz" + integrity sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA== qs@~6.5.2: version "6.5.3" @@ -4264,6 +7163,11 @@ querystringify@^2.1.1: resolved "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz" integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== +queue-microtask@^1.2.2: + version "1.2.3" + resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== + queue-tick@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz" @@ -4280,9 +7184,36 @@ rc@^1.2.7: strip-json-comments "~2.0.1" react-is@^18.0.0: - version "18.2.0" - resolved "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz" - integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w== + version "18.3.1" + resolved "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz" + integrity sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg== + +readable-stream@^3.1.1: + version "3.6.2" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz" + integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readable-stream@^3.4.0: + version "3.6.2" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz" + integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readable-stream@^3.6.0: + version "3.6.2" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz" + integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" readable-stream@>=4.0.0: version "4.5.2" @@ -4295,14 +7226,29 @@ readable-stream@>=4.0.0: process "^0.11.10" string_decoder "^1.3.0" -readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0: - version "3.6.2" - resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz" - integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== +regenerate-unicode-properties@^10.1.0: + version "10.1.1" + resolved "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz" + integrity sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q== dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" + regenerate "^1.4.2" + +regenerate@^1.4.2: + version "1.4.2" + resolved "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz" + integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== + +regenerator-runtime@^0.14.0: + version "0.14.1" + resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz" + integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw== + +regenerator-transform@^0.15.2: + version "0.15.2" + resolved "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz" + integrity sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg== + dependencies: + "@babel/runtime" "^7.8.4" regexp.prototype.flags@^1.5.2: version "1.5.2" @@ -4314,6 +7260,30 @@ regexp.prototype.flags@^1.5.2: es-errors "^1.3.0" set-function-name "^2.0.1" +regexpu-core@^5.3.1: + version "5.3.2" + resolved "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz" + integrity sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ== + dependencies: + "@babel/regjsgen" "^0.8.0" + regenerate "^1.4.2" + regenerate-unicode-properties "^10.1.0" + regjsparser "^0.9.1" + unicode-match-property-ecmascript "^2.0.0" + unicode-match-property-value-ecmascript "^2.1.0" + +regjsparser@^0.9.1: + version "0.9.1" + resolved "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz" + integrity sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ== + dependencies: + jsesc "~0.5.0" + +repeat-string@^1.5.4, repeat-string@^1.6.1: + version "1.6.1" + resolved "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz" + integrity sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w== + replicate@^0.26.0: version "0.26.0" resolved "https://registry.npmjs.org/replicate/-/replicate-0.26.0.tgz" @@ -4364,6 +7334,11 @@ resolve-cwd@^3.0.0: dependencies: resolve-from "^5.0.0" +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + resolve-from@^5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz" @@ -4374,7 +7349,7 @@ resolve.exports@^2.0.0: resolved "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz" integrity sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg== -resolve@^1.20.0: +resolve@^1.14.2, resolve@^1.20.0, resolve@^1.22.4: version "1.22.8" resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz" integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== @@ -4388,6 +7363,11 @@ retry@^0.12.0: resolved "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz" integrity sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow== +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + rimraf@^3.0.2: version "3.0.2" resolved "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz" @@ -4400,12 +7380,19 @@ rrweb-cssom@^0.6.0: resolved "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.6.0.tgz" integrity sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw== +run-parallel@^1.1.9: + version "1.2.0" + resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz" + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== + dependencies: + queue-microtask "^1.2.2" + rusha@^0.8.14: version "0.8.14" resolved "https://registry.npmjs.org/rusha/-/rusha-0.8.14.tgz" integrity sha512-cLgakCUf6PedEu15t8kbsjnwIFFR2D4RfL+W3iWFJ4iac7z4B0ZI8fxy4R3J956kAI68HclCFGL8MPoUVC3qVA== -safe-array-concat@^1.1.0: +safe-array-concat@^1.1.2: version "1.1.2" resolved "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz" integrity sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q== @@ -4429,7 +7416,7 @@ safe-regex-test@^1.0.3: es-errors "^1.3.0" is-regex "^1.1.4" -"safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: +safer-buffer@^2.0.2, safer-buffer@^2.1.0, "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@~2.1.0: version "2.1.2" resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== @@ -4441,17 +7428,20 @@ saxes@^6.0.0: dependencies: xmlchars "^2.2.0" -semver@^6.3.0, semver@^6.3.1: +semver@^6.3.0: version "6.3.1" resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -semver@^7.3.5, semver@^7.5.3, semver@^7.5.4: - version "7.6.0" - resolved "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz" - integrity sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg== - dependencies: - lru-cache "^6.0.0" +semver@^6.3.1: + version "6.3.1" + resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz" + integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== + +semver@^7.3.5, semver@^7.5.3, semver@^7.5.4, semver@^7.6.0: + version "7.6.2" + resolved "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz" + integrity sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w== seq-queue@^0.0.5: version "0.0.5" @@ -4557,15 +7547,20 @@ slash@^3.0.0: resolved "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz" integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== +slide@^1.1.5: + version "1.1.6" + resolved "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz" + integrity sha512-NwrtjCg+lZoqhFU8fOwl4ay2ei8PaqCBOUV3/ektPY9trO1yQ1oXEfmHAhKArUVUr/hOHvy5f6AdP17dCM0zMw== + smart-buffer@^4.2.0: version "4.2.0" resolved "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz" integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg== socket.io-client@^4.7.3: - version "4.7.4" - resolved "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.7.4.tgz" - integrity sha512-wh+OkeF0rAVCrABWQBaEjLfb7DVPotMbu0cgWgyR0v6eA4EoVnAwcIeIbcdTE3GT/H3kbdLl7OoH2+asoDRIIg== + version "4.7.5" + resolved "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.7.5.tgz" + integrity sha512-sJ/tqHOCe7Z50JCBCXrsY3I2k03iOiUe+tj1OmKeD2lXPiGH/RUCdTZFoqVyN7l1MnpIzPrGtLcijffmeouNlQ== dependencies: "@socket.io/component-emitter" "~3.1.0" debug "~4.3.2" @@ -4590,9 +7585,9 @@ socks-proxy-agent@^6.0.0: socks "^2.6.2" socks@^2.6.2: - version "2.8.1" - resolved "https://registry.npmjs.org/socks/-/socks-2.8.1.tgz" - integrity sha512-B6w7tkwNid7ToxjZ08rQMT8M9BJAf8DKx8Ft4NivzH0zBUfd6jldGcisJn/RLgxcX3FPNDdNQCUEMMT79b+oCQ== + version "2.8.3" + resolved "https://registry.npmjs.org/socks/-/socks-2.8.3.tgz" + integrity sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw== dependencies: ip-address "^9.0.5" smart-buffer "^4.2.0" @@ -4610,6 +7605,13 @@ source-map@^0.6.0, source-map@^0.6.1: resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== +split@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/split/-/split-1.0.1.tgz" + integrity sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg== + dependencies: + through "2" + split2@^4.1.0: version "4.2.0" resolved "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz" @@ -4625,6 +7627,11 @@ sprintf-js@~1.0.2: resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz" integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== +sqlite@^5.1.1: + version "5.1.1" + resolved "https://registry.npmjs.org/sqlite/-/sqlite-5.1.1.tgz" + integrity sha512-oBkezXa2hnkfuJwUo44Hl9hS3er+YFtueifoajrgidvqsJRQFpc5fKoAkAor1O5ZnLoa28GBScfHXs8j0K358Q== + sqlite3@^5.1.7: version "5.1.7" resolved "https://registry.npmjs.org/sqlite3/-/sqlite3-5.1.7.tgz" @@ -4637,11 +7644,6 @@ sqlite3@^5.1.7: optionalDependencies: node-gyp "8.x" -sqlite@^5.1.1: - version "5.1.1" - resolved "https://registry.npmjs.org/sqlite/-/sqlite-5.1.1.tgz" - integrity sha512-oBkezXa2hnkfuJwUo44Hl9hS3er+YFtueifoajrgidvqsJRQFpc5fKoAkAor1O5ZnLoa28GBScfHXs8j0K358Q== - sqlstring@^2.3.2: version "2.3.3" resolved "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.3.tgz" @@ -4676,7 +7678,12 @@ stack-utils@^2.0.3: dependencies: escape-string-regexp "^2.0.0" -streamx@^2.13.0, streamx@^2.15.0: +stream-read-all@^3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/stream-read-all/-/stream-read-all-3.0.1.tgz" + integrity sha512-EWZT9XOceBPlVJRrYcykW8jyRSZYbkb/0ZK36uLEmoWVO5gxBOnntNTseNzfREsqxqdfEGQrD8SXQ3QWbBmq8A== + +streamx@^2.15.0, streamx@^2.16.1: version "2.16.1" resolved "https://registry.npmjs.org/streamx/-/streamx-2.16.1.tgz" integrity sha512-m9QYj6WygWyWa3H1YY69amr4nVgy61xfjys7xO7kviL5rfIEc2naf+ewFiOA+aEJD7y0JO3h2GoiUv4TDwEGzQ== @@ -4686,6 +7693,13 @@ streamx@^2.13.0, streamx@^2.15.0: optionalDependencies: bare-events "^2.2.0" +string_decoder@^1.1.1, string_decoder@^1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + string-length@^4.0.1: version "4.0.2" resolved "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz" @@ -4703,39 +7717,33 @@ string-length@^4.0.1: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.1" -string.prototype.trim@^1.2.8: - version "1.2.8" - resolved "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz" - integrity sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - -string.prototype.trimend@^1.0.7: - version "1.0.7" - resolved "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz" - integrity sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA== +string.prototype.trim@^1.2.9: + version "1.2.9" + resolved "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz" + integrity sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw== dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.0" + es-object-atoms "^1.0.0" -string.prototype.trimstart@^1.0.7: - version "1.0.7" - resolved "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz" - integrity sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg== +string.prototype.trimend@^1.0.8: + version "1.0.8" + resolved "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz" + integrity sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ== dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" + call-bind "^1.0.7" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" -string_decoder@^1.1.1, string_decoder@^1.3.0: - version "1.3.0" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== +string.prototype.trimstart@^1.0.8: + version "1.0.8" + resolved "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz" + integrity sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg== dependencies: - safe-buffer "~5.2.0" + call-bind "^1.0.7" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" @@ -4744,6 +7752,11 @@ strip-ansi@^6.0.0, strip-ansi@^6.0.1: dependencies: ansi-regex "^5.0.1" +strip-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz" + integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== + strip-bom@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz" @@ -4764,6 +7777,11 @@ strip-json-comments@~2.0.1: resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz" integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== +strnum@^1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz" + integrity sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA== + supports-color@^5.3.0: version "5.5.0" resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" @@ -4795,6 +7813,27 @@ symbol-tree@^3.2.4: resolved "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz" integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== +system-ca@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/system-ca/-/system-ca-1.0.3.tgz" + integrity sha512-FHwdyDHM/J6SjHNVEp532J5rWsO0oPB/szZGsP/8I2s78mPLQhE0WwKTGi/RJulqTICekINsczg5q44n/1b+lQ== + optionalDependencies: + macos-export-certificate-and-key "^1.1.1" + win-export-certificate-and-key "^1.1.1" + +table-layout@^3.0.0: + version "3.0.2" + resolved "https://registry.npmjs.org/table-layout/-/table-layout-3.0.2.tgz" + integrity sha512-rpyNZYRw+/C+dYkcQ3Pr+rLxW4CfHpXjPDnG7lYhdRoUcZTUt+KEsX+94RGp/aVp/MQU35JCITv2T/beY4m+hw== + dependencies: + "@75lb/deep-merge" "^1.1.1" + array-back "^6.2.2" + command-line-args "^5.2.1" + command-line-usage "^7.0.0" + stream-read-all "^3.0.1" + typical "^7.1.1" + wordwrapjs "^5.1.0" + tar-fs@^2.0.0: version "2.1.1" resolved "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz" @@ -4806,9 +7845,9 @@ tar-fs@^2.0.0: tar-stream "^2.1.4" tar-fs@^3.0.4: - version "3.0.5" - resolved "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.5.tgz" - integrity sha512-JOgGAmZyMgbqpLwct7ZV8VzkEB6pxXFBVErLtb+XCOqzc6w1xiWKI9GVd6bwk68EX7eJ4DWmfXVmq8K2ziZTGg== + version "3.0.6" + resolved "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.6.tgz" + integrity sha512-iokBDQQkUyeXhgPYaZxmczGPhnhXZ0CmrqI+MOb/WFGS9DW5wnfrLgtjUJBvz50vQ3qfRwJ62QVoCFu8mPVu5w== dependencies: pump "^3.0.0" tar-stream "^3.1.5" @@ -4837,9 +7876,9 @@ tar-stream@^3.1.5: streamx "^2.15.0" tar@^6.0.2, tar@^6.1.11, tar@^6.1.2: - version "6.2.0" - resolved "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz" - integrity sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ== + version "6.2.1" + resolved "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz" + integrity sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A== dependencies: chownr "^2.0.0" fs-minipass "^2.0.0" @@ -4857,6 +7896,16 @@ test-exclude@^6.0.0: glob "^7.1.4" minimatch "^3.0.4" +text-table@^0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz" + integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== + +through@2: + version "2.3.8" + resolved "https://registry.npmjs.org/through/-/through-2.3.8.tgz" + integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== + tmpl@1.0.5: version "1.0.5" resolved "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz" @@ -4875,9 +7924,9 @@ to-regex-range@^5.0.1: is-number "^7.0.0" tough-cookie@^4.1.3: - version "4.1.3" - resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz" - integrity sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw== + version "4.1.4" + resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.4.tgz" + integrity sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag== dependencies: psl "^1.1.33" punycode "^2.1.1" @@ -4904,15 +7953,20 @@ tr46@~0.0.3: resolved "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz" integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== -tree-sitter-wasms@^0.1.6: - version "0.1.7" - resolved "https://registry.npmjs.org/tree-sitter-wasms/-/tree-sitter-wasms-0.1.7.tgz" - integrity sha512-/EnmSDDqEnSnIuCqVhSOc14T8r792LmiztqlZMFSRg+4ACrgUWNLvEr2AUP1K76XCJrvuH8liSWfkdQpK41hIA== +tree-sitter-wasms@^0.1.11, tree-sitter-wasms@^0.1.6: + version "0.1.11" + resolved "https://registry.npmjs.org/tree-sitter-wasms/-/tree-sitter-wasms-0.1.11.tgz" + integrity sha512-26sE4+qoTi1CbzHdo9sHs9pRE/jXVFVRigSG/5TNAbwhSMVjHfMAg4UjmOhAFAIx5UxgoQuaURwqhm0SRNrpWA== + +ts-api-utils@^1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz" + integrity sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ== ts-jest@^29.1.1: - version "29.1.2" - resolved "https://registry.npmjs.org/ts-jest/-/ts-jest-29.1.2.tgz" - integrity sha512-br6GJoH/WUX4pu7FbZXuWGKGNDuU7b8Uj77g/Sp7puZV6EXzuByl6JrECvm0MzVzSTkSHWTihsXt+5XYER5b+g== + version "29.1.3" + resolved "https://registry.npmjs.org/ts-jest/-/ts-jest-29.1.3.tgz" + integrity sha512-6L9qz3ginTd1NKhOxmkP0qU3FyKjj5CPoY+anszfVn6Pmv/RIKzhiMCsH7Yb7UvJR9I2A64rm4zQl531s2F1iw== dependencies: bs-logger "0.x" fast-json-stable-stringify "2.x" @@ -4923,6 +7977,26 @@ ts-jest@^29.1.1: semver "^7.5.3" yargs-parser "^21.0.1" +tsconfig-paths@^3.15.0: + version "3.15.0" + resolved "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz" + integrity sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg== + dependencies: + "@types/json5" "^0.0.29" + json5 "^1.0.2" + minimist "^1.2.6" + strip-bom "^3.0.0" + +tslib@^1.11.1: + version "1.14.1" + resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== + +tslib@^2.3.1, tslib@^2.4.0, tslib@^2.5.3, tslib@^2.6.2: + version "2.6.2" + resolved "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz" + integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== + tunnel-agent@^0.6.0: version "0.6.0" resolved "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz" @@ -4935,11 +8009,23 @@ tweetnacl@^0.14.3, tweetnacl@~0.14.0: resolved "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz" integrity sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA== +type-check@^0.4.0, type-check@~0.4.0: + version "0.4.0" + resolved "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz" + integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== + dependencies: + prelude-ls "^1.2.1" + type-detect@4.0.8: version "4.0.8" resolved "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz" integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== +type-fest@^0.20.2: + version "0.20.2" + resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz" + integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== + type-fest@^0.21.3: version "0.21.3" resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz" @@ -4977,10 +8063,10 @@ typed-array-byte-offset@^1.0.2: has-proto "^1.0.3" is-typed-array "^1.1.13" -typed-array-length@^1.0.5: - version "1.0.5" - resolved "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.5.tgz" - integrity sha512-yMi0PlwuznKHxKmcpoOdeLwxBoVPkqZxd7q2FgMkmD3bNwvF5VW0+UlUQ1k1vmktTu4Yu13Q0RIxEP8+B+wloA== +typed-array-length@^1.0.6: + version "1.0.6" + resolved "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz" + integrity sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g== dependencies: call-bind "^1.0.7" for-each "^0.3.3" @@ -4989,6 +8075,21 @@ typed-array-length@^1.0.5: is-typed-array "^1.1.13" possible-typed-array-names "^1.0.0" +typescript@>=4.2.0, "typescript@>=4.3 <6": + version "5.4.5" + resolved "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz" + integrity sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ== + +typical@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz" + integrity sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw== + +typical@^7.1.1: + version "7.1.1" + resolved "https://registry.npmjs.org/typical/-/typical-7.1.1.tgz" + integrity sha512-T+tKVNs6Wu7IWiAce5BgMd7OZfNYUndHwc5MknN+UHOudi7sGZzuHdCadllRuqJ3fPtgFtIH9+lt9qRv6lmpfA== + uglify-js@^3.1.4: version "3.17.4" resolved "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz" @@ -5009,6 +8110,34 @@ undici-types@~5.26.4: resolved "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz" integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== +undici@^6.16.1: + version "6.18.2" + resolved "https://registry.npmjs.org/undici/-/undici-6.18.2.tgz" + integrity sha512-o/MQLTwRm9IVhOqhZ0NQ9oXax1ygPjw6Vs+Vq/4QRjbOAC3B1GCHy7TYxxbExKlb7bzDRzt9vBWU6BDz0RFfYg== + +unicode-canonical-property-names-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz" + integrity sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ== + +unicode-match-property-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz" + integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q== + dependencies: + unicode-canonical-property-names-ecmascript "^2.0.0" + unicode-property-aliases-ecmascript "^2.0.0" + +unicode-match-property-value-ecmascript@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz" + integrity sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA== + +unicode-property-aliases-ecmascript@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz" + integrity sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w== + unique-filename@^1.1.1: version "1.1.1" resolved "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz" @@ -5034,12 +8163,12 @@ universalify@^0.2.0: integrity sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg== update-browserslist-db@^1.0.13: - version "1.0.13" - resolved "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz" - integrity sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg== + version "1.0.16" + resolved "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz" + integrity sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ== dependencies: - escalade "^3.1.1" - picocolors "^1.0.0" + escalade "^3.1.2" + picocolors "^1.0.1" uri-js@^4.2.2: version "4.4.1" @@ -5066,6 +8195,11 @@ uuid@^3.3.2: resolved "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz" integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== +uuid@^8.0.0: + version "8.3.2" + resolved "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + uuid@^9.0.1: version "9.0.1" resolved "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz" @@ -5080,19 +8214,19 @@ v8-to-istanbul@^9.0.1: "@types/istanbul-lib-coverage" "^2.0.1" convert-source-map "^2.0.0" -vectordb@0.4.12: - version "0.4.12" - resolved "https://registry.npmjs.org/vectordb/-/vectordb-0.4.12.tgz" - integrity sha512-H2mFwZ87d3BcuX4yGx5RoW06amRZQ3W5u/FRTNc86rwVINuEEa+Ivsqng1i8hURHXoTDbF/0Y9qwCshySkeznQ== +vectordb@^0.4.20: + version "0.4.20" + resolved "https://registry.npmjs.org/vectordb/-/vectordb-0.4.20.tgz" + integrity sha512-A8X5uvNMl7btbKBshaOx0A6R6Q2eQqOE5Ifwu6r1fZALOS+V0rnoQmUKa1K1v31Vcr3S5GvQsFIl+v6yWataqA== dependencies: "@neon-rs/load" "^0.0.74" axios "^1.4.0" optionalDependencies: - "@lancedb/vectordb-darwin-arm64" "0.4.12" - "@lancedb/vectordb-darwin-x64" "0.4.12" - "@lancedb/vectordb-linux-arm64-gnu" "0.4.12" - "@lancedb/vectordb-linux-x64-gnu" "0.4.12" - "@lancedb/vectordb-win32-x64-msvc" "0.4.12" + "@lancedb/vectordb-darwin-arm64" "0.4.20" + "@lancedb/vectordb-darwin-x64" "0.4.20" + "@lancedb/vectordb-linux-arm64-gnu" "0.4.20" + "@lancedb/vectordb-linux-x64-gnu" "0.4.20" + "@lancedb/vectordb-win32-x64-msvc" "0.4.20" verror@1.10.0: version "1.10.0" @@ -5103,15 +8237,6 @@ verror@1.10.0: core-util-is "1.0.2" extsprintf "^1.2.0" -vite-plugin-node@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/vite-plugin-node/-/vite-plugin-node-3.1.0.tgz" - integrity sha512-LN9byKedZaokEWcH+DTdeV7YLN34dWH7Em2ldHZ77oVGvC/uxHnK43AGPrV9+9CoOh1x9X3Yc55vW/OQYssFDQ== - dependencies: - "@rollup/pluginutils" "^4.1.1" - chalk "^4.1.2" - debug "^4.3.2" - w3c-xmlserializer@^5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz" @@ -5126,16 +8251,16 @@ walker@^1.0.8: dependencies: makeerror "1.0.12" -web-streams-polyfill@4.0.0-beta.3: - version "4.0.0-beta.3" - resolved "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-4.0.0-beta.3.tgz" - integrity sha512-QW95TCTaHmsYfHDybGMwO5IJIM93I/6vTRk+daHTWFPhwh+C8Cg7j7XyKrwrj8Ib6vYXe0ocYNrmzY4xAAN6ug== - web-streams-polyfill@^3.0.3, web-streams-polyfill@^3.2.1: version "3.3.3" resolved "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz" integrity sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw== +web-streams-polyfill@4.0.0-beta.3: + version "4.0.0-beta.3" + resolved "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-4.0.0-beta.3.tgz" + integrity sha512-QW95TCTaHmsYfHDybGMwO5IJIM93I/6vTRk+daHTWFPhwh+C8Cg7j7XyKrwrj8Ib6vYXe0ocYNrmzY4xAAN6ug== + web-tree-sitter@^0.21.0: version "0.21.0" resolved "https://registry.npmjs.org/web-tree-sitter/-/web-tree-sitter-0.21.0.tgz" @@ -5195,16 +8320,16 @@ which-boxed-primitive@^1.0.2: is-string "^1.0.5" is-symbol "^1.0.3" -which-typed-array@^1.1.14: - version "1.1.14" - resolved "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.14.tgz" - integrity sha512-VnXFiIW8yNn9kIHN88xvZ4yOWchftKDsRJ8fEPacX/wl1lOvBrhsJ/OeJCXq7B0AaijRuqgzSKalJoPk+D8MPg== +which-typed-array@^1.1.14, which-typed-array@^1.1.15: + version "1.1.15" + resolved "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz" + integrity sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA== dependencies: - available-typed-arrays "^1.0.6" - call-bind "^1.0.5" + available-typed-arrays "^1.0.7" + call-bind "^1.0.7" for-each "^0.3.3" gopd "^1.0.1" - has-tostringtag "^1.0.1" + has-tostringtag "^1.0.2" which@^2.0.1, which@^2.0.2: version "2.0.2" @@ -5220,11 +8345,31 @@ wide-align@^1.1.5: dependencies: string-width "^1.0.2 || 2 || 3 || 4" +win-ca@^3.5.1: + version "3.5.1" + resolved "https://registry.npmjs.org/win-ca/-/win-ca-3.5.1.tgz" + integrity sha512-RNy9gpBS6cxWHjfbqwBA7odaHyT+YQNhtdpJZwYCFoxB/Dq22oeOZ9YCXMwjhLytKpo7JJMnKdJ/ve7N12zzfQ== + dependencies: + is-electron "^2.2.0" + make-dir "^1.3.0" + node-forge "^1.2.1" + split "^1.0.1" + +word-wrap@^1.2.5: + version "1.2.5" + resolved "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz" + integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA== + wordwrap@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz" integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q== +wordwrapjs@^5.1.0: + version "5.1.0" + resolved "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-5.1.0.tgz" + integrity sha512-JNjcULU2e4KJwUNv6CHgI46UvDGitb6dGryHajXTDiLgg1/RiGoPSDw4kZfYnwGtEXf2ZMeIewDQgFGzkCB2Sg== + wrap-ansi@^7.0.0: version "7.0.0" resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" @@ -5239,6 +8384,15 @@ wrappy@1: resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== +write-file-atomic@^1.1.4: + version "1.3.4" + resolved "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-1.3.4.tgz" + integrity sha512-SdrHoC/yVBPpV0Xq/mUZQIpW2sWXAShb/V4pomcJXh92RuaO+f3UTWItiR3Px+pLnV2PvC2/bfn5cwr5X6Vfxw== + dependencies: + graceful-fs "^4.1.11" + imurmurhash "^0.1.4" + slide "^1.1.5" + write-file-atomic@^4.0.2: version "4.0.2" resolved "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz" @@ -5248,9 +8402,9 @@ write-file-atomic@^4.0.2: signal-exit "^3.0.7" ws@^8.16.0: - version "8.16.0" - resolved "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz" - integrity sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ== + version "8.17.0" + resolved "https://registry.npmjs.org/ws/-/ws-8.17.0.tgz" + integrity sha512-uJq6108EgZMAl20KagGkzCKfMEjxmKvZHG7Tlq0Z6nOky7YF7aq4mOx6xK8TJ/i1LeK4Qus7INktacctDgY8Ow== ws@~8.11.0: version "8.11.0" @@ -5292,6 +8446,11 @@ yallist@^4.0.0: resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== +yaml@^2.4.2: + version "2.4.2" + resolved "https://registry.npmjs.org/yaml/-/yaml-2.4.2.tgz" + integrity sha512-B3VqDZ+JAg1nZpaEmWtTXUlBneoGx6CPM9b0TENK6aoSu5t73dItudwdgmi6tHlIZZId4dZ9skcAQ2UbcyAeVA== + yargs-parser@^21.0.1, yargs-parser@^21.1.1: version "21.1.1" resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz" @@ -5314,3 +8473,8 @@ yocto-queue@^0.1.0: version "0.1.0" resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz" integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== + +zod@^3.23.8: + version "3.23.8" + resolved "https://registry.npmjs.org/zod/-/zod-3.23.8.tgz" + integrity sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g== diff --git a/docs/docs/changelog.mdx b/docs/docs/changelog.mdx new file mode 100644 index 000000000..8c3d76af2 --- /dev/null +++ b/docs/docs/changelog.mdx @@ -0,0 +1,30 @@ +--- +title: 📝 Changelog +description: Changelogs for the latest releases of the VSCode and IntelliJ extensions +keywords: [changelog] +hide_table_of_contents: true +--- + +import VSCodeChangelog from "../../extensions/vscode/CHANGELOG.md"; +import IntelliJChangelog from "../../extensions/intellij/CHANGELOG.md"; + +Below are the changelogs for the latest releases of the VSCode and IntelliJ extensions. + +import TOCInline from "@theme/TOCInline"; + + + node.value === "VSCode Changelog" || node.value === "IntelliJ Changelog", + )} +/> + +
+ +## VSCode Changelog + + + +## IntelliJ Changelog + + diff --git a/docs/docs/customization/code-config.md b/docs/docs/customization/code-config.md index 33658d487..70bd374ab 100644 --- a/docs/docs/customization/code-config.md +++ b/docs/docs/customization/code-config.md @@ -1,6 +1,6 @@ # Code Configuration -To allow added flexibility and eventually support an entire plugin ecosystem, Continue can be configured programmatically in a Python file, `~/.continue/config.ts`. +To allow added flexibility and eventually support an entire plugin ecosystem, Continue can be configured programmatically in a TypeScript file, `~/.continue/config.ts`. Whenever Continue loads, it carries out the following steps: diff --git a/docs/docs/customization/context-providers.md b/docs/docs/customization/context-providers.md index bc0c210d3..82d6aa133 100644 --- a/docs/docs/customization/context-providers.md +++ b/docs/docs/customization/context-providers.md @@ -16,6 +16,14 @@ As an example, say you are working on solving a new GitHub Issue. You type '@iss To use any of the built-in context providers, open `~/.continue/config.json` and add it to the `contextProviders` list. +### Files + +Type '@file' to reference any file in your current workspace. + +```json +{ "name": "file" } +``` + ### Code Type '@code' to reference specific functions or classes from throughout your project. @@ -48,6 +56,30 @@ Type `@docs` to index and retrieve snippets from any documentation site. You can { "name": "docs" } ``` +Continue also pre-indexes a number of common sites, listed [here](https://github.com/continuedev/continue/blob/main/core/indexing/docs/preIndexedDocs.ts). The embeddings for these sites are hosted by us, but downloaded for local use after the first time. All other indexing occurs entirely locally. + +#### Adding a Documentation Site via Configuration + +To add a documentation site via configuration, update the `config.json` file as follows: + +```json +{ + "name": "docs", + "params": { + "sites": [ + { + "title": "ExampleDocs", + "startUrl": "https://exampledocs.com/docs", + "rootUrl": "https://exampledocs.com", + "maxDepth": 3 // Default + } + ] + } +} +``` + +The docs are indexed when you modify the configuration file, unless indexing is disabled. If you want to manually trigger the indexing, you can use the command `Continue: Docs Index`. For force indexing, you can use the command `Continue: Docs Force Re-Index`. Note that these commands will work even if automatic indexing is disabled. + ### Open Files Type '@open' to reference the contents of all of your open files. Set `onlyPinned` to `true` to only reference pinned files. @@ -80,6 +112,14 @@ Type '@search' to reference the results of codebase search, just like the result { "name": "search" } ``` +### URL + +Type '@url' and input a URL, then Continue will convert it to a markdown document to pass to the model. + +```json +{ "name": "url" } +``` + ### File Tree Type '@tree' to reference the structure of your current workspace. The LLM will be able to see the nested directory structure of your project. @@ -157,14 +197,13 @@ If you select some code to be edited, you can have the context provider filter o ### Jira Issues -Type '@jira' to reference the conversation in a Jira issue. Make sure to include your own [Atlassian API Token](https://id.atlassian.com/manage-profile/security/api-tokens). +Type '@jira' to reference the conversation in a Jira issue. Make sure to include your own [Atlassian API Token](https://id.atlassian.com/manage-profile/security/api-tokens), or use your `email` and `token`, with token set to your password for basic authentication. If you use your own Atlassian API Token, don't configure your email. ```json { "name": "jira", "params": { "domain": "company.atlassian.net", - "email": "someone@somewhere.com", "token ": "ATATT..." } } @@ -193,7 +232,12 @@ assignee = currentUser() AND resolution = Unresolved order by updated DESC You can override this query by setting the `issueQuery` parameter. -### Code Outline + + + ### PostgreSQL @@ -279,6 +323,14 @@ Type `@locals` to reference the contents of the local variables with top n level } ``` +### Operating System + +Type `@os` to reference the architecture and platform of your current operating system. + +```json +{ "name": "os" } +``` + ### Requesting Context Providers Not seeing what you want? Create an issue [here](https://github.com/continuedev/continue/issues/new?assignees=TyDunn&labels=enhancement&projects=&template=feature-request-%F0%9F%92%AA.md&title=) to request a new ContextProvider. @@ -295,10 +347,15 @@ interface CustomContextProvider { title: string; displayTitle?: string; description?: string; + renderInlineAs?: string; + type?: ContextProviderType; getContextItems( query: string, extras: ContextProviderExtras, ): Promise; + loadSubmenuItems?: ( + args: LoadSubmenuItemsArgs, + ) => Promise; } ``` @@ -438,6 +495,7 @@ Continue will use [esbuild](https://esbuild.github.io/) to bundle your `config.t - `displayTitle` (optional): The title displayed in the dropdown - `description` (optional): The longer description displayed in the dropdown when hovered - `type` (optional): The type of context provider. Options are "normal", "query", and "submenu". Defaults to "normal". +- `renderInlineAs` (optional): The string that will be rendered inline at the top of the prompt. If no value is provided, the `displayTitle` will be used. An empty string can be provided to prevent rendering the default `displayTitle`. - `getContextItems`: A function that returns the documents to include in the prompt. It should return a list of `ContextItem`s, and is given access to the following arguments: - `extras.fullInput`: A string representing the user's full input to the text box. This can be used for example to generate an embedding to compare against a set of other embedded documents - `extras.embeddingsProvider`: The embeddings provider has an `embed` function that will convert text (such as `fullInput`) to an embedding @@ -463,3 +521,64 @@ If you'd like to write a context provider in a language other than TypeScript, y ``` Then, create a server that responds to requests as are made from [HttpContextProvider.ts](../../../core/context/providers/HttpContextProvider.ts). See the `hello` endpoint in [context_provider_server.py](../../../core/context/providers/context_provider_server.py) for an example that uses FastAPI. + +### Extension API for VSCode + +Continue exposes an API for registering context providers from a 3rd party VSCode extension. This is useful if you have a VSCode extension that provides some additional context that you would like to use in Continue. To use this API, add the following to your `package.json`: + +```json +{ + "extensionDependencies": ["continue.continue"] +} +``` + +Or copy `~/.continue/type/core/index.d.ts` to your extension repository. + +Then, you can use the `registerCustomContextProvider` function to register your context provider. Your custom context provider must implement the `IContextProvider` interface. +Here is an example: + +```typescript +import * as vscode from "vscode"; + +class MyCustomProvider implements IContextProvider { + get description(): ContextProviderDescription { + return { + title: "custom", + displayTitle: "Custom", + description: "Custom description", + type: "normal", + }; + } + + async getContextItems( + query: string, + extras: ContextProviderExtras, + ): Promise { + return [ + { + name: "Custom", + description: "Custom description", + content: "Custom content", + }, + ]; + } + + async loadSubmenuItems( + args: LoadSubmenuItemsArgs, + ): Promise { + return []; + } +} + +// create an instance of your custom provider +const customProvider = new MyCustomProvider(); + +// get Continue extension using vscode API +const continueExt = vscode.extensions.getExtension("continue.continue"); + +// get the API from the extension +const continueApi = continueExt?.exports; + +// register your custom provider +continueApi?.registerCustomContextProvider(customProvider); +``` diff --git a/docs/docs/customization/overview.md b/docs/docs/customization/overview.md index 21620617d..d36dbfffe 100644 --- a/docs/docs/customization/overview.md +++ b/docs/docs/customization/overview.md @@ -6,13 +6,13 @@ keywords: [custom, slash commands, models, context providers] # Overview -Continue can be deeply customized by editing `~/.continue/config.json` (`%userprofile%\.continue\config.json` for Windows) and `config.ts` on your machine. These files are created the first time you run Continue. To open `config.json`, click the gear icon in the bottom right corner of the Continue sidebar. +Continue can be deeply customized by editing `config.json` and `config.ts` on your machine. You can find these files in the `~/.continue/` directory on MacOS and the `%userprofile%\.continue` directory on Windows. These files are created the first time you run Continue. Currently, you can customize the following: -- [Models](../model-setup/select-model.md) and [providers](../model-setup/select-provider.md) -- [Context Providers](./context-providers.md) - Type '@' to easily add attachments to your prompt. Define which sources you want to reference, including GitHub Issues, terminal output, or automatically retrieved snippets from your codebase. -- [Slash Commands](./slash-commands.md) - Call custom prompts or programs written with our SDK by typing `/`. -- [Other Configuration](../reference/config.mdx) - Configure other settings like the system message and temperature. +- [Models](../setup/select-model.md) and [providers](../setup/select-provider.md) +- [Context Providers](./context-providers.md) +- [Slash Commands](./slash-commands.md) +- [Other configuration options](../reference/config.mdx) If you'd like to share Continue configuration with others, you can add a `.continuerc.json` to the root of your project. It has the same JSON Schema definition as `config.json`, and will automatically be applied on top of the local `config.json`. diff --git a/docs/docs/customization/slash-commands.md b/docs/docs/customization/slash-commands.md index 70d522de8..da46f106c 100644 --- a/docs/docs/customization/slash-commands.md +++ b/docs/docs/customization/slash-commands.md @@ -43,10 +43,13 @@ Type "/share" to generate a shareable markdown transcript of your current chat h ```json { "name": "share", - "description": "Download and share this session" + "description": "Export the current chat session to markdown", + "params": { "ouputDir": "~/.continue/session-transcripts" } } ``` +Use the `ouputDir` parameter to specify where you want to the markdown file to be saved. + ### `/cmd` Generate a shell command from natural language and (only in VS Code) automatically paste it into the terminal. diff --git a/docs/docs/how-to-use-continue.md b/docs/docs/how-to-use-continue.md index fdaaf7ee1..eb6a51fb0 100644 --- a/docs/docs/how-to-use-continue.md +++ b/docs/docs/how-to-use-continue.md @@ -6,146 +6,62 @@ keywords: [how to, edit, refactor, boilerplate, context] # 🧑‍🎓 How to use Continue -:::info -**TL;DR: Using LLMs as you code can accelerate you if you leverage them in the right situations. However, they can also cause you to get lost and confused if you trust them when you should not. This page outlines when and where we think you should and should not use Continue.** -::: +## Easily understand code sections -## Introduction +![understand](/img/understand.gif) -Continue will only be as helpful as the LLM you are using to power the edits and explanations. LLMs sometimes hallucinate, so it might make up a library or invent some syntax that does not exist. If something suggested is not working or seems odd to you, it’s best to double check with a Google search to make sure you are not falling into a rabbit hole. +- VS Code: `cmd+L` (MacOS) / `ctrl+L` (Windows) +- JetBrains: `cmd+J` (MacOS) / `ctrl+J` (Windows) -As you use Continue more, you will learn when to trust it. A great way to get started is to just play with it and start to get a sense of what works and what does not. Continue always ask you to accept / reject any changes it suggests, so you can always undo if something goes wrong. +## Tab to autocomplete code suggestions -If you are trying to use it for a new task and don’t have a sense of how much Continue can help you complete it, it can often be helpful to start like this: +![autocomplete](/img/autocomplete.gif) -'Highlight' refers to the act of selecting a text range in a file and pressing 'cmd+shift+M' (Macos) or 'ctrl+shift+M' (Windows) to include it in the Continue chat message. +- VS Code: `tab` (MacOS) / `tab` (Windows) +- JetBrains: `tab` (MacOS) / `tab` (Windows) -1. Highlight the code section(s) that you don’t understand and type "tell me how this code works" in the input box -2. If the explanation seems reasonable, then, while still highlighting the code section(s), type "how would you change this code to [INSERT TASK]?" -3. If this explanation is also pretty good, then, while still highlighting the code section(s), type `/edit [INSERT TASK]`. If you like the suggested diff, use `cmd+shift+enter` to accept the changes. -4. If it does not work on first attempt, use `cmd+shift+backspace` to reject the changes and try again—often it will make a different suggestion each time -5. If it is not giving you what you want after another attempt, reject and try again with more specific / clear instructions, articulating exactly what you want it to do and not to do -6. If this still does not work, then you likely need to break down the task into smaller sub-tasks and ask the LLM to do each of those one at a time or just do it yourself manually +## Refactor functions where you are coding -Remember: You are responsible for all code that you ship, whether it was written by you or by an LLM that you directed. This means it is crucial that you review what the LLM writes. To make this easier, we provide natural language descriptions of the actions the LLM took in the Continue GUI. +![inline](/img/inline.gif) -## When to use Continue +- VS Code: `cmd+I` (MacOS) / `ctrl+I` (Windows) +- JetBrains: `cmd+I` (MacOS) / `ctrl+I` (Windows) -Here are tasks that Continue excels at helping you complete: +## Ask questions about your codebase -### Laborious edits +![codebase](/img/codebase.gif) -Continue works well in situations where find and replace does not work (i.e. “/edit change all of these to be like that”) +- VS Code: `@codebase` (MacOS) / `@codebase` (Windows) +- JetBrains: Support coming soon -Examples +## Quickly use documentation as context -- "/edit Use 'Union' instead of a vertical bar here" -- “/edit Make this use more descriptive variable names” +![docs](/img/docs.gif) -### Writing files from scratch +- VS Code: `@docs` (MacOS) / `@docs` (Windows) +- JetBrains: `@docs` (MacOS) / `@docs` (Windows) -Continue can help you get started building React components, Python scripts, Shell scripts, Makefiles, unit tests, etc. +## Kick off actions with slash commands -Examples +![slash](/img/slash.gif) -- “/edit write a python script to get posthog events" -- “/edit add a react component for syntax highlighted code" +- VS Code: `/edit` (MacOS) / `/edit` (Windows) +- JetBrains: `/edit` (MacOS) / `/edit` (Windows) -### Creating boilerplate from scratch +Learn more about slash commands [here](./customization/slash-commands.md) -Continue can go even further. For example, it can help build the scaffolding for a Python package, which includes a typer cli app to sort the arguments and print them back out. +## Add classes, files, and more to context -Examples +![classes](/img/classes.gif) -- “/edit use this schema to write me a SQL query that gets recently churned users” -- “/edit create a shell script to back up my home dir to /tmp/" +- VS Code: `@files` (MacOS) / `@files` (Windows) +- JetBrains: `@files` (MacOS) / `@files` (Windows) -### Fix highlighted code +Learn more about context providers [here](./customization/context-providers.md). -After selecting the code section(s), try to refactor it with Continue (e.g “/edit change the function to work like this” or “/edit do this everywhere”) +## Understand terminal errors immediately -Examples +![error](/img/error.gif) -- “/edit migrate this digital ocean terraform file into one that works for GCP” -- “/edit rewrite this function to be async” - -### Ask about highlighted code or an entire file - -If you don't understand how some code works, highlight it and ask "how does this code work?" - -Examples - -- “where in the page should I be making this request to the backend?” -- “how can I communicate between these iframes?” - -### Ask about errors - -Continue can also help explain errors / exceptions and offer possible solutions. When you come across an error / exception in your terminal, press `cmd+shift+r` (MacOS) / `ctrl+shift+r` (Windows). This will throw the stack trace into Continue and ask for it to explain the issue to you. - -### Figure out what shell command to run - -Instead of switching windows and getting distracted, you can ask things like "How do I find running process on port 8000?" - -Examples - -- "what is the load_dotenv library name?" -- "how do I find running process on port 8000?" - -### Ask single-turn open-ended questions - -Instead of leaving your IDE, you can ask open-ended questions that you don't expect to turn into multi-turn conversations. - -Examples - -- “how can I set up a Prisma schema that cascades deletes?” -- "what is the difference between dense and sparse embeddings?" - -### Editing small existing files - -You can highlight an entire file and ask Continue to improve it as long as the file is not too large. - -Examples - -- “/edit here is a connector for postgres, now write one for kafka” -- "/edit Rewrite this API call to grab all pages" - -### Using context from multiple other files - -Similar to how you would make changes manually, focus on one file at a time. But if there is key information in other files, highlight those sections of code too to be used as additional context - -### Tasks with a few steps - -There are many more tasks that Continue can help you complete. Typically, these will be tasks that don't involve too many steps to complete. - -Examples - -- “/edit make an IAM policy that creates a user with read-only access to S3” -- “/edit change this plot into a bar chart in this dashboard component” - -## When to not use Continue - -Here are tasks that Continue is **not** helpful with today: - -### Deep debugging - -If you are 20 minutes into debugging a complicated issue across many files, then Continue won’t be able to help you connect the dots yet. That said, Continue can provide ideas of what you might do at different points if you share what you have figured out along the way and ask for ideas of what to try. - -### Multi-file edits in parallel - -At the moment, Continue can only edit one file at a time. If you figure out which files need to change, you can direct Continue to help you change them one at a time though. - -### Using context of the entire file - -If files get too large, it can be difficult for Continue to fit them into the limited LLM context windows. Try to highlight the section of code that include the relevant context. It's rare that you need the entire file. - -### Editing large files - -Similarly, if you try to edit too many lines at once, you might run into context window limits. It also will likely be very slow to apply the suggestions. - -### Highlighting really long lines - -If you highlight very long lines (e.g. a complex SVG), you might also run into issues like those above. - -### Tasks with many steps - -There are other tasks that Continue won't be able to take on entirely at once. However, typically, if you figure out how to break the task into sub-tasks, you can get help from Continue with those. +- VS Code: `cmd+shift+R` (MacOS) / `ctrl+shift+R` (Windows) +- JetBrains: Support coming soon \ No newline at end of file diff --git a/docs/docs/intro.md b/docs/docs/intro.md index 3a6a627c5..e21f85be8 100644 --- a/docs/docs/intro.md +++ b/docs/docs/intro.md @@ -6,21 +6,19 @@ keywords: [introduction, intro, continue, autopilot, chatgpt] # 💻 Introduction -![continue-cover-logo](/img/continue-cover-logo.png) +![continue-cover-logo](/img/intro.png) -**Continue is an open-source autopilot for [VS Code](https://marketplace.visualstudio.com/items?itemName=Continue.continue) and [JetBrains](https://plugins.jetbrains.com/plugin/22707-continue-extension)—the easiest way to code with any LLM** - -Many developers have begun to use ChatGPT while coding; however, the experience is painful because of how much copying, pasting, and editing is required to provide the context and incorporate the generated answers into your codebase. Continue eliminates this pain by enabling LLMs to act natively in your IDE as you complete your workflows. +**Continue is the leading open-source AI code assistant. You can connect any models and any context to build custom autocomplete and chat experiences inside [VS Code](https://marketplace.visualstudio.com/items?itemName=Continue.continue) and [JetBrains](https://plugins.jetbrains.com/plugin/22707-continue-extension)** Some examples of what you can achieve are: -- Use cmd/ctrl + I to generate boilerplate code from natural language -- Use our local tab-autocomplete to get inline suggestions and write boilerplate code quickly -- Highlight code, describe how to refactor it, and have changes streamed into your editor -- Ask high-level questions about your codebase, with Continue automatically finding relevant files -- Quickly generate unit tests for any function or class -- Ask a quick question to get immediate answers without leaving your editor -- Have your current changes reviewed for mistakes that the compiler can't catch -- Type '@' to reference dozens of different sources while communicating with the LLM +- [Easily understand code sections](how-to-use-continue.md#easily-understand-code-sections) +- [Tab to autocomplete code suggestions](how-to-use-continue.md#tab-to-autocomplete-code-suggestions) +- [Refactor functions where you are coding](how-to-use-continue.md#refactor-functions-where-you-are-coding) +- [Ask questions about your codebase](how-to-use-continue.md#ask-questions-about-your-codebase) +- [Quickly use documentation as context](how-to-use-continue.md#quickly-use-documentation-as-context) +- [Kick off actions with slash commands](how-to-use-continue.md#kick-off-actions-with-slash-commands) +- [Add classes, files, and more to context](how-to-use-continue.md#add-classes-files-and-more-to-context) +- [Understand terminal errors immediately](how-to-use-continue.md#understand-terminal-errors-immediately) -Continue lets you do all of this with any LLM, whether open-source, commercial, local, or remote. And we provide numerous points of configuration so that you can customize the extension to fit into your existing workflows. +Continue enables you to use the right model for the job, whether it's open-source or commercial, running local or remote, and used for chat, autocomplete, or embeddings. And we provide numerous points of configuration, so that you can customize the extension to fit into your existing workflows. diff --git a/docs/docs/quickstart.md b/docs/docs/quickstart.md index 7e51c51b0..b94b0eeda 100644 --- a/docs/docs/quickstart.md +++ b/docs/docs/quickstart.md @@ -28,6 +28,6 @@ keywords: [quickstart, start, install, vscode, jetbrains] ![jetbrains-quickstart](/img/jetbrains-quickstart.png) -4. If you have any problems, see the [troubleshooting guide](./troubleshooting.md) or ask for help in [our Discord](https://discord.gg/NWtdYexhMs). +4. If you have any problems, see the [troubleshooting guide](./troubleshooting.md) or ask for help in [our Discord](https://discord.com/invite/EfJEfdFnDQ). > Alternatively, you can install from disk after downloading from the [JetBrains Extension Marketplace](https://plugins.jetbrains.com/plugin/22707-continue-extension). diff --git a/docs/docs/reference/Model Providers/anthropicllm.md b/docs/docs/reference/Model Providers/anthropicllm.md index 438618487..309f29ab2 100644 --- a/docs/docs/reference/Model Providers/anthropicllm.md +++ b/docs/docs/reference/Model Providers/anthropicllm.md @@ -1,6 +1,6 @@ -# AnthropicLLM +# Anthropic -To setup Anthropic, add the following to your `config.json` file: +To setup Anthropic, obtain an API key from [here](https://www.anthropic.com/api) and add the following to your `config.json` file: ```json title="~/.continue/config.json" { @@ -8,13 +8,11 @@ To setup Anthropic, add the following to your `config.json` file: { "title": "Anthropic", "provider": "anthropic", - "model": "claude-2", + "model": "claude-3-5-sonnet-20240620", "apiKey": "YOUR_API_KEY" } ] } ``` -Claude 2 is not yet publicly released. You can request early access [here](https://www.anthropic.com/earlyaccess). - [View the source](https://github.com/continuedev/continue/blob/main/core/llm/llms/Anthropic.ts) diff --git a/docs/docs/reference/Model Providers/azure.md b/docs/docs/reference/Model Providers/azure.md new file mode 100644 index 000000000..c6c7219f0 --- /dev/null +++ b/docs/docs/reference/Model Providers/azure.md @@ -0,0 +1,26 @@ +# Azure OpenAI + +If you'd like to use OpenAI models but are concerned about privacy, you can use the Azure OpenAI service, which is GDPR and HIPAA compliant. + +:::info[Getting access] +You need to apply for access to the Azure OpenAI service. Response times are typically within a few days. + +**[Click here to apply for access to the Azure OpenAI service](https://azure.microsoft.com/en-us/products/ai-services/openai-service)** +::: + +## Configuration + +You can configure Azure OpenAI service through the UI, or you can configure it manually in `config.json`. + +```json title="~/.continue/config.json" +"models": [{ + "title": "Azure OpenAI", + "provider": "azure", + "model": "", + "apiBase": "", + "engine": "", + "apiVersion": "", + "apiType": "azure", + "apiKey": "" +}] +``` diff --git a/docs/docs/reference/Model Providers/cloudflare.md b/docs/docs/reference/Model Providers/cloudflare.md new file mode 100644 index 000000000..749472a45 --- /dev/null +++ b/docs/docs/reference/Model Providers/cloudflare.md @@ -0,0 +1,46 @@ +# Cloudflare Workers AI + +Cloudflare Workers AI can be used for both chat and tab autocompletion in Continue. To setup Cloudflare Workers AI, add the following to your `config.json` file: + +```json title="~/.continue/config.json" +{ + "models": [ + { + "accountId": "YOUR CLOUDFLARE ACCOUNT ID", + "apiKey": "YOUR CLOUDFLARE API KEY", + "contextLength": 2400, + "completionOptions": { + "maxTokens": 500 + }, + "model": "@cf/meta/llama-3-8b-instruct", // This can be the name of any model supported by Workers AI + "provider": "cloudflare", + "title": "Llama 3 8B" + }, + { + "accountId": "YOUR CLOUDFLARE ACCOUNT ID", + "apiKey": "YOUR CLOUDFLARE API KEY", + "contextLength": 2400, + "completionOptions": { + "maxTokens": 500 + }, + "model": "@hf/thebloke/deepseek-coder-6.7b-instruct-awq", + "provider": "cloudflare", + "title": "DeepSeek Coder 6.7b Instruct" + } + ... + "tabAutocompleteModel": { + "accountId": "YOUR CLOUDFLARE ACCOUNT ID", + "apiKey": "YOUR CLOUDFLARE API KEY", + "model": "@hf/thebloke/deepseek-coder-6.7b-base-awq", + "provider": "cloudflare", + "title": "DeepSeek 7b" + }, + ] +} +``` + +Visit the [Cloudflare dashboard](https://dash.cloudflare.com/) to [create an API key](https://developers.cloudflare.com/fundamentals/api/get-started/create-token/). + +Review [available models](https://developers.cloudflare.com/workers-ai/models/) on Workers AI + +[View the source](https://github.com/continuedev/continue/blob/main/core/llm/llms/Cloudflare.ts) diff --git a/docs/docs/reference/Model Providers/cohere.md b/docs/docs/reference/Model Providers/cohere.md new file mode 100644 index 000000000..06906470c --- /dev/null +++ b/docs/docs/reference/Model Providers/cohere.md @@ -0,0 +1,20 @@ +# Cohere + +To setup Cohere, add the following to your `config.json` file: + +```json title="~/.continue/config.json" +{ + "models": [ + { + "title": "Cohere", + "provider": "cohere", + "model": "command-r-plus", + "apiKey": "YOUR_API_KEY" + } + ] +} +``` + +Visit the [Cohere dashboard](https://dashboard.cohere.com/api-keys) to create an API key. + +[View the source](https://github.com/continuedev/continue/blob/main/core/llm/llms/Cohere.ts) diff --git a/docs/docs/reference/Model Providers/deepseek.md b/docs/docs/reference/Model Providers/deepseek.md new file mode 100644 index 000000000..af16f3749 --- /dev/null +++ b/docs/docs/reference/Model Providers/deepseek.md @@ -0,0 +1,16 @@ +# DeepSeek + +To setup DeepSeek, obtain an API key from [here](https://www.deepseek.com/) and add the following to your `config.json` file: + +```json title="~/.continue/config.json" +{ + "models": [ + { + "title": "Deepseek", + "provider": "deepseek", + "model": "deepseek-code", // Or any other DeepSeek model + "apiKey": "YOUR_API_KEY" + } + ] +} +``` diff --git a/docs/docs/reference/Model Providers/freetrial.md b/docs/docs/reference/Model Providers/freetrial.md index a2e7a57aa..da4f583cb 100644 --- a/docs/docs/reference/Model Providers/freetrial.md +++ b/docs/docs/reference/Model Providers/freetrial.md @@ -1,24 +1,92 @@ -# FreeTrial +# Free Trial -With the `FreeTrial` provider, new users can try out Continue with GPT-4 using a proxy server that securely makes calls to OpenAI using our API key. Continue should just work the first time you install the extension in VS Code. +The `"free-trial"` provider lets new users try out Continue with GPT-4, Llama3, Claude 3, and other models using a proxy server that securely makes API calls to these services. Continue will just work the first time you install the extension. To prevent abuse, we will ask you to sign in with GitHub, which you can [read more about below](#sign-in). -Once you are using Continue regularly though, you will need to add an OpenAI API key that has access to GPT-4 by following these steps: +While the Continue extension is always free to use, we cannot support infinite free LLM usage for all of our users. You will eventually need to either: + +1. Select an open-source model to use for free locally, or +2. Add your own API key for OpenAI, Anthropic, or another LLM provider + +## Options + +### 🦙 Ollama (free, local) + +Ollama is a local service that makes it easy to run language models on your laptop. + +1. Download Ollama from https://ollama.ai +2. Open `~/.continue/config.json`. You can do this by clicking the gear icon in the bottom right corner of the Continue sidebar +3. Add the following to your `config.json`: + +```json title="~/.continue/config.json" +{ + "models": [ + { + "title": "Llama3 8b", + "provider": "ollama", + "model": "llama3:8b" + } + ] +} +``` + +### ⚡️ Groq (extremely fast) + +Groq provides lightning fast inference for open-source LLMs like Llama3, up to twice as fast as through other providers. + +1. Obtain an API key from https://console.groq.com +2. Add the following to your `config.json`: + +```json title="~/.continue/config.json" +{ + "models": [ + { + "title": "Llama3 70b", + "provider": "groq", + "model": "llama3-70b", + "apiKey": "YOUR_API_KEY" + } + ] +} +``` + +### ✨ OpenAI (highly capable) 1. Copy your API key from https://platform.openai.com/account/api-keys -2. Open `~/.continue/config.json`. You can do this by using the '/config' command in Continue -3. Change the LLM to look like this: +2. Add the following to your `config.json`: ```json title="~/.continue/config.json" { "models": [ { - "title": "GPT-4", + "title": "GPT-4o", "provider": "openai", - "model": "gpt-4", + "model": "gpt-4o", "apiKey": "YOUR_API_KEY" } ] } ``` -[View the source](https://github.com/continuedev/continue/blob/main/core/llm/llms/FreeTrial.ts) +### ⏩ Other options + +The above were only a few examples, but Continue can be used with any LLM or provider. You can find [a full list of providers here](../../setup/select-provider.md). + +## Sign in + +Continue asks free trial users to sign in so that we can prevent abuse of our API endpoints. If you are not using the free trial, we will never ask you to sign in. + +### How do I stop Continue from asking me to sign in? + +Remove all models from the "models" array with `"provider": "free-trial"`, and we will never request sign in. + +### What information is collected? + +Continue uses your GitHub username and no other information, for the sole purpose of limiting requests. + +### What happens if I don't sign in? + +If you don't sign in, you can still use every feature of Continue, you will just need to provide your own LLM either with an API key or by running a local model. + +### How is telemetry related to sign in? + +It is not. We do not link your GitHub username to telemetry data. diff --git a/docs/docs/reference/Model Providers/geminiapi.md b/docs/docs/reference/Model Providers/geminiapi.md new file mode 100644 index 000000000..2971eba6f --- /dev/null +++ b/docs/docs/reference/Model Providers/geminiapi.md @@ -0,0 +1,20 @@ +# Gemini API + +The Google Gemini API is currently in beta. You can [create an API key in Google AI Studio](https://aistudio.google.com) and use `gemini-1.5-pro-latest`. Change `~/.continue/config.json` to include the following entry in the "models" array: + +```json title="~/.continue/config.json" +{ + "models": [ + { + "title": "Gemini Pro", + "provider": "gemini", + "model": "gemini-1.5-pro-latest", + "apiKey": "YOUR_API_KEY" + } + ] +} +``` + +Google has also released a more lightweight version of the model that still has a one-million-token context window and multimodal capabilities named Gemini Flash. It can be accessed by adding an entry in the models array similar to the above, but substituting "flash" for "pro" in the `title` and `model` values. + +[View the source](https://github.com/continuedev/continue/blob/main/core/llm/llms/Gemini.ts) diff --git a/docs/docs/reference/Model Providers/ipex_llm.md b/docs/docs/reference/Model Providers/ipex_llm.md new file mode 100644 index 000000000..f741b8554 --- /dev/null +++ b/docs/docs/reference/Model Providers/ipex_llm.md @@ -0,0 +1,39 @@ +# IPEX-LLM + +:::info +[**IPEX-LLM**](https://github.com/intel-analytics/ipex-llm) is a PyTorch library for running LLM on Intel CPU and GPU (e.g., local PC with iGPU, discrete GPU such as Arc A-Series, Flex and Max) with very low latency. +::: + +IPEX-LLM supports accelerated Ollama backend to be hosted on Intel GPU. Refer to [this guide](https://ipex-llm.readthedocs.io/en/latest/doc/LLM/Quickstart/ollama_quickstart.html) from IPEX-LLM official documentation about how to install and run Ollama serve accelerated by IPEX-LLM on Intel GPU. You can then configure Continue to use the IPEX-LLM accelerated `"ollama"` provider as follows: + +```json title="~/.continue/config.json" +{ + "models": [ + { + "title": "IPEX-LLM", + "provider": "ollama", + "model": "AUTODETECT" + } + ] +} +``` + +If you would like to reach the Ollama service from another machine, make sure you set or export the environment variable `OLLAMA_HOST=0.0.0.0` before executing the command `ollama serve`. Then, in the Continue configuration, set `'apiBase'` to correspond with the IP address / port of the remote machine. That is, Continue can be configured to be: + +```json title="~/.continue/config.json" +{ + "models": [ + { + "title": "IPEX-LLM", + "provider": "ollama", + "model": "AUTODETECT", + "apiBase": "http://your-ollama-service-ip:11434" + } + ] +} +``` + +:::tip +- For more configuration options regarding completion or authentication, you could refer to [here](./ollama.md#completion-options) for Ollama provider. +- If you would like to preload the model before your first conversation with that model in Continue, you could refer to [here](https://ipex-llm.readthedocs.io/en/latest/doc/LLM/Quickstart/continue_quickstart.html#pull-and-prepare-the-model) for more information. +::: diff --git a/docs/docs/reference/Model Providers/lmstudio.md b/docs/docs/reference/Model Providers/lmstudio.md index a44a84427..52c2b2275 100644 --- a/docs/docs/reference/Model Providers/lmstudio.md +++ b/docs/docs/reference/Model Providers/lmstudio.md @@ -14,4 +14,19 @@ } ``` +### Setting up a remote instance + +To configure a remote instance of LM Studio, add the `"apiBase"` property to your model in config.json: + +```json title="~/.continue/config.json" +{ + "title": "LM Studio", + "model": "codestral", + "provider": "lmstudio", + "apiBase": "http://x.x.x.x:1234/v1/" +} +``` + +This `apiBase` will now be used instead of the default `http://localhost:1234/v1`. + [View the source](https://github.com/continuedev/continue/blob/main/core/llm/llms/LMStudio.ts) diff --git a/docs/docs/reference/Model Providers/mistral.md b/docs/docs/reference/Model Providers/mistral.md index 3c3633438..448b8292a 100644 --- a/docs/docs/reference/Model Providers/mistral.md +++ b/docs/docs/reference/Model Providers/mistral.md @@ -7,8 +7,8 @@ The [Mistral](https://mistral.ai) API provides hosted access to their models, in "models": [ { "provider": "mistral", - "title": "Mistral Small", - "model": "mistral-small", + "title": "Codestral", + "model": "codestral-latest", "apiKey": "" } ] diff --git a/docs/docs/reference/Model Providers/msty.md b/docs/docs/reference/Model Providers/msty.md new file mode 100644 index 000000000..584176b9b --- /dev/null +++ b/docs/docs/reference/Model Providers/msty.md @@ -0,0 +1,49 @@ +# Msty + +[Msty](https://msty.app/) is an application for Windows, Mac, and Linux that makes it really easy to run online as well as local open-source models, including Llama-2, DeepSeek Coder, etc. No need to fidget with your terminal, run a command, or anything. Just download the app from the website, click a button, and you are up and running. Continue can then be configured to use the `Msty` LLM class: + +```json title="~/.continue/config.json" +{ + "models": [ + { + "title": "Msty", + "provider": "msty", + "model": "deepseek-coder:6.7b", + "completionOptions": {} + } + ] +} +``` + +## Completion Options + +In addition to the model type, you can also configure some of the parameters that Msty uses to run the model. + +- temperature: options.temperature - This is a parameter that controls the randomness of the generated text. Higher values result in more creative but potentially less coherent outputs, while lower values lead to more predictable and focused outputs. +- top_p: options.topP - This sets a threshold (between 0 and 1) to control how diverse the predicted tokens should be. The model generates tokens that are likely according to their probability distribution, but also considers the top-k most probable tokens. +- top_k: options.topK - This parameter limits the number of unique tokens to consider when generating the next token in the sequence. Higher values increase the variety of generated sequences, while lower values lead to more focused outputs. +- num_predict: options.maxTokens - This determines the maximum number of tokens (words or characters) to generate for the given input prompt. +- num_thread: options.numThreads - This is the multi-threading configuration option that controls how many threads the model uses for parallel processing. Higher values may lead to faster generation times but could also increase memory usage and complexity. Set this to one or two lower than the number of threads your CPU can handle to leave some for your GUI when running the model locally. + +## Authentication + +If you need to send custom headers for authentication, you may use the `requestOptions.headers` property like this: + +```json title="~/.continue/config.json" +{ + "models": [ + { + "title": "Msty", + "provider": "msty", + "model": "deepseek-coder:6.7b", + "requestOptions": { + "headers": { + "Authorization": "Bearer xxx" + } + } + } + ] +} +``` + +[View the source](https://github.com/continuedev/continue/blob/main/core/llm/llms/Msty.ts) diff --git a/docs/docs/reference/Model Providers/ollama.md b/docs/docs/reference/Model Providers/ollama.md index f2018e68b..45995bdc5 100644 --- a/docs/docs/reference/Model Providers/ollama.md +++ b/docs/docs/reference/Model Providers/ollama.md @@ -1,6 +1,6 @@ # Ollama -[Ollama](https://ollama.ai/) is an application for Mac and Linux that makes it easy to locally run open-source models, including Llama-2. Download the app from the website, and it will walk you through setup in a couple of minutes. You can also read more in their [README](https://github.com/jmorganca/ollama). Continue can then be configured to use the `Ollama` LLM class: +[Ollama](https://ollama.ai/) is an application for Mac, Windows, and Linux that makes it easy to locally run open-source models, including Llama3. Download the app from the website, and it will walk you through setup in a couple of minutes. You can also read more in their [README](https://github.com/ollama/ollama). Continue can then be configured to use the `"ollama"` provider: ```json title="~/.continue/config.json" { @@ -8,13 +8,14 @@ { "title": "Ollama", "provider": "ollama", - "model": "llama2-7b", - "completionOptions": {} + "model": "llama3:8b" } ] } ``` +If you'd like to host Ollama on another machine, you can set it up as described in the [Ollama FAQ](https://github.com/ollama/ollama/blob/main/docs/faq.md#how-can-i-expose-ollama-on-my-network), and then set `"apiBase"` to match the IP address / port of that machine. + ## Completion Options In addition to the model type, you can also configure some of the parameters that Ollama uses to run the model. @@ -35,7 +36,7 @@ If you need to send custom headers for authentication, you may use the `requestO { "title": "Ollama", "provider": "ollama", - "model": "llama2-7b", + "model": "llama3:8b", "requestOptions": { "headers": { "Authorization": "Bearer xxx" diff --git a/docs/docs/reference/Model Providers/openai.md b/docs/docs/reference/Model Providers/openai.md index 853d97b43..10c86206d 100644 --- a/docs/docs/reference/Model Providers/openai.md +++ b/docs/docs/reference/Model Providers/openai.md @@ -2,28 +2,10 @@ The OpenAI class can be used to access OpenAI models like GPT-4, GPT-4 Turbo, and GPT-3.5 Turbo. -### Azure OpenAI Service - -If you'd like to use OpenAI models but are concerned about privacy, you can use the Azure OpenAI service, which is GDPR and HIPAA compliant. After applying for access [here](https://azure.microsoft.com/en-us/products/ai-services/openai-service), you will typically hear back within only a few days. Once you have access, set up a model in `config.json` like so: - -```json -"models": [{ - "title": "Azure OpenAI", - "provider": "openai", - "model": "gpt-4", - "apiBase": "https://my-azure-openai-instance.openai.azure.com/", - "engine": "my-azure-openai-deployment", - "apiVersion": "2023-07-01-preview", - "apiType": "azure", - "apiKey": "" -}] -``` - -The easiest way to find this information is from the chat playground in the Azure OpenAI portal. Under the "Chat Session" section, click "View Code" to see each of these parameters. - -### OpenAI compatible servers / APIs +## OpenAI compatible servers / APIs OpenAI compatible servers + - [KoboldCpp](https://github.com/lostruins/koboldcpp) - [text-gen-webui](https://github.com/oobabooga/text-generation-webui/tree/main/extensions/openai#setup--installation) - [FastChat](https://github.com/lm-sys/FastChat/blob/main/docs/openai_api.md) @@ -36,7 +18,7 @@ OpenAI compatible APIs - [Anyscale Endpoints](https://github.com/continuedev/deploy-os-code-llm#others) - [Anyscale Private Endpoints](https://github.com/continuedev/deploy-os-code-llm#anyscale-private-endpoints) -If you are [using an OpenAI compatible server / API](../../model-setup/select-provider#local), you can change the `apiBase` like this: +If you are [using an OpenAI compatible server / API](../../setup/select-provider#local), you can change the `apiBase` like this: ```json title="~/.continue/config.json" { @@ -46,10 +28,16 @@ If you are [using an OpenAI compatible server / API](../../model-setup/select-pr "provider": "openai", "model": "MODEL_NAME", "apiKey": "EMPTY", - "apiBase": "http://localhost:8000" + "apiBase": "http://localhost:8000/v1" } ] } ``` +To force usage of `chat/completions` instead of `completions` endpoint you can set + +```json +"useLegacyCompletionsEndpoint": false +``` + [View the source](https://github.com/continuedev/continue/blob/main/core/llm/llms/OpenAI.ts) diff --git a/docs/docs/reference/Model Providers/openrouter.md b/docs/docs/reference/Model Providers/openrouter.md new file mode 100644 index 000000000..5f2558399 --- /dev/null +++ b/docs/docs/reference/Model Providers/openrouter.md @@ -0,0 +1,40 @@ +# OpenRouter + +OpenRouter is a unified interface for commercial and open-source models, giving you access to the best models at the best prices. You can sign up [here](https://openrouter.ai/signup), create your API key on the [keys page](https://openrouter.ai/keys), and then choose a model from the [list of supported models](https://openrouter.ai/models). + +Change `~/.continue/config.json` to look like the following. Since OpenRouter is fully API compatible with OpenAI, it is recommended to stick with `"provider": "openai"`, even if they aren't necessarily the upstream provider. + +```json title="~/.continue/config.json" +{ + "models": [ + { + "title": "OpenRouter LLaMA 70 8B", + "provider": "openai", + "model": "meta-llama/llama-3-70b-instruct", + "apiBase": "https://openrouter.ai/api/v1", + "apiKey": "..." + } + ] +} +``` + +To utilize features such as provider preferences or model routing configuration, include these parameters inside the `models[].requestsOptions.extraBodyProperties` field of your plugin config. + +For example, to prevent extra long prompts from being compressed, you can explicitly turn off the feature like so: + +```json title="~/.continue/config.json" +{ + "models": [ + { + ... + "requestOptions": { + "extraBodyProperties": { + "transforms": [] + } + } + } + ] +} +``` + +Learn more about available settings [here](https://openrouter.ai/docs). diff --git a/docs/docs/setup/configuration.md b/docs/docs/setup/configuration.md new file mode 100644 index 000000000..29c1110fd --- /dev/null +++ b/docs/docs/setup/configuration.md @@ -0,0 +1,324 @@ +--- +title: Configuration +description: Configure your LLM and model provider +keywords: [configure, llm, provider] +--- + +# Configuration + +Want a quick and easy setup for Continue? We've got you covered with some sample `config.json` files for different scenarios. Just copy and paste them into your `config.json` by clicking the gear icon at the bottom right of the Continue sidebar. + +## Quick Setup Options + +You can use Continue in different ways. Here are some quick setups for common uses: + +- [Free Trial](#free-trial) - Try Continue without any additional setup. +- [Best Overall Experience](#best-overall-experience) - Utilize the hand picked models for the best experience. +- [Local and Offline](#local-and-offline-configuration) - Use local models for offline use with better privacy. + +### Free Trial + +The `free-trial` lets new users try out Continue with GPT-4o, Llama3, Claude 3.5, and other models using a ContinueDev proxy server that securely makes API calls to these services. + +```json title="~/.continue/config.json" +{ + "models": [ + { + "title": "GPT-4o (trial)", + "provider": "free-trial", + "model": "gpt-4o" + } + ], + "tabAutocompleteModel": { + "title": "Codestral (trial)", + "provider": "free-trial", + "model": "AUTODETECT" + }, + "embeddingsProvider": { + "provider": "free-trial" + }, + "reranker": { + "name": "free-trial" + } +} +``` + +### Best Overall Experience + +This setup uses Claude 3.5 Sonnet for chatting, Codestral for autocomplete, and Voyage AI for embeddings and reranking. + +**What You Need:** + +1. Get an Anthropic API key from [Anthropic Console](https://console.anthropic.com/account/keys) +2. Get a Codestral API key from [Mistral AI's La Plateforme](https://console.mistral.ai/codestral) +3. Get an Voyage AI API key from [Voyage AI Dashboard](https://dash.voyageai.com/) +4. Replace `[CODESTRAL_API_KEY]`, `[ANTHROPIC_API_KEY]`, and `[VOYAGE_API_KEY]` with the keys you got from the above links. + +```json title="~/.continue/config.json" +{ + "models": [ + { + "title": "Claude 3.5 Sonnet", + "provider": "anthropic", + "model": "claude-3-5-sonnet-20240620", + "apiKey": "[ANTHROPIC_API_KEY]" + } + ], + "tabAutocompleteModel": { + "title": "Codestral", + "provider": "mistral", + "model": "codestral-latest", + "apiKey": "[CODESTRAL_API_KEY]" + }, + "embeddingsProvider": { + "provider": "openai", + "model": "voyage-code-2", + "apiBase": "https://api.voyageai.com/v1/", + "apiKey": "[VOYAGE_AI_API_KEY]" + }, + "reranker": { + "name": "voyage", + "params": { + "apiKey": "[VOYAGE_AI_API_KEY]" + } + } +} +``` + +### Local and Offline Configuration + +This configuration leverages Ollama for all functionalities - chat, autocomplete, and embeddings - ensuring that no code is transmitted outside your machine, allowing Continue to be run even on an air-gapped computer. + +**What You Need:** + +1. Download Ollama from [Ollama's Official Site](https://ollama.ai) +2. Pull the required models: + - For chat: `ollama pull llama3:8b` + - For autocomplete: `ollama pull starcoder2:3b` + - For embeddings: `ollama pull nomic-embed-text` + +```json title="~/.continue/config.json" +{ + "models": [ + { + "title": "Ollama", + "provider": "ollama", + "model": "AUTODETECT" + } + ], + "tabAutocompleteModel": { + "title": "Starcoder 2 3b", + "provider": "ollama", + "model": "starcoder2:3b" + }, + "embeddingsProvider": { + "provider": "ollama", + "model": "nomic-embed-text" + } +} +``` + +If you require a fully air-gapped setup, you may also want to: + +1. For VS Code, manually download the latest .vsix file from the [Open VSX Registry](https://open-vsx.org/extension/Continue/continue) rather than the VS Code Marketplace and [install it to VS Code](https://code.visualstudio.com/docs/editor/extension-marketplace#_install-from-a-vsix). For JetBrains, manually download the .zip file from the [JetBrains Plugin Repository](https://plugins.jetbrains.com/plugin/22707-continue) and [install it to your IDE](https://www.jetbrains.com/help/idea/managing-plugins.html#install_plugin_from_disk). +2. Open `~/.continue/config.json` and set `"allowAnonymousTelemetry": false`. This will stop Continue from attempting requests to PostHog for [anonymous telemetry](../telemetry.md). + +## Setting up chat models + +In `config.json`, you'll find the `models` property, a list of the models that you have saved to use with Continue: + +```json +"models": [ + { + "title": "GPT-4", + "provider": "free-trial", + "model": "gpt-4" + }, + { + "title": "GPT-3.5-Turbo", + "provider": "free-trial", + "model": "gpt-3.5-turbo" + } +] +``` + +Just by specifying the `model` and `provider` properties, we will automatically detect prompt templates and other important information, but if you're looking to do something beyond this basic setup, we'll explain a few other options below. + +## Self-hosting an open-source model + +For many cases, either Continue will have a built-in provider or the API you use will be OpenAI-compatible, in which case you can use the "openai" provider and change the "baseUrl" to point to the server. + +However, if neither of these are the case, you will need to wire up a new LLM object. Learn how to do this [here](#defining-a-custom-llm-provider). + +## Authentication + +Basic authentication can be done with any provider using the `apiKey` field: + +```json title="~/.continue/config.json" +{ + "models": [ + { + "title": "Ollama", + "provider": "ollama", + "model": "llama2-7b", + "apiKey": "xxx" + } + ] +} +``` + +This translates to the header `"Authorization": "Bearer xxx"`. + +If you need to send custom headers for authentication, you may use the `requestOptions.headers` property like in this example with Ollama: + +```json title="~/.continue/config.json" +{ + "models": [ + { + "title": "Ollama", + "provider": "ollama", + "model": "llama2-7b", + "requestOptions": { + "headers": { + "X-Auth-Token": "xxx" + } + } + } + ] +} +``` + +Similarly if your model requires a Certificate for authentication, you may use the `requestOptions.clientCertificate` property like in the example below: + +```json title="~/.continue/config.json" +{ + "models": [ + { + "title": "Ollama", + "provider": "ollama", + "model": "llama2-7b", + "requestOptions": { + "clientCertificate": { + "cert": "C:\tempollama.pem", + "key": "C:\tempollama.key", + "passphrase": "c0nt!nu3" + } + } + } + ] +} +``` + +## Context Length + +Continue by default knows the context length for common models. For example, it will automatically assume 200k tokens for Claude 3. For Ollama, the context length is determined automatically by asking Ollama. If neither of these are sufficient, you can manually specify the context length by using hte `"contextLength"` property in your model in config.json. + +```json title="~/.continue/config.json" +{ + "models": [ + { + "title": "My Custom Model", + "provider": "openai", + "model": "my-model", + "contextLength": 8192, + "apiBase": "http://localhost:8000/v1" + } + ] +} +``` + +## Customizing the Chat Template + +Most open-source models expect a specific chat format, for example llama2 and codellama expect the input to look like `"[INST] How do I write bubble sort in Rust? [/INST]"`. Continue will automatically attempt to detect the correct prompt format based on the `model`value that you provide, but if you are receiving nonsense responses, you can use the `template` property to explicitly set the format that you expect. The options are: `["llama2", "alpaca", "zephyr", "phind", "anthropic", "chatml", "openchat", "neural-chat", "none"]`. + +If you want to create an entirely new chat template, this can be done in [config.ts](../customization/code-config.md) by defining a function and adding it to the `templateMessages` property of your `LLM`. Here is an example of `templateMessages` for the Alpaca/Vicuna format: + +```typescript +function templateAlpacaMessages(msgs: ChatMessage[]): string { + let prompt = ""; + + if (msgs[0].role === "system") { + prompt += `${msgs[0].content}\n`; + msgs.pop(0); + } + + prompt += "### Instruction:\n"; + for (let msg of msgs) { + prompt += `${msg.content}\n`; + } + + prompt += "### Response:\n"; + + return prompt; +} +``` + +It can then be used like this: + +```typescript title="~/.continue/config.ts" +function modifyConfig(config: Config): Config { + const model = config.models.find( + (model) => model.title === "My Alpaca Model", + ); + if (model) { + model.templateMessages = templateAlpacaMessages; + } + return config; +} +``` + +This exact function and a few other default implementations are available in [`core/llm/templates/chat.ts`](https://github.com/continuedev/continue/blob/main/core/llm/templates/chat.ts). + +## Customizing the /edit Prompt + +You also have access to customize the prompt used in the '/edit' slash command. We already have a well-engineered prompt for GPT-4 and sensible defaults for less powerful open-source models, but you might wish to play with the prompt and try to find a more reliable alternative if you are for example getting English as well as code in your output. + +To customize the prompt, use the `promptTemplates` property of any model, which is a dictionary, and set the "edit" key to a template string with Mustache syntax. The 'filePrefix', 'fileSuffix', 'codeToEdit', 'language', 'contextItems', and 'userInput' variables are available in the template. Here is an example of how it can be set in `config.ts`: + +```typescript title="~/.continue/config.ts" +const codellamaEditPrompt = `\`\`\`{{{language}}} +{{{codeToEdit}}} +\`\`\` +[INST] You are an expert programmer and personal assistant. Your task is to rewrite the above code with these instructions: "{{{userInput}}}" + +Your answer should be given inside of a code block. It should use the same kind of indentation as above. +[/INST] Sure! Here's the rewritten code you requested: +\`\`\`{{{language}}}`; + +function modifyConfig(config: Config): Config { + config.models[0].promptTemplates["edit"] = codellamaEditPrompt; + return config; +} +``` + +You can find all existing templates for /edit in [`core/llm/templates/edit.ts`](https://github.com/continuedev/continue/blob/main/core/llm/templates/edit.ts). + +## Defining a Custom LLM Provider + +If you are using an LLM API that isn't already [supported by Continue](./select-provider.md), and is not an OpenAI-compatible API, you'll need to define a `CustomLLM` object in `config.ts`. This object only requires one of (or both of) a `streamComplete` or `streamChat` function. Here is an example: + +```typescript title="~/.continue/config.ts" +export function modifyConfig(config: Config): Config { + config.models.push({ + options: { + title: "My Custom LLM", + model: "mistral-7b", + }, + streamCompletion: async function* ( + prompt: string, + options: CompletionOptions, + fetch, + ) { + // Make the API call here + + // Then yield each part of the completion as it is streamed + // This is a toy example that will count to 10 + for (let i = 0; i < 10; i++) { + yield `- ${i}\n`; + await new Promise((resolve) => setTimeout(resolve, 1000)); + } + }, + }); + return config; +} +``` diff --git a/docs/docs/setup/overview.md b/docs/docs/setup/overview.md new file mode 100644 index 000000000..922389dc6 --- /dev/null +++ b/docs/docs/setup/overview.md @@ -0,0 +1,13 @@ +# Overview + +Continue gives you choice over what [Large Language Models (LLMs)](https://www.youtube.com/watch?v=zjkBMFhNj_g) you use. You can use it with commercial models like Claude 3 Opus via the Anthropic API, open-source models like Llama 3 running on your laptop with Ollama, and everything in between. + +When you first install Continue, you can try it out for free using a proxy server that securely makes calls with our API keys. Once you're ready to use your own API keys or different models / providers, you can add them to the `config.json`. + +You will need to decide which models and providers you use for [chat](select-model.md#chat), [autocomplete](select-model.md#autocomplete), and [embeddings](select-model.md#embeddings). + +Learn more: + +- [Configuration](configuration.md) +- [Select providers](select-provider.md) +- [Select models](select-model.md) diff --git a/docs/docs/setup/select-model.md b/docs/docs/setup/select-model.md new file mode 100644 index 000000000..a04cfa399 --- /dev/null +++ b/docs/docs/setup/select-model.md @@ -0,0 +1,90 @@ +--- +title: Select models +description: Configure LLMs +keywords: [llama-3, gpt-4, claude-3, gemini-pro, deepseek] +--- + +# Select models + +Continue makes it easy to use different models for chat, autocomplete, and embeddings. To select the models you want to use, add them to your `config.json`. + +## Chat + +You likely want to use a model that is 30B+ parameters for chat. + +### Open-source LLMs + +_We currently recommend the following open-source models:_ + +#### Llama 3 from Meta + +- Unlimited GPU: `llama3-70b` +- Limited GPU: `llama3-8B` + +#### DeepSeek Coder from DeepSeek + +- Unlimited GPU: `deepseek-coder-33b` +- Limited GPU: `deepseek-coder-6.7b` + +_You can also use other open-source chat models by adding them to your `config.json`._ + +### Commercial LLMs + +#### Claude 3 from Anthropic + +- Unlimited budget: `claude-3-5-sonnet-20240620` +- Limited budget: `claude-3-5-sonnet-20240620` + +#### GPT-4o from OpenAI + +- Unlimited budget: `gpt-4o` +- Limited budget: `gpt-3.5-turbo-0125` + +#### Gemini Pro from Google + +- Unlimited budget: `gemini-pro-1.5-latest` +- Limited budget: `gemini-flash-1.5-latest` or `gemini-pro-1.0` + +_You can also use other commercial chat models by adding them to your `config.json`._ + +## Autocomplete + +You likely want to use a model that is 1-15B parameters for autocomplete. + +### Commercial LLMs + +#### Codestral from Mistral + +Our current recommendation for autocomplete, if you are able to choose any model, is `codestral-latest` from [Mistral's API](../walkthroughs/set-up-codestral.md). + +### Open-source LLMs + +_We currently recommend the following open-source models:_ + +#### DeepSeek Coder from DeepSeek + +- Unlimited GPU: `deepseek-coder-6.7b` +- Limited GPU: `deepseek-coder-1.3b` + +#### StarCoder 2 from Hugging Face + +- Unlimited GPU: `starcoder-2-7b` +- Limited GPU: `starcoder-2-3b` + +_You can also use other autocomplete models by adding them to your `config.json`._ + +## Embeddings + +We recommend the following embeddings models, which are used for codebase retrieval as described [here](../walkthroughs/codebase-embeddings.md#embeddings-providers) + +### Open-source models + +- `nomic-embed-text` + +### Commercial models + +- `voyage-code-2` + +_You can also use other embeddings models by adding them to your `config.json`._ + +**In addition to selecting models, you will need to figure out [what providers to use](./select-provider.md).** diff --git a/docs/docs/setup/select-provider.md b/docs/docs/setup/select-provider.md new file mode 100644 index 000000000..d17218a6e --- /dev/null +++ b/docs/docs/setup/select-provider.md @@ -0,0 +1,72 @@ +--- +title: Select providers +description: Configure LLM providers +keywords: [openai, anthropic, gemini, ollama, ggml] +--- + +# Select providers + +Continue makes it easy to use different providers for serving your chat, autocomplete, and embeddings models. + +To select the ones you want to use, add them to your `config.json`. + +## Self-hosted + +### Local + +You can run a model on your local computer using: + +- [Ollama](../reference/Model%20Providers/ollama.md) +- [LM Studio](../reference/Model%20Providers/lmstudio.md) +- [Llama.cpp](../reference/Model%20Providers/llamacpp.md) +- [KoboldCpp](../reference/Model%20Providers/openai.md) (OpenAI compatible server) +- [llamafile](../reference/Model%20Providers/llamafile) (OpenAI compatible server) +- [LocalAI](../reference/Model%20Providers/openai.md) (OpenAI compatible server) +- [Text generation web UI](../reference/Model%20Providers/openai.md) (OpenAI compatible server) +- [FastChat](../reference/Model%20Providers/openai.md) (OpenAI compatible server) +- [llama-cpp-python](../reference/Model%20Providers/openai.md) (OpenAI compatible server) +- [TensorRT-LLM](https://github.com/NVIDIA/trt-llm-as-openai-windows?tab=readme-ov-file#examples) (OpenAI compatible server) +- [IPEX-LLM](../reference/Model%20Providers/ipex_llm.md) (Local LLM on Intel GPU) +- [Msty](../reference/Model%20Providers/msty.md) + +### Remote + +You can deploy a model in your [AWS](https://github.com/continuedev/deploy-os-code-llm#aws), [GCP](https://github.com/continuedev/deploy-os-code-llm#gcp), [Azure](https://github.com/continuedev/deploy-os-code-llm#azure), or [other clouds](https://github.com/continuedev/deploy-os-code-llm#others-2) using: + +- [HuggingFace TGI](https://github.com/continuedev/deploy-os-code-llm#tgi) +- [vLLM](https://github.com/continuedev/deploy-os-code-llm#vllm) +- [SkyPilot](https://github.com/continuedev/deploy-os-code-llm#skypilot) +- [Anyscale Private Endpoints](https://github.com/continuedev/deploy-os-code-llm#anyscale-private-endpoints) (OpenAI compatible API) + +## SaaS + +You can access both open-source and commercial LLMs via: + +- [OpenRouter](../reference/Model%20Providers/openrouter.md) + +### Open-source models + +You can run open-source LLMs with cloud services like: + +- [Codestral API](../walkthroughs/set-up-codestral.md) +- [Together](../reference/Model%20Providers/togetherllm.md) +- [HuggingFace Inference Endpoints](../reference/Model%20Providers/huggingfaceinferenceapi.md) +- [Anyscale Endpoints](../reference/Model%20Providers/openai.md) (OpenAI compatible API) +- [Replicate](../reference/Model%20Providers/replicatellm.md) +- [Deepinfra](../reference/Model%20Providers/deepinfra.md) +- [Groq](../reference/Model%20Providers/openai.md) (OpenAI compatible API) +- [AWS Bedrock](../reference/Model%20Providers/bedrock.md) + +### Commercial models + +You can use commercial LLMs via APIs using: + +- [Anthrophic API](../reference/Model%20Providers/anthropicllm.md) +- [OpenAI API](../reference/Model%20Providers/openai.md) +- [Azure OpenAI Service](../reference/Model%20Providers/openai.md) +- [Google Gemini API](../reference/Model%20Providers/geminiapi.md) +- [Mistral API](../reference/Model%20Providers/mistral.md) +- [Voyage AI API](../walkthroughs/codebase-embeddings.md#openai) +- [Cohere API](../reference/Model%20Providers/cohere.md) + +**In addition to selecting providers, you will need to figure out [what models to use](./select-model.md).** diff --git a/docs/docs/telemetry.md b/docs/docs/telemetry.md index 1e5e23205..886f129c8 100644 --- a/docs/docs/telemetry.md +++ b/docs/docs/telemetry.md @@ -8,19 +8,24 @@ keywords: [telemetry, anonymous, usage info, opt out] ## Overview -Continue collects and reports **anonymous** usage information. This data is essential to understanding how we should improve the product. You can opt out of it at any time. We use [Posthog](https://posthog.com/), an open source platform for product analytics, to collect and store the data. You can review the code [here](https://github.com/continuedev/continue/blob/main/gui/src/hooks/CustomPostHogProvider.tsx). +Continue collects and reports **anonymous** usage information. -## What we track +This data is essential to understanding how we should improve the product. You can opt out of it at any time. -We track +We use [Posthog](https://posthog.com/), an open source platform for product analytics, to collect and store the data. You can review the code [here](https://github.com/continuedev/continue/blob/main/gui/src/hooks/CustomPostHogProvider.tsx), or review our official policy [here](https://continue.dev/privacy). -- whether you accept or reject suggestions (not the code itself) -- the name of slash commands that are run -- the name of your OS and IDE -- the name of the default model you configured +## Tracking policy All data is anonymous and cleaned of PII before being sent to PostHog. +## What we track + +- Whether you accept or reject suggestions (never including the code or the prompt) +- The name of the model and command used +- The number of tokens generated +- The name of your OS and IDE +- Pageviews + ## How to opt out The `~/.continue` directory contains a `config.json` file that looks like this: diff --git a/docs/docs/troubleshooting.md b/docs/docs/troubleshooting.md index a452bff57..f330345a7 100644 --- a/docs/docs/troubleshooting.md +++ b/docs/docs/troubleshooting.md @@ -14,17 +14,64 @@ To solve many problems, the first step is reading the logs to find the relevant ### VS Code +#### Console logs + 1. `cmd+shift+p` (MacOS) / `ctrl+shift+p` (Windows) 2. Search for and then select "Developer: Toggle Developer Tools" 3. This will open the [Chrome DevTools window](https://developer.chrome.com/docs/devtools/) 4. Select the `Console` tab 5. Read the console logs +#### LLM prompt logs + +If you're getting a response from the LLM that doesn't seem to make sense, you can + +1. Open the "Output" panel (right next to the terminal) +2. In the dropdown, select "Continue - LLM Prompts/Completions" +3. View the exact prompts that were sent to the LLM and the completions recieved + ### JetBrains Open `~/.continue/core.log`. The most recent logs are found at the bottom of the file. -## Configure Certificates +## Download the latest pre-release + +### VS Code + +We are constantly making fixes and improvements to Continue, but the latest changes remain in a "pre-release" version for roughly a week so that we can test their stability. If you are experiencing issues, you can try the pre-release by going to the Continue extension page in VS Code and selecting "Switch to Pre-Release" as shown below. + +![Pre-Release](../static/img/prerelease.png) + +### JetBrains + +On JetBrains, the "pre-release" happens through their Early Access Program (EAP) channel. To download the latest EAP version, enable the EAP channel: + +1. Open JetBrains settings (cmd/ctrl+,) and go to "Plugins" +2. Click the gear icon at the top +3. Select "Manage Plugin Repositories..." +4. Add "https://plugins.jetbrains.com/plugins/eap/list" to the list +5. You'll now always be able to download the latest EAP version from the marketplace + +## Download an Older Version + +If you've tried everything, reported an error, know that a previous version was working for you, and are waiting to hear back, you can try downloading an older version of the extension. + +For VS Code, All versions are hosted on the Open VSX Registry [here](https://open-vsx.org/extension/Continue/continue). Once you've downloaded the extension, which will be a .vsix file, you can install it manually by following the instructions [here](https://code.visualstudio.com/docs/editor/extension-gallery#_install-from-a-vsix). + +You can find older versions of the JetBrains extension on their [marketplace](https://plugins.jetbrains.com/plugin/22707-continue), which will walk you through installing from disk. + +## Keyboard shortcuts not resolving + +If your keyboard shortcuts are not resolving, you may have other commands that are taking precedence over the Continue shortcuts. You can see if this is the case, and change your shortcut mappings, in the configuration of your IDE. + +- [VSCode keyboard shortcuts docs](https://code.visualstudio.com/docs/getstarted/keybindings) +- [IntelliJ keyboard shortcut docs](https://www.jetbrains.com/help/idea/configuring-keyboard-and-mouse-shortcuts.html) + +## FAQs + +### Networking Issues + +#### Configure Certificates If you're seeing a `fetch failed` error and your network requires custom certificates, you will need to configure them in `config.json`. In each of the objects in the `"models"` array, add `requestOptions.caBundlePath` like this: @@ -45,17 +92,21 @@ If you're seeing a `fetch failed` error and your network requires custom certifi You may also set `requestOptions.caBundlePath` to an array of paths to multiple certificates. -## Download a Newer Version +#### VS Code Proxy Settings -If you are using an older version of the Continue extension, particularly one which depends on the separate Python server, we would recommend downloading the latest version of the extension, as we are constantly making bug fixes and are likely to have solved any major issues. +If you are using VS Code and require requests to be made through a proxy, you are likely already set up through VS Code's [Proxy Server Support](https://code.visualstudio.com/docs/setup/network#_proxy-server-support). To double-check that this is enabled, use cmd/ctrl+, to open settings and search for "Proxy Support". Unless it is set to "off", then VS Code is responsible for making the request to the proxy. -## Download an Older Version +#### code-server -If you've tried everything, reported an error, know that a previous version was working for you, and are waiting to hear back, you can try downloading an older version of the extension. +Continue can be used in [code-server](https://coder.com/), but if you are running across an error in the logs that includes "This is likely because the editor is not running in a secure context", please see [their documentation on securely exposing code-server](https://coder.com/docs/code-server/latest/guide#expose-code-server). -For VS Code, All versions are hosted on the Open VSX Registry [here](https://open-vsx.org/extension/Continue/continue). Once you've downloaded the extension, which will be a .vsix file, you can install it manually by following the instructions [here](https://code.visualstudio.com/docs/editor/extension-gallery#_install-from-a-vsix). +### I installed Continue, but don't see the sidebar window -You can find older versions of the JetBrains extension on their [marketplace](https://plugins.jetbrains.com/plugin/22707-continue), which will walk you through installing from disk. +By default the Continue window is on the left side of VS Code, but it can be dragged to right side as well, which we recommend in our tutorial. In the situation where you have previously installed Continue and moved it to the right side, it may still be there. You can reveal Continue either by using cmd/ctrl+L or by clicking the button in the top right of VS Code to open the right sidebar. + +### I'm getting a 404 error from OpenAI + +If you have entered a valid API key and model, but are still getting a 404 error from OpenAI, this may be because you need to add credits to your billing account. You can do so from the [billing console](https://platform.openai.com/settings/organization/billing/overview). If you just want to check that this is in fact the cause of the error, you can try adding $1 to your account and checking whether the error persists. ## Still having trouble? diff --git a/docs/docs/walkthroughs/codebase-embeddings.md b/docs/docs/walkthroughs/codebase-embeddings.md index 701100a4d..8b2764c1c 100644 --- a/docs/docs/walkthroughs/codebase-embeddings.md +++ b/docs/docs/walkthroughs/codebase-embeddings.md @@ -1,7 +1,7 @@ --- title: Codebase Retrieval description: Talk to your codebase -keywords: [talk, embeddings, codebase, experimental] +keywords: [talk, embeddings, reranker, codebase, experimental] --- # Codebase retrieval @@ -68,7 +68,7 @@ Whether to use re-ranking, which will allow initial selection of `nRetrieve` res We also support other methods of generating embeddings, which can be configured with the `"embeddingsProvider"` property in `config.json`. We currently have built-in support for the following providers: -### Transformers.js +### Transformers.js (currently VS Code only) [Transformers.js](https://huggingface.co/docs/transformers.js/index) is a JavaScript port of the popular [Transformers](https://huggingface.co/transformers/) library. It allows embeddings to be calculated locally in the browser (or in this case inside of the sidebar of your IDE). The model used is `all-MiniLM-L6-v2`, which is shipped alongside the Continue extension and generates embeddings of size 384. @@ -82,57 +82,122 @@ We also support other methods of generating embeddings, which can be configured ### Ollama -[Ollama](https://ollama.ai) is the easiest way to get up and running with open-source language models. It provides an entirely local REST API for working with LLMs, including generating embeddings. The embeddings generated are slightly larger, with a size of 4096 for `codellama:7b`. +[Ollama](https://ollama.ai) is the easiest way to get up and running with open-source language models. It provides an entirely local REST API for working with LLMs, including generating embeddings. We recommend using an embeddings model like `nomic-embed-text`: ```json title="~/.continue/config.json" { "embeddingsProvider": { "provider": "ollama", - "model": "codellama:7b", + "model": "nomic-embed-text", "apiBase": "http://localhost:11434" // optional, defaults to http://localhost:11434 } } ``` +### Text Embeddings Inference + +[Hugging Face Text Embeddings Inference](https://huggingface.co/docs/text-embeddings-inference/en/index) enables you to host your own embeddings endpoint. You can configure embeddings to use your endpoint as follows: + +```json title="~/.continue/config.json" +{ + "embeddingsProvider": { + "provider": "huggingface-tei", + "apiBase": "http://localhost:8080" + } +} +``` + +### Voyage AI + +Voyage AI offers the best embeddings for code with their voyage-code-2 model. After obtaining an API key from [here](https://www.voyageai.com/), you can configure like this: + +```json title="~/.continue/config.json" +{ + "embeddingsProvider": { + "provider": "openai", + "model": "voyage-code-2", + "apiBase": "https://api.voyageai.com/v1/", + "apiKey": "" + } +} +``` + ### OpenAI OpenAI's [embeddings](https://platform.openai.com/docs/guides/embeddings) are high dimensional embeddings that give great performance on both text and code. -Configuration for text-embedding-3-small Model. This is default. -The text-embedding-3-small model offers an outstanding balance between performance and efficiency, suitable for a versatile range of applications. +#### Configuration for the `text-embedding-3-small` model + +This is default. The `text-embedding-3-small` model offers an outstanding balance between performance and efficiency, suitable for a versatile range of applications. ```json title="~/.continue/config.json" { "embeddingsProvider": { "provider": "openai", "model": "text-embedding-3-small", - "apiBase": "" // optional, defaults to OpenAI's API + "apiBase": "", // optional, defaults to OpenAI's API + "apiKey": "" } } ``` -Configuration for text-embedding-3-large Model -For those requiring the highest level of embedding detail and precision, the text-embedding-3-large model is the better choice. +#### Configuration for the `text-embedding-3-large` model + +For those requiring the highest level of embedding detail and precision, the `text-embedding-3-large` model is the better choice. ```json title="~/.continue/config.json" { "embeddingsProvider": { "provider": "openai", "model": "text-embedding-3-large", - "apiBase": "" // optional, defaults to OpenAI's API + "apiBase": "", // optional, defaults to OpenAI's API + "apiKey": "" } } ``` -Legacy Model Configuration -For certain scenarios, you may still find the text-embedding-ada-002 model relevant. Below is the configuration example: +#### Legacy Model Configuration + +For certain scenarios, you may still find the `text-embedding-ada-002` model relevant. Below is the configuration example: ```json title="~/.continue/config.json" { "embeddingsProvider": { "provider": "openai", "model": "text-embedding-ada-002", - "apiBase": "" // optional, defaults to OpenAI's API + "apiBase": "", // optional, defaults to OpenAI's API + "apiKey": "" + } +} +``` + +### Cohere + +Configuration for the `embed-english-v3.0` model. This is the default. + +```json title="~/.continue/config.json" +{ + "embeddingsProvider": { + "provider": "cohere", + "model": "embed-english-v3.0", + "apiKey": "" + } +} +``` + +See Cohere's [embeddings](https://docs.cohere.com/docs/embed-2) for available models. Only embedding models v3 and higher are supported. + +### Gemini + +Gemini's _Text Embedding_ model is optimized for creating embeddings with 768 dimensions for text of up to 2,048 tokens. + +As of May 2024, the only available embedding model from Gemini is [`text-embedding-004`](https://ai.google.dev/gemini-api/docs/models/gemini#text-embedding-and-embedding). + +```json title="~/.continue/config.json" +{ + "embeddingsProvider": { + "provider": "gemini", + "apiKey": "" } } ``` @@ -153,7 +218,7 @@ export function modifyConfig(config: Config): Config { }); const data = await response.json(); return data.embedding; - }) + }), ); }, }; @@ -162,10 +227,77 @@ export function modifyConfig(config: Config): Config { } ``` -## Customizing which files are indexed +## Reranking providers + +The reranker plays a crucial role in refining the results retrieved from your codebase. It processes the initial set of results obtained through embeddings-based retrieval, improving their relevance and accuracy for your queries. + +Continue offers several reranking options: `cohere`, `voyage`, `llm`, and `free-trial`, which can be configured in `config.json`. + +### Voyage AI + +Voyage AI offers the best reranking model for code with their rerank-lite-1 model. After obtaining an API key from [here](https://www.voyageai.com/), you can configure like this: + +```json title="~/.continue/config.json" +{ + "reranker": { + "name": "voyage", + "params": { + "model": "rerank-lite-1", + "apiKey": "" + } + } +} +``` + +### Cohere + +See Cohere's documentation for rerankers [here](https://docs.cohere.com/docs/rerank-2). + +```json title="~/.continue/config.json" +{ + "reranker": { + "name": "cohere", + "params": { + "model": "rerank-english-v3.0", + "apiKey": "" + } + } +} +``` + +### LLM + +If you only have access to a single LLM, then you can use it as a reranker. This is discouraged unless truly necessary, because it will be much more expensive and still less accurate than any of the above models trained specifically for the task. Note that this will not work if you are using a local model, for example with Ollama, because too many parallel requests need to be made. + +```json title="~/.continue/config.json" +{ + "reranker": { + "name": "llm", + "params": { + "modelTitle": "My Model Title" + } + } +} +``` + +The `"modelTitle"` field must match one of the models in your "models" array in config.json. + +### Free Trial (Voyage AI) + +Continue offers a free trial of Voyage AI's reranking model. + +```json title="~/.continue/config.json" +{ + "reranker": { + "name": "free-trial" + } +} +``` + +## Ignore files during indexing Continue respects `.gitignore` files in order to determine which files should not be indexed. If you'd like to exclude additional files, you can add them to a `.continueignore` file, which follows the exact same rules as `.gitignore`. -If you want to see exactly what files Continue has indexed, the metadata is stored in `~/.continue/index/index.sqlite`. You can use a tool like [DB Browser for SQLite](https://sqlitebrowser.org/) to view the `tags_catalog` table within this file. +If you want to see exactly what files Continue has indexed, the metadata is stored in `~/.continue/index/index.sqlite`. You can use a tool like [DB Browser for SQLite](https://sqlitebrowser.org/) to view the `tag_catalog` table within this file. If you need to force a refresh of the index, reload the VS Code window with `cmd/ctrl + shift + p` + "Reload Window". diff --git a/docs/docs/walkthroughs/codellama.md b/docs/docs/walkthroughs/codellama.md index 9ee122234..c6c583c79 100644 --- a/docs/docs/walkthroughs/codellama.md +++ b/docs/docs/walkthroughs/codellama.md @@ -1,12 +1,12 @@ --- title: Using Code Llama with Continue description: How to use Code Llama with Continue -keywords: [code llama, meta, togetherai, ollama, replciate, fastchat] +keywords: [code llama, meta, togetherai, ollama, replciate, fastchat, msty] --- # Using Code Llama with Continue -With Continue, you can use Code Llama as a drop-in replacement for GPT-4, either by running locally with Ollama or GGML or through Replicate. +With Continue, you can use Code Llama as a drop-in replacement for GPT-4, either by running locally with Ollama, Msty, or GGML or through Replicate. If you haven't already installed Continue, you can do that [here](https://marketplace.visualstudio.com/items?itemName=Continue.continue). For more general information on customizing Continue, read [our customization docs](../customization/overview.md). @@ -83,3 +83,21 @@ If you haven't already installed Continue, you can do that [here](https://market ] } ``` + +## Msty + +1. Download Msty [here](https://msty.app/) for your platform (Windows, Mac, or Linux) +2. Open the app and click "Setup Local AI". Optionally, download any model you want with just a click of a button from the Text Module page. +3. Change your Continue config file like this: + +```json title="~/.continue/config.json" +{ + "models": [ + { + "title": "Code Llama", + "provider": "msty", + "model": "codellama:7b" + } + ] +} +``` diff --git a/docs/docs/walkthroughs/prompt-files.md b/docs/docs/walkthroughs/prompt-files.md new file mode 100644 index 000000000..bb5c0f68f --- /dev/null +++ b/docs/docs/walkthroughs/prompt-files.md @@ -0,0 +1,77 @@ +# Prompt files (experimental) + +Prompt (`.prompt`) files are an easy way to build and share LLM prompts with others. The format is inspired by [HumanLoops's .prompt file](https://docs.humanloop.com/docs/prompt-file-format), and adds templating so that you can easily refer to files, your current git diff, and eventually much more. + +## How to create a prompt file + +Below is a quick example of setting up a prompt file to write unit tests using Jest. + +1. Create a folder called `.prompts/` at the top level of your workspace. +2. Add a file called `test.prompt` to this folder. The name of this file will be the name of the slash command you will use to generate your prompt. +3. Write the following contents to `test.prompt` and save. + +``` +temperature: 0.5 +maxTokens: 4096 +--- + +You are an expert programmer + + +{{{ input }}} + +Write unit tests for the above selected code, following each of these instructions: +- Use `jest` +- Properly set up and tear down +- Include important edge cases +- The tests should be complete and sophisticated +- Give the tests just as chat output, don't edit any file +- Don't explain how to set up `jest` +``` + +Now to use this prompt, you can highlight code and use cmd/ctrl+L to select it in the Continue sidebar. Then, type "/" to see the list of slash commands and choose the one called "test". Press enter and the LLM will respond given the instructions from your prompt file. + +## Syntax + +> The current state of this format is experimental and subject to change + +### Preamble + +The "preamble" is everything above the `---` separator, and lets you specify model parameters. It uses YAML syntax and currently supports the following parameters: + +- `temperature` +- `topP` +- `topK` +- `minP` +- `presencePenalty` +- `frequencyPenalty` +- `mirostat` +- `stop` +- `maxTokens` +- `name` +- `description` + +If you don't need any of these parameters, you can leave out the preamble and do not need to include the `---` separator. + +### Body + +The "body" is everything below the `---` separator, and contains your prompt. + +At its most basic, the body can be just text. + +To add a system message, start the body with `` tags like in the example above and place your system message inside. + +The body also supports templating with [Handlebars syntax](https://handlebarsjs.com/guide/). The following variables are currently available: + +- `input`: The full text from the input box in the sidebar that is sent along with the slash command +- `currentFile`: The currently open file in your IDE + +#### Context providers + +The body of a .prompt file also supports any [context provider](../customization/context-providers.md) that you have added to your config by referencing the name of the context provider. + +For example, if you wanted to include the contents of the terminal in your prompt, then you would use `{{{terminal}}}` in your prompt file. If you wanted to use the "url" context provider to include the contents of https://github.com/continuedev/continue, you would use `{{{url "https://github.com/continuedev/continue"}}}`, where the second part is the argument to the context provider, separated by a space. + +## Feedback + +If you have ideas about how to improve the `.prompt` file format, please reach out on [Discord](https://discord.gg/NWtdYexhMs). diff --git a/docs/docs/walkthroughs/quick-actions.md b/docs/docs/walkthroughs/quick-actions.md new file mode 100644 index 000000000..7c6ce8887 --- /dev/null +++ b/docs/docs/walkthroughs/quick-actions.md @@ -0,0 +1,94 @@ +--- +title: Quick Actions (experimental, VS Code only) +description: Quick Actions streamline your development workflow by allowing quick edits on selected classes or functions +keywords: [experimental, automate, configuration] +toc_max_heading_level: 5 +--- + +## Quick Actions (experimental, VS Code only) + +Quick Actions streamline your development workflow by providing a tool to quickly select an entire class or function to perform a quick edit on. Configure custom actions to execute complex operations with a single click. + +![Quick actions example](/img/quick-actions-demo.gif) + +## How It Works + +:::info[Note] +For the language of the file you have open, you must have the Language Server Protocol extension installed. +::: + +Quick Actions use a CodeLens provider to add interactive elements above functions and classes in your code. + +By default, Quick Actions include a single predefined action: + +- `Continue`: This action allows you to perform a quick edit on the selected class or function. + +## How to disable Quick Actions + +Quick Actions are enabled by default _for pre-release versions of Contine_. + +To disable Quick Actions, open the settings menu (`⌘ + ,`), search for `"continue.enableQuickActions"`, and toggle the checkbox to disable. + +## Custom Quick Actions + +Custom Quick Actions allow you to tailor functionality to your specific needs, extending beyond the default actions. You can easily configure these custom actions in your `~/.continue/config.json` file. + +:::info +[View the Configuration Options reference](../reference/config) for specific schema details. +::: + +### Example Use Cases + +#### 1. Write an inline unit test + +A quick action that generates and inserts a unit test above the selected code. + +```json title=~/.continue/config.json +"experimental": { + "quickActions": [ + { + "title": "Unit test", + "prompt": "Write a unit test for this code. Do not change anything about the code itself.", + } + ] + } +``` + +#### 2. Send code to chat panel to learn more about it + +The default "Explain" aims to provide a brief overview of the code. This quick action sends the prompt and the code to the chat to provides a more detailed explanation. + +```json title=~/.continue/config.json +"experimental": { + "quickActions": [ + { + "title": "Detailed explanation", + "prompt": "Explain the following code in detail, including all methods and properties.", + "sendToChat": true + } + ] + } +``` + +#### 3. Create a Typescript interface + +A quick action that generates and inserts a Typescript interface above the selected code. + +```json title=~/.continue/config.json +"experimental": { + "quickActions": [ + { + "title": "Create Interface", + "prompt": "Create a new Typescript interface for the following code.", + } + ] + } +``` + +## Share your feedback + +We'd love to hear your thoughts on Quick Actions! Share your feedback and help us improve. + + + +Give Feedback on Discord diff --git a/docs/docs/walkthroughs/running-continue-without-internet.md b/docs/docs/walkthroughs/running-continue-without-internet.md index d460e6700..23d020630 100644 --- a/docs/docs/walkthroughs/running-continue-without-internet.md +++ b/docs/docs/walkthroughs/running-continue-without-internet.md @@ -9,6 +9,6 @@ keywords: [no internet, air-gapped, local model] Continue can be run even on an air-gapped computer if you use a local model. Only a few adjustments are required for this to work. 1. Download the latest .vsix file from the [Open VSX Registry](https://open-vsx.org/extension/Continue/continue) and [install it to VS Code](https://code.visualstudio.com/docs/editor/extension-marketplace#_install-from-a-vsix). -2. Open `~/.continue/config.json` and set `"allowAnonymousTelemetry": false`. This will stop Continue from attempting requests to PostHog. -3. Also in `config.json`, set the default model to a local model. You can read about the available options [here](../model-setup/select-model.md). +2. Open `~/.continue/config.json` and set `"allowAnonymousTelemetry": false`. This will stop Continue from attempting requests to PostHog for [anonymous telemetry](../telemetry.md). +3. Also in `config.json`, set the default model to a local model. You can read about the available options [here](../setup/select-model.md). 4. Restart VS Code to ensure that the changes to `config.json` take effect. diff --git a/docs/docs/walkthroughs/set-up-codestral.md b/docs/docs/walkthroughs/set-up-codestral.md new file mode 100644 index 000000000..5ffee8fa5 --- /dev/null +++ b/docs/docs/walkthroughs/set-up-codestral.md @@ -0,0 +1,71 @@ +--- +title: How to set up Codestral +description: How to set up Codestral +keywords: [codestral, mistral, model setup] +--- + +# How to set up Codestral with Continue + +![mistral x continue](../../static/img/mistral-x-continue.png) + +**Here is a step-by-step guide on how to set up Codestral with Continue using the Mistral AI API:** + +1. Install the Continue VS Code or JetBrains extension following the instructions [here](../quickstart.md) + +2. Click on the gear icon in the bottom right corner of the Continue window to open `~/.continue/config.json` (MacOS) / `%userprofile%\.continue\config.json` (Windows) + +3. Log in and create an API key on Mistral AI's La Plateforme [here](https://console.mistral.ai/codestral). Make sure you get an API key from the "Codestral" page, as an API key for the normal "api.mistral.ai" API will not work. + +4. To use Codestral as your model for both `autocomplete` and `chat`, replace `[API_KEY]` with your Mistral API key below and add it to your `config.json` file: + +```json title="~/.continue/config.json" +{ + "models": [ + { + "title": "Codestral", + "provider": "mistral", + "model": "codestral-latest", + "apiKey": "[API_KEY]" + } + ], + "tabAutocompleteModel": { + "title": "Codestral", + "provider": "mistral", + "model": "codestral-latest", + "apiKey": "[API_KEY]" + } +} +``` + +5. If you run into any issues or have any questions, please join our Discord and post in the `#help` channel [here](https://discord.gg/EfJEfdFnDQ) + +## Troubleshooting + +### Temporary workaround for JetBrains + +Mistral AI recently changed the API endpoint to `codestral.mistral.ai` instead of `api.mistral.ai`, and our updated JetBrains extension is waiting on approval from the store. In the meantime, you will have to specify apiBase as "https://codestral.mistral.ai/v1" in the config.json like this: + +```json title="~/.continue/config.json" +{ + "models": [ + { + "title": "Codestral", + "provider": "mistral", + "model": "codestral-latest", + "apiKey": "[API_KEY]", + "apiBase": "https://codestral.mistral.ai/v1/" + } + ], + "tabAutocompleteModel": { + "title": "Codestral", + "provider": "mistral", + "model": "codestral-latest", + "apiKey": "[API_KEY]", + "apiBase": "https://codestral.mistral.ai/v1/" + } +} +``` + +### Ask for help on Discord + +Please join our Discord and post in the `#help` channel [here](https://discord.gg/EfJEfdFnDQ) if you are having problems using Codestral diff --git a/docs/docs/walkthroughs/tab-autocomplete.md b/docs/docs/walkthroughs/tab-autocomplete.md index 52a2f65c8..1aef6cb6b 100644 --- a/docs/docs/walkthroughs/tab-autocomplete.md +++ b/docs/docs/walkthroughs/tab-autocomplete.md @@ -2,17 +2,16 @@ Continue now provides support for tab autocomplete in [VS Code](https://marketplace.visualstudio.com/items?itemName=Continue.continue) and [JetBrains IDEs](https://plugins.jetbrains.com/plugin/22707-continue/edit). We will be greatly improving the experience over the next few releases, and it is always helpful to hear feedback. If you have any problems or suggestions, please let us know in our [Discord](https://discord.gg/vapESyrFmJ). -## Setting up with Starcoder 7b (recommended) +## Setting up with Codestral (recommended) -If you want to have the best autocomplete experience, we recommend using Starcoder 7b, which is available through [Fireworks AI](https://fireworks.ai/models/fireworks/starcoder-7b). To do this, obtain an API key and add it to your `config.json`: +If you want to have the best autocomplete experience, we recommend using Codestral, which is available through the [Mistral API](https://console.mistral.ai/). To do this, obtain an API key and add it to your `config.json`: ```json { "tabAutocompleteModel": { - "title": "Starcoder 7b", - "provider": "openai", - "model": "accounts/fireworks/models/starcoder-7b", - "apiBase": "https://api.fireworks.ai/inference/v1", + "title": "Codestral", + "provider": "mistral", + "model": "codestral-latest", "apiKey": "YOUR_API_KEY" } } @@ -28,6 +27,30 @@ ollama run starcoder2:3b Once it has been downloaded, you should begin to see completions in VS Code. +## Setting up with LM Studio + +You can also set up tab-autocomplete with a local LM Studio instance by following these steps: + +1. Download the latest version of LM Studio from [here](https://lmstudio.ai/) +2. Download a model (e.g. search for `second-state/StarCoder2-3B-GGUF` and choose one of the options there) +3. Go to the server section (button is on the left), select your model from the dropdown at the top, and click "Start Server" +4. Go to the "My Models" section (button is on the left), find your selected model, and copy the name the path (example: `second-state/StarCoder2-3B-GGUF/starcoder2-3b-Q8_0.gguf`); this will be used as the "model" attribute in Continue +5. Go to Continue and modify the configurations for a [custom model](#setting-up-a-custom-model) +6. Set the "provider" to `lmstudio` and the "model" to the path copied earlier + +Example: + +```json title=~/.continue/config.json +{ + "tabAutocompleteModel": { + "title": "Starcoder2 3b", + "model": "second-state/StarCoder2-3B-GGUF/starcoder2-3b-Q8_0.gguf", + "provider": "lmstudio", + }, + ... +} +``` + ## Setting up a custom model All of the configuration options available for chat models are available to use for tab-autocomplete. For example, if you wanted to use a remote Ollama instance you would edit your `config.json` like this (note that it is not inside the models array): @@ -44,7 +67,7 @@ All of the configuration options available for chat models are available to use } ``` -If you aren't yet familiar with the available options, you can learn more in our [overview](../model-setup/overview.md). +If you aren't yet familiar with the available options, you can learn more in our [overview](../setup/overview.md). ### What model should I use? @@ -66,19 +89,20 @@ This is just another object like the ones in the `"models"` array of `config.jso ### `tabAutocompleteOptions` -This object allows you to customize the behavior of tab-autocomplete. The available options are: +This object allows you to customize the behavior of tab-autocomplete. The available options are shown below, and you can find their default values [here](https://github.com/continuedev/continue/blob/fbeb2e4fe15d4b434a30a136f74b672485c852d9/core/util/parameters.ts). +- `disable`: Disable autocomplete (can also be done from IDE settings) +- `template`: An optional template string to be used for autocomplete. It will be rendered with the Mustache templating language, and is passed the 'prefix' and 'suffix' variables. (String) - `useCopyBuffer`: Determines whether the copy buffer will be considered when constructing the prompt. (Boolean) -- `useSuffix`: Determines whether to use the file suffix in the prompt. (Boolean) +- `useFileSuffix`: Determines whether to use the file suffix in the prompt. (Boolean) - `maxPromptTokens`: The maximum number of prompt tokens to use. A smaller number will yield faster completions, but less context. (Number) -- `debounceDelay`: The delay in milliseconds before triggering autocomplete after a keystroke. (Number) -- `maxSuffixPercentage`: The maximum percentage of the prompt that can be dedicated to the suffix. (Number) - `prefixPercentage`: The percentage of the input that should be dedicated to the prefix. (Number) -- `template`: An optional template string to be used for autocomplete. It will be rendered with the Mustache templating language, and is passed the 'prefix' and 'suffix' variables. (String) +- `maxSuffixPercentage`: The maximum percentage of the prompt that can be dedicated to the suffix. (Number) +- `debounceDelay`: The delay in milliseconds before triggering autocomplete after a keystroke. (Number) - `multilineCompletions`: Whether to enable multiline completions ("always", "never", or "auto"). Defaults to "auto". - `useCache`: Whether to cache and reuse completions when the prompt is the same as a previous one. May be useful to disable for testing purposes. - `useOtherFiles`: Whether to include context from files outside of the current one. Turning this off should be expected to reduce the accuracy of completions, but might be good for testing. -- `disable`: Disable autocomplete (can also be done from IDE settings) +- `disableInFiles`: A list of glob patterns for files in which you want to disable tab autocomplete. ### Full example @@ -108,12 +132,12 @@ Perhaps surprisingly, the answer is no. The models that we suggest for autocompl Follow these steps to ensure that everything is set up correctly: -1. Make sure you have the "Enable Tab Autocomplete" setting checked (in VS Code, you can toggle by clicking the "Continue" button in the status bar). +1. Make sure you have the "Enable Tab Autocomplete" setting checked (in VS Code, you can toggle by clicking the "Continue" button in the status bar, and in JetBrains by going to Settings -> Tools -> Continue). 2. Make sure you have downloaded Ollama. 3. Run `ollama run starcoder2:3b` to verify that the model is downloaded. 4. Make sure that any other completion providers are disabled (e.g. Copilot), as they may interfere. -5. Make sure that you aren't also using another Ollama model for chat. This will cause Ollama to constantly load and unload the models from memory, resulting in slow responses (or none at all) for both. -6. Check the output of the logs to find any potential errors (cmd/ctrl+shift+p -> "Toggle Developer Tools" -> "Console" tab in VS Code, ~/.continue/core.log in JetBrains). +5. Check the output of the logs to find any potential errors (cmd/ctrl+shift+p -> "Toggle Developer Tools" -> "Console" tab in VS Code, ~/.continue/core.log in JetBrains). +6. Check VS Code settings to make sure that `"editor.inlineSuggest.enabled"` is set to `true` (use cmd/ctrl+, then search for this and check the box) 7. If you are still having issues, please let us know in our [Discord](https://discord.gg/vapESyrFmJ) and we'll help as soon as possible. ### Completions are slow @@ -132,18 +156,34 @@ If you're seeing a common pattern of mistake that might be helpful to report, pl To ensure that you receive multi-line completions, you can set `"multilineCompletions": "always"` in `tabAutocompleteOptions`. By default, it is `"auto"`. If you still find that you are only seeing single-line completions, this may be because some models tend to produce shorter completions when starting in the middle of a file. You can try temporarily moving text below your cursor out of your active file, or switching to a larger model. -## How to turn off autocomplete +## FAQs + +### Can I configure a "trigger key" for autocomplete? + +Yes, in VS Code, if you don't want to be shown suggestions automatically you can: + +1. Set `"editor.inlineSuggest.enabled": false` in VS Code settings to disabe automatic suggestions +2. Open "Keyboard Shortcuts" (cmd/ctrl+k, cmd/ctrl+s) and search for `editor.action.inlineSuggest.trigger` +3. Click the "+" icon to add a new keybinding +4. Press the key combination you want to use to trigger suggestions (e.g. `ctrl+space`) +5. Now whenever you want to see a suggestion, you can press your key binding (e.g. `ctrl+space`) to trigger suggestions manually + +### Is there a shortcut to accept one line at a time? + +This is a built-in feature of VS Code, but it's just a bit hidden. See this great [StackOverflow answer](https://stackoverflow.com/questions/72228174/accept-line-by-line-from-autocompletion/78001122#78001122) for more details. + +### How to turn off autocomplete -### VS Code +#### VS Code Click the "Continue" button in the status panel at the bottom right of the screen. The checkmark will become a "cancel" symbol and you will no longer see completions. You can click again to turn it back on. Alternatively, open VS Code settings, search for "Continue" and uncheck the box for "Enable Tab Autocomplete". -### JetBrains +#### JetBrains Open Settings -> Tools -> Continue and uncheck the box for "Enable Tab Autocomplete". -### Feedback +## Feedback If you're turning off autocomplete, we'd love to hear how we can improve! Please let us know in our [Discord](https://discord.gg/vapESyrFmJ) or file an issue on GitHub. diff --git a/docs/docusaurus.config.js b/docs/docusaurus.config.js index ce09b314f..80ec065ae 100644 --- a/docs/docusaurus.config.js +++ b/docs/docusaurus.config.js @@ -16,7 +16,7 @@ const config = { url: "https://continue.dev", // Set the // pathname under which your site is served // For GitHub pages deployment, it is often '//' - baseUrl: "/docs", + baseUrl: "/", // GitHub pages deployment config. // If you aren't using GitHub pages, you don't need these. @@ -67,7 +67,7 @@ const config = { }, ], // Replace with your project's social card - image: "img/continue-social-card.png", + image: "https://docs.continue.dev/img/continue-social-card.png", navbar: { title: "Continue", logo: { @@ -83,9 +83,16 @@ const config = { label: "Docs", }, { - href: "https://github.com/continuedev/continue", + to: "https://github.com/continuedev/continue", label: "GitHub", position: "right", + className: "github-navbar", + }, + { + to: "https://discord.gg/vapESyrFmJ", + label: "Discord", + position: "right", + className: "discord-navbar", }, ], }, @@ -93,16 +100,16 @@ const config = { style: "dark", links: [ { - title: "Docs", + title: "Extensions", items: [ - { - label: "Introduction", - to: "/intro", - }, { label: "VS Code", to: "https://marketplace.visualstudio.com/items?itemName=Continue.continue", }, + { + label: "JetBrains", + to: "https://plugins.jetbrains.com/plugin/22707-continue-extension", + }, ], }, { @@ -110,24 +117,24 @@ const config = { items: [ { label: "Discord", - href: "https://discord.gg/vapESyrFmJ", + to: "https://discord.gg/vapESyrFmJ", }, { - label: "Twitter", - href: "https://twitter.com/continuedev", + label: "GitHub", + to: "https://github.com/continuedev/continue", }, ], }, { - title: "More", + title: "Follow Us", items: [ { - label: "GitHub", - href: "https://github.com/continuedev/continue", + label: "Twitter", + to: "https://twitter.com/continuedev", }, { - label: "Website", - href: "https://continue.dev", + label: "LinkedIn", + to: "https://linkedin.com/company/continuedev", }, ], }, @@ -166,6 +173,18 @@ const config = { from: "/getting-started", to: "/quickstart", }, + { + from: "/model-setup/overview", + to: "/setup/overview", + }, + { + from: "/model-setup/select-model", + to: "/setup/select-model", + }, + { + from: "/model-setup/configuration", + to: "/setup/configuration", + }, ], }, ], diff --git a/docs/netlify.toml b/docs/netlify.toml index 490ac92ed..9d98a6d85 100644 --- a/docs/netlify.toml +++ b/docs/netlify.toml @@ -1,4 +1,9 @@ [[redirects]] from = "/" - to = "/docs/intro" + to = "/intro" + force = true + +[[redirects]] + from = "/docs" + to = "/intro" force = true \ No newline at end of file diff --git a/docs/package-lock.json b/docs/package-lock.json index 52541634c..68e4cd8fa 100644 --- a/docs/package-lock.json +++ b/docs/package-lock.json @@ -8,9 +8,9 @@ "name": "continue-docs", "version": "0.0.0", "dependencies": { - "@docusaurus/core": "3.1.0", - "@docusaurus/plugin-client-redirects": "3.1.0", - "@docusaurus/preset-classic": "3.1.0", + "@docusaurus/core": "^3.4.0", + "@docusaurus/plugin-client-redirects": "^3.4.0", + "@docusaurus/preset-classic": "^3.4.0", "@mdx-js/react": "^3.0.0", "clsx": "^2.1.0", "docusaurus-json-schema-plugin": "^1.11.0", @@ -19,7 +19,7 @@ "react-dom": "^18.2.0" }, "devDependencies": { - "@docusaurus/module-type-aliases": "3.1.0" + "@docusaurus/module-type-aliases": "^3.2.1" }, "engines": { "node": ">=20.11.0" @@ -67,74 +67,74 @@ } }, "node_modules/@algolia/cache-browser-local-storage": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.22.1.tgz", - "integrity": "sha512-Sw6IAmOCvvP6QNgY9j+Hv09mvkvEIDKjYW8ow0UDDAxSXy664RBNQk3i/0nt7gvceOJ6jGmOTimaZoY1THmU7g==", + "version": "4.23.3", + "resolved": "https://registry.npmjs.org/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.23.3.tgz", + "integrity": "sha512-vRHXYCpPlTDE7i6UOy2xE03zHF2C8MEFjPN2v7fRbqVpcOvAUQK81x3Kc21xyb5aSIpYCjWCZbYZuz8Glyzyyg==", "dependencies": { - "@algolia/cache-common": "4.22.1" + "@algolia/cache-common": "4.23.3" } }, "node_modules/@algolia/cache-common": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/@algolia/cache-common/-/cache-common-4.22.1.tgz", - "integrity": "sha512-TJMBKqZNKYB9TptRRjSUtevJeQVXRmg6rk9qgFKWvOy8jhCPdyNZV1nB3SKGufzvTVbomAukFR8guu/8NRKBTA==" + "version": "4.23.3", + "resolved": "https://registry.npmjs.org/@algolia/cache-common/-/cache-common-4.23.3.tgz", + "integrity": "sha512-h9XcNI6lxYStaw32pHpB1TMm0RuxphF+Ik4o7tcQiodEdpKK+wKufY6QXtba7t3k8eseirEMVB83uFFF3Nu54A==" }, "node_modules/@algolia/cache-in-memory": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/@algolia/cache-in-memory/-/cache-in-memory-4.22.1.tgz", - "integrity": "sha512-ve+6Ac2LhwpufuWavM/aHjLoNz/Z/sYSgNIXsinGofWOysPilQZPUetqLj8vbvi+DHZZaYSEP9H5SRVXnpsNNw==", + "version": "4.23.3", + "resolved": "https://registry.npmjs.org/@algolia/cache-in-memory/-/cache-in-memory-4.23.3.tgz", + "integrity": "sha512-yvpbuUXg/+0rbcagxNT7un0eo3czx2Uf0y4eiR4z4SD7SiptwYTpbuS0IHxcLHG3lq22ukx1T6Kjtk/rT+mqNg==", "dependencies": { - "@algolia/cache-common": "4.22.1" + "@algolia/cache-common": "4.23.3" } }, "node_modules/@algolia/client-account": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/@algolia/client-account/-/client-account-4.22.1.tgz", - "integrity": "sha512-k8m+oegM2zlns/TwZyi4YgCtyToackkOpE+xCaKCYfBfDtdGOaVZCM5YvGPtK+HGaJMIN/DoTL8asbM3NzHonw==", + "version": "4.23.3", + "resolved": "https://registry.npmjs.org/@algolia/client-account/-/client-account-4.23.3.tgz", + "integrity": "sha512-hpa6S5d7iQmretHHF40QGq6hz0anWEHGlULcTIT9tbUssWUriN9AUXIFQ8Ei4w9azD0hc1rUok9/DeQQobhQMA==", "dependencies": { - "@algolia/client-common": "4.22.1", - "@algolia/client-search": "4.22.1", - "@algolia/transporter": "4.22.1" + "@algolia/client-common": "4.23.3", + "@algolia/client-search": "4.23.3", + "@algolia/transporter": "4.23.3" } }, "node_modules/@algolia/client-analytics": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-4.22.1.tgz", - "integrity": "sha512-1ssi9pyxyQNN4a7Ji9R50nSdISIumMFDwKNuwZipB6TkauJ8J7ha/uO60sPJFqQyqvvI+px7RSNRQT3Zrvzieg==", + "version": "4.23.3", + "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-4.23.3.tgz", + "integrity": "sha512-LBsEARGS9cj8VkTAVEZphjxTjMVCci+zIIiRhpFun9jGDUlS1XmhCW7CTrnaWeIuCQS/2iPyRqSy1nXPjcBLRA==", "dependencies": { - "@algolia/client-common": "4.22.1", - "@algolia/client-search": "4.22.1", - "@algolia/requester-common": "4.22.1", - "@algolia/transporter": "4.22.1" + "@algolia/client-common": "4.23.3", + "@algolia/client-search": "4.23.3", + "@algolia/requester-common": "4.23.3", + "@algolia/transporter": "4.23.3" } }, "node_modules/@algolia/client-common": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.22.1.tgz", - "integrity": "sha512-IvaL5v9mZtm4k4QHbBGDmU3wa/mKokmqNBqPj0K7lcR8ZDKzUorhcGp/u8PkPC/e0zoHSTvRh7TRkGX3Lm7iOQ==", + "version": "4.23.3", + "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.23.3.tgz", + "integrity": "sha512-l6EiPxdAlg8CYhroqS5ybfIczsGUIAC47slLPOMDeKSVXYG1n0qGiz4RjAHLw2aD0xzh2EXZ7aRguPfz7UKDKw==", "dependencies": { - "@algolia/requester-common": "4.22.1", - "@algolia/transporter": "4.22.1" + "@algolia/requester-common": "4.23.3", + "@algolia/transporter": "4.23.3" } }, "node_modules/@algolia/client-personalization": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-4.22.1.tgz", - "integrity": "sha512-sl+/klQJ93+4yaqZ7ezOttMQ/nczly/3GmgZXJ1xmoewP5jmdP/X/nV5U7EHHH3hCUEHeN7X1nsIhGPVt9E1cQ==", + "version": "4.23.3", + "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-4.23.3.tgz", + "integrity": "sha512-3E3yF3Ocr1tB/xOZiuC3doHQBQ2zu2MPTYZ0d4lpfWads2WTKG7ZzmGnsHmm63RflvDeLK/UVx7j2b3QuwKQ2g==", "dependencies": { - "@algolia/client-common": "4.22.1", - "@algolia/requester-common": "4.22.1", - "@algolia/transporter": "4.22.1" + "@algolia/client-common": "4.23.3", + "@algolia/requester-common": "4.23.3", + "@algolia/transporter": "4.23.3" } }, "node_modules/@algolia/client-search": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.22.1.tgz", - "integrity": "sha512-yb05NA4tNaOgx3+rOxAmFztgMTtGBi97X7PC3jyNeGiwkAjOZc2QrdZBYyIdcDLoI09N0gjtpClcackoTN0gPA==", + "version": "4.23.3", + "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.23.3.tgz", + "integrity": "sha512-P4VAKFHqU0wx9O+q29Q8YVuaowaZ5EM77rxfmGnkHUJggh28useXQdopokgwMeYw2XUht49WX5RcTQ40rZIabw==", "dependencies": { - "@algolia/client-common": "4.22.1", - "@algolia/requester-common": "4.22.1", - "@algolia/transporter": "4.22.1" + "@algolia/client-common": "4.23.3", + "@algolia/requester-common": "4.23.3", + "@algolia/transporter": "4.23.3" } }, "node_modules/@algolia/events": { @@ -143,47 +143,65 @@ "integrity": "sha512-FQzvOCgoFXAbf5Y6mYozw2aj5KCJoA3m4heImceldzPSMbdyS4atVjJzXKMsfX3wnZTFYwkkt8/z8UesLHlSBQ==" }, "node_modules/@algolia/logger-common": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/@algolia/logger-common/-/logger-common-4.22.1.tgz", - "integrity": "sha512-OnTFymd2odHSO39r4DSWRFETkBufnY2iGUZNrMXpIhF5cmFE8pGoINNPzwg02QLBlGSaLqdKy0bM8S0GyqPLBg==" + "version": "4.23.3", + "resolved": "https://registry.npmjs.org/@algolia/logger-common/-/logger-common-4.23.3.tgz", + "integrity": "sha512-y9kBtmJwiZ9ZZ+1Ek66P0M68mHQzKRxkW5kAAXYN/rdzgDN0d2COsViEFufxJ0pb45K4FRcfC7+33YB4BLrZ+g==" }, "node_modules/@algolia/logger-console": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/@algolia/logger-console/-/logger-console-4.22.1.tgz", - "integrity": "sha512-O99rcqpVPKN1RlpgD6H3khUWylU24OXlzkavUAMy6QZd1776QAcauE3oP8CmD43nbaTjBexZj2nGsBH9Tc0FVA==", + "version": "4.23.3", + "resolved": "https://registry.npmjs.org/@algolia/logger-console/-/logger-console-4.23.3.tgz", + "integrity": "sha512-8xoiseoWDKuCVnWP8jHthgaeobDLolh00KJAdMe9XPrWPuf1by732jSpgy2BlsLTaT9m32pHI8CRfrOqQzHv3A==", "dependencies": { - "@algolia/logger-common": "4.22.1" + "@algolia/logger-common": "4.23.3" + } + }, + "node_modules/@algolia/recommend": { + "version": "4.23.3", + "resolved": "https://registry.npmjs.org/@algolia/recommend/-/recommend-4.23.3.tgz", + "integrity": "sha512-9fK4nXZF0bFkdcLBRDexsnGzVmu4TSYZqxdpgBW2tEyfuSSY54D4qSRkLmNkrrz4YFvdh2GM1gA8vSsnZPR73w==", + "dependencies": { + "@algolia/cache-browser-local-storage": "4.23.3", + "@algolia/cache-common": "4.23.3", + "@algolia/cache-in-memory": "4.23.3", + "@algolia/client-common": "4.23.3", + "@algolia/client-search": "4.23.3", + "@algolia/logger-common": "4.23.3", + "@algolia/logger-console": "4.23.3", + "@algolia/requester-browser-xhr": "4.23.3", + "@algolia/requester-common": "4.23.3", + "@algolia/requester-node-http": "4.23.3", + "@algolia/transporter": "4.23.3" } }, "node_modules/@algolia/requester-browser-xhr": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.22.1.tgz", - "integrity": "sha512-dtQGYIg6MteqT1Uay3J/0NDqD+UciHy3QgRbk7bNddOJu+p3hzjTRYESqEnoX/DpEkaNYdRHUKNylsqMpgwaEw==", + "version": "4.23.3", + "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.23.3.tgz", + "integrity": "sha512-jDWGIQ96BhXbmONAQsasIpTYWslyjkiGu0Quydjlowe+ciqySpiDUrJHERIRfELE5+wFc7hc1Q5hqjGoV7yghw==", "dependencies": { - "@algolia/requester-common": "4.22.1" + "@algolia/requester-common": "4.23.3" } }, "node_modules/@algolia/requester-common": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/@algolia/requester-common/-/requester-common-4.22.1.tgz", - "integrity": "sha512-dgvhSAtg2MJnR+BxrIFqlLtkLlVVhas9HgYKMk2Uxiy5m6/8HZBL40JVAMb2LovoPFs9I/EWIoFVjOrFwzn5Qg==" + "version": "4.23.3", + "resolved": "https://registry.npmjs.org/@algolia/requester-common/-/requester-common-4.23.3.tgz", + "integrity": "sha512-xloIdr/bedtYEGcXCiF2muajyvRhwop4cMZo+K2qzNht0CMzlRkm8YsDdj5IaBhshqfgmBb3rTg4sL4/PpvLYw==" }, "node_modules/@algolia/requester-node-http": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-4.22.1.tgz", - "integrity": "sha512-JfmZ3MVFQkAU+zug8H3s8rZ6h0ahHZL/SpMaSasTCGYR5EEJsCc8SI5UZ6raPN2tjxa5bxS13BRpGSBUens7EA==", + "version": "4.23.3", + "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-4.23.3.tgz", + "integrity": "sha512-zgu++8Uj03IWDEJM3fuNl34s746JnZOWn1Uz5taV1dFyJhVM/kTNw9Ik7YJWiUNHJQXcaD8IXD1eCb0nq/aByA==", "dependencies": { - "@algolia/requester-common": "4.22.1" + "@algolia/requester-common": "4.23.3" } }, "node_modules/@algolia/transporter": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/@algolia/transporter/-/transporter-4.22.1.tgz", - "integrity": "sha512-kzWgc2c9IdxMa3YqA6TN0NW5VrKYYW/BELIn7vnLyn+U/RFdZ4lxxt9/8yq3DKV5snvoDzzO4ClyejZRdV3lMQ==", + "version": "4.23.3", + "resolved": "https://registry.npmjs.org/@algolia/transporter/-/transporter-4.23.3.tgz", + "integrity": "sha512-Wjl5gttqnf/gQKJA+dafnD0Y6Yw97yvfY8R9h0dQltX1GXTgNs1zWgvtWW0tHl1EgMdhAyw189uWiZMnL3QebQ==", "dependencies": { - "@algolia/cache-common": "4.22.1", - "@algolia/logger-common": "4.22.1", - "@algolia/requester-common": "4.22.1" + "@algolia/cache-common": "4.23.3", + "@algolia/logger-common": "4.23.3", + "@algolia/requester-common": "4.23.3" } }, "node_modules/@ampproject/remapping": { @@ -530,9 +548,9 @@ } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", - "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.7.tgz", + "integrity": "sha512-Rq76wjt7yz9AAc1KnlRKNAi/dMSVWgDRx43FHoJEbcYU6xOWaE2dVPwcdTukJrjxS65GITyfbvEYHvkirZ6uEg==", "engines": { "node": ">=6.9.0" } @@ -1607,11 +1625,11 @@ } }, "node_modules/@babel/plugin-transform-react-constant-elements": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.23.3.tgz", - "integrity": "sha512-zP0QKq/p6O42OL94udMgSfKXyse4RyJ0JqbQ34zDAONWjyrEsghYEyTSK5FIpmXmCpB55SHokL1cRRKHv8L2Qw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.24.7.tgz", + "integrity": "sha512-7LidzZfUXyfZ8/buRW6qIIHBY8wAZ1OrY9c/wTr8YhZ6vMPo+Uc/CVFLYY1spZrEQlD4w5u8wjqk5NQ3OVqQKA==", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -2127,18 +2145,18 @@ } }, "node_modules/@docsearch/css": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-3.5.2.tgz", - "integrity": "sha512-SPiDHaWKQZpwR2siD0KQUwlStvIAnEyK6tAE2h2Wuoq8ue9skzhlyVQ1ddzOxX6khULnAALDiR/isSF3bnuciA==" + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/@docsearch/css/-/css-3.6.0.tgz", + "integrity": "sha512-+sbxb71sWre+PwDK7X2T8+bhS6clcVMLwBPznX45Qu6opJcgRjAp7gYSDzVFp187J+feSj5dNBN1mJoi6ckkUQ==" }, "node_modules/@docsearch/react": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@docsearch/react/-/react-3.5.2.tgz", - "integrity": "sha512-9Ahcrs5z2jq/DcAvYtvlqEBHImbm4YJI8M9y0x6Tqg598P40HTEkX7hsMcIuThI+hTFxRGZ9hll0Wygm2yEjng==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/@docsearch/react/-/react-3.6.0.tgz", + "integrity": "sha512-HUFut4ztcVNmqy9gp/wxNbC7pTOHhgVVkHVGCACTuLhUKUhKAF9KYHJtMiLUJxEqiFLQiuri1fWF8zqwM/cu1w==", "dependencies": { "@algolia/autocomplete-core": "1.9.3", "@algolia/autocomplete-preset-algolia": "1.9.3", - "@docsearch/css": "3.5.2", + "@docsearch/css": "3.6.0", "algoliasearch": "^4.19.1" }, "peerDependencies": { @@ -2163,9 +2181,9 @@ } }, "node_modules/@docusaurus/core": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-3.1.0.tgz", - "integrity": "sha512-GWudMGYA9v26ssbAWJNfgeDZk+lrudUTclLPRsmxiknEBk7UMp7Rglonhqbsf3IKHOyHkMU4Fr5jFyg5SBx9jQ==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@docusaurus/core/-/core-3.4.0.tgz", + "integrity": "sha512-g+0wwmN2UJsBqy2fQRQ6fhXruoEa62JDeEa5d8IdTJlMoaDaEDfHh7WjwGRn4opuTQWpjAwP/fbcgyHKlE+64w==", "dependencies": { "@babel/core": "^7.23.3", "@babel/generator": "^7.23.3", @@ -2177,15 +2195,12 @@ "@babel/runtime": "^7.22.6", "@babel/runtime-corejs3": "^7.22.6", "@babel/traverse": "^7.22.8", - "@docusaurus/cssnano-preset": "3.1.0", - "@docusaurus/logger": "3.1.0", - "@docusaurus/mdx-loader": "3.1.0", - "@docusaurus/react-loadable": "5.5.2", - "@docusaurus/utils": "3.1.0", - "@docusaurus/utils-common": "3.1.0", - "@docusaurus/utils-validation": "3.1.0", - "@slorber/static-site-generator-webpack-plugin": "^4.0.7", - "@svgr/webpack": "^6.5.1", + "@docusaurus/cssnano-preset": "3.4.0", + "@docusaurus/logger": "3.4.0", + "@docusaurus/mdx-loader": "3.4.0", + "@docusaurus/utils": "3.4.0", + "@docusaurus/utils-common": "3.4.0", + "@docusaurus/utils-validation": "3.4.0", "autoprefixer": "^10.4.14", "babel-loader": "^9.1.3", "babel-plugin-dynamic-import-node": "^2.3.3", @@ -2199,12 +2214,13 @@ "copy-webpack-plugin": "^11.0.0", "core-js": "^3.31.1", "css-loader": "^6.8.1", - "css-minimizer-webpack-plugin": "^4.2.2", - "cssnano": "^5.1.15", + "css-minimizer-webpack-plugin": "^5.0.1", + "cssnano": "^6.1.2", "del": "^6.1.1", "detect-port": "^1.5.1", "escape-html": "^1.0.3", "eta": "^2.2.0", + "eval": "^0.1.8", "file-loader": "^6.2.0", "fs-extra": "^11.1.1", "html-minifier-terser": "^7.2.0", @@ -2213,12 +2229,13 @@ "leven": "^3.1.0", "lodash": "^4.17.21", "mini-css-extract-plugin": "^2.7.6", + "p-map": "^4.0.0", "postcss": "^8.4.26", "postcss-loader": "^7.3.3", "prompts": "^2.4.2", "react-dev-utils": "^12.0.1", "react-helmet-async": "^1.3.0", - "react-loadable": "npm:@docusaurus/react-loadable@5.5.2", + "react-loadable": "npm:@docusaurus/react-loadable@6.0.0", "react-loadable-ssr-addon-v5-slorber": "^1.0.1", "react-router": "^5.3.4", "react-router-config": "^5.1.1", @@ -2249,13 +2266,13 @@ } }, "node_modules/@docusaurus/cssnano-preset": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@docusaurus/cssnano-preset/-/cssnano-preset-3.1.0.tgz", - "integrity": "sha512-ned7qsgCqSv/e7KyugFNroAfiszuxLwnvMW7gmT2Ywxb/Nyt61yIw7KHyAZCMKglOalrqnYA4gMhLUCK/mVePA==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@docusaurus/cssnano-preset/-/cssnano-preset-3.4.0.tgz", + "integrity": "sha512-qwLFSz6v/pZHy/UP32IrprmH5ORce86BGtN0eBtG75PpzQJAzp9gefspox+s8IEOr0oZKuQ/nhzZ3xwyc3jYJQ==", "dependencies": { - "cssnano-preset-advanced": "^5.3.10", - "postcss": "^8.4.26", - "postcss-sort-media-queries": "^4.4.1", + "cssnano-preset-advanced": "^6.1.2", + "postcss": "^8.4.38", + "postcss-sort-media-queries": "^5.2.0", "tslib": "^2.6.0" }, "engines": { @@ -2263,9 +2280,9 @@ } }, "node_modules/@docusaurus/logger": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@docusaurus/logger/-/logger-3.1.0.tgz", - "integrity": "sha512-p740M+HCst1VnKKzL60Hru9xfG4EUYJDarjlEC4hHeBy9+afPmY3BNPoSHx9/8zxuYfUlv/psf7I9NvRVdmdvg==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@docusaurus/logger/-/logger-3.4.0.tgz", + "integrity": "sha512-bZwkX+9SJ8lB9kVRkXw+xvHYSMGG4bpYHKGXeXFvyVc79NMeeBSGgzd4TQLHH+DYeOJoCdl8flrFJVxlZ0wo/Q==", "dependencies": { "chalk": "^4.1.2", "tslib": "^2.6.0" @@ -2275,15 +2292,13 @@ } }, "node_modules/@docusaurus/mdx-loader": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-3.1.0.tgz", - "integrity": "sha512-D7onDz/3mgBonexWoQXPw3V2E5Bc4+jYRf9gGUUK+KoQwU8xMDaDkUUfsr7t6UBa/xox9p5+/3zwLuXOYMzGSg==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@docusaurus/mdx-loader/-/mdx-loader-3.4.0.tgz", + "integrity": "sha512-kSSbrrk4nTjf4d+wtBA9H+FGauf2gCax89kV8SUSJu3qaTdSIKdWERlngsiHaCFgZ7laTJ8a67UFf+xlFPtuTw==", "dependencies": { - "@babel/parser": "^7.22.7", - "@babel/traverse": "^7.22.8", - "@docusaurus/logger": "3.1.0", - "@docusaurus/utils": "3.1.0", - "@docusaurus/utils-validation": "3.1.0", + "@docusaurus/logger": "3.4.0", + "@docusaurus/utils": "3.4.0", + "@docusaurus/utils-validation": "3.4.0", "@mdx-js/mdx": "^3.0.0", "@slorber/remark-comment": "^1.0.0", "escape-html": "^1.0.3", @@ -2315,18 +2330,17 @@ } }, "node_modules/@docusaurus/module-type-aliases": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-3.1.0.tgz", - "integrity": "sha512-XUl7Z4PWlKg4l6KF05JQ3iDHQxnPxbQUqTNKvviHyuHdlalOFv6qeDAm7IbzyQPJD5VA6y4dpRbTWSqP9ClwPg==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-3.4.0.tgz", + "integrity": "sha512-A1AyS8WF5Bkjnb8s+guTDuYmUiwJzNrtchebBHpc0gz0PyHJNMaybUlSrmJjHVcGrya0LKI4YcR3lBDQfXRYLw==", "dependencies": { - "@docusaurus/react-loadable": "5.5.2", - "@docusaurus/types": "3.1.0", + "@docusaurus/types": "3.4.0", "@types/history": "^4.7.11", "@types/react": "*", "@types/react-router-config": "*", "@types/react-router-dom": "*", "react-helmet-async": "*", - "react-loadable": "npm:@docusaurus/react-loadable@5.5.2" + "react-loadable": "npm:@docusaurus/react-loadable@6.0.0" }, "peerDependencies": { "react": "*", @@ -2334,15 +2348,15 @@ } }, "node_modules/@docusaurus/plugin-client-redirects": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-client-redirects/-/plugin-client-redirects-3.1.0.tgz", - "integrity": "sha512-CuFbdciMGvtGYiIPSOpj5idsHOQUcqZWTLCmZV3ePhviekm4dRZm1+QK/BxigmSTL5ICJMGbtOQnz7bgFSWHqg==", - "dependencies": { - "@docusaurus/core": "3.1.0", - "@docusaurus/logger": "3.1.0", - "@docusaurus/utils": "3.1.0", - "@docusaurus/utils-common": "3.1.0", - "@docusaurus/utils-validation": "3.1.0", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-client-redirects/-/plugin-client-redirects-3.4.0.tgz", + "integrity": "sha512-Pr8kyh/+OsmYCvdZhc60jy/FnrY6flD2TEAhl4rJxeVFxnvvRgEhoaIVX8q9MuJmaQoh6frPk94pjs7/6YgBDQ==", + "dependencies": { + "@docusaurus/core": "3.4.0", + "@docusaurus/logger": "3.4.0", + "@docusaurus/utils": "3.4.0", + "@docusaurus/utils-common": "3.4.0", + "@docusaurus/utils-validation": "3.4.0", "eta": "^2.2.0", "fs-extra": "^11.1.1", "lodash": "^4.17.21", @@ -2357,17 +2371,17 @@ } }, "node_modules/@docusaurus/plugin-content-blog": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-blog/-/plugin-content-blog-3.1.0.tgz", - "integrity": "sha512-iMa6WBaaEdYuxckvJtLcq/HQdlA4oEbCXf/OFfsYJCCULcDX7GDZpKxLF3X1fLsax3sSm5bmsU+CA0WD+R1g3A==", - "dependencies": { - "@docusaurus/core": "3.1.0", - "@docusaurus/logger": "3.1.0", - "@docusaurus/mdx-loader": "3.1.0", - "@docusaurus/types": "3.1.0", - "@docusaurus/utils": "3.1.0", - "@docusaurus/utils-common": "3.1.0", - "@docusaurus/utils-validation": "3.1.0", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-blog/-/plugin-content-blog-3.4.0.tgz", + "integrity": "sha512-vv6ZAj78ibR5Jh7XBUT4ndIjmlAxkijM3Sx5MAAzC1gyv0vupDQNhzuFg1USQmQVj3P5I6bquk12etPV3LJ+Xw==", + "dependencies": { + "@docusaurus/core": "3.4.0", + "@docusaurus/logger": "3.4.0", + "@docusaurus/mdx-loader": "3.4.0", + "@docusaurus/types": "3.4.0", + "@docusaurus/utils": "3.4.0", + "@docusaurus/utils-common": "3.4.0", + "@docusaurus/utils-validation": "3.4.0", "cheerio": "^1.0.0-rc.12", "feed": "^4.2.2", "fs-extra": "^11.1.1", @@ -2388,17 +2402,18 @@ } }, "node_modules/@docusaurus/plugin-content-docs": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-3.1.0.tgz", - "integrity": "sha512-el5GxhT8BLrsWD0qGa8Rq+Ttb/Ni6V3DGT2oAPio0qcs/mUAxeyXEAmihkvmLCnAgp6xD27Ce7dISZ5c6BXeqA==", - "dependencies": { - "@docusaurus/core": "3.1.0", - "@docusaurus/logger": "3.1.0", - "@docusaurus/mdx-loader": "3.1.0", - "@docusaurus/module-type-aliases": "3.1.0", - "@docusaurus/types": "3.1.0", - "@docusaurus/utils": "3.1.0", - "@docusaurus/utils-validation": "3.1.0", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-3.4.0.tgz", + "integrity": "sha512-HkUCZffhBo7ocYheD9oZvMcDloRnGhBMOZRyVcAQRFmZPmNqSyISlXA1tQCIxW+r478fty97XXAGjNYzBjpCsg==", + "dependencies": { + "@docusaurus/core": "3.4.0", + "@docusaurus/logger": "3.4.0", + "@docusaurus/mdx-loader": "3.4.0", + "@docusaurus/module-type-aliases": "3.4.0", + "@docusaurus/types": "3.4.0", + "@docusaurus/utils": "3.4.0", + "@docusaurus/utils-common": "3.4.0", + "@docusaurus/utils-validation": "3.4.0", "@types/react-router-config": "^5.0.7", "combine-promises": "^1.1.0", "fs-extra": "^11.1.1", @@ -2417,15 +2432,15 @@ } }, "node_modules/@docusaurus/plugin-content-pages": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-pages/-/plugin-content-pages-3.1.0.tgz", - "integrity": "sha512-9gntYQFpk+93+Xl7gYczJu8I9uWoyRLnRwS0+NUFcs9iZtHKsdqKWPRrONC9elfN3wJ9ORwTbcVzsTiB8jvYlg==", - "dependencies": { - "@docusaurus/core": "3.1.0", - "@docusaurus/mdx-loader": "3.1.0", - "@docusaurus/types": "3.1.0", - "@docusaurus/utils": "3.1.0", - "@docusaurus/utils-validation": "3.1.0", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-pages/-/plugin-content-pages-3.4.0.tgz", + "integrity": "sha512-h2+VN/0JjpR8fIkDEAoadNjfR3oLzB+v1qSXbIAKjQ46JAHx3X22n9nqS+BWSQnTnp1AjkjSvZyJMekmcwxzxg==", + "dependencies": { + "@docusaurus/core": "3.4.0", + "@docusaurus/mdx-loader": "3.4.0", + "@docusaurus/types": "3.4.0", + "@docusaurus/utils": "3.4.0", + "@docusaurus/utils-validation": "3.4.0", "fs-extra": "^11.1.1", "tslib": "^2.6.0", "webpack": "^5.88.1" @@ -2439,13 +2454,13 @@ } }, "node_modules/@docusaurus/plugin-debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-debug/-/plugin-debug-3.1.0.tgz", - "integrity": "sha512-AbvJwCVRbmQ8w9d8QXbF4Iq/ui0bjPZNYFIhtducGFnm2YQRN1mraK8mCEQb0Aq0T8SqRRvSfC/far4n/s531w==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-debug/-/plugin-debug-3.4.0.tgz", + "integrity": "sha512-uV7FDUNXGyDSD3PwUaf5YijX91T5/H9SX4ErEcshzwgzWwBtK37nUWPU3ZLJfeTavX3fycTOqk9TglpOLaWkCg==", "dependencies": { - "@docusaurus/core": "3.1.0", - "@docusaurus/types": "3.1.0", - "@docusaurus/utils": "3.1.0", + "@docusaurus/core": "3.4.0", + "@docusaurus/types": "3.4.0", + "@docusaurus/utils": "3.4.0", "fs-extra": "^11.1.1", "react-json-view-lite": "^1.2.0", "tslib": "^2.6.0" @@ -2459,13 +2474,13 @@ } }, "node_modules/@docusaurus/plugin-google-analytics": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-3.1.0.tgz", - "integrity": "sha512-zvUOMzu9Uhz0ciqnSbtnp/5i1zEYlzarQrOXG90P3Is3efQI43p2YLW/rzSGdLb5MfQo2HvKT6Q5+tioMO045Q==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-3.4.0.tgz", + "integrity": "sha512-mCArluxEGi3cmYHqsgpGGt3IyLCrFBxPsxNZ56Mpur0xSlInnIHoeLDH7FvVVcPJRPSQ9/MfRqLsainRw+BojA==", "dependencies": { - "@docusaurus/core": "3.1.0", - "@docusaurus/types": "3.1.0", - "@docusaurus/utils-validation": "3.1.0", + "@docusaurus/core": "3.4.0", + "@docusaurus/types": "3.4.0", + "@docusaurus/utils-validation": "3.4.0", "tslib": "^2.6.0" }, "engines": { @@ -2477,13 +2492,13 @@ } }, "node_modules/@docusaurus/plugin-google-gtag": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-3.1.0.tgz", - "integrity": "sha512-0txshvaY8qIBdkk2UATdVcfiCLGq3KAUfuRQD2cRNgO39iIf4/ihQxH9NXcRTwKs4Q5d9yYHoix3xT6pFuEYOg==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-3.4.0.tgz", + "integrity": "sha512-Dsgg6PLAqzZw5wZ4QjUYc8Z2KqJqXxHxq3vIoyoBWiLEEfigIs7wHR+oiWUQy3Zk9MIk6JTYj7tMoQU0Jm3nqA==", "dependencies": { - "@docusaurus/core": "3.1.0", - "@docusaurus/types": "3.1.0", - "@docusaurus/utils-validation": "3.1.0", + "@docusaurus/core": "3.4.0", + "@docusaurus/types": "3.4.0", + "@docusaurus/utils-validation": "3.4.0", "@types/gtag.js": "^0.0.12", "tslib": "^2.6.0" }, @@ -2496,13 +2511,13 @@ } }, "node_modules/@docusaurus/plugin-google-tag-manager": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-tag-manager/-/plugin-google-tag-manager-3.1.0.tgz", - "integrity": "sha512-zOWPEi8kMyyPtwG0vhyXrdbLs8fIZmY5vlbi9lUU+v8VsroO5iHmfR2V3SMsrsfOanw5oV/ciWqbxezY00qEZg==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-google-tag-manager/-/plugin-google-tag-manager-3.4.0.tgz", + "integrity": "sha512-O9tX1BTwxIhgXpOLpFDueYA9DWk69WCbDRrjYoMQtFHSkTyE7RhNgyjSPREUWJb9i+YUg3OrsvrBYRl64FCPCQ==", "dependencies": { - "@docusaurus/core": "3.1.0", - "@docusaurus/types": "3.1.0", - "@docusaurus/utils-validation": "3.1.0", + "@docusaurus/core": "3.4.0", + "@docusaurus/types": "3.4.0", + "@docusaurus/utils-validation": "3.4.0", "tslib": "^2.6.0" }, "engines": { @@ -2514,16 +2529,16 @@ } }, "node_modules/@docusaurus/plugin-sitemap": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@docusaurus/plugin-sitemap/-/plugin-sitemap-3.1.0.tgz", - "integrity": "sha512-TkR5vGBpUooEB9SoW42thahqqwKzfHrQQhkB+JrEGERsl4bKODSuJNle4aA4h6LSkg4IyfXOW8XOI0NIPWb9Cg==", - "dependencies": { - "@docusaurus/core": "3.1.0", - "@docusaurus/logger": "3.1.0", - "@docusaurus/types": "3.1.0", - "@docusaurus/utils": "3.1.0", - "@docusaurus/utils-common": "3.1.0", - "@docusaurus/utils-validation": "3.1.0", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@docusaurus/plugin-sitemap/-/plugin-sitemap-3.4.0.tgz", + "integrity": "sha512-+0VDvx9SmNrFNgwPoeoCha+tRoAjopwT0+pYO1xAbyLcewXSemq+eLxEa46Q1/aoOaJQ0qqHELuQM7iS2gp33Q==", + "dependencies": { + "@docusaurus/core": "3.4.0", + "@docusaurus/logger": "3.4.0", + "@docusaurus/types": "3.4.0", + "@docusaurus/utils": "3.4.0", + "@docusaurus/utils-common": "3.4.0", + "@docusaurus/utils-validation": "3.4.0", "fs-extra": "^11.1.1", "sitemap": "^7.1.1", "tslib": "^2.6.0" @@ -2537,23 +2552,23 @@ } }, "node_modules/@docusaurus/preset-classic": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@docusaurus/preset-classic/-/preset-classic-3.1.0.tgz", - "integrity": "sha512-xGLQRFmmT9IinAGUDVRYZ54Ys28USNbA3OTXQXnSJLPr1rCY7CYnHI4XoOnKWrNnDiAI4ruMzunXWyaElUYCKQ==", - "dependencies": { - "@docusaurus/core": "3.1.0", - "@docusaurus/plugin-content-blog": "3.1.0", - "@docusaurus/plugin-content-docs": "3.1.0", - "@docusaurus/plugin-content-pages": "3.1.0", - "@docusaurus/plugin-debug": "3.1.0", - "@docusaurus/plugin-google-analytics": "3.1.0", - "@docusaurus/plugin-google-gtag": "3.1.0", - "@docusaurus/plugin-google-tag-manager": "3.1.0", - "@docusaurus/plugin-sitemap": "3.1.0", - "@docusaurus/theme-classic": "3.1.0", - "@docusaurus/theme-common": "3.1.0", - "@docusaurus/theme-search-algolia": "3.1.0", - "@docusaurus/types": "3.1.0" + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@docusaurus/preset-classic/-/preset-classic-3.4.0.tgz", + "integrity": "sha512-Ohj6KB7siKqZaQhNJVMBBUzT3Nnp6eTKqO+FXO3qu/n1hJl3YLwVKTWBg28LF7MWrKu46UuYavwMRxud0VyqHg==", + "dependencies": { + "@docusaurus/core": "3.4.0", + "@docusaurus/plugin-content-blog": "3.4.0", + "@docusaurus/plugin-content-docs": "3.4.0", + "@docusaurus/plugin-content-pages": "3.4.0", + "@docusaurus/plugin-debug": "3.4.0", + "@docusaurus/plugin-google-analytics": "3.4.0", + "@docusaurus/plugin-google-gtag": "3.4.0", + "@docusaurus/plugin-google-tag-manager": "3.4.0", + "@docusaurus/plugin-sitemap": "3.4.0", + "@docusaurus/theme-classic": "3.4.0", + "@docusaurus/theme-common": "3.4.0", + "@docusaurus/theme-search-algolia": "3.4.0", + "@docusaurus/types": "3.4.0" }, "engines": { "node": ">=18.0" @@ -2563,35 +2578,23 @@ "react-dom": "^18.0.0" } }, - "node_modules/@docusaurus/react-loadable": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/@docusaurus/react-loadable/-/react-loadable-5.5.2.tgz", - "integrity": "sha512-A3dYjdBGuy0IGT+wyLIGIKLRE+sAk1iNk0f1HjNDysO7u8lhL4N3VEm+FAubmJbAztn94F7MxBTPmnixbiyFdQ==", - "dependencies": { - "@types/react": "*", - "prop-types": "^15.6.2" - }, - "peerDependencies": { - "react": "*" - } - }, "node_modules/@docusaurus/theme-classic": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-classic/-/theme-classic-3.1.0.tgz", - "integrity": "sha512-/+jMl2Z9O8QQxves5AtHdt91gWsEZFgOV3La/6eyKEd7QLqQUtM5fxEJ40rq9NKYjqCd1HzZ9egIMeJoWwillw==", - "dependencies": { - "@docusaurus/core": "3.1.0", - "@docusaurus/mdx-loader": "3.1.0", - "@docusaurus/module-type-aliases": "3.1.0", - "@docusaurus/plugin-content-blog": "3.1.0", - "@docusaurus/plugin-content-docs": "3.1.0", - "@docusaurus/plugin-content-pages": "3.1.0", - "@docusaurus/theme-common": "3.1.0", - "@docusaurus/theme-translations": "3.1.0", - "@docusaurus/types": "3.1.0", - "@docusaurus/utils": "3.1.0", - "@docusaurus/utils-common": "3.1.0", - "@docusaurus/utils-validation": "3.1.0", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-classic/-/theme-classic-3.4.0.tgz", + "integrity": "sha512-0IPtmxsBYv2adr1GnZRdMkEQt1YW6tpzrUPj02YxNpvJ5+ju4E13J5tB4nfdaen/tfR1hmpSPlTFPvTf4kwy8Q==", + "dependencies": { + "@docusaurus/core": "3.4.0", + "@docusaurus/mdx-loader": "3.4.0", + "@docusaurus/module-type-aliases": "3.4.0", + "@docusaurus/plugin-content-blog": "3.4.0", + "@docusaurus/plugin-content-docs": "3.4.0", + "@docusaurus/plugin-content-pages": "3.4.0", + "@docusaurus/theme-common": "3.4.0", + "@docusaurus/theme-translations": "3.4.0", + "@docusaurus/types": "3.4.0", + "@docusaurus/utils": "3.4.0", + "@docusaurus/utils-common": "3.4.0", + "@docusaurus/utils-validation": "3.4.0", "@mdx-js/react": "^3.0.0", "clsx": "^2.0.0", "copy-text-to-clipboard": "^3.2.0", @@ -2615,17 +2618,17 @@ } }, "node_modules/@docusaurus/theme-common": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-common/-/theme-common-3.1.0.tgz", - "integrity": "sha512-YGwEFALLIbF5ocW/Fy6Ae7tFWUOugEN3iwxTx8UkLAcLqYUboDSadesYtVBmRCEB4FVA2qoP7YaW3lu3apUPPw==", - "dependencies": { - "@docusaurus/mdx-loader": "3.1.0", - "@docusaurus/module-type-aliases": "3.1.0", - "@docusaurus/plugin-content-blog": "3.1.0", - "@docusaurus/plugin-content-docs": "3.1.0", - "@docusaurus/plugin-content-pages": "3.1.0", - "@docusaurus/utils": "3.1.0", - "@docusaurus/utils-common": "3.1.0", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-common/-/theme-common-3.4.0.tgz", + "integrity": "sha512-0A27alXuv7ZdCg28oPE8nH/Iz73/IUejVaCazqu9elS4ypjiLhK3KfzdSQBnL/g7YfHSlymZKdiOHEo8fJ0qMA==", + "dependencies": { + "@docusaurus/mdx-loader": "3.4.0", + "@docusaurus/module-type-aliases": "3.4.0", + "@docusaurus/plugin-content-blog": "3.4.0", + "@docusaurus/plugin-content-docs": "3.4.0", + "@docusaurus/plugin-content-pages": "3.4.0", + "@docusaurus/utils": "3.4.0", + "@docusaurus/utils-common": "3.4.0", "@types/history": "^4.7.11", "@types/react": "*", "@types/react-router-config": "*", @@ -2644,18 +2647,18 @@ } }, "node_modules/@docusaurus/theme-search-algolia": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-search-algolia/-/theme-search-algolia-3.1.0.tgz", - "integrity": "sha512-8cJH0ZhPsEDjq3jR3I+wHmWzVY2bXMQJ59v2QxUmsTZxbWA4u+IzccJMIJx4ooFl9J6iYynwYsFuHxyx/KUmfQ==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-search-algolia/-/theme-search-algolia-3.4.0.tgz", + "integrity": "sha512-aiHFx7OCw4Wck1z6IoShVdUWIjntC8FHCw9c5dR8r3q4Ynh+zkS8y2eFFunN/DL6RXPzpnvKCg3vhLQYJDmT9Q==", "dependencies": { "@docsearch/react": "^3.5.2", - "@docusaurus/core": "3.1.0", - "@docusaurus/logger": "3.1.0", - "@docusaurus/plugin-content-docs": "3.1.0", - "@docusaurus/theme-common": "3.1.0", - "@docusaurus/theme-translations": "3.1.0", - "@docusaurus/utils": "3.1.0", - "@docusaurus/utils-validation": "3.1.0", + "@docusaurus/core": "3.4.0", + "@docusaurus/logger": "3.4.0", + "@docusaurus/plugin-content-docs": "3.4.0", + "@docusaurus/theme-common": "3.4.0", + "@docusaurus/theme-translations": "3.4.0", + "@docusaurus/utils": "3.4.0", + "@docusaurus/utils-validation": "3.4.0", "algoliasearch": "^4.18.0", "algoliasearch-helper": "^3.13.3", "clsx": "^2.0.0", @@ -2674,9 +2677,9 @@ } }, "node_modules/@docusaurus/theme-translations": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@docusaurus/theme-translations/-/theme-translations-3.1.0.tgz", - "integrity": "sha512-DApE4AbDI+WBajihxB54L4scWQhVGNZAochlC9fkbciPuFAgdRBD3NREb0rgfbKexDC/rioppu/WJA0u8tS+yA==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@docusaurus/theme-translations/-/theme-translations-3.4.0.tgz", + "integrity": "sha512-zSxCSpmQCCdQU5Q4CnX/ID8CSUUI3fvmq4hU/GNP/XoAWtXo9SAVnM3TzpU8Gb//H3WCsT8mJcTfyOk3d9ftNg==", "dependencies": { "fs-extra": "^11.1.1", "tslib": "^2.6.0" @@ -2686,9 +2689,9 @@ } }, "node_modules/@docusaurus/types": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-3.1.0.tgz", - "integrity": "sha512-VaczOZf7+re8aFBIWnex1XENomwHdsSTkrdX43zyor7G/FY4OIsP6X28Xc3o0jiY0YdNuvIDyA5TNwOtpgkCVw==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@docusaurus/types/-/types-3.4.0.tgz", + "integrity": "sha512-4jcDO8kXi5Cf9TcyikB/yKmz14f2RZ2qTRerbHAsS+5InE9ZgSLBNLsewtFTcTOXSVcbU3FoGOzcNWAmU1TR0A==", "dependencies": { "@mdx-js/mdx": "^3.0.0", "@types/history": "^4.7.11", @@ -2706,12 +2709,13 @@ } }, "node_modules/@docusaurus/utils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@docusaurus/utils/-/utils-3.1.0.tgz", - "integrity": "sha512-LgZfp0D+UBqAh7PZ//MUNSFBMavmAPku6Si9x8x3V+S318IGCNJ6hUr2O29UO0oLybEWUjD5Jnj9IUN6XyZeeg==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@docusaurus/utils/-/utils-3.4.0.tgz", + "integrity": "sha512-fRwnu3L3nnWaXOgs88BVBmG1yGjcQqZNHG+vInhEa2Sz2oQB+ZjbEMO5Rh9ePFpZ0YDiDUhpaVjwmS+AU2F14g==", "dependencies": { - "@docusaurus/logger": "3.1.0", - "@svgr/webpack": "^6.5.1", + "@docusaurus/logger": "3.4.0", + "@docusaurus/utils-common": "3.4.0", + "@svgr/webpack": "^8.1.0", "escape-string-regexp": "^4.0.0", "file-loader": "^6.2.0", "fs-extra": "^11.1.1", @@ -2722,10 +2726,12 @@ "js-yaml": "^4.1.0", "lodash": "^4.17.21", "micromatch": "^4.0.5", + "prompts": "^2.4.2", "resolve-pathname": "^3.0.0", "shelljs": "^0.8.5", "tslib": "^2.6.0", "url-loader": "^4.1.1", + "utility-types": "^3.10.0", "webpack": "^5.88.1" }, "engines": { @@ -2741,9 +2747,9 @@ } }, "node_modules/@docusaurus/utils-common": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@docusaurus/utils-common/-/utils-common-3.1.0.tgz", - "integrity": "sha512-SfvnRLHoZ9bwTw67knkSs7IcUR0GY2SaGkpdB/J9pChrDiGhwzKNUhcieoPyPYrOWGRPk3rVNYtoy+Bc7psPAw==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@docusaurus/utils-common/-/utils-common-3.4.0.tgz", + "integrity": "sha512-NVx54Wr4rCEKsjOH5QEVvxIqVvm+9kh7q8aYTU5WzUU9/Hctd6aTrcZ3G0Id4zYJ+AeaG5K5qHA4CY5Kcm2iyQ==", "dependencies": { "tslib": "^2.6.0" }, @@ -2760,14 +2766,17 @@ } }, "node_modules/@docusaurus/utils-validation": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-3.1.0.tgz", - "integrity": "sha512-dFxhs1NLxPOSzmcTk/eeKxLY5R+U4cua22g9MsAMiRWcwFKStZ2W3/GDY0GmnJGqNS8QAQepJrxQoyxXkJNDeg==", - "dependencies": { - "@docusaurus/logger": "3.1.0", - "@docusaurus/utils": "3.1.0", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@docusaurus/utils-validation/-/utils-validation-3.4.0.tgz", + "integrity": "sha512-hYQ9fM+AXYVTWxJOT1EuNaRnrR2WGpRdLDQG07O8UOpsvCPWUVOeo26Rbm0JWY2sGLfzAb+tvJ62yF+8F+TV0g==", + "dependencies": { + "@docusaurus/logger": "3.4.0", + "@docusaurus/utils": "3.4.0", + "@docusaurus/utils-common": "3.4.0", + "fs-extra": "^11.2.0", "joi": "^17.9.2", "js-yaml": "^4.1.0", + "lodash": "^4.17.21", "tslib": "^2.6.0" }, "engines": { @@ -3039,19 +3048,6 @@ "micromark-util-symbol": "^1.0.1" } }, - "node_modules/@slorber/static-site-generator-webpack-plugin": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/@slorber/static-site-generator-webpack-plugin/-/static-site-generator-webpack-plugin-4.0.7.tgz", - "integrity": "sha512-Ug7x6z5lwrz0WqdnNFOMYrDQNTPAprvHLSh6+/fmml3qUiz6l5eq+2MzLKWtn/q5K5NpSiFsZTP/fck/3vjSxA==", - "dependencies": { - "eval": "^0.1.8", - "p-map": "^4.0.0", - "webpack-sources": "^3.2.2" - }, - "engines": { - "node": ">=14" - } - }, "node_modules/@stoplight/json": { "version": "3.21.0", "resolved": "https://registry.npmjs.org/@stoplight/json/-/json-3.21.0.tgz", @@ -3117,11 +3113,11 @@ } }, "node_modules/@svgr/babel-plugin-add-jsx-attribute": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-6.5.1.tgz", - "integrity": "sha512-9PYGcXrAxitycIjRmZB+Q0JaN07GZIWaTBIGQzfaZv+qr1n8X1XUEJ5rZ/vx6OVD9RRYlrNnXWExQXcmZeD/BQ==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-8.0.0.tgz", + "integrity": "sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==", "engines": { - "node": ">=10" + "node": ">=14" }, "funding": { "type": "github", @@ -3162,11 +3158,11 @@ } }, "node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-6.5.1.tgz", - "integrity": "sha512-8DPaVVE3fd5JKuIC29dqyMB54sA6mfgki2H2+swh+zNJoynC8pMPzOkidqHOSc6Wj032fhl8Z0TVn1GiPpAiJg==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-8.0.0.tgz", + "integrity": "sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==", "engines": { - "node": ">=10" + "node": ">=14" }, "funding": { "type": "github", @@ -3177,11 +3173,11 @@ } }, "node_modules/@svgr/babel-plugin-svg-dynamic-title": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-6.5.1.tgz", - "integrity": "sha512-FwOEi0Il72iAzlkaHrlemVurgSQRDFbk0OC8dSvD5fSBPHltNh7JtLsxmZUhjYBZo2PpcU/RJvvi6Q0l7O7ogw==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-8.0.0.tgz", + "integrity": "sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==", "engines": { - "node": ">=10" + "node": ">=14" }, "funding": { "type": "github", @@ -3192,11 +3188,11 @@ } }, "node_modules/@svgr/babel-plugin-svg-em-dimensions": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-6.5.1.tgz", - "integrity": "sha512-gWGsiwjb4tw+ITOJ86ndY/DZZ6cuXMNE/SjcDRg+HLuCmwpcjOktwRF9WgAiycTqJD/QXqL2f8IzE2Rzh7aVXA==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-8.0.0.tgz", + "integrity": "sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==", "engines": { - "node": ">=10" + "node": ">=14" }, "funding": { "type": "github", @@ -3207,11 +3203,11 @@ } }, "node_modules/@svgr/babel-plugin-transform-react-native-svg": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-6.5.1.tgz", - "integrity": "sha512-2jT3nTayyYP7kI6aGutkyfJ7UMGtuguD72OjeGLwVNyfPRBD8zQthlvL+fAbAKk5n9ZNcvFkp/b1lZ7VsYqVJg==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-8.1.0.tgz", + "integrity": "sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q==", "engines": { - "node": ">=10" + "node": ">=14" }, "funding": { "type": "github", @@ -3222,9 +3218,9 @@ } }, "node_modules/@svgr/babel-plugin-transform-svg-component": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-6.5.1.tgz", - "integrity": "sha512-a1p6LF5Jt33O3rZoVRBqdxL350oge54iZWHNI6LJB5tQ7EelvD/Mb1mfBiZNAan0dt4i3VArkFRjA4iObuNykQ==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-8.0.0.tgz", + "integrity": "sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==", "engines": { "node": ">=12" }, @@ -3237,21 +3233,21 @@ } }, "node_modules/@svgr/babel-preset": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-6.5.1.tgz", - "integrity": "sha512-6127fvO/FF2oi5EzSQOAjo1LE3OtNVh11R+/8FXa+mHx1ptAaS4cknIjnUA7e6j6fwGGJ17NzaTJFUwOV2zwCw==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-8.1.0.tgz", + "integrity": "sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug==", "dependencies": { - "@svgr/babel-plugin-add-jsx-attribute": "^6.5.1", - "@svgr/babel-plugin-remove-jsx-attribute": "*", - "@svgr/babel-plugin-remove-jsx-empty-expression": "*", - "@svgr/babel-plugin-replace-jsx-attribute-value": "^6.5.1", - "@svgr/babel-plugin-svg-dynamic-title": "^6.5.1", - "@svgr/babel-plugin-svg-em-dimensions": "^6.5.1", - "@svgr/babel-plugin-transform-react-native-svg": "^6.5.1", - "@svgr/babel-plugin-transform-svg-component": "^6.5.1" + "@svgr/babel-plugin-add-jsx-attribute": "8.0.0", + "@svgr/babel-plugin-remove-jsx-attribute": "8.0.0", + "@svgr/babel-plugin-remove-jsx-empty-expression": "8.0.0", + "@svgr/babel-plugin-replace-jsx-attribute-value": "8.0.0", + "@svgr/babel-plugin-svg-dynamic-title": "8.0.0", + "@svgr/babel-plugin-svg-em-dimensions": "8.0.0", + "@svgr/babel-plugin-transform-react-native-svg": "8.1.0", + "@svgr/babel-plugin-transform-svg-component": "8.0.0" }, "engines": { - "node": ">=10" + "node": ">=14" }, "funding": { "type": "github", @@ -3262,18 +3258,18 @@ } }, "node_modules/@svgr/core": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/core/-/core-6.5.1.tgz", - "integrity": "sha512-/xdLSWxK5QkqG524ONSjvg3V/FkNyCv538OIBdQqPNaAta3AsXj/Bd2FbvR87yMbXO2hFSWiAe/Q6IkVPDw+mw==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/core/-/core-8.1.0.tgz", + "integrity": "sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==", "dependencies": { - "@babel/core": "^7.19.6", - "@svgr/babel-preset": "^6.5.1", - "@svgr/plugin-jsx": "^6.5.1", + "@babel/core": "^7.21.3", + "@svgr/babel-preset": "8.1.0", "camelcase": "^6.2.0", - "cosmiconfig": "^7.0.1" + "cosmiconfig": "^8.1.3", + "snake-case": "^3.0.4" }, "engines": { - "node": ">=10" + "node": ">=14" }, "funding": { "type": "github", @@ -3281,15 +3277,15 @@ } }, "node_modules/@svgr/hast-util-to-babel-ast": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-6.5.1.tgz", - "integrity": "sha512-1hnUxxjd83EAxbL4a0JDJoD3Dao3hmjvyvyEV8PzWmLK3B9m9NPlW7GKjFyoWE8nM7HnXzPcmmSyOW8yOddSXw==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-8.0.0.tgz", + "integrity": "sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==", "dependencies": { - "@babel/types": "^7.20.0", + "@babel/types": "^7.21.3", "entities": "^4.4.0" }, "engines": { - "node": ">=10" + "node": ">=14" }, "funding": { "type": "github", @@ -3297,37 +3293,37 @@ } }, "node_modules/@svgr/plugin-jsx": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-6.5.1.tgz", - "integrity": "sha512-+UdQxI3jgtSjCykNSlEMuy1jSRQlGC7pqBCPvkG/2dATdWo082zHTTK3uhnAju2/6XpE6B5mZ3z4Z8Ns01S8Gw==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-8.1.0.tgz", + "integrity": "sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA==", "dependencies": { - "@babel/core": "^7.19.6", - "@svgr/babel-preset": "^6.5.1", - "@svgr/hast-util-to-babel-ast": "^6.5.1", + "@babel/core": "^7.21.3", + "@svgr/babel-preset": "8.1.0", + "@svgr/hast-util-to-babel-ast": "8.0.0", "svg-parser": "^2.0.4" }, "engines": { - "node": ">=10" + "node": ">=14" }, "funding": { "type": "github", "url": "https://github.com/sponsors/gregberge" }, "peerDependencies": { - "@svgr/core": "^6.0.0" + "@svgr/core": "*" } }, "node_modules/@svgr/plugin-svgo": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-6.5.1.tgz", - "integrity": "sha512-omvZKf8ixP9z6GWgwbtmP9qQMPX4ODXi+wzbVZgomNFsUIlHA1sf4fThdwTWSsZGgvGAG6yE+b/F5gWUkcZ/iQ==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-8.1.0.tgz", + "integrity": "sha512-Ywtl837OGO9pTLIN/onoWLmDQ4zFUycI1g76vuKGEz6evR/ZTJlJuz3G/fIkb6OVBJ2g0o6CGJzaEjfmEo3AHA==", "dependencies": { - "cosmiconfig": "^7.0.1", - "deepmerge": "^4.2.2", - "svgo": "^2.8.0" + "cosmiconfig": "^8.1.3", + "deepmerge": "^4.3.1", + "svgo": "^3.0.2" }, "engines": { - "node": ">=10" + "node": ">=14" }, "funding": { "type": "github", @@ -3338,21 +3334,21 @@ } }, "node_modules/@svgr/webpack": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-6.5.1.tgz", - "integrity": "sha512-cQ/AsnBkXPkEK8cLbv4Dm7JGXq2XrumKnL1dRpJD9rIO2fTIlJI9a1uCciYG1F2aUsox/hJQyNGbt3soDxSRkA==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-8.1.0.tgz", + "integrity": "sha512-LnhVjMWyMQV9ZmeEy26maJk+8HTIbd59cH4F2MJ439k9DqejRisfFNGAPvRYlKETuh9LrImlS8aKsBgKjMA8WA==", "dependencies": { - "@babel/core": "^7.19.6", - "@babel/plugin-transform-react-constant-elements": "^7.18.12", - "@babel/preset-env": "^7.19.4", + "@babel/core": "^7.21.3", + "@babel/plugin-transform-react-constant-elements": "^7.21.3", + "@babel/preset-env": "^7.20.2", "@babel/preset-react": "^7.18.6", - "@babel/preset-typescript": "^7.18.6", - "@svgr/core": "^6.5.1", - "@svgr/plugin-jsx": "^6.5.1", - "@svgr/plugin-svgo": "^6.5.1" + "@babel/preset-typescript": "^7.21.0", + "@svgr/core": "8.1.0", + "@svgr/plugin-jsx": "8.1.0", + "@svgr/plugin-svgo": "8.1.0" }, "engines": { - "node": ">=10" + "node": ">=14" }, "funding": { "type": "github", @@ -4010,30 +4006,31 @@ } }, "node_modules/algoliasearch": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-4.22.1.tgz", - "integrity": "sha512-jwydKFQJKIx9kIZ8Jm44SdpigFwRGPESaxZBaHSV0XWN2yBJAOT4mT7ppvlrpA4UGzz92pqFnVKr/kaZXrcreg==", - "dependencies": { - "@algolia/cache-browser-local-storage": "4.22.1", - "@algolia/cache-common": "4.22.1", - "@algolia/cache-in-memory": "4.22.1", - "@algolia/client-account": "4.22.1", - "@algolia/client-analytics": "4.22.1", - "@algolia/client-common": "4.22.1", - "@algolia/client-personalization": "4.22.1", - "@algolia/client-search": "4.22.1", - "@algolia/logger-common": "4.22.1", - "@algolia/logger-console": "4.22.1", - "@algolia/requester-browser-xhr": "4.22.1", - "@algolia/requester-common": "4.22.1", - "@algolia/requester-node-http": "4.22.1", - "@algolia/transporter": "4.22.1" + "version": "4.23.3", + "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-4.23.3.tgz", + "integrity": "sha512-Le/3YgNvjW9zxIQMRhUHuhiUjAlKY/zsdZpfq4dlLqg6mEm0nL6yk+7f2hDOtLpxsgE4jSzDmvHL7nXdBp5feg==", + "dependencies": { + "@algolia/cache-browser-local-storage": "4.23.3", + "@algolia/cache-common": "4.23.3", + "@algolia/cache-in-memory": "4.23.3", + "@algolia/client-account": "4.23.3", + "@algolia/client-analytics": "4.23.3", + "@algolia/client-common": "4.23.3", + "@algolia/client-personalization": "4.23.3", + "@algolia/client-search": "4.23.3", + "@algolia/logger-common": "4.23.3", + "@algolia/logger-console": "4.23.3", + "@algolia/recommend": "4.23.3", + "@algolia/requester-browser-xhr": "4.23.3", + "@algolia/requester-common": "4.23.3", + "@algolia/requester-node-http": "4.23.3", + "@algolia/transporter": "4.23.3" } }, "node_modules/algoliasearch-helper": { - "version": "3.16.1", - "resolved": "https://registry.npmjs.org/algoliasearch-helper/-/algoliasearch-helper-3.16.1.tgz", - "integrity": "sha512-qxAHVjjmT7USVvrM8q6gZGaJlCK1fl4APfdAA7o8O6iXEc68G0xMNrzRkxoB/HmhhvyHnoteS/iMTiHiTcQQcg==", + "version": "3.22.1", + "resolved": "https://registry.npmjs.org/algoliasearch-helper/-/algoliasearch-helper-3.22.1.tgz", + "integrity": "sha512-fSxJ4YreH4kOME9CnKazbAn2tK/rvBoV37ETd6nTt4j7QfkcnW+c+F22WfuE9Q/sRpvOMnUwU/BXAVEiwW7p/w==", "dependencies": { "@algolia/events": "^4.0.1" }, @@ -4152,9 +4149,9 @@ } }, "node_modules/autoprefixer": { - "version": "10.4.17", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.17.tgz", - "integrity": "sha512-/cpVNRLSfhOtcGflT13P2794gVSgmPgTR+erw5ifnMLZb0UnSlkK4tquLmkd3BhA+nLo5tX8Cu0upUsGKvKbmg==", + "version": "10.4.19", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.19.tgz", + "integrity": "sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==", "funding": [ { "type": "opencollective", @@ -4170,8 +4167,8 @@ } ], "dependencies": { - "browserslist": "^4.22.2", - "caniuse-lite": "^1.0.30001578", + "browserslist": "^4.23.0", + "caniuse-lite": "^1.0.30001599", "fraction.js": "^4.3.7", "normalize-range": "^0.1.2", "picocolors": "^1.0.0", @@ -4394,20 +4391,20 @@ } }, "node_modules/braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "dependencies": { - "fill-range": "^7.1.1" + "fill-range": "^7.0.1" }, "engines": { "node": ">=8" } }, "node_modules/browserslist": { - "version": "4.22.2", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.2.tgz", - "integrity": "sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==", + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", + "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", "funding": [ { "type": "opencollective", @@ -4423,8 +4420,8 @@ } ], "dependencies": { - "caniuse-lite": "^1.0.30001565", - "electron-to-chromium": "^1.4.601", + "caniuse-lite": "^1.0.30001587", + "electron-to-chromium": "^1.4.668", "node-releases": "^2.0.14", "update-browserslist-db": "^1.0.13" }, @@ -4537,9 +4534,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001579", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001579.tgz", - "integrity": "sha512-u5AUVkixruKHJjw/pj9wISlcMpgFWzSrczLZbrqBSxukQixmg0SJ5sZTpvaFvxU0HoQKd4yoyAogyrAz9pzJnA==", + "version": "1.0.30001612", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001612.tgz", + "integrity": "sha512-lFgnZ07UhaCcsSZgWW0K5j4e69dK1u/ltrL9lTUiFOwNHs12S3UMIEYgBV0Z6C6hRDev7iRnMzzYmKabYdXF9g==", "funding": [ { "type": "opencollective", @@ -5119,18 +5116,28 @@ "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" }, "node_modules/cosmiconfig": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", - "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "version": "8.3.6", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", + "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", "dependencies": { - "@types/parse-json": "^4.0.0", - "import-fresh": "^3.2.1", - "parse-json": "^5.0.0", - "path-type": "^4.0.0", - "yaml": "^1.10.0" + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0", + "path-type": "^4.0.0" }, "engines": { - "node": ">=10" + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, "node_modules/cross-spawn": { @@ -5172,11 +5179,11 @@ } }, "node_modules/css-declaration-sorter": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.4.1.tgz", - "integrity": "sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-7.2.0.tgz", + "integrity": "sha512-h70rUM+3PNFuaBDTLe8wF/cdWu+dOZmb7pJt8Z2sedYbAcQVQV/tEchueg3GWxwqS0cxtbxmaHEdkNACqcvsow==", "engines": { - "node": "^10 || ^12 || >=14" + "node": "^14 || ^16 || >=18" }, "peerDependencies": { "postcss": "^8.0.9" @@ -5208,16 +5215,16 @@ } }, "node_modules/css-minimizer-webpack-plugin": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-4.2.2.tgz", - "integrity": "sha512-s3Of/4jKfw1Hj9CxEO1E5oXhQAxlayuHO2y/ML+C6I9sQ7FdzfEV6QgMLN3vI+qFsjJGIAFLKtQK7t8BOXAIyA==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-5.0.1.tgz", + "integrity": "sha512-3caImjKFQkS+ws1TGcFn0V1HyDJFq1Euy589JlD6/3rV2kj+w7r5G9WDMgSHvpvXHNZ2calVypZWuEDQd9wfLg==", "dependencies": { - "cssnano": "^5.1.8", - "jest-worker": "^29.1.2", - "postcss": "^8.4.17", - "schema-utils": "^4.0.0", - "serialize-javascript": "^6.0.0", - "source-map": "^0.6.1" + "@jridgewell/trace-mapping": "^0.3.18", + "cssnano": "^6.0.1", + "jest-worker": "^29.4.3", + "postcss": "^8.4.24", + "schema-utils": "^4.0.1", + "serialize-javascript": "^6.0.1" }, "engines": { "node": ">= 14.15.0" @@ -5250,14 +5257,6 @@ } } }, - "node_modules/css-minimizer-webpack-plugin/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/css-select": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", @@ -5274,23 +5273,15 @@ } }, "node_modules/css-tree": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", - "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", + "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", "dependencies": { - "mdn-data": "2.0.14", - "source-map": "^0.6.1" + "mdn-data": "2.0.30", + "source-map-js": "^1.0.1" }, "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/css-tree/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "engines": { - "node": ">=0.10.0" + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" } }, "node_modules/css-what": { @@ -5316,108 +5307,128 @@ } }, "node_modules/cssnano": { - "version": "5.1.15", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.15.tgz", - "integrity": "sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==", + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-6.1.2.tgz", + "integrity": "sha512-rYk5UeX7VAM/u0lNqewCdasdtPK81CgX8wJFLEIXHbV2oldWRgJAsZrdhRXkV1NJzA2g850KiFm9mMU2HxNxMA==", "dependencies": { - "cssnano-preset-default": "^5.2.14", - "lilconfig": "^2.0.3", - "yaml": "^1.10.2" + "cssnano-preset-default": "^6.1.2", + "lilconfig": "^3.1.1" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/cssnano" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/cssnano-preset-advanced": { - "version": "5.3.10", - "resolved": "https://registry.npmjs.org/cssnano-preset-advanced/-/cssnano-preset-advanced-5.3.10.tgz", - "integrity": "sha512-fnYJyCS9jgMU+cmHO1rPSPf9axbQyD7iUhLO5Df6O4G+fKIOMps+ZbU0PdGFejFBBZ3Pftf18fn1eG7MAPUSWQ==", + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/cssnano-preset-advanced/-/cssnano-preset-advanced-6.1.2.tgz", + "integrity": "sha512-Nhao7eD8ph2DoHolEzQs5CfRpiEP0xa1HBdnFZ82kvqdmbwVBUr2r1QuQ4t1pi+D1ZpqpcO4T+wy/7RxzJ/WPQ==", "dependencies": { - "autoprefixer": "^10.4.12", - "cssnano-preset-default": "^5.2.14", - "postcss-discard-unused": "^5.1.0", - "postcss-merge-idents": "^5.1.1", - "postcss-reduce-idents": "^5.2.0", - "postcss-zindex": "^5.1.0" + "autoprefixer": "^10.4.19", + "browserslist": "^4.23.0", + "cssnano-preset-default": "^6.1.2", + "postcss-discard-unused": "^6.0.5", + "postcss-merge-idents": "^6.0.3", + "postcss-reduce-idents": "^6.0.3", + "postcss-zindex": "^6.0.2" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/cssnano-preset-default": { - "version": "5.2.14", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.14.tgz", - "integrity": "sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==", - "dependencies": { - "css-declaration-sorter": "^6.3.1", - "cssnano-utils": "^3.1.0", - "postcss-calc": "^8.2.3", - "postcss-colormin": "^5.3.1", - "postcss-convert-values": "^5.1.3", - "postcss-discard-comments": "^5.1.2", - "postcss-discard-duplicates": "^5.1.0", - "postcss-discard-empty": "^5.1.1", - "postcss-discard-overridden": "^5.1.0", - "postcss-merge-longhand": "^5.1.7", - "postcss-merge-rules": "^5.1.4", - "postcss-minify-font-values": "^5.1.0", - "postcss-minify-gradients": "^5.1.1", - "postcss-minify-params": "^5.1.4", - "postcss-minify-selectors": "^5.2.1", - "postcss-normalize-charset": "^5.1.0", - "postcss-normalize-display-values": "^5.1.0", - "postcss-normalize-positions": "^5.1.1", - "postcss-normalize-repeat-style": "^5.1.1", - "postcss-normalize-string": "^5.1.0", - "postcss-normalize-timing-functions": "^5.1.0", - "postcss-normalize-unicode": "^5.1.1", - "postcss-normalize-url": "^5.1.0", - "postcss-normalize-whitespace": "^5.1.1", - "postcss-ordered-values": "^5.1.3", - "postcss-reduce-initial": "^5.1.2", - "postcss-reduce-transforms": "^5.1.0", - "postcss-svgo": "^5.1.0", - "postcss-unique-selectors": "^5.1.1" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-6.1.2.tgz", + "integrity": "sha512-1C0C+eNaeN8OcHQa193aRgYexyJtU8XwbdieEjClw+J9d94E41LwT6ivKH0WT+fYwYWB0Zp3I3IZ7tI/BbUbrg==", + "dependencies": { + "browserslist": "^4.23.0", + "css-declaration-sorter": "^7.2.0", + "cssnano-utils": "^4.0.2", + "postcss-calc": "^9.0.1", + "postcss-colormin": "^6.1.0", + "postcss-convert-values": "^6.1.0", + "postcss-discard-comments": "^6.0.2", + "postcss-discard-duplicates": "^6.0.3", + "postcss-discard-empty": "^6.0.3", + "postcss-discard-overridden": "^6.0.2", + "postcss-merge-longhand": "^6.0.5", + "postcss-merge-rules": "^6.1.1", + "postcss-minify-font-values": "^6.1.0", + "postcss-minify-gradients": "^6.0.3", + "postcss-minify-params": "^6.1.0", + "postcss-minify-selectors": "^6.0.4", + "postcss-normalize-charset": "^6.0.2", + "postcss-normalize-display-values": "^6.0.2", + "postcss-normalize-positions": "^6.0.2", + "postcss-normalize-repeat-style": "^6.0.2", + "postcss-normalize-string": "^6.0.2", + "postcss-normalize-timing-functions": "^6.0.2", + "postcss-normalize-unicode": "^6.1.0", + "postcss-normalize-url": "^6.0.2", + "postcss-normalize-whitespace": "^6.0.2", + "postcss-ordered-values": "^6.0.2", + "postcss-reduce-initial": "^6.1.0", + "postcss-reduce-transforms": "^6.0.2", + "postcss-svgo": "^6.0.3", + "postcss-unique-selectors": "^6.0.4" + }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, + "peerDependencies": { + "postcss": "^8.4.31" } }, "node_modules/cssnano-utils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-3.1.0.tgz", - "integrity": "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-4.0.2.tgz", + "integrity": "sha512-ZR1jHg+wZ8o4c3zqf1SIUSTIvm/9mU343FMR6Obe/unskbvpGhZOo1J6d/r8D1pzkRQYuwbcH3hToOuoA2G7oQ==", "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/csso": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", - "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", + "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", "dependencies": { - "css-tree": "^1.1.2" + "css-tree": "~2.2.0" }, "engines": { - "node": ">=8.0.0" + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" } }, + "node_modules/csso/node_modules/css-tree": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz", + "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", + "dependencies": { + "mdn-data": "2.0.28", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/csso/node_modules/mdn-data": { + "version": "2.0.28", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz", + "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==" + }, "node_modules/csstype": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", @@ -5810,9 +5821,9 @@ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" }, "node_modules/electron-to-chromium": { - "version": "1.4.641", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.641.tgz", - "integrity": "sha512-JetAF3M5Lr9hwzDe3oMmWFOydlclqt2loEljxc0AAP5NYM170sSW+F5/cn5ROBfjx5LdmzeeAgWnyAU9cjPhmA==" + "version": "1.4.745", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.745.tgz", + "integrity": "sha512-tRbzkaRI5gbUn5DEvF0dV4TQbMZ5CLkWeTAXmpC9IrYT+GE+x76i9p+o3RJ5l9XmdQlI1pPhVtE9uNcJJ0G0EA==" }, "node_modules/emoji-regex": { "version": "9.2.2", @@ -6378,9 +6389,9 @@ } }, "node_modules/fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "dependencies": { "to-regex-range": "^5.0.1" }, @@ -8111,11 +8122,14 @@ } }, "node_modules/lilconfig": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", - "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz", + "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==", "engines": { - "node": ">=10" + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" } }, "node_modules/lines-and-columns": { @@ -8624,9 +8638,9 @@ } }, "node_modules/mdn-data": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", - "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==" + "version": "2.0.30", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", + "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==" }, "node_modules/media-typer": { "version": "0.3.0", @@ -10571,17 +10585,6 @@ "node": ">=0.10.0" } }, - "node_modules/normalize-url": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", - "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/npm-run-path": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", @@ -11071,9 +11074,9 @@ } }, "node_modules/postcss": { - "version": "8.4.33", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.33.tgz", - "integrity": "sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==", + "version": "8.4.38", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", + "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", "funding": [ { "type": "opencollective", @@ -11091,112 +11094,115 @@ "dependencies": { "nanoid": "^3.3.7", "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" + "source-map-js": "^1.2.0" }, "engines": { "node": "^10 || ^12 || >=14" } }, "node_modules/postcss-calc": { - "version": "8.2.4", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.2.4.tgz", - "integrity": "sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-9.0.1.tgz", + "integrity": "sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ==", "dependencies": { - "postcss-selector-parser": "^6.0.9", + "postcss-selector-parser": "^6.0.11", "postcss-value-parser": "^4.2.0" }, + "engines": { + "node": "^14 || ^16 || >=18.0" + }, "peerDependencies": { "postcss": "^8.2.2" } }, "node_modules/postcss-colormin": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.3.1.tgz", - "integrity": "sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-6.1.0.tgz", + "integrity": "sha512-x9yX7DOxeMAR+BgGVnNSAxmAj98NX/YxEMNFP+SDCEeNLb2r3i6Hh1ksMsnW8Ub5SLCpbescQqn9YEbE9554Sw==", "dependencies": { - "browserslist": "^4.21.4", + "browserslist": "^4.23.0", "caniuse-api": "^3.0.0", - "colord": "^2.9.1", + "colord": "^2.9.3", "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-convert-values": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.3.tgz", - "integrity": "sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-6.1.0.tgz", + "integrity": "sha512-zx8IwP/ts9WvUM6NkVSkiU902QZL1bwPhaVaLynPtCsOTqp+ZKbNi+s6XJg3rfqpKGA/oc7Oxk5t8pOQJcwl/w==", "dependencies": { - "browserslist": "^4.21.4", + "browserslist": "^4.23.0", "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-discard-comments": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz", - "integrity": "sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-6.0.2.tgz", + "integrity": "sha512-65w/uIqhSBBfQmYnG92FO1mWZjJ4GL5b8atm5Yw2UgrwD7HiNiSSNwJor1eCFGzUgYnN/iIknhNRVqjrrpuglw==", "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-discard-duplicates": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz", - "integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-6.0.3.tgz", + "integrity": "sha512-+JA0DCvc5XvFAxwx6f/e68gQu/7Z9ud584VLmcgto28eB8FqSFZwtrLwB5Kcp70eIoWP/HXqz4wpo8rD8gpsTw==", "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-discard-empty": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz", - "integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-6.0.3.tgz", + "integrity": "sha512-znyno9cHKQsK6PtxL5D19Fj9uwSzC2mB74cpT66fhgOadEUPyXFkbgwm5tvc3bt3NAy8ltE5MrghxovZRVnOjQ==", "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-discard-overridden": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz", - "integrity": "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-6.0.2.tgz", + "integrity": "sha512-j87xzI4LUggC5zND7KdjsI25APtyMuynXZSujByMaav2roV6OZX+8AaCUcZSWqckZpjAjRyFDdpqybgjFO0HJQ==", "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-discard-unused": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-5.1.0.tgz", - "integrity": "sha512-KwLWymI9hbwXmJa0dkrzpRbSJEh0vVUd7r8t0yOGPcfKzyJJxFM8kLyC5Ev9avji6nY95pOp1W6HqIrfT+0VGw==", + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-6.0.5.tgz", + "integrity": "sha512-wHalBlRHkaNnNwfC8z+ppX57VhvS+HWgjW508esjdaEYr3Mx7Gnn2xA4R/CKf5+Z9S5qsqC+Uzh4ueENWwCVUA==", "dependencies": { - "postcss-selector-parser": "^6.0.5" + "postcss-selector-parser": "^6.0.16" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-loader": { @@ -11220,136 +11226,111 @@ "webpack": "^5.0.0" } }, - "node_modules/postcss-loader/node_modules/cosmiconfig": { - "version": "8.3.6", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", - "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", - "dependencies": { - "import-fresh": "^3.3.0", - "js-yaml": "^4.1.0", - "parse-json": "^5.2.0", - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/d-fischer" - }, - "peerDependencies": { - "typescript": ">=4.9.5" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, "node_modules/postcss-merge-idents": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-5.1.1.tgz", - "integrity": "sha512-pCijL1TREiCoog5nQp7wUe+TUonA2tC2sQ54UGeMmryK3UFGIYKqDyjnqd6RcuI4znFn9hWSLNN8xKE/vWcUQw==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-6.0.3.tgz", + "integrity": "sha512-1oIoAsODUs6IHQZkLQGO15uGEbK3EAl5wi9SS8hs45VgsxQfMnxvt+L+zIr7ifZFIH14cfAeVe2uCTa+SPRa3g==", "dependencies": { - "cssnano-utils": "^3.1.0", + "cssnano-utils": "^4.0.2", "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-merge-longhand": { - "version": "5.1.7", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.7.tgz", - "integrity": "sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==", + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-6.0.5.tgz", + "integrity": "sha512-5LOiordeTfi64QhICp07nzzuTDjNSO8g5Ksdibt44d+uvIIAE1oZdRn8y/W5ZtYgRH/lnLDlvi9F8btZcVzu3w==", "dependencies": { "postcss-value-parser": "^4.2.0", - "stylehacks": "^5.1.1" + "stylehacks": "^6.1.1" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-merge-rules": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.4.tgz", - "integrity": "sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==", + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-6.1.1.tgz", + "integrity": "sha512-KOdWF0gju31AQPZiD+2Ar9Qjowz1LTChSjFFbS+e2sFgc4uHOp3ZvVX4sNeTlk0w2O31ecFGgrFzhO0RSWbWwQ==", "dependencies": { - "browserslist": "^4.21.4", + "browserslist": "^4.23.0", "caniuse-api": "^3.0.0", - "cssnano-utils": "^3.1.0", - "postcss-selector-parser": "^6.0.5" + "cssnano-utils": "^4.0.2", + "postcss-selector-parser": "^6.0.16" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-minify-font-values": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz", - "integrity": "sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-6.1.0.tgz", + "integrity": "sha512-gklfI/n+9rTh8nYaSJXlCo3nOKqMNkxuGpTn/Qm0gstL3ywTr9/WRKznE+oy6fvfolH6dF+QM4nCo8yPLdvGJg==", "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-minify-gradients": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz", - "integrity": "sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-6.0.3.tgz", + "integrity": "sha512-4KXAHrYlzF0Rr7uc4VrfwDJ2ajrtNEpNEuLxFgwkhFZ56/7gaE4Nr49nLsQDZyUe+ds+kEhf+YAUolJiYXF8+Q==", "dependencies": { - "colord": "^2.9.1", - "cssnano-utils": "^3.1.0", + "colord": "^2.9.3", + "cssnano-utils": "^4.0.2", "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-minify-params": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.4.tgz", - "integrity": "sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-6.1.0.tgz", + "integrity": "sha512-bmSKnDtyyE8ujHQK0RQJDIKhQ20Jq1LYiez54WiaOoBtcSuflfK3Nm596LvbtlFcpipMjgClQGyGr7GAs+H1uA==", "dependencies": { - "browserslist": "^4.21.4", - "cssnano-utils": "^3.1.0", + "browserslist": "^4.23.0", + "cssnano-utils": "^4.0.2", "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-minify-selectors": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz", - "integrity": "sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==", + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-6.0.4.tgz", + "integrity": "sha512-L8dZSwNLgK7pjTto9PzWRoMbnLq5vsZSTu8+j1P/2GB8qdtGQfn+K1uSvFgYvgh83cbyxT5m43ZZhUMTJDSClQ==", "dependencies": { - "postcss-selector-parser": "^6.0.5" + "postcss-selector-parser": "^6.0.16" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-modules-extract-imports": { @@ -11408,192 +11389,191 @@ } }, "node_modules/postcss-normalize-charset": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz", - "integrity": "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-6.0.2.tgz", + "integrity": "sha512-a8N9czmdnrjPHa3DeFlwqst5eaL5W8jYu3EBbTTkI5FHkfMhFZh1EGbku6jhHhIzTA6tquI2P42NtZ59M/H/kQ==", "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-normalize-display-values": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz", - "integrity": "sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-6.0.2.tgz", + "integrity": "sha512-8H04Mxsb82ON/aAkPeq8kcBbAtI5Q2a64X/mnRRfPXBq7XeogoQvReqxEfc0B4WPq1KimjezNC8flUtC3Qz6jg==", "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-normalize-positions": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz", - "integrity": "sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-6.0.2.tgz", + "integrity": "sha512-/JFzI441OAB9O7VnLA+RtSNZvQ0NCFZDOtp6QPFo1iIyawyXg0YI3CYM9HBy1WvwCRHnPep/BvI1+dGPKoXx/Q==", "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-normalize-repeat-style": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz", - "integrity": "sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-6.0.2.tgz", + "integrity": "sha512-YdCgsfHkJ2jEXwR4RR3Tm/iOxSfdRt7jplS6XRh9Js9PyCR/aka/FCb6TuHT2U8gQubbm/mPmF6L7FY9d79VwQ==", "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-normalize-string": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz", - "integrity": "sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-6.0.2.tgz", + "integrity": "sha512-vQZIivlxlfqqMp4L9PZsFE4YUkWniziKjQWUtsxUiVsSSPelQydwS8Wwcuw0+83ZjPWNTl02oxlIvXsmmG+CiQ==", "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-normalize-timing-functions": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz", - "integrity": "sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-6.0.2.tgz", + "integrity": "sha512-a+YrtMox4TBtId/AEwbA03VcJgtyW4dGBizPl7e88cTFULYsprgHWTbfyjSLyHeBcK/Q9JhXkt2ZXiwaVHoMzA==", "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-normalize-unicode": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.1.tgz", - "integrity": "sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-6.1.0.tgz", + "integrity": "sha512-QVC5TQHsVj33otj8/JD869Ndr5Xcc/+fwRh4HAsFsAeygQQXm+0PySrKbr/8tkDKzW+EVT3QkqZMfFrGiossDg==", "dependencies": { - "browserslist": "^4.21.4", + "browserslist": "^4.23.0", "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-normalize-url": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz", - "integrity": "sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-6.0.2.tgz", + "integrity": "sha512-kVNcWhCeKAzZ8B4pv/DnrU1wNh458zBNp8dh4y5hhxih5RZQ12QWMuQrDgPRw3LRl8mN9vOVfHl7uhvHYMoXsQ==", "dependencies": { - "normalize-url": "^6.0.1", "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-normalize-whitespace": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz", - "integrity": "sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-6.0.2.tgz", + "integrity": "sha512-sXZ2Nj1icbJOKmdjXVT9pnyHQKiSAyuNQHSgRCUgThn2388Y9cGVDR+E9J9iAYbSbLHI+UUwLVl1Wzco/zgv0Q==", "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-ordered-values": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz", - "integrity": "sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-6.0.2.tgz", + "integrity": "sha512-VRZSOB+JU32RsEAQrO94QPkClGPKJEL/Z9PCBImXMhIeK5KAYo6slP/hBYlLgrCjFxyqvn5VC81tycFEDBLG1Q==", "dependencies": { - "cssnano-utils": "^3.1.0", + "cssnano-utils": "^4.0.2", "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-reduce-idents": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-5.2.0.tgz", - "integrity": "sha512-BTrLjICoSB6gxbc58D5mdBK8OhXRDqud/zodYfdSi52qvDHdMwk+9kB9xsM8yJThH/sZU5A6QVSmMmaN001gIg==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-6.0.3.tgz", + "integrity": "sha512-G3yCqZDpsNPoQgbDUy3T0E6hqOQ5xigUtBQyrmq3tn2GxlyiL0yyl7H+T8ulQR6kOcHJ9t7/9H4/R2tv8tJbMA==", "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-reduce-initial": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.2.tgz", - "integrity": "sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-6.1.0.tgz", + "integrity": "sha512-RarLgBK/CrL1qZags04oKbVbrrVK2wcxhvta3GCxrZO4zveibqbRPmm2VI8sSgCXwoUHEliRSbOfpR0b/VIoiw==", "dependencies": { - "browserslist": "^4.21.4", + "browserslist": "^4.23.0", "caniuse-api": "^3.0.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-reduce-transforms": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz", - "integrity": "sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-6.0.2.tgz", + "integrity": "sha512-sB+Ya++3Xj1WaT9+5LOOdirAxP7dJZms3GRcYheSPi1PiTMigsxHAdkrbItHxwYHr4kt1zL7mmcHstgMYT+aiA==", "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-selector-parser": { - "version": "6.0.15", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz", - "integrity": "sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.0.tgz", + "integrity": "sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==", "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -11603,46 +11583,46 @@ } }, "node_modules/postcss-sort-media-queries": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/postcss-sort-media-queries/-/postcss-sort-media-queries-4.4.1.tgz", - "integrity": "sha512-QDESFzDDGKgpiIh4GYXsSy6sek2yAwQx1JASl5AxBtU1Lq2JfKBljIPNdil989NcSKRQX1ToiaKphImtBuhXWw==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/postcss-sort-media-queries/-/postcss-sort-media-queries-5.2.0.tgz", + "integrity": "sha512-AZ5fDMLD8SldlAYlvi8NIqo0+Z8xnXU2ia0jxmuhxAU+Lqt9K+AlmLNJ/zWEnE9x+Zx3qL3+1K20ATgNOr3fAA==", "dependencies": { - "sort-css-media-queries": "2.1.0" + "sort-css-media-queries": "2.2.0" }, "engines": { - "node": ">=10.0.0" + "node": ">=14.0.0" }, "peerDependencies": { - "postcss": "^8.4.16" + "postcss": "^8.4.23" } }, "node_modules/postcss-svgo": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.1.0.tgz", - "integrity": "sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-6.0.3.tgz", + "integrity": "sha512-dlrahRmxP22bX6iKEjOM+c8/1p+81asjKT+V5lrgOH944ryx/OHpclnIbGsKVd3uWOXFLYJwCVf0eEkJGvO96g==", "dependencies": { "postcss-value-parser": "^4.2.0", - "svgo": "^2.7.0" + "svgo": "^3.2.0" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >= 18" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-unique-selectors": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz", - "integrity": "sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==", + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-6.0.4.tgz", + "integrity": "sha512-K38OCaIrO8+PzpArzkLKB42dSARtC2tmG6PvD4b1o1Q2E9Os8jzfWFfSy/rixsHwohtsDdFtAWGjFVFUdwYaMg==", "dependencies": { - "postcss-selector-parser": "^6.0.5" + "postcss-selector-parser": "^6.0.16" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/postcss-value-parser": { @@ -11651,14 +11631,14 @@ "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" }, "node_modules/postcss-zindex": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-5.1.0.tgz", - "integrity": "sha512-fgFMf0OtVSBR1va1JNHYgMxYk73yhn/qb4uQDq1DLGYolz8gHCyr/sesEuGUaYs58E3ZJRcpoGuPVoB7Meiq9A==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-6.0.2.tgz", + "integrity": "sha512-5BxW9l1evPB/4ZIc+2GobEBoKC+h8gPGCMi+jxsYvd2x0mjq7wazk6DrP71pStqxE9Foxh5TVnonbWpFZzXaYg==", "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/pretty-error": { @@ -12063,9 +12043,9 @@ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" }, "node_modules/react-json-view-lite": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/react-json-view-lite/-/react-json-view-lite-1.2.1.tgz", - "integrity": "sha512-Itc0g86fytOmKZoIoJyGgvNqohWSbh3NXIKNgH6W6FT9PC1ck4xas1tT3Rr/b3UlFXyA9Jjaw9QSXdZy2JwGMQ==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/react-json-view-lite/-/react-json-view-lite-1.4.0.tgz", + "integrity": "sha512-wh6F6uJyYAmQ4fK0e8dSQMEWuvTs2Wr3el3sLD9bambX1+pSWUVXIz1RFaoy3TI1mZ0FqdpKq9YgbgTTgyrmXA==", "engines": { "node": ">=14" }, @@ -12075,12 +12055,11 @@ }, "node_modules/react-loadable": { "name": "@docusaurus/react-loadable", - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/@docusaurus/react-loadable/-/react-loadable-5.5.2.tgz", - "integrity": "sha512-A3dYjdBGuy0IGT+wyLIGIKLRE+sAk1iNk0f1HjNDysO7u8lhL4N3VEm+FAubmJbAztn94F7MxBTPmnixbiyFdQ==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/@docusaurus/react-loadable/-/react-loadable-6.0.0.tgz", + "integrity": "sha512-YMMxTUQV/QFSnbgrP3tjDzLHRg7vsbMn8e9HAa8o/1iXoiomo48b7sk/kkmWEuWNDPJVlKSJRB6Y2fHqdJk+SQ==", "dependencies": { - "@types/react": "*", - "prop-types": "^15.6.2" + "@types/react": "*" }, "peerDependencies": { "react": "*" @@ -12742,9 +12721,9 @@ } }, "node_modules/search-insights": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/search-insights/-/search-insights-2.13.0.tgz", - "integrity": "sha512-Orrsjf9trHHxFRuo9/rzm0KIWmgzE8RMlZMzuhZOJ01Rnz3D0YBAe+V6473t6/H6c7irs6Lt48brULAiRWb3Vw==", + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/search-insights/-/search-insights-2.14.0.tgz", + "integrity": "sha512-OLN6MsPMCghDOqlCtsIsYgtsC0pnwVTyT9Mu6A3ewOj1DxvzZF6COrn2g86E/c05xbktB0XN04m/t1Z+n+fTGw==", "peer": true }, "node_modules/section-matter": { @@ -13097,9 +13076,9 @@ "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" }, "node_modules/sitemap": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/sitemap/-/sitemap-7.1.1.tgz", - "integrity": "sha512-mK3aFtjz4VdJN0igpIJrinf3EO8U8mxOPsTBzSsy06UtjZQJ3YY3o3Xa7zSc5nMqcMrRwlChHZ18Kxg0caiPBg==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/sitemap/-/sitemap-7.1.2.tgz", + "integrity": "sha512-ARCqzHJ0p4gWt+j7NlU5eDlIO9+Rkr/JhPFZKKQ1l5GCus7rJH4UdrlVAh0xC/gDS/Qir2UMxqYNHtsKr2rpCw==", "dependencies": { "@types/node": "^17.0.5", "@types/sax": "^1.2.1", @@ -13138,6 +13117,15 @@ "node": ">=8" } }, + "node_modules/snake-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", + "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, "node_modules/sockjs": { "version": "0.3.24", "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", @@ -13149,9 +13137,9 @@ } }, "node_modules/sort-css-media-queries": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/sort-css-media-queries/-/sort-css-media-queries-2.1.0.tgz", - "integrity": "sha512-IeWvo8NkNiY2vVYdPa27MCQiR0MN0M80johAYFVxWWXQ44KU84WNxjslwBHmc/7ZL2ccwkM7/e6S5aiKZXm7jA==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/sort-css-media-queries/-/sort-css-media-queries-2.2.0.tgz", + "integrity": "sha512-0xtkGhWCC9MGt/EzgnvbbbKhqWjl1+/rncmhTh5qCpbYguXh6S/qwePfv/JQ8jePXXmqingylxoC49pCkSPIbA==", "engines": { "node": ">= 6.3.0" } @@ -13165,9 +13153,9 @@ } }, "node_modules/source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", + "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", "engines": { "node": ">=0.10.0" } @@ -13242,12 +13230,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/stable": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", - "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", - "deprecated": "Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility" - }, "node_modules/statuses": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", @@ -13383,18 +13365,18 @@ } }, "node_modules/stylehacks": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.1.tgz", - "integrity": "sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==", + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-6.1.1.tgz", + "integrity": "sha512-gSTTEQ670cJNoaeIp9KX6lZmm8LJ3jPB5yJmX8Zq/wQxOsAFXV3qjWzHas3YYk1qesuVIyYWWUpZ0vSE/dTSGg==", "dependencies": { - "browserslist": "^4.21.4", - "postcss-selector-parser": "^6.0.4" + "browserslist": "^4.23.0", + "postcss-selector-parser": "^6.0.16" }, "engines": { - "node": "^10 || ^12 || >=14.0" + "node": "^14 || ^16 || >=18.0" }, "peerDependencies": { - "postcss": "^8.2.15" + "postcss": "^8.4.31" } }, "node_modules/supports-color": { @@ -13425,23 +13407,27 @@ "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==" }, "node_modules/svgo": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", - "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.3.2.tgz", + "integrity": "sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==", "dependencies": { "@trysound/sax": "0.2.0", "commander": "^7.2.0", - "css-select": "^4.1.3", - "css-tree": "^1.1.3", - "csso": "^4.2.0", - "picocolors": "^1.0.0", - "stable": "^0.1.8" + "css-select": "^5.1.0", + "css-tree": "^2.3.1", + "css-what": "^6.1.0", + "csso": "^5.0.5", + "picocolors": "^1.0.0" }, "bin": { "svgo": "bin/svgo" }, "engines": { - "node": ">=10.13.0" + "node": ">=14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/svgo" } }, "node_modules/svgo/node_modules/commander": { @@ -13452,69 +13438,6 @@ "node": ">= 10" } }, - "node_modules/svgo/node_modules/css-select": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", - "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^6.0.1", - "domhandler": "^4.3.1", - "domutils": "^2.8.0", - "nth-check": "^2.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/svgo/node_modules/dom-serializer": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", - "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" - } - }, - "node_modules/svgo/node_modules/domhandler": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", - "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", - "dependencies": { - "domelementtype": "^2.2.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, - "node_modules/svgo/node_modules/domutils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", - "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", - "dependencies": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" - }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" - } - }, - "node_modules/svgo/node_modules/entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, "node_modules/tapable": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", @@ -14383,9 +14306,9 @@ } }, "node_modules/webpack-dev-middleware": { - "version": "5.3.4", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.4.tgz", - "integrity": "sha512-BVdTqhhs+0IfoeAf7EoH5WE+exCmqGerHfDM0IL096Px60Tq2Mn9MAbnaGUe6HiMa41KMCYF19gyzZmBcq/o4Q==", + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz", + "integrity": "sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==", "dependencies": { "colorette": "^2.0.10", "memfs": "^3.4.3", diff --git a/docs/package.json b/docs/package.json index 1cf8cfd32..a3ae7a2d3 100644 --- a/docs/package.json +++ b/docs/package.json @@ -15,9 +15,9 @@ "write-heading-ids": "docusaurus write-heading-ids" }, "dependencies": { - "@docusaurus/core": "3.1.0", - "@docusaurus/plugin-client-redirects": "3.1.0", - "@docusaurus/preset-classic": "3.1.0", + "@docusaurus/core": "^3.4.0", + "@docusaurus/plugin-client-redirects": "^3.4.0", + "@docusaurus/preset-classic": "^3.4.0", "@mdx-js/react": "^3.0.0", "clsx": "^2.1.0", "docusaurus-json-schema-plugin": "^1.11.0", @@ -26,7 +26,7 @@ "react-dom": "^18.2.0" }, "devDependencies": { - "@docusaurus/module-type-aliases": "3.1.0" + "@docusaurus/module-type-aliases": "^3.2.1" }, "browserslist": { "production": [ diff --git a/docs/sidebars.js b/docs/sidebars.js index 3456f0add..08ebe4d20 100644 --- a/docs/sidebars.js +++ b/docs/sidebars.js @@ -19,14 +19,14 @@ const sidebars = { "how-to-use-continue", { type: "category", - label: "🌉 Model setup", + label: "🌉 Setup", collapsible: true, collapsed: true, items: [ - "model-setup/overview", - "model-setup/select-provider", - "model-setup/select-model", - "model-setup/configuration", + "setup/overview", + "setup/configuration", + "setup/select-provider", + "setup/select-model", ], }, { @@ -46,11 +46,11 @@ const sidebars = { collapsible: true, collapsed: true, items: [ - // "walkthroughs/codellama", - "walkthroughs/running-continue-without-internet", + "walkthroughs/set-up-codestral", "walkthroughs/codebase-embeddings", "walkthroughs/tab-autocomplete", - // "walkthroughs/config-file-migration", + "walkthroughs/prompt-files", + "walkthroughs/quick-actions", ], }, "development-data", @@ -68,6 +68,7 @@ const sidebars = { }, ], }, + "changelog", ], }; diff --git a/docs/src/css/custom.css b/docs/src/css/custom.css index 3a7178dd4..da6a4abd6 100644 --- a/docs/src/css/custom.css +++ b/docs/src/css/custom.css @@ -6,13 +6,13 @@ /* You can override the default Infima variables here. */ :root { - --ifm-color-primary: #be1b55ff; - --ifm-color-primary-dark: #be1b55ff; - --ifm-color-primary-darker: #be1b55ff; - --ifm-color-primary-darkest: #be1b55ff; - --ifm-color-primary-light: #be1b55ff; - --ifm-color-primary-lighter: #be1b55ff; - --ifm-color-primary-lightest: #be1b55ff; + --ifm-color-primary: rgb(67, 31, 242); + --ifm-color-primary-dark: rgb(67, 31, 242); + --ifm-color-primary-darker: rgb(67, 31, 242); + --ifm-color-primary-darkest: rgb(67, 31, 242); + --ifm-color-primary-light: rgb(67, 31, 242); + --ifm-color-primary-lighter: rgb(67, 31, 242); + --ifm-color-primary-lightest: rgb(67, 31, 242); --ifm-code-font-size: 95%; --docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.1); } diff --git a/docs/static/img/autocomplete.gif b/docs/static/img/autocomplete.gif new file mode 100644 index 000000000..7340b3cb9 Binary files /dev/null and b/docs/static/img/autocomplete.gif differ diff --git a/docs/static/img/classes.gif b/docs/static/img/classes.gif new file mode 100644 index 000000000..36203f185 Binary files /dev/null and b/docs/static/img/classes.gif differ diff --git a/docs/static/img/codebase.gif b/docs/static/img/codebase.gif new file mode 100644 index 000000000..b07f34796 Binary files /dev/null and b/docs/static/img/codebase.gif differ diff --git a/docs/static/img/continue-social-card.png b/docs/static/img/continue-social-card.png index 52c1a38ef..e10853577 100644 Binary files a/docs/static/img/continue-social-card.png and b/docs/static/img/continue-social-card.png differ diff --git a/docs/static/img/docs.gif b/docs/static/img/docs.gif new file mode 100644 index 000000000..5f9fb4ab6 Binary files /dev/null and b/docs/static/img/docs.gif differ diff --git a/docs/static/img/error.gif b/docs/static/img/error.gif new file mode 100644 index 000000000..41d12aa73 Binary files /dev/null and b/docs/static/img/error.gif differ diff --git a/docs/static/img/favicon.ico b/docs/static/img/favicon.ico index b06ec544d..9a6b0cbea 100644 Binary files a/docs/static/img/favicon.ico and b/docs/static/img/favicon.ico differ diff --git a/docs/static/img/inline.gif b/docs/static/img/inline.gif new file mode 100644 index 000000000..286cf2e5c Binary files /dev/null and b/docs/static/img/inline.gif differ diff --git a/docs/static/img/intro.png b/docs/static/img/intro.png new file mode 100644 index 000000000..64f65b845 Binary files /dev/null and b/docs/static/img/intro.png differ diff --git a/docs/static/img/logo.png b/docs/static/img/logo.png index 183887a09..232e6f327 100644 Binary files a/docs/static/img/logo.png and b/docs/static/img/logo.png differ diff --git a/docs/static/img/mistral-x-continue.png b/docs/static/img/mistral-x-continue.png new file mode 100644 index 000000000..03880cfff Binary files /dev/null and b/docs/static/img/mistral-x-continue.png differ diff --git a/docs/static/img/prerelease.png b/docs/static/img/prerelease.png new file mode 100644 index 000000000..2315774dc Binary files /dev/null and b/docs/static/img/prerelease.png differ diff --git a/docs/static/img/quick-actions-demo.gif b/docs/static/img/quick-actions-demo.gif new file mode 100644 index 000000000..8487ac022 Binary files /dev/null and b/docs/static/img/quick-actions-demo.gif differ diff --git a/docs/static/img/slash.gif b/docs/static/img/slash.gif new file mode 100644 index 000000000..3a90748f1 Binary files /dev/null and b/docs/static/img/slash.gif differ diff --git a/docs/static/img/understand.gif b/docs/static/img/understand.gif new file mode 100644 index 000000000..2979f6c28 Binary files /dev/null and b/docs/static/img/understand.gif differ diff --git a/docs/static/schemas/config.json b/docs/static/schemas/config.json index d94309807..cbbb173c3 100644 --- a/docs/static/schemas/config.json +++ b/docs/static/schemas/config.json @@ -1,1851 +1,2492 @@ { - "title": "config.json", - "$ref": "#/definitions/SerializedContinueConfig", - "definitions": { - "BaseCompletionOptions": { - "title": "BaseCompletionOptions", - "type": "object", - "properties": { - "stream": { - "title": "Stream", - "description": "Whether to stream the LLM response. Currently only respected by the 'anthropic' provider. Otherwise will always stream.", - "type": "boolean", - "default": true - }, - "temperature": { - "title": "Temperature", - "description": "The temperature of the completion.", - "type": "number" - }, - "topP": { - "title": "Top P", - "description": "The topP of the completion.", - "type": "number" - }, - "topK": { - "title": "Top K", - "description": "The topK of the completion.", - "type": "integer" - }, - "presencePenalty": { - "title": "Presence Penalty", - "description": "The presence penalty Aof the completion.", - "type": "number" - }, - "frequencePenalty": { - "title": "Frequency Penalty", - "description": "The frequency penalty of the completion.", - "type": "number" - }, - "mirostat": { - "title": "Mirostat", - "description": "Enable Mirostat sampling, controlling perplexity during text generation (default: 0, 0 = disabled, 1 = Mirostat, 2 = Mirostat 2.0). Only available for Ollama, LM Studio, and llama.cpp providers", - "type": "number" - }, - "stop": { - "title": "Stop", - "description": "The stop tokens of the completion.", - "type": "array", - "items": { - "type": "string" - } - }, - "maxTokens": { - "title": "Max Tokens", - "description": "The maximum number of tokens to generate.", - "default": 600, - "type": "integer" - }, - "numThreads": { - "title": "Number of threads", - "description": "The number of threads used in the generation process. Only available for Ollama (this is the num_thread parameter)", - "type": "integer" - }, - "keepAlive": { - "title": "Ollama keep_alive", - "description": "The number of seconds after no requests are made to unload the model from memory. Defaults to 60*30 = 30min", - "type": "integer" - } - } - }, - "RequestOptions": { - "title": "RequestOptions", - "type": "object", - "properties": { - "timeout": { - "title": "Timeout", - "description": "Set the timeout for each request to the LLM. If you are running a local LLM that takes a while to respond, you might want to set this to avoid timeouts.", - "default": 7200, - "type": "integer" - }, - "verifySsl": { - "title": "Verify Ssl", - "description": "Whether to verify SSL certificates for requests.", - "type": "boolean" - }, - "caBundlePath": { - "title": "Ca Bundle Path", - "description": "Path to a custom CA bundle to use when making the HTTP request", - "anyOf": [ - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "string" - } - } - ] - }, - "proxy": { - "title": "Proxy", - "description": "Proxy URL to use when making the HTTP request", - "type": "string" - }, - "headers": { - "title": "Headers", - "description": "Headers to use when making the HTTP request", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "extraBodyProperties": { - "title": "Extra Body Properties", - "description": "This object will be merged with the body when making the HTTP requests", - "type": "object" - } - } - }, - "ModelDescription": { - "title": "ModelDescription", - "type": "object", - "properties": { - "title": { - "title": "Title", - "description": "The title you wish to give your model.", - "type": "string" - }, - "provider": { - "title": "Provider", - "description": "The provider of the model. This is used to determine the type of model, and how to interact with it.", - "enum": [ - "openai", - "free-trial", - "anthropic", - "bedrock", - "together", - "ollama", - "huggingface-tgi", - "huggingface-inference-api", - "llama.cpp", - "replicate", - "google-palm", - "lmstudio", - "llamafile", - "mistral", - "deepinfra", - "flowise", - "groq" - ], - "markdownEnumDescriptions": [ - "### OpenAI\nUse gpt-4, gpt-3.5-turbo, or any other OpenAI model. See [here](https://openai.com/product#made-for-developers) to obtain an API key.\n\n> [Reference](https://continue.dev/docs/reference/Model%20Providers/openai)", - "### Free Trial\nNew users can try out Continue for free using a proxy server that securely makes calls to OpenAI using our API key. If you are ready to use your own API key or have used all 250 free uses, you can enter your API key in config.py where it says `apiKey=\"\"` or select another model provider.\n> [Reference](https://continue.dev/docs/reference/Model%20Providers/freetrial)", - "### Anthropic\nTo get started with Anthropic models, you first need to sign up for the open beta [here](https://claude.ai/login) to obtain an API key.\n> [Reference](https://continue.dev/docs/reference/Model%20Providers/anthropicllm)", - "### Bedrock\nTo get started with Bedrock you need to sign up on AWS [here](https://aws.amazon.com/bedrock/claude/)", - "### Together\nTogether is a hosted service that provides extremely fast streaming of open-source language models. To get started with Together:\n1. Obtain an API key from [here](https://together.ai)\n2. Paste below\n3. Select a model preset\n> [Reference](https://continue.dev/docs/reference/Model%20Providers/togetherllm)", - "### Ollama\nTo get started with Ollama, follow these steps:\n1. Download from [ollama.ai](https://ollama.ai/) and open the application\n2. Open a terminal and run `ollama run `. Example model names are `codellama:7b-instruct` or `llama2:7b-text`. You can find the full list [here](https://ollama.ai/library).\n3. Make sure that the model name used in step 2 is the same as the one in config.py (e.g. `model=\"codellama:7b-instruct\"`)\n4. Once the model has finished downloading, you can start asking questions through Continue.\n> [Reference](https://continue.dev/docs/reference/Model%20Providers/ollama)", - "### Huggingface TGI\n\n> [Reference](https://continue.dev/docs/reference/Model%20Providers/huggingfacetgi)", - "### Huggingface Inference API\n\n> [Reference](https://continue.dev/docs/reference/Model%20Providers/huggingfaceinferenceapi)", - "### Llama.cpp\nllama.cpp comes with a [built-in server](https://github.com/ggerganov/llama.cpp/tree/master/examples/server#llamacppexampleserver) that can be run from source. To do this:\n\n1. Clone the repository with `git clone https://github.com/ggerganov/llama.cpp`.\n2. `cd llama.cpp`\n3. Run `make` to build the server.\n4. Download the model you'd like to use and place it in the `llama.cpp/models` directory (the best place to find models is [The Bloke on HuggingFace](https://huggingface.co/TheBloke))\n5. Run the llama.cpp server with the command below (replacing with the model you downloaded):\n\n```shell\n.\\server.exe -c 4096 --host 0.0.0.0 -t 16 --mlock -m models/codellama-7b-instruct.Q8_0.gguf\n```\n\nAfter it's up and running, you can start using Continue.\n> [Reference](https://continue.dev/docs/reference/Model%20Providers/llamacpp)", - "### Replicate\nReplicate is a hosted service that makes it easy to run ML models. To get started with Replicate:\n1. Obtain an API key from [here](https://replicate.com)\n2. Paste below\n3. Select a model preset\n> [Reference](https://continue.dev/docs/reference/Model%20Providers/replicatellm)", - "### Google PALM\nTo get started with Google Makersuite, obtain your API key from [here](https://makersuite.google.com) and paste it below.\n> [Reference](https://continue.dev/docs/reference/Model%20Providers/googlepalmapi)", - "### LMStudio\nLMStudio provides a professional and well-designed GUI for exploring, configuring, and serving LLMs. It is available on both Mac and Windows. To get started:\n1. Download from [lmstudio.ai](https://lmstudio.ai/) and open the application\n2. Search for and download the desired model from the home screen of LMStudio.\n3. In the left-bar, click the '<->' icon to open the Local Inference Server and press 'Start Server'.\n4. Once your model is loaded and the server has started, you can begin using Continue.\n> [Reference](https://continue.dev/docs/reference/Model%20Providers/lmstudio)", - "### Llamafile\nTo get started with llamafiles, find and download a binary on their [GitHub repo](https://github.com/Mozilla-Ocho/llamafile#binary-instructions). Then run it with the following command:\n\n```shell\nchmod +x ./llamafile\n./llamafile\n```\n> [Reference](https://continue.dev/docs/reference/Model%20Providers/llamafile)", - "### Mistral API\n\nTo get access to the Mistral API, obtain your API key from the [Mistral platform](https://docs.mistral.ai/)", - "### DeepInfra\n\n> [Reference](https://continue.dev/docs/reference/Model%20Providers/deepinfra)" - ], - "type": "string" - }, - "model": { - "title": "Model", - "description": "The name of the model. Used to autodetect prompt template.", - "type": "string" - }, - "apiKey": { - "title": "Api Key", - "description": "OpenAI, Anthropic, Together, or other API key", - "type": "string" - }, - "apiBase": { - "title": "Api Base", - "description": "The base URL of the LLM API.", - "type": "string" - }, - "contextLength": { - "title": "Context Length", - "description": "The maximum context length of the LLM in tokens, as counted by countTokens.", - "default": 2048, - "type": "integer" - }, - "template": { - "title": "Template", - "description": "The chat template used to format messages. This is auto-detected for most models, but can be overridden here. Choose none if you are using vLLM or another server that automatically handles prompting.", - "enum": [ - "llama2", - "alpaca", - "zephyr", - "phi2", - "phind", - "anthropic", - "chatml", - "none", - "deepseek", - "openchat", - "xwin-coder", - "neural-chat", - "codellama-70b", - "llava", - "gemma" - ], - "type": "string" - }, - "promptTemplates": { - "title": "Prompt Templates", - "markdownDescription": "A mapping of prompt template name ('edit' is currently the only one used in Continue) to a string giving the prompt template. See [here](https://continue.dev/docs/model-setup/configuration#customizing-the-edit-prompt) for an example.", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "completionOptions": { - "title": "Completion Options", - "description": "Options for the completion endpoint. Read more about the completion options in the documentation.", - "default": { - "temperature": null, - "topP": null, - "topK": null, - "presencePenalty": null, - "frequencyPenalty": null, - "stop": null, - "maxTokens": 600 - }, - "allOf": [ - { - "$ref": "#/definitions/BaseCompletionOptions" - } - ] - }, - "systemMessage": { - "title": "System Message", - "description": "A system message that will always be followed by the LLM", - "type": "string" - }, - "requestOptions": { - "title": "Request Options", - "description": "Options for the HTTP request to the LLM.", - "default": { - "timeout": 7200, - "verifySsl": null, - "caBundlePath": null, - "proxy": null, - "headers": null, - "extraBodyProperties": null - }, - "allOf": [ - { - "$ref": "#/definitions/RequestOptions" - } - ] - }, - "apiType": { - "title": "Api Type", - "markdownDescription": "OpenAI API type, either `openai` or `azure`", - "enum": ["openai", "azure"] - }, - "apiVersion": { - "title": "Api Version", - "description": "Azure OpenAI API version (e.g. 2023-07-01-preview)", - "type": "string" - }, - "engine": { - "title": "Engine", - "description": "Azure OpenAI engine", - "type": "string" - } - }, - "required": ["title", "provider", "model"], - "allOf": [ - { - "if": { - "properties": { - "provider": { - "type": "str" - } - }, - "not": { - "required": ["provider"] - } - }, - "then": { - "properties": { - "model": { - "description": "Choose a provider first, then model options will be shown here." - } - } - } - }, - { - "if": { - "properties": { - "provider": { - "enum": [ - "openai", - "anthropic", - "google-palm", - "huggingface-inference-api", - "replicate", - "together" - ] - } - }, - "required": ["provider"] - }, - "then": { - "required": ["apiKey"] - } - }, - { - "if": { - "properties": { - "provider": { - "enum": ["huggingface-tgi", "huggingface-inference-api"] - } - } - }, - "then": { - "required": ["apiBase"] - }, - "required": ["provider"] - }, - { - "if": { - "properties": { - "provider": { - "enum": ["openai"] - } - }, - "required": ["provider"] - }, - "then": { + "title": "config.json", + "$ref": "#/definitions/SerializedContinueConfig", + "definitions": { + "BaseCompletionOptions": { + "title": "BaseCompletionOptions", + "type": "object", "properties": { - "engine": { - "type": "string" - }, - "apiType": { - "type": "string" - }, - "apiVersion": { - "type": "string" - } + "stream": { + "title": "Stream", + "description": "Whether to stream the LLM response. Currently only respected by the 'anthropic' provider. Otherwise will always stream.", + "type": "boolean", + "default": true + }, + "temperature": { + "title": "Temperature", + "description": "The temperature of the completion.", + "type": "number" + }, + "topP": { + "title": "Top P", + "description": "The topP of the completion.", + "type": "number" + }, + "topK": { + "title": "Top K", + "description": "The topK of the completion.", + "type": "integer" + }, + "presencePenalty": { + "title": "Presence Penalty", + "description": "The presence penalty Aof the completion.", + "type": "number" + }, + "frequencePenalty": { + "title": "Frequency Penalty", + "description": "The frequency penalty of the completion.", + "type": "number" + }, + "mirostat": { + "title": "Mirostat", + "description": "Enable Mirostat sampling, controlling perplexity during text generation (default: 0, 0 = disabled, 1 = Mirostat, 2 = Mirostat 2.0). Only available for Ollama, LM Studio, and llama.cpp providers", + "type": "number" + }, + "stop": { + "title": "Stop", + "description": "The stop tokens of the completion.", + "type": "array", + "items": { + "type": "string" + } + }, + "maxTokens": { + "title": "Max Tokens", + "description": "The maximum number of tokens to generate.", + "default": 600, + "type": "integer" + }, + "numThreads": { + "title": "Number of threads", + "description": "The number of threads used in the generation process. Only available for Ollama (this is the num_thread parameter)", + "type": "integer" + }, + "keepAlive": { + "title": "Ollama keep_alive", + "description": "The number of seconds after no requests are made to unload the model from memory. Defaults to 60*30 = 30min", + "type": "integer" + } } - } }, - { - "if": { - "properties": { - "provider": { - "enum": ["openai"] - } - }, - "required": ["provider"] - }, - "then": { + "ClientCertificateOptions": { + "title": "ClientCertificateOptions", + "type": "object", "properties": { - "model": { - "anyOf": [ - { - "enum": [ - "gpt-3.5-turbo", - "gpt-3.5-turbo-16k", - "gpt-4", - "gpt-3.5-turbo-0613", - "gpt-4-32k", - "gpt-4-0125-preview", - "gpt-4-turbo-preview", - "AUTODETECT" - ] - }, - { + "cert": { + "title": "Cert Path", + "description": "Path to the client certificate file", "type": "string" - } - ] - } - } - } - }, - { - "if": { - "properties": { - "provider": { - "enum": ["replicate"] - } - }, - "required": ["provider"] - }, - "then": { - "properties": { - "model": { - "anyOf": [ - { - "enum": [ - "codellama-7b", - "codellama-13b", - "codellama-34b", - "llama2-7b", - "llama2-13b" - ] - }, - { + }, + "key": { + "title": "Key Path", + "description": "Path to the client certificate key file", + "type": "string" + }, + "passphrase": { + "title": "Passphrase", + "description": "Passphrase for the client certificate key file", "type": "string" - } - ] - }, - "markdownDescription": "Select a pre-defined option, or find an exact model ID from Replicate [here](https://replicate.com/collections/streaming-language-models)." - } - } - }, - { - "if": { - "properties": { - "provider": { - "enum": ["free-trial"] - } - }, - "required": ["provider"] - }, - "then": { - "properties": { - "model": { - "enum": [ - "gpt-3.5-turbo", - "gpt-4", - "phind-codellama-34b", - "gemini-pro", - "gpt-4-vision-preview", - "codellama-70b", - "mistral-8x7b", - "claude-3-opus-20240229", - "claude-3-sonnet-20240229", - "claude-3-haiku-20240307", - "starcoder-7b", - "AUTODETECT" - ] - } - } - } - }, - { - "if": { - "properties": { - "provider": { - "enum": ["openai"] - }, - "apiType": { - "not": { - "const": "azure" } - } }, - "required": ["provider"] - }, - "then": { + "required": [ + "cert", + "key" + ] + }, + "RequestOptions": { + "title": "RequestOptions", + "type": "object", "properties": { - "model": { - "anyOf": [ - { - "enum": [ - "gpt-3.5-turbo", - "gpt-3.5-turbo-16k", - "gpt-4", - "gpt-3.5-turbo-0613", - "gpt-4-32k", - "gpt-4-turbo-preview", - "gpt-4-vision-preview", - "mistral-7b", - "mistral-8x7b", - "llama2-7b", - "llama2-13b", - "codellama-7b", - "codellama-13b", - "codellama-34b", - "codellama-70b", - "phind-codellama-34b", - "wizardcoder-7b", - "wizardcoder-13b", - "wizardcoder-34b", - "zephyr-7b", - "codeup-13b", - "deepseek-7b", - "deepseek-33b", - "neural-chat-7b", - "deepseek-1b", - "stable-code-3b", - "starcoder-1b", - "starcoder-3b", - "starcoder2-3b", - "mistral-tiny", - "mistral-small", - "mistral-medium", - "AUTODETECT" + "timeout": { + "title": "Timeout", + "description": "Set the timeout for each request to the LLM. If you are running a local LLM that takes a while to respond, you might want to set this to avoid timeouts.", + "default": 7200, + "type": "integer" + }, + "verifySsl": { + "title": "Verify Ssl", + "description": "Whether to verify SSL certificates for requests.", + "type": "boolean" + }, + "caBundlePath": { + "title": "Ca Bundle Path", + "description": "Path to a custom CA bundle to use when making the HTTP request", + "anyOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } ] - }, - { + }, + "proxy": { + "title": "Proxy", + "description": "Proxy URL to use when making the HTTP request", "type": "string" - } - ] - } + }, + "headers": { + "title": "Headers", + "description": "Headers to use when making the HTTP request", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "extraBodyProperties": { + "title": "Extra Body Properties", + "description": "This object will be merged with the body when making the HTTP requests", + "type": "object" + }, + "noProxy": { + "title": "No Proxy", + "description": "A list of hostnames for which Continue should not use the proxy specified in requestOptions.proxy", + "type": "array", + "items": { + "type": "string" + } + }, + "clientCertificate": { + "title": "Client Certificate", + "description": "Client certificate to use when making the HTTP request", + "$ref": "#/definitions/ClientCertificateOptions" + } } - } }, - { - "if": { - "properties": { - "provider": { - "enum": ["anthropic"] - } - }, - "required": ["provider"] - }, - "then": { + "ModelDescription": { + "title": "ModelDescription", + "type": "object", "properties": { - "model": { - "anyOf": [ - { - "enum": [ - "claude-2", - "claude-instant-1", - "claude-3-opus-20240229", - "claude-3-sonnet-20240229", - "claude-3-haiku-20240307", - "claude-2.1" - ] - }, - { + "title": { + "title": "Title", + "description": "The title you wish to give your model.", "type": "string" - } - ] - } - } - } - }, - { - "if": { - "properties": { - "provider": { - "enum": ["bedrock"] - } - }, - "required": ["provider"] - }, - "then": { - "properties": { - "model": { - "anyOf": [ - { + }, + "provider": { + "title": "Provider", + "description": "The provider of the model. This is used to determine the type of model, and how to interact with it.", "enum": [ - "claude-3-sonnet-20240229", - "claude-3-haiku-20240307", - "claude-2" - ] - }, - { + "openai", + "free-trial", + "anthropic", + "cohere", + "bedrock", + "together", + "ollama", + "huggingface-tgi", + "huggingface-inference-api", + "llama.cpp", + "replicate", + "gemini", + "lmstudio", + "llamafile", + "mistral", + "deepinfra", + "groq", + "fireworks", + "cloudflare", + "deepseek", + "azure", + "msty" + ], + "markdownEnumDescriptions": [ + "### OpenAI\nUse gpt-4, gpt-3.5-turbo, or any other OpenAI model. See [here](https://openai.com/product#made-for-developers) to obtain an API key.\n\n> [Reference](https://docs.continue.dev/reference/Model%20Providers/openai)", + "### Free Trial\nNew users can try out Continue for free using a proxy server that securely makes calls to OpenAI using our API key. If you are ready to use your own API key or have used all 250 free uses, you can enter your API key in config.json where it says `apiKey=\"\"` or select another model provider.\n> [Reference](https://docs.continue.dev/reference/Model%20Providers/freetrial)", + "### Anthropic\nTo get started with Anthropic models, you first need to sign up for the open beta [here](https://claude.ai/login) to obtain an API key.\n> [Reference](https://docs.continue.dev/reference/Model%20Providers/anthropicllm)", + "### Cohere\nTo use Cohere, visit the [Cohere dashboard](https://dashboard.cohere.com/api-keys) to create an API key.\n\n> [Reference](https://docs.continue.dev/reference/Model%20Providers/cohere)", + "### Bedrock\nTo get started with Bedrock you need to sign up on AWS [here](https://aws.amazon.com/bedrock/claude/)", + "### Together\nTogether is a hosted service that provides extremely fast streaming of open-source language models. To get started with Together:\n1. Obtain an API key from [here](https://together.ai)\n2. Paste below\n3. Select a model preset\n> [Reference](https://docs.continue.dev/reference/Model%20Providers/togetherllm)", + "### Ollama\nTo get started with Ollama, follow these steps:\n1. Download from [ollama.ai](https://ollama.ai/) and open the application\n2. Open a terminal and run `ollama run `. Example model names are `codellama:7b-instruct` or `llama2:7b-text`. You can find the full list [here](https://ollama.ai/library).\n3. Make sure that the model name used in step 2 is the same as the one in config.json (e.g. `model=\"codellama:7b-instruct\"`)\n4. Once the model has finished downloading, you can start asking questions through Continue.\n> [Reference](https://docs.continue.dev/reference/Model%20Providers/ollama)", + "### Huggingface TGI\n\n> [Reference](https://docs.continue.dev/reference/Model%20Providers/huggingfacetgi)", + "### Huggingface Inference API\n\n> [Reference](https://docs.continue.dev/reference/Model%20Providers/huggingfaceinferenceapi)", + "### Llama.cpp\nllama.cpp comes with a [built-in server](https://github.com/ggerganov/llama.cpp/tree/master/examples/server#llamacppexampleserver) that can be run from source. To do this:\n\n1. Clone the repository with `git clone https://github.com/ggerganov/llama.cpp`.\n2. `cd llama.cpp`\n3. Run `make` to build the server.\n4. Download the model you'd like to use and place it in the `llama.cpp/models` directory (the best place to find models is [The Bloke on HuggingFace](https://huggingface.co/TheBloke))\n5. Run the llama.cpp server with the command below (replacing with the model you downloaded):\n\n```shell\n.\\server.exe -c 4096 --host 0.0.0.0 -t 16 --mlock -m models/codellama-7b-instruct.Q8_0.gguf\n```\n\nAfter it's up and running, you can start using Continue.\n> [Reference](https://docs.continue.dev/reference/Model%20Providers/llamacpp)", + "### Replicate\nReplicate is a hosted service that makes it easy to run ML models. To get started with Replicate:\n1. Obtain an API key from [here](https://replicate.com)\n2. Paste below\n3. Select a model preset\n> [Reference](https://docs.continue.dev/reference/Model%20Providers/replicatellm)", + "### Gemini API\nTo get started with Google Makersuite, obtain your API key from [here](https://makersuite.google.com) and paste it below.\n> [Reference](https://docs.continue.dev/reference/Model%20Providers/geminiapi)", + "### LMStudio\nLMStudio provides a professional and well-designed GUI for exploring, configuring, and serving LLMs. It is available on both Mac and Windows. To get started:\n1. Download from [lmstudio.ai](https://lmstudio.ai/) and open the application\n2. Search for and download the desired model from the home screen of LMStudio.\n3. In the left-bar, click the '<->' icon to open the Local Inference Server and press 'Start Server'.\n4. Once your model is loaded and the server has started, you can begin using Continue.\n> [Reference](https://docs.continue.dev/reference/Model%20Providers/lmstudio)", + "### Llamafile\nTo get started with llamafiles, find and download a binary on their [GitHub repo](https://github.com/Mozilla-Ocho/llamafile#binary-instructions). Then run it with the following command:\n\n```shell\nchmod +x ./llamafile\n./llamafile\n```\n> [Reference](https://docs.continue.dev/reference/Model%20Providers/llamafile)", + "### Mistral API\n\nTo get access to the Mistral API, obtain your API key from the [Mistral platform](https://docs.mistral.ai/)", + "### DeepInfra\n\n> [Reference](https://docs.continue.dev/reference/Model%20Providers/deepinfra)", + "### Groq\nGroq provides extremely fast inference of open-source language models. To get started, obtain an API key from [their console](https://console.groq.com/keys).", + "### Fireworks\nFireworks is a fast inference engine for open-source language models. To get started, obtain an API key from [their console](https://fireworks.ai/api-keys).", + "### Cloudflare Workers AI\n\n[Reference](https://developers.cloudflare.com/workers-ai/)", + "### Deepseek\n Deepseek's API provides the best pricing for their state-of-the-art Deepseek Coder models. To get started, obtain an API key from [their console](https://platform.deepseek.com/api_keys)", + "### Azure OpenAI\n Azure OpenAI lets you securely run OpenAI's models on Azure. To get started, follow the steps [here](https://docs.continue.dev/reference/Model%20Providers/azure)", + "### Msty\nMsty is the simplest way to get started with online or local LLMs on all desktop platforms - Windows, Mac, and Linux. No fussing around, one-click and you are up and running. To get started, follow these steps:\n1. Download from [Msty.app](https://msty.app/), open the application, and click 'Setup Local AI'.\n2. Go to the Local AI Module page and download a model of your choice.\n3. Once the model has finished downloading, you can start asking questions through Continue.\n> [Reference](https://continue.dev/docs/reference/Model%20Providers/Msty)" + ], "type": "string" - } - ] - } - } - } - }, - { - "if": { - "properties": { - "provider": { - "enum": ["google-palm"] - } - }, - "required": ["provider"] - }, - "then": { - "properties": { - "model": { - "enum": [ - "chat-bison-001", - "gemini-pro", - "gemini-1.5-pro-latest" - ] - } - } - } - }, - { - "if": { - "properties": { - "provider": { - "enum": ["together"] - } - }, - "required": ["provider"] - }, - "then": { - "properties": { - "model": { - "anyOf": [ - { - "enum": [ - "mistral-7b", - "mistral-8x7b", - "llama2-7b", - "llama2-13b", - "codellama-7b", - "codellama-13b", - "codellama-34b", - "codellama-70b", - "phind-codellama-34b" - ] - }, - { + }, + "model": { + "title": "Model", + "description": "The name of the model. Used to autodetect prompt template.", "type": "string" - } - ], - "markdownDescription": "Select a pre-defined option, or find an exact model string from Together AI [here](https://docs.together.ai/docs/inference-models)." - } - } - } - }, - { - "if": { - "properties": { - "provider": { - "enum": ["deepinfra"] - } - }, - "required": ["provider"] - }, - "then": { - "properties": { - "model": { - "markdownDescription": "Find the model name you want to use from DeepInfra [here](https://deepinfra.com/models?type=text-generation)." - } - } - } - }, - { - "if": { - "properties": { - "provider": { - "enum": [ - "huggingface-tgi", - "huggingface-inference-api", - "llama.cpp", - "text-gen-webui", - "llamafile" - ] - } - }, - "required": ["provider"] - }, - "then": { - "properties": { - "model": { - "anyOf": [ - { + }, + "apiKey": { + "title": "Api Key", + "description": "OpenAI, Anthropic, Cohere, Together, or other API key", + "type": "string" + }, + "apiBase": { + "title": "Api Base", + "description": "The base URL of the LLM API.", + "type": "string" + }, + "contextLength": { + "title": "Context Length", + "description": "The maximum context length of the LLM in tokens, as counted by countTokens.", + "default": 2048, + "type": "integer" + }, + "template": { + "title": "Template", + "description": "The chat template used to format messages. This is auto-detected for most models, but can be overridden here. Choose none if you are using vLLM or another server that automatically handles prompting.", "enum": [ - "mistral-7b", - "mistral-8x7b", - "llama2-7b", - "llama2-13b", - "codellama-7b", - "codellama-13b", - "codellama-34b", - "codellama-70b", - "phind-codellama-34b", - "wizardcoder-7b", - "wizardcoder-13b", - "wizardcoder-34b", - "zephyr-7b", - "codeup-13b", - "deepseek-7b", - "deepseek-33b", - "neural-chat-7b", - "deepseek-1b", - "stable-code-3b", - "starcoder-1b", - "starcoder-3b", - "starcoder2-3b" + "llama2", + "alpaca", + "zephyr", + "phi2", + "phind", + "anthropic", + "chatml", + "none", + "deepseek", + "openchat", + "xwin-coder", + "neural-chat", + "codellama-70b", + "llava", + "gemma", + "llama3" + ], + "type": "string" + }, + "promptTemplates": { + "title": "Prompt Templates", + "markdownDescription": "A mapping of prompt template name ('edit' is currently the only one used in Continue) to a string giving the prompt template. See [here](https://docs.continue.dev/model-setup/configuration#customizing-the-edit-prompt) for an example.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "completionOptions": { + "title": "Completion Options", + "description": "Options for the completion endpoint. Read more about the completion options in the documentation.", + "default": { + "temperature": null, + "topP": null, + "topK": null, + "presencePenalty": null, + "frequencyPenalty": null, + "stop": null, + "maxTokens": 600 + }, + "allOf": [ + { + "$ref": "#/definitions/BaseCompletionOptions" + } ] - }, - { + }, + "systemMessage": { + "title": "System Message", + "description": "A system message that will always be followed by the LLM", "type": "string" - } - ] - } - } - } - }, - { - "if": { - "properties": { - "provider": { - "enum": ["ollama"] - } - }, - "required": ["provider"] - }, - "then": { - "properties": { - "model": { - "anyOf": [ - { + }, + "requestOptions": { + "title": "Request Options", + "description": "Options for the HTTP request to the LLM.", + "default": { + "timeout": 7200, + "verifySsl": null, + "caBundlePath": null, + "proxy": null, + "headers": null, + "extraBodyProperties": null + }, + "allOf": [ + { + "$ref": "#/definitions/RequestOptions" + } + ] + }, + "apiType": { + "title": "Api Type", + "markdownDescription": "OpenAI API type, either `openai` or `azure`", "enum": [ - "mistral-7b", - "llama2-7b", - "llama2-13b", - "codellama-7b", - "codellama-13b", - "codellama-34b", - "codellama-70b", - "phi-2", - "phind-codellama-34b", - "wizardcoder-7b", - "wizardcoder-13b", - "wizardcoder-34b", - "zephyr-7b", - "codeup-13b", - "deepseek-7b", - "deepseek-33b", - "neural-chat-7b", - "deepseek-1b", - "stable-code-3b", - "starcoder-1b", - "starcoder-3b", - "starcoder2-3b", - "AUTODETECT" + "openai", + "azure" ] - }, - { + }, + "apiVersion": { + "title": "Api Version", + "description": "Azure OpenAI API version (e.g. 2023-07-01-preview)", "type": "string" - } - ], - "markdownDescription": "Select a pre-defined option, or find the exact model tag for an Ollama model [here](https://ollama.ai/library)." - } - } - } - }, - { - "if": { - "properties": { - "provider": { - "enum": ["mistral"] - } - }, - "required": ["provider"] - }, - "then": { - "properties": { - "model": { - "enum": ["mistral-tiny", "mistral-small", "mistral-medium"] - } - } - } - }, - { - "if": { - "properties": { - "provider": { - "enum": ["groq"] - } - }, - "required": ["provider"] - }, - "then": { - "properties": { - "model": { - "enum": ["llama2-70b", "mistral-8x7b", "gemma"] - } - } - } - }, - { - "if": { - "properties": { - "apiType": { - "const": "azure" - } - }, - "required": ["apiType"] - }, - "then": { - "required": ["engine", "apiVersion", "apiBase"] - } - }, - { - "if": { - "properties": { - "provider": { - "enum": ["openai"] - } - }, - "required": ["provider"] - }, - "then": { - "properties": { - "useLegacyCompletionsEndpoint": { - "type": "boolean" - } - } - } - }, - { - "if": { - "properties": { - "provider": { - "const": "llamafile" - } - }, - "required": ["provider"] - }, - "then": { - "properties": { - "llamafileCommand": { - "type": "string" - } - } - } - }, - { - "if": { - "properties": { - "provider": { - "enum": ["text-gen-webui"] - } - }, - "required": ["provider"] - }, - "then": { - "properties": { - "streamingUrl": { - "type": "string" - } - } - } - }, - { - "if": { - "properties": { - "provider": { - "enum": ["flowise"] - } + }, + "engine": { + "title": "Engine", + "description": "Azure OpenAI engine", + "type": "string" + } }, - "required": ["provider"] - }, - "then": { - "properties": { - "timeout": { - "title": "Timeout", - "description": "Set the timeout for each request to Flowise. If you are running a local version of Flowise it might takes a while to respond, you might want to set this to avoid timeouts.", - "default": 5000, - "type": "integer" - }, - "additionalHeaders": { - "description": "A list of additional headers", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "title": "Key", - "description": "Header key", - "type": "string" + "required": [ + "title", + "provider", + "model" + ], + "allOf": [ + { + "if": { + "properties": { + "provider": { + "type": "str" + } + }, + "not": { + "required": [ + "provider" + ] + } }, - "value": { - "title": "Value", - "description": "Header value", - "type": "string" + "then": { + "properties": { + "model": { + "description": "Choose a provider first, then model options will be shown here." + } + } } - }, - "required": ["key", "value"] - } - }, - "additionalFlowiseConfiguration": { - "description": "A list of additional properties to be sent along `overrideConfig`", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "title": "Key", - "description": "Configuration Property key", - "type": "string" + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "openai", + "anthropic", + "cohere", + "gemini", + "huggingface-inference-api", + "replicate", + "together", + "cloudflare" + ] + } + }, + "required": [ + "provider" + ] }, - "value": { - "title": "Value", - "description": "Configuration Property value" + "then": { + "required": [ + "apiKey" + ] } - }, - "required": ["key", "value"] - } - }, - "model": { - "anyOf": [ - { - "enum": [ - "gpt-3.5-turbo", - "gpt-3.5-turbo-16k", - "gpt-4", - "gpt-3.5-turbo-0613", - "gpt-4-32k", - "gpt-4-turbo-preview", - "gpt-4-vision-preview", - "mistral-7b", - "mistral-8x7b", - "llama2-7b", - "llama2-13b", - "codellama-7b", - "codellama-13b", - "codellama-34b", - "codellama-70b", - "phind-codellama-34b", - "wizardcoder-7b", - "wizardcoder-13b", - "wizardcoder-34b", - "zephyr-7b", - "codeup-13b", - "deepseek-7b", - "deepseek-33b", - "claude-2", - "claude-instant-1", - "claude-3-opus-20240229", - "claude-3-sonnet-20240229", - "claude-3-haiku-20240307", - "claude-2.1", - "chat-bison-001", - "gemini-pro", - "gemini-1.5-pro-latest", - "mistral-tiny", - "mistral-small", - "mistral-medium", - "deepseek-1b", - "stable-code-3b", - "starcoder-1b", - "starcoder-3b", - "starcoder2-3b" + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "huggingface-tgi", + "huggingface-inference-api" + ] + } + } + }, + "then": { + "required": [ + "apiBase" + ] + }, + "required": [ + "provider" ] - }, - { - "type": "string" - } - ] - } - } - } - } - ] - }, - "ModelRoles": { - "title": "ModelRoles", - "type": "object", - "properties": { - "default": { - "title": "Default", - "description": "The default model. If other model roles are not set, they will fall back to default.", - "type": "string" - }, - "chat": { - "title": "Chat", - "description": "The model to use for chat. If not set, will fall back to default.", - "type": "string" - }, - "edit": { - "title": "Edit", - "description": "The model to use for editing. If not set, will fall back to default.", - "type": "string" - }, - "summarize": { - "title": "Summarize", - "description": "The model to use for summarization. If not set, will fall back to default.", - "type": "string" - } - }, - "required": ["default"] - }, - "SlashCommand": { - "title": "SlashCommand", - "type": "object", - "properties": { - "name": { - "title": "Name", - "anyOf": [ - { - "enum": [ - "issue", - "share", - "so", - "cmd", - "edit", - "comment", - "http", - "commit", - "review" - ], - "type": "string", - "markdownEnumDescriptions": [ - "Generate a link to a drafted GitHub issue", - "Export the current chat session to markdown", - "Reference StackOverflow to answer the question", - "Generate a terminal command and paste it into the terminal", - "Edit the highlighted code with given instructions", - "Add comments to the highlighted code", - "Write a custom slash command at your own HTTP endpoint. Set 'url' in the params object for the endpoint you have setup.", - "Generate a commit message for the current changes", - "Review code and give feedback" - ] - }, - { - "type": "string" - } - ] - }, - "description": { - "title": "Description", - "type": "string" - }, - "step": { - "title": "Step", - "description": "This property is no longer required and has no effect. To use a built-in slash command, instead set the 'name' property to one of the pre-configured options.", - "type": "string" - }, - "params": { - "title": "Params", - "default": {}, - "type": "object" - } - }, - "allOf": [ - { - "if": { - "properties": { - "name": { - "enum": ["issue"] - } - } - }, - "then": { - "properties": { - "params": { - "properties": { - "repositoryUrl": { - "type": "string", - "description": "Enter the URL of the GitHub repository for which you want to generate the issue." - } - }, - "required": ["repositoryUrl"] - } - }, - "required": ["params"] - } - }, - { - "if": { - "properties": { - "name": { - "enum": ["edit"] - } - } - }, - "then": { - "properties": { - "params": { - "properties": { - "recap": { - "type": "boolean", - "markdownDescription": "If recap is set to `true`, Continue will generate a summary of the changes after making the edit." - }, - "tokenLimit": { - "type": "integer", - "markdownDescription": "By default, Continue doesn't let you edit extremely large ranges (beyond 1,200 tokens), because the LLM is unlikely to succeed. But if you would like to override this limit with the understanding of possible failure you may do so here." - } - } - } - } - } - } - ], - "required": ["name", "description"] - }, - "CustomCommand": { - "title": "CustomCommand", - "type": "object", - "properties": { - "name": { - "title": "Name", - "type": "string" - }, - "prompt": { - "title": "Prompt", - "type": "string" - }, - "description": { - "title": "Description", - "type": "string" - } - }, - "required": ["name", "prompt", "description"] - }, - "ContextProviderWithParams": { - "title": "ContextProviderWithParams", - "type": "object", - "properties": { - "name": { - "title": "Name", - "anyOf": [ - { - "enum": [ - "diff", - "terminal", - "locals", - "open", - "google", - "search", - "http", - "codebase", - "problems", - "folder", - "issue", - "docs", - "tree", - "highlights", - "outline", - "postgres", - "code", - "system" - ], - "markdownEnumDescriptions": [ - "Reference the contents of the current changes as given by `git diff`", - "Reference the contents of the terminal", - "Reference the contents of all open or pinned files.", - "Enter a search phrase and include the Google search results as context", - "Reference the results of a ripgrep search in your codebase", - "Write a custom context provider at your own HTTP endpoint. Set 'url' in the params object for the endpoint you have setup.", - "Use embeddings to automatically find relevant files from throughout the codebase", - "Reference all linting errors and warnings in the currently open file", - "Include important files from a folder in the prompt, as determined by similarity search", - "Reference GitHub issues from a repository", - "Retrieve important pages from a documentation website, as determined by similarity search", - "Index and retrieve the contents of any documentation site, using embeddings to find important snippets", - "Display a file tree of the current workspace", - "Include a repo map showing important code objects", - "Displays important snippets of code from the currently open files", - "Displays definition lines from the currently open files", - "References Postgres table schema and sample rows", - "Reference specific functions and classes from throughout your codebase", - "Reference your operating system and cpu" - ], - "type": "string" - }, - { - "type": "string" - } - ] - }, - "params": { - "title": "Params", - "default": {}, - "type": "object" - } - }, - "allOf": [ - { - "if": { - "properties": { - "name": { - "enum": ["google"] - } - } - }, - "then": { - "properties": { - "params": { - "properties": { - "serperApiKey": { - "type": "string", - "description": "Your API key for https://serper.dev in order to get Google search results" - } - }, - "required": ["serperApiKey"] - } - }, - "required": ["params"] - } - }, - { - "if": { - "properties": { - "name": { - "enum": ["open"] - } - } - }, - "then": { - "properties": { - "params": { - "properties": { - "onlyPinned": { - "type": "boolean", - "description": "If set to true, only 'pinned' files will be included.", - "default": false - } - } - } - } - } - }, - { - "if": { - "properties": { - "name": { - "enum": ["issue"] - } - } - }, - "then": { - "properties": { - "params": { - "properties": { - "githubToken": { - "type": "string", - "description": "Your GitHub token to access the GitHub API. Required for private repositories." - }, - "repos": { - "type": "array", - "description": "A list of repositories to search for issues", - "items": { - "type": "object", - "properties": { - "owner": { - "type": "string", - "description": "The owner of the repository" - }, - "repo": { - "type": "string", - "description": "The name of the repository" - }, - "type": { - "type": "string", - "description": "The type of issues to search for", - "enum": ["open", "closed", "all"] + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "openai" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "properties": { + "engine": { + "type": "string" + }, + "apiType": { + "type": "string" + }, + "apiVersion": { + "type": "string" + } } - }, - "required": ["owner", "repo"] } - } }, - "required": ["repos"] - } - }, - "required": ["params"] - } - }, - { - "if": { - "properties": { - "name": { - "enum": ["database"] - } - } - }, - "then": { - "connections": { - "type": "array", - "description": "A list of database connections", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "A unique name for this database connection" - }, - "connection_type": { - "type": "string", - "description": "The type of database (e.g., 'postgres', 'mysql')", - "enum": ["postgres", "mysql", "sqlite"] - }, - "connection": { - "type": "object", - "properties": { - "user": { - "type": "string", - "description": "The database user name" - }, - "host": { - "type": "string", - "description": "The host address of the database server" - }, - "database": { - "type": "string", - "description": "The name of the database to connect to" - }, - "password": { - "type": "string", - "description": "The password for the database user" - }, - "port": { - "type": "integer", - "description": "The port number to connect to at the host" - }, - "filename": { - "type": "string", - "description": "File location for simple file DB's" - } + { + "if": { + "properties": { + "provider": { + "enum": [ + "cloudflare" + ] + } + }, + "required": [ + "provider" + ] }, - "required": [] - } + "then": { + "properties": { + "accountId": { + "type": "string" + }, + "aiGatewaySlug": { + "type": "string" + }, + "model": { + "anyOf": [ + { + "enum": [ + "@cf/meta/llama-3-8b-instruct", + "@hf/thebloke/deepseek-coder-6.7b-instruct-awq", + "@cf/deepseek-ai/deepseek-math-7b-instruct", + "@cf/thebloke/discolm-german-7b-v1-awq", + "@cf/tiiuae/falcon-7b-instruct", + "@cf/google/gemma-2b-it-lora", + "@hf/google/gemma-7b-it", + "@cf/google/gemma-7b-it-lora", + "@hf/nousresearch/hermes-2-pro-mistral-7b", + "@cf/meta/llama-2-7b-chat-fp16", + "@cf/meta/llama-2-7b-chat-int8", + "@cf/meta-llama/llama-2-7b-chat-hf-lora", + "@hf/thebloke/llama-2-13b-chat-awq", + "@hf/thebloke/llamaguard-7b-awq", + "@cf/mistral/mistral-7b-instruct-v0.1", + "@hf/mistral/mistral-7b-instruct-v0.2", + "@cf/mistral/mistral-7b-instruct-v0.2-lora", + "@hf/thebloke/neural-chat-7b-v3-1-awq", + "@cf/openchat/openchat-3.5-0106", + "@hf/thebloke/openhermes-2.5-mistral-7b-awq", + "@cf/microsoft/phi-2", + "@cf/qwen/qwen1.5-0.5b-chat", + "@cf/qwen/qwen1.5-1.8b-chat", + "@cf/qwen/qwen1.5-7b-chat-awq", + "@cf/qwen/qwen1.5-14b-chat-awq", + "@cf/defog/sqlcoder-7b-2", + "@hf/nexusflow/starling-lm-7b-beta", + "@cf/tinyllama/tinyllama-1.1b-chat-v1.0", + "@hf/thebloke/zephyr-7b-beta-awq", + "@hf/thebloke/deepseek-coder-6.7b-base-awq" + ] + }, + { + "type": "string" + } + ] + } + } + } }, - "required": ["name", "type", "connection"] - } - }, - "required": ["connections"] - } + { + "if": { + "properties": { + "provider": { + "enum": [ + "openai" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "properties": { + "model": { + "anyOf": [ + { + "enum": [ + "gpt-3.5-turbo", + "gpt-3.5-turbo-16k", + "gpt-4o", + "gpt-4", + "gpt-3.5-turbo-0613", + "gpt-4-32k", + "gpt-4-0125-preview", + "gpt-4-turbo", + "AUTODETECT" + ] + }, + { + "type": "string" + } + ] + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "replicate" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "properties": { + "model": { + "anyOf": [ + { + "enum": [ + "llama3-8b", + "llama3-70b", + "codellama-7b", + "codellama-13b", + "codellama-34b", + "llama2-7b", + "llama2-13b" + ] + }, + { + "type": "string" + } + ] + }, + "markdownDescription": "Select a pre-defined option, or find an exact model ID from Replicate [here](https://replicate.com/collections/streaming-language-models)." + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "free-trial" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "properties": { + "model": { + "enum": [ + "gpt-4o", + "codestral-latest", + "llama3-70b", + "gpt-3.5-turbo", + "phind-codellama-34b", + "gemini-pro", + "mistral-8x7b", + "claude-3-5-sonnet-20240620", + "claude-3-haiku-20240307", + "AUTODETECT" + ] + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "openai" + ] + }, + "apiType": { + "not": { + "const": "azure" + } + } + }, + "required": [ + "provider" + ] + }, + "then": { + "properties": { + "model": { + "anyOf": [ + { + "enum": [ + "gpt-3.5-turbo", + "gpt-3.5-turbo-16k", + "gpt-4o", + "gpt-4", + "gpt-3.5-turbo-0613", + "gpt-4-32k", + "gpt-4-turbo", + "gpt-4-vision-preview", + "mistral-7b", + "mistral-8x7b", + "llama2-7b", + "llama2-13b", + "codellama-7b", + "codellama-13b", + "codellama-34b", + "codellama-70b", + "llama3-8b", + "llama3-70b", + "phind-codellama-34b", + "wizardcoder-7b", + "wizardcoder-13b", + "wizardcoder-34b", + "zephyr-7b", + "codeup-13b", + "deepseek-7b", + "deepseek-33b", + "neural-chat-7b", + "deepseek-1b", + "stable-code-3b", + "starcoder-1b", + "starcoder-3b", + "starcoder2-3b", + "mistral-tiny", + "mistral-small", + "mistral-medium", + "AUTODETECT" + ] + }, + { + "type": "string" + } + ] + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "anthropic" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "properties": { + "model": { + "anyOf": [ + { + "enum": [ + "claude-2", + "claude-instant-1", + "claude-3-5-sonnet-20240620", + "claude-3-opus-20240229", + "claude-3-sonnet-20240229", + "claude-3-haiku-20240307", + "claude-2.1" + ] + }, + { + "type": "string" + } + ] + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "cohere" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "properties": { + "model": { + "enum": [ + "command-r", + "command-r-plus" + ] + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "bedrock" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "properties": { + "model": { + "anyOf": [ + { + "enum": [ + "claude-3-sonnet-20240229", + "claude-3-haiku-20240307", + "claude-2" + ] + }, + { + "type": "string" + } + ] + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "gemini" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "properties": { + "model": { + "enum": [ + "chat-bison-001", + "gemini-pro", + "gemini-1.5-pro-latest", + "gemini-1.5-pro", + "gemini-1.5-flash-latest", + "gemini-1.5-flash" + ] + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "together" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "properties": { + "model": { + "anyOf": [ + { + "enum": [ + "mistral-7b", + "mistral-8x7b", + "llama2-7b", + "llama2-13b", + "llama3-8b", + "llama3-70b", + "codellama-7b", + "codellama-13b", + "codellama-34b", + "codellama-70b", + "phind-codellama-34b" + ] + }, + { + "type": "string" + } + ], + "markdownDescription": "Select a pre-defined option, or find an exact model string from Together AI [here](https://docs.together.ai/docs/inference-models)." + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "deepinfra" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "properties": { + "model": { + "markdownDescription": "Find the model name you want to use from DeepInfra [here](https://deepinfra.com/models?type=text-generation)." + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "huggingface-tgi", + "huggingface-inference-api", + "llama.cpp", + "text-gen-webui", + "llamafile" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "properties": { + "model": { + "anyOf": [ + { + "enum": [ + "mistral-7b", + "mistral-8x7b", + "llama2-7b", + "llama2-13b", + "codellama-7b", + "codellama-13b", + "codellama-34b", + "codellama-70b", + "llama3-8b", + "llama3-70b", + "phind-codellama-34b", + "wizardcoder-7b", + "wizardcoder-13b", + "wizardcoder-34b", + "zephyr-7b", + "codeup-13b", + "deepseek-7b", + "deepseek-33b", + "neural-chat-7b", + "deepseek-1b", + "stable-code-3b", + "starcoder-1b", + "starcoder-3b", + "starcoder2-3b" + ] + }, + { + "type": "string" + } + ] + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "ollama" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "properties": { + "model": { + "anyOf": [ + { + "enum": [ + "mistral-7b", + "llama2-7b", + "llama2-13b", + "codellama-7b", + "codellama-13b", + "codellama-34b", + "codellama-70b", + "llama3-8b", + "llama3-70b", + "phi-2", + "phind-codellama-34b", + "wizardcoder-7b", + "wizardcoder-13b", + "wizardcoder-34b", + "zephyr-7b", + "codeup-13b", + "deepseek-7b", + "deepseek-33b", + "neural-chat-7b", + "deepseek-1b", + "stable-code-3b", + "starcoder-1b", + "starcoder-3b", + "starcoder2-3b", + "AUTODETECT" + ] + }, + { + "type": "string" + } + ], + "markdownDescription": "Select a pre-defined option, or find the exact model tag for an Ollama model [here](https://ollama.ai/library)." + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "mistral" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "properties": { + "model": { + "enum": [ + "codestral-latest", + "codestral-mamba-latest", + "open-mistral-7b", + "open-mixtral-8x7b", + "open-mixtral-8x22b", + "mistral-small-latest", + "mistral-large-latest" + ] + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "deepseek" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "properties": { + "model": { + "enum": [ + "deepseek-chat", + "deepseek-coder" + ] + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "groq" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "properties": { + "model": { + "enum": [ + "llama2-70b", + "mistral-8x7b", + "gemma", + "llama3-8b", + "llama3-70b", + "AUTODETECT" + ] + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "fireworks" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "properties": { + "model": { + "enum": [ + "starcoder-7b" + ] + } + } + } + }, + { + "if": { + "properties": { + "apiType": { + "const": "azure" + } + }, + "required": [ + "apiType" + ] + }, + "then": { + "required": [ + "engine", + "apiVersion", + "apiBase" + ] + } + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "openai" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "properties": { + "useLegacyCompletionsEndpoint": { + "type": "boolean" + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "const": "llamafile" + } + }, + "required": [ + "provider" + ] + }, + "then": { + "properties": { + "llamafileCommand": { + "type": "string" + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "text-gen-webui" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "properties": { + "streamingUrl": { + "type": "string" + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "flowise" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "properties": { + "timeout": { + "title": "Timeout", + "description": "Set the timeout for each request to Flowise. If you are running a local version of Flowise it might takes a while to respond, you might want to set this to avoid timeouts.", + "default": 5000, + "type": "integer" + }, + "additionalHeaders": { + "description": "A list of additional headers", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "title": "Key", + "description": "Header key", + "type": "string" + }, + "value": { + "title": "Value", + "description": "Header value", + "type": "string" + } + }, + "required": [ + "key", + "value" + ] + } + }, + "additionalFlowiseConfiguration": { + "description": "A list of additional properties to be sent along `overrideConfig`", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "title": "Key", + "description": "Configuration Property key", + "type": "string" + }, + "value": { + "title": "Value", + "description": "Configuration Property value" + } + }, + "required": [ + "key", + "value" + ] + } + }, + "model": { + "anyOf": [ + { + "enum": [ + "gpt-3.5-turbo", + "gpt-3.5-turbo-16k", + "gpt-4o", + "gpt-4", + "gpt-3.5-turbo-0613", + "gpt-4-32k", + "gpt-4-turbo", + "gpt-4-vision-preview", + "mistral-7b", + "mistral-8x7b", + "llama2-7b", + "llama2-13b", + "codellama-7b", + "codellama-13b", + "codellama-34b", + "codellama-70b", + "llama3-8b", + "llama3-70b", + "phind-codellama-34b", + "wizardcoder-7b", + "wizardcoder-13b", + "wizardcoder-34b", + "zephyr-7b", + "codeup-13b", + "deepseek-7b", + "deepseek-33b", + "claude-2", + "claude-instant-1", + "claude-3-5-sonnet-20240620", + "claude-3-opus-20240229", + "claude-3-sonnet-20240229", + "claude-3-haiku-20240307", + "claude-2.1", + "command-r", + "command-r-plus", + "chat-bison-001", + "gemini-pro", + "gemini-1.5-pro-latest", + "gemini-1.5-pro", + "gemini-1.5-flash-latest", + "gemini-1.5-flash", + "mistral-tiny", + "mistral-small", + "mistral-medium", + "deepseek-1b", + "stable-code-3b", + "starcoder-1b", + "starcoder-3b", + "starcoder2-3b" + ] + }, + { + "type": "string" + } + ] + } + } + } + } + ] }, - { - "if": { - "properties": { - "name": { - "enum": ["gitlab-mr"] - } - } - }, - "then": { + "ModelRoles": { + "title": "ModelRoles", + "type": "object", "properties": { - "params": { - "properties": { - "domain": { - "type": "string", - "description": "Your GitLab domain, will default to gitlab.com" - }, - "token": { - "type": "string", - "description": "Your private access token." - }, - "filterComments": { - "type": "boolean", - "description": "If you have code selected, filters out comments that aren't related to the selection." - } + "default": { + "title": "Default", + "description": "The default model. If other model roles are not set, they will fall back to default.", + "type": "string" + }, + "chat": { + "title": "Chat", + "description": "The model to use for chat. If not set, will fall back to default.", + "type": "string" + }, + "edit": { + "title": "Edit", + "description": "The model to use for editing. If not set, will fall back to default.", + "type": "string" }, - "required": ["token"] - } + "summarize": { + "title": "Summarize", + "description": "The model to use for summarization. If not set, will fall back to default.", + "type": "string" + } }, - "required": ["params"] - } + "required": [ + "default" + ] }, - { - "if": { + "SlashCommand": { + "title": "SlashCommand", + "type": "object", "properties": { - "name": { - "enum": ["jira"] - } - } - }, - "then": { - "properties": { - "params": { - "properties": { - "domain": { - "type": "string", - "description": "Your Jira domain, for example company.atlassian.net." - }, - "email": { - "type": "string", - "description": "The email that you log into Jira with" - }, - "token": { - "type": "string", - "description": "Your atlassian API token from https://id.atlassian.com/manage-profile/security/api-tokens" - }, - "issueQuery": { - "type": "string", - "description": "Customize the query used to find Jira issues" - }, - "apiVersion": { - "type": "integer", - "markdownDescription": "This context provider supports both Jira API version 2 and 3. It will use version 3 by default since that's what the cloud version uses, but if you have the datacenter version of Jira, you'll need to set the API Version to 2 using the `apiVersion` property." - }, - "requestOptions": { - "title": "Request Options", - "description": "Options for the HTTPS request to Jira.", - "default": { - "timeout": 7200, - "verifySsl": null, - "caBundlePath": null, - "proxy": null, - "headers": null, - "extraBodyProperties": null - }, - "allOf": [ - { - "$ref": "#/definitions/RequestOptions" - } + "name": { + "title": "Name", + "anyOf": [ + { + "enum": [ + "issue", + "share", + "so", + "cmd", + "edit", + "comment", + "http", + "commit", + "review" + ], + "type": "string", + "markdownEnumDescriptions": [ + "Generate a link to a drafted GitHub issue", + "Export the current chat session to markdown", + "Reference StackOverflow to answer the question", + "Generate a terminal command and paste it into the terminal", + "Edit the highlighted code with given instructions", + "Add comments to the highlighted code", + "Write a custom slash command at your own HTTP endpoint. Set 'url' in the params object for the endpoint you have setup.", + "Generate a commit message for the current changes", + "Review code and give feedback" + ] + }, + { + "type": "string" + } ] - } }, - "required": ["domain", "token"] - } + "description": { + "title": "Description", + "type": "string" + }, + "step": { + "title": "Step", + "description": "This property is no longer required and has no effect. To use a built-in slash command, instead set the 'name' property to one of the pre-configured options.", + "type": "string" + }, + "params": { + "title": "Params", + "default": {}, + "type": "object" + } }, - "required": ["params"] - } - }, - { - "if": { - "properties": { - "name": { - "enum": ["http"] - } - } - }, - "then": { + "allOf": [ + { + "if": { + "properties": { + "name": { + "enum": [ + "issue" + ] + } + } + }, + "then": { + "properties": { + "params": { + "properties": { + "repositoryUrl": { + "type": "string", + "description": "Enter the URL of the GitHub repository for which you want to generate the issue." + } + }, + "required": [ + "repositoryUrl" + ] + } + }, + "required": [ + "params" + ] + } + }, + { + "if": { + "properties": { + "name": { + "enum": [ + "edit" + ] + } + } + }, + "then": { + "properties": { + "params": { + "properties": { + "recap": { + "type": "boolean", + "markdownDescription": "If recap is set to `true`, Continue will generate a summary of the changes after making the edit." + }, + "tokenLimit": { + "type": "integer", + "markdownDescription": "By default, Continue doesn't let you edit extremely large ranges (beyond 1,200 tokens), because the LLM is unlikely to succeed. But if you would like to override this limit with the understanding of possible failure you may do so here." + } + } + } + } + } + }, + { + "if": { + "properties": { + "name": { + "enum": [ + "share" + ] + } + } + }, + "then": { + "properties": { + "params": { + "properties": { + "outputDir": { + "type": "string", + "markdownDescription": "If outputDir is set to `.` or begins with `./` or `.\\`, file will be saved to the current workspace or a subdirectory thereof, respectively. `~` can similarly be used to specify the user's home directory." + } + } + } + } + } + } + ], + "required": [ + "name", + "description" + ] + }, + "CustomCommand": { + "title": "CustomCommand", + "type": "object", "properties": { - "params": { - "properties": { - "url": { - "type": "string", - "description": "The HTTP endpoint of your context provider server." - } - }, - "required": ["url"] - } + "name": { + "title": "Name", + "type": "string" + }, + "prompt": { + "title": "Prompt", + "type": "string" + }, + "description": { + "title": "Description", + "type": "string" + } }, - "required": ["params"] - } - }, - { - "if": { + "required": [ + "name", + "prompt", + "description" + ] + }, + "ContextProviderWithParams": { + "title": "ContextProviderWithParams", + "type": "object", "properties": { - "name": { - "enum": ["codebase", "folder"] - } - } - }, - "then": { + "name": { + "title": "Name", + "anyOf": [ + { + "enum": [ + "diff", + "terminal", + "locals", + "open", + "google", + "search", + "http", + "codebase", + "problems", + "folder", + "issue", + "docs", + "tree", + "highlights", + "outline", + "postgres", + "code", + "currentFile", + "url", + "database", + "os" + ], + "markdownEnumDescriptions": [ + "Reference the contents of the current changes as given by `git diff`", + "Reference the contents of the terminal", + "Reference the contents of the local variables with top n level (defaulting to 3) of call stack for that thread", + "Reference the contents of all open or pinned files.", + "Enter a search phrase and include the Google search results as context", + "Reference the results of a ripgrep search in your codebase", + "Write a custom context provider at your own HTTP endpoint. Set 'url' in the params object for the endpoint you have setup.", + "Use embeddings to automatically find relevant files from throughout the codebase", + "Reference all linting errors and warnings in the currently open file", + "Include important files from a folder in the prompt, as determined by similarity search", + "Reference GitHub issues from a repository", + "Retrieve important pages from a documentation website, as determined by similarity search", + "Display a file tree of the current workspace", + "Include important highlighted sections from your code", + "Include a repo map showing important code objects", + "References Postgres table schema and sample rows", + "Reference specific functions and classes from throughout your codebase", + "Reference the contents of the currently active file", + "Reference the contents of a page at a URL", + "Reference table schemas", + "Operating system and CPU Information" + ], + "type": "string" + }, + { + "type": "string" + } + ] + }, + "params": { + "title": "Params", + "default": {}, + "type": "object" + } + }, + "allOf": [ + { + "if": { + "properties": { + "name": { + "enum": [ + "google" + ] + } + } + }, + "then": { + "properties": { + "params": { + "properties": { + "serperApiKey": { + "type": "string", + "description": "Your API key for https://serper.dev in order to get Google search results" + } + }, + "required": [ + "serperApiKey" + ] + } + }, + "required": [ + "params" + ] + } + }, + { + "if": { + "properties": { + "name": { + "enum": [ + "open" + ] + } + } + }, + "then": { + "properties": { + "params": { + "properties": { + "onlyPinned": { + "type": "boolean", + "description": "If set to true, only 'pinned' files will be included.", + "default": false + } + } + } + } + } + }, + { + "if": { + "properties": { + "name": { + "enum": [ + "issue" + ] + } + } + }, + "then": { + "properties": { + "params": { + "properties": { + "githubToken": { + "type": "string", + "description": "Your GitHub token to access the GitHub API. Required for private repositories." + }, + "repos": { + "type": "array", + "description": "A list of repositories to search for issues", + "items": { + "type": "object", + "properties": { + "owner": { + "type": "string", + "description": "The owner of the repository" + }, + "repo": { + "type": "string", + "description": "The name of the repository" + }, + "type": { + "type": "string", + "description": "The type of issues to search for", + "enum": [ + "open", + "closed", + "all" + ] + } + }, + "required": [ + "owner", + "repo" + ] + } + } + }, + "required": [ + "repos" + ] + } + }, + "required": [ + "params" + ] + } + }, + { + "if": { + "properties": { + "name": { + "enum": [ + "database" + ] + } + } + }, + "then": { + "properties": { + "params": { + "properties": { + "connections": { + "type": "array", + "description": "A list of database connections", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "A unique name for this database connection" + }, + "connection_type": { + "type": "string", + "description": "The type of database (e.g., 'postgres', 'mysql')", + "enum": [ + "postgres", + "mysql", + "sqlite" + ] + }, + "connection": { + "type": "object", + "properties": { + "user": { + "type": "string", + "description": "The database user name" + }, + "host": { + "type": "string", + "description": "The host address of the database server" + }, + "database": { + "type": "string", + "description": "The name of the database to connect to" + }, + "password": { + "type": "string", + "description": "The password for the database user" + }, + "port": { + "type": "integer", + "description": "The port number to connect to at the host" + }, + "filename": { + "type": "string", + "description": "File location for simple file DB's" + } + }, + "required": [] + } + }, + "required": [ + "name", + "connection_type", + "connection" + ] + } + } + }, + "required": [ + "connections" + ] + } + }, + "required": [ + "params" + ] + } + }, + { + "if": { + "properties": { + "name": { + "enum": [ + "gitlab-mr" + ] + } + } + }, + "then": { + "properties": { + "params": { + "properties": { + "domain": { + "type": "string", + "description": "Your GitLab domain, will default to gitlab.com" + }, + "token": { + "type": "string", + "description": "Your private access token." + }, + "filterComments": { + "type": "boolean", + "description": "If you have code selected, filters out comments that aren't related to the selection." + } + }, + "required": [ + "token" + ] + } + }, + "required": [ + "params" + ] + } + }, + { + "if": { + "properties": { + "name": { + "enum": [ + "jira" + ] + } + } + }, + "then": { + "properties": { + "params": { + "properties": { + "domain": { + "type": "string", + "description": "Your Jira domain, for example company.atlassian.net." + }, + "email": { + "type": "string", + "description": "The email that you log into Jira with" + }, + "token": { + "type": "string", + "description": "Your atlassian API token from https://id.atlassian.com/manage-profile/security/api-tokens" + }, + "issueQuery": { + "type": "string", + "description": "Customize the query used to find Jira issues" + }, + "apiVersion": { + "type": "integer", + "markdownDescription": "This context provider supports both Jira API version 2 and 3. It will use version 3 by default since that's what the cloud version uses, but if you have the datacenter version of Jira, you'll need to set the API Version to 2 using the `apiVersion` property." + }, + "requestOptions": { + "title": "Request Options", + "description": "Options for the HTTPS request to Jira.", + "default": { + "timeout": 7200, + "verifySsl": null, + "caBundlePath": null, + "proxy": null, + "headers": null, + "extraBodyProperties": null + }, + "allOf": [ + { + "$ref": "#/definitions/RequestOptions" + } + ] + } + }, + "required": [ + "domain", + "token" + ] + } + }, + "required": [ + "params" + ] + } + }, + { + "if": { + "properties": { + "name": { + "enum": [ + "http" + ] + } + } + }, + "then": { + "properties": { + "params": { + "properties": { + "url": { + "type": "string", + "description": "The HTTP endpoint of your context provider server." + } + }, + "required": [ + "url" + ] + } + }, + "required": [ + "params" + ] + } + }, + { + "if": { + "properties": { + "name": { + "enum": [ + "codebase", + "folder" + ] + } + } + }, + "then": { + "properties": { + "params": { + "properties": { + "nRetrieve": { + "title": "N Retrieve", + "description": "Number of results to initially retrieve from vector database", + "default": 50, + "type": "integer" + }, + "nFinal": { + "title": "N Final", + "description": "Final number of results to use after re-ranking", + "default": 10, + "type": "integer" + }, + "useReranking": { + "title": "Use Reranking", + "description": "Whether to use re-ranking, which will allow initial selection of nRetrieve results, then will use an LLM to select the top nFinal results. Disabling re-ranking will give faster, but less accurate, results.", + "default": true, + "type": "boolean" + } + } + } + } + } + }, + { + "if": { + "properties": { + "name": { + "enum": [ + "postgres" + ] + } + } + }, + "then": { + "properties": { + "params": { + "properties": { + "host": { + "title": "Host", + "description": "Database host", + "default": "localhost", + "type": "string" + }, + "port": { + "title": "Port", + "description": "Database port", + "default": 5432, + "type": "integer" + }, + "user": { + "title": "User", + "description": "Database user", + "default": "postgres", + "type": "string" + }, + "password": { + "title": "Password", + "description": "Database password", + "type": "string" + }, + "database": { + "title": "Database", + "description": "Database name", + "default": "postgres", + "type": "string" + }, + "schema": { + "title": "Schema", + "description": "Database schema", + "default": "public", + "type": "string" + }, + "sampleRows": { + "title": "Sample Rows", + "description": "Number of rows to sample from the database", + "default": 3, + "type": "integer" + } + } + } + }, + "required": [ + "host", + "port", + "user", + "password", + "database" + ] + } + } + ], + "required": [ + "name" + ] + }, + "SerializedContinueConfig": { + "title": "config.json", + "type": "object", "properties": { - "params": { - "properties": { - "nRetrieve": { - "title": "N Retrieve", - "description": "Number of results to initially retrieve from vector database", - "default": 50, - "type": "integer" - }, - "nFinal": { - "title": "N Final", - "description": "Final number of results to use after re-ranking", - "default": 10, - "type": "integer" - }, - "useReranking": { - "title": "Use Reranking", - "description": "Whether to use re-ranking, which will allow initial selection of nRetrieve results, then will use an LLM to select the top nFinal results. Disabling re-ranking will give faster, but less accurate, results.", + "allowAnonymousTelemetry": { + "title": "Allow Anonymous Telemetry", + "markdownDescription": "If this field is set to True, we will collect anonymous telemetry as described in the documentation page on telemetry. If set to `false`, we will not collect any data. Learn more in [the docs](https://docs.continue.dev/telemetry).", "default": true, "type": "boolean" - } - } - } - } - } - }, - { - "if": { - "properties": { - "name": { - "enum": ["postgres"] - } - } - }, - "then": { - "properties": { - "params": { - "properties": { - "host": { - "title": "Host", - "description": "Database host", - "default": "localhost", - "type": "string" - }, - "port": { - "title": "Port", - "description": "Database port", - "default": 5432, - "type": "integer" - }, - "user": { - "title": "User", - "description": "Database user", - "default": "postgres", - "type": "string" - }, - "password": { - "title": "Password", - "description": "Database password", + }, + "models": { + "title": "Models", + "markdownDescription": "Learn about setting up models in [the documentation](https://docs.continue.dev/model-setup/overview).", + "default": [ + { + "title": "GPT-4 (trial)", + "provider": "free-trial", + "model": "gpt-4", + "apiKey": "" + } + ], + "type": "array", + "items": { + "$ref": "#/definitions/ModelDescription" + } + }, + "systemMessage": { + "title": "System Message", + "description": "A system message that will always be followed by the LLM", "type": "string" - }, - "database": { - "title": "Database", - "description": "Database name", - "default": "postgres", + }, + "completionOptions": { + "title": "Completion Options", + "description": "Default options for completion. These will be overriden by any options set for a specific model.", + "default": { + "temperature": null, + "topP": null, + "topK": null, + "presencePenalty": null, + "frequencyPenalty": null, + "stop": null, + "maxTokens": 600 + }, + "allOf": [ + { + "$ref": "#/definitions/BaseCompletionOptions" + } + ] + }, + "requestOptions": { + "title": "Request Options", + "description": "Default request options for all fetch requests from models and context providers. These will be overriden by any model-specific request options.", + "allOf": [ + { + "$ref": "#/definitions/RequestOptions" + } + ] + }, + "slashCommands": { + "title": "Slash Commands", + "markdownDescription": "An array of slash commands that let you take custom actions from the sidebar. Learn more in the [documentation](https://docs.continue.dev/customization/slash-commands).", + "default": [], + "type": "array", + "items": { + "$ref": "#/definitions/SlashCommand" + } + }, + "customCommands": { + "title": "Custom Commands", + "markdownDescription": "An array of custom commands that allow you to reuse prompts. Each has name, description, and prompt properties. When you enter / in the text input, it will act as a shortcut to the prompt. Learn more in the [documentation](https://docs.continue.dev/customization/slash-commands#custom-commands-use-natural-language).", + "default": [ + { + "name": "test", + "prompt": "{{{ input }}}\n\nWrite a comprehensive set of unit tests for the selected code. It should setup, run tests that check for correctness including important edge cases, and teardown. Ensure that the tests are complete and sophisticated. Give the tests just as chat output, don't edit any file.", + "description": "This is an example custom command. Open config.json to edit it and create more" + } + ], + "type": "array", + "items": { + "$ref": "#/definitions/CustomCommand" + } + }, + "contextProviders": { + "title": "Context Providers", + "markdownDescription": "A list of ContextProvider objects that can be used to provide context to the LLM by typing '@'. Read more about ContextProviders in [the documentation](https://docs.continue.dev/customization/context-providers).", + "default": [], + "type": "array", + "items": { + "$ref": "#/definitions/ContextProviderWithParams" + } + }, + "userToken": { + "title": "User Token", + "description": "An optional token to identify the user.", "type": "string" - }, - "schema": { - "title": "Schema", - "description": "Database schema", - "default": "public", + }, + "dataServerUrl": { + "title": "Data Server Url", + "description": "The URL of the server where development data is sent. No data is sent unless a valid user token is provided.", + "default": "https://us-west1-autodebug.cloudfunctions.net", "type": "string" - }, - "sampleRows": { - "title": "Sample Rows", - "description": "Number of rows to sample from the database", - "default": 3, - "type": "integer" - } - } - } - }, - "required": ["host", "port", "user", "password", "database"] - } - } - ], - "required": ["name"] - }, - "SerializedContinueConfig": { - "title": "config.json", - "type": "object", - "properties": { - "allowAnonymousTelemetry": { - "title": "Allow Anonymous Telemetry", - "markdownDescription": "If this field is set to True, we will collect anonymous telemetry as described in the documentation page on telemetry. If set to `false`, we will not collect any data. Learn more in [the docs](https://continue.dev/docs/telemetry).", - "default": true, - "type": "boolean" - }, - "models": { - "title": "Models", - "markdownDescription": "Learn about setting up models in [the documentation](https://continue.dev/docs/model-setup/overview).", - "default": [ - { - "title": "GPT-4 (trial)", - "provider": "free-trial", - "model": "gpt-4", - "apiKey": "" - } - ], - "type": "array", - "items": { - "$ref": "#/definitions/ModelDescription" - } - }, - "systemMessage": { - "title": "System Message", - "description": "A system message that will always be followed by the LLM", - "type": "string" - }, - "completionOptions": { - "title": "Completion Options", - "description": "Default options for completion. These will be overriden by any options set for a specific model.", - "default": { - "temperature": null, - "topP": null, - "topK": null, - "presencePenalty": null, - "frequencyPenalty": null, - "stop": null, - "maxTokens": 600 - }, - "allOf": [ - { - "$ref": "#/definitions/BaseCompletionOptions" - } - ] - }, - "slashCommands": { - "title": "Slash Commands", - "markdownDescription": "An array of slash commands that let you take custom actions from the sidebar. Learn more in the [documentation](https://continue.dev/docs/customization/slash-commands).", - "default": [], - "type": "array", - "items": { - "$ref": "#/definitions/SlashCommand" - } - }, - "customCommands": { - "title": "Custom Commands", - "markdownDescription": "An array of custom commands that allow you to reuse prompts. Each has name, description, and prompt properties. When you enter / in the text input, it will act as a shortcut to the prompt. Learn more in the [documentation](https://continue.dev/docs/customization/slash-commands#custom-commands-use-natural-language).", - "default": [ - { - "name": "test", - "prompt": "Write a comprehensive set of unit tests for the selected code. It should setup, run tests that check for correctness including important edge cases, and teardown. Ensure that the tests are complete and sophisticated. Give the tests just as chat output, don't edit any file.", - "description": "This is an example custom command. Use /config to edit it and create more" - } - ], - "type": "array", - "items": { - "$ref": "#/definitions/CustomCommand" - } - }, - "contextProviders": { - "title": "Context Providers", - "markdownDescription": "A list of ContextProvider objects that can be used to provide context to the LLM by typing '@'. Read more about ContextProviders in [the documentation](https://continue.dev/docs/customization/context-providers).", - "default": [], - "type": "array", - "items": { - "$ref": "#/definitions/ContextProviderWithParams" - } - }, - "userToken": { - "title": "User Token", - "description": "An optional token to identify the user.", - "type": "string" - }, - "dataServerUrl": { - "title": "Data Server Url", - "description": "The URL of the server where development data is sent. No data is sent unless a valid user token is provided.", - "default": "https://us-west1-autodebug.cloudfunctions.net", - "type": "string" - }, - "disableSummaries": { - "title": "Disable Summaries", - "markdownDescription": "If set to `true`, Continue will not generate summaries for each Step. This can be useful if you want to save on compute.", - "default": false, - "type": "boolean" - }, - "disableIndexing": { - "title": "Disable Indexing", - "markdownDescription": "If set to `true`, Continue will not index the codebase. This is mainly used for debugging purposes.", - "default": false, - "type": "boolean" - }, - "disableSessionTitles": { - "title": "Disable Session Titles", - "markdownDescription": "If set to `true`, Continue will not make extra requests to the LLM to generate a summary title of each session.", - "default": false, - "type": "boolean" - }, - "embeddingsProvider": { - "title": "Embeddings Provider", - "markdownDescription": "The method that will be used to generate codebase embeddings. The default is transformers.js, which will run locally in the browser. Learn about the other options [here](https://continue.dev/docs/walkthroughs/codebase-embeddings#embeddings-providers).", - "type": "object", - "properties": { - "provider": { - "enum": ["transformers.js", "ollama", "openai", "free-trial"] - }, - "model": { - "type": "string" - }, - "apiKey": { - "type": "string" - }, - "apiBase": { - "type": "string" - } - }, - "required": ["provider"], - "allOf": [ - { - "if": { - "properties": { - "provider": { - "enum": ["ollama"] - } - }, - "required": ["provider"] - }, - "then": { - "required": ["model"] - } - } - ] - }, - "reranker": { - "title": "Reranker", - "markdownDescription": "The reranker is responsible for selecting the final results when retrieving snippets from your codebase.", - "type": "object", - "properties": { - "name": { - "enum": ["voyage", "llm", "free-trial"] - }, - "params": { - "type": "object" - } - }, - "required": ["name"], - "allOf": [ - { - "if": { - "properties": { - "name": { - "enum": ["llm"] - } - }, - "required": ["name"] - }, - "then": { - "properties": { - "params": { + }, + "disableSummaries": { + "title": "Disable Summaries", + "markdownDescription": "If set to `true`, Continue will not generate summaries for each Step. This can be useful if you want to save on compute.", + "default": false, + "type": "boolean" + }, + "disableIndexing": { + "title": "Disable Indexing", + "markdownDescription": "If set to `true`, Continue will not index the codebase. This is mainly used for debugging purposes.", + "default": false, + "type": "boolean" + }, + "disableSessionTitles": { + "title": "Disable Session Titles", + "markdownDescription": "If set to `true`, Continue will not make extra requests to the LLM to generate a summary title of each session.", + "default": false, + "type": "boolean" + }, + "embeddingsProvider": { + "title": "Embeddings Provider", + "markdownDescription": "The method that will be used to generate codebase embeddings. The default is transformers.js, which will run locally in the browser. Learn about the other options [here](https://docs.continue.dev/walkthroughs/codebase-embeddings#embeddings-providers).", "type": "object", "properties": { - "modelTitle": { - "type": "string" - } + "provider": { + "enum": [ + "huggingface-tei", + "transformers.js", + "ollama", + "openai", + "cohere", + "free-trial", + "gemini" + ] + }, + "model": { + "type": "string" + }, + "apiKey": { + "type": "string" + }, + "apiBase": { + "type": "string" + }, + "requestOptions": { + "title": "Request Options", + "description": "Request options to be used in any fetch requests made by the embeddings provider", + "$ref": "#/definitions/RequestOptions" + }, + "maxChunkSize": { + "title": "Maximum Chunk Size", + "description": "The maximum number of tokens that each chunk of a document is allowed to have", + "type": "integer", + "minimum": 128, + "exclusiveMaximum": 2147483647 + } }, - "required": ["modelTitle"] - } - } - } - }, - { - "if": { - "properties": { - "name": { - "enum": ["voyage"] - } - }, - "required": ["name"] - }, - "then": { - "properties": { - "params": { + "required": [ + "provider" + ], + "allOf": [ + { + "if": { + "properties": { + "provider": { + "enum": [ + "cohere" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "required": [ + "apiKey" + ] + } + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "gemini" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "required": [ + "apiKey" + ] + } + } + ] + }, + "reranker": { + "title": "Reranker", + "markdownDescription": "The reranker is responsible for selecting the final results when retrieving snippets from your codebase.", "type": "object", "properties": { - "apiKey": { - "type": "string" - }, - "model": { - "enum": ["rerank-lite-1"] - } + "name": { + "enum": [ + "cohere", + "voyage", + "llm", + "free-trial" + ] + }, + "params": { + "type": "object" + } }, - "required": ["apiKey"] - } - } - } - } - ] - }, - "tabAutocompleteModel": { - "title": "Tab Autocomplete Model", - "markdownDescription": "The model used for tab autocompletion. If undefined, Continue will default to using starcoder2:3b on a local Ollama instance.\n\n*IMPORTANT*:\n\nIf you use a custom model, ensure that it is one trained for fill-in-the-middle completions. An instruct model is typically not well-suited to autocomplete and you may receive unsatisfactory completions.", - "default": { - "title": "Tab Autocomplete Model", - "provider": "ollama", - "model": "deepseek-coder:1.3b-base" - }, - "$ref": "#/definitions/ModelDescription" - }, - "tabAutocompleteOptions": { - "title": "TabAutocompleteOptions", - "type": "object", - "markdownDescription": "These options let you customize your tab-autocomplete experience. Read about all options in [the docs](https://continue.dev/docs/walkthroughs/tab-autocomplete#configuration-options).", - "properties": { - "disable": { - "type": "boolean", - "description": "Disable tab autocomplete. This can also be done from the IDE settings.", - "default": false - }, - "useCopyBuffer": { - "type": "boolean", - "description": "Determines whether the copy buffer will be considered when contructing the prompt." - }, - "useSuffix": { - "type": "boolean", - "description": "Determines whether to use the file suffix in the prompt." - }, - "maxPromptTokens": { - "type": "number", - "description": "The maximum number of prompt tokens to use. A smaller number will yield faster completions, but less context." - }, - "debounceDelay": { - "type": "number", - "description": "The delay in milliseconds before triggering autocomplete after a keystroke." - }, - "maxSuffixPercentage": { - "type": "number", - "description": "The maximum percentage of the prompt that can be dedicated to the suffix." - }, - "prefixPercentage": { - "type": "number", - "description": "The percentage of the input that should be dedicated to the prefix." - }, - "template": { - "type": "string", - "description": "An optional template string to be used for autocomplete. It will be rendered with the Mustache templating language, and is passed the 'prefix' and 'suffix' variables." - }, - "multilineCompletions": { - "enum": ["always", "never", "auto"], - "description": "If set to true, Continue will only complete a single line at a time." - }, - "useCache": { - "type": "boolean", - "description": "Whether to cache completions" - }, - "onlyMyCode": { - "type": "boolean", - "description": "If set to true, Continue will not include any snippets from go to definition unless they are within your repository" - }, - "useOtherFiles": { - "type": "boolean", - "description": "Defaults to true. If set to false, Continue will not attempt to include snippets from other files." - } - }, - "required": [] - }, - "ui": { - "type": "object", - "properties": { - "codeBlockToolbarPosition": { - "enum": ["top", "bottom"], - "default": "top", - "description": "Whether to show the copy and apply code buttons at the top or bottom of code blocks in the sidebar." - } - } - }, - "experimental": { - "type": "object", - "title": "Experimental", - "description": "Experimental properties are subject to change.", - "properties": { - "contextMenuPrompts": { - "type": "object", - "properties": { - "comment": { - "type": "string", - "default": "Write comments for this code. Do not change anything about the code itself." - }, - "docstring": { - "type": "string", - "default": "Write a docstring for this code. Do not change anything about the code itself." - }, - "fix": { - "type": "string", - "default": "Fix this code" - }, - "optimize": { - "type": "string", - "default": "Optimize this code" - }, - "fixGrammar": { - "type": "string", - "default": "If there are any grammar or spelling mistakes in this writing, fix them. Do not make other large changes to the writing." + "required": [ + "name" + ], + "allOf": [ + { + "if": { + "properties": { + "name": { + "enum": [ + "cohere" + ] + } + }, + "required": [ + "name" + ] + }, + "then": { + "properties": { + "params": { + "type": "object", + "properties": { + "model": { + "enum": [ + "rerank-english-v3.0", + "rerank-multilingual-v3.0", + "rerank-english-v2.0", + "rerank-multilingual-v2.0" + ] + }, + "apiBase": { + "type": "string" + }, + "apiKey": { + "type": "string" + } + }, + "required": [ + "apiKey" + ] + } + } + } + }, + { + "if": { + "properties": { + "name": { + "enum": [ + "llm" + ] + } + }, + "required": [ + "name" + ] + }, + "then": { + "properties": { + "params": { + "type": "object", + "properties": { + "modelTitle": { + "type": "string" + } + }, + "required": [ + "modelTitle" + ] + } + } + } + }, + { + "if": { + "properties": { + "name": { + "enum": [ + "voyage" + ] + } + }, + "required": [ + "name" + ] + }, + "then": { + "properties": { + "params": { + "type": "object", + "properties": { + "apiKey": { + "type": "string" + }, + "model": { + "enum": [ + "rerank-lite-1", + "rerank-1" + ] + } + }, + "required": [ + "apiKey" + ] + } + } + } + } + ] + }, + "tabAutocompleteModel": { + "title": "Tab Autocomplete Model", + "markdownDescription": "The model used for tab autocompletion. If undefined, Continue will default to using starcoder2:3b on a local Ollama instance.\n\n*IMPORTANT*:\n\nIf you use a custom model, ensure that it is one trained for fill-in-the-middle completions. An instruct model is typically not well-suited to autocomplete and you may receive unsatisfactory completions.", + "default": { + "title": "Tab Autocomplete Model", + "provider": "ollama", + "model": "deepseek-coder:1.3b-base" + }, + "oneOf": [ + { + "$ref": "#/definitions/ModelDescription" + }, + { + "type": "array", + "items": { + "$ref": "#/definitions/ModelDescription" + } + } + ] + }, + "tabAutocompleteOptions": { + "title": "TabAutocompleteOptions", + "type": "object", + "markdownDescription": "These options let you customize your tab-autocomplete experience. Read about all options in [the docs](https://docs.continue.dev/walkthroughs/tab-autocomplete#configuration-options).", + "properties": { + "disable": { + "type": "boolean", + "description": "Disable tab autocomplete. This can also be done from the IDE settings.", + "default": false + }, + "useCopyBuffer": { + "type": "boolean", + "description": "Determines whether the copy buffer will be considered when contructing the prompt." + }, + "useFileSuffix": { + "type": "boolean", + "description": "Determines whether to use the file suffix in the prompt." + }, + "maxPromptTokens": { + "type": "number", + "description": "The maximum number of prompt tokens to use. A smaller number will yield faster completions, but less context." + }, + "debounceDelay": { + "type": "number", + "description": "The delay in milliseconds before triggering autocomplete after a keystroke." + }, + "maxSuffixPercentage": { + "type": "number", + "description": "The maximum percentage of the prompt that can be dedicated to the suffix." + }, + "prefixPercentage": { + "type": "number", + "description": "The percentage of the input that should be dedicated to the prefix." + }, + "template": { + "type": "string", + "description": "An optional template string to be used for autocomplete. It will be rendered with the Mustache templating language, and is passed the 'prefix' and 'suffix' variables." + }, + "multilineCompletions": { + "enum": [ + "always", + "never", + "auto" + ], + "description": "If set to true, Continue will only complete a single line at a time." + }, + "useCache": { + "type": "boolean", + "description": "Whether to cache completions" + }, + "onlyMyCode": { + "type": "boolean", + "description": "If set to true, Continue will not include any snippets from go to definition unless they are within your repository" + }, + "useOtherFiles": { + "type": "boolean", + "description": "Defaults to true. If set to false, Continue will not attempt to include snippets from other files." + }, + "disableInFiles": { + "description": "A list of files / glob patterns in which to disable tab autocomplete. For example, *.csv if you'd like to disable autocomplete in .csv files.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [] + }, + "ui": { + "type": "object", + "properties": { + "codeBlockToolbarPosition": { + "enum": [ + "top", + "bottom" + ], + "default": "top", + "description": "Whether to show the copy and apply code buttons at the top or bottom of code blocks in the sidebar." + }, + "fontSize": { + "type": "number" + }, + "displayRawMarkdown": { + "type": "boolean", + "description": "If set to true, we will display the model output as raw markdown.", + "default": false + } + } + }, + "experimental": { + "type": "object", + "title": "Experimental", + "description": "Experimental properties are subject to change.", + "properties": { + "defaultContext": { + "type": "array", + "items": { + "enum": [ + "activeFile" + ] + } + }, + "modelRoles": { + "type": "object", + "properties": { + "inlineEdit": { + "type": "string" + } + } + }, + "promptPath": { + "type": "string" + }, + "quickActions": { + "type": "array", + "items": { + "type": "object", + "properties": { + "title": { + "type": "string", + "description": "The title of the quick action that will display in the Code Lens." + }, + "prompt": { + "type": "string", + "description": "The prompt that will be sent to the model when the quick action is invoked, with the function or class body concatenated." + }, + "sendToChat": { + "type": "boolean", + "description": "If true, the result of the quick action will be sent to the chat panel. If false, the streamed result will be inserted into the document.", + "default": false + } + }, + "required": [ + "prompt", + "title" + ] + }, + "description": "Quick actions are a way to add custom commands to the Code Lens of function and class declarations." + }, + "contextMenuPrompts": { + "type": "object", + "properties": { + "comment": { + "type": "string", + "default": "Write comments for this code. Do not change anything about the code itself." + }, + "docstring": { + "type": "string", + "default": "Write a docstring for this code. Do not change anything about the code itself." + }, + "fix": { + "type": "string", + "default": "Fix this code" + }, + "optimize": { + "type": "string", + "default": "Optimize this code" + }, + "fixGrammar": { + "type": "string", + "default": "If there are any grammar or spelling mistakes in this writing, fix them. Do not make other large changes to the writing." + } + } + } + } } - } } - } } - } } - } -} +} \ No newline at end of file diff --git a/extensions/intellij/.idea/.name b/extensions/intellij/.idea/.name new file mode 100644 index 000000000..c0d78d1d5 --- /dev/null +++ b/extensions/intellij/.idea/.name @@ -0,0 +1 @@ +Continue IntelliJ Extension \ No newline at end of file diff --git a/extensions/intellij/.idea/compiler.xml b/extensions/intellij/.idea/compiler.xml new file mode 100644 index 000000000..b589d56e9 --- /dev/null +++ b/extensions/intellij/.idea/compiler.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/extensions/intellij/.idea/gradle.xml b/extensions/intellij/.idea/gradle.xml new file mode 100644 index 000000000..ce1c62c7c --- /dev/null +++ b/extensions/intellij/.idea/gradle.xml @@ -0,0 +1,16 @@ + + + + + + + \ No newline at end of file diff --git a/extensions/intellij/.idea/jarRepositories.xml b/extensions/intellij/.idea/jarRepositories.xml new file mode 100644 index 000000000..fdc392fe8 --- /dev/null +++ b/extensions/intellij/.idea/jarRepositories.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/extensions/intellij/.idea/kotlinc.xml b/extensions/intellij/.idea/kotlinc.xml new file mode 100644 index 000000000..fdf8d994a --- /dev/null +++ b/extensions/intellij/.idea/kotlinc.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/extensions/intellij/.idea/misc.xml b/extensions/intellij/.idea/misc.xml new file mode 100644 index 000000000..9676474e1 --- /dev/null +++ b/extensions/intellij/.idea/misc.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/extensions/intellij/.idea/vcs.xml b/extensions/intellij/.idea/vcs.xml new file mode 100644 index 000000000..b2bdec2d7 --- /dev/null +++ b/extensions/intellij/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/extensions/intellij/CHANGELOG.md b/extensions/intellij/CHANGELOG.md index e014cbbc4..7117d9693 100644 --- a/extensions/intellij/CHANGELOG.md +++ b/extensions/intellij/CHANGELOG.md @@ -1,38 +1,52 @@ -# Changelog All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html), and is generated by [Changie](https://github.com/miniscruff/changie). - ## 0.0.42 - 2024-04-12 + ### Added -* Inline cmd/ctrl+I in JetBrains + +- Inline cmd/ctrl+I in JetBrains + ### Fixed -* Fixed character encoding error causing display issues -* Fixed error causing input to constantly demand focus -* Fixed automatic reloading of config.json + +- Fixed character encoding error causing display issues +- Fixed error causing input to constantly demand focus +- Fixed automatic reloading of config.json ## 0.0.38 - 2024-03-15 + ### Added -* Remote config server support -* Autocomplete support in JetBrains + +- Remote config server support +- Autocomplete support in JetBrains ## 0.0.34 - 2024-03-03 + ### Added -* diff context provider + +- diff context provider + ### Changed -* Allow LLM servers to handle templating + +- Allow LLM servers to handle templating + ### Fixed -* Fix a few context providers / slash commands -* Fixed issues preventing proper extension startup + +- Fix a few context providers / slash commands +- Fixed issues preventing proper extension startup ## v0.0.26 - 2023-12-28 + ### Added -* auto-reloading of config on save + +- auto-reloading of config on save + ### Fixed -* Fixed /edit bug for versions without Python server + +- Fixed /edit bug for versions without Python server ## v0.0.25 - 2023-12-25 diff --git a/extensions/intellij/README.md b/extensions/intellij/README.md index 5603bf6a9..9e5a95432 100644 --- a/extensions/intellij/README.md +++ b/extensions/intellij/README.md @@ -1,35 +1,51 @@ -**[Continue](https://continue.dev/docs) is the open-source autopilot for software development—an extension that brings the power of ChatGPT to your IDE** +![readme](media/readme.png) -### Get possible explanations +

Continue

-Highlight + select code sections and ask a question to get another perspective +
-- “how can I set up a Prisma schema that cascades deletes?” -- “where in the page should I be making this request to the backend?” -- “how can I communicate between these iframes?” +**[Continue](https://docs.continue.dev) is the leading open-source AI code assistant. You can connect any models and any context to build custom autocomplete and chat experiences inside [VS Code](https://marketplace.visualstudio.com/items?itemName=Continue.continue) and [JetBrains](https://plugins.jetbrains.com/plugin/22707-continue-extension)** -### Edit in natural language +
-Highlight + select a section of code and instruct Continue to refactor it +
-- “/edit migrate this digital ocean terraform file into one that works for GCP” -- “/edit change this plot into a bar chart in this dashboard component” -- “/edit rewrite this function to be async” +## Easily understand code sections -### Generate files from scratch +![understand](docs/static/img/understand.gif) -Open a blank file and let Continue start new Python scripts, React components, etc. +`cmd+J` (MacOS) / `ctrl+J` (Windows) -- “/edit here is a connector for postgres, now write one for kafka” -- “/edit make an IAM policy that creates a user with read-only access to S3” -- “/edit use this schema to write me a SQL query that gets recently churned users” +## Tab to autocomplete code suggestions + +![autocomplete](docs/static/img/autocomplete.gif) + +`tab` (MacOS) / `tab` (Windows) + +## Refactor functions where you are coding + +![inline](docs/static/img/inline.gif) + +`cmd+I` (MacOS) / `ctrl+I` (Windows) + +## Quickly use documentation as context + +![docs](docs/static/img/docs.gif) + +`@docs` (MacOS) / `@docs` (Windows) + +
## Getting Started -You can try out Continue for free using a proxy server that securely makes calls with our API key to models like GPT-4, Gemini Pro, and Phind CodeLlama via OpenAI, Google, and Together respectively. +You can try out Continue with our free trial models before configuring your setup. + +Learn more about the models and providers [here](https://continue.dev/docs/setup/overview). + +## License -Once you're ready to use your own API key or a different model / provider, press the `+` button in the bottom left to add a new model to your `config.json`. Learn more about the models and providers [here](https://continue.dev/docs/model-setup/overview). +[Apache 2.0 © 2023 Continue Dev, Inc.](./LICENSE) diff --git a/extensions/intellij/build.gradle.kts b/extensions/intellij/build.gradle.kts index d801ee4b4..e3eba0461 100644 --- a/extensions/intellij/build.gradle.kts +++ b/extensions/intellij/build.gradle.kts @@ -137,7 +137,7 @@ tasks { } publishPlugin { - dependsOn("patchChangelog") +// dependsOn("patchChangelog") token = environment("PUBLISH_TOKEN") // The pluginVersion is based on the SemVer (https://semver.org) and supports pre-release labels, like 2.1.7-alpha.3 // Specify pre-release label to publish the plugin in a custom Release Channel automatically. Read more: diff --git a/extensions/intellij/gradle.properties b/extensions/intellij/gradle.properties index fc276a336..755cf55ff 100644 --- a/extensions/intellij/gradle.properties +++ b/extensions/intellij/gradle.properties @@ -4,7 +4,7 @@ pluginGroup = com.github.continuedev.continueintellijextension pluginName = continue-intellij-extension pluginRepositoryUrl = https://github.com/continuedev/continue # SemVer format -> https://semver.org -pluginVersion = 0.0.42 +pluginVersion = 0.0.54 # Supported build number ranges and IntelliJ Platform versions -> https://plugins.jetbrains.com/docs/intellij/build-number-ranges.html pluginSinceBuild = 223 diff --git a/extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/actions/ContinuePluginActions.kt b/extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/actions/ContinuePluginActions.kt index ee325ba89..db7df5b54 100644 --- a/extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/actions/ContinuePluginActions.kt +++ b/extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/actions/ContinuePluginActions.kt @@ -172,22 +172,7 @@ class ViewLogsAction : AnAction() { } } -class ToggleAuxiliaryBarAction : AnAction() { - override fun actionPerformed(e: AnActionEvent) { - val project = e.project ?: return - val toolWindowManager = ToolWindowManager.getInstance(project) - val toolWindow = toolWindowManager.getToolWindow("Continue") - - if (toolWindow != null) { - if (toolWindow.isVisible) { - toolWindow.component.transferFocus() - toolWindow.hide(null) - } else { - toolWindow.activate(null) - } - } - } -} + class FocusContinueInputWithoutClearAction : AnAction() { override fun actionPerformed(e: AnActionEvent) { diff --git a/extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/activities/ContinuePluginStartupActivity.kt b/extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/activities/ContinuePluginStartupActivity.kt index 23b1ac8c0..4a785a4d8 100644 --- a/extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/activities/ContinuePluginStartupActivity.kt +++ b/extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/activities/ContinuePluginStartupActivity.kt @@ -16,14 +16,9 @@ import com.intellij.openapi.keymap.KeymapManager import com.intellij.openapi.project.DumbAware import com.intellij.openapi.project.Project import com.intellij.openapi.startup.StartupActivity -import com.intellij.openapi.ui.DialogWrapper import com.intellij.openapi.util.io.StreamUtil import com.intellij.openapi.vfs.LocalFileSystem -import com.intellij.openapi.wm.ToolWindowManager import kotlinx.coroutines.* -import java.awt.Dimension -import java.awt.Font -import java.awt.GridLayout import java.io.* import java.nio.charset.StandardCharsets import java.nio.file.Files @@ -32,52 +27,6 @@ import javax.swing.* import com.intellij.ide.plugins.PluginManager import com.intellij.openapi.extensions.PluginId -class WelcomeDialogWrapper(val project: Project) : DialogWrapper(true) { - private var panel: JPanel? = null - private var paragraph: JTextArea? = null - - init { - init() - title = "Welcome to Continue" - } - - override fun doOKAction() { - super.doOKAction() - val toolWindowManager = ToolWindowManager.getInstance(project) - val toolWindow = - toolWindowManager.getToolWindow("Continue") - toolWindow?.show() - } - - override fun createCenterPanel(): JComponent? { - panel = JPanel(GridLayout(0, 1)) - panel!!.preferredSize = Dimension(500, panel!!.preferredSize.height) - val paragraph = JLabel() - val shortcutKey = if (System.getProperty("os.name").toLowerCase().contains("mac")) "⌘" else "⌃" - paragraph.text = """ - Welcome! You can access Continue from the right side panel by clicking on the logo.

- - To ask a question about a piece of code: highlight it, use $shortcutKey J to select the code and focus the input box, then ask your question.

- To generate an inline edit: highlight the code you want to edit, use $shortcutKey ⇧ J, then type your requested edit.""".trimIndent() - - paragraph.font = Font("Arial", Font.PLAIN, 16) - - panel!!.add(paragraph) - - return panel - } - - override fun createActions(): Array { - val okAction = getOKAction() - okAction.putValue(Action.NAME, "Open Continue") - - val cancelAction = getCancelAction() - cancelAction.putValue(Action.NAME, "Cancel") - - return arrayOf(okAction, cancelAction) - } -} - fun showTutorial(project: Project) { ContinuePluginStartupActivity::class.java.getClassLoader().getResourceAsStream("continue_tutorial.py").use { `is` -> if (`is` == null) { @@ -124,7 +73,12 @@ class ContinuePluginStartupActivity : StartupActivity, Disposable, DumbAware { val keyStroke = KeyStroke.getKeyStroke(shortcut) val actionIds = keymap.getActionIds(keyStroke) - for (actionId in actionIds) { + // If Continue has been re-assigned to another key, don't remove the shortcut + if (!actionIds.any { it.startsWith("continue") }) { + return + } + + for (actionId in actionIds) { if (actionId.startsWith("continue")) { continue } @@ -134,7 +88,7 @@ class ContinuePluginStartupActivity : StartupActivity, Disposable, DumbAware { keymap.removeShortcut(actionId, shortcut) } } - } + } } private fun initializePlugin(project: Project) { @@ -143,8 +97,6 @@ class ContinuePluginStartupActivity : StartupActivity, Disposable, DumbAware { ContinuePluginService::class.java ) - val theme = GetTheme().getTheme() - val defaultStrategy = DefaultTextSelectionStrategy() coroutineScope.launch { @@ -154,13 +106,6 @@ class ContinuePluginStartupActivity : StartupActivity, Disposable, DumbAware { settings.continueState.shownWelcomeDialog = true // Open continue_tutorial.py showTutorial(project) - - // Show the welcome dialog -// withContext(Dispatchers.Main) { -// val dialog = WelcomeDialogWrapper(project) -// dialog.show() -// } -// settings.continueState.shownWelcomeDialog = true } val ideProtocolClient = IdeProtocolClient( @@ -173,8 +118,6 @@ class ContinuePluginStartupActivity : StartupActivity, Disposable, DumbAware { continuePluginService.ideProtocolClient = ideProtocolClient - - // Listen to changes to settings so the core can reload remote configuration val connection = ApplicationManager.getApplication().messageBus.connect() connection.subscribe(SettingsListener.TOPIC, object : SettingsListener { @@ -202,12 +145,6 @@ class ContinuePluginStartupActivity : StartupActivity, Disposable, DumbAware { listener, this@ContinuePluginStartupActivity ) - - try { - startProxyServer() - } catch (e: Exception) { - println(e) - } } GlobalScope.async(Dispatchers.IO) { @@ -253,7 +190,7 @@ class ContinuePluginStartupActivity : StartupActivity, Disposable, DumbAware { // esbuild needs permissions val esbuildPath = Paths.get(targetPath, "esbuild"+ (if (os == "win32") ".exe" else "")).toString() - val coreMessenger = CoreMessenger(project, esbuildPath, continueCorePath, ideProtocolClient); + val coreMessenger = CoreMessenger(project, esbuildPath, continueCorePath, ideProtocolClient) continuePluginService.coreMessenger = coreMessenger } } diff --git a/extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/autocomplete/AcceptAutocompleteAction.kt b/extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/autocomplete/AcceptAutocompleteAction.kt index c7336eee1..cb9b2994d 100644 --- a/extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/autocomplete/AcceptAutocompleteAction.kt +++ b/extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/autocomplete/AcceptAutocompleteAction.kt @@ -18,7 +18,7 @@ class AcceptAutocompleteAction: EditorAction(object : EditorActionHandler() { override fun isEnabledForCaret(editor: Editor, caret: Caret, dataContext: DataContext?): Boolean { val autocompleteService = editor.project?.service(); val enabled = editor == autocompleteService?.pendingCompletion?.editor - && caret.offset == autocompleteService.pendingCompletion?.offset +// && caret.offset == autocompleteService.pendingCompletion?.offset && autocompleteService.pendingCompletion?.text != null return enabled } diff --git a/extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/autocomplete/AutocompleteActionGroup.kt b/extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/autocomplete/AutocompleteActionGroup.kt new file mode 100644 index 000000000..bae9a8fe0 --- /dev/null +++ b/extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/autocomplete/AutocompleteActionGroup.kt @@ -0,0 +1,29 @@ +package com.github.continuedev.continueintellijextension.autocomplete + +import com.github.continuedev.continueintellijextension.services.ContinueExtensionSettings +import com.intellij.openapi.actionSystem.ActionUpdateThread +import com.intellij.openapi.actionSystem.AnActionEvent +import com.intellij.openapi.actionSystem.DefaultActionGroup +import com.intellij.openapi.components.service + +class AutocompleteActionGroup : DefaultActionGroup() { + override fun getActionUpdateThread(): ActionUpdateThread { + return ActionUpdateThread.EDT + } + + override fun update(e: AnActionEvent) { + super.update(e) + removeAll() + + val continueSettingsService = service() + if (continueSettingsService.continueState.enableTabAutocomplete) { + addAll( + DisableTabAutocompleteAction(), + ) + } else { + addAll( + EnableTabAutocompleteAction(), + ) + } + } +} \ No newline at end of file diff --git a/extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/autocomplete/AutocompleteEditorListener.kt b/extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/autocomplete/AutocompleteEditorListener.kt index f0d37ea25..a2ef465a3 100644 --- a/extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/autocomplete/AutocompleteEditorListener.kt +++ b/extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/autocomplete/AutocompleteEditorListener.kt @@ -12,10 +12,15 @@ import com.intellij.openapi.util.TextRange class AutocompleteCaretListener: CaretListener { override fun caretPositionChanged(event: CaretEvent) { val caret = event.caret ?: return - val oldPosition = event.oldPosition val offset = caret.offset val editor = caret.editor val autocompleteService = editor.project?.service() ?: return + + if (autocompleteService.lastChangeWasPartialAccept) { + autocompleteService.lastChangeWasPartialAccept = false + return + } + val pending = autocompleteService.pendingCompletion; if (pending != null && pending.editor == editor && pending.offset == offset) { return @@ -29,10 +34,16 @@ class AutocompleteDocumentListener(private val editorManager: FileEditorManager, if (editor != editorManager.selectedTextEditor) { return } + + val service = editor.project?.service() ?: return + if (service.lastChangeWasPartialAccept) { + return + } + // Invoke later is important, otherwise the completion will be triggered before the document is updated // causing the old caret offset to be used invokeLater { - editor.project?.service()?.triggerCompletion(editor) + service.triggerCompletion(editor) } } } @@ -42,7 +53,7 @@ class AutocompleteEditorListener: EditorFactoryListener { override fun editorCreated(event: EditorFactoryEvent) { val editor = event.editor val project = editor.project ?: return - val editorManager = project.let { FileEditorManager.getInstance(it) } + val editorManager = project.let { FileEditorManager.getInstance(it) } ?: return val completionProvider = project.service() // Listen to changes to mouse position diff --git a/extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/autocomplete/AutocompleteLookupListener.kt b/extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/autocomplete/AutocompleteLookupListener.kt new file mode 100644 index 000000000..a59169ea2 --- /dev/null +++ b/extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/autocomplete/AutocompleteLookupListener.kt @@ -0,0 +1,48 @@ +package com.github.continuedev.continueintellijextension.autocomplete + +import com.intellij.codeInsight.lookup.impl.LookupImpl +import com.intellij.codeInsight.lookup.Lookup +import com.intellij.codeInsight.lookup.LookupEvent +import com.intellij.codeInsight.lookup.LookupListener +import com.intellij.codeInsight.lookup.LookupManagerListener +import com.intellij.openapi.application.ApplicationManager +import com.intellij.openapi.components.Service +import com.intellij.openapi.components.service +import com.intellij.openapi.project.Project +import java.util.concurrent.atomic.AtomicBoolean + +@Service(Service.Level.PROJECT) +class AutocompleteLookupListener(project: Project) : LookupManagerListener { + private val isLookupShown = AtomicBoolean(true) + + fun isLookupEmpty(): Boolean { + return isLookupShown.get() + } + + init { + project.messageBus.connect().subscribe(LookupManagerListener.TOPIC, this) + } + + override fun activeLookupChanged(oldLookup: Lookup?, newLookup: Lookup?) { + val newEditor = newLookup?.editor ?: return + if (newLookup is LookupImpl) { + newLookup.addLookupListener( + object : LookupListener { + override fun lookupShown(event: LookupEvent) { + super.lookupShown(event) + ApplicationManager.getApplication().invokeLater { + isLookupShown.set(false) + event.lookup.editor.project?.service()?.hideCompletions(newEditor) + } + } + + override fun lookupCanceled(event: LookupEvent) { + super.lookupCanceled(event) + ApplicationManager.getApplication().invokeLater { + isLookupShown.set(true) + } + } + }) + } + } +} \ No newline at end of file diff --git a/extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/autocomplete/AutocompleteService.kt b/extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/autocomplete/AutocompleteService.kt index 4c06ebcf0..8731f7cac 100644 --- a/extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/autocomplete/AutocompleteService.kt +++ b/extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/autocomplete/AutocompleteService.kt @@ -14,17 +14,29 @@ import com.intellij.openapi.editor.Editor import com.intellij.openapi.editor.InlayProperties import com.intellij.openapi.fileEditor.FileDocumentManager import com.intellij.openapi.project.Project +import com.intellij.openapi.wm.WindowManager data class PendingCompletion ( - val editor: Editor, - val offset: Int, - val completionId: String, - val text: String? + val editor: Editor, + var offset: Int, + val completionId: String, + var text: String? ) @Service(Service.Level.PROJECT) class AutocompleteService(private val project: Project) { var pendingCompletion: PendingCompletion? = null; + private val autocompleteLookupListener = project.service() + private var widget: AutocompleteSpinnerWidget? = null + + // To avoid triggering another completion on partial acceptance, + // we need to keep track of whether the last change was a partial accept + var lastChangeWasPartialAccept = false + + init { + val statusBar = WindowManager.getInstance().getStatusBar(project) + widget = statusBar.getWidget("AutocompleteSpinnerWidget") as? AutocompleteSpinnerWidget + } fun triggerCompletion(editor: Editor) { val settings = @@ -41,6 +53,7 @@ class AutocompleteService(private val project: Project) { val completionId = uuid() val offset = editor.caretModel.primaryCaret.offset pendingCompletion = PendingCompletion(editor, offset, completionId, null) + widget?.setLoading(true) // Request a completion from the core val virtualFile = FileDocumentManager.getInstance().getFile(editor.document) @@ -62,11 +75,13 @@ class AutocompleteService(private val project: Project) { val lineLength = lineEnd - lineStart project.service().coreMessenger?.request("autocomplete/complete", input, null, ({ response -> - val completions = Gson().fromJson(response, List::class.java) + widget?.setLoading(false) + + val completions = response as List<*> if (completions.isNotEmpty()) { val completion = completions[0].toString() - if (completion.lines().size === 1 || column >= lineLength) { + if (completion.isNotEmpty() && (completion.lines().size === 1 || column >= lineLength)) { // Do not render if completion is multi-line and caret is in middle of line renderCompletion(editor, offset, completion) pendingCompletion = pendingCompletion?.copy(text = completion) @@ -79,8 +94,18 @@ class AutocompleteService(private val project: Project) { } private fun renderCompletion(editor: Editor, offset: Int, text: String) { + if (text.isEmpty()) { + return + } + // Don't render completions when code completion dropdown is visible + if (!autocompleteLookupListener.isLookupEmpty()) { + return + } ApplicationManager.getApplication().invokeLater { WriteAction.run { + // Clear existing completions + hideCompletions(editor) + val properties = InlayProperties() properties.relatesToPrecedingText(true) properties.disableSoftWrapping(true) @@ -115,8 +140,57 @@ class AutocompleteService(private val project: Project) { } } + private fun splitKeepingDelimiters(input: String, delimiterPattern: String = "\\s+"): List { + val initialSplit = input.split("(?<=$delimiterPattern)|(?=$delimiterPattern)".toRegex()) + .filter { it.isNotEmpty() } + + val result = mutableListOf() + var currentDelimiter = "" + + for (part in initialSplit) { + if (part.matches(delimiterPattern.toRegex())) { + currentDelimiter += part + } else { + if (currentDelimiter.isNotEmpty()) { + result.add(currentDelimiter) + currentDelimiter = "" + } + result.add(part) + } + } + + if (currentDelimiter.isNotEmpty()) { + result.add(currentDelimiter) + } + + return result +} + + fun partialAccept() { + val completion = pendingCompletion ?: return + val text = completion.text ?: return + val editor = completion.editor + val offset = completion.offset + + lastChangeWasPartialAccept = true + + // Split the text into words, keeping delimiters + val words = splitKeepingDelimiters(text) + println(words) + val word = words[0] + editor.document.insertString(offset, word) + editor.caretModel.moveToOffset(offset + word.length) + + // Remove the completion and re-display it + hideCompletions(editor) + completion.text = text.substring(word.length) + completion.offset += word.length + renderCompletion(editor, completion.offset, completion.text!!) + } + private fun cancelCompletion(completion: PendingCompletion) { // Send cancellation message to core + widget?.setLoading(false) project.service().coreMessenger?.request("autocomplete/cancel", null,null, ({})) } @@ -136,4 +210,17 @@ class AutocompleteService(private val project: Project) { } } } + + fun hideCompletions(editor: Editor) { + editor.inlayModel.getInlineElementsInRange(0, editor.document.textLength).forEach { + if (it.renderer is ContinueCustomElementRenderer) { + it.dispose() + } + } + editor.inlayModel.getBlockElementsInRange(0, editor.document.textLength).forEach { + if (it.renderer is ContinueMultilineCustomElementRenderer) { + it.dispose() + } + } + } } diff --git a/extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/autocomplete/AutocompleteSpinnerWidgetFactory.kt b/extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/autocomplete/AutocompleteSpinnerWidgetFactory.kt new file mode 100644 index 000000000..8408a4964 --- /dev/null +++ b/extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/autocomplete/AutocompleteSpinnerWidgetFactory.kt @@ -0,0 +1,111 @@ +package com.github.continuedev.continueintellijextension.autocomplete + +import com.github.continuedev.continueintellijextension.services.ContinueExtensionSettings +import com.intellij.openapi.Disposable +import com.intellij.openapi.components.service +import com.intellij.openapi.project.Project +import com.intellij.openapi.util.Disposer +import com.intellij.openapi.wm.StatusBar +import com.intellij.openapi.wm.StatusBarWidget +import com.intellij.openapi.util.IconLoader +import com.intellij.openapi.wm.StatusBarWidgetFactory +import com.intellij.openapi.wm.WindowManager +import com.intellij.openapi.wm.impl.status.EditorBasedWidget +import com.intellij.ui.AnimatedIcon +import com.intellij.util.Consumer +import java.awt.event.MouseEvent +import javax.swing.Icon +import javax.swing.JLabel + +class AutocompleteSpinnerWidget(project: Project): EditorBasedWidget(project), StatusBarWidget.IconPresentation, Disposable { + private val iconLabel = JLabel() + private var isLoading = false + + private val animatedIcon = AnimatedIcon( + 100, + IconLoader.getIcon("/icons/AnimationLoadingIcon/AnimationLoading1(RiderLight).svg", javaClass), + IconLoader.getIcon("/icons/AnimationLoadingIcon/AnimationLoading2(RiderLight).svg", javaClass), + IconLoader.getIcon("/icons/AnimationLoadingIcon/AnimationLoading3(RiderLight).svg", javaClass), + IconLoader.getIcon("/icons/AnimationLoadingIcon/AnimationLoading4(RiderLight).svg", javaClass), + IconLoader.getIcon("/icons/AnimationLoadingIcon/AnimationLoading5(RiderLight).svg", javaClass), + IconLoader.getIcon("/icons/AnimationLoadingIcon/AnimationLoading6(RiderLight).svg", javaClass), + IconLoader.getIcon("/icons/AnimationLoadingIcon/AnimationLoading7(RiderLight).svg", javaClass), + IconLoader.getIcon("/icons/AnimationLoadingIcon/AnimationLoading8(RiderLight).svg", javaClass), + ) + + init { + updateIcon() + } + + fun show() { + println("Showing autocomplete spinner widget") + } + + override fun dispose() {} + + override fun ID(): String { + return "AutocompleteSpinnerWidget" + } + + override fun getTooltipText(): String? { + val enabled = service().state.enableTabAutocomplete + return if (enabled) "Continue Autocomplete Enabled" else "Continue Autocomplete Disabled" + } + + override fun getClickConsumer(): Consumer? { + return null + } + + override fun getIcon(): Icon = if (isLoading) animatedIcon else + IconLoader.getIcon("/icons/continue.svg", javaClass) + + fun setLoading(loading: Boolean) { + isLoading = loading + updateIcon() + } + + private fun updateIcon() { + iconLabel.icon = getIcon() + + + // Update the widget + val statusBar = WindowManager.getInstance().getStatusBar(project) + statusBar.updateWidget(ID()) + } + + override fun install(statusBar: StatusBar) { + updateIcon() + } + + override fun getPresentation(): StatusBarWidget.WidgetPresentation? { + return this + } +} + +class AutocompleteSpinnerWidgetFactory: StatusBarWidgetFactory { + fun create(project: Project): AutocompleteSpinnerWidget { + return AutocompleteSpinnerWidget(project) + } + + override fun getId(): String { + return "AutocompleteSpinnerWidget" + } + + override fun getDisplayName(): String { + return "Continue Autocomplete" + } + + override fun isAvailable(p0: Project): Boolean { + return true + } + + override fun createWidget(project: Project): StatusBarWidget { + return AutocompleteSpinnerWidget(project) + } + + override fun disposeWidget(p0: StatusBarWidget) { + Disposer.dispose(p0) + } + + override fun canBeEnabledOn(p0: StatusBar): Boolean = true +} \ No newline at end of file diff --git a/extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/autocomplete/ContinueCustomElementRenderer.kt b/extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/autocomplete/ContinueCustomElementRenderer.kt index 3a501971e..b151238c3 100644 --- a/extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/autocomplete/ContinueCustomElementRenderer.kt +++ b/extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/autocomplete/ContinueCustomElementRenderer.kt @@ -7,9 +7,8 @@ import com.intellij.openapi.editor.colors.EditorFontType import com.intellij.openapi.editor.impl.EditorImpl import com.intellij.openapi.editor.impl.FontInfo import com.intellij.openapi.editor.markup.TextAttributes -import com.intellij.ui.Gray import com.intellij.ui.JBColor -import java.awt.Color +import com.intellij.util.ui.UIUtil import java.awt.Font import java.awt.Graphics import java.awt.Rectangle @@ -20,27 +19,27 @@ class ContinueCustomElementRenderer ( val text: String, ) : EditorCustomElementRenderer { override fun calcWidthInPixels(inlay: Inlay<*>): Int { - return (inlay.editor as EditorImpl).getFontMetrics(Font.PLAIN).stringWidth(this.text) + val width = (inlay.editor as EditorImpl).getFontMetrics(Font.PLAIN).stringWidth(this.text) + return width } - protected val font: Font - get() { - val editorFont = editor.colorsScheme.getFont(EditorFontType.PLAIN) - return editorFont.deriveFont(Font.ITALIC) ?: editorFont - } + private fun font(editor: Editor): Font { + val editorFont = editor.colorsScheme.getFont(EditorFontType.PLAIN) + return UIUtil.getFontWithFallbackIfNeeded(editorFont, text).deriveFont(editor.colorsScheme.editorFontSize) + } - private fun offsetY(): Int { + private fun offsetY(editor: Editor): Int { val metrics = - FontInfo.getFontMetrics(font, FontInfo.getFontRenderContext(editor.contentComponent)) + FontInfo.getFontMetrics(font(editor), FontInfo.getFontRenderContext(editor.contentComponent)) val fontHeight = - font.createGlyphVector(metrics.fontRenderContext, text).visualBounds.height + font(editor).createGlyphVector(metrics.fontRenderContext, text).visualBounds.height val height = (editor.lineHeight + fontHeight) / 2 return ceil(height).toInt() } override fun paint(inlay: Inlay<*>, g: Graphics, targetRegion: Rectangle, textAttributes: TextAttributes) { g.color = JBColor.GRAY - g.font = font - g.drawString(this.text, targetRegion.x, targetRegion.y + offsetY()) + g.font = font(inlay.editor) + g.drawString(this.text, targetRegion.x, targetRegion.y + inlay.editor.ascent) } } \ No newline at end of file diff --git a/extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/autocomplete/ContinueMultilineCustomElementRenderer.kt b/extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/autocomplete/ContinueMultilineCustomElementRenderer.kt index 4b69ea4dc..38ecb5766 100644 --- a/extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/autocomplete/ContinueMultilineCustomElementRenderer.kt +++ b/extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/autocomplete/ContinueMultilineCustomElementRenderer.kt @@ -7,9 +7,8 @@ import com.intellij.openapi.editor.colors.EditorFontType import com.intellij.openapi.editor.impl.EditorImpl import com.intellij.openapi.editor.impl.FontInfo import com.intellij.openapi.editor.markup.TextAttributes -import com.intellij.ui.Gray import com.intellij.ui.JBColor -import java.awt.Color +import com.intellij.util.ui.UIUtil import java.awt.Font import java.awt.Graphics import java.awt.Rectangle @@ -39,7 +38,7 @@ class ContinueMultilineCustomElementRenderer ( protected val font: Font get() { val editorFont = editor.colorsScheme.getFont(EditorFontType.PLAIN) - return editorFont.deriveFont(Font.ITALIC) ?: editorFont + return UIUtil.getFontWithFallbackIfNeeded(editorFont, text).deriveFont(editor.colorsScheme.editorFontSize) } private fun offsetY(): Int { @@ -58,7 +57,9 @@ class ContinueMultilineCustomElementRenderer ( FontInfo.getFontMetrics(font, FontInfo.getFontRenderContext(editor.contentComponent)) val fontWidth = font.createGlyphVector(metrics.fontRenderContext, text).visualBounds.width - val widthBeforeCaret = (editor as EditorImpl).getFontMetrics(Font.PLAIN).stringWidth(text.substring(0, currentColumn)) + val widthBeforeCaret = (editor as EditorImpl).getFontMetrics(Font.PLAIN).stringWidth( + text.substring(0, minOf(currentColumn, text.length)) + ) return max(0, widthBeforeCaret - (editor as EditorImpl).scrollingModel.horizontalScrollOffset) } @@ -68,7 +69,7 @@ class ContinueMultilineCustomElementRenderer ( var additionalYOffset = -editor.lineHeight; var isFirstLine = true for (line in text.lines()) { - g.drawString(line, if (isFirstLine) targetRegion.x + offsetX() else targetRegion.x, targetRegion.y + offsetY() + additionalYOffset) + g.drawString(line, if (isFirstLine) targetRegion.x + offsetX() else targetRegion.x, targetRegion.y + inlay.editor.ascent + additionalYOffset) additionalYOffset += editor.lineHeight isFirstLine = false } diff --git a/extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/autocomplete/DisableTabAutocompleteAction.kt b/extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/autocomplete/DisableTabAutocompleteAction.kt new file mode 100644 index 000000000..d7e1f3b13 --- /dev/null +++ b/extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/autocomplete/DisableTabAutocompleteAction.kt @@ -0,0 +1,12 @@ +package com.github.continuedev.continueintellijextension.autocomplete + +import com.github.continuedev.continueintellijextension.services.ContinueExtensionSettings +import com.intellij.openapi.actionSystem.AnAction +import com.intellij.openapi.actionSystem.AnActionEvent +import com.intellij.openapi.components.service +class DisableTabAutocompleteAction : AnAction() { + override fun actionPerformed(e: AnActionEvent) { + val continueSettingsService = service() + continueSettingsService.continueState.enableTabAutocomplete = true + } +} diff --git a/extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/autocomplete/EnableTabAutocompleteAction.kt b/extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/autocomplete/EnableTabAutocompleteAction.kt new file mode 100644 index 000000000..b14aa2190 --- /dev/null +++ b/extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/autocomplete/EnableTabAutocompleteAction.kt @@ -0,0 +1,12 @@ +package com.github.continuedev.continueintellijextension.autocomplete + +import com.github.continuedev.continueintellijextension.services.ContinueExtensionSettings +import com.intellij.openapi.actionSystem.AnAction +import com.intellij.openapi.actionSystem.AnActionEvent +import com.intellij.openapi.components.service +class EnableTabAutocompleteAction : AnAction() { + override fun actionPerformed(e: AnActionEvent) { + val continueSettingsService = service() + continueSettingsService.continueState.enableTabAutocomplete = true + } +} diff --git a/extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/autocomplete/PartialAcceptAutocompleteAction.kt b/extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/autocomplete/PartialAcceptAutocompleteAction.kt index 1cd223df9..93c94ee0a 100644 --- a/extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/autocomplete/PartialAcceptAutocompleteAction.kt +++ b/extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/autocomplete/PartialAcceptAutocompleteAction.kt @@ -11,8 +11,7 @@ import com.intellij.openapi.editor.actionSystem.EditorActionHandler class PartialAcceptAutocompleteAction: EditorAction(object : EditorActionHandler() { override fun doExecute(editor: Editor, caret: Caret?, dataContext: DataContext?) { ApplicationManager.getApplication().runWriteAction { - // TODO -// editor.project?.service()?.accept() + editor.project?.service()?.partialAccept() } } diff --git a/extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/constants/ServerConstants.kt b/extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/constants/ServerConstants.kt index f27514340..0fb203b57 100644 --- a/extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/constants/ServerConstants.kt +++ b/extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/constants/ServerConstants.kt @@ -31,29 +31,25 @@ const val DEFAULT_CONFIG = """ "slashCommands": [ { "name": "edit", - "description": "Edit highlighted code", - "step": "EditHighlightedCodeStep" + "description": "Edit highlighted code" }, { "name": "comment", - "description": "Write comments for the highlighted code", - "step": "CommentCodeStep" + "description": "Write comments for the highlighted code" }, { "name": "share", - "description": "Download and share this session", - "step": "ShareSessionStep" + "description": "Export the current chat session to markdown" }, { "name": "cmd", - "description": "Generate a shell command", - "step": "GenerateShellCommandStep" + "description": "Generate a shell command" } ], "customCommands": [ { "name": "test", - "prompt": "Write a comprehensive set of unit tests for the selected code. It should setup, run tests that check for correctness including important edge cases, and teardown. Ensure that the tests are complete and sophisticated. Give the tests just as chat output, don't edit any file.", + "prompt": "{{{ input }}}\n\nWrite a comprehensive set of unit tests for the selected code. It should setup, run tests that check for correctness including important edge cases, and teardown. Ensure that the tests are complete and sophisticated. Give the tests just as chat output, don't edit any file.", "description": "Write unit tests for highlighted code" } ], diff --git a/extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/continue/ConfigJsonSchemaProviderFactory.kt b/extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/continue/ConfigJsonSchemaProviderFactory.kt index 8357c3cf4..c29628636 100644 --- a/extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/continue/ConfigJsonSchemaProviderFactory.kt +++ b/extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/continue/ConfigJsonSchemaProviderFactory.kt @@ -22,7 +22,7 @@ class ConfigJsonSchemaProviderFactory : JsonSchemaProviderFactory { class ConfigJsonSchemaFileProvider : JsonSchemaFileProvider { override fun isAvailable(file: VirtualFile): Boolean { - return file.name == "config.json" + return file.name == "config.json" || file.name == ".continuerc.json" } override fun getName(): String { diff --git a/extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/continue/CoreMessenger.kt b/extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/continue/CoreMessenger.kt index 17abff486..505a53bbd 100644 --- a/extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/continue/CoreMessenger.kt +++ b/extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/continue/CoreMessenger.kt @@ -1,4 +1,5 @@ package com.github.continuedev.continueintellijextension.`continue` +import com.github.continuedev.continueintellijextension.services.ContinueExtensionSettings import com.github.continuedev.continueintellijextension.services.ContinuePluginService import java.io.BufferedReader import java.io.InputStreamReader @@ -7,35 +8,40 @@ import java.io.OutputStreamWriter import java.io.* import com.google.gson.Gson -import com.intellij.openapi.components.ServiceManager import com.intellij.openapi.components.service import com.intellij.openapi.project.Project +import java.net.Socket import java.nio.charset.StandardCharsets import java.nio.file.Files import java.nio.file.Paths import java.nio.file.attribute.PosixFilePermission class CoreMessenger(private val project: Project, esbuildPath: String, continueCorePath: String, ideProtocolClient: IdeProtocolClient) { - private val writer: OutputStreamWriter - private val reader: BufferedReader - private val process: Process + private var writer: Writer? = null + private var reader: BufferedReader? = null + private var process: Process? = null private val gson = Gson() - private val responseListeners = mutableMapOf Unit>() + private val responseListeners = mutableMapOf Unit>() private val ideProtocolClient = ideProtocolClient + private val useTcp: Boolean = false private fun write(message: String) { - writer.write(message + "\r\n") - writer.flush() + try { + writer?.write(message + "\r\n") + writer?.flush() + } catch (e: Exception) { + println("Error writing to Continue core: $e") + } } private fun close() { - writer.close() - reader.close() - val exitCode = process.waitFor() + writer?.close() + reader?.close() + val exitCode = process?.waitFor() println("Subprocess exited with code: $exitCode") } - fun request(messageType: String, data: Any?, messageId: String?, onResponse: (String) -> Unit) { + fun request(messageType: String, data: Any?, messageId: String?, onResponse: (Any?) -> Unit) { val id = messageId ?: uuid() val message = gson.toJson(mapOf( "messageId" to id, @@ -50,7 +56,7 @@ class CoreMessenger(private val project: Project, esbuildPath: String, continueC val responseMap = gson.fromJson(json, Map::class.java) val messageId = responseMap["messageId"].toString() val messageType = responseMap["messageType"].toString() - val data = gson.toJson(responseMap["data"]) + val data = responseMap["data"] // IDE listeners if (ideMessageTypes.contains(messageType)) { @@ -65,17 +71,28 @@ class CoreMessenger(private val project: Project, esbuildPath: String, continueC } // Forward to webview - if (forwardToWebview.contains(messageType)) { + if (PASS_THROUGH_TO_WEBVIEW.contains(messageType)) { + // TODO: Currently we aren't set up to receive a response back from the webview + // Can circumvent for getDefaultsModelTitle here for now + if (messageType == "getDefaultModelTitle") { + val continueSettingsService = service() + val defaultModelTitle = continueSettingsService.continueState.lastSelectedInlineEditModel; + val message = gson.toJson(mapOf( + "messageId" to messageId, + "messageType" to messageType, + "data" to defaultModelTitle + )) + write(message) + } val continuePluginService = project.service() - continuePluginService.sendToWebview(messageType, data, messageType) + continuePluginService.sendToWebview(messageType, responseMap["data"], messageType) } // Responses for messageId responseListeners[messageId]?.let { listener -> listener(data) if (generatorTypes.contains(messageType)) { - val parsedData = gson.fromJson(data, Map::class.java) - val done = parsedData["done"] as Boolean? + val done = (data as Map)["done"] if (done == true) { responseListeners.remove(messageId) } else {} @@ -100,12 +117,12 @@ class CoreMessenger(private val project: Project, esbuildPath: String, continueC "getWorkspaceConfigs", "getDiff", "getTerminalContents", - "listWorkspaceContents", "getWorkspaceDirs", "showLines", "listFolders", "getContinueDir", "writeFile", + "fileExists", "showVirtualFile", "openFile", "runCommand", @@ -113,6 +130,7 @@ class CoreMessenger(private val project: Project, esbuildPath: String, continueC "readFile", "showDiff", "getOpenFiles", + "getCurrentFile", "getPinnedFiles", "getSearchResults", "getProblems", @@ -120,11 +138,24 @@ class CoreMessenger(private val project: Project, esbuildPath: String, continueC "getBranch", "getIdeInfo", "getIdeSettings", - "errorPopup" + "errorPopup", + "getRepoName", + "listDir", + "getGitRootPath", + "getLastModified", + "insertAtCursor", + "applyToFile", + "getGitHubAuthToken", + "setGitHubAuthToken", + "pathSep" ) - private val forwardToWebview = listOf( - "configUpdate" + private val PASS_THROUGH_TO_WEBVIEW = listOf( + "configUpdate", + "getDefaultModelTitle", + "indexProgress", + "refreshSubmenuItems", + "didChangeAvailableProfiles" ) private fun setPermissions(destination: String) { @@ -151,55 +182,94 @@ class CoreMessenger(private val project: Project, esbuildPath: String, continueC } init { - // Set proper permissions - setPermissions(continueCorePath) - setPermissions(esbuildPath) + if (useTcp) { + try { + val socket = Socket("127.0.0.1", 3000) + val writer = PrintWriter(socket.getOutputStream(), true) + this.writer = writer + val reader = BufferedReader(InputStreamReader(socket.getInputStream())) + this.reader = reader + + Thread { + try { + while (true) { + val line = reader.readLine() + if (line != null && line.isNotEmpty()) { + try { + handleMessage(line) + } catch (e: Exception) { + println("Error handling message: $line") + println(e) + } + } else { + Thread.sleep(100) + } + } + } catch (e: IOException) { + e.printStackTrace() + } finally { + try { + reader.close() + writer.close() + } catch (e: IOException) { + e.printStackTrace() + } + } + }.start() + } catch (e: Exception) { + println("An error occurred: ${e.message}") + } + } else { + // Set proper permissions + setPermissions(continueCorePath) + setPermissions(esbuildPath) - // Start the subprocess - val processBuilder = ProcessBuilder(continueCorePath) - .directory(File(continueCorePath).parentFile) - process = processBuilder.start() + // Start the subprocess + val processBuilder = ProcessBuilder(continueCorePath) + .directory(File(continueCorePath).parentFile) + process = processBuilder.start() - val outputStream = process.outputStream - val inputStream = process.inputStream + val outputStream = process!!.outputStream + val inputStream = process!!.inputStream - writer = OutputStreamWriter(outputStream, StandardCharsets.UTF_8) - reader = BufferedReader(InputStreamReader(inputStream, StandardCharsets.UTF_8)) + writer = OutputStreamWriter(outputStream, StandardCharsets.UTF_8) + reader = BufferedReader(InputStreamReader(inputStream, StandardCharsets.UTF_8)) - process.onExit().thenRun { - val err = process.errorStream.bufferedReader().readText().trim() - println("Core process exited with output: $err") - ideProtocolClient.showMessage("Core process exited with output: $err") - } + process!!.onExit().thenRun { + val err = process?.errorStream?.bufferedReader()?.readText()?.trim() + println("Core process exited with output: $err") + ideProtocolClient.showMessage("Core process exited with output: $err") + } - Thread { - try { - while (true) { - val line = reader.readLine() - if (line != null && line.isNotEmpty()) { - try { - handleMessage(line) - } catch (e: Exception) { - println("Error handling message: $line") - println(e) + Thread { + try { + while (true) { + val line = reader?.readLine() + if (line != null && line.isNotEmpty()) { + try { + handleMessage(line) + } catch (e: Exception) { + println("Error handling message: $line") + println(e) + } + } else { + Thread.sleep(100) } - } else { - Thread.sleep(100) } - } - } catch (e: IOException) { - e.printStackTrace() - } finally { - try { - reader.close() - writer.close() - outputStream.close() - inputStream.close() - process.destroy() } catch (e: IOException) { e.printStackTrace() + } finally { + try { + reader?.close() + writer?.close() + outputStream.close() + inputStream.close() + process?.destroy() + } catch (e: IOException) { + e.printStackTrace() + } } - } - }.start() + }.start() + } } } diff --git a/extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/continue/Diffs.kt b/extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/continue/Diffs.kt index a059a6ae4..9f2597fde 100644 --- a/extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/continue/Diffs.kt +++ b/extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/continue/Diffs.kt @@ -37,7 +37,7 @@ fun getDiffDirectory(): File { return diffDir } fun escapeFilepath(filepath: String): String { - return filepath.replace("/", "_f_").replace("\\", "_b_") + return filepath.replace("/", "_f_").replace("\\", "_b_").replace(":", "_c_") } interface DiffInfo { diff --git a/extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/continue/IdeProtocolClient.kt b/extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/continue/IdeProtocolClient.kt index ae1515ff9..c999cfcab 100644 --- a/extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/continue/IdeProtocolClient.kt +++ b/extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/continue/IdeProtocolClient.kt @@ -1,30 +1,45 @@ package com.github.continuedev.continueintellijextension.`continue` +import com.github.continuedev.continueintellijextension.* import com.github.continuedev.continueintellijextension.constants.* import com.github.continuedev.continueintellijextension.services.ContinueExtensionSettings import com.github.continuedev.continueintellijextension.services.ContinuePluginService import com.google.gson.Gson import com.google.gson.GsonBuilder +import com.google.gson.JsonObject import com.google.gson.reflect.TypeToken +import com.intellij.codeInsight.daemon.DaemonCodeAnalyzer +import com.intellij.codeInsight.daemon.impl.DaemonCodeAnalyzerImpl +import com.intellij.codeInsight.daemon.impl.DaemonProgressIndicator +import com.intellij.codeInsight.daemon.impl.HighlightInfo import com.intellij.ide.plugins.PluginManagerCore +import com.intellij.lang.annotation.HighlightSeverity import com.intellij.openapi.Disposable import com.intellij.openapi.application.ApplicationInfo import com.intellij.openapi.application.ApplicationManager +import com.intellij.openapi.application.ReadAction +import com.intellij.openapi.application.WriteAction +import com.intellij.openapi.command.WriteCommandAction import com.intellij.openapi.components.ServiceManager +import com.intellij.openapi.components.service +import com.intellij.openapi.editor.Document +import com.intellij.openapi.editor.Editor import com.intellij.openapi.editor.SelectionModel import com.intellij.openapi.extensions.PluginId import com.intellij.openapi.fileEditor.FileDocumentManager import com.intellij.openapi.fileEditor.FileEditorManager import com.intellij.openapi.fileEditor.TextEditor +import com.intellij.openapi.progress.DumbProgressIndicator +import com.intellij.openapi.progress.ProgressIndicator import com.intellij.openapi.project.DumbAware import com.intellij.openapi.project.Project import com.intellij.openapi.ui.MessageType -import com.intellij.openapi.ui.Messages import com.intellij.openapi.ui.popup.Balloon import com.intellij.openapi.ui.popup.JBPopupFactory import com.intellij.openapi.vfs.* import com.intellij.openapi.vfs.newvfs.events.VFileEvent import com.intellij.openapi.wm.WindowManager +import com.intellij.psi.PsiDocumentManager import com.intellij.testFramework.LightVirtualFile import com.intellij.ui.awt.RelativePoint import kotlinx.coroutines.* @@ -40,6 +55,66 @@ fun uuid(): String { return UUID.randomUUID().toString() } +val DEFAULT_IGNORE_FILETYPES = arrayOf( + ".DS_Store", + "-lock.json", + ".lock", + ".log", + ".ttf", + ".png", + ".jpg", + ".jpeg", + ".gif", + ".mp4", + ".svg", + ".ico", + ".pdf", + ".zip", + ".gz", + ".tar", + ".dmg", + ".tgz", + ".rar", + ".7z", + ".exe", + ".dll", + ".obj", + ".o", + ".o.d", + ".a", + ".lib", + ".so", + ".dylib", + ".ncb", + ".sdf", + ".woff", + ".woff2", + ".eot", + ".cur", + ".avi", + ".mpg", + ".mpeg", + ".mov", + ".mp3", + ".mp4", + ".mkv", + ".mkv", + ".webm", + ".jar", + ".onnx", + ".parquet", + ".pqt", + ".wav", + ".webp", + ".db", + ".sqlite", + ".wasm", + ".plist", + ".profraw", + ".gcda", + ".gcno", + "go.sum", +) data class IdeMessage(val type: String, val messageId: String, val message: T) data class Position(val line: Int, val character: Int) @@ -141,13 +216,11 @@ class IdeProtocolClient ( ) val messageType = parsedMessage["messageType"] as? String if (messageType == null) { - println("Recieved message without type: $text") + println("Received message without type: $text") return@launch } val data = parsedMessage["data"] - val historyManager = HistoryManager() - try { when (messageType) { "uniqueId" -> respond( @@ -235,16 +308,31 @@ class IdeProtocolClient ( respond(firstLine + "\n" + between + "\n" + lastLine) } - "listWorkspaceContents" -> { - respond(listDirectoryContents(null)) - } - "getWorkspaceDirs" -> { respond(workspaceDirectories()) } "getWorkspaceConfigs" -> { - respond(emptyList()) + val workspaceDirs = workspaceDirectories() + + val configs: List = listOf() + for (workspaceDir in workspaceDirs) { + val workspacePath = File(workspaceDir) + val dir = VirtualFileManager.getInstance().findFileByUrl("file://$workspacePath") + if (dir != null) { + val contents = dir.children.map { it.name } + + // Find any .continuerc.json files + for (file in contents) { + if (file.endsWith(".continuerc.json")) { + val filePath = workspacePath.resolve(file) + val fileContent = File(filePath.toString()).readText() + configs.plus(fileContent) + } + } + } + } + respond(configs) } "getTerminalContents" -> { @@ -289,8 +377,8 @@ class IdeProtocolClient ( "showLines" -> { val data = data as Map val filepath = data["filepath"] as String - val startLine = data["startLine"] as Int - val endLine = data["endLine"] as Int + val startLine = (data["startLine"] as Double).toInt() + val endLine = (data["endLine"] as Double).toInt() highlightCode( RangeInFile( filepath, @@ -299,7 +387,7 @@ class IdeProtocolClient ( Position(endLine, 0) ) ), - data["color"] as String + data["color"] as String? ) respond(null) } @@ -318,6 +406,63 @@ class IdeProtocolClient ( "setSuggestionsLocked" -> {} "getSessionId" -> {} + // INDEXING // + "getLastModified" -> { + // TODO + val data = data as Map + val files = data["files"] as List + val pathToLastModified = files.map { file -> + file to File(file).lastModified() + }.toMap() + respond(pathToLastModified) + } + "listDir" -> { + val data = data as Map + val dir = data["dir"] as String + // List of [file, FileType] + val files: List> = File(dir).listFiles()?.map { + listOf(it.name, if (it.isDirectory) 2 else 1) + } ?: emptyList() + respond(files) + } + "getGitRootPath" -> { + val data = data as Map + val directory = data["dir"] as String + val builder = ProcessBuilder("git", "rev-parse", "--show-toplevel") + builder.directory(File(directory)) + val process = builder.start() + + val reader = BufferedReader(InputStreamReader(process.inputStream)) + val output = reader.readLine() + process.waitFor() + + respond(output) + } + "getBranch" -> { + // Get the current branch name + val builder = ProcessBuilder("git", "rev-parse", "--abbrev-ref", "HEAD") + builder.directory(File(workspacePath ?: ".")) + val process = builder.start() + + val reader = BufferedReader(InputStreamReader(process.inputStream)) + val output = reader.readLine() + process.waitFor() + + respond(output ?: "NONE") + } + "getRepoName" -> { + // Get the current repository name + val builder = ProcessBuilder("git", "config", "--get", "remote.origin.url") + builder.directory(File(workspacePath ?: ".")) + val process = builder.start() + + val reader = BufferedReader(InputStreamReader(process.inputStream)) + val output = reader.readLine() + process.waitFor() + + respond(output ?: "NONE") + } + // NEW // "getDiff" -> { val builder = ProcessBuilder("git", "diff") @@ -337,6 +482,51 @@ class IdeProtocolClient ( respond(output.toString()); } + "getProblems" -> { + // Get currently active editor + var editor: Editor? = null + ApplicationManager.getApplication().invokeAndWait { + editor = FileEditorManager.getInstance(project).selectedTextEditor + } + if (editor == null) { + respond(emptyList>()) + return@launch + } + val project = editor!!.project ?: return@launch + + val document: Document = editor!!.document + val psiFile = PsiDocumentManager.getInstance(project).getPsiFile(document) ?: return@launch + + val analyzer = DaemonCodeAnalyzer.getInstance(project) as DaemonCodeAnalyzerImpl + val highlightInfos = ReadAction.compute, Throwable> { + analyzer.getFileLevelHighlights(project, psiFile) + } + + val problems = ArrayList>() + for (highlightInfo in highlightInfos) { + if (highlightInfo.severity === HighlightSeverity.ERROR || + highlightInfo.severity === HighlightSeverity.WARNING) { + val startOffset = highlightInfo.getStartOffset() + val endOffset = highlightInfo.getEndOffset() + val description = highlightInfo.description + problems.add(mapOf( + "filepath" to psiFile.virtualFile?.path, + "range" to mapOf( + "start" to mapOf( + "line" to document.getLineNumber(startOffset), + "character" to startOffset - document.getLineStartOffset(document.getLineNumber(startOffset)) + ), + "end" to mapOf( + "line" to document.getLineNumber(endOffset), + "character" to endOffset - document.getLineStartOffset(document.getLineNumber(endOffset)) + ) + ), + "message" to description + )) + } + } + respond(problems) + } "getConfigJsUrl" -> { // Calculate a data URL for the config.js file val configJsPath = getConfigJsPath() @@ -350,6 +540,11 @@ class IdeProtocolClient ( file.writeText(msg["contents"] as String) respond(null); } + "fileExists" -> { + val msg = data as Map; + val file = File(msg["filepath"]) + respond(file.exists()) + } "getContinueDir" -> { respond(getContinueGlobalPath()) } @@ -369,25 +564,12 @@ class IdeProtocolClient ( } "listFolders" -> { - respond(null) + val workspacePath = workspacePath ?: return@launch + val workspaceDir = File(workspacePath) + val folders = workspaceDir.listFiles { file -> file.isDirectory }?.map { file -> file.name } ?: emptyList() + respond(folders) } - // History - "history" -> { - respond(historyManager.list()); - } - "saveSession" -> { - historyManager.save(data as PersistedSessionInfo); - respond(null); - } - "deleteSession" -> { - historyManager.delete(data as String); - respond(null); - } - "loadSession" -> { - val session = historyManager.load(data as String) - respond(session) - } "getSearchResults" -> { respond("") } @@ -397,63 +579,58 @@ class IdeProtocolClient ( val openFiles = visibleFiles() respond(openFiles) } + "getCurrentFile" -> { + val currentFile = currentFile() + respond(currentFile) + } "getPinnedFiles" -> { val openFiles = visibleFiles() respond(openFiles) } - "logDevData" -> { - val data = data as Map - val filename = data["tableName"] as String - val jsonLine = data["data"] - val filepath = getDevDataFilepath(filename) - val contents = Gson().toJson(jsonLine) + "\n" - File(filepath).appendText(contents) - } - "addModel" -> { - val data = data as Map - val model = data["model"] as Map - val updatedConfig = editConfigJson { - val models = it["models"] as MutableList> - models.add(model) - it - } - - configUpdate() - setFileOpen(getConfigJsonPath()) - } - "deleteModel" -> { - val configJson = editConfigJson { config -> - var models: MutableList> = config["models"] as MutableList> - val data = data as Map - val model = data["title"] as String - models = models.filter { it["title"] != model }.toMutableList() - config["models"] = models - config + "insertAtCursor" -> { + val msg = data as Map; + val text = msg["text"] as String + ApplicationManager.getApplication().invokeLater { + val editor = FileEditorManager.getInstance(project).selectedTextEditor ?: return@invokeLater + val selectionModel: SelectionModel = editor.selectionModel + + val document = editor.document + val startOffset = selectionModel.selectionStart + val endOffset = selectionModel.selectionEnd + + WriteCommandAction.runWriteCommandAction(project) { + document.replaceString(startOffset, endOffset, text) + } } - configUpdate() - } - "addOpenAIKey" -> { - val updatedConfig = editConfigJson { config -> - val data = data as Map - val key = data["key"] as String - var models = config["models"] as MutableList> - models = models.map { - if (it["provider"] == "free-trial") { - it["apiKey"] = key - it["provider"] = "openai" - it - } else { - it - } - }.toMutableList() - config["models"] = models - config + } + "applyToFile" -> { + } + "getGitHubAuthToken" -> { + val continueSettingsService = service() + val ghAuthToken = continueSettingsService.continueState.ghAuthToken; + + if (ghAuthToken == null) { + // Open a dialog so user can enter their GitHub token + continuePluginService.sendToWebview("openOnboarding", null, uuid()) + respond(null) + } else { + respond(ghAuthToken) } - configUpdate() } - - - + "setGitHubAuthToken" -> { + val continueSettingsService = service() + val data = data as Map + continueSettingsService.continueState.ghAuthToken = data["token"] + respond(null) + } + "openUrl" -> { + val url = data as String + java.awt.Desktop.getDesktop().browse(java.net.URI(url)) + respond(null) + } + "pathSep" -> { + respond(File.separator) + } else -> { println("Unknown messageType: $messageType") } @@ -660,7 +837,11 @@ class IdeProtocolClient ( ".pytest_cache", ".vscode-test", ".continue", - "__pycache__" + "__pycache__", + "site-packages", + ".gradle", + ".cache", + "gems", ) private fun shouldIgnoreDirectory(name: String): Boolean { val components = File(name).path.split(File.separator) @@ -686,19 +867,32 @@ class IdeProtocolClient ( val contents = ArrayList() for (dir in dirs) { + if (DEFAULT_IGNORE_DIRS.any { dir.contains(it) }) { + continue + } + val workspacePath = File(dir) val workspaceDir = VirtualFileManager.getInstance().findFileByUrl("file://$workspacePath") if (workspaceDir != null) { - VfsUtil.iterateChildrenRecursively(workspaceDir, null) { virtualFile: VirtualFile -> - if (virtualFile.isDirectory) { -// if (shouldIgnoreDirectory(virtualFile.name)) { -// -// } - } else { - val filePath = virtualFile.path - if (!shouldIgnoreDirectory(filePath)) { - contents.add(filePath) + val filter = object : VirtualFileFilter { + override fun accept(file: VirtualFile): Boolean { + if (file.isDirectory) { + return !shouldIgnoreDirectory(file.name) + } else { + val filePath = file.path + return !shouldIgnoreDirectory(filePath) && !DEFAULT_IGNORE_FILETYPES.any { filePath.endsWith(it) } + } + } + } + VfsUtil.iterateChildrenRecursively(workspaceDir, filter) { virtualFile: VirtualFile -> + if (!virtualFile.isDirectory) { + contents.add(virtualFile.path) + + // Set a hard limit on the number of files to list + if (contents.size > 10000) { + // Completely exit the iteration + return@iterateChildrenRecursively false } } true @@ -749,6 +943,13 @@ class IdeProtocolClient ( return fileEditorManager.openFiles.toList().map { it.path } } + private fun currentFile(): String? { + val fileEditorManager = FileEditorManager.getInstance(project) + val editor = fileEditorManager.selectedTextEditor + val virtualFile = editor?.document?.let { FileDocumentManager.getInstance().getFile(it) } + return virtualFile?.path + } + fun showMessage(msg: String) { val statusBar = WindowManager.getInstance().getStatusBar(project) @@ -763,7 +964,7 @@ class IdeProtocolClient ( ) } - fun highlightCode(rangeInFile: RangeInFile, color: String) { + fun highlightCode(rangeInFile: RangeInFile, color: String?) { val file = LocalFileSystem.getInstance().findFileByPath(rangeInFile.filepath) diff --git a/extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/editor/DiffStreamHandler.kt b/extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/editor/DiffStreamHandler.kt index 629b5c680..f30347150 100644 --- a/extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/editor/DiffStreamHandler.kt +++ b/extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/editor/DiffStreamHandler.kt @@ -200,7 +200,7 @@ class DiffStreamHandler( return@request } - val parsed = Gson().fromJson(response, Map::class.java) + val parsed = response as Map<*, *> val done = parsed["done"] as? Boolean if (done == true) { onFinish() diff --git a/extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/editor/InlineEditAction.kt b/extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/editor/InlineEditAction.kt index 52077b70f..e974cf8fd 100644 --- a/extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/editor/InlineEditAction.kt +++ b/extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/editor/InlineEditAction.kt @@ -6,6 +6,7 @@ import com.github.continuedev.continueintellijextension.services.ContinuePluginS import com.github.continuedev.continueintellijextension.utils.getAltKeyLabel import com.google.gson.Gson import com.intellij.openapi.Disposable +import com.intellij.openapi.actionSystem.ActionUpdateThread import com.intellij.openapi.actionSystem.AnAction import com.intellij.openapi.actionSystem.AnActionEvent import com.intellij.openapi.actionSystem.PlatformDataKeys @@ -49,6 +50,10 @@ class InlineEditAction : AnAction(), DumbAware { e.presentation.isVisible = true } + override fun getActionUpdateThread(): ActionUpdateThread { + return ActionUpdateThread.EDT + } + override fun actionPerformed(e: AnActionEvent) { if (e.project == null) return @@ -59,10 +64,9 @@ class InlineEditAction : AnAction(), DumbAware { // Get list of model titles val continuePluginService = project.service() val modelTitles = mutableListOf() - continuePluginService.coreMessenger?.request("config/getBrowserSerialized", null, null) { response -> - val gson = Gson() - val config = gson.fromJson(response, Map::class.java) - val models = config["models"] as List> + continuePluginService.coreMessenger?.request("config/getSerializedProfileInfo", null, null) { response -> + val config = response as Map + val models = (config["config"] as Map)["models"] as List> modelTitles.addAll(models.map { it["title"] as String }) } val maxWaitTime = 200 @@ -73,8 +77,10 @@ class InlineEditAction : AnAction(), DumbAware { // Get highlighted range val selectionModel = editor.selectionModel - val start = selectionModel.selectionStart - val end = selectionModel.selectionEnd + val startLineNumber = editor.document.getLineNumber(selectionModel.selectionStart) + val endLineNumber = editor.document.getLineNumber(selectionModel.selectionEnd) + val start = editor.document.getLineStartOffset(startLineNumber) + val end = editor.document.getLineEndOffset(endLineNumber) val prefix = editor.document.getText(TextRange(0, start)) val highlighted = editor.document.getText(TextRange(start, end)) val suffix = editor.document.getText(TextRange(end, editor.document.textLength)) diff --git a/extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/services/ContinueExtensionSettingsService.kt b/extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/services/ContinueExtensionSettingsService.kt index d2da9d7d8..748796d4c 100644 --- a/extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/services/ContinueExtensionSettingsService.kt +++ b/extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/services/ContinueExtensionSettingsService.kt @@ -67,7 +67,8 @@ open class ContinueExtensionSettings : PersistentStateComponent Unit>() @@ -25,24 +35,40 @@ class ContinueBrowser(val project: Project, url: String, useOsr: Boolean = false } private val PASS_THROUGH_TO_CORE = listOf( - "abort", - "getContinueDir", - "history/list", - "history/save", - "history/delete", - "history/load", - "devdata/log", - "config/addModel", - "config/deleteModel", - "config/addOpenAIKey", - "llm/streamComplete", - "llm/streamChat", - "llm/complete", - "command/run", - "context/loadSubmenuItems", - "context/getContextItems", - "context/addDocs", - "config/getBrowserSerialized", + "update/modelChange", + "ping", + "abort", + "history/list", + "history/delete", + "history/load", + "history/save", + "devdata/log", + "config/addOpenAiKey", + "config/addModel", + "config/ideSettingsUpdate", + "config/getSerializedProfileInfo", + "config/deleteModel", + "config/newPromptFile", + "config/reload", + "context/getContextItems", + "context/loadSubmenuItems", + "context/addDocs", + "autocomplete/complete", + "autocomplete/cancel", + "autocomplete/accept", + "command/run", + "llm/complete", + "llm/streamComplete", + "llm/streamChat", + "llm/listModels", + "streamDiffLines", + "stats/getTokensPerDay", + "stats/getTokensPerModel", + "index/setPaused", + "index/forceReIndex", + "index/indexingProgressBarInitialized", + "completeOnboarding", + "addAutocompleteModel" ) private fun registerAppSchemeHandler() { @@ -126,6 +152,7 @@ class ContinueBrowser(val project: Project, url: String, useOsr: Boolean = false } "showLines" -> { val data = data.asJsonObject + ide?.setFileOpen(data.get("filepath").asString) ide?.highlightCode(RangeInFile( data.get("filepath").asString, Range(Position( diff --git a/extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/toolWindow/ContinuePluginToolWindowFactory.kt b/extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/toolWindow/ContinuePluginToolWindowFactory.kt index 5f71aaed4..5fdba7af9 100644 --- a/extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/toolWindow/ContinuePluginToolWindowFactory.kt +++ b/extensions/intellij/src/main/kotlin/com/github/continuedev/continueintellijextension/toolWindow/ContinuePluginToolWindowFactory.kt @@ -9,7 +9,6 @@ import com.intellij.openapi.project.Project import com.intellij.openapi.wm.ToolWindow import com.intellij.openapi.wm.ToolWindowFactory import com.intellij.ui.content.ContentFactory -import com.intellij.ui.jcef.* import javax.swing.* const val JS_QUERY_POOL_SIZE = "200" diff --git a/extensions/intellij/src/main/resources/META-INF/plugin.xml b/extensions/intellij/src/main/resources/META-INF/plugin.xml index 0c02a2d70..50cab8fdf 100644 --- a/extensions/intellij/src/main/resources/META-INF/plugin.xml +++ b/extensions/intellij/src/main/resources/META-INF/plugin.xml @@ -12,13 +12,18 @@ - + + messages.MyBundle @@ -86,12 +91,7 @@ description="View Continue Server Logs"> - - - - + - - + + + + diff --git a/extensions/intellij/src/main/resources/META-INF/pluginIcon.svg b/extensions/intellij/src/main/resources/META-INF/pluginIcon.svg index ab3a48150..5ea2709f1 100644 --- a/extensions/intellij/src/main/resources/META-INF/pluginIcon.svg +++ b/extensions/intellij/src/main/resources/META-INF/pluginIcon.svg @@ -1,6 +1,11 @@ - - - - - + + + + + + + + + + diff --git a/extensions/intellij/src/main/resources/META-INF/pluginIcon_dark.svg b/extensions/intellij/src/main/resources/META-INF/pluginIcon_dark.svg index 3944b88b4..5ea2709f1 100644 --- a/extensions/intellij/src/main/resources/META-INF/pluginIcon_dark.svg +++ b/extensions/intellij/src/main/resources/META-INF/pluginIcon_dark.svg @@ -1,6 +1,11 @@ - - - - - + + + + + + + + + + diff --git a/extensions/intellij/src/main/resources/config_schema.json b/extensions/intellij/src/main/resources/config_schema.json index d94309807..cbbb173c3 100644 --- a/extensions/intellij/src/main/resources/config_schema.json +++ b/extensions/intellij/src/main/resources/config_schema.json @@ -1,1851 +1,2492 @@ { - "title": "config.json", - "$ref": "#/definitions/SerializedContinueConfig", - "definitions": { - "BaseCompletionOptions": { - "title": "BaseCompletionOptions", - "type": "object", - "properties": { - "stream": { - "title": "Stream", - "description": "Whether to stream the LLM response. Currently only respected by the 'anthropic' provider. Otherwise will always stream.", - "type": "boolean", - "default": true - }, - "temperature": { - "title": "Temperature", - "description": "The temperature of the completion.", - "type": "number" - }, - "topP": { - "title": "Top P", - "description": "The topP of the completion.", - "type": "number" - }, - "topK": { - "title": "Top K", - "description": "The topK of the completion.", - "type": "integer" - }, - "presencePenalty": { - "title": "Presence Penalty", - "description": "The presence penalty Aof the completion.", - "type": "number" - }, - "frequencePenalty": { - "title": "Frequency Penalty", - "description": "The frequency penalty of the completion.", - "type": "number" - }, - "mirostat": { - "title": "Mirostat", - "description": "Enable Mirostat sampling, controlling perplexity during text generation (default: 0, 0 = disabled, 1 = Mirostat, 2 = Mirostat 2.0). Only available for Ollama, LM Studio, and llama.cpp providers", - "type": "number" - }, - "stop": { - "title": "Stop", - "description": "The stop tokens of the completion.", - "type": "array", - "items": { - "type": "string" - } - }, - "maxTokens": { - "title": "Max Tokens", - "description": "The maximum number of tokens to generate.", - "default": 600, - "type": "integer" - }, - "numThreads": { - "title": "Number of threads", - "description": "The number of threads used in the generation process. Only available for Ollama (this is the num_thread parameter)", - "type": "integer" - }, - "keepAlive": { - "title": "Ollama keep_alive", - "description": "The number of seconds after no requests are made to unload the model from memory. Defaults to 60*30 = 30min", - "type": "integer" - } - } - }, - "RequestOptions": { - "title": "RequestOptions", - "type": "object", - "properties": { - "timeout": { - "title": "Timeout", - "description": "Set the timeout for each request to the LLM. If you are running a local LLM that takes a while to respond, you might want to set this to avoid timeouts.", - "default": 7200, - "type": "integer" - }, - "verifySsl": { - "title": "Verify Ssl", - "description": "Whether to verify SSL certificates for requests.", - "type": "boolean" - }, - "caBundlePath": { - "title": "Ca Bundle Path", - "description": "Path to a custom CA bundle to use when making the HTTP request", - "anyOf": [ - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "string" - } - } - ] - }, - "proxy": { - "title": "Proxy", - "description": "Proxy URL to use when making the HTTP request", - "type": "string" - }, - "headers": { - "title": "Headers", - "description": "Headers to use when making the HTTP request", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "extraBodyProperties": { - "title": "Extra Body Properties", - "description": "This object will be merged with the body when making the HTTP requests", - "type": "object" - } - } - }, - "ModelDescription": { - "title": "ModelDescription", - "type": "object", - "properties": { - "title": { - "title": "Title", - "description": "The title you wish to give your model.", - "type": "string" - }, - "provider": { - "title": "Provider", - "description": "The provider of the model. This is used to determine the type of model, and how to interact with it.", - "enum": [ - "openai", - "free-trial", - "anthropic", - "bedrock", - "together", - "ollama", - "huggingface-tgi", - "huggingface-inference-api", - "llama.cpp", - "replicate", - "google-palm", - "lmstudio", - "llamafile", - "mistral", - "deepinfra", - "flowise", - "groq" - ], - "markdownEnumDescriptions": [ - "### OpenAI\nUse gpt-4, gpt-3.5-turbo, or any other OpenAI model. See [here](https://openai.com/product#made-for-developers) to obtain an API key.\n\n> [Reference](https://continue.dev/docs/reference/Model%20Providers/openai)", - "### Free Trial\nNew users can try out Continue for free using a proxy server that securely makes calls to OpenAI using our API key. If you are ready to use your own API key or have used all 250 free uses, you can enter your API key in config.py where it says `apiKey=\"\"` or select another model provider.\n> [Reference](https://continue.dev/docs/reference/Model%20Providers/freetrial)", - "### Anthropic\nTo get started with Anthropic models, you first need to sign up for the open beta [here](https://claude.ai/login) to obtain an API key.\n> [Reference](https://continue.dev/docs/reference/Model%20Providers/anthropicllm)", - "### Bedrock\nTo get started with Bedrock you need to sign up on AWS [here](https://aws.amazon.com/bedrock/claude/)", - "### Together\nTogether is a hosted service that provides extremely fast streaming of open-source language models. To get started with Together:\n1. Obtain an API key from [here](https://together.ai)\n2. Paste below\n3. Select a model preset\n> [Reference](https://continue.dev/docs/reference/Model%20Providers/togetherllm)", - "### Ollama\nTo get started with Ollama, follow these steps:\n1. Download from [ollama.ai](https://ollama.ai/) and open the application\n2. Open a terminal and run `ollama run `. Example model names are `codellama:7b-instruct` or `llama2:7b-text`. You can find the full list [here](https://ollama.ai/library).\n3. Make sure that the model name used in step 2 is the same as the one in config.py (e.g. `model=\"codellama:7b-instruct\"`)\n4. Once the model has finished downloading, you can start asking questions through Continue.\n> [Reference](https://continue.dev/docs/reference/Model%20Providers/ollama)", - "### Huggingface TGI\n\n> [Reference](https://continue.dev/docs/reference/Model%20Providers/huggingfacetgi)", - "### Huggingface Inference API\n\n> [Reference](https://continue.dev/docs/reference/Model%20Providers/huggingfaceinferenceapi)", - "### Llama.cpp\nllama.cpp comes with a [built-in server](https://github.com/ggerganov/llama.cpp/tree/master/examples/server#llamacppexampleserver) that can be run from source. To do this:\n\n1. Clone the repository with `git clone https://github.com/ggerganov/llama.cpp`.\n2. `cd llama.cpp`\n3. Run `make` to build the server.\n4. Download the model you'd like to use and place it in the `llama.cpp/models` directory (the best place to find models is [The Bloke on HuggingFace](https://huggingface.co/TheBloke))\n5. Run the llama.cpp server with the command below (replacing with the model you downloaded):\n\n```shell\n.\\server.exe -c 4096 --host 0.0.0.0 -t 16 --mlock -m models/codellama-7b-instruct.Q8_0.gguf\n```\n\nAfter it's up and running, you can start using Continue.\n> [Reference](https://continue.dev/docs/reference/Model%20Providers/llamacpp)", - "### Replicate\nReplicate is a hosted service that makes it easy to run ML models. To get started with Replicate:\n1. Obtain an API key from [here](https://replicate.com)\n2. Paste below\n3. Select a model preset\n> [Reference](https://continue.dev/docs/reference/Model%20Providers/replicatellm)", - "### Google PALM\nTo get started with Google Makersuite, obtain your API key from [here](https://makersuite.google.com) and paste it below.\n> [Reference](https://continue.dev/docs/reference/Model%20Providers/googlepalmapi)", - "### LMStudio\nLMStudio provides a professional and well-designed GUI for exploring, configuring, and serving LLMs. It is available on both Mac and Windows. To get started:\n1. Download from [lmstudio.ai](https://lmstudio.ai/) and open the application\n2. Search for and download the desired model from the home screen of LMStudio.\n3. In the left-bar, click the '<->' icon to open the Local Inference Server and press 'Start Server'.\n4. Once your model is loaded and the server has started, you can begin using Continue.\n> [Reference](https://continue.dev/docs/reference/Model%20Providers/lmstudio)", - "### Llamafile\nTo get started with llamafiles, find and download a binary on their [GitHub repo](https://github.com/Mozilla-Ocho/llamafile#binary-instructions). Then run it with the following command:\n\n```shell\nchmod +x ./llamafile\n./llamafile\n```\n> [Reference](https://continue.dev/docs/reference/Model%20Providers/llamafile)", - "### Mistral API\n\nTo get access to the Mistral API, obtain your API key from the [Mistral platform](https://docs.mistral.ai/)", - "### DeepInfra\n\n> [Reference](https://continue.dev/docs/reference/Model%20Providers/deepinfra)" - ], - "type": "string" - }, - "model": { - "title": "Model", - "description": "The name of the model. Used to autodetect prompt template.", - "type": "string" - }, - "apiKey": { - "title": "Api Key", - "description": "OpenAI, Anthropic, Together, or other API key", - "type": "string" - }, - "apiBase": { - "title": "Api Base", - "description": "The base URL of the LLM API.", - "type": "string" - }, - "contextLength": { - "title": "Context Length", - "description": "The maximum context length of the LLM in tokens, as counted by countTokens.", - "default": 2048, - "type": "integer" - }, - "template": { - "title": "Template", - "description": "The chat template used to format messages. This is auto-detected for most models, but can be overridden here. Choose none if you are using vLLM or another server that automatically handles prompting.", - "enum": [ - "llama2", - "alpaca", - "zephyr", - "phi2", - "phind", - "anthropic", - "chatml", - "none", - "deepseek", - "openchat", - "xwin-coder", - "neural-chat", - "codellama-70b", - "llava", - "gemma" - ], - "type": "string" - }, - "promptTemplates": { - "title": "Prompt Templates", - "markdownDescription": "A mapping of prompt template name ('edit' is currently the only one used in Continue) to a string giving the prompt template. See [here](https://continue.dev/docs/model-setup/configuration#customizing-the-edit-prompt) for an example.", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "completionOptions": { - "title": "Completion Options", - "description": "Options for the completion endpoint. Read more about the completion options in the documentation.", - "default": { - "temperature": null, - "topP": null, - "topK": null, - "presencePenalty": null, - "frequencyPenalty": null, - "stop": null, - "maxTokens": 600 - }, - "allOf": [ - { - "$ref": "#/definitions/BaseCompletionOptions" - } - ] - }, - "systemMessage": { - "title": "System Message", - "description": "A system message that will always be followed by the LLM", - "type": "string" - }, - "requestOptions": { - "title": "Request Options", - "description": "Options for the HTTP request to the LLM.", - "default": { - "timeout": 7200, - "verifySsl": null, - "caBundlePath": null, - "proxy": null, - "headers": null, - "extraBodyProperties": null - }, - "allOf": [ - { - "$ref": "#/definitions/RequestOptions" - } - ] - }, - "apiType": { - "title": "Api Type", - "markdownDescription": "OpenAI API type, either `openai` or `azure`", - "enum": ["openai", "azure"] - }, - "apiVersion": { - "title": "Api Version", - "description": "Azure OpenAI API version (e.g. 2023-07-01-preview)", - "type": "string" - }, - "engine": { - "title": "Engine", - "description": "Azure OpenAI engine", - "type": "string" - } - }, - "required": ["title", "provider", "model"], - "allOf": [ - { - "if": { - "properties": { - "provider": { - "type": "str" - } - }, - "not": { - "required": ["provider"] - } - }, - "then": { - "properties": { - "model": { - "description": "Choose a provider first, then model options will be shown here." - } - } - } - }, - { - "if": { - "properties": { - "provider": { - "enum": [ - "openai", - "anthropic", - "google-palm", - "huggingface-inference-api", - "replicate", - "together" - ] - } - }, - "required": ["provider"] - }, - "then": { - "required": ["apiKey"] - } - }, - { - "if": { - "properties": { - "provider": { - "enum": ["huggingface-tgi", "huggingface-inference-api"] - } - } - }, - "then": { - "required": ["apiBase"] - }, - "required": ["provider"] - }, - { - "if": { - "properties": { - "provider": { - "enum": ["openai"] - } - }, - "required": ["provider"] - }, - "then": { + "title": "config.json", + "$ref": "#/definitions/SerializedContinueConfig", + "definitions": { + "BaseCompletionOptions": { + "title": "BaseCompletionOptions", + "type": "object", "properties": { - "engine": { - "type": "string" - }, - "apiType": { - "type": "string" - }, - "apiVersion": { - "type": "string" - } + "stream": { + "title": "Stream", + "description": "Whether to stream the LLM response. Currently only respected by the 'anthropic' provider. Otherwise will always stream.", + "type": "boolean", + "default": true + }, + "temperature": { + "title": "Temperature", + "description": "The temperature of the completion.", + "type": "number" + }, + "topP": { + "title": "Top P", + "description": "The topP of the completion.", + "type": "number" + }, + "topK": { + "title": "Top K", + "description": "The topK of the completion.", + "type": "integer" + }, + "presencePenalty": { + "title": "Presence Penalty", + "description": "The presence penalty Aof the completion.", + "type": "number" + }, + "frequencePenalty": { + "title": "Frequency Penalty", + "description": "The frequency penalty of the completion.", + "type": "number" + }, + "mirostat": { + "title": "Mirostat", + "description": "Enable Mirostat sampling, controlling perplexity during text generation (default: 0, 0 = disabled, 1 = Mirostat, 2 = Mirostat 2.0). Only available for Ollama, LM Studio, and llama.cpp providers", + "type": "number" + }, + "stop": { + "title": "Stop", + "description": "The stop tokens of the completion.", + "type": "array", + "items": { + "type": "string" + } + }, + "maxTokens": { + "title": "Max Tokens", + "description": "The maximum number of tokens to generate.", + "default": 600, + "type": "integer" + }, + "numThreads": { + "title": "Number of threads", + "description": "The number of threads used in the generation process. Only available for Ollama (this is the num_thread parameter)", + "type": "integer" + }, + "keepAlive": { + "title": "Ollama keep_alive", + "description": "The number of seconds after no requests are made to unload the model from memory. Defaults to 60*30 = 30min", + "type": "integer" + } } - } }, - { - "if": { - "properties": { - "provider": { - "enum": ["openai"] - } - }, - "required": ["provider"] - }, - "then": { + "ClientCertificateOptions": { + "title": "ClientCertificateOptions", + "type": "object", "properties": { - "model": { - "anyOf": [ - { - "enum": [ - "gpt-3.5-turbo", - "gpt-3.5-turbo-16k", - "gpt-4", - "gpt-3.5-turbo-0613", - "gpt-4-32k", - "gpt-4-0125-preview", - "gpt-4-turbo-preview", - "AUTODETECT" - ] - }, - { + "cert": { + "title": "Cert Path", + "description": "Path to the client certificate file", "type": "string" - } - ] - } - } - } - }, - { - "if": { - "properties": { - "provider": { - "enum": ["replicate"] - } - }, - "required": ["provider"] - }, - "then": { - "properties": { - "model": { - "anyOf": [ - { - "enum": [ - "codellama-7b", - "codellama-13b", - "codellama-34b", - "llama2-7b", - "llama2-13b" - ] - }, - { + }, + "key": { + "title": "Key Path", + "description": "Path to the client certificate key file", + "type": "string" + }, + "passphrase": { + "title": "Passphrase", + "description": "Passphrase for the client certificate key file", "type": "string" - } - ] - }, - "markdownDescription": "Select a pre-defined option, or find an exact model ID from Replicate [here](https://replicate.com/collections/streaming-language-models)." - } - } - }, - { - "if": { - "properties": { - "provider": { - "enum": ["free-trial"] - } - }, - "required": ["provider"] - }, - "then": { - "properties": { - "model": { - "enum": [ - "gpt-3.5-turbo", - "gpt-4", - "phind-codellama-34b", - "gemini-pro", - "gpt-4-vision-preview", - "codellama-70b", - "mistral-8x7b", - "claude-3-opus-20240229", - "claude-3-sonnet-20240229", - "claude-3-haiku-20240307", - "starcoder-7b", - "AUTODETECT" - ] - } - } - } - }, - { - "if": { - "properties": { - "provider": { - "enum": ["openai"] - }, - "apiType": { - "not": { - "const": "azure" } - } }, - "required": ["provider"] - }, - "then": { + "required": [ + "cert", + "key" + ] + }, + "RequestOptions": { + "title": "RequestOptions", + "type": "object", "properties": { - "model": { - "anyOf": [ - { - "enum": [ - "gpt-3.5-turbo", - "gpt-3.5-turbo-16k", - "gpt-4", - "gpt-3.5-turbo-0613", - "gpt-4-32k", - "gpt-4-turbo-preview", - "gpt-4-vision-preview", - "mistral-7b", - "mistral-8x7b", - "llama2-7b", - "llama2-13b", - "codellama-7b", - "codellama-13b", - "codellama-34b", - "codellama-70b", - "phind-codellama-34b", - "wizardcoder-7b", - "wizardcoder-13b", - "wizardcoder-34b", - "zephyr-7b", - "codeup-13b", - "deepseek-7b", - "deepseek-33b", - "neural-chat-7b", - "deepseek-1b", - "stable-code-3b", - "starcoder-1b", - "starcoder-3b", - "starcoder2-3b", - "mistral-tiny", - "mistral-small", - "mistral-medium", - "AUTODETECT" + "timeout": { + "title": "Timeout", + "description": "Set the timeout for each request to the LLM. If you are running a local LLM that takes a while to respond, you might want to set this to avoid timeouts.", + "default": 7200, + "type": "integer" + }, + "verifySsl": { + "title": "Verify Ssl", + "description": "Whether to verify SSL certificates for requests.", + "type": "boolean" + }, + "caBundlePath": { + "title": "Ca Bundle Path", + "description": "Path to a custom CA bundle to use when making the HTTP request", + "anyOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } ] - }, - { + }, + "proxy": { + "title": "Proxy", + "description": "Proxy URL to use when making the HTTP request", "type": "string" - } - ] - } + }, + "headers": { + "title": "Headers", + "description": "Headers to use when making the HTTP request", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "extraBodyProperties": { + "title": "Extra Body Properties", + "description": "This object will be merged with the body when making the HTTP requests", + "type": "object" + }, + "noProxy": { + "title": "No Proxy", + "description": "A list of hostnames for which Continue should not use the proxy specified in requestOptions.proxy", + "type": "array", + "items": { + "type": "string" + } + }, + "clientCertificate": { + "title": "Client Certificate", + "description": "Client certificate to use when making the HTTP request", + "$ref": "#/definitions/ClientCertificateOptions" + } } - } }, - { - "if": { - "properties": { - "provider": { - "enum": ["anthropic"] - } - }, - "required": ["provider"] - }, - "then": { + "ModelDescription": { + "title": "ModelDescription", + "type": "object", "properties": { - "model": { - "anyOf": [ - { - "enum": [ - "claude-2", - "claude-instant-1", - "claude-3-opus-20240229", - "claude-3-sonnet-20240229", - "claude-3-haiku-20240307", - "claude-2.1" - ] - }, - { + "title": { + "title": "Title", + "description": "The title you wish to give your model.", "type": "string" - } - ] - } - } - } - }, - { - "if": { - "properties": { - "provider": { - "enum": ["bedrock"] - } - }, - "required": ["provider"] - }, - "then": { - "properties": { - "model": { - "anyOf": [ - { + }, + "provider": { + "title": "Provider", + "description": "The provider of the model. This is used to determine the type of model, and how to interact with it.", "enum": [ - "claude-3-sonnet-20240229", - "claude-3-haiku-20240307", - "claude-2" - ] - }, - { + "openai", + "free-trial", + "anthropic", + "cohere", + "bedrock", + "together", + "ollama", + "huggingface-tgi", + "huggingface-inference-api", + "llama.cpp", + "replicate", + "gemini", + "lmstudio", + "llamafile", + "mistral", + "deepinfra", + "groq", + "fireworks", + "cloudflare", + "deepseek", + "azure", + "msty" + ], + "markdownEnumDescriptions": [ + "### OpenAI\nUse gpt-4, gpt-3.5-turbo, or any other OpenAI model. See [here](https://openai.com/product#made-for-developers) to obtain an API key.\n\n> [Reference](https://docs.continue.dev/reference/Model%20Providers/openai)", + "### Free Trial\nNew users can try out Continue for free using a proxy server that securely makes calls to OpenAI using our API key. If you are ready to use your own API key or have used all 250 free uses, you can enter your API key in config.json where it says `apiKey=\"\"` or select another model provider.\n> [Reference](https://docs.continue.dev/reference/Model%20Providers/freetrial)", + "### Anthropic\nTo get started with Anthropic models, you first need to sign up for the open beta [here](https://claude.ai/login) to obtain an API key.\n> [Reference](https://docs.continue.dev/reference/Model%20Providers/anthropicllm)", + "### Cohere\nTo use Cohere, visit the [Cohere dashboard](https://dashboard.cohere.com/api-keys) to create an API key.\n\n> [Reference](https://docs.continue.dev/reference/Model%20Providers/cohere)", + "### Bedrock\nTo get started with Bedrock you need to sign up on AWS [here](https://aws.amazon.com/bedrock/claude/)", + "### Together\nTogether is a hosted service that provides extremely fast streaming of open-source language models. To get started with Together:\n1. Obtain an API key from [here](https://together.ai)\n2. Paste below\n3. Select a model preset\n> [Reference](https://docs.continue.dev/reference/Model%20Providers/togetherllm)", + "### Ollama\nTo get started with Ollama, follow these steps:\n1. Download from [ollama.ai](https://ollama.ai/) and open the application\n2. Open a terminal and run `ollama run `. Example model names are `codellama:7b-instruct` or `llama2:7b-text`. You can find the full list [here](https://ollama.ai/library).\n3. Make sure that the model name used in step 2 is the same as the one in config.json (e.g. `model=\"codellama:7b-instruct\"`)\n4. Once the model has finished downloading, you can start asking questions through Continue.\n> [Reference](https://docs.continue.dev/reference/Model%20Providers/ollama)", + "### Huggingface TGI\n\n> [Reference](https://docs.continue.dev/reference/Model%20Providers/huggingfacetgi)", + "### Huggingface Inference API\n\n> [Reference](https://docs.continue.dev/reference/Model%20Providers/huggingfaceinferenceapi)", + "### Llama.cpp\nllama.cpp comes with a [built-in server](https://github.com/ggerganov/llama.cpp/tree/master/examples/server#llamacppexampleserver) that can be run from source. To do this:\n\n1. Clone the repository with `git clone https://github.com/ggerganov/llama.cpp`.\n2. `cd llama.cpp`\n3. Run `make` to build the server.\n4. Download the model you'd like to use and place it in the `llama.cpp/models` directory (the best place to find models is [The Bloke on HuggingFace](https://huggingface.co/TheBloke))\n5. Run the llama.cpp server with the command below (replacing with the model you downloaded):\n\n```shell\n.\\server.exe -c 4096 --host 0.0.0.0 -t 16 --mlock -m models/codellama-7b-instruct.Q8_0.gguf\n```\n\nAfter it's up and running, you can start using Continue.\n> [Reference](https://docs.continue.dev/reference/Model%20Providers/llamacpp)", + "### Replicate\nReplicate is a hosted service that makes it easy to run ML models. To get started with Replicate:\n1. Obtain an API key from [here](https://replicate.com)\n2. Paste below\n3. Select a model preset\n> [Reference](https://docs.continue.dev/reference/Model%20Providers/replicatellm)", + "### Gemini API\nTo get started with Google Makersuite, obtain your API key from [here](https://makersuite.google.com) and paste it below.\n> [Reference](https://docs.continue.dev/reference/Model%20Providers/geminiapi)", + "### LMStudio\nLMStudio provides a professional and well-designed GUI for exploring, configuring, and serving LLMs. It is available on both Mac and Windows. To get started:\n1. Download from [lmstudio.ai](https://lmstudio.ai/) and open the application\n2. Search for and download the desired model from the home screen of LMStudio.\n3. In the left-bar, click the '<->' icon to open the Local Inference Server and press 'Start Server'.\n4. Once your model is loaded and the server has started, you can begin using Continue.\n> [Reference](https://docs.continue.dev/reference/Model%20Providers/lmstudio)", + "### Llamafile\nTo get started with llamafiles, find and download a binary on their [GitHub repo](https://github.com/Mozilla-Ocho/llamafile#binary-instructions). Then run it with the following command:\n\n```shell\nchmod +x ./llamafile\n./llamafile\n```\n> [Reference](https://docs.continue.dev/reference/Model%20Providers/llamafile)", + "### Mistral API\n\nTo get access to the Mistral API, obtain your API key from the [Mistral platform](https://docs.mistral.ai/)", + "### DeepInfra\n\n> [Reference](https://docs.continue.dev/reference/Model%20Providers/deepinfra)", + "### Groq\nGroq provides extremely fast inference of open-source language models. To get started, obtain an API key from [their console](https://console.groq.com/keys).", + "### Fireworks\nFireworks is a fast inference engine for open-source language models. To get started, obtain an API key from [their console](https://fireworks.ai/api-keys).", + "### Cloudflare Workers AI\n\n[Reference](https://developers.cloudflare.com/workers-ai/)", + "### Deepseek\n Deepseek's API provides the best pricing for their state-of-the-art Deepseek Coder models. To get started, obtain an API key from [their console](https://platform.deepseek.com/api_keys)", + "### Azure OpenAI\n Azure OpenAI lets you securely run OpenAI's models on Azure. To get started, follow the steps [here](https://docs.continue.dev/reference/Model%20Providers/azure)", + "### Msty\nMsty is the simplest way to get started with online or local LLMs on all desktop platforms - Windows, Mac, and Linux. No fussing around, one-click and you are up and running. To get started, follow these steps:\n1. Download from [Msty.app](https://msty.app/), open the application, and click 'Setup Local AI'.\n2. Go to the Local AI Module page and download a model of your choice.\n3. Once the model has finished downloading, you can start asking questions through Continue.\n> [Reference](https://continue.dev/docs/reference/Model%20Providers/Msty)" + ], "type": "string" - } - ] - } - } - } - }, - { - "if": { - "properties": { - "provider": { - "enum": ["google-palm"] - } - }, - "required": ["provider"] - }, - "then": { - "properties": { - "model": { - "enum": [ - "chat-bison-001", - "gemini-pro", - "gemini-1.5-pro-latest" - ] - } - } - } - }, - { - "if": { - "properties": { - "provider": { - "enum": ["together"] - } - }, - "required": ["provider"] - }, - "then": { - "properties": { - "model": { - "anyOf": [ - { - "enum": [ - "mistral-7b", - "mistral-8x7b", - "llama2-7b", - "llama2-13b", - "codellama-7b", - "codellama-13b", - "codellama-34b", - "codellama-70b", - "phind-codellama-34b" - ] - }, - { + }, + "model": { + "title": "Model", + "description": "The name of the model. Used to autodetect prompt template.", "type": "string" - } - ], - "markdownDescription": "Select a pre-defined option, or find an exact model string from Together AI [here](https://docs.together.ai/docs/inference-models)." - } - } - } - }, - { - "if": { - "properties": { - "provider": { - "enum": ["deepinfra"] - } - }, - "required": ["provider"] - }, - "then": { - "properties": { - "model": { - "markdownDescription": "Find the model name you want to use from DeepInfra [here](https://deepinfra.com/models?type=text-generation)." - } - } - } - }, - { - "if": { - "properties": { - "provider": { - "enum": [ - "huggingface-tgi", - "huggingface-inference-api", - "llama.cpp", - "text-gen-webui", - "llamafile" - ] - } - }, - "required": ["provider"] - }, - "then": { - "properties": { - "model": { - "anyOf": [ - { + }, + "apiKey": { + "title": "Api Key", + "description": "OpenAI, Anthropic, Cohere, Together, or other API key", + "type": "string" + }, + "apiBase": { + "title": "Api Base", + "description": "The base URL of the LLM API.", + "type": "string" + }, + "contextLength": { + "title": "Context Length", + "description": "The maximum context length of the LLM in tokens, as counted by countTokens.", + "default": 2048, + "type": "integer" + }, + "template": { + "title": "Template", + "description": "The chat template used to format messages. This is auto-detected for most models, but can be overridden here. Choose none if you are using vLLM or another server that automatically handles prompting.", "enum": [ - "mistral-7b", - "mistral-8x7b", - "llama2-7b", - "llama2-13b", - "codellama-7b", - "codellama-13b", - "codellama-34b", - "codellama-70b", - "phind-codellama-34b", - "wizardcoder-7b", - "wizardcoder-13b", - "wizardcoder-34b", - "zephyr-7b", - "codeup-13b", - "deepseek-7b", - "deepseek-33b", - "neural-chat-7b", - "deepseek-1b", - "stable-code-3b", - "starcoder-1b", - "starcoder-3b", - "starcoder2-3b" + "llama2", + "alpaca", + "zephyr", + "phi2", + "phind", + "anthropic", + "chatml", + "none", + "deepseek", + "openchat", + "xwin-coder", + "neural-chat", + "codellama-70b", + "llava", + "gemma", + "llama3" + ], + "type": "string" + }, + "promptTemplates": { + "title": "Prompt Templates", + "markdownDescription": "A mapping of prompt template name ('edit' is currently the only one used in Continue) to a string giving the prompt template. See [here](https://docs.continue.dev/model-setup/configuration#customizing-the-edit-prompt) for an example.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "completionOptions": { + "title": "Completion Options", + "description": "Options for the completion endpoint. Read more about the completion options in the documentation.", + "default": { + "temperature": null, + "topP": null, + "topK": null, + "presencePenalty": null, + "frequencyPenalty": null, + "stop": null, + "maxTokens": 600 + }, + "allOf": [ + { + "$ref": "#/definitions/BaseCompletionOptions" + } ] - }, - { + }, + "systemMessage": { + "title": "System Message", + "description": "A system message that will always be followed by the LLM", "type": "string" - } - ] - } - } - } - }, - { - "if": { - "properties": { - "provider": { - "enum": ["ollama"] - } - }, - "required": ["provider"] - }, - "then": { - "properties": { - "model": { - "anyOf": [ - { + }, + "requestOptions": { + "title": "Request Options", + "description": "Options for the HTTP request to the LLM.", + "default": { + "timeout": 7200, + "verifySsl": null, + "caBundlePath": null, + "proxy": null, + "headers": null, + "extraBodyProperties": null + }, + "allOf": [ + { + "$ref": "#/definitions/RequestOptions" + } + ] + }, + "apiType": { + "title": "Api Type", + "markdownDescription": "OpenAI API type, either `openai` or `azure`", "enum": [ - "mistral-7b", - "llama2-7b", - "llama2-13b", - "codellama-7b", - "codellama-13b", - "codellama-34b", - "codellama-70b", - "phi-2", - "phind-codellama-34b", - "wizardcoder-7b", - "wizardcoder-13b", - "wizardcoder-34b", - "zephyr-7b", - "codeup-13b", - "deepseek-7b", - "deepseek-33b", - "neural-chat-7b", - "deepseek-1b", - "stable-code-3b", - "starcoder-1b", - "starcoder-3b", - "starcoder2-3b", - "AUTODETECT" + "openai", + "azure" ] - }, - { + }, + "apiVersion": { + "title": "Api Version", + "description": "Azure OpenAI API version (e.g. 2023-07-01-preview)", "type": "string" - } - ], - "markdownDescription": "Select a pre-defined option, or find the exact model tag for an Ollama model [here](https://ollama.ai/library)." - } - } - } - }, - { - "if": { - "properties": { - "provider": { - "enum": ["mistral"] - } - }, - "required": ["provider"] - }, - "then": { - "properties": { - "model": { - "enum": ["mistral-tiny", "mistral-small", "mistral-medium"] - } - } - } - }, - { - "if": { - "properties": { - "provider": { - "enum": ["groq"] - } - }, - "required": ["provider"] - }, - "then": { - "properties": { - "model": { - "enum": ["llama2-70b", "mistral-8x7b", "gemma"] - } - } - } - }, - { - "if": { - "properties": { - "apiType": { - "const": "azure" - } - }, - "required": ["apiType"] - }, - "then": { - "required": ["engine", "apiVersion", "apiBase"] - } - }, - { - "if": { - "properties": { - "provider": { - "enum": ["openai"] - } - }, - "required": ["provider"] - }, - "then": { - "properties": { - "useLegacyCompletionsEndpoint": { - "type": "boolean" - } - } - } - }, - { - "if": { - "properties": { - "provider": { - "const": "llamafile" - } - }, - "required": ["provider"] - }, - "then": { - "properties": { - "llamafileCommand": { - "type": "string" - } - } - } - }, - { - "if": { - "properties": { - "provider": { - "enum": ["text-gen-webui"] - } - }, - "required": ["provider"] - }, - "then": { - "properties": { - "streamingUrl": { - "type": "string" - } - } - } - }, - { - "if": { - "properties": { - "provider": { - "enum": ["flowise"] - } + }, + "engine": { + "title": "Engine", + "description": "Azure OpenAI engine", + "type": "string" + } }, - "required": ["provider"] - }, - "then": { - "properties": { - "timeout": { - "title": "Timeout", - "description": "Set the timeout for each request to Flowise. If you are running a local version of Flowise it might takes a while to respond, you might want to set this to avoid timeouts.", - "default": 5000, - "type": "integer" - }, - "additionalHeaders": { - "description": "A list of additional headers", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "title": "Key", - "description": "Header key", - "type": "string" + "required": [ + "title", + "provider", + "model" + ], + "allOf": [ + { + "if": { + "properties": { + "provider": { + "type": "str" + } + }, + "not": { + "required": [ + "provider" + ] + } }, - "value": { - "title": "Value", - "description": "Header value", - "type": "string" + "then": { + "properties": { + "model": { + "description": "Choose a provider first, then model options will be shown here." + } + } } - }, - "required": ["key", "value"] - } - }, - "additionalFlowiseConfiguration": { - "description": "A list of additional properties to be sent along `overrideConfig`", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "title": "Key", - "description": "Configuration Property key", - "type": "string" + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "openai", + "anthropic", + "cohere", + "gemini", + "huggingface-inference-api", + "replicate", + "together", + "cloudflare" + ] + } + }, + "required": [ + "provider" + ] }, - "value": { - "title": "Value", - "description": "Configuration Property value" + "then": { + "required": [ + "apiKey" + ] } - }, - "required": ["key", "value"] - } - }, - "model": { - "anyOf": [ - { - "enum": [ - "gpt-3.5-turbo", - "gpt-3.5-turbo-16k", - "gpt-4", - "gpt-3.5-turbo-0613", - "gpt-4-32k", - "gpt-4-turbo-preview", - "gpt-4-vision-preview", - "mistral-7b", - "mistral-8x7b", - "llama2-7b", - "llama2-13b", - "codellama-7b", - "codellama-13b", - "codellama-34b", - "codellama-70b", - "phind-codellama-34b", - "wizardcoder-7b", - "wizardcoder-13b", - "wizardcoder-34b", - "zephyr-7b", - "codeup-13b", - "deepseek-7b", - "deepseek-33b", - "claude-2", - "claude-instant-1", - "claude-3-opus-20240229", - "claude-3-sonnet-20240229", - "claude-3-haiku-20240307", - "claude-2.1", - "chat-bison-001", - "gemini-pro", - "gemini-1.5-pro-latest", - "mistral-tiny", - "mistral-small", - "mistral-medium", - "deepseek-1b", - "stable-code-3b", - "starcoder-1b", - "starcoder-3b", - "starcoder2-3b" + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "huggingface-tgi", + "huggingface-inference-api" + ] + } + } + }, + "then": { + "required": [ + "apiBase" + ] + }, + "required": [ + "provider" ] - }, - { - "type": "string" - } - ] - } - } - } - } - ] - }, - "ModelRoles": { - "title": "ModelRoles", - "type": "object", - "properties": { - "default": { - "title": "Default", - "description": "The default model. If other model roles are not set, they will fall back to default.", - "type": "string" - }, - "chat": { - "title": "Chat", - "description": "The model to use for chat. If not set, will fall back to default.", - "type": "string" - }, - "edit": { - "title": "Edit", - "description": "The model to use for editing. If not set, will fall back to default.", - "type": "string" - }, - "summarize": { - "title": "Summarize", - "description": "The model to use for summarization. If not set, will fall back to default.", - "type": "string" - } - }, - "required": ["default"] - }, - "SlashCommand": { - "title": "SlashCommand", - "type": "object", - "properties": { - "name": { - "title": "Name", - "anyOf": [ - { - "enum": [ - "issue", - "share", - "so", - "cmd", - "edit", - "comment", - "http", - "commit", - "review" - ], - "type": "string", - "markdownEnumDescriptions": [ - "Generate a link to a drafted GitHub issue", - "Export the current chat session to markdown", - "Reference StackOverflow to answer the question", - "Generate a terminal command and paste it into the terminal", - "Edit the highlighted code with given instructions", - "Add comments to the highlighted code", - "Write a custom slash command at your own HTTP endpoint. Set 'url' in the params object for the endpoint you have setup.", - "Generate a commit message for the current changes", - "Review code and give feedback" - ] - }, - { - "type": "string" - } - ] - }, - "description": { - "title": "Description", - "type": "string" - }, - "step": { - "title": "Step", - "description": "This property is no longer required and has no effect. To use a built-in slash command, instead set the 'name' property to one of the pre-configured options.", - "type": "string" - }, - "params": { - "title": "Params", - "default": {}, - "type": "object" - } - }, - "allOf": [ - { - "if": { - "properties": { - "name": { - "enum": ["issue"] - } - } - }, - "then": { - "properties": { - "params": { - "properties": { - "repositoryUrl": { - "type": "string", - "description": "Enter the URL of the GitHub repository for which you want to generate the issue." - } - }, - "required": ["repositoryUrl"] - } - }, - "required": ["params"] - } - }, - { - "if": { - "properties": { - "name": { - "enum": ["edit"] - } - } - }, - "then": { - "properties": { - "params": { - "properties": { - "recap": { - "type": "boolean", - "markdownDescription": "If recap is set to `true`, Continue will generate a summary of the changes after making the edit." - }, - "tokenLimit": { - "type": "integer", - "markdownDescription": "By default, Continue doesn't let you edit extremely large ranges (beyond 1,200 tokens), because the LLM is unlikely to succeed. But if you would like to override this limit with the understanding of possible failure you may do so here." - } - } - } - } - } - } - ], - "required": ["name", "description"] - }, - "CustomCommand": { - "title": "CustomCommand", - "type": "object", - "properties": { - "name": { - "title": "Name", - "type": "string" - }, - "prompt": { - "title": "Prompt", - "type": "string" - }, - "description": { - "title": "Description", - "type": "string" - } - }, - "required": ["name", "prompt", "description"] - }, - "ContextProviderWithParams": { - "title": "ContextProviderWithParams", - "type": "object", - "properties": { - "name": { - "title": "Name", - "anyOf": [ - { - "enum": [ - "diff", - "terminal", - "locals", - "open", - "google", - "search", - "http", - "codebase", - "problems", - "folder", - "issue", - "docs", - "tree", - "highlights", - "outline", - "postgres", - "code", - "system" - ], - "markdownEnumDescriptions": [ - "Reference the contents of the current changes as given by `git diff`", - "Reference the contents of the terminal", - "Reference the contents of all open or pinned files.", - "Enter a search phrase and include the Google search results as context", - "Reference the results of a ripgrep search in your codebase", - "Write a custom context provider at your own HTTP endpoint. Set 'url' in the params object for the endpoint you have setup.", - "Use embeddings to automatically find relevant files from throughout the codebase", - "Reference all linting errors and warnings in the currently open file", - "Include important files from a folder in the prompt, as determined by similarity search", - "Reference GitHub issues from a repository", - "Retrieve important pages from a documentation website, as determined by similarity search", - "Index and retrieve the contents of any documentation site, using embeddings to find important snippets", - "Display a file tree of the current workspace", - "Include a repo map showing important code objects", - "Displays important snippets of code from the currently open files", - "Displays definition lines from the currently open files", - "References Postgres table schema and sample rows", - "Reference specific functions and classes from throughout your codebase", - "Reference your operating system and cpu" - ], - "type": "string" - }, - { - "type": "string" - } - ] - }, - "params": { - "title": "Params", - "default": {}, - "type": "object" - } - }, - "allOf": [ - { - "if": { - "properties": { - "name": { - "enum": ["google"] - } - } - }, - "then": { - "properties": { - "params": { - "properties": { - "serperApiKey": { - "type": "string", - "description": "Your API key for https://serper.dev in order to get Google search results" - } - }, - "required": ["serperApiKey"] - } - }, - "required": ["params"] - } - }, - { - "if": { - "properties": { - "name": { - "enum": ["open"] - } - } - }, - "then": { - "properties": { - "params": { - "properties": { - "onlyPinned": { - "type": "boolean", - "description": "If set to true, only 'pinned' files will be included.", - "default": false - } - } - } - } - } - }, - { - "if": { - "properties": { - "name": { - "enum": ["issue"] - } - } - }, - "then": { - "properties": { - "params": { - "properties": { - "githubToken": { - "type": "string", - "description": "Your GitHub token to access the GitHub API. Required for private repositories." - }, - "repos": { - "type": "array", - "description": "A list of repositories to search for issues", - "items": { - "type": "object", - "properties": { - "owner": { - "type": "string", - "description": "The owner of the repository" - }, - "repo": { - "type": "string", - "description": "The name of the repository" - }, - "type": { - "type": "string", - "description": "The type of issues to search for", - "enum": ["open", "closed", "all"] + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "openai" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "properties": { + "engine": { + "type": "string" + }, + "apiType": { + "type": "string" + }, + "apiVersion": { + "type": "string" + } } - }, - "required": ["owner", "repo"] } - } }, - "required": ["repos"] - } - }, - "required": ["params"] - } - }, - { - "if": { - "properties": { - "name": { - "enum": ["database"] - } - } - }, - "then": { - "connections": { - "type": "array", - "description": "A list of database connections", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "A unique name for this database connection" - }, - "connection_type": { - "type": "string", - "description": "The type of database (e.g., 'postgres', 'mysql')", - "enum": ["postgres", "mysql", "sqlite"] - }, - "connection": { - "type": "object", - "properties": { - "user": { - "type": "string", - "description": "The database user name" - }, - "host": { - "type": "string", - "description": "The host address of the database server" - }, - "database": { - "type": "string", - "description": "The name of the database to connect to" - }, - "password": { - "type": "string", - "description": "The password for the database user" - }, - "port": { - "type": "integer", - "description": "The port number to connect to at the host" - }, - "filename": { - "type": "string", - "description": "File location for simple file DB's" - } + { + "if": { + "properties": { + "provider": { + "enum": [ + "cloudflare" + ] + } + }, + "required": [ + "provider" + ] }, - "required": [] - } + "then": { + "properties": { + "accountId": { + "type": "string" + }, + "aiGatewaySlug": { + "type": "string" + }, + "model": { + "anyOf": [ + { + "enum": [ + "@cf/meta/llama-3-8b-instruct", + "@hf/thebloke/deepseek-coder-6.7b-instruct-awq", + "@cf/deepseek-ai/deepseek-math-7b-instruct", + "@cf/thebloke/discolm-german-7b-v1-awq", + "@cf/tiiuae/falcon-7b-instruct", + "@cf/google/gemma-2b-it-lora", + "@hf/google/gemma-7b-it", + "@cf/google/gemma-7b-it-lora", + "@hf/nousresearch/hermes-2-pro-mistral-7b", + "@cf/meta/llama-2-7b-chat-fp16", + "@cf/meta/llama-2-7b-chat-int8", + "@cf/meta-llama/llama-2-7b-chat-hf-lora", + "@hf/thebloke/llama-2-13b-chat-awq", + "@hf/thebloke/llamaguard-7b-awq", + "@cf/mistral/mistral-7b-instruct-v0.1", + "@hf/mistral/mistral-7b-instruct-v0.2", + "@cf/mistral/mistral-7b-instruct-v0.2-lora", + "@hf/thebloke/neural-chat-7b-v3-1-awq", + "@cf/openchat/openchat-3.5-0106", + "@hf/thebloke/openhermes-2.5-mistral-7b-awq", + "@cf/microsoft/phi-2", + "@cf/qwen/qwen1.5-0.5b-chat", + "@cf/qwen/qwen1.5-1.8b-chat", + "@cf/qwen/qwen1.5-7b-chat-awq", + "@cf/qwen/qwen1.5-14b-chat-awq", + "@cf/defog/sqlcoder-7b-2", + "@hf/nexusflow/starling-lm-7b-beta", + "@cf/tinyllama/tinyllama-1.1b-chat-v1.0", + "@hf/thebloke/zephyr-7b-beta-awq", + "@hf/thebloke/deepseek-coder-6.7b-base-awq" + ] + }, + { + "type": "string" + } + ] + } + } + } }, - "required": ["name", "type", "connection"] - } - }, - "required": ["connections"] - } + { + "if": { + "properties": { + "provider": { + "enum": [ + "openai" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "properties": { + "model": { + "anyOf": [ + { + "enum": [ + "gpt-3.5-turbo", + "gpt-3.5-turbo-16k", + "gpt-4o", + "gpt-4", + "gpt-3.5-turbo-0613", + "gpt-4-32k", + "gpt-4-0125-preview", + "gpt-4-turbo", + "AUTODETECT" + ] + }, + { + "type": "string" + } + ] + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "replicate" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "properties": { + "model": { + "anyOf": [ + { + "enum": [ + "llama3-8b", + "llama3-70b", + "codellama-7b", + "codellama-13b", + "codellama-34b", + "llama2-7b", + "llama2-13b" + ] + }, + { + "type": "string" + } + ] + }, + "markdownDescription": "Select a pre-defined option, or find an exact model ID from Replicate [here](https://replicate.com/collections/streaming-language-models)." + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "free-trial" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "properties": { + "model": { + "enum": [ + "gpt-4o", + "codestral-latest", + "llama3-70b", + "gpt-3.5-turbo", + "phind-codellama-34b", + "gemini-pro", + "mistral-8x7b", + "claude-3-5-sonnet-20240620", + "claude-3-haiku-20240307", + "AUTODETECT" + ] + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "openai" + ] + }, + "apiType": { + "not": { + "const": "azure" + } + } + }, + "required": [ + "provider" + ] + }, + "then": { + "properties": { + "model": { + "anyOf": [ + { + "enum": [ + "gpt-3.5-turbo", + "gpt-3.5-turbo-16k", + "gpt-4o", + "gpt-4", + "gpt-3.5-turbo-0613", + "gpt-4-32k", + "gpt-4-turbo", + "gpt-4-vision-preview", + "mistral-7b", + "mistral-8x7b", + "llama2-7b", + "llama2-13b", + "codellama-7b", + "codellama-13b", + "codellama-34b", + "codellama-70b", + "llama3-8b", + "llama3-70b", + "phind-codellama-34b", + "wizardcoder-7b", + "wizardcoder-13b", + "wizardcoder-34b", + "zephyr-7b", + "codeup-13b", + "deepseek-7b", + "deepseek-33b", + "neural-chat-7b", + "deepseek-1b", + "stable-code-3b", + "starcoder-1b", + "starcoder-3b", + "starcoder2-3b", + "mistral-tiny", + "mistral-small", + "mistral-medium", + "AUTODETECT" + ] + }, + { + "type": "string" + } + ] + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "anthropic" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "properties": { + "model": { + "anyOf": [ + { + "enum": [ + "claude-2", + "claude-instant-1", + "claude-3-5-sonnet-20240620", + "claude-3-opus-20240229", + "claude-3-sonnet-20240229", + "claude-3-haiku-20240307", + "claude-2.1" + ] + }, + { + "type": "string" + } + ] + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "cohere" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "properties": { + "model": { + "enum": [ + "command-r", + "command-r-plus" + ] + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "bedrock" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "properties": { + "model": { + "anyOf": [ + { + "enum": [ + "claude-3-sonnet-20240229", + "claude-3-haiku-20240307", + "claude-2" + ] + }, + { + "type": "string" + } + ] + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "gemini" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "properties": { + "model": { + "enum": [ + "chat-bison-001", + "gemini-pro", + "gemini-1.5-pro-latest", + "gemini-1.5-pro", + "gemini-1.5-flash-latest", + "gemini-1.5-flash" + ] + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "together" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "properties": { + "model": { + "anyOf": [ + { + "enum": [ + "mistral-7b", + "mistral-8x7b", + "llama2-7b", + "llama2-13b", + "llama3-8b", + "llama3-70b", + "codellama-7b", + "codellama-13b", + "codellama-34b", + "codellama-70b", + "phind-codellama-34b" + ] + }, + { + "type": "string" + } + ], + "markdownDescription": "Select a pre-defined option, or find an exact model string from Together AI [here](https://docs.together.ai/docs/inference-models)." + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "deepinfra" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "properties": { + "model": { + "markdownDescription": "Find the model name you want to use from DeepInfra [here](https://deepinfra.com/models?type=text-generation)." + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "huggingface-tgi", + "huggingface-inference-api", + "llama.cpp", + "text-gen-webui", + "llamafile" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "properties": { + "model": { + "anyOf": [ + { + "enum": [ + "mistral-7b", + "mistral-8x7b", + "llama2-7b", + "llama2-13b", + "codellama-7b", + "codellama-13b", + "codellama-34b", + "codellama-70b", + "llama3-8b", + "llama3-70b", + "phind-codellama-34b", + "wizardcoder-7b", + "wizardcoder-13b", + "wizardcoder-34b", + "zephyr-7b", + "codeup-13b", + "deepseek-7b", + "deepseek-33b", + "neural-chat-7b", + "deepseek-1b", + "stable-code-3b", + "starcoder-1b", + "starcoder-3b", + "starcoder2-3b" + ] + }, + { + "type": "string" + } + ] + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "ollama" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "properties": { + "model": { + "anyOf": [ + { + "enum": [ + "mistral-7b", + "llama2-7b", + "llama2-13b", + "codellama-7b", + "codellama-13b", + "codellama-34b", + "codellama-70b", + "llama3-8b", + "llama3-70b", + "phi-2", + "phind-codellama-34b", + "wizardcoder-7b", + "wizardcoder-13b", + "wizardcoder-34b", + "zephyr-7b", + "codeup-13b", + "deepseek-7b", + "deepseek-33b", + "neural-chat-7b", + "deepseek-1b", + "stable-code-3b", + "starcoder-1b", + "starcoder-3b", + "starcoder2-3b", + "AUTODETECT" + ] + }, + { + "type": "string" + } + ], + "markdownDescription": "Select a pre-defined option, or find the exact model tag for an Ollama model [here](https://ollama.ai/library)." + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "mistral" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "properties": { + "model": { + "enum": [ + "codestral-latest", + "codestral-mamba-latest", + "open-mistral-7b", + "open-mixtral-8x7b", + "open-mixtral-8x22b", + "mistral-small-latest", + "mistral-large-latest" + ] + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "deepseek" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "properties": { + "model": { + "enum": [ + "deepseek-chat", + "deepseek-coder" + ] + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "groq" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "properties": { + "model": { + "enum": [ + "llama2-70b", + "mistral-8x7b", + "gemma", + "llama3-8b", + "llama3-70b", + "AUTODETECT" + ] + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "fireworks" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "properties": { + "model": { + "enum": [ + "starcoder-7b" + ] + } + } + } + }, + { + "if": { + "properties": { + "apiType": { + "const": "azure" + } + }, + "required": [ + "apiType" + ] + }, + "then": { + "required": [ + "engine", + "apiVersion", + "apiBase" + ] + } + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "openai" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "properties": { + "useLegacyCompletionsEndpoint": { + "type": "boolean" + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "const": "llamafile" + } + }, + "required": [ + "provider" + ] + }, + "then": { + "properties": { + "llamafileCommand": { + "type": "string" + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "text-gen-webui" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "properties": { + "streamingUrl": { + "type": "string" + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "flowise" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "properties": { + "timeout": { + "title": "Timeout", + "description": "Set the timeout for each request to Flowise. If you are running a local version of Flowise it might takes a while to respond, you might want to set this to avoid timeouts.", + "default": 5000, + "type": "integer" + }, + "additionalHeaders": { + "description": "A list of additional headers", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "title": "Key", + "description": "Header key", + "type": "string" + }, + "value": { + "title": "Value", + "description": "Header value", + "type": "string" + } + }, + "required": [ + "key", + "value" + ] + } + }, + "additionalFlowiseConfiguration": { + "description": "A list of additional properties to be sent along `overrideConfig`", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "title": "Key", + "description": "Configuration Property key", + "type": "string" + }, + "value": { + "title": "Value", + "description": "Configuration Property value" + } + }, + "required": [ + "key", + "value" + ] + } + }, + "model": { + "anyOf": [ + { + "enum": [ + "gpt-3.5-turbo", + "gpt-3.5-turbo-16k", + "gpt-4o", + "gpt-4", + "gpt-3.5-turbo-0613", + "gpt-4-32k", + "gpt-4-turbo", + "gpt-4-vision-preview", + "mistral-7b", + "mistral-8x7b", + "llama2-7b", + "llama2-13b", + "codellama-7b", + "codellama-13b", + "codellama-34b", + "codellama-70b", + "llama3-8b", + "llama3-70b", + "phind-codellama-34b", + "wizardcoder-7b", + "wizardcoder-13b", + "wizardcoder-34b", + "zephyr-7b", + "codeup-13b", + "deepseek-7b", + "deepseek-33b", + "claude-2", + "claude-instant-1", + "claude-3-5-sonnet-20240620", + "claude-3-opus-20240229", + "claude-3-sonnet-20240229", + "claude-3-haiku-20240307", + "claude-2.1", + "command-r", + "command-r-plus", + "chat-bison-001", + "gemini-pro", + "gemini-1.5-pro-latest", + "gemini-1.5-pro", + "gemini-1.5-flash-latest", + "gemini-1.5-flash", + "mistral-tiny", + "mistral-small", + "mistral-medium", + "deepseek-1b", + "stable-code-3b", + "starcoder-1b", + "starcoder-3b", + "starcoder2-3b" + ] + }, + { + "type": "string" + } + ] + } + } + } + } + ] }, - { - "if": { - "properties": { - "name": { - "enum": ["gitlab-mr"] - } - } - }, - "then": { + "ModelRoles": { + "title": "ModelRoles", + "type": "object", "properties": { - "params": { - "properties": { - "domain": { - "type": "string", - "description": "Your GitLab domain, will default to gitlab.com" - }, - "token": { - "type": "string", - "description": "Your private access token." - }, - "filterComments": { - "type": "boolean", - "description": "If you have code selected, filters out comments that aren't related to the selection." - } + "default": { + "title": "Default", + "description": "The default model. If other model roles are not set, they will fall back to default.", + "type": "string" + }, + "chat": { + "title": "Chat", + "description": "The model to use for chat. If not set, will fall back to default.", + "type": "string" + }, + "edit": { + "title": "Edit", + "description": "The model to use for editing. If not set, will fall back to default.", + "type": "string" }, - "required": ["token"] - } + "summarize": { + "title": "Summarize", + "description": "The model to use for summarization. If not set, will fall back to default.", + "type": "string" + } }, - "required": ["params"] - } + "required": [ + "default" + ] }, - { - "if": { + "SlashCommand": { + "title": "SlashCommand", + "type": "object", "properties": { - "name": { - "enum": ["jira"] - } - } - }, - "then": { - "properties": { - "params": { - "properties": { - "domain": { - "type": "string", - "description": "Your Jira domain, for example company.atlassian.net." - }, - "email": { - "type": "string", - "description": "The email that you log into Jira with" - }, - "token": { - "type": "string", - "description": "Your atlassian API token from https://id.atlassian.com/manage-profile/security/api-tokens" - }, - "issueQuery": { - "type": "string", - "description": "Customize the query used to find Jira issues" - }, - "apiVersion": { - "type": "integer", - "markdownDescription": "This context provider supports both Jira API version 2 and 3. It will use version 3 by default since that's what the cloud version uses, but if you have the datacenter version of Jira, you'll need to set the API Version to 2 using the `apiVersion` property." - }, - "requestOptions": { - "title": "Request Options", - "description": "Options for the HTTPS request to Jira.", - "default": { - "timeout": 7200, - "verifySsl": null, - "caBundlePath": null, - "proxy": null, - "headers": null, - "extraBodyProperties": null - }, - "allOf": [ - { - "$ref": "#/definitions/RequestOptions" - } + "name": { + "title": "Name", + "anyOf": [ + { + "enum": [ + "issue", + "share", + "so", + "cmd", + "edit", + "comment", + "http", + "commit", + "review" + ], + "type": "string", + "markdownEnumDescriptions": [ + "Generate a link to a drafted GitHub issue", + "Export the current chat session to markdown", + "Reference StackOverflow to answer the question", + "Generate a terminal command and paste it into the terminal", + "Edit the highlighted code with given instructions", + "Add comments to the highlighted code", + "Write a custom slash command at your own HTTP endpoint. Set 'url' in the params object for the endpoint you have setup.", + "Generate a commit message for the current changes", + "Review code and give feedback" + ] + }, + { + "type": "string" + } ] - } }, - "required": ["domain", "token"] - } + "description": { + "title": "Description", + "type": "string" + }, + "step": { + "title": "Step", + "description": "This property is no longer required and has no effect. To use a built-in slash command, instead set the 'name' property to one of the pre-configured options.", + "type": "string" + }, + "params": { + "title": "Params", + "default": {}, + "type": "object" + } }, - "required": ["params"] - } - }, - { - "if": { - "properties": { - "name": { - "enum": ["http"] - } - } - }, - "then": { + "allOf": [ + { + "if": { + "properties": { + "name": { + "enum": [ + "issue" + ] + } + } + }, + "then": { + "properties": { + "params": { + "properties": { + "repositoryUrl": { + "type": "string", + "description": "Enter the URL of the GitHub repository for which you want to generate the issue." + } + }, + "required": [ + "repositoryUrl" + ] + } + }, + "required": [ + "params" + ] + } + }, + { + "if": { + "properties": { + "name": { + "enum": [ + "edit" + ] + } + } + }, + "then": { + "properties": { + "params": { + "properties": { + "recap": { + "type": "boolean", + "markdownDescription": "If recap is set to `true`, Continue will generate a summary of the changes after making the edit." + }, + "tokenLimit": { + "type": "integer", + "markdownDescription": "By default, Continue doesn't let you edit extremely large ranges (beyond 1,200 tokens), because the LLM is unlikely to succeed. But if you would like to override this limit with the understanding of possible failure you may do so here." + } + } + } + } + } + }, + { + "if": { + "properties": { + "name": { + "enum": [ + "share" + ] + } + } + }, + "then": { + "properties": { + "params": { + "properties": { + "outputDir": { + "type": "string", + "markdownDescription": "If outputDir is set to `.` or begins with `./` or `.\\`, file will be saved to the current workspace or a subdirectory thereof, respectively. `~` can similarly be used to specify the user's home directory." + } + } + } + } + } + } + ], + "required": [ + "name", + "description" + ] + }, + "CustomCommand": { + "title": "CustomCommand", + "type": "object", "properties": { - "params": { - "properties": { - "url": { - "type": "string", - "description": "The HTTP endpoint of your context provider server." - } - }, - "required": ["url"] - } + "name": { + "title": "Name", + "type": "string" + }, + "prompt": { + "title": "Prompt", + "type": "string" + }, + "description": { + "title": "Description", + "type": "string" + } }, - "required": ["params"] - } - }, - { - "if": { + "required": [ + "name", + "prompt", + "description" + ] + }, + "ContextProviderWithParams": { + "title": "ContextProviderWithParams", + "type": "object", "properties": { - "name": { - "enum": ["codebase", "folder"] - } - } - }, - "then": { + "name": { + "title": "Name", + "anyOf": [ + { + "enum": [ + "diff", + "terminal", + "locals", + "open", + "google", + "search", + "http", + "codebase", + "problems", + "folder", + "issue", + "docs", + "tree", + "highlights", + "outline", + "postgres", + "code", + "currentFile", + "url", + "database", + "os" + ], + "markdownEnumDescriptions": [ + "Reference the contents of the current changes as given by `git diff`", + "Reference the contents of the terminal", + "Reference the contents of the local variables with top n level (defaulting to 3) of call stack for that thread", + "Reference the contents of all open or pinned files.", + "Enter a search phrase and include the Google search results as context", + "Reference the results of a ripgrep search in your codebase", + "Write a custom context provider at your own HTTP endpoint. Set 'url' in the params object for the endpoint you have setup.", + "Use embeddings to automatically find relevant files from throughout the codebase", + "Reference all linting errors and warnings in the currently open file", + "Include important files from a folder in the prompt, as determined by similarity search", + "Reference GitHub issues from a repository", + "Retrieve important pages from a documentation website, as determined by similarity search", + "Display a file tree of the current workspace", + "Include important highlighted sections from your code", + "Include a repo map showing important code objects", + "References Postgres table schema and sample rows", + "Reference specific functions and classes from throughout your codebase", + "Reference the contents of the currently active file", + "Reference the contents of a page at a URL", + "Reference table schemas", + "Operating system and CPU Information" + ], + "type": "string" + }, + { + "type": "string" + } + ] + }, + "params": { + "title": "Params", + "default": {}, + "type": "object" + } + }, + "allOf": [ + { + "if": { + "properties": { + "name": { + "enum": [ + "google" + ] + } + } + }, + "then": { + "properties": { + "params": { + "properties": { + "serperApiKey": { + "type": "string", + "description": "Your API key for https://serper.dev in order to get Google search results" + } + }, + "required": [ + "serperApiKey" + ] + } + }, + "required": [ + "params" + ] + } + }, + { + "if": { + "properties": { + "name": { + "enum": [ + "open" + ] + } + } + }, + "then": { + "properties": { + "params": { + "properties": { + "onlyPinned": { + "type": "boolean", + "description": "If set to true, only 'pinned' files will be included.", + "default": false + } + } + } + } + } + }, + { + "if": { + "properties": { + "name": { + "enum": [ + "issue" + ] + } + } + }, + "then": { + "properties": { + "params": { + "properties": { + "githubToken": { + "type": "string", + "description": "Your GitHub token to access the GitHub API. Required for private repositories." + }, + "repos": { + "type": "array", + "description": "A list of repositories to search for issues", + "items": { + "type": "object", + "properties": { + "owner": { + "type": "string", + "description": "The owner of the repository" + }, + "repo": { + "type": "string", + "description": "The name of the repository" + }, + "type": { + "type": "string", + "description": "The type of issues to search for", + "enum": [ + "open", + "closed", + "all" + ] + } + }, + "required": [ + "owner", + "repo" + ] + } + } + }, + "required": [ + "repos" + ] + } + }, + "required": [ + "params" + ] + } + }, + { + "if": { + "properties": { + "name": { + "enum": [ + "database" + ] + } + } + }, + "then": { + "properties": { + "params": { + "properties": { + "connections": { + "type": "array", + "description": "A list of database connections", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "A unique name for this database connection" + }, + "connection_type": { + "type": "string", + "description": "The type of database (e.g., 'postgres', 'mysql')", + "enum": [ + "postgres", + "mysql", + "sqlite" + ] + }, + "connection": { + "type": "object", + "properties": { + "user": { + "type": "string", + "description": "The database user name" + }, + "host": { + "type": "string", + "description": "The host address of the database server" + }, + "database": { + "type": "string", + "description": "The name of the database to connect to" + }, + "password": { + "type": "string", + "description": "The password for the database user" + }, + "port": { + "type": "integer", + "description": "The port number to connect to at the host" + }, + "filename": { + "type": "string", + "description": "File location for simple file DB's" + } + }, + "required": [] + } + }, + "required": [ + "name", + "connection_type", + "connection" + ] + } + } + }, + "required": [ + "connections" + ] + } + }, + "required": [ + "params" + ] + } + }, + { + "if": { + "properties": { + "name": { + "enum": [ + "gitlab-mr" + ] + } + } + }, + "then": { + "properties": { + "params": { + "properties": { + "domain": { + "type": "string", + "description": "Your GitLab domain, will default to gitlab.com" + }, + "token": { + "type": "string", + "description": "Your private access token." + }, + "filterComments": { + "type": "boolean", + "description": "If you have code selected, filters out comments that aren't related to the selection." + } + }, + "required": [ + "token" + ] + } + }, + "required": [ + "params" + ] + } + }, + { + "if": { + "properties": { + "name": { + "enum": [ + "jira" + ] + } + } + }, + "then": { + "properties": { + "params": { + "properties": { + "domain": { + "type": "string", + "description": "Your Jira domain, for example company.atlassian.net." + }, + "email": { + "type": "string", + "description": "The email that you log into Jira with" + }, + "token": { + "type": "string", + "description": "Your atlassian API token from https://id.atlassian.com/manage-profile/security/api-tokens" + }, + "issueQuery": { + "type": "string", + "description": "Customize the query used to find Jira issues" + }, + "apiVersion": { + "type": "integer", + "markdownDescription": "This context provider supports both Jira API version 2 and 3. It will use version 3 by default since that's what the cloud version uses, but if you have the datacenter version of Jira, you'll need to set the API Version to 2 using the `apiVersion` property." + }, + "requestOptions": { + "title": "Request Options", + "description": "Options for the HTTPS request to Jira.", + "default": { + "timeout": 7200, + "verifySsl": null, + "caBundlePath": null, + "proxy": null, + "headers": null, + "extraBodyProperties": null + }, + "allOf": [ + { + "$ref": "#/definitions/RequestOptions" + } + ] + } + }, + "required": [ + "domain", + "token" + ] + } + }, + "required": [ + "params" + ] + } + }, + { + "if": { + "properties": { + "name": { + "enum": [ + "http" + ] + } + } + }, + "then": { + "properties": { + "params": { + "properties": { + "url": { + "type": "string", + "description": "The HTTP endpoint of your context provider server." + } + }, + "required": [ + "url" + ] + } + }, + "required": [ + "params" + ] + } + }, + { + "if": { + "properties": { + "name": { + "enum": [ + "codebase", + "folder" + ] + } + } + }, + "then": { + "properties": { + "params": { + "properties": { + "nRetrieve": { + "title": "N Retrieve", + "description": "Number of results to initially retrieve from vector database", + "default": 50, + "type": "integer" + }, + "nFinal": { + "title": "N Final", + "description": "Final number of results to use after re-ranking", + "default": 10, + "type": "integer" + }, + "useReranking": { + "title": "Use Reranking", + "description": "Whether to use re-ranking, which will allow initial selection of nRetrieve results, then will use an LLM to select the top nFinal results. Disabling re-ranking will give faster, but less accurate, results.", + "default": true, + "type": "boolean" + } + } + } + } + } + }, + { + "if": { + "properties": { + "name": { + "enum": [ + "postgres" + ] + } + } + }, + "then": { + "properties": { + "params": { + "properties": { + "host": { + "title": "Host", + "description": "Database host", + "default": "localhost", + "type": "string" + }, + "port": { + "title": "Port", + "description": "Database port", + "default": 5432, + "type": "integer" + }, + "user": { + "title": "User", + "description": "Database user", + "default": "postgres", + "type": "string" + }, + "password": { + "title": "Password", + "description": "Database password", + "type": "string" + }, + "database": { + "title": "Database", + "description": "Database name", + "default": "postgres", + "type": "string" + }, + "schema": { + "title": "Schema", + "description": "Database schema", + "default": "public", + "type": "string" + }, + "sampleRows": { + "title": "Sample Rows", + "description": "Number of rows to sample from the database", + "default": 3, + "type": "integer" + } + } + } + }, + "required": [ + "host", + "port", + "user", + "password", + "database" + ] + } + } + ], + "required": [ + "name" + ] + }, + "SerializedContinueConfig": { + "title": "config.json", + "type": "object", "properties": { - "params": { - "properties": { - "nRetrieve": { - "title": "N Retrieve", - "description": "Number of results to initially retrieve from vector database", - "default": 50, - "type": "integer" - }, - "nFinal": { - "title": "N Final", - "description": "Final number of results to use after re-ranking", - "default": 10, - "type": "integer" - }, - "useReranking": { - "title": "Use Reranking", - "description": "Whether to use re-ranking, which will allow initial selection of nRetrieve results, then will use an LLM to select the top nFinal results. Disabling re-ranking will give faster, but less accurate, results.", + "allowAnonymousTelemetry": { + "title": "Allow Anonymous Telemetry", + "markdownDescription": "If this field is set to True, we will collect anonymous telemetry as described in the documentation page on telemetry. If set to `false`, we will not collect any data. Learn more in [the docs](https://docs.continue.dev/telemetry).", "default": true, "type": "boolean" - } - } - } - } - } - }, - { - "if": { - "properties": { - "name": { - "enum": ["postgres"] - } - } - }, - "then": { - "properties": { - "params": { - "properties": { - "host": { - "title": "Host", - "description": "Database host", - "default": "localhost", - "type": "string" - }, - "port": { - "title": "Port", - "description": "Database port", - "default": 5432, - "type": "integer" - }, - "user": { - "title": "User", - "description": "Database user", - "default": "postgres", - "type": "string" - }, - "password": { - "title": "Password", - "description": "Database password", + }, + "models": { + "title": "Models", + "markdownDescription": "Learn about setting up models in [the documentation](https://docs.continue.dev/model-setup/overview).", + "default": [ + { + "title": "GPT-4 (trial)", + "provider": "free-trial", + "model": "gpt-4", + "apiKey": "" + } + ], + "type": "array", + "items": { + "$ref": "#/definitions/ModelDescription" + } + }, + "systemMessage": { + "title": "System Message", + "description": "A system message that will always be followed by the LLM", "type": "string" - }, - "database": { - "title": "Database", - "description": "Database name", - "default": "postgres", + }, + "completionOptions": { + "title": "Completion Options", + "description": "Default options for completion. These will be overriden by any options set for a specific model.", + "default": { + "temperature": null, + "topP": null, + "topK": null, + "presencePenalty": null, + "frequencyPenalty": null, + "stop": null, + "maxTokens": 600 + }, + "allOf": [ + { + "$ref": "#/definitions/BaseCompletionOptions" + } + ] + }, + "requestOptions": { + "title": "Request Options", + "description": "Default request options for all fetch requests from models and context providers. These will be overriden by any model-specific request options.", + "allOf": [ + { + "$ref": "#/definitions/RequestOptions" + } + ] + }, + "slashCommands": { + "title": "Slash Commands", + "markdownDescription": "An array of slash commands that let you take custom actions from the sidebar. Learn more in the [documentation](https://docs.continue.dev/customization/slash-commands).", + "default": [], + "type": "array", + "items": { + "$ref": "#/definitions/SlashCommand" + } + }, + "customCommands": { + "title": "Custom Commands", + "markdownDescription": "An array of custom commands that allow you to reuse prompts. Each has name, description, and prompt properties. When you enter / in the text input, it will act as a shortcut to the prompt. Learn more in the [documentation](https://docs.continue.dev/customization/slash-commands#custom-commands-use-natural-language).", + "default": [ + { + "name": "test", + "prompt": "{{{ input }}}\n\nWrite a comprehensive set of unit tests for the selected code. It should setup, run tests that check for correctness including important edge cases, and teardown. Ensure that the tests are complete and sophisticated. Give the tests just as chat output, don't edit any file.", + "description": "This is an example custom command. Open config.json to edit it and create more" + } + ], + "type": "array", + "items": { + "$ref": "#/definitions/CustomCommand" + } + }, + "contextProviders": { + "title": "Context Providers", + "markdownDescription": "A list of ContextProvider objects that can be used to provide context to the LLM by typing '@'. Read more about ContextProviders in [the documentation](https://docs.continue.dev/customization/context-providers).", + "default": [], + "type": "array", + "items": { + "$ref": "#/definitions/ContextProviderWithParams" + } + }, + "userToken": { + "title": "User Token", + "description": "An optional token to identify the user.", "type": "string" - }, - "schema": { - "title": "Schema", - "description": "Database schema", - "default": "public", + }, + "dataServerUrl": { + "title": "Data Server Url", + "description": "The URL of the server where development data is sent. No data is sent unless a valid user token is provided.", + "default": "https://us-west1-autodebug.cloudfunctions.net", "type": "string" - }, - "sampleRows": { - "title": "Sample Rows", - "description": "Number of rows to sample from the database", - "default": 3, - "type": "integer" - } - } - } - }, - "required": ["host", "port", "user", "password", "database"] - } - } - ], - "required": ["name"] - }, - "SerializedContinueConfig": { - "title": "config.json", - "type": "object", - "properties": { - "allowAnonymousTelemetry": { - "title": "Allow Anonymous Telemetry", - "markdownDescription": "If this field is set to True, we will collect anonymous telemetry as described in the documentation page on telemetry. If set to `false`, we will not collect any data. Learn more in [the docs](https://continue.dev/docs/telemetry).", - "default": true, - "type": "boolean" - }, - "models": { - "title": "Models", - "markdownDescription": "Learn about setting up models in [the documentation](https://continue.dev/docs/model-setup/overview).", - "default": [ - { - "title": "GPT-4 (trial)", - "provider": "free-trial", - "model": "gpt-4", - "apiKey": "" - } - ], - "type": "array", - "items": { - "$ref": "#/definitions/ModelDescription" - } - }, - "systemMessage": { - "title": "System Message", - "description": "A system message that will always be followed by the LLM", - "type": "string" - }, - "completionOptions": { - "title": "Completion Options", - "description": "Default options for completion. These will be overriden by any options set for a specific model.", - "default": { - "temperature": null, - "topP": null, - "topK": null, - "presencePenalty": null, - "frequencyPenalty": null, - "stop": null, - "maxTokens": 600 - }, - "allOf": [ - { - "$ref": "#/definitions/BaseCompletionOptions" - } - ] - }, - "slashCommands": { - "title": "Slash Commands", - "markdownDescription": "An array of slash commands that let you take custom actions from the sidebar. Learn more in the [documentation](https://continue.dev/docs/customization/slash-commands).", - "default": [], - "type": "array", - "items": { - "$ref": "#/definitions/SlashCommand" - } - }, - "customCommands": { - "title": "Custom Commands", - "markdownDescription": "An array of custom commands that allow you to reuse prompts. Each has name, description, and prompt properties. When you enter / in the text input, it will act as a shortcut to the prompt. Learn more in the [documentation](https://continue.dev/docs/customization/slash-commands#custom-commands-use-natural-language).", - "default": [ - { - "name": "test", - "prompt": "Write a comprehensive set of unit tests for the selected code. It should setup, run tests that check for correctness including important edge cases, and teardown. Ensure that the tests are complete and sophisticated. Give the tests just as chat output, don't edit any file.", - "description": "This is an example custom command. Use /config to edit it and create more" - } - ], - "type": "array", - "items": { - "$ref": "#/definitions/CustomCommand" - } - }, - "contextProviders": { - "title": "Context Providers", - "markdownDescription": "A list of ContextProvider objects that can be used to provide context to the LLM by typing '@'. Read more about ContextProviders in [the documentation](https://continue.dev/docs/customization/context-providers).", - "default": [], - "type": "array", - "items": { - "$ref": "#/definitions/ContextProviderWithParams" - } - }, - "userToken": { - "title": "User Token", - "description": "An optional token to identify the user.", - "type": "string" - }, - "dataServerUrl": { - "title": "Data Server Url", - "description": "The URL of the server where development data is sent. No data is sent unless a valid user token is provided.", - "default": "https://us-west1-autodebug.cloudfunctions.net", - "type": "string" - }, - "disableSummaries": { - "title": "Disable Summaries", - "markdownDescription": "If set to `true`, Continue will not generate summaries for each Step. This can be useful if you want to save on compute.", - "default": false, - "type": "boolean" - }, - "disableIndexing": { - "title": "Disable Indexing", - "markdownDescription": "If set to `true`, Continue will not index the codebase. This is mainly used for debugging purposes.", - "default": false, - "type": "boolean" - }, - "disableSessionTitles": { - "title": "Disable Session Titles", - "markdownDescription": "If set to `true`, Continue will not make extra requests to the LLM to generate a summary title of each session.", - "default": false, - "type": "boolean" - }, - "embeddingsProvider": { - "title": "Embeddings Provider", - "markdownDescription": "The method that will be used to generate codebase embeddings. The default is transformers.js, which will run locally in the browser. Learn about the other options [here](https://continue.dev/docs/walkthroughs/codebase-embeddings#embeddings-providers).", - "type": "object", - "properties": { - "provider": { - "enum": ["transformers.js", "ollama", "openai", "free-trial"] - }, - "model": { - "type": "string" - }, - "apiKey": { - "type": "string" - }, - "apiBase": { - "type": "string" - } - }, - "required": ["provider"], - "allOf": [ - { - "if": { - "properties": { - "provider": { - "enum": ["ollama"] - } - }, - "required": ["provider"] - }, - "then": { - "required": ["model"] - } - } - ] - }, - "reranker": { - "title": "Reranker", - "markdownDescription": "The reranker is responsible for selecting the final results when retrieving snippets from your codebase.", - "type": "object", - "properties": { - "name": { - "enum": ["voyage", "llm", "free-trial"] - }, - "params": { - "type": "object" - } - }, - "required": ["name"], - "allOf": [ - { - "if": { - "properties": { - "name": { - "enum": ["llm"] - } - }, - "required": ["name"] - }, - "then": { - "properties": { - "params": { + }, + "disableSummaries": { + "title": "Disable Summaries", + "markdownDescription": "If set to `true`, Continue will not generate summaries for each Step. This can be useful if you want to save on compute.", + "default": false, + "type": "boolean" + }, + "disableIndexing": { + "title": "Disable Indexing", + "markdownDescription": "If set to `true`, Continue will not index the codebase. This is mainly used for debugging purposes.", + "default": false, + "type": "boolean" + }, + "disableSessionTitles": { + "title": "Disable Session Titles", + "markdownDescription": "If set to `true`, Continue will not make extra requests to the LLM to generate a summary title of each session.", + "default": false, + "type": "boolean" + }, + "embeddingsProvider": { + "title": "Embeddings Provider", + "markdownDescription": "The method that will be used to generate codebase embeddings. The default is transformers.js, which will run locally in the browser. Learn about the other options [here](https://docs.continue.dev/walkthroughs/codebase-embeddings#embeddings-providers).", "type": "object", "properties": { - "modelTitle": { - "type": "string" - } + "provider": { + "enum": [ + "huggingface-tei", + "transformers.js", + "ollama", + "openai", + "cohere", + "free-trial", + "gemini" + ] + }, + "model": { + "type": "string" + }, + "apiKey": { + "type": "string" + }, + "apiBase": { + "type": "string" + }, + "requestOptions": { + "title": "Request Options", + "description": "Request options to be used in any fetch requests made by the embeddings provider", + "$ref": "#/definitions/RequestOptions" + }, + "maxChunkSize": { + "title": "Maximum Chunk Size", + "description": "The maximum number of tokens that each chunk of a document is allowed to have", + "type": "integer", + "minimum": 128, + "exclusiveMaximum": 2147483647 + } }, - "required": ["modelTitle"] - } - } - } - }, - { - "if": { - "properties": { - "name": { - "enum": ["voyage"] - } - }, - "required": ["name"] - }, - "then": { - "properties": { - "params": { + "required": [ + "provider" + ], + "allOf": [ + { + "if": { + "properties": { + "provider": { + "enum": [ + "cohere" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "required": [ + "apiKey" + ] + } + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "gemini" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "required": [ + "apiKey" + ] + } + } + ] + }, + "reranker": { + "title": "Reranker", + "markdownDescription": "The reranker is responsible for selecting the final results when retrieving snippets from your codebase.", "type": "object", "properties": { - "apiKey": { - "type": "string" - }, - "model": { - "enum": ["rerank-lite-1"] - } + "name": { + "enum": [ + "cohere", + "voyage", + "llm", + "free-trial" + ] + }, + "params": { + "type": "object" + } }, - "required": ["apiKey"] - } - } - } - } - ] - }, - "tabAutocompleteModel": { - "title": "Tab Autocomplete Model", - "markdownDescription": "The model used for tab autocompletion. If undefined, Continue will default to using starcoder2:3b on a local Ollama instance.\n\n*IMPORTANT*:\n\nIf you use a custom model, ensure that it is one trained for fill-in-the-middle completions. An instruct model is typically not well-suited to autocomplete and you may receive unsatisfactory completions.", - "default": { - "title": "Tab Autocomplete Model", - "provider": "ollama", - "model": "deepseek-coder:1.3b-base" - }, - "$ref": "#/definitions/ModelDescription" - }, - "tabAutocompleteOptions": { - "title": "TabAutocompleteOptions", - "type": "object", - "markdownDescription": "These options let you customize your tab-autocomplete experience. Read about all options in [the docs](https://continue.dev/docs/walkthroughs/tab-autocomplete#configuration-options).", - "properties": { - "disable": { - "type": "boolean", - "description": "Disable tab autocomplete. This can also be done from the IDE settings.", - "default": false - }, - "useCopyBuffer": { - "type": "boolean", - "description": "Determines whether the copy buffer will be considered when contructing the prompt." - }, - "useSuffix": { - "type": "boolean", - "description": "Determines whether to use the file suffix in the prompt." - }, - "maxPromptTokens": { - "type": "number", - "description": "The maximum number of prompt tokens to use. A smaller number will yield faster completions, but less context." - }, - "debounceDelay": { - "type": "number", - "description": "The delay in milliseconds before triggering autocomplete after a keystroke." - }, - "maxSuffixPercentage": { - "type": "number", - "description": "The maximum percentage of the prompt that can be dedicated to the suffix." - }, - "prefixPercentage": { - "type": "number", - "description": "The percentage of the input that should be dedicated to the prefix." - }, - "template": { - "type": "string", - "description": "An optional template string to be used for autocomplete. It will be rendered with the Mustache templating language, and is passed the 'prefix' and 'suffix' variables." - }, - "multilineCompletions": { - "enum": ["always", "never", "auto"], - "description": "If set to true, Continue will only complete a single line at a time." - }, - "useCache": { - "type": "boolean", - "description": "Whether to cache completions" - }, - "onlyMyCode": { - "type": "boolean", - "description": "If set to true, Continue will not include any snippets from go to definition unless they are within your repository" - }, - "useOtherFiles": { - "type": "boolean", - "description": "Defaults to true. If set to false, Continue will not attempt to include snippets from other files." - } - }, - "required": [] - }, - "ui": { - "type": "object", - "properties": { - "codeBlockToolbarPosition": { - "enum": ["top", "bottom"], - "default": "top", - "description": "Whether to show the copy and apply code buttons at the top or bottom of code blocks in the sidebar." - } - } - }, - "experimental": { - "type": "object", - "title": "Experimental", - "description": "Experimental properties are subject to change.", - "properties": { - "contextMenuPrompts": { - "type": "object", - "properties": { - "comment": { - "type": "string", - "default": "Write comments for this code. Do not change anything about the code itself." - }, - "docstring": { - "type": "string", - "default": "Write a docstring for this code. Do not change anything about the code itself." - }, - "fix": { - "type": "string", - "default": "Fix this code" - }, - "optimize": { - "type": "string", - "default": "Optimize this code" - }, - "fixGrammar": { - "type": "string", - "default": "If there are any grammar or spelling mistakes in this writing, fix them. Do not make other large changes to the writing." + "required": [ + "name" + ], + "allOf": [ + { + "if": { + "properties": { + "name": { + "enum": [ + "cohere" + ] + } + }, + "required": [ + "name" + ] + }, + "then": { + "properties": { + "params": { + "type": "object", + "properties": { + "model": { + "enum": [ + "rerank-english-v3.0", + "rerank-multilingual-v3.0", + "rerank-english-v2.0", + "rerank-multilingual-v2.0" + ] + }, + "apiBase": { + "type": "string" + }, + "apiKey": { + "type": "string" + } + }, + "required": [ + "apiKey" + ] + } + } + } + }, + { + "if": { + "properties": { + "name": { + "enum": [ + "llm" + ] + } + }, + "required": [ + "name" + ] + }, + "then": { + "properties": { + "params": { + "type": "object", + "properties": { + "modelTitle": { + "type": "string" + } + }, + "required": [ + "modelTitle" + ] + } + } + } + }, + { + "if": { + "properties": { + "name": { + "enum": [ + "voyage" + ] + } + }, + "required": [ + "name" + ] + }, + "then": { + "properties": { + "params": { + "type": "object", + "properties": { + "apiKey": { + "type": "string" + }, + "model": { + "enum": [ + "rerank-lite-1", + "rerank-1" + ] + } + }, + "required": [ + "apiKey" + ] + } + } + } + } + ] + }, + "tabAutocompleteModel": { + "title": "Tab Autocomplete Model", + "markdownDescription": "The model used for tab autocompletion. If undefined, Continue will default to using starcoder2:3b on a local Ollama instance.\n\n*IMPORTANT*:\n\nIf you use a custom model, ensure that it is one trained for fill-in-the-middle completions. An instruct model is typically not well-suited to autocomplete and you may receive unsatisfactory completions.", + "default": { + "title": "Tab Autocomplete Model", + "provider": "ollama", + "model": "deepseek-coder:1.3b-base" + }, + "oneOf": [ + { + "$ref": "#/definitions/ModelDescription" + }, + { + "type": "array", + "items": { + "$ref": "#/definitions/ModelDescription" + } + } + ] + }, + "tabAutocompleteOptions": { + "title": "TabAutocompleteOptions", + "type": "object", + "markdownDescription": "These options let you customize your tab-autocomplete experience. Read about all options in [the docs](https://docs.continue.dev/walkthroughs/tab-autocomplete#configuration-options).", + "properties": { + "disable": { + "type": "boolean", + "description": "Disable tab autocomplete. This can also be done from the IDE settings.", + "default": false + }, + "useCopyBuffer": { + "type": "boolean", + "description": "Determines whether the copy buffer will be considered when contructing the prompt." + }, + "useFileSuffix": { + "type": "boolean", + "description": "Determines whether to use the file suffix in the prompt." + }, + "maxPromptTokens": { + "type": "number", + "description": "The maximum number of prompt tokens to use. A smaller number will yield faster completions, but less context." + }, + "debounceDelay": { + "type": "number", + "description": "The delay in milliseconds before triggering autocomplete after a keystroke." + }, + "maxSuffixPercentage": { + "type": "number", + "description": "The maximum percentage of the prompt that can be dedicated to the suffix." + }, + "prefixPercentage": { + "type": "number", + "description": "The percentage of the input that should be dedicated to the prefix." + }, + "template": { + "type": "string", + "description": "An optional template string to be used for autocomplete. It will be rendered with the Mustache templating language, and is passed the 'prefix' and 'suffix' variables." + }, + "multilineCompletions": { + "enum": [ + "always", + "never", + "auto" + ], + "description": "If set to true, Continue will only complete a single line at a time." + }, + "useCache": { + "type": "boolean", + "description": "Whether to cache completions" + }, + "onlyMyCode": { + "type": "boolean", + "description": "If set to true, Continue will not include any snippets from go to definition unless they are within your repository" + }, + "useOtherFiles": { + "type": "boolean", + "description": "Defaults to true. If set to false, Continue will not attempt to include snippets from other files." + }, + "disableInFiles": { + "description": "A list of files / glob patterns in which to disable tab autocomplete. For example, *.csv if you'd like to disable autocomplete in .csv files.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [] + }, + "ui": { + "type": "object", + "properties": { + "codeBlockToolbarPosition": { + "enum": [ + "top", + "bottom" + ], + "default": "top", + "description": "Whether to show the copy and apply code buttons at the top or bottom of code blocks in the sidebar." + }, + "fontSize": { + "type": "number" + }, + "displayRawMarkdown": { + "type": "boolean", + "description": "If set to true, we will display the model output as raw markdown.", + "default": false + } + } + }, + "experimental": { + "type": "object", + "title": "Experimental", + "description": "Experimental properties are subject to change.", + "properties": { + "defaultContext": { + "type": "array", + "items": { + "enum": [ + "activeFile" + ] + } + }, + "modelRoles": { + "type": "object", + "properties": { + "inlineEdit": { + "type": "string" + } + } + }, + "promptPath": { + "type": "string" + }, + "quickActions": { + "type": "array", + "items": { + "type": "object", + "properties": { + "title": { + "type": "string", + "description": "The title of the quick action that will display in the Code Lens." + }, + "prompt": { + "type": "string", + "description": "The prompt that will be sent to the model when the quick action is invoked, with the function or class body concatenated." + }, + "sendToChat": { + "type": "boolean", + "description": "If true, the result of the quick action will be sent to the chat panel. If false, the streamed result will be inserted into the document.", + "default": false + } + }, + "required": [ + "prompt", + "title" + ] + }, + "description": "Quick actions are a way to add custom commands to the Code Lens of function and class declarations." + }, + "contextMenuPrompts": { + "type": "object", + "properties": { + "comment": { + "type": "string", + "default": "Write comments for this code. Do not change anything about the code itself." + }, + "docstring": { + "type": "string", + "default": "Write a docstring for this code. Do not change anything about the code itself." + }, + "fix": { + "type": "string", + "default": "Fix this code" + }, + "optimize": { + "type": "string", + "default": "Optimize this code" + }, + "fixGrammar": { + "type": "string", + "default": "If there are any grammar or spelling mistakes in this writing, fix them. Do not make other large changes to the writing." + } + } + } + } } - } } - } } - } } - } -} +} \ No newline at end of file diff --git a/extensions/intellij/src/main/resources/continue_tutorial.py b/extensions/intellij/src/main/resources/continue_tutorial.py index 9a7194ad0..87b5a7f45 100644 --- a/extensions/intellij/src/main/resources/continue_tutorial.py +++ b/extensions/intellij/src/main/resources/continue_tutorial.py @@ -3,7 +3,7 @@ _________ _____ _____ __ ____/______ _______ __ /____(_)_______ ____ _______ -_ / _ __ \__ __ \_ __/__ / __ __ \_ / / /_ _ \ +_ / _ __ \__ __ \_ __/__ / __ __ \_ / / /_ _ \ / /___ / /_/ /_ / / // /_ _ / _ / / // /_/ / / __/ \____/ \____/ /_/ /_/ \__/ /_/ /_/ /_/ \__,_/ \___/ @@ -66,4 +66,4 @@ def bubble_sort(x): # endregion -# Ready to learn more? Check out the Continue documentation: https://continue.dev/docs \ No newline at end of file +# Ready to learn more? Check out the Continue documentation: https://docs.continue.dev \ No newline at end of file diff --git a/extensions/intellij/src/main/resources/tool-window-icon.svg b/extensions/intellij/src/main/resources/tool-window-icon.svg new file mode 100644 index 000000000..ab3f4d8bb --- /dev/null +++ b/extensions/intellij/src/main/resources/tool-window-icon.svg @@ -0,0 +1,3 @@ + + + diff --git a/extensions/intellij/src/main/resources/tool-window-icon_dark.svg b/extensions/intellij/src/main/resources/tool-window-icon_dark.svg new file mode 100644 index 000000000..441f5ab4b --- /dev/null +++ b/extensions/intellij/src/main/resources/tool-window-icon_dark.svg @@ -0,0 +1,3 @@ + + + diff --git a/extensions/intellij/src/main/resources/webview/assets/index.css b/extensions/intellij/src/main/resources/webview/assets/index.css index 9be094d5c..60a39c1fd 100644 --- a/extensions/intellij/src/main/resources/webview/assets/index.css +++ b/extensions/intellij/src/main/resources/webview/assets/index.css @@ -1 +1 @@ -@font-face{font-family:KaTeX_AMS;font-style:normal;font-weight:400;src:url(fonts/KaTeX_AMS-Regular.woff2) format("woff2"),url(fonts/KaTeX_AMS-Regular.woff) format("woff"),url(fonts/KaTeX_AMS-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Caligraphic;font-style:normal;font-weight:700;src:url(fonts/KaTeX_Caligraphic-Bold.woff2) format("woff2"),url(fonts/KaTeX_Caligraphic-Bold.woff) format("woff"),url(fonts/KaTeX_Caligraphic-Bold.ttf) format("truetype")}@font-face{font-family:KaTeX_Caligraphic;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Caligraphic-Regular.woff2) format("woff2"),url(fonts/KaTeX_Caligraphic-Regular.woff) format("woff"),url(fonts/KaTeX_Caligraphic-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Fraktur;font-style:normal;font-weight:700;src:url(fonts/KaTeX_Fraktur-Bold.woff2) format("woff2"),url(fonts/KaTeX_Fraktur-Bold.woff) format("woff"),url(fonts/KaTeX_Fraktur-Bold.ttf) format("truetype")}@font-face{font-family:KaTeX_Fraktur;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Fraktur-Regular.woff2) format("woff2"),url(fonts/KaTeX_Fraktur-Regular.woff) format("woff"),url(fonts/KaTeX_Fraktur-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:normal;font-weight:700;src:url(fonts/KaTeX_Main-Bold.woff2) format("woff2"),url(fonts/KaTeX_Main-Bold.woff) format("woff"),url(fonts/KaTeX_Main-Bold.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:italic;font-weight:700;src:url(fonts/KaTeX_Main-BoldItalic.woff2) format("woff2"),url(fonts/KaTeX_Main-BoldItalic.woff) format("woff"),url(fonts/KaTeX_Main-BoldItalic.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:italic;font-weight:400;src:url(fonts/KaTeX_Main-Italic.woff2) format("woff2"),url(fonts/KaTeX_Main-Italic.woff) format("woff"),url(fonts/KaTeX_Main-Italic.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Main-Regular.woff2) format("woff2"),url(fonts/KaTeX_Main-Regular.woff) format("woff"),url(fonts/KaTeX_Main-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Math;font-style:italic;font-weight:700;src:url(fonts/KaTeX_Math-BoldItalic.woff2) format("woff2"),url(fonts/KaTeX_Math-BoldItalic.woff) format("woff"),url(fonts/KaTeX_Math-BoldItalic.ttf) format("truetype")}@font-face{font-family:KaTeX_Math;font-style:italic;font-weight:400;src:url(fonts/KaTeX_Math-Italic.woff2) format("woff2"),url(fonts/KaTeX_Math-Italic.woff) format("woff"),url(fonts/KaTeX_Math-Italic.ttf) format("truetype")}@font-face{font-family:KaTeX_SansSerif;font-style:normal;font-weight:700;src:url(fonts/KaTeX_SansSerif-Bold.woff2) format("woff2"),url(fonts/KaTeX_SansSerif-Bold.woff) format("woff"),url(fonts/KaTeX_SansSerif-Bold.ttf) format("truetype")}@font-face{font-family:KaTeX_SansSerif;font-style:italic;font-weight:400;src:url(fonts/KaTeX_SansSerif-Italic.woff2) format("woff2"),url(fonts/KaTeX_SansSerif-Italic.woff) format("woff"),url(fonts/KaTeX_SansSerif-Italic.ttf) format("truetype")}@font-face{font-family:KaTeX_SansSerif;font-style:normal;font-weight:400;src:url(fonts/KaTeX_SansSerif-Regular.woff2) format("woff2"),url(fonts/KaTeX_SansSerif-Regular.woff) format("woff"),url(fonts/KaTeX_SansSerif-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Script;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Script-Regular.woff2) format("woff2"),url(fonts/KaTeX_Script-Regular.woff) format("woff"),url(fonts/KaTeX_Script-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Size1;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Size1-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size1-Regular.woff) format("woff"),url(fonts/KaTeX_Size1-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Size2;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Size2-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size2-Regular.woff) format("woff"),url(fonts/KaTeX_Size2-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Size3;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Size3-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size3-Regular.woff) format("woff"),url(fonts/KaTeX_Size3-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Size4;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Size4-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size4-Regular.woff) format("woff"),url(fonts/KaTeX_Size4-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Typewriter;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Typewriter-Regular.woff2) format("woff2"),url(fonts/KaTeX_Typewriter-Regular.woff) format("woff"),url(fonts/KaTeX_Typewriter-Regular.ttf) format("truetype")}.katex{text-rendering:auto;font: 1.21em KaTeX_Main,Times New Roman,serif;line-height:1.2;text-indent:0}.katex *{-ms-high-contrast-adjust:none!important;border-color:currentColor}.katex .katex-version:after{content:"0.16.8"}.katex .katex-mathml{clip:rect(1px,1px,1px,1px);border:0;height:1px;overflow:hidden;padding:0;position:absolute;width:1px}.katex .katex-html>.newline{display:block}.katex .base{position:relative;white-space:nowrap;width:-moz-min-content;width:min-content}.katex .base,.katex .strut{display:inline-block}.katex .textbf{font-weight:700}.katex .textit{font-style:italic}.katex .textrm{font-family:KaTeX_Main}.katex .textsf{font-family:KaTeX_SansSerif}.katex .texttt{font-family:KaTeX_Typewriter}.katex .mathnormal{font-family:KaTeX_Math;font-style:italic}.katex .mathit{font-family:KaTeX_Main;font-style:italic}.katex .mathrm{font-style:normal}.katex .mathbf{font-family:KaTeX_Main;font-weight:700}.katex .boldsymbol{font-family:KaTeX_Math;font-style:italic;font-weight:700}.katex .amsrm,.katex .mathbb,.katex .textbb{font-family:KaTeX_AMS}.katex .mathcal{font-family:KaTeX_Caligraphic}.katex .mathfrak,.katex .textfrak{font-family:KaTeX_Fraktur}.katex .mathtt{font-family:KaTeX_Typewriter}.katex .mathscr,.katex .textscr{font-family:KaTeX_Script}.katex .mathsf,.katex .textsf{font-family:KaTeX_SansSerif}.katex .mathboldsf,.katex .textboldsf{font-family:KaTeX_SansSerif;font-weight:700}.katex .mathitsf,.katex .textitsf{font-family:KaTeX_SansSerif;font-style:italic}.katex .mainrm{font-family:KaTeX_Main;font-style:normal}.katex .vlist-t{border-collapse:collapse;display:inline-table;table-layout:fixed}.katex .vlist-r{display:table-row}.katex .vlist{display:table-cell;position:relative;vertical-align:bottom}.katex .vlist>span{display:block;height:0;position:relative}.katex .vlist>span>span{display:inline-block}.katex .vlist>span>.pstrut{overflow:hidden;width:0}.katex .vlist-t2{margin-right:-2px}.katex .vlist-s{display:table-cell;font-size:1px;min-width:2px;vertical-align:bottom;width:2px}.katex .vbox{align-items:baseline;display:inline-flex;flex-direction:column}.katex .hbox{width:100%}.katex .hbox,.katex .thinbox{display:inline-flex;flex-direction:row}.katex .thinbox{max-width:0;width:0}.katex .msupsub{text-align:left}.katex .mfrac>span>span{text-align:center}.katex .mfrac .frac-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline,.katex .hline,.katex .mfrac .frac-line,.katex .overline .overline-line,.katex .rule,.katex .underline .underline-line{min-height:1px}.katex .mspace{display:inline-block}.katex .clap,.katex .llap,.katex .rlap{position:relative;width:0}.katex .clap>.inner,.katex .llap>.inner,.katex .rlap>.inner{position:absolute}.katex .clap>.fix,.katex .llap>.fix,.katex .rlap>.fix{display:inline-block}.katex .llap>.inner{right:0}.katex .clap>.inner,.katex .rlap>.inner{left:0}.katex .clap>.inner>span{margin-left:-50%;margin-right:50%}.katex .rule{border:0 solid;display:inline-block;position:relative}.katex .hline,.katex .overline .overline-line,.katex .underline .underline-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline{border-bottom-style:dashed;display:inline-block;width:100%}.katex .sqrt>.root{margin-left:.27777778em;margin-right:-.55555556em}.katex .fontsize-ensurer.reset-size1.size1,.katex .sizing.reset-size1.size1{font-size:1em}.katex .fontsize-ensurer.reset-size1.size2,.katex .sizing.reset-size1.size2{font-size:1.2em}.katex .fontsize-ensurer.reset-size1.size3,.katex .sizing.reset-size1.size3{font-size:1.4em}.katex .fontsize-ensurer.reset-size1.size4,.katex .sizing.reset-size1.size4{font-size:1.6em}.katex .fontsize-ensurer.reset-size1.size5,.katex .sizing.reset-size1.size5{font-size:1.8em}.katex .fontsize-ensurer.reset-size1.size6,.katex .sizing.reset-size1.size6{font-size:2em}.katex .fontsize-ensurer.reset-size1.size7,.katex .sizing.reset-size1.size7{font-size:2.4em}.katex .fontsize-ensurer.reset-size1.size8,.katex .sizing.reset-size1.size8{font-size:2.88em}.katex .fontsize-ensurer.reset-size1.size9,.katex .sizing.reset-size1.size9{font-size:3.456em}.katex .fontsize-ensurer.reset-size1.size10,.katex .sizing.reset-size1.size10{font-size:4.148em}.katex .fontsize-ensurer.reset-size1.size11,.katex .sizing.reset-size1.size11{font-size:4.976em}.katex .fontsize-ensurer.reset-size2.size1,.katex .sizing.reset-size2.size1{font-size:.83333333em}.katex .fontsize-ensurer.reset-size2.size2,.katex .sizing.reset-size2.size2{font-size:1em}.katex .fontsize-ensurer.reset-size2.size3,.katex .sizing.reset-size2.size3{font-size:1.16666667em}.katex .fontsize-ensurer.reset-size2.size4,.katex .sizing.reset-size2.size4{font-size:1.33333333em}.katex .fontsize-ensurer.reset-size2.size5,.katex .sizing.reset-size2.size5{font-size:1.5em}.katex .fontsize-ensurer.reset-size2.size6,.katex .sizing.reset-size2.size6{font-size:1.66666667em}.katex .fontsize-ensurer.reset-size2.size7,.katex .sizing.reset-size2.size7{font-size:2em}.katex .fontsize-ensurer.reset-size2.size8,.katex .sizing.reset-size2.size8{font-size:2.4em}.katex .fontsize-ensurer.reset-size2.size9,.katex .sizing.reset-size2.size9{font-size:2.88em}.katex .fontsize-ensurer.reset-size2.size10,.katex .sizing.reset-size2.size10{font-size:3.45666667em}.katex .fontsize-ensurer.reset-size2.size11,.katex .sizing.reset-size2.size11{font-size:4.14666667em}.katex .fontsize-ensurer.reset-size3.size1,.katex .sizing.reset-size3.size1{font-size:.71428571em}.katex .fontsize-ensurer.reset-size3.size2,.katex .sizing.reset-size3.size2{font-size:.85714286em}.katex .fontsize-ensurer.reset-size3.size3,.katex .sizing.reset-size3.size3{font-size:1em}.katex .fontsize-ensurer.reset-size3.size4,.katex .sizing.reset-size3.size4{font-size:1.14285714em}.katex .fontsize-ensurer.reset-size3.size5,.katex .sizing.reset-size3.size5{font-size:1.28571429em}.katex .fontsize-ensurer.reset-size3.size6,.katex .sizing.reset-size3.size6{font-size:1.42857143em}.katex .fontsize-ensurer.reset-size3.size7,.katex .sizing.reset-size3.size7{font-size:1.71428571em}.katex .fontsize-ensurer.reset-size3.size8,.katex .sizing.reset-size3.size8{font-size:2.05714286em}.katex .fontsize-ensurer.reset-size3.size9,.katex .sizing.reset-size3.size9{font-size:2.46857143em}.katex .fontsize-ensurer.reset-size3.size10,.katex .sizing.reset-size3.size10{font-size:2.96285714em}.katex .fontsize-ensurer.reset-size3.size11,.katex .sizing.reset-size3.size11{font-size:3.55428571em}.katex .fontsize-ensurer.reset-size4.size1,.katex .sizing.reset-size4.size1{font-size:.625em}.katex .fontsize-ensurer.reset-size4.size2,.katex .sizing.reset-size4.size2{font-size:.75em}.katex .fontsize-ensurer.reset-size4.size3,.katex .sizing.reset-size4.size3{font-size:.875em}.katex .fontsize-ensurer.reset-size4.size4,.katex .sizing.reset-size4.size4{font-size:1em}.katex .fontsize-ensurer.reset-size4.size5,.katex .sizing.reset-size4.size5{font-size:1.125em}.katex .fontsize-ensurer.reset-size4.size6,.katex .sizing.reset-size4.size6{font-size:1.25em}.katex .fontsize-ensurer.reset-size4.size7,.katex .sizing.reset-size4.size7{font-size:1.5em}.katex .fontsize-ensurer.reset-size4.size8,.katex .sizing.reset-size4.size8{font-size:1.8em}.katex .fontsize-ensurer.reset-size4.size9,.katex .sizing.reset-size4.size9{font-size:2.16em}.katex .fontsize-ensurer.reset-size4.size10,.katex .sizing.reset-size4.size10{font-size:2.5925em}.katex .fontsize-ensurer.reset-size4.size11,.katex .sizing.reset-size4.size11{font-size:3.11em}.katex .fontsize-ensurer.reset-size5.size1,.katex .sizing.reset-size5.size1{font-size:.55555556em}.katex .fontsize-ensurer.reset-size5.size2,.katex .sizing.reset-size5.size2{font-size:.66666667em}.katex .fontsize-ensurer.reset-size5.size3,.katex .sizing.reset-size5.size3{font-size:.77777778em}.katex .fontsize-ensurer.reset-size5.size4,.katex .sizing.reset-size5.size4{font-size:.88888889em}.katex .fontsize-ensurer.reset-size5.size5,.katex .sizing.reset-size5.size5{font-size:1em}.katex .fontsize-ensurer.reset-size5.size6,.katex .sizing.reset-size5.size6{font-size:1.11111111em}.katex .fontsize-ensurer.reset-size5.size7,.katex .sizing.reset-size5.size7{font-size:1.33333333em}.katex .fontsize-ensurer.reset-size5.size8,.katex .sizing.reset-size5.size8{font-size:1.6em}.katex .fontsize-ensurer.reset-size5.size9,.katex .sizing.reset-size5.size9{font-size:1.92em}.katex .fontsize-ensurer.reset-size5.size10,.katex .sizing.reset-size5.size10{font-size:2.30444444em}.katex .fontsize-ensurer.reset-size5.size11,.katex .sizing.reset-size5.size11{font-size:2.76444444em}.katex .fontsize-ensurer.reset-size6.size1,.katex .sizing.reset-size6.size1{font-size:.5em}.katex .fontsize-ensurer.reset-size6.size2,.katex .sizing.reset-size6.size2{font-size:.6em}.katex .fontsize-ensurer.reset-size6.size3,.katex .sizing.reset-size6.size3{font-size:.7em}.katex .fontsize-ensurer.reset-size6.size4,.katex .sizing.reset-size6.size4{font-size:.8em}.katex .fontsize-ensurer.reset-size6.size5,.katex .sizing.reset-size6.size5{font-size:.9em}.katex .fontsize-ensurer.reset-size6.size6,.katex .sizing.reset-size6.size6{font-size:1em}.katex .fontsize-ensurer.reset-size6.size7,.katex .sizing.reset-size6.size7{font-size:1.2em}.katex .fontsize-ensurer.reset-size6.size8,.katex .sizing.reset-size6.size8{font-size:1.44em}.katex .fontsize-ensurer.reset-size6.size9,.katex .sizing.reset-size6.size9{font-size:1.728em}.katex .fontsize-ensurer.reset-size6.size10,.katex .sizing.reset-size6.size10{font-size:2.074em}.katex .fontsize-ensurer.reset-size6.size11,.katex .sizing.reset-size6.size11{font-size:2.488em}.katex .fontsize-ensurer.reset-size7.size1,.katex .sizing.reset-size7.size1{font-size:.41666667em}.katex .fontsize-ensurer.reset-size7.size2,.katex .sizing.reset-size7.size2{font-size:.5em}.katex .fontsize-ensurer.reset-size7.size3,.katex .sizing.reset-size7.size3{font-size:.58333333em}.katex .fontsize-ensurer.reset-size7.size4,.katex .sizing.reset-size7.size4{font-size:.66666667em}.katex .fontsize-ensurer.reset-size7.size5,.katex .sizing.reset-size7.size5{font-size:.75em}.katex .fontsize-ensurer.reset-size7.size6,.katex .sizing.reset-size7.size6{font-size:.83333333em}.katex .fontsize-ensurer.reset-size7.size7,.katex .sizing.reset-size7.size7{font-size:1em}.katex .fontsize-ensurer.reset-size7.size8,.katex .sizing.reset-size7.size8{font-size:1.2em}.katex .fontsize-ensurer.reset-size7.size9,.katex .sizing.reset-size7.size9{font-size:1.44em}.katex .fontsize-ensurer.reset-size7.size10,.katex .sizing.reset-size7.size10{font-size:1.72833333em}.katex .fontsize-ensurer.reset-size7.size11,.katex .sizing.reset-size7.size11{font-size:2.07333333em}.katex .fontsize-ensurer.reset-size8.size1,.katex .sizing.reset-size8.size1{font-size:.34722222em}.katex .fontsize-ensurer.reset-size8.size2,.katex .sizing.reset-size8.size2{font-size:.41666667em}.katex .fontsize-ensurer.reset-size8.size3,.katex .sizing.reset-size8.size3{font-size:.48611111em}.katex .fontsize-ensurer.reset-size8.size4,.katex .sizing.reset-size8.size4{font-size:.55555556em}.katex .fontsize-ensurer.reset-size8.size5,.katex .sizing.reset-size8.size5{font-size:.625em}.katex .fontsize-ensurer.reset-size8.size6,.katex .sizing.reset-size8.size6{font-size:.69444444em}.katex .fontsize-ensurer.reset-size8.size7,.katex .sizing.reset-size8.size7{font-size:.83333333em}.katex .fontsize-ensurer.reset-size8.size8,.katex .sizing.reset-size8.size8{font-size:1em}.katex .fontsize-ensurer.reset-size8.size9,.katex .sizing.reset-size8.size9{font-size:1.2em}.katex .fontsize-ensurer.reset-size8.size10,.katex .sizing.reset-size8.size10{font-size:1.44027778em}.katex .fontsize-ensurer.reset-size8.size11,.katex .sizing.reset-size8.size11{font-size:1.72777778em}.katex .fontsize-ensurer.reset-size9.size1,.katex .sizing.reset-size9.size1{font-size:.28935185em}.katex .fontsize-ensurer.reset-size9.size2,.katex .sizing.reset-size9.size2{font-size:.34722222em}.katex .fontsize-ensurer.reset-size9.size3,.katex .sizing.reset-size9.size3{font-size:.40509259em}.katex .fontsize-ensurer.reset-size9.size4,.katex .sizing.reset-size9.size4{font-size:.46296296em}.katex .fontsize-ensurer.reset-size9.size5,.katex .sizing.reset-size9.size5{font-size:.52083333em}.katex .fontsize-ensurer.reset-size9.size6,.katex .sizing.reset-size9.size6{font-size:.5787037em}.katex .fontsize-ensurer.reset-size9.size7,.katex .sizing.reset-size9.size7{font-size:.69444444em}.katex .fontsize-ensurer.reset-size9.size8,.katex .sizing.reset-size9.size8{font-size:.83333333em}.katex .fontsize-ensurer.reset-size9.size9,.katex .sizing.reset-size9.size9{font-size:1em}.katex .fontsize-ensurer.reset-size9.size10,.katex .sizing.reset-size9.size10{font-size:1.20023148em}.katex .fontsize-ensurer.reset-size9.size11,.katex .sizing.reset-size9.size11{font-size:1.43981481em}.katex .fontsize-ensurer.reset-size10.size1,.katex .sizing.reset-size10.size1{font-size:.24108004em}.katex .fontsize-ensurer.reset-size10.size2,.katex .sizing.reset-size10.size2{font-size:.28929605em}.katex .fontsize-ensurer.reset-size10.size3,.katex .sizing.reset-size10.size3{font-size:.33751205em}.katex .fontsize-ensurer.reset-size10.size4,.katex .sizing.reset-size10.size4{font-size:.38572806em}.katex .fontsize-ensurer.reset-size10.size5,.katex .sizing.reset-size10.size5{font-size:.43394407em}.katex .fontsize-ensurer.reset-size10.size6,.katex .sizing.reset-size10.size6{font-size:.48216008em}.katex .fontsize-ensurer.reset-size10.size7,.katex .sizing.reset-size10.size7{font-size:.57859209em}.katex .fontsize-ensurer.reset-size10.size8,.katex .sizing.reset-size10.size8{font-size:.69431051em}.katex .fontsize-ensurer.reset-size10.size9,.katex .sizing.reset-size10.size9{font-size:.83317261em}.katex .fontsize-ensurer.reset-size10.size10,.katex .sizing.reset-size10.size10{font-size:1em}.katex .fontsize-ensurer.reset-size10.size11,.katex .sizing.reset-size10.size11{font-size:1.19961427em}.katex .fontsize-ensurer.reset-size11.size1,.katex .sizing.reset-size11.size1{font-size:.20096463em}.katex .fontsize-ensurer.reset-size11.size2,.katex .sizing.reset-size11.size2{font-size:.24115756em}.katex .fontsize-ensurer.reset-size11.size3,.katex .sizing.reset-size11.size3{font-size:.28135048em}.katex .fontsize-ensurer.reset-size11.size4,.katex .sizing.reset-size11.size4{font-size:.32154341em}.katex .fontsize-ensurer.reset-size11.size5,.katex .sizing.reset-size11.size5{font-size:.36173633em}.katex .fontsize-ensurer.reset-size11.size6,.katex .sizing.reset-size11.size6{font-size:.40192926em}.katex .fontsize-ensurer.reset-size11.size7,.katex .sizing.reset-size11.size7{font-size:.48231511em}.katex .fontsize-ensurer.reset-size11.size8,.katex .sizing.reset-size11.size8{font-size:.57877814em}.katex .fontsize-ensurer.reset-size11.size9,.katex .sizing.reset-size11.size9{font-size:.69453376em}.katex .fontsize-ensurer.reset-size11.size10,.katex .sizing.reset-size11.size10{font-size:.83360129em}.katex .fontsize-ensurer.reset-size11.size11,.katex .sizing.reset-size11.size11{font-size:1em}.katex .delimsizing.size1{font-family:KaTeX_Size1}.katex .delimsizing.size2{font-family:KaTeX_Size2}.katex .delimsizing.size3{font-family:KaTeX_Size3}.katex .delimsizing.size4{font-family:KaTeX_Size4}.katex .delimsizing.mult .delim-size1>span{font-family:KaTeX_Size1}.katex .delimsizing.mult .delim-size4>span{font-family:KaTeX_Size4}.katex .nulldelimiter{display:inline-block;width:.12em}.katex .delimcenter,.katex .op-symbol{position:relative}.katex .op-symbol.small-op{font-family:KaTeX_Size1}.katex .op-symbol.large-op{font-family:KaTeX_Size2}.katex .accent>.vlist-t,.katex .op-limits>.vlist-t{text-align:center}.katex .accent .accent-body{position:relative}.katex .accent .accent-body:not(.accent-full){width:0}.katex .overlay{display:block}.katex .mtable .vertical-separator{display:inline-block;min-width:1px}.katex .mtable .arraycolsep{display:inline-block}.katex .mtable .col-align-c>.vlist-t{text-align:center}.katex .mtable .col-align-l>.vlist-t{text-align:left}.katex .mtable .col-align-r>.vlist-t{text-align:right}.katex .svg-align{text-align:left}.katex svg{fill:currentColor;stroke:currentColor;fill-rule:nonzero;fill-opacity:1;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:block;height:inherit;position:absolute;width:100%}.katex svg path{stroke:none}.katex img{border-style:none;max-height:none;max-width:none;min-height:0;min-width:0}.katex .stretchy{display:block;overflow:hidden;position:relative;width:100%}.katex .stretchy:after,.katex .stretchy:before{content:""}.katex .hide-tail{overflow:hidden;position:relative;width:100%}.katex .halfarrow-left{left:0;overflow:hidden;position:absolute;width:50.2%}.katex .halfarrow-right{overflow:hidden;position:absolute;right:0;width:50.2%}.katex .brace-left{left:0;overflow:hidden;position:absolute;width:25.1%}.katex .brace-center{left:25%;overflow:hidden;position:absolute;width:50%}.katex .brace-right{overflow:hidden;position:absolute;right:0;width:25.1%}.katex .x-arrow-pad{padding:0 .5em}.katex .cd-arrow-pad{padding:0 .55556em 0 .27778em}.katex .mover,.katex .munder,.katex .x-arrow{text-align:center}.katex .boxpad{padding:0 .3em}.katex .fbox,.katex .fcolorbox{border:.04em solid;box-sizing:border-box}.katex .cancel-pad{padding:0 .2em}.katex .cancel-lap{margin-left:-.2em;margin-right:-.2em}.katex .sout{border-bottom-style:solid;border-bottom-width:.08em}.katex .angl{border-right:.049em solid;border-top:.049em solid;box-sizing:border-box;margin-right:.03889em}.katex .anglpad{padding:0 .03889em}.katex .eqn-num:before{content:"(" counter(katexEqnNo) ")";counter-increment:katexEqnNo}.katex .mml-eqn-num:before{content:"(" counter(mmlEqnNo) ")";counter-increment:mmlEqnNo}.katex .mtr-glue{width:50%}.katex .cd-vert-arrow{display:inline-block;position:relative}.katex .cd-label-left{display:inline-block;position:absolute;right:calc(50% + .3em);text-align:left}.katex .cd-label-right{display:inline-block;left:calc(50% + .3em);position:absolute;text-align:right}.katex-display{display:block;margin:1em 0;text-align:center}.katex-display>.katex{display:block;text-align:center;white-space:nowrap}.katex-display>.katex>.katex-html{display:block;position:relative}.katex-display>.katex>.katex-html>.tag{position:absolute;right:0}.katex-display.leqno>.katex>.katex-html>.tag{left:0;right:auto}.katex-display.fleqn>.katex{padding-left:2em;text-align:left}body{counter-reset:katexEqnNo mmlEqnNo}@media (prefers-color-scheme: dark){.wmde-markdown,.wmde-markdown-var{color-scheme:dark;--color-prettylights-syntax-comment: #8b949e;--color-prettylights-syntax-constant: #79c0ff;--color-prettylights-syntax-entity: #d2a8ff;--color-prettylights-syntax-storage-modifier-import: #c9d1d9;--color-prettylights-syntax-entity-tag: #7ee787;--color-prettylights-syntax-keyword: #ff7b72;--color-prettylights-syntax-string: #a5d6ff;--color-prettylights-syntax-variable: #ffa657;--color-prettylights-syntax-brackethighlighter-unmatched: #f85149;--color-prettylights-syntax-invalid-illegal-text: #f0f6fc;--color-prettylights-syntax-invalid-illegal-bg: #8e1519;--color-prettylights-syntax-carriage-return-text: #f0f6fc;--color-prettylights-syntax-carriage-return-bg: #b62324;--color-prettylights-syntax-string-regexp: #7ee787;--color-prettylights-syntax-markup-list: #f2cc60;--color-prettylights-syntax-markup-heading: #1f6feb;--color-prettylights-syntax-markup-italic: #c9d1d9;--color-prettylights-syntax-markup-bold: #c9d1d9;--color-prettylights-syntax-markup-deleted-text: #ffdcd7;--color-prettylights-syntax-markup-deleted-bg: #67060c;--color-prettylights-syntax-markup-inserted-text: #aff5b4;--color-prettylights-syntax-markup-inserted-bg: #033a16;--color-prettylights-syntax-markup-changed-text: #ffdfb6;--color-prettylights-syntax-markup-changed-bg: #5a1e02;--color-prettylights-syntax-markup-ignored-text: #c9d1d9;--color-prettylights-syntax-markup-ignored-bg: #1158c7;--color-prettylights-syntax-meta-diff-range: #d2a8ff;--color-prettylights-syntax-brackethighlighter-angle: #8b949e;--color-prettylights-syntax-sublimelinter-gutter-mark: #484f58;--color-prettylights-syntax-constant-other-reference-link: #a5d6ff;--color-fg-default: #c9d1d9;--color-fg-muted: #8b949e;--color-fg-subtle: #484f58;--color-canvas-default: #0d1117;--color-canvas-subtle: #161b22;--color-border-default: #30363d;--color-border-muted: #21262d;--color-neutral-muted: rgba(110, 118, 129, .4);--color-accent-fg: #58a6ff;--color-accent-emphasis: #1f6feb;--color-attention-subtle: rgba(187, 128, 9, .15);--color-danger-fg: #f85149}}@media (prefers-color-scheme: light){.wmde-markdown,.wmde-markdown-var{color-scheme:light;--color-prettylights-syntax-comment: #6e7781;--color-prettylights-syntax-constant: #0550ae;--color-prettylights-syntax-entity: #8250df;--color-prettylights-syntax-storage-modifier-import: #24292f;--color-prettylights-syntax-entity-tag: #116329;--color-prettylights-syntax-keyword: #cf222e;--color-prettylights-syntax-string: #0a3069;--color-prettylights-syntax-variable: #953800;--color-prettylights-syntax-brackethighlighter-unmatched: #82071e;--color-prettylights-syntax-invalid-illegal-text: #f6f8fa;--color-prettylights-syntax-invalid-illegal-bg: #82071e;--color-prettylights-syntax-carriage-return-text: #f6f8fa;--color-prettylights-syntax-carriage-return-bg: #cf222e;--color-prettylights-syntax-string-regexp: #116329;--color-prettylights-syntax-markup-list: #3b2300;--color-prettylights-syntax-markup-heading: #0550ae;--color-prettylights-syntax-markup-italic: #24292f;--color-prettylights-syntax-markup-bold: #24292f;--color-prettylights-syntax-markup-deleted-text: #82071e;--color-prettylights-syntax-markup-deleted-bg: #ffebe9;--color-prettylights-syntax-markup-inserted-text: #116329;--color-prettylights-syntax-markup-inserted-bg: #dafbe1;--color-prettylights-syntax-markup-changed-text: #953800;--color-prettylights-syntax-markup-changed-bg: #ffd8b5;--color-prettylights-syntax-markup-ignored-text: #eaeef2;--color-prettylights-syntax-markup-ignored-bg: #0550ae;--color-prettylights-syntax-meta-diff-range: #8250df;--color-prettylights-syntax-brackethighlighter-angle: #57606a;--color-prettylights-syntax-sublimelinter-gutter-mark: #8c959f;--color-prettylights-syntax-constant-other-reference-link: #0a3069;--color-fg-default: #24292f;--color-fg-muted: #57606a;--color-fg-subtle: #6e7781;--color-canvas-default: #ffffff;--color-canvas-subtle: #f6f8fa;--color-border-default: #d0d7de;--color-border-muted: hsl(210, 18%, 87%);--color-neutral-muted: rgba(175, 184, 193, .2);--color-accent-fg: #0969da;--color-accent-emphasis: #0969da;--color-attention-subtle: #fff8c5;--color-danger-fg: #cf222e}}[data-color-mode*=dark] .wmde-markdown,[data-color-mode*=dark] .wmde-markdown-var,.wmde-markdown-var[data-color-mode*=dark],.wmde-markdown[data-color-mode*=dark],body[data-color-mode*=dark]{color-scheme:dark;--color-prettylights-syntax-comment: #8b949e;--color-prettylights-syntax-constant: #79c0ff;--color-prettylights-syntax-entity: #d2a8ff;--color-prettylights-syntax-storage-modifier-import: #c9d1d9;--color-prettylights-syntax-entity-tag: #7ee787;--color-prettylights-syntax-keyword: #ff7b72;--color-prettylights-syntax-string: #a5d6ff;--color-prettylights-syntax-variable: #ffa657;--color-prettylights-syntax-brackethighlighter-unmatched: #f85149;--color-prettylights-syntax-invalid-illegal-text: #f0f6fc;--color-prettylights-syntax-invalid-illegal-bg: #8e1519;--color-prettylights-syntax-carriage-return-text: #f0f6fc;--color-prettylights-syntax-carriage-return-bg: #b62324;--color-prettylights-syntax-string-regexp: #7ee787;--color-prettylights-syntax-markup-list: #f2cc60;--color-prettylights-syntax-markup-heading: #1f6feb;--color-prettylights-syntax-markup-italic: #c9d1d9;--color-prettylights-syntax-markup-bold: #c9d1d9;--color-prettylights-syntax-markup-deleted-text: #ffdcd7;--color-prettylights-syntax-markup-deleted-bg: #67060c;--color-prettylights-syntax-markup-inserted-text: #aff5b4;--color-prettylights-syntax-markup-inserted-bg: #033a16;--color-prettylights-syntax-markup-changed-text: #ffdfb6;--color-prettylights-syntax-markup-changed-bg: #5a1e02;--color-prettylights-syntax-markup-ignored-text: #c9d1d9;--color-prettylights-syntax-markup-ignored-bg: #1158c7;--color-prettylights-syntax-meta-diff-range: #d2a8ff;--color-prettylights-syntax-brackethighlighter-angle: #8b949e;--color-prettylights-syntax-sublimelinter-gutter-mark: #484f58;--color-prettylights-syntax-constant-other-reference-link: #a5d6ff;--color-fg-default: #c9d1d9;--color-fg-muted: #8b949e;--color-fg-subtle: #484f58;--color-canvas-default: #0d1117;--color-canvas-subtle: #161b22;--color-border-default: #30363d;--color-border-muted: #21262d;--color-neutral-muted: rgba(110, 118, 129, .4);--color-accent-fg: #58a6ff;--color-accent-emphasis: #1f6feb;--color-attention-subtle: rgba(187, 128, 9, .15);--color-danger-fg: #f85149}[data-color-mode*=light] .wmde-markdown,[data-color-mode*=light] .wmde-markdown-var,.wmde-markdown-var[data-color-mode*=light],.wmde-markdown[data-color-mode*=light],body[data-color-mode*=light]{color-scheme:light;--color-prettylights-syntax-comment: #6e7781;--color-prettylights-syntax-constant: #0550ae;--color-prettylights-syntax-entity: #8250df;--color-prettylights-syntax-storage-modifier-import: #24292f;--color-prettylights-syntax-entity-tag: #116329;--color-prettylights-syntax-keyword: #cf222e;--color-prettylights-syntax-string: #0a3069;--color-prettylights-syntax-variable: #953800;--color-prettylights-syntax-brackethighlighter-unmatched: #82071e;--color-prettylights-syntax-invalid-illegal-text: #f6f8fa;--color-prettylights-syntax-invalid-illegal-bg: #82071e;--color-prettylights-syntax-carriage-return-text: #f6f8fa;--color-prettylights-syntax-carriage-return-bg: #cf222e;--color-prettylights-syntax-string-regexp: #116329;--color-prettylights-syntax-markup-list: #3b2300;--color-prettylights-syntax-markup-heading: #0550ae;--color-prettylights-syntax-markup-italic: #24292f;--color-prettylights-syntax-markup-bold: #24292f;--color-prettylights-syntax-markup-deleted-text: #82071e;--color-prettylights-syntax-markup-deleted-bg: #ffebe9;--color-prettylights-syntax-markup-inserted-text: #116329;--color-prettylights-syntax-markup-inserted-bg: #dafbe1;--color-prettylights-syntax-markup-changed-text: #953800;--color-prettylights-syntax-markup-changed-bg: #ffd8b5;--color-prettylights-syntax-markup-ignored-text: #eaeef2;--color-prettylights-syntax-markup-ignored-bg: #0550ae;--color-prettylights-syntax-meta-diff-range: #8250df;--color-prettylights-syntax-brackethighlighter-angle: #57606a;--color-prettylights-syntax-sublimelinter-gutter-mark: #8c959f;--color-prettylights-syntax-constant-other-reference-link: #0a3069;--color-fg-default: #24292f;--color-fg-muted: #57606a;--color-fg-subtle: #6e7781;--color-canvas-default: #ffffff;--color-canvas-subtle: #f6f8fa;--color-border-default: #d0d7de;--color-border-muted: hsl(210, 18%, 87%);--color-neutral-muted: rgba(175, 184, 193, .2);--color-accent-fg: #0969da;--color-accent-emphasis: #0969da;--color-attention-subtle: #fff8c5;--color-danger-fg: #cf222e}.wmde-markdown{-webkit-text-size-adjust:100%;font-family:-apple-system,Segoe UI,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";font-size:16px;line-height:1.5;word-wrap:break-word;color:var(--color-fg-default);background-color:var(--color-canvas-default)}.wmde-markdown details,.wmde-markdown figcaption,.wmde-markdown figure{display:block}.wmde-markdown summary{display:list-item}.wmde-markdown [hidden]{display:none!important}.wmde-markdown a{background-color:transparent;color:var(--color-accent-fg);text-decoration:none}.wmde-markdown a:active,.wmde-markdown a:hover{outline-width:0}.wmde-markdown abbr[title]{border-bottom:none;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.wmde-markdown b,.wmde-markdown strong{font-weight:600}.wmde-markdown dfn{font-style:italic}.wmde-markdown h1{margin:.67em 0;font-weight:600;padding-bottom:.3em;font-size:2em;border-bottom:1px solid var(--color-border-muted)}.wmde-markdown mark{background-color:var(--color-attention-subtle);color:var(--color-text-primary)}.wmde-markdown small{font-size:90%}.wmde-markdown sub,.wmde-markdown sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}.wmde-markdown sub{bottom:-.25em}.wmde-markdown sup{top:-.5em}.wmde-markdown img{display:inline-block;border-style:none;max-width:100%;box-sizing:content-box;background-color:var(--color-canvas-default)}.wmde-markdown code,.wmde-markdown kbd,.wmde-markdown pre,.wmde-markdown samp{font-family:monospace,monospace;font-size:1em}.wmde-markdown figure{margin:1em 40px}.wmde-markdown hr{box-sizing:content-box;overflow:hidden;background:transparent;border:0;border-bottom:1px solid var(--color-border-muted);height:.25em;padding:0;margin:24px 0;background-color:var(--color-border-default)}.wmde-markdown input{font:inherit;margin:0;overflow:visible;font-family:inherit;font-size:inherit;line-height:inherit}.wmde-markdown [type=button],.wmde-markdown [type=reset],.wmde-markdown [type=submit]{-webkit-appearance:button}.wmde-markdown [type=button]::-moz-focus-inner,.wmde-markdown [type=reset]::-moz-focus-inner,.wmde-markdown [type=submit]::-moz-focus-inner{border-style:none;padding:0}.wmde-markdown [type=button]:-moz-focusring,.wmde-markdown [type=reset]:-moz-focusring,.wmde-markdown [type=submit]:-moz-focusring{outline:1px dotted ButtonText}.wmde-markdown [type=checkbox],.wmde-markdown [type=radio]{box-sizing:border-box;padding:0}.wmde-markdown [type=number]::-webkit-inner-spin-button,.wmde-markdown [type=number]::-webkit-outer-spin-button{height:auto}.wmde-markdown [type=search]{-webkit-appearance:textfield;outline-offset:-2px}.wmde-markdown [type=search]::-webkit-search-cancel-button,.wmde-markdown [type=search]::-webkit-search-decoration{-webkit-appearance:none}.wmde-markdown ::-webkit-input-placeholder{color:inherit;opacity:.54}.wmde-markdown ::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}.wmde-markdown a:hover{text-decoration:underline}.wmde-markdown hr:before{display:table;content:""}.wmde-markdown hr:after{display:table;clear:both;content:""}.wmde-markdown table{border-spacing:0;border-collapse:collapse;display:block;width:-moz-max-content;width:max-content;max-width:100%}.wmde-markdown td,.wmde-markdown th{padding:0}.wmde-markdown details summary{cursor:pointer}.wmde-markdown details:not([open])>*:not(summary){display:none!important}.wmde-markdown kbd{display:inline-block;padding:3px 5px;font:11px ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;line-height:10px;color:var(--color-fg-default);vertical-align:middle;background-color:var(--color-canvas-subtle);border:solid 1px var(--color-neutral-muted);border-bottom-color:var(--color-neutral-muted);border-radius:6px;box-shadow:inset 0 -1px 0 var(--color-neutral-muted)}.wmde-markdown h1,.wmde-markdown h2,.wmde-markdown h3,.wmde-markdown h4,.wmde-markdown h5,.wmde-markdown h6{margin-top:24px;margin-bottom:16px;font-weight:600;line-height:1.25}.wmde-markdown h2{font-weight:600;padding-bottom:.3em;font-size:1.5em;border-bottom:1px solid var(--color-border-muted)}.wmde-markdown h3{font-weight:600;font-size:1.25em}.wmde-markdown h4{font-weight:600;font-size:1em}.wmde-markdown h5{font-weight:600;font-size:.875em}.wmde-markdown h6{font-weight:600;font-size:.85em;color:var(--color-fg-muted)}.wmde-markdown p{margin-top:0;margin-bottom:10px}.wmde-markdown blockquote{margin:0;padding:0 1em;color:var(--color-fg-muted);border-left:.25em solid var(--color-border-default)}.wmde-markdown ul,.wmde-markdown ol{margin-top:0;margin-bottom:0;padding-left:2em}.wmde-markdown ol ol,.wmde-markdown ul ol{list-style-type:lower-roman}.wmde-markdown ul ul ol,.wmde-markdown ul ol ol,.wmde-markdown ol ul ol,.wmde-markdown ol ol ol{list-style-type:lower-alpha}.wmde-markdown dd{margin-left:0}.wmde-markdown tt,.wmde-markdown code{font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;font-size:12px}.wmde-markdown pre{margin-top:0;margin-bottom:0;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;font-size:12px;word-wrap:normal}.wmde-markdown .octicon{display:inline-block;overflow:visible!important;vertical-align:text-bottom;fill:currentColor}.wmde-markdown ::-moz-placeholder{color:var(--color-fg-subtle);opacity:1}.wmde-markdown ::placeholder{color:var(--color-fg-subtle);opacity:1}.wmde-markdown input::-webkit-outer-spin-button,.wmde-markdown input::-webkit-inner-spin-button{margin:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}.wmde-markdown [data-catalyst]{display:block}.wmde-markdown:before{display:table;content:""}.wmde-markdown:after{display:table;clear:both;content:""}.wmde-markdown>*:first-child{margin-top:0!important}.wmde-markdown>*:last-child{margin-bottom:0!important}.wmde-markdown a:not([href]){color:inherit;text-decoration:none}.wmde-markdown .absent{color:var(--color-danger-fg)}.wmde-markdown a.anchor{float:left;padding-right:4px;margin-left:-20px;line-height:1}.wmde-markdown .anchor:focus{outline:none}.wmde-markdown p,.wmde-markdown blockquote,.wmde-markdown ul,.wmde-markdown ol,.wmde-markdown dl,.wmde-markdown table,.wmde-markdown pre,.wmde-markdown details{margin-top:0;margin-bottom:16px}.wmde-markdown blockquote>:first-child{margin-top:0}.wmde-markdown blockquote>:last-child{margin-bottom:0}.wmde-markdown sup>a:before{content:"["}.wmde-markdown sup>a:after{content:"]"}.wmde-markdown h1 .octicon-link,.wmde-markdown h2 .octicon-link,.wmde-markdown h3 .octicon-link,.wmde-markdown h4 .octicon-link,.wmde-markdown h5 .octicon-link,.wmde-markdown h6 .octicon-link{color:var(--color-fg-default);vertical-align:middle;visibility:hidden}.wmde-markdown h1:hover .anchor,.wmde-markdown h2:hover .anchor,.wmde-markdown h3:hover .anchor,.wmde-markdown h4:hover .anchor,.wmde-markdown h5:hover .anchor,.wmde-markdown h6:hover .anchor{text-decoration:none}.wmde-markdown h1:hover .anchor .octicon-link,.wmde-markdown h2:hover .anchor .octicon-link,.wmde-markdown h3:hover .anchor .octicon-link,.wmde-markdown h4:hover .anchor .octicon-link,.wmde-markdown h5:hover .anchor .octicon-link,.wmde-markdown h6:hover .anchor .octicon-link{visibility:visible}.wmde-markdown h1 tt,.wmde-markdown h1 code,.wmde-markdown h2 tt,.wmde-markdown h2 code,.wmde-markdown h3 tt,.wmde-markdown h3 code,.wmde-markdown h4 tt,.wmde-markdown h4 code,.wmde-markdown h5 tt,.wmde-markdown h5 code,.wmde-markdown h6 tt,.wmde-markdown h6 code{padding:0 .2em;font-size:inherit}.wmde-markdown ul.no-list,.wmde-markdown ol.no-list{padding:0;list-style-type:none}.wmde-markdown ol[type="1"]{list-style-type:decimal}.wmde-markdown ol[type=a]{list-style-type:lower-alpha}.wmde-markdown ol[type=i]{list-style-type:lower-roman}.wmde-markdown div>ol:not([type]){list-style-type:decimal}.wmde-markdown ul ul,.wmde-markdown ul ol,.wmde-markdown ol ol,.wmde-markdown ol ul{margin-top:0;margin-bottom:0}.wmde-markdown li>p{margin-top:16px}.wmde-markdown li+li{margin-top:.25em}.wmde-markdown dl{padding:0}.wmde-markdown dl dt{padding:0;margin-top:16px;font-size:1em;font-style:italic;font-weight:600}.wmde-markdown dl dd{padding:0 16px;margin-bottom:16px}.wmde-markdown table th{font-weight:600}.wmde-markdown table th,.wmde-markdown table td{padding:6px 13px;border:1px solid var(--color-border-default)}.wmde-markdown table tr{background-color:var(--color-canvas-default);border-top:1px solid var(--color-border-muted)}.wmde-markdown table tr:nth-child(2n){background-color:var(--color-canvas-subtle)}.wmde-markdown table img{background-color:transparent}.wmde-markdown img[align=right]{padding-left:20px}.wmde-markdown img[align=left]{padding-right:20px}.wmde-markdown .emoji{max-width:none;vertical-align:text-top;background-color:transparent}.wmde-markdown span.frame{display:block;overflow:hidden}.wmde-markdown span.frame>span{display:block;float:left;width:auto;padding:7px;margin:13px 0 0;overflow:hidden;border:1px solid var(--color-border-default)}.wmde-markdown span.frame span img{display:block;float:left}.wmde-markdown span.frame span span{display:block;padding:5px 0 0;clear:both;color:var(--color-fg-default)}.wmde-markdown span.align-center{display:block;overflow:hidden;clear:both}.wmde-markdown span.align-center>span{display:block;margin:13px auto 0;overflow:hidden;text-align:center}.wmde-markdown span.align-center span img{margin:0 auto;text-align:center}.wmde-markdown span.align-right{display:block;overflow:hidden;clear:both}.wmde-markdown span.align-right>span{display:block;margin:13px 0 0;overflow:hidden;text-align:right}.wmde-markdown span.align-right span img{margin:0;text-align:right}.wmde-markdown span.float-left{display:block;float:left;margin-right:13px;overflow:hidden}.wmde-markdown span.float-left span{margin:13px 0 0}.wmde-markdown span.float-right{display:block;float:right;margin-left:13px;overflow:hidden}.wmde-markdown span.float-right>span{display:block;margin:13px auto 0;overflow:hidden;text-align:right}.wmde-markdown code,.wmde-markdown tt{padding:.2em .4em;margin:0;font-size:85%;background-color:var(--color-neutral-muted);border-radius:6px}.wmde-markdown code br,.wmde-markdown tt br{display:none}.wmde-markdown del code{text-decoration:inherit}.wmde-markdown pre code{font-size:100%}.wmde-markdown pre>code{padding:0;margin:0;word-break:normal;white-space:pre;background:transparent;border:0}.wmde-markdown pre{font-size:85%;line-height:1.45;background-color:var(--color-canvas-subtle);border-radius:6px}.wmde-markdown pre code,.wmde-markdown pre tt{display:inline;max-width:auto;padding:0;margin:0;overflow:visible;line-height:inherit;word-wrap:normal;background-color:transparent;border:0}.wmde-markdown pre>code{padding:16px;overflow:auto;display:block}.wmde-markdown .csv-data td,.wmde-markdown .csv-data th{padding:5px;overflow:hidden;font-size:12px;line-height:1;text-align:left;white-space:nowrap}.wmde-markdown .csv-data .blob-num{padding:10px 8px 9px;text-align:right;background:var(--color-canvas-default);border:0}.wmde-markdown .csv-data tr{border-top:0}.wmde-markdown .csv-data th{font-weight:600;background:var(--color-canvas-subtle);border-top:0}.wmde-markdown .footnotes{font-size:12px;color:var(--color-fg-muted);border-top:1px solid var(--color-border-default)}.wmde-markdown .footnotes ol{padding-left:16px}.wmde-markdown .footnotes li{position:relative}.wmde-markdown .footnotes li:target:before{position:absolute;top:-8px;right:-8px;bottom:-8px;left:-24px;pointer-events:none;content:"";border:2px solid var(--color-accent-emphasis);border-radius:6px}.wmde-markdown .footnotes li:target{color:var(--color-fg-default)}.wmde-markdown .footnotes .data-footnote-backref g-emoji{font-family:monospace}.wmde-markdown .task-list-item{list-style-type:none}.wmde-markdown .task-list-item label{font-weight:400}.wmde-markdown .task-list-item.enabled label{cursor:pointer}.wmde-markdown .task-list-item+.wmde-markdown .task-list-item{margin-top:3px}.wmde-markdown .task-list-item .handle{display:none}.wmde-markdown .task-list-item-checkbox,.wmde-markdown .contains-task-list input[type=checkbox]{margin:0 .2em .25em -1.6em;vertical-align:middle}.wmde-markdown .contains-task-list:dir(rtl) .task-list-item-checkbox,.wmde-markdown .contains-task-list:dir(rtl) input[type=checkbox]{margin:0 -1.6em .25em .2em}.wmde-markdown ::-webkit-calendar-picker-indicator{filter:invert(50%)}.wmde-markdown pre{position:relative}.wmde-markdown pre .copied{visibility:hidden;display:flex;position:absolute;cursor:pointer;color:var(--color-fg-defaul);top:6px;right:6px;border-radius:5px;background:var(--color-border-default);padding:6px;font-size:12px;transition:all .3s}.wmde-markdown pre .copied .octicon-copy{display:block}.wmde-markdown pre .copied .octicon-check{display:none}.wmde-markdown pre:hover .copied{visibility:visible}.wmde-markdown pre:hover .copied:hover{background:var(--color-prettylights-syntax-entity-tag);color:var(--color-canvas-default)}.wmde-markdown pre:hover .copied:active,.wmde-markdown pre .copied.active{background:#2e9b33;color:var(--color-canvas-default)}.wmde-markdown pre .active .octicon-copy{display:none}.wmde-markdown pre .active .octicon-check{display:block}.highlight-line{background-color:var(--color-neutral-muted)}.code-line.line-number:before{display:inline-block;width:1rem;text-align:right;margin-right:16px;color:var(--color-fg-subtle);content:attr(line);white-space:nowrap}.token.comment,.token.prolog,.token.doctype,.token.cdata{color:var(--color-prettylights-syntax-comment)}.token.namespace{opacity:.7}.token.property,.token.tag,.token.selector,.token.constant,.token.symbol,.token.deleted{color:var(--color-prettylights-syntax-entity-tag)}.token.maybe-class-name{color:var(--color-prettylights-syntax-variable)}.token.property-access,.token.operator,.token.boolean,.token.number,.token.selector .token.class,.token.attr-name,.token.string,.token.char,.token.builtin{color:var(--color-prettylights-syntax-constant)}.token.deleted{color:var(--color-prettylights-syntax-markup-deleted-text)}.code-line .token.deleted{background-color:var(--color-prettylights-syntax-markup-deleted-bg)}.token.inserted{color:var(--color-prettylights-syntax-markup-inserted-text)}.code-line .token.inserted{background-color:var(--color-prettylights-syntax-markup-inserted-bg)}.token.variable{color:var(--color-prettylights-syntax-constant)}.token.entity,.token.url,.language-css .token.string,.style .token.string,.token.color,.token.atrule,.token.attr-value,.token.function,.token.class-name{color:var(--color-prettylights-syntax-string)}.token.rule,.token.regex,.token.important,.token.keyword{color:var(--color-prettylights-syntax-keyword)}.token.coord{color:var(--color-prettylights-syntax-meta-diff-range)}.token.important,.token.bold{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.mention,.command-suggestion{background-color:var(--vscode-badge-background, #bfe2b6);color:var(--vscode-badge-foreground, --vscode-foreground, #000);border-radius:3px;font-size:.9em;padding:.05em .15em;transition:background-color .2s ease-in-out}.tiptap p.is-editor-empty:first-child:before{color:#646464;content:attr(data-placeholder);float:left;height:0;pointer-events:none}.gap-cursor{border-top:1px solid white}.tiptap img{height:auto;max-width:96%;border:1px solid transparent}.tiptap img.ProseMirror-selectednode{border:1px solid var(--vscode-badge-background, #bfe2b6)}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }.pointer-events-none{pointer-events:none}.visible{visibility:visible}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.-bottom-1{bottom:-.25rem}.bottom-1{bottom:.25rem}.right-0{right:0}.right-1{right:.25rem}.right-2{right:.5rem}.top-0{top:0}.float-right{float:right}.m-0{margin:0}.m-2{margin:.5rem}.m-4{margin:1rem}.m-auto{margin:auto}.mx-1{margin-left:.25rem;margin-right:.25rem}.mx-16{margin-left:4rem;margin-right:4rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-auto{margin-left:auto;margin-right:auto}.my-0{margin-top:0;margin-bottom:0}.my-1{margin-top:.25rem;margin-bottom:.25rem}.my-2{margin-top:.5rem;margin-bottom:.5rem}.my-3{margin-top:.75rem;margin-bottom:.75rem}.my-4{margin-top:1rem;margin-bottom:1rem}.-mt-1{margin-top:-.25rem}.mb-2{margin-bottom:.5rem}.ml-1{margin-left:.25rem}.ml-1\.5{margin-left:.375rem}.ml-2{margin-left:.5rem}.ml-4{margin-left:1rem}.ml-auto{margin-left:auto}.mr-2{margin-right:.5rem}.mr-auto{margin-right:auto}.mt-0{margin-top:0}.mt-0\.5{margin-top:.125rem}.mt-16{margin-top:4rem}.mt-2{margin-top:.5rem}.mt-auto{margin-top:auto}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.table{display:table}.grid{display:grid}.contents{display:contents}.hidden{display:none}.h-2{height:.5rem}.h-4{height:1rem}.h-5{height:1.25rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-full{width:100%}.max-w-3xl{max-width:48rem}.max-w-96{max-width:24rem}.flex-shrink{flex-shrink:1}.flex-shrink-0{flex-shrink:0}.flex-grow{flex-grow:1}.border-collapse{border-collapse:collapse}.border-spacing-0{--tw-border-spacing-x: 0px;--tw-border-spacing-y: 0px;border-spacing:var(--tw-border-spacing-x) var(--tw-border-spacing-y)}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-help{cursor:help}.cursor-pointer{cursor:pointer}.cursor-text{cursor:text}.resize{resize:both}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-scroll{overflow:scroll}.overflow-x-hidden{overflow-x:hidden}.overflow-y-scroll{overflow-y:scroll}.overflow-ellipsis{text-overflow:ellipsis}.whitespace-nowrap{white-space:nowrap}.rounded-md{border-radius:.375rem}.border{border-width:1px}.border-2{border-width:2px}.border-solid{border-style:solid}.border-gray-200{--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity))}.border-gray-600{--tw-border-opacity: 1;border-color:rgb(75 85 99 / var(--tw-border-opacity))}.p-0{padding:0}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-4{padding:1rem}.p-8{padding:2rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.py-0{padding-top:0;padding-bottom:0}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.pb-2{padding-bottom:.5rem}.text-center{text-align:center}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity))}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity))}.text-green-500{--tw-text-opacity: 1;color:rgb(34 197 94 / var(--tw-text-opacity))}.text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity))}.underline{text-decoration-line:underline}.no-underline{text-decoration-line:none}.opacity-0{opacity:0}.opacity-100{opacity:1}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-100{transition-duration:.1s}.ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}:root{--secondary-dark: rgb(37, 37, 38);--vsc-background: rgb(30, 30, 30);--button-color: rgb(113, 28, 59);--button-color-hover: rgba(113, 28, 59, .667);--def-border-radius: 5px;--vscode-editor-background: rgb(30, 30, 30);--vscode-editor-foreground: rgb(197, 200, 198);--vscode-textBlockQuote-background: rgba(255, 255, 255, 1)}html,body,#root{height:100%;background-color:var(--vscode-editor-background);font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif}body{color:var(--vscode-editor-foreground);padding:0;margin:0;height:100%}a:focus{outline:none}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.fade-in-span{animation:fadeIn .3s ease-in-out}.hover\:text-green-500:hover{--tw-text-opacity: 1;color:rgb(34 197 94 / var(--tw-text-opacity))}.hover\:text-red-500:hover{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity))}.hover\:underline:hover{text-decoration-line:underline} +@font-face{font-family:KaTeX_AMS;font-style:normal;font-weight:400;src:url(fonts/KaTeX_AMS-Regular.woff2) format("woff2"),url(fonts/KaTeX_AMS-Regular.woff) format("woff"),url(fonts/KaTeX_AMS-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Caligraphic;font-style:normal;font-weight:700;src:url(fonts/KaTeX_Caligraphic-Bold.woff2) format("woff2"),url(fonts/KaTeX_Caligraphic-Bold.woff) format("woff"),url(fonts/KaTeX_Caligraphic-Bold.ttf) format("truetype")}@font-face{font-family:KaTeX_Caligraphic;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Caligraphic-Regular.woff2) format("woff2"),url(fonts/KaTeX_Caligraphic-Regular.woff) format("woff"),url(fonts/KaTeX_Caligraphic-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Fraktur;font-style:normal;font-weight:700;src:url(fonts/KaTeX_Fraktur-Bold.woff2) format("woff2"),url(fonts/KaTeX_Fraktur-Bold.woff) format("woff"),url(fonts/KaTeX_Fraktur-Bold.ttf) format("truetype")}@font-face{font-family:KaTeX_Fraktur;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Fraktur-Regular.woff2) format("woff2"),url(fonts/KaTeX_Fraktur-Regular.woff) format("woff"),url(fonts/KaTeX_Fraktur-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:normal;font-weight:700;src:url(fonts/KaTeX_Main-Bold.woff2) format("woff2"),url(fonts/KaTeX_Main-Bold.woff) format("woff"),url(fonts/KaTeX_Main-Bold.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:italic;font-weight:700;src:url(fonts/KaTeX_Main-BoldItalic.woff2) format("woff2"),url(fonts/KaTeX_Main-BoldItalic.woff) format("woff"),url(fonts/KaTeX_Main-BoldItalic.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:italic;font-weight:400;src:url(fonts/KaTeX_Main-Italic.woff2) format("woff2"),url(fonts/KaTeX_Main-Italic.woff) format("woff"),url(fonts/KaTeX_Main-Italic.ttf) format("truetype")}@font-face{font-family:KaTeX_Main;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Main-Regular.woff2) format("woff2"),url(fonts/KaTeX_Main-Regular.woff) format("woff"),url(fonts/KaTeX_Main-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Math;font-style:italic;font-weight:700;src:url(fonts/KaTeX_Math-BoldItalic.woff2) format("woff2"),url(fonts/KaTeX_Math-BoldItalic.woff) format("woff"),url(fonts/KaTeX_Math-BoldItalic.ttf) format("truetype")}@font-face{font-family:KaTeX_Math;font-style:italic;font-weight:400;src:url(fonts/KaTeX_Math-Italic.woff2) format("woff2"),url(fonts/KaTeX_Math-Italic.woff) format("woff"),url(fonts/KaTeX_Math-Italic.ttf) format("truetype")}@font-face{font-family:KaTeX_SansSerif;font-style:normal;font-weight:700;src:url(fonts/KaTeX_SansSerif-Bold.woff2) format("woff2"),url(fonts/KaTeX_SansSerif-Bold.woff) format("woff"),url(fonts/KaTeX_SansSerif-Bold.ttf) format("truetype")}@font-face{font-family:KaTeX_SansSerif;font-style:italic;font-weight:400;src:url(fonts/KaTeX_SansSerif-Italic.woff2) format("woff2"),url(fonts/KaTeX_SansSerif-Italic.woff) format("woff"),url(fonts/KaTeX_SansSerif-Italic.ttf) format("truetype")}@font-face{font-family:KaTeX_SansSerif;font-style:normal;font-weight:400;src:url(fonts/KaTeX_SansSerif-Regular.woff2) format("woff2"),url(fonts/KaTeX_SansSerif-Regular.woff) format("woff"),url(fonts/KaTeX_SansSerif-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Script;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Script-Regular.woff2) format("woff2"),url(fonts/KaTeX_Script-Regular.woff) format("woff"),url(fonts/KaTeX_Script-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Size1;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Size1-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size1-Regular.woff) format("woff"),url(fonts/KaTeX_Size1-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Size2;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Size2-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size2-Regular.woff) format("woff"),url(fonts/KaTeX_Size2-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Size3;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Size3-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size3-Regular.woff) format("woff"),url(fonts/KaTeX_Size3-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Size4;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Size4-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size4-Regular.woff) format("woff"),url(fonts/KaTeX_Size4-Regular.ttf) format("truetype")}@font-face{font-family:KaTeX_Typewriter;font-style:normal;font-weight:400;src:url(fonts/KaTeX_Typewriter-Regular.woff2) format("woff2"),url(fonts/KaTeX_Typewriter-Regular.woff) format("woff"),url(fonts/KaTeX_Typewriter-Regular.ttf) format("truetype")}.katex{text-rendering:auto;font: 1.21em KaTeX_Main,Times New Roman,serif;line-height:1.2;text-indent:0}.katex *{-ms-high-contrast-adjust:none!important;border-color:currentColor}.katex .katex-version:after{content:"0.16.8"}.katex .katex-mathml{clip:rect(1px,1px,1px,1px);border:0;height:1px;overflow:hidden;padding:0;position:absolute;width:1px}.katex .katex-html>.newline{display:block}.katex .base{position:relative;white-space:nowrap;width:-moz-min-content;width:min-content}.katex .base,.katex .strut{display:inline-block}.katex .textbf{font-weight:700}.katex .textit{font-style:italic}.katex .textrm{font-family:KaTeX_Main}.katex .textsf{font-family:KaTeX_SansSerif}.katex .texttt{font-family:KaTeX_Typewriter}.katex .mathnormal{font-family:KaTeX_Math;font-style:italic}.katex .mathit{font-family:KaTeX_Main;font-style:italic}.katex .mathrm{font-style:normal}.katex .mathbf{font-family:KaTeX_Main;font-weight:700}.katex .boldsymbol{font-family:KaTeX_Math;font-style:italic;font-weight:700}.katex .amsrm,.katex .mathbb,.katex .textbb{font-family:KaTeX_AMS}.katex .mathcal{font-family:KaTeX_Caligraphic}.katex .mathfrak,.katex .textfrak{font-family:KaTeX_Fraktur}.katex .mathtt{font-family:KaTeX_Typewriter}.katex .mathscr,.katex .textscr{font-family:KaTeX_Script}.katex .mathsf,.katex .textsf{font-family:KaTeX_SansSerif}.katex .mathboldsf,.katex .textboldsf{font-family:KaTeX_SansSerif;font-weight:700}.katex .mathitsf,.katex .textitsf{font-family:KaTeX_SansSerif;font-style:italic}.katex .mainrm{font-family:KaTeX_Main;font-style:normal}.katex .vlist-t{border-collapse:collapse;display:inline-table;table-layout:fixed}.katex .vlist-r{display:table-row}.katex .vlist{display:table-cell;position:relative;vertical-align:bottom}.katex .vlist>span{display:block;height:0;position:relative}.katex .vlist>span>span{display:inline-block}.katex .vlist>span>.pstrut{overflow:hidden;width:0}.katex .vlist-t2{margin-right:-2px}.katex .vlist-s{display:table-cell;font-size:1px;min-width:2px;vertical-align:bottom;width:2px}.katex .vbox{align-items:baseline;display:inline-flex;flex-direction:column}.katex .hbox{width:100%}.katex .hbox,.katex .thinbox{display:inline-flex;flex-direction:row}.katex .thinbox{max-width:0;width:0}.katex .msupsub{text-align:left}.katex .mfrac>span>span{text-align:center}.katex .mfrac .frac-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline,.katex .hline,.katex .mfrac .frac-line,.katex .overline .overline-line,.katex .rule,.katex .underline .underline-line{min-height:1px}.katex .mspace{display:inline-block}.katex .clap,.katex .llap,.katex .rlap{position:relative;width:0}.katex .clap>.inner,.katex .llap>.inner,.katex .rlap>.inner{position:absolute}.katex .clap>.fix,.katex .llap>.fix,.katex .rlap>.fix{display:inline-block}.katex .llap>.inner{right:0}.katex .clap>.inner,.katex .rlap>.inner{left:0}.katex .clap>.inner>span{margin-left:-50%;margin-right:50%}.katex .rule{border:0 solid;display:inline-block;position:relative}.katex .hline,.katex .overline .overline-line,.katex .underline .underline-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline{border-bottom-style:dashed;display:inline-block;width:100%}.katex .sqrt>.root{margin-left:.27777778em;margin-right:-.55555556em}.katex .fontsize-ensurer.reset-size1.size1,.katex .sizing.reset-size1.size1{font-size:1em}.katex .fontsize-ensurer.reset-size1.size2,.katex .sizing.reset-size1.size2{font-size:1.2em}.katex .fontsize-ensurer.reset-size1.size3,.katex .sizing.reset-size1.size3{font-size:1.4em}.katex .fontsize-ensurer.reset-size1.size4,.katex .sizing.reset-size1.size4{font-size:1.6em}.katex .fontsize-ensurer.reset-size1.size5,.katex .sizing.reset-size1.size5{font-size:1.8em}.katex .fontsize-ensurer.reset-size1.size6,.katex .sizing.reset-size1.size6{font-size:2em}.katex .fontsize-ensurer.reset-size1.size7,.katex .sizing.reset-size1.size7{font-size:2.4em}.katex .fontsize-ensurer.reset-size1.size8,.katex .sizing.reset-size1.size8{font-size:2.88em}.katex .fontsize-ensurer.reset-size1.size9,.katex .sizing.reset-size1.size9{font-size:3.456em}.katex .fontsize-ensurer.reset-size1.size10,.katex .sizing.reset-size1.size10{font-size:4.148em}.katex .fontsize-ensurer.reset-size1.size11,.katex .sizing.reset-size1.size11{font-size:4.976em}.katex .fontsize-ensurer.reset-size2.size1,.katex .sizing.reset-size2.size1{font-size:.83333333em}.katex .fontsize-ensurer.reset-size2.size2,.katex .sizing.reset-size2.size2{font-size:1em}.katex .fontsize-ensurer.reset-size2.size3,.katex .sizing.reset-size2.size3{font-size:1.16666667em}.katex .fontsize-ensurer.reset-size2.size4,.katex .sizing.reset-size2.size4{font-size:1.33333333em}.katex .fontsize-ensurer.reset-size2.size5,.katex .sizing.reset-size2.size5{font-size:1.5em}.katex .fontsize-ensurer.reset-size2.size6,.katex .sizing.reset-size2.size6{font-size:1.66666667em}.katex .fontsize-ensurer.reset-size2.size7,.katex .sizing.reset-size2.size7{font-size:2em}.katex .fontsize-ensurer.reset-size2.size8,.katex .sizing.reset-size2.size8{font-size:2.4em}.katex .fontsize-ensurer.reset-size2.size9,.katex .sizing.reset-size2.size9{font-size:2.88em}.katex .fontsize-ensurer.reset-size2.size10,.katex .sizing.reset-size2.size10{font-size:3.45666667em}.katex .fontsize-ensurer.reset-size2.size11,.katex .sizing.reset-size2.size11{font-size:4.14666667em}.katex .fontsize-ensurer.reset-size3.size1,.katex .sizing.reset-size3.size1{font-size:.71428571em}.katex .fontsize-ensurer.reset-size3.size2,.katex .sizing.reset-size3.size2{font-size:.85714286em}.katex .fontsize-ensurer.reset-size3.size3,.katex .sizing.reset-size3.size3{font-size:1em}.katex .fontsize-ensurer.reset-size3.size4,.katex .sizing.reset-size3.size4{font-size:1.14285714em}.katex .fontsize-ensurer.reset-size3.size5,.katex .sizing.reset-size3.size5{font-size:1.28571429em}.katex .fontsize-ensurer.reset-size3.size6,.katex .sizing.reset-size3.size6{font-size:1.42857143em}.katex .fontsize-ensurer.reset-size3.size7,.katex .sizing.reset-size3.size7{font-size:1.71428571em}.katex .fontsize-ensurer.reset-size3.size8,.katex .sizing.reset-size3.size8{font-size:2.05714286em}.katex .fontsize-ensurer.reset-size3.size9,.katex .sizing.reset-size3.size9{font-size:2.46857143em}.katex .fontsize-ensurer.reset-size3.size10,.katex .sizing.reset-size3.size10{font-size:2.96285714em}.katex .fontsize-ensurer.reset-size3.size11,.katex .sizing.reset-size3.size11{font-size:3.55428571em}.katex .fontsize-ensurer.reset-size4.size1,.katex .sizing.reset-size4.size1{font-size:.625em}.katex .fontsize-ensurer.reset-size4.size2,.katex .sizing.reset-size4.size2{font-size:.75em}.katex .fontsize-ensurer.reset-size4.size3,.katex .sizing.reset-size4.size3{font-size:.875em}.katex .fontsize-ensurer.reset-size4.size4,.katex .sizing.reset-size4.size4{font-size:1em}.katex .fontsize-ensurer.reset-size4.size5,.katex .sizing.reset-size4.size5{font-size:1.125em}.katex .fontsize-ensurer.reset-size4.size6,.katex .sizing.reset-size4.size6{font-size:1.25em}.katex .fontsize-ensurer.reset-size4.size7,.katex .sizing.reset-size4.size7{font-size:1.5em}.katex .fontsize-ensurer.reset-size4.size8,.katex .sizing.reset-size4.size8{font-size:1.8em}.katex .fontsize-ensurer.reset-size4.size9,.katex .sizing.reset-size4.size9{font-size:2.16em}.katex .fontsize-ensurer.reset-size4.size10,.katex .sizing.reset-size4.size10{font-size:2.5925em}.katex .fontsize-ensurer.reset-size4.size11,.katex .sizing.reset-size4.size11{font-size:3.11em}.katex .fontsize-ensurer.reset-size5.size1,.katex .sizing.reset-size5.size1{font-size:.55555556em}.katex .fontsize-ensurer.reset-size5.size2,.katex .sizing.reset-size5.size2{font-size:.66666667em}.katex .fontsize-ensurer.reset-size5.size3,.katex .sizing.reset-size5.size3{font-size:.77777778em}.katex .fontsize-ensurer.reset-size5.size4,.katex .sizing.reset-size5.size4{font-size:.88888889em}.katex .fontsize-ensurer.reset-size5.size5,.katex .sizing.reset-size5.size5{font-size:1em}.katex .fontsize-ensurer.reset-size5.size6,.katex .sizing.reset-size5.size6{font-size:1.11111111em}.katex .fontsize-ensurer.reset-size5.size7,.katex .sizing.reset-size5.size7{font-size:1.33333333em}.katex .fontsize-ensurer.reset-size5.size8,.katex .sizing.reset-size5.size8{font-size:1.6em}.katex .fontsize-ensurer.reset-size5.size9,.katex .sizing.reset-size5.size9{font-size:1.92em}.katex .fontsize-ensurer.reset-size5.size10,.katex .sizing.reset-size5.size10{font-size:2.30444444em}.katex .fontsize-ensurer.reset-size5.size11,.katex .sizing.reset-size5.size11{font-size:2.76444444em}.katex .fontsize-ensurer.reset-size6.size1,.katex .sizing.reset-size6.size1{font-size:.5em}.katex .fontsize-ensurer.reset-size6.size2,.katex .sizing.reset-size6.size2{font-size:.6em}.katex .fontsize-ensurer.reset-size6.size3,.katex .sizing.reset-size6.size3{font-size:.7em}.katex .fontsize-ensurer.reset-size6.size4,.katex .sizing.reset-size6.size4{font-size:.8em}.katex .fontsize-ensurer.reset-size6.size5,.katex .sizing.reset-size6.size5{font-size:.9em}.katex .fontsize-ensurer.reset-size6.size6,.katex .sizing.reset-size6.size6{font-size:1em}.katex .fontsize-ensurer.reset-size6.size7,.katex .sizing.reset-size6.size7{font-size:1.2em}.katex .fontsize-ensurer.reset-size6.size8,.katex .sizing.reset-size6.size8{font-size:1.44em}.katex .fontsize-ensurer.reset-size6.size9,.katex .sizing.reset-size6.size9{font-size:1.728em}.katex .fontsize-ensurer.reset-size6.size10,.katex .sizing.reset-size6.size10{font-size:2.074em}.katex .fontsize-ensurer.reset-size6.size11,.katex .sizing.reset-size6.size11{font-size:2.488em}.katex .fontsize-ensurer.reset-size7.size1,.katex .sizing.reset-size7.size1{font-size:.41666667em}.katex .fontsize-ensurer.reset-size7.size2,.katex .sizing.reset-size7.size2{font-size:.5em}.katex .fontsize-ensurer.reset-size7.size3,.katex .sizing.reset-size7.size3{font-size:.58333333em}.katex .fontsize-ensurer.reset-size7.size4,.katex .sizing.reset-size7.size4{font-size:.66666667em}.katex .fontsize-ensurer.reset-size7.size5,.katex .sizing.reset-size7.size5{font-size:.75em}.katex .fontsize-ensurer.reset-size7.size6,.katex .sizing.reset-size7.size6{font-size:.83333333em}.katex .fontsize-ensurer.reset-size7.size7,.katex .sizing.reset-size7.size7{font-size:1em}.katex .fontsize-ensurer.reset-size7.size8,.katex .sizing.reset-size7.size8{font-size:1.2em}.katex .fontsize-ensurer.reset-size7.size9,.katex .sizing.reset-size7.size9{font-size:1.44em}.katex .fontsize-ensurer.reset-size7.size10,.katex .sizing.reset-size7.size10{font-size:1.72833333em}.katex .fontsize-ensurer.reset-size7.size11,.katex .sizing.reset-size7.size11{font-size:2.07333333em}.katex .fontsize-ensurer.reset-size8.size1,.katex .sizing.reset-size8.size1{font-size:.34722222em}.katex .fontsize-ensurer.reset-size8.size2,.katex .sizing.reset-size8.size2{font-size:.41666667em}.katex .fontsize-ensurer.reset-size8.size3,.katex .sizing.reset-size8.size3{font-size:.48611111em}.katex .fontsize-ensurer.reset-size8.size4,.katex .sizing.reset-size8.size4{font-size:.55555556em}.katex .fontsize-ensurer.reset-size8.size5,.katex .sizing.reset-size8.size5{font-size:.625em}.katex .fontsize-ensurer.reset-size8.size6,.katex .sizing.reset-size8.size6{font-size:.69444444em}.katex .fontsize-ensurer.reset-size8.size7,.katex .sizing.reset-size8.size7{font-size:.83333333em}.katex .fontsize-ensurer.reset-size8.size8,.katex .sizing.reset-size8.size8{font-size:1em}.katex .fontsize-ensurer.reset-size8.size9,.katex .sizing.reset-size8.size9{font-size:1.2em}.katex .fontsize-ensurer.reset-size8.size10,.katex .sizing.reset-size8.size10{font-size:1.44027778em}.katex .fontsize-ensurer.reset-size8.size11,.katex .sizing.reset-size8.size11{font-size:1.72777778em}.katex .fontsize-ensurer.reset-size9.size1,.katex .sizing.reset-size9.size1{font-size:.28935185em}.katex .fontsize-ensurer.reset-size9.size2,.katex .sizing.reset-size9.size2{font-size:.34722222em}.katex .fontsize-ensurer.reset-size9.size3,.katex .sizing.reset-size9.size3{font-size:.40509259em}.katex .fontsize-ensurer.reset-size9.size4,.katex .sizing.reset-size9.size4{font-size:.46296296em}.katex .fontsize-ensurer.reset-size9.size5,.katex .sizing.reset-size9.size5{font-size:.52083333em}.katex .fontsize-ensurer.reset-size9.size6,.katex .sizing.reset-size9.size6{font-size:.5787037em}.katex .fontsize-ensurer.reset-size9.size7,.katex .sizing.reset-size9.size7{font-size:.69444444em}.katex .fontsize-ensurer.reset-size9.size8,.katex .sizing.reset-size9.size8{font-size:.83333333em}.katex .fontsize-ensurer.reset-size9.size9,.katex .sizing.reset-size9.size9{font-size:1em}.katex .fontsize-ensurer.reset-size9.size10,.katex .sizing.reset-size9.size10{font-size:1.20023148em}.katex .fontsize-ensurer.reset-size9.size11,.katex .sizing.reset-size9.size11{font-size:1.43981481em}.katex .fontsize-ensurer.reset-size10.size1,.katex .sizing.reset-size10.size1{font-size:.24108004em}.katex .fontsize-ensurer.reset-size10.size2,.katex .sizing.reset-size10.size2{font-size:.28929605em}.katex .fontsize-ensurer.reset-size10.size3,.katex .sizing.reset-size10.size3{font-size:.33751205em}.katex .fontsize-ensurer.reset-size10.size4,.katex .sizing.reset-size10.size4{font-size:.38572806em}.katex .fontsize-ensurer.reset-size10.size5,.katex .sizing.reset-size10.size5{font-size:.43394407em}.katex .fontsize-ensurer.reset-size10.size6,.katex .sizing.reset-size10.size6{font-size:.48216008em}.katex .fontsize-ensurer.reset-size10.size7,.katex .sizing.reset-size10.size7{font-size:.57859209em}.katex .fontsize-ensurer.reset-size10.size8,.katex .sizing.reset-size10.size8{font-size:.69431051em}.katex .fontsize-ensurer.reset-size10.size9,.katex .sizing.reset-size10.size9{font-size:.83317261em}.katex .fontsize-ensurer.reset-size10.size10,.katex .sizing.reset-size10.size10{font-size:1em}.katex .fontsize-ensurer.reset-size10.size11,.katex .sizing.reset-size10.size11{font-size:1.19961427em}.katex .fontsize-ensurer.reset-size11.size1,.katex .sizing.reset-size11.size1{font-size:.20096463em}.katex .fontsize-ensurer.reset-size11.size2,.katex .sizing.reset-size11.size2{font-size:.24115756em}.katex .fontsize-ensurer.reset-size11.size3,.katex .sizing.reset-size11.size3{font-size:.28135048em}.katex .fontsize-ensurer.reset-size11.size4,.katex .sizing.reset-size11.size4{font-size:.32154341em}.katex .fontsize-ensurer.reset-size11.size5,.katex .sizing.reset-size11.size5{font-size:.36173633em}.katex .fontsize-ensurer.reset-size11.size6,.katex .sizing.reset-size11.size6{font-size:.40192926em}.katex .fontsize-ensurer.reset-size11.size7,.katex .sizing.reset-size11.size7{font-size:.48231511em}.katex .fontsize-ensurer.reset-size11.size8,.katex .sizing.reset-size11.size8{font-size:.57877814em}.katex .fontsize-ensurer.reset-size11.size9,.katex .sizing.reset-size11.size9{font-size:.69453376em}.katex .fontsize-ensurer.reset-size11.size10,.katex .sizing.reset-size11.size10{font-size:.83360129em}.katex .fontsize-ensurer.reset-size11.size11,.katex .sizing.reset-size11.size11{font-size:1em}.katex .delimsizing.size1{font-family:KaTeX_Size1}.katex .delimsizing.size2{font-family:KaTeX_Size2}.katex .delimsizing.size3{font-family:KaTeX_Size3}.katex .delimsizing.size4{font-family:KaTeX_Size4}.katex .delimsizing.mult .delim-size1>span{font-family:KaTeX_Size1}.katex .delimsizing.mult .delim-size4>span{font-family:KaTeX_Size4}.katex .nulldelimiter{display:inline-block;width:.12em}.katex .delimcenter,.katex .op-symbol{position:relative}.katex .op-symbol.small-op{font-family:KaTeX_Size1}.katex .op-symbol.large-op{font-family:KaTeX_Size2}.katex .accent>.vlist-t,.katex .op-limits>.vlist-t{text-align:center}.katex .accent .accent-body{position:relative}.katex .accent .accent-body:not(.accent-full){width:0}.katex .overlay{display:block}.katex .mtable .vertical-separator{display:inline-block;min-width:1px}.katex .mtable .arraycolsep{display:inline-block}.katex .mtable .col-align-c>.vlist-t{text-align:center}.katex .mtable .col-align-l>.vlist-t{text-align:left}.katex .mtable .col-align-r>.vlist-t{text-align:right}.katex .svg-align{text-align:left}.katex svg{fill:currentColor;stroke:currentColor;fill-rule:nonzero;fill-opacity:1;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:block;height:inherit;position:absolute;width:100%}.katex svg path{stroke:none}.katex img{border-style:none;max-height:none;max-width:none;min-height:0;min-width:0}.katex .stretchy{display:block;overflow:hidden;position:relative;width:100%}.katex .stretchy:after,.katex .stretchy:before{content:""}.katex .hide-tail{overflow:hidden;position:relative;width:100%}.katex .halfarrow-left{left:0;overflow:hidden;position:absolute;width:50.2%}.katex .halfarrow-right{overflow:hidden;position:absolute;right:0;width:50.2%}.katex .brace-left{left:0;overflow:hidden;position:absolute;width:25.1%}.katex .brace-center{left:25%;overflow:hidden;position:absolute;width:50%}.katex .brace-right{overflow:hidden;position:absolute;right:0;width:25.1%}.katex .x-arrow-pad{padding:0 .5em}.katex .cd-arrow-pad{padding:0 .55556em 0 .27778em}.katex .mover,.katex .munder,.katex .x-arrow{text-align:center}.katex .boxpad{padding:0 .3em}.katex .fbox,.katex .fcolorbox{border:.04em solid;box-sizing:border-box}.katex .cancel-pad{padding:0 .2em}.katex .cancel-lap{margin-left:-.2em;margin-right:-.2em}.katex .sout{border-bottom-style:solid;border-bottom-width:.08em}.katex .angl{border-right:.049em solid;border-top:.049em solid;box-sizing:border-box;margin-right:.03889em}.katex .anglpad{padding:0 .03889em}.katex .eqn-num:before{content:"(" counter(katexEqnNo) ")";counter-increment:katexEqnNo}.katex .mml-eqn-num:before{content:"(" counter(mmlEqnNo) ")";counter-increment:mmlEqnNo}.katex .mtr-glue{width:50%}.katex .cd-vert-arrow{display:inline-block;position:relative}.katex .cd-label-left{display:inline-block;position:absolute;right:calc(50% + .3em);text-align:left}.katex .cd-label-right{display:inline-block;left:calc(50% + .3em);position:absolute;text-align:right}.katex-display{display:block;margin:1em 0;text-align:center}.katex-display>.katex{display:block;text-align:center;white-space:nowrap}.katex-display>.katex>.katex-html{display:block;position:relative}.katex-display>.katex>.katex-html>.tag{position:absolute;right:0}.katex-display.leqno>.katex>.katex-html>.tag{left:0;right:auto}.katex-display.fleqn>.katex{padding-left:2em;text-align:left}body{counter-reset:katexEqnNo mmlEqnNo}@media (prefers-color-scheme: dark){.wmde-markdown,.wmde-markdown-var{color-scheme:dark;--color-prettylights-syntax-comment: #8b949e;--color-prettylights-syntax-constant: #79c0ff;--color-prettylights-syntax-entity: #d2a8ff;--color-prettylights-syntax-storage-modifier-import: #c9d1d9;--color-prettylights-syntax-entity-tag: #7ee787;--color-prettylights-syntax-keyword: #ff7b72;--color-prettylights-syntax-string: #a5d6ff;--color-prettylights-syntax-variable: #ffa657;--color-prettylights-syntax-brackethighlighter-unmatched: #f85149;--color-prettylights-syntax-invalid-illegal-text: #f0f6fc;--color-prettylights-syntax-invalid-illegal-bg: #8e1519;--color-prettylights-syntax-carriage-return-text: #f0f6fc;--color-prettylights-syntax-carriage-return-bg: #b62324;--color-prettylights-syntax-string-regexp: #7ee787;--color-prettylights-syntax-markup-list: #f2cc60;--color-prettylights-syntax-markup-heading: #1f6feb;--color-prettylights-syntax-markup-italic: #c9d1d9;--color-prettylights-syntax-markup-bold: #c9d1d9;--color-prettylights-syntax-markup-deleted-text: #ffdcd7;--color-prettylights-syntax-markup-deleted-bg: #67060c;--color-prettylights-syntax-markup-inserted-text: #aff5b4;--color-prettylights-syntax-markup-inserted-bg: #033a16;--color-prettylights-syntax-markup-changed-text: #ffdfb6;--color-prettylights-syntax-markup-changed-bg: #5a1e02;--color-prettylights-syntax-markup-ignored-text: #c9d1d9;--color-prettylights-syntax-markup-ignored-bg: #1158c7;--color-prettylights-syntax-meta-diff-range: #d2a8ff;--color-prettylights-syntax-brackethighlighter-angle: #8b949e;--color-prettylights-syntax-sublimelinter-gutter-mark: #484f58;--color-prettylights-syntax-constant-other-reference-link: #a5d6ff;--color-fg-default: #c9d1d9;--color-fg-muted: #8b949e;--color-fg-subtle: #484f58;--color-canvas-default: #0d1117;--color-canvas-subtle: #161b22;--color-border-default: #30363d;--color-border-muted: #21262d;--color-neutral-muted: rgba(110, 118, 129, .4);--color-accent-fg: #58a6ff;--color-accent-emphasis: #1f6feb;--color-attention-subtle: rgba(187, 128, 9, .15);--color-danger-fg: #f85149}}@media (prefers-color-scheme: light){.wmde-markdown,.wmde-markdown-var{color-scheme:light;--color-prettylights-syntax-comment: #6e7781;--color-prettylights-syntax-constant: #0550ae;--color-prettylights-syntax-entity: #8250df;--color-prettylights-syntax-storage-modifier-import: #24292f;--color-prettylights-syntax-entity-tag: #116329;--color-prettylights-syntax-keyword: #cf222e;--color-prettylights-syntax-string: #0a3069;--color-prettylights-syntax-variable: #953800;--color-prettylights-syntax-brackethighlighter-unmatched: #82071e;--color-prettylights-syntax-invalid-illegal-text: #f6f8fa;--color-prettylights-syntax-invalid-illegal-bg: #82071e;--color-prettylights-syntax-carriage-return-text: #f6f8fa;--color-prettylights-syntax-carriage-return-bg: #cf222e;--color-prettylights-syntax-string-regexp: #116329;--color-prettylights-syntax-markup-list: #3b2300;--color-prettylights-syntax-markup-heading: #0550ae;--color-prettylights-syntax-markup-italic: #24292f;--color-prettylights-syntax-markup-bold: #24292f;--color-prettylights-syntax-markup-deleted-text: #82071e;--color-prettylights-syntax-markup-deleted-bg: #ffebe9;--color-prettylights-syntax-markup-inserted-text: #116329;--color-prettylights-syntax-markup-inserted-bg: #dafbe1;--color-prettylights-syntax-markup-changed-text: #953800;--color-prettylights-syntax-markup-changed-bg: #ffd8b5;--color-prettylights-syntax-markup-ignored-text: #eaeef2;--color-prettylights-syntax-markup-ignored-bg: #0550ae;--color-prettylights-syntax-meta-diff-range: #8250df;--color-prettylights-syntax-brackethighlighter-angle: #57606a;--color-prettylights-syntax-sublimelinter-gutter-mark: #8c959f;--color-prettylights-syntax-constant-other-reference-link: #0a3069;--color-fg-default: #24292f;--color-fg-muted: #57606a;--color-fg-subtle: #6e7781;--color-canvas-default: #ffffff;--color-canvas-subtle: #f6f8fa;--color-border-default: #d0d7de;--color-border-muted: hsl(210, 18%, 87%);--color-neutral-muted: rgba(175, 184, 193, .2);--color-accent-fg: #0969da;--color-accent-emphasis: #0969da;--color-attention-subtle: #fff8c5;--color-danger-fg: #cf222e}}[data-color-mode*=dark] .wmde-markdown,[data-color-mode*=dark] .wmde-markdown-var,.wmde-markdown-var[data-color-mode*=dark],.wmde-markdown[data-color-mode*=dark],body[data-color-mode*=dark]{color-scheme:dark;--color-prettylights-syntax-comment: #8b949e;--color-prettylights-syntax-constant: #79c0ff;--color-prettylights-syntax-entity: #d2a8ff;--color-prettylights-syntax-storage-modifier-import: #c9d1d9;--color-prettylights-syntax-entity-tag: #7ee787;--color-prettylights-syntax-keyword: #ff7b72;--color-prettylights-syntax-string: #a5d6ff;--color-prettylights-syntax-variable: #ffa657;--color-prettylights-syntax-brackethighlighter-unmatched: #f85149;--color-prettylights-syntax-invalid-illegal-text: #f0f6fc;--color-prettylights-syntax-invalid-illegal-bg: #8e1519;--color-prettylights-syntax-carriage-return-text: #f0f6fc;--color-prettylights-syntax-carriage-return-bg: #b62324;--color-prettylights-syntax-string-regexp: #7ee787;--color-prettylights-syntax-markup-list: #f2cc60;--color-prettylights-syntax-markup-heading: #1f6feb;--color-prettylights-syntax-markup-italic: #c9d1d9;--color-prettylights-syntax-markup-bold: #c9d1d9;--color-prettylights-syntax-markup-deleted-text: #ffdcd7;--color-prettylights-syntax-markup-deleted-bg: #67060c;--color-prettylights-syntax-markup-inserted-text: #aff5b4;--color-prettylights-syntax-markup-inserted-bg: #033a16;--color-prettylights-syntax-markup-changed-text: #ffdfb6;--color-prettylights-syntax-markup-changed-bg: #5a1e02;--color-prettylights-syntax-markup-ignored-text: #c9d1d9;--color-prettylights-syntax-markup-ignored-bg: #1158c7;--color-prettylights-syntax-meta-diff-range: #d2a8ff;--color-prettylights-syntax-brackethighlighter-angle: #8b949e;--color-prettylights-syntax-sublimelinter-gutter-mark: #484f58;--color-prettylights-syntax-constant-other-reference-link: #a5d6ff;--color-fg-default: #c9d1d9;--color-fg-muted: #8b949e;--color-fg-subtle: #484f58;--color-canvas-default: #0d1117;--color-canvas-subtle: #161b22;--color-border-default: #30363d;--color-border-muted: #21262d;--color-neutral-muted: rgba(110, 118, 129, .4);--color-accent-fg: #58a6ff;--color-accent-emphasis: #1f6feb;--color-attention-subtle: rgba(187, 128, 9, .15);--color-danger-fg: #f85149}[data-color-mode*=light] .wmde-markdown,[data-color-mode*=light] .wmde-markdown-var,.wmde-markdown-var[data-color-mode*=light],.wmde-markdown[data-color-mode*=light],body[data-color-mode*=light]{color-scheme:light;--color-prettylights-syntax-comment: #6e7781;--color-prettylights-syntax-constant: #0550ae;--color-prettylights-syntax-entity: #8250df;--color-prettylights-syntax-storage-modifier-import: #24292f;--color-prettylights-syntax-entity-tag: #116329;--color-prettylights-syntax-keyword: #cf222e;--color-prettylights-syntax-string: #0a3069;--color-prettylights-syntax-variable: #953800;--color-prettylights-syntax-brackethighlighter-unmatched: #82071e;--color-prettylights-syntax-invalid-illegal-text: #f6f8fa;--color-prettylights-syntax-invalid-illegal-bg: #82071e;--color-prettylights-syntax-carriage-return-text: #f6f8fa;--color-prettylights-syntax-carriage-return-bg: #cf222e;--color-prettylights-syntax-string-regexp: #116329;--color-prettylights-syntax-markup-list: #3b2300;--color-prettylights-syntax-markup-heading: #0550ae;--color-prettylights-syntax-markup-italic: #24292f;--color-prettylights-syntax-markup-bold: #24292f;--color-prettylights-syntax-markup-deleted-text: #82071e;--color-prettylights-syntax-markup-deleted-bg: #ffebe9;--color-prettylights-syntax-markup-inserted-text: #116329;--color-prettylights-syntax-markup-inserted-bg: #dafbe1;--color-prettylights-syntax-markup-changed-text: #953800;--color-prettylights-syntax-markup-changed-bg: #ffd8b5;--color-prettylights-syntax-markup-ignored-text: #eaeef2;--color-prettylights-syntax-markup-ignored-bg: #0550ae;--color-prettylights-syntax-meta-diff-range: #8250df;--color-prettylights-syntax-brackethighlighter-angle: #57606a;--color-prettylights-syntax-sublimelinter-gutter-mark: #8c959f;--color-prettylights-syntax-constant-other-reference-link: #0a3069;--color-fg-default: #24292f;--color-fg-muted: #57606a;--color-fg-subtle: #6e7781;--color-canvas-default: #ffffff;--color-canvas-subtle: #f6f8fa;--color-border-default: #d0d7de;--color-border-muted: hsl(210, 18%, 87%);--color-neutral-muted: rgba(175, 184, 193, .2);--color-accent-fg: #0969da;--color-accent-emphasis: #0969da;--color-attention-subtle: #fff8c5;--color-danger-fg: #cf222e}.wmde-markdown{-webkit-text-size-adjust:100%;font-family:-apple-system,Segoe UI,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";font-size:16px;line-height:1.5;word-wrap:break-word;color:var(--color-fg-default);background-color:var(--color-canvas-default)}.wmde-markdown details,.wmde-markdown figcaption,.wmde-markdown figure{display:block}.wmde-markdown summary{display:list-item}.wmde-markdown [hidden]{display:none!important}.wmde-markdown a{background-color:transparent;color:var(--color-accent-fg);text-decoration:none}.wmde-markdown a:active,.wmde-markdown a:hover{outline-width:0}.wmde-markdown abbr[title]{border-bottom:none;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.wmde-markdown b,.wmde-markdown strong{font-weight:600}.wmde-markdown dfn{font-style:italic}.wmde-markdown h1{margin:.67em 0;font-weight:600;padding-bottom:.3em;font-size:2em;border-bottom:1px solid var(--color-border-muted)}.wmde-markdown mark{background-color:var(--color-attention-subtle);color:var(--color-text-primary)}.wmde-markdown small{font-size:90%}.wmde-markdown sub,.wmde-markdown sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}.wmde-markdown sub{bottom:-.25em}.wmde-markdown sup{top:-.5em}.wmde-markdown img{display:inline-block;border-style:none;max-width:100%;box-sizing:content-box;background-color:var(--color-canvas-default)}.wmde-markdown code,.wmde-markdown kbd,.wmde-markdown pre,.wmde-markdown samp{font-family:monospace,monospace;font-size:1em}.wmde-markdown figure{margin:1em 40px}.wmde-markdown hr{box-sizing:content-box;overflow:hidden;background:transparent;border:0;border-bottom:1px solid var(--color-border-muted);height:.25em;padding:0;margin:24px 0;background-color:var(--color-border-default)}.wmde-markdown input{font:inherit;margin:0;overflow:visible;font-family:inherit;font-size:inherit;line-height:inherit}.wmde-markdown [type=button],.wmde-markdown [type=reset],.wmde-markdown [type=submit]{-webkit-appearance:button}.wmde-markdown [type=button]::-moz-focus-inner,.wmde-markdown [type=reset]::-moz-focus-inner,.wmde-markdown [type=submit]::-moz-focus-inner{border-style:none;padding:0}.wmde-markdown [type=button]:-moz-focusring,.wmde-markdown [type=reset]:-moz-focusring,.wmde-markdown [type=submit]:-moz-focusring{outline:1px dotted ButtonText}.wmde-markdown [type=checkbox],.wmde-markdown [type=radio]{box-sizing:border-box;padding:0}.wmde-markdown [type=number]::-webkit-inner-spin-button,.wmde-markdown [type=number]::-webkit-outer-spin-button{height:auto}.wmde-markdown [type=search]{-webkit-appearance:textfield;outline-offset:-2px}.wmde-markdown [type=search]::-webkit-search-cancel-button,.wmde-markdown [type=search]::-webkit-search-decoration{-webkit-appearance:none}.wmde-markdown ::-webkit-input-placeholder{color:inherit;opacity:.54}.wmde-markdown ::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}.wmde-markdown a:hover{text-decoration:underline}.wmde-markdown hr:before{display:table;content:""}.wmde-markdown hr:after{display:table;clear:both;content:""}.wmde-markdown table{border-spacing:0;border-collapse:collapse;display:block;width:-moz-max-content;width:max-content;max-width:100%}.wmde-markdown td,.wmde-markdown th{padding:0}.wmde-markdown details summary{cursor:pointer}.wmde-markdown details:not([open])>*:not(summary){display:none!important}.wmde-markdown kbd{display:inline-block;padding:3px 5px;font:11px ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;line-height:10px;color:var(--color-fg-default);vertical-align:middle;background-color:var(--color-canvas-subtle);border:solid 1px var(--color-neutral-muted);border-bottom-color:var(--color-neutral-muted);border-radius:6px;box-shadow:inset 0 -1px 0 var(--color-neutral-muted)}.wmde-markdown h1,.wmde-markdown h2,.wmde-markdown h3,.wmde-markdown h4,.wmde-markdown h5,.wmde-markdown h6{margin-top:24px;margin-bottom:16px;font-weight:600;line-height:1.25}.wmde-markdown h2{font-weight:600;padding-bottom:.3em;font-size:1.5em;border-bottom:1px solid var(--color-border-muted)}.wmde-markdown h3{font-weight:600;font-size:1.25em}.wmde-markdown h4{font-weight:600;font-size:1em}.wmde-markdown h5{font-weight:600;font-size:.875em}.wmde-markdown h6{font-weight:600;font-size:.85em;color:var(--color-fg-muted)}.wmde-markdown p{margin-top:0;margin-bottom:10px}.wmde-markdown blockquote{margin:0;padding:0 1em;color:var(--color-fg-muted);border-left:.25em solid var(--color-border-default)}.wmde-markdown ul,.wmde-markdown ol{margin-top:0;margin-bottom:0;padding-left:2em}.wmde-markdown ol ol,.wmde-markdown ul ol{list-style-type:lower-roman}.wmde-markdown ul ul ol,.wmde-markdown ul ol ol,.wmde-markdown ol ul ol,.wmde-markdown ol ol ol{list-style-type:lower-alpha}.wmde-markdown dd{margin-left:0}.wmde-markdown tt,.wmde-markdown code{font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;font-size:12px}.wmde-markdown pre{margin-top:0;margin-bottom:0;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;font-size:12px;word-wrap:normal}.wmde-markdown .octicon{display:inline-block;overflow:visible!important;vertical-align:text-bottom;fill:currentColor}.wmde-markdown ::-moz-placeholder{color:var(--color-fg-subtle);opacity:1}.wmde-markdown ::placeholder{color:var(--color-fg-subtle);opacity:1}.wmde-markdown input::-webkit-outer-spin-button,.wmde-markdown input::-webkit-inner-spin-button{margin:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}.wmde-markdown [data-catalyst]{display:block}.wmde-markdown:before{display:table;content:""}.wmde-markdown:after{display:table;clear:both;content:""}.wmde-markdown>*:first-child{margin-top:0!important}.wmde-markdown>*:last-child{margin-bottom:0!important}.wmde-markdown a:not([href]){color:inherit;text-decoration:none}.wmde-markdown .absent{color:var(--color-danger-fg)}.wmde-markdown a.anchor{float:left;padding-right:4px;margin-left:-20px;line-height:1}.wmde-markdown .anchor:focus{outline:none}.wmde-markdown p,.wmde-markdown blockquote,.wmde-markdown ul,.wmde-markdown ol,.wmde-markdown dl,.wmde-markdown table,.wmde-markdown pre,.wmde-markdown details{margin-top:0;margin-bottom:16px}.wmde-markdown blockquote>:first-child{margin-top:0}.wmde-markdown blockquote>:last-child{margin-bottom:0}.wmde-markdown sup>a:before{content:"["}.wmde-markdown sup>a:after{content:"]"}.wmde-markdown h1 .octicon-link,.wmde-markdown h2 .octicon-link,.wmde-markdown h3 .octicon-link,.wmde-markdown h4 .octicon-link,.wmde-markdown h5 .octicon-link,.wmde-markdown h6 .octicon-link{color:var(--color-fg-default);vertical-align:middle;visibility:hidden}.wmde-markdown h1:hover .anchor,.wmde-markdown h2:hover .anchor,.wmde-markdown h3:hover .anchor,.wmde-markdown h4:hover .anchor,.wmde-markdown h5:hover .anchor,.wmde-markdown h6:hover .anchor{text-decoration:none}.wmde-markdown h1:hover .anchor .octicon-link,.wmde-markdown h2:hover .anchor .octicon-link,.wmde-markdown h3:hover .anchor .octicon-link,.wmde-markdown h4:hover .anchor .octicon-link,.wmde-markdown h5:hover .anchor .octicon-link,.wmde-markdown h6:hover .anchor .octicon-link{visibility:visible}.wmde-markdown h1 tt,.wmde-markdown h1 code,.wmde-markdown h2 tt,.wmde-markdown h2 code,.wmde-markdown h3 tt,.wmde-markdown h3 code,.wmde-markdown h4 tt,.wmde-markdown h4 code,.wmde-markdown h5 tt,.wmde-markdown h5 code,.wmde-markdown h6 tt,.wmde-markdown h6 code{padding:0 .2em;font-size:inherit}.wmde-markdown ul.no-list,.wmde-markdown ol.no-list{padding:0;list-style-type:none}.wmde-markdown ol[type="1"]{list-style-type:decimal}.wmde-markdown ol[type=a]{list-style-type:lower-alpha}.wmde-markdown ol[type=i]{list-style-type:lower-roman}.wmde-markdown div>ol:not([type]){list-style-type:decimal}.wmde-markdown ul ul,.wmde-markdown ul ol,.wmde-markdown ol ol,.wmde-markdown ol ul{margin-top:0;margin-bottom:0}.wmde-markdown li>p{margin-top:16px}.wmde-markdown li+li{margin-top:.25em}.wmde-markdown dl{padding:0}.wmde-markdown dl dt{padding:0;margin-top:16px;font-size:1em;font-style:italic;font-weight:600}.wmde-markdown dl dd{padding:0 16px;margin-bottom:16px}.wmde-markdown table th{font-weight:600}.wmde-markdown table th,.wmde-markdown table td{padding:6px 13px;border:1px solid var(--color-border-default)}.wmde-markdown table tr{background-color:var(--color-canvas-default);border-top:1px solid var(--color-border-muted)}.wmde-markdown table tr:nth-child(2n){background-color:var(--color-canvas-subtle)}.wmde-markdown table img{background-color:transparent}.wmde-markdown img[align=right]{padding-left:20px}.wmde-markdown img[align=left]{padding-right:20px}.wmde-markdown .emoji{max-width:none;vertical-align:text-top;background-color:transparent}.wmde-markdown span.frame{display:block;overflow:hidden}.wmde-markdown span.frame>span{display:block;float:left;width:auto;padding:7px;margin:13px 0 0;overflow:hidden;border:1px solid var(--color-border-default)}.wmde-markdown span.frame span img{display:block;float:left}.wmde-markdown span.frame span span{display:block;padding:5px 0 0;clear:both;color:var(--color-fg-default)}.wmde-markdown span.align-center{display:block;overflow:hidden;clear:both}.wmde-markdown span.align-center>span{display:block;margin:13px auto 0;overflow:hidden;text-align:center}.wmde-markdown span.align-center span img{margin:0 auto;text-align:center}.wmde-markdown span.align-right{display:block;overflow:hidden;clear:both}.wmde-markdown span.align-right>span{display:block;margin:13px 0 0;overflow:hidden;text-align:right}.wmde-markdown span.align-right span img{margin:0;text-align:right}.wmde-markdown span.float-left{display:block;float:left;margin-right:13px;overflow:hidden}.wmde-markdown span.float-left span{margin:13px 0 0}.wmde-markdown span.float-right{display:block;float:right;margin-left:13px;overflow:hidden}.wmde-markdown span.float-right>span{display:block;margin:13px auto 0;overflow:hidden;text-align:right}.wmde-markdown code,.wmde-markdown tt{padding:.2em .4em;margin:0;font-size:85%;background-color:var(--color-neutral-muted);border-radius:6px}.wmde-markdown code br,.wmde-markdown tt br{display:none}.wmde-markdown del code{text-decoration:inherit}.wmde-markdown pre code{font-size:100%}.wmde-markdown pre>code{padding:0;margin:0;word-break:normal;white-space:pre;background:transparent;border:0}.wmde-markdown pre{font-size:85%;line-height:1.45;background-color:var(--color-canvas-subtle);border-radius:6px}.wmde-markdown pre code,.wmde-markdown pre tt{display:inline;max-width:auto;padding:0;margin:0;overflow:visible;line-height:inherit;word-wrap:normal;background-color:transparent;border:0}.wmde-markdown pre>code{padding:16px;overflow:auto;display:block}.wmde-markdown .csv-data td,.wmde-markdown .csv-data th{padding:5px;overflow:hidden;font-size:12px;line-height:1;text-align:left;white-space:nowrap}.wmde-markdown .csv-data .blob-num{padding:10px 8px 9px;text-align:right;background:var(--color-canvas-default);border:0}.wmde-markdown .csv-data tr{border-top:0}.wmde-markdown .csv-data th{font-weight:600;background:var(--color-canvas-subtle);border-top:0}.wmde-markdown .footnotes{font-size:12px;color:var(--color-fg-muted);border-top:1px solid var(--color-border-default)}.wmde-markdown .footnotes ol{padding-left:16px}.wmde-markdown .footnotes li{position:relative}.wmde-markdown .footnotes li:target:before{position:absolute;top:-8px;right:-8px;bottom:-8px;left:-24px;pointer-events:none;content:"";border:2px solid var(--color-accent-emphasis);border-radius:6px}.wmde-markdown .footnotes li:target{color:var(--color-fg-default)}.wmde-markdown .footnotes .data-footnote-backref g-emoji{font-family:monospace}.wmde-markdown .task-list-item{list-style-type:none}.wmde-markdown .task-list-item label{font-weight:400}.wmde-markdown .task-list-item.enabled label{cursor:pointer}.wmde-markdown .task-list-item+.wmde-markdown .task-list-item{margin-top:3px}.wmde-markdown .task-list-item .handle{display:none}.wmde-markdown .task-list-item-checkbox,.wmde-markdown .contains-task-list input[type=checkbox]{margin:0 .2em .25em -1.6em;vertical-align:middle}.wmde-markdown .contains-task-list:dir(rtl) .task-list-item-checkbox,.wmde-markdown .contains-task-list:dir(rtl) input[type=checkbox]{margin:0 -1.6em .25em .2em}.wmde-markdown ::-webkit-calendar-picker-indicator{filter:invert(50%)}.wmde-markdown pre{position:relative}.wmde-markdown pre .copied{visibility:hidden;display:flex;position:absolute;cursor:pointer;color:var(--color-fg-defaul);top:6px;right:6px;border-radius:5px;background:var(--color-border-default);padding:6px;font-size:12px;transition:all .3s}.wmde-markdown pre .copied .octicon-copy{display:block}.wmde-markdown pre .copied .octicon-check{display:none}.wmde-markdown pre:hover .copied{visibility:visible}.wmde-markdown pre:hover .copied:hover{background:var(--color-prettylights-syntax-entity-tag);color:var(--color-canvas-default)}.wmde-markdown pre:hover .copied:active,.wmde-markdown pre .copied.active{background:#2e9b33;color:var(--color-canvas-default)}.wmde-markdown pre .active .octicon-copy{display:none}.wmde-markdown pre .active .octicon-check{display:block}.highlight-line{background-color:var(--color-neutral-muted)}.code-line.line-number:before{display:inline-block;width:1rem;text-align:right;margin-right:16px;color:var(--color-fg-subtle);content:attr(line);white-space:nowrap}.token.comment,.token.prolog,.token.doctype,.token.cdata{color:var(--color-prettylights-syntax-comment)}.token.namespace{opacity:.7}.token.property,.token.tag,.token.selector,.token.constant,.token.symbol,.token.deleted{color:var(--color-prettylights-syntax-entity-tag)}.token.maybe-class-name{color:var(--color-prettylights-syntax-variable)}.token.property-access,.token.operator,.token.boolean,.token.number,.token.selector .token.class,.token.attr-name,.token.string,.token.char,.token.builtin{color:var(--color-prettylights-syntax-constant)}.token.deleted{color:var(--color-prettylights-syntax-markup-deleted-text)}.code-line .token.deleted{background-color:var(--color-prettylights-syntax-markup-deleted-bg)}.token.inserted{color:var(--color-prettylights-syntax-markup-inserted-text)}.code-line .token.inserted{background-color:var(--color-prettylights-syntax-markup-inserted-bg)}.token.variable{color:var(--color-prettylights-syntax-constant)}.token.entity,.token.url,.language-css .token.string,.style .token.string,.token.color,.token.atrule,.token.attr-value,.token.function,.token.class-name{color:var(--color-prettylights-syntax-string)}.token.rule,.token.regex,.token.important,.token.keyword{color:var(--color-prettylights-syntax-keyword)}.token.coord{color:var(--color-prettylights-syntax-meta-diff-range)}.token.important,.token.bold{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.mention,.command-suggestion{background-color:var(--vscode-badge-background, #bfe2b6);color:var(--vscode-badge-foreground, --vscode-foreground, #000);border-radius:3px;font-size:.9em;padding:.05em .15em;transition:background-color .2s ease-in-out}.tiptap p.is-editor-empty:first-child:before{color:#646464;content:attr(data-placeholder);float:left;height:0;pointer-events:none}.gap-cursor{border-top:1px solid white}.tiptap img{height:auto;max-width:96%;border:1px solid transparent}.tiptap img.ProseMirror-selectednode{border:1px solid var(--vscode-badge-background, #bfe2b6)}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }.pointer-events-none{pointer-events:none}.visible{visibility:visible}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-y-0{top:0;bottom:0}.-bottom-1{bottom:-.25rem}.bottom-1{bottom:.25rem}.right-0{right:0}.right-1{right:.25rem}.right-2{right:.5rem}.top-0{top:0}.col-span-full{grid-column:1 / -1}.float-right{float:right}.m-0{margin:0}.m-2{margin:.5rem}.m-4{margin:1rem}.m-auto{margin:auto}.mx-1{margin-left:.25rem;margin-right:.25rem}.mx-16{margin-left:4rem;margin-right:4rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-auto{margin-left:auto;margin-right:auto}.my-0{margin-top:0;margin-bottom:0}.my-1{margin-top:.25rem;margin-bottom:.25rem}.my-2{margin-top:.5rem;margin-bottom:.5rem}.my-3{margin-top:.75rem;margin-bottom:.75rem}.my-4{margin-top:1rem;margin-bottom:1rem}.-mt-1{margin-top:-.25rem}.mb-0{margin-bottom:0}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-1{margin-left:.25rem}.ml-1\.5{margin-left:.375rem}.ml-2{margin-left:.5rem}.ml-4{margin-left:1rem}.ml-auto{margin-left:auto}.mr-2{margin-right:.5rem}.mr-auto{margin-right:auto}.mt-0{margin-top:0}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-12{margin-top:3rem}.mt-16{margin-top:4rem}.mt-2{margin-top:.5rem}.mt-4{margin-top:1rem}.mt-8{margin-top:2rem}.mt-auto{margin-top:auto}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.table{display:table}.grid{display:grid}.contents{display:contents}.hidden{display:none}.h-2{height:.5rem}.h-4{height:1rem}.h-5{height:1.25rem}.max-h-96{max-height:24rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-full{width:100%}.max-w-3xl{max-width:48rem}.max-w-96{max-width:24rem}.max-w-full{max-width:100%}.flex-none{flex:none}.flex-shrink{flex-shrink:1}.flex-shrink-0{flex-shrink:0}.flex-grow{flex-grow:1}.border-collapse{border-collapse:collapse}.border-spacing-0{--tw-border-spacing-x: 0px;--tw-border-spacing-y: 0px;border-spacing:var(--tw-border-spacing-x) var(--tw-border-spacing-y)}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-default{cursor:default}.cursor-help{cursor:help}.cursor-pointer{cursor:pointer}.cursor-text{cursor:text}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize{resize:both}.grid-flow-col{grid-auto-flow:column}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-x-auto{overflow-x:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-scroll{overflow-y:scroll}.overflow-ellipsis{text-overflow:ellipsis}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.break-words{overflow-wrap:break-word}.rounded-full{border-radius:9999px}.rounded-md{border-radius:.375rem}.border{border-width:1px}.border-2{border-width:2px}.border-solid{border-style:solid}.p-0{padding:0}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-4{padding:1rem}.p-8{padding:2rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-0{padding-top:0;padding-bottom:0}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.pb-4{padding-bottom:1rem}.pb-6{padding-bottom:1.5rem}.pb-8{padding-bottom:2rem}.pl-10{padding-left:2.5rem}.pl-3{padding-left:.75rem}.pl-4{padding-left:1rem}.pr-2{padding-right:.5rem}.pr-4{padding-right:1rem}.pt-4{padding-top:1rem}.pt-8{padding-top:2rem}.text-center{text-align:center}.align-middle{vertical-align:middle}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.leading-normal{line-height:1.5}.leading-relaxed{line-height:1.625}.underline{text-decoration-line:underline}.opacity-0{opacity:0}.opacity-100{opacity:1}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-100{transition-duration:.1s}.ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}:root{--secondary-dark: rgb(37, 37, 38);--vsc-background: rgb(30, 30, 30);--button-color: rgb(113, 28, 59);--button-color-hover: rgba(113, 28, 59, .667);--def-border-radius: 5px;--vscode-editor-background: rgb(30, 30, 30);--vscode-editor-foreground: rgb(197, 200, 198);--vscode-textBlockQuote-background: rgba(255, 255, 255, 1)}html,body,#root{height:100%;background-color:var(--vscode-editor-background);font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif}body{color:var(--vscode-editor-foreground);padding:0;margin:0;height:100%}a:focus{outline:none}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.fade-in-span{animation:fadeIn .3s ease-in-out}.hover\:underline:hover{text-decoration-line:underline} diff --git a/extensions/intellij/src/main/resources/webview/assets/index.esm.js b/extensions/intellij/src/main/resources/webview/assets/index.esm.js deleted file mode 100644 index 097852f6f..000000000 --- a/extensions/intellij/src/main/resources/webview/assets/index.esm.js +++ /dev/null @@ -1,8 +0,0 @@ -import{c as ne}from"./index.js";var V={exports:{}};(function(s,r){(function(t,i){s.exports=i()})(typeof self<"u"?self:ne,function(){return function(e){var t={};function i(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,i),o.l=!0,o.exports}return i.m=e,i.c=t,i.d=function(n,o,u){i.o(n,o)||Object.defineProperty(n,o,{configurable:!1,enumerable:!0,get:u})},i.n=function(n){var o=n&&n.__esModule?function(){return n.default}:function(){return n};return i.d(o,"a",o),o},i.o=function(n,o){return Object.prototype.hasOwnProperty.call(n,o)},i.p="",i(i.s=3)}([function(e,t,i){function n(p,w){if(!(p instanceof w))throw new TypeError("Cannot call a class as a function")}var o=i(5),u=i(1),l=u.toHex,c=u.ceilHeapSize,h=i(6),y=function(p){for(p+=9;p%64>0;p+=1);return p},d=function(p,w){var g=new Uint8Array(p.buffer),m=w%4,F=w-m;switch(m){case 0:g[F+3]=0;case 1:g[F+2]=0;case 2:g[F+1]=0;case 3:g[F+0]=0}for(var _=(w>>2)+1;_>2]|=128<<24-(w%4<<3),p[((w>>2)+2&-16)+14]=g/(1<<29)|0,p[((w>>2)+2&-16)+15]=g<<3},a=function(p,w){var g=new Int32Array(p,w+320,5),m=new Int32Array(5),F=new DataView(m.buffer);return F.setInt32(0,g[0],!1),F.setInt32(4,g[1],!1),F.setInt32(8,g[2],!1),F.setInt32(12,g[3],!1),F.setInt32(16,g[4],!1),m},v=function(){function p(w){if(n(this,p),w=w||64*1024,w%64>0)throw new Error("Chunk size must be a multiple of 128 bit");this._offset=0,this._maxChunkLen=w,this._padMaxChunkLen=y(w),this._heap=new ArrayBuffer(c(this._padMaxChunkLen+320+20)),this._h32=new Int32Array(this._heap),this._h8=new Int8Array(this._heap),this._core=new o({Int32Array},{},this._heap)}return p.prototype._initState=function(g,m){this._offset=0;var F=new Int32Array(g,m+320,5);F[0]=1732584193,F[1]=-271733879,F[2]=-1732584194,F[3]=271733878,F[4]=-1009589776},p.prototype._padChunk=function(g,m){var F=y(g),_=new Int32Array(this._heap,0,F>>2);return d(_,g),f(_,g,m),F},p.prototype._write=function(g,m,F,_){h(g,this._h8,this._h32,m,F,_||0)},p.prototype._coreCall=function(g,m,F,_,S){var C=F;this._write(g,m,F),S&&(C=this._padChunk(F,_)),this._core.hash(C,this._padMaxChunkLen)},p.prototype.rawDigest=function(g){var m=g.byteLength||g.length||g.size||0;this._initState(this._heap,this._padMaxChunkLen);var F=0,_=this._maxChunkLen;for(F=0;m>F+_;F+=_)this._coreCall(g,F,_,m,!1);return this._coreCall(g,F,m-F,m,!0),a(this._heap,this._padMaxChunkLen)},p.prototype.digest=function(g){return l(this.rawDigest(g).buffer)},p.prototype.digestFromString=function(g){return this.digest(g)},p.prototype.digestFromBuffer=function(g){return this.digest(g)},p.prototype.digestFromArrayBuffer=function(g){return this.digest(g)},p.prototype.resetState=function(){return this._initState(this._heap,this._padMaxChunkLen),this},p.prototype.append=function(g){var m=0,F=g.byteLength||g.length||g.size||0,_=this._offset%this._maxChunkLen,S=void 0;for(this._offset+=F;m"u")&&!(!y&&!h)){var f=c.data.blockSize||4*1024*1024,a=new n(f);a.resetState();var v=function(p,w){p?self.postMessage({id:d,error:p.name}):self.postMessage({id:d,hash:w})};h&&o(a,h,v),y&&u(a,0,f,y,v)}}},function(){l=!1}}},function(e,t,i){var n=i(4),o=i(0),u=i(7),l=i(2),c=i(1),h=c.isDedicatedWorkerScope,y=typeof self<"u"&&h(self);o.disableWorkerBehaviour=y?l():function(){},o.createWorker=function(){var d=n(2),f=d.terminate;return d.terminate=function(){URL.revokeObjectURL(d.objectURL),f.call(d)},d},o.createHash=u,e.exports=o},function(e,t,i){function n(d){var f={};function a(p){if(f[p])return f[p].exports;var w=f[p]={i:p,l:!1,exports:{}};return d[p].call(w.exports,w,w.exports,a),w.l=!0,w.exports}a.m=d,a.c=f,a.i=function(p){return p},a.d=function(p,w,g){a.o(p,w)||Object.defineProperty(p,w,{configurable:!1,enumerable:!0,get:g})},a.r=function(p){Object.defineProperty(p,"__esModule",{value:!0})},a.n=function(p){var w=p&&p.__esModule?function(){return p.default}:function(){return p};return a.d(w,"a",w),w},a.o=function(p,w){return Object.prototype.hasOwnProperty.call(p,w)},a.p="/",a.oe=function(p){throw console.error(p),p};var v=a(a.s=ENTRY_MODULE);return v.default||v}var o="[\\.|\\-|\\+|\\w|/|@]+",u="\\((/\\*.*?\\*/)?s?.*?("+o+").*?\\)";function l(d){return(d+"").replace(/[.?*+^$[\]\\(){}|-]/g,"\\$&")}function c(d,f,a){var v={};v[a]=[];var p=f.toString(),w=p.match(/^function\s?\(\w+,\s*\w+,\s*(\w+)\)/);if(!w)return v;for(var g=w[1],m=new RegExp("(\\\\n|\\W)"+l(g)+u,"g"),F;F=m.exec(p);)F[3]!=="dll-reference"&&v[a].push(F[3]);for(m=new RegExp("\\("+l(g)+'\\("(dll-reference\\s('+o+'))"\\)\\)'+u,"g");F=m.exec(p);)d[F[2]]||(v[a].push(F[1]),d[F[2]]=i(F[1]).m),v[F[2]]=v[F[2]]||[],v[F[2]].push(F[4]);return v}function h(d){var f=Object.keys(d);return f.reduce(function(a,v){return a||d[v].length>0},!1)}function y(d,f){for(var a={main:[f]},v={main:[]},p={main:{}};h(a);)for(var w=Object.keys(a),g=0;g>2]|0,p=l[y+324>>2]|0,g=l[y+328>>2]|0,F=l[y+332>>2]|0,S=l[y+336>>2]|0,d=0;(d|0)<(h|0);d=d+64|0){for(v=a,w=p,m=g,_=F,C=S,f=0;(f|0)<64;f=f+4|0)I=l[d+f>>2]|0,O=((a<<5|a>>>27)+(p&g|~p&F)|0)+((I+S|0)+1518500249|0)|0,S=F,F=g,g=p<<30|p>>>2,p=a,a=O,l[h+f>>2]=I;for(f=h+64|0;(f|0)<(h+80|0);f=f+4|0)I=(l[f-12>>2]^l[f-32>>2]^l[f-56>>2]^l[f-64>>2])<<1|(l[f-12>>2]^l[f-32>>2]^l[f-56>>2]^l[f-64>>2])>>>31,O=((a<<5|a>>>27)+(p&g|~p&F)|0)+((I+S|0)+1518500249|0)|0,S=F,F=g,g=p<<30|p>>>2,p=a,a=O,l[f>>2]=I;for(f=h+80|0;(f|0)<(h+160|0);f=f+4|0)I=(l[f-12>>2]^l[f-32>>2]^l[f-56>>2]^l[f-64>>2])<<1|(l[f-12>>2]^l[f-32>>2]^l[f-56>>2]^l[f-64>>2])>>>31,O=((a<<5|a>>>27)+(p^g^F)|0)+((I+S|0)+1859775393|0)|0,S=F,F=g,g=p<<30|p>>>2,p=a,a=O,l[f>>2]=I;for(f=h+160|0;(f|0)<(h+240|0);f=f+4|0)I=(l[f-12>>2]^l[f-32>>2]^l[f-56>>2]^l[f-64>>2])<<1|(l[f-12>>2]^l[f-32>>2]^l[f-56>>2]^l[f-64>>2])>>>31,O=((a<<5|a>>>27)+(p&g|p&F|g&F)|0)+((I+S|0)-1894007588|0)|0,S=F,F=g,g=p<<30|p>>>2,p=a,a=O,l[f>>2]=I;for(f=h+240|0;(f|0)<(h+320|0);f=f+4|0)I=(l[f-12>>2]^l[f-32>>2]^l[f-56>>2]^l[f-64>>2])<<1|(l[f-12>>2]^l[f-32>>2]^l[f-56>>2]^l[f-64>>2])>>>31,O=((a<<5|a>>>27)+(p^g^F)|0)+((I+S|0)-899497514|0)|0,S=F,F=g,g=p<<30|p>>>2,p=a,a=O,l[f>>2]=I;a=a+v|0,p=p+w|0,g=g+m|0,F=F+_|0,S=S+C|0}l[y+320>>2]=a,l[y+324>>2]=p,l[y+328>>2]=g,l[y+332>>2]=F,l[y+336>>2]=S}return{hash:c}}},function(e,t){var i=this,n=void 0;typeof self<"u"&&typeof self.FileReaderSync<"u"&&(n=new self.FileReaderSync);var o=function(c,h,y,d,f,a){var v=void 0,p=a%4,w=(f+p)%4,g=f-w;switch(p){case 0:h[a]=c.charCodeAt(d+3);case 1:h[a+1-(p<<1)|0]=c.charCodeAt(d+2);case 2:h[a+2-(p<<1)|0]=c.charCodeAt(d+1);case 3:h[a+3-(p<<1)|0]=c.charCodeAt(d)}if(!(f>2]=c.charCodeAt(d+v)<<24|c.charCodeAt(d+v+1)<<16|c.charCodeAt(d+v+2)<<8|c.charCodeAt(d+v+3);switch(w){case 3:h[a+g+1|0]=c.charCodeAt(d+g+2);case 2:h[a+g+2|0]=c.charCodeAt(d+g+1);case 1:h[a+g+3|0]=c.charCodeAt(d+g)}}},u=function(c,h,y,d,f,a){var v=void 0,p=a%4,w=(f+p)%4,g=f-w;switch(p){case 0:h[a]=c[d+3];case 1:h[a+1-(p<<1)|0]=c[d+2];case 2:h[a+2-(p<<1)|0]=c[d+1];case 3:h[a+3-(p<<1)|0]=c[d]}if(!(f>2|0]=c[d+v]<<24|c[d+v+1]<<16|c[d+v+2]<<8|c[d+v+3];switch(w){case 3:h[a+g+1|0]=c[d+g+2];case 2:h[a+g+2|0]=c[d+g+1];case 1:h[a+g+3|0]=c[d+g]}}},l=function(c,h,y,d,f,a){var v=void 0,p=a%4,w=(f+p)%4,g=f-w,m=new Uint8Array(n.readAsArrayBuffer(c.slice(d,d+f)));switch(p){case 0:h[a]=m[3];case 1:h[a+1-(p<<1)|0]=m[2];case 2:h[a+2-(p<<1)|0]=m[1];case 3:h[a+3-(p<<1)|0]=m[0]}if(!(f>2|0]=m[v]<<24|m[v+1]<<16|m[v+2]<<8|m[v+3];switch(w){case 3:h[a+g+1|0]=m[g+2];case 2:h[a+g+2|0]=m[g+1];case 1:h[a+g+3|0]=m[g]}}};e.exports=function(c,h,y,d,f,a){if(typeof c=="string")return o(c,h,y,d,f,a);if(c instanceof Array||i&&i.Buffer&&i.Buffer.isBuffer(c))return u(c,h,y,d,f,a);if(c instanceof ArrayBuffer)return u(new Uint8Array(c),h,y,d,f,a);if(c.buffer instanceof ArrayBuffer)return u(new Uint8Array(c.buffer,c.byteOffset,c.byteLength),h,y,d,f,a);if(c instanceof Blob)return l(c,h,y,d,f,a);throw new Error("Unsupported data type.")}},function(e,t,i){var n=function(){function y(d,f){for(var a=0;a0&&n[n.length-1])&&(c[0]===6||c[0]===2)){e=0;continue}if(c[0]===3&&(!n||c[1]>n[0]&&c[1]0?[4,new Promise(function(f){return setTimeout(f,n)})]:[3,3]:[3,7];case 2:d.sent(),d.label=3;case 3:return d.trys.push([3,5,,6]),[4,s()];case 4:return h=d.sent(),[2,h];case 5:if(y=d.sent(),l=y,!u(y))throw y;return[3,6];case 6:return c++,[3,1];case 7:throw l}})})}function le(){return new Date().getTime()}function $(){return new Date().toISOString()}function Y(s,r){var e=setTimeout(s,r);return e!=null&&e.unref&&(e==null||e.unref()),e}var L=String.fromCharCode,W="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",M={};function ce(s,r){if(!M[s]){M[s]={};for(var e=0;e>1}else{for(u=1,o=0;o>1}y--,y==0&&(y=Math.pow(2,f),f++),delete i[h]}else for(u=t[h],o=0;o>1;y--,y==0&&(y=Math.pow(2,f),f++),t[c]=d++,h=String(l)}if(h!==""){if(Object.prototype.hasOwnProperty.call(i,h)){if(h.charCodeAt(0)<256){for(o=0;o>1}else{for(u=1,o=0;o>1}y--,y==0&&(y=Math.pow(2,f),f++),delete i[h]}else for(u=t[h],o=0;o>1;y--,y==0&&(y=Math.pow(2,f),f++)}for(u=2,o=0;o>1;for(;;)if(a=a<<1,v==r-1){n.push(e(a));break}else v++;return n.join("")},decompress:function(s){return s==null?"":s==""?null:j._decompress(s.length,32768,function(r){return s.charCodeAt(r)})},_decompress:function(s,r,e){var t=[],i=[],n={val:e(0),position:r,index:1},o=4,u=4,l=3,c="",h,y,d,f,a,v,p;for(h=0;h<3;h+=1)t[h]=h;for(d=0,a=Math.pow(2,2),v=1;v!=a;)f=n.val&n.position,n.position>>=1,n.position==0&&(n.position=r,n.val=e(n.index++)),d|=(f>0?1:0)*v,v<<=1;switch(d){case 0:for(d=0,a=Math.pow(2,8),v=1;v!=a;)f=n.val&n.position,n.position>>=1,n.position==0&&(n.position=r,n.val=e(n.index++)),d|=(f>0?1:0)*v,v<<=1;p=L(d);break;case 1:for(d=0,a=Math.pow(2,16),v=1;v!=a;)f=n.val&n.position,n.position>>=1,n.position==0&&(n.position=r,n.val=e(n.index++)),d|=(f>0?1:0)*v,v<<=1;p=L(d);break;case 2:return""}for(t[3]=p,y=p,i.push(p);;){if(n.index>s)return"";for(d=0,a=Math.pow(2,l),v=1;v!=a;)f=n.val&n.position,n.position>>=1,n.position==0&&(n.position=r,n.val=e(n.index++)),d|=(f>0?1:0)*v,v<<=1;switch(p=d){case 0:for(d=0,a=Math.pow(2,8),v=1;v!=a;)f=n.val&n.position,n.position>>=1,n.position==0&&(n.position=r,n.val=e(n.index++)),d|=(f>0?1:0)*v,v<<=1;t[u++]=L(d),p=u-1,o--;break;case 1:for(d=0,a=Math.pow(2,16),v=1;v!=a;)f=n.val&n.position,n.position>>=1,n.position==0&&(n.position=r,n.val=e(n.index++)),d|=(f>0?1:0)*v,v<<=1;t[u++]=L(d),p=u-1,o--;break;case 2:return i.join("")}if(o==0&&(o=Math.pow(2,l),l++),t[p])c=t[p];else if(p===u)c=y+y.charAt(0);else return null;i.push(c),t[u++]=y+c.charAt(0),o--,y=c,o==0&&(o=Math.pow(2,l),l++)}}},fe=function(){function s(){this.events={},this.events={}}return s.prototype.on=function(r,e){var t=this;return this.events[r]||(this.events[r]=[]),this.events[r].push(e),function(){t.events[r]=t.events[r].filter(function(i){return i!==e})}},s.prototype.emit=function(r,e){for(var t=0,i=this.events[r]||[];t0xffffffffffff||e>4095||t>1073741823||i>4294967295)throw new RangeError("invalid field value");var n=new Uint8Array(16);return n[0]=r/Math.pow(2,40),n[1]=r/Math.pow(2,32),n[2]=r/Math.pow(2,24),n[3]=r/Math.pow(2,16),n[4]=r/Math.pow(2,8),n[5]=r,n[6]=112|e>>>8,n[7]=e,n[8]=128|t>>>24,n[9]=t>>>16,n[10]=t>>>8,n[11]=t,n[12]=i>>>24,n[13]=i>>>16,n[14]=i>>>8,n[15]=i,new s(n)},s.parse=function(r){var e,t,i,n,o=void 0;switch(r.length){case 32:o=(e=/^[0-9a-f]{32}$/i.exec(r))===null||e===void 0?void 0:e[0];break;case 36:o=(t=/^([0-9a-f]{8})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{12})$/i.exec(r))===null||t===void 0?void 0:t.slice(1,6).join("");break;case 38:o=(i=/^\{([0-9a-f]{8})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{12})\}$/i.exec(r))===null||i===void 0?void 0:i.slice(1,6).join("");break;case 45:o=(n=/^urn:uuid:([0-9a-f]{8})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{12})$/i.exec(r))===null||n===void 0?void 0:n.slice(1,6).join("");break}if(o){for(var u=new Uint8Array(16),l=0;l<16;l+=4){var c=parseInt(o.substring(2*l,2*l+8),16);u[l+0]=c>>>24,u[l+1]=c>>>16,u[l+2]=c>>>8,u[l+3]=c}return new s(u)}else throw new SyntaxError("could not parse UUID string")},s.prototype.toString=function(){for(var r="",e=0;e>>4),r+=R.charAt(this.bytes[e]&15),(e===3||e===5||e===7||e===9)&&(r+="-");return r},s.prototype.toHex=function(){for(var r="",e=0;e>>4),r+=R.charAt(this.bytes[e]&15);return r},s.prototype.toJSON=function(){return this.toString()},s.prototype.getVariant=function(){var r=this.bytes[8]>>>4;if(r<0)throw new Error("unreachable");if(r<=7)return this.bytes.every(function(e){return e===0})?"NIL":"VAR_0";if(r<=11)return"VAR_10";if(r<=13)return"VAR_110";if(r<=15)return this.bytes.every(function(e){return e===255})?"MAX":"VAR_RESERVED";throw new Error("unreachable")},s.prototype.getVersion=function(){return this.getVariant()==="VAR_10"?this.bytes[6]>>>4:void 0},s.prototype.clone=function(){return new s(this.bytes.slice(0))},s.prototype.equals=function(r){return this.compareTo(r)===0},s.prototype.compareTo=function(r){for(var e=0;e<16;e++){var t=this.bytes[e]-r.bytes[e];if(t!==0)return Math.sign(t)}return 0},s}(),he=function(){function s(r){this.timestamp=0,this.counter=0,this.random=r??de()}return s.prototype.generate=function(){return this.generateOrResetCore(Date.now(),1e4)},s.prototype.generateOrAbort=function(){return this.generateOrAbortCore(Date.now(),1e4)},s.prototype.generateOrResetCore=function(r,e){var t=this.generateOrAbortCore(r,e);return t===void 0&&(this.timestamp=0,t=this.generateOrAbortCore(r,e)),t},s.prototype.generateOrAbortCore=function(r,e){var t=4398046511103;if(!Number.isInteger(r)||r<1||r>0xffffffffffff)throw new RangeError("`unixTsMs` must be a 48-bit positive integer");if(e<0||e>0xffffffffffff)throw new RangeError("`rollbackAllowance` out of reasonable range");if(r>this.timestamp)this.timestamp=r,this.resetCounter();else if(r+e>=this.timestamp)this.counter++,this.counter>t&&(this.timestamp++,this.resetCounter());else return;return K.fromFieldsV7(this.timestamp,Math.trunc(this.counter/Math.pow(2,30)),this.counter&Math.pow(2,30)-1,this.random.nextUint32())},s.prototype.resetCounter=function(){this.counter=this.random.nextUint32()*1024+(this.random.nextUint32()&1023)},s.prototype.generateV4=function(){var r=new Uint8Array(Uint32Array.of(this.random.nextUint32(),this.random.nextUint32(),this.random.nextUint32(),this.random.nextUint32()).buffer);return r[6]=64|r[6]>>>4,r[8]=128|r[8]>>>2,K.ofInner(r)},s}(),de=function(){return{nextUint32:function(){return Math.trunc(Math.random()*65536)*65536+Math.trunc(Math.random()*65536)}}},z,D=function(){return pe().toString()},pe=function(){return(z||(z=new he)).generate()},ve=function(s){k(r,s);function r(e){var t=s.call(this,"HTTP error while fetching PostHog: "+e.status)||this;return t.response=e,t.name="PostHogFetchHttpError",t}return r}(Error),ye=function(s){k(r,s);function r(e){var t=s.call(this,"Network error while fetching PostHog",e instanceof Error?{cause:e}:{})||this;return t.error=e,t.name="PostHogFetchNetworkError",t}return r}(Error);function B(s){return typeof s=="object"&&(s.name==="PostHogFetchHttpError"||s.name==="PostHogFetchNetworkError")}var X=function(){function s(r,e){var t,i,n,o,u;this.debugMode=!1,this.disableGeoip=!0,this.pendingPromises={},this._events=new fe,ae(r,"You must pass your PostHog project's api key."),this.apiKey=r,this.host=se((e==null?void 0:e.host)||"https://app.posthog.com"),this.flushAt=e!=null&&e.flushAt?Math.max(e==null?void 0:e.flushAt,1):20,this.flushInterval=(t=e==null?void 0:e.flushInterval)!==null&&t!==void 0?t:1e4,this.captureMode=(e==null?void 0:e.captureMode)||"form",this._optoutOverride=(e==null?void 0:e.enable)===!1,this._retryOptions={retryCount:(i=e==null?void 0:e.fetchRetryCount)!==null&&i!==void 0?i:3,retryDelay:(n=e==null?void 0:e.fetchRetryDelay)!==null&&n!==void 0?n:3e3,retryCheck:B},this.requestTimeout=(o=e==null?void 0:e.requestTimeout)!==null&&o!==void 0?o:1e4,this.disableGeoip=(u=e==null?void 0:e.disableGeoip)!==null&&u!==void 0?u:!0}return s.prototype.getCommonEventProperties=function(){return{$lib:this.getLibraryId(),$lib_version:this.getLibraryVersion()}},Object.defineProperty(s.prototype,"optedOut",{get:function(){var r,e;return(e=(r=this.getPersistedProperty(P.OptedOut))!==null&&r!==void 0?r:this._optoutOverride)!==null&&e!==void 0?e:!1},enumerable:!1,configurable:!0}),s.prototype.optIn=function(){this.setPersistedProperty(P.OptedOut,!1)},s.prototype.optOut=function(){this.setPersistedProperty(P.OptedOut,!0)},s.prototype.on=function(r,e){return this._events.on(r,e)},s.prototype.debug=function(r){var e;r===void 0&&(r=!0),(e=this.removeDebugCallback)===null||e===void 0||e.call(this),this.debugMode=r,r&&(this.removeDebugCallback=this.on("*",function(t,i){return console.log("PostHog Debug",t,i)}))},s.prototype.buildPayload=function(r){return{distinct_id:r.distinct_id,event:r.event,properties:b(b({},r.properties||{}),this.getCommonEventProperties())}},s.prototype.addPendingPromise=function(r){var e=this,t=D();this.pendingPromises[t]=r,r.finally(function(){delete e.pendingPromises[t]})},s.prototype.identifyStateless=function(r,e,t){var i=b({},this.buildPayload({distinct_id:r,event:"$identify",properties:e}));return this.enqueue("identify",i,t),this},s.prototype.captureStateless=function(r,e,t,i){var n=this.buildPayload({distinct_id:r,event:e,properties:t});return this.enqueue("capture",n,i),this},s.prototype.aliasStateless=function(r,e,t,i){var n=this.buildPayload({event:"$create_alias",distinct_id:e,properties:b(b({},t||{}),{distinct_id:e,alias:r})});return this.enqueue("alias",n,i),this},s.prototype.groupIdentifyStateless=function(r,e,t,i,n,o){var u=this.buildPayload({distinct_id:n||"$".concat(r,"_").concat(e),event:"$groupidentify",properties:b({$group_type:r,$group_key:e,$group_set:t||{}},o||{})});return this.enqueue("capture",u,i),this},s.prototype.getDecide=function(r,e,t,i,n){return e===void 0&&(e={}),t===void 0&&(t={}),i===void 0&&(i={}),n===void 0&&(n={}),A(this,void 0,void 0,function(){var o,u,l=this;return x(this,function(c){return o="".concat(this.host,"/decide/?v=3"),u={method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(b({token:this.apiKey,distinct_id:r,groups:e,person_properties:t,group_properties:i},n))},[2,this.fetchWithRetry(o,u).then(function(h){return h.json()}).catch(function(h){l._events.emit("error",h)})]})})},s.prototype.getFeatureFlagStateless=function(r,e,t,i,n,o){return t===void 0&&(t={}),i===void 0&&(i={}),n===void 0&&(n={}),A(this,void 0,void 0,function(){var u,l;return x(this,function(c){switch(c.label){case 0:return[4,this.getFeatureFlagsStateless(e,t,i,n,o)];case 1:return u=c.sent(),u?(l=u[r],l===void 0&&(l=!1),[2,l]):[2,void 0]}})})},s.prototype.getFeatureFlagPayloadStateless=function(r,e,t,i,n,o){return t===void 0&&(t={}),i===void 0&&(i={}),n===void 0&&(n={}),A(this,void 0,void 0,function(){var u,l;return x(this,function(c){switch(c.label){case 0:return[4,this.getFeatureFlagPayloadsStateless(e,t,i,n,o)];case 1:return u=c.sent(),u?(l=u[r],l===void 0?[2,null]:[2,this._parsePayload(l)]):[2,void 0]}})})},s.prototype.getFeatureFlagPayloadsStateless=function(r,e,t,i,n){return e===void 0&&(e={}),t===void 0&&(t={}),i===void 0&&(i={}),A(this,void 0,void 0,function(){var o,u=this;return x(this,function(l){switch(l.label){case 0:return[4,this.getFeatureFlagsAndPayloadsStateless(r,e,t,i,n)];case 1:return o=l.sent().payloads,o?[2,Object.fromEntries(Object.entries(o).map(function(c){var h=c[0],y=c[1];return[h,u._parsePayload(y)]}))]:[2,o]}})})},s.prototype._parsePayload=function(r){try{return JSON.parse(r)}catch{return r}},s.prototype.getFeatureFlagsStateless=function(r,e,t,i,n){return e===void 0&&(e={}),t===void 0&&(t={}),i===void 0&&(i={}),A(this,void 0,void 0,function(){return x(this,function(o){switch(o.label){case 0:return[4,this.getFeatureFlagsAndPayloadsStateless(r,e,t,i,n)];case 1:return[2,o.sent().flags]}})})},s.prototype.getFeatureFlagsAndPayloadsStateless=function(r,e,t,i,n){return e===void 0&&(e={}),t===void 0&&(t={}),i===void 0&&(i={}),A(this,void 0,void 0,function(){var o,u,l,c;return x(this,function(h){switch(h.label){case 0:return o={},(n??this.disableGeoip)&&(o.geoip_disable=!0),[4,this.getDecide(r,e,t,i,o)];case 1:return u=h.sent(),l=u==null?void 0:u.featureFlags,c=u==null?void 0:u.featureFlagPayloads,[2,{flags:l,payloads:c}]}})})},s.prototype.enqueue=function(r,e,t){var i=this,n;if(this.optedOut){this._events.emit(r,"Library is disabled. Not sending event. To re-enable, call posthog.optIn()");return}var o=b(b({},e),{type:r,library:this.getLibraryId(),library_version:this.getLibraryVersion(),timestamp:t!=null&&t.timestamp?t==null?void 0:t.timestamp:$(),uuid:t!=null&&t.uuid?t.uuid:D()}),u=(n=t==null?void 0:t.disableGeoip)!==null&&n!==void 0?n:this.disableGeoip;u&&(o.properties||(o.properties={}),o.properties.$geoip_disable=!0),o.distinctId&&(o.distinct_id=o.distinctId,delete o.distinctId);var l=this.getPersistedProperty(P.Queue)||[];l.push({message:o}),this.setPersistedProperty(P.Queue,l),this._events.emit(r,o),l.length>=this.flushAt&&this.flush(),this.flushInterval&&!this._flushTimer&&(this._flushTimer=Y(function(){return i.flush()},this.flushInterval))},s.prototype.flushAsync=function(){var r=this;return new Promise(function(e,t){r.flush(function(i,n){return i?t(i):e(n)})})},s.prototype.flush=function(r){var e=this;this._flushTimer&&(clearTimeout(this._flushTimer),this._flushTimer=null);var t=this.getPersistedProperty(P.Queue)||[];if(!t.length)return r==null?void 0:r();var i=t.splice(0,this.flushAt);this.setPersistedProperty(P.Queue,t);var n=i.map(function(d){return d.message}),o={api_key:this.apiKey,batch:n,sent_at:$()},u=function(d){d&&e._events.emit("error",d),r==null||r(d,n),e._events.emit("flush",n)};this.getCustomUserAgent();var l=JSON.stringify(o),c=this.captureMode==="form"?"".concat(this.host,"/e/?ip=1&_=").concat(le(),"&v=").concat(this.getLibraryVersion()):"".concat(this.host,"/batch/"),h=this.captureMode==="form"?{method:"POST",mode:"no-cors",credentials:"omit",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:"data=".concat(encodeURIComponent(j.compressToBase64(l)),"&compression=lz64")}:{method:"POST",headers:{"Content-Type":"application/json"},body:l},y=this.fetchWithRetry(c,h);this.addPendingPromise(y.then(function(){return u()}).catch(function(d){u(d)}))},s.prototype.fetchWithRetry=function(r,e,t){var i,n;return A(this,void 0,void 0,function(){var o=this;return x(this,function(u){switch(u.label){case 0:return(i=(n=AbortSignal).timeout)!==null&&i!==void 0||(n.timeout=function(c){var h=new AbortController;return setTimeout(function(){return h.abort()},c),h.signal}),[4,ue(function(){return A(o,void 0,void 0,function(){var l,c,h;return x(this,function(y){switch(y.label){case 0:l=null,y.label=1;case 1:return y.trys.push([1,3,,4]),[4,this.fetch(r,b({signal:AbortSignal.timeout(this.requestTimeout)},e))];case 2:return l=y.sent(),[3,4];case 3:throw c=y.sent(),new ye(c);case 4:if(h=e.mode==="no-cors",!h&&(l.status<200||l.status>=400))throw new ve(l);return[2,l]}})})},b(b({},this._retryOptions),t))];case 1:return[2,u.sent()]}})})},s.prototype.shutdownAsync=function(){return A(this,void 0,void 0,function(){var r;return x(this,function(e){switch(e.label){case 0:clearTimeout(this._flushTimer),e.label=1;case 1:return e.trys.push([1,5,,6]),[4,this.flushAsync()];case 2:return e.sent(),[4,Promise.all(Object.values(this.pendingPromises).map(function(t){return t.catch(function(){})}))];case 3:return e.sent(),[4,this.flushAsync()];case 4:return e.sent(),[3,6];case 5:if(r=e.sent(),!B(r))throw r;return console.error("Error while shutting down PostHog",r),[3,6];case 6:return[2]}})})},s.prototype.shutdown=function(){this.shutdownAsync()},s}();(function(s){k(r,s);function r(e,t){var i=this,n,o,u,l=(n=t==null?void 0:t.disableGeoip)!==null&&n!==void 0?n:!1;return i=s.call(this,e,b(b({},t),{disableGeoip:l}))||this,i.flagCallReported={},i.sessionProps={},i.sendFeatureFlagEvent=(o=t==null?void 0:t.sendFeatureFlagEvent)!==null&&o!==void 0?o:!0,i._sessionExpirationTimeSeconds=(u=t==null?void 0:t.sessionExpirationTimeSeconds)!==null&&u!==void 0?u:1800,i}return r.prototype.setupBootstrap=function(e){var t,i,n,o;if(!((t=e==null?void 0:e.bootstrap)===null||t===void 0)&&t.distinctId&&(!((i=e==null?void 0:e.bootstrap)===null||i===void 0)&&i.isIdentifiedId?this.setPersistedProperty(P.DistinctId,e.bootstrap.distinctId):this.setPersistedProperty(P.AnonymousId,e.bootstrap.distinctId)),!((n=e==null?void 0:e.bootstrap)===null||n===void 0)&&n.featureFlags){var u=Object.keys(((o=e.bootstrap)===null||o===void 0?void 0:o.featureFlags)||{}).filter(function(l){var c,h;return!!(!((h=(c=e.bootstrap)===null||c===void 0?void 0:c.featureFlags)===null||h===void 0)&&h[l])}).reduce(function(l,c){var h,y;return l[c]=((y=(h=e.bootstrap)===null||h===void 0?void 0:h.featureFlags)===null||y===void 0?void 0:y[c])||!1,l},{});this.setKnownFeatureFlags(u),e!=null&&e.bootstrap.featureFlagPayloads&&this.setKnownFeatureFlagPayloads(e==null?void 0:e.bootstrap.featureFlagPayloads)}},Object.defineProperty(r.prototype,"props",{get:function(){return this._props||(this._props=this.getPersistedProperty(P.Props)),this._props||{}},set:function(e){this._props=e},enumerable:!1,configurable:!0}),r.prototype.clearProps=function(){this.props=void 0,this.sessionProps={}},r.prototype.on=function(e,t){return this._events.on(e,t)},r.prototype.reset=function(e){var t=Q([P.Queue],e||[],!0);this.clearProps();for(var i=0,n=Object.keys(P);ithis._sessionExpirationTimeSeconds*1e3)&&(e=D(),this.setPersistedProperty(P.SessionId,e)),this.setPersistedProperty(P.SessionLastTimestamp,Date.now()),e},r.prototype.resetSessionId=function(){this.setPersistedProperty(P.SessionId,null)},r.prototype.getAnonymousId=function(){var e=this.getPersistedProperty(P.AnonymousId);return e||(e=D(),this.setPersistedProperty(P.AnonymousId,e)),e},r.prototype.getDistinctId=function(){return this.getPersistedProperty(P.DistinctId)||this.getAnonymousId()},r.prototype.unregister=function(e){delete this.props[e],this.setPersistedProperty(P.Props,this.props)},r.prototype.register=function(e){this.props=b(b({},this.props),e),this.setPersistedProperty(P.Props,this.props)},r.prototype.registerForSession=function(e){this.sessionProps=b(b({},this.sessionProps),e)},r.prototype.unregisterForSession=function(e){delete this.sessionProps[e]},r.prototype.identify=function(e,t,i){var n=this.getDistinctId();e=e||n,t!=null&&t.$groups&&this.groups(t.$groups);var o=this.enrichProperties(b(b({},t),{$anon_distinct_id:this.getAnonymousId(),$set:t}));return e!==n&&(this.setPersistedProperty(P.AnonymousId,n),this.setPersistedProperty(P.DistinctId,e),this.reloadFeatureFlags()),s.prototype.identifyStateless.call(this,e,o,i),this},r.prototype.capture=function(e,t,i){var n=this.getDistinctId();t!=null&&t.$groups&&this.groups(t.$groups);var o=this.enrichProperties(t);return s.prototype.captureStateless.call(this,n,e,o,i),this},r.prototype.alias=function(e){var t=this.getDistinctId(),i=this.enrichProperties({});return s.prototype.aliasStateless.call(this,e,t,i),this},r.prototype.autocapture=function(e,t,i,n){i===void 0&&(i={});var o=this.getDistinctId(),u={distinct_id:o,event:"$autocapture",properties:b(b({},this.enrichProperties(i)),{$event_type:e,$elements:t})};return this.enqueue("autocapture",u,n),this},r.prototype.groups=function(e){var t=this.props.$groups||{};return this.register({$groups:b(b({},t),e)}),Object.keys(e).find(function(i){return t[i]!==e[i]})&&this.reloadFeatureFlags(),this},r.prototype.group=function(e,t,i,n){var o;return this.groups((o={},o[e]=t,o)),i&&this.groupIdentify(e,t,i,n),this},r.prototype.groupIdentify=function(e,t,i,n){var o=this.getDistinctId(),u=this.enrichProperties({});return s.prototype.groupIdentifyStateless.call(this,e,t,i,n,o,u),this},r.prototype.setPersonPropertiesForFlags=function(e){var t=this.getPersistedProperty(P.PersonProperties)||{};return this.setPersistedProperty(P.PersonProperties,b(b({},t),e)),this},r.prototype.resetPersonPropertiesForFlags=function(){this.setPersistedProperty(P.PersonProperties,{})},r.prototype.personProperties=function(e){return this.setPersonPropertiesForFlags(e)},r.prototype.setGroupPropertiesForFlags=function(e){var t=this.getPersistedProperty(P.GroupProperties)||{};return Object.keys(t).length!==0&&Object.keys(t).forEach(function(i){t[i]=b(b({},t[i]),e[i]),delete e[i]}),this.setPersistedProperty(P.GroupProperties,b(b({},t),e)),this},r.prototype.resetGroupPropertiesForFlags=function(){this.setPersistedProperty(P.GroupProperties,{})},r.prototype.groupProperties=function(e){return this.setGroupPropertiesForFlags(e)},r.prototype.decideAsync=function(e){return e===void 0&&(e=!0),this._decideResponsePromise?this._decideResponsePromise:this._decideAsync(e)},r.prototype._decideAsync=function(e){return e===void 0&&(e=!0),A(this,void 0,void 0,function(){var t,i,n,o,u,l=this;return x(this,function(c){return t=this.getDistinctId(),i=this.props.$groups||{},n=this.getPersistedProperty(P.PersonProperties)||{},o=this.getPersistedProperty(P.GroupProperties)||{},u={$anon_distinct_id:e?this.getAnonymousId():void 0},this._decideResponsePromise=s.prototype.getDecide.call(this,t,i,n,o,u).then(function(h){if(h!=null&&h.featureFlags){var y=h.featureFlags,d=h.featureFlagPayloads;if(h.errorsWhileComputingFlags){var f=l.getPersistedProperty(P.FeatureFlags),a=l.getPersistedProperty(P.FeatureFlagPayloads);y=b(b({},f),h.featureFlags),d=b(b({},a),h.featureFlagPayloads)}l.setKnownFeatureFlags(y),l.setKnownFeatureFlagPayloads(d)}return h}).finally(function(){l._decideResponsePromise=void 0}),[2,this._decideResponsePromise]})})},r.prototype.setKnownFeatureFlags=function(e){this.setPersistedProperty(P.FeatureFlags,e),this._events.emit("featureflags",e)},r.prototype.setKnownFeatureFlagPayloads=function(e){this.setPersistedProperty(P.FeatureFlagPayloads,e)},r.prototype.getFeatureFlag=function(e){var t=this.getFeatureFlags();if(t){var i=t[e];return i===void 0&&(i=!1),this.sendFeatureFlagEvent&&!this.flagCallReported[e]&&(this.flagCallReported[e]=!0,this.capture("$feature_flag_called",{$feature_flag:e,$feature_flag_response:i})),i}},r.prototype.getFeatureFlagPayload=function(e){var t=this.getFeatureFlagPayloads();if(t){var i=t[e];return i===void 0?null:this._parsePayload(i)}},r.prototype.getFeatureFlagPayloads=function(){var e=this,t=this.getPersistedProperty(P.FeatureFlagPayloads);return t&&Object.fromEntries(Object.entries(t).map(function(i){var n=i[0],o=i[1];return[n,e._parsePayload(o)]}))},r.prototype.getFeatureFlags=function(){var e=this.getPersistedProperty(P.FeatureFlags),t=this.getPersistedProperty(P.OverrideFeatureFlags);if(!t)return e;e=e||{};for(var i in t)t[i]?e[i]=t[i]:delete e[i];return e},r.prototype.getFeatureFlagsAndPayloads=function(){var e=this.getFeatureFlags(),t=this.getFeatureFlagPayloads();return{flags:e,payloads:t}},r.prototype.isFeatureEnabled=function(e){var t=this.getFeatureFlag(e);if(t!==void 0)return!!t},r.prototype.reloadFeatureFlags=function(e){this.decideAsync().then(function(t){e==null||e(void 0,t==null?void 0:t.featureFlags)}).catch(function(t){e==null||e(t,void 0),e||console.log("[PostHog] Error reloading feature flags",t)})},r.prototype.reloadFeatureFlagsAsync=function(e){var t;return e===void 0&&(e=!0),A(this,void 0,void 0,function(){return x(this,function(i){switch(i.label){case 0:return[4,this.decideAsync(e)];case 1:return[2,(t=i.sent())===null||t===void 0?void 0:t.featureFlags]}})})},r.prototype.onFeatureFlags=function(e){var t=this;return this.on("featureflags",function(){return A(t,void 0,void 0,function(){var i;return x(this,function(n){return i=this.getFeatureFlags(),i&&e(i),[2]})})})},r.prototype.onFeatureFlag=function(e,t){var i=this;return this.on("featureflags",function(){return A(i,void 0,void 0,function(){var n;return x(this,function(o){return n=this.getFeatureFlag(e),n!==void 0&&t(n),[2]})})})},r.prototype.overrideFeatureFlag=function(e){return e===null?this.setPersistedProperty(P.OverrideFeatureFlags,null):this.setPersistedProperty(P.OverrideFeatureFlags,e)},r})(X);var ge=function(){function s(){this._memoryStorage={}}return s.prototype.getProperty=function(r){return this._memoryStorage[r]},s.prototype.setProperty=function(r,e){this._memoryStorage[r]=e!==null?e:void 0},s}(),U=typeof fetch<"u"?fetch:typeof global.fetch<"u"?global.fetch:void 0;if(!U){var we=require("axios");U=function(s,r){return A(void 0,void 0,void 0,function(){var e;return x(this,function(t){switch(t.label){case 0:return[4,we.request({url:s,headers:r.headers,method:r.method.toLowerCase(),data:r.body,signal:r.signal,validateStatus:function(){return!0}})];case 1:return e=t.sent(),[2,{status:e.status,text:function(){return A(void 0,void 0,void 0,function(){return x(this,function(i){return[2,e.data]})})},json:function(){return A(void 0,void 0,void 0,function(){return x(this,function(i){return[2,e.data]})})}}]}})})}}var Z=U,Fe=1152921504606847e3,H=function(s){k(r,s);function r(e){var t=s.call(this)||this;return Error.captureStackTrace(t,t.constructor),t.name="ClientError",t.message=e,Object.setPrototypeOf(t,r.prototype),t}return r}(Error),E=function(s){k(r,s);function r(e){var t=s.call(this,e)||this;return t.name=t.constructor.name,Error.captureStackTrace(t,t.constructor),Object.setPrototypeOf(t,r.prototype),t}return r}(Error),me=function(){function s(r){var e=r.pollingInterval,t=r.personalApiKey,i=r.projectApiKey,n=r.timeout,o=r.host,u=oe(r,["pollingInterval","personalApiKey","projectApiKey","timeout","host"]);this.debugMode=!1,this.pollingInterval=e,this.personalApiKey=t,this.featureFlags=[],this.featureFlagsByKey={},this.groupTypeMapping={},this.cohorts={},this.loadedSuccessfullyOnce=!1,this.timeout=n,this.projectApiKey=i,this.host=o,this.poller=void 0,this.fetch=u.fetch||Z,this.onError=u.onError,this.loadFeatureFlags()}return s.prototype.debug=function(r){r===void 0&&(r=!0),this.debugMode=r},s.prototype.getFeatureFlag=function(r,e,t,i,n){var o;return t===void 0&&(t={}),i===void 0&&(i={}),n===void 0&&(n={}),A(this,void 0,void 0,function(){var u,l,c,h,y;return x(this,function(d){switch(d.label){case 0:return[4,this.loadFeatureFlags()];case 1:if(d.sent(),u=void 0,l=void 0,!this.loadedSuccessfullyOnce)return[2,u];for(c=0,h=this.featureFlags;c ").concat(u))}catch(f){f instanceof E?this.debugMode&&console.debug("InconclusiveMatchError when computing flag locally: ".concat(r,": ").concat(f)):f instanceof Error&&((o=this.onError)===null||o===void 0||o.call(this,new Error("Error computing flag locally: ".concat(r,": ").concat(f))))}return[2,u]}})})},s.prototype.computeFeatureFlagPayloadLocally=function(r,e){var t,i,n,o,u,l,c,h;return A(this,void 0,void 0,function(){var y;return x(this,function(d){switch(d.label){case 0:return[4,this.loadFeatureFlags()];case 1:return d.sent(),y=void 0,this.loadedSuccessfullyOnce?(typeof e=="boolean"?y=(o=(n=(i=(t=this.featureFlagsByKey)===null||t===void 0?void 0:t[r])===null||i===void 0?void 0:i.filters)===null||n===void 0?void 0:n.payloads)===null||o===void 0?void 0:o[e.toString()]:typeof e=="string"&&(y=(h=(c=(l=(u=this.featureFlagsByKey)===null||u===void 0?void 0:u[r])===null||l===void 0?void 0:l.filters)===null||c===void 0?void 0:c.payloads)===null||h===void 0?void 0:h[e]),y===void 0?[2,null]:[2,y]):[2,void 0]}})})},s.prototype.getAllFlagsAndPayloads=function(r,e,t,i){return e===void 0&&(e={}),t===void 0&&(t={}),i===void 0&&(i={}),A(this,void 0,void 0,function(){var n,o,u,l=this;return x(this,function(c){switch(c.label){case 0:return[4,this.loadFeatureFlags()];case 1:return c.sent(),n={},o={},u=this.featureFlags.length==0,this.featureFlags.map(function(h){return A(l,void 0,void 0,function(){var y,d,f,a;return x(this,function(v){switch(v.label){case 0:return v.trys.push([0,2,,3]),y=this.computeFlagLocally(h,r,e,t,i),n[h.key]=y,[4,this.computeFeatureFlagPayloadLocally(h.key,y)];case 1:return d=v.sent(),d&&(o[h.key]=d),[3,3];case 2:return f=v.sent(),f instanceof E||f instanceof Error&&((a=this.onError)===null||a===void 0||a.call(this,new Error("Error computing flag locally: ".concat(h.key,": ").concat(f)))),u=!0,[3,3];case 3:return[2]}})})}),[2,{response:n,payloads:o,fallbackToDecide:u}]}})})},s.prototype.computeFlagLocally=function(r,e,t,i,n){if(t===void 0&&(t={}),i===void 0&&(i={}),n===void 0&&(n={}),r.ensure_experience_continuity)throw new E("Flag has experience continuity enabled");if(!r.active)return!1;var o=r.filters||{},u=o.aggregation_group_type_index;if(u!=null){var l=this.groupTypeMapping[String(u)];if(!l)throw this.debugMode&&console.warn("[FEATURE FLAGS] Unknown group type index ".concat(u," for feature flag ").concat(r.key)),new E("Flag has unknown group type index");if(!(l in t))return this.debugMode&&console.warn("[FEATURE FLAGS] Can't compute group feature flag: ".concat(r.key," without group names passed in")),!1;var c=n[l];return this.matchFeatureFlagProperties(r,t[l],c)}else return this.matchFeatureFlagProperties(r,e,i)},s.prototype.matchFeatureFlagProperties=function(r,e,t){for(var i,n=r.filters||{},o=n.groups||[],u=!1,l=void 0,c=Q([],o,!0).sort(function(p,w){var g=!!p.variant,m=!!w.variant;return g&&m?0:g?-1:m?1:0}),h=function(p){try{if(y.isConditionMatch(r,e,p,t)){var w=p.variant,g=((i=n.multivariate)===null||i===void 0?void 0:i.variants)||[];return w&&g.some(function(m){return m.key===w})?l=w:l=y.getMatchingVariant(r,e)||!0,"break"}}catch(m){if(m instanceof E)u=!0;else throw m}},y=this,d=0,f=c;d0){for(var o=0,u=t.properties;on/100)},s.prototype.getMatchingVariant=function(r,e){var t=N(r.key,e,"variant"),i=this.variantLookupTable(r).find(function(n){return t>=n.valueMin&&td;if(f==="gte")return y>=d;if(f==="lt")return yc}default:throw new E("Unknown operator: ".concat(i))}}function te(s,r,e){var t=String(s.value);if(!(t in e))throw new E("can't match cohort without a given cohort property value");var i=e[t];return re(i,r,e)}function re(s,r,e){if(!s)return!0;var t=s.type,i=s.values;if(!i||i.length===0)return!0;var n=!1;if("values"in i[0]){for(var o=0,u=i;o[0-9]+)(?[a-z])$/,e=s.match(r),t=new Date(new Date().toISOString());if(e){if(!e.groups)return null;var i=parseInt(e.groups.number);if(i>=1e4)return null;var n=e.groups.interval;if(n=="h")t.setUTCHours(t.getUTCHours()-i);else if(n=="d")t.setUTCDate(t.getUTCDate()-i);else if(n=="w")t.setUTCDate(t.getUTCDate()-i*7);else if(n=="m")t.setUTCMonth(t.getUTCMonth()-i);else if(n=="y")t.setUTCFullYear(t.getUTCFullYear()-i);else return null;return t}else return null}var _e=30*1e3,Pe=50*1e3,Ae=function(s){k(r,s);function r(e,t){t===void 0&&(t={});var i=this,n;return t.captureMode=(t==null?void 0:t.captureMode)||"json",i=s.call(this,e,t)||this,i._memoryStorage=new ge,i.options=t,t.personalApiKey&&(i.featureFlagsPoller=new me({pollingInterval:typeof t.featureFlagsPollingInterval=="number"?t.featureFlagsPollingInterval:_e,personalApiKey:t.personalApiKey,projectApiKey:e,timeout:(n=t.requestTimeout)!==null&&n!==void 0?n:1e4,host:i.host,fetch:t.fetch,onError:function(o){i._events.emit("error",o)}})),i.distinctIdHasSentFlagCalls={},i.maxCacheSize=t.maxCacheSize||Pe,i}return r.prototype.getPersistedProperty=function(e){return this._memoryStorage.getProperty(e)},r.prototype.setPersistedProperty=function(e,t){return this._memoryStorage.setProperty(e,t)},r.prototype.fetch=function(e,t){return this.options.fetch?this.options.fetch(e,t):Z(e,t)},r.prototype.getLibraryId=function(){return"posthog-node"},r.prototype.getLibraryVersion=function(){return G},r.prototype.getCustomUserAgent=function(){return"posthog-node/".concat(G)},r.prototype.enable=function(){return s.prototype.optIn.call(this)},r.prototype.disable=function(){return s.prototype.optOut.call(this)},r.prototype.debug=function(e){var t;e===void 0&&(e=!0),s.prototype.debug.call(this,e),(t=this.featureFlagsPoller)===null||t===void 0||t.debug(e)},r.prototype.capture=function(e){var t=this,i=e.distinctId,n=e.event,o=e.properties,u=e.groups,l=e.sendFeatureFlags,c=e.timestamp,h=e.disableGeoip,y=e.uuid,d=function(a){s.prototype.captureStateless.call(t,i,n,a,{timestamp:c,disableGeoip:h,uuid:y})},f=Promise.resolve().then(function(){return A(t,void 0,void 0,function(){var a,v,p,w,g,m,F,_;return x(this,function(S){switch(S.label){case 0:return l?[4,s.prototype.getFeatureFlagsStateless.call(this,i,u,void 0,void 0,h)]:[3,2];case 1:return[2,S.sent()];case 2:if(!((((_=(F=this.featureFlagsPoller)===null||F===void 0?void 0:F.featureFlags)===null||_===void 0?void 0:_.length)||0)>0))return[3,4];for(a={},v=0,p=Object.entries(u||{});v0&&(v.$active_feature_flags=_),v}).catch(function(){return{}}).then(function(a){d(b(b(b({},a),o),{$groups:u}))});this.addPendingPromise(f)},r.prototype.identify=function(e){var t=e.distinctId,i=e.properties,n=e.disableGeoip,o=(i==null?void 0:i.$set)||i;s.prototype.identifyStateless.call(this,t,{$set:o},{disableGeoip:n})},r.prototype.alias=function(e){s.prototype.aliasStateless.call(this,e.alias,e.distinctId,void 0,{disableGeoip:e.disableGeoip})},r.prototype.getFeatureFlag=function(e,t,i){var n;return A(this,void 0,void 0,function(){var o,u,l,c,h,y,d,f,a,v,p,w,g;return x(this,function(m){switch(m.label){case 0:return o=i||{},u=o.groups,l=o.disableGeoip,c=i||{},h=c.onlyEvaluateLocally,y=c.sendFeatureFlagEvents,d=c.personProperties,f=c.groupProperties,a=this.addLocalPersonAndGroupProperties(t,u,d,f),d=a.allPersonProperties,f=a.allGroupProperties,h==null&&(h=!1),y==null&&(y=!0),[4,(n=this.featureFlagsPoller)===null||n===void 0?void 0:n.getFeatureFlag(e,t,u,d,f)];case 1:return v=m.sent(),p=v!==void 0,!p&&!h?[4,s.prototype.getFeatureFlagStateless.call(this,e,t,u,d,f,l)]:[3,3];case 2:v=m.sent(),m.label=3;case 3:return w="".concat(e,"_").concat(v),y&&(!(t in this.distinctIdHasSentFlagCalls)||!this.distinctIdHasSentFlagCalls[t].includes(w))&&(Object.keys(this.distinctIdHasSentFlagCalls).length>=this.maxCacheSize&&(this.distinctIdHasSentFlagCalls={}),Array.isArray(this.distinctIdHasSentFlagCalls[t])?this.distinctIdHasSentFlagCalls[t].push(w):this.distinctIdHasSentFlagCalls[t]=[w],this.capture({distinctId:t,event:"$feature_flag_called",properties:(g={$feature_flag:e,$feature_flag_response:v,locally_evaluated:p},g["$feature/".concat(e)]=v,g),groups:u,disableGeoip:l})),[2,v]}})})},r.prototype.getFeatureFlagPayload=function(e,t,i,n){var o;return A(this,void 0,void 0,function(){var u,l,c,h,y,d,f,a,v,p;return x(this,function(w){switch(w.label){case 0:return u=n||{},l=u.groups,c=u.disableGeoip,h=n||{},y=h.onlyEvaluateLocally,h.sendFeatureFlagEvents,d=h.personProperties,f=h.groupProperties,a=this.addLocalPersonAndGroupProperties(t,l,d,f),d=a.allPersonProperties,f=a.allGroupProperties,v=void 0,i?[3,2]:[4,this.getFeatureFlag(e,t,b(b({},n),{onlyEvaluateLocally:!0}))];case 1:i=w.sent(),w.label=2;case 2:return i?[4,(o=this.featureFlagsPoller)===null||o===void 0?void 0:o.computeFeatureFlagPayloadLocally(e,i)]:[3,4];case 3:v=w.sent(),w.label=4;case 4:return y==null&&(y=!1),y==null&&(y=!1),p=v!==void 0,!p&&!y?[4,s.prototype.getFeatureFlagPayloadStateless.call(this,e,t,l,d,f,c)]:[3,6];case 5:v=w.sent(),w.label=6;case 6:try{return[2,JSON.parse(v)]}catch{return[2,v]}return[2]}})})},r.prototype.isFeatureEnabled=function(e,t,i){return A(this,void 0,void 0,function(){var n;return x(this,function(o){switch(o.label){case 0:return[4,this.getFeatureFlag(e,t,i)];case 1:return n=o.sent(),n===void 0?[2,void 0]:[2,!!n||!1]}})})},r.prototype.getAllFlags=function(e,t){return A(this,void 0,void 0,function(){var i;return x(this,function(n){switch(n.label){case 0:return[4,this.getAllFlagsAndPayloads(e,t)];case 1:return i=n.sent(),[2,i.featureFlags]}})})},r.prototype.getAllFlagsAndPayloads=function(e,t){var i;return A(this,void 0,void 0,function(){var n,o,u,l,c,h,y,d,f,a,v,p,w;return x(this,function(g){switch(g.label){case 0:return n=t||{},o=n.groups,u=n.disableGeoip,l=t||{},c=l.onlyEvaluateLocally,h=l.personProperties,y=l.groupProperties,d=this.addLocalPersonAndGroupProperties(e,o,h,y),h=d.allPersonProperties,y=d.allGroupProperties,c==null&&(c=!1),[4,(i=this.featureFlagsPoller)===null||i===void 0?void 0:i.getAllFlagsAndPayloads(e,o,h,y)];case 1:return f=g.sent(),a={},v={},p=!0,f&&(a=f.response,v=f.payloads,p=f.fallbackToDecide),p&&!c?[4,s.prototype.getFeatureFlagsAndPayloadsStateless.call(this,e,o,h,y,u)]:[3,3];case 2:w=g.sent(),a=b(b({},a),w.flags||{}),v=b(b({},v),w.payloads||{}),g.label=3;case 3:return[2,{featureFlags:a,featureFlagPayloads:v}]}})})},r.prototype.groupIdentify=function(e){var t=e.groupType,i=e.groupKey,n=e.properties,o=e.distinctId,u=e.disableGeoip;s.prototype.groupIdentifyStateless.call(this,t,i,n,{disableGeoip:u},o)},r.prototype.reloadFeatureFlags=function(){var e;return A(this,void 0,void 0,function(){return x(this,function(t){switch(t.label){case 0:return[4,(e=this.featureFlagsPoller)===null||e===void 0?void 0:e.loadFeatureFlags(!0)];case 1:return t.sent(),[2]}})})},r.prototype.shutdown=function(){this.shutdownAsync()},r.prototype.shutdownAsync=function(){var e;return A(this,void 0,void 0,function(){return x(this,function(t){return(e=this.featureFlagsPoller)===null||e===void 0||e.stopPoller(),[2,s.prototype.shutdownAsync.call(this)]})})},r.prototype.addLocalPersonAndGroupProperties=function(e,t,i,n){var o=b({distinct_id:e},i||{}),u={};if(t)for(var l=0,c=Object.keys(t);ll in I?gdI(I,l,{enumerable:!0,configurable:!0,writable:!0,value:c}):I[l]=c;var Zc=(I,l,c)=>(AdI(I,typeof l!="symbol"?l+"":l,c),c);function Mf(I,l){for(var c=0;cG[e]})}}}return Object.freeze(Object.defineProperty(I,Symbol.toStringTag,{value:"Module"}))}(function(){const l=document.createElement("link").relList;if(l&&l.supports&&l.supports("modulepreload"))return;for(const e of document.querySelectorAll('link[rel="modulepreload"]'))G(e);new MutationObserver(e=>{for(const d of e)if(d.type==="childList")for(const t of d.addedNodes)t.tagName==="LINK"&&t.rel==="modulepreload"&&G(t)}).observe(document,{childList:!0,subtree:!0});function c(e){const d={};return e.integrity&&(d.integrity=e.integrity),e.referrerPolicy&&(d.referrerPolicy=e.referrerPolicy),e.crossOrigin==="use-credentials"?d.credentials="include":e.crossOrigin==="anonymous"?d.credentials="omit":d.credentials="same-origin",d}function G(e){if(e.ep)return;e.ep=!0;const d=c(e);fetch(e.href,d)}})();var sc=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Vn(I){return I&&I.__esModule&&Object.prototype.hasOwnProperty.call(I,"default")?I.default:I}function ff(I){if(I.__esModule)return I;var l=I.default;if(typeof l=="function"){var c=function G(){return this instanceof G?Reflect.construct(l,arguments,this.constructor):l.apply(this,arguments)};c.prototype=l.prototype}else c={};return Object.defineProperty(c,"__esModule",{value:!0}),Object.keys(I).forEach(function(G){var e=Object.getOwnPropertyDescriptor(I,G);Object.defineProperty(c,G,e.get?e:{enumerable:!0,get:function(){return I[G]}})}),c}var Kf={exports:{}},eF={},Lf={exports:{}},oc={};/** +var Fae=Object.defineProperty;var Eae=(e,t,n)=>t in e?Fae(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var Vi=(e,t,n)=>(Eae(e,typeof t!="symbol"?t+"":t,n),n);function JL(e,t){for(var n=0;nr[i]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))r(i);new MutationObserver(i=>{for(const a of i)if(a.type==="childList")for(const o of a.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&r(o)}).observe(document,{childList:!0,subtree:!0});function n(i){const a={};return i.integrity&&(a.integrity=i.integrity),i.referrerPolicy&&(a.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?a.credentials="include":i.crossOrigin==="anonymous"?a.credentials="omit":a.credentials="same-origin",a}function r(i){if(i.ep)return;i.ep=!0;const a=n(i);fetch(i.href,a)}})();var hn=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Fl(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function Rae(e){if(e.__esModule)return e;var t=e.default;if(typeof t=="function"){var n=function r(){return this instanceof r?Reflect.construct(t,arguments,this.constructor):t.apply(this,arguments)};n.prototype=t.prototype}else n={};return Object.defineProperty(n,"__esModule",{value:!0}),Object.keys(e).forEach(function(r){var i=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(n,r,i.get?i:{enumerable:!0,get:function(){return e[r]}})}),n}var zL={exports:{}},m4={},PL={exports:{}},mn={};/** * @license React * react.production.min.js * @@ -6,7 +6,7 @@ var gdI=Object.defineProperty;var AdI=(I,l,c)=>l in I?gdI(I,l,{enumerable:!0,con * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var ih=Symbol.for("react.element"),ydI=Symbol.for("react.portal"),JdI=Symbol.for("react.fragment"),BdI=Symbol.for("react.strict_mode"),kdI=Symbol.for("react.profiler"),xdI=Symbol.for("react.provider"),zdI=Symbol.for("react.context"),UdI=Symbol.for("react.forward_ref"),CdI=Symbol.for("react.suspense"),MdI=Symbol.for("react.memo"),fdI=Symbol.for("react.lazy"),lB=Symbol.iterator;function KdI(I){return I===null||typeof I!="object"?null:(I=lB&&I[lB]||I["@@iterator"],typeof I=="function"?I:null)}var Sf={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},Tf=Object.assign,jf={};function m0(I,l,c){this.props=I,this.context=l,this.refs=jf,this.updater=c||Sf}m0.prototype.isReactComponent={};m0.prototype.setState=function(I,l){if(typeof I!="object"&&typeof I!="function"&&I!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,I,l,"setState")};m0.prototype.forceUpdate=function(I){this.updater.enqueueForceUpdate(this,I,"forceUpdate")};function Df(){}Df.prototype=m0.prototype;function Zv(I,l,c){this.props=I,this.context=l,this.refs=jf,this.updater=c||Sf}var Wv=Zv.prototype=new Df;Wv.constructor=Zv;Tf(Wv,m0.prototype);Wv.isPureReactComponent=!0;var cB=Array.isArray,Of=Object.prototype.hasOwnProperty,rv={current:null},Pf={key:!0,ref:!0,__self:!0,__source:!0};function _f(I,l,c){var G,e={},d=null,t=null;if(l!=null)for(G in l.ref!==void 0&&(t=l.ref),l.key!==void 0&&(d=""+l.key),l)Of.call(l,G)&&!Pf.hasOwnProperty(G)&&(e[G]=l[G]);var n=arguments.length-2;if(n===1)e.children=c;else if(1l in I?gdI(I,l,{enumerable:!0,con * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var DdI=E,OdI=Symbol.for("react.element"),PdI=Symbol.for("react.fragment"),_dI=Object.prototype.hasOwnProperty,qdI=DdI.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,$dI={key:!0,ref:!0,__self:!0,__source:!0};function qf(I,l,c){var G,e={},d=null,t=null;c!==void 0&&(d=""+c),l.key!==void 0&&(d=""+l.key),l.ref!==void 0&&(t=l.ref);for(G in l)_dI.call(l,G)&&!$dI.hasOwnProperty(G)&&(e[G]=l[G]);if(I&&I.defaultProps)for(G in l=I.defaultProps,l)e[G]===void 0&&(e[G]=l[G]);return{$$typeof:OdI,type:I,key:d,ref:t,props:e,_owner:qdI.current}}eF.Fragment=PdI;eF.jsx=qf;eF.jsxs=qf;Kf.exports=eF;var v=Kf.exports,qH={},$f={exports:{}},lt={},IK={exports:{}},lK={};/** + */var Uae=E,Oae=Symbol.for("react.element"),Jae=Symbol.for("react.fragment"),zae=Object.prototype.hasOwnProperty,Pae=Uae.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,jae={key:!0,ref:!0,__self:!0,__source:!0};function iM(e,t,n){var r,i={},a=null,o=null;n!==void 0&&(a=""+n),t.key!==void 0&&(a=""+t.key),t.ref!==void 0&&(o=t.ref);for(r in t)zae.call(t,r)&&!jae.hasOwnProperty(r)&&(i[r]=t[r]);if(e&&e.defaultProps)for(r in t=e.defaultProps,t)i[r]===void 0&&(i[r]=t[r]);return{$$typeof:Oae,type:e,key:a,ref:o,props:i,_owner:Pae.current}}m4.Fragment=Jae;m4.jsx=iM;m4.jsxs=iM;zL.exports=m4;var W=zL.exports,iW={},aM={exports:{}},oo={},oM={exports:{}},lM={};/** * @license React * scheduler.production.min.js * @@ -22,7 +22,7 @@ var gdI=Object.defineProperty;var AdI=(I,l,c)=>l in I?gdI(I,l,{enumerable:!0,con * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */(function(I){function l(S,tI){var z=S.length;S.push(tI);I:for(;0>>1,GI=S[g];if(0>>1;ge(VI,z))qe(fI,VI)?(S[g]=fI,S[q]=z,g=q):(S[g]=VI,S[nI]=z,g=nI);else if(qe(fI,z))S[g]=fI,S[q]=z,g=q;else break I}}return tI}function e(S,tI){var z=S.sortIndex-tI.sortIndex;return z!==0?z:S.id-tI.id}if(typeof performance=="object"&&typeof performance.now=="function"){var d=performance;I.unstable_now=function(){return d.now()}}else{var t=Date,n=t.now();I.unstable_now=function(){return t.now()-n}}var b=[],a=[],Z=1,W=null,m=3,s=!1,h=!1,p=!1,V=typeof setTimeout=="function"?setTimeout:null,o=typeof clearTimeout=="function"?clearTimeout:null,F=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function X(S){for(var tI=c(a);tI!==null;){if(tI.callback===null)G(a);else if(tI.startTime<=S)G(a),tI.sortIndex=tI.expirationTime,l(b,tI);else break;tI=c(a)}}function H(S){if(p=!1,X(S),!h)if(c(b)!==null)h=!0,$(Y);else{var tI=c(a);tI!==null&&j(H,tI.startTime-S)}}function Y(S,tI){h=!1,p&&(p=!1,o(C),C=-1),s=!0;var z=m;try{for(X(tI),W=c(b);W!==null&&(!(W.expirationTime>tI)||S&&!J());){var g=W.callback;if(typeof g=="function"){W.callback=null,m=W.priorityLevel;var GI=g(W.expirationTime<=tI);tI=I.unstable_now(),typeof GI=="function"?W.callback=GI:W===c(b)&&G(b),X(tI)}else G(b);W=c(b)}if(W!==null)var f=!0;else{var nI=c(a);nI!==null&&j(H,nI.startTime-tI),f=!1}return f}finally{W=null,m=z,s=!1}}var R=!1,B=null,C=-1,k=5,N=-1;function J(){return!(I.unstable_now()-NS||125g?(S.sortIndex=z,l(a,S),c(b)===null&&S===c(a)&&(p?(o(C),C=-1):p=!0,j(H,z-g))):(S.sortIndex=GI,l(b,S),h||s||(h=!0,$(Y))),S},I.unstable_shouldYield=J,I.unstable_wrapCallback=function(S){var tI=m;return function(){var z=m;m=tI;try{return S.apply(this,arguments)}finally{m=z}}}})(lK);IK.exports=lK;var ItI=IK.exports;/** + */(function(e){function t(I,se){var Z=I.length;I.push(se);e:for(;0>>1,q=I[S];if(0>>1;Si(fe,Z))_i(Ze,fe)?(I[S]=Ze,I[_]=Z,S=_):(I[S]=fe,I[ue]=Z,S=ue);else if(_i(Ze,Z))I[S]=Ze,I[_]=Z,S=_;else break e}}return se}function i(I,se){var Z=I.sortIndex-se.sortIndex;return Z!==0?Z:I.id-se.id}if(typeof performance=="object"&&typeof performance.now=="function"){var a=performance;e.unstable_now=function(){return a.now()}}else{var o=Date,l=o.now();e.unstable_now=function(){return o.now()-l}}var s=[],u=[],c=1,d=null,g=3,h=!1,m=!1,A=!1,B=typeof setTimeout=="function"?setTimeout:null,C=typeof clearTimeout=="function"?clearTimeout:null,b=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function Q(I){for(var se=n(u);se!==null;){if(se.callback===null)r(u);else if(se.startTime<=I)r(u),se.sortIndex=se.expirationTime,t(s,se);else break;se=n(u)}}function F(I){if(A=!1,Q(I),!m)if(n(s)!==null)m=!0,te(K);else{var se=n(u);se!==null&&J(F,se.startTime-I)}}function K(I,se){m=!1,A&&(A=!1,C(X),X=-1),h=!0;var Z=g;try{for(Q(se),d=n(s);d!==null&&(!(d.expirationTime>se)||I&&!k());){var S=d.callback;if(typeof S=="function"){d.callback=null,g=d.priorityLevel;var q=S(d.expirationTime<=se);se=e.unstable_now(),typeof q=="function"?d.callback=q:d===n(s)&&r(s),Q(se)}else r(s);d=n(s)}if(d!==null)var T=!0;else{var ue=n(u);ue!==null&&J(F,ue.startTime-se),T=!1}return T}finally{d=null,g=Z,h=!1}}var y=!1,G=null,X=-1,H=5,v=-1;function k(){return!(e.unstable_now()-vI||125S?(I.sortIndex=Z,t(u,I),n(s)===null&&I===n(u)&&(A?(C(X),X=-1):A=!0,J(F,Z-S))):(I.sortIndex=q,t(s,I),m||h||(m=!0,te(K))),I},e.unstable_shouldYield=k,e.unstable_wrapCallback=function(I){var se=g;return function(){var Z=g;g=se;try{return I.apply(this,arguments)}finally{g=Z}}}})(lM);oM.exports=lM;var _ae=oM.exports;/** * @license React * react-dom.production.min.js * @@ -30,14 +30,14 @@ var gdI=Object.defineProperty;var AdI=(I,l,c)=>l in I?gdI(I,l,{enumerable:!0,con * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var cK=E,Pd=ItI;function jI(I){for(var l="https://reactjs.org/docs/error-decoder.html?invariant="+I,c=1;c"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),$H=Object.prototype.hasOwnProperty,ltI=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,eB={},dB={};function ctI(I){return $H.call(dB,I)?!0:$H.call(eB,I)?!1:ltI.test(I)?dB[I]=!0:(eB[I]=!0,!1)}function GtI(I,l,c,G){if(c!==null&&c.type===0)return!1;switch(typeof l){case"function":case"symbol":return!0;case"boolean":return G?!1:c!==null?!c.acceptsBooleans:(I=I.toLowerCase().slice(0,5),I!=="data-"&&I!=="aria-");default:return!1}}function etI(I,l,c,G){if(l===null||typeof l>"u"||GtI(I,l,c,G))return!0;if(G)return!1;if(c!==null)switch(c.type){case 3:return!l;case 4:return l===!1;case 5:return isNaN(l);case 6:return isNaN(l)||1>l}return!1}function Gd(I,l,c,G,e,d,t){this.acceptsBooleans=l===2||l===3||l===4,this.attributeName=G,this.attributeNamespace=e,this.mustUseProperty=c,this.propertyName=I,this.type=l,this.sanitizeURL=d,this.removeEmptyString=t}var Re={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(I){Re[I]=new Gd(I,0,!1,I,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(I){var l=I[0];Re[l]=new Gd(l,1,!1,I[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(I){Re[I]=new Gd(I,2,!1,I.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(I){Re[I]=new Gd(I,2,!1,I,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(I){Re[I]=new Gd(I,3,!1,I.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(I){Re[I]=new Gd(I,3,!0,I,null,!1,!1)});["capture","download"].forEach(function(I){Re[I]=new Gd(I,4,!1,I,null,!1,!1)});["cols","rows","size","span"].forEach(function(I){Re[I]=new Gd(I,6,!1,I,null,!1,!1)});["rowSpan","start"].forEach(function(I){Re[I]=new Gd(I,5,!1,I.toLowerCase(),null,!1,!1)});var sv=/[\-:]([a-z])/g;function uv(I){return I[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(I){var l=I.replace(sv,uv);Re[l]=new Gd(l,1,!1,I,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(I){var l=I.replace(sv,uv);Re[l]=new Gd(l,1,!1,I,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(I){var l=I.replace(sv,uv);Re[l]=new Gd(l,1,!1,I,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(I){Re[I]=new Gd(I,1,!1,I.toLowerCase(),null,!1,!1)});Re.xlinkHref=new Gd("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(I){Re[I]=new Gd(I,1,!1,I.toLowerCase(),null,!0,!0)});function hv(I,l,c,G){var e=Re.hasOwnProperty(l)?Re[l]:null;(e!==null?e.type!==0:G||!(2n||e[t]!==d[n]){var b=` -`+e[t].replace(" at new "," at ");return I.displayName&&b.includes("")&&(b=b.replace("",I.displayName)),b}while(1<=t&&0<=n);break}}}finally{SR=!1,Error.prepareStackTrace=c}return(I=I?I.displayName||I.name:"")?Js(I):""}function dtI(I){switch(I.tag){case 5:return Js(I.type);case 16:return Js("Lazy");case 13:return Js("Suspense");case 19:return Js("SuspenseList");case 0:case 2:case 15:return I=TR(I.type,!1),I;case 11:return I=TR(I.type.render,!1),I;case 1:return I=TR(I.type,!0),I;default:return""}}function GQ(I){if(I==null)return null;if(typeof I=="function")return I.displayName||I.name||null;if(typeof I=="string")return I;switch(I){case qr:return"Fragment";case _r:return"Portal";case IQ:return"Profiler";case pv:return"StrictMode";case lQ:return"Suspense";case cQ:return"SuspenseList"}if(typeof I=="object")switch(I.$$typeof){case dK:return(I.displayName||"Context")+".Consumer";case eK:return(I._context.displayName||"Context")+".Provider";case ov:var l=I.render;return I=I.displayName,I||(I=l.displayName||l.name||"",I=I!==""?"ForwardRef("+I+")":"ForwardRef"),I;case Vv:return l=I.displayName||null,l!==null?l:GQ(I.type)||"Memo";case Xa:l=I._payload,I=I._init;try{return GQ(I(l))}catch{}}return null}function ttI(I){var l=I.type;switch(I.tag){case 24:return"Cache";case 9:return(l.displayName||"Context")+".Consumer";case 10:return(l._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return I=l.render,I=I.displayName||I.name||"",l.displayName||(I!==""?"ForwardRef("+I+")":"ForwardRef");case 7:return"Fragment";case 5:return l;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return GQ(l);case 8:return l===pv?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof l=="function")return l.displayName||l.name||null;if(typeof l=="string")return l}return null}function bZ(I){switch(typeof I){case"boolean":case"number":case"string":case"undefined":return I;case"object":return I;default:return""}}function nK(I){var l=I.type;return(I=I.nodeName)&&I.toLowerCase()==="input"&&(l==="checkbox"||l==="radio")}function ntI(I){var l=nK(I)?"checked":"value",c=Object.getOwnPropertyDescriptor(I.constructor.prototype,l),G=""+I[l];if(!I.hasOwnProperty(l)&&typeof c<"u"&&typeof c.get=="function"&&typeof c.set=="function"){var e=c.get,d=c.set;return Object.defineProperty(I,l,{configurable:!0,get:function(){return e.call(this)},set:function(t){G=""+t,d.call(this,t)}}),Object.defineProperty(I,l,{enumerable:c.enumerable}),{getValue:function(){return G},setValue:function(t){G=""+t},stopTracking:function(){I._valueTracker=null,delete I[l]}}}}function Go(I){I._valueTracker||(I._valueTracker=ntI(I))}function bK(I){if(!I)return!1;var l=I._valueTracker;if(!l)return!0;var c=l.getValue(),G="";return I&&(G=nK(I)?I.checked?"true":"false":I.value),I=G,I!==c?(l.setValue(I),!0):!1}function bV(I){if(I=I||(typeof document<"u"?document:void 0),typeof I>"u")return null;try{return I.activeElement||I.body}catch{return I.body}}function eQ(I,l){var c=l.checked;return pG({},l,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:c??I._wrapperState.initialChecked})}function nB(I,l){var c=l.defaultValue==null?"":l.defaultValue,G=l.checked!=null?l.checked:l.defaultChecked;c=bZ(l.value!=null?l.value:c),I._wrapperState={initialChecked:G,initialValue:c,controlled:l.type==="checkbox"||l.type==="radio"?l.checked!=null:l.value!=null}}function aK(I,l){l=l.checked,l!=null&&hv(I,"checked",l,!1)}function dQ(I,l){aK(I,l);var c=bZ(l.value),G=l.type;if(c!=null)G==="number"?(c===0&&I.value===""||I.value!=c)&&(I.value=""+c):I.value!==""+c&&(I.value=""+c);else if(G==="submit"||G==="reset"){I.removeAttribute("value");return}l.hasOwnProperty("value")?tQ(I,l.type,c):l.hasOwnProperty("defaultValue")&&tQ(I,l.type,bZ(l.defaultValue)),l.checked==null&&l.defaultChecked!=null&&(I.defaultChecked=!!l.defaultChecked)}function bB(I,l,c){if(l.hasOwnProperty("value")||l.hasOwnProperty("defaultValue")){var G=l.type;if(!(G!=="submit"&&G!=="reset"||l.value!==void 0&&l.value!==null))return;l=""+I._wrapperState.initialValue,c||l===I.value||(I.value=l),I.defaultValue=l}c=I.name,c!==""&&(I.name=""),I.defaultChecked=!!I._wrapperState.initialChecked,c!==""&&(I.name=c)}function tQ(I,l,c){(l!=="number"||bV(I.ownerDocument)!==I)&&(c==null?I.defaultValue=""+I._wrapperState.initialValue:I.defaultValue!==""+c&&(I.defaultValue=""+c))}var Bs=Array.isArray;function om(I,l,c,G){if(I=I.options,l){l={};for(var e=0;e"+l.valueOf().toString()+"",l=eo.firstChild;I.firstChild;)I.removeChild(I.firstChild);for(;l.firstChild;)I.appendChild(l.firstChild)}});function Qu(I,l){if(l){var c=I.firstChild;if(c&&c===I.lastChild&&c.nodeType===3){c.nodeValue=l;return}}I.textContent=l}var Os={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},btI=["Webkit","ms","Moz","O"];Object.keys(Os).forEach(function(I){btI.forEach(function(l){l=l+I.charAt(0).toUpperCase()+I.substring(1),Os[l]=Os[I]})});function mK(I,l,c){return l==null||typeof l=="boolean"||l===""?"":c||typeof l!="number"||l===0||Os.hasOwnProperty(I)&&Os[I]?(""+l).trim():l+"px"}function sK(I,l){I=I.style;for(var c in l)if(l.hasOwnProperty(c)){var G=c.indexOf("--")===0,e=mK(c,l[c],G);c==="float"&&(c="cssFloat"),G?I.setProperty(c,e):I[c]=e}}var atI=pG({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function aQ(I,l){if(l){if(atI[I]&&(l.children!=null||l.dangerouslySetInnerHTML!=null))throw Error(jI(137,I));if(l.dangerouslySetInnerHTML!=null){if(l.children!=null)throw Error(jI(60));if(typeof l.dangerouslySetInnerHTML!="object"||!("__html"in l.dangerouslySetInnerHTML))throw Error(jI(61))}if(l.style!=null&&typeof l.style!="object")throw Error(jI(62))}}function ZQ(I,l){if(I.indexOf("-")===-1)return typeof l.is=="string";switch(I){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var WQ=null;function iv(I){return I=I.target||I.srcElement||window,I.correspondingUseElement&&(I=I.correspondingUseElement),I.nodeType===3?I.parentNode:I}var rQ=null,Vm=null,im=null;function WB(I){if(I=Rh(I)){if(typeof rQ!="function")throw Error(jI(280));var l=I.stateNode;l&&(l=aF(l),rQ(I.stateNode,I.type,l))}}function uK(I){Vm?im?im.push(I):im=[I]:Vm=I}function hK(){if(Vm){var I=Vm,l=im;if(im=Vm=null,WB(I),l)for(I=0;I>>=0,I===0?32:31-(itI(I)/FtI|0)|0}var to=64,no=4194304;function ks(I){switch(I&-I){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return I&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return I&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return I}}function rV(I,l){var c=I.pendingLanes;if(c===0)return 0;var G=0,e=I.suspendedLanes,d=I.pingedLanes,t=c&268435455;if(t!==0){var n=t&~e;n!==0?G=ks(n):(d&=t,d!==0&&(G=ks(d)))}else t=c&~e,t!==0?G=ks(t):d!==0&&(G=ks(d));if(G===0)return 0;if(l!==0&&l!==G&&!(l&e)&&(e=G&-G,d=l&-l,e>=d||e===16&&(d&4194240)!==0))return l;if(G&4&&(G|=c&16),l=I.entangledLanes,l!==0)for(I=I.entanglements,l&=G;0c;c++)l.push(I);return l}function Fh(I,l,c){I.pendingLanes|=l,l!==536870912&&(I.suspendedLanes=0,I.pingedLanes=0),I=I.eventTimes,l=31-Wn(l),I[l]=c}function XtI(I,l){var c=I.pendingLanes&~l;I.pendingLanes=l,I.suspendedLanes=0,I.pingedLanes=0,I.expiredLanes&=l,I.mutableReadLanes&=l,I.entangledLanes&=l,l=I.entanglements;var G=I.eventTimes;for(I=I.expirationTimes;0=_s),iB=String.fromCharCode(32),FB=!1;function kK(I,l){switch(I){case"keyup":return $tI.indexOf(l.keyCode)!==-1;case"keydown":return l.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function xK(I){return I=I.detail,typeof I=="object"&&"data"in I?I.data:null}var $r=!1;function lnI(I,l){switch(I){case"compositionend":return xK(l);case"keypress":return l.which!==32?null:(FB=!0,iB);case"textInput":return I=l.data,I===iB&&FB?null:I;default:return null}}function cnI(I,l){if($r)return I==="compositionend"||!wv&&kK(I,l)?(I=JK(),w2=Xv=ka=null,$r=!1,I):null;switch(I){case"paste":return null;case"keypress":if(!(l.ctrlKey||l.altKey||l.metaKey)||l.ctrlKey&&l.altKey){if(l.char&&1=l)return{node:c,offset:l-I};I=G}I:{for(;c;){if(c.nextSibling){c=c.nextSibling;break I}c=c.parentNode}c=void 0}c=XB(c)}}function MK(I,l){return I&&l?I===l?!0:I&&I.nodeType===3?!1:l&&l.nodeType===3?MK(I,l.parentNode):"contains"in I?I.contains(l):I.compareDocumentPosition?!!(I.compareDocumentPosition(l)&16):!1:!1}function fK(){for(var I=window,l=bV();l instanceof I.HTMLIFrameElement;){try{var c=typeof l.contentWindow.location.href=="string"}catch{c=!1}if(c)I=l.contentWindow;else break;l=bV(I.document)}return l}function Ev(I){var l=I&&I.nodeName&&I.nodeName.toLowerCase();return l&&(l==="input"&&(I.type==="text"||I.type==="search"||I.type==="tel"||I.type==="url"||I.type==="password")||l==="textarea"||I.contentEditable==="true")}function WnI(I){var l=fK(),c=I.focusedElem,G=I.selectionRange;if(l!==c&&c&&c.ownerDocument&&MK(c.ownerDocument.documentElement,c)){if(G!==null&&Ev(c)){if(l=G.start,I=G.end,I===void 0&&(I=l),"selectionStart"in c)c.selectionStart=l,c.selectionEnd=Math.min(I,c.value.length);else if(I=(l=c.ownerDocument||document)&&l.defaultView||window,I.getSelection){I=I.getSelection();var e=c.textContent.length,d=Math.min(G.start,e);G=G.end===void 0?d:Math.min(G.end,e),!I.extend&&d>G&&(e=G,G=d,d=e),e=HB(c,d);var t=HB(c,G);e&&t&&(I.rangeCount!==1||I.anchorNode!==e.node||I.anchorOffset!==e.offset||I.focusNode!==t.node||I.focusOffset!==t.offset)&&(l=l.createRange(),l.setStart(e.node,e.offset),I.removeAllRanges(),d>G?(I.addRange(l),I.extend(t.node,t.offset)):(l.setEnd(t.node,t.offset),I.addRange(l)))}}for(l=[],I=c;I=I.parentNode;)I.nodeType===1&&l.push({element:I,left:I.scrollLeft,top:I.scrollTop});for(typeof c.focus=="function"&&c.focus(),c=0;c=document.documentMode,Im=null,oQ=null,$s=null,VQ=!1;function QB(I,l,c){var G=c.window===c?c.document:c.nodeType===9?c:c.ownerDocument;VQ||Im==null||Im!==bV(G)||(G=Im,"selectionStart"in G&&Ev(G)?G={start:G.selectionStart,end:G.selectionEnd}:(G=(G.ownerDocument&&G.ownerDocument.defaultView||window).getSelection(),G={anchorNode:G.anchorNode,anchorOffset:G.anchorOffset,focusNode:G.focusNode,focusOffset:G.focusOffset}),$s&&yu($s,G)||($s=G,G=uV(oQ,"onSelect"),0Gm||(I.current=XQ[Gm],XQ[Gm]=null,Gm--)}function Pc(I,l){Gm++,XQ[Gm]=I.current,I.current=l}var aZ={},Je=FZ(aZ),Vd=FZ(!1),kW=aZ;function Um(I,l){var c=I.type.contextTypes;if(!c)return aZ;var G=I.stateNode;if(G&&G.__reactInternalMemoizedUnmaskedChildContext===l)return G.__reactInternalMemoizedMaskedChildContext;var e={},d;for(d in c)e[d]=l[d];return G&&(I=I.stateNode,I.__reactInternalMemoizedUnmaskedChildContext=l,I.__reactInternalMemoizedMaskedChildContext=e),e}function id(I){return I=I.childContextTypes,I!=null}function pV(){eG(Vd),eG(Je)}function JB(I,l,c){if(Je.current!==aZ)throw Error(jI(168));Pc(Je,l),Pc(Vd,c)}function _K(I,l,c){var G=I.stateNode;if(l=l.childContextTypes,typeof G.getChildContext!="function")return c;G=G.getChildContext();for(var e in G)if(!(e in l))throw Error(jI(108,ttI(I)||"Unknown",e));return pG({},c,G)}function oV(I){return I=(I=I.stateNode)&&I.__reactInternalMemoizedMergedChildContext||aZ,kW=Je.current,Pc(Je,I),Pc(Vd,Vd.current),!0}function BB(I,l,c){var G=I.stateNode;if(!G)throw Error(jI(169));c?(I=_K(I,l,kW),G.__reactInternalMemoizedMergedChildContext=I,eG(Vd),eG(Je),Pc(Je,I)):eG(Vd),Pc(Vd,c)}var Bb=null,ZF=!1,tY=!1;function qK(I){Bb===null?Bb=[I]:Bb.push(I)}function RnI(I){ZF=!0,qK(I)}function NZ(){if(!tY&&Bb!==null){tY=!0;var I=0,l=kc;try{var c=Bb;for(kc=1;I>=t,e-=t,zb=1<<32-Wn(l)+e|c<C?(k=B,B=null):k=B.sibling;var N=m(o,B,X[C],H);if(N===null){B===null&&(B=k);break}I&&B&&N.alternate===null&&l(o,B),F=d(N,F,C),R===null?Y=N:R.sibling=N,R=N,B=k}if(C===X.length)return c(o,B),bG&&OZ(o,C),Y;if(B===null){for(;CC?(k=B,B=null):k=B.sibling;var J=m(o,B,N.value,H);if(J===null){B===null&&(B=k);break}I&&B&&J.alternate===null&&l(o,B),F=d(J,F,C),R===null?Y=J:R.sibling=J,R=J,B=k}if(N.done)return c(o,B),bG&&OZ(o,C),Y;if(B===null){for(;!N.done;C++,N=X.next())N=W(o,N.value,H),N!==null&&(F=d(N,F,C),R===null?Y=N:R.sibling=N,R=N);return bG&&OZ(o,C),Y}for(B=G(o,B);!N.done;C++,N=X.next())N=s(B,o,C,N.value,H),N!==null&&(I&&N.alternate!==null&&B.delete(N.key===null?C:N.key),F=d(N,F,C),R===null?Y=N:R.sibling=N,R=N);return I&&B.forEach(function(A){return l(o,A)}),bG&&OZ(o,C),Y}function V(o,F,X,H){if(typeof X=="object"&&X!==null&&X.type===qr&&X.key===null&&(X=X.props.children),typeof X=="object"&&X!==null){switch(X.$$typeof){case co:I:{for(var Y=X.key,R=F;R!==null;){if(R.key===Y){if(Y=X.type,Y===qr){if(R.tag===7){c(o,R.sibling),F=e(R,X.props.children),F.return=o,o=F;break I}}else if(R.elementType===Y||typeof Y=="object"&&Y!==null&&Y.$$typeof===Xa&&fB(Y)===R.type){c(o,R.sibling),F=e(R,X.props),F.ref=ts(o,R,X),F.return=o,o=F;break I}c(o,R);break}else l(o,R);R=R.sibling}X.type===qr?(F=iW(X.props.children,o.mode,H,X.key),F.return=o,o=F):(H=k2(X.type,X.key,X.props,null,o.mode,H),H.ref=ts(o,F,X),H.return=o,o=H)}return t(o);case _r:I:{for(R=X.key;F!==null;){if(F.key===R)if(F.tag===4&&F.stateNode.containerInfo===X.containerInfo&&F.stateNode.implementation===X.implementation){c(o,F.sibling),F=e(F,X.children||[]),F.return=o,o=F;break I}else{c(o,F);break}else l(o,F);F=F.sibling}F=sY(X,o.mode,H),F.return=o,o=F}return t(o);case Xa:return R=X._init,V(o,F,R(X._payload),H)}if(Bs(X))return h(o,F,X,H);if(ls(X))return p(o,F,X,H);so(o,X)}return typeof X=="string"&&X!==""||typeof X=="number"?(X=""+X,F!==null&&F.tag===6?(c(o,F.sibling),F=e(F,X),F.return=o,o=F):(c(o,F),F=mY(X,o.mode,H),F.return=o,o=F),t(o)):c(o,F)}return V}var Mm=tL(!0),nL=tL(!1),Yh={},Pn=FZ(Yh),xu=FZ(Yh),zu=FZ(Yh);function bW(I){if(I===Yh)throw Error(jI(174));return I}function zv(I,l){switch(Pc(zu,l),Pc(xu,I),Pc(Pn,Yh),I=l.nodeType,I){case 9:case 11:l=(l=l.documentElement)?l.namespaceURI:bQ(null,"");break;default:I=I===8?l.parentNode:l,l=I.namespaceURI||null,I=I.tagName,l=bQ(l,I)}eG(Pn),Pc(Pn,l)}function fm(){eG(Pn),eG(xu),eG(zu)}function bL(I){bW(zu.current);var l=bW(Pn.current),c=bQ(l,I.type);l!==c&&(Pc(xu,I),Pc(Pn,c))}function Uv(I){xu.current===I&&(eG(Pn),eG(xu))}var rG=FZ(0);function YV(I){for(var l=I;l!==null;){if(l.tag===13){var c=l.memoizedState;if(c!==null&&(c=c.dehydrated,c===null||c.data==="$?"||c.data==="$!"))return l}else if(l.tag===19&&l.memoizedProps.revealOrder!==void 0){if(l.flags&128)return l}else if(l.child!==null){l.child.return=l,l=l.child;continue}if(l===I)break;for(;l.sibling===null;){if(l.return===null||l.return===I)return null;l=l.return}l.sibling.return=l.return,l=l.sibling}return null}var nY=[];function Cv(){for(var I=0;Ic?c:4,I(!0);var G=bY.transition;bY.transition={};try{I(!1),l()}finally{kc=c,bY.transition=G}}function YL(){return Bt().memoizedState}function QnI(I,l,c){var G=_a(I);if(c={lane:G,action:c,hasEagerState:!1,eagerState:null,next:null},XL(I))HL(l,c);else if(c=cL(I,l,c,G),c!==null){var e=_e();rn(c,I,G,e),QL(c,l,G)}}function wnI(I,l,c){var G=_a(I),e={lane:G,action:c,hasEagerState:!1,eagerState:null,next:null};if(XL(I))HL(l,e);else{var d=I.alternate;if(I.lanes===0&&(d===null||d.lanes===0)&&(d=l.lastRenderedReducer,d!==null))try{var t=l.lastRenderedState,n=d(t,c);if(e.hasEagerState=!0,e.eagerState=n,un(n,t)){var b=l.interleaved;b===null?(e.next=e,kv(l)):(e.next=b.next,b.next=e),l.interleaved=e;return}}catch{}finally{}c=cL(I,l,e,G),c!==null&&(e=_e(),rn(c,I,G,e),QL(c,l,G))}}function XL(I){var l=I.alternate;return I===hG||l!==null&&l===hG}function HL(I,l){Iu=XV=!0;var c=I.pending;c===null?l.next=l:(l.next=c.next,c.next=l),I.pending=l}function QL(I,l,c){if(c&4194240){var G=l.lanes;G&=I.pendingLanes,c|=G,l.lanes=c,Nv(I,c)}}var HV={readContext:Jt,useCallback:we,useContext:we,useEffect:we,useImperativeHandle:we,useInsertionEffect:we,useLayoutEffect:we,useMemo:we,useReducer:we,useRef:we,useState:we,useDebugValue:we,useDeferredValue:we,useTransition:we,useMutableSource:we,useSyncExternalStore:we,useId:we,unstable_isNewReconciler:!1},EnI={readContext:Jt,useCallback:function(I,l){return gn().memoizedState=[I,l===void 0?null:l],I},useContext:Jt,useEffect:LB,useImperativeHandle:function(I,l,c){return c=c!=null?c.concat([I]):null,A2(4194308,4,VL.bind(null,l,I),c)},useLayoutEffect:function(I,l){return A2(4194308,4,I,l)},useInsertionEffect:function(I,l){return A2(4,2,I,l)},useMemo:function(I,l){var c=gn();return l=l===void 0?null:l,I=I(),c.memoizedState=[I,l],I},useReducer:function(I,l,c){var G=gn();return l=c!==void 0?c(l):l,G.memoizedState=G.baseState=l,I={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:I,lastRenderedState:l},G.queue=I,I=I.dispatch=QnI.bind(null,hG,I),[G.memoizedState,I]},useRef:function(I){var l=gn();return I={current:I},l.memoizedState=I},useState:KB,useDebugValue:Sv,useDeferredValue:function(I){return gn().memoizedState=I},useTransition:function(){var I=KB(!1),l=I[0];return I=HnI.bind(null,I[1]),gn().memoizedState=I,[l,I]},useMutableSource:function(){},useSyncExternalStore:function(I,l,c){var G=hG,e=gn();if(bG){if(c===void 0)throw Error(jI(407));c=c()}else{if(c=l(),ce===null)throw Error(jI(349));zW&30||WL(G,l,c)}e.memoizedState=c;var d={value:c,getSnapshot:l};return e.queue=d,LB(mL.bind(null,G,d,I),[I]),G.flags|=2048,Mu(9,rL.bind(null,G,d,c,l),void 0,null),c},useId:function(){var I=gn(),l=ce.identifierPrefix;if(bG){var c=Ub,G=zb;c=(G&~(1<<32-Wn(G)-1)).toString(32)+c,l=":"+l+"R"+c,c=Uu++,0<\/script>",I=I.removeChild(I.firstChild)):typeof G.is=="string"?I=t.createElement(c,{is:G.is}):(I=t.createElement(c),c==="select"&&(t=I,G.multiple?t.multiple=!0:G.size&&(t.size=G.size))):I=t.createElementNS(I,c),I[zn]=l,I[ku]=G,kL(I,l,!1,!1),l.stateNode=I;I:{switch(t=ZQ(c,G),c){case"dialog":IG("cancel",I),IG("close",I),e=G;break;case"iframe":case"object":case"embed":IG("load",I),e=G;break;case"video":case"audio":for(e=0;eLm&&(l.flags|=128,G=!0,ns(d,!1),l.lanes=4194304)}else{if(!G)if(I=YV(t),I!==null){if(l.flags|=128,G=!0,c=I.updateQueue,c!==null&&(l.updateQueue=c,l.flags|=4),ns(d,!0),d.tail===null&&d.tailMode==="hidden"&&!t.alternate&&!bG)return Ee(l),null}else 2*EG()-d.renderingStartTime>Lm&&c!==1073741824&&(l.flags|=128,G=!0,ns(d,!1),l.lanes=4194304);d.isBackwards?(t.sibling=l.child,l.child=t):(c=d.last,c!==null?c.sibling=t:l.child=t,d.last=t)}return d.tail!==null?(l=d.tail,d.rendering=l,d.tail=l.sibling,d.renderingStartTime=EG(),l.sibling=null,c=rG.current,Pc(rG,G?c&1|2:c&1),l):(Ee(l),null);case 22:case 23:return _v(),G=l.memoizedState!==null,I!==null&&I.memoizedState!==null!==G&&(l.flags|=8192),G&&l.mode&1?Ud&1073741824&&(Ee(l),l.subtreeFlags&6&&(l.flags|=8192)):Ee(l),null;case 24:return null;case 25:return null}throw Error(jI(156,l.tag))}function xnI(I,l){switch(gv(l),l.tag){case 1:return id(l.type)&&pV(),I=l.flags,I&65536?(l.flags=I&-65537|128,l):null;case 3:return fm(),eG(Vd),eG(Je),Cv(),I=l.flags,I&65536&&!(I&128)?(l.flags=I&-65537|128,l):null;case 5:return Uv(l),null;case 13:if(eG(rG),I=l.memoizedState,I!==null&&I.dehydrated!==null){if(l.alternate===null)throw Error(jI(340));Cm()}return I=l.flags,I&65536?(l.flags=I&-65537|128,l):null;case 19:return eG(rG),null;case 4:return fm(),null;case 10:return Bv(l.type._context),null;case 22:case 23:return _v(),null;case 24:return null;default:return null}}var ho=!1,ye=!1,znI=typeof WeakSet=="function"?WeakSet:Set,Nl=null;function nm(I,l){var c=I.ref;if(c!==null)if(typeof c=="function")try{c(null)}catch(G){FG(I,l,G)}else c.current=null}function xQ(I,l,c){try{c()}catch(G){FG(I,l,G)}}var $B=!1;function UnI(I,l){if(iQ=mV,I=fK(),Ev(I)){if("selectionStart"in I)var c={start:I.selectionStart,end:I.selectionEnd};else I:{c=(c=I.ownerDocument)&&c.defaultView||window;var G=c.getSelection&&c.getSelection();if(G&&G.rangeCount!==0){c=G.anchorNode;var e=G.anchorOffset,d=G.focusNode;G=G.focusOffset;try{c.nodeType,d.nodeType}catch{c=null;break I}var t=0,n=-1,b=-1,a=0,Z=0,W=I,m=null;l:for(;;){for(var s;W!==c||e!==0&&W.nodeType!==3||(n=t+e),W!==d||G!==0&&W.nodeType!==3||(b=t+G),W.nodeType===3&&(t+=W.nodeValue.length),(s=W.firstChild)!==null;)m=W,W=s;for(;;){if(W===I)break l;if(m===c&&++a===e&&(n=t),m===d&&++Z===G&&(b=t),(s=W.nextSibling)!==null)break;W=m,m=W.parentNode}W=s}c=n===-1||b===-1?null:{start:n,end:b}}else c=null}c=c||{start:0,end:0}}else c=null;for(FQ={focusedElem:I,selectionRange:c},mV=!1,Nl=l;Nl!==null;)if(l=Nl,I=l.child,(l.subtreeFlags&1028)!==0&&I!==null)I.return=l,Nl=I;else for(;Nl!==null;){l=Nl;try{var h=l.alternate;if(l.flags&1024)switch(l.tag){case 0:case 11:case 15:break;case 1:if(h!==null){var p=h.memoizedProps,V=h.memoizedState,o=l.stateNode,F=o.getSnapshotBeforeUpdate(l.elementType===l.type?p:In(l.type,p),V);o.__reactInternalSnapshotBeforeUpdate=F}break;case 3:var X=l.stateNode.containerInfo;X.nodeType===1?X.textContent="":X.nodeType===9&&X.documentElement&&X.removeChild(X.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(jI(163))}}catch(H){FG(l,l.return,H)}if(I=l.sibling,I!==null){I.return=l.return,Nl=I;break}Nl=l.return}return h=$B,$B=!1,h}function lu(I,l,c){var G=l.updateQueue;if(G=G!==null?G.lastEffect:null,G!==null){var e=G=G.next;do{if((e.tag&I)===I){var d=e.destroy;e.destroy=void 0,d!==void 0&&xQ(l,c,d)}e=e.next}while(e!==G)}}function mF(I,l){if(l=l.updateQueue,l=l!==null?l.lastEffect:null,l!==null){var c=l=l.next;do{if((c.tag&I)===I){var G=c.create;c.destroy=G()}c=c.next}while(c!==l)}}function zQ(I){var l=I.ref;if(l!==null){var c=I.stateNode;switch(I.tag){case 5:I=c;break;default:I=c}typeof l=="function"?l(I):l.current=I}}function UL(I){var l=I.alternate;l!==null&&(I.alternate=null,UL(l)),I.child=null,I.deletions=null,I.sibling=null,I.tag===5&&(l=I.stateNode,l!==null&&(delete l[zn],delete l[ku],delete l[YQ],delete l[FnI],delete l[NnI])),I.stateNode=null,I.return=null,I.dependencies=null,I.memoizedProps=null,I.memoizedState=null,I.pendingProps=null,I.stateNode=null,I.updateQueue=null}function CL(I){return I.tag===5||I.tag===3||I.tag===4}function I9(I){I:for(;;){for(;I.sibling===null;){if(I.return===null||CL(I.return))return null;I=I.return}for(I.sibling.return=I.return,I=I.sibling;I.tag!==5&&I.tag!==6&&I.tag!==18;){if(I.flags&2||I.child===null||I.tag===4)continue I;I.child.return=I,I=I.child}if(!(I.flags&2))return I.stateNode}}function UQ(I,l,c){var G=I.tag;if(G===5||G===6)I=I.stateNode,l?c.nodeType===8?c.parentNode.insertBefore(I,l):c.insertBefore(I,l):(c.nodeType===8?(l=c.parentNode,l.insertBefore(I,c)):(l=c,l.appendChild(I)),c=c._reactRootContainer,c!=null||l.onclick!==null||(l.onclick=hV));else if(G!==4&&(I=I.child,I!==null))for(UQ(I,l,c),I=I.sibling;I!==null;)UQ(I,l,c),I=I.sibling}function CQ(I,l,c){var G=I.tag;if(G===5||G===6)I=I.stateNode,l?c.insertBefore(I,l):c.appendChild(I);else if(G!==4&&(I=I.child,I!==null))for(CQ(I,l,c),I=I.sibling;I!==null;)CQ(I,l,c),I=I.sibling}var se=null,ln=!1;function oa(I,l,c){for(c=c.child;c!==null;)ML(I,l,c),c=c.sibling}function ML(I,l,c){if(On&&typeof On.onCommitFiberUnmount=="function")try{On.onCommitFiberUnmount(dF,c)}catch{}switch(c.tag){case 5:ye||nm(c,l);case 6:var G=se,e=ln;se=null,oa(I,l,c),se=G,ln=e,se!==null&&(ln?(I=se,c=c.stateNode,I.nodeType===8?I.parentNode.removeChild(c):I.removeChild(c)):se.removeChild(c.stateNode));break;case 18:se!==null&&(ln?(I=se,c=c.stateNode,I.nodeType===8?dY(I.parentNode,c):I.nodeType===1&&dY(I,c),gu(I)):dY(se,c.stateNode));break;case 4:G=se,e=ln,se=c.stateNode.containerInfo,ln=!0,oa(I,l,c),se=G,ln=e;break;case 0:case 11:case 14:case 15:if(!ye&&(G=c.updateQueue,G!==null&&(G=G.lastEffect,G!==null))){e=G=G.next;do{var d=e,t=d.destroy;d=d.tag,t!==void 0&&(d&2||d&4)&&xQ(c,l,t),e=e.next}while(e!==G)}oa(I,l,c);break;case 1:if(!ye&&(nm(c,l),G=c.stateNode,typeof G.componentWillUnmount=="function"))try{G.props=c.memoizedProps,G.state=c.memoizedState,G.componentWillUnmount()}catch(n){FG(c,l,n)}oa(I,l,c);break;case 21:oa(I,l,c);break;case 22:c.mode&1?(ye=(G=ye)||c.memoizedState!==null,oa(I,l,c),ye=G):oa(I,l,c);break;default:oa(I,l,c)}}function l9(I){var l=I.updateQueue;if(l!==null){I.updateQueue=null;var c=I.stateNode;c===null&&(c=I.stateNode=new znI),l.forEach(function(G){var e=DnI.bind(null,I,G);c.has(G)||(c.add(G),G.then(e,e))})}}function _t(I,l){var c=l.deletions;if(c!==null)for(var G=0;Ge&&(e=t),G&=~d}if(G=e,G=EG()-G,G=(120>G?120:480>G?480:1080>G?1080:1920>G?1920:3e3>G?3e3:4320>G?4320:1960*MnI(G/1960))-G,10I?16:I,xa===null)var G=!1;else{if(I=xa,xa=null,EV=0,Hc&6)throw Error(jI(331));var e=Hc;for(Hc|=4,Nl=I.current;Nl!==null;){var d=Nl,t=d.child;if(Nl.flags&16){var n=d.deletions;if(n!==null){for(var b=0;bEG()-Ov?VW(I,0):Dv|=c),Fd(I,l)}function OL(I,l){l===0&&(I.mode&1?(l=no,no<<=1,!(no&130023424)&&(no=4194304)):l=1);var c=_e();I=Db(I,l),I!==null&&(Fh(I,l,c),Fd(I,c))}function jnI(I){var l=I.memoizedState,c=0;l!==null&&(c=l.retryLane),OL(I,c)}function DnI(I,l){var c=0;switch(I.tag){case 13:var G=I.stateNode,e=I.memoizedState;e!==null&&(c=e.retryLane);break;case 19:G=I.stateNode;break;default:throw Error(jI(314))}G!==null&&G.delete(l),OL(I,c)}var PL;PL=function(I,l,c){if(I!==null)if(I.memoizedProps!==l.pendingProps||Vd.current)ud=!0;else{if(!(I.lanes&c)&&!(l.flags&128))return ud=!1,BnI(I,l,c);ud=!!(I.flags&131072)}else ud=!1,bG&&l.flags&1048576&&$K(l,iV,l.index);switch(l.lanes=0,l.tag){case 2:var G=l.type;y2(I,l),I=l.pendingProps;var e=Um(l,Je.current);Nm(l,c),e=fv(null,l,G,I,e,c);var d=Kv();return l.flags|=1,typeof e=="object"&&e!==null&&typeof e.render=="function"&&e.$$typeof===void 0?(l.tag=1,l.memoizedState=null,l.updateQueue=null,id(G)?(d=!0,oV(l)):d=!1,l.memoizedState=e.state!==null&&e.state!==void 0?e.state:null,xv(l),e.updater=WF,l.stateNode=e,e._reactInternals=l,vQ(l,G,I,c),l=yQ(null,l,G,!0,d,c)):(l.tag=0,bG&&d&&vv(l),Le(null,l,e,c),l=l.child),l;case 16:G=l.elementType;I:{switch(y2(I,l),I=l.pendingProps,e=G._init,G=e(G._payload),l.type=G,e=l.tag=PnI(G),I=In(G,I),e){case 0:l=AQ(null,l,G,I,c);break I;case 1:l=PB(null,l,G,I,c);break I;case 11:l=DB(null,l,G,I,c);break I;case 14:l=OB(null,l,G,In(G.type,I),c);break I}throw Error(jI(306,G,""))}return l;case 0:return G=l.type,e=l.pendingProps,e=l.elementType===G?e:In(G,e),AQ(I,l,G,e,c);case 1:return G=l.type,e=l.pendingProps,e=l.elementType===G?e:In(G,e),PB(I,l,G,e,c);case 3:I:{if(yL(l),I===null)throw Error(jI(387));G=l.pendingProps,d=l.memoizedState,e=d.element,GL(I,l),RV(l,G,null,c);var t=l.memoizedState;if(G=t.element,d.isDehydrated)if(d={element:G,isDehydrated:!1,cache:t.cache,pendingSuspenseBoundaries:t.pendingSuspenseBoundaries,transitions:t.transitions},l.updateQueue.baseState=d,l.memoizedState=d,l.flags&256){e=Km(Error(jI(423)),l),l=_B(I,l,G,c,e);break I}else if(G!==e){e=Km(Error(jI(424)),l),l=_B(I,l,G,c,e);break I}else for(Ld=Da(l.stateNode.containerInfo.firstChild),jd=l,bG=!0,en=null,c=nL(l,null,G,c),l.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{if(Cm(),G===e){l=Ob(I,l,c);break I}Le(I,l,G,c)}l=l.child}return l;case 5:return bL(l),I===null&&QQ(l),G=l.type,e=l.pendingProps,d=I!==null?I.memoizedProps:null,t=e.children,NQ(G,e)?t=null:d!==null&&NQ(G,d)&&(l.flags|=32),AL(I,l),Le(I,l,t,c),l.child;case 6:return I===null&&QQ(l),null;case 13:return JL(I,l,c);case 4:return zv(l,l.stateNode.containerInfo),G=l.pendingProps,I===null?l.child=Mm(l,null,G,c):Le(I,l,G,c),l.child;case 11:return G=l.type,e=l.pendingProps,e=l.elementType===G?e:In(G,e),DB(I,l,G,e,c);case 7:return Le(I,l,l.pendingProps,c),l.child;case 8:return Le(I,l,l.pendingProps.children,c),l.child;case 12:return Le(I,l,l.pendingProps.children,c),l.child;case 10:I:{if(G=l.type._context,e=l.pendingProps,d=l.memoizedProps,t=e.value,Pc(FV,G._currentValue),G._currentValue=t,d!==null)if(un(d.value,t)){if(d.children===e.children&&!Vd.current){l=Ob(I,l,c);break I}}else for(d=l.child,d!==null&&(d.return=l);d!==null;){var n=d.dependencies;if(n!==null){t=d.child;for(var b=n.firstContext;b!==null;){if(b.context===G){if(d.tag===1){b=Mb(-1,c&-c),b.tag=2;var a=d.updateQueue;if(a!==null){a=a.shared;var Z=a.pending;Z===null?b.next=b:(b.next=Z.next,Z.next=b),a.pending=b}}d.lanes|=c,b=d.alternate,b!==null&&(b.lanes|=c),wQ(d.return,c,l),n.lanes|=c;break}b=b.next}}else if(d.tag===10)t=d.type===l.type?null:d.child;else if(d.tag===18){if(t=d.return,t===null)throw Error(jI(341));t.lanes|=c,n=t.alternate,n!==null&&(n.lanes|=c),wQ(t,c,l),t=d.sibling}else t=d.child;if(t!==null)t.return=d;else for(t=d;t!==null;){if(t===l){t=null;break}if(d=t.sibling,d!==null){d.return=t.return,t=d;break}t=t.return}d=t}Le(I,l,e.children,c),l=l.child}return l;case 9:return e=l.type,G=l.pendingProps.children,Nm(l,c),e=Jt(e),G=G(e),l.flags|=1,Le(I,l,G,c),l.child;case 14:return G=l.type,e=In(G,l.pendingProps),e=In(G.type,e),OB(I,l,G,e,c);case 15:return vL(I,l,l.type,l.pendingProps,c);case 17:return G=l.type,e=l.pendingProps,e=l.elementType===G?e:In(G,e),y2(I,l),l.tag=1,id(G)?(I=!0,oV(l)):I=!1,Nm(l,c),dL(l,G,e),vQ(l,G,e,c),yQ(null,l,G,!0,I,c);case 19:return BL(I,l,c);case 22:return gL(I,l,c)}throw Error(jI(156,l.tag))};function _L(I,l){return RK(I,l)}function OnI(I,l,c,G){this.tag=I,this.key=c,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=l,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=G,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Qt(I,l,c,G){return new OnI(I,l,c,G)}function $v(I){return I=I.prototype,!(!I||!I.isReactComponent)}function PnI(I){if(typeof I=="function")return $v(I)?1:0;if(I!=null){if(I=I.$$typeof,I===ov)return 11;if(I===Vv)return 14}return 2}function qa(I,l){var c=I.alternate;return c===null?(c=Qt(I.tag,l,I.key,I.mode),c.elementType=I.elementType,c.type=I.type,c.stateNode=I.stateNode,c.alternate=I,I.alternate=c):(c.pendingProps=l,c.type=I.type,c.flags=0,c.subtreeFlags=0,c.deletions=null),c.flags=I.flags&14680064,c.childLanes=I.childLanes,c.lanes=I.lanes,c.child=I.child,c.memoizedProps=I.memoizedProps,c.memoizedState=I.memoizedState,c.updateQueue=I.updateQueue,l=I.dependencies,c.dependencies=l===null?null:{lanes:l.lanes,firstContext:l.firstContext},c.sibling=I.sibling,c.index=I.index,c.ref=I.ref,c}function k2(I,l,c,G,e,d){var t=2;if(G=I,typeof I=="function")$v(I)&&(t=1);else if(typeof I=="string")t=5;else I:switch(I){case qr:return iW(c.children,e,d,l);case pv:t=8,e|=8;break;case IQ:return I=Qt(12,c,l,e|2),I.elementType=IQ,I.lanes=d,I;case lQ:return I=Qt(13,c,l,e),I.elementType=lQ,I.lanes=d,I;case cQ:return I=Qt(19,c,l,e),I.elementType=cQ,I.lanes=d,I;case tK:return uF(c,e,d,l);default:if(typeof I=="object"&&I!==null)switch(I.$$typeof){case eK:t=10;break I;case dK:t=9;break I;case ov:t=11;break I;case Vv:t=14;break I;case Xa:t=16,G=null;break I}throw Error(jI(130,I==null?I:typeof I,""))}return l=Qt(t,c,l,e),l.elementType=I,l.type=G,l.lanes=d,l}function iW(I,l,c,G){return I=Qt(7,I,G,l),I.lanes=c,I}function uF(I,l,c,G){return I=Qt(22,I,G,l),I.elementType=tK,I.lanes=c,I.stateNode={isHidden:!1},I}function mY(I,l,c){return I=Qt(6,I,null,l),I.lanes=c,I}function sY(I,l,c){return l=Qt(4,I.children!==null?I.children:[],I.key,l),l.lanes=c,l.stateNode={containerInfo:I.containerInfo,pendingChildren:null,implementation:I.implementation},l}function _nI(I,l,c,G,e){this.tag=l,this.containerInfo=I,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=DR(0),this.expirationTimes=DR(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=DR(0),this.identifierPrefix=G,this.onRecoverableError=e,this.mutableSourceEagerHydrationData=null}function Ig(I,l,c,G,e,d,t,n,b){return I=new _nI(I,l,c,n,b),l===1?(l=1,d===!0&&(l|=8)):l=0,d=Qt(3,null,null,l),I.current=d,d.stateNode=I,d.memoizedState={element:G,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null},xv(d),I}function qnI(I,l,c){var G=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(lS)}catch(I){console.error(I)}}lS(),$f.exports=lt;var Xh=$f.exports;const fb=Vn(Xh),GbI=Mf({__proto__:null,default:fb},[Xh]);var a9=Xh;qH.createRoot=a9.createRoot,qH.hydrateRoot=a9.hydrateRoot;var cS={exports:{}},GS={};/** + */var $ae=E,eo=_ae;function _e(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),aW=Object.prototype.hasOwnProperty,qae=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,i7={},a7={};function eoe(e){return aW.call(a7,e)?!0:aW.call(i7,e)?!1:qae.test(e)?a7[e]=!0:(i7[e]=!0,!1)}function toe(e,t,n,r){if(n!==null&&n.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return r?!1:n!==null?!n.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function noe(e,t,n,r){if(t===null||typeof t>"u"||toe(e,t,n,r))return!0;if(r)return!1;if(n!==null)switch(n.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function oa(e,t,n,r,i,a,o){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=i,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=a,this.removeEmptyString=o}var Ki={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){Ki[e]=new oa(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];Ki[t]=new oa(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){Ki[e]=new oa(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){Ki[e]=new oa(e,2,!1,e,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){Ki[e]=new oa(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){Ki[e]=new oa(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){Ki[e]=new oa(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){Ki[e]=new oa(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){Ki[e]=new oa(e,5,!1,e.toLowerCase(),null,!1,!1)});var m5=/[\-:]([a-z])/g;function A5(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(m5,A5);Ki[t]=new oa(t,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(m5,A5);Ki[t]=new oa(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(m5,A5);Ki[t]=new oa(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){Ki[e]=new oa(e,1,!1,e.toLowerCase(),null,!1,!1)});Ki.xlinkHref=new oa("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){Ki[e]=new oa(e,1,!1,e.toLowerCase(),null,!0,!0)});function C5(e,t,n,r){var i=Ki.hasOwnProperty(t)?Ki[t]:null;(i!==null?i.type!==0:r||!(2l||i[o]!==a[l]){var s=` +`+i[o].replace(" at new "," at ");return e.displayName&&s.includes("")&&(s=s.replace("",e.displayName)),s}while(1<=o&&0<=l);break}}}finally{Pb=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?eh(e):""}function roe(e){switch(e.tag){case 5:return eh(e.type);case 16:return eh("Lazy");case 13:return eh("Suspense");case 19:return eh("SuspenseList");case 0:case 2:case 15:return e=jb(e.type,!1),e;case 11:return e=jb(e.type.render,!1),e;case 1:return e=jb(e.type,!0),e;default:return""}}function uW(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case gp:return"Fragment";case pp:return"Portal";case oW:return"Profiler";case B5:return"StrictMode";case lW:return"Suspense";case sW:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case cM:return(e.displayName||"Context")+".Consumer";case uM:return(e._context.displayName||"Context")+".Provider";case w5:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case b5:return t=e.displayName||null,t!==null?t:uW(e.type)||"Memo";case Zu:t=e._payload,e=e._init;try{return uW(e(t))}catch{}}return null}function ioe(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return uW(t);case 8:return t===B5?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function vc(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function pM(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function aoe(e){var t=pM(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var i=n.get,a=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return i.call(this)},set:function(o){r=""+o,a.call(this,o)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(o){r=""+o},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function KA(e){e._valueTracker||(e._valueTracker=aoe(e))}function gM(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=pM(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function FC(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function cW(e,t){var n=t.checked;return Kr({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function l7(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=vc(t.value!=null?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function hM(e,t){t=t.checked,t!=null&&C5(e,"checked",t,!1)}function dW(e,t){hM(e,t);var n=vc(t.value),r=t.type;if(n!=null)r==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if(r==="submit"||r==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?pW(e,t.type,n):t.hasOwnProperty("defaultValue")&&pW(e,t.type,vc(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function s7(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!(r!=="submit"&&r!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}n=e.name,n!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,n!==""&&(e.name=n)}function pW(e,t,n){(t!=="number"||FC(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var th=Array.isArray;function Gp(e,t,n,r){if(e=e.options,t){t={};for(var i=0;i"+t.valueOf().toString()+"",t=QA.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function Jh(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var fh={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},ooe=["Webkit","ms","Moz","O"];Object.keys(fh).forEach(function(e){ooe.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),fh[t]=fh[e]})});function CM(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||fh.hasOwnProperty(e)&&fh[e]?(""+t).trim():t+"px"}function BM(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,i=CM(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,i):e[n]=i}}var loe=Kr({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function fW(e,t){if(t){if(loe[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(_e(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(_e(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(_e(61))}if(t.style!=null&&typeof t.style!="object")throw Error(_e(62))}}function mW(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var AW=null;function v5(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var CW=null,kp=null,Dp=null;function d7(e){if(e=Vf(e)){if(typeof CW!="function")throw Error(_e(280));var t=e.stateNode;t&&(t=b4(t),CW(e.stateNode,e.type,t))}}function wM(e){kp?Dp?Dp.push(e):Dp=[e]:kp=e}function bM(){if(kp){var e=kp,t=Dp;if(Dp=kp=null,d7(e),t)for(e=0;e>>=0,e===0?32:31-(Coe(e)/Boe|0)|0}var WA=64,yA=4194304;function nh(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function xC(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,i=e.suspendedLanes,a=e.pingedLanes,o=n&268435455;if(o!==0){var l=o&~i;l!==0?r=nh(l):(a&=o,a!==0&&(r=nh(a)))}else o=n&~i,o!==0?r=nh(o):a!==0&&(r=nh(a));if(r===0)return 0;if(t!==0&&t!==r&&!(t&i)&&(i=r&-r,a=t&-t,i>=a||i===16&&(a&4194240)!==0))return t;if(r&4&&(r|=n&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=r;0n;n++)t.push(e);return t}function Mf(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-fl(t),e[t]=n}function Koe(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0=Ah),w7=String.fromCharCode(32),b7=!1;function TM(e,t){switch(e){case"keyup":return _oe.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function VM(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var hp=!1;function qoe(e,t){switch(e){case"compositionend":return VM(t);case"keypress":return t.which!==32?null:(b7=!0,w7);case"textInput":return e=t.data,e===w7&&b7?null:e;default:return null}}function ele(e,t){if(hp)return e==="compositionend"||!S5&&TM(e,t)?(e=LM(),z2=F5=Ju=null,hp=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=r}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=W7(n)}}function OM(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?OM(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function JM(){for(var e=window,t=FC();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=FC(e.document)}return t}function x5(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}function ule(e){var t=JM(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&OM(n.ownerDocument.documentElement,n)){if(r!==null&&x5(n)){if(t=r.start,e=r.end,e===void 0&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if(e=(t=n.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var i=n.textContent.length,a=Math.min(r.start,i);r=r.end===void 0?a:Math.min(r.end,i),!e.extend&&a>r&&(i=r,r=a,a=i),i=y7(n,a);var o=y7(n,r);i&&o&&(e.rangeCount!==1||e.anchorNode!==i.node||e.anchorOffset!==i.offset||e.focusNode!==o.node||e.focusOffset!==o.offset)&&(t=t.createRange(),t.setStart(i.node,i.offset),e.removeAllRanges(),a>r?(e.addRange(t),e.extend(o.node,o.offset)):(t.setEnd(o.node,o.offset),e.addRange(t)))}}for(t=[],e=n;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof n.focus=="function"&&n.focus(),n=0;n=document.documentMode,fp=null,QW=null,Bh=null,WW=!1;function F7(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;WW||fp==null||fp!==FC(r)||(r=fp,"selectionStart"in r&&x5(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),Bh&&qh(Bh,r)||(Bh=r,r=DC(QW,"onSelect"),0Cp||(e.current=xW[Cp],xW[Cp]=null,Cp--)}function er(e,t){Cp++,xW[Cp]=e.current,e.current=t}var Kc={},Ni=Nc(Kc),ba=Nc(!1),U0=Kc;function e1(e,t){var n=e.type.contextTypes;if(!n)return Kc;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var i={},a;for(a in n)i[a]=t[a];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=i),i}function va(e){return e=e.childContextTypes,e!=null}function ZC(){pr(ba),pr(Ni)}function D7(e,t,n){if(Ni.current!==Kc)throw Error(_e(168));er(Ni,t),er(ba,n)}function nT(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var i in r)if(!(i in t))throw Error(_e(108,ioe(e)||"Unknown",i));return Kr({},n,r)}function HC(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Kc,U0=Ni.current,er(Ni,e),er(ba,ba.current),!0}function N7(e,t,n){var r=e.stateNode;if(!r)throw Error(_e(169));n?(e=nT(e,t,U0),r.__reactInternalMemoizedMergedChildContext=e,pr(ba),pr(Ni),er(Ni,e)):pr(ba),er(ba,n)}var Ts=null,v4=!1,cv=!1;function rT(e){Ts===null?Ts=[e]:Ts.push(e)}function ble(e){v4=!0,rT(e)}function Zc(){if(!cv&&Ts!==null){cv=!0;var e=0,t=Mn;try{var n=Ts;for(Mn=1;e>=o,i-=o,Is=1<<32-fl(t)+i|n<X?(H=G,G=null):H=G.sibling;var v=g(C,G,Q[X],F);if(v===null){G===null&&(G=H);break}e&&G&&v.alternate===null&&t(C,G),b=a(v,b,X),y===null?K=v:y.sibling=v,y=v,G=H}if(X===Q.length)return n(C,G),mr&&d0(C,X),K;if(G===null){for(;XX?(H=G,G=null):H=G.sibling;var k=g(C,G,v.value,F);if(k===null){G===null&&(G=H);break}e&&G&&k.alternate===null&&t(C,G),b=a(k,b,X),y===null?K=k:y.sibling=k,y=k,G=H}if(v.done)return n(C,G),mr&&d0(C,X),K;if(G===null){for(;!v.done;X++,v=Q.next())v=d(C,v.value,F),v!==null&&(b=a(v,b,X),y===null?K=v:y.sibling=v,y=v);return mr&&d0(C,X),K}for(G=r(C,G);!v.done;X++,v=Q.next())v=h(G,C,X,v.value,F),v!==null&&(e&&v.alternate!==null&&G.delete(v.key===null?X:v.key),b=a(v,b,X),y===null?K=v:y.sibling=v,y=v);return e&&G.forEach(function(D){return t(C,D)}),mr&&d0(C,X),K}function B(C,b,Q,F){if(typeof Q=="object"&&Q!==null&&Q.type===gp&&Q.key===null&&(Q=Q.props.children),typeof Q=="object"&&Q!==null){switch(Q.$$typeof){case vA:e:{for(var K=Q.key,y=b;y!==null;){if(y.key===K){if(K=Q.type,K===gp){if(y.tag===7){n(C,y.sibling),b=i(y,Q.props.children),b.return=C,C=b;break e}}else if(y.elementType===K||typeof K=="object"&&K!==null&&K.$$typeof===Zu&&X7(K)===y.type){n(C,y.sibling),b=i(y,Q.props),b.ref=yg(C,y,Q),b.return=C,C=b;break e}n(C,y);break}else t(C,y);y=y.sibling}Q.type===gp?(b=k0(Q.props.children,C.mode,F,Q.key),b.return=C,C=b):(F=nC(Q.type,Q.key,Q.props,null,C.mode,F),F.ref=yg(C,b,Q),F.return=C,C=F)}return o(C);case pp:e:{for(y=Q.key;b!==null;){if(b.key===y)if(b.tag===4&&b.stateNode.containerInfo===Q.containerInfo&&b.stateNode.implementation===Q.implementation){n(C,b.sibling),b=i(b,Q.children||[]),b.return=C,C=b;break e}else{n(C,b);break}else t(C,b);b=b.sibling}b=Cv(Q,C.mode,F),b.return=C,C=b}return o(C);case Zu:return y=Q._init,B(C,b,y(Q._payload),F)}if(th(Q))return m(C,b,Q,F);if(bg(Q))return A(C,b,Q,F);kA(C,Q)}return typeof Q=="string"&&Q!==""||typeof Q=="number"?(Q=""+Q,b!==null&&b.tag===6?(n(C,b.sibling),b=i(b,Q),b.return=C,C=b):(n(C,b),b=Av(Q,C.mode,F),b.return=C,C=b),o(C)):n(C,b)}return B}var n1=lT(!0),sT=lT(!1),MC=Nc(null),TC=null,bp=null,N5=null;function Z5(){N5=bp=TC=null}function H5(e){var t=MC.current;pr(MC),e._currentValue=t}function DW(e,t,n){for(;e!==null;){var r=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,r!==null&&(r.childLanes|=t)):r!==null&&(r.childLanes&t)!==t&&(r.childLanes|=t),e===n)break;e=e.return}}function Zp(e,t){TC=e,N5=bp=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&t&&(Ca=!0),e.firstContext=null)}function Mo(e){var t=e._currentValue;if(N5!==e)if(e={context:e,memoizedValue:t,next:null},bp===null){if(TC===null)throw Error(_e(308));bp=e,TC.dependencies={lanes:0,firstContext:e}}else bp=bp.next=e;return t}var v0=null;function X5(e){v0===null?v0=[e]:v0.push(e)}function uT(e,t,n,r){var i=t.interleaved;return i===null?(n.next=n,X5(t)):(n.next=i.next,i.next=n),t.interleaved=n,ru(e,r)}function ru(e,t){e.lanes|=t;var n=e.alternate;for(n!==null&&(n.lanes|=t),n=e,e=e.return;e!==null;)e.childLanes|=t,n=e.alternate,n!==null&&(n.childLanes|=t),n=e,e=e.return;return n.tag===3?n.stateNode:null}var Hu=!1;function L5(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function cT(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function zs(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function lc(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,Wn&2){var i=r.pending;return i===null?t.next=t:(t.next=i.next,i.next=t),r.pending=t,ru(e,n)}return i=r.interleaved,i===null?(t.next=t,X5(r)):(t.next=i.next,i.next=t),r.interleaved=t,ru(e,n)}function j2(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,(n&4194240)!==0)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Q5(e,n)}}function L7(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var i=null,a=null;if(n=n.firstBaseUpdate,n!==null){do{var o={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};a===null?i=a=o:a=a.next=o,n=n.next}while(n!==null);a===null?i=a=t:a=a.next=t}else i=a=t;n={baseState:r.baseState,firstBaseUpdate:i,lastBaseUpdate:a,shared:r.shared,effects:r.effects},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function VC(e,t,n,r){var i=e.updateQueue;Hu=!1;var a=i.firstBaseUpdate,o=i.lastBaseUpdate,l=i.shared.pending;if(l!==null){i.shared.pending=null;var s=l,u=s.next;s.next=null,o===null?a=u:o.next=u,o=s;var c=e.alternate;c!==null&&(c=c.updateQueue,l=c.lastBaseUpdate,l!==o&&(l===null?c.firstBaseUpdate=u:l.next=u,c.lastBaseUpdate=s))}if(a!==null){var d=i.baseState;o=0,c=u=s=null,l=a;do{var g=l.lane,h=l.eventTime;if((r&g)===g){c!==null&&(c=c.next={eventTime:h,lane:0,tag:l.tag,payload:l.payload,callback:l.callback,next:null});e:{var m=e,A=l;switch(g=t,h=n,A.tag){case 1:if(m=A.payload,typeof m=="function"){d=m.call(h,d,g);break e}d=m;break e;case 3:m.flags=m.flags&-65537|128;case 0:if(m=A.payload,g=typeof m=="function"?m.call(h,d,g):m,g==null)break e;d=Kr({},d,g);break e;case 2:Hu=!0}}l.callback!==null&&l.lane!==0&&(e.flags|=64,g=i.effects,g===null?i.effects=[l]:g.push(l))}else h={eventTime:h,lane:g,tag:l.tag,payload:l.payload,callback:l.callback,next:null},c===null?(u=c=h,s=d):c=c.next=h,o|=g;if(l=l.next,l===null){if(l=i.shared.pending,l===null)break;g=l,l=g.next,g.next=null,i.lastBaseUpdate=g,i.shared.pending=null}}while(1);if(c===null&&(s=d),i.baseState=s,i.firstBaseUpdate=u,i.lastBaseUpdate=c,t=i.shared.interleaved,t!==null){i=t;do o|=i.lane,i=i.next;while(i!==t)}else a===null&&(i.shared.lanes=0);z0|=o,e.lanes=o,e.memoizedState=d}}function M7(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;tn?n:4,e(!0);var r=pv.transition;pv.transition={};try{e(!1),t()}finally{Mn=n,pv.transition=r}}function FT(){return To().memoizedState}function Wle(e,t,n){var r=uc(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},ET(e))RT(t,n);else if(n=uT(e,t,n,r),n!==null){var i=ea();ml(n,e,r,i),ST(n,t,r)}}function yle(e,t,n){var r=uc(e),i={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(ET(e))RT(t,i);else{var a=e.alternate;if(e.lanes===0&&(a===null||a.lanes===0)&&(a=t.lastRenderedReducer,a!==null))try{var o=t.lastRenderedState,l=a(o,n);if(i.hasEagerState=!0,i.eagerState=l,bl(l,o)){var s=t.interleaved;s===null?(i.next=i,X5(t)):(i.next=s.next,s.next=i),t.interleaved=i;return}}catch{}finally{}n=uT(e,t,i,r),n!==null&&(i=ea(),ml(n,e,r,i),ST(n,t,r))}}function ET(e){var t=e.alternate;return e===vr||t!==null&&t===vr}function RT(e,t){wh=IC=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function ST(e,t,n){if(n&4194240){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Q5(e,n)}}var UC={readContext:Mo,useCallback:Ei,useContext:Ei,useEffect:Ei,useImperativeHandle:Ei,useInsertionEffect:Ei,useLayoutEffect:Ei,useMemo:Ei,useReducer:Ei,useRef:Ei,useState:Ei,useDebugValue:Ei,useDeferredValue:Ei,useTransition:Ei,useMutableSource:Ei,useSyncExternalStore:Ei,useId:Ei,unstable_isNewReconciler:!1},Fle={readContext:Mo,useCallback:function(e,t){return Zl().memoizedState=[e,t===void 0?null:t],e},useContext:Mo,useEffect:V7,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,$2(4194308,4,vT.bind(null,t,e),n)},useLayoutEffect:function(e,t){return $2(4194308,4,e,t)},useInsertionEffect:function(e,t){return $2(4,2,e,t)},useMemo:function(e,t){var n=Zl();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=Zl();return t=n!==void 0?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=Wle.bind(null,vr,e),[r.memoizedState,e]},useRef:function(e){var t=Zl();return e={current:e},t.memoizedState=e},useState:T7,useDebugValue:J5,useDeferredValue:function(e){return Zl().memoizedState=e},useTransition:function(){var e=T7(!1),t=e[0];return e=Qle.bind(null,e[1]),Zl().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=vr,i=Zl();if(mr){if(n===void 0)throw Error(_e(407));n=n()}else{if(n=t(),oi===null)throw Error(_e(349));J0&30||hT(r,t,n)}i.memoizedState=n;var a={value:n,getSnapshot:t};return i.queue=a,V7(mT.bind(null,r,a,e),[e]),r.flags|=2048,sf(9,fT.bind(null,r,a,n,t),void 0,null),n},useId:function(){var e=Zl(),t=oi.identifierPrefix;if(mr){var n=Us,r=Is;n=(r&~(1<<32-fl(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=of++,0<\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=o.createElement(n,{is:r.is}):(e=o.createElement(n),n==="select"&&(o=e,r.multiple?o.multiple=!0:r.size&&(o.size=r.size))):e=o.createElementNS(e,n),e[Il]=t,e[nf]=r,MT(e,t,!1,!1),t.stateNode=e;e:{switch(o=mW(n,r),n){case"dialog":or("cancel",e),or("close",e),i=r;break;case"iframe":case"object":case"embed":or("load",e),i=r;break;case"video":case"audio":for(i=0;ia1&&(t.flags|=128,r=!0,Fg(a,!1),t.lanes=4194304)}else{if(!r)if(e=YC(o),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),Fg(a,!0),a.tail===null&&a.tailMode==="hidden"&&!o.alternate&&!mr)return Ri(t),null}else 2*Dr()-a.renderingStartTime>a1&&n!==1073741824&&(t.flags|=128,r=!0,Fg(a,!1),t.lanes=4194304);a.isBackwards?(o.sibling=t.child,t.child=o):(n=a.last,n!==null?n.sibling=o:t.child=o,a.last=o)}return a.tail!==null?(t=a.tail,a.rendering=t,a.tail=t.sibling,a.renderingStartTime=Dr(),t.sibling=null,n=wr.current,er(wr,r?n&1|2:n&1),t):(Ri(t),null);case 22:case 23:return q5(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&t.mode&1?Ya&1073741824&&(Ri(t),t.subtreeFlags&6&&(t.flags|=8192)):Ri(t),null;case 24:return null;case 25:return null}throw Error(_e(156,t.tag))}function Nle(e,t){switch(k5(t),t.tag){case 1:return va(t.type)&&ZC(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return r1(),pr(ba),pr(Ni),V5(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return T5(t),null;case 13:if(pr(wr),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(_e(340));t1()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return pr(wr),null;case 4:return r1(),null;case 10:return H5(t.type._context),null;case 22:case 23:return q5(),null;case 24:return null;default:return null}}var NA=!1,Gi=!1,Zle=typeof WeakSet=="function"?WeakSet:Set,Wt=null;function vp(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){yr(e,t,r)}else n.current=null}function YW(e,t,n){try{n()}catch(r){yr(e,t,r)}}var q7=!1;function Hle(e,t){if(yW=GC,e=JM(),x5(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var i=r.anchorOffset,a=r.focusNode;r=r.focusOffset;try{n.nodeType,a.nodeType}catch{n=null;break e}var o=0,l=-1,s=-1,u=0,c=0,d=e,g=null;t:for(;;){for(var h;d!==n||i!==0&&d.nodeType!==3||(l=o+i),d!==a||r!==0&&d.nodeType!==3||(s=o+r),d.nodeType===3&&(o+=d.nodeValue.length),(h=d.firstChild)!==null;)g=d,d=h;for(;;){if(d===e)break t;if(g===n&&++u===i&&(l=o),g===a&&++c===r&&(s=o),(h=d.nextSibling)!==null)break;d=g,g=d.parentNode}d=h}n=l===-1||s===-1?null:{start:l,end:s}}else n=null}n=n||{start:0,end:0}}else n=null;for(FW={focusedElem:e,selectionRange:n},GC=!1,Wt=t;Wt!==null;)if(t=Wt,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,Wt=e;else for(;Wt!==null;){t=Wt;try{var m=t.alternate;if(t.flags&1024)switch(t.tag){case 0:case 11:case 15:break;case 1:if(m!==null){var A=m.memoizedProps,B=m.memoizedState,C=t.stateNode,b=C.getSnapshotBeforeUpdate(t.elementType===t.type?A:il(t.type,A),B);C.__reactInternalSnapshotBeforeUpdate=b}break;case 3:var Q=t.stateNode.containerInfo;Q.nodeType===1?Q.textContent="":Q.nodeType===9&&Q.documentElement&&Q.removeChild(Q.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(_e(163))}}catch(F){yr(t,t.return,F)}if(e=t.sibling,e!==null){e.return=t.return,Wt=e;break}Wt=t.return}return m=q7,q7=!1,m}function bh(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var i=r=r.next;do{if((i.tag&e)===e){var a=i.destroy;i.destroy=void 0,a!==void 0&&YW(t,n,a)}i=i.next}while(i!==r)}}function W4(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function IW(e){var t=e.ref;if(t!==null){var n=e.stateNode;switch(e.tag){case 5:e=n;break;default:e=n}typeof t=="function"?t(e):t.current=e}}function YT(e){var t=e.alternate;t!==null&&(e.alternate=null,YT(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[Il],delete t[nf],delete t[SW],delete t[Ble],delete t[wle])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function IT(e){return e.tag===5||e.tag===3||e.tag===4}function ex(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||IT(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function UW(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.nodeType===8?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(n.nodeType===8?(t=n.parentNode,t.insertBefore(e,n)):(t=n,t.appendChild(e)),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=NC));else if(r!==4&&(e=e.child,e!==null))for(UW(e,t,n),e=e.sibling;e!==null;)UW(e,t,n),e=e.sibling}function OW(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(e=e.child,e!==null))for(OW(e,t,n),e=e.sibling;e!==null;)OW(e,t,n),e=e.sibling}var fi=null,al=!1;function Ru(e,t,n){for(n=n.child;n!==null;)UT(e,t,n),n=n.sibling}function UT(e,t,n){if(ns&&typeof ns.onCommitFiberUnmount=="function")try{ns.onCommitFiberUnmount(A4,n)}catch{}switch(n.tag){case 5:Gi||vp(n,t);case 6:var r=fi,i=al;fi=null,Ru(e,t,n),fi=r,al=i,fi!==null&&(al?(e=fi,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):fi.removeChild(n.stateNode));break;case 18:fi!==null&&(al?(e=fi,n=n.stateNode,e.nodeType===8?uv(e.parentNode,n):e.nodeType===1&&uv(e,n),_h(e)):uv(fi,n.stateNode));break;case 4:r=fi,i=al,fi=n.stateNode.containerInfo,al=!0,Ru(e,t,n),fi=r,al=i;break;case 0:case 11:case 14:case 15:if(!Gi&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){i=r=r.next;do{var a=i,o=a.destroy;a=a.tag,o!==void 0&&(a&2||a&4)&&YW(n,t,o),i=i.next}while(i!==r)}Ru(e,t,n);break;case 1:if(!Gi&&(vp(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(l){yr(n,t,l)}Ru(e,t,n);break;case 21:Ru(e,t,n);break;case 22:n.mode&1?(Gi=(r=Gi)||n.memoizedState!==null,Ru(e,t,n),Gi=r):Ru(e,t,n);break;default:Ru(e,t,n)}}function tx(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new Zle),t.forEach(function(r){var i=Ole.bind(null,e,r);n.has(r)||(n.add(r),r.then(i,i))})}}function nl(e,t){var n=t.deletions;if(n!==null)for(var r=0;ri&&(i=o),r&=~a}if(r=i,r=Dr()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*Lle(r/1960))-r,10e?16:e,zu===null)var r=!1;else{if(e=zu,zu=null,zC=0,Wn&6)throw Error(_e(331));var i=Wn;for(Wn|=4,Wt=e.current;Wt!==null;){var a=Wt,o=a.child;if(Wt.flags&16){var l=a.deletions;if(l!==null){for(var s=0;sDr()-_5?G0(e,0):j5|=n),Ka(e,t)}function qT(e,t){t===0&&(e.mode&1?(t=yA,yA<<=1,!(yA&130023424)&&(yA=4194304)):t=1);var n=ea();e=ru(e,t),e!==null&&(Mf(e,t,n),Ka(e,n))}function Ule(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),qT(e,n)}function Ole(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,i=e.memoizedState;i!==null&&(n=i.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(_e(314))}r!==null&&r.delete(t),qT(e,n)}var eV;eV=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||ba.current)Ca=!0;else{if(!(e.lanes&n)&&!(t.flags&128))return Ca=!1,kle(e,t,n);Ca=!!(e.flags&131072)}else Ca=!1,mr&&t.flags&1048576&&iT(t,LC,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;q2(e,t),e=t.pendingProps;var i=e1(t,Ni.current);Zp(t,n),i=I5(null,t,r,e,i,n);var a=U5();return t.flags|=1,typeof i=="object"&&i!==null&&typeof i.render=="function"&&i.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,va(r)?(a=!0,HC(t)):a=!1,t.memoizedState=i.state!==null&&i.state!==void 0?i.state:null,L5(t),i.updater=Q4,t.stateNode=i,i._reactInternals=t,ZW(t,r,e,n),t=LW(null,t,r,!0,a,n)):(t.tag=0,mr&&a&&G5(t),Ji(null,t,i,n),t=t.child),t;case 16:r=t.elementType;e:{switch(q2(e,t),e=t.pendingProps,i=r._init,r=i(r._payload),t.type=r,i=t.tag=zle(r),e=il(r,e),i){case 0:t=XW(null,t,r,e,n);break e;case 1:t=j7(null,t,r,e,n);break e;case 11:t=z7(null,t,r,e,n);break e;case 14:t=P7(null,t,r,il(r.type,e),n);break e}throw Error(_e(306,r,""))}return t;case 0:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:il(r,i),XW(e,t,r,i,n);case 1:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:il(r,i),j7(e,t,r,i,n);case 3:e:{if(HT(t),e===null)throw Error(_e(387));r=t.pendingProps,a=t.memoizedState,i=a.element,cT(e,t),VC(t,r,null,n);var o=t.memoizedState;if(r=o.element,a.isDehydrated)if(a={element:r,isDehydrated:!1,cache:o.cache,pendingSuspenseBoundaries:o.pendingSuspenseBoundaries,transitions:o.transitions},t.updateQueue.baseState=a,t.memoizedState=a,t.flags&256){i=i1(Error(_e(423)),t),t=_7(e,t,r,n,i);break e}else if(r!==i){i=i1(Error(_e(424)),t),t=_7(e,t,r,n,i);break e}else for(za=oc(t.stateNode.containerInfo.firstChild),_a=t,mr=!0,sl=null,n=sT(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(t1(),r===i){t=iu(e,t,n);break e}Ji(e,t,r,n)}t=t.child}return t;case 5:return dT(t),e===null&&kW(t),r=t.type,i=t.pendingProps,a=e!==null?e.memoizedProps:null,o=i.children,EW(r,i)?o=null:a!==null&&EW(r,a)&&(t.flags|=32),ZT(e,t),Ji(e,t,o,n),t.child;case 6:return e===null&&kW(t),null;case 13:return XT(e,t,n);case 4:return M5(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=n1(t,null,r,n):Ji(e,t,r,n),t.child;case 11:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:il(r,i),z7(e,t,r,i,n);case 7:return Ji(e,t,t.pendingProps,n),t.child;case 8:return Ji(e,t,t.pendingProps.children,n),t.child;case 12:return Ji(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,i=t.pendingProps,a=t.memoizedProps,o=i.value,er(MC,r._currentValue),r._currentValue=o,a!==null)if(bl(a.value,o)){if(a.children===i.children&&!ba.current){t=iu(e,t,n);break e}}else for(a=t.child,a!==null&&(a.return=t);a!==null;){var l=a.dependencies;if(l!==null){o=a.child;for(var s=l.firstContext;s!==null;){if(s.context===r){if(a.tag===1){s=zs(-1,n&-n),s.tag=2;var u=a.updateQueue;if(u!==null){u=u.shared;var c=u.pending;c===null?s.next=s:(s.next=c.next,c.next=s),u.pending=s}}a.lanes|=n,s=a.alternate,s!==null&&(s.lanes|=n),DW(a.return,n,t),l.lanes|=n;break}s=s.next}}else if(a.tag===10)o=a.type===t.type?null:a.child;else if(a.tag===18){if(o=a.return,o===null)throw Error(_e(341));o.lanes|=n,l=o.alternate,l!==null&&(l.lanes|=n),DW(o,n,t),o=a.sibling}else o=a.child;if(o!==null)o.return=a;else for(o=a;o!==null;){if(o===t){o=null;break}if(a=o.sibling,a!==null){a.return=o.return,o=a;break}o=o.return}a=o}Ji(e,t,i.children,n),t=t.child}return t;case 9:return i=t.type,r=t.pendingProps.children,Zp(t,n),i=Mo(i),r=r(i),t.flags|=1,Ji(e,t,r,n),t.child;case 14:return r=t.type,i=il(r,t.pendingProps),i=il(r.type,i),P7(e,t,r,i,n);case 15:return DT(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,i=t.pendingProps,i=t.elementType===r?i:il(r,i),q2(e,t),t.tag=1,va(r)?(e=!0,HC(t)):e=!1,Zp(t,n),xT(t,r,i),ZW(t,r,i,n),LW(null,t,r,!0,e,n);case 19:return LT(e,t,n);case 22:return NT(e,t,n)}throw Error(_e(156,t.tag))};function tV(e,t){return EM(e,t)}function Jle(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function ko(e,t,n,r){return new Jle(e,t,n,r)}function tE(e){return e=e.prototype,!(!e||!e.isReactComponent)}function zle(e){if(typeof e=="function")return tE(e)?1:0;if(e!=null){if(e=e.$$typeof,e===w5)return 11;if(e===b5)return 14}return 2}function cc(e,t){var n=e.alternate;return n===null?(n=ko(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&14680064,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function nC(e,t,n,r,i,a){var o=2;if(r=e,typeof e=="function")tE(e)&&(o=1);else if(typeof e=="string")o=5;else e:switch(e){case gp:return k0(n.children,i,a,t);case B5:o=8,i|=8;break;case oW:return e=ko(12,n,t,i|2),e.elementType=oW,e.lanes=a,e;case lW:return e=ko(13,n,t,i),e.elementType=lW,e.lanes=a,e;case sW:return e=ko(19,n,t,i),e.elementType=sW,e.lanes=a,e;case dM:return F4(n,i,a,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case uM:o=10;break e;case cM:o=9;break e;case w5:o=11;break e;case b5:o=14;break e;case Zu:o=16,r=null;break e}throw Error(_e(130,e==null?e:typeof e,""))}return t=ko(o,n,t,i),t.elementType=e,t.type=r,t.lanes=a,t}function k0(e,t,n,r){return e=ko(7,e,r,t),e.lanes=n,e}function F4(e,t,n,r){return e=ko(22,e,r,t),e.elementType=dM,e.lanes=n,e.stateNode={isHidden:!1},e}function Av(e,t,n){return e=ko(6,e,null,t),e.lanes=n,e}function Cv(e,t,n){return t=ko(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Ple(e,t,n,r,i){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=$b(0),this.expirationTimes=$b(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=$b(0),this.identifierPrefix=r,this.onRecoverableError=i,this.mutableSourceEagerHydrationData=null}function nE(e,t,n,r,i,a,o,l,s){return e=new Ple(e,t,n,l,s),t===1?(t=1,a===!0&&(t|=8)):t=0,a=ko(3,null,null,t),e.current=a,a.stateNode=e,a.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},L5(a),e}function jle(e,t,n){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(aV)}catch(e){console.error(e)}}aV(),aM.exports=oo;var If=aM.exports;const Al=Fl(If),tse=JL({__proto__:null,default:Al},[If]);var ux=If;iW.createRoot=ux.createRoot,iW.hydrateRoot=ux.hydrateRoot;var oV={exports:{}},lV={};/** * @license React * use-sync-external-store-shim.production.min.js * @@ -45,7 +45,7 @@ Error generating stack: `+d.message+` * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var Sm=E;function ebI(I,l){return I===l&&(I!==0||1/I===1/l)||I!==I&&l!==l}var dbI=typeof Object.is=="function"?Object.is:ebI,tbI=Sm.useState,nbI=Sm.useEffect,bbI=Sm.useLayoutEffect,abI=Sm.useDebugValue;function ZbI(I,l){var c=l(),G=tbI({inst:{value:c,getSnapshot:l}}),e=G[0].inst,d=G[1];return bbI(function(){e.value=c,e.getSnapshot=l,uY(e)&&d({inst:e})},[I,c,l]),nbI(function(){return uY(e)&&d({inst:e}),I(function(){uY(e)&&d({inst:e})})},[I]),abI(c),c}function uY(I){var l=I.getSnapshot;I=I.value;try{var c=l();return!dbI(I,c)}catch{return!0}}function WbI(I,l){return l()}var rbI=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?WbI:ZbI;GS.useSyncExternalStore=Sm.useSyncExternalStore!==void 0?Sm.useSyncExternalStore:rbI;cS.exports=GS;var mbI=cS.exports,eS={exports:{}},dS={};/** + */var o1=E;function nse(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var rse=typeof Object.is=="function"?Object.is:nse,ise=o1.useState,ase=o1.useEffect,ose=o1.useLayoutEffect,lse=o1.useDebugValue;function sse(e,t){var n=t(),r=ise({inst:{value:n,getSnapshot:t}}),i=r[0].inst,a=r[1];return ose(function(){i.value=n,i.getSnapshot=t,Bv(i)&&a({inst:i})},[e,n,t]),ase(function(){return Bv(i)&&a({inst:i}),e(function(){Bv(i)&&a({inst:i})})},[e]),lse(n),n}function Bv(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!rse(e,n)}catch{return!0}}function use(e,t){return t()}var cse=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?use:sse;lV.useSyncExternalStore=o1.useSyncExternalStore!==void 0?o1.useSyncExternalStore:cse;oV.exports=lV;var dse=oV.exports,sV={exports:{}},uV={};/** * @license React * use-sync-external-store-shim/with-selector.production.min.js * @@ -53,14 +53,14 @@ Error generating stack: `+d.message+` * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var iF=E,sbI=mbI;function ubI(I,l){return I===l&&(I!==0||1/I===1/l)||I!==I&&l!==l}var hbI=typeof Object.is=="function"?Object.is:ubI,pbI=sbI.useSyncExternalStore,obI=iF.useRef,VbI=iF.useEffect,ibI=iF.useMemo,FbI=iF.useDebugValue;dS.useSyncExternalStoreWithSelector=function(I,l,c,G,e){var d=obI(null);if(d.current===null){var t={hasValue:!1,value:null};d.current=t}else t=d.current;d=ibI(function(){function b(s){if(!a){if(a=!0,Z=s,s=G(s),e!==void 0&&t.hasValue){var h=t.value;if(e(h,s))return W=h}return W=s}if(h=W,hbI(Z,s))return h;var p=G(s);return e!==void 0&&e(h,p)?h:(Z=s,W=p)}var a=!1,Z,W,m=c===void 0?null:c;return[function(){return b(l())},m===null?void 0:function(){return b(m())}]},[l,c,G,e]);var n=pbI(I,d[0],d[1]);return VbI(function(){t.hasValue=!0,t.value=n},[n]),FbI(n),n};eS.exports=dS;var NbI=eS.exports;function RbI(I){I()}let tS=RbI;const YbI=I=>tS=I,XbI=()=>tS,Z9=Symbol.for("react-redux-context"),W9=typeof globalThis<"u"?globalThis:{};function HbI(){var I;if(!E.createContext)return{};const l=(I=W9[Z9])!=null?I:W9[Z9]=new Map;let c=l.get(E.createContext);return c||(c=E.createContext(null),l.set(E.createContext,c)),c}const ZZ=HbI();function eg(I=ZZ){return function(){return E.useContext(I)}}const nS=eg(),QbI=()=>{throw new Error("uSES not initialized!")};let bS=QbI;const wbI=I=>{bS=I},EbI=(I,l)=>I===l;function vbI(I=ZZ){const l=I===ZZ?nS:eg(I);return function(G,e={}){const{equalityFn:d=EbI,stabilityCheck:t=void 0,noopCheck:n=void 0}=typeof e=="function"?{equalityFn:e}:e,{store:b,subscription:a,getServerState:Z,stabilityCheck:W,noopCheck:m}=l();E.useRef(!0);const s=E.useCallback({[G.name](p){return G(p)}}[G.name],[G,W,t]),h=bS(a.addNestedSub,b.getState,Z||b.getState,s,d);return E.useDebugValue(h),h}}const Nc=vbI();var aS={exports:{}},xc={};/** @license React v16.13.1 + */var G4=E,pse=dse;function gse(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var hse=typeof Object.is=="function"?Object.is:gse,fse=pse.useSyncExternalStore,mse=G4.useRef,Ase=G4.useEffect,Cse=G4.useMemo,Bse=G4.useDebugValue;uV.useSyncExternalStoreWithSelector=function(e,t,n,r,i){var a=mse(null);if(a.current===null){var o={hasValue:!1,value:null};a.current=o}else o=a.current;a=Cse(function(){function s(h){if(!u){if(u=!0,c=h,h=r(h),i!==void 0&&o.hasValue){var m=o.value;if(i(m,h))return d=m}return d=h}if(m=d,hse(c,h))return m;var A=r(h);return i!==void 0&&i(m,A)?m:(c=h,d=A)}var u=!1,c,d,g=n===void 0?null:n;return[function(){return s(t())},g===null?void 0:function(){return s(g())}]},[t,n,r,i]);var l=fse(e,a[0],a[1]);return Ase(function(){o.hasValue=!0,o.value=l},[l]),Bse(l),l};sV.exports=uV;var wse=sV.exports;function bse(e){e()}let cV=bse;const vse=e=>cV=e,Kse=()=>cV,cx=Symbol.for("react-redux-context"),dx=typeof globalThis<"u"?globalThis:{};function Qse(){var e;if(!E.createContext)return{};const t=(e=dx[cx])!=null?e:dx[cx]=new Map;let n=t.get(E.createContext);return n||(n=E.createContext(null),t.set(E.createContext,n)),n}const Qc=Qse();function oE(e=Qc){return function(){return E.useContext(e)}}const dV=oE(),Wse=()=>{throw new Error("uSES not initialized!")};let pV=Wse;const yse=e=>{pV=e},Fse=(e,t)=>e===t;function Ese(e=Qc){const t=e===Qc?dV:oE(e);return function(r,i={}){const{equalityFn:a=Fse,stabilityCheck:o=void 0,noopCheck:l=void 0}=typeof i=="function"?{equalityFn:i}:i,{store:s,subscription:u,getServerState:c,stabilityCheck:d,noopCheck:g}=t();E.useRef(!0);const h=E.useCallback({[r.name](A){return r(A)}}[r.name],[r,d,o]),m=pV(u.addNestedSub,s.getState,c||s.getState,h,a);return E.useDebugValue(m),m}}const en=Ese();var gV={exports:{}},Tn={};/** @license React v16.13.1 * react-is.production.min.js * * Copyright (c) Facebook, Inc. and its affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var te=typeof Symbol=="function"&&Symbol.for,dg=te?Symbol.for("react.element"):60103,tg=te?Symbol.for("react.portal"):60106,FF=te?Symbol.for("react.fragment"):60107,NF=te?Symbol.for("react.strict_mode"):60108,RF=te?Symbol.for("react.profiler"):60114,YF=te?Symbol.for("react.provider"):60109,XF=te?Symbol.for("react.context"):60110,ng=te?Symbol.for("react.async_mode"):60111,HF=te?Symbol.for("react.concurrent_mode"):60111,QF=te?Symbol.for("react.forward_ref"):60112,wF=te?Symbol.for("react.suspense"):60113,gbI=te?Symbol.for("react.suspense_list"):60120,EF=te?Symbol.for("react.memo"):60115,vF=te?Symbol.for("react.lazy"):60116,AbI=te?Symbol.for("react.block"):60121,ybI=te?Symbol.for("react.fundamental"):60117,JbI=te?Symbol.for("react.responder"):60118,BbI=te?Symbol.for("react.scope"):60119;function Gt(I){if(typeof I=="object"&&I!==null){var l=I.$$typeof;switch(l){case dg:switch(I=I.type,I){case ng:case HF:case FF:case RF:case NF:case wF:return I;default:switch(I=I&&I.$$typeof,I){case XF:case QF:case vF:case EF:case YF:return I;default:return l}}case tg:return l}}}function ZS(I){return Gt(I)===HF}xc.AsyncMode=ng;xc.ConcurrentMode=HF;xc.ContextConsumer=XF;xc.ContextProvider=YF;xc.Element=dg;xc.ForwardRef=QF;xc.Fragment=FF;xc.Lazy=vF;xc.Memo=EF;xc.Portal=tg;xc.Profiler=RF;xc.StrictMode=NF;xc.Suspense=wF;xc.isAsyncMode=function(I){return ZS(I)||Gt(I)===ng};xc.isConcurrentMode=ZS;xc.isContextConsumer=function(I){return Gt(I)===XF};xc.isContextProvider=function(I){return Gt(I)===YF};xc.isElement=function(I){return typeof I=="object"&&I!==null&&I.$$typeof===dg};xc.isForwardRef=function(I){return Gt(I)===QF};xc.isFragment=function(I){return Gt(I)===FF};xc.isLazy=function(I){return Gt(I)===vF};xc.isMemo=function(I){return Gt(I)===EF};xc.isPortal=function(I){return Gt(I)===tg};xc.isProfiler=function(I){return Gt(I)===RF};xc.isStrictMode=function(I){return Gt(I)===NF};xc.isSuspense=function(I){return Gt(I)===wF};xc.isValidElementType=function(I){return typeof I=="string"||typeof I=="function"||I===FF||I===HF||I===RF||I===NF||I===wF||I===gbI||typeof I=="object"&&I!==null&&(I.$$typeof===vF||I.$$typeof===EF||I.$$typeof===YF||I.$$typeof===XF||I.$$typeof===QF||I.$$typeof===ybI||I.$$typeof===JbI||I.$$typeof===BbI||I.$$typeof===AbI)};xc.typeOf=Gt;aS.exports=xc;var kbI=aS.exports,bg=kbI,xbI={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},zbI={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},UbI={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},WS={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},ag={};ag[bg.ForwardRef]=UbI;ag[bg.Memo]=WS;function r9(I){return bg.isMemo(I)?WS:ag[I.$$typeof]||xbI}var CbI=Object.defineProperty,MbI=Object.getOwnPropertyNames,m9=Object.getOwnPropertySymbols,fbI=Object.getOwnPropertyDescriptor,KbI=Object.getPrototypeOf,s9=Object.prototype;function rS(I,l,c){if(typeof l!="string"){if(s9){var G=KbI(l);G&&G!==s9&&rS(I,G,c)}var e=MbI(l);m9&&(e=e.concat(m9(l)));for(var d=r9(I),t=r9(l),n=0;n{let G=l;for(;G;)G.callback(),G=G.next})},get(){let G=[],e=l;for(;e;)G.push(e),e=e.next;return G},subscribe(G){let e=!0,d=c={callback:G,next:null,prev:c};return d.prev?d.prev.next=d:l=d,function(){!e||l===null||(e=!1,d.next?d.next.prev=d.prev:c=d.prev,d.prev?d.prev.next=d.next:l=d.next)}}}}const u9={notify(){},get:()=>[]};function ObI(I,l){let c,G=u9,e=0,d=!1;function t(p){Z();const V=G.subscribe(p);let o=!1;return()=>{o||(o=!0,V(),W())}}function n(){G.notify()}function b(){h.onStateChange&&h.onStateChange()}function a(){return d}function Z(){e++,c||(c=l?l.addNestedSub(b):I.subscribe(b),G=DbI())}function W(){e--,c&&e===0&&(c(),c=void 0,G.clear(),G=u9)}function m(){d||(d=!0,Z())}function s(){d&&(d=!1,W())}const h={addNestedSub:t,notifyNestedSubs:n,handleChangeWrapper:b,isSubscribed:a,trySubscribe:m,tryUnsubscribe:s,getListeners:()=>G};return h}const PbI=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",_bI=PbI?E.useLayoutEffect:E.useEffect;function qbI({store:I,context:l,children:c,serverState:G,stabilityCheck:e="once",noopCheck:d="once"}){const t=E.useMemo(()=>{const a=ObI(I);return{store:I,subscription:a,getServerState:G?()=>G:void 0,stabilityCheck:e,noopCheck:d}},[I,G,e,d]),n=E.useMemo(()=>I.getState(),[I]);_bI(()=>{const{subscription:a}=t;return a.onStateChange=a.notifyNestedSubs,a.trySubscribe(),n!==I.getState()&&a.notifyNestedSubs(),()=>{a.tryUnsubscribe(),a.onStateChange=void 0}},[t,n]);const b=l||ZZ;return E.createElement(b.Provider,{value:t},c)}function hS(I=ZZ){const l=I===ZZ?nS:eg(I);return function(){const{store:G}=l();return G}}const $bI=hS();function IaI(I=ZZ){const l=I===ZZ?$bI:hS(I);return function(){return l().dispatch}}const ne=IaI();wbI(NbI.useSyncExternalStoreWithSelector);YbI(Xh.unstable_batchedUpdates);function x2(I){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?x2=function(c){return typeof c}:x2=function(c){return c&&typeof Symbol=="function"&&c.constructor===Symbol&&c!==Symbol.prototype?"symbol":typeof c},x2(I)}function laI(I,l){if(!(I instanceof l))throw new TypeError("Cannot call a class as a function")}function h9(I,l){for(var c=0;c{let r=t;for(;r;)r.callback(),r=r.next})},get(){let r=[],i=t;for(;i;)r.push(i),i=i.next;return r},subscribe(r){let i=!0,a=n={callback:r,next:null,prev:n};return a.prev?a.prev.next=a:t=a,function(){!i||t===null||(i=!1,a.next?a.next.prev=a.prev:n=a.prev,a.prev?a.prev.next=a.next:t=a.next)}}}}const fx={notify(){},get:()=>[]};function Jse(e,t){let n,r=fx,i=0,a=!1;function o(A){c();const B=r.subscribe(A);let C=!1;return()=>{C||(C=!0,B(),d())}}function l(){r.notify()}function s(){m.onStateChange&&m.onStateChange()}function u(){return a}function c(){i++,n||(n=t?t.addNestedSub(s):e.subscribe(s),r=Ose())}function d(){i--,n&&i===0&&(n(),n=void 0,r.clear(),r=fx)}function g(){a||(a=!0,c())}function h(){a&&(a=!1,d())}const m={addNestedSub:o,notifyNestedSubs:l,handleChangeWrapper:s,isSubscribed:u,trySubscribe:g,tryUnsubscribe:h,getListeners:()=>r};return m}const zse=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",Pse=zse?E.useLayoutEffect:E.useEffect;function jse({store:e,context:t,children:n,serverState:r,stabilityCheck:i="once",noopCheck:a="once"}){const o=E.useMemo(()=>{const u=Jse(e);return{store:e,subscription:u,getServerState:r?()=>r:void 0,stabilityCheck:i,noopCheck:a}},[e,r,i,a]),l=E.useMemo(()=>e.getState(),[e]);Pse(()=>{const{subscription:u}=o;return u.onStateChange=u.notifyNestedSubs,u.trySubscribe(),l!==e.getState()&&u.notifyNestedSubs(),()=>{u.tryUnsubscribe(),u.onStateChange=void 0}},[o,l]);const s=t||Qc;return E.createElement(s.Provider,{value:o},n)}function wV(e=Qc){const t=e===Qc?dV:oE(e);return function(){const{store:r}=t();return r}}const _se=wV();function $se(e=Qc){const t=e===Qc?_se:wV(e);return function(){return t().dispatch}}const Zr=$se();yse(wse.useSyncExternalStoreWithSelector);vse(If.unstable_batchedUpdates);function rC(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?rC=function(n){return typeof n}:rC=function(n){return n&&typeof Symbol=="function"&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},rC(e)}function qse(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function mx(e,t){for(var n=0;nZ(s,typeof s=="string"?null:s.state,h===0?"default":void 0));let d=b(c??e.length-1),t=YG.Pop,n=null;function b(s){return Math.min(Math.max(s,0),e.length-1)}function a(){return e[d]}function Z(s,h,p){h===void 0&&(h=null);let V=jQ(e?a().pathname:"/",s,h,p);return MW(V.pathname.charAt(0)==="/","relative pathnames are not supported in memory history: "+JSON.stringify(s)),V}function W(s){return typeof s=="string"?s:MF(s)}return{get index(){return d},get action(){return t},get location(){return a()},createHref:W,createURL(s){return new URL(W(s),"http://localhost")},encodeLocation(s){let h=typeof s=="string"?ab(s):s;return{pathname:h.pathname||"",search:h.search||"",hash:h.hash||""}},push(s,h){t=YG.Push;let p=Z(s,h);d+=1,e.splice(d,e.length,p),G&&n&&n({action:t,location:p,delta:1})},replace(s,h){t=YG.Replace;let p=Z(s,h);e[d]=p,G&&n&&n({action:t,location:p,delta:0})},go(s){t=YG.Pop;let h=b(d+s),p=e[h];d=h,n&&n({action:t,location:p,delta:s})},listen(s){return n=s,()=>{n=null}}}}function Fc(I,l){if(I===!1||I===null||typeof I>"u")throw new Error(l)}function MW(I,l){if(!I){typeof console<"u"&&console.warn(l);try{throw new Error(l)}catch{}}}function taI(){return Math.random().toString(36).substr(2,8)}function jQ(I,l,c,G){return c===void 0&&(c=null),QG({pathname:typeof I=="string"?I:I.pathname,search:"",hash:""},typeof l=="string"?ab(l):l,{state:c,key:l&&l.key||G||taI()})}function MF(I){let{pathname:l="/",search:c="",hash:G=""}=I;return c&&c!=="?"&&(l+=c.charAt(0)==="?"?c:"?"+c),G&&G!=="#"&&(l+=G.charAt(0)==="#"?G:"#"+G),l}function ab(I){let l={};if(I){let c=I.indexOf("#");c>=0&&(l.hash=I.substr(c),I=I.substr(0,c));let G=I.indexOf("?");G>=0&&(l.search=I.substr(G),I=I.substr(0,G)),I&&(l.pathname=I)}return l}var iG;(function(I){I.data="data",I.deferred="deferred",I.redirect="redirect",I.error="error"})(iG||(iG={}));const naI=new Set(["lazy","caseSensitive","path","id","index","children"]);function baI(I){return I.index===!0}function DQ(I,l,c,G){return c===void 0&&(c=[]),G===void 0&&(G={}),I.map((e,d)=>{let t=[...c,d],n=typeof e.id=="string"?e.id:t.join("-");if(Fc(e.index!==!0||!e.children,"Cannot specify children on an index route"),Fc(!G[n],'Found a route id collision on id "'+n+`". Route id's must be globally unique within Data Router usages`),baI(e)){let b=QG({},e,l(e),{id:n});return G[n]=b,b}else{let b=QG({},e,l(e),{id:n,children:void 0});return G[n]=b,e.children&&(b.children=DQ(e.children,l,t,G)),b}})}function am(I,l,c){c===void 0&&(c="/");let G=typeof l=="string"?ab(l):l,e=Hh(G.pathname||"/",c);if(e==null)return null;let d=oS(I);ZaI(d);let t=null;for(let n=0;t==null&&n{let b={relativePath:n===void 0?d.path||"":n,caseSensitive:d.caseSensitive===!0,childrenIndex:t,route:d};b.relativePath.startsWith("/")&&(Fc(b.relativePath.startsWith(G),'Absolute route path "'+b.relativePath+'" nested under path '+('"'+G+'" is not valid. An absolute child route path ')+"must start with the combined path of all its parent routes."),b.relativePath=b.relativePath.slice(G.length));let a=$a([G,b.relativePath]),Z=c.concat(b);d.children&&d.children.length>0&&(Fc(d.index!==!0,"Index routes must not have child routes. Please remove "+('all child routes from route path "'+a+'".')),oS(d.children,l,Z,a)),!(d.path==null&&!d.index)&&l.push({path:a,score:paI(a,d.index),routesMeta:Z})};return I.forEach((d,t)=>{var n;if(d.path===""||!((n=d.path)!=null&&n.includes("?")))e(d,t);else for(let b of VS(d.path))e(d,t,b)}),l}function VS(I){let l=I.split("/");if(l.length===0)return[];let[c,...G]=l,e=c.endsWith("?"),d=c.replace(/\?$/,"");if(G.length===0)return e?[d,""]:[d];let t=VS(G.join("/")),n=[];return n.push(...t.map(b=>b===""?d:[d,b].join("/"))),e&&n.push(...t),n.map(b=>I.startsWith("/")&&b===""?"/":b)}function ZaI(I){I.sort((l,c)=>l.score!==c.score?c.score-l.score:oaI(l.routesMeta.map(G=>G.childrenIndex),c.routesMeta.map(G=>G.childrenIndex)))}const WaI=/^:[\w-]+$/,raI=3,maI=2,saI=1,uaI=10,haI=-2,p9=I=>I==="*";function paI(I,l){let c=I.split("/"),G=c.length;return c.some(p9)&&(G+=haI),l&&(G+=maI),c.filter(e=>!p9(e)).reduce((e,d)=>e+(WaI.test(d)?raI:d===""?saI:uaI),G)}function oaI(I,l){return I.length===l.length&&I.slice(0,-1).every((G,e)=>G===l[e])?I[I.length-1]-l[l.length-1]:0}function VaI(I,l){let{routesMeta:c}=I,G={},e="/",d=[];for(let t=0;t{let{paramName:m,isOptional:s}=Z;if(m==="*"){let p=n[W]||"";t=d.slice(0,d.length-p.length).replace(/(.)\/+$/,"$1")}const h=n[W];return s&&!h?a[m]=void 0:a[m]=(h||"").replace(/%2F/g,"/"),a},{}),pathname:d,pathnameBase:t,pattern:I}}function FaI(I,l,c){l===void 0&&(l=!1),c===void 0&&(c=!0),MW(I==="*"||!I.endsWith("*")||I.endsWith("/*"),'Route path "'+I+'" will be treated as if it were '+('"'+I.replace(/\*$/,"/*")+'" because the `*` character must ')+"always follow a `/` in the pattern. To get rid of this warning, "+('please change the route path to "'+I.replace(/\*$/,"/*")+'".'));let G=[],e="^"+I.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(t,n,b)=>(G.push({paramName:n,isOptional:b!=null}),b?"/?([^\\/]+)?":"/([^\\/]+)"));return I.endsWith("*")?(G.push({paramName:"*"}),e+=I==="*"||I==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):c?e+="\\/*$":I!==""&&I!=="/"&&(e+="(?:(?=\\/|$))"),[new RegExp(e,l?void 0:"i"),G]}function NaI(I){try{return I.split("/").map(l=>decodeURIComponent(l).replace(/\//g,"%2F")).join("/")}catch(l){return MW(!1,'The URL path "'+I+'" could not be decoded because it is is a malformed URL segment. This is probably due to a bad percent '+("encoding ("+l+").")),I}}function Hh(I,l){if(l==="/")return I;if(!I.toLowerCase().startsWith(l.toLowerCase()))return null;let c=l.endsWith("/")?l.length-1:l.length,G=I.charAt(c);return G&&G!=="/"?null:I.slice(c)||"/"}function RaI(I,l){l===void 0&&(l="/");let{pathname:c,search:G="",hash:e=""}=typeof I=="string"?ab(I):I;return{pathname:c?c.startsWith("/")?c:YaI(c,l):l,search:HaI(G),hash:QaI(e)}}function YaI(I,l){let c=l.replace(/\/+$/,"").split("/");return I.split("/").forEach(e=>{e===".."?c.length>1&&c.pop():e!=="."&&c.push(e)}),c.length>1?c.join("/"):"/"}function hY(I,l,c,G){return"Cannot include a '"+I+"' character in a manually specified "+("`to."+l+"` field ["+JSON.stringify(G)+"]. Please separate it out to the ")+("`to."+c+"` field. Alternatively you may provide the full path as ")+'a string in and the router will parse it for you.'}function iS(I){return I.filter((l,c)=>c===0||l.route.path&&l.route.path.length>0)}function FS(I,l){let c=iS(I);return l?c.map((G,e)=>e===I.length-1?G.pathname:G.pathnameBase):c.map(G=>G.pathnameBase)}function NS(I,l,c,G){G===void 0&&(G=!1);let e;typeof I=="string"?e=ab(I):(e=QG({},I),Fc(!e.pathname||!e.pathname.includes("?"),hY("?","pathname","search",e)),Fc(!e.pathname||!e.pathname.includes("#"),hY("#","pathname","hash",e)),Fc(!e.search||!e.search.includes("#"),hY("#","search","hash",e)));let d=I===""||e.pathname==="",t=d?"/":e.pathname,n;if(t==null)n=c;else{let W=l.length-1;if(!G&&t.startsWith("..")){let m=t.split("/");for(;m[0]==="..";)m.shift(),W-=1;e.pathname=m.join("/")}n=W>=0?l[W]:"/"}let b=RaI(e,n),a=t&&t!=="/"&&t.endsWith("/"),Z=(d||t===".")&&c.endsWith("/");return!b.pathname.endsWith("/")&&(a||Z)&&(b.pathname+="/"),b}const $a=I=>I.join("/").replace(/\/\/+/g,"/"),XaI=I=>I.replace(/\/+$/,"").replace(/^\/*/,"/"),HaI=I=>!I||I==="?"?"":I.startsWith("?")?I:"?"+I,QaI=I=>!I||I==="#"?"":I.startsWith("#")?I:"#"+I;class RS{constructor(l,c,G,e){e===void 0&&(e=!1),this.status=l,this.statusText=c||"",this.internal=e,G instanceof Error?(this.data=G.toString(),this.error=G):this.data=G}}function YS(I){return I!=null&&typeof I.status=="number"&&typeof I.statusText=="string"&&typeof I.internal=="boolean"&&"data"in I}const XS=["post","put","patch","delete"],waI=new Set(XS),EaI=["get",...XS],vaI=new Set(EaI),gaI=new Set([301,302,303,307,308]),AaI=new Set([307,308]),pY={state:"idle",location:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},yaI={state:"idle",data:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},as={state:"unblocked",proceed:void 0,reset:void 0,location:void 0},HS=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,JaI=I=>({hasErrorBoundary:!!I.hasErrorBoundary}),QS="remix-router-transitions";function BaI(I){const l=I.window?I.window:typeof window<"u"?window:void 0,c=typeof l<"u"&&typeof l.document<"u"&&typeof l.document.createElement<"u",G=!c;Fc(I.routes.length>0,"You must provide a non-empty routes array to createRouter");let e;if(I.mapRouteProperties)e=I.mapRouteProperties;else if(I.detectErrorBoundary){let ZI=I.detectErrorBoundary;e=pI=>({hasErrorBoundary:ZI(pI)})}else e=JaI;let d={},t=DQ(I.routes,e,void 0,d),n,b=I.basename||"/",a=QG({v7_fetcherPersist:!1,v7_normalizeFormMethod:!1,v7_partialHydration:!1,v7_prependBasename:!1,v7_relativeSplatPath:!1},I.future),Z=null,W=new Set,m=null,s=null,h=null,p=I.hydrationData!=null,V=am(t,I.history.location,b),o=null;if(V==null){let ZI=Ft(404,{pathname:I.history.location.pathname}),{matches:pI,route:sI}=X9(t);V=pI,o={[sI.id]:ZI}}let F,X=V.some(ZI=>ZI.route.lazy),H=V.some(ZI=>ZI.route.loader);if(X)F=!1;else if(!H)F=!0;else if(a.v7_partialHydration){let ZI=I.hydrationData?I.hydrationData.loaderData:null,pI=I.hydrationData?I.hydrationData.errors:null,sI=EI=>EI.route.loader?EI.route.loader.hydrate===!0?!1:ZI&&ZI[EI.route.id]!==void 0||pI&&pI[EI.route.id]!==void 0:!0;if(pI){let EI=V.findIndex(dl=>pI[dl.route.id]!==void 0);F=V.slice(0,EI+1).every(sI)}else F=V.every(sI)}else F=I.hydrationData!=null;let Y,R={historyAction:I.history.action,location:I.history.location,matches:V,initialized:F,navigation:pY,restoreScrollPosition:I.hydrationData!=null?!1:null,preventScrollReset:!1,revalidation:"idle",loaderData:I.hydrationData&&I.hydrationData.loaderData||{},actionData:I.hydrationData&&I.hydrationData.actionData||null,errors:I.hydrationData&&I.hydrationData.errors||o,fetchers:new Map,blockers:new Map},B=YG.Pop,C=!1,k,N=!1,J=new Map,A=null,M=!1,D=!1,O=[],$=[],j=new Map,S=0,tI=-1,z=new Map,g=new Set,GI=new Map,f=new Map,nI=new Set,VI=new Map,q=new Map,fI=!1;function RI(){if(Z=I.history.listen(ZI=>{let{action:pI,location:sI,delta:EI}=ZI;if(fI){fI=!1;return}MW(q.size===0||EI!=null,"You are trying to use a blocker on a POP navigation to a location that was not created by @remix-run/router. This will fail silently in production. This can happen if you are navigating outside the router via `window.history.pushState`/`window.location.hash` instead of using router navigation APIs. This can also happen if you are using createHashRouter and the user manually changes the URL.");let dl=CI({currentLocation:R.location,nextLocation:sI,historyAction:pI});if(dl&&EI!=null){fI=!0,I.history.go(EI*-1),FI(dl,{state:"blocked",location:sI,proceed(){FI(dl,{state:"proceeding",proceed:void 0,reset:void 0,location:sI}),I.history.go(EI)},reset(){let Al=new Map(R.blockers);Al.set(dl,as),PI({blockers:Al})}});return}return Il(pI,sI)}),c){TaI(l,J);let ZI=()=>jaI(l,J);l.addEventListener("pagehide",ZI),A=()=>l.removeEventListener("pagehide",ZI)}return R.initialized||Il(YG.Pop,R.location,{initialHydration:!0}),Y}function cl(){Z&&Z(),A&&A(),W.clear(),k&&k.abort(),R.fetchers.forEach((ZI,pI)=>oI(pI)),R.blockers.forEach((ZI,pI)=>_(pI))}function OI(ZI){return W.add(ZI),()=>W.delete(ZI)}function PI(ZI,pI){pI===void 0&&(pI={}),R=QG({},R,ZI);let sI=[],EI=[];a.v7_fetcherPersist&&R.fetchers.forEach((dl,Al)=>{dl.state==="idle"&&(nI.has(Al)?EI.push(Al):sI.push(Al))}),[...W].forEach(dl=>dl(R,{deletedFetchers:EI,unstable_viewTransitionOpts:pI.viewTransitionOpts,unstable_flushSync:pI.flushSync===!0})),a.v7_fetcherPersist&&(sI.forEach(dl=>R.fetchers.delete(dl)),EI.forEach(dl=>oI(dl)))}function _I(ZI,pI,sI){var EI,dl;let{flushSync:Al}=sI===void 0?{}:sI,AI=R.actionData!=null&&R.navigation.formMethod!=null&&cn(R.navigation.formMethod)&&R.navigation.state==="loading"&&((EI=ZI.state)==null?void 0:EI._isRedirect)!==!0,KI;pI.actionData?Object.keys(pI.actionData).length>0?KI=pI.actionData:KI=null:AI?KI=R.actionData:KI=null;let zI=pI.loaderData?Y9(R.loaderData,pI.loaderData,pI.matches||[],pI.errors):R.loaderData,Ql=R.blockers;Ql.size>0&&(Ql=new Map(Ql),Ql.forEach(($l,bc)=>Ql.set(bc,as)));let _l=C===!0||R.navigation.formMethod!=null&&cn(R.navigation.formMethod)&&((dl=ZI.state)==null?void 0:dl._isRedirect)!==!0;n&&(t=n,n=void 0),M||B===YG.Pop||(B===YG.Push?I.history.push(ZI,ZI.state):B===YG.Replace&&I.history.replace(ZI,ZI.state));let gl;if(B===YG.Pop){let $l=J.get(R.location.pathname);$l&&$l.has(ZI.pathname)?gl={currentLocation:R.location,nextLocation:ZI}:J.has(ZI.pathname)&&(gl={currentLocation:ZI,nextLocation:R.location})}else if(N){let $l=J.get(R.location.pathname);$l?$l.add(ZI.pathname):($l=new Set([ZI.pathname]),J.set(R.location.pathname,$l)),gl={currentLocation:R.location,nextLocation:ZI}}PI(QG({},pI,{actionData:KI,loaderData:zI,historyAction:B,location:ZI,initialized:!0,navigation:pY,revalidation:"idle",restoreScrollPosition:ql(ZI,pI.matches||R.matches),preventScrollReset:_l,blockers:Ql}),{viewTransitionOpts:gl,flushSync:Al===!0}),B=YG.Pop,C=!1,N=!1,M=!1,D=!1,O=[],$=[]}async function tl(ZI,pI){if(typeof ZI=="number"){I.history.go(ZI);return}let sI=OQ(R.location,R.matches,b,a.v7_prependBasename,ZI,a.v7_relativeSplatPath,pI==null?void 0:pI.fromRouteId,pI==null?void 0:pI.relative),{path:EI,submission:dl,error:Al}=o9(a.v7_normalizeFormMethod,!1,sI,pI),AI=R.location,KI=jQ(R.location,EI,pI&&pI.state);KI=QG({},KI,I.history.encodeLocation(KI));let zI=pI&&pI.replace!=null?pI.replace:void 0,Ql=YG.Push;zI===!0?Ql=YG.Replace:zI===!1||dl!=null&&cn(dl.formMethod)&&dl.formAction===R.location.pathname+R.location.search&&(Ql=YG.Replace);let _l=pI&&"preventScrollReset"in pI?pI.preventScrollReset===!0:void 0,gl=(pI&&pI.unstable_flushSync)===!0,$l=CI({currentLocation:AI,nextLocation:KI,historyAction:Ql});if($l){FI($l,{state:"blocked",location:KI,proceed(){FI($l,{state:"proceeding",proceed:void 0,reset:void 0,location:KI}),tl(ZI,pI)},reset(){let bc=new Map(R.blockers);bc.set($l,as),PI({blockers:bc})}});return}return await Il(Ql,KI,{submission:dl,pendingError:Al,preventScrollReset:_l,replace:pI&&pI.replace,enableViewTransition:pI&&pI.unstable_viewTransition,flushSync:gl})}function bl(){if(HI(),PI({revalidation:"loading"}),R.navigation.state!=="submitting"){if(R.navigation.state==="idle"){Il(R.historyAction,R.location,{startUninterruptedRevalidation:!0});return}Il(B||R.historyAction,R.navigation.location,{overrideNavigation:R.navigation})}}async function Il(ZI,pI,sI){k&&k.abort(),k=null,B=ZI,M=(sI&&sI.startUninterruptedRevalidation)===!0,kl(R.location,R.matches),C=(sI&&sI.preventScrollReset)===!0,N=(sI&&sI.enableViewTransition)===!0;let EI=n||t,dl=sI&&sI.overrideNavigation,Al=am(EI,pI,b),AI=(sI&&sI.flushSync)===!0;if(!Al){let bc=Ft(404,{pathname:pI.pathname}),{matches:ac,route:Sl}=X9(EI);ll(),_I(pI,{matches:ac,loaderData:{},errors:{[Sl.id]:bc}},{flushSync:AI});return}if(R.initialized&&!D&&CaI(R.location,pI)&&!(sI&&sI.submission&&cn(sI.submission.formMethod))){_I(pI,{matches:Al},{flushSync:AI});return}k=new AbortController;let KI=Ws(I.history,pI,k.signal,sI&&sI.submission),zI,Ql;if(sI&&sI.pendingError)Ql={[eu(Al).route.id]:sI.pendingError};else if(sI&&sI.submission&&cn(sI.submission.formMethod)){let bc=await Fl(KI,pI,sI.submission,Al,{replace:sI.replace,flushSync:AI});if(bc.shortCircuited)return;zI=bc.pendingActionData,Ql=bc.pendingActionError,dl=oY(pI,sI.submission),AI=!1,KI=new Request(KI.url,{signal:KI.signal})}let{shortCircuited:_l,loaderData:gl,errors:$l}=await al(KI,pI,Al,dl,sI&&sI.submission,sI&&sI.fetcherSubmission,sI&&sI.replace,sI&&sI.initialHydration===!0,AI,zI,Ql);_l||(k=null,_I(pI,QG({matches:Al},zI?{actionData:zI}:{},{loaderData:gl,errors:$l})))}async function Fl(ZI,pI,sI,EI,dl){dl===void 0&&(dl={}),HI();let Al=LaI(pI,sI);PI({navigation:Al},{flushSync:dl.flushSync===!0});let AI,KI=_Q(EI,pI);if(!KI.route.action&&!KI.route.lazy)AI={type:iG.error,error:Ft(405,{method:ZI.method,pathname:pI.pathname,routeId:KI.route.id})};else if(AI=await Zs("action",ZI,KI,EI,d,e,b,a.v7_relativeSplatPath),ZI.signal.aborted)return{shortCircuited:!0};if(ZW(AI)){let zI;return dl&&dl.replace!=null?zI=dl.replace:zI=AI.location===R.location.pathname+R.location.search,await wI(R,AI,{submission:sI,replace:zI}),{shortCircuited:!0}}if(Zm(AI)){let zI=eu(EI,KI.route.id);return(dl&&dl.replace)!==!0&&(B=YG.Push),{pendingActionData:{},pendingActionError:{[zI.route.id]:AI.error}}}if(aW(AI))throw Ft(400,{type:"defer-action"});return{pendingActionData:{[KI.route.id]:AI.data}}}async function al(ZI,pI,sI,EI,dl,Al,AI,KI,zI,Ql,_l){let gl=EI||oY(pI,dl),$l=dl||Al||w9(gl),bc=n||t,[ac,Sl]=V9(I.history,R,sI,$l,pI,a.v7_partialHydration&&KI===!0,D,O,$,nI,GI,g,bc,b,Ql,_l);if(ll(yl=>!(sI&&sI.some(Ll=>Ll.route.id===yl))||ac&&ac.some(Ll=>Ll.route.id===yl)),tI=++S,ac.length===0&&Sl.length===0){let yl=Wl();return _I(pI,QG({matches:sI,loaderData:{},errors:_l||null},Ql?{actionData:Ql}:{},yl?{fetchers:new Map(R.fetchers)}:{}),{flushSync:zI}),{shortCircuited:!0}}if(!M&&(!a.v7_partialHydration||!KI)){Sl.forEach(Ll=>{let Kc=R.fetchers.get(Ll.key),dt=rs(void 0,Kc?Kc.data:void 0);R.fetchers.set(Ll.key,dt)});let yl=Ql||R.actionData;PI(QG({navigation:gl},yl?Object.keys(yl).length===0?{actionData:null}:{actionData:yl}:{},Sl.length>0?{fetchers:new Map(R.fetchers)}:{}),{flushSync:zI})}Sl.forEach(yl=>{j.has(yl.key)&&dI(yl.key),yl.controller&&j.set(yl.key,yl.controller)});let be=()=>Sl.forEach(yl=>dI(yl.key));k&&k.signal.addEventListener("abort",be);let{results:Xn,loaderResults:dd,fetcherResults:Xe}=await YI(R.matches,sI,ac,Sl,ZI);if(ZI.signal.aborted)return{shortCircuited:!0};k&&k.signal.removeEventListener("abort",be),Sl.forEach(yl=>j.delete(yl.key));let pl=H9(Xn);if(pl){if(pl.idx>=ac.length){let yl=Sl[pl.idx-ac.length].key;g.add(yl)}return await wI(R,pl.result,{replace:AI}),{shortCircuited:!0}}let{loaderData:rI,errors:JI}=R9(R,sI,ac,dd,_l,Sl,Xe,VI);VI.forEach((yl,Ll)=>{yl.subscribe(Kc=>{(Kc||yl.done)&&VI.delete(Ll)})}),a.v7_partialHydration&&KI&&R.errors&&Object.entries(R.errors).filter(yl=>{let[Ll]=yl;return!ac.some(Kc=>Kc.route.id===Ll)}).forEach(yl=>{let[Ll,Kc]=yl;JI=Object.assign(JI||{},{[Ll]:Kc})});let ml=Wl(),dc=nl(tI),yc=ml||dc||Sl.length>0;return QG({loaderData:rI,errors:JI},yc?{fetchers:new Map(R.fetchers)}:{})}function P(ZI,pI,sI,EI){if(G)throw new Error("router.fetch() was called during the server render, but it shouldn't be. You are likely calling a useFetcher() method in the body of your component. Try moving it to a useEffect or a callback.");j.has(ZI)&&dI(ZI);let dl=(EI&&EI.unstable_flushSync)===!0,Al=n||t,AI=OQ(R.location,R.matches,b,a.v7_prependBasename,sI,a.v7_relativeSplatPath,pI,EI==null?void 0:EI.relative),KI=am(Al,AI,b);if(!KI){bI(ZI,pI,Ft(404,{pathname:AI}),{flushSync:dl});return}let{path:zI,submission:Ql,error:_l}=o9(a.v7_normalizeFormMethod,!0,AI,EI);if(_l){bI(ZI,pI,_l,{flushSync:dl});return}let gl=_Q(KI,zI);if(C=(EI&&EI.preventScrollReset)===!0,Ql&&cn(Ql.formMethod)){eI(ZI,pI,zI,gl,KI,dl,Ql);return}GI.set(ZI,{routeId:pI,path:zI}),uI(ZI,pI,zI,gl,KI,dl,Ql)}async function eI(ZI,pI,sI,EI,dl,Al,AI){if(HI(),GI.delete(ZI),!EI.route.action&&!EI.route.lazy){let Ll=Ft(405,{method:AI.formMethod,pathname:sI,routeId:pI});bI(ZI,pI,Ll,{flushSync:Al});return}let KI=R.fetchers.get(ZI);NI(ZI,SaI(AI,KI),{flushSync:Al});let zI=new AbortController,Ql=Ws(I.history,sI,zI.signal,AI);j.set(ZI,zI);let _l=S,gl=await Zs("action",Ql,EI,dl,d,e,b,a.v7_relativeSplatPath);if(Ql.signal.aborted){j.get(ZI)===zI&&j.delete(ZI);return}if(a.v7_fetcherPersist&&nI.has(ZI)){if(ZW(gl)||Zm(gl)){NI(ZI,Ra(void 0));return}}else{if(ZW(gl))if(j.delete(ZI),tI>_l){NI(ZI,Ra(void 0));return}else return g.add(ZI),NI(ZI,rs(AI)),wI(R,gl,{fetcherSubmission:AI});if(Zm(gl)){bI(ZI,pI,gl.error);return}}if(aW(gl))throw Ft(400,{type:"defer-action"});let $l=R.navigation.location||R.location,bc=Ws(I.history,$l,zI.signal),ac=n||t,Sl=R.navigation.state!=="idle"?am(ac,R.navigation.location,b):R.matches;Fc(Sl,"Didn't find any matches after fetcher action");let be=++S;z.set(ZI,be);let Xn=rs(AI,gl.data);R.fetchers.set(ZI,Xn);let[dd,Xe]=V9(I.history,R,Sl,AI,$l,!1,D,O,$,nI,GI,g,ac,b,{[EI.route.id]:gl.data},void 0);Xe.filter(Ll=>Ll.key!==ZI).forEach(Ll=>{let Kc=Ll.key,dt=R.fetchers.get(Kc),DG=rs(void 0,dt?dt.data:void 0);R.fetchers.set(Kc,DG),j.has(Kc)&&dI(Kc),Ll.controller&&j.set(Kc,Ll.controller)}),PI({fetchers:new Map(R.fetchers)});let pl=()=>Xe.forEach(Ll=>dI(Ll.key));zI.signal.addEventListener("abort",pl);let{results:rI,loaderResults:JI,fetcherResults:ml}=await YI(R.matches,Sl,dd,Xe,bc);if(zI.signal.aborted)return;zI.signal.removeEventListener("abort",pl),z.delete(ZI),j.delete(ZI),Xe.forEach(Ll=>j.delete(Ll.key));let dc=H9(rI);if(dc){if(dc.idx>=dd.length){let Ll=Xe[dc.idx-dd.length].key;g.add(Ll)}return wI(R,dc.result)}let{loaderData:yc,errors:yl}=R9(R,R.matches,dd,JI,void 0,Xe,ml,VI);if(R.fetchers.has(ZI)){let Ll=Ra(gl.data);R.fetchers.set(ZI,Ll)}nl(be),R.navigation.state==="loading"&&be>tI?(Fc(B,"Expected pending action"),k&&k.abort(),_I(R.navigation.location,{matches:Sl,loaderData:yc,errors:yl,fetchers:new Map(R.fetchers)})):(PI({errors:yl,loaderData:Y9(R.loaderData,yc,Sl,yl),fetchers:new Map(R.fetchers)}),D=!1)}async function uI(ZI,pI,sI,EI,dl,Al,AI){let KI=R.fetchers.get(ZI);NI(ZI,rs(AI,KI?KI.data:void 0),{flushSync:Al});let zI=new AbortController,Ql=Ws(I.history,sI,zI.signal);j.set(ZI,zI);let _l=S,gl=await Zs("loader",Ql,EI,dl,d,e,b,a.v7_relativeSplatPath);if(aW(gl)&&(gl=await vS(gl,Ql.signal,!0)||gl),j.get(ZI)===zI&&j.delete(ZI),!Ql.signal.aborted){if(nI.has(ZI)){NI(ZI,Ra(void 0));return}if(ZW(gl))if(tI>_l){NI(ZI,Ra(void 0));return}else{g.add(ZI),await wI(R,gl);return}if(Zm(gl)){bI(ZI,pI,gl.error);return}Fc(!aW(gl),"Unhandled fetcher deferred data"),NI(ZI,Ra(gl.data))}}async function wI(ZI,pI,sI){let{submission:EI,fetcherSubmission:dl,replace:Al}=sI===void 0?{}:sI;pI.revalidate&&(D=!0);let AI=jQ(ZI.location,pI.location,{_isRedirect:!0});if(Fc(AI,"Expected a location on the redirect navigation"),c){let $l=!1;if(pI.reloadDocument)$l=!0;else if(HS.test(pI.location)){const bc=I.history.createURL(pI.location);$l=bc.origin!==l.location.origin||Hh(bc.pathname,b)==null}if($l){Al?l.location.replace(pI.location):l.location.assign(pI.location);return}}k=null;let KI=Al===!0?YG.Replace:YG.Push,{formMethod:zI,formAction:Ql,formEncType:_l}=ZI.navigation;!EI&&!dl&&zI&&Ql&&_l&&(EI=w9(ZI.navigation));let gl=EI||dl;if(AaI.has(pI.status)&&gl&&cn(gl.formMethod))await Il(KI,AI,{submission:QG({},gl,{formAction:pI.location}),preventScrollReset:C});else{let $l=oY(AI,EI);await Il(KI,AI,{overrideNavigation:$l,fetcherSubmission:dl,preventScrollReset:C})}}async function YI(ZI,pI,sI,EI,dl){let Al=await Promise.all([...sI.map(zI=>Zs("loader",dl,zI,pI,d,e,b,a.v7_relativeSplatPath)),...EI.map(zI=>zI.matches&&zI.match&&zI.controller?Zs("loader",Ws(I.history,zI.path,zI.controller.signal),zI.match,zI.matches,d,e,b,a.v7_relativeSplatPath):{type:iG.error,error:Ft(404,{pathname:zI.path})})]),AI=Al.slice(0,sI.length),KI=Al.slice(sI.length);return await Promise.all([Q9(ZI,sI,AI,AI.map(()=>dl.signal),!1,R.loaderData),Q9(ZI,EI.map(zI=>zI.match),KI,EI.map(zI=>zI.controller?zI.controller.signal:null),!0)]),{results:Al,loaderResults:AI,fetcherResults:KI}}function HI(){D=!0,O.push(...ll()),GI.forEach((ZI,pI)=>{j.has(pI)&&($.push(pI),dI(pI))})}function NI(ZI,pI,sI){sI===void 0&&(sI={}),R.fetchers.set(ZI,pI),PI({fetchers:new Map(R.fetchers)},{flushSync:(sI&&sI.flushSync)===!0})}function bI(ZI,pI,sI,EI){EI===void 0&&(EI={});let dl=eu(R.matches,pI);oI(ZI),PI({errors:{[dl.route.id]:sI},fetchers:new Map(R.fetchers)},{flushSync:(EI&&EI.flushSync)===!0})}function gI(ZI){return a.v7_fetcherPersist&&(f.set(ZI,(f.get(ZI)||0)+1),nI.has(ZI)&&nI.delete(ZI)),R.fetchers.get(ZI)||yaI}function oI(ZI){let pI=R.fetchers.get(ZI);j.has(ZI)&&!(pI&&pI.state==="loading"&&z.has(ZI))&&dI(ZI),GI.delete(ZI),z.delete(ZI),g.delete(ZI),nI.delete(ZI),R.fetchers.delete(ZI)}function QI(ZI){if(a.v7_fetcherPersist){let pI=(f.get(ZI)||0)-1;pI<=0?(f.delete(ZI),nI.add(ZI)):f.set(ZI,pI)}else oI(ZI);PI({fetchers:new Map(R.fetchers)})}function dI(ZI){let pI=j.get(ZI);Fc(pI,"Expected fetch controller: "+ZI),pI.abort(),j.delete(ZI)}function xI(ZI){for(let pI of ZI){let sI=gI(pI),EI=Ra(sI.data);R.fetchers.set(pI,EI)}}function Wl(){let ZI=[],pI=!1;for(let sI of g){let EI=R.fetchers.get(sI);Fc(EI,"Expected fetcher: "+sI),EI.state==="loading"&&(g.delete(sI),ZI.push(sI),pI=!0)}return xI(ZI),pI}function nl(ZI){let pI=[];for(let[sI,EI]of z)if(EI0}function Hl(ZI,pI){let sI=R.blockers.get(ZI)||as;return q.get(ZI)!==pI&&q.set(ZI,pI),sI}function _(ZI){R.blockers.delete(ZI),q.delete(ZI)}function FI(ZI,pI){let sI=R.blockers.get(ZI)||as;Fc(sI.state==="unblocked"&&pI.state==="blocked"||sI.state==="blocked"&&pI.state==="blocked"||sI.state==="blocked"&&pI.state==="proceeding"||sI.state==="blocked"&&pI.state==="unblocked"||sI.state==="proceeding"&&pI.state==="unblocked","Invalid blocker state transition: "+sI.state+" -> "+pI.state);let EI=new Map(R.blockers);EI.set(ZI,pI),PI({blockers:EI})}function CI(ZI){let{currentLocation:pI,nextLocation:sI,historyAction:EI}=ZI;if(q.size===0)return;q.size>1&&MW(!1,"A router only supports one blocker at a time");let dl=Array.from(q.entries()),[Al,AI]=dl[dl.length-1],KI=R.blockers.get(Al);if(!(KI&&KI.state==="proceeding")&&AI({currentLocation:pI,nextLocation:sI,historyAction:EI}))return Al}function ll(ZI){let pI=[];return VI.forEach((sI,EI)=>{(!ZI||ZI(EI))&&(sI.cancel(),pI.push(EI),VI.delete(EI))}),pI}function Zl(ZI,pI,sI){if(m=ZI,h=pI,s=sI||null,!p&&R.navigation===pY){p=!0;let EI=ql(R.location,R.matches);EI!=null&&PI({restoreScrollPosition:EI})}return()=>{m=null,h=null,s=null}}function vl(ZI,pI){return s&&s(ZI,pI.map(EI=>aaI(EI,R.loaderData)))||ZI.key}function kl(ZI,pI){if(m&&h){let sI=vl(ZI,pI);m[sI]=h()}}function ql(ZI,pI){if(m){let sI=vl(ZI,pI),EI=m[sI];if(typeof EI=="number")return EI}return null}function dG(ZI){d={},n=DQ(ZI,e,void 0,d)}return Y={get basename(){return b},get future(){return a},get state(){return R},get routes(){return t},get window(){return l},initialize:RI,subscribe:OI,enableScrollRestoration:Zl,navigate:tl,fetch:P,revalidate:bl,createHref:ZI=>I.history.createHref(ZI),encodeLocation:ZI=>I.history.encodeLocation(ZI),getFetcher:gI,deleteFetcher:QI,dispose:cl,getBlocker:Hl,deleteBlocker:_,_internalFetchControllers:j,_internalActiveDeferreds:VI,_internalSetRoutes:dG},Y}function kaI(I){return I!=null&&("formData"in I&&I.formData!=null||"body"in I&&I.body!==void 0)}function OQ(I,l,c,G,e,d,t,n){let b,a;if(t){b=[];for(let W of l)if(b.push(W),W.route.id===t){a=W;break}}else b=l,a=l[l.length-1];let Z=NS(e||".",FS(b,d),Hh(I.pathname,c)||I.pathname,n==="path");return e==null&&(Z.search=I.search,Z.hash=I.hash),(e==null||e===""||e===".")&&a&&a.route.index&&!rg(Z.search)&&(Z.search=Z.search?Z.search.replace(/^\?/,"?index&"):"?index"),G&&c!=="/"&&(Z.pathname=Z.pathname==="/"?c:$a([c,Z.pathname])),MF(Z)}function o9(I,l,c,G){if(!G||!kaI(G))return{path:c};if(G.formMethod&&!KaI(G.formMethod))return{path:c,error:Ft(405,{method:G.formMethod})};let e=()=>({path:c,error:Ft(400,{type:"invalid-body"})}),d=G.formMethod||"get",t=I?d.toUpperCase():d.toLowerCase(),n=ES(c);if(G.body!==void 0){if(G.formEncType==="text/plain"){if(!cn(t))return e();let m=typeof G.body=="string"?G.body:G.body instanceof FormData||G.body instanceof URLSearchParams?Array.from(G.body.entries()).reduce((s,h)=>{let[p,V]=h;return""+s+p+"="+V+` -`},""):String(G.body);return{path:c,submission:{formMethod:t,formAction:n,formEncType:G.formEncType,formData:void 0,json:void 0,text:m}}}else if(G.formEncType==="application/json"){if(!cn(t))return e();try{let m=typeof G.body=="string"?JSON.parse(G.body):G.body;return{path:c,submission:{formMethod:t,formAction:n,formEncType:G.formEncType,formData:void 0,json:m,text:void 0}}}catch{return e()}}}Fc(typeof FormData=="function","FormData is not available in this environment");let b,a;if(G.formData)b=PQ(G.formData),a=G.formData;else if(G.body instanceof FormData)b=PQ(G.body),a=G.body;else if(G.body instanceof URLSearchParams)b=G.body,a=N9(b);else if(G.body==null)b=new URLSearchParams,a=new FormData;else try{b=new URLSearchParams(G.body),a=N9(b)}catch{return e()}let Z={formMethod:t,formAction:n,formEncType:G&&G.formEncType||"application/x-www-form-urlencoded",formData:a,json:void 0,text:void 0};if(cn(Z.formMethod))return{path:c,submission:Z};let W=ab(c);return l&&W.search&&rg(W.search)&&b.append("index",""),W.search="?"+b,{path:MF(W),submission:Z}}function xaI(I,l){let c=I;if(l){let G=I.findIndex(e=>e.route.id===l);G>=0&&(c=I.slice(0,G))}return c}function V9(I,l,c,G,e,d,t,n,b,a,Z,W,m,s,h,p){let V=p?Object.values(p)[0]:h?Object.values(h)[0]:void 0,o=I.createURL(l.location),F=I.createURL(e),X=p?Object.keys(p)[0]:void 0,Y=xaI(c,X).filter((B,C)=>{let{route:k}=B;if(k.lazy)return!0;if(k.loader==null)return!1;if(d)return k.loader.hydrate?!0:l.loaderData[k.id]===void 0&&(!l.errors||l.errors[k.id]===void 0);if(zaI(l.loaderData,l.matches[C],B)||n.some(A=>A===B.route.id))return!0;let N=l.matches[C],J=B;return i9(B,QG({currentUrl:o,currentParams:N.params,nextUrl:F,nextParams:J.params},G,{actionResult:V,defaultShouldRevalidate:t||o.pathname+o.search===F.pathname+F.search||o.search!==F.search||wS(N,J)}))}),R=[];return Z.forEach((B,C)=>{if(d||!c.some(M=>M.route.id===B.routeId)||a.has(C))return;let k=am(m,B.path,s);if(!k){R.push({key:C,routeId:B.routeId,path:B.path,matches:null,match:null,controller:null});return}let N=l.fetchers.get(C),J=_Q(k,B.path),A=!1;W.has(C)?A=!1:b.includes(C)?A=!0:N&&N.state!=="idle"&&N.data===void 0?A=t:A=i9(J,QG({currentUrl:o,currentParams:l.matches[l.matches.length-1].params,nextUrl:F,nextParams:c[c.length-1].params},G,{actionResult:V,defaultShouldRevalidate:t})),A&&R.push({key:C,routeId:B.routeId,path:B.path,matches:k,match:J,controller:new AbortController})}),[Y,R]}function zaI(I,l,c){let G=!l||c.route.id!==l.route.id,e=I[c.route.id]===void 0;return G||e}function wS(I,l){let c=I.route.path;return I.pathname!==l.pathname||c!=null&&c.endsWith("*")&&I.params["*"]!==l.params["*"]}function i9(I,l){if(I.route.shouldRevalidate){let c=I.route.shouldRevalidate(l);if(typeof c=="boolean")return c}return l.defaultShouldRevalidate}async function F9(I,l,c){if(!I.lazy)return;let G=await I.lazy();if(!I.lazy)return;let e=c[I.id];Fc(e,"No route found in manifest");let d={};for(let t in G){let b=e[t]!==void 0&&t!=="hasErrorBoundary";MW(!b,'Route "'+e.id+'" has a static property "'+t+'" defined but its lazy function is also returning a value for this property. '+('The lazy route property "'+t+'" will be ignored.')),!b&&!naI.has(t)&&(d[t]=G[t])}Object.assign(e,d),Object.assign(e,QG({},l(e),{lazy:void 0}))}async function Zs(I,l,c,G,e,d,t,n,b){b===void 0&&(b={});let a,Z,W,m=p=>{let V,o=new Promise((F,X)=>V=X);return W=()=>V(),l.signal.addEventListener("abort",W),Promise.race([p({request:l,params:c.params,context:b.requestContext}),o])};try{let p=c.route[I];if(c.route.lazy)if(p){let V,o=await Promise.all([m(p).catch(F=>{V=F}),F9(c.route,d,e)]);if(V)throw V;Z=o[0]}else if(await F9(c.route,d,e),p=c.route[I],p)Z=await m(p);else if(I==="action"){let V=new URL(l.url),o=V.pathname+V.search;throw Ft(405,{method:l.method,pathname:o,routeId:c.route.id})}else return{type:iG.data,data:void 0};else if(p)Z=await m(p);else{let V=new URL(l.url),o=V.pathname+V.search;throw Ft(404,{pathname:o})}Fc(Z!==void 0,"You defined "+(I==="action"?"an action":"a loader")+" for route "+('"'+c.route.id+"\" but didn't return anything from your `"+I+"` ")+"function. Please return a value or `null`.")}catch(p){a=iG.error,Z=p}finally{W&&l.signal.removeEventListener("abort",W)}if(faI(Z)){let p=Z.status;if(gaI.has(p)){let o=Z.headers.get("Location");if(Fc(o,"Redirects returned/thrown from loaders/actions must have a Location header"),!HS.test(o))o=OQ(new URL(l.url),G.slice(0,G.indexOf(c)+1),t,!0,o,n);else if(!b.isStaticRequest){let F=new URL(l.url),X=o.startsWith("//")?new URL(F.protocol+o):new URL(o),H=Hh(X.pathname,t)!=null;X.origin===F.origin&&H&&(o=X.pathname+X.search+X.hash)}if(b.isStaticRequest)throw Z.headers.set("Location",o),Z;return{type:iG.redirect,status:p,location:o,revalidate:Z.headers.get("X-Remix-Revalidate")!==null,reloadDocument:Z.headers.get("X-Remix-Reload-Document")!==null}}if(b.isRouteRequest)throw{type:a===iG.error?iG.error:iG.data,response:Z};let V;try{let o=Z.headers.get("Content-Type");o&&/\bapplication\/json\b/.test(o)?Z.body==null?V=null:V=await Z.json():V=await Z.text()}catch(o){return{type:iG.error,error:o}}return a===iG.error?{type:a,error:new RS(p,Z.statusText,V),headers:Z.headers}:{type:iG.data,data:V,statusCode:Z.status,headers:Z.headers}}if(a===iG.error)return{type:a,error:Z};if(MaI(Z)){var s,h;return{type:iG.deferred,deferredData:Z,statusCode:(s=Z.init)==null?void 0:s.status,headers:((h=Z.init)==null?void 0:h.headers)&&new Headers(Z.init.headers)}}return{type:iG.data,data:Z}}function Ws(I,l,c,G){let e=I.createURL(ES(l)).toString(),d={signal:c};if(G&&cn(G.formMethod)){let{formMethod:t,formEncType:n}=G;d.method=t.toUpperCase(),n==="application/json"?(d.headers=new Headers({"Content-Type":n}),d.body=JSON.stringify(G.json)):n==="text/plain"?d.body=G.text:n==="application/x-www-form-urlencoded"&&G.formData?d.body=PQ(G.formData):d.body=G.formData}return new Request(e,d)}function PQ(I){let l=new URLSearchParams;for(let[c,G]of I.entries())l.append(c,typeof G=="string"?G:G.name);return l}function N9(I){let l=new FormData;for(let[c,G]of I.entries())l.append(c,G);return l}function UaI(I,l,c,G,e){let d={},t=null,n,b=!1,a={};return c.forEach((Z,W)=>{let m=l[W].route.id;if(Fc(!ZW(Z),"Cannot handle redirect results in processLoaderData"),Zm(Z)){let s=eu(I,m),h=Z.error;G&&(h=Object.values(G)[0],G=void 0),t=t||{},t[s.route.id]==null&&(t[s.route.id]=h),d[m]=void 0,b||(b=!0,n=YS(Z.error)?Z.error.status:500),Z.headers&&(a[m]=Z.headers)}else aW(Z)?(e.set(m,Z.deferredData),d[m]=Z.deferredData.data):d[m]=Z.data,Z.statusCode!=null&&Z.statusCode!==200&&!b&&(n=Z.statusCode),Z.headers&&(a[m]=Z.headers)}),G&&(t=G,d[Object.keys(G)[0]]=void 0),{loaderData:d,errors:t,statusCode:n||200,loaderHeaders:a}}function R9(I,l,c,G,e,d,t,n){let{loaderData:b,errors:a}=UaI(l,c,G,e,n);for(let Z=0;ZG.route.id===l)+1):[...I]).reverse().find(G=>G.route.hasErrorBoundary===!0)||I[0]}function X9(I){let l=I.length===1?I[0]:I.find(c=>c.index||!c.path||c.path==="/")||{id:"__shim-error-route__"};return{matches:[{params:{},pathname:"",pathnameBase:"",route:l}],route:l}}function Ft(I,l){let{pathname:c,routeId:G,method:e,type:d}=l===void 0?{}:l,t="Unknown Server Error",n="Unknown @remix-run/router error";return I===400?(t="Bad Request",e&&c&&G?n="You made a "+e+' request to "'+c+'" but '+('did not provide a `loader` for route "'+G+'", ')+"so there is no way to handle the request.":d==="defer-action"?n="defer() is not supported in actions":d==="invalid-body"&&(n="Unable to encode submission body")):I===403?(t="Forbidden",n='Route "'+G+'" does not match URL "'+c+'"'):I===404?(t="Not Found",n='No route matches URL "'+c+'"'):I===405&&(t="Method Not Allowed",e&&c&&G?n="You made a "+e.toUpperCase()+' request to "'+c+'" but '+('did not provide an `action` for route "'+G+'", ')+"so there is no way to handle the request.":e&&(n='Invalid request method "'+e.toUpperCase()+'"')),new RS(I||500,t,new Error(n),!0)}function H9(I){for(let l=I.length-1;l>=0;l--){let c=I[l];if(ZW(c))return{result:c,idx:l}}}function ES(I){let l=typeof I=="string"?ab(I):I;return MF(QG({},l,{hash:""}))}function CaI(I,l){return I.pathname!==l.pathname||I.search!==l.search?!1:I.hash===""?l.hash!=="":I.hash===l.hash?!0:l.hash!==""}function aW(I){return I.type===iG.deferred}function Zm(I){return I.type===iG.error}function ZW(I){return(I&&I.type)===iG.redirect}function MaI(I){let l=I;return l&&typeof l=="object"&&typeof l.data=="object"&&typeof l.subscribe=="function"&&typeof l.cancel=="function"&&typeof l.resolveData=="function"}function faI(I){return I!=null&&typeof I.status=="number"&&typeof I.statusText=="string"&&typeof I.headers=="object"&&typeof I.body<"u"}function KaI(I){return vaI.has(I.toLowerCase())}function cn(I){return waI.has(I.toLowerCase())}async function Q9(I,l,c,G,e,d){for(let t=0;tW.route.id===b.route.id),Z=a!=null&&!wS(a,b)&&(d&&d[b.route.id])!==void 0;if(aW(n)&&(e||Z)){let W=G[t];Fc(W,"Expected an AbortSignal for revalidating fetcher deferred result"),await vS(n,W,e).then(m=>{m&&(c[t]=m||c[t])})}}}async function vS(I,l,c){if(c===void 0&&(c=!1),!await I.deferredData.resolveData(l)){if(c)try{return{type:iG.data,data:I.deferredData.unwrappedData}}catch(e){return{type:iG.error,error:e}}return{type:iG.data,data:I.deferredData.data}}}function rg(I){return new URLSearchParams(I).getAll("index").some(l=>l==="")}function _Q(I,l){let c=typeof l=="string"?ab(l).search:l.search;if(I[I.length-1].route.index&&rg(c||""))return I[I.length-1];let G=iS(I);return G[G.length-1]}function w9(I){let{formMethod:l,formAction:c,formEncType:G,text:e,formData:d,json:t}=I;if(!(!l||!c||!G)){if(e!=null)return{formMethod:l,formAction:c,formEncType:G,formData:void 0,json:void 0,text:e};if(d!=null)return{formMethod:l,formAction:c,formEncType:G,formData:d,json:void 0,text:void 0};if(t!==void 0)return{formMethod:l,formAction:c,formEncType:G,formData:void 0,json:t,text:void 0}}}function oY(I,l){return l?{state:"loading",location:I,formMethod:l.formMethod,formAction:l.formAction,formEncType:l.formEncType,formData:l.formData,json:l.json,text:l.text}:{state:"loading",location:I,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0}}function LaI(I,l){return{state:"submitting",location:I,formMethod:l.formMethod,formAction:l.formAction,formEncType:l.formEncType,formData:l.formData,json:l.json,text:l.text}}function rs(I,l){return I?{state:"loading",formMethod:I.formMethod,formAction:I.formAction,formEncType:I.formEncType,formData:I.formData,json:I.json,text:I.text,data:l}:{state:"loading",formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data:l}}function SaI(I,l){return{state:"submitting",formMethod:I.formMethod,formAction:I.formAction,formEncType:I.formEncType,formData:I.formData,json:I.json,text:I.text,data:l?l.data:void 0}}function Ra(I){return{state:"idle",formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data:I}}function TaI(I,l){try{let c=I.sessionStorage.getItem(QS);if(c){let G=JSON.parse(c);for(let[e,d]of Object.entries(G||{}))d&&Array.isArray(d)&&l.set(e,new Set(d||[]))}}catch{}}function jaI(I,l){if(l.size>0){let c={};for(let[G,e]of l)c[G]=[...e];try{I.sessionStorage.setItem(QS,JSON.stringify(c))}catch(G){MW(!1,"Failed to save applied view transitions in sessionStorage ("+G+").")}}}/** - * React Router v6.22.3 + */function Fr(){return Fr=Object.assign?Object.assign.bind():function(e){for(var t=1;tc(h,typeof h=="string"?null:h.state,m===0?"default":void 0));let a=s(n??i.length-1),o=Sr.Pop,l=null;function s(h){return Math.min(Math.max(h,0),i.length-1)}function u(){return i[a]}function c(h,m,A){m===void 0&&(m=null);let B=qW(i?u().pathname:"/",h,m,A);return j0(B.pathname.charAt(0)==="/","relative pathnames are not supported in memory history: "+JSON.stringify(h)),B}function d(h){return typeof h=="string"?h:l1(h)}return{get index(){return a},get action(){return o},get location(){return u()},createHref:d,createURL(h){return new URL(d(h),"http://localhost")},encodeLocation(h){let m=typeof h=="string"?hs(h):h;return{pathname:m.pathname||"",search:m.search||"",hash:m.hash||""}},push(h,m){o=Sr.Push;let A=c(h,m);a+=1,i.splice(a,i.length,A),r&&l&&l({action:o,location:A,delta:1})},replace(h,m){o=Sr.Replace;let A=c(h,m);i[a]=A,r&&l&&l({action:o,location:A,delta:0})},go(h){o=Sr.Pop;let m=s(a+h),A=i[m];a=m,l&&l({action:o,location:A,delta:h})},listen(h){return l=h,()=>{l=null}}}}function gn(e,t){if(e===!1||e===null||typeof e>"u")throw new Error(t)}function j0(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function iue(){return Math.random().toString(36).substr(2,8)}function qW(e,t,n,r){return n===void 0&&(n=null),Fr({pathname:typeof e=="string"?e:e.pathname,search:"",hash:""},typeof t=="string"?hs(t):t,{state:n,key:t&&t.key||r||iue()})}function l1(e){let{pathname:t="/",search:n="",hash:r=""}=e;return n&&n!=="?"&&(t+=n.charAt(0)==="?"?n:"?"+n),r&&r!=="#"&&(t+=r.charAt(0)==="#"?r:"#"+r),t}function hs(e){let t={};if(e){let n=e.indexOf("#");n>=0&&(t.hash=e.substr(n),e=e.substr(0,n));let r=e.indexOf("?");r>=0&&(t.search=e.substr(r),e=e.substr(0,r)),e&&(t.pathname=e)}return t}var fr;(function(e){e.data="data",e.deferred="deferred",e.redirect="redirect",e.error="error"})(fr||(fr={}));const aue=new Set(["lazy","caseSensitive","path","id","index","children"]);function oue(e){return e.index===!0}function ey(e,t,n,r){return n===void 0&&(n=[]),r===void 0&&(r={}),e.map((i,a)=>{let o=[...n,a],l=typeof i.id=="string"?i.id:o.join("-");if(gn(i.index!==!0||!i.children,"Cannot specify children on an index route"),gn(!r[l],'Found a route id collision on id "'+l+`". Route id's must be globally unique within Data Router usages`),oue(i)){let s=Fr({},i,t(i),{id:l});return r[l]=s,s}else{let s=Fr({},i,t(i),{id:l,children:void 0});return r[l]=s,i.children&&(s.children=ey(i.children,t,o,r)),s}})}function Qp(e,t,n){n===void 0&&(n="/");let r=typeof t=="string"?hs(t):t,i=N1(r.pathname||"/",n);if(i==null)return null;let a=vV(e);sue(a);let o=null;for(let l=0;o==null&&l{let s={relativePath:l===void 0?a.path||"":l,caseSensitive:a.caseSensitive===!0,childrenIndex:o,route:a};s.relativePath.startsWith("/")&&(gn(s.relativePath.startsWith(r),'Absolute route path "'+s.relativePath+'" nested under path '+('"'+r+'" is not valid. An absolute child route path ')+"must start with the combined path of all its parent routes."),s.relativePath=s.relativePath.slice(r.length));let u=Ps([r,s.relativePath]),c=n.concat(s);a.children&&a.children.length>0&&(gn(a.index!==!0,"Index routes must not have child routes. Please remove "+('all child routes from route path "'+u+'".')),vV(a.children,t,c,u)),!(a.path==null&&!a.index)&&t.push({path:u,score:fue(u,a.index),routesMeta:c})};return e.forEach((a,o)=>{var l;if(a.path===""||!((l=a.path)!=null&&l.includes("?")))i(a,o);else for(let s of KV(a.path))i(a,o,s)}),t}function KV(e){let t=e.split("/");if(t.length===0)return[];let[n,...r]=t,i=n.endsWith("?"),a=n.replace(/\?$/,"");if(r.length===0)return i?[a,""]:[a];let o=KV(r.join("/")),l=[];return l.push(...o.map(s=>s===""?a:[a,s].join("/"))),i&&l.push(...o),l.map(s=>e.startsWith("/")&&s===""?"/":s)}function sue(e){e.sort((t,n)=>t.score!==n.score?n.score-t.score:mue(t.routesMeta.map(r=>r.childrenIndex),n.routesMeta.map(r=>r.childrenIndex)))}const uue=/^:[\w-]+$/,cue=3,due=2,pue=1,gue=10,hue=-2,Ax=e=>e==="*";function fue(e,t){let n=e.split("/"),r=n.length;return n.some(Ax)&&(r+=hue),t&&(r+=due),n.filter(i=>!Ax(i)).reduce((i,a)=>i+(uue.test(a)?cue:a===""?pue:gue),r)}function mue(e,t){return e.length===t.length&&e.slice(0,-1).every((r,i)=>r===t[i])?e[e.length-1]-t[t.length-1]:0}function Aue(e,t){let{routesMeta:n}=e,r={},i="/",a=[];for(let o=0;o{let{paramName:g,isOptional:h}=c;if(g==="*"){let A=l[d]||"";o=a.slice(0,a.length-A.length).replace(/(.)\/+$/,"$1")}const m=l[d];return h&&!m?u[g]=void 0:u[g]=(m||"").replace(/%2F/g,"/"),u},{}),pathname:a,pathnameBase:o,pattern:e}}function Bue(e,t,n){t===void 0&&(t=!1),n===void 0&&(n=!0),j0(e==="*"||!e.endsWith("*")||e.endsWith("/*"),'Route path "'+e+'" will be treated as if it were '+('"'+e.replace(/\*$/,"/*")+'" because the `*` character must ')+"always follow a `/` in the pattern. To get rid of this warning, "+('please change the route path to "'+e.replace(/\*$/,"/*")+'".'));let r=[],i="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(o,l,s)=>(r.push({paramName:l,isOptional:s!=null}),s?"/?([^\\/]+)?":"/([^\\/]+)"));return e.endsWith("*")?(r.push({paramName:"*"}),i+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):n?i+="\\/*$":e!==""&&e!=="/"&&(i+="(?:(?=\\/|$))"),[new RegExp(i,t?void 0:"i"),r]}function wue(e){try{return e.split("/").map(t=>decodeURIComponent(t).replace(/\//g,"%2F")).join("/")}catch(t){return j0(!1,'The URL path "'+e+'" could not be decoded because it is is a malformed URL segment. This is probably due to a bad percent '+("encoding ("+t+").")),e}}function N1(e,t){if(t==="/")return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let n=t.endsWith("/")?t.length-1:t.length,r=e.charAt(n);return r&&r!=="/"?null:e.slice(n)||"/"}function bue(e,t){t===void 0&&(t="/");let{pathname:n,search:r="",hash:i=""}=typeof e=="string"?hs(e):e;return{pathname:n?n.startsWith("/")?n:vue(n,t):t,search:Que(r),hash:Wue(i)}}function vue(e,t){let n=t.replace(/\/+$/,"").split("/");return e.split("/").forEach(i=>{i===".."?n.length>1&&n.pop():i!=="."&&n.push(i)}),n.length>1?n.join("/"):"/"}function wv(e,t,n,r){return"Cannot include a '"+e+"' character in a manually specified "+("`to."+t+"` field ["+JSON.stringify(r)+"]. Please separate it out to the ")+("`to."+n+"` field. Alternatively you may provide the full path as ")+'a string in and the router will parse it for you.'}function QV(e){return e.filter((t,n)=>n===0||t.route.path&&t.route.path.length>0)}function hE(e,t){let n=QV(e);return t?n.map((r,i)=>i===e.length-1?r.pathname:r.pathnameBase):n.map(r=>r.pathnameBase)}function fE(e,t,n,r){r===void 0&&(r=!1);let i;typeof e=="string"?i=hs(e):(i=Fr({},e),gn(!i.pathname||!i.pathname.includes("?"),wv("?","pathname","search",i)),gn(!i.pathname||!i.pathname.includes("#"),wv("#","pathname","hash",i)),gn(!i.search||!i.search.includes("#"),wv("#","search","hash",i)));let a=e===""||i.pathname==="",o=a?"/":i.pathname,l;if(o==null)l=n;else{let d=t.length-1;if(!r&&o.startsWith("..")){let g=o.split("/");for(;g[0]==="..";)g.shift(),d-=1;i.pathname=g.join("/")}l=d>=0?t[d]:"/"}let s=bue(i,l),u=o&&o!=="/"&&o.endsWith("/"),c=(a||o===".")&&n.endsWith("/");return!s.pathname.endsWith("/")&&(u||c)&&(s.pathname+="/"),s}const Ps=e=>e.join("/").replace(/\/\/+/g,"/"),Kue=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),Que=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,Wue=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e;class WV{constructor(t,n,r,i){i===void 0&&(i=!1),this.status=t,this.statusText=n||"",this.internal=i,r instanceof Error?(this.data=r.toString(),this.error=r):this.data=r}}function mE(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}const yV=["post","put","patch","delete"],yue=new Set(yV),Fue=["get",...yV],Eue=new Set(Fue),Rue=new Set([301,302,303,307,308]),Sue=new Set([307,308]),bv={state:"idle",location:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},xue={state:"idle",data:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},Rg={state:"unblocked",proceed:void 0,reset:void 0,location:void 0},AE=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,Gue=e=>({hasErrorBoundary:!!e.hasErrorBoundary}),FV="remix-router-transitions";function kue(e){const t=e.window?e.window:typeof window<"u"?window:void 0,n=typeof t<"u"&&typeof t.document<"u"&&typeof t.document.createElement<"u",r=!n;gn(e.routes.length>0,"You must provide a non-empty routes array to createRouter");let i;if(e.mapRouteProperties)i=e.mapRouteProperties;else if(e.detectErrorBoundary){let ie=e.detectErrorBoundary;i=ge=>({hasErrorBoundary:ie(ge)})}else i=Gue;let a={},o=ey(e.routes,i,void 0,a),l,s=e.basename||"/",u=e.unstable_dataStrategy||Hue,c=Fr({v7_fetcherPersist:!1,v7_normalizeFormMethod:!1,v7_partialHydration:!1,v7_prependBasename:!1,v7_relativeSplatPath:!1,unstable_skipActionErrorRevalidation:!1},e.future),d=null,g=new Set,h=null,m=null,A=null,B=e.hydrationData!=null,C=Qp(o,e.history.location,s),b=null;if(C==null){let ie=Wo(404,{pathname:e.history.location.pathname}),{matches:ge,route:Fe}=Fx(o);C=ge,b={[Fe.id]:ie}}let Q,F=C.some(ie=>ie.route.lazy),K=C.some(ie=>ie.route.loader);if(F)Q=!1;else if(!K)Q=!0;else if(c.v7_partialHydration){let ie=e.hydrationData?e.hydrationData.loaderData:null,ge=e.hydrationData?e.hydrationData.errors:null,Fe=Le=>Le.route.loader?typeof Le.route.loader=="function"&&Le.route.loader.hydrate===!0?!1:ie&&ie[Le.route.id]!==void 0||ge&&ge[Le.route.id]!==void 0:!0;if(ge){let Le=C.findIndex(be=>ge[be.route.id]!==void 0);Q=C.slice(0,Le+1).every(Fe)}else Q=C.every(Fe)}else Q=e.hydrationData!=null;let y,G={historyAction:e.history.action,location:e.history.location,matches:C,initialized:Q,navigation:bv,restoreScrollPosition:e.hydrationData!=null?!1:null,preventScrollReset:!1,revalidation:"idle",loaderData:e.hydrationData&&e.hydrationData.loaderData||{},actionData:e.hydrationData&&e.hydrationData.actionData||null,errors:e.hydrationData&&e.hydrationData.errors||b,fetchers:new Map,blockers:new Map},X=Sr.Pop,H=!1,v,k=!1,D=new Map,V=null,z=!1,j=!1,te=[],J=[],I=new Map,se=0,Z=-1,S=new Map,q=new Set,T=new Map,ue=new Map,fe=new Set,_=new Map,Ze=new Map,ve=!1;function it(){if(d=e.history.listen(ie=>{let{action:ge,location:Fe,delta:Le}=ie;if(ve){ve=!1;return}j0(Ze.size===0||Le!=null,"You are trying to use a blocker on a POP navigation to a location that was not created by @remix-run/router. This will fail silently in production. This can happen if you are navigating outside the router via `window.history.pushState`/`window.location.hash` instead of using router navigation APIs. This can also happen if you are using createHashRouter and the user manually changes the URL.");let be=Pe({currentLocation:G.location,nextLocation:Fe,historyAction:ge});if(be&&Le!=null){ve=!0,e.history.go(Le*-1),ut(be,{state:"blocked",location:Fe,proceed(){ut(be,{state:"proceeding",proceed:void 0,reset:void 0,location:Fe}),e.history.go(Le)},reset(){let Je=new Map(G.blockers);Je.set(be,Rg),Oe({blockers:Je})}});return}return ht(ge,Fe)}),n){Pue(t,D);let ie=()=>jue(t,D);t.addEventListener("pagehide",ie),V=()=>t.removeEventListener("pagehide",ie)}return G.initialized||ht(Sr.Pop,G.location,{initialHydration:!0}),y}function et(){d&&d(),V&&V(),g.clear(),v&&v.abort(),G.fetchers.forEach((ie,ge)=>ae(ge)),G.blockers.forEach((ie,ge)=>Ne(ge))}function ot(ie){return g.add(ie),()=>g.delete(ie)}function Oe(ie,ge){ge===void 0&&(ge={}),G=Fr({},G,ie);let Fe=[],Le=[];c.v7_fetcherPersist&&G.fetchers.forEach((be,Je)=>{be.state==="idle"&&(fe.has(Je)?Le.push(Je):Fe.push(Je))}),[...g].forEach(be=>be(G,{deletedFetchers:Le,unstable_viewTransitionOpts:ge.viewTransitionOpts,unstable_flushSync:ge.flushSync===!0})),c.v7_fetcherPersist&&(Fe.forEach(be=>G.fetchers.delete(be)),Le.forEach(be=>ae(be)))}function tt(ie,ge,Fe){var Le,be;let{flushSync:Je}=Fe===void 0?{}:Fe,Me=G.actionData!=null&&G.navigation.formMethod!=null&&ol(G.navigation.formMethod)&&G.navigation.state==="loading"&&((Le=ie.state)==null?void 0:Le._isRedirect)!==!0,ze;ge.actionData?Object.keys(ge.actionData).length>0?ze=ge.actionData:ze=null:Me?ze=G.actionData:ze=null;let Kt=ge.loaderData?Wx(G.loaderData,ge.loaderData,ge.matches||[],ge.errors):G.loaderData,St=G.blockers;St.size>0&&(St=new Map(St),St.forEach((yt,Rt)=>St.set(Rt,Rg)));let Qn=H===!0||G.navigation.formMethod!=null&&ol(G.navigation.formMethod)&&((be=ie.state)==null?void 0:be._isRedirect)!==!0;l&&(o=l,l=void 0),z||X===Sr.Pop||(X===Sr.Push?e.history.push(ie,ie.state):X===Sr.Replace&&e.history.replace(ie,ie.state));let un;if(X===Sr.Pop){let yt=D.get(G.location.pathname);yt&&yt.has(ie.pathname)?un={currentLocation:G.location,nextLocation:ie}:D.has(ie.pathname)&&(un={currentLocation:ie,nextLocation:G.location})}else if(k){let yt=D.get(G.location.pathname);yt?yt.add(ie.pathname):(yt=new Set([ie.pathname]),D.set(G.location.pathname,yt)),un={currentLocation:G.location,nextLocation:ie}}Oe(Fr({},ge,{actionData:ze,loaderData:Kt,historyAction:X,location:ie,initialized:!0,navigation:bv,revalidation:"idle",restoreScrollPosition:Cn(ie,ge.matches||G.matches),preventScrollReset:Qn,blockers:St}),{viewTransitionOpts:un,flushSync:Je===!0}),X=Sr.Pop,H=!1,k=!1,z=!1,j=!1,te=[],J=[]}async function st(ie,ge){if(typeof ie=="number"){e.history.go(ie);return}let Fe=ty(G.location,G.matches,s,c.v7_prependBasename,ie,c.v7_relativeSplatPath,ge==null?void 0:ge.fromRouteId,ge==null?void 0:ge.relative),{path:Le,submission:be,error:Je}=Cx(c.v7_normalizeFormMethod,!1,Fe,ge),Me=G.location,ze=qW(G.location,Le,ge&&ge.state);ze=Fr({},ze,e.history.encodeLocation(ze));let Kt=ge&&ge.replace!=null?ge.replace:void 0,St=Sr.Push;Kt===!0?St=Sr.Replace:Kt===!1||be!=null&&ol(be.formMethod)&&be.formAction===G.location.pathname+G.location.search&&(St=Sr.Replace);let Qn=ge&&"preventScrollReset"in ge?ge.preventScrollReset===!0:void 0,un=(ge&&ge.unstable_flushSync)===!0,yt=Pe({currentLocation:Me,nextLocation:ze,historyAction:St});if(yt){ut(yt,{state:"blocked",location:ze,proceed(){ut(yt,{state:"proceeding",proceed:void 0,reset:void 0,location:ze}),st(ie,ge)},reset(){let Rt=new Map(G.blockers);Rt.set(yt,Rg),Oe({blockers:Rt})}});return}return await ht(St,ze,{submission:be,pendingError:Je,preventScrollReset:Qn,replace:ge&&ge.replace,enableViewTransition:ge&&ge.unstable_viewTransition,flushSync:un})}function pt(){if(Ie(),Oe({revalidation:"loading"}),G.navigation.state!=="submitting"){if(G.navigation.state==="idle"){ht(G.historyAction,G.location,{startUninterruptedRevalidation:!0});return}ht(X||G.historyAction,G.navigation.location,{overrideNavigation:G.navigation})}}async function ht(ie,ge,Fe){v&&v.abort(),v=null,X=ie,z=(Fe&&Fe.startUninterruptedRevalidation)===!0,Hn(G.location,G.matches),H=(Fe&&Fe.preventScrollReset)===!0,k=(Fe&&Fe.enableViewTransition)===!0;let Le=l||o,be=Fe&&Fe.overrideNavigation,Je=Qp(Le,ge,s),Me=(Fe&&Fe.flushSync)===!0;if(!Je){let yt=Wo(404,{pathname:ge.pathname}),{matches:Rt,route:Xn}=Fx(Le);Gt(),tt(ge,{matches:Rt,loaderData:{},errors:{[Xn.id]:yt}},{flushSync:Me});return}if(G.initialized&&!j&&Yue(G.location,ge)&&!(Fe&&Fe.submission&&ol(Fe.submission.formMethod))){tt(ge,{matches:Je},{flushSync:Me});return}v=new AbortController;let ze=Ld(e.history,ge,v.signal,Fe&&Fe.submission),Kt;if(Fe&&Fe.pendingError)Kt=[Qh(Je).route.id,{type:fr.error,error:Fe.pendingError}];else if(Fe&&Fe.submission&&ol(Fe.submission.formMethod)){let yt=await lt(ze,ge,Fe.submission,Je,{replace:Fe.replace,flushSync:Me});if(yt.shortCircuited)return;Kt=yt.pendingActionResult,be=vv(ge,Fe.submission),Me=!1,ze=Ld(e.history,ze.url,ze.signal)}let{shortCircuited:St,loaderData:Qn,errors:un}=await P(ze,ge,Je,be,Fe&&Fe.submission,Fe&&Fe.fetcherSubmission,Fe&&Fe.replace,Fe&&Fe.initialHydration===!0,Me,Kt);St||(v=null,tt(ge,Fr({matches:Je},yx(Kt),{loaderData:Qn,errors:un})))}async function lt(ie,ge,Fe,Le,be){be===void 0&&(be={}),Ie();let Je=Jue(ge,Fe);Oe({navigation:Je},{flushSync:be.flushSync===!0});let Me,ze=ry(Le,ge);if(!ze.route.action&&!ze.route.lazy)Me={type:fr.error,error:Wo(405,{method:ie.method,pathname:ge.pathname,routeId:ze.route.id})};else if(Me=(await We("action",ie,[ze],Le))[0],ie.signal.aborted)return{shortCircuited:!0};if(W0(Me)){let Kt;return be&&be.replace!=null?Kt=be.replace:Kt=vx(Me.response.headers.get("Location"),new URL(ie.url),s)===G.location.pathname+G.location.search,await Qe(ie,Me,{submission:Fe,replace:Kt}),{shortCircuited:!0}}if(Q0(Me))throw Wo(400,{type:"defer-action"});if(Ro(Me)){let Kt=Qh(Le,ze.route.id);return(be&&be.replace)!==!0&&(X=Sr.Push),{pendingActionResult:[Kt.route.id,Me]}}return{pendingActionResult:[ze.route.id,Me]}}async function P(ie,ge,Fe,Le,be,Je,Me,ze,Kt,St){let Qn=Le||vv(ge,be),un=be||Je||Sx(Qn),yt=l||o,[Rt,Xn]=Bx(e.history,G,Fe,un,ge,c.v7_partialHydration&&ze===!0,c.unstable_skipActionErrorRevalidation,j,te,J,fe,T,q,yt,s,St);if(Gt(Nt=>!(Fe&&Fe.some(on=>on.route.id===Nt))||Rt&&Rt.some(on=>on.route.id===Nt)),Z=++se,Rt.length===0&&Xn.length===0){let Nt=Bt();return tt(ge,Fr({matches:Fe,loaderData:{},errors:St&&Ro(St[1])?{[St[0]]:St[1].error}:null},yx(St),Nt?{fetchers:new Map(G.fetchers)}:{}),{flushSync:Kt}),{shortCircuited:!0}}if(!z&&(!c.v7_partialHydration||!ze)){Xn.forEach(on=>{let En=G.fetchers.get(on.key),kn=Sg(void 0,En?En.data:void 0);G.fetchers.set(on.key,kn)});let Nt;St&&!Ro(St[1])?Nt={[St[0]]:St[1].data}:G.actionData&&(Object.keys(G.actionData).length===0?Nt=null:Nt=G.actionData),Oe(Fr({navigation:Qn},Nt!==void 0?{actionData:Nt}:{},Xn.length>0?{fetchers:new Map(G.fetchers)}:{}),{flushSync:Kt})}Xn.forEach(Nt=>{I.has(Nt.key)&&nt(Nt.key),Nt.controller&&I.set(Nt.key,Nt.controller)});let co=()=>Xn.forEach(Nt=>nt(Nt.key));v&&v.signal.addEventListener("abort",co);let{loaderResults:Wi,fetcherResults:Xi}=await Ee(G.matches,Fe,Rt,Xn,ie);if(ie.signal.aborted)return{shortCircuited:!0};v&&v.signal.removeEventListener("abort",co),Xn.forEach(Nt=>I.delete(Nt.key));let xa=Ex([...Wi,...Xi]);if(xa){if(xa.idx>=Rt.length){let Nt=Xn[xa.idx-Rt.length].key;q.add(Nt)}return await Qe(ie,xa.result,{replace:Me}),{shortCircuited:!0}}let{loaderData:vt,errors:oe}=Qx(G,Fe,Rt,Wi,St,Xn,Xi,_);_.forEach((Nt,on)=>{Nt.subscribe(En=>{(En||Nt.done)&&_.delete(on)})}),c.v7_partialHydration&&ze&&G.errors&&Object.entries(G.errors).filter(Nt=>{let[on]=Nt;return!Rt.some(En=>En.route.id===on)}).forEach(Nt=>{let[on,En]=Nt;oe=Object.assign(oe||{},{[on]:En})});let He=Bt(),At=$(Z),an=He||At||Xn.length>0;return Fr({loaderData:vt,errors:oe},an?{fetchers:new Map(G.fetchers)}:{})}function le(ie,ge,Fe,Le){if(r)throw new Error("router.fetch() was called during the server render, but it shouldn't be. You are likely calling a useFetcher() method in the body of your component. Try moving it to a useEffect or a callback.");I.has(ie)&&nt(ie);let be=(Le&&Le.unstable_flushSync)===!0,Je=l||o,Me=ty(G.location,G.matches,s,c.v7_prependBasename,Fe,c.v7_relativeSplatPath,ge,Le==null?void 0:Le.relative),ze=Qp(Je,Me,s);if(!ze){de(ie,ge,Wo(404,{pathname:Me}),{flushSync:be});return}let{path:Kt,submission:St,error:Qn}=Cx(c.v7_normalizeFormMethod,!0,Me,Le);if(Qn){de(ie,ge,Qn,{flushSync:be});return}let un=ry(ze,Kt);if(H=(Le&&Le.preventScrollReset)===!0,St&&ol(St.formMethod)){me(ie,ge,Kt,un,ze,be,St);return}T.set(ie,{routeId:ge,path:Kt}),Re(ie,ge,Kt,un,ze,be,St)}async function me(ie,ge,Fe,Le,be,Je,Me){if(Ie(),T.delete(ie),!Le.route.action&&!Le.route.lazy){let kn=Wo(405,{method:Me.formMethod,pathname:Fe,routeId:ge});de(ie,ge,kn,{flushSync:Je});return}let ze=G.fetchers.get(ie);Ce(ie,zue(Me,ze),{flushSync:Je});let Kt=new AbortController,St=Ld(e.history,Fe,Kt.signal,Me);I.set(ie,Kt);let Qn=se,yt=(await We("action",St,[Le],be))[0];if(St.signal.aborted){I.get(ie)===Kt&&I.delete(ie);return}if(c.v7_fetcherPersist&&fe.has(ie)){if(W0(yt)||Ro(yt)){Ce(ie,Du(void 0));return}}else{if(W0(yt))if(I.delete(ie),Z>Qn){Ce(ie,Du(void 0));return}else return q.add(ie),Ce(ie,Sg(Me)),Qe(St,yt,{fetcherSubmission:Me});if(Ro(yt)){de(ie,ge,yt.error);return}}if(Q0(yt))throw Wo(400,{type:"defer-action"});let Rt=G.navigation.location||G.location,Xn=Ld(e.history,Rt,Kt.signal),co=l||o,Wi=G.navigation.state!=="idle"?Qp(co,G.navigation.location,s):G.matches;gn(Wi,"Didn't find any matches after fetcher action");let Xi=++se;S.set(ie,Xi);let xa=Sg(Me,yt.data);G.fetchers.set(ie,xa);let[vt,oe]=Bx(e.history,G,Wi,Me,Rt,!1,c.unstable_skipActionErrorRevalidation,j,te,J,fe,T,q,co,s,[Le.route.id,yt]);oe.filter(kn=>kn.key!==ie).forEach(kn=>{let Ga=kn.key,Xr=G.fetchers.get(Ga),Pc=Sg(void 0,Xr?Xr.data:void 0);G.fetchers.set(Ga,Pc),I.has(Ga)&&nt(Ga),kn.controller&&I.set(Ga,kn.controller)}),Oe({fetchers:new Map(G.fetchers)});let He=()=>oe.forEach(kn=>nt(kn.key));Kt.signal.addEventListener("abort",He);let{loaderResults:At,fetcherResults:an}=await Ee(G.matches,Wi,vt,oe,Xn);if(Kt.signal.aborted)return;Kt.signal.removeEventListener("abort",He),S.delete(ie),I.delete(ie),oe.forEach(kn=>I.delete(kn.key));let Nt=Ex([...At,...an]);if(Nt){if(Nt.idx>=vt.length){let kn=oe[Nt.idx-vt.length].key;q.add(kn)}return Qe(Xn,Nt.result)}let{loaderData:on,errors:En}=Qx(G,G.matches,vt,At,void 0,oe,an,_);if(G.fetchers.has(ie)){let kn=Du(yt.data);G.fetchers.set(ie,kn)}$(Xi),G.navigation.state==="loading"&&Xi>Z?(gn(X,"Expected pending action"),v&&v.abort(),tt(G.navigation.location,{matches:Wi,loaderData:on,errors:En,fetchers:new Map(G.fetchers)})):(Oe({errors:En,loaderData:Wx(G.loaderData,on,Wi,En),fetchers:new Map(G.fetchers)}),j=!1)}async function Re(ie,ge,Fe,Le,be,Je,Me){let ze=G.fetchers.get(ie);Ce(ie,Sg(Me,ze?ze.data:void 0),{flushSync:Je});let Kt=new AbortController,St=Ld(e.history,Fe,Kt.signal);I.set(ie,Kt);let Qn=se,yt=(await We("loader",St,[Le],be))[0];if(Q0(yt)&&(yt=await xV(yt,St.signal,!0)||yt),I.get(ie)===Kt&&I.delete(ie),!St.signal.aborted){if(fe.has(ie)){Ce(ie,Du(void 0));return}if(W0(yt))if(Z>Qn){Ce(ie,Du(void 0));return}else{q.add(ie),await Qe(St,yt);return}if(Ro(yt)){de(ie,ge,yt.error);return}gn(!Q0(yt),"Unhandled fetcher deferred data"),Ce(ie,Du(yt.data))}}async function Qe(ie,ge,Fe){let{submission:Le,fetcherSubmission:be,replace:Je}=Fe===void 0?{}:Fe;ge.response.headers.has("X-Remix-Revalidate")&&(j=!0);let Me=ge.response.headers.get("Location");gn(Me,"Expected a Location header on the redirect Response"),Me=vx(Me,new URL(ie.url),s);let ze=qW(G.location,Me,{_isRedirect:!0});if(n){let Rt=!1;if(ge.response.headers.has("X-Remix-Reload-Document"))Rt=!0;else if(AE.test(Me)){const Xn=e.history.createURL(Me);Rt=Xn.origin!==t.location.origin||N1(Xn.pathname,s)==null}if(Rt){Je?t.location.replace(Me):t.location.assign(Me);return}}v=null;let Kt=Je===!0?Sr.Replace:Sr.Push,{formMethod:St,formAction:Qn,formEncType:un}=G.navigation;!Le&&!be&&St&&Qn&&un&&(Le=Sx(G.navigation));let yt=Le||be;if(Sue.has(ge.response.status)&&yt&&ol(yt.formMethod))await ht(Kt,ze,{submission:Fr({},yt,{formAction:Me}),preventScrollReset:H});else{let Rt=vv(ze,Le);await ht(Kt,ze,{overrideNavigation:Rt,fetcherSubmission:be,preventScrollReset:H})}}async function We(ie,ge,Fe,Le){try{let be=await Xue(u,ie,ge,Fe,Le,a,i);return await Promise.all(be.map((Je,Me)=>{if(Iue(Je)){let ze=Je.result;return{type:fr.redirect,response:Tue(ze,ge,Fe[Me].route.id,Le,s,c.v7_relativeSplatPath)}}return Mue(Je)}))}catch(be){return Fe.map(()=>({type:fr.error,error:be}))}}async function Ee(ie,ge,Fe,Le,be){let[Je,...Me]=await Promise.all([Fe.length?We("loader",be,Fe,ge):[],...Le.map(ze=>{if(ze.matches&&ze.match&&ze.controller){let Kt=Ld(e.history,ze.path,ze.controller.signal);return We("loader",Kt,[ze.match],ze.matches).then(St=>St[0])}else return Promise.resolve({type:fr.error,error:Wo(404,{pathname:ze.path})})})]);return await Promise.all([Rx(ie,Fe,Je,Je.map(()=>be.signal),!1,G.loaderData),Rx(ie,Le.map(ze=>ze.match),Me,Le.map(ze=>ze.controller?ze.controller.signal:null),!0)]),{loaderResults:Je,fetcherResults:Me}}function Ie(){j=!0,te.push(...Gt()),T.forEach((ie,ge)=>{I.has(ge)&&(J.push(ge),nt(ge))})}function Ce(ie,ge,Fe){Fe===void 0&&(Fe={}),G.fetchers.set(ie,ge),Oe({fetchers:new Map(G.fetchers)},{flushSync:(Fe&&Fe.flushSync)===!0})}function de(ie,ge,Fe,Le){Le===void 0&&(Le={});let be=Qh(G.matches,ge);ae(ie),Oe({errors:{[be.route.id]:Fe},fetchers:new Map(G.fetchers)},{flushSync:(Le&&Le.flushSync)===!0})}function we(ie){return c.v7_fetcherPersist&&(ue.set(ie,(ue.get(ie)||0)+1),fe.has(ie)&&fe.delete(ie)),G.fetchers.get(ie)||xue}function ae(ie){let ge=G.fetchers.get(ie);I.has(ie)&&!(ge&&ge.state==="loading"&&S.has(ie))&&nt(ie),T.delete(ie),S.delete(ie),q.delete(ie),fe.delete(ie),G.fetchers.delete(ie)}function xe(ie){if(c.v7_fetcherPersist){let ge=(ue.get(ie)||0)-1;ge<=0?(ue.delete(ie),fe.add(ie)):ue.set(ie,ge)}else ae(ie);Oe({fetchers:new Map(G.fetchers)})}function nt(ie){let ge=I.get(ie);gn(ge,"Expected fetch controller: "+ie),ge.abort(),I.delete(ie)}function ft(ie){for(let ge of ie){let Fe=we(ge),Le=Du(Fe.data);G.fetchers.set(ge,Le)}}function Bt(){let ie=[],ge=!1;for(let Fe of q){let Le=G.fetchers.get(Fe);gn(Le,"Expected fetcher: "+Fe),Le.state==="loading"&&(q.delete(Fe),ie.push(Fe),ge=!0)}return ft(ie),ge}function $(ie){let ge=[];for(let[Fe,Le]of S)if(Le0}function Ke(ie,ge){let Fe=G.blockers.get(ie)||Rg;return Ze.get(ie)!==ge&&Ze.set(ie,ge),Fe}function Ne(ie){G.blockers.delete(ie),Ze.delete(ie)}function ut(ie,ge){let Fe=G.blockers.get(ie)||Rg;gn(Fe.state==="unblocked"&&ge.state==="blocked"||Fe.state==="blocked"&&ge.state==="blocked"||Fe.state==="blocked"&&ge.state==="proceeding"||Fe.state==="blocked"&&ge.state==="unblocked"||Fe.state==="proceeding"&&ge.state==="unblocked","Invalid blocker state transition: "+Fe.state+" -> "+ge.state);let Le=new Map(G.blockers);Le.set(ie,ge),Oe({blockers:Le})}function Pe(ie){let{currentLocation:ge,nextLocation:Fe,historyAction:Le}=ie;if(Ze.size===0)return;Ze.size>1&&j0(!1,"A router only supports one blocker at a time");let be=Array.from(Ze.entries()),[Je,Me]=be[be.length-1],ze=G.blockers.get(Je);if(!(ze&&ze.state==="proceeding")&&Me({currentLocation:ge,nextLocation:Fe,historyAction:Le}))return Je}function Gt(ie){let ge=[];return _.forEach((Fe,Le)=>{(!ie||ie(Le))&&(Fe.cancel(),ge.push(Le),_.delete(Le))}),ge}function An(ie,ge,Fe){if(h=ie,A=ge,m=Fe||null,!B&&G.navigation===bv){B=!0;let Le=Cn(G.location,G.matches);Le!=null&&Oe({restoreScrollPosition:Le})}return()=>{h=null,A=null,m=null}}function Xt(ie,ge){return m&&m(ie,ge.map(Le=>lue(Le,G.loaderData)))||ie.key}function Hn(ie,ge){if(h&&A){let Fe=Xt(ie,ge);h[Fe]=A()}}function Cn(ie,ge){if(h){let Fe=Xt(ie,ge),Le=h[Fe];if(typeof Le=="number")return Le}return null}function rr(ie){a={},l=ey(ie,i,void 0,a)}return y={get basename(){return s},get future(){return c},get state(){return G},get routes(){return o},get window(){return t},initialize:it,subscribe:ot,enableScrollRestoration:An,navigate:st,fetch:le,revalidate:pt,createHref:ie=>e.history.createHref(ie),encodeLocation:ie=>e.history.encodeLocation(ie),getFetcher:we,deleteFetcher:xe,dispose:et,getBlocker:Ke,deleteBlocker:Ne,_internalFetchControllers:I,_internalActiveDeferreds:_,_internalSetRoutes:rr},y}function Due(e){return e!=null&&("formData"in e&&e.formData!=null||"body"in e&&e.body!==void 0)}function ty(e,t,n,r,i,a,o,l){let s,u;if(o){s=[];for(let d of t)if(s.push(d),d.route.id===o){u=d;break}}else s=t,u=t[t.length-1];let c=fE(i||".",hE(s,a),N1(e.pathname,n)||e.pathname,l==="path");return i==null&&(c.search=e.search,c.hash=e.hash),(i==null||i===""||i===".")&&u&&u.route.index&&!CE(c.search)&&(c.search=c.search?c.search.replace(/^\?/,"?index&"):"?index"),r&&n!=="/"&&(c.pathname=c.pathname==="/"?n:Ps([n,c.pathname])),l1(c)}function Cx(e,t,n,r){if(!r||!Due(r))return{path:n};if(r.formMethod&&!Oue(r.formMethod))return{path:n,error:Wo(405,{method:r.formMethod})};let i=()=>({path:n,error:Wo(400,{type:"invalid-body"})}),a=r.formMethod||"get",o=e?a.toUpperCase():a.toLowerCase(),l=RV(n);if(r.body!==void 0){if(r.formEncType==="text/plain"){if(!ol(o))return i();let g=typeof r.body=="string"?r.body:r.body instanceof FormData||r.body instanceof URLSearchParams?Array.from(r.body.entries()).reduce((h,m)=>{let[A,B]=m;return""+h+A+"="+B+` +`},""):String(r.body);return{path:n,submission:{formMethod:o,formAction:l,formEncType:r.formEncType,formData:void 0,json:void 0,text:g}}}else if(r.formEncType==="application/json"){if(!ol(o))return i();try{let g=typeof r.body=="string"?JSON.parse(r.body):r.body;return{path:n,submission:{formMethod:o,formAction:l,formEncType:r.formEncType,formData:void 0,json:g,text:void 0}}}catch{return i()}}}gn(typeof FormData=="function","FormData is not available in this environment");let s,u;if(r.formData)s=ny(r.formData),u=r.formData;else if(r.body instanceof FormData)s=ny(r.body),u=r.body;else if(r.body instanceof URLSearchParams)s=r.body,u=Kx(s);else if(r.body==null)s=new URLSearchParams,u=new FormData;else try{s=new URLSearchParams(r.body),u=Kx(s)}catch{return i()}let c={formMethod:o,formAction:l,formEncType:r&&r.formEncType||"application/x-www-form-urlencoded",formData:u,json:void 0,text:void 0};if(ol(c.formMethod))return{path:n,submission:c};let d=hs(n);return t&&d.search&&CE(d.search)&&s.append("index",""),d.search="?"+s,{path:l1(d),submission:c}}function Nue(e,t){let n=e;if(t){let r=e.findIndex(i=>i.route.id===t);r>=0&&(n=e.slice(0,r))}return n}function Bx(e,t,n,r,i,a,o,l,s,u,c,d,g,h,m,A){let B=A?Ro(A[1])?A[1].error:A[1].data:void 0,C=e.createURL(t.location),b=e.createURL(i),Q=A&&Ro(A[1])?A[0]:void 0,F=Q?Nue(n,Q):n,K=A?A[1].statusCode:void 0,y=o&&K&&K>=400,G=F.filter((H,v)=>{let{route:k}=H;if(k.lazy)return!0;if(k.loader==null)return!1;if(a)return typeof k.loader!="function"||k.loader.hydrate?!0:t.loaderData[k.id]===void 0&&(!t.errors||t.errors[k.id]===void 0);if(Zue(t.loaderData,t.matches[v],H)||s.some(z=>z===H.route.id))return!0;let D=t.matches[v],V=H;return wx(H,Fr({currentUrl:C,currentParams:D.params,nextUrl:b,nextParams:V.params},r,{actionResult:B,unstable_actionStatus:K,defaultShouldRevalidate:y?!1:l||C.pathname+C.search===b.pathname+b.search||C.search!==b.search||EV(D,V)}))}),X=[];return d.forEach((H,v)=>{if(a||!n.some(j=>j.route.id===H.routeId)||c.has(v))return;let k=Qp(h,H.path,m);if(!k){X.push({key:v,routeId:H.routeId,path:H.path,matches:null,match:null,controller:null});return}let D=t.fetchers.get(v),V=ry(k,H.path),z=!1;g.has(v)?z=!1:u.includes(v)?z=!0:D&&D.state!=="idle"&&D.data===void 0?z=l:z=wx(V,Fr({currentUrl:C,currentParams:t.matches[t.matches.length-1].params,nextUrl:b,nextParams:n[n.length-1].params},r,{actionResult:B,unstable_actionStatus:K,defaultShouldRevalidate:y?!1:l})),z&&X.push({key:v,routeId:H.routeId,path:H.path,matches:k,match:V,controller:new AbortController})}),[G,X]}function Zue(e,t,n){let r=!t||n.route.id!==t.route.id,i=e[n.route.id]===void 0;return r||i}function EV(e,t){let n=e.route.path;return e.pathname!==t.pathname||n!=null&&n.endsWith("*")&&e.params["*"]!==t.params["*"]}function wx(e,t){if(e.route.shouldRevalidate){let n=e.route.shouldRevalidate(t);if(typeof n=="boolean")return n}return t.defaultShouldRevalidate}async function bx(e,t,n){if(!e.lazy)return;let r=await e.lazy();if(!e.lazy)return;let i=n[e.id];gn(i,"No route found in manifest");let a={};for(let o in r){let s=i[o]!==void 0&&o!=="hasErrorBoundary";j0(!s,'Route "'+i.id+'" has a static property "'+o+'" defined but its lazy function is also returning a value for this property. '+('The lazy route property "'+o+'" will be ignored.')),!s&&!aue.has(o)&&(a[o]=r[o])}Object.assign(i,a),Object.assign(i,Fr({},t(i),{lazy:void 0}))}function Hue(e){return Promise.all(e.matches.map(t=>t.resolve()))}async function Xue(e,t,n,r,i,a,o,l){let s=r.reduce((d,g)=>d.add(g.route.id),new Set),u=new Set,c=await e({matches:i.map(d=>{let g=s.has(d.route.id);return Fr({},d,{shouldLoad:g,resolve:m=>(u.add(d.route.id),g?Lue(t,n,d,a,o,m,l):Promise.resolve({type:fr.data,result:void 0}))})}),request:n,params:i[0].params,context:l});return i.forEach(d=>gn(u.has(d.route.id),'`match.resolve()` was not called for route id "'+d.route.id+'". You must call `match.resolve()` on every match passed to `dataStrategy` to ensure all routes are properly loaded.')),c.filter((d,g)=>s.has(i[g].route.id))}async function Lue(e,t,n,r,i,a,o){let l,s,u=c=>{let d,g=new Promise((A,B)=>d=B);s=()=>d(),t.signal.addEventListener("abort",s);let h=A=>typeof c!="function"?Promise.reject(new Error("You cannot call the handler for a route which defines a boolean "+('"'+e+'" [routeId: '+n.route.id+"]"))):c({request:t,params:n.params,context:o},...A!==void 0?[A]:[]),m;return a?m=a(A=>h(A)):m=(async()=>{try{return{type:"data",result:await h()}}catch(A){return{type:"error",result:A}}})(),Promise.race([m,g])};try{let c=n.route[e];if(n.route.lazy)if(c){let d,[g]=await Promise.all([u(c).catch(h=>{d=h}),bx(n.route,i,r)]);if(d!==void 0)throw d;l=g}else if(await bx(n.route,i,r),c=n.route[e],c)l=await u(c);else if(e==="action"){let d=new URL(t.url),g=d.pathname+d.search;throw Wo(405,{method:t.method,pathname:g,routeId:n.route.id})}else return{type:fr.data,result:void 0};else if(c)l=await u(c);else{let d=new URL(t.url),g=d.pathname+d.search;throw Wo(404,{pathname:g})}gn(l.result!==void 0,"You defined "+(e==="action"?"an action":"a loader")+" for route "+('"'+n.route.id+"\" but didn't return anything from your `"+e+"` ")+"function. Please return a value or `null`.")}catch(c){return{type:fr.error,result:c}}finally{s&&t.signal.removeEventListener("abort",s)}return l}async function Mue(e){let{result:t,type:n,status:r}=e;if(SV(t)){let o;try{let l=t.headers.get("Content-Type");l&&/\bapplication\/json\b/.test(l)?t.body==null?o=null:o=await t.json():o=await t.text()}catch(l){return{type:fr.error,error:l}}return n===fr.error?{type:fr.error,error:new WV(t.status,t.statusText,o),statusCode:t.status,headers:t.headers}:{type:fr.data,data:o,statusCode:t.status,headers:t.headers}}if(n===fr.error)return{type:fr.error,error:t,statusCode:mE(t)?t.status:r};if(Uue(t)){var i,a;return{type:fr.deferred,deferredData:t,statusCode:(i=t.init)==null?void 0:i.status,headers:((a=t.init)==null?void 0:a.headers)&&new Headers(t.init.headers)}}return{type:fr.data,data:t,statusCode:r}}function Tue(e,t,n,r,i,a){let o=e.headers.get("Location");if(gn(o,"Redirects returned/thrown from loaders/actions must have a Location header"),!AE.test(o)){let l=r.slice(0,r.findIndex(s=>s.route.id===n)+1);o=ty(new URL(t.url),l,i,!0,o,a),e.headers.set("Location",o)}return e}function vx(e,t,n){if(AE.test(e)){let r=e,i=r.startsWith("//")?new URL(t.protocol+r):new URL(r),a=N1(i.pathname,n)!=null;if(i.origin===t.origin&&a)return i.pathname+i.search+i.hash}return e}function Ld(e,t,n,r){let i=e.createURL(RV(t)).toString(),a={signal:n};if(r&&ol(r.formMethod)){let{formMethod:o,formEncType:l}=r;a.method=o.toUpperCase(),l==="application/json"?(a.headers=new Headers({"Content-Type":l}),a.body=JSON.stringify(r.json)):l==="text/plain"?a.body=r.text:l==="application/x-www-form-urlencoded"&&r.formData?a.body=ny(r.formData):a.body=r.formData}return new Request(i,a)}function ny(e){let t=new URLSearchParams;for(let[n,r]of e.entries())t.append(n,typeof r=="string"?r:r.name);return t}function Kx(e){let t=new FormData;for(let[n,r]of e.entries())t.append(n,r);return t}function Vue(e,t,n,r,i,a){let o={},l=null,s,u=!1,c={},d=r&&Ro(r[1])?r[1].error:void 0;return n.forEach((g,h)=>{let m=t[h].route.id;if(gn(!W0(g),"Cannot handle redirect results in processLoaderData"),Ro(g)){let A=g.error;if(d!==void 0&&(A=d,d=void 0),l=l||{},a)l[m]=A;else{let B=Qh(e,m);l[B.route.id]==null&&(l[B.route.id]=A)}o[m]=void 0,u||(u=!0,s=mE(g.error)?g.error.status:500),g.headers&&(c[m]=g.headers)}else Q0(g)?(i.set(m,g.deferredData),o[m]=g.deferredData.data,g.statusCode!=null&&g.statusCode!==200&&!u&&(s=g.statusCode),g.headers&&(c[m]=g.headers)):(o[m]=g.data,g.statusCode&&g.statusCode!==200&&!u&&(s=g.statusCode),g.headers&&(c[m]=g.headers))}),d!==void 0&&r&&(l={[r[0]]:d},o[r[0]]=void 0),{loaderData:o,errors:l,statusCode:s||200,loaderHeaders:c}}function Qx(e,t,n,r,i,a,o,l){let{loaderData:s,errors:u}=Vue(t,n,r,i,l,!1);for(let c=0;cr.route.id===t)+1):[...e]).reverse().find(r=>r.route.hasErrorBoundary===!0)||e[0]}function Fx(e){let t=e.length===1?e[0]:e.find(n=>n.index||!n.path||n.path==="/")||{id:"__shim-error-route__"};return{matches:[{params:{},pathname:"",pathnameBase:"",route:t}],route:t}}function Wo(e,t){let{pathname:n,routeId:r,method:i,type:a}=t===void 0?{}:t,o="Unknown Server Error",l="Unknown @remix-run/router error";return e===400?(o="Bad Request",i&&n&&r?l="You made a "+i+' request to "'+n+'" but '+('did not provide a `loader` for route "'+r+'", ')+"so there is no way to handle the request.":a==="defer-action"?l="defer() is not supported in actions":a==="invalid-body"&&(l="Unable to encode submission body")):e===403?(o="Forbidden",l='Route "'+r+'" does not match URL "'+n+'"'):e===404?(o="Not Found",l='No route matches URL "'+n+'"'):e===405&&(o="Method Not Allowed",i&&n&&r?l="You made a "+i.toUpperCase()+' request to "'+n+'" but '+('did not provide an `action` for route "'+r+'", ')+"so there is no way to handle the request.":i&&(l='Invalid request method "'+i.toUpperCase()+'"')),new WV(e||500,o,new Error(l),!0)}function Ex(e){for(let t=e.length-1;t>=0;t--){let n=e[t];if(W0(n))return{result:n,idx:t}}}function RV(e){let t=typeof e=="string"?hs(e):e;return l1(Fr({},t,{hash:""}))}function Yue(e,t){return e.pathname!==t.pathname||e.search!==t.search?!1:e.hash===""?t.hash!=="":e.hash===t.hash?!0:t.hash!==""}function Iue(e){return SV(e.result)&&Rue.has(e.result.status)}function Q0(e){return e.type===fr.deferred}function Ro(e){return e.type===fr.error}function W0(e){return(e&&e.type)===fr.redirect}function Uue(e){let t=e;return t&&typeof t=="object"&&typeof t.data=="object"&&typeof t.subscribe=="function"&&typeof t.cancel=="function"&&typeof t.resolveData=="function"}function SV(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.headers=="object"&&typeof e.body<"u"}function Oue(e){return Eue.has(e.toLowerCase())}function ol(e){return yue.has(e.toLowerCase())}async function Rx(e,t,n,r,i,a){for(let o=0;od.route.id===s.route.id),c=u!=null&&!EV(u,s)&&(a&&a[s.route.id])!==void 0;if(Q0(l)&&(i||c)){let d=r[o];gn(d,"Expected an AbortSignal for revalidating fetcher deferred result"),await xV(l,d,i).then(g=>{g&&(n[o]=g||n[o])})}}}async function xV(e,t,n){if(n===void 0&&(n=!1),!await e.deferredData.resolveData(t)){if(n)try{return{type:fr.data,data:e.deferredData.unwrappedData}}catch(i){return{type:fr.error,error:i}}return{type:fr.data,data:e.deferredData.data}}}function CE(e){return new URLSearchParams(e).getAll("index").some(t=>t==="")}function ry(e,t){let n=typeof t=="string"?hs(t).search:t.search;if(e[e.length-1].route.index&&CE(n||""))return e[e.length-1];let r=QV(e);return r[r.length-1]}function Sx(e){let{formMethod:t,formAction:n,formEncType:r,text:i,formData:a,json:o}=e;if(!(!t||!n||!r)){if(i!=null)return{formMethod:t,formAction:n,formEncType:r,formData:void 0,json:void 0,text:i};if(a!=null)return{formMethod:t,formAction:n,formEncType:r,formData:a,json:void 0,text:void 0};if(o!==void 0)return{formMethod:t,formAction:n,formEncType:r,formData:void 0,json:o,text:void 0}}}function vv(e,t){return t?{state:"loading",location:e,formMethod:t.formMethod,formAction:t.formAction,formEncType:t.formEncType,formData:t.formData,json:t.json,text:t.text}:{state:"loading",location:e,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0}}function Jue(e,t){return{state:"submitting",location:e,formMethod:t.formMethod,formAction:t.formAction,formEncType:t.formEncType,formData:t.formData,json:t.json,text:t.text}}function Sg(e,t){return e?{state:"loading",formMethod:e.formMethod,formAction:e.formAction,formEncType:e.formEncType,formData:e.formData,json:e.json,text:e.text,data:t}:{state:"loading",formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data:t}}function zue(e,t){return{state:"submitting",formMethod:e.formMethod,formAction:e.formAction,formEncType:e.formEncType,formData:e.formData,json:e.json,text:e.text,data:t?t.data:void 0}}function Du(e){return{state:"idle",formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data:e}}function Pue(e,t){try{let n=e.sessionStorage.getItem(FV);if(n){let r=JSON.parse(n);for(let[i,a]of Object.entries(r||{}))a&&Array.isArray(a)&&t.set(i,new Set(a||[]))}}catch{}}function jue(e,t){if(t.size>0){let n={};for(let[r,i]of t)n[r]=[...i];try{e.sessionStorage.setItem(FV,JSON.stringify(n))}catch(r){j0(!1,"Failed to save applied view transitions in sessionStorage ("+r+").")}}}/** + * React Router v6.23.1 * * Copyright (c) Remix Software Inc. * @@ -87,8 +87,8 @@ Error generating stack: `+d.message+` * LICENSE.md file in the root directory of this source tree. * * @license MIT - */function Tm(){return Tm=Object.assign?Object.assign.bind():function(I){for(var l=1;l{n.current=!0}),E.useCallback(function(a,Z){if(Z===void 0&&(Z={}),!n.current)return;if(typeof a=="number"){G.go(a);return}let W=NS(a,JSON.parse(t),d,Z.relative==="path");I==null&&l!=="/"&&(W.pathname=W.pathname==="/"?l:$a([l,W.pathname])),(Z.replace?G.replace:G.push)(W,Z.state,Z)},[l,G,t,d,I])}const OaI=E.createContext(null);function PaI(I){let l=E.useContext(RZ).outlet;return l&&E.createElement(OaI.Provider,{value:I},l)}function _aI(){let{matches:I}=E.useContext(RZ),l=I[I.length-1];return l?l.params:{}}function qaI(I,l,c,G){SF()||Fc(!1);let{navigator:e}=E.useContext(KF),{matches:d}=E.useContext(RZ),t=d[d.length-1],n=t?t.params:{};t&&t.pathname;let b=t?t.pathnameBase:"/";t&&t.route;let a=TF(),Z;if(l){var W;let V=typeof l=="string"?ab(l):l;b==="/"||(W=V.pathname)!=null&&W.startsWith(b)||Fc(!1),Z=V}else Z=a;let m=Z.pathname||"/",s=m;if(b!=="/"){let V=b.replace(/^\//,"").split("/");s="/"+m.replace(/^\//,"").split("/").slice(V.length).join("/")}let h=am(I,{pathname:s}),p=GZI(h&&h.map(V=>Object.assign({},V,{params:Object.assign({},n,V.params),pathname:$a([b,e.encodeLocation?e.encodeLocation(V.pathname).pathname:V.pathname]),pathnameBase:V.pathnameBase==="/"?b:$a([b,e.encodeLocation?e.encodeLocation(V.pathnameBase).pathname:V.pathnameBase])})),d,c,G);return l&&p?E.createElement(LF.Provider,{value:{location:Tm({pathname:"/",search:"",hash:"",state:null,key:"default"},Z),navigationType:YG.Pop}},p):p}function $aI(){let I=kS(),l=YS(I)?I.status+" "+I.statusText:I instanceof Error?I.message:JSON.stringify(I),c=I instanceof Error?I.stack:null,e={padding:"0.5rem",backgroundColor:"rgba(200,200,200, 0.5)"},d=null;return E.createElement(E.Fragment,null,E.createElement("h2",null,"Unexpected Application Error!"),E.createElement("h3",{style:{fontStyle:"italic"}},l),c?E.createElement("pre",{style:e},c):null,d)}const IZI=E.createElement($aI,null);class lZI extends E.Component{constructor(l){super(l),this.state={location:l.location,revalidation:l.revalidation,error:l.error}}static getDerivedStateFromError(l){return{error:l}}static getDerivedStateFromProps(l,c){return c.location!==l.location||c.revalidation!=="idle"&&l.revalidation==="idle"?{error:l.error,location:l.location,revalidation:l.revalidation}:{error:l.error!==void 0?l.error:c.error,location:c.location,revalidation:l.revalidation||c.revalidation}}componentDidCatch(l,c){console.error("React Router caught the following error during render",l,c)}render(){return this.state.error!==void 0?E.createElement(RZ.Provider,{value:this.props.routeContext},E.createElement(AS.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function cZI(I){let{routeContext:l,match:c,children:G}=I,e=E.useContext(fF);return e&&e.static&&e.staticContext&&(c.route.errorElement||c.route.ErrorBoundary)&&(e.staticContext._deepestRenderedBoundaryId=c.route.id),E.createElement(RZ.Provider,{value:l},G)}function GZI(I,l,c,G){var e;if(l===void 0&&(l=[]),c===void 0&&(c=null),G===void 0&&(G=null),I==null){var d;if((d=c)!=null&&d.errors)I=c.matches;else return null}let t=I,n=(e=c)==null?void 0:e.errors;if(n!=null){let Z=t.findIndex(W=>W.route.id&&(n==null?void 0:n[W.route.id]));Z>=0||Fc(!1),t=t.slice(0,Math.min(t.length,Z+1))}let b=!1,a=-1;if(c&&G&&G.v7_partialHydration)for(let Z=0;Z=0?t=t.slice(0,a+1):t=[t[0]];break}}}return t.reduceRight((Z,W,m)=>{let s,h=!1,p=null,V=null;c&&(s=n&&W.route.id?n[W.route.id]:void 0,p=W.route.errorElement||IZI,b&&(a<0&&m===0?(bZI("route-fallback",!1),h=!0,V=null):a===m&&(h=!0,V=W.route.hydrateFallbackElement||null)));let o=l.concat(t.slice(0,m+1)),F=()=>{let X;return s?X=p:h?X=V:W.route.Component?X=E.createElement(W.route.Component,null):W.route.element?X=W.route.element:X=Z,E.createElement(cZI,{match:W,routeContext:{outlet:Z,matches:o,isDataRoute:c!=null},children:X})};return c&&(W.route.ErrorBoundary||W.route.errorElement||m===0)?E.createElement(lZI,{location:c.location,revalidation:c.revalidation,component:p,error:s,children:F(),routeContext:{outlet:null,matches:o,isDataRoute:!0}}):F()},null)}var JS=function(I){return I.UseBlocker="useBlocker",I.UseRevalidator="useRevalidator",I.UseNavigateStable="useNavigate",I}(JS||{}),AV=function(I){return I.UseBlocker="useBlocker",I.UseLoaderData="useLoaderData",I.UseActionData="useActionData",I.UseRouteError="useRouteError",I.UseNavigation="useNavigation",I.UseRouteLoaderData="useRouteLoaderData",I.UseMatches="useMatches",I.UseRevalidator="useRevalidator",I.UseNavigateStable="useNavigate",I.UseRouteId="useRouteId",I}(AV||{});function eZI(I){let l=E.useContext(fF);return l||Fc(!1),l}function dZI(I){let l=E.useContext(gS);return l||Fc(!1),l}function tZI(I){let l=E.useContext(RZ);return l||Fc(!1),l}function BS(I){let l=tZI(),c=l.matches[l.matches.length-1];return c.route.id||Fc(!1),c.route.id}function kS(){var I;let l=E.useContext(AS),c=dZI(AV.UseRouteError),G=BS(AV.UseRouteError);return l!==void 0?l:(I=c.errors)==null?void 0:I[G]}function nZI(){let{router:I}=eZI(JS.UseNavigateStable),l=BS(AV.UseNavigateStable),c=E.useRef(!1);return yS(()=>{c.current=!0}),E.useCallback(function(e,d){d===void 0&&(d={}),c.current&&(typeof e=="number"?I.navigate(e):I.navigate(e,Tm({fromRouteId:l},d)))},[I,l])}const E9={};function bZI(I,l,c){!l&&!E9[I]&&(E9[I]=!0)}function aZI(I){return PaI(I.context)}function ZZI(I){let{basename:l="/",children:c=null,location:G,navigationType:e=YG.Pop,navigator:d,static:t=!1,future:n}=I;SF()&&Fc(!1);let b=l.replace(/^\/*/,"/"),a=E.useMemo(()=>({basename:b,navigator:d,static:t,future:Tm({v7_relativeSplatPath:!1},n)}),[b,n,d,t]);typeof G=="string"&&(G=ab(G));let{pathname:Z="/",search:W="",hash:m="",state:s=null,key:h="default"}=G,p=E.useMemo(()=>{let V=Hh(Z,b);return V==null?null:{location:{pathname:V,search:W,hash:m,state:s,key:h},navigationType:e}},[b,Z,W,m,s,h,e]);return p==null?null:E.createElement(KF.Provider,{value:a},E.createElement(LF.Provider,{children:c,value:p}))}new Promise(()=>{});function WZI(I){let l={hasErrorBoundary:I.ErrorBoundary!=null||I.errorElement!=null};return I.Component&&Object.assign(l,{element:E.createElement(I.Component),Component:void 0}),I.HydrateFallback&&Object.assign(l,{hydrateFallbackElement:E.createElement(I.HydrateFallback),HydrateFallback:void 0}),I.ErrorBoundary&&Object.assign(l,{errorElement:E.createElement(I.ErrorBoundary),ErrorBoundary:void 0}),l}function rZI(I,l){return BaI({basename:l==null?void 0:l.basename,future:Tm({},l==null?void 0:l.future,{v7_prependBasename:!0}),history:daI({initialEntries:l==null?void 0:l.initialEntries,initialIndex:l==null?void 0:l.initialIndex}),hydrationData:l==null?void 0:l.hydrationData,routes:I,mapRouteProperties:WZI}).initialize()}/** - * React Router DOM v6.22.3 + */function s1(){return s1=Object.assign?Object.assign.bind():function(e){for(var t=1;t{l.current=!0}),E.useCallback(function(u,c){if(c===void 0&&(c={}),!l.current)return;if(typeof u=="number"){r.go(u);return}let d=fE(u,JSON.parse(o),a,c.relative==="path");e==null&&t!=="/"&&(d.pathname=d.pathname==="/"?t:Ps([t,d.pathname])),(c.replace?r.replace:r.push)(d,c.state,c)},[t,r,o,a,e])}const que=E.createContext(null);function ece(e){let t=E.useContext(gu).outlet;return t&&E.createElement(que.Provider,{value:e},t)}function tce(){let{matches:e}=E.useContext(gu),t=e[e.length-1];return t?t.params:{}}function NV(e,t){let{relative:n}=t===void 0?{}:t,{future:r}=E.useContext(ud),{matches:i}=E.useContext(gu),{pathname:a}=Hc(),o=JSON.stringify(hE(i,r.v7_relativeSplatPath));return E.useMemo(()=>fE(e,JSON.parse(o),a,n==="path"),[e,o,a,n])}function nce(e,t,n,r){Uf()||gn(!1);let{navigator:i}=E.useContext(ud),{matches:a}=E.useContext(gu),o=a[a.length-1],l=o?o.params:{};o&&o.pathname;let s=o?o.pathnameBase:"/";o&&o.route;let u=Hc(),c;if(t){var d;let B=typeof t=="string"?hs(t):t;s==="/"||(d=B.pathname)!=null&&d.startsWith(s)||gn(!1),c=B}else c=u;let g=c.pathname||"/",h=g;if(s!=="/"){let B=s.replace(/^\//,"").split("/");h="/"+g.replace(/^\//,"").split("/").slice(B.length).join("/")}let m=Qp(e,{pathname:h}),A=lce(m&&m.map(B=>Object.assign({},B,{params:Object.assign({},l,B.params),pathname:Ps([s,i.encodeLocation?i.encodeLocation(B.pathname).pathname:B.pathname]),pathnameBase:B.pathnameBase==="/"?s:Ps([s,i.encodeLocation?i.encodeLocation(B.pathnameBase).pathname:B.pathnameBase])})),a,n,r);return t&&A?E.createElement(e3.Provider,{value:{location:s1({pathname:"/",search:"",hash:"",state:null,key:"default"},c),navigationType:Sr.Pop}},A):A}function rce(){let e=XV(),t=mE(e)?e.status+" "+e.statusText:e instanceof Error?e.message:JSON.stringify(e),n=e instanceof Error?e.stack:null,i={padding:"0.5rem",backgroundColor:"rgba(200,200,200, 0.5)"},a=null;return E.createElement(E.Fragment,null,E.createElement("h2",null,"Unexpected Application Error!"),E.createElement("h3",{style:{fontStyle:"italic"}},t),n?E.createElement("pre",{style:i},n):null,a)}const ice=E.createElement(rce,null);class ace extends E.Component{constructor(t){super(t),this.state={location:t.location,revalidation:t.revalidation,error:t.error}}static getDerivedStateFromError(t){return{error:t}}static getDerivedStateFromProps(t,n){return n.location!==t.location||n.revalidation!=="idle"&&t.revalidation==="idle"?{error:t.error,location:t.location,revalidation:t.revalidation}:{error:t.error!==void 0?t.error:n.error,location:n.location,revalidation:t.revalidation||n.revalidation}}componentDidCatch(t,n){console.error("React Router caught the following error during render",t,n)}render(){return this.state.error!==void 0?E.createElement(gu.Provider,{value:this.props.routeContext},E.createElement(kV.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function oce(e){let{routeContext:t,match:n,children:r}=e,i=E.useContext(q4);return i&&i.static&&i.staticContext&&(n.route.errorElement||n.route.ErrorBoundary)&&(i.staticContext._deepestRenderedBoundaryId=n.route.id),E.createElement(gu.Provider,{value:t},r)}function lce(e,t,n,r){var i;if(t===void 0&&(t=[]),n===void 0&&(n=null),r===void 0&&(r=null),e==null){var a;if((a=n)!=null&&a.errors)e=n.matches;else return null}let o=e,l=(i=n)==null?void 0:i.errors;if(l!=null){let c=o.findIndex(d=>d.route.id&&(l==null?void 0:l[d.route.id])!==void 0);c>=0||gn(!1),o=o.slice(0,Math.min(o.length,c+1))}let s=!1,u=-1;if(n&&r&&r.v7_partialHydration)for(let c=0;c=0?o=o.slice(0,u+1):o=[o[0]];break}}}return o.reduceRight((c,d,g)=>{let h,m=!1,A=null,B=null;n&&(h=l&&d.route.id?l[d.route.id]:void 0,A=d.route.errorElement||ice,s&&(u<0&&g===0?(pce("route-fallback",!1),m=!0,B=null):u===g&&(m=!0,B=d.route.hydrateFallbackElement||null)));let C=t.concat(o.slice(0,g+1)),b=()=>{let Q;return h?Q=A:m?Q=B:d.route.Component?Q=E.createElement(d.route.Component,null):d.route.element?Q=d.route.element:Q=c,E.createElement(oce,{match:d,routeContext:{outlet:c,matches:C,isDataRoute:n!=null},children:Q})};return n&&(d.route.ErrorBoundary||d.route.errorElement||g===0)?E.createElement(ace,{location:n.location,revalidation:n.revalidation,component:A,error:h,children:b(),routeContext:{outlet:null,matches:C,isDataRoute:!0}}):b()},null)}var ZV=function(e){return e.UseBlocker="useBlocker",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e}(ZV||{}),_C=function(e){return e.UseBlocker="useBlocker",e.UseLoaderData="useLoaderData",e.UseActionData="useActionData",e.UseRouteError="useRouteError",e.UseNavigation="useNavigation",e.UseRouteLoaderData="useRouteLoaderData",e.UseMatches="useMatches",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e.UseRouteId="useRouteId",e}(_C||{});function sce(e){let t=E.useContext(q4);return t||gn(!1),t}function uce(e){let t=E.useContext(GV);return t||gn(!1),t}function cce(e){let t=E.useContext(gu);return t||gn(!1),t}function HV(e){let t=cce(),n=t.matches[t.matches.length-1];return n.route.id||gn(!1),n.route.id}function XV(){var e;let t=E.useContext(kV),n=uce(_C.UseRouteError),r=HV(_C.UseRouteError);return t!==void 0?t:(e=n.errors)==null?void 0:e[r]}function dce(){let{router:e}=sce(ZV.UseNavigateStable),t=HV(_C.UseNavigateStable),n=E.useRef(!1);return DV(()=>{n.current=!0}),E.useCallback(function(i,a){a===void 0&&(a={}),n.current&&(typeof i=="number"?e.navigate(i):e.navigate(i,s1({fromRouteId:t},a)))},[e,t])}const xx={};function pce(e,t,n){!t&&!xx[e]&&(xx[e]=!0)}function gce(e){return ece(e.context)}function hce(e){let{basename:t="/",children:n=null,location:r,navigationType:i=Sr.Pop,navigator:a,static:o=!1,future:l}=e;Uf()&&gn(!1);let s=t.replace(/^\/*/,"/"),u=E.useMemo(()=>({basename:s,navigator:a,static:o,future:s1({v7_relativeSplatPath:!1},l)}),[s,l,a,o]);typeof r=="string"&&(r=hs(r));let{pathname:c="/",search:d="",hash:g="",state:h=null,key:m="default"}=r,A=E.useMemo(()=>{let B=N1(c,s);return B==null?null:{location:{pathname:B,search:d,hash:g,state:h,key:m},navigationType:i}},[s,c,d,g,h,m,i]);return A==null?null:E.createElement(ud.Provider,{value:u},E.createElement(e3.Provider,{children:n,value:A}))}new Promise(()=>{});function fce(e){let t={hasErrorBoundary:e.ErrorBoundary!=null||e.errorElement!=null};return e.Component&&Object.assign(t,{element:E.createElement(e.Component),Component:void 0}),e.HydrateFallback&&Object.assign(t,{hydrateFallbackElement:E.createElement(e.HydrateFallback),HydrateFallback:void 0}),e.ErrorBoundary&&Object.assign(t,{errorElement:E.createElement(e.ErrorBoundary),ErrorBoundary:void 0}),t}function mce(e,t){return kue({basename:t==null?void 0:t.basename,future:s1({},t==null?void 0:t.future,{v7_prependBasename:!0}),history:rue({initialEntries:t==null?void 0:t.initialEntries,initialIndex:t==null?void 0:t.initialIndex}),hydrationData:t==null?void 0:t.hydrationData,routes:e,mapRouteProperties:fce,unstable_dataStrategy:t==null?void 0:t.unstable_dataStrategy}).initialize()}/** + * React Router DOM v6.23.1 * * Copyright (c) Remix Software Inc. * @@ -96,27 +96,55 @@ Error generating stack: `+d.message+` * LICENSE.md file in the root directory of this source tree. * * @license MIT - */const mZI="6";try{window.__reactRouterVersion=mZI}catch{}const sZI=E.createContext({isTransitioning:!1}),uZI=E.createContext(new Map),hZI="startTransition",v9=_H[hZI],pZI="flushSync",g9=GbI[pZI];function oZI(I){v9?v9(I):I()}function ms(I){g9?g9(I):I()}class VZI{constructor(){this.status="pending",this.promise=new Promise((l,c)=>{this.resolve=G=>{this.status==="pending"&&(this.status="resolved",l(G))},this.reject=G=>{this.status==="pending"&&(this.status="rejected",c(G))}})}}function iZI(I){let{fallbackElement:l,router:c,future:G}=I,[e,d]=E.useState(c.state),[t,n]=E.useState(),[b,a]=E.useState({isTransitioning:!1}),[Z,W]=E.useState(),[m,s]=E.useState(),[h,p]=E.useState(),V=E.useRef(new Map),{v7_startTransition:o}=G||{},F=E.useCallback(B=>{o?oZI(B):B()},[o]),X=E.useCallback((B,C)=>{let{deletedFetchers:k,unstable_flushSync:N,unstable_viewTransitionOpts:J}=C;k.forEach(M=>V.current.delete(M)),B.fetchers.forEach((M,D)=>{M.data!==void 0&&V.current.set(D,M.data)});let A=c.window==null||typeof c.window.document.startViewTransition!="function";if(!J||A){N?ms(()=>d(B)):F(()=>d(B));return}if(N){ms(()=>{m&&(Z&&Z.resolve(),m.skipTransition()),a({isTransitioning:!0,flushSync:!0,currentLocation:J.currentLocation,nextLocation:J.nextLocation})});let M=c.window.document.startViewTransition(()=>{ms(()=>d(B))});M.finished.finally(()=>{ms(()=>{W(void 0),s(void 0),n(void 0),a({isTransitioning:!1})})}),ms(()=>s(M));return}m?(Z&&Z.resolve(),m.skipTransition(),p({state:B,currentLocation:J.currentLocation,nextLocation:J.nextLocation})):(n(B),a({isTransitioning:!0,flushSync:!1,currentLocation:J.currentLocation,nextLocation:J.nextLocation}))},[c.window,m,Z,V,F]);E.useLayoutEffect(()=>c.subscribe(X),[c,X]),E.useEffect(()=>{b.isTransitioning&&!b.flushSync&&W(new VZI)},[b]),E.useEffect(()=>{if(Z&&t&&c.window){let B=t,C=Z.promise,k=c.window.document.startViewTransition(async()=>{F(()=>d(B)),await C});k.finished.finally(()=>{W(void 0),s(void 0),n(void 0),a({isTransitioning:!1})}),s(k)}},[F,t,Z,c.window]),E.useEffect(()=>{Z&&t&&e.location.key===t.location.key&&Z.resolve()},[Z,m,e.location,t]),E.useEffect(()=>{!b.isTransitioning&&h&&(n(h.state),a({isTransitioning:!0,flushSync:!1,currentLocation:h.currentLocation,nextLocation:h.nextLocation}),p(void 0))},[b.isTransitioning,h]),E.useEffect(()=>{},[]);let H=E.useMemo(()=>({createHref:c.createHref,encodeLocation:c.encodeLocation,go:B=>c.navigate(B),push:(B,C,k)=>c.navigate(B,{state:C,preventScrollReset:k==null?void 0:k.preventScrollReset}),replace:(B,C,k)=>c.navigate(B,{replace:!0,state:C,preventScrollReset:k==null?void 0:k.preventScrollReset})}),[c]),Y=c.basename||"/",R=E.useMemo(()=>({router:c,navigator:H,static:!1,basename:Y}),[c,H,Y]);return E.createElement(E.Fragment,null,E.createElement(fF.Provider,{value:R},E.createElement(gS.Provider,{value:e},E.createElement(uZI.Provider,{value:V.current},E.createElement(sZI.Provider,{value:b},E.createElement(ZZI,{basename:Y,location:e.location,navigationType:e.historyAction,navigator:H,future:{v7_relativeSplatPath:c.future.v7_relativeSplatPath}},e.initialized||c.future.v7_partialHydration?E.createElement(FZI,{routes:c.routes,future:c.future,state:e}):l))))),null)}function FZI(I){let{routes:l,future:c,state:G}=I;return qaI(l,void 0,G,c)}var A9;(function(I){I.UseScrollRestoration="useScrollRestoration",I.UseSubmit="useSubmit",I.UseSubmitFetcher="useSubmitFetcher",I.UseFetcher="useFetcher",I.useViewTransitionState="useViewTransitionState"})(A9||(A9={}));var y9;(function(I){I.UseFetcher="useFetcher",I.UseFetchers="useFetchers",I.UseScrollRestoration="useScrollRestoration"})(y9||(y9={}));function NZI({title:I,titleId:l,...c},G){return E.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:G,"aria-labelledby":l},c),I?E.createElement("title",{id:l},I):null,E.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.75 9V5.25A2.25 2.25 0 0 0 13.5 3h-6a2.25 2.25 0 0 0-2.25 2.25v13.5A2.25 2.25 0 0 0 7.5 21h6a2.25 2.25 0 0 0 2.25-2.25V15M12 9l-3 3m0 0 3 3m-3-3h12.75"}))}const RZI=E.forwardRef(NZI),YZI=RZI;function XZI({title:I,titleId:l,...c},G){return E.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:G,"aria-labelledby":l},c),I?E.createElement("title",{id:l},I):null,E.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M10.5 19.5 3 12m0 0 7.5-7.5M3 12h18"}))}const HZI=E.forwardRef(XZI),h0=HZI;function QZI({title:I,titleId:l,...c},G){return E.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:G,"aria-labelledby":l},c),I?E.createElement("title",{id:l},I):null,E.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M13.5 4.5 21 12m0 0-7.5 7.5M21 12H3"}))}const wZI=E.forwardRef(QZI),EZI=wZI;function vZI({title:I,titleId:l,...c},G){return E.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:G,"aria-labelledby":l},c),I?E.createElement("title",{id:l},I):null,E.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9 8.25H7.5a2.25 2.25 0 0 0-2.25 2.25v9a2.25 2.25 0 0 0 2.25 2.25h9a2.25 2.25 0 0 0 2.25-2.25v-9a2.25 2.25 0 0 0-2.25-2.25H15m0-3-3-3m0 0-3 3m3-3V15"}))}const gZI=E.forwardRef(vZI),AZI=gZI;function yZI({title:I,titleId:l,...c},G){return E.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:G,"aria-labelledby":l},c),I?E.createElement("title",{id:l},I):null,E.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9 15 3 9m0 0 6-6M3 9h12a6 6 0 0 1 0 12h-3"}))}const JZI=E.forwardRef(yZI),BZI=JZI;function kZI({title:I,titleId:l,...c},G){return E.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:G,"aria-labelledby":l},c),I?E.createElement("title",{id:l},I):null,E.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M16.5 12a4.5 4.5 0 1 1-9 0 4.5 4.5 0 0 1 9 0Zm0 0c0 1.657 1.007 3 2.25 3S21 13.657 21 12a9 9 0 1 0-2.636 6.364M16.5 12V8.25"}))}const xZI=E.forwardRef(kZI),zZI=xZI;function UZI({title:I,titleId:l,...c},G){return E.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:G,"aria-labelledby":l},c),I?E.createElement("title",{id:l},I):null,E.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3 4.5h14.25M3 9h9.75M3 13.5h9.75m4.5-4.5v12m0 0-3.75-3.75M17.25 21 21 17.25"}))}const CZI=E.forwardRef(UZI),MZI=CZI;function fZI({title:I,titleId:l,...c},G){return E.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:G,"aria-labelledby":l},c),I?E.createElement("title",{id:l},I):null,E.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9.75 3.104v5.714a2.25 2.25 0 0 1-.659 1.591L5 14.5M9.75 3.104c-.251.023-.501.05-.75.082m.75-.082a24.301 24.301 0 0 1 4.5 0m0 0v5.714c0 .597.237 1.17.659 1.591L19.8 15.3M14.25 3.104c.251.023.501.05.75.082M19.8 15.3l-1.57.393A9.065 9.065 0 0 1 12 15a9.065 9.065 0 0 0-6.23-.693L5 14.5m14.8.8 1.402 1.402c1.232 1.232.65 3.318-1.067 3.611A48.309 48.309 0 0 1 12 21c-2.773 0-5.491-.235-8.135-.687-1.718-.293-2.3-2.379-1.067-3.61L5 14.5"}))}const KZI=E.forwardRef(fZI),LZI=KZI;function SZI({title:I,titleId:l,...c},G){return E.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:G,"aria-labelledby":l},c),I?E.createElement("title",{id:l},I):null,E.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 6.042A8.967 8.967 0 0 0 6 3.75c-1.052 0-2.062.18-3 .512v14.25A8.987 8.987 0 0 1 6 18c2.305 0 4.408.867 6 2.292m0-14.25a8.966 8.966 0 0 1 6-2.292c1.052 0 2.062.18 3 .512v14.25A8.987 8.987 0 0 0 18 18a8.967 8.967 0 0 0-6 2.292m0-14.25v14.25"}))}const TZI=E.forwardRef(SZI),xS=TZI;function jZI({title:I,titleId:l,...c},G){return E.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:G,"aria-labelledby":l},c),I?E.createElement("title",{id:l},I):null,E.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 20.25c4.97 0 9-3.694 9-8.25s-4.03-8.25-9-8.25S3 7.444 3 12c0 2.104.859 4.023 2.273 5.48.432.447.74 1.04.586 1.641a4.483 4.483 0 0 1-.923 1.785A5.969 5.969 0 0 0 6 21c1.282 0 2.47-.402 3.445-1.087.81.22 1.668.337 2.555.337Z"}))}const DZI=E.forwardRef(jZI),zS=DZI;function OZI({title:I,titleId:l,...c},G){return E.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:G,"aria-labelledby":l},c),I?E.createElement("title",{id:l},I):null,E.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m4.5 12.75 6 6 9-13.5"}))}const PZI=E.forwardRef(OZI),mg=PZI;function _ZI({title:I,titleId:l,...c},G){return E.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:G,"aria-labelledby":l},c),I?E.createElement("title",{id:l},I):null,E.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m5.25 4.5 7.5 7.5-7.5 7.5m6-15 7.5 7.5-7.5 7.5"}))}const qZI=E.forwardRef(_ZI),$ZI=qZI;function IWI({title:I,titleId:l,...c},G){return E.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:G,"aria-labelledby":l},c),I?E.createElement("title",{id:l},I):null,E.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m19.5 8.25-7.5 7.5-7.5-7.5"}))}const lWI=E.forwardRef(IWI),US=lWI;function cWI({title:I,titleId:l,...c},G){return E.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:G,"aria-labelledby":l},c),I?E.createElement("title",{id:l},I):null,E.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M8.25 15 12 18.75 15.75 15m-7.5-6L12 5.25 15.75 9"}))}const GWI=E.forwardRef(cWI),eWI=GWI;function dWI({title:I,titleId:l,...c},G){return E.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:G,"aria-labelledby":l},c),I?E.createElement("title",{id:l},I):null,E.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m4.5 15.75 7.5-7.5 7.5 7.5"}))}const tWI=E.forwardRef(dWI),CS=tWI;function nWI({title:I,titleId:l,...c},G){return E.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:G,"aria-labelledby":l},c),I?E.createElement("title",{id:l},I):null,E.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.666 3.888A2.25 2.25 0 0 0 13.5 2.25h-3c-1.03 0-1.9.693-2.166 1.638m7.332 0c.055.194.084.4.084.612v0a.75.75 0 0 1-.75.75H9a.75.75 0 0 1-.75-.75v0c0-.212.03-.418.084-.612m7.332 0c.646.049 1.288.11 1.927.184 1.1.128 1.907 1.077 1.907 2.185V19.5a2.25 2.25 0 0 1-2.25 2.25H6.75A2.25 2.25 0 0 1 4.5 19.5V6.257c0-1.108.806-2.057 1.907-2.185a48.208 48.208 0 0 1 1.927-.184"}))}const bWI=E.forwardRef(nWI),aWI=bWI;function ZWI({title:I,titleId:l,...c},G){return E.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:G,"aria-labelledby":l},c),I?E.createElement("title",{id:l},I):null,E.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M17.25 6.75 22.5 12l-5.25 5.25m-10.5 0L1.5 12l5.25-5.25m7.5-3-4.5 16.5"}))}const WWI=E.forwardRef(ZWI),rWI=WWI;function mWI({title:I,titleId:l,...c},G){return E.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:G,"aria-labelledby":l},c),I?E.createElement("title",{id:l},I):null,E.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9.594 3.94c.09-.542.56-.94 1.11-.94h2.593c.55 0 1.02.398 1.11.94l.213 1.281c.063.374.313.686.645.87.074.04.147.083.22.127.325.196.72.257 1.075.124l1.217-.456a1.125 1.125 0 0 1 1.37.49l1.296 2.247a1.125 1.125 0 0 1-.26 1.431l-1.003.827c-.293.241-.438.613-.43.992a7.723 7.723 0 0 1 0 .255c-.008.378.137.75.43.991l1.004.827c.424.35.534.955.26 1.43l-1.298 2.247a1.125 1.125 0 0 1-1.369.491l-1.217-.456c-.355-.133-.75-.072-1.076.124a6.47 6.47 0 0 1-.22.128c-.331.183-.581.495-.644.869l-.213 1.281c-.09.543-.56.94-1.11.94h-2.594c-.55 0-1.019-.398-1.11-.94l-.213-1.281c-.062-.374-.312-.686-.644-.87a6.52 6.52 0 0 1-.22-.127c-.325-.196-.72-.257-1.076-.124l-1.217.456a1.125 1.125 0 0 1-1.369-.49l-1.297-2.247a1.125 1.125 0 0 1 .26-1.431l1.004-.827c.292-.24.437-.613.43-.991a6.932 6.932 0 0 1 0-.255c.007-.38-.138-.751-.43-.992l-1.004-.827a1.125 1.125 0 0 1-.26-1.43l1.297-2.247a1.125 1.125 0 0 1 1.37-.491l1.216.456c.356.133.751.072 1.076-.124.072-.044.146-.086.22-.128.332-.183.582-.495.644-.869l.214-1.28Z"}),E.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15 12a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z"}))}const sWI=E.forwardRef(mWI),MS=sWI;function uWI({title:I,titleId:l,...c},G){return E.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:G,"aria-labelledby":l},c),I?E.createElement("title",{id:l},I):null,E.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m6.75 7.5 3 2.25-3 2.25m4.5 0h3m-9 8.25h13.5A2.25 2.25 0 0 0 21 18V6a2.25 2.25 0 0 0-2.25-2.25H5.25A2.25 2.25 0 0 0 3 6v12a2.25 2.25 0 0 0 2.25 2.25Z"}))}const hWI=E.forwardRef(uWI),J9=hWI;function pWI({title:I,titleId:l,...c},G){return E.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:G,"aria-labelledby":l},c),I?E.createElement("title",{id:l},I):null,E.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 9v3.75m9-.75a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9 3.75h.008v.008H12v-.008Z"}))}const oWI=E.forwardRef(pWI),B9=oWI;function VWI({title:I,titleId:l,...c},G){return E.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:G,"aria-labelledby":l},c),I?E.createElement("title",{id:l},I):null,E.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 9v3.75m-9.303 3.376c-.866 1.5.217 3.374 1.948 3.374h14.71c1.73 0 2.813-1.874 1.948-3.374L13.949 3.378c-.866-1.5-3.032-1.5-3.898 0L2.697 16.126ZM12 15.75h.007v.008H12v-.008Z"}))}const iWI=E.forwardRef(VWI),FWI=iWI;function NWI({title:I,titleId:l,...c},G){return E.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:G,"aria-labelledby":l},c),I?E.createElement("title",{id:l},I):null,E.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3.75 9.776c.112-.017.227-.026.344-.026h15.812c.117 0 .232.009.344.026m-16.5 0a2.25 2.25 0 0 0-1.883 2.542l.857 6a2.25 2.25 0 0 0 2.227 1.932H19.05a2.25 2.25 0 0 0 2.227-1.932l.857-6a2.25 2.25 0 0 0-1.883-2.542m-16.5 0V6A2.25 2.25 0 0 1 6 3.75h3.879a1.5 1.5 0 0 1 1.06.44l2.122 2.12a1.5 1.5 0 0 0 1.06.44H18A2.25 2.25 0 0 1 20.25 9v.776"}))}const RWI=E.forwardRef(NWI),YWI=RWI;function XWI({title:I,titleId:l,...c},G){return E.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:G,"aria-labelledby":l},c),I?E.createElement("title",{id:l},I):null,E.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M2.25 12.75V12A2.25 2.25 0 0 1 4.5 9.75h15A2.25 2.25 0 0 1 21.75 12v.75m-8.69-6.44-2.12-2.12a1.5 1.5 0 0 0-1.061-.44H4.5A2.25 2.25 0 0 0 2.25 6v12a2.25 2.25 0 0 0 2.25 2.25h15A2.25 2.25 0 0 0 21.75 18V9a2.25 2.25 0 0 0-2.25-2.25h-5.379a1.5 1.5 0 0 1-1.06-.44Z"}))}const HWI=E.forwardRef(XWI),k9=HWI;function QWI({title:I,titleId:l,...c},G){return E.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:G,"aria-labelledby":l},c),I?E.createElement("title",{id:l},I):null,E.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 21a9.004 9.004 0 0 0 8.716-6.747M12 21a9.004 9.004 0 0 1-8.716-6.747M12 21c2.485 0 4.5-4.03 4.5-9S14.485 3 12 3m0 18c-2.485 0-4.5-4.03-4.5-9S9.515 3 12 3m0 0a8.997 8.997 0 0 1 7.843 4.582M12 3a8.997 8.997 0 0 0-7.843 4.582m15.686 0A11.953 11.953 0 0 1 12 10.5c-2.998 0-5.74-1.1-7.843-2.918m15.686 0A8.959 8.959 0 0 1 21 12c0 .778-.099 1.533-.284 2.253m0 0A17.919 17.919 0 0 1 12 16.5c-3.162 0-6.133-.815-8.716-2.247m0 0A9.015 9.015 0 0 1 3 12c0-1.605.42-3.113 1.157-4.418"}))}const wWI=E.forwardRef(QWI),x9=wWI;function EWI({title:I,titleId:l,...c},G){return E.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:G,"aria-labelledby":l},c),I?E.createElement("title",{id:l},I):null,E.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M7.498 15.25H4.372c-1.026 0-1.945-.694-2.054-1.715a12.137 12.137 0 0 1-.068-1.285c0-2.848.992-5.464 2.649-7.521C5.287 4.247 5.886 4 6.504 4h4.016a4.5 4.5 0 0 1 1.423.23l3.114 1.04a4.5 4.5 0 0 0 1.423.23h1.294M7.498 15.25c.618 0 .991.724.725 1.282A7.471 7.471 0 0 0 7.5 19.75 2.25 2.25 0 0 0 9.75 22a.75.75 0 0 0 .75-.75v-.633c0-.573.11-1.14.322-1.672.304-.76.93-1.33 1.653-1.715a9.04 9.04 0 0 0 2.86-2.4c.498-.634 1.226-1.08 2.032-1.08h.384m-10.253 1.5H9.7m8.075-9.75c.01.05.027.1.05.148.593 1.2.925 2.55.925 3.977 0 1.487-.36 2.89-.999 4.125m.023-8.25c-.076-.365.183-.75.575-.75h.908c.889 0 1.713.518 1.972 1.368.339 1.11.521 2.287.521 3.507 0 1.553-.295 3.036-.831 4.398-.306.774-1.086 1.227-1.918 1.227h-1.053c-.472 0-.745-.556-.5-.96a8.95 8.95 0 0 0 .303-.54"}))}const vWI=E.forwardRef(EWI),gWI=vWI;function AWI({title:I,titleId:l,...c},G){return E.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:G,"aria-labelledby":l},c),I?E.createElement("title",{id:l},I):null,E.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6.633 10.25c.806 0 1.533-.446 2.031-1.08a9.041 9.041 0 0 1 2.861-2.4c.723-.384 1.35-.956 1.653-1.715a4.498 4.498 0 0 0 .322-1.672V2.75a.75.75 0 0 1 .75-.75 2.25 2.25 0 0 1 2.25 2.25c0 1.152-.26 2.243-.723 3.218-.266.558.107 1.282.725 1.282m0 0h3.126c1.026 0 1.945.694 2.054 1.715.045.422.068.85.068 1.285a11.95 11.95 0 0 1-2.649 7.521c-.388.482-.987.729-1.605.729H13.48c-.483 0-.964-.078-1.423-.23l-3.114-1.04a4.501 4.501 0 0 0-1.423-.23H5.904m10.598-9.75H14.25M5.904 18.5c.083.205.173.405.27.602.197.4-.078.898-.523.898h-.908c-.889 0-1.713-.518-1.972-1.368a12 12 0 0 1-.521-3.507c0-1.553.295-3.036.831-4.398C3.387 9.953 4.167 9.5 5 9.5h1.053c.472 0 .745.556.5.96a8.958 8.958 0 0 0-1.302 4.665c0 1.194.232 2.333.654 3.375Z"}))}const yWI=E.forwardRef(AWI),JWI=yWI;function BWI({title:I,titleId:l,...c},G){return E.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:G,"aria-labelledby":l},c),I?E.createElement("title",{id:l},I):null,E.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5.25 8.25h15m-16.5 7.5h15m-1.8-13.5-3.9 19.5m-2.1-19.5-3.9 19.5"}))}const kWI=E.forwardRef(BWI),xWI=kWI;function zWI({title:I,titleId:l,...c},G){return E.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:G,"aria-labelledby":l},c),I?E.createElement("title",{id:l},I):null,E.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m11.25 11.25.041-.02a.75.75 0 0 1 1.063.852l-.708 2.836a.75.75 0 0 0 1.063.853l.041-.021M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9-3.75h.008v.008H12V8.25Z"}))}const UWI=E.forwardRef(zWI),CWI=UWI;function MWI({title:I,titleId:l,...c},G){return E.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:G,"aria-labelledby":l},c),I?E.createElement("title",{id:l},I):null,E.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m21 21-5.197-5.197m0 0A7.5 7.5 0 1 0 5.196 5.196a7.5 7.5 0 0 0 10.607 10.607Z"}))}const fWI=E.forwardRef(MWI),KWI=fWI;function LWI({title:I,titleId:l,...c},G){return E.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:G,"aria-labelledby":l},c),I?E.createElement("title",{id:l},I):null,E.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9.53 16.122a3 3 0 0 0-5.78 1.128 2.25 2.25 0 0 1-2.4 2.245 4.5 4.5 0 0 0 8.4-2.245c0-.399-.078-.78-.22-1.128Zm0 0a15.998 15.998 0 0 0 3.388-1.62m-5.043-.025a15.994 15.994 0 0 1 1.622-3.395m3.42 3.42a15.995 15.995 0 0 0 4.764-4.648l3.876-5.814a1.151 1.151 0 0 0-1.597-1.597L14.146 6.32a15.996 15.996 0 0 0-4.649 4.763m3.42 3.42a6.776 6.776 0 0 0-3.42-3.42"}))}const SWI=E.forwardRef(LWI),fS=SWI;function TWI({title:I,titleId:l,...c},G){return E.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:G,"aria-labelledby":l},c),I?E.createElement("title",{id:l},I):null,E.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m2.25 15.75 5.159-5.159a2.25 2.25 0 0 1 3.182 0l5.159 5.159m-1.5-1.5 1.409-1.409a2.25 2.25 0 0 1 3.182 0l2.909 2.909m-18 3.75h16.5a1.5 1.5 0 0 0 1.5-1.5V6a1.5 1.5 0 0 0-1.5-1.5H3.75A1.5 1.5 0 0 0 2.25 6v12a1.5 1.5 0 0 0 1.5 1.5Zm10.5-11.25h.008v.008h-.008V8.25Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0Z"}))}const jWI=E.forwardRef(TWI),DWI=jWI;function OWI({title:I,titleId:l,...c},G){return E.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:G,"aria-labelledby":l},c),I?E.createElement("title",{id:l},I):null,E.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5.25 5.653c0-.856.917-1.398 1.667-.986l11.54 6.347a1.125 1.125 0 0 1 0 1.972l-11.54 6.347a1.125 1.125 0 0 1-1.667-.986V5.653Z"}))}const PWI=E.forwardRef(OWI),sg=PWI;function _WI({title:I,titleId:l,...c},G){return E.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:G,"aria-labelledby":l},c),I?E.createElement("title",{id:l},I):null,E.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 4.5v15m7.5-7.5h-15"}))}const qWI=E.forwardRef(_WI),ug=qWI;function $WI({title:I,titleId:l,...c},G){return E.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:G,"aria-labelledby":l},c),I?E.createElement("title",{id:l},I):null,E.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9.879 7.519c1.171-1.025 3.071-1.025 4.242 0 1.172 1.025 1.172 2.687 0 3.712-.203.179-.43.326-.67.442-.745.361-1.45.999-1.45 1.827v.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9 5.25h.008v.008H12v-.008Z"}))}const IrI=E.forwardRef($WI),lrI=IrI;function crI({title:I,titleId:l,...c},G){return E.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:G,"aria-labelledby":l},c),I?E.createElement("title",{id:l},I):null,E.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9.813 15.904 9 18.75l-.813-2.846a4.5 4.5 0 0 0-3.09-3.09L2.25 12l2.846-.813a4.5 4.5 0 0 0 3.09-3.09L9 5.25l.813 2.846a4.5 4.5 0 0 0 3.09 3.09L15.75 12l-2.846.813a4.5 4.5 0 0 0-3.09 3.09ZM18.259 8.715 18 9.75l-.259-1.035a3.375 3.375 0 0 0-2.455-2.456L14.25 6l1.036-.259a3.375 3.375 0 0 0 2.455-2.456L18 2.25l.259 1.035a3.375 3.375 0 0 0 2.456 2.456L21.75 6l-1.035.259a3.375 3.375 0 0 0-2.456 2.456ZM16.894 20.567 16.5 21.75l-.394-1.183a2.25 2.25 0 0 0-1.423-1.423L13.5 18.75l1.183-.394a2.25 2.25 0 0 0 1.423-1.423l.394-1.183.394 1.183a2.25 2.25 0 0 0 1.423 1.423l1.183.394-1.183.394a2.25 2.25 0 0 0-1.423 1.423Z"}))}const GrI=E.forwardRef(crI),z9=GrI;function erI({title:I,titleId:l,...c},G){return E.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:G,"aria-labelledby":l},c),I?E.createElement("title",{id:l},I):null,E.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5.25 7.5A2.25 2.25 0 0 1 7.5 5.25h9a2.25 2.25 0 0 1 2.25 2.25v9a2.25 2.25 0 0 1-2.25 2.25h-9a2.25 2.25 0 0 1-2.25-2.25v-9Z"}))}const drI=E.forwardRef(erI),trI=drI;function nrI({title:I,titleId:l,...c},G){return E.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:G,"aria-labelledby":l},c),I?E.createElement("title",{id:l},I):null,E.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m14.74 9-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 0 1-2.244 2.077H8.084a2.25 2.25 0 0 1-2.244-2.077L4.772 5.79m14.456 0a48.108 48.108 0 0 0-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 0 1 3.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 0 0-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.667 0 0 0-7.5 0"}))}const brI=E.forwardRef(nrI),hg=brI;function arI({title:I,titleId:l,...c},G){return E.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:G,"aria-labelledby":l},c),I?E.createElement("title",{id:l},I):null,E.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 18 18 6M6 6l12 12"}))}const ZrI=E.forwardRef(arI),KS=ZrI;function WrI(I){function l(GI,f,nI,VI,q){for(var fI=0,RI=0,cl=0,OI=0,PI,_I,tl=0,bl=0,Il,Fl=Il=PI=0,al=0,P=0,eI=0,uI=0,wI=nI.length,YI=wI-1,HI,NI="",bI="",gI="",oI="",QI;alPI)&&(uI=(NI=NI.replace(" ",":")).length),0VI&&(VI=(f=f.trim()).charCodeAt(0)),VI){case 38:return f.replace(o,"$1"+GI.trim());case 58:return GI.trim()+f.replace(o,"$1"+GI.trim());default:if(0<1*nI&&0RI.charCodeAt(8))break;case 115:q=q.replace(RI,"-webkit-"+RI)+";"+q;break;case 207:case 102:q=q.replace(RI,"-webkit-"+(102nI.charCodeAt(0)&&(nI=nI.trim()),g=nI,nI=[g],01?l-1:0),G=1;G0?" Args: "+c.join(", "):""))}var hrI=function(){function I(c){this.groupSizes=new Uint32Array(512),this.length=512,this.tag=c}var l=I.prototype;return l.indexOfGroup=function(c){for(var G=0,e=0;e=this.groupSizes.length){for(var e=this.groupSizes,d=e.length,t=d;c>=t;)(t<<=1)<0&&Qh(16,""+c);this.groupSizes=new Uint32Array(t),this.groupSizes.set(e),this.length=t;for(var n=d;n=this.length||this.groupSizes[c]===0)return G;for(var e=this.groupSizes[c],d=this.indexOfGroup(c),t=d+e,n=d;n=du&&(du=l+1),C2.set(I,l),JV.set(l,I)},VrI="style["+jm+'][data-styled-version="5.3.11"]',irI=new RegExp("^"+jm+'\\.g(\\d+)\\[id="([\\w\\d-]+)"\\].*?"([^"]*)'),FrI=function(I,l,c){for(var G,e=c.split(","),d=0,t=e.length;d=0;a--){var Z=b[a];if(Z&&Z.nodeType===1&&Z.hasAttribute(jm))return Z}}(c),d=e!==void 0?e.nextSibling:null;G.setAttribute(jm,"active"),G.setAttribute("data-styled-version","5.3.11");var t=RrI();return t&&G.setAttribute("nonce",t),c.insertBefore(G,d),G},YrI=function(){function I(c){var G=this.element=LS(c);G.appendChild(document.createTextNode("")),this.sheet=function(e){if(e.sheet)return e.sheet;for(var d=document.styleSheets,t=0,n=d.length;t=0){var e=document.createTextNode(G),d=this.nodes[c];return this.element.insertBefore(e,d||null),this.length++,!0}return!1},l.deleteRule=function(c){this.element.removeChild(this.nodes[c]),this.length--},l.getRule=function(c){return c0&&(W+=m+",")}),d+=""+a+Z+'{content:"'+W+`"}/*!sc*/ -`}}}return d}(this)},I}(),wrI=/(a)(d)/gi,K9=function(I){return String.fromCharCode(I+(I>25?39:97))};function $Q(I){var l,c="";for(l=Math.abs(I);l>52;l=l/52|0)c=K9(l%52)+c;return(K9(l%52)+c).replace(wrI,"$1-$2")}var Wm=function(I,l){for(var c=l.length;c;)I=33*I^l.charCodeAt(--c);return I},TS=function(I){return Wm(5381,I)};function ErI(I){for(var l=0;l>>0);if(!c.hasNameForId(e,n)){var b=G(t,"."+n,void 0,e);c.insertRules(e,n,b)}d.push(n),this.staticRulesId=n}else{for(var a=this.rules.length,Z=Wm(this.baseHash,G.hash),W="",m=0;m>>0);if(!c.hasNameForId(e,V)){var o=G(W,"."+V,void 0,e);c.insertRules(e,V,o)}d.push(V)}}return d.join(" ")},I}(),ArI=/^\s*\/\/.*$/gm,yrI=[":","[",".","#"];function JrI(I){var l,c,G,e,d=I===void 0?IZ:I,t=d.options,n=t===void 0?IZ:t,b=d.plugins,a=b===void 0?yV:b,Z=new WrI(n),W=[],m=function(p){function V(o){if(o)try{p(o+"}")}catch{}}return function(o,F,X,H,Y,R,B,C,k,N){switch(o){case 1:if(k===0&&F.charCodeAt(0)===64)return p(F+";"),"";break;case 2:if(C===0)return F+"/*|*/";break;case 3:switch(C){case 102:case 112:return p(X[0]+F),"";default:return F+(N===0?"/*|*/":"")}case-2:F.split("/*|*/}").forEach(V)}}}(function(p){W.push(p)}),s=function(p,V,o){return V===0&&yrI.indexOf(o[c.length])!==-1||o.match(e)?p:"."+l};function h(p,V,o,F){F===void 0&&(F="&");var X=p.replace(ArI,""),H=V&&o?o+" "+V+" { "+X+" }":X;return l=F,c=V,G=new RegExp("\\"+c+"\\b","g"),e=new RegExp("(\\"+c+"\\b){2,}"),Z(o||!V?"":V,H)}return Z.use([].concat(a,[function(p,V,o){p===2&&o.length&&o[0].lastIndexOf(c)>0&&(o[0]=o[0].replace(G,s))},m,function(p){if(p===-2){var V=W;return W=[],V}}])),h.hash=a.length?a.reduce(function(p,V){return V.name||Qh(15),Wm(p,V.name)},5381).toString():"",h}var jS=Gl.createContext();jS.Consumer;var DS=Gl.createContext(),BrI=(DS.Consumer,new SS),Iw=JrI();function krI(){return E.useContext(jS)||BrI}function xrI(){return E.useContext(DS)||Iw}var OS=function(){function I(l,c){var G=this;this.inject=function(e,d){d===void 0&&(d=Iw);var t=G.name+d.hash;e.hasNameForId(G.id,t)||e.insertRules(G.id,t,d(G.rules,t,"@keyframes"))},this.toString=function(){return Qh(12,String(G.name))},this.name=l,this.id="sc-keyframes-"+l,this.rules=c}return I.prototype.getName=function(l){return l===void 0&&(l=Iw),this.name+l.hash},I}(),zrI=/([A-Z])/,UrI=/([A-Z])/g,CrI=/^ms-/,MrI=function(I){return"-"+I.toLowerCase()};function L9(I){return zrI.test(I)?I.replace(UrI,MrI).replace(CrI,"-ms-"):I}var S9=function(I){return I==null||I===!1||I===""};function Dm(I,l,c,G){if(Array.isArray(I)){for(var e,d=[],t=0,n=I.length;t1?l-1:0),G=1;G?@[\\\]^`{|}~-]+/g,LrI=/(^-|-$)/g;function VY(I){return I.replace(KrI,"-").replace(LrI,"")}var _S=function(I){return $Q(TS(I)>>>0)};function io(I){return typeof I=="string"&&!0}var lw=function(I){return typeof I=="function"||typeof I=="object"&&I!==null&&!Array.isArray(I)},SrI=function(I){return I!=="__proto__"&&I!=="constructor"&&I!=="prototype"};function TrI(I,l,c){var G=I[c];lw(l)&&lw(G)?qS(G,l):I[c]=l}function qS(I){for(var l=arguments.length,c=new Array(l>1?l-1:0),G=1;G=0||(N[C]=R[C]);return N}(l,["componentId"]),Y=X&&X+"-"+(io(F)?F:VY(M9(F)));return IT(F,Cb({},H,{attrs:m,componentId:Y}),c)},Object.defineProperty(h,"defaultProps",{get:function(){return this._foldedDefaultProps},set:function(F){this._foldedDefaultProps=G?qS({},I.defaultProps,F):F}}),Object.defineProperty(h,"toString",{value:function(){return"."+h.styledComponentId}}),e&&SbI(h,I,{attrs:!0,componentStyle:!0,displayName:!0,foldedComponentIds:!0,shouldForwardProp:!0,styledComponentId:!0,target:!0,withComponent:!0}),h}var cw=function(I){return function l(c,G,e){if(e===void 0&&(e=IZ),!uS.isValidElementType(G))return Qh(1,String(G));var d=function(){return c(G,e,PS.apply(void 0,arguments))};return d.withConfig=function(t){return l(c,G,Cb({},e,{},t))},d.attrs=function(t){return l(c,G,Cb({},e,{attrs:Array.prototype.concat(e.attrs,t).filter(Boolean)}))},d}(IT,I)};["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","big","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","keygen","label","legend","li","link","main","map","mark","marquee","menu","menuitem","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rp","rt","ruby","s","samp","script","section","select","small","source","span","strong","style","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr","circle","clipPath","defs","ellipse","foreignObject","g","image","line","linearGradient","marker","mask","path","pattern","polygon","polyline","radialGradient","rect","stop","svg","text","textPath","tspan"].forEach(function(I){cw[I]=cw(I)});function Vg(I){for(var l=arguments.length,c=new Array(l>1?l-1:0),G=1;G({x:I,y:I}),jrI={left:"right",right:"left",bottom:"top",top:"bottom"},DrI={start:"end",end:"start"};function Gw(I,l,c){return FW(I,Om(l,c))}function wh(I,l){return typeof I=="function"?I(l):I}function fW(I){return I.split("-")[0]}function Eh(I){return I.split("-")[1]}function lT(I){return I==="x"?"y":"x"}function ig(I){return I==="y"?"height":"width"}function jF(I){return["top","bottom"].includes(fW(I))?"y":"x"}function Fg(I){return lT(jF(I))}function OrI(I,l,c){c===void 0&&(c=!1);const G=Eh(I),e=Fg(I),d=ig(e);let t=e==="x"?G===(c?"end":"start")?"right":"left":G==="start"?"bottom":"top";return l.reference[d]>l.floating[d]&&(t=kV(t)),[t,kV(t)]}function PrI(I){const l=kV(I);return[ew(I),l,ew(l)]}function ew(I){return I.replace(/start|end/g,l=>DrI[l])}function _rI(I,l,c){const G=["left","right"],e=["right","left"],d=["top","bottom"],t=["bottom","top"];switch(I){case"top":case"bottom":return c?l?e:G:l?G:e;case"left":case"right":return l?d:t;default:return[]}}function qrI(I,l,c,G){const e=Eh(I);let d=_rI(fW(I),c==="start",G);return e&&(d=d.map(t=>t+"-"+e),l&&(d=d.concat(d.map(ew)))),d}function kV(I){return I.replace(/left|right|bottom|top/g,l=>jrI[l])}function $rI(I){return{top:0,right:0,bottom:0,left:0,...I}}function cT(I){return typeof I!="number"?$rI(I):{top:I,right:I,bottom:I,left:I}}function xV(I){return{...I,top:I.y,left:I.x,right:I.x+I.width,bottom:I.y+I.height}}function j9(I,l,c){let{reference:G,floating:e}=I;const d=jF(l),t=Fg(l),n=ig(t),b=fW(l),a=d==="y",Z=G.x+G.width/2-e.width/2,W=G.y+G.height/2-e.height/2,m=G[n]/2-e[n]/2;let s;switch(b){case"top":s={x:Z,y:G.y-e.height};break;case"bottom":s={x:Z,y:G.y+G.height};break;case"right":s={x:G.x+G.width,y:W};break;case"left":s={x:G.x-e.width,y:W};break;default:s={x:G.x,y:G.y}}switch(Eh(l)){case"start":s[t]-=m*(c&&a?-1:1);break;case"end":s[t]+=m*(c&&a?-1:1);break}return s}const ImI=async(I,l,c)=>{const{placement:G="bottom",strategy:e="absolute",middleware:d=[],platform:t}=c,n=d.filter(Boolean),b=await(t.isRTL==null?void 0:t.isRTL(l));let a=await t.getElementRects({reference:I,floating:l,strategy:e}),{x:Z,y:W}=j9(a,G,b),m=G,s={},h=0;for(let p=0;p({name:"arrow",options:I,async fn(l){const{x:c,y:G,placement:e,rects:d,platform:t,elements:n,middlewareData:b}=l,{element:a,padding:Z=0}=wh(I,l)||{};if(a==null)return{};const W=cT(Z),m={x:c,y:G},s=Fg(e),h=ig(s),p=await t.getDimensions(a),V=s==="y",o=V?"top":"left",F=V?"bottom":"right",X=V?"clientHeight":"clientWidth",H=d.reference[h]+d.reference[s]-m[s]-d.floating[h],Y=m[s]-d.reference[s],R=await(t.getOffsetParent==null?void 0:t.getOffsetParent(a));let B=R?R[X]:0;(!B||!await(t.isElement==null?void 0:t.isElement(R)))&&(B=n.floating[X]||d.floating[h]);const C=H/2-Y/2,k=B/2-p[h]/2-1,N=Om(W[o],k),J=Om(W[F],k),A=N,M=B-p[h]-J,D=B/2-p[h]/2+C,O=Gw(A,D,M),$=!b.arrow&&Eh(e)!=null&&D!==O&&d.reference[h]/2-(DA<=0)){var k,N;const A=(((k=d.flip)==null?void 0:k.index)||0)+1,M=Y[A];if(M)return{data:{index:A,overflows:C},reset:{placement:M}};let D=(N=C.filter(O=>O.overflows[0]<=0).sort((O,$)=>O.overflows[1]-$.overflows[1])[0])==null?void 0:N.placement;if(!D)switch(s){case"bestFit":{var J;const O=(J=C.map($=>[$.placement,$.overflows.filter(j=>j>0).reduce((j,S)=>j+S,0)]).sort(($,j)=>$[1]-j[1])[0])==null?void 0:J[0];O&&(D=O);break}case"initialPlacement":D=n;break}if(e!==D)return{reset:{placement:D}}}return{}}}};async function GmI(I,l){const{placement:c,platform:G,elements:e}=I,d=await(G.isRTL==null?void 0:G.isRTL(e.floating)),t=fW(c),n=Eh(c),b=jF(c)==="y",a=["left","top"].includes(t)?-1:1,Z=d&&b?-1:1,W=wh(l,I);let{mainAxis:m,crossAxis:s,alignmentAxis:h}=typeof W=="number"?{mainAxis:W,crossAxis:0,alignmentAxis:null}:{mainAxis:0,crossAxis:0,alignmentAxis:null,...W};return n&&typeof h=="number"&&(s=n==="end"?h*-1:h),b?{x:s*Z,y:m*a}:{x:m*a,y:s*Z}}const emI=function(I){return I===void 0&&(I=0),{name:"offset",options:I,async fn(l){var c,G;const{x:e,y:d,placement:t,middlewareData:n}=l,b=await GmI(l,I);return t===((c=n.offset)==null?void 0:c.placement)&&(G=n.arrow)!=null&&G.alignmentOffset?{}:{x:e+b.x,y:d+b.y,data:{...b,placement:t}}}}},dmI=function(I){return I===void 0&&(I={}),{name:"shift",options:I,async fn(l){const{x:c,y:G,placement:e}=l,{mainAxis:d=!0,crossAxis:t=!1,limiter:n={fn:V=>{let{x:o,y:F}=V;return{x:o,y:F}}},...b}=wh(I,l),a={x:c,y:G},Z=await GT(l,b),W=jF(fW(e)),m=lT(W);let s=a[m],h=a[W];if(d){const V=m==="y"?"top":"left",o=m==="y"?"bottom":"right",F=s+Z[V],X=s-Z[o];s=Gw(F,s,X)}if(t){const V=W==="y"?"top":"left",o=W==="y"?"bottom":"right",F=h+Z[V],X=h-Z[o];h=Gw(F,h,X)}const p=n.fn({...l,[m]:s,[W]:h});return{...p,data:{x:p.x-c,y:p.y-G}}}}};function rZ(I){return eT(I)?(I.nodeName||"").toLowerCase():"#document"}function Dd(I){var l;return(I==null||(l=I.ownerDocument)==null?void 0:l.defaultView)||window}function da(I){var l;return(l=(eT(I)?I.ownerDocument:I.document)||window.document)==null?void 0:l.documentElement}function eT(I){return I instanceof Node||I instanceof Dd(I).Node}function Pb(I){return I instanceof Element||I instanceof Dd(I).Element}function lb(I){return I instanceof HTMLElement||I instanceof Dd(I).HTMLElement}function D9(I){return typeof ShadowRoot>"u"?!1:I instanceof ShadowRoot||I instanceof Dd(I).ShadowRoot}function vh(I){const{overflow:l,overflowX:c,overflowY:G,display:e}=kt(I);return/auto|scroll|overlay|hidden|clip/.test(l+G+c)&&!["inline","contents"].includes(e)}function tmI(I){return["table","td","th"].includes(rZ(I))}function Ng(I){const l=Rg(),c=kt(I);return c.transform!=="none"||c.perspective!=="none"||(c.containerType?c.containerType!=="normal":!1)||!l&&(c.backdropFilter?c.backdropFilter!=="none":!1)||!l&&(c.filter?c.filter!=="none":!1)||["transform","perspective","filter"].some(G=>(c.willChange||"").includes(G))||["paint","layout","strict","content"].some(G=>(c.contain||"").includes(G))}function nmI(I){let l=Pm(I);for(;lb(l)&&!DF(l);){if(Ng(l))return l;l=Pm(l)}return null}function Rg(){return typeof CSS>"u"||!CSS.supports?!1:CSS.supports("-webkit-backdrop-filter","none")}function DF(I){return["html","body","#document"].includes(rZ(I))}function kt(I){return Dd(I).getComputedStyle(I)}function OF(I){return Pb(I)?{scrollLeft:I.scrollLeft,scrollTop:I.scrollTop}:{scrollLeft:I.pageXOffset,scrollTop:I.pageYOffset}}function Pm(I){if(rZ(I)==="html")return I;const l=I.assignedSlot||I.parentNode||D9(I)&&I.host||da(I);return D9(l)?l.host:l}function dT(I){const l=Pm(I);return DF(l)?I.ownerDocument?I.ownerDocument.body:I.body:lb(l)&&vh(l)?l:dT(l)}function Lu(I,l,c){var G;l===void 0&&(l=[]),c===void 0&&(c=!0);const e=dT(I),d=e===((G=I.ownerDocument)==null?void 0:G.body),t=Dd(e);return d?l.concat(t,t.visualViewport||[],vh(e)?e:[],t.frameElement&&c?Lu(t.frameElement):[]):l.concat(e,Lu(e,[],c))}function tT(I){const l=kt(I);let c=parseFloat(l.width)||0,G=parseFloat(l.height)||0;const e=lb(I),d=e?I.offsetWidth:c,t=e?I.offsetHeight:G,n=BV(c)!==d||BV(G)!==t;return n&&(c=d,G=t),{width:c,height:G,$:n}}function Yg(I){return Pb(I)?I:I.contextElement}function Ym(I){const l=Yg(I);if(!lb(l))return WZ(1);const c=l.getBoundingClientRect(),{width:G,height:e,$:d}=tT(l);let t=(d?BV(c.width):c.width)/G,n=(d?BV(c.height):c.height)/e;return(!t||!Number.isFinite(t))&&(t=1),(!n||!Number.isFinite(n))&&(n=1),{x:t,y:n}}const bmI=WZ(0);function nT(I){const l=Dd(I);return!Rg()||!l.visualViewport?bmI:{x:l.visualViewport.offsetLeft,y:l.visualViewport.offsetTop}}function amI(I,l,c){return l===void 0&&(l=!1),!c||l&&c!==Dd(I)?!1:l}function KW(I,l,c,G){l===void 0&&(l=!1),c===void 0&&(c=!1);const e=I.getBoundingClientRect(),d=Yg(I);let t=WZ(1);l&&(G?Pb(G)&&(t=Ym(G)):t=Ym(I));const n=amI(d,c,G)?nT(d):WZ(0);let b=(e.left+n.x)/t.x,a=(e.top+n.y)/t.y,Z=e.width/t.x,W=e.height/t.y;if(d){const m=Dd(d),s=G&&Pb(G)?Dd(G):G;let h=m,p=h.frameElement;for(;p&&G&&s!==h;){const V=Ym(p),o=p.getBoundingClientRect(),F=kt(p),X=o.left+(p.clientLeft+parseFloat(F.paddingLeft))*V.x,H=o.top+(p.clientTop+parseFloat(F.paddingTop))*V.y;b*=V.x,a*=V.y,Z*=V.x,W*=V.y,b+=X,a+=H,h=Dd(p),p=h.frameElement}}return xV({width:Z,height:W,x:b,y:a})}const ZmI=[":popover-open",":modal"];function bT(I){return ZmI.some(l=>{try{return I.matches(l)}catch{return!1}})}function WmI(I){let{elements:l,rect:c,offsetParent:G,strategy:e}=I;const d=e==="fixed",t=da(G),n=l?bT(l.floating):!1;if(G===t||n&&d)return c;let b={scrollLeft:0,scrollTop:0},a=WZ(1);const Z=WZ(0),W=lb(G);if((W||!W&&!d)&&((rZ(G)!=="body"||vh(t))&&(b=OF(G)),lb(G))){const m=KW(G);a=Ym(G),Z.x=m.x+G.clientLeft,Z.y=m.y+G.clientTop}return{width:c.width*a.x,height:c.height*a.y,x:c.x*a.x-b.scrollLeft*a.x+Z.x,y:c.y*a.y-b.scrollTop*a.y+Z.y}}function rmI(I){return Array.from(I.getClientRects())}function aT(I){return KW(da(I)).left+OF(I).scrollLeft}function mmI(I){const l=da(I),c=OF(I),G=I.ownerDocument.body,e=FW(l.scrollWidth,l.clientWidth,G.scrollWidth,G.clientWidth),d=FW(l.scrollHeight,l.clientHeight,G.scrollHeight,G.clientHeight);let t=-c.scrollLeft+aT(I);const n=-c.scrollTop;return kt(G).direction==="rtl"&&(t+=FW(l.clientWidth,G.clientWidth)-e),{width:e,height:d,x:t,y:n}}function smI(I,l){const c=Dd(I),G=da(I),e=c.visualViewport;let d=G.clientWidth,t=G.clientHeight,n=0,b=0;if(e){d=e.width,t=e.height;const a=Rg();(!a||a&&l==="fixed")&&(n=e.offsetLeft,b=e.offsetTop)}return{width:d,height:t,x:n,y:b}}function umI(I,l){const c=KW(I,!0,l==="fixed"),G=c.top+I.clientTop,e=c.left+I.clientLeft,d=lb(I)?Ym(I):WZ(1),t=I.clientWidth*d.x,n=I.clientHeight*d.y,b=e*d.x,a=G*d.y;return{width:t,height:n,x:b,y:a}}function O9(I,l,c){let G;if(l==="viewport")G=smI(I,c);else if(l==="document")G=mmI(da(I));else if(Pb(l))G=umI(l,c);else{const e=nT(I);G={...l,x:l.x-e.x,y:l.y-e.y}}return xV(G)}function ZT(I,l){const c=Pm(I);return c===l||!Pb(c)||DF(c)?!1:kt(c).position==="fixed"||ZT(c,l)}function hmI(I,l){const c=l.get(I);if(c)return c;let G=Lu(I,[],!1).filter(n=>Pb(n)&&rZ(n)!=="body"),e=null;const d=kt(I).position==="fixed";let t=d?Pm(I):I;for(;Pb(t)&&!DF(t);){const n=kt(t),b=Ng(t);!b&&n.position==="fixed"&&(e=null),(d?!b&&!e:!b&&n.position==="static"&&!!e&&["absolute","fixed"].includes(e.position)||vh(t)&&!b&&ZT(I,t))?G=G.filter(Z=>Z!==t):e=n,t=Pm(t)}return l.set(I,G),G}function pmI(I){let{element:l,boundary:c,rootBoundary:G,strategy:e}=I;const t=[...c==="clippingAncestors"?hmI(l,this._c):[].concat(c),G],n=t[0],b=t.reduce((a,Z)=>{const W=O9(l,Z,e);return a.top=FW(W.top,a.top),a.right=Om(W.right,a.right),a.bottom=Om(W.bottom,a.bottom),a.left=FW(W.left,a.left),a},O9(l,n,e));return{width:b.right-b.left,height:b.bottom-b.top,x:b.left,y:b.top}}function omI(I){const{width:l,height:c}=tT(I);return{width:l,height:c}}function VmI(I,l,c){const G=lb(l),e=da(l),d=c==="fixed",t=KW(I,!0,d,l);let n={scrollLeft:0,scrollTop:0};const b=WZ(0);if(G||!G&&!d)if((rZ(l)!=="body"||vh(e))&&(n=OF(l)),G){const W=KW(l,!0,d,l);b.x=W.x+l.clientLeft,b.y=W.y+l.clientTop}else e&&(b.x=aT(e));const a=t.left+n.scrollLeft-b.x,Z=t.top+n.scrollTop-b.y;return{x:a,y:Z,width:t.width,height:t.height}}function P9(I,l){return!lb(I)||kt(I).position==="fixed"?null:l?l(I):I.offsetParent}function WT(I,l){const c=Dd(I);if(!lb(I)||bT(I))return c;let G=P9(I,l);for(;G&&tmI(G)&&kt(G).position==="static";)G=P9(G,l);return G&&(rZ(G)==="html"||rZ(G)==="body"&&kt(G).position==="static"&&!Ng(G))?c:G||nmI(I)||c}const imI=async function(I){const l=this.getOffsetParent||WT,c=this.getDimensions;return{reference:VmI(I.reference,await l(I.floating),I.strategy),floating:{x:0,y:0,...await c(I.floating)}}};function FmI(I){return kt(I).direction==="rtl"}const NmI={convertOffsetParentRelativeRectToViewportRelativeRect:WmI,getDocumentElement:da,getClippingRect:pmI,getOffsetParent:WT,getElementRects:imI,getClientRects:rmI,getDimensions:omI,getScale:Ym,isElement:Pb,isRTL:FmI};function RmI(I,l){let c=null,G;const e=da(I);function d(){var n;clearTimeout(G),(n=c)==null||n.disconnect(),c=null}function t(n,b){n===void 0&&(n=!1),b===void 0&&(b=1),d();const{left:a,top:Z,width:W,height:m}=I.getBoundingClientRect();if(n||l(),!W||!m)return;const s=Fo(Z),h=Fo(e.clientWidth-(a+W)),p=Fo(e.clientHeight-(Z+m)),V=Fo(a),F={rootMargin:-s+"px "+-h+"px "+-p+"px "+-V+"px",threshold:FW(0,Om(1,b))||1};let X=!0;function H(Y){const R=Y[0].intersectionRatio;if(R!==b){if(!X)return t();R?t(!1,R):G=setTimeout(()=>{t(!1,1e-7)},100)}X=!1}try{c=new IntersectionObserver(H,{...F,root:e.ownerDocument})}catch{c=new IntersectionObserver(H,F)}c.observe(I)}return t(!0),d}function YmI(I,l,c,G){G===void 0&&(G={});const{ancestorScroll:e=!0,ancestorResize:d=!0,elementResize:t=typeof ResizeObserver=="function",layoutShift:n=typeof IntersectionObserver=="function",animationFrame:b=!1}=G,a=Yg(I),Z=e||d?[...a?Lu(a):[],...Lu(l)]:[];Z.forEach(o=>{e&&o.addEventListener("scroll",c,{passive:!0}),d&&o.addEventListener("resize",c)});const W=a&&n?RmI(a,c):null;let m=-1,s=null;t&&(s=new ResizeObserver(o=>{let[F]=o;F&&F.target===a&&s&&(s.unobserve(l),cancelAnimationFrame(m),m=requestAnimationFrame(()=>{var X;(X=s)==null||X.observe(l)})),c()}),a&&!b&&s.observe(a),s.observe(l));let h,p=b?KW(I):null;b&&V();function V(){const o=KW(I);p&&(o.x!==p.x||o.y!==p.y||o.width!==p.width||o.height!==p.height)&&c(),p=o,h=requestAnimationFrame(V)}return c(),()=>{var o;Z.forEach(F=>{e&&F.removeEventListener("scroll",c),d&&F.removeEventListener("resize",c)}),W==null||W(),(o=s)==null||o.disconnect(),s=null,b&&cancelAnimationFrame(h)}}const XmI=dmI,HmI=cmI,QmI=lmI,_9=(I,l,c)=>{const G=new Map,e={platform:NmI,...c},d={...e.platform,_c:G};return ImI(I,l,{...e,platform:d})};var rT={exports:{}};/*! + */function iy(){return iy=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0)&&(n[i]=e[i]);return n}function Cce(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function Bce(e,t){return e.button===0&&(!t||t==="_self")&&!Cce(e)}function ay(e){return e===void 0&&(e=""),new URLSearchParams(typeof e=="string"||Array.isArray(e)||e instanceof URLSearchParams?e:Object.keys(e).reduce((t,n)=>{let r=e[n];return t.concat(Array.isArray(r)?r.map(i=>[n,i]):[[n,r]])},[]))}function wce(e,t){let n=ay(e);return t&&t.forEach((r,i)=>{n.has(i)||t.getAll(i).forEach(a=>{n.append(i,a)})}),n}const bce=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset","unstable_viewTransition"],vce="6";try{window.__reactRouterVersion=vce}catch{}const Kce=E.createContext({isTransitioning:!1}),Qce=E.createContext(new Map),Wce="startTransition",Gx=rW[Wce],yce="flushSync",kx=tse[yce];function Fce(e){Gx?Gx(e):e()}function xg(e){kx?kx(e):e()}class Ece{constructor(){this.status="pending",this.promise=new Promise((t,n)=>{this.resolve=r=>{this.status==="pending"&&(this.status="resolved",t(r))},this.reject=r=>{this.status==="pending"&&(this.status="rejected",n(r))}})}}function Rce(e){let{fallbackElement:t,router:n,future:r}=e,[i,a]=E.useState(n.state),[o,l]=E.useState(),[s,u]=E.useState({isTransitioning:!1}),[c,d]=E.useState(),[g,h]=E.useState(),[m,A]=E.useState(),B=E.useRef(new Map),{v7_startTransition:C}=r||{},b=E.useCallback(G=>{C?Fce(G):G()},[C]),Q=E.useCallback((G,X)=>{let{deletedFetchers:H,unstable_flushSync:v,unstable_viewTransitionOpts:k}=X;H.forEach(V=>B.current.delete(V)),G.fetchers.forEach((V,z)=>{V.data!==void 0&&B.current.set(z,V.data)});let D=n.window==null||n.window.document==null||typeof n.window.document.startViewTransition!="function";if(!k||D){v?xg(()=>a(G)):b(()=>a(G));return}if(v){xg(()=>{g&&(c&&c.resolve(),g.skipTransition()),u({isTransitioning:!0,flushSync:!0,currentLocation:k.currentLocation,nextLocation:k.nextLocation})});let V=n.window.document.startViewTransition(()=>{xg(()=>a(G))});V.finished.finally(()=>{xg(()=>{d(void 0),h(void 0),l(void 0),u({isTransitioning:!1})})}),xg(()=>h(V));return}g?(c&&c.resolve(),g.skipTransition(),A({state:G,currentLocation:k.currentLocation,nextLocation:k.nextLocation})):(l(G),u({isTransitioning:!0,flushSync:!1,currentLocation:k.currentLocation,nextLocation:k.nextLocation}))},[n.window,g,c,B,b]);E.useLayoutEffect(()=>n.subscribe(Q),[n,Q]),E.useEffect(()=>{s.isTransitioning&&!s.flushSync&&d(new Ece)},[s]),E.useEffect(()=>{if(c&&o&&n.window){let G=o,X=c.promise,H=n.window.document.startViewTransition(async()=>{b(()=>a(G)),await X});H.finished.finally(()=>{d(void 0),h(void 0),l(void 0),u({isTransitioning:!1})}),h(H)}},[b,o,c,n.window]),E.useEffect(()=>{c&&o&&i.location.key===o.location.key&&c.resolve()},[c,g,i.location,o]),E.useEffect(()=>{!s.isTransitioning&&m&&(l(m.state),u({isTransitioning:!0,flushSync:!1,currentLocation:m.currentLocation,nextLocation:m.nextLocation}),A(void 0))},[s.isTransitioning,m]),E.useEffect(()=>{},[]);let F=E.useMemo(()=>({createHref:n.createHref,encodeLocation:n.encodeLocation,go:G=>n.navigate(G),push:(G,X,H)=>n.navigate(G,{state:X,preventScrollReset:H==null?void 0:H.preventScrollReset}),replace:(G,X,H)=>n.navigate(G,{replace:!0,state:X,preventScrollReset:H==null?void 0:H.preventScrollReset})}),[n]),K=n.basename||"/",y=E.useMemo(()=>({router:n,navigator:F,static:!1,basename:K}),[n,F,K]);return E.createElement(E.Fragment,null,E.createElement(q4.Provider,{value:y},E.createElement(GV.Provider,{value:i},E.createElement(Qce.Provider,{value:B.current},E.createElement(Kce.Provider,{value:s},E.createElement(hce,{basename:K,location:i.location,navigationType:i.historyAction,navigator:F,future:{v7_relativeSplatPath:n.future.v7_relativeSplatPath}},i.initialized||n.future.v7_partialHydration?E.createElement(Sce,{routes:n.routes,future:n.future,state:i}):t))))),null)}function Sce(e){let{routes:t,future:n,state:r}=e;return nce(t,void 0,r,n)}const xce=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",Gce=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,kce=E.forwardRef(function(t,n){let{onClick:r,relative:i,reloadDocument:a,replace:o,state:l,target:s,to:u,preventScrollReset:c,unstable_viewTransition:d}=t,g=Ace(t,bce),{basename:h}=E.useContext(ud),m,A=!1;if(typeof u=="string"&&Gce.test(u)&&(m=u,xce))try{let Q=new URL(window.location.href),F=u.startsWith("//")?new URL(Q.protocol+u):new URL(u),K=N1(F.pathname,h);F.origin===Q.origin&&K!=null?u=K+F.search+F.hash:A=!0}catch{}let B=_ue(u,{relative:i}),C=Dce(u,{replace:o,state:l,target:s,preventScrollReset:c,relative:i,unstable_viewTransition:d});function b(Q){r&&r(Q),Q.defaultPrevented||C(Q)}return E.createElement("a",iy({},g,{href:m||B,onClick:A||a?r:b,ref:n,target:s}))});var Dx;(function(e){e.UseScrollRestoration="useScrollRestoration",e.UseSubmit="useSubmit",e.UseSubmitFetcher="useSubmitFetcher",e.UseFetcher="useFetcher",e.useViewTransitionState="useViewTransitionState"})(Dx||(Dx={}));var Nx;(function(e){e.UseFetcher="useFetcher",e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration"})(Nx||(Nx={}));function Dce(e,t){let{target:n,replace:r,state:i,preventScrollReset:a,relative:o,unstable_viewTransition:l}=t===void 0?{}:t,s=Hr(),u=Hc(),c=NV(e,{relative:o});return E.useCallback(d=>{if(Bce(d,n)){d.preventDefault();let g=r!==void 0?r:l1(u)===l1(c);s(e,{replace:g,state:i,preventScrollReset:a,relative:o,unstable_viewTransition:l})}},[u,s,c,r,i,n,e,a,o,l])}function Nce(e){let t=E.useRef(ay(e)),n=E.useRef(!1),r=Hc(),i=E.useMemo(()=>wce(r.search,n.current?null:t.current),[r.search]),a=Hr(),o=E.useCallback((l,s)=>{const u=ay(typeof l=="function"?l(i):l);n.current=!0,a("?"+u,s)},[a,i]);return[i,o]}function Zce({title:e,titleId:t,...n},r){return E.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?E.createElement("title",{id:t},e):null,E.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.75 9V5.25A2.25 2.25 0 0 0 13.5 3h-6a2.25 2.25 0 0 0-2.25 2.25v13.5A2.25 2.25 0 0 0 7.5 21h6a2.25 2.25 0 0 0 2.25-2.25V15M12 9l-3 3m0 0 3 3m-3-3h12.75"}))}const Hce=E.forwardRef(Zce),Xce=Hce;function Lce({title:e,titleId:t,...n},r){return E.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?E.createElement("title",{id:t},e):null,E.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M10.5 19.5 3 12m0 0 7.5-7.5M3 12h18"}))}const Mce=E.forwardRef(Lce),hu=Mce;function Tce({title:e,titleId:t,...n},r){return E.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?E.createElement("title",{id:t},e):null,E.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M13.5 4.5 21 12m0 0-7.5 7.5M21 12H3"}))}const Vce=E.forwardRef(Tce),Yce=Vce;function Ice({title:e,titleId:t,...n},r){return E.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?E.createElement("title",{id:t},e):null,E.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9 8.25H7.5a2.25 2.25 0 0 0-2.25 2.25v9a2.25 2.25 0 0 0 2.25 2.25h9a2.25 2.25 0 0 0 2.25-2.25v-9a2.25 2.25 0 0 0-2.25-2.25H15m0-3-3-3m0 0-3 3m3-3V15"}))}const Uce=E.forwardRef(Ice),Oce=Uce;function Jce({title:e,titleId:t,...n},r){return E.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?E.createElement("title",{id:t},e):null,E.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9 15 3 9m0 0 6-6M3 9h12a6 6 0 0 1 0 12h-3"}))}const zce=E.forwardRef(Jce),Pce=zce;function jce({title:e,titleId:t,...n},r){return E.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?E.createElement("title",{id:t},e):null,E.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M16.5 12a4.5 4.5 0 1 1-9 0 4.5 4.5 0 0 1 9 0Zm0 0c0 1.657 1.007 3 2.25 3S21 13.657 21 12a9 9 0 1 0-2.636 6.364M16.5 12V8.25"}))}const _ce=E.forwardRef(jce),$ce=_ce;function qce({title:e,titleId:t,...n},r){return E.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?E.createElement("title",{id:t},e):null,E.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3 4.5h14.25M3 9h9.75M3 13.5h9.75m4.5-4.5v12m0 0-3.75-3.75M17.25 21 21 17.25"}))}const e0e=E.forwardRef(qce),t0e=e0e;function n0e({title:e,titleId:t,...n},r){return E.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?E.createElement("title",{id:t},e):null,E.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9.75 3.104v5.714a2.25 2.25 0 0 1-.659 1.591L5 14.5M9.75 3.104c-.251.023-.501.05-.75.082m.75-.082a24.301 24.301 0 0 1 4.5 0m0 0v5.714c0 .597.237 1.17.659 1.591L19.8 15.3M14.25 3.104c.251.023.501.05.75.082M19.8 15.3l-1.57.393A9.065 9.065 0 0 1 12 15a9.065 9.065 0 0 0-6.23-.693L5 14.5m14.8.8 1.402 1.402c1.232 1.232.65 3.318-1.067 3.611A48.309 48.309 0 0 1 12 21c-2.773 0-5.491-.235-8.135-.687-1.718-.293-2.3-2.379-1.067-3.61L5 14.5"}))}const r0e=E.forwardRef(n0e),i0e=r0e;function a0e({title:e,titleId:t,...n},r){return E.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?E.createElement("title",{id:t},e):null,E.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 6.042A8.967 8.967 0 0 0 6 3.75c-1.052 0-2.062.18-3 .512v14.25A8.987 8.987 0 0 1 6 18c2.305 0 4.408.867 6 2.292m0-14.25a8.966 8.966 0 0 1 6-2.292c1.052 0 2.062.18 3 .512v14.25A8.987 8.987 0 0 0 18 18a8.967 8.967 0 0 0-6 2.292m0-14.25v14.25"}))}const o0e=E.forwardRef(a0e),LV=o0e;function l0e({title:e,titleId:t,...n},r){return E.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?E.createElement("title",{id:t},e):null,E.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 20.25c4.97 0 9-3.694 9-8.25s-4.03-8.25-9-8.25S3 7.444 3 12c0 2.104.859 4.023 2.273 5.48.432.447.74 1.04.586 1.641a4.483 4.483 0 0 1-.923 1.785A5.969 5.969 0 0 0 6 21c1.282 0 2.47-.402 3.445-1.087.81.22 1.668.337 2.555.337Z"}))}const s0e=E.forwardRef(l0e),MV=s0e;function u0e({title:e,titleId:t,...n},r){return E.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?E.createElement("title",{id:t},e):null,E.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9 12.75 11.25 15 15 9.75M21 12c0 1.268-.63 2.39-1.593 3.068a3.745 3.745 0 0 1-1.043 3.296 3.745 3.745 0 0 1-3.296 1.043A3.745 3.745 0 0 1 12 21c-1.268 0-2.39-.63-3.068-1.593a3.746 3.746 0 0 1-3.296-1.043 3.745 3.745 0 0 1-1.043-3.296A3.745 3.745 0 0 1 3 12c0-1.268.63-2.39 1.593-3.068a3.745 3.745 0 0 1 1.043-3.296 3.746 3.746 0 0 1 3.296-1.043A3.746 3.746 0 0 1 12 3c1.268 0 2.39.63 3.068 1.593a3.746 3.746 0 0 1 3.296 1.043 3.746 3.746 0 0 1 1.043 3.296A3.745 3.745 0 0 1 21 12Z"}))}const c0e=E.forwardRef(u0e),d0e=c0e;function p0e({title:e,titleId:t,...n},r){return E.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?E.createElement("title",{id:t},e):null,E.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m4.5 12.75 6 6 9-13.5"}))}const g0e=E.forwardRef(p0e),Z1=g0e;function h0e({title:e,titleId:t,...n},r){return E.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?E.createElement("title",{id:t},e):null,E.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m19.5 8.25-7.5 7.5-7.5-7.5"}))}const f0e=E.forwardRef(h0e),TV=f0e;function m0e({title:e,titleId:t,...n},r){return E.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?E.createElement("title",{id:t},e):null,E.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M8.25 15 12 18.75 15.75 15m-7.5-6L12 5.25 15.75 9"}))}const A0e=E.forwardRef(m0e),BE=A0e;function C0e({title:e,titleId:t,...n},r){return E.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?E.createElement("title",{id:t},e):null,E.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m4.5 15.75 7.5-7.5 7.5 7.5"}))}const B0e=E.forwardRef(C0e),VV=B0e;function w0e({title:e,titleId:t,...n},r){return E.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?E.createElement("title",{id:t},e):null,E.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15.666 3.888A2.25 2.25 0 0 0 13.5 2.25h-3c-1.03 0-1.9.693-2.166 1.638m7.332 0c.055.194.084.4.084.612v0a.75.75 0 0 1-.75.75H9a.75.75 0 0 1-.75-.75v0c0-.212.03-.418.084-.612m7.332 0c.646.049 1.288.11 1.927.184 1.1.128 1.907 1.077 1.907 2.185V19.5a2.25 2.25 0 0 1-2.25 2.25H6.75A2.25 2.25 0 0 1 4.5 19.5V6.257c0-1.108.806-2.057 1.907-2.185a48.208 48.208 0 0 1 1.927-.184"}))}const b0e=E.forwardRef(w0e),v0e=b0e;function K0e({title:e,titleId:t,...n},r){return E.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?E.createElement("title",{id:t},e):null,E.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M17.25 6.75 22.5 12l-5.25 5.25m-10.5 0L1.5 12l5.25-5.25m7.5-3-4.5 16.5"}))}const Q0e=E.forwardRef(K0e),W0e=Q0e;function y0e({title:e,titleId:t,...n},r){return E.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?E.createElement("title",{id:t},e):null,E.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9.594 3.94c.09-.542.56-.94 1.11-.94h2.593c.55 0 1.02.398 1.11.94l.213 1.281c.063.374.313.686.645.87.074.04.147.083.22.127.325.196.72.257 1.075.124l1.217-.456a1.125 1.125 0 0 1 1.37.49l1.296 2.247a1.125 1.125 0 0 1-.26 1.431l-1.003.827c-.293.241-.438.613-.43.992a7.723 7.723 0 0 1 0 .255c-.008.378.137.75.43.991l1.004.827c.424.35.534.955.26 1.43l-1.298 2.247a1.125 1.125 0 0 1-1.369.491l-1.217-.456c-.355-.133-.75-.072-1.076.124a6.47 6.47 0 0 1-.22.128c-.331.183-.581.495-.644.869l-.213 1.281c-.09.543-.56.94-1.11.94h-2.594c-.55 0-1.019-.398-1.11-.94l-.213-1.281c-.062-.374-.312-.686-.644-.87a6.52 6.52 0 0 1-.22-.127c-.325-.196-.72-.257-1.076-.124l-1.217.456a1.125 1.125 0 0 1-1.369-.49l-1.297-2.247a1.125 1.125 0 0 1 .26-1.431l1.004-.827c.292-.24.437-.613.43-.991a6.932 6.932 0 0 1 0-.255c.007-.38-.138-.751-.43-.992l-1.004-.827a1.125 1.125 0 0 1-.26-1.43l1.297-2.247a1.125 1.125 0 0 1 1.37-.491l1.216.456c.356.133.751.072 1.076-.124.072-.044.146-.086.22-.128.332-.183.582-.495.644-.869l.214-1.28Z"}),E.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M15 12a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z"}))}const F0e=E.forwardRef(y0e),t3=F0e;function E0e({title:e,titleId:t,...n},r){return E.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?E.createElement("title",{id:t},e):null,E.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m6.75 7.5 3 2.25-3 2.25m4.5 0h3m-9 8.25h13.5A2.25 2.25 0 0 0 21 18V6a2.25 2.25 0 0 0-2.25-2.25H5.25A2.25 2.25 0 0 0 3 6v12a2.25 2.25 0 0 0 2.25 2.25Z"}))}const R0e=E.forwardRef(E0e),oy=R0e;function S0e({title:e,titleId:t,...n},r){return E.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?E.createElement("title",{id:t},e):null,E.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9 17.25v1.007a3 3 0 0 1-.879 2.122L7.5 21h9l-.621-.621A3 3 0 0 1 15 18.257V17.25m6-12V15a2.25 2.25 0 0 1-2.25 2.25H5.25A2.25 2.25 0 0 1 3 15V5.25m18 0A2.25 2.25 0 0 0 18.75 3H5.25A2.25 2.25 0 0 0 3 5.25m18 0V12a2.25 2.25 0 0 1-2.25 2.25H5.25A2.25 2.25 0 0 1 3 12V5.25"}))}const x0e=E.forwardRef(S0e),G0e=x0e;function k0e({title:e,titleId:t,...n},r){return E.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?E.createElement("title",{id:t},e):null,E.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m21 7.5-9-5.25L3 7.5m18 0-9 5.25m9-5.25v9l-9 5.25M3 7.5l9 5.25M3 7.5v9l9 5.25m0-9v9"}))}const D0e=E.forwardRef(k0e),N0e=D0e;function Z0e({title:e,titleId:t,...n},r){return E.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?E.createElement("title",{id:t},e):null,E.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 9v3.75m9-.75a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9 3.75h.008v.008H12v-.008Z"}))}const H0e=E.forwardRef(Z0e),Zx=H0e;function X0e({title:e,titleId:t,...n},r){return E.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?E.createElement("title",{id:t},e):null,E.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 9v3.75m-9.303 3.376c-.866 1.5.217 3.374 1.948 3.374h14.71c1.73 0 2.813-1.874 1.948-3.374L13.949 3.378c-.866-1.5-3.032-1.5-3.898 0L2.697 16.126ZM12 15.75h.007v.008H12v-.008Z"}))}const L0e=E.forwardRef(X0e),M0e=L0e;function T0e({title:e,titleId:t,...n},r){return E.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?E.createElement("title",{id:t},e):null,E.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3.75 9.776c.112-.017.227-.026.344-.026h15.812c.117 0 .232.009.344.026m-16.5 0a2.25 2.25 0 0 0-1.883 2.542l.857 6a2.25 2.25 0 0 0 2.227 1.932H19.05a2.25 2.25 0 0 0 2.227-1.932l.857-6a2.25 2.25 0 0 0-1.883-2.542m-16.5 0V6A2.25 2.25 0 0 1 6 3.75h3.879a1.5 1.5 0 0 1 1.06.44l2.122 2.12a1.5 1.5 0 0 0 1.06.44H18A2.25 2.25 0 0 1 20.25 9v.776"}))}const V0e=E.forwardRef(T0e),Y0e=V0e;function I0e({title:e,titleId:t,...n},r){return E.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?E.createElement("title",{id:t},e):null,E.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M2.25 12.75V12A2.25 2.25 0 0 1 4.5 9.75h15A2.25 2.25 0 0 1 21.75 12v.75m-8.69-6.44-2.12-2.12a1.5 1.5 0 0 0-1.061-.44H4.5A2.25 2.25 0 0 0 2.25 6v12a2.25 2.25 0 0 0 2.25 2.25h15A2.25 2.25 0 0 0 21.75 18V9a2.25 2.25 0 0 0-2.25-2.25h-5.379a1.5 1.5 0 0 1-1.06-.44Z"}))}const U0e=E.forwardRef(I0e),Hx=U0e;function O0e({title:e,titleId:t,...n},r){return E.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?E.createElement("title",{id:t},e):null,E.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M21 11.25v8.25a1.5 1.5 0 0 1-1.5 1.5H5.25a1.5 1.5 0 0 1-1.5-1.5v-8.25M12 4.875A2.625 2.625 0 1 0 9.375 7.5H12m0-2.625V7.5m0-2.625A2.625 2.625 0 1 1 14.625 7.5H12m0 0V21m-8.625-9.75h18c.621 0 1.125-.504 1.125-1.125v-1.5c0-.621-.504-1.125-1.125-1.125h-18c-.621 0-1.125.504-1.125 1.125v1.5c0 .621.504 1.125 1.125 1.125Z"}))}const J0e=E.forwardRef(O0e),z0e=J0e;function P0e({title:e,titleId:t,...n},r){return E.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?E.createElement("title",{id:t},e):null,E.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 21a9.004 9.004 0 0 0 8.716-6.747M12 21a9.004 9.004 0 0 1-8.716-6.747M12 21c2.485 0 4.5-4.03 4.5-9S14.485 3 12 3m0 18c-2.485 0-4.5-4.03-4.5-9S9.515 3 12 3m0 0a8.997 8.997 0 0 1 7.843 4.582M12 3a8.997 8.997 0 0 0-7.843 4.582m15.686 0A11.953 11.953 0 0 1 12 10.5c-2.998 0-5.74-1.1-7.843-2.918m15.686 0A8.959 8.959 0 0 1 21 12c0 .778-.099 1.533-.284 2.253m0 0A17.919 17.919 0 0 1 12 16.5c-3.162 0-6.133-.815-8.716-2.247m0 0A9.015 9.015 0 0 1 3 12c0-1.605.42-3.113 1.157-4.418"}))}const j0e=E.forwardRef(P0e),Xx=j0e;function _0e({title:e,titleId:t,...n},r){return E.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?E.createElement("title",{id:t},e):null,E.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M7.498 15.25H4.372c-1.026 0-1.945-.694-2.054-1.715a12.137 12.137 0 0 1-.068-1.285c0-2.848.992-5.464 2.649-7.521C5.287 4.247 5.886 4 6.504 4h4.016a4.5 4.5 0 0 1 1.423.23l3.114 1.04a4.5 4.5 0 0 0 1.423.23h1.294M7.498 15.25c.618 0 .991.724.725 1.282A7.471 7.471 0 0 0 7.5 19.75 2.25 2.25 0 0 0 9.75 22a.75.75 0 0 0 .75-.75v-.633c0-.573.11-1.14.322-1.672.304-.76.93-1.33 1.653-1.715a9.04 9.04 0 0 0 2.86-2.4c.498-.634 1.226-1.08 2.032-1.08h.384m-10.253 1.5H9.7m8.075-9.75c.01.05.027.1.05.148.593 1.2.925 2.55.925 3.977 0 1.487-.36 2.89-.999 4.125m.023-8.25c-.076-.365.183-.75.575-.75h.908c.889 0 1.713.518 1.972 1.368.339 1.11.521 2.287.521 3.507 0 1.553-.295 3.036-.831 4.398-.306.774-1.086 1.227-1.918 1.227h-1.053c-.472 0-.745-.556-.5-.96a8.95 8.95 0 0 0 .303-.54"}))}const $0e=E.forwardRef(_0e),q0e=$0e;function ede({title:e,titleId:t,...n},r){return E.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?E.createElement("title",{id:t},e):null,E.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6.633 10.25c.806 0 1.533-.446 2.031-1.08a9.041 9.041 0 0 1 2.861-2.4c.723-.384 1.35-.956 1.653-1.715a4.498 4.498 0 0 0 .322-1.672V2.75a.75.75 0 0 1 .75-.75 2.25 2.25 0 0 1 2.25 2.25c0 1.152-.26 2.243-.723 3.218-.266.558.107 1.282.725 1.282m0 0h3.126c1.026 0 1.945.694 2.054 1.715.045.422.068.85.068 1.285a11.95 11.95 0 0 1-2.649 7.521c-.388.482-.987.729-1.605.729H13.48c-.483 0-.964-.078-1.423-.23l-3.114-1.04a4.501 4.501 0 0 0-1.423-.23H5.904m10.598-9.75H14.25M5.904 18.5c.083.205.173.405.27.602.197.4-.078.898-.523.898h-.908c-.889 0-1.713-.518-1.972-1.368a12 12 0 0 1-.521-3.507c0-1.553.295-3.036.831-4.398C3.387 9.953 4.167 9.5 5 9.5h1.053c.472 0 .745.556.5.96a8.958 8.958 0 0 0-1.302 4.665c0 1.194.232 2.333.654 3.375Z"}))}const tde=E.forwardRef(ede),nde=tde;function rde({title:e,titleId:t,...n},r){return E.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?E.createElement("title",{id:t},e):null,E.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5.25 8.25h15m-16.5 7.5h15m-1.8-13.5-3.9 19.5m-2.1-19.5-3.9 19.5"}))}const ide=E.forwardRef(rde),ade=ide;function ode({title:e,titleId:t,...n},r){return E.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?E.createElement("title",{id:t},e):null,E.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m11.25 11.25.041-.02a.75.75 0 0 1 1.063.852l-.708 2.836a.75.75 0 0 0 1.063.853l.041-.021M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9-3.75h.008v.008H12V8.25Z"}))}const lde=E.forwardRef(ode),sde=lde;function ude({title:e,titleId:t,...n},r){return E.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?E.createElement("title",{id:t},e):null,E.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m21 21-5.197-5.197m0 0A7.5 7.5 0 1 0 5.196 5.196a7.5 7.5 0 0 0 10.607 10.607Z"}))}const cde=E.forwardRef(ude),dde=cde;function pde({title:e,titleId:t,...n},r){return E.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?E.createElement("title",{id:t},e):null,E.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9.53 16.122a3 3 0 0 0-5.78 1.128 2.25 2.25 0 0 1-2.4 2.245 4.5 4.5 0 0 0 8.4-2.245c0-.399-.078-.78-.22-1.128Zm0 0a15.998 15.998 0 0 0 3.388-1.62m-5.043-.025a15.994 15.994 0 0 1 1.622-3.395m3.42 3.42a15.995 15.995 0 0 0 4.764-4.648l3.876-5.814a1.151 1.151 0 0 0-1.597-1.597L14.146 6.32a15.996 15.996 0 0 0-4.649 4.763m3.42 3.42a6.776 6.776 0 0 0-3.42-3.42"}))}const gde=E.forwardRef(pde),YV=gde;function hde({title:e,titleId:t,...n},r){return E.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?E.createElement("title",{id:t},e):null,E.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m16.862 4.487 1.687-1.688a1.875 1.875 0 1 1 2.652 2.652L10.582 16.07a4.5 4.5 0 0 1-1.897 1.13L6 18l.8-2.685a4.5 4.5 0 0 1 1.13-1.897l8.932-8.931Zm0 0L19.5 7.125M18 14v4.75A2.25 2.25 0 0 1 15.75 21H5.25A2.25 2.25 0 0 1 3 18.75V8.25A2.25 2.25 0 0 1 5.25 6H10"}))}const fde=E.forwardRef(hde),mde=fde;function Ade({title:e,titleId:t,...n},r){return E.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?E.createElement("title",{id:t},e):null,E.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m2.25 15.75 5.159-5.159a2.25 2.25 0 0 1 3.182 0l5.159 5.159m-1.5-1.5 1.409-1.409a2.25 2.25 0 0 1 3.182 0l2.909 2.909m-18 3.75h16.5a1.5 1.5 0 0 0 1.5-1.5V6a1.5 1.5 0 0 0-1.5-1.5H3.75A1.5 1.5 0 0 0 2.25 6v12a1.5 1.5 0 0 0 1.5 1.5Zm10.5-11.25h.008v.008h-.008V8.25Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0Z"}))}const Cde=E.forwardRef(Ade),Bde=Cde;function wde({title:e,titleId:t,...n},r){return E.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?E.createElement("title",{id:t},e):null,E.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5.25 5.653c0-.856.917-1.398 1.667-.986l11.54 6.347a1.125 1.125 0 0 1 0 1.972l-11.54 6.347a1.125 1.125 0 0 1-1.667-.986V5.653Z"}))}const bde=E.forwardRef(wde),wE=bde;function vde({title:e,titleId:t,...n},r){return E.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?E.createElement("title",{id:t},e):null,E.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 4.5v15m7.5-7.5h-15"}))}const Kde=E.forwardRef(vde),bE=Kde;function Qde({title:e,titleId:t,...n},r){return E.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?E.createElement("title",{id:t},e):null,E.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9.879 7.519c1.171-1.025 3.071-1.025 4.242 0 1.172 1.025 1.172 2.687 0 3.712-.203.179-.43.326-.67.442-.745.361-1.45.999-1.45 1.827v.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9 5.25h.008v.008H12v-.008Z"}))}const Wde=E.forwardRef(Qde),yde=Wde;function Fde({title:e,titleId:t,...n},r){return E.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?E.createElement("title",{id:t},e):null,E.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9.813 15.904 9 18.75l-.813-2.846a4.5 4.5 0 0 0-3.09-3.09L2.25 12l2.846-.813a4.5 4.5 0 0 0 3.09-3.09L9 5.25l.813 2.846a4.5 4.5 0 0 0 3.09 3.09L15.75 12l-2.846.813a4.5 4.5 0 0 0-3.09 3.09ZM18.259 8.715 18 9.75l-.259-1.035a3.375 3.375 0 0 0-2.455-2.456L14.25 6l1.036-.259a3.375 3.375 0 0 0 2.455-2.456L18 2.25l.259 1.035a3.375 3.375 0 0 0 2.456 2.456L21.75 6l-1.035.259a3.375 3.375 0 0 0-2.456 2.456ZM16.894 20.567 16.5 21.75l-.394-1.183a2.25 2.25 0 0 0-1.423-1.423L13.5 18.75l1.183-.394a2.25 2.25 0 0 0 1.423-1.423l.394-1.183.394 1.183a2.25 2.25 0 0 0 1.423 1.423l1.183.394-1.183.394a2.25 2.25 0 0 0-1.423 1.423Z"}))}const Ede=E.forwardRef(Fde),Lx=Ede;function Rde({title:e,titleId:t,...n},r){return E.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?E.createElement("title",{id:t},e):null,E.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5.25 7.5A2.25 2.25 0 0 1 7.5 5.25h9a2.25 2.25 0 0 1 2.25 2.25v9a2.25 2.25 0 0 1-2.25 2.25h-9a2.25 2.25 0 0 1-2.25-2.25v-9Z"}))}const Sde=E.forwardRef(Rde),xde=Sde;function Gde({title:e,titleId:t,...n},r){return E.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?E.createElement("title",{id:t},e):null,E.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"m14.74 9-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 0 1-2.244 2.077H8.084a2.25 2.25 0 0 1-2.244-2.077L4.772 5.79m14.456 0a48.108 48.108 0 0 0-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 0 1 3.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 0 0-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.667 0 0 0-7.5 0"}))}const kde=E.forwardRef(Gde),$C=kde;function Dde({title:e,titleId:t,...n},r){return E.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:1.5,stroke:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?E.createElement("title",{id:t},e):null,E.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M6 18 18 6M6 6l12 12"}))}const Nde=E.forwardRef(Dde),IV=Nde;function Zde(e){function t(q,T,ue,fe,_){for(var Ze=0,ve=0,it=0,et=0,ot,Oe,tt=0,st=0,pt,ht=pt=ot=0,lt=0,P=0,le=0,me=0,Re=ue.length,Qe=Re-1,We,Ee="",Ie="",Ce="",de="",we;ltot)&&(me=(Ee=Ee.replace(" ",":")).length),0fe&&(fe=(T=T.trim()).charCodeAt(0)),fe){case 38:return T.replace(C,"$1"+q.trim());case 58:return q.trim()+T.replace(C,"$1"+q.trim());default:if(0<1*ue&&0ve.charCodeAt(8))break;case 115:_=_.replace(ve,"-webkit-"+ve)+";"+_;break;case 207:case 102:_=_.replace(ve,"-webkit-"+(102ue.charCodeAt(0)&&(ue=ue.trim()),S=ue,ue=[S],01?t-1:0),r=1;r0?" Args: "+n.join(", "):""))}var Tde=function(){function e(n){this.groupSizes=new Uint32Array(512),this.length=512,this.tag=n}var t=e.prototype;return t.indexOfGroup=function(n){for(var r=0,i=0;i=this.groupSizes.length){for(var i=this.groupSizes,a=i.length,o=a;n>=o;)(o<<=1)<0&&Of(16,""+n);this.groupSizes=new Uint32Array(o),this.groupSizes.set(i),this.length=o;for(var l=a;l=this.length||this.groupSizes[n]===0)return r;for(var i=this.groupSizes[n],a=this.indexOfGroup(n),o=a+i,l=a;l=Wh&&(Wh=t+1),oC.set(e,t),eB.set(t,e)},Ide="style["+u1+'][data-styled-version="5.3.11"]',Ude=new RegExp("^"+u1+'\\.g(\\d+)\\[id="([\\w\\d-]+)"\\].*?"([^"]*)'),Ode=function(e,t,n){for(var r,i=n.split(","),a=0,o=i.length;a=0;u--){var c=s[u];if(c&&c.nodeType===1&&c.hasAttribute(u1))return c}}(n),a=i!==void 0?i.nextSibling:null;r.setAttribute(u1,"active"),r.setAttribute("data-styled-version","5.3.11");var o=zde();return o&&r.setAttribute("nonce",o),n.insertBefore(r,a),r},Pde=function(){function e(n){var r=this.element=UV(n);r.appendChild(document.createTextNode("")),this.sheet=function(i){if(i.sheet)return i.sheet;for(var a=document.styleSheets,o=0,l=a.length;o=0){var i=document.createTextNode(r),a=this.nodes[n];return this.element.insertBefore(i,a||null),this.length++,!0}return!1},t.deleteRule=function(n){this.element.removeChild(this.nodes[n]),this.length--},t.getRule=function(n){return n0&&(d+=g+",")}),a+=""+u+c+'{content:"'+d+`"}/*!sc*/ +`}}}return a}(this)},e}(),qde=/(a)(d)/gi,Ix=function(e){return String.fromCharCode(e+(e>25?39:97))};function sy(e){var t,n="";for(t=Math.abs(e);t>52;t=t/52|0)n=Ix(t%52)+n;return(Ix(t%52)+n).replace(qde,"$1-$2")}var Wp=function(e,t){for(var n=t.length;n;)e=33*e^t.charCodeAt(--n);return e},JV=function(e){return Wp(5381,e)};function epe(e){for(var t=0;t>>0);if(!n.hasNameForId(i,l)){var s=r(o,"."+l,void 0,i);n.insertRules(i,l,s)}a.push(l),this.staticRulesId=l}else{for(var u=this.rules.length,c=Wp(this.baseHash,r.hash),d="",g=0;g>>0);if(!n.hasNameForId(i,B)){var C=r(d,"."+B,void 0,i);n.insertRules(i,B,C)}a.push(B)}}return a.join(" ")},e}(),rpe=/^\s*\/\/.*$/gm,ipe=[":","[",".","#"];function ape(e){var t,n,r,i,a=e===void 0?dc:e,o=a.options,l=o===void 0?dc:o,s=a.plugins,u=s===void 0?qC:s,c=new Zde(l),d=[],g=function(A){function B(C){if(C)try{A(C+"}")}catch{}}return function(C,b,Q,F,K,y,G,X,H,v){switch(C){case 1:if(H===0&&b.charCodeAt(0)===64)return A(b+";"),"";break;case 2:if(X===0)return b+"/*|*/";break;case 3:switch(X){case 102:case 112:return A(Q[0]+b),"";default:return b+(v===0?"/*|*/":"")}case-2:b.split("/*|*/}").forEach(B)}}}(function(A){d.push(A)}),h=function(A,B,C){return B===0&&ipe.indexOf(C[n.length])!==-1||C.match(i)?A:"."+t};function m(A,B,C,b){b===void 0&&(b="&");var Q=A.replace(rpe,""),F=B&&C?C+" "+B+" { "+Q+" }":Q;return t=b,n=B,r=new RegExp("\\"+n+"\\b","g"),i=new RegExp("(\\"+n+"\\b){2,}"),c(C||!B?"":B,F)}return c.use([].concat(u,[function(A,B,C){A===2&&C.length&&C[0].lastIndexOf(n)>0&&(C[0]=C[0].replace(r,h))},g,function(A){if(A===-2){var B=d;return d=[],B}}])),m.hash=u.length?u.reduce(function(A,B){return B.name||Of(15),Wp(A,B.name)},5381).toString():"",m}var zV=ct.createContext();zV.Consumer;var PV=ct.createContext(),ope=(PV.Consumer,new OV),uy=ape();function lpe(){return E.useContext(zV)||ope}function spe(){return E.useContext(PV)||uy}var jV=function(){function e(t,n){var r=this;this.inject=function(i,a){a===void 0&&(a=uy);var o=r.name+a.hash;i.hasNameForId(r.id,o)||i.insertRules(r.id,o,a(r.rules,o,"@keyframes"))},this.toString=function(){return Of(12,String(r.name))},this.name=t,this.id="sc-keyframes-"+t,this.rules=n}return e.prototype.getName=function(t){return t===void 0&&(t=uy),this.name+t.hash},e}(),upe=/([A-Z])/,cpe=/([A-Z])/g,dpe=/^ms-/,ppe=function(e){return"-"+e.toLowerCase()};function Ux(e){return upe.test(e)?e.replace(cpe,ppe).replace(dpe,"-ms-"):e}var Ox=function(e){return e==null||e===!1||e===""};function c1(e,t,n,r){if(Array.isArray(e)){for(var i,a=[],o=0,l=e.length;o1?t-1:0),r=1;r?@[\\\]^`{|}~-]+/g,fpe=/(^-|-$)/g;function Kv(e){return e.replace(hpe,"-").replace(fpe,"")}var _V=function(e){return sy(JV(e)>>>0)};function LA(e){return typeof e=="string"&&!0}var cy=function(e){return typeof e=="function"||typeof e=="object"&&e!==null&&!Array.isArray(e)},mpe=function(e){return e!=="__proto__"&&e!=="constructor"&&e!=="prototype"};function Ape(e,t,n){var r=e[n];cy(t)&&cy(r)?$V(r,t):e[n]=t}function $V(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r=0||(v[X]=y[X]);return v}(t,["componentId"]),K=Q&&Q+"-"+(LA(b)?b:Kv(Vx(b)));return eY(b,Os({},F,{attrs:g,componentId:K}),n)},Object.defineProperty(m,"defaultProps",{get:function(){return this._foldedDefaultProps},set:function(b){this._foldedDefaultProps=r?$V({},e.defaultProps,b):b}}),Object.defineProperty(m,"toString",{value:function(){return"."+m.styledComponentId}}),i&&Yse(m,e,{attrs:!0,componentStyle:!0,displayName:!0,foldedComponentIds:!0,shouldForwardProp:!0,styledComponentId:!0,target:!0,withComponent:!0}),m}var dy=function(e){return function t(n,r,i){if(i===void 0&&(i=dc),!BV.isValidElementType(r))return Of(1,String(r));var a=function(){return n(r,i,QE.apply(void 0,arguments))};return a.withConfig=function(o){return t(n,r,Os({},i,{},o))},a.attrs=function(o){return t(n,r,Os({},i,{attrs:Array.prototype.concat(i.attrs,o).filter(Boolean)}))},a}(eY,e)};["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","big","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","keygen","label","legend","li","link","main","map","mark","marquee","menu","menuitem","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rp","rt","ruby","s","samp","script","section","select","small","source","span","strong","style","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr","circle","clipPath","defs","ellipse","foreignObject","g","image","line","linearGradient","marker","mask","path","pattern","polygon","polyline","radialGradient","rect","stop","svg","text","textPath","tspan"].forEach(function(e){dy[e]=dy(e)});function n3(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r({x:e,y:e}),Cpe={left:"right",right:"left",bottom:"top",top:"bottom"},Bpe={start:"end",end:"start"};function py(e,t,n){return D0(e,d1(t,n))}function Jf(e,t){return typeof e=="function"?e(t):e}function _0(e){return e.split("-")[0]}function zf(e){return e.split("-")[1]}function tY(e){return e==="x"?"y":"x"}function WE(e){return e==="y"?"height":"width"}function r3(e){return["top","bottom"].includes(_0(e))?"y":"x"}function yE(e){return tY(r3(e))}function wpe(e,t,n){n===void 0&&(n=!1);const r=zf(e),i=yE(e),a=WE(i);let o=i==="x"?r===(n?"end":"start")?"right":"left":r==="start"?"bottom":"top";return t.reference[a]>t.floating[a]&&(o=nB(o)),[o,nB(o)]}function bpe(e){const t=nB(e);return[gy(e),t,gy(t)]}function gy(e){return e.replace(/start|end/g,t=>Bpe[t])}function vpe(e,t,n){const r=["left","right"],i=["right","left"],a=["top","bottom"],o=["bottom","top"];switch(e){case"top":case"bottom":return n?t?i:r:t?r:i;case"left":case"right":return t?a:o;default:return[]}}function Kpe(e,t,n,r){const i=zf(e);let a=vpe(_0(e),n==="start",r);return i&&(a=a.map(o=>o+"-"+i),t&&(a=a.concat(a.map(gy)))),a}function nB(e){return e.replace(/left|right|bottom|top/g,t=>Cpe[t])}function Qpe(e){return{top:0,right:0,bottom:0,left:0,...e}}function nY(e){return typeof e!="number"?Qpe(e):{top:e,right:e,bottom:e,left:e}}function rB(e){const{x:t,y:n,width:r,height:i}=e;return{width:r,height:i,top:n,left:t,right:t+r,bottom:n+i,x:t,y:n}}function zx(e,t,n){let{reference:r,floating:i}=e;const a=r3(t),o=yE(t),l=WE(o),s=_0(t),u=a==="y",c=r.x+r.width/2-i.width/2,d=r.y+r.height/2-i.height/2,g=r[l]/2-i[l]/2;let h;switch(s){case"top":h={x:c,y:r.y-i.height};break;case"bottom":h={x:c,y:r.y+r.height};break;case"right":h={x:r.x+r.width,y:d};break;case"left":h={x:r.x-i.width,y:d};break;default:h={x:r.x,y:r.y}}switch(zf(t)){case"start":h[o]-=g*(n&&u?-1:1);break;case"end":h[o]+=g*(n&&u?-1:1);break}return h}const Wpe=async(e,t,n)=>{const{placement:r="bottom",strategy:i="absolute",middleware:a=[],platform:o}=n,l=a.filter(Boolean),s=await(o.isRTL==null?void 0:o.isRTL(t));let u=await o.getElementRects({reference:e,floating:t,strategy:i}),{x:c,y:d}=zx(u,r,s),g=r,h={},m=0;for(let A=0;A({name:"arrow",options:e,async fn(t){const{x:n,y:r,placement:i,rects:a,platform:o,elements:l,middlewareData:s}=t,{element:u,padding:c=0}=Jf(e,t)||{};if(u==null)return{};const d=nY(c),g={x:n,y:r},h=yE(i),m=WE(h),A=await o.getDimensions(u),B=h==="y",C=B?"top":"left",b=B?"bottom":"right",Q=B?"clientHeight":"clientWidth",F=a.reference[m]+a.reference[h]-g[h]-a.floating[m],K=g[h]-a.reference[h],y=await(o.getOffsetParent==null?void 0:o.getOffsetParent(u));let G=y?y[Q]:0;(!G||!await(o.isElement==null?void 0:o.isElement(y)))&&(G=l.floating[Q]||a.floating[m]);const X=F/2-K/2,H=G/2-A[m]/2-1,v=d1(d[C],H),k=d1(d[b],H),D=v,V=G-A[m]-k,z=G/2-A[m]/2+X,j=py(D,z,V),te=!s.arrow&&zf(i)!=null&&z!==j&&a.reference[m]/2-(zD<=0)){var H,v;const D=(((H=a.flip)==null?void 0:H.index)||0)+1,V=K[D];if(V)return{data:{index:D,overflows:X},reset:{placement:V}};let z=(v=X.filter(j=>j.overflows[0]<=0).sort((j,te)=>j.overflows[1]-te.overflows[1])[0])==null?void 0:v.placement;if(!z)switch(h){case"bestFit":{var k;const j=(k=X.map(te=>[te.placement,te.overflows.filter(J=>J>0).reduce((J,I)=>J+I,0)]).sort((te,J)=>te[1]-J[1])[0])==null?void 0:k[0];j&&(z=j);break}case"initialPlacement":z=l;break}if(i!==z)return{reset:{placement:z}}}return{}}}};async function Epe(e,t){const{placement:n,platform:r,elements:i}=e,a=await(r.isRTL==null?void 0:r.isRTL(i.floating)),o=_0(n),l=zf(n),s=r3(n)==="y",u=["left","top"].includes(o)?-1:1,c=a&&s?-1:1,d=Jf(t,e);let{mainAxis:g,crossAxis:h,alignmentAxis:m}=typeof d=="number"?{mainAxis:d,crossAxis:0,alignmentAxis:null}:{mainAxis:0,crossAxis:0,alignmentAxis:null,...d};return l&&typeof m=="number"&&(h=l==="end"?m*-1:m),s?{x:h*c,y:g*u}:{x:g*u,y:h*c}}const Rpe=function(e){return e===void 0&&(e=0),{name:"offset",options:e,async fn(t){var n,r;const{x:i,y:a,placement:o,middlewareData:l}=t,s=await Epe(t,e);return o===((n=l.offset)==null?void 0:n.placement)&&(r=l.arrow)!=null&&r.alignmentOffset?{}:{x:i+s.x,y:a+s.y,data:{...s,placement:o}}}}},Spe=function(e){return e===void 0&&(e={}),{name:"shift",options:e,async fn(t){const{x:n,y:r,placement:i}=t,{mainAxis:a=!0,crossAxis:o=!1,limiter:l={fn:B=>{let{x:C,y:b}=B;return{x:C,y:b}}},...s}=Jf(e,t),u={x:n,y:r},c=await rY(t,s),d=r3(_0(i)),g=tY(d);let h=u[g],m=u[d];if(a){const B=g==="y"?"top":"left",C=g==="y"?"bottom":"right",b=h+c[B],Q=h-c[C];h=py(b,h,Q)}if(o){const B=d==="y"?"top":"left",C=d==="y"?"bottom":"right",b=m+c[B],Q=m-c[C];m=py(b,m,Q)}const A=l.fn({...t,[g]:h,[d]:m});return{...A,data:{x:A.x-n,y:A.y-r}}}}};function H1(e){return iY(e)?(e.nodeName||"").toLowerCase():"#document"}function $a(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function fu(e){var t;return(t=(iY(e)?e.ownerDocument:e.document)||window.document)==null?void 0:t.documentElement}function iY(e){return e instanceof Node||e instanceof $a(e).Node}function ss(e){return e instanceof Element||e instanceof $a(e).Element}function us(e){return e instanceof HTMLElement||e instanceof $a(e).HTMLElement}function Px(e){return typeof ShadowRoot>"u"?!1:e instanceof ShadowRoot||e instanceof $a(e).ShadowRoot}function Pf(e){const{overflow:t,overflowX:n,overflowY:r,display:i}=vl(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&!["inline","contents"].includes(i)}function xpe(e){return["table","td","th"].includes(H1(e))}function FE(e){const t=EE(),n=vl(e);return n.transform!=="none"||n.perspective!=="none"||(n.containerType?n.containerType!=="normal":!1)||!t&&(n.backdropFilter?n.backdropFilter!=="none":!1)||!t&&(n.filter?n.filter!=="none":!1)||["transform","perspective","filter"].some(r=>(n.willChange||"").includes(r))||["paint","layout","strict","content"].some(r=>(n.contain||"").includes(r))}function Gpe(e){let t=yc(e);for(;us(t)&&!p1(t);){if(FE(t))return t;t=yc(t)}return null}function EE(){return typeof CSS>"u"||!CSS.supports?!1:CSS.supports("-webkit-backdrop-filter","none")}function p1(e){return["html","body","#document"].includes(H1(e))}function vl(e){return $a(e).getComputedStyle(e)}function i3(e){return ss(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.pageXOffset,scrollTop:e.pageYOffset}}function yc(e){if(H1(e)==="html")return e;const t=e.assignedSlot||e.parentNode||Px(e)&&e.host||fu(e);return Px(t)?t.host:t}function aY(e){const t=yc(e);return p1(t)?e.ownerDocument?e.ownerDocument.body:e.body:us(t)&&Pf(t)?t:aY(t)}function df(e,t,n){var r;t===void 0&&(t=[]),n===void 0&&(n=!0);const i=aY(e),a=i===((r=e.ownerDocument)==null?void 0:r.body),o=$a(i);return a?t.concat(o,o.visualViewport||[],Pf(i)?i:[],o.frameElement&&n?df(o.frameElement):[]):t.concat(i,df(i,[],n))}function oY(e){const t=vl(e);let n=parseFloat(t.width)||0,r=parseFloat(t.height)||0;const i=us(e),a=i?e.offsetWidth:n,o=i?e.offsetHeight:r,l=tB(n)!==a||tB(r)!==o;return l&&(n=a,r=o),{width:n,height:r,$:l}}function RE(e){return ss(e)?e:e.contextElement}function Xp(e){const t=RE(e);if(!us(t))return Wc(1);const n=t.getBoundingClientRect(),{width:r,height:i,$:a}=oY(t);let o=(a?tB(n.width):n.width)/r,l=(a?tB(n.height):n.height)/i;return(!o||!Number.isFinite(o))&&(o=1),(!l||!Number.isFinite(l))&&(l=1),{x:o,y:l}}const kpe=Wc(0);function lY(e){const t=$a(e);return!EE()||!t.visualViewport?kpe:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function Dpe(e,t,n){return t===void 0&&(t=!1),!n||t&&n!==$a(e)?!1:t}function $0(e,t,n,r){t===void 0&&(t=!1),n===void 0&&(n=!1);const i=e.getBoundingClientRect(),a=RE(e);let o=Wc(1);t&&(r?ss(r)&&(o=Xp(r)):o=Xp(e));const l=Dpe(a,n,r)?lY(a):Wc(0);let s=(i.left+l.x)/o.x,u=(i.top+l.y)/o.y,c=i.width/o.x,d=i.height/o.y;if(a){const g=$a(a),h=r&&ss(r)?$a(r):r;let m=g,A=m.frameElement;for(;A&&r&&h!==m;){const B=Xp(A),C=A.getBoundingClientRect(),b=vl(A),Q=C.left+(A.clientLeft+parseFloat(b.paddingLeft))*B.x,F=C.top+(A.clientTop+parseFloat(b.paddingTop))*B.y;s*=B.x,u*=B.y,c*=B.x,d*=B.y,s+=Q,u+=F,m=$a(A),A=m.frameElement}}return rB({width:c,height:d,x:s,y:u})}const Npe=[":popover-open",":modal"];function SE(e){return Npe.some(t=>{try{return e.matches(t)}catch{return!1}})}function Zpe(e){let{elements:t,rect:n,offsetParent:r,strategy:i}=e;const a=i==="fixed",o=fu(r),l=t?SE(t.floating):!1;if(r===o||l&&a)return n;let s={scrollLeft:0,scrollTop:0},u=Wc(1);const c=Wc(0),d=us(r);if((d||!d&&!a)&&((H1(r)!=="body"||Pf(o))&&(s=i3(r)),us(r))){const g=$0(r);u=Xp(r),c.x=g.x+r.clientLeft,c.y=g.y+r.clientTop}return{width:n.width*u.x,height:n.height*u.y,x:n.x*u.x-s.scrollLeft*u.x+c.x,y:n.y*u.y-s.scrollTop*u.y+c.y}}function Hpe(e){return Array.from(e.getClientRects())}function sY(e){return $0(fu(e)).left+i3(e).scrollLeft}function Xpe(e){const t=fu(e),n=i3(e),r=e.ownerDocument.body,i=D0(t.scrollWidth,t.clientWidth,r.scrollWidth,r.clientWidth),a=D0(t.scrollHeight,t.clientHeight,r.scrollHeight,r.clientHeight);let o=-n.scrollLeft+sY(e);const l=-n.scrollTop;return vl(r).direction==="rtl"&&(o+=D0(t.clientWidth,r.clientWidth)-i),{width:i,height:a,x:o,y:l}}function Lpe(e,t){const n=$a(e),r=fu(e),i=n.visualViewport;let a=r.clientWidth,o=r.clientHeight,l=0,s=0;if(i){a=i.width,o=i.height;const u=EE();(!u||u&&t==="fixed")&&(l=i.offsetLeft,s=i.offsetTop)}return{width:a,height:o,x:l,y:s}}function Mpe(e,t){const n=$0(e,!0,t==="fixed"),r=n.top+e.clientTop,i=n.left+e.clientLeft,a=us(e)?Xp(e):Wc(1),o=e.clientWidth*a.x,l=e.clientHeight*a.y,s=i*a.x,u=r*a.y;return{width:o,height:l,x:s,y:u}}function jx(e,t,n){let r;if(t==="viewport")r=Lpe(e,n);else if(t==="document")r=Xpe(fu(e));else if(ss(t))r=Mpe(t,n);else{const i=lY(e);r={...t,x:t.x-i.x,y:t.y-i.y}}return rB(r)}function uY(e,t){const n=yc(e);return n===t||!ss(n)||p1(n)?!1:vl(n).position==="fixed"||uY(n,t)}function Tpe(e,t){const n=t.get(e);if(n)return n;let r=df(e,[],!1).filter(l=>ss(l)&&H1(l)!=="body"),i=null;const a=vl(e).position==="fixed";let o=a?yc(e):e;for(;ss(o)&&!p1(o);){const l=vl(o),s=FE(o);!s&&l.position==="fixed"&&(i=null),(a?!s&&!i:!s&&l.position==="static"&&!!i&&["absolute","fixed"].includes(i.position)||Pf(o)&&!s&&uY(e,o))?r=r.filter(c=>c!==o):i=l,o=yc(o)}return t.set(e,r),r}function Vpe(e){let{element:t,boundary:n,rootBoundary:r,strategy:i}=e;const o=[...n==="clippingAncestors"?SE(t)?[]:Tpe(t,this._c):[].concat(n),r],l=o[0],s=o.reduce((u,c)=>{const d=jx(t,c,i);return u.top=D0(d.top,u.top),u.right=d1(d.right,u.right),u.bottom=d1(d.bottom,u.bottom),u.left=D0(d.left,u.left),u},jx(t,l,i));return{width:s.right-s.left,height:s.bottom-s.top,x:s.left,y:s.top}}function Ype(e){const{width:t,height:n}=oY(e);return{width:t,height:n}}function Ipe(e,t,n){const r=us(t),i=fu(t),a=n==="fixed",o=$0(e,!0,a,t);let l={scrollLeft:0,scrollTop:0};const s=Wc(0);if(r||!r&&!a)if((H1(t)!=="body"||Pf(i))&&(l=i3(t)),r){const d=$0(t,!0,a,t);s.x=d.x+t.clientLeft,s.y=d.y+t.clientTop}else i&&(s.x=sY(i));const u=o.left+l.scrollLeft-s.x,c=o.top+l.scrollTop-s.y;return{x:u,y:c,width:o.width,height:o.height}}function Wv(e){return vl(e).position==="static"}function _x(e,t){return!us(e)||vl(e).position==="fixed"?null:t?t(e):e.offsetParent}function cY(e,t){const n=$a(e);if(SE(e))return n;if(!us(e)){let i=yc(e);for(;i&&!p1(i);){if(ss(i)&&!Wv(i))return i;i=yc(i)}return n}let r=_x(e,t);for(;r&&xpe(r)&&Wv(r);)r=_x(r,t);return r&&p1(r)&&Wv(r)&&!FE(r)?n:r||Gpe(e)||n}const Upe=async function(e){const t=this.getOffsetParent||cY,n=this.getDimensions,r=await n(e.floating);return{reference:Ipe(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:r.width,height:r.height}}};function Ope(e){return vl(e).direction==="rtl"}const Jpe={convertOffsetParentRelativeRectToViewportRelativeRect:Zpe,getDocumentElement:fu,getClippingRect:Vpe,getOffsetParent:cY,getElementRects:Upe,getClientRects:Hpe,getDimensions:Ype,getScale:Xp,isElement:ss,isRTL:Ope};function zpe(e,t){let n=null,r;const i=fu(e);function a(){var l;clearTimeout(r),(l=n)==null||l.disconnect(),n=null}function o(l,s){l===void 0&&(l=!1),s===void 0&&(s=1),a();const{left:u,top:c,width:d,height:g}=e.getBoundingClientRect();if(l||t(),!d||!g)return;const h=MA(c),m=MA(i.clientWidth-(u+d)),A=MA(i.clientHeight-(c+g)),B=MA(u),b={rootMargin:-h+"px "+-m+"px "+-A+"px "+-B+"px",threshold:D0(0,d1(1,s))||1};let Q=!0;function F(K){const y=K[0].intersectionRatio;if(y!==s){if(!Q)return o();y?o(!1,y):r=setTimeout(()=>{o(!1,1e-7)},1e3)}Q=!1}try{n=new IntersectionObserver(F,{...b,root:i.ownerDocument})}catch{n=new IntersectionObserver(F,b)}n.observe(e)}return o(!0),a}function Ppe(e,t,n,r){r===void 0&&(r={});const{ancestorScroll:i=!0,ancestorResize:a=!0,elementResize:o=typeof ResizeObserver=="function",layoutShift:l=typeof IntersectionObserver=="function",animationFrame:s=!1}=r,u=RE(e),c=i||a?[...u?df(u):[],...df(t)]:[];c.forEach(C=>{i&&C.addEventListener("scroll",n,{passive:!0}),a&&C.addEventListener("resize",n)});const d=u&&l?zpe(u,n):null;let g=-1,h=null;o&&(h=new ResizeObserver(C=>{let[b]=C;b&&b.target===u&&h&&(h.unobserve(t),cancelAnimationFrame(g),g=requestAnimationFrame(()=>{var Q;(Q=h)==null||Q.observe(t)})),n()}),u&&!s&&h.observe(u),h.observe(t));let m,A=s?$0(e):null;s&&B();function B(){const C=$0(e);A&&(C.x!==A.x||C.y!==A.y||C.width!==A.width||C.height!==A.height)&&n(),A=C,m=requestAnimationFrame(B)}return n(),()=>{var C;c.forEach(b=>{i&&b.removeEventListener("scroll",n),a&&b.removeEventListener("resize",n)}),d==null||d(),(C=h)==null||C.disconnect(),h=null,s&&cancelAnimationFrame(m)}}const jpe=Rpe,_pe=Spe,$pe=Fpe,qpe=ype,$x=(e,t,n)=>{const r=new Map,i={platform:Jpe,...n},a={...i.platform,_c:r};return Wpe(e,t,{...i,platform:a})};var dY={exports:{}};/*! Copyright (c) 2018 Jed Watson. Licensed under the MIT License (MIT), see http://jedwatson.github.io/classnames -*/(function(I){(function(){var l={}.hasOwnProperty;function c(){for(var d="",t=0;t"u"||q9[c]||c==="core"&&typeof process<"u"&&(!((e=process==null?void 0:process.env)===null||e===void 0)&&e.REACT_TOOLTIP_DISABLE_CORE_STYLES)||c!=="base"&&typeof process<"u"&&(!((d=process==null?void 0:process.env)===null||d===void 0)&&d.REACT_TOOLTIP_DISABLE_BASE_STYLES))return;c==="core"&&(l=EmI),G||(G={});const{insertAt:t}=G;if(document.getElementById(l))return void console.warn(`[react-tooltip] Element with id '${l}' already exists. Call \`removeStyle()\` first`);const n=document.head||document.getElementsByTagName("head")[0],b=document.createElement("style");b.id=l,b.type="text/css",t==="top"&&n.firstChild?n.insertBefore(b,n.firstChild):n.appendChild(b),b.styleSheet?b.styleSheet.cssText=I:b.appendChild(document.createTextNode(I)),q9[c]=!0}const I4=async({elementReference:I=null,tooltipReference:l=null,tooltipArrowReference:c=null,place:G="top",offset:e=10,strategy:d="absolute",middlewares:t=[emI(Number(e)),HmI({fallbackAxisSideDirection:"start"}),XmI({padding:5})],border:n})=>{if(!I)return{tooltipStyles:{},tooltipArrowStyles:{},place:G};if(l===null)return{tooltipStyles:{},tooltipArrowStyles:{},place:G};const b=t;return c?(b.push(QmI({element:c,padding:5})),_9(I,l,{placement:G,strategy:d,middleware:b}).then(({x:a,y:Z,placement:W,middlewareData:m})=>{var s,h;const p={left:`${a}px`,top:`${Z}px`,border:n},{x:V,y:o}=(s=m.arrow)!==null&&s!==void 0?s:{x:0,y:0},F=(h={top:"bottom",right:"left",bottom:"top",left:"right"}[W.split("-")[0]])!==null&&h!==void 0?h:"bottom",X=n&&{borderBottom:n,borderRight:n};let H=0;if(n){const Y=`${n}`.match(/(\d+)px/);H=Y!=null&&Y[1]?Number(Y[1]):1}return{tooltipStyles:p,tooltipArrowStyles:{left:V!=null?`${V}px`:"",top:o!=null?`${o}px`:"",right:"",bottom:"",...X,[F]:`-${4+H}px`},place:W}})):_9(I,l,{placement:"bottom",strategy:d,middleware:b}).then(({x:a,y:Z,placement:W})=>({tooltipStyles:{left:`${a}px`,top:`${Z}px`},tooltipArrowStyles:{},place:W}))},l4=(I,l)=>!("CSS"in window&&"supports"in window.CSS)||window.CSS.supports(I,l),c4=(I,l,c)=>{let G=null;const e=function(...d){const t=()=>{G=null,c||I.apply(this,d)};c&&!G&&(I.apply(this,d),G=setTimeout(t,l)),c||(G&&clearTimeout(G),G=setTimeout(t,l))};return e.cancel=()=>{G&&(clearTimeout(G),G=null)},e},G4=I=>I!==null&&!Array.isArray(I)&&typeof I=="object",tw=(I,l)=>{if(I===l)return!0;if(Array.isArray(I)&&Array.isArray(l))return I.length===l.length&&I.every((e,d)=>tw(e,l[d]));if(Array.isArray(I)!==Array.isArray(l))return!1;if(!G4(I)||!G4(l))return I===l;const c=Object.keys(I),G=Object.keys(l);return c.length===G.length&&c.every(e=>tw(I[e],l[e]))},gmI=I=>{if(!(I instanceof HTMLElement||I instanceof SVGElement))return!1;const l=getComputedStyle(I);return["overflow","overflow-x","overflow-y"].some(c=>{const G=l.getPropertyValue(c);return G==="auto"||G==="scroll"})},e4=I=>{if(!I)return null;let l=I.parentElement;for(;l;){if(gmI(l))return l;l=l.parentElement}return document.scrollingElement||document.documentElement},AmI=typeof window<"u"?E.useLayoutEffect:E.useEffect,ymI="DEFAULT_TOOLTIP_ID",JmI={anchorRefs:new Set,activeAnchor:{current:null},attach:()=>{},detach:()=>{},setActiveAnchor:()=>{}},BmI=E.createContext({getTooltipData:()=>JmI});function mT(I=ymI){return E.useContext(BmI).getTooltipData(I)}var wr={tooltip:"core-styles-module_tooltip__3vRRp",fixed:"core-styles-module_fixed__pcSol",arrow:"core-styles-module_arrow__cvMwQ",noArrow:"core-styles-module_noArrow__xock6",clickable:"core-styles-module_clickable__ZuTTB",show:"core-styles-module_show__Nt9eE",closing:"core-styles-module_closing__sGnxF"},FY={tooltip:"styles-module_tooltip__mnnfp",arrow:"styles-module_arrow__K0L3T",dark:"styles-module_dark__xNqje",light:"styles-module_light__Z6W-X",success:"styles-module_success__A2AKt",warning:"styles-module_warning__SCK0X",error:"styles-module_error__JvumD",info:"styles-module_info__BWdHW"};const kmI=({forwardRef:I,id:l,className:c,classNameArrow:G,variant:e="dark",anchorId:d,anchorSelect:t,place:n="top",offset:b=10,events:a=["hover"],openOnClick:Z=!1,positionStrategy:W="absolute",middlewares:m,wrapper:s,delayShow:h=0,delayHide:p=0,float:V=!1,hidden:o=!1,noArrow:F=!1,clickable:X=!1,closeOnEsc:H=!1,closeOnScroll:Y=!1,closeOnResize:R=!1,openEvents:B,closeEvents:C,globalCloseEvents:k,imperativeModeOnly:N,style:J,position:A,afterShow:M,afterHide:D,content:O,contentWrapperRef:$,isOpen:j,defaultIsOpen:S=!1,setIsOpen:tI,activeAnchor:z,setActiveAnchor:g,border:GI,opacity:f,arrowColor:nI,role:VI="tooltip"})=>{var q;const fI=E.useRef(null),RI=E.useRef(null),cl=E.useRef(null),OI=E.useRef(null),PI=E.useRef(null),[_I,tl]=E.useState({tooltipStyles:{},tooltipArrowStyles:{},place:n}),[bl,Il]=E.useState(!1),[Fl,al]=E.useState(!1),[P,eI]=E.useState(null),uI=E.useRef(!1),wI=E.useRef(null),{anchorRefs:YI,setActiveAnchor:HI}=mT(l),NI=E.useRef(!1),[bI,gI]=E.useState([]),oI=E.useRef(!1),QI=Z||a.includes("click"),dI=QI||(B==null?void 0:B.click)||(B==null?void 0:B.dblclick)||(B==null?void 0:B.mousedown),xI=B?{...B}:{mouseenter:!0,focus:!0,click:!1,dblclick:!1,mousedown:!1};!B&&QI&&Object.assign(xI,{mouseenter:!1,focus:!1,click:!0});const Wl=C?{...C}:{mouseleave:!0,blur:!0,click:!1,dblclick:!1,mouseup:!1};!C&&QI&&Object.assign(Wl,{mouseleave:!1,blur:!1});const nl=k?{...k}:{escape:H||!1,scroll:Y||!1,resize:R||!1,clickOutsideAnchor:dI||!1};N&&(Object.assign(xI,{mouseenter:!1,focus:!1,click:!1,dblclick:!1,mousedown:!1}),Object.assign(Wl,{mouseleave:!1,blur:!1,click:!1,dblclick:!1,mouseup:!1}),Object.assign(nl,{escape:!1,scroll:!1,resize:!1,clickOutsideAnchor:!1})),AmI(()=>(oI.current=!0,()=>{oI.current=!1}),[]);const Hl=AI=>{oI.current&&(AI&&al(!0),setTimeout(()=>{oI.current&&(tI==null||tI(AI),j===void 0&&Il(AI))},10))};E.useEffect(()=>{if(j===void 0)return()=>null;j&&al(!0);const AI=setTimeout(()=>{Il(j)},10);return()=>{clearTimeout(AI)}},[j]),E.useEffect(()=>{if(bl!==uI.current)if(PI.current&&clearTimeout(PI.current),uI.current=bl,bl)M==null||M();else{const AI=(KI=>{const zI=KI.match(/^([\d.]+)(ms|s)$/);if(!zI)return 0;const[,Ql,_l]=zI;return Number(Ql)*(_l==="ms"?1:1e3)})(getComputedStyle(document.body).getPropertyValue("--rt-transition-show-delay"));PI.current=setTimeout(()=>{al(!1),eI(null),D==null||D()},AI+25)}},[bl]);const _=AI=>{tl(KI=>tw(KI,AI)?KI:AI)},FI=(AI=h)=>{cl.current&&clearTimeout(cl.current),Fl?Hl(!0):cl.current=setTimeout(()=>{Hl(!0)},AI)},CI=(AI=p)=>{OI.current&&clearTimeout(OI.current),OI.current=setTimeout(()=>{NI.current||Hl(!1)},AI)},ll=AI=>{var KI;if(!AI)return;const zI=(KI=AI.currentTarget)!==null&&KI!==void 0?KI:AI.target;if(!(zI!=null&&zI.isConnected))return g(null),void HI({current:null});h?FI():Hl(!0),g(zI),HI({current:zI}),OI.current&&clearTimeout(OI.current)},Zl=()=>{X?CI(p||100):p?CI():Hl(!1),cl.current&&clearTimeout(cl.current)},vl=({x:AI,y:KI})=>{var zI;const Ql={getBoundingClientRect:()=>({x:AI,y:KI,width:0,height:0,top:KI,left:AI,right:AI,bottom:KI})};I4({place:(zI=P==null?void 0:P.place)!==null&&zI!==void 0?zI:n,offset:b,elementReference:Ql,tooltipReference:fI.current,tooltipArrowReference:RI.current,strategy:W,middlewares:m,border:GI}).then(_l=>{_(_l)})},kl=AI=>{if(!AI)return;const KI=AI,zI={x:KI.clientX,y:KI.clientY};vl(zI),wI.current=zI},ql=AI=>{var KI;if(!bl)return;const zI=AI.target;zI.isConnected&&(!((KI=fI.current)===null||KI===void 0)&&KI.contains(zI)||[document.querySelector(`[id='${d}']`),...bI].some(Ql=>Ql==null?void 0:Ql.contains(zI))||(Hl(!1),cl.current&&clearTimeout(cl.current)))},dG=c4(ll,50,!0),ZI=c4(Zl,50,!0),pI=AI=>{ZI.cancel(),dG(AI)},sI=()=>{dG.cancel(),ZI()},EI=E.useCallback(()=>{var AI,KI;const zI=(AI=P==null?void 0:P.position)!==null&&AI!==void 0?AI:A;zI?vl(zI):V?wI.current&&vl(wI.current):z!=null&&z.isConnected&&I4({place:(KI=P==null?void 0:P.place)!==null&&KI!==void 0?KI:n,offset:b,elementReference:z,tooltipReference:fI.current,tooltipArrowReference:RI.current,strategy:W,middlewares:m,border:GI}).then(Ql=>{oI.current&&_(Ql)})},[bl,z,O,J,n,P==null?void 0:P.place,b,W,A,P==null?void 0:P.position,V]);E.useEffect(()=>{var AI,KI;const zI=new Set(YI);bI.forEach(JI=>{zI.add({current:JI})});const Ql=document.querySelector(`[id='${d}']`);Ql&&zI.add({current:Ql});const _l=()=>{Hl(!1)},gl=e4(z),$l=e4(fI.current);nl.scroll&&(window.addEventListener("scroll",_l),gl==null||gl.addEventListener("scroll",_l),$l==null||$l.addEventListener("scroll",_l));let bc=null;nl.resize?window.addEventListener("resize",_l):z&&fI.current&&(bc=YmI(z,fI.current,EI,{ancestorResize:!0,elementResize:!0,layoutShift:!0}));const ac=JI=>{JI.key==="Escape"&&Hl(!1)};nl.escape&&window.addEventListener("keydown",ac),nl.clickOutsideAnchor&&window.addEventListener("click",ql);const Sl=[],be=JI=>{bl&&(JI==null?void 0:JI.target)===z||ll(JI)},Xn=JI=>{bl&&(JI==null?void 0:JI.target)===z&&Zl()},dd=["mouseenter","mouseleave","focus","blur"],Xe=["click","dblclick","mousedown","mouseup"];Object.entries(xI).forEach(([JI,ml])=>{ml&&(dd.includes(JI)?Sl.push({event:JI,listener:pI}):Xe.includes(JI)&&Sl.push({event:JI,listener:be}))}),Object.entries(Wl).forEach(([JI,ml])=>{ml&&(dd.includes(JI)?Sl.push({event:JI,listener:sI}):Xe.includes(JI)&&Sl.push({event:JI,listener:Xn}))}),V&&Sl.push({event:"pointermove",listener:kl});const pl=()=>{NI.current=!0},rI=()=>{NI.current=!1,Zl()};return X&&!dI&&((AI=fI.current)===null||AI===void 0||AI.addEventListener("mouseenter",pl),(KI=fI.current)===null||KI===void 0||KI.addEventListener("mouseleave",rI)),Sl.forEach(({event:JI,listener:ml})=>{zI.forEach(dc=>{var yc;(yc=dc.current)===null||yc===void 0||yc.addEventListener(JI,ml)})}),()=>{var JI,ml;nl.scroll&&(window.removeEventListener("scroll",_l),gl==null||gl.removeEventListener("scroll",_l),$l==null||$l.removeEventListener("scroll",_l)),nl.resize?window.removeEventListener("resize",_l):bc==null||bc(),nl.clickOutsideAnchor&&window.removeEventListener("click",ql),nl.escape&&window.removeEventListener("keydown",ac),X&&!dI&&((JI=fI.current)===null||JI===void 0||JI.removeEventListener("mouseenter",pl),(ml=fI.current)===null||ml===void 0||ml.removeEventListener("mouseleave",rI)),Sl.forEach(({event:dc,listener:yc})=>{zI.forEach(yl=>{var Ll;(Ll=yl.current)===null||Ll===void 0||Ll.removeEventListener(dc,yc)})})}},[z,EI,Fl,YI,bI,B,C,k,QI,h,p]),E.useEffect(()=>{var AI,KI;let zI=(KI=(AI=P==null?void 0:P.anchorSelect)!==null&&AI!==void 0?AI:t)!==null&&KI!==void 0?KI:"";!zI&&l&&(zI=`[data-tooltip-id='${l}']`);const Ql=new MutationObserver(_l=>{const gl=[],$l=[];_l.forEach(bc=>{if(bc.type==="attributes"&&bc.attributeName==="data-tooltip-id"&&(bc.target.getAttribute("data-tooltip-id")===l?gl.push(bc.target):bc.oldValue===l&&$l.push(bc.target)),bc.type==="childList"){if(z){const ac=[...bc.removedNodes].filter(Sl=>Sl.nodeType===1);if(zI)try{$l.push(...ac.filter(Sl=>Sl.matches(zI))),$l.push(...ac.flatMap(Sl=>[...Sl.querySelectorAll(zI)]))}catch{}ac.some(Sl=>{var be;return!!(!((be=Sl==null?void 0:Sl.contains)===null||be===void 0)&&be.call(Sl,z))&&(al(!1),Hl(!1),g(null),cl.current&&clearTimeout(cl.current),OI.current&&clearTimeout(OI.current),!0)})}if(zI)try{const ac=[...bc.addedNodes].filter(Sl=>Sl.nodeType===1);gl.push(...ac.filter(Sl=>Sl.matches(zI))),gl.push(...ac.flatMap(Sl=>[...Sl.querySelectorAll(zI)]))}catch{}}}),(gl.length||$l.length)&&gI(bc=>[...bc.filter(ac=>!$l.includes(ac)),...gl])});return Ql.observe(document.body,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["data-tooltip-id"],attributeOldValue:!0}),()=>{Ql.disconnect()}},[l,t,P==null?void 0:P.anchorSelect,z]),E.useEffect(()=>{EI()},[EI]),E.useEffect(()=>{if(!($!=null&&$.current))return()=>null;const AI=new ResizeObserver(()=>{setTimeout(()=>EI())});return AI.observe($.current),()=>{AI.disconnect()}},[O,$==null?void 0:$.current]),E.useEffect(()=>{var AI;const KI=document.querySelector(`[id='${d}']`),zI=[...bI,KI];z&&zI.includes(z)||g((AI=bI[0])!==null&&AI!==void 0?AI:KI)},[d,bI,z]),E.useEffect(()=>(S&&Hl(!0),()=>{cl.current&&clearTimeout(cl.current),OI.current&&clearTimeout(OI.current)}),[]),E.useEffect(()=>{var AI;let KI=(AI=P==null?void 0:P.anchorSelect)!==null&&AI!==void 0?AI:t;if(!KI&&l&&(KI=`[data-tooltip-id='${l}']`),KI)try{const zI=Array.from(document.querySelectorAll(KI));gI(zI)}catch{gI([])}},[l,t,P==null?void 0:P.anchorSelect]),E.useEffect(()=>{cl.current&&(clearTimeout(cl.current),FI(h))},[h]);const dl=(q=P==null?void 0:P.content)!==null&&q!==void 0?q:O,Al=bl&&Object.keys(_I.tooltipStyles).length>0;return E.useImperativeHandle(I,()=>({open:AI=>{if(AI!=null&&AI.anchorSelect)try{document.querySelector(AI.anchorSelect)}catch{return void console.warn(`[react-tooltip] "${AI.anchorSelect}" is not a valid CSS selector`)}eI(AI??null),AI!=null&&AI.delay?FI(AI.delay):Hl(!0)},close:AI=>{AI!=null&&AI.delay?CI(AI.delay):Hl(!1)},activeAnchor:z,place:_I.place,isOpen:!!(Fl&&!o&&dl&&Al)})),Fl&&!o&&dl?Gl.createElement(s,{id:l,role:VI,className:dw("react-tooltip",wr.tooltip,FY.tooltip,FY[e],c,`react-tooltip__place-${_I.place}`,wr[Al?"show":"closing"],Al?"react-tooltip__show":"react-tooltip__closing",W==="fixed"&&wr.fixed,X&&wr.clickable),onTransitionEnd:AI=>{PI.current&&clearTimeout(PI.current),bl||AI.propertyName!=="opacity"||(al(!1),eI(null),D==null||D())},style:{...J,..._I.tooltipStyles,opacity:f!==void 0&&Al?f:void 0},ref:fI},dl,Gl.createElement(s,{className:dw("react-tooltip-arrow",wr.arrow,FY.arrow,G,F&&wr.noArrow),style:{..._I.tooltipArrowStyles,background:nI?`linear-gradient(to right bottom, transparent 50%, ${nI} 50%)`:void 0},ref:RI})):null},xmI=({content:I})=>Gl.createElement("span",{dangerouslySetInnerHTML:{__html:I}}),zmI=Gl.forwardRef(({id:I,anchorId:l,anchorSelect:c,content:G,html:e,render:d,className:t,classNameArrow:n,variant:b="dark",place:a="top",offset:Z=10,wrapper:W="div",children:m=null,events:s=["hover"],openOnClick:h=!1,positionStrategy:p="absolute",middlewares:V,delayShow:o=0,delayHide:F=0,float:X=!1,hidden:H=!1,noArrow:Y=!1,clickable:R=!1,closeOnEsc:B=!1,closeOnScroll:C=!1,closeOnResize:k=!1,openEvents:N,closeEvents:J,globalCloseEvents:A,imperativeModeOnly:M=!1,style:D,position:O,isOpen:$,defaultIsOpen:j=!1,disableStyleInjection:S=!1,border:tI,opacity:z,arrowColor:g,setIsOpen:GI,afterShow:f,afterHide:nI,role:VI="tooltip"},q)=>{const[fI,RI]=E.useState(G),[cl,OI]=E.useState(e),[PI,_I]=E.useState(a),[tl,bl]=E.useState(b),[Il,Fl]=E.useState(Z),[al,P]=E.useState(o),[eI,uI]=E.useState(F),[wI,YI]=E.useState(X),[HI,NI]=E.useState(H),[bI,gI]=E.useState(W),[oI,QI]=E.useState(s),[dI,xI]=E.useState(p),[Wl,nl]=E.useState(null),[Hl,_]=E.useState(null),FI=E.useRef(S),{anchorRefs:CI,activeAnchor:ll}=mT(I),Zl=ZI=>ZI==null?void 0:ZI.getAttributeNames().reduce((pI,sI)=>{var EI;return sI.startsWith("data-tooltip-")&&(pI[sI.replace(/^data-tooltip-/,"")]=(EI=ZI==null?void 0:ZI.getAttribute(sI))!==null&&EI!==void 0?EI:null),pI},{}),vl=ZI=>{const pI={place:sI=>{var EI;_I((EI=sI)!==null&&EI!==void 0?EI:a)},content:sI=>{RI(sI??G)},html:sI=>{OI(sI??e)},variant:sI=>{var EI;bl((EI=sI)!==null&&EI!==void 0?EI:b)},offset:sI=>{Fl(sI===null?Z:Number(sI))},wrapper:sI=>{var EI;gI((EI=sI)!==null&&EI!==void 0?EI:W)},events:sI=>{const EI=sI==null?void 0:sI.split(" ");QI(EI??s)},"position-strategy":sI=>{var EI;xI((EI=sI)!==null&&EI!==void 0?EI:p)},"delay-show":sI=>{P(sI===null?o:Number(sI))},"delay-hide":sI=>{uI(sI===null?F:Number(sI))},float:sI=>{YI(sI===null?X:sI==="true")},hidden:sI=>{NI(sI===null?H:sI==="true")},"class-name":sI=>{nl(sI)}};Object.values(pI).forEach(sI=>sI(null)),Object.entries(ZI).forEach(([sI,EI])=>{var dl;(dl=pI[sI])===null||dl===void 0||dl.call(pI,EI)})};E.useEffect(()=>{RI(G)},[G]),E.useEffect(()=>{OI(e)},[e]),E.useEffect(()=>{_I(a)},[a]),E.useEffect(()=>{bl(b)},[b]),E.useEffect(()=>{Fl(Z)},[Z]),E.useEffect(()=>{P(o)},[o]),E.useEffect(()=>{uI(F)},[F]),E.useEffect(()=>{YI(X)},[X]),E.useEffect(()=>{NI(H)},[H]),E.useEffect(()=>{xI(p)},[p]),E.useEffect(()=>{FI.current!==S&&console.warn("[react-tooltip] Do not change `disableStyleInjection` dynamically.")},[S]),E.useEffect(()=>{typeof window<"u"&&window.dispatchEvent(new CustomEvent("react-tooltip-inject-styles",{detail:{disableCore:S==="core",disableBase:S}}))},[]),E.useEffect(()=>{var ZI;const pI=new Set(CI);let sI=c;if(!sI&&I&&(sI=`[data-tooltip-id='${I}']`),sI)try{document.querySelectorAll(sI).forEach(KI=>{pI.add({current:KI})})}catch{console.warn(`[react-tooltip] "${sI}" is not a valid CSS selector`)}const EI=document.querySelector(`[id='${l}']`);if(EI&&pI.add({current:EI}),!pI.size)return()=>null;const dl=(ZI=Hl??EI)!==null&&ZI!==void 0?ZI:ll.current,Al=new MutationObserver(KI=>{KI.forEach(zI=>{var Ql;if(!dl||zI.type!=="attributes"||!(!((Ql=zI.attributeName)===null||Ql===void 0)&&Ql.startsWith("data-tooltip-")))return;const _l=Zl(dl);vl(_l)})}),AI={attributes:!0,childList:!1,subtree:!1};if(dl){const KI=Zl(dl);vl(KI),Al.observe(dl,AI)}return()=>{Al.disconnect()}},[CI,ll,Hl,l,c]),E.useEffect(()=>{D!=null&&D.border&&console.warn("[react-tooltip] Do not set `style.border`. Use `border` prop instead."),tI&&!l4("border",`${tI}`)&&console.warn(`[react-tooltip] "${tI}" is not a valid \`border\`.`),D!=null&&D.opacity&&console.warn("[react-tooltip] Do not set `style.opacity`. Use `opacity` prop instead."),z&&!l4("opacity",`${z}`)&&console.warn(`[react-tooltip] "${z}" is not a valid \`opacity\`.`)},[]);let kl=m;const ql=E.useRef(null);if(d){const ZI=d({content:(Hl==null?void 0:Hl.getAttribute("data-tooltip-content"))||fI||null,activeAnchor:Hl});kl=ZI?Gl.createElement("div",{ref:ql,className:"react-tooltip-content-wrapper"},ZI):null}else fI&&(kl=fI);cl&&(kl=Gl.createElement(xmI,{content:cl}));const dG={forwardRef:q,id:I,anchorId:l,anchorSelect:c,className:dw(t,Wl),classNameArrow:n,content:kl,contentWrapperRef:ql,place:PI,variant:tl,offset:Il,wrapper:bI,events:oI,openOnClick:h,positionStrategy:dI,middlewares:V,delayShow:al,delayHide:eI,float:wI,hidden:HI,noArrow:Y,clickable:R,closeOnEsc:B,closeOnScroll:C,closeOnResize:k,openEvents:N,closeEvents:J,globalCloseEvents:A,imperativeModeOnly:M,style:D,position:O,isOpen:$,defaultIsOpen:j,border:tI,opacity:z,arrowColor:g,setIsOpen:GI,afterShow:f,afterHide:nI,activeAnchor:Hl,setActiveAnchor:ZI=>_(ZI),role:VI};return Gl.createElement(kmI,{...dG})});typeof window<"u"&&window.addEventListener("react-tooltip-inject-styles",I=>{I.detail.disableCore||$9({css:":root{--rt-color-white:#fff;--rt-color-dark:#222;--rt-color-success:#8dc572;--rt-color-error:#be6464;--rt-color-warning:#f0ad4e;--rt-color-info:#337ab7;--rt-opacity:0.9;--rt-transition-show-delay:0.15s;--rt-transition-closing-delay:0.15s}.core-styles-module_tooltip__3vRRp{position:absolute;top:0;left:0;pointer-events:none;opacity:0;will-change:opacity}.core-styles-module_fixed__pcSol{position:fixed}.core-styles-module_arrow__cvMwQ{position:absolute;background:inherit}.core-styles-module_noArrow__xock6{display:none}.core-styles-module_clickable__ZuTTB{pointer-events:auto}.core-styles-module_show__Nt9eE{opacity:var(--rt-opacity);transition:opacity var(--rt-transition-show-delay)ease-out}.core-styles-module_closing__sGnxF{opacity:0;transition:opacity var(--rt-transition-closing-delay)ease-in}",type:"core"}),I.detail.disableBase||$9({css:` -.styles-module_tooltip__mnnfp{padding:8px 16px;border-radius:3px;font-size:90%;width:max-content}.styles-module_arrow__K0L3T{width:8px;height:8px}[class*='react-tooltip__place-top']>.styles-module_arrow__K0L3T{transform:rotate(45deg)}[class*='react-tooltip__place-right']>.styles-module_arrow__K0L3T{transform:rotate(135deg)}[class*='react-tooltip__place-bottom']>.styles-module_arrow__K0L3T{transform:rotate(225deg)}[class*='react-tooltip__place-left']>.styles-module_arrow__K0L3T{transform:rotate(315deg)}.styles-module_dark__xNqje{background:var(--rt-color-dark);color:var(--rt-color-white)}.styles-module_light__Z6W-X{background-color:var(--rt-color-white);color:var(--rt-color-dark)}.styles-module_success__A2AKt{background-color:var(--rt-color-success);color:var(--rt-color-white)}.styles-module_warning__SCK0X{background-color:var(--rt-color-warning);color:var(--rt-color-white)}.styles-module_error__JvumD{background-color:var(--rt-color-error);color:var(--rt-color-white)}.styles-module_info__BWdHW{background-color:var(--rt-color-info);color:var(--rt-color-white)}`,type:"base"})});function PF(){const I=window.navigator.platform.toUpperCase();return I.indexOf("MAC")>=0?"mac":I.indexOf("LINUX")>=0?"linux":I.indexOf("WIN")>=0?"windows":"unknown"}function gh(I){switch(PF()){case"mac":return I.metaKey;case"linux":case"windows":return I.ctrlKey;default:return I.metaKey}}function zV(){switch(PF()){case"mac":return"⌘";case"linux":case"windows":return"^";default:return"^"}}function Fn(){const I=localStorage.getItem("fontSize");return I?parseInt(I):14}let No;const UmI=new Uint8Array(16);function CmI(){if(!No&&(No=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!No))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return No(UmI)}const re=[];for(let I=0;I<256;++I)re.push((I+256).toString(16).slice(1));function MmI(I,l=0){return re[I[l+0]]+re[I[l+1]]+re[I[l+2]]+re[I[l+3]]+"-"+re[I[l+4]]+re[I[l+5]]+"-"+re[I[l+6]]+re[I[l+7]]+"-"+re[I[l+8]]+re[I[l+9]]+"-"+re[I[l+10]]+re[I[l+11]]+re[I[l+12]]+re[I[l+13]]+re[I[l+14]]+re[I[l+15]]}const fmI=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),d4={randomUUID:fmI};function cb(I,l,c){if(d4.randomUUID&&!l&&!I)return d4.randomUUID();I=I||{};const G=I.random||(I.rng||CmI)();if(G[6]=G[6]&15|64,G[8]=G[8]&63|128,l){c=c||0;for(let e=0;e<16;++e)l[c+e]=G[e];return l}return MmI(G)}var Xg={};Object.defineProperty(Xg,"__esModule",{value:!0});Xg.testFunc=void 0;var KmI=function(){console.log("test")};Xg.testFunc=KmI;function sT(I,l,c){var e;if(typeof vscode>"u")if(localStorage.getItem("ide")==="jetbrains"){if(window.postIntellijMessage===void 0)throw console.log("Unable to send message: postIntellijMessage is undefined. ",I,l),new Error("postIntellijMessage is undefined");c=c??cb(),(e=window.postIntellijMessage)==null||e.call(window,I,l,c);return}else{console.log("Unable to send message: vscode is undefined. ",I,l);return}const G={messageId:c??cb(),messageType:I,data:l};vscode.postMessage(G)}function Yc(I,l,c,G=0){try{sT(I,l,c)}catch(e){G<5?(console.log(`Attempt ${G} failed. Retrying...`),setTimeout(()=>Yc(I,l,c,G+1),Math.pow(2,G)*1e3)):console.error("Max attempts reached. Message could not be sent.",e)}}function LmI(I,l,c){sT(I,l,c)}function uT(I){let l=I??null;try{l=JSON.parse(l)}catch{}return l}async function hd(I,l){const c=cb();return new Promise(G=>{const e=d=>{d.data.messageId===c&&(window.removeEventListener("message",e),G(uT(d.data.data)))};window.addEventListener("message",e),Yc(I,l,c)})}async function*hT(I,l,c){const G=cb();Yc(I,l,G);let e="",d=0,t=!1,n;const b=a=>{if(a.data.messageId===G){const Z=uT(a.data.data);Z.done?(window.removeEventListener("message",b),t=!0,n=Z):e+=Z.content}};for(window.addEventListener("message",b),c==null||c.addEventListener("abort",()=>{Yc("abort",void 0,G)});!t;){if(e.length>d){const a=e.slice(d);d=e.length,yield a}await new Promise(a=>setTimeout(a,50))}if(e.length>d){const a=e.slice(d);d=e.length,yield a}return n}async function*SmI(I,l,c,G={}){var t,n;const e=hT("llm/streamChat",{messages:c,title:I,completionOptions:G},l);let d=await e.next();for(;!d.done;)yield{role:"user",content:d.value},d=await e.next();return{prompt:(t=d.value.content)==null?void 0:t.prompt,completion:(n=d.value.content)==null?void 0:n.completion}}function $W(){return localStorage.getItem("ide")==="jetbrains"}const Hg="--vscode-input-background",_F="--vscode-sideBar-background",Qg="--vscode-editor-foreground",pT="--vscode-button-background",TmI="--vscode-button-foreground",oT="--vscode-editor-background",VT="--vscode-list-activeSelectionBackground",iT="--vscode-focus-border",FT="--vscode-quickInputList-focusForeground",NT="--vscode-quickInput-background",RT="--vscode-input-border",YT="--vscode-focusBorder",XT="--vscode-badge-background",HT="--vscode-badge-foreground",jmI="--vscode-sideBar-border",QT=[Hg,_F,Qg,pT,TmI,oT,VT,iT,FT,NT,RT,YT,XT,jmI,HT],Pl="5px",ul="#646464",Su="#1bbe84",Mc=`var(${Hg}, rgb(45 45 45))`,DmI=`var(${NT}, ${Hg}, rgb(45 45 45))`,fc=`var(${_F}, rgb(30 30 30))`,ec=`var(${Qg}, #fff)`,wT=`var(${pT}, #1bbe84)`,mZ=`var(${oT}, ${_F}, rgb(30 30 30))`,UV=`var(${VT}, #1bbe84)`,wg=`var(${iT}, #1bbe84)`,qF=`var(${FT}, ${Qg})`,OmI=`var(${RT}, ${ul})`,PmI=`var(${YT}, ${ul})`,Ah=`var(${XT}, #1bbe84)`,_mI=`var(${HT}, #fff)`;if(typeof document<"u")for(const I of QT){if($W()){const c=localStorage.getItem(I);c&&document.body.style.setProperty(I,c)}const l=getComputedStyle(document.documentElement).getPropertyValue(I);I.startsWith("#")&&l.length>7&&document.body.style.setProperty(I,l.slice(0,7))}function qmI(I){I.startsWith("#")&&(I=I.slice(1)),I.length>6&&(I=I.slice(0,6));const l=parseInt(I.substring(0,2),16),c=parseInt(I.substring(2,4),16),G=parseInt(I.substring(4,6),16);return{r:l,g:c,b:G}}function $mI(I){const l=getComputedStyle(document.documentElement).getPropertyValue(I);return l.startsWith("#")?l.slice(0,7):"#"+l.slice(4,-1).split(",").map(e=>parseInt(e,10)).map(e=>e.toString(16)).map(e=>e.length===1?"0"+e:e).join("")}const xt=LI.button` +*/const t1e="react-tooltip-core-styles",n1e="react-tooltip-base-styles",qx={core:!1,base:!1};function eG({css:e,id:t=n1e,type:n="base",ref:r}){var i,a;if(!e||typeof document>"u"||qx[n]||n==="core"&&typeof process<"u"&&(!((i=process==null?void 0:process.env)===null||i===void 0)&&i.REACT_TOOLTIP_DISABLE_CORE_STYLES)||n!=="base"&&typeof process<"u"&&(!((a=process==null?void 0:process.env)===null||a===void 0)&&a.REACT_TOOLTIP_DISABLE_BASE_STYLES))return;n==="core"&&(t=t1e),r||(r={});const{insertAt:o}=r;if(document.getElementById(t))return void console.warn(`[react-tooltip] Element with id '${t}' already exists. Call \`removeStyle()\` first`);const l=document.head||document.getElementsByTagName("head")[0],s=document.createElement("style");s.id=t,s.type="text/css",o==="top"&&l.firstChild?l.insertBefore(s,l.firstChild):l.appendChild(s),s.styleSheet?s.styleSheet.cssText=e:s.appendChild(document.createTextNode(e)),qx[n]=!0}const tG=async({elementReference:e=null,tooltipReference:t=null,tooltipArrowReference:n=null,place:r="top",offset:i=10,strategy:a="absolute",middlewares:o=[jpe(Number(i)),$pe({fallbackAxisSideDirection:"start"}),_pe({padding:5})],border:l})=>{if(!e)return{tooltipStyles:{},tooltipArrowStyles:{},place:r};if(t===null)return{tooltipStyles:{},tooltipArrowStyles:{},place:r};const s=o;return n?(s.push(qpe({element:n,padding:5})),$x(e,t,{placement:r,strategy:a,middleware:s}).then(({x:u,y:c,placement:d,middlewareData:g})=>{var h,m;const A={left:`${u}px`,top:`${c}px`,border:l},{x:B,y:C}=(h=g.arrow)!==null&&h!==void 0?h:{x:0,y:0},b=(m={top:"bottom",right:"left",bottom:"top",left:"right"}[d.split("-")[0]])!==null&&m!==void 0?m:"bottom",Q=l&&{borderBottom:l,borderRight:l};let F=0;if(l){const K=`${l}`.match(/(\d+)px/);F=K!=null&&K[1]?Number(K[1]):1}return{tooltipStyles:A,tooltipArrowStyles:{left:B!=null?`${B}px`:"",top:C!=null?`${C}px`:"",right:"",bottom:"",...Q,[b]:`-${4+F}px`},place:d}})):$x(e,t,{placement:"bottom",strategy:a,middleware:s}).then(({x:u,y:c,placement:d})=>({tooltipStyles:{left:`${u}px`,top:`${c}px`},tooltipArrowStyles:{},place:d}))},nG=(e,t)=>!("CSS"in window&&"supports"in window.CSS)||window.CSS.supports(e,t),rG=(e,t,n)=>{let r=null;const i=function(...a){const o=()=>{r=null,n||e.apply(this,a)};n&&!r&&(e.apply(this,a),r=setTimeout(o,t)),n||(r&&clearTimeout(r),r=setTimeout(o,t))};return i.cancel=()=>{r&&(clearTimeout(r),r=null)},i},iG=e=>e!==null&&!Array.isArray(e)&&typeof e=="object",fy=(e,t)=>{if(e===t)return!0;if(Array.isArray(e)&&Array.isArray(t))return e.length===t.length&&e.every((i,a)=>fy(i,t[a]));if(Array.isArray(e)!==Array.isArray(t))return!1;if(!iG(e)||!iG(t))return e===t;const n=Object.keys(e),r=Object.keys(t);return n.length===r.length&&n.every(i=>fy(e[i],t[i]))},r1e=e=>{if(!(e instanceof HTMLElement||e instanceof SVGElement))return!1;const t=getComputedStyle(e);return["overflow","overflow-x","overflow-y"].some(n=>{const r=t.getPropertyValue(n);return r==="auto"||r==="scroll"})},aG=e=>{if(!e)return null;let t=e.parentElement;for(;t;){if(r1e(t))return t;t=t.parentElement}return document.scrollingElement||document.documentElement},i1e=typeof window<"u"?E.useLayoutEffect:E.useEffect,a1e="DEFAULT_TOOLTIP_ID",o1e={anchorRefs:new Set,activeAnchor:{current:null},attach:()=>{},detach:()=>{},setActiveAnchor:()=>{}},l1e=E.createContext({getTooltipData:()=>o1e});function pY(e=a1e){return E.useContext(l1e).getTooltipData(e)}var Md={tooltip:"core-styles-module_tooltip__3vRRp",fixed:"core-styles-module_fixed__pcSol",arrow:"core-styles-module_arrow__cvMwQ",noArrow:"core-styles-module_noArrow__xock6",clickable:"core-styles-module_clickable__ZuTTB",show:"core-styles-module_show__Nt9eE",closing:"core-styles-module_closing__sGnxF"},yv={tooltip:"styles-module_tooltip__mnnfp",arrow:"styles-module_arrow__K0L3T",dark:"styles-module_dark__xNqje",light:"styles-module_light__Z6W-X",success:"styles-module_success__A2AKt",warning:"styles-module_warning__SCK0X",error:"styles-module_error__JvumD",info:"styles-module_info__BWdHW"};const s1e=({forwardRef:e,id:t,className:n,classNameArrow:r,variant:i="dark",anchorId:a,anchorSelect:o,place:l="top",offset:s=10,events:u=["hover"],openOnClick:c=!1,positionStrategy:d="absolute",middlewares:g,wrapper:h,delayShow:m=0,delayHide:A=0,float:B=!1,hidden:C=!1,noArrow:b=!1,clickable:Q=!1,closeOnEsc:F=!1,closeOnScroll:K=!1,closeOnResize:y=!1,openEvents:G,closeEvents:X,globalCloseEvents:H,imperativeModeOnly:v,style:k,position:D,afterShow:V,afterHide:z,content:j,contentWrapperRef:te,isOpen:J,defaultIsOpen:I=!1,setIsOpen:se,activeAnchor:Z,setActiveAnchor:S,border:q,opacity:T,arrowColor:ue,role:fe="tooltip"})=>{var _;const Ze=E.useRef(null),ve=E.useRef(null),it=E.useRef(null),et=E.useRef(null),ot=E.useRef(null),[Oe,tt]=E.useState({tooltipStyles:{},tooltipArrowStyles:{},place:l}),[st,pt]=E.useState(!1),[ht,lt]=E.useState(!1),[P,le]=E.useState(null),me=E.useRef(!1),Re=E.useRef(null),{anchorRefs:Qe,setActiveAnchor:We}=pY(t),Ee=E.useRef(!1),[Ie,Ce]=E.useState([]),de=E.useRef(!1),we=c||u.includes("click"),ae=we||(G==null?void 0:G.click)||(G==null?void 0:G.dblclick)||(G==null?void 0:G.mousedown),xe=G?{...G}:{mouseenter:!0,focus:!0,click:!1,dblclick:!1,mousedown:!1};!G&&we&&Object.assign(xe,{mouseenter:!1,focus:!1,click:!0});const nt=X?{...X}:{mouseleave:!0,blur:!0,click:!1,dblclick:!1,mouseup:!1};!X&&we&&Object.assign(nt,{mouseleave:!1,blur:!1});const ft=H?{...H}:{escape:F||!1,scroll:K||!1,resize:y||!1,clickOutsideAnchor:ae||!1};v&&(Object.assign(xe,{mouseenter:!1,focus:!1,click:!1,dblclick:!1,mousedown:!1}),Object.assign(nt,{mouseleave:!1,blur:!1,click:!1,dblclick:!1,mouseup:!1}),Object.assign(ft,{escape:!1,scroll:!1,resize:!1,clickOutsideAnchor:!1})),i1e(()=>(de.current=!0,()=>{de.current=!1}),[]);const Bt=be=>{de.current&&(be&<(!0),setTimeout(()=>{de.current&&(se==null||se(be),J===void 0&&pt(be))},10))};E.useEffect(()=>{if(J===void 0)return()=>null;J&<(!0);const be=setTimeout(()=>{pt(J)},10);return()=>{clearTimeout(be)}},[J]),E.useEffect(()=>{if(st!==me.current)if(ot.current&&clearTimeout(ot.current),me.current=st,st)V==null||V();else{const be=(Je=>{const Me=Je.match(/^([\d.]+)(ms|s)$/);if(!Me)return 0;const[,ze,Kt]=Me;return Number(ze)*(Kt==="ms"?1:1e3)})(getComputedStyle(document.body).getPropertyValue("--rt-transition-show-delay"));ot.current=setTimeout(()=>{lt(!1),le(null),z==null||z()},be+25)}},[st]);const $=be=>{tt(Je=>fy(Je,be)?Je:be)},Ke=(be=m)=>{it.current&&clearTimeout(it.current),ht?Bt(!0):it.current=setTimeout(()=>{Bt(!0)},be)},Ne=(be=A)=>{et.current&&clearTimeout(et.current),et.current=setTimeout(()=>{Ee.current||Bt(!1)},be)},ut=be=>{var Je;if(!be)return;const Me=(Je=be.currentTarget)!==null&&Je!==void 0?Je:be.target;if(!(Me!=null&&Me.isConnected))return S(null),void We({current:null});m?Ke():Bt(!0),S(Me),We({current:Me}),et.current&&clearTimeout(et.current)},Pe=()=>{Q?Ne(A||100):A?Ne():Bt(!1),it.current&&clearTimeout(it.current)},Gt=({x:be,y:Je})=>{var Me;const ze={getBoundingClientRect:()=>({x:be,y:Je,width:0,height:0,top:Je,left:be,right:be,bottom:Je})};tG({place:(Me=P==null?void 0:P.place)!==null&&Me!==void 0?Me:l,offset:s,elementReference:ze,tooltipReference:Ze.current,tooltipArrowReference:ve.current,strategy:d,middlewares:g,border:q}).then(Kt=>{$(Kt)})},An=be=>{if(!be)return;const Je=be,Me={x:Je.clientX,y:Je.clientY};Gt(Me),Re.current=Me},Xt=be=>{var Je;if(!st)return;const Me=be.target;Me.isConnected&&(!((Je=Ze.current)===null||Je===void 0)&&Je.contains(Me)||[document.querySelector(`[id='${a}']`),...Ie].some(ze=>ze==null?void 0:ze.contains(Me))||(Bt(!1),it.current&&clearTimeout(it.current)))},Hn=rG(ut,50,!0),Cn=rG(Pe,50,!0),rr=be=>{Cn.cancel(),Hn(be)},ie=()=>{Hn.cancel(),Cn()},ge=E.useCallback(()=>{var be,Je;const Me=(be=P==null?void 0:P.position)!==null&&be!==void 0?be:D;Me?Gt(Me):B?Re.current&&Gt(Re.current):Z!=null&&Z.isConnected&&tG({place:(Je=P==null?void 0:P.place)!==null&&Je!==void 0?Je:l,offset:s,elementReference:Z,tooltipReference:Ze.current,tooltipArrowReference:ve.current,strategy:d,middlewares:g,border:q}).then(ze=>{de.current&&$(ze)})},[st,Z,j,k,l,P==null?void 0:P.place,s,d,D,P==null?void 0:P.position,B]);E.useEffect(()=>{var be,Je;const Me=new Set(Qe);Ie.forEach(oe=>{Me.add({current:oe})});const ze=document.querySelector(`[id='${a}']`);ze&&Me.add({current:ze});const Kt=()=>{Bt(!1)},St=aG(Z),Qn=aG(Ze.current);ft.scroll&&(window.addEventListener("scroll",Kt),St==null||St.addEventListener("scroll",Kt),Qn==null||Qn.addEventListener("scroll",Kt));let un=null;ft.resize?window.addEventListener("resize",Kt):Z&&Ze.current&&(un=Ppe(Z,Ze.current,ge,{ancestorResize:!0,elementResize:!0,layoutShift:!0}));const yt=oe=>{oe.key==="Escape"&&Bt(!1)};ft.escape&&window.addEventListener("keydown",yt),ft.clickOutsideAnchor&&window.addEventListener("click",Xt);const Rt=[],Xn=oe=>{st&&(oe==null?void 0:oe.target)===Z||ut(oe)},co=oe=>{st&&(oe==null?void 0:oe.target)===Z&&Pe()},Wi=["mouseenter","mouseleave","focus","blur"],Xi=["click","dblclick","mousedown","mouseup"];Object.entries(xe).forEach(([oe,He])=>{He&&(Wi.includes(oe)?Rt.push({event:oe,listener:rr}):Xi.includes(oe)&&Rt.push({event:oe,listener:Xn}))}),Object.entries(nt).forEach(([oe,He])=>{He&&(Wi.includes(oe)?Rt.push({event:oe,listener:ie}):Xi.includes(oe)&&Rt.push({event:oe,listener:co}))}),B&&Rt.push({event:"pointermove",listener:An});const xa=()=>{Ee.current=!0},vt=()=>{Ee.current=!1,Pe()};return Q&&!ae&&((be=Ze.current)===null||be===void 0||be.addEventListener("mouseenter",xa),(Je=Ze.current)===null||Je===void 0||Je.addEventListener("mouseleave",vt)),Rt.forEach(({event:oe,listener:He})=>{Me.forEach(At=>{var an;(an=At.current)===null||an===void 0||an.addEventListener(oe,He)})}),()=>{var oe,He;ft.scroll&&(window.removeEventListener("scroll",Kt),St==null||St.removeEventListener("scroll",Kt),Qn==null||Qn.removeEventListener("scroll",Kt)),ft.resize?window.removeEventListener("resize",Kt):un==null||un(),ft.clickOutsideAnchor&&window.removeEventListener("click",Xt),ft.escape&&window.removeEventListener("keydown",yt),Q&&!ae&&((oe=Ze.current)===null||oe===void 0||oe.removeEventListener("mouseenter",xa),(He=Ze.current)===null||He===void 0||He.removeEventListener("mouseleave",vt)),Rt.forEach(({event:At,listener:an})=>{Me.forEach(Nt=>{var on;(on=Nt.current)===null||on===void 0||on.removeEventListener(At,an)})})}},[Z,ge,ht,Qe,Ie,G,X,H,we,m,A]),E.useEffect(()=>{var be,Je;let Me=(Je=(be=P==null?void 0:P.anchorSelect)!==null&&be!==void 0?be:o)!==null&&Je!==void 0?Je:"";!Me&&t&&(Me=`[data-tooltip-id='${t.replace(/'/g,"\\'")}']`);const ze=new MutationObserver(Kt=>{const St=[],Qn=[];Kt.forEach(un=>{if(un.type==="attributes"&&un.attributeName==="data-tooltip-id"&&(un.target.getAttribute("data-tooltip-id")===t?St.push(un.target):un.oldValue===t&&Qn.push(un.target)),un.type==="childList"){if(Z){const yt=[...un.removedNodes].filter(Rt=>Rt.nodeType===1);if(Me)try{Qn.push(...yt.filter(Rt=>Rt.matches(Me))),Qn.push(...yt.flatMap(Rt=>[...Rt.querySelectorAll(Me)]))}catch{}yt.some(Rt=>{var Xn;return!!(!((Xn=Rt==null?void 0:Rt.contains)===null||Xn===void 0)&&Xn.call(Rt,Z))&&(lt(!1),Bt(!1),S(null),it.current&&clearTimeout(it.current),et.current&&clearTimeout(et.current),!0)})}if(Me)try{const yt=[...un.addedNodes].filter(Rt=>Rt.nodeType===1);St.push(...yt.filter(Rt=>Rt.matches(Me))),St.push(...yt.flatMap(Rt=>[...Rt.querySelectorAll(Me)]))}catch{}}}),(St.length||Qn.length)&&Ce(un=>[...un.filter(yt=>!Qn.includes(yt)),...St])});return ze.observe(document.body,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["data-tooltip-id"],attributeOldValue:!0}),()=>{ze.disconnect()}},[t,o,P==null?void 0:P.anchorSelect,Z]),E.useEffect(()=>{ge()},[ge]),E.useEffect(()=>{if(!(te!=null&&te.current))return()=>null;const be=new ResizeObserver(()=>{setTimeout(()=>ge())});return be.observe(te.current),()=>{be.disconnect()}},[j,te==null?void 0:te.current]),E.useEffect(()=>{var be;const Je=document.querySelector(`[id='${a}']`),Me=[...Ie,Je];Z&&Me.includes(Z)||S((be=Ie[0])!==null&&be!==void 0?be:Je)},[a,Ie,Z]),E.useEffect(()=>(I&&Bt(!0),()=>{it.current&&clearTimeout(it.current),et.current&&clearTimeout(et.current)}),[]),E.useEffect(()=>{var be;let Je=(be=P==null?void 0:P.anchorSelect)!==null&&be!==void 0?be:o;if(!Je&&t&&(Je=`[data-tooltip-id='${t.replace(/'/g,"\\'")}']`),Je)try{const Me=Array.from(document.querySelectorAll(Je));Ce(Me)}catch{Ce([])}},[t,o,P==null?void 0:P.anchorSelect]),E.useEffect(()=>{it.current&&(clearTimeout(it.current),Ke(m))},[m]);const Fe=(_=P==null?void 0:P.content)!==null&&_!==void 0?_:j,Le=st&&Object.keys(Oe.tooltipStyles).length>0;return E.useImperativeHandle(e,()=>({open:be=>{if(be!=null&&be.anchorSelect)try{document.querySelector(be.anchorSelect)}catch{return void console.warn(`[react-tooltip] "${be.anchorSelect}" is not a valid CSS selector`)}le(be??null),be!=null&&be.delay?Ke(be.delay):Bt(!0)},close:be=>{be!=null&&be.delay?Ne(be.delay):Bt(!1)},activeAnchor:Z,place:Oe.place,isOpen:!!(ht&&!C&&Fe&&Le)})),ht&&!C&&Fe?ct.createElement(h,{id:t,role:fe,className:hy("react-tooltip",Md.tooltip,yv.tooltip,yv[i],n,`react-tooltip__place-${Oe.place}`,Md[Le?"show":"closing"],Le?"react-tooltip__show":"react-tooltip__closing",d==="fixed"&&Md.fixed,Q&&Md.clickable),onTransitionEnd:be=>{ot.current&&clearTimeout(ot.current),st||be.propertyName!=="opacity"||(lt(!1),le(null),z==null||z())},style:{...k,...Oe.tooltipStyles,opacity:T!==void 0&&Le?T:void 0},ref:Ze},Fe,ct.createElement(h,{className:hy("react-tooltip-arrow",Md.arrow,yv.arrow,r,b&&Md.noArrow),style:{...Oe.tooltipArrowStyles,background:ue?`linear-gradient(to right bottom, transparent 50%, ${ue} 50%)`:void 0},ref:ve})):null},u1e=({content:e})=>ct.createElement("span",{dangerouslySetInnerHTML:{__html:e}}),c1e=ct.forwardRef(({id:e,anchorId:t,anchorSelect:n,content:r,html:i,render:a,className:o,classNameArrow:l,variant:s="dark",place:u="top",offset:c=10,wrapper:d="div",children:g=null,events:h=["hover"],openOnClick:m=!1,positionStrategy:A="absolute",middlewares:B,delayShow:C=0,delayHide:b=0,float:Q=!1,hidden:F=!1,noArrow:K=!1,clickable:y=!1,closeOnEsc:G=!1,closeOnScroll:X=!1,closeOnResize:H=!1,openEvents:v,closeEvents:k,globalCloseEvents:D,imperativeModeOnly:V=!1,style:z,position:j,isOpen:te,defaultIsOpen:J=!1,disableStyleInjection:I=!1,border:se,opacity:Z,arrowColor:S,setIsOpen:q,afterShow:T,afterHide:ue,role:fe="tooltip"},_)=>{const[Ze,ve]=E.useState(r),[it,et]=E.useState(i),[ot,Oe]=E.useState(u),[tt,st]=E.useState(s),[pt,ht]=E.useState(c),[lt,P]=E.useState(C),[le,me]=E.useState(b),[Re,Qe]=E.useState(Q),[We,Ee]=E.useState(F),[Ie,Ce]=E.useState(d),[de,we]=E.useState(h),[ae,xe]=E.useState(A),[nt,ft]=E.useState(null),[Bt,$]=E.useState(null),Ke=E.useRef(I),{anchorRefs:Ne,activeAnchor:ut}=pY(e),Pe=Cn=>Cn==null?void 0:Cn.getAttributeNames().reduce((rr,ie)=>{var ge;return ie.startsWith("data-tooltip-")&&(rr[ie.replace(/^data-tooltip-/,"")]=(ge=Cn==null?void 0:Cn.getAttribute(ie))!==null&&ge!==void 0?ge:null),rr},{}),Gt=Cn=>{const rr={place:ie=>{var ge;Oe((ge=ie)!==null&&ge!==void 0?ge:u)},content:ie=>{ve(ie??r)},html:ie=>{et(ie??i)},variant:ie=>{var ge;st((ge=ie)!==null&&ge!==void 0?ge:s)},offset:ie=>{ht(ie===null?c:Number(ie))},wrapper:ie=>{var ge;Ce((ge=ie)!==null&&ge!==void 0?ge:d)},events:ie=>{const ge=ie==null?void 0:ie.split(" ");we(ge??h)},"position-strategy":ie=>{var ge;xe((ge=ie)!==null&&ge!==void 0?ge:A)},"delay-show":ie=>{P(ie===null?C:Number(ie))},"delay-hide":ie=>{me(ie===null?b:Number(ie))},float:ie=>{Qe(ie===null?Q:ie==="true")},hidden:ie=>{Ee(ie===null?F:ie==="true")},"class-name":ie=>{ft(ie)}};Object.values(rr).forEach(ie=>ie(null)),Object.entries(Cn).forEach(([ie,ge])=>{var Fe;(Fe=rr[ie])===null||Fe===void 0||Fe.call(rr,ge)})};E.useEffect(()=>{ve(r)},[r]),E.useEffect(()=>{et(i)},[i]),E.useEffect(()=>{Oe(u)},[u]),E.useEffect(()=>{st(s)},[s]),E.useEffect(()=>{ht(c)},[c]),E.useEffect(()=>{P(C)},[C]),E.useEffect(()=>{me(b)},[b]),E.useEffect(()=>{Qe(Q)},[Q]),E.useEffect(()=>{Ee(F)},[F]),E.useEffect(()=>{xe(A)},[A]),E.useEffect(()=>{Ke.current!==I&&console.warn("[react-tooltip] Do not change `disableStyleInjection` dynamically.")},[I]),E.useEffect(()=>{typeof window<"u"&&window.dispatchEvent(new CustomEvent("react-tooltip-inject-styles",{detail:{disableCore:I==="core",disableBase:I}}))},[]),E.useEffect(()=>{var Cn;const rr=new Set(Ne);let ie=n;if(!ie&&e&&(ie=`[data-tooltip-id='${e.replace(/'/g,"\\'")}']`),ie)try{document.querySelectorAll(ie).forEach(Je=>{rr.add({current:Je})})}catch{console.warn(`[react-tooltip] "${ie}" is not a valid CSS selector`)}const ge=document.querySelector(`[id='${t}']`);if(ge&&rr.add({current:ge}),!rr.size)return()=>null;const Fe=(Cn=Bt??ge)!==null&&Cn!==void 0?Cn:ut.current,Le=new MutationObserver(Je=>{Je.forEach(Me=>{var ze;if(!Fe||Me.type!=="attributes"||!(!((ze=Me.attributeName)===null||ze===void 0)&&ze.startsWith("data-tooltip-")))return;const Kt=Pe(Fe);Gt(Kt)})}),be={attributes:!0,childList:!1,subtree:!1};if(Fe){const Je=Pe(Fe);Gt(Je),Le.observe(Fe,be)}return()=>{Le.disconnect()}},[Ne,ut,Bt,t,n]),E.useEffect(()=>{z!=null&&z.border&&console.warn("[react-tooltip] Do not set `style.border`. Use `border` prop instead."),se&&!nG("border",`${se}`)&&console.warn(`[react-tooltip] "${se}" is not a valid \`border\`.`),z!=null&&z.opacity&&console.warn("[react-tooltip] Do not set `style.opacity`. Use `opacity` prop instead."),Z&&!nG("opacity",`${Z}`)&&console.warn(`[react-tooltip] "${Z}" is not a valid \`opacity\`.`)},[]);let An=g;const Xt=E.useRef(null);if(a){const Cn=a({content:(Bt==null?void 0:Bt.getAttribute("data-tooltip-content"))||Ze||null,activeAnchor:Bt});An=Cn?ct.createElement("div",{ref:Xt,className:"react-tooltip-content-wrapper"},Cn):null}else Ze&&(An=Ze);it&&(An=ct.createElement(u1e,{content:it}));const Hn={forwardRef:_,id:e,anchorId:t,anchorSelect:n,className:hy(o,nt),classNameArrow:l,content:An,contentWrapperRef:Xt,place:ot,variant:tt,offset:pt,wrapper:Ie,events:de,openOnClick:m,positionStrategy:ae,middlewares:B,delayShow:lt,delayHide:le,float:Re,hidden:We,noArrow:K,clickable:y,closeOnEsc:G,closeOnScroll:X,closeOnResize:H,openEvents:v,closeEvents:k,globalCloseEvents:D,imperativeModeOnly:V,style:z,position:j,isOpen:te,defaultIsOpen:J,border:se,opacity:Z,arrowColor:S,setIsOpen:q,afterShow:T,afterHide:ue,activeAnchor:Bt,setActiveAnchor:Cn=>$(Cn),role:fe};return ct.createElement(s1e,{...Hn})});typeof window<"u"&&window.addEventListener("react-tooltip-inject-styles",e=>{e.detail.disableCore||eG({css:":root{--rt-color-white:#fff;--rt-color-dark:#222;--rt-color-success:#8dc572;--rt-color-error:#be6464;--rt-color-warning:#f0ad4e;--rt-color-info:#337ab7;--rt-opacity:0.9;--rt-transition-show-delay:0.15s;--rt-transition-closing-delay:0.15s}.core-styles-module_tooltip__3vRRp{position:absolute;top:0;left:0;pointer-events:none;opacity:0;will-change:opacity}.core-styles-module_fixed__pcSol{position:fixed}.core-styles-module_arrow__cvMwQ{position:absolute;background:inherit}.core-styles-module_noArrow__xock6{display:none}.core-styles-module_clickable__ZuTTB{pointer-events:auto}.core-styles-module_show__Nt9eE{opacity:var(--rt-opacity);transition:opacity var(--rt-transition-show-delay)ease-out}.core-styles-module_closing__sGnxF{opacity:0;transition:opacity var(--rt-transition-closing-delay)ease-in}",type:"core"}),e.detail.disableBase||eG({css:` +.styles-module_tooltip__mnnfp{padding:8px 16px;border-radius:3px;font-size:90%;width:max-content}.styles-module_arrow__K0L3T{width:8px;height:8px}[class*='react-tooltip__place-top']>.styles-module_arrow__K0L3T{transform:rotate(45deg)}[class*='react-tooltip__place-right']>.styles-module_arrow__K0L3T{transform:rotate(135deg)}[class*='react-tooltip__place-bottom']>.styles-module_arrow__K0L3T{transform:rotate(225deg)}[class*='react-tooltip__place-left']>.styles-module_arrow__K0L3T{transform:rotate(315deg)}.styles-module_dark__xNqje{background:var(--rt-color-dark);color:var(--rt-color-white)}.styles-module_light__Z6W-X{background-color:var(--rt-color-white);color:var(--rt-color-dark)}.styles-module_success__A2AKt{background-color:var(--rt-color-success);color:var(--rt-color-white)}.styles-module_warning__SCK0X{background-color:var(--rt-color-warning);color:var(--rt-color-white)}.styles-module_error__JvumD{background-color:var(--rt-color-error);color:var(--rt-color-white)}.styles-module_info__BWdHW{background-color:var(--rt-color-info);color:var(--rt-color-white)}`,type:"base"})});function Vo(e){const t=localStorage.getItem(e);if(t!==null)try{return JSON.parse(t)}catch(n){console.error(`Error parsing ${e} from local storage. Value was ${t} + +`,n);return}}function Di(e,t){localStorage.setItem(e,JSON.stringify(t))}var iB={exports:{}};/** + * @license + * Lodash + * Copyright OpenJS Foundation and other contributors + * Released under MIT license + * Based on Underscore.js 1.8.3 + * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + */iB.exports;(function(e,t){(function(){var n,r="4.17.21",i=200,a="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",o="Expected a function",l="Invalid `variable` option passed into `_.template`",s="__lodash_hash_undefined__",u=500,c="__lodash_placeholder__",d=1,g=2,h=4,m=1,A=2,B=1,C=2,b=4,Q=8,F=16,K=32,y=64,G=128,X=256,H=512,v=30,k="...",D=800,V=16,z=1,j=2,te=3,J=1/0,I=9007199254740991,se=17976931348623157e292,Z=0/0,S=4294967295,q=S-1,T=S>>>1,ue=[["ary",G],["bind",B],["bindKey",C],["curry",Q],["curryRight",F],["flip",H],["partial",K],["partialRight",y],["rearg",X]],fe="[object Arguments]",_="[object Array]",Ze="[object AsyncFunction]",ve="[object Boolean]",it="[object Date]",et="[object DOMException]",ot="[object Error]",Oe="[object Function]",tt="[object GeneratorFunction]",st="[object Map]",pt="[object Number]",ht="[object Null]",lt="[object Object]",P="[object Promise]",le="[object Proxy]",me="[object RegExp]",Re="[object Set]",Qe="[object String]",We="[object Symbol]",Ee="[object Undefined]",Ie="[object WeakMap]",Ce="[object WeakSet]",de="[object ArrayBuffer]",we="[object DataView]",ae="[object Float32Array]",xe="[object Float64Array]",nt="[object Int8Array]",ft="[object Int16Array]",Bt="[object Int32Array]",$="[object Uint8Array]",Ke="[object Uint8ClampedArray]",Ne="[object Uint16Array]",ut="[object Uint32Array]",Pe=/\b__p \+= '';/g,Gt=/\b(__p \+=) '' \+/g,An=/(__e\(.*?\)|\b__t\)) \+\n'';/g,Xt=/&(?:amp|lt|gt|quot|#39);/g,Hn=/[&<>"']/g,Cn=RegExp(Xt.source),rr=RegExp(Hn.source),ie=/<%-([\s\S]+?)%>/g,ge=/<%([\s\S]+?)%>/g,Fe=/<%=([\s\S]+?)%>/g,Le=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,be=/^\w*$/,Je=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Me=/[\\^$.*+?()[\]{}|]/g,ze=RegExp(Me.source),Kt=/^\s+/,St=/\s/,Qn=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,un=/\{\n\/\* \[wrapped with (.+)\] \*/,yt=/,? & /,Rt=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,Xn=/[()=,{}\[\]\/\s]/,co=/\\(\\)?/g,Wi=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,Xi=/\w*$/,xa=/^[-+]0x[0-9a-f]+$/i,vt=/^0b[01]+$/i,oe=/^\[object .+?Constructor\]$/,He=/^0o[0-7]+$/i,At=/^(?:0|[1-9]\d*)$/,an=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Nt=/($^)/,on=/['\n\r\u2028\u2029\\]/g,En="\\ud800-\\udfff",kn="\\u0300-\\u036f",Ga="\\ufe20-\\ufe2f",Xr="\\u20d0-\\u20ff",Pc=kn+Ga+Xr,ag="\\u2700-\\u27bf",G8="a-z\\xdf-\\xf6\\xf8-\\xff",K$="\\xac\\xb1\\xd7\\xf7",Q$="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",W$="\\u2000-\\u206f",y$=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",k8="A-Z\\xc0-\\xd6\\xd8-\\xde",D8="\\ufe0e\\ufe0f",N8=K$+Q$+W$+y$,Hw="['’]",F$="["+En+"]",Z8="["+N8+"]",Nm="["+Pc+"]",H8="\\d+",E$="["+ag+"]",X8="["+G8+"]",L8="[^"+En+N8+H8+ag+G8+k8+"]",Xw="\\ud83c[\\udffb-\\udfff]",R$="(?:"+Nm+"|"+Xw+")",M8="[^"+En+"]",Lw="(?:\\ud83c[\\udde6-\\uddff]){2}",Mw="[\\ud800-\\udbff][\\udc00-\\udfff]",Qd="["+k8+"]",T8="\\u200d",V8="(?:"+X8+"|"+L8+")",S$="(?:"+Qd+"|"+L8+")",Y8="(?:"+Hw+"(?:d|ll|m|re|s|t|ve))?",I8="(?:"+Hw+"(?:D|LL|M|RE|S|T|VE))?",U8=R$+"?",O8="["+D8+"]?",x$="(?:"+T8+"(?:"+[M8,Lw,Mw].join("|")+")"+O8+U8+")*",G$="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",k$="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",J8=O8+U8+x$,D$="(?:"+[E$,Lw,Mw].join("|")+")"+J8,N$="(?:"+[M8+Nm+"?",Nm,Lw,Mw,F$].join("|")+")",Z$=RegExp(Hw,"g"),H$=RegExp(Nm,"g"),Tw=RegExp(Xw+"(?="+Xw+")|"+N$+J8,"g"),X$=RegExp([Qd+"?"+X8+"+"+Y8+"(?="+[Z8,Qd,"$"].join("|")+")",S$+"+"+I8+"(?="+[Z8,Qd+V8,"$"].join("|")+")",Qd+"?"+V8+"+"+Y8,Qd+"+"+I8,k$,G$,H8,D$].join("|"),"g"),L$=RegExp("["+T8+En+Pc+D8+"]"),M$=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,T$=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],V$=-1,ir={};ir[ae]=ir[xe]=ir[nt]=ir[ft]=ir[Bt]=ir[$]=ir[Ke]=ir[Ne]=ir[ut]=!0,ir[fe]=ir[_]=ir[de]=ir[ve]=ir[we]=ir[it]=ir[ot]=ir[Oe]=ir[st]=ir[pt]=ir[lt]=ir[me]=ir[Re]=ir[Qe]=ir[Ie]=!1;var jn={};jn[fe]=jn[_]=jn[de]=jn[we]=jn[ve]=jn[it]=jn[ae]=jn[xe]=jn[nt]=jn[ft]=jn[Bt]=jn[st]=jn[pt]=jn[lt]=jn[me]=jn[Re]=jn[Qe]=jn[We]=jn[$]=jn[Ke]=jn[Ne]=jn[ut]=!0,jn[ot]=jn[Oe]=jn[Ie]=!1;var Y$={À:"A",Á:"A",Â:"A",Ã:"A",Ä:"A",Å:"A",à:"a",á:"a",â:"a",ã:"a",ä:"a",å:"a",Ç:"C",ç:"c",Ð:"D",ð:"d",È:"E",É:"E",Ê:"E",Ë:"E",è:"e",é:"e",ê:"e",ë:"e",Ì:"I",Í:"I",Î:"I",Ï:"I",ì:"i",í:"i",î:"i",ï:"i",Ñ:"N",ñ:"n",Ò:"O",Ó:"O",Ô:"O",Õ:"O",Ö:"O",Ø:"O",ò:"o",ó:"o",ô:"o",õ:"o",ö:"o",ø:"o",Ù:"U",Ú:"U",Û:"U",Ü:"U",ù:"u",ú:"u",û:"u",ü:"u",Ý:"Y",ý:"y",ÿ:"y",Æ:"Ae",æ:"ae",Þ:"Th",þ:"th",ß:"ss",Ā:"A",Ă:"A",Ą:"A",ā:"a",ă:"a",ą:"a",Ć:"C",Ĉ:"C",Ċ:"C",Č:"C",ć:"c",ĉ:"c",ċ:"c",č:"c",Ď:"D",Đ:"D",ď:"d",đ:"d",Ē:"E",Ĕ:"E",Ė:"E",Ę:"E",Ě:"E",ē:"e",ĕ:"e",ė:"e",ę:"e",ě:"e",Ĝ:"G",Ğ:"G",Ġ:"G",Ģ:"G",ĝ:"g",ğ:"g",ġ:"g",ģ:"g",Ĥ:"H",Ħ:"H",ĥ:"h",ħ:"h",Ĩ:"I",Ī:"I",Ĭ:"I",Į:"I",İ:"I",ĩ:"i",ī:"i",ĭ:"i",į:"i",ı:"i",Ĵ:"J",ĵ:"j",Ķ:"K",ķ:"k",ĸ:"k",Ĺ:"L",Ļ:"L",Ľ:"L",Ŀ:"L",Ł:"L",ĺ:"l",ļ:"l",ľ:"l",ŀ:"l",ł:"l",Ń:"N",Ņ:"N",Ň:"N",Ŋ:"N",ń:"n",ņ:"n",ň:"n",ŋ:"n",Ō:"O",Ŏ:"O",Ő:"O",ō:"o",ŏ:"o",ő:"o",Ŕ:"R",Ŗ:"R",Ř:"R",ŕ:"r",ŗ:"r",ř:"r",Ś:"S",Ŝ:"S",Ş:"S",Š:"S",ś:"s",ŝ:"s",ş:"s",š:"s",Ţ:"T",Ť:"T",Ŧ:"T",ţ:"t",ť:"t",ŧ:"t",Ũ:"U",Ū:"U",Ŭ:"U",Ů:"U",Ű:"U",Ų:"U",ũ:"u",ū:"u",ŭ:"u",ů:"u",ű:"u",ų:"u",Ŵ:"W",ŵ:"w",Ŷ:"Y",ŷ:"y",Ÿ:"Y",Ź:"Z",Ż:"Z",Ž:"Z",ź:"z",ż:"z",ž:"z",IJ:"IJ",ij:"ij",Œ:"Oe",œ:"oe",ʼn:"'n",ſ:"s"},I$={"&":"&","<":"<",">":">",'"':""","'":"'"},U$={"&":"&","<":"<",">":">",""":'"',"'":"'"},O$={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},J$=parseFloat,z$=parseInt,z8=typeof hn=="object"&&hn&&hn.Object===Object&&hn,P$=typeof self=="object"&&self&&self.Object===Object&&self,di=z8||P$||Function("return this")(),Vw=t&&!t.nodeType&&t,jc=Vw&&!0&&e&&!e.nodeType&&e,P8=jc&&jc.exports===Vw,Yw=P8&&z8.process,po=function(){try{var he=jc&&jc.require&&jc.require("util").types;return he||Yw&&Yw.binding&&Yw.binding("util")}catch{}}(),j8=po&&po.isArrayBuffer,_8=po&&po.isDate,$8=po&&po.isMap,q8=po&&po.isRegExp,e6=po&&po.isSet,t6=po&&po.isTypedArray;function ka(he,Ge,ye){switch(ye.length){case 0:return he.call(Ge);case 1:return he.call(Ge,ye[0]);case 2:return he.call(Ge,ye[0],ye[1]);case 3:return he.call(Ge,ye[0],ye[1],ye[2])}return he.apply(Ge,ye)}function j$(he,Ge,ye,Qt){for(var Jt=-1,Sn=he==null?0:he.length;++Jt-1}function Iw(he,Ge,ye){for(var Qt=-1,Jt=he==null?0:he.length;++Qt-1;);return ye}function u6(he,Ge){for(var ye=he.length;ye--&&Wd(Ge,he[ye],0)>-1;);return ye}function aq(he,Ge){for(var ye=he.length,Qt=0;ye--;)he[ye]===Ge&&++Qt;return Qt}var oq=zw(Y$),lq=zw(I$);function sq(he){return"\\"+O$[he]}function uq(he,Ge){return he==null?n:he[Ge]}function yd(he){return L$.test(he)}function cq(he){return M$.test(he)}function dq(he){for(var Ge,ye=[];!(Ge=he.next()).done;)ye.push(Ge.value);return ye}function $w(he){var Ge=-1,ye=Array(he.size);return he.forEach(function(Qt,Jt){ye[++Ge]=[Jt,Qt]}),ye}function c6(he,Ge){return function(ye){return he(Ge(ye))}}function vu(he,Ge){for(var ye=-1,Qt=he.length,Jt=0,Sn=[];++ye-1}function $q(p,f){var w=this.__data__,x=qm(w,p);return x<0?(++this.size,w.push([p,f])):w[x][1]=f,this}bs.prototype.clear=zq,bs.prototype.delete=Pq,bs.prototype.get=jq,bs.prototype.has=_q,bs.prototype.set=$q;function vs(p){var f=-1,w=p==null?0:p.length;for(this.clear();++f=f?p:f)),p}function mo(p,f,w,x,L,O){var ne,ce=f&d,Ae=f&g,ke=f&h;if(w&&(ne=L?w(p,x,L,O):w(p)),ne!==n)return ne;if(!Cr(p))return p;var De=_t(p);if(De){if(ne=nte(p),!ce)return sa(p,ne)}else{var Xe=Fi(p),gt=Xe==Oe||Xe==tt;if(Eu(p))return O6(p,ce);if(Xe==lt||Xe==fe||gt&&!L){if(ne=Ae||gt?{}:dS(p),!ce)return Ae?Uee(p,hee(ne,p)):Iee(p,v6(ne,p))}else{if(!jn[Xe])return L?p:{};ne=rte(p,Xe,ce)}}O||(O=new qo);var xt=O.get(p);if(xt)return xt;O.set(p,ne),MS(p)?p.forEach(function(It){ne.add(mo(It,f,w,It,p,O))}):XS(p)&&p.forEach(function(It,dn){ne.set(dn,mo(It,f,w,dn,p,O))});var Yt=ke?Ae?Qb:Kb:Ae?ca:ti,nn=De?n:Yt(p);return go(nn||p,function(It,dn){nn&&(dn=It,It=p[dn]),pg(ne,dn,mo(It,f,w,dn,p,O))}),ne}function fee(p){var f=ti(p);return function(w){return K6(w,p,f)}}function K6(p,f,w){var x=w.length;if(p==null)return!x;for(p=Un(p);x--;){var L=w[x],O=f[L],ne=p[L];if(ne===n&&!(L in p)||!O(ne))return!1}return!0}function Q6(p,f,w){if(typeof p!="function")throw new ho(o);return Bg(function(){p.apply(n,w)},f)}function gg(p,f,w,x){var L=-1,O=Zm,ne=!0,ce=p.length,Ae=[],ke=f.length;if(!ce)return Ae;w&&(f=gr(f,Da(w))),x?(O=Iw,ne=!1):f.length>=i&&(O=og,ne=!1,f=new qc(f));e:for(;++LL?0:L+w),x=x===n||x>L?L:qt(x),x<0&&(x+=L),x=w>x?0:VS(x);w0&&w(ce)?f>1?pi(ce,f-1,w,x,L):bu(L,ce):x||(L[L.length]=ce)}return L}var ab=$6(),F6=$6(!0);function xl(p,f){return p&&ab(p,f,ti)}function ob(p,f){return p&&F6(p,f,ti)}function tA(p,f){return wu(f,function(w){return Fs(p[w])})}function t0(p,f){f=yu(f,p);for(var w=0,x=f.length;p!=null&&wf}function Cee(p,f){return p!=null&&Ln.call(p,f)}function Bee(p,f){return p!=null&&f in Un(p)}function wee(p,f,w){return p>=yi(f,w)&&p=120&&De.length>=120)?new qc(ne&&De):n}De=p[0];var Xe=-1,gt=ce[0];e:for(;++Xe-1;)ce!==p&&Om.call(ce,Ae,1),Om.call(p,Ae,1);return p}function X6(p,f){for(var w=p?f.length:0,x=w-1;w--;){var L=f[w];if(w==x||L!==O){var O=L;ys(L)?Om.call(p,L,1):mb(p,L)}}return p}function gb(p,f){return p+Pm(C6()*(f-p+1))}function kee(p,f,w,x){for(var L=-1,O=Or(zm((f-p)/(w||1)),0),ne=ye(O);O--;)ne[x?O:++L]=p,p+=w;return ne}function hb(p,f){var w="";if(!p||f<1||f>I)return w;do f%2&&(w+=p),f=Pm(f/2),f&&(p+=p);while(f);return w}function ln(p,f){return xb(hS(p,f,da),p+"")}function Dee(p){return b6(Hd(p))}function Nee(p,f){var w=Hd(p);return pA(w,e0(f,0,w.length))}function mg(p,f,w,x){if(!Cr(p))return p;f=yu(f,p);for(var L=-1,O=f.length,ne=O-1,ce=p;ce!=null&&++LL?0:L+f),w=w>L?L:w,w<0&&(w+=L),L=f>w?0:w-f>>>0,f>>>=0;for(var O=ye(L);++x>>1,ne=p[O];ne!==null&&!Za(ne)&&(w?ne<=f:ne=i){var ke=f?null:Pee(p);if(ke)return Xm(ke);ne=!1,L=og,Ae=new qc}else Ae=f?[]:ce;e:for(;++x=x?p:Ao(p,f,w)}var U6=yq||function(p){return di.clearTimeout(p)};function O6(p,f){if(f)return p.slice();var w=p.length,x=g6?g6(w):new p.constructor(w);return p.copy(x),x}function wb(p){var f=new p.constructor(p.byteLength);return new Im(f).set(new Im(p)),f}function Mee(p,f){var w=f?wb(p.buffer):p.buffer;return new p.constructor(w,p.byteOffset,p.byteLength)}function Tee(p){var f=new p.constructor(p.source,Xi.exec(p));return f.lastIndex=p.lastIndex,f}function Vee(p){return dg?Un(dg.call(p)):{}}function J6(p,f){var w=f?wb(p.buffer):p.buffer;return new p.constructor(w,p.byteOffset,p.length)}function z6(p,f){if(p!==f){var w=p!==n,x=p===null,L=p===p,O=Za(p),ne=f!==n,ce=f===null,Ae=f===f,ke=Za(f);if(!ce&&!ke&&!O&&p>f||O&&ne&&Ae&&!ce&&!ke||x&&ne&&Ae||!w&&Ae||!L)return 1;if(!x&&!O&&!ke&&p=ce)return Ae;var ke=w[x];return Ae*(ke=="desc"?-1:1)}}return p.index-f.index}function P6(p,f,w,x){for(var L=-1,O=p.length,ne=w.length,ce=-1,Ae=f.length,ke=Or(O-ne,0),De=ye(Ae+ke),Xe=!x;++ce1?w[L-1]:n,ne=L>2?w[2]:n;for(O=p.length>3&&typeof O=="function"?(L--,O):n,ne&&Mi(w[0],w[1],ne)&&(O=L<3?n:O,L=1),f=Un(f);++x-1?L[O?f[ne]:ne]:n}}function tS(p){return Ws(function(f){var w=f.length,x=w,L=fo.prototype.thru;for(p&&f.reverse();x--;){var O=f[x];if(typeof O!="function")throw new ho(o);if(L&&!ne&&cA(O)=="wrapper")var ne=new fo([],!0)}for(x=ne?x:w;++x1&&bn.reverse(),De&&Aece))return!1;var ke=O.get(p),De=O.get(f);if(ke&&De)return ke==f&&De==p;var Xe=-1,gt=!0,xt=w&A?new qc:n;for(O.set(p,f),O.set(f,p);++Xe1?"& ":"")+f[x],f=f.join(w>2?", ":" "),p.replace(Qn,`{ +/* [wrapped with `+f+`] */ +`)}function ate(p){return _t(p)||i0(p)||!!(m6&&p&&p[m6])}function ys(p,f){var w=typeof p;return f=f??I,!!f&&(w=="number"||w!="symbol"&&At.test(p))&&p>-1&&p%1==0&&p0){if(++f>=D)return arguments[0]}else f=0;return p.apply(n,arguments)}}function pA(p,f){var w=-1,x=p.length,L=x-1;for(f=f===n?x:f;++w1?p[f-1]:n;return w=typeof w=="function"?(p.pop(),w):n,yS(p,w)});function FS(p){var f=Y(p);return f.__chain__=!0,f}function mne(p,f){return f(p),p}function gA(p,f){return f(p)}var Ane=Ws(function(p){var f=p.length,w=f?p[0]:0,x=this.__wrapped__,L=function(O){return ib(O,p)};return f>1||this.__actions__.length||!(x instanceof Bn)||!ys(w)?this.thru(L):(x=x.slice(w,+w+(f?1:0)),x.__actions__.push({func:gA,args:[L],thisArg:n}),new fo(x,this.__chain__).thru(function(O){return f&&!O.length&&O.push(n),O}))});function Cne(){return FS(this)}function Bne(){return new fo(this.value(),this.__chain__)}function wne(){this.__values__===n&&(this.__values__=TS(this.value()));var p=this.__index__>=this.__values__.length,f=p?n:this.__values__[this.__index__++];return{done:p,value:f}}function bne(){return this}function vne(p){for(var f,w=this;w instanceof $m;){var x=wS(w);x.__index__=0,x.__values__=n,f?L.__wrapped__=x:f=x;var L=x;w=w.__wrapped__}return L.__wrapped__=p,f}function Kne(){var p=this.__wrapped__;if(p instanceof Bn){var f=p;return this.__actions__.length&&(f=new Bn(this)),f=f.reverse(),f.__actions__.push({func:gA,args:[Gb],thisArg:n}),new fo(f,this.__chain__)}return this.thru(Gb)}function Qne(){return Y6(this.__wrapped__,this.__actions__)}var Wne=aA(function(p,f,w){Ln.call(p,w)?++p[w]:Ks(p,w,1)});function yne(p,f,w){var x=_t(p)?n6:mee;return w&&Mi(p,f,w)&&(f=n),x(p,Vt(f,3))}function Fne(p,f){var w=_t(p)?wu:y6;return w(p,Vt(f,3))}var Ene=eS(bS),Rne=eS(vS);function Sne(p,f){return pi(hA(p,f),1)}function xne(p,f){return pi(hA(p,f),J)}function Gne(p,f,w){return w=w===n?1:qt(w),pi(hA(p,f),w)}function ES(p,f){var w=_t(p)?go:Qu;return w(p,Vt(f,3))}function RS(p,f){var w=_t(p)?_$:W6;return w(p,Vt(f,3))}var kne=aA(function(p,f,w){Ln.call(p,w)?p[w].push(f):Ks(p,w,[f])});function Dne(p,f,w,x){p=ua(p)?p:Hd(p),w=w&&!x?qt(w):0;var L=p.length;return w<0&&(w=Or(L+w,0)),BA(p)?w<=L&&p.indexOf(f,w)>-1:!!L&&Wd(p,f,w)>-1}var Nne=ln(function(p,f,w){var x=-1,L=typeof f=="function",O=ua(p)?ye(p.length):[];return Qu(p,function(ne){O[++x]=L?ka(f,ne,w):hg(ne,f,w)}),O}),Zne=aA(function(p,f,w){Ks(p,w,f)});function hA(p,f){var w=_t(p)?gr:G6;return w(p,Vt(f,3))}function Hne(p,f,w,x){return p==null?[]:(_t(f)||(f=f==null?[]:[f]),w=x?n:w,_t(w)||(w=w==null?[]:[w]),Z6(p,f,w))}var Xne=aA(function(p,f,w){p[w?0:1].push(f)},function(){return[[],[]]});function Lne(p,f,w){var x=_t(p)?Uw:o6,L=arguments.length<3;return x(p,Vt(f,4),w,L,Qu)}function Mne(p,f,w){var x=_t(p)?$$:o6,L=arguments.length<3;return x(p,Vt(f,4),w,L,W6)}function Tne(p,f){var w=_t(p)?wu:y6;return w(p,AA(Vt(f,3)))}function Vne(p){var f=_t(p)?b6:Dee;return f(p)}function Yne(p,f,w){(w?Mi(p,f,w):f===n)?f=1:f=qt(f);var x=_t(p)?dee:Nee;return x(p,f)}function Ine(p){var f=_t(p)?pee:Hee;return f(p)}function Une(p){if(p==null)return 0;if(ua(p))return BA(p)?Fd(p):p.length;var f=Fi(p);return f==st||f==Re?p.size:cb(p).length}function One(p,f,w){var x=_t(p)?Ow:Xee;return w&&Mi(p,f,w)&&(f=n),x(p,Vt(f,3))}var Jne=ln(function(p,f){if(p==null)return[];var w=f.length;return w>1&&Mi(p,f[0],f[1])?f=[]:w>2&&Mi(f[0],f[1],f[2])&&(f=[f[0]]),Z6(p,pi(f,1),[])}),fA=Fq||function(){return di.Date.now()};function zne(p,f){if(typeof f!="function")throw new ho(o);return p=qt(p),function(){if(--p<1)return f.apply(this,arguments)}}function SS(p,f,w){return f=w?n:f,f=p&&f==null?p.length:f,Qs(p,G,n,n,n,n,f)}function xS(p,f){var w;if(typeof f!="function")throw new ho(o);return p=qt(p),function(){return--p>0&&(w=f.apply(this,arguments)),p<=1&&(f=n),w}}var Db=ln(function(p,f,w){var x=B;if(w.length){var L=vu(w,Nd(Db));x|=K}return Qs(p,x,f,w,L)}),GS=ln(function(p,f,w){var x=B|C;if(w.length){var L=vu(w,Nd(GS));x|=K}return Qs(f,x,p,w,L)});function kS(p,f,w){f=w?n:f;var x=Qs(p,Q,n,n,n,n,n,f);return x.placeholder=kS.placeholder,x}function DS(p,f,w){f=w?n:f;var x=Qs(p,F,n,n,n,n,n,f);return x.placeholder=DS.placeholder,x}function NS(p,f,w){var x,L,O,ne,ce,Ae,ke=0,De=!1,Xe=!1,gt=!0;if(typeof p!="function")throw new ho(o);f=Bo(f)||0,Cr(w)&&(De=!!w.leading,Xe="maxWait"in w,O=Xe?Or(Bo(w.maxWait)||0,f):O,gt="trailing"in w?!!w.trailing:gt);function xt(Rr){var tl=x,Rs=L;return x=L=n,ke=Rr,ne=p.apply(Rs,tl),ne}function Yt(Rr){return ke=Rr,ce=Bg(dn,f),De?xt(Rr):ne}function nn(Rr){var tl=Rr-Ae,Rs=Rr-ke,e7=f-tl;return Xe?yi(e7,O-Rs):e7}function It(Rr){var tl=Rr-Ae,Rs=Rr-ke;return Ae===n||tl>=f||tl<0||Xe&&Rs>=O}function dn(){var Rr=fA();if(It(Rr))return bn(Rr);ce=Bg(dn,nn(Rr))}function bn(Rr){return ce=n,gt&&x?xt(Rr):(x=L=n,ne)}function Ha(){ce!==n&&U6(ce),ke=0,x=Ae=L=ce=n}function Ti(){return ce===n?ne:bn(fA())}function Xa(){var Rr=fA(),tl=It(Rr);if(x=arguments,L=this,Ae=Rr,tl){if(ce===n)return Yt(Ae);if(Xe)return U6(ce),ce=Bg(dn,f),xt(Ae)}return ce===n&&(ce=Bg(dn,f)),ne}return Xa.cancel=Ha,Xa.flush=Ti,Xa}var Pne=ln(function(p,f){return Q6(p,1,f)}),jne=ln(function(p,f,w){return Q6(p,Bo(f)||0,w)});function _ne(p){return Qs(p,H)}function mA(p,f){if(typeof p!="function"||f!=null&&typeof f!="function")throw new ho(o);var w=function(){var x=arguments,L=f?f.apply(this,x):x[0],O=w.cache;if(O.has(L))return O.get(L);var ne=p.apply(this,x);return w.cache=O.set(L,ne)||O,ne};return w.cache=new(mA.Cache||vs),w}mA.Cache=vs;function AA(p){if(typeof p!="function")throw new ho(o);return function(){var f=arguments;switch(f.length){case 0:return!p.call(this);case 1:return!p.call(this,f[0]);case 2:return!p.call(this,f[0],f[1]);case 3:return!p.call(this,f[0],f[1],f[2])}return!p.apply(this,f)}}function $ne(p){return xS(2,p)}var qne=Lee(function(p,f){f=f.length==1&&_t(f[0])?gr(f[0],Da(Vt())):gr(pi(f,1),Da(Vt()));var w=f.length;return ln(function(x){for(var L=-1,O=yi(x.length,w);++L=f}),i0=R6(function(){return arguments}())?R6:function(p){return Qr(p)&&Ln.call(p,"callee")&&!f6.call(p,"callee")},_t=ye.isArray,hre=j8?Da(j8):vee;function ua(p){return p!=null&&CA(p.length)&&!Fs(p)}function Er(p){return Qr(p)&&ua(p)}function fre(p){return p===!0||p===!1||Qr(p)&&Li(p)==ve}var Eu=Rq||Ob,mre=_8?Da(_8):Kee;function Are(p){return Qr(p)&&p.nodeType===1&&!wg(p)}function Cre(p){if(p==null)return!0;if(ua(p)&&(_t(p)||typeof p=="string"||typeof p.splice=="function"||Eu(p)||Zd(p)||i0(p)))return!p.length;var f=Fi(p);if(f==st||f==Re)return!p.size;if(Cg(p))return!cb(p).length;for(var w in p)if(Ln.call(p,w))return!1;return!0}function Bre(p,f){return fg(p,f)}function wre(p,f,w){w=typeof w=="function"?w:n;var x=w?w(p,f):n;return x===n?fg(p,f,n,w):!!x}function Zb(p){if(!Qr(p))return!1;var f=Li(p);return f==ot||f==et||typeof p.message=="string"&&typeof p.name=="string"&&!wg(p)}function bre(p){return typeof p=="number"&&A6(p)}function Fs(p){if(!Cr(p))return!1;var f=Li(p);return f==Oe||f==tt||f==Ze||f==le}function HS(p){return typeof p=="number"&&p==qt(p)}function CA(p){return typeof p=="number"&&p>-1&&p%1==0&&p<=I}function Cr(p){var f=typeof p;return p!=null&&(f=="object"||f=="function")}function Qr(p){return p!=null&&typeof p=="object"}var XS=$8?Da($8):Wee;function vre(p,f){return p===f||ub(p,f,yb(f))}function Kre(p,f,w){return w=typeof w=="function"?w:n,ub(p,f,yb(f),w)}function Qre(p){return LS(p)&&p!=+p}function Wre(p){if(ste(p))throw new Jt(a);return S6(p)}function yre(p){return p===null}function Fre(p){return p==null}function LS(p){return typeof p=="number"||Qr(p)&&Li(p)==pt}function wg(p){if(!Qr(p)||Li(p)!=lt)return!1;var f=Um(p);if(f===null)return!0;var w=Ln.call(f,"constructor")&&f.constructor;return typeof w=="function"&&w instanceof w&&Tm.call(w)==Kq}var Hb=q8?Da(q8):yee;function Ere(p){return HS(p)&&p>=-I&&p<=I}var MS=e6?Da(e6):Fee;function BA(p){return typeof p=="string"||!_t(p)&&Qr(p)&&Li(p)==Qe}function Za(p){return typeof p=="symbol"||Qr(p)&&Li(p)==We}var Zd=t6?Da(t6):Eee;function Rre(p){return p===n}function Sre(p){return Qr(p)&&Fi(p)==Ie}function xre(p){return Qr(p)&&Li(p)==Ce}var Gre=uA(db),kre=uA(function(p,f){return p<=f});function TS(p){if(!p)return[];if(ua(p))return BA(p)?$o(p):sa(p);if(lg&&p[lg])return dq(p[lg]());var f=Fi(p),w=f==st?$w:f==Re?Xm:Hd;return w(p)}function Es(p){if(!p)return p===0?p:0;if(p=Bo(p),p===J||p===-J){var f=p<0?-1:1;return f*se}return p===p?p:0}function qt(p){var f=Es(p),w=f%1;return f===f?w?f-w:f:0}function VS(p){return p?e0(qt(p),0,S):0}function Bo(p){if(typeof p=="number")return p;if(Za(p))return Z;if(Cr(p)){var f=typeof p.valueOf=="function"?p.valueOf():p;p=Cr(f)?f+"":f}if(typeof p!="string")return p===0?p:+p;p=l6(p);var w=vt.test(p);return w||He.test(p)?z$(p.slice(2),w?2:8):xa.test(p)?Z:+p}function YS(p){return Gl(p,ca(p))}function Dre(p){return p?e0(qt(p),-I,I):p===0?p:0}function Dn(p){return p==null?"":Na(p)}var Nre=kd(function(p,f){if(Cg(f)||ua(f)){Gl(f,ti(f),p);return}for(var w in f)Ln.call(f,w)&&pg(p,w,f[w])}),IS=kd(function(p,f){Gl(f,ca(f),p)}),wA=kd(function(p,f,w,x){Gl(f,ca(f),p,x)}),Zre=kd(function(p,f,w,x){Gl(f,ti(f),p,x)}),Hre=Ws(ib);function Xre(p,f){var w=Gd(p);return f==null?w:v6(w,f)}var Lre=ln(function(p,f){p=Un(p);var w=-1,x=f.length,L=x>2?f[2]:n;for(L&&Mi(f[0],f[1],L)&&(x=1);++w1),O}),Gl(p,Qb(p),w),x&&(w=mo(w,d|g|h,jee));for(var L=f.length;L--;)mb(w,f[L]);return w});function rie(p,f){return OS(p,AA(Vt(f)))}var iie=Ws(function(p,f){return p==null?{}:xee(p,f)});function OS(p,f){if(p==null)return{};var w=gr(Qb(p),function(x){return[x]});return f=Vt(f),H6(p,w,function(x,L){return f(x,L[0])})}function aie(p,f,w){f=yu(f,p);var x=-1,L=f.length;for(L||(L=1,p=n);++xf){var x=p;p=f,f=x}if(w||p%1||f%1){var L=C6();return yi(p+L*(f-p+J$("1e-"+((L+"").length-1))),f)}return gb(p,f)}var mie=Dd(function(p,f,w){return f=f.toLowerCase(),p+(w?PS(f):f)});function PS(p){return Mb(Dn(p).toLowerCase())}function jS(p){return p=Dn(p),p&&p.replace(an,oq).replace(H$,"")}function Aie(p,f,w){p=Dn(p),f=Na(f);var x=p.length;w=w===n?x:e0(qt(w),0,x);var L=w;return w-=f.length,w>=0&&p.slice(w,L)==f}function Cie(p){return p=Dn(p),p&&rr.test(p)?p.replace(Hn,lq):p}function Bie(p){return p=Dn(p),p&&ze.test(p)?p.replace(Me,"\\$&"):p}var wie=Dd(function(p,f,w){return p+(w?"-":"")+f.toLowerCase()}),bie=Dd(function(p,f,w){return p+(w?" ":"")+f.toLowerCase()}),vie=q6("toLowerCase");function Kie(p,f,w){p=Dn(p),f=qt(f);var x=f?Fd(p):0;if(!f||x>=f)return p;var L=(f-x)/2;return sA(Pm(L),w)+p+sA(zm(L),w)}function Qie(p,f,w){p=Dn(p),f=qt(f);var x=f?Fd(p):0;return f&&x>>0,w?(p=Dn(p),p&&(typeof f=="string"||f!=null&&!Hb(f))&&(f=Na(f),!f&&yd(p))?Fu($o(p),0,w):p.split(f,w)):[]}var xie=Dd(function(p,f,w){return p+(w?" ":"")+Mb(f)});function Gie(p,f,w){return p=Dn(p),w=w==null?0:e0(qt(w),0,p.length),f=Na(f),p.slice(w,w+f.length)==f}function kie(p,f,w){var x=Y.templateSettings;w&&Mi(p,f,w)&&(f=n),p=Dn(p),f=wA({},f,x,oS);var L=wA({},f.imports,x.imports,oS),O=ti(L),ne=_w(L,O),ce,Ae,ke=0,De=f.interpolate||Nt,Xe="__p += '",gt=qw((f.escape||Nt).source+"|"+De.source+"|"+(De===Fe?Wi:Nt).source+"|"+(f.evaluate||Nt).source+"|$","g"),xt="//# sourceURL="+(Ln.call(f,"sourceURL")?(f.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++V$+"]")+` +`;p.replace(gt,function(It,dn,bn,Ha,Ti,Xa){return bn||(bn=Ha),Xe+=p.slice(ke,Xa).replace(on,sq),dn&&(ce=!0,Xe+=`' + +__e(`+dn+`) + +'`),Ti&&(Ae=!0,Xe+=`'; +`+Ti+`; +__p += '`),bn&&(Xe+=`' + +((__t = (`+bn+`)) == null ? '' : __t) + +'`),ke=Xa+It.length,It}),Xe+=`'; +`;var Yt=Ln.call(f,"variable")&&f.variable;if(!Yt)Xe=`with (obj) { +`+Xe+` +} +`;else if(Xn.test(Yt))throw new Jt(l);Xe=(Ae?Xe.replace(Pe,""):Xe).replace(Gt,"$1").replace(An,"$1;"),Xe="function("+(Yt||"obj")+`) { +`+(Yt?"":`obj || (obj = {}); +`)+"var __t, __p = ''"+(ce?", __e = _.escape":"")+(Ae?`, __j = Array.prototype.join; +function print() { __p += __j.call(arguments, '') } +`:`; +`)+Xe+`return __p +}`;var nn=$S(function(){return Sn(O,xt+"return "+Xe).apply(n,ne)});if(nn.source=Xe,Zb(nn))throw nn;return nn}function Die(p){return Dn(p).toLowerCase()}function Nie(p){return Dn(p).toUpperCase()}function Zie(p,f,w){if(p=Dn(p),p&&(w||f===n))return l6(p);if(!p||!(f=Na(f)))return p;var x=$o(p),L=$o(f),O=s6(x,L),ne=u6(x,L)+1;return Fu(x,O,ne).join("")}function Hie(p,f,w){if(p=Dn(p),p&&(w||f===n))return p.slice(0,d6(p)+1);if(!p||!(f=Na(f)))return p;var x=$o(p),L=u6(x,$o(f))+1;return Fu(x,0,L).join("")}function Xie(p,f,w){if(p=Dn(p),p&&(w||f===n))return p.replace(Kt,"");if(!p||!(f=Na(f)))return p;var x=$o(p),L=s6(x,$o(f));return Fu(x,L).join("")}function Lie(p,f){var w=v,x=k;if(Cr(f)){var L="separator"in f?f.separator:L;w="length"in f?qt(f.length):w,x="omission"in f?Na(f.omission):x}p=Dn(p);var O=p.length;if(yd(p)){var ne=$o(p);O=ne.length}if(w>=O)return p;var ce=w-Fd(x);if(ce<1)return x;var Ae=ne?Fu(ne,0,ce).join(""):p.slice(0,ce);if(L===n)return Ae+x;if(ne&&(ce+=Ae.length-ce),Hb(L)){if(p.slice(ce).search(L)){var ke,De=Ae;for(L.global||(L=qw(L.source,Dn(Xi.exec(L))+"g")),L.lastIndex=0;ke=L.exec(De);)var Xe=ke.index;Ae=Ae.slice(0,Xe===n?ce:Xe)}}else if(p.indexOf(Na(L),ce)!=ce){var gt=Ae.lastIndexOf(L);gt>-1&&(Ae=Ae.slice(0,gt))}return Ae+x}function Mie(p){return p=Dn(p),p&&Cn.test(p)?p.replace(Xt,fq):p}var Tie=Dd(function(p,f,w){return p+(w?" ":"")+f.toUpperCase()}),Mb=q6("toUpperCase");function _S(p,f,w){return p=Dn(p),f=w?n:f,f===n?cq(p)?Cq(p):tq(p):p.match(f)||[]}var $S=ln(function(p,f){try{return ka(p,n,f)}catch(w){return Zb(w)?w:new Jt(w)}}),Vie=Ws(function(p,f){return go(f,function(w){w=kl(w),Ks(p,w,Db(p[w],p))}),p});function Yie(p){var f=p==null?0:p.length,w=Vt();return p=f?gr(p,function(x){if(typeof x[1]!="function")throw new ho(o);return[w(x[0]),x[1]]}):[],ln(function(x){for(var L=-1;++LI)return[];var w=S,x=yi(p,S);f=Vt(f),p-=S;for(var L=jw(x,f);++w0||f<0)?new Bn(w):(p<0?w=w.takeRight(-p):p&&(w=w.drop(p)),f!==n&&(f=qt(f),w=f<0?w.dropRight(-f):w.take(f-p)),w)},Bn.prototype.takeRightWhile=function(p){return this.reverse().takeWhile(p).reverse()},Bn.prototype.toArray=function(){return this.take(S)},xl(Bn.prototype,function(p,f){var w=/^(?:filter|find|map|reject)|While$/.test(f),x=/^(?:head|last)$/.test(f),L=Y[x?"take"+(f=="last"?"Right":""):f],O=x||/^find/.test(f);L&&(Y.prototype[f]=function(){var ne=this.__wrapped__,ce=x?[1]:arguments,Ae=ne instanceof Bn,ke=ce[0],De=Ae||_t(ne),Xe=function(dn){var bn=L.apply(Y,bu([dn],ce));return x&>?bn[0]:bn};De&&w&&typeof ke=="function"&&ke.length!=1&&(Ae=De=!1);var gt=this.__chain__,xt=!!this.__actions__.length,Yt=O&&!gt,nn=Ae&&!xt;if(!O&&De){ne=nn?ne:new Bn(this);var It=p.apply(ne,ce);return It.__actions__.push({func:gA,args:[Xe],thisArg:n}),new fo(It,gt)}return Yt&&nn?p.apply(this,ce):(It=this.thru(Xe),Yt?x?It.value()[0]:It.value():It)})}),go(["pop","push","shift","sort","splice","unshift"],function(p){var f=Lm[p],w=/^(?:push|sort|unshift)$/.test(p)?"tap":"thru",x=/^(?:pop|shift)$/.test(p);Y.prototype[p]=function(){var L=arguments;if(x&&!this.__chain__){var O=this.value();return f.apply(_t(O)?O:[],L)}return this[w](function(ne){return f.apply(_t(ne)?ne:[],L)})}}),xl(Bn.prototype,function(p,f){var w=Y[f];if(w){var x=w.name+"";Ln.call(xd,x)||(xd[x]=[]),xd[x].push({name:f,func:w})}}),xd[oA(n,C).name]=[{name:"wrapper",func:n}],Bn.prototype.clone=Mq,Bn.prototype.reverse=Tq,Bn.prototype.value=Vq,Y.prototype.at=Ane,Y.prototype.chain=Cne,Y.prototype.commit=Bne,Y.prototype.next=wne,Y.prototype.plant=vne,Y.prototype.reverse=Kne,Y.prototype.toJSON=Y.prototype.valueOf=Y.prototype.value=Qne,Y.prototype.first=Y.prototype.head,lg&&(Y.prototype[lg]=bne),Y},Ed=Bq();jc?((jc.exports=Ed)._=Ed,Vw._=Ed):di._=Ed}).call(hn)})(iB,iB.exports);var gY=iB.exports;const yh=Fl(gY);function jf(){const e=window.navigator.platform.toUpperCase();return e.indexOf("MAC")>=0?"mac":e.indexOf("LINUX")>=0?"linux":e.indexOf("WIN")>=0?"windows":"unknown"}function _f(e){switch(jf()){case"mac":return e.metaKey;case"linux":case"windows":return e.ctrlKey;default:return e.metaKey}}function aB(){switch(jf()){case"mac":return"⌘";case"linux":case"windows":return"^";default:return"^"}}function d1e(){switch(jf()){case"mac":return"⌥";default:return"Alt"}}function nr(){return Vo("fontSize")??(to()?15:14)}function to(){return Vo("ide")==="jetbrains"}function p1e(e,t){const n=yh.cloneDeep(e);for(const r in t)typeof t[r]=="function"?yh.updateWith(n,r,t[r]):yh.updateWith(n,r,i=>t[r]);return n}const xE="--vscode-input-background",a3="--vscode-sideBar-background",GE="--vscode-editor-foreground",hY="--vscode-button-background",g1e="--vscode-button-foreground",fY="--vscode-editor-background",mY="--vscode-list-activeSelectionBackground",AY="--vscode-focus-border",CY="--vscode-quickInputList-focusForeground",BY="--vscode-quickInput-background",wY="--vscode-input-border",bY="--vscode-focusBorder",vY="--vscode-badge-background",KY="--vscode-badge-foreground",h1e="--vscode-sideBar-border",QY=[xE,a3,GE,hY,g1e,fY,mY,AY,CY,BY,wY,bY,vY,h1e,KY],jt="5px",rt="#646464",my="#1bbe84",yn=`var(${xE}, rgb(45 45 45))`,f1e=`var(${BY}, ${xE}, rgb(45 45 45))`,Gn=`var(${a3}, rgb(30 30 30))`,rn=`var(${GE}, #fff)`,WY=`var(${hY}, #1bbe84)`,q0=`var(${fY}, ${a3}, rgb(30 30 30))`,g1=`var(${mY}, #1bbe84)`,kE=`var(${AY}, #1bbe84)`,$f=`var(${CY}, ${GE})`,yY=`var(${wY}, ${rt})`,m1e=`var(${bY}, ${rt})`,ed=`var(${vY}, #1bbe84)`,A1e=`var(${KY}, #fff)`;if(typeof document<"u")for(const e of QY){if(to()){const n=localStorage.getItem(e);n&&document.body.style.setProperty(e,n)}const t=getComputedStyle(document.documentElement).getPropertyValue(e);e.startsWith("#")&&t.length>7&&document.body.style.setProperty(e,t.slice(0,7))}function C1e(e){e.startsWith("#")&&(e=e.slice(1)),e.length>6&&(e=e.slice(0,6));const t=parseInt(e.substring(0,2),16),n=parseInt(e.substring(2,4),16),r=parseInt(e.substring(4,6),16);return{r:t,g:n,b:r}}function B1e(e){const t=getComputedStyle(document.documentElement).getPropertyValue(e);return t.startsWith("#")?t.slice(0,7):"#"+t.slice(4,-1).split(",").map(i=>parseInt(i,10)).map(i=>i.toString(16)).map(i=>i.length===1?"0"+i:i).join("")}const Ea=Ve.button` padding: 10px 12px; margin: 8px 0; - border-radius: ${Pl}; + border-radius: ${jt}; border: none; - color: ${ec}; - background-color: ${wT}; + color: ${rn}; + background-color: ${WY}; &:disabled { color: gray; @@ -126,47 +154,70 @@ Error generating stack: `+d.message+` cursor: pointer; filter: brightness(1.2); } -`,NW=LI(zmI)` - font-size: 12px; - background-color: ${mZ}; - color: ${ec}; - border-radius: ${Pl}; - box-shadow: 0 0 1px 0 ${ec}; - padding: 2px; - padding-left: 4px; - padding-right: 4px; - z-index: 1000; +`,h1=Ve.button` + padding: 10px 12px; + margin: 8px 0; + border-radius: ${jt}; + + border: 1px solid ${yY}; + color: ${rn}; + background-color: ${Gn}; + + &:disabled { + color: gray; + } + + &:hover:enabled { + cursor: pointer; + background-color: ${yn}; + } +`,w1e=Ve.div` + scrollbar-base-color: transparent; + scrollbar-width: thin; + background-color: ${Gn}; - max-width: 80vw; -`,I0I=LI.textarea` + & * { + ::-webkit-scrollbar { + width: 4px; + } + + ::-webkit-scrollbar:horizontal { + height: 4px; + } + + ::-webkit-scrollbar-thumb { + border-radius: 2px; + } + } +`,b1e={fontSize:`${nr()-2}px`,backgroundColor:yn,boxShadow:`0px 0px 2px 1px ${ed}`,color:rn,padding:"2px 6px",zIndex:1e3,maxWidth:"80vw",textAlign:"center",overflow:"hidden"};function pc(e){return W.jsx(c1e,{...e,style:b1e})}const v1e=Ve.textarea` padding: 8px; font-family: inherit; - border-radius: ${Pl}; + border-radius: ${jt}; margin: 16px auto; height: auto; width: calc(100% - 32px); - background-color: ${Mc}; - color: ${ec}; + background-color: ${yn}; + color: ${rn}; z-index: 1; border: 1px solid transparent; resize: vertical; &:focus { - outline: 1px solid ${ul}; + outline: 1px solid ${rt}; border: 1px solid transparent; } &::placeholder { - color: ${ul}80; + color: ${rt}80; } -`;LI.pre` - border-radius: ${Pl}; +`;Ve.pre` + border-radius: ${jt}; padding: 8px; max-height: 150px; overflow-y: scroll; margin: 0; - background-color: ${fc}; + background-color: ${Gn}; border: none; /* text wrapping */ @@ -175,87 +226,77 @@ Error generating stack: `+d.message+` white-space: -pre-wrap; /* Opera 4-6 */ white-space: -o-pre-wrap; /* Opera 7 */ word-wrap: break-word; /* Internet Explorer 5.5+ */ -`;LI.h3` - background-color: ${Mc}; - border-radius: ${Pl}; +`;Ve.h3` + background-color: ${yn}; + border-radius: ${jt}; padding: 4px 8px; width: fit-content; -`;const nw=LI.hr` - border: 0.5px solid ${ul}; -`,Tu=LI.input` +`;const Ay=Ve.hr` + border: 0.5px solid ${rt}; +`,Cl=Ve.input` width: 100%; padding: 8px 12px; margin: 8px 0; box-sizing: border-box; - border-radius: ${Pl}; - outline: 1px solid ${ul}; + border-radius: ${jt}; + outline: 1px solid ${rt}; border: none; - background-color: ${fc}; - color: ${ec}; + background-color: ${Gn}; + color: ${rn}; &:focus { - background: ${Mc}; - outline: 1px solid ${wg}; + background: ${yn}; + outline: 1px solid ${kE}; } &:invalid { outline: 1px solid red; } -`,l0I=LI.input.attrs({type:"number"})` +`,K1e=Ve.input.attrs({type:"number"})` padding: 8px 12px; margin: 8px 4px; box-sizing: border-box; - border-radius: ${Pl}; - outline: 1px solid ${ul}; + border-radius: ${jt}; + outline: 1px solid ${rt}; border: none; - background-color: ${fc}; - color: ${ec}; + background-color: ${Gn}; + color: ${rn}; &:focus { - background: ${Mc}; + background: ${yn}; } -`;LI.select` +`;Ve.select` padding: 8px 12px; margin: 8px 0; box-sizing: border-box; - border-radius: ${Pl}; - outline: 1px solid ${ul}; + border-radius: ${jt}; + outline: 1px solid ${rt}; border: none; - background-color: ${fc}; - color: ${ec}; -`;LI.label` - font-size: ${I=>I.fontSize||Fn()}px; -`;const t4=Vg` + background-color: ${Gn}; + color: ${rn}; +`;Ve.label` + font-size: ${e=>e.fontSize||nr()}px; +`;const oG=n3` from { -webkit-transform: rotate(0deg); } to { -webkit-transform: rotate(360deg); } -`;LI.div` +`;Ve.div` border: 4px solid transparent; border-radius: 50%; border-top: 4px solid white; width: 36px; height: 36px; - -webkit-animation: ${t4} 1s ease-in-out infinite; - animation: ${t4} 1s ease-in-out infinite; + -webkit-animation: ${oG} 1s ease-in-out infinite; + animation: ${oG} 1s ease-in-out infinite; margin: auto; -`;LI.div` - border-radius: ${Pl}; - padding: ${I=>I.borderWidth||"1px"}; +`;Ve.div` + border-radius: ${jt}; + padding: ${e=>e.borderWidth||"1px"}; background-color: white; -`;LI.textarea` - padding: 8px; - font-size: 16px; - border-radius: ${Pl}; - border: 1px solid #ccc; - margin: 8px 8px; - background-color: ${fc}; - color: ${ec}; - outline: 1px solid orange; - resize: none; -`;Vg` +`;n3` from { opacity: 0; transform: translateY(-10px); @@ -264,13 +305,13 @@ Error generating stack: `+d.message+` opacity: 1; transform: translateY(0px); } -`;const c0I=LI.button` - background-color: ${({inverted:I})=>I?ec:"transparent"}; - color: ${({inverted:I})=>I?fc:ec}; +`;const Q1e=Ve.button` + background-color: ${({inverted:e,backgroundColor:t})=>t??(e?rn:"transparent")}; + color: ${({inverted:e})=>e?Gn:rn}; border: none; - border-radius: ${Pl}; - cursor: ${({disabled:I})=>I?"default":"pointer"}; + border-radius: ${jt}; + cursor: ${({disabled:e})=>e?"default":"pointer"}; &:focus { outline: none; @@ -278,348 +319,240 @@ Error generating stack: `+d.message+` } &:hover { - background-color: ${({inverted:I})=>typeof I>"u"||I?Mc:"transparent"}; + background-color: ${({inverted:e,hoverBackgroundColor:t})=>typeof e>"u"||e?t??yn:"transparent"}; } display: flex; align-items: center; justify-content: center; gap: 4px; padding: 2px; -`;function sG(I,l,c){E.useEffect(()=>{const G=async e=>{if(e.data.messageType===I){const d=await l(e.data.data);LmI(I,d,e.data.messageId)}};return window.addEventListener("message",G),()=>{window.removeEventListener("message",G)}},c??[])}const zs=1024,n4=4096,G0I=.5,e0I={maxTokens:zs,temperature:G0I},b4={"gpt-3.5-turbo":4096,"gpt-3.5-turbo-0613":4096,"gpt-3.5-turbo-16k":16384,"gpt-4":8192,"gpt-35-turbo-16k":16384,"gpt-35-turbo-0613":4096,"gpt-35-turbo":4096,"gpt-4-32k":32768,"gpt-4-turbo-preview":128e3,"gpt-4-vision":128e3,"gpt-4-0125-preview":128e3,"gpt-4-1106-preview":128e3},bw=350,Ir=I=>{const l=I.state.defaultModelTitle;return I.state.config.models.find(c=>c.title===l)};function tn(I){for(var l=arguments.length,c=Array(l>1?l-1:0),G=1;G3?l.i-4:l.i:Array.isArray(I)?1:Eg(I)?2:vg(I)?3:0}function Xm(I,l){return p0(I)===2?I.has(l):Object.prototype.hasOwnProperty.call(I,l)}function d0I(I,l){return p0(I)===2?I.get(l):I[l]}function ET(I,l,c){var G=p0(I);G===2?I.set(l,c):G===3?I.add(c):I[l]=c}function vT(I,l){return I===l?I!==0||1/I==1/l:I!=I&&l!=l}function Eg(I){return W0I&&I instanceof Map}function vg(I){return r0I&&I instanceof Set}function _Z(I){return I.o||I.t}function gg(I){if(Array.isArray(I))return Array.prototype.slice.call(I);var l=AT(I);delete l[nG];for(var c=Hm(l),G=0;G1&&(I.set=I.add=I.clear=I.delete=t0I),Object.freeze(I),l&&LW(I,function(c,G){return Ag(G,!0)},!0)),I}function t0I(){tn(2)}function yg(I){return I==null||typeof I!="object"||Object.isFrozen(I)}function _n(I){var l=rw[I];return l||tn(18,I),l}function n0I(I,l){rw[I]||(rw[I]=l)}function aw(){return ju}function NY(I,l){l&&(_n("Patches"),I.u=[],I.s=[],I.v=l)}function CV(I){Zw(I),I.p.forEach(b0I),I.p=null}function Zw(I){I===ju&&(ju=I.l)}function a4(I){return ju={p:[],l:ju,h:I,m:!0,_:0}}function b0I(I){var l=I[nG];l.i===0||l.i===1?l.j():l.g=!0}function RY(I,l){l._=l.p.length;var c=l.p[0],G=I!==void 0&&I!==c;return l.h.O||_n("ES5").S(l,I,G),G?(c[nG].P&&(CV(l),tn(4)),_b(I)&&(I=MV(l,I),l.l||fV(l,I)),l.u&&_n("Patches").M(c[nG].t,I,l.u,l.s)):I=MV(l,c,[]),CV(l),l.u&&l.v(l.u,l.s),I!==gT?I:void 0}function MV(I,l,c){if(yg(l))return l;var G=l[nG];if(!G)return LW(l,function(n,b){return Z4(I,G,l,n,b,c)},!0),l;if(G.A!==I)return l;if(!G.P)return fV(I,G.t,!0),G.t;if(!G.I){G.I=!0,G.A._--;var e=G.i===4||G.i===5?G.o=gg(G.k):G.o,d=e,t=!1;G.i===3&&(d=new Set(e),e.clear(),t=!0),LW(d,function(n,b){return Z4(I,G,e,n,b,c,t)}),fV(I,e,!1),c&&I.u&&_n("Patches").N(G,c,I.u,I.s)}return G.o}function Z4(I,l,c,G,e,d,t){if(sZ(e)){var n=MV(I,e,d&&l&&l.i!==3&&!Xm(l.R,G)?d.concat(G):void 0);if(ET(c,G,n),!sZ(n))return;I.m=!1}else t&&c.add(e);if(_b(e)&&!yg(e)){if(!I.h.D&&I._<1)return;MV(I,e),l&&l.A.l||fV(I,e)}}function fV(I,l,c){c===void 0&&(c=!1),!I.l&&I.h.D&&I.m&&Ag(l,c)}function YY(I,l){var c=I[nG];return(c?_Z(c):I)[l]}function W4(I,l){if(l in I)for(var c=Object.getPrototypeOf(I);c;){var G=Object.getOwnPropertyDescriptor(c,l);if(G)return G;c=Object.getPrototypeOf(c)}}function ya(I){I.P||(I.P=!0,I.l&&ya(I.l))}function XY(I){I.o||(I.o=gg(I.t))}function Ww(I,l,c){var G=Eg(l)?_n("MapSet").F(l,c):vg(l)?_n("MapSet").T(l,c):I.O?function(e,d){var t=Array.isArray(e),n={i:t?1:0,A:d?d.A:aw(),P:!1,I:!1,R:{},l:d,t:e,k:null,o:null,j:null,C:!1},b=n,a=Du;t&&(b=[n],a=Us);var Z=Proxy.revocable(b,a),W=Z.revoke,m=Z.proxy;return n.k=m,n.j=W,m}(l,c):_n("ES5").J(l,c);return(c?c.A:aw()).p.push(G),G}function a0I(I){return sZ(I)||tn(22,I),function l(c){if(!_b(c))return c;var G,e=c[nG],d=p0(c);if(e){if(!e.P&&(e.i<4||!_n("ES5").K(e)))return e.t;e.I=!0,G=r4(c,d),e.I=!1}else G=r4(c,d);return LW(G,function(t,n){e&&d0I(e.t,t)===n||ET(G,t,l(n))}),d===3?new Set(G):G}(I)}function r4(I,l){switch(l){case 2:return new Map(I);case 3:return Array.from(I)}return gg(I)}function Z0I(){function I(d,t){var n=e[d];return n?n.enumerable=t:e[d]=n={configurable:!0,enumerable:t,get:function(){var b=this[nG];return Du.get(b,d)},set:function(b){var a=this[nG];Du.set(a,d,b)}},n}function l(d){for(var t=d.length-1;t>=0;t--){var n=d[t][nG];if(!n.P)switch(n.i){case 5:G(n)&&ya(n);break;case 4:c(n)&&ya(n)}}}function c(d){for(var t=d.t,n=d.k,b=Hm(n),a=b.length-1;a>=0;a--){var Z=b[a];if(Z!==nG){var W=t[Z];if(W===void 0&&!Xm(t,Z))return!0;var m=n[Z],s=m&&m[nG];if(s?s.t!==W:!vT(m,W))return!0}}var h=!!t[nG];return b.length!==Hm(t).length+(h?0:1)}function G(d){var t=d.k;if(t.length!==d.t.length)return!0;var n=Object.getOwnPropertyDescriptor(t,t.length-1);if(n&&!n.get)return!0;for(var b=0;b1?o-1:0),X=1;X1?Z-1:0),m=1;m=0;e--){var d=G[e];if(d.path.length===0&&d.op==="replace"){c=d.value;break}}e>-1&&(G=G.slice(e+1));var t=_n("Patches").$;return sZ(c)?t(c,G):this.produce(c,function(n){return t(n,G)})},I}(),_d=new s0I,yT=_d.produce;_d.produceWithPatches.bind(_d);_d.setAutoFreeze.bind(_d);_d.setUseProxies.bind(_d);_d.applyPatches.bind(_d);_d.createDraft.bind(_d);_d.finishDraft.bind(_d);function Ou(I){"@babel/helpers - typeof";return Ou=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(l){return typeof l}:function(l){return l&&typeof Symbol=="function"&&l.constructor===Symbol&&l!==Symbol.prototype?"symbol":typeof l},Ou(I)}function u0I(I,l){if(Ou(I)!="object"||!I)return I;var c=I[Symbol.toPrimitive];if(c!==void 0){var G=c.call(I,l||"default");if(Ou(G)!="object")return G;throw new TypeError("@@toPrimitive must return a primitive value.")}return(l==="string"?String:Number)(I)}function h0I(I){var l=u0I(I,"string");return Ou(l)=="symbol"?l:l+""}function p0I(I,l,c){return l=h0I(l),l in I?Object.defineProperty(I,l,{value:c,enumerable:!0,configurable:!0,writable:!0}):I[l]=c,I}function h4(I,l){var c=Object.keys(I);if(Object.getOwnPropertySymbols){var G=Object.getOwnPropertySymbols(I);l&&(G=G.filter(function(e){return Object.getOwnPropertyDescriptor(I,e).enumerable})),c.push.apply(c,G)}return c}function p4(I){for(var l=1;l"u"&&(c=l,l=void 0),typeof c<"u"){if(typeof c!="function")throw new Error(ve(1));return c(Bg)(I,l)}if(typeof I!="function")throw new Error(ve(2));var e=I,d=l,t=[],n=t,b=!1;function a(){n===t&&(n=t.slice())}function Z(){if(b)throw new Error(ve(3));return d}function W(p){if(typeof p!="function")throw new Error(ve(4));if(b)throw new Error(ve(5));var V=!0;return a(),n.push(p),function(){if(V){if(b)throw new Error(ve(6));V=!1,a();var F=n.indexOf(p);n.splice(F,1),t=null}}}function m(p){if(!o0I(p))throw new Error(ve(7));if(typeof p.type>"u")throw new Error(ve(8));if(b)throw new Error(ve(9));try{b=!0,d=e(d,p)}finally{b=!1}for(var V=t=n,o=0;o"u")throw new Error(ve(12));if(typeof c(void 0,{type:KV.PROBE_UNKNOWN_ACTION()})>"u")throw new Error(ve(13))})}function kg(I){for(var l=Object.keys(I),c={},G=0;G"u")throw a&&a.type,new Error(ve(14));W[s]=V,Z=Z||V!==p}return Z=Z||d.length!==Object.keys(b).length,Z?W:b}}function LV(){for(var I=arguments.length,l=new Array(I),c=0;c-1){var a=c[b];return b>0&&(c.splice(b,1),c.unshift(a)),a.value}return SV}function e(n,b){G(n)===SV&&(c.unshift({key:n,value:b}),c.length>I&&c.pop())}function d(){return c}function t(){c=[]}return{get:G,put:e,getEntries:d,clear:t}}var R0I=function(l,c){return l===c};function Y0I(I){return function(c,G){if(c===null||G===null||c.length!==G.length)return!1;for(var e=c.length,d=0;d1?l-1:0),G=1;G0&&d[d.length-1])&&(a[0]===6||a[0]===2)){c=0;continue}if(a[0]===3&&(!d||a[1]>d[0]&&a[1]{I.bottomMessage=l.payload},setBottomMessageCloseTimeout:(I,l)=>{I.bottomMessageCloseTimeout&&clearTimeout(I.bottomMessageCloseTimeout),I.bottomMessageCloseTimeout=l.payload},setDialogMessage:(I,l)=>{I.dialogMessage=l.payload},setDialogEntryOn:(I,l)=>{I.dialogEntryOn=l.payload},setShowDialog:(I,l)=>{I.showDialog=l.payload},setDisplayBottomMessageOnBottom:(I,l)=>{I.displayBottomMessageOnBottom=l.payload}}}),{setBottomMessage:$0I,setBottomMessageCloseTimeout:IsI,setDialogMessage:RW,setDialogEntryOn:lsI,setShowDialog:hn,setDisplayBottomMessageOnBottom:Fbl}=UT.actions,csI=UT.reducer;function sw(I){const l=localStorage.getItem(I);if(l!==null)return JSON.parse(l)}function TV(I,l){localStorage.setItem(I,JSON.stringify(l))}const le=Gl.forwardRef((I,l)=>{const[c,G]=E.useState(!1),e=cb(),d=document.getElementById("tooltip-portal-div");return v.jsxs(v.Fragment,{children:[v.jsx(c0I,{"data-tooltip-id":`header_button_${e}`,inverted:I.inverted,disabled:I.disabled,onMouseEnter:()=>{I.disabled||G(!0)},onMouseLeave:()=>{G(!1)},onClick:I.onClick,onKeyDown:I.onKeyDown,className:I.className,style:I.style,ref:l,tabIndex:I.tabIndex,children:I.children}),d&&fb.createPortal(v.jsx(NW,{id:`header_button_${e}`,place:"bottom",children:I.text}),d)]})});function Y4(I){const l=[],c=String(I||"");let G=c.indexOf(","),e=0,d=!1;for(;!d;){G===-1&&(G=c.length,d=!0);const t=c.slice(e,G).trim();(t||!d)&&l.push(t),e=G+1,G=c.indexOf(",",e)}return l}function GsI(I,l){const c=l||{};return(I[I.length-1]===""?[...I,""]:I).join((c.padRight?" ":"")+","+(c.padLeft===!1?"":" ")).trim()}const esI=/^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,dsI=/^[$_\p{ID_Start}][-$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,tsI={};function X4(I,l){return((l||tsI).jsx?dsI:esI).test(I)}const nsI=/[ \t\n\f\r]/g;function bsI(I){return typeof I=="object"?I.type==="text"?H4(I.value):!1:H4(I)}function H4(I){return I.replace(nsI,"")===""}let Jh=class{constructor(l,c,G){this.property=l,this.normal=c,G&&(this.space=G)}};Jh.prototype.property={};Jh.prototype.normal={};Jh.prototype.space=null;function CT(I,l){const c={},G={};let e=-1;for(;++e4&&c.slice(0,4)==="data"&&msI.test(l)){if(l.charAt(4)==="-"){const d=l.slice(5).replace(w4,hsI);G="data"+d.charAt(0).toUpperCase()+d.slice(1)}else{const d=l.slice(4);if(!w4.test(d)){let t=d.replace(ssI,usI);t.charAt(0)!=="-"&&(t="-"+t),l="data"+t}}e=zg}return new e(G,l)}function usI(I){return"-"+I.toLowerCase()}function hsI(I){return I.charAt(1).toUpperCase()}const psI={classId:"classID",dataType:"datatype",itemId:"itemID",strokeDashArray:"strokeDasharray",strokeDashOffset:"strokeDashoffset",strokeLineCap:"strokeLinecap",strokeLineJoin:"strokeLinejoin",strokeMiterLimit:"strokeMiterlimit",typeOf:"typeof",xLinkActuate:"xlinkActuate",xLinkArcRole:"xlinkArcrole",xLinkHref:"xlinkHref",xLinkRole:"xlinkRole",xLinkShow:"xlinkShow",xLinkTitle:"xlinkTitle",xLinkType:"xlinkType",xmlnsXLink:"xmlnsXlink"},OT=CT([KT,fT,TT,jT,WsI],"html"),$F=CT([KT,fT,TT,jT,rsI],"svg");function E4(I){const l=String(I||"").trim();return l?l.split(/[ \t\n\r\f]+/g):[]}function osI(I){return I.join(" ").trim()}var PT={},v4=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,VsI=/\n/g,isI=/^\s*/,FsI=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,NsI=/^:\s*/,RsI=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,YsI=/^[;\s]*/,XsI=/^\s+|\s+$/g,HsI=` -`,g4="/",A4="*",lW="",QsI="comment",wsI="declaration",EsI=function(I,l){if(typeof I!="string")throw new TypeError("First argument must be a string");if(!I)return[];l=l||{};var c=1,G=1;function e(h){var p=h.match(VsI);p&&(c+=p.length);var V=h.lastIndexOf(HsI);G=~V?h.length-V:G+h.length}function d(){var h={line:c,column:G};return function(p){return p.position=new t(h),a(),p}}function t(h){this.start=h,this.end={line:c,column:G},this.source=l.source}t.prototype.content=I;function n(h){var p=new Error(l.source+":"+c+":"+G+": "+h);if(p.reason=h,p.filename=l.source,p.line=c,p.column=G,p.source=I,!l.silent)throw p}function b(h){var p=h.exec(I);if(p){var V=p[0];return e(V),I=I.slice(V.length),p}}function a(){b(isI)}function Z(h){var p;for(h=h||[];p=W();)p!==!1&&h.push(p);return h}function W(){var h=d();if(!(g4!=I.charAt(0)||A4!=I.charAt(1))){for(var p=2;lW!=I.charAt(p)&&(A4!=I.charAt(p)||g4!=I.charAt(p+1));)++p;if(p+=2,lW===I.charAt(p-1))return n("End of comment missing");var V=I.slice(2,p-2);return G+=2,e(V),I=I.slice(p),G+=2,h({type:QsI,comment:V})}}function m(){var h=d(),p=b(FsI);if(p){if(W(),!b(NsI))return n("property missing ':'");var V=b(RsI),o=h({type:wsI,property:y4(p[0].replace(v4,lW)),value:V?y4(V[0].replace(v4,lW)):lW});return b(YsI),o}}function s(){var h=[];Z(h);for(var p;p=m();)p!==!1&&(h.push(p),Z(h));return h}return a(),s()};function y4(I){return I?I.replace(XsI,lW):lW}var vsI=sc&&sc.__importDefault||function(I){return I&&I.__esModule?I:{default:I}};Object.defineProperty(PT,"__esModule",{value:!0});var gsI=vsI(EsI);function AsI(I,l){var c=null;if(!I||typeof I!="string")return c;var G=(0,gsI.default)(I),e=typeof l=="function";return G.forEach(function(d){if(d.type==="declaration"){var t=d.property,n=d.value;e?l(t,n,d):n&&(c=c||{},c[t]=n)}}),c}var J4=PT.default=AsI;const ysI=J4.default||J4,_T=qT("end"),Ug=qT("start");function qT(I){return l;function l(c){const G=c&&c.position&&c.position[I]||{};if(typeof G.line=="number"&&G.line>0&&typeof G.column=="number"&&G.column>0)return{line:G.line,column:G.column,offset:typeof G.offset=="number"&&G.offset>-1?G.offset:void 0}}}function JsI(I){const l=Ug(I),c=_T(I);if(l&&c)return{start:l,end:c}}function tu(I){return!I||typeof I!="object"?"":"position"in I||"type"in I?B4(I.position):"start"in I||"end"in I?B4(I):"line"in I||"column"in I?hw(I):""}function hw(I){return k4(I&&I.line)+":"+k4(I&&I.column)}function B4(I){return hw(I&&I.start)+"-"+hw(I&&I.end)}function k4(I){return I&&typeof I=="number"?I:1}class ke extends Error{constructor(l,c,G){super(),typeof c=="string"&&(G=c,c=void 0);let e="",d={},t=!1;if(c&&("line"in c&&"column"in c?d={place:c}:"start"in c&&"end"in c?d={place:c}:"type"in c?d={ancestors:[c],place:c.position}:d={...c}),typeof l=="string"?e=l:!d.cause&&l&&(t=!0,e=l.message,d.cause=l),!d.ruleId&&!d.source&&typeof G=="string"){const b=G.indexOf(":");b===-1?d.ruleId=G:(d.source=G.slice(0,b),d.ruleId=G.slice(b+1))}if(!d.place&&d.ancestors&&d.ancestors){const b=d.ancestors[d.ancestors.length-1];b&&(d.place=b.position)}const n=d.place&&"start"in d.place?d.place.start:d.place;this.ancestors=d.ancestors||void 0,this.cause=d.cause||void 0,this.column=n?n.column:void 0,this.fatal=void 0,this.file,this.message=e,this.line=n?n.line:void 0,this.name=tu(d.place)||"1:1",this.place=d.place||void 0,this.reason=this.message,this.ruleId=d.ruleId||void 0,this.source=d.source||void 0,this.stack=t&&d.cause&&typeof d.cause.stack=="string"?d.cause.stack:"",this.actual,this.expected,this.note,this.url}}ke.prototype.file="";ke.prototype.name="";ke.prototype.reason="";ke.prototype.message="";ke.prototype.stack="";ke.prototype.column=void 0;ke.prototype.line=void 0;ke.prototype.ancestors=void 0;ke.prototype.cause=void 0;ke.prototype.fatal=void 0;ke.prototype.place=void 0;ke.prototype.ruleId=void 0;ke.prototype.source=void 0;const Cg={}.hasOwnProperty,BsI=new Map,ksI=/[A-Z]/g,xsI=/-([a-z])/g,zsI=new Set(["table","tbody","thead","tfoot","tr"]),UsI=new Set(["td","th"]),$T="https://github.com/syntax-tree/hast-util-to-jsx-runtime";function CsI(I,l){if(!l||l.Fragment===void 0)throw new TypeError("Expected `Fragment` in options");const c=l.filePath||void 0;let G;if(l.development){if(typeof l.jsxDEV!="function")throw new TypeError("Expected `jsxDEV` in options when `development: true`");G=DsI(c,l.jsxDEV)}else{if(typeof l.jsx!="function")throw new TypeError("Expected `jsx` in production options");if(typeof l.jsxs!="function")throw new TypeError("Expected `jsxs` in production options");G=jsI(c,l.jsx,l.jsxs)}const e={Fragment:l.Fragment,ancestors:[],components:l.components||{},create:G,elementAttributeNameCase:l.elementAttributeNameCase||"react",evaluater:l.createEvaluater?l.createEvaluater():void 0,filePath:c,ignoreInvalidStyle:l.ignoreInvalidStyle||!1,passKeys:l.passKeys!==!1,passNode:l.passNode||!1,schema:l.space==="svg"?$F:OT,stylePropertyNameCase:l.stylePropertyNameCase||"dom",tableCellAlignToStyle:l.tableCellAlignToStyle!==!1},d=Ij(e,I,void 0);return d&&typeof d!="string"?d:e.create(I,e.Fragment,{children:d||void 0},void 0)}function Ij(I,l,c){if(l.type==="element")return MsI(I,l,c);if(l.type==="mdxFlowExpression"||l.type==="mdxTextExpression")return fsI(I,l);if(l.type==="mdxJsxFlowElement"||l.type==="mdxJsxTextElement")return LsI(I,l,c);if(l.type==="mdxjsEsm")return KsI(I,l);if(l.type==="root")return SsI(I,l,c);if(l.type==="text")return TsI(I,l)}function MsI(I,l,c){const G=I.schema;let e=G;l.tagName.toLowerCase()==="svg"&&G.space==="html"&&(e=$F,I.schema=e),I.ancestors.push(l);const d=cj(I,l.tagName,!1),t=OsI(I,l);let n=fg(I,l);return zsI.has(l.tagName)&&(n=n.filter(function(b){return typeof b=="string"?!bsI(b):!0})),lj(I,t,d,l),Mg(t,n),I.ancestors.pop(),I.schema=G,I.create(l,d,t,c)}function fsI(I,l){if(l.data&&l.data.estree&&I.evaluater){const G=l.data.estree.body[0];return G.type,I.evaluater.evaluateExpression(G.expression)}_u(I,l.position)}function KsI(I,l){if(l.data&&l.data.estree&&I.evaluater)return I.evaluater.evaluateProgram(l.data.estree);_u(I,l.position)}function LsI(I,l,c){const G=I.schema;let e=G;l.name==="svg"&&G.space==="html"&&(e=$F,I.schema=e),I.ancestors.push(l);const d=l.name===null?I.Fragment:cj(I,l.name,!0),t=PsI(I,l),n=fg(I,l);return lj(I,t,d,l),Mg(t,n),I.ancestors.pop(),I.schema=G,I.create(l,d,t,c)}function SsI(I,l,c){const G={};return Mg(G,fg(I,l)),I.create(l,I.Fragment,G,c)}function TsI(I,l){return l.value}function lj(I,l,c,G){typeof c!="string"&&c!==I.Fragment&&I.passNode&&(l.node=G)}function Mg(I,l){if(l.length>0){const c=l.length>1?l:l[0];c&&(I.children=c)}}function jsI(I,l,c){return G;function G(e,d,t,n){const a=Array.isArray(t.children)?c:l;return n?a(d,t,n):a(d,t)}}function DsI(I,l){return c;function c(G,e,d,t){const n=Array.isArray(d.children),b=Ug(G);return l(e,d,t,n,{columnNumber:b?b.column-1:void 0,fileName:I,lineNumber:b?b.line:void 0},void 0)}}function OsI(I,l){const c={};let G,e;for(e in l.properties)if(e!=="children"&&Cg.call(l.properties,e)){const d=_sI(I,e,l.properties[e]);if(d){const[t,n]=d;I.tableCellAlignToStyle&&t==="align"&&typeof n=="string"&&UsI.has(l.tagName)?G=n:c[t]=n}}if(G){const d=c.style||(c.style={});d[I.stylePropertyNameCase==="css"?"text-align":"textAlign"]=G}return c}function PsI(I,l){const c={};for(const G of l.attributes)if(G.type==="mdxJsxExpressionAttribute")if(G.data&&G.data.estree&&I.evaluater){const d=G.data.estree.body[0];d.type;const t=d.expression;t.type;const n=t.properties[0];n.type,Object.assign(c,I.evaluater.evaluateExpression(n.argument))}else _u(I,l.position);else{const e=G.name;let d;if(G.value&&typeof G.value=="object")if(G.value.data&&G.value.data.estree&&I.evaluater){const n=G.value.data.estree.body[0];n.type,d=I.evaluater.evaluateExpression(n.expression)}else _u(I,l.position);else d=G.value===null?!0:G.value;c[e]=d}return c}function fg(I,l){const c=[];let G=-1;const e=I.passKeys?new Map:BsI;for(;++Ge?0:e+l:l=l>e?e:l,c=c>0?c:0,G.length<1e4)t=Array.from(G),t.unshift(l,c),I.splice(...t);else for(c&&I.splice(l,c);d0?(Gb(I,I.length,0,l),I):l}const U4={}.hasOwnProperty;function tuI(I){const l={};let c=-1;for(;++c13&&c<32||c>126&&c<160||c>55295&&c<57344||c>64975&&c<65008||(c&65535)===65535||(c&65535)===65534||c>1114111?"�":String.fromCodePoint(c)}function wm(I){return I.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}const Un=YZ(/[A-Za-z]/),Sd=YZ(/[\dA-Za-z]/),auI=YZ(/[#-'*+\--9=?A-Z^-~]/);function pw(I){return I!==null&&(I<32||I===127)}const ow=YZ(/\d/),ZuI=YZ(/[\dA-Fa-f]/),WuI=YZ(/[!-/:-@[-`{-~]/);function Jl(I){return I!==null&&I<-2}function Nd(I){return I!==null&&(I<0||I===32)}function vc(I){return I===-2||I===-1||I===32}const ruI=YZ(/\p{P}|\p{S}/u),muI=YZ(/\s/);function YZ(I){return l;function l(c){return c!==null&&c>-1&&I.test(String.fromCharCode(c))}}function V0(I){const l=[];let c=-1,G=0,e=0;for(;++c55295&&d<57344){const n=I.charCodeAt(c+1);d<56320&&n>56319&&n<57344?(t=String.fromCharCode(d,n),e=1):t="�"}else t=String.fromCharCode(d);t&&(l.push(I.slice(G,c),encodeURIComponent(t)),G=c+e+1,t=""),e&&(c+=e,e=0)}return l.join("")+I.slice(G)}function Ac(I,l,c,G){const e=G?G-1:Number.POSITIVE_INFINITY;let d=0;return t;function t(b){return vc(b)?(I.enter(c),n(b)):l(b)}function n(b){return vc(b)&&d++t))return;const B=l.events.length;let C=B,k,N;for(;C--;)if(l.events[C][0]==="exit"&&l.events[C][1].type==="chunkFlow"){if(k){N=l.events[C][1].end;break}k=!0}for(o(G),R=B;RX;){const Y=c[H];l.containerState=Y[1],Y[0].exit.call(l,I)}c.length=X}function F(){e.write([null]),d=void 0,e=void 0,l.containerState._closeFlow=void 0}}function ouI(I,l,c){return Ac(I,I.attempt(this.parser.constructs.document,l,c),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function M4(I){if(I===null||Nd(I)||muI(I))return 1;if(ruI(I))return 2}function Lg(I,l,c){const G=[];let e=-1;for(;++e1&&I[c][1].end.offset-I[c][1].start.offset>1?2:1;const W=Object.assign({},I[G][1].end),m=Object.assign({},I[c][1].start);f4(W,-b),f4(m,b),t={type:b>1?"strongSequence":"emphasisSequence",start:W,end:Object.assign({},I[G][1].end)},n={type:b>1?"strongSequence":"emphasisSequence",start:Object.assign({},I[c][1].start),end:m},d={type:b>1?"strongText":"emphasisText",start:Object.assign({},I[G][1].end),end:Object.assign({},I[c][1].start)},e={type:b>1?"strong":"emphasis",start:Object.assign({},t.start),end:Object.assign({},n.end)},I[G][1].end=Object.assign({},t.start),I[c][1].start=Object.assign({},n.end),a=[],I[G][1].end.offset-I[G][1].start.offset&&(a=Xt(a,[["enter",I[G][1],l],["exit",I[G][1],l]])),a=Xt(a,[["enter",e,l],["enter",t,l],["exit",t,l],["enter",d,l]]),a=Xt(a,Lg(l.parser.constructs.insideSpan.null,I.slice(G+1,c),l)),a=Xt(a,[["exit",d,l],["enter",n,l],["exit",n,l],["exit",e,l]]),I[c][1].end.offset-I[c][1].start.offset?(Z=2,a=Xt(a,[["enter",I[c][1],l],["exit",I[c][1],l]])):Z=0,Gb(I,G-1,c-G+3,a),c=G+a.length-Z-2;break}}for(c=-1;++c0&&vc(R)?Ac(I,F,"linePrefix",d+1)(R):F(R)}function F(R){return R===null||Jl(R)?I.check(K4,p,H)(R):(I.enter("codeFlowValue"),X(R))}function X(R){return R===null||Jl(R)?(I.exit("codeFlowValue"),F(R)):(I.consume(R),X)}function H(R){return I.exit("codeFenced"),l(R)}function Y(R,B,C){let k=0;return N;function N(O){return R.enter("lineEnding"),R.consume(O),R.exit("lineEnding"),J}function J(O){return R.enter("codeFencedFence"),vc(O)?Ac(R,A,"linePrefix",G.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(O):A(O)}function A(O){return O===n?(R.enter("codeFencedFenceSequence"),M(O)):C(O)}function M(O){return O===n?(k++,R.consume(O),M):k>=t?(R.exit("codeFencedFenceSequence"),vc(O)?Ac(R,D,"whitespace")(O):D(O)):C(O)}function D(O){return O===null||Jl(O)?(R.exit("codeFencedFence"),B(O)):C(O)}}}function vuI(I,l,c){const G=this;return e;function e(t){return t===null?c(t):(I.enter("lineEnding"),I.consume(t),I.exit("lineEnding"),d)}function d(t){return G.parser.lazy[G.now().line]?c(t):l(t)}}const gY={name:"codeIndented",tokenize:AuI},guI={tokenize:yuI,partial:!0};function AuI(I,l,c){const G=this;return e;function e(a){return I.enter("codeIndented"),Ac(I,d,"linePrefix",4+1)(a)}function d(a){const Z=G.events[G.events.length-1];return Z&&Z[1].type==="linePrefix"&&Z[2].sliceSerialize(Z[1],!0).length>=4?t(a):c(a)}function t(a){return a===null?b(a):Jl(a)?I.attempt(guI,t,b)(a):(I.enter("codeFlowValue"),n(a))}function n(a){return a===null||Jl(a)?(I.exit("codeFlowValue"),t(a)):(I.consume(a),n)}function b(a){return I.exit("codeIndented"),l(a)}}function yuI(I,l,c){const G=this;return e;function e(t){return G.parser.lazy[G.now().line]?c(t):Jl(t)?(I.enter("lineEnding"),I.consume(t),I.exit("lineEnding"),e):Ac(I,d,"linePrefix",4+1)(t)}function d(t){const n=G.events[G.events.length-1];return n&&n[1].type==="linePrefix"&&n[2].sliceSerialize(n[1],!0).length>=4?l(t):Jl(t)?e(t):c(t)}}const JuI={name:"codeText",tokenize:xuI,resolve:BuI,previous:kuI};function BuI(I){let l=I.length-4,c=3,G,e;if((I[c][1].type==="lineEnding"||I[c][1].type==="space")&&(I[l][1].type==="lineEnding"||I[l][1].type==="space")){for(G=c;++G=4?l(t):I.interrupt(G.parser.constructs.flow,c,l)(t)}}function aj(I,l,c,G,e,d,t,n,b){const a=b||Number.POSITIVE_INFINITY;let Z=0;return W;function W(o){return o===60?(I.enter(G),I.enter(e),I.enter(d),I.consume(o),I.exit(d),m):o===null||o===32||o===41||pw(o)?c(o):(I.enter(G),I.enter(t),I.enter(n),I.enter("chunkString",{contentType:"string"}),p(o))}function m(o){return o===62?(I.enter(d),I.consume(o),I.exit(d),I.exit(e),I.exit(G),l):(I.enter(n),I.enter("chunkString",{contentType:"string"}),s(o))}function s(o){return o===62?(I.exit("chunkString"),I.exit(n),m(o)):o===null||o===60||Jl(o)?c(o):(I.consume(o),o===92?h:s)}function h(o){return o===60||o===62||o===92?(I.consume(o),s):s(o)}function p(o){return!Z&&(o===null||o===41||Nd(o))?(I.exit("chunkString"),I.exit(n),I.exit(t),I.exit(G),l(o)):Z999||s===null||s===91||s===93&&!b||s===94&&!n&&"_hiddenFootnoteSupport"in t.parser.constructs?c(s):s===93?(I.exit(d),I.enter(e),I.consume(s),I.exit(e),I.exit(G),l):Jl(s)?(I.enter("lineEnding"),I.consume(s),I.exit("lineEnding"),Z):(I.enter("chunkString",{contentType:"string"}),W(s))}function W(s){return s===null||s===91||s===93||Jl(s)||n++>999?(I.exit("chunkString"),Z(s)):(I.consume(s),b||(b=!vc(s)),s===92?m:W)}function m(s){return s===91||s===92||s===93?(I.consume(s),n++,W):W(s)}}function Wj(I,l,c,G,e,d){let t;return n;function n(m){return m===34||m===39||m===40?(I.enter(G),I.enter(e),I.consume(m),I.exit(e),t=m===40?41:m,b):c(m)}function b(m){return m===t?(I.enter(e),I.consume(m),I.exit(e),I.exit(G),l):(I.enter(d),a(m))}function a(m){return m===t?(I.exit(d),b(t)):m===null?c(m):Jl(m)?(I.enter("lineEnding"),I.consume(m),I.exit("lineEnding"),Ac(I,a,"linePrefix")):(I.enter("chunkString",{contentType:"string"}),Z(m))}function Z(m){return m===t||m===null||Jl(m)?(I.exit("chunkString"),a(m)):(I.consume(m),m===92?W:Z)}function W(m){return m===t||m===92?(I.consume(m),Z):Z(m)}}function nu(I,l){let c;return G;function G(e){return Jl(e)?(I.enter("lineEnding"),I.consume(e),I.exit("lineEnding"),c=!0,G):vc(e)?Ac(I,G,c?"linePrefix":"lineSuffix")(e):l(e)}}const LuI={name:"definition",tokenize:TuI},SuI={tokenize:juI,partial:!0};function TuI(I,l,c){const G=this;let e;return d;function d(s){return I.enter("definition"),t(s)}function t(s){return Zj.call(G,I,n,c,"definitionLabel","definitionLabelMarker","definitionLabelString")(s)}function n(s){return e=wm(G.sliceSerialize(G.events[G.events.length-1][1]).slice(1,-1)),s===58?(I.enter("definitionMarker"),I.consume(s),I.exit("definitionMarker"),b):c(s)}function b(s){return Nd(s)?nu(I,a)(s):a(s)}function a(s){return aj(I,Z,c,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(s)}function Z(s){return I.attempt(SuI,W,W)(s)}function W(s){return vc(s)?Ac(I,m,"whitespace")(s):m(s)}function m(s){return s===null||Jl(s)?(I.exit("definition"),G.parser.defined.push(e),l(s)):c(s)}}function juI(I,l,c){return G;function G(n){return Nd(n)?nu(I,e)(n):c(n)}function e(n){return Wj(I,d,c,"definitionTitle","definitionTitleMarker","definitionTitleString")(n)}function d(n){return vc(n)?Ac(I,t,"whitespace")(n):t(n)}function t(n){return n===null||Jl(n)?l(n):c(n)}}const DuI={name:"hardBreakEscape",tokenize:OuI};function OuI(I,l,c){return G;function G(d){return I.enter("hardBreakEscape"),I.consume(d),e}function e(d){return Jl(d)?(I.exit("hardBreakEscape"),l(d)):c(d)}}const PuI={name:"headingAtx",tokenize:quI,resolve:_uI};function _uI(I,l){let c=I.length-2,G=3,e,d;return I[G][1].type==="whitespace"&&(G+=2),c-2>G&&I[c][1].type==="whitespace"&&(c-=2),I[c][1].type==="atxHeadingSequence"&&(G===c-1||c-4>G&&I[c-2][1].type==="whitespace")&&(c-=G+1===c?2:4),c>G&&(e={type:"atxHeadingText",start:I[G][1].start,end:I[c][1].end},d={type:"chunkText",start:I[G][1].start,end:I[c][1].end,contentType:"text"},Gb(I,G,c-G+1,[["enter",e,l],["enter",d,l],["exit",d,l],["exit",e,l]])),I}function quI(I,l,c){let G=0;return e;function e(Z){return I.enter("atxHeading"),d(Z)}function d(Z){return I.enter("atxHeadingSequence"),t(Z)}function t(Z){return Z===35&&G++<6?(I.consume(Z),t):Z===null||Nd(Z)?(I.exit("atxHeadingSequence"),n(Z)):c(Z)}function n(Z){return Z===35?(I.enter("atxHeadingSequence"),b(Z)):Z===null||Jl(Z)?(I.exit("atxHeading"),l(Z)):vc(Z)?Ac(I,n,"whitespace")(Z):(I.enter("atxHeadingText"),a(Z))}function b(Z){return Z===35?(I.consume(Z),b):(I.exit("atxHeadingSequence"),n(Z))}function a(Z){return Z===null||Z===35||Nd(Z)?(I.exit("atxHeadingText"),n(Z)):(I.consume(Z),a)}}const $uI=["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","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","search","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],S4=["pre","script","style","textarea"],IhI={name:"htmlFlow",tokenize:ehI,resolveTo:GhI,concrete:!0},lhI={tokenize:thI,partial:!0},chI={tokenize:dhI,partial:!0};function GhI(I){let l=I.length;for(;l--&&!(I[l][0]==="enter"&&I[l][1].type==="htmlFlow"););return l>1&&I[l-2][1].type==="linePrefix"&&(I[l][1].start=I[l-2][1].start,I[l+1][1].start=I[l-2][1].start,I.splice(l-2,2)),I}function ehI(I,l,c){const G=this;let e,d,t,n,b;return a;function a(f){return Z(f)}function Z(f){return I.enter("htmlFlow"),I.enter("htmlFlowData"),I.consume(f),W}function W(f){return f===33?(I.consume(f),m):f===47?(I.consume(f),d=!0,p):f===63?(I.consume(f),e=3,G.interrupt?l:z):Un(f)?(I.consume(f),t=String.fromCharCode(f),V):c(f)}function m(f){return f===45?(I.consume(f),e=2,s):f===91?(I.consume(f),e=5,n=0,h):Un(f)?(I.consume(f),e=4,G.interrupt?l:z):c(f)}function s(f){return f===45?(I.consume(f),G.interrupt?l:z):c(f)}function h(f){const nI="CDATA[";return f===nI.charCodeAt(n++)?(I.consume(f),n===nI.length?G.interrupt?l:A:h):c(f)}function p(f){return Un(f)?(I.consume(f),t=String.fromCharCode(f),V):c(f)}function V(f){if(f===null||f===47||f===62||Nd(f)){const nI=f===47,VI=t.toLowerCase();return!nI&&!d&&S4.includes(VI)?(e=1,G.interrupt?l(f):A(f)):$uI.includes(t.toLowerCase())?(e=6,nI?(I.consume(f),o):G.interrupt?l(f):A(f)):(e=7,G.interrupt&&!G.parser.lazy[G.now().line]?c(f):d?F(f):X(f))}return f===45||Sd(f)?(I.consume(f),t+=String.fromCharCode(f),V):c(f)}function o(f){return f===62?(I.consume(f),G.interrupt?l:A):c(f)}function F(f){return vc(f)?(I.consume(f),F):N(f)}function X(f){return f===47?(I.consume(f),N):f===58||f===95||Un(f)?(I.consume(f),H):vc(f)?(I.consume(f),X):N(f)}function H(f){return f===45||f===46||f===58||f===95||Sd(f)?(I.consume(f),H):Y(f)}function Y(f){return f===61?(I.consume(f),R):vc(f)?(I.consume(f),Y):X(f)}function R(f){return f===null||f===60||f===61||f===62||f===96?c(f):f===34||f===39?(I.consume(f),b=f,B):vc(f)?(I.consume(f),R):C(f)}function B(f){return f===b?(I.consume(f),b=null,k):f===null||Jl(f)?c(f):(I.consume(f),B)}function C(f){return f===null||f===34||f===39||f===47||f===60||f===61||f===62||f===96||Nd(f)?Y(f):(I.consume(f),C)}function k(f){return f===47||f===62||vc(f)?X(f):c(f)}function N(f){return f===62?(I.consume(f),J):c(f)}function J(f){return f===null||Jl(f)?A(f):vc(f)?(I.consume(f),J):c(f)}function A(f){return f===45&&e===2?(I.consume(f),$):f===60&&e===1?(I.consume(f),j):f===62&&e===4?(I.consume(f),g):f===63&&e===3?(I.consume(f),z):f===93&&e===5?(I.consume(f),tI):Jl(f)&&(e===6||e===7)?(I.exit("htmlFlowData"),I.check(lhI,GI,M)(f)):f===null||Jl(f)?(I.exit("htmlFlowData"),M(f)):(I.consume(f),A)}function M(f){return I.check(chI,D,GI)(f)}function D(f){return I.enter("lineEnding"),I.consume(f),I.exit("lineEnding"),O}function O(f){return f===null||Jl(f)?M(f):(I.enter("htmlFlowData"),A(f))}function $(f){return f===45?(I.consume(f),z):A(f)}function j(f){return f===47?(I.consume(f),t="",S):A(f)}function S(f){if(f===62){const nI=t.toLowerCase();return S4.includes(nI)?(I.consume(f),g):A(f)}return Un(f)&&t.length<8?(I.consume(f),t+=String.fromCharCode(f),S):A(f)}function tI(f){return f===93?(I.consume(f),z):A(f)}function z(f){return f===62?(I.consume(f),g):f===45&&e===2?(I.consume(f),z):A(f)}function g(f){return f===null||Jl(f)?(I.exit("htmlFlowData"),GI(f)):(I.consume(f),g)}function GI(f){return I.exit("htmlFlow"),l(f)}}function dhI(I,l,c){const G=this;return e;function e(t){return Jl(t)?(I.enter("lineEnding"),I.consume(t),I.exit("lineEnding"),d):c(t)}function d(t){return G.parser.lazy[G.now().line]?c(t):l(t)}}function thI(I,l,c){return G;function G(e){return I.enter("lineEnding"),I.consume(e),I.exit("lineEnding"),I.attempt(IN,l,c)}}const nhI={name:"htmlText",tokenize:bhI};function bhI(I,l,c){const G=this;let e,d,t;return n;function n(z){return I.enter("htmlText"),I.enter("htmlTextData"),I.consume(z),b}function b(z){return z===33?(I.consume(z),a):z===47?(I.consume(z),Y):z===63?(I.consume(z),X):Un(z)?(I.consume(z),C):c(z)}function a(z){return z===45?(I.consume(z),Z):z===91?(I.consume(z),d=0,h):Un(z)?(I.consume(z),F):c(z)}function Z(z){return z===45?(I.consume(z),s):c(z)}function W(z){return z===null?c(z):z===45?(I.consume(z),m):Jl(z)?(t=W,j(z)):(I.consume(z),W)}function m(z){return z===45?(I.consume(z),s):W(z)}function s(z){return z===62?$(z):z===45?m(z):W(z)}function h(z){const g="CDATA[";return z===g.charCodeAt(d++)?(I.consume(z),d===g.length?p:h):c(z)}function p(z){return z===null?c(z):z===93?(I.consume(z),V):Jl(z)?(t=p,j(z)):(I.consume(z),p)}function V(z){return z===93?(I.consume(z),o):p(z)}function o(z){return z===62?$(z):z===93?(I.consume(z),o):p(z)}function F(z){return z===null||z===62?$(z):Jl(z)?(t=F,j(z)):(I.consume(z),F)}function X(z){return z===null?c(z):z===63?(I.consume(z),H):Jl(z)?(t=X,j(z)):(I.consume(z),X)}function H(z){return z===62?$(z):X(z)}function Y(z){return Un(z)?(I.consume(z),R):c(z)}function R(z){return z===45||Sd(z)?(I.consume(z),R):B(z)}function B(z){return Jl(z)?(t=B,j(z)):vc(z)?(I.consume(z),B):$(z)}function C(z){return z===45||Sd(z)?(I.consume(z),C):z===47||z===62||Nd(z)?k(z):c(z)}function k(z){return z===47?(I.consume(z),$):z===58||z===95||Un(z)?(I.consume(z),N):Jl(z)?(t=k,j(z)):vc(z)?(I.consume(z),k):$(z)}function N(z){return z===45||z===46||z===58||z===95||Sd(z)?(I.consume(z),N):J(z)}function J(z){return z===61?(I.consume(z),A):Jl(z)?(t=J,j(z)):vc(z)?(I.consume(z),J):k(z)}function A(z){return z===null||z===60||z===61||z===62||z===96?c(z):z===34||z===39?(I.consume(z),e=z,M):Jl(z)?(t=A,j(z)):vc(z)?(I.consume(z),A):(I.consume(z),D)}function M(z){return z===e?(I.consume(z),e=void 0,O):z===null?c(z):Jl(z)?(t=M,j(z)):(I.consume(z),M)}function D(z){return z===null||z===34||z===39||z===60||z===61||z===96?c(z):z===47||z===62||Nd(z)?k(z):(I.consume(z),D)}function O(z){return z===47||z===62||Nd(z)?k(z):c(z)}function $(z){return z===62?(I.consume(z),I.exit("htmlTextData"),I.exit("htmlText"),l):c(z)}function j(z){return I.exit("htmlTextData"),I.enter("lineEnding"),I.consume(z),I.exit("lineEnding"),S}function S(z){return vc(z)?Ac(I,tI,"linePrefix",G.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(z):tI(z)}function tI(z){return I.enter("htmlTextData"),t(z)}}const Sg={name:"labelEnd",tokenize:shI,resolveTo:mhI,resolveAll:rhI},ahI={tokenize:uhI},ZhI={tokenize:hhI},WhI={tokenize:phI};function rhI(I){let l=-1;for(;++l=3&&(a===null||Jl(a))?(I.exit("thematicBreak"),l(a)):c(a)}function b(a){return a===e?(I.consume(a),G++,b):(I.exit("thematicBreakSequence"),vc(a)?Ac(I,n,"whitespace")(a):n(a))}}const Wd={name:"list",tokenize:HhI,continuation:{tokenize:QhI},exit:EhI},YhI={tokenize:vhI,partial:!0},XhI={tokenize:whI,partial:!0};function HhI(I,l,c){const G=this,e=G.events[G.events.length-1];let d=e&&e[1].type==="linePrefix"?e[2].sliceSerialize(e[1],!0).length:0,t=0;return n;function n(s){const h=G.containerState.type||(s===42||s===43||s===45?"listUnordered":"listOrdered");if(h==="listUnordered"?!G.containerState.marker||s===G.containerState.marker:ow(s)){if(G.containerState.type||(G.containerState.type=h,I.enter(h,{_container:!0})),h==="listUnordered")return I.enter("listItemPrefix"),s===42||s===45?I.check(M2,c,a)(s):a(s);if(!G.interrupt||s===49)return I.enter("listItemPrefix"),I.enter("listItemValue"),b(s)}return c(s)}function b(s){return ow(s)&&++t<10?(I.consume(s),b):(!G.interrupt||t<2)&&(G.containerState.marker?s===G.containerState.marker:s===41||s===46)?(I.exit("listItemValue"),a(s)):c(s)}function a(s){return I.enter("listItemMarker"),I.consume(s),I.exit("listItemMarker"),G.containerState.marker=G.containerState.marker||s,I.check(IN,G.interrupt?c:Z,I.attempt(YhI,m,W))}function Z(s){return G.containerState.initialBlankLine=!0,d++,m(s)}function W(s){return vc(s)?(I.enter("listItemPrefixWhitespace"),I.consume(s),I.exit("listItemPrefixWhitespace"),m):c(s)}function m(s){return G.containerState.size=d+G.sliceSerialize(I.exit("listItemPrefix"),!0).length,l(s)}}function QhI(I,l,c){const G=this;return G.containerState._closeFlow=void 0,I.check(IN,e,d);function e(n){return G.containerState.furtherBlankLines=G.containerState.furtherBlankLines||G.containerState.initialBlankLine,Ac(I,l,"listItemIndent",G.containerState.size+1)(n)}function d(n){return G.containerState.furtherBlankLines||!vc(n)?(G.containerState.furtherBlankLines=void 0,G.containerState.initialBlankLine=void 0,t(n)):(G.containerState.furtherBlankLines=void 0,G.containerState.initialBlankLine=void 0,I.attempt(XhI,l,t)(n))}function t(n){return G.containerState._closeFlow=!0,G.interrupt=void 0,Ac(I,I.attempt(Wd,l,c),"linePrefix",G.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(n)}}function whI(I,l,c){const G=this;return Ac(I,e,"listItemIndent",G.containerState.size+1);function e(d){const t=G.events[G.events.length-1];return t&&t[1].type==="listItemIndent"&&t[2].sliceSerialize(t[1],!0).length===G.containerState.size?l(d):c(d)}}function EhI(I){I.exit(this.containerState.type)}function vhI(I,l,c){const G=this;return Ac(I,e,"listItemPrefixWhitespace",G.parser.constructs.disable.null.includes("codeIndented")?void 0:4+1);function e(d){const t=G.events[G.events.length-1];return!vc(d)&&t&&t[1].type==="listItemPrefixWhitespace"?l(d):c(d)}}const T4={name:"setextUnderline",tokenize:AhI,resolveTo:ghI};function ghI(I,l){let c=I.length,G,e,d;for(;c--;)if(I[c][0]==="enter"){if(I[c][1].type==="content"){G=c;break}I[c][1].type==="paragraph"&&(e=c)}else I[c][1].type==="content"&&I.splice(c,1),!d&&I[c][1].type==="definition"&&(d=c);const t={type:"setextHeading",start:Object.assign({},I[e][1].start),end:Object.assign({},I[I.length-1][1].end)};return I[e][1].type="setextHeadingText",d?(I.splice(e,0,["enter",t,l]),I.splice(d+1,0,["exit",I[G][1],l]),I[G][1].end=Object.assign({},I[d][1].end)):I[G][1]=t,I.push(["exit",t,l]),I}function AhI(I,l,c){const G=this;let e;return d;function d(a){let Z=G.events.length,W;for(;Z--;)if(G.events[Z][1].type!=="lineEnding"&&G.events[Z][1].type!=="linePrefix"&&G.events[Z][1].type!=="content"){W=G.events[Z][1].type==="paragraph";break}return!G.parser.lazy[G.now().line]&&(G.interrupt||W)?(I.enter("setextHeadingLine"),e=a,t(a)):c(a)}function t(a){return I.enter("setextHeadingLineSequence"),n(a)}function n(a){return a===e?(I.consume(a),n):(I.exit("setextHeadingLineSequence"),vc(a)?Ac(I,b,"lineSuffix")(a):b(a))}function b(a){return a===null||Jl(a)?(I.exit("setextHeadingLine"),l(a)):c(a)}}const yhI={tokenize:JhI};function JhI(I){const l=this,c=I.attempt(IN,G,I.attempt(this.parser.constructs.flowInitial,e,Ac(I,I.attempt(this.parser.constructs.flow,e,I.attempt(UuI,e)),"linePrefix")));return c;function G(d){if(d===null){I.consume(d);return}return I.enter("lineEndingBlank"),I.consume(d),I.exit("lineEndingBlank"),l.currentConstruct=void 0,c}function e(d){if(d===null){I.consume(d);return}return I.enter("lineEnding"),I.consume(d),I.exit("lineEnding"),l.currentConstruct=void 0,c}}const BhI={resolveAll:mj()},khI=rj("string"),xhI=rj("text");function rj(I){return{tokenize:l,resolveAll:mj(I==="text"?zhI:void 0)};function l(c){const G=this,e=this.parser.constructs[I],d=c.attempt(e,t,n);return t;function t(Z){return a(Z)?d(Z):n(Z)}function n(Z){if(Z===null){c.consume(Z);return}return c.enter("data"),c.consume(Z),b}function b(Z){return a(Z)?(c.exit("data"),d(Z)):(c.consume(Z),b)}function a(Z){if(Z===null)return!0;const W=e[Z];let m=-1;if(W)for(;++m-1){const n=t[0];typeof n=="string"?t[0]=n.slice(G):t.shift()}d>0&&t.push(I[e].slice(0,d))}return t}function MhI(I,l){let c=-1;const G=[];let e;for(;++c0){const xI=oI.tokenStack[oI.tokenStack.length-1];(xI[1]||D4).call(oI,void 0,xI[0])}for(gI.position={start:Va(bI.length>0?bI[0][1].start:{line:1,column:1,offset:0}),end:Va(bI.length>0?bI[bI.length-2][1].end:{line:1,column:1,offset:0})},dI=-1;++dI1?"-"+n:""),dataFootnoteRef:!0,ariaDescribedBy:["footnote-label"]},children:[{type:"text",value:String(t)}]};I.patch(l,b);const a={type:"element",tagName:"sup",properties:{},children:[b]};return I.patch(l,a),I.applyData(l,a)}function spI(I,l){const c={type:"element",tagName:"h"+l.depth,properties:{},children:I.all(l)};return I.patch(l,c),I.applyData(l,c)}function upI(I,l){if(I.options.allowDangerousHtml){const c={type:"raw",value:l.value};return I.patch(l,c),I.applyData(l,c)}}function hj(I,l){const c=l.referenceType;let G="]";if(c==="collapsed"?G+="[]":c==="full"&&(G+="["+(l.label||l.identifier)+"]"),l.type==="imageReference")return[{type:"text",value:"!["+l.alt+G}];const e=I.all(l),d=e[0];d&&d.type==="text"?d.value="["+d.value:e.unshift({type:"text",value:"["});const t=e[e.length-1];return t&&t.type==="text"?t.value+=G:e.push({type:"text",value:G}),e}function hpI(I,l){const c=String(l.identifier).toUpperCase(),G=I.definitionById.get(c);if(!G)return hj(I,l);const e={src:V0(G.url||""),alt:l.alt};G.title!==null&&G.title!==void 0&&(e.title=G.title);const d={type:"element",tagName:"img",properties:e,children:[]};return I.patch(l,d),I.applyData(l,d)}function ppI(I,l){const c={src:V0(l.url)};l.alt!==null&&l.alt!==void 0&&(c.alt=l.alt),l.title!==null&&l.title!==void 0&&(c.title=l.title);const G={type:"element",tagName:"img",properties:c,children:[]};return I.patch(l,G),I.applyData(l,G)}function opI(I,l){const c={type:"text",value:l.value.replace(/\r?\n|\r/g," ")};I.patch(l,c);const G={type:"element",tagName:"code",properties:{},children:[c]};return I.patch(l,G),I.applyData(l,G)}function VpI(I,l){const c=String(l.identifier).toUpperCase(),G=I.definitionById.get(c);if(!G)return hj(I,l);const e={href:V0(G.url||"")};G.title!==null&&G.title!==void 0&&(e.title=G.title);const d={type:"element",tagName:"a",properties:e,children:I.all(l)};return I.patch(l,d),I.applyData(l,d)}function ipI(I,l){const c={href:V0(l.url)};l.title!==null&&l.title!==void 0&&(c.title=l.title);const G={type:"element",tagName:"a",properties:c,children:I.all(l)};return I.patch(l,G),I.applyData(l,G)}function FpI(I,l,c){const G=I.all(l),e=c?NpI(c):pj(l),d={},t=[];if(typeof l.checked=="boolean"){const Z=G[0];let W;Z&&Z.type==="element"&&Z.tagName==="p"?W=Z:(W={type:"element",tagName:"p",properties:{},children:[]},G.unshift(W)),W.children.length>0&&W.children.unshift({type:"text",value:" "}),W.children.unshift({type:"element",tagName:"input",properties:{type:"checkbox",checked:l.checked,disabled:!0},children:[]}),d.className=["task-list-item"]}let n=-1;for(;++n1}function RpI(I,l){const c={},G=I.all(l);let e=-1;for(typeof l.start=="number"&&l.start!==1&&(c.start=l.start);++e0){const t={type:"element",tagName:"tbody",properties:{},children:I.wrap(c,!0)},n=Ug(l.children[1]),b=_T(l.children[l.children.length-1]);n&&b&&(t.position={start:n,end:b}),e.push(t)}const d={type:"element",tagName:"table",properties:{},children:I.wrap(e,!0)};return I.patch(l,d),I.applyData(l,d)}function wpI(I,l,c){const G=c?c.children:void 0,d=(G?G.indexOf(l):1)===0?"th":"td",t=c&&c.type==="table"?c.align:void 0,n=t?t.length:l.children.length;let b=-1;const a=[];for(;++b0,!0),G[0]),e=G.index+G[0].length,G=c.exec(l);return d.push(_4(l.slice(e),e>0,!1)),d.join("")}function _4(I,l,c){let G=0,e=I.length;if(l){let d=I.codePointAt(G);for(;d===O4||d===P4;)G++,d=I.codePointAt(G)}if(c){let d=I.codePointAt(e-1);for(;d===O4||d===P4;)e--,d=I.codePointAt(e-1)}return e>G?I.slice(G,e):""}function gpI(I,l){const c={type:"text",value:vpI(String(l.value))};return I.patch(l,c),I.applyData(l,c)}function ApI(I,l){const c={type:"element",tagName:"hr",properties:{},children:[]};return I.patch(l,c),I.applyData(l,c)}const ypI={blockquote:bpI,break:apI,code:ZpI,delete:WpI,emphasis:rpI,footnoteReference:mpI,heading:spI,html:upI,imageReference:hpI,image:ppI,inlineCode:opI,linkReference:VpI,link:ipI,listItem:FpI,list:RpI,paragraph:YpI,root:XpI,strong:HpI,table:QpI,tableCell:EpI,tableRow:wpI,text:gpI,thematicBreak:ApI,toml:Ro,yaml:Ro,definition:Ro,footnoteDefinition:Ro};function Ro(){}const oj=-1,lN=0,jV=1,DV=2,Tg=3,jg=4,Dg=5,Og=6,Vj=7,ij=8,q4=typeof self=="object"?self:globalThis,JpI=(I,l)=>{const c=(e,d)=>(I.set(d,e),e),G=e=>{if(I.has(e))return I.get(e);const[d,t]=l[e];switch(d){case lN:case oj:return c(t,e);case jV:{const n=c([],e);for(const b of t)n.push(G(b));return n}case DV:{const n=c({},e);for(const[b,a]of t)n[G(b)]=G(a);return n}case Tg:return c(new Date(t),e);case jg:{const{source:n,flags:b}=t;return c(new RegExp(n,b),e)}case Dg:{const n=c(new Map,e);for(const[b,a]of t)n.set(G(b),G(a));return n}case Og:{const n=c(new Set,e);for(const b of t)n.add(G(b));return n}case Vj:{const{name:n,message:b}=t;return c(new q4[n](b),e)}case ij:return c(BigInt(t),e);case"BigInt":return c(Object(BigInt(t)),e)}return c(new q4[d](t),e)};return G},$4=I=>JpI(new Map,I)(0),Er="",{toString:BpI}={},{keys:kpI}=Object,ss=I=>{const l=typeof I;if(l!=="object"||!I)return[lN,l];const c=BpI.call(I).slice(8,-1);switch(c){case"Array":return[jV,Er];case"Object":return[DV,Er];case"Date":return[Tg,Er];case"RegExp":return[jg,Er];case"Map":return[Dg,Er];case"Set":return[Og,Er]}return c.includes("Array")?[jV,c]:c.includes("Error")?[Vj,c]:[DV,c]},Yo=([I,l])=>I===lN&&(l==="function"||l==="symbol"),xpI=(I,l,c,G)=>{const e=(t,n)=>{const b=G.push(t)-1;return c.set(n,b),b},d=t=>{if(c.has(t))return c.get(t);let[n,b]=ss(t);switch(n){case lN:{let Z=t;switch(b){case"bigint":n=ij,Z=t.toString();break;case"function":case"symbol":if(I)throw new TypeError("unable to serialize "+b);Z=null;break;case"undefined":return e([oj],t)}return e([n,Z],t)}case jV:{if(b)return e([b,[...t]],t);const Z=[],W=e([n,Z],t);for(const m of t)Z.push(d(m));return W}case DV:{if(b)switch(b){case"BigInt":return e([b,t.toString()],t);case"Boolean":case"Number":case"String":return e([b,t.valueOf()],t)}if(l&&"toJSON"in t)return d(t.toJSON());const Z=[],W=e([n,Z],t);for(const m of kpI(t))(I||!Yo(ss(t[m])))&&Z.push([d(m),d(t[m])]);return W}case Tg:return e([n,t.toISOString()],t);case jg:{const{source:Z,flags:W}=t;return e([n,{source:Z,flags:W}],t)}case Dg:{const Z=[],W=e([n,Z],t);for(const[m,s]of t)(I||!(Yo(ss(m))||Yo(ss(s))))&&Z.push([d(m),d(s)]);return W}case Og:{const Z=[],W=e([n,Z],t);for(const m of t)(I||!Yo(ss(m)))&&Z.push(d(m));return W}}const{message:a}=t;return e([n,{name:b,message:a}],t)};return d},Ik=(I,{json:l,lossy:c}={})=>{const G=[];return xpI(!(l||c),!!l,new Map,G)(I),G},OV=typeof structuredClone=="function"?(I,l)=>l&&("json"in l||"lossy"in l)?$4(Ik(I,l)):structuredClone(I):(I,l)=>$4(Ik(I,l));function zpI(I,l){const c=[{type:"text",value:"↩"}];return l>1&&c.push({type:"element",tagName:"sup",properties:{},children:[{type:"text",value:String(l)}]}),c}function UpI(I,l){return"Back to reference "+(I+1)+(l>1?"-"+l:"")}function CpI(I){const l=typeof I.options.clobberPrefix=="string"?I.options.clobberPrefix:"user-content-",c=I.options.footnoteBackContent||zpI,G=I.options.footnoteBackLabel||UpI,e=I.options.footnoteLabel||"Footnotes",d=I.options.footnoteLabelTagName||"h2",t=I.options.footnoteLabelProperties||{className:["sr-only"]},n=[];let b=-1;for(;++b0&&h.push({type:"text",value:" "});let F=typeof c=="string"?c:c(b,s);typeof F=="string"&&(F={type:"text",value:F}),h.push({type:"element",tagName:"a",properties:{href:"#"+l+"fnref-"+m+(s>1?"-"+s:""),dataFootnoteBackref:"",ariaLabel:typeof G=="string"?G:G(b,s),className:["data-footnote-backref"]},children:Array.isArray(F)?F:[F]})}const V=Z[Z.length-1];if(V&&V.type==="element"&&V.tagName==="p"){const F=V.children[V.children.length-1];F&&F.type==="text"?F.value+=" ":V.children.push({type:"text",value:" "}),V.children.push(...h)}else Z.push(...h);const o={type:"element",tagName:"li",properties:{id:l+"fn-"+m},children:I.wrap(Z,!0)};I.patch(a,o),n.push(o)}if(n.length!==0)return{type:"element",tagName:"section",properties:{dataFootnotes:!0,className:["footnotes"]},children:[{type:"element",tagName:d,properties:{...OV(t),id:"footnote-label"},children:[{type:"text",value:e}]},{type:"text",value:` -`},{type:"element",tagName:"ol",properties:{},children:I.wrap(n,!0)},{type:"text",value:` -`}]}}const Pg=function(I){if(I==null)return LpI;if(typeof I=="function")return cN(I);if(typeof I=="object")return Array.isArray(I)?MpI(I):fpI(I);if(typeof I=="string")return KpI(I);throw new Error("Expected function, string, or object as test")};function MpI(I){const l=[];let c=-1;for(;++c":""))+")"})}return m;function m(){let s=Fj,h,p,V;if((!l||d(b,a,Z[Z.length-1]||void 0))&&(s=jpI(c(b,Z)),s[0]===lk))return s;if("children"in b&&b.children){const o=b;if(o.children&&s[0]!==Nj)for(p=(G?o.children.length:-1)+t,V=Z.concat(o);p>-1&&p0&&c.push({type:"text",value:` -`}),c}function ck(I){let l=0,c=I.charCodeAt(l);for(;c===9||c===32;)l++,c=I.charCodeAt(l);return I.slice(l)}function Gk(I,l){const c=OpI(I,l),G=c.one(I,void 0),e=CpI(c),d=Array.isArray(G)?{type:"root",children:G}:G||{type:"root",children:[]};return e&&d.children.push({type:"text",value:` -`},e),d}function IoI(I,l){return I&&"run"in I?async function(c,G){const e=Gk(c,{file:G,...l});await I.run(e,G)}:function(c,G){return Gk(c,{file:G,...l||I})}}function ek(I){if(I)throw I}var f2=Object.prototype.hasOwnProperty,Yj=Object.prototype.toString,dk=Object.defineProperty,tk=Object.getOwnPropertyDescriptor,nk=function(l){return typeof Array.isArray=="function"?Array.isArray(l):Yj.call(l)==="[object Array]"},bk=function(l){if(!l||Yj.call(l)!=="[object Object]")return!1;var c=f2.call(l,"constructor"),G=l.constructor&&l.constructor.prototype&&f2.call(l.constructor.prototype,"isPrototypeOf");if(l.constructor&&!c&&!G)return!1;var e;for(e in l);return typeof e>"u"||f2.call(l,e)},ak=function(l,c){dk&&c.name==="__proto__"?dk(l,c.name,{enumerable:!0,configurable:!0,value:c.newValue,writable:!0}):l[c.name]=c.newValue},Zk=function(l,c){if(c==="__proto__")if(f2.call(l,c)){if(tk)return tk(l,c).value}else return;return l[c]},Xj=function I(){var l,c,G,e,d,t,n=arguments[0],b=1,a=arguments.length,Z=!1;for(typeof n=="boolean"&&(Z=n,n=arguments[1]||{},b=2),(n==null||typeof n!="object"&&typeof n!="function")&&(n={});bt.length;let b;n&&t.push(e);try{b=I.apply(this,t)}catch(a){const Z=a;if(n&&c)throw Z;return e(Z)}n||(b&&b.then&&typeof b.then=="function"?b.then(d,e):b instanceof Error?e(b):d(b))}function e(t,...n){c||(c=!0,l(t,...n))}function d(t){e(null,t)}}const An={basename:GoI,dirname:eoI,extname:doI,join:toI,sep:"/"};function GoI(I,l){if(l!==void 0&&typeof l!="string")throw new TypeError('"ext" argument must be a string');Bh(I);let c=0,G=-1,e=I.length,d;if(l===void 0||l.length===0||l.length>I.length){for(;e--;)if(I.codePointAt(e)===47){if(d){c=e+1;break}}else G<0&&(d=!0,G=e+1);return G<0?"":I.slice(c,G)}if(l===I)return"";let t=-1,n=l.length-1;for(;e--;)if(I.codePointAt(e)===47){if(d){c=e+1;break}}else t<0&&(d=!0,t=e+1),n>-1&&(I.codePointAt(e)===l.codePointAt(n--)?n<0&&(G=e):(n=-1,G=t));return c===G?G=t:G<0&&(G=I.length),I.slice(c,G)}function eoI(I){if(Bh(I),I.length===0)return".";let l=-1,c=I.length,G;for(;--c;)if(I.codePointAt(c)===47){if(G){l=c;break}}else G||(G=!0);return l<0?I.codePointAt(0)===47?"/":".":l===1&&I.codePointAt(0)===47?"//":I.slice(0,l)}function doI(I){Bh(I);let l=I.length,c=-1,G=0,e=-1,d=0,t;for(;l--;){const n=I.codePointAt(l);if(n===47){if(t){G=l+1;break}continue}c<0&&(t=!0,c=l+1),n===46?e<0?e=l:d!==1&&(d=1):e>-1&&(d=-1)}return e<0||c<0||d===0||d===1&&e===c-1&&e===G+1?"":I.slice(e,c)}function toI(...I){let l=-1,c;for(;++l0&&I.codePointAt(I.length-1)===47&&(c+="/"),l?"/"+c:c}function boI(I,l){let c="",G=0,e=-1,d=0,t=-1,n,b;for(;++t<=I.length;){if(t2){if(b=c.lastIndexOf("/"),b!==c.length-1){b<0?(c="",G=0):(c=c.slice(0,b),G=c.length-1-c.lastIndexOf("/")),e=t,d=0;continue}}else if(c.length>0){c="",G=0,e=t,d=0;continue}}l&&(c=c.length>0?c+"/..":"..",G=2)}else c.length>0?c+="/"+I.slice(e+1,t):c=I.slice(e+1,t),G=t-e-1;e=t,d=0}else n===46&&d>-1?d++:d=-1}return c}function Bh(I){if(typeof I!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(I))}const aoI={cwd:ZoI};function ZoI(){return"/"}function Nw(I){return!!(I!==null&&typeof I=="object"&&"href"in I&&I.href&&"protocol"in I&&I.protocol&&I.auth===void 0)}function WoI(I){if(typeof I=="string")I=new URL(I);else if(!Nw(I)){const l=new TypeError('The "path" argument must be of type string or an instance of URL. Received `'+I+"`");throw l.code="ERR_INVALID_ARG_TYPE",l}if(I.protocol!=="file:"){const l=new TypeError("The URL must be of scheme file");throw l.code="ERR_INVALID_URL_SCHEME",l}return roI(I)}function roI(I){if(I.hostname!==""){const G=new TypeError('File URL host must be "localhost" or empty on darwin');throw G.code="ERR_INVALID_FILE_URL_HOST",G}const l=I.pathname;let c=-1;for(;++c0){let[s,...h]=Z;const p=G[m][1];Fw(p)&&Fw(s)&&(s=yY(!0,p,s)),G[m]=[a,s,...h]}}}}const hoI=new _g().freeze();function xY(I,l){if(typeof l!="function")throw new TypeError("Cannot `"+I+"` without `parser`")}function zY(I,l){if(typeof l!="function")throw new TypeError("Cannot `"+I+"` without `compiler`")}function UY(I,l){if(l)throw new Error("Cannot call `"+I+"` on a frozen processor.\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.")}function rk(I){if(!Fw(I)||typeof I.type!="string")throw new TypeError("Expected node, got `"+I+"`")}function mk(I,l,c){if(!c)throw new Error("`"+I+"` finished async. Use `"+l+"` instead")}function Xo(I){return poI(I)?I:new Hj(I)}function poI(I){return!!(I&&typeof I=="object"&&"message"in I&&"messages"in I)}function ooI(I){return typeof I=="string"||VoI(I)}function VoI(I){return!!(I&&typeof I=="object"&&"byteLength"in I&&"byteOffset"in I)}const ioI="https://github.com/remarkjs/react-markdown/blob/main/changelog.md",sk=[],uk={allowDangerousHtml:!0},FoI=/^(https?|ircs?|mailto|xmpp)$/i,NoI=[{from:"astPlugins",id:"remove-buggy-html-in-markdown-parser"},{from:"allowDangerousHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"allowNode",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowElement"},{from:"allowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowedElements"},{from:"disallowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"disallowedElements"},{from:"escapeHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"includeElementIndex",id:"#remove-includeelementindex"},{from:"includeNodeIndex",id:"change-includenodeindex-to-includeelementindex"},{from:"linkTarget",id:"remove-linktarget"},{from:"plugins",id:"change-plugins-to-remarkplugins",to:"remarkPlugins"},{from:"rawSourcePos",id:"#remove-rawsourcepos"},{from:"renderers",id:"change-renderers-to-components",to:"components"},{from:"source",id:"change-source-to-children",to:"children"},{from:"sourcePos",id:"#remove-sourcepos"},{from:"transformImageUri",id:"#add-urltransform",to:"urlTransform"},{from:"transformLinkUri",id:"#add-urltransform",to:"urlTransform"}];function RoI(I){const l=I.allowedElements,c=I.allowElement,G=I.children||"",e=I.className,d=I.components,t=I.disallowedElements,n=I.rehypePlugins||sk,b=I.remarkPlugins||sk,a=I.remarkRehypeOptions?{...I.remarkRehypeOptions,...uk}:uk,Z=I.skipHtml,W=I.unwrapDisallowed,m=I.urlTransform||YoI,s=hoI().use(npI).use(b).use(IoI,a).use(n),h=new Hj;typeof G=="string"&&(h.value=G);for(const F of NoI)Object.hasOwn(I,F.from)&&(""+F.from+(F.to?"use `"+F.to+"` instead":"remove it")+ioI+F.id,void 0);const p=s.parse(h);let V=s.runSync(p,h);return e&&(V={type:"element",tagName:"div",properties:{className:e},children:V.type==="root"?V.children:[V]}),GN(V,o),CsI(V,{Fragment:v.Fragment,components:d,ignoreInvalidStyle:!0,jsx:v.jsx,jsxs:v.jsxs,passKeys:!0,passNode:!0});function o(F,X,H){if(F.type==="raw"&&H&&typeof X=="number")return Z?H.children.splice(X,1):H.children[X]={type:"text",value:F.value},X;if(F.type==="element"){let Y;for(Y in vY)if(Object.hasOwn(vY,Y)&&Object.hasOwn(F.properties,Y)){const R=F.properties[Y],B=vY[Y];(B===null||B.includes(F.tagName))&&(F.properties[Y]=m(String(R||""),Y,F))}}if(F.type==="element"){let Y=l?!l.includes(F.tagName):t?t.includes(F.tagName):!1;if(!Y&&c&&typeof X=="number"&&(Y=!c(F,X,H)),Y&&H&&typeof X=="number")return W&&F.children?H.children.splice(X,1,...F.children):H.children.splice(X,1),X}}}function YoI(I){const l=I.indexOf(":"),c=I.indexOf("?"),G=I.indexOf("#"),e=I.indexOf("/");return l<0||e>-1&&l>e||c>-1&&l>c||G>-1&&l>G||FoI.test(I.slice(0,l))?I:""}const XoI=LI.div` +`;class W1e{constructor(t,n){Vi(this,"_continueDir",null);this.request=t,this.on=n}pathSep(){return this.request("pathSep",void 0)}fileExists(t){return this.request("fileExists",{filepath:t})}async gotoDefinition(t){return this.request("gotoDefinition",{location:t})}onDidChangeActiveTextEditor(t){this.on("didChangeActiveTextEditor",n=>t(n.filepath))}getIdeSettings(){return this.request("getIdeSettings",void 0)}getGitHubAuthToken(){return this.request("getGitHubAuthToken",void 0)}getLastModified(t){return this.request("getLastModified",{files:t})}getGitRootPath(t){return this.request("getGitRootPath",{dir:t})}listDir(t){return this.request("listDir",{dir:t})}infoPopup(t){return this.request("errorPopup",{message:t})}errorPopup(t){return this.request("errorPopup",{message:t})}getRepoName(t){return this.request("getRepoName",{dir:t})}getDebugLocals(t){return this.request("getDebugLocals",{threadIndex:t})}getTopLevelCallStackSources(t,n){return this.request("getTopLevelCallStackSources",{threadIndex:t,stackDepth:n})}getAvailableThreads(){return this.request("getAvailableThreads",void 0)}getTags(t){return this.request("getTags",t)}getIdeInfo(){return this.request("getIdeInfo",void 0)}readRangeInFile(t,n){return this.request("readRangeInFile",{filepath:t,range:n})}isTelemetryEnabled(){return this.request("isTelemetryEnabled",void 0)}getUniqueId(){return this.request("getUniqueId",void 0)}getWorkspaceConfigs(){return this.request("getWorkspaceConfigs",void 0)}async getDiff(){return await this.request("getDiff",void 0)}async getTerminalContents(){return await this.request("getTerminalContents",void 0)}async getWorkspaceDirs(){return await this.request("getWorkspaceDirs",void 0)}async showLines(t,n,r){return await this.request("showLines",{filepath:t,startLine:n,endLine:r})}async listFolders(){return await this.request("listFolders",void 0)}async getContinueDir(){if(this._continueDir)return this._continueDir;const t=await this.request("getContinueDir",void 0);return this._continueDir=t,t}async writeFile(t,n){await this.request("writeFile",{path:t,contents:n})}async showVirtualFile(t,n){await this.request("showVirtualFile",{name:t,content:n})}async openFile(t){await this.request("openFile",{path:t})}async runCommand(t){await this.request("runCommand",{command:t})}async saveFile(t){await this.request("saveFile",{filepath:t})}async readFile(t){return await this.request("readFile",{filepath:t})}async showDiff(t,n,r){await this.request("showDiff",{filepath:t,newContents:n,stepIndex:r})}getOpenFiles(){return this.request("getOpenFiles",void 0)}getCurrentFile(){return this.request("getCurrentFile",void 0)}getPinnedFiles(){return this.request("getPinnedFiles",void 0)}getSearchResults(t){return this.request("getSearchResults",{query:t})}getProblems(t){return this.request("getProblems",{filepath:t})}subprocess(t){return this.request("subprocess",{command:t})}async getBranch(t){return this.request("getBranch",{dir:t})}}let TA;const y1e=new Uint8Array(16);function F1e(){if(!TA&&(TA=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!TA))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return TA(y1e)}const hi=[];for(let e=0;e<256;++e)hi.push((e+256).toString(16).slice(1));function E1e(e,t=0){return hi[e[t+0]]+hi[e[t+1]]+hi[e[t+2]]+hi[e[t+3]]+"-"+hi[e[t+4]]+hi[e[t+5]]+"-"+hi[e[t+6]]+hi[e[t+7]]+"-"+hi[e[t+8]]+hi[e[t+9]]+"-"+hi[e[t+10]]+hi[e[t+11]]+hi[e[t+12]]+hi[e[t+13]]+hi[e[t+14]]+hi[e[t+15]]}const R1e=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),lG={randomUUID:R1e};function zl(e,t,n){if(lG.randomUUID&&!t&&!e)return lG.randomUUID();e=e||{};const r=e.random||(e.rng||F1e)();if(r[6]=r[6]&15|64,r[8]=r[8]&63|128,t){n=n||0;for(let i=0;i<16;++i)t[n+i]=r[i];return t}return E1e(r)}var DE={};Object.defineProperty(DE,"__esModule",{value:!0});DE.testFunc=void 0;var S1e=function(){console.log("test")};DE.testFunc=S1e;class x1e{constructor(){Vi(this,"ide");this.ide=new W1e(this.request.bind(this),()=>{})}_postToIde(t,n,r){var a;if(typeof vscode>"u")if(to()){if(window.postIntellijMessage===void 0)throw console.log("Unable to send message: postIntellijMessage is undefined. ",t,n),new Error("postIntellijMessage is undefined");r=r??zl(),(a=window.postIntellijMessage)==null||a.call(window,t,n,r);return}else{console.log("Unable to send message: vscode is undefined. ",t,n);return}const i={messageId:r??zl(),messageType:t,data:n};vscode.postMessage(i)}post(t,n,r,i=0){try{this._postToIde(t,n,r)}catch(a){i<5?(console.log(`Attempt ${i} failed. Retrying...`),setTimeout(()=>this.post(t,n,r,i+1),Math.pow(2,i)*1e3)):console.error("Max attempts reached. Message could not be sent.",a)}}respond(t,n,r){this._postToIde(t,n,r)}request(t,n){const r=zl();return new Promise(i=>{const a=o=>{o.data.messageId===r&&(window.removeEventListener("message",a),i(o.data.data))};window.addEventListener("message",a),this.post(t,n,r)})}async*streamRequest(t,n,r){const i=zl();this.post(t,n,i);let a="",o=0,l=!1,s;const u=c=>{if(c.data.messageId===i){const d=c.data.data;d.done?(window.removeEventListener("message",u),l=!0,s=d):a+=d.content}};for(window.addEventListener("message",u),r==null||r.addEventListener("abort",()=>{this.post("abort",void 0,i)});!l;){if(a.length>o){const c=a.slice(o);o=a.length,yield c}await new Promise(c=>setTimeout(c,50))}if(a.length>o){const c=a.slice(o);o=a.length,yield c}return s}async*llmStreamChat(t,n,r,i={}){var l,s,u;const a=this.streamRequest("llm/streamChat",{messages:r,title:t,completionOptions:i},n);let o=await a.next();for(;!o.done;)yield{role:"user",content:o.value},o=await a.next();if(o.value.error)throw new Error(o.value.error);return{prompt:(l=o.value.content)==null?void 0:l.prompt,completion:(s=o.value.content)==null?void 0:s.completion,completionOptions:(u=o.value.content)==null?void 0:u.completionOptions}}}const Zn=E.createContext(new x1e);function On(e,t,n){const r=E.useContext(Zn);E.useEffect(()=>{const i=async a=>{if(a.data.messageType===e){const o=await t(a.data.data);r.respond(e,o,a.data.messageId)}};return window.addEventListener("message",i),()=>{window.removeEventListener("message",i)}},n??[])}function sG(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function kt(e){for(var t=1;t=0||(c[s]=o[s]);return c}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function Pi(e,t){return function(n){if(Array.isArray(n))return n}(e)||function(n,r){var i=n==null?null:typeof Symbol<"u"&&n[Symbol.iterator]||n["@@iterator"];if(i!=null){var a,o,l=[],s=!0,u=!1;try{for(i=i.call(n);!(s=(a=i.next()).done)&&(l.push(a.value),!r||l.length!==r);s=!0);}catch(c){u=!0,o=c}finally{try{s||i.return==null||i.return()}finally{if(u)throw o}}return l}}(e,t)||NE(e,t)||function(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}()}function f1(e){return function(t){if(Array.isArray(t))return Cy(t)}(e)||function(t){if(typeof Symbol<"u"&&t[Symbol.iterator]!=null||t["@@iterator"]!=null)return Array.from(t)}(e)||NE(e)||function(){throw new TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}()}function NE(e,t){if(e){if(typeof e=="string")return Cy(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set"?Array.from(e):n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Cy(e,t):void 0}}function Cy(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(s){throw s},f:i}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var a,o=!0,l=!1;return{s:function(){n=n.call(e)},n:function(){var s=n.next();return o=s.done,s},e:function(s){l=!0,a=s},f:function(){try{o||n.return==null||n.return()}finally{if(l)throw a}}}}var y0={DEBUG:!1,LIB_VERSION:"1.136.8"},k1e=Array.isArray,FY=Object.prototype,EY=FY.hasOwnProperty,o3=FY.toString,jr=k1e||function(e){return o3.call(e)==="[object Array]"},Bl=function(e){return typeof e=="function"},Pl=function(e){return e===Object(e)&&!jr(e)},Fv=function(e){if(Pl(e)){for(var t in e)if(EY.call(e,t))return!1;return!0}return!1},Pt=function(e){return e===void 0},ji=function(e){return o3.call(e)=="[object String]"},mu=function(e){return e===null},js=function(e){return Pt(e)||mu(e)},Tl=function(e){return o3.call(e)=="[object Number]"},lC=function(e){return o3.call(e)==="[object Boolean]"},D1e=function(e){return e instanceof FormData},Se=typeof window<"u"?window:void 0,Ba=typeof globalThis<"u"?globalThis:Se,RY=Array.prototype,cG=RY.forEach,dG=RY.indexOf,Js=Ba==null?void 0:Ba.navigator,Dt=Ba==null?void 0:Ba.document,So=Ba==null?void 0:Ba.location,By=Ba==null?void 0:Ba.fetch,wy=Ba!=null&&Ba.XMLHttpRequest&&"withCredentials"in new Ba.XMLHttpRequest?Ba.XMLHttpRequest:void 0,pG=Ba==null?void 0:Ba.AbortController,xr=Js==null?void 0:Js.userAgent,ki=Se??{},gG="[PostHog.js]",dt={_log:function(e){if(Se&&(y0.DEBUG||ki.POSTHOG_DEBUG)&&!Pt(Se.console)&&Se.console){for(var t=("__rrweb_original__"in Se.console[e])?Se.console[e].__rrweb_original__:Se.console[e],n=arguments.length,r=new Array(n>1?n-1:0),i=1;i1?t-1:0),r=1;r0&&(t[r]=n)}),t};function Z1e(e,t){return n=e,r=function(a){return ji(a)&&!mu(t)?a.slice(0,t):a},i=new Set,function a(o,l){return o!==Object(o)?r?r(o,l):o:i.has(o)?void 0:(i.add(o),jr(o)?(s=[],Lp(o,function(u){s.push(a(u))})):(s={},cr(o,function(u,c){i.has(u)||(s[c]=a(u,c))})),s);var s}(n);var n,r,i}var cl,H1e=function(e){var t,n,r,i,a="";for(t=n=0,r=(e=(e+"").replace(/\r\n/g,` +`).replace(/\r/g,` +`)).length,i=0;i127&&o<2048?String.fromCharCode(o>>6|192,63&o|128):String.fromCharCode(o>>12|224,o>>6&63|128,63&o|128),mu(l)||(n>t&&(a+=e.substring(t,n)),a+=l,t=n=i+1)}return n>t&&(a+=e.substring(t,e.length)),a},Ys=function(){function e(t){return t&&(t.preventDefault=e.preventDefault,t.stopPropagation=e.stopPropagation),t}return e.preventDefault=function(){this.returnValue=!1},e.stopPropagation=function(){this.cancelBubble=!0},function(t,n,r,i,a){if(t)if(t.addEventListener&&!i)t.addEventListener(n,r,!!a);else{var o="on"+n,l=t[o];t[o]=function(s,u,c){return function(d){if(d=d||e(Se==null?void 0:Se.event)){var g,h=!0;Bl(c)&&(g=c(d));var m=u.call(s,d);return g!==!1&&m!==!1||(h=!1),h}}}(t,r,l)}else dt.error("No valid element provided to register_event")}}();function gf(e,t){var n=function(){if(!Dt)return t("document not found");var r=Dt.createElement("script");r.type="text/javascript",r.src=e,r.onload=function(o){return t(void 0,o)},r.onerror=function(o){return t(o)};var i,a=Dt.querySelectorAll("body > script");a.length>0?(i=a[0].parentNode)===null||i===void 0||i.insertBefore(r,a[0]):Dt.body.appendChild(r)};Dt!=null&&Dt.body?n():Dt==null||Dt.addEventListener("DOMContentLoaded",n)}function xY(e,t){for(var n=0;n1&&arguments[1]!==void 0?arguments[1]:{};if(this.instance.decideEndpointWasHit||this.getFlags()&&this.getFlags().length>0){var r,i=this.getFlagVariants()[t],a="".concat(i),o=this.instance.get_property(sB)||{};return(n.send_event||!("send_event"in n))&&(!(t in o)||!o[t].includes(a))&&(jr(o[t])?o[t].push(a):o[t]=[a],(r=this.instance.persistence)===null||r===void 0||r.register(Ye({},sB,o)),this.instance.capture("$feature_flag_called",{$feature_flag:t,$feature_flag_response:i})),i}dt.warn('getFeatureFlag for key "'+t+`" failed. Feature flags didn't load in time.`)}},{key:"getFeatureFlagPayload",value:function(t){return this.getFlagPayloads()[t]}},{key:"isFeatureEnabled",value:function(t){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(this.instance.decideEndpointWasHit||this.getFlags()&&this.getFlags().length>0)return!!this.getFeatureFlag(t,n);dt.warn('isFeatureEnabled for key "'+t+`" failed. Feature flags didn't load in time.`)}},{key:"addFeatureFlagsHandler",value:function(t){this.featureFlagEventHandlers.push(t)}},{key:"removeFeatureFlagsHandler",value:function(t){this.featureFlagEventHandlers=this.featureFlagEventHandlers.filter(function(n){return n!==t})}},{key:"receivedFeatureFlags",value:function(t,n){if(this.instance.persistence){this.instance.decideEndpointWasHit=!0;var r=this.getFlagVariants(),i=this.getFlagPayloads();(function(a,o){var l,s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},u=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},c=a.featureFlags,d=a.featureFlagPayloads;if(c)if(jr(c)){var g,h={};if(c)for(var m=0;m1&&arguments[1]!==void 0&&arguments[1],i=this.instance.get_property(Qy);if(i&&!r)return t(i);this.instance._send_request({transport:"XHR",url:this.instance.requestRouter.endpointFor("api","/api/early_access_features/?token=".concat(this.instance.config.token)),method:"GET",callback:function(a){var o;if(a.json){var l=a.json.earlyAccessFeatures;return(o=n.instance.persistence)===null||o===void 0||o.register(Ye({},Qy,l)),t(l)}}})}},{key:"_prepareFeatureFlagsForCallbacks",value:function(){var t=this.getFlags(),n=this.getFlagVariants();return{flags:t.filter(function(r){return n[r]}),flagVariants:Object.keys(n).filter(function(r){return n[r]}).reduce(function(r,i){return r[i]=n[i],r},{})}}},{key:"_fireFeatureFlagsCallbacks",value:function(t){var n=this._prepareFeatureFlagsForCallbacks(),r=n.flags,i=n.flagVariants;this.featureFlagEventHandlers.forEach(function(a){return a(r,i,{errorsLoading:t})})}},{key:"setPersonPropertiesForFlags",value:function(t){var n=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1],r=this.instance.get_property(Fp)||{};this.instance.register(Ye({},Fp,kt(kt({},r),t))),n&&this.instance.reloadFeatureFlags()}},{key:"resetPersonPropertiesForFlags",value:function(){this.instance.unregister(Fp)}},{key:"setGroupPropertiesForFlags",value:function(t){var n=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1],r=this.instance.get_property(Xu)||{};Object.keys(r).length!==0&&Object.keys(r).forEach(function(i){r[i]=kt(kt({},r[i]),t[i]),delete t[i]}),this.instance.register(Ye({},Xu,kt(kt({},r),t))),n&&this.instance.reloadFeatureFlags()}},{key:"resetGroupPropertiesForFlags",value:function(t){if(t){var n=this.instance.get_property(Xu)||{};this.instance.register(Ye({},Xu,kt(kt({},n),{},Ye({},t,{}))))}else this.instance.unregister(Xu)}}]),e}();Math.trunc||(Math.trunc=function(e){return e<0?Math.ceil(e):Math.floor(e)}),Number.isInteger||(Number.isInteger=function(e){return Tl(e)&&isFinite(e)&&Math.floor(e)===e});var KG="0123456789abcdef",M1e=function(){function e(t){if(zn(this,e),this.bytes=t,t.length!==16)throw new TypeError("not 128-bit length")}return Pn(e,[{key:"toString",value:function(){for(var t="",n=0;n>>4)+KG.charAt(15&this.bytes[n]),n!==3&&n!==5&&n!==7&&n!==9||(t+="-");if(t.length!==36)throw new Error("Invalid UUIDv7 was generated");return t}},{key:"clone",value:function(){return new e(this.bytes.slice(0))}},{key:"equals",value:function(t){return this.compareTo(t)===0}},{key:"compareTo",value:function(t){for(var n=0;n<16;n++){var r=this.bytes[n]-t.bytes[n];if(r!==0)return Math.sign(r)}return 0}}],[{key:"fromFieldsV7",value:function(t,n,r,i){if(!Number.isInteger(t)||!Number.isInteger(n)||!Number.isInteger(r)||!Number.isInteger(i)||t<0||n<0||r<0||i<0||t>0xffffffffffff||n>4095||r>1073741823||i>4294967295)throw new RangeError("invalid field value");var a=new Uint8Array(16);return a[0]=t/Math.pow(2,40),a[1]=t/Math.pow(2,32),a[2]=t/Math.pow(2,24),a[3]=t/Math.pow(2,16),a[4]=t/Math.pow(2,8),a[5]=t,a[6]=112|n>>>8,a[7]=n,a[8]=128|r>>>24,a[9]=r>>>16,a[10]=r>>>8,a[11]=r,a[12]=i>>>24,a[13]=i>>>16,a[14]=i>>>8,a[15]=i,new e(a)}}]),e}(),T1e=function(){function e(){zn(this,e),Ye(this,"timestamp",0),Ye(this,"counter",0),Ye(this,"random",new V1e)}return Pn(e,[{key:"generate",value:function(){var t=this.generateOrAbort();if(Pt(t)){this.timestamp=0;var n=this.generateOrAbort();if(Pt(n))throw new Error("Could not generate UUID after timestamp reset");return n}return t}},{key:"generateOrAbort",value:function(){var t=Date.now();if(t>this.timestamp)this.timestamp=t,this.resetCounter();else{if(!(t+1e4>this.timestamp))return;this.counter++,this.counter>4398046511103&&(this.timestamp++,this.resetCounter())}return M1e.fromFieldsV7(this.timestamp,Math.trunc(this.counter/Math.pow(2,30)),this.counter&Math.pow(2,30)-1,this.random.nextUint32())}},{key:"resetCounter",value:function(){this.counter=1024*this.random.nextUint32()+(1023&this.random.nextUint32())}}]),e}(),kY=function(e){if(typeof UUIDV7_DENY_WEAK_RNG<"u"&&UUIDV7_DENY_WEAK_RNG)throw new Error("no cryptographically strong RNG available");for(var t=0;t=this.buffer.length&&(kY(this.buffer),this.cursor=0),this.buffer[this.cursor++]}}]),e}(),Pu=function(){return Y1e().toString()},Y1e=function(){return(QG||(QG=new T1e)).generate()},I1e="Thu, 01 Jan 1970 00:00:00 GMT",Gg="",U1e=/[a-z0-9][a-z0-9-]+\.[a-z]{2,}$/i;function O1e(e,t){if(t){var n=function(i){var a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Dt;if(Gg)return Gg;if(!a||["localhost","127.0.0.1"].includes(i))return"";for(var o=i.split("."),l=Math.min(o.length,8),s="dmn_chk_"+Pu(),u=new RegExp("(^|;)\\s*"+s+"=1");!Gg&&l--;){var c=o.slice(l).join("."),d=s+"=1;domain=."+c;a.cookie=d,u.test(a.cookie)&&(a.cookie=d+";expires="+I1e,Gg=c)}return Gg}(e);if(!n){var r=function(i){var a=i.match(U1e);return a?a[0]:""}(e);r!==n&&dt.info("Warning: cookie subdomain discovery mismatch",r,n),n=r}return n?"; domain=."+n:""}return""}var gi,_s={is_supported:function(){return!!Dt},error:function(e){dt.error("cookieStore error: "+e)},get:function(e){if(Dt){try{for(var t=e+"=",n=Dt.cookie.split(";").filter(function(a){return a.length}),r=0;r3686.4&&dt.warn("cookieStore warning: large cookie, len="+u.length),Dt.cookie=u,u}catch{return}},remove:function(e,t){try{_s.set(e,"",-1,t)}catch{return}}},Rv=null,Pr={is_supported:function(){if(!mu(Rv))return Rv;var e=!0;if(Pt(Se))e=!1;else try{var t="__mplssupport__";Pr.set(t,"xyz"),Pr.get(t)!=='"xyz"'&&(e=!1),Pr.remove(t)}catch{e=!1}return e||dt.error("localStorage unsupported; falling back to cookie store"),Rv=e,e},error:function(e){dt.error("localStorage error: "+e)},get:function(e){try{return Se==null?void 0:Se.localStorage.getItem(e)}catch(t){Pr.error(t)}return null},parse:function(e){try{return JSON.parse(Pr.get(e))||{}}catch{}return null},set:function(e,t){try{Se==null||Se.localStorage.setItem(e,JSON.stringify(t))}catch(n){Pr.error(n)}},remove:function(e){try{Se==null||Se.localStorage.removeItem(e)}catch(t){Pr.error(t)}}},J1e=["distinct_id",lB,Fh,uB],YA=kt(kt({},Pr),{},{parse:function(e){try{var t={};try{t=_s.parse(e)||{}}catch{}var n=Aa(t,JSON.parse(Pr.get(e)||"{}"));return Pr.set(e,n),n}catch{}return null},set:function(e,t,n,r,i){try{Pr.set(e,t);var a={};J1e.forEach(function(o){t[o]&&(a[o]=t[o])}),Object.keys(a).length&&_s.set(e,a,n,r,i)}catch(o){Pr.error(o)}},remove:function(e,t){try{Se==null||Se.localStorage.removeItem(e),_s.remove(e,t)}catch(n){Pr.error(n)}}}),IA={},z1e={is_supported:function(){return!0},error:function(e){dt.error("memoryStorage error: "+e)},get:function(e){return IA[e]||null},parse:function(e){return IA[e]||null},set:function(e,t){IA[e]=t},remove:function(e){delete IA[e]}},a0=null,Ai={is_supported:function(){if(!mu(a0))return a0;if(a0=!0,Pt(Se))a0=!1;else try{var e="__support__";Ai.set(e,"xyz"),Ai.get(e)!=='"xyz"'&&(a0=!1),Ai.remove(e)}catch{a0=!1}return a0},error:function(e){dt.error("sessionStorage error: ",e)},get:function(e){try{return Se==null?void 0:Se.sessionStorage.getItem(e)}catch(t){Ai.error(t)}return null},parse:function(e){try{return JSON.parse(Ai.get(e))||null}catch{}return null},set:function(e,t){try{Se==null||Se.sessionStorage.setItem(e,JSON.stringify(t))}catch(n){Ai.error(n)}},remove:function(e){try{Se==null||Se.sessionStorage.removeItem(e)}catch(t){Ai.error(t)}}},P1e=["localhost","127.0.0.1"],DY=function(e){var t=Dt==null?void 0:Dt.createElement("a");return Pt(t)?null:(t.href=e,t)},j1e=function(e,t){return!!function(n){try{new RegExp(n)}catch{return!1}return!0}(t)&&new RegExp(t).test(e)},_1e=function(e){var t,n,r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"&",i=[];return cr(e,function(a,o){Pt(a)||Pt(o)||o==="undefined"||(t=encodeURIComponent(function(l){return l instanceof File}(a)?a.name:a.toString()),n=encodeURIComponent(o),i[i.length]=n+"="+t)}),i.join(r)},WG=function(e,t){for(var n,r=((e.split("#")[0]||"").split("?")[1]||"").split("&"),i=0;i=3&&(t=Pt(e[2])?e[3]:e[2]),["watchOS",t]}],[new RegExp("("+jl+" (\\d+)\\.(\\d+)\\.?(\\d+)?|"+jl+")","i"),function(e){if(e&&e[2]){var t=[e[2],e[3],e[4]||"0"];return[jl,t.join(".")]}return[jl,""]}],[/Mac OS X (\d+)[_.](\d+)[_.]?(\d+)?/i,function(e){var t=["Mac OS X",""];if(e&&e[1]){var n=[e[1],e[2],e[3]||"0"];t[1]=n.join(".")}return t}],[/Mac/i,["Mac OS X",""]],[/CrOS/,[$1e,""]],[/Linux|debian/i,["Linux",""]]],RG=function(e){return rge.test(e)?mf:nge.test(e)?Af:tge.test(e)?Tp:new RegExp(Gy,"i").test(e)?Gy:new RegExp("("+xy+"|WPDesktop)","i").test(e)?xy:/iPad/.test(e)?ZY:/iPod/.test(e)?"iPod Touch":/iPhone/.test(e)?"iPhone":/(watch)(?: ?os[,/]|\d,\d\/)[\d.]+/i.test(e)?XY:LE.test(e)?m1:/(kobo)\s(ereader|touch)/i.test(e)?"Kobo":new RegExp(yG,"i").test(e)?yG:/(kf[a-z]{2}wi|aeo[c-r]{2})( bui|\))/i.test(e)||/(kf[a-z]+)( bui|\)).+silk\//i.test(e)?"Kindle Fire":/(Android|ZTE)/i.test(e)?!new RegExp(Zo).test(e)||/(9138B|TB782B|Nexus [97]|pixel c|HUAWEISHT|BTV|noble nook|smart ultra 6)/i.test(e)?/pixel[\daxl ]{1,6}/i.test(e)&&!/pixel c/i.test(e)||/(huaweimed-al00|tah-|APA|SM-G92|i980|zte|U304AA)/i.test(e)||/lmy47v/i.test(e)&&!/QTAQZ3/i.test(e)?jl:NY:jl:new RegExp("(pda|"+Zo+")","i").test(e)?ege:new RegExp(hf,"i").test(e)&&!new RegExp(hf+" pc","i").test(e)?PY:""},UA="https?://(.*)",lge=["utm_source","utm_medium","utm_campaign","utm_content","utm_term","gclid","gad_source","gclsrc","dclid","gbraid","wbraid","fbclid","msclkid","twclid","li_fat_id","mc_cid","igshid","ttclid"],ri={campaignParams:function(e){var t=lge.concat(e||[]),n={};return cr(t,function(r){var i=Dt?WG(Dt.URL,r):"";i.length&&(n[r]=i)}),n},searchEngine:function(){var e=Dt==null?void 0:Dt.referrer;return e?e.search(UA+"google.([^/?]*)")===0?"google":e.search(UA+"bing.com")===0?"bing":e.search(UA+"yahoo.com")===0?"yahoo":e.search(UA+"duckduckgo.com")===0?"duckduckgo":null:null},searchInfo:function(){var e=ri.searchEngine(),t=e!="yahoo"?"q":"p",n={};if(!mu(e)){n.$search_engine=e;var r=Dt?WG(Dt.referrer,t):"";r.length&&(n.ph_keyword=r)}return n},browser:FG,browserVersion:function(e,t){var n=FG(e,t),r=oge[n];if(Pt(r))return null;for(var i=0;i1e3?xr.substring(0,997)+"...":xr,$browser_version:ri.browserVersion(xr,navigator.vendor),$browser_language:ri.browserLanguage(),$screen_height:Se==null?void 0:Se.screen.height,$screen_width:Se==null?void 0:Se.screen.width,$viewport_height:Se==null?void 0:Se.innerHeight,$viewport_width:Se==null?void 0:Se.innerWidth,$lib:"web",$lib_version:y0.LIB_VERSION,$insert_id:Math.random().toString(36).substring(2,10)+Math.random().toString(36).substring(2,10),$time:SY()/1e3})},people_properties:function(){if(!xr)return{};var e=Pi(ri.os(xr),2),t=e[0],n=e[1];return Aa(by({$os:t,$os_version:n,$browser:ri.browser(xr,navigator.vendor)}),{$browser_version:ri.browserVersion(xr,navigator.vendor)})}},sge=["cookie","localstorage","localstorage+cookie","sessionstorage","memory"],xv=function(){function e(t){zn(this,e),this.config=t,this.props={},this.campaign_params_saved=!1,this.name=function(n){var r="";return n.token&&(r=n.token.replace(/\+/g,"PL").replace(/\//g,"SL").replace(/=/g,"EQ")),n.persistence_name?"ph_"+n.persistence_name:"ph_"+r+"_posthog"}(t),this.storage=this.buildStorage(t),this.load(),this.update_config(t,t),this.save()}return Pn(e,[{key:"buildStorage",value:function(t){sge.indexOf(t.persistence.toLowerCase())===-1&&(dt.critical("Unknown persistence type "+t.persistence+"; falling back to localStorage+cookie"),t.persistence="localStorage+cookie");var n=t.persistence.toLowerCase();return n==="localstorage"&&Pr.is_supported()?Pr:n==="localstorage+cookie"&&YA.is_supported()?YA:n==="sessionstorage"&&Ai.is_supported()?Ai:n==="memory"?z1e:n==="cookie"?_s:YA.is_supported()?YA:_s}},{key:"properties",value:function(){var t={};return cr(this.props,function(n,r){if(r===yp&&Pl(n))for(var i=Object.keys(n),a=0;a1&&arguments[1]!==void 0?arguments[1]:{};zn(this,e),Ye(this,"bucketSize",100),Ye(this,"refillRate",10),Ye(this,"mutationBuckets",{}),Ye(this,"loggedTracker",{}),Ye(this,"refillBuckets",function(){Object.keys(i.mutationBuckets).forEach(function(o){i.mutationBuckets[o]=i.mutationBuckets[o]+i.refillRate,i.mutationBuckets[o]>=i.bucketSize&&delete i.mutationBuckets[o]})}),Ye(this,"getNodeOrRelevantParent",function(o){var l=i.rrweb.mirror.getNode(o);if((l==null?void 0:l.nodeName)!=="svg"&&l instanceof Element){var s=l.closest("svg");if(s)return[i.rrweb.mirror.getId(s),s]}return[o,l]}),Ye(this,"numberOfChanges",function(o){var l,s,u,c,d,g,h,m;return((l=(s=o.removes)===null||s===void 0?void 0:s.length)!==null&&l!==void 0?l:0)+((u=(c=o.attributes)===null||c===void 0?void 0:c.length)!==null&&u!==void 0?u:0)+((d=(g=o.texts)===null||g===void 0?void 0:g.length)!==null&&d!==void 0?d:0)+((h=(m=o.adds)===null||m===void 0?void 0:m.length)!==null&&h!==void 0?h:0)}),Ye(this,"throttleMutations",function(o){if(o.type!==3||o.data.source!==0)return o;var l=o.data,s=i.numberOfChanges(l);l.attributes&&(l.attributes=l.attributes.filter(function(c){var d,g,h,m=Pi(i.getNodeOrRelevantParent(c.id),2),A=m[0],B=m[1];return i.mutationBuckets[A]===0?!1:(i.mutationBuckets[A]=(d=i.mutationBuckets[A])!==null&&d!==void 0?d:i.bucketSize,i.mutationBuckets[A]=Math.max(i.mutationBuckets[A]-1,0),i.mutationBuckets[A]===0&&(i.loggedTracker[A]||(i.loggedTracker[A]=!0,(g=(h=i.options).onBlockedNode)===null||g===void 0||g.call(h,A,B))),c)}));var u=i.numberOfChanges(l);return u!==0||s===u?o:void 0}),this.rrweb=t,this.options=a,this.refillRate=(n=this.options.refillRate)!==null&&n!==void 0?n:this.refillRate,this.bucketSize=(r=this.options.bucketSize)!==null&&r!==void 0?r:this.bucketSize,setInterval(function(){i.refillBuckets()},1e3)}),uC=function(e){return e[e.DomContentLoaded=0]="DomContentLoaded",e[e.Load=1]="Load",e[e.FullSnapshot=2]="FullSnapshot",e[e.IncrementalSnapshot=3]="IncrementalSnapshot",e[e.Meta=4]="Meta",e[e.Custom=5]="Custom",e[e.Plugin=6]="Plugin",e}(uC||{});function ME(e){return e?l3(e).split(/\s+/):[]}function pB(e){var t="";switch(pf(e.className)){case"string":t=e.className;break;case"object":t=("baseVal"in e.className?e.className.baseVal:null)||e.getAttribute("class")||"";break;default:t=""}return ME(t)}function jY(e){return js(e)?null:l3(e).split(/(\s+)/).filter(function(t){return Vp(t)}).join("").replace(/[\r\n]/g," ").replace(/[ ]+/g," ").substring(0,255)}function gB(e){var t="";return Ny(e)&&!eI(e)&&e.childNodes&&e.childNodes.length&&cr(e.childNodes,function(n){var r;_Y(n)&&n.textContent&&(t+=(r=jY(n.textContent))!==null&&r!==void 0?r:"")}),l3(t)}function TE(e){return!!e&&e.nodeType===1}function hc(e,t){return!!e&&!!e.tagName&&e.tagName.toLowerCase()===t.toLowerCase()}function _Y(e){return!!e&&e.nodeType===3}function $Y(e){return!!e&&e.nodeType===11}var Dy=["a","button","form","input","select","textarea","label"];function qY(e){var t=e.parentNode;return!(!t||!TE(t))&&t}function pge(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:void 0,r=arguments.length>3?arguments[3]:void 0,i=arguments.length>4?arguments[4]:void 0;if(!Se||!e||hc(e,"html")||!TE(e))return!1;if(n!=null&&n.url_allowlist){var a=Se.location.href,o=n.url_allowlist;if(o&&!o.some(function(A){return a.match(A)}))return!1}if(n!=null&&n.dom_event_allowlist){var l=n.dom_event_allowlist;if(l&&!l.some(function(A){return t.type===A}))return!1}for(var s=!1,u=[e],c=!0,d=e;d.parentNode&&!hc(d,"body");)if($Y(d.parentNode))u.push(d.parentNode.host),d=d.parentNode.host;else{if(!(c=qY(d)))break;if(r||Dy.indexOf(c.tagName.toLowerCase())>-1)s=!0;else{var g=Se.getComputedStyle(c);g&&g.getPropertyValue("cursor")==="pointer"&&(s=!0)}u.push(c),d=c}if(!function(A,B){var C=B==null?void 0:B.element_allowlist;if(Pt(C))return!0;var b,Q=Kl(A);try{var F=function(){var y=b.value;if(C.some(function(G){return y.tagName.toLowerCase()===G}))return{v:!0}};for(Q.s();!(b=Q.n()).done;){var K=F();if(pf(K)==="object")return K.v}}catch(y){Q.e(y)}finally{Q.f()}return!1}(u,n)||!function(A,B){var C=B==null?void 0:B.css_selector_allowlist;if(Pt(C))return!0;var b,Q=Kl(A);try{var F=function(){var y=b.value;if(C.some(function(G){return y.matches(G)}))return{v:!0}};for(Q.s();!(b=Q.n()).done;){var K=F();if(pf(K)==="object")return K.v}}catch(y){Q.e(y)}finally{Q.f()}return!1}(u,n))return!1;var h=Se.getComputedStyle(e);if(h&&h.getPropertyValue("cursor")==="pointer"&&t.type==="click")return!0;var m=e.tagName.toLowerCase();switch(m){case"html":return!1;case"form":return(i||["submit"]).indexOf(t.type)>=0;case"input":case"select":case"textarea":return(i||["change","click"]).indexOf(t.type)>=0;default:return s?(i||["click"]).indexOf(t.type)>=0:(i||["click"]).indexOf(t.type)>=0&&(Dy.indexOf(m)>-1||e.getAttribute("contenteditable")==="true")}}function Ny(e){for(var t=e;t.parentNode&&!hc(t,"body");t=t.parentNode){var n=pB(t);if(vn(n,"ph-sensitive")||vn(n,"ph-no-capture"))return!1}if(vn(pB(e),"ph-include"))return!0;var r=e.type||"";if(ji(r))switch(r.toLowerCase()){case"hidden":case"password":return!1}var i=e.name||e.id||"";return!(ji(i)&&/^cc|cardnum|ccnum|creditcard|csc|cvc|cvv|exp|pass|pwd|routing|seccode|securitycode|securitynum|socialsec|socsec|ssn/i.test(i.replace(/[^a-zA-Z0-9]/g,"")))}function eI(e){return!!(hc(e,"input")&&!["button","checkbox","submit","reset"].includes(e.type)||hc(e,"select")||hc(e,"textarea")||e.getAttribute("contenteditable")==="true")}var tI="(4[0-9]{12}(?:[0-9]{3})?)|(5[1-5][0-9]{14})|(6(?:011|5[0-9]{2})[0-9]{12})|(3[47][0-9]{13})|(3(?:0[0-5]|[68][0-9])[0-9]{11})|((?:2131|1800|35[0-9]{3})[0-9]{11})",gge=new RegExp("^(?:".concat(tI,")$")),hge=new RegExp(tI),nI="\\d{3}-?\\d{2}-?\\d{4}",fge=new RegExp("^(".concat(nI,")$")),mge=new RegExp("(".concat(nI,")"));function Vp(e){var t=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1];return!(js(e)||ji(e)&&(e=l3(e),(t?gge:hge).test((e||"").replace(/[- ]/g,""))||(t?fge:mge).test(e)))}function SG(e){var t=gB(e);return Vp(t="".concat(t," ").concat(rI(e)).trim())?t:""}function rI(e){var t="";return e&&e.childNodes&&e.childNodes.length&&cr(e.childNodes,function(n){var r;if(n&&((r=n.tagName)===null||r===void 0?void 0:r.toLowerCase())==="span")try{var i=gB(n);t="".concat(t," ").concat(i).trim(),n.childNodes&&n.childNodes.length&&(t="".concat(t," ").concat(rI(n)).trim())}catch(a){dt.error(a)}}),t}function Age(e){return function(t){var n=t.map(function(r){var i,a,o="";if(r.tag_name&&(o+=r.tag_name),r.attr_class){r.attr_class.sort();var l,s=Kl(r.attr_class);try{for(s.s();!(l=s.n()).done;){var u=l.value;o+=".".concat(u.replace(/"/g,""))}}catch(g){s.e(g)}finally{s.f()}}var c=kt(kt(kt(kt({},r.text?{text:r.text}:{}),{},{"nth-child":(i=r.nth_child)!==null&&i!==void 0?i:0,"nth-of-type":(a=r.nth_of_type)!==null&&a!==void 0?a:0},r.href?{href:r.href}:{}),r.attr_id?{attr_id:r.attr_id}:{}),r.attributes),d={};return sC(c).sort(function(g,h){var m=Pi(g,1)[0],A=Pi(h,1)[0];return m.localeCompare(A)}).forEach(function(g){var h=Pi(g,2),m=h[0],A=h[1];return d[xG(m.toString())]=xG(A.toString())}),o+=":",o+=sC(c).map(function(g){var h=Pi(g,2),m=h[0],A=h[1];return"".concat(m,'="').concat(A,'"')}).join("")});return n.join(";")}(function(t){return t.map(function(n){var r,i,a={text:(r=n.$el_text)===null||r===void 0?void 0:r.slice(0,400),tag_name:n.tag_name,href:(i=n.attr__href)===null||i===void 0?void 0:i.slice(0,2048),attr_class:Cge(n),attr_id:n.attr__id,nth_child:n.nth_child,nth_of_type:n.nth_of_type,attributes:{}};return sC(n).filter(function(o){return Pi(o,1)[0].indexOf("attr__")===0}).forEach(function(o){var l=Pi(o,2),s=l[0],u=l[1];return a.attributes[s]=u}),a})}(e))}function xG(e){return e.replace(/"|\\"/g,'\\"')}function Cge(e){var t=e.attr__class;return t?jr(t)?t:ME(t):void 0}var Zy="[SessionRecording]",Hy="redacted",Gv={initiatorTypes:["audio","beacon","body","css","early-hint","embed","fetch","frame","iframe","icon","image","img","input","link","navigation","object","ping","script","track","video","xmlhttprequest"],maskRequestFn:function(e){return e},recordHeaders:!1,recordBody:!1,recordInitialRequests:!1,recordPerformance:!1,performanceEntryTypeToObserve:["first-input","navigation","paint","resource"],payloadSizeLimitBytes:1e6},Bge=["authorization","x-forwarded-for","authorization","cookie","set-cookie","x-api-key","x-real-ip","remote-addr","forwarded","proxy-authorization","x-csrf-token","x-csrftoken","x-xsrf-token"],wge=["password","secret","passwd","api_key","apikey","auth","credentials","mysql_pwd","privatekey","private_key","token"],bge=["/s/","/e/","/i/"];function GG(e,t,n,r){if(js(e))return e;var i=(t==null?void 0:t["content-length"])||function(a){return new Blob([a]).size}(e);return ji(i)&&(i=parseInt(i)),i>n?Zy+" ".concat(r," body too large to record (").concat(i," bytes)"):e}function kG(e,t){if(js(e))return e;var n=e;return Vp(n,!1)||(n=Zy+" "+t+" body "+Hy),cr(wge,function(r){var i,a;(i=n)!==null&&i!==void 0&&i.length&&((a=n)===null||a===void 0?void 0:a.indexOf(r))!==-1&&(n=Zy+" "+t+" body "+Hy+" as might contain: "+r)}),n}var Hl,vge=function(e,t){var n,r,i,a={payloadSizeLimitBytes:Gv.payloadSizeLimitBytes,performanceEntryTypeToObserve:f1(Gv.performanceEntryTypeToObserve)},o=e.session_recording.recordHeaders!==!1&&t.recordHeaders,l=e.session_recording.recordBody!==!1&&t.recordBody,s=e.capture_performance!==!1&&t.recordPerformance,u=(n=a,i=Math.min(1e6,(r=n.payloadSizeLimitBytes)!==null&&r!==void 0?r:1e6),function(g){return g!=null&&g.requestBody&&(g.requestBody=GG(g.requestBody,g.requestHeaders,i,"Request")),g!=null&&g.responseBody&&(g.responseBody=GG(g.responseBody,g.responseHeaders,i,"Response")),g}),c=function(g){return u(function(A){var B=DY(A.name);if(!(B&&B.pathname&&bge.some(function(C){return B.pathname.indexOf(C)===0})))return A}((m=(h=g).requestHeaders,js(m)||cr(Object.keys(m??{}),function(A){Bge.includes(A.toLowerCase())&&(m[A]=Hy)}),h)));var h,m},d=Bl(e.session_recording.maskNetworkRequestFn);return d&&Bl(e.session_recording.maskCapturedNetworkRequestFn)&&dt.warn("Both `maskNetworkRequestFn` and `maskCapturedNetworkRequestFn` are defined. `maskNetworkRequestFn` will be ignored."),d&&(e.session_recording.maskCapturedNetworkRequestFn=function(g){var h=e.session_recording.maskNetworkRequestFn({url:g.name});return kt(kt({},g),{},{name:h==null?void 0:h.url})}),a.maskRequestFn=Bl(e.session_recording.maskCapturedNetworkRequestFn)?function(g){var h,m,A,B=c(g);return B&&(h=(m=(A=e.session_recording).maskCapturedNetworkRequestFn)===null||m===void 0?void 0:m.call(A,B))!==null&&h!==void 0?h:void 0}:function(g){return function(h){if(!Pt(h))return h.requestBody=kG(h.requestBody,"Request"),h.responseBody=kG(h.responseBody,"Response"),h}(c(g))},kt(kt(kt({},Gv),a),{},{recordHeaders:o,recordBody:l,recordPerformance:s,recordInitialRequests:s})},iI=3e5,DG=iI;(function(e){e[e.Mutation=0]="Mutation",e[e.MouseMove=1]="MouseMove",e[e.MouseInteraction=2]="MouseInteraction",e[e.Scroll=3]="Scroll",e[e.ViewportResize=4]="ViewportResize",e[e.Input=5]="Input",e[e.TouchMove=6]="TouchMove",e[e.MediaInteraction=7]="MediaInteraction",e[e.StyleSheetRule=8]="StyleSheetRule",e[e.CanvasMutation=9]="CanvasMutation",e[e.Font=10]="Font",e[e.Log=11]="Log",e[e.Drag=12]="Drag",e[e.StyleDeclaration=13]="StyleDeclaration",e[e.Selection=14]="Selection",e[e.AdoptedStyleSheet=15]="AdoptedStyleSheet"})(Hl||(Hl={}));var Ls,Kge=[Hl.MouseMove,Hl.MouseInteraction,Hl.Scroll,Hl.ViewportResize,Hl.Input,Hl.TouchMove,Hl.MediaInteraction,Hl.Drag],NG=function(){function e(t,n){zn(this,e),this.size=0,this.data=[],this.sessionId=t,this.windowId=n}return Pn(e,[{key:"mostRecentSnapshotTimestamp",get:function(){return this.data.length?this.data[this.data.length-1].timestamp:null}},{key:"add",value:function(t){this.size+=t.$snapshot_bytes,this.data.push(t.$snapshot_data)}}]),e}(),ZG=function(e){return{rrwebMethod:e,enqueuedAt:Date.now(),attempt:1}},wo="[SessionRecording]",Qge=function(){function e(t){var n=this;if(zn(this,e),Ye(this,"queuedRRWebEvents",[]),Ye(this,"isIdle",!1),Ye(this,"_linkedFlagSeen",!1),Ye(this,"_lastActivityTimestamp",Date.now()),Ye(this,"_linkedFlag",null),Ye(this,"_forceAllowLocalhostNetworkCapture",!1),Ye(this,"_samplingSessionListener",null),this.instance=t,this._captureStarted=!1,this._endpoint="/s/",this.stopRrweb=void 0,this.receivedDecide=!1,Se==null||Se.addEventListener("beforeunload",function(){n._flushBuffer()}),Se==null||Se.addEventListener("offline",function(){n._tryAddCustomEvent("browser offline",{})}),Se==null||Se.addEventListener("online",function(){n._tryAddCustomEvent("browser online",{})}),Se==null||Se.addEventListener("visibilitychange",function(){if(Dt!=null&&Dt.visibilityState){var o="window "+Dt.visibilityState;n._tryAddCustomEvent(o,{})}}),!this.instance.sessionManager)throw dt.error(wo+" started without valid sessionManager"),new Error(wo+" started without valid sessionManager. This is a bug.");var r=this.sessionManager.checkAndGetSessionAndWindowId(),i=r.sessionId,a=r.windowId;this.sessionId=i,this.windowId=a,this.buffer=new NG(this.sessionId,this.windowId),this._setupSampling()}return Pn(e,[{key:"rrwebRecord",get:function(){var t;return ki==null||(t=ki.rrweb)===null||t===void 0?void 0:t.record}},{key:"started",get:function(){return this._captureStarted}},{key:"sessionManager",get:function(){if(!this.instance.sessionManager)throw new Error(wo+" started without valid sessionManager. This is a bug.");return this.instance.sessionManager}},{key:"isSampled",get:function(){var t=this.instance.get_property(Fh);return lC(t)?t:null}},{key:"sessionDuration",get:function(){var t=this.buffer.mostRecentSnapshotTimestamp,n=this.sessionManager.checkAndGetSessionAndWindowId(!0).sessionStartTimestamp;return t?t-n:null}},{key:"isRecordingEnabled",get:function(){var t=!!this.instance.get_property(Ky),n=!this.instance.config.disable_session_recording;return Se&&t&&n}},{key:"isConsoleLogCaptureEnabled",get:function(){var t=!!this.instance.get_property(mG),n=this.instance.config.enable_recording_console_log;return n??t}},{key:"canvasRecording",get:function(){var t=this.instance.get_property(CG);return t&&t.fps&&t.quality?{enabled:t.enabled,fps:t.fps,quality:t.quality}:void 0}},{key:"networkPayloadCapture",get:function(){var t,n,r=this.instance.get_property(AG),i={recordHeaders:(t=this.instance.config.session_recording)===null||t===void 0?void 0:t.recordHeaders,recordBody:(n=this.instance.config.session_recording)===null||n===void 0?void 0:n.recordBody},a=(i==null?void 0:i.recordHeaders)||(r==null?void 0:r.recordHeaders),o=(i==null?void 0:i.recordBody)||(r==null?void 0:r.recordBody),l=this.instance.config.capture_performance||(r==null?void 0:r.capturePerformance);return a||o||l?{recordHeaders:a,recordBody:o,recordPerformance:l}:void 0}},{key:"sampleRate",get:function(){var t=this.instance.get_property(BG);return Tl(t)?t:null}},{key:"minimumDuration",get:function(){var t=this.instance.get_property(wG);return Tl(t)?t:null}},{key:"status",get:function(){return this.receivedDecide?this.isRecordingEnabled?js(this._linkedFlag)||this._linkedFlagSeen?lC(this.isSampled)?this.isSampled?"sampled":"disabled":"active":"buffering":"disabled":"buffering"}},{key:"startIfEnabledOrStop",value:function(){this.isRecordingEnabled?(this._startCapture(),dt.info(wo+" started")):(this.stopRecording(),this.clearBuffer())}},{key:"stopRecording",value:function(){this._captureStarted&&this.stopRrweb&&(this.stopRrweb(),this.stopRrweb=void 0,this._captureStarted=!1,dt.info(wo+" stopped"))}},{key:"makeSamplingDecision",value:function(t){var n,r=this.sessionId!==t,i=this.sampleRate;if(Tl(i)){var a,o=this.isSampled,l=r||!lC(o);l?a=Math.random()1&&arguments[1]!==void 0?arguments[1]:"log";(n=this.instance.sessionRecording)===null||n===void 0||n.onRRwebEmit({type:6,data:{plugin:"rrweb/console@1",payload:{level:r,trace:[],payload:[JSON.stringify(t)]}},timestamp:SY()})}},{key:"_startCapture",value:function(){var t=this;Pt(Object.assign)||this._captureStarted||this.instance.config.disable_session_recording||this.instance.consent.isOptedOut()||(this._captureStarted=!0,this.sessionManager.checkAndGetSessionAndWindowId(),this.rrwebRecord?this._onScriptLoaded():gf(this.instance.requestRouter.endpointFor("assets","/static/recorder.js?v=".concat(y0.LIB_VERSION)),function(n){if(n)return dt.error(wo+" could not load recorder.js",n);t._onScriptLoaded()}))}},{key:"isInteractiveEvent",value:function(t){var n;return t.type===3&&Kge.indexOf((n=t.data)===null||n===void 0?void 0:n.source)!==-1}},{key:"_updateWindowAndSessionIds",value:function(t){var n=this.isInteractiveEvent(t);n||this.isIdle||t.timestamp-this._lastActivityTimestamp>DG&&(this.isIdle=!0,this._tryAddCustomEvent("sessionIdle",{reason:"user inactivity",timeSinceLastActive:t.timestamp-this._lastActivityTimestamp,threshold:DG}),clearTimeout(this._fullSnapshotTimer),this._flushBuffer());var r=!1;if(n&&(this._lastActivityTimestamp=t.timestamp,this.isIdle&&(this.isIdle=!1,this._tryAddCustomEvent("sessionNoLongerIdle",{reason:"user activity",type:t.type}),r=!0)),!this.isIdle){var i=this.sessionManager.checkAndGetSessionAndWindowId(!n,t.timestamp),a=i.windowId,o=i.sessionId,l=this.sessionId!==o,s=this.windowId!==a;this.windowId=a,this.sessionId=o,(r||[uge,cge].indexOf(t.type)===-1&&(s||l||Pt(this._fullSnapshotTimer)))&&this._tryTakeFullSnapshot()}}},{key:"_tryRRWebMethod",value:function(t){try{return t.rrwebMethod(),!0}catch(n){return this.queuedRRWebEvents.length<10?this.queuedRRWebEvents.push({enqueuedAt:t.enqueuedAt||Date.now(),attempt:t.attempt++,rrwebMethod:t.rrwebMethod}):dt.warn(wo+" could not emit queued rrweb event.",n,t),!1}}},{key:"_tryAddCustomEvent",value:function(t,n){var r=this;return this._tryRRWebMethod(ZG(function(){return r.rrwebRecord.addCustomEvent(t,n)}))}},{key:"_tryTakeFullSnapshot",value:function(){var t=this;return this._tryRRWebMethod(ZG(function(){return t.rrwebRecord.takeFullSnapshot()}))}},{key:"_onScriptLoaded",value:function(){for(var t,n=this,r={blockClass:"ph-no-capture",blockSelector:void 0,ignoreClass:"ph-ignore-input",maskTextClass:"ph-mask",maskTextSelector:void 0,maskTextFn:void 0,maskAllInputs:!0,maskInputOptions:{},maskInputFn:void 0,slimDOMOptions:{},collectFonts:!1,inlineStylesheet:!0,recordCrossOriginIframes:!1},i=this.instance.config.session_recording,a=0,o=Object.entries(i||{});a10&&(s.data.payload.payload=s.data.payload.payload.slice(0,10),s.data.payload.payload.push("...[truncated]"));for(var u=[],c=0;c2e3?u.push(s.data.payload.payload[c].slice(0,2e3)+"...[truncated]"):u.push(s.data.payload.payload[c]);return s.data.payload.payload=u,l}return l}(r),a=JSON.stringify(i).length;if(this._updateWindowAndSessionIds(i),!this.isIdle||i.type===uC.Custom){var o={$snapshot_bytes:a,$snapshot_data:i,$session_id:this.sessionId,$window_id:this.windowId};this.status!=="disabled"?this._captureSnapshotBuffered(o):this.clearBuffer()}}}}},{key:"_pageViewFallBack",value:function(){if(!this.instance.config.capture_pageview&&Se){var t=this._maskUrl(Se.location.href);this._lastHref!==t&&(this._tryAddCustomEvent("$url_changed",{href:t}),this._lastHref=t)}}},{key:"_processQueuedEvents",value:function(){var t=this;if(this.queuedRRWebEvents.length){var n=f1(this.queuedRRWebEvents);this.queuedRRWebEvents=[],n.forEach(function(r){Date.now()-r.enqueuedAt>2e3?t._tryAddCustomEvent("rrwebQueueTimeout",{enqueuedAt:r.enqueuedAt,attempt:r.attempt,queueLength:n.length}):t._tryRRWebMethod(r)&&t._tryAddCustomEvent("rrwebQueueSuccess",{enqueuedAt:r.enqueuedAt,attempt:r.attempt,queueLength:n.length})})}}},{key:"_maskUrl",value:function(t){var n=this.instance.config.session_recording;if(n.maskNetworkRequestFn){var r,i={url:t};return(r=i=n.maskNetworkRequestFn(i))===null||r===void 0?void 0:r.url}return t}},{key:"clearBuffer",value:function(){this.buffer=new NG(this.sessionId,this.windowId)}},{key:"_flushBuffer",value:function(){var t=this;this.flushBufferTimer&&(clearTimeout(this.flushBufferTimer),this.flushBufferTimer=void 0);var n=this.minimumDuration,r=this.sessionDuration,i=Tl(r)&&r>=0,a=Tl(n)&&i&&r0&&this._captureSnapshot({$snapshot_bytes:this.buffer.size,$snapshot_data:this.buffer.data,$session_id:this.buffer.sessionId,$window_id:this.buffer.windowId}),this.clearBuffer())}},{key:"_captureSnapshotBuffered",value:function(t){var n,r=this,i=2+(((n=this.buffer)===null||n===void 0?void 0:n.data.length)||0);(this.buffer.size+t.$snapshot_bytes+i>943718.4||this.buffer.sessionId!==this.sessionId)&&this._flushBuffer(),this.buffer.add(t),this.flushBufferTimer||(this.flushBufferTimer=setTimeout(function(){r._flushBuffer()},2e3))}},{key:"_captureSnapshot",value:function(t){this.instance.capture("$snapshot",t,{_url:this.instance.requestRouter.endpointFor("api",this._endpoint),_noTruncate:!0,_batchKey:"recordings",_noHeatmaps:!0})}}]),e}(),Wge=function(){function e(t){zn(this,e),this.instance=t,this.instance.decideEndpointWasHit=this.instance._hasBootstrappedFeatureFlags()}return Pn(e,[{key:"call",value:function(){var t=this,n={token:this.instance.config.token,distinct_id:this.instance.get_distinct_id(),groups:this.instance.getGroups(),person_properties:this.instance.get_property(Fp),group_properties:this.instance.get_property(Xu),disable_flags:this.instance.config.advanced_disable_feature_flags||this.instance.config.advanced_disable_feature_flags_on_first_load||void 0};this.instance._send_request({method:"POST",url:this.instance.requestRouter.endpointFor("api","/decide/?v=3"),data:n,compression:this.instance.config.disable_compression?void 0:cl.Base64,timeout:this.instance.config.feature_flag_request_timeout_ms,callback:function(r){return t.parseDecideResponse(r.json)}})}},{key:"parseDecideResponse",value:function(t){var n=this;this.instance.featureFlags.setReloadingPaused(!1),this.instance.featureFlags._startReloadTimer();var r=!t;if(this.instance.config.advanced_disable_feature_flags_on_first_load||this.instance.config.advanced_disable_feature_flags||this.instance.featureFlags.receivedFeatureFlags(t??{},r),r)dt.error("Failed to fetch feature flags from PostHog.");else{if(!Dt||!Dt.body)return dt.info("document not ready yet, trying again in 500 milliseconds..."),void setTimeout(function(){n.parseDecideResponse(t)},500);this.instance._afterDecideResponse(t);var i=Se==null?void 0:Se.extendPostHogWithExceptionAutoCapture;if(t.autocaptureExceptions&&t.autocaptureExceptions&&Pt(i)&&gf(this.instance.requestRouter.endpointFor("assets","/static/exception-autocapture.js"),function(s){if(s)return dt.error("Could not load exception autocapture script",s);Se.extendPostHogWithExceptionAutocapture(n.instance,t)}),t.siteApps)if(this.instance.config.opt_in_site_apps){var a,o=Kl(t.siteApps);try{var l=function(){var s=a.value,u=s.id,c=s.url,d=n.instance.requestRouter.endpointFor("api",c);ki["__$$ph_site_app_".concat(u)]=n.instance,gf(d,function(g){g&&dt.error("Error while initializing PostHog app with config id ".concat(u),g)})};for(o.s();!(a=o.n()).done;)l()}catch(s){o.e(s)}finally{o.f()}}else t.siteApps.length>0&&dt.error('PostHog site apps are disabled. Enable the "opt_in_site_apps" config to proceed.')}}}]),e}(),yge=Se!=null&&Se.location?cB(Se.location.hash,"__posthog")||cB(location.hash,"state"):null,HG="_postHogToolbarParams";(function(e){e[e.UNINITIALIZED=0]="UNINITIALIZED",e[e.LOADING=1]="LOADING",e[e.LOADED=2]="LOADED"})(Ls||(Ls={}));var Fge=function(){function e(t){zn(this,e),this.instance=t}return Pn(e,[{key:"setToolbarState",value:function(t){ki.ph_toolbar_state=t}},{key:"getToolbarState",value:function(){var t;return(t=ki.ph_toolbar_state)!==null&&t!==void 0?t:Ls.UNINITIALIZED}},{key:"maybeLoadToolbar",value:function(){var t,n,r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:void 0,i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:void 0,a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:void 0;if(!Se||!Dt)return!1;r=(t=r)!==null&&t!==void 0?t:Se.location,a=(n=a)!==null&&n!==void 0?n:Se.history;try{if(!i){try{Se.localStorage.setItem("test","test"),Se.localStorage.removeItem("test")}catch{return!1}i=Se==null?void 0:Se.localStorage}var o,l=yge||cB(r.hash,"__posthog")||cB(r.hash,"state"),s=l?hG(function(){return JSON.parse(atob(decodeURIComponent(l)))})||hG(function(){return JSON.parse(decodeURIComponent(l))}):null;return s&&s.action==="ph_authorize"?((o=s).source="url",o&&Object.keys(o).length>0&&(s.desiredHash?r.hash=s.desiredHash:a?a.replaceState(a.state,"",r.pathname+r.search):r.hash="")):((o=JSON.parse(i.getItem(HG)||"{}")).source="localstorage",delete o.userIntent),!(!o.token||this.instance.config.token!==o.token)&&(this.loadToolbar(o),!0)}catch{return!1}}},{key:"_callLoadToolbar",value:function(t){(ki.ph_load_toolbar||ki.ph_load_editor)(t,this.instance)}},{key:"loadToolbar",value:function(t){var n=this,r=!(Dt==null||!Dt.getElementById(Sy));if(!Se||r)return!1;var i=this.instance.requestRouter.region==="custom"&&this.instance.config.advanced_disable_toolbar_metrics,a=kt(kt({token:this.instance.config.token},t),{},{apiURL:this.instance.requestRouter.endpointFor("ui")},i?{instrument:!1}:{});if(Se.localStorage.setItem(HG,JSON.stringify(kt(kt({},a),{},{source:void 0}))),this.getToolbarState()===Ls.LOADED)this._callLoadToolbar(a);else if(this.getToolbarState()===Ls.UNINITIALIZED){this.setToolbarState(Ls.LOADING);var o=3e5,l=Math.floor(Date.now()/o)*o;gf(this.instance.requestRouter.endpointFor("assets","/static/toolbar.js?t=".concat(l)),function(s){if(s)return dt.error("Failed to load toolbar",s),void n.setToolbarState(Ls.UNINITIALIZED);n.setToolbarState(Ls.LOADED),n._callLoadToolbar(a)}),Ys(Se,"turbolinks:load",function(){n.setToolbarState(Ls.UNINITIALIZED),n.loadToolbar(a)})}return!0}},{key:"_loadEditor",value:function(t){return this.loadToolbar(t)}},{key:"maybeLoadEditor",value:function(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:void 0,n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:void 0,r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:void 0;return this.maybeLoadToolbar(t,n,r)}}]),e}(),Ege=function(){function e(t){zn(this,e),Ye(this,"isPaused",!0),Ye(this,"queue",[]),Ye(this,"flushTimeoutMs",3e3),this.sendRequest=t}return Pn(e,[{key:"enqueue",value:function(t){this.queue.push(t),this.flushTimeout||this.setFlushTimeout()}},{key:"unload",value:function(){var t=this;this.clearFlushTimeout();var n=this.queue.length>0?this.formatQueue():{},r=Object.values(n);[].concat(f1(r.filter(function(i){return i.url.indexOf("/e")===0})),f1(r.filter(function(i){return i.url.indexOf("/e")!==0}))).map(function(i){t.sendRequest(kt(kt({},i),{},{transport:"sendBeacon"}))})}},{key:"enable",value:function(){this.isPaused=!1,this.setFlushTimeout()}},{key:"setFlushTimeout",value:function(){var t=this;this.isPaused||(this.flushTimeout=setTimeout(function(){if(t.clearFlushTimeout(),t.queue.length>0){var n=t.formatQueue(),r=function(a){var o=n[a],l=new Date().getTime();o.data&&jr(o.data)&&cr(o.data,function(s){s.offset=Math.abs(s.timestamp-l),delete s.timestamp}),t.sendRequest(o)};for(var i in n)r(i)}},this.flushTimeoutMs))}},{key:"clearFlushTimeout",value:function(){clearTimeout(this.flushTimeout),this.flushTimeout=void 0}},{key:"formatQueue",value:function(){var t={};return cr(this.queue,function(n){var r,i=n,a=(i?i.batchKey:null)||i.url;Pt(t[a])&&(t[a]=kt(kt({},i),{},{data:[]})),(r=t[a].data)===null||r===void 0||r.push(i.data)}),this.queue=[],t}}]),e}(),qa=Uint8Array,_i=Uint16Array,A1=Uint32Array,VE=new qa([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),YE=new qa([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),XG=new qa([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),aI=function(e,t){for(var n=new _i(31),r=0;r<31;++r)n[r]=t+=1<>>1|(21845&dr)<<1;o0=(61680&(o0=(52428&o0)>>>2|(13107&o0)<<2))>>>4|(3855&o0)<<4,Ly[dr]=((65280&o0)>>>8|(255&o0)<<8)>>>1}var Eh=function(e,t,n){for(var r=e.length,i=0,a=new _i(t);i>>s]=u}else for(o=new _i(r),i=0;i>>15-e[i];return o},td=new qa(288);for(dr=0;dr<144;++dr)td[dr]=8;for(dr=144;dr<256;++dr)td[dr]=9;for(dr=256;dr<280;++dr)td[dr]=7;for(dr=280;dr<288;++dr)td[dr]=8;var hB=new qa(32);for(dr=0;dr<32;++dr)hB[dr]=5;var Sge=Eh(td,9,0),xge=Eh(hB,5,0),lI=function(e){return(e/8>>0)+(7&e&&1)},sI=function(e,t,n){(t==null||t<0)&&(t=0),(n==null||n>e.length)&&(n=e.length);var r=new(e instanceof _i?_i:e instanceof A1?A1:qa)(n-t);return r.set(e.subarray(t,n)),r},Ss=function(e,t,n){n<<=7&t;var r=t/8>>0;e[r]|=n,e[r+1]|=n>>>8},kg=function(e,t,n){n<<=7&t;var r=t/8>>0;e[r]|=n,e[r+1]|=n>>>8,e[r+2]|=n>>>16},kv=function(e,t){for(var n=[],r=0;rg&&(g=a[r].s);var h=new _i(g+1),m=Gge(n[c-1],h,0);if(m>t){r=0;var A=0,B=m-t,C=1<t))break;A+=C-(1<>>=B;A>0;){var Q=a[r].s;h[Q]=0&&A;--r){var F=a[r].s;h[F]==t&&(--h[F],++A)}m=t}return[new qa(h),m]},Gge=function e(t,n,r){return t.s==-1?Math.max(e(t.l,n,r+1),e(t.r,n,r+1)):n[t.s]=r},MG=function(e){for(var t=e.length;t&&!e[--t];);for(var n=new _i(++t),r=0,i=e[0],a=1,o=function(s){n[r++]=s},l=1;l<=t;++l)if(e[l]==i&&l!=t)++a;else{if(!i&&a>2){for(;a>138;a-=138)o(32754);a>2&&(o(a>10?a-11<<5|28690:a-3<<5|12305),a=0)}else if(a>3){for(o(i),--a;a>6;a-=6)o(8304);a>2&&(o(a-3<<5|8208),a=0)}for(;a--;)o(i);a=1,i=e[l]}return[n.subarray(0,r),t]},Dg=function(e,t){for(var n=0,r=0;r>>8,e[i+2]=255^e[i],e[i+3]=255^e[i+1];for(var a=0;a4&&!v[XG[D-1]];--D);var V,z,j,te,J=u+5<<3,I=Dg(i,td)+Dg(a,hB)+o,se=Dg(i,g)+Dg(a,A)+o+14+3*D+Dg(G,v)+(2*G[16]+3*G[17]+7*G[18]);if(J<=I&&J<=se)return cC(t,c,e.subarray(s,s+u));if(Ss(t,c,1+(se15&&(Ss(t,c,T[X]>>>5&127),c+=T[X]>>>12)}}}else V=Sge,z=td,j=xge,te=hB;for(X=0;X255){ue=r[X]>>>18&31,kg(t,c,V[ue+257]),c+=z[ue+257],ue>7&&(Ss(t,c,r[X]>>>23&31),c+=VE[ue]);var fe=31&r[X];kg(t,c,j[fe]),c+=te[fe],fe>3&&(kg(t,c,r[X]>>>5&8191),c+=YE[fe])}else kg(t,c,V[r[X]]),c+=z[r[X]];return kg(t,c,V[256]),c+z[256]},kge=new A1([65540,131080,131088,131104,262176,1048704,1048832,2114560,2117632]),Dge=new qa(0),Nge=function(){for(var e=new A1(256),t=0;t<256;++t){for(var n=t,r=9;--r;)n=(1&n&&3988292384)^n>>>1;e[t]=n}return e}(),Zge=function(e,t,n,r,i){return function(a,o,l,s,u,c){var d=a.length,g=new qa(s+d+5*(1+Math.floor(d/7e3))+u),h=g.subarray(s,g.length-u),m=0;if(!o||d<8)for(var A=0;A<=d;A+=65535){var B=A+65535;B>>13,Q=8191&C,F=(1<7e3||j>24576)&&S>423){m=TG(a,h,0,v,k,D,z,j,J,A-J,m),j=V=z=0,J=A;for(var q=0;q<286;++q)k[q]=0;for(q=0;q<30;++q)D[q]=0}var T=2,ue=0,fe=Q,_=se-Z&32767;if(S>2&&I==H(A-_))for(var Ze=Math.min(b,S)-1,ve=Math.min(32767,A),it=Math.min(258,S);_<=ve&&--fe&&se!=Z;){if(a[A+T]==a[A+T-_]){for(var et=0;etT){if(T=et,ue=_,et>Ze)break;var ot=Math.min(_,et-2),Oe=0;for(q=0;qOe&&(Oe=st,Z=tt)}}}_+=(se=Z)-(Z=K[se])+32768&32767}if(ue){v[j++]=268435456|Xy[T]<<18|LG[ue];var pt=31&Xy[T],ht=31&LG[ue];z+=VE[pt]+YE[ht],++k[257+pt],++D[ht],te=A+T,++V}else v[j++]=a[A],++k[a[A]]}}m=TG(a,h,c,v,k,D,z,j,J,A-J,m),c||(m=cC(h,m,Dge))}return sI(g,0,s+lI(m)+u)}(e,t.level==null?6:t.level,t.mem==null?Math.ceil(1.5*Math.max(8,Math.min(13,Math.log(e.length)))):12+t.mem,n,r,!i)},Dv=function(e,t,n){for(;n;++t)e[t]=n,n>>>=8};function Hge(e,t){t===void 0&&(t={});var n=function(){var l=4294967295;return{p:function(s){for(var u=l,c=0;c>>8;l=u},d:function(){return 4294967295^l}}}(),r=e.length;n.p(e);var i,a=Zge(e,t,10+((i=t).filename&&i.filename.length+1||0),8),o=a.length;return function(l,s){var u=s.filename;if(l[0]=31,l[1]=139,l[2]=8,l[8]=s.level<2?4:s.level==9?2:0,l[9]=3,s.mtime!=0&&Dv(l,4,Math.floor(new Date(s.mtime||Date.now())/1e3)),u){l[3]=8;for(var c=0;c<=u.length;++c)l[c+10]=u.charCodeAt(c)}}(a,t),Dv(a,o-8,n.d()),Dv(a,o-4,r),a}var Xge=!!wy||!!By,VG="text/plain",fB=function(e,t){var n=Pi(e.split("?"),2),r=n[0],i=n[1],a=kt({},t);i==null||i.split("&").forEach(function(l){var s=Pi(l.split("="),1)[0];delete a[s]});var o=_1e(a);return o=o?(i?i+"&":"")+o:i,"".concat(r,"?").concat(o)},Lge=function(e){return"data="+encodeURIComponent(typeof e=="string"?e:JSON.stringify(e))},Nv=function(e){var t=e.data,n=e.compression;if(t){if(n===cl.GZipJS){var r=Hge(function(a,o){var l=a.length;if(!o&&typeof TextEncoder<"u")return new TextEncoder().encode(a);for(var s=new qa(a.length+(a.length>>>1)),u=0,c=function(m){s[u++]=m},d=0;ds.length){var g=new qa(u+8+(l-d<<1));g.set(s),s=g}var h=a.charCodeAt(d);h<128||o?c(h):h<2048?(c(192|h>>>6),c(128|63&h)):h>55295&&h<57344?(c(240|(h=65536+(1047552&h)|1023&a.charCodeAt(++d))>>>18),c(128|h>>>12&63),c(128|h>>>6&63),c(128|63&h)):(c(224|h>>>12),c(128|h>>>6&63),c(128|63&h))}return sI(s,0,u)}(JSON.stringify(t)),{mtime:0});return{contentType:VG,body:new Blob([r],{type:VG})}}if(n===cl.Base64){var i=function(a){var o,l,s,u,c,d="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",g=0,h=0,m="",A=[];if(!a)return a;a=H1e(a);do o=(c=a.charCodeAt(g++)<<16|a.charCodeAt(g++)<<8|a.charCodeAt(g++))>>18&63,l=c>>12&63,s=c>>6&63,u=63&c,A[h++]=d.charAt(o)+d.charAt(l)+d.charAt(s)+d.charAt(u);while(g0&&(i.url=fB(i.url,{retry_count:r})),this.instance._send_request(kt(kt({},i),{},{callback:function(a){var o;a.statusCode!==200&&(a.statusCode<400||a.statusCode>=500)&&(r??0)<10?n.enqueue(kt({retriesPerformedSoFar:r},i)):(o=i.callback)===null||o===void 0||o.call(i,a)}}))}},{key:"enqueue",value:function(t){var n=t.retriesPerformedSoFar||0;t.retriesPerformedSoFar=n+1;var r=function(o){var l=3e3*Math.pow(2,o),s=l/2,u=Math.min(18e5,l),c=(Math.random()-.5)*(u-s);return Math.ceil(u+c)}(n),i=Date.now()+r;this.queue.push({retryAt:i,requestOptions:t});var a="Enqueued failed request for retry in ".concat(r);navigator.onLine||(a+=" (Browser is offline)"),dt.warn(a),this.isPolling||(this.isPolling=!0,this.poll())}},{key:"poll",value:function(){var t=this;this.poller&&clearTimeout(this.poller),this.poller=setTimeout(function(){t.areWeOnline&&t.queue.length>0&&t.flush(),t.poll()},this.pollIntervalMs)}},{key:"flush",value:function(){var t=Date.now(),n=[],r=this.queue.filter(function(l){return l.retryAt0){var i,a=Kl(r);try{for(a.s();!(i=a.n()).done;){var o=i.value.requestOptions;this.retriableRequest(o)}}catch(l){a.e(l)}finally{a.f()}}}},{key:"unload",value:function(){this.poller&&(clearTimeout(this.poller),this.poller=void 0);var t,n=Kl(this.queue);try{for(n.s();!(t=n.n()).done;){var r=t.value.requestOptions;try{this.instance._send_request(kt(kt({},r),{},{transport:"sendBeacon"}))}catch(i){dt.error(i)}}}catch(i){n.e(i)}finally{n.f()}this.queue=[]}}]),e}(),OA=1800,Vge=function(){function e(t,n,r,i){zn(this,e),Ye(this,"_sessionIdChangedHandlers",[]),this.config=t,this.persistence=n,this._windowId=void 0,this._sessionId=void 0,this._sessionStartTimestamp=null,this._sessionActivityTimestamp=null,this._sessionIdGenerator=r||Pu,this._windowIdGenerator=i||Pu;var a=t.persistence_name||t.token,o=t.session_idle_timeout_seconds||OA;if(Tl(o)?o>OA?dt.warn("session_idle_timeout_seconds cannot be greater than 30 minutes. Using 30 minutes instead."):o<60&&dt.warn("session_idle_timeout_seconds cannot be less than 60 seconds. Using 60 seconds instead."):(dt.warn("session_idle_timeout_seconds must be a number. Defaulting to 30 minutes."),o=OA),this._sessionTimeoutMs=1e3*Math.min(Math.max(o,60),OA),this._window_id_storage_key="ph_"+a+"_window_id",this._primary_window_exists_storage_key="ph_"+a+"_primary_window_exists",this._canUseSessionStorage()){var l=Ai.parse(this._window_id_storage_key),s=Ai.parse(this._primary_window_exists_storage_key);l&&!s?this._windowId=l:Ai.remove(this._window_id_storage_key),Ai.set(this._primary_window_exists_storage_key,!0)}this._listenToReloadWindow()}return Pn(e,[{key:"onSessionId",value:function(t){var n=this;return Pt(this._sessionIdChangedHandlers)&&(this._sessionIdChangedHandlers=[]),this._sessionIdChangedHandlers.push(t),this._sessionId&&t(this._sessionId,this._windowId),function(){n._sessionIdChangedHandlers=n._sessionIdChangedHandlers.filter(function(r){return r!==t})}}},{key:"_canUseSessionStorage",value:function(){return this.config.persistence!=="memory"&&!this.persistence.disabled&&Ai.is_supported()}},{key:"_setWindowId",value:function(t){t!==this._windowId&&(this._windowId=t,this._canUseSessionStorage()&&Ai.set(this._window_id_storage_key,t))}},{key:"_getWindowId",value:function(){return this._windowId?this._windowId:this._canUseSessionStorage()?Ai.parse(this._window_id_storage_key):null}},{key:"_setSessionId",value:function(t,n,r){t===this._sessionId&&n===this._sessionActivityTimestamp&&r===this._sessionStartTimestamp||(this._sessionStartTimestamp=r,this._sessionActivityTimestamp=n,this._sessionId=t,this.persistence.register(Ye({},lB,[n,t,r])))}},{key:"_getSessionId",value:function(){if(this._sessionId&&this._sessionActivityTimestamp&&this._sessionStartTimestamp)return[this._sessionActivityTimestamp,this._sessionId,this._sessionStartTimestamp];var t=this.persistence.props[lB];return jr(t)&&t.length===2&&t.push(t[0]),t||[0,null,0]}},{key:"resetSessionId",value:function(){this._setSessionId(null,null,null)}},{key:"_listenToReloadWindow",value:function(){var t=this;Se==null||Se.addEventListener("beforeunload",function(){t._canUseSessionStorage()&&Ai.remove(t._primary_window_exists_storage_key)})}},{key:"checkAndGetSessionAndWindowId",value:function(){var t=arguments.length>0&&arguments[0]!==void 0&&arguments[0],n=(arguments.length>1&&arguments[1]!==void 0?arguments[1]:null)||new Date().getTime(),r=Pi(this._getSessionId(),3),i=r[0],a=r[1],o=r[2],l=this._getWindowId(),s=o&&o>0&&Math.abs(n-o)>864e5,u=!1,c=!a,d=!t&&Math.abs(n-i)>this._sessionTimeoutMs;c||d||s?(a=this._sessionIdGenerator(),l=this._windowIdGenerator(),dt.info("[SessionId] new session ID generated",{sessionId:a,windowId:l,changeReason:{noSessionId:c,activityTimeout:d,sessionPastMaximumLength:s}}),o=n,u=!0):l||(l=this._windowIdGenerator(),u=!0);var g=i===0||!t||s?n:i,h=o===0?new Date().getTime():o;return this._setWindowId(l),this._setSessionId(a,g,h),u&&this._sessionIdChangedHandlers.forEach(function(m){return m(a,l)}),{sessionId:a,windowId:l,sessionStartTimestamp:h}}}]),e}();(function(e){e.US="us",e.EU="eu",e.CUSTOM="custom"})(F0||(F0={}));var YG="i.posthog.com",Yge=function(){function e(t){zn(this,e),Ye(this,"_regionCache",{}),this.instance=t}return Pn(e,[{key:"apiHost",get:function(){return this.instance.config.api_host.trim().replace(/\/$/,"")}},{key:"uiHost",get:function(){var t,n=(t=this.instance.config.ui_host)===null||t===void 0?void 0:t.replace(/\/$/,"");return n==="https://app.posthog.com"?"https://us.posthog.com":n}},{key:"region",get:function(){return this._regionCache[this.apiHost]||(/https:\/\/(app|us|us-assets)(\.i)?\.posthog\.com/i.test(this.apiHost)?this._regionCache[this.apiHost]=F0.US:/https:\/\/(eu|eu-assets)(\.i)?\.posthog\.com/i.test(this.apiHost)?this._regionCache[this.apiHost]=F0.EU:this._regionCache[this.apiHost]=F0.CUSTOM),this._regionCache[this.apiHost]}},{key:"endpointFor",value:function(t){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"";if(n&&(n=n[0]==="/"?n:"/".concat(n)),t==="ui")return(this.uiHost||this.apiHost.replace(".".concat(YG),".posthog.com"))+n;if(this.region===F0.CUSTOM)return this.apiHost+n;var r=YG+n;switch(t){case"assets":return"https://".concat(this.region,"-assets.").concat(r);case"api":return"https://".concat(this.region,".").concat(r)}}}]),e}(),Ige=Pn(function e(t,n,r,i){var a=arguments.length>4&&arguments[4]!==void 0?arguments[4]:["error"];zn(this,e),this.name="posthog-js",this.setupOnce=function(o){o(function(l){var s,u,c,d,g;if(!(a==="*"||a.includes(l.level))||!t.__loaded)return l;l.tags||(l.tags={});var h=t.requestRouter.endpointFor("ui","/project/".concat(t.config.token,"/person/").concat(t.get_distinct_id()));l.tags["PostHog Person URL"]=h,t.sessionRecordingStarted()&&(l.tags["PostHog Recording URL"]=t.get_session_replay_url({withTimestamp:!0}));var m=((s=l.exception)===null||s===void 0?void 0:s.values)||[],A={$exception_message:((u=m[0])===null||u===void 0?void 0:u.value)||l.message,$exception_type:(c=m[0])===null||c===void 0?void 0:c.type,$exception_personURL:h,$sentry_event_id:l.event_id,$sentry_exception:l.exception,$sentry_exception_message:((d=m[0])===null||d===void 0?void 0:d.value)||l.message,$sentry_exception_type:(g=m[0])===null||g===void 0?void 0:g.type,$sentry_tags:l.tags,$level:l.level};return n&&r&&(A.$sentry_url=(i||"https://sentry.io/organizations/")+n+"/issues/?project="+r+"&query="+l.event_id),t.capture("$exception",A),l})}});function Uge(e,t){var n=e.config.segment;if(!n)return t();(function(r,i){var a=r.config.segment;if(!a)return i();var o=function(s){var u=function(){return s.anonymousId()||Pu()};r.config.get_device_id=u,s.id()&&(r.register({distinct_id:s.id(),$device_id:u()}),r.persistence.set_property(Xs,"identified")),i()},l=a.user();"then"in l&&Bl(l.then)?l.then(function(s){return o(s)}):o(l)})(e,function(){n.register(function(r){Promise&&Promise.resolve||dt.warn("This browser does not have Promise support, and can not use the segment integration");var i=function(a,o){var l;if(!o)return a;a.event.userId||a.event.anonymousId===r.get_distinct_id()||r.reset(),a.event.userId&&a.event.userId!==r.get_distinct_id()&&(r.register({distinct_id:a.event.userId}),r.reloadFeatureFlags());var s=r._calculate_event_properties(o,(l=a.event.properties)!==null&&l!==void 0?l:{});return a.event.properties=Object.assign({},s,a.event.properties),a};return{name:"PostHog JS",type:"enrichment",version:"1.0.0",isLoaded:function(){return!0},load:function(){return Promise.resolve()},track:function(a){return i(a,a.event.event)},page:function(a){return i(a,"$pageview")},identify:function(a){return i(a,"$identify")},screen:function(a){return i(a,"$screen")}}}(e)).then(function(){t()})})}var Oge=function(){function e(t){zn(this,e),this._instance=t}return Pn(e,[{key:"doPageView",value:function(){var t,n=this._previousScrollProperties();return this._currentPath=(t=Se==null?void 0:Se.location.pathname)!==null&&t!==void 0?t:"",this._instance.scrollManager.resetContext(),n}},{key:"doPageLeave",value:function(){return this._previousScrollProperties()}},{key:"_previousScrollProperties",value:function(){var t=this._currentPath,n=this._instance.scrollManager.getContext();if(!t||!n)return{};var r=n.maxScrollHeight,i=n.lastScrollY,a=n.maxScrollY,o=n.maxContentHeight,l=n.lastContentY,s=n.maxContentY;return Pt(r)||Pt(i)||Pt(a)||Pt(o)||Pt(l)||Pt(s)?{}:(r=Math.ceil(r),i=Math.ceil(i),a=Math.ceil(a),o=Math.ceil(o),l=Math.ceil(l),s=Math.ceil(s),{$prev_pageview_pathname:t,$prev_pageview_last_scroll:i,$prev_pageview_last_scroll_percentage:r<=1?1:JA(i/r,0,1),$prev_pageview_max_scroll:a,$prev_pageview_max_scroll_percentage:r<=1?1:JA(a/r,0,1),$prev_pageview_last_content:l,$prev_pageview_last_content_percentage:o<=1?1:JA(l/o,0,1),$prev_pageview_max_content:s,$prev_pageview_max_content_percentage:o<=1?1:JA(s/o,0,1)})}}]),e}();function JA(e,t,n){return Math.max(t,Math.min(e,n))}var Jge={icontains:function(e){return!!Se&&Se.location.href.toLowerCase().indexOf(e.toLowerCase())>-1},regex:function(e){return!!Se&&j1e(Se.location.href,e)},exact:function(e){return(Se==null?void 0:Se.location.href)===e}},zge=function(){function e(t){zn(this,e),this.instance=t}return Pn(e,[{key:"afterDecideResponse",value:function(t){this._decideServerResponse=!!t.surveys,this.loadIfEnabled()}},{key:"loadIfEnabled",value:function(){var t=this,n=ki==null?void 0:ki.extendPostHogWithSurveys;this.instance.config.disable_surveys||!this._decideServerResponse||n||gf(this.instance.requestRouter.endpointFor("assets","/static/surveys.js"),function(r){if(r)return dt.error("Could not load surveys script",r);ki.extendPostHogWithSurveys(t.instance)})}},{key:"getSurveys",value:function(t){var n=this,r=arguments.length>1&&arguments[1]!==void 0&&arguments[1];if(this.instance.config.disable_surveys)return t([]);var i=this.instance.get_property(Wy);if(i&&!r)return t(i);this.instance._send_request({url:this.instance.requestRouter.endpointFor("api","/api/surveys/?token=".concat(this.instance.config.token)),method:"GET",transport:"XHR",callback:function(a){var o;if(a.statusCode!==200||!a.json)return t([]);var l=a.json.surveys||[];return(o=n.instance.persistence)===null||o===void 0||o.register(Ye({},Wy,l)),t(l)}})}},{key:"getActiveMatchingSurveys",value:function(t){var n=this,r=arguments.length>1&&arguments[1]!==void 0&&arguments[1];this.getSurveys(function(i){var a=i.filter(function(o){return!(!o.start_date||o.end_date)}).filter(function(o){var l,s,u,c;if(!o.conditions)return!0;var d=(l=o.conditions)===null||l===void 0||!l.url||Jge[(s=(u=o.conditions)===null||u===void 0?void 0:u.urlMatchType)!==null&&s!==void 0?s:"icontains"](o.conditions.url),g=(c=o.conditions)===null||c===void 0||!c.selector||(Dt==null?void 0:Dt.querySelector(o.conditions.selector));return d&&g}).filter(function(o){if(!o.linked_flag_key&&!o.targeting_flag_key&&!o.internal_targeting_flag_key)return!0;var l=!o.linked_flag_key||n.instance.featureFlags.isFeatureEnabled(o.linked_flag_key),s=!o.targeting_flag_key||n.instance.featureFlags.isFeatureEnabled(o.targeting_flag_key),u=!o.internal_targeting_flag_key||n.instance.featureFlags.isFeatureEnabled(o.internal_targeting_flag_key);return l&&s&&u});return t(a)},r)}}]),e}(),Pge=function(){function e(t){var n,r,i=this;zn(this,e),Ye(this,"serverLimits",{}),Ye(this,"lastEventRateLimited",!1),Ye(this,"checkForLimiting",function(a){var o=a.text;if(o&&o.length)try{(JSON.parse(o).quota_limited||[]).forEach(function(l){dt.info("[RateLimiter] ".concat(l||"events"," is quota limited.")),i.serverLimits[l]=new Date().getTime()+6e4})}catch(l){return void dt.warn('[RateLimiter] could not rate limit - continuing. Error: "'.concat(l==null?void 0:l.message,'"'),{text:o})}}),this.instance=t,this.captureEventsPerSecond=((n=t.config.rate_limiting)===null||n===void 0?void 0:n.events_per_second)||10,this.captureEventsBurstLimit=Math.max(((r=t.config.rate_limiting)===null||r===void 0?void 0:r.events_burst_limit)||10*this.captureEventsPerSecond,this.captureEventsPerSecond),this.lastEventRateLimited=this.clientRateLimitContext(!0).isRateLimited}return Pn(e,[{key:"clientRateLimitContext",value:function(){var t,n,r,i=arguments.length>0&&arguments[0]!==void 0&&arguments[0],a=new Date().getTime(),o=(t=(n=this.instance.persistence)===null||n===void 0?void 0:n.get_property(Fy))!==null&&t!==void 0?t:{tokens:this.captureEventsBurstLimit,last:a};o.tokens+=(a-o.last)/1e3*this.captureEventsPerSecond,o.last=a,o.tokens>this.captureEventsBurstLimit&&(o.tokens=this.captureEventsBurstLimit);var l=o.tokens<1;return l||i||(o.tokens=Math.max(0,o.tokens-1)),!l||this.lastEventRateLimited||i||this.instance.capture("$$client_ingestion_warning",{$$client_ingestion_warning_message:"posthog-js client rate limited. Config is set to ".concat(this.captureEventsPerSecond," events per second and ").concat(this.captureEventsBurstLimit," events burst limit.")},{skip_client_rate_limiting:!0}),this.lastEventRateLimited=l,(r=this.instance.persistence)===null||r===void 0||r.set_property(Fy,o),{isRateLimited:l,remainingTokens:o.tokens}}},{key:"isServerRateLimited",value:function(t){var n=this.serverLimits[t||"events"]||!1;return n!==!1&&new Date().getTime()e?t.slice(0,e)+"...":t}var Lu,nhe=function(){function e(t){zn(this,e),Ye(this,"_initialized",!1),Ye(this,"_isDisabledServerSide",null),Ye(this,"rageclicks",new uI),Ye(this,"_elementsChainAsString",!1),this.instance=t}return Pn(e,[{key:"config",get:function(){var t,n=Pl(this.instance.config.autocapture)?this.instance.config.autocapture:{};return n.url_allowlist=(t=n.url_allowlist)===null||t===void 0?void 0:t.map(function(r){return new RegExp(r)}),n}},{key:"_addDomEventHandlers",value:function(){var t=this;if(this.isBrowserSupported()){if(Se&&Dt){var n=function(i){i=i||(Se==null?void 0:Se.event);try{t._captureEvent(i)}catch(a){dt.error("Failed to capture event",a)}},r=function(i){i=i||(Se==null?void 0:Se.event),t._captureEvent(i,Zv)};Ys(Dt,"submit",n,!1,!0),Ys(Dt,"change",n,!1,!0),Ys(Dt,"click",n,!1,!0),this.config.capture_copied_text&&(Ys(Dt,"copy",r,!1,!0),Ys(Dt,"cut",r,!1,!0))}}else dt.info("Disabling Automatic Event Collection because this browser is not supported")}},{key:"startIfEnabled",value:function(){this.isEnabled&&!this._initialized&&(this._addDomEventHandlers(),this._initialized=!0)}},{key:"afterDecideResponse",value:function(t){t.elementsChainAsString&&(this._elementsChainAsString=t.elementsChainAsString),this.instance.persistence&&this.instance.persistence.register(Ye({},fG,!!t.autocapture_opt_out)),this._isDisabledServerSide=!!t.autocapture_opt_out,this.startIfEnabled()}},{key:"isEnabled",get:function(){var t,n,r=(t=this.instance.persistence)===null||t===void 0?void 0:t.props[fG],i=this._isDisabledServerSide;if(mu(i)&&!lC(r)&&!this.instance.config.advanced_disable_decide)return!1;var a=(n=this._isDisabledServerSide)!==null&&n!==void 0?n:!!r;return!!this.instance.config.autocapture&&!a}},{key:"_previousElementSibling",value:function(t){if(t.previousElementSibling)return t.previousElementSibling;var n=t;do n=n.previousSibling;while(n&&!TE(n));return n}},{key:"_getAugmentPropertiesFromElement",value:function(t){if(!Ny(t))return{};var n={};return cr(t.attributes,function(r){if(r.name&&r.name.indexOf("data-ph-capture-attribute")===0){var i=r.name.replace("data-ph-capture-attribute-",""),a=r.value;i&&a&&Vp(a)&&(n[i]=a)}}),n}},{key:"_getPropertiesFromElement",value:function(t,n,r){var i,a=t.tagName.toLowerCase(),o={tag_name:a};Dy.indexOf(a)>-1&&!r&&(a.toLowerCase()==="a"||a.toLowerCase()==="button"?o.$el_text=Hv(1024,SG(t)):o.$el_text=Hv(1024,gB(t)));var l=pB(t);l.length>0&&(o.classes=l.filter(function(g){return g!==""}));var s=(i=this.config)===null||i===void 0?void 0:i.element_attribute_ignorelist;cr(t.attributes,function(g){var h;if((!eI(t)||["name","id","class","aria-label"].indexOf(g.name)!==-1)&&(s==null||!s.includes(g.name))&&!n&&Vp(g.value)&&(h=g.name,!ji(h)||h.substring(0,10)!=="_ngcontent"&&h.substring(0,7)!=="_nghost")){var m=g.value;g.name==="class"&&(m=ME(m).join(" ")),o["attr__"+g.name]=Hv(1024,m)}});for(var u=1,c=1,d=t;d=this._previousElementSibling(d);)u++,d.tagName===t.tagName&&c++;return o.nth_child=u,o.nth_of_type=c,o}},{key:"_getDefaultProperties",value:function(t){return{$event_type:t,$ce_version:1}}},{key:"_getEventTarget",value:function(t){return Pt(t.target)?t.srcElement||null:(n=t.target)!==null&&n!==void 0&&n.shadowRoot?t.composedPath()[0]||null:t.target||null;var n}},{key:"_captureEvent",value:function(t){var n=this,r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"$autocapture";if(this.isEnabled){var i,a=this._getEventTarget(t);_Y(a)&&(a=a.parentNode||null),r==="$autocapture"&&t.type==="click"&&t instanceof MouseEvent&&this.instance.config.rageclick&&(i=this.rageclicks)!==null&&i!==void 0&&i.isRageClick(t.clientX,t.clientY,new Date().getTime())&&this._captureEvent(t,"$rageclick");var o=r===Zv;if(a&&pge(a,t,this.config,o,o?["copy","cut"]:void 0)){for(var l,s,u=[a],c=a;c.parentNode&&!hc(c,"body");)$Y(c.parentNode)?(u.push(c.parentNode.host),c=c.parentNode.host):(u.push(c.parentNode),c=c.parentNode);var d,g=[],h={},m=!1;if(cr(u,function(Q){var F=Ny(Q);Q.tagName.toLowerCase()==="a"&&(d=Q.getAttribute("href"),d=F&&Vp(d)&&d),vn(pB(Q),"ph-no-capture")&&(m=!0),g.push(n._getPropertiesFromElement(Q,n.instance.config.mask_all_element_attributes,n.instance.config.mask_all_text));var K=n._getAugmentPropertiesFromElement(Q);Aa(h,K)}),this.instance.config.mask_all_text||(a.tagName.toLowerCase()==="a"||a.tagName.toLowerCase()==="button"?g[0].$el_text=SG(a):g[0].$el_text=gB(a)),d&&(g[0].attr__href=d),m)return!1;var A=Aa(this._getDefaultProperties(t.type),this._elementsChainAsString?{$elements_chain:Age(g)}:{$elements:g},(l=g[0])!==null&&l!==void 0&&l.$el_text?{$el_text:(s=g[0])===null||s===void 0?void 0:s.$el_text}:{},h);if(r===Zv){var B,C=jY(Se==null||(B=Se.getSelection())===null||B===void 0?void 0:B.toString()),b=t.type||"clipboard";if(!C)return!1;A.$selected_content=C,A.$copy_type=b}return this.instance.capture(r,A),!0}}}},{key:"isBrowserSupported",value:function(){return Bl(Dt==null?void 0:Dt.querySelectorAll)}}]),e}();(function(e){e[e.PENDING=-1]="PENDING",e[e.DENIED=0]="DENIED",e[e.GRANTED=1]="GRANTED"})(Lu||(Lu={}));var rhe=function(){function e(t){zn(this,e),this.instance=t}return Pn(e,[{key:"config",get:function(){return this.instance.config}},{key:"consent",get:function(){return this.getDnt()?Lu.DENIED:this.storedConsent}},{key:"isOptedOut",value:function(){return this.consent===Lu.DENIED||this.consent===Lu.PENDING&&this.config.opt_out_capturing_by_default}},{key:"isOptedIn",value:function(){return!this.isOptedOut()}},{key:"optInOut",value:function(t){this.storage.set(this.storageKey,t?1:0,this.config.cookie_expiration,this.config.cross_subdomain_cookie,this.config.secure_cookie)}},{key:"reset",value:function(){this.storage.remove(this.storageKey,this.config.cross_subdomain_cookie)}},{key:"storageKey",get:function(){var t=this.instance.config,n=t.token;return(t.opt_out_capturing_cookie_prefix||"__ph_opt_in_out_")+n}},{key:"storedConsent",get:function(){var t=this.storage.get(this.storageKey);return t==="1"?Lu.GRANTED:t==="0"?Lu.DENIED:Lu.PENDING}},{key:"storage",get:function(){if(!this._storage){var t=this.config.opt_out_capturing_persistence_type;this._storage=t==="localStorage"?Pr:_s;var n=t==="localStorage"?_s:Pr;n.get(this.storageKey)&&(this._storage.get(this.storageKey)||this.optInOut(n.get(this.storageKey)==="1"),n.remove(this.storageKey,this.config.cross_subdomain_cookie))}return this._storage}},{key:"getDnt",value:function(){return!!this.config.respect_dnt&&!!xY([Js==null?void 0:Js.doNotTrack,Js==null?void 0:Js.msDoNotTrack,ki.doNotTrack],function(t){return vn([!0,1,"1","yes"],t)})}}]),e}(),Sh={},OG=function(){},op="posthog",cI=!Xge&&(xr==null?void 0:xr.indexOf("MSIE"))===-1&&(xr==null?void 0:xr.indexOf("Mozilla"))===-1,JG=function(){var e,t,n;return{api_host:"https://us.i.posthog.com",ui_host:null,token:"",autocapture:!0,rageclick:!0,cross_subdomain_cookie:(t=Dt==null?void 0:Dt.location,n=t==null?void 0:t.hostname,!!ji(n)&&n.split(".").slice(-2).join(".")!=="herokuapp.com"),persistence:"localStorage+cookie",persistence_name:"",loaded:OG,store_google:!0,custom_campaign_params:[],custom_blocked_useragents:[],save_referrer:!0,capture_pageview:!0,capture_pageleave:"if_capture_pageview",debug:So&&ji(So==null?void 0:So.search)&&So.search.indexOf("__posthog_debug=true")!==-1||!1,verbose:!1,cookie_expiration:365,upgrade:!1,disable_session_recording:!1,disable_persistence:!1,disable_surveys:!1,enable_recording_console_log:void 0,secure_cookie:(Se==null||(e=Se.location)===null||e===void 0?void 0:e.protocol)==="https:",ip:!0,opt_out_capturing_by_default:!1,opt_out_persistence_by_default:!1,opt_out_useragent_filter:!1,opt_out_capturing_persistence_type:"localStorage",opt_out_capturing_cookie_prefix:null,opt_in_site_apps:!1,property_denylist:[],respect_dnt:!1,sanitize_properties:null,request_headers:{},inapp_protocol:"//",inapp_link_new_window:!1,request_batching:!0,properties_string_max_length:65535,session_recording:{},mask_all_element_attributes:!1,mask_all_text:!1,advanced_disable_decide:!1,advanced_disable_feature_flags:!1,advanced_disable_feature_flags_on_first_load:!1,advanced_disable_toolbar_metrics:!1,feature_flag_request_timeout_ms:3e3,on_request_error:function(r){var i="Bad HTTP status: "+r.statusCode+" "+r.text;dt.error(i)},get_device_id:function(r){return r},_onCapture:OG,capture_performance:void 0,name:"posthog",bootstrap:{},disable_compression:!1,session_idle_timeout_seconds:1800,person_profiles:"always"}},zG=function(e){var t={};Pt(e.process_person)||(t.person_profiles=e.process_person),Pt(e.xhr_headers)||(t.request_headers=e.xhr_headers),Pt(e.cookie_name)||(t.persistence_name=e.cookie_name),Pt(e.disable_cookie)||(t.disable_persistence=e.disable_cookie);var n=Aa({},t,e);return jr(e.property_blacklist)&&(Pt(e.property_denylist)?n.property_denylist=e.property_blacklist:jr(e.property_denylist)?n.property_denylist=[].concat(f1(e.property_blacklist),f1(e.property_denylist)):dt.error("Invalid value for property_denylist config: "+e.property_denylist)),n},ihe=function(){function e(){zn(this,e),Ye(this,"__forceAllowLocalhost",!1)}return Pn(e,[{key:"_forceAllowLocalhost",get:function(){return this.__forceAllowLocalhost},set:function(t){dt.error("WebPerformanceObserver is deprecated and has no impact on network capture. Use `_forceAllowLocalhostNetworkCapture` on `posthog.sessionRecording`"),this.__forceAllowLocalhost=t}}]),e}(),dI=function(){function e(){var t=this;zn(this,e),Ye(this,"webPerformance",new ihe),Ye(this,"_debugEventEmitter",new the),this.config=JG(),this.decideEndpointWasHit=!1,this.SentryIntegration=Ige,this.__request_queue=[],this.__loaded=!1,this.analyticsDefaultEndpoint="/e/",this.featureFlags=new L1e(this),this.toolbar=new Fge(this),this.scrollManager=new ehe(this),this.pageViewManager=new Oge(this),this.surveys=new zge(this),this.rateLimiter=new Pge(this),this.requestRouter=new Yge(this),this.consent=new rhe(this),this.people={set:function(n,r,i){var a=ji(n)?Ye({},n,r):n;t.setPersonProperties(a),i==null||i({})},set_once:function(n,r,i){var a=ji(n)?Ye({},n,r):n;t.setPersonProperties(void 0,a),i==null||i({})}},this.on("eventCaptured",function(n){return dt.info("send",n)})}return Pn(e,[{key:"init",value:function(t,n,r){if(r&&r!==op){var i,a=(i=Sh[r])!==null&&i!==void 0?i:new e;return a._init(t,n,r),Sh[r]=a,Sh[op][r]=a,a}return this._init(t,n,r)}},{key:"_init",value:function(t){var n,r,i=this,a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},o=arguments.length>2?arguments[2]:void 0;if(Pt(t)||function(B){return ji(B)&&B.trim().length===0}(t))return dt.critical("PostHog was initialized without a token. This likely indicates a misconfiguration. Please check the first argument passed to posthog.init()"),this;if(this.__loaded)return dt.warn("You have already initialized PostHog! Re-initializing is a no-op"),this;if(this.__loaded=!0,this.config={},this._triggered_notifs=[],this.set_config(Aa({},JG(),zG(a),{name:o,token:t})),this.compression=a.disable_compression?void 0:cl.Base64,this.persistence=new xv(this.config),this.sessionPersistence=this.config.persistence==="sessionStorage"?this.persistence:new xv(kt(kt({},this.config),{},{persistence:"sessionStorage"})),this._requestQueue=new Ege(function(B){return i._send_retriable_request(B)}),this._retryQueue=new Tge(this),this.__request_queue=[],this.sessionManager=new Vge(this.config,this.persistence),this.sessionPropsManager=new _ge(this.sessionManager,this.persistence),this.sessionRecording=new Qge(this),this.sessionRecording.startIfEnabledOrStop(),this.config.disable_scroll_properties||this.scrollManager.startMeasuringScrollPosition(),this.autocapture=new nhe(this),this.autocapture.startIfEnabled(),this.surveys.loadIfEnabled(),this.heatmaps=new qge(this),this.heatmaps.startIfEnabled(),y0.DEBUG=y0.DEBUG||this.config.debug,this._sync_opt_out_with_persistence(),((n=a.bootstrap)===null||n===void 0?void 0:n.distinctID)!==void 0){var l,s,u=this.config.get_device_id(Pu()),c=(l=a.bootstrap)!==null&&l!==void 0&&l.isIdentifiedID?u:a.bootstrap.distinctID;this.persistence.set_property(Xs,(s=a.bootstrap)!==null&&s!==void 0&&s.isIdentifiedID?"identified":"anonymous"),this.register({distinct_id:a.bootstrap.distinctID,$device_id:c})}if(this._hasBootstrappedFeatureFlags()){var d,g,h=Object.keys(((d=a.bootstrap)===null||d===void 0?void 0:d.featureFlags)||{}).filter(function(B){var C,b;return!((C=a.bootstrap)===null||C===void 0||(b=C.featureFlags)===null||b===void 0||!b[B])}).reduce(function(B,C){var b,Q;return B[C]=((b=a.bootstrap)===null||b===void 0||(Q=b.featureFlags)===null||Q===void 0?void 0:Q[C])||!1,B},{}),m=Object.keys(((g=a.bootstrap)===null||g===void 0?void 0:g.featureFlagPayloads)||{}).filter(function(B){return h[B]}).reduce(function(B,C){var b,Q,F,K;return(b=a.bootstrap)!==null&&b!==void 0&&(Q=b.featureFlagPayloads)!==null&&Q!==void 0&&Q[C]&&(B[C]=(F=a.bootstrap)===null||F===void 0||(K=F.featureFlagPayloads)===null||K===void 0?void 0:K[C]),B},{});this.featureFlags.receivedFeatureFlags({featureFlags:h,featureFlagPayloads:m})}if(!this.get_distinct_id()){var A=this.config.get_device_id(Pu());this.register_once({distinct_id:A,$device_id:A},""),this.persistence.set_property(Xs,"anonymous")}return Se==null||(r=Se.addEventListener)===null||r===void 0||r.call(Se,"onpagehide"in self?"pagehide":"unload",this._handle_unload.bind(this)),this.toolbar.maybeLoadToolbar(),a.segment?Uge(this,function(){return i._loaded()}):this._loaded(),Bl(this.config._onCapture)&&this.on("eventCaptured",function(B){return i.config._onCapture(B.event,B)}),this}},{key:"_afterDecideResponse",value:function(t){var n,r,i,a,o;this.compression=void 0,t.supportedCompression&&!this.config.disable_compression&&(this.compression=vn(t.supportedCompression,cl.GZipJS)?cl.GZipJS:vn(t.supportedCompression,cl.Base64)?cl.Base64:void 0),(n=t.analytics)!==null&&n!==void 0&&n.endpoint&&(this.analyticsDefaultEndpoint=t.analytics.endpoint),(r=this.sessionRecording)===null||r===void 0||r.afterDecideResponse(t),(i=this.autocapture)===null||i===void 0||i.afterDecideResponse(t),(a=this.heatmaps)===null||a===void 0||a.afterDecideResponse(t),(o=this.surveys)===null||o===void 0||o.afterDecideResponse(t)}},{key:"_loaded",value:function(){var t=this,n=this.config.advanced_disable_decide;n||this.featureFlags.setReloadingPaused(!0);try{this.config.loaded(this)}catch(r){dt.critical("`loaded` function failed",r)}this._start_queue_if_opted_in(),this.config.capture_pageview&&setTimeout(function(){Dt&&t.capture("$pageview",{title:Dt.title},{send_instantly:!0})},1),n||(new Wge(this).call(),this.featureFlags.resetRequestQueue())}},{key:"_start_queue_if_opted_in",value:function(){var t;this.has_opted_out_capturing()||this.config.request_batching&&((t=this._requestQueue)===null||t===void 0||t.enable())}},{key:"_dom_loaded",value:function(){var t=this;this.has_opted_out_capturing()||Lp(this.__request_queue,function(n){return t._send_retriable_request(n)}),this.__request_queue=[],this._start_queue_if_opted_in()}},{key:"_handle_unload",value:function(){var t,n;this.config.request_batching?(this._shouldCapturePageleave()&&this.capture("$pageleave"),(t=this._requestQueue)===null||t===void 0||t.unload(),(n=this._retryQueue)===null||n===void 0||n.unload()):this._shouldCapturePageleave()&&this.capture("$pageleave",null,{transport:"sendBeacon"})}},{key:"_send_request",value:function(t){var n=this;this.__loaded&&(cI?this.__request_queue.push(t):this.rateLimiter.isServerRateLimited(t.batchKey)||(t.transport=t.transport||this.config.api_transport,t.url=fB(t.url,{ip:this.config.ip?1:0}),t.headers=this.config.request_headers,t.compression=t.compression==="best-available"?this.compression:t.compression,function(r){var i,a,o,l=kt({},r);l.timeout=l.timeout||6e4,l.url=fB(l.url,{_:new Date().getTime().toString(),ver:y0.LIB_VERSION,compression:l.compression});var s=(i=l.transport)!==null&&i!==void 0?i:"XHR",u=(a=(o=xY(Rh,function(c){return c.transport===s}))===null||o===void 0?void 0:o.method)!==null&&a!==void 0?a:Rh[0].method;if(!u)throw new Error("No available transport method");u(l)}(kt(kt({},t),{},{callback:function(r){var i,a,o;n.rateLimiter.checkForLimiting(r),r.statusCode>=400&&((a=(o=n.config).on_request_error)===null||a===void 0||a.call(o,r)),(i=t.callback)===null||i===void 0||i.call(t,r)}}))))}},{key:"_send_retriable_request",value:function(t){this._retryQueue?this._retryQueue.retriableRequest(t):this._send_request(t)}},{key:"_execute_array",value:function(t){var n,r=this,i=[],a=[],o=[];Lp(t,function(s){s&&(n=s[0],jr(n)?o.push(s):Bl(s)?s.call(r):jr(s)&&n==="alias"?i.push(s):jr(s)&&n.indexOf("capture")!==-1&&Bl(r[n])?o.push(s):a.push(s))});var l=function(s,u){Lp(s,function(c){if(jr(c[0])){var d=u;cr(c,function(g){d=d[g[0]].apply(d,g.slice(1))})}else this[c[0]].apply(this,c.slice(1))},u)};l(i,this),l(a,this),l(o,this)}},{key:"_hasBootstrappedFeatureFlags",value:function(){var t,n;return((t=this.config.bootstrap)===null||t===void 0?void 0:t.featureFlags)&&Object.keys((n=this.config.bootstrap)===null||n===void 0?void 0:n.featureFlags).length>0||!1}},{key:"push",value:function(t){this._execute_array([t])}},{key:"capture",value:function(t,n,r){var i;if(!(this.__loaded&&this.persistence&&this.sessionPersistence&&this._requestQueue))return dt.uninitializedWarning("posthog.capture");if(!this.consent.isOptedOut())if(!Pt(t)&&ji(t)){if(!xr||this.config.opt_out_useragent_filter||!IG(xr,this.config.custom_blocked_useragents)){var a=r!=null&&r.skip_client_rate_limiting?void 0:this.rateLimiter.clientRateLimitContext();if(a==null||!a.isRateLimited){this.sessionPersistence.update_search_keyword(),this.config.store_google&&(this.sessionPersistence.update_campaign_params(),this.persistence.set_initial_campaign_params()),this.config.save_referrer&&(this.sessionPersistence.update_referrer_info(),this.persistence.set_initial_referrer_info());var o={uuid:Pu(),event:t,properties:this._calculate_event_properties(t,n||{},r)};a&&(o.properties.$lib_rate_limit_remaining_tokens=a.remainingTokens),r!=null&&r.$set&&(o.$set=r==null?void 0:r.$set);var l=this._calculate_set_once_properties(r==null?void 0:r.$set_once);l&&(o.$set_once=l),(o=Z1e(o,r!=null&&r._noTruncate?null:this.config.properties_string_max_length)).timestamp=(r==null?void 0:r.timestamp)||new Date,Pt(r==null?void 0:r.timestamp)||(o.properties.$event_time_override_provided=!0,o.properties.$event_time_override_system_time=new Date);var s=kt(kt({},o.properties.$set),o.$set);Fv(s)||this.setPersonPropertiesForFlags(s),this._debugEventEmitter.emit("eventCaptured",o);var u={method:"POST",url:(i=r==null?void 0:r._url)!==null&&i!==void 0?i:this.requestRouter.endpointFor("api",this.analyticsDefaultEndpoint),data:o,compression:"best-available",batchKey:r==null?void 0:r._batchKey};return!this.config.request_batching||r&&(r==null||!r._batchKey)||r!=null&&r.send_instantly?this._send_retriable_request(u):this._requestQueue.enqueue(u),o}dt.critical("This capture call is ignored due to client rate limiting.")}}else dt.error("No event name provided to posthog.capture")}},{key:"_addCaptureHook",value:function(t){this.on("eventCaptured",function(n){return t(n.event)})}},{key:"_calculate_event_properties",value:function(t,n,r){if(!this.persistence||!this.sessionPersistence)return n;var i=this.persistence.remove_event_timer(t),a=kt({},n);if(a.token=this.config.token,t==="$snapshot"){var o=kt(kt({},this.persistence.properties()),this.sessionPersistence.properties());return a.distinct_id=o.distinct_id,a}var l=ri.properties();if(this.sessionManager){var s=this.sessionManager.checkAndGetSessionAndWindowId(),u=s.sessionId,c=s.windowId;a.$session_id=u,a.$window_id=c}if(this.requestRouter.region===F0.CUSTOM&&(a.$lib_custom_api_host=this.config.api_host),this.sessionPropsManager&&this.config.__preview_send_client_session_params&&(t==="$pageview"||t==="$pageleave"||t==="$autocapture")){var d=this.sessionPropsManager.getSessionProps();a=Aa(a,d)}if(!this.config.disable_scroll_properties){var g={};t==="$pageview"?g=this.pageViewManager.doPageView():t==="$pageleave"&&(g=this.pageViewManager.doPageLeave()),a=Aa(a,g)}if(t==="$pageview"&&Dt&&(a.title=Dt.title),!Pt(i)){var h=new Date().getTime()-i;a.$duration=parseFloat((h/1e3).toFixed(3))}if(xr&&this.config.opt_out_useragent_filter&&(a.$browser_type=IG(xr,this.config.custom_blocked_useragents)?"bot":"browser"),(a=Aa({},l,this.persistence.properties(),this.sessionPersistence.properties(),a)).$is_identified=this._isIdentified(),r==null||!r._noHeatmaps){var m,A=(m=this.heatmaps)===null||m===void 0?void 0:m.getAndClearBuffer();A&&(a.$heatmap_data=A)}jr(this.config.property_denylist)?cr(this.config.property_denylist,function(C){delete a[C]}):dt.error("Invalid value for property_denylist config: "+this.config.property_denylist+" or property_blacklist config: "+this.config.property_blacklist);var B=this.config.sanitize_properties;return B&&(a=B(a,t)),a.$process_person_profile=this._hasPersonProcessing(),a}},{key:"_calculate_set_once_properties",value:function(t){if(!this.persistence||!this._hasPersonProcessing())return t;var n=Aa({},this.persistence.get_initial_props(),t||{});return Fv(n)?void 0:n}},{key:"register",value:function(t,n){var r;(r=this.persistence)===null||r===void 0||r.register(t,n)}},{key:"register_once",value:function(t,n,r){var i;(i=this.persistence)===null||i===void 0||i.register_once(t,n,r)}},{key:"register_for_session",value:function(t){var n;(n=this.sessionPersistence)===null||n===void 0||n.register(t)}},{key:"unregister",value:function(t){var n;(n=this.persistence)===null||n===void 0||n.unregister(t)}},{key:"unregister_for_session",value:function(t){var n;(n=this.sessionPersistence)===null||n===void 0||n.unregister(t)}},{key:"_register_single",value:function(t,n){this.register(Ye({},t,n))}},{key:"getFeatureFlag",value:function(t,n){return this.featureFlags.getFeatureFlag(t,n)}},{key:"getFeatureFlagPayload",value:function(t){var n=this.featureFlags.getFeatureFlagPayload(t);try{return JSON.parse(n)}catch{return n}}},{key:"isFeatureEnabled",value:function(t,n){return this.featureFlags.isFeatureEnabled(t,n)}},{key:"reloadFeatureFlags",value:function(){this.featureFlags.reloadFeatureFlags()}},{key:"updateEarlyAccessFeatureEnrollment",value:function(t,n){this.featureFlags.updateEarlyAccessFeatureEnrollment(t,n)}},{key:"getEarlyAccessFeatures",value:function(t){var n=arguments.length>1&&arguments[1]!==void 0&&arguments[1];return this.featureFlags.getEarlyAccessFeatures(t,n)}},{key:"on",value:function(t,n){return this._debugEventEmitter.on(t,n)}},{key:"onFeatureFlags",value:function(t){return this.featureFlags.onFeatureFlags(t)}},{key:"onSessionId",value:function(t){var n,r;return(n=(r=this.sessionManager)===null||r===void 0?void 0:r.onSessionId(t))!==null&&n!==void 0?n:function(){}}},{key:"getSurveys",value:function(t){var n=arguments.length>1&&arguments[1]!==void 0&&arguments[1];this.surveys.getSurveys(t,n)}},{key:"getActiveMatchingSurveys",value:function(t){var n=arguments.length>1&&arguments[1]!==void 0&&arguments[1];this.surveys.getActiveMatchingSurveys(t,n)}},{key:"identify",value:function(t,n,r){if(!this.__loaded||!this.persistence)return dt.uninitializedWarning("posthog.identify");if(Tl(t)&&(t=t.toString(),dt.warn("The first argument to posthog.identify was a number, but it should be a string. It has been converted to a string.")),t){if(["distinct_id","distinctid"].includes(t.toLowerCase()))dt.critical('The string "'.concat(t,'" was set in posthog.identify which indicates an error. This ID should be unique to the user and not a hardcoded string.'));else if(this._requirePersonProcessing("posthog.identify")){var i=this.get_distinct_id();if(this.register({$user_id:t}),!this.get_property("$device_id")){var a=i;this.register_once({$had_persisted_distinct_id:!0,$device_id:a},"")}t!==i&&t!==this.get_property(ih)&&(this.unregister(ih),this.register({distinct_id:t}));var o=(this.persistence.get_property(Xs)||"anonymous")==="anonymous";t!==i&&o?(this.persistence.set_property(Xs,"identified"),this.setPersonPropertiesForFlags(n||{},!1),this.capture("$identify",{distinct_id:t,$anon_distinct_id:i},{$set:n||{},$set_once:r||{}}),this.featureFlags.setAnonymousDistinctId(i)):(n||r)&&this.setPersonProperties(n,r),t!==i&&(this.reloadFeatureFlags(),this.unregister(sB))}}else dt.error("Unique user id has not been set in posthog.identify")}},{key:"setPersonProperties",value:function(t,n){(t||n)&&this._requirePersonProcessing("posthog.setPersonProperties")&&(this.setPersonPropertiesForFlags(t||{}),this.capture("$set",{$set:t||{},$set_once:n||{}}))}},{key:"group",value:function(t,n,r){if(t&&n){if(this._requirePersonProcessing("posthog.group")){var i=this.getGroups();i[t]!==n&&this.resetGroupPropertiesForFlags(t),this.register({$groups:kt(kt({},i),{},Ye({},t,n))}),r&&(this.capture("$groupidentify",{$group_type:t,$group_key:n,$group_set:r}),this.setGroupPropertiesForFlags(Ye({},t,r))),i[t]===n||r||this.reloadFeatureFlags()}}else dt.error("posthog.group requires a group type and group key")}},{key:"resetGroups",value:function(){this.register({$groups:{}}),this.resetGroupPropertiesForFlags(),this.reloadFeatureFlags()}},{key:"setPersonPropertiesForFlags",value:function(t){var n=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1];this._requirePersonProcessing("posthog.setPersonPropertiesForFlags")&&this.featureFlags.setPersonPropertiesForFlags(t,n)}},{key:"resetPersonPropertiesForFlags",value:function(){this.featureFlags.resetPersonPropertiesForFlags()}},{key:"setGroupPropertiesForFlags",value:function(t){var n=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1];this._requirePersonProcessing("posthog.setGroupPropertiesForFlags")&&this.featureFlags.setGroupPropertiesForFlags(t,n)}},{key:"resetGroupPropertiesForFlags",value:function(t){this.featureFlags.resetGroupPropertiesForFlags(t)}},{key:"reset",value:function(t){var n,r,i,a;if(!this.__loaded)return dt.uninitializedWarning("posthog.reset");var o=this.get_property("$device_id");this.consent.reset(),(n=this.persistence)===null||n===void 0||n.clear(),(r=this.sessionPersistence)===null||r===void 0||r.clear(),(i=this.persistence)===null||i===void 0||i.set_property(Xs,"anonymous"),(a=this.sessionManager)===null||a===void 0||a.resetSessionId();var l=this.config.get_device_id(Pu());this.register_once({distinct_id:l,$device_id:t?l:o},"")}},{key:"get_distinct_id",value:function(){return this.get_property("distinct_id")}},{key:"getGroups",value:function(){return this.get_property("$groups")||{}}},{key:"get_session_id",value:function(){var t,n;return(t=(n=this.sessionManager)===null||n===void 0?void 0:n.checkAndGetSessionAndWindowId(!0).sessionId)!==null&&t!==void 0?t:""}},{key:"get_session_replay_url",value:function(t){if(!this.sessionManager)return"";var n=this.sessionManager.checkAndGetSessionAndWindowId(!0),r=n.sessionId,i=n.sessionStartTimestamp,a=this.requestRouter.endpointFor("ui","/project/".concat(this.config.token,"/replay/").concat(r));if(t!=null&&t.withTimestamp&&i){var o,l=(o=t.timestampLookBack)!==null&&o!==void 0?o:10;if(!i)return a;var s=Math.max(Math.floor((new Date().getTime()-i)/1e3)-l,0);a+="?t=".concat(s)}return a}},{key:"alias",value:function(t,n){return t===this.get_property(GY)?(dt.critical("Attempting to create alias for existing People user - aborting."),-2):this._requirePersonProcessing("posthog.alias")?(Pt(n)&&(n=this.get_distinct_id()),t!==n?(this._register_single(ih,t),this.capture("$create_alias",{alias:t,distinct_id:n})):(dt.warn("alias matches current distinct_id - skipping api call."),this.identify(t),-1)):void 0}},{key:"set_config",value:function(t){var n,r,i,a,o=kt({},this.config);Pl(t)&&(Aa(this.config,zG(t)),(n=this.persistence)===null||n===void 0||n.update_config(this.config,o),this.sessionPersistence=this.config.persistence==="sessionStorage"?this.persistence:new xv(kt(kt({},this.config),{},{persistence:"sessionStorage"})),Pr.is_supported()&&Pr.get("ph_debug")==="true"&&(this.config.debug=!0),this.config.debug&&(y0.DEBUG=!0),(r=this.sessionRecording)===null||r===void 0||r.startIfEnabledOrStop(),(i=this.autocapture)===null||i===void 0||i.startIfEnabled(),(a=this.heatmaps)===null||a===void 0||a.startIfEnabled(),this.surveys.loadIfEnabled(),this._sync_opt_out_with_persistence())}},{key:"startSessionRecording",value:function(t){if(t!=null&&t.sampling){var n,r,i=(n=this.sessionManager)===null||n===void 0?void 0:n.checkAndGetSessionAndWindowId();(r=this.persistence)===null||r===void 0||r.register(Ye({},Fh,!0)),dt.info("Session recording started with sampling override for session: ",i==null?void 0:i.sessionId)}this.set_config({disable_session_recording:!1})}},{key:"stopSessionRecording",value:function(){this.set_config({disable_session_recording:!0})}},{key:"sessionRecordingStarted",value:function(){var t;return!((t=this.sessionRecording)===null||t===void 0||!t.started)}},{key:"loadToolbar",value:function(t){return this.toolbar.loadToolbar(t)}},{key:"get_property",value:function(t){var n;return(n=this.persistence)===null||n===void 0?void 0:n.props[t]}},{key:"getSessionProperty",value:function(t){var n;return(n=this.sessionPersistence)===null||n===void 0?void 0:n.props[t]}},{key:"toString",value:function(){var t,n=(t=this.config.name)!==null&&t!==void 0?t:op;return n!==op&&(n=op+"."+n),n}},{key:"_isIdentified",value:function(){var t,n;return((t=this.persistence)===null||t===void 0?void 0:t.get_property(Xs))==="identified"||((n=this.sessionPersistence)===null||n===void 0?void 0:n.get_property(Xs))==="identified"}},{key:"_hasPersonProcessing",value:function(){var t,n,r,i;return!(this.config.person_profiles==="never"||this.config.person_profiles==="identified_only"&&!this._isIdentified()&&Fv(this.getGroups())&&((t=this.persistence)===null||t===void 0||(n=t.props)===null||n===void 0||!n[ih])&&((r=this.persistence)===null||r===void 0||(i=r.props)===null||i===void 0||!i[uB]))}},{key:"_shouldCapturePageleave",value:function(){return this.config.capture_pageleave===!0||this.config.capture_pageleave==="if_capture_pageview"&&this.config.capture_pageview}},{key:"createPersonProfile",value:function(){this._hasPersonProcessing()||this._requirePersonProcessing("posthog.createPersonProfile")&&this.setPersonProperties({},{})}},{key:"_requirePersonProcessing",value:function(t){return this.config.person_profiles==="never"?(dt.error(t+' was called, but process_person is set to "never". This call will be ignored.'),!1):(this._register_single(uB,!0),!0)}},{key:"_sync_opt_out_with_persistence",value:function(){var t,n,r,i,a=this.consent.isOptedOut(),o=this.config.opt_out_persistence_by_default,l=this.config.disable_persistence||a&&!!o;((t=this.persistence)===null||t===void 0?void 0:t.disabled)!==l&&((r=this.persistence)===null||r===void 0||r.set_disabled(l)),((n=this.sessionPersistence)===null||n===void 0?void 0:n.disabled)!==l&&((i=this.sessionPersistence)===null||i===void 0||i.set_disabled(l))}},{key:"opt_in_capturing",value:function(t){var n;this.consent.optInOut(!0),this._sync_opt_out_with_persistence(),this.capture((n=t==null?void 0:t.captureEventName)!==null&&n!==void 0?n:"$opt_in",t==null?void 0:t.captureProperties,{send_instantly:!0})}},{key:"opt_out_capturing",value:function(){this.consent.optInOut(!1),this._sync_opt_out_with_persistence()}},{key:"has_opted_in_capturing",value:function(){return this.consent.isOptedIn()}},{key:"has_opted_out_capturing",value:function(){return this.consent.isOptedOut()}},{key:"clear_opt_in_out_capturing",value:function(){this.consent.reset(),this._sync_opt_out_with_persistence()}},{key:"debug",value:function(t){t===!1?(Se==null||Se.console.log("You've disabled debug mode."),localStorage&&localStorage.removeItem("ph_debug"),this.set_config({debug:!1})):(Se==null||Se.console.log("You're now in debug mode. All calls to PostHog will be logged in your console.\nYou can disable this with `posthog.debug(false)`."),localStorage&&localStorage.setItem("ph_debug","true"),this.set_config({debug:!0}))}}]),e}();(function(e,t){for(var n=0;n{Vo("onboardingStatus")==="Started"&&(Di("onboardingStatus","Completed"),e.capture("Onboarding Step",{status:"Completed"})),t("/")};return E.useEffect(()=>{gI()&&(Di("onboardingStatus","Started"),e.capture("Onboarding Step",{status:"Started"}))},[]),{completeOnboarding:n}}const cd=e=>{const t=e.state.defaultModelTitle;return e.state.config.models.find(n=>n.title===t)};function dl(e){for(var t=arguments.length,n=Array(t>1?t-1:0),r=1;r3?t.i-4:t.i:Array.isArray(e)?1:IE(e)?2:UE(e)?3:0}function Yp(e,t){return X1(e)===2?e.has(t):Object.prototype.hasOwnProperty.call(e,t)}function ohe(e,t){return X1(e)===2?e.get(t):e[t]}function hI(e,t,n){var r=X1(e);r===2?e.set(t,n):r===3?e.add(n):e[t]=n}function fI(e,t){return e===t?e!==0||1/e==1/t:e!=e&&t!=t}function IE(e){return phe&&e instanceof Map}function UE(e){return ghe&&e instanceof Set}function g0(e){return e.o||e.t}function OE(e){if(Array.isArray(e))return Array.prototype.slice.call(e);var t=AI(e);delete t[hr];for(var n=Ip(t),r=0;r1&&(e.set=e.add=e.clear=e.delete=lhe),Object.freeze(e),t&&nd(e,function(n,r){return JE(r,!0)},!0)),e}function lhe(){dl(2)}function zE(e){return e==null||typeof e!="object"||Object.isFrozen(e)}function is(e){var t=Yy[e];return t||dl(18,e),t}function she(e,t){Yy[e]||(Yy[e]=t)}function My(){return Cf}function Xv(e,t){t&&(is("Patches"),e.u=[],e.s=[],e.v=t)}function mB(e){Ty(e),e.p.forEach(uhe),e.p=null}function Ty(e){e===Cf&&(Cf=e.l)}function $G(e){return Cf={p:[],l:Cf,h:e,m:!0,_:0}}function uhe(e){var t=e[hr];t.i===0||t.i===1?t.j():t.g=!0}function Lv(e,t){t._=t.p.length;var n=t.p[0],r=e!==void 0&&e!==n;return t.h.O||is("ES5").S(t,e,r),r?(n[hr].P&&(mB(t),dl(4)),au(e)&&(e=AB(t,e),t.l||CB(t,e)),t.u&&is("Patches").M(n[hr].t,e,t.u,t.s)):e=AB(t,n,[]),mB(t),t.u&&t.v(t.u,t.s),e!==mI?e:void 0}function AB(e,t,n){if(zE(t))return t;var r=t[hr];if(!r)return nd(t,function(l,s){return qG(e,r,t,l,s,n)},!0),t;if(r.A!==e)return t;if(!r.P)return CB(e,r.t,!0),r.t;if(!r.I){r.I=!0,r.A._--;var i=r.i===4||r.i===5?r.o=OE(r.k):r.o,a=i,o=!1;r.i===3&&(a=new Set(i),i.clear(),o=!0),nd(a,function(l,s){return qG(e,r,i,l,s,n,o)}),CB(e,i,!1),n&&e.u&&is("Patches").N(r,n,e.u,e.s)}return r.o}function qG(e,t,n,r,i,a,o){if(Fc(i)){var l=AB(e,i,a&&t&&t.i!==3&&!Yp(t.R,r)?a.concat(r):void 0);if(hI(n,r,l),!Fc(l))return;e.m=!1}else o&&n.add(i);if(au(i)&&!zE(i)){if(!e.h.D&&e._<1)return;AB(e,i),t&&t.A.l||CB(e,i)}}function CB(e,t,n){n===void 0&&(n=!1),!e.l&&e.h.D&&e.m&&JE(t,n)}function Mv(e,t){var n=e[hr];return(n?g0(n):e)[t]}function ek(e,t){if(t in e)for(var n=Object.getPrototypeOf(e);n;){var r=Object.getOwnPropertyDescriptor(n,t);if(r)return r;n=Object.getPrototypeOf(n)}}function Iu(e){e.P||(e.P=!0,e.l&&Iu(e.l))}function Tv(e){e.o||(e.o=OE(e.t))}function Vy(e,t,n){var r=IE(t)?is("MapSet").F(t,n):UE(t)?is("MapSet").T(t,n):e.O?function(i,a){var o=Array.isArray(i),l={i:o?1:0,A:a?a.A:My(),P:!1,I:!1,R:{},l:a,t:i,k:null,o:null,j:null,C:!1},s=l,u=Bf;o&&(s=[l],u=lh);var c=Proxy.revocable(s,u),d=c.revoke,g=c.proxy;return l.k=g,l.j=d,g}(t,n):is("ES5").J(t,n);return(n?n.A:My()).p.push(r),r}function che(e){return Fc(e)||dl(22,e),function t(n){if(!au(n))return n;var r,i=n[hr],a=X1(n);if(i){if(!i.P&&(i.i<4||!is("ES5").K(i)))return i.t;i.I=!0,r=tk(n,a),i.I=!1}else r=tk(n,a);return nd(r,function(o,l){i&&ohe(i.t,o)===l||hI(r,o,t(l))}),a===3?new Set(r):r}(e)}function tk(e,t){switch(t){case 2:return new Map(e);case 3:return Array.from(e)}return OE(e)}function dhe(){function e(a,o){var l=i[a];return l?l.enumerable=o:i[a]=l={configurable:!0,enumerable:o,get:function(){var s=this[hr];return Bf.get(s,a)},set:function(s){var u=this[hr];Bf.set(u,a,s)}},l}function t(a){for(var o=a.length-1;o>=0;o--){var l=a[o][hr];if(!l.P)switch(l.i){case 5:r(l)&&Iu(l);break;case 4:n(l)&&Iu(l)}}}function n(a){for(var o=a.t,l=a.k,s=Ip(l),u=s.length-1;u>=0;u--){var c=s[u];if(c!==hr){var d=o[c];if(d===void 0&&!Yp(o,c))return!0;var g=l[c],h=g&&g[hr];if(h?h.t!==d:!fI(g,d))return!0}}var m=!!o[hr];return s.length!==Ip(o).length+(m?0:1)}function r(a){var o=a.k;if(o.length!==a.t.length)return!0;var l=Object.getOwnPropertyDescriptor(o,o.length-1);if(l&&!l.get)return!0;for(var s=0;s1?C-1:0),Q=1;Q1?c-1:0),g=1;g=0;i--){var a=r[i];if(a.path.length===0&&a.op==="replace"){n=a.value;break}}i>-1&&(r=r.slice(i+1));var o=is("Patches").$;return Fc(n)?o(n,r):this.produce(n,function(l){return o(l,r)})},e}(),no=new fhe,CI=no.produce;no.produceWithPatches.bind(no);no.setAutoFreeze.bind(no);no.setUseProxies.bind(no);no.applyPatches.bind(no);no.createDraft.bind(no);no.finishDraft.bind(no);function wf(e){"@babel/helpers - typeof";return wf=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},wf(e)}function mhe(e,t){if(wf(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||"default");if(wf(r)!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Ahe(e){var t=mhe(e,"string");return wf(t)=="symbol"?t:t+""}function Che(e,t,n){return(t=Ahe(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ak(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function ok(e){for(var t=1;t"u"&&(n=t,t=void 0),typeof n<"u"){if(typeof n!="function")throw new Error(Si(1));return n(jE)(e,t)}if(typeof e!="function")throw new Error(Si(2));var i=e,a=t,o=[],l=o,s=!1;function u(){l===o&&(l=o.slice())}function c(){if(s)throw new Error(Si(3));return a}function d(A){if(typeof A!="function")throw new Error(Si(4));if(s)throw new Error(Si(5));var B=!0;return u(),l.push(A),function(){if(B){if(s)throw new Error(Si(6));B=!1,u();var b=l.indexOf(A);l.splice(b,1),o=null}}}function g(A){if(!Bhe(A))throw new Error(Si(7));if(typeof A.type>"u")throw new Error(Si(8));if(s)throw new Error(Si(9));try{s=!0,a=i(a,A)}finally{s=!1}for(var B=o=l,C=0;C"u")throw new Error(Si(12));if(typeof n(void 0,{type:BB.PROBE_UNKNOWN_ACTION()})>"u")throw new Error(Si(13))})}function _E(e){for(var t=Object.keys(e),n={},r=0;r"u")throw u&&u.type,new Error(Si(14));d[h]=B,c=c||B!==A}return c=c||a.length!==Object.keys(s).length,c?d:s}}function wB(){for(var e=arguments.length,t=new Array(e),n=0;n-1){var u=n[s];return s>0&&(n.splice(s,1),n.unshift(u)),u.value}return bB}function i(l,s){r(l)===bB&&(n.unshift({key:l,value:s}),n.length>e&&n.pop())}function a(){return n}function o(){n=[]}return{get:r,put:i,getEntries:a,clear:o}}var Qhe=function(t,n){return t===n};function Whe(e){return function(n,r){if(n===null||r===null||n.length!==r.length)return!1;for(var i=n.length,a=0;a1?t-1:0),r=1;r0&&a[a.length-1])&&(u[0]===6||u[0]===2)){n=0;continue}if(u[0]===3&&(!a||u[1]>a[0]&&u[1]{e.bottomMessage=t.payload},setBottomMessageCloseTimeout:(e,t)=>{e.bottomMessageCloseTimeout&&clearTimeout(e.bottomMessageCloseTimeout),e.bottomMessageCloseTimeout=t.payload},setDialogMessage:(e,t)=>{e.dialogMessage=t.payload},setDialogEntryOn:(e,t)=>{e.dialogEntryOn=t.payload},setShowDialog:(e,t)=>{e.showDialog=t.payload},setDisplayBottomMessageOnBottom:(e,t)=>{e.displayBottomMessageOnBottom=t.payload}}}),{setBottomMessage:efe,setBottomMessageCloseTimeout:tfe,setDialogMessage:Ec,setDialogEntryOn:nfe,setShowDialog:Ql,setDisplayBottomMessageOnBottom:Zlt}=KI.actions,rfe=KI.reducer,dd=50;function QI(){return Vo("ftc")>dd}function gk(e){const t=[],n=String(e||"");let r=n.indexOf(","),i=0,a=!1;for(;!a;){r===-1&&(r=n.length,a=!0);const o=n.slice(i,r).trim();(o||!a)&&t.push(o),i=r+1,r=n.indexOf(",",i)}return t}function ife(e,t){const n=t||{};return(e[e.length-1]===""?[...e,""]:e).join((n.padRight?" ":"")+","+(n.padLeft===!1?"":" ")).trim()}const afe=/^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,ofe=/^[$_\p{ID_Start}][-$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,lfe={};function hk(e,t){return((t||lfe).jsx?ofe:afe).test(e)}const sfe=/[ \t\n\f\r]/g;function ufe(e){return typeof e=="object"?e.type==="text"?fk(e.value):!1:fk(e)}function fk(e){return e.replace(sfe,"")===""}let nm=class{constructor(t,n,r){this.property=t,this.normal=n,r&&(this.space=r)}};nm.prototype.property={};nm.prototype.normal={};nm.prototype.space=null;function WI(e,t){const n={},r={};let i=-1;for(;++i4&&n.slice(0,4)==="data"&&hfe.test(t)){if(t.charAt(4)==="-"){const a=t.slice(5).replace(Ak,Afe);r="data"+a.charAt(0).toUpperCase()+a.slice(1)}else{const a=t.slice(4);if(!Ak.test(a)){let o=a.replace(ffe,mfe);o.charAt(0)!=="-"&&(o="-"+o),t="data"+o}}i=e9}return new i(r,t)}function mfe(e){return"-"+e.toLowerCase()}function Afe(e){return e.charAt(1).toUpperCase()}const Cfe={classId:"classID",dataType:"datatype",itemId:"itemID",strokeDashArray:"strokeDasharray",strokeDashOffset:"strokeDashoffset",strokeLineCap:"strokeLinecap",strokeLineJoin:"strokeLinejoin",strokeMiterLimit:"strokeMiterlimit",typeOf:"typeof",xLinkActuate:"xlinkActuate",xLinkArcRole:"xlinkArcrole",xLinkHref:"xlinkHref",xLinkRole:"xlinkRole",xLinkShow:"xlinkShow",xLinkTitle:"xlinkTitle",xLinkType:"xlinkType",xmlnsXLink:"xmlnsXlink"},DI=WI([EI,FI,xI,GI,pfe],"html"),s3=WI([EI,FI,xI,GI,gfe],"svg");function Ck(e){const t=String(e||"").trim();return t?t.split(/[ \t\n\r\f]+/g):[]}function Bfe(e){return e.join(" ").trim()}var NI={},Bk=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,wfe=/\n/g,bfe=/^\s*/,vfe=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,Kfe=/^:\s*/,Qfe=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,Wfe=/^[;\s]*/,yfe=/^\s+|\s+$/g,Ffe=` +`,wk="/",bk="*",A0="",Efe="comment",Rfe="declaration",Sfe=function(e,t){if(typeof e!="string")throw new TypeError("First argument must be a string");if(!e)return[];t=t||{};var n=1,r=1;function i(m){var A=m.match(wfe);A&&(n+=A.length);var B=m.lastIndexOf(Ffe);r=~B?m.length-B:r+m.length}function a(){var m={line:n,column:r};return function(A){return A.position=new o(m),u(),A}}function o(m){this.start=m,this.end={line:n,column:r},this.source=t.source}o.prototype.content=e;function l(m){var A=new Error(t.source+":"+n+":"+r+": "+m);if(A.reason=m,A.filename=t.source,A.line=n,A.column=r,A.source=e,!t.silent)throw A}function s(m){var A=m.exec(e);if(A){var B=A[0];return i(B),e=e.slice(B.length),A}}function u(){s(bfe)}function c(m){var A;for(m=m||[];A=d();)A!==!1&&m.push(A);return m}function d(){var m=a();if(!(wk!=e.charAt(0)||bk!=e.charAt(1))){for(var A=2;A0!=e.charAt(A)&&(bk!=e.charAt(A)||wk!=e.charAt(A+1));)++A;if(A+=2,A0===e.charAt(A-1))return l("End of comment missing");var B=e.slice(2,A-2);return r+=2,i(B),e=e.slice(A),r+=2,m({type:Efe,comment:B})}}function g(){var m=a(),A=s(vfe);if(A){if(d(),!s(Kfe))return l("property missing ':'");var B=s(Qfe),C=m({type:Rfe,property:vk(A[0].replace(Bk,A0)),value:B?vk(B[0].replace(Bk,A0)):A0});return s(Wfe),C}}function h(){var m=[];c(m);for(var A;A=g();)A!==!1&&(m.push(A),c(m));return m}return u(),h()};function vk(e){return e?e.replace(yfe,A0):A0}var xfe=hn&&hn.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(NI,"__esModule",{value:!0});var Gfe=xfe(Sfe);function kfe(e,t){var n=null;if(!e||typeof e!="string")return n;var r=(0,Gfe.default)(e),i=typeof t=="function";return r.forEach(function(a){if(a.type==="declaration"){var o=a.property,l=a.value;i?t(o,l,a):l&&(n=n||{},n[o]=l)}}),n}var Kk=NI.default=kfe;const Dfe=Kk.default||Kk,ZI=HI("end"),t9=HI("start");function HI(e){return t;function t(n){const r=n&&n.position&&n.position[e]||{};if(typeof r.line=="number"&&r.line>0&&typeof r.column=="number"&&r.column>0)return{line:r.line,column:r.column,offset:typeof r.offset=="number"&&r.offset>-1?r.offset:void 0}}}function Nfe(e){const t=t9(e),n=ZI(e);if(t&&n)return{start:t,end:n}}function xh(e){return!e||typeof e!="object"?"":"position"in e||"type"in e?Qk(e.position):"start"in e||"end"in e?Qk(e):"line"in e||"column"in e?Oy(e):""}function Oy(e){return Wk(e&&e.line)+":"+Wk(e&&e.column)}function Qk(e){return Oy(e&&e.start)+"-"+Oy(e&&e.end)}function Wk(e){return e&&typeof e=="number"?e:1}class Zi extends Error{constructor(t,n,r){super(),typeof n=="string"&&(r=n,n=void 0);let i="",a={},o=!1;if(n&&("line"in n&&"column"in n?a={place:n}:"start"in n&&"end"in n?a={place:n}:"type"in n?a={ancestors:[n],place:n.position}:a={...n}),typeof t=="string"?i=t:!a.cause&&t&&(o=!0,i=t.message,a.cause=t),!a.ruleId&&!a.source&&typeof r=="string"){const s=r.indexOf(":");s===-1?a.ruleId=r:(a.source=r.slice(0,s),a.ruleId=r.slice(s+1))}if(!a.place&&a.ancestors&&a.ancestors){const s=a.ancestors[a.ancestors.length-1];s&&(a.place=s.position)}const l=a.place&&"start"in a.place?a.place.start:a.place;this.ancestors=a.ancestors||void 0,this.cause=a.cause||void 0,this.column=l?l.column:void 0,this.fatal=void 0,this.file,this.message=i,this.line=l?l.line:void 0,this.name=xh(a.place)||"1:1",this.place=a.place||void 0,this.reason=this.message,this.ruleId=a.ruleId||void 0,this.source=a.source||void 0,this.stack=o&&a.cause&&typeof a.cause.stack=="string"?a.cause.stack:"",this.actual,this.expected,this.note,this.url}}Zi.prototype.file="";Zi.prototype.name="";Zi.prototype.reason="";Zi.prototype.message="";Zi.prototype.stack="";Zi.prototype.column=void 0;Zi.prototype.line=void 0;Zi.prototype.ancestors=void 0;Zi.prototype.cause=void 0;Zi.prototype.fatal=void 0;Zi.prototype.place=void 0;Zi.prototype.ruleId=void 0;Zi.prototype.source=void 0;const n9={}.hasOwnProperty,Zfe=new Map,Hfe=/[A-Z]/g,Xfe=/-([a-z])/g,Lfe=new Set(["table","tbody","thead","tfoot","tr"]),Mfe=new Set(["td","th"]),XI="https://github.com/syntax-tree/hast-util-to-jsx-runtime";function Tfe(e,t){if(!t||t.Fragment===void 0)throw new TypeError("Expected `Fragment` in options");const n=t.filePath||void 0;let r;if(t.development){if(typeof t.jsxDEV!="function")throw new TypeError("Expected `jsxDEV` in options when `development: true`");r=Pfe(n,t.jsxDEV)}else{if(typeof t.jsx!="function")throw new TypeError("Expected `jsx` in production options");if(typeof t.jsxs!="function")throw new TypeError("Expected `jsxs` in production options");r=zfe(n,t.jsx,t.jsxs)}const i={Fragment:t.Fragment,ancestors:[],components:t.components||{},create:r,elementAttributeNameCase:t.elementAttributeNameCase||"react",evaluater:t.createEvaluater?t.createEvaluater():void 0,filePath:n,ignoreInvalidStyle:t.ignoreInvalidStyle||!1,passKeys:t.passKeys!==!1,passNode:t.passNode||!1,schema:t.space==="svg"?s3:DI,stylePropertyNameCase:t.stylePropertyNameCase||"dom",tableCellAlignToStyle:t.tableCellAlignToStyle!==!1},a=LI(i,e,void 0);return a&&typeof a!="string"?a:i.create(e,i.Fragment,{children:a||void 0},void 0)}function LI(e,t,n){if(t.type==="element")return Vfe(e,t,n);if(t.type==="mdxFlowExpression"||t.type==="mdxTextExpression")return Yfe(e,t);if(t.type==="mdxJsxFlowElement"||t.type==="mdxJsxTextElement")return Ufe(e,t,n);if(t.type==="mdxjsEsm")return Ife(e,t);if(t.type==="root")return Ofe(e,t,n);if(t.type==="text")return Jfe(e,t)}function Vfe(e,t,n){const r=e.schema;let i=r;t.tagName.toLowerCase()==="svg"&&r.space==="html"&&(i=s3,e.schema=i),e.ancestors.push(t);const a=TI(e,t.tagName,!1),o=jfe(e,t);let l=i9(e,t);return Lfe.has(t.tagName)&&(l=l.filter(function(s){return typeof s=="string"?!ufe(s):!0})),MI(e,o,a,t),r9(o,l),e.ancestors.pop(),e.schema=r,e.create(t,a,o,n)}function Yfe(e,t){if(t.data&&t.data.estree&&e.evaluater){const r=t.data.estree.body[0];return r.type,e.evaluater.evaluateExpression(r.expression)}vf(e,t.position)}function Ife(e,t){if(t.data&&t.data.estree&&e.evaluater)return e.evaluater.evaluateProgram(t.data.estree);vf(e,t.position)}function Ufe(e,t,n){const r=e.schema;let i=r;t.name==="svg"&&r.space==="html"&&(i=s3,e.schema=i),e.ancestors.push(t);const a=t.name===null?e.Fragment:TI(e,t.name,!0),o=_fe(e,t),l=i9(e,t);return MI(e,o,a,t),r9(o,l),e.ancestors.pop(),e.schema=r,e.create(t,a,o,n)}function Ofe(e,t,n){const r={};return r9(r,i9(e,t)),e.create(t,e.Fragment,r,n)}function Jfe(e,t){return t.value}function MI(e,t,n,r){typeof n!="string"&&n!==e.Fragment&&e.passNode&&(t.node=r)}function r9(e,t){if(t.length>0){const n=t.length>1?t:t[0];n&&(e.children=n)}}function zfe(e,t,n){return r;function r(i,a,o,l){const u=Array.isArray(o.children)?n:t;return l?u(a,o,l):u(a,o)}}function Pfe(e,t){return n;function n(r,i,a,o){const l=Array.isArray(a.children),s=t9(r);return t(i,a,o,l,{columnNumber:s?s.column-1:void 0,fileName:e,lineNumber:s?s.line:void 0},void 0)}}function jfe(e,t){const n={};let r,i;for(i in t.properties)if(i!=="children"&&n9.call(t.properties,i)){const a=$fe(e,i,t.properties[i]);if(a){const[o,l]=a;e.tableCellAlignToStyle&&o==="align"&&typeof l=="string"&&Mfe.has(t.tagName)?r=l:n[o]=l}}if(r){const a=n.style||(n.style={});a[e.stylePropertyNameCase==="css"?"text-align":"textAlign"]=r}return n}function _fe(e,t){const n={};for(const r of t.attributes)if(r.type==="mdxJsxExpressionAttribute")if(r.data&&r.data.estree&&e.evaluater){const a=r.data.estree.body[0];a.type;const o=a.expression;o.type;const l=o.properties[0];l.type,Object.assign(n,e.evaluater.evaluateExpression(l.argument))}else vf(e,t.position);else{const i=r.name;let a;if(r.value&&typeof r.value=="object")if(r.value.data&&r.value.data.estree&&e.evaluater){const l=r.value.data.estree.body[0];l.type,a=e.evaluater.evaluateExpression(l.expression)}else vf(e,t.position);else a=r.value===null?!0:r.value;n[i]=a}return n}function i9(e,t){const n=[];let r=-1;const i=e.passKeys?new Map:Zfe;for(;++ri?0:i+t:t=t>i?i:t,n=n>0?n:0,r.length<1e4)o=Array.from(r),o.unshift(t,n),e.splice(...o);else for(n&&e.splice(t,n);a0?(ou(e,e.length,0,t),e):t}const Ek={}.hasOwnProperty;function lme(e){const t={};let n=-1;for(;++n13&&n<32||n>126&&n<160||n>55295&&n<57344||n>64975&&n<65008||(n&65535)===65535||(n&65535)===65534||n>1114111?"�":String.fromCodePoint(n)}function Op(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}const Ul=Xc(/[A-Za-z]/),Pa=Xc(/[\dA-Za-z]/),cme=Xc(/[#-'*+\--9=?A-Z^-~]/);function Jy(e){return e!==null&&(e<32||e===127)}const zy=Xc(/\d/),dme=Xc(/[\dA-Fa-f]/),pme=Xc(/[!-/:-@[-`{-~]/);function Zt(e){return e!==null&&e<-2}function Qa(e){return e!==null&&(e<0||e===32)}function xn(e){return e===-2||e===-1||e===32}const gme=Xc(/\p{P}|\p{S}/u),hme=Xc(/\s/);function Xc(e){return t;function t(n){return n!==null&&n>-1&&e.test(String.fromCharCode(n))}}function M1(e){const t=[];let n=-1,r=0,i=0;for(;++n55295&&a<57344){const l=e.charCodeAt(n+1);a<56320&&l>56319&&l<57344?(o=String.fromCharCode(a,l),i=1):o="�"}else o=String.fromCharCode(a);o&&(t.push(e.slice(r,n),encodeURIComponent(o)),r=n+i+1,o=""),i&&(n+=i,i=0)}return t.join("")+e.slice(r)}function Nn(e,t,n,r){const i=r?r-1:Number.POSITIVE_INFINITY;let a=0;return o;function o(s){return xn(s)?(e.enter(n),l(s)):t(s)}function l(s){return xn(s)&&a++o))return;const G=t.events.length;let X=G,H,v;for(;X--;)if(t.events[X][0]==="exit"&&t.events[X][1].type==="chunkFlow"){if(H){v=t.events[X][1].end;break}H=!0}for(C(r),y=G;yQ;){const K=n[F];t.containerState=K[1],K[0].exit.call(t,e)}n.length=Q}function b(){i.write([null]),a=void 0,i=void 0,t.containerState._closeFlow=void 0}}function Bme(e,t,n){return Nn(e,e.attempt(this.parser.constructs.document,t,n),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function Sk(e){if(e===null||Qa(e)||hme(e))return 1;if(gme(e))return 2}function o9(e,t,n){const r=[];let i=-1;for(;++i1&&e[n][1].end.offset-e[n][1].start.offset>1?2:1;const d=Object.assign({},e[r][1].end),g=Object.assign({},e[n][1].start);xk(d,-s),xk(g,s),o={type:s>1?"strongSequence":"emphasisSequence",start:d,end:Object.assign({},e[r][1].end)},l={type:s>1?"strongSequence":"emphasisSequence",start:Object.assign({},e[n][1].start),end:g},a={type:s>1?"strongText":"emphasisText",start:Object.assign({},e[r][1].end),end:Object.assign({},e[n][1].start)},i={type:s>1?"strong":"emphasis",start:Object.assign({},o.start),end:Object.assign({},l.end)},e[r][1].end=Object.assign({},o.start),e[n][1].start=Object.assign({},l.end),u=[],e[r][1].end.offset-e[r][1].start.offset&&(u=xo(u,[["enter",e[r][1],t],["exit",e[r][1],t]])),u=xo(u,[["enter",i,t],["enter",o,t],["exit",o,t],["enter",a,t]]),u=xo(u,o9(t.parser.constructs.insideSpan.null,e.slice(r+1,n),t)),u=xo(u,[["exit",a,t],["enter",l,t],["exit",l,t],["exit",i,t]]),e[n][1].end.offset-e[n][1].start.offset?(c=2,u=xo(u,[["enter",e[n][1],t],["exit",e[n][1],t]])):c=0,ou(e,r-1,n-r+3,u),n=r+u.length-c-2;break}}for(n=-1;++n0&&xn(y)?Nn(e,b,"linePrefix",a+1)(y):b(y)}function b(y){return y===null||Zt(y)?e.check(Gk,A,F)(y):(e.enter("codeFlowValue"),Q(y))}function Q(y){return y===null||Zt(y)?(e.exit("codeFlowValue"),b(y)):(e.consume(y),Q)}function F(y){return e.exit("codeFenced"),t(y)}function K(y,G,X){let H=0;return v;function v(j){return y.enter("lineEnding"),y.consume(j),y.exit("lineEnding"),k}function k(j){return y.enter("codeFencedFence"),xn(j)?Nn(y,D,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(j):D(j)}function D(j){return j===l?(y.enter("codeFencedFenceSequence"),V(j)):X(j)}function V(j){return j===l?(H++,y.consume(j),V):H>=o?(y.exit("codeFencedFenceSequence"),xn(j)?Nn(y,z,"whitespace")(j):z(j)):X(j)}function z(j){return j===null||Zt(j)?(y.exit("codeFencedFence"),G(j)):X(j)}}}function xme(e,t,n){const r=this;return i;function i(o){return o===null?n(o):(e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),a)}function a(o){return r.parser.lazy[r.now().line]?n(o):t(o)}}const Jv={name:"codeIndented",tokenize:kme},Gme={tokenize:Dme,partial:!0};function kme(e,t,n){const r=this;return i;function i(u){return e.enter("codeIndented"),Nn(e,a,"linePrefix",4+1)(u)}function a(u){const c=r.events[r.events.length-1];return c&&c[1].type==="linePrefix"&&c[2].sliceSerialize(c[1],!0).length>=4?o(u):n(u)}function o(u){return u===null?s(u):Zt(u)?e.attempt(Gme,o,s)(u):(e.enter("codeFlowValue"),l(u))}function l(u){return u===null||Zt(u)?(e.exit("codeFlowValue"),o(u)):(e.consume(u),l)}function s(u){return e.exit("codeIndented"),t(u)}}function Dme(e,t,n){const r=this;return i;function i(o){return r.parser.lazy[r.now().line]?n(o):Zt(o)?(e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),i):Nn(e,a,"linePrefix",4+1)(o)}function a(o){const l=r.events[r.events.length-1];return l&&l[1].type==="linePrefix"&&l[2].sliceSerialize(l[1],!0).length>=4?t(o):Zt(o)?i(o):n(o)}}const Nme={name:"codeText",tokenize:Xme,resolve:Zme,previous:Hme};function Zme(e){let t=e.length-4,n=3,r,i;if((e[n][1].type==="lineEnding"||e[n][1].type==="space")&&(e[t][1].type==="lineEnding"||e[t][1].type==="space")){for(r=n;++r=this.left.length+this.right.length)throw new RangeError("Cannot access index `"+t+"` in a splice buffer of size `"+(this.left.length+this.right.length)+"`");return tthis.left.length?this.right.slice(this.right.length-r+this.left.length,this.right.length-t+this.left.length).reverse():this.left.slice(t).concat(this.right.slice(this.right.length-r+this.left.length).reverse())}splice(t,n,r){const i=n||0;this.setCursor(Math.trunc(t));const a=this.right.splice(this.right.length-i,Number.POSITIVE_INFINITY);return r&&Ng(this.left,r),a.reverse()}pop(){return this.setCursor(Number.POSITIVE_INFINITY),this.left.pop()}push(t){this.setCursor(Number.POSITIVE_INFINITY),this.left.push(t)}pushMany(t){this.setCursor(Number.POSITIVE_INFINITY),Ng(this.left,t)}unshift(t){this.setCursor(0),this.right.push(t)}unshiftMany(t){this.setCursor(0),Ng(this.right,t.reverse())}setCursor(t){if(!(t===this.left.length||t>this.left.length&&this.right.length===0||t<0&&this.left.length===0))if(t=4?t(o):e.interrupt(r.parser.constructs.flow,n,t)(o)}}function zI(e,t,n,r,i,a,o,l,s){const u=s||Number.POSITIVE_INFINITY;let c=0;return d;function d(C){return C===60?(e.enter(r),e.enter(i),e.enter(a),e.consume(C),e.exit(a),g):C===null||C===32||C===41||Jy(C)?n(C):(e.enter(r),e.enter(o),e.enter(l),e.enter("chunkString",{contentType:"string"}),A(C))}function g(C){return C===62?(e.enter(a),e.consume(C),e.exit(a),e.exit(i),e.exit(r),t):(e.enter(l),e.enter("chunkString",{contentType:"string"}),h(C))}function h(C){return C===62?(e.exit("chunkString"),e.exit(l),g(C)):C===null||C===60||Zt(C)?n(C):(e.consume(C),C===92?m:h)}function m(C){return C===60||C===62||C===92?(e.consume(C),h):h(C)}function A(C){return!c&&(C===null||C===41||Qa(C))?(e.exit("chunkString"),e.exit(l),e.exit(o),e.exit(r),t(C)):c999||h===null||h===91||h===93&&!s||h===94&&!l&&"_hiddenFootnoteSupport"in o.parser.constructs?n(h):h===93?(e.exit(a),e.enter(i),e.consume(h),e.exit(i),e.exit(r),t):Zt(h)?(e.enter("lineEnding"),e.consume(h),e.exit("lineEnding"),c):(e.enter("chunkString",{contentType:"string"}),d(h))}function d(h){return h===null||h===91||h===93||Zt(h)||l++>999?(e.exit("chunkString"),c(h)):(e.consume(h),s||(s=!xn(h)),h===92?g:d)}function g(h){return h===91||h===92||h===93?(e.consume(h),l++,d):d(h)}}function jI(e,t,n,r,i,a){let o;return l;function l(g){return g===34||g===39||g===40?(e.enter(r),e.enter(i),e.consume(g),e.exit(i),o=g===40?41:g,s):n(g)}function s(g){return g===o?(e.enter(i),e.consume(g),e.exit(i),e.exit(r),t):(e.enter(a),u(g))}function u(g){return g===o?(e.exit(a),s(o)):g===null?n(g):Zt(g)?(e.enter("lineEnding"),e.consume(g),e.exit("lineEnding"),Nn(e,u,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),c(g))}function c(g){return g===o||g===null||Zt(g)?(e.exit("chunkString"),u(g)):(e.consume(g),g===92?d:c)}function d(g){return g===o||g===92?(e.consume(g),c):c(g)}}function Gh(e,t){let n;return r;function r(i){return Zt(i)?(e.enter("lineEnding"),e.consume(i),e.exit("lineEnding"),n=!0,r):xn(i)?Nn(e,r,n?"linePrefix":"lineSuffix")(i):t(i)}}const Ome={name:"definition",tokenize:zme},Jme={tokenize:Pme,partial:!0};function zme(e,t,n){const r=this;let i;return a;function a(h){return e.enter("definition"),o(h)}function o(h){return PI.call(r,e,l,n,"definitionLabel","definitionLabelMarker","definitionLabelString")(h)}function l(h){return i=Op(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)),h===58?(e.enter("definitionMarker"),e.consume(h),e.exit("definitionMarker"),s):n(h)}function s(h){return Qa(h)?Gh(e,u)(h):u(h)}function u(h){return zI(e,c,n,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(h)}function c(h){return e.attempt(Jme,d,d)(h)}function d(h){return xn(h)?Nn(e,g,"whitespace")(h):g(h)}function g(h){return h===null||Zt(h)?(e.exit("definition"),r.parser.defined.push(i),t(h)):n(h)}}function Pme(e,t,n){return r;function r(l){return Qa(l)?Gh(e,i)(l):n(l)}function i(l){return jI(e,a,n,"definitionTitle","definitionTitleMarker","definitionTitleString")(l)}function a(l){return xn(l)?Nn(e,o,"whitespace")(l):o(l)}function o(l){return l===null||Zt(l)?t(l):n(l)}}const jme={name:"hardBreakEscape",tokenize:_me};function _me(e,t,n){return r;function r(a){return e.enter("hardBreakEscape"),e.consume(a),i}function i(a){return Zt(a)?(e.exit("hardBreakEscape"),t(a)):n(a)}}const $me={name:"headingAtx",tokenize:eAe,resolve:qme};function qme(e,t){let n=e.length-2,r=3,i,a;return e[r][1].type==="whitespace"&&(r+=2),n-2>r&&e[n][1].type==="whitespace"&&(n-=2),e[n][1].type==="atxHeadingSequence"&&(r===n-1||n-4>r&&e[n-2][1].type==="whitespace")&&(n-=r+1===n?2:4),n>r&&(i={type:"atxHeadingText",start:e[r][1].start,end:e[n][1].end},a={type:"chunkText",start:e[r][1].start,end:e[n][1].end,contentType:"text"},ou(e,r,n-r+1,[["enter",i,t],["enter",a,t],["exit",a,t],["exit",i,t]])),e}function eAe(e,t,n){let r=0;return i;function i(c){return e.enter("atxHeading"),a(c)}function a(c){return e.enter("atxHeadingSequence"),o(c)}function o(c){return c===35&&r++<6?(e.consume(c),o):c===null||Qa(c)?(e.exit("atxHeadingSequence"),l(c)):n(c)}function l(c){return c===35?(e.enter("atxHeadingSequence"),s(c)):c===null||Zt(c)?(e.exit("atxHeading"),t(c)):xn(c)?Nn(e,l,"whitespace")(c):(e.enter("atxHeadingText"),u(c))}function s(c){return c===35?(e.consume(c),s):(e.exit("atxHeadingSequence"),l(c))}function u(c){return c===null||c===35||Qa(c)?(e.exit("atxHeadingText"),l(c)):(e.consume(c),u)}}const tAe=["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","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","search","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],Dk=["pre","script","style","textarea"],nAe={name:"htmlFlow",tokenize:oAe,resolveTo:aAe,concrete:!0},rAe={tokenize:sAe,partial:!0},iAe={tokenize:lAe,partial:!0};function aAe(e){let t=e.length;for(;t--&&!(e[t][0]==="enter"&&e[t][1].type==="htmlFlow"););return t>1&&e[t-2][1].type==="linePrefix"&&(e[t][1].start=e[t-2][1].start,e[t+1][1].start=e[t-2][1].start,e.splice(t-2,2)),e}function oAe(e,t,n){const r=this;let i,a,o,l,s;return u;function u(T){return c(T)}function c(T){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(T),d}function d(T){return T===33?(e.consume(T),g):T===47?(e.consume(T),a=!0,A):T===63?(e.consume(T),i=3,r.interrupt?t:Z):Ul(T)?(e.consume(T),o=String.fromCharCode(T),B):n(T)}function g(T){return T===45?(e.consume(T),i=2,h):T===91?(e.consume(T),i=5,l=0,m):Ul(T)?(e.consume(T),i=4,r.interrupt?t:Z):n(T)}function h(T){return T===45?(e.consume(T),r.interrupt?t:Z):n(T)}function m(T){const ue="CDATA[";return T===ue.charCodeAt(l++)?(e.consume(T),l===ue.length?r.interrupt?t:D:m):n(T)}function A(T){return Ul(T)?(e.consume(T),o=String.fromCharCode(T),B):n(T)}function B(T){if(T===null||T===47||T===62||Qa(T)){const ue=T===47,fe=o.toLowerCase();return!ue&&!a&&Dk.includes(fe)?(i=1,r.interrupt?t(T):D(T)):tAe.includes(o.toLowerCase())?(i=6,ue?(e.consume(T),C):r.interrupt?t(T):D(T)):(i=7,r.interrupt&&!r.parser.lazy[r.now().line]?n(T):a?b(T):Q(T))}return T===45||Pa(T)?(e.consume(T),o+=String.fromCharCode(T),B):n(T)}function C(T){return T===62?(e.consume(T),r.interrupt?t:D):n(T)}function b(T){return xn(T)?(e.consume(T),b):v(T)}function Q(T){return T===47?(e.consume(T),v):T===58||T===95||Ul(T)?(e.consume(T),F):xn(T)?(e.consume(T),Q):v(T)}function F(T){return T===45||T===46||T===58||T===95||Pa(T)?(e.consume(T),F):K(T)}function K(T){return T===61?(e.consume(T),y):xn(T)?(e.consume(T),K):Q(T)}function y(T){return T===null||T===60||T===61||T===62||T===96?n(T):T===34||T===39?(e.consume(T),s=T,G):xn(T)?(e.consume(T),y):X(T)}function G(T){return T===s?(e.consume(T),s=null,H):T===null||Zt(T)?n(T):(e.consume(T),G)}function X(T){return T===null||T===34||T===39||T===47||T===60||T===61||T===62||T===96||Qa(T)?K(T):(e.consume(T),X)}function H(T){return T===47||T===62||xn(T)?Q(T):n(T)}function v(T){return T===62?(e.consume(T),k):n(T)}function k(T){return T===null||Zt(T)?D(T):xn(T)?(e.consume(T),k):n(T)}function D(T){return T===45&&i===2?(e.consume(T),te):T===60&&i===1?(e.consume(T),J):T===62&&i===4?(e.consume(T),S):T===63&&i===3?(e.consume(T),Z):T===93&&i===5?(e.consume(T),se):Zt(T)&&(i===6||i===7)?(e.exit("htmlFlowData"),e.check(rAe,q,V)(T)):T===null||Zt(T)?(e.exit("htmlFlowData"),V(T)):(e.consume(T),D)}function V(T){return e.check(iAe,z,q)(T)}function z(T){return e.enter("lineEnding"),e.consume(T),e.exit("lineEnding"),j}function j(T){return T===null||Zt(T)?V(T):(e.enter("htmlFlowData"),D(T))}function te(T){return T===45?(e.consume(T),Z):D(T)}function J(T){return T===47?(e.consume(T),o="",I):D(T)}function I(T){if(T===62){const ue=o.toLowerCase();return Dk.includes(ue)?(e.consume(T),S):D(T)}return Ul(T)&&o.length<8?(e.consume(T),o+=String.fromCharCode(T),I):D(T)}function se(T){return T===93?(e.consume(T),Z):D(T)}function Z(T){return T===62?(e.consume(T),S):T===45&&i===2?(e.consume(T),Z):D(T)}function S(T){return T===null||Zt(T)?(e.exit("htmlFlowData"),q(T)):(e.consume(T),S)}function q(T){return e.exit("htmlFlow"),t(T)}}function lAe(e,t,n){const r=this;return i;function i(o){return Zt(o)?(e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),a):n(o)}function a(o){return r.parser.lazy[r.now().line]?n(o):t(o)}}function sAe(e,t,n){return r;function r(i){return e.enter("lineEnding"),e.consume(i),e.exit("lineEnding"),e.attempt(u3,t,n)}}const uAe={name:"htmlText",tokenize:cAe};function cAe(e,t,n){const r=this;let i,a,o;return l;function l(Z){return e.enter("htmlText"),e.enter("htmlTextData"),e.consume(Z),s}function s(Z){return Z===33?(e.consume(Z),u):Z===47?(e.consume(Z),K):Z===63?(e.consume(Z),Q):Ul(Z)?(e.consume(Z),X):n(Z)}function u(Z){return Z===45?(e.consume(Z),c):Z===91?(e.consume(Z),a=0,m):Ul(Z)?(e.consume(Z),b):n(Z)}function c(Z){return Z===45?(e.consume(Z),h):n(Z)}function d(Z){return Z===null?n(Z):Z===45?(e.consume(Z),g):Zt(Z)?(o=d,J(Z)):(e.consume(Z),d)}function g(Z){return Z===45?(e.consume(Z),h):d(Z)}function h(Z){return Z===62?te(Z):Z===45?g(Z):d(Z)}function m(Z){const S="CDATA[";return Z===S.charCodeAt(a++)?(e.consume(Z),a===S.length?A:m):n(Z)}function A(Z){return Z===null?n(Z):Z===93?(e.consume(Z),B):Zt(Z)?(o=A,J(Z)):(e.consume(Z),A)}function B(Z){return Z===93?(e.consume(Z),C):A(Z)}function C(Z){return Z===62?te(Z):Z===93?(e.consume(Z),C):A(Z)}function b(Z){return Z===null||Z===62?te(Z):Zt(Z)?(o=b,J(Z)):(e.consume(Z),b)}function Q(Z){return Z===null?n(Z):Z===63?(e.consume(Z),F):Zt(Z)?(o=Q,J(Z)):(e.consume(Z),Q)}function F(Z){return Z===62?te(Z):Q(Z)}function K(Z){return Ul(Z)?(e.consume(Z),y):n(Z)}function y(Z){return Z===45||Pa(Z)?(e.consume(Z),y):G(Z)}function G(Z){return Zt(Z)?(o=G,J(Z)):xn(Z)?(e.consume(Z),G):te(Z)}function X(Z){return Z===45||Pa(Z)?(e.consume(Z),X):Z===47||Z===62||Qa(Z)?H(Z):n(Z)}function H(Z){return Z===47?(e.consume(Z),te):Z===58||Z===95||Ul(Z)?(e.consume(Z),v):Zt(Z)?(o=H,J(Z)):xn(Z)?(e.consume(Z),H):te(Z)}function v(Z){return Z===45||Z===46||Z===58||Z===95||Pa(Z)?(e.consume(Z),v):k(Z)}function k(Z){return Z===61?(e.consume(Z),D):Zt(Z)?(o=k,J(Z)):xn(Z)?(e.consume(Z),k):H(Z)}function D(Z){return Z===null||Z===60||Z===61||Z===62||Z===96?n(Z):Z===34||Z===39?(e.consume(Z),i=Z,V):Zt(Z)?(o=D,J(Z)):xn(Z)?(e.consume(Z),D):(e.consume(Z),z)}function V(Z){return Z===i?(e.consume(Z),i=void 0,j):Z===null?n(Z):Zt(Z)?(o=V,J(Z)):(e.consume(Z),V)}function z(Z){return Z===null||Z===34||Z===39||Z===60||Z===61||Z===96?n(Z):Z===47||Z===62||Qa(Z)?H(Z):(e.consume(Z),z)}function j(Z){return Z===47||Z===62||Qa(Z)?H(Z):n(Z)}function te(Z){return Z===62?(e.consume(Z),e.exit("htmlTextData"),e.exit("htmlText"),t):n(Z)}function J(Z){return e.exit("htmlTextData"),e.enter("lineEnding"),e.consume(Z),e.exit("lineEnding"),I}function I(Z){return xn(Z)?Nn(e,se,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(Z):se(Z)}function se(Z){return e.enter("htmlTextData"),o(Z)}}const l9={name:"labelEnd",tokenize:mAe,resolveTo:fAe,resolveAll:hAe},dAe={tokenize:AAe},pAe={tokenize:CAe},gAe={tokenize:BAe};function hAe(e){let t=-1;for(;++t=3&&(u===null||Zt(u))?(e.exit("thematicBreak"),t(u)):n(u)}function s(u){return u===i?(e.consume(u),r++,s):(e.exit("thematicBreakSequence"),xn(u)?Nn(e,l,"whitespace")(u):l(u))}}const ga={name:"list",tokenize:EAe,continuation:{tokenize:RAe},exit:xAe},yAe={tokenize:GAe,partial:!0},FAe={tokenize:SAe,partial:!0};function EAe(e,t,n){const r=this,i=r.events[r.events.length-1];let a=i&&i[1].type==="linePrefix"?i[2].sliceSerialize(i[1],!0).length:0,o=0;return l;function l(h){const m=r.containerState.type||(h===42||h===43||h===45?"listUnordered":"listOrdered");if(m==="listUnordered"?!r.containerState.marker||h===r.containerState.marker:zy(h)){if(r.containerState.type||(r.containerState.type=m,e.enter(m,{_container:!0})),m==="listUnordered")return e.enter("listItemPrefix"),h===42||h===45?e.check(dC,n,u)(h):u(h);if(!r.interrupt||h===49)return e.enter("listItemPrefix"),e.enter("listItemValue"),s(h)}return n(h)}function s(h){return zy(h)&&++o<10?(e.consume(h),s):(!r.interrupt||o<2)&&(r.containerState.marker?h===r.containerState.marker:h===41||h===46)?(e.exit("listItemValue"),u(h)):n(h)}function u(h){return e.enter("listItemMarker"),e.consume(h),e.exit("listItemMarker"),r.containerState.marker=r.containerState.marker||h,e.check(u3,r.interrupt?n:c,e.attempt(yAe,g,d))}function c(h){return r.containerState.initialBlankLine=!0,a++,g(h)}function d(h){return xn(h)?(e.enter("listItemPrefixWhitespace"),e.consume(h),e.exit("listItemPrefixWhitespace"),g):n(h)}function g(h){return r.containerState.size=a+r.sliceSerialize(e.exit("listItemPrefix"),!0).length,t(h)}}function RAe(e,t,n){const r=this;return r.containerState._closeFlow=void 0,e.check(u3,i,a);function i(l){return r.containerState.furtherBlankLines=r.containerState.furtherBlankLines||r.containerState.initialBlankLine,Nn(e,t,"listItemIndent",r.containerState.size+1)(l)}function a(l){return r.containerState.furtherBlankLines||!xn(l)?(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,o(l)):(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,e.attempt(FAe,t,o)(l))}function o(l){return r.containerState._closeFlow=!0,r.interrupt=void 0,Nn(e,e.attempt(ga,t,n),"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(l)}}function SAe(e,t,n){const r=this;return Nn(e,i,"listItemIndent",r.containerState.size+1);function i(a){const o=r.events[r.events.length-1];return o&&o[1].type==="listItemIndent"&&o[2].sliceSerialize(o[1],!0).length===r.containerState.size?t(a):n(a)}}function xAe(e){e.exit(this.containerState.type)}function GAe(e,t,n){const r=this;return Nn(e,i,"listItemPrefixWhitespace",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4+1);function i(a){const o=r.events[r.events.length-1];return!xn(a)&&o&&o[1].type==="listItemPrefixWhitespace"?t(a):n(a)}}const Nk={name:"setextUnderline",tokenize:DAe,resolveTo:kAe};function kAe(e,t){let n=e.length,r,i,a;for(;n--;)if(e[n][0]==="enter"){if(e[n][1].type==="content"){r=n;break}e[n][1].type==="paragraph"&&(i=n)}else e[n][1].type==="content"&&e.splice(n,1),!a&&e[n][1].type==="definition"&&(a=n);const o={type:"setextHeading",start:Object.assign({},e[i][1].start),end:Object.assign({},e[e.length-1][1].end)};return e[i][1].type="setextHeadingText",a?(e.splice(i,0,["enter",o,t]),e.splice(a+1,0,["exit",e[r][1],t]),e[r][1].end=Object.assign({},e[a][1].end)):e[r][1]=o,e.push(["exit",o,t]),e}function DAe(e,t,n){const r=this;let i;return a;function a(u){let c=r.events.length,d;for(;c--;)if(r.events[c][1].type!=="lineEnding"&&r.events[c][1].type!=="linePrefix"&&r.events[c][1].type!=="content"){d=r.events[c][1].type==="paragraph";break}return!r.parser.lazy[r.now().line]&&(r.interrupt||d)?(e.enter("setextHeadingLine"),i=u,o(u)):n(u)}function o(u){return e.enter("setextHeadingLineSequence"),l(u)}function l(u){return u===i?(e.consume(u),l):(e.exit("setextHeadingLineSequence"),xn(u)?Nn(e,s,"lineSuffix")(u):s(u))}function s(u){return u===null||Zt(u)?(e.exit("setextHeadingLine"),t(u)):n(u)}}const NAe={tokenize:ZAe};function ZAe(e){const t=this,n=e.attempt(u3,r,e.attempt(this.parser.constructs.flowInitial,i,Nn(e,e.attempt(this.parser.constructs.flow,i,e.attempt(Tme,i)),"linePrefix")));return n;function r(a){if(a===null){e.consume(a);return}return e.enter("lineEndingBlank"),e.consume(a),e.exit("lineEndingBlank"),t.currentConstruct=void 0,n}function i(a){if(a===null){e.consume(a);return}return e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),t.currentConstruct=void 0,n}}const HAe={resolveAll:$I()},XAe=_I("string"),LAe=_I("text");function _I(e){return{tokenize:t,resolveAll:$I(e==="text"?MAe:void 0)};function t(n){const r=this,i=this.parser.constructs[e],a=n.attempt(i,o,l);return o;function o(c){return u(c)?a(c):l(c)}function l(c){if(c===null){n.consume(c);return}return n.enter("data"),n.consume(c),s}function s(c){return u(c)?(n.exit("data"),a(c)):(n.consume(c),s)}function u(c){if(c===null)return!0;const d=i[c];let g=-1;if(d)for(;++g-1){const l=o[0];typeof l=="string"?o[0]=l.slice(r):o.shift()}a>0&&o.push(e[i].slice(0,a))}return o}function YAe(e,t){let n=-1;const r=[];let i;for(;++n0){const nt=we.tokenStack[we.tokenStack.length-1];(nt[1]||Hk).call(we,void 0,nt[0])}for(de.position={start:Su(Ce.length>0?Ce[0][1].start:{line:1,column:1,offset:0}),end:Su(Ce.length>0?Ce[Ce.length-2][1].end:{line:1,column:1,offset:0})},xe=-1;++xe1?"-"+l:""),dataFootnoteRef:!0,ariaDescribedBy:["footnote-label"]},children:[{type:"text",value:String(o)}]};e.patch(t,s);const u={type:"element",tagName:"sup",properties:{},children:[s]};return e.patch(t,u),e.applyData(t,u)}function m2e(e,t){const n={type:"element",tagName:"h"+t.depth,properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function A2e(e,t){if(e.options.allowDangerousHtml){const n={type:"raw",value:t.value};return e.patch(t,n),e.applyData(t,n)}}function tU(e,t){const n=t.referenceType;let r="]";if(n==="collapsed"?r+="[]":n==="full"&&(r+="["+(t.label||t.identifier)+"]"),t.type==="imageReference")return[{type:"text",value:"!["+t.alt+r}];const i=e.all(t),a=i[0];a&&a.type==="text"?a.value="["+a.value:i.unshift({type:"text",value:"["});const o=i[i.length-1];return o&&o.type==="text"?o.value+=r:i.push({type:"text",value:r}),i}function C2e(e,t){const n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return tU(e,t);const i={src:M1(r.url||""),alt:t.alt};r.title!==null&&r.title!==void 0&&(i.title=r.title);const a={type:"element",tagName:"img",properties:i,children:[]};return e.patch(t,a),e.applyData(t,a)}function B2e(e,t){const n={src:M1(t.url)};t.alt!==null&&t.alt!==void 0&&(n.alt=t.alt),t.title!==null&&t.title!==void 0&&(n.title=t.title);const r={type:"element",tagName:"img",properties:n,children:[]};return e.patch(t,r),e.applyData(t,r)}function w2e(e,t){const n={type:"text",value:t.value.replace(/\r?\n|\r/g," ")};e.patch(t,n);const r={type:"element",tagName:"code",properties:{},children:[n]};return e.patch(t,r),e.applyData(t,r)}function b2e(e,t){const n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return tU(e,t);const i={href:M1(r.url||"")};r.title!==null&&r.title!==void 0&&(i.title=r.title);const a={type:"element",tagName:"a",properties:i,children:e.all(t)};return e.patch(t,a),e.applyData(t,a)}function v2e(e,t){const n={href:M1(t.url)};t.title!==null&&t.title!==void 0&&(n.title=t.title);const r={type:"element",tagName:"a",properties:n,children:e.all(t)};return e.patch(t,r),e.applyData(t,r)}function K2e(e,t,n){const r=e.all(t),i=n?Q2e(n):nU(t),a={},o=[];if(typeof t.checked=="boolean"){const c=r[0];let d;c&&c.type==="element"&&c.tagName==="p"?d=c:(d={type:"element",tagName:"p",properties:{},children:[]},r.unshift(d)),d.children.length>0&&d.children.unshift({type:"text",value:" "}),d.children.unshift({type:"element",tagName:"input",properties:{type:"checkbox",checked:t.checked,disabled:!0},children:[]}),a.className=["task-list-item"]}let l=-1;for(;++l1}function W2e(e,t){const n={},r=e.all(t);let i=-1;for(typeof t.start=="number"&&t.start!==1&&(n.start=t.start);++i0){const o={type:"element",tagName:"tbody",properties:{},children:e.wrap(n,!0)},l=t9(t.children[1]),s=ZI(t.children[t.children.length-1]);l&&s&&(o.position={start:l,end:s}),i.push(o)}const a={type:"element",tagName:"table",properties:{},children:e.wrap(i,!0)};return e.patch(t,a),e.applyData(t,a)}function S2e(e,t,n){const r=n?n.children:void 0,a=(r?r.indexOf(t):1)===0?"th":"td",o=n&&n.type==="table"?n.align:void 0,l=o?o.length:t.children.length;let s=-1;const u=[];for(;++s0,!0),r[0]),i=r.index+r[0].length,r=n.exec(t);return a.push(Mk(t.slice(i),i>0,!1)),a.join("")}function Mk(e,t,n){let r=0,i=e.length;if(t){let a=e.codePointAt(r);for(;a===Xk||a===Lk;)r++,a=e.codePointAt(r)}if(n){let a=e.codePointAt(i-1);for(;a===Xk||a===Lk;)i--,a=e.codePointAt(i-1)}return i>r?e.slice(r,i):""}function k2e(e,t){const n={type:"text",value:G2e(String(t.value))};return e.patch(t,n),e.applyData(t,n)}function D2e(e,t){const n={type:"element",tagName:"hr",properties:{},children:[]};return e.patch(t,n),e.applyData(t,n)}const N2e={blockquote:c2e,break:d2e,code:p2e,delete:g2e,emphasis:h2e,footnoteReference:f2e,heading:m2e,html:A2e,imageReference:C2e,image:B2e,inlineCode:w2e,linkReference:b2e,link:v2e,listItem:K2e,list:W2e,paragraph:y2e,root:F2e,strong:E2e,table:R2e,tableCell:x2e,tableRow:S2e,text:k2e,thematicBreak:D2e,toml:zA,yaml:zA,definition:zA,footnoteDefinition:zA};function zA(){}const rU=-1,c3=0,vB=1,KB=2,s9=3,u9=4,c9=5,d9=6,iU=7,aU=8,Tk=typeof self=="object"?self:globalThis,Z2e=(e,t)=>{const n=(i,a)=>(e.set(a,i),i),r=i=>{if(e.has(i))return e.get(i);const[a,o]=t[i];switch(a){case c3:case rU:return n(o,i);case vB:{const l=n([],i);for(const s of o)l.push(r(s));return l}case KB:{const l=n({},i);for(const[s,u]of o)l[r(s)]=r(u);return l}case s9:return n(new Date(o),i);case u9:{const{source:l,flags:s}=o;return n(new RegExp(l,s),i)}case c9:{const l=n(new Map,i);for(const[s,u]of o)l.set(r(s),r(u));return l}case d9:{const l=n(new Set,i);for(const s of o)l.add(r(s));return l}case iU:{const{name:l,message:s}=o;return n(new Tk[l](s),i)}case aU:return n(BigInt(o),i);case"BigInt":return n(Object(BigInt(o)),i)}return n(new Tk[a](o),i)};return r},Vk=e=>Z2e(new Map,e)(0),Td="",{toString:H2e}={},{keys:X2e}=Object,Zg=e=>{const t=typeof e;if(t!=="object"||!e)return[c3,t];const n=H2e.call(e).slice(8,-1);switch(n){case"Array":return[vB,Td];case"Object":return[KB,Td];case"Date":return[s9,Td];case"RegExp":return[u9,Td];case"Map":return[c9,Td];case"Set":return[d9,Td]}return n.includes("Array")?[vB,n]:n.includes("Error")?[iU,n]:[KB,n]},PA=([e,t])=>e===c3&&(t==="function"||t==="symbol"),L2e=(e,t,n,r)=>{const i=(o,l)=>{const s=r.push(o)-1;return n.set(l,s),s},a=o=>{if(n.has(o))return n.get(o);let[l,s]=Zg(o);switch(l){case c3:{let c=o;switch(s){case"bigint":l=aU,c=o.toString();break;case"function":case"symbol":if(e)throw new TypeError("unable to serialize "+s);c=null;break;case"undefined":return i([rU],o)}return i([l,c],o)}case vB:{if(s)return i([s,[...o]],o);const c=[],d=i([l,c],o);for(const g of o)c.push(a(g));return d}case KB:{if(s)switch(s){case"BigInt":return i([s,o.toString()],o);case"Boolean":case"Number":case"String":return i([s,o.valueOf()],o)}if(t&&"toJSON"in o)return a(o.toJSON());const c=[],d=i([l,c],o);for(const g of X2e(o))(e||!PA(Zg(o[g])))&&c.push([a(g),a(o[g])]);return d}case s9:return i([l,o.toISOString()],o);case u9:{const{source:c,flags:d}=o;return i([l,{source:c,flags:d}],o)}case c9:{const c=[],d=i([l,c],o);for(const[g,h]of o)(e||!(PA(Zg(g))||PA(Zg(h))))&&c.push([a(g),a(h)]);return d}case d9:{const c=[],d=i([l,c],o);for(const g of o)(e||!PA(Zg(g)))&&c.push(a(g));return d}}const{message:u}=o;return i([l,{name:s,message:u}],o)};return a},Yk=(e,{json:t,lossy:n}={})=>{const r=[];return L2e(!(t||n),!!t,new Map,r)(e),r},QB=typeof structuredClone=="function"?(e,t)=>t&&("json"in t||"lossy"in t)?Vk(Yk(e,t)):structuredClone(e):(e,t)=>Vk(Yk(e,t));function M2e(e,t){const n=[{type:"text",value:"↩"}];return t>1&&n.push({type:"element",tagName:"sup",properties:{},children:[{type:"text",value:String(t)}]}),n}function T2e(e,t){return"Back to reference "+(e+1)+(t>1?"-"+t:"")}function V2e(e){const t=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",n=e.options.footnoteBackContent||M2e,r=e.options.footnoteBackLabel||T2e,i=e.options.footnoteLabel||"Footnotes",a=e.options.footnoteLabelTagName||"h2",o=e.options.footnoteLabelProperties||{className:["sr-only"]},l=[];let s=-1;for(;++s0&&m.push({type:"text",value:" "});let b=typeof n=="string"?n:n(s,h);typeof b=="string"&&(b={type:"text",value:b}),m.push({type:"element",tagName:"a",properties:{href:"#"+t+"fnref-"+g+(h>1?"-"+h:""),dataFootnoteBackref:"",ariaLabel:typeof r=="string"?r:r(s,h),className:["data-footnote-backref"]},children:Array.isArray(b)?b:[b]})}const B=c[c.length-1];if(B&&B.type==="element"&&B.tagName==="p"){const b=B.children[B.children.length-1];b&&b.type==="text"?b.value+=" ":B.children.push({type:"text",value:" "}),B.children.push(...m)}else c.push(...m);const C={type:"element",tagName:"li",properties:{id:t+"fn-"+g},children:e.wrap(c,!0)};e.patch(u,C),l.push(C)}if(l.length!==0)return{type:"element",tagName:"section",properties:{dataFootnotes:!0,className:["footnotes"]},children:[{type:"element",tagName:a,properties:{...QB(o),id:"footnote-label"},children:[{type:"text",value:i}]},{type:"text",value:` +`},{type:"element",tagName:"ol",properties:{},children:e.wrap(l,!0)},{type:"text",value:` +`}]}}const p9=function(e){if(e==null)return O2e;if(typeof e=="function")return d3(e);if(typeof e=="object")return Array.isArray(e)?Y2e(e):I2e(e);if(typeof e=="string")return U2e(e);throw new Error("Expected function, string, or object as test")};function Y2e(e){const t=[];let n=-1;for(;++n":""))+")"})}return g;function g(){let h=oU,m,A,B;if((!t||a(s,u,c[c.length-1]||void 0))&&(h=P2e(n(s,c)),h[0]===Ik))return h;if("children"in s&&s.children){const C=s;if(C.children&&h[0]!==lU)for(A=(r?C.children.length:-1)+o,B=c.concat(C);A>-1&&A0&&n.push({type:"text",value:` +`}),n}function Uk(e){let t=0,n=e.charCodeAt(t);for(;n===9||n===32;)t++,n=e.charCodeAt(t);return e.slice(t)}function Ok(e,t){const n=_2e(e,t),r=n.one(e,void 0),i=V2e(n),a=Array.isArray(r)?{type:"root",children:r}:r||{type:"root",children:[]};return i&&a.children.push({type:"text",value:` +`},i),a}function nCe(e,t){return e&&"run"in e?async function(n,r){const i=Ok(n,{file:r,...t});await e.run(i,r)}:function(n,r){return Ok(n,{file:r,...t||e})}}function Jk(e){if(e)throw e}var pC=Object.prototype.hasOwnProperty,uU=Object.prototype.toString,zk=Object.defineProperty,Pk=Object.getOwnPropertyDescriptor,jk=function(t){return typeof Array.isArray=="function"?Array.isArray(t):uU.call(t)==="[object Array]"},_k=function(t){if(!t||uU.call(t)!=="[object Object]")return!1;var n=pC.call(t,"constructor"),r=t.constructor&&t.constructor.prototype&&pC.call(t.constructor.prototype,"isPrototypeOf");if(t.constructor&&!n&&!r)return!1;var i;for(i in t);return typeof i>"u"||pC.call(t,i)},$k=function(t,n){zk&&n.name==="__proto__"?zk(t,n.name,{enumerable:!0,configurable:!0,value:n.newValue,writable:!0}):t[n.name]=n.newValue},qk=function(t,n){if(n==="__proto__")if(pC.call(t,n)){if(Pk)return Pk(t,n).value}else return;return t[n]},cU=function e(){var t,n,r,i,a,o,l=arguments[0],s=1,u=arguments.length,c=!1;for(typeof l=="boolean"&&(c=l,l=arguments[1]||{},s=2),(l==null||typeof l!="object"&&typeof l!="function")&&(l={});so.length;let s;l&&o.push(i);try{s=e.apply(this,o)}catch(u){const c=u;if(l&&n)throw c;return i(c)}l||(s&&s.then&&typeof s.then=="function"?s.then(a,i):s instanceof Error?i(s):a(s))}function i(o,...l){n||(n=!0,t(o,...l))}function a(o){i(null,o)}}const Xl={basename:aCe,dirname:oCe,extname:lCe,join:sCe,sep:"/"};function aCe(e,t){if(t!==void 0&&typeof t!="string")throw new TypeError('"ext" argument must be a string');rm(e);let n=0,r=-1,i=e.length,a;if(t===void 0||t.length===0||t.length>e.length){for(;i--;)if(e.codePointAt(i)===47){if(a){n=i+1;break}}else r<0&&(a=!0,r=i+1);return r<0?"":e.slice(n,r)}if(t===e)return"";let o=-1,l=t.length-1;for(;i--;)if(e.codePointAt(i)===47){if(a){n=i+1;break}}else o<0&&(a=!0,o=i+1),l>-1&&(e.codePointAt(i)===t.codePointAt(l--)?l<0&&(r=i):(l=-1,r=o));return n===r?r=o:r<0&&(r=e.length),e.slice(n,r)}function oCe(e){if(rm(e),e.length===0)return".";let t=-1,n=e.length,r;for(;--n;)if(e.codePointAt(n)===47){if(r){t=n;break}}else r||(r=!0);return t<0?e.codePointAt(0)===47?"/":".":t===1&&e.codePointAt(0)===47?"//":e.slice(0,t)}function lCe(e){rm(e);let t=e.length,n=-1,r=0,i=-1,a=0,o;for(;t--;){const l=e.codePointAt(t);if(l===47){if(o){r=t+1;break}continue}n<0&&(o=!0,n=t+1),l===46?i<0?i=t:a!==1&&(a=1):i>-1&&(a=-1)}return i<0||n<0||a===0||a===1&&i===n-1&&i===r+1?"":e.slice(i,n)}function sCe(...e){let t=-1,n;for(;++t0&&e.codePointAt(e.length-1)===47&&(n+="/"),t?"/"+n:n}function cCe(e,t){let n="",r=0,i=-1,a=0,o=-1,l,s;for(;++o<=e.length;){if(o2){if(s=n.lastIndexOf("/"),s!==n.length-1){s<0?(n="",r=0):(n=n.slice(0,s),r=n.length-1-n.lastIndexOf("/")),i=o,a=0;continue}}else if(n.length>0){n="",r=0,i=o,a=0;continue}}t&&(n=n.length>0?n+"/..":"..",r=2)}else n.length>0?n+="/"+e.slice(i+1,o):n=e.slice(i+1,o),r=o-i-1;i=o,a=0}else l===46&&a>-1?a++:a=-1}return n}function rm(e){if(typeof e!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}const dCe={cwd:pCe};function pCe(){return"/"}function $y(e){return!!(e!==null&&typeof e=="object"&&"href"in e&&e.href&&"protocol"in e&&e.protocol&&e.auth===void 0)}function gCe(e){if(typeof e=="string")e=new URL(e);else if(!$y(e)){const t=new TypeError('The "path" argument must be of type string or an instance of URL. Received `'+e+"`");throw t.code="ERR_INVALID_ARG_TYPE",t}if(e.protocol!=="file:"){const t=new TypeError("The URL must be of scheme file");throw t.code="ERR_INVALID_URL_SCHEME",t}return hCe(e)}function hCe(e){if(e.hostname!==""){const r=new TypeError('File URL host must be "localhost" or empty on darwin');throw r.code="ERR_INVALID_FILE_URL_HOST",r}const t=e.pathname;let n=-1;for(;++n0){let[h,...m]=c;const A=r[g][1];_y(A)&&_y(h)&&(h=Pv(!0,A,h)),r[g]=[u,h,...m]}}}}const CCe=new g9().freeze();function qv(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `parser`")}function eK(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `compiler`")}function tK(e,t){if(t)throw new Error("Cannot call `"+e+"` on a frozen processor.\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.")}function tD(e){if(!_y(e)||typeof e.type!="string")throw new TypeError("Expected node, got `"+e+"`")}function nD(e,t,n){if(!n)throw new Error("`"+e+"` finished async. Use `"+t+"` instead")}function jA(e){return BCe(e)?e:new dU(e)}function BCe(e){return!!(e&&typeof e=="object"&&"message"in e&&"messages"in e)}function wCe(e){return typeof e=="string"||bCe(e)}function bCe(e){return!!(e&&typeof e=="object"&&"byteLength"in e&&"byteOffset"in e)}const vCe="https://github.com/remarkjs/react-markdown/blob/main/changelog.md",rD=[],iD={allowDangerousHtml:!0},KCe=/^(https?|ircs?|mailto|xmpp)$/i,QCe=[{from:"astPlugins",id:"remove-buggy-html-in-markdown-parser"},{from:"allowDangerousHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"allowNode",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowElement"},{from:"allowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowedElements"},{from:"disallowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"disallowedElements"},{from:"escapeHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"includeElementIndex",id:"#remove-includeelementindex"},{from:"includeNodeIndex",id:"change-includenodeindex-to-includeelementindex"},{from:"linkTarget",id:"remove-linktarget"},{from:"plugins",id:"change-plugins-to-remarkplugins",to:"remarkPlugins"},{from:"rawSourcePos",id:"#remove-rawsourcepos"},{from:"renderers",id:"change-renderers-to-components",to:"components"},{from:"source",id:"change-source-to-children",to:"children"},{from:"sourcePos",id:"#remove-sourcepos"},{from:"transformImageUri",id:"#add-urltransform",to:"urlTransform"},{from:"transformLinkUri",id:"#add-urltransform",to:"urlTransform"}];function WCe(e){const t=e.allowedElements,n=e.allowElement,r=e.children||"",i=e.className,a=e.components,o=e.disallowedElements,l=e.rehypePlugins||rD,s=e.remarkPlugins||rD,u=e.remarkRehypeOptions?{...e.remarkRehypeOptions,...iD}:iD,c=e.skipHtml,d=e.unwrapDisallowed,g=e.urlTransform||yCe,h=CCe().use(u2e).use(s).use(nCe,u).use(l),m=new dU;typeof r=="string"&&(m.value=r);for(const b of QCe)Object.hasOwn(e,b.from)&&(""+b.from+(b.to?"use `"+b.to+"` instead":"remove it")+vCe+b.id,void 0);const A=h.parse(m);let B=h.runSync(A,m);return i&&(B={type:"element",tagName:"div",properties:{className:i},children:B.type==="root"?B.children:[B]}),p3(B,C),Tfe(B,{Fragment:W.Fragment,components:a,ignoreInvalidStyle:!0,jsx:W.jsx,jsxs:W.jsxs,passKeys:!0,passNode:!0});function C(b,Q,F){if(b.type==="raw"&&F&&typeof Q=="number")return c?F.children.splice(Q,1):F.children[Q]={type:"text",value:b.value},Q;if(b.type==="element"){let K;for(K in Ov)if(Object.hasOwn(Ov,K)&&Object.hasOwn(b.properties,K)){const y=b.properties[K],G=Ov[K];(G===null||G.includes(b.tagName))&&(b.properties[K]=g(String(y||""),K,b))}}if(b.type==="element"){let K=t?!t.includes(b.tagName):o?o.includes(b.tagName):!1;if(!K&&n&&typeof Q=="number"&&(K=!n(b,Q,F)),K&&F&&typeof Q=="number")return d&&b.children?F.children.splice(Q,1,...b.children):F.children.splice(Q,1),Q}}}function yCe(e){const t=e.indexOf(":"),n=e.indexOf("?"),r=e.indexOf("#"),i=e.indexOf("/");return t<0||i>-1&&t>i||n>-1&&t>n||r>-1&&t>r||KCe.test(e.slice(0,t))?e:""}const FCe=Ve.div` position: fixed; width: 100%; height: 100%; - background-color: ${$mI(_F)}aa; + background-color: ${B1e(a3)}aa; z-index: 1000; -`,HoI=LI.div` +`,ECe=Ve.div` position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 75%; -`,QoI=LI.div` - color: ${ec}; - background-color: ${fc}; - border-radius: ${Pl}; +`,RCe=Ve.div` + color: ${rn}; + background-color: ${Gn}; + border-radius: ${jt}; display: flex; flex-direction: column; - border: 1px solid ${wg}; + border: 1px solid ${kE}; margin: auto; word-wrap: break-word; - overflow: hidden; -`;LI.textarea` - border: 1px solid #ccc; - border-radius: ${Pl}; - padding: 8px; - outline: 1px solid black; - resize: none; - background-color: ${Mc}; - color: ${ec}; - - &:focus { - outline: 1px solid ${ec}; + // overflow: hidden; +`,SCe=e=>(E.useEffect(()=>{const t=n=>{n.key==="Escape"&&e.onClose()};return document.addEventListener("keydown",t),()=>{document.removeEventListener("keydown",t)}},[e]),!E.isValidElement(e.message)&&typeof e.message!="string"?null:W.jsx(FCe,{onClick:()=>{e.onClose()},hidden:!e.showDialog,children:W.jsx(ECe,{onClick:t=>{t.stopPropagation()},children:W.jsx(RCe,{children:typeof e.message=="string"?W.jsx(WCe,{children:e.message||""}):ct.isValidElement(e.message)?e.message:null})})})),Vr=ct.forwardRef((e,t)=>{const[n,r]=E.useState(!1),i=zl(),a=document.getElementById("tooltip-portal-div");return W.jsxs(W.Fragment,{children:[W.jsx(Q1e,{hoverBackgroundColor:e.hoverBackgroundColor,backgroundColor:e.backgroundColor,"data-tooltip-id":`header_button_${i}`,inverted:e.inverted,disabled:e.disabled,onMouseEnter:()=>{e.disabled||r(!0)},onMouseLeave:()=>{r(!1)},onClick:e.onClick,onKeyDown:e.onKeyDown,className:e.className,style:e.style,ref:t,tabIndex:e.tabIndex,children:e.children}),e.text&&a&&Al.createPortal(W.jsx(pc,{id:`header_button_${i}`,place:"bottom",children:e.text}),a)]})}),aD=6,xCe=n3` + 0%, 100% { + transform: scale(1); + opacity: 1; } -`;LI.p` - color: ${ec}; - margin: 8px auto; -`;const woI=I=>(E.useEffect(()=>{const l=c=>{c.key==="Escape"&&I.onClose()};return document.addEventListener("keydown",l),()=>{document.removeEventListener("keydown",l)}},[I]),!E.isValidElement(I.message)&&typeof I.message!="string"?null:v.jsx(XoI,{onClick:()=>{I.onClose()},hidden:!I.showDialog,children:v.jsx(HoI,{onClick:l=>{l.stopPropagation()},children:v.jsx(QoI,{children:typeof I.message=="string"?v.jsx(RoI,{children:I.message||""}):Gl.isValidElement(I.message)?I.message:null})})})),CY=6,hk=LI.div` - background-color: ${I=>I.color}; - box-shadow: 0px 0px 2px 1px ${I=>I.color}; - width: ${CY}px; - height: ${CY}px; - border-radius: ${CY/2}px; -`,EoI=LI.div` + 50% { + opacity: 0.25; + } +`,GCe=QE` + animation: ${xCe} 3s infinite; +`,Vd=Ve.div` + background-color: ${e=>e.color}; + box-shadow: 0px 0px 2px 1px ${e=>e.color}; + width: ${e=>e.diameter??aD}px; + height: ${e=>e.diameter??aD}px; + border-radius: 50%; + border: 1px solid rgba(255, 255, 255, 0.75); + margin: 0 2px; + ${e=>(e.shouldBlink??!1)&&GCe}; +`,Yd={DISABLED:rt,LOADING:"#00B8D9",INDEXING:"#6554C0",PAUSED:"#FFAB00",DONE:"#36B37E",FAILED:"#FF5630"},kCe=Ve.div` width: 100px; height: 6px; border-radius: 6px; - border: 0.5px solid ${ul}; - margin-top: 6px; -`,voI=LI.div` + border: 0.5px solid ${rt}; +`,DCe=Ve.div` height: 100%; - background-color: ${I=>I.color||ec}; + background-color: ${e=>e.color||rn}; border-radius: inherit; transition: width 0.2s ease-in-out; - width: ${I=>I.completed}%; -`,goI=LI.div` - display: grid; - grid-template-rows: 1fr auto; + width: ${e=>e.completed}%; +`,l0=Ve.div` + display: flex; align-items: center; - justify-items: center; - margin-left: 8px; -`,AoI=LI.p` - margin: 0; - margin-top: 2px; - font-size: 11.5px; - color: ${ul}; - text-align: center; + gap: 6px; + overflow: hidden; +`,Hg=Ve.div` + color: ${rt}; + font-size: ${nr()-2.4}px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; -`,yoI=({completed:I,total:l,currentlyIndexing:c})=>{const G=Math.min(100,Math.max(0,I/l*100)),e=document.getElementById("tooltip-portal-div"),[d,t]=E.useState(!0),[n,b]=E.useState(!1);return E.useEffect(()=>{Yc("index/setPaused",!d)},[d]),v.jsx("div",{onClick:()=>{I!a):Yc("index/forceReIndex",void 0)},className:"cursor-pointer",children:I>=l?v.jsxs(v.Fragment,{children:[v.jsx(hk,{"data-tooltip-id":"progress_dot",color:"#090"}),e&&fb.createPortal(v.jsx(NW,{id:"progress_dot",place:"top",children:"Index up to date. Click to force re-indexing"}),e)]}):d?v.jsxs(v.Fragment,{children:[v.jsxs(goI,{"data-tooltip-id":"usage_progress_bar",onMouseEnter:()=>b(!0),onMouseLeave:()=>b(!1),children:[v.jsx(EoI,{children:v.jsx(voI,{completed:G})}),v.jsx(AoI,{children:n?"Click to pause":`Indexing (${Math.trunc(I/l*100)}%)`})]}),e&&fb.createPortal(v.jsx(NW,{id:"usage_progress_bar",place:"top",children:c}),e)]}):v.jsxs(v.Fragment,{children:[v.jsx(hk,{"data-tooltip-id":"progress_dot",color:"#bb0"}),e&&fb.createPortal(v.jsxs(NW,{id:"progress_dot",place:"top",children:["Click to unpause indexing (",Math.trunc(I/l*100),"%)"]}),e)]})})},JoI=LI.div` - width: 100px; - height: 6px; - border-radius: 6px; - border: 0.5px solid ${ul}; - margin-top: 6px; -`,BoI=LI.div` - height: 100%; - background-color: ${I=>I.color||ec}; - border-radius: inherit; - transition: width 0.2s ease-in-out; - width: ${I=>I.completed}%; -`,koI=LI.div` - display: grid; - grid-template-rows: 1fr auto; - align-items: center; - justify-items: center; -`,xoI=LI.p` - margin: 0; - margin-top: 2px; - font-size: 11.5px; - color: ${ul}; - text-align: center; + + @media (max-width: 400px) { + display: none; + } +`,oD=Ve.div` + font-size: ${nr()-3.6}px; + color: ${rt}; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; -`,zoI=({completed:I,total:l})=>{const c=Math.min(100,Math.max(0,I/l*100));return v.jsxs(v.Fragment,{children:[v.jsx("a",{href:"https://continue.dev/docs/reference/Model%20Providers/freetrial",className:"no-underline ml-2",children:v.jsxs(koI,{"data-tooltip-id":"usage_progress_bar",children:[v.jsx(JoI,{children:v.jsx(BoI,{completed:c,color:I/l>.75?I/l>.95?"#f00":"#fc0":void 0})}),v.jsxs(xoI,{children:["Free Uses: ",I," / ",l]})]})}),v.jsx(NW,{id:"usage_progress_bar",place:"bottom",children:"Continue allows you to use our OpenAI API key for up to 250 inputs. After this, you can either use your own API key, or use a local LLM. Click the progress bar to go to the docs and learn more."})]})};var UoI=Object.defineProperty,CoI=(I,l,c)=>l in I?UoI(I,l,{enumerable:!0,configurable:!0,writable:!0,value:c}):I[l]=c,MY=(I,l,c)=>(CoI(I,typeof l!="symbol"?l+"":l,c),c);let MoI=class{constructor(){MY(this,"current",this.detect()),MY(this,"handoffState","pending"),MY(this,"currentId",0)}set(l){this.current!==l&&(this.handoffState="pending",this.currentId=0,this.current=l)}reset(){this.set(this.detect())}nextId(){return++this.currentId}get isServer(){return this.current==="server"}get isClient(){return this.current==="client"}detect(){return typeof window>"u"||typeof document>"u"?"server":"client"}handoff(){this.handoffState==="pending"&&(this.handoffState="complete")}get isHandoffComplete(){return this.handoffState==="complete"}},YW=new MoI,qd=(I,l)=>{YW.isServer?E.useEffect(I,l):E.useLayoutEffect(I,l)};function qn(I){let l=E.useRef(I);return qd(()=>{l.current=I},[I]),l}function Qj(I,l){let[c,G]=E.useState(I),e=qn(I);return qd(()=>G(e.current),[e,G,...l]),c}let wc=function(I){let l=qn(I);return Gl.useCallback((...c)=>l.current(...c),[l])};function foI(I,l,c){let[G,e]=E.useState(c),d=I!==void 0,t=E.useRef(d),n=E.useRef(!1),b=E.useRef(!1);return d&&!t.current&&!n.current?(n.current=!0,t.current=d,console.error("A component is changing from uncontrolled to controlled. This may be caused by the value changing from undefined to a defined value, which should not happen.")):!d&&t.current&&!b.current&&(b.current=!0,t.current=d,console.error("A component is changing from controlled to uncontrolled. This may be caused by the value changing from a defined value to undefined, which should not happen.")),[d?I:G,wc(a=>(d||e(a),l==null?void 0:l(a)))]}function KoI(I){typeof queueMicrotask=="function"?queueMicrotask(I):Promise.resolve().then(I).catch(l=>setTimeout(()=>{throw l}))}function uZ(){let I=[],l={addEventListener(c,G,e,d){return c.addEventListener(G,e,d),l.add(()=>c.removeEventListener(G,e,d))},requestAnimationFrame(...c){let G=requestAnimationFrame(...c);return l.add(()=>cancelAnimationFrame(G))},nextFrame(...c){return l.requestAnimationFrame(()=>l.requestAnimationFrame(...c))},setTimeout(...c){let G=setTimeout(...c);return l.add(()=>clearTimeout(G))},microTask(...c){let G={current:!0};return KoI(()=>{G.current&&c[0]()}),l.add(()=>{G.current=!1})},style(c,G,e){let d=c.style.getPropertyValue(G);return Object.assign(c.style,{[G]:e}),this.add(()=>{Object.assign(c.style,{[G]:d})})},group(c){let G=uZ();return c(G),this.add(()=>G.dispose())},add(c){return I.push(c),()=>{let G=I.indexOf(c);if(G>=0)for(let e of I.splice(G,1))e()}},dispose(){for(let c of I.splice(0))c()}};return l}function qm(){let[I]=E.useState(uZ);return E.useEffect(()=>()=>I.dispose(),[I]),I}function LoI(){let I=typeof document>"u";return"useSyncExternalStore"in _H?(l=>l.useSyncExternalStore)(_H)(()=>()=>{},()=>!1,()=>!I):!1}function qg(){let I=LoI(),[l,c]=E.useState(YW.isHandoffComplete);return l&&YW.isHandoffComplete===!1&&c(!1),E.useEffect(()=>{l!==!0&&c(!0)},[l]),E.useEffect(()=>YW.handoff(),[]),I?!1:l}var pk;let eN=(pk=Gl.useId)!=null?pk:function(){let I=qg(),[l,c]=Gl.useState(I?()=>YW.nextId():null);return qd(()=>{l===null&&c(YW.nextId())},[l]),l!=null?""+l:void 0};function ie(I,l,...c){if(I in l){let e=l[I];return typeof e=="function"?e(...c):e}let G=new Error(`Tried to handle "${I}" but there is no handler defined. Only defined handlers are: ${Object.keys(l).map(e=>`"${e}"`).join(", ")}.`);throw Error.captureStackTrace&&Error.captureStackTrace(G,ie),G}function wj(I){return YW.isServer?null:I instanceof Node?I.ownerDocument:I!=null&&I.hasOwnProperty("current")&&I.current instanceof Node?I.current.ownerDocument:document}let ok=["[contentEditable=true]","[tabindex]","a[href]","area[href]","button:not([disabled])","iframe","input:not([disabled])","select:not([disabled])","textarea:not([disabled])"].map(I=>`${I}:not([tabindex='-1'])`).join(",");var SoI=(I=>(I[I.First=1]="First",I[I.Previous=2]="Previous",I[I.Next=4]="Next",I[I.Last=8]="Last",I[I.WrapAround=16]="WrapAround",I[I.NoScroll=32]="NoScroll",I))(SoI||{}),ToI=(I=>(I[I.Error=0]="Error",I[I.Overflow=1]="Overflow",I[I.Success=2]="Success",I[I.Underflow=3]="Underflow",I))(ToI||{}),joI=(I=>(I[I.Previous=-1]="Previous",I[I.Next=1]="Next",I))(joI||{}),$g=(I=>(I[I.Strict=0]="Strict",I[I.Loose=1]="Loose",I))($g||{});function Ej(I,l=0){var c;return I===((c=wj(I))==null?void 0:c.body)?!1:ie(l,{0(){return I.matches(ok)},1(){let G=I;for(;G!==null;){if(G.matches(ok))return!0;G=G.parentElement}return!1}})}var DoI=(I=>(I[I.Keyboard=0]="Keyboard",I[I.Mouse=1]="Mouse",I))(DoI||{});typeof window<"u"&&typeof document<"u"&&(document.addEventListener("keydown",I=>{I.metaKey||I.altKey||I.ctrlKey||(document.documentElement.dataset.headlessuiFocusVisible="")},!0),document.addEventListener("click",I=>{I.detail===1?delete document.documentElement.dataset.headlessuiFocusVisible:I.detail===0&&(document.documentElement.dataset.headlessuiFocusVisible="")},!0));function OoI(I,l=c=>c){return I.slice().sort((c,G)=>{let e=l(c),d=l(G);if(e===null||d===null)return 0;let t=e.compareDocumentPosition(d);return t&Node.DOCUMENT_POSITION_FOLLOWING?-1:t&Node.DOCUMENT_POSITION_PRECEDING?1:0})}function PoI(){return/iPhone/gi.test(window.navigator.platform)||/Mac/gi.test(window.navigator.platform)&&window.navigator.maxTouchPoints>0}function _oI(){return/Android/gi.test(window.navigator.userAgent)}function qoI(){return PoI()||_oI()}function Ho(I,l,c){let G=qn(l);E.useEffect(()=>{function e(d){G.current(d)}return document.addEventListener(I,e,c),()=>document.removeEventListener(I,e,c)},[I,c])}function $oI(I,l,c){let G=qn(l);E.useEffect(()=>{function e(d){G.current(d)}return window.addEventListener(I,e,c),()=>window.removeEventListener(I,e,c)},[I,c])}function I2I(I,l,c=!0){let G=E.useRef(!1);E.useEffect(()=>{requestAnimationFrame(()=>{G.current=c})},[c]);function e(t,n){if(!G.current||t.defaultPrevented)return;let b=n(t);if(b===null||!b.getRootNode().contains(b)||!b.isConnected)return;let a=function Z(W){return typeof W=="function"?Z(W()):Array.isArray(W)||W instanceof Set?W:[W]}(I);for(let Z of a){if(Z===null)continue;let W=Z instanceof HTMLElement?Z:Z.current;if(W!=null&&W.contains(b)||t.composed&&t.composedPath().includes(W))return}return!Ej(b,$g.Loose)&&b.tabIndex!==-1&&t.preventDefault(),l(t,b)}let d=E.useRef(null);Ho("pointerdown",t=>{var n,b;G.current&&(d.current=((b=(n=t.composedPath)==null?void 0:n.call(t))==null?void 0:b[0])||t.target)},!0),Ho("mousedown",t=>{var n,b;G.current&&(d.current=((b=(n=t.composedPath)==null?void 0:n.call(t))==null?void 0:b[0])||t.target)},!0),Ho("click",t=>{qoI()||d.current&&(e(t,()=>d.current),d.current=null)},!0),Ho("touchend",t=>e(t,()=>t.target instanceof HTMLElement?t.target:null),!0),$oI("blur",t=>e(t,()=>window.document.activeElement instanceof HTMLIFrameElement?window.document.activeElement:null),!0)}function Vk(I){var l;if(I.type)return I.type;let c=(l=I.as)!=null?l:"button";if(typeof c=="string"&&c.toLowerCase()==="button")return"button"}function l2I(I,l){let[c,G]=E.useState(()=>Vk(I));return qd(()=>{G(Vk(I))},[I.type,I.as]),qd(()=>{c||l.current&&l.current instanceof HTMLButtonElement&&!l.current.hasAttribute("type")&&G("button")},[c,l]),c}let c2I=Symbol();function cr(...I){let l=E.useRef(I);E.useEffect(()=>{l.current=I},[I]);let c=wc(G=>{for(let e of l.current)e!=null&&(typeof e=="function"?e(G):e.current=G)});return I.every(G=>G==null||(G==null?void 0:G[c2I]))?void 0:c}function ik(I){return[I.screenX,I.screenY]}function G2I(){let I=E.useRef([-1,-1]);return{wasMoved(l){let c=ik(l);return I.current[0]===c[0]&&I.current[1]===c[1]?!1:(I.current=c,!0)},update(l){I.current=ik(l)}}}function PV(...I){return Array.from(new Set(I.flatMap(l=>typeof l=="string"?l.split(" "):[]))).filter(Boolean).join(" ")}var _V=(I=>(I[I.None=0]="None",I[I.RenderStrategy=1]="RenderStrategy",I[I.Static=2]="Static",I))(_V||{}),za=(I=>(I[I.Unmount=0]="Unmount",I[I.Hidden=1]="Hidden",I))(za||{});function XZ({ourProps:I,theirProps:l,slot:c,defaultTag:G,features:e,visible:d=!0,name:t,mergeRefs:n}){n=n??e2I;let b=vj(l,I);if(d)return Qo(b,c,G,t,n);let a=e??0;if(a&2){let{static:Z=!1,...W}=b;if(Z)return Qo(W,c,G,t,n)}if(a&1){let{unmount:Z=!0,...W}=b;return ie(Z?0:1,{0(){return null},1(){return Qo({...W,hidden:!0,style:{display:"none"}},c,G,t,n)}})}return Qo(b,c,G,t,n)}function Qo(I,l={},c,G,e){let{as:d=c,children:t,refName:n="ref",...b}=fY(I,["unmount","static"]),a=I.ref!==void 0?{[n]:I.ref}:{},Z=typeof t=="function"?t(l):t;"className"in b&&b.className&&typeof b.className=="function"&&(b.className=b.className(l));let W={};if(l){let m=!1,s=[];for(let[h,p]of Object.entries(l))typeof p=="boolean"&&(m=!0),p===!0&&s.push(h);m&&(W["data-headlessui-state"]=s.join(" "))}if(d===E.Fragment&&Object.keys(Rw(b)).length>0){if(!E.isValidElement(Z)||Array.isArray(Z)&&Z.length>1)throw new Error(['Passing props on "Fragment"!',"",`The current component <${G} /> is rendering a "Fragment".`,"However we need to passthrough the following props:",Object.keys(b).map(p=>` - ${p}`).join(` -`),"","You can apply a few solutions:",['Add an `as="..."` prop, to ensure that we render an actual element instead of a "Fragment".',"Render a single element as the child so that we can forward the props onto that element."].map(p=>` - ${p}`).join(` -`)].join(` -`));let m=Z.props,s=typeof(m==null?void 0:m.className)=="function"?(...p)=>PV(m==null?void 0:m.className(...p),b.className):PV(m==null?void 0:m.className,b.className),h=s?{className:s}:{};return E.cloneElement(Z,Object.assign({},vj(Z.props,Rw(fY(b,["ref"]))),W,a,{ref:e(Z.ref,a.ref)},h))}return E.createElement(d,Object.assign({},fY(b,["ref"]),d!==E.Fragment&&a,d!==E.Fragment&&W),Z)}function e2I(...I){return I.every(l=>l==null)?void 0:l=>{for(let c of I)c!=null&&(typeof c=="function"?c(l):c.current=l)}}function vj(...I){if(I.length===0)return{};if(I.length===1)return I[0];let l={},c={};for(let G of I)for(let e in G)e.startsWith("on")&&typeof G[e]=="function"?(c[e]!=null||(c[e]=[]),c[e].push(G[e])):l[e]=G[e];if(l.disabled||l["aria-disabled"])return Object.assign(l,Object.fromEntries(Object.keys(c).map(G=>[G,void 0])));for(let G in c)Object.assign(l,{[G](e,...d){let t=c[G];for(let n of t){if((e instanceof Event||(e==null?void 0:e.nativeEvent)instanceof Event)&&e.defaultPrevented)return;n(e,...d)}}});return l}function ta(I){var l;return Object.assign(E.forwardRef(I),{displayName:(l=I.displayName)!=null?l:I.name})}function Rw(I){let l=Object.assign({},I);for(let c in l)l[c]===void 0&&delete l[c];return l}function fY(I,l=[]){let c=Object.assign({},I);for(let G of l)G in c&&delete c[G];return c}let d2I="div";var gj=(I=>(I[I.None=1]="None",I[I.Focusable=2]="Focusable",I[I.Hidden=4]="Hidden",I))(gj||{});function t2I(I,l){var c;let{features:G=1,...e}=I,d={ref:l,"aria-hidden":(G&2)===2?!0:(c=e["aria-hidden"])!=null?c:void 0,style:{position:"fixed",top:1,left:1,width:1,height:0,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0",...(G&4)===4&&(G&2)!==2&&{display:"none"}}};return XZ({ourProps:d,theirProps:e,slot:{},defaultTag:d2I,name:"Hidden"})}let n2I=ta(t2I),IA=E.createContext(null);IA.displayName="OpenClosedContext";var fd=(I=>(I[I.Open=1]="Open",I[I.Closed=2]="Closed",I[I.Closing=4]="Closing",I[I.Opening=8]="Opening",I))(fd||{});function lA(){return E.useContext(IA)}function Aj({value:I,children:l}){return Gl.createElement(IA.Provider,{value:I},l)}function b2I(I){let l=I.parentElement,c=null;for(;l&&!(l instanceof HTMLFieldSetElement);)l instanceof HTMLLegendElement&&(c=l),l=l.parentElement;let G=(l==null?void 0:l.getAttribute("disabled"))==="";return G&&a2I(c)?!1:G}function a2I(I){if(!I)return!1;let l=I.previousElementSibling;for(;l!==null;){if(l instanceof HTMLLegendElement)return!1;l=l.previousElementSibling}return!0}function Z2I(I){throw new Error("Unexpected object: "+I)}var pd=(I=>(I[I.First=0]="First",I[I.Previous=1]="Previous",I[I.Next=2]="Next",I[I.Last=3]="Last",I[I.Specific=4]="Specific",I[I.Nothing=5]="Nothing",I))(pd||{});function W2I(I,l){let c=l.resolveItems();if(c.length<=0)return null;let G=l.resolveActiveIndex(),e=G??-1;switch(I.focus){case 0:{for(let d=0;d=0;--d)if(!l.resolveDisabled(c[d],d,c))return d;return G}case 2:{for(let d=e+1;d=0;--d)if(!l.resolveDisabled(c[d],d,c))return d;return G}case 4:{for(let d=0;d(I.Space=" ",I.Enter="Enter",I.Escape="Escape",I.Backspace="Backspace",I.Delete="Delete",I.ArrowLeft="ArrowLeft",I.ArrowUp="ArrowUp",I.ArrowRight="ArrowRight",I.ArrowDown="ArrowDown",I.Home="Home",I.End="End",I.PageUp="PageUp",I.PageDown="PageDown",I.Tab="Tab",I))(PG||{});function cA(){let I=E.useRef(!1);return qd(()=>(I.current=!0,()=>{I.current=!1}),[]),I}let Fk=/([\u2700-\u27BF]|[\uE000-\uF8FF]|\uD83C[\uDC00-\uDFFF]|\uD83D[\uDC00-\uDFFF]|[\u2011-\u26FF]|\uD83E[\uDD10-\uDDFF])/g;function Nk(I){var l,c;let G=(l=I.innerText)!=null?l:"",e=I.cloneNode(!0);if(!(e instanceof HTMLElement))return G;let d=!1;for(let n of e.querySelectorAll('[hidden],[aria-hidden],[role="img"]'))n.remove(),d=!0;let t=d?(c=e.innerText)!=null?c:"":G;return Fk.test(t)&&(t=t.replace(Fk,"")),t}function r2I(I){let l=I.getAttribute("aria-label");if(typeof l=="string")return l.trim();let c=I.getAttribute("aria-labelledby");if(c){let G=c.split(" ").map(e=>{let d=document.getElementById(e);if(d){let t=d.getAttribute("aria-label");return typeof t=="string"?t.trim():Nk(d).trim()}return null}).filter(Boolean);if(G.length>0)return G.join(", ")}return Nk(I).trim()}function m2I(I){let l=E.useRef(""),c=E.useRef("");return wc(()=>{let G=I.current;if(!G)return"";let e=G.innerText;if(l.current===e)return c.current;let d=r2I(G).trim().toLowerCase();return l.current=e,c.current=d,d})}var s2I=(I=>(I[I.Open=0]="Open",I[I.Closed=1]="Closed",I))(s2I||{}),u2I=(I=>(I[I.Single=0]="Single",I[I.Multi=1]="Multi",I))(u2I||{}),h2I=(I=>(I[I.Pointer=0]="Pointer",I[I.Other=1]="Other",I))(h2I||{}),p2I=(I=>(I[I.OpenListbox=0]="OpenListbox",I[I.CloseListbox=1]="CloseListbox",I[I.GoToOption=2]="GoToOption",I[I.Search=3]="Search",I[I.ClearSearch=4]="ClearSearch",I[I.RegisterOption=5]="RegisterOption",I[I.UnregisterOption=6]="UnregisterOption",I[I.RegisterLabel=7]="RegisterLabel",I))(p2I||{});function KY(I,l=c=>c){let c=I.activeOptionIndex!==null?I.options[I.activeOptionIndex]:null,G=OoI(l(I.options.slice()),d=>d.dataRef.current.domRef.current),e=c?G.indexOf(c):null;return e===-1&&(e=null),{options:G,activeOptionIndex:e}}let o2I={1(I){return I.dataRef.current.disabled||I.listboxState===1?I:{...I,activeOptionIndex:null,listboxState:1}},0(I){if(I.dataRef.current.disabled||I.listboxState===0)return I;let l=I.activeOptionIndex,{isSelected:c}=I.dataRef.current,G=I.options.findIndex(e=>c(e.dataRef.current.value));return G!==-1&&(l=G),{...I,listboxState:0,activeOptionIndex:l}},2(I,l){var c;if(I.dataRef.current.disabled||I.listboxState===1)return I;let G=KY(I),e=W2I(l,{resolveItems:()=>G.options,resolveActiveIndex:()=>G.activeOptionIndex,resolveId:d=>d.id,resolveDisabled:d=>d.dataRef.current.disabled});return{...I,...G,searchQuery:"",activeOptionIndex:e,activationTrigger:(c=l.trigger)!=null?c:1}},3:(I,l)=>{if(I.dataRef.current.disabled||I.listboxState===1)return I;let c=I.searchQuery!==""?0:1,G=I.searchQuery+l.value.toLowerCase(),e=(I.activeOptionIndex!==null?I.options.slice(I.activeOptionIndex+c).concat(I.options.slice(0,I.activeOptionIndex+c)):I.options).find(t=>{var n;return!t.dataRef.current.disabled&&((n=t.dataRef.current.textValue)==null?void 0:n.startsWith(G))}),d=e?I.options.indexOf(e):-1;return d===-1||d===I.activeOptionIndex?{...I,searchQuery:G}:{...I,searchQuery:G,activeOptionIndex:d,activationTrigger:1}},4(I){return I.dataRef.current.disabled||I.listboxState===1||I.searchQuery===""?I:{...I,searchQuery:""}},5:(I,l)=>{let c={id:l.id,dataRef:l.dataRef},G=KY(I,e=>[...e,c]);return I.activeOptionIndex===null&&I.dataRef.current.isSelected(l.dataRef.current.value)&&(G.activeOptionIndex=G.options.indexOf(c)),{...I,...G}},6:(I,l)=>{let c=KY(I,G=>{let e=G.findIndex(d=>d.id===l.id);return e!==-1&&G.splice(e,1),G});return{...I,...c,activationTrigger:1}},7:(I,l)=>({...I,labelId:l.id})},GA=E.createContext(null);GA.displayName="ListboxActionsContext";function kh(I){let l=E.useContext(GA);if(l===null){let c=new Error(`<${I} /> is missing a parent component.`);throw Error.captureStackTrace&&Error.captureStackTrace(c,kh),c}return l}let eA=E.createContext(null);eA.displayName="ListboxDataContext";function xh(I){let l=E.useContext(eA);if(l===null){let c=new Error(`<${I} /> is missing a parent component.`);throw Error.captureStackTrace&&Error.captureStackTrace(c,xh),c}return l}function V2I(I,l){return ie(l.type,o2I,I,l)}let i2I=E.Fragment;function F2I(I,l){let{value:c,defaultValue:G,form:e,name:d,onChange:t,by:n=(nI,VI)=>nI===VI,disabled:b=!1,horizontal:a=!1,multiple:Z=!1,...W}=I;const m=a?"horizontal":"vertical";let s=cr(l),[h=Z?[]:void 0,p]=foI(c,t,G),[V,o]=E.useReducer(V2I,{dataRef:E.createRef(),listboxState:1,options:[],searchQuery:"",labelId:null,activeOptionIndex:null,activationTrigger:1}),F=E.useRef({static:!1,hold:!1}),X=E.useRef(null),H=E.useRef(null),Y=E.useRef(null),R=wc(typeof n=="string"?(nI,VI)=>{let q=n;return(nI==null?void 0:nI[q])===(VI==null?void 0:VI[q])}:n),B=E.useCallback(nI=>ie(C.mode,{1:()=>h.some(VI=>R(VI,nI)),0:()=>R(h,nI)}),[h]),C=E.useMemo(()=>({...V,value:h,disabled:b,mode:Z?1:0,orientation:m,compare:R,isSelected:B,optionsPropsRef:F,labelRef:X,buttonRef:H,optionsRef:Y}),[h,b,Z,V]);qd(()=>{V.dataRef.current=C},[C]),I2I([C.buttonRef,C.optionsRef],(nI,VI)=>{var q;o({type:1}),Ej(VI,$g.Loose)||(nI.preventDefault(),(q=C.buttonRef.current)==null||q.focus())},C.listboxState===0);let k=E.useMemo(()=>({open:C.listboxState===0,disabled:b,value:h}),[C,b,h]),N=wc(nI=>{let VI=C.options.find(q=>q.id===nI);VI&&j(VI.dataRef.current.value)}),J=wc(()=>{if(C.activeOptionIndex!==null){let{dataRef:nI,id:VI}=C.options[C.activeOptionIndex];j(nI.current.value),o({type:2,focus:pd.Specific,id:VI})}}),A=wc(()=>o({type:0})),M=wc(()=>o({type:1})),D=wc((nI,VI,q)=>nI===pd.Specific?o({type:2,focus:pd.Specific,id:VI,trigger:q}):o({type:2,focus:nI,trigger:q})),O=wc((nI,VI)=>(o({type:5,id:nI,dataRef:VI}),()=>o({type:6,id:nI}))),$=wc(nI=>(o({type:7,id:nI}),()=>o({type:7,id:null}))),j=wc(nI=>ie(C.mode,{0(){return p==null?void 0:p(nI)},1(){let VI=C.value.slice(),q=VI.findIndex(fI=>R(fI,nI));return q===-1?VI.push(nI):VI.splice(q,1),p==null?void 0:p(VI)}})),S=wc(nI=>o({type:3,value:nI})),tI=wc(()=>o({type:4})),z=E.useMemo(()=>({onChange:j,registerOption:O,registerLabel:$,goToOption:D,closeListbox:M,openListbox:A,selectActiveOption:J,selectOption:N,search:S,clearSearch:tI}),[]),g={ref:s},GI=E.useRef(null),f=qm();return E.useEffect(()=>{GI.current&&G!==void 0&&f.addEventListener(GI.current,"reset",()=>{p==null||p(G)})},[GI,p]),Gl.createElement(GA.Provider,{value:z},Gl.createElement(eA.Provider,{value:C},Gl.createElement(Aj,{value:ie(C.listboxState,{0:fd.Open,1:fd.Closed})},d!=null&&h!=null&&yj({[d]:h}).map(([nI,VI],q)=>Gl.createElement(n2I,{features:gj.Hidden,ref:q===0?fI=>{var RI;GI.current=(RI=fI==null?void 0:fI.closest("form"))!=null?RI:null}:void 0,...Rw({key:nI,as:"input",type:"hidden",hidden:!0,readOnly:!0,form:e,name:nI,value:VI})})),XZ({ourProps:g,theirProps:W,slot:k,defaultTag:i2I,name:"Listbox"}))))}let N2I="button";function R2I(I,l){var c;let G=eN(),{id:e=`headlessui-listbox-button-${G}`,...d}=I,t=xh("Listbox.Button"),n=kh("Listbox.Button"),b=cr(t.buttonRef,l),a=qm(),Z=wc(V=>{switch(V.key){case PG.Space:case PG.Enter:case PG.ArrowDown:V.preventDefault(),n.openListbox(),a.nextFrame(()=>{t.value||n.goToOption(pd.First)});break;case PG.ArrowUp:V.preventDefault(),n.openListbox(),a.nextFrame(()=>{t.value||n.goToOption(pd.Last)});break}}),W=wc(V=>{switch(V.key){case PG.Space:V.preventDefault();break}}),m=wc(V=>{if(b2I(V.currentTarget))return V.preventDefault();t.listboxState===0?(n.closeListbox(),a.nextFrame(()=>{var o;return(o=t.buttonRef.current)==null?void 0:o.focus({preventScroll:!0})})):(V.preventDefault(),n.openListbox())}),s=Qj(()=>{if(t.labelId)return[t.labelId,e].join(" ")},[t.labelId,e]),h=E.useMemo(()=>({open:t.listboxState===0,disabled:t.disabled,value:t.value}),[t]),p={ref:b,id:e,type:l2I(I,t.buttonRef),"aria-haspopup":"listbox","aria-controls":(c=t.optionsRef.current)==null?void 0:c.id,"aria-expanded":t.listboxState===0,"aria-labelledby":s,disabled:t.disabled,onKeyDown:Z,onKeyUp:W,onClick:m};return XZ({ourProps:p,theirProps:d,slot:h,defaultTag:N2I,name:"Listbox.Button"})}let Y2I="label";function X2I(I,l){let c=eN(),{id:G=`headlessui-listbox-label-${c}`,...e}=I,d=xh("Listbox.Label"),t=kh("Listbox.Label"),n=cr(d.labelRef,l);qd(()=>t.registerLabel(G),[G]);let b=wc(()=>{var Z;return(Z=d.buttonRef.current)==null?void 0:Z.focus({preventScroll:!0})}),a=E.useMemo(()=>({open:d.listboxState===0,disabled:d.disabled}),[d]);return XZ({ourProps:{ref:n,id:G,onClick:b},theirProps:e,slot:a,defaultTag:Y2I,name:"Listbox.Label"})}let H2I="ul",Q2I=_V.RenderStrategy|_V.Static;function w2I(I,l){var c;let G=eN(),{id:e=`headlessui-listbox-options-${G}`,...d}=I,t=xh("Listbox.Options"),n=kh("Listbox.Options"),b=cr(t.optionsRef,l),a=qm(),Z=qm(),W=lA(),m=(()=>W!==null?(W&fd.Open)===fd.Open:t.listboxState===0)();E.useEffect(()=>{var o;let F=t.optionsRef.current;F&&t.listboxState===0&&F!==((o=wj(F))==null?void 0:o.activeElement)&&F.focus({preventScroll:!0})},[t.listboxState,t.optionsRef]);let s=wc(o=>{switch(Z.dispose(),o.key){case PG.Space:if(t.searchQuery!=="")return o.preventDefault(),o.stopPropagation(),n.search(o.key);case PG.Enter:if(o.preventDefault(),o.stopPropagation(),t.activeOptionIndex!==null){let{dataRef:F}=t.options[t.activeOptionIndex];n.onChange(F.current.value)}t.mode===0&&(n.closeListbox(),uZ().nextFrame(()=>{var F;return(F=t.buttonRef.current)==null?void 0:F.focus({preventScroll:!0})}));break;case ie(t.orientation,{vertical:PG.ArrowDown,horizontal:PG.ArrowRight}):return o.preventDefault(),o.stopPropagation(),n.goToOption(pd.Next);case ie(t.orientation,{vertical:PG.ArrowUp,horizontal:PG.ArrowLeft}):return o.preventDefault(),o.stopPropagation(),n.goToOption(pd.Previous);case PG.Home:case PG.PageUp:return o.preventDefault(),o.stopPropagation(),n.goToOption(pd.First);case PG.End:case PG.PageDown:return o.preventDefault(),o.stopPropagation(),n.goToOption(pd.Last);case PG.Escape:return o.preventDefault(),o.stopPropagation(),n.closeListbox(),a.nextFrame(()=>{var F;return(F=t.buttonRef.current)==null?void 0:F.focus({preventScroll:!0})});case PG.Tab:o.preventDefault(),o.stopPropagation();break;default:o.key.length===1&&(n.search(o.key),Z.setTimeout(()=>n.clearSearch(),350));break}}),h=Qj(()=>{var o;return(o=t.buttonRef.current)==null?void 0:o.id},[t.buttonRef.current]),p=E.useMemo(()=>({open:t.listboxState===0}),[t]),V={"aria-activedescendant":t.activeOptionIndex===null||(c=t.options[t.activeOptionIndex])==null?void 0:c.id,"aria-multiselectable":t.mode===1?!0:void 0,"aria-labelledby":h,"aria-orientation":t.orientation,id:e,onKeyDown:s,role:"listbox",tabIndex:0,ref:b};return XZ({ourProps:V,theirProps:d,slot:p,defaultTag:H2I,features:Q2I,visible:m,name:"Listbox.Options"})}let E2I="li";function v2I(I,l){let c=eN(),{id:G=`headlessui-listbox-option-${c}`,disabled:e=!1,value:d,...t}=I,n=xh("Listbox.Option"),b=kh("Listbox.Option"),a=n.activeOptionIndex!==null?n.options[n.activeOptionIndex].id===G:!1,Z=n.isSelected(d),W=E.useRef(null),m=m2I(W),s=qn({disabled:e,value:d,domRef:W,get textValue(){return m()}}),h=cr(l,W);qd(()=>{if(n.listboxState!==0||!a||n.activationTrigger===0)return;let R=uZ();return R.requestAnimationFrame(()=>{var B,C;(C=(B=W.current)==null?void 0:B.scrollIntoView)==null||C.call(B,{block:"nearest"})}),R.dispose},[W,a,n.listboxState,n.activationTrigger,n.activeOptionIndex]),qd(()=>b.registerOption(G,s),[s,G]);let p=wc(R=>{if(e)return R.preventDefault();b.onChange(d),n.mode===0&&(b.closeListbox(),uZ().nextFrame(()=>{var B;return(B=n.buttonRef.current)==null?void 0:B.focus({preventScroll:!0})}))}),V=wc(()=>{if(e)return b.goToOption(pd.Nothing);b.goToOption(pd.Specific,G)}),o=G2I(),F=wc(R=>o.update(R)),X=wc(R=>{o.wasMoved(R)&&(e||a||b.goToOption(pd.Specific,G,0))}),H=wc(R=>{o.wasMoved(R)&&(e||a&&b.goToOption(pd.Nothing))}),Y=E.useMemo(()=>({active:a,selected:Z,disabled:e}),[a,Z,e]);return XZ({ourProps:{id:G,ref:h,role:"option",tabIndex:e===!0?void 0:-1,"aria-disabled":e===!0?!0:void 0,"aria-selected":Z,disabled:void 0,onClick:p,onFocus:V,onPointerEnter:F,onMouseEnter:F,onPointerMove:X,onMouseMove:X,onPointerLeave:H,onMouseLeave:H},theirProps:t,slot:Y,defaultTag:E2I,name:"Listbox.Option"})}let g2I=ta(F2I),A2I=ta(R2I),y2I=ta(X2I),J2I=ta(w2I),B2I=ta(v2I),dN=Object.assign(g2I,{Button:A2I,Label:y2I,Options:J2I,Option:B2I});function k2I(I=0){let[l,c]=E.useState(I),G=cA(),e=E.useCallback(b=>{G.current&&c(a=>a|b)},[l,G]),d=E.useCallback(b=>!!(l&b),[l]),t=E.useCallback(b=>{G.current&&c(a=>a&~b)},[c,G]),n=E.useCallback(b=>{G.current&&c(a=>a^b)},[c]);return{flags:l,addFlag:e,hasFlag:d,removeFlag:t,toggleFlag:n}}function x2I(I){let l={called:!1};return(...c)=>{if(!l.called)return l.called=!0,I(...c)}}function LY(I,...l){I&&l.length>0&&I.classList.add(...l)}function SY(I,...l){I&&l.length>0&&I.classList.remove(...l)}function z2I(I,l){let c=uZ();if(!I)return c.dispose;let{transitionDuration:G,transitionDelay:e}=getComputedStyle(I),[d,t]=[G,e].map(b=>{let[a=0]=b.split(",").filter(Boolean).map(Z=>Z.includes("ms")?parseFloat(Z):parseFloat(Z)*1e3).sort((Z,W)=>W-Z);return a}),n=d+t;if(n!==0){c.group(a=>{a.setTimeout(()=>{l(),a.dispose()},n),a.addEventListener(I,"transitionrun",Z=>{Z.target===Z.currentTarget&&a.dispose()})});let b=c.addEventListener(I,"transitionend",a=>{a.target===a.currentTarget&&(l(),b())})}else l();return c.add(()=>l()),c.dispose}function U2I(I,l,c,G){let e=c?"enter":"leave",d=uZ(),t=G!==void 0?x2I(G):()=>{};e==="enter"&&(I.removeAttribute("hidden"),I.style.display="");let n=ie(e,{enter:()=>l.enter,leave:()=>l.leave}),b=ie(e,{enter:()=>l.enterTo,leave:()=>l.leaveTo}),a=ie(e,{enter:()=>l.enterFrom,leave:()=>l.leaveFrom});return SY(I,...l.base,...l.enter,...l.enterTo,...l.enterFrom,...l.leave,...l.leaveFrom,...l.leaveTo,...l.entered),LY(I,...l.base,...n,...a),d.nextFrame(()=>{SY(I,...l.base,...n,...a),LY(I,...l.base,...n,...b),z2I(I,()=>(SY(I,...l.base,...n),LY(I,...l.base,...l.entered),t()))}),d.dispose}function C2I({immediate:I,container:l,direction:c,classes:G,onStart:e,onStop:d}){let t=cA(),n=qm(),b=qn(c);qd(()=>{I&&(b.current="enter")},[I]),qd(()=>{let a=uZ();n.add(a.dispose);let Z=l.current;if(Z&&b.current!=="idle"&&t.current)return a.dispose(),e.current(b.current),a.add(U2I(Z,G.current,b.current==="enter",()=>{a.dispose(),d.current(b.current)})),a.dispose},[c])}function ia(I=""){return I.split(/\s+/).filter(l=>l.length>1)}let tN=E.createContext(null);tN.displayName="TransitionContext";var M2I=(I=>(I.Visible="visible",I.Hidden="hidden",I))(M2I||{});function f2I(){let I=E.useContext(tN);if(I===null)throw new Error("A is used but it is missing a parent or .");return I}function K2I(){let I=E.useContext(nN);if(I===null)throw new Error("A is used but it is missing a parent or .");return I}let nN=E.createContext(null);nN.displayName="NestingContext";function bN(I){return"children"in I?bN(I.children):I.current.filter(({el:l})=>l.current!==null).filter(({state:l})=>l==="visible").length>0}function kj(I,l){let c=qn(I),G=E.useRef([]),e=cA(),d=qm(),t=wc((s,h=za.Hidden)=>{let p=G.current.findIndex(({el:V})=>V===s);p!==-1&&(ie(h,{[za.Unmount](){G.current.splice(p,1)},[za.Hidden](){G.current[p].state="hidden"}}),d.microTask(()=>{var V;!bN(G)&&e.current&&((V=c.current)==null||V.call(c))}))}),n=wc(s=>{let h=G.current.find(({el:p})=>p===s);return h?h.state!=="visible"&&(h.state="visible"):G.current.push({el:s,state:"visible"}),()=>t(s,za.Unmount)}),b=E.useRef([]),a=E.useRef(Promise.resolve()),Z=E.useRef({enter:[],leave:[],idle:[]}),W=wc((s,h,p)=>{b.current.splice(0),l&&(l.chains.current[h]=l.chains.current[h].filter(([V])=>V!==s)),l==null||l.chains.current[h].push([s,new Promise(V=>{b.current.push(V)})]),l==null||l.chains.current[h].push([s,new Promise(V=>{Promise.all(Z.current[h].map(([o,F])=>F)).then(()=>V())})]),h==="enter"?a.current=a.current.then(()=>l==null?void 0:l.wait.current).then(()=>p(h)):p(h)}),m=wc((s,h,p)=>{Promise.all(Z.current[h].splice(0).map(([V,o])=>o)).then(()=>{var V;(V=b.current.shift())==null||V()}).then(()=>p(h))});return E.useMemo(()=>({children:G,register:n,unregister:t,onStart:W,onStop:m,wait:a,chains:Z}),[n,t,G,W,m,Z,a])}function L2I(){}let S2I=["beforeEnter","afterEnter","beforeLeave","afterLeave"];function Rk(I){var l;let c={};for(let G of S2I)c[G]=(l=I[G])!=null?l:L2I;return c}function T2I(I){let l=E.useRef(Rk(I));return E.useEffect(()=>{l.current=Rk(I)},[I]),l}let j2I="div",xj=_V.RenderStrategy;function D2I(I,l){var c,G;let{beforeEnter:e,afterEnter:d,beforeLeave:t,afterLeave:n,enter:b,enterFrom:a,enterTo:Z,entered:W,leave:m,leaveFrom:s,leaveTo:h,...p}=I,V=E.useRef(null),o=cr(V,l),F=(c=p.unmount)==null||c?za.Unmount:za.Hidden,{show:X,appear:H,initial:Y}=f2I(),[R,B]=E.useState(X?"visible":"hidden"),C=K2I(),{register:k,unregister:N}=C;E.useEffect(()=>k(V),[k,V]),E.useEffect(()=>{if(F===za.Hidden&&V.current){if(X&&R!=="visible"){B("visible");return}return ie(R,{hidden:()=>N(V),visible:()=>k(V)})}},[R,V,k,N,X,F]);let J=qn({base:ia(p.className),enter:ia(b),enterFrom:ia(a),enterTo:ia(Z),entered:ia(W),leave:ia(m),leaveFrom:ia(s),leaveTo:ia(h)}),A=T2I({beforeEnter:e,afterEnter:d,beforeLeave:t,afterLeave:n}),M=qg();E.useEffect(()=>{if(M&&R==="visible"&&V.current===null)throw new Error("Did you forget to passthrough the `ref` to the actual DOM node?")},[V,R,M]);let D=Y&&!H,O=H&&X&&Y,$=(()=>!M||D?"idle":X?"enter":"leave")(),j=k2I(0),S=wc(nI=>ie(nI,{enter:()=>{j.addFlag(fd.Opening),A.current.beforeEnter()},leave:()=>{j.addFlag(fd.Closing),A.current.beforeLeave()},idle:()=>{}})),tI=wc(nI=>ie(nI,{enter:()=>{j.removeFlag(fd.Opening),A.current.afterEnter()},leave:()=>{j.removeFlag(fd.Closing),A.current.afterLeave()},idle:()=>{}})),z=kj(()=>{B("hidden"),N(V)},C),g=E.useRef(!1);C2I({immediate:O,container:V,classes:J,direction:$,onStart:qn(nI=>{g.current=!0,z.onStart(V,nI,S)}),onStop:qn(nI=>{g.current=!1,z.onStop(V,nI,tI),nI==="leave"&&!bN(z)&&(B("hidden"),N(V))})});let GI=p,f={ref:o};return O?GI={...GI,className:PV(p.className,...J.current.enter,...J.current.enterFrom)}:g.current&&(GI.className=PV(p.className,(G=V.current)==null?void 0:G.className),GI.className===""&&delete GI.className),Gl.createElement(nN.Provider,{value:z},Gl.createElement(Aj,{value:ie(R,{visible:fd.Open,hidden:fd.Closed})|j.flags},XZ({ourProps:f,theirProps:GI,defaultTag:j2I,features:xj,visible:R==="visible",name:"Transition.Child"})))}function O2I(I,l){let{show:c,appear:G=!1,unmount:e=!0,...d}=I,t=E.useRef(null),n=cr(t,l);qg();let b=lA();if(c===void 0&&b!==null&&(c=(b&fd.Open)===fd.Open),![!0,!1].includes(c))throw new Error("A is used but it is missing a `show={true | false}` prop.");let[a,Z]=E.useState(c?"visible":"hidden"),W=kj(()=>{Z("hidden")}),[m,s]=E.useState(!0),h=E.useRef([c]);qd(()=>{m!==!1&&h.current[h.current.length-1]!==c&&(h.current.push(c),s(!1))},[h,c]);let p=E.useMemo(()=>({show:c,appear:G,initial:m}),[c,G,m]);E.useEffect(()=>{if(c)Z("visible");else if(!bN(W))Z("hidden");else{let X=t.current;if(!X)return;let H=X.getBoundingClientRect();H.x===0&&H.y===0&&H.width===0&&H.height===0&&Z("hidden")}},[c,W]);let V={unmount:e},o=wc(()=>{var X;m&&s(!1),(X=I.beforeEnter)==null||X.call(I)}),F=wc(()=>{var X;m&&s(!1),(X=I.beforeLeave)==null||X.call(I)});return Gl.createElement(nN.Provider,{value:W},Gl.createElement(tN.Provider,{value:p},XZ({ourProps:{...V,as:E.Fragment,children:Gl.createElement(zj,{ref:n,...V,...d,beforeEnter:o,beforeLeave:F})},theirProps:{},defaultTag:E.Fragment,features:xj,visible:a==="visible",name:"Transition"})))}function P2I(I,l){let c=E.useContext(tN)!==null,G=lA()!==null;return Gl.createElement(Gl.Fragment,null,!c&&G?Gl.createElement(Yw,{ref:l,...I}):Gl.createElement(zj,{ref:l,...I}))}let Yw=ta(O2I),zj=ta(D2I),_2I=ta(P2I),q2I=Object.assign(Yw,{Child:_2I,Root:Yw});var aN={};aN.byteLength=lVI;aN.toByteArray=GVI;aN.fromByteArray=tVI;var Cn=[],Vt=[],$2I=typeof Uint8Array<"u"?Uint8Array:Array,TY="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(var vr=0,IVI=TY.length;vr0)throw new Error("Invalid string. Length must be a multiple of 4");var c=I.indexOf("=");c===-1&&(c=l);var G=c===l?0:4-c%4;return[c,G]}function lVI(I){var l=Uj(I),c=l[0],G=l[1];return(c+G)*3/4-G}function cVI(I,l,c){return(l+c)*3/4-c}function GVI(I){var l,c=Uj(I),G=c[0],e=c[1],d=new $2I(cVI(I,G,e)),t=0,n=e>0?G-4:G,b;for(b=0;b>16&255,d[t++]=l>>8&255,d[t++]=l&255;return e===2&&(l=Vt[I.charCodeAt(b)]<<2|Vt[I.charCodeAt(b+1)]>>4,d[t++]=l&255),e===1&&(l=Vt[I.charCodeAt(b)]<<10|Vt[I.charCodeAt(b+1)]<<4|Vt[I.charCodeAt(b+2)]>>2,d[t++]=l>>8&255,d[t++]=l&255),d}function eVI(I){return Cn[I>>18&63]+Cn[I>>12&63]+Cn[I>>6&63]+Cn[I&63]}function dVI(I,l,c){for(var G,e=[],d=l;dn?n:t+d));return G===1?(l=I[c-1],e.push(Cn[l>>2]+Cn[l<<4&63]+"==")):G===2&&(l=(I[c-2]<<8)+I[c-1],e.push(Cn[l>>10]+Cn[l>>4&63]+Cn[l<<2&63]+"=")),e.join("")}var nVI=Object.defineProperty,bVI=(I,l,c)=>l in I?nVI(I,l,{enumerable:!0,configurable:!0,writable:!0,value:c}):I[l]=c,aVI=(I,l,c)=>(bVI(I,typeof l!="symbol"?l+"":l,c),c);function ZVI(I,l){let c=Array.from({length:I.length},(G,e)=>({start:e,end:e+1}));for(;c.length>1;){let G=null;for(let e=0;el.get(I.slice(c.start,c.end).join(","))).filter(c=>c!=null)}function rVI(I){return I.replace(/[\\^$*+?.()|[\]{}]/g,"\\$&")}var Xw=class{constructor(I,l){Zc(this,"specialTokens");Zc(this,"inverseSpecialTokens");Zc(this,"patStr");Zc(this,"textEncoder",new TextEncoder);Zc(this,"textDecoder",new TextDecoder("utf-8"));Zc(this,"rankMap",new Map);Zc(this,"textMap",new Map);this.patStr=I.pat_str;const c=I.bpe_ranks.split(` -`).filter(Boolean).reduce((G,e)=>{const[d,t,...n]=e.split(" "),b=Number.parseInt(t,10);return n.forEach((a,Z)=>G[a]=b+Z),G},{});for(const[G,e]of Object.entries(c)){const d=aN.toByteArray(G);this.rankMap.set(d.join(","),e),this.textMap.set(e,d)}this.specialTokens={...I.special_tokens,...l},this.inverseSpecialTokens=Object.entries(this.specialTokens).reduce((G,[e,d])=>(G[d]=this.textEncoder.encode(e),G),{})}encode(I,l=[],c="all"){const G=new RegExp(this.patStr,"ug"),e=Xw.specialTokenRegex(Object.keys(this.specialTokens)),d=[],t=new Set(l==="all"?Object.keys(this.specialTokens):l),n=new Set(c==="all"?Object.keys(this.specialTokens).filter(a=>!t.has(a)):c);if(n.size>0){const a=Xw.specialTokenRegex([...n]),Z=I.match(a);if(Z!=null)throw new Error(`The text contains a special token that is not allowed: ${Z[0]}`)}let b=0;for(;;){let a=null,Z=b;for(;e.lastIndex=Z,a=e.exec(I),!(a==null||t.has(a[0]));)Z=a.index+1;const W=(a==null?void 0:a.index)??I.length;for(const s of I.substring(b,W).matchAll(G)){const h=this.textEncoder.encode(s[0]),p=this.rankMap.get(h.join(","));if(p!=null){d.push(p);continue}d.push(...WVI(h,this.rankMap))}if(a==null)break;let m=this.specialTokens[a[0]];d.push(m),b=a.index+a[0].length}return d}decode(I){const l=[];let c=0;for(let d=0;dnew RegExp(I.map(l=>rVI(l)).join("|"),"g"));function mVI(I){switch(I){case"gpt2":return"gpt2";case"code-cushman-001":case"code-cushman-002":case"code-davinci-001":case"code-davinci-002":case"cushman-codex":case"davinci-codex":case"davinci-002":case"text-davinci-002":case"text-davinci-003":return"p50k_base";case"code-davinci-edit-001":case"text-davinci-edit-001":return"p50k_edit";case"ada":case"babbage":case"babbage-002":case"code-search-ada-code-001":case"code-search-babbage-code-001":case"curie":case"davinci":case"text-ada-001":case"text-babbage-001":case"text-curie-001":case"text-davinci-001":case"text-search-ada-doc-001":case"text-search-babbage-doc-001":case"text-search-curie-doc-001":case"text-search-davinci-doc-001":case"text-similarity-ada-001":case"text-similarity-babbage-001":case"text-similarity-curie-001":case"text-similarity-davinci-001":return"r50k_base";case"gpt-3.5-turbo-instruct-0914":case"gpt-3.5-turbo-instruct":case"gpt-3.5-turbo-16k-0613":case"gpt-3.5-turbo-16k":case"gpt-3.5-turbo-0613":case"gpt-3.5-turbo-0301":case"gpt-3.5-turbo":case"gpt-4-32k-0613":case"gpt-4-32k-0314":case"gpt-4-32k":case"gpt-4-0613":case"gpt-4-0314":case"gpt-4":case"gpt-3.5-turbo-1106":case"gpt-35-turbo":case"gpt-4-1106-preview":case"gpt-4-vision-preview":case"gpt-3.5-turbo-0125":case"gpt-4-turbo-preview":case"gpt-4-0125-preview":case"text-embedding-ada-002":return"cl100k_base";default:throw new Error("Unknown model")}}var sVI={explicit_n_vocab:50257,pat_str:"'s|'t|'re|'ve|'m|'ll|'d| ?\\p{L}+| ?\\p{N}+| ?[^\\s\\p{L}\\p{N}]+|\\s+(?!\\S)|\\s+",special_tokens:{"<|endoftext|>":50256},bpe_ranks:"! 0 IQ== Ig== Iw== JA== JQ== Jg== Jw== KA== KQ== Kg== Kw== LA== LQ== Lg== Lw== MA== MQ== Mg== Mw== NA== NQ== Ng== Nw== OA== OQ== Og== Ow== PA== PQ== Pg== Pw== QA== QQ== Qg== Qw== RA== RQ== Rg== Rw== SA== SQ== Sg== Sw== TA== TQ== Tg== Tw== UA== UQ== Ug== Uw== VA== VQ== Vg== Vw== WA== WQ== Wg== Ww== XA== XQ== Xg== Xw== YA== YQ== Yg== Yw== ZA== ZQ== Zg== Zw== aA== aQ== ag== aw== bA== bQ== bg== bw== cA== cQ== cg== cw== dA== dQ== dg== dw== eA== eQ== eg== ew== fA== fQ== fg== oQ== og== ow== pA== pQ== pg== pw== qA== qQ== qg== qw== rA== rg== rw== sA== sQ== sg== sw== tA== tQ== tg== tw== uA== uQ== ug== uw== vA== vQ== vg== vw== wA== wQ== wg== ww== xA== xQ== xg== xw== yA== yQ== yg== yw== zA== zQ== zg== zw== 0A== 0Q== 0g== 0w== 1A== 1Q== 1g== 1w== 2A== 2Q== 2g== 2w== 3A== 3Q== 3g== 3w== 4A== 4Q== 4g== 4w== 5A== 5Q== 5g== 5w== 6A== 6Q== 6g== 6w== 7A== 7Q== 7g== 7w== 8A== 8Q== 8g== 8w== 9A== 9Q== 9g== 9w== +A== +Q== +g== +w== /A== /Q== /g== /w== AA== AQ== Ag== Aw== BA== BQ== Bg== Bw== CA== CQ== Cg== Cw== DA== DQ== Dg== Dw== EA== EQ== Eg== Ew== FA== FQ== Fg== Fw== GA== GQ== Gg== Gw== HA== HQ== Hg== Hw== IA== fw== gA== gQ== gg== gw== hA== hQ== hg== hw== iA== iQ== ig== iw== jA== jQ== jg== jw== kA== kQ== kg== kw== lA== lQ== lg== lw== mA== mQ== mg== mw== nA== nQ== ng== nw== oA== rQ== IHQ= IGE= aGU= aW4= cmU= b24= IHRoZQ== ZXI= IHM= YXQ= IHc= IG8= ZW4= IGM= aXQ= aXM= YW4= b3I= ZXM= IGI= ZWQ= IGY= aW5n IHA= b3U= IGFu YWw= YXI= IHRv IG0= IG9m IGlu IGQ= IGg= IGFuZA== aWM= YXM= bGU= IHRo aW9u b20= bGw= ZW50 IG4= IGw= c3Q= IHJl dmU= IGU= cm8= bHk= IGJl IGc= IFQ= Y3Q= IFM= aWQ= b3Q= IEk= dXQ= ZXQ= IEE= IGlz IG9u aW0= YW0= b3c= YXk= YWQ= c2U= IHRoYXQ= IEM= aWc= IGZvcg== YWM= IHk= dmVy dXI= IHU= bGQ= IHN0 IE0= J3M= IGhl IGl0 YXRpb24= aXRo aXI= Y2U= IHlvdQ== aWw= IEI= IHdo b2w= IFA= IHdpdGg= IDE= dGVy Y2g= IGFz IHdl ICg= bmQ= aWxs IEQ= aWY= IDI= YWc= ZXJz a2U= ICI= IEg= ZW0= IGNvbg== IFc= IFI= aGVy IHdhcw== IHI= b2Q= IEY= dWw= YXRl IGF0 cmk= cHA= b3Jl IFRoZQ== IHNl dXM= IHBybw== IGhh dW0= IGFyZQ== IGRl YWlu YW5k IG9y aWdo ZXN0 aXN0 YWI= cm9t IE4= dGg= IGNvbQ== IEc= dW4= b3A= MDA= IEw= IG5vdA== ZXNz IGV4 IHY= cmVz IEU= ZXc= aXR5 YW50 IGJ5 ZWw= b3M= b3J0 b2M= cXU= IGZyb20= IGhhdmU= IHN1 aXZl b3VsZA== IHNo IHRoaXM= bnQ= cmE= cGU= aWdodA== YXJ0 bWVudA== IGFs dXN0 ZW5k LS0= YWxs IE8= YWNr IGNo IGxl aWVz cmVk YXJk 4oA= b3V0 IEo= IGFi ZWFy aXY= YWxseQ== b3Vy b3N0 Z2g= cHQ= IHBs YXN0 IGNhbg== YWs= b21l dWQ= VGhl IGhpcw== IGRv IGdv IGhhcw== Z2U= J3Q= IFU= cm91 IHNh IGo= IGJ1dA== IHdvcg== IGFsbA== ZWN0 IGs= YW1l IHdpbGw= b2s= IHdoZQ== IHRoZXk= aWRl MDE= ZmY= aWNo cGw= dGhlcg== IHRy Li4= IGludA== aWU= dXJl YWdl IG5l aWFs YXA= aW5l aWNl IG1l IG91dA== YW5z b25l b25n aW9ucw== IHdobw== IEs= IHVw IHRoZWly IGFk IDM= IHVz YXRlZA== b3Vz IG1vcmU= dWU= b2c= IFN0 aW5k aWtl IHNv aW1l cGVy LiI= YmVy aXo= YWN0 IG9uZQ== IHNhaWQ= IC0= YXJl IHlvdXI= Y2M= IFRo IGNs ZXA= YWtl YWJsZQ== aXA= IGNvbnQ= IHdoaWNo aWE= IGlt IGFib3V0 IHdlcmU= dmVyeQ== dWI= IGhhZA== IGVu IGNvbXA= LCI= IElu IHVu IGFn aXJl YWNl YXU= YXJ5 IHdvdWxk YXNz cnk= IOKA Y2w= b29r ZXJl c28= IFY= aWdu aWI= IG9mZg== IHRl dmVu IFk= aWxl b3Nl aXRl b3Jt IDIwMQ== IHJlcw== IG1hbg== IHBlcg== IG90aGVy b3Jk dWx0 IGJlZW4= IGxpa2U= YXNl YW5jZQ== a3M= YXlz b3du ZW5jZQ== IGRpcw== Y3Rpb24= IGFueQ== IGFwcA== IHNw aW50 cmVzcw== YXRpb25z YWls IDQ= aWNhbA== IHRoZW0= IGhlcg== b3VudA== IENo IGFy IGlm IHRoZXJl IHBl IHllYXI= YXY= IG15 IHNvbWU= IHdoZW4= b3VnaA== YWNo IHRoYW4= cnU= b25k aWNr IG92ZXI= dmVs IHF1 Cgo= IHNj cmVhdA== cmVl IEl0 b3VuZA== cG9ydA== IGFsc28= IHBhcnQ= ZnRlcg== IGtu IGJlYw== IHRpbWU= ZW5z IDU= b3BsZQ== IHdoYXQ= IG5v ZHU= bWVy YW5n IG5ldw== LS0tLQ== IGdldA== b3J5 aXRpb24= aW5ncw== IGp1c3Q= IGludG8= IDA= ZW50cw== b3Zl dGU= IHBlb3BsZQ== IHByZQ== IGl0cw== IHJlYw== IHR3 aWFu aXJzdA== YXJr b3Jz IHdvcms= YWRl b2I= IHNoZQ== IG91cg== d24= aW5r bGlj IDE5 IEhl aXNo bmRlcg== YXVzZQ== IGhpbQ== b25z IFs= IHJv Zm9ybQ== aWxk YXRlcw== dmVycw== IG9ubHk= b2xs IHNwZQ== Y2s= ZWxs YW1w IGFjYw== IGJs aW91cw== dXJu ZnQ= b29k IGhvdw== aGVk ICc= IGFmdGVy YXc= IGF0dA== b3Y= bmU= IHBsYXk= ZXJ2 aWN0 IGNvdWxk aXR0 IGFt IGZpcnN0 IDY= IGFjdA== ICQ= ZWM= aGluZw== dWFs dWxs IGNvbW0= b3k= b2xk Y2Vz YXRlcg== IGZl IGJldA== d2U= aWZm IHR3bw== b2Nr IGJhY2s= KS4= aWRlbnQ= IHVuZGVy cm91Z2g= c2Vs eHQ= IG1heQ== cm91bmQ= IHBv cGg= aXNz IGRlcw== IG1vc3Q= IGRpZA== IGFkZA== amVjdA== IGluYw== Zm9yZQ== IHBvbA== b250 IGFnYWlu Y2x1ZA== dGVybg== IGtub3c= IG5lZWQ= IGNvbnM= IGNv IC4= IHdhbnQ= IHNlZQ== IDc= bmluZw== aWV3 IFRoaXM= Y2Vk IGV2ZW4= IGluZA== dHk= IFdl YXRo IHRoZXNl IHBy IHVzZQ== IGJlY2F1c2U= IGZs bmc= IG5vdw== IOKAkw== Y29t aXNl IG1ha2U= IHRoZW4= b3dlcg== IGV2ZXJ5 IFVu IHNlYw== b3Nz dWNo IGVt ID0= IFJl aWVk cml0 IGludg== bGVjdA== IHN1cHA= YXRpbmc= IGxvb2s= bWFu cGVjdA== IDg= cm93 IGJ1 IHdoZXJl aWZpYw== IHllYXJz aWx5 IGRpZmY= IHNob3VsZA== IHJlbQ== VGg= SW4= IGV2 ZGF5 J3Jl cmli IHJlbA== c3M= IGRlZg== IHJpZ2h0 IHN5 KSw= bGVz MDAw aGVu IHRocm91Z2g= IFRy X18= IHdheQ== IGRvbg== ICw= IDEw YXNlZA== IGFzcw== dWJsaWM= IHJlZw== IEFuZA== aXg= IHZlcnk= IGluY2x1ZA== b3RoZXI= IGltcA== b3Ro IHN1Yg== IOKAlA== IGJlaW5n YXJn IFdo PT0= aWJsZQ== IGRvZXM= YW5nZQ== cmFt IDk= ZXJ0 cHM= aXRlZA== YXRpb25hbA== IGJy IGRvd24= IG1hbnk= YWtpbmc= IGNhbGw= dXJpbmc= aXRpZXM= IHBo aWNz YWxz IGRlYw== YXRpdmU= ZW5lcg== IGJlZm9yZQ== aWxpdHk= IHdlbGw= IG11Y2g= ZXJzb24= IHRob3Nl IHN1Y2g= IGtl IGVuZA== IEJ1dA== YXNvbg== dGluZw== IGxvbmc= ZWY= IHRoaW5r eXM= IGJlbA== IHNt aXRz YXg= IG93bg== IHByb3Y= IHNldA== aWZl bWVudHM= Ymxl d2FyZA== IHNob3c= IHByZXM= bXM= b21ldA== IG9i IHNheQ== IFNo dHM= ZnVs IGVmZg== IGd1 IGluc3Q= dW5k cmVu Y2Vzcw== IGVudA== IFlvdQ== IGdvb2Q= IHN0YXJ0 aW5jZQ== IG1hZGU= dHQ= c3RlbQ== b2xvZw== dXA= IHw= dW1w IGhlbA== dmVybg== dWxhcg== dWFsbHk= IGFj IG1vbg== IGxhc3Q= IDIwMA== MTA= IHN0dWQ= dXJlcw== IEFy c2VsZg== YXJz bWVyaWM= dWVz Y3k= IG1pbg== b2xsb3c= IGNvbA== aW8= IG1vZA== IGNvdW50 IENvbQ== aGVz IGZpbg== YWly aWVy 4oCU cmVhZA== YW5r YXRjaA== ZXZlcg== IHN0cg== IHBvaW50 b3Jr IE5ldw== IHN1cg== b29s YWxr ZW1lbnQ= IHVzZWQ= cmFjdA== d2Vlbg== IHNhbWU= b3Vu IEFs Y2k= IGRpZmZlcmU= IHdoaWxl LS0tLS0tLS0= IGdhbWU= Y2VwdA== IHNpbQ== Li4u IGludGVy ZWs= IHJlcG9ydA== IHByb2R1 IHN0aWxs bGVk YWg= IGhlcmU= IHdvcmxk IHRob3VnaA== IG51bQ== YXJjaA== aW1lcw== YWxl IFNl IElm Ly8= IExl IHJldA== IHJlZg== IHRyYW5z bmVy dXRpb24= dGVycw== IHRha2U= IENs IGNvbmY= d2F5 YXZl IGdvaW5n IHNs dWc= IEFtZXJpYw== IHNwZWM= IGhhbmQ= IGJldHdlZW4= aXN0cw== IERl b290 SXQ= IGVhcg== IGFnYWluc3Q= IGhpZ2g= Z2Fu YXo= YXRoZXI= IGV4cA== IG9w IGlucw== IGdy IGhlbHA= IHJlcXU= ZXRz aW5z IFBybw== aXNt IGZvdW5k bGFuZA== YXRh dXNz YW1lcw== IHBlcnNvbg== IGdyZWF0 cHI= IHNpZ24= IEFu J3Zl IHNvbWV0 IHNlcg== aGlw IHJ1bg== IDo= IHRlcg== aXJlY3Q= IGZvbGxvdw== IGRldA== aWNlcw== IGZpbmQ= MTI= IG1lbQ== IGNy ZXJlZA== ZXg= IGV4dA== dXRo ZW5zZQ== Y28= IHRlYW0= dmluZw== b3VzZQ== YXNo YXR0 dmVk IHN5c3RlbQ== IEFz ZGVy aXZlcw== bWlu IGxlYWQ= IEJs Y2VudA== IGFyb3VuZA== IGdvdmVybg== IGN1cg== dmVsb3A= YW55 IGNvdXI= YWx0aA== YWdlcw== aXpl IGNhcg== b2Rl IGxhdw== IHJlYWQ= J20= Y29u IHJlYWw= IHN1cHBvcnQ= IDEy Li4uLg== IHJlYWxseQ== bmVzcw== IGZhY3Q= IGRheQ== IGJvdGg= eWluZw== IHNlcnY= IEZvcg== IHRocmVl IHdvbQ== IG1lZA== b2R5 IFRoZXk= NTA= IGV4cGVy dG9u IGVhY2g= YWtlcw== IGNoZQ== IGNyZQ== aW5lcw== IHJlcA== MTk= Z2c= aWxsaW9u IGdyb3U= dXRl aWs= V2U= Z2V0 RVI= IG1ldA== IHNheXM= b3g= IGR1cmluZw== ZXJu aXplZA== YXJlZA== IGZhbQ== aWNhbGx5 IGhhcHA= IElz IGNoYXI= bWVk dmVudA== IGdlbmVy aWVudA== cGxl aWV0 cmVudA== MTE= dmVz cHRpb24= IDIw Zm9ybWF0aW9u IGNvcg== IG9mZmlj aWVsZA== IHRvbw== aXNpb24= IGluZg== IFo= dGhl b2Fk IHB1YmxpYw== IHByb2c= cmlj Kio= IHdhcg== IHBvd2Vy dmlldw== IGZldw== IGxvYw== IGRpZmZlcmVudA== IHN0YXRl IGhlYWQ= J2xs IHBvc3M= IHN0YXQ= cmV0 YW50cw== IHZhbA== IGlzcw== IGNsZQ== aXZlcnM= YW5j IGV4cGw= IGFub3RoZXI= IFE= IGF2 dGhpbmc= bmNl V2g= IGNoaWxk IHNpbmNl aXJlZA== bGVzcw== IGxpZmU= IGRldmVsb3A= aXR0bGU= IGRlcA== IHBhc3M= 44M= IHR1cm4= b3Ju VGhpcw== YmVycw== cm9zcw== IEFk IGZy IHJlc3A= IHNlY29uZA== b2g= IC8= IGRpc2M= ICY= IHNvbWV0aGluZw== IGNvbXBsZQ== IGVk IGZpbA== IG1vbnRo YWo= dWM= IGdvdmVybm1lbnQ= IHdpdGhvdXQ= IGxlZw== IGRpc3Q= IHB1dA== IHF1ZXN0 YW5u IHByb3Q= MjA= IG5ldmVy aWVuY2U= IGxldmVs IGFydA== IHRoaW5ncw== IG1pZ2h0 IGVmZmVjdA== IGNvbnRybw== IGNlbnQ= IDE4 IGFsbG93 IGJlbGll Y2hvb2w= b3R0 IGluY3Jl IGZlZWw= IHJlc3VsdA== IGxvdA== IGZ1bg== b3Rl IHR5 ZXJlc3Q= IGNvbnRpbg== IHVzaW5n IGJpZw== MjAx IGFzaw== IGJlc3Q= ICk= SU4= IG9wcA== MzA= IG51bWJlcg== aW5lc3M= U3Q= bGVhc2U= IGNh IG11c3Q= IGRpcmVjdA== IGds IDw= IG9wZW4= IHBvc3Q= IGNvbWU= IHNlZW0= b3JkaW5n IHdlZWs= YXRlbHk= aXRhbA== IGVs cmllbmQ= IGZhcg== IHRyYQ== aW5hbA== IHByaQ== IFVT IHBsYWNl IGZvcm0= IHRvbGQ= Ijo= YWlucw== YXR1cmU= IFRydW1w IHN0YW5k ICM= aWRlcg== IEZy IG5leHQ= IHNvYw== IHB1cg== IGxldA== IGxpdHRsZQ== IGh1bQ== IGk= cm9u MTU= IDE1 IGNvbW11bg== IG1hcms= IFRoZXJl IHdy IFRoYXQ= IGluZm9ybWF0aW9u d2F5cw== IGJ1cw== YXBw IGludmVzdA== bWU= IGhhcmQ= YWluZWQ= ZWFk IGltcG9ydA== IGFwcHJv IHRlc3Q= IHRyaQ== IHJlc3Q= b3NlZA== IGZ1bGw= IGNhcmU= IFNw IGNhc2U= T04= IHNr IGxlc3M= ICs= IHBhcnRpYw== IFBs YWJseQ== dWNr aXNoZWQ= Y2hu YmU= IGxpc3Q= YXRvcg== IHRvcA== IGFkdg== IEJl cnVjdA== IGRlbQ== cmF0aW9u bGluZw== Z3k= cmVlbg== Z2Vy IGhvbWU= IGxlZnQ= IGJldHRlcg== IGRhdGE= IDEx IGF0dGFjaw== IHByb2JsZQ== bGluZQ== YXJkcw== IGJlaA== cmFs IEhvdw== IFNoZQ== YXJnZQ== IC0t Oi8v IGJybw== IFBo YXRz IGJ1aWxk d3c= aWRlZA== YWlt YXNlcw== ZW5jeQ== IG1haW4= aW5lZA== IGluY2x1ZGluZw== IHs= IGdvdA== IGludGVyZXN0 IGtlZXA= IFg= IGVhcw== YWluaW5n IGNsYXNz 4oCm IE5v IHZhcg== IHNtYWxs YW1wbGU= QVQ= IGlkZQ== IFNv IHJlY2U= IHBvbGl0 IG1vdg== IHBsYW4= IHBlcmNlbnQ= aXZpbmc= IGNhbXA= IHBheQ== MTQ= c2M= aXNlZA== IHVudA== b25leQ== cGxveQ== PT09PQ== IGRpZG4= IEluZA== ZWxz ZXJ0YWlu IHBvcw== X19fXw== aXZlcg== IHByb2Nlc3M= IHByb2dyYW0= aWZpZWQ= IFJlcA== MTY= dXJv b2xvZ3k= YXR0ZXI= aW5h IG5hbWU= IEFsbA== IGZvdXI= IHJldHVybg== dmlvdXM= YnM= IGNhbGxlZA== IG1vdmU= IFNj aXJk IGdyb3Vw IGJyZQ== IG1lbg== IGNhcA== dGVu ZWU= IGRyaQ== bGVn aGVyZQ== dXRob3I= IHBhdA== IGN1cnJlbnQ= aWRlcw== IHBvcA== dG8= ZW50aW9u IGFsd2F5cw== IG1pbA== IHdvbWVu IDE2 IG9sZA== aXZlbg== cmFwaA== IE9y cm9y ZW50bHk= IG5lYXI= IEV4 cmVhbQ== c2g= IDE0 IGZyZWU= aXNzaW9u c3RhbmQ= IENvbg== YWxpdHk= dXNlZA== MTM= IGRlc2lnbg== IGNoYW5nZQ== IGNoYW5n IGJv IHZpcw== ZW1iZXI= IGJvb2s= cmVhZHk= IGtpbGw= MjU= cHBlZA== IGF3YXk= IGFibGU= IGNvdW50cnk= IGNvbnN0 YXJu IG9yZGVy QVI= aW9y aXVt b3J0aA== MTg= YWlsYWJsZQ== IHN3 IG1pbGxpb24= IDEz YXRpYw== dGVk IEdv IG9wZXI= ZW5n IHRoaW5n YWpvcg== Y29ub20= IENvbW0= IHdoeQ== dXJlZA== dXJhbA== IHNjaG9vbA== Ynk= IE1hcg== IGFmZg== IGRheXM= IGFubg== dXNo YW5l SWY= ZWc= IHByb2Y= IGhlYWx0aA== b3V0aA== QnV0 aW9uYWw= Liw= IHNvbA== IGFscmVhZHk= IDMw IGNoYXJhY3Q= SGU= IGZyaWVuZA== RVM= aWFucw== aWNsZQ== J2Q= IE9u IGxlYXN0 IHByb20= IGRy IGhpc3Q= aXRoZXI= IGVzdA== aXF1 MTc= c29u IHRlbGw= IHRhbGs= b2hu b2ludA== bGVjdGlvbg== QU4= IHVudGls YXVnaA== IGxhdGVy IHZl IHZpZXc= ZW5kaW5n aXZlZA== IHdvcmQ= d2FyZQ== IGNvc3Q= IGVub3VnaA== IGdpdmU= IFVuaXRlZA== IHRlY2hu YXJlbnQ= T1I= IHBhcg== IERy IDIwMTY= cmlzdA== ZXJpbmc= IMI= IGxhcmdl c2lkZQ== YWN5 Y2Nlc3M= IHdpbg== IGltcG9ydGFudA== IDE5OQ== IGRvZXNu IDE3 IGJ1c2luZXNz IGNsZWFy IHJlc2U= Iiw= dXJ5 IGVxdQ== YXN0ZXI= YWxm IEFtZXJpY2Fu bmVjdA== IGV4cGVjdA== aXZlcnNpdHk= IG9jYw== IEZs IGtpbmQ= IG1lYW4= IHBhc3Q= IGRldg== IGJhcw== bGV0 cmFmdA== IG9yZ2Fu IGRlbA== IHBlcmZvcm0= IHN0b3J5 IHNlYXNvbg== IENvbA== IGNsYWlt IGNhbWU= IHdpdGhpbg== IGxpbmU= IHByb2plY3Q= IEF0 IGNvbnRyb2w= ZW5kZWQ= IFN5 IGFpcg== aXphdGlvbg== ICo= bGV5 IG1vbmV5 aWRk WW91 Zm9y IGZhbWlseQ== IG1ha2luZw== IGJpdA== IHBvbGljZQ== IGhhcHBlbg== IHZlcnM= b255 dWZm IFdoZW4= IHNpdA== aWRlbw== bGY= aXNvbg== IHN1cmU= Z2lu IGFwcGVhcg== IGxpZ2h0 IGVz b2Y= IHdhdGVy IHRpbWVz bm90 IGdyb3c= IGNvbXBhbnk= IFRl b3dz IG1hcg== b3VyY2U= aW9s YXJt YnI= IGV4YW1wbGU= IGNvbmM= IGZvcmU= IFRv cHJv RU4= cmllcw== IDI1 IENhbg== bmV5 IGFjdHVhbGx5 IGV2ZXI= dXJpdHk= YWtlbg== YXBz IHRheA== IG1ham9y YW1h IG9mdGVu ZXJhbA== IGh1bWFu IGpvYg== aXN0ZXI= IGF2YWlsYWJsZQ== b2Ny ZW5u YWlk aXZpZA== IHJlY29yZA== PyI= IHNpbmc= IEFt aWRlbmNl IG5ld3M= c3Rlcg== IGVjb25vbQ== IGZvbGxvd2luZw== IEJy aXNpbmc= IGhvdXI= bW9zdA== dW1lbnQ= IHNleA== IGRlc2M= IGJlY29tZQ== IEVk IHRvb2s= IGhhdmluZw== IHByb2R1Y3Q= YXVsdA== QXM= YXJpbmc= IG1lYW5z IGhvcA== dW5l IGNobw== IGNlcnRhaW4= IG5vbg== IGRlYWw= MjQ= bGVtZW50 b2Np ZW5l IHNpZGU= IFBy IE1heQ== IHJlYXNvbg== dWVk Y2hlZA== dWxhdGlvbg== IGVsZWN0 IG9mZmljaWFs IHBvc3NpYmxl IGhvbGQ= YW5kcw== b3Rz IGNpdHk= b3JpZXM= IHNldmVy IGNoaWxkcmVu IG9uY2U= IGFjdGl2 bGVy IG5pZ2h0 aXRpb25z IEpvaG4= YXBl cGxheQ== IGRvbmU= IGxpbQ== IHdvcmtpbmc= IFByZXM= b3JsZA== ZWI= IENv IGJvZHk= YWlscw== dXRlcw== IE1y IHdoZXRoZXI= IGF1dGhvcg== cm9w IHByb3Blcg== IHNlZW4= KTs= IGZhYw== IFN1 IGNvbmQ= aXRpbmc= IGNvdXJzZQ== IH0= LS0tLS0tLS0tLS0tLS0tLQ== YWlnbg== IGV2ZW50 IGVuZw== IHBvdA== IGludGVybg== aWFt IHNob3J0 ZW1wdA== 44I= IEdvZA== aWxhcg== ODA= IG9yaWc= SVM= b3Vybg== YWJpbGl0eQ== aXRpdmU= IGRhbQ== IDEwMA== IHByZXNz IGRvaW5n IHByb3RlY3Q= cmluZw== IHRob3VnaHQ= IHF1ZXN0aW9u cmV3 IFdhcg== IHNldmVyYWw= IFN0YXRl IGdpdmVu IGZ1bmQ= IFR3 IHdlbnQ= YW5jZXM= d29yaw== cG9y bXk= NDA= IGFyZw== YXJ0bWVudA== dXN0b20= IHBvbGlj IG1lZXQ= IGNyZWF0 MjI= IFN0YXRlcw== IGdhbWVz cmF3 dXR1cmU= IHVuZGVyc3RhbmQ= dXJz IE9i bGlzaA== c3k= IG1ha2Vz IHdvbg== YWdvbg== IGh0dA== IGxvdmU= ZW50aWFs IGNvbXBsZXRl cGFy IElt QUw= IGFjY291bnQ= wqA= b3JlZA== dmVydA== IGlkZW50 IDIwMTU= IG90aGVycw== IE1pbg== aWJlcg== dmVyYWdl VGhlcmU= aXRpb25hbA== ZGQ= IHByb2I= IHlvdW5n IGFsb25n IGFjY29yZGluZw== IHlldA== IG1lbWJlcnM= IFdoYXQ= b2lk IE1hbg== QW5k IGFtb25n YWk= IGVtcGxveQ== IFJlcw== ID4= IGludm9s IGxvdw== YWY= IENhcg== IGhpZw== IE9uZQ== IFNlYw== aW5hdGlvbg== IGxpa2VseQ== IGFudA== YWdlZA== IFJ1c3M= IGJlbg== IHJlbGU= Rm9y YmFjaw== IE5vdA== IHByZXNpZGVudA== YmFsbA== IGFjY2Vzcw== aXZpZHVhbA== IERlbQ== IEV1cm8= NjA= IGtub3du aXJs IEdy IGVhcmx5 dXNl aWV0eQ== 4oCT IGZpZ2h0 IHNlbnQ= IHRvZGF5 IG1hcmtldA== Ii4= IGJhc2Vk IHN0cm9uZw== dXJ0aGVy IGRlYg== bWJlcg== IHByb2JsZW0= IGRlYXRo IHNvY2lhbA== aW1hdGU= QVM= b3J0dW4= IGNhbXBhaWdu ZXJ5 Q2g= IGV5 aWFsbHk= IG11cw== d2g= cG9z IGVy IHNhZg== IG1vbnRocw== aXJvbg== IHZpb2w= IGZpdmU= IHN0cmU= IHBsYXllcnM= aW5j YWxk eWVhcg== YXVu IHN1Y2Nlc3M= IHByZXNlbnQ= ZXJlbmNl IDIwMTQ= IHN1Z2c= IHBhcnRpY3VsYXI= IHRyeQ== IHN1Z2dlc3Q= IENocmlzdA== b25lcw== IHByaXY= MjM= IGNyaXQ= IGxhbmQ= IGxvY2Fs aWZ5 Mjk= IGF1dA== RUQ= IEd1 IG11bHQ= IHBvbGl0aWNhbA== IGFza2Vk IGZvcm1lcg== aXR0ZXI= cmlwdA== IGNsb3Nl IHByYWN0 IFlvcms= IGdldHRpbmc= IGFjcm9zcw== IGNvbWI= IGJlbGlldmU= IHo= IHRvZ2V0 IHRvZ2V0aGVy IENlbnQ= aXJj IGluZGl2aWR1YWw= IE1j Mjc= aXNr IEVuZw== IGZhY2U= IDI0 IHZhbHVl IGFyZWE= ZXY= IHdyaXQ= IFByZXNpZGVudA== IHZvdA== IGtleQ== IG1vbQ== cHV0 IGFueXRoaW5n IGV4cGVyaWVuY2U= YXR0bGU= IG1pbmQ= YWZm b21t IGZ1dHVyZQ== Z2Vk IGN1dA== IHRvdA== aXRjaA== IHZpZGVv IGludmVzdGln IG5ldA== IE15 cmljdA== aWVu Lik= IGltcHJv dGhvdWdo d2FyZHM= IGNvbm5lY3Q= IE1lZA== c2VsdmVz ZW5zaXZl bWI= b2Jlcg== YXRvcnM= QW4= IDUw IHJlZHU= cmVzZW50 IGFib3Zl IGZyZQ== IEV1cm9wZQ== c3c= IGFtb3VudA== IEFwcA== IGVpdGhlcg== IG1pbGl0 IGFuYWw= IGZhaWw= IEVu YWxlcw== IHNwZWNpYWw= IGJsYWNr SVQ= Y2hlcg== IGxvb2tpbmc= IGZpcmU= eW4= IGFsbW9zdA== b29u IHN0dWR5 IG1pc3M= Y2hlcw== cm93bg== IHRyZQ== IGNvbW11bml0eQ== IG1lZGlh IGZvb2Q= IGNvbWVz IFVuaXZlcnNpdHk= IHNpbmdsZQ== V2hhdA== dWx5 IGhhbGY= YWd1ZQ== aG9k IFJlcHVibGlj IHN0YXJ0ZWQ= IHF1aWNr b3Rv Ym9vaw== IGlzc3Vl aXRvcg== IGVsc2U= IGNvbnNpZGVy MjY= cm9kdQ== IHRha2Vu Mjg= OTk= IFdpdGg= IHRydWU= IHdh IHRyYWQ= IGFnbw== IG1lc3M= aWVm IGFkZGVk b2tl IGJhZA== IGZhdg== MzM= IHNpbWlsYXI= YXNr IERvbg== IGNoYXJhY3Rlcg== b3J0cw== IEhvdXNl IHJlcG9ydGVk IHR5cGU= dmFs aW9k IEhvd2V2ZXI= IHRhcmc= IGVudGlyZQ== cHBpbmc= IGhpc3Rvcnk= IGxpdmU= ZmZpYw== Li4uLi4uLi4= ZWRlcmFs IHRyeWluZw== IGRpc2N1c3M= IEhhcg== YWNlcw== bGlzaGVk IHNlbGY= b3Nw cmVzdA== IHJvb20= ZWx0 IGZhbGw= b2x1dGlvbg== IGV0 IHg= IGlzbg== IGlkZWE= Ym8= IHNvdW5k IERlcA== IHNvbWVvbmU= Y2lhbGx5 dWxseQ== IGZvYw== IG9iamVjdA== aWZ0 YXBlcg== IHBsYXllcg== IHJhdGhlcg== IHNlcnZpY2U= YXNoaW5n IERv IFBhcnQ= cnVn bW9u cGx5 IG1vcg== IG5vdGhpbmc= IHByb3ZpZGU= SUM= dW5n IHBhcnR5 IGV4aXN0 IG1hZw== NzA= IHJ1bA== IGhvdXNl IGJlaGluZA== IGhvd2V2ZXI= IFdvcmxk IHN1bQ== IGFwcGxpYw== IDs= IGZ1bmN0aW9u Z3I= IFBvbA== IGZyb250 MjAw IHNlcmllcw== IHRlbQ== IHR5cA== aWxscw== IG9wdA== IHBvaW50cw== IGJlbG93 aXR0ZWQ= IHNwZWNpZmlj IDIwMTc= dW1i IHJh IHByZXZpb3Vz IHByZXQ= cmVtZQ== IGN1c3RvbQ== IGNvdXJ0 IE1l IHJlcGw= IHdob2xl Z28= Y2Vy IHRyZWF0 IEFjdA== IHByb2JhYmx5 IGxlYXJu ZW5kZXI= IEFzcw== IHZlcnNpb24= bm93 IGNoZWNr IENhbA== UkU= bWluaXN0 T24= b3VyY2Vz IGJlbmVm IGRvYw== IGRldGVy IGVuYw== IHN1cGVy IGFkZHJlc3M= IHZpY3Q= IDIwMTM= IG1lYXM= dHI= IGZpZWxk V2hlbg== IHNpZ25pZmlj dWdl IGZlYXQ= IGNvbW1vbg== bG9hZA== IGJlZ2lu IGJyaW5n IGFjdGlvbg== ZXJtYW4= IGRlc2NyaWI= IGluZHVzdA== IHdhbnRlZA== cmllZA== bWluZw== IGF0dGVtcHQ= NDU= ZmVy IGR1ZQ== cmVzc2lvbg== IyM= IHNoYWxs IHNpeA== b28= IHN0ZXA= IHB1Yg== IGhpbXNlbGY= IDIz IGNvcA== IGRlc3Q= IHN0b3A= QUM= aWJpbGl0eQ== IGxhYg== aWN1bHQ= IGhvdXJz IGNyZWF0ZQ== IGZ1cnRoZXI= IEFtZXJpY2E= IENpdHk= IGRvdQ== aGVhZA== U1Q= IE5vcnRo Y2luZw== IG5hdGlvbmFs dWxl IEluc3Q= IHRha2luZw== IFF1 aXJ0 IHJlZA== IHJlc2VhcmNo dmlyb24= IEdl IGJyZWFr YW5h IHNwYWNl YXRlcmlhbA== IHJlY2VudA== IEFi IGdlbmVyYWw= IGhpdA== IHBlcmlvZA== IGV2ZXJ5dGhpbmc= aXZlbHk= IHBoeXM= IHNheWluZw== YW5rcw== IGNvdQ== IGN1bHQ= YWNlZA== ZWFs dWF0aW9u IGNvdW4= bHU= IGluY2x1ZGU= IHBvc2l0aW9u IEFmdGVy IENhbmFk IEVt IGltbQ== IFJlZA== IHBpY2s= IGNvbXBs IG1hdHRlcg== cmVn ZXh0 YW5ndQ== aXNj b2xl YXV0 IGNvbXBldA== ZWVk ZmVjdA== IDIx IFNlbg== IFRoZXNl YXNpbmc= IGNhbm5vdA== IGluaXQ= IHJlbGF0aW9ucw== YWNoZWQ= IGJhcg== IDQw IFRI IDIwMTI= IHZvbA== IGdyb3VuZA== IHNlY3VyaXR5 IHVwZA== aWx0 MzU= IGNvbmNlcm4= IEp1c3Q= IHdoaXRl IHNlZW1z IEhlcg== cGVjaWFsbHk= aWVudHM= IGFubm91bg== IGZpZw== aWdodHM= IHN0cmk= bGlrZQ== aWRz IHN1cw== IHdhdGNo IOI= IHdpbmQ= IENvbnQ= IGl0c2VsZg== IG1hc3M= QWw= eWxl aXF1ZQ== IE5hdGlvbmFs IGFicw== IHBhY2s= IG91dHNpZGU= IGFuaW0= IHBhaW4= ZXRlcg== IG1hbmFn ZHVjdA== b2du IF0= IFNlcHQ= c2Vj b2Zm IEphbg== IGZvb3Q= YWRlcw== IHRoaXJk IG1vdA== IGV2aWRlbmNl aW50b24= IHRocmVhdA== YXB0 cGxlcw== Y2xl IGxv IGRlY2w= IGl0ZW0= bWVkaQ== IHJlcHJlc2VudA== b21i YW1lcg== IHNpZ25pZmljYW50 b2dyYXBo c3U= IGNhbA== aXJlcw== MDAwMA== SUQ= QU0= IHNpbXBseQ== IGxvbmdlcg== IGZpbGU= T1Q= Y2hl U28= YXRlZw== b3Jn IEhpcw== IGVuZXI= IGRvbQ== IHVwb24= aWxp Ijoi IHRoZW1zZWx2ZXM= IGNvbWluZw== IHF1aXRl IGRpZmZpY3VsdA== IEJhcg== aWxpdGllcw== cmVs ZW5kcw== Y2lhbA== NjQ= IHdvbWFu cmFw eXI= IG5lY2Vzcw== aXBz IHRleHQ= IHJlcXVpcmU= IG1pbGl0YXJ5 IHJldmlldw== IHJlc3BvbnM= NzU= IHN1YmplY3Q= IGluc3RlYWQ= IGlzc3Vlcw== IGdlbg== Iiwi IG1pbnV0ZXM= IHdlYXA= cmF5 YW1lZA== dGltZQ== Ymw= SG93 IGNvZGU= IFNt IGhpZ2hlcg== IFN0ZQ== cmlz IHBhZ2U= IHN0dWRlbnRz IEludGVybg== IG1ldGhvZA== IEF1Zw== IFBlcg== IEFn IHBvbGljeQ== IFN3 IGV4ZWM= IGFjY2VwdA== dW1l cmlidXQ= IHdvcmRz IGZpbmFs IGNoYW5nZXM= IERlbW9jcg== IGZyaWVuZHM= IHJlc3BlY3Q= IGVw IGNvbXBhbg== aXZpbA== IGRhbWFnZQ== KioqKg== b2dsZQ== dmlyb25tZW50 IG5lZw== ZW50YWw= IGFw IHRvdGFs aXZhbA== ISI= bGlt IG5lZWRz IGFncmU= IGRldmVsb3BtZW50 IGFnZQ== aXBsZQ== MjE= IHJlc3VsdHM= IEFm U2g= IGd1bg== IE9iYW1h cm9sbA== IEA= IHJpZ2h0cw== IEJyaXQ= IHJ1bm5pbmc= IHdhc24= IHBvcnQ= IHJhdGU= IHByZXR0eQ== IHRhcmdldA== IHNhdw== IGNpcmM= IHdvcmtz aWNybw== YWx0 b3Zlcg== d3d3 VGhhdA== bGllcg== IGV2ZXJ5b25l dWRl IHBpZQ== aWRkbGU= cmFlbA== IHJhZA== IGJsb2Nr IHdhbGs= VG8= 44E= bmVz IEF1c3Q= YXVs cm90ZQ== IFNvdXRo ZXNzaW9u b3Bo IHNob3dz IHNpdGU= IGpv IHJpc2s= Y2x1cw== bHQ= IGluag== aWRpbmc= IFNwZQ== IGNoYWxs aXJt IDIy aXR0aW5n c3Ry IGh5 TEU= a2V5 IGJlZ2Fu YXR1cg== YXNoaW5ndG9u bGFt IERhdg== Yml0 IHNpemU= IFBhcg== Mzg= b3VybmFs ZmFjZQ== IGRlY2lzaW9u IGxhcmc= IGp1ZA== cmVjdA== IGNvbnRpbnVl IE9jdA== b3ZlcmVk IEludA== PT09PT09PT0= IHBhcmVudA== IFdpbGw= IGVhc3k= IGRydWc= YW5nZXI= IHNlbnNl IGRp aWRheQ== IGVuZXJneQ== aXN0aWM= IGFzc29jaQ== YXJ0ZXI= b2JhbA== ZWtz IEVs dXJjaA== IGdpcmw= b2U= aXRsZQ== IDI4 IENoZQ== IHJlcXVlc3Q= IHNvb24= IGhvc3Q= a3k= IHN0YXRlcw== b21lcw== IG1hdGVyaWFs bGV4 IG1vbWVudA== IGFuc3c= b25zZQ== IGVzcGVjaWFsbHk= IG5vcm0= IHNlcnZpY2Vz cGl0ZQ== cmFu IHJvbGU= NDQ= KTo= IGNyZWQ= Q2w= X19fX19fX18= IG1hdA== IGxvZw== IENsaW50b24= T1U= IG9mZmljZQ== IDI2 IGNoYXJn IHRyYWNr bWE= IGhlYXJ0 IGJhbGw= IHBlcnNvbmFs IGJ1aWxkaW5n bmE= c2V0 Ym9keQ== IEJsYWNr IGluY3JlYXNl aXR0ZW4= IG5lZWRlZA== MzY= MzI= PSI= IGxvc3Q= IGJlY2FtZQ== IGdyb3Vwcw== IE11cw== IHdyb3Rl IFBl IHByb3A= am95 w6k= IFdoaXRl IGRlYWQ= Lic= IGh0dHA= IHdlYnM= T1M= IGluc2lkZQ== IHdyb25n IHN0YXRlbWVudA== IC4uLg== eWw= IGZpbG0= IG11c2lj IHNoYXJl aWZpY2F0aW9u IHJlbGVhc2U= IGZvcndhcmQ= IHN0YXk= IGNvbXB1dA== aXR0ZQ== c2Vy IG9yaWdpbmFs IGNhcmQ= IGNhbmQ= IGRpdg== YXR1cmFs IGZhdm9y T00= IGNhc2Vz dXNlcw== IHNlY3Rpb24= IGxlYXZl Z2luZw== b3ZlZA== IFdhc2hpbmd0b24= Mzk= IEds IHJlcXVpcmVk YWN0aW9u YXBhbg== b29y aXRlcg== IEtpbmc= IGNvdW50cmllcw== IEdlcm1hbg== bGxpbmc= IDI3 MzQ= IHF1ZXN0aW9ucw== IHByaW0= IGNlbGw= IHNob290 IGFueW9uZQ== IFdlc3Q= IGFmZmVjdA== ZXBlbmQ= IG9ubGluZQ== IElzcmFlbA== IFNlcHRlbWJlcg== IGFiaWxpdHk= IGNvbnRlbnQ= aXNlcw== IHJldmU= IGxhdW4= IGluZGlj IGZvcmNl Y2FzdA== IHNvbGQ= YXZpbmc= Zmw= IHNvZnQ= IGNvbXBhbmllcw== Y2VlZA== IGFydGljbGU= IGF1ZA== IHJldg== IGVkdWM= IHBsYXlpbmc= MDU= IGhlbGQ= Y3Rvcg== IHJlbGVhc2Vk IGZlZGVyYWw= Mzc= IGFkbWluaXN0 IGludGVydmlldw== IGluc3RhbGw= IHJlY2VpdmVk IHNvdXJjZQ== dWs= UGg= IHNlcmlvdXM= IGNyZWF0ZWQ= IGNhdXNl IGltbWVkaQ== IGRlZmlu dWVs IERlcGFydG1lbnQ= Y3Rpb25z IENvdXI= IE5vdw== emU= aXRlcw== aXR1dGlvbg== IGxhdGU= IHNwZWFr bmVycw== IGxlZ2Fs YXJp IENvcg== IHdlZWtz IG1vZGVs IHByZWQ= IGV4YWN0 QkM= IEJ5 SU5H b3Npbmc= IHRha2Vz IHJlZ2FyZA== IG9wcG9ydHVu IHByaWNl IDE5OA== IEFwcg== ZnVsbHk= IG9yZA== IHByb2JsZW1z cnVjdGlvbg== aGFt IENvdW50 bGVnZQ== IGxlYWRlcnM= RVQ= bGV2 IGRlZXA= b2xvZ2ljYWw= ZXNl aGFwcw== IFNvbWU= IHBlcnM= IGNvbnRyYWN0 IHJlbGF0aW9uc2hpcA== c3A= b3Vk IGJhc2U= NDg= bWl0 QWQ= YW5jaWFs IGNvbnN1bQ== IHBvdGVudGlhbA== IGxhbmd1 cmVt ZXRo IHJlbGln cmVzc2Vk NjY= IGxpbms= IGxvd2Vy YXllcg== IEp1bmU= IGZlbQ== dW50 ZXJj dXJk IGNvbnRhY3Q= IGlsbA== IG1vdGhlcg== IGVzdGFi aHR0 IE1hcmNo IEJybw== IENoaW5h IDI5 IHNxdQ== IHByb3ZpZGVk IGF2ZXJhZ2U= YXNvbnM= IDIwMTE= IGV4YW0= bGlu NTU= bmVk IHBlcmZlY3Q= IHRvdQ== YWxzZQ== dXg= IGJ1eQ== IHNob3Q= IGNvbGxlY3Q= IHBob3Q= IHBsYXllZA== IHN1cnBy IG9mZmljaWFscw== IHNpbXBsZQ== YXZ5 IGluZHVzdHJ5 IGhhbmRz Z3JvdW5k IHB1bGw= IHJvdW5k IHVzZXI= IHJhbmdl dWFyeQ== IHByaXZhdGU= b3Bz ZWVz IHdheXM= IE1pY2g= IHZlaA== IGV4Y2VwdA== IHRlcm1z aW11bQ== cHBlcg== SU9O b3Jlcw== IERyYWdvbg== b3Vs IGRlbg== IHBlcmZvcm1hbmNl IGJpbGw= Y2ls NDc= IGVudmlyb25tZW50 IGV4Yw== YWRk IHdvcnRo IHBpY3Q= IGNoYW5jZQ== IDIwMTg= Ym9y IHNwZWVk aWN0aW9u IGFsbGVn IEphcGFu YXRvcnk= cmVldA== IG1hdGNo IElJ IHN0cnU= b3JkZXI= IHN0ZQ== IGxpdmluZw== IHN0cnVjdA== aW5v IHNlcGFy aGVybg== IHJlc3BvbnNl IGVuam95 IHZpYQ== QUQ= dW1lbnRz YWNlYm9vaw== IG1lbWJlcg== aWJy aXppbmc= IHRvb2w= IE1vbg== IFdoaWxl aG9vZA== IEFuZw== IERlZg== IG9mZmVy VHI= YXVy IHR1cm5lZA== IEp1bHk= ZG93bg== YW5jZWQ= IHJlY2VudGx5 IEVhcg== IGNl IFN0YXI= IENvbmc= cm91Z2h0 IGJsb29k IGhvcGU= IGNvbW1lbnQ= YWludA== IGFycmk= aWxlcw== IHBhcnRpY2lw b3VnaHQ= cmlwdGlvbg== MDg= NDk= IGdhdmU= IHNlbGVjdA== IGtpbGxlZA== c3ljaA== IGdvZXM= aWo= IGNvbGw= IGltcGFjdA== YXRpdmVz IFNlcg== MDk= IEF1Z3VzdA== IGJveQ== ZGU= IERlcw== IGZlbHQ= VVM= IGV4cGVjdGVk IGltYWdl IE1hcms= Y2NvcmRpbmc= b2ljZQ== RUM= IE1hZw== ZW5lZA== aG9sZA== IFBvc3Q= IHByZXZlbnQ= Tm8= IGludm9sdmVk IGV5ZXM= IHF1aWNrbHk= QXQ= dW5r IGJlaGF2 IHVy IGxlZA== Y29tZQ== ZXk= IGNhbmRpZA== IGVhcmxpZXI= IGZvY3Vz ZXR5 UHJv bGVkZ2U= aXhlZA== aWxsZWQ= IHBvcHVsYXI= QVA= IHNldHQ= bGlnaHQ= IHZhcmlvdXM= aW5rcw== IGxldmVscw== IHJvYWQ= ZWxsaWc= YWJsZXM= aGVs aXR0ZWU= IEdlbmVy eXBl IGhlYXJk aWNsZXM= IG1pcw== IHVzZXJz IFNhbg== IGltcHJvdmU= IGZhdGhlcg== IHNlYXJjaA== VGhleQ== dmls IHByb2Zlc3M= IGtuZXc= IGxvc3M= IGV2ZW50cw== NjU= IGJpbGxpb24= MDc= MDI= IE5ld3M= IEFN IGNvdmVy d2hlcmU= ZW5zaW9u IGJvdHQ= IGFyZWFz ZW5jZXM= b3Bl IFR3aXR0ZXI= YWVs IGdldHM= IEdvb2dsZQ== IHNu aWFudA== IHZvdGU= IG5lYXJseQ== IGluY2x1ZGVk IHJlY29nbg== eno= bW0= YWxlZA== IGhhcHBlbmVk MDQ= IGhvdA== IHdob3Nl IGNpdmls IHN1ZmY= b2Vz aXRpeg== IFN5cmk= IHJlc3BvbmQ= IGhvbg== IGZlYXR1cmVz IGVjb25vbWlj IEFwcmls cmlt IHRlY2hub2xvZ3k= IG9wdGlvbg== YWdpbmc= IHB1cmNo UmU= IGxhdA== Y2hpZQ== aXNs IHJlY29tbQ== dWY= IHRyYWluaW5n IGVmZmVjdHM= IGZhc3Q= IDIwMTA= IG9jY3Vy IHdlYnNpdGU= IGVtYWls IHNlbnM= ZWNo IG9pbA== IGluZmx1 IGN1cnJlbnRseQ== IFNjaA== IEFkZA== IGdvYWw= IHNjaWVudA== IGNvbnY= MTAw ZW15 IGRlY2lkZWQ= IHRyYXZlbA== IG1lbnRpb24= TEw= MDM= IGVsZWN0aW9u IHBob25l IGxvb2tz IHNpdHVhdGlvbg== IGN5 IGhvcg== YmVk IENvdXJ0 YWlseQ== YXZlcw== IHF1YWxpdHk= IENvbXA= d2lzZQ== IHRhYmxl IHN0YWZm IFdpbmQ= ZXR0 IHRyaWVk aWRlcmVk IGFkZGl0aW9u IGJveA== IGxhY2s= YXJpbHk= IHdpZGU= IG1pZA== IGJvYXJk eXNpcw== IGFudGk= aGE= IGRpZw== ZW5pbmc= IGRybw== Q29u Njg= IHNsb3c= YmFzZWQ= c2VxdQ== IHBhdGg= RXg= YWtlcg== IHdvcmtlZA== IHBlbg== IGVuZ2luZQ== IGxvb2tlZA== IFN1cGVy IFNlcnY= IHZpY3RpbQ== VW4= IHByb3BlcnR5 IGludHJvZHU= IGV4ZWN1dA== IFBN TGU= IGNvbG9y IE1vcmU= IDYw IG5ldHdvcms= IGRhdGU= Y3Vs aWRnZQ== IGV4dHJh MzE= IHNsZQ== Njc= IHdvbmQ= IHJlcG9ydHM= anVzdA== IEF1c3RyYWw= IGNhcGl0YWw= IGVucw== IGNvbW1hbmQ= IGFsbG93ZWQ= IHByZXA= IGNhcHQ= aGli IG51bWJlcnM= Y2hhbg== IGZhaXI= bXA= b21z IHJlYWNo V2l0aA== dGFpbg== IGJyb2Fk IGNvdXBsZQ== ZWNhdXNl bHlpbmc= IEZlYg== IHNjcmVlbg== IGxpdmVz IHByaW9y IENvbmdyZXNz QXI= IGFwcHJvYWNo IGVtZXI= YXJpZXM= IERpcw== c2Vydg== IE5l IGJ1aWx0 Y2llcw== IHJlcGU= IHJ1bGVz Zm9yY2U= IFBhbA== IGZpbmFuY2lhbA== IGNvbnNpZGVyZWQ= IENoYXI= bmNlcw== IElT IGJyb3VnaHQ= IGJp aWVycw== IFNpbQ== T1A= IHByb2R1Y3Rz IHZpc2l0 IGRvY3VtZW50 IGNvbmR1Y3Q= IGNvbXBsZXRlbHk= aW5pbmc= IENhbGlm aWJseQ== IHdyaXR0ZW4= IFRW ZW1lbnRz IGRyYXc= T25l IHB1Ymxpc2hlZA== IHNlY3JldA== cmFpbg== aGV0 IEZhY2Vib29r b25kYXk= IFVw IHNleHVhbA== IHRob3Vz IFBhdA== IGVzcw== IHN0YW5kYXJk IGFybQ== Z2Vz ZWN0aW9u IGZlbGw= IGZvcmVpZ24= YW5p IEZyaWRheQ== IHJlZ3VsYXI= aW5hcnk= IGluY3JlYXNlZA== IHVzdWFsbHk= IGRlbW9u IGRhcms= IGFkZGl0aW9uYWw= cm9s IE9m IHByb2R1Y3Rpb24= ISE= dW5kcmVk IGludGVybmF0aW9uYWw= aWRlbnRz IEZyZWU= cm91cA== IHJhY2U= IG1hY2g= IGh1Z2U= QWxs bGVhcg== b3ZlbWJlcg== IHRvd24= IGF0dGVudGlvbg== IE9mZg== eW9uZA== IFRoZW4= ZmllbGQ= IHRlcnJvcg== cmF6 IEJv IG1lZXRpbmc= IFBhcms= IGFycmVzdA== IGZlYXI= IGF3 IFZhbA== b3Jpbmc= Jyw= IGV4dHJlbWU= YXJy IHdvcmtlcnM= QWZ0ZXI= IDMx bmV0 YW1lbnQ= IGRpcmVjdGx5 IHBvcHVsYXRpb24= dWJl IE9jdG9iZXI= IElO IEphbnVhcnk= NTk= IERhdmlk IGNyb3Nz Y2VtYmVy IEZpcnN0 IG1lc3NhZ2U= aXJpdA== IG5hdGlvbg== IHBvbGw= aXNpb25z IGFuc3dlcg== bnk= aXNvZGU= IGNhcnJ5 IFJ1c3NpYQ== IGhlYXI= ZW5ndGg= cm95 IG5hdHVyYWw= aW5hbGx5 IGRvZw== bWl0dGVk IHRyYWRl IHN1YnN0 IG11bHRpcGxl IEFmcmlj IGZhbnM= IHNvcnQ= IGdsb2JhbA== aWNhdGlvbg== IFdlZA== YXJh IGFjaGll IGxhbmd1YWdl dmV5 IHRhbA== IG5lY2Vzc2FyeQ== IGRldGFpbHM= IHNlbg== IFN1bmQ= IFJlZw== IFJlYw== MDY= IHNpbA== cmVzc2l2ZQ== IG1lZGljYWw= dW5jaA== b3JuaWE= IHVuZA== Zm9ydA== b2Nrcw== IE1vbmRheQ== dWVzZGF5 Y3JhZnQ= Nzc= dXJ0 IHZlcg== IEhpbGw= IHJlY2VpdmU= IG1vcm5pbmc= ZXN0ZXJu IGJhbms= IHNhdA== aXJ0aA== IEhpZ2g= IGRldmljZQ== IFRIRQ== IENlbnRlcg== IHNhZmU= IHBsZQ== IENhbmFkYQ== IHN5c3RlbXM= IGFzc2lzdA== IHN1cnY= IGJhdHRsZQ== IFNvYw== dmVydGlz U2hl IHBhcGVy IGdyb3d0aA== IGNhc3Q= U2M= IHBsYW5z bGxlZA== IHBhcnRz IHdhbGw= IG1vdmVtZW50 IHByYWN0aWNl aW1hdGVseQ== IGRpc3BsYXk= IHNvbWV0aW1lcw== b21w IFBhdWw= IFllcw== a2luZw== NTg= b2x5 IHNvbg== IGF2b2lk b2tlcw== IEpldw== IHRvd2FyZHM= YXNj IC8v IEtvcmU= IHRhbGtpbmc= IGNvcnJlY3Q= IHNwZW50 aWNrcw== aWFibGU= ZWFyZWQ= IHRlcm0= IHdhbnRz b21pbmc= IHV0 IGRvdWI= IGZvcmNlcw== IHBsZWFzZQ== Njk= IE5vdmVtYmVy YXRmb3Jt b25kb24= IG9uZXM= IGltbWVkaWF0ZWx5 IFJ1c3NpYW4= IE1ldA== IGRlZw== IHBhcmVudHM= Q0g= IEFtZXJpY2Fucw== YWx5 IE1vZA== IHNob3du IGNvbmRpdGlvbnM= IHN0dWZm IHJlYg== IFlvdXI= IGluY2x1ZGVz bm93bg== IFNhbQ== IGV4cGVyaWVu bWlzc2lvbg== IEV2ZW4= YXVnaHQ= IGFubm91bmNlZA== IFJlcHVibGljYW4= IGRldGVybWlu IGRlc2NyaWJlZA== IENvdW50eQ== KCk= IGRvb3I= IGNoYW5nZWQ= IG5laWdo IEhlcmU= IGNsZWFu IHBhbg== IERlY2VtYmVy IEV1cm9wZWFu aXJpbmc= YXB0ZXI= IGNsdWI= IFR1ZXNkYXk= IHBhaWQ= IE5ldA== IGF0dGFja3M= IGNoYXJhY3RlcnM= IGFsb25l IGRpcmVjdG9y ZG9t IDM1 IGxvYWQ= IHJvdXQ= IENhbGlmb3JuaWE= IGZpbmFsbHk= IHJhYw== IGNvbnRy IGV4YWN0bHk= cmVzaA== cHJp IElzbGFt IG5hdHVyZQ== IGNhcmVlcg== IGxhdGVzdA== IGNvbnZlcnM= IFNs cG9zZQ== Y2llbnQ= IEluYw== aXZpdHk= ODg= IEF0dA== IE1vcg== bmVzZGF5 IHdlaWdodA== a2Vu IG5vdGU= IHRlYW1z IFw= YWlycw== IEdyZWVu IGh1bmRyZWQ= b25lbnQ= IHN0cmVuZw== IGNvbnNpc3Q= aWNhdGVk IHJlZ3Vs IGxpYw== YXN0aWM= IHRlbg== dXJzZGF5 ZWxsaWdlbmNl b3VzbHk= IFVL Qkk= IGNvc3Rz IGluZGVwZW5k IEFQ IG5vcm1hbA== IGhvbQ== IG9idmlvdXM= IHN3ZQ== IHN0YXI= IHJlYWR5 YWNoZXI= IGltcGxlbWVudA== Z2VzdA== IHNvbmc= IEdldA== IExhYg== IGludGVyZXN0aW5n dXNpbmc= IGdpdmluZw== IFN1bmRheQ== IGV0Yw== IG1pZGRsZQ== IHJlbWVtYmVy cmlnaHQ= b3NpdGlvbg== dXRpb25z IG1heA== NDY= IHlvdXJzZWxm IGRlbWFuZA== IHRyZWF0bWVudA== IGRhbmdlcg== IENvbnM= IGd1eQ== IEJyaXRpc2g= IHBoeXNpY2Fs IHJlbGF0ZWQ= IHJlbWFpbg== IGNvdWxkbg== IHJlZmVy IGNpdGl6 Ym94 RU5U Ym9hcmQ= IGlubg== SUc= ZXJv IFN0cmVldA== b3NwaXRhbA== cmVuY2g= Y2hlcnM= IHN0cmE= T0w= YWdlcg== IEFO IGVhc2lseQ== SUE= ZW5nZQ== aW55 IGNsb3M= b2NrZWQ= IHVzZXM= IENvdW4= SW0= dWlsZA== Pz8= bW9yZQ== IGFuZw== IHdyaXRl b2x1dGU= NTc= IGxlYWRlcg== IHJlYWRpbmc= PC8= IGF1dG9t ZXN0cw== NDM= IGxlZ2lzbA== IEdvbGQ= IGRlc2lnbmVk IFNU IExlZw== YXJlcw== IGJlYXV0 IFRleA== IGFwcGVhcnM= IHN0cnVnZw== IFJvbQ== IDAw IGNob2ljZQ== IHBhcnRpY3VsYXJseQ== IEZyb20= b3Blcg== IExvbmRvbg== YW5uZWQ= IGFsbG93cw== b2JpbGU= IGRpZmZlcmVuY2U= 4oCi IFZpZXc= IFdlZG5lc2RheQ== IGFsdGhvdWdo IHJlbGF0aXZl IGFwcGxpY2F0aW9u YXRldmVy IGFyZW4= IG15c2VsZg== IGltYWc= IGRpc2U= IHNvY2lldHk= IGZyZXF1 IEVuZ2xpc2g= IHBvb3I= IERheQ== IHdyaXRpbmc= IHNldmVu IHN0YXJ0aW5n IGJ1ZA== IHByaW50 IFRyYW5z dWZhY3Q= IFN0dWQ= bmV3 IGNyaW0= IGdpdmVz IGNvb2w= YWU= aWFuY2U= IEdlbmVyYWw= IHRoaW5raW5n IHNhdmU= IGxpbWl0ZWQ= IFBhcnR5 IG1lYW5pbmc= cGVu b3dlcnM= IEphY2s= RU0= IG5pY2U= cnVwdA== IGdhcw== IGVpZ2h0 IGZlZXQ= IGVmZm9ydA== IGlnbg== aWNpdA== Qmw= Y29pbg== IG9waW4= IGJyYWlu V2hpbGU= aGVzdA== IFRodXJzZGF5 IHdvdWxkbg== YXVnaHRlcg== IHRvdWNo bGVtZW50cw== IHN0dWRpZXM= IGNlbnRlcg== Y29udA== b3JnZQ== IGNvbXB1dGVy IGludmVzdGlnYXRpb24= UGw= b3Jrcw== IDIwMDg= IGluY3JlYXNpbmc= IHN0b3Jl IGNvbW1lbnRz IGJhbA== bWVu IGRvbGw= IGxpYmVy IHdpZmU= IGxhd3M= YXR1cmRheQ== aXRuZXNz IG1vZGVybg== IFNr IGFkbWluaXN0cmF0aW9u IG9wcG9ydHVuaXR5 IHNhbA== IHBvd2VyZnVs TXk= IGNsYWltcw== IEVhcnRo b3Jkcw== IHRpdGxl IGVzYw== bmFtZQ== Tm90 b21lbg== IGJleW9uZA== IGNhbWVy IHNlbGw= aXR1dGU= ZWFyY2g= IGFwcGw= aW1lbnQ= NDI= IEFydA== IHVuZg== IHZpb2xlbmNl dXJn IEVhc3Q= IGNvbXBhcmVk IG9wdGlvbnM= IHRocm91Z2hvdXQ= IHZz aWdy Lls= YWNoZXM= Nzg= IGZpbGVz Rkw= RUw= YXJpYW4= IEphbWVz IEFpcg== YW5jaA== IGRldGFpbA== IHBpZWNl UFM= IG5hbWVk IGVkdWNhdGlvbg== IGRyaXZl IGl0ZW1z IHN0dWRlbnQ= aWNlZA== Ojo= aWNv IHRocm93 IHNjZW5l IGNvbXBsZXg= IDIwMDk= IHByZWM= IEJyZQ== Nzk= IGNvbmNlcHQ= IHN0YXR1cw== YW1pbmc= IGRpZWQ= IGtub3dsZWRnZQ== IGJlZ2lubmluZw== T0Q= cnVhcnk= IGNlcnRhaW5seQ== IGd1eXM= IHNsaWdodA== aW5u b3VuZHM= IGZpbmU= IGZhdA== aWNhdGlvbnM= IHBlcmhhcHM= IEFudA== IGluY29tZQ== IGh0dHBz IG1ham9yaXR5 cG9ydHM= c3Rvbg== IGdyZWF0ZXI= IGZlZWQ= ZW50aWFsbHk= IHNhZmV0eQ== IHVuaXF1ZQ== YW5kb20= IGdvbmU= IHNob3dlZA== IGhpc3Rvcg== IGNvdW50ZXI= aXVz aWRh IGxlYWRpbmc= aXBl IHNlbmQ= IERvbmFsZA== ZXJ2ZQ== IGRlZmVuc2U= aW5lc2U= IHllcw== IEZpcmU= IE11c2xpbQ== cmFx IGNvbnRpbnVlZA== b3No IHByb3ZpZGVz IHByaXNvbg== IFByZQ== IGhhcHB5 IGVjb25vbXk= IHRydXN0 YWdz IEdhbWU= IHdlYXBvbnM= dW1hbg== IENsZQ== aXRhdGlvbg== IGFuYWx5c2lz IFRpbWVz IHNjaWVuY2U= LT4= IGZpZ3VyZQ== IGRpc2FwcA== ZW50eQ== IHNvZnR3YXJl IHVsdA== IG9mZmljZXJz TmV3 SXM= IHJlbWFpbnM= IEluZGlh IHBzeWNo cmllZg== IGNhdA== ZXNj IG9ic2Vydg== IHN0YWdl IERhcms= IGVudGVy Y2hhbmdl IHBhc3NlZA== IGRlc3BpdGU= IE91dA== IG1vdmll cnM= IHZvaWNl bWluZQ== IFBsYXk= IHRvd2FyZA== IFRlcg== IHJlZ2lvbg== IHZhbHVlcw== b3J0ZXJz IG1vdW50 IG9mZmljZXI= IE90aGVy YmFu IGhvdXM= d29vZA== cm9vbQ== SVY= IFN1bg== c2Vl IE92ZXI= cm9n OTA= IGxheQ== IFR1cg== YXdu IHByZXNzdXJl IFN1Yg== IGJvb2tz ZWRvbQ== IFNhbmQ= QUE= YWdv IHJlYXNvbnM= Zm9yZA== IGFjdGl2aXR5 VVQ= Tm93 IFNlbmF0ZQ== Y2VsbA== bmlnaHQ= IGNhbGxz aW50ZXI= IGxldHRlcg== IFJvYg== IEpl IGNob29zZQ== IExhdw== R2V0 QmU= IHJvYg== IHR5cGVz IHBsYXRmb3Jt IHF1YXJ0ZXI= UkE= IFRpbWU= IG1heWJl IENy OTU= cHJl IG1vdmluZw== IGxpZg== IGdvbGQ= IHNvbQ== IHBhdGllbnRz IHRydXRo IEtl dXJhbmNl YW50bHk= bWFy IGNoYXJnZQ== IEdyZWF0 IGNlbGU= LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0= IHJvY2s= cm9pZA== YW5jeQ== IGNyZWRpdA== YXVk Qnk= IEV2ZXJ5 IG1vdmVk aW5nZXI= cmlidXRpb24= IG5hbWVz IHN0cmFpZ2h0 IEhlYWx0aA== IFdlbGw= IGZlYXR1cmU= IHJ1bGU= IHNjaGU= aW5hdGVk IE1pY2hhZWw= YmVyZw== NDE= aWxlZA== YmFuZA== IGNsaWNr IEFuZ2Vs b25lbnRz wq0= IElyYXE= IFNhdHVyZGF5 IGF3YXJl cGFydA== IHBhdHRlcm4= T1c= IExldA== IGdyYWQ= aWduZWQ= IGFzc29jaWF0ZWQ= IHN0eWxl bm8= aWF0aW9u YWl0aA== aWxpZXM= IHN0b3JpZXM= dXJhdGlvbg== IGluZGl2aWR1YWxz IOKApg== bWlzcw== IEFzc29jaQ== aXNoaW5n YWJ5 IHN1bW1lcg== IEJlbg== IDMy IGFyY2g= dXR5 IFRleGFz aG9s IGZ1bGx5 IG1pbGw= IGZvbGxvd2Vk IEJpbGw= IEluZGlhbg== IFNlY3JldA== IEJlbA== IEZlYnJ1YXJ5 IGpvYnM= IHNlZW1lZA== IEdvdmVybg== aXBwZWQ= IHJlYWxpdHk= IGxpbmVz IHBhcms= IG1lYXN1cmU= IE91cg== SU0= IGJyb3RoZXI= IGdyb3dpbmc= IGJhbg== IGVzdGlt IGNyeQ== IFNjaG9vbA== IG1lY2hhbg== IE9G IFdpbmRvd3M= IHJhdGVz IE9o IHBvc2l0aXZl IGN1bHR1cmU= aXN0aWNz aWNh IGhhcg== eWE= aXRlbHk= aXBw IG1hcA== ZW5jaWVz IFdpbGxpYW0= SUk= YWtlcnM= NTY= IE1hcnQ= IFJlbQ== IGFsdGVybg== aXR1ZGU= IGNvYWNo cm93ZA== RG9u IGtpZHM= IGpvdXJuYWw= IGNvcnBvcg== IGZhbHNl IHdlYg== IHNsZWVw IGNvbnRhaW4= IHN0bw== IGJlZA== aXZlcnNl IFJpY2g= IENoaW5lc2U= IHB1bg== IG1lYW50 a25vd24= IG5vdGljZQ== IGZhdm9yaXRl YXZlbg== IGNvbmRpdGlvbg== IHB1cnBvc2U= KSk= IG9yZ2FuaXphdGlvbg== IGNoYWxsZW5n IG1hbnVmYWN0 IHN1c3A= IEFj IGNyaXRpYw== dW5lcw== dWNsZWFy IG1lcg== dmVudGlvbg== IDgw IG1pc3Q= IFVz IFRvcg== aHR0cA== b2xm IGxhcmdlcg== IGFkdmFudA== IHJlc2Vhcg== IGFjdGlvbnM= bWw= IGtlcHQ= IGFpbQ== LCc= Y29s IGJlbmVmaXRz aWZ5aW5n IGFjdHVhbA== IEludGVybmF0aW9uYWw= IHZlaGljbGU= IGNoaWVm IGVmZm9ydHM= IExlYWd1ZQ== IE1vc3Q= IHdhaXQ= IGFkdWx0 IG92ZXJhbGw= IHNwZWVjaA== IGhpZ2hseQ== IGZlbWFsZQ== IGVycm9y IGVmZmVjdGl2ZQ== NTQ= IGVuY291cg== d2VsbA== IGZhaWxlZA== IGNvbnNlcnY= IHByb2dyYW1z IHRyb3U= IGFoZWFk NTAw dmVydGlzZW1lbnQ= SVA= IEZvdW5k cGly ICU= IGNyaW1l YW5kZXI= IGxvY2F0aW9u IElyYW4= IGJlaGF2aW9y YXppbmc= IHJhcmU= IGVtYg== IGNhdXNlZA== IHNoaXA= IGFjdGl2ZQ== IGNvbnRyaWJ1dA== IGdyZWVu IGFjcXU= IHJlZmxlY3Q= dmVudWU= IGZpcm0= IGJpcnRo XS4= IGNsZWFybHk= IGVtb3Q= IGFnZW5jeQ== cmlhZ2U= IG1lbW9yeQ== OTg= U0E= IFNlZQ== YWNpbmc= Q0M= IGJpZ2dlc3Q= IHJhcA== IGJhc2lj IGJhbmQ= ZWF0 IHN1c3BlY3Q= IE1hYw== IDkw bWFyaw== aXN0YW4= IHNwcmVhZA== YW1z a2k= YXN5 cmF2 IFJvYmVy IGRlbW9uc3Ry cmF0ZWQ= IGFic29sdXRl IHBsYWNlcw== IGltcGw= aWJyYXJ5 IGNhcmRz IGRlc3Ryb3k= IHZpcnQ= dmVyZQ== IGFwcGVhcmVk eWFu cG9pbnQ= IGJlZw== IHRlbXBlcg== c3Bl YW50ZWQ= ZWFycw== IERpcmVjdA== IGxlbmd0aA== IGJsb2c= YW1i IGludGVn IHJlc291cmNlcw== YWNj aWZ1bA== IHNwb3Q= IGZvcmNlZA== IHRob3VzYW5kcw== IE1pbmlzdGVy IHF1YWw= IEZyZW5jaA== YXRpY2FsbHk= IGdlbmVyYWxseQ== IGRyaW5r IHRodXM= SUw= b2Rlcw== IGFwcHJvcHJp IFJlYWQ= IHdob20= IGV5ZQ== IGNvbGxlZ2U= IDQ1 aXJlY3Rpb24= IGVuc3VyZQ== IGFwcGFyZW50 aWRlcnM= IHJlbGlnaW91cw== IG1pbm9y b2xpYw== IHRybw== IFdoeQ== cmlidXRl bWV0 IHByaW1hcnk= IGRldmVsb3BlZA== IHBlYWNl IHNraW4= c3Rl YXZh IGJsdWU= IGZhbWlsaWVz IGly IGFwcGx5 IGluZm9ybQ== IFNtaXRo Q1Q= aWk= IGxpbWl0 IHJlc2lzdA== Li4uLi4uLi4uLi4uLi4uLg== dW1u IGNvbmZsaWM= IHR3ZQ== dWRk IFRvbQ== IGxpdGVy cXVl Ym9u IGhhaXI= IGV2ZW50dWFsbHk= IHB1cw== IGhlbHBlZA== IGFnZw== b3JuZXk= IEFwcGxl IGZpdA== IFN1cg== IHByZW0= IHNhbGVz IHNlY29uZHM= IHN0cmVuZ3Ro IGZlZWxpbmc= v70= IHRvdXI= IGtub3dz b29t IGV4ZXJj IHNvbWV3 77+9 Pj4= IHNwb2tlcw== IGlkZWFz IHJlZ2lzdA== c29mdA== IERlbA== IFBD IHByb3Bvcw== IGxhdW5jaA== IGJvdHRvbQ== VEg= IFBsZWFzZQ== dmVzdA== aXR6 IEludGVy IHNjcmlwdA== IHJhdA== YXJuaW5n IGls IEplcg== IEFyZQ== IHdoYXRldmVy b2tlbg== Y2llbmNl IG1vZGU= IGFncmVl IHNvdXJjZXM= IGluaXRpYWw= IHJlc3RyaWN0 IHdvbmRlcg== dXNpb24= IyMjIw== IFNpbA== dmlsbGU= IGJ1cm4= dHc= YXNpb24= IMKj IG5vcg== dWluZw== IHJlYWNoZWQ= IHN1bg== IGNhdGVn aWdyYXRpb24= IGNvb2s= IHByb21vdA== IG1hbGU= IGNsaW1hdGU= IGZpeA== IGFsbGVnZWQ= VVI= YWxsZWQ= IGltYWdlcw== Q29udA== b3Rh IHNjaG9vbHM= aW9z IGRyb3A= IHN0cmVhbQ== IE1v IHByZXZpb3VzbHk= YWxpbmc= IHBldA== IGRvdWJsZQ== IChA YW5uZWw= IGRlZmF1bHQ= dGllcw== IHJhbms= IERlYw== IENvdW5jaWw= IHdlYXBvbg== IHN0b2Nr IGFuYWx5 IFN0cg== IHBpY3R1cmU= IFBvbGljZQ== ZmVyZW5jZQ== IGNlbnR1cnk= IGNpdGl6ZW5z IG9udG8= IGV4cGFuZA== IGhlcm8= IFNvbA== IHdpbGQ= IHVwZGF0ZQ== IGN1c3RvbWVycw== cm9udA== ZGVm IGxpaw== IGNyaW1pbmFs IENocmlzdGlhbg== U1A= NzY= IGxlYXZpbmc= IG90aGVyd2lzZQ== IERpc3Q= IGJhc2lz NTI= NTM= aWNpcA== IEJlcg== IHJlY29tbWVuZA== IGZsb29y IGNyb3dk b2xlcw== IDcw IGNlbnRyYWw= IEV2 IGRyZWFt IGRvd25sb2Fk IGNvbmZpcg== IFRob20= IHdpbmRvdw== IGhhcHBlbnM= IHVuaXQ= IHRlbmQ= IHNwbA== IGJlY29tZXM= IGZpZ2h0aW5n IHByZWRpY3Q= IFByZXNz IFBvd2Vy IGhlYXZ5 YWtlZA== IGZhbg== b3J0ZXI= YXRlZ3k= QkE= aXplcw== IHNwZW5k SGVyZQ== IDIwMDc= IGFkb3A= IEhhbQ== IGZvb3RiYWxs IFBvcnQ= b2RheQ== NTE= YW1waW9ucw== IHRyYW5zZmVy aHQ= IDM4 dGVybQ== YWNpdHk= IGJ1cg== XSw= dGVybmFs cmln YnV0 IHRoZXJlZm9yZQ== IEJlY2F1c2U= cmVzcA== cmV5 IG1pc3Npb24= U29tZQ== IG5vdGVk IGFzc3Vt IGRpc2Vhc2U= IGVkaXQ= IHByb2dyZXNz cmQ= IEJyb3du b2NhbA== IGFkZGluZw== IHJhaXNlZA== IEFueQ== IHRpY2s= IHNlZWluZw== IFBlb3BsZQ== IGFncmVlbWVudA== IHNlcnZlcg== IHdhdA== IGRlYmF0ZQ== IHN1cHBvc2Vk aWxpbmc= IGxhcmdlc3Q= IHN1Y2Nlc3NmdWw= IFByaQ== IERlbW9jcmF0aWM= IGp1bXA= IFN5cmlh IG93bmVycw== IG9mZmVycw== IHNob290aW5n IGVmZmlj c2V5 IGhhdmVu dmVyc2U= dGVyZWQ= IExpZ2h0 aW1hbA== IEJpZw== IGRlZmVuZA== IGJlYXQ= IHJlY29yZHM= JSk= IHNjZW4= IGVtcGxveWVlcw== IGRldmljZXM= aGVt IGNvbW1lcg== IE1leA== IGJlbmVmaXQ= IFByb2Y= IGlsbGVn IHN1cmZhY2U= IEFsc28= IGhhcm0= aW5nbHk= d2lkZQ== IEFsZXg= IHNodXQ= IEN1cg== IGxvc2U= cG0= IGNoYWxsZW5nZQ== c2VtYg== IHN0YXRpb24= IGludGVsbGlnZW5jZQ== IGFjY3Vy IEZsb3I= IHJlcXVpcmVz IE1hbA== YnVt IGhvc3BpdGFs IHNwaXJpdA== IG9mZmVyZWQ= IHByb2R1Y2U= IENvbW11bg== IGNyZWF0aW5n IGNyaXM= c3BlY3Q= IGVuZGVk IGRhaWx5 IHZvdGVycw== bGFuZHM= aWFz aWg= b25h IHNtYXJ0 IE9mZmljZQ== IExvcmQ= cmlhbA== IEludGVybmV0 IGNpcmN1bQ== IGV4dHJlbWVseQ== Jy4= IG9waW5pb24= IE1pbA== IGdhaW4= QlM= IEZpbg== eXA= IHVzZWZ1bA== IGJ1ZGdldA== IGNvbWZvcnQ= aXNm IGJhY2tncm91bmQ= ZWxpbmU= IGVwaXNvZGU= IGVuZW15 IHRyaWFs IGVzdGFibGlzaA== ZGF0ZQ== IENhcA== IGNvbnRpbnVlcw== IHNob3dpbmc= IFVuaW9u d2l0aA== IHBvc3RlZA== IFN5c3RlbQ== IGVhdA== cmlhbg== IHJpc2U= IEdlcm1hbnk= aWxz IHNpZ25lZA== IHZpbGw= IGdyYW5k bW9y IEVuZ2xhbmQ= IHByb2plY3Rz dW1iZXI= IGNvbmZlcmVuY2U= emE= IHJlc3BvbnNpYmxl IEFyYWI= IGxlYXJuZWQ= 4oCU4oCU aXBwaW5n IEdlb3JnZQ== T0M= IHJldHVybmVk IEF1c3RyYWxpYQ== IGJyaWVm UXU= IGJyYW5k aWxsaW5n YWJsZWQ= IGhpZ2hlc3Q= IHRyYWlu IENvbW1pc3Npb24= d2hpbGU= IG5vbQ== Y2VwdGlvbg== IG11dA== IEJsdWU= IGluY2lkZW50 dmFudA== ODY= IElE IG51Y2xlYXI= NzQ= IExpa2U= IFJF IE1pY3Jv bGk= bWFpbA== IGNoYXJnZXM= ODk= IGFkanVzdA== YWRv IGVhcnRo TkE= IHByaWNlcw== UEE= IGRyYWZ0 IHJ1bnM= IGNhbmRpZGF0ZQ== ZW5zZXM= IG1hbmFnZW1lbnQ= IFBoaWw= IE1pc3M= IHRlYWNo Z3JhbQ== IHVuZGVyc3RhbmRpbmc= YWl0 aWNhZ28= QWRk IEVw c2VjdXQ= IHNlcGFyYXRl IGluc3RhbmNl IGV0aA== IHVubGVzcw== KioqKioqKio= IEZvcmU= aW5hdGU= IG9wZXJhdGlvbnM= U3A= IGZhaXRo Z2Fy IENodXJjaA== cm9uaWM= IGNvbmZpZw== b3N1cmU= IGFjdGl2aXRpZXM= IHRyYWRpdGlvbmFs IDM2 IGRpcmVjdGlvbg== IG1hY2hpbmU= IHN1cnJvdW5k IHB1c2g= dW5jdGlvbg== IEVV IGVhc2llcg== IGFyZ3VtZW50 R0I= IG1pY3Jv IHNwZW5kaW5n aXphdGlvbnM= IHRoZW9yeQ== YWRvdw== IGNhbGxpbmc= IExhc3Q= IGRlcg== IGluZmx1ZW5jZQ== IGNvbW1pdA== IHBob3Rv IHVuYw== aXN0cnk= Z24= YXN0ZQ== YWNrcw== IGRpc3A= YWR5 ZG8= IEdvb2Q= IGA= IHdpc2g= IHJldmVhbGVk wqDCoA== bGln IGVuZm9yY2U= IENvbW1pdHRlZQ== IGNoZW0= IG1pbGVz IGludGVyZXN0ZWQ= IHNvbHV0aW9u aWN5 aW5jdA== IC0+ IERldA== IHJlbW92ZWQ= IGNvbXBhcg== ZWFo IHBsYW50 IFNpbmNl IGFjaGlldmU= IGFkdmFudGFnZQ== IHNsaWdodGx5 YmluZw== IHBsYWNlZA== dW5kZXI= MjAxNQ== IE1hZA== IHRpbQ== b3Nlcw== IGNydQ== IFJvY2s= IG1vc3RseQ== IG5lZ2F0aXZl IHNldHRpbmc= IHByb2R1Y2Vk IG11cg== IGNvbm5lY3Rpb24= IE1lcg== IGRyaXZlcg== IGV4ZWN1dGl2ZQ== IGFzc2F1bHQ= IGJvcm4= IFZlcg== dGFpbmVk IHN0cnVjdHVyZQ== IHJlZHVjZQ== IGRlY2FkZXM= IGRlZA== dWtl IE1hbnk= aWRkZW4= IGxlYWd1ZQ== U2U= IGpvaW4= IGRpc2Nv IGRpZQ== Y2tz YWN0aW9ucw== IGFzc2Vzcw== YWdu IGdvYWxz b3Vycw== SVI= IHNlbmlvcg== aWxsZXI= bW9k aXBtZW50 b2NvbA== dXk= IFF1ZQ== IHBhcnRpZXM= aXJnaW4= IGxlYXJuaW5n aXRhYmxl IHN0cmVldA== IGNhbWVyYQ== QXBw IHNraWxscw== YnJl Y2lvdXM= IGNlbGVicg== IEZyYW5j IGV4aXN0aW5n IHdpbGxpbmc= bG9y IGlk IFNwYWNl IGNyaXRpY2Fs IExh b3J0dW5hdGVseQ== IHNlcnZl IGNvbGQ= IHNwZWNpZXM= VFM= IGFuaW1hbHM= IEJheQ== IG9sZGVy IFVuZGVy ZXN0aWM= IFRyZQ== IHRlYWNoZXI= IHByZWZlcg== dmlz IHRocmVhZA== IE1hdHQ= IG1hbmFnZXI= 44O7 IHByb2Zlc3Npb25hbA== IFZvbA== IG5vdGVz VGhlc2U= dWxh IGZyZXNo ZW50ZWQ= dXp6 ZWR5 Y2x1c2lvbg== IFJlbA== IGRvdWJ0 RU8= IG9wZW5lZA== IEJpdA== QWR2ZXJ0aXNlbWVudA== IGd1ZXNz IFVO IHNlcXU= IGV4cGxhaW4= b3R0ZW4= IGF0dHJhY3Q= YWtz IHN0cmluZw== IGNvbnRleHQ= b3NzaWJsZQ== IFJlcHVibGljYW5z IHNvbGlk IGNpdGllcw== IGFza2luZw== IHJhbmRvbQ== dXBz dXJpZXM= YXJhbnQ= ZGRlbg== Z2w= IEZsb3JpZGE= IGRlcGVuZA== IFNjb3R0 IDMz IGlU aWNvbg== IG1lbnRpb25lZA== IDIwMDA= IGNsYWltZWQ= IGRlZmluaXRlbHk= dWxm IGNvcmU= IG9wZW5pbmc= IENvbnN0 d2hpY2g= IFRyYQ== QUc= NzI= IGJlbGlldmVk YWRh IDQ4 IFNlY3VyaXR5 eXJpZ2h0 IFBldA== IExvdQ== IGhvbGRpbmc= PT09PT09PT09PT09PT09PQ== IGljZQ== IGJyb3c= IGF1dGhvcml0aWVz aG9zdA== d29yZA== IHNjb3Jl IERpdg== IGNlbGxz IHRyYW5zbA== IG5laWdoYm9y IHJlbW92ZQ== dWN0 IGRpc3RyaWN0 IEFjY29yZGluZw== IHdvcnNl IGNvbmNlcm5z IHByZXNpZGVudGlhbA== IHBvbGljaWVz IEhhbGw= NzM= IGh1cw== QVk= IDIwMDY= IEp1ZA== IGluZGVwZW5kZW50 IEp1c3RpY2U= aWxpYXI= cHJpbnQ= aWdodGVy IHByb3RlY3Rpb24= emVu IHN1ZGRlbg== aG91c2U= IEplcw== UFI= IEluZg== IGJ1bA== IF8= IFNlcnZpY2U= IFBS IHN0cmF0ZWd5 ZmZlY3Q= IGdpcmxz IG1pc3Npbmc= b3lhbA== IFRlYW0= dWxhdGVk IGRhdA== IHBvbGl0aWNz YWJvcg== QWNjb3JkaW5n IHNwZWxs IGdyYXBo b3J0aGVybg== VEM= QWI= IGxhYm9y aXNoZXI= IGtpY2s= IGlUdW5lcw== IHN0ZXBz cG9zZXM= IHNtYWxsZXI= RW4= YmVydA== IHJvbGw= IHJlc2VhcmNoZXJz IGNsb3NlZA== IHRyYW5zcG9ydA== IGxhd3k= X19fX19fX19fX19fX19fXw== IENoaWNhZ28= IGFzcGVjdA== IG5vbmU= IG1hcnJpYWdl OTY= IGVsZW1lbnRz IEZyZQ== IFNhbA== IGRyYW0= RkM= dG9w ZXF1 IGhlYXJpbmc= IHN1cHBvcnRlZA== IHRlc3Rpbmc= Y29ob2w= IG1hc3NpdmU= IHN0aWNr IGd1YXJk aXNjbw== cGhvbmU= RnJvbQ== SG93ZXZlcg== IGJvcmRlcg== IGNvcHk= b2dyYXBoeQ== bGlzdA== NzE= IG93bmVy Y2xhc3M= cnVpdA== cmF0ZQ== IE9uY2U= IGRpZ2l0YWw= IHRhc2s= RVJT IGluY3JlZA== dGVz Kys= IEZyYW5jZQ== IGJyZWF0 b3ds IGlzc3VlZA== IFdlc3Rlcm4= IGRldGVjdA== IHBhcnRuZXJz IHNoYXJlZA== IENhbGw= IGNhbmNlcg== YWNoZQ== cmliZQ== IGV4cGxhaW5lZA== IGhlYXQ= eyI= IGludmVzdG1lbnQ= IEJvb2s= IHdvb2Q= IHRvb2xz IEFsdGhvdWdo IGJlbGllZg== IGNyaXNpcw== IGdl IE1Q IG9wZXJhdGlvbg== dHlwZQ== fn4= Z2E= IGNvbnRhaW5z YW50YQ== IGV4cHJlc3M= IEdyb3Vw IEpvdXJuYWw= a2E= IGFtYg== IFVTQQ== IGZpbmRpbmc= IGZ1bmRpbmc= aG93 IGVzdGFibGlzaGVk aWRlb3M= IGRlZ3JlZQ== IGRhbmdlcm91cw== YW5naW5n IGZyZWVkb20= cHBvcnQ= b3V0aGVybg== IGNodXJjaA== IGNhdGNo IFR3bw== IHByZXNlbmNl IEd1YXJk VXA= IGF1dGhvcml0eQ== IFByb2plY3Q= IGJ1dHRvbg== IGNvbnNlcXU= IHZhbGlk IHdlYWs= IHN0YXJ0cw== IHJlZmVyZW5jZQ== IE1lbQ== Iik= VU4= b3JhZ2U= IE9wZW4= IGNvbGxlY3Rpb24= eW0= Z2VuY3k= IGJlYXV0aWZ1bA== cm9z IHRlbGxz IHdhaXRpbmc= bmVs IHByb3ZpZGluZw== IERlbW9jcmF0cw== IGRhdWdodGVy IG1hc3Rlcg== IHB1cnBvc2Vz IEphcGFuZXNl IGVxdWFs IHR1cm5z IGRvY3VtZW50cw== IHdhdGNoaW5n UmVz IHJhbg== MjAxNA== IHJlamVjdA== IEtvcmVh IHZpY3RpbXM= TGV2ZWw= ZXJlbmNlcw== IHdpdG5lc3M= IDM0 IHJlZm9ybQ== Y29taW5n IG9jY3Vw IGNhdWdodA== IHRyYWZmaWM= YWRpbmc= IG1vZGVscw== YXJpbw== IHNlcnZlZA== IGJhdHRlcg== dWF0ZQ== IFNlY3JldGFyeQ== IGFncmVlZA== IHRydWx5 eW5hbQ== IFJldA== IHVuaXRz IFJlc2VhcmNo aGFuZA== YXppbmU= IE1pa2U= IHZhcmlldHk= b3RhbA== IGFtYXppbmc= IGNvbmZpcm1lZA== IGVudGlyZWx5 IHB1cmNoYXNl IGVsZW1lbnQ= IGNhc2g= IGRldGVybWluZQ== RGU= IGNhcnM= IFdhbGw= 4pY= IHZpZXdz IGRydWdz IGRlcGFydG1lbnQ= IFN0ZXA= dWl0 IDM5 YXN1cmU= IENsYXNz IGNvdmVyZWQ= IEJhbms= IG1lcmU= dWFuYQ== IG11bHRp IG1peA== IHVubGlrZQ== bGV2aXNpb24= IHN0b3BwZWQ= IHNlbQ== IEdhbA== dWxlcw== IHdlbA== IEpvaG5zb24= bGE= IHNraWxs IGJlY29taW5n cmll IGFwcHJvcHJpYXRl ZmU= ZWxsb3c= IFByb3Q= dWxhdGU= b2NhdGlvbg== IHdlZWtlbmQ= b2RpZXM= IHNpdGVz IGFuaW1hbA== IFRpbQ== IHNjYWxl IGNoYXJnZWQ= IGluc3RydWN0 aWxsYQ== IG1ldGhvZHM= IGNlcnQ= IGp1ZGdl IEhlbA== IGRvbGxhcnM= IHN0YW5kaW5n IFNxdQ== IGRlYnQ= bGlhbQ== IGRyaXZpbmc= IFN1bQ== IEVkaXRpb24= IGFsYnVt YW5kb24= SUY= IFVr NjM= YWRlcg== IGNvbW1lcmNpYWw= ZXNo IEdvdmVybm1lbnQ= IGRpc2NvdmVyZWQ= IG91dHB1dA== IEhpbGxhcnk= IENhcm9s IDIwMDU= IGFidXNl YW5jaW5n IHN3aXRjaA== IGFubnVhbA== VHc= IHN0YXRlZA== YWdlbWVudA== aW5uZXI= IGRlbW9jcg== IHJlc2lkZW50cw== IGFsbG93aW5n IGZhY3RvcnM= b2Rk IGZ1Y2s= ZW1pZXM= IG9jY3VycmVk b3Rp IG5vcnRo IFB1YmxpYw== IGluanVyeQ== IGluc3VyYW5jZQ== Q0w= b2xseQ== 44A= IHJlcGVhdGVk IGFybXM= YW5nZWQ= IGNvbnN0cnVjdGlvbg== IGZsZQ== UFU= aWNpYW5z IGZvcm1z IE1jQw== YW50aWM= IG1lbnRhbA== cGlyZQ== IGVxdWlwbWVudA== IGZhbnQ= IGRpc2N1c3Npb24= IHJlZ2FyZGluZw== a2lu YXJw IGNoYWly b2d1ZQ== IHByb2NlZWQ= IElk T3Vy IG11cmRlcg== TWFu IDQ5 YXNw IHN1cHBseQ== IGlucHV0 IHdlYWx0aA== bGlhbWVudA== IHByb2NlZA== b3JpYWw= IFN0YXQ= IE5GTA== aGVucw== IEluc3RpdHV0ZQ== IHB1dHRpbmc= b3VybmFtZW50 ZXRpYw== IGxvY2F0ZWQ= IGtpZA== ZXJpYQ== cnVu IHByaW5j ICE= Z29pbmc= IEJldA== IGNsb3Q= IHRlbGxpbmc= IHByb3Bvc2Vk aW90 b3JyeQ== IGZ1bmRz Z21lbnQ= IExpZmU= IGJhYnk= IEJhY2s= IHNwb2tl SW1hZ2U= IGVhcm4= IEFU Z3U= IGV4Y2hhbmdl IExpbg== b3Zpbmc= IHBhaXI= TW9yZQ== YXpvbg== IGFycmVzdGVk IGtpbGxpbmc= Y2Fu IENhcmQ= eWQ= IGlkZW50aWZpZWQ= IG1vYmlsZQ== IHRoYW5rcw== b255bQ== IEZvcm0= IGh1bmRyZWRz IENocmlz IENhdA== IHRyZW5k aGF0 IEF2 b21hbg== IGVsZWN0cmlj IFdpbA== U0U= T2Y= IHJlc3RhdXI= b3RlZA== IHRyaWc= IG5pbmU= IGJvbWI= V2h5 wq8= IGNvdmVyYWdl IGFwcGVhbA== IFJvYmVydA== IFN1cA== IGZpbmlzaGVk IGZsb3c= IGRlbGl2ZXI= IGNhbGN1bA== IHBob3Rvcw== IHBoaWw= IHBpZWNlcw== IGFwcHJl a2Vz IHJvdWdo RG8= IHBhcnRuZXI= IGNvbmNlcm5lZA== IDM3 IEdlbg== Q29s Y3RvcnM= ID0+ c3RhdGU= IHN1Z2dlc3RlZA== IEZvcmNl Q0U= IGhlcnNlbGY= IFBsYW4= d29ya3M= b290aA== cmVuY3k= IGNvcm5lcg== IGh1c2JhbmQ= IGludGVybmV0 IEF1dA== ZW1z b3Nlbg== IEF0bA== Z2Vu IGJhbGFuY2U= NjI= IHNvdW5kcw== dGV4dA== IGFycg== b3Zlcw== IG1pbGxpb25z IHJhZGlv IHNhdGlzZg== IERhbQ== TXI= R28= U3Bl IGNvbWJhdA== cmFudA== IEdyZWU= IGZ1ZWw= IGRpc3RhbmNl IHRlc3Rz IGRlY3Jl IEVy IG1hbmFnZWQ= RFM= IHRpdA== IG1lYXN1cmVz IExpYmVy IGF0dGVuZA== YXNoZWQ= IEpvc2U= IE5pZ2h0 ZGl0 IE5vdg== IEVuZA== b3V0cw== IGdlbmVyYXRpb24= IGFkdm9j eXRo IGNvbnZlcnNhdGlvbg== IFNreQ== YWN0aXZl Y2Vs cmllcg== IEZyYW5r IGdlbmRlcg== IGNvbmNlbnQ= IGNhcnJpZWQ= YW5kYQ== IFZpcmdpbg== IGFycml2ZWQ= aWNpZGU= YWRlZA== IGZhaWx1cmU= IG1pbmltdW0= bGV0cw== IHdvcnN0 IGtlZXBpbmc= IGludGVuZGVk IGlsbGVnYWw= IHN1YnNj IGRldGVybWluZWQ= IHRyaXA= WWVz IHJhaXNl IH4= IGZlZWxz IHBhY2thZ2U= IEpv aGk= MjAxNg== cmVhbA== IGZyYQ== IHN5bWI= TWU= dWNreQ== cHJldA== IEto IEVkaXQ= IFdlYg== ZW1pYw== IENvbG9y IGp1c3RpY2U= SW50 IGZhcm0= Y2tub3c= Ij4= ZWxlc3M= IHJlZHVjZWQ= IDUwMA== eHg= IFJhZA== IFdvb2Q= IGNsaW4= IGh5cA== aWxlcg== dXJh a2lucw== ODU= NjE= IFRoZWly IE1hcnk= IHNhbg== IG5vdmVs IFdobw== IGNhcGFjaXR5 IGltcG9zc2libGU= IHBsYXlz IG1pbmlzdGVy aWp1YW5h aWNhdGU= IFNldA== IGZyYW0= IGluZw== IGNvbW11bml0aWVz IEZCSQ== aXRh IGJvbg== IHN0cmF0ZWc= IGludGVyZXN0cw== bG9jaw== Z2Vycw== bWFz IEFORA== IGNvbmZsaWN0 IHJlcXVpcmVtZW50cw== IHNhYw== IG9wZXJhdGluZw== aW5p cmVsYXRlZA== IGNvbW1pdHRlZA== IHJlbGF0aXZlbHk= IHNvdXRo wq/Crw== IGFmZm9yZA== IGlkZW50aXR5 IGRlY2lzaW9ucw== IGFjY3VzZWQ= cGxhY2U= IHZpY3Rvcnk= b2No aWF0 TmFtZQ== Q29t dGlvbg== ZWRz IHNlZWs= IHRpZ2h0 IEltYWdlcw== IGluaXRp IGh1bWFucw== IGZhbWlsaWFy IGF1ZGllbmNl IGludGVybmFs dmVudHVyZQ== IHNpZGVz IFRP IGRpbQ== IGNvbmNsdWQ= IGFwcG9pbnQ= IGVuZm9yY2VtZW50 IEppbQ== IEFzc29jaWF0aW9u IGNpcmN1bXN0 IENhbmFkaWFu IGpvaW5lZA== IGRpZmZlcmVuY2Vz IExvcw== IHByb3Rlc3Q= IHR3aWNl d2lu IGdsYXNz YXJzaA== IEFybXk= IGV4cHJlc3Npb24= IGRlY2lkZQ== IHBsYW5uaW5n YW5pYQ== IGhhbmRsZQ== IE1pY3Jvc29mdA== IE5vcg== IG1heGltdW0= IFJldg== IHNlYQ== IGV2YWw= IGhlbHBz cmVm IGJvdW5k IG1vdXRo IHN0YW5kYXJkcw== IGNsaW0= IENhbXA= IEZveA== Y2xlcw== IGFybXk= IFRlY2hu YWNraW5n eHk= U1M= IDQy IGJ1Zw== IFVrcmFpbg== IE1heA== IEpvbmVz IFNob3c= bG8= IHBsYW5ldA== IDc1 IHdpbm5pbmc= IGZhc3Rlcg== IHNwZWN0 IGJyb2tlbg== VFI= IGRlZmluZWQ= IGhlYWx0aHk= IGNvbXBldGl0aW9u aHR0cHM= IElzbGFuZA== IEZl IGFubm91bmNl IEN1cA== IEluc3RlYWQ= IGNsaWVudA== IHBvc3NpYmx5 c2VjdGlvbg== b2NrZXQ= bG9vaw== IGZpbmlzaA== IGNyZXc= IHJlc2Vydg== IGVkaXRvcg== IGhhdGU= IHNhbGU= IGNvbnRyb3ZlcnM= IHBhZ2Vz d2luZw== IG51bWVy IG9wcG9zaXRpb24= IDIwMDQ= IHJlZnVnZQ== IGZsaWdodA== IGFwYXJ0 IExhdA== QW1lcmlj IEFmcmljYQ== IGFwcGxpY2F0aW9ucw== IFBhbGVzdA== IEJ1cg== IGdhcg== IFNvY2lhbA== IHVwZ3I= IHNoYXBl IHNwZWFraW5n YW5zaW9u YW8= IFNu IHdvcnJ5 IEJyaXRhaW4= UGxlYXNl cm91ZA== IGh1bg== IGludHJvZHVjZWQ= IGRpZXQ= SW5k IFNlY29uZA== IGZ1bmN0aW9ucw== dXRz IEVhY2g= IEplZmY= IHN0cmVzcw== IGFjY291bnRz IGd1YXJhbnQ= IEFubg== ZWRpYQ== IGhvbmVzdA== IHRyZWU= IEFmcmljYW4= IEJ1c2g= fSw= IHNjaA== IE9ubHk= IGZpZg== aWdhbg== IGV4ZXJjaXNl IEV4cA== IHNjaWVudGlzdHM= IGxlZ2lzbGF0aW9u IFdvcms= IFNwcg== w4I= IEh1bWFu IOg= IHN1cnZleQ== IHJpY2g= cmlw IG1haW50YWlu IGZsbw== IGxlYWRlcnNoaXA= c3RyZWFt IElzbGFtaWM= IDAx IENvbGxlZ2U= IG1hZ2lj IFByaW1l IGZpZ3VyZXM= MjAxNw== aW5kZXI= eHVhbA== IERlYWQ= IGFic29sdXRlbHk= IGZvdXJ0aA== IHByZXNlbnRlZA== cmVzcG9uZA== cmlibGU= IGFsY29ob2w= YXRv IERF cG9yYXJ5 IGdyYWI= IHZhcmk= IHF1YW50 IFBob3Rv IHBsdXM= cmljaw== YXJrcw== IGFsdGVybmF0aXZl IHBpbA== IGFwcHJveA== dGhhdA== IG9iamVjdHM= IFJv IEFuZHJvaWQ= IHNpZ25pZmljYW50bHk= IFJvYWQ= a2F5 UmVhZA== YXZvcg== IGFja25vdw== IEhE IFNpbmc= T3I= IE1vbnQ= IHVucw== cHJvZg== IG5lZ290aQ== IEFyY2g= aWtp IHRlbGV2aXNpb24= IEpld2lzaA== IGNvbW1pdHRlZQ== IG1vdG9y IGFwcGVhcmFuY2U= IHNpdHRpbmc= IHN0cmlrZQ== IERvd24= Y29tcA== IEhpc3Q= IGZvbGQ= YWNlbWVudA== IExvdWlz IGJlbG9uZw== IOKAog== IG1vcnQ= IHByZXBhcmVk IDY0 IE1hc3Rlcg== IGluZGVlZA== IERlbg== IHJlbnQ= VEE= b3VybmV5 YXJj U3U= OTc= IGFkdmljZQ== IGNoYW5naW5n IGxpc3RlZA== IGxhdW5jaGVk aXNhdGlvbg== IFBldGVy aXNoZXM= IGxpdmVk IE1lbA== IFN1cHJlbWU= IEZlZGVyYWw= ICk7 cnVjdHVyZQ== IHNldHM= IHBoaWxvcw== dW91cw== IMKg IGFwcGxpZWQ= IE5PVA== IGhvdXNpbmc= IE1vdW50 IG9kZA== IHN1c3Q= REE= ZmZpY2llbnQ= ID8= b2x2ZWQ= IHBvd2Vycw== IHRocg== IHJlbWFpbmluZw== IFdhdGVy TEM= IGNhdXNlcw== 44Gu IG1hbm5lcg== YWRz IHN1Z2dlc3Rz IGVuZHM= c3RhbmRpbmc= Zmln IER1bg== aWR0aA== IGdheQ== IHRlcm1pbg== IEFuZ2VsZXM= TVM= IHNjaWVudGlmaWM= IGNvYWw= YXBlcnM= YmFy IFRob21hcw== IHN5bQ== IFJ1bg== dGhpcw== UEM= aWdyYW50cw== IG1pbnV0ZQ== IERpc3RyaWN0 Y2VsbGVudA== IGxlYXZlcw== IGNvbXBsZXRlZA== YW1pbg== IGZvY3VzZWQ= IG1vbml0b3I= IHZlaGljbGVz TUE= IE1hc3M= IEdyYW5k IGFmZmVjdGVk aXR1dGlvbmFs IGNvbnN0cnVjdA== IGZvbGxvd3M= IHRvbg== cmVlbnM= IGhvbWVz IEV4dA== IExldmVs cmFzdA== IEly IGVsaW0= IGxhcmdlbHk= IEpvZQ== IHZvdGVz YWxscw== IGJ1c2luZXNzZXM= IEZvdW5kYXRpb24= IENlbnRyYWw= IHlhcmRz IG1hdGVyaWFscw== dWxuZXI= IGd1aWRl IGNsb3Nlcg== dW1z IHNwb3J0cw== ZWRlcg== SnVzdA== IHRheGVz ODQ= IE9sZA== IGRlY2FkZQ== b2xh IHZpcg== IGRyb3BwZWQ= IGRlbGF5 aXRlY3Q= IHNlY3VyZQ== c3RlaW4= bGV2ZWw= IHRyZWF0ZWQ= IGZpbGVk YWluZQ== IHZhbg== IG1pcg== IGNvbHVtbg== aWN0ZWQ= ZXBlcg== IHJvdA== IGNvbnN1bHQ= IGVudHJ5 IG1hcmlqdWFuYQ== IERvdQ== IGFwcGFyZW50bHk= b2tpbmc= Y2x1c2l2ZQ== IGluY3JlYXNlcw== YW5v IHNwZWNpZmljYWxseQ== IHRlbGU= ZW5zaW9ucw== IHJlbGlnaW9u YWJpbGl0aWVz IGZyYW1l IE5vdGU= IExlZQ== IGhlbHBpbmc= IGVkZ2U= b3N0b24= IG9yZ2FuaXphdGlvbnM= w4M= IEJvdGg= aGlwcw== IGJpZ2dlcg== IGJvb3N0 IFN0YW5k IHJvdw== dWxz YWJhc2U= IHJpZA== TGV0 YXJlbg== cmF2ZQ== IHN0cmV0 UEQ= IHZpc2lvbg== IHdlYXJpbmc= IGFwcHJlY2k= IGF3YXJk IFVzZQ== IGZhY3Rvcg== d2Fy dWxhdGlvbnM= KSg= IGdvZA== IHRlcnJpdA== IHBhcmFt YXN0cw== ODc= IGVuZW1pZXM= IEdhbWVz RkY= IGFjY2lkZW50 V2VsbA== IE1hcnRpbg== VEVS IGF0aA== IEhlbGw= IGZvcmc= IHZldGVy IE1lZGlj ZnJlZQ== IHN0YXJz IGV4cGVuc2l2ZQ== IGFjYWQ= cmF3bg== IFdoZQ== IGxvY2s= IGZvcm1hdA== IHNvbGRpZXJz c20= IGFnZW50 IHJlc3BvbnNpYmlsaXR5 b3Jh IFNjaWVuY2U= IHJhcGlk IHRvdWdo IEplc3Vz IGJlbGlldmVz TUw= IHdlYXI= bGV0ZQ== w4PDgg== IERyaQ== IGNvbW1pc3Npb24= IEJvYg== T2g= YXBlZA== IHdhcm0= w4PDgsODw4I= IDIwMDM= b3J0aW9u IGhhc24= dXN0ZXI= IHVuaXZlcnM= IElsbA== IGtpbmc= b2xvZ2llcw== OTQ= IFRlbQ== IE1vcw== IHBhdGllbnQ= IE1leGljbw== Y2Vhbg== IERlYXRo IFNhbmRlcnM= eW91 IENhc3Q= IENvbXBhbnk= cHR5 IGhhcHBlbmluZw== RlA= IEJhdHRsZQ== IGJvdWdodA== QW0= TW9k VXM= dXRlcnM= IENyZQ== IFRob3Nl IDQ0 aXNlcg== IHNvdWw= IFRvcA== IEhhcnJ5 IEF3 IHNlYXQ= ZmZlZQ== IHJldm9sdXRpb24= ICgi IER1cmluZw== ZXR0ZQ== IHJpbmc= IG9mZmVuc2l2ZQ== IHJldHVybnM= IHZpZGVvcw== IGRpc2Ns IGZhbW91cw== ZW5jZWQ= IFNpZ24= IFJpdmVy IDMwMA== UE0= IEJ1cw== IENI IGNhbmRpZGF0ZXM= YXJkZW4= IHBlcmNlbnRhZ2U= IHZpc3VhbA== IHRoYW5r IHRyb3VibGU= bmVyZ3k= IDIwMDE= IHByb3Zl YXNoaW9u IGVuaA== IExvbmc= VU0= IGNvbm5lY3RlZA== IHBvc3NpYmlsaXR5 T3Zlcg== IGV4cGVydA== IGxpYnJhcnk= YXJ0cw== IERpcmVjdG9y IGZlbGxvdw== OTI= aXJ0eQ== IGRyeQ== IHNpZ25z IExvdmU= IHF1aWV0 Zm9vdA== IHB1cmU= IEh1bg== IGZpbGxlZA== cGhhcw== IEVsZWN0 ZW5kbWVudA== IEV4cGw= IHVuYWJsZQ== bnM= bW8= IHZhc3Q= b2Jl IGlkZW50aWZ5 YXBwaW5n IENhcm9saW5h Z3Jlc3M= IHByb3Rl IGZpc2g= IGNpcmN1bXN0YW5jZXM= cmF6eQ== IFBob3Q= IGJvZGllcw== IE11cg== IGRldmVsb3Bpbmc= IEFS IGV4cGVyaWVuY2Vk IHN1YnN0YW50 IEJvYXJk ZXNvbWU= IGRvbWVzdGlj IGNvbWJpbmVk IFB1dA== IGNoZW1pY2Fs IENoaWxk IHBvb2w= IEN5 IGVnZw== Y29ucw== c3RlcnM= IGh1cnQ= IG1hcmtldHM= IGNvbnNlcnZhdGl2ZQ== IHN1cHBvcnRlcnM= IGFnZW5jaWVz aWRlbA== T2I= dXJi IDQz IERlZmVuc2U= eWU= IEFw ZHVsZQ== IHRlbXBlcmF0dXJl IGNvbmR1Y3RlZA== IENoaWVm IHB1bGxlZA== IGZvbA== TGFzdA== b250bw== b3Npcw== VkVS RGVz IFBhbg== Rmlyc3Q= IGFkdmFuY2U= IGxpY2Vuc2U= cm9ycw== IEpvbg== IGltYWdpbmU= IGhlbGw= IGZpeGVk IGluY29y b3NpdGU= IExvZw== aWNrZW4= XTo= IHN1cnByaXNl aGFi IGNyYWZ0 b2x0 IEp1bA== IGRpYWw= IHJlbGV2YW50 IGVudGVyZWQ= IGxlYWRz IEFE IENsZWFu IHBpY3R1cmVz ZXNzb3I= IGFsdA== IHBheWluZw== UGVy IE1hcmtldA== IHVwZGF0ZXM= YW1pbHk= IFR5cGU= IEhvbWU= IDU1 c2VtYmx5 cm9tZQ== ODM= IGdyZWF0ZXN0 IGhlaWdodA== IGhlYXY= YWludHM= IGxpc3Rlbg== YXNlcg== IFNI IGNhcGFibGU= YWNsZQ== IHBlcnNwZWN0 aW5hdGluZw== IG9mZmVyaW5n cnlwdA== IERldmVsb3A= YWJpbg== cmM= IGJyaWdodA== YWx0eQ== YXJyb3c= IHN1cHBs aW5kaW5n YWNrZWQ= Z3lwdA== IEFub3RoZXI= cGc= IFZpcmdpbmlh IEx1 IHBsYW5uZWQ= IHBpdA== IHN3ZWV0 VHlwZQ== IERp IHR5cGljYWxseQ== IEZyYW5jaXNjbw== IHByb3NwZWN0 IERhbg== IHRlZW4= cmVlcw== IHNjaGVk IGhvbA== IHNjcg== IGxvdHM= bGlmZQ== IG5ld3Nw IGZvcmdldA== IE5vbmU= IE1pZGRsZQ== IFJ5YW4= ZWRk IHNldmVyZQ== IHN1aXQ= bGxlcg== OTM= IGNvcnJlc3BvbmQ= IGV4cGxvcw== dWF0aW9ucw== IGZsYWc= Z2FtZQ== cmlk IHByaW4= IERhdGE= IGRlcGxveQ== IEVudGVy c3VpdA== Z2hhbg== IE1lbg== IHRob3VnaHRz IG1hdHRlcnM= IGFkYXB0 IEFyaQ== IGZpbGw= IGZvcnRo IHNhbQ== IDQx IHBheW1lbnQ= IEhvcg== IHNwcmluZw== ZHVj IGxvc2luZw== IGJyaW5naW5n Rk8= YWxh IGRpc3RyaWJ1dGlvbg== aGVyZWQ= Ym91cg== IElzcmFlbGk= b21h IGNvbWJpbmF0aW9u IHBsZW50eQ== VkU= Q2Fu IEhhdw== IHBlcm1hbg== IFNwZWNpYWw= IHRvdw== IHNlZWtpbmc= IGV4YW1wbGVz IGNsYXNzZXM= Y3I= IGJlZXI= IG1vdmVz IElQ IEtu IHBhbmVs RXZlbg== IHByb3Blcmx5 IHJpcw== IHBsdWc= IGVzdGltYXRlZA== RXZlcnk= IGRlZmVuc2l2ZQ== YWdyYXBo IHByZWdu IGluc3RpdA== IFZpY3Q= IHZvbHVtZQ== IHBvc2l0aW9ucw== IGxpbmtz IFByb2dyYW0= IFdlZWs= YWd1ZXM= IHRyYW5zZm9ybQ== a2Vy IENFTw== IGNhcw== IG9wcG9uZW50 IHR3ZWV0 IENvZGU= IHNob3A= IGZseQ== IHRhbGtz IGJhZw== UGhvbmU= IGFpZA== IHBsYW50cw== IDY1 IGF0dG9ybmV5 YXJ0ZXJz cXVlc3Q= IE1hZ2lj IGJlZ2lucw== IG15c3Rlcg== IGVudmlyb25tZW50YWw= IHN0b3JhZ2U= Tk4= IG1hcmc= IHNrZQ== IG1ldGFs ZWxseQ== IG9yZGVyZWQ= IHJlbWFpbmVk IGxvdmVk IHByb21wdA== IHVwZGF0ZWQ= IGV4cGVydHM= IHdhbGtpbmc= IGFuY2llbnQ= IHBlcmZvcm1lZA== QVRF IG5laXRoZXI= aWVuY3k= IG1hbnVmYWN0dXJl IFBhaw== IHNlbGVjdGVk IG1pbmU= IHVsdGltYXRlbHk= IGV4cGxhbg== IGxhYmVs IFNlcnZpY2Vz cmlidXRlZA== VHJ1bXA= IHN5bg== IFVsdA== U0M= IG1lYXQ= IGdpYW50 IFdhcnM= IE9O IGFkbQ== IGludGVycHJldA== IGV2ZW5pbmc= IGV2aWw= IEJvc3Rvbg== IFdpbGQ= IMM= IEJpdGNvaW4= IEFtYXpvbg== RHI= IEluZm9ybWF0aW9u IG9idmlvdXNseQ== IGFkdmFuY2Vk UGhvdG8= b2xhcg== IHdlYXRoZXI= IHN5bWJvbA== IHNvbGU= IHBvdGVudGlhbGx5 b3N0ZXI= IG9yaWdpbmFsbHk= bXVu MzAw YXpl ZXNzaW9ucw== IGRlY2s= IHN0b29k IHlvdXRo IEJlcm4= UmVw IFRlc3Q= IGJhc2ljYWxseQ== b3RpYw== IGludm9sdmU= b2xpdA== bHlu U2Vl IGFpcmNyYWZ0 IGNvbmZpcm0= RVc= IG1lc3NhZ2Vz IFJpY2hhcmQ= IGtpdA== IHByb2hpYg== IHZ1bG5lcg== aXN0ZXJz IGV4aXN0ZW5jZQ== IHR1cm5pbmc= IFNQ IGRlc2lyZQ== IGZsYXQ= IG1lbnQ= c2Vhc29u YW5nZXM= IG5laWdoYm9yaG9vZA== IExha2U= QVRJT04= IHBvaW50ZWQ= YnVy IGlubm92 dWNrcw== VUw= IHByb2Zlc3Nvcg== IGV4cHJlc3NlZA== QUI= aWNpb3Vz IDIwMDI= IERldg== IHNlc3Npb24= IGJhcmU= c2Vu IGRpc3M= IENhdGg= IFBhc3M= IFBvaW50 IGRvY3Rvcg== b3Jyb3c= YWlsZWQ= IFJ1Yg== IERD IENoYXJs cGVyc29u IHdyaXRlcg== aWdodGVycw== dXJlYXU= IG9ibGln IHJlY29yZGVk IGJyb2tl IG9yZGVycw== aWx0eQ== IG1vdGlvbg== aW5pdHk= bGF3 YWRpdW0= IGltbWlncmF0aW9u IGNvbnRyYXN0 IGJhdHQ= IGV4Y2VsbGVudA== IHRlY2huaWNhbA== YW1p IHR1bg== IGNsb3Vk IFllYXI= Z2Vvbg== IGNyZWF0aW9u IHN0cmFuZ2U= IGF1dGg= IGZvcnQ= Ym9ybg== IGV4dGVudA== IFRvZGF5 IENsdWI= IHJhaW4= IHNhbXBsZQ== IGFjY2VwdGVk IHRhY3Q= IGZpcmVk IFNvbg== IHN0YW5kcw== IGJvb3Q= IDQ3 IHN0YXRlbWVudHM= IHZlcnNpb25z IHNlbGxpbmc= b3VuZGVk IDE5OTA= IHdlcmVu IFdhdGNo IGV4cGVyaW1lbnQ= UG9zdA== IHJldGFpbA== dWxlZA== SW5zdA== dW50ZQ== 44O8 IGRlcGFydA== IGJvbmQ= aXZlcnk= b21wbA== IHJlYWN0aW9u IFN5cmlhbg== IFBhYw== YXBwZWQ= YW5pZWw= RFA= IHJlc29sdXRpb24= IHJlYWN0 IGFwcHJvdmVk b25vbQ== bW9uZA== IE9mZmlj LS0t IHJlcGxhY2U= IHRhY2s= IHNwb3J0 IGNoYWlu IGVtZXJnZW5jeQ== cmFk IFBhbGVzdGlu IDQ2 IGF1dG9tYXRpY2FsbHk= IHJvdXRl IHBhbA== IGJhbmtz IFBhcmlz IE1lZGlh cm9hZA== aWNpbmc= aXh0 aXN0ZWQ= IGdyZXc= IGNvb3Jk IFdoZXJl b21pbg== IHN1YnM= 77+977+9 IMKx IGNvcnBvcmF0ZQ== IHNlbGVjdGlvbg== bm9vbg== IFJlcG9ydA== Y3M= Y2x1ZGluZw== b3JkZXJz YW5jaGU= IEl0cw== IHNsb3dseQ== IEVneXB0 IEFjYw== IGNvbGxl aXF1ZXM= RVg= IGF0dGVtcHRz dXJs IENyb3Nz IGZpbmRpbmdz IFND IE9S IGluZGV4 ZW5zaXR5 IFdheQ== IExhbmQ= IHNob2Nr ZGlz IGR5bmFt IGNhcnQ= bW9zcA== U2luY2U= aWVzdA== IEJveQ== IHN0b3Jt IENvbnRpbg== MjAxMw== aGV3 aWxpdA== IGVzc2VudGlhbA== aXF1aWQ= T3RoZXI= aXZlcmVk IHJlYXNvbmFibGU= QWN0 IHN1YnNlcXU= IFBhY2s= IEZvcnQ= IGNvbnNpZGVyaW5n IHVuaXZlcnNpdHk= bG9n IG1hcnJpZWQ= IGlsbHVzdA== IFRydWU= o48= IG51bWVyb3Vz cmFzdHJ1Y3R1cmU= IHNlcmlvdXNseQ== IHJlZmVycmVk dWE= IGNvbnNpc3RlbnQ= b25uYQ== IFJlYWw= cnVwdGlvbg== Y2lwbGVz IGZhY3Rz OTE= b3Rlcw== ZXJn VGhlbg== IGFjY29tcGw= Tm90ZQ== IHJldmVudWU= IHBhc3Npbmc= IG1hbA== ZWVu IFlldA== IGdhdGhlcg== dGVyZGF5 ZXdvcms= IEF1dGhvcg== UGU= IG9wdGlt IHJ1Yg== IOijjw== IHVua25vd24= c3RvbmU= IHVuaW9u b2x2ZQ== IG9wcG9ydHVuaXRpZXM= IGJyb3dzZXI= IFdhbA== IENvc3Q= IHJlcG9ydGluZw== c3Rz cGV0 IHNhbmQ= IHN1ZGRlbmx5 IHN1cnByaXNpbmc= IFZS IHNvbWV3aGF0 IEJhcw== dWx0dXJl aXp6 IENE IGNoYWxsZW5nZXM= IHNldHRpbmdz IGV4cGVyaWVuY2Vz IEZ1bGw= IGNhbm4= IHJlY2VpdmluZw== RVNU IGpvaW50 IGN1bHR1cmFs IGFzdA== ODI= YXN0ZXJu Y2VpdmVk IENydQ== IGJ1bGw= cGlyZWQ= YW1t IGZhY2luZw== cG93ZXI= IGJvc3M= IEhvbA== IGluc3Ry IGluY3JlYXNpbmdseQ== IHNoaWZ0 IHN0cmVldHM= IFdpbGxpYW1z YWJi IGxpZQ== IGxhdWdo IENh UEw= IGFkdWx0cw== IGN1c3RvbWVy IG9idGFpbmVk IHN1cHBvcnRpbmc= aHRtbA== ZmlyZQ== IGRldGFpbGVk IHBpY2tlZA== IFJpZ2h0 bGRlcg== RUU= c3Rvb2Q= IEtpbQ== IHdpcmU= IHNpZ2h0 IGRldmVsb3BlcnM= IHBlcnNvbnM= IHNhZA== IGN1cA== IHdhcm5pbmc= IGJveXM= bG9uZw== IGJpcmQ= Zm8= IHdhbA== IG9ic2VydmVk IHpvbmU= aXZlbmVzcw== IGNoYW5uZWw= Y3JpcHQ= IHJlZnVzZWQ= IEFnYWlu IHN1Yw== IHNwb2tlc21hbg== IFJlZg== cml0ZQ== b3VzdG9u 44Oz IFNoZXI= IGFjdHM= IE5hbWU= IHN0cnVnZ2xl YXJyeQ== b21ldGltZXM= IGRpc2NyaW0= SFQ= IGNhdGVnb3J5 IHJlYWxpemU= IGVtcGxveWVl IEFmZ2hhbg== ZW5nZXI= IGd1bnM= IFN0ZXZl IE1vdA== IE9s b2tlZA== IHRoaWNr IGZhaXJseQ== aWxseQ== IHN1cnZl IE1hdA== d2VpZ2h0 4pQ= IHRyb29wcw== IGFnZW50cw== IGJhdHRlcnk= IG1vdGl2 w6E= U2Vj ZGVu b3Zlcnk= TFM= IGZsdQ== IGNvbmZpZGVudA== IE9wZXI= IGVtcHR5 IHBoZW4= IHNlY3Rvcg== IGV4Y2l0ZWQ= IHJlbW90ZQ== YXBo b2Vu IGRlc3Ryb3llZA== IG1vcmFs IEhQ IFJvbg== IGRyZXNz IEJhdA== IGxpdA== IE1T IGFm SEw= cnVt aXNtcw== IHNob3VsZG4= IHN5bXB0 IFRvcm9udG8= aGV0aWM= IGNhcmJvbg== IGluc3RhbGxlZA== IHZpb2xlbnQ= IHNvbGFy amE= IHByYWN0aWNlcw== IHJpZGU= IFBlbm4= IGltcHJvdmVk IGF1ZGlv IGJlaGF2aQ== IFBT IGVhdGluZw== RGF0YQ== IFJldmlldw== cGFzcw== Y2xhaW0= dWF0ZWQ= YW5nZXJz Y2hlbg== IHByb3BlcnRpZXM= IGFueXdoZXJl QW5vdGhlcg== IGJsb3c= IEphY2tzb24= IHByb3Vk IHBsYW5l bGluZXM= IHNxdWFyZQ== IHByb29m YW5zYXM= IHRhbGtlZA== bWFrZXJz IHNpc3Rlcg== IGhvbGRz IHJlc2lkZW50 ID09 IHJlc2lzdGFuY2U= IHNwbGl0 IHByb3NlY3V0 IGNvbmZpZGVuY2U= cmVzZW50cw== IGN1dHM= IGV4Y2VwdGlvbg== IHplcm8= R2V0dHk= IGNvcHlyaWdodA== IHRvdGFsbHk= b3JtYWw= aWZpY2F0aW9ucw== IEF1c3RyYWxpYW4= IHNpY2s= IDE1MA== IGhvdXNlaG9sZA== IGZlZXM= IGRyaXZlcnM= b2dlbg== IE5Z IG5lY2Vzc2FyaWx5 IHJlZ3VsYXRpb25z ZWFyaW5n c2w= IHBlcnNwZWN0aXZl Y2FyZQ== aWNpYWw= SGlz IGVzY2FwZQ== IHN1cnByaXNlZA== IFZhbg== dXJyZW50 IHZhYw== ODE= IFRodXM= IGVtcGhhcw== IENoYW1waW9ucw== IEljZQ== IG5hcnI= IGhlYWRz IGNhdXNpbmc= YmVs Zm9ydHVuYXRlbHk= IE1h IHRhcmdldHM= Y2lwbA== IGFmdGVybm9vbg== IGFkZHM= IE1heWJl IEZvdXI= ZXNzZWQ= cGxldGU= IHVzdWFs Y2hv aW5ndQ== IHdpdGhk IEVuZXJneQ== IEVjb25vbQ== T08= IGFydGljbGVz IGluanVyZWQ= IG1hbmFnZQ== IGV4cGxhaW5z IGRpYWdu UmVj YXR1cmVz IGxpbmtlZA== IGRpc2N1c3NlZA== IGV4cGxv IG9jY2FzaW9u YXRoYW4= IG9wcG9zaXRl IGZhY2Vz IGRlbmllZA== IEtuaWdodA== IG51dA== IGFwcHJveGltYXRlbHk= IGRpc2FwcG9pbnQ= b255bW91cw== IEJlc3Q= IExv IEh5 IEFmZg== IHZvdGluZw== YW53aGlsZQ== IElJSQ== IGluc3RpdHV0aW9ucw== YWdyYW0= IERhaWx5 IGRyYWc= IG5lYXJieQ== IGd1aWx0eQ== IGNvbnZlcg== UHJl c2hpcA== IHJld2FyZA== IHBoaWxvc29waA== IFNT dWdo IGFwcHM= ZnJpZW5k IHVwcGVy IGFkdmVydA== IHNub3c= IGZydXN0 IG91cnNlbHZlcw== RnI= IERpZQ== YW1waW9u IGRpc21pc3M= IGNlcmU= IHNpZ25hbA== ZnJvbQ== ICku IDUy IGNyaW1lcw== aXRvcnM= ZXN0aXZhbA== dXNldW0= IGNvdW5jaWw= IFNhdWQ= TWF5 IEd1bg== aWNpYW4= ZXRoZXI= IHN1ZmZpY2llbnQ= IEhlbg== c29sZQ== IGhpc3RvcmljYWw= IEZhcg== IFR1cm4= IHBpbg== IHN1Y2NlZWQ= bWF0 bHltcA== IHRyYWRpdGlvbg== IE9r IGNybw== IGRlc2NyaXB0aW9u YWxsZQ== IHNreQ== VGU= IHdpZGVseQ== IHdhdmU= IGRlZmluaXRpb24= IEpld3M= IGN5Y2xl IHJlZmVyZQ== IGJyaW5ncw== dXNhbA== IGFsaXZl IGZyZXF1ZW50bHk= IGludGVudGlvbg== IENvbnRyb2w= bHY= eXN0ZW0= IHByaXZhY3k= Z2VudA== cmVuY2U= IFF1ZXN0 IENocmlzdG1hcw== IHJhaWw= IGNvb3Blcg== IHRlc3RlZA== IENhcHQ= YXNrcw== IGNvbWZvcnRhYmxl IGRlbGl2ZXJlZA== c2NhcGU= IGRlcHRo IEdPUA== IHdyaXRlcw== IGFzc2V0cw== IHNhdg== aW1lbnRz IHRyYW5zaXRpb24= IGFydGlzdA== IExvb2s= IGxvYg== IGNvbXBvbmVudHM= YXJpdHk= IHdhbGtlZA== IHJvb3Q= IHBhcnRpY2lwYW50cw== IG5vdGljZWQ= IHJlc2M= IG5hdg== IEFkbWluaXN0 ZGE= dXRyYWw= cGxhdGU= IGltcG9ydGFuY2U= IGFzc2VydA== aW91c2x5 Y3JpcHRpb24= IGluanVyaWVz IENoZWNr IHJlZ2lzdGVyZWQ= IGludGVudA== IG1pc3NlZA== b2dyYXBoaWM= IHNlbnRlbmNl b3VudGVy IGFzc2lzdGFuY2U= ZXZpbg== IGRhdGFiYXNl IGJ1aWxkaW5ncw== IGNsYXNzaWM= IHRoaW5rcw== IE9oaW8= UHI= dWdn IGZlZQ== cGFu IGVmZmVjdGl2ZWx5 IGZhY2lsaXR5 IGJlYXI= IGNoYXB0ZXI= IGRvZ3M= IENvbHVtYg== IGxhdHRlcg== aXRpYWw= IGFkbWl0dGVk VFY= IEdlb3Jn IHBvc3Rz XFw= IGxhd3llcg== IGVxdWl2YWw= IG1hbmQ= IGNvbnRyb2xsZWQ= IFdhbGs= IEFuZHJldw== IG1lbnU= YW1lbnRhbA== IHByb3RlY3RlZA== dmE= IGFkbWluaXN0cg== b3JhbA== IHJlaW4= IFNhcg== IGFtb3VudHM= IG5hdGl2ZQ== IE1vb24= IHJlcHJlc2VudHM= IGFiYW5kb24= IGNhcnJ5aW5n IHRhbms= bWFyeQ== IGRlY2xhcmVk VHViZQ== IGhhdA== IHB1bmlzaA== ZWxsZWN0 bWVz IHVuaXZlcnNl IFJvZA== cGh5 IGluZnJhc3RydWN0dXJl IDUx IG9wcG9zZWQ= b3dudA== Y2E= IE1ha2U= IGhhcmR3YXJl IGNvZmZlZQ== UmVs YmFs d29ybGQ= IFNhZg== IFNlYQ== aW5hbHM= IG93bmVk IGhhbGw= ZXJzaW9u IGRlc2NyaWJl IFBvdA== IHBvcnRpb24= IGF0bW9zcA== IGdvdmVybm1lbnRz IGRlcGVuZGluZw== IG9mZmVuc2U= IHRyaWNr YXdh IExpbmU= IFZpcw== IEhhcmQ= IE9yaWc= IENsaWNr IGRlc2s= IFZhbGxleQ== IFNvdg== IG1vdmllcw== IHJlbWFyaw== IG1haWw= IGNvbnNjaW91cw== IHJ1bGluZw== IFJpZ2h0cw== IG1lZGlj aGVudA== IFdvbWVu Pjw= IHJlcGxhY2Vk IFByZW0= IFRoYW5rcw== IHJlbmV3 IEJhbGw= aWZvcm0= IHNob3Rz Q29tbQ== IGFybWVk IGNvbnN0YW50 IHRhc3Rl IHJlYWxpemVk IGJ1ZmY= IG1v IGVmZmljaWVudA== TW9zdA== b3JhdGlvbg== aWZpZXM= IGNvbW11bmljYXRpb24= IGZsb29k IGNvbnNlcXVlbmNlcw== IGFueXdheQ== aWdn IEdN IFRoYW5r IGlyb24= IGV2b2x1dGlvbg== IENvcA== dHdpdHRlcg== IDk1 IHJlbGF0aW9uc2hpcHM= YWRlbA== IFlvdW5n IHByb3Bvc2Fs YXllcnM= dWlsZGluZw== IEhvdA== T1JF Y29z IGNvbGxhYm9y UEc= YXh5 IGtub3dpbmc= IHN1cHBvcnRz b3dlZA== IGNvbnRyb2xz IG1lcmVseQ== dW1lcg== IGF0aGxldA== IGZhc2hpb24= cGF0aA== IGdpZnQ= IGVyYQ== QU5E IGtpbmRz IEtvcmVhbg== IGxlZ2l0 dWxvdXM= IGVzc2VudGlhbGx5 IHRoZXJhcA== bmlj IHN1ZmZlcmVk IGh1cg== IHByb21pc2U= IGV4Y2Vzcw== IG92ZXJ3 IHByaW1l IEhvdXN0b24= ZXJyeQ== IE1z UlM= MjAxMg== IHN0b3Jlcw== IE9seW1w IGpvdXJuZXk= QWx0aG91Z2g= U3Vi IEVkdWM= IENoYXB0ZXI= IHJlcXVlc3Rz IGNvbnN1bWVycw== IHRpbnk= IGlzb2w= IEZhaXI= YmE= IFlPVQ== IGNyYXNo Y2VsZXI= IGVtb3Rpb25hbA== IGdvb2Rz IGVsZWN0ZWQ= IG1vZGVy IExpbnV4 IGJsb2Nrcw== IGlzbGFuZA== IFNvY2lldHk= IGVsZWN0aW9ucw== IGJyb2FkY2FzdA== IGNoZWFw IG5hdGlvbnM= IHNlYXNvbnM= NDAw IHdhc3Rl IFNhdA== IGZpZWxkcw== ZW1wbG95 IHByb2ZpbGU= IGF1dGhvcnM= QUxM IEdyYQ== d2VzdA== IFR5 IGRlYXRocw== IHZhY2M= IGZvcm1lZA== IGR1 IG9uZ29pbmc= IE11c2xpbXM= ZWxm aWd1cmU= IGFzc3VtZQ== IFVrcmFpbmU= d2F0ZXI= IGNvYXN0 IHZvdGVk Z29y IEFT IE1pY2hpZ2Fu YXph IEFybQ== aXJv IGZsZXg= YXN0ZXJz Jyc= IHdlbGNvbWU= YXJs IGxvY2F0aW9ucw== aWdhdGlvbg== IEZpbA== IGJ1eWluZw== IGFyY2hpdGVjdA== IGhhcmRlcg== IEN1Yg== IGludGVyZmFjZQ== IHJlc3RhdXJhbnQ= IGRpc2NvdmVy IGV4Y2VlZA== IGZhdm91cg== Z2VyeQ== IGR1dHk= IHBpdGNo YWRvcg== IE1hY2g= Ym95 IHJlc3BvbmRlZA== IGV4dGVuZGVk aGVycw== TWFueQ== cmFpZA== aWZlcg== IElucw== U2Vy IG1lZGl1bQ== c2hl IFNwb3J0cw== IG1hZ2F6aW5l dXRhdGlvbg== IGxpbWl0cw== IEdhbGw= IGV4dGVybmFs cmF6aWw= IHlvdW5nZXI= dGxl IHJlbWluZA== IENPTg== IGltbWVkaWF0ZQ== IGhpZGRlbg== IHZvbHVudGU= IHNpbXBs b2RjYXN0 IHBoYXNl ZHI= IHBsb3Q= IGV4cG9zdXJl Ukk= b2dyYXA= dmlu YW5pc2g= IEFjYWQ= IEVuZ2luZQ== IGV4cGFuc2lvbg== IFBheQ== WW91cg== IHB1c2hlZA== IEVsbA== IEhlYWQ= IG1hcmtldGluZw== IEFD a2V0 IGhpdHM= IGdybw== IEFnZQ== IFNjb3Q= XVs= IHN0aW0= IGlQaG9uZQ== iJI= IG5hcnJvdw== IEdldHR5 IFR1cmtleQ== IHBlcmZlY3RseQ== IGVuYWJsZQ== dXRjaA== IHByZWNpc2U= IHJlZ2ltZQ== IHNoaWY= IGNvbXBlbnM= Z3Vu ZGl2 IGNob3Nlbg== IEtlbg== QW55 IHRyZWVz IHJlY29tbWVuZGVk IFJlbg== dWFibGU= IEhU Rm9sbG93 RUc= IEhhbmQ= IEtlbm4= IGFyZ3VtZW50cw== IGV4aXN0cw== IGJpa2U= IENvbnNlcnY= IGJyZWFraW5n IEdhcg== IGNyYXp5 IHZpcnR1YWw= YXlsb3I= aXhlbA== IDE5ODA= IHBlcm1pc3Npb24= IFNlcmllcw== IGNvbnN1bWVy IGNsb3NlbHk= Y2FsbGVk IDU0 IGhvcGVz IGFycmF5 IFdpbg== IExhYm91cg== IHNwb25z IElyZQ== IHBvdw== IHJlYWRlcnM= IGVtcGxveW1lbnQ= IGNyZWF0dXJl IHJlc3VsdGluZw== IGFjY3VyYXRl IG1vbWVudHM= IGFyZ3VlZA== IHBlZA== RHVyaW5n IDUz IFRhbA== IHNvdWdodA== IHN1ZmZlcmluZw== IGljb24= bGVl ICgk YWxpYW4= wrA= IHByYQ== IGJvbnVz KCI= a28= IGFjdGluZw== REU= ZmFsbA== IGNvbXBhcmlzb24= IHNtb290aA== IE5BUw== dXBw IEpvc2VwaA== ZXBpbmc= IFRha2U= IE1pZA== IHNlbmRpbmc= ZmFzdA== IEZhbGw= IGRlYWxpbmc= dXNlcg== IE9yZ2Fu Q28= IGF0dGFjaGVk IHNlZXM= JS4= IHR5cGljYWw= QVJU IGZpbmRz IEFzaWE= dW1pbg== IENvcmU= IEVudA== aW5lbnQ= dWNl IEJsb29k IE5ldmVy IGVtYWlscw== IGhpZ2hsaWdodA== IGNvbmZyb250 YXR1cw== dXRlZA== IHVudXM= IHRvcGlj IEFkYW0= IGJsZQ== YXRp IHVuZGVyc3Rvb2Q= U2V0 c3RydWN0 VFA= IG1vYg== YWE= IFN0YXJ0 cGVjdGVk c2VsbA== IGRlZGljYXRlZA== IENB dWFu IHNvbmdz ZXNjcmlwdGlvbg== IHRlY2g= IHJhcGU= IGFzaWRl IGdyYW50 IDU2 c3Vi IGFyZ3Vl IGNvbnRhaW5pbmc= IHNjaGVkdWxl IGxpYmVyYWw= IHB1YmxpY2x5 IGhlYXZpbHk= IFV0 aW5lcg== IFNlY3Rpb24= IENhcmU= d2VldA== bHM= RGlz 4pSA IEZvbGxvdw== QmFjaw== IElU IGJlcw== amk= IEhpdA== ZXN0ZWQ= IGV2ZXJ5Ym9keQ== IFN3ZWQ= IGZlbWlu IGZhY2lsaXRpZXM= IGNvbnZlbg== Q29tcA== IE9T Y29yZQ== IGFueA== IGRpdmlzaW9u IENhbQ== IFN0YW4= bWF0ZXM= IGV4cGxvcmU= cGxvbQ== IHNoYXJlcw== cGxvYWQ= YW5lcw== IGlkZWFs ZXRlcnM= IEJhc2U= IHBsYXN0aWM= IGRpc3RpbmN0 IE5ldHdvcms= IFNlYXR0bGU= IHRyYWRpbmc= ZW5zdXM= aW50ZW5k IGV4aGli IGluaXRpYWxseQ== IEZvb2Q= IHRob3VzYW5k IEJ1c2luZXNz YWN0ZXI= IHBhcmFncmFwaA== IHJvdWdobHk= IHd3dw== IGNyZWF0aXZl IENvbmY= IGNvbnN1bXB0aW9u IGZpbG1z YWdhbg== IG9idGFpbg== IHRhbGw= IHRvcg== IGFja25vd2xlZA== IGdyb3du YWxv S0U= IDQwMA== ZW5kZXJz dGFpbmluZw== VUc= IHN1aWNpZGU= IHdhdGNoZWQ= IExpc3Q= YWxp cmVoZW5z IHN1cnJvdW5kaW5n IHBpcA== IGZseWluZw== IEphdmE= b3JkYW4= IHNlcnZpbmc= aW5hdGlvbnM= cG9zdA== IHNobw== QXY= IGphaWw= enk= IDE5OTk= IDwv IGxpdGVyYWxseQ== IFNpcg== IGV4cG9zZWQ= IGxpZXM= c3Rhcg== IGJhdA== IGVhcm5lZA== IERpZw== IHNwZWNpZmllZA== IFNlYXNvbg== IGRlZ3JlZXM= RG9uYWxk IGNlbnRyZQ== IHNoYXJpbmc= IHdpbnRlcg== IENP Q2hl IM4= TVA= IHVudw== IGZld2Vy IE1pcg== IHNvbWV3aGVyZQ== IEtleQ== IGF0dGFja2Vk IEtpcg== IGRvbWFpbg== IHN0cm9uZ2Vy IDk5 IHBlbmFsdHk= SWQ= U2NyaXB0 IGRlY2xpbmVk IG5lY2s= IGZyYXVk IGN1cnJlbmN5 IHJpc2luZw== UkM= 4oCm4oCm SHo= IHRhYg== IHRhbGVudA== bmFt IE5CQQ== IHZpbGxhZ2U= IGxlZ3M= IE5leHQ= RWQ= IGFjaWQ= IGh5ZA== ODAw IGludm9sdmluZw== IEltYWdl IEJlZm9yZQ== Rmw= IHllc3RlcmRheQ== U291cmNl IHRlcnJvcmlzdA== IHN1cA== IHN5bnQ= IFNhdWRp IHdlc3Q= IHJ1 YnVyZw== IHZpc2libGU= IHN0cnVjaw== cmlzb24= IGF3ZXNvbWU= IGRyYXdu IGFuc3dlcnM= IEdpcmw= IFJhbQ== IHRocmVhdHM= IGRlZmVhdA== b3NpdA== IHZlbnQ= YXR1cmFsbHk= QW1lcmljYW4= ZW5kYQ== IEhvbHk= IHJ1bQ== JSw= Y2FzZQ== IEhpc3Rvcnk= IFlvdVR1YmU= IHNpdHVhdGlvbnM= IEROQQ== U3Rl IHNhdmVk SXRlbQ== IHJlY2lw b2xvZ2lzdA== IGZhY2Vk IGVsaWc= T25jZQ== IExp dWg= IG1pc3Rha2U= IERpdmlzaW9u IEJlbGw= IHN5bXB0b21z wq4= IGRvbWlu IGZhbGxpbmc= IGVuZGluZw== YXNoZXM= IG1hdGNoZXM= IE9ubGluZQ== IGV4cGxhbmF0aW9u RGVm cmVkaXQ= IGFueW1vcmU= IFRvdGFs IEZPUg== dXNoZWQ= IGxldHRlcnM= IHJpc2tz IE9L IHJlcG9ydGVkbHk= Olw= IHBsYXRl IHN1YmplY3Rz IGF0dGVtcHRlZA== aWZpZXI= aWFuYQ== IHVubGlrZWx5 IFRob3VnaA== dW1h IEludmVzdA== IFByaW4= aWNhbg== IERhcg== IENvbG9yYWRv YXVn IHZlZ2V0 YW9z cmlh IHNoZWw= IG1hcmtlZA== ICgp IHNwcg== cG8= IExpbms= IGRlZmU= IEpy IHRoZW1l IHBhc3Npb24= IFBlbg== IGluZm8= aXplcg== IHNoaXQ= IENpdmls YXBzZQ== Y3Jl IHBvbHk= IGNvbXBvbmVudA== IENoYXJsZXM= IElyZWxhbmQ= IFByb3Y= IGRvY3RvcnM= IGdyYW50ZWQ= IHBhaW50 IGhvbm9y IHNtb2tl IHBheW1lbnRz IHByaW1hcmlseQ== IEtpbmdkb20= cmljaA== YXRlbGw= IGRlYWxz IHNjaGVkdWxlZA== IGZ1bmRhbWVudGFs IHByb3RlaW4= IG5ld3NwYXBlcg== IGNsaWVudHM= eXRob24= IERhdGU= aHVz IGZlZWRiYWNr IHN0cmV0Y2g= IGNvY2s= IGhvdGVs IFF1ZWVu IHN1Z2Fy IGp1 IG1pbGs= IGFwcHJvdmFs IExpdmU= IGVxdWl2YWxlbnQ= ZWZ1bGx5 IGluc2VydA== em9uYQ== IGV4dGVuc2lvbg== ZHJp Sm9obg== IGFjY29tcA== U20= IEZ1bmQ= IGNvbnN0YW50bHk= IGBg IGdlbmVyYXRlZA== IEFjdGlvbg== IFBzeWNo IFRyaQ== IHJlY29nbml6ZQ== IHZhcnk= cGhh IFJh ZGY= ZXRjaA== IFNvdmlldA== VHdv IHBhdHRlcm5z IHByb2Zlc3Npb24= YW5pbmc= VGltZQ== IExpbQ== IGNvbG9ycw== IEF6 IFRS IGluZmVjdA== IHBoZW5vbWVu IHNoZWxs QWxzbw== IHB1dHM= IGRlbGl2ZXJ5 IGJyb3du IHByb2Nlc3Npbmc= IGxpZ2h0cw== ZXNzYWdl IEJyb29r IEF1ZA== bGF0aW9u IGluZHVzdHJpYWw= TGlrZQ== IEJyYXppbA== cm91cw== RVNT IEx1Yw== IHNvbWVob3c= IDg1 IHByb3BvcnQ= IHBvbGl0aWNpYW5z IGluZGljYXRl IGhvbGU= IHRlY2huaXF1ZXM= IGNvbXBldGl0aXZl IHBocg== IHZv aXN0ZW50 IERyZWFt IGNhbXB1cw== IGFzcGVjdHM= IGhlbHBmdWw= IHNoaWVsZA== b3JzZQ== IHRyaWdnZXI= bWFs IDU4 IHRvcnQ= IHBlcnNvbmFsbHk= IHRhZw== IGtlZXBz IFZpZGVv IGJlbmNo IGdhcA== YWlyZQ== IGVhc3Q= IHJlY292ZXJ5 cGVyaWFs IHByb2ZpdA== IE1pYw== IDU3 IGNvbG9u IHN0cm9uZ2x5 c3R5bGU= IGFsbGVnYXRpb25z aGFu IHJlcG9ydGVycw== am8= cmluZQ== YXJnZXQ= YW5kYWw= IDAz IGZsYXNo dHJhbnM= IHN0cmljdA== IHBhcmtpbmc= IFBha2lzdGFu IGxp IHdlaXJk IEVyaWM= IHJlZ2lvbnM= IEp1bg== IGludGVsbGVjdA== IFdI b2Rpbmc= cmlidXRlcw== dXBpZA== IFRpdA== IGZpbmdlcg== b3JpYQ== IGVsZXY= IEZpZWxk IGNvbmNsdXNpb24= Ozs= IGZlZWxpbmdz IGV4dGVuc2l2ZQ== IG1peGVk IG5ldXJv dnk= IGhhcmFzcw== IENpcmM= b3VjaA== IHRlcnJpdG9yeQ== IHN1Y2Nlc3NmdWxseQ== TWFy IGluZ3JlZA== IG92ZXJ3aGVs IGxheWVy Vmlldw== IGFsbGllcw== aWxsYW5jZQ== IFRocmVl IGJ1bmNo IG5vcm1hbGx5 IG5ldHdvcmtz IHNhY3I= IENJQQ== Ymxlcw== IGNob3Nl IG9wcG9uZW50cw== IHJlZ2FyZGxlc3M= IGZyYW5jaA== IHByZWY= IFBv IGJyaWRnZQ== YW5uYQ== IFNpbHZlcg== IHdhZ2U= cGFnZQ== cmlvcg== IHJhZGljYWw= IExpdHRsZQ== IG1hbmlw IHNlY3JldGFyeQ== IGdhbmc= RFI= RkE= IGRlY2VudA== IFNwaXJpdA== IHVuY2xl IERldmVsb3BtZW50 IGludmVzdG9ycw== IHdhbGxz IHB1Ymxpc2g= IGdlbmVyYXRl aXNzaW9ucw== Y2Fy IHByb21vdGU= IGN1dHRpbmc= IGNoZXN0 IGRyaW5raW5n IGNvbGxlY3RlZA== IDcy IGhvcGluZw== IGVtYnI= Z29yaXRo IHdhcm5lZA== IGluc3RydWN0aW9ucw== T0c= IERpZA== IEFnZW5jeQ== IGdlYXI= IGNyaXRpY2lzbQ== IEZ1cnRoZXI= IHV0aWw= YW5ueQ== UmVk IGNvdW5zZWw= IEFzaWFu IHJlZHVjdGlvbg== cG9vbA== IHRlYWNoaW5n IGRlZXBseQ== aXk= IGVzdGltYXRlcw== IGNob2ljZXM= IHBlcm1hbmVudA== aW5lbQ== a2Vs IGZhc2M= cHNl ZmlsZQ== IExvdw== IFBlcnNvbg== IHRvdXJuYW1lbnQ= c3RhbA== IG1lbA== VVNU IFJheQ== YXpp VmFs IGNvbnRhaW5lZA== IEhvbGx5 IHdha2U= IHJldmVhbA== IHByb2Nlc3Nlcw== IElTSVM= IDA5 IGJsaW5k IHN0ZWVs IEJhZA== IGNhcmVmdWxseQ== YXBweQ== cm9pdA== IGdhbWluZw== IGhvdXNlcw== IENvbGw= IHRydWNr ZXJt IHNjb3JlZA== IG9jY2Fz cmV0dXJu Ym91bmQ= dmFy IHNoYXJw IGFmcmFpZA== IEVY YW1iZXI= Y2lmaWM= IHNjaGVtZQ== TkM= IFBvbGl0 IGRlY2xpbmU= IDE5OTg= IHB1c2hpbmc= IHBvc3Nlc3Npb24= IHByaXZpbGU= IHRlYWNoZXJz IHlpZWxk SEE= IERhdmlz aXRsZWQ= IyMjIyMjIyM= IHJpZw== IERhbmllbA== YWNvbg== IGhpZGU= dXRlbg== IGNvbGxlYWd1ZXM= IHByaW5jaXBsZXM= IGxvdWQ= IHNpbg== IERlbW9u IHN0b25l IDAy IHRhdWdodA== IHRlcnJpYmxl IHN0dWNr IFBvbGljeQ== dGVlbg== IGltcGxlbWVudGF0aW9u IEJCQw== IEFQSQ== IHdoZWVs YWxsYXM= IGNoYW1waW9ucw== b2xhcnM= cGxheWVy IHJlcGVhdGVkbHk= IFN0aWxs IGxpa2Vz YXN0eQ== ZXN0ZXI= IENhdGhvbGlj Ukw= IGJhdGg= IG5vaXNl dGl0bGU= IG5vcnRoZXJu UGFydA== IG1hZ24= IGZhYg== IEFzaA== IGRpc3Bs IHRpY2tldA== IG11cmQ= IGFsb25nc2lkZQ== IE11c2lj IHJpdmVy IFN0ZWVs IENM IFBsYXllcg== IE11bHQ= b3dpbmc= cmVw c2l6ZQ== IHR1cg== IEdlb3JnaWE= aXNjYWw= cmFjdGlvbg== IGNhYmxl IDU5 IHdpbnM= IHVwY29taW5n IHN1cnZpdmU= IGluc3BpcmVk IEVkdWNhdGlvbg== IHN0YXRpc3RpY3M= IEZvb3Q= aWFtaQ== IHllbGxvdw== IFBhZ2U= Li0= IEhhcw== IHVyYmFu IGF4 ZXNzZWw= XCI= IHF1YXJ0ZXJiYWNr IHJlZ2lzdGVy IExhYm9y IGFiaWxpdGllcw== IEZhbWlseQ== IHZhcmlhYmxl IFByaWNl IGNvbnRlbQ== IHRoaW4= IEVxdQ== ZGF0YQ== IGdvdHRlbg== IGNvbnN0aXQ= IGFza3M= IHRhaWw= IGV4Y2l0aW5n IEVmZmVjdA== IFNwYW5pc2g= IGVuY291cmFnZQ== aW5zb24= IEFo IGNvbW1pdG1lbnQ= Q1M= IHJhbGx5 IDo6 IHN1YnNpZA== IHNwaW4= IGNhcHR1cmVk MjAxOA== IGlubm9j IGFsbGVnZWRseQ== IENvbWU= IGFydGlzdHM= IE51bWJlcg== IGVsZWN0cm9uaWM= IHJlZ2lvbmFs YXBlcw== IHdyYQ== IG15dGg= cHJpc2U= IE1pbGxlcg== IENyZWF0 IEVwaXNvZGU= YmVsbA== IGRpcmVjdGVk IGV4dHJhY3Q= IHNvcnJ5 IHZpY2U= YWdnZXI= IFN1cHBvcnQ= IDY2 IElyb24= IHdvbmRlcmZ1bA== IGdyYQ== TmV0 aW9uZQ== RW5n IHNoaXBz aWtlcw== IEtldmlu aXRhcg== IGFjdGl2aXN0cw== dHJ1ZQ== IEFyaXpvbmE= ZW50aA== IERlc3BpdGU= IFNF IGhhYml0 ZXJuZWw= IGlucXU= IGFib3J0aW9u IHZvaWQ= IGV4cGxpY2l0 IGVuZ2FnZWQ= IGFuZ3J5 IHJhdGluZw== IGZyYWc= YnJv aWNraW5n ZGV2 IHdvcnJpZWQ= IG9ic2Vy IGFwYXJ0bWVudA== IEdU IGVzdGF0ZQ== IENvbnN0aXR1dGlvbg== ZW1vbg== IFNub3c= IGNvdW50eQ== IGRpc2Fn IFN0ZXBoZW4= IGltbWlncmFudHM= d2luZA== IE5hdGlvbnM= IGZvbGtz T3V0 IGdhbGw= IHRhcmdldGVk IHN0ZWFk IEJvbg== IExpYg== IGluZm9ybWVk IDEyMA== Y2hhaW4= aWRlbGluZXM= b3JvdWdo IGRyaXZlbg== IHJlZ3VsYXJseQ== IGJhc2tldA== IHByaW5jaXBsZQ== b2N1bWVudA== IHN0dW4= aWJpbGl0aWVz IFJvbWFu IEFib3V0 IGFsZXJ0 IGRlbW9jcmFjeQ== IHJlcHJlc2VudGVk SFM= Y2Vycw== cGFyZW50 QXJ0 cGFjaw== IGRpcGxvbQ== cmV0cw== IE5P IGNhcHR1cmU= IEFkdg== hKI= IGFubm91bmNlbWVudA== IExlYXI= IGhvb2s= IHB1cnM= IFN1Y2g= IENhbWVy IHJlZnVnZWVz IFZl UG9s IHJlY29nbml6ZWQ= bGli IGhhZG4= QXNz IHBpbG90 dXNoaW5n IHJldHVybmluZw== IHRyYWls IFN0b25l IHJvdXRpbmU= IGNvdXJ0cw== IGRlc3Blcg== IGZyaWVuZGx5 IEl0YWx5 IHBsZWQ= IGJyZWF0aA== IHN0dWRpbw== TlM= IGltcHJlc3NpdmU= IEFmZ2hhbmlzdGFu IGZpbmc= IGRvd250 aW5raW5n IFJvZw== aWFyeQ== Y29sb3I= c2V4 YXJvbg== IGZhdWx0 IE5pY2s= RG93bg== IFJvc2U= IFNvdXRoZXJu WFg= aXNvZGVz TGlzdA== NjAw IG91dGNvbWU= ZXJy IGVsc2V3aGVyZQ== IHJldGlyZQ== IHBvdW5kcw== IEdsb2JhbA== UGVvcGxl IGNvbW11bmljYXRpb25z IGxvYW4= IHJhdGlv IEVtcGlyZQ== IGdvbm5h IGludmVudA== REY= IDE5NzA= IENvbW1vbg== cGF0 IHByb21pc2Vk IGRpbm5lcg== IEhvbQ== IGNyZWF0ZXM= IG9wZXJhdGU= dmVydHk= IEpvcmRhbg== ZXRpbWU= IHN1c3RhaW4= UmVn IGluY3JlZGlibGU= aW1h IHdhcnJhbnQ= IG1t QXR0 IGxhd3N1aXQ= IHJldmlld3M= aXR1cmU= IFNvdXJjZQ== bGlnaHRz IEZvcmQ= IDYz Z3JvdXA= c3RvcmU= IGZlYXR1cmVk IGZvcmV2ZXI= IHBvdmVydHk= IFBvcA== IENOTg== YXp6 YWJpcw== YWNoaW5n IGxhaWQ= IFN1cHA= IGZpbHRlcg== ZW5h IENvbW11bml0eQ== IGNyZWF0dXJlcw== dWN0aW9u IFJveWFs IGFzc29jaWF0aW9u IENvbm5lY3Q= IEJyYWQ= 4paI bGVycw== dGhlcmU= IEdp IHZhbHVhYmxl QUNL IFRheWxvcg== IGxpcXVpZA== IEF0dG9ybmV5 IENhcmw= IEZpbmFs YWdh IFdpbHNvbg== QmVjYXVzZQ== IFByb2Zlc3Nvcg== YWth IGluY3JlZGlibHk= cmFuY2U= ISk= UmVm c2s= IHNvbHV0aW9ucw== IGF0bW9zcGhlcmU= IGJsYW1l dW1lcw== IE5vYg== Q0E= dW1wcw== cmljYWw= IFB1dGlu IERlc3Q= b3JpYw== IFBB IHJlc3BlY3RpdmVseQ== d2Fu IGZpZnRo 4oSi IENyeQ== IGdvdmVybm9y cmVzaWRlbnQ= IHB1cmNoYXNlZA== IGhhY2s= IGludGVuc2U= b2Jz IG9yaWdpbg== IGRlZmluZQ== IGNhcmVmdWw= Kioq IHNob3VsZGVy Q2xpY2s= IHRpZWQ= IGRlc3RydWN0aW9u b3VyZWQ= IG5vYm9keQ== IGhv IEV4cGVy IHRpcA== Ijs= IHRlY2huaXF1ZQ== IGp1cg== IFBvaw== Ym93 IGxlZ2VuZA== IGFjY29yZA== IGJ1c3k= IEludGVs IGhhbmc= YWtp Ll0= 4oCU4oCU4oCU4oCU IHN1cmdlcnk= IHJlcHJvZHU= IHVuaWZvcm0= IHNjZW5lcw== Y29kZQ== IDYy bGlzaGVy IEhhdmU= cGhpYQ== IGNyeXB0 IHJlY29u IHNjcmVhbQ== IGFkb3B0ZWQ= IHNjb3Jlcw== TmU= IEl0YWxpYW4= aW5jbHVkaW5n Qk8= IGluZGljYXRlZA== IGVudGVydGFpbg== R3U= VGV4dA== aWVs IHR3ZW50eQ== IGVuZ2FnZQ== b2Zmcw== IFBhY2lmaWM= IHNtaWxl IHBlcnNvbm5lbA== IHRvbGVy IGRvb3Jz IHRvbmU= IG1hY2hpbmVz IGVudGVyaW5n dGVuYW5jZQ== Q08= IEplcnNleQ== IGZvcmVzdA== IGhvcnNl IGNvbXBsYWludA== IFNwcmluZw== eW8= IFBsdXM= ZWRpbmc= IFJldHVybg== cXVhcnRlcnM= aWFscw== Y293 IGFjYWRlbWlj IGZydWl0 IDE5OTY= b2dldGhlcg== IHdpbmU= IHB1cnN1 IFN0ZXZlbg== IGxpY2Vucw== V2hv IGNsb3RoZXM= cmVjdGlvbg== IHNxdWFk IHN0YWJsZQ== IHJhdw== emVucw== U3Rhcg== dXRpZXM= YW5jZXI= IGtleXM= IE11 IGNvbXBsaWNhdGVk aWdlcg== IFRleHQ= IGFic29y IDY4 IGZ1bm55 IHJlbGllZg== IExldw== IENvb2s= IGNoYXJ0 IGRyYXdpbmc= R0U= IG1vZHVsZQ== IEJ1bGw= SUxM IHNhbHQ= MDAwMDAwMDA= aWxsZQ== IHJlc291cmNl YXdheQ== YWRlbHBoaWE= IEJydQ== IDY3 IHNvbWVib2R5 IHBhcnRpY2lwYXRl IHJvc2U= d2VyZWQ= IG11c2NsZQ== IGNvbnNlbnQ= IGNvbnRpbnVpbmc= IEd1YXJkaWFu IE9yZGVy cmVnb24= IHJlYXI= IHByb3Zpc2lvbg== IGxpa2Vk cmllbnQ= IGJyYQ== VHJhbnM= IG1lZXRpbmdz IHRveA== IGNvbnZlbnQ= IGF1dG8= IHJlY29yZGluZw== IFNvZnQ= MDAx IFJvbGw= IHByb2dyYW1taW5n IHBpYw== IHByb3ZlZA== IHN0YWI= IEFzdA== IGNhcHRpb24= dWxhdGluZw== IEF0dGFjaw== IG5ld2x5 IDE5OTc= ZnI= IGRpc2NpcGw= IEdyZWVr IGVkaXRpb24= IERvZXM= IEJveA== aWZsZQ== YWNrZXQ= IHBhc3Nlcw== IGd1ZXN0 IGFjY2VsZXI= aXRhbHM= VUQ= IGF1dGhlbnQ= IFJlc3Q= b3ZhbA== dGE= dWluZQ== IGFybW9y IFRvd24= IGNvbXBhdA== IGluY2hlcw== RGVzcGl0ZQ== IGFzc2lnbg== aGVyZW50 IHByZXBhcmU= IE1lZw== b2NrZXk= IGRlcGVuZHM= IHRyYWNrcw== d2F0Y2g= IGxpc3Rz IE5vcnRoZXJu IGFsdGVy cmVj IEVhc3Rlcm4= IGNvbmRlbQ== IGV2ZXJ5d2hlcmU= Pyc= IGFmZmlsaQ== IGZvdWdodA== Ijp7Ig== IG1hYw== aXRhcmlhbg== IHNjb3Bl IEFM YXdz YXJtcw== IHF1ZQ== IGVuam95ZWQ= bmVzb3Rh IGFnZ3Jlc3NpdmU= IFN0b3J5 IElW IHJlY2lwZQ== IHJhcmVseQ== IE1lZGljYWw= dmFsdWU= YW5nZWw= YXlpbmc= b21ldGhpbmc= IHN1YnNlY3Rpb24= IHNvdXRoZXJu IGZyZXF1ZW5jeQ== cmV0ZQ== cm9sbGVk dWx0cw== IE5pYw== IGJlaGFsZg== IHNlcXVlbmNl YWJldA== IGNvbnRyb3ZlcnNpYWw= IGNvbXByb20= IHdvcmtlcg== IG1haW5seQ== IGFsZ29yaXRo IE1ham9y b3JjZQ== Z2VuZGVy IG9yZ2FuaXplZA== IGZha2U= IGNvbmNsdWRlZA== IEVE IEV4ZWM= cmFnZQ== IGNoYW5jZXM= YmVycnk= IFRyYWQ= IGNvbmZpZ3VyYXRpb24= IHdpdGhkcmF3 IGZybw== dWRlcw== IEJyb3RoZXI= IEJyaWFu IHRyaWVz IHNhbXBsZXM= IGJpZA== IEdvbGRlbg== IHBob3RvZ3JhcGg= aWZlc3Q= IERP IFBhcmxpYW1lbnQ= KioqKioqKioqKioqKioqKg== UmVt IGNvbnRlc3Q= IHNpZ25pbmc= cHg= IFplYWw= 4pSA4pSA RWFy IGV4aXQ= QmVmb3Jl IENvcnBvcg== bnVsbA== bW9udGg= IHJhY2lhbA== b3R0ZWQ= IFZlZw== IFJldXRlcnM= IHN3b3Jk cHNvbg== IFJvbW5leQ== YWVk IHRyaWI= IGlubmVy IHByb3RvY29s IEJp IE1pYW1p ZXZlcmFs cHJlc3M= IHNoaXBwaW5n IEFtZW5kbWVudA== IEhvd2FyZA== Y29ubmVjdA== IERpc2M= IEphYw== aWFtb25k IFRoZXJlZm9yZQ== c2Vz IFByaW5jZXNz IFVTQg== IEFudGg= IHN1cnZlaWxsYW5jZQ== IGFwb2xvZw== IDYx b3dh IGZ1bGY= anM= IGx1Y2s= dXN0ZWQ= IMKn bmk= IGFudGljaXA= ZW1hbg== IHdpbm5lcg== IHNpbHZlcg== bGxh aWNpdHk= IHVudXN1YWw= IGNyYWNr IHRpZXM= ZXo= IHByYWN0aWNhbA== IHByb3ZpbmNl IFBsYWNl IHByaW9yaXR5 SUNF IGRlc2NyaWJlcw== IGJyYW5jaA== Rm9ybQ== YXNrYQ== bWlzc2lvbnM= Ymk= IHBvcm4= IFR1cms= IGVudGh1cw== IGZpZ2h0ZXJz IDA4 IERldHJvaXQ= IGZvdW5kYXRpb24= YXZpZA== QXJl IGp1ZGdtZW50 Y2xpbmc= IHNvbHZl IERlc2lnbg== V2hlcmU= aGVzaXM= IFRybw== YWZ0ZXI= IG5ldXRyYWw= IFBhbGVzdGluaWFu IEhvbGx5d29vZA== IGFkdmlz IE5vbg== eWVz b2xpcw== IHJlcHV0YXRpb24= IHNtZWxs IGJyZWFk IEJ1bA== IEJlYWNo IGNsYWltaW5n IGdlbmV0aWM= IHRlY2hub2xvZ2llcw== IHVwZ3JhZGU= cm93cw== IGRldmVsb3Blcg== IEpvc2g= IERpc25leQ== ZXJ2ZWQ= aXBhbA== IHVuZXg= IGJhcmVseQ== dGhlbg== IFB1Yg== IGlsbG5lc3M= ZXRhcnk= IEJhbA== IHBhdGNo IGJ1dHQ= IHN0dXBpZA== IERvZw== IERhbGxhcw== ZnJvbnQ= aWVjZQ== IHByb3Rlc3Rz IGNoYXQ= b2VuaXg= IHdpbmc= IHBhcmxpYW1lbnQ= IDc3 b3NleHVhbA== IHJlbmRlcg== cHRpb25z IENvYXN0 b3Nh IEdyZWc= aG9w IE1hbmFnZW1lbnQ= IGJpdGNvaW4= IHJlY292ZXI= IGluY29ycG9y b3JuZQ== IFVzaW5n IHByZWNlZA== IHRocmVhdGVuZWQ= IHNwaXJpdHVhbA== IEV2ZW50 IEZyZWQ= IGFkdmVydGlzaW5n IGltcHJvdmVtZW50cw== IEN1c3RvbQ== IGVycm9ycw== IHNlbnNpdGl2ZQ== IE5hdnk= IGNyZWFt TG9vaw== IGV4Y2x1c2l2ZQ== IGNvbXByZWhlbnM= IGRlbGVn IGNvbmNl IHJlbWVt IHN0cnVjdHVyZXM= IHN0b3JlZA== TkQ= IDEwMDA= VVA= IEJ1ZGQ= QUY= d29tYW4= IEFjYWRlbXk= 8J8= c2Vh IHRlbXBvcmFyeQ== QWJvdXQ= ZXN0ZXJz IHRpY2tldHM= IHBvc3Nlc3M= aW5jaA== b3o= IGxh IGNvbnRyYWN0cw== IHVucA== IGNpZw== IEthdA== dWx0dXJhbA== YXNt IG1vdW50YWlu IENhcHRhaW4= U3RlcA== bWFraW5n IFNwYWlu IGVxdWFsbHk= IGxhbmRz YXRlcnM= IHJlamVjdGVk ZXJh aW1t cml4 Q0Q= IHRyYW5zYWN0aW9u Z2VuZXI= bGVzc2x5 IHx8 IGNvcw== IEhlbnJ5 IHByb3Zpc2lvbnM= IGdhaW5lZA== IGRpcmVjdG9yeQ== IHJhaXNpbmc= IFNlcA== b2xlbg== b25kZXI= IGNvbnNvbGU= aW5zdA== IGJvbQ== IHVuY2VydGFpbg== MTUw b2NraW5n IG1lYXN1cmVk IHBsYWlu IHNlYXRz IGRpY3Q= U0w= YWZl IGVzdGltYXRl aXpvbg== YXRoZXJlZA== IGNvbnRyaWJ1dGVk IGVwaXNvZGVz b21tb2Q= R3I= QU5U IDY5 R2VuZXI= IDI1MA== dmlvdXNseQ== cm9nZW4= IHRlcnJvcmlzbQ== IG1vdmVtZW50cw== ZW50bGU= b3VuY2U= IFNvdWw= IHByZXY= IFRhYmxl YWN0cw== cmlvcnM= dGFi IHN1ZmZlcg== IG5lcnY= IG1haW5zdHJlYW0= IFdvbGY= IGZyYW5jaGlzZQ== YmF0 IGRlbWFuZHM= IGFnZW5kYQ== IGRvemVu IGNsaW5pY2Fs aXphcmQ= IE9w dGQ= IHZpc2l0ZWQ= IFBlcmhhcHM= IGFjdG9y IGRlbGlj IGNvbnRyaWJ1dGU= IGluamVjdA== IEVz YWNjbw== IGxpc3RlbmluZw== IGNvbmdyZXNz ZXBlbmRlbnQ= IHByZW1pdW0= IDc2 IElyaXNo IGFzc2lnbmVk IFBoeXM= IHdvcmxkd2lkZQ== IG5hcnJhdGl2ZQ== b3R5cGU= bW9udA== YmFzZQ== IEJvd2w= IEFkbWluaXN0cmF0aW9u IHJlbGF0aW9u IEVW Q1A= IGNvdmVycw== IDc4 IGNlcnRpZmlj IGdyYXNz IDA0 cGlyYWN5 aXJh IGVuZ2luZWVyaW5n IE1hcnM= IHVuZW1wbG95 IEZvcmVpZ24= c3RyYWN0 IHZlbg== IHN0ZWFs IHJlcGxpZWQ= IHVsdGltYXRl IHRpdGxlcw== ZGF0ZWQ= IGpveQ== YXVz IGh5cGVy YWt1 IG9mZmljaWFsbHk= IFByb2R1Y3Q= IGRpZmZpY3VsdHk= cGVyb3I= IHJlc3VsdGVk cmliZWQ= bGluaw== d2hv fn5+fg== IFNwZWVk IFZpZXQ= V2luZA== IEJhcmFjaw== IHJlc3RyaWN0aW9ucw== IFNoYXJl IDE5OTU= aXRpb25hbGx5 IGJlYXV0eQ== b3B0 IG1hcHM= IENS IE5hdGlvbg== IENydXo= V2lsbA== IGVsZWN0cmljaXR5 IG9yZw== IGJ1cmQ= IHZpb2xhdGlvbg== IHVzYWdl IHBlcm1pdA== IENocm9u IEZhbnQ= IG5hdHVyYWxseQ== IDA3 IHRocm93bg== IEF3b2tlbg== IGFsaWVu IEhlcm8= IEtlbnQ= IFJpY2s= cmlrZQ== IHBhY2U= fSx7Ig== R0w= IHBvaXNvbg== IFRvd2Vy IGZvcm1hbA== YWx5c2lz IGdlbnVpbmU= IGtpbA== YXZlcg== IHByb2NlZHVyZQ== IFByb3A= aW50ZW5kbw== IE1haW4= YXNhbnQ= IHRyYWluZWQ= R2FtZQ== IExvYWQ= IE1B IGNydWNpYWw= IGxldHM= IEZS IGNoYW1waW9u MTAx IENvbmZlcmVuY2U= IHdyaXRlcnM= IGNvbm5lY3Rpb25z IG9rYXk= aXJtcw== IFJhbmQ= IGVuY291bnRlcg== IEJ1ZmY= IGFjaGlldmVk IGNoZWNrcw== aXNjb25z IGFzc2lzdGFudA== IHdoZW5ldmVy IEFjY2Vzcw== IFVy Ymlu IGNsb2Nr aXNw b3BoZXI= IGJvcnJvdw== IG1hZA== IHBlcnNvbmFsaXR5 b25seQ== SVNU YWJhbWE= IGdhaW5z IGNvbW1vbmx5 IHRlcnI= IGh5cG90 IHJlbHk= IHRpc3M= aXNjb25zaW4= IHJpZGlj ZnVuY3Rpb24= IE9yZWdvbg== IHVuY29t cmF0aW5n ZWxhbmQ= IE5D IG1vb24= YW5ub24= IHZ1bG5lcmFibGU= dXRpdmU= wqDCoMKgwqA= IFJhZGlv IHdlc3Rlcm4= c2VjdA== IFRvbnk= IG9jY3Vycw== IE9z IEhvbg== w60= IHZlc3NlbA== IFNjb3RsYW5k IGRpc2NyaW1pbmF0aW9u IHN1YnNlcXVlbnQ= c3RyaW5n IGZhbnRhc3k= IFNoYWRvdw== IHRlc3RpbQ== V0U= aXRp cmFz IGJvYXQ= IG1hcmtz IG9yZGluYXJ5 IHJlbg== IHJlcHJlc2VudGF0aXZl IHBldGl0aW9u IDcz IGFkdmVudHVyZQ== IGlnbm9yZQ== IFBoaWxhZGVscGhpYQ== IFNhdg== VlA= IGZhY3Rvcnk= IHRhc2tz IGRlcHJlc3Npb24= emVk Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4= IFN0b3Jt IGNvZ24= IGVsaWdpYmxl IHJlZHVjaW5n dmlh IDA1 IHN0cmlraW5n IGRvbGxhcg== aG8= T1Y= IGluc3RydW1lbnQ= IHBoaWxvc29waHk= IE1vb3Jl IEF2ZW51ZQ== IHJ1bGVk IEZyb250 SU5F IE1haA== IHNjZW5hcmlv IE5BU0E= IGVub3Jt IGRlYnV0 IHRlYQ== VG9kYXk= IGFic2VuY2U= U2lt IGhhbQ== bGVlcA== IHRhYmxlcw== IEhlYXJ0 TUk= S2U= cmVxdQ== VkQ= bWFw IGNoYWlybWFu IHB1bXA= IHJhcGlkbHk= dmk= IHN1YnN0YW50aWFs RVA= ZGVz Y2hhbnQ= aWxpcHA= IFNhbnRh cmllcnM= YW5jaGVzdGVy TG9hZA== IENhc2U= IHNhdmluZw== IDc0 IEFGUA== ZXJuaW5n b3VuY2Vk IE1pbm5lc290YQ== IFdhcw== IHJlY3J1 IGFzc2Vzc21lbnQ= IEJyb24= VUU= IGR5bmFtaWM= IGZ1cm4= dWxhdG9y IHByb3BhZw== aGlnaA== IGFjY29tbW9k IHN0YWNr IFN1cw== d3JpdA== IHJldmVu IEdvZGQ= IFplYWxhbmQ= YWJz IGJydXQ= IHBlcnBldA== aG90 IGhhcmRseQ== IEJ1cm4= 44K5 IHN0eQ== IHRyYW5zYWN0aW9ucw== IGdhdGU= IHNjcmVlbnM= IHN1Ym1pdHRlZA== IDEwMQ== IGxhbmd1YWdlcw== dWdodA== ZW1lbg== IGZhbGxz IGNvYw== gqw= IHN0cmlrZXM= cGE= IGRlbGliZXI= IElN IHJlbGF4 YW5uZWxz IFNlbmF0b3I= IGV4dHJlbQ== IH0s IERlYg== IGJlbGw= IGRpc29yZGVy Y3V0 IGlPUw== IGxvY2tlZA== IGVtaXNzaW9ucw== IHNob3J0bHk= Il0= IEp1ZGdl IFNvbWV0aW1lcw== IHJpdmFs IGR1c3Q= IHJlYWNoaW5n RmlsZQ== wq/Cr8Kvwq8= aW5vaXM= IEphc29u IHNhdGVsbA== YXJldA== IHN0YXRpb25z IGFncmlj IFRlY2hub2xvZ3k= Y29tZXM= IFVuZm9ydHVuYXRlbHk= IENoaWxkcmVu IGFwcGxpZXM= YXN0ZWQ= IGFuZ2Vy YWlsYWJpbGl0eQ== IERhbWFnZQ== IGNvbXBhcmU= IFN0YW5kYXJk IGFpbWVk IEJh YW5ndWFnZQ== IHJlZ3VsYXRpb24= IGp1cnk= IGFpcnBvcnQ= IHNlY3Rpb25z IFByaW5jZQ== ZW1lZA== IG1lZGljaW5l IGhpdHRpbmc= IHNwYXJr b2x2ZXM= IGFkcw== U3RhdGU= IGZvb2Rz IHJlcGxhY2VtZW50 IGNoaWNrZW4= IGxvd2VzdA== IG1pbmRz IGludm9sdmVz dWk= IGFycmFuZw== IHByb2NlZHVyZXM= IFdoaWNo aXZlcnNhcnk= IGJpbGxz IGltcHJvdmVtZW50 IGluZXY= IGV4cGVjdGF0aW9ucw== IGludGVsbGVjdHVhbA== IHNwYWNlcw== IG1lY2hhbmlzbQ== MjUw YnJlYWs= IFpl IFRlbm4= IEJhbHQ= IGJhcnJlbA== IHN0YXRpYw== bWFubg== UG9saWNl IHRpcHM= IGhhbmRsaW5n Y3Vz b2RlZA== aWx0b24= aXJ5 IGpvdXJuYWxpc3Rz b3Vyc2U= IGNvbWlj IG5vbWluZQ== SVRZ IHZlcnN1cw== IGxvb3A= IHN1cmY= IEluZHVzdA== IEh1bnRlcg== IGJlbGllZnM= aXNhbg== IHNldHVw IGJyZXc= aW1hZ2U= IGNvbXB1dGVycw== Zm9s fSwi IE1lZGFs IHRheHA= IGRpc3BsYXllZA== IGdyYXY= IGZpc2NhbA== TW9u IE1vc2Nvdw== IEtvbmc= IENlbnRyZQ== IGNhbWVyYXM= IE1ycw== IEhheQ== IGF2ZXI= IEtlbGx5 cHk= IHJlcXVpcmVtZW50 IGVudGl0bGVk b21iaWU= IHNoYWRvdw== YWdpYw== IEFr IGVsaXRl IGRpdmlkZWQ= IGhlYWRpbmc= IGNvcGllcw== IGxvc3Nlcw== IHZpdA== a2Vk IEJyeQ== IGFucw== IFN0ZWFt IHJlcG9ydGVy aGVpbQ== IEl0ZW0= IHN1cGVyaW9y ZG9u ZXJlbnQ= w7Y= IHRoZXJhcHk= IHBlYWs= IE1vZGVs IGx5aW5n IGdhbQ== emVy cml0dGVu IHJlc3BvbnNlcw== IGNvbnNpZGVyYXRpb24= IEJpYmxl IGxveWFs IGluc3RhbnQ= IHBt IEZvcmVzdA== w7w= IGV4dGVuZA== IGNvbnZpY3RlZA== IGZvdW5kZXI= IGNvbnZpbg== IE9haw== Y2hlY2s= IHNjaG9sYXJz cGVk IG92ZXJzZQ== VG9w Y291bnQ= IEFyaw== wrc= IDA2 IExB bWQ= IExhdGlu aW1lbnRhbA== IENQVQ== IHN1YnN0YW5jZQ== IG1pbm9yaXR5 IG1hbnVmYWN0dXJpbmc= RXI= b2NvbGF0ZQ== IGF0dGVuZGVk IE1hbmFnZXI= cmF0aW9ucw== IGFwcHJlY2lhdGU= b215 R0JU aWRlbmN5 Qkw= IGd1YXJhbnRlZQ== cG9zaXRpb24= IG9jZWFu Y2x1ZGU= IGhlYWRlZA== IHRhcGU= IGxvb3Nl IGxvZ2lj IHByb3Zlbg== IHNwaXI= IGFkbWl0 aXNh IGludmVzdGlnYXRl IDE5OTQ= c3lsdg== IExvc3Q= Y2VzdA== IDcx IHJlcXVlc3RlZA== IHdpbmRvd3M= IFBva8Op IFdpdGhvdXQ= TWV0 IGJlaGF2aW91cg== IHJlYWRlcg== IGh1bmc= IEtlZXA= IHJvbGVz IGltcGxlbWVudGVk IGJsYW5r IHNlcnZlcw== IEpheQ== IGNpdGVk IEZyaWVuZA== cHJvZml0 YXBvbg== IHJlcGFpcg== aXRlbQ== YXJyYXNz IGNyaXRpY3M= YWRp IEZhdGhlcg== IHNob3V0 IGZvb2w= IDg4 IHByb2R1Y2luZw== IGxpYg== IHJvdW5kcw== IGNpcmNsZQ== IHByZXBhcg== IHN1Ym1pdA== IG5pYw== bW9ycm93 44Or VW5kZXI= IHZpdGFs YXRlcm4= IHBhc3N3b3Jk IHB1YmxpY2F0aW9u IHByb21pbmVudA== IHNwZWFrcw== IGJhcnM= IGRlZXBlcg== IE1pbGw= cG9ydGVk IHdpZA== IGJ1dHRlcg== IHNtb2tpbmc= IGluZGljYXRlcw== S2V5 cm9wcmk= IEZpbGU= YWxsaW5n YXN0aW5n IFJ1cw== IGFkag== IDc5 YXZhbA== IHByZXN1bQ== YnVyZ2g= b25pYw== IGZ1cg== IHBvbGxz aWth IHNlY29uZGFyeQ== IG1vbnN0ZXI= aWdz IEN1cnJlbnQ= RXZlbnQ= IG93bmVyc2hpcA== ZW5kYXI= IGFycml2ZQ== IFRheA== IG51bGw= IFByaXY= IHRocm8= IGtpc3M= Y2F0 IHVwc2V0 YW5nbGU= aXRjaGVz ZWN0b3I= b2xvZ2lzdHM= IEdhbGF4eQ== IGNvcnJ1cHRpb24= IGhpbnQ= ZW50ZXI= IEhvc3BpdGFs IGdyZWF0bHk= IGJlZ3Vu ZXN5 IHNvaWw= IEFudG9u IG1haW50ZW5hbmNl 44Op IGRvemVucw== IGh1bWFuaXR5 IEFsYWJhbWE= IHJvbQ== d29ydGg= YXBpbmc= c3lsdmFuaWE= bGFo IGdhdGhlcmVk R0E= IGF0dGFja2luZw== Zm91bmQ= IFNxdWFyZQ== IGFyYml0 aWN0aW9ucw== IFdpc2NvbnNpbg== IGRhbmNl IFNhaW50 YXJjaHk= IGJhc2ViYWxs IGNvbnRyaWJ1dGlvbnM= IGxpdGVyYXR1cmU= IGV4aGE= cGVydHk= dGVzdA== IGJhYg== IGNvbnRhaW5lcg== bGV0dGVy IGZhbGxlbg== IHdlYnNpdGVz IGJvdHRsZQ== IFNhYw== IGJyZWFzdA== IFBM IHZldGVyYW4= IGludGVydmlld3M= IEFsZQ== IGJhbm5lZA== ZW5nZXJz IFJldm9sdXRpb24= aW50aA== IGNvbmNlcm5pbmc= SVZF IGV4cGVuc2Vz IE1hdHRoZXc= IENvbHVtYmlh ZHM= aXN0YW5jZQ== IGVudGl0eQ== Li4uIg== IHJlbGlhYmxl IHBhcmFsbGU= IENocmlzdGlhbnM= IG9waW5pb25z IGluZHU= bG93 IGNvbXBldGU= IHRob3JvdWdo IGVtcGxveWVk IGVzdGFibGlzaG1lbnQ= aWdlbg== IENybw== IGxhd3llcnM= IFN0YXRpb24= VEU= IExpbmQ= IFB1cg== aXRhcnk= IGVmZmljaWVuY3k= 4oCQ IEx5 IG1hc2s= IGRpc2FzdGVy IGFnZXM= RVJF ZXNpcw== IEhvbGQ= IGNhc3VhbA== YmxlZA== IGVuYWJsZWQ= IEVudmlyb25tZW50 IEludGVsbGlnZW5jZQ== aXBlcg== IE1hcA== IEJF IGVtZXJnZWQ= aXNkb20= IGNhYmlu IHJlZ2lzdHJhdGlvbg== IGZpbmdlcnM= IHJvc3Rlcg== IGZyYW1ld29yaw== IERvY3Rvcg== ZXR0cw== IHRyYW5zcG9ydGF0aW9u IGF3YXJlbmVzcw== SGVy IGF0dGVtcHRpbmc= T2Zm IFN0b3Jl w4PDgsODw4LDg8OCw4PDgg== IEtub3c= IGRlZmVuY2U= IHNjYW4= IFRlbg== IENoYWly IFBI IEF0bGFudGE= IGZ1Y2tpbmc= IGFuc3dlcmVk Ym4= IEthcg== IGNhdGVnb3JpZXM= IHJhdGlvbmFs IGN1c3Q= IHJvYm90 IGNvcnJlY3RseQ== IGdpZg== IGdyYXBoaWNz bWlj IGdyb3VuZHM= IE9wcA== aWF0ZQ== IGRpc3RyaWJ1dGVk IHNhbmN0aW9ucw== IGNoYWxsZW5naW5n dXRv IGluZ3JlZGllbnRz IGludml0ZWQ= IGZvdW5kZWQ= IFJlcXU= ZGVk IGJvd2w= IGJyb3RoZXJz IEhh SU8= IHdhZ2Vz aW1vcmU= b2NpYWw= IHNlZWQ= YXRpdmVseQ== IGFkZHJlc3Nlcw== IElvd2E= YWJldGg= IGF0dGl0dWRl aXNk Y2hpbGQ= IG1vbGU= IGRpc2NvdmVyeQ== eWFyZA== QnI= IDgy IHN1cHBsaWVz ZWxsaW5n IGRpc3Rpbmd1 Q1I= IHJlY2VwdA== IHZlcnQ= IHN3aW0= YmVj ZG9vcg== IFllYWg= IGdhbA== IGludGVyYWN0 IEVTUA== IENT YW1wcw== IGNvbnZpbmNlZA== IG9iamVjdGl2ZQ== IGRpc2g= IFBob3Rvcw== bGFk IGRvd250b3du b2ls aW5jdGlvbg== IHRvbW9ycm93 IENPTQ== IHN1cnZpdmFs c2hvdA== IHNldHRsZW1lbnQ= Q29ucw== IFhib3g= aW50ZXJlc3Q= IFNN YXJnbw== ZW5lc3M= IGV0aG5pYw== YmVyZWQ= TWlu IFRvaw== IGluY2VudA== IENvbW1hbmQ= IG1haW50YWluZWQ= IGJyZWFrcw== YnJpZGdl YXRhcg== YWdn IEZpbmFsbHk= dW5pY2lw IE9udA== bGVmdA== IHJlY29nbml0aW9u ICov IFBlcnM= IHdlbGY= IGFkZHJlc3NlZA== IEthbnNhcw== IHZpcnVz IHdoZXJlYXM= IHBhcGVycw== cmFtcw== IE1pbmlzdHJ5 IHBsZWFzdXJl IGFjcXVpcmVk IGR1cmF0aW9u anBn IGNhbG0= IE5ITA== IGJ1cm5pbmc= IGZvbGRlcg== aWNrZWQ= IFB5 IElsbGlub2lz Q2xhc3M= IEdvZGRlc3M= IHBlcmZvcm1pbmc= IHdlbGZhcmU= amFy SW50ZXI= IGxpbg== IGVuaGFuY2U= IG5vdGlvbg== ZmFyZQ== eXBlcw== IEFyZWE= IGNhbm5hYmlz IERpZWdv ZnM= IE1hbmNoZXN0ZXI= Y29tbQ== aW5pdGU= IGNvdmVyaW5n IFNvdW5k IDE5NjA= IDg0 ZWxlY3Q= emluZw== IGNpdGl6ZW4= IHBob25lcw== IHJhaWQ= IGlnbm9yZWQ= IE9iamVjdA== IHVwbG9hZA== Y2FyZA== IG1vZGlmaWVk IHJvb21z aWFo cmFuZ2U= aGVhc3Q= YWNodXM= IHN1Z2dlc3Rpbmc= 4oCL Z3JhZGU= RWw= IGNsb3RoaW5n IHJo IEhhbg== dW5pdHk= ZW5jaW5n IEF1c3Rpbg== c2VjdXRpb24= dHJh ZGVt IFF1YWw= IGhlYXZlbg== IHN0YWdlcw== IHdlZGQ= cGx1cw== aWZpY2lhbA== IEltbQ== IEhv aWV0aWVz IHBocmFzZQ== IGJyaWxs YWN0b3J5 IHByb3ZpZGVycw== IHNpbGVuY2U= IGFlcg== IEFJ IEFkdmVudHVyZQ== IHBsYXRmb3Jtcw== IGRlbW9uc3RyYXRlZA== IGludGVyZg== aW5ndG9u IHJhY2Vz IGdyYWRl dWx0YW5l IFRocm91Z2g= ZmFsc2U= IGJvdw== IEFC IGZsYXZvcg== IGhpc3Rvcmlj Z292 IGNvbG91cg== IHZpZXdlZA== IEVtYWls ZWxjb21l IGludGVydmVudGlvbg== IGRpdmVyc2l0eQ== IHBlcmlvZHM= IHJldmVyc2U= IFZlcnk= IHF1b3Rl IExlZnQ= dGhyb3VnaA== IHNjcmV3 IGxhbmRpbmc= IHBpbGw= IHdldA== IHByb3Rlc3RlcnM= IHJlcGVhdA== YXZlZA== ZXJr IHNhbGFyeQ== IFBlbm5zeWx2YW5pYQ== U3RpbGw= IG1heW9y IGtpdGNoZW4= IGZlYXR1cmluZw== IE11c2V1bQ== IFRvdXJuYW1lbnQ= IEZhbA== IHNlcnZlcnM= VUM= IGFueWJvZHk= aW1n IFRyYWRl aXh0dXJl dGhlbGVzcw== IGZpbmFuY2U= IGNsb3Npbmc= IFBhdHJp aWFj YWJlbA== ID4+ b3JvdXM= IGZpcm1z c2NyZWVu dW5h IGVtYmFycmFzcw== dWxzZQ== IGxldHRpbmc= IHRocmV3 aWxleQ== IGNoYW5uZWxz bGFu IFZlZ2Fz IHNlYXI= IGZhbnRhc3RpYw== YXJyZQ== dXp6bGU= IERlcg== VGhvc2U= IHN3aW5n IHNoZWV0 aW5kZXg= Y292ZXI= b2dhbg== IHZhcmlhYmxlcw== IFRlY2g= IHNwb2tlbg== YWNoZWw= IERh IE1vdW50YWlu IGxvYWRlZA== IGZvb3RhZ2U= dmVyc2lvbg== IHVubA== IFBob2VuaXg= IHRocm93aW5n IGZpcmluZw== IHRyYWNraW5n IHdpZHRo IHN0cnVnZ2xpbmc= cm9vbXM= b3Rpb24= IG1vbnRobHk= IFNlcnZlcg== IGVnZ3M= b3Blbg== TUM= IDE5OTM= IGhpcmVk IHN0YXllZA== IEFsbGVu IHN0cm8= IDk4 c3RlcA== IFR1cmtpc2g= IGZhYnJpYw== aXN0aW5n IERvbQ== IGRhdGVz IHByb24= IGJhc2tldGJhbGw= IGx1Y2t5 IEFyYWJpYQ== IGFzc3VtZWQ= ZXN0eQ== IGFmZmFpcnM= IGdsYWQ= IEluZGVlZA== IEZB IFdvcmQ= IGpvaW5pbmc= aWZpY2U= cHJlYWQ= aXJ0cw== IFNlbGVjdA== IHBvcHVsYXRpb25z YXdhcmU= IG5vc2U= IGNvbXBsYWludHM= c3RhcnQ= IHNjb3Jpbmc= VGhhbmtz IG1pbmluZw== IHZpc2l0b3Jz U0g= IGRhbWFnZWQ= IGNoYXJhY3RlcmlzdGljcw== IFBlbnQ= REM= IDgz IFNpeA== cmF0ZXM= IGZsYWdz IEJyZXc= ZG9n TWFyaw== Ly8vLw== IGV4ZWN1dGlvbg== IGpva2U= cGhvbmVz IHRlc3RpbW9ueQ== IG9ic3Q= UUw= IEN1dA== IHN0dWRpZWQ= IE5pbnRlbmRv aWNrZXQ= IE5CQw== IGxhZA== IEJyYQ== IE1vaA== IGtlcm5lbA== IG92ZXJ3aGVsbWluZw== IGFnZWQ= IGFwcGxpY2FibGU= IENvbmQ= IHJvYWRz IEJsb2Nr bWFkZQ== b2RnZQ== IGNvbW1hbmRz IG9mZmljZXM= dmVsYW5k IHR1dA== IHJlY2VpdmVy IEZybw== IHNob3BwaW5n IGlQ IFN0cmU= IEFCQw== IGVudGVydGFpbm1lbnQ= IEJvdw== b3J0ZWQ= TWM= IHJlYWRz Z3JhZA== IENvbGxlY3Q= IOKIkg== IENhcGl0YWw= ZWRlcmF0aW9u IGVtcGxveWVy IGludm9sdmVtZW50 IGFueGlldHk= YWxpYQ== IHJvb2Y= IEFtb25n IERlbW9jcmF0 IHN0YXRz IFZpbGw= IGNvbnN0aXR1dGlvbmFs IHJlZmVycmluZw== aXR0eQ== IHRhY2tsZQ== b3V0dWJl IGJhY2tlZA== IEhvbmc= IEJyb2Fk IGVsZQ== IE90dA== IDE5OTI= aG91cg== YWNodXNldHRz Q2Fs IGRlZmVhdGVk IDgx ZXNw IHNlZW1pbmdseQ== d2Fz IEplbm4= IEt1cmQ= IGdlbmU= IGRpc2NvdW50 UmV0 RUNU KCk7 IGNsdWJz IHNpZA== IE1hcnNo Q2hlY2s= IHBw IEVhZw== aWRlc3ByZWFk IGJlaW5ncw== RlQ= IGludHJvZHVjdGlvbg== IENoYW5nZQ== QVJE IDExMA== YWRvd3M= aWVyY2U= IG1lYWw= YXV0aG9y IEJhbmc= bGFob21h IHJhbmtz MjAxMQ== Pz8/Pw== bWF4 IGNvbGxhcHNl IG9wZW5z IGVjaG8= IHNvcGg= IHJhY2lzdA== IGVub3Jtb3Vz IHdhdmVz IHRhcA== IGNvbXByZWhlbnNpdmU= Li0t IFJveQ== IGZhcm1lcnM= UmVsYXRlZA== YWlyZWQ= cm9uZXM= IENyaW0= IHByb3BvcnRpb24= IGRlc2lnbnM= IG5lZ290aWF0aW9ucw== IHZpcnR1YWxseQ== IEJhdG1hbg== IHdhcm4= IGxlZ2l0aW1hdGU= bWF0ZQ== IGNvbnZlbnRpb24= LCw= bmV0aWM= IFNE IGNvbnNpc3RlbnRseQ== IGNvbXBlbnNhdGlvbg== IHB1bmlzaG1lbnQ= IHll IHRpZQ== IEJ1cmVhdQ== aXJsZg== IEJ1 IEFyZW4= IFBoaWxpcHA= IGtuaWZl IG1lbW9yaWVz IFJvc3M= IGFuZ2xl IDg2 IFRodW5kZXI= IHJlbmQ= IFRvdXI= IGNvdW50cw== c3VuZw== IEltcA== IGVkdWNhdGlvbmFs IGFjY2Vzc2libGU= Q09N IGRyZXc= eWVy R2w= YW1pbmU= T1JU T0I= SUI= bWFzdGVy IHRyaWFscw== b2d5 aGFy IFRydXN0 IHByZWZlcnJlZA== aXJsZnJpZW5k IE5ldg== IGJpbg== IGNvdw== UGFnZQ== IHNpZ25hdHVyZQ== IEJM NzAw IHJldGlyZWQ= IGJ5dGVz IG5laWdoYg== IExlZ2VuZA== IGRldmFzdA== IHN1c3BlY3RlZA== aXNvbnM= IFBva8OpbW9u c2NhbGU= IGNhcGFiaWxpdGllcw== IHJldmVs IGNoZWVzZQ== ZHk= aWdyYW50 IGZhaWxpbmc= Yml0cw== IEhlcm9lcw== IEdob3N0 IFNjaWVudA== IGFwcG9pbnRlZA== dXJp IGluc3RpdHV0aW9u IGV4cGFuZGVk Z3JlZw== IG1vbml0b3Jpbmc= IHBvZGNhc3Q= IGNvYWxpdGlvbg== IDk2 Sm8= IHN0b2xlbg== IFNhYg== IHN0b3Bz IGhvbGlkYXk= IGludHI= Q2Fy QmxhY2s= IExHQlQ= IHdhcm1pbmc= IEFuZGVyc29u IDg5 IHByb2R1Y2Vy TWVk IGFjY3VyYWN5 IE1hcnZlbA== aXphYmV0aA== IFBhdHJpY2s= bW9ueQ== IG1pbmk= YWNsZXM= IG92ZXJ0 dGhleQ== IG1lbWJlcnNoaXA= IFZlbg== IGV4Y2g= IHJlbW92YWw= IERhdmU= VFk= bWFk IEZpbmQ= IGFkZXF1 IGVj IHRlZXRo IGVtb3Rpb24= IHBlcm0= IHNvbGVseQ== ZGI= IGV4dHJhb3Jk SUdIVA== Y2Fs IGd1aWRlbGluZXM= IGR5aW5n IHN1c3BlbmRlZA== IFByZW1pZXI= IEFudGhvbnk= ZWx2ZQ== IGRhZA== IEV0aA== IEZvb3RiYWxs IGFiYW5kb25lZA== IDw8 IG1hcmNo IGhvcnJvcg== 4oCmIg== IGNoaWxkaG9vZA== IGNhbXBhaWducw== IGx1bmNo IEFsYmVydA== YmxvY2s= 4paI4paI b3VuZGluZw== IGJvbmU= b3JnYW4= YWRlcnM= IEZsYXNo IERyaXZl IHRvbmlnaHQ= IHdhcnM= IEZM IGZvcm1hdGlvbg== Y29uc3Q= TmV3cw== IGNvbXBl b3Jpb3Vz IFN0YWZm IGRpc2N1c3Npb25z IFByb3RlY3Rpb24= IEphbQ== IGNyaXRlcmlh IGluc3RhbGxhdGlvbg== IGFjY29tcGxpc2g= aXp6YQ== IHB1Ymxpc2hlcg== IHJlc2N1ZQ== IFRyeQ== VUxM IFNvbQ== IEhvcA== b3JldA== dGhz b3Jkb24= IHBvY2tldA== IEludg== RG93bmxvYWQ= IENyaW1l IGJlbmU= IEd1aWRl IEFzc2VtYmx5 IHBhcmFtZXRlcnM= SUU= IEFsZXhhbmRlcg== IGNvbmNlcnQ= IFNjaGU= IHNob2Vz IHZpc2l0aW5n IHJlY2FsbA== IGJ1Yg== IHJ1cmFs IGNvbmNyZXRl IFJvcw== TmV4dA== UnVzcw== IGxvYW5z IFNoaWVsZA== IHRyZW0= aGVtYXQ= a2c= IEhhcnJpcw== aXNpdGlvbg== IE1vdmU= IEZD IGZhdGU= IENobw== IHRpcmVk IHByaW5jaXBhbA== aGlzdA== aWVuY2Vz YXRoeQ== IHNldmVudA== IG1vb2Q= IHN0cmF0ZWdpYw== IGRpc2Vhc2Vz IGZvcnVt IHRlbXBvcg== IGhlYWRxdWFydGVycw== UGFy aWdl ZmxpeA== IGd1aXRhcg== IDk0 T25seQ== IHJlbGVhc2Vz cm9waA== PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0= IDYwMA== IENvbnRpbnVl aWdhdGU= IENyaXQ= c3lzdGVt IGRpc2FibGVk IHVuZXhwZWN0ZWQ= aXRodWI= IHVuY2xlYXI= IEVzdA== IGNvbnRyYWQ= IHN0cmF0ZWdpZXM= dmVudHVyZXM= IHBhc3NhZ2U= QU1F IGltcHJvdmluZw== IHJldmVhbHM= IGRlY3JlYXNl b3Zh IGFubm95 IFNob3J0 IExpYnJhcnk= IGN5YmVy bmVsbA== IEh1cg== IENC IHBob3RvZ3JhcA== VUk= IHNlZA== R2U= IDg3 IGRpdmVyc2U= IGVuY291cmFnZWQ= IGNvbnNwaXJhY3k= IGJpcmRz IG9wZXJhdG9y IGhhbmRmdWw= IGNsYXNzaWZpZWQ= Pyk= IGRyYW1hdGlj IGludmVzdGlnYXRvcnM= aXRv IHdpZGVzcHJlYWQ= IFJvb20= LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ== IGNvbGxlY3RpdmU= IGpvdXJuYWxpc3Q= U3RyaW5n IHRlbXBlcmF0dXJlcw== aWxh IGd1aWQ= IGluc3BlY3Q= IG1pc3NpbGU= IE1heW9y IG1hbnVhbA== IHNpbXVsdGFuZQ== IHJhdGluZ3M= IHN1Y2s= IDk3 IHVuaXZlcnNhbA== IHBoYXJt IGRpc3J1cHQ= aWFubw== QVY= IGZ0 IHN0YXRpc3Q= b2xkcw== IFdhbGtlcg== cGhw IHVuZGVydA== IExhcw== aXNob3A= bnRpbA== cmVzaG9sZA== IFdoZXRoZXI= TXM= IGRlbnk= IENsb3Vk IHByb3ZpZGVy IHN1cnZpdg== IFVwZGF0ZQ== aGFz IG1pc3Rha2Vz Y2hhcmdl cGxlZA== cml0eQ== IG5vZGU= IE1hc3NhY2h1c2V0dHM= b29scw== bGljYXRpb24= IGZhaWxz ZW1hbGU= b3Jp YmFja3M= IHNoaXJ0 ICcn IE5BVA== IHdhdGVycw== ZWxzb24= IGVhc2U= IHNjYXI= IGNvbnRlbnRz bWluZA== IGNvbnRyaWJ1dGlvbg== IHNocg== IGhhbmRlZA== IHN0YWJpbGl0eQ== IHRyYXZl RW0= IG1pcnJvcg== MTIz IHdlaWdo IGZpY3Rpb24= b3V2ZXI= aXN0YW50 cml0aW9u IEZlZA== IHBoeXNpY2FsbHk= IHN0YWtl IEFydGljbGU= IEFyYw== IExld2lz IE1pbmQ= IGRlbW9uc3RyYXRl IHByb2ZpdHM= dmlzaW9u b21pYw== b2xpZA== IGJhdHRsZXM= IGRyaXZlcw== IGVhc3Rlcm4= IFNvbnk= ISEh YXJhdGlvbg== dmFyZA== IEdM cG9ydGF0aW9u IDky IGxhd21ha2Vycw== IHByb3RlY3Rpbmc= IEVQQQ== IHllYWg= IHNoYW1l b2xwaA== ZXZlbg== eGl0 IGF0dGFjaA== IHJlcHJlc2VudGluZw== IG9icw== IFV0YWg= aWZmcw== IEZyZWVkb20= w7M= QUs= IGluY2lkZW50cw== aXRhZ2U= IHZpZXdlcnM= Y2Q= IG1vdXNl IGNsYXI= IGFjY29yZGFuY2U= IGJvdA== Y29y IFN1bW1lcg== aGVsZA== IGlubm9jZW50 IGluaXRpYXRpdmU= b2xz X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18= IHNwb3Rz cGFjZQ== IGNvbnZlbnRpb25hbA== IGNvcnBvcmF0aW9ucw== IGJsb2NrZWQ= SEQ= YXR0ZXJlZA== IHJlZmVycw== IGJ1Y2s= IERpZ2l0YWw= MTIw IHRvcGljcw== VEY= xIE= YnJpZA== cmVlbWVudA== IHVuZGVybHlpbmc= IE1lbWJlcg== IGludmVzdGlnYXRpbmc= IHByZWduYW5jeQ== IHRvdWNoZG93bg== IEJhbmQ= IENhbGxlcg== IGluc3RhbmNlcw== UFA= d2E= R29vZA== IDE5OTE= IENvbGQ= IGZlYXJz IHJlbWFya3M= hpI= YXRhbA== IG1pdA== IGV4cGVyaW1lbnRz aXB0 Q29sb3I= aW5kdQ== VXBkYXRl IDkz QWc= IOU= YW5jb3V2ZXI= Qm90aA== IGp1ZGdlcw== T2JqZWN0 IHN0ZXJl dW1ibg== IHBhcnRpY2lwYXRpb24= IFN0YXJz IEplcmU= IHdlZWtseQ== IEJhbg== IGNvbnZlcnNhdGlvbnM= IFBpdHQ= dXo= IEluZGlhbmE= IEtpY2s= IGluZmVjdGlvbg== IGhlcm9lcw== IHNldHRsZWQ= IHN0cmlw IGhhbA== IGR1bXA= IFNjaQ== IGxlcw== IHJlZmVyZW5jZXM= IFVSTA== IEJyaWRnZQ== IHdhbnRpbmc= Rm9yY2U= IGV4Y2x1cw== TWVhbndoaWxl bW4= IGdlbnRsZQ== bWFrZXI= c2VuYWw= IEdybw== b3VyaQ== IFJhaW4= IEFsbGlhbmNl IGxpZnQ= ZWxh U0Q= IENsZXZlbGFuZA== IHJhbmtlZA== IHN0YWRpdW0= IGRlYWRseQ== 5Lg= IHJpZGluZw== YXJpYQ== IEFybW9y IGRvY3VtZW50YXRpb24= IEdyZWVjZQ== cmVlaw== IGxlbnM= IFNh IGdyb3Nz IEVtZXI= YWdlcnM= IER1Yg== IFJo IEFNRA== IGFycml2YWw= IGRlc2VydA== IHN1cHBsZW1lbnQ= IFJlc3A= IGtuZWU= IG1hcmdpbg== Zm9udA== b2dn MjAxMA== IFBpcg== IFByb20= aXZhbHM= IGludGFrZQ== IGRpZmZlcmVudGx5 dWdz IGJpdHM= Y2x1ZGVk IHNlYXJjaGluZw== IER1 dW1ibGU= IGZ1bmN0aW9uYWw= IEJhbHRpbW9yZQ== IENvdWxk IGRlc2lyZWQ= IGNpcmN1aXQ= IEx5bg== IEdP IEZhbHNl cmVwcmU= Jzo= YWx0aWVz IG1pbmlt IGRyb3Zl IFNob3VsZA== IGhpcA== IHByb3M= IHV0aWxpdHk= IE5hdHVyZQ== IE1vZGU= UHJlc2lkZW50 b3Bw cmF0 Zm9ybWFuY2U= IGNvbmNlbnRyYXRpb24= IGZvbnQ= IEJ1ZA== IGFtaWQ= IHJldmVycw== IE1M QmFy IGludGVyYWN0aW9u IGp1cmlzZA== IHNwZWxscw== ZGVw Zmls IGNpdmlsaWFucw== dXR0ZXI= IENvb3Blcg== IEJlbG93 IGVudHJhbmNl IGNvbnZlcnQ= IGNvbnRyb3ZlcnN5 b3dlcmVk IGNvbnRyYXJ5 IGFyYw== IEV4ZWN1dGl2ZQ== IE9mZmljZXI= IHBhY2thZ2Vz IHByb2dyZXNzaXZl d2lkdGg= IHJlc2VydmVk dm9s IFNhbXN1bmc= IHByaW50ZWQ= IGNlbnRlcnM= IGludHJvZHVjZQ== IEtlbm5lZHk= IG9kZHM= IHN1cmVseQ== IGluZGVwZW5kZW5jZQ== IHBhc3NlbmdlcnM= cmVwcmVuZQ== IEJlaA== IGxvdmVz IEVTUE4= IGZhY2lsaXQ= IGlkZW50aWNhbA== IGRvY3Q= IHBhcnRuZXJzaGlw Y29uZg== IEhpZGU= IGNvbmZ1c2Vk IENvdw== TWVu IHdyZXN0 IElyYXFp IGhvbGVz IFN0dWRpZXM= IHByZWduYW50 aGFyZA== IHNpZ25hbHM= SVg= IHB1bGxpbmc= IGdyYWR1YXRl IG5vbWluZWU= RGF0ZQ== IHBlcm1pdHRlZA== IOKCrA== IE9rbGFob21h U3RhcnQ= IGF1dGhvcml6ZWQ= IGFsYXJt IENvcw== dmFu IGdlbmVyYXRpb25z Y3VsYXI= IGRyYWdvbg== IFNvZnR3YXJl IEVkd2FyZA== IGNvbnRyb2xsZXI= U2Vu Z2VyZWQ= IFZpaw== IGFwcHJvYWNoZWQ= VGhhbms= IGNhbmNl IGZvcm11bGE= IFNtYWxs IHdlYWtuZXNz IHJhbXA= aXR1ZGVz anVk IGJyaWxsaWFudA== IGFjY3Vz c291cmNl IDgwMA== IEV2aWw= U3c= IGhvbWVsZXNz d2Vlaw== aWVucw== cmljcw== IFRoaXJk VE8= IG9yZ2FuaWM= IHByZXNlbnRhdGlvbg== YWdo IERvd25sb2Fk dmF0aW9u IGFzc2VtYmx5 b3JhYmxl aG9sZGVycw== IEJlcm5pZQ== IEhlbHA= IHRvbmc= IEZpZ2h0 IGJlYWNo Qm9vaw== IExpYw== IHJ1c2g= IFJvdW5k b3Vw IE1hcng= IGNhbGN1bGF0ZWQ= IERldmls IFNhcmFo IG9jY2FzaW9uYWxseQ== IGJ1bGxldA== QXZhaWxhYmxl Z2F0ZQ== IDkx IGhvc3A= IHByb21pc2Vz IEhJVg== IFN0YWRpdW0= IFN0b2Nr IENvcnBvcmF0aW9u Z2FnZQ== Tkc= IENyZWRpdA== IHNuZQ== aWJs IGFjY3Vt c3VjaA== IHRlcnJvcmlzdHM= IGNvbnNjaW91c25lc3M= IFpo IGRyYW1h b29sYQ== cGlyYXRpb24= IGxhYm91cg== IE5pbg== IHV0dGVy IGRlbW9jcmF0aWM= IGFzc2Fzcw== aWxhdGlvbg== IGdlc3Q= IGFicm9hZA== IG1ldGFi IHNvcnRz IGZsYXY= VUI= IG1n IE5vdGhpbmc= IE9k IG11c2ljYWw= MjAwOQ== IGRyb3Bz b2NhdGVk YXRlcmFs MDAwMDAw IGdyZQ== IGVxdWFsaXR5 IGJ1cmRlbg== IHZpZw== IExlYWRlcg== LS0tLS0tLS0tLS0t IGNlcmVtb255 IGZpZ2h0ZXI= IGFjdG9ycw== IOY= YW1hbg== Rmk= IGFsaWdu cHV0ZXI= IGVsZGVy IE5TQQ== IHJlcHJlc2VudGF0aW9u IE9udGFyaW8= SVRI dXNhbGVt IGhhcmFzc21lbnQ= aXR6ZXI= IHN5bXA= IGJveGVz IERS IG1hbmlmZXN0 YXRyZQ== IF4= IGRpZXM= bGV0b24= IG1pc3Npb25z ZXRoZQ== IHJlc29sdmU= IGZvbGxvd2Vycw== IGFzYw== IGtt bG9yZA== YW1tZWQ= IHNpbGVudA== IEFzc29jaWF0ZWQ= IHRpbWluZw== IHByaXNvbmVycw== IEtpbmdz IEZpdmU= IHRvd2Vy IGFwcHJvYWNoZXM= IHByZWNpc2VseQ== IGJ1cmVhdQ== IE1vdGhlcg== IElzcw== IGtleWJvYXJk aXR1YWw= IGZ1bmRlZA== IHN0YXlpbmc= IHBzeWNob2xvZ2ljYWw= IG1pbGU= IExlb24= IEJhcmI= d2lsbA== IHdpZGVy IEF0bGFudGlj IHRpbGw= IFJvbWU= cm90 IGFjY29tcGFu IGZsb3Vy YWNv V29ybGQ= IEV4cHJlc3M= IFl1 Q29y IHBsZWFzZWQ= cGFydHk= IHBvaW50aW5n IGluZmxhdGlvbg== IHJveQ== ICks YWluZXI= IHdlZGRpbmc= b3Jtb24= IHJlcXVpcmluZw== IHF1YWxpZmllZA== IHNlZ21lbnQ= RU5E IHNpemVz ZWFscw== IGNvcnJ1cHQ= YXNzYWRvcg== IGNlbGVi IGRyZWFtcw== IE1lc3M= IGNoZWNraW5n IFZlcnNpb24= IHByZXBhcmluZw== IGFjdGl2ZWx5 IERpZmY= IGx1eA== IFdpbnRlcg== YWN0ZXJpYQ== IE5F IGRlcHV0eQ== IHRyYW5zZ2VuZGVy IHN1bW1hcnk= IGluaGVy ZXJpZXM= Y2hhcg== IFlhbg== IGtub2Nr IFBhdGg= IGxpcA== cm9sbGVy IGltcHJlc3Npb24= IGNlbGVicmF0ZQ== IHNsaWRl IGd1ZXN0cw== IGNsaXA= RlM= IHNhdmluZ3M= IGNhcHRhaW4= IGxlZ2FjeQ== IERlbnZlcg== IHdvdW5kZWQ= dGFib29sYQ== QUNU IHB1cnN1ZQ== IG94eQ== IHE= IHNlbWk= IE5lZWQ= IEFmZmFpcnM= IG9ic2M= IGNoZWNrZWQ= IGR1YWw= Q29kZQ== IE1E bGVt dWx0eQ== IMKp IEVsaXphYmV0aA== IGNlbnR1cmllcw== YXJkZWQ= c3Jj IGV2aWRlbnQ= ZW5uaXM= YXRpbg== IHVuZW1wbG95bWVudA== IE1hcmlv IGludGlt Q2hyaXN0 IGJpb2xvZ2ljYWw= IHNvbGRpZXI= IEFkZGVk IG1hdGg= IEdpbA== IGJpYXM= IGRhdGluZw== IE9jZWFu IG1pY2U= TXVz aGlyZQ== IFRlcw== U2VydmVy bGltaXRlZA== U2l6ZQ== IG1ldGVycw== IHJvY2tldA== ZXNzZWU= IGNlcnRpZmljYXRl IElyYW5pYW4= QVNT IGdyaWQ= RGVj IHJvbGxpbmc= Y29tbXVu IFN3ZWRlbg== YnVyeQ== IHRpc3N1ZQ== IHJhY2lzbQ== IExvY2Fs IG15c3Rlcnk= IGV4YW1pbmU= IHN0ZW0= IHNpdHM= IGhvcGVk b3Rpbmc= IGRpYWxvZ3Vl IHBlcnN1 V2F0Y2g= bGF5 TUFO IGNocm9uaWM= IFBvcnRsYW5k bWFya2V0 IFNFQw== IHBhcmFsbGVs IHNjYW5kYWw= IGNhcnJpZXM= IHBoZW5vbWVub24= aHVtYW4= YWNrZXI= IE94 IHJldGlyZW1lbnQ= dGFpbm1lbnQ= b3ZpZQ== IEdlYXI= IGR1dGllcw== IGRvc2U= IHNjcm9sbA== TUI= aW5m IHNhdWNl IGxhbmRzY2FwZQ== cmVkZGl0 IENoYW1waW9uc2hpcA== IFJlZGRpdA== YWxpZA== IGNvaW4= IG92ZXJz IHBvc3Rpbmc= YWJvdXQ= IGZlbA== YW5keQ== IGJvbGQ= IGZvY3VzaW5n ZWZmZWN0 R1I= IGRlZW1lZA== IHJlY29tbWVuZGF0aW9ucw== IHN0ZXBwZWQ= IHZvdGVy IERlZXA= IEluc3RhZ3JhbQ== IG1vZGVyYXRl IE1hcnlsYW5k IHJlc3RyaWN0ZWQ= IE1C IENoYWxs IHRvYg== IGNpcg== IE9jYw== IEV2ZXI= IGNvbGxhcHM= SU5GTw== PS0= IFBpY3Q= IEFjY291bnQ= bmM= IG91Z2h0 IGV4cG9ydA== IGRydW5r KCc= IHdpc2U= IE1vcnQ= bmVjZXNz IGFuY2VzdA== IEluY3Jl IGZyZXF1ZW50 bWly IGludGVycHJldGF0aW9u IGRlcGVuZGVudA== IGNvaW5z IEJvbA== VmlkZW8= IEp1c3Rpbg== IGZhdGFs IGNvb2tpbmc= IGNvbmZ1c2lvbg== aXBoZXI= IGN1c3RvZHk= IE1vcmdhbg== b21hY2g= IEdvdmVybm9y IHJlc3RhdXJhbnRz ZWxpbmc= IGFja25vd2xlZGdlZA== IHRoZXI= IGdlbmVz Y2hpbmc= SGV5 IHRhY3RpY3M= IE1leGljYW4= IHZlbmQ= IGhlcw== cXVlcg== IG5vdGluZw== IENhbWVyb24= IHRhcmdldGluZw== cm9jaw== IGNyZWRpdHM= IGVtb3Rpb25z IHJlcHJlc2VudGF0aXZlcw== bmV3cw== IGxlZ2lzbGF0aXZl IHJlbW92aW5n IHR3ZWV0ZWQ= IENhcnRlcg== IEZpeGVk IGZvcmNpbmc= IHNwZWFrZXI= IG1hbGVz IFZpZXRuYW0= bGluZWQ= IGNvbmNlcHRz IHZvaWNlcw== b2ly IFRyaWI= V2hl IEplcnVzYWxlbQ== IFNhbnQ= IGN1bA== IGxhZHk= IEhhd2Fp IGFydHM= IElubg== IE1hY2hpbmU= IEVtcGVyb3I= IHNsb3Q= Z2x5 IFByb2Nlc3M= SUlJ IGF0aGxldGVz IFRlbXBsZQ== IFJlcHJlc2VudA== IHByZXNj IHRvbnM= IGdvbGRlbg== IHB1bmNo IEdS aXZlcnBvb2w= IGVuYWN0 IGxvYmJ5 IG1vcw== IHBpY2tpbmc= IGxpZmV0aW1l IGNvZ25pdGl2ZQ== RWFjaA== em8= IGR1Yg== IGNvbnNpc3Rz b2xu IGZlc3RpdmFs YW1vdXM= IGludGVsbGln d29yZHM= IFNtYXJ0 IGRlbGU= IGxhcHQ= IG1hZ2ljYWw= IFNpbg== YnVz dXJpdGllcw== aWdodGg= IFJ1Ynk= IFN1cmU= b2x2aW5n IGp1bg== T1NU IGltcG9zZWQ= IGFzdHJvbg== IGNvcnJlbA== IE5T IEtpdA== IEZ1dHVyZQ== YnVybg== IGltbXVuZQ== b2N1cw== IGNvdXJzZXM= IFN0cmluZw== IGxlYW4= IGdob3N0 IG91dGNvbWVz IGV4cGVuc2U= IGV2ZXJ5ZGF5 IGFjY2VwdGFibGU= QWg= IGVxdWlwcGVk IG9yYW5nZQ== RlI= IER1dGNo VGhvdWdo IFJhbms= UVU= IFJvYmVydHM= d2hhdA== cmVuZA== IGRpc2FwcGVhcg== IHNwYXdu IExhbQ== b2lz IGRlc2VydmU= IG1pbmltYWw= IG5lcnZvdXM= IFdvdWxk IHJvb2s= IFZhbmNvdXZlcg== IHJlc2lnbg== c2hpcmU= IFdvcmtz IEJ1aWxk IGFmZm9yZGFibGU= IEdhcnk= IEFyZW5h IGhhbmdpbmc= IGltcGxpY2F0aW9ucw== IFNvbmc= IG1haW50YWluaW5n IGd1YXJkcw== Q09O IGRlcml2ZWQ= IGV4ZWN1dGVk IHRoZW9yaWVz IHF1b3RlZA== IEFuZHJl b2dh c2VsZXNz aW5mbw== IEJlbGc= IHRlYXJz IFN1cnY= IGJpcnRoZGF5 aWdpb3Vz aW1tZXI= IHNwZWN0cnVt IGFyY2hpdGVjdHVyZQ== IHJlY3J1aXQ= YXJtYQ== VGFibGU= IG1vbnN0ZXJz IEdvdg== IGRlc3RpbmF0aW9u IGF0dHJhY3RpdmU= IGZvc3M= IE1vcmVvdmVy IHByZXNlbnRz VEhF IHJlcGx5 cHRvbg== IGN1bQ== IGRlbGlnaHQ= IGFmZmVjdHM= IGRvbmF0aW9ucw== IFRveQ== IEhpbQ== TUVOVA== IG92ZXJjb21l aXRjaGVk IEZhbnRhc3k= IEhhdA== IEJlYXN0 Ym90dA== IGludmVzdGlnYXRpb25z UnVu IGh1bnRpbmc= ZGk= ZnVuZA== IHNlc3Npb25z ZXN0eWxl IHBvcnRyYXk= b2lkcw== WWVhaA== IGNvbW11bmljYXRl IGNvbWVkeQ== IFlhbmc= IGJlbHQ= IE1hcmluZQ== IHByZWRpY3RlZA== UGxheQ== IGltcG9ydGFudGx5 IHJlbWFya2FibGU= IGVsaW1pbmF0ZQ== RGF2aWQ= IGJpbmQ= VklE IGFkdm9jYXRlcw== IEdhemE= aW1w REI= IE5h IFNpbWlsYXI= SUVT IGNoYXJpdHk= dmFz bWF0aA== IOKW b2tlcg== bmR1bQ== IGNhcHM= IEhhbA== MjAwMA== ZWFu IGZsZWV0 IHJlY3Jl UmlnaHQ= IHNsZWVwaW5n aWppbmc= a2luZA== IGRlc2lnbmF0ZWQ= w6Q= IGFuaW1hdGlvbg== a2Vl IEludHJvZHU= IC8+ IGRlbGF5ZWQ= IHRyZW1lbmQ= IGN1cmlvdXM= VXNl IGxlY3Q= ZGFt IGlubm92YXRpb24= IFBvaW50cw== IGxvYWRpbmc= IGRpc3B1dGU= Y3RpYw== aXJkcw== IEJZ IG51cnM= IFZhbHVl SU9OUw== IEh1bQ== IHRlbXBsYXRl bWVycw== IGFwcGVhcmFuY2Vz IEVudGVydGFpbm1lbnQ= IHRyYW5zbGF0aW9u IHNha2U= IGJlbmVhdGg= IGluaGli IGV1cm8= YWJldGVz IHN0dWR5aW5n IE1hcw== IHBlcmNlaXZlZA== IGV4YW1pbmVk IGVhZ2Vy IGNvYWNoZXM= IGltcGVy Y2hp IHByb2R1Y2Vz Iiku IEV2ZXJ5b25l IG11bmljaXA= IGdpcmxmcmllbmQ= IGhpcmU= IFZpY2U= IHN1aXRhYmxl b3B5 IGluZXF1 IER1a2U= ZmlzaA== Zmlyc3Q= IE9icw== IGludGVyaW9y IEJydWNl IFJ5 IGFuYWx5cw== IGNvbnNpZGVyYWJsZQ== IGZvcmVjYXN0 IGZlcnQ= b3JzaGlw IERydWc= IEFMTA== OiI= dGh1cg== IE1haWw= IGJhbGxvdA== IGluc3RhbnRseQ== IENoYW5uZWw= IHBpY2tz IDE5ODk= IHRlbnQ= b2xp IGNpdmlsaWFu Ymxpbmc= ZWxsbw== YnU= IGluY2g= IGxvZ28= IGNvb3BlcmF0aW9u IHdhbGtz IGludmVzdG1lbnRz IGltcHJpc29u IEZlc3RpdmFs IEt5 IGxlZ2FsbHk= IGdyaQ== Y2hhcmc= U2w= IHRocmVhdGVuaW5n ZHVjdGlvbg== Zmxvdw== IGRpc21pc3NlZA== aWJyYXJpZXM= Y2Fw ZWxl IE1jRw== IEhhcnZhcmQ= IENvbnNlcnZhdGl2ZQ== IENCUw== cG5n IHJvb3Rz IEhhdmluZw== dW1ibGVk IEZ1bg== XC8= IFNlYXJjaA== cGxleA== IGRpc2N1c3Npbmc= IGNvbnRpbnU= IFRhaQ== IFdpaw== RnJlZQ== Zml0 IHJlZnVzZQ== IG1hbmFnaW5n IHN5bmQ= aXBlZGlh d2Fsaw== IHByb2Zlc3Npb25hbHM= IGd1aWRhbmNl IHVuaXZlcnNpdGllcw== IGFzc2VtYg== dW50dQ== RmluYWxseQ== QVNF IEF1dG8= IEhhZA== IGFubml2ZXJzYXJ5 TEQ= IER1cg== IFVsdGltYXRl aWhhZA== cHJvZHVjdA== IHRyYW5zaXQ= IHJlc3RvcmU= IGV4cGxhaW5pbmc= IGFzc2V0 IHRyYW5zZmVycmVk IGJ1cnN0 YXBvbGlz IE1hZ2F6aW5l IENyYQ== IEJS Z2dlZA== IEhF TWljaA== YmV0 IExhZHk= eWx1bQ== ZXJ2ZXM= IG1lZXRz d2hpdGU= TG9n IGNvcnJlc3BvbmRpbmc= IGluc2lzdGVk R0c= IHN1cnJvdW5kZWQ= IHRlbnM= IGxhbmU= IGNvaW5j aG9tZQ== IGV4aXN0ZWQ= ZWN0ZWQ= IERvdWJsZQ== bGFtbQ== IHNrZXB0 ZXhw IHBlcmNlcHRpb24= aWV2 IEJlaW5n b2Z0 IGFkb3B0 Ljo= XTs= V2luZG93cw== IHNhdGVsbGl0ZQ== QVNI IGluZmFudA== ZGVzY3JpcHRpb24= IE1lYW53aGlsZQ== Y20= b2Nh IFRyZWF0 YWN0b3I= IHRvYmFjY28= IE5vcm0= ZW1wdGlvbg== IGZsZXNo IGpl b29w IEhlYXZlbg== IGJlYXRpbmc= YW5pbQ== IGdhdGhlcmluZw== IGN1bHRpdg== R08= YWJl IEpvbmF0aGFu IFNhZmV0eQ== IGJhZGx5 cHJvdA== IGNob29zaW5n IGNvbnRhY3RlZA== IHF1aXQ= IGRpc3R1cg== IHN0aXI= IHRva2Vu RGV0 IFBh IGZ1bmN0aW9uYWxpdHk= MDAz c29tZQ== IGxpbWl0YXRpb25z IG1ldGg= YnVpbGQ= Y29uZmln TlQ= cmVsbA== YmxlbQ== IE1vbQ== IHZldGVyYW5z IEh1 IHRyZW5kcw== YXJlcg== IEdpdmVu IENhcHRpb24= bWF5 QVNU IHdvbmRlcmluZw== IENsYXJr bm9ybWFs IHNlcGFyYXRlZA== IGRlc3A= c3RpYw== YnJldw== IHJlbGF0aW5n IE5paw== IEZhcm0= IGVudGh1c2k= Z29vZA== ZGVi IGFjdGl2aXN0 IG1hcnQ= IGV4cGxvc2lvbg== IEVjb25vbWlj TGluaw== IGluc2lnaHQ= IGNvbnZlbmllbnQ= IGNvdW50ZXJwYXJ0 c3VwcG9ydA== IFZpcnQ= YWdlbg== IFRlbm5lc3NlZQ== IFNpbW9u IEF3YXJk T0NL IEZpZ3VyZQ== IG92ZXJzZWFz IHByaWRl IENhcw== bm90ZQ== bWc= Q3VycmVudA== IGRpc3BsYXlz Y29udGVudA== IHRyYXZlbGluZw== IGhvc3BpdGFscw== IEZpbmFuY2lhbA== IFBhc3Q= IGRlZmVuZGFudA== IHN0cmVhbWluZw== bWJsZQ== IEJlcmxpbg== dWtp IGRpc3RyaWJ1dA== IGFudGli IGNob2NvbGF0ZQ== IENhc3RsZQ== IGludGVycnVwdA== IFJvdw== IGNvbnZlcnNpb24= IGJ1Z3M= IFJhdGhlcg== bGllc3Q= TFk= IEplYW4= Y29tbW9u YWto IDEzMA== b3R0b24= IERlYW4= IGFtZW5kbWVudA== IGdhbWVwbGF5 IFdhcnJlbg== b2Rh IGhpZ2hsaWdodHM= IGlycmU= IE5BVE8= IGJhbGxz IGRlbWFuZGluZw== VVJF IEx1a2U= RmlndXJl c3RvcA== b25pYQ== em9uZQ== aXplcnM= IFdS IGF3YXJkZWQ= IHJlZ3VsYXRvcnk= IEhhcnQ= IFNO cGxpbmc= IHNvdXI= IFBpeGVs dXNpdmU= IGZldA== IFNlbnQ= IGF1dG9tYXRpYw== IGZlcg== dmVybm1lbnQ= IEtoYW4= VE9O ZmF0aGVy IGV4dHJhb3JkaW5hcnk= dGhyb3A= IFB5dGhvbg== IEdQVQ== IHNleHVhbGx5 IGRlc2t0b3A= aXRpdml0eQ== IEFudG9uaW8= IG9yaWVudA== IGVhcnM= b2JieQ== b3VzZXM= dmVydGlzZW1lbnRz IG1hbnVmYWN0dXJlcnM= aWNpZW50 bWludXRl IGNvbnZpY3Rpb24= IGdhcmRlbg== cHVibGlj IHNhdGlzZmllZA== Zm9sZA== T0s= IGluaGFi IFRoaW5r IHByb2dyYW1tZQ== IHN0b21hY2g= IGNvb3JkaW4= IGhvbHk= IHRocmVzaG9sZA== IHJoZXQ= IHNlcmlhbA== IGVtcGxveWVycw== IEV2ZXJ5dGhpbmc= cmFo IGJvdGhlcg== IGJyYW5kcw== VmFsdWU= IFRlZA== IFBsYW5ldA== IHBpbms= IEZ1cnRoZXJtb3Jl c2E= UEU= cmVjaw== IFVTRA== b3R0ZQ== ICYm IGxhbmRlZA== Z2V0cw== IHByb2R1Y2Vycw== IGhlYWx0aGNhcmU= IGRvbWluYW50 IGRlc3Rybw== IGFtZW5kZWQ= Y2hyb24= IGZpdHM= IFN5ZA== IEF1dGhvcml0eQ== QVRDSA== IGZpZ2h0cw== IExMQw== IC0tLQ== IENvcnA= IHRveGlj c3BlY2lmaWM= IENvcm4= IENoZWw= IHRlbGVwaG9uZQ== IFBhbnQ= IG15c3RlcmlvdXM= YXVuY2g= b2RveA== bWVkaWE= IHdpdG5lc3Nlcw== YWd1 IHF1ZXN0aW9uZWQ= IEJyZXhpdA== IFJlbWVtYmVy ZW5leg== IGVuZG9yc2U= aWF0cmlj IElkZW50 IHJpZGljdWxvdXM= MTEw IHByYXllcg== IHNjaWVudGlzdA== IDE5NTA= IEFxdQ== IHVuZGVyZ3JvdW5k IFVGQw== bWFyZQ== IExhdGVy d2ljaA== IHN1YnNjcmli IGhvc3Rz IGVycg== IGdyYW50cw== YW50b20= IHN1bW1vbg== ZWFybHk= IENsZWFy IFByaW0= IHN1c3BlbnNpb24= IGd1YXJhbnRlZWQ= YXBwZXI= IHJpY2U= IFNlYW4= IFNoaW4= IHJlZmVyZW5kdW0= IGZsZWQ= cnVzdA== IDM2MA== dGVyeQ== IHNob2NrZWQ= QlI= IE9pbA== IEFsbGFo IHBhcnRseQ== IGlnbm9y IHRyYW5zbWlzc2lvbg== IGhvbW9zZXh1YWw= aXZlcnNhbA== IGhvcGVmdWxseQ== 44Kk IGxlc3Nvbg== TGVn IC4u WWV0 dGFibGU= YXBwcm9wcmk= cmV0dA== IGJvYXJkcw== IGluY29ycmVjdA== IGJhY3Rlcmlh YXJ1 YW1hYw== IHNuYXA= Lici IHBhcmFk dGVt aGVhcnQ= IGF2YWlsYWJpbGl0eQ== IHdpc2RvbQ== ICgr IHByaWVzdA== IMKgIMKg T3Blbg== IHNwYW4= IHBhcmFtZXRlcg== IGNvbnZpbmNl ICglKQ== cmFj IGZv IHNhZmVseQ== IGNvbnZlcnRlZA== IE9seW1waWM= IHJlc2VydmU= IGhlYWxpbmc= IE1pbmU= TWF4 IGluaGVyZW50 IEdyYWhhbQ== IGludGVncmF0ZWQ= RGVt IHBpcGVsaW5l IGFwcGx5aW5n IGVtYmVk IENoYXJsaWU= IGNhdmU= MjAwOA== IGNvbnNlbnN1cw== IHJld2FyZHM= UGFs IEhUTUw= IHBvcHVsYXJpdHk= bG9va2luZw== IFN3b3Jk IEFydHM= Jyk= IGVsZWN0cm9u Y2x1c2lvbnM= IGludGVncml0eQ== IGV4Y2x1c2l2ZWx5 IGdyYWNl IHRvcnR1cmU= IGJ1cm5lZA== dHdv IDE4MA== UHJvZHU= IGVudHJlcHJlbmU= cmFwaGljcw== IGd5bQ== cmljYW5l IFRhbQ== IGFkbWluaXN0cmF0aXZl IG1hbnVmYWN0dXJlcg== IHZlbA== IE5p IGlzb2xhdGVk IE1lZGljaW5l IGJhY2t1cA== IHByb21vdGluZw== IGNvbW1hbmRlcg== IGZsZWU= IFJ1c3NlbGw= IGZvcmdvdHRlbg== IE1pc3NvdXJp IHJlc2lkZW5jZQ== bW9ucw== IHJlc2VtYg== IHdhbmQ= IG1lYW5pbmdmdWw= UFQ= IGJvbA== IGhlbGlj IHdlYWx0aHk= IHJpZmxl c3Ryb25n cm93aW5n cGxhbg== YXN1cnk= 4oCmLg== IGV4cGFuZGluZw== IEhhbWlsdG9u IHJlY2VpdmVz U0k= ZWF0dXJlcw== IEFuaW0= UkVF UHV0 IGJyaWVmbHk= cml2ZQ== IHN0aW11bA== IGBgKA== IF9f IGNoaXA= IGhheg== IHByaXpl IFRoaW5ncw== QUNF dWxpbg== ZGljdA== b2t1 IGFzc29jaWF0ZQ== b2NrZXRz eW91dHViZQ== U3Rvcnk= YXRlZ29yeQ== IG1pbGQ= YWlsaW5n IFll T3JpZw== IEth b3JpZw== IHByb3BhZ2FuZGE= IGFub255bW91cw== IHN0cnVnZ2xlZA== IG91dHJhZ2U= QVRFRA== IEJlaWppbmc= cmFyeQ== IGxlYXRoZXI= IHdvcmxkcw== IGJyb2FkZXI= MTI1 aWRhbA== IEJldHRlcg== IHRlYXI= RXh0 IHByb3Bvc2Fscw== IGl0ZXI= IFNxdWFk IHZvbHVudA== bWk= RGlk IFB1 cGlu IHNwZWFrZXJz IGJvcmRlcnM= IGZpZ3VyZWQ= PSc= IHNpbXVsdGFuZW91c2x5 YWVkYQ== IGNoYXJnaW5n IHVyZ2Vk IGNvbmo= MjU2 IEdvcmRvbg== bWVyY2U= IGRvY3VtZW50YXJ5 U2hhcmU= aXRvbA== T05F IEdhcmRlbg== aGF0dA== IFRob21wc29u YW5lb3Vz YXBvcmU= IHRhbmtz IGxlc3NvbnM= dHJhY2s= IG91dHN0YW5kaW5n IHZvbHVudGVlcnM= IHNwcmF5 IG1hbmFnZXJz bGFyZ2U= IGNhbXBz IGFydGlmaWNpYWw= IFJ1 IGJhZ3M= dGhhbA== IGNvbXBhdGlibGU= IEJsYWRl IGZlZA== IGFyZ3Vlcw== Rkk= IHVuZmFpcg== IGNvcm4= IG9mZnNldA== IGRpcmVjdGlvbnM= IGRpc2FwcG9pbnRlZA== IENvbnZlbnRpb24= IHZpZXdpbmc= TUU= b2NpdHk= IHRvd25z IGxheWVycw== IHJvbGxlZA== IGp1bXBlZA== IGF0dHJpYnV0ZQ== IHVubmVjZXNz aW5jb2xu IHN1cHBvc2U= IE5ldGhlcg== Y2hh IGJ1cmllZA== IHNpeHRo QmVu cmVzc2luZw== T1VS IHdvdW5k IGN5Y2w= IG1lY2hhbmlzbXM= IGNvbmdyZXNzaW9uYWw= IEVsZW1lbnQ= IGFncmVlbWVudHM= IGRlY29y IGNsb3Nlc3Q= IE1pdA== R29vZ2xl fX0= IG1peHR1cmU= IGZsdWlk U2lnbg== IFNjaG9sYXI= IHBpc3Q= YXNrZXQ= YWJsaW5n IHJhY2luZw== aGVybw== cmllbA== YXNzeQ== IGNoZWFwZXI= YmVu IHZlcnRpY2Fs YW1hY2FyZQ== IFJlYWRpbmc= Z21lbnRz IGhlbGljb3A= IHNhY3JpZmljZQ== YXlh cGFyZW4= VkE= IExlcw== IFN0dWRpbw== IHZpb2xhdGlvbnM= IEFubmE= YWNlcg== 6b4= IFJhdA== IEJlY2s= IERpY2s= IEFDVA== IGNvbXBvc2l0aW9u IHRleHR1cmU= IE93bg== IHNtYXJ0cGhvbmU= IE5B IGZvcmI= aW1wb3J0 IGRlZmVuZGluZw== aWxzdA== cmVy IG9o IEplcmVteQ== IGJhbmtpbmc= Y2VwdGlvbnM= IHJlc3BlY3RpdmU= Ly4= IGRyaW5rcw== IFdp IGJhbmRz IExpdmVycG9vbA== IGdyaXA= IEJ1eQ== IG9wZW5seQ== IHJldmlld2Vk cGVydA== IHZlcmlmeQ== IENvbGU= IFdhbGVz TU8= IHVucHJl IHNoZWx0ZXI= IEltcGVyaWFs IGd1aQ== IERhaw== IHN1Z2dlc3Rpb25z IGV4cGxpY2l0bHk= IHNsYXZl IGJsb2NrY2hhaW4= IGNvbXBldGluZw== IHByb21pc2luZw== U09O IHNvY2Nlcg== IGNvbnN0aXR1dGlvbg== NDI5 IGRpc3RyYWN0 IFVzZXI= ZXNpZGVz IE1ldGhvZA== IFRva3lv IGFjY29tcGFuaWVk Q2xpZW50 c3Vy YWxvZw== IGlkZW50aWZpY2F0aW9u IGludmFzaW9u YXNtYQ== IGluZHVzdHJpZXM= cHBlcnM= IHN1YnRsZQ== IFVuaXQ= bmF0dXJhbA== IHN1cnZpdmVk IGZsYXc= mIU= IEhvbGw= IGRlZmljaXQ= IHR1dG9yaWFs IENoYW5jZQ== IGFyZ3Vpbmc= IGNvbnRlbXBvcmFyeQ== IGludGVncmF0aW9u Zm9yd2FyZA== IHR1bQ== aXRpcw== IGhpZGluZw== IERvbWlu IFRhbg== IEJ1aWxkaW5n IFZpbg== IHNwb2tlc3BlcnNvbg== IE5vdGVz IGVtZXJnaW5n IHByZXBhcmF0aW9u IHByb3N0 IHN1c3BlY3Rz IGF1dG9ub20= RGVzY3JpcHRpb24= IGRlYWx0 IFBlYXI= IHN0ZWFkeQ== IGRlY3JlYXNlZA== IHNvdmVyZQ== IENsaW4= IGdyYWR1YWxseQ== b3JzZXM= IFdBUg== U2Vydg== 44Ki aHI= IGRpcnR5 IEJhcm4= IEJD IGRpbA== IGNhbGVuZGFy IGNvbXBsaWFuY2U= IGNoYW1iZXI= YmI= IHBhc3Nlbmdlcg== YXRlZnVs IFRpdGxl IFN5ZG5leQ== IEdvdA== IGRhcmtuZXNz IGRlZmVjdA== IHBhY2tlZA== YXNzaW9u IGdvZHM= IGhhcnNo SUNL bGVhbnM= IGFsZ29yaXRobQ== IG94eWdlbg== IHZpc2l0cw== IGJsYWRl IGtpbG9tZXQ= IEtlbnR1Y2t5 IGtpbGxlcg== UGFjaw== ZW5ueQ== IGRpdmluZQ== IG5vbWluYXRpb24= YmVpbmc= IGVuZ2luZXM= IGNhdHM= IGJ1ZmZlcg== IFBoaWxs IHRyYWZm QUdF IHRvbmd1ZQ== IHJhZGlhdGlvbg== ZXJlcg== bWVt IEV4cGxpY2l0 6b6N IGNvdXBsZXM= IHBoeXNpY3M= IE1jSw== IHBvbGl0aWNhbGx5 YXdrcw== IEJsb29t IHdvcnNoaXA= ZWdlcg== dXRlcg== IEZP IG1hdGhlbWF0 IHNlbnRlbmNlZA== IGRpc2s= IE1hcmc= IC8q UEk= IG9wdGlvbmFs IGJhYmllcw== IHNlZWRz IFNjb3R0aXNo IHRoeQ== XV0= IEhpdGxlcg== UEg= bmd0aA== IHJlY292ZXJlZA== aW5nZQ== IHBvd2Rlcg== IGxpcHM= IGRlc2lnbmVy IGRpc29yZGVycw== IGNvdXJhZ2U= IGNoYW9z In0seyI= IGNhcnJpZXI= YmFibHk= SGlnaA== IFJU ZXNpdHk= bGVu IHJvdXRlcw== dWF0aW5n Rmls Tk9U d2FsbA== c2J1cmdo IGVuZ2FnaW5n IEphdmFTY3JpcHQ= b3Jlcg== bGlob29k IHVuaW9ucw== IEZlZGVyYXRpb24= IFRlc2xh IGNvbXBsZXRpb24= IFRh IHByaXZpbGVnZQ== IE9yYW5nZQ== IG5ldXI= cGFyZW5jeQ== IGJvbmVz IHRpdGxlZA== IHByb3NlY3V0b3Jz IE1F IGVuZ2luZWVy IFVuaXZlcnNl IEhpZw== bmll b2FyZA== IGhlYXJ0cw== IEdyZQ== dXNzaW9u IG1pbmlzdHJ5 IHBlbmV0 IE51dA== IE93 IFhQ aW5zdGVpbg== IGJ1bGs= U3lzdGVt aWNpc20= IE1hcmtldGFibGU= IHByZXZhbA== IHBvc3Rlcg== IGF0dGVuZGluZw== dXJhYmxl IGxpY2Vuc2Vk IEdo ZXRyeQ== IFRyYWRhYmxl IGJsYXN0 4KQ= IFRpdGFu ZWxsZWQ= ZGll SGF2ZQ== IEZsYW1l IHByb2ZvdW5k IHBhcnRpY2lwYXRpbmc= IGFuaW1l IEVzcw== IHNwZWNpZnk= IHJlZ2FyZGVk IFNwZWxs IHNvbnM= b3duZWQ= IG1lcmM= IGV4cGVyaW1lbnRhbA== bGFuZG8= aHM= IER1bmdlb24= aW5vcw== IGNvbXBseQ== IFN5c3RlbXM= YXJ0aA== IHNlaXplZA== bG9jYWw= IEdpcmxz dWRv b25lZA== IEZsZQ== IGNvbnN0cnVjdGVk IGhvc3RlZA== IHNjYXJlZA== YWN0aWM= IElzbGFuZHM= IE1PUkU= IGJsZXNz IGJsb2NraW5n IGNoaXBz IGV2YWM= UHM= IGNvcnBvcmF0aW9u IG94 IGxpZ2h0aW5n IG5laWdoYm9ycw== IFVi YXJv IGJlZWY= IFViZXI= RmFjZWJvb2s= YXJtZWQ= aXRhdGU= IFJhdGluZw== IFF1aWNr IG9jY3VwaWVk IGFpbXM= IEFkZGl0aW9uYWxseQ== IEludGVyZXN0 IGRyYW1hdGljYWxseQ== IGhlYWw= IHBhaW50aW5n IGVuZ2luZWVycw== TU0= IE11c3Q= IHF1YW50aXR5 UGF1bA== IGVhcm5pbmdz IFBvc3Rz c3RyYQ== 44O844M= IHN0YW5jZQ== IGRyb3BwaW5n c2NyaXB0 IGRyZXNzZWQ= TWFrZQ== IGp1c3RpZnk= IEx0ZA== IHByb21wdGVk IHNjcnV0 IHNwZWVkcw== IEdpYW50cw== b21lcg== IEVkaXRvcg== IGRlc2NyaWJpbmc= IExpZQ== bWVudGVk IG5vd2hlcmU= b2NhbHk= IGluc3RydWN0aW9u Zm9ydGFibGU= IGVudGl0aWVz IGNt IE5hdHVyYWw= IGlucXVpcnk= IHByZXNzZWQ= aXpvbnQ= Zm9yY2Vk IHJhaXNlcw== IE5ldGZsaXg= IFNpZGU= IG91dGVy IGFtb25nc3Q= aW1z b3dza2k= IGNsaW1i bmV2ZXI= IGNvbWJpbmU= ZGluZw== IGNvbXBy IHNpZ25pZmljYW5jZQ== IHJlbWVtYmVyZWQ= IE5ldmFkYQ== IFRlbA== IFNjYXI= IFdhcnJpb3Jz IEphbmU= IGNvdXA= YmFz IHRlcm1pbmFs LC0= T0g= IHRlbnNpb24= IHdpbmdz IE15c3Rlcg== 77+977+977+977+9 IFVubGlrZQ== dmFsaWQ= dmlyb25tZW50cw== IEFsaQ== IG5ha2Vk Ym9va3M= IE11bg== IEd1bGY= IGRlbnNpdHk= IGRpbWlu IGRlc3BlcmF0ZQ== IHByZXNpZGVuY3k= IDE5ODY= aHk= SU5E IHVubG9jaw== aW1lbnM= IGhhbmRsZWQ= IEVi IGRpc2FwcGVhcmVk IGdlbnJl IDE5ODg= IGRldGVybWluYXRpb24= U3RyZWFt aWtv YXB0ZXJz IGFja25vd2xlZGdl SmFu IGNhcGl0YWxpc20= UGF0 IDIwMjA= IHBhaW5mdWw= IGN1cnZl IGJvbWJz c3Rvcm0= IE1ldGFs ZW5jZXI= IEZpZw== IEFhcm9u YW5jaGVz IGluc3BpcmF0aW9u IGV4aGF1c3Q= dGFpbnM= YXNoaQ== IGRlc2NyaXB0 IHJpdHVhbA== IENoZWxzZWE= IHByb21vdGlvbg== IEh1bmc= IFdhcmQ= aXZh IEVU IHRvc3M= YWxsb3c= IEZyYW5jaXM= RGVw IGhhcHBpbmVzcw== IEdsYXNz IGJldGE= IHN0cmVuZ3RoZW4= TkU= b2E= IGJ1dHRvbnM= IE11cnJheQ== IGtpY2tlZA== UXVlc3Q= IFRhbGs= IFNldmVyYWw= IFplcm8= IGRyb25l dWxr IGNhbQ== IE1vYmlsZQ== IHByZXZlbnRpbmc= IHJldHJv IEF4 IGNydWVs IGZsb2F0 Liks IGZpbGluZw== IEdyYW50 IEJvcg== IHJpYg== IGNoYW1waW9uc2hpcA== IE1lcmM= IHN0eWxlcw== IGNha2U= IGJ1aWxkcw== IFNlbGY= aW94 IGVwaWM= b3lk QmVs IFN0ZXc= Lig= YWh1 IEJleW9uZA== IG91dHM= IHNvbG8= IFRyZWU= IHByZXNlcnZl IHR1Yg== QVJF cm9j IEltcHJv IFdyaWdodA== IGJ1bmQ= IHRyYWdlZA== IG9jY2FzaW9uYWw= Ymlhbg== U2Vjb25k cm9ucw== IGludGVyYWN0aW9ucw== Zm9ybWVk c2luZw== IG93bnM= IGhvY2tleQ== R2VuZXJhbA== IGxvZ2ljYWw= IGV4cGVuZA== IGVzY2Fs IEdyaWZm IENyb3du IFJlc2VydmU= IHN0b3BwaW5n IGV4Y3VzZQ== c2Vjb25k IG9wZXJhdGVk IHJlYWNoZXM= IE1hbGF5cw== IHBvbGx1dGlvbg== IEJyb29rbHlu IGRlbGV0ZQ== IGhhc2g= QmxvY2s= YWhh 4oCz IHNob3J0ZXI= cGllY2U= Pjwv IGhvcm0= IFdhdA== IEJyZWFr IHByb2hpYml0ZWQ= IGludGVuc2l0eQ== IEFsYW4= IGxpYWJpbGl0eQ== PyE= YW5kZWQ= IG5laWdoYm91cg== IENvbGxlY3Rpb24= IGZpcmVz IHJldm9sdXRpb25hcnk= Zmx5 IE9ybGVhbnM= V2hpdGU= IFdyaXQ= IERhd24= IHNldHRsZQ== IGV4ZWN1dGU= Qk0= IHNwb2tlc3dvbWFu IGxpZmVzdHlsZQ== IGNsaWNraW5n IEtpbGw= IExpYmVyYWw= IE5hemk= IHRyYWlsZXI= IG1vdW50YWlucw== IGRhbW4= emVz cGVz IHByZXNzaW5n IGJhaWw= IE9yZ2FuaXphdGlvbg== IHBpcg== IHRoaXJ0eQ== IGVsZWN0cmljYWw= IDExNQ== IFBvbHk= IFJhcA== IFN0cmlrZQ== IENhbm4= IGRlbWFuZGVk IGJhY2tpbmc= ZGVmYXVsdA== c3BlZWQ= IExlZ2lzbA== IG1vdGhlcnM= IEJvZHk= IHZhcmlhdGlvbg== Y2VkZW50ZWQ= cG93ZXJlZA== bGVhZGluZw== TmV2ZXI= IGdyYXZl IEFudGk= QVc= IGludGVydmlld2Vk IEdhYg== IEZhdA== IHJvb2tpZQ== dXU= IGRlcG9z aXhvbg== IGFtcGw= cmV0aW9u IEhlYXQ= IHBlYWNlZnVs U00= aWV2ZQ== IGRpdmVy IFZpY3Rvcmlh IG1pYw== cGRm IHN0YXRpbmc= IGx1bmc= IGNyaXRpY2l6ZWQ= IHZhY2NpbmU= IExvYWRpbmc= dXJzZQ== VGFrZQ== IEZyYW4= IFNvbGQ= IFJvYmlu IGRldGVjdGVk IFNjcmlwdA== IGFkanVzdGVk IHNlbmF0b3I= IG9wcG9zaW5n RXJyb3I= Q291bnQ= IGNvbmZsaWN0cw== IG93 IEFyZ2VudA== IG1hdGNoaW5n aGg= IFRyZWs= c3RhcnRlcg== Iiks IEFG b2Rlcg== eHh4eA== IEFsdA== YWNyZQ== IFBpY2s= IFNvbGFy IERhbA== T2N0 IEJhdHQ= IHNyYw== IGVuZ2FnZW1lbnQ= IGV4ZWN1dGl2ZXM= IGxpYmVydHk= amF2YQ== IHRhbGVudGVk aWdlbm91cw== IGNvbnNlY3V0 Li4uLi4= SW5mbw== IGhvcnJpYmxl IHN1cnByaXNpbmdseQ== ZmVlZA== aWNhdGluZw== IExFRA== IGZlbWFsZXM= U3RhdGlvbg== ZWxsZXI= IE9ha2xhbmQ= IG1lY2hhbmljYWw= aW9sb2d5 IFZhcg== IHJvYnVzdA== ZXR0aW5ncw== b3R0YQ== IHRoZW9yZXQ= IHJldGFpbg== a3dhcmQ= IGRh IGRlcGxveWVk ZGVs IEFuZHk= IHN1YnNjcmliZQ== d2Vi IG5h IE1pY2hlbA== IHBhcnRpYWxseQ== IENvbWV5 IGNyb3du IE1hag== IEJsdQ== cmF0b3I= RGF5 SU5U IGRvY3VtZW50ZWQ= IEdEUA== Z2k= Y2hlbGw= IGJydXRhbA== IEJhYg== c3RyYXRpb24= IHRoZWZ0 IHR1YmU= QEA= IHF1ZXJ5 IExpbmNvbG4= IHB1Ymxpc2hpbmc= IHdvcmU= b3JpY2Fs IHJpYw== IG5vdGFibGU= IHN1YnNlcXVlbnRseQ== bmV4 IG9ic2VydmU= IEJvZQ== IGNvZGVz bWFpbg== V0g= IFNM IHJlc2lkZW50aWFs YXZhbg== IG1hcw== YXJlc3Q= YWRlb24= T1VU IHNvcGhpc3RpYw== YW50ZQ== IGNlbnM= ICoq IG1vcnRhbGl0eQ== IHlvdXJz IG9jY2FzaW9ucw== IHJlY2FsbGVk IERyaXZlcg== IHZvY2Fs IGJhdGhyb29t IHNob3Bz IGNvbGxhYm9yYXRpb24= IE9iYW1hY2FyZQ== IENlbGw= Q2hhcg== U3VwZXI= Q3Jl IHRlbmRz IHRvcm4= IGVjb25vbWljcw== YXZlcnk= IFJhaWQ= IFNlbQ== IHNob3VsZGVycw== IGV4cGVjdGluZw== IGV4YW1pbmF0aW9u ZW5hbWU= IFVJ aWFiaWxpdHk= b2xhcw== IEFtYg== IERyYQ== IG1pZGZpZWxk IElD IGxheW91dA== IGZsb2F0aW5n Zmk= aXRhdGl2ZQ== IHRyZW1lbmRvdXM= INA= IGFidW5k V29yaw== IExpZ2h0bmluZw== IHNpbWlsYXJseQ== IGNvbnNlcnZhdGl2ZXM= IHByYXk= QkU= aXphcnJl IHRlbXB0 IGVtcGhhc2lz IE1ldHJv IGZpc2hpbmc= IG1hcnJ5 bmVn IFN0dWR5 IHJlY2s= IGRpc3Bvcw== b25pbmc= YnNpdGU= IHN1c3BpYw== IG1lcmNo IEdpYg== IERlc2NyaXB0aW9u IERWRA== d2hl IFllbWVu IGVudmlyb25tZW50cw== b290aW5n IE1vZGVybg== ZXU= IHJlZmxlY3Rz IGhvbmV5 IGFuYWx5c3Q= IGd1dA== ZGVj QWN0aW9u IGhvdXNlaG9sZHM= IHN0ZXI= IHRlbXBsZQ== IHJlZm9ybXM= IGZhdm91cml0ZQ== IGRlYWRsaW5l IExF VGhyZWU= IFdpdGhpbg== QXVn IG5pZ2h0cw== ZWx0YQ== IGludmFsaWQ= IEV4Y2hhbmdl IERlbGhp d2hlbg== aW5jb21l IPCf IHdpcmVsZXNz c2NyaWJl aXN0YQ== IGhvc3RpbGU= IGFsbHk= IGdpZw== IG91dGxldHM= IERvcg== RU1FTlQ= IGFzaA== IGFic3RyYWN0 T1JE IE1vdG9y IGFkdmlzZXI= aXN0bGU= IGJhc2Vz IGNvdXJ0ZXN5 IGNyb3NzaW5n IGNsZWFyZWQ= IHJlZnVnZWU= Y29zeXN0ZW0= IHRocm93cw== ZnVu Ym91cm5l ZGF5cw== IGRpc2FncmVl IE5hdGl2ZQ== IHJlZmxlY3RlZA== IEZhc3Q= IFllbGxvdw== IFNpbmdhcG9yZQ== IFJhdmVu IGVtYnJhY2U= IEt1 IENoZW4= IEVhcmx5 IGFwcG9pbnRtZW50 IE1pbmk= aXRlbWVudA== IHBsYWNpbmc= IGJpY3k= U1I= IHdoaXM= U1U= IGludmVzdGlnYXRlZA== IHBob3RvZ3JhcGhz Z2l0aHVi IEJlYXQ= IFJpbmc= aWdoZWQ= aWFy IGV2b2x2ZWQ= ZXJhbGQ= IGR1bg== IGh1Yg== SUFM IGVuY291cmFnaW5n IFByaW50 IERheXM= IHByb3NlY3V0aW9u IHBhbnRz YXp5 bGl2ZQ== IGZvc3NpbA== IEp1 IHJvY2tz dWRnZQ== IFJhY2U= IGdyZWV0 Ymll IGZpbGxpbmc= IExlbg== IGRpYWJldGVz IGZpcmVhcm1z dW1pbmc= ZW5lenVlbA== IEJC IGFjY2VwdGluZw== QVRI IHJlc29ydA== IGh1bnQ= cmlr dWNrZXI= YW1lbnRz IHN1c3RhaW5lZA== IGNyb3NzZWQ= IGJyZWFrZmFzdA== IGF0dHJpYnV0ZXM= bGVjdGVk YXRpbGU= IHZpYnI= IEthbA== YXJzb24= b3BsZXM= IHRvdWNoZWQ= IGRhbWFnZXM= IGltcHJlc3NlZA== cnVw IGFuY2g= IEFkYW1z SGVs IFZpY3Rvcg== IG1vdW50ZWQ= IEND IGRlbGljaW91cw== c3Bhbg== ZWxsYQ== IGVsYWJvcg== YW1wbGVz IGRlZmlj IGNvbnN0aXR1 dWF0ZXM= IE1pc3Npb24= IFRoZXI= IE1vbnN0ZXI= YmVz UmV1dGVycw== IEluZG9uZXM= aGlsbA== bXVuaXRpb24= IGNvbmZpcm1hdGlvbg== IENvbnNpZGVy YWNlbnQ= IGpldA== IEVtcGxveQ== IEdUWA== bmFu IFNwaWRlcg== IHByb2Nlc3Nvcg== IHBhdHJp IFBlbnRhZ29u IFJvYmluc29u IHJlYWxpc3RpYw== w7E= IGFwcGVhcmluZw== IHBpcGU= b21lZA== IGZydQ== IGF3ZnVs IGV2YWx1YXRpb24= IGludGVsbGlnZW50 IENpdGl6 IGZ1bmRyYQ== b2RpdW0= IHR3ZWV0cw== IHdvcm4= cHJpbmc= IGtpZG4= IHJlYmVscw== IEthbQ== IE5ldGhlcmxhbmRz IFNX IGFjcXVpc2l0aW9u IE1hbGU= 44Oq b21iaWVz IHRyYWRlbQ== IFN0YXR1cw== QnJl IFRISVM= IGFkdmVyc2U= IE5FVw== c2lnbg== IG9yZ2FuaXNhdGlvbg== ZW5j IEhhcnBlcg== YXBvcg== IE1lbWJlcnM= IFBlYWNl IEFpcnBvcnQ= IE90aGVycw== IHNjcmF0Y2g= IFBpbA== IHNlbnNvcg== IGFkb3B0aW9u IEhvdGVs IERyYWc= IGhvbmVzdGx5 IHlhcmQ= IEZvcmNlcw== IHBhdGVudA== IGJhc3M= IHF1aWV0bHk= IGJyZWF0aGluZw== IHBvc2U= aW9ycw== IEplc3M= c3RhdGlj SVRF T2ZmaWM= IGpldw== d2Nz IDE0MA== IHByZXZpZXc= aXBwaQ== IHVuZm9ydHVuYXRlbHk= b2tlbW9u IGhvcm4= IHJlYXNz IHBlZXI= b2NrZXI= IHVudG8= IEdyYXk= IGNsZWFuaW5n IGF0dHJhY3RlZA== MjAwNw== UG9pbnQ= a2lsbA== IEFncmVlbWVudA== dXJjaGVz IGhvcnI= IE1pc3Npc3M= IHdvcnRoeQ== IGZsb3dlcnM= dG93bg== ZGxs IHJlYWN0aW9ucw== IGRlY2U= IGluZGljYXRpbmc= TUQ= IHByZWZlcmVuY2U= IE1WUA== ZXNzaW9uYWw= IFRhcmdldA== Z2VuY2U= IEluZGlhbnM= IG1pc2M= IGZyZWVseQ== IG11c2NsZXM= IGxpbmV1cA== IGltcGFjdHM= b3VzaW5n b21p YWN1bGFy IGNvbnRyb2xsaW5n YWdpbmU= Y2VyeQ== aGVsbA== IHJhbmtpbmc= IE5pY2g= IEF2ZQ== MTI4 IGhpZ2h3YXk= IGluY29ucw== IGJpbmRpbmc= IHN0cnVnZ2xlcw== IFBpdHRzYnVyZ2g= IGdyYXk= cmlu IGNvbWljcw== IFNwb3J0 IHJlbGF0aXZlcw== IGZyaWdodA== IHByb2Jl IFBvcnR1Zw== IHZvYw== IHR1 IENvcnBz IHBvc3NpYmlsaXRpZXM= IHF1YWxpZnk= d2Nzc3RvcmU= IGxpYnJhcmllcw== IG1pZ3JhbnRz IGVudHJpZXM= IGNvbnNlY3V0aXZl dmFscw== IENoYWlybWFu IGhpbGw= SU1F IEdhcmQ= IGluZXF1YWxpdHk= Zm94 IFNhdmU= IGNvcnQ= Y2xhaW1lZA== IHRyYWl0cw== IHBvdXI= IG1pc3NpbGVz IGVzc2VuY2U= IHNlbmRz IGFsbGlhbmNl IHdpc2hlcw== IENocmlzdG9waGVy Qmln Tlk= IEphY29i c2Fu dXJyZWQ= IFNP bGx5 IGFkdm9jYXRl IEJvbmQ= ICIv VXNpbmc= IGRpc3RyaWN0cw== IEdhdGU= IEJpcg== cmlkZ2U= IE5heg== IFJz Ym9hcmRz IEdh IFJlYWdhbg== IGluZmx1ZW5jZWQ= MTAwMA== YXB5 IGNoYWxsZW5nZWQ= IGJhcmc= IGZhY3VsdHk= IEZpZg== IGFjcXVpcmU= QWM= IGluc2VjdA== IGluc3RydW1lbnRz IGxlYWY= dGhvZG94 TWVzc2FnZQ== IHRhbGU= IHRoZXJlYnk= IHRyYXA= IHN0cm9uZ2VzdA== IE1pbGl0YXJ5 aXNpYmxl IDE5ODQ= ZXRoZWxlc3M= IGZsZXhpYmxl IGtpbGxz IGZpbmlzaGluZw== IFNpemU= IHJlZHVjZXM= IGVwaWQ= IG9yaWVudGF0aW9u ZnVsbA== IHRyYWNl IGxhc2Vy IG9wcG9zZQ== IGVkaXRpbmc= IG1vbWVudHVt 5Lo= c2hvdw== Vkk= IExhZA== IDE5ODU= IG11cmRlcmVk OTAw dXRoZXI= IHByb2JhYmlsaXR5 IFBvbGw= IHJlbHVjdA== IENoZW0= IE1vbnRyZWFs IGFkZXF1YXRl IFBvbGFuZA== IFNoZXJpZmY= dW1waA== IG9r IDAwMA== ICJb IG9wZXJhdG9ycw== IEZlcg== IG1vZGVz IEV2ZQ== IGRpc2NpcGxpbmU= TkVU SGFuZA== IG9yYWw= IFdF ZW1haWw= SlA= IFBhbGVzdGluaWFucw== IGhlbmNl IExlc3M= IG92ZXJs ZGln IGludGltaWQ= IENvYWw= IHJhbmdpbmc= dGhh IGRpc3RhbnQ= IGZpYg== IEluZGV4 IFdvbmRlcg== IFBlbA== aGF0dGFu IEh1Zw== w5c= cmFpdA== IHdyYXBwZWQ= IFJQRw== IGNoZW1pY2Fscw== IE1vbmV5 IGZyb3plbg== IGluZGlyZWN0 IEFnYWluc3Q= RW5k IHVuY29tZm9ydGFibGU= IEdhbGxlcnk= IFBvc3RlZA== 2Kc= b25kdWN0 IGNvbnNlcXVlbmNl IGJpdHRlcg== IDE5ODc= cG9w IGNvdW50bGVzcw== IEFsYXNrYQ== ZmZmZg== IGRlcGFydHVyZQ== IHJlZnVuZA== IElhbg== aWF0ZWQ= IHNlZWtz IG1lY2hhbmljcw== IGp1cmlzZGljdGlvbg== bHlubg== IGFsaWtl IEh1bnQ= YXRob24= IHJlc29sdmVk IGNhY2hl IGRpc3RpbmN0aW9u ZGlyZWN0 IGVuY291bnQ= b3Vi YmVhdA== IENvdW50cnk= c2VhcmNo IGNvbnRpbnVvdXM= IG1vZGVzdA== IFJhaWw= dGhvb2Q= MTMw QlVH IGNyaW1pbmFscw== IGluZGljYXRpb24= IGVuY291bnRlcmVk bGFzdA== IFd5 IGlkZW9sb2d5 IFBERg== c2VjdXJpdHk= XSk= IEppbW15 IEVO IGhpcmluZw== VGVt IHBpZw== YXVudA== IENyeXN0YWw= IHBlbmFsdGllcw== IGNhcGFiaWxpdHk= IHB5 IHByb2R1Y3RpdmU= IGJhbGFuY2Vk IEdlRm9yY2U= Y2xpY2s= b2xpdGFu b2Rz IGFmdGVyd2FyZHM= IHBsYXlvZmZz IEdpbGw= VXNlcg== IGJhY2tz cHVi dGFn IGFic3VyZA== cGlyaW5n IGNpdGluZw== IHRyaWxsaW9u IG9ibGlnYXRpb24= IG1heGlt YWhvbw== Y2Y= dW1p IEFscGhh IE5lbHNvbg== IHB1cnN1YW50 aW5pdGVseQ== IGZyYWN0 ZW50cnk= YmVyeQ== IFRob3I= QWRkZWQ= IERK IEdlbmU= IGF3a3dhcmQ= U3R1ZA== IHdhbGxldA== IERpdmluZQ== YXJpb3M= IHJlbGVhc2luZw== IGVkaXRlZA== IGFjY29tcGxpc2hlZA== QmVzdA== IGVkZ2Vz IHBsYW5lcw== IGZlZWRpbmc= In0sIg== IGRpc2Nsb3N1cmU= IGdyYWlu YWlyeQ== b29ucw== ZXJuYW5k VlI= IHJlYXNvbmFibHk= IGRydW0= IHBhcnRpYWw= IGdyYXBoaWM= IHVucHJlY2VkZW50ZWQ= IGFkdmlzZWQ= TWljcm8= IEFzc2Fk cG9pbnRz c2Nhcg== IFpvbmU= dHRlcw== IDcwMA== dm8= IEhhbXA= IGZpeGVz IGNhdXRpb24= IHN0cmluZ3M= IHBhbmVscw== IGxlYWs= IHByaWNpbmc= cm93dGg= IEVycm9y IFNhaW50cw== Zml4 IG9ic2VydmF0aW9ucw== IEFicw== IHN1Z2dlc3Rpb24= IFVrcmFpbmlhbg== IGJhcnJpZXI= IHBhaW50ZWQ= QmV0 aW1pcg== IFNwZWN0 cG90 b3JuZXlz IGNvbXBvdW5k IGJlYXJz IFJ1c2g= IGx1eHVyeQ== U3Vt IG9yYml0 IE1hcmM= IGV4ZW1wdA== IFRyYWls IE1P IEhhbnM= IFdlYXBvbg== b2N1c2Vk dW1pbnVt IEplcnJ5 IGJ1c3Q= IEFH IFdpa2k= IGVuZGxlc3M= IFZsYWQ= IEJhaA== IFJhZGVvbg== a2V5cw== IFN1cnZleQ== IFZpb2w= ZGVmaW5l bGVhbg== IGNvbW1vZA== IHJldmVudWVz xY0= IGZ1cm5pdHVyZQ== IGNhc3Rpbmc= IGRpcGxvbWF0aWM= IFBsYXllcnM= IEtpbGxlZA== IG1vZGlmeQ== IGlubm92YXRpdmU= IEFidQ== bm9y IGJvbmRz IGNvYWNoaW5n TWVy IG1vZHVsZXM= IFBhdHJpb3Rz IGVuaGFuY2Vk IHByb2NlZWRpbmdz IHRlYW1tYXRlcw== IDEyOA== YXJkbw== IGNvbXByb21pc2U= IE11Y2g= IGZsZXc= IEVkZ2U= IHVubmVjZXNzYXJ5 IGRvY3RyaW5l cmVwb3J0 IE9ybGFuZG8= IFByb2ZpbGU= IHBsYXlvZmY= ZnJpZW5kbHk= IGNvbXBsYWlu IE1D IE9wdA== IEdC IGJlYXRlbg== IGdvbGY= IHBsYWNlbWVudA== Qml0 IG5ld3NsZXR0ZXI= IDIwMTk= dmlzb3I= cmF3bA== IGlQYWQ= IGFjdGVk IGp1aWNl IGRlY2tz UE4= c3VjY2Vzcw== IEhhbGY= IGRlbGV0ZWQ= IHNlY3JldHM= IGFzeWx1bQ== TWFydA== IEFjdGl2 IEd1eQ== IFRz IGR5cw== IGFzc3VtaW5n IG1hbmE= IHN1YnVy IDEyNQ== TWVkaWE= QVJZ cmlkZQ== Y3A= IGRpZmZpY3VsdGllcw== IGNvbGxlY3Rpbmc= IGJhbmtydXB0 bm9u IGNvbXBvc2Vk IHZvbHQ= IG1pbGl0YW50cw== ID4+Pg== IE1vcm1vbg== dG9y IHBhcnRpY2xlcw== IEJhcnQ= cnlwdGlvbg== IGFkbWlu IHNxdWVl VklESUE= IGNyZWF0b3I= aWFtZXRlcg== aWN1bGFy TkJD IGdyYWJiZWQ= IG5vZGQ= IHJhdGVk IHJvdGF0aW9u IGdyYXNw IGV4Y2Vzc2l2ZQ== IEVD IFdoaXQ= IGludmVudG9yeQ== YXVsdHM= IEZC IGVjb3N5c3RlbQ== IGJpbGxpb25z IHZlbnR1cmU= bmFtZWQ= IGRlZmVuZGVy b3V0ZQ== SW5zdGVhZA== aXJhYmxl V2Fy IGFzc3VtcHRpb24= IGJpdGU= IGVhcnRocXU= dGFpbA== c3BhY2U= IGdpZnRz Ym95cw== IGluZXZpdGFibGU= IHN0cnVjdHVyYWw= IGJlbmVmaWNpYWw= IGNvbXBlbGxpbmc= aG9sZQ== ZXJ2YXRpb24= IGNvYXQ= b2o= aW5jYXJu IFllYXJz IGRldGVybWluaW5n IHJoZXRvcmlj IGJvdW5kYXJpZXM= IHdoaXRlcw== QW50 YWRkeQ== KS0= cmFoYW0= ZXRlcm1pbg== IGhhcnZlc3Q= IENvbmM= IGxhcHRvcA== IE1hdGNo IGVuam95aW5n Y2Nh b2xsYXI= IHRyaXBz IGFkZGljdGlvbg== IFNhaw== IHBvd2VyZWQ= IGNvdXM= IFJ1c3NpYW5z aWVyZQ== IHJldHJpZQ== cXVhbGl0eQ== IGRpZmZlcg== IGtpbmdkb20= IExhdXI= IENhcGl0b2w= IGNvbmNsdXNpb25z IEFsdGVybg== IE5hdg== IHRyYW5zcGFyZW50 QkVS R3JvdXA= IENvbXBsZXRl IGluZmVy IGludHJpZw== IGluc2FuZQ== Uk8= b3Bob2I= aXNlbg== cXVhbA== TWljaGFlbA== IG11c2V1bQ== IFBvcGU= IHJlc2V0 cmF0aXZl Zml2ZQ== IGFnZ3JlZw== aXR0ZWVz b3NpdG9yeQ== IGNhcmI= IFJlY29yZA== IGRlY2lkZXM= IEZpeA== IGV4Y2VwdGlvbnM= IENvbW1pc3Npb25lcg== dW5z IEVudmlyb25tZW50YWw= IGxlZ2VuZGFyeQ== aXN0ZW5jZQ== IHR1bm5lbA== a20= IGluc3VsdA== IHRyb2xs IHNoYWtl IGRldGVudGlvbg== cXVlcw== IENocm9tZQ== IEZpbGVz IHN1YnQ= IHByb3NwZWN0cw== IHByb2w= cmVuZGVy cHJvb2Y= IHBlcmZvcm1hbmNlcw== U3Ry IGhyZWY= ZXJuYW1l IGFjaGlldmVtZW50 IGZ1dA== RnVsbA== IExlYmFu Z29vZ2xl 44OI YW1wYQ== TWF5YmU= IHByb2plY3RlZA== IEVtYg== IGNvbGxlZw== IGF3YXJkcw== IOKU R29sZA== IEJsYWtl IFJhag== aWZ0aW5n IHBlbmRpbmc= IGluc3RpbmN0 IGRldmVsb3BtZW50cw== Q29ubmVjdA== IE1hbmQ= IFdJVEg= IFBoaWxpcHBpbmVz cHJvZmlsZQ== IGFsdG9nZXRoZXI= IEJ1bmQ= IFRE b29vbw== YW1wZWQ= aXBo IHN0ZWFt IG9sZGVzdA== IGRldGVjdGlvbg== dWxwdA== IOc= IFdheW5l MjAwNg== ZmE= IGNpcmNsZXM= IEZ1 IGRvbm9ycw== YXBwcm9wcmlhdGU= IERha290YQ== amFtaW4= IG1vdGl2YXRlZA== IHB1cmNoYXNlcw== IExvdWlzaWFuYQ== IFNwbA== IGdsb2Jl IDEwNQ== emlw Y2FsbA== IGRlcGFydG1lbnRz IHN1c3RhaW5hYmxl MTA1 IE9Q aWZpZXJz IHByZXZlbnRlZA== IGluY29tcA== IENvbW1hbmRlcg== IGRvbWluYXRlZA== IMK7 IGludmVzdGVk IGNvbXBsZXhpdHk= IGluY2w= IGVuc3VyaW5n IHJlYWxt eW5j IEluZGVwZW5kZW50 cmFpbmVk IEplbg== IEZsaWdodA== IGF0aGU= IHNwZWN1bGF0aW9u IFRF b2NhdGU= dGlj IHBsYWludA== aGVycnk= IHRveQ== IDExMQ== IHBsYXRlcw== c3RhdHVz IElzYQ== IGRldm90ZWQ= Q29w IEVT MjU1 dXJyZW5jeQ== TWFpbg== IHNsYXZlcw== IHBlcHBlcg== IHF1b3Rlcw== IGNlaWxpbmc= IEZpc2g= IHRyYW5zZm9ybWF0aW9u IGZyYWN0aW9u IGFkdmFudGFnZXM= IHRvaWxl IHN0dW5uaW5n IG1vaXN0 YnJlYWtpbmc= c2k= IExvY2F0aW9u IE1lZGl1bQ== IHRleHRz IHVnbHk= IGJpbw== LuKAlA== IEJhc2Vk IHRyYWlucw== IFdpbmc= IEFuY2llbnQ= IFJlY29yZHM= IEhvcGU= U3BlY2lhbA== YWRlc2g= b2Jp Wy8= IHRlbXBvcmFyaWx5 VmVy aHU= b3Nlcg== IG92ZXJuaWdodA== IG1hbW0= IFRyZWFzdXJ5 IFZlbmV6dWVs IE1lZ2E= IHRhcg== IGV4cGVjdHM= YmxhY2s= b3JwaA== XFxcXA== IGFjY2VwdGFuY2U= IHJhZGFy c2lz IGp1bmlvcg== IGZyYW1lcw== IG9ic2VydmF0aW9u YWNpZXM= UG93ZXI= IEFkdmFuY2Vk TWFn b2xvZ2ljYWxseQ== IE1lY2hhbg== IHNlbnRlbmNlcw== IGFuYWx5c3Rz YXVnaHRlcnM= Zm9yY2VtZW50 IHZhZ3Vl IGNsYXVzZQ== IGRpcmVjdG9ycw== IGV2YWx1YXRl IGNhYmluZXQ= TWF0dA== IENsYXNzaWM= QW5n IGNsZXI= IEJ1Y2s= IHJlc2VhcmNoZXI= IDE2MA== IHBvb3JseQ== IGV4cGVyaWVuY2luZw== IFBlZA== IE1hbmhhdHRhbg== IGZyZWVk IHRoZW1lcw== YWR2YW50 IG5pbg== IHByYWlzZQ== MTA0 IExpYnlh YmVzdA== IHRydXN0ZWQ= IGNlYXNl IGRpZ24= RGlyZWN0 IGJvbWJpbmc= IG1pZ3JhdGlvbg== IFNjaWVuY2Vz IG11bmljaXBhbA== IEF2ZXJhZ2U= IGdsb3J5 IHJldmVhbGluZw== IGFyZW5h IHVuY2VydGFpbnR5 IGJhdHRsZWZpZWxk aWFv R29k IGNpbmVt cmFwZQ== ZWxsZQ== YXBvbnM= IGxpc3Rpbmc= IHdhaXRlZA== IHNwb3R0ZWQ= a2VsZXk= IEF1ZGlv ZW9y YXJkaW5n aWRkaW5n aWdtYQ== IE5lZw== IGxvbmU= IC0tLS0= ZXhl ZGVn IHRyYW5zZg== IHdhc2g= IHNsYXZlcnk= IGV4cGxvcmluZw== IFdX YXRzb24= IGVuY2w= bGllcw== IENyZWVr IHdvb2Rlbg== TWFuYWdlcg== IEJyYW5k dW1teQ== IEFydGh1cg== IGJ1cmVhdWNy IGJsZW5k YXJpYW5z RnVydGhlcg== IHN1cHBvc2VkbHk= IHdpbmRz IDE5Nzk= IGdyYXZpdHk= IGFuYWx5c2Vz IFRyYXZlbA== IFZldGVy IGR1bWI= IGFsdGVybmF0ZQ== Z2Fs IGNvbnN1bWVk IGVmZmVjdGl2ZW5lc3M= Licn IHBhdGhz b25kYQ== TEE= IFN0cm9uZw== IGVuYWJsZXM= IGVzY2FwZWQ= ICIi IDExMg== IDE5ODM= IHNtaWxlZA== IHRlbmRlbmN5 RmlyZQ== IHBhcnM= IFJvYw== IGxha2U= IGZpdG5lc3M= IEF0aA== IEhvcm4= IGhpZXI= IGltcG9zZQ== bW90aGVy IHBlbnNpb24= aWN1dA== Ym9ybmU= aWNpYXJ5 Ll8= IFNV IHBvbGFy aXN5 ZW5ndQ== aXRpYWxpemVk QVRB d3JpdGU= IGV4ZXJjaXNlcw== IERpYW1vbmQ= b3R5cGVz IGhhcm1mdWw= b256 IHByaW50aW5n c3Rvcnk= IGV4cGVydGlzZQ== IEdlcg== IHRyYWdlZHk= IEZseQ== IGRpdmlk YW1waXJl c3RvY2s= TWVt IHJlaWdu IHVudmU= IGFtZW5k IFByb3BoZXQ= IG11dHVhbA== IEZhYw== IHJlcGxhY2luZw== SGFy IENpcmN1aXQ= IHRocm9hdA== IFNob3Q= IGJhdHRlcmllcw== IHRvbGw= IGFkZHJlc3Npbmc= IE1lZGljYWlk IHB1cHA= IE5hcg== b2xr IGVxdWl0eQ== TVI= IEhpc3Bhbg== IExhcmdl bWlk RGV2 IGV4cGVk IGRlbW8= IE1hcnNoYWxs ZXJndXM= IGZpYmVy IGRpdm9yY2U= IENyZWF0ZQ== IHNsb3dlcg== IFBhcmtlcg== IFN0dWRlbnQ= IFRyYWluaW5n UmV0dXJu IFRydQ== IGN1Yg== IFJlYWNoZWQ= IHBhbmlj IHF1YXJ0ZXJz IHJlY3Q= IHRyZWF0aW5n IHJhdHM= IENocmlzdGlhbml0eQ== b2xlcg== IHNhY3JlZA== IGRlY2xhcmU= dWxhdGl2ZQ== ZXRpbmc= IGRlbGl2ZXJpbmc= ZXN0b25l IHRlbA== IExhcnJ5 IG1ldGE= YWNjZXB0 YXJ0eg== IFJvZ2Vy aGFuZGVk IGhlYWRlcg== IHRyYXBwZWQ= IENlbnR1cnk= IGtub2NrZWQ= IE94Zm9yZA== IHN1cnZpdm9ycw== Ym90 IGRlbW9uc3RyYXRpb24= IGRpcnQ= IGFzc2lzdHM= T01F IERyYWZ0 b3J0dW5hdGU= Zm9saW8= cGVyZWQ= dXN0ZXJz Z3Q= IExvY2s= IGp1ZGljaWFs dmVydGVk IHNlY3VyZWQ= b3V0aW5n IEJvb2tz IGhvc3Rpbmc= IGxpZnRlZA== bGVuZ3Ro IGplcg== IHdoZWVscw== IFJhbmdl dW1ibmFpbHM= IGRpYWdub3Npcw== dGVjaA== IFN0ZXdhcnQ= IFByYWN0 IG5hdGlvbndpZGU= IGRlYXI= IG9ibGlnYXRpb25z IGdyb3dz IG1hbmRhdG9yeQ== IHN1c3BpY2lvdXM= ISc= QXBy R3JlYXQ= IG1vcnRnYWdl IHByb3NlY3V0b3I= IGVkaXRvcmlhbA== IEty IHByb2Nlc3NlZA== dW5nbGU= IGZsZXhpYmlsaXR5 RWFybGllcg== IENhcnQ= IFN1Zw== IGZvY3VzZXM= IHN0YXJ0dXA= IGJyZWFjaA== IFRvYg== Y3ljbGU= 44CM cm9zZQ== IGJpemFycmU= 44CN IHZlZ2V0YWJsZXM= JCQ= IHJldHJlYXQ= b3NoaQ== IFNob3A= IEdyb3VuZA== IFN0b3A= IEhhd2FpaQ== IEF5 UGVyaGFwcw== IEJlYXV0 dWZmZXI= ZW5uYQ== IHByb2R1Y3Rpdml0eQ== Rml4ZWQ= Y29udHJvbA== IGFic2VudA== IENhbXBhaWdu R3JlZW4= IGlkZW50aWZ5aW5n IHJlZ3JldA== IHByb21vdGVk IFNldmVu IGVydQ== bmVhdGg= YXVnaGVk IFBpbg== IExpdmluZw== Q29zdA== b21hdGlj bWVnYQ== IE5pZw== b2N5 IGluYm94 IGVtcGlyZQ== IGhvcml6b250 IGJyYW5jaGVz IG1ldGFwaA== QWN0aXZl ZWRp IEZpbG0= IFNvbWV0aGluZw== IG1vZHM= aW5jaWFs IE9yaWdpbmFs R2Vu IHNwaXJpdHM= IGVhcm5pbmc= SGlzdA== IHJpZGVycw== IHNhY3JpZmlj TVQ= IFZB IFNhbHQ= IG9jY3VwYXRpb24= IE1p IGRpc2c= bGljdA== IG5pdA== IG5vZGVz ZWVt IFBpZXI= IGhhdHJlZA== cHN5 44OJ IHRoZWF0ZXI= IHNvcGhpc3RpY2F0ZWQ= IGRlZmVuZGVk IGJlc2lkZXM= IHRob3JvdWdobHk= IE1lZGljYXJl IGJsYW1lZA== YXJlbnRseQ== IGNyeWluZw== Rk9S cHJpdg== IHNpbmdpbmc= IEls IGN1dGU= b2lkZWQ= b2xpdGljYWw= IE5ldXJv 5aQ= IGRvbmF0aW9u IEVhZ2xlcw== IEdpdmU= VG9t IHN1YnN0YW50aWFsbHk= IExpY2Vuc2U= IEph IGdyZXk= IEFuaW1hbA== IEVS IFVuZA== IGtlZW4= IGNvbmNsdWRl IE1pc3Npc3NpcHBp RW5naW5l IFN0dWRpb3M= UHJlc3M= b3ZlcnM= bGxlcnM= IDM1MA== IFJhbmdlcnM= IHJvdQ== ZXJ0bw== RXA= aXNzYQ== aXZhbg== IHNlYWw= IFJlZ2lzdA== ZGlzcGxheQ== IHdlYWtlbg== dXVt IENvbW1vbnM= IFNheQ== IGN1bHR1cmVz IGxhdWdoZWQ= IHNsaXA= IHRyZWF0bWVudHM= aXphYmxl bWFydA== IFJpY2U= IGJlYXN0 IG9iZXNpdHk= IExhdXJl aWdh V2hpY2g= aG9sZGVy IGVsZGVybHk= IHBheXM= IGNvbXBsYWluZWQ= IGNyb3A= IHByb2M= IGV4cGxvc2l2ZQ== IEZhbg== IEFyc2VuYWw= QXV0aG9y ZWZ1bA== IG1lYWxz ICgt aWRheXM= IGltYWdpbmF0aW9u IGFubnVhbGx5 IG1z YXN1cmVz SGVhZA== aWto bWF0aWM= IGJveWZyaWVuZA== IENvbXB1dGVy IGJ1bXA= IHN1cmdl IENyYWln IEtpcms= RGVs bWVkaWF0ZQ== IHNjZW5hcmlvcw== IE11dA== IFN0cmVhbQ== IGNvbXBldGl0b3Jz 2YQ= IFN0YW5mb3Jk IFJlc291cmNlcw== YXplZA== YmFnZQ== IG9yZ2FuaXM= IFJlbGVhc2U= IHNlcGFyYXRlbHk= IGhhYml0cw== IG1lYXN1cmVtZW50cw== IENsb3Nl IGFjY29tcGFueQ== IGdseQ== IHRhbmc= IFJvdQ== IHBsdWdpbg== IGNvbnZleQ== IENoYWxsZW5nZQ== b290cw== amFu IGN1cnM= IFJlbGF0aW9ucw== a2VlcGVy IGFwcHJvYWNoaW5n cGluZw== U3BlYWtpbmc= IGFycmFuZ2VtZW50 IFZJ YXJldHRlcw== IGFmZmVjdGluZw== IHBlcm1pdHM= YmVjYXVzZQ== IHVzZWxlc3M= IEh1cw== ISEhIQ== IGRlc3Ryb3lpbmc= VW5mb3J0dW5hdGVseQ== IGZhc2NpbmF0aW5n U2Vt IGVsZWN0b3JhbA== IHRyYW5zcGFyZW5jeQ== IENoYW9z IHZvbHVudGVlcg== IHN0YXRpc3RpY2Fs IGFjdGl2YXRlZA== cm94 V2Vi SEU= IEhhbXBzaGlyZQ== aXNpdmU= TWFw IHRyYXNo IExhd3JlbmNl c3RpY2s= Q3I= IHJpbmdz RVhU IG9wZXJhdGlvbmFs b3Blcw== RG9lcw== IEV2YW5z IHdpdG5lc3NlZA== UG9ydA== IGxhdW5jaGluZw== ZWNvbm9t d2Vhcg== IFBhcnRpY2lw dW1t Y3VsZXM= IFJBTQ== IFR1bg== IGFzc3VyZWQ= IGJpbmFyeQ== IGJldHJheQ== IGV4cGxvcmF0aW9u IEZlbA== IGFkbWlzc2lvbg== aXRhdGVk U3k= IGF2b2lkZWQ= IFNpbXVsYXRvcg== IGNlbGVicmF0ZWQ= IEVsZWN0cmlj pZ4= IGNsdXN0ZXI= aXR6ZXJsYW5k aGVhbHRo TGluZQ== IE5hc2g= YXRvbg== IHNwYXJl IGVudGVycHJpc2U= IERJUw== Y2x1ZGVz IGZsaWdodHM= IHJlZ2FyZHM= IMOX aGFsZg== IHRydWNrcw== IGNvbnRhY3Rz IHVuY29ucw== IENsaW1hdGU= IGltbWVuc2U= TkVX b2Nj ZWN0aXZl IGVtYm9k IHBhdHJvbA== IGJlc2lkZQ== IHZpYWJsZQ== IGNyZWVw IHRyaWdnZXJlZA== dmVybmluZw== IGNvbXBhcmFibGU= cWw= IGdhaW5pbmc= YXNzZXM= ICgpOw== IEdyZXk= IE1MUw== c2l6ZWQ= IHByb3NwZXI= Ij8= IHBvbGxpbmc= IHNoYXI= IFJD IGZpcmVhcm0= b3JpZW50 IGZlbmNl IHZhcmlhdGlvbnM= Z2l2aW5n IFBp b3NwZWw= IHBsZWRnZQ== IGN1cmU= IHNweQ== IHZpb2xhdGVk IHJ1c2hlZA== IHN0cm9rZQ== IEJsb2c= c2Vscw== IEVj LCcn IHBhbGU= IENvbGxpbnM= dGVycm9y IENhbmFkaWFucw== IHR1bmU= IGxhYm9yYXRvcnk= IG5vbnM= dGFyaWFu IGRpc2FiaWxpdHk= IEdhbQ== IHNpbmdlcg== YWxn IFNlbmlvcg== IHRyYWRlZA== IFdhcnJpb3I= IGluZnJpbmc= IEZyYW5rbGlu IHN0cmFpbg== IFN3ZWRpc2g= IHNldmVudGg= IEJlbm4= IFRlbGw= IHN5bmRyb21l IHdvbmRlcmVk aWRlbg== KysrKw== aWdv IHB1cnBsZQ== IGpvdXJuYWxpc20= IHJlYmVs IGZ1 YmxvZw== IGludml0ZQ== cmVuY2llcw== IENvbnRhY3Q= SXNyYWVs IENvbnRlbnQ= IGNoZWVy IGJlZHJvb20= IEVuZ2luZWVyaW5n IFF1ZWVucw== IGR3ZWxs IFBsYXlTdGF0aW9u IERpbQ== IENvbG9u bHI= IG9wZXJhdGVz IG1vdGl2YXRpb24= VVNB YXN0ZXJlZA== Q29yZQ== IFRydXRo b2xv T1NF IE1lbW9yeQ== IHByZWRlYw== IGFuYXJjaA== IDE5MjA= IFlhbQ== w6g= Ymlk IGdyYXRlZnVs IGV4Y2l0ZW1lbnQ= IHRyZWFzdXJl IGxvbmdlc3Q= Y3RpdmU= IGRlc2VydmVz IHJlc2VydmVz IGNvcHM= IE90dGF3YQ== IEVneXB0aWFu YW5rZWQ= IGFydGlm IGh5cG90aGVzaXM= Oi8= IHB1cmNoYXNpbmc= IGxvdmVseQ== SFA= IGRpdmlkZQ== IHN0cmljdGx5 IHF1ZXN0aW9uaW5n IHRheHBheWVycw== IEpveQ== IHJvbGxz IEhlYXZ5 IHBvcnRz IG1hZ25ldGlj IGluZmxhbW0= IGJydXNo dGljcw== 4oiS IGJvdHRsZXM= cHB5 IHBhZGQ= 44Kv bWlsbGlvbg== IGRldmFzdGF0aW5n IGNvbXBpbGVk IG1lZGljYXRpb24= IHR3ZWx2ZQ== IFBlcnJ5 U3BhY2U= aW1i eW91cg== IGxlYWtlZA== IFRhcg== IHVuaXR5 IGluZmVjdGVk IHRyYXZlbGVk SURF IE1jRG9uYWxk dHh0 IFByaW5j IGludGVydmVu IFRhaXdhbg== IFBvdw== IGJlYXJpbmc= IFRocmVhZA== IHpvbmVz aXphcmRz dW5rcw== Q2hhcHRlcg== bGxvcg== IMK3 IHdvdW5kcw== IGRpc2NyZXRpb24= IHN1Y2NlZWRlZA== aWtpbmc= IGljb25pYw== Q2FsbA== IHNjcmVlbmluZw== IE1pcw== aWN0cw== IG1pbmlzdGVycw== IHNlcGFyYXRpb24= UGxheWVy IGJpcA== IGJlbG92ZWQ= IGNvdW50aW5n IEV5ZQ== YXJvdW5k aW5naW5n IHRhYmxldA== IG9mZmVuY2U= aW5hbmNl aGF2ZQ== IEluZm8= IE5pbmph IHByb3RlY3RpdmU= IENhc3M= TWFj IFF1YWxpdHk= Tm9ydGg= IGlj IEN1YmE= IENocm9uaWNsZQ== IFByb3BlcnR5 IGZhc3Rlc3Q= b3Rvcw== IEdlcm0= T1dO IGJvb20= IFN0YW5sZXk= ZXJndXNvbg== IGNsZXZlcg== IGVudGVycw== bW9kZQ== dGVyaW9y IFNlbnM= IGxpbmVhcg== QVJL IGNvbXBhcmluZw== IHB1cmVseQ== IHNhZmVy IFBvdHRlcg== IGN1cHM= UlQ= IGdsdWM= IGF0dHJpYnV0ZWQ= IGR1cGw= IFBhcA== IHByZWNpb3Vz IHBh aWN0aW9uYXJ5 IFRpZw== IFRvbw== b2x1dGlvbnM= c3Rhbg== IHJvYm90cw== IGxvYmI= IHN0YXR1dGU= IHByZXZlbnRpb24= d2VzdGVybg== MTYw IEFjdGl2ZQ== IE1hcmlh aGFs Tm9uZQ== ZWxsYXI= IEtC IFBhcnRuZXJz IFNpbmdsZQ== IEZvbGxvd2luZw== YW5nbw== YWNpb3Vz IHRob3U= IGtn IGluZmx1ZW50aWFs IEZyaWVuZHM= U3Vy YWludGVk IGZvcnVtcw== IHN0YXJ0ZXI= IGNpdGl6ZW5zaGlw IEVsZWN0aW9u b25nZQ== b3RhdGlvbg== b3NwaA== Ozs7Ow== dXRpY2Fs cHVy ZXJlbg== IGFjY3VzYXRpb25z Yml0aW91cw== YWJiaXQ= IE9yZA== UG9zdGVk aXJr IHNlbnNpdGl2aXR5 aWNoZQ== IEFteQ== IEZhYg== IHN1bW1pdA== IHBlZGVzdA== IHJ1YmJlcg== IGFncmljdWx0dXJhbA== IGNhbmNlbA== QUU= IGluYXVn IGNvbnRhbQ== IGZpcm1seQ== aXc= c3RhZ2U= IEthbg== IHRpZXI= IGludmVudGlvbg== IHRyYW5zbGF0ZWQ= IFJ1bGVz Qm94 VHdpdHRlcg== SURT IHBpenph IGRlYnVn IERyb3A= dnM= IGhvcnNlcw== Ymln IGJvcmluZw== IGhvb2Q= IE1jQ2Fpbg== YXRjaGVk IEJyb3M= IHNraXA= IGVzc2F5 c3RhdA== IExlZ2VuZHM= IGFtbXVuaXRpb24= YXVj IHNob290ZXI= IHVuaA== IHN1cHBsaWVk IGdlbmVyaWM= IFNL aWJhbg== eXJpY3M= IDI1NQ== IGNsaW1iaW5n Rm9ybWVy IGZsaXA= IGp1bXBpbmc= IGZydXN0cmF0aW9u IFRlcnJ5 IG5laWdoYm9yaG9vZHM= IG1lZGlhbg== YmVhbg== IGJyYWlucw== Rm9sbG93aW5n IHNoYXBlZA== IGRyYXdz IGFsdGVyZWQ= SmFjaw== IHJlY2lwZXM= IHNraWxsZWQ= d2VhbHRo YWNoaQ== ZWxlY3Rpb24= IGJlaGF2aW9ycw== ZGVhbHM= IFVudGls RmU= IGRlY2xhcmF0aW9u bWFya3M= IEJldHdlZW4= Y2Vsb25h IHJlc29u IGJ1YmJsZQ== QW1vbmc= IGltcGVyaWFs R1M= IGZlbWluaXN0 MjAwNQ== IEt5bGU= IGFjY291bnRpbmc= IFRlbGU= IFR5cg== IGNvbm5lY3Rpbmc= IHJlaGFi IFByZWQ= c2lt IG1lYW50aW1l IHBoeXNpY2lhbg== TVc= IENhbXBiZWxs IEJyYW5kb24= IGNvbnRyaWJ1dGluZw== IFJ1bGU= IFdlaWdodA== IE5hcA== IGludGVyYWN0aXZl IHZhZw== IGhlbG1ldA== IENvbWI= Zm91cg== IHNoaXBwZWQ= IGNvbXBsZXRpbmc= IFBE UERBVEU= IHNwcmVhZGluZw== IHNjYXJ5 ZXJ2aW5n IEdhcw== IGZyYW5r c2Nob29s IHJvbWFudGlj IHN0YWJpbA== Um9i IGFjY3VyYXRlbHk= IGFjdXRl IEhhbm4= IHN5bWJvbHM= IGNpdmlsaXphdGlvbg== IEFX IGxpZ2h0bmluZw== IGNvbnNpZGVycw== IHZlbnVl INc= IG92ZW4= IFNG aGlz IG51 IExlYXJu IHBlb3BsZXM= IHN0ZA== IHNsZWU= IHNsaWM= IFN0YXRpc3RpY3M= IGNvcm5lcnM= IEJha2Vy IDop bWVudGF0aW9u b2x2ZXI= IGxhdWdoaW5n IFRvZGQ= b25kZQ== IEhpbGxz IG51dHM= IFdvbWFu cGxhbmU= IGxpdmVy IEluc2lkZQ== U29ycnk= IGFncmVlcw== IGZ1bmRhbWVudA== IEZpc2hlcg== IGF1Y3Rpb24= IHRocmVhZHM= Z2xhcw== IEJhc2lj IE5hdA== IGxhY2tpbmc= IGNlbGVicmF0aW9u anU= IHNpbGx5 RXVybw== IHRhdHQ= aWdodHk= Y29udHJvbGxlZA== VGVzdA== IFNpbmdo IHJhZ2U= IHJoeXRo b2ZmaWM= IFBoYW50b20= IGhlYWRsaW5lcw== IHJlc3BvbmRpbmc= IE1vcm5pbmc= IHZpdGFtaW4= IGJvb3Rz IFNpdGU= YWxpbg== cGk= IHZpcmFs IFVD REVS IFNleA== IHN0b2Nrcw== Y3VycmVudA== IGNodXJjaGVz IFJhcmU= IE11cnBoeQ== IGRlbmlhbA== IEdhbWluZw== IHRvdWc= IG5pY2s= IG1ha2Vycw== IFJvbmFsZA== IGdlbmVyb3Vz IERvYw== IE1vcnJpcw== IHRyYW5zZm9ybWVk IE5vcm1hbA== IDEwNA== IEtpY2tzdGFydGVy IFVwb24= T25saW5l IElSUw== IHdyYXA= IGxvdmluZw== IGFycml2ZXM= IER1ZQ== IGhldGVy IE1hZGU= IHJlbnRhbA== IGJlbG9uZ3M= IGF0dG9ybmV5cw== IGNyb3Bz IG1hdGNoZWQ= dWx1bQ== b2xpbmU= MTA5 IGRpc3Bhcg== IGJ1eWVycw== IENhbWJyaWRnZQ== IGV0aGljcw== cm91cHM= IGp1c3RpZmllZA== IG1hcmdpbmFs IHJlc3BlY3RlZA== d2lubmluZw== IG5vZGRlZA== IFNlcmdl IEZvcm1lcg== Q3JhZnQ= IyMjIyMjIyMjIyMjIyMjIw== IFdhcm5lcg== IGRhc2g= ZXRl IGVudGVydA== IEVzY2FwZQ== b3V0aGVhc3Q= IGtuZWVz IEJvbWI= IHJ1Zw== UGFzcw== IGF0dGl0dWRlcw== Z292ZXJubWVudA== IFByaW9y IHF1YWxpdGllcw== IG5vdGlmaWNhdGlvbg== IFBob25l bGll IGFudGljaXBhdGVk IENvbWJhdA== IEJhcnJ5 IDE5ODI= VXNlcnM= b25lcg== IGNvbXB1dGluZw== IENvbm5lY3RpY3V0 IGxlc3Nlcg== IHBlZXJz IEN1 IHRlY2huaWNhbGx5 IHN1Ym1pc3Npb24= IFVuaXZlcnNhbA== IG1hbnVhbGx5 b3VyZ2U= IHJlc3BvbmRlbnRz IEJUQw== IEhvc3Q= IGZhcmU= IEJpcmQ= IHJlY2VpcHQ= YWxzbw== IGphY2s= IGFncmljdWx0dXJl IHNrdWxs ICE9 IHBhc3NpdmU= IENJ IHNvY2lldGllcw== IHJlbWluZGVk IGludGVyZmVyZW5jZQ== QnV5 IOKc Z29u IHNjcnV0aW55 IFdpdGNo IGNvbmR1Y3Rpbmc= IOOD IGV4Y2hhbmdlcw== IE1pdGNoZWxs IGluaGFiaXQ= IHR3aXN0 QkQ= IHdoZXJldmVy Z3JvdXBvbg== IGpva2Vz IEJlbmphbWlu IFJhbmRvbQ== ZnJhbWU= IExpb25z IGhpZ2hsaWdodGVk IEFya2Fuc2Fz RW50 IHBpbGU= IHByZWxpbQ== Z3M= bWluZGVk IGZlbG9ueQ== IEdB IEx1Y2s= IHByYWN0aWNhbGx5 IEJvcw== IGFjdHJlc3M= RGFt IEJvdQ== IHZpc2E= IGVtYmVkZGVk IGh5YnJpZA== IGVhcmxpZXN0 IHNvb25lcg== c29jaWFs IEhB IHN0ZWVw IGRpc2FkdmFudA== IGV4cGxvaXQ= IEVnZw== IFVsdHJh IG5lY2Vzc2l0eQ== TG9jYWw= aWVnZQ== IGRhdGVk IG1hc3Nlcw== IHN1YnNjcmlwdGlvbg== cGxlc3M= IGFub255bQ== IHByZXN1bWFibHk= Qmx1ZQ== VGhlaXI= YXNrZXRiYWxs IFBoaWxpcA== IGNvbWVk bG9hZGVk cmFuZQ== IHJlZmxlY3Rpb24= Q2hpbmE= IGV4dGVuZHM= IGZvcm1pbmc= IHVuZGVycw== MjAwMQ== IGdyYXQ= IGNvbmNlbnRyYXRpb25z IGluc3VsaW4= IHNlY3VsYXI= IHdoaWxzdA== IHdpbm5lcnM= QWR2ZXJ0aXNlbWVudHM= IGRlbGliZXJhdGVseQ== IFdvcmtpbmc= IHNpbms= ZXRpY3M= ZGFsZQ== IG1hbmRhdGU= IGdyYW0= IHZhY2F0aW9u IHdhcm5pbmdz cmlwcA== IFRIQVQ= IGNvbW1lbnRhcnk= IGludHU= IGFlc3Q= IHJlYXNvbmluZw== IGJyZWFrZG93bg== IFpvbWJpZQ== IC0tPg== IFBvbGl0aWNhbA== Y290dA== IHRocnVzdA== IHRlY2hub2xvZ2ljYWw= IGRlY2lkaW5n IHRyYWZmaWNraW5n TG9uZw== V2VsY29tZQ== cHJpc2luZw== IENvbW11bmljYXRpb25z IGVuZG9ycw== IHN3aWZ0 IG1ldGFib2w= Y29pbnM= cmVzYQ== IEhUVFA= IGVucm9sbA== IEhhcHB5 dXNy aW50YWdl IFsi dWFibHk= IE1hdGVyaWFs IHJlcGVhbA== U2VwdA== a2g= IE1vZGk= IHVuZGVybmVhdGg= IElM c2hvcmU= IGRpYWdub3NlZA== YWNldXRpY2Fs IHNob3dlcg== YXV4 IFN3aXRjaA== IFN0cmVuZ3Ro IGppaGFk bmF0aW9uYWw= IHRyYXVtYQ== dXNzeQ== b25p IGNvbnNvbGlk IGNhbG9yaWVz IEZseW5u YWdnZWQ= MTY4 IFBpbms= IGZ1bGZpbGw= IGNoYWlucw== IG5vdGFibHk= IEFW TGlmZQ== IENodWNr bXVz IFVyYmFu IEhlbmQ= IGRlcG9zaXQ= IFNhZA== IGFmZmFpcg== T1JL aWV2YWw= IEZEQQ== IHRyb3A= IE92ZXJhbGw= IHZpcnR1ZQ== IHNhdGlzZmFjdGlvbg== YXVuZA== IGx1bg== IFN3aXR6ZXJsYW5k IE9wZXJhdGlvbg== cHJvY2Vzcw== IHNob29r IGNvdW50aWVz bGVhc2Vk IENoYXJsb3R0ZQ== MTEy IHRyYW5zY3JpcHQ= IHJlZGQ= cHVzaA== IEhleQ== IEFuYWx5c2lz WyI= IGFsdGVybmF0aXZlcw== YXJkbGVzcw== IGVsZXBo IHByZWp1ZA== IExlYWY= SGF2aW5n IEh1Yg== IGV4cHJlc3Npb25z IFZvbHVtZQ== IHNob2NraW5n IFJlZHM= IHJlYWRpbHk= IHBsYW5ldHM= YWRhdGE= IGNvbGxhcHNlZA== IE1hZHJpZA== IGlycml0 aXBwZXI= IEVuYw== IFdpcmU= IGJ1eno= IEdQ YXNoYQ== IGFjY2lkZW50YWxseQ== dXJ1 IGZydXN0cmF0ZWQ= IFNB IGh1bmdyeQ== IEh1ZmY= IGxhYmVscw== YW50bw== IEVQ IGJhcnJpZXJz KXw= IEJlcmtlbGV5 IEpldHM= IHBhaXJz IExhbg== SmFtZXM= IEJlYXI= IGh1bW9y IExpYmVydHk= IG1hZ25pdHVkZQ== IGFnaW5n IE1hc29u IGZyaWVuZHNoaXA= dW1ibGluZw== IGVtZXJnZQ== IG5ld3NwYXBlcnM= IGFtYml0aW91cw== IFJpY2hhcmRz YXRlcm5hbA== IDE5ODE= IGNvb2tpZXM= IHNjdWxwdA== IHB1cnN1aXQ= TG9jYXRpb24= IHNjcmlwdHM= cGM= IGFycmFuZ2VtZW50cw== IGRpYW1ldGVy IGxvc2Vz YW1hdGlvbg== IGxpcXU= IEpha2U= YXJldHRl IHVuZGVyc3RhbmRz IFplbg== dm0= IGFwcHJvdmU= IHdpcA== IHVsdHJh IGludGVuZA== IERJ YXNjdWxhcg== IHN0YXlz IEtvcg== IEts IGludmVzdGluZw== TGE= IGJlbGlldmluZw== YmFk bW91dGg= IHRheHBheWVy 44OD IFF1ZWJlYw== IGxhcA== IFN3aXNz ZHJvcA== IGRyYWlu aXJp ZXRj ZnRlbg== IE5leA== IHN0cmF3 IHNjcmVhbWluZw== IGNvdW50ZWQ= IGRhbWFnaW5n IGFtYmFzc2Fkb3I= Y2VudHVyeQ== IHByb3g= IGFycmVzdHM= dXY= aWxhdGVyYWw= IENoYXJn IHByZXNjcmliZWQ= IGluZGVwZW5kZW50bHk= IGZpZXJjZQ== IEJhYnk= IGJyYXZl IHN1aXRz PT4= IGJhc2VsaW5l IFJhdGU= IGlzbGFuZHM= ICgo Z3JlZW4= aXhlbHM= IG5hbWVseQ== IFZpbGxhZ2U= dGhhbg== YW15 VmVyc2lvbg== Z21haWw= ZW50aWFscw== IFN1ZA== IE1lbGJvdXJuZQ== IGFycml2aW5n IHF1YW50dW0= ZWZm cm9wb2xpdGFu VHJp IGZ1bmVyYWw= IElS w4PDgsODw4LDg8OCw4PDgsODw4LDg8OCw4PDgsODw4I= IENvYg== aXRhYmx5 IHR1cmI= IGNvbWJv UmV2aWV3 IGRlcGxveW1lbnQ= dWl0eQ== IEJvdHQ= IGludmlzaWJsZQ== IHJlbmRlcmluZw== IHVubG9ja2Vk IGFxdQ== IFZsYWRpbWly IHBhZA== IEJyYWlu IExlZ2FjeQ== ZHJhZ29u IEt1cmRpc2g= IHNvdW5kZWQ= IGRldGFpbmVk IERN Z2FyeQ== IGRhdWdodGVycw== IGRpc3R1cmJpbmc= dWth IFBhcmFk IHRhc3Q= IHVuZm9ydHVuYXRl IHVs ZW1pbg== IGF0dGVuZGFuY2U= dHJs IHBhcmtz IE1lbW9yaWFs IEFsaWNl b3RoeQ== Z3VhcmQ= IERpc2U= IFNoYW4= IEZvcnVt UmljaA== IHNoaWZ0ZWQ= dWV6 IGxpZ2h0ZXI= IE1hZ24= IGNvZA== U2No aGFtbWFk UHVi MzUw IFBva2Vtb24= IHByb3RvdHlwZQ== IHVucmU= QmFzZQ== IFN0dWRlbnRz IFJlcGx5 IENvbW11bmlzdA== IGdhdQ== IFR5bGVy SVo= IHBhcnRpY2lwYXRlZA== IHN1cHJlbQ== IERldGFpbHM= IHZlc3NlbHM= cm9k IHRyaWJl a2VlcA== IGFzc3VtcHRpb25z IHBvdW5k IGNydWRl IEF2YWlsYWJsZQ== IHN3aW1taW5n IGluY2x1c2lvbg== IGFkdmFuY2Vz Y3VsYXRpb24= IGNvbnNlcnZhdGlvbg== IG92ZXJk IEJ1ZmZhbG8= QXJ0aWNsZQ== ZWRnZQ== IGF3YQ== IE1hZGlzb24= IHNpZGV3 IGNhdGFzdA== IEtyaXN0 dWNsZQ== IEhpZ2h3YXk= IFRlcnJvcg== IGFjdGl2YXRpb24= IHVuY29uc2Npb3Vz IFNhdGFu IFN1c2Fu aWxsZXJ5 IGFycmFuZ2Vk aW9w IHJ1bW9ycw== dXJyaW5n dGhpbms= IEtlaXRo IEtpbmQ= IGF2b2lkaW5n Ynlu bnV0 IFNwZWFrZXI= cnVz bmFtZXM= IGd1aWx0 IE9seW1waWNz IHNhaWw= IE1lcw== bGV2YW50 IENvbHVtYnVz YWZ0 Q2l0eQ== U291dGg= IEhhcnZleQ== IFB1bg== U2V2ZXJhbA== IG1lbnRhbGx5 IGltcHJlc3M= bW91bnQ= IFVidW50dQ== 4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU IFN1cGVybWFu IE1Qcw== IGludGVudGlvbnM= IFJhY2luZw== IGxpa2VsaWhvb2Q= IDI0MA== VG90YWw= IHRveXM= IFdhdHNvbg== IHVyZ2U= TGVhcg== IFBhcGVy IG9jY3VycmluZw== IEJlbmc= IENlcnQ= IHN0b25lcw== VGlt IFR3aW4= emI= IER5bmFt IHBvbGl0aWNpYW4= a2Vucw== IEVudGVycHJpc2U= VVRFUlM= IGFib2w= IHJlZnJlc2g= IGFyYml0cmFyeQ== cGVjdGlvbg== IHRyb3VibGVz IH0pOw== dHY= IHBpbG90cw== IGRpc3RyaWJ1dGU= IGF1ZGl0 IHBhdXNl b3JpZ2luYWw= IHJpdmFscw== wqM= Rmln VEw= YWJpbA== cnlpbmc= TGlu aW9uZWQ= bG9u IGZhbmN5 IGNyYXNoZWQ= IHRyYWN0 IHNoZWQ= IGNvbnN1bWU= QmFzZWQ= ZG93bmxvYWQ= aW5pdA== IHZvbHRhZ2U= SW50cm9kdQ== IGNvbmRlbW5lZA== IEZpbmFuY2U= cmVzcGVjdA== IGV4Y2x1ZGVk IGVzdGFibGlzaGluZw== aGVyaWM= IGhlcml0YWdl IHNwZWN0YWN1bGFy IHVuc3Q= IFNub3dkZW4= IExhbmU= U2Fu IHByb3RlY3Rpb25z c3RydWN0aW9u aW5jaW5u IG1hY3Jv Q3VzdG9t aW9zaXR5 IGVzcA== IGZ1bmN0aW9uaW5n IG11c2g= IHB1enpsZQ== IGV0aGljYWw= TWFs IGdvdmVybmluZw== IEZlcmd1c29u IHJlc3RvcmVk IHN0cmVzc2Vk IENvdW50ZXI= IEthcw== Y2xpcA== QU5T IHNlaXo= VUs= Ynlzcw== b2xkb3du YXBp IHBlcm1hbmVudGx5 b3VudGVycw== V2VzdA== VGhyb3VnaA== TGlnaHQ= YXRvZXM= IG5lYXQ= IGNvcmQ= dXJlcg== IHNldmVyZWx5 IEF2ZW4= IGludGVycm9n IHRyaXBsZQ== R2l2ZW4= TnVtYmVy IGFyaXNl IHNoZXI= cGxhbnQ= IGZsb3dlcg== IENvdQ== IGF0ZQ== IG5ld2Vy YnVs IG1lYW53aGlsZQ== IExhaXI= IGFkanVzdG1lbnQ= IENvcHlyaWdodA== IGRpdmVycw== aW9sb2dpY2Fs IGdhbWVycw== b2F0 IGhpc3RvcmljYWxseQ== IGFuYWxvZw== IGxvbmd0aW1l IHByZXNjcmlwdGlvbg== IE1pc3Q= IEh5cGVy IE1haW5l IERlaXR5 IG11bHRpcGw= IFJlaW5jYXJu IEh5ZA== IFBpYw== U2ls cmFudHM= IENyaXM= Ljs= KHs= ZXBlbmRlbmNl IHJlY3k= YXRldXI= IHF1YWQ= IGdsb2I= IGNvbmNlZA== dGVhbQ== IGNhcGl0YWxpc3Q= IExvdA== IHJveWFs IEN5YmVy IGJsYWNrcw== bWV0aWM= cml2 IERhbm55 IHNwbw== IFJP IGFuaW1hdGVk cnlwdGVk IERlcHV0eQ== IHJlbmRlcmVk RkU= IHN0cmVhaw== IGNsb3Vkcw== IERvdWc= fn5+fn5+fn4= IGRpc2NvdXI= IFZlaA== IHBzeWNob2xvZ3k= IEpvdXJuZXk= IGNyeXN0YWw= IEZyb3N0 IHN1c3BpY2lvbg== IHJlbGF0ZQ== b3J1cw== IENyeXB0 IE5WSURJQQ== Y29tZWQ= dXRpbmc= aW5jaW5uYXRp IHZ1bG5lcmFiaWxpdHk= b3N0aWM= IGlzb2xhdGlvbg== IGNvb2xpbmc= IENvYWxpdGlvbg== IDExOQ== Rm91cg== IERlYWw= IOKJ c2VtYmxl cmFtZW50 IEJhcmNlbG9uYQ== IDEwMg== IGNvY2FpbmU= b2NhbHlwc2U= RmVi b2dlbmlj IG11dGF0aW9u IGNyeXB0b2M= IEtlbA== IEdpdA== YWlz IHNpc3RlcnM= QU5L IGFjdGl2YXRl VGVy IGRyZWFk eWxvbg== IHByb3ByaQ== QXVzdA== IERlZmF1bHQ= IG91dGRvb3I= IHNoZWVy Y2VpdmU= IGdlbnRseQ== 0L4= UHJvZ3JhbQ== IOKGkg== IHZlZ2Fu IENydXM= IHJlc3BvbnNpYmlsaXRpZXM= IEhS T0xE IHByZXZlbnRz IHN0aWZm IFdlcmU= IGF0aGxldGlj IFNjb3Jl ICk6 IGNvbHVtbnM= IExvYw== YXZhaWxhYmxl IEZyYW0= IFNlc3Npb25z IGNvbXBhbmlvbg== IHBhY2tz MTQw IEtuaWdodHM= IGZhcnQ= IHN0cmVhbXM= IHNob3Jl IGFwcGVhbHM= IFBlcmZvcm1hbmNl aGF1bA== IFN0cmE= IE5hZw== MTAz IFRyYW5zcG9ydGF0aW9u QkI= RXY= emFu UHVibGlj IHR3aW4= dWxzaW9u TXVsdA== IGVsZWN0cm8= IHN0YXR1ZQ== YXRpb25hbGx5 IE5vcnQ= IGluc3BlY3Rpb24= Lyo= aWd1ZQ== IGNvbXBhc3Npb24= IFRhbGVz IFN0ZWlu IFNjcmVlbg== IEJ1Zw== IExpb24= Z2lybA== IHdpdGhkcmF3YWw= IG9iamVjdGl2ZXM= IGJsb29keQ== IHByZWxpbWluYXJ5 IGphY2tldA== IGRpbWVuc2lvbnM= IENvb2w= IE9jY3Vw IHdyZWNr IGRvdWJsZWQ= YW5raW5n IDE5NzU= IGdsYXNzZXM= IFdhbmc= cHJvdg== UGF0aA== Y29ubmVjdGVk IE11bHRp IE5vcndheQ== YWdvbmlzdA== IGZlYXJlZA== IHRvdWNoaW5n IGFyZ3VhYmx5 wq/Cr8Kvwq/Cr8Kvwq/Crw== IE5DQUE= Y2hlbQ== IHNwYXQ= IFdXRQ== IENlbA== aWdnZXI= IGF0dGFja2Vy IEpvaW4= b2JqZWN0 ZXR0YQ== IGVsaW1pbmF0ZWQ= ZGV0 IGRlc3RydWN0 IEx1Y2Fz Y3R1YXJ5 MTgw IEJyYWR5 IEJsdWVz QmF5 YXVrZWU= IHRpbWVsaW5l IGRlbGVnYXRlcw== d3JpdHRlbg== dWZmaWNpZW50 IHNoYXBlcw== Q29weXJpZ2h0 b3VibGU= c2VydmljZQ== IHBpb25l IGNvbGxlZ2Vz IHJvd3M= IHNwaXRl IGFzc2Vzc2Vk MzYw IGxlYXNl IGNvbmZpZGVudGlhbA== Y2tlcg== IE1hbm5pbmc= IFZvaWNl IHNlYWxlZA== IGNhbGN1bGF0ZQ== Tk8= IEFzc2lzdGFudA== IHRlZW5hZ2Vy dWxlbnQ= YXRoZXJpbmU= IG1vY2s= IGRpYW1vbmQ= IGZlc3Q= IHN3aXRjaGVk IHJlc3VtZQ== IFB1ZXJ0bw== IGxhbmVz aXJhdGlvbg== IFNpbWlsYXJseQ== IHJvZA== IFNlbA== IFBhbGFjZQ== IExpbWl0ZWQ= ZW91cw== IHZhcmlhbnQ= IHdhcmQ= ICkp U2hvdw== T09L QWxleA== IE5lcA== YnJpcw== IFdpa2lwZWRpYQ== IGV4Y2VwdGlvbmFs IG1hbmFnZXM= IERyYXc= QWdhaW4= IGNvcHBlcg== dXR0 IGV4cG9ydHM= IHBvcnRmb2xpbw== IGVsZXZhdGVk UmF0ZWQ= IE90aGVyd2lzZQ== IFRhY3Q= IFNoZWw= IFRY IuKAlA== IHJlc3Vy IFdh dmVuYW50 IG1vbmV0YXJ5 cGVvcGxl RW1haWw= IGZpZnR5 IFN3ZWV0 IE1hbGF5c2lh IGNvbmZ1c2luZw== IFJpbw== dWRh dXRlbmFudA== Iik7 IHByYWlzZWQ= IHZvbHVtZXM= dHVybg== IG1hdHVyZQ== IG5vbnByb2ZpdA== IHBhc3Npb25hdGU= IFByaXZhdGU= IDEwMw== IGRlc2NlbmQ= 56We dWZmeQ== aGVhZGVk V2hldGhlcg== cmllbg== emVjaA== YmVpdA== IGNocm9t IE1jTQ== IGRhbmNpbmc= IGVsZWc= IE5vdGljZWQ= MTE1 IGFkdm9jYWN5 RU5UUw== YW1ibGluZw== IE1pbm9y IEZpbm4= IHByaW9yaXRpZXM= IHRoZXJlb2Y= IFN0YWdl IFJvZ2Vycw== IHN1YnN0aXR1dGU= IEphcg== IEplZmZlcnNvbg== IGxpZ2h0bHk= MTAy IExpc2E= dWl0cw== eXNpY2Fs IHNoaWZ0cw== IGRyb25lcw== IHdvcmtwbGFjZQ== IHJlc2lk ZW5zZWQ= YWhu IHByZWZlcmVuY2Vz c2VydmVy IGRlYmF0ZXM= ZG9j IEdvZHM= IGhlbGljb3B0ZXI= IGhvbm91cg== IGNvbnNpZGVyYWJseQ== ZWRlZA== IEZlbWFsZQ== IEFubmU= IHJldW4= IEZhY2U= IEhhbGxvdw== IEJ1ZGdldA== IGNvbmRlbW4= IHRlbmRlcg== UHJvZg== b2NyYXRpYw== IFR1cm5lcg== IEFncmlj IDE5NzY= IGFwdA== ZGlzYw== IEZpZ2h0ZXI= IEF1cg== IGdhcmJhZ2U= aW5wdXQ= IEthcmw= IE9saXZlcg== IExhbmd1YWdl a24= Tm9u IENsYXI= IHRyYWRpdGlvbnM= IGFkdmVydGlzZW1lbnQ= IFNvcg== IGFyY2hpdmU= IHZpbGxhZ2Vz NzUw IGltcGxlbWVudGluZw== d2F1a2Vl IGRpZXRhcnk= IHN3aXRjaGluZw== UmVwdWJsaWM= IHZlbG9jaXR5 IGNpdA== IEF3YXJkcw== IGZpbmFuY2luZw== IGxhc3RlZA== KV0= IHJlbWluZGVy UGVyc29u IHByZWNpc2lvbg== IGRlc2lnbmVycw== IEZyaWVk IEJvcmRlcg== IHRyYWdpYw== IHdpZWxk IGluaXRpYXRpdmVz IFRhbms= d2Vy IGpvaW5z Um8= aW5lcnk= IGFycm93 IGdlbmVyYXRpbmc= Zm91bmRlcg== IHNlYXJjaGVz IHJhbmRvbWx5 QWNjZXNz IGJhdGNo IHBvc2Vk bGF0 IHB1cnN1aW5n YXNh IHRlc3RpZmllZA== Zm9ybWluZw== IFNoYXI= d2lraQ== IEVpdGhlcg== U29tZXRpbWVz IHNlbmF0b3Jz IEpvaG5ueQ== IFRhbGliYW4= IEdQUw== IjoiLw== 44Gu5Q== IGFuYWx5emVk IFJ1Ymlv IE1vdmVtZW50 b3BhcmQ= aWlp U3RhbmQ= ZmlnaHQ= IGlnbm9yaW5n aWFuZw== IEdO c29ldmVy IFNUQVQ= IHJlZnVzaW5n IHN3ZWF0 IGJheQ== UE9SVA== aXJtZWQ= YWt5 IGRpc3Bybw== IGxhYmVsZWQ= IDEwOA== SGVsbG8= IHBsZWFzYW50 YWJh IHRyaXVtcGg= IGFib2FyZA== IGluY29t IENyb3c= bGV0dA== IGZvbGs= IGNoYXNl YGA= IEJydXM= IHRlZW5z Y3Vl IHRlcnJhaW4= aHlk aWxpZ2h0 T1JZ U3VwcG9ydA== ZXdz bGxp cmFpbnRz IENhbmQ= IGFidXNlZA== YWNobWVudA== bGFyZw== QmFz IENhbmNlcg== IDE5Nzg= IHN1cHBvcnRlcg== YWNjZXNz IFRlcm1pbg== IFRhbXBh IEFOWQ== IG5ld2VzdA== IENyaW1pbmFs ZWR1 IDE5MzA= IGFkbWl0cw== IGVuZGU= IGZhaWx1cmVz dXJhdGU= ZnVsbmVzcw== Y3ljbA== IFN1YmplY3Q= IGluZmluaXRl dGhyZWU= V0E= cGl0 IEluc3RhbGw= UmFk aWxpYXRpb24= R00= IGNvbnRpbmVudA== IGFjY29tbW9kYXRl IENsYXk= IHB1cA== IEZ1bmN0aW9u IGhhbW1lcg== IEFsYmVydGE= IHJldmlzZWQ= IG1pbm9yaXRpZXM= IG1lYXN1cmVtZW50 Q29ubmVsbA== IGRpc2FibGU= IE1peA== SW5jcmU= IGZvcms= IFJvc2Vu IGltcGxpZXM= dW1ibHI= QU5H IHByb3RlaW5z IGFnZ3Jlc3Npb24= IGZhY2lsaXRhdGU= U04= IGlsbGVnYWxseQ== dWVy IGFjYWRlbQ== IHB1eno= IFNoaWZ0 cGF5 b2xsbw== IGF1ZGllbmNlcw== QnVpbGQ= IG5vYmxl IHN5bnRheA== 4piF IGJlYW0= IEJlZA== IEFsZA== IG9yaWdpbnM= dmlkZW8= IDE5Nzc= IEFzc2F1bHQ= IGdhcmFnZQ== VGVhbQ== IHZlcmRpY3Q= IGR3YXI= IFZpcnR1YWw= ZXZlbnQ= S2VlcA== IHNlbnRpbWVudA== IHdpbGRsaWZl c2hpcnQ= IGJ1cmc= IHJlY29tbWVuZGF0aW9u cmVwcmVzZW50 IGdhbGxlcnk= b3duZXJz IHNjaG9sYXI= IGNvbnZlbmllbmNl IFN3aWZ0 IGNvbnZpbmM= Q2Fw IHdhcmZhcmU= IFZpc3VhbA== IGNvbnN0aXR1dGU= IGFib3J0 IFdlYXRoZXI= IExvb2tpbmc= IEhlbQ== IG1hcnRpYWw= IGluY29taW5n ZXRpdGlvbg== IHRvbGVyYW5jZQ== IENyZWF0ZWQ= IGZsb3dz IEVsZGVy IHNvdWxz IGZvdWw= IFBhaW4= IENBTg== IDIyMA== YmM= aGVuZA== IGdlbml1cw== UmVhbA== IFdy b21ldGVy cGFk IGxpbWl0aW5n IFNp IExvcmU= IEFkdmVudHVyZXM= IHZhcmllZA== RGlzYw== Zmlu IFBlcnNvbmFs Q2hyaXM= IGludmVudGVk IGRpdmU= IFJpc2U= IG96 IENvbWljcw== IGV4cG9zZQ== IFJlYg== bGV0dGVycw== c2l0ZQ== aW1hdGVk IGhhY2tpbmc= IGVkdWNhdGVk IE5vYm9keQ== IGRlcHJp IGluY2VudGl2ZQ== 44K3 IG92ZXJzaWdodA== IHRyaWJlcw== IEJlbGdpdW0= IGxpY2Vuc2luZw== b3VydA== UHJvZHVjdA== YWhs IEdlbQ== IHNwZWNpYWxpc3Q= IGNyYQ== YW5uZXJz IENvcmJ5bg== IDE5NzM= UkVBRA== IHN1bW1hcg== IG92ZXJsb29r IEFwcGxpY2F0aW9u IGluYXBwcm9wcmlhdGU= IGRvd25sb2FkZWQ= UXVl IEJlYXJz IHRodW1i IENoYXJhY3Rlcg== IFJlaW5jYXJuYXRlZA== IFNpZA== IGRlbW9uc3RyYXRlcw== c2t5 IEJsb29tYmVyZw== IEFycmF5 IFJlc3VsdHM= IEZvdXJ0aA== IEVEVA== IE9zY2Fy Y2VuZA== IDEwNg== IE5VTEw= IEhFUkU= bWF0Y2g= IEJydW4= IGdsdWNvc2U= aWVn ZWd1 IGNlcnRpZmllZA== IHJlbGll IGh1bWFuaXRhcmlhbg== IHByYXllcnM= S2luZw== IG5hbg== aG91 MTA4 dWx1 IHJlbmV3YWJsZQ== IGRpc3Rpbmd1aXNo IGRlbnNl IFZlbnQ= IFBhY2thZ2U= IEJvc3M= IGVkaXRvcnM= IG1pZ3I= VHJh IFBldGVycw== IEFyY3RpYw== MjAwNA== IENhcGU= IGxvY2FsbHk= IGxhc3Rpbmc= IGhhbmR5 Liku UGFu IFJFUw== SW5kZXg= IHRlbnNpb25z IGZvcm1lcmx5 IGlkZW9sb2dpY2Fs IHNlbnNvcnM= IGRlYWxlcnM= IGRlZmluZXM= U2s= IHByb2NlZWRz IHByb3h5 YXppbmVz IEJhc2g= IFBhZA== IENyYWZ0 ZWFsb3Vz IHNoZWV0cw== b21ldHJ5 SnVuZQ== Y2xvY2s= VFQ= IFRoZWF0cmU= IEJ1eno= IGNoYXB0ZXJz IG1pbGxlbm4= IGRvdWdo IENvbmdyZXNzaW9uYWw= IGltYWdpbmVk YXZpb3I= IGNsaW5pYw== IDE5NDU= IGhvbGRlcg== cm9vdA== b2xlc3Rlcg== IHJlc3RhcnQ= Qk4= IEhhbWFz IEpvYg== IG9yYg== IHJhbQ== IGRpc2Nsb3Nl IHRyYW5zbGF0ZQ== IGltbWlncmFudA== IGFubm95aW5n IHRyZWF0eQ== YW5pdW0= IFRlYQ== IExlZ2lvbg== IGNyb3dkcw== IEJlYw== IEFlcg== b2h5ZA== QnJv TG9va2luZw== IGxicw== IGFnZ3Jlc3M= IHNlYW0= IGludGVyY2VwdA== IE1J bWVyY2lhbA== YWN0aXY= IENpdA== IGRpbWVuc2lvbg== IGNvbnNpc3RlbmN5 IHJ1c2hpbmc= IERvdWdsYXM= IHRyaW0= SW5zdGFsbA== aWNrZXI= IHNoeQ== MTA2 IG1lbnRpb25z cGVsbGVk IFRhaw== Y29zdA== IGNsYXNzcm9vbQ== IGZvcnR1bmU= ZHJpdmVu IHVubGU= IFdoZWVs IGludmVzdG9y IE1hc3RlcnM= a2l0 IGFzc29jaWF0aW9ucw== IEV2b2x1dGlvbg== b3Bpbmc= dXNjcmlwdA== IHByb3ZpbmNpYWw= IFdhbHRlcg== YXZp U08= IHVubGltaXRlZA== RW5nbGlzaA== IENhcmRz IEVib2xh bmVyZWQ= IHJldmVuZ2U= IG91dHJpZ2h0 dW1wZXI= IGZpdHRpbmc= IFNvbGlk IGZvcm1hbGx5 IHByb2JsZW1hdGlj IGhhemFyZA== IGVuY3J5cHRpb24= IHN0cmFpZ2h0Zm9yd2FyZA== IEFL IHBzZQ== IE9yYg== IENoYW1iZXI= IE1haw== Q29udGVudHM= IGxveWFsdHk= IGx5cmljcw== IFN5bQ== IHdlbGNvbWVk IGNvb2tlZA== IG1vbm9w IG51cnNl IG1pc2xlYWRpbmc= IGV0ZXJuYWw= IHNoaWZ0aW5n ICs9 Vmlz IGluc3RpdHV0aW9uYWw= aWxsYXJ5 IHBhbnQ= VkVSVA== IEFDQw== IEVuaA== IGluY29u IFJFVVRFUlM= IGRvbmF0ZWQ= 4oCm4oCm4oCm4oCm SW50ZXJu IGV4aGliaXQ= IHRpcmU= IFJpYw== IENoYW1waW9u IE11aGFtbWFk TklORw== IFNvY2Nlcg== IG1vYmlsaXR5 IHZhcnlpbmc= IE1vdmll IGxvcmQ= b2Fr RmllbGQ= IHZlY3Rvcg== dXNpb25z IHNjcmFw IGVuYWJsaW5n bWFrZQ== VG9y Lio= fHw= IFdlYnNpdGU= IE5QQw== IHNvY2lhbGlzdA== IEJpbGx5 IEFkZGl0aW9uYWw= IGNhcmdv IGZhcm1z IFNvb24= IFByaXpl IG1pZG5pZ2h0 IDkwMA== c2Vlbg== IFNwb3Q= IHNoZWVw IHNwb25zb3JlZA== IEhp IEp1bXA= IDE5Njc= TWljcm9zb2Z0 IEFnZW50 IGNoYXJ0cw== ZGly IGFkamFjZW50 IHRyaWNrcw== IG1hbmdh IGV4YWdnZXI= Lz4= Zm9vdGJhbGw= IEZDQw== R0M= IFRpZXI= YW5kcmE= T1VORA== JSks IGZydWl0cw== VkM= IEFB Um9iZXI= IG1pZHN0 4pc= YW5rYQ== IGxlZ2lzbGF0dXJl IE5laWw= IHRvdXJpc3Rz IiI= IFdhcm5pbmc= IE5ldmVydGhlbGVzcw== IE9mZmljaWFs IFdoYXRldmVy IG1vbGQ= IGRyYWZ0ZWQ= IHN1YnN0YW5jZXM= IGJyZWVk IHRhZ3M= IFRhc2s= IHZlcmI= IG1hbnVmYWN0dXJlZA== Y29tbWVudHM= IFBvbGlzaA== UHJvdg== IGRldGVybWluZXM= T2JhbWE= a2Vycw== IHV0dGVybHk= IHNlY3Q= c2NoZQ== IEdhdGVz IENoYXA= IGFsdW1pbnVt IHpvbWJpZQ== IFRvdWNo IFVQ IHNhdGlzZnk= IHByZWRvbWlu YXNjcmlwdA== IGVsYWJvcmF0ZQ== IDE5Njg= IG1lYXN1cmluZw== IFZhcmk= YW55YWh1 IHNpcg== dWxhdGVz aWRnZXM= aWNrZXRz IFNwZW5jZXI= VE0= b3VidGVk IHByZXk= IGluc3RhbGxpbmc= IENhYg== cmVlZA== cmVhdGVk U3VwcA== IHdyaXN0 IEtlcnJ5 MTA3 IEtsZQ== IFJhY2hlbA== IGNvdHRvbg== IEFSRQ== IEVsZQ== Q29udHJvbA== IGxvYWRz IERvZA== YW5hcw== Ym9uZQ== IGNsYXNzaWNhbA== IFJlZ2lvbmFs IEludGVn Vk0= IGRlc2lyZXM= IGF1dGlzbQ== c3VwcG9ydGVk IE1lc3NhZ2U= IGNvbXBhY3Q= d3JpdGVy IDEwOQ== IEh1cnJpY2FuZQ== Y2lzaW9u IGN5Y2xlcw== IGRyaWxs IGNvbGxlYWd1ZQ== IG1ha2Vy R2VybWFu IG1pc3Rha2Vu U3Vu IEdheQ== IHdoYXRzb2V2ZXI= IHNlbGxz IEFpcmw= bGl2 IE9wdGlvbg== IHNvbHZlZA== IHNlY3RvcnM= IGhvcml6b250YWw= IGVxdWF0aW9u IFNraWxs IEJpbw== Z2VtZW50 IFNuYXA= IExlZ2Fs IHRyYWRlbWFyaw== IG1ha2V1cA== IGFzc2VtYmxlZA== IHNhdmVz IEhhbGxvd2Vlbg== IFZlcm1vbnQ= IEZST00= IGZhcm1pbmc= IFBvZGNhc3Q= YWNjZXB0YWJsZQ== IEhpZ2hlcg== IGFzbGVlcA== dWxsaXZhbg== IHJlZmVyZW4= IExldg== IGJ1bGxldHM= b2tv SEM= IHN0YWlycw== IG1haW50YWlucw== IExvd2Vy IFZp IG1hcmluZQ== IGFjcmVz IGNvb3JkaW5hdG9y IEpvaA== IGNvdW50ZXJwYXJ0cw== IEJyb3RoZXJz IGluZGljdA== YnJh IGNodW5r IGNlbnRz SG9tZQ== IE1vbnRo IGFjY29yZGluZ2x5 aWZsZXM= IEdlcm1hbnM= IFN5bg== SHVi IGV5ZWI= 4pSA4pSA4pSA4pSA IHJhbmdlcw== IEhvbGxhbmQ= IFJvYm90 ZmM= TWlrZQ== IHBsYXNtYQ== IHN3YXA= IGF0aGxldGU= IFJhbXM= LCci IGluZmVjdGlvbnM= IGNvcnJpZA== IHZpYg== IHBhdGNoZXM= IHRyYWRpdGlvbmFsbHk= IHJldmVsYXRpb24= IHN3ZWVw IGdsYW5jZQ== IGluZXg= MjAwMw== IFJhdw== d29ya2luZw== b3N1cmVz IERhdA== IEx5bmNo IGxldmVyYWdl IFJlaWQ= IGNvcnJlbGF0aW9u aWFuY2Vz YXZhc2NyaXB0 IHJlcG9zaXRvcnk= cmV0dHk= IDE5NzI= MjQw IG91bg== cG9s IFJlZWQ= IHRhY3RpY2Fs aXNpdGU= QXBwbGU= IFF1aW5u IHJhcGVk aWxsbw== RXVyb3Bl IGFsZ29yaXRobXM= IFJvZHJpZw== aXU= IGlsbHVt IGZhbWU= IGludHJvZHVjaW5n IGRlbGF5cw== IFJhaWRlcnM= IHdoaXN0bGU= IG5vdmVscw== IFJlYWxseQ== IGRlcml2 IHB1YmxpY2F0aW9ucw== IE5laXRoZXI= IENvbW1lcmNl IGFzdG9u bGFuZ3VhZ2U= Tm90ZXM= IFJvdGg= IEZlYXI= IG1hdGU= IHBhcmFkZQ== IFFC IG1hbmV1 IENpbmNpbm5hdGk= bWl0dGluZw== IHdhaXN0 IFJldw== IGRpc2NvbnQ= 0LA= IHN0YXJpbmc= IGFsaWFz IHNlY3VyaXRpZXM= IHRvaWxldA== IEplZGk= IHVubGF3 dmlzZWQ= Ly8vLy8vLy8= XSg= IFdlaXNz IHByZXN0 IENvbXBhbg== IG1lbW8= IEdyYWNl SnVseQ== IEVsaXRl Y2VudGVy IFN0YXk= IGdhbGF4eQ== IHRvb3Ro IFNldHRpbmdz IHN1YmplY3RlZA== 44Km IGxpbmViYWNr IHJldGFpbGVycw== IFdhbnQ= IGRhbmdlcnM= QWly IHZvbHVudGFyeQ== ZXdheQ== IGludGVycHJldGVk b3RpbmU= w6c= IHBlbA== U2VydmljZQ== IEV2ZW50dWFsbHk= IGNhcmVlcnM= IHRocmVhdGVu IG1lbW9y IEJyYWRsZXk= YW5jaWVz c24= IFVua25vd24= TmF0aW9uYWw= IHNoYWRvd3M= YWlsYW5k IERhc2g= RXZlcnlvbmU= aXp6YXJk TWFyY2g= PSg= IHB1bGxz IHN0cmFuZ2Vy IGJhY2t3YXJkcw== IEJlcm5hcmQ= aW1lbnNpb25hbA== IGNocm9u IHRoZW9yZXRpY2Fs a3RvcA== IHdhcmU= IEludmVzdGln IEluaXRp IE9wZXJhdGlvbnM= b3Zlbg== b2NpZGU= Ki8= IGZsYW1lcw== IENhc2g= c2hpdA== IGNhYg== IEFuYWx5 IFNlYWg= IGRlZmluaW5n IG9yZGVyaW5n IGltbXVu IHBlcnNpc3RlbnQ= QUNI UnVzc2lhbg== bWFucw== IGhpbmQ= IHBob3RvZ3JhcGh5 wqk= IGh1Zw== IDEwNw== IEhlbmNl aW90cw== dWRlYXU= IHN1YnNpZGllcw== IHJvdXRpbmVseQ== IERldmljZQ== aXRpYw== IGRpc2d1c3Q= bGFuZGVy IDE5NDA= IGFzc2lnbm1lbnQ= IEJlc2lkZXM= d2ljaw== IER1c3Q= dXNj c3RydWN0ZWQ= MTEx ZGV2ZWxvcA== IGZvbmQ= IGludGVyc2VjdGlvbg== IGRpZ25pdHk= IGNvbW1pc3Npb25lcg== V2l0aG91dA== cmVhY2g= IGNhcnRvb24= IHNjYWxlcw== 44Ot RklH IHN1cnZleXM= IEluZG9uZXNpYQ== IGFydHdvcms= IHVuY2g= IGN5Y2xpbmc= dW5jdA== YXVlcg== b3JhdGU= IE9idmlvdXNseQ== IGNoYXJhY3Rlcml6ZWQ= ZmVsZA== IGFmZmlybQ== IGlubmluZ3M= IOk= IGFsaWVucw== IGNsb3Ro ZXRvb3Ro IENlcnRhaW4= wqc= IGRpZ2VzdA== a25vdw== IFhM IHByZWRpY3Rpb25z IGRpbg== V0FS IGFmdGVybWF0aA== RXhhbXBsZQ== IFN1Y2Nlc3M= IFRocg== SUdO IG1pbmVy QnVz IGNsYXJpdHk= aGVpbWVy IE9VVA== IFNlbmQ= IENpcmNsZQ== IERpZXQ= IHByb25vdW5jZWQ= IGNyZWF0b3Jz IGVhcnRocXVha2U= YXR0ZXJ5 Z2VvbnM= IG9k IGxheWluZw== b3Jw VWx0 cHJvamVjdA== IHVuZGVybWlu IHNlcXVlbA== U2Ft IERhcmtuZXNz IHJlY2VwdGlvbg== YnVsbA== WVM= IFZpcg== IHNlcXVlbmNlcw== IENvaW4= IG91dGZpdA== IFdhaXQ= MTE5 IGRlbGl2ZXJz Li4uLi4u IGJsb3du IEVzYw== IE1hdGg= cGVybQ== IFVs IGdsaW0= IGZhY2lhbA== IGdyZWVuaG91c2U= IHRva2Vucw== Ly0= IEFubnVhbA== IE9ORQ== IHRlZW5hZ2U= IFBoeXNpY2Fs IExhbmc= IENlbHQ= IHN1ZWQ= aXZpZHVhbGx5 IHBhdGllbmNl Y2hhaXI= cmVndWxhcg== IGF1Zw== aW52 ZXhjZXB0 IExpbA== IG5lc3Q= ZmQ= c3Vt IENoYXNl UnVzc2lh IEplbm5pZmVy IG9mZnNlYXNvbg== T3ZlcmFsbA== Rm9yZQ== IHJpb3Q= QXVk Zm9ybWVy IGRlZmVuZGVycw== IENU aW90aWM= cmlibHk= IGF1dG9tYXRlZA== IHBlbmlz IGluc2lzdA== IGRpYWdyYW0= IFNRTA== IEdhcmM= IHdpdGNo Y2xpZW50 aWVycmE= YW1iZXJz IHJlY291bnQ= ZmFy VmVyeQ== b3N0ZXJvbmU= IGFwcHJlY2lhdGVk IFBlcmZlY3Q= U2VjdGlvbg== IGRvc2Vz b2NhdXN0 IGNvc3RseQ== IGdyYW1z IFNoaQ== IHdyZXN0bGluZw== IDE5NzE= IHRyb3BoeQ== IG5lcnZl IEtheg== IEV4cGVyaWVuY2U= IHBsZWRnZWQ= IHBsYXliYWNr IGNyZWF0aXZpdHk= Ynll IGF0dGFja2Vycw== IGhvbGRlcnM= IENvYWNo IFBoRA== IHRyYW5zZmVycw== IGNvbG9yZWQ= IEhpbmR1 IGRyb3du IGxpc3RlbmVk IFdB aWFzbQ== UE8= IGFwcGVhbGluZw== IGRpc2Nsb3NlZA== IENoaWNrZW4= YWdnaW5n IHBsZWFkZWQ= IG5hdmlnYXRpb24= IFJldHVybnM= IFtb Uk9S RUE= IHBob3RvZ3JhcGhlcg== IFJpZGVy aXBwZXJz IHNsaWNl IGVyZWN0 IGhlZA== aXNzYW5jZQ== IFZpa2luZ3M= dXJpb3Vz IGFwcGV0 b3VidGVkbHk= Q2hpbGQ= IGF1dGhlbnRpYw== b29z IE1ha2luZw== IGFubm91bmNpbmc= IGJvZA== IG1ldGVy IE5pbmU= IFJvZ3Vl IHdvcmtmb3JjZQ== IHJlbmV3ZWQ= IG9yZ2FuaXNhdGlvbnM= YWNz UExF U2hvcnQ= IGNvbXBvdW5kcw== IFZpc2l0 IGVudmVsb3A= ZWFydGg= IHN1cHBvcnRpdmU= Z2dsZQ== IEJydXNzZWxz IEd1aWxk Q3JlYXRl UkVM IGF2ZXJhZ2Vk IDE5Njk= cmlhZ2Vz IGxlbmd0aHk= IGZvcmdvdA== T2theQ== IEVyZA== IGRlYWxlcg== IHJlY2Vzc2lvbg== REQ= IGRlc3BlcmF0ZWx5 IGh1bmdlcg== IHN0aWNrcw== IG1waA== IEZhaXRo IGludGVudGlvbmFsbHk= IGRlbW9s dWVsbGVy IFNhbGU= IGRlYnJpcw== c3ByaW5n IGxlYXA= Pj4+Pg== IGNvbnRhaW5lcnM= c2VsbGluZw== cmFuZWFu YXR0ZXJpbmc= IGNvbW1lbnRlZA== IENN b251dA== IHdvb2Rz ZXNwZWNpYWxseQ== IG9yZ2FuaXpl aXZpYw== IFdvb2Rz YW5nYQ== c3F1 IG1hag== YW1vbg== IGF4aXM= IDE5NzQ= IERlbm1hcms= IHdhcnJpb3I= IFBhbmQ= IG91dGxpbmVk IEJP aW5zdWxh emlsbGE= ZWJvb2s= IGRhcmU= IHNlYXJjaGVk IG5hdmlnYXRl U24= d3JpdGluZw== IHVuaXRlZA== SmFwYW4= IEhlYnJldw== IGZsYW1l IHJlbGllcw== IGNhdGNoaW5n IFNobw== IGltcHJpc29ubWVudA== IHBvY2tldHM= IGNsb3N1cmU= IEZhbQ== dGlt YWRlcXU= QWN0aXZpdHk= IHJlY3J1aXRpbmc= IFdBVENI IEFyZ2VudGluYQ== ZGVzdA== IGFwb2xvZ2l6ZQ== b3Jv IGxhY2tz IHR1bmVk IEdyaWZmaW4= IGluZmFtb3Vz IGNlbGVicml0eQ== c3Nvbg== IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0= IElzaXM= IERpc3BsYXk= IGNyZWRpYmlsaXR5 IGVjb25vbWllcw== IGhlYWRsaW5l IENvd2JveXM= IGluZGVm IGxhdGVseQ== IGluY2VudGl2ZXM= YnV0dG9u IE1vYg== QXV0 IHJlc2lnbmVk IE9t Y2FtcA== IHByb2ZpbGVz IHNjaGVtZXM= b2xwaGlucw== YXllZA== Q2xpbnRvbg== ZW5o IFlhaG9v IGFic3Q= IGFuaw== c3VpdHM= IHdpc2hlZA== IE1hcmNv dWRkZW4= IHNwaGVyZQ== IEJpc2hvcA== IGluY29ycG9yYXRlZA== IFBsYW50 MTE0 IGhhdGVk cGlj IGRvbmF0ZQ== IGxpbmVk IGJlYW5z IHN0ZWFsaW5n IGNvc3R1bWU= IHNoZXJpZmY= IGZvcnR5 IGludGFjdA== IGFkYXB0ZWQ= IHRyYXZlbGxpbmc= YmFydA== IG5pY2VseQ== IGRyaWVk IHNjYWw= b3NpdHk= Tk9URQ== IEJo IEJyb25jb3M= IElnbg== IGludGltYXRl IGNoZW1pc3RyeQ== IG9wdGltYWw= RGVi IEdlbmVyYXRpb24= IF0s aWNoaQ== IFdpaQ== IFlPVVI= dmVudGlvbnM= V3JpdGU= IHBvcHVs dW5uaW5n IFdvcg== Vm9s IHF1ZWVu aGVhZHM= S0s= IGFuYWx5emU= b3BpYw== ZWFyY2hlcnM= IGRvdA== bGVncmFwaA== YXN0aWNhbGx5 IHVwZ3JhZGVz IGNhcmVz IGV4dGVuZGluZw== IGZyZWV6ZQ== IGluYWJpbGl0eQ== IG9yZ2Fucw== IHByZXRlbmQ= IG91dGxldA== MTEz b2xhbg== IE1hbGw= dWxpbmc= dGFsaw== IGV4cHJlc3Npbmc= IEFsd2F5cw== IEJlZ2lu ZmlsZXM= IGxpY2Vuc2Vz JSU= IE1pdHQ= IGZpbHRlcnM= IE1pbHdhdWtlZQ== R04= IHVuZm9sZA== TW8= IG51dHJpdGlvbg== cHBv Qm8= IGZvdW5kaW5n IHVuZGVybWluZQ== IGVhc2llc3Q= IEN6ZWNo IE1hY2s= IHNleHVhbGl0eQ== IE5peG9u V2lu IEFybg== IEtpbg== 44Kj aWNlcg== IGZvcnR1bg== IHN1cmZhY2Vz YWdoZA== IGNhcnJpZXJz IFBBUlQ= IFRpYg== IGludGVydmFs IGZydXN0cmF0aW5n IFNoaXA= IEFybWVk ZmZl IGJvYXRz IEFicmFoYW0= aW5pcw== IHN1aXRlZA== dGhyZWFk aW92 YWJ1bA== IFZlbmV6dWVsYQ== IHRvbQ== c3VwZXI= IGNhc3RsZQ== YWx0aG91Z2g= aW94aWRl ZWNoZXM= IGV2b2x1dGlvbmFyeQ== IG5lZ290aWF0ZQ== IGNvbmZyb250ZWQ= UmVtZW1iZXI= IDE3MA== U3VjaA== IDkxMQ== bXVsdA== IEFieXNz dXJyeQ== a2Vlcw== c3BlYw== IEJhcmJhcmE= IGJlbG9uZ2luZw== IHZpbGxhaW4= aXN0YW5p IGFjY291bnRhYmxl IHBvcnRpb25z IERlY2w= VXI= IEthdGU= Z3Jl IG1hZ2F6aW5lcw== VUNL IHJlZ3VsYXRl b21vbg== IEFsbW9zdA== IG92ZXJ2aWV3 IHNjcmFt IGxvb3Q= IEZpdHo= IGNoYXJhY3RlcmlzdGlj IFNuYWtl c2F5 IFJpY28= IHRyYWl0 IEpvaW5lZA== YXVjdXM= IGFkYXB0YXRpb24= IEFpcmxpbmVz IGFyY2hhZQ== IElkZQ== IGJpa2Vz IGxpdGVyYXJ5 IGluZmx1ZW5jZXM= IFVzZWQ= Q3JlYXQ= IHBsZWE= IERlZmVuY2U= IEFzc2Fzcw== IHBvbmQ= VUxU KSI= IGV2YWx1YXRlZA== IG9idGFpbmluZw== IGRlbW9ncmFwaGlj IHZpZ2ls YWxleQ== IHNwb3VzZQ== IFNlYWhhd2tz cmVzcG9ucw== IEJlbHQ= dW1hdGlj IHJpc2Vz cnVubmVy IE1pY2hlbGxl IHBvdGVudA== cmFjZQ== IFBBQw== RmluZA== b2xlc3Rlcm9s SVNT IEludHJvZHVjZWQ= cmVzc2Vz aWdubWVudA== T3M= IFR1 IERleA== aWNpZGVz IHNwYXJrZWQ= IExhdXJh IEJyeWFudA== IHNtaWxpbmc= IE5leHVz IGRlZmVuZGFudHM= IENhdGFs IGRpc2hlcw== c2hhcGVk IHByb2xvbmc= bXQ= KCQ= 44CC IGNhbGN1bGF0aW9ucw== IFNhbWU= IHBpdg== SEg= IGNhbmNlbGxlZA== IGdyaW4= IHRlcnJpdG9yaWVz aXN0aWNhbGx5 Q29tZQ== IFBhcmVudA== UHJvamVjdA== IG5lZ2xpZw== IFByaXZhY3k= IGFtbW8= TEVDVA== b2x1dGVseQ== IEVwaWM= IG1pc3VuZGVy d2Fs QXByaWw= bW9z cGF0aHk= IENhcnNvbg== IGFsYnVtcw== IEVhc3k= IHBpc3RvbA== PDw= IFwo dGFyZ2V0 aGVscA== IGludGVycHJl Y29uc2Npb3Vz IEhvdXNpbmc= IEpvaW50 MTI3 IGJlZXJz c2NpZW5jZQ== IEZpcmVmb3g= ZWZmZWN0aXZl IENhYmlu IE9rYXk= IEFwcGxpYw== IHNwYWNlY3JhZnQ= IFNS dmV0 IFN0cmFuZ2U= U0I= IGNvcnBz aWJlcmFs ZWZmaWNpZW50 IHByZXZhbGVuY2U= IGVjb25vbWlzdHM= MTE4 VGhyZWFk b3JkYWJsZQ== T0RF IENhbnQ= PS09LQ== aWZpYWJsZQ== IEFyb3VuZA== IHBvbGU= IHdpbGxpbmduZXNz Q0xB IEtpZA== IGNvbXBsZW1lbnQ= IHNjYXR0ZXJlZA== IGlubWF0ZXM= IGJsZWVkaW5n ZXZlcnk= IHF1ZXVl IFRyYWlu IGhpag== IG1lbGVl cGxldGVk IGRpZ2l0 IGdlbQ== b2ZmaWNpYWw= IGxpZnRpbmc= 0LU= UmVxdQ== aXR1dGVz IHBhY2thZ2luZw== IFdvcmtlcnM= aHJhbg== IExlYmFub24= b2xlc2M= IHB1bmlzaGVk IEp1YW4= IGphbQ== IERvY3VtZW50 IG1hcHBpbmc= aWNhdGVz IGluZXZpdGFibHk= IHZhbmlsbGE= IFRvbg== IHdhdGNoZXM= IGxlYWd1ZXM= IGluaXRpYXRlZA== ZGVncmVl cG9ydGlvbg== IHJlY2FsbHM= IHJ1aW4= IG1lbHQ= SUFO IGhlbQ== RXhw IGJha2luZw== IENvbG9tYg== YXRpYmxl IHJhZGl1cw== cGx1Zw== IElG ZXRpY2FsbHk= IGZpY3Q= SEVS IFRhcA== YXRpbnVt IGluaw== IGNvaA== IFdpemFyZA== Ym90aA== dGV4 IHNwZW5kcw== IEN1cnJlbnRseQ== IFBpdA== IG5ldXJvbnM= aWdudA== IHJhbGw= IGJ1c2Vz YnVpbGRpbmc= IGFkanVzdG1lbnRz IGNyaWVk aWJsaWNhbA== YXR0ZWQ= IFppb24= IE1hdHRlcg== IG1lZGl0YXRpb24= IERlbm5pcw== IG91cnM= IFRhYg== IHJhbmtpbmdz b3J0YWw= IGFkdmVycw== IHN1cnJlbmRlcg== IEdvYg== Y2l1bQ== b21hcw== aW1ldGVy IG11bHRpcGxheWVy IGhlcm9pbg== IG9wdGltaXN0aWM= IGluZGljYXRvcg== IEJyaWc= IGdyb2Nlcnk= IGFwcGxpY2FudA== IFJvY2tldA== dmlk RXhjZXB0aW9u cGVudA== IG9yZ2FuaXppbmc= IGVuY291bnRlcnM= IFRPRA== IGpld2Vs U2F2ZQ== IENocmlzdGll IGhlYXRpbmc= IGxhenk= IENQ IGNvdXNpbg== Q29uZmln IHJlZ2VuZXI= IG5lYXJlc3Q= IGFjaGlldmluZw== RU5T dGhyb3c= IFJpY2htb25k YW50bGU= MjAwMg== IGFudGVu YmlyZA== MTMz IG5hcmM= cmFpbnQ= dW5ueQ== IEhpc3Bhbmlj b3VybmFtZW50cw== IHByb3BoZQ== IFRoYWlsYW5k IFRp IGluamVjdGlvbg== IGluaGVyaXQ= cmF2aXM= IG1lZGk= IHdob2V2ZXI= IERFQlVH R1A= IEh1ZA== Q2FyZA== cHJvbQ== IHBvcg== IG92ZXJoZWFk TGF3 IHZpb2xhdGU= IGhlYXRlZA== IGRlc2NyaXB0aW9ucw== IGFjaGlldmVtZW50cw== IEJlZXI= IFF1YW50 V2Fz IGVpZ2h0aA== IEl2 IHNwZWNpYWxpemVk VVBEQVRF IERlbHRh UG9w SnVs IEFzaw== b3BoeQ== IG5ld3NsZXR0ZXJz IFRvb2w= IGdhcmQ= IENvbmZlZGVy IEdNVA== IEFiYm90dA== IGltbXVuaXR5 IFZN SXNsYW0= IGltcGxpY2l0 d2Q= IDE5NDQ= cmF2aXR5 b21ldHJpYw== IHN1cnZpdmluZw== dXJhaQ== IFByaXNvbg== IHJ1c3Q= IFNrZXRjaA== IGJlZXM= IFRoZW9yeQ== IG1lcml0 VGV4 Y2hhdA== IG1pbQ== IHBhc3Rl IEtvY2g= IGlnbm9yYW5jZQ== IFNob290 IGJhc2VtZW50 VW5pdGVk IEFkdmlz aGVpZ2h0 IGZvc3Rlcg== IGRldGFpbg== aW5mb3JtYXRpb24= IG5ldXJhbA== Jzs= IHByb3Zlcw== YWxsZXJ5 IGludml0YXRpb24= dW1iZXJz IGNhdHRsZQ== IGJpY3ljbGU= emk= IGNvbnN1bHRhbnQ= IGFwb2xvZ3k= IFRpZ2Vy IDEyMw== OTk5 IGluZGl2aWR1YWxseQ== cnQ= aWdpb24= IEJyYXppbGlhbg== IGRpc3R1cmI= IGVudHJlcHJlbmV1cnM= IGZvcmVzdHM= Y2VycHQ= cGxhdGVz cGhlcg== Y2xpcHNl IHR3aXR0ZXI= IGFjaWRz b2dyYXBoaWNhbA== aHVt IEJhbGQ= aWZ1bGx5 IGNvbXBpbGVy IERB IGRvbm9y YXNp IHRyaWJhbA== bGFzaA== IENvbmZpZw== IGFwcGxpY2FudHM= IHNhbGFyaWVz MTM1 UHV0aW4= IEZvY3Vz aXJz IG1pc2NvbmR1Y3Q= IEhheg== IGVhdGVu TW9iaWxl TXVzbGlt IE1hcmN1cw== dmlvbA== IGZhdm9yYWJsZQ== IHN0dWI= YWRpbg== IEhvYg== IGZhaXRoZnVs IGVsZWN0cm9uaWNz IHZhY3V1bQ== d2FpdA== YmFja2Vk ZWNvbm9taWM= ZGlzdA== IHRlbnVyZQ== IHNpbmNlcmU= IFRvZ2V0aGVy IFdhdmU= IHByb2dyZXNzaW9u IGRlbnlpbmc= IGRpc3RyZXNz YnJhc2th dGhpcmQ= IG1peGluZw== IGNvbG9uaWFs IHByaXZhdGVseQ== IHVucmVzdA== YXRlcm5pdHk= IHByZW1pc2Vz YW50aQ== Z3JlZ2F0aW9u IGxpY2VuY2U= IEhpbmQ= IFNhbXVlbA== IGNvbnZpbmNpbmc= IEFjZQ== IFJ1c3Q= IE5ldGFueWFodQ== IGhhbmRsZXM= IFBhdGNo b3JpZW50ZWQ= YWhv IEdvbno= IGhhY2tlcnM= Y2xhaW1lcg== IGN1c3RvbXM= IEdyYW4= ZmlnaHRlcnM= IGx1Yw== IG1hbnVzY3JpcHQ= YXJlbnRob29k IGRldmls IHdhcnJpb3Jz IG9mZmVuZGVycw== V2lsbGlhbQ== IGhvbGlkYXlz IG5pZ2h0bWFyZQ== IGxldmVy aWZmZXJlbnQ= U3RhdA== IGV4aGliaXRpb24= cHV0ZWQ= IFB1cmU= IGFscGhh IGVudGh1c2lhc20= IFJlcHJlc2VudGF0aXZlcw== RUFS IFR5cA== IHdoZWF0 IEFsZg== IGNvcnJlY3Rpb24= IGV2YW5nZWw= QVRU TWlzcw== IHNvdXA= IGltcGxpZWQ= cGFyYW0= IHNleHk= IEx1eA== IHJlcHVibGlj cGF0Y2g= YWJsaXNo IGljb25z IGZhdGhlcnM= IEdFVA== IENhcmli IHJlZ3VsYXRlZA== IENvaGVu IEJvYmJ5 IG5lcg== IGJlbnQ= dmVudG9yeQ== IEFsb25n IEVTVA== IFdhbGxhY2U= IG11cmRlcnM= cmlzZQ== a2VsbA== IENvbW1vbndlYWx0aA== IG5hc3R5 ZXRh IE1JVA== IGFkbWluaXN0ZXJlZA== IGdlbnVpbmVseQ== RWRpdG9y bmljaw== IGh5ZHJv KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKio= IEJsZQ== IGZpbmVz IGdvcmdl YXVzaWJsZQ== cmg= IGFwcGxl bWVudGlvbmVk IHJvcGU= b3R5cA== SFI= IGRpc2FwcG9pbnRpbmc= IGNhZ2U= bmlr IGRvdWJ0cw== IEZSRUU= cHJpbnRz IE1VU1Q= IHZlbmRvcnM= IElucXU= IGxpYmVyYWxz IGNvbnRyYWN0b3I= IHVwc2lkZQ== Y2hpbGRyZW4= IHRyaWNreQ== IHJlZ3VsYXRvcnM= Y2hhcmdlZA== bGl0ZXI= ICoqKg== IHJlYmVsbA== bGFuZw== IGxvY2Fscw== IHBoeXNpY2lhbnM= IGhleQ== YXJzZQ== dG0= IExleA== IGJlaGF2aW9yYWw= c3VjY2Vzc2Z1bA== Rlg= IGJyaWNr b3ZpYw== IGNvbmZvcm0= IHJldmlld2luZw== IGluc2lnaHRz IGJpb2xvZ3k= IFJlbW92ZQ== IEV4dHJh IGNvbW1pdHRpbmc= aW5kdWNlZA== aWdudHk= aWdt IGF0b21pYw== Q29tbW9u IEVN IFBlcmU= IEl0ZW1z ZWg= IHByZXNlcnZlZA== IEhvb2Q= IHByaXNvbmVy IGJhbmtydXB0Y3k= IGdyZW4= dXNoZXM= IGV4cGxvaXRhdGlvbg== IHNpZ25hdHVyZXM= IGZpbmFu XSwi IE1S IG1lZw== cmVtbGlu IG11c2ljaWFucw== IHNlbGVjdGluZw== IGV4YW1pbmluZw== SU5L bGF0ZWQ= SGk= IGFydGlj IHBldHM= IGltcGFpcg== IE1BTg== IHRhYmxldHM= aW5jbHVkZQ== UmFuZ2U= IGNhdXQ= IGxvZ3M= IG1vdW50aW5n IHVuYXdhcmU= IGR5bmFtaWNz IFBhbGVzdGluZQ== IFF1YXJ0ZXI= IFB1cnBsZQ== IG1h IEltcG9ydA== IGNvbGxlY3Rpb25z Y2lhdGlvbg== IHN1Y2Nlc3Nvcg== IGNsb25l IGFpbWluZw== IHBvc3Nlc3NlZA== IHN0aWNraW5n IHNoYWtpbmc= IGxvY2F0ZQ== IEhvY2tleQ== VHVybg== MTcw IGZpZnRlZW4= IEhhcnJpc29u IGNvbnRpbnVvdXNseQ== IFRD IFZhbGVudA== IFJlc2N1ZQ== IGJ5cGFzcw== YW1vdW50 IG1hc3Q= IHByb3RlY3Rz IGFydGlzdGlj IHNvbWV0aW1l IHNob2U= IHNob3V0ZWQ= aWZpY2FudA== ZXRpdGl2ZQ== IFJlZ2lzdGVy IEppbg== IGNvbmNlbnRyYXRlZA== bGluZ3Rvbg== b25pZXM= IGdlbmVyYXRvcg== eXJpbQ== IEFybWVu IGNsZWFyaW5n aWRv IFRX YWxwaA== IGxhZGllcw== SGFyZA== IGRpYWxvZw== IGlucHV0cw== 5pw= IHBvc2Vz IHNsb3Rz IFByZW1pdW0= IGxlYWtz IGJvc3Nlcw== IDExMw== Y291cnNl QWNj IE5ld3Rvbg== IEF1c3RyaWE= IE1hZ2U= IHRlYWNoZXM= YWJhZA== IHdlYXJz IGN5bA== IGN1cnNl IFNhbGVz IFdpbmdz IHBzeQ== IGdhcHM= IEljZWxhbmQ= IFBpbnRlcmVzdA== IGxhbmRsb3Jk IGRlZmluaXRpb25z IEtlcg== IHN1ZmZpY2llbnRseQ== IFBlbmNl IEFyY2hpdGVjdA== IHN1cnBhc3M= IDExNA== IHN1cGVyaGVybw== IERpc2Vhc2U= IHByaWVzdHM= IEN1bHR1cmU= IGRlZmluaXRpdmU= IHNlY3JldGx5 IERhbmNl aW5zdGFsbA== Y2hpZWY= IEplc3NpY2E= V291bGQ= VXBkYXRlZA== IGxvY2tlcg== IEtheQ== IG1lbW9yaWFs 6KY= ZmF0 IGRpc2d1 IGZsYXZvcnM= IEJhc2ViYWxs IFJlc2lzdGFuY2U= IGtpY2tz IGVudg== IHRlZW5hZ2Vycw== RGFyaw== IENBUg== IGhhbHQ= IExH IEdhYnJpZWw= IGZldmVy IHNhdHVy IG1hbGw= IGFmZmlsaWF0ZQ== IFNsZWVw IFNwZWNpZmlj IFZlbA== IGphcg== IFNhY3JlZA== IEVkd2FyZHM= IEFDTA== IHJldGFpbmVk IEdpYW50 IGxpbWl0YXRpb24= aW5jZXM= IHJlZnVzYWw= IFRhbGU= IEJ1dGxlcg== IGFjY2lkZW50cw== IENTUw== IGltcG9ydGVk IENvcHk= zrE= RVJU emVs IGRpdmlzaW9ucw== aG90cw== IEFsYg== IERT TG9hZGVy V2FzaGluZ3Rvbg== YXRpc2Y= IENyZWF0aXZl XC4= IEF1dG9t cmVkaWN0 IHJlY2VwdG9y IENhcmxvcw== TWV0aG9k b2th IG1hbGljaW91cw== IHN0ZXBwaW5n LFs= IERhZA== IGF0dHJhY3Rpb24= IEVmZmVjdHM= IFBpcmF0ZQ== IENlcg== IEluZHVzdHJ5 IFJ1ZA== IGNoYXJ0ZXI= IGRpbmluZw== IGluc2lzdHM= IGNvbmZpZ3VyZQ== ICgj IFNpbXBsZQ== IFNjcm9sbA== VVRD MTc1 IEtvbg== IG1hcmtldHBsYWNl IOOC IHJlZnJlcw== IGdhdGVz ZXJyZWQ= IFBvZA== IGJlaGF2ZQ== RnJhbms= bm9kZQ== IGVuZG9yc2Vk aGV0dA== YXNpdmU= IEhvbWVsYW5k IHJpZGVz IExlYXZl ZXJuZXNz IGZsb29kaW5n QUZQ IHJpc2Vu IGNvbnRpbnVhbGx5 IHVuYW5pbQ== IENvbnRyYWN0 IFBhcw== IGd1aWRlZA== IENoaWxl YmQ= IHN1Y2M= cHRpYw== IGNvbW1pdHRlZXM= IEx1dGhlcg== IEFueW9uZQ== IHNhYg== MTI0 IHBpeGVs IEJhaw== IFRhZw== IEJlbm5ldHQ= RW50ZXI= c21hbGw= IFByZXNpZGVudGlhbA== IHB1bA== IGNvbnRyYWNl YXJjaGl2ZQ== IGNvYXN0YWw= IEtpZHM= MTky 4oCy aWNreQ== SU5HVE9O IHdvbGY= IFN0YWxpbg== VHVy aWRnZXQ= YW1hcw== IFVubGVzcw== IHNwb25zb3I= IG1vcnBo IENob29zZQ== IHJ1bm5lcg== IHVuYmVs IG11ZA== IE1hbmE= IGR1YmJlZA== IGdvZGQ= dXJlcnM= d2luZG93 IHJlbGllZA== IGNlbGVicmF0aW5n b3Nj IDEzNQ== IGxvYmJ5aW5n IGluY29tcGxldGU= IHJlc3RyaWN0aW9u IGluY2Fw aXR1cw== IGV4cGVjdGF0aW9u IEFwb2xsbw== IGludGVucw== IHN5bmM= R0g= IG1hbmlwdWxhdGlvbg== Qlk= IHNwZWFy IGJyZWFzdHM= IHZvbGNhbg== aWxpYQ== TWF0ZXJpYWw= IGZvcm1hdHM= IEJhc3Q= IHBhcmxpYW1lbnRhcnk= IHNuYWtl IHNlcnZhbnRz IFRydWRlYXU= IEdyaW0= IEFyYWJpYw== IFNDUA== IEJveXM= c3RhdGlvbg== IHByb3NwZWN0aXZl b3JkZQ== aW5pdGlhbGl6ZWQ= IGJvcmVk QUJMRQ== IGFjY2Vzc2Vk IHRheGk= IFNoZWxs YWlkZW4= dXJzZWQ= aW5hdGVz IEluc3VyYW5jZQ== IFBldGU= U2VwdGVtYmVy NjUw IGFkdmVudHVyZXM= IENvdmVy IHRyaWJ1dGU= IHNrZXRjaA== IGVtcG93ZXI= INg= IEdsZW5u IERhdw== PVwi IFBvbGl0aWNz IGd1aWRlcw== IGRpb3hpZGU= IEdvcmU= IEJyaWdodA== IFNpZXJyYQ== IHZhbHVlZA== Y29uZA== IHBvaW50ZXI= U2VsZWN0 IHJpc2t5 IGFic29yYg== aW1hZ2Vz IHJlZnVzZXM= IGJvbnVzZXM= X19f IGhpbGFy IEZlYXR1cmVz MjIw IENvbGxlY3Rvcg== Rm9vdA== IDE5NjQ= Y3VsdXM= IGRhd24= IHdvcmtvdXQ= IExP IHBoaWxvc29waGljYWw= IFNhbmR5 IFlvdXRo IGxpYWJsZQ== QWY= Ymx1ZQ== IG92ZXJ0dXJu bGVzc25lc3M= IFRyaWJ1bmU= IEluZw== IGZhY3Rvcmllcw== IGNhdGNoZXM= IHByb25l IG1hdHJpeA== IGxvZ2lu IGluYWNj IGV4ZXJ0 c3lz IG5lZWRsZQ== IFF1cg== IG5vdGlmaWVk b3VsZGVy dHg= IHJlbWluZHM= IHB1Ymxpc2hlcnM= IG5vcnQ= IGdpdA== IGZsaWVz IEVtaWx5 IGZsb3dpbmc= IEFsaWVu IFN0cmF0ZWc= IGhhcmRlc3Q= IG1vZGlmaWNhdGlvbg== QVBJ IE1Z IGNyYXNoZXM= c3RhaXJz bnVtYmVy IHVyZ2luZw== Y2hhbm5lbA== IEZhbGNvbg== IGluaGFiaXRhbnRz IHRlcnJpZnlpbmc= IHV0aWxpemU= IGJhbm5lcg== IGNpZ2FyZXR0ZXM= IHNlbnNlcw== IEhvbG1lcw== IHByYWN0aXRpb24= IFBoaWxsaXBz b3R0bw== IGNvbXBpbGU= TW9kZWw= IEtv IFtd QW1lcmljYW5z IFRlcm1z IG1lZGljYXRpb25z IEFuYQ== IGZ1bmRhbWVudGFsbHk= IE5vdGljZQ== IHdlYWtlcg== IDAwMDA= IGdhcmxpYw== IG91dGJyZWFr IGVjb25vbWlzdA== IEJpcnRo IG9ic3RhY2xlcw== YXJjZXI= IE9ydGhvZG94 IHBsYWNlYm8= IENyZXc= YXNwYmVycnk= IEFuZ2Vscw== IGRpc2NoYXJnZQ== IGRlc3RydWN0aXZl MTE3 IFJpc2luZw== IGRhaXJ5 bGF0ZQ== IGNvbGxpc2lvbg== IFRpZ2Vycw== ZWFub3I= b2N1bWVudGVk IEludmFsaWQ= IGRvbnQ= IExpdGVy IFZh IGh5ZHJvZ2Vu IHZhcmlhbnRz IEJyb3ducw== IDE5NjU= IGluZGlnZW5vdXM= IHRyYWRlcw== IHJlbWFpbmRlcg== IHN3ZXB0 IEltcGFjdA== IHJlZGlzdA== IHVuaW50 Z3JhZHVhdGU= 44OV IFdJTEw= 44Gu5w== IENyaXRpY2Fs IGZpc2hlcg== IHZpY2lvdXM= IHJldmVyc2Vk WWVhcg== IFNveA== IHNob290aW5ncw== IGZpbG1pbmc= IHRvdWNoZG93bnM= YWlyZXM= bWVs IGdyYW5kZmF0aGVy IGFmZmVjdGlvbg== aW5nbGU= IG92ZXJseQ== QWRkaXRpb25hbA== IHN1cHJlbWU= IEdyYWQ= IHNwb3J0aW5n IG1lcmN5 IEJyb29rcw== b3VudHk= IHBlcmZvcm1z IHRpZ2h0bHk= IGRlbW9ucw== IGtpbGxpbmdz IGZhY3Rpb24= IE5vdmE= YXV0cw== IHVuZG91YnRlZGx5 YXJpbg== IHVuZGVyd2F5 cmFr IGxpdg== IFJlZ2lvbg== IGJyaWVmaW5n c2Vycw== Y2xvdWQ= IE1paw== dXNw IHByZWRpY3Rpb24= YXpvcg== IHBvcnRhYmxl IEdhbmQ= IHByZXNlbnRpbmc= IDEwODA= wrs= dXNoaQ== IFNwYXJr dGhlcmV1bQ== IGp1c3RpZmljYXRpb24= IE55 IGNvbnRyYWN0b3Jz bWluZ2hhbQ== IFN0eWxl 5YU= IENocm9uaWNsZXM= IFBpY3R1cmU= IHByb3Zpbmc= IHdpdmVz c2V0dA== IG1vbGVjdWxlcw== IEZhaXJ5 IGNvbnNpc3Rpbmc= IHBpZXI= YWxvbmU= aW5pdGlvbg== IG51Y2xl anNvbg== IGdvdHRh IG1vYmls IHZlcmJhbA== YXJpdW0= IG1vbnVtZW50 dWNrZWQ= IDI1Ng== VGVjaA== bWluZWNyYWZ0 IFRyYWNr IHRpbGU= IGNvbXBhdGliaWxpdHk= YXNpcw== IHNhZGQ= IGluc3RydWN0ZWQ= IE11ZWxsZXI= IGxldGhhbA== IGhvcm1vbmU= IG9yY2hl ZWxzZQ== IHNrZWxldA== IGVudGVydGFpbmluZw== IG1pbmltaXpl YWdhaW4= IHVuZGVyZ28= IGNvbnN0cmFpbnRz IGNpZ2FyZXR0ZQ== IElzbGFtaXN0 IHRyYXZlbHM= IFBhbnRoZXJz bGluZ3M= Q2FyZQ== IGxhd3N1aXRz dXJhcw== IGNyeXN0 IGxvd2VyZWQ= IGFlcmlhbA== IGNvbWJpbmF0aW9ucw== IGhhdW4= IGNoYQ== IHZpbmU= IHF1YW50aXRpZXM= IGxpbmtpbmc= YmFuaw== IHNveQ== QmlsbA== IEFuZ2VsYQ== IHJlY2lwaWVudA== IFByb3Rlc3Q= IHNvY2tldA== IHNvbGlkYXJpdHk= IOKG bWlsbA== IHZhcmllcw== IFBha2lzdGFuaQ== RHJhZ29u IHVuZQ== IGhvcml6b24= wqDCoMKgwqDCoMKgwqDCoA== IHByb3ZpbmNlcw== IGZyYW5rbHk= IGVuYWN0ZWQ= bm90ZXM= Wyc= IDE5Mg== b2NyYWN5 IGVuZG9yc2VtZW50 IG92ZXJ0aW1l VHJ1ZQ== TGFi bGljdGVk IEROQw== IGJlYXRz IEphbWll MTUy IElOVA== Q29udGFjdA== IGFjY291bnRlZA== aGFzaA== IFBhY2tlcnM= cGlyZXM= IGxlc2JpYW4= IGFtZW5kbWVudHM= IGhvcGVmdWw= IEZpbmxhbmQ= IHNwb3RsaWdodA== IGNvbmZpZ3VyZWQ= IHRyb3VibGVk IGdhemU= IENhbGdhcnk= IHJlbGlhYmlsaXR5 IGluc3VyZw== c3dlcg== YnV5 IFNraW4= IHBpeGVscw== IGhhbmRndW4= IHBhcmFz IGNhdGVnb3I= IEVM IFJleA== SW5kZWVk IGtpbmRh IGNvbmp1bmN0aW9u IEJyeWFu IE1hbnVmYWN0 eWFuZw== UGx1cw== U1FM aXNobWVudA== IGRvbWluYXRl IG5haWw= IG9hdGg= IGVydXB0 IEZpbmU= aXRiYXJ0 IENoaXA= IEFiZA== IE5hbQ== IGJ1eWVy IGRpc3NlbnQ= TGVha3M= Q29udGlu IHJpZGVy IFNvbWVvbmU= IGlsbHVzaW9u Y2lu IEJvZWluZw== IGluYWRlcXU= b3ZhdGlvbg== aWFudHM= IHJlYnVpbGQ= NDUw IERlc3Rpbnk= U1c= IFRpbGw= SGl0 aWF6 IEJhbmds YWNoZXJz IFJlZm9ybQ== IHNlZ21lbnRz IHN5c3RlbWF0aWM= ZGM= IENvbnNlcnZhdGl2ZXM= IHBvcnRhbA== aG9y IERyYWdvbmJvdW5k IGRyYWdnZWQ= b21v IHRoZWU= YWR2ZXJ0 IFJlcG9ydHM= IEV0 IGJhcnJlbHM= QXVndXN0 IGNvbXBhcmlzb25z IGhleA== IGFudGhyb3A= Ils= Ym9yb3VnaA== YWJp IHBpY3R1cmVk cGxheWluZw== IEFkZHJlc3M= IE1pcnJvcg== U21pdGg= IHRpcmVz IE5QUg== QUFBQQ== IGNsYXNzaWZpY2F0aW9u IFRoYW4= IEhhcm0= IFJB IHJlamVjdGlvbg== bWluYXRpb24= IHJhbmdlZA== IEZhbGxz REk= SG9zdA== 44K0 IEV4YW1wbGU= bGlzdGVk dGhpcmRz IHNhZmVndQ== YnJhbmQ= IHByb2JhYmxl Q2FuYWRh SVRJT04= IFFhZWRh IGNoaWNr IGltcG9ydHM= aGl0 bG9j V1c= IGJsZXc= IGFueXRpbWU= IHdob2xlcw== aWtlZA== IGNhbGN1bGF0aW9u Y3JlYXRl IE9yaQ== IHVwZ3JhZGVk IGFwcGFy dXRvcnk= IE1vbA== QnJpdA== IEpvbmc= SU5BTA== IFN0YXJ0aW5n IGRpY2U= dXJ0bGU= IHJlbHlpbmc= Y2xvc3VyZQ== IHByb2ZpdGFibGU= IHNsYXVnaHRlcg== IE1hbnVhbA== Y2FzdGVy ICIk IGZlYXRoZXI= IFNpbXBseQ== aWV2ZXM= IGRldGVyaW9y IFBDSQ== IHN0YW1w IGZsYXdz IHNoYWRl aGFtbWVy IHBhc3Nwb3J0 IGNvbnRpbmc= YW1lbA== IG9ic2VydmVycw== IG5lZ2xlY3Q= IFJC IEJyb3RoZXJob29k IHNrZXB0aWNhbA== ZmFtaWx5 dXNr IGVtb3Rpb25hbGx5 4pk= IEJldGE= YXNvbmFibGU= aWRpdHk= IE11bA== IGtpY2tpbmc= IENhcm0= b2xsYWg= VkVSVElT IEF0aGVu IGxhZGRlcg== IEJ1bGxldA== 5aM= MDAwMQ== IFdpbGRsaWZl IE1hc2s= IE5hbg== UmV2 IHVuYWNjZXB0YWJsZQ== bGVnYWw= IGNyb3dkZWQ= YWdp IENveA== amU= IG1vcmFsaXR5 IGZ1ZWxz IGNhYmxlcw== IG1hbmtpbmQ= IENhcmliYmVhbg== IGFuY2hvcg== IGJ5dGU= IE9mdGVu IE96 IGNyYWZ0ZWQ= IGhpc3Rvcmlhbg== IFd1 IHRvd2Vycw== IENpdGl6ZW5z IGhlbG0= IGNyZWRlbnRpYWxz IHNpbmd1bGFy IEplc3Nl IHRhY2tsZXM= IGNvbnRlbXB0 IGFmb3Jl IFNoYWRvd3M= IG5pbA== IHVyZ2VudA== YXBwbGU= Ymxvb2Q= IHZvbg== IG9mZmxpbmU= IGJyZWF0aGU= IGp1bXBz IGlycmVsZXZhbnQ= b3hpYw== b21hbA== aW1wb3J0YW50 Smlt IGdsb3Zlcw== YXJtaW5n ZGVwdGg= IHRhbGVudHM= b29raWU= IFNC IHBhbG0= dWZmcw== ZXN0YQ== SUdI IGNhbm9u IFZlcml6b24= IFBsZQ== IGNvdXBsZWQ= dmVsdA== IGZ1bmRyYWlzaW5n IEdldHRpbmc= IERMQw== IG1hdGhlbWF0aWNhbA== IEhT IENhcmRpbmFscw== dGVsbGluZw== IHNwb25zb3Jz IM8= IEJ1bGxz b3B0aW9u IHByb3Bvc2U= IG1lbW9yYWJsZQ== IGVtYnJhY2Vk IGRlY2xpbmluZw== SGVhbHRo ZWRh IH07 IHNwYW0= bWlsZQ== IHBpdGNoZXI= IEVpZ2h0 IGNhcmluZw== dXRpYw== cm9sZQ== IGFpcmxpbmU= ZXJuYW5kZXo= IEF0aGxldA== IGNlcnRpZmljYXRpb24= dXhl cmlnZXI= IGVtcGly IHNlbnNhdGlvbg== IGRpc20= IGJvbHQ= IGV2b2x2ZQ== SG91c2U= IGNvbnN1bHRhdGlvbg== IER1dHk= IHRvdWNoZXM= IE5hdGhhbg== IGZhaW50 aGFk Iig= IENvbnN1bWVy IEV4dHJlbWU= IDEyNw== IEhlcm0= IFNhY3JhbWVudA== aXpvcGg= IGFueGlvdXM= dWxvdXNseQ== IHNvY2lhbGx5 IFVUQw== IHNvbHZpbmc= IExldHRlcg== SGlzdG9yeQ== ZWR1Yw== UHJpY2U= KSk7 IHJlbG9hZA== YW1pYw== IHBvcms= IGRpc2NvdXJzZQ== IHRvdXJuYW1lbnRz YWlybw== IEt1cg== IENvc3Rh IHZpb2xhdGluZw== IGludGVyZmVyZQ== IHJlY3JlYXRpb25hbA== dWZmbGU= IHNwZWVjaGVz IG5lZWRpbmc= IHJlbWVtYmVycw== IGNyZWRpdGVk bmlh Zm9jdXNlZA== YW1lcmE= IGJydQ== dW1icw== IEN1YmFu IHByZWNlZGluZw== IG5vbnNlbnNl YWNpYWw= IHNtYXJ0cGhvbmVz IFN0b3JpZXM= U3BvcnRz IEVtZXJnZW5jeQ== b3VuY2luZw== ZWZpbmVk IGJlcg== IGNvbnN1bHRpbmc= IG1hc3RlcnM= aGVhc3Rlcm4= LiJb IFJ1bm5pbmc= IHN1c2NlcHQ= IEZlbmc= QW1lcmljYQ== cHJpc2Vz c3RpdGlhbA== IFdlZWtseQ== IEdyZWF0ZXI= bW9kdWxlcw== aWZ0ZXI= R3JhcGhpY3M= dWxlcg== IHdob2xseQ== IHN1cHByZXNz IGNvbmNlYWxlZA== IGhhcHBpbHk= IGFjY2VwdHM= IEVuam95 IHJpdmVycw== IEV4Y2VwdA== MjI1 IE5IUw== IE1jQ29ubmVsbA== IHB1c3N5 ZmVycmVk dXRhYmxl IGF0dGFpbg== ID49 IGRlcG9zaXRz cm9waGlj IG5vdG9yaW91cw== IFNoYXc= aWxpdGF0aW9u IGVwaWRlbWlj YWxsaWM= IHNtYWxsZXN0 b3ZpY2g= IGFjY2Vzc29yaWVz cGVydGllcw== IHN1cnBsdXM= IE1lY2g= IGFtYmln IEltbWlncmF0aW9u IGNoaW0= ZXZhbA== IHByYWN0aWNpbmc= IE15c3Rlcnk= IGRvbWFpbnM= IFNpbGljb24= YXBwcw== IGtpbG9tZXRlcnM= ZWE= IFNtYXNo IHdhcnJhbnR5 IG5vc3Q= c2ls cmV2 Sm9u IER1Ymxpbg== IHRhc3Rlcw== IGJvdXQ= Z3JlYXQ= ZXJyb3I= IHN3aXRjaGVz IEJhcHQ= RE8= b2tp IHNvdXJjZWQ= cHJvZHU= IGF0dGFjaG1lbnQ= IElzc3Vl IFF1ZXN0aW9u Sm9pbg== IGZpdHRlZA== IHVubGF3ZnVs Xl4= ZXJlaw== IGF1dGhlbnRpY2F0aW9u IHN0b2xl IGFjY291bnRhYmlsaXR5 bGFiZWw= U2VhcmNo IGFsYmVpdA== YXRpY2Fu ZnVuZGVk IEFkZGluZw== IElR IHN1Ym1hcg== bGl0 YXF1ZQ== IExlYXJuaW5n IGludGVnZXI= TWFzdGVy IENocm9t IHByZW1pZXI= T3A= IExpdQ== IGJsZXNzZWQ= IEdsb2Jl IFJlc3BvbnNl IGxlZ2l0aW0= IE1lcmtlbA== IGRpc3Bvc2Fs wrQ= IGdhdWdl cGVhdA== IGluZHVjZWQ= IHF1ZXN0aW9uYWJsZQ== YXJ0aHk= IFZpdA== IEZlZWQ= VW50aWw= VXQ= d29ydGh5 Ulk= IEhlcmFsZA== IEhhbW1lcg== IG1lZGFs IFJpdmVycw== IEhhY2s= IGNsYXJpZnk= IHRyYWNrZWQ= IGF1dG9ub21vdXM= IHRlbmFudA== IFFhdGFy ZXJpZQ== IGdyaW0= IE1vbml0b3I= IHJlc2lzdGFudA== IFNwZWM= IFdlbGxz TkFT MTQ4 IG1pbmVycw== aW90aWNz IG1pc3Nlcw== MTE2 Z2lhbg== Z2l0 IEV5ZXM= cHJlcw== IGdyYWR1YXRlZA== IGFuZ2Vs IHN5bmNocm9u IGVmZmljaWVudGx5 IHRyYW5zbWl0dGVk SGFycnk= IGdsb2JhbGx5 RU5DRQ== IE1vbnRhbmE= cmFnZWQ= IFByZXZlbnRpb24= IHBpc3M= IExs IHNoZWxm IEJKUA== IFRlc3RhbWVudA== IExhdGU= aWtlcg== IEhhcHA= IEp1bGlhbg== aGFsbA== IHNwb250 IHNodXRkb3du IGluY29uc2lzdGVudA== IHN1YnNjcmliZXJz IHNrZWxldG9u IE5lYnJhc2th IGluc3BpcmU= IFZvaWQ= RmVlZA== IGFuZ2xlcw== IFNwcmluZ3M= IGJlbmNobWFyaw== IHZhY2NpbmVz aXpvcGhyZW4= c2V4dWFs dWZmZWQ= IHNoaW5l IEthdGg= IGdlc3R1cmU= aW5lYQ== IHJpcA== IG9wcHJlc3Npb24= IGNvbnNjaWVuY2U= YnQ= IEx1bQ== IGluY2lkZW5jZQ== IEZh d3I= IG1pbmVyYWw= IFNwdXJz YWxreQ== IHRodW5kZXI= IG9waW8= QmVpbmc= IFBhbG0= IHdhc3RlZA== IGxi aWFyaWVz IEluaXRpYXRpdmU= IGN1cnJpYw== IG1hcmtlcg== IE1jTA== IGV4dGVuc2lvbnM= IFB2 IEFybXM= IG9mZmVyaW5ncw== IGRlZmVuc2Vz IHZlbmRvcg== IGNvbnRyYWRpY3Q= IENvbGlu IHJlZGRpdA== IHBlcmlwaGVy MTIy IHNpbnM= RWRpdA== SUNU U29mdA== IFNoYWg= IGFkbWluaXN0cmF0b3I= IFRyaXA= IHBvcm5vZ3JhcGh5 IHR1aXRpb24= aW5lbmNl IFByb2dyZXNz IGNhdGFsb2c= IHN1aXRl IGhpa2U= IHJlcHJvZHVjdGl2ZQ== ZW5naW5l IGRyb3VnaHQ= IE5vYWg= IDIzMA== IGR1ZGU= IHJlbGF4ZWQ= IHBhcnRpdGlvbg== IHBhcnRpY2lwYW50 IHRlbGVzYw== IGZlYXM= IEZG b3duZXI= IHN3ZWVwaW5n IGxlbnNlcw== IG1hdGNodXA= IFJlcGw= b3VybmFscw== IGNyZWRpYmxl IGdyYW5kbW90aGVy IHRoZXJtYWw= IHN1YnNjcmliaW5n IGlkZW50aXRpZXM= Y29sbQ== VUNU IHJlbHVjdGFudA== dXNlcnM= IENvcnQ= IGFzc2lzdGVk T1NT QVRJT05T SVNI IHBoYXJtYWNldXRpY2Fs aWNhYmxl YWRpYW4= IFNvbmlj IEZ1cnk= IE1vbmc= QUg= IFBzeWNob2xvZ3k= IHBob3NwaA== IHRyZWF0cw== rZQ= IHN0ZWFkaWx5 IEhlbGxv IHJlbGF0ZXM= IGNsdWU= RXhwbA== YXV0aA== IHJldmlzaW9u IGVsZA== b3Npb24= IGJyb24= MTQ0 cmlrZXM= IG1pbmVz IGJsYW5rZXQ= IEZhaWw= ZWxlZA== IEltYWdpbmU= IFBsYW5uZWQ= YWlj UmVxdWVzdA== TWFk IEhvcnNl IEVhZ2xl IGNhcGFj MTU3 IGxpbmc= IE5pY2U= IFBhcmVudGhvb2Q= bWluc3Rlcg== b2dz ZW5zaXRpdmU= Tm90aGluZw== IGNhcm4= Rmlu IFBF IHJpZmxlcw== IExQ U2FuZA== IGd1aUFjdGl2ZQ== IHRvdXJpc3Q= Q05O IHVudmVpbGVk IHByZWRlY2Vzc29y fXs= dWJlcg== IG9mZnNob3Jl IG9wdGljYWw= IFJvdA== IFBlYXJs ZXRvbg== IHN0YXJlZA== IGZhcnRoZXI= YXRpbGl0eQ== Y29udGlu IEd5 IEZvc3Rlcg== IENvYw== cmllbnRz IGRlc2lnbmluZw== IEVjb25vbXk= T05H V29tZW4= IE5hbmN5 ZXJ2ZXI= IG1hc2N1bA== IGNhc3VhbHRpZXM= IDIyNQ== IFN1bGxpdmFu IENob2ljZQ== IGFzdGVy d3M= IGhvdGVscw== IGNvbnNpZGVyYXRpb25z IGNvdWNo IFN0cmlw IEdu IG1hbmlwdWxhdGU= bGllZA== IHN5bnRoZXRpYw== IGFzc2F1bHRlZA== IG9mZmVuc2Vz IERyYWtl IGltcGU= T2N0b2Jlcg== IEhlcml0YWdl aGw= IEJsYWly VW5saWtl IGdyaWVm IDQ1MA== IG9wdGVk IHJlc2lnbmF0aW9u aWxv IHZlcnNl IFRvbWI= IHVwdA== IGFpcmVk IEhvb2s= IE1MQg== IGFzc3VtZXM= b3V0ZWQ= IFZlcnM= IGluZmVyaW9y IGJ1bmRsZQ== IEROUw== b2dyYXBoZXI= IG11bHRpcA== IFNvdWxz IGlsbHVzdHJhdGVk IHRhY3RpYw== IGRyZXNzaW5n IGR1bw== Q29uZg== IHJlbGVudA== IGNhbnQ= IHNjYXJjZQ== IGNhbmR5 IENG IGFmZmlsaWF0ZWQ= IHNwcmludA== eWxhbg== IEdhcmNpYQ== IGp1bms= UHJpbnQ= ZXhlYw== Q3JpdA== IHBvcnRyYWl0 aXJpZXM= IE9GRg== IGRpc3B1dGVz V1I= TG92ZQ== 44GE IFJleW4= IGhpcHA= b3BhdGg= IGZsb29ycw== IEZlZWw= IHdvcnJpZXM= IHNldHRsZW1lbnRz IFBvcw== IG1vc3F1ZQ== IGZpbmFscw== IGNydXNoZWQ= IFByb2JhYmx5 IEJvdA== IE1hbnM= IFBlcmlvZA== IHNvdmVyZWlnbnR5 IHNlbGxlcg== IGFwb3N0 IGFtYXRldXI= IGRvcm0= IGNvbnN1bWluZw== IGFybW91cg== IFJvb3Nl IGludGVuc2l2ZQ== IGVsaW1pbmF0aW5n IFN1bm5p IEFsZXBwbw== amlu IGFkdmlzZQ== cGFs IEhhbG8= IGRlc2NlbnQ= IHNpbXBsZXI= IGJvb3Ro U1RS TGF0ZXI= IENhdmU= PT09 IG1vbA== IGZpc3Q= IHNob3RndW4= c3VwcA== IHJvYmJlcnk= RWZmZWN0 IG9ic2N1cmU= IFByb2Zlc3Npb25hbA== IGVtYmFzc3k= IG1pbGl0YW50 IGluY2FyY2Vy IGdlbmVyYXRlcw== IGxhdW5jaGVz IGFkbWluaXN0cmF0b3Jz IHNoYWZ0 IGNpcmN1bGFy IGZyZXNobWFu IFdlcw== IEpvZWw= IERyZXc= IER1bmNhbg== IEFwcGFyZW50bHk= c2lnaHQ= IEludGVybmFs IEluZGl2aWR1YWw= IEZF IGJvcmU= IE10 IGJyb2FkbHk= IE9wdGlvbnM= b3VudGFpbg== aXBlcw== IFZpZGVvcw== MjA0 IGhpbGxz IHNpbXVsYXRpb24= IGRpc2FwcG9pbnRtZW50 aXRhbg== IExhYm9yYXRvcnk= IHVwd2FyZA== IGJvdW5kYXJ5 IGRhcmtlcg== aGFydA== IGRvbWluYW5jZQ== Q29uZw== IE9yYWNsZQ== IExvcmRz IHNjaG9sYXJzaGlw IFZpbmNlbnQ= ZWRl IFJhaA== IGVuY291cmFnZXM= cm92 IHF1bw== IHByZW1pc2U= IENyaXNpcw== IEhvbG9jYXVzdA== IHJoeXRobQ== IG1ldHJpYw== Y2x1Yg== IHRyYW5zcG9ydGVk IG5vZA== IFBpc3Q= IGFuY2VzdG9ycw== IEZyZWRlcg== dGh1bWJuYWlscw== IENF T05E UGhpbA== dmVuZ2U= IFByb2R1Y3Rz Y2FzdGxl IHF1YWxpZnlpbmc= IEthcmVu VkVSVElTRU1FTlQ= IG1pZ2h0eQ== IGV4cGxhbmF0aW9ucw== IGZpeGluZw== RGk= IGRlY2xhcmluZw== IGFub255bWl0eQ== IGp1dmVu IE5vcmQ= IERvb20= IEFjdHVhbGx5 T2s= cGhpcw== IERlc2VydA== IDExNg== SUs= IEZN IGluY29tZXM= VkVM b2tlcnM= IHBlY3Vs IGxpZ2h0d2VpZ2h0 Z3Vl IGFjY2VudA== IGluY3JlbWVudA== IENoYW4= IGNvbXBsYWluaW5n IEJhZ2hk IG1pZGZpZWxkZXI= IG92ZXJoYXVs UHJvY2Vzcw== IEhvbGxvdw== IFRpdGFucw== U21hbGw= bWFudWVs IFVuaXR5 IEV2ZW50cw== U3R5 IGRpc3Byb3BvcnRpb24= bmVzdHk= ZW5lcw== IENvZA== IGRlbW9uc3RyYXRpb25z IENyaW1zb24= IE9I IGVucm9sbGVk IGNlbA== IEJyZXR0 IGFpZGU= IGhlZWxz IGJyb2FkYmFuZA== IG1hcmtpbmc= IHdpemFyZA== IE5K IENoaWVmcw== IGluZ3JlZGllbnQ= IGR1Zw== IFNodXQ= dXJjaGFzZQ== ZW5kb3I= IGZhcm1lcg== IEdvbGRtYW4= MTI5 MTU1 T3JkZXI= IGxpb24= aWFibHk= IHN0YWlu YXJyYXk= aWxpdGFyeQ== IEZBUQ== IGV4cGxvZGVk IE1jQ2FydGh5 IFR3ZWV0 IEdyZWVucw== ZWtpbmc= bG4= ZW5zZW4= IG1vdG9yY3ljbGU= IHBhcnRpY2xl IGNob2xlc3Rlcm9s QnJvbg== IHN0YWly IG94aWQ= IGRlc2lyYWJsZQ== aWJsZXM= IHRoZW9y Zm9yY2luZw== IHByb21vdGlvbmFs b3Zv Ym9vdA== IEJvbnVz cmF3bGluZw== IHNob3J0YWdl IFBzeQ== IHJlY3J1aXRlZA== IGluZmFudHM= IHRlc3Rvc3Rlcm9uZQ== IGRlZHVjdA== IGRpc3RpbmN0aXZl IGZpcm13YXJl YnVpbHQ= MTQ1 IGV4cGxvcmVk IGZhY3Rpb25z IHZpZGU= IHRhdHRvbw== IGZpbmFuY2lhbGx5 IGZhdGlndWU= IHByb2NlZWRpbmc= Y29uc3RpdHV0aW9uYWw= IG1pc2Vy IGNoYWlycw== Z2dpbmc= aXBwbGU= IGRlbnQ= IGRpc3JlZw== 55Q= c3RhbnQ= bGxv YnBz YWtlbmluZw== IGFibm9ybWFs IEVSQQ== 5aOr IEhCTw== IE1BUg== IGNvbmNlc3M= IHNlcnZhbnQ= IGFzcGly bGF2 IFBhbmVs YW1v IHByZWNpcA== IHJlY29yZGluZ3M= IHByb2NlZWRlZA== IGNvbG9ueQ== IFRhbmc= YWJsbw== IHN0cmlwcGVk TGVmdA== dG9v IHBvdGF0b2Vz IGZpbmVzdA== JSku IGNyYXA= IFphY2g= YWJhc2Vz IEdvdGg= IGJpbGxpb25haXJl d29sZg== IHNhbmN0aW9u U0s= IGxvZ2dlZA== UG8= ZXllZA== dW5hbA== IGNyaWNrZXQ= IGFybWllcw== IHVuY292ZXJlZA== Q2xvdWQ= w7Nu IHJlYm91bmRz IG1lcw== T3Blcg== UGFj IG5hdGlvbmFsbHk= IGluc2VydGVk cGljdA== IGdvdmVybmFuY2U= 0Lg= IHByaXZpbGVnZXM= R0VU IGZhdm9yaXRlcw== aW1pdHk= IGxvdmVy dGhlbQ== ZW1wbA== IGdvcmdlb3Vz QW5u IHNsaXBwZWQ= IHZldG8= Qm9i IHNsaW0= dWNj IEZhbWU= dWRkZW5seQ== IGRlbmllcw== IE1hdXI= IGRpc3RhbmNlcw== IHdhbm5h dGFy IFNFUg== IOKI IGxlbW9u YXRoZXRpYw== IGxpdGVyYWw= IGRpc3Rpbmd1aXNoZWQ= IGFuc3dlcmluZw== R0k= IHJlbGlnaW9ucw== IFBoaWxvcw== IExheQ== IGNvbXBvcw== aXJlbWVudHM= IEtvcw== aW5leg== cm9sbGluZw== IHlvdW5nZXN0 YW5kaXNl IEJvcm4= IGFsdGFy YW1pbmE= IEJvb3Q= dm9j IGRpZ2dpbmc= IHByZXNzdXJlcw== IGxlbg== MjY0 IGFzc2Fzc2luYXRpb24= IEJpcm1pbmdoYW0= IE15dGg= IHNvdmVyZWlnbg== IEFydGlzdA== IFBob3RvZ3JhcGg= IGRlcGljdGVk IGRpc3BlbnM= b3J0aHk= IGFtYnVs aW50ZWc= IENlbGU= IFRpYmV0 IGhpZXJhcmNoeQ== IGN1 IHByZXNlYXNvbg== IFBldGVyc29u IGNvbG91cnM= IHdvcnJ5aW5n IGJhY2tlcnM= IFBhbG1lcg== IM68 IGNvbnRyaWJ1dG9y IGhlYXJpbmdz IHVyaW5l INk= b3VyZ2VvaXM= U2ltaWxhcg== IFppbW1lcg== c29tZXRoaW5n IFVTQw== IHN0cmVuZ3Rocw== IEZJ IGxvZ2dpbmc= QXNrZWQ= IFRoYWk= aW5xdQ== IFdhbHQ= IGNyZXdz aXRpc20= MzAx IHNoYXJwbHk= dW1lZA== IHJlZGlyZWN0 cmF0b3Jz SW5m IFdlYXBvbnM= IHRlYXNw MTk5OQ== TGl2ZQ== IEVzcGVjaWFsbHk= IFN0ZXI= IFZldGVyYW5z IGludHJv b3RoZXJhcHk= IG1hbHdhcmU= IGJyZWVkaW5n IG1vbGVjdWxhcg== IFJvdXRl IENvbW1lbnQ= b2NoZW0= IGFpbg== U2Vhc29u IGxpbmViYWNrZXI= xKs= IEVjb25vbWljcw== ZXNhcg== IExpdmVz IEVtbWE= IGtpbg== IFRlcnJpdA== IHBsYW50ZWQ= b3Rvbg== IEJ1dHRlcg== IFNwb25z UEVS IGR1bmdlb24= IHN5bWJvbGlj IGZpbG1lZA== IGRpZXRz IGNvbmNsdWRlcw== IGNlcnRhaW50eQ== IEZvcm1hdA== IHN0cmFuZ2Vycw== Zm9ybWF0 IFBoYXNl IGNvcGllZA== IG1ldHJlcw== bGRh IFVzZXJz IGRlbGliZXJhdGU= IHdhc2hlZA== IExhbmNl aW1hdGlvbg== IGltcHJvcGVy IEdlbmVzaXM= aWNrcg== IEt1c2g= IHJlYWxpc2U= IGVtYmFycmFzc2luZw== YWxraW5n YnVja3M= IHZlcmlmaWVk IG91dGxpbmU= eWVhcnM= IEluY29tZQ== MjAy IHpvbWJpZXM= RmluYWw= IE1pbGxlbm4= IG1vZGlmaWNhdGlvbnM= IFZpc2lvbg== IE1vc2Vz dmVyYg== aXRlcnJhbmVhbg== IEpldA== IG5hdmFs IEFnZw== IHVybA== IHZpY3Rvcmllcw== IG5vbmV0aGVsZXNz IGluanVzdA== IEZhY3Q= 55o= IGluc3VmZmljaWVudA== cmV2aWV3 ZmFjZWJvb2s= IG5lZ290aWF0aW5n IGd1YXJhbnRlZXM= aW1lbg== dXRlbmJlcmc= IGdhbWJsaW5n IGNvbmdy TG9hZGluZw== IG5ldmVydGhlbGVzcw== IHByZXNpZGVudHM= IEluZHVzdHJpYWw= IDExOA== IHBvdXJlZA== IFRvcnk= IDE3NQ== IDo9 U2NvdHQ= YW5nZXJlZA== VG9r IG9yZ2FuaXplcnM= TWF0 IEdyb3d0aA== IGFkdWw= IGVuc3VyZXM= IDExNw== 6b6N5Q== IG1hc3NhY3Jl IGdyYWRlcw== YmVmb3Jl QURWRVJUSVNFTUVOVA== IFNsb3c= IE1NQQ== 4oCUIg== IFZhdGljYW4= UWFlZGE= IG93ZQ== NjY2Ng== IFNvcnJ5 IEdyYXNz IGJhY2tncm91bmRz IGV4aGF1c3RlZA== IGNsYW4= IGNvbXByb21pc2Vk IEVsZg== IElzYWFj ZW5zb24= SW52ZXN0 SUZB IGludGVycnVwdGVk 44OJ44Op IHR3aXN0ZWQ= IERyYWdvbnM= TW9kZQ== IEtyZW1saW4= IGZlcnRpbA== aGVyZXM= cGhhbg== IE5vZGU= ZmVk IE9yYw== IHVud2lsbGluZw== Q2VudA== IHByaW9yaXQ= IGdyYWR1YXRlcw== IHN1YmplY3RpdmU= IGlzc3Vpbmc= IEx0 IHZpZXdlcg== IHdva2U= VGh1cw== YnJvb2s= IGRlcHJlc3NlZA== IGJyYWNrZXQ= IEdvcg== IEZpZ2h0aW5n IHN0cmlrZXI= UmVwb3J0 IFBvcnR1Z2Fs IG5lbw== d2Vk MTk5 IGZsZWVpbmc= c2hhZG93 aWRlbnRpZmllZA== VVNF U3RlYW0= IHN0cmV0Y2hlZA== IHJldmVsYXRpb25z YXJ0ZWQ= IER3 IGFsaWdubWVudA== ZXN0b24= IEphcmVk U2Vw IGJsb2dz dXBkYXRl Z29t cmlzaw== IGNsYXNo IEhvdXI= IHJ1bnRpbWU= IHVud2FudGVk IHNjYW0= IHJhY2s= IGVubGlnaHQ= b25lc3Q= IEZlcnI= IGNvbnZpY3Rpb25z IHBpYW5v IGNpcmN1bGF0aW9u IFdlbGNvbWU= IGJhY2tsYXNo IFdhZGU= IHJlY2VpdmVycw== b3RpdmU= SmVmZg== IG5ldHdvcmtpbmc= IFByZXA= IEV4cGxvcmVy IGxlY3R1cmU= IHVwbG9hZGVk IE1lYXQ= QkxF IE5hemlz IFN5bmQ= c3R1ZA== cm9vdHM= cmlhbnM= IHBvcnRyYXllZA== ID8/ IEJ1ZGRoYQ== c3Vu Um9iZXJ0 IENvbXBsZXg= IG92ZXJzZWU= IHN0ZWFsdGg= VGl0bGU= IEpvYnM= IEt1bQ== IGFwcHJlY2lhdGlvbg== IE1PRA== IGJhc2ljcw== IGNsaXBz IG51cnNpbmc= IHByb3Bvc2l0aW9u IHJlYWxpc2Vk IE5ZQw== IGFsbG9jYXRlZA== cml1bQ== YXJhbg== IFByb2R1Y3Rpb24= IFZvdGU= IHNtdWdn IGh1bnRlcg== YXplcg== IENoYW5nZXM= IGZsdWN0 eW9u QXJyYXk= IGtpdHM= V2F0ZXI= IHVuY29tbW9u IHJlc3Rpbmc= ZWxscw== d291bGQ= IHB1cnN1ZWQ= IGFzc2VydGlvbg== b21ldG93bg== IE1vc3Vs IFBsYXRmb3Jt aW9sZXQ= IHNoYXJlaG9sZGVycw== IHRyYWlscw== UGF5 IEVuZm9yY2VtZW50 dHlwZXM= IEFub255bW91cw== IHNhdGlzZnlpbmc= aWxvZ3k= ICgn d2F2ZQ== Y2l0eQ== U3RldmU= IGNvbmZyb250YXRpb24= IEVsZA== Q2FwdA== YWhhbg== aHRt IEN0cmw= T05T MjMw aWZh aG9sZGluZw== IGRlbGljYXRl IGphdw== IEdvaW5n b3J1bQ== U2Fs IGR1bGw= IEJldGg= IHByaXNvbnM= IGVnbw== IEVsc2E= YXZvcml0ZQ== IEdhbmc= IE51Y2xlYXI= IHNwaWRlcg== YXRzdQ== IHNhbXBsaW5n IGFic29yYmVk IFBoYXJt aWV0aA== IGJ1Y2tldA== IFJlY29tbQ== T0Y= IEZhY3Rvcnk= QU5DRQ== IGJhY3Rlcg== SGFz IE9ic2Vydg== MTIx IHByZW1pZXJl RGV2ZWxvcA== IGN1cnJlbmNpZXM= Q2FzdA== IGFjY29tcGFueWluZw== IE5hc2h2aWxsZQ== IGZhdHR5 IEJyZW5k IGxvY2tz IGNlbnRlcmVk IFVU YXVnaHM= b3JpZQ== IEFmZm9yZGFibGU= dmFuY2U= REw= ZW1ldA== IHRocm9uZQ== IEJsdWV0b290aA== IG5hbWluZw== aWZ0cw== QURF IGNvcnJlY3RlZA== IHByb21wdGx5 IFNUUg== IGdlbm9tZQ== IGNvcGU= IHZhbGxleQ== IHJvdW5kZWQ= IEtlbmQ= YWxpb24= cGVycw== IHRvdXJpc20= IHN0YXJr dmw= IGJsb3dpbmc= IFNjaGVkdWxl c3Rk IHVuaGFwcHk= IGxpdGlnYXRpb24= Y2VkZXM= IGFuZHJvaWQ= IGludGVncmFs ZXJlcnM= dWRlZA== dGF4 IHJlaXRlcg== IE1vdG9ycw== b2NpYXRlZA== IHdvbmRlcnM= IEFwb3N0 dWNraW5n IFJvb3NldmVsdA== ZnJhbQ== IHlpZWxkcw== IGNvbnN0aXR1dGVz YXdr SW50ZXJlc3Q= IGludGVyaW0= IGJyZWFrdGhyb3VnaA== IENoZXI= IHByb3NlYw== IERq IE1U UmVzcA== IFBU IHNwZXJt ZWRpdA== QlQ= TGludXg= Y291bnRyeQ== bGVhZ3Vl IGRpY2s= IG9jdA== IGluc2VydGluZw== IHNjcmE= IEJyZXdpbmc= IDE5NjY= IHJ1bm5lcnM= IHBsdW4= aWR5 IERpYW4= IGR5c2Z1bmN0aW9u IGV4Y2x1c2lvbg== IGRpc2dy IGluY29ycG9yYXRl IHJlY29uYw== IG5vbWluYXRlZA== IEFyY2hlcg== ZHJhdw== YWNoZWxvcg== IHdyaXRpbmdz IHNoYWxsb3c= IGhhc3Q= IEJNVw== IFJT IHRoaWdo IDE5NjM= IGxhbWI= IGZhdm9yZWQ= YWdsZQ== IGNvb2xlcg== IEhvdXJz IEdV IE9yaWdpbg== IGdsaW1wc2U= LS0tLS0tLS0tLS0tLS0tLS0tLS0= TGlt IGNoZWVr IGplYWxvdXM= LSc= IGhhcm5lc3M= IFBvaXNvbg== IGRpc2FiaWxpdGllcw== bmVhcG9saXM= IG91dGxvb2s= IG5vdGlmeQ== IEluZGlhbmFwb2xpcw== IGFicnVwdA== bnNpYw== IGVuY3J5cHRlZA== IGZvcmZl cmVhdGg= IHJhYmI= IGZvdW5kYXRpb25z IGNvbXBsaW1lbnQ= IEludGVydmlldw== IFN3ZQ== IGFkb2xlc2M= IG1vbml0b3Jz IFNhY3JhbWVudG8= IHRpbWVseQ== IGNvbnRlbXBs IHBvc2l0aW9uZWQ= IHBvc3RlcnM= cGhpZXM= aW92YXNjdWxhcg== dm9pZA== IEZpZnRo IGludmVzdGlnYXRpdmU= T1VO IGludGVncmF0ZQ== IElOQw== aXNoYQ== aWJsaW5ncw== IFJlcXVlc3Q= IFJvZHJpZ3Vleg== IHNsaWRlcw== IERY IGZlbWluaXNt IGRhdGFz IGJlbmQ= aXJ1cw== IE5pZ2VyaWE= Rm94 Q2hhbmdl IGFpcnBsYW5l IExhZGVu IHB1YmxpY2l0eQ== aXh0eQ== IGNvbW1pdG1lbnRz IGFnZ3JlZ2F0ZQ== IGRpc3BsYXlpbmc= IEFycm93 IDEyMg== IHJlc3BlY3Rz YW5kcm9pZA== c2l4 IFNoYQ== IHJlc3RvcmF0aW9u KVw= V1M= b3lz IGlsbHVzdHJhdGU= d2l0aG91dA== MTI2 IOKUgg== IHBpY2t1cA== bmVscw== IC4uLi4= Zm9vZA== IEZlbg== KT8= IHBoZW5vbWVuYQ== IGNvbXBhbmlvbnM= IFdyaXRl IHNwaWxs IGJyaWRnZXM= IFVwZGF0ZWQ= IEZv IGluc2VjdHM= QVNISU5HVE9O IHNjYXJl aWx0cg== IFpoYW5n IHNldmVyaXR5 IGluZHVs MTQ5 IENvZmZlZQ== IG5vcm1z IHB1bHNl IEZU IGhvcnJpZmlj IERlc3Ryb3k= IEpTT04= IG9saXZl IGRpc2N1c3Nlcw== UmVzdA== RWxlY3Q= IFdpbm4= IFN1cnZpdg== IEhhaXQ= U3VyZQ== b3BlZA== IHJvb3RlZA== IFNrZQ== IEJyb256ZQ== IGxvbA== RGVmYXVsdA== IGNvbW1vZGl0eQ== cmVkaXRlZA== IGxpYmVydGFyaWFu IGZvcmJpZGRlbg== IGdyYW4= 4Kg= IGxhZw== ZW56 ZHJpdmU= IG1hdGhlbWF0aWNz IHdpcmVz IGNyaXRpY2FsbHk= IGNhcmJvaHlk IENoYW5jZWxsb3I= IEVkZGll IGJhbm5pbmc= IEZyaQ== IGNvbXBsaWNhdGlvbnM= ZXRyaWM= IEJhbmdsYWRlc2g= IGJhbmR3aWR0aA== U3RvcA== IE9yaWdpbmFsbHk= IGhhbGZ3YXk= eW5hc3R5 c2hpbmU= IHRhbGVz cml0aWVz YXZpZXI= IHNwaW5uaW5n IFdITw== IG5laWdoYm91cmhvb2Q= YmFjaA== IGNvbW1lcmNl IFNsZQ== QlU= IGVudHJlcHJlbmV1cg== IHBlY3VsaWFy IENvbW1lbnRz ZnJl MzIw SUNT IGltYWdlcnk= IENhbm9u IEVsZWN0cm9uaWM= c2hvcnQ= KCg= RGln IGNvbW1lbQ== dWNlZA== IGluY2xpbmVk IFN1bW1vbg== IGNsaWZm IE1lZGl0ZXJyYW5lYW4= IHBvZXRyeQ== IHByb3NwZXJpdHk= IFJlY2U= IHBpbGxz bWVtYmVy IGZpbmFsZQ== dW5j IEdpZw== 5L0= IGxvZA== IGJhY2t3YXJk LSs= IEZvcndhcmQ= IHRocmk= c3VyZQ== IHNvYXA= IEZY UkVT IFNleHVhbA== b3Vsb3M= IGZvb2xpc2g= IHJpZ2h0ZW91cw== IGNvZmY= dGVycm9yaXNt dXN0YWlu b3Rlcg== IGFidXNlcw== bmV4dA== IGFidXNpdmU= IHRoZXJlYWZ0ZXI= IHByb2hpYml0aW9u IFNVUA== IGRpcA== IHJpcHBlZA== IGluaGVyaXRlZA== IGJhdHM= c3RydQ== R1Q= IGZsYXdlZA== cGhhYmV0 IGZvZw== ZG9vcnM= IGltYWdpbmc= IGRpZ2l0cw== IEh1bmdhcnk= IGFycm9n IHRlYWNoaW5ncw== IHByb3RvY29scw== IEJhbmtz 4Lg= cG91bmQ= IEN1cnQ= LiIp Li8= IGV4ZW1wdGlvbg== ZW5kaXg= IE11bGw= IGltcHJvdmVz IEdhbWVy ZGltZW5zaW9uYWw= SWNvbg== IE1hcmdhcmV0 U3RhdHVz ZGF0ZXM= IGludGVuZHM= IGRlcGljdA== IHBhcmtlZA== Sm9l IE1hcmluZXM= Y2hub2xvZ3k= ISku IGp1ZGdlZA== IHdlaWdodHM= UmF5 IGFwYXJ0bWVudHM= aGVzdGVy IHJlaW5mb3JjZQ== IG9mZmVuZGVy b2NjdXA= IHNvcmU= ZXB0 IFBIUA== IEJyb3c= IGF1dGhvcml6YXRpb24= IFJpc2s= IERlbGF3YXJl IFFV IG5vdGlmaWNhdGlvbnM= IHN1bmxpZ2h0 IGV4Y2x1ZGU= ZGF0 IG1lc2g= IFN1ZGFu IGJlbG9uZ2Vk IHN1YndheQ== IG5vb24= IEludGVyaW9y b2xpY3M= IExha2Vycw== IGNvZGluZw== RGlzY2xhaW1lcg== Q2FsaWY= T2xk IGRpc2w= Pz8/Pz8= IGNvbmZpcm1z IHJlY3J1aXRtZW50 IGhvbWljaWRl Q29uc2lkZXI= IEplZmZyZXk= ZnR5 fTs= IG9iamVjdGlvbg== ZG9pbmc= IExlbw== V2FudA== IGdsb3c= IENsYXJrZQ== IE5vcm1hbg== IHZlcmlmaWNhdGlvbg== IHBhY2tldA== IEZvcm11bGE= IHBsYWc= ZXN2aWxsZQ== IHNob3V0aW5n IG92 IFJFQw== IEJ1Yg== IG5pbnRo IGVuZXJn IHZhbGlkaXR5 IHVwcw== amFjaw== IG5laWdoYm9yaW5n IE5lYw== ZXdvcmtz IEhhYg== YXJleg== IHNwaW5l IGV2ZW50dWFs IExlYWRlcnM= IENhcm4= IHByb2JhdGlvbg== IHJvbWFuY2U= bXNn IE1lY2hhbmljYWw= RVJZ Um9jaw== IHBhcnRpc2Fu Tm9kZQ== YXNzZXRz bWluZW50 IGZvcmVpZ25lcnM= IHRlc3RpZnk= IFVzdWFsbHk= bG9yZHM= IEdyZW4= IFBvd2VsbA== QklM IHNy IGFkZGljdA== IHNoZWxscw== IHNpZ2g= IFlhbGU= dGVybml0eQ== IDc1MA== RVU= IFJpZmxl IHBhdHJvbg== ZW1h IEJhbm5vbg== YW5pdHk= IHRyb3BpY2Fs IFZJSQ== Y3Jvc3M= RXZlcnl0aGluZw== IElTTw== IGh1bWJsZQ== YXNzaW5n IEZJRw== IHVwZGF0aW5n eXNvbg== IGNhbGNpdW0= IGNvbXBldGVudA== IHN0ZWVyaW5n UHJvdA== IFNZ IEZpbmFscw== IFJ1Zw== MTU5 MTM3 IEdvbGY= IDEyNg== IGFjY29tbW9kYXRpb24= IEh1Z2hlcw== IGFlc3RoZXRpYw== YXJ0aXNhbg== IFR3aWxpZ2h0 IHByaW5jZQ== IEFncmljdWx0dXJl IERpc2Nv IHByZWNlZGVudA== IHR5cGluZw== YXV0aG9yaXplZA== T3B0aW9u IEF1Yg== bGlzaGVz YWNodA== bWFn UGV0ZXI= IFVGTw== bW9udG9u IExpdGg= IGFyb20= IHNlY3VyaW5n IGNvbmZpbmVk cHJpdmF0ZQ== IHN3b3Jkcw== IG1hcmtlcnM= IG1ldGFib2xpYw== c2VsZWN0 IEN1cnNl IE90 Z3Jlc3NpdmU= IGluY3VtYg== IFNhZ2E= IHByaWNlZA== IGNsZWFyYW5jZQ== Q29udGVudA== IGRyaWxsaW5n IG5vdGljZXM= IGJvdXJnZW9pcw== IHZlc3Q= IGNvb2tpZQ== IEd1YXJkaWFucw== cnlz aW55bA== IDEyNA== IHBsYXVzaWJsZQ== b25naA== IE9kaW4= IGNvbmNlcHRpb24= IFl1aw== IEJhZ2hkYWQ= IEZsYWc= QXVzdHJhbA== IElCTQ== IGludGVybmF0aW9uYWxseQ== IFdpa2lMZWFrcw== SUVE IGN5bg== IGNob29zZXM= IFBpbGw= IGNvbWJpbmluZw== IHJhZGk= IE1vaGFtbWVk ZGVmZW5zZQ== YXRjaGluZw== U3ViamVjdA== aWNpZW5jeQ== RnJhbWU= IHsi IGNoZXNz IHRpbWVy MTkw IHRpbg== IG9yZGluYW5jZQ== ZW1ldGVyeQ== IGFjY3VzaW5n IG5vdGljZWFibGU= IGNlbnRyZXM= IGxpZA== IE1pbGxz aW1ndXI= IHpvb20= ZXJnaWM= IGNvbXByZXNzaW9u cHJpbQ== ZmluZA== IHN1cmc= IHBhbmQ= IEtlZQ== IENoYWQ= Y2VsbGVuY2U= b3lsZQ== IHNvY2lhbGlzbQ== IFRyYXZpcw== IE1Ieg== IGd1aWxk QUxMWQ== IFN1YnNjcmliZQ== IFJlbGF0ZWQ= IG9jY3VycmVuY2U= aXRjaGluZw== IGZpY3Rpb25hbA== IGNydXNo IEVB Y29k bWl4 IFRyaXBsZQ== IHJldHJpZXZl IHN0aW11bHVz IHBzeWNoaWF0 IERvb3I= IGhvbW9zZXh1YWxpdHk= IGVsZW1lbnRhcnk= IGNlbGx1bGFy aWRpYW4= IExhdW4= IGludHJpZ3Vpbmc= IGZvYW0= IEJhc3M= aWRp aXRzdQ== IGFzc3VyZQ== IGNvbmdyYXQ= IGJ1c2luZXNzbWFu IEJvb3N0 Y2xvc2U= IGxpZWQ= IHNjaWVuY2Vz IE9tZWdh IEdyYXBoaWNz IDw9 c3Bva2Vu IGNvbm5lY3Rpdml0eQ== U2F0dXJkYXk= IEF2ZW5nZXJz IHRvZ2dsZQ== IGFua2xl IG5hdGlvbmFsaXN0 bW9kZWw= IFBvb2w= b3Bob2JpYQ== VmFy IE1vbnM= YXRvcmllcw== IGFnZ3Jlc3NpdmVseQ== Q2xlYXI= Rm9yZ2U= YWN0ZXJz IGhlZGdl IHBpcGVz IGJsdW50 IHNx IHJlbW90ZWx5 V2Vk YXNlcnM= IHJlZnJpZ2Vy IHRpbGVz IHJlc2N1ZWQ= IGNvbXByaXNlZA== aW5za3k= IG1hbmlm YXZhbmF1Z2g= IHByb2xpZmVy IGFsaWduZWQ= eG1s IHRyaXY= IGNvb3JkaW5hdGlvbg== IFBFUg== IFF1b3Rl MTM0 YmY= IFNhdw== IHRlcm1pbmF0aW9u IDE5MA== IGFkZGl0aW9ucw== IHRyaW8= IHByb2plY3Rpb25z IHBvc2l0aXZlbHk= IGluY2x1c2l2ZQ== IG1lbWJy MTk5MA== b2xkZXI= IHByYWN0aWNlZA== aW5rbGU= QXJjaA== IHN0YXJ0ZXJz YXJpdXM= IGludGVybWVkaWF0ZQ== IEJlbmVm IEtpbGxlcg== IGludGVydmVudGlvbnM= IEtpbA== IEZseWluZw== SW52 IHByZW1hdHVyZQ== IHBzeWNoaWF0cmlj IGluZGll IGNvbGxhcg== IFJhaW5ib3c= YWZp IGRpc3J1cHRpb24= IEZPWA== Y2FzdGluZw== IG1pc2RlbQ== Y3Jv IHdpcGU= YXJkb24= IGJhc3Q= IFRvbW15 IFJlcHJlc2VudGF0aXZl IGJlbGx5 IFBP IEJyZWl0YmFydA== MTMy IG1lc3NhZ2luZw== U2hvdWxk UmVmZXJlbmNlcw== IEdSRQ== aXN0aWNhbA== TFA= IENhdg== IENyYXp5 IGludHVpdGl2ZQ== a2VlcGluZw== IE1vc3M= IGRpc2NvbnRpbg== IE1vZHVsZQ== IHVucmVsYXRlZA== IFByYWN0aWNl IFRyYW5zcG9ydA== IHN0YXRpc3RpY2FsbHk= b3Jucw== IHNpemVk cHU= IGNhZg== IFdvcmxkcw== IFJvZGdlcnM= IEx1bg== IENvbWlj bGl2aW5n IGNhcmVk IGNsaW1iZWQ= KXs= IGNvbnNpc3RlZA== IG1lZGlldmFs Zm9saw== IGhhY2tlZA== IGRpcmU= IEhlcm1pb25l IHRlbmRlZA== Y2VhbnM= RGFuaWVs d2VudA== IGxlZ2lzbGF0b3Jz IHJlZGVz Z2FtZXM= IGdu YW1pbGlhcg== ICsr Z2d5 dGhyZWF0 IG1hZ25ldA== IHBlcmNlaXZl IHppcA== IGluZGljdG1lbnQ= IGNyaXRpcXVl Z2FyZA== IFNhZmU= IENyZWFt IGFkdmVudA== b2Jh IHZvd2Vk b3VzYW5kcw== IHNraQ== IGFib3J0aW9ucw== dWFydA== IHN0dW5uZWQ= IGFkdmFuY2luZw== IGxhY2tlZA== IFwi IHNjaGl6b3BocmVu IGVsZWdhbnQ= IGNvbmZlcmVuY2Vz IGNhbmNlbGVk IEh1ZHNvbg== IEhvcGVmdWxseQ== IHRydW1w IGZyZXF1ZW5jaWVz IG1ldGVvcg== IEp1bmlvcg== IEZsZWV0 IE1hbGNvbG0= IFRvb2xz IC4uLi4uLi4u IGhvYmJ5 IEV1cm9wZWFucw== IDE1MDA= IEludG8= IHN3YXk= IEFwcHJv IENvbXBs Q29tbXVuaXR5 IHRpZGU= IFN1bW1pdA== 5Ls= IGludGVydmFscw== IEV0aGVy IGhhYml0YXQ= IFN0ZXZlbnM= bGlzaGluZw== IERvbWFpbg== IHRyaWdnZXJz IGNoYXNpbmc= IGNoYXJt IEZsb3dlcg== aXRvcmVk IGJsZXNzaW5n IHRleHR1cmVz Rml2ZQ== IGxpcXVvcg== UlA= RklO IDE5NjI= Q0FS VW5rbm93bg== IHJlc2ls IExpbHk= IGFidW5kYW5jZQ== IHByZWRpY3RhYmxl cmFy IGJ1bGxzaGl0 bGVlbg== Y2hldA== TW9y TXVjaA== 5Lk= IGVtcGhhc2l6ZWQ= IGNydXN0 IHByaW1pdGl2ZQ== IGVuam95YWJsZQ== IFBpY3R1cmVz IHRlYW1tYXRl cGxlcg== IFRvbA== IEthbmU= IHN1bW1vbmVk dGh5 cmFtYQ== IEhvbmRh IHJlYWxpemluZw== IHF1aWNrZXI= IGNvbmNlbnRyYXRl Y2xlYXI= IDIxMA== IEVyZG9nYW4= YXJpcw== IHJlc3BvbmRz IEJJ IGVsaWdpYmlsaXR5 IHB1c2hlcw== IElkYWhv IGFnZ3Jhdg== IHJ1aW5z dXJhdGlvbnM= IGJhbnM= IGFuYXQ= c2hhcmU= IGdyaW5k aGlu dW1lbg== IHV0aWxpdGllcw== IFlhbmtlZXM= IGRhdGFiYXNlcw== IERE IGRpc3BsYWNlZA== IGRlcGVuZGVuY2llcw== IHN0aW11bGF0aW9u aHVu aG91c2Vz IFByZXR0eQ== IFJhdmVucw== IFRPREFZ IGFzc29jaWF0ZXM= IHRoZXJhcGU= Y2xlZA== IGRlZXI= IHJlcGFpcnM= cmVudGljZQ== IHJlY2VwdG9ycw== IHJlbWVk IENl IG1hcnJpYWdlcw== IGJhbGxvdHM= IFNvbGRpZXI= IGhpbGFyaW91cw== b3Bs MTM4 IGluaGVyZW50bHk= IGlnbm9yYW50 IGJvdW5jZQ== IEVhc3Rlcg== UkVMQVRFRA== IEN1cnJlbmN5 RVY= 44Oe IExlYWQ= IGRlY2Vhc2Vk QnJpZW4= IE11c2s= SlM= IG1lcmdl aGVhcnRlZA== Y3JlYXQ= bWl0dA== bXVuZA== IOKAiw== IEJhZw== IHByb2plY3Rpb24= IGphdmE= IFN0YW5kYXJkcw== IExlb25hcmQ= IGNvY29udXQ= IFBvcHVsYXRpb24= IHRyYWplY3Q= IGltcGx5 IGN1cmlvc2l0eQ== IERC IEZyZXNo IFBvcg== IGhlYXZpZXI= bmV5cw== Z29tZXJ5 IGRlc2VydmVk IHBocmFzZXM= IEdD IHllYXN0 ZGVzYw== RGVhdGg= IHJlYm9vdA== IG1ldGFkYXRh SUNBTA== IHJlcGF5 IEluZGVwZW5kZW5jZQ== IHN1YnVyYmFu aWNhbHM= IGF0b3A= IGFsbG9jYXRpb24= Z2VuZXJhdGlvbg== IEdyYW0= IG1vaXN0dXJl IHBpbmU= IExpYmVyYWxz IGFpZGVz IHVuZGVyZXN0 IEJlcnJ5 IGNlcmVtb24= Mzcw YXN0cm91cw== IFBpcmF0ZXM= IHRlbnNl IEluZHVzdHJpZXM= IEFwcGVhbHM= IE5lYXI= IOijj+c= IGxvdmVycw== IENBUA== IENyYXc= IGdpYW50cw== IGVmZmljYWN5 RWxlbWVudA== IEJlaGF2aW9y IFRveW90YQ== IGludGVzdA== UHJpdg== QUk= IG1hbmV1dmVy IHBlcmZlY3Rpb24= IGJhbmc= cGFwZXI= cmlsbA== R2Vvcmdl Ym9yZGVy aW50ZXJz IFNldGg= IGNsdWVz IExldmk= IFJldmVudWU= MTQ3 IHZhcG9y IGZvcnR1bmF0ZQ== IHRocmVhdGVucw== IHZldA== IGRlcGVuZGVuY3k= ZXJzZWQ= YXJ0aWNsZQ== IEJsaXp6YXJk IGNobG9y IG1pbnVz IEJpbGxz IGNyeXB0b2N1cnJlbmN5 IG1ldGFib2xpc20= dGVyaW5n IHBlc3RpYw== c3RlcHM= IFRyZWFzdXJl cmFjdGVk IENvbnN0YW50 IHRlbXA= MTM5 IERldGVjdGl2ZQ== dXJhbGx5 IHJlY292ZXJpbmc= IGNvcnRleA== IDE0NA== Y2xvc2Vk IHByZWp1ZGljZQ== YXVudGVk IHN0b3Jtcw== IE5PVw== IG1hY2hpbmVyeQ== QWRkcmVzcw== IGNvbXBlbGxlZA== Mjcw IGRlc3BhaXI= YmFuZQ== IHZlZ2V0YWJsZQ== IGJlZHM= TGVhcm4= IGNvbG9yZnVs IHNwaWtl IG1hcmdpbnM= IHN5bXBhdGh5 IHdvcmtzaG9w IENCQw== U2F0 IGJ1cm5z IEdlbmRlcg== IDEyOQ== IENhYmxl IGRlYnRz IFRoZXJlc2E= IHJlZmxlY3Rpbmc= IGFpcnN0 IHJpbQ== cmFtaWQ= IHdlYWtuZXNzZXM= V3JpdA== b2dnbGU= dGk= IENoYXJnZQ== IHdlaWdoZWQ= ICgu IGxhdWdodGVy IHJvdXRlcg== IERlbW9jcmFjeQ== RGVhcg== IGhhc2h0 IGR5 IGhpbnRz cnVubmluZw== IGZpbmlzaGVz YXJ1cw== TWFzcw== cmVzdWx0 YXNjdXM= IHZpbnRhZ2U= IGNvbnF1 IHdpbGRseQ== YWNpc3Q= IGxpbmd1 IHByb3RhZ29uaXN0 c3Ryb20= dGVlbnRo IFNvbG8= bWFj ZmlsbGVk IHJlbm93bg== aXRpdmVz IG1vdGl2ZQ== IEFudGFy IE1hbm4= IEFkanVzdA== IHJvY2tldHM= IHRyb3VibGluZw== ZWk= IG9yZ2FuaXNtcw== YXNzaXM= Q2hyaXN0aWFu IDE0NQ== IEhhc3M= IHN3YWxs IHdheA== IFN1cnZpdmFs VlM= IE11cmQ= dmQ= c3RhbmRhcmQ= IGRyYWdvbnM= IGFjY2VsZXJhdGlvbg== cmF0aW9uYWw= ZmluYWw= IHBhaXJlZA== IEV0aGVyZXVt IGludGVyZmFjZXM= IHJlc2VudA== IGFydGlmYWN0cw== xas= YXJlbA== IGNvbXBldGl0b3I= IE5pY2hvbGFz IFN1cmZhY2U= Y3Bw IFRvdA== IGVjb25vbWljYWxseQ== IG9yZ2FuaXNlZA== IGVuZm9yY2Vk aW5obw== IHZhcmlldGllcw== IGFiZG9t IEJhaWxleQ== aWRhdg== IFNhbHY= cGFpZA== IGFsdGl0dWRl ZXNzZXJ0 IEd1dGVuYmVyZw== YXJlYQ== b3BvdWxvcw== IHByb2Zlc3NvcnM= aWdncw== IEZhdGU= aGV5 IDMwMDA= RGlzdA== IHR3aW5z Y2lsbA== IE1hcHM= IHRyYXBz IHdlZWQ= IEtpc3M= IHlvZ2E= IHJlY2lwaWVudHM= IFdlc3RtaW5zdGVy IHBvb2xz IFdhbG1hcnQ= MTg4 IFNjaG9vbHM= YXR0YWNr IEFSTQ== cGFyYWdyYXBo V2FybmluZw== amw= IHNlbGZpc2g= YW5jaGV6 IEhlaWdodHM= RnJl IFNvcGg= IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t dG1s MzMz IHJhaWRz IHNhdGVsbGl0ZXM= S0VZ IGxhc3Rz 0YI= SW5z IERhbWU= IHVucHJlZGljdA== Ly8v Z2hhaQ== IGFydGlsbGVyeQ== IGNydWlzZQ== IGdlbA== IENhYmluZXQ= IGJsb3dz IEVzcA== IHByb3hpbWl0eQ== b3RoZQ== IFNraWxscw== IFVwcGVy b2Jv IE5EUA== IGVuam95cw== IHJlcGVhdGluZw== IENvbnN0cnVjdGlvbg== IFF1ZXN0aW9ucw== SGlsbGFyeQ== IHVpbnQ= IHByb2Nlc3NvcnM= IEdpYnNvbg== IE11bHRpcGxl cWE= IEJvbQ== IE1pbGVz dmVudGlvbmFs IGh1cnRz c2tpbg== IEFJRFM= IGFkdmlzZXJz IFJvb3Q= IG1ldGhvZG9sb2d5 IERhbGU= IGRldG9u IEtub3dsZWRnZQ== c2VxdWVudGx5 IDEyMQ== IGNvbm5lY3Rz Q3k= IERhbmdlcg== IGNvbnRyaWJ1dG9ycw== IEJlbnQ= IGJyYXNz IEd1bnM= aW50bw== IEZvcnR1bmU= IGJyb2tlcg== YmFsYW5jZQ== IGxlbmd0aHM= IHZpYw== IGF2ZXJhZ2luZw== IGFwcHJvcHJpYXRlbHk= IENhbWVyYQ== IHNhbmR3aWNo IENEQw== IGNvb3JkaW5hdGU= IG5hdmln IGdvb2RuZXNz bGFpbQ== IGJyYWtl IGV4dHJlbWlzdA== IFdha2U= IE1lbmQ= IFRpbnk= IENPTA== IFJG IER1YWw= IFdpbmU= Q2FzZQ== IHJlZmluZWQ= IGxhbXA= TGVhZA== IGJhcHQ= IENhcmI= IFNhZGQ= IE1pbm5lYXBvbGlz UERG RWFybHk= IEhpZGRlbg== SXRz IFRJTUU= IHBhcA== IGNvbW1pc3Npb25lZA== IEZldw== IENvbHRz IEJyZW4= IGJvdGhlcmVk IGxpa2V3aXNl RXhwZXI= IFNjaHc= Y3J5 bm4= IE1pdGNo aW1vbg== TUc= Ym0= VU1Q cmF5cw== IHJlZ2lzdHJ5 IDI3MA== YWNoaW5l cmVsbGE= YW50aW5n MDAwMDA= IHJ1aW5lZA== c3BvdA== IHRh IG1heGltaXpl IGluY29udmVu RGVhZA== SHVtYW4= RW5hYmxlZA== IE1hcmll IGNoaWxs IFBhcmFkaXNl IHN0YXJyaW5n IExhdGlubw== IFByb3RvY29s IEVWRVI= IHN1cHBsaWVycw== bWVzc2FnZQ== IEJyb2Nr IHNlcnVt 4paI4paI4paI4paI IGVuY29tcA== IGFtYml0aW9u dWVzZQ== IGFycm93cw== QW5kcmV3 IGFudGVubmE= IDE5NjE= IEJhcms= IGJvb2w= 44Kq IFN0b3JhZ2U= IHJhaWx3YXk= IHRvdWdoZXI= IENhZA== IHdhc2hpbmc= UHk= J10= ZW1iZWQ= IE1lbXBoaXM= YWNrbGU= IGZhbW91c2x5 IEZvcnR1bmF0ZWx5 b3ZpZXM= IG1pbmRzZXQ= IHNuZWFr IERo UkFX IFNpbXBzb24= IGxpdmVzdA== IGxhbmRtYXJr IGNlbWVudA== TG93 IHRocmlsbGVk IENvdXJzZQ== aW5lbA== IGNodWNr aWRhdGU= Z2xvYmFs IHdoaXQ= IO+/vQ== YWRheXM= c2tp IFNW IHZpcnVzZXM= MzA2 IFJlc3BvbnM= IHRoZWF0ZXJz IEJyYW5jaA== IEdlbmV2YQ== IE1L IHVuYmVsaWV2 IGNvbW11bmlzdA== T3JpZ2luYWw= IFJlY2VpdmVk IFRyYW5zZmVy IEFyZw== SW5wdXQ= IFN0cmF0ZWd5 IHBhbGFjZQ== dGhlbmluZw== RHJp IHNlbnRlbmNpbmc= dW1ibmFpbA== IHBpbnM= cmVjeQ== IHNpYmxpbmdz R2V0dGluZw== IEJV IE5vcnRod2VzdA== IHByb2xvbmdlZA== IFNha3VyYQ== Q29tYg== IEJvdXI= IGluYWRlcXVhdGU= IEthc2g= IHVzZXJuYW1l IEltcHJvdmU= IGJhdHRsaW5n IE1BQw== IGN1cnJpY3VsdW0= IHNvZGE= IENhbm5vbg== IHNlbnNpYmxl c3BvbnM= RGVjZW1iZXI= IHdpY2tlZA== IFBlbmd1 IGRpY3RhdG9ycw== IEhlYXJ0cw== b2d5bg== IHNpbWlsYXJpdGllcw== IFN0YXRz IGhvbGxvdw== aXRhdGlvbnM= Ijpb IGhvdmVy IExpc3Rlbg== c2No U3VuZA== IGNhZA== IFBhcmtz IGx1cg== IGh5cGU= IExlbQ== TkFNRQ== aXN1cmU= RnJpZGF5 IHNob290cw== IGNsb3Nlcw== IGRi IFJpZGdl IERpZmZlcmVudA== IHJlcGxpZXM= IEJyb2Fkd2F5 b3BlcnM= IGludG9sZXI= IFpldXM= YWtlc3Bl IHByb3ByaWV0YXJ5 IHJlcXVlc3Rpbmc= IGNvbnRyb2xsZXJz IE1JTg== aW1lZGlh YmVjY2E= IGV4cGFucw== IG9pbHM= Qm90 IENoYW5k IHByaW50ZXI= IHRvcHBlZA== IFBPTA== IEVhcmxpZXI= U29jaWFs YXZpbg== IGRlY3JlYXNlcw== IFNlYg== IHNwZWNpZmljYXRpb25z IEJsYXN0 IEt1cnQ= IGZyZWVs QnJvd24= IGRpbGln cm9l IFByb2JsZW0= IFF1YWQ= IGRlY2VudHJhbA== IFZlY3Rvcg== YW51dA== IHBsdWdpbnM= IEdyZWdvcnk= IGZ1Y2tlZA== ZWxpbmVz IEFtYmFzc2Fkb3I= dGFrZQ== IGNsZWFucw== b25neWFuZw== QW5vbnltb3Vz c3Rybw== In0= YWxpbmU= IE9kZA== IEV1Zw== MjE2 IGJvaWw= IFBvd2Vycw== IG51cnNlcw== T2J2aW91c2x5 IFRlY2huaWNhbA== IGV4Y2VlZGVk T1JT IGV4dHJlbWlzdHM= IHRyYWNlcw== ZXhwbA== IGNvbXI= IFNhY2g= KS8= IG1hc2tz IHNjaQ== Qm9u IHJlZ3Jlc3Npb24= d2VnaWFu IGFkdmlzb3I= aXR1cmVz IFZv ZXhhbXBsZQ== IEluc3RydWN0 IHNpZWdl IHJlZHVjdGlvbnM= cHRy IHN0YXR1dG9yeQ== IHJlbW92ZXM= IHB1Y2s= cmVkaXRz IGJlZQ== IHNhbGFk IHByb21vdGlvbnM= IEpvc2h1YQ== d2l0aHN0YW5kaW5n RVRI IENoYQ== aW11cw== IGV4cGVuZGl0dXJl YXVudGluZw== IGRlbGlnaHRlZA== IDE1NQ== YmVo IGNhcnBldA== IFNwYXJ0 IGp1bmdsZQ== bGlzdHM= IGJ1bGx5aW5n IE5vYmVs IEdsZW4= IHJlZmVyZW5jZWQ= IGludHJvZHVjZXM= c2Vpbg== IGNob3BwZWQ= Z2xhc3M= IFdyZXN0 IG5ldXRyYWxpdHk= IOKZ IGludmVzdGlnYXRvcg== IHNoZWx2ZXM= IHVuY29uc3RpdHV0aW9uYWw= IHJlcHJvZHVjdGlvbg== IG1lcmNoYW50 bWlh IG1ldHJpY3M= IGV4cGxvc2l2ZXM= IFNvbmlh IGJvZGlseQ== IHRoaWNrbmVzcw== IHByZWRvbWluYW50bHk= IEFiaWxpdHk= IG1vbml0b3JlZA== SUNI IF0u IE1hcnRpbmV6 IHZpc2liaWxpdHk= IHF1ZXJpZXM= IGdlbm9jaWRl IFdhcmZhcmU= UXVlcnk= IHN0dWRpb3M= IGVtYnJ5 IGNvcnJpZG9y IGNsZWFuZWQ= Y29tcGxldGU= IE1I IGVucm9sbG1lbnQ= SU5HUw== IGltcGFjdGVk IGRpc2FzdHJvdXM= IFl1bg== IENsYWlyZQ== IEJhc2ljYWxseQ== eXQ= dXN0ZXJpdHk= IGluZGlyZWN0bHk= d2lr IGRvZA== IENhcnI= IGFtcA== IHByb2hpYml0 IEluaXRpYWw= IFJk aWpp IGVkdWNhdGU= Y29ybg== aW90dA== IEJlYXV0eQ== IGRldGVjdGl2ZQ== IENvbm4= c2luY2U= IHN0YWdnZXI= IG9iZXNl IGJyZWU= b2xvZ2lj aXNzZQ== d2Fsa2Vy IGJsYWRlcw== IGxhd2Z1bA== ZnVuYw== IEJlaGluZA== IGFwcGV0aXRl ICgq IHRlbm5pcw== IG9mZnNwcmluZw== IGpldHM= IHN0cnVjdHVyZWQ= IGFmb3JlbWVudGlvbmVk Tm92 IHNjYWxpbmc= ZmlsbA== IHN0ZXc= IGN1cmI= IFN0ZXBoYW4= ZWRJbg== U0Y= b2JpYw== 6a2U b3Vn IE1N IGdlbmV0aWNhbGx5 b3Bleg== MTM2 IHVtYg== YW5jZXJz IGNvaG9ydA== IG1lcmNoYW5kaXNl IGltcG9zaW5n IExlZ2lzbGF0dXJl IEFyY2hpdmU= aXZpYQ== IE5hdmFs IG9mZmVuY2Vz IG1pcmFjbGU= IHNuYXBwZWQ= IGZvZXM= IGV4dGVuc2l2ZWx5 IFJhZg== IGNhdGVy ZWRpZW5jZQ== S2l0 IEJpbg== IHJlY29tbWVuZHM= IENpdGllcw== IHJpZ2lk IFJFQUQ= IE5vYmxl IFRpYW4= IGNlcnRpZmljYXRlcw== YW50aXM= b2lsZXI= IEJ1ZGRoaXN0 ZGlk IHN1cnZleWVk IGRvd253YXJk IHByaW50cw== IE1vdGlvbg== cm9uaWNz IFNhbnM= b3NzaWJseQ== dWN0aW9ucw== IGNvbG9uaWVz IERhbmlzaA== dW5pdA== IHNwb2ls IGFkdmlzb3J5 YmVycmllcw== UGxhbg== IHNwZWNpZmljYXRpb24= b3BoZXJz IFJlc291cmNl IHNoaXJ0cw== cHJpc2luZ2x5 Y29tbXVuaWNhdGlvbnM= IHRyaXZpYWw= IG1lbnRpb25pbmc= aXNleHVhbA== IHN1cHBsZW1lbnRz IHN1cGVydmlzaW9u QlA= dm9y IHdpdA== IGNvb2xkb3du IHBsYWludGlmZg== IFJldmlld3M= IFNyaQ== IE1pbnQ= IFN1Z2Fy IGFmdGVyd2FyZA== IFByaWVzdA== IEludmVzdG1lbnQ= b2dlbmU= IFRha2luZw== IHN0cmV0Y2hpbmc= IGluZmxhbW1hdGlvbg== IFRlaHJhbg== IGxpbmluZw== IGZyZWV6aW5n IEVudGl0eQ== IGluc3BpcmluZw== c3BlY2lhbA== cHJpY2U= IHN1ZQ== IFBvcnRlcg== b3VuZ2U= RVRB IERlcmVr IEx1aXM= dW8= eW1waA== IGV4dGVyaW9y aWhpbA== IEFzaGxleQ== aW5hdG9y IG51dHJpZW50cw== IFRocm9uZXM= IGZpbmFuY2Vz IEluc3BlY3Q= IHNwZWNpYWxseQ== IFJlcXVpcmVk IFBUUw== IFZpb2xlbmNl b2ludGVk c2hvdHM= IGV4Y2VycHQ= Y29vbg== SU5T IEdyaQ== IHJlY29nbmlzZWQ= V2Vlaw== WW91bmc= IHZvbQ== aXNsZQ== IEN1cnJ5 IEJ1ZGRo IG5vdGVib29r IGR1cmFibGU= Lz8= IEdhZA== IFB1cHA= IGZvcmdpdmU= cGFyaw== IHBlcnNvbmFsaXRpZXM= YW5hbHlzaXM= Y2xhbWF0aW9u IGVsZXZhdG9y IHdhcmVob3VzZQ== IFJvbGU= dW5u IGlsbHVzdHJhdGlvbg== IFNjYW4= IGF0bW9zcGhlcmlj SW1wb3J0 QU5D cmljdGVk ZnU= MDEw IGFyY2hl IHJld2FyZGVk YWtlc3BlYXJl IGludGVybmFsbHk= IFJCSQ== YWxrZXI= IGVsZXBoYW50 b3dpdHo= IFBpenph IGJpcGFydGlzYW4= w6lz IHNsb3dlZA== IFN0YXJr IG92ZXJyaWRl T1VT IDMyMA== dW5kcmVkcw== IERlY2s= IENlbnN1cw== YmVl MTQ2 b3Rvcg== IGlw IHVi b2NhdGlvbnM= IEJ1dHRvbg== cmljZQ== IGNyaXBw ZmZm IG9yaWdpbmF0ZWQ= IG92ZXJ3aGVsbWVk YXBwYQ== IGZvcmVtb3N0 4oCR IExFRw== cmVsZWFzZQ== ZWF0dXJlZA== YXRjaGVz IHJlcHM= IGxlbmRpbmc= IFJlZmVyZW5jZQ== IENsaWVudA== MTY1 dmVudGg= Q29tcGxldGU= IFBhdHJvbA== IHN3b3Ju Y2Ft IHNodXR0bGU= IFJhbHBo IGhvbWV0b3du LSw= b25hbA== IEJQ 5Y8= IHBlcnN1YWRl IEFsZXhhbmQ= IGNvbWJpbmVz IHZpdmlk IExhZw== IGVuY29kaW5n IHNhbHZhdGlvbg== d2Vu IFJlY292ZXJ5 aXlh VW5pdmVyc2l0eQ== IEJpZGVu IGJ1ZGdldHM= IFRleGFucw== Zml0cw== IGhvbm9yZWQ= IHB5dGhvbg== VEQ= IyMj Y2xvbmU= IGJsaW5r IExpcXVpZA== IHVuZW1wbG95ZWQ= IGNsYXNoZXM= IENvdW5zZWw= IGRpcmVjdGluZw== IHB1bmN0 IEZhbGNvbnM= IHNoYXJr IERhbWFzY3Vz IGplYW5z IGVtYmFyaw== IHNlaXpl IHVwd2FyZHM= Mjgw IEV6 IEFueXRoaW5n IGV4b3RpYw== bG93ZXI= IENyZWF0b3I= IFVt IHN1YnVyYnM= YmVyZ2Vy IFdlbmQ= IG1pbnQ= IFhY IERybw== IHN1ZmZlcnM= IGhlcmI= dHJlZQ== IGZyYWdpbGU= IGZsb29kZWQ= IEFsY29ob2w= b2xlYW4= bnlkZXI= IEtP RnJhbQ== IDEzNg== IG93ZWQ= IE1lbGVl IEhhc2g= IHdoaXNr IHN1ZG8= cnI= UXVpY2s= YXBwcm8= IGlp IEV4YW1wbGVz aGVl IHByb21vdGVz cGVyYXR1cmU= a2Fy IEhvbm9y IHNvZGl1bQ== IExpZg== cm9zc28= aW50ZW5kZW50 IGNvcnJlc3BvbmRlbnQ= Rm91bmQ= c2VjcmV0 IGlkZW50aWZpZXM= YWduZQ== IGxvdQ== IFBQ IGNvaW5jaWRlbmNl bW92ZQ== IG1pbGl0aWE= IGluZmlsdHI= IFByaW1hcnk= IHBpdGNoaW5n IEli IEdPT0Q= 44K4 IFdpemFyZHM= aXJhbA== IFZlbnVz UlI= IOKAlQ== IENhc2V5 IHNhZGx5 IGFkbWlyZQ== IGVtYmFycmFzc2Vk Y2I= TWVs IHR1YmVz IGJlYXV0aWZ1bGx5 IFF1ZWVuc2xhbmQ= QmVsb3c= cmV6 cXVldA== cGxlYXNhbnQ= IMKr Q2FtcA== IGRlY2lzaXZl MTk5OA== IExhbWI= dXR0b24= aG4= IEphZ3U= YXVuZGVy IENvcmQ= IGNsZXJr IGNhZmZl IHdpcGVk IHJlaW0= IE1vdW50YWlucw== IGltcHJpc29uZWQ= IGRldmVsb3Bz IFByYQ== IG1vZGVsaW5n QW55b25l YW5jZWw= IFNpdA== IHNoaWVsZHM= IGxhd24= IGNhcmRpb3Zhc2N1bGFy IGRlbW9uc3RyYXRpbmc= IHBhcnNl IElzcmFlbGlz IGV1cm9z MTQz IGdsb3Jpb3Vz aW5za2k= ZWNk IGNvbmRpdGlvbmluZw== IGhlbHBsZXNz IG1pY3Jvc2M= IEhhcmJvcg== IHN0YWtlcw== IDI2MA== IHVuZXF1 IEZsb3lk IGRhbXA= IGFwcGFyYXR1cw== IExhd3M= IGNvdW50ZXJz IGluZHVjZQ== YXRhYmxl IEFobWVk IHNsYW0= Tm92ZW1iZXI= IHBlcnNpc3Q= IGltbWluZW50 w6Fu IHNocmVk IHBoYXNlcw== IEVkbW9udG9u IEFybXN0cm9uZw== IE1lZXQ= IEtpdHR5 0YA= Y2lyYw== IEFkdWx0 IGFyb3Nl IFhlbg== RGFu Z293 IHN1cGVyZg== IEFkbWly IGVuZHVyZQ== IGtleXdvcmQ= eXJ1cw== IHlhcm4= IHBhdGh3YXk= IEhvcGtpbnM= bWlkdA== IGNlbnNvcnNoaXA= ZGVwZW5kZW50 IGluc3RydWN0b3I= U291cmNlcw== IHRvZQ== IGJhbGxvb24= Tm9i IHN3ZWFy IENhc3Rybw== IGdsb3Nz IEthdmFuYXVnaA== IHJlbWFya2FibHk= UGhvdG9z IE5vbQ== IFNvdXRoZWFzdA== eWVycw== IHZhbGlkYXRpb24= IGNhbm5vbg== IFZpY3Rvcnk= IFBpZXJyZQ== IGNhdXRpb3Vz QXVkaW8= IGZldGNo IEdpZnQ= IEh5cA== IHJlbWVkeQ== WkU= IHNjZW50 IGJlYXJk IFJ1dA== LSI= IHBhdGVudHM= SHk= IHVuanVzdA== IHBvdGF0bw== IGZvcnRoY29taW5n IGNoZWY= IFJpZnQ= YWZmZQ== IFJPTQ== IExhdW5jaA== IHBhZHM= IE5lbw== IG9uc2V0 IHNxdWVlemU= c2FmZQ== IHByZWZpeA== IFRN IE5lYXJseQ== IENsaW5pY2Fs IE1lbnRhbA== b3RpYXRpb24= IFVuaWM= YW50cnk= IENpcg== IGVwaXQ= w6Y= IGV4dHJhY3RlZA== dmVyc2VseQ== cmlhZA== IHN0cmFpbnM= IHRvcHM= IHBvZW0= IFJhbmR5 IE1hcGxl VEhFUg== dXBpdGVy IFNTRA== muk= IHVuY29u cGVyaW5n IHNsZXB0 aW5lcnM= IHVuZGVyd2F0ZXI= IEV2aWRlbmNl Z29uZQ== MjA1 IGhpc3RvcmlhbnM= IHN5bnRoZXNpcw== IGZyb2c= YmFza2V0YmFsbA== IHZpYnJhbnQ= IHN1Ym9yZA== IDM2NQ== IERpYWw= IGNvb3BlcmF0ZQ== SEFIQQ== IGdyZWV0ZWQ= MTU4 IGpheno= IGludG94 IFdhbGtpbmc= IHN1cGVydmlzb3I= IEZ1c2lvbg== IE1lcmNlZGVz c2VuZA== SGFt c2Q= bmw= IHRvdXJz IEZJRkE= IGN1bHA= Z2Q= MzA0 IHBsZWFz IGlsbHVzdHJhdGVz IENvbG9tYmlh IGhpZ2hsaWdodGluZw== IFN1bW1hcnk= IGV4cG9zaW5n IERydQ== IGlyb255 cml0aW9uYWw= IENhcnJvbGw= IEVsbGlz UGljdA== IFJhcHQ= IGFkYXB0ZXI= IHVubQ== IGNvcnBzZQ== IGNlbGVicml0aWVz RGVu YXR1bQ== IEFwb2NhbHlwc2U= IFdhZw== bGluaW5n IGhvcm1vbmVz UnVi IFhp IFZhdWx0cw== MjA4 YWxreXJpZQ== aW5vc2F1cg== IGZlZWRz dml0eQ== IGRlZmVhdGluZw== V2FpdA== IGVtcGhhc2l6ZQ== IFN0ZWVsZXJz eXJpbnRo bGV5cw== IFdoZW5ldmVy Q3VycmVudGx5 IENsb2Nr IGNvbGxlY3RpdmVseQ== YW55b24= IEpQ IG1lbnRhbGl0eQ== IGRvd25sb2Fkcw== IHN1cnJvdW5kaW5ncw== IEJhcm5lcw== IGZsYWdzaGlw IGluZGljYXRvcnM= IGdyYXBw SmFudWFyeQ== IEVsZW1lbnRhbA== IEF0aGVuYQ== aWJhbA== IHNpZ2h0cw== IGNhcGl0YQ== IFRyZWF0eQ== IHZvaWNlZA== IEdheg== bGV0dGU= IHlh IGV4cGlyZWQ= TGVnZW5k SG90 bmF0dXJl IHVuc3RhYmxl IDI4MA== w7o= Q29tbWVudA== QUxF IHF1ZXN0cw== IGhhbmRsZXI= bmlz IHZlcnNhdGlsZQ== IGNvbmNlYWw= ZW5nZWFuY2U= IEludGVyYWN0aXZl IG9ic2Vzc2Vk IERvZ3M= IGNyYWNrZWQ= U291bmQ= c3Y= IER5bGFu cm9hZHM= Zng= IENhdGhvbGljcw== IEhhZw== IHNsYW1tZWQ= IGdsb3dpbmc= c2FsZQ== IHRpc3N1ZXM= IENoaQ== bmVl IGNoZXI= c2lj dXJyZWN0aW9u IGJhY29u dWxhdG9yeQ== KS4i IGlycmVndWxhcg== Rk9STQ== YXNzZWQ= IGludGVudGlvbmFs IGNvbXBlbnNhdGU= IFNwZWFraW5n IFNldHM= MTUz IGNvbnZlbnRpb25z YmFuZHM= ZW1hZGU= IGVjYw== IFdpbnN0b24= IEFzc2Fzc2lu IEJlbGdpYW4= IGRlcGVuZGVuY2U= IG5pY2hl IGJhcms= IEpheno= IGRpc2FkdmFudGFnZQ== IGdhc29saW5l IDE2NQ== 55qE ZXNzYQ== bW9kdWxl YW5ndWxhcg== T1k= IFRyZWF0bWVudA== aXRhcw== b2xhdGlvbg== IEFybm9sZA== IGZldWQ= IE5lc3Q= IHRoZWF0cmU= ZXdhdGVy IG1pbm9ycw== b2xpY3k= IEhhdmVu ZGl2aXNpb24= IHRydW5r RmFy IFB1bGw= IGNhcHR1cmluZw== IDE4MDA= IFRlZW4= IGV4ZW1wbA== IGNsaW5pY3M= IEJ1cmc= IHN1YnN0aXQ= IHBheWxvYWQ= IExhdg== IFRyb3k= IFdpdG5lc3M= IGZyYWdtZW50cw== IHBhc3N3b3Jkcw== IGdvc3BlbA== IEdpbg== IHRlbmFudHM= b2xpdGg= U2l4 UHJldmlvdXM= IEFnZXM= IERhcndpbg== IGJsYXQ= IGVtcGF0aHk= c21pdGg= YmFn IEVjaG8= IENhbWI= IE1hZGQ= IEJvbw== IHJlZGU= IEJ1cm5pbmc= IHNtb290aGx5 IEFkcmlhbg== IFZhbXBpcmU= IE1vbnN0ZXJz c3RlYW0= U3R5bGU= TWE= cmVh IER3YXI= YWx5c3Q= dXJzb3I= IGVsaW1pbmF0aW9u IGNyeXB0bw== Y2h0 IEV0ZXJuYWw= 4oCmXQ== IFNvcmNl SWxs TkVS IHVo Q29uY2x1c2lvbg== d2FnZQ== IHJlc3Bpcg== IHJlbWluaXM= aGV0aWNhbA== IGd5 IHV0aWxpemVk aWNpZGFs IDE5MDA= IGh1bnRlcnM= IFN3YW4= IFJlYWN0 IHZpc2l0b3I= IFRoYW5rc2dpdmluZw== MzA4 UG9zdHM= IGhpcHM= MTk5Nw== b21lcnM= IGtub2NraW5n IFZlaGljbGU= IHRpbA== IDEzOA== IG1p IEludmVzdGlnYXRpb24= IEtlbnlh IGNhc2lubw== IG1vdGl2ZXM= IHJlZ2Fpbg== cmV4 IHdlZWtlbmRz IHN0YWJiZWQ= Ym9ybw== IGV4cGxvaXRlZA== IEhBVkU= IFRlbGV2aXNpb24= Y29jaw== IHByZXBhcmF0aW9ucw== IGVuZGVhdg== IFJlbW90ZQ== IE1ha2Vy IFByb2R1 IEV2YW4= IGluZm9ybWF0aW9uYWw= IExvdWlzdmlsbGU= MTU0 IERyZWFtcw== IHBsb3Rz IFJ1bm5lcg== IGh1cnRpbmc= IGFjYWRlbXk= IE1vbnRnb21lcnk= bm0= IExhbmM= IEFseg== MjEw ZWxvbmc= IHJldGFpbGVy IGFyaXNpbmc= IHJlYmVsbGlvbg== IGJsb25kZQ== cGxheWVk IGluc3RydW1lbnRhbA== Q3Jvc3M= IHJldGVudGlvbg== IHRoZXJhcGV1dGlj IHNlYXM= IGluZmFudHJ5 IENsaW50 IHByb21wdGluZw== IGJpdGNo IHN0ZW1z IEtyYQ== IHRoZXNpcw== IEJvZw== cnVlZA== IGtpbmdz IGNsYXk= aWZpY2VudA== IFlFUw== IFRoaW5n IEN1YnM= dmV5YXJk ZWxzaA== aW5hcmlseQ== IEV5 IFJvbGxpbmc= IGV2b2x2aW5n SW5kaWE= IHJlY29nbml6ZXM= IGdyYWR1YXRpb24= aXNlcnM= IGZlcnRpbGl0eQ== IE1pbGFu Q29tbWFuZA== IGJveGluZw== IDE5NDM= IGdsdXRlbg== IEVtaXI= IGlkb2w= IGNvbmNlaXZlZA== IENyZWF0aW9u TWVyaXQ= dWRkeQ== dXNzaW9ucw== IExpZXV0ZW5hbnQ= aWV0YWw= IHVuY2hhbmdlZA== IFNjYWxl IENyaW1lYQ== YmFsbHM= YXRvcmlhbA== IGRlcHRocw== IGVtcGlyaWNhbA== IHRyYW5zbQ== IHVuc2FmZQ== bWlzc2libGU= Y29tZm9ydA== MTU2 IG1lY2hhbmlj MDAy bGlucw== IHNtb2tlZA== UG9z IHNsb3dpbmc= IGxhdg== VGV4YXM= IGNoZWF0aW5n IE1ldHJvcG9saXRhbg== ZXRoeWw= IGRpc2NvdmVyaW5n YXNzZQ== IHBlbmNpbA== IFB5b25neWFuZw== IGNsb3NldA== IFNoZWV0 IEVudHJ5 b3VzdGlj IG15c3Q= ZXJhdGU= YXJpYXQ= IG1pbmVyYWxz IG11c2ljaWFu IFB1bA== IE1heg== MjQ5 IHBlcm1pc3Npb25z IGl2 ZW5hcnk= aWNrZXJz IEJpbmc= aGVh ZW5hYmxl IGdyaWV2 IGFzc2VydGVk IENvbG9uZWw= IGFmZmlkYXY= d28= IHNlYXRlZA== IFJpZGU= IHBhaW50aW5ncw== IFBpeA== IDEzNw== aXNoaQ== dW1iYWk= Z290dGVu IEVhcmw= IGlubmluZw== IGNlbnN1cw== IHRyYXZlbGxlZA== IENvbnN1bHQ= MTg1 YmluZA== IHNpbXBsaWNpdHk= IG92ZXJsb29rZWQ= IEhlbHBmdWw= IG1vbmtleQ== IG92ZXJ3aGVsbWluZ2x5 Qmxvb2Q= IEZsaW50 IEphbWE= IFByZXNlbnQ= IFJhZ2U= IFRB cHRpdmU= IHR1cm5vdXQ= d2FsZA== IERvbHBoaW5z IFZQTg== IG9uaW9u IGNyYWZ0aW5n bW1h IE1lcmN1cnk= IGFycmFuZ2U= IGFsZXJ0cw== IE9U emJvbGxhaA== IGdhc2Vz IFJpY2hhcmRzb24= c2Fs bGFy IGZyb3N0 IGxvd2VyaW5n IGFjY2xhaW0= IHN0YXJ0dXBz IEdhaW4= ZXNzbWVudA== IGd1YXJkaWFu 5Lq6 IFBpZQ== IExpbmtz IG1lcml0cw== IGF3YWtl IHBhcmVudGFs IGV4Y2VlZHM= IGlkbGU= IFBpbG90 IGVCYXk= IEFjY2VwdA== aXBlZw== Q2Ft IEtvdA== IHRyYWRlcnM= b2xpdGljcw== dW5rZXI= IFBhbGU= b3Np YW5tYXI= IDE5NDc= IEZlbGw= ZXN0aWFs aXRhdGluZw== R0Y= IFNy aWZ0ZWQ= IGNvbm5lY3Rvcg== IEJvbmU= aWxsZXM= MjYw aG1h IG92ZXJsYXA= IEdpdEh1Yg== IGNsZWFuZXI= IEJhcHRpc3Q= IFdBUw== IGx1bmdz 0YE= IEJVVA== IGNpdGU= IHBpdGNoZWQ= cmVhdG1lbnQ= IHRyb3BoaWVz IE51 Mzg2 IFByaWRl IGF0dGVuZGVlcw== W10= MTc5 IHNwYXRpYWw= IHByaXplcw== IFJlbGlnaW9u IHNob3djYXNl IENhdGVnb3J5 dmlkaWE= VGFyZ2V0 UHJvcGVydHk= Pyw= IGZ1c2lvbg== cGll IFVDTEE= IHNvdW5kdHJhY2s= IHByaW5jZXNz IENhdmFs c2hvdWxk IGxpbWJz QmFja2dyb3VuZA== IGxvbmVseQ== IGNvcmVz IFRhaWw= c2hlZXQ= IDEzMg== UmE= 44Kr IEJvbHQ= IGJvb2tlZA== IGFkbWluaXN0ZXI= IGVxdWFscw== d3k= IG9ic2VydmluZw== IEJhcm9u IEFkb2Jl IHZpcmdpbg== IFNvY2lhbGlzdA== TW92ZQ== Z2hhemk= IExpbmRh MjEy IGJyZXdpbmc= IG1lcmNoYW50cw== YnVyc2U= IGRpdm9y IG1ldGFscw== IE5lcg== IHN1bXM= IEVuZW15 IGVudmlzaW9u IGdyYW50aW5n IEhvbmV5 IFNreXJpbQ== IHNvY2lv Z3JhZGVk IHNlbGVjdGl2ZQ== V0FTSElOR1RPTg== IDE5NDg= IFNpcml1cw== IEdyb3Nz YWN0aXZpdHk= IEl2YW4= IGZ1cmlvdXM= QlNE IFByZXZpb3Vz IHJlc3BvbnNpdmU= IGNoYXJpdGFibGU= IGxlYW5pbmc= IFBldw== IHZpb2xhdGVz XFxcXFxcXFw= IENvbWluZw== d2lyZQ== IHBvZXQ= IHJlc29sdXRpb25z Y29tbWFuZA== IFBvcnR1Z3Vlc2U= IG5pY2tuYW1l IGRlYWY= RmVicnVhcnk= IHJlY29nbmlzZQ== IGVudGlyZXR5 IHNlYXNvbmFs cGxhY2Vk IFRlbGVncmFwaA== IG1pY3JvcGhvbmU= b3VyaW5n IGdyYWlucw== IGdvdmVybmVk IHBvc3Rw IFdhdGVycw== aW5lbWVudA== IHVuZG9jdW1lbnRlZA== IENvbWNhc3Q= IGZveA== IGFzc2F1bHRz cmVvbg== bWFueQ== IEplbmtpbnM= IEFueXdheQ== IGFzc2Vzc21lbnRz IGRvd25z IE1vdXNl IHN1cGVyYg== a3Q= IERvdw== IHRheGF0aW9u NDAx IHNtaWxlcw== IHVuZGVydGFrZW4= IGV4aA== IGVudGh1c2lhc3RpYw== IHR3ZW50 IGdvdmVybm1lbnRhbA== IGF1dG9ub215 IFRlY2hub2xvZ2llcw== IENoYWlu IHByZXZhbGVudA== ZmI= IG5pY290aW5l b2dyYW0= am9i IGF3YWl0aW5n IE1lbnU= IGRlcHV0aWVz a292 aXNob3Bz QnV0dG9u IFNoYW5naGFp IGRpZXNlbA== IER1Y2s= Unlhbg== IFBDcw== TkY= anVyeQ== ZW50ZQ== IGluYWNjdXJhdGU= ZWRkeQ== V2hhdGV2ZXI= IHNob3dj IE5hZA== b2R1cw== ZXRy IHBsYWludGlmZnM= IFdPUg== IEFzc2FuZ2U= IHByaXZhdA== IHByZW1pdW1z IHRhbQ== VVJM IGVsaXRlcw== IFJhbmdlcg== b3R0ZW5oYW0= IEhvZmY= IEF0aGVucw== IGRlZmluaXRl IHNpZ2hlZA== IGV2ZW5seQ== MjEx IEFtYmVy YWtpYQ== IG1haWxpbmc= IGNyYXNoaW5n IENvbmZlZGVyYXRl cnVnZ2Vk V2Fs IERlcHRocw== IGp1dmVuaWxl IHJlYWN0b3I= SW50cm9kdWN0aW9u IERlbHV4ZQ== MTk5NQ== IFNhbmNoZXo= IE1lYWQ= aXZhYmxl Oi0= IFBsYW5uaW5n IFRyYXA= cXVpbg== IFByb3RlY3Q= dmVyZWQ= SW5mb3JtYXRpb24= IGtpZG5leQ== aW5uYW1vbg== bGFz IHBvbGljaW5n IHRvbGVyYXRl IFFp IGJpYXNlZA== Rm9ydA== IEtp c2F2ZQ== IHByaXZpbGVnZWQ= IGJlYXN0cw== IEdsYXM= IENpbmVt IGNvbWViYWNr U3VuZGF5 IGV4dGluY3Rpb24= aG9wcw== IHRyYW5zbWl0 IGRvdWJsZXM= IEZsYXQ= MTY3 IGRpc3B1dGVk IGluanVzdGljZQ== Zm9v VmljdA== cm9sZXVt IEp1bGll Q29udGV4dA== IFJhcml0eQ== aXNzdWU= Q29tcG9uZW50 IGNvdW5zZWxpbmc= YW5uZQ== ZGFyaw== IG9iamVjdGlvbnM= dWlsdA== IGdhc3Q= IHBsYWM= IHVudXNlZA== 44OH IFRyaWFs IEphcw== aGVkcmFs b2Ji IHRlbXBvcmFs IFBSTw== IE5X IEFubml2ZXJzYXJ5 TGFyZ2U= IHRoZXJt IGRhdmlk IHN5c3RlbWlj IFNoaXI= bXV0 IE5lcHQ= YWRkcmVzcw== IHNjYW5uaW5n IHVuZGVyc3RhbmRhYmxl IGNhbnZhcw== Q2F0 IFpvbw== IGFuZ2Vscw== TE8= IFN0YXRlbWVudA== IFNpZw== b3ZhYmxl IEF3YXk= c2hhcmluZw== b2NyYXRz c3RhdGVk IHdlaWdoaW5n Tm9y d2lsZA== QmV5 IGFzdG9uaXNoaW5n IFJleW5vbGRz IG9wZW5lcg== IHRyYWluZXI= IHN1cmdpY2Fs cG4= IGFkanVzdGluZw== d2hlZWw= IGZyb3du ZXJ2YXRpdmU= IHN1c3BlbmQ= V2l0aGlu dGVpbg== IG9ic3RhY2xl IGxpYmVydGllcw== eW1lcw== IHVyYW5pdW0= YW5zb20= YW5vbA== dWJh IExvc3M= IGFyb3Vz IEhlbmRlcnNvbg== V293 c3Bs Y3Vy IMKt IHRoZWlycw== RGFtYWdl IGRvd25sb2FkaW5n IGRpc2Nlcm4= IFN0bw== IEZsYQ== IGhhdGg= IEFq IHVucGxlYXNhbnQ= RXVyb3BlYW4= ZXhwZW5zaXZl IHNjcmVlbnNob3Q= IFVW IGFsbGllZA== IFBlcnNpYW4= IG1vbm9wb2x5 IGF0b20= IFJlZHNraW5z Ij48 IGNhbmNlbGw= IGNpbmVtYQ== MTMx ZmFpcg== IEFsZnJlZA== IGR1Y2s= YXJncw== MjIz IElTSQ== IHNpZ25hbGluZw== aW5hcg== IGxhdWdocw== IGZvcndhcmRz IHJlY2tsZXNz IGxpc3RlbmVycw== YXRpdml0eQ== IHZhc3RseQ== bmFudA== TGVzcw== IEh1bnRpbmc= IFNjaWVudGlmaWM= SVRFRA== IGtuaWdodA== IEhUQw== dXNh dG1w IHJ1ZGU= IExlZ2VuZGFyeQ== IGFyaXNlcw== QmFk IENsYWlt cGVn IHJlYWxpdGllcw== VGhpbms= IMKw IHJvZGU= IHN0cml2ZQ== IGFuZWNk IHNob3J0cw== IGh5cG90aGVz IGNvb3JkaW5hdGVk IEdhbmRoaQ== IEZQUw== UkVE IHN1c2NlcHRpYmxl IHNocmluaw== IENoYXJ0 SGVscA== IGlvbg== ZGVlcA== cmliZXM= IEthaQ== IEN1c3RvbWVy U3VtbWFyeQ== IGNvdWdo d2lmZQ== IGxlbmQ= IHBvc2l0aW9uaW5n IGxvdHRlcnk= IENhbnlvbg== IGZhZGU= IGJyb256ZQ== IEtlbm55 IGJvYXN0cw== IEVuaGFuY2Vk cmVjb3Jk IGVtZXJnZW5jZQ== IGFraW4= IEJlcnQ= aXRvdXM= 4paR IHN0aXA= IGV4Y2hhbmdlZA== b21vcmU= YWxzaA== IHJlc2Vydm9pcg== IHN0YW5kcG9pbnQ= V00= IGluaXRpYXRl IGRlY2F5 IGJyZXdlcnk= IHRlcnJpYmx5 IG1vcnRhbA== bGV2YXJk IHJldmlz Tkk= ZWxv IGNvbmZlc3M= IE1TTkJD IHN1Ym1pc3Npb25z Q29udHJvbGxlcg== IDIwMg== IFJ1dGg= fSk7 IEF6dXJl IC4i MjA2 IE1hcmtldGluZw== IGxhdW5k aWVuY2llcw== IHJlbm93bmVk IFRyb3U= IE5HTw== YmxlbXM= IHRlcnJpZmllZA== IHdhcm5z IHBlcnQ= IHVuc3VyZQ== NDgw YWxleg== dWx0eg== IE91dHNpZGU= IHN0eWw= IFVuZGVyZ3JvdW5k IHBhbmM= IGRpY3Rpb25hcnk= IGZvZQ== cmltaW5hbA== IE5vcndlZ2lhbg== IGphaWxlZA== IG1hdGVybmFs w6ll IEx1Y3k= Y29w Q2hv IHVuc2lnbmVk IFplbGRh IEluc2lkZXI= IENvbnRpbnVlZA== IDEzMw== IE5hcnV0bw== IE1ham9yaXR5 MTY5 IFdv 44KT IHBhc3Rvcg== IGluZm9ybWFs 0L0= YW50aHJvcA== am9pbg== 44GX aXRhdGlvbmFs TlA= IFdyaXRpbmc= Zm4= IEJldmVy MTk1 IHllbGxpbmc= IGRyYXN0aWNhbGx5 IGVqZWN0 IG5ldXQ= IHRocml2ZQ== IEZyZXF1 b3V4 IHBvc3Nlc3Nlcw== IFNlbmF0b3Jz IERFUw== IFNoYWtlc3BlYXJl IEZyYW5jbw== IExC dWNoaQ== IGluY2Fybg== IGZvdW5kZXJz RnVuY3Rpb24= IGJyaWdodG5lc3M= IEJU IHdoYWxl IFRoZWF0ZXI= bWFzcw== IERvbGw= U29tZXRoaW5n IGVjaG9lZA== IEhleA== Y3JpdA== YWZpYQ== IGdvZGRlc3M= IGVsZXZlbg== IFByZXZpZXc= IEF1cm9yYQ== IDQwMQ== dWxzaXZl IExvZ2Fu aW5idXJnaA== IENlbnRlcnM= IE9OTFk= IEFpZA== IHBhcmFkb3g= IGh1cmQ= IExD RHVl Y291cnQ= IG9mZmVuZGVk IGV2YWx1YXRpbmc= IE1hdHRoZXdz IHRvbWI= IHBheXJvbGw= IGV4dHJhY3Rpb24= IEhhbmRz aWZp IHN1cGVybmF0dXJhbA== IENPTU0= XT0= ZG9ncw== IDUxMg== IE1lZXRpbmc= UmljaGFyZA== IE1heGltdW0= IGlkZWFscw== VGhpbmdz bWFuZA== IFJlZ2FyZGxlc3M= IGh1bWlsaQ== YnVmZmVy TGl0dGxl IERhbmk= IE5haw== IGxpYmVyYXRpb24= IEFiZQ== IE9M IHN0dWZmZWQ= YWNh aW5kYQ== cmFwaGlj IG1vc3F1 IGNhbXBhaWduaW5n IG9jY3VweQ== U3F1 cmluYQ== IFdlbA== IFZT IHBoeXNpYw== IHB1bHM= cmludA== b2FkZWQ= RVRG IEFyY2hpdmVz IHZlbnVlcw== aG5lcg== IFR1cmJv IGx1c3Q= IGFwcGVhbGVk cXVleg== aWxpYg== IFRpbW90aHk= IG9tbg== ZHJv IG9ic2Vzc2lvbg== IFNhdmFnZQ== MTk5Ng== R2xvYmFs SmVz MjE0 IHNsaWRpbmc= IGRpc2FwcHJv IE1hZ2ljYWw= IHZvbHVudGFyaWx5 Z2I= YW5leQ== IHByb3BoZXQ= IFJlaW4= IEp1bGlh IFdvcnRo YXVydXM= IGJvdW5kcw== aWV1 KSkp IGNyb3Jl IENpdGl6ZW4= U2t5 IGNvbHVtbmlzdA== IHNlZWtlcnM= b25kbw== SVNB IExlbmd0aA== IG5vc3RhbGc= IG5ld2NvbQ== IGRldHJpbQ== ZW50cmlj Mzc1 IEdF IGF1dG9w IGFjYWRlbWljcw== QXBwRGF0YQ== IFNoZW4= IGlkaW90 IFRyYW5zaXQ= IHRlYXNwb29u V2ls S08= IENvbWVkeQ== Piw= IHBvcHVsYXRlZA== V0Q= IHBpZ3M= IE9jdWx1cw== IHN5bXBhdGhldGlj IG1hcmF0aG9u MTk4 IHNlaXp1cmU= c2lkZWQ= IGRvcA== aXJ0dWFs TGFuZA== IEZsb29y b3NhdXJz Li4uXQ== IGxvcw== IHN1YnNpZGlhcnk= RVk= IFBhcnRz IFN0ZWY= IEp1ZGljaWFyeQ== IDEzNA== IG1pcnJvcnM= IGtldA== dGltZXM= IG5ldXJvbG9n IGNhdg== IEd1ZXN0 IHR1bW9y c2NpbGw= IExsb3lk RXN0 IGNsZWFyZXI= IHN0ZXJlb3R5cGVz IGR1cg== bm90aGluZw== UmVkZGl0 IG5lZ290aWF0ZWQ= LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t MjM1 IGZsb3du IFNlb3Vs IFJlc2lkZW50 IFNDSA== IGRpc2FwcGVhcmFuY2U= IFZpbmNl Z3Jvd24= IGdyYWJz cmls IEluZmluaXRl IFR3ZW50eQ== IHBlZGVzdHJpYW4= IGplcnNleQ== IEZ1cg== IEluZmluaXR5 IEVsbGlvdHQ= IG1lbnRvcg== IG1vcmFsbHk= IG9iZXk= c2VjdXJl aWZmZQ== IGFudGliaW90aWNz YW5nbGVk IEZyZWVtYW4= IEludHJvZHVjdGlvbg== SnVu IG1hcnNo aWNhbnM= IEVWRU5UUw== b2Nob25k V2FsbA== aWN1bHR5 IG1pc2RlbWVhbm9y IGx5 VGhvbWFz IFJlc29sdXRpb24= IGFuaW1hdGlvbnM= IERyeQ== IGludGVyY291cnNl IE5ld2Nhc3RsZQ== IEhvZw== IEVxdWlwbWVudA== MTc3 IHRlcnJpdG9yaWFs IGFyY2hpdmVz MjAz RmlsdGVy IE11bmljaA== IGNvbW1hbmRlZA== IFdhbmQ= IHBpdGNoZXM= IENyb2F0 IHJhdGlvcw== IE1pdHM= IGFjY3VtdWxhdGVk IFNwZWNpZmljYWxseQ== IGdlbnRsZW1hbg== YWNlcmI= IHBlbm4= IGFrYQ== IEZ1aw== IGludGVydmVuZQ== IFJlZnVnZQ== IEFsemhlaW1lcg== IHN1Y2Nlc3Npb24= b2hhbg== ZG9lcw== TG9yZA== IHNlcGFyYXQ= IGNvcnJlc3BvbmRlbmNl IHNoaW55 UHJpb3I= IHN1bGY= IG1pc2VyYWJsZQ== IGRlZGljYXRpb24= KCku IHNwZWNpYWxpc3Rz IGRlZmVjdHM= IEN1bHQ= IFhpYQ== IGplb3BhcmQ= IE9yZQ== QWJpbGl0eQ== IGxlYXI= IGFtYml0aW9ucw== IEJNSQ== IEFyYWJz IDE5NDI= IHByZXNlcnZhdGlvbg== aWZpY2F0ZQ== IGFzaGFtZWQ= bG9zcw== IFJlc3RhdXI= IHJlc2VtYmxl IGVucmljaA== IEtO IENsYW4= ZmxvYXQ= IHBsYXlhYmxl SVRU IGhhcm1vbnk= YXJyaXNvbg== IFdlaW5zdGVpbg== d2VyZQ== IHBvaXNvbmluZw== IENvbXB1dA== IFdvcmRQcmVzcw== bWFqb3I= IFZhbHZl RmFu IFRocm93 IFJvbWFucw== IERlcHJlc3Npb24= YWRvcw== IHRvcnR1cmVk IGJhbGFuY2luZw== Ym90dG9t IGFjcXVpcmluZw== IE1vbnRl YXJkaQ== IGF1cmE= ICMj IFN0YW5kaW5n IEF0bGFz Q0Y= IGludHJpbnM= IEJlbmdoYXpp IGNhbXBpbmc= IHRhcHBlZA== YmxhZGU= c3Ryb3Vz IFJhYmI= IFdyaXR0ZW4= dGlw IE5laWdo c3RlcmRhbQ== IEFsbG93 IEhlYWxpbmc= IFJob2Q= bnVt IGNhZmZlaW5l IFBlcmNlbnQ= IGJvbw== IGFwcGxlcw== MzA1 IHdlbGNvbWluZw== IGFwcGxhdWQ= IGF1c3Rlcml0eQ== wrE= IFJlYWxpdHk= ZWZl 5a4= IHN1Y2tz IHRhYnM= IFBheVBhbA== IGJhY2twYWNr IGdpZnRlZA== YWJ1bGFyeQ== IFNjb3V0 aXJ0ZWVu IGNoaW4= IG9taXR0ZWQ= IG5lZ2F0aXZlbHk= IGFjY2Vzc2luZw== IEVhcm4= IGFtYnVsYW5jZQ== IGhlYWRwaG9uZXM= IDIwNQ== IFJlZnJlc2g= cHJlc2lkZW50 IEtpdGNoZW4= IEVudGVyZWQ= IFNueWRlcg== MDA1 b21pY2Fs IGJvcnJvd2Vk IE5lbQ== IGF2aWF0aW9u IHN0YWxs cmltaW5hdGlvbg== IHVuaWZvcm1z aXRpbWU= IFNpbW1vbnM= ZW5lcmd5 YWJsaXNoZWQ= eXk= cXVhbGlmaWVk IHJhbGxpZXM= IFN0dWFydA== ZmxpZ2h0 IGdhbmdz cmFn IHZhdWx0 bHV4 IENvbXBhcg== IGRlc2lnbmF0aW9u MjA5 IEpvcw== ZG9sbGFy emVybw== IHdlbGxz MzAz IGNvbnN0aXR1ZW50cw== IGhlY2s= IGNvd3M= IGNvbW1hbmRlcnM= IGRpZmZlcmVudGlhbA== IENhdGhlcmluZQ== Mjk5 IHZhbHZl IGJyYWNl IHBlcnNwZWN0aXZlcw== Y2VydA== ZmFjdA== aWN1bGFybHk= IE1jTg== cGxhbmVz IGludHJpYw== IHBlYXM= b3Zhbg== IHRvc3NlZA== cmV0Y2g= IExvcGV6 IHVuZmFtaWxpYXI= ZGVhdGg= IEFwYXJ0 IENoYW5n IHJlbGlldmVk cm9waGU= IGFpcnBvcnRz IGZyZWFr dXRpbA== TWlsbA== IENoaW4= IE93ZW4= bWFsZQ== IEJyb2tlbg== IFdpbmRz cm9i cmlzaW5n IGZpcmVmaWdodGVycw== IGF1dGhvcml0YXJpYW4= IDE0OA== Qml0Y29pbg== ZXh0ZXJuYWw= IGJyb3dzZXJz aWNoZXZlcg== b3JpYW4= IHVuYg== IHBva2U= IFpvdA== TWlk IFBvcHVsYXI= IGNvdmVydA== IGNvbnRyaWJ1dGVz IDY1MA== IGNvbnRlbnRpb24= R2F0ZQ== IGNvbnNvbGVz IGNocm9tb3M= IElY IHZpc3VhbGx5 IEVpc2Vu IGpld2Vscnk= IGRlbGVnYXRpb24= IGFjY2VsZXJhdGU= IFJpbGV5 IHNsb3Bl IGluZG9vcg== aXRpYWxseQ== IGh1Z2VseQ== IHR1bm5lbHM= IGZpbmVk IGRpcmVjdGl2ZQ== IGZvcmVoZWFk dXN0b21lZA== IHNrYXRl TXVzaWM= Z2Fz IHJlY29nbml6aW5n YW1ibw== IG92ZXJ3ZWlnaHQ= IEdyYWRl 2Yo= IHNvdW5kaW5n IGxvY2tpbmc= IFJFTQ== U3RvcmU= IGV4Y2F2 IExpa2V3aXNl IExpZ2h0cw== IGVsYm93 IFN1cHBseQ== d2lj IGhhbmRzb21l MTk5NA== Q29sbA== IGFkZXF1YXRlbHk= IEFzc29jaWF0ZQ== IHN0cmlwcw== IGNyYWNrZG93bg== IG1hcnZlbA== IEt1bg== IHBhc3NhZ2Vz QEBAQA== IFRhbGw= IHRob3VnaHRmdWw= bmFtZXNl IHByb3N0aXR1dGlvbg== YnVzaW5lc3M= IGJhbGxpc3RpYw== cGVyc29uYWw= Y2ln aXphdGlvbmFs Um91bmQ= IMKgIMKgIMKgIMKg IENvbGVtYW4= IGFkbWl0dGluZw== IFBsdWc= IGJpdGNvaW5z IFN1eg== IGZhaXJuZXNz IHN1cHBsaWVy IGNhdGFzdHJvcGhpYw== IEhlbGVu b3F1 TWFyYw== IEFydGljbGVz Z2ll IGVuZGFuZ2VyZWQ= IGRlc3Rpbnk= IFZvbHQ= b2xpYQ== YXhpcw== IGNoZWF0 IHVuaWZpZWQ= SUNP cXVvdGU= MzAy IFNlZA== IHN1cHByZXNzaW9u IGFuYWx5emluZw== IHNxdWF0 IGZpZ3VyaW5n IGNvb3JkaW5hdGVz IGNodW5rcw== IDE5NDY= IHN1YnA= IHdpa2k= IEZvcmJlcw== IEp1cGl0ZXI= IEVyaWs= aW1lcg== IENvbW1lcmNpYWw= XCk= IGxlZ2l0aW1hY3k= IGRlbnRhbA== IE1lYW4= IGRlZmljaXRz NTUw T3JpZ2luYWxseQ== IEhvcnJvcg== IGNvbnRhbWluYXRpb24= bGxhaA== IGNvbmZpc2M= IENsYXJl VEI= IEZhaWxlZA== YW5lZA== IHJ1bGVy IENvbnRyb2xsZXI= IGZlbWluaXN0cw== Rml4 Z2F5 MjA3 IHJhYmJpdA== VGhpcmQ= b3dudG93bg== IGdsdWU= IHZvbGF0aWxl IHNoaW5pbmc= IGZvbGw= IGltcGFpcmVk IHN1cGVycw== 5og= IGNsdXRjaA== mumGkg== IHByb2xldA== ICgh IHllbGxlZA== IEtpZXY= IEVybg== IFNob2Nr S0I= IHNpdHVhdGVk cXVlcnk= IE5hcw== IGFubmV4 Y2hhcmFjdGVy IEhvbGlkYXk= IGF1dG9tYXRpb24= IEppbGw= IFJlbWFzdGVyZWQ= IGxpbmVt IHdpbGRlcm5lc3M= IEhvcml6b24= IEd1aW5lYQ== QVo= IG1haW5sYW5k IHNlY3JlY3k= TEVBU0U= IHB1bms= IFByb3ZpbmNl KCks U3BlZWQ= IGhhbmRpbmc= IFNlYmFzdA== U2ly cmFzZQ== IGpvdXJuYWxz IGNvbmdlc3Q= IFR1dA== aXJyZWw= IHNjaGl6b3BocmVuaWE= IG1pc29neW4= aGVhbHRoeQ== SXJvbg== IHJlYWN0ZWQ= LSQ= MjUy IHBsdXJhbA== IHBsdW0= IGJhcmdhaW4= IGdyb3VuZGVk ZmluZGVy IGRpc3Nl IExheg== T09E IGF0cm9j RmFjdG9yeQ== IG1pbmlvbnM= IG9yaQ== IEJyYXZl IFBSRQ== IE15YW5tYXI= IEhvZA== IGV4cGVkaXRpb24= IGV4cGxvZGU= IENvb3Jk IGV4dHI= IEJyaWVm IEFESEQ= IGhhcmRjb3Jl ZmVlZGluZw== IGRpbGU= IEZydWl0 IHZhY2NpbmF0aW9u IE1hbw== b3NwaGVyZQ== IGNvbnRlc3Rz LXw= IGZyZW4= aXNwaGVyZQ== Um9t IFNoYXJw IFRyZW5k IGRpc2Nvbm5lY3Q= 4oCi4oCi IHBlcnNlY3V0aW9u RWFydGg= IGhlYWx0aGllcg== Mzg0 IGNvYg== IFRyaW5pdHk= T1dT QU5O IHNwZWNpYWx0eQ== IGdydQ== IGNvb3BlcmF0aXZl d2h5 U3RhcnRpbmc= IElzc3Vlcw== c3RyZQ== ZW5zb3I= IDE4NQ== QWR2 IT8= IFJldmVs ZW1pYQ== IEh1bGs= IGNlbGVicmF0aW9ucw== IFNvdQ== cmF1ZA== IEtsZWlu IHVucmVhbA== Y29udGV4dA== IHBhcnRuZXJzaGlwcw== IGFkb3B0aW5n dGljYWw= IHNwbGFzaA== IEhlemJvbGxhaA== Y2F0ZWdvcnk= Y3ljbG9w eHRvbg== IERvdA== dXJkeQ== dHo= IGVudmVsb3Bl IE5M 4pU= IHdoZXJlaW4= U3BlYw== MTg0 IHRlbGV2 YWxpYXRpb24= IG15dGhz 5bA= IHJpZ29yb3Vz IGNvbW11bmljYXRpbmc= IG9ic2VydmVy IHJlaGU= IFdhc2g= IGFwb2xvZ2l6ZWQ= IFRpbg== IGV4cGVuZGl0dXJlcw== d29ya2Vycw== ZG9jdW1lbnQ= IGhlc2l0YXRl IExlbmlu IHVucHJlZGljdGFibGU= IHJlbmV3YWw= Y2xlcg== b2tpYQ== IENPTlQ= IHBvc3RzZWFzb24= VG9rZW5z IGV4YWNlcmI= IGJldHRpbmc= IDE0Nw== IGVsZXZhdGlvbg== V29vZA== IFNvbG9tb24= MTk0 MDA0 b3V0cHV0 IHJlZHVuZA== IE11bWJhaQ== IHBI IHJlcHJvZHVjZQ== IER1cmF0aW9u TUFY IGJvZw== Q0JT IEJhbGFuY2U= IFNndA== IFJlY2VudA== IGNk IHBvcHBlZA== IGluY29tcGV0 cHJvcA== YXlhbg== Z3V5 UGFjaWZpYw== IHR5cg== IHt7 IE15c3RpYw== IERhbmE= IG1hc3R1cmI= IGdlb21ldHJ5 w6I= IENvcnJlY3Q= IHRyYWplY3Rvcnk= IGRpc3RyYWN0ZWQ= IGZvbw== IFdlbHNo THVj bWl0aA== IHJ1Z2J5 IHJlc3BpcmF0b3J5 IHRyaWFuZ2xl IDIxNQ== IHVuZGVyZ3JhZHVhdGU= IFN1cGVyaW9y Y2hhbmdpbmc= Xy0= IHJpZ2h0bHk= IHJlZmVyZWU= IGx1Y3JhdGl2ZQ== IHVuYXV0aG9yaXplZA== IHJlc2VtYmxlcw== IEdOVQ== IERlcmJ5 IHBhdGh3YXlz IExlZA== IGVuZHVyYW5jZQ== IHN0aW50 IGNvbGxlY3Rvcg== RmFzdA== IGRvdHM= IG5hdGlvbmFscw== IFNlY3VyaXRpZXM= IHdoaXA= UGFyYW0= IGxlYXJucw== TWFnaWM= IGRldGFpbGluZw== bW9vbg== IGJyb2FkY2FzdGluZw== IGJha2Vk MjY1 aG9sbQ== IFNhaA== IEh1c3NlaW4= IENvdXJ0ZXN5 MTc0 IDE0Ng== IGdlb2dyYXBoaWM= cGVhY2U= IGp1ZGdpbmc= IFN0ZXJu QnVy IHN0b3J5bGluZQ== R3Vu IFN0aWNr MjQ1 MzA3 44K044Oz IEFkbWluaXN0cmF0b3I= IGJ1cm50 IHBhdmU= Y2hvZXM= RXhlYw== IGNhbXB1c2Vz UmVzdWx0 IG11dGF0aW9ucw== IENoYXJ0ZXI= IGNhcHR1cmVz IGNvbXBhcmVz IGJhZGdl U2NpZW50 IGVyYWQ= aWVyeQ== b2k= ZXR0ZXM= IEVzdGF0ZQ== IHN0cmFw IHByb3VkbHk= IGZyaWVk IHdpdGhkcmF3bg== IFZveQ== cGhvbnk= SXRlbXM= IFBpZXJjZQ== YmFyZA== IGFubm90YXRpb24= YW50b24= aWxsb24= SW1wcm8= Li4uKQ== IGhhcHBpZXI= LS0tLS0t YWRqdXN0 IHN0YWZmZXJz IGFjdGl2aXNt IHBlcmY= IGFscmlnaHQ= TmVlZA== IGNvbW1lbmNl IG9waW9pZA== IEFtYW5kYQ== RXM= IFBhcnM= IEthdw== V29ya3M= MjQ4 IGluZG8= dGM= ZW5kYW50 IE1vdG8= IGxlZ2FsaXphdGlvbg== T1RF IHRhc2tlZA== IHRzcA== IEFDVElPTlM= MTY2 IHJlZnJlc2hpbmc= IE5S IFBlcmV6 IGluZnJpbmdlbWVudA== U1k= TGlzdGVu aW5uaW5n a3U= IHJvdGF0ZQ== cHJvZ3JhbQ== YXJhaA== RGVzaWdu ICjCow== IHN0b3Jpbmc= IHdhcnJhbnRz IGp1ZGdlbWVudA== IEJyaXN0 dXN1YWxseQ== cGhvdG8= IFJhbg== IFBpbmU= IG91dHJhZ2VvdXM= IFZhbGVudGluZQ== bHVlbmNl IEV2ZXJ5Ym9keQ== QWx0ZXJu IHJlbGV2YW5jZQ== IHRlcm1pbmF0ZWQ= IGRlc3NlcnQ= IGZ1bGZpbGxlZA== IHByb3NlY3V0ZWQ= IFdvcmRz IG1pZ3JhbnQ= IGN1bHRpdmF0aW9u w4PDgsODw4LDg8OCw4PDgsODw4LDg8OCw4PDgsODw4LDg8OCw4PDgsODw4LDg8OCw4PDgsODw4LDg8OCw4PDgg== aWRlbGl0eQ== IFZlcm4= IExvZ2lu IG1ldGFwaG9y IFRpcA== IHJlY3J1aXRz IFBpZw== cmliaW5n IGVudGh1c2lhc3Rz ZXhwZXI= IGZyaWdodGVuaW5n IEhhaXI= YW5zb24= c3RyYXRl IGhp SGVpZ2h0 IG93bmluZw== bm9uZQ== IGRpc2xpa2U= IGtuaXZlcw== cGhlcmQ= IGxvdWRseQ== IEFQSXM= RGlzcGxheQ== IExhYw== IFVTUw== YWJs dmVyYWdlcw== SmV3 IDE3Mg== IEhpc3RvcmljYWw= YXRvb24= IFBoeXNpY3M= aW50ZXJu IHdhcm10aA== IHRvcHA= RE0= IGd1bm1hbg== IGVtcGVyb3I= b2Rp 44Oj aW5hdG9yeQ== IFJpYg== IDEzMQ== IFNhdHVybg== IFNoaW5pbmc= IHdha2luZw== UXVvdGVz IGNvbWVkaWFu ZW5iZXJn wr0= IGJlbGlldmVycw== IHBhcGVyd29yaw== Y3VzdG9t IGxldg== IGxhbWVudA== IHBvdXJpbmc= MjIy cG9saXRpY2Fs IFN1cHBsZW1lbnQ= bWFpZA== IGNydWVsdHk= IHRyZWFk eXNpY3M= QXc= cml0ZXM= IG1vZGlmaWVy IFBvc2l0aW9u QWRhbQ== bGI= dWJz IGltcGVyZmVjdA== IGNsdXN0ZXJz IEVuZ2luZWVy IENoZXJyeQ== IGluYXVndXJhdGlvbg== IFNhdQ== IGVtYm9kaW1lbnQ= IFVuY2xl IG92ZXJy IGV4cGxvc2lvbnM= Y3VsZQ== IFByaW5jZXRvbg== IEFuZHJlYQ== IGluY29ycmVjdGx5 IGVhcm5lc3Q= IHBpbGdy IFNwcmludA== IHNsZWV2ZQ== IGhlYXJz IEFtYXppbmc= IGJyb3dzaW5n YWdpbg== IGhvbWVsYW5k IGhhdw== IGRpdmluZw== aXN0ZXJlZA== MTc4 IGJhcmdhaW5pbmc= IEFyY2FkZQ== IGRlbGVnYXRl dGVyc29u Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLg== IEphY2tzb252aWxsZQ== Mjc1 IHN0YWdu IGFkYW0= IFNoZXJtYW4= Q0I= IHN1YnVyYg== IEZvb2Rz IGNvbnZlcnRpbmc= IEFyaXN0 IGNoYW1iZXJz bG92ZQ== IGFtaW5v IEdhbg== IG1hZG5lc3M= bWM= IFVTRQ== ZGVmaW5lZA== IHVsdHI= aW5kdXN0 IHdvbHZlcw== bGFuY2U= QWRkaXRpb25hbGx5 IGNyYWNrcw== YXNpYQ== IFJlYXNvbg== IFB1bXA= IGFjY2lkZW50YWw= IExhc2Vy IFJpZA== IGluaXRpYWxpemVk ZWxsaQ== IHVubmFtZWQ= IG5vdW4= IFBhc3NlZA== IGhvc3RhZ2U= IEV0aGlvcA== c2hpcnRz IHVucmVs IEVtYmFzc3k= IDE5NDE= IGF0b21z IHB1cnBvcnRlZA== MTY0 IEZp IGdhbGxvbnM= IE1vbmljYQ== IHBn ZW5tZW50 IHNvcnRlZA== IEdvc3BlbA== IGhlaWdodHM= IHRyYWNlZA== IHVuZGVyZ29pbmc= U2hlbGw= IHNhY2tz IHByb3BvcnRpb25z IGhhbGx1Yw== Rm9udA== YWNldA== IHdhcm1lcg== IElOVEVS IGdyYWJiaW5n UGx1Zw== IHJlYWxpemF0aW9u IEJ1cmtl IGVuY2hhbnQ= QVRFUg== IFNlZWQ= IGFidW5kYW50 Rk0= IGNpdmlj VnM= aXNp IHZvdw== IHJlcGVy IFBhcnRuZXJzaGlw IHBlbmV0cmF0aW9u IGF4ZQ== IHNoYXR0ZXJlZA== IFpvbWJpZXM= IHZpbnls IEFsZXJ0 ZW9u IG9ibGlnZWQ= IElsbHVzdA== IFBsYXph IEZyb250aWVy IGRhdmlkamw= IFNlcmlhbA== IEhhdg== IE51dHJpdGlvbg== Qmk= IOKWiA== IEpheXM= bGludXg= IGh1cnJ5 IHZveQ== IGhvcGVsZXNz IFN0ZWFsdGg= IOOB ZXNzb3Jz dHRsZQ== Ym9yZw== IFNhZmFyaQ== ZmVsbA== IHdhcnk= ZHVl IEFib3Zl SGE= RUxM IG5vdG9y IFdvbg== VG9v IG9jY3VwYXRpb25z IHBvc3Nlc3Npb25z IGludml0aW5n IHByZWRhdG9ycw== IGFjY2VsZXJhdGVk IDE1Nw== dXRlcnRl IEN1YmU= ZWFzdA== YWNjb3VudA== R2l2ZQ== IHRyYW5zcGxhbnQ= cmVkaWVudHM= aWRhYmxl IHNjcmVlbnNob3Rz IEd1bmQ= IEZT IHRyYXZlbGVycw== IHNlbnNvcnk= IEZpYXQ= IFJvY2tldHM= jos= X3s= RnJpZW5k IGNoYXJtaW5n QUxT IGVuam95bWVudA== bXBo IDUwMDA= IFJFRw== 2YY= Ymlh IGNvbXBpbGF0aW9u cm9zdA== IFZQ IFNjaG5l MjAxOQ== IGNvcHlpbmc= TU9SRQ== IEZsb3Jl ZmFsbHM= MjE1 dG90YWw= IGRpc2NpcGxlcw== ZG91Ymxl IGV4Y2VlZGluZw== IHNtYXNoZWQ= IGNvbmNlcHR1YWw= IFJvbWFuaWE= IEJyZW50 IElDRQ== IFRvdQ== IGdyYXA= IG5haWxz MTg5 44OY IHByb2N1cmU= ZXVy IGNvbmZpcm1pbmc= IENlYw== YXdp IEVkZW4= IG5n IGVuZ2luZWVyZWQ= YXRpY3M= IGhvb2tlZA== IGRpc2d1c3Rpbmc= IE11cmRlcg== 44K/ TGlicmFyeQ== IDE2OA== QWxtb3N0 aGVtYXRpYw== TWVudQ== IE5vdHJl IEp1cg== IGtpZG5hcHBlZA== IGhhY2tlcg== IEphZGU= IGNyZWVweQ== IGRyYXdpbmdz IFNwb25zb3I= IGN5Y2xpc3Rz IEdvYmxpbg== IG9wdGltaXplZA== IHN0YWdlZA== IE1jRA== YmV0d2Vlbg== QWdl ZW5v U2V4 IFdpZGU= bmluZ3M= YXZpcw== IGluY2FwYWJsZQ== IEtvYg== IHJld2FyZGluZw== IExvbmU= b2xlc2NlbnQ= IGNvbnRyYWN0ZWQ= IHN0aWNreQ== Sm9zZQ== QmFsbA== ZmVzdA== IElucHV0 IFJlY2VudGx5 IHRvbWF0 c3F1YXJl QXBwbGljYXRpb24= IG5pdHJvZ2Vu IGR1cGxpY2F0ZQ== IFJlY29u IERlYXI= TG9uZG9u IGludHJh IGRvY2s= IG91dHJlYWNo IE1pbGxpb24= IG1hbW1hbHM= YW1wdG9u VkFM IHNuYXBz IGRvcw== IFdob2xl IFJlYWR5 VHJ5 IFdpbm5pcGVn ZWFyYW5jZQ== IGluY3VycmVk cmVuY2hlZA== IE5TVw== aWxvdA== cmFpbmU= IGN1YmU= Z290 IHJ1bndheQ== ZXRlcm1pbmVk IEhhd2tz IHN1cnZpdm9y IFdpc2g= IERpbg== IERFRg== IFZhdWx0 MTg3 IG11c2hyb29tcw== IGNyaXNw YmV5 IERpc2NvdmVyeQ== IGRldmVsb3BtZW50YWw= IHBhcmFkaWdt IGNoYW90aWM= IFRzdQ== IDMzMw== Ym9ucw== IGJhY3RlcmlhbA== IGNvbW1pdHM= IGNvc21pYw== IG1lZ2E= b2NhdGl2ZQ== IFBhaW50 b3Bob2JpYw== IHZhaW4= IGNhcnZlZA== IFRoaWVm IEd1bA== b3dzaGlw IGNpdGVz IEVkaW5idXJnaA== IGRpbWluaXNoZWQ= IGFja25vd2xlZGdlcw== IEtpbGxz IG1pY3Jvdw== IEhlcmE= IHNlbmlvcnM= IHdoZXJlYnk= SG9w YXRyb24= IHVuYXZhaWxhYmxl IE5hdGU= IDQ4MA== IHNsYXRlZA== IFJlYmVjY2E= IEJhdHRlcnk= IGdyYW1tYXI= IGhlYWRzZXQ= IGN1cnNvcg== IGV4Y2x1ZGluZw== YW55ZQ== YXVuZGVyaW5n ZWJpbg== IGZlYXNpYmxl IFB1Ymxpc2hpbmc= IExhYnM= IENsaWZm IEZlcnJhcmk= IHBhYw== dmlzaWJsZQ== bWFya2Vk cGVsbA== IHBvbGl0ZQ== IHN0YWdnZXJpbmc= IEdhbGFjdGlj IHN1cGVyc3Q= IHBhcmFu IE9mZmljZXJz 44CB IHNwZWNpZmljcw== dWx1cw== MjM5 IFBhc3Rl QU1Q IFBhbmFtYQ== IERlbGV0ZQ== YW5ndWFyZA== cmVzdHJpYWw= IGhlcm9pYw== IER5 2KfZhA== IGluY3VtYmVudA== IGNydW5jaA== dHJv IHNjb29w IGJsb2dnZXI= IHNlbGxlcnM= dXJlbg== IG1lZGljaW5lcw== IENhcHM= IEFuaW1hdGlvbg== b3h5 IG91dHdhcmQ= IGlucXVpcmllcw== MjI5 IHBzeWNob2xvZ2lzdA== IFNhc2s= ZXZpbA== IGNvbnRhbWluYXRlZA== 44Ko aGVyZW5jZQ== IGJyYW5kZWQ= IEFiZHVs emg= IHBhcmFncmFwaHM= IG1pbnM= IGNvcnJlbGF0ZWQ= ZXJi IGltcGFydA== IG1pbGVzdG9uZQ== IFNvbHV0aW9ucw== b3RsZQ== IHVuZGVyY292ZXI= IG1hcmNoZWQ= IENoYXJnZXJz ZmF4 IFNlY3JldHM= IHJ1dGg= d2VhdGhlcg== IGZlbWluaW5l IHNoYW0= IHByZXN0aWdpb3Vz aWdnaW5z IHN1bmc= aGlzdG9yeQ== ZXR0bGU= Z2dpZQ== IG91dGRhdGVk b2xhbmQ= IHBlcmNlcHRpb25z IFNlc3Npb24= IERvZGdlcnM= dWo= IEVORA== RG9j IGRlZmljaWVuY3k= R3JhbmQ= IEpva2Vy IHJldHJvc3BlY3Q= IGRpYWdub3N0aWM= IGhhcm1sZXNz IHJvZ3Vl IEF2YWw= RXF1 IHRyYW5zYw== IFJvYmVydHNvbg== IERlcGVuZGluZw== IEJ1cm5z aXZv IGhvc3RpbGl0eQ== RmVhdHVyZXM= k5g= IGRpc2NvbWZvcnQ= IExDRA== c3BlY2lmaWVk IEV4cGVjdA== MzQw IGltcGVyYXRpdmU= IFJlZ3VsYXI= Q2hpbmVzZQ== IHN0YXRld2lkZQ== IHN5bW0= IGxvb3Bz IGF1dHVtbg== Tmljaw== IHNoYXBpbmc= IHF1b3Q= IGNoZXJyeQ== IENyb3NzcmVm 6Kaa6YaS U3RhbmRhcmQ= aGVlZA== IERlbGw= IFZpZXRuYW1lc2U= IG9zdA== IFZhbGt5cmll T0E= QXNzYWQ= IHJlYm91bmQ= IFRyYWZmaWM= cGxhY2Vz 5pg= IEJ1Yw== MTcy IHNoZWx0ZXJz IGluc2lzdGluZw== IENlcnRhaW5seQ== IEtlbm5ldGg= IFRDUA== IHBlbmFs IFJlcGxheQ== aGVhcmQ= IGRpYWxlY3Q= aXph IEZZ aXRjaGVy IERM IHNwaXJhbA== IHF1YXJ0ZXJiYWNrcw== IGh1bGw= IGdvb2dsZQ== IHRvZGQ= IFN0ZXJsaW5n IFBsYXRl IHNweWluZw== bWJvbA== IFJlYWxt IFByb2NlZA== IENyYXNo IHRlcm1pbmF0ZQ== IHByb3Rlc3Rpbmc= Q2VudGVy Z3VpZGVk IHVuY292ZXI= IGJveWNvdHQ= IHJlYWxpemVz c291bmQ= IHByZXRlbmRpbmc= IFZhcw== MTk4MA== IGZyYW1lZA== IDEzOQ== IGRlc2NlbmRlZA== IHJlaGFiaWxpdGF0aW9u IGJvcnJvd2luZw== IEJ1Y2g= IGJsdXI= Um9u IEZyb3plbg== ZW56YQ== Q2hpZWY= IFBvb3I= IHRyYW5zbGF0ZXM= TUlO IDIxMg== SkVDVA== IGVydXB0ZWQ= IHN1Y2Nlc3Nlcw== U0VD IHBsYWd1ZQ== IGdlbXM= ZG9tcw== IHN0cmV0Y2hlcw== IFNweQ== IHN0b3J5dGVsbGluZw== Q3JlZGl0 IFB1c2g= IHRyYWN0aW9u IGluZWZmZWN0aXZl IEx1bmE= IHRhcGVz IGFuYWx5dGljcw== ZXJjaXNl IHByb2dyYW1tZXM= IENhcmJvbg== IGJlaG9sZA== aGVhdnk= IENvbnNlcnZhdGlvbg== IEZJUg== IHNhY2s= dGVybWlu cmlja3M= IGhvdXNlZA== IHVudXN1YWxseQ== SWNl IGV4ZWN1dGluZw== IE1vcm9j ZWRheQ== IGVkaXRpb25z IHNtYXJ0ZXI= IEJB IG91dGxhdw== IHZhbmlzaGVk aWJh QUxTRQ== IFNpbHZh MjM4 Q291bGQ= IHBoaWxvc29waGVy IGV2YWN1YXRlZA== U2VjcmV0 MTQy IHZpc2Fz 44Ks IE1hbHQ= IENsZWFybHk= IE5pZ2Vy IENhaXJv IEZpc3Q= Mzgw IFhNTA== YXV0bw== aXRhbnQ= IHJlaW5mb3JjZWQ= UmVjb3Jk IFN1cnZpdm9y R0h6 IHNjcmV3cw== cGFyZW50cw== IG9jZWFucw== bWFyZXM= IGJyYWtlcw== dmFzaXZl IGhlbGxv IFNJTQ== cmltcA== IG9yZQ== IEFybW91cg== MjQ3 IHRlcnJpZmlj IHRvbmVz MTQx IE1pbnV0ZXM= RXBpc29kZQ== IGN1cnZlcw== IGluZmxhbW1hdG9yeQ== IGJhdHRpbmc= IEJlYXV0aWZ1bA== TGF5 IHVucG9w dmFibGU= IHJpb3Rz IFRhY3RpY3M= YmF1Z2g= IENvY2s= IG9yZ2FzbQ== IFNhcw== IGNvbnN0cnVjdG9y ZXR6 R292 IGFudGFnb24= IHRoZWF0 IGRlZWRz aGFv Y3V0cw== IE1jQ2w= IHVt IFNjaWVudGlzdHM= IGdyYXNzcm9vdHM= eXNzZXk= Il09Pg== IHN1cmZhY2Vk IHNoYWRlcw== IG5laWdoYm91cnM= IGFkdmVydGlz b3lh IG1lcmdlZA== VXBvbg== IGdhZA== IGFudGljaXBhdGU= QW55d2F5 IHNsb2dhbg== IGRpc3Jlc3BlY3Q= SXJhbg== IFRC YWN0ZWQ= IHN1YnBvZW4= bWVkaWF0ZWx5 T09PTw== IHdhaXZlcg== IHZ1bG5lcmFiaWxpdGllcw== b3R0ZXN2aWxsZQ== IEh1ZmZpbmd0b24= Sm9zaA== IERI TW9uZGF5 IEVsbGVu S25vdw== eG9u aXRlbXM= MjI4 IGZpbGxz IE5pa2U= IGN1bXVsYXRpdmU= YW5kYWxz SXI= IOw= IGZyaWN0aW9u aWdhdG9y IHNjYW5z IFZpZW5uYQ== bGRvbQ== IHBlcmZvcm1lcnM= UHJpbQ== IGJpZGRpbmc= TXVy IGxlYW5lZA== IFByaXg= YWxrcw== IFvigKZd IFR3aXRjaA== IERldmVsb3Blcg== IEdpcg== IGNhbGxiYWNr QWJzdHJhY3Q= IGFjY3VzdG9tZWQ= IGZyZWVkb21z IFBH dXJhY3k= IGx1bXA= aXNtYW4= LCwsLA== MTk5Mg== IFJFRA== IHdvcm0= TWF0Y2g= IFBsYXRpbnVt SUo= IE93bmVy VHJpdmlh Y29tcGw= IG5ld2Jvcm4= IGZhbnRhcw== T3du IDE5NTk= IHN5bXBhdGg= IHViaXF1 IG91dHB1dHM= IGFsbGV2 IHByYWc= S2V2aW4= IGZhdm9ycw== IGJ1cmlhbA== IG51cnQ= c29sZXRl Y2FjaGU= IDE1Ng== IHVubG9ja3M= dGVjaG4= TWFraW5n IGNvbnF1ZXI= YWRpYw== 5pY= IGVsZg== IGVsZWN0b3JhdGU= IEt1cmRz IFN0YWNr IFNhbXVyYWk= IOKYhQ== IHt9 IFNhaWQ= IEZhbGxvdXQ= IGtpbmRuZXNz IEN1c3RvbXM= IEJvdWxldmFyZA== IGhlbGljb3B0ZXJz b3RpY3M= IFZlZ2V0 Y29tbWVudA== IGNyaXRpY2lzZWQ= IHBvbGlzaGVk IFJlbWl4 IEN1bHR1cmFs IHJlY29ucw== IGRvaQ== YXRlbQ== U2NyZWVu IGJhcnJlZA== Q29tbWVudHM= IEdlbmVyYWxseQ== IHNsYXA= NzIw VmFyaQ== cGluZQ== IGVtcHQ= IGhhdHM= IFBsYXlpbmc= bGFi YXZlcmFnZQ== Zm9ybXM= IENvdHRvbg== IGNhbnM= IERPTg== IFNvbWFsaWE= Q3J5cHQ= IEluY3JlYXNlcw== RXZlcg== bW9kZXJu IHN1cmdlb24= MzAwMA== IHJhbmRvbWl6ZWQ= PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ== QmVybg== aW1wbA== IENPUg== IHByb2NsYWlt dGhvdXNl IHRvZXM= IGFtcGxl IHByZXNlcnZpbmc= IGRpc2JlbA== Z3JhbmQ= QmVzaWRlcw== IHNpbGs= IFBhdHRlcm4= aG0= IGVudGVycHJpc2Vz IGFmZmlkYXZpdA== IEFkdmlzb3J5 IGFkdmVydGlzZWQ= IFJlbGlnaW91cw== c2VjdGlvbnM= cHN5Y2g= IEZpZWxkcw== YXdheXM= IGhhc2h0YWc= IE5pZ2h0bWFyZQ== IHZhbXBpcmU= IGZvcmVuc2lj cm9zc292ZXI= bmFy IG5hdnk= IHZhY2FudA== IER1ZWw= IGhhbGx3YXk= IGZhY2Vib29r aWRlbnRhbGx5 IE5SQQ== IG1hdHQ= IGh1cnJpY2FuZQ== IEtpcmJ5 IFB1enpsZQ== IHNraXJ0 b3VzdA== ZHVsbGFo IGFuYWxvZ3k= aW5pb24= IHRvbWF0b2Vz IE5W IFBlYWs= IE1leWVy IGFwcG9pbnRtZW50cw== IG1hc2M= IGFsbGV5 cmVoZW5k IGNoYXJpdGllcw== IHVuZG8= IGRlc3RpbmF0aW9ucw== IFRlc3Rpbmc= Ij48Lw== IGRlc3RpbmVk IGltcGxlbWVudHM= IEhhcm9sZA== UkVDVA== IG9wdGltaXphdGlvbg== IGtpbG9tZXRyZXM= IGNtZA== IGltcGFpcm1lbnQ= IHVuc3VjY2Vzc2Z1bA== IHN3aWZ0bHk= IEdsYXNnb3c= YXJ0ZW4= IFNoYXJlcw== IEFuc3dlcg== IEFsYnVt IG51dHJpdGlvbmFs 44OW IEZ1dA== IGJsb2M= IE5GQw== IHdob2xlc2FsZQ== IENX IG5lZ2xlY3RlZA== IGxhdW5jaGVy IGFubm91bmNlbWVudHM= T1VMRA== Y29tYg== IHJvdGF0aW5n IHJlc3Rz IFRpY2tldA== Y2hlZGVs TG91 IFZpYw== ICIn IHRlbXBsYXRlcw== IHJlcGxhY2Vz QXJj Ojo6Og== IEdpbGJlcnQ= IGlsbG5lc3Nlcw== IHNjaGVkdWxlcw== IGhldGVyb3NleHVhbA== TElORQ== IGhlcmVpbg== IGNvZXJj IGRlY3JlYXNpbmc= IGRlcG9ydGF0aW9u c3Vkbw== IEluZGlnZW5vdXM= IHdlaWdocw== QWxvbmc= Jyk7 IEJlbmdhbHM= NzA3 IGpvaW50cw== dmVydHM= IDE0OQ== bmFpcmU= IHNpbXBsZXN0 IGxvcmU= MTA4MA== ZmljdGlvbg== IERhdGFiYXNl IHJlc2VydmF0aW9u IHNvdQ== IHNhbmN0dWFyeQ== YXVkaW8= YXBsZQ== IHZlZ2V0YXJpYW4= IGFudGljaXBhdGlvbg== bWljcm8= IGVuZHVyaW5n IGRlcGFydGVk IHNpZGV3YWxr IHByb2hpYml0cw== IEZvbnQ= IGNvbXB1dGU= IFNlY3Q= IDE1OA== QmF0dGxl IGJvbWJlcg== IGRpc3RyYWN0aW9u IGVuZHVyZWQ= IHByYWN0aXRpb25lcnM= IGRpc3R1cmJlZA== IGRyYW5r b3JkZXJlZA== IHN1cnByaXNlcw== c2VhdA== U2VjdXJpdHk= IFdpc2RvbQ== b2dv IHN1YnBhcmFncmFwaA== IFBlbmluc3VsYQ== IE9yaWdpbnM= aXJlbg== IFBhdg== aWdnbGU= IGdyYXRpdHVkZQ== IEdyYXZpdHk= b3ZlcnR5 aW1hbg== Y3Ry IENhZXNhcg== Y291bGQ= Z2Vt IHNraWVz IGNoYW1w IGFncmVlaW5n RmFtaWx5 RGl2 MTc2 IG1lc3N5 dW1wdGlvbg== RmVkZXJhbA== ZXJubw== IENoYXQ= QmV5b25k IGRldm90ZQ== IFdhbHNo IGR1bXBlZA== IGFjY3VtdWxhdGlvbg== c3RhZA== aGliaXRpb24= IHNtb2tlcnM= IGluc3BlY3Rvcg== RnJlbmNo aXNzYW4= IFZpdGE= IHJlc2VhcmNoaW5n UkFN IENlbHRpY3M= IGNsb2Fr IFRlcnJh TWFyeQ== c29sZA== IERPTQ== bW9kcw== SW50ZWw= IG11bHRpdHVkZQ== IEltcHJvdmVk IHJlbGlhbmNl IGFydGlmYWN0 IGFsYXJtaW5n UHJvbQ== aG9u VElPTg== bWVkaXVt IHJlZmxleA== IEV4Y2Vs IHdlYWtlbmVk MTYz MjI0 IGNvc3R1bWVz IHVuaXF1ZWx5 IHNvcnJvdw== IG1hbnNpb24= d3A= IHNhbHY= IEdyb3Zl YnNw IFNuaXBlcg== IFNoaXBwaW5n IFBPVw== IHVuZGlz IGJyYW5kaW5n R2lybA== IEFobWFk IExha2Vz IENvcmV5 IGluaGVyaXRhbmNl ZW5lcnk= IHBhY2tpbmc= IFByZXN0 RGVzdA== Rlc= IHJlZ3VsYXRvcg== bG9ja2Vk IGNvbnRlc3RlZA== IE1lbGlzc2E= IER1Yw== IHVucG9wdWxhcg== IHN0YWNrZWQ= IDE5MTc= IHllYXJseQ== IHN0YXJl IGFzc2Vzc2luZw== w7g= IGJldmVyYWdlcw== IGNvbXBldGl0aW9ucw== IHN0cmVuZ3RoZW5pbmc= YWxvbmc= IEx1ZA== IG1lbHRlZA== c3RhbmJ1bA== IGJvdW50eQ== RU5D IExhbmRz IGRlY2xhcmVz IGN1c3RvbWl6ZQ== IGNvbXBvc2l0ZQ== 44Os Q00= b2dyYXBoaWNz IFRlbXA= IGNvbnRlbmRlcg== IGluc2lnbg== IExBTg== IGRpc2FzdGVycw== aW5zcGlyZWQ= IGp1ZGdtZW50cw== dXN0YWluYWJsZQ== dXJzaW9u IHZhcmlhbmNl IFVsdGltYXRlbHk= IC0tLS0tLS0t dWFkb3I= IFJY IG1lbHRpbmc= IEV4dGVuZGVk IFR3ZQ== TWFqb3I= IEJpbA== IHN5cnVw cXVpY2s= IEhvbGRlcg== IGlubm9jZW5jZQ== VUxF IE1pZ2h0 OTk5OQ== IGZhbA== IGNvbnRpbnVpdHk= IDE5NTM= IEJT c3RpbGw= TGF0 IEFidXNl IHVuc3VwcG9ydGVk eHh4eHh4eHg= IGluc3RpdHV0ZQ== IGZyYWdtZW50 IFBlcA== V2VzdGVybg== IENhdXNl IEZyYWc= IEFycw== 4KU= YXN0aWNz IGJpc2hvcA== IGNyb3NzZXM= IDE1NA== IFVwZ3JhZGU= IG1pdGlnYXRl IFJheW1vbmQ= TW9kcw== IHRvbWF0bw== IHN0dW1ibGVk IGRpZmZlcnM= SW5pdGlhbA== IFJhc3BiZXJyeQ== IGlnbm9yZXM= IHRhbnQ= w6A= IHJlbGF5 IGJpc2V4dWFs IGNvbmZlc3Npb24= IGRlbWVudA== aW5hcw== IEhlYXRoZXI= cGxhdGZvcm0= ZHJpdmluZw== Ym91cmc= IE11c2g= IGh5c3Rlcg== RGV0YWlscw== IGRyaWZ0 IFdhbGQ= IEx1Y2tpbHk= b3Jm IGV4cGlyZQ== IFB1bmNo enltZQ== Z29sZA== IHVucGFpZA== IFRyZW50 IHVuYXJtZWQ= IGlsbGljaXQ= IFRvdHRlbmhhbQ== IHNtYXNo SW50ZXJuYXRpb25hbA== aW5rZXI= IHN0aW5n IFNhZGRhbQ== IEFSVA== IHRydXRocw== YmlydGg= IHNvYmVy IE5pdA== IGli IHVzYWJsZQ== IHN0YWNrcw== IFN5bHY= IG5vcnRoZWFzdA== IGRvbWluYXRpb24= IE1vdXI= RU5TRQ== IE1lYXN1cmU= IHByb2dyYW1tZXI= IDwt MTgy IENvbmRpdGlvbg== IGJhY2t5YXJk aXJsaW5n IEplYg== IENyZWVk IEhhbmc= IENPTVA= RkVS IElzaA== IGRldGVjdGl2ZXM= LS0tLS0tLS0tLS0tLS0t IE1lc3Nlbmdlcg== IGxvb3Bo IGdhdGV3YXk= MTUx IE1hdGVyaWFscw== IERU IGRvb21lZA== b2Rv IHNsaWNlcw== IGVtYWlsZWQ= IFBlcmw= IHJlbm92 VVRI b2R5bmFt IFNvdXRod2VzdA== Z2V0aWM= IFRQUA== IG9wdGltaXNt IFRvdw== dWxhdG9ycw== cHJvdGVjdGVk eWxlcw== wqs= IGV4aWxl ZW52 UHJvcA== IFppbW1lcm1hbg== 2Y4= Q2E= b21hbHk= 44OG IHJhaWxyb2Fk TGVl MjMy IHJlcGxpY2F0ZQ== IGNvbWZvcnRhYmx5 YWN0bHk= IHJhdg== IHRlbGVzY29wZQ== IGhvbmVzdHk= IFBlcHBlcg== IEJyaW5n IHJpY2hlc3Q= IG91dGRvb3Jz IGhhbGxz IGNvbnRlbmQ= SVNF IHN1Ym1pdHRpbmc= IG5haXZl YXJhdGlvbnM= IDE0Mw== IHBvaXNlZA== cmVzcG9uc2libGU= IHNvY2tz IFNrdWxs UXVlc3Rpb24= IGRpc2NvdmVyaWVz Sm9pbmVk IEVuZW1pZXM= IFdpcmVsZXNz IFJldmVuZ2U= IHB1enpsZXM= IGNlYXNlZA== Mjkw Y3JpcHRpb25z IENvbnNvbGU= IGJvaWxpbmc= IGRpc2NyZXA= IGRlZHVjdGlvbg== IGFyc2VuYWw= WFhYWA== IEFtc3RlcmRhbQ== cm94aW1hdGVseQ== IFNoYW5l IHBvc2luZw== IEFDTFU= IENvbXBhbmllcw== IHRoZW9sb2d5 IFVn cXVhcnRlcg== IEhhbms= Q29pbg== IEx2 IGFsbGVnYXRpb24= IEF2b2lk IGluZGVmaW5pdGVseQ== IGNvbW1vZGl0aWVz IGJyaWc= IE1hbml0 IHRlbnRo bWV0aG9k IEtuaWNrcw== IOKAjg== IGludm9rZWQ= RGlhbA== QVJB IGNhdWN1cw== MjI3 IEphYg== IG91bmNlcw== YmF5 IGJ1ZGR5 ZmFu MjM0 IEhpbA== YWRo IFRZ IElORA== IDE5Mzk= IGl0ZXJhdGlvbg== IEdvbnphbGV6 IFZlcnQ= IElP ZW1i cmVyYQ== ZW5jaA== IFJlcXVpcmVtZW50cw== IFdpbnM= IGxpdmVzdG9jaw== aG91cnM= IuKApg== YnJhbA== TWFyZw== IERvbmU= IHdhc3Rpbmc= aW5nZWQ= Z3JvdXBz IHdpc2hpbmc= IFR1bWJscg== IHRhcHBpbmc= IG5hdGlvbmFsaXNt IEJ5cg== IHNxdWFyZXM= IEFjdGlvbnM= 44Ol SW5zaWRl ZGVidWc= IGFwcGVuZA== IHN0dWJib3Ju IENpbmQ= VGVsbA== IHRlYXJpbmc= IFJleQ== b3Jj IERheXRvbg== IE5I IE1hZG5lc3M= Q2hhcmw= IE1vcnJpc29u ZmlsdGVy IGFjY3VzZQ== IC4v IHRvcnJlbnQ= IGRlY2xpbmVz Z2FsbGVyeQ== TWluZQ== IG5lZ290aWF0aW9u IEJhc2hhcg== b3BpYQ== MTk5Mw== ZW1vcnQ= IE5vdmVs IEZhbmc= ZXJzaXZl IEluc3RhbnQ= IHJvbGxlcg== QXJvdW5k IEVsZWN0aW9ucw== R2FtZXM= IGluZXhwZW5zaXZl IHdvcnM= IHZ1bA== IEhvbGU= IHVuYmVsaWV2YWJsZQ== IG5hdXNl IGVudHI= Ym9hdA== IFNURQ== IGJ1c2g= IEhhc3Nhbg== IHdv IHBhdXNlZA== IE1pZw== bGl2ZWQ= IHNjb3V0 IGxpdGg= UHVibGlzaGVk ZHVpbm8= Y29vbA== IGNpcmN1bGF0aW5n aWRhcw== IFBhbQ== dmlvbGVudA== IENyYXdmb3Jk dWRkbGU= IExldHRlcnM= R3VhcmQ= bW9ycGg= IHdhbmRlcmluZw== IHNvcGhvbW9yZQ== IHF1ZWVy IEJsaW5k cnVl IE1hcnJpYWdl RG9t IHBhZGRpbmc= IGZvbGRlcnM= IG1lYW5pbmdsZXNz IGNhbmRpZGFjeQ== YWZvcnQ= IHdoaXN0bGVibA== IElkZW50aWZpZWQ= IGNpZ2Fy IGhpZA== IER1YmFp IHBvc3R1cmU= IGhpa2luZw== IFRlcm1pbmFs TGVnZW5kYXJ5 IFRQ IEFUSw== IFN0YXJidWNrcw== IFJpb3Q= MTk5MQ== IEJvdHRvbQ== ZWZmaWM= IEV1Z2VuZQ== IFd5b21pbmc= IFJvY2t5 IHNhbG1vbg== IG1ldHJv IGJpbGF0ZXJhbA== IGNlbGVicmF0ZXM= TGVuZ3Ro YmlsbGlvbg== QmF0 IHJlbGVn IHBzZXVkbw== RFQ= IFJob2Rl UGFyZW50 cGxldGlvbg== IGF0dHJpYnV0 IHR1bmluZw== IE5PVEU= IFJlYmVs aWN1cw== RnVuZA== IGNvY2t0YWls IDUwMQ== IHNwb29u IGJydXRhbGl0eQ== IHVuaXRl IG1pY3JvYmk= IFJlaWNo cG9zaXRpdmU= IGFtYXplZA== IE5U RGVzYw== RUNUSU9O IGZhbHNlbHk= IEhpZ2hsYW5kZXI= IENyaXN0 IFZpY3Rvcmlhbg== IGRpc3RyaWJ1dGlvbnM= dGhlaXI= IEVpbnN0ZWlu IHBvZA== IGVwaWRlbQ== IGhlYXA= IFJhbmNo IGFudGhlbQ== IHJlYXBw IEF1YnVybg== IGNvbmN1cnJlbnQ= IFRocm91Z2hvdXQ= IFBPU1Q= 4pg= IGhvbWVtYWRl a2ljaw== QmVn IGNoYXNzaXM= Y291bnRlcg== IG1lcmdlcg== IGxhcHM= MjE3 dW5pb24= IFRyaWdnZXI= IGRlYmF0ZWQ= IHNpbGVudGx5 IHJlc3RyYWludA== QmFs MDAwMDAwMA== IGZvcm1pZGFibGU= IEZpbGlw IHNhY3JpZmljZXM= Rm9vZA== IGR3YXJm IFNlcXU= aW5pYW4= TW9yZW92ZXI= IHRhbmdpYmxl b3BzaXM= IE1pbmVjcmFmdA== IFJlZ2lzdHJhdGlvbg== b2Fu IHJlcHJlc2VudGF0aW9ucw== IHRoaXJzdA== IGNvcnA= aXJlbWVudA== TWFkZQ== bG9l PiI= Y2F0cw== Ki4= IGdlc3R1cmVz Z2VuZXJhbA== TGVhZ3Vl IHBhY2tldHM= IEluc3BlY3Rvcg== IEJlcmc= IGZyYXVkdWxlbnQ= IGNyaXRpY2l6ZQ== RnVu IGJsYW1pbmc= bmRyYQ== IHNsYXNo IEVzdG9u IHByb3Bvc2luZw== IHdoYWxlcw== IHRoZXJhcGlzdA== IHN1YnNldA== IGxlaXN1cmU= RUxE IENWRQ== IEFjdGl2aXR5 IGN1bG1pbg== c2hvcA== IERBWQ== aXNjaGVy IEFkbWlyYWw= IEF0dGFja3M= IDE5NTg= IG1lbW9pcg== IGZvbGRlZA== IHNleGlzdA== IDE1Mw== IExJ IHJlYWRpbmdz IGVtYmFycmFzc21lbnQ= IEVtcGxveW1lbnQ= d2FydA== Y2hpbg== IGNvbnRpbnVhdGlvbg== bGlh UmVjZW50bHk= IGR1ZWw= IGV2YWN1YXRpb24= IEthc2htaXI= IGRpc3Bvc2l0aW9u IFJpZw== IGJvbHRz IGluc3VyZXJz NDY3 TWV4 IHJldGFsaWF0aW9u IG1pc2VyeQ== IHVucmVhc29uYWJsZQ== cmFpbmluZw== SW1t IFBV ZW1lcg== IGdlbml0YWw= 44Kz IENhbmR5 IG9uaW9ucw== IFBhdHQ= bGluZXI= IGNvbmNlZGVk IGZh IGZvcmM= IEhlcm5hbmRleg== IEdlb2Zm ZGViaWFu IFRlYW1z IGNyaWVz IGhvbWVvd25lcnM= MjM3 QUJD IHN0aXRjaA== IHN0YXRpc3RpYw== IGhlYWRlcnM= IEJpb2xvZ3k= IG1vdG9ycw== IEdFTg== IExpcA== IGhhdGVz IGhlZWw= U2VsZg== aXBs RURJVA== b3J0aW5n IGFubm90 IFNwZWVjaA== b2xkZW1vcnQ= IEphdmFzY3JpcHQ= IExlQnJvbg== IGZvb3RwcmludA== IGZu IHNlaXp1cmVz bmFz aGlkZQ== IDE5NTQ= IEJlZQ== IERlY2xhcmF0aW9u IEthdGll IHJlc2VydmF0aW9ucw== TlI= ZmVtYWxl IHNhdHVyYXRlZA== IGJpYmxpY2Fs IHRyb2xscw== RGV2aWNl cGhvdG9z IGRydW1z 44OJ44Op44K044Oz TmlnaHQ= ZmlnaHRlcg== IEhhaw== cmliZXI= IGN1c2g= IGRpc2NpcGxpbmFyeQ== YmF1bQ== IEdI IFNjaG1pZHQ= aWxpYnJpdW0= IHNpeHR5 IEt1c2huZXI= cm90cw== IHB1bmQ= IFJhYw== IHNwcmluZ3M= IGNvbnZl QnVzaW5lc3M= RmFsbA== IHF1YWxpZmljYXRpb25z IHZlcnNlcw== IG5hcmNpc3M= IEtvaA== IFdvdw== IENoYXJsb3R0ZXN2aWxsZQ== ZWRv IGludGVycm9nYXRpb24= IFdvb2w= MzY1 QnJpYW4= IOKckw== IGFsbGVnZXM= b25kcw== aWRhdGlvbg== IEphY2tpZQ== eXU= IGxha2Vz IHdvcnRod2hpbGU= IGNyeXN0YWxz IEp1ZGE= IGNvbXByZWhlbmQ= IGZsdXNo IGFic29ycHRpb24= IE9D IGZyaWdodGVuZWQ= IENob2NvbGF0ZQ== TWFydGlu IGJ1eXM= IGJ1Y2tz IGFwcGVsbA== IENoYW1waW9uc2hpcHM= IGxpc3RlbmVy IERlZmVuc2l2ZQ== IGN6 dWRz IE1hdGU= IHJlcGxheQ== IGRlY29yYXRlZA== IHN1bms= IFZJUA== IEFuaw== IDE5NQ== YWFhYQ== Tm9ib2R5 IE1pbGs= IEd1cg== IE1r IFNhcmE= IHNlYXRpbmc= IFdpZA== VHJhY2s= IGVtcGxveXM= IGdpZ2FudGlj QVBQ 44Kn aW52ZW50b3J5 IHRvd2Vs YXRjaGU= bGFzdGluZw== IFRM IGxhdGVuY3k= IGtuZQ== QmVy bWVhbmluZw== IHVwaGVsZA== IHBsYXlncm91bmQ= IG1hbnQ= U2lkZQ== IHN0ZXJlbw== IG5vcnRod2VzdA== IGV4Y2VwdGlvbmFsbHk= IHJheXM= IHJlY3VycmluZw== RHJpdmU= IHVwcmlnaHQ= IGFiZHVjdA== IE1hcmF0aG9u IGdvb2RieWU= IGFscGhhYmV0 aHA= IGNvdXJ0cm9vbQ== cmluZ3Rvbg== b3RoaW5n VGFn IGRpcGxvbWF0cw== IGJhcmJhcg== IEFxdWE= MTgz MzMzMw== IG1hdHVyaXR5 IGluc3RhYmlsaXR5 IEFwYWNoZQ== ID09PQ== IGZhc3Rpbmc= IEdyaWQ= TW9kTG9hZGVy IDE1Mg== QWJz IE9wZXJhdGluZw== ZXR0aQ== IGFjcXVhaW50 RG9ubmVsbA== IEtlbQ== IEZvcmdl IGFybW9yZWQ= TWls IHBoaWxvc29waGVycw== aW52ZXN0 UGxheWVycw== 4og= IG15cmlhZA== IGNvbXJhZGVz Um90 IHJlbWVtYmVyaW5n IGNvcnJlc3BvbmRz IHByb2dyYW1tZXJz IEx5bm4= IG9saWc= IGNvaGVyZW50 eW5jaHJvbg== IENoZW1pY2Fs IGp1Z2c= cGFpcg== cG9zdHM= RXll IElubmVy IHNlbWVzdGVy b3R0ZXN0 IEVtaXJhdGVz cmljYW5lcw== b3JvdXNseQ== bWl0cw== IFdpcw== IGRvZGdl bG9jYXRpb24= IGZhZGVk QW1hem9u IFByb2NlZWQ= IElORk8= am91cm5hbA== IFRydWNr VGVu IDIxNw== IHN0YXR1dGVz bW9iaWxl IFR5cGVz UmVjb21t YnVzdGVy cGV4 IGxlZ2VuZHM= IGhlYWRhY2hl ZmFjZWQ= IFdpRmk= aWZ0eQ== IEhFUg== IGNpcmN1aXRz RVJST1I= MjI2 b2xpbg== IGN5bGluZGVy b3NwYWNl aWtlcnM= UHJlbQ== UXVhbnQ= IGNvbmZsaWN0aW5n IHNsaWdodGVzdA== IGZvcmdlZA== aW9uYWdl U3RlcGhlbg== IEt1Yg== IE9wcG9ydHVu IEhlYWw= IGJsbw== IHJ1bGVycw== IGh1aA== IHN1Ym1hcmluZQ== Znk= YXNzZXI= IGFsbG93YW5jZQ== IEthc2ljaA== IFRhcw== IEF1c3RyYWxpYW5z Rm9yZ2VNb2RMb2FkZXI= IOKGkQ== IE1hdHJpeA== YW1pbnM= IDEyMDA= IEFjcXU= MjM2 RG9jdW1lbnQ= IEJyZWFraW5n MTkz IFN1YnN0 IFJvbGxlcg== IFByb3BlcnRpZXM= IE5J dGllcg== IGNydXNoaW5n IGFkdm9jYXRpbmc= RnVydGhlcm1vcmU= a2VlcGVycw== IHNleGlzbQ== eGQ= IGNhbGxlcg== IFNlbnNl Y2hpZXZl IFRG IGZ1ZWxlZA== IHJlbWluaXNjZW50 IG9ic2Vzcw== dXJzdA== IHVwaG9sZA== IEZhbnM= aGV0aWNz IOKX IEJhdGg= IGJldmVyYWdl IG9zY2lsbA== MjU0 IHBvbGVz IGdyYWR1YWw= IGV4dGluZw== IFN1ZmY= IFN1ZGRlbmx5 IGxpa2luZw== IDE5NDk= dW5jaWF0aW9u YW1pbmF0aW9u IE9tYXI= IExW IENvbnNlcXVlbnRseQ== IHN5bnRoZXM= IEdJRg== IHBhaW5z IGludGVyYWN0aW5n dW91c2x5 aW5jcmU= IHJ1bW9y IFNjaWVudG9sb2d5 MTk3 IFppZw== IHNwZWxsaW5n IEFTUw== IGV4dGluZ3U= bXNvbg== IGdo IHJlbWFya2Vk IFN0cmF0ZWdpYw== IE1PTg== 5aU= Z2Fl IFdIQVQ= RXJpYw== IENhbXB1cw== IG1ldGhhbmU= IGltYWdpbg== SlVTVA== IEFsbQ== WFQ= aXE= IFJTUw== IHdyb25nZG9pbmc= YXR0YQ== IGJpZ290 IGRlbW9uc3RyYXRvcnM= IENhbHZpbg== IFZpbGxh IG1lbWJyYW5l IEF3ZXNvbWU= IGJlbmVmaWM= MjY4 IG1hZ25pZmljZW50 IExvdHM= R3JlZw== IEJvcmlz IGRldGFpbmVlcw== IEhlcm1hbg== IHdoaXNwZXJlZA== IGF3ZQ== UHJvZmVzc29y ZnVuZGluZw== IHBoeXNpb2xvZ2ljYWw= IERlc3RydWN0aW9u IGxpbWI= IG1hbmlwdWxhdGVk IGJ1YmJsZXM= IHBzZXVk IGh5ZHJh IEJyaXN0b2w= IHN0ZWxsYXI= IEV4cGFuc2lvbg== IEtlbGw= IEludGVyZXN0aW5nbHk= IG1hbnM= IGRyYWdnaW5n IGVjb2xvZ2ljYWw= IEZpdA== IGdlbnQ= IGJlbmVmaXRlZA== IEhhaXRp IHBvbHln 44OO IDIwMzA= IHByb3c= IHJlY29uc3RydWN0aW9u IHdhc3Q= IHBzeWNoaWM= IEdyZWVrcw== SGFuZGxlcg== MTYy IFB1bHNl IHNvbGljaXQ= IHN5cw== IGluZmx1eA== IEdlbnRsZQ== cGVyY2VudA== IHByb2xpZmVyYXRpb24= IHRheGFibGU= IGRpc3JlZ2FyZA== IGVzY2FwaW5n IGdpbmdlcg== IHdpdGhzdGFuZA== IGRldmFzdGF0ZWQ= IERldw== c2VyaWVz IGluamVjdGVk ZWxhaWRl IHR1cm5vdmVy aGVhdA== mYI= SGFwcHk= IFNpbGVudA== 44Kt aXZpc20= IGlycmF0aW9uYWw= QU1B IHJlZWY= cnVi IDE2Mg== IGJhbmtlcnM= IEV0aGljcw== dnY= IGNyaXRpY2lzbXM= S24= MTg2 TW92aWU= IFRvcmllcw== IG5vb2Q= IGRpc3RvcnRpb24= RmFsc2U= b2RvcmU= IHRhc3R5 UmVzZWFyY2g= IFVJRA== LSk= IGRpdm9yY2Vk IE1V IEhheWVz IElzbg== aWFuaQ== IEhR ICIj aWduYW50 IHRyYXVtYXRpYw== IExpbmc= SHVu IHNhYm90 b25saW5l cmFuZG9t IHJlbmFtZWQ= cmFyZWQ= S0E= ZGVhZA== w6l0 IEFzc2lzdGFuY2U= IHNlYWY= KysrKysrKys= IHNlbGRvbQ== IFdlYmI= IGJvb2xlYW4= dWxldA== IHJlZnJhaW4= IERJWQ== cnVsZQ== IHNodXR0aW5n IHV0aWxpemluZw== bG9hZGluZw== IFBhcmFt Y29hbA== b290ZXI= IGF0dHJhY3Rpbmc= IERvbA== IGhlcnM= YWduZXRpYw== IFJlYWNo aW1v IGRpc2NhcmRlZA== IFBpcA== MDE1 w7xy IG11Zw== SW1hZ2luZQ== Q09M IGN1cnNlZA== IFNob3dz IEN1cnRpcw== IFNhY2hz c3BlYWtpbmc= IFZpc3Rh IEZyYW1ld29yaw== b25nbw== IHN1YnJlZGRpdA== IGNydXM= IE92YWw= Um93 Z3Jvd2luZw== IGluc3RhbGxtZW50 IGdsYWM= IEFkdmFuY2U= RUNL IExHQlRR TEVZ IGFjZXQ= IHN1Y2Nlc3NpdmU= IE5pY29sZQ== IDE5NTc= UXVvdGU= IGNpcmN1bXN0YW5jZQ== YWNrZXRz IDE0Mg== b3J0aXVt IGd1ZXNzZWQ= IEZyYW1l IHBlcnBldHJhdG9ycw== IEF2aWF0aW9u IEJlbmNo IGhhbmRj QXA= IDE5NTY= MjU5 cmFuZA== TmV0TWVzc2FnZQ== ZGlu dXJ0bGVz aGln IFZJSUk= ZmZpdGk= IFN3b3Jkcw== YmlhbA== IGtpZG5hcHBpbmc= ZGV2aWNl IGJhcm4= IEVsaQ== YXVjYXM= U2VuZA== Q29uc3RydWN0ZWQ= IMK9 IG5lZWRsZXM= IGFkdmVydGlzZW1lbnRz IHZvdQ== IGV4aGliaXRlZA== IEZvcnRyZXNz QXNr QmVycnk= VFlQRQ== IGNhbmNlcnM= dW1waW5n IFRlcnJpdG9yeQ== IHBydWQ= IG5hcw== IGF0aGVpc3Q= IGJhbGFuY2Vz 44Gf IFNoYXdu JiY= IGxhbmRzYw== IFJHQg== IHBldHR5 IGV4Y2VsbGVuY2U= IHRyYW5zbGF0aW9ucw== IHBhcmNlbA== IENoZXY= RWFzdA== IE91dHB1dA== aW1p IGFtYmllbnQ= IFRocmVhdA== IHZpbGxhaW5z IDU1MA== SUNB IHRhbGxlcg== IGxlYWtpbmc= Y3Vw IHBvbGlzaA== IGluZmVjdGlvdXM= IEtD IEBA YmFja2dyb3VuZA== IGJ1cmVhdWNyYWN5 IFNhaQ== dW5sZXNz aXRpb3Vz IFNreXBl QXRs SURFTlQ= MDA4 IGh5cG9jcg== IHBpdGNoZXJz IGd1ZXNzaW5n IEZJTkFM QmV0d2Vlbg== IHZpbGxhZ2Vycw== IDI1Mg== ZmFzaGlvbg== IFR1bmlz QmVo IEV4Yw== IE1JRA== Mjg4 IEhhc2tlbGw= MTk2 IE5PUg== IHNwZWNz IGludmFyaQ== IGdsdXQ= IENhcnM= IGltcHVsc2U= IGhvbm9ycw== Z2Vs IGp1cmlzZGljdGlvbnM= IEJ1bmRsZQ== dWxhcw== Q2FsaWZvcm5pYQ== IEluY3JlYXNl IHBlYXI= IHNpbmdsZXM= IGN1ZXM= IHVuZGVyd2VudA== IFdT IGV4YWdnZXJhdGVk IGR1YmlvdXM= IGZsYXNoaW5n TE9H KV0u Sm91cm5hbA== dGc= VmFu IElzdGFuYnVs IEluc3A= IEZyYW5rZW4= RHJhdw== IHNhZG5lc3M= IGlyb25pYw== IEZyeQ== eGM= IDE2NA== aXNjaA== V2F5 IFByb3Rlc3RhbnQ= aG9ybg== IHVuYWZm IFZpdg== aWxsYXM= IFByb2R1Y3Rpb25z IEhvZ2Fu IHBlcmltZXRlcg== IFNpc3RlcnM= IHNwb250YW5lb3Vz IGRvd25zaWRl IGRlc2NlbmRhbnRz IG9ybg== d29ybQ== SmFwYW5lc2U= IDE5NTU= IDE1MQ== IERvaW5n ZWxzZW4= dW1ibGVz IHJhZGljYWxseQ== IERydW0= IEJhY2g= IGxpYWJpbGl0aWVz IE9C IEVsZW1lbnRhcnk= IG1lbWU= eW5lcw== IGZpbmdlcnByaW50 IEdyYWI= IHVuZGVydGFrZQ== TWVtYmVycw== IFJlYWRlcg== IFNpbXM= Z29k IGh5cG90aGV0aWNhbA== c2NpZW50 IEFK IGNoYXJpc20= IGFkbWlzc2lvbnM= IE1pc3NpbGU= dHJhZGU= IGV4ZXJjaXNpbmc= IEJhY2tncm91bmQ= V3JpdHRlbg== IHZvY2Fscw== d2hldGhlcg== IHZp IFdpbm5lcg== IGxpdHRlcg== IFNob290aW5n U1RFTQ== 44Kh IEFGTA== IHZhcmlhYmlsaXR5 IGVhdHM= IERQUw== YnJvdw== IGVsZXBoYW50cw== IHN0cmF0 IMU= IHNldHRsZXJz TWF0dGhldw== IGluYWR2ZXJ0 SEk= IElNRg== IEdvYWw= IG5lcnZlcw== Sm9obnNvbg== ZXll YWJsaXNobWVudA== VGh1cnNkYXk= QklMSVRZ SGFk YW1vdG8= aGV0YW1pbmU= ZXBz IG1pdG9jaG9uZA== IGNvbXByZXNzZWQ= IFRyZXZvcg== IEFuaW1hbHM= VG9vbA== TG9jaw== IHR3ZWFr IHBpbmNo IGNhbmNlbGxhdGlvbg== UG90 IGZvY2Fs IEFzdHJvbg== MTcz IEFTQw== IE9USEVS dW1uaQ== IGRlbWlzZQ== ZGw= 2YU= U2VtaXRpc20= IGNyYWNraW5n IGNvbGxhYm9yYXRpdmU= IGV4cGxvcmVz c3Fs IGhlcmJz IGNvbmZpZ3VyYXRpb25z bWlz IFJlc3VsdA== YWNleQ== IFNtb2tl IHNhbmN0 ZWxpYQ== IGRlZ2VuZXI= IGRlZXBlc3Q= IHNjcmVhbWVk IG5hcA== U29mdHdhcmU= IFNUQVI= RUY= IFhpbg== c3BvbnNvcmVk bWFuc2hpcA== MjMz IHByaW1hcmllcw== IGZpbHRlcmluZw== IGFzc2VtYmxl bWls IE15ZXJz Ym93cw== IHB1bmNoZWQ= TWlj IGlubm92YXRpb25z IGZ1bmM= YW5kbw== IGZyYWNraW5n IFZ1bA== 0L7Q b3Nob3A= IEltbXVu IHNldHRsaW5n IGFkb2xlc2NlbnRz IHJlYnVpbGRpbmc= IHRyYW5zZm9ybWluZw== IHBhcm9sZQ== IGhhcmJvcg== IGJvb2tpbmc= b3Rpb25hbA== b25nZXZpdHk= IFlv YnVn IGVtZXJnZXM= IE1ldGhvZHM= IENodQ== UHJlcw== IER1bmdlb25z IHRyYWlsaW5n IFJ1bQ== IEh1Z2g= 5aSp IEVyYQ== IEJhdHRsZXM= UmVzdWx0cw== IFRyYWRpbmc= IHZlcnNh Y3Nz YXhpZXM= aGVldA== IGdyZWVk MTk4OQ== IGdhcmRlbnM= IGNvbnRpbmdlbnQ= UGFyaw== IExlYWZz aG9vaw== cm9iZQ== IGRpcGxvbWFjeQ== IEZ1ZWw= IEludmFzaW9u IHVwZ3JhZGluZw== TWFsZQ== IGVsaWM= IHJlbGVudGxlc3M= IENvdmVuYW50 YXBlc2g= IFRyb3A= VHk= cHJvZHVjdGlvbg== YXJ0eQ== IHB1bmNoZXM= YWtv Y3ljbG9wZWRpYQ== IFJhYmJpdA== IEhETUk= IDE0MQ== IGZvaWw= SXRlbUltYWdl IEZH IGltcGxlbWVudGF0aW9ucw== IFBvbQ== aXh0dXJlcw== IGF3YWl0 IDMzMA== YW11cw== IHVtYnJlbGxh IGZvcmVzZWU= c2VwYXI= IGNpcmN1bWNpc2lvbg== IHBlcmlwaGVyYWw= U2F5 IEV4cGVydA== SW5j IHdpdGhkcmV3 IEFuZGVycw== ZnJpZWQ= IHJhZGlvYWN0aXZl IE9wZW5pbmc= IGJvYXJkaW5n IE5E IG92ZXJ0aHJvdw== QWN0aXY= V1A= IEFjdHM= 15k= IG1vdGlvbnM= dmlj IE1pZ2h0eQ== IERlZmVuZGVy YWVy IHRoYW5rZnVs IEtpbGxpbmc= IEJyaXM= bW9pbA== IHByZWRpY3Rpbmc= MjY2 Y2hvaWNl IGtpbGxlcnM= IGluY3Vi IENoZXN0 YXRoZXJpbmc= IHByb2NsYWltZWQ= Zmxvd2Vy b3Nzb20= dW1ibGVkb3Jl IEN5Y2xpbmc= IE9jY3VweQ== QUdFUw== UGVu IFl1Zw== IHBhY2thZ2Vk IGhlaWdodGVuZWQ= Y290 c3RhY2s= Q29uZA== IHN0YW1wcw== bWFnZQ== IHBlcnN1YWRlZA== IGVuc2w= IENhcmRpbmFs IHNvbGl0YXJ5 IHBvc3Nlc3Npbmc= IENvcms= IGV2aWQ= IFRheQ== IGJsdWVz IGV4dHJlbWlzbQ== IGx1bmFy IGNsb3du VGVjaG4= IGZlc3RpdmFscw== IFB2UA== IExhcg== IGNvbnNlcXVlbnRseQ== cHJlc2VudA== IHNvbWVkYXk= 546L IE1ldGVvcg== IHRvdXJpbmc= Y3VsdHVyZQ== IGJlYWNoZXM= U2hpcA== Y2F1c2U= IEZsb29k 44Ov IHB1cml0eQ== dGhvc2U= IGVtaXNzaW9u Ym9sdA== IGNob3Jk IFNjcmlwdHVyZQ== THU= ICR7 Y3JlYXRlZA== T3RoZXJz MjU4 IGVsZW1lbnRhbA== IGFubm95ZWQ= IEFF ZGFu IFNhZw== UmVzZWFyY2hlcnM= IGZhaXJ5 4oCT4oCT PT09PT09PT09PT09 U21hcnQ= R0dHRw== IHNrZWxldG9ucw== IHB1cGlscw== bGlua2Vk IHVyZ2VuY3k= ZW5hYmxlZA== IEZ1Y2s= IGNvdW5jaWxs cmFi VUFM VEk= IGxpZmVz IGNvbmZlc3NlZA== QnVn IGhhcm1vbg== IENPTkZJRw== IE5ldXRyYWw= RG91Ymxl IHN0YXBsZQ== IFNIQQ== QnJpdGlzaA== IFNOUA== QVRPUg== b2Nv IHN3aW5naW5n Z2V4 b2xlb24= cGxhaW4= IE1pc3Npbmc= IFRyb3BoeQ== dmFyaQ== cmFuY2g= IDMwMQ== NDQw MDAwMDAwMDAwMDAwMDAwMA== IHJlc3RvcmluZw== IGhhdWw= dWNpbmc= bmVyZw== IGZ1dHVyZXM= IHN0cmF0ZWdpc3Q= cXVlc3Rpb24= IGxhdGVyYWw= IEJhcmQ= IHNvcg== IFJob2Rlcw== IERvd250b3du Pz8/Pz8t IExpdA== IEJlbmVk IGNvaWw= c3RyZWV0 IFBvcnRhbA== RklMRQ== IEdydQ== Kiw= MjMx bmV1bQ== IHN1Y2tlZA== IHJhcHBlcg== IHRlbmRlbmNpZXM= IExhdXJlbg== Y2VsbGFuZW91cw== MjY3 IGJyb3dzZQ== IG92ZXJj aGVhZGVy b2lzZQ== IGJlZXQ= IEdsZQ== U3RheQ== IG11bQ== IHR5cGVk IGRpc2NvdW50cw== VGFsaw== IE9n ZXhpc3Rpbmc= IFNlbGw= dXBo Q0k= IEF1c3RyaWFu IFdhcm0= IGRpc21pc3NhbA== IGF2ZXJhZ2Vz Y2FtZXJh IGFsbGVnaWFuY2U= TEFO PSIj IGNvbW1lbnRhdG9ycw== IFNldHRpbmc= IE1pZHdlc3Q= IHBoYXJtYWM= IEVYUA== IHN0YWlubGVzcw== Q2hpY2Fnbw== IHRhbg== MjQ0 IGNvdW50cnlzaWRl IFZhYw== Mjk1 IHBpbm5lZA== IGNyaXNlcw== IHN0YW5kYXJkaXplZA== VGFzaw== IEphaWw= IERvY2tlcg== Y29sb3JlZA== Zm9ydGg= In0s IHBhdHJvbnM= IHNwaWNl IG1vdXJu IE1vb2Q= IGxhdW5kcnk= IGVxdWlw IE1vbGU= eWxs IFRIQw== bmF0aW9u IFNoZXJsb2Nr IGlzc3U= IEtyZQ== IEFtZXJpY2Fz IEFBQQ== IHN5c3RlbWF0aWNhbGx5 IGNvbnRyYQ== IFNhbGx5 IHJhdGlvbmFsZQ== IGNhcnJpYWdl IHBlYWtz IGNvbnRyYWRpY3Rpb24= ZW5zYXRpb24= IEZhaWx1cmU= IHByb3Bz IG5hbWVzcGFjZQ== IGNvdmU= ZmllbGRz 44KL IHdvb2w= IENhdGNo IHByZXN1bWVk IERpYW5h cmFnb24= aWdp IGhhbW0= IHN0dW50 IEdVSQ== IE9ic2VydmF0b3J5 IFNob3Jl IHNtZWxscw== YW5uYWg= IGNvY2twaXQ= IER1dGVydGU= ODUw IG9wcHJlc3NlZA== YnJlYWtlcg== IENvbnRyaWJ1dA== IFBlcnU= IE1vbnNhbnRv IEF0dGVtcHQ= IGNvbW1hbmRpbmc= IGZyaWRnZQ== IFJpbg== IENoZXNz dWFsaXR5 IG9s UmVwdWJsaWNhbg== IEdsb3J5 IFdJTg== Li4uLi4uLg== YWdlbnQ= cmVhZGluZw== IGluaA== Sm9uZXM= IGNsaWNrcw== YWxhbg== IFtdOw== IE1hamVzdHk= IENlZA== b3B1cw== YXRlbA== w6o= QVJD IEVjdWFkb3I= 44Og IEt1cm8= IHJpdHVhbHM= IGNhcHRpdmU= IG91bmNl IGRpc2FncmVlbWVudA== IHNsb2c= ZnVlbA== UGV0 TWFpbA== IGV4ZXJjaXNlZA== IHNvbGlj IHJhaW5mYWxs IGRldm90aW9u IEFzc2Vzc21lbnQ= IHJvYm90aWM= b3B0aW9ucw== IFJQ IEZhbWlsaWVz IEZsYW1lcw== IGFzc2lnbm1lbnRz MDA3 YWtlZG93bg== IHZvY2FidWxhcnk= UmVpbGx5 IGNhdmFs Z2Fycw== IHN1cHByZXNzZWQ= IFNFVA== IEpvaG5z IHdhcnA= YnJva2Vu IHN0YXR1ZXM= IGFkdm9jYXRlZA== IDI3NQ== IHBlcmls b21vcnBo IEZlbWlu cGVyZmVjdA== IGhhdGNo TGli NTEy IGxpZmVsb25n MzEz IGNoZWVrcw== IG51bWJlcmVk IE11Zw== Qm9keQ== cmF2ZWw= V2VpZ2h0 IEphaw== IEhlYXRo IGtpc3Npbmc= IEpVU1Q= IHdhdmluZw== dXBsb2Fk IGluc2lkZXI= IFByb2dyZXNzaXZl IEZpbHRlcg== dHRh IEJlYW0= IHZpb2xlbnRseQ== aXBhdGlvbg== IHNrZXB0aWNpc20= IDE5MTg= IEFubmll IFNJ IGdlbmV0aWNz IG9uYm9hcmQ= YXRs IEZyaWVkbWFu IEJyaQ== Y2VwdGl2ZQ== IHBpcmF0ZQ== IFJlcG9ydGVy Mjc4 IG15dGhvbG9neQ== IGVjbGlwc2U= IHNraW5z IGdseXBo aW5naGFt RmlsZXM= Q291cg== d29tZW4= IHJlZ2ltZXM= IHBob3RvZ3JhcGhlZA== S2F0 IE1BWA== T2ZmaWNpYWxz IHVuZXhwZWN0ZWRseQ== IGltcHJlc3Npb25z RnJvbnQ= Ozs7Ozs7Ozs= IHN1cHJlbWFjeQ== IHNhbmc= IGFnZ3JhdmF0ZWQ= IGFicnVwdGx5 IFNlY3Rvcg== IGV4Y3VzZXM= IGNvc3Rpbmc= aWRlcHJlc3M= U3RhY2s= IFJOQQ== b2JpbA== IGdob3N0cw== bGRvbg== YXRpYmlsaXR5 VG9waWNz IHJlaW1idXJzZQ== IEhN IERlZw== IHRoaWVm eWV0 b2dlbmVzaXM= bGVhbmluZw== IEtvbA== IEJhc2tldGJhbGw= IGZp IFNlZWluZw== IHJlY3ljbGluZw== IFst Q29uZ3Jlc3M= IGxlY3R1cmVz UHN5 IG5lcA== IG1haWQ= IG9yaWVudGVk QVg= IHJlc3BlY3RmdWw= cmVuZQ== Zmx1c2g= IFVubG9hZGVk cmVxdWVzdA== Z3JpZA== IEFsdGVybmF0aXZlbHk= IEh1Z28= IGRlY3JlZQ== IEJ1ZGRoaXNt YW5kdW0= QW5kcm9pZA== IENvbmdv IEpveWNl IGFja25vd2xlZGdpbmc= aGVzaXZl IFRvbW9ycm93 IEhpcm8= dGhyZW4= IE1hY2Vk IGhvYXg= IEluY3JlYXNlZA== IFByYWRlc2g= V2lsZA== X19fX19f MTYx IGF1bnQ= IGRpc3RyaWJ1dGluZw== IFR1Y2tlcg== IFNTTA== IFdvbHZlcw== QnVpbGRpbmc= b3VsdA== IEx1bw== IFlhcw== IFNwaXI= IFNoYXBl IENhbWJvZA== IElQdg== IG1s IGV4dHJhZA== Mzkw IFBlbm55 ZHJlYW0= IHN0YXRpb25lZA== b3B0aW9uYWw= ZXdvcnRoeQ== Ljwv IHVuZGVydGFraW5n IGNoaWNrZW5z IHN0aW11bGk= IEVsc2U= aWdhdG9ycw== IEJlZ2lubmluZw== Y3Rvcnk= IHByZXBhcmVz IGRlbHRh IHZpY2luaXR5 dG9vbA== IHdvcmtzaG9wcw== TUh6 IGFjY3VzYXRpb24= IGhpc3Rvcmllcw== cm9wb2xpcw== IENodXJjaGlsbA== IG5lb24= IGJhZmY= ZGllcw== bWF5YmU= IOijj+immumGkg== IHN5bXB0b20= RUNI IE1hbnVlbA== IGJhbmFuYQ== IEhC ICoqKio= IEtvcmVhbnM= Y29sbA== RkI= IHByYXlpbmc= IENhbm5vdA== IE1pbGU= IGVtYnJhY2luZw== IFNpbGs= Mzkz b3RlcnM= RkQ= IGRheWxpZ2h0 YWxpYXM= IEJyaWdhZGU= IEhhbm5haA== IGNsZXJneQ== IHNvdXRoZWFzdA== IGFsY29ob2xpYw== IHByb3Bvc2Vz bGl2aW9u IGNhbGN1bGF0aW5n IHN0aW11bGF0ZQ== IHNwbGl0dGluZw== ZWlnaHQ= IEluZHk= cGxheXM= IFBpaw== IGRvbWVzdA== IGZvcmdpdmVuZXNz IFJpbmdz cGF0aWVudA== a2luc29u TW9udA== aWdpYmxl OyI= IHBlcmlvZGljYWxseQ== YW1tYWQ= IEJyaXR0 cGFyZA== IGFyYml0cmF0aW9u IFNjaG5laWRlcg== IENvcnBvcmF0ZQ== IE1heWE= IHNuYWtlcw== YXVt IGJsYXN0ZWQ= IG15c3Rlcmllcw== IHJldml2ZQ== b2NhbXA= IERvZGdl IE9wZXJh Mjc5 IG9ycGhhbg== IHNwZWNpZmllcw== IE1ldHM= RHVyYXRpb24= SGVu IGZpcmV3b3Jrcw== IHByb3NlY3V0ZQ== IFRpbGxlcnNvbg== ZHA= dXNhZ2U= bGluZXNz IERlYmlhbg== IDIyNA== cmlzZXM= IEluZmVjdA== YXRyYQ== IFJS IExvcg== ZGlmZg== IENoYXJsZXN0b24= IGFjb3VzdGlj IGFtdXNl MzMw IGNlcg== IFRhYw== IFsr IGNhcmRpYWM= IFJlc3RhdXJhbnQ= ZXJneQ== IGZ1eno= IGJpdGVz IGhhemFyZG91cw== IGJyaWdodGVy cmFucw== IFN0ZXBoYW5pZQ== ZXh0cmE= UkVU IENocmlzdGluZQ== IFN1ZQ== c3RhdGVtZW50 IGJvbHN0ZXI= IGFudGl0 UmFkaW8= QklU 44Kw IHZpc2lvbnM= IENvbmNlcHQ= IGlubGluZQ== IFBoaWxvc29waHk= aXNhbnM= IElydmluZw== w6M= dGFraW5n IGluY29uc2lzdA== IEt1bWFy IGxpZw== IFNjaHVtZXI= IFJlZ3VsYXRpb25z IEh6 dGhybw== IFZvbGRlbW9ydA== IE1FRA== IEZyZWRlcmljaw== UGFk MjIx IGFsbGVnaW5n IENvbW11bmljYXRpb24= IDE2Nw== IGZvcmVjYXN0cw== IHNwaWRlcnM= T3JnYW4= IFBhcnRpY2lwYW50cw== IE9wcw== ZGVzaWdu Q2xvc2U= IGZhY3Rv IGJvbWJlcnM= cmVzaXN0YW50 YXRlZ29yaWVz U2Nob29s IGhvbWV3b3Jr IGNvcnJv VHVlc2RheQ== IEJyZW5kYW4= IE1Y IFRT IFN0cmk= IHN0YWtlaG9sZGVycw== IE1pbGxlbm5pdW0= IHRyYW5zZmVycmluZw== SnVk IHRhYw== IDE2MDA= IFNESw== cmI= IGludGVycHJldGF0aW9ucw== IFNH IHVwc3RhaXJz IEhhcnZlc3Q= IHZhZ2luYQ== IGluZ2VzdA== eGY= IE9yaW9u IEpvZXk= IHNhbmR3aWM= IGltbW9ydGFs IGZsaXBwZWQ= b3J0ZXg= dGhyZWF0ZW5pbmc= IHNuaXBlcg== IGNvbnZlcnRz IGluc3RhbGxhdGlvbnM= IEJ1bGdhcg== b3JzY2hl bWFpbHM= IGx1cmU= IG5hcnJvd2x5 IGdyZW5hZGU= IEdpbmc= IHVuZGVyd2Vhcg== LS0tLS0tLS0tLS0tLS0= IGNoYXNlZA== IFZBTA== IHBhcmVudGluZw== IEhhbWI= IEJsYXo= IGFuYXJjaGlzdA== IE1lZGlhbg== IFByb2dyYW1z zr0= IG9iag== IE5va2lh b3JtYW4= YW5xdQ== YXRpc20= b3Bh IGZ1bGZpbGxpbmc= IHB1cHB5 IGVudGl0 IFNlYmFzdGlhbg== IHNob290ZXJz IHJpY2hlcg== 6KE= IHRlbXB0ZWQ= IEFUVA== IENW IHRvcmU= UmVzb3VyY2U= IERldmlscw== NDA4 aW5hdGlvbmFs IGFzc3VyYW5jZQ== IERhcnJlbg== IHdoaWNoZXZlcg== cG9zdXJl IGZ1cnk= U3RvY2s= IHVuaXZlcnNhbGx5 cmVzcG9uc2U= IG9haw== IHdvcmtsb2Fk IENvcm5lcg== ZWVsZQ== Ii4uLg== IGRlcHJpdmVk a293c2tp IGNhc3Rz IGFmZmlsaWF0aW9u IEFjaA== IEFza2Vk YXRoZQ== IGxhY3Q= IFRodQ== cm0= IGFpcmxpbmVz IG5vdGlvbnM= Rm9ybWF0 IEZBQQ== 44OK ZHJpdmVy IHRyYW5zY2VuZA== U2V0dGluZ3M= IFByb3NlY3V0 IHNwaW5hbA== IGRlZmF1bHRz Rks= IHByZWZlcnM= cmVuZGVyZWQ= dGh1cw== ZmlsbQ== IHRpZ2Vy IFNwaWNlcg== cmVjb2du IFJ1Z2J5 TmV0d29yaw== IHBpdHk= IGNvbXBhcnRtZW50 Y2FzdGVycw== IE1vbnJvZQ== IDcyMA== IGNvcnJlY3Rpb25z IGRvcGFtaW5l IEFa Q3V0 IHJvb21t IHNwZWN1bGF0ZQ== SGFzaA== IHJlc3RyaWN0aXZl MTExMQ== cmVkaWJsZQ== b25lbA== IHJhbXBhbnQ= cmVwb3J0ZWQ= IFN1aXRl IE1pbmltdW0= YWx5cw== YXphcmQ= bG9vcA== IGxlbnQ= c2hh IHZhbmRhbA== bWVudQ== IEJvZWhuZXI= IG5hcnJhdGl2ZXM= IGF1dGhlbnRpY2l0eQ== MjY5 YW5pYw== ZHV0eQ== Mjg1 IHRoYW5rZWQ= IGJldHJheWVk bGlmdA== IHNvdXRod2VzdA== IERleHRlcg== IEJvZA== IGtleXdvcmRz QXZlcmFnZQ== RElT IGV0aG5pY2l0eQ== ISks IE5hdGlvbmFscw== 4bk= IFRhaA== aW94aWQ= IHdpZGdldA== IHBhc3Rh IGJpbGxpbmc= IHRyaWxvZ3k= IExpbmVz IHNuaWZm IG5lcGhldw== TGF0ZQ== IHByaW5jaXA= IExvb3A= IE1hcnhpc3Q= IGRpc3NvbHZlZA== IGNvbnRleHRz IEFtb3VudA== IFNwaWtl IHRvdGFscw== IG9yZ2FuaXplcg== IHVwcmlzaW5n c2hpcHM= WVk= IE5vcnRoZWFzdA== bW9uZXk= Z3JhZGF0aW9u IGdvYWxrZWVwZXI= IEhlYXI= IHN0ZWFr IEJ1enpGZWVk IHNvbGVtbg== IFNjYW5k IHBvcHBpbmc= IGFkaGVyZQ== IEFsbGVn Ynl0ZQ== IFdvbHZlcg== IHVuaW4= IHJlY29s aXR1ZA== IG1pbWlj aWJ1cw== IHByZWRpY3Rz IEtlZXBlcg== aWF0aW5n IGRlY2VwdGlvbg== IGxlYXJudA== IGRpYXJ5 IGNvbmRpdGlvbmFs IHJlbGlj IGludm9rZQ== aWVuY2Vk 5Yg= IFBvbnQ= IGNlbGxwaG9uZQ== IHNwZWVkaW5n IHRhY2tsaW5n IG51ZGU= b3BlbmVk IE1hbmFmb3J0 IDE5NTI= IG1ham9ycw== IFNpbGVuY2U= IGxvZ2lzdGljcw== IHdlaWdodGVk IFBzeWNoaWF0 IjpbIg== IHNpY2tuZXNz IGRpdmlkZW5kcw== em9u UmVsZWFzZQ== IEtleXM= IEljaA== IGVueg== IEZlcm5hbmQ= IM6x IG1lYW5pbmdz IHBlbm55 IHN0ZXJu IGxhcg== IFB1Ymxpc2hlZA== IGJhY2tkcm9w S2lt IFN5bnQ= IGRlYnV0ZWQ= d20= IElzbGU= IHJlZ3VsYXRpbmc= b3R0aQ== IFNjaG9sYXJz aWNlc3Rlcg== IENoZWY= IHBvcHM= IExhdW5jaGVy IFZhcmlvdXM= IGNvbW1lbnRpbmc= b3NsYXY= ZW56aWU= IHJpdmFscnk= 4oKs UmVhbGx5 IG9yYw== IGJlYW4= IEp1ZHk= Tm90aWNl IEJpa2U= P10= IHJlbnRlZA== c3Rlbg== IGZvcmVmcm9udA== IEJhbGR3aW4= IHlpZWxkZWQ= dGFpbHM= UHJpbWU= IFNvdXJjZXM= aWNhdG9y U2Vhbg== IG1hcmNoaW5n T3V0cHV0 IEp1bmdsZQ== IHJlc2lkZQ== enpsZQ== IEFuZHJld3M= IHRvcnF1ZQ== QmFzaWM= QWN0dWFsbHk= c3RyYXA= cGVudGVy IGV4YW1z IFlh IDE1OQ== IERlY2lzaW9u IHJhbnNvbQ== ZXRlZW50aA== ZW5zaW5n MjEz IHN1bnNldA== NDA0 IFJhcGlk IEhlaW4= IEFib3JpZ2luYWw= IG9yZ2FuaXNt IFNldmVy IGNsYQ== YWpp U2ltcGxl IEZsYXZvcg== IEV2YWw= cHJ1cw== IGNob3J1cw== REFZ IGRlbm91bmNlZA== IGJpb2dyYXBoeQ== IFR1cm5idWxs UmVjZW50 Tm9ybWFs bGVjdGlvbnM= V29yZA== IGZlcnJ5 IFdhZ25lcg== aG9t VW5pdA== IHN1cGVybWFya2V0 IFNpdGg= IG5vbWluZWVz IGRpY3RhdG9yc2hpcA== aWRkbGVy IGFubm91bmNlcw== IFRoZW0= IE5lcHR1bmU= IGRlaXR5 IFlp IG1vbmFyY2g= QVJS IGludmFkZWQ= IEhvaw== dW50YXJ5 Q2VydGFpbg== ZWdh IGtpZGRpbmc= IFJlZ3VsYXRpb24= IHRyYXk= IHBob3RvZ3JhcGhlcnM= IEFyY2FuZQ== IGRpc2NoYXJnZWQ= IGV2YW5nZWxpY2Fs IGludGVyY2hhbmdl IGZpbG1tYWtlcg== IEVuZGxlc3M= IDI5MA== IFNhbHZhZG9y QVNZ IFNpZ25hbA== IHdyYXRo 4pw= bG90 Jy8= IHByb2plY3RpbGU= IGVtcGxveWluZw== IEludGVyZmFjZQ== MTkx YXRlbGxpdGU= IFJhdGg= cGFja2FnZQ== IGluZGljYXRpb25z SmFzb24= IGFyZ3M= IEdIeg== IHRpbHQ= bmFudHM= d29u 44K1 cmVkZA== cmVzY2VudA== IENhbGVuZGFy IG1vZHVsYXI= IGFzc2lzdGluZw== IHJlZGVlbQ== IEJlYW4= IHdvcnNo IGRlY2VudHJhbGl6ZWQ= KS4uLg== Mzc3 IGFycmF5cw== IGFjY29tcGxpc2htZW50cw== zr8= ZG90 IG11dHVhbGx5 IG9ic3RydWN0 IG1pc3JlcHJlc2VudA== b3Jlc3Q= aW9uaWM= cnVjZQ== JTs= IGtub3dpbmdseQ== cG9ydGluZw== aW5lbnRseQ== QXJp IFNjaHVsdHo= RGE= IENlcmU= IG9ic29sZXRl hYs= Z2l2ZQ== IGJhaXQ= IGVubGFyZw== TmVpbGw= IDE5MzM= IHJlY29uc2lkZXI= IFNlcmdlYW50 IERpYW5l IENvZ24= IEljb24= UG9zaXRpb24= IGZvc3Q= IHN0aXJyaW5n c2V2ZW4= IFNwYWNlWA== dWdnZXRz IG1lZGQ= R2Fs IFNpc3Rlcg== Qm95 IHRyaWdnZXJpbmc= VGFraW5n IHNjcmVhbXM= IGNhdXNhbA== IGF3YWtlbg== QXJt Mjk3 IGRpc3BhdGNoZWQ= IEZBTFNF IG9yZ2FuaXphdGlvbmFs IFRvbmc= IGRpbGVtbWE= ZGVtb24= U3Bs IGhvb2tz dWRpbmc= IHZhbGlkYXRl IHBvdGlvbg== IGNsYXc= IGJ1cmds IHF1aXI= QUNB IEJyZW5uYW4= IGR1cmFiaWxpdHk= IGJvbWJpbmdz IFdpbmRvdw== IGN1bHByaXQ= MzI1 VGhlcmVmb3Jl dW1iZXJlZA== cGVyZm9ybWFuY2U= d2FydHM= IGVuZm9yY2luZw== IEJsb3c= IHJlcHJpbnQ= aWZheA== YWxwaGE= IHNpbmlzdGVy IGJ1cmdlcg== ZmlnaHRpbmc= U2NvcmU= IFN0b25lcw== aWVt NDA1 Y2hlbXk= IHZpbmVnYXI= bm9t IHByZXZhaWxpbmc= IExhdGVzdA== wrY= IGJh IFdyaXRlcg== IDE3Nw== IENvbndheQ== IGNvbGxlY3Rz IHF1YW50aXRhdGl2ZQ== IGhvcnJvcnM= b2dlbnM= IFNsb3Y= IGxheXM= aGF3 IFNsYXNo IG5pZ2h0Y2x1Yg== IERhdmllcw== IGJyaWRl IFNjYXJsZXQ= eW1t IEFwcGxpY2F0aW9ucw== dmVsZW5ndGg= IHJldml2YWw= IHNvZnRseQ== IHpvbw== aXRhaXJl Q3Vy IGVsZWN0cm9t IHBsYW50aW5n T1RP IEVsZW1lbnRz IHN3YWxsb3c= cG9ydGVy IGxhcHRvcHM= IHBlYW51dA== IGxvYmJ5aXN0cw== zrI= UGFuZWw= IEpvYW4= aW1pbA== dG5j IHJlc2lzdGVk IG91dHdl IHJldGFpbmluZw== YXRyaQ== IHBvb3Jlcg== IFN5cmlhbnM= IEhhbW1vbmQ= IHdlbGQ= dWRlcg== dG9waWM= IFRU cmljaWE= IHRoaWV2ZXM= TGlj IEd1c3Q= IFdheXM= YXJldGg= MjQz IGJyb2FkY2FzdGVy c2hpZWxk YXNzaXVt dWJsZQ== IGFpcnN0cmlrZXM= b25zbw== IHBlZGFs IGNvbGxlY3RvcnM= IFZhbmRlcg== IE1lc2E= IGRpY3RhdG9y IGRpcg== ZW50b24= Y2FydA== c2NvcmU= YWRkZXI= Q3J5 IHNzaA== Z2dlcg== IGRydW5rZW4= IEdT IFNlYXQ= IGNvcm5lcmJhY2s= IHNraXBwZWQ= IFJlc2VhcmNoZXJz IEF1ZGk= UmVmZXJlbmNl IGhhdW50ZWQ= w6s= IENsaW5pYw== Y3o= IHBz IFBhbGFkaW4= IFJlY2lwZQ== IHN0aWdtYQ== b3BweQ== IG1vbmtleXM= IEhhd2s= U2Fk Ii8+ IFdvcmtzaG9w IFJldGFpbA== IEF2YXRhcg== NjI1 TmE= IFZD IFNlY3VyZQ== TVk= MTk4OA== b3NzaXA= IHByb3N0YXRl IHVuZGVu IGdhbWVy IENvbnRlbnRz IFdhcmhhbW1lcg== IFNlbnRpbmVs MzEw IHNlZ3JlZ2F0aW9u IEZsZXg= IE1BWQ== IGRyaWxscw== IERydWdz SXNsYW1pYw== IHNwdXI= IGNhZmU= IGltYWdpbmFyeQ== IGd1aWRpbmc= IHN3aW5ncw== IFRoZW1l b2J5 IG51ZA== IGJlZ2dpbmc= IHN0cm9uZ2g= IHJlamVjdGluZw== IHBlZGVzdHJpYW5z IFByb3NwZWN0 UmFyZQ== c2xl IGNvbmNlc3Npb25z IENvbnN0aXR1dGlvbmFs IGJlYW1z IGZpYmVycw== cG9vbg== IGluc3RpbmN0cw== cHJvcGVydHk= IEJJRw== U2FuZGVycw== aW1hdGVz IGNvYXRpbmc= IGNvcnBzZXM= IFRSVUU= Y2hlY2tlZA== IDE2Ng== QXNo IEpT IEZpY3Rpb24= IGNvbW11bmFs IGVuZXJnZXRpYw== b29vb29vb28= IG5vd2FkYXlz SUxE aWJv IFNVVg== UmVu IGR3ZWxsaW5n U2lsdmVy IHRhbGx5 IE1vdmluZw== IGNvd2FyZA== IGdlbmVyYWxz IGhvcm5z IGNpcmN1bGF0ZWQ= IHJvYmJlZA== IFVubGltaXRlZA== IGhhcmFzc2Vk IGluaGliaXQ= IGNvbXBvc2Vy IFNwb3RpZnk= IHNwcmVhZHM= MzY0 IHN1aWNpZGFs IG5vaXNlcw== IFN0dXI= IHNhZ2E= IEthZw== aXNv IHRoZW9yZXRpY2FsbHk= TW9uZXk= IHNpbWlsYXJpdHk= IHNsaWNlZA== dXRpbHM= aW5nZXM= Ii0= IGFudGg= IGltcGVk TW9kdWxl VGhyb3VnaG91dA== IG1lbnVz Y29tbWl0dGVl YW5kaQ== b2Jq aW5hdg== ZmlyZWQ= IEFiZHVsbGFo IHVuZGVhZA== IGZvbnRz SG9sZA== RU5H IHN1c3RhaW5hYmlsaXR5 IGZsaWNr IHJhem9y IEZlc3Q= IENoYXJhY3RlcnM= IHdvcmRpbmc= IHBvcHVsaXN0 IGNyaXRpY2l6aW5n IG11c2U= dmluZQ== IGNhcmRib2FyZA== IGtpbmRseQ== IGZyaW5nZQ== IFRoZWZ0 aWN1bHR1cmFs IGdvdmVybm9ycw== IO+/ve+/ve+/ve+/vQ== IDE2Mw== IHRpbWVvdXQ= IEF1dGg= Q2hpbGRyZW4= QVU= IHJlZGVtcHRpb24= IEFsZ2Vy IDE5MTQ= IHdhdmVk IGFzdHJvbmF1dHM= b2dyYW1z IHN3YW1w IEZpbm5pc2g= IGNhbmRsZQ== IHRvbm5lcw== dXRt IHJheQ== IHNwdW4= IGZlYXJmdWw= YXJ0aWNsZXM= IGNhdXM= b3JpY2FsbHk= IFJlcXVpcmVz IEdvbA== IHBvcGU= IGluYXVndXJhbA== IGdsZQ== QURB IElTSUw= IE9mZmVuc2l2ZQ== IHdhdGNoZG9n IGJhbGNvbg== ZW50aXR5 IEhvbw== IGdhbGxvbg== QUND IGRvdWJsaW5n IGltcGxpY2F0aW9u IFNpZ2h0 IGRvY3Ry LS0tLS0tLQ== IFxc IG1hbHQ= Um9sbA== IOKJpQ== IHJlY2Fw YWRkaW5n dWNlcw== IEJlbmQ= ZmlndXJl IHR1cmtleQ== IHNvY2lldGFs IFRpY2tldHM= IGNvbW1lcmNpYWxseQ== IHNwaWN5 IDIxNg== IFJhbXA= IHN1cGVyaW9yaXR5 w68= IFRyYWNrZXI= Q2FybA== IENveQ== IFBhdHJpb3Q= IGNvbnN1bHRlZA== IGxpc3Rpbmdz IHNsZXc= cmVlbnNob3Q= IEdvbmU= IFsuLi5d MzA5 IGhvdHRlc3Q= 2LE= IHJvY2t5 IERpYXo= IG1hc3NhZ2U= IHBhcmFseQ== IHBvbnk= QXo= IGNhcnRyaWRnZQ== IE5a IHNuYWNr IExhbWFy cGxlbWVudA== IExlc2xpZQ== IG1hdGVy IHNuaXBw MjQ2 IGpvaW50bHk= IEJyaXNiYW5l IGlQb2Q= IHB1bXBpbmc= IGdvYXQ= IFNoYXJvbg== ZWFsaW5n IGNvcm9u IGFub21hbA== cmFoaW0= IENvbm5lY3Rpb24= IHNjdWxwdHVyZQ== IHNjaGVkdWxpbmc= IERhZGR5 YXRoaW5n IGV5ZWJyb3dz IGN1cnZlZA== IHNlbnRpbWVudHM= IGRyYWZ0aW5n RHJvcA== KFs= IG5vbWluYWw= IExlYWRlcnNoaXA= IEdyb3c= IDE3Ng== IGNvbnN0cnVjdGl2ZQ== aXZhdGlvbg== IGNvcnJ1cHRlZA== Z2VyYWxk IENyb3M= IENoZXN0ZXI= IExhcA== 44Gq T1RI REFUQQ== IGFsbW9uZA== cHJvYmFibHk= SW1w IGZlYXN0 IFdhcmNyYWZ0 Rmxvcg== IGNoZWNrcG9pbnQ= IHRyYW5zY3JpcHRpb24= IDIwNA== IHR3ZWFrcw== IHJlbGlldmU= U2NpZW5jZQ== IHBlcmZvcm1lcg== Wm9uZQ== IHR1cm1vaWw= aWdhdGVk aGliaXQ= IENhZmU= dGhlbWVk IGZsdW9y YmVuY2g= IGRlY29t IFVudA== IEJhcnJldHQ= IEZhY3Rz IHRhc3Rpbmc= IFBUU0Q= IFNlYWw= IEp1ZGFpc20= IER5bmFtaWM= IENvcnM= VmU= IE1pbmc= IFRyYW5zZm9ybQ== dm9u IERlZmVuZGVycw== IFRhY3RpY2Fs IFZvbg== IFVuaXZlcnM= IGRpc3RvcnRlZA== IEJyZWF0aA== Pyci IGFnb24= IERlYWRseQ== IGxhbg== IEN5Y2xl b3JuZWQ= IHJlbGlhYmx5 IGdsb3I= IE1vbmtleQ== 44Oh IGFkcmVu IG1pY3Jvd2F2ZQ== IEFsYmFu aXJjcmFmdA== ZGlnaXQ= c21hcnQ= IERyZWFk wq/Cr8Kvwq/Cr8Kvwq/Cr8Kvwq/Cr8Kvwq/Cr8Kvwq8= e3s= IFJvY2hlc3Rlcg== IHNpbXBsaWZpZWQ= IGluZmxpY3RlZA== IHRha2VvdmVy IHlvdXJzZWx2ZXM= YWRpdGlvbmFs IG11c2N1bGFy S1M= IGluZ2Vu VGF4 IEZlYXR1cmU= Mjc3 IGNydWM= IGNyYXRl IHVuaWRlbnRpZmllZA== IGFjY2xhaW1lZA== IE1hbmdh IEZyYW5jZXM= IE5lcGFs IEdlcmFsZA== IEt1d2FpdA== IHNsYWlu IEhlYg== IEdva3U= 44Gu5g== Mjg2 TXJz IENvZHk= IFNhbmN0dWFyeQ== MDE2 IGRpc21hbnQ= IGRhdGFzZXQ= IEhvbmQ= YnVjaw== IFBhdHRlcnNvbg== IHBhbGV0dGU= IEdE aWNvbA== IExvZGdl IHBsYW5ldGFyeQ== YWtpbg== IFJlZ2lzdGVyZWQ= YWJ3ZQ== IFBldGVyc2J1cmc= IGhhaWxlZA== IFBpZWNl U2NoZQ== IERPSg== IGVudW1lcg== MTgx IE9ic2VydmVy IEJvbGQ= Zm91bmRlZA== Y29tbWVyY2U= IGV4cGxvaXRz IEZpbmRpbmc= VVJO IFNuZQ== IEFjaWQ= YXlldHRl IFZhbHVlcw== IGRyYXN0aWM= IGFyY2hpdGVjdHVyYWw= ICIu 15U= dW1wZWQ= IHdyYXBwaW5n IHdpZG93 IFNsYXllcg== bGFjZQ== b25jZQ== R2VybWFueQ== YXZvaWQ= IHRlbXBsZXM= UEFS w7Q= IEx1Y2lmZXI= IEZsaWNrcg== bG92 Zm9yY2Vz IHNjb3V0aW5n IGxvdWRlcg== dGVzeQ== IGJlZm9yZWhhbmQ= xJM= IE5lb24= IFdvbA== IFR5cGljYWxseQ== IFBvbGl0aWNv LSstKw== IGJ1aWxkZXI= IGRlcml2ZQ== S2lsbA== IHBva2Vy IGFtYmlndW91cw== IGxpZnRz IGN5dA== IHJpYnM= b29kbGU= IFNvdW5kcw== aGFpcg== IFN5bmRyb21l dGY= IHByb3BvcnRpb25hbA== dWlk IHBlcnRhaW5pbmc= IEtpbmRsZQ== IE5lZ3Jv IHJlaXRlcmF0ZWQ= IFRvbmlnaHQ= b3Rocw== IENvcm5lbGw= IG93aW5n IDIwOA== ZWxmYXJl b2NhdGluZw== IEJpcmRz U3Vic2NyaWJl IGVzc2F5cw== IGJ1cmRlbnM= IGlsbHVzdHJhdGlvbnM= YXJpb3Vz RVJBTA== IENhbGN1bA== IHhlbg== IExpbmtlZElu IEp1bmc= IHJlZGVzaWdu Q29ubm9y Mjk2 IHJldmVyc2Fs IEFkZWxhaWRl IExM IHNpbmtpbmc= IGd1bQ== VVNI Y2FwdA== IEdyaW1t IGZvb3RzdGVwcw== IENCRA== aXNwZXJz IHByb3Nl V2VkbmVzZGF5 IE1vdmllcw== ZWRpbg== IG92ZXJ0dXJuZWQ= IGNvbnRlbnRpb3Vz VVNC fn5+fn5+fn5+fn5+fn5+fg== IENvcHBlcg== IHBvaW50bGVzcw== TlY= dmFsdWVz b2xwaGlu ZGFpbg== IGRlcG9zaXRlZA== IEdX IHByZWNlZGVk IENsYQ== IEdvbGVt IE5pbQ== IM6y IEVuZ2luZWVycw== bWlkZGxl IGZsYXR0 b3BlcmF0aXZl IGNvdW5jaWxz aW1iYWJ3ZQ== ZWxpbg== IHN0cmVzc2Z1bA== IExE IHJlc2g= bGFrZQ== IHdoZWVsY2hhaXI= IEFsdGVybmF0aXZl IG9wdGltaXpl b3BlcmF0aW9u IHBlZWs= IG9uZXNlbGY= aWdpbA== IHRyYW5zaXRpb25z b3BhdGh5 Ymxhbms= IDE2OQ== MTcx X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw== IGxhdW5kZXJpbmc= RW5j IERFQw== IHdvcmtvdXRz IHNwaWtlcw== IGRpbm9zYXVycw== IGRpc2NyaW1pbmF0b3J5 UG9vbA== UmF0aGVy Mzg1 Uk5B dGVzdGVycw== ZXRv IElkZW50aXR5 IHZlaW4= IEJ1cnRvbg== IGFyY2FkZQ== NDIw VWx0aW1hdGVseQ== IFNhZGx5 w7A= cGlsbA== IGN1Ymlj IFNwZWN0cnVt dGhlc2U= c3RhdGVz IHVub2ZmaWNpYWw= aGF3a3M= IEVWRVJZ IHJhaW5ib3c= IGluY2FyY2VyYXRpb24= YW5kaW5n IHN5bGw= IEV2ZXJ0b24= IDE3OQ== IFNlcmJpYQ== IDE4OQ== bWV0ZXI= IE1pY2tleQ== IGFudGlxdQ== IGZhY3R1YWw= bmVjaw== IE5hcmU= bm9ybQ== bXVzdA== IGhpZ2h3YXlz IGdsYW0= IGRpdmlkaW5n IFNxdWFkcm9u IE1hcnRoYQ== IGJpcnRocw== Q292ZXI= Ly8vLy8vLy8vLy8vLy8vLw== IFdvbmc= UGhvdA== IEFMUw== cmlv IE5vbmV0aGVsZXNz IExlbW9u IDIwNg== IEVF IGRlcml2YXRpdmU= IFdXSUk= dm90ZQ== IHRoZXJlaW4= IHNlcGFyYXRpbmc= NDQ2 c3luYw== IFN0cmVldHM= IHJhdHQ= IG11bmljaXBhbGl0eQ== IFNob3J0bHk= IG1vbms= KSwi IHNjcnVi IG9wZXJhdGl2ZXM= TmVpdGhlcg== UGxhY2U= IExpbWl0 RmVtYWxl IEFjdG9y Q2hhcmFjdGVy IGNvbnN0aXR1dGVk MzU3 IHByb3Rlc3RlZA== IFN0cmF3 IEhlaWdodA== aWxkYQ== IFR5cGg= IGZsb29kcw== IGNvc21ldGlj V0FZ cGVydHVyZQ== dXBvbg== dG9ucw== ZXNzaW5n IFBvY2tldA== IHJvb2Z0 IENhdWNhcw== IGFudGlkZXByZXNz IGluY29tcGF0aWJsZQ== RUNE IG9wZXJh IENvbnRlc3Q= IGdlbmVyYXRvcnM= bGltZQ== RGVmZW5zZQ== MTk4Nw== Zm9ydW0= IHNhdmFnZQ== IEh1bmdhcmlhbg== bno= IG1ldGFsbGlj IGV4cGVsbGVk IHJlc2lkZW5jeQ== IGRyZXNzZXM= NjY2 IENsZW1lbnQ= ZmlyZXM= Q2F0ZWdvcnk= IGdlZWs= YWxpcw== IGNlbWV0ZXJ5 ZWR1Y2F0ZWQ= IGNyYXds IFVuYWJsZQ== IFR5c29u YWtpcw== IHBhcmRvbg== IFdyYQ== IHN0cmVuZ3RoZW5lZA== IEZvcnM= MzM1 IEhD IE1vbmQ= IHZpc3VhbHM= IEJlYXRsZXM= ZXR0bGVtZW50 IO8= Z3Jv IGJhc2g= IHBvb3Jlc3Q= IGV4Y2Vs IGFzcGlyYXRpb25z IE11bmljaXA= ZW5zaWJsZQ== IGNlcmVtb25pZXM= IGludGltaWRhdGlvbg== IENPTlRS YmVjaw== IEthcA== YXN1 IHRyYWRlbWFya3M= IFNldw== IENvbXBldGl0aW9u bmV0d29yaw== IEFycmk= IFRldA== Um9hbWluZw== V0M= RGF0 IHNvYg== IHBhaXJpbmc= IG92ZXJkb3Nl U0FZ YWJlcg== IHJldm9sdA== IEZhaA== YWN0aW5n ZXE= ZXN0YXRpb24= RmlnaHQ= IE1hcmtz Mjcz IDE3OA== UmF3 44GL MzQ5 YmxvY2tz IHZlcmdl ZXN0aW5l IFBvZGVzdGE= IGludmFzaXZl IHByb2ZvdW5kbHk= IEFv ZWFjaA== IGxlc3Q= aW50ZXJwcmV0 IHNocmlua2luZw== IGVycm9uZQ== IGNoZWVz bHlz IEl2eQ== IERpcmVjdG9yeQ== IGhpbnRlZA== VklDRQ== IGNvbnRhY3Rpbmc= IEdlbnQ= aGVp IGxhYmVsaW5n IG1lcmN1cnk= IExpdGU= IGV4cGlyZXM= IGRlc3RhYmls cml0aXM= Y3U= IGZlYXRoZXJz IHN0ZWVy IHByb2dyYW1tZWQ= IFZhZGVy R29pbmc= IEVsaW0= IHlv IE1pY2hl IDIwMw== IHNsZWV2ZXM= IGJ1bGx5 IEh1bWFucw== MzY4 IGNvbXByZXNz IEJhbm5lcg== QVJT IGF3aGlsZQ== IGNhbGli IHNwb25zb3JzaGlw IERpZmZpY3VsdHk= IFBhcGVycw== IGlkZW50aWZpZXI= fS4= IHlvZw== IFNoaWE= IGNsZWFudXA= IHZpYmU= aW50cm9kdQ== aW1taW5n QXVzdHJhbGlh IG91dGxpbmVz IFlvdXR1YmU= dHJhaW4= IE1ha2Vz IGRlcG9ydGVk IGNlbnRy IER1Zw== IEJvdWxkZXI= IEJ1ZmZ5 IGluanVuY3Rpb24= IEhhcmxleQ== IEdyb3Vwcw== IER1bWJsZWRvcmU= IENsYXJh ICIt IHNhY3JpZmljZWQ= ZXBo U2hhZG93 aWJsaW5n IGZyZWVsYW5jZQ== IGV2aWRlbnRseQ== cGhhbA== IHJldGFpbnM= TWly IGZpbml0ZQ== ZGFy IENvdXM= IHJlcGFpcmVk IHBlcmlvZGlj IGNoYW1waW9uc2hpcHM= IGFzdGVyb2lk YmxpbmQ= IGV4cHJlc3NseQ== IEFzdHJvcw== IHNjYWxlZA== IGdlb2dyYXBoaWNhbA== IFJhcGlkcw== RW5qb3k= IGVsYXN0aWM= IE1vaGFtZWQ= TWFya2V0 YmVnaW4= IGRpc2NvdmVycw== IHRlbGVjb21tdW5pY2F0aW9ucw== IHNjYW5uZXI= IGVubGFyZ2U= IHNoYXJrcw== IHBzeWNoZWRlbA== IFJvdWdl IHNuYXBzaG90 aXNpbmU= WFA= IHBlc3RpY2lkZXM= IExTRA== IERpc3RyaWJ1dGlvbg== cmVhbGx5 IGRlZ3JhZGF0aW9u IGRpc2d1aXNl IGJpb20= IEVYVA== IGVxdWF0aW9ucw== IGhhemFyZHM= IENvbXBhcmVk KSo= IHZpcnR1ZXM= IGVsZGVycw== IGVuaGFuY2luZw== IEFjcm9zcw== ZXJvcw== YW5nbGluZw== IGNvbWJ1c3Q= dWNjaQ== IGNvbmN1c3Npb24= IGNvbnRyYWNlcHRpb24= IEthbmc= IGV4cHJlc3Nlcw== IGF1eA== IFBpb25l IGV4aGliaXRz RGVidWc= T1RBTA== IEFscmVhZHk= IFdoZWVsZXI= IGV4cGFuZHM= Pzo= IHJlY29uY2lsaWF0aW9u IHBpcmF0ZXM= IHB1cnNl IGRpc2NvdXJhZ2U= IHNwZWN0YWNsZQ== UmFuaw== IHdyYXBz IFRob3VnaHQ= IGltcGVuZGluZw== T3Bw IEFuZ2xv IEVVUg== IHNjcmV3ZWQ= cmV0Y2hlZA== IGVuY291cmFnZW1lbnQ= bW9kZWxz IGNvbmZ1c2U= bW1t IFZpdGFtaW4= 4paR4paR Q3J1 IGtuaWdodHM= IGRpc2NhcmQ= IGJpc2hvcHM= IFdlYXI= IEdhcnJldHQ= a2Fu 44Of IG1hc2N1bGluZQ== Y2FwaXRhbA== IEF1cw== IGZhdGFsbHk= dGhhbmtz IEFV IEd1dA== MTIwMA== IDAwMDAwMDAw IHN1cnJvZw== IEJJT1M= cmFpdHM= IFdhdHRz IHJlc3VycmVjdGlvbg== IEVsZWN0b3JhbA== IFRpcHM= NDAwMA== IG51dHJpZW50 IGRlcGljdGluZw== IHNwcmluaw== IG11ZmY= IExJTQ== IFNhbXBsZQ== cHNj aWJp Z2VuZXJhdGVk IHNwZWNpbWVucw== IGRpc3NhdGlzZg== IHRhaWxvcmVk IGhvbGRpbmdz IE1vbnRobHk= IEVhdA== cG9vbnM= IG5lYw== IENhZ2U= IExvdHVz IExhbnRlcm4= IGZyb250aWVy IHBlbnNpb25z IGpva2Vk IEhhcmR5 PS09LT0tPS0= cmFkZQ== VUlE IHJhaWxz IGVtaXQ= IHNsYXRl IHNtdWc= IHNwaXQ= IENhbGxz IEphY29icw== ZmVhdA== IFVF IHJlc3RydWN0 IHJlZ2VuZXJhdGlvbg== IGVuZXJnaWVz IENvbm5vcg== T0hO IENoZWVzZQ== IGdlcg== IHJlc3VycmVjdA== bWFuYWdlbWVudA== Tlc= IHByZXNlbnRseQ== IEJydWlucw== TWVtYmVy IE1hbmc= aWRhbg== IGJvb3N0aW5n d3lu Ky4= cmVxdWlzaXRl IE5ZUEQ= IE1lZ2Fu IENvbmRpdGlvbnM= IHBpY3M= bmVzaXVt IFJhc2g= IDE3NA== IER1Y2tz IGVtYnJv enU= b25pYW4= cmVsaWdpb3Vz IGNyYXo= IEFDQQ== IFp1Y2tlcg== RU1B IFByb3M= V2VhcG9u IEtub3g= IEFyZHVpbm8= IHN0b3Zl IGhlYXZlbnM= IFB1cmNoYXNl IGhlcmQ= IGZ1bmRyYWlzZXI= RGlnaXRhbA== NTAwMA== IHByb3BvbmVudHM= L+KAiw== IGplbGx5 IFZpc2E= IG1vbmtz IGFkdmFuY2VtZW50 IFdlcg== IDE4Nw== ZXVz ZXJ0aWxpdHk= IGZldGFs IDE5MzY= TG8= IG91dGZpdHM= IHN0YWlyY2FzZQ== Ym9tYg== IGN1c3RvbWl6ZWQ= Y2xhaXI= VHJlZQ== IG1hcHBlZA== IENvbnNpZGVyaW5n IFRvcnJlcw== IG1ldGh5bA== IGFwcHJveGltYXRl IGRvb20= IEhhbnNlbg== IGNyb3Nzb3Zlcg== IHN0YW5kYWxvbmU= 5Lw= IGludml0ZXM= IGdyYXZleWFyZA== IGhw RG9uYWxkVHJ1bXA= IGVzY29ydA== R2Fy IHByZWRlY2Vzc29ycw== IGhheQ== IGVuenltZQ== IFN0cmFpZ2h0 dmlzb3Jz SW5n YW5lb3VzbHk= IEFwcGxpZWQ= IGZlYw== IER1cmFudA== IG91dHNwb2tlbg== b3Ji IHplYWw= IGRpc2dyYWNl Jyku IENoZW5n Mjg5 IFJlbmE= IFN1aWNpZGU= Mjk0 IG91dHJhZ2Vk IE5ld21hbg== IE52aWRpYQ== IEFiZXI= IEJlcnM= IHJlY3JlYXRpb24= V2luZG93 IERQ eGU= IHBlZG9waA== IGZhbGxvdXQ= YW1ib28= IHByZXNlbnRhdGlvbnM= IEFwcHM= IGh0bWw= MzQ1 IFhYWA== IHJ1YmJpbmc= IExlYXRoZXI= IGh1bWlkaXR5 c2V5cw== ZXN0YWJsaXNoZWQ= IFVuaXRz NjQ2 IHJlc3BlY3RhYmxl QXV0bw== IHRocml2aW5n IElubm92YXRpb24= YW5ncw== RXh0cmE= cmVndWxhdGlvbg== Mjk4 cGljaw== RXhhbXBsZXM= IENK QXR0YWNr IGRyYWNvbg== TFQ= IHN0aWNrZXI= cmVycw== IHN1bm55 SXNz cmVndWxhdGVk ZGlt IEFic3RyYWN0 IGh1c2JhbmRz T2ZmaWNl b21pbmF0aW9u aXRhcnM= QU5HRQ== YXNjYWw= IEtyaXM= IEluZmFudHJ5 IG1hbGY= IEF0aGU= IFJhbGx5 YmFsYW5jZWQ= Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u T1VQ IG1vbGVjdWxl bWV0aWNz IFNwbGl0 IEluc3RydWN0aW9ucw== IE5pZ2h0cw== Y2FyZHM= IHR1Zw== IGNvbmU= 5a0= IHR4 IERpc2N1c3Npb24= IGNhdGFzdHJvcGhl cHBl Z2lv IGNvbW11bmlzbQ== IGhhbHRlZA== IEd1YW50 Y2xlYW4= IFNjaGVk IEthbnll IHdhbmRlcg== IFNlcmlvdXNseQ== IDE4OA== ZW5uaWFs Zm9sbG93 cHJvZHVjdGl2ZQ== IEZsb3c= IFNhaWw= IGNyYXc= IHNpbXVsYXRpb25z b3J1 YW5nbGVz IE5vbGFu IG1lbnN0cnU= NDcw IDIwNw== YWph IGNhc3VhbGx5 Ym9hcmRpbmc= IDIyMg== b3Z5 IE51bWJlcnM= dW1hdA== T0U= Mjg3 IENsZW1zb24= IGNlcnRz IHNsaWQ= IFRyaWJl IHRvYXN0 IGZvcnR1bmVz IGZhbHM= IENvbW1pdHRlZXM= IGdw IGZpZXJ5 IE5ldHM= IEFuaW1l UGFja2FnZQ== IENvbXBhcmU= bGF1Z2h0ZXI= aW5mZWN0 IGF0cm9jaXRpZXM= IGp1c3RpY2Vz IGluc3VsdHM= IFZlcm5vbg== IHNoYWtlbg== IHBlcnNvbmE= ZXN0YW1w MzY3 YnJhaW4= IGV4cGVyaW1lbnRpbmc= S2Vu IEVsZWN0cm9uaWNz IDE2MQ== ZG9tYWlu IGdyYXBoaWNhbA== YmlzaG9w IHdob3BwaW5n IEV2YW5nZWw= IGFkdmVydGlzZXJz IFNwZWFy IGJpZHM= IGRlc3Ryb3lz dXR6 IHVuZGVyc2M= IEFERA== IGFudHM= IEN1bQ== aXBwbGVz IEZpbGw= IGdsYW5jZWQ= IGluZGljdGVk IEVmZg== IG1pc2Nvbg== IERlc2t0b3A= IGFiaWRl 44OA IElv IENvdWw= IGNhcHN1bGU= IENocnlz TU9O IHVuZGVz IElSQQ== IGNpdGF0aW9u IGRpY3RhdGU= IE5ldHdvcmtz IENvbmZsaWN0 IFN0dWZm eGE= aXNlYw== IENoZW1pc3RyeQ== IHF1YXJ0ZXJseQ== V2lsbGlhbXM= YW5hbg== T3B0 IEFsZXhhbmRyaWE= b3V0aGVhc3Rlcm4= IFNwcmluZ2ZpZWxk IEJsYWNrcw== IGdlb2dyYXBoeQ== MjQy IHV0bW9zdA== IEV4eG9u YWJvdXRz RVZB IEVuYWJsZQ== IEJhcnI= IGRpc2FncmVlZA== IEN5cHJ1cw== IGRlbWVudGlh IGxhYnM= IHViaXF1aXRvdXM= IExPVkU= IGNvbnNvbGlkYXRlZA== c3I= IGNyZWFteQ== IFRpbWJlcg== UmVnYXJkbGVzcw== IENlcnRpZmljYXRl ICIuLi4= b2dlbm91cw== Q2FwdGFpbg== IGluc3VsdGluZw== IFNvcm9z IEluc3Ry IEJ1bGdhcmlh YmV0dGVy IHN1Y2tpbmc= IERhdmlkc29u YXR6 IGNvbGxhdGVyYWw= Z2lm IHBsYWd1ZWQ= IENhbmNlbA== IEdhcmRuZXI= UkI= IHNpeHRlZW4= UmVtb3Zl dXJpc3RpYw== Y29vaw== Um9k IGNvbXByaXNpbmc= Zmxl KeKAlA== IFZpa2luZw== Z3Jvd3Ro YWdvbmFs IHNyZg== YWZldHk= bW90 TmVhcmx5 c3Rvd24= IEZhY3Rvcg== IGF1dG9tb2JpbGU= IHByb2NlZHVyYWw= bWFzaw== YW1waXJlcw== IGRpc2FwcGVhcnM= amFi MzE1 IDE5NTE= bmVlZGVk IGRhcmluZw== bGVhZGVy IHBvZGl1bQ== IHVuaGVhbHRoeQ== IG11bmQ= IHB5cmFtaWQ= b2NyZQ== IGtpc3NlZA== IGRyZWFtZWQ= IEZhbnRhc3RpYw== IEdseQ== 5Yo= IGdyZWF0bmVzcw== IHNwaWNlcw== IG1ldHJvcG9saXRhbg== IGNvbXB1bHM= aWV0cw== MTAxNg== IFNoYW0= IFB5cg== ZmxpZXM= IE1pZG5pZ2h0 IHN3YWxsb3dlZA== IGdlbnJlcw== IEx1Y2t5 IFJld2FyZHM= IGRpc3BhdGNo IElQQQ== IEFwcGx5 IGF2ZW4= YWxpdGllcw== MzEy dGhpbmdz ICgpLg== IG1hdGVz IFN6 IENPUA== b2xhdGU= T0ZG IHJlY2hhcmdl Y2Fwcw== IFlvcmtlcg== aWNvbmU= IGdhbGF4aWVz aWxlYWtz RGF2ZQ== IFB1eno= IENlbHRpYw== IEFGQw== Mjc2 IFNvbnM= IGFmZmlybWF0aXZl SG9y IHR1dG9yaWFscw== IENJVFk= IFJvc2E= IEV4dGVuc2lvbg== U2VyaWVz IGZhdHM= IHJhYg== bGlz IHVuaWM= IGV2ZQ== IFNwaW4= IGFkdWx0aG9vZA== dHlw IHNlY3Rhcmlhbg== IGNoZWNrb3V0 IEN5Y2w= U2luZ2xl IG1hcnR5cg== IGNoaWxsaW5n ODg4 b3VmbA== IF07 IGNvbmdlc3Rpb24= bWs= IFdoZXJlYXM= IDE5Mzg= dXJyZW5jaWVz ZXJpb24= IGJvYXN0 IFBhdGllbnRz IGNoYXA= IEJE cmVhbERvbmFsZFRydW1w IGV4YW1pbmVz aG92 IHN0YXJ0bGluZw== IEJhYnlsb24= d2lk b21ldw== YnJhbmNl IE9keXNzZXk= d2ln IHRvcmNo IFZveA== IE1veg== IFRyb2xs IEFucw== U2ltaWxhcmx5 IEZ1bA== MDA2 VW5sZXNz IEFsb25l c3RlYWQ= IFB1Ymxpc2hlcg== cmlnaHRz dHU= IERvZXNu IHByb2Zlc3Npb25hbGx5 IGNsbw== aWN6 IHN0ZWFscw== IOE= MTk4Ng== IHN0dXJkeQ== IEpvaGFubg== IG1lZGFscw== IGZpbGluZ3M= IEZyYXNlcg== ZG9uZQ== IG11bHRpbmF0aW9uYWw= IGZlZGVy IHdvcnRobGVzcw== IHBlc3Q= WWVzdGVyZGF5 YW5raW5k IGdheXM= IGJvcm5l IFBPUw== UGljdHVyZQ== IHBlcmNlbnRhZ2Vz MjUx cmFtZQ== IHBvdGlvbnM= QU1E IExlYmFuZXNl IHJhbmc= IExTVQ== b25ncw== IHBlbmluc3VsYQ== IENsYXVzZQ== QUxL b2hh IE1hY0Jvb2s= IHVuYW5pbW91cw== IGxlbmRlcnM= IGhhbmdz IGZyYW5jaGlzZXM= b3JlcnM= IFVwZGF0ZXM= IGlzb2xhdGU= YW5kcm8= U29vbg== IGRpc3J1cHRpdmU= IFN1cnZl IHN0aXRjaGVz IFNjb3Jw IERvbWluaW9u IHN1cHBseWluZw== QXJn IHR1cnJldA== IEx1aw== IGJyYWNrZXRz Kik= IFJldm9sdXRpb25hcnk= IEhvbmVzdA== IG5vdGljaW5n IFNoYW5ub24= IGFmZm9yZGVk IHRoYQ== IEphbmV0 IS0t IE5hcmVuZHJh IFBsb3Q= SG9s c2V2ZXI= ZWVudGg= IG9ic3RydWN0aW9u IDEwMjQ= c3RhZmY= amFz b3JnZXQ= c2NlbmVz bGF1Z2hz IEZhcmdv Y3JpbWU= IG9yY2hlc3Ry IGRlbGV0 aWxpYXJ5 cmlldmVk IG1pbGl0YXI= IEdyZWVuZQ== 4peP 44Gm IEd1YXJkcw== IHVubGVhc2hlZA== IFdlYmVy IGFkanVzdGFibGU= IGNhbGliZXI= IG1vdGl2YXRpb25z IMOg bUFo IExhbmth aGFuZGxl IHBlbnQ= IFJhdg== IEFuZ3VsYXI= IEthdQ== dW1iaW5n IHBoaWxhbnRocm9w IGRlaHlk IHRveGljaXR5 ZWVy IFlPUks= d2l0eg== 5bw= IElF Y29tbXVuaXR5 IEFI IHJldGFsaQ== IG1hc3NpdmVseQ== IERhbmllbHM= IERFTA== IGNhcmNpbg== VXJs IHJvdXRpbmc= IE5QQ3M= IFJBRg== cnljZQ== IHdhaXZlZA== IEd1YXRlbQ== RXZlcnlib2R5 IGNvdmVuYW50 IDE3Mw== IHJlbGF4aW5n IHF1YXJ0 YWxtb3N0 IGd1YXJkZWQ= IFNvbGRpZXJz IFBMQVk= IG91dGdvaW5n TEFORA== IHJld3JpdGU= IE1PVg== IEltcGVy IFNvbHV0aW9u IHBoZW5vbWVuYWw= IGxvbmdldml0eQ== IGltcGF0 IE5pc3Nhbg== aXJpZQ== IG9kb3I= IFphcg== b2tz IG1pbGl0aWFz IFNQRUM= IHRvbGVyYXRlZA== YXJzZXI= IEJyYWRmb3Jk Kyw= IHN1cnJlYWw= c2Y= Q2FuYWRpYW4= IHJlc2VtYmxhbmNl IGNhcmJvaHlkcmF0ZQ== VklFVw== IGFjY2Vzc29yeQ== bWVhbA== bGFyZ2VzdA== aWVnZWw= U29tZW9uZQ== IHRvdWdoZXN0 b3Nv IGZ1bm5lbA== IGNvbmRlbW5hdGlvbg== bHVlbnQ= IHdpcmVk IFN1bnNldA== SmVzdXM= IFBTVA== IFBhZ2Vz IFR5Y29vbg== IFBG IHNlbGVjdGlvbnM= IOCk cGFydGlzYW4= IGhpZ2hz IFJ1bmU= IGNyYWZ0cw== bGVhZA== IFBhcmVudHM= IHJlY2xhaW0= ZWtlcg== IEFsbGllZA== YWVwZXI= IGxvb21pbmc= IGJlbmVmaWNpYXJpZXM= IEh1bGw= U3R1ZGVudHM= SmV3aXNo ZGo= IHBhY3Q= dGVtcGxhdGU= IE9mZmljaWFscw== IEJheWxvcg== IGhlbXA= IHlvdXRocw== IExldmVscw== IFhpYW8= IENoZXM= IGVuZGVhdm9y IFJlbW92ZWQ= IGhpcHBvY2FtcA== SGVsbA== 44KK ODA1 IGRpbm9zYXVy IFdyYXRo IEluZG9uZXNpYW4= IGNhbGN1bGF0b3I= IERpY3Rpb25hcnk= IDQyMA== IE1BRw== KF8= ISw= dGFyaWFucw== IHJlc3RyaWN0aW5n cmFjdXNl IHdlZWtkYXk= T1VOVA== IHNocnVnZ2Vk bGVncm91bmQ= IGJhbGQ= IERvY3RvcnM= IHRvdXRlZA== IE1heHdlbGw= IDIxNA== IGRpcGxvbWF0 IHJlcHJlc3Npb24= IGNvbnN0aXR1ZW5jeQ== dmljZQ== cmFua2Vk IE5hcG9sZW9u Z2FuZw== IEZvcmV2ZXI= dHVu IGJ1bGI= IFBEVA== IENpc2Nv VkVO IHJlc3VtZWQ= U3RldmVu IE1hbml0b2Jh IGZhYnVsb3Vz IEFnZW50cw== MTk4NA== IGFtdXNpbmc= IE15c3Rlcmllcw== IG9ydGhvZG94 Zmxvb3I= IHF1ZXN0aW9ubmFpcmU= IHBlbmV0cmF0ZQ== IGZpbG1tYWtlcnM= IFVuYw== IHN0YW1wZWQ= IHRoaXJ0ZWVu IG91dGZpZWxk IGZvcndhcmRlZA== IGFwcHJh IGFpZGVk dHJ5 IHVuZm9jdXNlZA== IExpeg== IFdlbmR5 IFNjZW5l Q2hhcmc= IHJlamVjdHM= IGxlZnRpc3Q= IFByb3ZpZGVuY2U= IEJyaWQ= cmVnbg== IHByb3BoZWN5 IExJVkU= NDk5 IGZvcmdl IEZNTA== IGludHJpbnNpYw== IEZyb2c= IHdvbnQ= IEhvbHQ= IGZhbWVk Q0xVUw== YWVwZXJuaWNr IEhhdGU= IENheQ== IHJlZ2lzdGVyaW5n b3J0YWxpdHk= cm9weQ== b2NhbHlwdGlj YWFu bmF2 IGZhc2Npc3Q= SUZJRUQ= IGltcGxpY2F0ZWQ= IFJlc29ydA== IENoYW5kbGVy IEJyaWNr UGlu eXNj VXNhZ2U= IEhlbG0= dXNyYQ== 4piF4piF IEFiYmFz IHVuYW5pbW91c2x5 IGtlZXBlcg== IGFkZGljdGVk Pz8/ IGhlbG1ldHM= IGFudGlveGlk YXBzZWQ= ODA4 Z2llbmU= IHdhaXRz IG1pbmlvbg== cmF2ZWQ= IFBvcnNjaGU= IGRyZWFtaW5n IDE3MQ== IENhaW4= IHVuZm9y YXNzbw== IENvbmZpZ3VyYXRpb24= a3Vu aGFyZHQ= IG5lc3RlZA== IExEUw== TEVT IHR5aW5n ZW5vcw== IGN1ZQ== IE1hcnF1 c2tpcnRz IGNsaWNrZWQ= IGV4cGlyYXRpb24= IEFjY29yZGluZ2x5 IFdD IGJsZXNzaW5ncw== IGFkZGljdGl2ZQ== IE5hcnI= eXg= IEphZ3VhcnM= IHJlbnRz IFNpYmVy IHRpcHBlZA== b3Vzc2U= IEZpdHpnZXJhbGQ= IGhpZXJhcmNo b3V0aW5l IHdhdmVsZW5ndGg= Pi4= Y2hpZA== IFByb2Nlc3Npbmc= Lys= cmFua2luZw== RWFzeQ== IENvbnN0cnVjdA== IHRldA== aW5zdXJlZA== SFVE IHF1b3Rpbmc= IGNvbW11bmljYXRlZA== aW54 IGlubWF0ZQ== IGVyZWN0ZWQ= IEFic29sdXRlbHk= IFN1cmVseQ== IHVuaW0= IFRocm9uZQ== aGVpZA== IGNsYXdz IHN1cGVyc3Rhcg== IExlbm4= IFdoaXM= VWs= YWJvbA== IHNrZXQ= IE5pZXQ= IHBlcmtz IGFmZmluaXR5 IG9wZW5pbmdz cGhhc2lz IGRpc2NyaW1pbmF0ZQ== VGlw dmM= IGdyaW5kaW5n IEplbm55 IGFzdGhtYQ== aG9sZXM= IEhvbWVy IHJlZ2lzdGVycw== IEdsYWQ= IGNyZWF0aW9ucw== IGxpdGhpdW0= IGFwcGxhdXNl dW50aWw= SnVzdGljZQ== IFR1cmtz IHNjYW5kYWxz IGJha2U= dGFuaw== TWVjaA== IE1lYW5z IE1haWQ= UmVwdWJsaWNhbnM= aXNhbA== d2luZG93cw== IFNhbnRvcw== IHZlZ2V0YXRpb24= MzM4 dHJp IGZsdXg= aW5zZXJ0 IGNsYXJpZmllZA== IG1vcnRn IENoaW0= IFRvcnQ= IGRpc2NsYWlt bWV0YWw= IEFzaWRl IGluZHVjdGlvbg== IGluZmw= IGF0aGVpc3Rz YW1waA== IGV0aGVy IFZpdGFs IEJ1aWx0 TWluZA== IHdlYXBvbnJ5 U0VU IDE4Ng== YWRtaW4= Z2Ft Y29udHJhY3Q= YWZh IGRlcml2YXRpdmVz IHNuYWNrcw== IGNodXJu RWNvbm9t IGNhcHBlZA== IFVuZGVyc3RhbmRpbmc= IEhlcnM= IEl6 IGR1Y3Q= SUVOVA== YXVnaHR5 IOKclA== IE5Q IHNhaWxpbmc= SW5pdGlhbGl6ZWQ= IHRlZA== IHJlYWN0b3Jz IExvbWI= IGNob2tl IFdvcm0= IGFkbWlyYXRpb24= IHN3dW5n ZW5zaWJseQ== IHJhc2g= IEdvYWxz IEltcG9ydGFudA== U2hvdA== IFJhcw== IHRyYWluZXJz IEJ1bg== V29ya2luZw== IGhhcm1lZA== IFBhbmRvcmE= IExURQ== IG11c2hyb29t IENIQVI= IEZlZQ== IE1veQ== Qm9ybg== b2xpYmVyYWw= IE1hcnRpYWw= IGdlbnRsZW1lbg== IGxpbmdlcmluZw== T2ZmaWNpYWw= IGdyYWZmaXRp IE5hbWVz RGVy IHF1aW50 aXN0cmF0ZQ== YXplZXJh IE5PVElDRQ== IEZsb3JlbmNl IHBheWFibGU= IGRlcGljdHM= IFNwZWNpZXM= SGVhcnQ= 4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA IGVuY2xvc2Vk SW5jcmVhc2Vz RGFpbHk= IExpcw== IGVuYWN0bWVudA== IEJhY29u IFN0ZWVsZQ== ZGVtYW5k IDE4Mw== IG1vdXRocw== IHN0cmFuZGVk IGVuaGFuY2VtZW50 MDEx IFdoYXRz IGhlYWxlZA== ZW55 IFJhYg== IDM0MA== IExhYnlyaW50aA== cm9hY2g= IFlvc2g= IENsaXBwZXJz IGNvbmNlcnRz SW50ZXJuZXQ= MzU1 IHN0aWNrZXJz IHRlcm1lZA== IEF4ZQ== IGdyYW5kcGFyZW50cw== RnJhbmNl IENsaW0= IFVo dWxpYw== IHRocmlsbA== Y2VudHJpYw== IE92ZXJ2aWV3 IENvbmR1Y3Q= IHN1YnN0YW50aXZl IDE4Mg== bXVy IHN0cmF5 IENvZmY= IHJlcGV0aXRpdmU= IEZvcmdvdHRlbg== IHF1YWxpZmljYXRpb24= ZXdpdG5lc3M= IFppbWJhYndl IHNpbXVsYXRlZA== IEpE MjUz IFdhcmU= IHVuc2M= VGltZXM= IHN1bW1vbnM= IGRpc2Nvbm5lY3RlZA== IDE4NA== Y2l1cw== IEd1amFy b2RrYQ== IGVyYXNl IFRvYmFjY28= ZWxlY3RlZA== IHVuY29udA== IFNoZXBhcmQ= IExhbXA= IGFsZXJ0ZWQ= IG9wZXJhdGl2ZQ== YXJuYQ== dWludA== IG5lZ2xpZ2VuY2U= YWNlbWVudHM= IHN1cHJh IHByZXZhaWw= IFNoYXJr IGJlbHRz 44Gr IHRpZ2h0ZXI= RW5naW5lZXJz IGluYWN0aXZl IGV4cG9uZW50 IFdpbGxpZQ== YXBsZXM= IGhlaXI= IEhpdHM= aWFubg== IFNheXM= IGN1cnJlbnRz IEJlbmdhbA== IGFyaXN0 QnVmZmVy IGJyZWV6ZQ== IFdlc2xleQ== Q29sYQ== IHByb25vdW4= IGRlZWQ= IEtsaW5n IG9mdA== IGluZmxpY3Q= IHB1bmlzaGluZw== IG5t aWt1 T0RVQ1Q= MDE0 IHN1YnNpZHk= IERFQQ== IEhlcmJlcnQ= IEphbA== QmFuaw== IGRlZmVycmVk IHNoaXBtZW50 Qm90dA== IGFsbGU= YmVhcmluZw== SFRNTA== T2ZmbGluZQ== IDIxMw== IHNjcm9sbGluZw== IHNjYW5uZWQ= IExpYnlhbg== IFRPUA== Y2hyb20= ZHQ= Y29sdW1u UHN5TmV0TWVzc2FnZQ== WmVybw== IHRvcnNv MDUw 4pWQ IGltcGVyc29u IFNjaHdhcnR6 dWRpYw== IHBpc3NlZA== IFNhcHA= MjU3 IElTUHM= b2ds IHN1cGVydmlzZWQ= IGFkb2xlc2NlbnQ= IGF0dGFpbmVk IERlbGl2ZXJ5 IEJ1bm55 IDE5Mzc= IG1pbmlhdHVyZQ== IG9z IDM3MA== NjA4 IE1vdXJpbmhv IGlubmF0ZQ== IHRlbXBv IE5N IEZhbGxlbg== MDA5 IHByb3ZvY2F0aXZl U3RyZWFtZXI= IEJlbmVkaWN0 IEJvbHNoZQ== IHR1cnRsZQ== IFBDQg== IEVxdWFs RGlyZWN0b3I= IFJlbmQ= IGZsdWlkcw== QXV0aG9yaXRpZXM= IGNvdXNpbnM= cmVxdWVuY3k= IE5laWdoYm9y c2V0cw== c2hhcmVk Q2hhcmxlcw== cGFzc3dvcmQ= IGdlYXJz IDIxMQ== IEhhcmR3YXJl cmlrYQ== IHVwc3RyZWFt SG9t IGRpc3Byb3BvcnRpb25hdGVseQ== aXZpdGllcw== IHVuZGVmaW5lZA== IGVsZWN0cm9ucw== IGNvbW1lbW9y RXZlbnR1YWxseQ== ID48 IGlycmVzcG9uc2libGU= MjE4 IFJlbGVhc2Vk IE9WRVI= IElHTg== IEJyZWFk c3RlbGxhcg== IFNhZ2U= dHRlZA== ZGFtYWdl ZWRpdGlvbg== IFByZWM= IGxpbWU= IGNvbmZpbmVtZW50 IGNhbG9yaWU= d2VhcG9u IGRpZmZlcmluZw== IFNpbmE= bXlz YW1k IGludHJpY2F0ZQ== a2s= IFBBVA== w6Nv c3RvbmVz bGlua3M= IHJhbmNo U2VtaXRpYw== IGRpZmZlcmVudGlhdGU= IFNpbmdlcg== b2NjdXBpZWQ= IGZvcnRyZXNz Y21k IGludGVyY2VwdGlvbg== IEFua2FyYQ== IHJlcHQ= IFNvbGl0YWlyZQ== IHJlbWFrZQ== cHJlZA== IGRhcmVk YXV0aW9ucw== IEJBQ0s= UnVubmluZw== IGRlYnVnZ2luZw== IGdyYXBocw== Mzk5 IE5pZ2Vs IGJ1bg== IHBpbGxvdw== IHByb2dyZXNzZWQ= ZmFzaGlvbmVk IG9iZWRpZW5jZQ== RVJO IHJlaGVhcnM= Q2VsbA== dGw= U2hlcg== IGhlcmFsZA== IFBheW1lbnQ= IENvcnk= IERlcHQ= IHJlcGVudA== IFdlYWs= dWNrbGFuZA== IHBsZWFzaW5n IHNob3J0YWdlcw== IGp1cm9ycw== IEthYg== cXFh QW50aQ== IHdvdw== IFJDTVA= IHRzdW4= IFNpYw== IGNvbXByaXNlcw== IHNwaWVz IHByZWNpbmN0 bnU= IHVyZ2Vz IHRpbWVk IHN0cmlwZXM= IEJvb3Rz IHllbg== QWR2YW5jZWQ= IGRpc2NyZXRl IEFyY2hhbmdlbA== ZW1wbG95bWVudA== RGlmZg== IG1vbnVtZW50cw== IDIwOQ== d29ya2Vy IDE5Ng== IEln dXR0ZXJzdG9jaw== VFBT SmFj IGhvbWVsZXNzbmVzcw== IGNvbW1lbnRhdG9y IHJhY2lhbGx5 ZmluZw== c2VlZA== RWxl ZWxsYXRpb24= IGV0aGFub2w= IHBhcmlzaA== IERvbmc= IEF3YWtlbmluZw== IGRldmlhdGlvbg== IEJlYXJpbmc= IFRzdWs= IHJlY2Vzcw== IGx5bXBo IENhbm5hYmlz 5Zw= IE5FV1M= IGRyYQ== IFN0ZWZhbg== IFdyb25n IFNBTQ== IGxvb3NlbHk= IGludGVycHJldGVy IFBsYWlu R292ZXJubWVudA== IGJpZ290cnk= IGdyZW5hZGVz YXZleg== cGljdHVyZWQ= IG1hbmRhdGVk IE1vbms= IFBlZHJv IGxhdmE= Mjc0 IGN5bmljYWw= IFNjcm9sbHM= bG9ja3M= TXA= IGNvbmdyZWdhdGlvbg== b3JuaW5ncw== cGhpbA== IEliaWQ= IGZlcnY= IGRpc2FwcGVhcmluZw== IGFycm9nYW50 c3lu IE1hdmVy IFN1aXQ= MjQx IGFiYnJl YWNrZXJz UGE= IFllbA== V2hlbmV2ZXI= IDIzNQ== IFZpbmU= IEFuYXQ= IGV4dGluY3Q= TEVU IGV4ZWN1dGFibGU= VkVSUw== b3hpZGU= RE5B IFByZWw= IHJlc2VudG1lbnQ= IGNvbXByaXNl IEF2aXY= IGludGVyY2VwdGlvbnM= IHByb2xpZmlj SU5B IEVyaW4= dGhvdWdodA== MjE5 IFBzeWNoaWF0cnk= dW5reQ== Y2hlbWlzdA== SG8= IE1jQ295 IGJyaWNrcw== TG9z cmlseQ== IFVTU1I= IHJ1ZA== IGxhdWQ= IFdpc2U= IEVtZXJhbGQ= IHJldml2ZWQ= IGRhbW5lZA== IFJlcGFpcg== aWRlbQ== Y3RpY2E= IHBhdHJpYXJjaA== IE51cnM= bWVn IGNoZWFwZXN0 cmVlbWVudHM= ZW1wdHk= IENlbGVicg== IGRlcHJpdmF0aW9u Y2hhbnRlZA== IFRodW1ibmFpbHM= RW5lcmd5 IEV0aGFu IFFpbmc= IG9wcG9zZXM= V0lORA== dmlr IE1hdQ== IFNVQg== NjY3 R1JF IFZvbHVudGU= bnRvbg== Q29vaw== 5ZA= ZXNxdWU= IHBsdW1tZXQ= IHN1aW5n IHByb25vdW5jZQ== IHJlc2lzdGluZw== IEZpc2hpbmc= IFRyaWFscw== IHllbGw= IDMxMA== IGluZHVjdA== IHBlcnNvbmFsaXplZA== b2Z0ZW4= UmVi RU1CRVI= IHZpZXdwb2ludA== IGV4aXN0ZW50aWFs KCkp cmVtb3Zl TUVOVFM= bGFzc2Vz IGV2YXBvcg== IGFpc2xl bWV0YQ== IHJlZmxlY3RpdmU= IGVudGl0bGVtZW50 IGRldmlzZWQ= bXVzaWM= YXNjYWRl IHdpbmRpbmc= b2Zmc2V0 IGFjY2Vzc2liaWxpdHk= a2VyZWQ= QmV0dGVy IEpvaG5zdG9u dGhpbmtpbmc= U25vdw== IENyb2F0aWE= IEF0b21pYw== Mjcx MzQ4 IHRleHRib29r IFNpeHRo INin2YQ= IHNsaWRlcg== IEJ1cmdlcg== Ym9s U3luYw== IGdyYW5kY2hpbGRyZW4= IGNlcnY= Kyk= IGV0ZXJuaXR5 IHR3ZWV0aW5n IHNwZWN1bGF0aXZl IHBpdm90YWw= IFdQ IFRFUg== eW5hbWlj IHVwbA== IENhdHM= cGVyaGFwcw== IGNsYXNzbWF0ZXM= IGJsYXRhbnQ= Jy0= IGxha2g= YW50aW5l IEJvcmc= aW9t Lyg= IEF0aGxldGlj IHNhcg== T1RB IEhvZmZtYW4= TmV2ZXJ0aGVsZXNz IGFkb3JhYmxl IHNwYXduZWQ= QXNzb2NpYXRlZA== IERvbWVzdGlj IGltcGxhbnQ= IEx1eGVt IEtlbnM= IHB1bXBz IFNBVA== QXR0cmlidXRlcw== NTA5 YXZvdXI= IGNlbnRyYWxpemVk IFRO IGZyZXNobHk= IEFjaGlldmU= IG91dHNpZGVycw== aGVydHk= IFJlZQ== IFRvd2Vycw== IERhcnQ= YWthYmxl IG1w IEhlYXZlbmx5 IHJpcGU= IENhcm9saW5l cnlhbg== IGNsYXNzaWNz IHJldGlyaW5n IDIyOA== IGFo IGRlYWxpbmdz IHB1bmNoaW5n IENoYXBtYW4= T3B0aW9ucw== bWF4d2VsbA== dm9sdW1l IHN0YWw= IGV4cG9ydGVk IFF1aXRl IG51bWVyaWNhbA== QnVybg== RmFjdA== IEtleXN0b25l IHRyZW5kaW5n IGFsdGVyaW5n IEFmcmljYW5z NDc4 IE1O IEtub2Nr IHRlbXB0YXRpb24= IHByZXN0aWdl T3ZlcnZpZXc= IFRyYWRpdGlvbmFs IEJhaHJhaW4= UHJpdmF0ZQ== IEhPVQ== IGJhcnI= IFRhdA== Q3ViZQ== VVNE IEdyYW5kZQ== IEdhdA== IEZsbw== IHJlc2lkZXM= IGluZGVj dm9sZW50 IHBlcnBldHVhbA== dWJlcw== IHdvcmxkdmlldw== IFF1YW50dW0= IGZpbHRlcmVk IGVuc3U= b3JnZXRvd24= RVJTT04= IE1pbGQ= Mzc5 T1RU w6U= IHZpdGFtaW5z IHJpYmJvbg== IHNpbmNlcmVseQ== IEhpbg== IGVpZ2h0ZWVu IGNvbnRyYWRpY3Rvcnk= IGdsYXJpbmc= IGV4cGVjdGFuY3k= IGNvbnNwaXI= IG1vbnN0cm91cw== IDM4MA== cmVjaQ== IGhhbmRpYw== IHB1bXBlZA== IGluZGljYXRpdmU= IHJhcHA= IGF2YWls IExFR08= IE1hcmlqdWFuYQ== MTk4NQ== ZXJ0b24= IHR3ZW50aWV0aA== IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyM= IFN3YW1w IHZhbHVhdGlvbg== IGFmZmlsaWF0ZXM= YWRqdXN0ZWQ= IEZhY2lsaXR5 MjYy IGVuenltZXM= aXR1ZGluYWw= IGltcHJpbnQ= U2l0ZQ== IGluc3RhbGxlcg== IFRSQQ== bW9sb2d5 bGluZWFy IENvbGxlY3RpdmU= aWdhdGluZw== IFRva2Vu IHNwZWN1bGF0ZWQ= S04= IENseQ== b3JpdHk= IGRlZmVy IGluc3BlY3RvcnM= YXBwcm92ZWQ= Uk0= IFN1bnM= IGluZm9ybWluZw== IFN5cmFjdXNl aWJsaQ== NzY1 IGdsb3Zl IGF1dGhvcml6ZQ== 4oCm4oCm4oCm4oCm4oCm4oCm4oCm4oCm IENydWlzZQ== IGNvbnRyYWN0aW5n c2hlbGw= SUZF IEpld2Vs cHJhY3Q= IFBob3Rvc2hvcA== IEtub3dpbmc= aGFybQ== IGF0dHJhY3Rpb25z YWRhbg== ZXR1cw== MDE4 d2FnZW4= QWx0 IG11bHRpcGx5 IGVxdWlsaWJyaXVt Ons= IEZpZ2h0ZXJz IEVkZ2Fy IGZvdXJ0ZWVu R292ZXJu IG1pc3VzZQ== IGFidXNpbmc= IGFuY2VzdHJ5 cmFtZXI= NjQ0 IHdvcm1z IHRoaWNrZXI= IENvbWJpbmU= IHBlYXNhbnRz IHZpbmQ= IGNvbnF1ZXN0 IG1vY2tlZA== IGNpbm5hbW9u IENhbGQ= IEdhbGx1cA== IGF2b2lkYW5jZQ== IGluY2FybmF0aW9u IFN0cmF0 IHRhc3RlZA== ZW50YQ== IE5lYWw= cGFyZWQ= IHRlcm1pbm9sb2d5 amVjdGlvbg== U2NpZW50aXN0cw== IElOUw== IERlZQ== IGRpcmVjdG9yaWVz Um9hZA== IFNoYXA= YnJpZ2h0 IERpcmVjdG9ycw== IENvbHVtbg== IGJvYg== IHByZWZlcmFibHk= IGdsaXRjaA== ZnVydA== IGVn aWRpcw== Q0JD IHN1cnJlbmRlcmVk IHRlc3RhbWVudA== MzM2 dWdnZXN0 IE5pbA== YW5vdGhlcg== IHBhdGhldGlj IERvbm5h IDIxOA== IEF2ZXJ5 IHdoaXNrZXk= IGZpeHR1cmU= IENvbnF1ZXN0 IGJldHM= T2Nj IExlaWNlc3Rlcg== XS4i ICkpOw== IGZsYXNoZXM= NDU2 IG1hc2tlZA== Z2VicmE= IGNvbXB1dGVk Y2hlbA== YXVkZXI= IGRlZmVhdHM= IExpYmVyYXRpb24= IE9zYW1h IFZpdmU= Q2hhbmdlcw== Q2hhbm5lbA== IHRhcmlmZnM= IG1hZ2U= IFNheA== IGluYWR2ZXJ0ZW50bHk= IENSRQ== IFJlYXBlcg== aW5reQ== Z3JhZGluZw== IHN0ZXJlb3R5cA== IGN1cmw= IEZBTlQ= IGZyYW1ld29ya3M= TW9t IEFuY2g= IGZsYXZvdXI= Y2FyYm9u IHBlcm1pdHRpbmc= bGV0Y2hlcg== IE1vemlsbGE= IFBhcmtpbmc= IENoYW1w U2Nyb2xs IG11cmRlcmVy IHJlc3RlZA== IG93ZXM= IFBvc3M= QURE SUZG cmVzb2x1dGlvbg== IE1pbmluZw== IGNvbXBhcmF0aXZl RGlt IG5laWdoYm91cmluZw== IEFTVA== IFRveGlj IGJpYXNlcw== IGd1bmZpcmU= dXJvdXM= IE1vbWVudA== MTk4Mw== IHBlcnZhc2l2ZQ== dHRw IE5vcm1hbGx5 cmly U2FyYWg= IEFsYmFueQ== IHVuc2V0dA== IFNNUw== aXBlcnM= bGF5ZXI= IFdoaXRlcw== dXBsZQ== IHR1cmJv IExlZWRz IHRoYXRz IE1pbmVy TUVS IFJlaWdu IHBlcm1l IEJsaXR6 IDE5MzQ= IGludGltaWRhdGluZw== dHViZQ== IGVjY2VudHJpYw== YWJvbGlj Ym94ZXM= IEFzc29jaWF0ZXM= dm90ZXM= IHNpbXVsYXRl dW1ibw== YXN0ZXJ5 IHNoaXBtZW50cw== RkZGRg== YW50aA== IHNlYXNvbmVk IGV4cGVyaW1lbnRhdGlvbg== 4pag bGF3cw== TWVldA== aWRkbGVz YW50aWNz UmF0aW5n SVNJUw== aGlmdA== IGZyb250cw== YnVm MDE3 IHVuYXR0 IERpbA== bGVhc2Vz IEdhcmRlbnM= Nzc3 dG91Y2g= dmVsbA== NDU4 ID09PT09 c2F2aW5n IGVyb3Npb24= IFF1aW4= IGVhcm5z IGFjY29tcGxpc2htZW50 IFdlaQ== IDxb X19fX18= IGlycmln IFRlZGR5 IGNvbnF1ZXJlZA== IEFybW9yZWQ= IGFzc2VydHM= IG1hbmlwdWxhdGluZw== csOp IHRyYW5zY3JpcHRz R2FsbGVyeQ== IHBsb3R0aW5n TmVpbA== IGJldHJheWFs bG9hZGVy IFN1bA== IGRpc3BsYWNlbWVudA== IHJveWFsdHk= IFdJ aGVpdA== IERldmljZXM= YWxsZWw= IG11bmljaXBhbGl0aWVz IGNhbmFs U3RhcnM= IFVBRQ== ICLigKY= IENV YWJvdmU= IHJlc29uYW5jZQ== IGd1aUFjdGl2ZVVu YWRkZWQ= IEJyYXZlcw== IElibg== IGhlcmVieQ== IEJSRQ== IHNoYXJlaG9sZGVy IEhpcg== IEpp IHN0cmFuZ2VseQ== IGFkbWlyZWQ= IHBsaWdodA== IGJhY2hlbG9y IFBvbGU= Y2lwbGluYXJ5 VG9ueQ== IEFybWVuaWFu IHVubWFu IFppb25pc3Q= U3RhZ2U= aXNjb3Zlcg== IGF1dG9tb3RpdmU= IHNpZGVsaW5lcw== IHNsaWNr IFJlbmFpc3NhbmNl IEZVTg== SW1hZ2Vz IEhhag== IHBpbmc= IHNob3J0Y3V0 IEJsdmQ= IExvb2tz IGJ1cnN0cw== IGNsYW1w IG1pc2g= IHNvcnRpbmc= IHBhdHJpb3Q= IGNvcnJlY3RuZXNz IFNjYW5kaW5hdg== IENhdmFsaWVycw== cHl0aG9u YXphcg== IDM3NQ== IEphdW5l NDA5 IGRldHJpbWVudGFs IHN0YWJiaW5n IHBvaXNvbmVk IGZvdW50YWlu b2NlbnQ= b3JzdA== IE1hcmk= IHJhaW5z IE92ZXJz IEluc3RpdHV0aW9u dWRnZXQ= QU1Z dGFsZQ== IEtS IFByaWNlcw== IGhlYWRhY2hlcw== IGxhbmRzbA== IEF1cmE= Qm9udXM= IFpoYW8= IEhpcA== IGhvcHM= IEt1cmRpc3Rhbg== IGV4cGxvaXRpbmc= cnlu IGh5cG9jcmlzeQ== b3BlbmluZw== IGd1bnNob3Q= IHdlZA== aW50ZXJzdGl0aWFs SW50ZXJzdGl0aWFs IGFtZW4= QnJlYWtpbmc= IG1hcmtldGVk V2lyZQ== IENyb3dk Q29udGludWU= IEtub3du IEVmZmVjdGl2ZQ== b3JlYW4= aXpvbnM= Sm9zZXBo IGVzY2FsYXRpb24= dXNlcm5hbWU= IGN1cnRhaW4= QVRFUw== IFBBUg== IE1peQ== IGNvdW50ZXJmZQ== bGVuZQ== IGNvbnRlbmRlcnM= ZGFpbHk= IEFzYw== IFBoaWxsaXA= bW9zdGx5 IGZpbGVuYW1l aGVuZQ== IHJlc2VtYmxpbmc= IHN0YWdpbmc= IENobG9l IHdpcmluZw== SG9u IFJlbmV3 b3R0YWdl IEh5YnJpZA== bXVjaA== IHN0cm9rZXM= IHBvbGljeW1ha2Vycw== QVBURVI= IEFya2hhbQ== cGxvdA== IGFzc2lzdGFudHM= IGRlcG9ydA== IFNlZ2E= IGluZmx1ZW56YQ== IEN1cnNlZA== IEtvYmU= IHNraW5ueQ== UHJvdmlkZXI= IFJpcA== IGluY3JlbWVudGFs cHJvZHVjdHM= QkY= IGRvbWU= IENyZWRpdHM= IGxvc2Vycw== aW50cw== IEJldHR5 IFRhbGVudA== IERBTQ== THY= RXNz IGRlbnM= dGVtcA== SnVkZ2U= b2RpYw== ICco VVJFUw== ZXRzaw== Vk8= IHJldHJpZXZlZA== IGFyY2hpdGVjdHM= 2Yc= IGV0aGlj IFNlY29uZGFyeQ== c3RvY2tz YWRpYQ== IDMyNQ== IE9waW5pb24= IHNpbXVsdGFuZW91cw== IGRpeno= dWxw IHNtdWdnbGluZw== aXBwZXJ5 UmFuZG9t ZmFjaW5n IERhcw== IHN0b2NrcA== IGRpc2Nsb3N1cmVz cG9pbnRlcg== IGNvcmFs IFNlbGVjdGlvbg== IFBpa2U= aXZhbGVudA== IHJ1dGhsZXNz IFJpbQ== IGVuc3Vpbmc= IEV4cGVyaW1lbnQ= IGNvbmdyZXNzbWFu IGJlbGlldmVy IHVuc3BlY2lmaWVk IE1vcmQ= IGtub3dsZWRnZWFibGU= IFZFUlk= VFg= IHN0cmFwcw== IHR1cmY= YXBlc2hpZnRlcg== IG1hcml0YWw= IGZsb2Nr 44GG MjYz QU1FUw== IE9wcG9zaXRpb24= IHRyZWFzdXJlcw== IEdPRA== IG1vZGVsZWQ= IFdPUkxE IChb IFVzYWdl SEY= ICQo dXNzZWQ= IHBpb25lZXI= RWlnaHQ= cGFyc2U= YnJlYWQ= cml0eg== IE1pcmFuZGE= IEthbnQ= Kysp b3Jlbg== IHByb3Zva2Vk IGJyZWVkcw== IEluY2x1ZGVz IFBhc3RlYmlu IEZsaXA= SmF2YQ== IGJyaW5r IHJ1bW9yZWQ= IHVuc2Vlbg== IGdhcm5lcmVk IERlZmlu YWx0ZWQ= IHRhdHRvb3M= IGhlc2l0YXRpb24= aXNpdGlvbnM= IFdlYXZlcg== IFJlcG9ydGluZw== IHRoZXJhcGllcw== IGNvbnN1bHRhbnRz IHJlc2lkdWFs IE1hbGk= IFJvbWE= aWFnbw== IFJlc2lkZW50cw== dWJp IHJlbWVkaWVz IGFkYXB0aXZl IEFsaXZl IEJhcmNs IHdhbGxldHM= Y3J5cHQ= ZXRlcm1pbmF0aW9u IFBlbG9zaQ== IHNsaXBwaW5n b3Rvbmlu IGFsbGlhbmNlcw== cGF0cmljaw== aXJpcw== IG9ydGg= IFBlcmtpbnM= IERlVg== IEdldHM= IGRyeWluZw== Z2Vl Zm9yZXN0 IEZvcmdldA== b3JlbQ== MzM5 IHZhZ3VlbHk= IERpb24= IFBvcm4= IEhPVw== IHBuZXVt IHJ1YmJsZQ== IFRhc3Rl ZW5jaWE= IEdlbA== IGRzdA== IDI0NQ== IE1vcm9jY28= aW5mbGFtbQ== IFR3aW5z IGJvdHM= ZGF1Z2h0ZXI= IEJhbGs= IGJyZXRocmVu IGxvZ29z IGdvYmw= ZnBz IHN1YmRpdmlzaW9u IHBhd24= IHNxdWVlemVk IG1vcmFsZQ== IERX JyI= IGtub3Q= b29reQ== IGRpdmlzaXZl IGJvb3N0ZWQ= Y2h5 44OQ aWZhY3Q= IG5ld2NvbWVycw== IFdyZXN0bGluZw== IHNjb3V0cw== d29sdmVz UmF0 IG5pbmV0ZWVudGg= IE9zYm9ybmU= U3RhdHM= IGVtcG93ZXJlZA== IHBzeWNob3BhdGg= IE9FTQ== dWdnYWdl IFBL IE1vaGFtbWFk UGFr IGFuYXJjaGlzdHM= IEV4dHJhY3Q= ZXN0aGVz IFN0b2NraG9sbQ== bG9v IEdyYXBo IGRlcGxveWluZw== IFN0cmFuZ2Vy IE1vbGQ= IHN0YWZmZXI= IGRpc2NvdW50ZWQ= dWNrbGU= cGxlYXNl IExhbmRpbmc= w61h IDE5Mw== IGFudGU= IHJlcGV0aXRpb24= ICsvLQ== IHBhcm9keQ== IGxpdmVseQ== QUFB IEhvcnVz IHBpdHM= aW5kZXJz TE9D IFZlbmljZQ== NDA2 IERpc2NvdmVy 4oY= ZWxsZWN0dWFs IHBlbnM= IGV5ZWw= aWd1b3Vz SW1wbA== IGpva2luZw== IGludmFs IEJlbGZhc3Q= IGNyZWRpdG9ycw== IFNreXdhbGtlcg== b3Zza3k= IGNlYXNlZmlyZQ== IHNlYWxz aXNvZnQ= KSku IEZlbGl4 SVRT IHRyZXNw IEJsb2NrY2hhaW4= ZXdhcmU= IFNjaHdhcg== ZW5uZQ== bW91bnRlZA== IEJlYWNvbg== bGVzaA== IGltbWVuc2VseQ== IGNoZWVyaW5n RW1wbG95 c2NlbmU= aXNobHk= YXRjaGV3YW4= IE5pY29sYXM= IGRyYWluZWQ= IEV4aXQ= IEF6ZXJi anVu IGZsb2F0ZWQ= dWFuaWE= RGVlcA== IHN1cGVydg== IG15c3RpY2Fs IERvbGxhcg== IEFwb3N0bGU= IFJFTA== IFByb3ZpZGVk IEJ1Y2tz 44O0 Y3V0dGluZw== IGVuaGFuY2VtZW50cw== IFBlbmd1aW5z IElzYWlhaA== IGplcms= IFd5bg== IHN0YWxsZWQ= IGNyeXB0b2N1cnJlbmNpZXM= IFJvbGFuZA== c2luZ2xl IGx1bWlu IEZlbGxvdw== IENhcGFjaXR5 IEthemFraA== V04= IGZpbmFuY2Vk Mzg5 IHRpZA== IGNvbGx1c2lvbg== IE15cg== 7oA= U2VuYXRvcg== IHBlZGlhdHJpYw== IG5lYXRseQ== IHNhbmR3aWNoZXM= IEFyY2hpdGVjdHVyZQ== IHR1Y2tlZA== IGJhbGNvbnk= IGVhcnRocXVha2Vz cXVpcmU= RnV0dXJl IGhlZnR5 6Zc= IHNwZWNpYWxpemVz IHN0cmVzc2Vz IHNlbmRlcg== IG1pc3VuZGVyc3RhbmRpbmc= IGVwaWxl IHByb3Zva2U= IENvbG9ycw== IGRpc21heQ== dWtv W18= NTg2 bmV1dHJhbA== IGRvbmF0aW5n IFJhbmRhbGw= TXVsdGk= IGNvbnZlbmllbnRseQ== IFN1bmc= IENvY2E= IHRlbnRz IEFjY2VsZXI= IHBhcnRuZXJlZA== Mjcy aXJtaW5n IEJBUw== c29tZXRpbWVz IG9iamVjdGVk dWJyaWM= cG9zZWQ= TENT Z3Jhc3M= IGF0dHJpYnV0YWJsZQ== VklT SXNyYWVsaQ== IHJlcGVhdHM= IFJN dmFn dXRh aW5vdXM= IGluZXJ0 IE1pZ3VlbA== 5q0= IEhhd2FpaWFu Qm9hcmQ= IGFydGlmaWM= IEF6ZXJiYWk= YXNpbw== IFJlbnQ= QUlO IGFwcGxpYW5jZXM= IG5hdGlvbmFsaXR5 IGFzc2hvbGU= IE5lYg== IG5vdGNo aGFuaQ== IEJyaWRl QXZhaWxhYmlsaXR5 IGludGVyY2VwdGVk IGNvbnRpbmVudGFs IHN3ZWxsaW5n IFBlcnNwZWN0 Ymllcw== Ljw= aXRobWV0aWM= IExhcmE= IHRlbXB0aW5n YWRkcg== IG92ZXJzZWVpbmc= Y2xhZA== IERW IEdpbmdyaWNo IG11bg== IEFwcHJvcHJp IGFsdGVyYXRpb25z IFBhdHJlb24= IGhhdm9j IGRpc2NpcGxpbmVz IG5vdG9yaW91c2x5 YWt1eWE= aWVyaQ== Pyku IFdlbnQ= IHNpbGljb24= IHRyZW1i Q29udGFpbmVy S25vd24= IG1vcnRhcg== ZXN0ZQ== aWNrYQ== QXJ0aHVy IFByZXZpb3VzbHk= IE1hcnR5 IHNwYXJzZQ== Z2lucw== IGlud2FyZA== IFBhcnRpY2lwYW50 Q29weQ== IE1pc2M= IGFudGliaW90aWM= IFJldHJv IGVsdXNpdmU= IGFzc2FpbA== IEJhdHRhbGlvbg== IEJvdWdodA== IGRpbWluaXNo IEV1cm9wYQ== c2Vzc2lvbg== IERhbmdlcm91cw== aWVzZWw= IGRpc2JlbGllZg== IGJsYXN0cw== ZXh0cmVtZQ== IEJveWQ= IFByb2plY3Rz IEd1eXM= IHVuZGVyZ29uZQ== IGdyaWxs IER3aWdodA== IDE5Nw== VVNFUg== IGZpbGVzeXN0ZW0= IGNsb2Nrcw== VGF5bG9y IHdyYXBwZXI= IGZvbGRpbmc= b3VzYW5k IFBoaWxpcHBpbmU= QVRJT05BTA== IFBlcnRo IGFzaGVz IGFjY3VtdWxhdGU= IEdhdGV3YXk= U2hvcA== b3Jrc2hpcmU= SGFu IEJhcnJlbA== IExlaA== IFhW IHdoaW0= IHJlcG8= IENH IE1hbQ== IGluY29ycG9yYXRpbmc= IGJhaWxvdXQ= IGxpbmd1aXN0aWM= IGRpc2ludGVn Q0xF IGNpbmVtYXRpYw== IEZpYmVy U3lu aWxpb24= IENvbXBvcw== Y2hlbnM= IG5lb2M= IGJvaWxlZA== RklORQ== b25v dW5jbGU= aWtlbg== IEJN zrk= IHJlY2VpcHRz IGRpc3Bvc2Vk IFRoaXJ0eQ== IFJvdWdo IEFCUw== IG5vdHdpdGhzdGFuZGluZw== b2xsZW4= IyQ= IHVucmVsaWFibGU= IGJsb29t IG1lZGlvY3Jl IHRyYW0= IFRhc21hbg== IHNoYWtlcw== IG1hbmlmZXN0bw== IE1X IHNhdGlzZmFjdG9yeQ== IHNob3Jlcw== IGNvbXB1dGF0aW9u IGFzc2VydGlvbnM= b3Jtb25z YXJhZw== YWJpdA== RGVtb2NyYXRz IExvb3Q= IFZvbGtz aGFpcmVk IGdyYXZpdGF0aW9uYWw= U2luZw== IE1peg== IHRocm90dGxl IHR5cmFubnk= IFZpZXdz IHJvYmJlcg== IE1pbm9yaXR5 IHNocmluZQ== c2NvcGU= cHVycG9zZQ== IG51Y2xldXM= b3VyY2luZw== IFVTREE= IERIUw== d3Jh IEJvd2ll U2NhbGU= IEJFTA== eGk= SXRlcg== ICgpLA== d3JpZ2h0 IHNhaWxvcnM= b3VzZWQ= TkFTQQ== IFByb29m IE1pbmVyYWw= dG9rZW4= IEZE UmV3 IGVsbA== NjMw IGNoYW5jZWxsb3I= IEdvcw== IGFtb3VudGVk IFJlY3Jl b21leg== IE9wdGlt IE9saXZl IHRyYWNrZXI= b3dsZXI= IFVuaXF1ZQ== Um9vdA== IG1hcml0aW1l IFF1cmFu IEFkYXB0 IGVjb3N5c3RlbXM= IFJlcGVhdA== IFNveQ== IElNUA== IGdyYWR1YXRpbmc= YW5kZW0= UHVy IFJlc2V0 IFRyaWNr IFBoaWxseQ== IFR1ZQ== IE1hbGF5c2lhbg== IGNsaW1heA== IGJ1cnk= IGNvbnNwaWM= IFNvdXRoYW1wdG9u IEZsb3dlcnM= IGVzY29ydGVk IEVkdWNhdGlvbmFs IElSQw== IGJydXRhbGx5 ZWF0aW5n IHBpbGxhcg== IFNhbmc= IEp1ZGU= YXJsaW5n IEFtbmVzdHk= IHJlbWluZGluZw== IEFkbWluaXN0cmF0aXZl aGVzZGE= IGZsYXNoZWQ= IFBCUw== cGVyYXRl ZmVhdHVyZQ== IHN3aXBl IGdyYXZlcw== b3VsdHJ5 MjYx YnJlYWtz IEd1ZXI= IHNocmltcA== IFZvdGluZw== cXVpc3Q= IGFuYWx5dGljYWw= IHRhYmxlc3Bvb25z IFNPVQ== IHJlc2VhcmNoZWQ= IGRpc3J1cHRlZA== IGpvdXI= IHJlcGxpY2E= IGNhcnRvb25z YmlhbnM= fSk= Y29weQ== R290 b3VjaGVk UFVU IHN3YXJt bm90YXRpb25z c2FpZA== IHJlYnVpbHQ= IGNvbGxhYm9yYXRl IHJhZ2luZw== IG5hcg== IGRlbW9ncmFwaGljcw== IEREUg== IGRpc3RydXN0 b3NzaWVy IEtybw== IHB1bXBraW4= IHJlZ3JldHM= IGZhdGFsaXRpZXM= IExlbnM= IE9sZQ== cGQ= IHB1cHBldA== IE91dGxvb2s= IFN0YW0= T2w= RmFpcg== VVU= IHJld3JpdHRlbg== xLE= IGZhc2NpbmF0ZWQ= IHZlY3RvcnM= IHRyaWJ1bmFs dWF5 IE1hdHM= IENvaW5z W1s= IDE4MQ== IHJlbmRlcnM= IEthZXBlcm5pY2s= IGVzcGlvbmFnZQ== IHN1bW0= IGRpdGNo QWNjb3VudA== IHNwcmVhZHNoZWV0 IG11dGFudA== cGFzdA== NDA3 IGR5ZQ== IGluaXRpYXRpb24= IDQwMDA= IHB1bmlzaGFibGU= IHRoaW5uZXI= IEtoYWw= IGludGVybWVkaQ== RHVu IEdvdGhhbQ== IGVhZ2VybHk= IHZhZ2luYWw= cG93ZXJz Vlc= IFdBVENIRUQ= IHByZWRhdG9y YW1zdW5n IGRpc3Bhcml0eQ== IFsq IGFtcGg= IG91dHNraXJ0cw== IFNwaXJpdHM= IHNrZWxldGFs 0Ls= IFJlYXI= IGlzc3VhbmNl IExvZ2lj cmVsZWFzZWQ= Wlo= IEJvdW5k RW50cnk= IGV4aXRz aXNvbA== IEZvdW5kZXI= IHdyZQ== IEdyZWVubGFuZA== IE1NTw== dGFrZXI= SU5D 44G+ IGhvdXJseQ== aGVua28= IGZhbnRhc2llcw== IGRpc29i IGRlbW9saXRpb24= 44OL IGVubGlzdGVk cmF0dWxhdGlvbnM= IG1pc2d1aWRlZA== IGVuc3VyZWQ= IGRpc2NvdXJhZ2Vk bW9ydA== IGZsYW5r IGNlc3M= IHJlYWN0cw== IFNlcmU= c2Vuc2l0aXZl IFNlcnBlbnQ= YXNzYWQ= IDI0Nw== IGNhbG1seQ== YnVzdGVycw== IGJsZWVk IFN0cm8= IGFtdXNlbWVudA== IEFudGFyY3RpY2E= IHNjZXB0 IEdhdw== YXE= YXNvbmlj IHNwcmF3bGluZw== bmF0aXZl YXR1cmF0ZWQ= IEJhdHRsZWZpZWxk SVZFUlM= RUI= IEdlbXM= IE5vcnRod2VzdGVybg== IEZpbG1z IEF1dG9tYXRpYw== IGFwcHJlaGVuZA== 44Go IGd1aU5hbWU= IGJhY2tlbmQ= IGV2aWRlbmNlZA== Z2VhbnQ= MDEy IFNpZWdl IGV4dGVybmFsVG8= IHVuZm9jdXNlZFJhbmdl IGd1aUFjdGl2ZVVuZm9jdXNlZA== IGd1aUljb24= IGV4dGVybmFsVG9FVkE= IGV4dGVybmFsVG9FVkFPbmx5 RnJp Y2hhcmQ= ZW5hcmllcw== IGNoaWVmcw== IGNm IEhVRA== IGNvcnJvYm9y IGRC IFRha2Vu IFBhdHJpY2lh cmFpbA== IENoYXJt IExpYmVydGFyaWFu cmlldmU= UGVyc29uYWw= IE9VUg== Z2VyaWVz IGR1bXBpbmc= IG5ldXJvbG9naWNhbA== aXRpbWF0ZQ== IENsaW50b25z cmFmdGVk IE1vbGx5 IHRlcm1pbmFscw== cmVnaXN0ZXI= IGZsYXJl IGVuY29kZWQ= IGF1dG9wc3k= cGVs bWFjaGluZQ== IGV4ZW1wdGlvbnM= IFJveWFscw== ZGlzdGFuY2U= IGRyYWZ0cw== IGxhbWU= IEN1bm5pbmc= IHNwb3VzZXM= IE1hcmtldHM= IENhcnJpZXI= IGltcGx5aW5n IFlhaw== c2lk IGxvc2Vy IHZpZ2lsYW50 IGltcGVhY2htZW50 IGF1Z21lbnRlZA== IEVtcGxveWVlcw== IHVuaW50ZW5kZWQ= dGVybmFsbHk= IFdhdHQ= IHJlY29nbml6YWJsZQ== ZXNzaW0= 5p0= IGNvYXRlZA== cmhh IGxpZXV0ZW5hbnQ= IExlZ2lzbGF0aW9u cHVibGlzaGVk NDQ0 MDEz IGlkZWFsbHk= IFBhc3N3b3Jk IHNpbXBsaWZ5 IE1ldGE= IE1SSQ== IHBsZWFkaW5n b3JnYW5pemVk aGFuZGxlcg== IHVucmF2ZWw= Y29ycmVjdA== IGljeQ== IHBhcmFub2lk IHBhc3Nlcg== IGluc3BlY3Rpb25z b2Zlcg== IEhlYWx0aGNhcmU= Mjgz IEJydXQ= aW9sYQ== Zm9yZ2U= IE1lZGlldmFs TVNO aWV2ZXJz IFByb2dyYW1taW5n 5Yk= IDIyMw== bXU= IENMRQ== dWdh IHNob3BwZXJz IGluZm9ybWF0aXZl IFBsYW5z IHN1cHBsZW1lbnRhdGlvbg== IFRlc3Rz dHlhcmQ= b2N5dGVz IFZlZ2E= IEd1amFyYXQ= ZXJtYW5lbnQ= RXhjZXB0 IExPVA== YWxsYQ== IEN1bW0= IE9zdw== IHZlbm9t IERlYnQ= IERPV04= IHJldW5pb24= IG11Yw== IFJlbGllZg== IGdlb3A= IPCfmA== YWxvZ3Vl QW50aA== ZWNobw== IGNvcnJvcw== IHJlcGxpY2F0aW9u IEJsYXppbmc= IERhdWdodGVy IGluZmxpYw== IExpbmRzZXk= 2Yg= Mjg0 RXhpdA== IGdsb29t VEFJTg== IHVuZGVybWluaW5n IGFkdmlzaW5n aGlkZGVu IG92ZXJmbG93 IGdvcg== dXJkdWU= IGVjaG9lcw== ZW5oYWdlbg== IGltcHVscw== ZHJ1Zw== Y2FzaA== IGFzeW5j IG1pcmFj YXR0cw== cHVuaw== IHBpdm90 IExlZ2lzbGF0aXZl IGJsb2dnZXJz IENsYXc= c2J1cmc= ZHls IFJlY29tbWVuZA== IHZlcnRl IHByb2hpYml0aW5n IFBhbnRoZXI= Sm9uYXRoYW4= IG9taW4= IGhhdGVmdWw= Mjgx IE9yY2hl IE11cmRvY2g= ZG93bnM= IGFzeW1t R0VS QWx3YXlz IGluZm9ybXM= IFdN IFBvbnk= IEFwcGVuZGl4 IEFybGluZ3Rvbg== SmFt IG1lZGljaW5hbA== IFNsYW0= SVRJRVM= IHJlYWZm IFJp Rkc= U3ByaW5n Ym9vbA== IHRoaWdocw== IG1hcmtpbmdz IFJhcXFh IExhaw== cG9sbA== dHNreQ== IE1vcnR5 IERlZmluaXRpb24= IGRlYnVuaw== ZW5kZXJlZA== IExlb25l YXZlcnM= IG1vcnRnYWdlcw== QXBwYXJlbnRseQ== Tmlj aGF1cw== IFRob3VzYW5kcw== YXVsZA== IG1hc2g= c2hvb3Q= IGRpYXJy IGNvbnNjaW91c2x5 SGVybw== ZWFz IE5hdHVyYWxseQ== IERlc3Ryb3llcg== IGRhc2hib2FyZA== c2VydmljZXM= Um9n IG1pbGxlbm5pYWxz IGludmFkZQ== LSg= IGNvbW1pc3Npb25z IEF1Y2tsYW5k IGJyb2FkY2FzdHM= IGZyb250YWw= IGNyYW5r IEhpc3Rvcmlj IHJ1bW91cnM= Q1RW IHN0ZXJpbA== IGJvb3N0ZXI= cm9ja2V0 44K8 dXRzY2hl IFBJ IDIzMw== IFByb2R1Y2Vy IEFuYWx5dGljcw== IGludmFsdWFibGU= IHVuaW50ZW50aW9u IENZ IHNjcnV0aW4= IGdpZ2c= IGVuZ3VsZg== IHByb2xldGFyaWF0 IGhhY2tz IEhldw== YXJhaw== IFNsaW1l aWVsZGluZw== YWdoZXI= IEVsbGlvdA== IHRlbGVjb20= IDIxOQ== dWx0YW4= IEFyYm9y IFNjb3V0cw== QmFu IGxpZmVzcGFu IGJsYXNw Mzg4 IGp1ZGljaWFyeQ== IENvbnRpbmVudGFs YXNraW5n TWND TEVE IGJhZ2dhZ2U= IFNvcmNlcmVy IHJlbW5hbnRz IEdyaWZmaXRo ZXRzdQ== IFN1YmFydQ== IFBlcnNvbmFsaXR5 ZGVzaWduZWQ= dXNoaW1h YWduYXI= IHJlY29pbA== IHBhc3Npb25z XCI6 IHRlZQ== IGFib2xpdGlvbg== IENyZWF0aW5n amFj IDE5NA== MDE5 IHBpbGxhcnM= cmljaGVk LyI= dGs= IGxpdmVsaWhvb2Q= IHJvYXN0ZWQ= YWhvbg== IEh1dGNo YXNzZXJ0 IGRpdmlkZW5k IGtuaXQ= IGRhdW50aW5n IGRpc3R1cmJhbmNl IHNoYWxl IGN1bHRpdmF0ZWQ= IHJlZnJpZ2VyYXRvcg== TEI= IE5FVA== IGNvbW1lcmNpYWxz IHRoaW5rZXJz NDU1 IGNob3A= QnJvYWQ= IHN1c3BpY2lvbnM= IHRhZ2dlZA== bGlmdGluZw== IHN0eWxpc2g= IFNoaWVsZHM= U2hvcnRseQ== IHRhaWxz QXV0aA== U1RF IEdBTUU= IHNlaXNt IEtpcw== b2xvZ25l IGNvd29yaw== IGZvcmNpYmx5 IHRoeXJvaWQ= IFBC QU5F bWFycmllZA== aG9yc2U= IHBvbHltZXI= IENoYWw= b2Rvcg== REVCVUc= IENvbnRleHQ= IGJsaXNz IHBpbnBvaW50 IE1hdGhlbWF0 bGVncmFt IFdlZWtlbmQ= IGxhYmVsbGVk IGJhcnQ= aXRsZXM= IGVzdHJvZ2Vu 4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU Iic= IHZpc2libHk= IG91dHNpZGVy YWlkYQ== QXJlYQ== IGRpc3NlbWlu IGRpc2hvbmVzdA== IENsb3NlZA== IEJ1bGxldGlu IFJhbXNleQ== c3dvcmQ= IFhJ b3VyY2Vk U2FtZQ== MzQ2 IFJlcGU= IEtvdQ== Y2FrZQ== ZW1pcw== Q2FjaGU= IE1lYW5pbmc= IEVubGlnaHQ= b25vbXk= IG1hbmlmZXN0YXRpb24= c3dvcnRo SmF5 IGNob3Jl w7Zy RHJlYW0= IHNhbmN0aW9uZWQ= IGN1bHR1cmFsbHk= IEFyYQ== TmF2 IHRoZW9sb2dpY2Fs IHN0cnV0 IFZP IEhhbmRib29r IGNvbnN0cnVjdGluZw== IMK2 IEJlbmVmaXRz IFBzeWNob2xvZ2ljYWw= c2Fj 5bg= cG9saWN5 IE1hdHRlcnM= IFJlcG9ydGVk IEJ5dGU= IHZpdHJv IE1haWRlbg== IGxhbQ== IEplbm5pbmdz IGdhcm1lbnQ= IFJ1dGdlcnM= IFN0YWZmb3Jk IFdlbGxpbmd0b24= IGludGVybWl0dA== IG5wbQ== IG9yZGVhbA== IHBsdWdnZWQ= b29taW5n aW5pc2hlZA== ZnJhbWV3b3Jr IHRpbWJlcg== IGNhc3M= IDg1MA== aWxlc3M= IFJlZHV4 NzY4 U3RyZQ== IHN1cnBhc3NlZA== d2hlbA== IHBhcmFsbGVscw== IHZlaWw= IEdJ IFJFU1Q= IHJlYWRpbmVzcw== c29ydA== IG1vZGlmeWluZw== IFNsYXRl cnVmZg== IG1hcmJsZQ== IGluZnJhcmVk IGF1ZGl0b3I= IEZBTlRBU1k= IFBvdmVydHk= IFNQRA== ICIo S3k= UkFZ IGV4ZWN1dGlvbnM= IEJldmVybHk= IE1hcnhpc20= IEJ1cnN0 IEthbGk= ZXN0b25lcw== Q2xlYXJseQ== RWxs 44Gn IFByb2NlZWRpbmdz VG9rZW4= SUZJQw== w7Fh Q2VudHJhbA== IEhhbGV5 IERyYW1h IGZvcm1hdGlvbnM= T1JO Qm9va3M= IGRvbWluYXRpbmc= IEZseWVycw== IENvbXBhbmlvbg== IGRpc2NpcGxpbmVk IFl1Z29zbGF2 IFNwZWxscw== IHZlbmdlYW5jZQ== IGxhbmRsb3Jkcw== TGVu IE9ncmU= YW5vaWE= IHBpZXJjaW5n IGNvbmdyZWc= IHNjb3Jlcg== b2JpYQ== IG5pY2tlbA== IExlYXJucw== IHJlam8= IG1hc3RlcnBpZWNl Rmxhc2g= IGluaGFiaXRlZA== IE9wZW5HTA== IER1ZA== IElDTw== IGFydGVy IHBsdXI= IG1hc3Rlcnk= IGxvbmdzdGFuZGluZw== c3RlZA== IHdpbmVz IHRlbGV2aXNlZA== IFNocmluZQ== IEJheWVybg== IOKTmA== IGVuY2xvc3VyZQ== am9obg== IHByb3BoZXRz IFJlc3VycmVjdGlvbg== IE9yZGVycw== IHVuZXZlbg== cmFscw== IGR3aW5k IExhaA== IFNsb3Zlbg== Mzc4 IGluc2lzdGVuY2U= YWZmbGU= IENsb25l IGhhcmRzaGlw IENvbmdyZXNzbWFu IHBsZWFk IHJldmlld2Vycw== IGN1cmVk IDE5MzU= YXNsZXk= ZmFrZQ== IFRoaW5raW5n eWRpYQ== UEFSVA== IERvdGE= b2l0 IHdoaXBwZWQ= IGJvdW5jaW5n IEhpc3Bhbmljcw== Y29taW5ncw== IGNhbm5hYmlu IENoYW1iZXJz IFphY2s= T3B0aW9uYWw= IGNvYXRz IHByb3dlc3M= IE5vcnRvbg== IHBsYWlubHk= IGZyZWlnaHQ= IGluaGliaXRpb24= IGNsYW0= IDMwMw== a2Vm YWxlaWdo THVrZQ== IHBzeWNobw== YXRvcml1bQ== TUVE IHRyZWF0aWVz IGluZGlzYw== IGRj T1BT IHJlc2lsaWVudA== IEludGVyc3RhdGU= IHNsYWNr IG11bmRhbmU= IGVzdGFibGlzaGVz MzU5 IHN0cmFpbmVk IG5vbmQ= U3Vz IGNhc3Rl YXJhdGU= aWV2aW5n IHVuZmFpcmx5 IHBhcnNlcg== b25pYWw= dXJzaXZl Vmlh IE90dG8= IEF1dGhvcml0aWVz c3Ryb2tl S1I= IE1lcmN5 IGZ1cm5pc2hlZA== IG91dHNldA== IG1ldGlj MTk4Mg== b2xpdGhpYw== IFRlbnQ= b2dpY2Fs IEFpcmNyYWZ0 IGhpZGVz IEJlY2FtZQ== IGVkdWNhdG9ycw== cmVhY2hpbmc= IHZvbGF0aWxpdHk= IHRvZGRsZXI= IE5BU0NBUg== IFR3ZWx2ZQ== IEhpZ2hsaWdodHM= IGdyYXBl IHNwbGl0cw== IHBlYXNhbnQ= IHJlbmVn IE1TSQ== VGVtcA== c3RhcnM= IHRyZWs= IEh5ZGU= YmluZGluZw== IHJlYWxpc20= IG94aWRl IEhvcw== IG1vdW50cw== IGJpdGluZw== IGNvbGxhcHNpbmc= IHBvc3RhbA== IG11c2V1bXM= IGRldGFjaGVk IHJlc3BlY3Rpbmc= IG1vbm9wb2w= IHdvcmtmbG93 IENha2U= VGVtcGxhdGU= IE9yZ2FuaXNhdGlvbg== IHBlcnNpc3RlbmNl MzY5 Q29taW5n QnJhZA== IHJlZHVuZGFudA== IEdUQQ== IGJlbmRpbmc= IHJldm9rZWQ= IG9mZmVuZGluZw== IGZyYW1pbmc= IHByaW50Zg== Q29tbXVu bWVtYmVycw== T3V0c2lkZQ== IGNvbnN0cnVlZA== IGNvZGVk Rk9SRQ== IGNoYXN0 Q2hhdA== SW5kaWFu IFlhcmQ= PyEi IFBvcnRz IFhhdmllcg== IFJFVA== Jy4i IEJvYXQ= aXZhdGVk aWNodA== dW1lcmFibGU= RHM= IER1bm4= IGNvZmZpbg== IHNlY3VyZWx5 IFJhcHRvcnM= IEJlcw== SW5zdGFsbGF0aW9u IGluY2VwdGlvbg== IEhlYWx0aHk= ZW5kYW50cw== IHBzeWNob2xvZ2lzdHM= IFNoZWlraA== Y3VsdHVyYWw= IEJsYWNrQmVycnk= c2hpZnQ= RnJlZA== b2NoZQ== IGNha2Vz IFNFTw== IEdpYW4= IEFzaWFucw== b2dnaW5n ZWxlbWVudA== IHB1bmRpdHM= IFZhdWdo IEdhdmlu IGhpdHRlcg== IGRyb3duZWQ= IGNoYWxr IFppa2E= IG1lYXNsZXM= ODAy 4oCmLi4= IEFXUw== XSI= IGRpc3RvcnQ= IE1hc3Q= IGFudGlib2RpZXM= IE1hc2g= TWVtb3J5 IFVnYW5kYQ== IFByb2I= IHZvbWl0aW5n IFR1cm5z IG9jY3VweWluZw== IGV2YXNpb24= IFRoZXJhcHk= IHByb21v IGVsZWN0cg== IGJsdWVwcmludA== IERyZQ== cHJpY2Vk IERlcG90 IGFsbGV2aWF0ZQ== IFNvbWFsaQ== bWFyZw== bmluZQ== IG5vc3RhbGdpYQ== IFNoZXBoZXJk IGNhdmFscnk= IHRvcnBlZA== IEJsb29keQ== eGI= IHNhbms= IGdvYWx0 cmVwb3J0cHJpbnQ= ZW1iZWRyZXBvcnRwcmludA== Y2xvbmVlbWJlZHJlcG9ydHByaW50 IEluaXRpYWxseQ== IEZpc2NoZXI= IG5vdGV3b3J0aHk= Y2Vybg== IGluZWZmaWNpZW50 cmF3ZG93bmxvYWQ= cmF3ZG93bmxvYWRjbG9uZWVtYmVkcmVwb3J0cHJpbnQ= Y2F0aW9u IER5bmFzdHk= bGFn REVT IGRpc3RpbmN0bHk= IEVzdG9uaWE= IG9wZW5uZXNz IGdvc3NpcA== cnVjaw== V2lkdGg= IElicmFoaW0= IHBldHJvbGV1bQ== IGF2YXRhcg== IEhlZA== YXRoYQ== IEhvZ3dhcnRz IGNhdmVz Njc4 IHNhZmVndWFyZA== IE1vZw== aXNzb24= IER1cmhhbQ== c2xhdWdodA== IEdyYWR1YXRl IHN1YmNvbnNjaW91cw== IEV4Y2VsbGVudA== IER1bQ== LS0tLS0= IHBpbGVz IFdPUks= IEdhcm4= IEZvbA== IEFUTQ== IGF2b2lkcw== IFR1bA== IGJsZWFr RUxZ aXZpc3Q= bGlnaHRseQ== UGVycw== IERvYg== IExT IGluc2FuaXR5 zrU= YXRhbGll RW5sYXJnZQ== IHR3aXN0cw== IGZhdWx0eQ== IHBpcmFjeQ== IGltcG92ZXI= IHJ1Z2dlZA== IEZhc2hpb24= IHNhbmRz Jz8= c3dpY2s= IG5hdGl2ZXM= IGhlbg== IE5vaXNl 44OX IGdyZWVucw== IGZyZWV6ZXI= IGR5bmFzdHk= IEZhdGhlcnM= IE5ld2Fyaw== IGFyY2hhZW9sb2dpY2Fs IG90 b2Jhcg== IGJsb2NrYWRl IGFsbGVyZw== TFY= IGRlYml0 IFJGQw== IE1pbHRvbg== IFByZXNzdXJl IHdpbGxpbmdseQ== IGRpc3Byb3BvcnRpb25hdGU= IG9wcHJlc3NpdmU= IGRpYW1vbmRz IGJlbG9uZ2luZ3M= MTk3MA== IGJlbGxz IGltcGVyaWFsaXNt IDIyNw== IGV4cGxvZGluZw== IEVjbGlwc2U= IDE5MTk= IHJhbnQ= IG5vbWluYXRpb25z MzQ3 IHBlYWNlZnVsbHk= cmljYQ== IEZVQ0s= IHZpYnJhdGlvbg== bWFsaW5r IHJvcGVz IEl2YW5rYQ== IEJyZXdlcnk= IEJvb2tlcg== IE93ZW5z Z29lcnM= U2VydmljZXM= IFNuYXBl IDE5MQ== Mzk1 IDI5OQ== anVzdGljZQ== IGJyaQ== IGRpc2Nz IHByb21pbmVudGx5 IHZ1bGdhcg== IHNraXBwaW5n bHZlcw== IHRzdW5hbWk= Mzc0 IFVydWc= IEVpZA== cmVjYXRlZA== cGhlbg== IGZhdWx0cw== IFN0YXJ0ZWQ= OTUw IHBp IGRldGVjdG9y IGJhc3RhcmQ= IHZhbGlkYXRlZA== U3BhY2VFbmdpbmVlcnM= T1VSQ0U= ICh+ IHVuc3Vy IGFmZmlybWVk IGZhc2Npc20= IHJlc29sdmluZw== IENoYXZleg== IEN5bg== IGRldHJhY3Q= TG9zdA== IHJpZ2dlZA== IGhvbWFnZQ== IEJydW5v NTU1 ZWNh IHByZXNzZXM= IGh1bW91cg== IHNwYWNpbmc= ICcv b2xraWVu Q291bg== T1BFUg== VHJl U29u IENhbWJvZGlh aWVycmU= bW9uZw== b3p5 IGxpcXVpZGl0eQ== IFNvdmlldHM= IEZlcm5hbmRv IDIyOQ== IHNsdWc= IENhdGFsYW4= ZWxlY3RyaWM= IHNjZW5lcnk= IEhlYXJ0aA== IGNvbnN0cmFpbmVk IGdvYWxpZQ== IEd1aWRlbGluZXM= IEFtbW8= IFBlYXJzb24= IHRheGVk IGZldHVz UmVzcG9uc2U= IEFsZXhpcw== dGhpYQ== R3V5 IHJlY29uc3RydWN0 IGV4dHJlbWVz IGNvbmNsdWRpbmc= IFBlZw== b29rcw== IGRlZHVjdGlvbnM= Um9zZQ== IGdyb3VuZGJyZWFraW5n IFRhcmc= 44OB IFJldmU= cmVzb3VyY2U= IG1vb25z IGVsZWN0cm9tYWduZXRpYw== IGFtaWRzdA== IFZpa3Rvcg== TkVTUw== QkFDSw== IGNvbW11dGU= IEFuYWhlaW0= IGZsdWN0dWF0aW9ucw== NjQw IG5vb2RsZXM= IENvcGVuaGFnZW4= IFRpZGU= IEdyaXp6 IFNFRQ== IHBpcGVsaW5lcw== IHNjYXJz ZW5kbw== YWd1cw== IEVURg== LyM= IEJlY29tZQ== NDQ4 IHZpc2M= IFJlY29tbWVuZGVk IGp1bXBlcg== IGNvZ25pdGlvbg== IGFzc2Fzc2lu IHdpdG5lc3Npbmc= IFNldHVw IGxhYw== dmlt SVNN cGFnZXM= U1NM MzU4 IGFkamVjdA== aW5kdXN0cmlhbA== bG9yZQ== Y2hlcnk= IGdsaXR0ZXI= IGNhbGY= RmxvcmlkYQ== IHNwb2lsZXJz IHN1Y2NlZWRz IGNoYW50aW5n IHNsb2dhbnM= IFRyYWN5 VmlzaXQ= cm9sb2d5 IG1vcm5pbmdz IGxpbmVhZ2U= IHNpcA== IGludGVuc2VseQ== IGZsb3VyaXNo IFNsZWVwaW5n IEZlbQ== b3Jwb3I= IEtsYW4= IERhcnRo aGFjaw== IE5pZWxzZW4= IHR1bW9ycw== IHByb2N1cmVtZW50 IFlvcmtzaGlyZQ== IHJhaWRlZA== S1k= QW5uYQ== IC8vWw== IERpc29yZGVy IE11c3Rhbmc= IFdlbg== IFRyeWluZw== c3E= IGRlbGl2ZXJpZXM= IHNodXR0ZXI= IGNlcmVicmFs IGJpcG9sYXI= IENO bGFzcw== amV0 IGRlYmF0aW5n Pjo= IGVhZ2xl Z3JhZGVz IERpeG9u VUdD TUFT IERyYWNv IE1hY2hpbmVz YWZmZXI= IGVtYW4= wrI= cHJvbg== IEd5bQ== IGNvbXBhcmF0aXZlbHk= IFRyaWJ1bmFs UFJP IGxleA== IGZlcnRpbGU= IGRlcHJlc3Npbmc= IHN1cGVyZmljaWFs ZXNzZW50aWFs IEh1bnRlcnM= Z3A= IHByb21pbmVuY2U= TGliZXI= IEFuY2VzdA== b3RlY2hub2xvZ3k= IG1vY2tpbmc= IFRyYWZm lpo= TWVkaXVt SXJhcQ== IHBzeWNoaWF0cmlzdA== UXVhbnRpdHk= IExlY3Q= IG5vaXN5 NTIw R1k= IHNsYXBwZWQ= IE1UVg== IHBhcmE= cHVsbA== TXVsdGlwbGU= YXNoZXI= IG5vdXI= IFNlZw== U3BlbGw= dm91cw== b3JkaWFs U2VuaW9y IEdvbGRiZXJn IFBsYXNtYQ== bmVlZA== IG1lc3Nlbmdlcg== ZXJldA== IHRlYW1lZA== IGxpdGVyYWN5 IExlYWg= IERveWxl IGVtaXR0ZWQ= VVg= IGV2YWRl IG1hemU= IHdyb25nbHk= IExhcnM= IHN0ZXJlb3R5cGU= IHBsZWRnZXM= IGFyb21h IE1FVA== IGFjcmU= IE9E IGZm IGJyZXdlcmllcw== IEhpbHRvbg== dW5kbGU= IEthaw== IFRoYW5rZnVsbHk= IENhbnVja3M= aW5jdGlvbnM= IEFwcGVhcnM= IGNvZXI= IHVuZGVybWluZWQ= cm92ZXJz QW5kcmU= IGJsYXpl dW1lcnM= IGZhbWluZQ== YW1waGV0YW1pbmU= dWxrYW4= QW1vdW50 IGRlc3BlcmF0aW9u d2lraXBlZGlh ZGV2ZWxvcG1lbnQ= IENvcmludGg= dXNzaWE= SmFja3Nvbg== TEk= TmF0aXZl UnM= T2hpbw== IEthdGhsZWVu Rm9ydHVuYXRlbHk= IGF0dGVuZGFudA== IFByZWZlcnJlZA== IERpZG4= IFZz TWlz IHJlc3BvbmRlbnQ= IGJvdW4= c3RhYmxl IHBhdmVk IHVuZXhwbA== IENoZW5leQ== TE0= IEN1bGw= Ymxvd24= IGNvbmZyb250aW5n b2Nlc2U= c2VydmluZw== V2k= IExpdGh1YW5pYQ== YW5uaQ== IHN0YWxr aGQ= IHZlbmVy QVBI eW5jaHJvbm91cw== VVJS dW1hYmx5 aGlzdG9yaWM= SGFsZg== SGF5 IHJlc2lsaWVuY2U= c3BlY3Rpb24= IGFiYW5kb25pbmc= T2Jz IERlYmJpZQ== IGdyYWRpZW50 IFBsYWludA== IENhbmFs QVJDSA== IGV4cGFuc2l2ZQ== IGZ1bmc= IGJvdW5jZWQ= VW5k IHByZWNhdXRpb25z IGNsYXJpZmljYXRpb24= IGRhZ2dlcg== IGdyaXBz IMK1 IFJpdmVyYQ== IFVuZGVhZA== aXNpdGVz IEZJUlNU w7Fv YXVkaQ== IGhvc3RhZ2Vz IGNvbXBsaWFudA== IGFsdW1uaQ== U2V2ZW4= IGN5YmVyc2VjdXJpdHk= ZWl0aGVy Q29sbGVjdA== IGludmFyaWFibHk= IFNvY2k= IGxhd21ha2Vy IGFsZQ== IFBlcnNvbmFsbHk= TmF6aQ== IGN1c3RvbWl6YXRpb24= IFByb2M= IFNhc2thdGNoZXdhbg== ZWF0dXJpbmc= IHNwYXJlZA== IGRpc2NvbnRpbnVlZA== IGNvbXB1dGF0aW9uYWw= IE1vdG9yb2xh IHN1cHJlbWFjaXN0 Z292ZXJubWVudGFs IHBhcmFkaXNl IERvd25pbmc= IE5pa29u IGNhdGFseXN0 YmVycmE= VG9yb250bw== ODc1 YmV0YQ== IE1hY3Jvbg== IHVucmVhbGlzdGlj dmVjdG9y IFZlaGljbGVz aXRpdmVuZXNz IFJW IENvbGJlcnQ= c2lu b2pp ZW50aW4= IEtyaXNo aGVsbG8= ZmZpZWxk b2t5 IFRhdGU= IG1hcGxl IGFpZHM= Y2hlbWljYWw= MzM0 bnV0cw== IFdhcnA= IHh4 IFJvYmI= dW1lcm91cw== Xy1f ZnRpbWU= IFZX IHdpbmdlcg== IERvbWU= dG9vbHM= IFBW IEdlb3JnZXRvd24= IGdlYXJlZA== IGppaGFkaXN0cw== IGNw IHN0ZXJvaWRz TW90aGVy Y2xlcm9zaXM= IERSTQ== bmVzaWE= IGxpbmdlcg== IGltbWVyc2l2ZQ== IENPVU4= IG91dHdlaWdo ZW5zdWFs QmFuZA== IHRyYW5zZm9ybXM= bWF0Y2hlZA== cHNvbnM= IEp1ZGljaWFs ZmFjdG9y IHJlZmVycmFs IG9kZGx5 IFdlbmdlcg== QnJpbmc= IEJvd3M= NjAy SUNMRQ== IGxpb25z IEFjYWRlbWlj IFRob3Ju IFJhaWRlcg== a2VmZWxsZXI= U3RvcmFnZQ== TG93ZXI= IE9ydA== IEVxdWFsaXR5 QUxU IFNPQw== VHlwZXM= IGx5bg== IEFzc2V0 Y29hdA== VFBQ Q1ZF IFBpb25lZXI= YXBwbGljYXRpb24= TW9kZXJu IEhL RW52aXJvbm1lbnQ= QWxyaWdodA== UmFpbg== SVBQ IFNoaWl0ZQ== IG1vdW5k IEFiaWxpdGllcw== Y29uZGl0aW9u U3RhZmY= IGNvbXBldGVuY2U= IE1vb3I= IERpYWJsbw== IHdpdGhoZWxk IG9zdGVuc2libHk= IEJyb20= IG1zZw== IGRlbm9taW4= IFJlZmVyZW5jZXM= IEZQ IHBsdW5nZWQ= IHBhbXBo bW92aW5n Y2VudHJhbA== IGRvd25yaWdodA== IGZhZGluZw== VGFs VHlw IFRoeQ== dWtlcw== aXRoZQ== IG92ZQ== IGJhdHRsZWQ= IHNlYWZvb2Q= IGZpZ3Vy IFJE Y3JvcA== IHNxdWFkcw== e1w= 4Lk= IEVo IGludGVydmlld2luZw== IFFpbg== IGFzcGlyaW5n UExJQw== IGNsYXVzZXM= IEdhc3Q= IE5pcg== IGx1Z2dhZ2U= IGhvc2U= IHN5c3RlbWQ= IGRlc2NlbmRpbmc= IFJldmlzZWQ= IFJhaWxz YWxpZ24= NzA5 MzM3 IGZ1Zw== Y2hhcmdpbmc= dGFncw== IHV0ZXI= a2lzaA== V0FSTklORw== NDkw cHJvZml0cw== IHZveWFnZQ== IGFjZQ== IFZhbmd1YXJk IFRhbmtz IE11aw== IDIyNg== U2FmZQ== QXJtb3I= IHZvbGNhbmlj IHdvbWI= IE1JTA== IGJlZ2lubmVy IFJlY29nbg== IEFBUA== UExBWQ== KSE= IGRldGVjdGluZw== Y24= IGJyZWFjaGVz QmFzaWNhbGx5 IFBhZw== IE11bmljaXBhbA== IEluZGll IExhZg== IERpc2FibGU= IE9sc29u IHJlc3RyYWluZWQ= IHJ1bGluZ3M= IGh1bWFuZQ== ZXZlbnRz IENpbmVtYQ== ZGlzcGxheVRleHQ= IEhhdGNo YWN0aW9uRGF0ZQ== b25uYWlzc2FuY2U= IGFzc2F1bHRpbmc= IEx1Zw== Q0hBVA== IHZpZ29yb3Vz IFBlcnNl IGludG9sZXJhbmNl IFNuYXBjaGF0 IFNoYXJrcw== IGR1bW15 IERpYWdu IEd1aXRhcg== aW1ldGVycw== NDAz UkVH QXg= IHNlcGFyYXRlcw== IE1haG0= IHR2 amFo T09M Q2lyYw== IFdpbmRzb3I= dXNzaWFu IGludHVpdGlvbg== IGRpc2RhaW4= IERvbm92YW4= IDIyMQ== RW1i IGNvbmRlbW5pbmc= IGdlbmVyb3NpdHk= enp5 IHBhbnRpZXM= IFByZXZlbnQ= QWN0aW9uQ29kZQ== QU5B MzQy ZXh0ZXJuYWxBY3Rpb25Db2Rl IHNwZWNpZnlpbmc= IGNyeXN0YWxs SmVyZQ== IHJ1cHQ= IEFwcHJlbnRpY2U= IHByb2ZpbGluZw== 0Lo= U3RyaWtl IHNpZGVsaW5l IG9ibGlnYXRlZA== IG9jY3VsdA== IGJ1cmVhdWNyYXRpYw== YW50aWNhbGx5 cnVwdGVk bmVnYXRpdmU= IEV0aGlvcGlh IENpdmlj IGluc2lkZXJz ZWxpZ2libGU= IFRWcw== IEJBUg== IFRJ aW9sb2dpc3Q= IEFJUg== IHN1YnN0aXR1dGVk QXJhYg== IFNhdWw= IFlvZw== cHJlbQ== IGJ1aWxkZXJz IHN0YXRpb25hcnk= IGRvdWJ0ZnVs IHZpZ29yb3VzbHk= IHRocmlsbGluZw== UGh5c2ljYWw= IENhcmV5 IEh5ZHJh Z2VvbmluZw== IFNseQ== eXRvbg== IGJvcnJvd2Vycw== IFBhcmtpbnNvbg== IOs= IEphbWFpY2E= IHNhdGly IGluc3VyZ2VudHM= IEZpcm0= IGlzb3Q= IEthcm4= b3VybmluZw== YWtlbnM= ZG9jcw== bGl0dGxl IE1vbmFjbw== Q0xBU1M= VHVya2V5 THk= IENvbmFu YXNzaWM= IHN0YXJyZWQ= IFBhY2Vycw== ZXRpZXM= IHRpcHBpbmc= TW9vbg== IFJ3 c2FtZQ== IGNhdml0eQ== IGdvb2Y= IFpv U2hvY2s= dW1tZXI= IGVtcGhhc2l6ZXM= IHJlZ3JldHQ= IG5vdmVsdHk= IGVudnk= IFBhc3NpdmU= cnc= NTA1 IGluZGlmZmVyZW50 IFJpY2E= IEhpbXNlbGY= IEZyZWRkaWU= IGFkaXA= 5LiA IGJyZWFrb3V0 IGh1cnJpZWQ= IEh1YW5n IERpc2s= IHJvYW1pbmc= Pz8/Pz8tPz8/Pz8t VVY= IFJpY2t5 IFNpZ21h IG1hcmdpbmFsaXplZA== IGVkaXRz IDMwNA== bWVtb3J5 IHNwZWNpbWVu Mjkz 44Gv IHZlcnRpY2FsbHk= IGF1ZGl0aW9u IEhlY2s= IGNhc3Rlcg== IEhvbGRpbmdz YWRhbA== IENyb24= IExpYW0= IGRlZmxlY3Q= UGljaw== IERlYnVn UkVG IHZlcnNhdGlsaXR5 b3RoZXM= Y2xhc3NpZmllZA== IE1haGFy IEhvcnQ= Q291bnRlcg== c3Rhc3k= bm90aWNlZA== MzMx IFNoaW0= ZnVjaw== IEJpZQ== IGFpcmluZw== IFByb3RlaW4= IEhvbGRpbmc= IHNwZWN0YXRvcnM= aWxpYXRlZA== IFRoYXRjaGVy bm9zaXM= 44O844Oz VGVsZQ== Qm9zdG9u IFRlbXBs c3RheQ== IGRlY2xhcmF0aW9ucw== NDc5 Vm9sdW1l IERlc2lnbmVy IE92ZXJ3YXRjaA== aWRhZQ== IG9ud2FyZHM= IG5ldHM= IE1hbmlsYQ== cGFydGljdWxhcmx5 IHBvbGl0aWM= b290aGVy IHBvcnRyYWl0cw== IHBhdmVtZW50 Y2ZmZmY= IHNhaW50cw== IGJlZ2lubmVycw== RVNQTg== IHNob3J0Y29taW5ncw== 4pWQ4pWQ IGNvbWV0 IE9yZ2FuaWM= cXVlbA== IGhvc3BpdGFsaXplZA== QnJlYWs= IHBlZWw= ZHlsaWI= YXNweA== dXJhbmNlcw== IFRJTQ== UGc= IHJlYWRhYmxl IE1hbGlr IG11enpsZQ== IGJlbmNobWFya3M= ZGFs IFZhY2M= IEhpY2tz NjA5 IEJpYmxpY2Fs aGVuZw== IG92ZXJsb2Fk IENpdmlsaXphdGlvbg== IGltbW9yYWw= IGZyaWVz 44KS IHJlcHJvZHVjZWQ= IGZvcm11bGF0aW9u anVn aXJleg== Z2Vhcg== IGNvYWNoZWQ= TXBTZXJ2ZXI= IFNK IEt3 SW5pdA== ZGVhbA== IE9ybw== IExva2k= IFNvbmdz IDIzMg== IExvdWlzZQ== YXNpb25hbGx5 IHVuY29uZA== b2xseXdvb2Q= IHByb2dyZXNzaXZlcw== IEVub3VnaA== IERvZQ== IHdyZWNrYWdl IGJydXNoZWQ= IEJhc2VUeXBl IHpvbmluZw== aXNoYWJsZQ== aGV0aWNhbGx5 IENhdWN1cw== IEh1ZQ== IGthcm1h IFNwb3J0aW5n IHRyYWRlcg== IHNlZW1pbmc= IENhcHR1cmU= NDMw YmlzaA== IHR1bmVz IGluZG9vcnM= IFNwaGVyZQ== IERhbmNpbmc= VEVSTg== IG5vYg== IEdTVA== bWFwcw== IHBlcHBlcnM= Rml0 IG92ZXJzZWVz IFJhYmJp IFJ1bGVy dmVydGlzaW5n b2ZmaWNl eHh4 IHJhZnQ= Q2hhbmdlZA== IHRleHRib29rcw== TGlua3M= IE9tbg== 44CR IGluY29udmVuaWVuY2U= IERvbmV0c2s= PX4= IGltcGxpY2l0bHk= IGJvb3N0cw== IEJvbmVz IEJvb20= Q291cnRlc3k= IHNlbnNhdGlvbmFs QU5Z IGdyZWVkeQ== ZWRlbg== IGluZXhwZXI= IExlcg== IFZhbGU= IHRpZ2h0ZW4= IEVBUg== IE51bQ== IGFuY2VzdG9y U2VudA== IEhvcmRl dXJnaWNhbA== YWxsYWg= IHNhcA== YW1iYQ== IFNwcmVhZA== dHdpdGNo IGdyYW5kc29u IGZyYWN0dXJl IG1vZGVyYXRvcg== IFNldmVudGg= IFJldmVyc2U= IGVzdGltYXRpb24= Q2hvb3Nl IHBhcmFjaA== IGJhcnJpYw== 44CQ IGNvbXBhc3M= IGFsbGVyZ2lj 4oCV T1RIRVI= ZXJyaWxsYQ== IHdhZ29u IHppbmM= IHJ1YmJlZA== IEZ1bGxlcg== IEx1eGVtYm91cmc= IEhvb3Zlcg== IGxpYXI= IEV2ZW5pbmc= IENvYmI= ZXN0ZWVt IHNlbGVjdG9y IEJyYXds aXNhbmNl IEVr IHRyb29w IGd1dHM= IEFwcGVhbA== IFRpYmV0YW4= IHJvdXRpbmVz IE1lbnQ= IHN1bW1hcml6ZWQ= c3RlYW1hcHBz IHRyYW5xdQ== IDE5Mjk= b3Jhbg== IEF1dGhlbnQ= IGdtYXh3ZWxs IGFwcHJlaGVucw== IHBvZW1z IHNhdXNhZ2U= IFdlYnN0ZXI= dXJ1cw== IHRoZW1lZA== IGxvdW5nZQ== IGNoYXJnZXI= U3BvaWxlcg== IHNwaWxsZWQ= aG9n IFN1bmRlcg== IEFpbg== IEFuZ3J5 IGRpc3F1YWw= IEZyZXF1ZW5jeQ== IEV0aGVybmV0 IGhlbHBlcg== UGVyY2VudA== IGhvcnJpZnlpbmc= IGFpbA== IEFsbGFu RUVF IENyb3NzaW5n NDQ5 IGhvbG9n IFB1enpsZXM= IEdvZXM= ZXJlbm4= NjA0 44GP IFJhZmFlbA== IGF0dGVu IEVtYW51ZWw= IHVwcm8= IFN1c3A= UHN5Y2g= IFRyYWluZXI= IE5FUw== IEh1bnRz YmVjdWU= IGNvdW5zZWxvcg== UnVsZQ== IHRveGlucw== IGJhbm5lcnM= cmlmaWNl IGdyZWV0aW5n IGZyZW56eQ== IGFsbG9jYXRl ICop ZXhwcg== NTAz IENoaWNr IFRvcm4= IGNvbnNvbGlkYXRpb24= IEZsZXRjaGVy c3dpdGNo ZnJhYw== Y2xpcHM= IE1jS2lu IEx1bmFy TW9udGg= SVRDSA== IHNjaG9sYXJseQ== cmFwZWQ= Mzk4 IDE5MTA= IGVncmVn IGluc2VjdXJl IHZpY3RvcmlvdXM= Y2ZmZmZjYw== IHNpbmdsZWQ= IGVsdmVz IFdvbmQ= YnVyc3Q= IGNhbW91Zmw= IEJMQUNL IGNvbmRpdGlvbmVk 54k= YW5zd2VyZWQ= IGNvbXB1bHNvcnk= YXNjaXN0 IHBvZGNhc3Rz IEZyYW5rZnVydA== Ym5i IG5lb2xpYmVyYWw= IEtleWJvYXJk IEJlbGxl d2FybQ== IHRydXN0cw== IGluc3VyZWQ= IEJ1Y2M= dXNhYmxl NjA3 IFBsYWlucw== IDE4OTA= IHNhYm90YWdl IGxvZGdlZA== ZmVsdA== IGdh IE5hcmM= IFNhbGVt IHNldmVudHk= IEJsYW5r cG9ja2V0 IHdoaXNwZXI= IG1hdGluZw== b21pY3M= IFNhbG1hbg== IEthZA== IGFuZ2VyZWQ= IGNvbGxpc2lvbnM= IGV4dHJhb3JkaW5hcmlseQ== IGNvZXJjaW9u R2hvc3Q= YmlyZHM= 6IA= a29r IHBlcm1pc3NpYmxl YXZvcmFibGU= IHBvaW50ZXJz IGRpc3NpcA== YWNp IHRoZWF0cmljYWw= IENvc21pYw== IGZvcmdldHRpbmc= IGZpbmFsaXplZA== 5aSn eW91dA== bGlicmFyeQ== IGJvb21pbmc= IEJlbGlldmU= IFRlYWNoZXI= IExpdg== IEdPT0RNQU4= IERvbWluaWNhbg== T1JFRA== IFBhcnRpZXM= IHByZWNpcGl0YXRpb24= IFNsb3Q= Um95 IENvbWJpbmVk IGludGVncmF0aW5n IGNocm9tZQ== IGludGVzdGluYWw= IFJlYmVsbA== IG1hdGNodXBz IGJsb2NrYnVzdGVy IExvcmVu IExldnk= IHByZWFjaGluZw== IFNlbmRpbmc= IFB1cnBvc2U= cmF4 Zmlm IGF1dGhvcml0YXRpdmU= IFBFVA== YXN0aWNhbA== IGRpc2hvbg== IGNoYXR0aW5n ICIkOi8= Q29ubmVjdGlvbg== IHJlY3JlYXRl IGRlbGlucXU= IGJyb3Ro IERpcnR5 IEFkbWlu em1hbg== IHNjaG9sYXJzaGlwcw== IDI1Mw== Y29udGFjdA== YWxzYQ== NzY3 Y3JlZW4= YWJiYWdl IDE5MTU= IGJsZW5kZWQ= IGFsYXJtZWQ= TGFuZ3VhZ2U= MzU2 IGJsZW5kcw== IENoYW5nZWQ= V29sZg== IGhlcGF0 Q3JlYXRpbmc= IHBlcnNlY3V0 IHN3ZWV0bmVzcw== YXJ0ZQ== IGZvcmZlaXR1cmU= IFJvYmVydG8= aW1wcm8= TkZM IE1hZ25ldA== RGV0YWlsZWQ= IGluc2lnbmlmaWNhbnQ= IFBPTElU IEJCUQ== IENQUw== IHNlYXc= YW1pbmVy bUw= ZW5kaWY= ZmluYWxz IDI2NQ== dWlzaA== IH0p IFByb2JsZW1z IGVtYmxlbQ== IHNlcmlvdXNuZXNz IHBhcnNpbmc= IHN1YnN0aXR1dGlvbg== IHByZXNzdXJlZA== IHJlY3ljbGVk YWxlYg== UnVieQ== IHByb2ZpY2llbmN5 RHJpdmVy IFdlc3Rlcg== Oic= QUZUQQ== IG1hbnRsZQ== IENsYXl0b24= ZmxhZw== IHByYWN0aXRpb25lcg== Y292ZXJlZA== IFN0cnVjdA== YWRkYWZp NDI1 IFRvd25zaGlw IEh5ZHJv TG91aXM= MzQz IGNvbmRv IFRhbw== IHV0aWxpemF0aW9u IG5hdXNlYQ== IERlbXM= cmlkZ2Vz cGF1c2U= IGZvcm11bGFz IGNoYWxsZW5nZXI= Mzc2 IGRlZmVjdGl2ZQ== IFJhaWx3YXk= IFB1Yk1lZA== IHlvZ3VydA== bGJz IE5vcmZvbGs= T1BF IE1vb2R5 IGRpc3RyaWJ1dG9y IHNjcm9sbHM= IGV4dHJhY3Rz U3Rhbg== IHZpYWJpbGl0eQ== IGV4cG9zZXM= IHN0YXJ2YXRpb24= IFN0ZXBz IERvZGQ= ZmV3 U1RE MzMy IGNsb3N1cmVz IGNvbXBsZW1lbnRhcnk= IFNhc2hh dW1weQ== IG1vbmV0 IGFydGljdWxhdGU= IERvY3Q= a2lsbGVy IHNjcmlt IDI2NA== IHByb3N0aXR1dGVz IHNldmVyZWQ= IGF0dGFjaG1lbnRz IGNvb2xlZA== TGV2 IEZhbGs= ZmFpbA== IHBvbGljZW1hbg== IERhZw== IHByYXllZA== IEtlcm5lbA== IGNsdXQ= IGNhdGg= IGFub21hbHk= U3Rvcm0= ZW1ha2Vy IEJyZWFrZmFzdA== dWxp b2lyZQ== Sko= aHo= T3BlcmF0aW9u IFNpY2s= MzU0 IEd1YXRlbWFsYQ== UmF0ZQ== IGV4cG9zdXJlcw== ZmFjZXM= IEFyY2hhZQ== cmFm IE1pYQ== IDIwMjU= IG9wYXF1ZQ== IGRpc2d1aXNlZA== IEhlYWRxdWFydGVycw== U2Fo IHBvdHM= OTc4 IE1hbGY= IGZyb3duZWQ= IHBvaXNvbm91cw== IENvbnZlcnM= ZWVrcw== IGNyYWI= LiIi IHRyZWFzb24= IHJhbmM= IGVzY2FsYXRpbmc= IHdhcnI= IG1vYnM= IGxhbXBz IFN1bnNoaW5l IEJydW5zd2ljaw== UGhvbmVz IHNwZWxsZWQ= IFNraXA= IDIwNTA= IDE5MTE= IFBsdXRv IEFtZW5k IG1lYXRz Mzg3 IHN0b21w IFpob3U= IExldmlhdGhhbg== IEhhemFyZA== YWR2 IE9yd2VsbA== IGFsb3Vk IGJ1bXBlcg== IEFuYXJjaA== dWJ1bnR1 IFNlcmlvdXM= Zml0dGluZw== IE9wdGlvbmFs IENlY2ls UkVBTQ== IHNlcm90b25pbg== IGN1bHRpdmF0ZQ== YWdvZ3Vl fVw= IG1vc3F1ZXM= IFN1bm55 IHJlYWN0aXZl cmV2b2x1dGlvbg== IEx1cA== IEZlZG9yYQ== IGRlZmVuc2VtYW4= IFZJRA== aXN0aW5l IGRyb3duaW5n IEJyb2FkY2FzdGluZw== IHRocmlsbGVy IFNjeQ== IGFjY2VsZXJhdGluZw== IGRpcmVjdHM= b2RpZWQ= YmlrZQ== ZHVyYXRpb24= IHBhaW5mdWxseQ== UmVkZA== IHByb2R1Y3Rpb25z IGdhZw== IHdoaXN0 IHNvY2s= IGluZmluaXRlbHk= IENvbmNlcm4= IENpdGFkZWw= IGxpZXU= IGNhbmRsZXM= b2dlbmVvdXM= YXJnZXI= IGhlYXZlbmx5 aW5mbGFtbWF0b3J5 UGVyZm9ybWFuY2U= Q3M= cnVjdG9zZQ== YXpha2k= IHBlc3NpbQ== IGluZmVyZW5jZQ== IHBvd2Q= IFpvZQ== IHBhaW50cw== IGRheno= cHRh LS0tLS0tLS0tLS0= IGluc3Bpcg== IEV4cGVyaW1lbnRhbA== IEtuaWZl cmVnb3I= Ym9ycw== IHNob3dlcnM= cm9tZWRh IHNhaW50 IGJlbmlnbg== IEppYW5n IGVudmlzaW9uZWQ= IHNocm91ZA== SUZU SE8= IHNodWZm IElDQw== IHNlZ3JlZw== IHJldmlzaXQ= aWdodGhvdXNl TGk= IHN1YnN0cmF0ZQ== IFNlYXM= IFJld2FyZA== IEhlcA== IEJyYXNz c2Jt IGVsaW1pbmF0ZXM= IHN0YW1pbmE= IFZBVA== IExvYW4= IGNvbnN0cmFpbnQ= IGFwcHJvcHJpYXRlZA== IHBlcw== IEFMRQ== cmFuZ2luZw== IDQwNA== Mzky IGludGVsbGVjdHVhbHM= YWNodQ== IHJlc3RydWN0dXJpbmc= IExldmlu IHJ1bmVz IGRlbGlnaHRmdWw= IGNhcmJvaHlkcmF0ZXM= IE1vZGVscw== IEV4cG8= IHRyYW5zcG9ydGluZw== YWxsb2M= IHJpbmdpbmc= U2Ftc3VuZw== IHNjYXJjZWx5 IFVSTHM= IE1BUw== IHByb3RvdHlwZXM= IG5hcnJhdG9y IENQVXM= Y2Ru IEJhcnRvbg== IGRlY2lkZWRseQ== IFNodQ== aXhpcg== b2Npb3Vz IE15c3Q= TmludGVuZG8= IHJldXNl IGZvcmdpdmVu RmV3 aW5pY2Fs bmF0 IHNlYW1sZXNz IEV2YQ== IEVWRQ== IEpP bGFuZGVycw== IHNvZnRlcg== bmVnaWU= IHRyYW5zaWVudA== IG9yYml0YWw= IGZ1bGZpbA== IEtvbQ== SG9wZWZ1bGx5 IGR5bmFtaWNhbGx5 IEh1bmdlcg== 5Zs= IEFybWVuaWE= ZWxtYW4= YmVydG8= IHBpZ2U= IElEcw== bGltaXQ= IHZlaW5z IHNvYXJpbmc= cGFja3M= R29sZGVu IENyYWI= aXN0b3I= IFJQTQ== ICQk Z3Jlc3Npb24= IGppaGFkaXN0 IGdhbWJsZQ== IGNhcmVn IGluZmxhdGVk RmFjZQ== IEZpcmVhcm1z IEVtbWFudWVs 4p0= IHNob2Nrcw== Z3JhYg== IHNwbGVuZA== IEhQVg== YWJvcnRpb24= QWJvdmU= RW50aXR5 cGxheWVycw== IGNvbW1lbmNlZA== dWxlbmNl IGZ1bGZpbGxtZW50 IGVtYm9kaW1lbnRz IFdlbGZhcmU= IGhhaWw= IDxA dHRlbg== IGNhdGNoZXI= IEphemVlcmE= IHZvbGNhbm8= IHN0YWJpbGl6ZQ== IEhhbmRsZXI= IGludGVuc2lmaWVk IEFicmFtcw== IGh1bWlsaWF0aW9u cGFjZWQ= NjA1 IENlbnRPUw== U3BlY2lmaWM= IGhlZWQ= IENBTQ== IEdhbGlsZQ== RGll IGFib2xpc2hlZA== IFRob21zb24= IFRlYWNoZXJz IFdhc3M= am9uZw== IElTQk4= IEFsbGllcw== c2hha2U= 5bc= dmljdA== SG93YXJk IGRlZW0= IGV4Y2VlZGluZ2x5 IFNtYXJ0c3RvY2tz aWJl IGRvb3J3YXk= IGNvbXBldGVk aWdtYXQ= IG5hdGlvbmFsaXN0cw== IGdyb29t IEtlZW4= IGRpc3Bvc2FibGU= ZGVjbA== IFRvbGtpZW4= IFNjaGVtZQ== IGJpb2Q= IGF2aWQ= IEVsb24= YWdhcg== IFRTQQ== Um9tYW4= IGFydGlmaWNpYWxseQ== IGFkdmlzb3Jz WEw= IEluZmVybm8= MzY2 IHRlZGlvdXM= IFBob3RvZ3JhcGh5 IENhcnJpZQ== IHRyb3Bl IFNhbmRyYQ== IGRlY2ltYWw= UXVlZW4= IEd1bmRhbQ== IE9N b3RlY2g= TkJB IDE5MzI= IGVudHJlbmNoZWQ= IE1hcmlvbg== IGZyYXRlcm5pdHk= TGFib3Vy SGVucnk= IGxhdGl0dWRl RWl0aGVy IGVuaGFuY2Vz IFBvdGVudGlhbA== IHNoaW5lcw== aWRhZA== IGJyZWFkdGg= IGNhcGFjaXRpZXM= IPCfmYI= IEJyb254 IHNleGVz IGRpZmZlcmVudGlhdGlvbg== IGhlYXZ5d2VpZ2h0 IFRhag== ZHJh IG1pZ3JhdGU= IGV4aGF1c3Rpb24= IFJVTg== ZWxzaXVz IEN1b21v IGd1aXRhcnM= IGNsb25lcw== IFNvbWV3 IFByeQ== LS0tLS0tLS0tLS0tLQ== IHdhcnJhbnRlZA== Y3ljbGVz IHNhbHZhZ2U= IGRpc2tz UkFOVA== IE5HT3M= IE1hcnRpYW4= IjpbeyI= IGFkZGljdHM= b2p1cmU= aWxsZXQ= IGFtYXppbmdseQ== YXJ0bWVudHM= cGl4ZWw= IEdQVXM= TGF5b3V0 6KM= IFRhbWls IEJhc2ls IGltcGFydGlhbA== IFN0cnVjdHVyZQ== Zm9yaw== YnJ5Y2U= IHJpZGdl IEhhbWJ1cmc= cmlvdXM= IGJsaXR6 Y2lnYXJldHRlcw== IGNhbm5lZA== NDAy IGlyb25pY2FsbHk= IGNvbXBhc3Npb25hdGU= IEhhd2tpbnM= LiM= IENhdGhlZHJhbA== IHJhbGxpZWQ= aW50ZXJuYWw= IHF1b3Rh c3Rha2Vz VEVYVA== bW9t IGNvbXBsZXRlcw== IDIzOA== IHNocnVn 44OR IE5pbnRo IHJldmlzZQ== IFByb3ZpZGVy IHRyZWFjaGVy IHF1YXNp IFBSRVM= IGRlcG9zaXRpb24= IGNvbmZpZGVudGlhbGl0eQ== aXNzb3Jz IGltYmFsYW5jZQ== IHNwYW5uaW5n IGFuZ3VsYXI= IEN1bA== Y29tbXVuaWNhdGlvbg== IE5vcmE= IEdlbml1cw== b3B0ZXI= IHNhY2tlZA== U3BvdA== IGZpbmVseQ== IENIUg== Mjgy d2F2ZXM= UGFsZXN0 IFJvaGluZw== Tkw= 6L8= IHNoaXR0eQ== IFNjYWxpYQ== NDc1 UHJvZ3Jlc3M= IHJlZmVyZW5jaW5n IGNsYXNzcm9vbXM= YWJlZQ== IHNvZA== aGVzaW9u NzA4 IFp1Y2tlcmJlcmc= IEZpbmlzaA== IFNjb3RpYQ== IFNhdmlvcg== IEluc3RhbGxhdGlvbg== YW50aGE= KC0= IDMwMg== IFB1bms= IGNyYXRlcg== eW91dHU= IHJvYXN0 IGluZmx1ZW5jaW5n IGR1cA== IEpS IEdyYXY= IHN0YXR1cmU= IGJhdGhyb29tcw== QXNpZGU= V2lraQ== bWVhbg== IFphaw== IE9uZXM= IE5hdGg= IGh5cGVydA== IGNvbW1lbmNlbWVudA== Q2l2aWw= IG1vZGVyYXRlbHk= IGRpc3RyaWJ1dG9ycw== IGJyZWFzdGZlZWRpbmc= IDk4MA== IFNpaw== IENpZw== IEFNRVI= UklQ IENhcmVlcg== dXN0aW5n IG1lc3NlZA== IGVo IEplbnNlbg== LyQ= IGJsYWNrbWFpbA== IGNvbnZlcnNpb25z IHNjaWVudGlmaWNhbGx5 IG1hbnRyYQ== cGF5aW5n IGl2b3J5 IENvdXJ0cw== T1VHSA== YXVudGxldA== U2VyaWFs QnJvdw== IEh1bmRyZWRz MzIz IHBlZQ== IGxpbnV4 IHN1Ym1lcg== IFByaW5jaXBhbA== NDg1 IERTTA== IENvdXNpbnM= IGRvY3RyaW5lcw== IEF0aGxldGljcw== IDMxNQ== IEthcm1h IGF0dGVudA== dXJnZXI= IHByZXNjcmliZQ== IGVuY2Fwcw== IENhbWU= IHNlY3JldGl2ZQ== IENyaW1lcw== ZG4= Q2xlYW4= IEVneXB0aWFucw== IENhcnBlbnRlcg== IGxs SHVt IE1pbG8= IGNhcGl0YWxpc3Rz IGJyaWVmZWQ= VHdl IEJhc2lu ZWx2ZXQ= TW9z IHBsdW5nZQ== IEthaXNlcg== IEZ1ag== aWxsaW4= IHNhZmVndWFyZHM= IG9zdGU= IE9wcG9ydHVuaXR5 IE1hZmlh IENhbGxpbmc= YXBh dXJiYW4= YnJ1c2g= aWxsYXJk Y8Op aW50ZWxsaWdlbmNl IExvYg== IERydWlk IHNtb290aGVy IGZvb3Rpbmc= IG1vdG9yaXN0cw== YXJjaXR5 IG1hc2N1bGluaXR5 IG1pc20= IGFiZG9taW5hbA== IFRhdmVybg== IFJvaA== IGVzY2FwZXM= c2lnbmVk QW50aG9ueQ== IHNhY3JpZmljaW5n IGludGltYWN5 IGFudGVyaW9y IEtvZA== IG1vdGlm IGdyYXo= IHZpc3VhbGl6YXRpb24= IGd1aXRhcmlzdA== IFRyb3Rza3k= bWFnaWM= RGFy IE1vcmk= IHdhcmRz IHRvaWxldHM= bGVzdA== IHRlbGVwb3J0 IFN1bmRheXM= IFBsYXQ= RVRT IGVTcG9ydHM= UGF0cmljaw== IEthdGhlcmluZQ== ZW5rbw== IGhhc3NsZQ== IE1pY2s= Z2dsZXM= IGhvYg== YWludGFpbg== IGFpcmJvcm5l IHNwYW5z IGNoaWxp IGFwZXJ0dXJl IHZvbHVudGVlcmVk IEluY2lkZW50 IEZyZXM= IFZldGVyYW4= YXVnaHRlcmVk aW5nbw== IHVuaW5zdXJlZA== Q0xPU0U= IGZ1c2U= IGVyb3RpYw== IGFkdmVydGlzZQ== cmFpc2luZw== VGV4dHVyZQ== IGF0dGVuZHM= IFJFQUw= dWRkbGVk IHNtb290 IDMwNQ== IFdpbGxpcw== IGJsb25k QW5hbHlzaXM= IFZU b25pY2E= IHN0cm9uZ2hvbGQ= UkY= Tk0= Lj4+ IHByb3NwZXJvdXM= IGJvYXN0ZWQ= Mjky IE1hbnVmYWN0dXJpbmc= UFJFU1M= Z3Jlbg== IHBoYXJtYWN5 IFJvY2tlZmVsbGVy a2Fp IHRodW1icw== IEh1dA== IG1vdGhlcmJvYXJk IGd1YXJkaWFucw== IEFsdGVy bGx1bGFy IHNoYWNr IHdpc2VseQ== IGJhY2tib25l ZXJ2YQ== IHN1aWNpZGVz IE1jR3JlZ29y aWphaA== RW1lcg== IEJyYXY= IGRlc2lnbmF0ZQ== UE9TVA== cHJvZHVjZWQ= IGNsZWFuc2luZw== aXJsd2luZA== ZXhpc3RlbnQ= IEh1bXBo IFBheW5l IHZlc3RlZA== xaE= IHN0cmluZ2VudA== aW9uYQ== IHVuc3Vi IHN1bW1lZA== IEhlcmN1bGVz c3ViamVjdA== IFJhZ25hcg== IE5vcw== IGNoYXJhY3Rlcml6YXRpb24= IHNhdnZ5 IERhd3Nvbg== IENhc2lubw== IGZyaQ== IEJhcnJpZXI= IG1pc2luZm9ybWF0aW9u IGluc3VsYXRpb24= IGNvcnJpZG9ycw== IGFpcnBsYW5lcw== IE5vY3Q= YWhp IDE5MTY= a2I= YXJtYWM= IHNodW4= IHNjaGVtYQ== IGhvcnJpZmllZA== IDIzOQ== YXVuZGVycw== TkI= aWF0ZXM= ZXJpdHk= IFNoYXJk IHJhcml0eQ== IGdyb3VwZWQ= IEdoYW5h YWdhaW5zdA== IEJpb2xvZ2ljYWw= IEF3YXJl b3dlbGw= z4Q= IEJlYXU= c2hhdw== SGFjaw== IEp1bGl1cw== VVNT b2xzb24= YXVuYQ== Y3J1 IE1hdXJpY2U= IElr IHNlcXVlbmNpbmc= IHJhZGljYWxz ICg/LA== dmlydHVhbA== IGFueXdheXM= IHJlcGVyYw== IGhhbmRsZXJz IGhlc2l0YW50 6YM= IE1G cGxlbWVudGF0aW9u YXNzb2NpYXRlZA== IGNhbXBhaWduZWQ= IFl1ZQ== dXRhdGlvbnM= IFlvZ2E= IHNpbW1lcg== IHJvZHM= IG1lbG9keQ== IGNvbnZveQ== dmlkZW9z IHNjcmVlbmVk TmVn b2NoZW1pY2Fs ICgpKQ== IHVsdHJhcw== IGFudGlw IElzbGFuZGVycw== NzA0 IGZldGlzaA== IHJpZGljdWxvdXNseQ== IEthcnQ= IG1pdG9jaG9uZHJpYWw= IGludGVyZmVyaW5n QnVpbGRlcg== IG92ZXJmbA== IGFjbmU= IE11ZA== IEtlcnI= ZmxleA== IFBvc3RhbA== IEJhbHRpYw== NDc3 IFBlcnNvbnM= b3VyYWdl SEI= IE11c2U= IEltbW9ydGFs IERyaXZpbmc= IHBldGl0aW9ucw== IHN1YnNjcmlwdA== IHNvcmNl IFByb2Nlc3Nvcg== dXRvbg== U29ueQ== IHBob24= IHJhY2Vk IEFudGhyb3A= IGRheXRpbWU= IEV4ZXJjaXNl QWRkaW5n IGVuZ2FnZXM= IFF1YWxjb21t IG1pcmFjbGVz IG1lbWVz IERyaW5r IE9yaW9sZXM= IGhhaXJz IFBvbGFy YXRob20= IHNsaXBwZXJ5 IFJlbXk= IGNhcmFtZWw= IFlFQVI= IGFsaw== SWdu YXV0aW9u IE1lcmxpbg== IENyYW4= IGFwb2xvZ2llcw== IDQxMA== IG91dGluZw== IE1lbW9yaWVz YXBwb2ludGVk IGNvdW50ZXJlZA== dWxk cG9zaW5n IGZpcmV3YWxs IFdhc3Q= IFdldA== d29ya2Vk c2VsbGVy IHJlcGVhbGVk ZXJlbw== YXNzdW1pbmc= QkxJQw== bWl0ZQ== IENFT3M= IENoYXBlbA== ZWxsaWdlbnQ= X19fX19fX19fX19fX19fX19fX19fX19f RG9n IHdhcnQ= IHN1YnNjcmliZXI= c3BvcnRz IGJlZ2dlZA== IE1W IHNlbWlm ZXRoaWNhbA== IHByZWFjaA== IHJldml0YWw= IHB1bml0aXZl IHNob3J0Y3V0cw== IGluc3RpdHV0ZWQ= IFdhcnNhdw== IGFiZG9tZW4= IEtJTkc= IHN1cGVyaW50ZW5kZW50 IGZyeQ== IEdlbw== VE9S IGNvbnRyYWRpY3Rpb25z YXB0aWM= IGxhbmRzY2FwZXM= YnVncw== IGNsdXN0 IHZvbGxleQ== Y3JpYmVk IHRhbmRlbQ== IHJvYmVz V0hBVA== IHByb21vdGVy IGVsb3F1 cmV2aWV3ZWQ= IERL IFBsYXRv IGZwcw== VGFuaw== IERlcnJpY2s= IHByaW9yaXRpemU= YXNwZXI= IEhvbmR1cmFz IENvbXBsZXRlZA== bmVj IG1vZw== bmly IE1heW8= REVG c3RhbGw= aW5uZXNz IFZvbGtzd2FnZW4= IHByZWNhdXRpb24= IE1lbGw= aWFr aXN0cmllcw== IDI0OA== IG92ZXJsYXBwaW5n U2VuYXRl IEVuaGFuY2U= cmVzeQ== cmFjaWFs T1JUUw== IE1vcm1vbnM= U3Ryb25n IENvY2g= TWV4aWNv IE1hZHVybw== IGphcnM= IGNhbmU= V2lr b2xsYQ== aWZmZXJlbmNl IHBoeXNpY2lzdA== IE1hZ2dpZQ== IDI4NQ== IGRlcGljdGlvbg== IE1jTGFyZW4= SnU= IHNsb3dz IGNvbW1pc3Npb25lcnM= IFdpbGxvdw== IEV4cGxvcw== aG92YWg= IHRlY2huaWNpYW4= IGhvbWljaWRlcw== IEZsYXY= IFRydW1hbg== IDEwMDAw dWN0b3I= IHNoYWRlcg== TmV3c2xldHRlcg== NDU3 IHJldmVy IGhhcmRlbmVk IHdoZXJlYWJvdXRz IHJlZGV2ZWxvcA== IGNhcmJz IHRyYXZlcnM= IHNxdWlycmVs IGZvbGxvd2Vy IHNpbmdz NTA4 IHJhYmJpdHM= ZW1vbml1bQ== IGRvY3VtZW50aW5n IG1pc3VuZGVyc3Rvb2Q= KSc= Umljaw== Z2dpZXM= IHByZW1pZQ== IHNrYXRpbmc= IHBhc3Nwb3J0cw== IGZpc3Rz YWdlZGRvbg== SGF3 QUNQ MDgw IFRob3VnaHRz IENhcmxzb24= IHByaWVzdGhvb2Q= aHVh IGR1bmdlb25z IExvYW5z IGFudGlz IGZhbWlsaWFyaXR5 IFNhYmI= b3BhbA== IEluaw== c3RyaWtl IGNyYW0= IGxlZ2FsaXplZA== IGN1aXNpbmU= IGZpYnJl VHJhdmVs IE1vbnVtZW50 T0RZ ZXRoeQ== IGludGVyc3RhdGU= IFBVUg== ZW1wb3Jhcnk= IEFyYWJpYW4= ZGV2ZWxvcGVk IHNhZGRsZQ== IGdpdGh1Yg== IE9mZmVy IElTUA== cm9sZXQ= IFNVUEVS IERlbmlz IG11bHRpcGxpZXI= IHN0aXJyZWQ= SW50ZXJlc3RpbmdseQ== IGN1c3RvbWFyeQ== IGJpbGxlZA== aGV4 IG11bHRpcGxpZWQ= IGZsaXBwaW5n IENyb3NieQ== IGZ1bmRhbWVudGFscw== aWFl IFBsYXllZA== IEF0b20= YW1hem9u IEZsYW0= ZWV6 YWN0aXZhdGVk IHRhYmxlc3Bvb24= IGxpYmVyYWxpc20= IFBhbGlu IFBhdGVs TnVt IFRBTQ== IHN1cm4= IFJlbG9hZGVk IGNvaW5lZA== Il0s IENsYXNo IEFndQ== IHByYWdtYXRpYw== IEFjdGl2YXRl IDgwMg== IHRyYWlsZXJz IHNpbGhvdQ== IHByb2Jlcw== IGNpcmN1cw== IEJhaW4= IExpbmRzYXk= IEFiYmV5 RGVsaXZlcnk= IGNvbmNlc3Npb24= IGdhc3Rybw== IFNwcml0ZQ== xJ8= YW5kZWw= IGdpbW0= IGF1dG9iaQ== IFR1cnRsZQ== IHdvbmRlcmZ1bGx5 IEhhcmFt IFdvcmxkd2lkZQ== IEhhbmRsZQ== IHRoZW9yaXN0cw== IHNsZWVr IFpodQ== b2dyYXBoaWNhbGx5 RUdB IE93bmVycw== YXRocw== IEFudGFyY3RpYw== bmF0YWw= PSIi ZmxhZ3M= YGBgYA== IHN1bA== S2g= IHBvdGFzc2l1bQ== IGxpbmVtYW4= IGNlcmVhbA== IFNlYXNvbnM= IDIwMjI= IG1hdGhlbWF0aWM= IGFzdHJvbm9tZXJz cHJvZmVzc2lvbmFs IGZhcmVz Y2tub3dsZWQ= IGNoaQ== IHlvdW5nc3RlcnM= IG1pc3Rha2VubHk= IGhlbWlzcGhlcmU= IERpdmluaXR5 cm9uZQ== ICIs cmluZ3M= IGF0dHJhY3Rz dmFuYQ== 5bk= Q0FQ IHBsYXlsaXN0 IHBvcmNo 44Gj IGluY29ycG9yYXRlcw== IHNvYWs= IGFzc2VydGluZw== IFRlcnJvcmlzbQ== IFBhYmxv SmE= Y2VzdGVy IGZlYXJpbmc= IFByYXllcg== IGVzY2FsYXRlZA== R1c= IHJvYmU= IEJyaWdodG9u YWNpc3Rz IFN5bXBob255 IER3YXJm IFBhcmFkZQ== IExlZ28= IGluZXhwbA== IGxvcmRz bGVhZg== UkFH bGliZXI= IGNpZ2Fycw== IEplaG92YWg= NjA2 V0lORE9XUw== IExpYmVyaWE= ZWJ1cw== SGVhdnk= IGx1YnJpYw== IFJX YW5ndWFnZXM= IG5hcnJvd2Vk Y29tcHV0ZXI= IEVtYmVy IG11cmRlcmluZw== IGRvd25zdHJlYW0= IFR1bHM= IFRhYmxlcw== VG9waWM= IEFjY3VyYWN5 PS8= bG9zdA== IFJlaQ== IHByb2dyZXNzZXM= YmVhcg== IGVzdGFibGlzaG1lbnRz SnVzdGlu IFBlYWNo IEdvbWV6 5b8= IFRyaWFuZ2xl SWRlbnQ= IEhpdmU= UmVzb3VyY2Vz IG1peGVz IEFzc3VtaW5n TXU= IGh5cG9j IHNhbmU= IFdhbg== aWRpb3Vz U3VjY2Vzcw== IGlv QW5nZWw= IGRhbmdlcm91c2x5 IENyZWF0dXJl V09SSw== Ols= IEthdHJpbmE= TGlzdGVuZXI= TWlsbGVy IElkbGli aGFuZw== IGNpcmN1bXZlbnQ= aHJlZg== IGNlbGVzdGlhbA== IFdlZWtz IFB1Zw== IERhbHRvbg== IHN1YnBvZW5h dWt1 IHBlcnNpc3RlZA== cGVp b2xkaW5n IERvY3VtZW50cw== IEhhc3Q= IENFTlQ= IHByaW1lcg== IHN5bm9ueW1vdXM= IG5pYg== b21icw== IG5vdGF0aW9u IERpc2g= IEF0bW9zcA== IGZvcmJpZA== IEFORw== cGF0dGVybg== bG9z IHByb2plY3RpbGVz YnJvd24= LiIs IFZlbm9t IGZpZXJjZWx5 dWJsaXNoZWQ= IFVyYW4= IE5pY2FyYWc= NDEw IENBTA== T1RPUw== IE1pcmFjbGU= IEVuY2hhbnQ= IGd1YXJkaW5n YXBwZW5k QXR0YWNo IGxldmVsZWQ= IGNvbmRvbXM= aWhpbGF0aW9u NjQ5 IG5pZ2h0bWFyZXM= IFRIRVk= IFNUQVJU IEtpbm4= IHJvb21tYXRl IGh5Z2llbmU= b3BwaW5n Sm9i IGx2bA== IFZFUg== IEtlZXBpbmc= YWJldGlj IGZvcm1hdHRpbmc= ZXJhbGE= IHJldmlzaW9ucw== IHJlc3VyZw== VGVs IEdvb2RtYW4= MzUz cG9k IGluZGlzcA== IFRyYW5zbGF0aW9u IGdvd24= IE11bmQ= IGNpcw== IGJ5c3RhbmQ= Y29sbGVjdA== IFB1bmphYg== YWN0aXZlbHk= IEdhbWI= dGVsbA== IGltcG9ydGluZw== Z2VuY2llcw== IGxvY29t IEJyaWxs SG9seQ== IEJlcmdlcg== IHNob3dkb3du IHJlc3BvbmRlcnM= SUxZ IHRha2Vkb3du bGV0ZWQ= IG1hdHRlcmVk IHByZWRpY3RpdmU= IG92ZXJsYXk= R1BV IFZpY2s= IGNvbnZleWVk VGFi cGVlcg== U2Nhbg== IGRlZmVuc2l2ZWx5 dmFl IGFwcHJvdmluZw== IHRpZXJz IFZpYQ== cXVlcmFkZQ== IFNhdWRpcw== IGRlbW9saXNoZWQ= IFByb3BoZQ== IG1vbm8= IGhvc3BpdGFsaXR5 SEFN IEFyaWVs TU9E IFRvcmFo IGJsYWg= IEJlbGFydXM= ZXJlbnRpYWw= IFR1Yw== IGJhbmtlcg== Mzk3 IG1vc3F1aXQ= IFNjaWVudGlzdA== IE11c2ljYWw= IGh1c3Q= U2hpZnQ= IHRvcm1lbnQ= IHN0YW5kb2Zm RWR1Yw== IEZvZw== IGFtcGxpZmllcg== U2hhcGU= SW5zdGFuY2U= IENyaXRpY3M= IGRhZW1vbg== SG91c3Rvbg== IG1hdHRyZXNz IElERg== IG9ic2NlbmU= IEFtZXI= aGV0dGk= IGNvbXBpbGluZw== MzUy dmVyZXR0 IFJlZHVjdGlvbg== aXN0cmF0aW9u IEJsZXNzZWQ= IEJhY2hlbG9y MzE2 IHByYW5r IFZ1bGNhbg== ZGRpbmc= IG1vdXJuaW5n IFF1aW50 IEJsYXN0ZXI= dGVzdGluZw== IHNlZGltZW50 Pj4+ IEV0ZXJuaXR5 IFdIRVJF IE1hemU= IHJlYWN0aW5n IEFsdg== b21zZGF5 IENSQQ== IHRyYW5zbGF0b3I= IGJvZ3Vz YXR1 V2Vic2l0ZQ== b2xscw== IGJhcHRpc20= IHNpYmxpbmc= IEF1dHVtbg== dmV6 44Gu6Q== Z3VhcmRz R2Vvcmc= YXNzYWRvcnM= IEZyZXVk IGNvbnRpbmVudHM= IFJlZ2lzdHJ5 QmVybmll lprlo6s= IHRvbGVyYW50 IFVX IGhvcnJpYmx5 OTk1 IE1JREk= IGltcGF0aWVudA== b2NhZG8= ZXJp IFdvcnN0 IE5vcnJpcw== IFRhbGtpbmc= IGRlZmVuZHM= ZW5zYWJsZQ== IDIwMjE= IGFuYXRvbXk= TGV3 IGRyYXdlcg== IENhbmJlcnJh IHBhdHJpb3RpYw== 6b6N5Zaa5aOr IEF2Zw== QVJN IHVuZGlzY2xvc2Vk IGZhcmV3ZWxs NDU5 YmFibGU= IEFsbGlzb24= T0xPRw== IGNvbmNv dGlnaHQ= IEFDUEk= IE1pbmVz bGljaA== IOKUnA== cmVwcmVzZW50ZWQ= MjAwMDAw IGVudGh1c2lhc3Q= T1RT Ymls IEluZ3JlZGllbnRz IGludmVudG9y IE15U1FM wqDCoMKg IEFCT1VU d2l0aGlu IG1r QnVs IEZha2U= IGRyYWNvbmlhbg== V2E= aGVsbQ== IFRlcnJhbg== ZXJ2aWxsZQ== IGNvbW1vbnBsYWNl U0laRQ== ICI8 cmVwbGFjZQ== b2dyYXBocw== IFNFTEVDVA== aW5jaWJsZQ== IE1vc3RseQ== IFNoZWZmaWVsZA== IElERQ== dWdnbGU= IGNpdGF0aW9ucw== aHVyc3Q= IFVuaXg= IHVubGVhc2g= IFBpcGVy IE5hbm8= IHN1Y2N1bWI= IHJlbHVjdGFuY2U= IDI1MDA= IE1lcmNoYW50 IHdpcmV0 IGNvbWJvcw== IEJpcnRoZGF5 IGNoYXJjb2Fs IFVQUw== IEZhaXJmYXg= IGRyaXZld2F5 IFRlaw== IFBpdGNo b3ZlcmU= IHRlY2huaWNpYW5z IEFjdHVhbA== ZmxhdGlvbg== IEZpc2NhbA== IEVtcHR5 YW5hbW8= IG1hZ25lc2l1bQ== IHNsdXQ= IGdyb3dlcnM= SW52ZXN0aWdhdG9ycw== KCk6 IFNhdGVsbGl0ZQ== IEtleW5lcw== bWlzc2l2ZQ== bGFuZQ== IGJvcm91Z2g= MzQ0 IFRFQU0= IEJldGhlc2Rh Q1Y= aG93ZXI= IFJBRA== IGNoYW50 IFJpeQ== IGNvbXBvc2l0aW9ucw== IG1pbGRseQ== IG1lZGRsaW5n IGFnaWxpdHk= YW5lZXJz NTAx IHN5bnRo bGluZ2Vy Mjkx IGV4Y2xhaW1lZA== UGFydHk= IGNvbnRhbWlu IE1hbm9y IFJlc3BvbmQ= IHByYWlzaW5n IG1hbm5lcnM= ZmxlZXQ= U3VtbWVy IEx5bmQ= IERlZmluaXRlbHk= Z3JpbQ== IGJvd2xpbmc= c3RyaQ== 55s= eW50 IG1hbmRhdGVz RElW IHJlY29uY2lsZQ== dmlld3M= IERhbW9u dmV0dGU= Rmxv IEdyZWF0ZXN0 aWxvbg== aWNpYQ== IHBvcnRyYXlhbA== IGN1c2hpb24= NTA0 MTk3OQ== b3NzYWw= QXBwbGlj c2NyaXB0aW9u IG1pdGlnYXRpb24= QVRT cGFj IGVyYXNlZA== IGRlZmljaWVuY2llcw== IEhvbGxhbmRl IFh1 IGJyZWQ= IHByZWduYW5jaWVz ZmVtaW4= IGVtcGg= IHBsYW5uZXJz IG91dHBlcg== dXR0ZXJpbmc= IHBlcnBldHJhdG9y IG1vdHRv IEVsbGlzb24= IE5FVkVS IGFkbWl0dGVkbHk= QVJJ IEF6ZXJiYWlqYW4= IG1pbGxpc2Vj IGNvbWJ1c3Rpb24= IEJvdHRsZQ== IEx1bmQ= IFBz IERyZXNz IGZhYnJpY2F0ZWQ= IGJhdHRlcmVk IHNpZGVs IE5vdHRpbmc= Rm9yZWlnbg== IEplcm9tZQ== MDIw IEFyYml0 IGtub3Rz IFJJR0hU TW92aW5n 44GZ IHN1cmdlcmllcw== IGNvdXJ0aG91c2U= IG1hc3RlcmVk IGhvdmVyaW5n IEJyYW4= IEFsaXNvbg== IHNhZmVzdA== bWlsaXRhcnk= IGJ1bGxpZWQ= IGJhcnJhZ2U= UmVhZGVy RVNF IEdlb2dyYXBoaWM= VG9vbHM= MzE0 IEdlZWs= cm90aA== Z2xlcnM= IEZJTg== z4E= IEFzdG9u YWx0ZXJu NDg4 IHZldGVyaW4= R2FtZXI= IGludGVs cmVuY2hlcw== U2hpZWxk IGFtbmVzdHk= IEJoYXI= IHBpbGVk IGhvbm9yYWJsZQ== IEluc3RpdHV0ZXM= IHNvYWtlZA== IGNvbWE= IEVGRg== MzQx Ynl0ZXM= IEdtYWls bGVpbg== IENhbmFkaWVucw== bWF0ZXJpYWw= SWw= IGluc3RydWN0b3Jz IEtZ IGNvbmNlaXZl dWJi IFBvc3NpYmxl IGVhc2luZw== IENocmlzdGluYQ== IGNhcmlj IEhEUg== Uk9N IHNob3ZlbA== ZGVsZXRl IHB1ZmY= IENoYW5naW5n IHNlYW1sZXNzbHk= QXR0cmlidXRl IGFjcXVpc2l0aW9ucw== YWtlcnk= IEVG IGF1dGlzdGlj IFRha2Vz IFBvd2Rlcg== IFN0aXI= NTEw IEJ1YmJsZQ== c2V0dGluZ3M= IEZvd2xlcg== IG11c3RhcmQ= IG1vcmVvdmVy IGNvcHlyaWdodGVk IExFRHM= MTUwMA== 5ok= IEhJUw== ZW5m IGN1c3RvZA== IEh1Y2s= R2k= IGltZw== QW5zd2Vy Q3Q= amF5 IEluZnJhc3RydWN0dXJl IGZlZGVyYWxseQ== TG9j IG1pY3JvYmVz IG92ZXJydW4= ZGRz b3RlbnQ= YWRpYXRvcg== Pj4+Pj4+Pj4= IHRvcm5hZG8= IGFkanVk IGludHJpZ3VlZA== IHNp IFJldmVsYXRpb24= cHJvZ3Jlc3M= IGJ1cmdsYXJ5 IFNhaXlhbg== IEthdGh5 IHNlcnBlbnQ= IEFuZHJlYXM= IGNvbXBlbA== ZXNzbGVy IFBsYXN0aWM= IEFkdmVudA== IFBvc2l0aXZl IFF0 IEhpbmR1cw== cmVnaXN0ZXJlZA== dWxhcml0eQ== IHJpZ2h0ZW91c25lc3M= IGRlbW9uaWM= dWl0aXZl IEJEUw== IEdyZWdn Y2lh IENydXNhZGU= IFNpbmFp V0FSRQ== Kyg= IG1lbGw= IGRlcmFpbA== eWFyZHM= QXN0 IG5vdGljZWFibHk= IE9iZXI= UmFt IHVubm90aWNlZA== IHNlcQ== YXZhZ2U= VHM= IDY0MA== IGNvbmNlZGU= IF0p RmlsbA== IGNhcHRpdml0eQ== IEltcHJvdmVtZW50 IENydXNhZGVy YXJhb2g= TUFQ 5pc= IHN0cmlkZQ== YWx3YXlz Rmx5 Tml0 IGFsZ2Fl IENvb2tpbmc= IERvb3Jz TWFsbGV5 IHBvbGljZW1lbg== 44GN IGFzdHJvbmF1dA== YWNjZXNzaWJsZQ== NDk1 IFJBVw== Y2xpZmZl dWRpY3JvdXM= IGRlcGVuZGVk YWxhY2g= IHZlbnR1cmVz cmFrZQ== IHRpdHM= IEhvdQ== IGNvbmRvbQ== b3Jtb25hbA== IGluZGVudA== IHVwbG9hZGluZw== Rm9vdG5vdGU= SW1wb3J0YW50 IDI3MQ== IG1pbmRmdWw= IGNvbnRlbmRz Q3Jh IGNhbGlicg== IE9FQ0Q= cGx1Z2lu RmF0 IElTUw== IER5bmFtaWNz YW5zZW4= Njg2 Jyks IHNwcml0ZQ== IGhhbmRoZWxk IEhpcHA= PX49fg== VHJ1c3Q= IHNlbWFudGljcw== IEJ1bmRlcw== IFJlbm8= IExpdGVyYXR1cmU= c2Vuc2U= R2FyeQ== IEFlZw== IFRyaW4= RUVL IGNsZXJpYw== IFNTSA== IGNocmlzdA== IGludmFkaW5n aWJ1 IGVudW0= YXVyYQ== IGFsbGVnZQ== IEluY3JlZGlibGU= QkJD IHRocnU= IHNhaWxlZA== IGVtdWxhdGU= IGluc2VjdXJpdHk= IGNyb3U= IGFjY29tbW9kYXRpb25z IGluY29tcGV0ZW50 IHNsaXBz IEVhcnRocXU= c2FtYQ== SUxMRQ== IGlQaG9uZXM= YXNha2k= IGJ5ZQ== IGFyZA== IGV4dHJhcw== IHNsYXVnaHRlcmVk IGNyb3dkZnVuZGluZw== cmVzc28= IGZpbGli IEVSUk9S IFRMUw== ZWdn IEl0YWw= IGVubGlzdA== IENhdGFsb25pYQ== IFNjb3Rz IHNlcmdlYW50 IGRpc3NvbHZl Tkg= IHN0YW5kaW5ncw== cmlxdWU= SVE= IGJlbmVmaWNpYXJ5 IGFxdWFyaXVt WW91VHViZQ== IFBvd2VyU2hlbGw= IGJyaWdodGVzdA== IFdhcnJhbnQ= U29sZA== V3JpdGluZw== IGJlZ2lubmluZ3M= IFJlc2VydmVk IExhdGlub3M= aGVhZGluZw== IDQ0MA== IHJvb2Z0b3A= QVRJTkc= IDM5MA== VlBO R3M= a2VybmVs dHVybmVk IHByZWZlcmFibGU= IHR1cm5vdmVycw== IEhlbHM= U2E= IFNoaW5qaQ== dmVo IE1PRFVMRQ== VmlvbA== IGV4aXRpbmc= IGphYg== IFZhbmlsbGE= IGFjcm9u IEdhcA== YmVybg== QWs= IE1jR3U= IGVuZGxlc3NseQ== IEZhcmFnZQ== IE5vZWw= VmE= TUs= IGJydXRl IEtydQ== IEVTVg== IE9saXZpYQ== 4oCg IEthZg== IHRydXN0aW5n IGhvdHM= MzI0 IG1hbGFyaWE= IGpzb24= IHBvdW5kaW5n b3J0bWVudA== Q291bnRyeQ== IHBvc3Rwb25lZA== IHVuZXF1aXY= Pyks IFJvb25leQ== dWRkaW5n IExlYXA= dXJyZW5jZQ== c2hhcGVzaGlmdGVy IEhBUw== b3NhdGU= IGNhdmVybg== IGNvbnNlcnZhdGlzbQ== IEJBRA== IG1pbGVhZ2U= IGFycmVzdGluZw== VmF1bHRz IG1peGVy RGVtb2NyYXRpYw== IEJlbnNvbg== IGF1dGhvcmVk ODAwMA== IHByb2FjdGl2ZQ== IFNwaXJpdHVhbA== dHJl IGluY2FyY2VyYXRlZA== IFNvcnQ= IHBlYWtlZA== IHdpZWxkaW5n cmVjaWF0aW9u 15nX UGF0Y2g= IEVtbXk= IGV4cXU= dHRv IFJhdGlv IFBpY2tz IEdyeQ== cGhhbnQ= IGZyZXQ= IGV0aG4= IGFyY2hpdmVk JS0= Y2FzZXM= IEJsYXpl IGltYg== Y3Y= eXNz aW1vbnk= IGNvdW50ZG93bg== IGF3YWtlbmluZw== IFR1bmlzaWE= IFJlZmVy IE1K IHVubmF0dXJhbA== IENhcm5lZ2ll aXplbg== IE51Z2dldHM= aGVzcw== IGV2aWxz NjQ3 IGludHJvZHVjdG9yeQ== bG92aW5n IE1jTWFob24= IGFtYmlndWl0eQ== TGFiZWw= IEFsbWlnaHR5 IGNvbG9yaW5n IENsYXVz c2V0dGluZw== TlVMTA== IEZhdm9yaXRl IFNJRw== Pig= IFNoaXZh IE1heWVy IHN0b3JtZWQ= IENvdmVyYWdl d2VhcG9ucw== aWdoYW0= IHVuYW5zd2VyZWQ= IGxldmU= IGNveQ== Y2Fz YmFncw== YXN1cmVk U2VhdHRsZQ== IFNhbnRvcnVt c2VyaW91cw== IGNvdXJhZ2VvdXM= IFNvdXA= IGNvbmZpc2NhdGVk IC8vLw== IHVuY29udmVudGlvbmFs IG1vbXM= IFJvaGluZ3lh IE9yY2hlc3RyYQ== IFBvdGlvbg== IGRpc2NyZWRpdA== IEZJTA== Zml4ZWQ= IERlZXI= ZG9p IERpbWVuc2lvbg== IGJ1cmVhdWNyYXRz ZXRlZW4= IGFjdGlvbkdyb3Vw b2ht IGJ1bXBz IFV0aWxpdHk= IHN1Ym1hcmluZXM= cmVuaGVpdA== cmVzZWFyY2g= IFNoYXBpcm8= IHNrZXRjaGVz IGRlY2VwdGl2ZQ== IFZpbA== ZXNhbWU= IEVzc2VudGlhbGx5 IHJhbXBhZ2U= aXNreQ== IG11dHRlcmVk dGhyaXRpcw== IDIzNg== ZmV0 YmFycw== IHB1cGls IFRob3U= b1M= c29uZw== IGZyYWN0dXJlZA== IHJldmVydA== cGljdHVyZQ== IGNyaXRlcmlvbg== dXNoZXI= IHJlcGVyY3Vzc2lvbnM= IFZpbnRhZ2U= IFN1cGVyaW50ZW5kZW50 T2ZmaWNlcnM= IGZsYWdnZWQ= IGJsYW1lcw== IGludmVyc2U= b2dyYXBoZXJz IG1ha2VzaGlmdA== IGRldm9pZA== IGZvc3NpbHM= IEFyaXN0b3RsZQ== IEZ1bmRz IGRlcGxldGVk IEZsdQ== IFl1YW4= IHdvZXM= IGxpcGlk IHNpdHU= cmVxdWlzaXRlcw== IGZ1cm5pc2g= IFNhbWFy IHNoYW1lZnVs IGFkdmVyc2VseQ== IGFkZXB0 IHJlbW9yc2U= IG11cmRlcm91cw== dWNrbGVz IEVTTA== IDMxNA== c2VudA== IHJlZGVm IENhY2hl IFB1cnM= aWdhbnM= IDQ2MA== IHByZXNjcmlwdGlvbnM= IGZyZXM= RnVjaw== b2NyYXRlcw== VHdlbnR5 IFdlaXJk IFRvZ2dsZQ== IENhbGxlZA== aXRpemVucw== IHBvdWx0cnk= IGhhcnZlc3Rpbmc= 44Km44K5 Qm90dG9t IGNhdXRpb25lZA== dG4= Mzk2 IE5pa2tp IGV2YWx1YXRpb25z IGhhcmFzc2luZw== IGJpbmRpbmdz IE1vbmV0YXJ5 IGhpdHRlcnM= IGFkdmVyc2FyeQ== dW50cw== IHNldGJhY2s= IGVuY3J5cHQ= IENhaXQ= IGxvd3M= ZW5nZXM= IE5vcm4= IGJ1bGJz IGJvdHRsZWQ= IFZveWFnZXI= MzE3 IHNwaGVyZXM= cG9saXRpY3M= IHN1YnRyYWN0 IHNlbnNhdGlvbnM= IGFwcGFsbGluZw== IDMxNg== IGVudmlyb25tZW50YWxseQ== IFNURU0= IHB1Ymxpc2hlcw== NTYw IGRpbGlnZW5jZQ== NDg0 IGFkdmlzZXM= IHBldHJvbA== IGltYWdpbmluZw== IHBhdHJvbHM= IEludGVnZXI= IEFzaGVz YWN0dXM= IFJhZGlhbnQ= IExU aXRhYmlsaXR5 aHRha2luZw== U2V0dGluZw== IG51YW5jZWQ= IFJlZWY= IERldmVsb3BlcnM= Tmk= cGllY2Vz OTkw TGljZW5zZQ== IGxvd2Vycw== IE90dG9tYW4= MzI3 b29v IHF1aXR0aW5n bWFya2V0cw== QmVoaW5k IGJhc2lu IGRvY3M= YW5pZQ== Zmxhc2g= Y3Rs IGNpdmlsaXplZA== IEZ1a3VzaGltYQ== Il0sIg== IEtT IEhvbmVzdGx5 YXJhdA== IGNvbnN0cnVjdHM= IExhbnM= IERpcmU= IExJS0U= IFRyb3VibGU= IHdpdGhob2xkaW5n IE9ibGl2aW9u IHNhbml0eQ== YW55YQ== Q29uc3Q= IGdyb2Nlcg== IENlbHNpdXM= IHJlY291bnRlZA== IFdpZmU= Qm9yZGVy YXRlcmVk aGFwcHk= IHNwb2lsZXI= IGxvZ2ljYWxseQ== SGFsbA== IHN1Y2NlZWRpbmc= IHBvbHltb3JwaA== IGF4ZXM= IFNob3RndW4= IFNsaW0= IFByaW5jaXBsZXM= IExldGg= YXJ0YQ== IHNjb3I= U2NyZWVuc2hvdA== IHJlbGF4YXRpb24= IyQjJA== IGRldGVycmVudA== aWRkeQ== IHBvd2VybGVzcw== IGxlc2JpYW5z IGNob3Jkcw== IEVkaXRlZA== c2VsZWN0ZWQ= IHNlcGFyYXRpc3Rz MDAwMg== IGFpcnNwYWNl IHR1cm5hcm91bmQ= IGN1bm5pbmc= UEFUSA== UG9seQ== IGJvbWJlZA== IHRpb24= eHM= IHdpdGhob2xk IHdhZ2Vk IExpYmVydGllcw== RmxhZw== IGNvbWZvcnRpbmc= NDU0 IElyaXM= YXJlcnM= IHJhZw== IHJlbG9jYXRlZA== IEd1YXJhbnQ= IHN0cmF0ZWdpY2FsbHk= IGdhbW1h dWJlcnR5 IExvY2toZWVk Z3Jlcw== IGdyaWxsZWQ= IExvd2U= c3RhdHM= IFJvY2tz IHNlbnNpbmc= IHJlbnRpbmc= IEdlb2xvZ2ljYWw= 2KfY b3Ryb3A= IHNldw== IGltcHJvcGVybHk= NDg2 IOKWoA== IHN0YXJ2aW5n IEJq RGlzY3Vzc2lvbg== MzI4 IENvbWJv IEZpeGVz TkFU IHN0cml2aW5n dGhvcmE= IGhhcnZlc3RlZA== IFBpbmc= IHBsYXlmdWw= IGF2ZW51ZXM= IG9jY3VwYXRpb25hbA== IHdha2Vz IENvdXJpZXI= IGRydW1tZXI= IEJyb3dzZXI= IEhvdXRo aXR1 IGFwcGFyZWw= cGFzdGU= IGh1bnRlZA== IFNlY29uZGx5 bGFpbg== WFk= IFBJTg== aWNvbnM= IGNvY2t0YWlscw== IHNpemFibGU= IGh1cmRsZXM= ZXN0aW5hbA== IFJlY3JlYXRpb24= IGVjbw== NjQ4 IERpZWQ= bWludA== IGZpbmdlcnByaW50cw== IGRpc3Bvc2U= IEJvc25pYQ== dHN5 MjIwMA== IGluc3BlY3RlZA== IEZvdQ== IGZ1c3M= IGFtYnVzaA== IFJhaw== IG1hbmlmZXN0ZWQ= UHJvc2VjdXQ= IHN1ZmZpY2U= cmVuY2Vz IGNvbXBlbnNhdGVk IEN5cnVz IGdlbnVz IFdvbHZlcmluZQ== IFRyZW5kcw== IGhpa2Vz IFNlZW4= IGVucm9s Q29sZA== IHBvbGl0ZWx5 IFNsYXY= IFJ1cGVydA== IGV5ZXdpdG5lc3M= IEFsdG8= IHVuY29tcA== IHBvc3Rlcmlvcg== TXVzdA== IEhlcno= IHByb2dyZXNzaXZlbHk= IDIzNA== IGluZGlmZmVyZW5jZQ== IEN1bm5pbmdoYW0= IGFjYWRlbWlh IHNld2Vy IGFzdG91bmRpbmc= IEFFUw== cmF0aGVy IGVsZGVzdA== IGNsaW1icw== IEFkZHM= IG91dGNyeQ== IGNvbnRhZw== IEhvdXNlcw== IHBlcHQ= IE1lbGFuaWE= aW50ZXJlc3RlZA== IFVDSA== IFJvb3Rz IEh1YmJhcmQ= IFRCRA== IFJvbWFuaWFu ZmlsZW5hbWU= U3RvbmU= IEltcGw= IGNocm9tb3NvbWU= Q2xl ZHg= IHNjcmFtYmxlZA== IFB0 IDI0Mg== T1BMRQ== IHRyZW1lbmRvdXNseQ== U3RyZWV0 IGNyYXZpbmc= IGJ1bmRsZWQ= IFJH cGlwZQ== IGluanVyaW5n IGFyY2FuZQ== UGFydGljaXA= IEhlcm9pYw== c3R5 IHRvcHBpbmc= IFRlbXBlc3Q= cmVudGljZXM= Ymg= IHBhcmFub2lh IFVuaWNvZGU= IGVncmVnaW91cw== IFwn IE9zd2FsZA== IGdyYXZlbA== IFNpbXBzb25z IGJsYW5k IEd1YW50YW5hbW8= V3JpdGVy bGluZXJz IERpY2U= SkM= IHBhcml0eQ== IHNpZGVk IDIzNw== IFB5cnJoYQ== YXR0ZXJz ZGs= RmluZQ== Y29tcGFu IGZvcm11bGF0ZWQ= IElkb2w= aWxlcnM= aGVtb3Ro IEZhdg== IGludHJ1c2lvbg== IGNhcnJvdHM= IExheWVy IEhhY2tlcg== IC0tLS0tLS0tLS0tLS0tLS0= IG1vZGVyYXRpb24= 6YE= b2NvYw== IGNoYXJhY3Rlcml6ZQ== IFRlcmVzYQ== IHNvY2lvZWNvbm9taWM= IHBlcms= IFBhcnRpY2lwYXRpb24= dHJhaW5pbmc= IFBhdWxv cGh5cw== IHRydXN0d29ydGh5 IGVtYm9kaWVk IE1lcmNo Y3VycmVuY3k= IFByaW9yaXR5 IHRlYXNpbmc= IGFic29yYmluZw== IHVuZmluaXNoZWQ= IENvbXBhcmlzb24= IGRpc3BsZQ== d3JpdGVycw== IHByb2Zlc3Npb25z IFBlbmd1aW4= IGFuZ3JpbHk= IExJTks= Njg4 IENvcnJlc3BvbmQ= IHByZXZhaWxlZA== IGNhcnRlbA== bHA= YXNtcw== IFJlZGVtcHRpb24= IElzbGFtaXN0cw== ZWZmZWN0cw== ZG9zZQ== IExhdHRlcg== IEhhbGlmYXg= IHZhcw== IFRvcGljcw== IE5hbWVk YWR2ZXJ0aXNpbmc= enph SUNFUw== IHJldGFyZGVk YWNoYWJsZQ== IFB1cHBldA== IEl0ZW1MZXZlbA== IHJldHJhY3Q= IGlkZW50aWZpYWJsZQ== QWFyb24= IEJ1c3Rlcg== c29s aGVsbGU= YXNzZW1i SG9wZQ== cmFuZ2Vk QmE= IFB1cmNo 6YA= IFNpcmk= IGFycml2YWxz IDE5MTI= IHNob3J0ZW5lZA== IDMxMg== IGRpc2NyZXBhbmN5 IFRlbXBlcmF0dXJl IFdhbHRvbg== IGtpbmRlcmc= cG9saXQ= IHJlbWl4 IGNvbm5lY3RvcnM= 44OY44Op IEthemFraHN0YW4= ZG9taW5hdGVk IHN1Z2Fycw== aW1ibGU= IFBhbmlj IERlbWFuZA== IENvbG9ueQ== b25lbg== IE1FUg== Nzc1 dXJpYQ== YXphYXI= IERlZ3JlZQ== UHJp IHN1bnNoaW5l IDI1MQ== IHBzeWNoZWRlbGlj IGRpZ2l0YWxseQ== IEJyYXVu IHNoaW1tZXI= IHNoYXZl IFRlbGVzYw== IEFzdHJhbA== IFZlbmV6dWVsYW4= IE9H IGNyYXdsaW5n SW50ZWc= IEZlYXRoZXI= IHVuZm9sZGluZw== IGFwcHJvcHJpYXRpb24= IOijj+g= IE1vYmlsaXR5 IE5leQ== LS4= YmlsdA== TElO IFR1YmU= IENvbnZlcnNlbHk= IGtleWJvYXJkcw== IENhbw== IG92ZXJ0aA== IGxhdXJl Pj5c IFZpcGVy YWNoYQ== T2Zmc2V0 IFJhbGVpZ2g= IEphZQ== Sm9yZGFu anA= IHRvdGFsaXRhcmlhbg== Q29ubmVjdG9y IG9ic2VydmVz IFNwYXJ0YW4= IEltbWVkaWF0ZWx5 IFNjYWw= Q29vbA== IHRhcHM= IHJvYXI= UGFzdA== IGNoYXJz IEJlbmRlcg== IFNoZWxkb24= IHBhaW50ZXI= IGJlYWNvbg== IENyZWF0dXJlcw== IGRvd250dXJu IGhpbmRlcg== IEFuZHJvbWVkYQ== w5s= Y2NvbGk= IEZpdG5lc3M= ZXRyaWNhbA== IHV0aWxpemVz IHNlbmF0ZQ== IGVuc2VtYmxl IGNoZWVycw== VFc= IGFmZmx1ZW50 a2ls cnlsaWM= b3JkZXJpbmc= Q29tcHV0ZXI= IGdydWVzb21l b3N0aWNz IFViaXNvZnQ= IEtlbGxleQ== IHdyZW5jaA== IGJvdXJnZW9pc2ll SUJMRQ== IFByZXN0b24= d29ybg== YXJpc3Q= cmVhdGluZw== IHN0YWluZWQ= YXJpbmU= IHNsaW1l RU5O IGNoZXN0cw== IGdyb3VuZHdhdGVy YW5ub3Q= IFRyYXk= IExvY2tl IENUUg== IGR1ZGVz IEV4dGVybmFs IERlY29kZXI= IHBhcmFtZWQ= IE1lZGxpbmU= ODA5 IERpbm5lcg== cnVwYWw= Z3o= IEd1bQ== IERlbW8= amVl IGRo YmVybWFu YXJjaHM= IGVucXU= IEVwc3RlaW4= IGRldmFzdGF0aW9u IGZyaWVuZHNoaXBz IEFyZA== IDIzMQ== IFJ1Ymlu IERpc3RhbmNl IHNwdXJyZWQ= IGRvc3NpZXI= IG92ZXJsb29raW5n XFxcXFxcXFxcXFxcXFxcXA== Rm9yZXN0 IENvbWVz XCIs IElyYW5pYW5z IGZpeHR1cmVz TGF1Z2hz IGN1cnJ5 IEtpbmdzdG9u IHNxdWFzaA== IGNhdGFsb2d1ZQ== IGFibm9ybWFsaXRpZXM= IGRpZ2VzdGl2ZQ== Li4uLi4uLi4u IHN1Ym9yZGluYXRl b2dseQ== IDI0OQ== TWlkZGxl IG1hc3NhYw== IGJ1cmdlcnM= IGRvd25zdGFpcnM= IDE5MzE= Mzk0 IFZH IGxhc2Vycw== IFNpa2g= IEFsZXhh ZGVyaXZlZA== IGN5Y2xpc3Q= 44Gu6a2U b25lbGluZXNz ISEhISEhISE= IGJ1ZmZz bGVnYXRl IHJhcGluZw== IHJlY29tbWVuZGluZw== cm9yZWQ= IG11bHRpY3VsdHVyYWw= dW5pcXVl IGJ1c2luZXNzbWVu IHVuZWFzeQ== IE1BUA== IGRpc3BlcnNlZA== Y2lwbGluZQ== SmVzcw== IEtlcmFsYQ== 5ac= IGFic3RyYWN0aW9u U3Vydg== VWg= IHByaW50ZXJz aWph b3dkZXI= IGFuYWxvZ291cw== IEFTUA== YWZlcg== IHVuZm9sZGVk IGxldmVsaW5n IGJyZWFjaGVk IEhlYXJpbmc= IG5hdA== IHRyYW5zbGF0aW5n Y3JpdGljYWw= IGFudGFnb25pc3Q= IFllc3RlcmRheQ== IGZ1enp5 d2FzaA== bWVyZQ== IGJld2lsZA== IE1hZQ== VmlyZ2lu cGhyYXNl IHNpZ25hbGVk IEhJR0g= IHByb3Rlc3Rlcg== IGdhcm5lcg== dW5rbm93bg== IGtheQ== IGFiZHVjdGVk IHN0YWxraW5n YW1u IGRlc2VydmluZw== IFJpdg== IEpvcmdl IHNjcmF0Y2hpbmc= IFNhdmluZw== aXBpbmc= IHRlYXNl IG1pc3Npb25hcnk= IE1vcnJvdw== VElNRQ== UHJlc2VudA== IGNoZW1vdGhlcmFweQ== dGVybmVzcw== IEhvbWVz IFB1cmR1ZQ== IHN0YXVuY2g= IFdoaXRuZXk= IFRIRVJF zrw= aWF0dXM= IEVybmVzdA== IERlcGxveQ== IGNvdmV0ZWQ= Rk1M IERpYWxvZ3Vl IGV4aXRlZA== ZnJ1aXQ= IG5lcmQ= IjoiIiwi IHZpdm8= cnVseQ== NDYw IEFtZW4= cmVoZW5zaWJsZQ== IOKY RElS IGFkaGVyZW5jZQ== IGNoZXc= IENva2U= IFNlcmdlaQ== ZGlnaXRhbA== IE5lY2s= Z2VudGx5 ZW50aGFs Lyk= IHdlYXJ5 IGd1aXNl IENvbmNvcmQ= IE9uaW9u YXRjaGVy IGJpbmdl IERpcmVjdGl2ZQ== IG1hbm5lZA== YW5zaw== IGlsbHVzaW9ucw== IGJpbGxpb25haXJlcw== Mzgz b2x5bg== b2R5bmFtaWM= IFdoZWF0 IEFsaWM= IGNvbG91cmVk IE5BRlRB YWJv IG1hY3Jvcw== aW5kZXBlbmRlbnQ= c3dlZXQ= IHNwYWM= IEthYnVs IMQ= ZW1l IGRpY3RhdGVk IHNob3V0cw== PXs= IHJpcHBpbmc= IFNoYXk= IENyaWNrZXQ= ZGlyZWN0ZWQ= IGFuYWx5c2Vk IFdBUlJBTlQ= YWdvbnM= IEJsYXplcnM= IGNoZWVyZWQ= IGFyaXRobWV0aWM= IFRhbno= Mzcz IEZsYWdz IDI5NQ== IHdpdGNoZXM= IEluY2x1ZGVk IEdhaW5lZA== IEJsYWRlcw== R2Ft IFNhbWFudGhh IEF0bGFudGlz IFByYXR0 IHNwb2lsZWQ= IElC IFJhbWlyZXo= UHJvYmFibHk= cmVybw== IE5n IFdhcmxvY2s= dHA= IG92ZXJoZQ== IGFkbWluaXN0cmF0aW9ucw== IHRpbnQ= IHJlZ2ltZW50 IHBpc3RvbHM= IGJsYW5rZXRz IGVwaXN0 IGJvd2xz IGh5ZHJhdWxpYw== IGRlYW4= IGp1bmc= IGFzY2VuZA== NzA1 IFNhbnRpYWdv w64= IHVuYXZvaWQ= IFNoYW1hbg== cmVi IHN0ZW1taW5n OTk4 IE1H c3RpY2tz ZXN0aGVzaWE= RVJP IG1vcmJpZA== IEdyaWxs IFBvZQ== YW55bA== IGRlbGV0aW5n IFN1cnZlaWxsYW5jZQ== IGRpcmVjdGl2ZXM= IGl0ZXJhdGlvbnM= IFJveA== IE1pbGt5 RmF0aGVy IHBhdGVudGVk NDQ3 IHByZWN1cnNvcg== IG1haWRlbg== IFBoZW4= IFZlZ2Fu IFBhdGVudA== S2VsbHk= UmVkZGl0b3I= IG5vZHM= IHZlbnRpbGF0aW9u IFNjaHdhcno= IHdpemFyZHM= IG9taW5vdXM= IEhlYWRz IEJH IGx1bWJlcg== IFNwaWVs IGlzRW5hYmxlZA== IGFuY2VzdHJhbA== IFNoaXBz IHdyZXN0bGVy cGhp IHl1YW4= IFJlYmVsbGlvbg== IGljZWJlcmc= IG1hZ2ljYWxseQ== IGRpdmVyc2lvbg== YXJybw== eXRobQ== IFJpZGVycw== IFJvYmJpZQ== IEthcmE= IE1haW50ZW5hbmNl IEhlcmI= IGhhcm1z cGFja2Vk IEZlaW5zdGVpbg== IG1hcnJ5aW5n IGJsZW5kaW5n IFJhdGVz IDE4ODA= IHdyaW5r IFVuY2g= IFRvcmNo ZGVzY3JpYmVk IGh1bWFub2lk aWxpdGF0aW5n IENvbnY= IEZlbGQ= SUdIVFM= IHdoaXN0bGVibG93ZXI= b3J0bXVuZA== ZXRzeQ== YXJyZXR0 IE1vbm8= IElrZQ== IENOQkM= IFdBWQ== IE1ETUE= IEluZGl2aWR1YWxz IHN1cHBsZW1lbnRhbA== IHBvd2VyaG91c2U= IFN0cnU= Rm9jdXM= YXBoYWVs IENvbGxlZw== YXR0aQ== WkE= IHBlcmVubg== IFNpZ25hdHVyZQ== IFJvZG5leQ== IGN1YmVz aWRkbGVk IERhbnRl IElOVg== aWxpbmd1YWw= IEN0aA== IHNvZmE= IGludGltaWRhdGU= IFJvZQ== IERpcGxvbQ== IENvdW50cmllcw== YXlzb24= IGV4dHJhZGl0aW9u IGRpc2FibGluZw== IENhcmRpZmY= IG1lbW9yYW5kdW0= IFRyYWNl ID8/Pw== c2VjdG9y IFJvdWhhbmk= IFlhdGVz IEZyZWV6ZQ== IGJsYWRkZXI= TW90b3I= IFByb21pc2U= YW50YXN5 IGZvcmVzZWVhYmxl IENvbG9nbmU= Y29udGFpbmVy IFRyZWVz IEdvcnM= IFNpbmNsYWly IGJhcnJpbmc= a2V5ZQ== IHNsYXNoZWQ= IFN0YXRpc3RpY2Fs 6Yc= IOKWug== QWxsb3dz IGh1bWlsaXR5 IGRyaWxsZWQ= IEZ1cm4= NDQz IHNld2FnZQ== IGhvbWVwYWdl IGNvdXJ0eWFyZA== IHZpbGU= IHN1YnNpZGlhcmllcw== YWpv ZGlyZWN0b3J5 IGFtbW9u VmVycw== Y2hhcmdlcw== IH19 IENoYWlucw== IDI0Ng== bm9i IHBlcmNlcHQ= IGdyaXQ= IGZpc2hlcm1lbg== IElyYXFpcw== IERJU1RS IEZVTEw= IEV2YWx1YXRpb24= Z3JhcGg= YXRpYWw= IGNvb3BlcmF0aW5n IG1lbGFu IGVubGlnaHRlbmVk IGFsaQ== dGFpbGVk IHNhbHV0ZQ== IHdlYWtlc3Q= IEJ1bGxkb2dz VUE= IEFsbG95 IHNlbWVu b2NlbmU= IFdpbGxpYW1zb24= c3By LOKAlA== IEdG aXR0ZW5z QmVhdA== IEp1bms= aXBoYXRl IEZhcm1lcnM= IEJpdGNvaW5z aWdlcnM= ZGg= IExveWFs cGF5ZXI= IGVudGVydGFpbmVk IHBlbm5lZA== IGNvdXBvbg== UXVldWU= IHdlYWtlbmluZw== Y2Fycnk= IHVuZGVyZXN0aW1hdGU= IHNob290b3V0 IGNoYXJpc21hdGlj IFByb2NlZHVyZQ== IHBydWRlbnQ= aW5hbmNlcw== IHJpY2hlcw== IGNvcnRpY2Fs IHN0cmlkZXM= IGRyaWI= IE9pbGVycw== NTQw IFBlcmZvcm0= IEJhbmdrb2s= IGV1dGg= U0VS IHNpbXBsaXN0aWM= dG9wcw== Y2FtcGFpZ24= UXVhbGl0eQ== IGltcG92ZXJpc2hlZA== IEVpc2VuaG93ZXI= IGF1Z21lbnQ= IEhhcmRlbg== IGludGVydmVuZWQ= IGxpc3RlbnM= IEtvaw== IHNhZ2U= IHJ1YmJpc2g= IERlZA== IG11bGw= cGVsbGluZw== IHZpZGVvdA== UHJvZHVjdGlvbg== REo= bWlhaA== IGFkYXB0YXRpb25z IG1lZGljYWxseQ== IGJvYXJkZWQ= IGFycm9nYW5jZQ== IHNjcmFwcGVk IG9wcHJlc3M= Rk9STUFUSU9O IGp1bmN0aW9u NDE1 RUVFRQ== U2tpbGw= IHN1YmR1 IFN1Z2dlc3Q= IFBldHQ= IGxldHQ= IE1hbmlw IENhZg== IENvb3BlcmF0aW9u VGhlcg== IHJlZ2FpbmVk tuY= cmVmbGVjdA== IHRodWdz IFNoZWxieQ== IGRpY3RhdGVz IFdlaW5lcg== IEhhbGU= IGJhdHRsZWdyb3VuZA== c2NoaWxk IGNvbmRvbA== aHVudA== b3NpdG9yaWVz IGFjY3VzZXM= RmlsZW5hbWU= IHNocmk= IG1vdGl2YXRl IHJlZmxlY3Rpb25z TnVsbA== IExvYmJ5 pbU= IFNBVEE= IEJhY2t1cA== 0YM= bmlu IENvcnJlY3Rpb24= IGp1aWN5 dXRyYQ== IFByaWM= IHJlc3RyYWluaW5n IEFpcmJuYg== IEFycmVzdA== IGFwcHJvcHJpYXRpb25z IHNsb3Blcw== IG1hbnNsYXVnaHRlcg== IHdvcmtpbmdz IEh1c3M= IEZyZXk= TGVhdmU= IEhhcm1vbnk= IEZlZGVy IDQzMA== IHRyZW5jaA== IGdsYWRseQ== IGJ1bGxwZW4= IEdhdQ== Ym9uZXM= IGdyb292ZQ== IHByZXRleHQ= 44WL IHRyYW5zbWl0dGVy IENvbXBvbmVudA== IHVuZGVyYWdl IEVtcGlyZXM= VGlsZQ== IG95 IE1hcnZpbg== IENBUw== IGJsb3Nz IHJlcGxpY2F0ZWQ= IE1hcmluZXJz TWFyY3Vz IEJsb2Nrcw== IGxpYmVyYXRlZA== IGJ1dHRlcmZseQ== RmVlbA== IGZlcm1lbnRhdGlvbg== IHlvdXR1YmU= IG9mZmVuZA== IFRlcm0= cmVzaXN0 IGNlc3NhdGlvbg== IGluc3VyZ2VuY3k= IGJpcg== IFJhaXNl NTk1 IGh5cG90aGVzZXM= NTAy IHBsYXF1ZQ== b2NyYXQ= IGphY2tldHM= IEh1ZmZQb3N0 YW1vbmc= IGNvbmZlcg== NDg3 IExpbGx5 IGFkYXB0aW5n IEZheQ== IHNob3ZlZA== dmVj IHJlZmluZQ== IGdvbg== IGd1bm1lbg== emFp IFNodXR0bGU= IEl6YW4= IDE5MTM= IHBsZXRob3Jh wrfCtw== IDUxMA== IHB1YmVydHk= IDI0MQ== IFdlYWx0aA== IEFsbWE= IE1FTQ== IEFkdWx0cw== Q2Fz cHJpc29u UmFjZQ== IHdhdGVycHJvb2Y= IGF0aGxldGljaXNt IGNhcGl0YWxpemU= IEp1aWNl IGlsbHVtaW5hdGVk IFBhc2NhbA== IGlycml0YXRpb24= IFdpdG5lc3Nlcw== YWRsZQ== IEFzdHJv IGZheA== IEVsdmlz UHJpbWFyeQ== IExpY2g= IEVsdmVz IHJlc2lkaW5n IHN0dW1ibGU= MzE5 IFBLSw== IGFkdmVyc2FyaWVz RE9T IFJpdHVhbA== IHNtZWFy IGFyc29u aWRlbnRhbA== IHNjYW50 IG1vbmFyY2h5 IGhhbGZ0aW1l IHJlc2lkdWU= IGluZGlnbg== IFNoYXVu IEVsbQ== YXVyaQ== QWZm V0FUQ0g= IEx5b24= aGVscHM= MzYx IGxvYmJ5aXN0 IGRpbWluaXNoaW5n IG91dGJyZWFrcw== IGdvYXRz ZmF2b3JpdGU= IE5haA== c29uaWFu IEJvb3N0ZXI= IHNhbmRib3g= IEZhcmU= IE1hbHRh IGF0dFJvdA== IE1PUg== bGRl IG5hdmlnYXRpbmc= VG91Y2g= IHVudHJ1ZQ== IERpc2FzdGVy IGx1ZGljcm91cw== UGFzc3dvcmQ= IEpGSw== YmxvZ3Nwb3Q= NDE2 IFVOREVS ZXJuYWw= IGRlbGF5aW5n VE9Q IGltcGxhbnRz IEFWRw== IEh1Z2U= YXR0cg== IGpvdXJuYWxpc3RpYw== IFBleXRvbg== IElB UmFw Z29hbA== IFByb2dyYW1tZQ== IHNtYXNoaW5n d2l2ZXM= cHJpbnRsbg== IFBsYWd1ZQ== aW51cw== RUVQ IGNydWlzZXI= IFBhcmlzaA== dW1pbml1bQ== IG9jY3VwYW50cw== IEppaGFk bW9w IHBpbnQ= IGhlY3Q= IE1lY2Nh ZGlyZWN0b3I= IEZ1bmRpbmc= IE1peGVk IHN0YWc= VGllcg== IGd1c3Q= IGJyaWdodGx5 b3JzaQ== IHVwaGlsbA== UkQ= IGxlc2lvbnM= IEJ1bmR5 bGl2aW91cw== IGJpb2xvZ2lzdA== IEZhY3VsdHk= IEF1dGhvcml6YXRpb24= IDI0NA== QWxsb3c= 77g= IEdpdWw= IHBlcnRpbmVudA== b3RhdXI= ZXNzZQ== IFJvb2Y= IHVubWFubmVk MzUx IFNoYWs= IE9yaWVudA== IGVuZGFuZ2Vy RGly IHJlcGxlbg== ZWRpZW50 IHRhaWxvcg== IGdhZGdldHM= IGF1ZGlibGU= 4piG TmljZQ== IGJvbWJhcmQ= IFJhcGU= IGRlZmlhbmNl IFRXTw== IEZpbGlwaW5v IHVuYWZmZWN0ZWQ= ZXJ2YXRpdmVz IHNvYXJlZA== IEJvbHRvbg== IGNvbXByb21pc2luZw== IEJyZXdlcnM= UkFM IEFITA== aWN5Y2xl IHZhbXBpcmVz IGRpcHBlZA== b3llcg== IFhJSUk= IHNpZGV3YXlz IFdhc3Rl IERpc3M= IOKUnOKUgOKUgA== JC4= IGhhYml0YXRz IEJlZWY= dHJ1dGg= dHJhaW5lZA== c3BsaXQ= UnVz QW5keQ== IEJyYW0= UkVQ cGlk 6KOF IE11dGFudA== QW5pbQ== IE1hcmluYQ== IGZ1dGlsZQ== aGlnaGVzdA== ZnJlcXVlbmN5 IGVwaWxlcHN5 IGNvcGluZw== IGNvbmNpc2U= IHRyYWNpbmc= IFNVTg== cGFuZWw= IFNvcGhpZQ== IENyb3dsZXk= IEFkb2xm IFNob290ZXI= IHNoYWt5 IElH IExpZXM= IEJhcmJlcg== cGtn IHVwdGFrZQ== IHByZWRhdG9yeQ== VUxUUw== Lyoq IGludG94aWNhdGVk IFdlc3Ricm9vaw== b2RkZXI= aGVtZW50 IGJhc2VtYW4= QVBE c3RvcmFnZQ== IEZpZnR5 ZWRpdG9y R0VO VVRJT04= aXJ0aW5n IHNld2luZw== cmlmdA== IGFnb255 IFNhbmRz IDI1NA== Q2FzaA== IGxvZGdl IHB1bnQ= TmF0dXJhbA== IElkZWFz IGVycm9uZW91cw== IFNlbnNvcg== IEhhbm5pdHk= IDE5MjE= IG1vdWxk IEdvbg== a2F5YQ== IGFub255bW91c2x5 IEtFWQ== IHNpbXVsYXRvcg== V2ludGVy IHN0cmVhbWVk NTA3 PyIs IHRlYXNlZA== IGNvZWZmaWNpZW50 IHdhcnRpbWU= IFRIUg== Jycu IEJhbmtpbmc= bXBpcmU= IGZhbmRvbQ== IGxpYQ== R2E= IGRvd25oaWxs IGludGVycHJldGluZw== SW5kaXZpZHVhbA== Tm9ybQ== IGplYWxvdXN5 Yml0Y29pbg== IHBsZWFzdXJlcw== IFRveXM= IENoZXZyb2xldA== IEFkdmlzb3I= SVpF IHJlY2VwdGlvbnM= NzA2 Q3Jv IDI2Mg== IGNpdHJ1cw== aXJ1 UmV2aWV3ZXI= amVjdGVk VUVT YW56 MTk4MQ== IFdvcmtlcg== IGNvbXBsaWVk b3Jlc2NlbnQ= Y29udGluZW50YWw= VG9u IFByaXNt IFNoZWVw IDI4OA== bm94 IFZvZw== T3Jk IHJlYWxtcw== dGVr IGlycmlnYXRpb24= IGJpY3ljbGVz IGVsZWN0cm9uaWNhbGx5 cG9seQ== dGFsbA== KCkpOw== IGFlc3RoZXRpY3M= IEludGVncmF0ZWQ= RXhwbG9yZQ== IGR1bms= NDc2 cGFpbg== IEphY3F1ZXM= IERtaXQ= RnJhbWVz IHJldW5pdGVk IGh1bWlk RHJv UG9saXRpY2Fs IHlvdXRoZnVs IGVudGFpbHM= IG1vc3F1aXRv MzYz c3BlY2llcw== IGNvb3JkaW5hdGluZw== IE1heWhlbQ== IE1hZ251cw== TW91bnQ= SW1wcm92ZWQ= IFNUQVRF QVRUTEU= IGZsb3dlZA== IHRhY2tsZWQ= IGZhc2hpb25lZA== IHJlb3JnYW4= aXZhcmk= ZmluZ2Vy IHJlbHVjdGFudGx5 ZXR0aW5n IFZhbmQ= eW91bmc= IEdhcmxhbmQ= IHByZXN1bXB0aW9u IGFtZW5pdGllcw== IFBsZWFzYW50 b25lbnRpYWw= IE94eQ== IG1vcmFscw== IFlhaA== UmVhZHk= U2ltb24= RW5o RGVtb24= IGNsaWNo TW9uaXRvcg== IERV IHdlbGNvbWVz IHN0YW5kb3V0 IGRyZWFkZnVs IGJhbmFuYXM= IGJhbGxvb25z aG9vdGluZw== YmFzaWM= IHN1ZmZpeA== IGR1bHk= Y2Fubw== Q2hhaW4= YXRvcw== IGdlb3BvbGl0aWNhbA== ICgm IEdlbWluaQ== w4PDgsODw4LDg8OCw4PDgsODw4LDg8OCw4PDgsODw4LDg8OCw4PDgsODw4LDg8OCw4PDgsODw4LDg8OCw4PDgsODw4LDg8OCw4PDgsODw4LDg8OCw4PDgsODw4LDg8OCw4PDgsODw4LDg8OCw4PDgsODw4LDg8OCw4PDgsODw4I= IGFjcXVpdHRlZA== THVjaw== cHJvdGVjdA== MTAyNA== IHNjYXJjaXR5 IG1pbmRmdWxuZXNz ZWNpZGVk RE4= cHJpbWU= IFByZXNpZGVudHM= IFZJREVP ICjiiJI= YWRkb2Nr Tk9S IFBydQ== cHVu IExPTA== KSkpKQ== IExpcXU= IFNBUw== IHN0eWxpbmc= IHB1bmlzaG1lbnRz IG51bWI= IGFzY2VydGFpbg== IFJvY2tpZXM= Zmx1 VGh1bWJuYWls IHBlcnBldHJhdGVk IFNlbWk= IGRpc2FybQ== IE9sZGVy IEV4Y2VwdGlvbg== IGV4cG9uZW50aWFsbHk= IENvbW11bml0aWVz IGFib2xpc2g= IFBhcnRuZXI= cHRvbXM= IDc3Nw== IEZvbGV5 IENhc2Vz IGdyZWFzZQ== IFJlYmlydGg= R3JvdW5k IDsp IERvY3RyaW5l aWtpbmk= WWU= IEJsb3Nzb20= IHBlcnNpc3Rz YmlsbA== IGluZnVzaW9u IGJ1ZGRpZXM= OTEx IFBhdGllbnQ= IGRlbW9z IGFjcXVhaW50YW5jZQ== IFBhdw== YXRhcmk= IHhtbA== IGZhc2NpbmF0aW9u IFNlcnZl z4I= YnJhbmRlZA== IGF6 UmV0dXJucw== IG92ZXJzaGFkb3c= IHJvYW0= IHNwZWVkeQ== bnVtYmVyZWQ= aGVsaWFs IGRpc2NpcGxl IGFzc3VyYW5jZXM= Z2l2ZW4= cGVjdGluZw== IE5hdGFsaWU= 55Sw IG1vc3F1aXRvZXM= cm90ZWlu IG51bWVyaWM= IGluZGVwZW5kZW50cw== IHRyYW5zaXRpb25hbA== IHJlYWN0aW9uYXJ5 IE1lY2hkcmFnb24= ZG9jdG9y IHNob3J0ZXN0 IHNlcXVlbnRpYWw= IEJhYw== IEFjY291bnRz 44GM YWNoeQ== cmFjdGl2ZQ== IFJlZ2ltZW50 IGJyZWF0aHRha2luZw== ZmZpY2llbmN5 IEJhdGVz IDMxMQ== IHdhcmRyb2Jl ZnRz IEJlcms= U2ltcGx5 IFJpdmVyc2lkZQ== aXZlcmluZw== aWRlbnRpYWw= bHVjZW50 IGVucmljaGVk IENvbnZlcg== IEdpdmluZw== 44OZ IGxlZ2FsaXpl IEZUQw== IGZyZWFraW5n TWl4 IHRlcnJlc3RyaWFs ZXNpYW4= Y2llbnRz V2luZw== TE9BRA== IGxlZGdl IFZpb2xlbnQ= IE1ldGFsbA== IDMwOA== IHNvdXRoZWFzdGVybg== aGV0dG8= TWVhdA== IHNsb3dkb3du IHJldHJlYXRlZA== SmVyZW15 ZW5kYXM= KioqKio= ZXJpYw== IHJlaW5z b3BwYWJsZQ== IEh1bWFuaXR5 ZWFyYW5jZXM= cmlnYW4= Q2FtZXJh IHdhaXZlcnM= c29j IGFsdGVyYXRpb24= dHJhbnNmb3Jt IENlbWV0ZXJ5 NTA2 IGluZGVmaW5pdGU= IHN0aW11bGF0aW5n eWc= NjAz IFNvcA== IGRlc2NyaXB0aXZl UGhhc2U= IEVkbXVuZA== IHBuZXVtb25pYQ== dmVudHVz QW1i IGxhYm9yYXRvcmllcw== IEV4Y2x1c2l2ZQ== dWdhcg== V2VyZQ== IG1hbGZ1bmN0aW9u IGhvbW9zZXh1YWxz IC0tLS0tLS0= dW5p IHR1cmJpbmVz IEVxdWl0eQ== RHU= IG1pbmRlZA== IFJI IEJsYWNraGF3a3M= IGZlYXRz IDE3MDA= cmVwbA== MzYy bGFkZW4= IGluZGlzcGVuc2FibGU= bHlzcw== dHRp IHJlZWw= IGRpdmVydGVk IGxpa2VuZXNz IHN1YnNjcmlwdGlvbnM= IGZpbmdlcnQ= IGZpbHRoeQ== ZGVzdHJ1Y3Q= ZHJhZnQ= IEJlcm5hcmRpbm8= bGF1bmNo IHBlcnBsZXg= IFNVTQ== Y2FyYg== IHN3ZWF0ZXI= IFZlbnR1cmU= IEphZw== IENlbGVi IFZvdGVycw== IHN0ZWFkZmFzdA== IGF0aGxldGljcw== IEhhbnNvbg== IERyYWM= VHJhY2tlcg== IGNvbW1lbmQ= IFByZXNpZGVuY3k= IERJRA== aW5mb3JtZWQ= IHdlYnBhZ2U= UHJldHR5 IGZvcmNlZnVsbHk= 44OD44Kv IHJlbG9jYXRpb24= IHNhdGlyZQ== 4ok= IFN1bmRlcmxhbmQ= 5oQ= Vm9pY2U= Pz8/Pz8/Pz8= IGluZm9ybWFudA== IGJvd2Vs IFVuaWZvcm0= IC4uLiI= IHB1cmdl IHBpY25pYw== IFVtYg== IFVQREFURQ== IFNhcHBoaXJl IFN0YWxs bGVhcm4= IG9iamVjdGl2ZWx5 IG9ibGl0ZXI= IGxvb3Bob2xl IGpvdXJuZXlz IG9taXNzaW9u UHJvcw== IFNpZG5leQ== cGxvbWE= IHNwcmF5ZWQ= IGd1cnU= IHRyYWl0b3I= IHRpbWV0 IHNuYXBwaW5n IFNldmVudA== dXJuYWw= IFVraXA= IGJvd2Vk cG9yYWw= bGliZXJhbA== Um9z UXVlc3Rpb25z aU9T IHN1bW1hcml6ZQ== U1RBVA== IDE4NTA= YXBlc3Q= IGxlbmRlcg== IFZhcmlhYmxl YnJpbmdpbmc= IExPUkQ= LCk= IGNvbGxhcHNlcw== eGlldHk= IE5lZA== WUQ= IFNjaGE= IGFudGlib2R5 IGRpc2JhbmQ= eXJl aWxsdXNpb24= IHJvdmVy c2hlZA== IEhpcm9zaA== Y2Np IGNhbGFt IE1vcnRvbg== UGludGVyZXN0 IDE5Mjg= IEV1cmFz b3JkZXM= IGZlbmNlcw== IEludmVudG9yeQ== IFZhbGVuY2lh IFVk IFRpZmY= IHNxdWU= IHF1b3RhdGlvbg== IHRyb3VibGVzb21l ZXJrZXI= UVVFU1Q= IEtpbmdkb21z c291dGg= IGxldnk= UHJpbmNl IFN0aW5n IG5pY2tuYW1lZA== IGFwcGU= IHBob3RvZ3JhcGhpYw== IGNvcnB1cw== cmVmZXJlbmNl IFRyb2c= VW50 KT0o IExhdHZpYQ== IGFjdGl2YXRpbmc= IGxpY2Vuc2Vl IGRpc3Bhcml0aWVz IE5ld3NsZXR0ZXI= 44OD44OI IGZyZWVpbmc= IEplZXA= IFBlcmNlcHRpb24= aW5zaw== IHNpbGljb25l IEhheWRlbg== TGVhbg== IFN1enVraQ== aWJyYXJpYW4= NjY4 IHNwb3I= IGNvcnJlbGF0aW9ucw== YWdoZXR0aQ== IHR1YmVy IElQQ0M= aWx1cw== IFZ1 IHdlYWx0aGllc3Q= IENhcmJ1bmNsZQ== YW56YQ== IGZvb2xlZA== IFp1cg== IGRhZGR5 cmFubw== aWxpYW4= IGtub2Nrb3V0 Zm1hbg== cmVxdWlyZWQ= IFdpa2lsZWFrcw== IER1ZmZ5 T05U IGluc29s IE9iamVjdHM= IGJvdQ== IE5vcmRpYw== IEluc2VydA== c2Nhbg== IGRhbmNlcnM= IGlkaW90cw== bWFqb3JpdHk= IE5ldmlsbGU= IEZyZWVCU0Q= IHRhcnQ= cGFuaWM= Njkw IGNvY29h IHNhbXBsZWQ= IGxvb2t1cA== SW5kdXN0 IGluamVjdGlvbnM= Z2VucmU= IGF1 IHJvYWR3YXk= IGdlbml0YWxz S2luZA== IEV4YW1pbmVy IFlheg== RnJlc2g= IHBhcmFseXNpcw== IEFsdW1pbnVt IHJlYXA= b2vDqQ== IHNsb3BweQ== IFR1bm5lbA== cG9zaXVt bmVyeQ== ZW5pYw== IGhlcmJhbA== IE91dGVy IEJ1aWxkZXI= IGluY3Vy IGlkZW9sb2dpZXM= IGJhY2t1cHM= Y29uc3VtaW5n IERldGVjdA== ZGVjaw== IEtOT1c= IEdyZXQ= IE1JQw== IHRvdWdobmVzcw== IEV4aGliaXQ= IGhpdmU= TGVz IFNDSE9PTA== IEF0YXJp YWxkZQ== IE51bGw= YW5kZXN0aW5l bW91c2U= IGJyaWdhZGU= NDg5 IHJldm9s IExhd3Nvbg== IFdhaA== b3BvbHk= ZWJ0ZWQ= IFNhdW5kZXJz IDMxMw== IFdpbmM= IHRhYm9v IEhlbG1ldA== IHdlZGdl Y2hpcA== IFRpbmE= Ymc= IGluZnVyaQ== cm4= IGFub21hbGllcw== IFN5bmM= IEV4YW0= IENvbW1pdA== IERpYXJ5 IEFMU08= IERlYm9y b21lZGljYWw= IGNvbXByZWhlbnNpb24= NjU1 IGVtcG93ZXJpbmc= IGlyZQ== IGp1aWNlcw== IEVUSA== IEJveGluZw== PSIv IGZhY2lsaXRhdGVk cG9rZQ== IFBhcnNvbnM= IE1vZGVy dHJhdmVs IGNpdmlsaXphdGlvbnM= IGxpYmVydGFyaWFucw== IHJ1bmU= IENsYXJrcw== YXRoZWQ= IGNhbXBhaWduZXJz IERpc3BhdGNo IEZhaHJlbmhlaXQ= IENhcGNvbQ== LS0tLS0tLS0tLQ== IGxhY2U= IGRyYWluaW5n IGxpbmVy IEFydGlmaWNpYWw= w6lu dGFzaw== XSku IEdNTw== IE9wZXJhdG9y b3JkaW5hcnk= IEluZmx1ZW5jZQ== IFVwcw== IHBvdGVuY3k= dXNzZW4= b3Nwb25z IFN3aW0= IERlYWRsaW5l VW5pdHk= IGN1bGluYXJ5 IGVubGlnaHRlbm1lbnQ= IHdlYXJlcg== IG1pbmVk IHBseQ== IGluY2VzdA== IERWRHM= V2Fsaw== QlRD VHJhZGU= IGRldmFs aWJhbmQ= IE92ZXJzaWdodA== UGFsZXN0aW5pYW4= IGRhcnQ= IG11bA== TFI= IHJlbW92YWJsZQ== IFJlYWxtcw== 7J0= IG1pc2Nhcg== IFZ1bGthbg== Njg1 w6hyZQ== IFNhcA== IG1lcmdpbmc= IENhcmx5 Y2hlc3Rlcg== IGJyaXNr IGx1eHVyaW91cw== IEdlbmVyYXRvcg== IGJpdHRlcm5lc3M= IGVkaWJsZQ== IDI0Mw== VEc= IHJlY3RhbmdsZQ== V2l0aE5v YmVsb3c= SmVubg== IGRhcmtlc3Q= IGhpdGNo IGRvc2FnZQ== IHNjYXZlbg== IEtlbGxlcg== IElsbHVzdHJhdGVk Q2VydGFpbmx5 IE1hdmVyaWNrcw== TWFyZ2luYWw= IGRpYXJyaGVh IGVub3Jtb3VzbHk= IDk5OQ== c2hy cXVhcnQ= IGFkYW1hbnQ= IE1ldw== IHJlbm92YXRpb24= IGNlcnZpY2Fs IFBlcmNlbnRhZ2U= ZW5lcnM= IEtpbWJlcg== IGZsb2F0cw== IGRleA== IFdpdGNoZXI= IFN3YW5zZWE= ZG0= IHNhbHR5 eWVsbG93 IGNhcGU= IERyYWlu IFBhdWxh IFRvbGVkbw== bGVzaQ== TWFnYXppbmU= IFdpY2s= IE1u IEFjaw== IFJpZGluZw== QVNPTg== IGhvbW9waG9iaWM= QVJQ IHdhbmRlcmVk Q1BV b29kb28= IFBpcGU= IHRpZ2h0ZW5pbmc= IEJ1dHQ= MzE4 IGRlc2VydGVk U2Vzc2lvbg== IGZhY2lsaXRhdGluZw== SnVtcA== IGVtZXJnZW5jaWVz T1dFUg== IGV4aGF1c3RpdmU= IEFGVEVS IGhlYXJ0YmVhdA== IExhYmVs YWNreQ== IENlcnRpZmllZA== aWx0cmF0aW9u WmU= IFV0dA== IDEzMDA= IHByZXN1bWU= IERpc3A= IHN1cmdlZA== IGRvbGxz Q29sdW1i IGNoaW1wYW4= IFJhem9y IHRpY2tz IGNvdW5jaWxsb3I= IHBpbGdyaW1hZ2U= IFJlYmVscw== IFFD IEF1Y3Rpb24= eGlh aWtr YnJlZA== IGluc2VydGlvbg== IGNvYXJzZQ== ZEI= U0VF IFphcA== IEZvbw== IGNvbnRlbXBvcg== IFF1YXJ0ZXJseQ== b3Rpb25z IEFsY2hlbWlzdA== IFRyZXk= IER1bw== U3dlZXQ= ODA0 IEdpb3Y= IGZ1bm4= Tmlu aG9mZg== IHJhbWlmaWNhdGlvbnM= IDE5MjI= IEV4cGVydHM= YXplcw== IGdhcm1lbnRz YXJpYWw= IE5hYg== IDI1Nw== IFZlZA== IGh1bW9yb3Vz IFBvbXBl IG55bG9u IGx1cmtpbmc= IFNlcmdleQ== IE1hdHRpcw== IG1pc29neW55 IENvbXBvbmVudHM= IFdhdGNoaW5n IEZvbGs= cmFjdGljYWw= QnVzaA== IHRhcGVk IGdyb3VwaW5n IGJlYWRz IDIwNDg= IGNvbmR1 cXVlcnF1ZQ== UmVhZGluZw== IGdyaWV2YW5jZXM= VWx0cmE= IGVuZHBvaW50 SGln IFN0YXRpYw== IFNjYXJib3JvdWdo THVh IE1lc3Np YXF1 IFBzeU5ldA== IFJ1ZGQ= IGF2ZW51ZQ== dnA= SmVy IHNoYWR5 IFJlc2lzdA== IEFydGVtaXM= IGNhcmVsZXNz IGJyb2tlcnM= IHRlbXBlcmFtZW50 IDUyMA== VGFncw== IFR1cm5pbmc= IHV0dGVyZWQ= IHBlZGQ= IGltcHJvdmlzZWQ= IDoo IHRhYmw= IHBsYWlucw== MTYwMA== cHJlc3N1cmU= IEVzc2VuY2U= bWFyZ2lu ZnJpZW5kcw== IFJlc3RvcmF0aW9u IHBvbGx1dA== IFBva2Vy IEF1Z3VzdGluZQ== IENJUw== IFNFQUw= b3JhbWE= IHRod2FydA== c2Vlaw== IHBhZ2Fu wro= Y3B1 IGdhcm4= IGFzc29ydG1lbnQ= IElMQ1M= dG93ZXI= UmVjb21tZW5kZWQ= IHVuYm9ybg== IFJhbmRvbVJlZGRpdG9y IFJhbmRvbVJlZGRpdG9yV2l0aE5v IHBhcmFseXplZA== IGVydXB0aW9u IGludGVyc2VjdA== IFN0b2tl IFNjbw== QmluZA== 5b4= IFBORw== IE5lZ2F0aXZl IE5PQUE= TGVvbg== IGFsbG95 IExhbWE= IERpdmVyc2l0eQ== NTc1 IHVuZGVyZXN0aW1hdGVk IFNjb3I= IG11cmFs IGJ1c3RlZA== c29vbg== bGlm IG5vbmV4 IGFsbGVyZ3k= IFVuZGVyd29ybGQ= IFJheXM= IEJsYXNpbw== IGhycw== IERpcg== IDMyNw== Ynl0ZXI= IHJlcGxhY2VtZW50cw== IGFjdGl2YXRlcw== cml2ZWQ= TUg= IHBhbnM= IEhJ IGxvbmdpdHVkaW5hbA== IG51aXNhbmNl YWxlcg== IHN3ZWxs IFNpZ25lZA== c2Np IElzbGVz IEFHQQ== IGRlZmlhbnQ= IHNvbmlj b2Nvbg== S0M= IEFpbQ== dGll YWhhaA== IG1M RFg= IGJpc2M= IEJpbGxib2FyZA== IFNZU1RFTQ== TkVZ Z2FhcmQ= IGRpc3RyZXNzZWQ= Zm9ybWVybHk= QWxhbg== IGNoZWZz IG9wdGljcw== IENvbWV0 IEFNQw== IHJlZGVzaWduZWQ= aXJtYXRpb24= IHNpZ2h0aW5ncw== Mzgy MzEx IFdC IGNvbnRyYWN0aW9u IFRPVEFM RHVhbA== IHN0YXJ0bGVk IHVuZGVyc3RhbmRhYmx5 IHN1bmdsYXNzZXM= RVRIT0Q= IGRvY2tlcg== IHN1cmZpbmc= IEhFTA== IFNsYWNr dG9uZXM= IHNoYWx0 VmlzdWFs NDk4 RGVwYXJ0bWVudA== Y3Vzc2lvbg== IHVucmVzdHJpY3RlZA== IHRhZA== IHJlbmFtZQ== ZW1wbG95ZWQ= IGVkdWNhdGluZw== IGdyaW5uZWQ= YmVkcm9vbQ== IEFjdGl2aXRpZXM= IFZlbHZldA== IFNXQVQ= IHNodWZmbGU= aWdvcg== IHNhdHVyYXRpb24= RmluZGluZw== Y3JlYW0= aWN0ZXI= IHZvZGth dHJhY2tpbmc= dGVj IGZvcmVncm91bmQ= aWVzdGE= IHZlaGVtZW50 IEVDQg== IFRpZQ== RXk= IHR1cnRsZXM= IFJhaWxyb2Fk IEthdHo= IEZyYW1lcw== IG1lbmFjZQ== IEZlbGxvd3NoaXA= IEVzc2VudGlhbA== dWdnaXNo IGRyaXA= Y2h3aXR6 IEt5b3Rv c2I= IE5pbmE= UGFyYW1ldGVy IGFsYXJtcw== IENsYXVk IHBpb25lZXJpbmc= IGNoaWVmbHk= IFNjcmVhbQ== Q29sbGVjdGlvbg== IHRoYW5rZnVsbHk= IFJvbmFsZG8= 5a2Q c3RyaXA= IERpc25leWxhbmQ= Y29tbWVyY2lhbA== U2VlaW5n U291bA== IGV2YWN1YXRl IGNpdg== IEFzaGU= IGRpdmlkZXM= IERhZ2dlcg== cmVoZW5zaXZl IGJlcnJpZXM= IERG IHN1c2hp IHBsdXJhbGl0eQ== V0k= IGRpc2FkdmFudGFnZWQ= IGJhdHRhbGlvbg== b2JpbGVz NDUx IGNsaW5n IHVuZGVuaWFibGU= IExvdW5nZQ== IGhhdW50 cGhl IHF1YW50aWZ5 IGRpZmZlcmVk IFsqXQ== IFZpeg== Y3Vt c2xhdmU= IHZpZGVvZw== IHF1YXI= IGJ1bmRsZXM= IEFsb25zbw== dGFja2xl IG5ldXJvbmFs IGxhbmRzbGlkZQ== Y29uZmlybWVk IERlcHRo IHJlbmV3YWJsZXM= QmVhcg== IE1hY2Vkb25pYQ== IGplcnNleXM= IGJ1bms= IFNwYXdu IENvbnRyb2xz IEJ1Y2hhbmFu IHJvYm90aWNz IGVtcGhhc2l6aW5n IFR1dG9yaWFs aHlw aXN0b24= IG1vbnVtZW50YWw= 5rA= IENhcnJ5 IHRic3A= ZW5hbmNl SGlsbA== YXJ0aGVk IHJvdHRlbg== RGVhbg== IHR3aXN0aW5n IGdvb2R3aWxs IGltbWVyc2lvbg== TGl2aW5n IGJydXNoZXM= IENHSQ== IEF0aw== dHJhZGl0aW9uYWw= IHBoYW50b20= IFN0YW1pbmE= IGV4cGFuc2lvbnM= IE1hcmlu IGVtYmFya2Vk IEVn aW50ZXN0aW5hbA== IFBFT1BMRQ== IEJvb3Ro IEFwcGFsYWNo IHJlbGVnYXRlZA== VlQ= TUlU IG11c3Rlcg== IHdpdGhkcmF3aW5n IG1pY3Jvc2NvcGU= IEdhdGhlcmluZw== IENyZXNjZW50 IEFyZ2VudGluZQ== IERlY3Jl IERvbWluaWM= IGJ1ZHM= YW50YWdl IElvbg== IHdpZGVuZWQ= T05TT1JFRA== IEdsb3Zlcw== aWFubm9wb3Vsb3M= cmF6ZW4= ZmVlbA== IHJlcGF5bWVudA== IGhpbmRzaWdodA== IFJFQUxMWQ== IFBpc3RvbA== IEJyYWg= IHdhdHRz IHN1cnZpdmVz IGZsdXJyeQ== aXNzeQ== QWxlcnQ= IFVydWd1YXk= UGhvZW5peA== U2xvdw== IEdyYXZl IEZpcg== IG1hbmFnZWFibGU= IHRhcmlmZg== IFVEUA== IFBpc3RvbnM= IE5pZ2VyaWFu IHN0cmlrZW91dHM= IGNvc21ldGljcw== d2hlbG1pbmc= ZmFi Y2FwZQ== cHJveHk= IHJldGhpbms= IG92ZXJjb21pbmc= c2ltcGxl IHdvbw== IGRpc3RyYWN0aW5n IFN0YW50b24= IFR1bHNh IERvY2s= NjU5 IGRpc2NvcmQ= IEVtYWNz IFZlcw== IFJPQg== IHJlYXNzdXJpbmc= IGNvbnNvcnRpdW0= TXVzbGltcw== MzIx IHByb21wdHM= c2Vp IEhpdGNo aW1wb3NlZA== IEZvb2w= IGluZGlzY3JpbQ== d3Jvbmc= YnVxdWVycXVl RGF2aXM= IV0= IHRpbWVsZXNz IE5FRUQ= IHBlc3RpY2lkZQ== IHJhbGx5aW5n IENhbGRlcg== IOWk IHhw IFVubGU= IEV4cG9ydA== bHVhag== QnVmZg== KTwv Qm9vdA== IENocnlzbGVy b3JhdGl2ZQ== TWVzcw== IG5lZ2xpZ2libGU= ZXJ0b2Rk IE11c2hyb29t IEdhbGU= Z2M= IENvc2J5 IFJ1cmFs cml0aWNhbA== QmVsbA== IHR1cmJpbmU= MDAyMDAwMDA= IGxlZ2l0aW1hdGVseQ== IEFuaW1hdGVk VEVE IFRoZW9kb3Jl Y29uZHVjdA== IEhpZXI= IGNvdW50ZXJmZWl0 IEFsZ2VyaWE= IHVuYmVhdA== Y29udHJvbGxlcg== IHVucmVz IHNjcmFtYmxpbmc= IEZhbGxvbg== VGVz IGFtYmVy IHJveWFsdGllcw== IFNoZWx0ZXI= IExlc3Rlcg== IGNsYXNzaWZ5 UmVtb3Rl IHVuaGVhcmQ= IGNvbnRyb3ZlcnNpZXM= IGVucmljaG1lbnQ= IFlhbmtlZQ== Z2FtZXI= IHBsYXRpbnVt IGVjb2xvZ3k= IFNhcms= IHVudG91Y2hlZA== IHN1cGVydmlzb3Jz ICIl IGZvb3Ro IGNvbW1vbnM= IG5hcmNvdGljcw== IGluZGljZXM= IFBseQ== IGFkZGl0aW9uYWxseQ== IEdhd2tlcg== IEVR UGxheWluZw== IGNhdmVhdA== IEFic29sdXRl b3NzdXM= QmFieQ== IHJhdGlvbg== IHJlc2lu IGNhbGlicmF0aW9u IE5ld3BvcnQ= IGtub2Nrcw== dnQ= IGNvbXBvc3Q= U2NlbmU= IHNhcmNhc3Q= IGtpc3Nlcw== IG5z YWxsaQ== IE1hcmNlbA== IFBpZXQ= aWF0cmljcw== IHN1cnJvdW5kcw== IFJlcHJvZHU= IFBoaWxsaWVz IHVuY2VydGFpbnRpZXM= IEV1cg== IFJvbWFuY2U= IEhhdGg= IE5lZWRz IENsb2Fr IGNyZW0= cXVldWU= IDM1NQ== IHVwZnJvbnQ= XSk7 IHJlY2lwcm9j IDE5Mjc= IDExMDA= dXRzdQ== IGRlcHJlc3NpdmU= b3dtZW50 RmFucw== IG1lY2g= IGFubmloaWw= IGNvdW50ZXJ0ZXJyb3Jpc20= IEZpZ3VyZXM= Ym9sZA== IE1vaW5lcw== IERyaXZlcnM= IG1hbnVzY3JpcHRz IENyeXB0bw== IGh5cG5vdA== cmVkZGl0cw== IHByb3NlY3V0aW9ucw== IGRpdmVydA== Q1JJUA== IEJlbmU= IFJlZ2dpZQ== IHRheGluZw== IE1vcmFsZXM= ZW50aW5n dHVy c2lnbmlmaWNhbnQ= IFBST1Y= IHN0cmFuZHM= IHBvdWNo IFJvb2tpZQ== u5I= IG5pY2Vy aGVteQ== aHc= RUNB IGludGltaWRhdGVk IHN0cmljdGVy IG1pY3JvYmlhbA== ZGV0YWlscw== IHZvd3M= IHF1YWtl aGhoaA== IHJlaW52ZW50 VWI= IHJlbGlucXU= IEJ1ZmZldHQ= bGljZW5zZWQ= aXR0ZXJlZA== IFBpY2FyZA== IGNoZXdpbmc= dWNs b3JnYW5pYw== IGxvY2FsaXplZA== IEVjb25vbWlzdA== IGFjcXVhaW50ZWQ= RGVmaW5pdGlvbg== c2Vk Q3JpdGljcw== IGNj NDUz Mzgx IGZlbGxvd3M= IGNoZWNrcG9pbnRz MDI1 IHJlZWxlY3Rpb24= IG1lZGlhdGVk IEtERQ== IGh1cmRsZQ== IHRleHRpbmc= UGVyZmVjdA== IHRydXN0ZWVz ZmVjdHVyZQ== IGRpY2g= bW9uYXJ5 IGRpc3RpbmN0aW9ucw== IDE0MDA= IHVzaGVy IHBhcmFzaXRlcw== IFNoYXJpbmc= IFZpbQ== IGJhcmJlY3Vl IE1pbmlzdGVycw== ZXJlbGxh IGVi IG1j IFNvbWVob3c= IEluc2VjdA== Y2hhbmdlcw== YnJvYWQ= IEJ5eg== IGdyYXBlcw== NjY5 ID09PT09PT09PT09PT09PT09 IGFzc2ltaWw= IGhhdW50aW5n IGZpcmVwb3dlcg== IGRlZmFtYXRpb24= ZW1waGFzaXM= IGNvbXBvc2U= IGFsbGVyZ2llcw== IHN0cmFuZw== cm9sbGVycw== YmFuZw== IGJyZXdlcnM= cm9uZ2g= cmlvdA== cG9vcg== Y29sZA== U2FtcGxl IGJ1b3k= MDQw IENvdXJ0bmV5 IDI2OA== IFdlZGRpbmc= NzAy IG9ic2Vzc2l2ZQ== IGJyYWtpbmc= IExhbA== YW5pY2Fs 5aY= YXRlbg== Q29uc3RydWN0aW9u IGNsaW5pY2FsbHk= aWVyc2hpcA== TmFtZXM= IERpc2N1c3M= IFJhbW9z IGxvY2FsZQ== IEFncmljdWx0dXJhbA== RW5hYmxl IGhvcnNlcG93ZXI= ZW50dXJl UHJlZg== Q291cnQ= IHN0YWZmaW5n IGZ1dHVyaXN0aWM= ZHJpdmVycw== IE1hcmtldHBsYWNl 5oim RnJpZW5kcw== IGRhbW5pbmc= IEN1c3RvbWVycw== IHdlZWRz IE1haQ== IGFnaWxl IFRhdHQ= aWNlbnQ= UmFua2Vk Y3JvZnQ= IEthdHk= RXh0cmVtZQ== IGNhcnZl IFJvdmVy IEJ5cm9u Mzcy IGNvbmR1Y3Rz cmF0Y2g= aXRpYQ== IFB1bXBraW4= U2FkbHk= UmVsb2FkZWQ= UG9saWN5 IGxpY2s= cGVhaw== aXNrcw== IENEcw== IEVuY3ljbG9wZWRpYQ== aW5pdGlhbA== Q29z IEF3YXJlbmVzcw== IERyYW0= JCQkJA== IHJpZmY= IHNjcmlwdHVyZQ== cnVubmVycw== IGJvaWxlcg== b25zb24= b2lu IGhhbXN0cmluZw== IGNhdGFseQ== IEFyY2hiaXNob3A= Y2hhbGw= IGZhdXg= b2tpbg== bG9jYWxob3N0 IE5BTUU= YWRvYmU= U0FO YW1hdGU= IHNjcmFtYmxl IGNhcmM= IE1hbmlmZXN0 IENlZGFy IFNlcmdpbw== bGF0ZXI= ZmZlcg== IGdyYXBwbGluZw== IERldXRzY2hl YWdvbmlzdHM= IE5ld3Nw IHByZXRlbmRlZA== YXJjaG1lbnQ= IGN1cmF0ZWQ= IGhlYWRwaG9uZQ== IFVuY29tbW9u IFNJR04= QWdlbnQ= IGRlYWRsaW5lcw== IGhvcml6b250YWxseQ== IE1BVA== IFN1bW1lcnM= IG9yZGFpbmVk IExhc3RseQ== IEtlbmRhbGw= IGZyaWc= IE1hY2hpbmE= IFdhdGVybG9v IE1leGljYW5z IHByb3RlY3Rvcg== IGdsYXJl fSI= UHJlbWl1bQ== IHJpZnQ= IFRlbGVzY29wZQ== TWV0YWw= IHJlY2FwdA== IDs7 IGluY2xpbmF0aW9u IGltcG9zZXM= aW5nZW4= Xns= IGhhc3Rl IGRvbHBoaW5z IGNvbW11dGVycw== cGxhbm5lZA== Y29uZw== bXg= IFVwbG9hZA== IGV4dHJhcA== IFR1Y3Nvbg== IEV4cGxvcmF0aW9u ZWZlYXRlZA== IHNsZW5kZXI= NzAz IEJ1aw== aXNlbA== IGNvbXBldGl0aXZlbmVzcw== Y2hsb3I= IFBlcm1hbmVudA== IEV2ZXJldHQ= IFNwZWNpYWxpc3Q= IFNPTA== IGN5YW4= IEV4YWN0bHk= VUY= IExJRkU= YXJ5bA== b25ldA== IEVtcGxveWVl YXdlZA== IFJhdGluZ3M= IGV4dHJhdmFn dWxodQ== IFBsYW5l IGVsZXZhdGU= IENvb3JkaW5hdG9y IFdhdGtpbnM= IGV4Y2x1ZGVz IHNlbnRpZW50 IGVwb2No IGFsbG9j UHJldmlvdXNseQ== IFNoeQ== IFNsb3Zha2lh TE9DSw== IG1hcmtlZGx5 IGtub2I= IGFkdmVudHVyZXJz IEJlZW4= IENvc3Rz YW1tZXJz IG9uc2xhdWdodA== IFN1cHBvcnRlZA== IFRhdQ== aWthcnA= IFNvdmVyZQ== IEhhbXB0b24= 44KJ UHJldg== IFdvcnNl IGNvdHRhZ2U= IEhhZGVz bGV6 Ym93bA== IGZyYWdyYW5jZQ== IExvaw== RU1PVEU= IFBldHJv IDE5MjU= IFBlbmQ= cHJvZHVjaW5n IHJlbG9jYXRl dmF0aQ== cG9sZQ== IHNlbWlu IE5VTQ== IHJvY2tlZA== YnVmZg== Ymx5 UmVwbHk= IEhhaQ== IGFydGljdWxhdGVk IElzbGFtYWJhZA== NjY1 IENsYWltcw== RGVza3RvcA== IHRydXN0ZWU= IHNjcmlwdGluZw== IFNvYg== IEFzeWx1bQ== U1RET1VU IENsb3du IERvcnRtdW5k IERldm9u bGl0ZQ== IE1hcmJsZQ== IGJ1bmtlcg== IGNyZXN0 IGFyb3VzYWw= IFNlYXJz IEJ1ZGR5 ZXJlZGl0aA== IFBvbGx5 IGRlY29kZQ== IFZpc2g= IFJlZmxlY3Q= YW5vbg== IHJlZnVuZHM= aW1tZXJz SE0= IHdpcGluZw== IHB1enpsZWQ= IG1hdHRl dW5v UGllcnJl KSks IHRhaW50ZWQ= IHN5bWJvbGlzbQ== IEZyYXo= IHByb3Rlc3RvcnM= ZXRoZXVz JSUlJQ== V3Jh IGxheA== YWRlbQ== YXR1cmF0aW9u 44OT IFRyYWlsZXI= IEVORw== IEJvd3Nlcg== IGF0dG0= RHVy ODA3 IHNpZHg= IGNpZGVy IEFmZmVjdA== IHdvdmVu IEJhcmtlcg== YmVuZWY= IGRzdGc= IFJ5dQ== Pls= IHNxb3I= U2F1ZGk= IGlzdGc= IGluZHVsZ2U= cHJvYw== IGRpc2d1c3RlZA== IGNvbXBvdW5kZWQ= IG5lbQ== IHNjaG9vbGluZw== IEN1cmU= cHJvY2Vzc2luZw== U29s IHByb3ZlcmI= aXRpemVk IEFsdmFyZXo= IHNjYXJm IHJlY3Rhbmd1bGFy cmV2ZQ== IGhvcm1vbmFs IFN0cmVzcw== aXRpemVu IDQyNQ== Z2lybHM= IE5vaXI= IFJhcHA= IG1hcmNoZXM= Y2h1cmNo IFVzZXM= IDQwNQ== IEJlcm0= IG9yZGluYW5jZXM= IEp1ZGdtZW50 Q2hhcmdlcw== IFppbg== IGR1c3R5 IHN0cmF3YmVycmllcw== IHBlcmNl IFRodXI= IERlYm9yYWg= bmV0ZmxpeA== IExhbWJlcnQ= IGFtdXNlZA== IEd1YW5n WU9V UkdC IENDVFY= IGZpYXQ= cmFuZw== IGZlZGVyYXRpb24= IE1hbnQ= IEJ1c3Q= IE1hcmU= cmVzcGVjdGl2ZQ== IE1pZ3JhdGlvbg== IEJJVA== NTkw IHBhdHJpb3Rpc20= IG91dGxpbmluZw== cmVnaW9u IEpvc8Op IGJsYXN0aW5n IEV6cmE= QnM= IHVuZGVybWluZXM= IFNtb290aA== IGNsYXNoZWQ= cmFkaW8= IHRyYW5zaXRpb25pbmc= IEJ1Y2NhbmVlcnM= IE93bA== IHBsdWdz IGhpYXR1cw== IFBpbmJhbGw= IG1pZw== IE51dHI= IFdvbGZl IGludGVnZXJz IG9yYml0cw== IEVkd2lu IERpcmVjdFg= Yml0ZQ== IGJsYXppbmc= dnI= RWRnZQ== IFBJRA== ZXhpdA== IENvbWVk IFBhdGhmaW5kZXI= IEd1aWQ= IFNpZ25z IFplcg== IEFnZW5kYQ== IHJlaW1idXJzZW1lbnQ= TWVzaA== aVBob25l IE1hcmNvcw== IFNpdGVz aGF0ZQ== ZW5idXJn IHNvY2tldHM= cGVuZA== QmF0bWFu dmly IFNIT1c= IHByb3Zpc2lvbmFs Y29ubg== IERlYXRocw== QVRJVkU= UHJvZmlsZQ== c3lt SkE= IG5pbmph aW5zdGFsbGVk aWRhdGVz ZWJyYQ== IE9tYWhh IHNlaXppbmc= IEJlYXN0cw== IHNhbHRz TWlzc2lvbg== R2VuZXJhbGx5 IFRyaWxvZ3k= aGVvbg== bGVnYXRlcw== IGRpbWU= IGZhaXJl cGFyYWJsZQ== R3JhcGg= IHRvdGFsaW5n IGRpYWdyYW1z IFlhbnVr cGxldA== IE1laA== IG15dGhpY2Fs IFN0ZXBoZW5z YXV0aWNhbA== b2NoZW1pc3RyeQ== IGtpbG9ncmFtcw== IGVsYm93cw== YW5jb2Nr IEJDRQ== IFByYWd1ZQ== IGltcHJvdg== IERldmlu ICJc cGFyYWxsZQ== IHN1cHJlbWFjaXN0cw== IEJpbGxpb24= IHJlZ2ltZW4= aW5uYWNsZQ== IHJlcXVpc2l0ZQ== YW5nYW4= IEJ1cmxpbmd0b24= YWlubWVudA== IE9iamVjdGl2ZQ== b21za3k= R1Y= IHVuaWxhdGVyYWw= IHRj IGhpcmVz bWVudGFs IGludm9sdW50YXJ5 IHRyYW5zcGw= IEFTQ0lJ wqg= RXZlbnRz IGRvdWJ0ZWQ= IEthcGxhbg== IENvdXJhZ2U= aWdvbg== IE1hbmFnaW5n IFRhcnQ= IGZhbHNlaG9vZA== IFZpb2xldA== IGFpcnM= IGZlcnRpbGl6ZXI= QnJpdGFpbg== IGFxdWF0aWM= b3Vm V29yZHM= IEhhcnRmb3Jk IGV2ZW5pbmdz IFZlbmdlYW5jZQ== cXVpdGU= R2FsbA== IFByZXQ= IHBkZg== IExN IFNvY2hp IEludGVyY2VwdA== OTIw IHByb2ZpdGFiaWxpdHk= IElkbGU= IE1hY0RvbmFsZA== IEVzdGFibGlzaG1lbnQ= dW1zeQ== IGdhdGhlcmluZ3M= IE5hag== Q2hhcmxpZQ== IGFzY2VudA== IFByb3RlY3Rvcg== IGFsZ2VicmE= IGJpb3M= Zm9ydW1z RUxT SW50cm9kdWNlZA== IDMzNQ== IGFzdHJvbm9teQ== Q29udHJpYnV0 IFBvbGlj UGxhdGZvcm0= IGNvbnRhaW5tZW50 d3JhcA== IGNvcm9uYXJ5 IEplbGx5 bWFuYWdlcg== IGhlYXJ0YnJlYWtpbmc= Y2Fpcg== IENoZXJv Y2dp TWVkaWNhbA== IEFjY291bnRhYmlsaXR5 ISEi b3BoaWxl IHBzeWNob3RpYw== IFJlc3RyaWN0 IGVxdWl0YWJsZQ== aXNzdWVz IDE5MDU= IE5law== Y2lzZWQ= IFRyYWNraW5n IG96b25l IGNvb2tlcg== cm9zaXM= IHJlb3Blbg== IGluZmluaXR5 IFBoYXJtYWNldXRpY2Fs ZW5zaW9uYWw= QXR0ZW1wdA== IFJvcnk= TWFyY28= IGF3YWl0cw== SE9X dHJlYXRlZA== IGJvbHN0 IHJldmVyZWQ= IHBvZHM= b3BwZXJz MDAxMA== IGFtcGxpdHVkZQ== cmljYW4= U1BPTlNPUkVE IHRyb3VzZXJz IGhhbHZlcw== IEthaW5l IEN1dGxlcg== IEFVVEg= IHNwbGVuZGlk IHByZXZlbnRpdmU= IER1ZGxleQ== aWZhY3Rz dW1pbmF0aQ== IFlpbg== IGFkbW9u IFZhZw== IGludmVydGVk IGhhc3RpbHk= IEhhZ3Vl THlu IGxlZGdlcg== IGFzdHJvbm9taWNhbA== Z2V0dGluZw== IGNpcmNh IENpYw== IFRlbm5pcw== TGltaXRlZA== IGRydQ== IEJZVQ== IHRyYXZlbGxlcnM= IHBhbmU= IEludHJv IHBhdGllbnRseQ== IGFpZGluZw== IGxvb3M= IFRvdWdo IDI5Mw== IGNvbnN1bWVz U291cmNlRmlsZQ== ICIiIg== IGJvbmRpbmc= IHRpbHRlZA== IG1lbnN0cnVhbA== IENlbGVzdGlhbA== VUxBUg== UGx1Z2lu IHJpc2tpbmc= TmF6 IFJpeWFkaA== IGFjY3JlZGl0ZWQ= IHNraXJt 6Zs= IGV4YW1pbmVy IG1lc3Npbmc= IG5lYXJpbmc= IENoZXJu IEJlY2toYW0= IHN3YXBwZWQ= IGdvb3Nl S2F5 IGxvZnR5 IFdhbGxldA== IFsn IGFwb2NhbHlwc2U= IGJhbWJvbw== IFNQQUNF IEVsZW5h IDMwNg== YWNvbnM= IHRpZ2h0ZW5lZA== IGFkb2xlc2NlbmNl IHJhaW55 IHZhbmRhbGlzbQ== IE5ld3Rvd24= IGNvbmplY3Q= Y2FrZXM= IGNoZWF0ZWQ= IG1vZGVyYXRvcnM= cGFyYW1z RUZG IGRlY2VpdA== IFNUTA== IFRhbnphbmlh IFJJ IDE5MjM= IEV4aWxl dGhlbA== IHRoZW9sb2c= IHF1aXJreQ== IElydmluZQ== IG5lZWR5 b3Jpcw== VW0= S2E= IG1haWxib3g= MzIy IGJvcw== IFBldHJh S0lORw== IGVubGFyZ2Vk T2Z0ZW4= IGJhZGFzcw== IDM0Mw== IFBsYWNlcw== IENBRA== IHByaXN0aW5l IGludGVydmVuaW5n ZGlyZWN0aW9u IGxheg== IERTTQ== IHByb2plY3Rpbmc= IEZ1bms= YWdvZw== cGF5bWVudA== bm92 IGNoYXR0ZXI= QVJC IGV4YW1pbmF0aW9ucw== IEhvdXNlaG9sZA== IEd1cw== Rm9yZA== NDE0 Qm9zcw== IG15c3RpYw== IGxlYXBz IEJhdg== dWx6 YnVkZ2V0 Rm9vdGJhbGw= IHN1YnNpZGl6ZWQ= IGZpcnN0aGFuZA== IGNvaW5jaWRl b2N1bGFy Q29ubg== IENvbGxhYm9y IGZvb2xz YW11cmE= YWhhcg== cmlzdHM= IHN3b2xsZW4= IGV4cGVuZGVk IFBhdQ== c3Vw IHNwYXI= IGtleW5vdGU= c3VmZg== IHVuZXF1YWw= IHByb2dyZXNzaW5n c3RyaW5ncw== IEdhbWVyZ2F0ZQ== RGlzbmV5 IEVsZXZlbg== b21uaWE= IHNjcmlwdGVk IGVhcm5lcnM= YnJvdGhlcg== IEVuYWJsZWQ= 5rM= IGxhcnZhZQ== IExPQw== bWVzcw== V2lsc29u IFRlbXBsYXRl c3VjY2Vzc2Z1bGx5 IHBhcmFtb3VudA== IGNhbW91ZmxhZ2U= IGJpbmRz IFF1aWV0 IFNodXR0ZXJzdG9jaw== cnVzaA== IG1hc2NvdA== Zm9ydHVuZQ== IENvbHQ= IEJleW9u aGFiaQ== IGhhaXJj IDI2Nw== IERldXM= IHR3aXRjaA== IGNvbmNlbnRyYXRpbmc= IG5pcHBsZXM= Y2libGU= IGdpcg== Tlo= TWF0aA== bmlo UmVxdWlyZWQ= IHBvbmRlcg== IFNBTg== IHdlZGRpbmdz IGxvbmVsaW5lc3M= TkVT IE1haGpvbmc= Njk1 YWRkbGU= IEdhcm5lcg== IENPVVI= QnJpZGdl IHNwcmVl IENhbGR3ZWxs IGJyaWJlcnk= IO+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/vQ== cGx1Z2lucw== IHJhY2tldA== IGNoYW1wYWduZQ== dmVyc2libGU= Vm90ZQ== IG1vZGlmaWVycw== TWF5b3I= Njgw IGFzc2VtYmxpZXM= IFN1bHRhbg== IE5pbmc= IExhZGllcw== IHN1bGZ1cg== IG9yYnM= IC0tLS0t X19fX19fXw== IEpvdXJuYWxpc20= IGVzcG9ydHM= IGx1c2g= IGh1ZQ== IHNwZWN0cmFs SG9uZXN0 44OP IGJ1c2hlcw== IHJlaW5mb3JjZW1lbnQ= IHJlb3BlbmVk IFdoZWVscw== IE1vcmc= cmlldmluZw== IGF1eGlsaWFyeQ== IGpRdWVyeQ== IEJBVA== dGVzcXVl IHZlcnRleA== cHVyZQ== ZnJleQ== 44K6 ZG9z IHR5cGg= IGN1bGw= IGVx IGRlY29u IHRvc3Npbmc= IGRpc3BhcmF0ZQ== IEJyaWdoYW0= cHJpbnRm bGVkZ2Vk IHN1bmQ= IGNvenk= IGhlcGF0aXRpcw== cGVyZm9ybWluZw== IGF2YWw= IEdH ZnV0dXJl IHBldGVydG9kZA== IEtvc292bw== IG1hZ25ldHM= QWxyZWFkeQ== IEVkaXNvbg== IENlcmVz IFJBSUQ= IGJyaWxsaWFuY2U= NTc2 IGRlcml2ZXM= IGh5cGVydGVuc2lvbg== IM6U IGxhbWJkYQ== IGZsYWly IG1pc3Npb25hcmllcw== IHJhcGVz IFN0YXJ0ZXI= IE1vbnRocw== IGRlZnk= IHNlaXNtaWM= IFJhcGhhZWw= IGV1cm96b25l NjU2 enNjaGU= IHNjcmF0Y2hlZA== IGJvd3M= IExlbm5vbg== IEdhaWE= IGRyaXBwaW5n ZmFjdHM= QWxl IGZyb2dz IEJyZWFzdA== b2dlbmVpdHk= IFByb3NlY3V0b3I= IGFtcGxpZmllZA== IEhvZGc= IEZu VGhvdXNhbmRz IE5JSA== IE1vbml0b3Jpbmc= RlRXQVJF IFByaWVidXM= IEdyb3dpbmc= aHVudGVy IGRpYWdub3Nl IE1hbGQ= IExS IGNyb3duZWQ= IGJ1cnN0aW5n IGRpc3NvbHV0aW9u amF2YXNjcmlwdA== IHVzZWZ1bG5lc3M= IEV4ZWN1dGlvbg== Oig= IEl2b3J5 YWFo IHBlcnNlY3V0ZWQ= dmlvbGVuY2U= aXN0YXM= IENyYXRl IGltcHVsc2Vz IFNwYW5p ZWRlcw== SGFuZGxl IFplcmc= dGhpbmthYmxl TGFzdGx5 IHNwb250YW5lb3VzbHk= IGluY29udmVuaWVudA== IGRpc21pc3Npbmc= IHBsb3R0ZWQ= IGVpZ2h0eQ== IDczNw== cmlzaA== IFRob3JudG9u YXRoYW0= IHNpdGNvbQ== VmVu UmVjaXBl dGVs bHVuZA== IGNsZWFycw== IFNhc3VrZQ== IDI1OA== IG9wdGluZw== IGVucmFnZWQ= ZXN0aGV0aWM= IEFl dWNocw== UHJlcA== Rmxvdw== IHJ1bm9mZg== IEVhdGluZw== IEdpbGVz IEFjdGluZw== cmVzb3VyY2Vz aWJhYmE= IHJwbQ== IHNrZXdlZA== IEJsYW5j IFNha3V5YQ== IGhvdHRlcg== IDE5MjQ= b3BpYW4= Y2tv IGNydW1ibGluZw== IGNhcHRhaW5z IEFwcHJvcHJpYXRpb25z bGVhZGVycw== ZHJvcHBpbmc= YW51dHM= IHJldmVyc2luZw== IFBvc2U= IFNlaw== U2NvdA== IElkZWE= Y2lzZQ== IFNsb3Zlbmlh IDMxNw== RG9jdG9y IGNyb2NvZA== YWxkaQ== U2Vh IEZhcnJlbGw= IG1lcmNlbmFyaWVz IFJOQw== IEd1ZXNz IHBhY2luZw== TWFjaGluZQ== U3RyZWFtZXJCb3Q= IENoYXJpdHk= IDI5OA== IGNhbm5vbnM= IFRvYnk= VFBQU3RyZWFtZXJCb3Q= IFBhc3Npb24= Y2Zn VGhvbQ== IGJhZGdlcw== IEJlcm5zdGVpbg== LuKAkw== IFBPUA== IENvbmo= IGluaXRpYWxpemF0aW9u IGJpb2RpdmVyc2l0eQ== RHVi IGZldWRhbA== IGRpc2NsYWltZXI= IGNyb3c= IGlnbml0aW9u YXJm U0hB IGtIeg== aGF6YXJk IEFydGlzdHM= b2V1dg== Njc5 IFJ1ZHk= TmluZQ== IFJhbWFkYW4= 5b0= aXR0bw== IGFkcmVuYWxpbmU= Q2VydA== IHNtZWxsZWQ= IGltcHVuaXR5 IGFnZW5kYXM= IFJlYm9ybg== IENvbmNlbnQ= IFNlZW1z IG9tZWdh IER1c3Rpbg== IGJhY2tlcg== IFNhdWNl IEJveWxl V0lO IHNwaW5z IHBhdXNlcw== dXB0 IHNocmVkZGVk IHN0cmFwcGVk IENvcnJ1cHRpb24= IHNjcmF0Y2hlcw== IG5p IGF0dGlyZQ== IFNBRg== RmFjdG9yeVJlbG9hZGVk IElQUw== ICgl IHNlbWluYXI= Zm9jdXM= Y2l2aWw= IDE4NjA= aW50b3No IGNvbnRpbnVhbA== IGFiYnJldmk= IFNvaw== b2NvYm8= WE0= IGZyYW50aWM= IHVuYXZvaWRhYmxl IGFydGVyeQ== IGFubm90YXRpb25z YmF0aA== Q2xpbWF0ZQ== IGRvcnM= IFNsaWRl Y29vcmQ= IFJlbG9hZA== IExETA== IExvdmVjcmFmdA== IHVuaW1hZ2lu IHJlc2VtYmxlZA== IGJhcnJhY2tz bnA= IHN1cnJvZ2F0ZQ== IGNhdGVnb3JpemVk 44Kp IHZhY2NpbmF0ZWQ= IGRyYWluYWdl IGluZGlzdA== IFdoYXRzQXBw IDE4NzA= b2xlcmFuY2U= aW52b2tl YW1vcnBo IHJlY29ubmVjdA== IGVtYW5j IGJsaW5kbmVzcw== IDEyODA= aW50ZXJuZXQ= Y29sbGFy IGFsdHJ1 IGFieXNz IFRSSQ== NjU3 IGluZnVzZWQ= SEVBRA== IGZvcmVzdHJ5 IFdvb2R5 IENp d2k= c2Ft Nzg0 aG9saWRheQ== IG1vZ3Vs IEZlZXM= IERFTg== SW50ZXJuYWw= dXJiZWQ= ZnVzYw== YXRvbQ== IElsbHVzaW9u IHBvbGxlZA== IGZsYXA= IGNvYXg= TEdCVA== QW5hbHk= IFNlY3Rpb25z IENhbGlmb3Ju ZW1u IGhpdGhlcg== IE5JR0hU IG5haWxlZA== IFBpcGVsaW5l Mzkx b29m IFByaW1hbA== dmVyZW5k IHNsYXNoaW5n IHJldHJp YXZpb3Vy IGRlcGFydGluZw== Z2ls SVND IG1pZHdheQ== IHVsdHJhc291bmQ= IGJlaGF2aW5n IFRhcmE= Y2xhc3Nlcw== VmlydHVhbA== IENvbG9uaWFs IHN0cmlwcGluZw== IG9yY2hlc3RyYXRlZA== IEdyYXZlcw== NDUy IElyb25pY2FsbHk= IFdyaXRlcnM= IGxlbmRz IE1hbno= IHJhdmVu IG94aWRhdGl2ZQ== IDI2Ng== RUxG YWN0dWFsbHk= YXNjYXI= RHJhZnQ= IGZhdm91cmFibGU= IGh1bWlsaWF0aW5n IGZpZGVsaXR5 IEhvZg== IFh1YW4= NDk2 IGxheWVyZWQ= YXRpcw== Nzkw IHBheWNoZWNr aXRvbg== S2Fy IFZNd2FyZQ== IEZhcm1lcg== IHNlcnZpYw== Z2xvbWVy IHNsdW1w IEZhYnJpYw== IERPQw== ZXN0aW5n IHJlYXNzdXJl IHBoeWw= dm9sdA== aXRvcnk= UnVsZXM= IG94aWRhdGlvbg== IHByaXplZA== IG1pc3RyZXNz IERqYW5nbw== V0FSTg== 5ZE= IGVuY29kZQ== IEZlZWRiYWNr IHN0dXBpZGl0eQ== SWFu IFl1Z29zbGF2aWE= 16g= YWNs VVRF MTk3Nw== IHF1YWxpZmllcw== IHB1bHNlcw== cHJldHR5 IGZyb3pl IHNz SXRlcmF0b3I= IHVyZ2VudGx5 IG1haWxlZA== IENoYW0= IHN1c3RhaW5pbmc= IGJhc2ls IHB1cHBpZXM= aWxhbnQ= IFBMRUFTRQ== bGFw YWNlb3Vz RmVhcg== IE1hc3Rlcnk= YXV0b21hdGlj IFRBRw== IGFudGlt YWdsZXM= NDcz ZnJhbWVz IHdoaXNwZXJz IFdob2V2ZXI= IGJyYXZlcnk= IFVLSVA= cmFjdGlvbnM= IiIi IHRhbWU= IHBhcnRlZA== ZXZlcnl0aGluZw== Q09OVA== IGluZGVidGVk IGFkZHI= cmVr SVJFRA== IGVtaW5lbnQ= Y2xpbnRvbg== IG91c3RlZA== IHJldmlld2Vy IG1lbHRkb3du IHJlYXJy IFlhbw== dGhlcmVhbA== YWJ5dGU= IHN0dW1ibGluZw== IGJhdGNoZXM= IDI1OQ== IGNvbnRyYWNlcHRpdmU= IHByb3N0aXR1dGU= ZW5zaXM= RGVjbA== IFN0cmlrZXM= TWlsaXRhcnk= IE9hdGg= dmFjYw== cHBpbmdz MDUy IHBhcnROYW1l YW1waW5n UmVwb3J0cw== S0k= Q0hS IHN1YnRseQ== c3dlcnM= Qmxha2U= dXN1YWw= IGNvbnRlc3RhbnRz IGNhcnRyaWRnZXM= IEdSRUFU IGJsdXNo IOKAug== NDcy IHJlYXNvbmVk 44Ok cGFyYWxsZWxlZA== IGR5bg== YWdhdGU= IG5pZ2h0bHk= 5YY= NTU2 IHNlbWFudGlj IEFkdm9j ICEh IGRpc2FncmVlcw== IEJX VmVo IGhhcm1pbmc= IGVtYnJhY2Vz IHN0cml2ZXM= IGlubGFuZA== IEthcmQ= IGhlYXRz IEdpbm55 dXRhbg== ZXJuYXV0 eWxlbmU= IEVsZXY= SkQ= IGhhcnM= IFN0YXJy IHNreXNj IGNvbGxhYm9yYXRvcnM= VXN1YWxseQ== IHJldm9sdXRpb25z IFNUQVRT IGRpc21hbnRsZQ== IGNvbmZpZGVudGx5 IGtpbmV0aWM= QWxp IHBlcmNlbnRpbGU= IGV4dHJhY3Rpbmc= aWxsaWFu ZXN0ZWFk IHBoeXNpY2lzdHM= IE1hcnNoYWw= IGZlbGxvd3NoaXA= IGRhc2hlZA== IFVS IFNpb3V4 IENvbXBhY3Q= YW1pZGU= UHl0aG9u IExlaWdo IFBoYXJtYWM= aXN0cmF0ZXM= aGVyaWNhbA== IGZ1ZQ== IEVtaW4= ICh7 IE5laWdoYm9yaG9vZA== IGRpc3J1cHRpbmc= IER1cA== IGdsYW5k IFNldg== IE1hcmlhbg== YXJnb24= IER1bmQ= IDwhLS0= IHN0cmFuZA== IHN0YWRpdW1z em9z IHBzeWNob3Npcw== IFJhY2s= IGJyaWxsaWFudGx5 77iP IHN1Ym1lcmdlZA== IEluc3RpdA== IENob3c= IGNhZ2Vz IEhhdHM= IFVycw== IGRpbHV0ZWQ= dXNhdA== aWVubmU= IE1lbWJlcnNoaXA= IEJ1cms= IGll IGFyY2hldHlwZQ== RHJ1Zw== dWx0b24= IFNwb2Nr IE1jS2F5 IERlcGVuZA== RmVhdHVyZWQ= U29j MTk3OA== IEJlcmU= IHJlbGVudGxlc3NseQ== IGNyaXBwbGluZw== IGFydGhyaXRpcw== 55Sf IFRyb3BpY2Fs IEJ1bGc= IENoZXJ5bA== IGFkbWlyYWJsZQ== IHN1YnRpdGxl T3ZlcnJpZGU= IG9yaWdpbmF0aW5n IENDUA== IHN3b3Jl IFNvbGU= IERpc29yZGVycw== MzI5 IHByb2Nlc3Npb24= IHJlZnVyYg== IGltbWVyc2Vk cmVxdWVudGx5 IHNrZXB0aWNz IGNlcmFtaWM= bWl0dGVy ZW5zdGVpbg== YmVsdA== IFRJVA== YmlkZGVu IGZpcg== bWlzdA== Pl0= IHdlYXZl IFBhcmFkb3g= IGVudHJ1c3RlZA== IEJhcmNsYXlz IG5vdmVsaXN0 b2dpZQ== ODA2 IG5pbmV0eQ== IGRpc2FncmVlbWVudHM= QEBAQEBAQEA= IEF1c2Nod2l0eg== Y2Fycw== IExFVA== dHVi YXJhbnRpbmU= UE9T IGJhY2tzdG9yeQ== IGNoZWVyZnVs IFJhZw== ZWth Ymlhc2Vk IGluZXhwZXJpZW5jZWQ= YWtyYQ== IFdpdHQ= dGFu IHJhcGlzdA== IHBsYXRlYXU= Y2hhbA== IElucXVpcw== ZXhwcmVzc2lvbg== IGNpcGhlcg== IHNoYXZpbmc= YWRkZW4= cmVseQ== KFw= aXNtYQ== IFJlZ3VsYXRvcnk= Q0hBUg== aWx5bg== TlZJRElB R1U= IG11cm0= bGF1cw== Q2hyaXN0b3BoZXI= IGNvbnRyYWN0dWFs IFByb3h5 IEphaW1l IE1ldGhvZGlzdA== IHN0ZXdhcmRz c3Rh cGVyaWE= IHBoeXNpb2xvZ3k= IGJ1bXBlZA== IGZydWN0b3Nl QXVzdHJhbGlhbg== IE1ldGFsbGlj IE1hc3F1ZXJhZGU= YXJi IHByb211bA== IGRvd25mYWxs IGJ1dGNoZXI= IGJvdXI= IElORk9STUFUSU9O IEJpcw== cGVjdHM= YWRlbmE= IGNvbnRlbXBsYXRpbmc= YXJvbw== Y2VudGVyZWQ= IFBlYWtz VXNlZA== IG1vZGVt IGdlbmRlcnM= IDgwMDA= Mzcx IG1hdGVybml0eQ== IFJheg== IHJvY2tpbmc= IGhhbmRndW5z IERBQ0E= QXV0b20= IE5pbGU= IHR1bXVsdA== IEJlbmVmaXQ= IEFwcHJvYWNo d29ya3Nob3A= IExlYXZpbmc= R2Vy aW5zdGVhZA== IHZpYnJhdGlvbnM= IHJlcG9zaXRvcmllcw== NDk3 IEF1bnQ= IEp1Yg== IEV4cGVkaXRpb24= QWxwaGE= IHNhbnM= IG92ZXJkdWU= IG92ZXJjcm93ZA== IGxlZ2lzbGF0dXJlcw== IHBhdGVybmFs IExlb25hcmRv IGV4cHJlc3NpdmU= IGRpc3RyYWN0aW9ucw== IHNpbGVuY2Vk dHJ1c3Q= IGJpa2luZw== IDU2MA== IHByb3ByaWV0 IGltcG9zaXRpb24= IGNvbmdsb21lcg== ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 IFRlYWNoaW5n IFlvc2U= aW50ZW5zaXZl VG93bg== IHRyb2xsaW5n IEdyYWM= IEFTVVM= WW8= IHNwZWNpYWxz IE5lcGg= IEdvZHppbGxh RGF0YWJhc2U= IEhlZ2Vs IDI3Mg== MTk3Ng== IEdsb3JpYQ== IGRpc2VtYg== IEludmVzdGlnYXRpb25z IEJhbmU= YWdlbWVudHM= U3RyYW5nZQ== IHRyZWFzdXJ5 IFBsYXlz IHVuZGVzaXJhYmxl IHdpZGVuaW5n IHZlcmJhbGx5 IGluZmFuY3k= IGN1dHRlcg== Zm1s IDIxMDA= cHJvdG90eXBl ZmluZQ== IGRlY3JpbWluYWw= IGR5c2Z1bmN0aW9uYWw= IGJlc2ll IEVybnN0 emVi IG5vcnRoZWFzdGVybg== IGF1c3Q= cG9yYXRl IE1hcmxpbnM= IHNlZ3JlZ2F0ZWQ= ZXdvcmxk IE1haGVy IHRyYXZlcnNl IG1vbmFzdGVyeQ== dXJneQ== R2Vhcg== c2FuZA== Q29tcGw= IEVNUA== IHBsZW50 IE1lcmNlcg== IDI3Ng== VEFCTEU= Q29uZmlndXJhdGlvbg== SHVuZHJlZHM= IHByaWM= IGNvbGxhYm9yYXRpbmc= IFBhcmFtb3VudA== IEN1bW1pbmdz ICg8 IHJlY29yZGVy IGZsYXRz IDQxNg== d2hvc2U= Rm9udFNpemU= IE9yYml0 WVI= IHdyaXN0cw== IGJha2VyeQ== KX0= IEJvdW50eQ== IExhbmNhc3Rlcg== IGVuZGluZ3M= YWNjb3JkaW5n IFNhbGFt ZWFzeQ== NzU1 IEJ1cnI= IEJhcm5ldHQ= b25vbW91cw== VW5pb24= IHByZWNlZGVuY2U= IFNjaG9sYXJzaGlw IFVY IHJvbGxvdXQ= IGJvb24= YWxt IENhbnRlcg== 5rU= IHJvdW5kaW5n IGNsYWQ= IHZhcA== IEZlYXR1cmVk aXNhdGlvbnM= IDU0MA== cG9saWNl IHVuc2V0dGxpbmc= IGRyaWZ0aW5n IEx1bWlh IE9iYW1hQ2FyZQ== IEZhdm9y SHlwZXI= IFJvdGhzY2hpbGQ= IE1pbGliYW5k YW5hbHk= IEp1bGlldA== SHU= IHJlY2FsbGluZw== YWhlYWQ= Njk2 IHVuZmF2b3JhYmxl IGRhbmNlcw== T3g= IGxlZ2FsaXR5 IDQwMw== cm9tYW5jZXI= IGlucXVpcmU= IE1vdmVz XCI+ IFZhcmlhbnQ= IE1lc3NpYWg= IExDUw== IEJhaMOh NzU2 IGV5ZWJyb3c= IMKl IE1jRg== IEZvcnR5 TWFz IHBhbmlja2Vk IHRyYW5zZm9ybWF0aW9ucw== cXE= IHJldm9sdmVz cmluZ2U= IEFp YXhl IG9ud2FyZA== IENGUg== IEJhcmU= bG9naW4= IGxpcXVpZHM= IGRlY29tcA== c2Vjb25kYXJ5 aWxhbg== IENvbnZlcnQ= YW1peWE= IHByb3NlY3V0aW5n IOKJoQ== IFlvcmtlcnM= IEJ5cm5l c2xvdw== YXdlaQ== SmVhbg== IDI2OQ== IFNreWRyYWdvbg== IMOp IE5pY2FyYWd1YQ== IEh1Y2thYmVl IEhpZ2hseQ== IGFtcGhpYg== IFBhc3Rvcg== IExldHM= IGJsdXJyZWQ= IHZpc2NlcmFs IENCTw== IGNvbGxhYm9yYXRlZA== emln TGVnYWw= IGFwYXJ0aGVpZA== IGJyaWQ= IHByZXNldA== IERFVA== IEFNQQ== 15Q= YXJjaGluZw== YXVjdXNlcw== YnVpbGRlcg== IHBvZXRpYw== IGVtdWxhdG9y IE1vbGVjdWxhcg== IGhvbm9yaW5n aXNldW0= IHRyYWN0b3I= IENsdXN0ZXI= IENhbG0= YXJlZGV2aWw= IHNpZGV3YWxrcw== IHZpb2xpbg== IGdlbmVyYWxpemVk IEFsZWM= IGVtYmFyZ28= IGZhc3RiYWxs IEhUVFBT IExhY2s= IENoaWxs cml2ZXI= Q2hlbA== IFN3YXJt IExldmluZQ== cm95aW5n TGF1bmNo IGtpY2tlcg== IGFkZGl0aXZl IERlYWxz V2lkZ2V0 Y29udGFpbmluZw== IGVzY2FsYXRl IE9QRU4= IHR3ZWFrZWQ= IHN0YXNo IHNwYXJrcw== IEVzc2V4 IEVjYw== IGNvbnZpY3Q= IGJsb2dnaW5n SUVS IEhM IG11cmRlcmVycw== NzU5 IEhpYg== IGRlcGw= IEpvcmQ= U2Fj IGRpc3NlY3Q= IEhvd2U= b3NoZXI= IGN1c3RvbWl6YWJsZQ== IEZyYW56 IGF0cm8= xIc= IDAwMDQ= IG91dHBvc3Q= Um9zcw== IGdseXBob3NhdGU= IEhhc3Rpbmdz IEJFRk9SRQ== IHNob3Zl b3BwZWQ= IFNjYWxh IGFtdWxldA== YW5pYW4= IGV4YWNlcmJhdGVk IGVhdGVy NDcx VU1F IHB1bHA= aXpvbnRhbA== IFphbQ== IEFUSQ== aW1tdW5l YWJ5dGVz IHVubmVjZXNzYXJpbHk= IENBVA== IEF4aXM= IHZpc3VhbGl6ZQ== w4k= IFJhZGljYWw= Zm0= RG9jdW1lbnRz IEZvcnJlc3Q= IGNvbnRleHR1YWw= IFN5bWJvbA== IHRlbnRhdGl2ZQ== IERPRVM= IEdvb2Rz IGludGVybWl0dGVudA== fTo= bWVkaWF0ZWQ= IHJpZGljdWxl IGF0aGVpc20= IHBhdGhvZ2Vucw== IE11bQ== IHJlaW50cm9kdQ== IDMwNw== aUhVRA== IGZsYXNobGlnaHQ= IHN3ZWFyaW5n IHBlbmd1 QnU= IHJvdGF0ZWQ= IENyYW5l ICgpKTs= IGZhc2hpb25hYmxl IGVuZG9yc2luZw== NDYz KVs= IGluZ2VzdGlvbg== IGNvb2tz IDk1MA== b3RvbXk= IEltYW0= IGth IHRlYXNlcg== IEdob3N0cw== IOOCtQ== MTk2OQ== z4M= dWJieQ== IGNvbnZlcnRlcg== emFubmU= ZW5kZQ== IFByZXBhcg== IE5pY2tlbA== IENoaW1lcmE= aGlt IFR5cmFubg== IFNhYmJhdGg= IE5pY2hvbHM= IHJhcHQ= aWhhcg== IHNoZWxsaW5n IGlsbHVtaW5hdGU= IGRlbnRpc3Q= dXRvcg== IEludGVncmF0aW9u IHdoaW1z IExpdGVyYXJ5 QmVhdXQ= IHBhcmNobWVudA== YWdhcmE= QnJhbmQ= IGRlcm9n 4oCmKQ== IE5vcnNl IHVud2l0dGluZw== IGN1Yw== IGJvcmRlcmxpbmU= IHVwc2V0dGluZw== IHJlY291cnNl IGRyYXBlZA== IFJhZGFy IGNvbGRlcg== IFBlcHNp aW1pbmFyeQ== XSxb NjU4 Vmk= IEZyZW0= IFBlcw== IHZldGVyaW5hcnk= IFRFRA== IEVwaWRlbQ== bm92YQ== a2lk IGRldm91dA== b2N0 amFk TW9o IFBBWQ== IGdlb21ldHJpYw== IDMyMw== IGNpcmN1bWZlcmVuY2U= aWNoaWNr MTk3NQ== IFl1cmk= IFNoYWxs IEhvdmVy dW5pbg== U3By IGdyYWZ0 IEhhcHBpbmVzcw== IGRpc2FkdmFudGFnZXM= YXR0YWNrcw== IGh1YnM= IFN0YXJDcmFmdA== 6ZY= IGdhbGxlcmllcw== IEtvcnJh IGdyb2Nlcmllcw== IEdvcnN1Y2g= IHJhcGlzdHM= IGZ1bmdp IFR5cGhvb24= VmVjdG9y IEVtcHJlc3M= YmF0dGxl NDY4 IHBhcmFzaXRl IEJvbWJlcg== U0c= ZXhpc3Q= IFBm IHVuc2U= IHN1cmdlb25z QmlydGg= IFVuc3VyZQ== IFByaW50ZWQ= IEJlaGF2aW9yYWw= IEFzdGVy UGFraXN0YW4= IHVuZXRoaWNhbA== IHN2 IElvVA== IGxheW91dHM= UGFpbg== IGNvbnN0YW50cw== IExX IEJha2U= IHRvd2Vscw== IGRldGVyaW9yYXRpb24= IEJvbGl2aWE= IGJsaW5kZWQ= IFdhcmRlbg== IE1pc3RyZXNz IG9uc3RhZ2U= IGNsYW5z IEJFU1Q= MTk2MA== IGFudGlxdWU= IHJoZXRvcmljYWw= IFBlcmN5 IFJ3YW5kYQ== LC4= QnJ1Y2U= IHRyYXVtYXQ= IFBhcmxpYW1lbnRhcnk= IGZvb3Rub3Rl aWRpYQ== IExlYXJuZWQ= c2Vla2luZw== Z2VuaWM= IGRpbWVuc2lvbmFs SGlkZQ== 6ICF IGludHJpZ3Vl aW5zZQ== IGxlYXNlcw== IGFwcHJlbnRpY2Vz d2FzaGluZw== IDE5MjY= VklMTEU= IHN3b29w c2Ns IGJlZHJvb21z b25pY3M= IENydW5jaA== Y29tcGF0aWJsZQ== IGluY2FwYWM= IFllbWVuaQ== YXNodHJh emhvdQ== ZGFuZ2Vy IG1hbmlmZXN0YXRpb25z IERlbW9ucw== QUFG U2VjcmV0YXJ5 QUNURUQ= TE9E IGFteQ== cmFwZXI= ZXRobmlj NDE3 IHBvc2l0aXZlcw== IDI3Mw== IFJlZnVnZWVz IHVzYg== IFZhbGQ= b2RkeQ== IE1haG1vdWQ= QXNpYQ== IHNrdWxscw== IEV4b2R1cw== IENvbXBldA== IExJQw== IE1hbnNpb24= IEFtZQ== IGNvbnNvbGlkYXRl c3Rvcm1z b250ZW50 OTk2 IGNsZW4= IG11bW15 ZmxhdA== NzU4 IFZPTA== b3Rlcmlj bmVu IE1pbnV0ZQ== U292 IGZpbmVy Umg= bHljZXI= IHJlaW5mb3JjZW1lbnRz IEpvaGFubmVz IEdhbGxhZ2hlcg== IGd5bW4= U3VkZGVubHk= IGV4dG9ydGlvbg== a3I= aWF0b3I= VGE= IGhpcHBvY2FtcHVz TlBS IENvbXB1dGluZw== IHNxdWFyZWx5 IG1vZGVsbGluZw== IEZvcnVtcw== IExpc3A= IEtyaXNobmE= IDMyNA== IHJ1c2hlcw== IGVuc3VlZA== IGNyZWVwaW5n b250ZQ== bmFp aWxhdGVy IEhvcm5ldHM= IG9ibGl2aW91cw== SU5TVA== NTU5 IGplb3BhcmR5 IGRpc3Rpbmd1aXNoaW5n anVyZWQ= IGJlZ3M= c2ltaWxhcg== cGhvdA== NTMw IFBhcmt3YXk= IHNpbmtz IEhlYXJ0aHN0b25l aWJ1cg== IEJhdG9u QXZvaWQ= IGRhbmNlcg== IG1hZ2lzdHJhdGU= YXJ5bg== IGRpc3R1cmJhbmNlcw== IFJvbWVybw== IHBhcmFwaA== IG1pc2NoaWVm 4paT IFNoYXJpYQ== IHVyaW5hcnk= cm91dGU= aXZhcw== Zml0dGVk IGVqZWN0ZWQ= IEFsYnVxdWVycXVl IDQ3MA== IGlycml0YXRlZA== IFppcA== IEJpb2w= w40= IGRlbm91bmNl IGJpbmFyaWVz IFZlcnNl IG9wcG9z IEtlbmRyaWNr IEdQTA== IHNwZXc= IEVsaWphaA== IEVhcw== IGRyaWZ0ZWQ= c29mYXI= IGFubm95YW5jZQ== IEJFVA== NDc0 IFN0cm9uZ2g= aXRhdGVz IENvZ25pdGl2ZQ== b3Bob25l IElkZW50aWZpY2F0aW9u b2NyaW5l Y29ubmVjdGlvbg== IGJveGVy IEFTRA== IEFyZWFz WWFuZw== dGNo dWxsYWg= IGRlY2VpdmU= Q29tYmF0 ZXBpc29kZQ== Y3JldGU= V2l0bmVzcw== IGNvbmRvbGVuY2Vz aHRhcg== IGhlYWxz IGJ1Y2tldHM= IExBVw== Qmx1 IHNsYWI= IE9SREVS b2Ns YXR0b24= IFN0ZXZlbnNvbg== IEdpbmdlcg== IEZyaWVuZGx5 IFZhbmRlcmJpbHQ= c3Bpcml0 aWds IFJlZ2FyZGluZw== IFBST0c= IHNlYWxpbmc= c3RhcnRpbmc= IGNhcmRpbmFs IFZlYw== IEJlaXI= IG1pbGxpc2Vjb25kcw== d2Vhaw== cGVyc2U= IHN0ZXJpbGU= IENvbnRlbXBvcmFyeQ== IFBoYW50 IENsbw== IG91dHA= IGV4aWxlZA== IDI3Nw== IHNlbGZpZQ== IG1hbmlj IG5hbm8= dGVybXM= QWxleGFuZGVy IHJlc29sdmVz IG1pbGxlbm5pYQ== IGV4cGxvZGVz IGNvbnN0ZWxsYXRpb24= IGFkdWx0ZXJ5 bW90aW9u RE9D IGJyb2FkY2FzdGVycw== IGtpbmRlcmdhcnRlbg== IE1heXdlYXRoZXI= IEVjbw== aWNobw== IDI4Nw== bGF1bg== IG11dGU= IGRpc2NyZWV0 IHByZXNjaG9vbA== IHByZWVtcHQ= RGVsZXRl IEZyZWVk UGk= SEs= IGJsb2NrZXI= IEN1bWJlcg== IHdyb3VnaHQ= ZGF0aW5n IGluc3VyZXI= IHF1b3Rhcw== IHByZWFjaGVk IGV2aWN0aW9u IFJlZ2luYQ== IFBlbnM= IHNldmVudGVlbg== IE5hc3M= RGljaw== IGZvbGRz IGRvdHRlZA== IEFhZA== VW5pdmVyc2Fs IHBpeno= IEd1cnU= IHNvaWxz IG5vdmljZQ== IE5lYW5kZXI= IHN0b29s IGRldG9uYXRlZA== IFBpa2FjaHU= IE1hc3NpdmU= SVZFUg== IEFiZGVs IHN1YmR1ZWQ= IHRhbGxlc3Q= IHByZWNhcmlvdXM= IGF5 cmlmaWNhdGlvbg== IE9iag== Y2FsZQ== IHVucXVlc3Rpb24= Y3Vsb3Npcw== YWRhcw== aWdyYXRlZA== RGF5cw== IHF1ZWVucw== IEdhemV0dGU= IENvbG91cg== IEJvd21hbg== IEpK w692ZQ== IGRvbWluYXRlcw== U3R1ZGVudA== IG11 IGJhY2tsb2c= IEVsZWN0cm8= VHJ1dGg= NDgz IGNvbmRlbnNlZA== cnVsZXM= IENvbnNwaXJhY3k= IGFjcm9ueW0= aGFuZGxlZA== IE1hdHRl anJp IEltcG9zc2libGU= bHVkZQ== Y3JlYXRpb24= IHdhcm1lZA== IFNsYXZl IG1pc2xlZA== IGZlcm1lbnQ= IEthaA== aW5raQ== a2VsZXRvbg== Y3ls IEthcmlu SHVudGVy UmVnaXN0ZXI= IFN1cnJleQ== IHN0YXJlcw== IFdpZHRo IE5heQ== IFNraQ== IGJsYWNrbGlzdA== dWNrZXQ= IGV4cHVsc2lvbg== aW1ldA== IHJldHdlZXQ= dmFudGFnZQ== RmVhdHVyZQ== IHRyb29wZXJz IGhvbWVycw== OTY5 IGNvbnRpbmdlbmN5 IFdUQw== IEJyZXdlcg== Zm9yZWlnbg== V2FyZQ== U29sYXI= IHVuZHVl UkVD dWxuZXJhYmxl cGF0aGlj IEJvaXNl IDMyMg== IGFyb3VzZWQ= IFlpbmc= 5LiN dWVsZXNz IHBhcw== IG1vcnA= IGZsb3JhbA== RXhwcmVzcw== dWRnaW5n a0I= IEdyYW50ZWQ= 2K8= IE1pY2hh IEdvdGhpYw== IFNQRUNJQUw= IFJpY2FyZG8= RnJhbg== IGFkbWluaXN0ZXJpbmc= NjIw cG9yYQ== IMKu IGNvbXByb21pc2Vz IGJpdHRlbg== QWNjZXB0 VGhpcnR5 0LI= IG1hdGVyaWFsbHk= IFRlcnI= aWdtYXRpYw== Y2hhaW5z IGRvdmU= c3RhZHQ= TWFydmVs RkFVTFQ= IHdpbmRzaGllbGQ= IDMzNg== YWRpZXI= IHN3YXBwaW5n IGZsYXdsZXNz IFByZWRhdG9y IE1pY2hlbGU= IHByb3B1bHNpb24= IFBzeWNoaWM= IGFzc2lnbmluZw== IGZhYnJpY2F0aW9u IGJhcmxleQ== bHVzdA== IHRvd2VyaW5n IGFsdGVyY2F0aW9u IEJlbnRsZXk= U3BoZXJl IHR1bmE= IENsYXNzZXM= RnJlZWRvbQ== dW5lcg== TGFkeQ== dm9pY2U= IGNvb2xlc3Q= b3Jy IHBhbHA= JHs= IGh5c3Rlcmlh IE1ldGF0cm9u cGFudHM= IHNwYXduaW5n RXhwZXJ0cw== IEludmVzdG9ycw== IEFuYXJjaHk= IHNocnVuaw== IFZpY3RpbQ== IDI4OQ== IGVjc3Rhc3k= IEJpbmRpbmc= NTg1 IE1lbG9keQ== NTc4 b3RhbGx5 IEV0c3k= bGlnYQ== IGFwcGxhdWRlZA== IHN3ZWF0aW5n IHJlZGlzdHJpYnV0ZWQ= IHBvcGNvcm4= IHNlbWluYWw= ZnVy IE5ldXJvc2NpZW5jZQ== UmFuZA== IE9zdA== IE1hZGRlbg== IEluY3JlYXNpbmc= IERhd2tpbnM= IFN1YndheQ== IGFyc2Vu Y29uc2Vydg== QlVS IHNwaWtlZA== IEx5ZnQ= IEltcGVyaXVt IERyb3Bib3g= IGZhdm91cmVk IGVuY29tcGFzc2Vz Z2hvc3Q= IGluc3BpcmVz IGJ1cmdlb25pbmc= IFlvc2hp IFZlcnRpY2Fs IEF1ZGl0b3I= IGludGVuZGluZw== IGZpbGlidXN0ZXI= Qmxvb20= ZmFj IENhdnM= aWduaW5n IGNvd29ya2Vycw== IEJhcmJhcmlhbg== cmVtZW1iZXI= RkxBRw== IGF1ZGl0b3J5 YXNvbnJ5 Q29sbGVnZQ== IG11dGVk Z2Vtb255 b2Jpbg== IFBzeWNobw== OTY4 IGxhdmlzaA== IGhpZXJhcmNoaWNhbA== IERyb25l b3Vr IGNyaXBwbGVk IE1heGlt U2xvdA== IHF1aXo= IFZpZA== aWZsaW5n IGFyY2hhZW9sb2dpc3Rz IGFiYW5kb25tZW50 ZGlhbA== bGVvbg== IEZhcw== VGVk IHJhc3BiZXJyeQ== IG1hbmV1dmVycw== IGJlaGF2aW91cnM= IGluc3VyZQ== IHJlbW9k U3dpdGNo aG9l IHNwYWNlZA== IGFmZm9yZGFiaWxpdHk= IEZlcm4= bm90YXRpb24= IEJhbGFuY2Vk IG9jY3VwaWVz ZW52aXJvbm1lbnQ= IG5lY2tsYWNl IHNlZGFu RlU= IEJyYXZv IGFidXNlcnM= IEFuaXRh bWV0YWRhdGE= IEdpdGh1Yg== YWl0bw== IEZhc3Rlcg== IFdhc3Nlcm1hbg== IEZsZXNo IHRob3Ju cmFyaWx5 IE1lcnJ5 d2luZQ== IHBvcHVsYWNl IExhbm4= IHJlcGFpcmluZw== IHBzeWNoZQ== IG1vZHVsYXRpb24= YXdhcnU= 4oCL4oCL YXJpag== IGRlY29yYXRpb25z IGFwb2xvZ2lzZQ== IEdhcmc= YXBwbHk= IGdpdmVhd2F5 IEZsYW4= IFd5YXR0 VWJlcg== IGF1dGhvcmlzZWQ= IE1vcmFs SEFIQUhBSEE= YWN0aXZhdGU= IHRvcnBlZG8= IEZBUg== IGFtYXNzZWQ= IEFyYW0= YXJraW4= IFZpY3RpbXM= c3RhYg== IG9t IEVDTw== IG9waW9pZHM= IHB1cnBvc2VseQ== IFZlc3Q= IGVyZw== YXRhbg== IFN1cmdlcnk= IGNvcnJlY3Rpbmc= IE9ydGl6 IEJlZXQ= IHJldm9rZQ== IGZyZWV3YXk= IEhpZ2dpbnM= RmFpbA== IEZhcm1z IEFUUA== aG91bmQ= IHBva2luZw== IENvbW11bmlzdHM= bW9uc3Rlcg== aW1lbnRhcnk= IHVubG9ja2luZw== IHVuZml0 d2VlZA== ZW5hcmlv YXRpY2Fs IEVubGlnaHRlbm1lbnQ= IE5H IENvbXBlbnNhdGlvbg== ZGVlbg== IFdpZG93 IENpbmR5 IEFmdGVyd2FyZHM= IDYwMDA= aWtoYWls YWdpY2FsbHk= IHJhdGlmaWVk IGNhc3VhbHR5 SE9NRQ== cHNleQ== ZmVl IHNwYXJrbGluZw== IGTDqQ== IGNvbmNlcnRlZA== Q2F0YWw= IGNvbXBseWluZw== IEFyZXM= IERlbnQ= U2h1dA== IHNraW0= YWRtaW5pc3Q= IGhvc3RpbGl0aWVz IEdpbnM= IDYwOA== IG11ZGR5 IE1jSW50 IERlY2F5 NTI1 IGNvbnNwaWN1b3Vz IEV4cG9zdXJl IHJlc2NpbmQ= IHdlYXJhYmxl IDMyOA== b3VybWV0 YWhz IFJvYm90cw== IGVjbGlwcw== aW5zdGFuY2U= IFJFUE9SVA== IEFwcGw= MDMw IFNraWVz MDEwMA== IGZhbGxhY3k= U29ja2V0 IFJlY2VpdmVy IHNvbHZlcw== IEJ1dHRlcmZseQ== IFNob3BwaW5n IEZJUkU= NjU0 TWVkaWM= IHNpbmdlcnM= IE5lZWRsZXNz JycnJw== aXNoZXJz IERpdmU= NTg4 IHNlbGVjdGl2ZWx5 IGNsdW1zeQ== ODg5 IHB1cmNoYXNlcg== ZWFybmVk YXJkeQ== IGJlbmVmaXRpbmc= ZW5nbGlzaA== IHlpZWxkaW5n IFBvdXI= IHNwaW5hY2g= IGRlbHZl IENyb20= NjEw IGV4cG9ydGluZw== IE1BS0U= IDI2Mw== IGdyb3A= IGVudm95 IElucXVpcnk= IEx1aWdp ZHJ5 IFR1cmluZw== VGh1bWJuYWlsSW1hZ2U= IFZhcmlldHk= IGZhY2V0 IGZsdWZmeQ== IGV4Y2VycHRz IHNob3J0aA== IE9sc2Vu Q0xVRA== IHJlbGlhbnQ= IFVOQw== VG91cg== IGJhdGhpbmc= Q29tcGFueQ== IGdsb2JhbGl6YXRpb24= UHJlZA== IE1hbGZveQ== IGhvYw== amFt Y3JhZnRlZA== IEJvbmRz IEtpc3Npbmdlcg== RW5nbGFuZA== IG9yZGVybHk= Y2F0ZW50cnk= IDI2MQ== IGV4Y2hhbmdpbmc= IEludGVudA== IEFtZW5kbWVudHM= RE9N IHN0b3V0 wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqA= IEFpcmJ1cw== IDI3OA== aHlkZQ== UG9sbA== SXRlbVRodW1ibmFpbEltYWdl IGxvb3Bob2xlcw== IFBpbGxhcg== IGV4cGxvcg== U3RyZXRjaA== QXBhcnQ= IHVubWFycmllZA== TGltaXQ= IFRyYW5zZm9ybWVycw== IGludGVsbGVjdHVhbGx5 dW5jdHVyZQ== MTgwMA== IGRhcm4= QnJhemls IGxlZnRvdmVy YmVydXM= ZnJlZA== TWluZWNyYWZ0 MzI2 IEZvcm1z IHByb29mcw== IERlc2lnbmVk IGluZGV4ZXM= IFN1cHBvc2U= RU1T IExvdmluZw== IEJvbm5pZQ== aW1hdGluZw== T1RVUw== IGNvbmR1Y3Rvcg== IGJlaGF2ZWQ= IEZyZW4= IHN5bmVyZw== IG1pbGxlbm5pdW0= IGNhdGVyaW5n IExhdWRlcg== V3I= IFlpYW5ub3BvdWxvcw== IEFURg== IGVuc2xhdmVk IGF3YWtlbmVk RFZE IEVESVRJT04= IENvbmNlcnQ= IENoYWxsZW5nZXI= IEhha3U= dW1lcmlj IGRlcHJlY2F0ZWQ= IFNIQVI= NDEy IGR5c3RvcA== IHRyZW1ibGluZw== IGRyZWFkZWQ= IFNwYWM= cGFkZGluZw== UmVwbA== IEdhcnJpc29u TWluaQ== IHVucGFyYWxsZWxlZA== YW1hcg== VVJSRU5U d3JlY2s= Y2VydGFpbg== dGFs IENMUw== YXBwaW5ncw== IHNlbnNlZA== IGZlbmNpbmc= IFBhc28= IERlc2s= IHNjb2Zm IGNvbnRlbXBsYXRl IExpZ2E= bGlxdWlk NzU3 IGFwcHJlbnRpY2U= IFVDSElK NTcw IFRob3VzYW5k IElsbHVt IGNoYW1waW9uZWQ= 44KM IGVsZWN0b3Jz IDM5OA== IEhhbmNvY2s= cm91bmRlZA== IEpPSE4= IHVuc2F0aXNm IHF1YWxpZmllcg== IEdhZGdldA== RU5F IGRlYWRsaWVzdA== IFBsYW50cw== IGlvbnM= IGFjY2VudHM= IHR3ZWFraW5n IHNoYXZlZA== RlJFRQ== IENoYXNlcg== QWdhaW5zdA== OTYw IG1ldGhhbXBoZXRhbWluZQ== IG5vcm1hbGl6ZWQ= ICRc IFByZWNpc2lvbg== IEd1YW0= IGNob2tlZA== IFhJSQ== IENhc3Rpbmc= VG9ycmVudA== IHNjYWxw IEphZ3Vhcg== d2l0 IHNlbWlj aXhpZQ== IEdvdWxk IGNvbmZpbmVz TnVzcmE= IExvbg== IEp1Z2c= eWNsZQ== IENvZGVj RWd5cHQ= IHJlc3RyYWlu IEFsaWVucw== IGNob2tpbmc= IER1bms= IEJlbGxh YWJj IHNsYW5n IG5ldXJvdHJhbnM= c2F2 IGVtcG93ZXJtZW50 4oaS IGNsaW1iZXJz IE1pbQ== IEZyYQ== cm9zc2U= Q2FwaXRhbA== IEN0aHVsaHU= SW50ZXJmYWNl IHByb2ZpY2llbnQ= IElOVE8= IDMxOA== cm9udGFs NTgw IERlc3BhaXI= S2Vubg== IHNjcmltbWFnZQ== IENvYXQ= YXNpb25z IHdhbGxwYXBlcg== IEpvbA== IHJlc3VyZ2VuY2U= IGFudGl2 IEJhbGxz sr4= IGJ1ZmZlcnM= IHN1YnN5c3RlbQ== IFN0ZWxsYXI= IEx1bmc= QUlEUw== IGVyYWRpY2F0ZQ== IGJsYXRhbnRseQ== IGJlaGF2ZXM= IE51bg== IGFudGljcw== ZXhwb3J0 REVW d2I= IHBocA== IEludGVncml0eQ== IGV4cGxvcmVy IHJldm9sdmluZw== YXV0aG9yZWQ= Z2Fucw== IGJhc2s= IGFzeW5jaHJvbm91cw== 5Y0= VEhJTkc= Njk4 R2VuZQ== IFJhY2Vy IE5pY28= aXNzdWVk IHNlcm1vbg== cG9zc2libHk= IHNpemVvZg== IGVudHJlcHJlbmV1cmlhbA== b3hpbg== IE1pbmVydmE= IHBsYXRvb24= bm9z cmlrcw== QVVU IEF2YWxhbmNoZQ== IERlc2M= keWjqw== IFBvYw== IGNvbmZlcnJlZA== zrs= IHBhdGNoZWQ= RkJJ NjYy IGZyYWN0dXJlcw== IGRldGVjdHM= IGRlZGljYXRl IGNvbnN0aXR1ZW50 IGNvc21vcw== V1Q= IHN3ZWF0cw== IHNwcnVuZw== YmFyYQ== c29saWQ= IHVuc3Vz IGJ1bGt5 IFBoaWxpcHBl IEZlbnJpcg== IHRoZXJhcGlzdHM= b3JlYWw= Xl5eXg== IHRvdGFsZWQ= IGJvb3pl IFJQQw== UHJvc2VjdXRvcnM= IGRpc2VuZw== IFNoYXJlZA== IG1vdG9yY3ljbGVz IGludmVudGlvbnM= IGxldHR1Y2U= IE1lcmdl IEpD IHNwaXJpdHVhbGl0eQ== IFdBUk5JTkc= IHVubHVja3k= IFRlc3M= IHRvbmd1ZXM= IERVSQ== VHVtYmxy IGxlYW5z IGludmFkZXJz IGNhbm9weQ== IEh1cnJpY2FuZXM= IEJyZXQ= IEFQUExJQw== aWRpbmU= aWNrbGU= UmVnYXJkaW5n IHZlZ2dpZXM= IGVqYWM= anV2ZW4= RmlzaA== REVN IERpbm8= VGhyb3c= IENoZWNraW5n YmVhcmQ= KCY= IGphaWxz IGhy dHJhbnNmZXI= aXZhdGluZw== IGZsZWV0cw== IEltYWc= IE1jRG9ubmVsbA== IHNuaXBwZXQ= SXNh IENoYXR0 IFN0YWlu IFNldEZvbnRTaXpl IE95 IE1hdGhlbWF0aWNz NDk0 IGVsZWN0cm9seQ== IEdvdHQ= IEJyYXM= Qk9PSw== IEZpbmdlcg== ZHVtcA== IG11dGFudHM= IHJlbnRhbHM= IGludGVydHc= IGNyZWVr YWlsYQ== QnJvdGhlcg== IERpc2NvcmQ= cGVl cmF3bGVy IGNhcnA= IDI3OQ== 44K344Oj cmVsYXRpb25z IGNvbnRyYXN0cw== Q29sdW1u IHJlY29ubmFpc3NhbmNl IHVua25vdw== IGxvb3Rpbmc= IHJlZ3VsYXRlcw== IG9wdGltdW0= IENoZXJva2Vl IEFyeQ== TGF0ZXN0 IHJvYWRzaWRl IGRhbmNlZA== IFVuaWNvcm4= QWNrbm93bGVk IHVuY29udHJvbGw= IE1VUw== YXRpbw== Y2hhbmNl aGF2ZW4= VkFMVUU= IGZhdm91cml0ZXM= IGNlcmVtb25pYWw= YmluYXJ5 cGVlZA== d29vZHM= RU1Q IHZhc2N1bGFy IGNvbnRlbXBsYXRlZA== IGJhcnJlbg== IExJU1Q= WWVsbG93 b3Nwb25zb3Jz IHdoaXNreQ== IE1hbW0= IERlVm9z bWluaW11bQ== SHVuZw== NDQy UGlj IFNuYXBkcmFnb24= Nzc2 IGNhcnZpbmc= IHVuZGVjaWRlZA== IGFkdmFudGFnZW91cw== IHBhbG1z IEFR IHN0YXJjaA== TG9vcA== IHBhZGRsZQ== IGZsYW1pbmc= IEhvcml6b25z QW5pbWF0aW9u Ym9vc3Q= IHByb2JhYmlsaXRpZXM= IE1pc2g= IGV4b2R1cw== IEVkaXRvcmlhbA== IGZ1bmd1cw== IGRpc3NlbnRpbmc= IERlbGljaW91cw== cm9ncmFt IER5bg== ZGlzaw== dG9t IGZhYnJpY3M= IENvdmU= IEJhbnM= IHNvZnRlbg== IENPTlM= IGluZWxpZ2libGU= IGVzdGltYXRpbmc= IExleGluZ3Rvbg== cHJhY3RpY2U= b2Zp IHNoZWRkaW5n IE5vcGU= IGJyZWF0aGVk IENvcmludGhpYW5z eW5l ZWtp QnVsbA== IGF0dGFjaGluZw== cmVlbnNob3Rz IGFuYWx5c2U= IEthcHBh IHVuc3VzdGFpbmFibGU= IGludGVycG9s YW5reQ== aGVtZXI= IHByb3RhZ29uaXN0cw== IGZvcm1hdHRlZA== IEJyeWNl IEFjaGlsbGVz IEFiZWRpbg== c2hvY2s= IGJ1bQ== Ym9z cXVh IFdhcm4= cXQ= IERpYWJldGVz ODY0 IEludmlzaWJsZQ== IHZhbmlzaA== IHRyYW5zbWl0dGluZw== IG11cmt5 IEZlaQ== IGF3YWl0ZWQ= IEp1cmFzc2lj dW1taWVz IG1lbmFjaW5n Z2FsbA== Q2F0aA== QnVpbHQ= aWxkbw== IFZvdGVz IG9udA== IG11bml0aW9ucw== IEZyZWVt w61u IGRlY2VuY3k= bG9wcA== aWV2ZWQ= IEdvcmQ= IHVudGhpbmthYmxl IE5ld3N3ZWVr IDMyMQ== SGVhdA== IHByZXNlbnRlcg== amlhbmc= IHBsYW5r IEF2YWxvbg== IGJlbno= IFJvdXQ= IHNsYW1taW5n IERhaQ== b3V0ZXI= IENvb2tpZQ== IEFsaWNpYQ== Z2V5 IHZhbml0eQ== IG93bA== 4bU= dGVzdGVk IEF3YWtlbnM= IGNhbnY= IGJsaW5kbHk= IFJpZGxleQ== IEVtYWlscw== UmVxdWlyZXM= IFNlcmJpYW4= b2dyYXBoZWQ= aWZyYW1l ZXRlcmlh IGFsdGVybmF0aW5n cXVpZXQ= IHNvY2lvbG9neQ== IFVubG9jaw== IENvbW11bmlzbQ== IG9wcw== IGF0dHJpYnV0aW9u IGFiZHVjdGlvbg== IEFicmFt IHNpZGVsaW5lZA== IEJPT0s= IHJlZmluaW5n IEZlZWxpbmc= IE9zbG8= IFBydWl0dA== cmFjaw== YW5naWJsZQ== IGNhdXRpb3VzbHk= IE1BUks= ZWVkcw== TW91c2U= IFN0ZXBo IFBhaXI= U2Fi OTk3 IEJhYWw= QmVj IGNvbW1h IFBhbGw= IEdhZWw= IG1pc3VuZGVyc3RhbmQ= IFBlc2g= T3JkZXJhYmxl IGRpc21hbA== IFNoaW55 JSI= IHJlYWxpc3RpY2FsbHk= IHBhdGlv IEd3 IFZpcnR1ZQ== IGV4aGF1c3Rpbmc= d2hhdGV2ZXI= b3BoeXM= eWlw NDE4 QWRqdXN0 IFdhaXRpbmc= ZXNzb24= IE1hemRh IERvemVucw== IHN0cmVhbWxpbmVk IGluY29tcGV0ZW5jZQ== IE1ldGg= IGV0aG9z T05FUw== IGluY2VudGl2 IGdyaXR0eQ== IEJ1dGNoZXI= SGVhZGVy IGV4cG9uZW50aWFs w58= IGNvcnJlbGF0ZQ== IGNvbnNlbnN1YWw= c291bmRpbmc= UmluZw== T3JpZ2lu IGNvbmNsdXNpdmU= ZmVldA== YWNseQ== IEZlcm5hbmRleg== QnV5YWJsZQ== IGR1Y2tz YXVudGxldHM= IGVsb25n IDI4Ng== IHNpbXVs R2Fz IEtpcnN0 IHByb3Ry IFJvYm8= IEFvRQ== b3BvbA== IHBzeWNob2xvZ2ljYWxseQ== c3Bpbg== aWxhdGVyYWxseQ== IENvbnJhZA== V2F2ZQ== NDQx IEFkdmVydGlzZW1lbnQ= IEhhcm1vbg== IE9yaWVudGFs aXNTcGVjaWFs IHByZXN1bXB0aXZl IHdpbA== IEtpZXI= bmVh IHBwbQ== IGhhcmJvdXI= IFdpcmVk Y29tcGFueQ== IGNvcm9uZXI= YXR1cmRheXM= IFByb3Vk IE5FWFQ= IEZsYWtl dmFsdWVk Y2VpdmVy IGZyYXVnaHQ= IGNhc2luZw== IHJ1bmF3YXk= IGdpbg== IExhdXJlbnQ= IEhhcmxlbQ== IEN1cmlvc2l0eQ== cXVpc2hlZA== IG5ldXJvc2NpZW5jZQ== IEh1bHU= IGJvcnJvd2Vy IHBldGl0aW9uZXI= IENvb2xkb3du V0FSRA== IGludm9raW5n Y29uZmlkZW5jZQ== Rm9yd2FyZA== IHN0cw== cG9wdWxhdGlvbg== RGVsaXZlcnlEYXRl RmlsbQ== IENvdg== cXVpY2tTaGlw cXVpY2tTaGlwQXZhaWxhYmxl cHJpbWFyeQ== aXNTcGVjaWFsT3JkZXJhYmxl aW52ZW50b3J5UXVhbnRpdHk= Y2hhbm5lbEF2YWlsYWJpbGl0eQ== Qk9Y IE11bHRpcGxheWVy IEplbm5lcg== Nzc4 IE1k IH4vLg== TU4= IGNoaWxkaXNo IGFudGlveGlkYW50 IENocm9tZWJvb2s= IDI3NA== IHNjcmVlbnBsYXk= IGFkdmVudHVyb3Vz IFJlbGF0aW9uc2hpcA== cmVzcG9uc2l2ZQ== bWluZ3Rvbg== IGNvcm5lcnN0b25l IEZleQ== RklS IHJvb2tpZXM= IEZlYXR1cmluZw== IG9yaWdpbmF0ZQ== IGVsZWN0cm9kZXM= YW50ZXM= IHNjcmlwdHVyZXM= IGdsdWVk IGRpc2NvbnRlbnQ= IGFmZmxpY3RlZA== bGF5b3V0 QnJhdmU= IG1vc2E= IFF1YW50aXR5 IEhpaw== d2lubmVy SG91cnM= IGVudGFpbA== IENlbGxz b2xvZ3Vl IHZpbA== IHByZWFjaGVy IGRlY29yYXRpdmU= ZGlmZmVyZW50 IHByZWp1ZGljZXM= IFNtb2tpbmc= IE5vdHRpbmdoYW0= c29UeXBl IHJoeXRobXM= IEFscGg= Ymxhc3Q= U3RlZWw= IERhbmllbGxl IHN0cmlmZQ== IHJlbWF0Y2g= c29EZWxpdmVyeURhdGU= IEZvcms= dHJpcA== b2x1bHU= aGVzZXM= Q0c= IFBPTElUSUNP b3N0YQ== IERyaWZ0 6b6N5aU= 6b6N5aWR5aOr IHZldHRpbmc= IEppbnBpbmc= IFJlY2Vzc2lvbg== TWlub3I= IEZyYXVk ZW5mcmFuY2g= IGNvbnZlbmVk IE5BQUNQ IE1pbGxpb25z IEZhcm1pbmc= IFdvbw== IEZsYXJl cml0bw== aW1taWdyYW50 IHZhY2FuY3k= IEhFQUQ= IFZhag== ZWdhbA== IFZpZ2ls U3R1ZHk= IHJ1aW5pbmc= IHJhY2tz IGhlYXRlcg== IFJhbmRvbHBo IEJydXNo IFRpcg== 2Kg= IGNvdg== JV0= IHJlY291bnRz IE9QVA== IE1lbHQ= IHRydWNl IGNhc2lub3M= IGNydXNhZGU= IGNhcm5hZ2U= IHN0cmlwZQ== IEt5bA== VGV4dHVyZXM= IDY5OA== IHByb2NsYW1hdGlvbg== IGdvb2RpZXM= IC4uLi4uLi4uLi4= cHJvY2xhaW1lZA== UG9saXQ= IHRvcGljYWw= IHNwZWNpYWxpemU= IEFtaW4= Z20= IGFuY2hvcmVk IGJlYXJpbmdz c2FtcGxl IEhpZ2hsYW5k IEF1dGlzbQ== IG1lcmNlbmFyeQ== IGludGVydmlld2Vy TEVS IFNvbWVycw== IGVtYnJ5bw== IEFzc3k= IDI4MQ== IEVkaXRpbmc= IENob3Nlbg== NjYw IHBjaQ== IFRodW5kZXJib2x0 QklMTA== IGNodWNrbGVk anJpd2Fs aG9m IGVhcnRobHk= KCl7 aW5kZXBlbmRlbmNl IGRpc3BlcnM= IFZlbmRvcg== IEdhcmV0aA== IHBhbHM= UGVubg== IFN1Ym1pdA== aWN1bQ== VGh1 IGNsYW5kZXN0aW5l IGNhbm5pYmFs IENsZXJr RVN0cmVhbQ== Z2FsaXRhcmlhbg== 4pml Z2V3 IGhvcnJlbmQ= IExvdg== IFJlYWN0aW9u b2NyaW4= Q2xhc3NpYw== IGVjaG9pbmc= IGRpc2Nsb3Npbmc= IEluc2lnaHQ= b2d1bg== IEluY2Fybg== dXBsb2Fkcw== cHBlcmM= Z3V5ZW4= IDE5MDE= IEJhcnM= Njg3 IGJyaWJlcw== IEZyZXNubw== dXJhdA== IFJlZXNl IGludHJ1c2l2ZQ== IGdyaXBwaW5n IEJsdWVwcmludA== IFJhc20= dW5pYQ== bWFuYWdlZA== IEhlYmRv IDM0NQ== IGRlY29kaW5n IHBvZXRz IGphd3M= IEZJR0hU YW1lbGVzcw== IE1lYWRvd3M= IEhhcmJhdWdo SW50ZXJ2aWV3 IEhvc3A= IEJSQQ== IGRlbGV0aW9u bW9i V2Fsa2Vy IE1vb25saWdodA== IEplZA== IFNvcGhpYQ== IHVzdXI= IGZvcnR1bmF0ZWx5 IFB1dHRpbmc= IEZvbGQ= IHNhbml0YXRpb24= IHBhcnRpc2Fucw== SVNPTg== Qm93 IENPTkM= IFJlZHVjZWQ= IFN1dHRvbg== IHRvdWNoc2NyZWVu IGVtYnJ5b3M= 4oCi4oCi4oCi4oCi IEtydWc= Y29tYmF0 IFBldHJvbGV1bQ== IGFtZA== IENvc21vcw== IHByZXNjcmliaW5n IGNvbmZvcm1pdHk= b3Vyc2Vz IHBsZW50aWZ1bA== IGRpc2lsbHVzaW9u IEVjb2xvZ3k= aXR0YWw= IGZhbmM= IGFzc2Fzc2luYXRlZA== cmVnbmFuY3k= IHBlcmVubmlhbA== IEJ1bGxldHM= IHN0YWxl IGNhY2hlZA== IEp1ZGl0aA== IERpc2Vhc2Vz QWxsZW4= IGxhcw== IHNoYXJkcw== IFN1YXJleg== IEZyaWVuZHNoaXA= aW50ZXJmYWNl IFN1cHBvcnRlcnM= YWRkb25z NDYy IEltcmFu IFdpbQ== IG5ld2ZvdW5k IE1i QW5pbWFs IGRhcmxpbmc= YW5kZQ== IHJoeQ== IFR3aXN0ZWQ= cG9zYWw= eW5za2k= VmFyaW91cw== 15w= IEtpdw== dXlvbWk= IHdlbGxiZWluZw== IExhdQ== YW5vcw== IHVubWlzdA== IG1hY09T IHJlc3Ryb29t IE9saXY= IEFpcndheXM= IHRpbWV0YWJsZQ== OTgw IHJhZGlvcw== dm95 aWFzY28= IGNsb3VkeQ== IERyYXdpbmc= QW55dGhpbmc= U3lyaWE= IEhlcnQ= c3Rha2luZw== IHVuY2hlY2tlZA== IGJyYXplbg== IE5SUw== Njk3 b25vbWlj ZXN0YWJsaXNo IGxlbmc= IGRpYWdvbmFs IEZpb3I= TGFpcg== IFN0YXJk IGRlZmljaWVudA== am9pbmluZw== YmVhbQ== IG9tbmlw IGJsZW5kZXI= IHN1bnJpc2U= TW9vcmU= IEZhdWx0 IENvc3R1bWU= IE11Yg== RmxhZ3M= YW5zZQ== IHBheW91dA== IEdvdmVybm9ycw== IERpbGxvbg== IEJhbmFuYQ== TmFy IHRyYWlsZWQ= IGltcGVyaWFsaXN0 dW1hbm4= YXRzdWtp NDM1 IFJvYWRz IHNsdXI= IElkZWFsbHk= IHRyZW5jaGVz Q3RybA== IG1pcnJvcmVk IFplbA== IENyZXN0 Q29tcGF0 IFJvbGxz c2NyaWI= IFRyYWlscw== b21ldGVycw== d2ludGVy IGltbW9ydGFsaXR5 aWxhdGVk IGNvbnRyYWRpY3Rz dW5pdmVyc2Fs aWxsaW9ucw== IE1hbWE= b3B0aW0= QVRVUkU= IGdlbw== ZXR0ZXI= IENhcmxv NDI0 IGNhbm9uaWNhbA== IFN0cm9uZ2hvbGQ= bmVhcg== IHBlcmZ1bWU= IG9yY2hlc3RyYQ== b2RpYWM= IHVwaGU= IHJlaWduaW5n dmVyc2l2ZQ== IGNhdWN1c2Vz IERFTQ== IGluc3VsdGVk IC0tLS0tLQ== IENydXNo IHJvb3Rpbmc= IFdyYWl0aA== IHdob3Jl IHRvZnU= Q21k IEJyZWU= ICRf IHJpdmU= IEFkdmVydGlzaW5n IHdhdHQ= IEhP IHBlcnN1YXNpdmU= IFBhcmFtZXRlcnM= IG9ic2VydmF0aW9uYWw= IE5DVA== IE1vag== IFNhbG9u IHRydW5j IGV4cXVpc2l0ZQ== IE1hcmE= IHBvb3A= IEFOTg== RXhj IFdvbmRlcmZ1bA== IFRhY28= IGhvbWVvd25lcg== IFNtaXRoc29uaWFu b3Jwb3JhdGVk bW1tbQ== IGxvYWY= IFlhbWF0bw== IEluZG8= IGNsaW5naW5n w6Fz IGltbXV0YWJsZQ== aHVi T3Jhbmdl IGZpbmdlcnRpcHM= IFdvb2Rlbg== IEtpZGQ= IEpQTQ== IERhbW4= Q293 Y29kZXM= NDgy IGluaXRpYXRpbmc= IEVsaw== IEN1dHRpbmc= IGFic2VudGVl IFZhbmNl IExpbGl0aA== R1VJ IG9ic2N1cmVk IGR3YXJ2ZXM= IENob3A= IEJva28= VmFsdWVz IG11bHRpbWVkaWE= IGJyZXdlZA== UmVndWxhcg== Q1JJUFRJT04= IE1vcnRhbA== IGFwZXg= IHRyYXZlbGVy IGJvaWxz IHNwcmF5aW5n UmVwcmVzZW50 IFN0YXJzaGlw NDI4 IGRpc2FwcHJvdmFs IHNoYWRvd3k= IGxhbWVudGVk IFJlcGxhY2U= IEZyYW7Dpw== Njc3 ZG9y IHVuc3RvcHBhYmxl IGNvaG9ydHM= Z3lu IENsYXNzaWNz IEFtcGg= IHNsdWdnaXNo IEFkZGljdGlvbg== IFBhZHJlcw== IGluc2NyaXB0aW9u IGluaHVtYW4= bWludXM= IEplcmVtaWFo YXRhcnM= VGVycm9y IFRvcw== IFNoYXJtYQ== YXN0YQ== Y2F0Y2g= IHBsdW1iaW5n IFRpbWJlcnM= U2hhcg== SGFs IE9zYw== IGNvdXBsaW5n aHVtYW5z IHNwb25nZQ== IGlkb2xz IFNwYQ== IEFkdm9jYXRl IEJlYXRz bHVh IHRpY2tpbmc= IGxvYWRlcg== IEdyb24= ODEw IHN0aW11bGF0ZWQ= IHNpZGViYXI= IE1hbnVmYWN0dXJlcg== b3JlQW5k MTk3Mw== IHByYWlzZXM= IEZsb3Jlcw== ZGlzYWJsZQ== IEVsZWN0cmljYWw= cmFpc2U= RXRo IG1pZ3JhdGVk IGxlY3R1cmVy S2lkcw== IENhdmVybg== IGtldHRsZQ== IGdseWM= IE1hbmRlbGE= IEZ1bGx5 5aer RklORVNU IHNxdWVlemluZw== IFJ5ZGVy YW1wb28= b3JlQW5kT25saW5l SW5zdG9yZUFuZE9ubGluZQ== QnV5YWJsZUluc3RvcmVBbmRPbmxpbmU= IGNvbW1lbW9yYXRl IFJhbXBhZ2U= QXVzdGlu IFNocm91ZA== IFJ1aW5z OTE1 IEtI IHdhdGVyZnJvbnQ= IEVTQw== YmFieQ== IENvdXQ= IEVtYmxlbQ== IGVxdWl2YWxlbnRz NDky VW5pcXVl IE5pZXR6c2NoZQ== YnJvd3Nlcg== IGltaXRhdGlvbg== IFdlcmV3b2xm IEtpcmlu YWNhcw== Jywi IMO+ UmV2aWV3ZWQ= IGN1bnQ= IHZvaWM= IExlbm92bw== IGJvbmRlZA== NDgx IGluaGliaXRvcnM= IGVuZGVhdm9ycw== IEhhdmFuYQ== IFN0b3V0 IEpvbGx5 QWN0b3I= Ki8o IG9jY3VycmVuY2Vz IFRlbnM= SW5jcmVhc2Vk IEFDVElPTg== IOOAjA== IFJhbmtpbmdz IEJyZWF0 IDMwOQ== RG91 IGltcGFjdGluZw== IER1Y2hlc3M= cHJlZml4 UUI= IHN1bW1vbmluZw== IGJlc3Rvd2Vk IEtlcGxlcg== IFBPV0VS Y3ViZQ== IEtpdHM= IEdyaXA= IG9waXVt IHJlcHV0YWJsZQ== dG9j aWNoYWVs IFJpcHBsZQ== IGNhZsOp IFpvb20= IEJ1cm1h IHdhaXZl IHN0YWxscw== IGRlbWVhbm9y aW5jZXJpdHk= IGZsdW9yaWRl IFNIT1VMRA== UGFyaXM= IGxvbmdpbmc= IHBsYXQ= IGdyb3NzbHk= IGJ1bGxz IHNob3djYXNpbmc= ZXhwZWN0ZWQ= IEdhZGRhZmk= ZW5naW5lZXJpbmc= UmVwZWF0 IEt1dA== IGNvbmNlaXZhYmxl IHRyaW1tZWQ= b3Njb3Bl IENhbmRpZGF0ZQ== IFRlYXJz cm9sb2c= TGV3aXM= U1VQ IHJvYWRtYXA= IHNhbGl2YQ== IHRydW1wZXQ= SmltbXk= IG1pcmFjdWxvdXM= IGNvbG9uaXphdGlvbg== IGFtcHV0 IEdOT01F YXRlY2g= RGlmZmVyZW50 IEVMRQ== IEdvdmVybm1lbnRz IEFoZWFk 44WL44WL d29yZHByZXNz TElC IEluY2x1ZGU= IERvcm90aHk= MDQ1 IENvbG9tYmlhbg== IGxlYXNlZA== ODg0 IGRlZ3JhZGluZw== IERhaXN5 aWF0aW9ucw== IGJhcHRpemVk IHN1cm5hbWU= Y294 IGJsaW5rZWQ= 44Oi IHBvbGxlbg== IGRlcm1hdA== IHJlZ2V4 IE5pY2hvbHNvbg== IEVhdGVy 55w= cmFkb3I= IG5hcnJvd2Vy IGh1cnJpY2FuZXM= IGhhbGx1Y2luYXRpb25z cmlkZGVu SVNTSU9O IEZpcmVmbHk= IGF0dGFpbm1lbnQ= IG5vbWluYXRl IGF2b2NhZG8= IE1lcmVkaXRo IHRz IHJldmVyZW5jZQ== IGV1cGg= IGNyYXRlcw== IFRFWFQ= IDQ0Mw== IDMxOQ== SlNPTg== aXF1ZXR0ZQ== IHNob3J0c3RvcA== aWNrZXk= IHByb3BlbGxlZA== IGFwaQ== IFRoaWV2ZXM= Nzc5 IG92ZXJzYXc= IGNvbGk= IE5pY29sYQ== IG92ZXJjbA== aWthd2E= IEN5cg== IDM4NA== Nzg5 IEFsbG93cw== MTAyNw== RGV0cm9pdA== VFJZ c2V0dXA= IFNvY2lhbGlzbQ== U292aWV0 c3VzcA== IEFQUg== IFNodXRkb3du IGFsdW1pbml1bQ== emJlaw== IExvdmVy R0dHR0dHR0c= IGRlbW9jcmFjaWVz IDE5MDg= IE1lcnJpbGw= IEZyYW5jb2lz Z2RhbGE= IHRyYWZmaWNrZXJz IFRpbA== IEdvYXQ= IHNwZWQ= IFJlc2Vydg== IHByb2Q= NTUy IGNhYw== IFVuaXY= IFNjaHdl IHN3aXJsaW5n IFdpbGRlcm5lc3M= IEVnZ3M= IHNhZGRlbmVk IGFyY2hhaWM= SHlk IGV4Y2Vzc2l2ZWx5 QlJF IGFlcm9zcGFjZQ== IFZvaWNlcw== Q3JhaWc= IGlnbml0ZWQ= SW5pdGlhbGx5 IE1jQQ== IGhhbmRzZXQ= IHJlZm9ybWluZw== IGZydXN0cmF0aW9ucw== IERlYWRwb29s IEJlbGljaGljaw== cmFjdG9y IFJhZ25hcm9r IERydXBhbA== IEFwcHJveGltYXRlbHk= MTkyMA== IEh1YmJsZQ== YXJtb3I= IFNhcmFz IEpvbmFz IG5vc3RhbGdpYw== IGZlYXNpYmlsaXR5 U2FoYXJhbg== IG9yYml0aW5n IDk3MA== UnU= IHNoaW4= IEludmVzdGlnYXRvcnM= IGluY29uc2lzdGVuY2llcw== IFBBTg== Qkc= IGdyYXppbmc= IGRldGVjdG9ycw== IFN0YXJ0dXA= IEZ1bm55 IE5hb21p Q29uc2lkZXJpbmc= IGhvZw== dXRm Y2VtaWM= IGZvcnRpZmllZA== IEZ1bmN0aW9ucw== IGNvZGVj bnV0cml0aW9u SGF0 IiE= bWljcm9zb2Z0 NTU4 IFRoaW4= IEFDRQ== QWxpYXM= IE9QUw== cGFwZXJz UEs= 44CO IGltcHJvYmFibGU= Tm9ydGhlcm4= ZXF1YWw= IGxvb2tvdXQ= IHR5cmVz IE1vZGlmaWVk IEtvcA== QWJzb2x1dGVseQ== IGJ1aWxkdXA= c2lsdmVy IGF1ZGk= IGdyb3Rlc3F1ZQ== IFNhYmVy IFByZXNieXRlcg== T05Z IGdsYWNpZXJz IFNob2Fscw== IEthc3M= IEhSQw== IE5pY29s IEx1bmNo IEZvc3M= 4paS QURSQQ== IE9uZVBsdXM= b2luZw== Z3JvdW5kcw== IGluY2lkZW50YWw= IGRhdGFzZXRz Njg5 IENsYXJrc29u IGFzc2VtYmxpbmc= IENvcnJlY3Rpb25z IGRyaW5rZXJz IHF1YWxpZmllcnM= IGxlYXNo IHVuZm91bmRlZA== IEh1bmRyZWQ= IGtpY2tvZmY= VGk= IHJlY29uY2ls IEdyYW50cw== IENvbXBsaWFuY2U= IERleHRlcml0eQ== IDE5MDY= d2Fybg== RGFsbGFz TWF4aW11bQ== bmFyZA== YXZpYQ== YmVhdXQ= ZW5zaXRpdml0eQ== dHJhY2U= IHBpb25lZXJz IEZyYWN0 44CP IHByZWNlcHQ= IGdsb3NzeQ== IElFRUU= QWNyb3Nz IDY4MA== U2xlZXA= Y2hlb24= IHNhdGlyaWNhbA== IE1pbm90YXVy IENsYXVkZQ== IHLDqQ== YXBlZ28= IGNhcnJvdA== IFNlbWlu aW5vYQ== IHpv SW5kZXBlbmRlbnQ= IGRpYWdub3Nlcw== IEN1ZQ== TUFS IHJlbmRpdGlvbg== IEtpaw== IHBhdGhvbG9neQ== IHNlbGVjdHM= TGlua2VkSW4= IGFzc2F5 IERyZXM= IHRleHR1YWw= cG9zdGVk SVRBTA== IE1hdWw= TmVhbA== IGludGVyY29ubmVjdGVk IGVycmF0aWM= IFZpcnVz IDUzMA== IGVudmlyb25tZW50YWxpc3Rz IFBoZWxwcw== IGVuZ2FnZW1lbnRz IElOU1Q= IGVjb25vbWljYWw= bm94aW91cw== IGdlYXJpbmc= aXp6eQ== IGZhdm9yYWJseQ== IE1jR2lsbA== VGVybQ== IGhhbmdlZA== IGJhbGxwYXJr IFJleWVz IGJld2FyZQ== IFBzYWw= IE1hc3NhY3Jl cWk= IGluYWNjZXNzaWJsZQ== YWNseXNt IGZyYXk= aWxsYWM= IGJpdHRlcmx5 IENlcnRpZmljYXRpb24= TWljaGlnYW4= IGlycmVzcGVjdGl2ZQ== YWxvcmU= RW1wdHk= IGVuZG9yc2VtZW50cw== IHVuZGV0 Zmc= ZXF1aXBwZWQ= IG1lcmNpbGVzcw== IEN1c3Q= IGltbWF0dXJl IHZvdWNoZXI= IEJsYWNrd2VsbA== 0Y8= aGF3aw== ZGlzY2lwbGluYXJ5 aWxlZQ== IE1ha290bw== IER1ZGU= 44OH44Kj WWVhcnM= IGludmVy IHNoYW1hbg== IFlvbmc= aXBlbA== ZWxsZW4= IENhdGh5 YnJpZHM= IHNhcmM= NjUx TmVhcg== IGdyb3VuZHdvcms= IGFtYXo= IDQxNQ== IEh1bnRpbmd0b24= aGV3cw== IEJ1bmc= IGFyYml0cmFyaWx5 IFdpdA== IEFsYmVydG8= IGRpc3F1YWxpZmllZA== YmVzdG9z NDYx IHBj IDI4NA== cm9iYXQ= Um9iaW4= IGh1Z3M= IFRyYW5zaXRpb24= IE9jY2FzaW9uYWxseQ== IDMyNg== IFdoaWxzdA== IExleQ== IHNwYWNlc2hpcA== Y3N2 IHVuc3VjY2Vzc2Z1bGx5 IEF1 bGVjaw== IFdpbmdlZA== IEdyaXp6bGllcw== Lu+/vQ== IG5lYXJlcg== IFNvcmNlcmVzcw== IEluZGlnbw== RWxzZQ== ODQw bGV0ZXM= Q29hY2g= IHVwYnJpbmdpbmc= IEtlcw== IHNlcGFyYXRpc3Q= IHJhY2lzdHM= IGNoYWluZWQ= IGFic3RpbmVuY2U= bGVhcm5pbmc= IHJlaW5zdGF0ZWQ= IHN5bW1ldHJ5 IHJlbWluZGVycw== IENoZXZ5 IG1vbnQ= IGV4ZW1wbGFyeQ== IFRPUg== Wlg= IHF1YWxpdGF0aXZl IFN0YW1w IFNhdmFubmFo IFJvc3Np IHBhZWQ= IGRpc3BlbnNhcmllcw== IFdhbGxz IENocm9uaWM= IGNvbXBsaW1lbnRhcnk= IEJlaXJ1dA== ICstLS0= aWdzbGlzdA== IGNyeXB0b2dyYXBoaWM= bWFzdGVycw== IENhcGl0YWxz IG1heGltYWw= IGVudHJvcHk= UG9pbnRz IGNvbWJhdGFudHM= bGlw IEdsb2I= IEJNQw== cGhhc2U= dGhhbms= SFRUUA== IGNvbW11dGVy IFwoXA== Li4v IFJlZ2VuZXI= IERPSQ== IEFjdGl2aXNpb24= IHNsaXQ= b3NhbA== UkVN IGNoYW50cw== WXU= S2V5cw== QnJleGl0 IEZvcmNlZA== QXJpem9uYQ== IHNxdWFkcm9u SVNP IE1hbG9uZQ== IDMzOA== IGNvbnRyYXN0aW5n IHRpZGFs IGxpYmVs IGltcGxhbnRlZA== IHVwcm9hcg== IENhdGVy IHByb3Bvc2l0aW9ucw== TWFuY2hlc3Rlcg== IEV1cm9z aXRhbWlu R2ls IEVsdmVu IFNlZWs= IEJhaQ== IHJlZGV2ZWxvcG1lbnQ= IFRvd25z IEx1Yg== ISIs YWxvbg== S3Jpc3Q= IG1lYXN1cmFibGU= IGltYWdpbmFibGU= IGFwb3N0bGVz WU4= NzYw IHN0ZXJvaWQ= IHNwZWNpZmljaXR5 IExvY2F0ZWQ= IEJlY2tlcg== IEVkdQ== IERpZXRhcnk= dXRzY2g= IE1hcmlseW4= IGJsaXN0ZXI= IE1FUA== IEtveg== IENNUw== eWFob28= IENhcm5leQ== IGJvYXN0aW5n IENhbGVi Qnl0ZQ== cmVhZHM= YWRlbg== UHJvYmxlbQ== IFdvb2R3YXJk U3dl U3Vw IEtHQg== U2V0dXA= IHRhY2l0 IHJldHJpYnV0aW9u IGR1ZXM= IE3DvA== Lj8= 5Lit cG90cw== IGNhbWVv IFBBTA== ZWR1Y2F0aW9u QW15 bGlrZWx5 Z2xpbmc= IGNvbnN0aXR1dGlvbmFsbHk= IEhhbW0= IFNwZWFr IHdpZGdldHM= YnJhdGU= IGNyYXBweQ== IEl0ZXI= IGFudGljaXBhdGluZw== IEJvdXQ= UGl4ZWw= IFllcA== IExhdXJpZQ== IGh1dA== IGJ1bGxldGlu IFNhbHZhdGlvbg== IGNoYXRz ZWFyYWJsZQ== SG9uZXN0bHk= QUxUSA== b25zZXF1 Y3VsdA== aXNjb3Zlcnk= b3Z5Y2g= IHNlbHZlcw== IFNhdG9zaGk= U291bmRz IGNvbnZlcmdlbmNl IFJvc2VuYmVyZw== MTk3NA== IG5hc2Fs IGZ1bGxlc3Q= IGZlcm9jaW91cw== eHVz aXN0ZQ== QU1T IGxvYmJpZWQ= IHNvb3RoaW5n IEd1bm4= dG9kYXk= MDI0 IGluc3BpcmF0aW9uYWw= IE5CTg== cGI= Z2V3YXRlcg== b3JhaA== YWxsb3dlZA== IENvbGlzZXVt IHNwZWNpYWxpemluZw== IGluc2FuZWx5 IFRhcGU= ZGVsYXk= IHRhcm4= IFBvdW5k IG1lbGFuY2g= IGRlcGxveW1lbnRz aWxhbmQ= IGxlc3Nlbg== IGZ1cnJ5 IFVFRkE= IGJsb29kc2hlZA== IE1laWVy aXRoZXJpbmc= IGhlaXJz IEphdw== YXh0ZXI= IFB1YmxpY2F0aW9ucw== IGFsdGVycw== aW50ZW50aW9u IFdpbmNoZXN0ZXI= ZGV0ZXJtaW5hdGlvbg== IExpZmV0aW1l dGhpbg== TW9uc3Rlcg== Nzgw IGFwcHJveGltYXRpb24= IHN1cGVybWFya2V0cw== IFNlY29uZHM= b3Jvcw== aHVnZQ== IGJyaWJl IExJTUlURUQ= dW5lZA== IG1pc2ludGVycHJldA== IEluanVyeQ== IDM2Nw== IHRocmVzaG9sZHM= IENhcm5pdmFs IGdhc3Ryb2ludGVzdGluYWw= IGd1aWRlbGluZQ== IGRlY2VpdmVk ZmVhdHVyZXM= IHB1cnBvcnRlZGx5 IFJvbm5pZQ== IE5ld3Q= IHNwYWNpb3Vz YXN1cw== IHN1cGVyaGVyb2Vz IEN5bnRoaWE= bGVnZ2Vk a2FtcA== Y2hpbw== IHRodW1ibmFpbA== IFNoaXJsZXk= aWxsYXRpb24= IHNoZWRz IFp5 RVBB IGRhbXM= IHlhd24= bmFo IFBlZ2d5 IEVyaWU= IEp1dmVudHVz IEZvdW50YWlu cng= ZG9uYWxk YWxidW0= IENvbXByZWhlbnNpdmU= IGNhY2hpbmc= IFV6 dWxuZXJhYmlsaXR5 IFByaW5jaXBsZQ== IEppYW4= aW5nZXJz Y2FzdHM= IE9zaXJpcw== Y2hhcnQ= dGlsZQ== IFRpZmZhbnk= IFBhdHRvbg== IFdoaXA= IG92ZXJzaXplZA== SmU= IENpbmRlcmVsbGE= IEJvcmRlcnM= IERhZXNo TWFo IGRvZ21h IGNvbW11bmlzdHM= dnU= Q291bmNpbA== IGZyZXNod2F0ZXI= IHdvdW5kaW5n IGRlYmFjbGU= IHlvdW5nc3Rlcg== IHRocmVhZGVk IEJvdHM= IFNhdmluZ3M= 44GC b2xpbmc= b2hv IGlsbHVtaW5hdGlvbg== TVJJ IGxvb3Nlbg== dHJ1bXA= YWdlbmN5 dXJpb24= IG1vbWVudGFyaWx5 IENodW4= IEJ1ZGFwZXN0 IEFsbGV5 RGlzaw== IGFzdG9uaXNoZWQ= IENvbnF1ZXI= IEFjY291bnRpbmc= aGF2aW5n IFdlaW4= IEFscmlnaHQ= IHJldm9sdmVy IGRlbHVzaW9u IHJlbGljcw== IGFkaGVyZW50 cXVhbnQ= IGhhbmRtYWRl b3Jpbw== IGNvbWJhdGluZw== Y29kZWQ= IHF1YWRydQ== cmV0aA== Tmlr IFRyaWJhbA== IE15c3RlcmlvdXM= IGluaGFs IFdpbm5pbmc= IENsYXNzaWZpY2F0aW9u Y2hhbmdlZA== IHVuYWI= IHNjb3Ju aWNpcGF0ZWQ= d2w= b25kdWN0b3I= IHJlaW5mb3JjaW5n IENoaWxkaG9vZA== YW5vdmE= IGFkdmVudHVyZXI= IGRvY3RvcmFs IFN0cmF0ZWdpZXM= IGVuZ3VsZmVk IEVuY291bnRlcg== IGxhc2hlcw== Q3JpdGljYWw= cmljdWxhcg== IFVURg== b2NpYXRpb24= Y2hlY2tpbmc= IENvbnN1bHRpbmc= UnVudGltZQ== cGVyaW9k IEFzZ2FyZA== IGRpc3RpbGxlZA== IFBhc2FkZW5h IER5aW5n IENPVU5UWQ== IGdyYW5pdGU= IHNtYWNr IHBhcmFjaHV0ZQ== IFNVUg== VmlyZ2luaWE= IEZ1cmlvdXM= Nzg3 IE9raW4= IGNhbWVs IE1icHM= MTk3Mg== IENoYW8= IEN5YW4= am9pY2U= ZWZlcg== IFdyYXA= IERlYmF0ZQ== U2Vn IGZvcmVhcm0= IElnbm9yZQ== IHRpbWVzdGFtcA== IHByb2Jpbmc= IE5vb24= IEdyYWls ZmVu IGRvcm1hbnQ= IEZpcnN0bHk= IEVpZ2h0aA== IEhVTg== IERlc2lyZQ== b3Jhcw== R2lybHM= IERlc21vbmQ= emFy YW1pbmVz T0FE ZXhlY3V0ZQ== IGJvb2Jz IEFUTA== Xyg= Q2hlbHNlYQ== IG1hc3R1cmJhdGlvbg== IENvQw== IGRlc3Ryb3llcg== IENob21za3k= IHNjYXR0ZXI= IEFzc2V0cw== Nzk2 IENhcmdv IHJlY2VwdGl2ZQ== IFNjb3Bl IG1hcmtldGVycw== IGxhdW5jaGVycw== IGF4bGU= IFNFQQ== c2Vx IE1vZmY= ZmluZGluZw== IEdpYmJz R2VvcmdpYQ== ZXh0cmVtZWx5 Tko= IGxhYm9yZXJz c3RhbHM= IG1lZGlhdGlvbg== IEhlZGdl YXRvd24= IGlvZA== ZGVzcGl0ZQ== dmlsbA== SmFuZQ== ZXhpc3RlbmNl IGNvaW5jaWRlZA== IFV0aWxpdGllcw== IENoZWFw IGxvZ2lzdGljYWw= IGN1bG1pbmF0aW9u IE5pY290aW5l cGFr Rm9sZGVy IHJvZGVudHM= c3R1ZmY= IGxhd2Z1bGx5 IHJlcGVydG8= aW9jaA== amo= RGlhbG9ndWU= SEhISA== bGljdGlvbg== TG9va3M= IDI5Nw== IHR1cnJldHM= IEFiYW5kb24= IGluY2Vzcw== IFRyYWZmb3Jk IGN1cmxlZA== IHByZWZlcnJpbmc= IHByaXZhdGl6YXRpb24= IGlycmVzaXN0 IFBhbmRh IFNoYWtl IE1jR3I= 44OE dW5kZXJz IGRpc2NyaW1pbmF0ZWQ= IGJhcnRlbmRlcg== SUxF QXRsYW50aWM= IHByb3BlbnNpdHk= IFdpeg== IEdpbQ== Y29uZmVyZW5jZQ== IHJlaW5mb3JjZXM= R2g= d2Fnb24= IGVlcmll RmFs IGh1Z2dlZA== cmFjaXN0 UklD RnU= IGZpbGxlcg== IFN0dWI= IGVuZ3JhdmVk IFdyZXN0bGU= IGltYWdpbmF0aXZl IFBlZXI= IEZhY3RvcnM= YW51cw== IERyYWN1bGE= bW9uaXRvcg== IHJvdXRlcnM= aWJpYQ== IEJvb2xlYW4= ZW5kYWxl IFNsYXVnaHRlcg== IFNoYWNr UkZD IFNwaWVsYmVyZw== U2F4 IFBIT1RP IENsb3Zlcg== IFJhZQ== RGVwZW5kaW5n IE1lbW9y YXJhbQ== IHBpZXJjZWQ= IGN1cnRhaW5z dmFsZQ== IElucXVpc2l0aW9u IFBva2U= IGZvcmVjYXN0aW5n IGNvbXBsYWlucw== U2Vuc2U= IEhlcm1lcw== aXNjb3ZlcmVk IGJpYmxl IE1vcnBo IGdlcm0= Nzg1 RE9O IGNvbmdlbg== IGNyYW5l IERQUg== IHJlc3BlY3RmdWxseQ== Um9vbQ== IE5hdw== IERhbGFp cmVhc29u IEFuZ3Vz RWR1Y2F0aW9u IFRpdGFuaWM= y5w= IG92YWw= dW5pdGVk IHRoaXJkcw== IG1vaXN0dXI= IENQQw== TWlhbWk= IHRlbnRhY2xlcw== IFBvbGFyaXM= ZXhj ZXhjbHVzaXZl IFByYWlyaWU= IGNvbG9zc2Fs IEJsZW5k c3VycHJpc2luZ2x5 w61z IGluZG9jdHI= IGJhc2Fs IE1QRUc= dW5kbw== U3BsaXQ= RGV2ZWxvcG1lbnQ= IGxhbnRlcm4= MTk3MQ== IHByb3ZvY2F0aW9u IGFuZ3Vpc2g= IEJpbmQ= IExlaWE= ZHVjZXJz aXBweQ== Y29uc2VydmFuY3k= IGluaXRpYWxpemU= IFR3aWNl IFN1aw== IHByZWRpYw== IGRpcGxvbWE= IHNvY2lvcA== SW5ncmVkaWVudHM= IGhhbW1lcmVk IElybWE= UWFpZGE= IGdsaW1wcw== IEJpYW4= IHN0YWNraW5n IGZlbmQ= Z292dHJhY2s= IHVubg== ZGVtb2NyYXRpYw== aWdyZWU= IDU4MA== IDI5NA== IHN0cmF3YmVycnk= SURFUg== IGNoZXJpc2hlZA== IEhvdHM= IGluZmVycmVk IDgwOA== IFNvY3JhdGVz T3JlZ29u IFJvc2Vz IEZPSUE= IGluc2Vuc2l0aXZl IDQwOA== UmVjb21tZW5k IFNoaW5l IHBhaW5zdGFraW5n VUdF IEhlbGxlcg== IEVudGVycHJpc2Vz SU9S YWRq TlJT TEc= IGFsaWVuYXRlZA== IGFja25vd2xlZGdlbWVudA== IEFVRA== IFJlbmVn IHZvdWNoZXJz IDk2MA== IG1vb3Q= IERpbWVuc2lvbnM= IGNhYmJhZ2U= QnJpZ2h0 Z2F0 IEtsdQ== IGxhdGVudA== IHpl IE1lbmc= IGRpc3BlcnNl IHBhbmRlbW9uaXVt SFE= IHZpcnR1b3Vz IExvY2F0aW9ucw== ZWVwZXI= cHJvdmlkZWQ= IHNlYW1z IFdU aXpv UFJPVg== IHRpdGFuaXVt IHJlY29sbGVjdGlvbg== IGNyYW4= IDc4MA== IE5G NDkx NjQy cGFja2luZw== NTk4 dGV4dHVyZQ== U3BpZGVy ZnJlZWRvbQ== Y2lwbGVk IFRBTUFEUkE= 4pmm YXV0aGVudA== IFdBTlQ= cmlmaWVk IHJpdGVz IHV0ZXJ1cw== a2lzcw== IOKJpA== IHNraWxsZXQ= IGRpc2VuZnJhbmNo IEdhYWw= Q29tcGFu IGFnZWluZw== Z3VpZGU= QmFsdA== IGl0ZXJhdG9y IGRpc2NyZXRpb25hcnk= dGlwcw== IHByaW1hdGVz IFRlY2huaXF1ZQ== IFBheW1lbnRz YXplbA== IFJPQ0s= c3RhbnRpYWw= MDYw IGRtZw== IEphY2tldHM= IFBsYXlvZmY= IG51cnNlcnk= IFN5bWI= YXJ0b24= IGFubmV4YXRpb24= Q29sb3JhZG8= IGNvaWxz IFNob2Vz 4oSiOg== IFJveg== Q09NUExF IEV2ZXJlc3Q= IFRyaXVtcGg= Sm95 R3JpZA== 4Lw= cHJvY2Vzc29y IFByb3NwZXI= IFNldmVydXM= IFNlbGVjdGVk cmc= IFRheXlpcA== U3RyYQ== IHNraWluZw== ID8p IHBlZw== VGVzbGE= IHRpbWVmcmFtZQ== IG1hc3Rlcm1pbmQ= IE5C c2NpZW50aWZpYw== IFNoaXQ= Z2VuZXJpYw== SU5URVI= TlVN IHN0cm9sbA== IEVuaXg= IE1NUg== IEVNUw== bW92aWU= gqo= IG1pbmltaXppbmc= aWRkbGluZw== IGlsbGVnaXRpbWF0ZQ== IHByb3RvdHlw IHByZW1hdHVyZWx5 IG1hbnVhbHM= b2JiaWVz IENhc3NpZHk= REVD ZGVza3RvcA== IGFlcm9z IHNjcmVlbmluZ3M= IGRlYmlsaXRhdGluZw== IEdyaW5k bmF0dXJlY29uc2VydmFuY3k= IGZhZGVz dGVybWluYXRpb24= YXNzZXRzYWRvYmU= RmFjdG9y IGRlZmluaXRpdmVseQ== UG9rw6k= YXB1bHQ= IExhZmF5ZXR0ZQ== Q29ybg== IENvcmFs IHN0YWduYW50 VHVl IGRpc3NhdGlzZmFjdGlvbg== R2VuZGVy IGtpZG5leXM= IEdvdw== IERlZmVhdA== IEFzaHRvbg== IGNhcnRlbHM= IGZvcmVjbG9zdXJl IEV4cGxvcmU= c3RyZW5ndGg= b3Rpbg== IHZldGVyaW5hcmlhbg== IGZ1bWJsZQ== IHBhcmFw IFN0cmFpdA== cmlscw== IHByaWNr IEJlcm11ZGE= IEFtbXVuaXRpb24= c2tpbm5lZA== IGFib3VuZA== IEJyYXo= IHNoYXJwZXI= IEFzY2Vuc2lvbg== IDk3OA== IHByZXZpZXdz IGNvbW11bmlvbg== IFhZ IHBob255 IG5ld2NvbWVy IDMzMg== LiIsIg== IHJlZGlzdHJpYnV0aW9u UHJvdGVjdA== IFNvZg== S2Fs IGxpcHN0aWNr d29yc3Q= IHRhbmdsZWQ= IHJldHJvc3BlY3RpdmU= aW50ZWdlcg== IHZvbHVudGVlcmluZw== IDE5MDc= IC0tLS0tLS0tLS0tLS0tLS0tLS0t aWNoZW4= IHVudmVpbGluZw== IHNlbnNlbGVzcw== IGZpc2hlcmllcw== XC0= IGhpbmdlcw== IGNhbGN1bHVz TXl0aA== IHVuZGVmZWF0ZWQ= IG9wdGltaXphdGlvbnM= IGRlcHJlc3M= IGJpbGxib2FyZA== IFlhZA== IFB5cmFtaWQ= SXNu SWRl IGxlZ2lvbg== IEtyYW1lcg== ZW50YW55bA== IHBlbmV0cmF0aW5n IEhhd3Ro IFBST0RVQ1Q= IEdlcmFyZA== IFBhY3Q= IEluY2x1ZGluZw== IEVsaWFz IEVsYWluZQ== dmlzdWFs IGh1bW1pbmc= IGNvbmRlc2M= IEZhc2M= 5LiK IGVnYWxpdGFyaWFu IGRldnM= IERhaGw= T3Bz REg= IEJvdW5jZQ== aWRhdGVk YWxkbw== IHJlcHVibGljYW4= IGhhbWI= IFNldHQ= b2dyYXBoaWVz Q0hBUFRFUg== IHRyYW5zc2V4dWFs IHNreXJvY2tldA== YW5zd2Vy IG1hcmt1cA== 2Ko= IGhlcm9pbmU= Q29tcGFyZQ== IFRhdg== QmVhc3Q= IHN1Y2Nlc3NvcnM= IG5hw692ZQ== IEJ1Y2tsZXk= c3RyZXNz bWVhdA== IGRvd25sb2FkYWJsZQ== IGluZGV4ZWQ= IHNjYWZm IEx1bXA= IEhvbW8= U3R1ZGlv SW5zcA== IHJhY2tlZA== ZmFyaW91cw== IFBldHR5 RXh0ZXJuYWw= IDE5MDk= V2Fycw== Y29tbWl0 cHV0ZXJz IHVub2I= IEVycg== IEVH IEFsYW0= IFNpYmVyaWE= IEF0bW9zcGhlcmlj SVNURVI= IFNhdGFuaWM= dHJhbnNsYXRpb24= IExvdWQ= dHJhdW1hdGlj bGlxdWU= IHJlc29uYXRl IFdlbGNo IHNwYXJraW5n IFRPTQ== dG9uZQ== IG91dGw= IGhhbmRjdWZmZWQ= IFNlcmll ODAx IGxhbmRtYXJrcw== IFJlZXZlcw== IHNvZnRlbmVk IGRhenpsaW5n IFdhbnRlZA== bW9udGhz TWFnaWthcnA= IHVudHJlYXRlZA== IEJlZGZvcmQ= TWk= IER5bmFtbw== T3Jl Nzk1 IHdyb25nZnVs IGx1cmVk IGNvcnRpc29s IHZleA== ZHJhd24= aWxldA== RG93bmxvYWRoYQ== IEZhY3Rpb24= IGxhYnlyaW50aA== IGhpamFja2Vk d2F0ZXJz ZXJpY2s= IHN1cGVyaW9ycw== IFJvd2xpbmc= IEd1aW5uZXNz IHRk OTky IHVuZWFydGhlZA== IGNlbnRyaWY= IHNoYW1lbGVzcw== UG9k IEZpYg== IGljaW5n IHByZWRpY3Rvcg== IDI5Mg== Zm9yZXN0YXRpb24= Y29uc3RydWN0 Q2FuZA== QCM= IGFnaXRhdGVk IHJlcHI= T1ZB IGtuaXR0aW5n IExpbWE= IGZvZGRlcg== Njg0 IFBlcnNvbmE= a2w= NzAx IGJyZWFrdXA= 4bg= IGFwcGFsbGVk IGFudGlkZXByZXNzYW50cw== IFN1c3NleA== SGFycmlz IFRoZXJtYWw= ZWVlZQ== VXBsb2Fk IGd1bGY= IGRvb3JzdGVw IFNoYW5r TFU= IE1FTg== IFBvbmQ= c29ycnk= IG1pc2ZvcnR1bmU= bmFuY2U= IGJvbmE= TXV0 IGRlZ3JhZGVk IExPRw== IE5lc3M= YW5pbWFs IGF2ZXJzaW9u dW5kb3du IHN1cHBsZW1lbnRlZA== IEN1cHM= IDUwNA== IGRlcHJpdmU= IFNwYXJrbGU= xYI= IE1lZGl0YXRpb24= YXV0aG9ycw== IFNhYmFu IE5ha2Vk YWlyZA== IE1hbmRhcmlu IFNjcmlwdHVyZXM= IFBlcnNvbm5lbA== IE1haGFyYXNodHJh IDE5MDM= IFBhaQ== IE1pcmFnZQ== b21iYXQ= QWNjZXNzb3J5 IGZyYWdtZW50ZWQ= VG9nZXRoZXI= IGJlbGlldmFibGU= IEdsYWRpYXRvcg== YWxpZ25lZA== IFNsdWc= TUFU IGNvbnZlcnRpYmxl IEJvdXJib24= YW1lcm9u IFJlaGFi bnRheA== IHBvd2RlcmVk cGlsbGFy IHNtb2tlcg== IE1hbnNvbg== IEJG NTEx IEdvb2RlbGw= IERBUg== bXVk Z2FydA== IG9iZWRpZW50 IFRyYW5zbWlzc2lvbg== IERvbmF0aW9u ODgw IGJvdGhlcmluZw== TWF0ZXJpYWxz 44Kx ZGVzdHJveQ== IGZvcmVnb2luZw== IGFuYXJjaGlzbQ== IEtyeQ== aWNlcHM= IGxpdHRlcmVk IFNjaGlmZg== IGFuZWNkb3RhbA== dW5pdHM= IGZpYW4= IFN0aW0= IFNPTUU= IEludmFkZXJz IGJlaGF2aW91cmFs IFZlbnR1cmVz IHN1YmxpbWU= IGZydWl0aW9u IFBlbmFsdHk= IGNvcnJvc2lvbg== toU= IGxpa2VuZWQ= IGJlc2llZ2Vk d2VlbmV5 IENyZWVw IGxpbmVtZW4= bXVsdGk= aWNhYmx5 dWRkZXI= IHZpdGFsaXR5 IHNob3J0ZmFsbA== IFBhbnRz YXBpc3Q= SGlkZGVu IERyb3Bz bWVkaWNhbA== IHByb251bmNpYXRpb24= IE5STA== IGluc2lnaHRmdWw= SlY= IEJlYXJk IENob3U= IGNoYXJtcw== IGJpbnM= IGFtYmFzc2Fkb3Jz IFNhdHVyZGF5cw== IGluaGliaXRvcg== IEZyYW5jaA== NjAx Jywn IENvbm9y YXJ0bmV5 IFhwZXJpYQ== Z3JhdmU= YmVlcw== IFByb3Rlc3RhbnRz IHNvYWtpbmc= IE1hbmRhbA== IHBoYXNlZA== IDY2MA== IHNjYW1z IGJ1enppbmc= IEl0YWxpYW5z IExvcmVuem8= IEpB IGhlc2l0YXRlZA== IGNsaWZmcw== IEdPVA== aW5ndWlzaGFibGU= IGtv IGludGVycnVwdGlvbg== Wmlw TGVhcm5pbmc= IHVuZGVyc2NvcmVz IEJsaW5r S3U= NTc5 IEF1dG9i SVJF IHdhdGVyaW5n IHBhc3RyeQ== ODIw IHZpc2lvbmFyeQ== IFRlbXBsYXI= YXdhaXRlZA== IHBpc3Rvbg== IGFudGlk Y3VycmVudGx5 IHBhcmQ= IHdhZ2luZw== IG5vYmlsaXR5 IFl1cw== IGluamVjdGluZw== ZmFpdGg= IFBBU1M= 5bo= IHJldGFrZQ== IFBST0M= IGNhdGhlZHJhbA== YmFzaA== IHdyZXN0bGVycw== IHBhcnRuZXJpbmc= IG5vc2Vz IDM1OA== VHJhbnNmb3Jt YW1lbg== IGJvdXRz IElkZWFs IENvbnN0YW50aW4= IHNlcA== IE1vbmFyY2g= YXR0ZW4= IFBlb3BsZXM= bW9kaWZpZWQ= IG1vcmF0b3JpdW0= IHBlbmNoYW50 IG9mZmVuc2l2ZWx5 IHByb3hpZXM= b2thbmU= IFRhaXdhbmVzZQ== IFBvbw== IEhPTUU= dXNpb25hbA== IHZlcmJz IE9tYW4= dmlzb3J5 IHBlcnN1YXNpb24= IG11bHRpdA== IHNjaXNzb3Jz R2F5 b3dheQ== b3BoeXNpY2Fs bHVz Z251 IGFwb2NhbHlwdGlj IGFic3VyZGl0eQ== IHBsYXlib29r IGF1dG9iaW9ncmFwaHk= SVVN IHNuZWFraW5n IFNpbXVsYXRpb24= cHBz ZWxsZXJ5 UGxhbmV0 IHJpZ2h0ZnVsbHk= IG5pZWNl IE5FQw== IElQTw== IERpc2Nsb3N1cmU= bGVhbm9y b3VzeQ== U1RFUg== IDI4Mg== Q3J1eg== Q2hhbGw= NjQz IFN1cnZpdmU= IEZhdGFs IEFtaWQ= YXBv V2VhcG9ucw== REVO Nzcw IEdyZWVud2FsZA== IGxpbmVu YWxvcw== IHBvbGx1dGFudHM= IFBDSWU= a2F0 IHBhdw== IEtyYWZ0 Q2hlbQ== IFRlcm1pbmF0b3I= IHJlaW5jYXJu IF1b IFNlZWRz IHNpbGhvdWV0dGU= IFN0b3Jlcw== IGdyb29taW5n IERpcmVjdGlvbg== IElzYWJlbA== IEJyaWRnZXM= 8J+R RUVE IE1vcnNp IHZhbHZlcw== IFJhbmtlZA== IFBoYXJtYQ== IE9yZ2FuaXphdGlvbnM= IHBlbmV0cmF0ZWQ= IFJvZGhhbQ== IFByb3Rvc3M= IG92ZXJlc3Q= IGV4YXNwZXI= IFRK IDAwMDAwMA== IHRyaWNrbGU= IGJvdXJib24= V0hP IHdyZXRjaGVk IG1pY3Jvc2NvcGlj IGNoZWNrbGlzdA== IGFkb3JuZWQ= Um95YWw= QWRtaW5pc3Q= IFJldGlyZW1lbnQ= IEhpZ2hlc3Q= V2VhdGhlcg== aWxlZ2U= IGluY3JlbWVudHM= IENvc3BvbnNvcnM= IG1hc3Nl IFNpbm4= cmY= IGhvcmRlcw== YXNzZW1ibHk= NzU0 IE5hdGFzaGE= IFRZUEU= IEdFTkVSQUw= IGFycmFuZ2luZw== IDQwNw== bGF0b3I= IGdsZWFu IGRpc2NyZWRpdGVk IGNsaW5pY2lhbnM= VU5F IGFjaGlldmVz IEVtZXJzb24= Y29tcGxleA== PVs= IHByaW5jaXBhbGx5 IGZyYWls cGlja2Vk IHRoYW5raW5n IHJlY2w= IExBU1Q= IHN1cHByZXNzaW5n aWxpYw== IGFudGlkZXByZXNzYW50 IExpc2Jvbg== IHRob3I= IHNwYQ== IGtpbmdkb21z IFBlYXJjZQ== ZW1v IHBsdW5n IGRpdmVzdA== ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq Ymlz b3NwZWxz YWRy U3Bpcml0 aGFsbGE= UGluaw== ZW5kZXo= IHJlc3VycmVjdGVk ZXNjYXBl IFJvc2Vuc3RlaW4= IGdlb2xvZ2ljYWw= IG5lY2Vzc2l0aWVz IGNhcm5pdg== IEVseXM= IEJhcm5leQ== IDI5Ng== ZGlneQ== U1RPTg== RE9XTg== IG1pbGVzdG9uZXM= IGtlcg== IGRpc21hbnRsaW5n IHJlcHJpbQ== IGNyb3NzaW5ncw== MTk0NQ== IHBhdHJpYXJjaHk= IGJsYXNwaGVteQ== IDM1OQ== bWV0cnk= IE9iZXNpdHk= IERpZmZlcmVuY2Vz YmxvY2tpbmc= 44OV44Kh aWNoaXRh IFNhYmhh cGhhbHQ= IENvbG8= dWFsYQ== ZWZmaWNpZW50cw== IE1lZGluYQ== Y29uc29sZQ== NTU3 IEhhbm5pYmFs IEhhYml0 IEZldmVy IHRoZW5jZQ== IHN5bmFnb2d1ZQ== IGVzc2VudGlhbHM= IHdpbms= IFRyYWRlcg== SURB IFNwb2lsZXI= IEljZWxhbmRpYw== IEhheXdhcmQ= IHBlYWM= IG1hbGljZQ== IGZsYXNoYmFjaw== IHRodw== IGxheW9mZnM= TGlxdWlk IHRyb29wZXI= IGhpbmdl IFJlYWRlcnM= UGhpbGw= IEJhdWVy Q3JlYXRlZA== IGF1ZGl0cw== YWNjb21wYW4= IHVuc3VzcGVjdGluZw== aWVyYQ== NjY2NjY2NjY= IGJyb2No IGFwcHJlaGVuZGVk IE1hbGs= Y2VybmluZw== IENvZGV4 T1ZFUg== TWFyc2g= IERlbmc= IEV4cHJlc3Npb24= IGRpc3Jlc3BlY3RmdWw= IGFzY2VuZGluZw== dGVzdHM= IFBsYWludGlmZg== c3Rlcnk= IEFsaWJhYmE= ZGluYW5k IERlbXBzZXk= QXBwbGljYXRpb25z bW9yYWw= IHRocm91Z2hwdXQ= IHF1YXJyZWw= IG1pbGxz IGhlbW9y IENBU0U= dGVycm9yaXN0 c3RpbQ== aWZlc3R5bGU= cm96ZW4= Q0VQVA== QXJr dWNp bGVjdGlj IGlycml0YXRpbmc= c2hlZXRz QXk= IHJlZGVlbWVk IGhvcm55 IFRlYWNo IFNlYXI= ZGVtb2NyYWN5 NDY1 IFJlc3RvcmU= IHN0YW5kYnk= IFBpcw== aWZmaW4= IHNsZWVweQ== IGV4dHJhdGVy IGNvbXBsaW1lbnRz RnJhbWV3b3Jrcw== IGluc3RhbGxz IGJhbmdpbmc= c3VyZmFjZQ== Zm91bmRsYW5k IG1ldGFwaHlzaWNhbA== IDI4Mw== b3Vscw== ZGV2aWNlcw== QXJncw== IFNhY3JpZmljZQ== IE1jQ29ybQ== ZXNvbg== Q29uc2VydmF0aXZl IE1pa2hhaWw= c2VlaW5n aXNpdmVseQ== IFJvb21z IEdlbmVyaWM= IGVudGh1c2lhc3RpY2FsbHk= IGdyaXBwZWQ= IGNvbWVkaWM= IEVsZWN0cmljaXR5 IGd1ZXJyaWxsYQ== IGRlY29yYXRpb24= IFBlcnNwZWN0aXZl IGNvbnN1bHRhdGlvbnM= IHVuYW1i IHBsYWdpYXI= IG1hZ2ljaWFu IGVyZWN0aW9u IFRvdXJpc20= b3JpZWQ= cm94eQ== MTEwMA== VGFt iOg= zrM= 16o= IFByZWRhdG9ycw== Tml0cm9tZQ== IHRlbGVzY29wZXM= cHJvamVjdHM= IHVucHJvdGVjdGVk IHN0b2NrZWQ= IEVudHJlcHJlbmU= bmV4cGVjdGVk IHdhc3Rld2F0ZXI= VmlsbA== IGludGltYXRlbHk= IGlDbG91ZA== IENvbnN0YWJsZQ== IHNwb29m IG5lZmFyaW91cw== IGZpbnM= IGNlbnNvcg== IE1vZGVz IEVzcGVy YXJib24= IGludGVyc2VjdGlvbnM= IGxhdWRlZA== IHBoeXNp IGdlbmVyb3VzbHk= IFRoZU5pdHJvbWU= IFRoZU5pdHJvbWVGYW4= IGFyaXNlbg== INmI IGdsYW5kcw== IFBhdmlsaW9u IEd1cHRh IHVuaWZvcm1seQ== IHJhbXBz cmlldA== IFdIRU4= IFZhbmVzc2E= IHJvdXRlZA== IGxpbXA= IENQSQ== cHRlcg== aW50dWl0aXZl IHZhcGluZw== IGV4cGVyaW1lbnRlZA== IE9seW1wdXM= IEFtb24= IHNpZ2h0aW5n IGluZmlsdHJhdGU= IEdlbnRsZW1hbg== IHNpZ25pbmdz IE1lb3c= IE5hdmlnYXRpb24= Y2hlY2tz NDMz IGVsYXBzZWQ= IEJ1bGdhcmlhbg== ZXNwaWU= IFNPTQ== ZHVyaW5n IHNwaWxscw== YW5jYQ== IFBseW1vdXRo TUFM IGRvbWVzdGljYWxseQ== IFdhdGVyZ2F0ZQ== IEZBTQ== a2lsbGVk ZWRpdGVk IFlvdXJzZWxm IHN5bmNocm9uaXphdGlvbg== IFByYWN0aWNlcw== U1RFUA== IGdlbm9tZXM= IFFS bm90aWNl IGxvY2F0aW5n emlu IDMyOQ== YWxjb2hvbA== IGtpdHRlbg== Vm8= IHJpbnNl IGdyYXBwbGU= IFNjcmV3 IER1bA== QUlS IGxlYXNpbmc= IENhZsOp IHJvc2Vz IFJlc3BlY3Q= IG1pc2xlYWQ= IHBlcmZlY3RlZA== IG51ZGl0eQ== IG5vbnBhcnRpc2Fu IENvbnN1bXB0aW9u UmVwb3J0aW5n IG51YW5jZXM= IGRlZHVjdGlibGU= IFNob3Rz IDM3Nw== IOac YW5vb2dh QmVuZWY= IEJhbQ== IFNhbXA= aWZpeA== IGdhbHZhbg== IE1lZGFscw== cmFkaXVz IG5vYmxlcw== IGVhdmVz aWdyYXRl S1Q= IEhhcmJvdXI= dWVycw== IHJpc2tlZA== cmVx IG5ldXJvdA== Z2V0dGFibGU= YWluYQ== Um9tbmV5 IHVuZGVycGlu IGxvZnQ= IFN1YmNvbW1pdHRlZQ== IE1vbmdvbA== Yml6 IG1hbmlmZXN0cw== YXNzaXN0ZWQ= IEdhZ2E= IHN5bmVyZ3k= IHJlbGlnaW91c2x5 IFByZWY= IEdlcnJ5 VEFH IENob2k= NDY2 YmVoaW5k IE91 R29sZE1hZ2lrYXJw IGhlbW9ycmg= Uml2ZXI= IHRlbmRvbg== IGluanVyZQ== IEZpb25h IHBhZw== IGFnaXRhdGlvbg== fHx8fA== dXJhbg== IEVTQQ== IGVzdGVlbQ== IGRvZGdpbmc= IDQxMg== cnNz IGNlYXNlcw== ZXhjbHVkaW5n IGludGFrZXM= IGluc2VydHM= IGVtYm9sZA== IE9yYWw= dXB1bmN0dXJl NDEx IFVuaWZpZWQ= IERlbGU= IGZ1cm5hY2U= IENveW90ZXM= IEJyYWNo TGFib3I= IGhhbmRzaGFrZQ== IGJydWlzZXM= R3JhZGU= 6ZeY IEdyYW1teQ== aWxlZW4= U3RhdGVz IFNjYW5kaW5hdmlhbg== IEthcmRhc2g= ODY2 IGVmZm9ydGxlc3NseQ== IERJUkVDVA== IFRIRU4= IE1laQ== ZXJ0YXRpb24= MTk2OA== IGdyb2lu d2l0Y2g= UmVxdWlyZW1lbnRz OTg1 IHJvb2Zz IGVzdGF0ZXM= IEhG IGhhaGE= IGRlbnNlbHk= IE9DVA== IHBsYXN0aWNz IGluY2lkZW50YWxseQ== IFRyYWNrcw== IFRheGVz IGNoYW50ZWQ= IGZvcmNlZnVs IEJpZWJlcg== IEthaG4= S2VudA== IENvdA== bGljdHM= RmVk IGhpZGVvdXM= IFZlcmQ= IFN5bmRpY2F0ZQ== IElsbGVnYWw= SmV0 IERBVg== cmVhc29uYWJsZQ== Y3Jldw== IGZ1bmRhbWVudGFsaXN0 IHRydXRoZnVs IEppbmc= IGxpbA== IGRvd25lZA== IGVuY2hhbnRlZA== IFBvbGljaWVz IE1jTWFzdGVy IEhhcmU= aWRlc2hvdw== IHBhcmFtcw== ZW5jZXJz Z29yaXRobQ== IGFsbG93YW5jZXM= IHR1cmJ1bGVudA== IGNvbXBsZXhpdGllcw== IEtU IDMzNw== IEdlbmV0aWM= RlVO RG91Zw== dGljaw== IGdpZ3M= dW1lbnRoYWw= IHBhdHJpYXJjaGFs IGNhbGM= LC4uLg== IGNvdXQ= IEd1YW4= IHBhdGhvbG9naWNhbA== IFJpdmFscw== IHVuZGVycmF0ZWQ= IGZsdW9yZXNjZW50 IEppdQ== YXJuYWV2 IFF1YW4= IDQyOQ== IOCo TWFyaW8= Q29uc3RydWN0 IENpdGF0aW9u IFJhY2lhbA== IFJTQQ== IEZpZGVs IDM5NQ== UGVyc29uYWxseQ== Q2F1c2U= w7s= cmFkaWNhbA== aW5lbg== IHZlaGVtZW50bHk= IFBhcGE= IGludGVybnNoaXA= IGZsYWtlcw== IFJlY2s= THVja2lseQ== QnJh MjAyMA== cmF2aW5ncw== Uk4= V29uZGVy U2VyaW91c2x5 IHJldXNhYmxl IHBvbGx1dGVk IFBlbmc= bGVpZ2g= aW5kbGU= IGNpcmN1aXRyeQ== IE1hZG9ubmE= IEJBUlQ= UmVzaWRlbnRz YXR0cmlidXRl UGhpbGFkZWxwaGlh Q2x1Yg== IHBsYW5uZXI= IGZyYW50aWNhbGx5 IGZhaXRoZnVsbHk= IFRlcnJpdG9yaWVz IExBVA== IEFuZGVyc2Vu YW51 IFBBUks= IFNvcmE= aWFnZQ== IFBsYXlvZmZz IEdDQw== NDI3 IGFibm9ybQ== IExldmVy IGRpc29iZWRpZW5jZQ== QXN5bmM= IFNoZWE= VmVydA== IHNraXJ0cw== IFNhd3llcg== eHA= IHdvcnNlbmluZw== IHNjYXBlZ28= IEFuZ2xl b3RoYWw= IHRyb3Zl IFN0eQ== IE5ndXllbg== bWFyaW5l aWRlb24= RGVwdGhz QmxvZw== IElsbHVtaW5hdGk= IHRyYWN0cw== IG9yZ2FuaXNl IG9zdHI= RnM= IGxldmVyYWdpbmc= IERhcmVkZXZpbA== YXNhcg== IGxhbmc= IGV4dGVybWlu dXJzaW9ucw== IFJvbW8= 44Kk44OI IGNvbnRlbmRlZA== IGVuY291bnRlcmluZw== IFRhYmxldA== IEFsdGVybmF0ZQ== c2tpbGw= IHN3ZWV0cw== IGNvaGVzaXZl Y2FwYWNpdHk= IHJlcHVk IGxpemFyZA== cm9v IHBpbGdyaW1z IFJ1ZmY= IEluc3RydW1lbnQ= IExvZ28= dWl0b3Vz RUg= IHNhbGVzbWFu IGFua2xlcw== TGVk IFBhdHR5 dWRvcw== T3duZXI= IGRpc2NyZXBhbmNpZXM= a2o= TVU= IHVuY29uZGl0aW9uYWw= RHJhZ29uTWFnYXppbmU= aWFyZA== T2Fr IENvbnZlcnNhdGlvbg== YmVlcg== IE9zYWth RGVsdGE= dXNreQ== IHNlY3JldGlvbg== IHBsYXph IG1pbmc= IGRlcGxldGlvbg== IE1vdXM= IElUUw== IEhpbWFs IEZsZW1pbmc= IGN5dG9r IEhpY2s= IGJhdHRlcnM= IEludGVsbGVjdHVhbA== Njc1 w6ly SVNJT04= IFF1ZW50aW4= IENoYXB0ZXJz aWhhZGk= IGNvYXN0ZXI= V0FZUw== IExpemFyZA== IFlvcg== YW5kZXJpbmc= U2tpbg== aGF1c3Q= YWJieQ== IHBvcnRyYXlpbmc= IHdpZWxkZWQ= ZGFzaA== IHByb3BvbmVudA== IHJpcHBsZQ== IGdyYXBoZW5l IGZseWVy IHJlY3VycmVudA== IGRldmlscw== IHdhdGVyZmFsbA== 5piv Z29v VGV4dENvbG9y IHRhbXBlcmluZw== SVZFUw== VFJVTVA= IEFiZWw= IFNBTA== IEhlbmRyaWNrcw== IEx1Y2l1cw== Ym90cw== IDQwOTY= SVNUT1JZ R3Vlc3Q= IE5Y aW5hbnQ= QmVueg== IExvYWRlZA== IENsZXZlcg== dHJlYXRtZW50 IHRhdmVybg== IDMzOQ== IFROVA== aWZpY2FudGx5 VGVtcGVyYXR1cmU= RmVs IHVuZGVyd29ybGQ= IEp1ZGdlcw== IDwr IHN0dW1w IG9jY3VwYW5jeQ== IGFiZXI= IEZpbmRlcg== KSIs IE51bmVz cmVzZXQ= aW5ldA== ZWN0b215 IHdlbGxuZXNz IFBlYg== cXVhcnRlcmVk YW5kYW4= IG5lZ2F0aXZlcw== IFRoaWVs IENsaXA= IExURA== IGJsaWdodA== IHJlcGVydG9pcmU= S3lsZQ== IHF1ZXI= IENlcw== IGhhcGw= OTg5 IFRoYW1lcw== aXNjb3BhbA== RGVzaw== aXZhcmlhdGU= IEV4Y2VsbGVuY2U= Zm91bmRhdGlvbg== IOKH WGk= IG15c3RlcmlvdXNseQ== ZXN0eWxlcw== IHBlcmlzaA== IEVuZ2Vscw== IERFQUQ= MDkw fX19 IFVucmVhbA== IHJlc3RsZXNz SURFUw== b3J0aG9kb3g= IEludGVybWVkaWF0ZQ== IGRpbm5lcnM= IFRyb3V0 IFNleW0= IEhhbGxz b2dnZWQ= IHRyYWdlZGllcw== IGRpZG50 Njc2 IGFpbG1lbnRz IG9ic2VydmFibGU= IFZpZGU= YWRhcHQ= IER1c2s= IHByb2Zlc3Npb25hbGlzbQ== IFByZXNjb3R0 IEluZGllcw== cG94 IE1laHJhbg== V2lkZQ== IGVuZGVtaWM= IFBhcmFu QmlyZA== IHBlZGFscw== IElV IEFkYW1hbnQ= IEh1cnQ= IGNvcnJlbGF0ZXM= dXJkZW4= IHNwb25zb3Jpbmc= Y2xpbWF0ZQ== IFVuaXZlcnNpdGllcw== IEtub3Q= ZW5uZXM= IERhbWlhbg== IEF4ZWw= U3BvcnQ= IGJhcmI= IFNubw== c2hvd24= c3RlZW4= dWRlbmNl IG5vbnZpb2xlbnQ= IGhvbW9waG9iaWE= IGJpb21hc3M= IERldGFpbA== IHNyZk4= IFR1bmU= YWNjb21wYW5pZWQ= SUVOQ0U= QWxiZXJ0 IE1vbmdv eng= IENlcmJlcnVz b3JiaXQ= Y2Vucw== IHNsYXk= U0hBUkU= SFk= IGJyYXds IFByb2Jl IG5vbmV4aXN0ZW50 IENsYXJlbmNl IEJsYWNrYnVybg== IHBvcnRhbHM= IFJpdGE= IFJlbWFpbg== IExldmFudA== IHRyaWNrZWQ= IEZlcnJ5 YXZlcmluZw== IFN0cmF3YmVycnk= IEFuc3dlcnM= IGhvcnJlbmRvdXM= IEFtYW4= U3VwcGxlbWVudA== IFRvYWQ= IHBlZWxlZA== IG1hbm9ldXY= IFV6YmVr bW9uZHM= IEhlY3Rvcg== IDQwMg== cGVlcw== Zml4ZXM= IGRq IHJlc3VtZXM= IGFjY291bnRhbnQ= IGFkdmVyc2l0eQ== IGhhbXBlcmVk IExhcnNvbg== IGRvcGluZw== cGFydHM= SHVy IGJlYXJkZWQ= IHly IFBsdWdpbg== 5aWz IC8qKg== cm9sbGV5 IHdhdGVyc2hlZA== IFN1Ym1pc3Npb24= aWZsb3dlcg== QVND IGNob2ly IHNjdWxwdHVyZXM= bUE= aW5jcmVhc2luZw== YWlp IHNuZWFrZXJz IGNvbmZyb250cw== IEVsZXBoYW50 IEVsaXhpcg== IHJlY2Fs IFRUTA== d2lkZ2V0 IFdheA== IEdyYXlzb24= IGhhaXJzdA== IGh1bWlsaWF0ZWQ= IFdBUk4= YXBwaW5lc3M= IFRUQw== RnVlbA== IHBvbGlv IGNvbXBsZXhlcw== IGJhYmU= IFhJVg== UEY= KS5b UGFydHM= IDQzNQ== TWVn IFlhcmRz IEFMUA== IHllbGxz IHByaW5jZXM= IGJ1bGxpZXM= IENhcGl0YWxpc20= ZXhlbXB0 RkFR IFNwb25nZQ== IEFsYQ== IHBsZWFzYW50bHk= IGJ1Zg== IGRlbm90ZQ== IHVucHVibGlzaGVk IGtuZWVsaW5n YXNjYQ== IGxhcHNl YWxpZW4= OTk0 IHJlZmVyZWVz IExhd3llcnM= U2FudGE= IHB1enpsaW5n IFByb21ldGhldXM= IFBoYXJhb2g= IERlbGF5 IGZhY2lsaXRhdGVz IENFUw== IGpld2Vscw== IGJvb2tsZXQ= b25kaW5n IHBvbGFyaXphdGlvbg== IE1vcmFu IFNhbGFk IFNPUw== IEFkdmljZQ== UEhPVE9T SUNBTg== aWF0dXJlcw== ZXhwcmVzcw== IFdvbmRlcmxhbmQ= IENPREU= IENMQVNT OTc1 IGdyZXA= IERpZXNlbA== IEdsYWM= IT8i IHJt b2luZQ== ZGlzY3JpbWluYXRpb24= IE51cnNl bWFsbG93 IHZvcnRleA== IENvbnNvcnRpdW0= IGxhcmdlRG93bmxvYWQ= c3RyYWlnaHQ= YXVnaGxpbg== R3JhZA== IHB1YmxpY2l6ZWQ= IFdhdmVz IFJlZGQ= IGZlc3Rpdml0aWVz IE1hbmU= YXJvdg== IGZsZWV0aW5n IERydW5r dWdlbg== Q2VsZQ== IGNocm9tb3NvbWVz IERPVA== LSstKy0rLSs= IGJ1c2llc3Q= IEJlYXZlcg== U3lyaWFu IEt5cg== a2Fz IENyb3NzUmVm MTk1MA== NzYwMQ== IHJlcGVhbGluZw== IFdpbm5lcnM= IE1hY3Jv IERPRA== YmxhbmNl U29ydA== NjQx IG1ldHJl IERpcms= IGdvZ2dsZXM= IGRyYXdiYWNrcw== IGNvbXBsYWluYW50 IGF1dGhvcml6aW5n IGFudGl0cnVzdA== b3BlcmF0ZWQ= IG1haA== IGV4YWdnZXJhdGlvbg== QW1hemluZw== IFNlcmFwaA== IGhhemU= d293 IGV4dGluZ3Vpc2hlZA== IGNhbnlvbg== IEJvc2g= IHZlbnRz IHNjcmFwZQ== Q29ycmVjdA== NDI2 IGF2Zw== RGVtYW5k IOKIvA== IG1pY3JvYmlvdGE= In1dLCI= IFN0ZXY= Qmlv IFBsYW5lcw== IHN1Z2dlc3RpdmU= IGRlY2lwaGVy IFJlZnVnZWU= IEtlanJpd2Fs IEdyZWVucGVhY2U= IGRlY2xhc3M= IFNvdW5kZXJz IHRobw== IGRlY3J5cHQ= IGJydXNoaW5n IEphbmVpcm8= aXBvcA== U2k= ODc3 IEdlb2ZmcmV5 IGNwdQ== IEhhemVs IHZpZXdwb2ludHM= IGNyaXNweQ== IE5vdGlmaWNhdGlvbg== IHNvbGRlcg== IE1vZGVzdA== IEhlbWlzcGhlcmU= IGNhc3NldHRl aW5jbHVkZXM= IGlkZW50aWZpZXJz IENBTEw= aW5jZW50 VG9kZA== IFN3ZWVw IDMzNA== Ym9zcw== IHNtaXI= Z2lueA== IHRvd25zaGlw IGdyaWV2aW5n IE1vc3F1ZQ== TmV0ZmxpeA== QVNFRA== IE1pbGxlbm5pYWxz b2NvbQ== MTk2Nw== IGJvbGRseQ== c2xlZXA= IGVzY2hl YXJpanVhbmE= IHN3aXJs IFBlbmFs IG5lZ2xpZ2VudA== IFN0ZXBoZW5zb24= S0VS IFpvcm8= cmlzaXM= IGxvY2FsaXphdGlvbg== IFNleW1vdXI= IEFuZ2xpYw== cmVkaXRhdGlvbg== cHJvdGVjdGlvbg== IFBhaWdl IG9taXQ= IFJvdXNzZQ== IFR1Yg== IGludml0YXRpb25z dHR5 IG1vc3M= cGh5c2ljYWw= Q3JlZGl0cw== IGFuYXJjaHk= IGNoaWxkY2FyZQ== IGx1bGw= IE1law== IExhbmd1YWdlcw== bGF0ZXN0 IFNhbmZvcmQ= IHVzYWJpbGl0eQ== IGRpZmZ1c2U= IERBVEE= IHNwcml0ZXM= IFZlZ2V0YQ== IFByb21vdGlvbg== 44O844Kv cmljdGluZw== emVl VHVya2lzaA== IFREcw== cHJvdmVu NTcx IHNtdWdnbGVycw== NzA3MTA= IHJlZm9ybWVk IExvaXM= IHVuZmw= IFdJVEhPVVQ= IFJldHVybmluZw== YW5uaWU= IFRvbWFz RnJhbmM= IFByb2ZpdA== IFNFUlY= IFJ1bWJsZQ== aWt1bWFu ZXNhbg== IHRlc3RlcnM= IGdhZGdldA== IGJyYWNlbGV0 IEZTQQ== Y29tcG9uZW50 IHBhcmFtZWRpY3M= IGphbg== IFJlbWVt IFNraW5uZXI= IGxvdg== IFF1YWtl cm9tYQ== IGZsYXNr UHJpbmM= IG92ZXJwb3dlcg== IGxvZGdpbmc= IEtLSw== cmV0dGU= IGFic29yYnM= d3JvdGU= ICwi S2luZ3M= IEhhaWw= IEZhbGxpbmc= eHRhcA== IEhlbGVuYQ== aXJlbnM= TGFycnk= IHBhbXBobGV0 IENQUg== R3Jv IEhpcm9zaGltYQ== IGhvbGlzdGlj Ii5b IGRldGFjaG1lbnQ= IGFzcGlyZQ== IGNvbXBsaWNpdA== IEdyZWVud29vZA== IHJlc3Bhd24= IFN0dXBpZA== IEZpbmlzaGVk ZmFs YmFzcw== IGFiaG9y IG1vY2tlcnk= IEZlYXN0 VklERU8= IGNvbnNlYw== IEh1bmdyeQ== UHVsbA== IEh1c3Q= aXRhbmNl P+OAjQ== KS0t IFBhcmFsbGVs Y29udg== NDY5 aGFhcg== d2FudA== UGFwZXI= bWlucw== IFRvcm8= IFRSVU1Q IFJhaQ== RFc= IFdpY2tlZA== IExlcA== IGZ1bmt5 IGRldHJpbWVudA== aW9zaXM= YWNoZXY= IGRlZ3JhZGU= aW1pbGF0aW9u IHJldGFyZA== IGZyYWdtZW50YXRpb24= IGNvd2JveQ== IFlQRw== IEhBTA== UGFyZW50cw== IFNpZWc= IFN0cmF1c3M= IFJ1YmJlcg== 15A= RnJhZw== IHB0 IG9wdGlvbmFsbHk= IFpJUA== IFRyYW5zY3JpcHQ= IER3ZWxs ODgy TWVyYw== IE1PVA== 44Ov44Oz IGh1bnRz IGV4ZWN1dGVz SW5jbHVkZXM= IGFjaWRpYw== IFJlc3BvbnNpYmlsaXR5 IER1bWI= d2Vp QW5kZXJzb24= IEphc3Blcg== aWdodG9u YWJzb2x1dGVseQ== QWR1bHQ= IHBsdW5kZXI= TW9ybmluZw== IFRvdXJz IERhbmU= zro= IFRFU1Q= IEdpbmE= IGNhbmluZQ== YXdhbg== IHNvY2lhbGlzdHM= IFNvZGE= IGltcGV0dXM= IFN1cHBsZW1lbnRhcnk= b2xpYXRo IEtpbm5pa3VtYW4= bWl0dGVkbHk= c2Vjb25kcw== IG9yZ2FuaXNlcnM= IGRvY3VtZW50YXJpZXM= VmFyaWFibGU= R1JFRU4= IHJlc29ydHM= IGJyYWdnaW5n IDM2OA== QXJ0aXN0 d2s= YmxlcnM= VW5jb21tb24= IFJldHJpZXZlZA== IGhlY3RhcmVz IHRveGlu cmFuaw== IGZhaXRocw== IEdyYXBoaWM= IHZlYw== IExJQQ== QWZyaWNhbg== IGFyZGVudA== ZW5kaWFyeQ== TGFrZQ== IERPUw== Y2llbnRpb3Vz IE9rYXdhcnU= IEFsbHk= IFRpbWVsaW5l RGFzaA== IElj Y29udGludWU= IHRpZHk= IGluc3RpbmN0aXZlbHk= IFBvc3NpYmx5 IE91dGRvb3I= IFdvdWxkbg== IGxpY2g= IEJyYXk= IEFY IMOJ ICsj XCc= RGlyZWN0b3J5 YWJpZGluZw== IGZlcmFs aWNhdGl2ZQ== YnV0dA== IHBlcnZlcnNl U2FsdA== IHdhcnBlZA== IG5pbmV0ZWVu IGNhYmluZXRz IHNyZkF0dGFjaA== IFNsb2Fu IHBvd2VyaW5n cmVnYXRpb24= RmxpZ2h0 c2V2ZXJl IHN0cmVu IGNvZw== YXBhY2hl IOKd IGNhZmV0ZXJpYQ== cGFjZXM= IEdyaW1vaXJl dXRvbml1bQ== IHJhaW5pbmc= IGNpcmNsaW5n IGxpbmViYWNrZXJz Y3JlZGl0 IHJlcGF0cmk= IENhbWRlbg== bGljZW5zZQ== IGx5cmlj IGRlc2NyaXB0b3I= IHZhbGxleXM= IHJlcQ== IGJhY2tzdGFnZQ== IFByb2hpYml0aW9u IEtldA== T3BlbmluZw== U3lt 5pa5 IHNlcnZpbmdz IG92ZXJzZWVu IGFzdGVyb2lkcw== IE1vZHM= IFNwcmluZ2Vy IENvbnRhaW5lcg== 6Ls= IE1lbnM= IG11bHRpbQ== IGZpcmVmaWdodGVy cGVj IGNobG9yaW5l 0Lw= ZW5kaQ== IHNwYXJpbmc= IHBvbHlnYW15 IFJO IFBlbGw= IHRpZ2Vycw== IGZsYXNoeQ== IE1hZGFtZQ== U3dvcmQ= IHByZWZyb250YWw= IHByZXJlcXVpc2l0ZQ== dWNh IHdpZmk= IG1pc2NvbmNlcHRpb24= IGhhcnNobHk= IFN0cmVhbWluZw== b3RvbQ== IEdpdWxpYW5p Zm9vdGVk IHR1YmluZw== aW5kaXZpZHVhbA== emVr bnVjbGVhcg== bW9s IHJpZ2h0ZnVs NDkz IHNwZWNpYWxpemF0aW9u IHBhc3Npb25hdGVseQ== IFZlbG9jaXR5 IEF2YWlsYWJpbGl0eQ== VGVubg== IGxhdGNo IFNvbWVib2R5 IGhlbGl1bQ== Y2xhdw== IGRpcHBpbmc= WFhY IGludGVycGVyc29uYWw= NzEw IHN1YnRlcg== IGJpb2xvZ2lzdHM= IExpZ2h0aW5n IG9wdGlj IGRlbmlt ZW5kb24= IENvcm0= IDM0MQ== IENvdXA= IGZlYXJsZXNz IGFsb3Q= IENsaWZmb3Jk IFJ1bnRpbWU= IFByb3Zpc2lvbg== dXBkYXRlZA== bGVuZWNr IG5ldXJvbg== IGdyYWRpbmc= IEN0 c2VxdWVuY2U= aW5pYQ== Y29uY2VwdA== IHJvYXJpbmc= cml2YWw= IENhdWNhc2lhbg== IG1vbm9n a2V5ZXM= IGFwcGVsbGF0ZQ== IGxpYWlzb24= RVN0cmVhbUZyYW1l IFBsdW0= IS4= IHNwaGVyaWNhbA== IHBlcmlzaGVk IGJsb3Q= IGJlbmNoZXM= IDQxMQ== IHBpb25lZXJlZA== IGh1cmxlZA== SmVubmlmZXI= IFlvc2VtaXRl Q2hhaXI= IHJlZWZz IGVsZWN0b3I= IEFudGhlbQ== NjUy IHVuaW5zdGFsbA== IGltcGVkZQ== IGJsaW5raW5n IGdvdG8= RGVjcmU= QXJlbg== IHN0YWJpbGl6YXRpb24= IERpc2FibGVk IFlhbnVrb3Z5Y2g= IG91dGxhd2Vk IFZlbnR1cmE= dGVuZXNz IHBsYW50YXRpb24= IHlhY2h0 IEh1YXdlaQ== IHNvbHZlbnQ= IGdyYWNpb3Vz IGN1cmlvdXNseQ== IGNhcGFjaXRvcg== IGN4 IFJlZmxleA== UGh5cw== IENm cHRpbg== Y29uc2VydmF0aXZl IGludm9jYXRpb24= Y291cg== Rk4= IE5ld2x5 SG91cg== QXNpYW4= IExlYWRpbmc= IEFlcm9zcGFjZQ== QW5uZQ== IHByZW5hdGFs IGRldGVyaW9yYXRpbmc= SENS IE5vcm1hbmR5 b2xpbmk= IEFtYnJv OTEw IHNldGJhY2tz IFRSRQ== IHNpZw== IFNjb3VyZ2U= NTk3 Nzk4 R2FtZXBsYXk= IG1zZWM= TVg= IHByaWNleQ== IExMUA== YWtlcnU= IG92ZXJhcmNoaW5n IEJhbGU= IHdvcmxkbHk= Q2xhcms= IHNjZW5pYw== IGRpc2xpa2Vk IENvbnRyb2xsZWQ= VGlja2V0cw== IEVX YWJpZXM= IFBsZW50eQ== Tm9uZXRoZWxlc3M= IGFydGlzYW4= VHJhbnNmZXI= IEZhbW91cw== IGluZmllbGQ= YmxleQ== IHVucmVzb2x2ZWQ= IE1MQQ== 44KC Q29ycmVjdGlvbg== IGRlbW9jcmF0 IE1vcmVubw== cm9jYWw= aWxpbmdz IHNhaWxvcg== IHJpZmU= aHVuZw== IHRyb3Blcw== IHNuYXRjaGVk IExJTg== IEJpYg== RVNB IFByZXY= IENhbWVs cnVudGltZQ== IG9ibm94aW91cw== NDM3 IHN1bW1lcnM= IHVuZXhwbGFpbmVk IFdhbHRlcnM= Y2FsaWJlcg== IGd1bGw= IEVuZHVyYW5jZQ== 5L2c IDM0Nw== SXJpc2g= IGFlcm9iaWM= IGNyYW1wZWQ= IEhvbm9sdWx1 4Kk= dXNlcmM= ZWNhc3Q= QUNZ IFF1ZXJ5 44K544OI QmV0YQ== IHN1c2NlcHRpYmlsaXR5 IFNoaXY= IExpbWJhdWdo IMOW IE5YVA== IE11c3M= IEJyaXRvbnM= RVNDTw== RUdJTg== ICUl IHNlY2Vzc2lvbg== IFBhdHJvbg== IEx1YQ== bmFpcmVz IEpQTW9yZ2Fu dXNi b2N5dGU= IGNvdW5jaWxsb3Jz IExpYW5n ZmFybQ== IG5lcnZvdXNseQ== IGF0dHJhY3RpdmVuZXNz IEtvdg== anVtcA== UGxvdA== IHN0YWlucw== IFN0YXR1ZQ== IEFwb3N0bGVz aGV0ZXI= IFNVUFBPUlQ= IG92ZXJ3aGVsbQ== WUVT IDI5MQ== ZGVuc2l0eQ== IHRyYXBwaW5n TWl0 IGZpZGU= IFBhbWVsYQ== YXRsYW50aWM= RGFtbg== IHB0cw== T1BB IHNlcnZpY2luZw== IG92ZXJmbG93aW5n dWxv IEVyaXQ= dGlja2V0 bGlnaHRpbmc= IEhtbQ== 44O844Or aW1vdG8= IGNodWNrbGU= NDIz 44GV c2hhcGU= IHF1ZXVlcw== IGFuY2hvcnM= 44K844Km44K5 RmVy IGF3b2tl IDY2Ng== aGFuZHM= IGRpdmVyZ2VuY2U= IDUwNQ== VGlwcw== IGRlcG90 IHNrZXc= IERlbGl2ZXI= b3BvdA== IGRpdnVs IEVC dW5zaWduZWQ= IFVuaQ== WGJveA== IGZvcmtz IDcwMg== 5a8= IHByb21vdGVycw== IFZhcG9y IGxldmllZA== c2xvdA== IHBpZ21lbnQ= IGN5bGluZGVycw== Q1JF IHNuYXRjaA== IHBlcnBldHVhbGx5 IGxpY2tpbmc= IEZlZXQ= IEtyYWtlbg== IEhvbGRlbg== IENMU0lE bXI= IHByb2plY3Rvcg== IGRlbm90ZXM= IGNoYXBlbA== IFRvcnJlbnQ= Ymxlcg== Um91dGU= IERlZmVuZGFudA== IFB1Ymxpc2hlcnM= IE1hbGVz IElubm92 IEFnaWxpdHk= cml0ZXI= dHltb2xvZ3k= c3RvcmVz TGluZA== IGZvbGx5 IFp1cmljaA== Qmxl IG51cnR1cmU= IGNvYXN0bGluZQ== dWNoaW4= RG9taW4= IGZyaXZvbA== IENvbnNvbGlk cmVzdWx0cw== TUo= IHBoeWxvZ2Vu IGhhdWxlZA== IFdpbGV5 IEplc3NpZQ== IFByZXBhcmU= IEVwcw== IHRyZWFzdXJlcg== SUFT IGNvbG9uaXN0cw== IGludW5k IFdXRg== IENvbnZlcnRlZA== NjAwMA== b3V0c2lkZQ== IEFwcGVhcmFuY2U= IFJlbGlj IE1pc3Rlcg== c2F3 IHJlc3VsdGFudA== IGFkamVjdGl2ZQ== IExhdXJlbA== IEhpbmRp YmRh UGVhY2U= IHJlYmlydGg= IG1lbWJyYW5lcw== IGZvcndhcmRpbmc= IGNvbGxpZGVk IENhcm9seW4= S2Fuc2Fz NTk5 IFNvbGlkR29sZE1hZ2lrYXJw QmVjaw== IHN0cmVzc2luZw== IEdvbw== IENvb3BlcmF0aXZl IGZz IEFyY2hpZQ== TGl0ZXI= IEtsb3Bw SmVycnk= IGZvb3R3ZWFy V2FycmVu IHNjcmVl aGFyZQ== VW5kZXJzdGFuZGluZw== UGVk IGFudGhvbG9neQ== IEFubm91bmNl TWVnYQ== IGZsdWVudA== IGJvbmRhZ2U= IERpc2NvdW50 aWxpYWw= Q2FydA== IE5pZ2h0bWFyZXM= U2hhbQ== IEJvbGw= dXNzaWU= SHR0cA== QXRsYW50YQ== IHVucmVjb2du IEJpZA== IHVuZGVyZ3JhZA== IGZvcmdpdmluZw== IEdsb3Zlcg== QUFBQUFBQUE= NDQ1 Vkc= cGFpbw== a2lsbGVycw== IHJlc3BvbnNpYmx5 IG1vYmlsaXpl IGVmZmVjdGVk IEx1bWlu IGthbGU= IGluZnJpbmdpbmc= YW5ub3VuY2Vk IGZpdHQ= YmF0Y2g= IFRhY2tsZQ== IExpbWU= IEFQUA== dWtlbWlh IHJ1Ynk= IGV4b25lcg== IENhc3VhbA== MDcw IHBlbHZpYw== IGF1dG9tYXRl IEtlYXI= IENvYXN0YWw= IGNyZWVk IGJvcmVkb20= IFN0dW4= cmlvdHQ= go4= IHJlZ2VuZXJhdGU= IGNvbWVkaWFucw== IE9QRVI= U3BvbnM= aWRpdW0= b25pcw== TG9jYXRlZA== MDU3 IHN1c3BlbnNl IERhdGluZw== Q2Fzcw== IG5lb2NvbnM= IFNoaW56bw== IGF3b2tlbg== Y2hyaXN0 IE1lc3NhZ2Vz YXR0bGVk IFNwcmF5 IFNwaWNl Q1c= IHNoaWVsZGluZw== IEdhdWw= QW1pZA== IHBhcmFtaWxpdGFyeQ== IG11bHRpZg== IFRhbm5lcg== aWxr IGdvZGRhbW4= Z2VtZW50cw== IGJlZnJpZW5k bW9iaQ== IDM4OA== Zm9sZGVy YWNjYQ== IGluc2lu Z2Fw TmV2 ZmlmdGg= IHBzeWNoaWF0cnk= YmFua3M= VEhJUw== IGhhcmI= YWNxdQ== IGZhY2FkZQ== IFBvd2VyUG9pbnQ= ODAz IGJsdWZm U2hhcmVz IGZhdm9yaW5n RWxpemFiZXRo w43DjQ== IHJhbmdlcg== Nzcy IEFyY2hl aGFr IEdlbmV0aWNz IEZFTUE= IGV2b2x2ZXM= IGVzdGU= IFBldHM= IE3DqQ== IEludGVyZXN0aW5n IENhbnRlcmJ1cnk= Y2hhcHRlcg== IFN0YXJmbGVldA== U3BhbmlzaA== IGRyYXdiYWNr IE5vcndpY2g= OTcw bm9ydGg= YWdhbmRh IHRyYW5zZm9ybWF0aXZl cmFtaWRz YmlvbG9neQ== YWRheQ== IHByb3BhZ2F0aW9u IEdhbW1h IERlbmlzZQ== IENhbGN1bGF0b3I= ZW50aW1lcw== IEJldHQ= IGFwcGVuZGl4 IEhERA== QUtJTkc= IHN0aWdtYXQ= IGhvbHN0ZXI= IG9yZGluYXJpbHk= Q2hhbmNl IENvbnRyYXJ5 IGFkaGVzaXZl IGdhdGhlcnM= NjEy cmVhdQ== b255bXM= ZXdheXM= IGluZHVjZXM= IGludGVyY2hhbmdlYWJsZQ== c2Vt V2hpdA== IHRyYW5jZQ== IGluY29ycG9yYXRpb24= IEV4dHJhcw== RmluYW5jaWFs IGF3a3dhcmRseQ== IFN0dXJnZW9u IEhZ Tm9ybWFsbHk= IEVuZGluZw== IEFzc2lzdA== ZW5jcnlwdGVk IHN1Ymp1Zw== IG5vcw== IGZhbmF0aWM= Q3Vi Q1U= PyIu IGlycmV2ZXJzaWJsZQ== 5YI= MDMx IEhBUg== c3ByZWFk dWxpYQ== PSQ= U2NvcGU= TG90cw== IGxpZmVzdHlsZXM= b2xvbg== IGZlZHM= IGNvbmdyYXR1bGF0ZQ== d2Via2l0 IGluZGlzdGluZ3Vpc2hhYmxl IFN3aW5n IGNvbW1hbmRtZW50cw== cXVpbGE= YWJlbGxh bWV0aHls YW5uYWJpbg== IG92ZXJl IGxvYnN0ZXI= IFFVRVNU IENPTlRJTg== YmVybmF0b3JpYWw= Ojo6Ojo6Ojo= IFRyYXZl IFNhbW9h QU5J NzUy 0LQ= dXNlcmNvbnRlbnQ= IE1vZGVyYXRl eWVhaA== IEtpdHQ= IHdlZQ== IHN0dWZmaW5n IEludGVydmVudGlvbg== IERpZ24= IHdhcmVob3VzZXM= IEZpamk= IHBlbGxldHM= IHRha2Vhd2F5 IFRBQkxF IENsYXNzaWNhbA== Y29sbGVjdGlvbg== IGxhbmRmYWxs IE11c2NsZQ== IHNldHRsZXM= IEFEVg== IDM0NA== TGF1cmE= IGZhcmVk IFBhcnRpYWw= NDM2 b3NzaWJpbGl0eQ== IERhbHk= IFRhcmFudA== IEZ1amk= YW1s Y2VuY2U= NTUx IFByb2NlZHVyZXM= IE9DRA== IFVE dGlu UVVJ YWNobw== NDM4 IGdsaXRjaGVz IGVuY2hhbnRtZW50 IGNhbGN1bGF0ZXM= SVJP IEh1YQ== YWx5c2Vz IExpZnQ= dW1v IGxlYXB0 IGh5cG90aGVzaXplZA== IEd1c3Rhdg== aXRhbnM= VkVSU0lPTg== 5qA= Um9nZXI= IHJhbmQ= IEFkYXB0ZXI= IDMzMQ== IFBldGl0aW9u a2llcw== TWFycw== IHVuZGVyY3V0 emVlcw== IEx5b25z IERIQ1A= TWlzc2luZw== IHJldGlyZWVz IGluc2lkaW91cw== ZWxp Pik= LuOAjQ== IGZpbmFsaXN0cw== IEF1cmU= IGFjY3VzZXI= IHdhc3Rlcw== IFlz IExvcmk= IGNvbnN0aXR1ZW5jaWVz IHN1cHBlcg== IG1heWhlbQ== b3Jhbmdl IG1pc3BsYWNlZA== IG1hbmFnZXJpYWw= IGV4Y2U= IENMSQ== IHByaW1hbA== IExlbnQ= Q3J5c3RhbA== aG92ZXI= IE5UUw== ZW5kdW0= IGR3 IEFsYw== bm9zdGlj IHByZXNlcnZlcw== IFRzYXJuYWV2 IHRyaXBsZWQ= cmVsYXRpdmU= QXJjYWRl a2lsbGluZw== IFdFRUs= IEhhbm5h RHVzdA== Q29tcGxldGVk gas= IGFwcHJvdmVz IFN1cmY= IEx1dGhlcmFu dmVuYW50cw== IHJvYmJlcmllcw== d2VpZ2h0cw== c29mdHdhcmU= YXRhbmE= dWdhbA== IGdyYXZ5 IENhbmNl T0xPR1k= bHlhaw== VG9uaWdodA== IHVudmVpbA== IDE5MDQ= IE1pbmlvbg== ZW50aW91cw== c3RpY2U= cGFja2FnZXM= IEdFQVI= IGdvbA== IEh1dGNoaW5zb24= IFByb2Zlc3Npb24= IEdVTg== IERpZmZlcmVuY2U= IFRzdWt1eW9taQ== IExlc2JpYW4= Njcw IGZ1Z2l0aXZl IFBsYW5ldGFyeQ== LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0= IGFjY3J1ZWQ= IGNoaWNrcw== IHN0b3Bw IGJsb2NrZXJz Q29k IGNvbW1lbnRlcnM= IFNvbWV3aGVyZQ== IFBob3RvZ3JhcGhlcg== dGhlbWU= IG1heW9yYWw= d3U= IGFudGVubmFz IHJldmFtcGVk IFN1YmplY3Rz aXTDqQ== aW11cmE= IGVudHJhbmNlcw== bGl0ZXJhbGx5 IHRlbmV0cw== IE9NRw== IE1QSA== IERvbmtleQ== IE9mZmVuc2U= ICIr U25hcA== IEFGQg== IGFuaW1hdGU= IFNvZA== SGlzcGFuaWM= IGluY29uc2lzdGVuY3k= RGI= Rlk= RXhwb3J0 IGFwZQ== IHBlYXJs aWJlbA== IFBBQ3M= IHtc IGFjdHU= IEhTQkM= Y2FtcHVz IHBheW9mZg== IGRlaXRpZXM= IE5hdG8= b3VwbGU= IGNlbnNvcmVk IENsb2p1cmU= IGNvbmZvdW5kaW5n ZW5p IHJlY2tvbg== b3BoZQ== IHNwb3R0aW5n IHNpZ25pZmllcw== IHByb3BlbA== IGZlc3RpdmU= U3VnZ2VzdA== IHBsZWRnaW5n IEJlcm1hbg== IHJlYmVsbGlvdXM= IG92ZXJzaGFkb3dlZA== IGluZmlsdHJhdGVk am9icw== Njcy IHNjYWxhYmxl IGRvbWluaW9u IE5ld2ZvdW5kbGFuZA== IE1lYWRvdw== IHBhcnRpdGlvbnM= QU1J IHN1cHBsZW1lbnRhcnk= c3RydW1lbnQ= IGhhaXJ5 IHBlcnBldHVhdGU= IG51dHNoZWxs IFBvdGF0bw== IEhvYmJpdA== IGN1cnNlcw== RmxvYXQ= IHF1aWV0ZXI= IGZ1ZWxpbmc= IGNhcHN1bGVz IEx1c3Q= IEhhdW50ZWQ= RXhlY3V0aXZl IGNoaWxkYmlydGg= R3Jl IHJhZGlhbnQ= 5Y4= IG1hbGxz IGluZXB0 IFdhcnJhbnR5 IHNwZWN0YXRvcg== RWg= dGhlbnM= IGN1bG1pbmF0aW5n 5qk= YXJ5YQ== 44Ku aWxpdGFyaWFu IE9SSUc= IFNwZW5kaW5n cHRpdmVz IFNpcmVu IFJlY29yZGluZw== YXluZQ== IHZpbQ== IHNwcmFuZw== VGFuZw== IE1GVA== bW9ybmluZw== IFdlZWQ= bXBlZw== Y2Vzc2lvbg== IENodW5n NzMw d2FybmluZw== NTYy aGFuZGVkbHk= UG9vcg== UG9saXRpY3M= OiM= IHBpYW4= IGZlY2Vz IERvY3VtZW50YXRpb24= IGJhbmlzaGVk IDM5OQ== IEFSQw== IGhlaW5vdXM= SmFrZQ== IEFtaXI= d2F5bmU= dnJl b3NoZW5rbw== IG5vdGVib29rcw== IGZvdW5kYXRpb25hbA== IG1hcnZlbG91cw== aXh0YXBl IHdpdGhkcmF3YWxz IGhvcmRl IERoYWJp aXNhYmxl IEtE IGNvbnRhZ2lvdXM= IERpcA== IEFycm93cw== IHByb25vdW5z IG1vcnBoaW5l IEJVUw== Njgy IGtvc2hlcg== ZmluaXNoZWQ= IEluc3RydW1lbnRz IGZ1c2Vk eWRlbg== IFNhbG1vbg== RmFi YWZmZWN0ZWQ= S0VO Q0VOVA== RG9tYWlu IHBva2Vtb24= IERyaW5raW5n R3Jvd2luZw== IEludmVzdGlnYXRpdmU= IEFldGhlcg== ZW1p IHRhYmxvaWQ= IHJlcHJv IE5vdHdpdGhzdGFuZGluZw== IEJlcnNlcmtlcg== IGRyYW1hcw== IGNsaWNow6k= IGJ1bmc= IFVSSQ== IERvcw== MDQ0 IHBhc3RvcnM= IGxz IGFjcnlsaWM= YXVudHM= RWR3YXJk IG1ham9yaXRpZXM= QmFuZw== IGZpZWxkaW5n IFJlcGxhY2VtZW50 IEFsY2hlbXk= cHBhcmQ= IFJvbWVv IFNhbmN0 IExhdnJvdg== aWJibGU= SW5zdHJ1Y3Q= IGltcHJhY3RpY2Fs IFBsYXlib3k= Y2VwaGFs IHN3YXBz IGthbg== IFRoZW8= IGlsbHVzdHJhdGluZw== IGRpc21hbnRsZWQ= IFRyYW5zZ2VuZGVy IEd1dGg= VUdI IHRyaXVtcGhhbnQ= IGVuY29tcGFzcw== IGJvb2ttYXJr dWRkaW4= amVy IHByZWRpY2F0ZQ== RVNI IHdoZW5jZQ== IEFCRQ== IG5vbnByb2ZpdHM= U2VxdQ== IGRpYWJldGlj IHBlbmQ= IGhlYXJ0ZmVsdA== c2hp IGludGVyYWN0cw== IFRlbGVjb20= IGJvbWJhcmRtZW50 ZGVwZW5kaW5n IExvd3J5 IEFkbWlzc2lvbg== IEJsb29taW5n dXN0cmF0aW9u ZW5lZ2dlcg== QnJldw== IG1vbHRlbg== IE5lcmQ= UElO 4paA YXZlbWVudA== IHRvdXJlZA== IGNvZWZmaWNpZW50cw== IFRyYXl2b24= YW5zc29u IHNhbmR5 dG9sZA== Zmxvd3M= IHBvcHVsb3Vz IFRpbmRlcg== IEJsaXNz UmFjaGVs TWluaW11bQ== IGNvbnRlc3RhbnQ= IFJlZHVjZQ== IE1vcnNl IEdyYXNzbGV5 IENsaWNrZXI= IGV4cHI= IHNpbmNlcml0eQ== IG1hcnF1 IGVsaWNpdA== IFByb3Bvc2l0aW9u IERlbW9uaWM= IHRhY29z R3JlZWs= IHBvc3R3YXI= IGluc29mYXI= IFBvcms= IDM1Mg== ZG9jdG9yYWw= d2Fsa2luZw== IG1pZHRlcm0= IFNhbW15 c2lnaHRlZA== IFRSQU5T aWNp QUxE IFVTTA== IEZJU0E= IEFtcGw= IEFsZXhhbmRyYQ== aW5lbGxp VHJhaW4= IHNpZ25pZnk= IFZlcnN1cw== IG9iZnVzYw== IGto IGFnZ3Jv IFJlbmF1bHQ= IDM0OA== NTE4 b3hpY2l0eQ== MDIy IFR3aXN0 IGdvb2Z5 RHluYW1pYw== IGJyaWVmaW5ncw== bWlnaHQ= ODk5 IGRlcm9nYXRvcnk= VHJv IGZvcmdpbmc= IEtvcmFu IE1hcnJpZWQ= IEJ1Y3M= IHBhbGF0ZQ== IENvbnZlcnNpb24= bWFibGU= NDEz IChf IHNpcGg= IE5FTw== Y29sbGVnZQ== IG1hcmdpbmFsbHk= IGZsaXJ0 IFRyYXBz IFBhY2U= 6buS IGdvYWx0ZW5kZXI= IGZvcmJpZHM= IGNsZXJrcw== IFRhbnQ= IFJvYmJpbnM= IFByaW50aW5n IHByZW1pZXJlZA== IG1hZ25pZmljYXRpb24= IFRH IFJvdXNl IE1vY2s= b2R5bmFtaWNz IHByZWNsdWRl aXNtbw== IFB1bGl0emVy IGF2YWxhbmNoZQ== IEtvZGk= cmlidW5l IExlbmE= RWxlY3RyaWM= IHJlZmluZXJ5 IGVuZG93ZWQ= IGNvdW5zZWxvcnM= IGRvbHBoaW4= IE1pdGg= IGFybW91cmVk aGliaXRlZA== QmVnaW4= IFBX T2ls IFZvcg== IFNoYXJpZg== IEZyYXppZXI= ZXN0YXRl IGphbXM= UHJveHk= IGJhbmRpdHM= IFByZXNieXRlcmlhbg== IFByZW1pZXJl dGlueQ== IENydWVs VGVzdGluZw== IGhvbWVy IFZFUlM= IFByb2w= IERlcG9zaXQ= IENvZmZpbg== IHNlbWluYXJz IHNxbA== IERlZmVuZGFudHM= QWx0ZXJuYXRpdmVseQ== IFJhdHM= 56s= ZXRoeXN0 Jz4= IGlzc3Vlcg== NTg5 IGNoYWlyZWQ= IEFjY2Vzc29yaWVz bWFuZW50 IG1hcnJvdw== IFByaW1vcmRpYWw= Q04= IGxpbWl0bGVzcw== IENhcm5hZ2U= IHVuZHJhZnRlZA== cXY= SU5FU1M= b25ldw== IGNvaGVzaW9u OTg3 IG5lY2tz IGZvb3RiYWxsZXI= IEdFUg== IGRldGVjdGFibGU= IFN1cHBvcnRpbmc= IENTVg== b2NhbGx5 a0h6 IHVuZGU= IHNob25l IGJ1ZGRpbmc= dHJhaw== U3RhbmRpbmc= IFN0YXJjcmFmdA== IEtlbXA= QmVuY2g= IHRod2FydGVk IEdyb3VuZHM= YXRoaQ== TGlzYQ== RGlhbG9n IFNY VmlzaW9u IGluZ2VuaW91cw== 2ZA= IGZvc3RlcmluZw== IFph IEluZ3JhbQ== ICJA TmF0dXJhbGx5 NjE2 MDM1 IEZBQw== SG1t NTU0 IGFjY2VsZXJhdG9y IFZlbmQ= IHN1bnNjcmVlbg== IHR1YmVyY3Vsb3Npcw== cmF2aW9sZXQ= IEZ1bmN0aW9uYWw= IEVycm9ycw== ZWRhcg== MTk2Ng== IFNwZWN0cmU= IFJlY2lwZXM= ODg1 IE1hbmtpbmQ= TGl2ZXJwb29s IHwtLQ== IHN1YnN0aXR1dGVz IFhU d2lyZWQ= IGluY28= IEFmZ2g= RXZh aWNj U29uZw== S25pZ2h0 IGRpbGlnZW50bHk= IEJyb2FkY2FzdA== QWlk IGFmYXI= IEhNUw== YXRvbmlu IEdyYXRlZnVs IGZpcmVwbGFjZQ== IE9tbmk= ZXVybw== IEZSRQ== IFNoaWI= IERpZ2VzdA== dG9nZ2xl IGhlYWRzZXRz IGRpZmZ1c2lvbg== IFNxdWlycmVs IEZO IGRhcmtlbmVk b3V0aGVy IHNsZWVwcw== IFhlcg== Z3Vucw== IHNldHVwcw== IHBhcnNlZA== IG1hbW1vdGg= IEN1cmlvdXM= Z29i IEZpdHpwYXRyaWNr IEVtaWw= aW1vdg== Li4uLi4uLi4uLi4uLg== IEJlbm55 U2Vjb25kbHk= IGhlYXJ0eQ== IGNvbnNvbg== c3RhaW5lZA== IGdhbGFjdGlj Y2xhdmU= IHBsdW1tZXRlZA== IHBlc3Rz IHN3YXQ= IHJlZmVycmFscw== IExpb25lbA== aG9seQ== IHVuZGVyZG9n IFNsYXRlcg== IFByb3ZpZGU= IEFtYXI= cmVzc29y 5Yw= b25nYQ== IHRpbWlk IHBpZXR5 IERlaw== IHN1cmdpbmc= YXpv IDYxMA== IGRlc2tz IFNwb2thbmU= IEFuZmllbGQ= IHdhcnNoaXBz IENvYnJh IGFybWluZw== Y2x1c2l2ZWx5 IEJhZGdl YWdhc2Nhcg== IFBSRVNT IE1jS2Vuemll IEZlcmRpbmFuZA== YnVybmluZw== QWZlZQ== IHR5cmFubg== IEl3 IEJvb25l MTAwNw== IFJlcHQ= CsKg IGNhcmF2YW4= IERpbGw= IEJ1bmRlc2xpZ2E= Q2h1Y2s= IGhlYWxlcg== 44O844OG IEhvYmJ5 IG5lZ2F0ZQ== IGNyaXRpcXVlcw== c2VjdGlvbmFs bW9wb2xpdGFu IGR4 IG91dHNvdXJjaW5n IENpcGhlcg== dGFw U2hhcnA= IHVwYmVhdA== IGhhbmdhcg== IGNydWlzaW5n IE5pYWdhcmE= IDM0Mg== aWxsdXM= IFN2 IHN1YnRpdGxlcw== IHNxdWFyZWQ= IGJvb2tzdG9yZQ== IHJldm9sdXRpb25hcmllcw== IENhcmx0b24= YWJhbA== VXRhaA== IGRlc3Bpc2U= IFVN Y29uc2lkZXI= YWlkbw== IGNhcnRz IFR1cnRsZXM= VHJhaW5pbmc= IGhvbm9yYXJ5 wqI= IHRyaWFuZ2xlcw== NDIy IHJlcHJpbnRlZA== IGdyYWNlZnVs IE1vbmdvbGlh IGRpc3J1cHRpb25z IEJvaA== IDM0OQ== IGRyYWlucw== IGNvbnN1bGF0ZQ== IGJlbmRz IG1hZmlh dXJvbg== IEZ1bHRvbg== bWlzYw== IHJlbmFs IGluYWN0aW9u Y2tpbmc= IHBob3RvbnM= IGJydWlzZWQ= IENvZGVz b2dp IG5lc3Rz IExvdmVseQ== IExpYnJl IERhcnls ICMjIw== U3lz Liwi IGZyZWV6ZXM= ZXN0YWJsaXNobWVudA== YW5kb3dza2k= IGN1bWJlcnM= IFN0YXJn IEJvbWJz IGxlZ2lvbnM= IGhhbmR3cml0aW5n IGdydW4= IENhaA== c2VxdWVudA== IG1vdGg= IE1TTQ== SW5zZXJ0 Rmlm IG1vdGVs IGRleHRlcg== IEJpbGQ= aGVhcnRlZGx5 IHByb3Bl IFRleHR1cmU= IEp1bmN0aW9u eW50aGVzaXM= b2NhcmQ= IFZlcmE= IEJhcnRo IM68Zw== IGxhc2hlZA== IDM1MQ== IFphbWI= IFN0YXBsZXM= IENvcnRleA== IENvcmtlcg== IGNvbnRpbnV1bQ== IFdSSVRF dW50YQ== cmlkb3I= IGRlZW1z MDMz IEdPTEQ= cGFz IHJlcHJlc3NpdmU= 44OG44Kj IGJhZmZsZWQ= U2Nhcg== IGNyYXZl IF9fX19fXw== IGVudHJlcHJlbmV1cnNoaXA= IERpcmVjdG9yYXRl ICdb IHZpbmVz IGFzY2VuZGVk IEdST1VQ IEdvb2RieWU= IGRvZ2dlZA== 44O044Kh TWFudWZhY3Q= IHVuaW1hZ2luYWJsZQ== cmlvdHM= aWVycmV6 IHJlbGF0aXZpdHk= IENyYWZ0aW5n cmF1Z2h0 dWRlbg== Y29va2ll IGFzc2Fzc2lucw== IGRpc3NhdGlzZmllZA== YWNjaQ== IGNvbmR1aXQ= U3ByZWFk IFJpY2Fu bmljZQ== aXp6bGU= IHNjYXJlcw== IFdIWQ== cGhhbnM= NTM1 IHByb3RyYWN0ZWQ= IEtyaXN0ZW4= NTM2 IFNjcmli IE5laA== IHR3ZW50aWVz IHByZWRpY2FtZW50 IGhhbmRjdWZmcw== IGZydWl0ZnVs IFVM IEx1ZHdpZw== IGF0dGVzdA== IEJyZWFrZXI= IGJpb2xvZ2ljYWxseQ== IERlYWxlcg== IHJlbm92YXRpb25z Znc= ZXNzZW4= QWxpY2U= IEhlbnJp IHVuaWxhdGVyYWxseQ== IFNpZGQ= aGFp IFN0cmV0Y2g= U2FsZXM= IGN1bWJlcnNvbWU= IEphdmllcg== IHRyZW5keQ== IHJvdHRpbmc= IENoYWxsZW5nZXM= IHNjcmFwcw== IGZhY2V0cw== IFZlcm9uaWNh IFZlcmdl IFNhbmE= QWxpZW4= IFJpaA== IHJhZGlhbA== ZWN0YXI= IDYzMA== Y2xp TWFyaWU= IHdpbGRmaXJl IENhdG8= aGFuZGVy IHdhaXRyZXNz IGNob3Bz IFNFQ1RJT04= IGJsdW50bHk= IENhdGFsb2c= bmlhbg== c3R1ZHk= IHBhdHJvbGxpbmc= IFRlbnRo bmV4dXM= IE5PTg== b3BzeQ== IHNjYXRoaW5n c2ll IGRldGVyaW9yYXRlZA== VkI= TmF6aXM= IGRlcGljdGlvbnM= IGF1dGhlbnRpY2F0ZWQ= IENvbmNl a3JpdA== IHByb211bGc= IExPTkc= VUZD IFZpc2l0b3Jz IFJlY2FsbA== IHJlaGFiaWxpdA== IFNMSQ== IGdsYWNpZXI= IEJpdGU= IDUwMw== IHZvbWl0 IGZlcm1lbnRlZA== IEtoYWxpZA== IGdyYWRlZA== IE1hZ2lja2E= IEljaGlnbw== cG93ZXJmdWw= aWNhdG9ycw== NzUz IHNocmV3 IDM1Ng== IGxlZ2FsaXppbmc= IGFsbG90dGVk IEFyY2hkZW1vbg== aXRoaW5n aWdndXJhdA== Vk9M TGVvZA== IG9pbHk= IGluZHVjaW5n IGFteWdkYWxh IGFkbWlucw== IEFjcXVpc2l0aW9u Q0FO IHNjaGVtYXRpYw== IG1vYW4= IENhbWVyb29u IHRpbms= IG1lcnJ5 IGJ1dHRlcmZsaWVz IEdvZmY= IHdvcmtzcGFjZQ== IENvcm9uYQ== IGphdmFzY3JpcHQ= IERvbHBoaW4= IENhbnRvcg== NDY0 dG9l QVBT IEFnaW5n IHBhZGRlZA== IFpoZW5n IEhlbGQ= IGVzdHJhbmdlZA== IDc3MA== Ln0= IER1bmhhbQ== IHNtb2tlcw== IGNhcGl0YWxz dW5kYWk= U2hpbg== IEZvdW5kaW5n IGVudGl0bGU= IGNlbnRlcnBpZWNl RGlzY292ZXI= IHRoZXJldG8= YWxlcnQ= IE5vdQ== IEFuYWx5c3Q= bGM= Rkg= RklFTEQ= IFBPVg== Z3JheQ== IGFyY3M= IEhPVA== IHJz IG9ibGlnYXRvcnk= IEFyY2hpdGVjdHM= IFN2ZW4= IEZFQw== MDIwMA== Q2hyaXN0bWFz IEFsYmFuaWE= cmF0b20= NTg3 IGhhcmRzaGlwcw== IGF1dG9z IENoYXJnZXM= IGFwZXM= IDM3Ng== d2FsbGV0 IGludG94aWNhdGlvbg== IGdvYmxpbg== IDU3MA== KysrKysrKysrKysrKysrKw== IFllbHA= IE1hZ25ldGlj IEJyaWdncw== UmFpbA== IHNwYXducw== IFdpZ2dpbnM= IHNob3djYXNlZA== IHJlc29ydGVk dWJlbg== IHdoaXBwaW5n IGltaXRhdGU= IGRpZ2VzdGlvbg== IFVTUFM= IEdlc3Q= IHllYQ== IFRpZ2h0 aW5kYWw= aWNhcw== YC4= Q0FTVA== Jyc7 IEZldA== b3BhdGhpYw== SW52YWxpZA== IHJlZ3JldHRlZA== IGJyb2Njb2xp IFNjb3Jlcw== ZXZl IHBvc3Rpbmdz IGFjY3VtdWxhdGluZw== IG5lZWRsZXNz ZWxmdGg= IG1heW9ycw== IHNjcmli IGFuZWNkb3Rlcw== IGJvdGNoZWQ= IFJpYmJvbg== IENvbnN0YW50aW5l aXVzZXM= ZXNzZXM= IGRldmlzZQ== Q29tcGFyZWQ= IHB1ZGRpbmc= IGdhcmc= IGV2b2tl Nzk3 IGRldG94 OTA5 IFBpZWNlcw== IE1jQ2FydG5leQ== IG1ldGFzdA== IEtyeXB0 UE9S IHRlbmRpbmc= IE1lcmNoYW50cw== UHJvb2Y= IFZhcmc= IFBvcnRhYmxl 44O844OG44Kj QnJhaW4= MjUwMA== IGZvbGlhZ2U= 2Lk= IG1lbnRvcnM= IEFpcmVz IG1pbmltYWxpc3Q= IGluZ2VzdGVk IFRyb2phbg== IFFpYW4= aW52b2x2ZWQ= MDI3 IGVyb2RlZA== UkFGVA== IGJsdXJyeQ== TW9i IGJ1ZmZldA== IEZuYXRpYw== YWVh S05PV04= IEluaXQ= c2FmZXR5 ZW51bQ== QUNUSU9O IENydXNoZXI= IERhdGVz IC4uLi4uLi4uLi4uLi4uLi4= Y2FsbGluZw== YWtvdg== IHZlbnR1cmVk IDU1NQ== YXVnYQ== SGFydA== IEFlcm8= TUFD IHRoaW5seQ== IGFycmE= U1RBVEU= aWxkZQ== IEphY3F1 IEZlbWFsZXM= IHRoZW9yZW0= IDM0Ng== IHNtYXJ0ZXN0 IFBVQkxJQw== IEtyb24= IEJpdHM= IFZlc3NlbA== IFRlbGVwaG9uZQ== IGRlY2Fw IGFkanVuY3Q= IFNFTg== bWVyZ2E= IHJlZGFjdGVk IHByZWhpc3Rvcmlj IGV4cGxhbmF0b3J5 IFJ1bnM= IFV0dGFy IE1hbm55 IEFVVEhPUg== IFVubGVhc2hlZA== IEJvd2xpbmc= YmVhbnM= Nzkz IHVuaXZlcnNlcw== IHNlbnNpdA== IEt1bmc= cmVwZWF0 Y3RybA== IHBhY2Vk IGZ1bGxlcg== Q2xvY2s= IHJlY29tYg== IEZhdWw= IEJ1bmtlcg== IHBvb2xlZA== IGFuYQ== IE1vdXRo TExPVw== aHVtYW5l IGJ1bGxkbw== IE1pY2hhZWxz ZmFt IHdyZWNrZWQ= IHBvcnRyYXlz IFdoYWxl IEhlcw== IGd1ZXNzZXM= IEJyb3dzZQ== IExBUEQ= IGNvbnNlcXVlbnRpYWw= IElubm9jZW50 IERSQUc= IHRyYW5zZ3Jlc3M= IE9ha3M= IHRyaXZpYQ== IFJlc29u IEFEUw== LS0r IFRvbGw= IGdyYXNwaW5n IFRIRU0= IFRhZ3M= IENvbmNsdXNpb24= IHByYWN0aWNhYmxl IGhvb3A= IHVuaW50ZW50aW9uYWxseQ== IGlnbml0ZQ== IE1vdg== dXJpemVk bGVoZW0= VGVybWlu IGNvbG91cmZ1bA== IExpbmVhcg== IEVsbGll R3k= IG1hbnBvd2Vy IGpz IGVtb2pp IFNIQVJFUw== Xy4= MDAwMDc= IHNvcGhpc3RpY2F0aW9u IHVuZGVyc2NvcmU= IHByYWN0aXNl IGJsb2I= b3BlbnM= VWtyYWluZQ== S2VlcGluZw== WUM= SlI= dWx0aW1hdGU= Q2xhaW0= IGF1dG9tb2JpbGVz OTkz c3RlZWw= IHBhcnRpbmc= IExhbms= Li4uPw== IDM4NQ== IHJlbWVtYnJhbmNl IGVhc2Vk IGNvdmFyaQ== IFNpbmQ= RWZmZWN0aXZl IGRpc3NlbWluYXRpb24= IE1vb3Nl IENsYXBwZXI= YnJhdGVz QXBwbHk= IGludmlz IHdvcnNlbmVk 4oCULQ== IGxlZ2lzbGF0b3I= IExvbA== IFJvd2U= IGRlYWxlcnNoaXA= dW1hcg== aWRlbmNlcw== IGludmVzdGlnYXRlcw== IGNhc2NhZGU= IGJpZGRlcg== IEJFTg== SXJvbmljYWxseQ== IHByZXNpZGluZw== IGRpbmc= IGNvbnRyYWRpY3RlZA== IHNodXRz IEZJWA== IDM2Ng== RGlzdHJpY3Q= IHNpbmZ1bA== IENoYXJpc21h b29wcw== IHRvdGFsaXR5 IHJlc3RpdHV0aW9u IE9wdGltdXM= IERhaA== IGNsdWVsZXNz dXJuZWQ= IG51dHJpdA== IGxhbmRvd25lcnM= IGZsdXNoZWQ= IGJyb2FkZW4= bWll IHByaW50bG4= IG5pZw== IENvcnB1cw== SmVu IHByb3Rv IFdpa2ltZWRpYQ== IFBhbG8= Q09S IHN0b3J5bGluZXM= IGV2YW5nZWxpY2Fscw== IERhcnJlbGw= IHJvdG9y IEhX c2tpbGxlZA== ZXJ5bA== IGJlZ2c= IEJsdW1lbnRoYWw= IHdlYXZpbmc= IGRvd253YXJkcw== IEphY2tldA== IEFOR0VM VGVjaG5vbG9neQ== IGVzb3Rlcmlj YWxkZWh5ZGU= IGZ1cmlvdXNseQ== IGZvcmVpZ25lcg== V2Vhaw== Q0hP IEhvdW5k RXhwZXJpZW5jZQ== IFBsYXlzdGF0aW9u IE1JQQ== IFVuZw== Y2xvdGg= YWdhbGw= IGNhbG1pbmc= aXplbnM= U3RydWN0 IFdpdGNoZXM= IENlbGVicmF0aW9u IC4uLi4uLi4uLi4uLi4u cHRyb2xsZXI= IFRDVQ== IGJ1bm55 44ON dXRvcmlhbA== IHVwc2NhbGU= IFN0YQ== IENvbG9zc3Vz IGNobG9yaWRl IFphYw== IFJlYXNvbnM= IEJyb29raW5ncw== IFdISVRF XVsv IExvc2U= OTA1 IHVuZGVyc2lkZQ== ZXJuZWxz IHZhcGU= ZG96ZW4= dXBwZXQ= IFNUT1A= bWF0aWNhbA== IFN0YXRlbWVudHM= aGVkZGFy UEFD Q3VzdG9tZXI= IG1lbW9z IFBK ZW5kYXJz IExpbWl0cw== bGF1Z2g= IHN0YWJpbGl6ZWQ= IEFMRUM= WUE= VXBncmFkZQ== YWxhbQ== IHRlY2hubw== IGFuZXc= Zm9yZXNlZW4= IGNvbGxlZ2lhdGU= IFB5cm8= IERpc20= IGZyb250bGluZQ== IGFtbW9uaWE= SVU= UXVpdGU= Sm9obm55 YXNzaW4= R09Q IFN0eWxlcw== IFNvdmVyZWlnbg== YWN0ZXJpYWw= NTQ5 IFJJUA== IExpc3Rz IDM2NA== IFJlY2Vw c29ja2V0 IEJ5cmQ= IENhbmRsZQ== QW5jaWVudA== IGFwcGVsbGFudA== ZW5mb3JjZW1lbnQ= YWNlYQ== YW5za2k= IG9sZHM= ODg2 IHNsdXJz IGVtcGlyZXM= IGJ1Y2tsZQ== IGFsaWVuYXRpb24= IEFiZXJkZWVu IHVuaWNvcm4= IG92ZXJyaWRpbmc= IExY cHBh IGRlc3Bpc2Vk IEJ1Z3M= IEJTVA== U291dGhlcm4= NTMz IGhhbGxtYXJr IFBvc3Rlcg== IHN0ZW1tZWQ= IHByaW5jaXBhbHM= IFRFQ0g= IFNhbmR3aWNo SXRhbHk= IGNoZWVzeQ== IFNldFRleHRDb2xvcg== IFByb3RlY3RpdmU= IENvaG4= Sk8= YXB0b3A= UmVhc29u TGVhZGVy IFVuZGVyc3RhbmQ= IEZyaWRheXM= IENvbnRpbnVvdXM= IGNsaXBwaW5n IFJ5ZQ== IGJlcnRo dGltZXI= YW5uaXM= cmVhY3Q= IGJ1ZmZhbG8= IFBhcmFz IDY1NQ== IHByZXNpZGVk IFN1bnJpc2U= IHZldHM= IGNsb3Zlcw== IE1jQ3VsbA== U3RyZW5ndGg= R0FO IGlsbGl0ZXI= IFByaWNpbmc= bMOp IHJlc2lzdG9y IGJydW4= IFN1ZmZvbGs= 0Ys= IExpdmVy UmVsZWFzZWQ= IHdoYXRz ODYw IE1lYXN1cmVz IGRlbm91bmNpbmc= IFJ5emVu IHNvdXZlbg== IGNhcmVnaXZlcnM= Y2hpbmk= IFNjYXJsZXR0 IHRyb3VnaA== Q29uZ3JhdHVsYXRpb25z IHRheGlz IFRyYWRpdGlvbg== aml0 IHRhYmxldG9w IGhpdGhlcnRv IGRpc2luZm9ybWF0aW9u b2ZmZW5zaXZl aHJh IERJU1RSSUNU IGNvbXBsaWNhdGU= Y2hlbmtv IFJlY29uc3RydWN0aW9u IHBhbHBhYmxl IGF1c3A= IDQyOA== IHNob3djYXNlcw== IFB1YmxpY2F0aW9u a25vd2xlZGdl aW5ub24= NDE5 IHJldHJpZXZhbA== YW5kZXJz IHJlZnV0ZQ== IGlucXVpcmVk Z3Vy IG5lZ2F0aXZpdHk= IGNvbnNlcnZl IGFmdGVybGlmZQ== IHByZXN1cHA= IEdpbGxlc3BpZQ== IG10 IERO VGFw IHBlcnBlbmQ= IFNteQ== ZG9lc24= IHNwaWxsaW5n IGh5cGVycw== S2F0ZQ== wq4s a2VwdA== IFBvd2VyZWQ= IGph IEtsdXg= YXJkZQ== YWJhbg== IDQ0NA== IGZsYXR0ZW5lZA== IEltcHJvdmVtZW50cw== dXJnYQ== IEt1bmQ= IGluc2NyaWJlZA== IGZhY3VsdA== IHVucHJlcGFyZWQ= IENvbnN1bWVycw== IHNhdGlzZmllcw== IHB1bG1vbmFyeQ== IGluZmlsdHJhdGlvbg== IGV4dGVybmFsbHk= IGNvbmdyYXR1bGF0aW9ucw== YWdoYW4= IGFpcmxpbmVy IGZsdW5n IGZseWVycw== R0Q= IHNuaXBwZXRz IHJlY3Vyc2l2ZQ== IG1hc3RlcmluZw== TGV4 IG92ZXJ0bHk= dmc= IGx1Y2tpbHk= IGVuY3Jv IExhbmNldA== IEFieXNzYWw= ZnVuY3Rpb25hbA== IHNvdw== IHNxdWlk IG5hcnJhdGlvbg== IG5hdWdodHk= IEhvbm91cg== IFNwYXJ0YW5z IHNoYXR0ZXI= IFRhY29tYQ== IENhbG9yaWVz IFJhY2Vz U3VibWl0 IHB1cnBvc2VmdWxseQ== d2F2 IFlvaw== RmVzdA== IEdlcnI= TWV0cm8= IGl0aW5lcg== ZmFtb3Vz ICJ7 aW5saW5l d2FzaGVy SXNzdWU= IENMSUVOVA== b3pv VmVyc2lvbnM= NzI1 IEdsb2Nr IHNoaWVsZGVk IFBDUg== RU5DWQ== IFdlbGQ= IFNpbXBs IHJlZGlyZWN0ZWQ= IEtoYW0= ICg+ IGxhYm91 IGRpYXBlcnM= c3Ns IGNlbGxhcg== b3JnYW5pc21z b3Jlc2M= IEJlcmtz ZGlkbg== U2hpcHBpbmc= Q2hlc3Q= IHVuZG9uZQ== IG1pbGxpb25haXJl IGNvcmRz IFlvdW5nZXI= YXBwcm9wcmlhdGVseQ== IHNlcXVlbHM= dXZl YW50aWNpcGF0ZWQ= IGxld2Q= IFNoaXJ0 IERtaXRyeQ== VmV0ZXI= IHNsYXlpbmc= IFlhcg== IGNvbXBsaWNhdGlvbg== SW93YQ== IEVyaWNh IEJMTQ== Z2lybGZyaWVuZA== Ym9kaWVk NjI2 MTk2Mw== IGludGVybWVkaWFyeQ== IGNvbnNvbGF0aW9u TWFzaw== IFNpZW0= b3dhbg== QmVnaW5uaW5n IGZpeG1l IGN1bG1pbmF0ZWQ= IGNvbmR1Yw== IFZvbHVudGVlcg== IHBvc2l0aW9uYWw= IGdyZWV0cw== IERlZmluaXRpb25z IHRoaW5rZXI= IGluZ2VudWl0eQ== IGZyZXNobWVu IE1vbWVudHM= IDM1Nw== YXRldXJz IEZlZEV4 c2c= Njk0 IGR3aW5kbGluZw== IEJPWA== c2VsYWdl IHRtcA== IHN0ZW4= IFN1dA== IG5laWdoYm91cmhvb2Rz IGNsYXNzbWF0ZQ== ZmxlZGdlZA== IGxlZnRpc3Rz IGNsaW1hdGVz QVRIRVI= IFNjeXRoZQ== dWxpZmZl IHNhZw== IGhvcHBlZA== IEZ0 IEVjaw== IENL IERvb21zZGF5 a2lkcw== IGdhc3BlZA== IG1vbmlrZXI= IExvZA== IENGTA== dGlvbnM= cnVtcw== Zm9saW9z IG1k IHVuY2Fubnk= IHRyYW5zcG9ydHM= IExhYnJhZG9y IHJhaWx3YXlz IGFwcGxpYW5jZQ== IENUUkw= 5oA= UG9wdWxhdGlvbg== IENvbmZlZGVyYWN5 IHVuYmVhcmFibGU= IGRvcnNhbA== IEluZm9ybQ== b3B0ZWQ= IEtJTEw= TWFyeA== IGh5cG9jcml0aWNhbA== cXVz IE51bWVyb3Vz IEdlb3JnaWFu IEFtYnJvc2U= IExvY2g= IGd1YmVybmF0b3JpYWw= IFhlb24= IFN1cHBvcnRz ZW5zZXI= ZWVseQ== IEF2ZW5nZXI= MTk2NQ== QXJteQ== IGp1eHRhcA== IGNob3BwaW5n IFNwbGFzaA== IFN1c3RhaW5hYmxl IEZpbmNo IDE4NjE= aWN0aXZl YXRtZWFs IEdvaGFu IGxpZ2h0c2FiZXI= IEdQQQ== dWd1 IFJFUEw= dmFyaWFibGU= IGhlcnBlcw== IGRlc2VydHM= YWNpb3VzbHk= IHNpdHVhdGlvbmFs d2Vla2x5 b2Js IHRleHRpbGU= IENvcm53YWxs IGNvbnRyYWNlcHRpdmVz IEFrZQ== XS0= 5LmL Oiw= IFdlbQ== IEJpaGFy ICcu IGJlcmU= IGFuYWxvZ3Vl IENvb2tpZXM= IHRha2VvZmY= V2hlZWw= IG1hamVzdGlj IGNvbW11dGluZw== MDIz IENvcnBzZQ== YXNzbWVudA== bWluaQ== IGdvcmlsbGE= IEFsYXM= ZXJlZQ== IGFjcXVhaW50YW5jZXM= IEFkdmFudGFnZQ== IHNwaXJpdHVhbGx5 IGV5ZWQ= cG13aWtp IEVuZGVy IHRyYW5zbHVjZW50 IG5pZ2h0dGltZQ== IElNQUdFUw== NTQ1 IEthbXA= IEZyZWFr IGln UG9ydGxhbmQ= NDMy IE1hdGE= IG1hcmluZXM= IGhvcnM= YXRlcmFzdQ== IEF0dHJpYnV0aW9u IC0tLS0tLS0tLQ== IGtpbnM= IEJFTE9X Kysr IHJlZWxpbmc= b2xlZA== IGNsdXR0ZXI= IFJlbGF0aXZl IDQyNw== QlVT IGF2ZXJ0 IENoZW9uZw== IEFibGU= IFByeW9y RGV2ZWxvcGVy IGVuY3ljbG9wZWRpYQ== IFVTQUY= IEdhcnJ5 U3BhaW4= QmxvY2tz IGV4cG9zaXRpb24= IEdhbWVyR2F0ZQ== V09S IHN0b2NrcGlsZQ== IGNsb3RoZWQ= IFRvbmU= IFJ1ZQ== dHVtYmxy IHRyZWFjaGVyb3Vz IGZyeWluZw== 0Yw= IFNwaA== IHJlc3RyYWludHM= IGVtYm9kaWVz IEdlcw== U2FmZXR5 IG5lZ290aWF0b3Jz bWluaW5n IEFwcGFsYWNoaWFu TE9T IEplbm5h IHBhc3NlcnM= 54s= c25hcA== IHNob3J0ZW4= Y3JlYXRvcg== IGlubnVtZXJhYmxl dXRoZXJsYW5k Njc0 IFdPTQ== IEFzY2VuZA== IEFybW9yeQ== IFRyYW5zYWN0aW9u S2ljaw== IHN1aXRjYXNl ZGF5TmFtZQ== IHdhc3RlZnVs bWFycmlhZ2U= IE1jQ2FiZQ== aXRlY2g= IE9zcw== Q2xvc3VyZQ== IFRyZWFzdXJlcg== IGluZGVjZW50 IER1bGw= IHJlc2lkZW5jZXM= MTk1OQ== IFNldHRsZW1lbnQ= SGFtaWx0b24= IHNlbGZpZXM= IFJhbmtpbmc= IEJhcmtsZXk= IEJvcmU= IFdDUw== IE1hcml0aW1l IEh1aA== IEZvcmVzdHJ5 IGN1bHRpdmF0aW5n IEJhbGxhcmQ= IGdhcnJpc29u IFNETA== OTMw IG5hc2NlbnQ= IGlycmVzaXN0aWJsZQ== IGF3ZnVsbHk= XC9cLw== IGVxdWF0ZQ== IGFudGhyb3BvbG9neQ== IFN5bHZpYQ== IGludGVzdGluZQ== IGlubm9jdW91cw== Y2Vzc2l2ZQ== YWdyYQ== IE1ldHJvaWQ= R3JhbnQ= ODU1 gZY= ICJf 44OD44OJ IGFwcHJhaXNhbA== IEZyZWRkeQ== MDQ2 IDQwNg== IDE4MzA= IGRvY2tpbmc= U3RhdGlj IHBvbnQ= IFZvbHRhZ2U= IFN0ZWFk IE1vcnRnYWdl IEpvbmFo WUw= Q0xBU1NJRklFRA== IGFzYmVzdG9z bmlrb3Y= IGNvbGxhZ2Vu IE9yYml0YWw= UG9ja2V0 Nzk5 IGh5YnJpZHM= aW5jaGVz IGludm9pY2U= dW5keQ== IGluZXF1YWxpdGllcw== VHJlbmQ= d2FzaGVk QkFMTA== IGx1Y2lk IENvbW1lbnRhcnk= IHdpdHR5 QnJhbmRvbg== IGJydWlzaW5n IDYyMA== ZXNjZW50 Ym94aW5n UE9M IDM3OA== UmVjdA== IGxpY2VuY2Vz IE1jR2Vl cHJlc3NlZA== RGFubnk= IGphbW1lZA== b3JkaW5hdGU= IGxldGg= IGRpc3Rpbmd1aXNoZXM= IFlhbWFoYQ== SUxT IEh1bWU= IENhdGVnb3JpZXM= Um9iZXJ0cw== Q2hhcnQ= IGJlZXRsZQ== IEdyYXZleWFyZA== ICgkKQ== b8Sf IHR3aWxpZ2h0 YXJlbGxh 4b0= IGJvb3Rocw== IEhIUw== IEZlbGRtYW4= IGV4Y2F2YXRpb24= IHBoaWxvc29waGllcw== YXRvZ3JhcGh5 IEdhcmFnZQ== dGVjaG5vbG9neQ== IHVuZm9yZ2V0dGFibGU= IHZlcmlmeWluZw== IHN1Ym9yZGluYXRlcw== RWxz IG5lYg== R2FtaW5n RU5B IEFjaGlldmVtZW50 aXR0ZXJz IEdhYmU= IGR1bXBz Zm9yY2Vy IHBvaWduYW50 IE1CQQ== IEhlaWRp aW1laQ== IG1hZ2Vz IGxpYmVyYXRl IGNpcmN1bWNpc2Vk IE1lcm1haWQ= IE1hdHRo dG9nZXRoZXI= IFdpY2hpdGE= IHN0b3JlZnJvbnQ= IEFkaW4= VklJ Rm91cnRo IGV4cGxvcmVycw== V0VS Tm90YWJsZQ== QnJvb2s= bWVucw== RmFpdGg= LS0tLS0tLS0t IEpvdQ== rLw= IHBpbmVhcHBsZQ== IGFtYWxn ZWxu YXJrYWJsZQ== IOOCteODvOODhuOCow== IOOCteODvOODhuOCo+ODr+ODsw== IG92YXJpYW4= IEVjaG9lcw== IGhhaXJjdXQ= IHBhdg== IGNoaWxsZWQ= YW5hc2lh IHN0eWxlZA== IGRhYg== bmlwZXI= IG1pbmlzdGVyaWFs IERVUA== VGFu IHN1bHBo IERldGVy IEJvaGVt b2Rhbg== IGVkdWNhdG9y 4pOY c3Bpcg== Q2hpY2tlbg== IEVsZWFub3I= IHF1aQ== IGhlYXZpZXN0 IGdyYXNwZWQ= VVJB IGNyb29rZWQ= SmVzc2ljYQ== cHJvYmxlbQ== IHByZWRldGVybWluZWQ= IG1hbmlhYw== IGJyZWF0aHM= IExhdWRlcmRhbGU= IGhvYmJpZXM= eXo= Q3JpbWU= IGNoYXJpc21h ZEw= IGxlYXBpbmc= IGtpdHRlbnM= QW5nZWxv IEpBQ0s= IFN1emFubmU= IGhhbHRpbmc= RU5USU9O IHN3YWxsb3dpbmc= IEVhcnRocXVha2U= IGVpZ2h0ZWVudGg= IE5JQw== IElORg== IENvbnNjaW91cw== IHBhcnRpY3VsYXJz Y2lyY2xl NzQw IGJlbmV2b2xlbnQ= IDc0Nw== IDQ5MA== IHJ1bmRvd24= IFZhbGVyaWU= IEJVUg== IGNpdmlsaXNhdGlvbg== IFNjaG4= V0I= b3RpZGU= aW50ZXJuYXRpb25hbA== IGpvaG4= IDE5MDI= IHBlYW51dHM= IGZsYXZvcmVk a3Vz IHJvYXJlZA== IGN1dG9mZg== 6aM= IG9ybmFtZW50 IGFyY2hpdGVjdHVyZXM= IDM2OQ== b2xvcg== IFdpbGRl IENSQw== IEFkanVzdGVk IHByb3Zva2luZw== bGFuZGlzaA== IHJhdGlvbmFsaXR5 IGp1c3RpZmllcw== IGRpc3BlbA== IGFtZXJpYw== IFBvbGVz 2Kk= IGVudmlz IERvb2RsZQ== 5L2/ aWdzYXc= YXVsZHJvbg== VGVjaG5pY2Fs VGVlbg== dXBoZW0= IFhpYW5n IGRldHJhY3RvcnM= IFpp IEpvdXJuYWxpc3Rz IGNvbmR1Y2l2ZQ== IFZvbHVudGVlcnM= IHNk S25vd2luZw== IHRyYW5zbWlzc2lvbnM= IFBMQU4= IExJQg== IGFsbHVkZWQ= IG9iZQ== IGRvcGU= IEdvbGRzdGVpbg== IHdhdmVsZW5ndGhz IERlc3RpbmF0aW9u bmRh dWdp IGF0dGVudGl2ZQ== IExlYW4= cmFsdGFy IG1hbmc= bWJ1ZHM= YWtpbmdz YmVuZGVy IGFjY29s IGNyYXdsZWQ= Tk9X TWlubmVzb3Rh IGZsb3VyaXNoZWQ= IFp1cA== IFN1cGVydmlzb3I= IE9saXZpZXI= RXhjZWxsZW50 IHdpZGVu RG9uZQ== IHdpZw== IG1pc2NvbmNlcHRpb25z Q29ycA== V2Fu IHZlbmVyYWJsZQ== IE5vdGFibHk= IEtsaW5nb24= YW5pbWF0ZQ== Qm9vc3Q= IFNBWQ== bWlzc2luZw== aWJsaW9ncmFwaHk= bWVsb24= IHBheWRheQ== 2LM= Ym9sZQ== IHZlaWxlZA== IEFscGhhYmV0 SXRhbGlhbg== IGV2ZXJsYXN0aW5n IFJJUw== IENyZWU= cm9tcHQ= IGhhdGluZw== IGdyaW5uaW5n IGdlb2dyYXBoaWNhbGx5 T1NI IHdlZXBpbmc= IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IGltcGVjYw== TGV0dGVy IGJsb2F0ZWQ= UExB IEZlaW4= IHBlcnNldmVy VGh1bmRlcg== IGF1cg== IFJM IHBpdGZhbGxz 4pa6 IHByZWRvbWluYW50 IDUyNQ== NzE4 QVBF NzE0 IGZhcm1sYW5k IFFpYW8= IHZpb2xldA== IEJhaGFtYXM= IGluZmxpY3Rpbmc= IEVmZmljaWVuY3k= IGhvbWVicmV3 IHVuZGVydG9vaw== IGN1cmx5 IEhhcmRpbmc= bWFuaWE= NTk2 IHRlbXBlcmVk IGhhcnJvd2luZw== IFBsZWRnZQ== IEZyYW5rZW5zdGVpbg== 6Ko= TW90aW9u IHByZWRpY3RhYmx5 IEV4cGxvc2lvbg== b2N1c2luZw== ZXJk Y29sbw== RkZFUg== IGJhY2tmaWVsZA== IFZJREU= dWVibA== TmFycg== IEFyZ3VtZW50 IGdlbm9taWM= IGJvdXRpcXVl IGJhdHRlZA== IEJpbmFyeQ== IGdhbWI= IFJoeXRobQ== Njcz IGFmbG9hdA== IE9seW1waWE= WUlORw== IGVuZGlm aXNpbg== IHdpbnRlcnM= IHNjYXR0ZXJpbmc= SXY= RGlzdGFuY2U= IHRydQ== IENvbWZvcnQ= IG5leHVz IGFpcmZsb3c= IEJ5emFudGluZQ== cGF5ZXJz Y29uaQ== IEJldHN5 RGVhbA== IE51Zw== IENvbnRpbmVudA== cmVkaWJseQ== IG9wdGltaXppbmc= YWxiZWl0 IGVjc3RhdGlj IFByb3Rv 57c= aXZvdA== 4paE ZW1w cm91bmRlcg== IGNsb3V0 IElTVA== NjYz IERvbGxhcnM= IERBQw== IHN1YnNjcmliZWQ= IHJlaGVhcnNhbA== IGFtcHM= IFNoYW5n ZXNt IHNwcmlua2xl IGFzc2FpbGFudA== IE9v IENvaW5iYXNl VGFjdA== IHJldGluYQ== IG51bnM= Uk9O YXR0bw== IGp1Zw== IFNWRw== IGJpa2luaQ== IEZJTEU= IEZvdW5kZXJz ZXBvcnQ= IEtQ IHJlc3RvcmVz IFRoaWNr IGFzaG9yZQ== IGFwcHJvdmFscw== UmVuZGVy TUFH R3JhaGFt IENvcnRhbmE= 44Oz44K4 c3No b3JpYW5z YXJzaXR5 IEluc3BpcmVk dXBwZXI= IHNpZ25hbGxpbmc= IHJlYnVrZQ== IGZsYXJlcw== IGRvd250aW1l U3R1ZGllcw== IHN0YWduYXRpb24= IFNlcXVlbmNl IGdydW50 IGFzc3VyZXM= IFBMQQ== NTky IGludHJhdmVu ZGVwZW5k U3VzYW4= IE1hbnppZWw= TWFuaWE= Q29udHJhY3Q= IHNsYW1z IGN1bHR1cmVk IGNyZWRpdG9y TElTVA== IEhVTQ== IENoYXR0YW5vb2dh c2VydmVk IGNsb2FrZWQ= IEZUUA== cG93ZGVy IFN0ZWxsYQ== dWN0aXZl IGNoZWFwbHk= IE1VQ0g= IEdhbGlsZW8= IHN1aXRlcw== c3BlZWNo IGRlbGliZXJhdGlvbnM= IENoaXBz q5g= QmFsYW5jZQ== IFd5bm5l IEFrcm9u QXNzZXQ= IGhvbm91cmVk IGVkZ2Vk TGlrZXdpc2U= YW5pbW91cw== IFdhZ2U= IEV6ZWs= YWR2ZXJ0aXNlbWVudA== IFJUWA== IE1BRA== IG1pZ3JhdGluZw== IFNRVQ== IDQ3NQ== RWRpdGVk IHNob3J0aGFuZA== IEJhc2ljcw== IGNyb3RjaA== IEVWRU4= IHZt ZWZmaWNpZW5jeQ== IGNhbHZlcw== IEZyaWU= IEJyaWxsaWFudA== IHN0cmlrZXJz IHJlcGVudGFuY2U= IGFydGVyaWVz cmw= QmVk aGFw IGNyeXB0b2dyYXBoeQ== IFNhYnJlcw== IDQxNA== dmlrcw== aWhhcmE= YXBzZXM= VGFsa2luZw== IGludGVydHdpbmVk IGRvY2tz IGFsbGVsZQ== IEFydGlmYWN0 IEhJTQ== dG9ybg== 55U= IG9wYWNpdHk= IEVseQ== b3N1a2U= IG5pcHBsZQ== IGhhbmR3cml0dGVu IFZL IENoYW1iZXJsYWlu IExhb3M= aWdyYXBo Z3Jvdw== IHRyaWxsaW9ucw== IGRlc2NlbmRhbnQ= IFNhaWxvcg== YXN1cmluZw== IGNlaWxpbmdz IFdhcmVob3VzZQ== Zmx5aW5n IEdsb3c= IG5vbnQ= IG1pc2NhcnJpYWdl IHJpZ3M= IG1pbmlzdHJpZXM= IGVsYWJvcmF0ZWQ= IGRlbHVzaW9uYWw= IEh1bWFuZQ== IDM3OQ== bmV0cw== IGJsYWNrb3V0 YWRkZXJz IG5w IFRpcmU= cm9zYw== IHN1YmRpdg== IGxpbmthZ2U= IGNocm9ub2xvZ2ljYWw= IEhFUk8= IHJlc2V0dGxlbWVudA== IFZpbnls IHBhc3RvcmFs IE1vYmls IEJhcmJhcg== Q29vbGRvd24= IEZyaXR6 Y3JpbWluYWw= cmVwZQ== IGJlbGxpZw== IEJyZWVk IDQxOA== IHNlbWJsYW5jZQ== aWpr IGN1cnRhaWw= IGNsaW5jaA== Y29udGFpbmVk IFByb21wdA== YXN0b24= IHdp IHB1cnN1aXRz NTE1 IEdsb3Nz IGZsaXBz IGNvdXBvbnM= IGNsb25pbmc= IExpa2VseQ== UmVtb3ZlZA== IFF1YXJ0eg== cmljZXM= IFNwZWFycw== IHBpb3Vz IGRlcHJlY2lhdGlvbg== IERhcmU= b3VuY2Vz YW1heg== T250 IHBpbm5hY2xl ZG9ja2Vy MDI2 IFd5cg== IFByb3Blcg== y4g= bmls Qnl0ZXM= IHNlZWtlcg== dHJpYWw= IHVuZm9sZHM= IE1hcnNl IGV4dHJhdmFnYW50 IFN1cnZpdm9ycw== UkVEQUNURUQ= IFNwZWVkd2F5 IENyYWlnc2xpc3Q= c3VibWl0 IEdlbmVyYXRpb25z IHVwaG9sZGluZw== IGJsb29kc3RyZWFt IE1pc3Npb25z IExhd24= IGxpbWJv ZW5laQ== SHVo IFdpbGRjYXRz cHJlcA== IE1hcmt1cw== IEZvcmJpZGRlbg== cml0aWM= SU5P IGV4aGliaXRpbmc= cmVxdWVudA== Y2h1aw== IGhhYml0dWFs IENvbXBhdGliaWxpdHk= RHJhZw== UklQVA== dWphaA== R1JPVU5E IGRlbGlucXVlbnQ= IGJ1cm5lcg== IGNvbnRlbXBvcmFyaWVz IGdpbW1pY2s= bG9hZHM= IG5venpsZQ== cG9kY2FzdA== IFdhaw== IFN0YXRlbg== IEt1aA== 44GT aW50ZXJydXB0ZWQ= IGludmluY2libGU= IEJ1cm5ldHQ= Y2lnYXJldHRl IFBlYmJsZQ== IFRlbXBvcmFyeQ== IE1hcmlubw== NTgy IHdhc3RlbGFuZA== aWRlbnRseQ== VHg= IHJpdGU= IFBhbmFzb25pYw== IE1pZGRsZXM= IEhvcnRvbg== YWV1cw== IGN1cmluZw== IG1hdHM= IGFkam91cm4= IGZlYXJzb21l cGV6 Ym9hdHM= IHByb3BlbGw= IGNvbmZsaWN0ZWQ= IEFuZ2Vy IGluc3VyZ2VudA== S2FybA== IGNvYWxlcw== IHNvdXRod2VzdGVybg== IGRpc3N1 IE92ZXJ0 KioqKioqKioqKioq IGJveGVk IEJydW5l YWFh IGdhcmRlbmluZw== IEVuZ2Vs dHJhY2tz IHB1cmlmaWVk IHBsYWNlaG9sZGVy IExpa2Vz IGRhbg== R2Fi IGVjdA== IEZhdw== IEVsaW90 ICcs b3Ryb3BpYw== IFJ1aW4= aGVkb24= IGNhdWw= IGFmdA== IENhZGlsbGFj Z2hh YXNzaWFu dWRlYg== IFRpY2s= IGFkanVzdHM= QVJHRVQ= NTM3 aXNjaGU= YW50eQ== IEZyaWVkcmljaA== IEJsaXp6 IEFPTA== Q2FtcGFpZ24= IG1hbW1hbA== IFZlaWw= IEtldg== IE1hdXJpdA== IERhbWllbg== TmF0aW9u RWFzdGVybg== IHs6 ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ== IHN0ZXJlb3R5cGljYWw= IGF0dGlj IEN5Ym9yZw== cmVxdWlyZQ== IGF3YXJkaW5n IFBhcHVh YnRu YmVudA== Qm9v ICg9 IFhhbmRlcg== IFNvbWVyc2V0 IGNhdGNoeQ== IGNlcnRpZnk= U1RSVUNU IGl0YWw= IHRpZGVz IEJyYW5kcw== R3JheQ== Y29tcGV0aXRpdmU= IGN1cmF0b3I= IERH b21pbml1bQ== IEdNT3M= Y2lhdGluZw== IENhcm1lbg== b3dhcmQ= QmFsdGltb3Jl IHJnYg== Q3U= IHdpcGVz c3BlbGw= SVRORVNT IHN1bW1hcml6ZXM= IFJldmlz IHdoaXN0bGVibG93ZXJz IEJyZWFjaA== IGNyb2NoZXQ= a29z ZXdza2k= IHJlcGV0 IGNyaW1zb24= IEthcmFjaGk= cmVhZGFibGU= ZGltZW5zaW9u IElnb3I= aWxkZWQ= IFplZA== IEtlYW5l IENvc21ldGlj REVQ IHJldHJlYXRpbmc= IFVB ZW5zaWNhbA== IGR1c2s= IERpY2tlbnM= IGFyZW5hcw== IFBhc3NhZ2U= bGV2ZWxz IGN1cnY= UG9wZQ== IGNob3Jlcw== IEVsaXNl IENvbXBhc3M= YnVi IG1hbW1hbGlhbg== IFNhbnNrcml0 IEFOQw== IENyYWNr UXVhbA== TGF1bg== YW1wdW5r IGxlYXJuZXJz IGdsYW1vcm91cw== IGZ1cnRoZQ== ZXJtb3R0 Y2FuZA== R2VuZXJpYw== IG5hcnJhdGVk IGRpc29yZGVybHk= IFRyYW5zYWN0aW9ucw== IERldGVudGlvbg== IFJva3U= xI0= IHVuZGVyc3RhdGVtZW50 IFNhdXI= IFJvZHJpZ28= IEFTQVA= U2lu IHJlam9pY2U= TWV0aG9kcw== IGVsZWN0cm9kZQ== IHdvcnNoaXBwZWQ= IGlkaQ== IFBoeXNpY2lhbnM= IHBvcHVw IGRlZnQ= IFJlbW92YWw= IEJ1ZW5vcw== dmVyYnM= IGZ1bms= dXNoYQ== cmljdGlvbg== b3JlYQ== IEJhbmdhbG9yZQ== IEtlbm9iaQ== enpp IG5vcm1hdGl2ZQ== IGdvYmxpbnM= IGNhZmVz IFVOQ0xBU1NJRklFRA== IEZpcmVk U0lHTg== IHNjbGVyb3Npcw== IFZvdGVy IFNvbm55 IEV4dGVuZA== IEVWcw== QXJzZW5hbA== IHBzaQ== IHdpZGVzdA== IFR1cw== IGxvb21z IGp1c3RpZnlpbmc= IEdyYW5nZXI= 6K8= UmVmZXI= NTgz IGZsb3VyaXNoaW5n YWJyZQ== IHJhdmU= IENvbnRyYQ== IDE4OTg= QWRkcw== IGZ1bA== IENvb2tl c29tZW9uZQ== PSM= Njcx IHlhaw== IGFydGU= IE1pc2NlbGxhbmVvdXM= IERldGVjdGlvbg== IENsYW5jeQ== 4oE= YXNzaWVz IHZhbGlhbnQ= IEZlbWluaXN0 Y29ycnVwdGlvbg== VmVs UGVhcg== IHN1Y2NpbmN0 IHF1aWNrZXN0 a3c= IHNwaXR0aW5n IExpYnJhcmllcw== 5YWJ YW50eg== RGFk IFNwZWNpZmljYXRpb25z cnVwdWxvdXM= YW5kcg== UkVTVUxUUw== IHNub3diYWxs IHByZWRpcw== IEJheHRlcg== IE51cnNpbmc= IENoYWZm c3dl IG91dGFnZQ== IG5lc3Rpbmc= IG5vdG9yaWV0eQ== dHJpZ2dlcg== b25pdGU= am9u IGZvdQ== b29rZWQ= IENlbGVicml0eQ== cmVhbGl0eQ== IGZhdGln IGh1Z2dpbmc= IGJvdGhlcnM= IFBhbnplcg== IENoYW5kcmE= ZmlndXJlZA== IHZvbHRz IENsb3Vkcw== IGZlZWJsZQ== IEN1cnZl IEFzdXM= Nzg2 YWJzb3I= IFZJQ0U= IEhlc3M= IG1hbnVmYWN0dXJlcw== IGdyaXp6 IFBvd2VyZnVs YWNpZA== IHN1YnNlY3Rpb25z IEtydWdtYW4= IEFscHM= aXN1 IHNlcXVlc3Q= IFVsdHJvbg== IFRpbmtlcg== IEdvb3Nl IG1pc21hdGNo QXR0b3JuZXk= IG1vcnBob2xvZ3k= IFNpeGVycw== dXR0ZXJlZA== IEVMRUNU Z3Jhbg== UnVzc2VsbA== IEdTTA== IGZvcnRuaWdodA== IC4p IGFwb3N0bGU= cHJvbmU= ZWxpc3Q= VW50aXRsZWQ= IEltcGxlbWVudGF0aW9u aXN0b3Jz IHRhbmtlcg== IHBsdXNo IGF0dGVuZGFudHM= IFRpaw== IEdyZWVud2ljaA== IFlvbg== IFNQTA== Y2VsbHM= dW50bGVk U29sdXRpb24= IFF1w6k= IHZhY2F0ZWQ= IHVwdGljaw== IE1lcmlkaWFu 5oM= IERyaWxs OTI1 NTg0 IHJlbm92YXRlZA== IEt1YnJpY2s= enlr IGxvdXN5 cHBlbA== b2h5ZHJhdGU= IEl6enk= bGVzaWFzdGljYWw= Q0ND IEFqYXg= IGFkYXB0ZXJz IFBldHJhZXVz IGFmZmlybWF0aW9u IFNUT1I= bGVtcw== YWRvZXM= IENvbnN0YW50aW5vcGxl IHBvbmllcw== IGxpZ2h0aG91c2U= IGFkaGVyZW50cw== IEJyZWVz b21vcnBoaWM= RmlnaHRpbmc= IHBsYXN0ZXI= IFBWQw== IE9ic3Q= IGRlYXJseQ== IFRvb3Ro aWNrc29u IHNoYW1pbmc= UGxleA== QWdn IOKApiI= IHN1YnJlZGRpdHM= IHBpZ2Vvbg== IFJlc2lkZW50aWFs IFBhc3Npbmc= IGx1bQ== IFBlbnNpb24= IHBlc3NpbWlzdGlj IDQzMg== emluc2tp Y2FkZQ== MDc1 IGFwb2xvZ2lzZWQ= aXlhaA== UHV0dGluZw== IGdsb29teQ== IEx5bWU= PS09LT0tPS09LT0tPS09LQ== IFRvbWU= IFBzeWNoaWF0cmlj IEhJVA== Y21z YXBvbG9n IGJyZWFrZXI= IGRlZXBlbg== IHRoZW9yaXN0 IEhpZ2hsYW5kcw== IGJha2Vy IHN0YXBsZXM= IGludGVyZmVyZWQ= IEFib3J0aW9u am9pbmVk Y2h1 IGZvcm11bGF0ZQ== IHZhY2NpbmF0aW9ucw== IGJhbnRlcg== cGhldXM= IG91dGZpZWxkZXI= IE1ldGVy ICMjIyMj IDE4OTU= IG5hcnJvd2luZw== IFNUT1JZ ZnA= IENTVA== aWdub3Jl IHByb2NsYWltaW5n IFJV IEJBTEw= eW5h NjUz IHBvc2l0 UFJF NTk0 IFJlZ2lzdHJhcg== IFBpbGdyaW0= aWNpbw== IHByZXR0 IGxpZmVsZXNz IF9fXw== TmVpZ2g= IENodXJjaGVz b3Jubw== IG9yY3M= IGtpbmRyZWQ= IEF1ZGl0 IG1pbGxlbm5pYWw= IFBlcnNpYQ== Z3Jhdml0eQ== IERpc2FiaWxpdHk= IERBUks= V3M= b2Rvbg== IGdyYW5kZGF1Z2h0ZXI= IEJyb29rZQ== IEFEQQ== RVJB IHBpY2t1cHM= IFdpbGtpbnNvbg== IFNoYXJkcw== IE5L IGV4cGVs IEtpc2x5YWs= IGphcmdvbg== IHBvbGFyaXplZA== aWFuZQ== UHVibGlzaGVy IHJlYnV0dA== IGFwcHJlaGVuc2lvbg== IEtlc3NsZXI= IHByaXNt RlVM MTk2NA== IExvbGw= 5L8= bGV0aGFs xZ8= IGdoZXR0bw== IGJvdWxkZXI= IFNsb3dseQ== IE9zY2Fycw== IEluc3RydWN0aW9u IFVsdHI= IE1vZQ== TmljaA== IFBBVEg= KCo= IFJFTEVBU0U= dW5pbmc= cm91c2U= ZW5lZw== IHJlaW1i IERldGVjdGVk RG9T IHN0ZXJsaW5n IGFnZ3JlZ2F0aW9u IExvbmVseQ== IEF0dGVuZA== aGlnaGVy IGFpcnN0cmlrZQ== a3Nvbg== U0VMRUNU IGRlZmxhdGlvbg== IEhlcnJlcmE= Q29sZQ== cml0Y2g= IGFkdmlzYWJsZQ== RmF4 IHdvcmthcm91bmQ= IHBpZA== bW9ydGVt ZXJzZW4= IHR5cG8= IGFsdW0= Nzgy IEphbWFs c2NyaXB0cw== IGNhcHRpdmVz IFByZXNlbmNl IExpZWJlcm1hbg== YW5nZWxv IGFsY29ob2xpc20= YXNzaQ== IHJlY2l0ZQ== IGdhcGluZw== IGJhc2tldHM= IEdvdQ== QnJvd3Nlcg== bmVhdQ== IGNvcnJlY3RpdmU= dW5kYQ== c2NvcmluZw== IFhE IGZpbGFtZW50 IGRlZXBlbmluZw== IFN0YWlubGVzcw== SW50ZWdlcg== IGJ1Z2d5 IHRlbmFuY3k= IE11YmFyYWs= IHR1cGxl IERyb2lk IFNpdHRpbmc= IGZvcmZlaXQ= IFJhc211c3Nlbg== aXh0aWVz ZXNp IEtpbW1lbA== IG1ldGljdWxvdXNseQ== IGFwb3B0 IFNlbGxlcg== MDg4 ZWNha2U= aGVtYXRpY2FsbHk= VE4= IG1pbmRsZXNz IGRpZ3M= IEFjY29yZA== b25zZW5zZQ== ZW1pbmc= YnJhY2U= IGVCb29r IERpc3RyaWJ1dA== IEludmVzdG1lbnRz d3Q= XSks YmVoYXZpb3I= NTYz IGJsaW5kaW5n IFByb3Rlc3RlcnM= dG9waWE= IHJlYm9ybg== IEtlbHZpbg== IERvdmVy IERhaXJ5 IE91dHM= IFsv z4A= YnA= IFZhbml0eQ== IFJlY2Fw IEhPVVNF IEZBQ0U= IDQyMg== Njky IEFudGlvY2g= Y29va2Vk IGNvbGxpZGU= IGFwcg== IHNsZWVwZXI= IEphcnZpcw== IGFsdGVybmF0aXZlbHk= IExlYXZlcw== IE1hdw== IGFudGlxdWl0eQ== IEFkaW5pZGE= IGFidXNlcg== UG9rw6ltb24= IGFzc29ydGVk IFJldmlzaW9u IFBpYW5v IEdpZGVvbg== T2NlYW4= IHNhbG9u IGJ1c3RsaW5n b2duaXRpdmU= IFJhaG1hbg== IHdhaXRlcg== IHByZXNldHM= IE9zaA== IEdIQw== b3BlcmF0b3I= IHJlcHRpbGVz IDQxMw== IEdhcnI= IENoYWs= IGhhc2hlcw== IGZhaWxpbmdz IGZvbGtsb3Jl IGFibA== IENlbmE= IE1hY0FydGh1cg== IENPVVJU IHBlcmlwaGVyeQ== YXBwZXJz IHJlY2tvbmVk IEluZmx1 IENFVA== IDM3Mg== IERlZmluaXRpdmU= YXNzYXVsdA== NDIx IHJlc2Vydm9pcnM= IGRpdmVz IENvaWw= REFR IHZpdmlkbHk= IFJK IEJlbGxldg== IGVjbGVjdGlj IFNob3dkb3du IEtN aXBlZA== cmVldGluZ3M= IEFzdWth TGliZXJhbA== IM+E IGJ5c3RhbmRlcnM= IEdvb2R3aW4= dWtvbmc= U2l0 IFRyZW0= IGNyaW1pbmFsbHk= IENpcmN1cw== Y2hyb21l ODg3 IG5hbm9w IE9iaQ== IExPVw== b2do IEF1dGhvcnM= b2J5bA== VXJiYW4= IHRp IFdlaXI= dHJhcA== YWd5 IHBhcmVudGhlc2Vz IG91dG51bWJlcmVk IGNvdW50ZXJwcm9kdWN0aXZl IFRvYmlhcw== dWJpcw== UGFyc2Vy U1RBUg== IHN5bmFwdGlj IEdlYXJz IGhpYmVy IGRlYnVua2Vk IGV4YWx0ZWQ= YXdhdHRz SE9V Q2h1cmNo IFBpeGll IFVyaQ== IEZvcm1hdGlvbg== IFByZWRpY3Rpb24= Q0VP IHRocm90dA== IEJyaXRhbm4= IE1hZGFnYXNjYXI= 64s= IGJpbGxib2FyZHM= IFJQR3M= IEJlZXM= Y29tcGxldGVseQ== RklM IGRvZXNudA== IEdyZWVuYmVyZw== cmV5cw== IHNsaW5n IGVtcHRpZWQ= IFBpeGFy IERoYXJtYQ== bHVjaw== aW5ndWlzaGVk IGVuZG90 IGJhYnlz MDU5 Y2hlc3Q= cmF0cw== IHJpZGRlbg== IGJlZXRsZXM= IGlsbHVtaW5hdGluZw== IGZpY3RpdGlvdXM= IFByb3ZpbmNpYWw= IDc2OA== IHNoZXBoZXJk IFJlbmRlcg== IDE4OTY= Q3Jldw== IG1vbGRlZA== IFhpYW9taQ== IFNwaXJhbA== IGRlbGlt IG9yZ2FuaXNpbmc= IGhvb3Bz IEJlaQ== emhlbg== IGZ1Y2tpbg== IGRlY2Fk IHVuYmlhc2Vk YW1teQ== c3dpbmc= IHNtdWdnbGVk IGtpb3M= IFBFUlNPTg== IElucXVpc2l0b3I= IHNub3d5 IHNjcmFwaW5n IEJ1cmdlc3M= UHRy YWdhbWU= Ulc= IGRyb2lk IEx5cw== IENhc3NhbmRyYQ== SmFjb2I= IDM1NA== IHBhc3R1cmU= IGZyYW5j IFNjb3RjaA== IEVuZHM= IElHRg== ZGVmaW5pdGlvbg== IGh5c3RlcmljYWw= IEJyb3duZQ== Nzcx IG1vYmlsaXphdGlvbg== 5pU= aXF1ZW5lc3M= VGhvcg== IHNwZWFyaGVhZGVk IGVtYnJvaWxlZA== IGNvbmplY3R1cmU= anVkaWNpYWw= Q2hvaWNl IHBhcGVyYmFjaw== UGly IHJlY292ZXJz IFN1cmdl IFNob2d1bg== IFBlZGlhdHJpY3M= 44Gg IHN3ZWVwcw== IExhYm9yYXRvcmllcw== IFBhY2tz YWx1cw== YWRkaW4= IGhlYWRsaWdodHM= Z3Jh RXZpZGVuY2U= Q09MT1I= QWRtaW4= irE= IGNvbmNvY3Q= c3VmZmljaWVudA== IHVubWFya2Vk IHJpY2huZXNz IGRpc3NlcnRhdGlvbg== IHNlYXNvbmluZw== IGdpYg== IE1hZ2Vz dW5jdGlvbnM= IE5pZA== Y2hlYXQ= IFRNWg== Y2l0aXplbnM= IENhdGhvbGljaXNt bmI= IGRpc2VtYmFyaw== IFBST0dSQU0= YXF1ZXM= VHlsZXI= T3Jn IFNsYXk= IE5lcm8= IFRvd25zZW5k SU5UT04= dGVsZQ== IG1lc21lcg== OTAx IGZpcmViYWxs ZXZpZGVuY2U= YWZmaWxpYXRlZA== IEZyZW5jaG1hbg== IEF1Z3VzdGE= MDIx IHNsZWQ= IHJldXNlZA== IEltbXVuaXR5 IHdyZXN0bGU= YXNzZW1ibGVk TWFyaWE= IGd1bnNob3Rz IEJhcmJpZQ== IGNhbm5hYmlub2lkcw== IFRvYXN0 IEtpbmRlcg== SVJE IHJlanV2ZW4= IGdvcmU= IHJ1cHR1cmU= IGJyZWFjaGluZw== IENhcnRvb24= IDQ1NQ== IFBhbGVv NjE0 IHNwZWFycw== IEFtZXM= YWJ1cw== TWFkaXNvbg== R1JPVVA= IGFib3J0ZWQ= eWFo IGZlbG9u IGNhdXNhdGlvbg== IHByZXBhaWQ= IHBpdHRlZA== b3BsYW4= IFNoZWxsZXk= IFJ1c3Nv IFBhZ2Fu IHdpbGxmdWxseQ== IENhbmF2ZXI= dW5kcnVt IFNhbGFyeQ== IEFycGFpbw== cmVhZGVy IFJhdGlvbmFs IE92ZXJzZQ== IENhdXNlcw== ICou IHdvYg== S2VpdGg= IENvbnNlbnQ= bWFuYWM= Nzcz NjIz IGZhdGVmdWw= ZXRpbWVz IHNwaXJpdGVk IER5cw== IGhlZ2Vtb255 IGJveWNvdA== IEVucmlxdWU= ZW1vdXRo IHRpbWVsaW5lcw== IFNhaGFyYQ== IFJlbGF4 IFF1aW5jeQ== IExlc3NvbnM= IEVRVQ== U0VB Tks= IENvc3Rjbw== SW5jcmVhc2U= IG1vdGl2YXRpbmc= IENob25n YW1hcnU= IERpdmlkZQ== IHBlZGlncmVl IFRhc21hbmlh IFByZWx1ZGU= TGFz OTQw NTc0 IGNoYXU= IFNwaWVnZWw= dW5pYw== LS0+ IFBoaWxpcHM= IEthZmth IHVwaGVhdmFs IHNlbnRpbWVudGFs IHNheA== IEFraXJh c2VyaWFs TWF0cml4 IGVsZWN0aW5n IGNvbW1lbnRlcg== IE5lYnVsYQ== cGxldHM= IE5hZHU= IEFkcmVu IGVuc2hy IFJBTkQ= ZmluYW5jaWFs IENseWRl dXRoZXJmb3Jk IHNpZ25hZ2U= IGRlbGluZQ== IHBob3NwaGF0ZQ== cm92ZXJzaWFs ZmFzY2lzdA== IFZhbGw= IEJldGhsZWhlbQ== IGZvcnM= IGVuZ2xpc2g= U29saWQ= TmF0dXJl IHZh IEd1ZXN0cw== IHRhbnRhbA== IGF1dG9pbW11bmU= Ozs7Ozs7Ozs7Ozs7 IFRvdGFsbHk= IE92 IGRlZmVuY2Vz IENvY29udXQ= IHRyYW5xdWls IHBsb3k= IGZsYXZvdXJz IEZsYXNr 44Ko44Or IFdlc3Rvbg== IFZvbHZv ODcw IG1pY3JvcGhvbmVz dmVyYmFs UlBH IGlpaQ== O30= MDI4 IGhlYWRsaW5lZA== IHByaW1lZA== IGhvYXJk IFNoYWQ= IEVOVEVS IHRyaWFuZ3VsYXI= IGNhcGl0 bGlr IEFuY2llbnRz IGxhc2g= IGNvbnZvbA== IGNvbG9uZWw= ZW5lbXk= R3Jh IHB1YnM= dXR0ZXJz IGFzc2lnbnM= IFBlbmV0 IE1vbnN0cm91cw== IEJvd2Vu aWx2ZXI= SGF1bnRlZA== IERpbmc= c3RhcnRlZA== cGxpbg== IGNvbnRhbWluYW50cw== IERPRQ== ZmZlbg== IFRlY2huaWNpYW4= Unk= IHJvYmJlcnM= IGhvdGxpbmU= IEd1YXJkaW9sYQ== IEthdWZtYW4= cm93ZXI= IERyZXNkZW4= IEFscGluZQ== RWxm IGZtdA== IFNhcmQ= dXJzZXM= Z3B1 VW5peA== IHVuZXF1aXZvY2FsbHk= IENpdGl6ZW5zaGlw cXVhZA== bWlyZQ== IFN3ZWVuZXk= QmF0dGVyeQ== NjE1 IHBhbmNha2Vz IG9hdHM= TWFwcw== IENvbnRyYXN0 bWJ1ZHNtYW4= IEVQUw== IHN1YmNvbW1pdHRlZQ== IHNvdXJjaW5n IHNpemluZw== IEJ1ZmZlcg== IE1hbmRhdG9yeQ== IG1vZGVyYXRlcw== IFBhdHRlcm5z IENob2NvYm8= IFphbg== IFNUQVRFUw== IEp1ZGdpbmc= IEluaGVy Kjo= IGJpbA== IFllbg== IGV4aGlsYXI= b2xsb3dlcg== emVycw== IHNudWc= bWF4aW11bQ== IGRlc3BpY2FibGU= IFBBQ0s= IEFubmV4 IHNhcmNhc3RpYw== IGxhdGV4 IHRhbXA= IFNhbw== YmFo IFJldmVyZW5k IENoaW5hdG93bg== IEFVVA== ZG9jdW1lbnRlZA== IEdBQkE= IENhbmFhbg== INmF IGdvdmVybnM= cHJldg== RXNj IEVzdGltYXRlcw== T1NQ IGVuZGVhdm91cg== IENsb3Npbmc= b21ldGltZQ== ZXZlcnlvbmU= IHdvcnNlbg== IHNjYW5uZXJz IGRldmlhdGlvbnM= IFJvYm90aWNz IENvbXB0b24= IHNvcmNlcmVy IGVuZG9nZW5vdXM= IGVtdWxhdGlvbg== IFBpZXJjaW5n IEFwaA== IFNvY2tldA== IGJvdWxk IE9V IEJvcmRlcmxhbmRz IDE4NjM= R29yZG9u IFdUTw== IHJlc3RyaWN0cw== IG1vc2FpYw== IG1lbG9kaWVz 54Q= VGFy IGRpc3Nvbg== IFByb3ZpZGVz IC4uLi4uLg== YmVr RklY IGJyb29t YW5zaGlw RG9jdG9ycw== IG5lcmRz IFJlZ2lvbnM= bmFpc3NhbmNl IG1ldGU= IGNyZXB0 cGxpbmdz IGdpcmxmcmllbmRz a25pdA== aWdlbnQ= b3dl IHVzaGVyZWQ= IEJheg== TW9iaWw= NDM0 IFByZXNlbnRz b3JpZ2lu IGluc29tbmlh IEF1eA== NDM5 IENoaWxp aXJzY2g= R0FNRQ== IGdlc3RhdGlvbg== YWxnaWE= cm9taXNpbmc= JCw= Y3Jvdw== IEluc3BlY3Rpb24= YXRvbWlj UmVsYXRpb25z Sk9ITg== cm9tYW4= IENsb2Nrd29yaw== IEJha3I= bW9uZQ== TUVU IHRoaXJzdHk= IGJj IGZhY3VsdGllcw== UnVt IG51YW5jZQ== IERhcml1cw== cGxldGluZw== ZnRlcnM= ZXRjaHVw UmVnaXN0cmF0aW9u IEtF UmFo IHByZWZlcmVudGlhbA== IExhc2g= IEhI VmFsaWQ= IE5BVg== IHN0YXJ2ZQ== IEdvbmc= enluc2tp IEFjdHJlc3M= IHdpaw== IHVuYWNjb21wYW5pZWQ= bHZs QnJpZGU= QURT IENvbW1hbmRv IFZhdWdobg== V2FsbGV0 IGhvcHBpbmc= IFZpZQ== IGNhdmVhdHM= IGFsYXM= aWZsZWQ= YWJ1c2U= NjYx IGlibg== IGd1bA== IHJvYmJpbmc= dGls SUxB IG1pdGlnYXRpbmc= IGFwdGx5 IHR5cmFudA== IG1pZGRheQ== IEdpbG1vcmU= IERlY2tlcg== IMKnwqc= cGFydGlhbA== RXhhY3RseQ== IHBoZW5vdHlwZQ== IFsrXQ== IFBsZXg= IElwcw== dmVyc2lvbnM= IGVib29r IGNoaWM= Z3Jvc3M= IjoiIn0seyI= IFN1cnByaXNpbmdseQ== TW9yZ2Fu IHJlc2lkdWVz IENvbmZlZGVyYXRpb24= aW5mZWxk IGx5cg== bW9kZXJhdGU= IHBlcnBlbmRpY3VsYXI= Vks= IHN5bmNocm9uaXplZA== IHJlZnJlc2hlZA== IGFkb3Jl IFRvcm1lbnQ= b2xpbmE= IDI2MDA= SXRlbVRyYWNrZXI= IHBpZXM= IEZBVA== IFJIUA== MDQ4 IFJFU1A= IEJK YWxsb3dz UGFuZA== IHVud2VsY29tZQ== IFZvYw== IEJhc3RhcmQ= IE9X IExBUg== IEhlYWxlcg== RW52aXJvbm1lbnRhbA== IEtlbnlhbg== IFRyYW5jZQ== IFBhdHM= IGFsaWFzZXM= IEdhcmZpZWxk IGNhbXBhaWduZXI= IGFkdmFuY2VtZW50cw== IE9raW5hd2E= IENvaA== b3dza3k= IHN0YXJ2ZWQ= IHNpemVhYmxl IDotKQ== IG1STkE= IHN1c3BlbnNpb25z aXN0YXI= U2NvdGxhbmQ= UHJpbg== LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t IDUwMg== IHRlYXNwb29ucw== IDEwNTA= IGNvZXJjaXZl IE1hc29uaWM= ZWRkZWQ= IFBhc3Nlbmdlcg== IGxhdHQ= IGJyYWNlcw== IFN0ZWFs IE5ZVA== IEthdHM= IENlbGVzdA== YWV6 VHU= IENvdWx0ZXI= 8J+Y RmxpY2ty IFdpbG1pbmd0b24= aXRocw== Kys7 IHZlbmRpbmc= IG5lZ3Jv IFBoaQ== IFllbGxvd3N0b25l Q2FsbGJhY2s= IHNoYW1wb28= IFNoYWRlcw== d2F0 IHN1cGVyaHVtYW4= IHJpZGljdWxlZA== IGhvbGllc3Q= b21ibw== IGludGVybnM= IGhvbmU= IFBhcmFndQ== VVJJ IGRhbmdsaW5n 44K7 c292 aWN0aW9uYWw= YXZhaWxhYmlsaXR5 IHJldm9jYXRpb24= IGRvdw== aW5pYw== IFRIRUlS IGlzbw== IG91dGluZ3M= IExldGhhbA== ICkpKQ== IGluYWNjdXI= IG91dGxhbmRpc2g= IGFudXM= bGV0aWNv aWRvbg== bG9s IHVucmVndWxhdGVk IHN1Y2N1bWJlZA== IGN1ZmY= IFdhc3RlbGFuZA== bGV0YWw= IHN1YnN0cg== IGNvZmZlcnM= IGF1dG9tYWtlcnM= b3Zp IFh1ZQ== IERheXRvbmE= IGphcnJpbmc= IGZ1bWVz IGRpc2JhbmRlZA== emlr aXR0b24= IHN0cmlraW5nbHk= IHNwb3Jlcw== QWRhcHRlcg== Lik6 IEx5bmRvbg== aXZhbHJ5 IG9yYWxseQ== IHR1bXVsdHVvdXM= IGRpc3BsZWFzdXJl IGNvbmVz b3JyZWN0 IGFwcGVhc2U= IGRlcmJ5 IFRyaXBvbGk= IEFsZXNz IHBva2Vk IEd1aWx0eQ== dlA= RW5vdWdo IG9yaWdpbmFscw== Njk5 IHJhYmJp IHByb3ZlcmJpYWw= IHBvc3Rwb25l ZWxvcGU= IE1pc3R5 IHN0YWZmZWQ= IFVuZW1wbG95bWVudA== cmVkaXRhcnk= IGRpbGlnZW50 cmVjb21t bWVhc3VyZXM= YXNpbg== ODI1 IHBvbmRz IG1tb2w= IFNBUg== IENBUkU= IDM3MQ== IGNsZW5jaGVk IENvcnNhaXI= IGNhcmljYXR1cmU= em4= YXR0YWNo IFNjaHJv c3BlYWs= cGFpbnRlZA== IFN1Yw== IEVOVA== IGNlbGx1bA== IFBhaWQ= ZGlhZ24= V0hFUkU= IHRleHRlZA== QmFybg== IHJldHJhY3RlZA== IFJlZmVycmVk U2F2 IHVwa2VlcA== IHdvcmtwbGFjZXM= IFRva2Vucw== IGFtcGxpZnk= Y2xpbmljYWw= IG11bHRpYw== bWJlcmc= IGNvbnZvbHV0ZWQ= UmVnaW9u NTY1 IFRvcGlj IHNuYWls IHNhbGluZQ== IGluc3VycmVjdGlvbg== IFBldHI= Zm9ydHM= QkFU IE5hdmFqbw== IHJ1ZGltZW50YXJ5 IExha3No T05ET04= TWVhc3VyZQ== IHRyYW5zZm9ybWVy IEdvZGRhcmQ= IGNvaW5jaWRlcw== aXJpbg== UmV4 IEJvaw== cXVpdA== IHNob3RndW5z IHByb2xldGFyaWFu IHNjb3Jw IEFkYQ== NTE0 IHNsYW5kZXI= cmVjb3JkZWQ= IGVtYmVsbA== cmlzb21l IGFwb2xvZ2l6aW5n IE11bGNhaXI= IEdpYnJhbHRhcg== Q2xh IGFsbG90 IEF0dGVudGlvbg== IDQzMw== bGVhdmU= IHdoaW5l IElzc2E= IEZhdXN0 IEJhcnJvbg== aGVueQ== IHZpY3RpbWl6ZWQ= SmV3cw== IG51cnR1cmluZw== ZXR0ZWw= V2luZ2Vk IFN1YnRsZQ== IGZsYXZvcmZ1bA== IFJlcHM= ZW5nZWQ= Y2FsbGJhY2s= IGRpcmVjdGlvbmFs IGNsYXNw IERpcmVjdGlvbnM= cGxhbmV0 aWN1bHR1cmU= SGVscGVy aWNpb24= YWNpYQ== IOelng== IHN1cmdlcw== IGNhbm9l IFByZW1pZXJzaGlw YmVlbg== IGRlZmllZA== IFRyb29wZXI= IHRyaXBvZA== IGdhc3A= IEV1cGg= IEFkcw== dmVybmlnaHQ= aGlnaGx5 Um9sZQ== IGVudGFuZ2xlZA== IFplaXQ= NjE4 IFJ1c3R5 IGhhdmVucw== IFZhdWdoYW4= SEFFTA== IFNFUlZJQ0U= Lyw= IHN0cmlja2Vu IGRlbHVzaW9ucw== IGJpcw== IEhhZg== IGdyYXRpZmljYXRpb24= IGVudGljaW5n VU5DSA== QWRhbXM= IE9MRUQ= IEJlZXRsZQ== IDE4OTk= IFNPRlRXQVJF YXRlZ29y Vkw= IFRvdGVt IEdhdG9ycw== QVRVUkVT IGltcGVkYW5jZQ== UmVnaXN0ZXJlZA== IENhcnk= IEFlcmlhbA== b25uZQ== ZW5pdW0= IGRyZWQ= IEJlZw== IGNvbmN1cnJlbnRseQ== IHN1cGVycG93ZXI= IFhhbg== amV3 aW1lc3Rlcg== IERpY2tpbnNvbg== 4pSB Rmxh IHByZWU= IFJvbGxpbnM= qbbm IGRlbm9taW5hdGlvbg== IExhbmE= NTE2 IGluY2l0aW5n c2NyaWJlZA== anVyaWVz IFdvbmRlcnM= YXBwcm94aW1hdGVseQ== IHN1c3BlbmRpbmc= IG1vdW50YWlub3Vz IExhdWdo b2lkYWw= TnM= RGV0ZWN0 KT0= IEx1dGhvcg== IFNjaHdhcnplbmVnZ2Vy IE11bGxlcg== IERldmk= ZWN5Y2xl SmFy NjEz IExvbmdo QmFo IFNQT1JUUw== bnc= IHJlZmluZW1lbnQ= IHdhdGVyd2F5cw== IGRpbmVy QmxhZGU= Njgz RmFj IGluaXRpYWxz IHJvZw== IHBhcmFub3JtYWw= QlVU IFso IFN3YW5zb24= IE1lc2g= 4pas SW1wcm92ZQ== IFJhZGlhdGlvbg== IEVzdGhlcg== IEVzaw== IEFseQ== aWt5 IGlycmFk IEJ1Y2tpbmdoYW0= IHJlZmlsbA== IC5f UmVwZQ== Q09OQ0xVUw== IGRpZmZlcmVudGlhdGVk IGNoaXJvcA== IEF0a2lucw== UGF0dGVybg== IGV4Y2lzZQ== IGNhYmFs TlNB IFNUQQ== IFNJTA== IFBhcmFseQ== IHJ5ZQ== IEhvd2VsbA== IENvdW50ZG93bg== bmVzc2Vz YWx5c2Vk IHJlc2l6ZQ== 44K9 IGJ1ZGdldGFyeQ== IFN0cmFz d2FuZw== IGFwaWVjZQ== IHByZWNpbmN0cw== IHBlYWNo IHNreWxpbmU= IDM1Mw== cG9wdWxhcg== QXBwZWFyYW5jZXM= IE1lY2hhbmljcw== IERldk9ubGluZQ== U3VsbGl2YW4= WmVu IHB1 b3BvbGlz NTQ0 IGRlZm9ybQ== IGNvdW50ZXJhY3Q= IExhbmdl IDQxNw== Q29uc29sZQ== Nzc0 IG5vZGRpbmc= IHBvcHVsaXNt IGhlcA== IGNvdW5zZWxsaW5n Y29tcGxpYW5jZQ== VUZG IHVuZGVuaWFibHk= IHJhaWxpbmc= IEhvcm93aXR6 IFNpbW9uZQ== IEJ1bmdpZQ== IGFr IFRhbGtz eGZm Zmxha2U= Q3Jhc2g= IHN3ZWF0eQ== IGJhbnF1ZXQ= IE9GRklD IGludmVudGl2ZQ== IGFzdHJvbm9tZXI= IFN0YW1mb3Jk IFNjYXJl IEdSRUVO b2xpY2l0ZWQ= IHJ1c2hlcg== IGNlbnRyaXN0 aWdodGluZw== IHN1YmNsYXNz IGRpc2F2 IGRlZnVuZA== IE5hbnRv b2NpYXRl bWFzdA== IHBhY2lm IG1lbmQ= ZWVycw== aW1taWdyYXRpb24= RVNTSU9O IG51bWJlcmluZw== IGxhdWdoYWJsZQ== IEVuZGVk dmlhdGlvbg== ZW1hcms= UGl0dA== IG1ldGljdWxvdXM= IExG IGNvbmdyYXR1bGF0ZWQ= IEJpcmNo IHN3YXllZA== IHNlbWlmaW5hbHM= IGh1bWFua2luZA== bWF0dGVy IEVxdWlw b3BhdXNhbA== U2FpZA== IExheW91dA== IHZvaWNpbmc= IHRodWc= IHBvcm5vZ3JhcGhpYw== SVBT IG1vYW5pbmc= IGdyaWV2YW5jZQ== IGNvbmZlc3Npb25z ZXNjYWw= VEVYVFVSRQ== QXV0aGVudA== b3NhdXJ1cw== UHVyY2hhc2U= IHJlbGVnYXRpb24= YWx0ZXI= IMKgwqA= IHJpZGRsZWQ= IG9ncmU= IExvd2VsbA== T2NjdXA= RWF0 IEh5ZGVy IEFkdmlzZXI= Q29tbWVyY2U= SHVudA== IE9ydGg= IENvbXBldGl0aXZl IENMQQ== Q0RD IHNhbGFkcw== Rmxl IGluZHVzdHJpYWxpemVk YCw= IE9XTg== IGJlY2s= IFBhcnRpY3VsYXJseQ== b3VidA== IG1N IEh1c3NhaW4= IENoZW5uYWk= IDkyMA== IGFwcG9pbnRpbmc= IEN1bGxlbg== LCwsLCwsLCw= IHBvcmVz dmVyaWZpZWQ= IGJpb2NoZW1pY2Fs ZW1hdGU= IGNvd2FyZGx5 IEhlbHNpbmtp IEV0aGlvcGlhbg== U09VUkNF RVJD ZXN0cm8= IGJpb3RlY2g= IFNvdXI= IGJyZXdlcg== Qmxvb21iZXJn IGludGVuc2lmeQ== R2xhc3M= YW5jbw== IEZEUg== Z3JlU1FM IEZpcmVz qbbmpbU= ZWNv MTAwMQ== IEhvbWVsZXNz IGluc3RhbnRhbmVvdXM= IEhhc3Rl aWdlbA== RGlhbW9uZA== IHBhdmluZw== IGxhbmRmaWxs IGRhZHM= aG91bg== Ol0= IGluY2VuZGlhcnk= IExpdmluZ3N0b24= IEhpbGJlcnQ= IENoZWNrcw== c3R5bGVz aW5hdG9ycw== IENsaXZl cGhyaW5l IGNoaW1wYW56ZWVz IHBhbGw= IEpN IEFhZGhhYXI= 8J0= IGFjaGlldmFibGU= ZGlzYWJsZWQ= UEVU T09PT09PT08= TW90 IGludGFuZ2libGU= IGJhbGxldA== IFdlYnM= IEVzdGltYXRlZA== RWZmZWN0cw== IGJhaWxlZA== Sm9zaHVh IHR1cmJ1bGVuY2U= IG9jY3VwYW50 IERheWxpZ2h0 IDM2MQ== bWVldA== IHN0YXRpY2FsbHk= IG9ubG9vaw== IGtp aWxsZWdhbA== IHZlbHZldA== IGRlaHlkcmF0aW9u IGFjcXVpZXM= IFJleg== YWt1cmE= IFVwdG9u YXRybw== IGluY29tcHJlaGVuc2libGU= IGJhY2tkb29y IFJoaW5v NzI3 IG1hdGhz KSs= IGhlcmVzeQ== IGRm IFJvY2hl IEx5ZGlh IHBhbmNyZWF0 cmVwbHk= YXJyZWxs IHNvbGljaXRhdGlvbg== IGNpcmNhZGlhbg== QklQ IGZvcmF5 IGNyeXB0aWM= aXp1 aW1lbw== IFRvbWF0bw== IEhvbXM= ZXhhbWluYXRpb24= IHF1YXJyeQ== IFZhbGlhbnQ= IEplcmljaG8= IElOQ0xVRA== IDE4NDA= NTE5 IHJlc2lzdHM= IHNuYXBzaG90cw== IFNwdXI= IEFudGlxdQ== TG9naW4= IGJlc3RzZWxsaW5n IGFudGlj IFN1dGhlcmxhbmQ= 44Ki44Or IH4v IFBhcm0= 6IM= UGFnZXM= aW50ZW5zaXR5 IGltbW9iaWw= IDE4NjU= enpv IG5pZnR5 IGZlbnRhbnls IFByZXNlcnZhdGlvbg== b3BoZW4= IGRhcnRz IERpbm9zYXVy cG9pbnRlcnM= IFJpdGU= c3VnZ2VzdA== YXdhcmVuZXNz IFNoZXJpZGFu IHN0YW5jZXM= IHNvcmNlcnk= IHBlcmp1cnk= IE5pa29sYQ== aWV2ZXI= IGZpYW5jZQ== IEpvcmRhbmlhbg== IEJhbGxvb24= IG5hYg== IGti IGh1bWFuaXRpZXM= IFRhbmFrYQ== aGlsbGFyeQ== IGNvbnN1bHRhbmN5 IFp1Yg== IHJlbWlzc2lvbg== IGNvbmZpZA== Q0hR IEZ1Zw== IGltcHJvdmlz WWVw L18= IHVud2lsbGluZ25lc3M= IHBvcnRmb2xpb3M= MDU1 IEluc3RydWN0b3I= YWltYW4= IGNsYWltYW50cw== TWJwcw== IEJ5ZQ== cmVjZWl2ZWQ= VHdlZXQ= IGluZGVtbg== cml6 YW1hcmE= TmF0 IGV2YWx1YXRlcw== IEx1cg== ZXBhZA== Rk9Y IFRocm8= IHJ1c3R5 IGJlZHJvY2s= IE9wcmFo SkI= IG1hbmlwdWxhdGl2ZQ== IHdpbGxmdWw= IHJlbGFwc2U= IGV4dGFudA== VGhlbWU= U2Vuc29y IFN0YWJpbGl0eQ== Z292ZXJu IHBvcHB5 IGtuYWNr IGluc3VsYXRlZA== IFRpbGU= IEV4dHJlbQ== IHVudG9sZA== IGNvbnZlcmdl IHJlZnVlbA== aWdyb3Vw IGRpc3RvcnRpb25z IHJhdmFnZWQ= IG1lY2hhbmljYWxseQ== IFJlaWxseQ== IE5vc2U= IEluY2FybmF0aW9u IEJlY2t5 YWJibGluZw== IHRhY28= IHJha2U= IG1lbGFuY2hvbHk= IGlsbHVzdHJpb3Vz IERhcnRtb3V0aA== R3VpZGU= IFJhemVy IEJlbno= VWx0aW1hdGU= IFN1cnByaXNl IHBhZ2VhbnQ= b2ZmZXI= V2hvZXZlcg== IHdpc2Vy IGNoZW1pc3Q= IEhFTEw= IEJ1bGs= IHBsdXRvbml1bQ== IENPVkVS 1rw= ZmFpbGVk IHRpcmVsZXNzbHk= IGluZmVydGlsaXR5 IFRyaWRlbnQ= IFNob3d0aW1l IENpdg== VmljZQ== cmVxdWlyZXM= aXR0YW5jZQ== IHVuY29udHJvbGxlZA== aW50ZXJlc3Rpbmc= NTYx IGlubm92YXRl YXRlZ2lj TGll IFNlbGxpbmc= VWw= IHNhdmlvcg== IFRvc2g= IHN3YXN0 UEFTUw== IHJpbms= IGNhcmRpbw== IElybw== dWRp IHZhbnRhZ2U= IHZhbnM= IE5pw7Fv Kz0= IHByb3BhZ2F0ZQ== PD8= IG1ldGhvZG9sb2dpY2Fs MjA0Mzk= IHRyaWdseWNlcg== IGluZ3JhaW5lZA== IEFubm90YXRpb25z YXJyYW50ZWQ= NjE3 IFNvZGl1bQ== IEFBQw== dGVjaG5pY2Fs bXVsdGlwbA== IDM3Mw== 5Ys= IGRlY2lzaXZlbHk= IGJvb3N0ZXJz IGRlc3NlcnRz IEdyZW5hZGU= IHRlc3RpZnlpbmc= IFNjdWxseQ== SURz IGxvY2tkb3du IFNjaGVy IFLDqQ== IFdoaXRtYW4= IFJhbXNheQ== cmVtb3Rl IGhpa2Vycw== IEh5dW5kYWk= IGNvbnNjaWVudGlvdXM= IGNsZXJpY3M= IFNpYmVyaWFu dXRp aXNidXJ5 IHJlbGF5ZWQ= IHF1YXJ0eg== IENCSQ== c2Vla2Vycw== dWxsYQ== IHdlbGRpbmc= IFNoYWw= YmxlYWNoZXI= VGFp IFNhbXNvbg== IHR1bWJsZQ== IEludmVzdG9y IHN1YmNvbnRyYWN0 IFNoaW5yYQ== b3dpY3o= amFuZHJv ZGFk IHRlcm1pbmF0aW5n IE5ldXJhbA== 5Luj IGxlYWthZ2U= IE1pZGxhbmRz IENhdWNhc3Vz 7ZU= Y2l0 bGxhbg== aXZhYmx5 IEFsYmlvbg== IDQ1Nw== IHJlZ2lzdHJhdGlvbnM= IGNvbXJhZGU= IGNsaXBib2FyZA== MDQ3 IGRpc2NvdXJhZ2luZw== IE9vcHM= QWRhcHQ= IGVtcGF0aA== bnY= IFBST1Q= IERvbm4= IFBheA== IEJheWVy dGlz U3F1YXJl IGZvb3RwcmludHM= cGFydGljaXA= IENoaWxlYW4= QnJlbmQ= aW5kdWNpbmc= TWFnbg== IGNsdWJob3VzZQ== IE1hZ251bQ== IGVuY2FtcA== IEV0aG5pYw== dWNoYQ== ZXJleQ== IHdhdGVyZWQ= IENhbGFpcw== IGNvbXBsZXhpb24= IHNlY3Rz IHJlbnRlcnM= IGJyYXM= b8SfYW4= VGltZW91dA== TWFuYWdlbWVudA== IGluZm9ncmFwaGlj UG9rZW1vbg== Q2xhcg== IGxvY2FsaXR5 IGZsb3Jh YXNlbA== UG9udA== IHBvcHVsYXRl IE9uZw== IHN1YnNpc3RlbmNl IGF1Y3Rpb25z IE1jQXVsaWZmZQ== IExPT0s= YnJpbmdlcg== IHRpdGFu IG1hbmlmb2xk IOKXjw== IGNhbGlicmF0ZWQ= IGNhbGlwaGF0ZQ== IFNIRQ== IENvbW1pc3Npb25lcnM= Y2VpdmFibGU= amM= V2lubmVy NTI0 IGNvbmRvbmU= T3RoZXJ3aXNl IHBpbGluZw== IGVtYm9keQ== IENyaW1lYW4= dXRpY3M= IEV4aGliaXRpb24= IDQyNg== ZWVyaW5n IHZ5aW5n IEhVR0U= Kj0t IHByaW5jaXBsZWQ= 4KY= IHF1aXJrcw== IEVkaXRvcnM= cHV0aW5n R0VT IEZUQQ== 4KS+ YWRkb24= IEhBTQ== IEZyaWV6YQ== V29tYW4= LiQ= IGNyaWI= IEhlcm9k IHRpbWVycw== IFNwYWNlcw== IE1hY2ludG9zaA== YXRha2E= IGdsaWRl IHNtZWxsaW5n IEJBTA== IHVuc3U= IGNvbmRvcw== IGJpY3ljbA== IFJldml2YWw= NTUz IGp1Z2dsaW5n SHVn IEthcmRhc2hpYW4= IEJhbGthbnM= bXVsdGlwbGU= IG51dHJpdGlvdXM= b2NyeQ== MTkwMA== IGludGVncmF0ZXM= IGFkam9pbmluZw== IEZvbGRlcg== cm9sbG1lbnQ= dmVuaWVudA== IHViZXI= eWk= IHdoaWZm IEp1dmVu IEJvcm91Z2g= bmV0dGU= IGJpbGluZ3VhbA== IFNwYXJrcw== cGh0aGFs bWFudWZhY3Q= IHRvdXRpbmc= IFBISQ== S2VlZmU= UmV3YXJk IGluZmFsbA== IFRlbXBlcg== dHlwaWNhbGx5 IE5pa29s IHJlZ3VsYXJz IHBzZXVkb255bQ== IGV4aGliaXRpb25z IGJsYXN0ZXI= IDQwOQ== d2FybWluZw== IHJldmVyYmVy IHJlY2lwcm9jYWw= IDY3MA== aXBpZW50 YmV0dA== IEJlZ2lucw== IGl0Y2hpbmc= IFBoYXI= QXNzdW1pbmc= IGVtaXR0aW5n IE1MRw== IGJpcnRocGxhY2U= IHRhdW50 IEx1ZmZ5 IEFtaXQ= IGNpcmNsZWQ= IE5vc3Q= ZW5uZXR0 IGRlZm9yZXN0YXRpb24= IEhpc3RvcmljYWxseQ== IEV2ZXJ5ZGF5 IG92ZXJ0YWtl Nzky IG51bg== IEx1Y2lh IGFjY29tcGFuaWVz IFNlZWtpbmc= IFRyYXNo YW5pc20= Um9ndWU= IG5vcnRod2VzdGVybg== IFN1cHBsZW1lbnRhbA== IE5ZVQ== IEZSSQ== IFNhdGlzZg== eGVz NTE3 IHJlYXNzdXJlZA== IHNwb3JhZGlj IDcwMQ== IG1lZGlhbA== IGNhbm5hYmlub2lk IGJhcmJhcmlj IGVwaXM= IEV4cGxvc2l2ZQ== IERvdWdo IHVuc29sdmVk U3VwcG9ydGVk IGFja25vd2xlZGdtZW50 c3Bhd24= IGtpdGNoZW5z IC09 dGFsa2luZw== aWNpc3Q= IFBlZ2FzdXM= IFBTVQ== IHBob3Rvbg== IEF1dGhlbnRpY2F0aW9u Ukc= QCMm NzYy IENsYWly IGRpYXBlcg== IGJyaXN0 IFByb3NlY3V0b3Jz IEplbQ== NjI4 IEV2ZXJ5d2hlcmU= IEplYW5uZQ== ZXF1YWxpdHk= 44Op44Oz b2JqZWN0cw== IFBlbGljYW5z IDM5Mg== IGJsdQ== Ynlz IEFnbw== IGluc3RydWN0aW9uYWw= IGRpc2NyaW1pbmF0aW5n IFRSQU4= IENvcm5lbA== YWdvcw== IHR5cmU= IGFzcGlyYXRpb24= IEJyaWRnZXdhdGVy Ijot ISIu IEVucw== IENvY28= UGll IGRldGFjaA== IENvdWNo IHBoeXNpcXVl IE9jY3VwYXRpb25z b3Njb3BpYw== ZW5vdWdo QnV6eg== QXBwZWFyYW5jZQ== WVA= IHJhY2Vy IGNvbXBsaWNpdHk= cnBt VG95 IGludGVycnVwdHM= IENhdGFseXN0 IHV0aWxpdGFyaWFu aW1wYWN0 IHNwYWdoZXR0aQ== IHBvcm91cw== IGVzdGVlbWVk IGluY2luZXI= IElPQw== NzQ4 IGVzcHJlc3Nv IFNtaWxl YWJpbGlh NjM1 IG1hdGhlbWF0aWNpYW4= IDQyNA== IEtM IEhJUA== IG92ZXJoZWFyZA== IFR1ZA== IFRlYw== IHF1aXp6 IGZsYXR0ZXJpbmc= IGNvbm4= 4oCO IGF0dGFjaGVz IFJPUw== IEFDUw== IHRjcA== IFNoYW1l c2tpcA== cmVzcGVjdGVk IFRyaW5pZGFk Z3JhaW4= IGZvb3Rob2xk IFVuY2hhcnRlZA== IEp1bGlv emw= YXZvcmVk IEFueGlldHk= ZXJyb3Jz IENlbnRhdXJp aXRzY2g= RGFkZHk= IGNsdXRjaGluZw== IEltcGxlbWVudA== IEd1dGllcnJleg== IDc2MA== IHRlbGVwb3J0YXRpb24= ZW5kcmE= IHJldmVyc2libGU= c3Ryb3M= QWR2ZW50dXJl MDgz IGxpYmVyYXRpbmc= IGFzcGhhbHQ= IFNwZW5k QVJEUw== aW1zeQ== UFJFUw== IEVtZXJnaW5n IHdpbGRmaXJlcw== IHRlY2hub2xvZ2ljYWxseQ== IGVtaXRz IEFSVElDTEU= IGlycmVndWxhcml0aWVz IGNoZXJpc2g= 54mI IHN0aW5r IFJvc3Q= RWNvbm9taWM= IGNvdWdoaW5n IE1jQ2Fubg== cHJvcGVydGllcw== aWxhbnRybw== IHJlbmVnb3Rp VHJhbnNsYXRpb24= IGlucXVlc3Q= IEdyYXBl b290ZXJz Z3Vp IFN3b3Jkc21hbg== YWNlYWU= aGl0dGluZw== IHJj IGV4ZXJ0ZWQ= IFNBUA== aXRlbnQ= IHBlcmlsb3Vz IG9ic2N1cml0eQ== IGFzc2Fzc2luYXRl IGFib3JpZ2luYWw= IHJlc2N1aW5n IFNoYXR0ZXJlZA== bG9ja2luZw== YWxsaW9u Q2hhbmdpbmc= IEhhcnJpbmd0b24= IEJvcmQ= IEFmZ2hhbnM= SmFtaWU= YXJldHo= IEF1Z3VzdHVz IDM4Ng== ODMw IGpvZw== b2tpbmdseQ== VHJpZ2dlcg== IEhPUg== U3RhdGlzdGljcw== IHZpZXdlcnNoaXA= IGFkZGl0aXZlcw== aHVy IG1heGltaXppbmc= IFJvdmU= IExvdWll IEJ1Y2tldA== IENIUklTVA== b3VzZWw= IHN0cmVha3M= aXJ0ZWQ= IHRlcnQ= IGNvbG9uaWFsaXNt IGJ1cnlpbmc= eWs= Q29uZGl0aW9u IERQUks= QnlJZA== NzUx 4pe8 IHdvcnJpc29tZQ== IHZvY2F0aW9uYWw= c2xpY2U= IHNhaWxz IENvcnJlY3Rpb25hbA== OTU0 IHR1bA== S2lk bHVzdGVy IGZhbWlsaWFs IFNwaXQ= IEVwaXNjb3BhbA== U3BlY2lmaWNhbGx5 IFZvbGNhbm8= cnVucw== cXM= IHZldHRlZA== IGNyYW1tZWQ= dHJvcA== aGVyZXI= VGhhbmtmdWxseQ== IHBlcmN1c3Npb24= IG9yYW5nZXM= IHJvdW5kdXA= IDQ5OQ== eGlvdXM= Q2hhcmFjdGVycw== IFppb25pc20= IFJhbw== w5vDmw== V0Y= IHVuaW50ZW50aW9uYWw= T05FWQ== R3JhYg== Q29tbWVyY2lhbA== IGdsdXRhbWF0ZQ== IE1jS2VubmE= cnVjaWF0aW5n bmluZ3Rvbg== aWh1 Q2hhbg== IFN3YXA= IGxlYWZsZXRz IGZ1bmN0aW9uYWxseQ== ZXJvdXM= RmFybQ== IGNhbG9yaWM= IExpdGVyYWxseQ== Y29uY2VydA== IHNoZW5hbg== IHJlcGFpZA== ZXllcw== IGJhc2hpbmc= IEdvcmdl IGNvbGxhYm9yYXRpb25z IHVuYWNjb3VudA== aXRjaGll IHRlYW13b3Jr cHBlbGlu IHBpcGluZw== IG1pbmNlZA== IGRpYW0= cmllZw== IG1hc2NhcmE= IHN1Y2tlcg== IE1vb25z QXBwcw== IFBlY2s= IHBlcnY= IEZsb2F0 b2xleQ== IE5pc2g= aW1pemU= IGFyb21hdGlj dWlu ZW5kaXNo IS8= IEJpY3ljbGU= IEFTSUM= aWxlZ2Vk IFF1YWRybw== aW9zeW4= IGxvY2tvdXQ= IFdpbms= U1BFQw== QXR0ZW1wdHM= IHNlZWRlZA== cmVkbw== aWFzaXM= IHNuYWc= 44OV44Kp 44K2 IGdyb3VuZGluZw== IHJlbGlldmVy IGZyaXZvbG91cw== IEdpZnRz IEZhY2Vz RXNwZWNpYWxseQ== IG1pY3JvYmlvbWU= aW1hZw== IFNjaGw= IFBsZXM= IEJsZWFjaA== IElyd2lu IEVhdG9u IERpc2NpcGxl IG11bHRpcGxpY2F0aW9u IGNvZXJjZWQ= IDQxOQ== c3Ro RXZpbA== Qm9tYg== IGV4b3Jj IHN0YWdnZXJlZA== TEVTUw== IGluZXJ0aWE= IEVESVQ= IGdvYg== VHJhZGl0aW9uYWw= IGNsYXNzeQ== TGVhcnk= IFBBR0U= eXJz IHRyYW5zcG9ydGVy IG1hdHVyZWQ= IGhpamFi IGJpb21l V2hlcmVhcw== IGV4dGVybWluYXRpb24= IFR1ZXM= IFRha2VydQ== IEF1ZHJleQ== ZXJpYWw= IEFkZW4= YWZmbGVz IG5hcmNpc3Npc3RpYw== IEJhaXJk VVRG SXJl IENvbm5pZQ== Q2hhbXA= IHdoaXNwZXJpbmc= IEhhdHQ= REs= IGRpc2luZmVjdA== IGRlZHVjdGVk IHBhcnRha2U= IGRvd25ncmFkZQ== IEVzcG9ydHM= IENvbnRpbnVpbmc= IGRlbW9jcmF0aWNhbGx5 aWNyb2JpYWw= aXR0YQ== IGxpbWVzdG9uZQ== IGV4ZW1wdGVk IEZyZW56eQ== SGVybQ== NzI4 IGZsZWRnbGluZw== TWV0YQ== NzY1NjE= Njkz JTo= d2FrZQ== NTI2 IERpc2NpcGxpbmU= IHZpcmdpbml0eQ== IExlZ2lvbnM= IEZyYW5raWU= aW50ZW50 IHJlc3Ryb29tcw== IFJvdXRlcg== ZGFx IG9iamVjdGlvbmFibGU= 4oaR d2Fyaw== IFJhaHVs Z2Fpbg== YWN0aXZhdGlvbg== YWJzb2x1dGU= IEFjY2Vzc2Vk IDI0MDA= b2dnbGVz IHNlY29uZGx5 IERFRkVOU0U= IHBvc3RhZ2U= d3JhcHBlcg== c2hhcnA= NzI5 IGNvbW11bmljYXRlcw== IGFkZG9u IE1pbGl0aWE= SG9uZw== IHNsdW1wZWQ= IEpQRUc= IEljYXI= YWRpc2g= Njgx IG1hamVzdHk= IFdvbGZnYW5n IEVsYXN0aWM= dXBlcg== IHZpeg== IHVuY29uc2Npb3VzbHk= IFNURA== IFNhc3M= IGZsb3dlcmluZw== IEhlbGlj IERyYXBlcg== IEFtYXRldXI= IG1hbnVyZQ== IGRpc2luZ2Vu IExlaQ== YnJpbmc= OTQ5 IGluaGliaXRlZA== IGhlYWRxdWFydGVyZWQ= IGVuaWdtYXRpYw== 77+977+977+9 IHJlZHJlc3M= Ukg= IHJhdHRsZWQ= IGRpY3Rpb24= bGlv IFRCQQ== IFNOQVA= Q2FsbGluZw== IGZhc2Npc3Rz IERvdmU= aWV3aWN6 MDM2 IGNvYXN0cw== IFJlY3Q= ICld TG90 NjI5 IFNFTQ== IFBldGVyc2Vu IEV4cGxhaW4= IEJvYXJkcw== IEJlem9z IEpvdXJuYWxz IDIwMjQ= cGFyc2Vy IG1pc3RydXN0 IGdyYXRl IExvY2tlZA== Ym9h U2FpbnQ= Z2FtaW5n IHZvd2Vs aW5hdGVseQ== Ymxvdw== QWxsYWg= IHVubWF0Y2hlZA== IGJvcmRlcmluZw== IEV4cGVuZA== bnI= T3JhY2xl cm91Y2g= IGNvbnRpZ3VvdXM= YWN1cw== IGRpc3RyYXVnaHQ= NTgx IGFuYXRvbWljYWw= T1g= YXBpeGVs ODMz IFBMVVM= IHJlc3VzYw== IGFiaWRpbmc= NTcz IHZhY2FuY2llcw== RW1pbHk= IGh5cG90aGFs IFdlcm5lcg== IFdlZQ== IERKcw== NTEz IHdpdGNoY3JhZnQ= IGFjdXB1bmN0dXJl ZW50YXJ5 YmVuZWZpdA== UHJvZHVjdHM= IFBTUA== IE1QRw== IEppbm4= IEphcnJldHQ= IDQ0NQ== IEltYWdpbmc= IFB5dGg= RmluaXNo IHRleA== IGp1dmVuaWxlcw== IGhlcm9pc20= IGRvdWJ0bGVzcw== IEFraQ== IFRlbmQ= IFBhdHJpYXJjaA== IGJpdHRlcnM= IFRlbGVjb21tdW5pY2F0aW9ucw== aXRhdGl2ZWx5 YWduYQ== IHJn IFNPTEQ= IGNvbXB1bHNpb24= IE5hc2E= IEthdGhyeW4= IG1pbGxpb25haXJlcw== IGludHJpbnNpY2FsbHk= IGJvbHN0ZXJlZA== dGltZW91dA== Zmxv IHR1dG9y cG91cg== U3RhdGVtZW50 IHsq IFJ1ZG9scGg= IEtpbWJlcmx5 cm9nZW5z YWRpcQ== XSs= IGluZGlnbmF0aW9u IGZyYWN0dXJpbmc= IFJlbGVhc2Vz IEdyYWlu cHJvdGVpbg== TGFnbw== IHZhY2F0aW9ucw== IGJvb3RlZA== IFRIUkVF IEhH b3Jlc2NlbmNl IHRm IHNvYXI= aW9zeW5jcg== IGdsYW5jZXM= IFNwb29u IEp1cnk= IENvd2JveQ== IGNyZWF0aXZlbHk= SGlnaGVy IHNvbGljaXRvcg== IGhhd2s= YWNpbw== ODk2 IHN1cGVyZmx1 IGJvbWJzaGVsbA== Y3R1cmU= IGJyb2tlcmFnZQ== IHJhaWRpbmc= IGZyZW5jaA== IGFuZ2xlZA== VHJhbnNhY3Rpb24= IEdlbm9jaWRl dXBl IEhhaXRpYW4= NTcy ITo= IHVud2l0dGluZ2x5 aXRlcmF0b3I= c2Nyb2xs IHRhbGxpZWQ= IGJpb21lZGljYWw= IENBUkQ= IGV1cGhlbQ== IGJyYWluc3Rvcm0= YXF1aW4= S28= TWljaGVsbGU= IFJ1bmVz IEJhbGxpc3RpYw== dWRlcnM= IG1vZGVzdHk= IGlQYWRz IEV6ZWtpZWw= WUU= IHN0YXJzaGlw IHBvd2VyZnVsbHk= IHBlcmw= IFNoYWRl IFF1YXJ0 IEVFRw== IGZpc2hlcm1hbg== T1NFRA== IFR5cGljYWw= ZGZ4 IG1lc2hlcw== IGV0Y2hlZA== d29ydGhpbmVzcw== IHRvcHBsZWQ= IDM5Ng== b3JpdXM= V2Vpc3M= IG15c3Fs IFZhbGhhbGxh 2ZI= bGVhc2luZw== IHJlY29tcA== cmFwbmVs U2Vs MDQz IGRlcmFpbGVk IEd1aWRlcw== SVJU IGRlaHVtYW4= IEJyaXR0YW55 Iikp IGV4Y2xhaW0= IGJhbGs= IDg0MA== Q0xBSU0= aW50ZWw= TEFC IHBlZ2dlZA== IGFzdHJvcGg= c21va2luZw== IHJpZ2dpbmc= IGZpeGF0aW9u IGNhdGFwdWx0 aW5zaWRl IENhc2NhZGU= IEJvbHNoZXZpaw== R2F6YQ== RGVwdGg= IGxvdWRzcGU= IGFsbW9uZHM= bWV5ZXI= bGVuZXNz amVu ZnJlc2g= IHVuYmVhdGVu IFNxdWlk IFByZXN1bWFibHk= VGltZXI= Qlc= IHJvc3RlcnM= IGVsbGlwdA== IEhhcnJpZXQ= ZGF0YWJhc2U= IE11dHVhbA== IENvbW1vZG9yZQ== dWtlZA== a25pZmU= IENPTU1VTg== aHlh IG1lbHRz YXJjaGl2ZXM= IHJhdGlmaWNhdGlvbg== IG11bHRpcGx5aW5n IGludGVyb3Blcg== IGFzY2VydA== d2luZ3M= dmVydGluZw== IFNjb3JwaW9u YXll IFBvcnRzbW91dGg= IE1UQQ== bml0 aWF6ZXA= IHF1YXJhbnRpbmU= IHNsaWRlc2hvdw== IGNlbnRpbWV0ZXJz IHN5bm9wc2lz IHNwYXRl dGhpcnN0 IG5vbWluYXRpbmc= IE1lbHZpbg== UHJldmlldw== IHRocm9i IGdlbmVyYXRpb25hbA== IFJhZGl1cw== cmVzdGxpbmc= cHV0YWJsZQ== YXdhcg== TkVDVA== IHVubGF3ZnVsbHk= IFJldmVsYXRpb25z V2lraXBlZGlh c3Vydg== IGV5ZWluZw== aWpu IEZX IGJydW50 IGludGVyc3RlbGxhcg== IGNsaXRvcg== IENyb2F0aWFu IENoaWM= ZXZh IERpc2FwcA== IEFraW4= aW5lcmllcw== ZHVzdA== SW50ZXJlc3RlZA== IGdlbmVzaXM= IEV1Y2w= w7Zu cGlja2luZw== IG11dGF0ZWQ= IGRpc2FwcHJvdmU= IEhETA== IDYyNQ== zLY= Y2FuY2Vy IHNxdWF0cw== IGxldmVycw== RGlzY3Vzcw== PV0= RGV4 IFZJREVPUw== QVVE IHRyYW5zYWN0 IEtpbmVjdA== IEt1YWxh IEN5cA== NzQ3 IHNoYXR0ZXJpbmc= IGFyc2VuaWM= IEludGFrZQ== IEFuZ2Vsbw== IFF1aXQ= IEtoZQ== IDE4OTM= TWFrZXI= MDI5 IFBhaW50aW5n RGlzYWJsZQ== OTE2 IGFuYWxnZXM= IHRhY3RpbGU= IHByb3BoZXM= IGRpY2Vk IFRyYXZlbHM= IEhlYWRlcg== IENsdWJz QXNzaXN0YW50 IGluY3JpbQ== IGRpcHM= IGNydWNpZml4 IFNoYW5haGFu IEludGVycHJldA== IDQwOTA= YWxvZ3k= YWJiYQ== IHNpbXVsYWM= aHVzYmFuZA== U0lN IHJlY3ljbGU= dWNlcg== ZWRnZWQ= IHJlbmFpc3NhbmNl IEJvbWJheQ== Q2F0aG9saWM= IExJTkU= IENsb3RoaW5n cmVwb3J0cw== IHBsYXVz IGRhZw== IE1hY2U= Wkk= IGludHJ1ZGVy IFZldGVyaW5hcnk= Z3J1 IHNuZWFreQ== IFNpZQ== IENpbm5hbW9u UE9TRQ== IGNvdXJpZXI= IENOUw== IGVtYW5jaXBhdGlvbg== c2l0 IHBsYXl0aHJvdWdo IEZhY2lsaXRpZXM= dmlydA== IEdhdW50bGV0 VGhvbXBzb24= IHVuYmVsaWV2YWJseQ== UGFyYW1ldGVycw== IHN0aXRjaGluZw== aWduZQ== IFRIRVNF UHJpdmFjeQ== IHNoZW5hbmlnYW5z IHZpdHJp IFZhbGlk NTkx rbc= IFByb3RvdHlwZQ== aW5rYQ== U0NQ IFRpZA== 6Ig= b2xkZWQ= IGluZGl2aWR1YWxpdHk= IGJhcmtpbmc= IG1hcnM= IFdE IDgyMA== IHRpcg== IHNsYXBwaW5n IGRpc2dydW50bGVk IEFuZ29sYQ== cml1cw== IFRvcm5hZG8= IFRodXJz IGNhcHRjaGE= IGFuZ3N0 IFBvZw== IEFzc2Fzc2lucw== IEFkaWRhcw== IGpveWZ1bA== IHdoaW5pbmc= RW1lcmdlbmN5 IHBob3NwaG9ydXM= IGF0dHJpdGlvbg== b3Bob24= IFRpbWJlcndvbHZlcw== IEphaA== IEJyaW5naW5n IFdhZA== IEVuc3VyZQ== b2hs IFhpZQ== b21tZWw= Y21w IHppcHBlcg== IHJlbGF0 IENvcnJpZG9y bWlsbw== VElORw== QXZn IGNyb3BwZWQ= XX0= IHJhZ2Vk IEx1bXB1cg== IEd1ZXJyZXJv b3Vya2U= TnV0 IG9mZnNldHM= b2dsdQ== ZHJt IG1vcnRhbHM= bGF0YWJsZQ== IGRpc21pc3NpdmU= 5LiJ IHRocm9hdHM= IGNoaXBzZXQ= IFNwb3RsaWdodA== Q2F0YWxvZw== YXJ0aXN0 R2I= IGNoaWxseQ== IHN0b2tlZA== IDM3NA== V2FyZA== TGF0aW4= IGZpYXNjbw== IGJsZWFjaA== IGJyYXY= RW5oYW5jZWQ= IGlub2M= IEZpb3JpbmE= Xz4= IGxldWtlbWlh IGVsdWM= IGFubm91bmNlcg== IExpdGh1YW4= IEFybWFnZWRkb24= 5Yc= TGVuaW4= IFJ1aw== IHBlcHA= IFJvbWFudGlj IFBJVA== IEludGVyc3RlbGxhcg== IEF0a2luc29u UmFpZA== SnM= R29hbA== Q291cnNl IHZhbmlzaGluZw== ZXNsZXk= IFJvdW5kcw== RWxzYQ== NTkz IHJlZHVuZGFuY3k= IFNUQU5E IHByb3BoZXRpYw== IGhhYml0YWJsZQ== cnl1 IGZhaW50bHk= TU9ERQ== IGZsYW5rZWQ= SVJD QXdlc29tZQ== IHNwdXJpb3Vz IFphaA== IE1TRw== IHNoYWRpbmc= IG1vdGl2YXRpb25hbA== IFNhbnRhbmE= IFNQUg== IGV4Y3J1Y2lhdGluZw== b21pYWw= IE1pa28= IExlb3BhcmQ= QWJ5c3M= IFt8 ZGlydHk= IGJhdGhz IGRlbW9yYWw= YW5kcmU= UEI= IHVuaWZpY2F0aW9u IHNhY3JhbWVudA== IFsm IHByaWNlbGVzcw== IGdlbGF0aW4= IGVtYW5hdGluZw== IEFsbGFhaA== OTg2 IG91dGJ1cnN0 IGVyYXM= IFhWSQ== IFNQSQ== T3R0 IExhemFydXM= UExJRUQ= Rmx5aW5n YmxvZ3M= V2lzY29uc2lu UmF2ZW4= IHJlYmF0ZQ== IGNyZWVwcw== IFNwYW4= IFBhaW50ZXI= IEtpcmE= IEFtb3M= IENvcnZldHRl Q29uc3VtZXI= IFJlY292ZXI= Y2tp IHBlc2t5 IEludmVudGlvbg== Q29tcGFuaWVz IGNoYWxsZW5nZXJz YWRlbWlj IFVrcmFpbmlhbnM= IE5ldXJvbG9n IEZvcnNha2Vu IGVudHJhbnRz IGVtYmF0dGxlZA== IGRlZnVuY3Q= IEdsYWNpZXI= IHBvaXNvbnM= IEhvcnNlcw== bWFrZXM= IERpcnQ= IDQyMw== aGho IFRyYW5zZm9ybWF0aW9u UVVJUkU= Li4uLi4uLi4uLi4uLi4uLi4u IHRyYXZlbGxlcg== IFNleHk= IEtlcm4= aXBvbGFy IHJhbnNvbXdhcmU= b29vb29vb29vb29vb29vbw== RWM= cnVieQ== UHJvZmVzc2lvbmFs IE91dGJyZWFr YXJndW1lbnQ= R3JleQ== IEZpZmE= IENITw== IEZPUk0= IEFtdHJhaw== LVs= IGNyYWRsZQ== IGFudGlveGlkYW50cw== 44Gu5a4= NzM2 IE5BU0w= IENvbnRyaWJ1dGlvbnM= SW5kaWFuYQ== IFNURVA= Q1NT IHNhbGllbnQ= IGFsbG9jYXRpb25z eXJpZ2h0cw== IG1hc2hlZA== IEN1dHRlcg== U2V4dWFs IHBvdW5kZWQ= IGZhbmJhc2U= IGNhc2M= IFRyYW5zcGFyZW5jeQ== IGFuYWx5dGlj IFN1bW1vbmVy 154= IEFEQw== ZGV0YWls IHZhbnF1aXNoZWQ= IGNyYWJz YXJpZQ== RGVzdHJveQ== IFNhY2s= IHRyYW5zaXN0b3I= QWxhYmFtYQ== IEtvZW4= IEZpc2hlcmllcw== Y29uZQ== IGFubmV4ZWQ= IE1HTQ== ZXNh IGZha2Vk IENvbmdyYXR1bGF0aW9ucw== IGhpbmRlcmVk IGNvcnJlY3Rpb25hbA== IElUVg== bGVldmU= IGluYXBwcm9wcmlhdGVseQ== bGlja3M= IHRyZXNwYXNz IHBhd3M= IG5lZ290aWF0b3I= IENocmlzdGVuc2Vu bGltaXRz IERpYW5uZQ== IGVsZWdhbmNl IENvbnRyYWN0cw== YW5rZQ== T2Jq IHZpZ2lsYW5jZQ== IGNhc3RsZXM= IE5BRA== IEhvbG8= IGVtcGhhdGljYWxseQ== IFRpdHVz IFNlcnZpbmc= IFJpY2hpZQ== IFBpZ3M= NTY4 IGFuaW1vc2l0eQ== IEF0dHJpYnV0ZXM= IFVyaWVs TVE= bXlyYQ== IEFwcGxpY2FudA== IHBzeWNoaWF0cmlzdHM= IFZpag== IEFiYnk= YWdyZWU= UHVzaA== IGtXaA== aGliYQ== IGluY2l0ZQ== IFdlYXNsZXk= IFRheGk= bWluaXN0aWM= aHlwZXI= IEZhcm4= IDYwMQ== IE5hdGlvbndpZGU= RmFrZQ== OTUy IG1haXpl IGludGVyYWN0ZWQ= IHRyYW5zaXRpb25lZA== IHBhcmFzaXRpYw== IGhhcm1vbmlj IGRlY2F5aW5n IGJhc2VsZXNz bnNpY3M= IHRyYW5zcGlyZWQ= IGFidW5kYW50bHk= IEZvcmVuc2lj IHRyZWFkbWlsbA== IEphdg== YWJhbmQ= IHNzaGQ= IGZyb250bWFu IEpha2FydGE= b2xsZXI= ZHJvcHM= IFNFUlZJQ0VT cm9tcHR1 b3BoaWNhbA== aG9zcGl0YWw= YmxlZG9u NjQ1 IG1pZHJhbmdl IEVWRU5U Y3VsYXRlZA== cmF3bGVk IHBlcmNoZWQ= IG92ZXJib2FyZA== IFBlZWw= IFB3cg== IENhcnRo IENPTVBMRQ== Y29l c2hhbGw= IGRldGVycmVuY2U= TUVUSE9E IEFic2VudA== TUVO IHNpbGw= IExFVkVM WW9yaw== IHNpbm5lcnM= IE9QRUM= IE51cg== IERlc2lnbnM= c2VsZWN0aW9u IHVud29ydGh5 Q0hB IHN0cmVuZ3RoZW5z ODgz ZWRseQ== IHNsaWNpbmc= IG1hbG51dHJpdGlvbg== IGZpbG1tYWtpbmc= IFBvbGs= dXJhdGVk IDQyMQ== YnJlYWtlcnM= ISci IHdldGxhbmRz IERpc2NyaW1pbmF0aW9u IGFsbG93YWJsZQ== IHN0ZWVyZWQ= IFNpY2lseQ== U0FN IG11c3RhY2hl IG1pZHM= IGNsaXBwZWQ= IGNpcmN1bGF0ZQ== IGJyaXR0bGU= IEJ1aWxkaW5ncw== cmFpc2Vk IFJvdW5kdXA= IHdlYWx0aGllcg== IG92ZXJ3cml0ZQ== IG92ZXJwb3dlcmVk IEdlcnJhcmQ= c2l0ZXM= UERBVEVE IGFjdXRlbHk= IEdhbWJsZQ== IHBpbQ== IEt1cw== VHlwaWNhbGx5 RGVwbG95 IE1vcm9jY2Fu cG90aW9u Y29tYmU= IHZpZ2lsYW50ZQ== IDM2Mw== U3Rldw== IEJhZ2c= IHJlc2lkZWQ= IFNwbw== IHJlbW5hbnQ= IGVtcHRpbmVzcw== YnJhaW5lcg== IG91dHBhdGllbnQ= cHJpb3JpdHk= IGxlcHRpbg== IFBheXRvbg== IEdsZWFtaW5n IFNoZWQ= IFBvbG8= IE1vcm1vbmlzbQ== cmVzdHJpY3RlZA== YXJsYW5l d3g= IGNyZWF0aW5l IEFub24= IFNUVUQ= IEpVTA== IFRlZQ== NTI4 MDg5 IGhhdGNoZWQ= RGlzcGF0Y2g= IENvbXBvc2l0ZQ== IDQ1MQ== cHVmZg== IFhDT00= IE9ybg== IFRIQU5L RU5ERUQ= IEFzaGV2aWxsZQ== IMOc IG1hbmdv IFNsaWdodGx5 d29ybGRseQ== IFdhbmRlcg== IEV4cGFuZA== IENocg== TWlzdA== IG9ydGhvZG94eQ== IFVORVNDTw== cmVnYXRl RWxzZXdoZXJl a2ll aXJsZWQ= IHRvcHBsZQ== IGFkb3B0aXZl IExlZ3M= ZHJlc3M= IFNhZ2Fu YmFyZQ== IEdsb3U= Q3J1bmNo IGhlbHBlcnM= IGNocm9uaWNhbGx5 IEh1bWE= MTAwMDA= IGFjY29tbW9kYXRpbmc= 5LqU IHdyaW5rbGVz IGRvZGdlZA== Zm91cnRo IHByZWNvbg== IGNvbXByZXNzb3I= IEthcmU= IGV2aWN0 IFdhcndpY2s= aW1hcg== IG1vZGVybml6YXRpb24= IGJhbmR3YWdvbg== IHJlZnV0ZWQ= IG5ldHRlZA== IE5hcGxlcw== IEdlbmll cGVyb3Jz IGZpZWxkZWQ= IGRlcmU= IFBhcmFibGVz bGVlcw== IHRyb3V0 YXNwZXJz IG5paGls IGhhcHBpZXN0 IGZsb3BweQ== IExvZnQ= IEhlYXJk IHVuaXNvbg== IGx1Zw== IFJlZG1vbmQ= Y2xhc3NpYw== U3VwcG9ydGVycw== U0hJUA== R01U IGZ1ZWxsZWQ= 55A= IGRk IEVtaW5lbQ== IDE4OTc= TllTRQ== IHNlY3JldGFyaWVz IEZJQQ== IENhbmF2ZXJhbA== RmF2b3JpdGU= IHBvbXA= IGRldGFpbmVl ZXJzaGlw YWltb24= aW91cg== IEFwZXg= IHBsYW50YXRpb25z YW1pYQ== YWNpb24= UnVzdA== IHRvd2Vk IFRydWx5 NTc3 IHNoZWx0ZXJlZA== cmlkZXI= V28= IGxhaXI= IEludGVsbGlnZW50 aW1wcm92ZQ== bWF0aWNhbGx5 IGV0aXF1ZXR0ZQ== YWRyYQ== YWxsbw== IEp1bm8= YW55dGhpbmc= IFN0cnVnZ2xl IFByZWRpY3Q= IEdyaW1lcw== IEFNRVJJQ0E= Y3R4 IFNpdHVhdGlvbg== V09PRA== IHNvbHVibGU= bWVpZXI= IGludG9sZXJhYmxl YW5nZXJpbmc= IHVuaW50ZXJydXB0ZWQ= IHRvb2x0aXA= IGludGVycm9nYXRlZA== IGd1bm5lZA== IFNuZWFr 5q2m IHRldGhlcg== IGNydW1ibGU= TGVucw== IGNsdXN0ZXJlZA== IFN5bA== IEhhc2Fu IGR5c3RvcGlhbg== d2FuYQ== IGpveXN0aWNr IFRoaWI= YW1tdQ== VG9tb3Jyb3c= NTQ2 IG92ZXJjYW1l IG1pbmltaXplZA== Y2VwdG9y UnVubmVy RU5HVEg= IEJyZW5kYQ== IEFjaGlldmVtZW50cw== IHRvcmNoZXM= IHJhcHBvcnQ= IEludmVzdGlnYXRvcg== IEhhbmRsaW5n cmVsYXRpb24= Z3JleQ== ODE1 IGtjYWw= IENvbW1hbmRz ZHE= IGN1cmxz IGJlYXJlcg== IGN5bmljaXNt aXRyaQ== IFVzZWZ1bA== QmVl RENT IGFicmFz UHJhY3Q= QklMSVRJRVM= NzEy IGRlYnVnZ2Vy IGRlYnRvcg== IExpYQ== IEtlcnM= IGV4YWNlcmJhdGU= IFN0YWN5 IEJsYW5k IFNjZW5lcw== IGJyYW5jaGluZw== 4paI4paI4paI4paI4paI4paI4paI4paI YXBlYWtl IHNhbHNh IG1pc2hhbmQ= IEtvbmFtaQ== IE5pYg== IGFuZWNkb3Rl IGFncmVlYWJsZQ== z4k= IE5hdGhhbmllbA== IEhlaXNtYW4= IEJld2FyZQ== IDE4ODY= c3BlY3RpdmU= Njkx NTIy IGluaGliaXRz IGhhc2hpbmc= IDE4ODk= 5bCG dmljaA== UHVyZQ== IHNvbGlkbHk= IGFzcGlyaW4= aW1hcnU= IHN0cmVldGNhcg== IFVDUw== IEp1ZGQ= IGZsYXNoYmFja3M= cGlucw== IDE0NDA= IFVOSENS IFN5bXB0b21z VElU NTM4 RnJh JSk7 IG9veg== IGN1cmZldw== IGNhbG1lZA== IHBhcnRpY2lwYXRlcw== VGVY IG5vbnNlbnNpY2Fs IGZ1bGxiYWNr IERlTA== bW9ua2V5 aGFyaQ== IG1ldGFib2xpdGVz IGxvb3RlZA== IEFMV0FZUw== IEJDQw== THQ= b2NoZXQ= Qm9uZQ== IHZldG9lZA== IGdjYw== IENMSUNL IDE4ODg= c2Fm IHN0aWZmbmVzcw== IGxvd2x5 IEdlaA== dmVyc29u b3JzZXQ= IHVuZm9yZXNlZW4= IGFuZXN0aGVzaWE= IE9wdGljYWw= IHJlY29uc3RydWN0ZWQ= IFR1cA== c2hvd3M= TkVXUw== IE5ld3NwYXBlcg== IEFTQQ== dGVyYQ== TnVtYmVycw== IGluZXhwbGljYWJsZQ== 15E= IGhhcmRuZXNz dW50YXJpbHk= IEFjZXI= Z3JhZGllbnQ= QVJESVM= IHdvb2RsYW5k IG1ldGFwaG9ycw== IFdlbWJsZXk= IFBhdmVs cGhpbGlz IHJld3JpdGluZw== IHBlcmNlcHR1YWw= IDEwNzA= d29ybXM= IERvd25z IHVuc3VycHJpc2luZ2x5 IHRhZ2dpbmc= ZmxhbWU= IGxpdHJlcw== IGJvdW5jZXM= IEJhYmU= c2h1dA== IG92ZXJkb3Nlcw== IFNoZWlsYQ== IENoYXU= IEJsZXNz Q2FwdHVyZQ== IFNpZ25pZmljYW50 IFNjaW9u IDM4OQ== IE1jSA== IFRpdGFuaXVt IE1lYWw= YW1lZGE= YWdlbnRz YWdncmVzc2l2ZQ== QmlsbHk= NzYz IFNheWluZw== REVSUg== aXRvbmU= Q29sbGlucw== Qm91bmQ= IGJvbHRlZA== IERNQ0E= OTUz IHVuaXF1ZW5lc3M= IGVwaWdlbg== dW5jaQ== YW50YW0= IHJlY2tvbmluZw== Y2hhaXJz T0dS IFNlbmVnYWw= IDE4NjI= cmVsZXZhbnQ= IMKv IHBoYXJtYWNpZXM= IEdlcmFs dmllcg== WWFu T1JQRw== IHJhYmlk YmVuZGluZw== IFVOSVRFRA== IDQ2NQ== QXNzZW1ibHk= IHdlZXA= IGJlaGVzdA== IE1vdGhlcnM= IEphY2U= aGlk IHdoaXJsd2luZA== IFVOSVZFUlM= IHV0b3BpYW4= IGtpZG5hcA== UGhpbGlwcA== S2lu ODkz IGxpdmVzdHJlYW0= IE1JU1M= IHN1YnZlcnNpdmU= IFRlY2huaXF1ZXM= IEpVU1RJQ0U= IEJBU0U= IDM4Nw== IGFzc2FpbGFudHM= IEhhcmRjb3Jl IHNwcmlua2xlZA== IFBzZQ== 6Zo= cHJpbnRlZA== IEhhdQ== T1JHRQ== IFRPVVI= IGxhY2Vk IGl0Y2g= R2l2aW5n IHBvcnRlZA== Nzgx Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8= YnJlZWRpbmc= IGxvZ2dlcg== IEhPTA== aW5uaWU= Rmlyc3RseQ== IGVtYnJ5b25pYw== IGRlbGVnYXRlZA== cGFp T0lM IGNlbnRyYWxseQ== IFJ4 IFNjb3V0aW5n RHV0Y2g= IGhlcmVkaXRhcnk= IENydWlzZXI= c2F0 NTI5 IE1hcnJpb3R0 b3RoZXJtYWw= IHByb2hpYml0aW9ucw== RWFybg== IFN0YWI= IENvbGxlZ2Vz IEJlbGllZg== c3RyZXRjaGVk IExI IEVudGl0eUl0ZW0= Q0lB IHVucmVt IGxhdXJlYXRl IGRlbm9taW5hdGlvbnM= c3VtbWFyeQ== aGxlcg== U3BlY3Q= IEtsYXVz IEJlYW5z IGluc3Vy IFBBWA== IGZpZWxkZXI= IFZldA== IFNwYXJyb3c= emll IFNR IE1vbmRheXM= IE9mZmxpbmU= IExlcm5lcg== IEV4dGVuc2lvbnM= SXJlbGFuZA== IHBhdHJvbmFnZQ== IGNvbnRyYXN0ZWQ= IE1hbmlh aGlydA== TW9zY293 IGNvbmRlbW5z IEFuZ2U= IGNvbXBvc2luZw== IFBlcGU= IFBhZGRvY2s= IGhldGVyb2dlbmVpdHk= IGlkZW9sb2dpY2FsbHk= IGZpc2hlcw== IGN1cnNpbmc= IFJ1dGhlcmZvcmQ= IEZsb2F0aW5n IEFtZWxpYQ== VGVh U3lub3BzaXM= IHN0dW50cw== IGJlYWQ= IHN0b2NraW5n IE1JTEw= b2Jvb2s= bWFzc2l2ZQ== XDw= IGh1bXA= IFByZWZlcmVuY2Vz RW5naW5lRGVidWc= Z2Vpc3Q= IE5pZXRv b21ldmVy aXNoeQ== ZXZhbHVhdGU= Y29sb25pYWw= QWx0ZXJuYXRpdmU= IEdvUHJv IFZvcnRleA== IE5FVFdPUks= YW5za3k= U2VjdXJl IFRocnVzdA== U25ha2U= IHBhcmNlbHM= IHNhbXVyYWk= IGFjdHJlc3Nlcw== TmFw TUY= aWZlcmF0aW9u QmVlcg== NTIz IElseQ== b2ludG1lbnQ= UGluZw== IHN0cmlwZWQ= IE1lbGxvbg== b3NzZXNzaW9u IG5ldXRyb24= ZW5kaXVt IGFwaA== IEZsYXZvcmluZw== IDM4Mw== IHJlc3BvbnNpdmVuZXNz IEppbmRhbA== IEhpdGNoY29jaw== RGVudmVy IERSQUdPTg== c21hbnNoaXA= IER1cGw= IHNseQ== IHdlYmNhbQ== IFR3YWlu IERhcmxpbmc= aWxpYXRl Y29uc3VtZXI= RElU IG5hbWVzYWtl IHVub3J0aG9kb3g= IGZ1bmVy IFBMb1M= IENPTlRST0w= b3p5Zw== b2dsb2Jpbg== RkFDRQ== RVJH IERpYQ== IEZpZXN0YQ== Y2VsZQ== MDM0 IGVuY2xhdmU= 4pas4pas b25lbWVudA== YWxpc3Q= TWFuZA== IGhvbWVncm93bg== IEZhbmN5 IGNvbmNlcHRpb25z IENvbnRhaW5z dXJlZW4= IHJlaXRlcmF0ZQ== IG1lYWdlcg== IGluc3RhbGxtZW50cw== U3Bhd24= NjI3 IHBob3RvYw== IENhYnJlcmE= IFJvc2VudGhhbA== IExhbnNpbmc= aXNuZXI= IGludmVzdHM= IFVGT3M= RVhQ SGFyZHdhcmU= IHRyYWdpY2FsbHk= IGNvbmNlZGVz aWVmdA== Y2hhbQ== Ym9yZ2g= IFNjaHI= IE1lbGFuaWU= IEhveQ== IHZpc2l0YXRpb24= IGlkaW9zeW5jcg== IGZyYWN0aW9ucw== IGZvcmVza2lu b2Jvcw== IHBvYWNoaW5n IFZJRVc= IHN0aW11bGF0ZXM= IEdvcms= Y2Fub24= TUlD IE5lbWVzaXM= IEluZHJh IERNVg== IDUyOQ== IGluc3BlY3Rpbmc= IGdyYW5kbWE= IFdoZWRvbg== IFNoYW50 IFB1cmc= aWthbg== IFRlZw== IENMUg== emFj VmljdG9yaWE= IFZlcmlmeQ== aW9uaWNz IHBhcnR5aW5n IE1vdQ== Y29sb3Vy IHRlc3RpbW9uaWVz bGF0aW9ucw== IHByZXNzdXJpbmc= aGlybw== YWNlcnM= IGZpZA== YW5nbGVy IENTSQ== IGhlcmVhZnRlcg== IGRpc3NpZGVudHM= cmVwb3J0aW5n aXBoYW55 Y2hldg== IHNvbGl0dWRl IGxvYmU= IGluZGlz IGNyZWRlbnRpYWw= cmVjZW50 YWR1bHQ= IE5pcnZhbmE= IEZyYW5jaGlzZQ== TGF5ZXI= SHlw IEJlcmtzaGlyZQ== IHdpbGxz dGlm IHRvdGVt IEp1ZGFo cmVwYWly SW5zdGFudA== NTQ4 IGVtYmFzc2llcw== IGJvdHRsZW5lY2s= IGJvdW50 IHR5cGV3 IEFsdmlu amluZw== aW1pbGFy UnVzaA== IGJyaW0= IEhFTFA= QWlt XSc= IHBhc3NpdmVseQ== IGJvdW5kZWQ= IFJhdGVk IGNyaW1pbmFsaXR5 IGJpb21hcms= IGRpc3BhdGNoZXI= IFRvd2FyZHM= ICsrKw== cmlnaHRlb3Vz ZnJvZw== IFBhbmM= Q2FydGVy MDMy 5qmf IHVsdHJhdmlvbGV0 IExpY2Vuc2Vk IFRhdGE= IEJsZXNzaW5n IEdBTQ== IGNoZW1pY2FsbHk= IFNlYWY= IFJFTEU= IE1lcmNlbmFyeQ== Y2FwaXRhbGlzdA== IGZvcm11bGF0aW9ucw== IGFubmloaWxhdGlvbg== IFZlcmI= IEFyZ29u IHVubG9hZGVk IG1vcnBoZWQ= IGNvbnF1ZXJpbmc= YmFja2Vy SUVMRA== IHRoZWZ0cw== IGZyb250cnVubmVy IFJveWFsZQ== IEZ1bmRhbWVudGFs ZWxpZ2h0 Q2hpcA== bmVjZXNzYXJ5 YXlu IFNsaXA= IDQ0OA== Y2VybmVk UGF1c2U= IHNob2NraW5nbHk= IEFCVg== IGNvbXBvc3VyZQ== NzMz IE1vdG9yc3BvcnQ= YWhpbWU= TXVycmF5 TWFjaA== IGdyaWRz IGRlYmlhbg== IGZ1cnRoZXJtb3Jl IGRleHRlcml0eQ== IENvbGxlY3Rpb25z b3Nsb3Y= aWxhZ2U= Ymo= IE1vbnRlbmVn IHN0cnV0Q29ubmVjdG9y IG1hc3NhY3Jlcw== IGJyaWVmcw== ZmV0Y2hlZA== dXZpYW4= b2xpdGlvbg== RmFpbHVyZQ== ZW1vbmlj IGZsYXJlZA== IGNsYWltYW50 IGN1cmVz IGdpdmVhd2F5cw== IFN1YnN0YW5jZQ== YWxpb25z IGNyaW5nZQ== IEt1bA== IGFyaXN0b2NyYWN5 IFVsc3Rlcg== b2xhdGVk aG91c2luZw== IE1JUw== IGdsYXJlZA== IFdpbGhlbG0= bmVlZHM= bGFtYmRh YnVpbGRlcnM= IFZJUw== IHJhZGlhdG9y IEdob3N0YnVzdGVycw== IDQzNg== YWN0dWFs IGhlcmRz w6dh d2F0Y2hpbmc= IGNvdW50ZXJpbmc= Q2hhcmdl IGNoYXJyZWQ= IHdhcmhlYWRz IGlvZGluZQ== IE1hY3k= MDQx IGRlcGFydHVyZXM= IFNpbnM= IGR5ZWQ= IENvbmNlcHRz Z2Fkbw== NzEz IHF1b3RhdGlvbnM= IGdpc3Q= IENocmlzdHk= IGFudGlnZW4= IEhlbXA= IERyYXdu IEJhcmc= ZXp2b3Vz IHBhdGVybml0eQ== IGFyZHU= IEFuY2hvcmFnZQ== IFJpaw== IG92ZXJsb2FkZWQ= IFVzZXJuYW1l IFRhbW15 IE5hdQ== IENlbGx1bGFy IHdhbmluZw== IHJvZGVudA== IFdvcmNlc3Rlcg== aWx0cw== IFRhZA== IGR3ZWxsaW5ncw== IGJ1bGxpc2g= NDMx IHJldGFsaWF0ZQ== IG1pZ3JhaW5l IENoZXZyb24= Q0hFQ0s= IGRvbmtleQ== Y3JpbQ== U1BB IEFuYWxvZw== IG1hcnF1ZWU= IEhhYXM= Qmly IEdERFI= IERvd25sb2Fkcw== IHdpbGxwb3dlcg== IEZvcnRo IFJlY29yZGVk IGltcG9zc2liaWxpdHk= IExvZ2dlZA== IEZyYW5rcw== IFJhdHQ= aW5pdGlvbnM= IGNsZWFuZXJz IHNvcmVseQ== IGZsaWNrZXJpbmc= IEV4YW1pbmF0aW9u Y2F0Y2hpbmc= YWxsb3dlZW4= TXNn IGR1bm5v RmE= IGR5c3Bo Y3Jhenk= LicnLg== IG1haW5saW5l IGNz IHB0cg== IFdhbGx5 aWd1bg== OTUx IEJpZ2Zvb3Q= ZmlnaHRz IHJldHJpZXZpbmc= SnI= IGR1cGxpY2F0aW9u IEV4cGxhbg== IHJlbGF0aW9uYWw= IHF1YWludA== IGJpc2N1aXRz IGFkbw== IHNodWRkZXI= IGFudGlkb3Rl Ymxvb2RlZA== a3No IHNhdWNlcw== IHJlaW52ZXN0 IGRpc3BlbnNhcnk= IERpdmVy IDkwMDA= c3R1ZGVudA== IGluc2VwYXI= ZXNjYXA= IHRvZGRsZXJz IEdQSU8= IEFzc2lnbm1lbnQ= aGVhZGVycw== IGxhY2tsdXN0ZXI= IGFiYWNr OTU2 IHRvb2xiYXI= NzQ1 IG91c3Q= IGNvbnRlbXBsYXRpb24= IFBSRVNJREVOVA== IDQ1OA== PT09PT09 IGd1YXJhbnRlZWluZw== IEhlaXN0 IENhbm5lcw== mb0= IGNvbGxhYm9yYXRvcg== IEFtcA== IGdvdQ== IFNIQUxM c3Rvcmllcw== Nzgz IG1vYmlsaXplZA== IGJyb29k IExV IPCfkQ== IHJlZmlu IEFudGhyb3BvbG9neQ== dmluZA== aWxsaQ== IHdhcnJhbnRpZXM= IEJhYmVs IHN3YXRo IGNhY2hlcw== IGFudGFnb25pc3Rz YXJ0aWZhY3Rz IGhvdGx5 IFN0YXJ0cw== IEfDtg== emFn ISEhISE= IHNjb3VyZ2U= IGNvbnNwaXJpbmc= cnVpdHM= cmV2ZXJzZQ== IFNoZWVu IEplc3VpdA== IEdpb3Zhbm5p YWRpZXM= IGJ1dHRvY2tz ZWFyY2hlcg== YWNhbg== IHZvbGxleWJhbGw= IHNocm91ZGVk IHNjb3JlYm9hcmQ= YmF0cw== IElQTQ== IGFzc2Vz IGRlcmVndWxhdGlvbg== IFRlbGVncmFt IFJlYm9vdA== IDcwMDA= IENhbmFyeQ== IGtlcm5lbHM= IEZyYW7Dp29pcw== IER1ZmY= IFBvbg== IExlaWNh IEdhcm1pbg== IG9ycGhhbnM= IENsYXVkaWE= IGNhbGVuZGFycw== IExlaWxhbg== ZW50bw== Um9ja2V0 IGJydW5jaA== IEhhd2tpbmc= YWluZXJz IHNlbnNpYmlsaXRpZXM= IGtX IEthbmQ= IHJlY2xhaW1lZA== IGludGVyZXN0aW5nbHk= 16k= cm9teQ== Sk0= IEVuaGFuY2VtZW50 YnVzaA== U2tpcA== IHJhcHBlcnM= IGdhemluZw== cGVkaWE= YXRobG9u UmV2b2x1dGlvbg== IHNuaXBlcnM= IHJldmVydGVk IGNvbmdsb21lcmF0ZQ== VGVycnk= Nzk0 IGhhcnNoZXI= IGRlc29sYXRl IEhpdG1hbg== Q29tbWlzc2lvbg== ICgv 4oCmLiI= Q29tcGFy IGFtcGxpZmljYXRpb24= b21pbmF0ZWQ= IHJlZ3Jlc3M= IENvbGxpZGVy IGluZm9ybWFudHM= IGdhemVk"},uVI={explicit_n_vocab:50281,pat_str:"'s|'t|'re|'ve|'m|'ll|'d| ?\\p{L}+| ?\\p{N}+| ?[^\\s\\p{L}\\p{N}]+|\\s+(?!\\S)|\\s+",special_tokens:{"<|endoftext|>":50256},bpe_ranks:`! 0 IQ== Ig== Iw== JA== JQ== Jg== Jw== KA== KQ== Kg== Kw== LA== LQ== Lg== Lw== MA== MQ== Mg== Mw== NA== NQ== Ng== Nw== OA== OQ== Og== Ow== PA== PQ== Pg== Pw== QA== QQ== Qg== Qw== RA== RQ== Rg== Rw== SA== SQ== Sg== Sw== TA== TQ== Tg== Tw== UA== UQ== Ug== Uw== VA== VQ== Vg== Vw== WA== WQ== Wg== Ww== XA== XQ== Xg== Xw== YA== YQ== Yg== Yw== ZA== ZQ== Zg== Zw== aA== aQ== ag== aw== bA== bQ== bg== bw== cA== cQ== cg== cw== dA== dQ== dg== dw== eA== eQ== eg== ew== fA== fQ== fg== oQ== og== ow== pA== pQ== pg== pw== qA== qQ== qg== qw== rA== rg== rw== sA== sQ== sg== sw== tA== tQ== tg== tw== uA== uQ== ug== uw== vA== vQ== vg== vw== wA== wQ== wg== ww== xA== xQ== xg== xw== yA== yQ== yg== yw== zA== zQ== zg== zw== 0A== 0Q== 0g== 0w== 1A== 1Q== 1g== 1w== 2A== 2Q== 2g== 2w== 3A== 3Q== 3g== 3w== 4A== 4Q== 4g== 4w== 5A== 5Q== 5g== 5w== 6A== 6Q== 6g== 6w== 7A== 7Q== 7g== 7w== 8A== 8Q== 8g== 8w== 9A== 9Q== 9g== 9w== +A== +Q== +g== +w== /A== /Q== /g== /w== AA== AQ== Ag== Aw== BA== BQ== Bg== Bw== CA== CQ== Cg== Cw== DA== DQ== Dg== Dw== EA== EQ== Eg== Ew== FA== FQ== Fg== Fw== GA== GQ== Gg== Gw== HA== HQ== Hg== Hw== IA== fw== gA== gQ== gg== gw== hA== hQ== hg== hw== iA== iQ== ig== iw== jA== jQ== jg== jw== kA== kQ== kg== kw== lA== lQ== lg== lw== mA== mQ== mg== mw== nA== nQ== ng== nw== oA== rQ== IHQ= IGE= aGU= aW4= cmU= b24= IHRoZQ== ZXI= IHM= YXQ= IHc= IG8= ZW4= IGM= aXQ= aXM= YW4= b3I= ZXM= IGI= ZWQ= IGY= aW5n IHA= b3U= IGFu YWw= YXI= IHRv IG0= IG9m IGlu IGQ= IGg= IGFuZA== aWM= YXM= bGU= IHRo aW9u b20= bGw= ZW50 IG4= IGw= c3Q= IHJl dmU= IGU= cm8= bHk= IGJl IGc= IFQ= Y3Q= IFM= aWQ= b3Q= IEk= dXQ= ZXQ= IEE= IGlz IG9u aW0= YW0= b3c= YXk= YWQ= c2U= IHRoYXQ= IEM= aWc= IGZvcg== YWM= IHk= dmVy dXI= IHU= bGQ= IHN0 IE0= J3M= IGhl IGl0 YXRpb24= aXRo aXI= Y2U= IHlvdQ== aWw= IEI= IHdo b2w= IFA= IHdpdGg= IDE= dGVy Y2g= IGFz IHdl ICg= bmQ= aWxs IEQ= aWY= IDI= YWc= ZXJz a2U= ICI= IEg= ZW0= IGNvbg== IFc= IFI= aGVy IHdhcw== IHI= b2Q= IEY= dWw= YXRl IGF0 cmk= cHA= b3Jl IFRoZQ== IHNl dXM= IHBybw== IGhh dW0= IGFyZQ== IGRl YWlu YW5k IG9y aWdo ZXN0 aXN0 YWI= cm9t IE4= dGg= IGNvbQ== IEc= dW4= b3A= MDA= IEw= IG5vdA== ZXNz IGV4 IHY= cmVz IEU= ZXc= aXR5 YW50 IGJ5 ZWw= b3M= b3J0 b2M= cXU= IGZyb20= IGhhdmU= IHN1 aXZl b3VsZA== IHNo IHRoaXM= bnQ= cmE= cGU= aWdodA== YXJ0 bWVudA== IGFs dXN0 ZW5k LS0= YWxs IE8= YWNr IGNo IGxl aWVz cmVk YXJk 4oA= b3V0 IEo= IGFi ZWFy aXY= YWxseQ== b3Vy b3N0 Z2g= cHQ= IHBs YXN0 IGNhbg== YWs= b21l dWQ= VGhl IGhpcw== IGRv IGdv IGhhcw== Z2U= J3Q= IFU= cm91 IHNh IGo= IGJ1dA== IHdvcg== IGFsbA== ZWN0 IGs= YW1l IHdpbGw= b2s= IHdoZQ== IHRoZXk= aWRl MDE= ZmY= aWNo cGw= dGhlcg== IHRy Li4= IGludA== aWU= dXJl YWdl IG5l aWFs YXA= aW5l aWNl IG1l IG91dA== YW5z b25l b25n aW9ucw== IHdobw== IEs= IHVw IHRoZWly IGFk IDM= IHVz YXRlZA== b3Vz IG1vcmU= dWU= b2c= IFN0 aW5k aWtl IHNv aW1l cGVy LiI= YmVy aXo= YWN0 IG9uZQ== IHNhaWQ= IC0= YXJl IHlvdXI= Y2M= IFRo IGNs ZXA= YWtl YWJsZQ== aXA= IGNvbnQ= IHdoaWNo aWE= IGlt IGFib3V0 IHdlcmU= dmVyeQ== dWI= IGhhZA== IGVu IGNvbXA= LCI= IElu IHVu IGFn aXJl YWNl YXU= YXJ5 IHdvdWxk YXNz cnk= IOKA Y2w= b29r ZXJl c28= IFY= aWdu aWI= IG9mZg== IHRl dmVu IFk= aWxl b3Nl aXRl b3Jt IDIwMQ== IHJlcw== IG1hbg== IHBlcg== IG90aGVy b3Jk dWx0 IGJlZW4= IGxpa2U= YXNl YW5jZQ== a3M= YXlz b3du ZW5jZQ== IGRpcw== Y3Rpb24= IGFueQ== IGFwcA== IHNw aW50 cmVzcw== YXRpb25z YWls IDQ= aWNhbA== IHRoZW0= IGhlcg== b3VudA== IENo IGFy IGlm IHRoZXJl IHBl IHllYXI= YXY= IG15 IHNvbWU= IHdoZW4= b3VnaA== YWNo IHRoYW4= cnU= b25k aWNr IG92ZXI= dmVs IHF1 Cgo= IHNj cmVhdA== cmVl IEl0 b3VuZA== cG9ydA== IGFsc28= IHBhcnQ= ZnRlcg== IGtu IGJlYw== IHRpbWU= ZW5z IDU= b3BsZQ== IHdoYXQ= IG5v ZHU= bWVy YW5n IG5ldw== LS0tLQ== IGdldA== b3J5 aXRpb24= aW5ncw== IGp1c3Q= IGludG8= IDA= ZW50cw== b3Zl dGU= IHBlb3BsZQ== IHByZQ== IGl0cw== IHJlYw== IHR3 aWFu aXJzdA== YXJr b3Jz IHdvcms= YWRl b2I= IHNoZQ== IG91cg== d24= aW5r bGlj IDE5 IEhl aXNo bmRlcg== YXVzZQ== IGhpbQ== b25z IFs= IHJv Zm9ybQ== aWxk YXRlcw== dmVycw== IG9ubHk= b2xs IHNwZQ== Y2s= ZWxs YW1w IGFjYw== IGJs aW91cw== dXJu ZnQ= b29k IGhvdw== aGVk ICc= IGFmdGVy YXc= IGF0dA== b3Y= bmU= IHBsYXk= ZXJ2 aWN0 IGNvdWxk aXR0 IGFt IGZpcnN0 IDY= IGFjdA== ICQ= ZWM= aGluZw== dWFs dWxs IGNvbW0= b3k= b2xk Y2Vz YXRlcg== IGZl IGJldA== d2U= aWZm IHR3bw== b2Nr IGJhY2s= KS4= aWRlbnQ= IHVuZGVy cm91Z2g= c2Vs eHQ= IG1heQ== cm91bmQ= IHBv cGg= aXNz IGRlcw== IG1vc3Q= IGRpZA== IGFkZA== amVjdA== IGluYw== Zm9yZQ== IHBvbA== b250 IGFnYWlu Y2x1ZA== dGVybg== IGtub3c= IG5lZWQ= IGNvbnM= IGNv IC4= IHdhbnQ= IHNlZQ== IDc= bmluZw== aWV3 IFRoaXM= Y2Vk IGV2ZW4= IGluZA== dHk= IFdl YXRo IHRoZXNl IHBy IHVzZQ== IGJlY2F1c2U= IGZs bmc= IG5vdw== IOKAkw== Y29t aXNl IG1ha2U= IHRoZW4= b3dlcg== IGV2ZXJ5 IFVu IHNlYw== b3Nz dWNo IGVt ID0= IFJl aWVk cml0 IGludg== bGVjdA== IHN1cHA= YXRpbmc= IGxvb2s= bWFu cGVjdA== IDg= cm93 IGJ1 IHdoZXJl aWZpYw== IHllYXJz aWx5 IGRpZmY= IHNob3VsZA== IHJlbQ== VGg= SW4= IGV2 ZGF5 J3Jl cmli IHJlbA== c3M= IGRlZg== IHJpZ2h0 IHN5 KSw= bGVz MDAw aGVu IHRocm91Z2g= IFRy X18= IHdheQ== IGRvbg== ICw= IDEw YXNlZA== IGFzcw== dWJsaWM= IHJlZw== IEFuZA== aXg= IHZlcnk= IGluY2x1ZA== b3RoZXI= IGltcA== b3Ro IHN1Yg== IOKAlA== IGJlaW5n YXJn IFdo PT0= aWJsZQ== IGRvZXM= YW5nZQ== cmFt IDk= ZXJ0 cHM= aXRlZA== YXRpb25hbA== IGJy IGRvd24= IG1hbnk= YWtpbmc= IGNhbGw= dXJpbmc= aXRpZXM= IHBo aWNz YWxz IGRlYw== YXRpdmU= ZW5lcg== IGJlZm9yZQ== aWxpdHk= IHdlbGw= IG11Y2g= ZXJzb24= IHRob3Nl IHN1Y2g= IGtl IGVuZA== IEJ1dA== YXNvbg== dGluZw== IGxvbmc= ZWY= IHRoaW5r eXM= IGJlbA== IHNt aXRz YXg= IG93bg== IHByb3Y= IHNldA== aWZl bWVudHM= Ymxl d2FyZA== IHNob3c= IHByZXM= bXM= b21ldA== IG9i IHNheQ== IFNo dHM= ZnVs IGVmZg== IGd1 IGluc3Q= dW5k cmVu Y2Vzcw== IGVudA== IFlvdQ== IGdvb2Q= IHN0YXJ0 aW5jZQ== IG1hZGU= dHQ= c3RlbQ== b2xvZw== dXA= IHw= dW1w IGhlbA== dmVybg== dWxhcg== dWFsbHk= IGFj IG1vbg== IGxhc3Q= IDIwMA== MTA= IHN0dWQ= dXJlcw== IEFy c2VsZg== YXJz bWVyaWM= dWVz Y3k= IG1pbg== b2xsb3c= IGNvbA== aW8= IG1vZA== IGNvdW50 IENvbQ== aGVz IGZpbg== YWly aWVy 4oCU cmVhZA== YW5r YXRjaA== ZXZlcg== IHN0cg== IHBvaW50 b3Jr IE5ldw== IHN1cg== b29s YWxr ZW1lbnQ= IHVzZWQ= cmFjdA== d2Vlbg== IHNhbWU= b3Vu IEFs Y2k= IGRpZmZlcmU= IHdoaWxl LS0tLS0tLS0= IGdhbWU= Y2VwdA== IHNpbQ== Li4u IGludGVy ZWs= IHJlcG9ydA== IHByb2R1 IHN0aWxs bGVk YWg= IGhlcmU= IHdvcmxk IHRob3VnaA== IG51bQ== YXJjaA== aW1lcw== YWxl IFNl IElm Ly8= IExl IHJldA== IHJlZg== IHRyYW5z bmVy dXRpb24= dGVycw== IHRha2U= IENs IGNvbmY= d2F5 YXZl IGdvaW5n IHNs dWc= IEFtZXJpYw== IHNwZWM= IGhhbmQ= IGJldHdlZW4= aXN0cw== IERl b290 SXQ= IGVhcg== IGFnYWluc3Q= IGhpZ2g= Z2Fu YXo= YXRoZXI= IGV4cA== IG9w IGlucw== IGdy IGhlbHA= IHJlcXU= ZXRz aW5z IFBybw== aXNt IGZvdW5k bGFuZA== YXRh dXNz YW1lcw== IHBlcnNvbg== IGdyZWF0 cHI= IHNpZ24= IEFu J3Zl IHNvbWV0 IHNlcg== aGlw IHJ1bg== IDo= IHRlcg== aXJlY3Q= IGZvbGxvdw== IGRldA== aWNlcw== IGZpbmQ= MTI= IG1lbQ== IGNy ZXJlZA== ZXg= IGV4dA== dXRo ZW5zZQ== Y28= IHRlYW0= dmluZw== b3VzZQ== YXNo YXR0 dmVk IHN5c3RlbQ== IEFz ZGVy aXZlcw== bWlu IGxlYWQ= IEJs Y2VudA== IGFyb3VuZA== IGdvdmVybg== IGN1cg== dmVsb3A= YW55 IGNvdXI= YWx0aA== YWdlcw== aXpl IGNhcg== b2Rl IGxhdw== IHJlYWQ= J20= Y29u IHJlYWw= IHN1cHBvcnQ= IDEy Li4uLg== IHJlYWxseQ== bmVzcw== IGZhY3Q= IGRheQ== IGJvdGg= eWluZw== IHNlcnY= IEZvcg== IHRocmVl IHdvbQ== IG1lZA== b2R5 IFRoZXk= NTA= IGV4cGVy dG9u IGVhY2g= YWtlcw== IGNoZQ== IGNyZQ== aW5lcw== IHJlcA== MTk= Z2c= aWxsaW9u IGdyb3U= dXRl aWs= V2U= Z2V0 RVI= IG1ldA== IHNheXM= b3g= IGR1cmluZw== ZXJu aXplZA== YXJlZA== IGZhbQ== aWNhbGx5 IGhhcHA= IElz IGNoYXI= bWVk dmVudA== IGdlbmVy aWVudA== cGxl aWV0 cmVudA== MTE= dmVz cHRpb24= IDIw Zm9ybWF0aW9u IGNvcg== IG9mZmlj aWVsZA== IHRvbw== aXNpb24= IGluZg== IFo= dGhl b2Fk IHB1YmxpYw== IHByb2c= cmlj Kio= IHdhcg== IHBvd2Vy dmlldw== IGZldw== IGxvYw== IGRpZmZlcmVudA== IHN0YXRl IGhlYWQ= J2xs IHBvc3M= IHN0YXQ= cmV0 YW50cw== IHZhbA== IGlzcw== IGNsZQ== aXZlcnM= YW5j IGV4cGw= IGFub3RoZXI= IFE= IGF2 dGhpbmc= bmNl V2g= IGNoaWxk IHNpbmNl aXJlZA== bGVzcw== IGxpZmU= IGRldmVsb3A= aXR0bGU= IGRlcA== IHBhc3M= 44M= IHR1cm4= b3Ju VGhpcw== YmVycw== cm9zcw== IEFk IGZy IHJlc3A= IHNlY29uZA== b2g= IC8= IGRpc2M= ICY= IHNvbWV0aGluZw== IGNvbXBsZQ== IGVk IGZpbA== IG1vbnRo YWo= dWM= IGdvdmVybm1lbnQ= IHdpdGhvdXQ= IGxlZw== IGRpc3Q= IHB1dA== IHF1ZXN0 YW5u IHByb3Q= MjA= IG5ldmVy aWVuY2U= IGxldmVs IGFydA== IHRoaW5ncw== IG1pZ2h0 IGVmZmVjdA== IGNvbnRybw== IGNlbnQ= IDE4 IGFsbG93 IGJlbGll Y2hvb2w= b3R0 IGluY3Jl IGZlZWw= IHJlc3VsdA== IGxvdA== IGZ1bg== b3Rl IHR5 ZXJlc3Q= IGNvbnRpbg== IHVzaW5n IGJpZw== MjAx IGFzaw== IGJlc3Q= ICk= SU4= IG9wcA== MzA= IG51bWJlcg== aW5lc3M= U3Q= bGVhc2U= IGNh IG11c3Q= IGRpcmVjdA== IGds IDw= IG9wZW4= IHBvc3Q= IGNvbWU= IHNlZW0= b3JkaW5n IHdlZWs= YXRlbHk= aXRhbA== IGVs cmllbmQ= IGZhcg== IHRyYQ== aW5hbA== IHByaQ== IFVT IHBsYWNl IGZvcm0= IHRvbGQ= Ijo= YWlucw== YXR1cmU= IFRydW1w IHN0YW5k ICM= aWRlcg== IEZy IG5leHQ= IHNvYw== IHB1cg== IGxldA== IGxpdHRsZQ== IGh1bQ== IGk= cm9u MTU= IDE1 IGNvbW11bg== IG1hcms= IFRoZXJl IHdy IFRoYXQ= IGluZm9ybWF0aW9u d2F5cw== IGJ1cw== YXBw IGludmVzdA== bWU= IGhhcmQ= YWluZWQ= ZWFk IGltcG9ydA== IGFwcHJv IHRlc3Q= IHRyaQ== IHJlc3Q= b3NlZA== IGZ1bGw= IGNhcmU= IFNw IGNhc2U= T04= IHNr IGxlc3M= ICs= IHBhcnRpYw== IFBs YWJseQ== dWNr aXNoZWQ= Y2hu YmU= IGxpc3Q= YXRvcg== IHRvcA== IGFkdg== IEJl cnVjdA== IGRlbQ== cmF0aW9u bGluZw== Z3k= cmVlbg== Z2Vy IGhvbWU= IGxlZnQ= IGJldHRlcg== IGRhdGE= IDEx IGF0dGFjaw== IHByb2JsZQ== bGluZQ== YXJkcw== IGJlaA== cmFs IEhvdw== IFNoZQ== YXJnZQ== IC0t Oi8v IGJybw== IFBo YXRz IGJ1aWxk d3c= aWRlZA== YWlt YXNlcw== ZW5jeQ== IG1haW4= aW5lZA== IGluY2x1ZGluZw== IHs= IGdvdA== IGludGVyZXN0 IGtlZXA= IFg= IGVhcw== YWluaW5n IGNsYXNz 4oCm IE5v IHZhcg== IHNtYWxs YW1wbGU= QVQ= IGlkZQ== IFNv IHJlY2U= IHBvbGl0 IG1vdg== IHBsYW4= IHBlcmNlbnQ= aXZpbmc= IGNhbXA= IHBheQ== MTQ= c2M= aXNlZA== IHVudA== b25leQ== cGxveQ== PT09PQ== IGRpZG4= IEluZA== ZWxz ZXJ0YWlu IHBvcw== X19fXw== aXZlcg== IHByb2Nlc3M= IHByb2dyYW0= aWZpZWQ= IFJlcA== MTY= dXJv b2xvZ3k= YXR0ZXI= aW5h IG5hbWU= IEFsbA== IGZvdXI= IHJldHVybg== dmlvdXM= YnM= IGNhbGxlZA== IG1vdmU= IFNj aXJk IGdyb3Vw IGJyZQ== IG1lbg== IGNhcA== dGVu ZWU= IGRyaQ== bGVn aGVyZQ== dXRob3I= IHBhdA== IGN1cnJlbnQ= aWRlcw== IHBvcA== dG8= ZW50aW9u IGFsd2F5cw== IG1pbA== IHdvbWVu IDE2 IG9sZA== aXZlbg== cmFwaA== IE9y cm9y ZW50bHk= IG5lYXI= IEV4 cmVhbQ== c2g= IDE0 IGZyZWU= aXNzaW9u c3RhbmQ= IENvbg== YWxpdHk= dXNlZA== MTM= IGRlc2lnbg== IGNoYW5nZQ== IGNoYW5n IGJv IHZpcw== ZW1iZXI= IGJvb2s= cmVhZHk= IGtpbGw= MjU= cHBlZA== IGF3YXk= IGFibGU= IGNvdW50cnk= IGNvbnN0 YXJu IG9yZGVy QVI= aW9y aXVt b3J0aA== MTg= YWlsYWJsZQ== IHN3 IG1pbGxpb24= IDEz YXRpYw== dGVk IEdv IG9wZXI= ZW5n IHRoaW5n YWpvcg== Y29ub20= IENvbW0= IHdoeQ== dXJlZA== dXJhbA== IHNjaG9vbA== Ynk= IE1hcg== IGFmZg== IGRheXM= IGFubg== dXNo YW5l SWY= ZWc= IHByb2Y= IGhlYWx0aA== b3V0aA== QnV0 aW9uYWw= Liw= IHNvbA== IGFscmVhZHk= IDMw IGNoYXJhY3Q= SGU= IGZyaWVuZA== RVM= aWFucw== aWNsZQ== J2Q= IE9u IGxlYXN0 IHByb20= IGRy IGhpc3Q= aXRoZXI= IGVzdA== aXF1 MTc= c29u IHRlbGw= IHRhbGs= b2hu b2ludA== bGVjdGlvbg== QU4= IHVudGls YXVnaA== IGxhdGVy IHZl IHZpZXc= ZW5kaW5n aXZlZA== IHdvcmQ= d2FyZQ== IGNvc3Q= IGVub3VnaA== IGdpdmU= IFVuaXRlZA== IHRlY2hu YXJlbnQ= T1I= IHBhcg== IERy IDIwMTY= cmlzdA== ZXJpbmc= IMI= IGxhcmdl c2lkZQ== YWN5 Y2Nlc3M= IHdpbg== IGltcG9ydGFudA== IDE5OQ== IGRvZXNu IDE3 IGJ1c2luZXNz IGNsZWFy IHJlc2U= Iiw= dXJ5 IGVxdQ== YXN0ZXI= YWxm IEFtZXJpY2Fu bmVjdA== IGV4cGVjdA== aXZlcnNpdHk= IG9jYw== IEZs IGtpbmQ= IG1lYW4= IHBhc3Q= IGRldg== IGJhcw== bGV0 cmFmdA== IG9yZ2Fu IGRlbA== IHBlcmZvcm0= IHN0b3J5 IHNlYXNvbg== IENvbA== IGNsYWlt IGNhbWU= IHdpdGhpbg== IGxpbmU= IHByb2plY3Q= IEF0 IGNvbnRyb2w= ZW5kZWQ= IFN5 IGFpcg== aXphdGlvbg== ICo= bGV5 IG1vbmV5 aWRk WW91 Zm9y IGZhbWlseQ== IG1ha2luZw== IGJpdA== IHBvbGljZQ== IGhhcHBlbg== IHZlcnM= b255 dWZm IFdoZW4= IHNpdA== aWRlbw== bGY= aXNvbg== IHN1cmU= Z2lu IGFwcGVhcg== IGxpZ2h0 IGVz b2Y= IHdhdGVy IHRpbWVz bm90 IGdyb3c= IGNvbXBhbnk= IFRl b3dz IG1hcg== b3VyY2U= aW9s YXJt YnI= IGV4YW1wbGU= IGNvbmM= IGZvcmU= IFRv cHJv RU4= cmllcw== IDI1 IENhbg== bmV5 IGFjdHVhbGx5 IGV2ZXI= dXJpdHk= YWtlbg== YXBz IHRheA== IG1ham9y YW1h IG9mdGVu ZXJhbA== IGh1bWFu IGpvYg== aXN0ZXI= IGF2YWlsYWJsZQ== b2Ny ZW5u YWlk aXZpZA== IHJlY29yZA== PyI= IHNpbmc= IEFt aWRlbmNl IG5ld3M= c3Rlcg== IGVjb25vbQ== IGZvbGxvd2luZw== IEJy aXNpbmc= IGhvdXI= bW9zdA== dW1lbnQ= IHNleA== IGRlc2M= IGJlY29tZQ== IEVk IHRvb2s= IGhhdmluZw== IHByb2R1Y3Q= YXVsdA== QXM= YXJpbmc= IG1lYW5z IGhvcA== dW5l IGNobw== IGNlcnRhaW4= IG5vbg== IGRlYWw= MjQ= bGVtZW50 b2Np ZW5l IHNpZGU= IFBy IE1heQ== IHJlYXNvbg== dWVk Y2hlZA== dWxhdGlvbg== IGVsZWN0 IG9mZmljaWFs IHBvc3NpYmxl IGhvbGQ= YW5kcw== b3Rz IGNpdHk= b3JpZXM= IHNldmVy IGNoaWxkcmVu IG9uY2U= IGFjdGl2 bGVy IG5pZ2h0 aXRpb25z IEpvaG4= YXBl cGxheQ== IGRvbmU= IGxpbQ== IHdvcmtpbmc= IFByZXM= b3JsZA== ZWI= IENv IGJvZHk= YWlscw== dXRlcw== IE1y IHdoZXRoZXI= IGF1dGhvcg== cm9w IHByb3Blcg== IHNlZW4= KTs= IGZhYw== IFN1 IGNvbmQ= aXRpbmc= IGNvdXJzZQ== IH0= LS0tLS0tLS0tLS0tLS0tLQ== YWlnbg== IGV2ZW50 IGVuZw== IHBvdA== IGludGVybg== aWFt IHNob3J0 ZW1wdA== 44I= IEdvZA== aWxhcg== ODA= IG9yaWc= SVM= b3Vybg== YWJpbGl0eQ== aXRpdmU= IGRhbQ== IDEwMA== IHByZXNz IGRvaW5n IHByb3RlY3Q= cmluZw== IHRob3VnaHQ= IHF1ZXN0aW9u cmV3 IFdhcg== IHNldmVyYWw= IFN0YXRl IGdpdmVu IGZ1bmQ= IFR3 IHdlbnQ= YW5jZXM= d29yaw== cG9y bXk= NDA= IGFyZw== YXJ0bWVudA== dXN0b20= IHBvbGlj IG1lZXQ= IGNyZWF0 MjI= IFN0YXRlcw== IGdhbWVz cmF3 dXR1cmU= IHVuZGVyc3RhbmQ= dXJz IE9i bGlzaA== c3k= IG1ha2Vz IHdvbg== YWdvbg== IGh0dA== IGxvdmU= ZW50aWFs IGNvbXBsZXRl cGFy IElt QUw= IGFjY291bnQ= wqA= b3JlZA== dmVydA== IGlkZW50 IDIwMTU= IG90aGVycw== IE1pbg== aWJlcg== dmVyYWdl VGhlcmU= aXRpb25hbA== ZGQ= IHByb2I= IHlvdW5n IGFsb25n IGFjY29yZGluZw== IHlldA== IG1lbWJlcnM= IFdoYXQ= b2lk IE1hbg== QW5k IGFtb25n YWk= IGVtcGxveQ== IFJlcw== ID4= IGludm9s IGxvdw== YWY= IENhcg== IGhpZw== IE9uZQ== IFNlYw== aW5hdGlvbg== IGxpa2VseQ== IGFudA== YWdlZA== IFJ1c3M= IGJlbg== IHJlbGU= Rm9y YmFjaw== IE5vdA== IHByZXNpZGVudA== YmFsbA== IGFjY2Vzcw== aXZpZHVhbA== IERlbQ== IEV1cm8= NjA= IGtub3du aXJs IEdy IGVhcmx5 dXNl aWV0eQ== 4oCT IGZpZ2h0 IHNlbnQ= IHRvZGF5 IG1hcmtldA== Ii4= IGJhc2Vk IHN0cm9uZw== dXJ0aGVy IGRlYg== bWJlcg== IHByb2JsZW0= IGRlYXRo IHNvY2lhbA== aW1hdGU= QVM= b3J0dW4= IGNhbXBhaWdu ZXJ5 Q2g= IGV5 aWFsbHk= IG11cw== d2g= cG9z IGVy IHNhZg== IG1vbnRocw== aXJvbg== IHZpb2w= IGZpdmU= IHN0cmU= IHBsYXllcnM= aW5j YWxk eWVhcg== YXVu IHN1Y2Nlc3M= IHByZXNlbnQ= ZXJlbmNl IDIwMTQ= IHN1Z2c= IHBhcnRpY3VsYXI= IHRyeQ== IHN1Z2dlc3Q= IENocmlzdA== b25lcw== IHByaXY= MjM= IGNyaXQ= IGxhbmQ= IGxvY2Fs aWZ5 Mjk= IGF1dA== RUQ= IEd1 IG11bHQ= IHBvbGl0aWNhbA== IGFza2Vk IGZvcm1lcg== aXR0ZXI= cmlwdA== IGNsb3Nl IHByYWN0 IFlvcms= IGdldHRpbmc= IGFjcm9zcw== IGNvbWI= IGJlbGlldmU= IHo= IHRvZ2V0 IHRvZ2V0aGVy IENlbnQ= aXJj IGluZGl2aWR1YWw= IE1j Mjc= aXNr IEVuZw== IGZhY2U= IDI0 IHZhbHVl IGFyZWE= ZXY= IHdyaXQ= IFByZXNpZGVudA== IHZvdA== IGtleQ== IG1vbQ== cHV0 IGFueXRoaW5n IGV4cGVyaWVuY2U= YXR0bGU= IG1pbmQ= YWZm b21t IGZ1dHVyZQ== Z2Vk IGN1dA== IHRvdA== aXRjaA== IHZpZGVv IGludmVzdGln IG5ldA== IE15 cmljdA== aWVu Lik= IGltcHJv dGhvdWdo d2FyZHM= IGNvbm5lY3Q= IE1lZA== c2VsdmVz ZW5zaXZl bWI= b2Jlcg== YXRvcnM= QW4= IDUw IHJlZHU= cmVzZW50 IGFib3Zl IGZyZQ== IEV1cm9wZQ== c3c= IGFtb3VudA== IEFwcA== IGVpdGhlcg== IG1pbGl0 IGFuYWw= IGZhaWw= IEVu YWxlcw== IHNwZWNpYWw= IGJsYWNr SVQ= Y2hlcg== IGxvb2tpbmc= IGZpcmU= eW4= IGFsbW9zdA== b29u IHN0dWR5 IG1pc3M= Y2hlcw== cm93bg== IHRyZQ== IGNvbW11bml0eQ== IG1lZGlh IGZvb2Q= IGNvbWVz IFVuaXZlcnNpdHk= IHNpbmdsZQ== V2hhdA== dWx5 IGhhbGY= YWd1ZQ== aG9k IFJlcHVibGlj IHN0YXJ0ZWQ= IHF1aWNr b3Rv Ym9vaw== IGlzc3Vl aXRvcg== IGVsc2U= IGNvbnNpZGVy MjY= cm9kdQ== IHRha2Vu Mjg= OTk= IFdpdGg= IHRydWU= IHdh IHRyYWQ= IGFnbw== IG1lc3M= aWVm IGFkZGVk b2tl IGJhZA== IGZhdg== MzM= IHNpbWlsYXI= YXNr IERvbg== IGNoYXJhY3Rlcg== b3J0cw== IEhvdXNl IHJlcG9ydGVk IHR5cGU= dmFs aW9k IEhvd2V2ZXI= IHRhcmc= IGVudGlyZQ== cHBpbmc= IGhpc3Rvcnk= IGxpdmU= ZmZpYw== Li4uLi4uLi4= ZWRlcmFs IHRyeWluZw== IGRpc2N1c3M= IEhhcg== YWNlcw== bGlzaGVk IHNlbGY= b3Nw cmVzdA== IHJvb20= ZWx0 IGZhbGw= b2x1dGlvbg== IGV0 IHg= IGlzbg== IGlkZWE= Ym8= IHNvdW5k IERlcA== IHNvbWVvbmU= Y2lhbGx5 dWxseQ== IGZvYw== IG9iamVjdA== aWZ0 YXBlcg== IHBsYXllcg== IHJhdGhlcg== IHNlcnZpY2U= YXNoaW5n IERv IFBhcnQ= cnVn bW9u cGx5 IG1vcg== IG5vdGhpbmc= IHByb3ZpZGU= SUM= dW5n IHBhcnR5 IGV4aXN0 IG1hZw== NzA= IHJ1bA== IGhvdXNl IGJlaGluZA== IGhvd2V2ZXI= IFdvcmxk IHN1bQ== IGFwcGxpYw== IDs= IGZ1bmN0aW9u Z3I= IFBvbA== IGZyb250 MjAw IHNlcmllcw== IHRlbQ== IHR5cA== aWxscw== IG9wdA== IHBvaW50cw== IGJlbG93 aXR0ZWQ= IHNwZWNpZmlj IDIwMTc= dW1i IHJh IHByZXZpb3Vz IHByZXQ= cmVtZQ== IGN1c3RvbQ== IGNvdXJ0 IE1l IHJlcGw= IHdob2xl Z28= Y2Vy IHRyZWF0 IEFjdA== IHByb2JhYmx5 IGxlYXJu ZW5kZXI= IEFzcw== IHZlcnNpb24= bm93 IGNoZWNr IENhbA== UkU= bWluaXN0 T24= b3VyY2Vz IGJlbmVm IGRvYw== IGRldGVy IGVuYw== IHN1cGVy IGFkZHJlc3M= IHZpY3Q= IDIwMTM= IG1lYXM= dHI= IGZpZWxk V2hlbg== IHNpZ25pZmlj dWdl IGZlYXQ= IGNvbW1vbg== bG9hZA== IGJlZ2lu IGJyaW5n IGFjdGlvbg== ZXJtYW4= IGRlc2NyaWI= IGluZHVzdA== IHdhbnRlZA== cmllZA== bWluZw== IGF0dGVtcHQ= NDU= ZmVy IGR1ZQ== cmVzc2lvbg== IyM= IHNoYWxs IHNpeA== b28= IHN0ZXA= IHB1Yg== IGhpbXNlbGY= IDIz IGNvcA== IGRlc3Q= IHN0b3A= QUM= aWJpbGl0eQ== IGxhYg== aWN1bHQ= IGhvdXJz IGNyZWF0ZQ== IGZ1cnRoZXI= IEFtZXJpY2E= IENpdHk= IGRvdQ== aGVhZA== U1Q= IE5vcnRo Y2luZw== IG5hdGlvbmFs dWxl IEluc3Q= IHRha2luZw== IFF1 aXJ0 IHJlZA== IHJlc2VhcmNo dmlyb24= IEdl IGJyZWFr YW5h IHNwYWNl YXRlcmlhbA== IHJlY2VudA== IEFi IGdlbmVyYWw= IGhpdA== IHBlcmlvZA== IGV2ZXJ5dGhpbmc= aXZlbHk= IHBoeXM= IHNheWluZw== YW5rcw== IGNvdQ== IGN1bHQ= YWNlZA== ZWFs dWF0aW9u IGNvdW4= bHU= IGluY2x1ZGU= IHBvc2l0aW9u IEFmdGVy IENhbmFk IEVt IGltbQ== IFJlZA== IHBpY2s= IGNvbXBs IG1hdHRlcg== cmVn ZXh0 YW5ndQ== aXNj b2xl YXV0 IGNvbXBldA== ZWVk ZmVjdA== IDIx IFNlbg== IFRoZXNl YXNpbmc= IGNhbm5vdA== IGluaXQ= IHJlbGF0aW9ucw== YWNoZWQ= IGJhcg== IDQw IFRI IDIwMTI= IHZvbA== IGdyb3VuZA== IHNlY3VyaXR5 IHVwZA== aWx0 MzU= IGNvbmNlcm4= IEp1c3Q= IHdoaXRl IHNlZW1z IEhlcg== cGVjaWFsbHk= aWVudHM= IGFubm91bg== IGZpZw== aWdodHM= IHN0cmk= bGlrZQ== aWRz IHN1cw== IHdhdGNo IOI= IHdpbmQ= IENvbnQ= IGl0c2VsZg== IG1hc3M= QWw= eWxl aXF1ZQ== IE5hdGlvbmFs IGFicw== IHBhY2s= IG91dHNpZGU= IGFuaW0= IHBhaW4= ZXRlcg== IG1hbmFn ZHVjdA== b2du IF0= IFNlcHQ= c2Vj b2Zm IEphbg== IGZvb3Q= YWRlcw== IHRoaXJk IG1vdA== IGV2aWRlbmNl aW50b24= IHRocmVhdA== YXB0 cGxlcw== Y2xl IGxv IGRlY2w= IGl0ZW0= bWVkaQ== IHJlcHJlc2VudA== b21i YW1lcg== IHNpZ25pZmljYW50 b2dyYXBo c3U= IGNhbA== aXJlcw== MDAwMA== SUQ= QU0= IHNpbXBseQ== IGxvbmdlcg== IGZpbGU= T1Q= Y2hl U28= YXRlZw== b3Jn IEhpcw== IGVuZXI= IGRvbQ== IHVwb24= aWxp Ijoi IHRoZW1zZWx2ZXM= IGNvbWluZw== IHF1aXRl IGRpZmZpY3VsdA== IEJhcg== aWxpdGllcw== cmVs ZW5kcw== Y2lhbA== NjQ= IHdvbWFu cmFw eXI= IG5lY2Vzcw== aXBz IHRleHQ= IHJlcXVpcmU= IG1pbGl0YXJ5 IHJldmlldw== IHJlc3BvbnM= NzU= IHN1YmplY3Q= IGluc3RlYWQ= IGlzc3Vlcw== IGdlbg== Iiwi IG1pbnV0ZXM= IHdlYXA= cmF5 YW1lZA== dGltZQ== Ymw= SG93 IGNvZGU= IFNt IGhpZ2hlcg== IFN0ZQ== cmlz IHBhZ2U= IHN0dWRlbnRz IEludGVybg== IG1ldGhvZA== IEF1Zw== IFBlcg== IEFn IHBvbGljeQ== IFN3 IGV4ZWM= IGFjY2VwdA== dW1l cmlidXQ= IHdvcmRz IGZpbmFs IGNoYW5nZXM= IERlbW9jcg== IGZyaWVuZHM= IHJlc3BlY3Q= IGVw IGNvbXBhbg== aXZpbA== IGRhbWFnZQ== KioqKg== b2dsZQ== dmlyb25tZW50 IG5lZw== ZW50YWw= IGFw IHRvdGFs aXZhbA== ISI= bGlt IG5lZWRz IGFncmU= IGRldmVsb3BtZW50 IGFnZQ== aXBsZQ== MjE= IHJlc3VsdHM= IEFm U2g= IGd1bg== IE9iYW1h cm9sbA== IEA= IHJpZ2h0cw== IEJyaXQ= IHJ1bm5pbmc= IHdhc24= IHBvcnQ= IHJhdGU= IHByZXR0eQ== IHRhcmdldA== IHNhdw== IGNpcmM= IHdvcmtz aWNybw== YWx0 b3Zlcg== d3d3 VGhhdA== bGllcg== IGV2ZXJ5b25l dWRl IHBpZQ== aWRkbGU= cmFlbA== IHJhZA== IGJsb2Nr IHdhbGs= VG8= 44E= bmVz IEF1c3Q= YXVs cm90ZQ== IFNvdXRo ZXNzaW9u b3Bo IHNob3dz IHNpdGU= IGpv IHJpc2s= Y2x1cw== bHQ= IGluag== aWRpbmc= IFNwZQ== IGNoYWxs aXJt IDIy aXR0aW5n c3Ry IGh5 TEU= a2V5 IGJlZ2Fu YXR1cg== YXNoaW5ndG9u bGFt IERhdg== Yml0 IHNpemU= IFBhcg== Mzg= b3VybmFs ZmFjZQ== IGRlY2lzaW9u IGxhcmc= IGp1ZA== cmVjdA== IGNvbnRpbnVl IE9jdA== b3ZlcmVk IEludA== PT09PT09PT0= IHBhcmVudA== IFdpbGw= IGVhc3k= IGRydWc= YW5nZXI= IHNlbnNl IGRp aWRheQ== IGVuZXJneQ== aXN0aWM= IGFzc29jaQ== YXJ0ZXI= b2JhbA== ZWtz IEVs dXJjaA== IGdpcmw= b2U= aXRsZQ== IDI4 IENoZQ== IHJlcXVlc3Q= IHNvb24= IGhvc3Q= a3k= IHN0YXRlcw== b21lcw== IG1hdGVyaWFs bGV4 IG1vbWVudA== IGFuc3c= b25zZQ== IGVzcGVjaWFsbHk= IG5vcm0= IHNlcnZpY2Vz cGl0ZQ== cmFu IHJvbGU= NDQ= KTo= IGNyZWQ= Q2w= X19fX19fX18= IG1hdA== IGxvZw== IENsaW50b24= T1U= IG9mZmljZQ== IDI2 IGNoYXJn IHRyYWNr bWE= IGhlYXJ0 IGJhbGw= IHBlcnNvbmFs IGJ1aWxkaW5n bmE= c2V0 Ym9keQ== IEJsYWNr IGluY3JlYXNl aXR0ZW4= IG5lZWRlZA== MzY= MzI= PSI= IGxvc3Q= IGJlY2FtZQ== IGdyb3Vwcw== IE11cw== IHdyb3Rl IFBl IHByb3A= am95 w6k= IFdoaXRl IGRlYWQ= Lic= IGh0dHA= IHdlYnM= T1M= IGluc2lkZQ== IHdyb25n IHN0YXRlbWVudA== IC4uLg== eWw= IGZpbG0= IG11c2lj IHNoYXJl aWZpY2F0aW9u IHJlbGVhc2U= IGZvcndhcmQ= IHN0YXk= IGNvbXB1dA== aXR0ZQ== c2Vy IG9yaWdpbmFs IGNhcmQ= IGNhbmQ= IGRpdg== YXR1cmFs IGZhdm9y T00= IGNhc2Vz dXNlcw== IHNlY3Rpb24= IGxlYXZl Z2luZw== b3ZlZA== IFdhc2hpbmd0b24= Mzk= IEds IHJlcXVpcmVk YWN0aW9u YXBhbg== b29y aXRlcg== IEtpbmc= IGNvdW50cmllcw== IEdlcm1hbg== bGxpbmc= IDI3 MzQ= IHF1ZXN0aW9ucw== IHByaW0= IGNlbGw= IHNob290 IGFueW9uZQ== IFdlc3Q= IGFmZmVjdA== ZXBlbmQ= IG9ubGluZQ== IElzcmFlbA== IFNlcHRlbWJlcg== IGFiaWxpdHk= IGNvbnRlbnQ= aXNlcw== IHJldmU= IGxhdW4= IGluZGlj IGZvcmNl Y2FzdA== IHNvbGQ= YXZpbmc= Zmw= IHNvZnQ= IGNvbXBhbmllcw== Y2VlZA== IGFydGljbGU= IGF1ZA== IHJldg== IGVkdWM= IHBsYXlpbmc= MDU= IGhlbGQ= Y3Rvcg== IHJlbGVhc2Vk IGZlZGVyYWw= Mzc= IGFkbWluaXN0 IGludGVydmlldw== IGluc3RhbGw= IHJlY2VpdmVk IHNvdXJjZQ== dWs= UGg= IHNlcmlvdXM= IGNyZWF0ZWQ= IGNhdXNl IGltbWVkaQ== IGRlZmlu dWVs IERlcGFydG1lbnQ= Y3Rpb25z IENvdXI= IE5vdw== emU= aXRlcw== aXR1dGlvbg== IGxhdGU= IHNwZWFr bmVycw== IGxlZ2Fs YXJp IENvcg== IHdlZWtz IG1vZGVs IHByZWQ= IGV4YWN0 QkM= IEJ5 SU5H b3Npbmc= IHRha2Vz IHJlZ2FyZA== IG9wcG9ydHVu IHByaWNl IDE5OA== IEFwcg== ZnVsbHk= IG9yZA== IHByb2JsZW1z cnVjdGlvbg== aGFt IENvdW50 bGVnZQ== IGxlYWRlcnM= RVQ= bGV2 IGRlZXA= b2xvZ2ljYWw= ZXNl aGFwcw== IFNvbWU= IHBlcnM= IGNvbnRyYWN0 IHJlbGF0aW9uc2hpcA== c3A= b3Vk IGJhc2U= NDg= bWl0 QWQ= YW5jaWFs IGNvbnN1bQ== IHBvdGVudGlhbA== IGxhbmd1 cmVt ZXRo IHJlbGln cmVzc2Vk NjY= IGxpbms= IGxvd2Vy YXllcg== IEp1bmU= IGZlbQ== dW50 ZXJj dXJk IGNvbnRhY3Q= IGlsbA== IG1vdGhlcg== IGVzdGFi aHR0 IE1hcmNo IEJybw== IENoaW5h IDI5 IHNxdQ== IHByb3ZpZGVk IGF2ZXJhZ2U= YXNvbnM= IDIwMTE= IGV4YW0= bGlu NTU= bmVk IHBlcmZlY3Q= IHRvdQ== YWxzZQ== dXg= IGJ1eQ== IHNob3Q= IGNvbGxlY3Q= IHBob3Q= IHBsYXllZA== IHN1cnBy IG9mZmljaWFscw== IHNpbXBsZQ== YXZ5 IGluZHVzdHJ5 IGhhbmRz Z3JvdW5k IHB1bGw= IHJvdW5k IHVzZXI= IHJhbmdl dWFyeQ== IHByaXZhdGU= b3Bz ZWVz IHdheXM= IE1pY2g= IHZlaA== IGV4Y2VwdA== IHRlcm1z aW11bQ== cHBlcg== SU9O b3Jlcw== IERyYWdvbg== b3Vs IGRlbg== IHBlcmZvcm1hbmNl IGJpbGw= Y2ls NDc= IGVudmlyb25tZW50 IGV4Yw== YWRk IHdvcnRo IHBpY3Q= IGNoYW5jZQ== IDIwMTg= Ym9y IHNwZWVk aWN0aW9u IGFsbGVn IEphcGFu YXRvcnk= cmVldA== IG1hdGNo IElJ IHN0cnU= b3JkZXI= IHN0ZQ== IGxpdmluZw== IHN0cnVjdA== aW5v IHNlcGFy aGVybg== IHJlc3BvbnNl IGVuam95 IHZpYQ== QUQ= dW1lbnRz YWNlYm9vaw== IG1lbWJlcg== aWJy aXppbmc= IHRvb2w= IE1vbg== IFdoaWxl aG9vZA== IEFuZw== IERlZg== IG9mZmVy VHI= YXVy IHR1cm5lZA== IEp1bHk= ZG93bg== YW5jZWQ= IHJlY2VudGx5 IEVhcg== IGNl IFN0YXI= IENvbmc= cm91Z2h0 IGJsb29k IGhvcGU= IGNvbW1lbnQ= YWludA== IGFycmk= aWxlcw== IHBhcnRpY2lw b3VnaHQ= cmlwdGlvbg== MDg= NDk= IGdhdmU= IHNlbGVjdA== IGtpbGxlZA== c3ljaA== IGdvZXM= aWo= IGNvbGw= IGltcGFjdA== YXRpdmVz IFNlcg== MDk= IEF1Z3VzdA== IGJveQ== ZGU= IERlcw== IGZlbHQ= VVM= IGV4cGVjdGVk IGltYWdl IE1hcms= Y2NvcmRpbmc= b2ljZQ== RUM= IE1hZw== ZW5lZA== aG9sZA== IFBvc3Q= IHByZXZlbnQ= Tm8= IGludm9sdmVk IGV5ZXM= IHF1aWNrbHk= QXQ= dW5r IGJlaGF2 IHVy IGxlZA== Y29tZQ== ZXk= IGNhbmRpZA== IGVhcmxpZXI= IGZvY3Vz ZXR5 UHJv bGVkZ2U= aXhlZA== aWxsZWQ= IHBvcHVsYXI= QVA= IHNldHQ= bGlnaHQ= IHZhcmlvdXM= aW5rcw== IGxldmVscw== IHJvYWQ= ZWxsaWc= YWJsZXM= aGVs aXR0ZWU= IEdlbmVy eXBl IGhlYXJk aWNsZXM= IG1pcw== IHVzZXJz IFNhbg== IGltcHJvdmU= IGZhdGhlcg== IHNlYXJjaA== VGhleQ== dmls IHByb2Zlc3M= IGtuZXc= IGxvc3M= IGV2ZW50cw== NjU= IGJpbGxpb24= MDc= MDI= IE5ld3M= IEFN IGNvdmVy d2hlcmU= ZW5zaW9u IGJvdHQ= IGFyZWFz ZW5jZXM= b3Bl IFR3aXR0ZXI= YWVs IGdldHM= IEdvb2dsZQ== IHNu aWFudA== IHZvdGU= IG5lYXJseQ== IGluY2x1ZGVk IHJlY29nbg== eno= bW0= YWxlZA== IGhhcHBlbmVk MDQ= IGhvdA== IHdob3Nl IGNpdmls IHN1ZmY= b2Vz aXRpeg== IFN5cmk= IHJlc3BvbmQ= IGhvbg== IGZlYXR1cmVz IGVjb25vbWlj IEFwcmls cmlt IHRlY2hub2xvZ3k= IG9wdGlvbg== YWdpbmc= IHB1cmNo UmU= IGxhdA== Y2hpZQ== aXNs IHJlY29tbQ== dWY= IHRyYWluaW5n IGVmZmVjdHM= IGZhc3Q= IDIwMTA= IG9jY3Vy IHdlYnNpdGU= IGVtYWls IHNlbnM= ZWNo IG9pbA== IGluZmx1 IGN1cnJlbnRseQ== IFNjaA== IEFkZA== IGdvYWw= IHNjaWVudA== IGNvbnY= MTAw ZW15 IGRlY2lkZWQ= IHRyYXZlbA== IG1lbnRpb24= TEw= MDM= IGVsZWN0aW9u IHBob25l IGxvb2tz IHNpdHVhdGlvbg== IGN5 IGhvcg== YmVk IENvdXJ0 YWlseQ== YXZlcw== IHF1YWxpdHk= IENvbXA= d2lzZQ== IHRhYmxl IHN0YWZm IFdpbmQ= ZXR0 IHRyaWVk aWRlcmVk IGFkZGl0aW9u IGJveA== IGxhY2s= YXJpbHk= IHdpZGU= IG1pZA== IGJvYXJk eXNpcw== IGFudGk= aGE= IGRpZw== ZW5pbmc= IGRybw== Q29u Njg= IHNsb3c= YmFzZWQ= c2VxdQ== IHBhdGg= RXg= YWtlcg== IHdvcmtlZA== IHBlbg== IGVuZ2luZQ== IGxvb2tlZA== IFN1cGVy IFNlcnY= IHZpY3RpbQ== VW4= IHByb3BlcnR5 IGludHJvZHU= IGV4ZWN1dA== IFBN TGU= IGNvbG9y IE1vcmU= IDYw IG5ldHdvcms= IGRhdGU= Y3Vs aWRnZQ== IGV4dHJh MzE= IHNsZQ== Njc= IHdvbmQ= IHJlcG9ydHM= anVzdA== IEF1c3RyYWw= IGNhcGl0YWw= IGVucw== IGNvbW1hbmQ= IGFsbG93ZWQ= IHByZXA= IGNhcHQ= aGli IG51bWJlcnM= Y2hhbg== IGZhaXI= bXA= b21z IHJlYWNo V2l0aA== dGFpbg== IGJyb2Fk IGNvdXBsZQ== ZWNhdXNl bHlpbmc= IEZlYg== IHNjcmVlbg== IGxpdmVz IHByaW9y IENvbmdyZXNz QXI= IGFwcHJvYWNo IGVtZXI= YXJpZXM= IERpcw== c2Vydg== IE5l IGJ1aWx0 Y2llcw== IHJlcGU= IHJ1bGVz Zm9yY2U= IFBhbA== IGZpbmFuY2lhbA== IGNvbnNpZGVyZWQ= IENoYXI= bmNlcw== IElT IGJyb3VnaHQ= IGJp aWVycw== IFNpbQ== T1A= IHByb2R1Y3Rz IHZpc2l0 IGRvY3VtZW50 IGNvbmR1Y3Q= IGNvbXBsZXRlbHk= aW5pbmc= IENhbGlm aWJseQ== IHdyaXR0ZW4= IFRW ZW1lbnRz IGRyYXc= T25l IHB1Ymxpc2hlZA== IHNlY3JldA== cmFpbg== aGV0 IEZhY2Vib29r b25kYXk= IFVw IHNleHVhbA== IHRob3Vz IFBhdA== IGVzcw== IHN0YW5kYXJk IGFybQ== Z2Vz ZWN0aW9u IGZlbGw= IGZvcmVpZ24= YW5p IEZyaWRheQ== IHJlZ3VsYXI= aW5hcnk= IGluY3JlYXNlZA== IHVzdWFsbHk= IGRlbW9u IGRhcms= IGFkZGl0aW9uYWw= cm9s IE9m IHByb2R1Y3Rpb24= ISE= dW5kcmVk IGludGVybmF0aW9uYWw= aWRlbnRz IEZyZWU= cm91cA== IHJhY2U= IG1hY2g= IGh1Z2U= QWxs bGVhcg== b3ZlbWJlcg== IHRvd24= IGF0dGVudGlvbg== IE9mZg== eW9uZA== IFRoZW4= ZmllbGQ= IHRlcnJvcg== cmF6 IEJv IG1lZXRpbmc= IFBhcms= IGFycmVzdA== IGZlYXI= IGF3 IFZhbA== b3Jpbmc= Jyw= IGV4dHJlbWU= YXJy IHdvcmtlcnM= QWZ0ZXI= IDMx bmV0 YW1lbnQ= IGRpcmVjdGx5 IHBvcHVsYXRpb24= dWJl IE9jdG9iZXI= IElO IEphbnVhcnk= NTk= IERhdmlk IGNyb3Nz Y2VtYmVy IEZpcnN0 IG1lc3NhZ2U= aXJpdA== IG5hdGlvbg== IHBvbGw= aXNpb25z IGFuc3dlcg== bnk= aXNvZGU= IGNhcnJ5 IFJ1c3NpYQ== IGhlYXI= ZW5ndGg= cm95 IG5hdHVyYWw= aW5hbGx5 IGRvZw== bWl0dGVk IHRyYWRl IHN1YnN0 IG11bHRpcGxl IEFmcmlj IGZhbnM= IHNvcnQ= IGdsb2JhbA== aWNhdGlvbg== IFdlZA== YXJh IGFjaGll IGxhbmd1YWdl dmV5 IHRhbA== IG5lY2Vzc2FyeQ== IGRldGFpbHM= IHNlbg== IFN1bmQ= IFJlZw== IFJlYw== MDY= IHNpbA== cmVzc2l2ZQ== IG1lZGljYWw= dW5jaA== b3JuaWE= IHVuZA== Zm9ydA== b2Nrcw== IE1vbmRheQ== dWVzZGF5 Y3JhZnQ= Nzc= dXJ0 IHZlcg== IEhpbGw= IHJlY2VpdmU= IG1vcm5pbmc= ZXN0ZXJu IGJhbms= IHNhdA== aXJ0aA== IEhpZ2g= IGRldmljZQ== IFRIRQ== IENlbnRlcg== IHNhZmU= IHBsZQ== IENhbmFkYQ== IHN5c3RlbXM= IGFzc2lzdA== IHN1cnY= IGJhdHRsZQ== IFNvYw== dmVydGlz U2hl IHBhcGVy IGdyb3d0aA== IGNhc3Q= U2M= IHBsYW5z bGxlZA== IHBhcnRz IHdhbGw= IG1vdmVtZW50 IHByYWN0aWNl aW1hdGVseQ== IGRpc3BsYXk= IHNvbWV0aW1lcw== b21w IFBhdWw= IFllcw== a2luZw== NTg= b2x5 IHNvbg== IGF2b2lk b2tlcw== IEpldw== IHRvd2FyZHM= YXNj IC8v IEtvcmU= IHRhbGtpbmc= IGNvcnJlY3Q= IHNwZW50 aWNrcw== aWFibGU= ZWFyZWQ= IHRlcm0= IHdhbnRz b21pbmc= IHV0 IGRvdWI= IGZvcmNlcw== IHBsZWFzZQ== Njk= IE5vdmVtYmVy YXRmb3Jt b25kb24= IG9uZXM= IGltbWVkaWF0ZWx5 IFJ1c3NpYW4= IE1ldA== IGRlZw== IHBhcmVudHM= Q0g= IEFtZXJpY2Fucw== YWx5 IE1vZA== IHNob3du IGNvbmRpdGlvbnM= IHN0dWZm IHJlYg== IFlvdXI= IGluY2x1ZGVz bm93bg== IFNhbQ== IGV4cGVyaWVu bWlzc2lvbg== IEV2ZW4= YXVnaHQ= IGFubm91bmNlZA== IFJlcHVibGljYW4= IGRldGVybWlu IGRlc2NyaWJlZA== IENvdW50eQ== KCk= IGRvb3I= IGNoYW5nZWQ= IG5laWdo IEhlcmU= IGNsZWFu IHBhbg== IERlY2VtYmVy IEV1cm9wZWFu aXJpbmc= YXB0ZXI= IGNsdWI= IFR1ZXNkYXk= IHBhaWQ= IE5ldA== IGF0dGFja3M= IGNoYXJhY3RlcnM= IGFsb25l IGRpcmVjdG9y ZG9t IDM1 IGxvYWQ= IHJvdXQ= IENhbGlmb3JuaWE= IGZpbmFsbHk= IHJhYw== IGNvbnRy IGV4YWN0bHk= cmVzaA== cHJp IElzbGFt IG5hdHVyZQ== IGNhcmVlcg== IGxhdGVzdA== IGNvbnZlcnM= IFNs cG9zZQ== Y2llbnQ= IEluYw== aXZpdHk= ODg= IEF0dA== IE1vcg== bmVzZGF5 IHdlaWdodA== a2Vu IG5vdGU= IHRlYW1z IFw= YWlycw== IEdyZWVu IGh1bmRyZWQ= b25lbnQ= IHN0cmVuZw== IGNvbnNpc3Q= aWNhdGVk IHJlZ3Vs IGxpYw== YXN0aWM= IHRlbg== dXJzZGF5 ZWxsaWdlbmNl b3VzbHk= IFVL Qkk= IGNvc3Rz IGluZGVwZW5k IEFQ IG5vcm1hbA== IGhvbQ== IG9idmlvdXM= IHN3ZQ== IHN0YXI= IHJlYWR5 YWNoZXI= IGltcGxlbWVudA== Z2VzdA== IHNvbmc= IEdldA== IExhYg== IGludGVyZXN0aW5n dXNpbmc= IGdpdmluZw== IFN1bmRheQ== IGV0Yw== IG1pZGRsZQ== IHJlbWVtYmVy cmlnaHQ= b3NpdGlvbg== dXRpb25z IG1heA== NDY= IHlvdXJzZWxm IGRlbWFuZA== IHRyZWF0bWVudA== IGRhbmdlcg== IENvbnM= IGd1eQ== IEJyaXRpc2g= IHBoeXNpY2Fs IHJlbGF0ZWQ= IHJlbWFpbg== IGNvdWxkbg== IHJlZmVy IGNpdGl6 Ym94 RU5U Ym9hcmQ= IGlubg== SUc= ZXJv IFN0cmVldA== b3NwaXRhbA== cmVuY2g= Y2hlcnM= IHN0cmE= T0w= YWdlcg== IEFO IGVhc2lseQ== SUE= ZW5nZQ== aW55 IGNsb3M= b2NrZWQ= IHVzZXM= IENvdW4= SW0= dWlsZA== Pz8= bW9yZQ== IGFuZw== IHdyaXRl b2x1dGU= NTc= IGxlYWRlcg== IHJlYWRpbmc= PC8= IGF1dG9t ZXN0cw== NDM= IGxlZ2lzbA== IEdvbGQ= IGRlc2lnbmVk IFNU IExlZw== YXJlcw== IGJlYXV0 IFRleA== IGFwcGVhcnM= IHN0cnVnZw== IFJvbQ== IDAw IGNob2ljZQ== IHBhcnRpY3VsYXJseQ== IEZyb20= b3Blcg== IExvbmRvbg== YW5uZWQ= IGFsbG93cw== b2JpbGU= IGRpZmZlcmVuY2U= 4oCi IFZpZXc= IFdlZG5lc2RheQ== IGFsdGhvdWdo IHJlbGF0aXZl IGFwcGxpY2F0aW9u YXRldmVy IGFyZW4= IG15c2VsZg== IGltYWc= IGRpc2U= IHNvY2lldHk= IGZyZXF1 IEVuZ2xpc2g= IHBvb3I= IERheQ== IHdyaXRpbmc= IHNldmVu IHN0YXJ0aW5n IGJ1ZA== IHByaW50 IFRyYW5z dWZhY3Q= IFN0dWQ= bmV3 IGNyaW0= IGdpdmVz IGNvb2w= YWU= aWFuY2U= IEdlbmVyYWw= IHRoaW5raW5n IHNhdmU= IGxpbWl0ZWQ= IFBhcnR5 IG1lYW5pbmc= cGVu b3dlcnM= IEphY2s= RU0= IG5pY2U= cnVwdA== IGdhcw== IGVpZ2h0 IGZlZXQ= IGVmZm9ydA== IGlnbg== aWNpdA== Qmw= Y29pbg== IG9waW4= IGJyYWlu V2hpbGU= aGVzdA== IFRodXJzZGF5 IHdvdWxkbg== YXVnaHRlcg== IHRvdWNo bGVtZW50cw== IHN0dWRpZXM= IGNlbnRlcg== Y29udA== b3JnZQ== IGNvbXB1dGVy IGludmVzdGlnYXRpb24= UGw= b3Jrcw== IDIwMDg= IGluY3JlYXNpbmc= IHN0b3Jl IGNvbW1lbnRz IGJhbA== bWVu IGRvbGw= IGxpYmVy IHdpZmU= IGxhd3M= YXR1cmRheQ== aXRuZXNz IG1vZGVybg== IFNr IGFkbWluaXN0cmF0aW9u IG9wcG9ydHVuaXR5 IHNhbA== IHBvd2VyZnVs TXk= IGNsYWltcw== IEVhcnRo b3Jkcw== IHRpdGxl IGVzYw== bmFtZQ== Tm90 b21lbg== IGJleW9uZA== IGNhbWVy IHNlbGw= aXR1dGU= ZWFyY2g= IGFwcGw= aW1lbnQ= NDI= IEFydA== IHVuZg== IHZpb2xlbmNl dXJn IEVhc3Q= IGNvbXBhcmVk IG9wdGlvbnM= IHRocm91Z2hvdXQ= IHZz aWdy Lls= YWNoZXM= Nzg= IGZpbGVz Rkw= RUw= YXJpYW4= IEphbWVz IEFpcg== YW5jaA== IGRldGFpbA== IHBpZWNl UFM= IG5hbWVk IGVkdWNhdGlvbg== IGRyaXZl IGl0ZW1z IHN0dWRlbnQ= aWNlZA== Ojo= aWNv IHRocm93 IHNjZW5l IGNvbXBsZXg= IDIwMDk= IHByZWM= IEJyZQ== Nzk= IGNvbmNlcHQ= IHN0YXR1cw== YW1pbmc= IGRpZWQ= IGtub3dsZWRnZQ== IGJlZ2lubmluZw== T0Q= cnVhcnk= IGNlcnRhaW5seQ== IGd1eXM= IHNsaWdodA== aW5u b3VuZHM= IGZpbmU= IGZhdA== aWNhdGlvbnM= IHBlcmhhcHM= IEFudA== IGluY29tZQ== IGh0dHBz IG1ham9yaXR5 cG9ydHM= c3Rvbg== IGdyZWF0ZXI= IGZlZWQ= ZW50aWFsbHk= IHNhZmV0eQ== IHVuaXF1ZQ== YW5kb20= IGdvbmU= IHNob3dlZA== IGhpc3Rvcg== IGNvdW50ZXI= aXVz aWRh IGxlYWRpbmc= aXBl IHNlbmQ= IERvbmFsZA== ZXJ2ZQ== IGRlZmVuc2U= aW5lc2U= IHllcw== IEZpcmU= IE11c2xpbQ== cmFx IGNvbnRpbnVlZA== b3No IHByb3ZpZGVz IHByaXNvbg== IFByZQ== IGhhcHB5 IGVjb25vbXk= IHRydXN0 YWdz IEdhbWU= IHdlYXBvbnM= dW1hbg== IENsZQ== aXRhdGlvbg== IGFuYWx5c2lz IFRpbWVz IHNjaWVuY2U= LT4= IGZpZ3VyZQ== IGRpc2FwcA== ZW50eQ== IHNvZnR3YXJl IHVsdA== IG9mZmljZXJz TmV3 SXM= IHJlbWFpbnM= IEluZGlh IHBzeWNo cmllZg== IGNhdA== ZXNj IG9ic2Vydg== IHN0YWdl IERhcms= IGVudGVy Y2hhbmdl IHBhc3NlZA== IGRlc3BpdGU= IE91dA== IG1vdmll cnM= IHZvaWNl bWluZQ== IFBsYXk= IHRvd2FyZA== IFRlcg== IHJlZ2lvbg== IHZhbHVlcw== b3J0ZXJz IG1vdW50 IG9mZmljZXI= IE90aGVy YmFu IGhvdXM= d29vZA== cm9vbQ== SVY= IFN1bg== c2Vl IE92ZXI= cm9n OTA= IGxheQ== IFR1cg== YXdu IHByZXNzdXJl IFN1Yg== IGJvb2tz ZWRvbQ== IFNhbmQ= QUE= YWdv IHJlYXNvbnM= Zm9yZA== IGFjdGl2aXR5 VVQ= Tm93 IFNlbmF0ZQ== Y2VsbA== bmlnaHQ= IGNhbGxz aW50ZXI= IGxldHRlcg== IFJvYg== IEpl IGNob29zZQ== IExhdw== R2V0 QmU= IHJvYg== IHR5cGVz IHBsYXRmb3Jt IHF1YXJ0ZXI= UkE= IFRpbWU= IG1heWJl IENy OTU= cHJl IG1vdmluZw== IGxpZg== IGdvbGQ= IHNvbQ== IHBhdGllbnRz IHRydXRo IEtl dXJhbmNl YW50bHk= bWFy IGNoYXJnZQ== IEdyZWF0 IGNlbGU= LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0= IHJvY2s= cm9pZA== YW5jeQ== IGNyZWRpdA== YXVk Qnk= IEV2ZXJ5 IG1vdmVk aW5nZXI= cmlidXRpb24= IG5hbWVz IHN0cmFpZ2h0 IEhlYWx0aA== IFdlbGw= IGZlYXR1cmU= IHJ1bGU= IHNjaGU= aW5hdGVk IE1pY2hhZWw= YmVyZw== NDE= aWxlZA== YmFuZA== IGNsaWNr IEFuZ2Vs b25lbnRz wq0= IElyYXE= IFNhdHVyZGF5 IGF3YXJl cGFydA== IHBhdHRlcm4= T1c= IExldA== IGdyYWQ= aWduZWQ= IGFzc29jaWF0ZWQ= IHN0eWxl bm8= aWF0aW9u YWl0aA== aWxpZXM= IHN0b3JpZXM= dXJhdGlvbg== IGluZGl2aWR1YWxz IOKApg== bWlzcw== IEFzc29jaQ== aXNoaW5n YWJ5 IHN1bW1lcg== IEJlbg== IDMy IGFyY2g= dXR5 IFRleGFz aG9s IGZ1bGx5 IG1pbGw= IGZvbGxvd2Vk IEJpbGw= IEluZGlhbg== IFNlY3JldA== IEJlbA== IEZlYnJ1YXJ5 IGpvYnM= IHNlZW1lZA== IEdvdmVybg== aXBwZWQ= IHJlYWxpdHk= IGxpbmVz IHBhcms= IG1lYXN1cmU= IE91cg== SU0= IGJyb3RoZXI= IGdyb3dpbmc= IGJhbg== IGVzdGlt IGNyeQ== IFNjaG9vbA== IG1lY2hhbg== IE9G IFdpbmRvd3M= IHJhdGVz IE9o IHBvc2l0aXZl IGN1bHR1cmU= aXN0aWNz aWNh IGhhcg== eWE= aXRlbHk= aXBw IG1hcA== ZW5jaWVz IFdpbGxpYW0= SUk= YWtlcnM= NTY= IE1hcnQ= IFJlbQ== IGFsdGVybg== aXR1ZGU= IGNvYWNo cm93ZA== RG9u IGtpZHM= IGpvdXJuYWw= IGNvcnBvcg== IGZhbHNl IHdlYg== IHNsZWVw IGNvbnRhaW4= IHN0bw== IGJlZA== aXZlcnNl IFJpY2g= IENoaW5lc2U= IHB1bg== IG1lYW50 a25vd24= IG5vdGljZQ== IGZhdm9yaXRl YXZlbg== IGNvbmRpdGlvbg== IHB1cnBvc2U= KSk= IG9yZ2FuaXphdGlvbg== IGNoYWxsZW5n IG1hbnVmYWN0 IHN1c3A= IEFj IGNyaXRpYw== dW5lcw== dWNsZWFy IG1lcg== dmVudGlvbg== IDgw IG1pc3Q= IFVz IFRvcg== aHR0cA== b2xm IGxhcmdlcg== IGFkdmFudA== IHJlc2Vhcg== IGFjdGlvbnM= bWw= IGtlcHQ= IGFpbQ== LCc= Y29s IGJlbmVmaXRz aWZ5aW5n IGFjdHVhbA== IEludGVybmF0aW9uYWw= IHZlaGljbGU= IGNoaWVm IGVmZm9ydHM= IExlYWd1ZQ== IE1vc3Q= IHdhaXQ= IGFkdWx0 IG92ZXJhbGw= IHNwZWVjaA== IGhpZ2hseQ== IGZlbWFsZQ== IGVycm9y IGVmZmVjdGl2ZQ== NTQ= IGVuY291cg== d2VsbA== IGZhaWxlZA== IGNvbnNlcnY= IHByb2dyYW1z IHRyb3U= IGFoZWFk NTAw dmVydGlzZW1lbnQ= SVA= IEZvdW5k cGly ICU= IGNyaW1l YW5kZXI= IGxvY2F0aW9u IElyYW4= IGJlaGF2aW9y YXppbmc= IHJhcmU= IGVtYg== IGNhdXNlZA== IHNoaXA= IGFjdGl2ZQ== IGNvbnRyaWJ1dA== IGdyZWVu IGFjcXU= IHJlZmxlY3Q= dmVudWU= IGZpcm0= IGJpcnRo XS4= IGNsZWFybHk= IGVtb3Q= IGFnZW5jeQ== cmlhZ2U= IG1lbW9yeQ== OTg= U0E= IFNlZQ== YWNpbmc= Q0M= IGJpZ2dlc3Q= IHJhcA== IGJhc2lj IGJhbmQ= ZWF0 IHN1c3BlY3Q= IE1hYw== IDkw bWFyaw== aXN0YW4= IHNwcmVhZA== YW1z a2k= YXN5 cmF2 IFJvYmVy IGRlbW9uc3Ry cmF0ZWQ= IGFic29sdXRl IHBsYWNlcw== IGltcGw= aWJyYXJ5 IGNhcmRz IGRlc3Ryb3k= IHZpcnQ= dmVyZQ== IGFwcGVhcmVk eWFu cG9pbnQ= IGJlZw== IHRlbXBlcg== c3Bl YW50ZWQ= ZWFycw== IERpcmVjdA== IGxlbmd0aA== IGJsb2c= YW1i IGludGVn IHJlc291cmNlcw== YWNj aWZ1bA== IHNwb3Q= IGZvcmNlZA== IHRob3VzYW5kcw== IE1pbmlzdGVy IHF1YWw= IEZyZW5jaA== YXRpY2FsbHk= IGdlbmVyYWxseQ== IGRyaW5r IHRodXM= SUw= b2Rlcw== IGFwcHJvcHJp IFJlYWQ= IHdob20= IGV5ZQ== IGNvbGxlZ2U= IDQ1 aXJlY3Rpb24= IGVuc3VyZQ== IGFwcGFyZW50 aWRlcnM= IHJlbGlnaW91cw== IG1pbm9y b2xpYw== IHRybw== IFdoeQ== cmlidXRl bWV0 IHByaW1hcnk= IGRldmVsb3BlZA== IHBlYWNl IHNraW4= c3Rl YXZh IGJsdWU= IGZhbWlsaWVz IGly IGFwcGx5 IGluZm9ybQ== IFNtaXRo Q1Q= aWk= IGxpbWl0 IHJlc2lzdA== Li4uLi4uLi4uLi4uLi4uLg== dW1u IGNvbmZsaWM= IHR3ZQ== dWRk IFRvbQ== IGxpdGVy cXVl Ym9u IGhhaXI= IGV2ZW50dWFsbHk= IHB1cw== IGhlbHBlZA== IGFnZw== b3JuZXk= IEFwcGxl IGZpdA== IFN1cg== IHByZW0= IHNhbGVz IHNlY29uZHM= IHN0cmVuZ3Ro IGZlZWxpbmc= v70= IHRvdXI= IGtub3dz b29t IGV4ZXJj IHNvbWV3 77+9 Pj4= IHNwb2tlcw== IGlkZWFz IHJlZ2lzdA== c29mdA== IERlbA== IFBD IHByb3Bvcw== IGxhdW5jaA== IGJvdHRvbQ== VEg= IFBsZWFzZQ== dmVzdA== aXR6 IEludGVy IHNjcmlwdA== IHJhdA== YXJuaW5n IGls IEplcg== IEFyZQ== IHdoYXRldmVy b2tlbg== Y2llbmNl IG1vZGU= IGFncmVl IHNvdXJjZXM= IGluaXRpYWw= IHJlc3RyaWN0 IHdvbmRlcg== dXNpb24= IyMjIw== IFNpbA== dmlsbGU= IGJ1cm4= dHc= YXNpb24= IMKj IG5vcg== dWluZw== IHJlYWNoZWQ= IHN1bg== IGNhdGVn aWdyYXRpb24= IGNvb2s= IHByb21vdA== IG1hbGU= IGNsaW1hdGU= IGZpeA== IGFsbGVnZWQ= VVI= YWxsZWQ= IGltYWdlcw== Q29udA== b3Rh IHNjaG9vbHM= aW9z IGRyb3A= IHN0cmVhbQ== IE1v IHByZXZpb3VzbHk= YWxpbmc= IHBldA== IGRvdWJsZQ== IChA YW5uZWw= IGRlZmF1bHQ= dGllcw== IHJhbms= IERlYw== IENvdW5jaWw= IHdlYXBvbg== IHN0b2Nr IGFuYWx5 IFN0cg== IHBpY3R1cmU= IFBvbGljZQ== ZmVyZW5jZQ== IGNlbnR1cnk= IGNpdGl6ZW5z IG9udG8= IGV4cGFuZA== IGhlcm8= IFNvbA== IHdpbGQ= IHVwZGF0ZQ== IGN1c3RvbWVycw== cm9udA== ZGVm IGxpaw== IGNyaW1pbmFs IENocmlzdGlhbg== U1A= NzY= IGxlYXZpbmc= IG90aGVyd2lzZQ== IERpc3Q= IGJhc2lz NTI= NTM= aWNpcA== IEJlcg== IHJlY29tbWVuZA== IGZsb29y IGNyb3dk b2xlcw== IDcw IGNlbnRyYWw= IEV2 IGRyZWFt IGRvd25sb2Fk IGNvbmZpcg== IFRob20= IHdpbmRvdw== IGhhcHBlbnM= IHVuaXQ= IHRlbmQ= IHNwbA== IGJlY29tZXM= IGZpZ2h0aW5n IHByZWRpY3Q= IFByZXNz IFBvd2Vy IGhlYXZ5 YWtlZA== IGZhbg== b3J0ZXI= YXRlZ3k= QkE= aXplcw== IHNwZW5k SGVyZQ== IDIwMDc= IGFkb3A= IEhhbQ== IGZvb3RiYWxs IFBvcnQ= b2RheQ== NTE= YW1waW9ucw== IHRyYW5zZmVy aHQ= IDM4 dGVybQ== YWNpdHk= IGJ1cg== XSw= dGVybmFs cmln YnV0 IHRoZXJlZm9yZQ== IEJlY2F1c2U= cmVzcA== cmV5 IG1pc3Npb24= U29tZQ== IG5vdGVk IGFzc3Vt IGRpc2Vhc2U= IGVkaXQ= IHByb2dyZXNz cmQ= IEJyb3du b2NhbA== IGFkZGluZw== IHJhaXNlZA== IEFueQ== IHRpY2s= IHNlZWluZw== IFBlb3BsZQ== IGFncmVlbWVudA== IHNlcnZlcg== IHdhdA== IGRlYmF0ZQ== IHN1cHBvc2Vk aWxpbmc= IGxhcmdlc3Q= IHN1Y2Nlc3NmdWw= IFByaQ== IERlbW9jcmF0aWM= IGp1bXA= IFN5cmlh IG93bmVycw== IG9mZmVycw== IHNob290aW5n IGVmZmlj c2V5 IGhhdmVu dmVyc2U= dGVyZWQ= IExpZ2h0 aW1hbA== IEJpZw== IGRlZmVuZA== IGJlYXQ= IHJlY29yZHM= JSk= IHNjZW4= IGVtcGxveWVlcw== IGRldmljZXM= aGVt IGNvbW1lcg== IE1leA== IGJlbmVmaXQ= IFByb2Y= IGlsbGVn IHN1cmZhY2U= IEFsc28= IGhhcm0= aW5nbHk= d2lkZQ== IEFsZXg= IHNodXQ= IEN1cg== IGxvc2U= cG0= IGNoYWxsZW5nZQ== c2VtYg== IHN0YXRpb24= IGludGVsbGlnZW5jZQ== IGFjY3Vy IEZsb3I= IHJlcXVpcmVz IE1hbA== YnVt IGhvc3BpdGFs IHNwaXJpdA== IG9mZmVyZWQ= IHByb2R1Y2U= IENvbW11bg== IGNyZWF0aW5n IGNyaXM= c3BlY3Q= IGVuZGVk IGRhaWx5 IHZvdGVycw== bGFuZHM= aWFz aWg= b25h IHNtYXJ0 IE9mZmljZQ== IExvcmQ= cmlhbA== IEludGVybmV0 IGNpcmN1bQ== IGV4dHJlbWVseQ== Jy4= IG9waW5pb24= IE1pbA== IGdhaW4= QlM= IEZpbg== eXA= IHVzZWZ1bA== IGJ1ZGdldA== IGNvbWZvcnQ= aXNm IGJhY2tncm91bmQ= ZWxpbmU= IGVwaXNvZGU= IGVuZW15 IHRyaWFs IGVzdGFibGlzaA== ZGF0ZQ== IENhcA== IGNvbnRpbnVlcw== IHNob3dpbmc= IFVuaW9u d2l0aA== IHBvc3RlZA== IFN5c3RlbQ== IGVhdA== cmlhbg== IHJpc2U= IEdlcm1hbnk= aWxz IHNpZ25lZA== IHZpbGw= IGdyYW5k bW9y IEVuZ2xhbmQ= IHByb2plY3Rz dW1iZXI= IGNvbmZlcmVuY2U= emE= IHJlc3BvbnNpYmxl IEFyYWI= IGxlYXJuZWQ= 4oCU4oCU aXBwaW5n IEdlb3JnZQ== T0M= IHJldHVybmVk IEF1c3RyYWxpYQ== IGJyaWVm UXU= IGJyYW5k aWxsaW5n YWJsZWQ= IGhpZ2hlc3Q= IHRyYWlu IENvbW1pc3Npb24= d2hpbGU= IG5vbQ== Y2VwdGlvbg== IG11dA== IEJsdWU= IGluY2lkZW50 dmFudA== ODY= IElE IG51Y2xlYXI= NzQ= IExpa2U= IFJF IE1pY3Jv bGk= bWFpbA== IGNoYXJnZXM= ODk= IGFkanVzdA== YWRv IGVhcnRo TkE= IHByaWNlcw== UEE= IGRyYWZ0 IHJ1bnM= IGNhbmRpZGF0ZQ== ZW5zZXM= IG1hbmFnZW1lbnQ= IFBoaWw= IE1pc3M= IHRlYWNo Z3JhbQ== IHVuZGVyc3RhbmRpbmc= YWl0 aWNhZ28= QWRk IEVw c2VjdXQ= IHNlcGFyYXRl IGluc3RhbmNl IGV0aA== IHVubGVzcw== KioqKioqKio= IEZvcmU= aW5hdGU= IG9wZXJhdGlvbnM= U3A= IGZhaXRo Z2Fy IENodXJjaA== cm9uaWM= IGNvbmZpZw== b3N1cmU= IGFjdGl2aXRpZXM= IHRyYWRpdGlvbmFs IDM2 IGRpcmVjdGlvbg== IG1hY2hpbmU= IHN1cnJvdW5k IHB1c2g= dW5jdGlvbg== IEVV IGVhc2llcg== IGFyZ3VtZW50 R0I= IG1pY3Jv IHNwZW5kaW5n aXphdGlvbnM= IHRoZW9yeQ== YWRvdw== IGNhbGxpbmc= IExhc3Q= IGRlcg== IGluZmx1ZW5jZQ== IGNvbW1pdA== IHBob3Rv IHVuYw== aXN0cnk= Z24= YXN0ZQ== YWNrcw== IGRpc3A= YWR5 ZG8= IEdvb2Q= IGA= IHdpc2g= IHJldmVhbGVk wqDCoA== bGln IGVuZm9yY2U= IENvbW1pdHRlZQ== IGNoZW0= IG1pbGVz IGludGVyZXN0ZWQ= IHNvbHV0aW9u aWN5 aW5jdA== IC0+ IERldA== IHJlbW92ZWQ= IGNvbXBhcg== ZWFo IHBsYW50 IFNpbmNl IGFjaGlldmU= IGFkdmFudGFnZQ== IHNsaWdodGx5 YmluZw== IHBsYWNlZA== dW5kZXI= MjAxNQ== IE1hZA== IHRpbQ== b3Nlcw== IGNydQ== IFJvY2s= IG1vc3RseQ== IG5lZ2F0aXZl IHNldHRpbmc= IHByb2R1Y2Vk IG11cg== IGNvbm5lY3Rpb24= IE1lcg== IGRyaXZlcg== IGV4ZWN1dGl2ZQ== IGFzc2F1bHQ= IGJvcm4= IFZlcg== dGFpbmVk IHN0cnVjdHVyZQ== IHJlZHVjZQ== IGRlY2FkZXM= IGRlZA== dWtl IE1hbnk= aWRkZW4= IGxlYWd1ZQ== U2U= IGpvaW4= IGRpc2Nv IGRpZQ== Y2tz YWN0aW9ucw== IGFzc2Vzcw== YWdu IGdvYWxz b3Vycw== SVI= IHNlbmlvcg== aWxsZXI= bW9k aXBtZW50 b2NvbA== dXk= IFF1ZQ== IHBhcnRpZXM= aXJnaW4= IGxlYXJuaW5n aXRhYmxl IHN0cmVldA== IGNhbWVyYQ== QXBw IHNraWxscw== YnJl Y2lvdXM= IGNlbGVicg== IEZyYW5j IGV4aXN0aW5n IHdpbGxpbmc= bG9y IGlk IFNwYWNl IGNyaXRpY2Fs IExh b3J0dW5hdGVseQ== IHNlcnZl IGNvbGQ= IHNwZWNpZXM= VFM= IGFuaW1hbHM= IEJheQ== IG9sZGVy IFVuZGVy ZXN0aWM= IFRyZQ== IHRlYWNoZXI= IHByZWZlcg== dmlz IHRocmVhZA== IE1hdHQ= IG1hbmFnZXI= 44O7 IHByb2Zlc3Npb25hbA== IFZvbA== IG5vdGVz VGhlc2U= dWxh IGZyZXNo ZW50ZWQ= dXp6 ZWR5 Y2x1c2lvbg== IFJlbA== IGRvdWJ0 RU8= IG9wZW5lZA== IEJpdA== QWR2ZXJ0aXNlbWVudA== IGd1ZXNz IFVO IHNlcXU= IGV4cGxhaW4= b3R0ZW4= IGF0dHJhY3Q= YWtz IHN0cmluZw== IGNvbnRleHQ= b3NzaWJsZQ== IFJlcHVibGljYW5z IHNvbGlk IGNpdGllcw== IGFza2luZw== IHJhbmRvbQ== dXBz dXJpZXM= YXJhbnQ= ZGRlbg== Z2w= IEZsb3JpZGE= IGRlcGVuZA== IFNjb3R0 IDMz IGlU aWNvbg== IG1lbnRpb25lZA== IDIwMDA= IGNsYWltZWQ= IGRlZmluaXRlbHk= dWxm IGNvcmU= IG9wZW5pbmc= IENvbnN0 d2hpY2g= IFRyYQ== QUc= NzI= IGJlbGlldmVk YWRh IDQ4 IFNlY3VyaXR5 eXJpZ2h0 IFBldA== IExvdQ== IGhvbGRpbmc= PT09PT09PT09PT09PT09PQ== IGljZQ== IGJyb3c= IGF1dGhvcml0aWVz aG9zdA== d29yZA== IHNjb3Jl IERpdg== IGNlbGxz IHRyYW5zbA== IG5laWdoYm9y IHJlbW92ZQ== dWN0 IGRpc3RyaWN0 IEFjY29yZGluZw== IHdvcnNl IGNvbmNlcm5z IHByZXNpZGVudGlhbA== IHBvbGljaWVz IEhhbGw= NzM= IGh1cw== QVk= IDIwMDY= IEp1ZA== IGluZGVwZW5kZW50 IEp1c3RpY2U= aWxpYXI= cHJpbnQ= aWdodGVy IHByb3RlY3Rpb24= emVu IHN1ZGRlbg== aG91c2U= IEplcw== UFI= IEluZg== IGJ1bA== IF8= IFNlcnZpY2U= IFBS IHN0cmF0ZWd5 ZmZlY3Q= IGdpcmxz IG1pc3Npbmc= b3lhbA== IFRlYW0= dWxhdGVk IGRhdA== IHBvbGl0aWNz YWJvcg== QWNjb3JkaW5n IHNwZWxs IGdyYXBo b3J0aGVybg== VEM= QWI= IGxhYm9y aXNoZXI= IGtpY2s= IGlUdW5lcw== IHN0ZXBz cG9zZXM= IHNtYWxsZXI= RW4= YmVydA== IHJvbGw= IHJlc2VhcmNoZXJz IGNsb3NlZA== IHRyYW5zcG9ydA== IGxhd3k= X19fX19fX19fX19fX19fXw== IENoaWNhZ28= IGFzcGVjdA== IG5vbmU= IG1hcnJpYWdl OTY= IGVsZW1lbnRz IEZyZQ== IFNhbA== IGRyYW0= RkM= dG9w ZXF1 IGhlYXJpbmc= IHN1cHBvcnRlZA== IHRlc3Rpbmc= Y29ob2w= IG1hc3NpdmU= IHN0aWNr IGd1YXJk aXNjbw== cGhvbmU= RnJvbQ== SG93ZXZlcg== IGJvcmRlcg== IGNvcHk= b2dyYXBoeQ== bGlzdA== NzE= IG93bmVy Y2xhc3M= cnVpdA== cmF0ZQ== IE9uY2U= IGRpZ2l0YWw= IHRhc2s= RVJT IGluY3JlZA== dGVz Kys= IEZyYW5jZQ== IGJyZWF0 b3ds IGlzc3VlZA== IFdlc3Rlcm4= IGRldGVjdA== IHBhcnRuZXJz IHNoYXJlZA== IENhbGw= IGNhbmNlcg== YWNoZQ== cmliZQ== IGV4cGxhaW5lZA== IGhlYXQ= eyI= IGludmVzdG1lbnQ= IEJvb2s= IHdvb2Q= IHRvb2xz IEFsdGhvdWdo IGJlbGllZg== IGNyaXNpcw== IGdl IE1Q IG9wZXJhdGlvbg== dHlwZQ== fn4= Z2E= IGNvbnRhaW5z YW50YQ== IGV4cHJlc3M= IEdyb3Vw IEpvdXJuYWw= a2E= IGFtYg== IFVTQQ== IGZpbmRpbmc= IGZ1bmRpbmc= aG93 IGVzdGFibGlzaGVk aWRlb3M= IGRlZ3JlZQ== IGRhbmdlcm91cw== YW5naW5n IGZyZWVkb20= cHBvcnQ= b3V0aGVybg== IGNodXJjaA== IGNhdGNo IFR3bw== IHByZXNlbmNl IEd1YXJk VXA= IGF1dGhvcml0eQ== IFByb2plY3Q= IGJ1dHRvbg== IGNvbnNlcXU= IHZhbGlk IHdlYWs= IHN0YXJ0cw== IHJlZmVyZW5jZQ== IE1lbQ== Iik= VU4= b3JhZ2U= IE9wZW4= IGNvbGxlY3Rpb24= eW0= Z2VuY3k= IGJlYXV0aWZ1bA== cm9z IHRlbGxz IHdhaXRpbmc= bmVs IHByb3ZpZGluZw== IERlbW9jcmF0cw== IGRhdWdodGVy IG1hc3Rlcg== IHB1cnBvc2Vz IEphcGFuZXNl IGVxdWFs IHR1cm5z IGRvY3VtZW50cw== IHdhdGNoaW5n UmVz IHJhbg== MjAxNA== IHJlamVjdA== IEtvcmVh IHZpY3RpbXM= TGV2ZWw= ZXJlbmNlcw== IHdpdG5lc3M= IDM0 IHJlZm9ybQ== Y29taW5n IG9jY3Vw IGNhdWdodA== IHRyYWZmaWM= YWRpbmc= IG1vZGVscw== YXJpbw== IHNlcnZlZA== IGJhdHRlcg== dWF0ZQ== IFNlY3JldGFyeQ== IGFncmVlZA== IHRydWx5 eW5hbQ== IFJldA== IHVuaXRz IFJlc2VhcmNo aGFuZA== YXppbmU= IE1pa2U= IHZhcmlldHk= b3RhbA== IGFtYXppbmc= IGNvbmZpcm1lZA== IGVudGlyZWx5 IHB1cmNoYXNl IGVsZW1lbnQ= IGNhc2g= IGRldGVybWluZQ== RGU= IGNhcnM= IFdhbGw= 4pY= IHZpZXdz IGRydWdz IGRlcGFydG1lbnQ= IFN0ZXA= dWl0 IDM5 YXN1cmU= IENsYXNz IGNvdmVyZWQ= IEJhbms= IG1lcmU= dWFuYQ== IG11bHRp IG1peA== IHVubGlrZQ== bGV2aXNpb24= IHN0b3BwZWQ= IHNlbQ== IEdhbA== dWxlcw== IHdlbA== IEpvaG5zb24= bGE= IHNraWxs IGJlY29taW5n cmll IGFwcHJvcHJpYXRl ZmU= ZWxsb3c= IFByb3Q= dWxhdGU= b2NhdGlvbg== IHdlZWtlbmQ= b2RpZXM= IHNpdGVz IGFuaW1hbA== IFRpbQ== IHNjYWxl IGNoYXJnZWQ= IGluc3RydWN0 aWxsYQ== IG1ldGhvZHM= IGNlcnQ= IGp1ZGdl IEhlbA== IGRvbGxhcnM= IHN0YW5kaW5n IFNxdQ== IGRlYnQ= bGlhbQ== IGRyaXZpbmc= IFN1bQ== IEVkaXRpb24= IGFsYnVt YW5kb24= SUY= IFVr NjM= YWRlcg== IGNvbW1lcmNpYWw= ZXNo IEdvdmVybm1lbnQ= IGRpc2NvdmVyZWQ= IG91dHB1dA== IEhpbGxhcnk= IENhcm9s IDIwMDU= IGFidXNl YW5jaW5n IHN3aXRjaA== IGFubnVhbA== VHc= IHN0YXRlZA== YWdlbWVudA== aW5uZXI= IGRlbW9jcg== IHJlc2lkZW50cw== IGFsbG93aW5n IGZhY3RvcnM= b2Rk IGZ1Y2s= ZW1pZXM= IG9jY3VycmVk b3Rp IG5vcnRo IFB1YmxpYw== IGluanVyeQ== IGluc3VyYW5jZQ== Q0w= b2xseQ== 44A= IHJlcGVhdGVk IGFybXM= YW5nZWQ= IGNvbnN0cnVjdGlvbg== IGZsZQ== UFU= aWNpYW5z IGZvcm1z IE1jQw== YW50aWM= IG1lbnRhbA== cGlyZQ== IGVxdWlwbWVudA== IGZhbnQ= IGRpc2N1c3Npb24= IHJlZ2FyZGluZw== a2lu YXJw IGNoYWly b2d1ZQ== IHByb2NlZWQ= IElk T3Vy IG11cmRlcg== TWFu IDQ5 YXNw IHN1cHBseQ== IGlucHV0 IHdlYWx0aA== bGlhbWVudA== IHByb2NlZA== b3JpYWw= IFN0YXQ= IE5GTA== aGVucw== IEluc3RpdHV0ZQ== IHB1dHRpbmc= b3VybmFtZW50 ZXRpYw== IGxvY2F0ZWQ= IGtpZA== ZXJpYQ== cnVu IHByaW5j ICE= Z29pbmc= IEJldA== IGNsb3Q= IHRlbGxpbmc= IHByb3Bvc2Vk aW90 b3JyeQ== IGZ1bmRz Z21lbnQ= IExpZmU= IGJhYnk= IEJhY2s= IHNwb2tl SW1hZ2U= IGVhcm4= IEFU Z3U= IGV4Y2hhbmdl IExpbg== b3Zpbmc= IHBhaXI= TW9yZQ== YXpvbg== IGFycmVzdGVk IGtpbGxpbmc= Y2Fu IENhcmQ= eWQ= IGlkZW50aWZpZWQ= IG1vYmlsZQ== IHRoYW5rcw== b255bQ== IEZvcm0= IGh1bmRyZWRz IENocmlz IENhdA== IHRyZW5k aGF0 IEF2 b21hbg== IGVsZWN0cmlj IFdpbA== U0U= T2Y= IHJlc3RhdXI= b3RlZA== IHRyaWc= IG5pbmU= IGJvbWI= V2h5 wq8= IGNvdmVyYWdl IGFwcGVhbA== IFJvYmVydA== IFN1cA== IGZpbmlzaGVk IGZsb3c= IGRlbGl2ZXI= IGNhbGN1bA== IHBob3Rvcw== IHBoaWw= IHBpZWNlcw== IGFwcHJl a2Vz IHJvdWdo RG8= IHBhcnRuZXI= IGNvbmNlcm5lZA== IDM3 IEdlbg== Q29s Y3RvcnM= ID0+ c3RhdGU= IHN1Z2dlc3RlZA== IEZvcmNl Q0U= IGhlcnNlbGY= IFBsYW4= d29ya3M= b290aA== cmVuY3k= IGNvcm5lcg== IGh1c2JhbmQ= IGludGVybmV0 IEF1dA== ZW1z b3Nlbg== IEF0bA== Z2Vu IGJhbGFuY2U= NjI= IHNvdW5kcw== dGV4dA== IGFycg== b3Zlcw== IG1pbGxpb25z IHJhZGlv IHNhdGlzZg== IERhbQ== TXI= R28= U3Bl IGNvbWJhdA== cmFudA== IEdyZWU= IGZ1ZWw= IGRpc3RhbmNl IHRlc3Rz IGRlY3Jl IEVy IG1hbmFnZWQ= RFM= IHRpdA== IG1lYXN1cmVz IExpYmVy IGF0dGVuZA== YXNoZWQ= IEpvc2U= IE5pZ2h0 ZGl0 IE5vdg== IEVuZA== b3V0cw== IGdlbmVyYXRpb24= IGFkdm9j eXRo IGNvbnZlcnNhdGlvbg== IFNreQ== YWN0aXZl Y2Vs cmllcg== IEZyYW5r IGdlbmRlcg== IGNvbmNlbnQ= IGNhcnJpZWQ= YW5kYQ== IFZpcmdpbg== IGFycml2ZWQ= aWNpZGU= YWRlZA== IGZhaWx1cmU= IG1pbmltdW0= bGV0cw== IHdvcnN0 IGtlZXBpbmc= IGludGVuZGVk IGlsbGVnYWw= IHN1YnNj IGRldGVybWluZWQ= IHRyaXA= WWVz IHJhaXNl IH4= IGZlZWxz IHBhY2thZ2U= IEpv aGk= MjAxNg== cmVhbA== IGZyYQ== IHN5bWI= TWU= dWNreQ== cHJldA== IEto IEVkaXQ= IFdlYg== ZW1pYw== IENvbG9y IGp1c3RpY2U= SW50 IGZhcm0= Y2tub3c= Ij4= ZWxlc3M= IHJlZHVjZWQ= IDUwMA== eHg= IFJhZA== IFdvb2Q= IGNsaW4= IGh5cA== aWxlcg== dXJh a2lucw== ODU= NjE= IFRoZWly IE1hcnk= IHNhbg== IG5vdmVs IFdobw== IGNhcGFjaXR5 IGltcG9zc2libGU= IHBsYXlz IG1pbmlzdGVy aWp1YW5h aWNhdGU= IFNldA== IGZyYW0= IGluZw== IGNvbW11bml0aWVz IEZCSQ== aXRh IGJvbg== IHN0cmF0ZWc= IGludGVyZXN0cw== bG9jaw== Z2Vycw== bWFz IEFORA== IGNvbmZsaWN0 IHJlcXVpcmVtZW50cw== IHNhYw== IG9wZXJhdGluZw== aW5p cmVsYXRlZA== IGNvbW1pdHRlZA== IHJlbGF0aXZlbHk= IHNvdXRo wq/Crw== IGFmZm9yZA== IGlkZW50aXR5 IGRlY2lzaW9ucw== IGFjY3VzZWQ= cGxhY2U= IHZpY3Rvcnk= b2No aWF0 TmFtZQ== Q29t dGlvbg== ZWRz IHNlZWs= IHRpZ2h0 IEltYWdlcw== IGluaXRp IGh1bWFucw== IGZhbWlsaWFy IGF1ZGllbmNl IGludGVybmFs dmVudHVyZQ== IHNpZGVz IFRP IGRpbQ== IGNvbmNsdWQ= IGFwcG9pbnQ= IGVuZm9yY2VtZW50 IEppbQ== IEFzc29jaWF0aW9u IGNpcmN1bXN0 IENhbmFkaWFu IGpvaW5lZA== IGRpZmZlcmVuY2Vz IExvcw== IHByb3Rlc3Q= IHR3aWNl d2lu IGdsYXNz YXJzaA== IEFybXk= IGV4cHJlc3Npb24= IGRlY2lkZQ== IHBsYW5uaW5n YW5pYQ== IGhhbmRsZQ== IE1pY3Jvc29mdA== IE5vcg== IG1heGltdW0= IFJldg== IHNlYQ== IGV2YWw= IGhlbHBz cmVm IGJvdW5k IG1vdXRo IHN0YW5kYXJkcw== IGNsaW0= IENhbXA= IEZveA== Y2xlcw== IGFybXk= IFRlY2hu YWNraW5n eHk= U1M= IDQy IGJ1Zw== IFVrcmFpbg== IE1heA== IEpvbmVz IFNob3c= bG8= IHBsYW5ldA== IDc1 IHdpbm5pbmc= IGZhc3Rlcg== IHNwZWN0 IGJyb2tlbg== VFI= IGRlZmluZWQ= IGhlYWx0aHk= IGNvbXBldGl0aW9u aHR0cHM= IElzbGFuZA== IEZl IGFubm91bmNl IEN1cA== IEluc3RlYWQ= IGNsaWVudA== IHBvc3NpYmx5 c2VjdGlvbg== b2NrZXQ= bG9vaw== IGZpbmlzaA== IGNyZXc= IHJlc2Vydg== IGVkaXRvcg== IGhhdGU= IHNhbGU= IGNvbnRyb3ZlcnM= IHBhZ2Vz d2luZw== IG51bWVy IG9wcG9zaXRpb24= IDIwMDQ= IHJlZnVnZQ== IGZsaWdodA== IGFwYXJ0 IExhdA== QW1lcmlj IEFmcmljYQ== IGFwcGxpY2F0aW9ucw== IFBhbGVzdA== IEJ1cg== IGdhcg== IFNvY2lhbA== IHVwZ3I= IHNoYXBl IHNwZWFraW5n YW5zaW9u YW8= IFNu IHdvcnJ5 IEJyaXRhaW4= UGxlYXNl cm91ZA== IGh1bg== IGludHJvZHVjZWQ= IGRpZXQ= SW5k IFNlY29uZA== IGZ1bmN0aW9ucw== dXRz IEVhY2g= IEplZmY= IHN0cmVzcw== IGFjY291bnRz IGd1YXJhbnQ= IEFubg== ZWRpYQ== IGhvbmVzdA== IHRyZWU= IEFmcmljYW4= IEJ1c2g= fSw= IHNjaA== IE9ubHk= IGZpZg== aWdhbg== IGV4ZXJjaXNl IEV4cA== IHNjaWVudGlzdHM= IGxlZ2lzbGF0aW9u IFdvcms= IFNwcg== w4I= IEh1bWFu IOg= IHN1cnZleQ== IHJpY2g= cmlw IG1haW50YWlu IGZsbw== IGxlYWRlcnNoaXA= c3RyZWFt IElzbGFtaWM= IDAx IENvbGxlZ2U= IG1hZ2lj IFByaW1l IGZpZ3VyZXM= MjAxNw== aW5kZXI= eHVhbA== IERlYWQ= IGFic29sdXRlbHk= IGZvdXJ0aA== IHByZXNlbnRlZA== cmVzcG9uZA== cmlibGU= IGFsY29ob2w= YXRv IERF cG9yYXJ5 IGdyYWI= IHZhcmk= IHF1YW50 IFBob3Rv IHBsdXM= cmljaw== YXJrcw== IGFsdGVybmF0aXZl IHBpbA== IGFwcHJveA== dGhhdA== IG9iamVjdHM= IFJv IEFuZHJvaWQ= IHNpZ25pZmljYW50bHk= IFJvYWQ= a2F5 UmVhZA== YXZvcg== IGFja25vdw== IEhE IFNpbmc= T3I= IE1vbnQ= IHVucw== cHJvZg== IG5lZ290aQ== IEFyY2g= aWtp IHRlbGV2aXNpb24= IEpld2lzaA== IGNvbW1pdHRlZQ== IG1vdG9y IGFwcGVhcmFuY2U= IHNpdHRpbmc= IHN0cmlrZQ== IERvd24= Y29tcA== IEhpc3Q= IGZvbGQ= YWNlbWVudA== IExvdWlz IGJlbG9uZw== IOKAog== IG1vcnQ= IHByZXBhcmVk IDY0 IE1hc3Rlcg== IGluZGVlZA== IERlbg== IHJlbnQ= VEE= b3VybmV5 YXJj U3U= OTc= IGFkdmljZQ== IGNoYW5naW5n IGxpc3RlZA== IGxhdW5jaGVk aXNhdGlvbg== IFBldGVy aXNoZXM= IGxpdmVk IE1lbA== IFN1cHJlbWU= IEZlZGVyYWw= ICk7 cnVjdHVyZQ== IHNldHM= IHBoaWxvcw== dW91cw== IMKg IGFwcGxpZWQ= IE5PVA== IGhvdXNpbmc= IE1vdW50 IG9kZA== IHN1c3Q= REE= ZmZpY2llbnQ= ID8= b2x2ZWQ= IHBvd2Vycw== IHRocg== IHJlbWFpbmluZw== IFdhdGVy TEM= IGNhdXNlcw== 44Gu IG1hbm5lcg== YWRz IHN1Z2dlc3Rz IGVuZHM= c3RhbmRpbmc= Zmln IER1bg== aWR0aA== IGdheQ== IHRlcm1pbg== IEFuZ2VsZXM= TVM= IHNjaWVudGlmaWM= IGNvYWw= YXBlcnM= YmFy IFRob21hcw== IHN5bQ== IFJ1bg== dGhpcw== UEM= aWdyYW50cw== IG1pbnV0ZQ== IERpc3RyaWN0 Y2VsbGVudA== IGxlYXZlcw== IGNvbXBsZXRlZA== YW1pbg== IGZvY3VzZWQ= IG1vbml0b3I= IHZlaGljbGVz TUE= IE1hc3M= IEdyYW5k IGFmZmVjdGVk aXR1dGlvbmFs IGNvbnN0cnVjdA== IGZvbGxvd3M= IHRvbg== cmVlbnM= IGhvbWVz IEV4dA== IExldmVs cmFzdA== IEly IGVsaW0= IGxhcmdlbHk= IEpvZQ== IHZvdGVz YWxscw== IGJ1c2luZXNzZXM= IEZvdW5kYXRpb24= IENlbnRyYWw= IHlhcmRz IG1hdGVyaWFscw== dWxuZXI= IGd1aWRl IGNsb3Nlcg== dW1z IHNwb3J0cw== ZWRlcg== SnVzdA== IHRheGVz ODQ= IE9sZA== IGRlY2FkZQ== b2xh IHZpcg== IGRyb3BwZWQ= IGRlbGF5 aXRlY3Q= IHNlY3VyZQ== c3RlaW4= bGV2ZWw= IHRyZWF0ZWQ= IGZpbGVk YWluZQ== IHZhbg== IG1pcg== IGNvbHVtbg== aWN0ZWQ= ZXBlcg== IHJvdA== IGNvbnN1bHQ= IGVudHJ5 IG1hcmlqdWFuYQ== IERvdQ== IGFwcGFyZW50bHk= b2tpbmc= Y2x1c2l2ZQ== IGluY3JlYXNlcw== YW5v IHNwZWNpZmljYWxseQ== IHRlbGU= ZW5zaW9ucw== IHJlbGlnaW9u YWJpbGl0aWVz IGZyYW1l IE5vdGU= IExlZQ== IGhlbHBpbmc= IGVkZ2U= b3N0b24= IG9yZ2FuaXphdGlvbnM= w4M= IEJvdGg= aGlwcw== IGJpZ2dlcg== IGJvb3N0 IFN0YW5k IHJvdw== dWxz YWJhc2U= IHJpZA== TGV0 YXJlbg== cmF2ZQ== IHN0cmV0 UEQ= IHZpc2lvbg== IHdlYXJpbmc= IGFwcHJlY2k= IGF3YXJk IFVzZQ== IGZhY3Rvcg== d2Fy dWxhdGlvbnM= KSg= IGdvZA== IHRlcnJpdA== IHBhcmFt YXN0cw== ODc= IGVuZW1pZXM= IEdhbWVz RkY= IGFjY2lkZW50 V2VsbA== IE1hcnRpbg== VEVS IGF0aA== IEhlbGw= IGZvcmc= IHZldGVy IE1lZGlj ZnJlZQ== IHN0YXJz IGV4cGVuc2l2ZQ== IGFjYWQ= cmF3bg== IFdoZQ== IGxvY2s= IGZvcm1hdA== IHNvbGRpZXJz c20= IGFnZW50 IHJlc3BvbnNpYmlsaXR5 b3Jh IFNjaWVuY2U= IHJhcGlk IHRvdWdo IEplc3Vz IGJlbGlldmVz TUw= IHdlYXI= bGV0ZQ== w4PDgg== IERyaQ== IGNvbW1pc3Npb24= IEJvYg== T2g= YXBlZA== IHdhcm0= w4PDgsODw4I= IDIwMDM= b3J0aW9u IGhhc24= dXN0ZXI= IHVuaXZlcnM= IElsbA== IGtpbmc= b2xvZ2llcw== OTQ= IFRlbQ== IE1vcw== IHBhdGllbnQ= IE1leGljbw== Y2Vhbg== IERlYXRo IFNhbmRlcnM= eW91 IENhc3Q= IENvbXBhbnk= cHR5 IGhhcHBlbmluZw== RlA= IEJhdHRsZQ== IGJvdWdodA== QW0= TW9k VXM= dXRlcnM= IENyZQ== IFRob3Nl IDQ0 aXNlcg== IHNvdWw= IFRvcA== IEhhcnJ5 IEF3 IHNlYXQ= ZmZlZQ== IHJldm9sdXRpb24= ICgi IER1cmluZw== ZXR0ZQ== IHJpbmc= IG9mZmVuc2l2ZQ== IHJldHVybnM= IHZpZGVvcw== IGRpc2Ns IGZhbW91cw== ZW5jZWQ= IFNpZ24= IFJpdmVy IDMwMA== UE0= IEJ1cw== IENI IGNhbmRpZGF0ZXM= YXJkZW4= IHBlcmNlbnRhZ2U= IHZpc3VhbA== IHRoYW5r IHRyb3VibGU= bmVyZ3k= IDIwMDE= IHByb3Zl YXNoaW9u IGVuaA== IExvbmc= VU0= IGNvbm5lY3RlZA== IHBvc3NpYmlsaXR5 T3Zlcg== IGV4cGVydA== IGxpYnJhcnk= YXJ0cw== IERpcmVjdG9y IGZlbGxvdw== OTI= aXJ0eQ== IGRyeQ== IHNpZ25z IExvdmU= IHF1aWV0 Zm9vdA== IHB1cmU= IEh1bg== IGZpbGxlZA== cGhhcw== IEVsZWN0 ZW5kbWVudA== IEV4cGw= IHVuYWJsZQ== bnM= bW8= IHZhc3Q= b2Jl IGlkZW50aWZ5 YXBwaW5n IENhcm9saW5h Z3Jlc3M= IHByb3Rl IGZpc2g= IGNpcmN1bXN0YW5jZXM= cmF6eQ== IFBob3Q= IGJvZGllcw== IE11cg== IGRldmVsb3Bpbmc= IEFS IGV4cGVyaWVuY2Vk IHN1YnN0YW50 IEJvYXJk ZXNvbWU= IGRvbWVzdGlj IGNvbWJpbmVk IFB1dA== IGNoZW1pY2Fs IENoaWxk IHBvb2w= IEN5 IGVnZw== Y29ucw== c3RlcnM= IGh1cnQ= IG1hcmtldHM= IGNvbnNlcnZhdGl2ZQ== IHN1cHBvcnRlcnM= IGFnZW5jaWVz aWRlbA== T2I= dXJi IDQz IERlZmVuc2U= eWU= IEFw ZHVsZQ== IHRlbXBlcmF0dXJl IGNvbmR1Y3RlZA== IENoaWVm IHB1bGxlZA== IGZvbA== TGFzdA== b250bw== b3Npcw== VkVS RGVz IFBhbg== Rmlyc3Q= IGFkdmFuY2U= IGxpY2Vuc2U= cm9ycw== IEpvbg== IGltYWdpbmU= IGhlbGw= IGZpeGVk IGluY29y b3NpdGU= IExvZw== aWNrZW4= XTo= IHN1cnByaXNl aGFi IGNyYWZ0 b2x0 IEp1bA== IGRpYWw= IHJlbGV2YW50 IGVudGVyZWQ= IGxlYWRz IEFE IENsZWFu IHBpY3R1cmVz ZXNzb3I= IGFsdA== IHBheWluZw== UGVy IE1hcmtldA== IHVwZGF0ZXM= YW1pbHk= IFR5cGU= IEhvbWU= IDU1 c2VtYmx5 cm9tZQ== ODM= IGdyZWF0ZXN0 IGhlaWdodA== IGhlYXY= YWludHM= IGxpc3Rlbg== YXNlcg== IFNI IGNhcGFibGU= YWNsZQ== IHBlcnNwZWN0 aW5hdGluZw== IG9mZmVyaW5n cnlwdA== IERldmVsb3A= YWJpbg== cmM= IGJyaWdodA== YWx0eQ== YXJyb3c= IHN1cHBs aW5kaW5n YWNrZWQ= Z3lwdA== IEFub3RoZXI= cGc= IFZpcmdpbmlh IEx1 IHBsYW5uZWQ= IHBpdA== IHN3ZWV0 VHlwZQ== IERp IHR5cGljYWxseQ== IEZyYW5jaXNjbw== IHByb3NwZWN0 IERhbg== IHRlZW4= cmVlcw== IHNjaGVk IGhvbA== IHNjcg== IGxvdHM= bGlmZQ== IG5ld3Nw IGZvcmdldA== IE5vbmU= IE1pZGRsZQ== IFJ5YW4= ZWRk IHNldmVyZQ== IHN1aXQ= bGxlcg== OTM= IGNvcnJlc3BvbmQ= IGV4cGxvcw== dWF0aW9ucw== IGZsYWc= Z2FtZQ== cmlk IHByaW4= IERhdGE= IGRlcGxveQ== IEVudGVy c3VpdA== Z2hhbg== IE1lbg== IHRob3VnaHRz IG1hdHRlcnM= IGFkYXB0 IEFyaQ== IGZpbGw= IGZvcnRo IHNhbQ== IDQx IHBheW1lbnQ= IEhvcg== IHNwcmluZw== ZHVj IGxvc2luZw== IGJyaW5naW5n Rk8= YWxh IGRpc3RyaWJ1dGlvbg== aGVyZWQ= Ym91cg== IElzcmFlbGk= b21h IGNvbWJpbmF0aW9u IHBsZW50eQ== VkU= Q2Fu IEhhdw== IHBlcm1hbg== IFNwZWNpYWw= IHRvdw== IHNlZWtpbmc= IGV4YW1wbGVz IGNsYXNzZXM= Y3I= IGJlZXI= IG1vdmVz IElQ IEtu IHBhbmVs RXZlbg== IHByb3Blcmx5 IHJpcw== IHBsdWc= IGVzdGltYXRlZA== RXZlcnk= IGRlZmVuc2l2ZQ== YWdyYXBo IHByZWdu IGluc3RpdA== IFZpY3Q= IHZvbHVtZQ== IHBvc2l0aW9ucw== IGxpbmtz IFByb2dyYW0= IFdlZWs= YWd1ZXM= IHRyYW5zZm9ybQ== a2Vy IENFTw== IGNhcw== IG9wcG9uZW50 IHR3ZWV0 IENvZGU= IHNob3A= IGZseQ== IHRhbGtz IGJhZw== UGhvbmU= IGFpZA== IHBsYW50cw== IDY1 IGF0dG9ybmV5 YXJ0ZXJz cXVlc3Q= IE1hZ2lj IGJlZ2lucw== IG15c3Rlcg== IGVudmlyb25tZW50YWw= IHN0b3JhZ2U= Tk4= IG1hcmc= IHNrZQ== IG1ldGFs ZWxseQ== IG9yZGVyZWQ= IHJlbWFpbmVk IGxvdmVk IHByb21wdA== IHVwZGF0ZWQ= IGV4cGVydHM= IHdhbGtpbmc= IGFuY2llbnQ= IHBlcmZvcm1lZA== QVRF IG5laXRoZXI= aWVuY3k= IG1hbnVmYWN0dXJl IFBhaw== IHNlbGVjdGVk IG1pbmU= IHVsdGltYXRlbHk= IGV4cGxhbg== IGxhYmVs IFNlcnZpY2Vz cmlidXRlZA== VHJ1bXA= IHN5bg== IFVsdA== U0M= IG1lYXQ= IGdpYW50 IFdhcnM= IE9O IGFkbQ== IGludGVycHJldA== IGV2ZW5pbmc= IGV2aWw= IEJvc3Rvbg== IFdpbGQ= IMM= IEJpdGNvaW4= IEFtYXpvbg== RHI= IEluZm9ybWF0aW9u IG9idmlvdXNseQ== IGFkdmFuY2Vk UGhvdG8= b2xhcg== IHdlYXRoZXI= IHN5bWJvbA== IHNvbGU= IHBvdGVudGlhbGx5 b3N0ZXI= IG9yaWdpbmFsbHk= bXVu MzAw YXpl ZXNzaW9ucw== IGRlY2s= IHN0b29k IHlvdXRo IEJlcm4= UmVw IFRlc3Q= IGJhc2ljYWxseQ== b3RpYw== IGludm9sdmU= b2xpdA== bHlu U2Vl IGFpcmNyYWZ0 IGNvbmZpcm0= RVc= IG1lc3NhZ2Vz IFJpY2hhcmQ= IGtpdA== IHByb2hpYg== IHZ1bG5lcg== aXN0ZXJz IGV4aXN0ZW5jZQ== IHR1cm5pbmc= IFNQ IGRlc2lyZQ== IGZsYXQ= IG1lbnQ= c2Vhc29u YW5nZXM= IG5laWdoYm9yaG9vZA== IExha2U= QVRJT04= IHBvaW50ZWQ= YnVy IGlubm92 dWNrcw== VUw= IHByb2Zlc3Nvcg== IGV4cHJlc3NlZA== QUI= aWNpb3Vz IDIwMDI= IERldg== IHNlc3Npb24= IGJhcmU= c2Vu IGRpc3M= IENhdGg= IFBhc3M= IFBvaW50 IGRvY3Rvcg== b3Jyb3c= YWlsZWQ= IFJ1Yg== IERD IENoYXJs cGVyc29u IHdyaXRlcg== aWdodGVycw== dXJlYXU= IG9ibGln IHJlY29yZGVk IGJyb2tl IG9yZGVycw== aWx0eQ== IG1vdGlvbg== aW5pdHk= bGF3 YWRpdW0= IGltbWlncmF0aW9u IGNvbnRyYXN0 IGJhdHQ= IGV4Y2VsbGVudA== IHRlY2huaWNhbA== YW1p IHR1bg== IGNsb3Vk IFllYXI= Z2Vvbg== IGNyZWF0aW9u IHN0cmFuZ2U= IGF1dGg= IGZvcnQ= Ym9ybg== IGV4dGVudA== IFRvZGF5 IENsdWI= IHJhaW4= IHNhbXBsZQ== IGFjY2VwdGVk IHRhY3Q= IGZpcmVk IFNvbg== IHN0YW5kcw== IGJvb3Q= IDQ3 IHN0YXRlbWVudHM= IHZlcnNpb25z IHNlbGxpbmc= b3VuZGVk IDE5OTA= IHdlcmVu IFdhdGNo IGV4cGVyaW1lbnQ= UG9zdA== IHJldGFpbA== dWxlZA== SW5zdA== dW50ZQ== 44O8 IGRlcGFydA== IGJvbmQ= aXZlcnk= b21wbA== IHJlYWN0aW9u IFN5cmlhbg== IFBhYw== YXBwZWQ= YW5pZWw= RFA= IHJlc29sdXRpb24= IHJlYWN0 IGFwcHJvdmVk b25vbQ== bW9uZA== IE9mZmlj LS0t IHJlcGxhY2U= IHRhY2s= IHNwb3J0 IGNoYWlu IGVtZXJnZW5jeQ== cmFk IFBhbGVzdGlu IDQ2 IGF1dG9tYXRpY2FsbHk= IHJvdXRl IHBhbA== IGJhbmtz IFBhcmlz IE1lZGlh cm9hZA== aWNpbmc= aXh0 aXN0ZWQ= IGdyZXc= IGNvb3Jk IFdoZXJl b21pbg== IHN1YnM= 77+977+9 IMKx IGNvcnBvcmF0ZQ== IHNlbGVjdGlvbg== bm9vbg== IFJlcG9ydA== Y3M= Y2x1ZGluZw== b3JkZXJz YW5jaGU= IEl0cw== IHNsb3dseQ== IEVneXB0 IEFjYw== IGNvbGxl aXF1ZXM= RVg= IGF0dGVtcHRz dXJs IENyb3Nz IGZpbmRpbmdz IFND IE9S IGluZGV4 ZW5zaXR5 IFdheQ== IExhbmQ= IHNob2Nr ZGlz IGR5bmFt IGNhcnQ= bW9zcA== U2luY2U= aWVzdA== IEJveQ== IHN0b3Jt IENvbnRpbg== MjAxMw== aGV3 aWxpdA== IGVzc2VudGlhbA== aXF1aWQ= T3RoZXI= aXZlcmVk IHJlYXNvbmFibGU= QWN0 IHN1YnNlcXU= IFBhY2s= IEZvcnQ= IGNvbnNpZGVyaW5n IHVuaXZlcnNpdHk= bG9n IG1hcnJpZWQ= IGlsbHVzdA== IFRydWU= o48= IG51bWVyb3Vz cmFzdHJ1Y3R1cmU= IHNlcmlvdXNseQ== IHJlZmVycmVk dWE= IGNvbnNpc3RlbnQ= b25uYQ== IFJlYWw= cnVwdGlvbg== Y2lwbGVz IGZhY3Rz OTE= b3Rlcw== ZXJn VGhlbg== IGFjY29tcGw= Tm90ZQ== IHJldmVudWU= IHBhc3Npbmc= IG1hbA== ZWVu IFlldA== IGdhdGhlcg== dGVyZGF5 ZXdvcms= IEF1dGhvcg== UGU= IG9wdGlt IHJ1Yg== IOijjw== IHVua25vd24= c3RvbmU= IHVuaW9u b2x2ZQ== IG9wcG9ydHVuaXRpZXM= IGJyb3dzZXI= IFdhbA== IENvc3Q= IHJlcG9ydGluZw== c3Rz cGV0 IHNhbmQ= IHN1ZGRlbmx5 IHN1cnByaXNpbmc= IFZS IHNvbWV3aGF0 IEJhcw== dWx0dXJl aXp6 IENE IGNoYWxsZW5nZXM= IHNldHRpbmdz IGV4cGVyaWVuY2Vz IEZ1bGw= IGNhbm4= IHJlY2VpdmluZw== RVNU IGpvaW50 IGN1bHR1cmFs IGFzdA== ODI= YXN0ZXJu Y2VpdmVk IENydQ== IGJ1bGw= cGlyZWQ= YW1t IGZhY2luZw== cG93ZXI= IGJvc3M= IEhvbA== IGluc3Ry IGluY3JlYXNpbmdseQ== IHNoaWZ0 IHN0cmVldHM= IFdpbGxpYW1z YWJi IGxpZQ== IGxhdWdo IENh UEw= IGFkdWx0cw== IGN1c3RvbWVy IG9idGFpbmVk IHN1cHBvcnRpbmc= aHRtbA== ZmlyZQ== IGRldGFpbGVk IHBpY2tlZA== IFJpZ2h0 bGRlcg== RUU= c3Rvb2Q= IEtpbQ== IHdpcmU= IHNpZ2h0 IGRldmVsb3BlcnM= IHBlcnNvbnM= IHNhZA== IGN1cA== IHdhcm5pbmc= IGJveXM= bG9uZw== IGJpcmQ= Zm8= IHdhbA== IG9ic2VydmVk IHpvbmU= aXZlbmVzcw== IGNoYW5uZWw= Y3JpcHQ= IHJlZnVzZWQ= IEFnYWlu IHN1Yw== IHNwb2tlc21hbg== IFJlZg== cml0ZQ== b3VzdG9u 44Oz IFNoZXI= IGFjdHM= IE5hbWU= IHN0cnVnZ2xl YXJyeQ== b21ldGltZXM= IGRpc2NyaW0= SFQ= IGNhdGVnb3J5 IHJlYWxpemU= IGVtcGxveWVl IEFmZ2hhbg== ZW5nZXI= IGd1bnM= IFN0ZXZl IE1vdA== IE9s b2tlZA== IHRoaWNr IGZhaXJseQ== aWxseQ== IHN1cnZl IE1hdA== d2VpZ2h0 4pQ= IHRyb29wcw== IGFnZW50cw== IGJhdHRlcnk= IG1vdGl2 w6E= U2Vj ZGVu b3Zlcnk= TFM= IGZsdQ== IGNvbmZpZGVudA== IE9wZXI= IGVtcHR5 IHBoZW4= IHNlY3Rvcg== IGV4Y2l0ZWQ= IHJlbW90ZQ== YXBo b2Vu IGRlc3Ryb3llZA== IG1vcmFs IEhQ IFJvbg== IGRyZXNz IEJhdA== IGxpdA== IE1T IGFm SEw= cnVt aXNtcw== IHNob3VsZG4= IHN5bXB0 IFRvcm9udG8= aGV0aWM= IGNhcmJvbg== IGluc3RhbGxlZA== IHZpb2xlbnQ= IHNvbGFy amE= IHByYWN0aWNlcw== IHJpZGU= IFBlbm4= IGltcHJvdmVk IGF1ZGlv IGJlaGF2aQ== IFBT IGVhdGluZw== RGF0YQ== IFJldmlldw== cGFzcw== Y2xhaW0= dWF0ZWQ= YW5nZXJz Y2hlbg== IHByb3BlcnRpZXM= IGFueXdoZXJl QW5vdGhlcg== IGJsb3c= IEphY2tzb24= IHByb3Vk IHBsYW5l bGluZXM= IHNxdWFyZQ== IHByb29m YW5zYXM= IHRhbGtlZA== bWFrZXJz IHNpc3Rlcg== IGhvbGRz IHJlc2lkZW50 ID09 IHJlc2lzdGFuY2U= IHNwbGl0 IHByb3NlY3V0 IGNvbmZpZGVuY2U= cmVzZW50cw== IGN1dHM= IGV4Y2VwdGlvbg== IHplcm8= R2V0dHk= IGNvcHlyaWdodA== IHRvdGFsbHk= b3JtYWw= aWZpY2F0aW9ucw== IEF1c3RyYWxpYW4= IHNpY2s= IDE1MA== IGhvdXNlaG9sZA== IGZlZXM= IGRyaXZlcnM= b2dlbg== IE5Z IG5lY2Vzc2FyaWx5 IHJlZ3VsYXRpb25z ZWFyaW5n c2w= IHBlcnNwZWN0aXZl Y2FyZQ== aWNpYWw= SGlz IGVzY2FwZQ== IHN1cnByaXNlZA== IFZhbg== dXJyZW50 IHZhYw== ODE= IFRodXM= IGVtcGhhcw== IENoYW1waW9ucw== IEljZQ== IG5hcnI= IGhlYWRz IGNhdXNpbmc= YmVs Zm9ydHVuYXRlbHk= IE1h IHRhcmdldHM= Y2lwbA== IGFmdGVybm9vbg== IGFkZHM= IE1heWJl IEZvdXI= ZXNzZWQ= cGxldGU= IHVzdWFs Y2hv aW5ndQ== IHdpdGhk IEVuZXJneQ== IEVjb25vbQ== T08= IGFydGljbGVz IGluanVyZWQ= IG1hbmFnZQ== IGV4cGxhaW5z IGRpYWdu UmVj YXR1cmVz IGxpbmtlZA== IGRpc2N1c3NlZA== IGV4cGxv IG9jY2FzaW9u YXRoYW4= IG9wcG9zaXRl IGZhY2Vz IGRlbmllZA== IEtuaWdodA== IG51dA== IGFwcHJveGltYXRlbHk= IGRpc2FwcG9pbnQ= b255bW91cw== IEJlc3Q= IExv IEh5 IEFmZg== IHZvdGluZw== YW53aGlsZQ== IElJSQ== IGluc3RpdHV0aW9ucw== YWdyYW0= IERhaWx5 IGRyYWc= IG5lYXJieQ== IGd1aWx0eQ== IGNvbnZlcg== UHJl c2hpcA== IHJld2FyZA== IHBoaWxvc29waA== IFNT dWdo IGFwcHM= ZnJpZW5k IHVwcGVy IGFkdmVydA== IHNub3c= IGZydXN0 IG91cnNlbHZlcw== RnI= IERpZQ== YW1waW9u IGRpc21pc3M= IGNlcmU= IHNpZ25hbA== ZnJvbQ== ICku IDUy IGNyaW1lcw== aXRvcnM= ZXN0aXZhbA== dXNldW0= IGNvdW5jaWw= IFNhdWQ= TWF5 IEd1bg== aWNpYW4= ZXRoZXI= IHN1ZmZpY2llbnQ= IEhlbg== c29sZQ== IGhpc3RvcmljYWw= IEZhcg== IFR1cm4= IHBpbg== IHN1Y2NlZWQ= bWF0 bHltcA== IHRyYWRpdGlvbg== IE9r IGNybw== IGRlc2NyaXB0aW9u YWxsZQ== IHNreQ== VGU= IHdpZGVseQ== IHdhdmU= IGRlZmluaXRpb24= IEpld3M= IGN5Y2xl IHJlZmVyZQ== IGJyaW5ncw== dXNhbA== IGFsaXZl IGZyZXF1ZW50bHk= IGludGVudGlvbg== IENvbnRyb2w= bHY= eXN0ZW0= IHByaXZhY3k= Z2VudA== cmVuY2U= IFF1ZXN0 IENocmlzdG1hcw== IHJhaWw= IGNvb3Blcg== IHRlc3RlZA== IENhcHQ= YXNrcw== IGNvbWZvcnRhYmxl IGRlbGl2ZXJlZA== c2NhcGU= IGRlcHRo IEdPUA== IHdyaXRlcw== IGFzc2V0cw== IHNhdg== aW1lbnRz IHRyYW5zaXRpb24= IGFydGlzdA== IExvb2s= IGxvYg== IGNvbXBvbmVudHM= YXJpdHk= IHdhbGtlZA== IHJvb3Q= IHBhcnRpY2lwYW50cw== IG5vdGljZWQ= IHJlc2M= IG5hdg== IEFkbWluaXN0 ZGE= dXRyYWw= cGxhdGU= IGltcG9ydGFuY2U= IGFzc2VydA== aW91c2x5 Y3JpcHRpb24= IGluanVyaWVz IENoZWNr IHJlZ2lzdGVyZWQ= IGludGVudA== IG1pc3NlZA== b2dyYXBoaWM= IHNlbnRlbmNl b3VudGVy IGFzc2lzdGFuY2U= ZXZpbg== IGRhdGFiYXNl IGJ1aWxkaW5ncw== IGNsYXNzaWM= IHRoaW5rcw== IE9oaW8= UHI= dWdn IGZlZQ== cGFu IGVmZmVjdGl2ZWx5 IGZhY2lsaXR5 IGJlYXI= IGNoYXB0ZXI= IGRvZ3M= IENvbHVtYg== IGxhdHRlcg== aXRpYWw= IGFkbWl0dGVk VFY= IEdlb3Jn IHBvc3Rz XFw= IGxhd3llcg== IGVxdWl2YWw= IG1hbmQ= IGNvbnRyb2xsZWQ= IFdhbGs= IEFuZHJldw== IG1lbnU= YW1lbnRhbA== IHByb3RlY3RlZA== dmE= IGFkbWluaXN0cg== b3JhbA== IHJlaW4= IFNhcg== IGFtb3VudHM= IG5hdGl2ZQ== IE1vb24= IHJlcHJlc2VudHM= IGFiYW5kb24= IGNhcnJ5aW5n IHRhbms= bWFyeQ== IGRlY2xhcmVk VHViZQ== IGhhdA== IHB1bmlzaA== ZWxsZWN0 bWVz IHVuaXZlcnNl IFJvZA== cGh5 IGluZnJhc3RydWN0dXJl IDUx IG9wcG9zZWQ= b3dudA== Y2E= IE1ha2U= IGhhcmR3YXJl IGNvZmZlZQ== UmVs YmFs d29ybGQ= IFNhZg== IFNlYQ== aW5hbHM= IG93bmVk IGhhbGw= ZXJzaW9u IGRlc2NyaWJl IFBvdA== IHBvcnRpb24= IGF0bW9zcA== IGdvdmVybm1lbnRz IGRlcGVuZGluZw== IG9mZmVuc2U= IHRyaWNr YXdh IExpbmU= IFZpcw== IEhhcmQ= IE9yaWc= IENsaWNr IGRlc2s= IFZhbGxleQ== IFNvdg== IG1vdmllcw== IHJlbWFyaw== IG1haWw= IGNvbnNjaW91cw== IHJ1bGluZw== IFJpZ2h0cw== IG1lZGlj aGVudA== IFdvbWVu Pjw= IHJlcGxhY2Vk IFByZW0= IFRoYW5rcw== IHJlbmV3 IEJhbGw= aWZvcm0= IHNob3Rz Q29tbQ== IGFybWVk IGNvbnN0YW50 IHRhc3Rl IHJlYWxpemVk IGJ1ZmY= IG1v IGVmZmljaWVudA== TW9zdA== b3JhdGlvbg== aWZpZXM= IGNvbW11bmljYXRpb24= IGZsb29k IGNvbnNlcXVlbmNlcw== IGFueXdheQ== aWdn IEdN IFRoYW5r IGlyb24= IGV2b2x1dGlvbg== IENvcA== dHdpdHRlcg== IDk1 IHJlbGF0aW9uc2hpcHM= YWRlbA== IFlvdW5n IHByb3Bvc2Fs YXllcnM= dWlsZGluZw== IEhvdA== T1JF Y29z IGNvbGxhYm9y UEc= YXh5 IGtub3dpbmc= IHN1cHBvcnRz b3dlZA== IGNvbnRyb2xz IG1lcmVseQ== dW1lcg== IGF0aGxldA== IGZhc2hpb24= cGF0aA== IGdpZnQ= IGVyYQ== QU5E IGtpbmRz IEtvcmVhbg== IGxlZ2l0 dWxvdXM= IGVzc2VudGlhbGx5 IHRoZXJhcA== bmlj IHN1ZmZlcmVk IGh1cg== IHByb21pc2U= IGV4Y2Vzcw== IG92ZXJ3 IHByaW1l IEhvdXN0b24= ZXJyeQ== IE1z UlM= MjAxMg== IHN0b3Jlcw== IE9seW1w IGpvdXJuZXk= QWx0aG91Z2g= U3Vi IEVkdWM= IENoYXB0ZXI= IHJlcXVlc3Rz IGNvbnN1bWVycw== IHRpbnk= IGlzb2w= IEZhaXI= YmE= IFlPVQ== IGNyYXNo Y2VsZXI= IGVtb3Rpb25hbA== IGdvb2Rz IGVsZWN0ZWQ= IG1vZGVy IExpbnV4 IGJsb2Nrcw== IGlzbGFuZA== IFNvY2lldHk= IGVsZWN0aW9ucw== IGJyb2FkY2FzdA== IGNoZWFw IG5hdGlvbnM= IHNlYXNvbnM= NDAw IHdhc3Rl IFNhdA== IGZpZWxkcw== ZW1wbG95 IHByb2ZpbGU= IGF1dGhvcnM= QUxM IEdyYQ== d2VzdA== IFR5 IGRlYXRocw== IHZhY2M= IGZvcm1lZA== IGR1 IG9uZ29pbmc= IE11c2xpbXM= ZWxm aWd1cmU= IGFzc3VtZQ== IFVrcmFpbmU= d2F0ZXI= IGNvYXN0 IHZvdGVk Z29y IEFT IE1pY2hpZ2Fu YXph IEFybQ== aXJv IGZsZXg= YXN0ZXJz Jyc= IHdlbGNvbWU= YXJs IGxvY2F0aW9ucw== aWdhdGlvbg== IEZpbA== IGJ1eWluZw== IGFyY2hpdGVjdA== IGhhcmRlcg== IEN1Yg== IGludGVyZmFjZQ== IHJlc3RhdXJhbnQ= IGRpc2NvdmVy IGV4Y2VlZA== IGZhdm91cg== Z2VyeQ== IGR1dHk= IHBpdGNo YWRvcg== IE1hY2g= Ym95 IHJlc3BvbmRlZA== IGV4dGVuZGVk aGVycw== TWFueQ== cmFpZA== aWZlcg== IElucw== U2Vy IG1lZGl1bQ== c2hl IFNwb3J0cw== IG1hZ2F6aW5l dXRhdGlvbg== IGxpbWl0cw== IEdhbGw= IGV4dGVybmFs cmF6aWw= IHlvdW5nZXI= dGxl IHJlbWluZA== IENPTg== IGltbWVkaWF0ZQ== IGhpZGRlbg== IHZvbHVudGU= IHNpbXBs b2RjYXN0 IHBoYXNl ZHI= IHBsb3Q= IGV4cG9zdXJl Ukk= b2dyYXA= dmlu YW5pc2g= IEFjYWQ= IEVuZ2luZQ== IGV4cGFuc2lvbg== IFBheQ== WW91cg== IHB1c2hlZA== IEVsbA== IEhlYWQ= IG1hcmtldGluZw== IEFD a2V0 IGhpdHM= IGdybw== IEFnZQ== IFNjb3Q= XVs= IHN0aW0= IGlQaG9uZQ== iJI= IG5hcnJvdw== IEdldHR5 IFR1cmtleQ== IHBlcmZlY3RseQ== IGVuYWJsZQ== dXRjaA== IHByZWNpc2U= IHJlZ2ltZQ== IHNoaWY= IGNvbXBlbnM= Z3Vu ZGl2 IGNob3Nlbg== IEtlbg== QW55 IHRyZWVz IHJlY29tbWVuZGVk IFJlbg== dWFibGU= IEhU Rm9sbG93 RUc= IEhhbmQ= IEtlbm4= IGFyZ3VtZW50cw== IGV4aXN0cw== IGJpa2U= IENvbnNlcnY= IGJyZWFraW5n IEdhcg== IGNyYXp5 IHZpcnR1YWw= YXlsb3I= aXhlbA== IDE5ODA= IHBlcm1pc3Npb24= IFNlcmllcw== IGNvbnN1bWVy IGNsb3NlbHk= Y2FsbGVk IDU0 IGhvcGVz IGFycmF5 IFdpbg== IExhYm91cg== IHNwb25z IElyZQ== IHBvdw== IHJlYWRlcnM= IGVtcGxveW1lbnQ= IGNyZWF0dXJl IHJlc3VsdGluZw== IGFjY3VyYXRl IG1vbWVudHM= IGFyZ3VlZA== IHBlZA== RHVyaW5n IDUz IFRhbA== IHNvdWdodA== IHN1ZmZlcmluZw== IGljb24= bGVl ICgk YWxpYW4= wrA= IHByYQ== IGJvbnVz KCI= a28= IGFjdGluZw== REU= ZmFsbA== IGNvbXBhcmlzb24= IHNtb290aA== IE5BUw== dXBw IEpvc2VwaA== ZXBpbmc= IFRha2U= IE1pZA== IHNlbmRpbmc= ZmFzdA== IEZhbGw= IGRlYWxpbmc= dXNlcg== IE9yZ2Fu Q28= IGF0dGFjaGVk IHNlZXM= JS4= IHR5cGljYWw= QVJU IGZpbmRz IEFzaWE= dW1pbg== IENvcmU= IEVudA== aW5lbnQ= dWNl IEJsb29k IE5ldmVy IGVtYWlscw== IGhpZ2hsaWdodA== IGNvbmZyb250 YXR1cw== dXRlZA== IHVudXM= IHRvcGlj IEFkYW0= IGJsZQ== YXRp IHVuZGVyc3Rvb2Q= U2V0 c3RydWN0 VFA= IG1vYg== YWE= IFN0YXJ0 cGVjdGVk c2VsbA== IGRlZGljYXRlZA== IENB dWFu IHNvbmdz ZXNjcmlwdGlvbg== IHRlY2g= IHJhcGU= IGFzaWRl IGdyYW50 IDU2 c3Vi IGFyZ3Vl IGNvbnRhaW5pbmc= IHNjaGVkdWxl IGxpYmVyYWw= IHB1YmxpY2x5 IGhlYXZpbHk= IFV0 aW5lcg== IFNlY3Rpb24= IENhcmU= d2VldA== bHM= RGlz 4pSA IEZvbGxvdw== QmFjaw== IElU IGJlcw== amk= IEhpdA== ZXN0ZWQ= IGV2ZXJ5Ym9keQ== IFN3ZWQ= IGZlbWlu IGZhY2lsaXRpZXM= IGNvbnZlbg== Q29tcA== IE9T Y29yZQ== IGFueA== IGRpdmlzaW9u IENhbQ== IFN0YW4= bWF0ZXM= IGV4cGxvcmU= cGxvbQ== IHNoYXJlcw== cGxvYWQ= YW5lcw== IGlkZWFs ZXRlcnM= IEJhc2U= IHBsYXN0aWM= IGRpc3RpbmN0 IE5ldHdvcms= IFNlYXR0bGU= IHRyYWRpbmc= ZW5zdXM= aW50ZW5k IGV4aGli IGluaXRpYWxseQ== IEZvb2Q= IHRob3VzYW5k IEJ1c2luZXNz YWN0ZXI= IHBhcmFncmFwaA== IHJvdWdobHk= IHd3dw== IGNyZWF0aXZl IENvbmY= IGNvbnN1bXB0aW9u IGZpbG1z YWdhbg== IG9idGFpbg== IHRhbGw= IHRvcg== IGFja25vd2xlZA== IGdyb3du YWxv S0U= IDQwMA== ZW5kZXJz dGFpbmluZw== VUc= IHN1aWNpZGU= IHdhdGNoZWQ= IExpc3Q= YWxp cmVoZW5z IHN1cnJvdW5kaW5n IHBpcA== IGZseWluZw== IEphdmE= b3JkYW4= IHNlcnZpbmc= aW5hdGlvbnM= cG9zdA== IHNobw== QXY= IGphaWw= enk= IDE5OTk= IDwv IGxpdGVyYWxseQ== IFNpcg== IGV4cG9zZWQ= IGxpZXM= c3Rhcg== IGJhdA== IGVhcm5lZA== IERpZw== IHNwZWNpZmllZA== IFNlYXNvbg== IGRlZ3JlZXM= RG9uYWxk IGNlbnRyZQ== IHNoYXJpbmc= IHdpbnRlcg== IENP Q2hl IM4= TVA= IHVudw== IGZld2Vy IE1pcg== IHNvbWV3aGVyZQ== IEtleQ== IGF0dGFja2Vk IEtpcg== IGRvbWFpbg== IHN0cm9uZ2Vy IDk5 IHBlbmFsdHk= SWQ= U2NyaXB0 IGRlY2xpbmVk IG5lY2s= IGZyYXVk IGN1cnJlbmN5 IHJpc2luZw== UkM= 4oCm4oCm SHo= IHRhYg== IHRhbGVudA== bmFt IE5CQQ== IHZpbGxhZ2U= IGxlZ3M= IE5leHQ= RWQ= IGFjaWQ= IGh5ZA== ODAw IGludm9sdmluZw== IEltYWdl IEJlZm9yZQ== Rmw= IHllc3RlcmRheQ== U291cmNl IHRlcnJvcmlzdA== IHN1cA== IHN5bnQ= IFNhdWRp IHdlc3Q= IHJ1 YnVyZw== IHZpc2libGU= IHN0cnVjaw== cmlzb24= IGF3ZXNvbWU= IGRyYXdu IGFuc3dlcnM= IEdpcmw= IFJhbQ== IHRocmVhdHM= IGRlZmVhdA== b3NpdA== IHZlbnQ= YXR1cmFsbHk= QW1lcmljYW4= ZW5kYQ== IEhvbHk= IHJ1bQ== JSw= Y2FzZQ== IEhpc3Rvcnk= IFlvdVR1YmU= IHNpdHVhdGlvbnM= IEROQQ== U3Rl IHNhdmVk SXRlbQ== IHJlY2lw b2xvZ2lzdA== IGZhY2Vk IGVsaWc= T25jZQ== IExp dWg= IG1pc3Rha2U= IERpdmlzaW9u IEJlbGw= IHN5bXB0b21z wq4= IGRvbWlu IGZhbGxpbmc= IGVuZGluZw== YXNoZXM= IG1hdGNoZXM= IE9ubGluZQ== IGV4cGxhbmF0aW9u RGVm cmVkaXQ= IGFueW1vcmU= IFRvdGFs IEZPUg== dXNoZWQ= IGxldHRlcnM= IHJpc2tz IE9L IHJlcG9ydGVkbHk= Olw= IHBsYXRl IHN1YmplY3Rz IGF0dGVtcHRlZA== aWZpZXI= aWFuYQ== IHVubGlrZWx5 IFRob3VnaA== dW1h IEludmVzdA== IFByaW4= aWNhbg== IERhcg== IENvbG9yYWRv YXVn IHZlZ2V0 YW9z cmlh IHNoZWw= IG1hcmtlZA== ICgp IHNwcg== cG8= IExpbms= IGRlZmU= IEpy IHRoZW1l IHBhc3Npb24= IFBlbg== IGluZm8= aXplcg== IHNoaXQ= IENpdmls YXBzZQ== Y3Jl IHBvbHk= IGNvbXBvbmVudA== IENoYXJsZXM= IElyZWxhbmQ= IFByb3Y= IGRvY3RvcnM= IGdyYW50ZWQ= IHBhaW50 IGhvbm9y IHNtb2tl IHBheW1lbnRz IHByaW1hcmlseQ== IEtpbmdkb20= cmljaA== YXRlbGw= IGRlYWxz IHNjaGVkdWxlZA== IGZ1bmRhbWVudGFs IHByb3RlaW4= IG5ld3NwYXBlcg== IGNsaWVudHM= eXRob24= IERhdGU= aHVz IGZlZWRiYWNr IHN0cmV0Y2g= IGNvY2s= IGhvdGVs IFF1ZWVu IHN1Z2Fy IGp1 IG1pbGs= IGFwcHJvdmFs IExpdmU= IGVxdWl2YWxlbnQ= ZWZ1bGx5 IGluc2VydA== em9uYQ== IGV4dGVuc2lvbg== ZHJp Sm9obg== IGFjY29tcA== U20= IEZ1bmQ= IGNvbnN0YW50bHk= IGBg IGdlbmVyYXRlZA== IEFjdGlvbg== IFBzeWNo IFRyaQ== IHJlY29nbml6ZQ== IHZhcnk= cGhh IFJh ZGY= ZXRjaA== IFNvdmlldA== VHdv IHBhdHRlcm5z IHByb2Zlc3Npb24= YW5pbmc= VGltZQ== IExpbQ== IGNvbG9ycw== IEF6 IFRS IGluZmVjdA== IHBoZW5vbWVu IHNoZWxs QWxzbw== IHB1dHM= IGRlbGl2ZXJ5 IGJyb3du IHByb2Nlc3Npbmc= IGxpZ2h0cw== ZXNzYWdl IEJyb29r IEF1ZA== bGF0aW9u IGluZHVzdHJpYWw= TGlrZQ== IEJyYXppbA== cm91cw== RVNT IEx1Yw== IHNvbWVob3c= IDg1 IHByb3BvcnQ= IHBvbGl0aWNpYW5z IGluZGljYXRl IGhvbGU= IHRlY2huaXF1ZXM= IGNvbXBldGl0aXZl IHBocg== IHZv aXN0ZW50 IERyZWFt IGNhbXB1cw== IGFzcGVjdHM= IGhlbHBmdWw= IHNoaWVsZA== b3JzZQ== IHRyaWdnZXI= bWFs IDU4 IHRvcnQ= IHBlcnNvbmFsbHk= IHRhZw== IGtlZXBz IFZpZGVv IGJlbmNo IGdhcA== YWlyZQ== IGVhc3Q= IHJlY292ZXJ5 cGVyaWFs IHByb2ZpdA== IE1pYw== IDU3 IGNvbG9u IHN0cm9uZ2x5 c3R5bGU= IGFsbGVnYXRpb25z aGFu IHJlcG9ydGVycw== am8= cmluZQ== YXJnZXQ= YW5kYWw= IDAz IGZsYXNo dHJhbnM= IHN0cmljdA== IHBhcmtpbmc= IFBha2lzdGFu IGxp IHdlaXJk IEVyaWM= IHJlZ2lvbnM= IEp1bg== IGludGVsbGVjdA== IFdI b2Rpbmc= cmlidXRlcw== dXBpZA== IFRpdA== IGZpbmdlcg== b3JpYQ== IGVsZXY= IEZpZWxk IGNvbmNsdXNpb24= Ozs= IGZlZWxpbmdz IGV4dGVuc2l2ZQ== IG1peGVk IG5ldXJv dnk= IGhhcmFzcw== IENpcmM= b3VjaA== IHRlcnJpdG9yeQ== IHN1Y2Nlc3NmdWxseQ== TWFy IGluZ3JlZA== IG92ZXJ3aGVs IGxheWVy Vmlldw== IGFsbGllcw== aWxsYW5jZQ== IFRocmVl IGJ1bmNo IG5vcm1hbGx5 IG5ldHdvcmtz IHNhY3I= IENJQQ== Ymxlcw== IGNob3Nl IG9wcG9uZW50cw== IHJlZ2FyZGxlc3M= IGZyYW5jaA== IHByZWY= IFBv IGJyaWRnZQ== YW5uYQ== IFNpbHZlcg== IHdhZ2U= cGFnZQ== cmlvcg== IHJhZGljYWw= IExpdHRsZQ== IG1hbmlw IHNlY3JldGFyeQ== IGdhbmc= RFI= RkE= IGRlY2VudA== IFNwaXJpdA== IHVuY2xl IERldmVsb3BtZW50 IGludmVzdG9ycw== IHdhbGxz IHB1Ymxpc2g= IGdlbmVyYXRl aXNzaW9ucw== Y2Fy IHByb21vdGU= IGN1dHRpbmc= IGNoZXN0 IGRyaW5raW5n IGNvbGxlY3RlZA== IDcy IGhvcGluZw== IGVtYnI= Z29yaXRo IHdhcm5lZA== IGluc3RydWN0aW9ucw== T0c= IERpZA== IEFnZW5jeQ== IGdlYXI= IGNyaXRpY2lzbQ== IEZ1cnRoZXI= IHV0aWw= YW5ueQ== UmVk IGNvdW5zZWw= IEFzaWFu IHJlZHVjdGlvbg== cG9vbA== IHRlYWNoaW5n IGRlZXBseQ== aXk= IGVzdGltYXRlcw== IGNob2ljZXM= IHBlcm1hbmVudA== aW5lbQ== a2Vs IGZhc2M= cHNl ZmlsZQ== IExvdw== IFBlcnNvbg== IHRvdXJuYW1lbnQ= c3RhbA== IG1lbA== VVNU IFJheQ== YXpp VmFs IGNvbnRhaW5lZA== IEhvbGx5 IHdha2U= IHJldmVhbA== IHByb2Nlc3Nlcw== IElTSVM= IDA5 IGJsaW5k IHN0ZWVs IEJhZA== IGNhcmVmdWxseQ== YXBweQ== cm9pdA== IGdhbWluZw== IGhvdXNlcw== IENvbGw= IHRydWNr ZXJt IHNjb3JlZA== IG9jY2Fz cmV0dXJu Ym91bmQ= dmFy IHNoYXJw IGFmcmFpZA== IEVY YW1iZXI= Y2lmaWM= IHNjaGVtZQ== TkM= IFBvbGl0 IGRlY2xpbmU= IDE5OTg= IHB1c2hpbmc= IHBvc3Nlc3Npb24= IHByaXZpbGU= IHRlYWNoZXJz IHlpZWxk SEE= IERhdmlz aXRsZWQ= IyMjIyMjIyM= IHJpZw== IERhbmllbA== YWNvbg== IGhpZGU= dXRlbg== IGNvbGxlYWd1ZXM= IHByaW5jaXBsZXM= IGxvdWQ= IHNpbg== IERlbW9u IHN0b25l IDAy IHRhdWdodA== IHRlcnJpYmxl IHN0dWNr IFBvbGljeQ== dGVlbg== IGltcGxlbWVudGF0aW9u IEJCQw== IEFQSQ== IHdoZWVs YWxsYXM= IGNoYW1waW9ucw== b2xhcnM= cGxheWVy IHJlcGVhdGVkbHk= IFN0aWxs IGxpa2Vz YXN0eQ== ZXN0ZXI= IENhdGhvbGlj Ukw= IGJhdGg= IG5vaXNl dGl0bGU= IG5vcnRoZXJu UGFydA== IG1hZ24= IGZhYg== IEFzaA== IGRpc3Bs IHRpY2tldA== IG11cmQ= IGFsb25nc2lkZQ== IE11c2lj IHJpdmVy IFN0ZWVs IENM IFBsYXllcg== IE11bHQ= b3dpbmc= cmVw c2l6ZQ== IHR1cg== IEdlb3JnaWE= aXNjYWw= cmFjdGlvbg== IGNhYmxl IDU5 IHdpbnM= IHVwY29taW5n IHN1cnZpdmU= IGluc3BpcmVk IEVkdWNhdGlvbg== IHN0YXRpc3RpY3M= IEZvb3Q= aWFtaQ== IHllbGxvdw== IFBhZ2U= Li0= IEhhcw== IHVyYmFu IGF4 ZXNzZWw= XCI= IHF1YXJ0ZXJiYWNr IHJlZ2lzdGVy IExhYm9y IGFiaWxpdGllcw== IEZhbWlseQ== IHZhcmlhYmxl IFByaWNl IGNvbnRlbQ== IHRoaW4= IEVxdQ== ZGF0YQ== IGdvdHRlbg== IGNvbnN0aXQ= IGFza3M= IHRhaWw= IGV4Y2l0aW5n IEVmZmVjdA== IFNwYW5pc2g= IGVuY291cmFnZQ== aW5zb24= IEFo IGNvbW1pdG1lbnQ= Q1M= IHJhbGx5 IDo6 IHN1YnNpZA== IHNwaW4= IGNhcHR1cmVk MjAxOA== IGlubm9j IGFsbGVnZWRseQ== IENvbWU= IGFydGlzdHM= IE51bWJlcg== IGVsZWN0cm9uaWM= IHJlZ2lvbmFs YXBlcw== IHdyYQ== IG15dGg= cHJpc2U= IE1pbGxlcg== IENyZWF0 IEVwaXNvZGU= YmVsbA== IGRpcmVjdGVk IGV4dHJhY3Q= IHNvcnJ5 IHZpY2U= YWdnZXI= IFN1cHBvcnQ= IDY2 IElyb24= IHdvbmRlcmZ1bA== IGdyYQ== TmV0 aW9uZQ== RW5n IHNoaXBz aWtlcw== IEtldmlu aXRhcg== IGFjdGl2aXN0cw== dHJ1ZQ== IEFyaXpvbmE= ZW50aA== IERlc3BpdGU= IFNF IGhhYml0 ZXJuZWw= IGlucXU= IGFib3J0aW9u IHZvaWQ= IGV4cGxpY2l0 IGVuZ2FnZWQ= IGFuZ3J5 IHJhdGluZw== IGZyYWc= YnJv aWNraW5n ZGV2 IHdvcnJpZWQ= IG9ic2Vy IGFwYXJ0bWVudA== IEdU IGVzdGF0ZQ== IENvbnN0aXR1dGlvbg== ZW1vbg== IFNub3c= IGNvdW50eQ== IGRpc2Fn IFN0ZXBoZW4= IGltbWlncmFudHM= d2luZA== IE5hdGlvbnM= IGZvbGtz T3V0 IGdhbGw= IHRhcmdldGVk IHN0ZWFk IEJvbg== IExpYg== IGluZm9ybWVk IDEyMA== Y2hhaW4= aWRlbGluZXM= b3JvdWdo IGRyaXZlbg== IHJlZ3VsYXJseQ== IGJhc2tldA== IHByaW5jaXBsZQ== b2N1bWVudA== IHN0dW4= aWJpbGl0aWVz IFJvbWFu IEFib3V0 IGFsZXJ0 IGRlbW9jcmFjeQ== IHJlcHJlc2VudGVk SFM= Y2Vycw== cGFyZW50 QXJ0 cGFjaw== IGRpcGxvbQ== cmV0cw== IE5P IGNhcHR1cmU= IEFkdg== hKI= IGFubm91bmNlbWVudA== IExlYXI= IGhvb2s= IHB1cnM= IFN1Y2g= IENhbWVy IHJlZnVnZWVz IFZl UG9s IHJlY29nbml6ZWQ= bGli IGhhZG4= QXNz IHBpbG90 dXNoaW5n IHJldHVybmluZw== IHRyYWls IFN0b25l IHJvdXRpbmU= IGNvdXJ0cw== IGRlc3Blcg== IGZyaWVuZGx5 IEl0YWx5 IHBsZWQ= IGJyZWF0aA== IHN0dWRpbw== TlM= IGltcHJlc3NpdmU= IEFmZ2hhbmlzdGFu IGZpbmc= IGRvd250 aW5raW5n IFJvZw== aWFyeQ== Y29sb3I= c2V4 YXJvbg== IGZhdWx0 IE5pY2s= RG93bg== IFJvc2U= IFNvdXRoZXJu WFg= aXNvZGVz TGlzdA== NjAw IG91dGNvbWU= ZXJy IGVsc2V3aGVyZQ== IHJldGlyZQ== IHBvdW5kcw== IEdsb2JhbA== UGVvcGxl IGNvbW11bmljYXRpb25z IGxvYW4= IHJhdGlv IEVtcGlyZQ== IGdvbm5h IGludmVudA== REY= IDE5NzA= IENvbW1vbg== cGF0 IHByb21pc2Vk IGRpbm5lcg== IEhvbQ== IGNyZWF0ZXM= IG9wZXJhdGU= dmVydHk= IEpvcmRhbg== ZXRpbWU= IHN1c3RhaW4= UmVn IGluY3JlZGlibGU= aW1h IHdhcnJhbnQ= IG1t QXR0 IGxhd3N1aXQ= IHJldmlld3M= aXR1cmU= IFNvdXJjZQ== bGlnaHRz IEZvcmQ= IDYz Z3JvdXA= c3RvcmU= IGZlYXR1cmVk IGZvcmV2ZXI= IHBvdmVydHk= IFBvcA== IENOTg== YXp6 YWJpcw== YWNoaW5n IGxhaWQ= IFN1cHA= IGZpbHRlcg== ZW5h IENvbW11bml0eQ== IGNyZWF0dXJlcw== dWN0aW9u IFJveWFs IGFzc29jaWF0aW9u IENvbm5lY3Q= IEJyYWQ= 4paI bGVycw== dGhlcmU= IEdp IHZhbHVhYmxl QUNL IFRheWxvcg== IGxpcXVpZA== IEF0dG9ybmV5 IENhcmw= IEZpbmFs YWdh IFdpbHNvbg== QmVjYXVzZQ== IFByb2Zlc3Nvcg== YWth IGluY3JlZGlibHk= cmFuY2U= ISk= UmVm c2s= IHNvbHV0aW9ucw== IGF0bW9zcGhlcmU= IGJsYW1l dW1lcw== IE5vYg== Q0E= dW1wcw== cmljYWw= IFB1dGlu IERlc3Q= b3JpYw== IFBB IHJlc3BlY3RpdmVseQ== d2Fu IGZpZnRo 4oSi IENyeQ== IGdvdmVybm9y cmVzaWRlbnQ= IHB1cmNoYXNlZA== IGhhY2s= IGludGVuc2U= b2Jz IG9yaWdpbg== IGRlZmluZQ== IGNhcmVmdWw= Kioq IHNob3VsZGVy Q2xpY2s= IHRpZWQ= IGRlc3RydWN0aW9u b3VyZWQ= IG5vYm9keQ== IGhv IEV4cGVy IHRpcA== Ijs= IHRlY2huaXF1ZQ== IGp1cg== IFBvaw== Ym93 IGxlZ2VuZA== IGFjY29yZA== IGJ1c3k= IEludGVs IGhhbmc= YWtp Ll0= 4oCU4oCU4oCU4oCU IHN1cmdlcnk= IHJlcHJvZHU= IHVuaWZvcm0= IHNjZW5lcw== Y29kZQ== IDYy bGlzaGVy IEhhdmU= cGhpYQ== IGNyeXB0 IHJlY29u IHNjcmVhbQ== IGFkb3B0ZWQ= IHNjb3Jlcw== TmU= IEl0YWxpYW4= aW5jbHVkaW5n Qk8= IGluZGljYXRlZA== IGVudGVydGFpbg== R3U= VGV4dA== aWVs IHR3ZW50eQ== IGVuZ2FnZQ== b2Zmcw== IFBhY2lmaWM= IHNtaWxl IHBlcnNvbm5lbA== IHRvbGVy IGRvb3Jz IHRvbmU= IG1hY2hpbmVz IGVudGVyaW5n dGVuYW5jZQ== Q08= IEplcnNleQ== IGZvcmVzdA== IGhvcnNl IGNvbXBsYWludA== IFNwcmluZw== eW8= IFBsdXM= ZWRpbmc= IFJldHVybg== cXVhcnRlcnM= aWFscw== Y293 IGFjYWRlbWlj IGZydWl0 IDE5OTY= b2dldGhlcg== IHdpbmU= IHB1cnN1 IFN0ZXZlbg== IGxpY2Vucw== V2hv IGNsb3RoZXM= cmVjdGlvbg== IHNxdWFk IHN0YWJsZQ== IHJhdw== emVucw== U3Rhcg== dXRpZXM= YW5jZXI= IGtleXM= IE11 IGNvbXBsaWNhdGVk aWdlcg== IFRleHQ= IGFic29y IDY4 IGZ1bm55 IHJlbGllZg== IExldw== IENvb2s= IGNoYXJ0 IGRyYXdpbmc= R0U= IG1vZHVsZQ== IEJ1bGw= SUxM IHNhbHQ= MDAwMDAwMDA= aWxsZQ== IHJlc291cmNl YXdheQ== YWRlbHBoaWE= IEJydQ== IDY3 IHNvbWVib2R5 IHBhcnRpY2lwYXRl IHJvc2U= d2VyZWQ= IG11c2NsZQ== IGNvbnNlbnQ= IGNvbnRpbnVpbmc= IEd1YXJkaWFu IE9yZGVy cmVnb24= IHJlYXI= IHByb3Zpc2lvbg== IGxpa2Vk cmllbnQ= IGJyYQ== VHJhbnM= IG1lZXRpbmdz IHRveA== IGNvbnZlbnQ= IGF1dG8= IHJlY29yZGluZw== IFNvZnQ= MDAx IFJvbGw= IHByb2dyYW1taW5n IHBpYw== IHByb3ZlZA== IHN0YWI= IEFzdA== IGNhcHRpb24= dWxhdGluZw== IEF0dGFjaw== IG5ld2x5 IDE5OTc= ZnI= IGRpc2NpcGw= IEdyZWVr IGVkaXRpb24= IERvZXM= IEJveA== aWZsZQ== YWNrZXQ= IHBhc3Nlcw== IGd1ZXN0 IGFjY2VsZXI= aXRhbHM= VUQ= IGF1dGhlbnQ= IFJlc3Q= b3ZhbA== dGE= dWluZQ== IGFybW9y IFRvd24= IGNvbXBhdA== IGluY2hlcw== RGVzcGl0ZQ== IGFzc2lnbg== aGVyZW50 IHByZXBhcmU= IE1lZw== b2NrZXk= IGRlcGVuZHM= IHRyYWNrcw== d2F0Y2g= IGxpc3Rz IE5vcnRoZXJu IGFsdGVy cmVj IEVhc3Rlcm4= IGNvbmRlbQ== IGV2ZXJ5d2hlcmU= Pyc= IGFmZmlsaQ== IGZvdWdodA== Ijp7Ig== IG1hYw== aXRhcmlhbg== IHNjb3Bl IEFM YXdz YXJtcw== IHF1ZQ== IGVuam95ZWQ= bmVzb3Rh IGFnZ3Jlc3NpdmU= IFN0b3J5 IElW IHJlY2lwZQ== IHJhcmVseQ== IE1lZGljYWw= dmFsdWU= YW5nZWw= YXlpbmc= b21ldGhpbmc= IHN1YnNlY3Rpb24= IHNvdXRoZXJu IGZyZXF1ZW5jeQ== cmV0ZQ== cm9sbGVk dWx0cw== IE5pYw== IGJlaGFsZg== IHNlcXVlbmNl YWJldA== IGNvbnRyb3ZlcnNpYWw= IGNvbXByb20= IHdvcmtlcg== IG1haW5seQ== IGFsZ29yaXRo IE1ham9y b3JjZQ== Z2VuZGVy IG9yZ2FuaXplZA== IGZha2U= IGNvbmNsdWRlZA== IEVE IEV4ZWM= cmFnZQ== IGNoYW5jZXM= YmVycnk= IFRyYWQ= IGNvbmZpZ3VyYXRpb24= IHdpdGhkcmF3 IGZybw== dWRlcw== IEJyb3RoZXI= IEJyaWFu IHRyaWVz IHNhbXBsZXM= IGJpZA== IEdvbGRlbg== IHBob3RvZ3JhcGg= aWZlc3Q= IERP IFBhcmxpYW1lbnQ= KioqKioqKioqKioqKioqKg== UmVt IGNvbnRlc3Q= IHNpZ25pbmc= cHg= IFplYWw= 4pSA4pSA RWFy IGV4aXQ= QmVmb3Jl IENvcnBvcg== bnVsbA== bW9udGg= IHJhY2lhbA== b3R0ZWQ= IFZlZw== IFJldXRlcnM= IHN3b3Jk cHNvbg== IFJvbW5leQ== YWVk IHRyaWI= IGlubmVy IHByb3RvY29s IEJp IE1pYW1p ZXZlcmFs cHJlc3M= IHNoaXBwaW5n IEFtZW5kbWVudA== IEhvd2FyZA== Y29ubmVjdA== IERpc2M= IEphYw== aWFtb25k IFRoZXJlZm9yZQ== c2Vz IFByaW5jZXNz IFVTQg== IEFudGg= IHN1cnZlaWxsYW5jZQ== IGFwb2xvZw== IDYx b3dh IGZ1bGY= anM= IGx1Y2s= dXN0ZWQ= IMKn bmk= IGFudGljaXA= ZW1hbg== IHdpbm5lcg== IHNpbHZlcg== bGxh aWNpdHk= IHVudXN1YWw= IGNyYWNr IHRpZXM= ZXo= IHByYWN0aWNhbA== IHByb3ZpbmNl IFBsYWNl IHByaW9yaXR5 SUNF IGRlc2NyaWJlcw== IGJyYW5jaA== Rm9ybQ== YXNrYQ== bWlzc2lvbnM= Ymk= IHBvcm4= IFR1cms= IGVudGh1cw== IGZpZ2h0ZXJz IDA4 IERldHJvaXQ= IGZvdW5kYXRpb24= YXZpZA== QXJl IGp1ZGdtZW50 Y2xpbmc= IHNvbHZl IERlc2lnbg== V2hlcmU= aGVzaXM= IFRybw== YWZ0ZXI= IG5ldXRyYWw= IFBhbGVzdGluaWFu IEhvbGx5d29vZA== IGFkdmlz IE5vbg== eWVz b2xpcw== IHJlcHV0YXRpb24= IHNtZWxs IGJyZWFk IEJ1bA== IEJlYWNo IGNsYWltaW5n IGdlbmV0aWM= IHRlY2hub2xvZ2llcw== IHVwZ3JhZGU= cm93cw== IGRldmVsb3Blcg== IEpvc2g= IERpc25leQ== ZXJ2ZWQ= aXBhbA== IHVuZXg= IGJhcmVseQ== dGhlbg== IFB1Yg== IGlsbG5lc3M= ZXRhcnk= IEJhbA== IHBhdGNo IGJ1dHQ= IHN0dXBpZA== IERvZw== IERhbGxhcw== ZnJvbnQ= aWVjZQ== IHByb3Rlc3Rz IGNoYXQ= b2VuaXg= IHdpbmc= IHBhcmxpYW1lbnQ= IDc3 b3NleHVhbA== IHJlbmRlcg== cHRpb25z IENvYXN0 b3Nh IEdyZWc= aG9w IE1hbmFnZW1lbnQ= IGJpdGNvaW4= IHJlY292ZXI= IGluY29ycG9y b3JuZQ== IFVzaW5n IHByZWNlZA== IHRocmVhdGVuZWQ= IHNwaXJpdHVhbA== IEV2ZW50 IEZyZWQ= IGFkdmVydGlzaW5n IGltcHJvdmVtZW50cw== IEN1c3RvbQ== IGVycm9ycw== IHNlbnNpdGl2ZQ== IE5hdnk= IGNyZWFt TG9vaw== IGV4Y2x1c2l2ZQ== IGNvbXByZWhlbnM= IGRlbGVn IGNvbmNl IHJlbWVt IHN0cnVjdHVyZXM= IHN0b3JlZA== TkQ= IDEwMDA= VVA= IEJ1ZGQ= QUY= d29tYW4= IEFjYWRlbXk= 8J8= c2Vh IHRlbXBvcmFyeQ== QWJvdXQ= ZXN0ZXJz IHRpY2tldHM= IHBvc3Nlc3M= aW5jaA== b3o= IGxh IGNvbnRyYWN0cw== IHVucA== IGNpZw== IEthdA== dWx0dXJhbA== YXNt IG1vdW50YWlu IENhcHRhaW4= U3RlcA== bWFraW5n IFNwYWlu IGVxdWFsbHk= IGxhbmRz YXRlcnM= IHJlamVjdGVk ZXJh aW1t cml4 Q0Q= IHRyYW5zYWN0aW9u Z2VuZXI= bGVzc2x5 IHx8 IGNvcw== IEhlbnJ5 IHByb3Zpc2lvbnM= IGdhaW5lZA== IGRpcmVjdG9yeQ== IHJhaXNpbmc= IFNlcA== b2xlbg== b25kZXI= IGNvbnNvbGU= aW5zdA== IGJvbQ== IHVuY2VydGFpbg== MTUw b2NraW5n IG1lYXN1cmVk IHBsYWlu IHNlYXRz IGRpY3Q= U0w= YWZl IGVzdGltYXRl aXpvbg== YXRoZXJlZA== IGNvbnRyaWJ1dGVk IGVwaXNvZGVz b21tb2Q= R3I= QU5U IDY5 R2VuZXI= IDI1MA== dmlvdXNseQ== cm9nZW4= IHRlcnJvcmlzbQ== IG1vdmVtZW50cw== ZW50bGU= b3VuY2U= IFNvdWw= IHByZXY= IFRhYmxl YWN0cw== cmlvcnM= dGFi IHN1ZmZlcg== IG5lcnY= IG1haW5zdHJlYW0= IFdvbGY= IGZyYW5jaGlzZQ== YmF0 IGRlbWFuZHM= IGFnZW5kYQ== IGRvemVu IGNsaW5pY2Fs aXphcmQ= IE9w dGQ= IHZpc2l0ZWQ= IFBlcmhhcHM= IGFjdG9y IGRlbGlj IGNvbnRyaWJ1dGU= IGluamVjdA== IEVz YWNjbw== IGxpc3RlbmluZw== IGNvbmdyZXNz ZXBlbmRlbnQ= IHByZW1pdW0= IDc2 IElyaXNo IGFzc2lnbmVk IFBoeXM= IHdvcmxkd2lkZQ== IG5hcnJhdGl2ZQ== b3R5cGU= bW9udA== YmFzZQ== IEJvd2w= IEFkbWluaXN0cmF0aW9u IHJlbGF0aW9u IEVW Q1A= IGNvdmVycw== IDc4 IGNlcnRpZmlj IGdyYXNz IDA0 cGlyYWN5 aXJh IGVuZ2luZWVyaW5n IE1hcnM= IHVuZW1wbG95 IEZvcmVpZ24= c3RyYWN0 IHZlbg== IHN0ZWFs IHJlcGxpZWQ= IHVsdGltYXRl IHRpdGxlcw== ZGF0ZWQ= IGpveQ== YXVz IGh5cGVy YWt1 IG9mZmljaWFsbHk= IFByb2R1Y3Q= IGRpZmZpY3VsdHk= cGVyb3I= IHJlc3VsdGVk cmliZWQ= bGluaw== d2hv fn5+fg== IFNwZWVk IFZpZXQ= V2luZA== IEJhcmFjaw== IHJlc3RyaWN0aW9ucw== IFNoYXJl IDE5OTU= aXRpb25hbGx5 IGJlYXV0eQ== b3B0 IG1hcHM= IENS IE5hdGlvbg== IENydXo= V2lsbA== IGVsZWN0cmljaXR5 IG9yZw== IGJ1cmQ= IHZpb2xhdGlvbg== IHVzYWdl IHBlcm1pdA== IENocm9u IEZhbnQ= IG5hdHVyYWxseQ== IDA3 IHRocm93bg== IEF3b2tlbg== IGFsaWVu IEhlcm8= IEtlbnQ= IFJpY2s= cmlrZQ== IHBhY2U= fSx7Ig== R0w= IHBvaXNvbg== IFRvd2Vy IGZvcm1hbA== YWx5c2lz IGdlbnVpbmU= IGtpbA== YXZlcg== IHByb2NlZHVyZQ== IFByb3A= aW50ZW5kbw== IE1haW4= YXNhbnQ= IHRyYWluZWQ= R2FtZQ== IExvYWQ= IE1B IGNydWNpYWw= IGxldHM= IEZS IGNoYW1waW9u MTAx IENvbmZlcmVuY2U= IHdyaXRlcnM= IGNvbm5lY3Rpb25z IG9rYXk= aXJtcw== IFJhbmQ= IGVuY291bnRlcg== IEJ1ZmY= IGFjaGlldmVk IGNoZWNrcw== aXNjb25z IGFzc2lzdGFudA== IHdoZW5ldmVy IEFjY2Vzcw== IFVy Ymlu IGNsb2Nr aXNw b3BoZXI= IGJvcnJvdw== IG1hZA== IHBlcnNvbmFsaXR5 b25seQ== SVNU YWJhbWE= IGdhaW5z IGNvbW1vbmx5 IHRlcnI= IGh5cG90 IHJlbHk= IHRpc3M= aXNjb25zaW4= IHJpZGlj ZnVuY3Rpb24= IE9yZWdvbg== IHVuY29t cmF0aW5n ZWxhbmQ= IE5D IG1vb24= YW5ub24= IHZ1bG5lcmFibGU= dXRpdmU= wqDCoMKgwqA= IFJhZGlv IHdlc3Rlcm4= c2VjdA== IFRvbnk= IG9jY3Vycw== IE9z IEhvbg== w60= IHZlc3NlbA== IFNjb3RsYW5k IGRpc2NyaW1pbmF0aW9u IHN1YnNlcXVlbnQ= c3RyaW5n IGZhbnRhc3k= IFNoYWRvdw== IHRlc3RpbQ== V0U= aXRp cmFz IGJvYXQ= IG1hcmtz IG9yZGluYXJ5 IHJlbg== IHJlcHJlc2VudGF0aXZl IHBldGl0aW9u IDcz IGFkdmVudHVyZQ== IGlnbm9yZQ== IFBoaWxhZGVscGhpYQ== IFNhdg== VlA= IGZhY3Rvcnk= IHRhc2tz IGRlcHJlc3Npb24= emVk Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4= IFN0b3Jt IGNvZ24= IGVsaWdpYmxl IHJlZHVjaW5n dmlh IDA1 IHN0cmlraW5n IGRvbGxhcg== aG8= T1Y= IGluc3RydW1lbnQ= IHBoaWxvc29waHk= IE1vb3Jl IEF2ZW51ZQ== IHJ1bGVk IEZyb250 SU5F IE1haA== IHNjZW5hcmlv IE5BU0E= IGVub3Jt IGRlYnV0 IHRlYQ== VG9kYXk= IGFic2VuY2U= U2lt IGhhbQ== bGVlcA== IHRhYmxlcw== IEhlYXJ0 TUk= S2U= cmVxdQ== VkQ= bWFw IGNoYWlybWFu IHB1bXA= IHJhcGlkbHk= dmk= IHN1YnN0YW50aWFs RVA= ZGVz Y2hhbnQ= aWxpcHA= IFNhbnRh cmllcnM= YW5jaGVzdGVy TG9hZA== IENhc2U= IHNhdmluZw== IDc0 IEFGUA== ZXJuaW5n b3VuY2Vk IE1pbm5lc290YQ== IFdhcw== IHJlY3J1 IGFzc2Vzc21lbnQ= IEJyb24= VUU= IGR5bmFtaWM= IGZ1cm4= dWxhdG9y IHByb3BhZw== aGlnaA== IGFjY29tbW9k IHN0YWNr IFN1cw== d3JpdA== IHJldmVu IEdvZGQ= IFplYWxhbmQ= YWJz IGJydXQ= IHBlcnBldA== aG90 IGhhcmRseQ== IEJ1cm4= 44K5 IHN0eQ== IHRyYW5zYWN0aW9ucw== IGdhdGU= IHNjcmVlbnM= IHN1Ym1pdHRlZA== IDEwMQ== IGxhbmd1YWdlcw== dWdodA== ZW1lbg== IGZhbGxz IGNvYw== gqw= IHN0cmlrZXM= cGE= IGRlbGliZXI= IElN IHJlbGF4 YW5uZWxz IFNlbmF0b3I= IGV4dHJlbQ== IH0s IERlYg== IGJlbGw= IGRpc29yZGVy Y3V0 IGlPUw== IGxvY2tlZA== IGVtaXNzaW9ucw== IHNob3J0bHk= Il0= IEp1ZGdl IFNvbWV0aW1lcw== IHJpdmFs IGR1c3Q= IHJlYWNoaW5n RmlsZQ== wq/Cr8Kvwq8= aW5vaXM= IEphc29u IHNhdGVsbA== YXJldA== IHN0YXRpb25z IGFncmlj IFRlY2hub2xvZ3k= Y29tZXM= IFVuZm9ydHVuYXRlbHk= IENoaWxkcmVu IGFwcGxpZXM= YXN0ZWQ= IGFuZ2Vy YWlsYWJpbGl0eQ== IERhbWFnZQ== IGNvbXBhcmU= IFN0YW5kYXJk IGFpbWVk IEJh YW5ndWFnZQ== IHJlZ3VsYXRpb24= IGp1cnk= IGFpcnBvcnQ= IHNlY3Rpb25z IFByaW5jZQ== ZW1lZA== IG1lZGljaW5l IGhpdHRpbmc= IHNwYXJr b2x2ZXM= IGFkcw== U3RhdGU= IGZvb2Rz IHJlcGxhY2VtZW50 IGNoaWNrZW4= IGxvd2VzdA== IG1pbmRz IGludm9sdmVz dWk= IGFycmFuZw== IHByb2NlZHVyZXM= IFdoaWNo aXZlcnNhcnk= IGJpbGxz IGltcHJvdmVtZW50 IGluZXY= IGV4cGVjdGF0aW9ucw== IGludGVsbGVjdHVhbA== IHNwYWNlcw== IG1lY2hhbmlzbQ== MjUw YnJlYWs= IFpl IFRlbm4= IEJhbHQ= IGJhcnJlbA== IHN0YXRpYw== bWFubg== UG9saWNl IHRpcHM= IGhhbmRsaW5n Y3Vz b2RlZA== aWx0b24= aXJ5 IGpvdXJuYWxpc3Rz b3Vyc2U= IGNvbWlj IG5vbWluZQ== SVRZ IHZlcnN1cw== IGxvb3A= IHN1cmY= IEluZHVzdA== IEh1bnRlcg== IGJlbGllZnM= aXNhbg== IHNldHVw IGJyZXc= aW1hZ2U= IGNvbXB1dGVycw== Zm9s fSwi IE1lZGFs IHRheHA= IGRpc3BsYXllZA== IGdyYXY= IGZpc2NhbA== TW9u IE1vc2Nvdw== IEtvbmc= IENlbnRyZQ== IGNhbWVyYXM= IE1ycw== IEhheQ== IGF2ZXI= IEtlbGx5 cHk= IHJlcXVpcmVtZW50 IGVudGl0bGVk b21iaWU= IHNoYWRvdw== YWdpYw== IEFr IGVsaXRl IGRpdmlkZWQ= IGhlYWRpbmc= IGNvcGllcw== IGxvc3Nlcw== IHZpdA== a2Vk IEJyeQ== IGFucw== IFN0ZWFt IHJlcG9ydGVy aGVpbQ== IEl0ZW0= IHN1cGVyaW9y ZG9u ZXJlbnQ= w7Y= IHRoZXJhcHk= IHBlYWs= IE1vZGVs IGx5aW5n IGdhbQ== emVy cml0dGVu IHJlc3BvbnNlcw== IGNvbnNpZGVyYXRpb24= IEJpYmxl IGxveWFs IGluc3RhbnQ= IHBt IEZvcmVzdA== w7w= IGV4dGVuZA== IGNvbnZpY3RlZA== IGZvdW5kZXI= IGNvbnZpbg== IE9haw== Y2hlY2s= IHNjaG9sYXJz cGVk IG92ZXJzZQ== VG9w Y291bnQ= IEFyaw== wrc= IDA2 IExB bWQ= IExhdGlu aW1lbnRhbA== IENQVQ== IHN1YnN0YW5jZQ== IG1pbm9yaXR5 IG1hbnVmYWN0dXJpbmc= RXI= b2NvbGF0ZQ== IGF0dGVuZGVk IE1hbmFnZXI= cmF0aW9ucw== IGFwcHJlY2lhdGU= b215 R0JU aWRlbmN5 Qkw= IGd1YXJhbnRlZQ== cG9zaXRpb24= IG9jZWFu Y2x1ZGU= IGhlYWRlZA== IHRhcGU= IGxvb3Nl IGxvZ2lj IHByb3Zlbg== IHNwaXI= IGFkbWl0 aXNh IGludmVzdGlnYXRl IDE5OTQ= c3lsdg== IExvc3Q= Y2VzdA== IDcx IHJlcXVlc3RlZA== IHdpbmRvd3M= IFBva8Op IFdpdGhvdXQ= TWV0 IGJlaGF2aW91cg== IHJlYWRlcg== IGh1bmc= IEtlZXA= IHJvbGVz IGltcGxlbWVudGVk IGJsYW5r IHNlcnZlcw== IEpheQ== IGNpdGVk IEZyaWVuZA== cHJvZml0 YXBvbg== IHJlcGFpcg== aXRlbQ== YXJyYXNz IGNyaXRpY3M= YWRp IEZhdGhlcg== IHNob3V0 IGZvb2w= IDg4 IHByb2R1Y2luZw== IGxpYg== IHJvdW5kcw== IGNpcmNsZQ== IHByZXBhcg== IHN1Ym1pdA== IG5pYw== bW9ycm93 44Or VW5kZXI= IHZpdGFs YXRlcm4= IHBhc3N3b3Jk IHB1YmxpY2F0aW9u IHByb21pbmVudA== IHNwZWFrcw== IGJhcnM= IGRlZXBlcg== IE1pbGw= cG9ydGVk IHdpZA== IGJ1dHRlcg== IHNtb2tpbmc= IGluZGljYXRlcw== S2V5 cm9wcmk= IEZpbGU= YWxsaW5n YXN0aW5n IFJ1cw== IGFkag== IDc5 YXZhbA== IHByZXN1bQ== YnVyZ2g= b25pYw== IGZ1cg== IHBvbGxz aWth IHNlY29uZGFyeQ== IG1vbnN0ZXI= aWdz IEN1cnJlbnQ= RXZlbnQ= IG93bmVyc2hpcA== ZW5kYXI= IGFycml2ZQ== IFRheA== IG51bGw= IFByaXY= IHRocm8= IGtpc3M= Y2F0 IHVwc2V0 YW5nbGU= aXRjaGVz ZWN0b3I= b2xvZ2lzdHM= IEdhbGF4eQ== IGNvcnJ1cHRpb24= IGhpbnQ= ZW50ZXI= IEhvc3BpdGFs IGdyZWF0bHk= IGJlZ3Vu ZXN5 IHNvaWw= IEFudG9u IG1haW50ZW5hbmNl 44Op IGRvemVucw== IGh1bWFuaXR5 IEFsYWJhbWE= IHJvbQ== d29ydGg= YXBpbmc= c3lsdmFuaWE= bGFo IGdhdGhlcmVk R0E= IGF0dGFja2luZw== Zm91bmQ= IFNxdWFyZQ== IGFyYml0 aWN0aW9ucw== IFdpc2NvbnNpbg== IGRhbmNl IFNhaW50 YXJjaHk= IGJhc2ViYWxs IGNvbnRyaWJ1dGlvbnM= IGxpdGVyYXR1cmU= IGV4aGE= cGVydHk= dGVzdA== IGJhYg== IGNvbnRhaW5lcg== bGV0dGVy IGZhbGxlbg== IHdlYnNpdGVz IGJvdHRsZQ== IFNhYw== IGJyZWFzdA== IFBM IHZldGVyYW4= IGludGVydmlld3M= IEFsZQ== IGJhbm5lZA== ZW5nZXJz IFJldm9sdXRpb24= aW50aA== IGNvbmNlcm5pbmc= SVZF IGV4cGVuc2Vz IE1hdHRoZXc= IENvbHVtYmlh ZHM= aXN0YW5jZQ== IGVudGl0eQ== Li4uIg== IHJlbGlhYmxl IHBhcmFsbGU= IENocmlzdGlhbnM= IG9waW5pb25z IGluZHU= bG93 IGNvbXBldGU= IHRob3JvdWdo IGVtcGxveWVk IGVzdGFibGlzaG1lbnQ= aWdlbg== IENybw== IGxhd3llcnM= IFN0YXRpb24= VEU= IExpbmQ= IFB1cg== aXRhcnk= IGVmZmljaWVuY3k= 4oCQ IEx5 IG1hc2s= IGRpc2FzdGVy IGFnZXM= RVJF ZXNpcw== IEhvbGQ= IGNhc3VhbA== YmxlZA== IGVuYWJsZWQ= IEVudmlyb25tZW50 IEludGVsbGlnZW5jZQ== aXBlcg== IE1hcA== IEJF IGVtZXJnZWQ= aXNkb20= IGNhYmlu IHJlZ2lzdHJhdGlvbg== IGZpbmdlcnM= IHJvc3Rlcg== IGZyYW1ld29yaw== IERvY3Rvcg== ZXR0cw== IHRyYW5zcG9ydGF0aW9u IGF3YXJlbmVzcw== SGVy IGF0dGVtcHRpbmc= T2Zm IFN0b3Jl w4PDgsODw4LDg8OCw4PDgg== IEtub3c= IGRlZmVuY2U= IHNjYW4= IFRlbg== IENoYWly IFBI IEF0bGFudGE= IGZ1Y2tpbmc= IGFuc3dlcmVk Ym4= IEthcg== IGNhdGVnb3JpZXM= IHJhdGlvbmFs IGN1c3Q= IHJvYm90 IGNvcnJlY3RseQ== IGdpZg== IGdyYXBoaWNz bWlj IGdyb3VuZHM= IE9wcA== aWF0ZQ== IGRpc3RyaWJ1dGVk IHNhbmN0aW9ucw== IGNoYWxsZW5naW5n dXRv IGluZ3JlZGllbnRz IGludml0ZWQ= IGZvdW5kZWQ= IFJlcXU= ZGVk IGJvd2w= IGJyb3RoZXJz IEhh SU8= IHdhZ2Vz aW1vcmU= b2NpYWw= IHNlZWQ= YXRpdmVseQ== IGFkZHJlc3Nlcw== IElvd2E= YWJldGg= IGF0dGl0dWRl aXNk Y2hpbGQ= IG1vbGU= IGRpc2NvdmVyeQ== eWFyZA== QnI= IDgy IHN1cHBsaWVz ZWxsaW5n IGRpc3Rpbmd1 Q1I= IHJlY2VwdA== IHZlcnQ= IHN3aW0= YmVj ZG9vcg== IFllYWg= IGdhbA== IGludGVyYWN0 IEVTUA== IENT YW1wcw== IGNvbnZpbmNlZA== IG9iamVjdGl2ZQ== IGRpc2g= IFBob3Rvcw== bGFk IGRvd250b3du b2ls aW5jdGlvbg== IHRvbW9ycm93 IENPTQ== IHN1cnZpdmFs c2hvdA== IHNldHRsZW1lbnQ= Q29ucw== IFhib3g= aW50ZXJlc3Q= IFNN YXJnbw== ZW5lc3M= IGV0aG5pYw== YmVyZWQ= TWlu IFRvaw== IGluY2VudA== IENvbW1hbmQ= IG1haW50YWluZWQ= IGJyZWFrcw== YnJpZGdl YXRhcg== YWdn IEZpbmFsbHk= dW5pY2lw IE9udA== bGVmdA== IHJlY29nbml0aW9u ICov IFBlcnM= IHdlbGY= IGFkZHJlc3NlZA== IEthbnNhcw== IHZpcnVz IHdoZXJlYXM= IHBhcGVycw== cmFtcw== IE1pbmlzdHJ5 IHBsZWFzdXJl IGFjcXVpcmVk IGR1cmF0aW9u anBn IGNhbG0= IE5ITA== IGJ1cm5pbmc= IGZvbGRlcg== aWNrZWQ= IFB5 IElsbGlub2lz Q2xhc3M= IEdvZGRlc3M= IHBlcmZvcm1pbmc= IHdlbGZhcmU= amFy SW50ZXI= IGxpbg== IGVuaGFuY2U= IG5vdGlvbg== ZmFyZQ== eXBlcw== IEFyZWE= IGNhbm5hYmlz IERpZWdv ZnM= IE1hbmNoZXN0ZXI= Y29tbQ== aW5pdGU= IGNvdmVyaW5n IFNvdW5k IDE5NjA= IDg0 ZWxlY3Q= emluZw== IGNpdGl6ZW4= IHBob25lcw== IHJhaWQ= IGlnbm9yZWQ= IE9iamVjdA== IHVwbG9hZA== Y2FyZA== IG1vZGlmaWVk IHJvb21z aWFo cmFuZ2U= aGVhc3Q= YWNodXM= IHN1Z2dlc3Rpbmc= 4oCL Z3JhZGU= RWw= IGNsb3RoaW5n IHJo IEhhbg== dW5pdHk= ZW5jaW5n IEF1c3Rpbg== c2VjdXRpb24= dHJh ZGVt IFF1YWw= IGhlYXZlbg== IHN0YWdlcw== IHdlZGQ= cGx1cw== aWZpY2lhbA== IEltbQ== IEhv aWV0aWVz IHBocmFzZQ== IGJyaWxs YWN0b3J5 IHByb3ZpZGVycw== IHNpbGVuY2U= IGFlcg== IEFJ IEFkdmVudHVyZQ== IHBsYXRmb3Jtcw== IGRlbW9uc3RyYXRlZA== IGludGVyZg== aW5ndG9u IHJhY2Vz IGdyYWRl dWx0YW5l IFRocm91Z2g= ZmFsc2U= IGJvdw== IEFC IGZsYXZvcg== IGhpc3Rvcmlj Z292 IGNvbG91cg== IHZpZXdlZA== IEVtYWls ZWxjb21l IGludGVydmVudGlvbg== IGRpdmVyc2l0eQ== IHBlcmlvZHM= IHJldmVyc2U= IFZlcnk= IHF1b3Rl IExlZnQ= dGhyb3VnaA== IHNjcmV3 IGxhbmRpbmc= IHBpbGw= IHdldA== IHByb3Rlc3RlcnM= IHJlcGVhdA== YXZlZA== ZXJr IHNhbGFyeQ== IFBlbm5zeWx2YW5pYQ== U3RpbGw= IG1heW9y IGtpdGNoZW4= IGZlYXR1cmluZw== IE11c2V1bQ== IFRvdXJuYW1lbnQ= IEZhbA== IHNlcnZlcnM= VUM= IGFueWJvZHk= aW1n IFRyYWRl aXh0dXJl dGhlbGVzcw== IGZpbmFuY2U= IGNsb3Npbmc= IFBhdHJp aWFj YWJlbA== ID4+ b3JvdXM= IGZpcm1z c2NyZWVu dW5h IGVtYmFycmFzcw== dWxzZQ== IGxldHRpbmc= IHRocmV3 aWxleQ== IGNoYW5uZWxz bGFu IFZlZ2Fz IHNlYXI= IGZhbnRhc3RpYw== YXJyZQ== dXp6bGU= IERlcg== VGhvc2U= IHN3aW5n IHNoZWV0 aW5kZXg= Y292ZXI= b2dhbg== IHZhcmlhYmxlcw== IFRlY2g= IHNwb2tlbg== YWNoZWw= IERh IE1vdW50YWlu IGxvYWRlZA== IGZvb3RhZ2U= dmVyc2lvbg== IHVubA== IFBob2VuaXg= IHRocm93aW5n IGZpcmluZw== IHRyYWNraW5n IHdpZHRo IHN0cnVnZ2xpbmc= cm9vbXM= b3Rpb24= IG1vbnRobHk= IFNlcnZlcg== IGVnZ3M= b3Blbg== TUM= IDE5OTM= IGhpcmVk IHN0YXllZA== IEFsbGVu IHN0cm8= IDk4 c3RlcA== IFR1cmtpc2g= IGZhYnJpYw== aXN0aW5n IERvbQ== IGRhdGVz IHByb24= IGJhc2tldGJhbGw= IGx1Y2t5 IEFyYWJpYQ== IGFzc3VtZWQ= ZXN0eQ== IGFmZmFpcnM= IGdsYWQ= IEluZGVlZA== IEZB IFdvcmQ= IGpvaW5pbmc= aWZpY2U= cHJlYWQ= aXJ0cw== IFNlbGVjdA== IHBvcHVsYXRpb25z YXdhcmU= IG5vc2U= IGNvbXBsYWludHM= c3RhcnQ= IHNjb3Jpbmc= VGhhbmtz IG1pbmluZw== IHZpc2l0b3Jz U0g= IGRhbWFnZWQ= IGNoYXJhY3RlcmlzdGljcw== IFBlbnQ= REM= IDgz IFNpeA== cmF0ZXM= IGZsYWdz IEJyZXc= ZG9n TWFyaw== Ly8vLw== IGV4ZWN1dGlvbg== IGpva2U= cGhvbmVz IHRlc3RpbW9ueQ== IG9ic3Q= UUw= IEN1dA== IHN0dWRpZWQ= IE5pbnRlbmRv aWNrZXQ= IE5CQw== IGxhZA== IEJyYQ== IE1vaA== IGtlcm5lbA== IG92ZXJ3aGVsbWluZw== IGFnZWQ= IGFwcGxpY2FibGU= IENvbmQ= IHJvYWRz IEJsb2Nr bWFkZQ== b2RnZQ== IGNvbW1hbmRz IG9mZmljZXM= dmVsYW5k IHR1dA== IHJlY2VpdmVy IEZybw== IHNob3BwaW5n IGlQ IFN0cmU= IEFCQw== IGVudGVydGFpbm1lbnQ= IEJvdw== b3J0ZWQ= TWM= IHJlYWRz Z3JhZA== IENvbGxlY3Q= IOKIkg== IENhcGl0YWw= ZWRlcmF0aW9u IGVtcGxveWVy IGludm9sdmVtZW50 IGFueGlldHk= YWxpYQ== IHJvb2Y= IEFtb25n IERlbW9jcmF0 IHN0YXRz IFZpbGw= IGNvbnN0aXR1dGlvbmFs IHJlZmVycmluZw== aXR0eQ== IHRhY2tsZQ== b3V0dWJl IGJhY2tlZA== IEhvbmc= IEJyb2Fk IGVsZQ== IE90dA== IDE5OTI= aG91cg== YWNodXNldHRz Q2Fs IGRlZmVhdGVk IDgx ZXNw IHNlZW1pbmdseQ== d2Fz IEplbm4= IEt1cmQ= IGdlbmU= IGRpc2NvdW50 UmV0 RUNU KCk7 IGNsdWJz IHNpZA== IE1hcnNo Q2hlY2s= IHBw IEVhZw== aWRlc3ByZWFk IGJlaW5ncw== RlQ= IGludHJvZHVjdGlvbg== IENoYW5nZQ== QVJE IDExMA== YWRvd3M= aWVyY2U= IG1lYWw= YXV0aG9y IEJhbmc= bGFob21h IHJhbmtz MjAxMQ== Pz8/Pw== bWF4 IGNvbGxhcHNl IG9wZW5z IGVjaG8= IHNvcGg= IHJhY2lzdA== IGVub3Jtb3Vz IHdhdmVz IHRhcA== IGNvbXByZWhlbnNpdmU= Li0t IFJveQ== IGZhcm1lcnM= UmVsYXRlZA== YWlyZWQ= cm9uZXM= IENyaW0= IHByb3BvcnRpb24= IGRlc2lnbnM= IG5lZ290aWF0aW9ucw== IHZpcnR1YWxseQ== IEJhdG1hbg== IHdhcm4= IGxlZ2l0aW1hdGU= bWF0ZQ== IGNvbnZlbnRpb24= LCw= bmV0aWM= IFNE IGNvbnNpc3RlbnRseQ== IGNvbXBlbnNhdGlvbg== IHB1bmlzaG1lbnQ= IHll IHRpZQ== IEJ1cmVhdQ== aXJsZg== IEJ1 IEFyZW4= IFBoaWxpcHA= IGtuaWZl IG1lbW9yaWVz IFJvc3M= IGFuZ2xl IDg2 IFRodW5kZXI= IHJlbmQ= IFRvdXI= IGNvdW50cw== c3VuZw== IEltcA== IGVkdWNhdGlvbmFs IGFjY2Vzc2libGU= Q09N IGRyZXc= eWVy R2w= YW1pbmU= T1JU T0I= SUI= bWFzdGVy IHRyaWFscw== b2d5 aGFy IFRydXN0 IHByZWZlcnJlZA== aXJsZnJpZW5k IE5ldg== IGJpbg== IGNvdw== UGFnZQ== IHNpZ25hdHVyZQ== IEJM NzAw IHJldGlyZWQ= IGJ5dGVz IG5laWdoYg== IExlZ2VuZA== IGRldmFzdA== IHN1c3BlY3RlZA== aXNvbnM= IFBva8OpbW9u c2NhbGU= IGNhcGFiaWxpdGllcw== IHJldmVs IGNoZWVzZQ== ZHk= aWdyYW50 IGZhaWxpbmc= Yml0cw== IEhlcm9lcw== IEdob3N0 IFNjaWVudA== IGFwcG9pbnRlZA== dXJp IGluc3RpdHV0aW9u IGV4cGFuZGVk Z3JlZw== IG1vbml0b3Jpbmc= IHBvZGNhc3Q= IGNvYWxpdGlvbg== IDk2 Sm8= IHN0b2xlbg== IFNhYg== IHN0b3Bz IGhvbGlkYXk= IGludHI= Q2Fy QmxhY2s= IExHQlQ= IHdhcm1pbmc= IEFuZGVyc29u IDg5 IHByb2R1Y2Vy TWVk IGFjY3VyYWN5 IE1hcnZlbA== aXphYmV0aA== IFBhdHJpY2s= bW9ueQ== IG1pbmk= YWNsZXM= IG92ZXJ0 dGhleQ== IG1lbWJlcnNoaXA= IFZlbg== IGV4Y2g= IHJlbW92YWw= IERhdmU= VFk= bWFk IEZpbmQ= IGFkZXF1 IGVj IHRlZXRo IGVtb3Rpb24= IHBlcm0= IHNvbGVseQ== ZGI= IGV4dHJhb3Jk SUdIVA== Y2Fs IGd1aWRlbGluZXM= IGR5aW5n IHN1c3BlbmRlZA== IFByZW1pZXI= IEFudGhvbnk= ZWx2ZQ== IGRhZA== IEV0aA== IEZvb3RiYWxs IGFiYW5kb25lZA== IDw8 IG1hcmNo IGhvcnJvcg== 4oCmIg== IGNoaWxkaG9vZA== IGNhbXBhaWducw== IGx1bmNo IEFsYmVydA== YmxvY2s= 4paI4paI b3VuZGluZw== IGJvbmU= b3JnYW4= YWRlcnM= IEZsYXNo IERyaXZl IHRvbmlnaHQ= IHdhcnM= IEZM IGZvcm1hdGlvbg== Y29uc3Q= TmV3cw== IGNvbXBl b3Jpb3Vz IFN0YWZm IGRpc2N1c3Npb25z IFByb3RlY3Rpb24= IEphbQ== IGNyaXRlcmlh IGluc3RhbGxhdGlvbg== IGFjY29tcGxpc2g= aXp6YQ== IHB1Ymxpc2hlcg== IHJlc2N1ZQ== IFRyeQ== VUxM IFNvbQ== IEhvcA== b3JldA== dGhz b3Jkb24= IHBvY2tldA== IEludg== RG93bmxvYWQ= IENyaW1l IGJlbmU= IEd1aWRl IEFzc2VtYmx5 IHBhcmFtZXRlcnM= SUU= IEFsZXhhbmRlcg== IGNvbmNlcnQ= IFNjaGU= IHNob2Vz IHZpc2l0aW5n IHJlY2FsbA== IGJ1Yg== IHJ1cmFs IGNvbmNyZXRl IFJvcw== TmV4dA== UnVzcw== IGxvYW5z IFNoaWVsZA== IHRyZW0= aGVtYXQ= a2c= IEhhcnJpcw== aXNpdGlvbg== IE1vdmU= IEZD IGZhdGU= IENobw== IHRpcmVk IHByaW5jaXBhbA== aGlzdA== aWVuY2Vz YXRoeQ== IHNldmVudA== IG1vb2Q= IHN0cmF0ZWdpYw== IGRpc2Vhc2Vz IGZvcnVt IHRlbXBvcg== IGhlYWRxdWFydGVycw== UGFy aWdl ZmxpeA== IGd1aXRhcg== IDk0 T25seQ== IHJlbGVhc2Vz cm9waA== PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0= IDYwMA== IENvbnRpbnVl aWdhdGU= IENyaXQ= c3lzdGVt IGRpc2FibGVk IHVuZXhwZWN0ZWQ= aXRodWI= IHVuY2xlYXI= IEVzdA== IGNvbnRyYWQ= IHN0cmF0ZWdpZXM= dmVudHVyZXM= IHBhc3NhZ2U= QU1F IGltcHJvdmluZw== IHJldmVhbHM= IGRlY3JlYXNl b3Zh IGFubm95 IFNob3J0 IExpYnJhcnk= IGN5YmVy bmVsbA== IEh1cg== IENC IHBob3RvZ3JhcA== VUk= IHNlZA== R2U= IDg3 IGRpdmVyc2U= IGVuY291cmFnZWQ= IGNvbnNwaXJhY3k= IGJpcmRz IG9wZXJhdG9y IGhhbmRmdWw= IGNsYXNzaWZpZWQ= Pyk= IGRyYW1hdGlj IGludmVzdGlnYXRvcnM= aXRv IHdpZGVzcHJlYWQ= IFJvb20= LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ== IGNvbGxlY3RpdmU= IGpvdXJuYWxpc3Q= U3RyaW5n IHRlbXBlcmF0dXJlcw== aWxh IGd1aWQ= IGluc3BlY3Q= IG1pc3NpbGU= IE1heW9y IG1hbnVhbA== IHNpbXVsdGFuZQ== IHJhdGluZ3M= IHN1Y2s= IDk3 IHVuaXZlcnNhbA== IHBoYXJt IGRpc3J1cHQ= aWFubw== QVY= IGZ0 IHN0YXRpc3Q= b2xkcw== IFdhbGtlcg== cGhw IHVuZGVydA== IExhcw== aXNob3A= bnRpbA== cmVzaG9sZA== IFdoZXRoZXI= TXM= IGRlbnk= IENsb3Vk IHByb3ZpZGVy IHN1cnZpdg== IFVwZGF0ZQ== aGFz IG1pc3Rha2Vz Y2hhcmdl cGxlZA== cml0eQ== IG5vZGU= IE1hc3NhY2h1c2V0dHM= b29scw== bGljYXRpb24= IGZhaWxz ZW1hbGU= b3Jp YmFja3M= IHNoaXJ0 ICcn IE5BVA== IHdhdGVycw== ZWxzb24= IGVhc2U= IHNjYXI= IGNvbnRlbnRz bWluZA== IGNvbnRyaWJ1dGlvbg== IHNocg== IGhhbmRlZA== IHN0YWJpbGl0eQ== IHRyYXZl RW0= IG1pcnJvcg== MTIz IHdlaWdo IGZpY3Rpb24= b3V2ZXI= aXN0YW50 cml0aW9u IEZlZA== IHBoeXNpY2FsbHk= IHN0YWtl IEFydGljbGU= IEFyYw== IExld2lz IE1pbmQ= IGRlbW9uc3RyYXRl IHByb2ZpdHM= dmlzaW9u b21pYw== b2xpZA== IGJhdHRsZXM= IGRyaXZlcw== IGVhc3Rlcm4= IFNvbnk= ISEh YXJhdGlvbg== dmFyZA== IEdM cG9ydGF0aW9u IDky IGxhd21ha2Vycw== IHByb3RlY3Rpbmc= IEVQQQ== IHllYWg= IHNoYW1l b2xwaA== ZXZlbg== eGl0 IGF0dGFjaA== IHJlcHJlc2VudGluZw== IG9icw== IFV0YWg= aWZmcw== IEZyZWVkb20= w7M= QUs= IGluY2lkZW50cw== aXRhZ2U= IHZpZXdlcnM= Y2Q= IG1vdXNl IGNsYXI= IGFjY29yZGFuY2U= IGJvdA== Y29y IFN1bW1lcg== aGVsZA== IGlubm9jZW50 IGluaXRpYXRpdmU= b2xz X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18= IHNwb3Rz cGFjZQ== IGNvbnZlbnRpb25hbA== IGNvcnBvcmF0aW9ucw== IGJsb2NrZWQ= SEQ= YXR0ZXJlZA== IHJlZmVycw== IGJ1Y2s= IERpZ2l0YWw= MTIw IHRvcGljcw== VEY= xIE= YnJpZA== cmVlbWVudA== IHVuZGVybHlpbmc= IE1lbWJlcg== IGludmVzdGlnYXRpbmc= IHByZWduYW5jeQ== IHRvdWNoZG93bg== IEJhbmQ= IENhbGxlcg== IGluc3RhbmNlcw== UFA= d2E= R29vZA== IDE5OTE= IENvbGQ= IGZlYXJz IHJlbWFya3M= hpI= YXRhbA== IG1pdA== IGV4cGVyaW1lbnRz aXB0 Q29sb3I= aW5kdQ== VXBkYXRl IDkz QWc= IOU= YW5jb3V2ZXI= Qm90aA== IGp1ZGdlcw== T2JqZWN0 IHN0ZXJl dW1ibg== IHBhcnRpY2lwYXRpb24= IFN0YXJz IEplcmU= IHdlZWtseQ== IEJhbg== IGNvbnZlcnNhdGlvbnM= IFBpdHQ= dXo= IEluZGlhbmE= IEtpY2s= IGluZmVjdGlvbg== IGhlcm9lcw== IHNldHRsZWQ= IHN0cmlw IGhhbA== IGR1bXA= IFNjaQ== IGxlcw== IHJlZmVyZW5jZXM= IFVSTA== IEJyaWRnZQ== IHdhbnRpbmc= Rm9yY2U= IGV4Y2x1cw== TWVhbndoaWxl bW4= IGdlbnRsZQ== bWFrZXI= c2VuYWw= IEdybw== b3VyaQ== IFJhaW4= IEFsbGlhbmNl IGxpZnQ= ZWxh U0Q= IENsZXZlbGFuZA== IHJhbmtlZA== IHN0YWRpdW0= IGRlYWRseQ== 5Lg= IHJpZGluZw== YXJpYQ== IEFybW9y IGRvY3VtZW50YXRpb24= IEdyZWVjZQ== cmVlaw== IGxlbnM= IFNh IGdyb3Nz IEVtZXI= YWdlcnM= IER1Yg== IFJo IEFNRA== IGFycml2YWw= IGRlc2VydA== IHN1cHBsZW1lbnQ= IFJlc3A= IGtuZWU= IG1hcmdpbg== Zm9udA== b2dn MjAxMA== IFBpcg== IFByb20= aXZhbHM= IGludGFrZQ== IGRpZmZlcmVudGx5 dWdz IGJpdHM= Y2x1ZGVk IHNlYXJjaGluZw== IER1 dW1ibGU= IGZ1bmN0aW9uYWw= IEJhbHRpbW9yZQ== IENvdWxk IGRlc2lyZWQ= IGNpcmN1aXQ= IEx5bg== IEdP IEZhbHNl cmVwcmU= Jzo= YWx0aWVz IG1pbmlt IGRyb3Zl IFNob3VsZA== IGhpcA== IHByb3M= IHV0aWxpdHk= IE5hdHVyZQ== IE1vZGU= UHJlc2lkZW50 b3Bw cmF0 Zm9ybWFuY2U= IGNvbmNlbnRyYXRpb24= IGZvbnQ= IEJ1ZA== IGFtaWQ= IHJldmVycw== IE1M QmFy IGludGVyYWN0aW9u IGp1cmlzZA== IHNwZWxscw== ZGVw Zmls IGNpdmlsaWFucw== dXR0ZXI= IENvb3Blcg== IEJlbG93 IGVudHJhbmNl IGNvbnZlcnQ= IGNvbnRyb3ZlcnN5 b3dlcmVk IGNvbnRyYXJ5 IGFyYw== IEV4ZWN1dGl2ZQ== IE9mZmljZXI= IHBhY2thZ2Vz IHByb2dyZXNzaXZl d2lkdGg= IHJlc2VydmVk dm9s IFNhbXN1bmc= IHByaW50ZWQ= IGNlbnRlcnM= IGludHJvZHVjZQ== IEtlbm5lZHk= IG9kZHM= IHN1cmVseQ== IGluZGVwZW5kZW5jZQ== IHBhc3NlbmdlcnM= cmVwcmVuZQ== IEJlaA== IGxvdmVz IEVTUE4= IGZhY2lsaXQ= IGlkZW50aWNhbA== IGRvY3Q= IHBhcnRuZXJzaGlw Y29uZg== IEhpZGU= IGNvbmZ1c2Vk IENvdw== TWVu IHdyZXN0 IElyYXFp IGhvbGVz IFN0dWRpZXM= IHByZWduYW50 aGFyZA== IHNpZ25hbHM= SVg= IHB1bGxpbmc= IGdyYWR1YXRl IG5vbWluZWU= RGF0ZQ== IHBlcm1pdHRlZA== IOKCrA== IE9rbGFob21h U3RhcnQ= IGF1dGhvcml6ZWQ= IGFsYXJt IENvcw== dmFu IGdlbmVyYXRpb25z Y3VsYXI= IGRyYWdvbg== IFNvZnR3YXJl IEVkd2FyZA== IGNvbnRyb2xsZXI= U2Vu Z2VyZWQ= IFZpaw== IGFwcHJvYWNoZWQ= VGhhbms= IGNhbmNl IGZvcm11bGE= IFNtYWxs IHdlYWtuZXNz IHJhbXA= aXR1ZGVz anVk IGJyaWxsaWFudA== IGFjY3Vz c291cmNl IDgwMA== IEV2aWw= U3c= IGhvbWVsZXNz d2Vlaw== aWVucw== cmljcw== IFRoaXJk VE8= IG9yZ2FuaWM= IHByZXNlbnRhdGlvbg== YWdo IERvd25sb2Fk dmF0aW9u IGFzc2VtYmx5 b3JhYmxl aG9sZGVycw== IEJlcm5pZQ== IEhlbHA= IHRvbmc= IEZpZ2h0 IGJlYWNo Qm9vaw== IExpYw== IHJ1c2g= IFJvdW5k b3Vw IE1hcng= IGNhbGN1bGF0ZWQ= IERldmls IFNhcmFo IG9jY2FzaW9uYWxseQ== IGJ1bGxldA== QXZhaWxhYmxl Z2F0ZQ== IDkx IGhvc3A= IHByb21pc2Vz IEhJVg== IFN0YWRpdW0= IFN0b2Nr IENvcnBvcmF0aW9u Z2FnZQ== Tkc= IENyZWRpdA== IHNuZQ== aWJs IGFjY3Vt c3VjaA== IHRlcnJvcmlzdHM= IGNvbnNjaW91c25lc3M= IFpo IGRyYW1h b29sYQ== cGlyYXRpb24= IGxhYm91cg== IE5pbg== IHV0dGVy IGRlbW9jcmF0aWM= IGFzc2Fzcw== aWxhdGlvbg== IGdlc3Q= IGFicm9hZA== IG1ldGFi IHNvcnRz IGZsYXY= VUI= IG1n IE5vdGhpbmc= IE9k IG11c2ljYWw= MjAwOQ== IGRyb3Bz b2NhdGVk YXRlcmFs MDAwMDAw IGdyZQ== IGVxdWFsaXR5 IGJ1cmRlbg== IHZpZw== IExlYWRlcg== LS0tLS0tLS0tLS0t IGNlcmVtb255 IGZpZ2h0ZXI= IGFjdG9ycw== IOY= YW1hbg== Rmk= IGFsaWdu cHV0ZXI= IGVsZGVy IE5TQQ== IHJlcHJlc2VudGF0aW9u IE9udGFyaW8= SVRI dXNhbGVt IGhhcmFzc21lbnQ= aXR6ZXI= IHN5bXA= IGJveGVz IERS IG1hbmlmZXN0 YXRyZQ== IF4= IGRpZXM= bGV0b24= IG1pc3Npb25z ZXRoZQ== IHJlc29sdmU= IGZvbGxvd2Vycw== IGFzYw== IGtt bG9yZA== YW1tZWQ= IHNpbGVudA== IEFzc29jaWF0ZWQ= IHRpbWluZw== IHByaXNvbmVycw== IEtpbmdz IEZpdmU= IHRvd2Vy IGFwcHJvYWNoZXM= IHByZWNpc2VseQ== IGJ1cmVhdQ== IE1vdGhlcg== IElzcw== IGtleWJvYXJk aXR1YWw= IGZ1bmRlZA== IHN0YXlpbmc= IHBzeWNob2xvZ2ljYWw= IG1pbGU= IExlb24= IEJhcmI= d2lsbA== IHdpZGVy IEF0bGFudGlj IHRpbGw= IFJvbWU= cm90 IGFjY29tcGFu IGZsb3Vy YWNv V29ybGQ= IEV4cHJlc3M= IFl1 Q29y IHBsZWFzZWQ= cGFydHk= IHBvaW50aW5n IGluZmxhdGlvbg== IHJveQ== ICks YWluZXI= IHdlZGRpbmc= b3Jtb24= IHJlcXVpcmluZw== IHF1YWxpZmllZA== IHNlZ21lbnQ= RU5E IHNpemVz ZWFscw== IGNvcnJ1cHQ= YXNzYWRvcg== IGNlbGVi IGRyZWFtcw== IE1lc3M= IGNoZWNraW5n IFZlcnNpb24= IHByZXBhcmluZw== IGFjdGl2ZWx5 IERpZmY= IGx1eA== IFdpbnRlcg== YWN0ZXJpYQ== IE5F IGRlcHV0eQ== IHRyYW5zZ2VuZGVy IHN1bW1hcnk= IGluaGVy ZXJpZXM= Y2hhcg== IFlhbg== IGtub2Nr IFBhdGg= IGxpcA== cm9sbGVy IGltcHJlc3Npb24= IGNlbGVicmF0ZQ== IHNsaWRl IGd1ZXN0cw== IGNsaXA= RlM= IHNhdmluZ3M= IGNhcHRhaW4= IGxlZ2FjeQ== IERlbnZlcg== IHdvdW5kZWQ= dGFib29sYQ== QUNU IHB1cnN1ZQ== IG94eQ== IHE= IHNlbWk= IE5lZWQ= IEFmZmFpcnM= IG9ic2M= IGNoZWNrZWQ= IGR1YWw= Q29kZQ== IE1E bGVt dWx0eQ== IMKp IEVsaXphYmV0aA== IGNlbnR1cmllcw== YXJkZWQ= c3Jj IGV2aWRlbnQ= ZW5uaXM= YXRpbg== IHVuZW1wbG95bWVudA== IE1hcmlv IGludGlt Q2hyaXN0 IGJpb2xvZ2ljYWw= IHNvbGRpZXI= IEFkZGVk IG1hdGg= IEdpbA== IGJpYXM= IGRhdGluZw== IE9jZWFu IG1pY2U= TXVz aGlyZQ== IFRlcw== U2VydmVy bGltaXRlZA== U2l6ZQ== IG1ldGVycw== IHJvY2tldA== ZXNzZWU= IGNlcnRpZmljYXRl IElyYW5pYW4= QVNT IGdyaWQ= RGVj IHJvbGxpbmc= Y29tbXVu IFN3ZWRlbg== YnVyeQ== IHRpc3N1ZQ== IHJhY2lzbQ== IExvY2Fs IG15c3Rlcnk= IGV4YW1pbmU= IHN0ZW0= IHNpdHM= IGhvcGVk b3Rpbmc= IGRpYWxvZ3Vl IHBlcnN1 V2F0Y2g= bGF5 TUFO IGNocm9uaWM= IFBvcnRsYW5k bWFya2V0 IFNFQw== IHBhcmFsbGVs IHNjYW5kYWw= IGNhcnJpZXM= IHBoZW5vbWVub24= aHVtYW4= YWNrZXI= IE94 IHJldGlyZW1lbnQ= dGFpbm1lbnQ= b3ZpZQ== IEdlYXI= IGR1dGllcw== IGRvc2U= IHNjcm9sbA== TUI= aW5m IHNhdWNl IGxhbmRzY2FwZQ== cmVkZGl0 IENoYW1waW9uc2hpcA== IFJlZGRpdA== YWxpZA== IGNvaW4= IG92ZXJz IHBvc3Rpbmc= YWJvdXQ= IGZlbA== YW5keQ== IGJvbGQ= IGZvY3VzaW5n ZWZmZWN0 R1I= IGRlZW1lZA== IHJlY29tbWVuZGF0aW9ucw== IHN0ZXBwZWQ= IHZvdGVy IERlZXA= IEluc3RhZ3JhbQ== IG1vZGVyYXRl IE1hcnlsYW5k IHJlc3RyaWN0ZWQ= IE1C IENoYWxs IHRvYg== IGNpcg== IE9jYw== IEV2ZXI= IGNvbGxhcHM= SU5GTw== PS0= IFBpY3Q= IEFjY291bnQ= bmM= IG91Z2h0 IGV4cG9ydA== IGRydW5r KCc= IHdpc2U= IE1vcnQ= bmVjZXNz IGFuY2VzdA== IEluY3Jl IGZyZXF1ZW50 bWly IGludGVycHJldGF0aW9u IGRlcGVuZGVudA== IGNvaW5z IEJvbA== VmlkZW8= IEp1c3Rpbg== IGZhdGFs IGNvb2tpbmc= IGNvbmZ1c2lvbg== aXBoZXI= IGN1c3RvZHk= IE1vcmdhbg== b21hY2g= IEdvdmVybm9y IHJlc3RhdXJhbnRz ZWxpbmc= IGFja25vd2xlZGdlZA== IHRoZXI= IGdlbmVz Y2hpbmc= SGV5 IHRhY3RpY3M= IE1leGljYW4= IHZlbmQ= IGhlcw== cXVlcg== IG5vdGluZw== IENhbWVyb24= IHRhcmdldGluZw== cm9jaw== IGNyZWRpdHM= IGVtb3Rpb25z IHJlcHJlc2VudGF0aXZlcw== bmV3cw== IGxlZ2lzbGF0aXZl IHJlbW92aW5n IHR3ZWV0ZWQ= IENhcnRlcg== IEZpeGVk IGZvcmNpbmc= IHNwZWFrZXI= IG1hbGVz IFZpZXRuYW0= bGluZWQ= IGNvbmNlcHRz IHZvaWNlcw== b2ly IFRyaWI= V2hl IEplcnVzYWxlbQ== IFNhbnQ= IGN1bA== IGxhZHk= IEhhd2Fp IGFydHM= IElubg== IE1hY2hpbmU= IEVtcGVyb3I= IHNsb3Q= Z2x5 IFByb2Nlc3M= SUlJ IGF0aGxldGVz IFRlbXBsZQ== IFJlcHJlc2VudA== IHByZXNj IHRvbnM= IGdvbGRlbg== IHB1bmNo IEdS aXZlcnBvb2w= IGVuYWN0 IGxvYmJ5 IG1vcw== IHBpY2tpbmc= IGxpZmV0aW1l IGNvZ25pdGl2ZQ== RWFjaA== em8= IGR1Yg== IGNvbnNpc3Rz b2xu IGZlc3RpdmFs YW1vdXM= IGludGVsbGln d29yZHM= IFNtYXJ0 IGRlbGU= IGxhcHQ= IG1hZ2ljYWw= IFNpbg== YnVz dXJpdGllcw== aWdodGg= IFJ1Ynk= IFN1cmU= b2x2aW5n IGp1bg== T1NU IGltcG9zZWQ= IGFzdHJvbg== IGNvcnJlbA== IE5T IEtpdA== IEZ1dHVyZQ== YnVybg== IGltbXVuZQ== b2N1cw== IGNvdXJzZXM= IFN0cmluZw== IGxlYW4= IGdob3N0 IG91dGNvbWVz IGV4cGVuc2U= IGV2ZXJ5ZGF5 IGFjY2VwdGFibGU= QWg= IGVxdWlwcGVk IG9yYW5nZQ== RlI= IER1dGNo VGhvdWdo IFJhbms= UVU= IFJvYmVydHM= d2hhdA== cmVuZA== IGRpc2FwcGVhcg== IHNwYXdu IExhbQ== b2lz IGRlc2VydmU= IG1pbmltYWw= IG5lcnZvdXM= IFdvdWxk IHJvb2s= IFZhbmNvdXZlcg== IHJlc2lnbg== c2hpcmU= IFdvcmtz IEJ1aWxk IGFmZm9yZGFibGU= IEdhcnk= IEFyZW5h IGhhbmdpbmc= IGltcGxpY2F0aW9ucw== IFNvbmc= IG1haW50YWluaW5n IGd1YXJkcw== Q09O IGRlcml2ZWQ= IGV4ZWN1dGVk IHRoZW9yaWVz IHF1b3RlZA== IEFuZHJl b2dh c2VsZXNz aW5mbw== IEJlbGc= IHRlYXJz IFN1cnY= IGJpcnRoZGF5 aWdpb3Vz aW1tZXI= IHNwZWN0cnVt IGFyY2hpdGVjdHVyZQ== IHJlY3J1aXQ= YXJtYQ== VGFibGU= IG1vbnN0ZXJz IEdvdg== IGRlc3RpbmF0aW9u IGF0dHJhY3RpdmU= IGZvc3M= IE1vcmVvdmVy IHByZXNlbnRz VEhF IHJlcGx5 cHRvbg== IGN1bQ== IGRlbGlnaHQ= IGFmZmVjdHM= IGRvbmF0aW9ucw== IFRveQ== IEhpbQ== TUVOVA== IG92ZXJjb21l aXRjaGVk IEZhbnRhc3k= IEhhdA== IEJlYXN0 Ym90dA== IGludmVzdGlnYXRpb25z UnVu IGh1bnRpbmc= ZGk= ZnVuZA== IHNlc3Npb25z ZXN0eWxl IHBvcnRyYXk= b2lkcw== WWVhaA== IGNvbW11bmljYXRl IGNvbWVkeQ== IFlhbmc= IGJlbHQ= IE1hcmluZQ== IHByZWRpY3RlZA== UGxheQ== IGltcG9ydGFudGx5 IHJlbWFya2FibGU= IGVsaW1pbmF0ZQ== RGF2aWQ= IGJpbmQ= VklE IGFkdm9jYXRlcw== IEdhemE= aW1w REI= IE5h IFNpbWlsYXI= SUVT IGNoYXJpdHk= dmFz bWF0aA== IOKW b2tlcg== bmR1bQ== IGNhcHM= IEhhbA== MjAwMA== ZWFu IGZsZWV0 IHJlY3Jl UmlnaHQ= IHNsZWVwaW5n aWppbmc= a2luZA== IGRlc2lnbmF0ZWQ= w6Q= IGFuaW1hdGlvbg== a2Vl IEludHJvZHU= IC8+ IGRlbGF5ZWQ= IHRyZW1lbmQ= IGN1cmlvdXM= VXNl IGxlY3Q= ZGFt IGlubm92YXRpb24= IFBvaW50cw== IGxvYWRpbmc= IGRpc3B1dGU= Y3RpYw== aXJkcw== IEJZ IG51cnM= IFZhbHVl SU9OUw== IEh1bQ== IHRlbXBsYXRl bWVycw== IGFwcGVhcmFuY2Vz IEVudGVydGFpbm1lbnQ= IHRyYW5zbGF0aW9u IHNha2U= IGJlbmVhdGg= IGluaGli IGV1cm8= YWJldGVz IHN0dWR5aW5n IE1hcw== IHBlcmNlaXZlZA== IGV4YW1pbmVk IGVhZ2Vy IGNvYWNoZXM= IGltcGVy Y2hp IHByb2R1Y2Vz Iiku IEV2ZXJ5b25l IG11bmljaXA= IGdpcmxmcmllbmQ= IGhpcmU= IFZpY2U= IHN1aXRhYmxl b3B5 IGluZXF1 IER1a2U= ZmlzaA== Zmlyc3Q= IE9icw== IGludGVyaW9y IEJydWNl IFJ5 IGFuYWx5cw== IGNvbnNpZGVyYWJsZQ== IGZvcmVjYXN0 IGZlcnQ= b3JzaGlw IERydWc= IEFMTA== OiI= dGh1cg== IE1haWw= IGJhbGxvdA== IGluc3RhbnRseQ== IENoYW5uZWw= IHBpY2tz IDE5ODk= IHRlbnQ= b2xp IGNpdmlsaWFu Ymxpbmc= ZWxsbw== YnU= IGluY2g= IGxvZ28= IGNvb3BlcmF0aW9u IHdhbGtz IGludmVzdG1lbnRz IGltcHJpc29u IEZlc3RpdmFs IEt5 IGxlZ2FsbHk= IGdyaQ== Y2hhcmc= U2w= IHRocmVhdGVuaW5n ZHVjdGlvbg== Zmxvdw== IGRpc21pc3NlZA== aWJyYXJpZXM= Y2Fw ZWxl IE1jRw== IEhhcnZhcmQ= IENvbnNlcnZhdGl2ZQ== IENCUw== cG5n IHJvb3Rz IEhhdmluZw== dW1ibGVk IEZ1bg== XC8= IFNlYXJjaA== cGxleA== IGRpc2N1c3Npbmc= IGNvbnRpbnU= IFRhaQ== IFdpaw== RnJlZQ== Zml0 IHJlZnVzZQ== IG1hbmFnaW5n IHN5bmQ= aXBlZGlh d2Fsaw== IHByb2Zlc3Npb25hbHM= IGd1aWRhbmNl IHVuaXZlcnNpdGllcw== IGFzc2VtYg== dW50dQ== RmluYWxseQ== QVNF IEF1dG8= IEhhZA== IGFubml2ZXJzYXJ5 TEQ= IER1cg== IFVsdGltYXRl aWhhZA== cHJvZHVjdA== IHRyYW5zaXQ= IHJlc3RvcmU= IGV4cGxhaW5pbmc= IGFzc2V0 IHRyYW5zZmVycmVk IGJ1cnN0 YXBvbGlz IE1hZ2F6aW5l IENyYQ== IEJS Z2dlZA== IEhF TWljaA== YmV0 IExhZHk= eWx1bQ== ZXJ2ZXM= IG1lZXRz d2hpdGU= TG9n IGNvcnJlc3BvbmRpbmc= IGluc2lzdGVk R0c= IHN1cnJvdW5kZWQ= IHRlbnM= IGxhbmU= IGNvaW5j aG9tZQ== IGV4aXN0ZWQ= ZWN0ZWQ= IERvdWJsZQ== bGFtbQ== IHNrZXB0 ZXhw IHBlcmNlcHRpb24= aWV2 IEJlaW5n b2Z0 IGFkb3B0 Ljo= XTs= V2luZG93cw== IHNhdGVsbGl0ZQ== QVNI IGluZmFudA== ZGVzY3JpcHRpb24= IE1lYW53aGlsZQ== Y20= b2Nh IFRyZWF0 YWN0b3I= IHRvYmFjY28= IE5vcm0= ZW1wdGlvbg== IGZsZXNo IGpl b29w IEhlYXZlbg== IGJlYXRpbmc= YW5pbQ== IGdhdGhlcmluZw== IGN1bHRpdg== R08= YWJl IEpvbmF0aGFu IFNhZmV0eQ== IGJhZGx5 cHJvdA== IGNob29zaW5n IGNvbnRhY3RlZA== IHF1aXQ= IGRpc3R1cg== IHN0aXI= IHRva2Vu RGV0 IFBh IGZ1bmN0aW9uYWxpdHk= MDAz c29tZQ== IGxpbWl0YXRpb25z IG1ldGg= YnVpbGQ= Y29uZmln TlQ= cmVsbA== YmxlbQ== IE1vbQ== IHZldGVyYW5z IEh1 IHRyZW5kcw== YXJlcg== IEdpdmVu IENhcHRpb24= bWF5 QVNU IHdvbmRlcmluZw== IENsYXJr bm9ybWFs IHNlcGFyYXRlZA== IGRlc3A= c3RpYw== YnJldw== IHJlbGF0aW5n IE5paw== IEZhcm0= IGVudGh1c2k= Z29vZA== ZGVi IGFjdGl2aXN0 IG1hcnQ= IGV4cGxvc2lvbg== IEVjb25vbWlj TGluaw== IGluc2lnaHQ= IGNvbnZlbmllbnQ= IGNvdW50ZXJwYXJ0 c3VwcG9ydA== IFZpcnQ= YWdlbg== IFRlbm5lc3NlZQ== IFNpbW9u IEF3YXJk T0NL IEZpZ3VyZQ== IG92ZXJzZWFz IHByaWRl IENhcw== bm90ZQ== bWc= Q3VycmVudA== IGRpc3BsYXlz Y29udGVudA== IHRyYXZlbGluZw== IGhvc3BpdGFscw== IEZpbmFuY2lhbA== IFBhc3Q= IGRlZmVuZGFudA== IHN0cmVhbWluZw== bWJsZQ== IEJlcmxpbg== dWtp IGRpc3RyaWJ1dA== IGFudGli IGNob2NvbGF0ZQ== IENhc3RsZQ== IGludGVycnVwdA== IFJvdw== IGNvbnZlcnNpb24= IGJ1Z3M= IFJhdGhlcg== bGllc3Q= TFk= IEplYW4= Y29tbW9u YWto IDEzMA== b3R0b24= IERlYW4= IGFtZW5kbWVudA== IGdhbWVwbGF5 IFdhcnJlbg== b2Rh IGhpZ2hsaWdodHM= IGlycmU= IE5BVE8= IGJhbGxz IGRlbWFuZGluZw== VVJF IEx1a2U= RmlndXJl c3RvcA== b25pYQ== em9uZQ== aXplcnM= IFdS IGF3YXJkZWQ= IHJlZ3VsYXRvcnk= IEhhcnQ= IFNO cGxpbmc= IHNvdXI= IFBpeGVs dXNpdmU= IGZldA== IFNlbnQ= IGF1dG9tYXRpYw== IGZlcg== dmVybm1lbnQ= IEtoYW4= VE9O ZmF0aGVy IGV4dHJhb3JkaW5hcnk= dGhyb3A= IFB5dGhvbg== IEdQVQ== IHNleHVhbGx5 IGRlc2t0b3A= aXRpdml0eQ== IEFudG9uaW8= IG9yaWVudA== IGVhcnM= b2JieQ== b3VzZXM= dmVydGlzZW1lbnRz IG1hbnVmYWN0dXJlcnM= aWNpZW50 bWludXRl IGNvbnZpY3Rpb24= IGdhcmRlbg== cHVibGlj IHNhdGlzZmllZA== Zm9sZA== T0s= IGluaGFi IFRoaW5r IHByb2dyYW1tZQ== IHN0b21hY2g= IGNvb3JkaW4= IGhvbHk= IHRocmVzaG9sZA== IHJoZXQ= IHNlcmlhbA== IGVtcGxveWVycw== IEV2ZXJ5dGhpbmc= cmFo IGJvdGhlcg== IGJyYW5kcw== VmFsdWU= IFRlZA== IFBsYW5ldA== IHBpbms= IEZ1cnRoZXJtb3Jl c2E= UEU= cmVjaw== IFVTRA== b3R0ZQ== ICYm IGxhbmRlZA== Z2V0cw== IHByb2R1Y2Vycw== IGhlYWx0aGNhcmU= IGRvbWluYW50 IGRlc3Rybw== IGFtZW5kZWQ= Y2hyb24= IGZpdHM= IFN5ZA== IEF1dGhvcml0eQ== QVRDSA== IGZpZ2h0cw== IExMQw== IC0tLQ== IENvcnA= IHRveGlj c3BlY2lmaWM= IENvcm4= IENoZWw= IHRlbGVwaG9uZQ== IFBhbnQ= IG15c3RlcmlvdXM= YXVuY2g= b2RveA== bWVkaWE= IHdpdG5lc3Nlcw== YWd1 IHF1ZXN0aW9uZWQ= IEJyZXhpdA== IFJlbWVtYmVy ZW5leg== IGVuZG9yc2U= aWF0cmlj IElkZW50 IHJpZGljdWxvdXM= MTEw IHByYXllcg== IHNjaWVudGlzdA== IDE5NTA= IEFxdQ== IHVuZGVyZ3JvdW5k IFVGQw== bWFyZQ== IExhdGVy d2ljaA== IHN1YnNjcmli IGhvc3Rz IGVycg== IGdyYW50cw== YW50b20= IHN1bW1vbg== ZWFybHk= IENsZWFy IFByaW0= IHN1c3BlbnNpb24= IGd1YXJhbnRlZWQ= YXBwZXI= IHJpY2U= IFNlYW4= IFNoaW4= IHJlZmVyZW5kdW0= IGZsZWQ= cnVzdA== IDM2MA== dGVyeQ== IHNob2NrZWQ= QlI= IE9pbA== IEFsbGFo IHBhcnRseQ== IGlnbm9y IHRyYW5zbWlzc2lvbg== IGhvbW9zZXh1YWw= aXZlcnNhbA== IGhvcGVmdWxseQ== 44Kk IGxlc3Nvbg== TGVn IC4u WWV0 dGFibGU= YXBwcm9wcmk= cmV0dA== IGJvYXJkcw== IGluY29ycmVjdA== IGJhY3Rlcmlh YXJ1 YW1hYw== IHNuYXA= Lici IHBhcmFk dGVt aGVhcnQ= IGF2YWlsYWJpbGl0eQ== IHdpc2RvbQ== ICgr IHByaWVzdA== IMKgIMKg T3Blbg== IHNwYW4= IHBhcmFtZXRlcg== IGNvbnZpbmNl ICglKQ== cmFj IGZv IHNhZmVseQ== IGNvbnZlcnRlZA== IE9seW1waWM= IHJlc2VydmU= IGhlYWxpbmc= IE1pbmU= TWF4 IGluaGVyZW50 IEdyYWhhbQ== IGludGVncmF0ZWQ= RGVt IHBpcGVsaW5l IGFwcGx5aW5n IGVtYmVk IENoYXJsaWU= IGNhdmU= MjAwOA== IGNvbnNlbnN1cw== IHJld2FyZHM= UGFs IEhUTUw= IHBvcHVsYXJpdHk= bG9va2luZw== IFN3b3Jk IEFydHM= Jyk= IGVsZWN0cm9u Y2x1c2lvbnM= IGludGVncml0eQ== IGV4Y2x1c2l2ZWx5 IGdyYWNl IHRvcnR1cmU= IGJ1cm5lZA== dHdv IDE4MA== UHJvZHU= IGVudHJlcHJlbmU= cmFwaGljcw== IGd5bQ== cmljYW5l IFRhbQ== IGFkbWluaXN0cmF0aXZl IG1hbnVmYWN0dXJlcg== IHZlbA== IE5p IGlzb2xhdGVk IE1lZGljaW5l IGJhY2t1cA== IHByb21vdGluZw== IGNvbW1hbmRlcg== IGZsZWU= IFJ1c3NlbGw= IGZvcmdvdHRlbg== IE1pc3NvdXJp IHJlc2lkZW5jZQ== bW9ucw== IHJlc2VtYg== IHdhbmQ= IG1lYW5pbmdmdWw= UFQ= IGJvbA== IGhlbGlj IHdlYWx0aHk= IHJpZmxl c3Ryb25n cm93aW5n cGxhbg== YXN1cnk= 4oCmLg== IGV4cGFuZGluZw== IEhhbWlsdG9u IHJlY2VpdmVz U0k= ZWF0dXJlcw== IEFuaW0= UkVF UHV0 IGJyaWVmbHk= cml2ZQ== IHN0aW11bA== IGBgKA== IF9f IGNoaXA= IGhheg== IHByaXpl IFRoaW5ncw== QUNF dWxpbg== ZGljdA== b2t1 IGFzc29jaWF0ZQ== b2NrZXRz eW91dHViZQ== U3Rvcnk= YXRlZ29yeQ== IG1pbGQ= YWlsaW5n IFll T3JpZw== IEth b3JpZw== IHByb3BhZ2FuZGE= IGFub255bW91cw== IHN0cnVnZ2xlZA== IG91dHJhZ2U= QVRFRA== IEJlaWppbmc= cmFyeQ== IGxlYXRoZXI= IHdvcmxkcw== IGJyb2FkZXI= MTI1 aWRhbA== IEJldHRlcg== IHRlYXI= RXh0 IHByb3Bvc2Fscw== IGl0ZXI= IFNxdWFk IHZvbHVudA== bWk= RGlk IFB1 cGlu IHNwZWFrZXJz IGJvcmRlcnM= IGZpZ3VyZWQ= PSc= IHNpbXVsdGFuZW91c2x5 YWVkYQ== IGNoYXJnaW5n IHVyZ2Vk IGNvbmo= MjU2 IEdvcmRvbg== bWVyY2U= IGRvY3VtZW50YXJ5 U2hhcmU= aXRvbA== T05F IEdhcmRlbg== aGF0dA== IFRob21wc29u YW5lb3Vz YXBvcmU= IHRhbmtz IGxlc3NvbnM= dHJhY2s= IG91dHN0YW5kaW5n IHZvbHVudGVlcnM= IHNwcmF5 IG1hbmFnZXJz bGFyZ2U= IGNhbXBz IGFydGlmaWNpYWw= IFJ1 IGJhZ3M= dGhhbA== IGNvbXBhdGlibGU= IEJsYWRl IGZlZA== IGFyZ3Vlcw== Rkk= IHVuZmFpcg== IGNvcm4= IG9mZnNldA== IGRpcmVjdGlvbnM= IGRpc2FwcG9pbnRlZA== IENvbnZlbnRpb24= IHZpZXdpbmc= TUU= b2NpdHk= IHRvd25z IGxheWVycw== IHJvbGxlZA== IGp1bXBlZA== IGF0dHJpYnV0ZQ== IHVubmVjZXNz aW5jb2xu IHN1cHBvc2U= IE5ldGhlcg== Y2hh IGJ1cmllZA== IHNpeHRo QmVu cmVzc2luZw== T1VS IHdvdW5k IGN5Y2w= IG1lY2hhbmlzbXM= IGNvbmdyZXNzaW9uYWw= IEVsZW1lbnQ= IGFncmVlbWVudHM= IGRlY29y IGNsb3Nlc3Q= IE1pdA== R29vZ2xl fX0= IG1peHR1cmU= IGZsdWlk U2lnbg== IFNjaG9sYXI= IHBpc3Q= YXNrZXQ= YWJsaW5n IHJhY2luZw== aGVybw== cmllbA== YXNzeQ== IGNoZWFwZXI= YmVu IHZlcnRpY2Fs YW1hY2FyZQ== IFJlYWRpbmc= Z21lbnRz IGhlbGljb3A= IHNhY3JpZmljZQ== YXlh cGFyZW4= VkE= IExlcw== IFN0dWRpbw== IHZpb2xhdGlvbnM= IEFubmE= YWNlcg== 6b4= IFJhdA== IEJlY2s= IERpY2s= IEFDVA== IGNvbXBvc2l0aW9u IHRleHR1cmU= IE93bg== IHNtYXJ0cGhvbmU= IE5B IGZvcmI= aW1wb3J0 IGRlZmVuZGluZw== aWxzdA== cmVy IG9o IEplcmVteQ== IGJhbmtpbmc= Y2VwdGlvbnM= IHJlc3BlY3RpdmU= Ly4= IGRyaW5rcw== IFdp IGJhbmRz IExpdmVycG9vbA== IGdyaXA= IEJ1eQ== IG9wZW5seQ== IHJldmlld2Vk cGVydA== IHZlcmlmeQ== IENvbGU= IFdhbGVz TU8= IHVucHJl IHNoZWx0ZXI= IEltcGVyaWFs IGd1aQ== IERhaw== IHN1Z2dlc3Rpb25z IGV4cGxpY2l0bHk= IHNsYXZl IGJsb2NrY2hhaW4= IGNvbXBldGluZw== IHByb21pc2luZw== U09O IHNvY2Nlcg== IGNvbnN0aXR1dGlvbg== NDI5 IGRpc3RyYWN0 IFVzZXI= ZXNpZGVz IE1ldGhvZA== IFRva3lv IGFjY29tcGFuaWVk Q2xpZW50 c3Vy YWxvZw== IGlkZW50aWZpY2F0aW9u IGludmFzaW9u YXNtYQ== IGluZHVzdHJpZXM= cHBlcnM= IHN1YnRsZQ== IFVuaXQ= bmF0dXJhbA== IHN1cnZpdmVk IGZsYXc= mIU= IEhvbGw= IGRlZmljaXQ= IHR1dG9yaWFs IENoYW5jZQ== IGFyZ3Vpbmc= IGNvbnRlbXBvcmFyeQ== IGludGVncmF0aW9u Zm9yd2FyZA== IHR1bQ== aXRpcw== IGhpZGluZw== IERvbWlu IFRhbg== IEJ1aWxkaW5n IFZpbg== IHNwb2tlc3BlcnNvbg== IE5vdGVz IGVtZXJnaW5n IHByZXBhcmF0aW9u IHByb3N0 IHN1c3BlY3Rz IGF1dG9ub20= RGVzY3JpcHRpb24= IGRlYWx0 IFBlYXI= IHN0ZWFkeQ== IGRlY3JlYXNlZA== IHNvdmVyZQ== IENsaW4= IGdyYWR1YWxseQ== b3JzZXM= IFdBUg== U2Vydg== 44Ki aHI= IGRpcnR5 IEJhcm4= IEJD IGRpbA== IGNhbGVuZGFy IGNvbXBsaWFuY2U= IGNoYW1iZXI= YmI= IHBhc3Nlbmdlcg== YXRlZnVs IFRpdGxl IFN5ZG5leQ== IEdvdA== IGRhcmtuZXNz IGRlZmVjdA== IHBhY2tlZA== YXNzaW9u IGdvZHM= IGhhcnNo SUNL bGVhbnM= IGFsZ29yaXRobQ== IG94eWdlbg== IHZpc2l0cw== IGJsYWRl IGtpbG9tZXQ= IEtlbnR1Y2t5 IGtpbGxlcg== UGFjaw== ZW5ueQ== IGRpdmluZQ== IG5vbWluYXRpb24= YmVpbmc= IGVuZ2luZXM= IGNhdHM= IGJ1ZmZlcg== IFBoaWxs IHRyYWZm QUdF IHRvbmd1ZQ== IHJhZGlhdGlvbg== ZXJlcg== bWVt IEV4cGxpY2l0 6b6N IGNvdXBsZXM= IHBoeXNpY3M= IE1jSw== IHBvbGl0aWNhbGx5 YXdrcw== IEJsb29t IHdvcnNoaXA= ZWdlcg== dXRlcg== IEZP IG1hdGhlbWF0 IHNlbnRlbmNlZA== IGRpc2s= IE1hcmc= IC8q UEk= IG9wdGlvbmFs IGJhYmllcw== IHNlZWRz IFNjb3R0aXNo IHRoeQ== XV0= IEhpdGxlcg== UEg= bmd0aA== IHJlY292ZXJlZA== aW5nZQ== IHBvd2Rlcg== IGxpcHM= IGRlc2lnbmVy IGRpc29yZGVycw== IGNvdXJhZ2U= IGNoYW9z In0seyI= IGNhcnJpZXI= YmFibHk= SGlnaA== IFJU ZXNpdHk= bGVu IHJvdXRlcw== dWF0aW5n Rmls Tk9U d2FsbA== c2J1cmdo IGVuZ2FnaW5n IEphdmFTY3JpcHQ= b3Jlcg== bGlob29k IHVuaW9ucw== IEZlZGVyYXRpb24= IFRlc2xh IGNvbXBsZXRpb24= IFRh IHByaXZpbGVnZQ== IE9yYW5nZQ== IG5ldXI= cGFyZW5jeQ== IGJvbmVz IHRpdGxlZA== IHByb3NlY3V0b3Jz IE1F IGVuZ2luZWVy IFVuaXZlcnNl IEhpZw== bmll b2FyZA== IGhlYXJ0cw== IEdyZQ== dXNzaW9u IG1pbmlzdHJ5 IHBlbmV0 IE51dA== IE93 IFhQ aW5zdGVpbg== IGJ1bGs= U3lzdGVt aWNpc20= IE1hcmtldGFibGU= IHByZXZhbA== IHBvc3Rlcg== IGF0dGVuZGluZw== dXJhYmxl IGxpY2Vuc2Vk IEdo ZXRyeQ== IFRyYWRhYmxl IGJsYXN0 4KQ= IFRpdGFu ZWxsZWQ= ZGll SGF2ZQ== IEZsYW1l IHByb2ZvdW5k IHBhcnRpY2lwYXRpbmc= IGFuaW1l IEVzcw== IHNwZWNpZnk= IHJlZ2FyZGVk IFNwZWxs IHNvbnM= b3duZWQ= IG1lcmM= IGV4cGVyaW1lbnRhbA== bGFuZG8= aHM= IER1bmdlb24= aW5vcw== IGNvbXBseQ== IFN5c3RlbXM= YXJ0aA== IHNlaXplZA== bG9jYWw= IEdpcmxz dWRv b25lZA== IEZsZQ== IGNvbnN0cnVjdGVk IGhvc3RlZA== IHNjYXJlZA== YWN0aWM= IElzbGFuZHM= IE1PUkU= IGJsZXNz IGJsb2NraW5n IGNoaXBz IGV2YWM= UHM= IGNvcnBvcmF0aW9u IG94 IGxpZ2h0aW5n IG5laWdoYm9ycw== IFVi YXJv IGJlZWY= IFViZXI= RmFjZWJvb2s= YXJtZWQ= aXRhdGU= IFJhdGluZw== IFF1aWNr IG9jY3VwaWVk IGFpbXM= IEFkZGl0aW9uYWxseQ== IEludGVyZXN0 IGRyYW1hdGljYWxseQ== IGhlYWw= IHBhaW50aW5n IGVuZ2luZWVycw== TU0= IE11c3Q= IHF1YW50aXR5 UGF1bA== IGVhcm5pbmdz IFBvc3Rz c3RyYQ== 44O844M= IHN0YW5jZQ== IGRyb3BwaW5n c2NyaXB0 IGRyZXNzZWQ= TWFrZQ== IGp1c3RpZnk= IEx0ZA== IHByb21wdGVk IHNjcnV0 IHNwZWVkcw== IEdpYW50cw== b21lcg== IEVkaXRvcg== IGRlc2NyaWJpbmc= IExpZQ== bWVudGVk IG5vd2hlcmU= b2NhbHk= IGluc3RydWN0aW9u Zm9ydGFibGU= IGVudGl0aWVz IGNt IE5hdHVyYWw= IGlucXVpcnk= IHByZXNzZWQ= aXpvbnQ= Zm9yY2Vk IHJhaXNlcw== IE5ldGZsaXg= IFNpZGU= IG91dGVy IGFtb25nc3Q= aW1z b3dza2k= IGNsaW1i bmV2ZXI= IGNvbWJpbmU= ZGluZw== IGNvbXBy IHNpZ25pZmljYW5jZQ== IHJlbWVtYmVyZWQ= IE5ldmFkYQ== IFRlbA== IFNjYXI= IFdhcnJpb3Jz IEphbmU= IGNvdXA= YmFz IHRlcm1pbmFs LC0= T0g= IHRlbnNpb24= IHdpbmdz IE15c3Rlcg== 77+977+977+977+9 IFVubGlrZQ== dmFsaWQ= dmlyb25tZW50cw== IEFsaQ== IG5ha2Vk Ym9va3M= IE11bg== IEd1bGY= IGRlbnNpdHk= IGRpbWlu IGRlc3BlcmF0ZQ== IHByZXNpZGVuY3k= IDE5ODY= aHk= SU5E IHVubG9jaw== aW1lbnM= IGhhbmRsZWQ= IEVi IGRpc2FwcGVhcmVk IGdlbnJl IDE5ODg= IGRldGVybWluYXRpb24= U3RyZWFt aWtv YXB0ZXJz IGFja25vd2xlZGdl SmFu IGNhcGl0YWxpc20= UGF0 IDIwMjA= IHBhaW5mdWw= IGN1cnZl IGJvbWJz c3Rvcm0= IE1ldGFs ZW5jZXI= IEZpZw== IEFhcm9u YW5jaGVz IGluc3BpcmF0aW9u IGV4aGF1c3Q= dGFpbnM= YXNoaQ== IGRlc2NyaXB0 IHJpdHVhbA== IENoZWxzZWE= IHByb21vdGlvbg== IEh1bmc= IFdhcmQ= aXZh IEVU IHRvc3M= YWxsb3c= IEZyYW5jaXM= RGVw IGhhcHBpbmVzcw== IEdsYXNz IGJldGE= IHN0cmVuZ3RoZW4= TkU= b2E= IGJ1dHRvbnM= IE11cnJheQ== IGtpY2tlZA== UXVlc3Q= IFRhbGs= IFNldmVyYWw= IFplcm8= IGRyb25l dWxr IGNhbQ== IE1vYmlsZQ== IHByZXZlbnRpbmc= IHJldHJv IEF4 IGNydWVs IGZsb2F0 Liks IGZpbGluZw== IEdyYW50 IEJvcg== IHJpYg== IGNoYW1waW9uc2hpcA== IE1lcmM= IHN0eWxlcw== IGNha2U= IGJ1aWxkcw== IFNlbGY= aW94 IGVwaWM= b3lk QmVs IFN0ZXc= Lig= YWh1 IEJleW9uZA== IG91dHM= IHNvbG8= IFRyZWU= IHByZXNlcnZl IHR1Yg== QVJF cm9j IEltcHJv IFdyaWdodA== IGJ1bmQ= IHRyYWdlZA== IG9jY2FzaW9uYWw= Ymlhbg== U2Vjb25k cm9ucw== IGludGVyYWN0aW9ucw== Zm9ybWVk c2luZw== IG93bnM= IGhvY2tleQ== R2VuZXJhbA== IGxvZ2ljYWw= IGV4cGVuZA== IGVzY2Fs IEdyaWZm IENyb3du IFJlc2VydmU= IHN0b3BwaW5n IGV4Y3VzZQ== c2Vjb25k IG9wZXJhdGVk IHJlYWNoZXM= IE1hbGF5cw== IHBvbGx1dGlvbg== IEJyb29rbHlu IGRlbGV0ZQ== IGhhc2g= QmxvY2s= YWhh 4oCz IHNob3J0ZXI= cGllY2U= Pjwv IGhvcm0= IFdhdA== IEJyZWFr IHByb2hpYml0ZWQ= IGludGVuc2l0eQ== IEFsYW4= IGxpYWJpbGl0eQ== PyE= YW5kZWQ= IG5laWdoYm91cg== IENvbGxlY3Rpb24= IGZpcmVz IHJldm9sdXRpb25hcnk= Zmx5 IE9ybGVhbnM= V2hpdGU= IFdyaXQ= IERhd24= IHNldHRsZQ== IGV4ZWN1dGU= Qk0= IHNwb2tlc3dvbWFu IGxpZmVzdHlsZQ== IGNsaWNraW5n IEtpbGw= IExpYmVyYWw= IE5hemk= IHRyYWlsZXI= IG1vdW50YWlucw== IGRhbW4= emVz cGVz IHByZXNzaW5n IGJhaWw= IE9yZ2FuaXphdGlvbg== IHBpcg== IHRoaXJ0eQ== IGVsZWN0cmljYWw= IDExNQ== IFBvbHk= IFJhcA== IFN0cmlrZQ== IENhbm4= IGRlbWFuZGVk IGJhY2tpbmc= ZGVmYXVsdA== c3BlZWQ= IExlZ2lzbA== IG1vdGhlcnM= IEJvZHk= IHZhcmlhdGlvbg== Y2VkZW50ZWQ= cG93ZXJlZA== bGVhZGluZw== TmV2ZXI= IGdyYXZl IEFudGk= QVc= IGludGVydmlld2Vk IEdhYg== IEZhdA== IHJvb2tpZQ== dXU= IGRlcG9z aXhvbg== IGFtcGw= cmV0aW9u IEhlYXQ= IHBlYWNlZnVs U00= aWV2ZQ== IGRpdmVy IFZpY3Rvcmlh IG1pYw== cGRm IHN0YXRpbmc= IGx1bmc= IGNyaXRpY2l6ZWQ= IHZhY2NpbmU= IExvYWRpbmc= dXJzZQ== VGFrZQ== IEZyYW4= IFNvbGQ= IFJvYmlu IGRldGVjdGVk IFNjcmlwdA== IGFkanVzdGVk IHNlbmF0b3I= IG9wcG9zaW5n RXJyb3I= Q291bnQ= IGNvbmZsaWN0cw== IG93 IEFyZ2VudA== IG1hdGNoaW5n aGg= IFRyZWs= c3RhcnRlcg== Iiks IEFG b2Rlcg== eHh4eA== IEFsdA== YWNyZQ== IFBpY2s= IFNvbGFy IERhbA== T2N0 IEJhdHQ= IHNyYw== IGVuZ2FnZW1lbnQ= IGV4ZWN1dGl2ZXM= IGxpYmVydHk= amF2YQ== IHRhbGVudGVk aWdlbm91cw== IGNvbnNlY3V0 Li4uLi4= SW5mbw== IGhvcnJpYmxl IHN1cnByaXNpbmdseQ== ZmVlZA== aWNhdGluZw== IExFRA== IGZlbWFsZXM= U3RhdGlvbg== ZWxsZXI= IE9ha2xhbmQ= IG1lY2hhbmljYWw= aW9sb2d5 IFZhcg== IHJvYnVzdA== ZXR0aW5ncw== b3R0YQ== IHRoZW9yZXQ= IHJldGFpbg== a3dhcmQ= IGRh IGRlcGxveWVk ZGVs IEFuZHk= IHN1YnNjcmliZQ== d2Vi IG5h IE1pY2hlbA== IHBhcnRpYWxseQ== IENvbWV5 IGNyb3du IE1hag== IEJsdQ== cmF0b3I= RGF5 SU5U IGRvY3VtZW50ZWQ= IEdEUA== Z2k= Y2hlbGw= IGJydXRhbA== IEJhYg== c3RyYXRpb24= IHRoZWZ0 IHR1YmU= QEA= IHF1ZXJ5 IExpbmNvbG4= IHB1Ymxpc2hpbmc= IHdvcmU= b3JpY2Fs IHJpYw== IG5vdGFibGU= IHN1YnNlcXVlbnRseQ== bmV4 IG9ic2VydmU= IEJvZQ== IGNvZGVz bWFpbg== V0g= IFNM IHJlc2lkZW50aWFs YXZhbg== IG1hcw== YXJlc3Q= YWRlb24= T1VU IHNvcGhpc3RpYw== YW50ZQ== IGNlbnM= ICoq IG1vcnRhbGl0eQ== IHlvdXJz IG9jY2FzaW9ucw== IHJlY2FsbGVk IERyaXZlcg== IHZvY2Fs IGJhdGhyb29t IHNob3Bz IGNvbGxhYm9yYXRpb24= IE9iYW1hY2FyZQ== IENlbGw= Q2hhcg== U3VwZXI= Q3Jl IHRlbmRz IHRvcm4= IGVjb25vbWljcw== YXZlcnk= IFJhaWQ= IFNlbQ== IHNob3VsZGVycw== IGV4cGVjdGluZw== IGV4YW1pbmF0aW9u ZW5hbWU= IFVJ aWFiaWxpdHk= b2xhcw== IEFtYg== IERyYQ== IG1pZGZpZWxk IElD IGxheW91dA== IGZsb2F0aW5n Zmk= aXRhdGl2ZQ== IHRyZW1lbmRvdXM= INA= IGFidW5k V29yaw== IExpZ2h0bmluZw== IHNpbWlsYXJseQ== IGNvbnNlcnZhdGl2ZXM= IHByYXk= QkU= aXphcnJl IHRlbXB0 IGVtcGhhc2lz IE1ldHJv IGZpc2hpbmc= IG1hcnJ5 bmVn IFN0dWR5 IHJlY2s= IGRpc3Bvcw== b25pbmc= YnNpdGU= IHN1c3BpYw== IG1lcmNo IEdpYg== IERlc2NyaXB0aW9u IERWRA== d2hl IFllbWVu IGVudmlyb25tZW50cw== b290aW5n IE1vZGVybg== ZXU= IHJlZmxlY3Rz IGhvbmV5 IGFuYWx5c3Q= IGd1dA== ZGVj QWN0aW9u IGhvdXNlaG9sZHM= IHN0ZXI= IHRlbXBsZQ== IHJlZm9ybXM= IGZhdm91cml0ZQ== IGRlYWRsaW5l IExF VGhyZWU= IFdpdGhpbg== QXVn IG5pZ2h0cw== ZWx0YQ== IGludmFsaWQ= IEV4Y2hhbmdl IERlbGhp d2hlbg== aW5jb21l IPCf IHdpcmVsZXNz c2NyaWJl aXN0YQ== IGhvc3RpbGU= IGFsbHk= IGdpZw== IG91dGxldHM= IERvcg== RU1FTlQ= IGFzaA== IGFic3RyYWN0 T1JE IE1vdG9y IGFkdmlzZXI= aXN0bGU= IGJhc2Vz IGNvdXJ0ZXN5 IGNyb3NzaW5n IGNsZWFyZWQ= IHJlZnVnZWU= Y29zeXN0ZW0= IHRocm93cw== ZnVu Ym91cm5l ZGF5cw== IGRpc2FncmVl IE5hdGl2ZQ== IHJlZmxlY3RlZA== IEZhc3Q= IFllbGxvdw== IFNpbmdhcG9yZQ== IFJhdmVu IGVtYnJhY2U= IEt1 IENoZW4= IEVhcmx5 IGFwcG9pbnRtZW50 IE1pbmk= aXRlbWVudA== IHBsYWNpbmc= IGJpY3k= U1I= IHdoaXM= U1U= IGludmVzdGlnYXRlZA== IHBob3RvZ3JhcGhz Z2l0aHVi IEJlYXQ= IFJpbmc= aWdoZWQ= aWFy IGV2b2x2ZWQ= ZXJhbGQ= IGR1bg== IGh1Yg== SUFM IGVuY291cmFnaW5n IFByaW50 IERheXM= IHByb3NlY3V0aW9u IHBhbnRz YXp5 bGl2ZQ== IGZvc3NpbA== IEp1 IHJvY2tz dWRnZQ== IFJhY2U= IGdyZWV0 Ymll IGZpbGxpbmc= IExlbg== IGRpYWJldGVz IGZpcmVhcm1z dW1pbmc= ZW5lenVlbA== IEJC IGFjY2VwdGluZw== QVRI IHJlc29ydA== IGh1bnQ= cmlr dWNrZXI= YW1lbnRz IHN1c3RhaW5lZA== IGNyb3NzZWQ= IGJyZWFrZmFzdA== IGF0dHJpYnV0ZXM= bGVjdGVk YXRpbGU= IHZpYnI= IEthbA== YXJzb24= b3BsZXM= IHRvdWNoZWQ= IGRhbWFnZXM= IGltcHJlc3NlZA== cnVw IGFuY2g= IEFkYW1z SGVs IFZpY3Rvcg== IG1vdW50ZWQ= IEND IGRlbGljaW91cw== c3Bhbg== ZWxsYQ== IGVsYWJvcg== YW1wbGVz IGRlZmlj IGNvbnN0aXR1 dWF0ZXM= IE1pc3Npb24= IFRoZXI= IE1vbnN0ZXI= YmVz UmV1dGVycw== IEluZG9uZXM= aGlsbA== bXVuaXRpb24= IGNvbmZpcm1hdGlvbg== IENvbnNpZGVy YWNlbnQ= IGpldA== IEVtcGxveQ== IEdUWA== bmFu IFNwaWRlcg== IHByb2Nlc3Nvcg== IHBhdHJp IFBlbnRhZ29u IFJvYmluc29u IHJlYWxpc3RpYw== w7E= IGFwcGVhcmluZw== IHBpcGU= b21lZA== IGZydQ== IGF3ZnVs IGV2YWx1YXRpb24= IGludGVsbGlnZW50 IENpdGl6 IGZ1bmRyYQ== b2RpdW0= IHR3ZWV0cw== IHdvcm4= cHJpbmc= IGtpZG4= IHJlYmVscw== IEthbQ== IE5ldGhlcmxhbmRz IFNX IGFjcXVpc2l0aW9u IE1hbGU= 44Oq b21iaWVz IHRyYWRlbQ== IFN0YXR1cw== QnJl IFRISVM= IGFkdmVyc2U= IE5FVw== c2lnbg== IG9yZ2FuaXNhdGlvbg== ZW5j IEhhcnBlcg== YXBvcg== IE1lbWJlcnM= IFBlYWNl IEFpcnBvcnQ= IE90aGVycw== IHNjcmF0Y2g= IFBpbA== IHNlbnNvcg== IGFkb3B0aW9u IEhvdGVs IERyYWc= IGhvbmVzdGx5 IHlhcmQ= IEZvcmNlcw== IHBhdGVudA== IGJhc3M= IHF1aWV0bHk= IGJyZWF0aGluZw== IHBvc2U= aW9ycw== IEplc3M= c3RhdGlj SVRF T2ZmaWM= IGpldw== d2Nz IDE0MA== IHByZXZpZXc= aXBwaQ== IHVuZm9ydHVuYXRlbHk= b2tlbW9u IGhvcm4= IHJlYXNz IHBlZXI= b2NrZXI= IHVudG8= IEdyYXk= IGNsZWFuaW5n IGF0dHJhY3RlZA== MjAwNw== UG9pbnQ= a2lsbA== IEFncmVlbWVudA== dXJjaGVz IGhvcnI= IE1pc3Npc3M= IHdvcnRoeQ== IGZsb3dlcnM= dG93bg== ZGxs IHJlYWN0aW9ucw== IGRlY2U= IGluZGljYXRpbmc= TUQ= IHByZWZlcmVuY2U= IE1WUA== ZXNzaW9uYWw= IFRhcmdldA== Z2VuY2U= IEluZGlhbnM= IG1pc2M= IGZyZWVseQ== IG11c2NsZXM= IGxpbmV1cA== IGltcGFjdHM= b3VzaW5n b21p YWN1bGFy IGNvbnRyb2xsaW5n YWdpbmU= Y2VyeQ== aGVsbA== IHJhbmtpbmc= IE5pY2g= IEF2ZQ== MTI4 IGhpZ2h3YXk= IGluY29ucw== IGJpbmRpbmc= IHN0cnVnZ2xlcw== IFBpdHRzYnVyZ2g= IGdyYXk= cmlu IGNvbWljcw== IFNwb3J0 IHJlbGF0aXZlcw== IGZyaWdodA== IHByb2Jl IFBvcnR1Zw== IHZvYw== IHR1 IENvcnBz IHBvc3NpYmlsaXRpZXM= IHF1YWxpZnk= d2Nzc3RvcmU= IGxpYnJhcmllcw== IG1pZ3JhbnRz IGVudHJpZXM= IGNvbnNlY3V0aXZl dmFscw== IENoYWlybWFu IGhpbGw= SU1F IEdhcmQ= IGluZXF1YWxpdHk= Zm94 IFNhdmU= IGNvcnQ= Y2xhaW1lZA== IHRyYWl0cw== IHBvdXI= IG1pc3NpbGVz IGVzc2VuY2U= IHNlbmRz IGFsbGlhbmNl IHdpc2hlcw== IENocmlzdG9waGVy Qmln Tlk= IEphY29i c2Fu dXJyZWQ= IFNP bGx5 IGFkdm9jYXRl IEJvbmQ= ICIv VXNpbmc= IGRpc3RyaWN0cw== IEdhdGU= IEJpcg== cmlkZ2U= IE5heg== IFJz Ym9hcmRz IEdh IFJlYWdhbg== IGluZmx1ZW5jZWQ= MTAwMA== YXB5 IGNoYWxsZW5nZWQ= IGJhcmc= IGZhY3VsdHk= IEZpZg== IGFjcXVpcmU= QWM= IGluc2VjdA== IGluc3RydW1lbnRz IGxlYWY= dGhvZG94 TWVzc2FnZQ== IHRhbGU= IHRoZXJlYnk= IHRyYXA= IHN0cm9uZ2VzdA== IE1pbGl0YXJ5 aXNpYmxl IDE5ODQ= ZXRoZWxlc3M= IGZsZXhpYmxl IGtpbGxz IGZpbmlzaGluZw== IFNpemU= IHJlZHVjZXM= IGVwaWQ= IG9yaWVudGF0aW9u ZnVsbA== IHRyYWNl IGxhc2Vy IG9wcG9zZQ== IGVkaXRpbmc= IG1vbWVudHVt 5Lo= c2hvdw== Vkk= IExhZA== IDE5ODU= IG11cmRlcmVk OTAw dXRoZXI= IHByb2JhYmlsaXR5 IFBvbGw= IHJlbHVjdA== IENoZW0= IE1vbnRyZWFs IGFkZXF1YXRl IFBvbGFuZA== IFNoZXJpZmY= dW1waA== IG9r IDAwMA== ICJb IG9wZXJhdG9ycw== IEZlcg== IG1vZGVz IEV2ZQ== IGRpc2NpcGxpbmU= TkVU SGFuZA== IG9yYWw= IFdF ZW1haWw= SlA= IFBhbGVzdGluaWFucw== IGhlbmNl IExlc3M= IG92ZXJs ZGln IGludGltaWQ= IENvYWw= IHJhbmdpbmc= dGhh IGRpc3RhbnQ= IGZpYg== IEluZGV4 IFdvbmRlcg== IFBlbA== aGF0dGFu IEh1Zw== w5c= cmFpdA== IHdyYXBwZWQ= IFJQRw== IGNoZW1pY2Fscw== IE1vbmV5 IGZyb3plbg== IGluZGlyZWN0 IEFnYWluc3Q= RW5k IHVuY29tZm9ydGFibGU= IEdhbGxlcnk= IFBvc3RlZA== 2Kc= b25kdWN0 IGNvbnNlcXVlbmNl IGJpdHRlcg== IDE5ODc= cG9w IGNvdW50bGVzcw== IEFsYXNrYQ== ZmZmZg== IGRlcGFydHVyZQ== IHJlZnVuZA== IElhbg== aWF0ZWQ= IHNlZWtz IG1lY2hhbmljcw== IGp1cmlzZGljdGlvbg== bHlubg== IGFsaWtl IEh1bnQ= YXRob24= IHJlc29sdmVk IGNhY2hl IGRpc3RpbmN0aW9u ZGlyZWN0 IGVuY291bnQ= b3Vi YmVhdA== IENvdW50cnk= c2VhcmNo IGNvbnRpbnVvdXM= IG1vZGVzdA== IFJhaWw= dGhvb2Q= MTMw QlVH IGNyaW1pbmFscw== IGluZGljYXRpb24= IGVuY291bnRlcmVk bGFzdA== IFd5 IGlkZW9sb2d5 IFBERg== c2VjdXJpdHk= XSk= IEppbW15 IEVO IGhpcmluZw== VGVt IHBpZw== YXVudA== IENyeXN0YWw= IHBlbmFsdGllcw== IGNhcGFiaWxpdHk= IHB5 IHByb2R1Y3RpdmU= IGJhbGFuY2Vk IEdlRm9yY2U= Y2xpY2s= b2xpdGFu b2Rz IGFmdGVyd2FyZHM= IHBsYXlvZmZz IEdpbGw= VXNlcg== IGJhY2tz cHVi dGFn IGFic3VyZA== cGlyaW5n IGNpdGluZw== IHRyaWxsaW9u IG9ibGlnYXRpb24= IG1heGlt YWhvbw== Y2Y= dW1p IEFscGhh IE5lbHNvbg== IHB1cnN1YW50 aW5pdGVseQ== IGZyYWN0 ZW50cnk= YmVyeQ== IFRob3I= QWRkZWQ= IERK IEdlbmU= IGF3a3dhcmQ= U3R1ZA== IHdhbGxldA== IERpdmluZQ== YXJpb3M= IHJlbGVhc2luZw== IGVkaXRlZA== IGFjY29tcGxpc2hlZA== QmVzdA== IGVkZ2Vz IHBsYW5lcw== IGZlZWRpbmc= In0sIg== IGRpc2Nsb3N1cmU= IGdyYWlu YWlyeQ== b29ucw== ZXJuYW5k VlI= IHJlYXNvbmFibHk= IGRydW0= IHBhcnRpYWw= IGdyYXBoaWM= IHVucHJlY2VkZW50ZWQ= IGFkdmlzZWQ= TWljcm8= IEFzc2Fk cG9pbnRz c2Nhcg== IFpvbmU= dHRlcw== IDcwMA== dm8= IEhhbXA= IGZpeGVz IGNhdXRpb24= IHN0cmluZ3M= IHBhbmVscw== IGxlYWs= IHByaWNpbmc= cm93dGg= IEVycm9y IFNhaW50cw== Zml4 IG9ic2VydmF0aW9ucw== IEFicw== IHN1Z2dlc3Rpb24= IFVrcmFpbmlhbg== IGJhcnJpZXI= IHBhaW50ZWQ= QmV0 aW1pcg== IFNwZWN0 cG90 b3JuZXlz IGNvbXBvdW5k IGJlYXJz IFJ1c2g= IGx1eHVyeQ== U3Vt IG9yYml0 IE1hcmM= IGV4ZW1wdA== IFRyYWls IE1P IEhhbnM= IFdlYXBvbg== b2N1c2Vk dW1pbnVt IEplcnJ5 IGJ1c3Q= IEFH IFdpa2k= IGVuZGxlc3M= IFZsYWQ= IEJhaA== IFJhZGVvbg== a2V5cw== IFN1cnZleQ== IFZpb2w= ZGVmaW5l bGVhbg== IGNvbW1vZA== IHJldmVudWVz xY0= IGZ1cm5pdHVyZQ== IGNhc3Rpbmc= IGRpcGxvbWF0aWM= IFBsYXllcnM= IEtpbGxlZA== IG1vZGlmeQ== IGlubm92YXRpdmU= IEFidQ== bm9y IGJvbmRz IGNvYWNoaW5n TWVy IG1vZHVsZXM= IFBhdHJpb3Rz IGVuaGFuY2Vk IHByb2NlZWRpbmdz IHRlYW1tYXRlcw== IDEyOA== YXJkbw== IGNvbXByb21pc2U= IE11Y2g= IGZsZXc= IEVkZ2U= IHVubmVjZXNzYXJ5 IGRvY3RyaW5l cmVwb3J0 IE9ybGFuZG8= IFByb2ZpbGU= IHBsYXlvZmY= ZnJpZW5kbHk= IGNvbXBsYWlu IE1D IE9wdA== IEdC IGJlYXRlbg== IGdvbGY= IHBsYWNlbWVudA== Qml0 IG5ld3NsZXR0ZXI= IDIwMTk= dmlzb3I= cmF3bA== IGlQYWQ= IGFjdGVk IGp1aWNl IGRlY2tz UE4= c3VjY2Vzcw== IEhhbGY= IGRlbGV0ZWQ= IHNlY3JldHM= IGFzeWx1bQ== TWFydA== IEFjdGl2 IEd1eQ== IFRz IGR5cw== IGFzc3VtaW5n IG1hbmE= IHN1YnVy IDEyNQ== TWVkaWE= QVJZ cmlkZQ== Y3A= IGRpZmZpY3VsdGllcw== IGNvbGxlY3Rpbmc= IGJhbmtydXB0 bm9u IGNvbXBvc2Vk IHZvbHQ= IG1pbGl0YW50cw== ID4+Pg== IE1vcm1vbg== dG9y IHBhcnRpY2xlcw== IEJhcnQ= cnlwdGlvbg== IGFkbWlu IHNxdWVl VklESUE= IGNyZWF0b3I= aWFtZXRlcg== aWN1bGFy TkJD IGdyYWJiZWQ= IG5vZGQ= IHJhdGVk IHJvdGF0aW9u IGdyYXNw IGV4Y2Vzc2l2ZQ== IEVD IFdoaXQ= IGludmVudG9yeQ== YXVsdHM= IEZC IGVjb3N5c3RlbQ== IGJpbGxpb25z IHZlbnR1cmU= bmFtZWQ= IGRlZmVuZGVy b3V0ZQ== SW5zdGVhZA== aXJhYmxl V2Fy IGFzc3VtcHRpb24= IGJpdGU= IGVhcnRocXU= dGFpbA== c3BhY2U= IGdpZnRz Ym95cw== IGluZXZpdGFibGU= IHN0cnVjdHVyYWw= IGJlbmVmaWNpYWw= IGNvbXBlbGxpbmc= aG9sZQ== ZXJ2YXRpb24= IGNvYXQ= b2o= aW5jYXJu IFllYXJz IGRldGVybWluaW5n IHJoZXRvcmlj IGJvdW5kYXJpZXM= IHdoaXRlcw== QW50 YWRkeQ== KS0= cmFoYW0= ZXRlcm1pbg== IGhhcnZlc3Q= IENvbmM= IGxhcHRvcA== IE1hdGNo IGVuam95aW5n Y2Nh b2xsYXI= IHRyaXBz IGFkZGljdGlvbg== IFNhaw== IHBvd2VyZWQ= IGNvdXM= IFJ1c3NpYW5z aWVyZQ== IHJldHJpZQ== cXVhbGl0eQ== IGRpZmZlcg== IGtpbmdkb20= IExhdXI= IENhcGl0b2w= IGNvbmNsdXNpb25z IEFsdGVybg== IE5hdg== IHRyYW5zcGFyZW50 QkVS R3JvdXA= IENvbXBsZXRl IGluZmVy IGludHJpZw== IGluc2FuZQ== Uk8= b3Bob2I= aXNlbg== cXVhbA== TWljaGFlbA== IG11c2V1bQ== IFBvcGU= IHJlc2V0 cmF0aXZl Zml2ZQ== IGFnZ3JlZw== aXR0ZWVz b3NpdG9yeQ== IGNhcmI= IFJlY29yZA== IGRlY2lkZXM= IEZpeA== IGV4Y2VwdGlvbnM= IENvbW1pc3Npb25lcg== dW5z IEVudmlyb25tZW50YWw= IGxlZ2VuZGFyeQ== aXN0ZW5jZQ== IHR1bm5lbA== a20= IGluc3VsdA== IHRyb2xs IHNoYWtl IGRldGVudGlvbg== cXVlcw== IENocm9tZQ== IEZpbGVz IHN1YnQ= IHByb3NwZWN0cw== IHByb2w= cmVuZGVy cHJvb2Y= IHBlcmZvcm1hbmNlcw== U3Ry IGhyZWY= ZXJuYW1l IGFjaGlldmVtZW50 IGZ1dA== RnVsbA== IExlYmFu Z29vZ2xl 44OI YW1wYQ== TWF5YmU= IHByb2plY3RlZA== IEVtYg== IGNvbGxlZw== IGF3YXJkcw== IOKU R29sZA== IEJsYWtl IFJhag== aWZ0aW5n IHBlbmRpbmc= IGluc3RpbmN0 IGRldmVsb3BtZW50cw== Q29ubmVjdA== IE1hbmQ= IFdJVEg= IFBoaWxpcHBpbmVz cHJvZmlsZQ== IGFsdG9nZXRoZXI= IEJ1bmQ= IFRE b29vbw== YW1wZWQ= aXBo IHN0ZWFt IG9sZGVzdA== IGRldGVjdGlvbg== dWxwdA== IOc= IFdheW5l MjAwNg== ZmE= IGNpcmNsZXM= IEZ1 IGRvbm9ycw== YXBwcm9wcmlhdGU= IERha290YQ== amFtaW4= IG1vdGl2YXRlZA== IHB1cmNoYXNlcw== IExvdWlzaWFuYQ== IFNwbA== IGdsb2Jl IDEwNQ== emlw Y2FsbA== IGRlcGFydG1lbnRz IHN1c3RhaW5hYmxl MTA1 IE9Q aWZpZXJz IHByZXZlbnRlZA== IGluY29tcA== IENvbW1hbmRlcg== IGRvbWluYXRlZA== IMK7 IGludmVzdGVk IGNvbXBsZXhpdHk= IGluY2w= IGVuc3VyaW5n IHJlYWxt eW5j IEluZGVwZW5kZW50 cmFpbmVk IEplbg== IEZsaWdodA== IGF0aGU= IHNwZWN1bGF0aW9u IFRF b2NhdGU= dGlj IHBsYWludA== aGVycnk= IHRveQ== IDExMQ== IHBsYXRlcw== c3RhdHVz IElzYQ== IGRldm90ZWQ= Q29w IEVT MjU1 dXJyZW5jeQ== TWFpbg== IHNsYXZlcw== IHBlcHBlcg== IHF1b3Rlcw== IGNlaWxpbmc= IEZpc2g= IHRyYW5zZm9ybWF0aW9u IGZyYWN0aW9u IGFkdmFudGFnZXM= IHRvaWxl IHN0dW5uaW5n IG1vaXN0 YnJlYWtpbmc= c2k= IExvY2F0aW9u IE1lZGl1bQ== IHRleHRz IHVnbHk= IGJpbw== LuKAlA== IEJhc2Vk IHRyYWlucw== IFdpbmc= IEFuY2llbnQ= IFJlY29yZHM= IEhvcGU= U3BlY2lhbA== YWRlc2g= b2Jp Wy8= IHRlbXBvcmFyaWx5 VmVy aHU= b3Nlcg== IG92ZXJuaWdodA== IG1hbW0= IFRyZWFzdXJ5 IFZlbmV6dWVs IE1lZ2E= IHRhcg== IGV4cGVjdHM= YmxhY2s= b3JwaA== XFxcXA== IGFjY2VwdGFuY2U= IHJhZGFy c2lz IGp1bmlvcg== IGZyYW1lcw== IG9ic2VydmF0aW9u YWNpZXM= UG93ZXI= IEFkdmFuY2Vk TWFn b2xvZ2ljYWxseQ== IE1lY2hhbg== IHNlbnRlbmNlcw== IGFuYWx5c3Rz YXVnaHRlcnM= Zm9yY2VtZW50 IHZhZ3Vl IGNsYXVzZQ== IGRpcmVjdG9ycw== IGV2YWx1YXRl IGNhYmluZXQ= TWF0dA== IENsYXNzaWM= QW5n IGNsZXI= IEJ1Y2s= IHJlc2VhcmNoZXI= IDE2MA== IHBvb3JseQ== IGV4cGVyaWVuY2luZw== IFBlZA== IE1hbmhhdHRhbg== IGZyZWVk IHRoZW1lcw== YWR2YW50 IG5pbg== IHByYWlzZQ== MTA0 IExpYnlh YmVzdA== IHRydXN0ZWQ= IGNlYXNl IGRpZ24= RGlyZWN0 IGJvbWJpbmc= IG1pZ3JhdGlvbg== IFNjaWVuY2Vz IG11bmljaXBhbA== IEF2ZXJhZ2U= IGdsb3J5 IHJldmVhbGluZw== IGFyZW5h IHVuY2VydGFpbnR5 IGJhdHRsZWZpZWxk aWFv R29k IGNpbmVt cmFwZQ== ZWxsZQ== YXBvbnM= IGxpc3Rpbmc= IHdhaXRlZA== IHNwb3R0ZWQ= a2VsZXk= IEF1ZGlv ZW9y YXJkaW5n aWRkaW5n aWdtYQ== IE5lZw== IGxvbmU= IC0tLS0= ZXhl ZGVn IHRyYW5zZg== IHdhc2g= IHNsYXZlcnk= IGV4cGxvcmluZw== IFdX YXRzb24= IGVuY2w= bGllcw== IENyZWVr IHdvb2Rlbg== TWFuYWdlcg== IEJyYW5k dW1teQ== IEFydGh1cg== IGJ1cmVhdWNy IGJsZW5k YXJpYW5z RnVydGhlcg== IHN1cHBvc2VkbHk= IHdpbmRz IDE5Nzk= IGdyYXZpdHk= IGFuYWx5c2Vz IFRyYXZlbA== IFZldGVy IGR1bWI= IGFsdGVybmF0ZQ== Z2Fs IGNvbnN1bWVk IGVmZmVjdGl2ZW5lc3M= Licn IHBhdGhz b25kYQ== TEE= IFN0cm9uZw== IGVuYWJsZXM= IGVzY2FwZWQ= ICIi IDExMg== IDE5ODM= IHNtaWxlZA== IHRlbmRlbmN5 RmlyZQ== IHBhcnM= IFJvYw== IGxha2U= IGZpdG5lc3M= IEF0aA== IEhvcm4= IGhpZXI= IGltcG9zZQ== bW90aGVy IHBlbnNpb24= aWN1dA== Ym9ybmU= aWNpYXJ5 Ll8= IFNV IHBvbGFy aXN5 ZW5ndQ== aXRpYWxpemVk QVRB d3JpdGU= IGV4ZXJjaXNlcw== IERpYW1vbmQ= b3R5cGVz IGhhcm1mdWw= b256 IHByaW50aW5n c3Rvcnk= IGV4cGVydGlzZQ== IEdlcg== IHRyYWdlZHk= IEZseQ== IGRpdmlk YW1waXJl c3RvY2s= TWVt IHJlaWdu IHVudmU= IGFtZW5k IFByb3BoZXQ= IG11dHVhbA== IEZhYw== IHJlcGxhY2luZw== SGFy IENpcmN1aXQ= IHRocm9hdA== IFNob3Q= IGJhdHRlcmllcw== IHRvbGw= IGFkZHJlc3Npbmc= IE1lZGljYWlk IHB1cHA= IE5hcg== b2xr IGVxdWl0eQ== TVI= IEhpc3Bhbg== IExhcmdl bWlk RGV2 IGV4cGVk IGRlbW8= IE1hcnNoYWxs ZXJndXM= IGZpYmVy IGRpdm9yY2U= IENyZWF0ZQ== IHNsb3dlcg== IFBhcmtlcg== IFN0dWRlbnQ= IFRyYWluaW5n UmV0dXJu IFRydQ== IGN1Yg== IFJlYWNoZWQ= IHBhbmlj IHF1YXJ0ZXJz IHJlY3Q= IHRyZWF0aW5n IHJhdHM= IENocmlzdGlhbml0eQ== b2xlcg== IHNhY3JlZA== IGRlY2xhcmU= dWxhdGl2ZQ== ZXRpbmc= IGRlbGl2ZXJpbmc= ZXN0b25l IHRlbA== IExhcnJ5 IG1ldGE= YWNjZXB0 YXJ0eg== IFJvZ2Vy aGFuZGVk IGhlYWRlcg== IHRyYXBwZWQ= IENlbnR1cnk= IGtub2NrZWQ= IE94Zm9yZA== IHN1cnZpdm9ycw== Ym90 IGRlbW9uc3RyYXRpb24= IGRpcnQ= IGFzc2lzdHM= T01F IERyYWZ0 b3J0dW5hdGU= Zm9saW8= cGVyZWQ= dXN0ZXJz Z3Q= IExvY2s= IGp1ZGljaWFs dmVydGVk IHNlY3VyZWQ= b3V0aW5n IEJvb2tz IGhvc3Rpbmc= IGxpZnRlZA== bGVuZ3Ro IGplcg== IHdoZWVscw== IFJhbmdl dW1ibmFpbHM= IGRpYWdub3Npcw== dGVjaA== IFN0ZXdhcnQ= IFByYWN0 IG5hdGlvbndpZGU= IGRlYXI= IG9ibGlnYXRpb25z IGdyb3dz IG1hbmRhdG9yeQ== IHN1c3BpY2lvdXM= ISc= QXBy R3JlYXQ= IG1vcnRnYWdl IHByb3NlY3V0b3I= IGVkaXRvcmlhbA== IEty IHByb2Nlc3NlZA== dW5nbGU= IGZsZXhpYmlsaXR5 RWFybGllcg== IENhcnQ= IFN1Zw== IGZvY3VzZXM= IHN0YXJ0dXA= IGJyZWFjaA== IFRvYg== Y3ljbGU= 44CM cm9zZQ== IGJpemFycmU= 44CN IHZlZ2V0YWJsZXM= JCQ= IHJldHJlYXQ= b3NoaQ== IFNob3A= IEdyb3VuZA== IFN0b3A= IEhhd2FpaQ== IEF5 UGVyaGFwcw== IEJlYXV0 dWZmZXI= ZW5uYQ== IHByb2R1Y3Rpdml0eQ== Rml4ZWQ= Y29udHJvbA== IGFic2VudA== IENhbXBhaWdu R3JlZW4= IGlkZW50aWZ5aW5n IHJlZ3JldA== IHByb21vdGVk IFNldmVu IGVydQ== bmVhdGg= YXVnaGVk IFBpbg== IExpdmluZw== Q29zdA== b21hdGlj bWVnYQ== IE5pZw== b2N5 IGluYm94 IGVtcGlyZQ== IGhvcml6b250 IGJyYW5jaGVz IG1ldGFwaA== QWN0aXZl ZWRp IEZpbG0= IFNvbWV0aGluZw== IG1vZHM= aW5jaWFs IE9yaWdpbmFs R2Vu IHNwaXJpdHM= IGVhcm5pbmc= SGlzdA== IHJpZGVycw== IHNhY3JpZmlj TVQ= IFZB IFNhbHQ= IG9jY3VwYXRpb24= IE1p IGRpc2c= bGljdA== IG5pdA== IG5vZGVz ZWVt IFBpZXI= IGhhdHJlZA== cHN5 44OJ IHRoZWF0ZXI= IHNvcGhpc3RpY2F0ZWQ= IGRlZmVuZGVk IGJlc2lkZXM= IHRob3JvdWdobHk= IE1lZGljYXJl IGJsYW1lZA== YXJlbnRseQ== IGNyeWluZw== Rk9S cHJpdg== IHNpbmdpbmc= IEls IGN1dGU= b2lkZWQ= b2xpdGljYWw= IE5ldXJv 5aQ= IGRvbmF0aW9u IEVhZ2xlcw== IEdpdmU= VG9t IHN1YnN0YW50aWFsbHk= IExpY2Vuc2U= IEph IGdyZXk= IEFuaW1hbA== IEVS IFVuZA== IGtlZW4= IGNvbmNsdWRl IE1pc3Npc3NpcHBp RW5naW5l IFN0dWRpb3M= UHJlc3M= b3ZlcnM= bGxlcnM= IDM1MA== IFJhbmdlcnM= IHJvdQ== ZXJ0bw== RXA= aXNzYQ== aXZhbg== IHNlYWw= IFJlZ2lzdA== ZGlzcGxheQ== IHdlYWtlbg== dXVt IENvbW1vbnM= IFNheQ== IGN1bHR1cmVz IGxhdWdoZWQ= IHNsaXA= IHRyZWF0bWVudHM= aXphYmxl bWFydA== IFJpY2U= IGJlYXN0 IG9iZXNpdHk= IExhdXJl aWdh V2hpY2g= aG9sZGVy IGVsZGVybHk= IHBheXM= IGNvbXBsYWluZWQ= IGNyb3A= IHByb2M= IGV4cGxvc2l2ZQ== IEZhbg== IEFyc2VuYWw= QXV0aG9y ZWZ1bA== IG1lYWxz ICgt aWRheXM= IGltYWdpbmF0aW9u IGFubnVhbGx5 IG1z YXN1cmVz SGVhZA== aWto bWF0aWM= IGJveWZyaWVuZA== IENvbXB1dGVy IGJ1bXA= IHN1cmdl IENyYWln IEtpcms= RGVs bWVkaWF0ZQ== IHNjZW5hcmlvcw== IE11dA== IFN0cmVhbQ== IGNvbXBldGl0b3Jz 2YQ= IFN0YW5mb3Jk IFJlc291cmNlcw== YXplZA== YmFnZQ== IG9yZ2FuaXM= IFJlbGVhc2U= IHNlcGFyYXRlbHk= IGhhYml0cw== IG1lYXN1cmVtZW50cw== IENsb3Nl IGFjY29tcGFueQ== IGdseQ== IHRhbmc= IFJvdQ== IHBsdWdpbg== IGNvbnZleQ== IENoYWxsZW5nZQ== b290cw== amFu IGN1cnM= IFJlbGF0aW9ucw== a2VlcGVy IGFwcHJvYWNoaW5n cGluZw== U3BlYWtpbmc= IGFycmFuZ2VtZW50 IFZJ YXJldHRlcw== IGFmZmVjdGluZw== IHBlcm1pdHM= YmVjYXVzZQ== IHVzZWxlc3M= IEh1cw== ISEhIQ== IGRlc3Ryb3lpbmc= VW5mb3J0dW5hdGVseQ== IGZhc2NpbmF0aW5n U2Vt IGVsZWN0b3JhbA== IHRyYW5zcGFyZW5jeQ== IENoYW9z IHZvbHVudGVlcg== IHN0YXRpc3RpY2Fs IGFjdGl2YXRlZA== cm94 V2Vi SEU= IEhhbXBzaGlyZQ== aXNpdmU= TWFw IHRyYXNo IExhd3JlbmNl c3RpY2s= Q3I= IHJpbmdz RVhU IG9wZXJhdGlvbmFs b3Blcw== RG9lcw== IEV2YW5z IHdpdG5lc3NlZA== UG9ydA== IGxhdW5jaGluZw== ZWNvbm9t d2Vhcg== IFBhcnRpY2lw dW1t Y3VsZXM= IFJBTQ== IFR1bg== IGFzc3VyZWQ= IGJpbmFyeQ== IGJldHJheQ== IGV4cGxvcmF0aW9u IEZlbA== IGFkbWlzc2lvbg== aXRhdGVk U3k= IGF2b2lkZWQ= IFNpbXVsYXRvcg== IGNlbGVicmF0ZWQ= IEVsZWN0cmlj pZ4= IGNsdXN0ZXI= aXR6ZXJsYW5k aGVhbHRo TGluZQ== IE5hc2g= YXRvbg== IHNwYXJl IGVudGVycHJpc2U= IERJUw== Y2x1ZGVz IGZsaWdodHM= IHJlZ2FyZHM= IMOX aGFsZg== IHRydWNrcw== IGNvbnRhY3Rz IHVuY29ucw== IENsaW1hdGU= IGltbWVuc2U= TkVX b2Nj ZWN0aXZl IGVtYm9k IHBhdHJvbA== IGJlc2lkZQ== IHZpYWJsZQ== IGNyZWVw IHRyaWdnZXJlZA== dmVybmluZw== IGNvbXBhcmFibGU= cWw= IGdhaW5pbmc= YXNzZXM= ICgpOw== IEdyZXk= IE1MUw== c2l6ZWQ= IHByb3NwZXI= Ij8= IHBvbGxpbmc= IHNoYXI= IFJD IGZpcmVhcm0= b3JpZW50 IGZlbmNl IHZhcmlhdGlvbnM= Z2l2aW5n IFBp b3NwZWw= IHBsZWRnZQ== IGN1cmU= IHNweQ== IHZpb2xhdGVk IHJ1c2hlZA== IHN0cm9rZQ== IEJsb2c= c2Vscw== IEVj LCcn IHBhbGU= IENvbGxpbnM= dGVycm9y IENhbmFkaWFucw== IHR1bmU= IGxhYm9yYXRvcnk= IG5vbnM= dGFyaWFu IGRpc2FiaWxpdHk= IEdhbQ== IHNpbmdlcg== YWxn IFNlbmlvcg== IHRyYWRlZA== IFdhcnJpb3I= IGluZnJpbmc= IEZyYW5rbGlu IHN0cmFpbg== IFN3ZWRpc2g= IHNldmVudGg= IEJlbm4= IFRlbGw= IHN5bmRyb21l IHdvbmRlcmVk aWRlbg== KysrKw== aWdv IHB1cnBsZQ== IGpvdXJuYWxpc20= IHJlYmVs IGZ1 YmxvZw== IGludml0ZQ== cmVuY2llcw== IENvbnRhY3Q= SXNyYWVs IENvbnRlbnQ= IGNoZWVy IGJlZHJvb20= IEVuZ2luZWVyaW5n IFF1ZWVucw== IGR3ZWxs IFBsYXlTdGF0aW9u IERpbQ== IENvbG9u bHI= IG9wZXJhdGVz IG1vdGl2YXRpb24= VVNB YXN0ZXJlZA== Q29yZQ== IFRydXRo b2xv T1NF IE1lbW9yeQ== IHByZWRlYw== IGFuYXJjaA== IDE5MjA= IFlhbQ== w6g= Ymlk IGdyYXRlZnVs IGV4Y2l0ZW1lbnQ= IHRyZWFzdXJl IGxvbmdlc3Q= Y3RpdmU= IGRlc2VydmVz IHJlc2VydmVz IGNvcHM= IE90dGF3YQ== IEVneXB0aWFu YW5rZWQ= IGFydGlm IGh5cG90aGVzaXM= Oi8= IHB1cmNoYXNpbmc= IGxvdmVseQ== SFA= IGRpdmlkZQ== IHN0cmljdGx5 IHF1ZXN0aW9uaW5n IHRheHBheWVycw== IEpveQ== IHJvbGxz IEhlYXZ5 IHBvcnRz IG1hZ25ldGlj IGluZmxhbW0= IGJydXNo dGljcw== 4oiS IGJvdHRsZXM= cHB5 IHBhZGQ= 44Kv bWlsbGlvbg== IGRldmFzdGF0aW5n IGNvbXBpbGVk IG1lZGljYXRpb24= IHR3ZWx2ZQ== IFBlcnJ5 U3BhY2U= aW1i eW91cg== IGxlYWtlZA== IFRhcg== IHVuaXR5 IGluZmVjdGVk IHRyYXZlbGVk SURF IE1jRG9uYWxk dHh0 IFByaW5j IGludGVydmVu IFRhaXdhbg== IFBvdw== IGJlYXJpbmc= IFRocmVhZA== IHpvbmVz aXphcmRz dW5rcw== Q2hhcHRlcg== bGxvcg== IMK3 IHdvdW5kcw== IGRpc2NyZXRpb24= IHN1Y2NlZWRlZA== aWtpbmc= IGljb25pYw== Q2FsbA== IHNjcmVlbmluZw== IE1pcw== aWN0cw== IG1pbmlzdGVycw== IHNlcGFyYXRpb24= UGxheWVy IGJpcA== IGJlbG92ZWQ= IGNvdW50aW5n IEV5ZQ== YXJvdW5k aW5naW5n IHRhYmxldA== IG9mZmVuY2U= aW5hbmNl aGF2ZQ== IEluZm8= IE5pbmph IHByb3RlY3RpdmU= IENhc3M= TWFj IFF1YWxpdHk= Tm9ydGg= IGlj IEN1YmE= IENocm9uaWNsZQ== IFByb3BlcnR5 IGZhc3Rlc3Q= b3Rvcw== IEdlcm0= T1dO IGJvb20= IFN0YW5sZXk= ZXJndXNvbg== IGNsZXZlcg== IGVudGVycw== bW9kZQ== dGVyaW9y IFNlbnM= IGxpbmVhcg== QVJL IGNvbXBhcmluZw== IHB1cmVseQ== IHNhZmVy IFBvdHRlcg== IGN1cHM= UlQ= IGdsdWM= IGF0dHJpYnV0ZWQ= IGR1cGw= IFBhcA== IHByZWNpb3Vz IHBh aWN0aW9uYXJ5 IFRpZw== IFRvbw== b2x1dGlvbnM= c3Rhbg== IHJvYm90cw== IGxvYmI= IHN0YXR1dGU= IHByZXZlbnRpb24= d2VzdGVybg== MTYw IEFjdGl2ZQ== IE1hcmlh aGFs Tm9uZQ== ZWxsYXI= IEtC IFBhcnRuZXJz IFNpbmdsZQ== IEZvbGxvd2luZw== YW5nbw== YWNpb3Vz IHRob3U= IGtn IGluZmx1ZW50aWFs IEZyaWVuZHM= U3Vy YWludGVk IGZvcnVtcw== IHN0YXJ0ZXI= IGNpdGl6ZW5zaGlw IEVsZWN0aW9u b25nZQ== b3RhdGlvbg== b3NwaA== Ozs7Ow== dXRpY2Fs cHVy ZXJlbg== IGFjY3VzYXRpb25z Yml0aW91cw== YWJiaXQ= IE9yZA== UG9zdGVk aXJr IHNlbnNpdGl2aXR5 aWNoZQ== IEFteQ== IEZhYg== IHN1bW1pdA== IHBlZGVzdA== IHJ1YmJlcg== IGFncmljdWx0dXJhbA== IGNhbmNlbA== QUU= IGluYXVn IGNvbnRhbQ== IGZpcm1seQ== aXc= c3RhZ2U= IEthbg== IHRpZXI= IGludmVudGlvbg== IHRyYW5zbGF0ZWQ= IFJ1bGVz Qm94 VHdpdHRlcg== SURT IHBpenph IGRlYnVn IERyb3A= dnM= IGhvcnNlcw== Ymln IGJvcmluZw== IGhvb2Q= IE1jQ2Fpbg== YXRjaGVk IEJyb3M= IHNraXA= IGVzc2F5 c3RhdA== IExlZ2VuZHM= IGFtbXVuaXRpb24= YXVj IHNob290ZXI= IHVuaA== IHN1cHBsaWVk IGdlbmVyaWM= IFNL aWJhbg== eXJpY3M= IDI1NQ== IGNsaW1iaW5n Rm9ybWVy IGZsaXA= IGp1bXBpbmc= IGZydXN0cmF0aW9u IFRlcnJ5 IG5laWdoYm9yaG9vZHM= IG1lZGlhbg== YmVhbg== IGJyYWlucw== Rm9sbG93aW5n IHNoYXBlZA== IGRyYXdz IGFsdGVyZWQ= SmFjaw== IHJlY2lwZXM= IHNraWxsZWQ= d2VhbHRo YWNoaQ== ZWxlY3Rpb24= IGJlaGF2aW9ycw== ZGVhbHM= IFVudGls RmU= IGRlY2xhcmF0aW9u bWFya3M= IEJldHdlZW4= Y2Vsb25h IHJlc29u IGJ1YmJsZQ== QW1vbmc= IGltcGVyaWFs R1M= IGZlbWluaXN0 MjAwNQ== IEt5bGU= IGFjY291bnRpbmc= IFRlbGU= IFR5cg== IGNvbm5lY3Rpbmc= IHJlaGFi IFByZWQ= c2lt IG1lYW50aW1l IHBoeXNpY2lhbg== TVc= IENhbXBiZWxs IEJyYW5kb24= IGNvbnRyaWJ1dGluZw== IFJ1bGU= IFdlaWdodA== IE5hcA== IGludGVyYWN0aXZl IHZhZw== IGhlbG1ldA== IENvbWI= Zm91cg== IHNoaXBwZWQ= IGNvbXBsZXRpbmc= IFBE UERBVEU= IHNwcmVhZGluZw== IHNjYXJ5 ZXJ2aW5n IEdhcw== IGZyYW5r c2Nob29s IHJvbWFudGlj IHN0YWJpbA== Um9i IGFjY3VyYXRlbHk= IGFjdXRl IEhhbm4= IHN5bWJvbHM= IGNpdmlsaXphdGlvbg== IEFX IGxpZ2h0bmluZw== IGNvbnNpZGVycw== IHZlbnVl INc= IG92ZW4= IFNG aGlz IG51 IExlYXJu IHBlb3BsZXM= IHN0ZA== IHNsZWU= IHNsaWM= IFN0YXRpc3RpY3M= IGNvcm5lcnM= IEJha2Vy IDop bWVudGF0aW9u b2x2ZXI= IGxhdWdoaW5n IFRvZGQ= b25kZQ== IEhpbGxz IG51dHM= IFdvbWFu cGxhbmU= IGxpdmVy IEluc2lkZQ== U29ycnk= IGFncmVlcw== IGZ1bmRhbWVudA== IEZpc2hlcg== IGF1Y3Rpb24= IHRocmVhZHM= Z2xhcw== IEJhc2lj IE5hdA== IGxhY2tpbmc= IGNlbGVicmF0aW9u anU= IHNpbGx5 RXVybw== IHRhdHQ= aWdodHk= Y29udHJvbGxlZA== VGVzdA== IFNpbmdo IHJhZ2U= IHJoeXRo b2ZmaWM= IFBoYW50b20= IGhlYWRsaW5lcw== IHJlc3BvbmRpbmc= IE1vcm5pbmc= IHZpdGFtaW4= IGJvb3Rz IFNpdGU= YWxpbg== cGk= IHZpcmFs IFVD REVS IFNleA== IHN0b2Nrcw== Y3VycmVudA== IGNodXJjaGVz IFJhcmU= IE11cnBoeQ== IGRlbmlhbA== IEdhbWluZw== IHRvdWc= IG5pY2s= IG1ha2Vycw== IFJvbmFsZA== IGdlbmVyb3Vz IERvYw== IE1vcnJpcw== IHRyYW5zZm9ybWVk IE5vcm1hbA== IDEwNA== IEtpY2tzdGFydGVy IFVwb24= T25saW5l IElSUw== IHdyYXA= IGxvdmluZw== IGFycml2ZXM= IER1ZQ== IGhldGVy IE1hZGU= IHJlbnRhbA== IGJlbG9uZ3M= IGF0dG9ybmV5cw== IGNyb3Bz IG1hdGNoZWQ= dWx1bQ== b2xpbmU= MTA5 IGRpc3Bhcg== IGJ1eWVycw== IENhbWJyaWRnZQ== IGV0aGljcw== cm91cHM= IGp1c3RpZmllZA== IG1hcmdpbmFs IHJlc3BlY3RlZA== d2lubmluZw== IG5vZGRlZA== IFNlcmdl IEZvcm1lcg== Q3JhZnQ= IyMjIyMjIyMjIyMjIyMjIw== IFdhcm5lcg== IGRhc2g= ZXRl IGVudGVydA== IEVzY2FwZQ== b3V0aGVhc3Q= IGtuZWVz IEJvbWI= IHJ1Zw== UGFzcw== IGF0dGl0dWRlcw== Z292ZXJubWVudA== IFByaW9y IHF1YWxpdGllcw== IG5vdGlmaWNhdGlvbg== IFBob25l bGll IGFudGljaXBhdGVk IENvbWJhdA== IEJhcnJ5 IDE5ODI= VXNlcnM= b25lcg== IGNvbXB1dGluZw== IENvbm5lY3RpY3V0 IGxlc3Nlcg== IHBlZXJz IEN1 IHRlY2huaWNhbGx5 IHN1Ym1pc3Npb24= IFVuaXZlcnNhbA== IG1hbnVhbGx5 b3VyZ2U= IHJlc3BvbmRlbnRz IEJUQw== IEhvc3Q= IGZhcmU= IEJpcmQ= IHJlY2VpcHQ= YWxzbw== IGphY2s= IGFncmljdWx0dXJl IHNrdWxs ICE9 IHBhc3NpdmU= IENJ IHNvY2lldGllcw== IHJlbWluZGVk IGludGVyZmVyZW5jZQ== QnV5 IOKc Z29u IHNjcnV0aW55 IFdpdGNo IGNvbmR1Y3Rpbmc= IOOD IGV4Y2hhbmdlcw== IE1pdGNoZWxs IGluaGFiaXQ= IHR3aXN0 QkQ= IHdoZXJldmVy Z3JvdXBvbg== IGpva2Vz IEJlbmphbWlu IFJhbmRvbQ== ZnJhbWU= IExpb25z IGhpZ2hsaWdodGVk IEFya2Fuc2Fz RW50 IHBpbGU= IHByZWxpbQ== Z3M= bWluZGVk IGZlbG9ueQ== IEdB IEx1Y2s= IHByYWN0aWNhbGx5 IEJvcw== IGFjdHJlc3M= RGFt IEJvdQ== IHZpc2E= IGVtYmVkZGVk IGh5YnJpZA== IGVhcmxpZXN0 IHNvb25lcg== c29jaWFs IEhB IHN0ZWVw IGRpc2FkdmFudA== IGV4cGxvaXQ= IEVnZw== IFVsdHJh IG5lY2Vzc2l0eQ== TG9jYWw= aWVnZQ== IGRhdGVk IG1hc3Nlcw== IHN1YnNjcmlwdGlvbg== cGxlc3M= IGFub255bQ== IHByZXN1bWFibHk= Qmx1ZQ== VGhlaXI= YXNrZXRiYWxs IFBoaWxpcA== IGNvbWVk bG9hZGVk cmFuZQ== IHJlZmxlY3Rpb24= Q2hpbmE= IGV4dGVuZHM= IGZvcm1pbmc= IHVuZGVycw== MjAwMQ== IGdyYXQ= IGNvbmNlbnRyYXRpb25z IGluc3VsaW4= IHNlY3VsYXI= IHdoaWxzdA== IHdpbm5lcnM= QWR2ZXJ0aXNlbWVudHM= IGRlbGliZXJhdGVseQ== IFdvcmtpbmc= IHNpbms= ZXRpY3M= ZGFsZQ== IG1hbmRhdGU= IGdyYW0= IHZhY2F0aW9u IHdhcm5pbmdz cmlwcA== IFRIQVQ= IGNvbW1lbnRhcnk= IGludHU= IGFlc3Q= IHJlYXNvbmluZw== IGJyZWFrZG93bg== IFpvbWJpZQ== IC0tPg== IFBvbGl0aWNhbA== Y290dA== IHRocnVzdA== IHRlY2hub2xvZ2ljYWw= IGRlY2lkaW5n IHRyYWZmaWNraW5n TG9uZw== V2VsY29tZQ== cHJpc2luZw== IENvbW11bmljYXRpb25z IGVuZG9ycw== IHN3aWZ0 IG1ldGFib2w= Y29pbnM= cmVzYQ== IEhUVFA= IGVucm9sbA== IEhhcHB5 dXNy aW50YWdl IFsi dWFibHk= IE1hdGVyaWFs IHJlcGVhbA== U2VwdA== a2g= IE1vZGk= IHVuZGVybmVhdGg= IElM c2hvcmU= IGRpYWdub3NlZA== YWNldXRpY2Fs IHNob3dlcg== YXV4 IFN3aXRjaA== IFN0cmVuZ3Ro IGppaGFk bmF0aW9uYWw= IHRyYXVtYQ== dXNzeQ== b25p IGNvbnNvbGlk IGNhbG9yaWVz IEZseW5u YWdnZWQ= MTY4 IFBpbms= IGZ1bGZpbGw= IGNoYWlucw== IG5vdGFibHk= IEFW TGlmZQ== IENodWNr bXVz IFVyYmFu IEhlbmQ= IGRlcG9zaXQ= IFNhZA== IGFmZmFpcg== T1JL aWV2YWw= IEZEQQ== IHRyb3A= IE92ZXJhbGw= IHZpcnR1ZQ== IHNhdGlzZmFjdGlvbg== YXVuZA== IGx1bg== IFN3aXR6ZXJsYW5k IE9wZXJhdGlvbg== cHJvY2Vzcw== IHNob29r IGNvdW50aWVz bGVhc2Vk IENoYXJsb3R0ZQ== MTEy IHRyYW5zY3JpcHQ= IHJlZGQ= cHVzaA== IEhleQ== IEFuYWx5c2lz WyI= IGFsdGVybmF0aXZlcw== YXJkbGVzcw== IGVsZXBo IHByZWp1ZA== IExlYWY= SGF2aW5n IEh1Yg== IGV4cHJlc3Npb25z IFZvbHVtZQ== IHNob2NraW5n IFJlZHM= IHJlYWRpbHk= IHBsYW5ldHM= YWRhdGE= IGNvbGxhcHNlZA== IE1hZHJpZA== IGlycml0 aXBwZXI= IEVuYw== IFdpcmU= IGJ1eno= IEdQ YXNoYQ== IGFjY2lkZW50YWxseQ== dXJ1 IGZydXN0cmF0ZWQ= IFNB IGh1bmdyeQ== IEh1ZmY= IGxhYmVscw== YW50bw== IEVQ IGJhcnJpZXJz KXw= IEJlcmtlbGV5 IEpldHM= IHBhaXJz IExhbg== SmFtZXM= IEJlYXI= IGh1bW9y IExpYmVydHk= IG1hZ25pdHVkZQ== IGFnaW5n IE1hc29u IGZyaWVuZHNoaXA= dW1ibGluZw== IGVtZXJnZQ== IG5ld3NwYXBlcnM= IGFtYml0aW91cw== IFJpY2hhcmRz YXRlcm5hbA== IDE5ODE= IGNvb2tpZXM= IHNjdWxwdA== IHB1cnN1aXQ= TG9jYXRpb24= IHNjcmlwdHM= cGM= IGFycmFuZ2VtZW50cw== IGRpYW1ldGVy IGxvc2Vz YW1hdGlvbg== IGxpcXU= IEpha2U= YXJldHRl IHVuZGVyc3RhbmRz IFplbg== dm0= IGFwcHJvdmU= IHdpcA== IHVsdHJh IGludGVuZA== IERJ YXNjdWxhcg== IHN0YXlz IEtvcg== IEts IGludmVzdGluZw== TGE= IGJlbGlldmluZw== YmFk bW91dGg= IHRheHBheWVy 44OD IFF1ZWJlYw== IGxhcA== IFN3aXNz ZHJvcA== IGRyYWlu aXJp ZXRj ZnRlbg== IE5leA== IHN0cmF3 IHNjcmVhbWluZw== IGNvdW50ZWQ= IGRhbWFnaW5n IGFtYmFzc2Fkb3I= Y2VudHVyeQ== IHByb3g= IGFycmVzdHM= dXY= aWxhdGVyYWw= IENoYXJn IHByZXNjcmliZWQ= IGluZGVwZW5kZW50bHk= IGZpZXJjZQ== IEJhYnk= IGJyYXZl IHN1aXRz PT4= IGJhc2VsaW5l IFJhdGU= IGlzbGFuZHM= ICgo Z3JlZW4= aXhlbHM= IG5hbWVseQ== IFZpbGxhZ2U= dGhhbg== YW15 VmVyc2lvbg== Z21haWw= ZW50aWFscw== IFN1ZA== IE1lbGJvdXJuZQ== IGFycml2aW5n IHF1YW50dW0= ZWZm cm9wb2xpdGFu VHJp IGZ1bmVyYWw= IElS w4PDgsODw4LDg8OCw4PDgsODw4LDg8OCw4PDgsODw4I= IENvYg== aXRhYmx5 IHR1cmI= IGNvbWJv UmV2aWV3 IGRlcGxveW1lbnQ= dWl0eQ== IEJvdHQ= IGludmlzaWJsZQ== IHJlbmRlcmluZw== IHVubG9ja2Vk IGFxdQ== IFZsYWRpbWly IHBhZA== IEJyYWlu IExlZ2FjeQ== ZHJhZ29u IEt1cmRpc2g= IHNvdW5kZWQ= IGRldGFpbmVk IERN Z2FyeQ== IGRhdWdodGVycw== IGRpc3R1cmJpbmc= dWth IFBhcmFk IHRhc3Q= IHVuZm9ydHVuYXRl IHVs ZW1pbg== IGF0dGVuZGFuY2U= dHJs IHBhcmtz IE1lbW9yaWFs IEFsaWNl b3RoeQ== Z3VhcmQ= IERpc2U= IFNoYW4= IEZvcnVt UmljaA== IHNoaWZ0ZWQ= dWV6 IGxpZ2h0ZXI= IE1hZ24= IGNvZA== U2No aGFtbWFk UHVi MzUw IFBva2Vtb24= IHByb3RvdHlwZQ== IHVucmU= QmFzZQ== IFN0dWRlbnRz IFJlcGx5 IENvbW11bmlzdA== IGdhdQ== IFR5bGVy SVo= IHBhcnRpY2lwYXRlZA== IHN1cHJlbQ== IERldGFpbHM= IHZlc3NlbHM= cm9k IHRyaWJl a2VlcA== IGFzc3VtcHRpb25z IHBvdW5k IGNydWRl IEF2YWlsYWJsZQ== IHN3aW1taW5n IGluY2x1c2lvbg== IGFkdmFuY2Vz Y3VsYXRpb24= IGNvbnNlcnZhdGlvbg== IG92ZXJk IEJ1ZmZhbG8= QXJ0aWNsZQ== ZWRnZQ== IGF3YQ== IE1hZGlzb24= IHNpZGV3 IGNhdGFzdA== IEtyaXN0 dWNsZQ== IEhpZ2h3YXk= IFRlcnJvcg== IGFjdGl2YXRpb24= IHVuY29uc2Npb3Vz IFNhdGFu IFN1c2Fu aWxsZXJ5 IGFycmFuZ2Vk aW9w IHJ1bW9ycw== dXJyaW5n dGhpbms= IEtlaXRo IEtpbmQ= IGF2b2lkaW5n Ynlu bnV0 IFNwZWFrZXI= cnVz bmFtZXM= IGd1aWx0 IE9seW1waWNz IHNhaWw= IE1lcw== bGV2YW50 IENvbHVtYnVz YWZ0 Q2l0eQ== U291dGg= IEhhcnZleQ== IFB1bg== U2V2ZXJhbA== IG1lbnRhbGx5 IGltcHJlc3M= bW91bnQ= IFVidW50dQ== 4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU IFN1cGVybWFu IE1Qcw== IGludGVudGlvbnM= IFJhY2luZw== IGxpa2VsaWhvb2Q= IDI0MA== VG90YWw= IHRveXM= IFdhdHNvbg== IHVyZ2U= TGVhcg== IFBhcGVy IG9jY3VycmluZw== IEJlbmc= IENlcnQ= IHN0b25lcw== VGlt IFR3aW4= emI= IER5bmFt IHBvbGl0aWNpYW4= a2Vucw== IEVudGVycHJpc2U= VVRFUlM= IGFib2w= IHJlZnJlc2g= IGFyYml0cmFyeQ== cGVjdGlvbg== IHRyb3VibGVz IH0pOw== dHY= IHBpbG90cw== IGRpc3RyaWJ1dGU= IGF1ZGl0 IHBhdXNl b3JpZ2luYWw= IHJpdmFscw== wqM= Rmln VEw= YWJpbA== cnlpbmc= TGlu aW9uZWQ= bG9u IGZhbmN5 IGNyYXNoZWQ= IHRyYWN0 IHNoZWQ= IGNvbnN1bWU= QmFzZWQ= ZG93bmxvYWQ= aW5pdA== IHZvbHRhZ2U= SW50cm9kdQ== IGNvbmRlbW5lZA== IEZpbmFuY2U= cmVzcGVjdA== IGV4Y2x1ZGVk IGVzdGFibGlzaGluZw== aGVyaWM= IGhlcml0YWdl IHNwZWN0YWN1bGFy IHVuc3Q= IFNub3dkZW4= IExhbmU= U2Fu IHByb3RlY3Rpb25z c3RydWN0aW9u aW5jaW5u IG1hY3Jv Q3VzdG9t aW9zaXR5 IGVzcA== IGZ1bmN0aW9uaW5n IG11c2g= IHB1enpsZQ== IGV0aGljYWw= TWFs IGdvdmVybmluZw== IEZlcmd1c29u IHJlc3RvcmVk IHN0cmVzc2Vk IENvdW50ZXI= IEthcw== Y2xpcA== QU5T IHNlaXo= VUs= Ynlzcw== b2xkb3du YXBp IHBlcm1hbmVudGx5 b3VudGVycw== V2VzdA== VGhyb3VnaA== TGlnaHQ= YXRvZXM= IG5lYXQ= IGNvcmQ= dXJlcg== IHNldmVyZWx5 IEF2ZW4= IGludGVycm9n IHRyaXBsZQ== R2l2ZW4= TnVtYmVy IGFyaXNl IHNoZXI= cGxhbnQ= IGZsb3dlcg== IENvdQ== IGF0ZQ== IG5ld2Vy YnVs IG1lYW53aGlsZQ== IExhaXI= IGFkanVzdG1lbnQ= IENvcHlyaWdodA== IGRpdmVycw== aW9sb2dpY2Fs IGdhbWVycw== b2F0 IGhpc3RvcmljYWxseQ== IGFuYWxvZw== IGxvbmd0aW1l IHByZXNjcmlwdGlvbg== IE1pc3Q= IEh5cGVy IE1haW5l IERlaXR5 IG11bHRpcGw= IFJlaW5jYXJu IEh5ZA== IFBpYw== U2ls cmFudHM= IENyaXM= Ljs= KHs= ZXBlbmRlbmNl IHJlY3k= YXRldXI= IHF1YWQ= IGdsb2I= IGNvbmNlZA== dGVhbQ== IGNhcGl0YWxpc3Q= IExvdA== IHJveWFs IEN5YmVy IGJsYWNrcw== bWV0aWM= cml2 IERhbm55 IHNwbw== IFJP IGFuaW1hdGVk cnlwdGVk IERlcHV0eQ== IHJlbmRlcmVk RkU= IHN0cmVhaw== IGNsb3Vkcw== IERvdWc= fn5+fn5+fn4= IGRpc2NvdXI= IFZlaA== IHBzeWNob2xvZ3k= IEpvdXJuZXk= IGNyeXN0YWw= IEZyb3N0 IHN1c3BpY2lvbg== IHJlbGF0ZQ== b3J1cw== IENyeXB0 IE5WSURJQQ== Y29tZWQ= dXRpbmc= aW5jaW5uYXRp IHZ1bG5lcmFiaWxpdHk= b3N0aWM= IGlzb2xhdGlvbg== IGNvb2xpbmc= IENvYWxpdGlvbg== IDExOQ== Rm91cg== IERlYWw= IOKJ c2VtYmxl cmFtZW50 IEJhcmNlbG9uYQ== IDEwMg== IGNvY2FpbmU= b2NhbHlwc2U= RmVi b2dlbmlj IG11dGF0aW9u IGNyeXB0b2M= IEtlbA== IEdpdA== YWlz IHNpc3RlcnM= QU5L IGFjdGl2YXRl VGVy IGRyZWFk eWxvbg== IHByb3ByaQ== QXVzdA== IERlZmF1bHQ= IG91dGRvb3I= IHNoZWVy Y2VpdmU= IGdlbnRseQ== 0L4= UHJvZ3JhbQ== IOKGkg== IHZlZ2Fu IENydXM= IHJlc3BvbnNpYmlsaXRpZXM= IEhS T0xE IHByZXZlbnRz IHN0aWZm IFdlcmU= IGF0aGxldGlj IFNjb3Jl ICk6 IGNvbHVtbnM= IExvYw== YXZhaWxhYmxl IEZyYW0= IFNlc3Npb25z IGNvbXBhbmlvbg== IHBhY2tz MTQw IEtuaWdodHM= IGZhcnQ= IHN0cmVhbXM= IHNob3Jl IGFwcGVhbHM= IFBlcmZvcm1hbmNl aGF1bA== IFN0cmE= IE5hZw== MTAz IFRyYW5zcG9ydGF0aW9u QkI= RXY= emFu UHVibGlj IHR3aW4= dWxzaW9u TXVsdA== IGVsZWN0cm8= IHN0YXR1ZQ== YXRpb25hbGx5 IE5vcnQ= IGluc3BlY3Rpb24= Lyo= aWd1ZQ== IGNvbXBhc3Npb24= IFRhbGVz IFN0ZWlu IFNjcmVlbg== IEJ1Zw== IExpb24= Z2lybA== IHdpdGhkcmF3YWw= IG9iamVjdGl2ZXM= IGJsb29keQ== IHByZWxpbWluYXJ5 IGphY2tldA== IGRpbWVuc2lvbnM= IENvb2w= IE9jY3Vw IHdyZWNr IGRvdWJsZWQ= YW5raW5n IDE5NzU= IGdsYXNzZXM= IFdhbmc= cHJvdg== UGF0aA== Y29ubmVjdGVk IE11bHRp IE5vcndheQ== YWdvbmlzdA== IGZlYXJlZA== IHRvdWNoaW5n IGFyZ3VhYmx5 wq/Cr8Kvwq/Cr8Kvwq/Crw== IE5DQUE= Y2hlbQ== IHNwYXQ= IFdXRQ== IENlbA== aWdnZXI= IGF0dGFja2Vy IEpvaW4= b2JqZWN0 ZXR0YQ== IGVsaW1pbmF0ZWQ= ZGV0 IGRlc3RydWN0 IEx1Y2Fz Y3R1YXJ5 MTgw IEJyYWR5 IEJsdWVz QmF5 YXVrZWU= IHRpbWVsaW5l IGRlbGVnYXRlcw== d3JpdHRlbg== dWZmaWNpZW50 IHNoYXBlcw== Q29weXJpZ2h0 b3VibGU= c2VydmljZQ== IHBpb25l IGNvbGxlZ2Vz IHJvd3M= IHNwaXRl IGFzc2Vzc2Vk MzYw IGxlYXNl IGNvbmZpZGVudGlhbA== Y2tlcg== IE1hbm5pbmc= IFZvaWNl IHNlYWxlZA== IGNhbGN1bGF0ZQ== Tk8= IEFzc2lzdGFudA== IHRlZW5hZ2Vy dWxlbnQ= YXRoZXJpbmU= IG1vY2s= IGRpYW1vbmQ= IGZlc3Q= IHN3aXRjaGVk IHJlc3VtZQ== IFB1ZXJ0bw== IGxhbmVz aXJhdGlvbg== IFNpbWlsYXJseQ== IHJvZA== IFNlbA== IFBhbGFjZQ== IExpbWl0ZWQ= ZW91cw== IHZhcmlhbnQ= IHdhcmQ= ICkp U2hvdw== T09L QWxleA== IE5lcA== YnJpcw== IFdpa2lwZWRpYQ== IGV4Y2VwdGlvbmFs IG1hbmFnZXM= IERyYXc= QWdhaW4= IGNvcHBlcg== dXR0 IGV4cG9ydHM= IHBvcnRmb2xpbw== IGVsZXZhdGVk UmF0ZWQ= IE90aGVyd2lzZQ== IFRhY3Q= IFNoZWw= IFRY IuKAlA== IHJlc3Vy IFdh dmVuYW50 IG1vbmV0YXJ5 cGVvcGxl RW1haWw= IGZpZnR5 IFN3ZWV0 IE1hbGF5c2lh IGNvbmZ1c2luZw== IFJpbw== dWRh dXRlbmFudA== Iik7 IHByYWlzZWQ= IHZvbHVtZXM= dHVybg== IG1hdHVyZQ== IG5vbnByb2ZpdA== IHBhc3Npb25hdGU= IFByaXZhdGU= IDEwMw== IGRlc2NlbmQ= 56We dWZmeQ== aGVhZGVk V2hldGhlcg== cmllbg== emVjaA== YmVpdA== IGNocm9t IE1jTQ== IGRhbmNpbmc= IGVsZWc= IE5vdGljZWQ= MTE1 IGFkdm9jYWN5 RU5UUw== YW1ibGluZw== IE1pbm9y IEZpbm4= IHByaW9yaXRpZXM= IHRoZXJlb2Y= IFN0YWdl IFJvZ2Vycw== IHN1YnN0aXR1dGU= IEphcg== IEplZmZlcnNvbg== IGxpZ2h0bHk= MTAy IExpc2E= dWl0cw== eXNpY2Fs IHNoaWZ0cw== IGRyb25lcw== IHdvcmtwbGFjZQ== IHJlc2lk ZW5zZWQ= YWhu IHByZWZlcmVuY2Vz c2VydmVy IGRlYmF0ZXM= ZG9j IEdvZHM= IGhlbGljb3B0ZXI= IGhvbm91cg== IGNvbnNpZGVyYWJseQ== ZWRlZA== IEZlbWFsZQ== IEFubmU= IHJldW4= IEZhY2U= IEhhbGxvdw== IEJ1ZGdldA== IGNvbmRlbW4= IHRlbmRlcg== UHJvZg== b2NyYXRpYw== IFR1cm5lcg== IEFncmlj IDE5NzY= IGFwdA== ZGlzYw== IEZpZ2h0ZXI= IEF1cg== IGdhcmJhZ2U= aW5wdXQ= IEthcmw= IE9saXZlcg== IExhbmd1YWdl a24= Tm9u IENsYXI= IHRyYWRpdGlvbnM= IGFkdmVydGlzZW1lbnQ= IFNvcg== IGFyY2hpdmU= IHZpbGxhZ2Vz NzUw IGltcGxlbWVudGluZw== d2F1a2Vl IGRpZXRhcnk= IHN3aXRjaGluZw== UmVwdWJsaWM= IHZlbG9jaXR5 IGNpdA== IEF3YXJkcw== IGZpbmFuY2luZw== IGxhc3RlZA== KV0= IHJlbWluZGVy UGVyc29u IHByZWNpc2lvbg== IGRlc2lnbmVycw== IEZyaWVk IEJvcmRlcg== IHRyYWdpYw== IHdpZWxk IGluaXRpYXRpdmVz IFRhbms= d2Vy IGpvaW5z Um8= aW5lcnk= IGFycm93 IGdlbmVyYXRpbmc= Zm91bmRlcg== IHNlYXJjaGVz IHJhbmRvbWx5 QWNjZXNz IGJhdGNo IHBvc2Vk bGF0 IHB1cnN1aW5n YXNh IHRlc3RpZmllZA== Zm9ybWluZw== IFNoYXI= d2lraQ== IEVpdGhlcg== U29tZXRpbWVz IHNlbmF0b3Jz IEpvaG5ueQ== IFRhbGliYW4= IEdQUw== IjoiLw== 44Gu5Q== IGFuYWx5emVk IFJ1Ymlv IE1vdmVtZW50 b3BhcmQ= aWlp U3RhbmQ= ZmlnaHQ= IGlnbm9yaW5n aWFuZw== IEdO c29ldmVy IFNUQVQ= IHJlZnVzaW5n IHN3ZWF0 IGJheQ== UE9SVA== aXJtZWQ= YWt5 IGRpc3Bybw== IGxhYmVsZWQ= IDEwOA== SGVsbG8= IHBsZWFzYW50 YWJh IHRyaXVtcGg= IGFib2FyZA== IGluY29t IENyb3c= bGV0dA== IGZvbGs= IGNoYXNl YGA= IEJydXM= IHRlZW5z Y3Vl IHRlcnJhaW4= aHlk aWxpZ2h0 T1JZ U3VwcG9ydA== ZXdz bGxp cmFpbnRz IENhbmQ= IGFidXNlZA== YWNobWVudA== bGFyZw== QmFz IENhbmNlcg== IDE5Nzg= IHN1cHBvcnRlcg== YWNjZXNz IFRlcm1pbg== IFRhbXBh IEFOWQ== IG5ld2VzdA== IENyaW1pbmFs ZWR1 IDE5MzA= IGFkbWl0cw== IGVuZGU= IGZhaWx1cmVz dXJhdGU= ZnVsbmVzcw== Y3ljbA== IFN1YmplY3Q= IGluZmluaXRl dGhyZWU= V0E= cGl0 IEluc3RhbGw= UmFk aWxpYXRpb24= R00= IGNvbnRpbmVudA== IGFjY29tbW9kYXRl IENsYXk= IHB1cA== IEZ1bmN0aW9u IGhhbW1lcg== IEFsYmVydGE= IHJldmlzZWQ= IG1pbm9yaXRpZXM= IG1lYXN1cmVtZW50 Q29ubmVsbA== IGRpc2FibGU= IE1peA== SW5jcmU= IGZvcms= IFJvc2Vu IGltcGxpZXM= dW1ibHI= QU5H IHByb3RlaW5z IGFnZ3Jlc3Npb24= IGZhY2lsaXRhdGU= U04= IGlsbGVnYWxseQ== dWVy IGFjYWRlbQ== IHB1eno= IFNoaWZ0 cGF5 b2xsbw== IGF1ZGllbmNlcw== QnVpbGQ= IG5vYmxl IHN5bnRheA== 4piF IGJlYW0= IEJlZA== IEFsZA== IG9yaWdpbnM= dmlkZW8= IDE5Nzc= IEFzc2F1bHQ= IGdhcmFnZQ== VGVhbQ== IHZlcmRpY3Q= IGR3YXI= IFZpcnR1YWw= ZXZlbnQ= S2VlcA== IHNlbnRpbWVudA== IHdpbGRsaWZl c2hpcnQ= IGJ1cmc= IHJlY29tbWVuZGF0aW9u cmVwcmVzZW50 IGdhbGxlcnk= b3duZXJz IHNjaG9sYXI= IGNvbnZlbmllbmNl IFN3aWZ0 IGNvbnZpbmM= Q2Fw IHdhcmZhcmU= IFZpc3VhbA== IGNvbnN0aXR1dGU= IGFib3J0 IFdlYXRoZXI= IExvb2tpbmc= IEhlbQ== IG1hcnRpYWw= IGluY29taW5n ZXRpdGlvbg== IHRvbGVyYW5jZQ== IENyZWF0ZWQ= IGZsb3dz IEVsZGVy IHNvdWxz IGZvdWw= IFBhaW4= IENBTg== IDIyMA== YmM= aGVuZA== IGdlbml1cw== UmVhbA== IFdy b21ldGVy cGFk IGxpbWl0aW5n IFNp IExvcmU= IEFkdmVudHVyZXM= IHZhcmllZA== RGlzYw== Zmlu IFBlcnNvbmFs Q2hyaXM= IGludmVudGVk IGRpdmU= IFJpc2U= IG96 IENvbWljcw== IGV4cG9zZQ== IFJlYg== bGV0dGVycw== c2l0ZQ== aW1hdGVk IGhhY2tpbmc= IGVkdWNhdGVk IE5vYm9keQ== IGRlcHJp IGluY2VudGl2ZQ== 44K3 IG92ZXJzaWdodA== IHRyaWJlcw== IEJlbGdpdW0= IGxpY2Vuc2luZw== b3VydA== UHJvZHVjdA== YWhs IEdlbQ== IHNwZWNpYWxpc3Q= IGNyYQ== YW5uZXJz IENvcmJ5bg== IDE5NzM= UkVBRA== IHN1bW1hcg== IG92ZXJsb29r IEFwcGxpY2F0aW9u IGluYXBwcm9wcmlhdGU= IGRvd25sb2FkZWQ= UXVl IEJlYXJz IHRodW1i IENoYXJhY3Rlcg== IFJlaW5jYXJuYXRlZA== IFNpZA== IGRlbW9uc3RyYXRlcw== c2t5 IEJsb29tYmVyZw== IEFycmF5 IFJlc3VsdHM= IEZvdXJ0aA== IEVEVA== IE9zY2Fy Y2VuZA== IDEwNg== IE5VTEw= IEhFUkU= bWF0Y2g= IEJydW4= IGdsdWNvc2U= aWVn ZWd1 IGNlcnRpZmllZA== IHJlbGll IGh1bWFuaXRhcmlhbg== IHByYXllcnM= S2luZw== IG5hbg== aG91 MTA4 dWx1 IHJlbmV3YWJsZQ== IGRpc3Rpbmd1aXNo IGRlbnNl IFZlbnQ= IFBhY2thZ2U= IEJvc3M= IGVkaXRvcnM= IG1pZ3I= VHJh IFBldGVycw== IEFyY3RpYw== MjAwNA== IENhcGU= IGxvY2FsbHk= IGxhc3Rpbmc= IGhhbmR5 Liku UGFu IFJFUw== SW5kZXg= IHRlbnNpb25z IGZvcm1lcmx5 IGlkZW9sb2dpY2Fs IHNlbnNvcnM= IGRlYWxlcnM= IGRlZmluZXM= U2s= IHByb2NlZWRz IHByb3h5 YXppbmVz IEJhc2g= IFBhZA== IENyYWZ0 ZWFsb3Vz IHNoZWV0cw== b21ldHJ5 SnVuZQ== Y2xvY2s= VFQ= IFRoZWF0cmU= IEJ1eno= IGNoYXB0ZXJz IG1pbGxlbm4= IGRvdWdo IENvbmdyZXNzaW9uYWw= IGltYWdpbmVk YXZpb3I= IGNsaW5pYw== IDE5NDU= IGhvbGRlcg== cm9vdA== b2xlc3Rlcg== IHJlc3RhcnQ= Qk4= IEhhbWFz IEpvYg== IG9yYg== IHJhbQ== IGRpc2Nsb3Nl IHRyYW5zbGF0ZQ== IGltbWlncmFudA== IGFubm95aW5n IHRyZWF0eQ== YW5pdW0= IFRlYQ== IExlZ2lvbg== IGNyb3dkcw== IEJlYw== IEFlcg== b2h5ZA== QnJv TG9va2luZw== IGxicw== IGFnZ3Jlc3M= IHNlYW0= IGludGVyY2VwdA== IE1J bWVyY2lhbA== YWN0aXY= IENpdA== IGRpbWVuc2lvbg== IGNvbnNpc3RlbmN5 IHJ1c2hpbmc= IERvdWdsYXM= IHRyaW0= SW5zdGFsbA== aWNrZXI= IHNoeQ== MTA2 IG1lbnRpb25z cGVsbGVk IFRhaw== Y29zdA== IGNsYXNzcm9vbQ== IGZvcnR1bmU= ZHJpdmVu IHVubGU= IFdoZWVs IGludmVzdG9y IE1hc3RlcnM= a2l0 IGFzc29jaWF0aW9ucw== IEV2b2x1dGlvbg== b3Bpbmc= dXNjcmlwdA== IHByb3ZpbmNpYWw= IFdhbHRlcg== YXZp U08= IHVubGltaXRlZA== RW5nbGlzaA== IENhcmRz IEVib2xh bmVyZWQ= IHJldmVuZ2U= IG91dHJpZ2h0 dW1wZXI= IGZpdHRpbmc= IFNvbGlk IGZvcm1hbGx5 IHByb2JsZW1hdGlj IGhhemFyZA== IGVuY3J5cHRpb24= IHN0cmFpZ2h0Zm9yd2FyZA== IEFL IHBzZQ== IE9yYg== IENoYW1iZXI= IE1haw== Q29udGVudHM= IGxveWFsdHk= IGx5cmljcw== IFN5bQ== IHdlbGNvbWVk IGNvb2tlZA== IG1vbm9w IG51cnNl IG1pc2xlYWRpbmc= IGV0ZXJuYWw= IHNoaWZ0aW5n ICs9 Vmlz IGluc3RpdHV0aW9uYWw= aWxsYXJ5 IHBhbnQ= VkVSVA== IEFDQw== IEVuaA== IGluY29u IFJFVVRFUlM= IGRvbmF0ZWQ= 4oCm4oCm4oCm4oCm SW50ZXJu IGV4aGliaXQ= IHRpcmU= IFJpYw== IENoYW1waW9u IE11aGFtbWFk TklORw== IFNvY2Nlcg== IG1vYmlsaXR5 IHZhcnlpbmc= IE1vdmll IGxvcmQ= b2Fr RmllbGQ= IHZlY3Rvcg== dXNpb25z IHNjcmFw IGVuYWJsaW5n bWFrZQ== VG9y Lio= fHw= IFdlYnNpdGU= IE5QQw== IHNvY2lhbGlzdA== IEJpbGx5 IEFkZGl0aW9uYWw= IGNhcmdv IGZhcm1z IFNvb24= IFByaXpl IG1pZG5pZ2h0 IDkwMA== c2Vlbg== IFNwb3Q= IHNoZWVw IHNwb25zb3JlZA== IEhp IEp1bXA= IDE5Njc= TWljcm9zb2Z0 IEFnZW50 IGNoYXJ0cw== ZGly IGFkamFjZW50 IHRyaWNrcw== IG1hbmdh IGV4YWdnZXI= Lz4= Zm9vdGJhbGw= IEZDQw== R0M= IFRpZXI= YW5kcmE= T1VORA== JSks IGZydWl0cw== VkM= IEFB Um9iZXI= IG1pZHN0 4pc= YW5rYQ== IGxlZ2lzbGF0dXJl IE5laWw= IHRvdXJpc3Rz IiI= IFdhcm5pbmc= IE5ldmVydGhlbGVzcw== IE9mZmljaWFs IFdoYXRldmVy IG1vbGQ= IGRyYWZ0ZWQ= IHN1YnN0YW5jZXM= IGJyZWVk IHRhZ3M= IFRhc2s= IHZlcmI= IG1hbnVmYWN0dXJlZA== Y29tbWVudHM= IFBvbGlzaA== UHJvdg== IGRldGVybWluZXM= T2JhbWE= a2Vycw== IHV0dGVybHk= IHNlY3Q= c2NoZQ== IEdhdGVz IENoYXA= IGFsdW1pbnVt IHpvbWJpZQ== IFRvdWNo IFVQ IHNhdGlzZnk= IHByZWRvbWlu YXNjcmlwdA== IGVsYWJvcmF0ZQ== IDE5Njg= IG1lYXN1cmluZw== IFZhcmk= YW55YWh1 IHNpcg== dWxhdGVz aWRnZXM= aWNrZXRz IFNwZW5jZXI= VE0= b3VidGVk IHByZXk= IGluc3RhbGxpbmc= IENhYg== cmVlZA== cmVhdGVk U3VwcA== IHdyaXN0 IEtlcnJ5 MTA3 IEtsZQ== IFJhY2hlbA== IGNvdHRvbg== IEFSRQ== IEVsZQ== Q29udHJvbA== IGxvYWRz IERvZA== YW5hcw== Ym9uZQ== IGNsYXNzaWNhbA== IFJlZ2lvbmFs IEludGVn Vk0= IGRlc2lyZXM= IGF1dGlzbQ== c3VwcG9ydGVk IE1lc3NhZ2U= IGNvbXBhY3Q= d3JpdGVy IDEwOQ== IEh1cnJpY2FuZQ== Y2lzaW9u IGN5Y2xlcw== IGRyaWxs IGNvbGxlYWd1ZQ== IG1ha2Vy R2VybWFu IG1pc3Rha2Vu U3Vu IEdheQ== IHdoYXRzb2V2ZXI= IHNlbGxz IEFpcmw= bGl2 IE9wdGlvbg== IHNvbHZlZA== IHNlY3RvcnM= IGhvcml6b250YWw= IGVxdWF0aW9u IFNraWxs IEJpbw== Z2VtZW50 IFNuYXA= IExlZ2Fs IHRyYWRlbWFyaw== IG1ha2V1cA== IGFzc2VtYmxlZA== IHNhdmVz IEhhbGxvd2Vlbg== IFZlcm1vbnQ= IEZST00= IGZhcm1pbmc= IFBvZGNhc3Q= YWNjZXB0YWJsZQ== IEhpZ2hlcg== IGFzbGVlcA== dWxsaXZhbg== IHJlZmVyZW4= IExldg== IGJ1bGxldHM= b2tv SEM= IHN0YWlycw== IG1haW50YWlucw== IExvd2Vy IFZp IG1hcmluZQ== IGFjcmVz IGNvb3JkaW5hdG9y IEpvaA== IGNvdW50ZXJwYXJ0cw== IEJyb3RoZXJz IGluZGljdA== YnJh IGNodW5r IGNlbnRz SG9tZQ== IE1vbnRo IGFjY29yZGluZ2x5 aWZsZXM= IEdlcm1hbnM= IFN5bg== SHVi IGV5ZWI= 4pSA4pSA4pSA4pSA IHJhbmdlcw== IEhvbGxhbmQ= IFJvYm90 ZmM= TWlrZQ== IHBsYXNtYQ== IHN3YXA= IGF0aGxldGU= IFJhbXM= LCci IGluZmVjdGlvbnM= IGNvcnJpZA== IHZpYg== IHBhdGNoZXM= IHRyYWRpdGlvbmFsbHk= IHJldmVsYXRpb24= IHN3ZWVw IGdsYW5jZQ== IGluZXg= MjAwMw== IFJhdw== d29ya2luZw== b3N1cmVz IERhdA== IEx5bmNo IGxldmVyYWdl IFJlaWQ= IGNvcnJlbGF0aW9u aWFuY2Vz YXZhc2NyaXB0 IHJlcG9zaXRvcnk= cmV0dHk= IDE5NzI= MjQw IG91bg== cG9s IFJlZWQ= IHRhY3RpY2Fs aXNpdGU= QXBwbGU= IFF1aW5u IHJhcGVk aWxsbw== RXVyb3Bl IGFsZ29yaXRobXM= IFJvZHJpZw== aXU= IGlsbHVt IGZhbWU= IGludHJvZHVjaW5n IGRlbGF5cw== IFJhaWRlcnM= IHdoaXN0bGU= IG5vdmVscw== IFJlYWxseQ== IGRlcml2 IHB1YmxpY2F0aW9ucw== IE5laXRoZXI= IENvbW1lcmNl IGFzdG9u bGFuZ3VhZ2U= Tm90ZXM= IFJvdGg= IEZlYXI= IG1hdGU= IHBhcmFkZQ== IFFC IG1hbmV1 IENpbmNpbm5hdGk= bWl0dGluZw== IHdhaXN0 IFJldw== IGRpc2NvbnQ= 0LA= IHN0YXJpbmc= IGFsaWFz IHNlY3VyaXRpZXM= IHRvaWxldA== IEplZGk= IHVubGF3 dmlzZWQ= Ly8vLy8vLy8= XSg= IFdlaXNz IHByZXN0 IENvbXBhbg== IG1lbW8= IEdyYWNl SnVseQ== IEVsaXRl Y2VudGVy IFN0YXk= IGdhbGF4eQ== IHRvb3Ro IFNldHRpbmdz IHN1YmplY3RlZA== 44Km IGxpbmViYWNr IHJldGFpbGVycw== IFdhbnQ= IGRhbmdlcnM= QWly IHZvbHVudGFyeQ== ZXdheQ== IGludGVycHJldGVk b3RpbmU= w6c= IHBlbA== U2VydmljZQ== IEV2ZW50dWFsbHk= IGNhcmVlcnM= IHRocmVhdGVu IG1lbW9y IEJyYWRsZXk= YW5jaWVz c24= IFVua25vd24= TmF0aW9uYWw= IHNoYWRvd3M= YWlsYW5k IERhc2g= RXZlcnlvbmU= aXp6YXJk TWFyY2g= PSg= IHB1bGxz IHN0cmFuZ2Vy IGJhY2t3YXJkcw== IEJlcm5hcmQ= aW1lbnNpb25hbA== IGNocm9u IHRoZW9yZXRpY2Fs a3RvcA== IHdhcmU= IEludmVzdGln IEluaXRp IE9wZXJhdGlvbnM= b3Zlbg== b2NpZGU= Ki8= IGZsYW1lcw== IENhc2g= c2hpdA== IGNhYg== IEFuYWx5 IFNlYWg= IGRlZmluaW5n IG9yZGVyaW5n IGltbXVu IHBlcnNpc3RlbnQ= QUNI UnVzc2lhbg== bWFucw== IGhpbmQ= IHBob3RvZ3JhcGh5 wqk= IGh1Zw== IDEwNw== IEhlbmNl aW90cw== dWRlYXU= IHN1YnNpZGllcw== IHJvdXRpbmVseQ== IERldmljZQ== aXRpYw== IGRpc2d1c3Q= bGFuZGVy IDE5NDA= IGFzc2lnbm1lbnQ= IEJlc2lkZXM= d2ljaw== IER1c3Q= dXNj c3RydWN0ZWQ= MTEx ZGV2ZWxvcA== IGZvbmQ= IGludGVyc2VjdGlvbg== IGRpZ25pdHk= IGNvbW1pc3Npb25lcg== V2l0aG91dA== cmVhY2g= IGNhcnRvb24= IHNjYWxlcw== 44Ot RklH IHN1cnZleXM= IEluZG9uZXNpYQ== IGFydHdvcms= IHVuY2g= IGN5Y2xpbmc= dW5jdA== YXVlcg== b3JhdGU= IE9idmlvdXNseQ== IGNoYXJhY3Rlcml6ZWQ= ZmVsZA== IGFmZmlybQ== IGlubmluZ3M= IOk= IGFsaWVucw== IGNsb3Ro ZXRvb3Ro IENlcnRhaW4= wqc= IGRpZ2VzdA== a25vdw== IFhM IHByZWRpY3Rpb25z IGRpbg== V0FS IGFmdGVybWF0aA== RXhhbXBsZQ== IFN1Y2Nlc3M= IFRocg== SUdO IG1pbmVy QnVz IGNsYXJpdHk= aGVpbWVy IE9VVA== IFNlbmQ= IENpcmNsZQ== IERpZXQ= IHByb25vdW5jZWQ= IGNyZWF0b3Jz IGVhcnRocXVha2U= YXR0ZXJ5 Z2VvbnM= IG9k IGxheWluZw== b3Jw VWx0 cHJvamVjdA== IHVuZGVybWlu IHNlcXVlbA== U2Ft IERhcmtuZXNz IHJlY2VwdGlvbg== YnVsbA== WVM= IFZpcg== IHNlcXVlbmNlcw== IENvaW4= IG91dGZpdA== IFdhaXQ= MTE5 IGRlbGl2ZXJz Li4uLi4u IGJsb3du IEVzYw== IE1hdGg= cGVybQ== IFVs IGdsaW0= IGZhY2lhbA== IGdyZWVuaG91c2U= IHRva2Vucw== Ly0= IEFubnVhbA== IE9ORQ== IHRlZW5hZ2U= IFBoeXNpY2Fs IExhbmc= IENlbHQ= IHN1ZWQ= aXZpZHVhbGx5 IHBhdGllbmNl Y2hhaXI= cmVndWxhcg== IGF1Zw== aW52 ZXhjZXB0 IExpbA== IG5lc3Q= ZmQ= c3Vt IENoYXNl UnVzc2lh IEplbm5pZmVy IG9mZnNlYXNvbg== T3ZlcmFsbA== Rm9yZQ== IHJpb3Q= QXVk Zm9ybWVy IGRlZmVuZGVycw== IENU aW90aWM= cmlibHk= IGF1dG9tYXRlZA== IHBlbmlz IGluc2lzdA== IGRpYWdyYW0= IFNRTA== IEdhcmM= IHdpdGNo Y2xpZW50 aWVycmE= YW1iZXJz IHJlY291bnQ= ZmFy VmVyeQ== b3N0ZXJvbmU= IGFwcHJlY2lhdGVk IFBlcmZlY3Q= U2VjdGlvbg== IGRvc2Vz b2NhdXN0 IGNvc3RseQ== IGdyYW1z IFNoaQ== IHdyZXN0bGluZw== IDE5NzE= IHRyb3BoeQ== IG5lcnZl IEtheg== IEV4cGVyaWVuY2U= IHBsZWRnZWQ= IHBsYXliYWNr IGNyZWF0aXZpdHk= Ynll IGF0dGFja2Vycw== IGhvbGRlcnM= IENvYWNo IFBoRA== IHRyYW5zZmVycw== IGNvbG9yZWQ= IEhpbmR1 IGRyb3du IGxpc3RlbmVk IFdB aWFzbQ== UE8= IGFwcGVhbGluZw== IGRpc2Nsb3NlZA== IENoaWNrZW4= YWdnaW5n IHBsZWFkZWQ= IG5hdmlnYXRpb24= IFJldHVybnM= IFtb Uk9S RUE= IHBob3RvZ3JhcGhlcg== IFJpZGVy aXBwZXJz IHNsaWNl IGVyZWN0 IGhlZA== aXNzYW5jZQ== IFZpa2luZ3M= dXJpb3Vz IGFwcGV0 b3VidGVkbHk= Q2hpbGQ= IGF1dGhlbnRpYw== b29z IE1ha2luZw== IGFubm91bmNpbmc= IGJvZA== IG1ldGVy IE5pbmU= IFJvZ3Vl IHdvcmtmb3JjZQ== IHJlbmV3ZWQ= IG9yZ2FuaXNhdGlvbnM= YWNz UExF U2hvcnQ= IGNvbXBvdW5kcw== IFZpc2l0 IGVudmVsb3A= ZWFydGg= IHN1cHBvcnRpdmU= Z2dsZQ== IEJydXNzZWxz IEd1aWxk Q3JlYXRl UkVM IGF2ZXJhZ2Vk IDE5Njk= cmlhZ2Vz IGxlbmd0aHk= IGZvcmdvdA== T2theQ== IEVyZA== IGRlYWxlcg== IHJlY2Vzc2lvbg== REQ= IGRlc3BlcmF0ZWx5 IGh1bmdlcg== IHN0aWNrcw== IG1waA== IEZhaXRo IGludGVudGlvbmFsbHk= IGRlbW9s dWVsbGVy IFNhbGU= IGRlYnJpcw== c3ByaW5n IGxlYXA= Pj4+Pg== IGNvbnRhaW5lcnM= c2VsbGluZw== cmFuZWFu YXR0ZXJpbmc= IGNvbW1lbnRlZA== IENN b251dA== IHdvb2Rz ZXNwZWNpYWxseQ== IG9yZ2FuaXpl aXZpYw== IFdvb2Rz YW5nYQ== c3F1 IG1hag== YW1vbg== IGF4aXM= IDE5NzQ= IERlbm1hcms= IHdhcnJpb3I= IFBhbmQ= IG91dGxpbmVk IEJP aW5zdWxh emlsbGE= ZWJvb2s= IGRhcmU= IHNlYXJjaGVk IG5hdmlnYXRl U24= d3JpdGluZw== IHVuaXRlZA== SmFwYW4= IEhlYnJldw== IGZsYW1l IHJlbGllcw== IGNhdGNoaW5n IFNobw== IGltcHJpc29ubWVudA== IHBvY2tldHM= IGNsb3N1cmU= IEZhbQ== dGlt YWRlcXU= QWN0aXZpdHk= IHJlY3J1aXRpbmc= IFdBVENI IEFyZ2VudGluYQ== ZGVzdA== IGFwb2xvZ2l6ZQ== b3Jv IGxhY2tz IHR1bmVk IEdyaWZmaW4= IGluZmFtb3Vz IGNlbGVicml0eQ== c3Nvbg== IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0= IElzaXM= IERpc3BsYXk= IGNyZWRpYmlsaXR5 IGVjb25vbWllcw== IGhlYWRsaW5l IENvd2JveXM= IGluZGVm IGxhdGVseQ== IGluY2VudGl2ZXM= YnV0dG9u IE1vYg== QXV0 IHJlc2lnbmVk IE9t Y2FtcA== IHByb2ZpbGVz IHNjaGVtZXM= b2xwaGlucw== YXllZA== Q2xpbnRvbg== ZW5o IFlhaG9v IGFic3Q= IGFuaw== c3VpdHM= IHdpc2hlZA== IE1hcmNv dWRkZW4= IHNwaGVyZQ== IEJpc2hvcA== IGluY29ycG9yYXRlZA== IFBsYW50 MTE0 IGhhdGVk cGlj IGRvbmF0ZQ== IGxpbmVk IGJlYW5z IHN0ZWFsaW5n IGNvc3R1bWU= IHNoZXJpZmY= IGZvcnR5 IGludGFjdA== IGFkYXB0ZWQ= IHRyYXZlbGxpbmc= YmFydA== IG5pY2VseQ== IGRyaWVk IHNjYWw= b3NpdHk= Tk9URQ== IEJo IEJyb25jb3M= IElnbg== IGludGltYXRl IGNoZW1pc3RyeQ== IG9wdGltYWw= RGVi IEdlbmVyYXRpb24= IF0s aWNoaQ== IFdpaQ== IFlPVVI= dmVudGlvbnM= V3JpdGU= IHBvcHVs dW5uaW5n IFdvcg== Vm9s IHF1ZWVu aGVhZHM= S0s= IGFuYWx5emU= b3BpYw== ZWFyY2hlcnM= IGRvdA== bGVncmFwaA== YXN0aWNhbGx5 IHVwZ3JhZGVz IGNhcmVz IGV4dGVuZGluZw== IGZyZWV6ZQ== IGluYWJpbGl0eQ== IG9yZ2Fucw== IHByZXRlbmQ= IG91dGxldA== MTEz b2xhbg== IE1hbGw= dWxpbmc= dGFsaw== IGV4cHJlc3Npbmc= IEFsd2F5cw== IEJlZ2lu ZmlsZXM= IGxpY2Vuc2Vz JSU= IE1pdHQ= IGZpbHRlcnM= IE1pbHdhdWtlZQ== R04= IHVuZm9sZA== TW8= IG51dHJpdGlvbg== cHBv Qm8= IGZvdW5kaW5n IHVuZGVybWluZQ== IGVhc2llc3Q= IEN6ZWNo IE1hY2s= IHNleHVhbGl0eQ== IE5peG9u V2lu IEFybg== IEtpbg== 44Kj aWNlcg== IGZvcnR1bg== IHN1cmZhY2Vz YWdoZA== IGNhcnJpZXJz IFBBUlQ= IFRpYg== IGludGVydmFs IGZydXN0cmF0aW5n IFNoaXA= IEFybWVk ZmZl IGJvYXRz IEFicmFoYW0= aW5pcw== IHN1aXRlZA== dGhyZWFk aW92 YWJ1bA== IFZlbmV6dWVsYQ== IHRvbQ== c3VwZXI= IGNhc3RsZQ== YWx0aG91Z2g= aW94aWRl ZWNoZXM= IGV2b2x1dGlvbmFyeQ== IG5lZ290aWF0ZQ== IGNvbmZyb250ZWQ= UmVtZW1iZXI= IDE3MA== U3VjaA== IDkxMQ== bXVsdA== IEFieXNz dXJyeQ== a2Vlcw== c3BlYw== IEJhcmJhcmE= IGJlbG9uZ2luZw== IHZpbGxhaW4= aXN0YW5p IGFjY291bnRhYmxl IHBvcnRpb25z IERlY2w= VXI= IEthdGU= Z3Jl IG1hZ2F6aW5lcw== VUNL IHJlZ3VsYXRl b21vbg== IEFsbW9zdA== IG92ZXJ2aWV3 IHNjcmFt IGxvb3Q= IEZpdHo= IGNoYXJhY3RlcmlzdGlj IFNuYWtl c2F5 IFJpY28= IHRyYWl0 IEpvaW5lZA== YXVjdXM= IGFkYXB0YXRpb24= IEFpcmxpbmVz IGFyY2hhZQ== IElkZQ== IGJpa2Vz IGxpdGVyYXJ5 IGluZmx1ZW5jZXM= IFVzZWQ= Q3JlYXQ= IHBsZWE= IERlZmVuY2U= IEFzc2Fzcw== IHBvbmQ= VUxU KSI= IGV2YWx1YXRlZA== IG9idGFpbmluZw== IGRlbW9ncmFwaGlj IHZpZ2ls YWxleQ== IHNwb3VzZQ== IFNlYWhhd2tz cmVzcG9ucw== IEJlbHQ= dW1hdGlj IHJpc2Vz cnVubmVy IE1pY2hlbGxl IHBvdGVudA== cmFjZQ== IFBBQw== RmluZA== b2xlc3Rlcm9s SVNT IEludHJvZHVjZWQ= cmVzc2Vz aWdubWVudA== T3M= IFR1 IERleA== aWNpZGVz IHNwYXJrZWQ= IExhdXJh IEJyeWFudA== IHNtaWxpbmc= IE5leHVz IGRlZmVuZGFudHM= IENhdGFs IGRpc2hlcw== c2hhcGVk IHByb2xvbmc= bXQ= KCQ= 44CC IGNhbGN1bGF0aW9ucw== IFNhbWU= IHBpdg== SEg= IGNhbmNlbGxlZA== IGdyaW4= IHRlcnJpdG9yaWVz aXN0aWNhbGx5 Q29tZQ== IFBhcmVudA== UHJvamVjdA== IG5lZ2xpZw== IFByaXZhY3k= IGFtbW8= TEVDVA== b2x1dGVseQ== IEVwaWM= IG1pc3VuZGVy d2Fs QXByaWw= bW9z cGF0aHk= IENhcnNvbg== IGFsYnVtcw== IEVhc3k= IHBpc3RvbA== PDw= IFwo dGFyZ2V0 aGVscA== IGludGVycHJl Y29uc2Npb3Vz IEhvdXNpbmc= IEpvaW50 MTI3 IGJlZXJz c2NpZW5jZQ== IEZpcmVmb3g= ZWZmZWN0aXZl IENhYmlu IE9rYXk= IEFwcGxpYw== IHNwYWNlY3JhZnQ= IFNS dmV0 IFN0cmFuZ2U= U0I= IGNvcnBz aWJlcmFs ZWZmaWNpZW50 IHByZXZhbGVuY2U= IGVjb25vbWlzdHM= MTE4 VGhyZWFk b3JkYWJsZQ== T0RF IENhbnQ= PS09LQ== aWZpYWJsZQ== IEFyb3VuZA== IHBvbGU= IHdpbGxpbmduZXNz Q0xB IEtpZA== IGNvbXBsZW1lbnQ= IHNjYXR0ZXJlZA== IGlubWF0ZXM= IGJsZWVkaW5n ZXZlcnk= IHF1ZXVl IFRyYWlu IGhpag== IG1lbGVl cGxldGVk IGRpZ2l0 IGdlbQ== b2ZmaWNpYWw= IGxpZnRpbmc= 0LU= UmVxdQ== aXR1dGVz IHBhY2thZ2luZw== IFdvcmtlcnM= aHJhbg== IExlYmFub24= b2xlc2M= IHB1bmlzaGVk IEp1YW4= IGphbQ== IERvY3VtZW50 IG1hcHBpbmc= aWNhdGVz IGluZXZpdGFibHk= IHZhbmlsbGE= IFRvbg== IHdhdGNoZXM= IGxlYWd1ZXM= IGluaXRpYXRlZA== ZGVncmVl cG9ydGlvbg== IHJlY2FsbHM= IHJ1aW4= IG1lbHQ= SUFO IGhlbQ== RXhw IGJha2luZw== IENvbG9tYg== YXRpYmxl IHJhZGl1cw== cGx1Zw== IElG ZXRpY2FsbHk= IGZpY3Q= SEVS IFRhcA== YXRpbnVt IGluaw== IGNvaA== IFdpemFyZA== Ym90aA== dGV4 IHNwZW5kcw== IEN1cnJlbnRseQ== IFBpdA== IG5ldXJvbnM= aWdudA== IHJhbGw= IGJ1c2Vz YnVpbGRpbmc= IGFkanVzdG1lbnRz IGNyaWVk aWJsaWNhbA== YXR0ZWQ= IFppb24= IE1hdHRlcg== IG1lZGl0YXRpb24= IERlbm5pcw== IG91cnM= IFRhYg== IHJhbmtpbmdz b3J0YWw= IGFkdmVycw== IHN1cnJlbmRlcg== IEdvYg== Y2l1bQ== b21hcw== aW1ldGVy IG11bHRpcGxheWVy IGhlcm9pbg== IG9wdGltaXN0aWM= IGluZGljYXRvcg== IEJyaWc= IGdyb2Nlcnk= IGFwcGxpY2FudA== IFJvY2tldA== dmlk RXhjZXB0aW9u cGVudA== IG9yZ2FuaXppbmc= IGVuY291bnRlcnM= IFRPRA== IGpld2Vs U2F2ZQ== IENocmlzdGll IGhlYXRpbmc= IGxhenk= IENQ IGNvdXNpbg== Q29uZmln IHJlZ2VuZXI= IG5lYXJlc3Q= IGFjaGlldmluZw== RU5T dGhyb3c= IFJpY2htb25k YW50bGU= MjAwMg== IGFudGVu YmlyZA== MTMz IG5hcmM= cmFpbnQ= dW5ueQ== IEhpc3Bhbmlj b3VybmFtZW50cw== IHByb3BoZQ== IFRoYWlsYW5k IFRp IGluamVjdGlvbg== IGluaGVyaXQ= cmF2aXM= IG1lZGk= IHdob2V2ZXI= IERFQlVH R1A= IEh1ZA== Q2FyZA== cHJvbQ== IHBvcg== IG92ZXJoZWFk TGF3 IHZpb2xhdGU= IGhlYXRlZA== IGRlc2NyaXB0aW9ucw== IGFjaGlldmVtZW50cw== IEJlZXI= IFF1YW50 V2Fz IGVpZ2h0aA== IEl2 IHNwZWNpYWxpemVk VVBEQVRF IERlbHRh UG9w SnVs IEFzaw== b3BoeQ== IG5ld3NsZXR0ZXJz IFRvb2w= IGdhcmQ= IENvbmZlZGVy IEdNVA== IEFiYm90dA== IGltbXVuaXR5 IFZN SXNsYW0= IGltcGxpY2l0 d2Q= IDE5NDQ= cmF2aXR5 b21ldHJpYw== IHN1cnZpdmluZw== dXJhaQ== IFByaXNvbg== IHJ1c3Q= IFNrZXRjaA== IGJlZXM= IFRoZW9yeQ== IG1lcml0 VGV4 Y2hhdA== IG1pbQ== IHBhc3Rl IEtvY2g= IGlnbm9yYW5jZQ== IFNob290 IGJhc2VtZW50 VW5pdGVk IEFkdmlz aGVpZ2h0 IGZvc3Rlcg== IGRldGFpbg== aW5mb3JtYXRpb24= IG5ldXJhbA== Jzs= IHByb3Zlcw== YWxsZXJ5 IGludml0YXRpb24= dW1iZXJz IGNhdHRsZQ== IGJpY3ljbGU= emk= IGNvbnN1bHRhbnQ= IGFwb2xvZ3k= IFRpZ2Vy IDEyMw== OTk5 IGluZGl2aWR1YWxseQ== cnQ= aWdpb24= IEJyYXppbGlhbg== IGRpc3R1cmI= IGVudHJlcHJlbmV1cnM= IGZvcmVzdHM= Y2VycHQ= cGxhdGVz cGhlcg== Y2xpcHNl IHR3aXR0ZXI= IGFjaWRz b2dyYXBoaWNhbA== aHVt IEJhbGQ= aWZ1bGx5 IGNvbXBpbGVy IERB IGRvbm9y YXNp IHRyaWJhbA== bGFzaA== IENvbmZpZw== IGFwcGxpY2FudHM= IHNhbGFyaWVz MTM1 UHV0aW4= IEZvY3Vz aXJz IG1pc2NvbmR1Y3Q= IEhheg== IGVhdGVu TW9iaWxl TXVzbGlt IE1hcmN1cw== dmlvbA== IGZhdm9yYWJsZQ== IHN0dWI= YWRpbg== IEhvYg== IGZhaXRoZnVs IGVsZWN0cm9uaWNz IHZhY3V1bQ== d2FpdA== YmFja2Vk ZWNvbm9taWM= ZGlzdA== IHRlbnVyZQ== IHNpbmNlcmU= IFRvZ2V0aGVy IFdhdmU= IHByb2dyZXNzaW9u IGRlbnlpbmc= IGRpc3RyZXNz YnJhc2th dGhpcmQ= IG1peGluZw== IGNvbG9uaWFs IHByaXZhdGVseQ== IHVucmVzdA== YXRlcm5pdHk= IHByZW1pc2Vz YW50aQ== Z3JlZ2F0aW9u IGxpY2VuY2U= IEhpbmQ= IFNhbXVlbA== IGNvbnZpbmNpbmc= IEFjZQ== IFJ1c3Q= IE5ldGFueWFodQ== IGhhbmRsZXM= IFBhdGNo b3JpZW50ZWQ= YWhv IEdvbno= IGhhY2tlcnM= Y2xhaW1lcg== IGN1c3RvbXM= IEdyYW4= ZmlnaHRlcnM= IGx1Yw== IG1hbnVzY3JpcHQ= YXJlbnRob29k IGRldmls IHdhcnJpb3Jz IG9mZmVuZGVycw== V2lsbGlhbQ== IGhvbGlkYXlz IG5pZ2h0bWFyZQ== IGxldmVy aWZmZXJlbnQ= U3RhdA== IGV4aGliaXRpb24= cHV0ZWQ= IFB1cmU= IGFscGhh IGVudGh1c2lhc20= IFJlcHJlc2VudGF0aXZlcw== RUFS IFR5cA== IHdoZWF0 IEFsZg== IGNvcnJlY3Rpb24= IGV2YW5nZWw= QVRU TWlzcw== IHNvdXA= IGltcGxpZWQ= cGFyYW0= IHNleHk= IEx1eA== IHJlcHVibGlj cGF0Y2g= YWJsaXNo IGljb25z IGZhdGhlcnM= IEdFVA== IENhcmli IHJlZ3VsYXRlZA== IENvaGVu IEJvYmJ5 IG5lcg== IGJlbnQ= dmVudG9yeQ== IEFsb25n IEVTVA== IFdhbGxhY2U= IG11cmRlcnM= cmlzZQ== a2VsbA== IENvbW1vbndlYWx0aA== IG5hc3R5 ZXRh IE1JVA== IGFkbWluaXN0ZXJlZA== IGdlbnVpbmVseQ== RWRpdG9y bmljaw== IGh5ZHJv KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKio= IEJsZQ== IGZpbmVz IGdvcmdl YXVzaWJsZQ== cmg= IGFwcGxl bWVudGlvbmVk IHJvcGU= b3R5cA== SFI= IGRpc2FwcG9pbnRpbmc= IGNhZ2U= bmlr IGRvdWJ0cw== IEZSRUU= cHJpbnRz IE1VU1Q= IHZlbmRvcnM= IElucXU= IGxpYmVyYWxz IGNvbnRyYWN0b3I= IHVwc2lkZQ== Y2hpbGRyZW4= IHRyaWNreQ== IHJlZ3VsYXRvcnM= Y2hhcmdlZA== bGl0ZXI= ICoqKg== IHJlYmVsbA== bGFuZw== IGxvY2Fscw== IHBoeXNpY2lhbnM= IGhleQ== YXJzZQ== dG0= IExleA== IGJlaGF2aW9yYWw= c3VjY2Vzc2Z1bA== Rlg= IGJyaWNr b3ZpYw== IGNvbmZvcm0= IHJldmlld2luZw== IGluc2lnaHRz IGJpb2xvZ3k= IFJlbW92ZQ== IEV4dHJh IGNvbW1pdHRpbmc= aW5kdWNlZA== aWdudHk= aWdt IGF0b21pYw== Q29tbW9u IEVN IFBlcmU= IEl0ZW1z ZWg= IHByZXNlcnZlZA== IEhvb2Q= IHByaXNvbmVy IGJhbmtydXB0Y3k= IGdyZW4= dXNoZXM= IGV4cGxvaXRhdGlvbg== IHNpZ25hdHVyZXM= IGZpbmFu XSwi IE1S IG1lZw== cmVtbGlu IG11c2ljaWFucw== IHNlbGVjdGluZw== IGV4YW1pbmluZw== SU5L bGF0ZWQ= SGk= IGFydGlj IHBldHM= IGltcGFpcg== IE1BTg== IHRhYmxldHM= aW5jbHVkZQ== UmFuZ2U= IGNhdXQ= IGxvZ3M= IG1vdW50aW5n IHVuYXdhcmU= IGR5bmFtaWNz IFBhbGVzdGluZQ== IFF1YXJ0ZXI= IFB1cnBsZQ== IG1h IEltcG9ydA== IGNvbGxlY3Rpb25z Y2lhdGlvbg== IHN1Y2Nlc3Nvcg== IGNsb25l IGFpbWluZw== IHBvc3Nlc3NlZA== IHN0aWNraW5n IHNoYWtpbmc= IGxvY2F0ZQ== IEhvY2tleQ== VHVybg== MTcw IGZpZnRlZW4= IEhhcnJpc29u IGNvbnRpbnVvdXNseQ== IFRD IFZhbGVudA== IFJlc2N1ZQ== IGJ5cGFzcw== YW1vdW50 IG1hc3Q= IHByb3RlY3Rz IGFydGlzdGlj IHNvbWV0aW1l IHNob2U= IHNob3V0ZWQ= aWZpY2FudA== ZXRpdGl2ZQ== IFJlZ2lzdGVy IEppbg== IGNvbmNlbnRyYXRlZA== bGluZ3Rvbg== b25pZXM= IGdlbmVyYXRvcg== eXJpbQ== IEFybWVu IGNsZWFyaW5n aWRv IFRX YWxwaA== IGxhZGllcw== SGFyZA== IGRpYWxvZw== IGlucHV0cw== 5pw= IHBvc2Vz IHNsb3Rz IFByZW1pdW0= IGxlYWtz IGJvc3Nlcw== IDExMw== Y291cnNl QWNj IE5ld3Rvbg== IEF1c3RyaWE= IE1hZ2U= IHRlYWNoZXM= YWJhZA== IHdlYXJz IGN5bA== IGN1cnNl IFNhbGVz IFdpbmdz IHBzeQ== IGdhcHM= IEljZWxhbmQ= IFBpbnRlcmVzdA== IGxhbmRsb3Jk IGRlZmluaXRpb25z IEtlcg== IHN1ZmZpY2llbnRseQ== IFBlbmNl IEFyY2hpdGVjdA== IHN1cnBhc3M= IDExNA== IHN1cGVyaGVybw== IERpc2Vhc2U= IHByaWVzdHM= IEN1bHR1cmU= IGRlZmluaXRpdmU= IHNlY3JldGx5 IERhbmNl aW5zdGFsbA== Y2hpZWY= IEplc3NpY2E= V291bGQ= VXBkYXRlZA== IGxvY2tlcg== IEtheQ== IG1lbW9yaWFs 6KY= ZmF0 IGRpc2d1 IGZsYXZvcnM= IEJhc2ViYWxs IFJlc2lzdGFuY2U= IGtpY2tz IGVudg== IHRlZW5hZ2Vycw== RGFyaw== IENBUg== IGhhbHQ= IExH IEdhYnJpZWw= IGZldmVy IHNhdHVy IG1hbGw= IGFmZmlsaWF0ZQ== IFNsZWVw IFNwZWNpZmlj IFZlbA== IGphcg== IFNhY3JlZA== IEVkd2FyZHM= IEFDTA== IHJldGFpbmVk IEdpYW50 IGxpbWl0YXRpb24= aW5jZXM= IHJlZnVzYWw= IFRhbGU= IEJ1dGxlcg== IGFjY2lkZW50cw== IENTUw== IGltcG9ydGVk IENvcHk= zrE= RVJU emVs IGRpdmlzaW9ucw== aG90cw== IEFsYg== IERT TG9hZGVy V2FzaGluZ3Rvbg== YXRpc2Y= IENyZWF0aXZl XC4= IEF1dG9t cmVkaWN0 IHJlY2VwdG9y IENhcmxvcw== TWV0aG9k b2th IG1hbGljaW91cw== IHN0ZXBwaW5n LFs= IERhZA== IGF0dHJhY3Rpb24= IEVmZmVjdHM= IFBpcmF0ZQ== IENlcg== IEluZHVzdHJ5 IFJ1ZA== IGNoYXJ0ZXI= IGRpbmluZw== IGluc2lzdHM= IGNvbmZpZ3VyZQ== ICgj IFNpbXBsZQ== IFNjcm9sbA== VVRD MTc1 IEtvbg== IG1hcmtldHBsYWNl IOOC IHJlZnJlcw== IGdhdGVz ZXJyZWQ= IFBvZA== IGJlaGF2ZQ== RnJhbms= bm9kZQ== IGVuZG9yc2Vk aGV0dA== YXNpdmU= IEhvbWVsYW5k IHJpZGVz IExlYXZl ZXJuZXNz IGZsb29kaW5n QUZQ IHJpc2Vu IGNvbnRpbnVhbGx5 IHVuYW5pbQ== IENvbnRyYWN0 IFBhcw== IGd1aWRlZA== IENoaWxl YmQ= IHN1Y2M= cHRpYw== IGNvbW1pdHRlZXM= IEx1dGhlcg== IEFueW9uZQ== IHNhYg== MTI0 IHBpeGVs IEJhaw== IFRhZw== IEJlbm5ldHQ= RW50ZXI= c21hbGw= IFByZXNpZGVudGlhbA== IHB1bA== IGNvbnRyYWNl YXJjaGl2ZQ== IGNvYXN0YWw= IEtpZHM= MTky 4oCy aWNreQ== SU5HVE9O IHdvbGY= IFN0YWxpbg== VHVy aWRnZXQ= YW1hcw== IFVubGVzcw== IHNwb25zb3I= IG1vcnBo IENob29zZQ== IHJ1bm5lcg== IHVuYmVs IG11ZA== IE1hbmE= IGR1YmJlZA== IGdvZGQ= dXJlcnM= d2luZG93 IHJlbGllZA== IGNlbGVicmF0aW5n b3Nj IDEzNQ== IGxvYmJ5aW5n IGluY29tcGxldGU= IHJlc3RyaWN0aW9u IGluY2Fw aXR1cw== IGV4cGVjdGF0aW9u IEFwb2xsbw== IGludGVucw== IHN5bmM= R0g= IG1hbmlwdWxhdGlvbg== Qlk= IHNwZWFy IGJyZWFzdHM= IHZvbGNhbg== aWxpYQ== TWF0ZXJpYWw= IGZvcm1hdHM= IEJhc3Q= IHBhcmxpYW1lbnRhcnk= IHNuYWtl IHNlcnZhbnRz IFRydWRlYXU= IEdyaW0= IEFyYWJpYw== IFNDUA== IEJveXM= c3RhdGlvbg== IHByb3NwZWN0aXZl b3JkZQ== aW5pdGlhbGl6ZWQ= IGJvcmVk QUJMRQ== IGFjY2Vzc2Vk IHRheGk= IFNoZWxs YWlkZW4= dXJzZWQ= aW5hdGVz IEluc3VyYW5jZQ== IFBldGU= U2VwdGVtYmVy NjUw IGFkdmVudHVyZXM= IENvdmVy IHRyaWJ1dGU= IHNrZXRjaA== IGVtcG93ZXI= INg= IEdsZW5u IERhdw== PVwi IFBvbGl0aWNz IGd1aWRlcw== IGRpb3hpZGU= IEdvcmU= IEJyaWdodA== IFNpZXJyYQ== IHZhbHVlZA== Y29uZA== IHBvaW50ZXI= U2VsZWN0 IHJpc2t5 IGFic29yYg== aW1hZ2Vz IHJlZnVzZXM= IGJvbnVzZXM= X19f IGhpbGFy IEZlYXR1cmVz MjIw IENvbGxlY3Rvcg== Rm9vdA== IDE5NjQ= Y3VsdXM= IGRhd24= IHdvcmtvdXQ= IExP IHBoaWxvc29waGljYWw= IFNhbmR5 IFlvdXRo IGxpYWJsZQ== QWY= Ymx1ZQ== IG92ZXJ0dXJu bGVzc25lc3M= IFRyaWJ1bmU= IEluZw== IGZhY3Rvcmllcw== IGNhdGNoZXM= IHByb25l IG1hdHJpeA== IGxvZ2lu IGluYWNj IGV4ZXJ0 c3lz IG5lZWRsZQ== IFF1cg== IG5vdGlmaWVk b3VsZGVy dHg= IHJlbWluZHM= IHB1Ymxpc2hlcnM= IG5vcnQ= IGdpdA== IGZsaWVz IEVtaWx5 IGZsb3dpbmc= IEFsaWVu IFN0cmF0ZWc= IGhhcmRlc3Q= IG1vZGlmaWNhdGlvbg== QVBJ IE1Z IGNyYXNoZXM= c3RhaXJz bnVtYmVy IHVyZ2luZw== Y2hhbm5lbA== IEZhbGNvbg== IGluaGFiaXRhbnRz IHRlcnJpZnlpbmc= IHV0aWxpemU= IGJhbm5lcg== IGNpZ2FyZXR0ZXM= IHNlbnNlcw== IEhvbG1lcw== IHByYWN0aXRpb24= IFBoaWxsaXBz b3R0bw== IGNvbXBpbGU= TW9kZWw= IEtv IFtd QW1lcmljYW5z IFRlcm1z IG1lZGljYXRpb25z IEFuYQ== IGZ1bmRhbWVudGFsbHk= IE5vdGljZQ== IHdlYWtlcg== IDAwMDA= IGdhcmxpYw== IG91dGJyZWFr IGVjb25vbWlzdA== IEJpcnRo IG9ic3RhY2xlcw== YXJjZXI= IE9ydGhvZG94 IHBsYWNlYm8= IENyZXc= YXNwYmVycnk= IEFuZ2Vscw== IGRpc2NoYXJnZQ== IGRlc3RydWN0aXZl MTE3 IFJpc2luZw== IGRhaXJ5 bGF0ZQ== IGNvbGxpc2lvbg== IFRpZ2Vycw== ZWFub3I= b2N1bWVudGVk IEludmFsaWQ= IGRvbnQ= IExpdGVy IFZh IGh5ZHJvZ2Vu IHZhcmlhbnRz IEJyb3ducw== IDE5NjU= IGluZGlnZW5vdXM= IHRyYWRlcw== IHJlbWFpbmRlcg== IHN3ZXB0 IEltcGFjdA== IHJlZGlzdA== IHVuaW50 Z3JhZHVhdGU= 44OV IFdJTEw= 44Gu5w== IENyaXRpY2Fs IGZpc2hlcg== IHZpY2lvdXM= IHJldmVyc2Vk WWVhcg== IFNveA== IHNob290aW5ncw== IGZpbG1pbmc= IHRvdWNoZG93bnM= YWlyZXM= bWVs IGdyYW5kZmF0aGVy IGFmZmVjdGlvbg== aW5nbGU= IG92ZXJseQ== QWRkaXRpb25hbA== IHN1cHJlbWU= IEdyYWQ= IHNwb3J0aW5n IG1lcmN5 IEJyb29rcw== b3VudHk= IHBlcmZvcm1z IHRpZ2h0bHk= IGRlbW9ucw== IGtpbGxpbmdz IGZhY3Rpb24= IE5vdmE= YXV0cw== IHVuZG91YnRlZGx5 YXJpbg== IHVuZGVyd2F5 cmFr IGxpdg== IFJlZ2lvbg== IGJyaWVmaW5n c2Vycw== Y2xvdWQ= IE1paw== dXNw IHByZWRpY3Rpb24= YXpvcg== IHBvcnRhYmxl IEdhbmQ= IHByZXNlbnRpbmc= IDEwODA= wrs= dXNoaQ== IFNwYXJr dGhlcmV1bQ== IGp1c3RpZmljYXRpb24= IE55 IGNvbnRyYWN0b3Jz bWluZ2hhbQ== IFN0eWxl 5YU= IENocm9uaWNsZXM= IFBpY3R1cmU= IHByb3Zpbmc= IHdpdmVz c2V0dA== IG1vbGVjdWxlcw== IEZhaXJ5 IGNvbnNpc3Rpbmc= IHBpZXI= YWxvbmU= aW5pdGlvbg== IG51Y2xl anNvbg== IGdvdHRh IG1vYmls IHZlcmJhbA== YXJpdW0= IG1vbnVtZW50 dWNrZWQ= IDI1Ng== VGVjaA== bWluZWNyYWZ0 IFRyYWNr IHRpbGU= IGNvbXBhdGliaWxpdHk= YXNpcw== IHNhZGQ= IGluc3RydWN0ZWQ= IE11ZWxsZXI= IGxldGhhbA== IGhvcm1vbmU= IG9yY2hl ZWxzZQ== IHNrZWxldA== IGVudGVydGFpbmluZw== IG1pbmltaXpl YWdhaW4= IHVuZGVyZ28= IGNvbnN0cmFpbnRz IGNpZ2FyZXR0ZQ== IElzbGFtaXN0 IHRyYXZlbHM= IFBhbnRoZXJz bGluZ3M= Q2FyZQ== IGxhd3N1aXRz dXJhcw== IGNyeXN0 IGxvd2VyZWQ= IGFlcmlhbA== IGNvbWJpbmF0aW9ucw== IGhhdW4= IGNoYQ== IHZpbmU= IHF1YW50aXRpZXM= IGxpbmtpbmc= YmFuaw== IHNveQ== QmlsbA== IEFuZ2VsYQ== IHJlY2lwaWVudA== IFByb3Rlc3Q= IHNvY2tldA== IHNvbGlkYXJpdHk= IOKG bWlsbA== IHZhcmllcw== IFBha2lzdGFuaQ== RHJhZ29u IHVuZQ== IGhvcml6b24= wqDCoMKgwqDCoMKgwqDCoA== IHByb3ZpbmNlcw== IGZyYW5rbHk= IGVuYWN0ZWQ= bm90ZXM= Wyc= IDE5Mg== b2NyYWN5 IGVuZG9yc2VtZW50 IG92ZXJ0aW1l VHJ1ZQ== TGFi bGljdGVk IEROQw== IGJlYXRz IEphbWll MTUy IElOVA== Q29udGFjdA== IGFjY291bnRlZA== aGFzaA== IFBhY2tlcnM= cGlyZXM= IGxlc2JpYW4= IGFtZW5kbWVudHM= IGhvcGVmdWw= IEZpbmxhbmQ= IHNwb3RsaWdodA== IGNvbmZpZ3VyZWQ= IHRyb3VibGVk IGdhemU= IENhbGdhcnk= IHJlbGlhYmlsaXR5 IGluc3VyZw== c3dlcg== YnV5 IFNraW4= IHBpeGVscw== IGhhbmRndW4= IHBhcmFz IGNhdGVnb3I= IEVM IFJleA== SW5kZWVk IGtpbmRh IGNvbmp1bmN0aW9u IEJyeWFu IE1hbnVmYWN0 eWFuZw== UGx1cw== U1FM aXNobWVudA== IGRvbWluYXRl IG5haWw= IG9hdGg= IGVydXB0 IEZpbmU= aXRiYXJ0 IENoaXA= IEFiZA== IE5hbQ== IGJ1eWVy IGRpc3NlbnQ= TGVha3M= Q29udGlu IHJpZGVy IFNvbWVvbmU= IGlsbHVzaW9u Y2lu IEJvZWluZw== IGluYWRlcXU= b3ZhdGlvbg== aWFudHM= IHJlYnVpbGQ= NDUw IERlc3Rpbnk= U1c= IFRpbGw= SGl0 aWF6 IEJhbmds YWNoZXJz IFJlZm9ybQ== IHNlZ21lbnRz IHN5c3RlbWF0aWM= ZGM= IENvbnNlcnZhdGl2ZXM= IHBvcnRhbA== aG9y IERyYWdvbmJvdW5k IGRyYWdnZWQ= b21v IHRoZWU= YWR2ZXJ0 IFJlcG9ydHM= IEV0 IGJhcnJlbHM= QXVndXN0 IGNvbXBhcmlzb25z IGhleA== IGFudGhyb3A= Ils= Ym9yb3VnaA== YWJp IHBpY3R1cmVk cGxheWluZw== IEFkZHJlc3M= IE1pcnJvcg== U21pdGg= IHRpcmVz IE5QUg== QUFBQQ== IGNsYXNzaWZpY2F0aW9u IFRoYW4= IEhhcm0= IFJB IHJlamVjdGlvbg== bWluYXRpb24= IHJhbmdlZA== IEZhbGxz REk= SG9zdA== 44K0 IEV4YW1wbGU= bGlzdGVk dGhpcmRz IHNhZmVndQ== YnJhbmQ= IHByb2JhYmxl Q2FuYWRh SVRJT04= IFFhZWRh IGNoaWNr IGltcG9ydHM= aGl0 bG9j V1c= IGJsZXc= IGFueXRpbWU= IHdob2xlcw== aWtlZA== IGNhbGN1bGF0aW9u Y3JlYXRl IE9yaQ== IHVwZ3JhZGVk IGFwcGFy dXRvcnk= IE1vbA== QnJpdA== IEpvbmc= SU5BTA== IFN0YXJ0aW5n IGRpY2U= dXJ0bGU= IHJlbHlpbmc= Y2xvc3VyZQ== IHByb2ZpdGFibGU= IHNsYXVnaHRlcg== IE1hbnVhbA== Y2FzdGVy ICIk IGZlYXRoZXI= IFNpbXBseQ== aWV2ZXM= IGRldGVyaW9y IFBDSQ== IHN0YW1w IGZsYXdz IHNoYWRl aGFtbWVy IHBhc3Nwb3J0 IGNvbnRpbmc= YW1lbA== IG9ic2VydmVycw== IG5lZ2xlY3Q= IFJC IEJyb3RoZXJob29k IHNrZXB0aWNhbA== ZmFtaWx5 dXNr IGVtb3Rpb25hbGx5 4pk= IEJldGE= YXNvbmFibGU= aWRpdHk= IE11bA== IGtpY2tpbmc= IENhcm0= b2xsYWg= VkVSVElT IEF0aGVu IGxhZGRlcg== IEJ1bGxldA== 5aM= MDAwMQ== IFdpbGRsaWZl IE1hc2s= IE5hbg== UmV2 IHVuYWNjZXB0YWJsZQ== bGVnYWw= IGNyb3dkZWQ= YWdp IENveA== amU= IG1vcmFsaXR5 IGZ1ZWxz IGNhYmxlcw== IG1hbmtpbmQ= IENhcmliYmVhbg== IGFuY2hvcg== IGJ5dGU= IE9mdGVu IE96 IGNyYWZ0ZWQ= IGhpc3Rvcmlhbg== IFd1 IHRvd2Vycw== IENpdGl6ZW5z IGhlbG0= IGNyZWRlbnRpYWxz IHNpbmd1bGFy IEplc3Nl IHRhY2tsZXM= IGNvbnRlbXB0 IGFmb3Jl IFNoYWRvd3M= IG5pbA== IHVyZ2VudA== YXBwbGU= Ymxvb2Q= IHZvbg== IG9mZmxpbmU= IGJyZWF0aGU= IGp1bXBz IGlycmVsZXZhbnQ= b3hpYw== b21hbA== aW1wb3J0YW50 Smlt IGdsb3Zlcw== YXJtaW5n ZGVwdGg= IHRhbGVudHM= b29raWU= IFNC IHBhbG0= dWZmcw== ZXN0YQ== SUdI IGNhbm9u IFZlcml6b24= IFBsZQ== IGNvdXBsZWQ= dmVsdA== IGZ1bmRyYWlzaW5n IEdldHRpbmc= IERMQw== IG1hdGhlbWF0aWNhbA== IEhT IENhcmRpbmFscw== dGVsbGluZw== IHNwb25zb3Jz IM8= IEJ1bGxz b3B0aW9u IHByb3Bvc2U= IG1lbW9yYWJsZQ== IGVtYnJhY2Vk IGRlY2xpbmluZw== SGVhbHRo ZWRh IH07 IHNwYW0= bWlsZQ== IHBpdGNoZXI= IEVpZ2h0 IGNhcmluZw== dXRpYw== cm9sZQ== IGFpcmxpbmU= ZXJuYW5kZXo= IEF0aGxldA== IGNlcnRpZmljYXRpb24= dXhl cmlnZXI= IGVtcGly IHNlbnNhdGlvbg== IGRpc20= IGJvbHQ= IGV2b2x2ZQ== SG91c2U= IGNvbnN1bHRhdGlvbg== IER1dHk= IHRvdWNoZXM= IE5hdGhhbg== IGZhaW50 aGFk Iig= IENvbnN1bWVy IEV4dHJlbWU= IDEyNw== IEhlcm0= IFNhY3JhbWVudA== aXpvcGg= IGFueGlvdXM= dWxvdXNseQ== IHNvY2lhbGx5 IFVUQw== IHNvbHZpbmc= IExldHRlcg== SGlzdG9yeQ== ZWR1Yw== UHJpY2U= KSk7 IHJlbG9hZA== YW1pYw== IHBvcms= IGRpc2NvdXJzZQ== IHRvdXJuYW1lbnRz YWlybw== IEt1cg== IENvc3Rh IHZpb2xhdGluZw== IGludGVyZmVyZQ== IHJlY3JlYXRpb25hbA== dWZmbGU= IHNwZWVjaGVz IG5lZWRpbmc= IHJlbWVtYmVycw== IGNyZWRpdGVk bmlh Zm9jdXNlZA== YW1lcmE= IGJydQ== dW1icw== IEN1YmFu IHByZWNlZGluZw== IG5vbnNlbnNl YWNpYWw= IHNtYXJ0cGhvbmVz IFN0b3JpZXM= U3BvcnRz IEVtZXJnZW5jeQ== b3VuY2luZw== ZWZpbmVk IGJlcg== IGNvbnN1bHRpbmc= IG1hc3RlcnM= aGVhc3Rlcm4= LiJb IFJ1bm5pbmc= IHN1c2NlcHQ= IEZlbmc= QW1lcmljYQ== cHJpc2Vz c3RpdGlhbA== IFdlZWtseQ== IEdyZWF0ZXI= bW9kdWxlcw== aWZ0ZXI= R3JhcGhpY3M= dWxlcg== IHdob2xseQ== IHN1cHByZXNz IGNvbmNlYWxlZA== IGhhcHBpbHk= IGFjY2VwdHM= IEVuam95 IHJpdmVycw== IEV4Y2VwdA== MjI1 IE5IUw== IE1jQ29ubmVsbA== IHB1c3N5 ZmVycmVk dXRhYmxl IGF0dGFpbg== ID49 IGRlcG9zaXRz cm9waGlj IG5vdG9yaW91cw== IFNoYXc= aWxpdGF0aW9u IGVwaWRlbWlj YWxsaWM= IHNtYWxsZXN0 b3ZpY2g= IGFjY2Vzc29yaWVz cGVydGllcw== IHN1cnBsdXM= IE1lY2g= IGFtYmln IEltbWlncmF0aW9u IGNoaW0= ZXZhbA== IHByYWN0aWNpbmc= IE15c3Rlcnk= IGRvbWFpbnM= IFNpbGljb24= YXBwcw== IGtpbG9tZXRlcnM= ZWE= IFNtYXNo IHdhcnJhbnR5 IG5vc3Q= c2ls cmV2 Sm9u IER1Ymxpbg== IHRhc3Rlcw== IGJvdXQ= Z3JlYXQ= ZXJyb3I= IHN3aXRjaGVz IEJhcHQ= RE8= b2tp IHNvdXJjZWQ= cHJvZHU= IGF0dGFjaG1lbnQ= IElzc3Vl IFF1ZXN0aW9u Sm9pbg== IGZpdHRlZA== IHVubGF3ZnVs Xl4= ZXJlaw== IGF1dGhlbnRpY2F0aW9u IHN0b2xl IGFjY291bnRhYmlsaXR5 bGFiZWw= U2VhcmNo IGFsYmVpdA== YXRpY2Fu ZnVuZGVk IEFkZGluZw== IElR IHN1Ym1hcg== bGl0 YXF1ZQ== IExlYXJuaW5n IGludGVnZXI= TWFzdGVy IENocm9t IHByZW1pZXI= T3A= IExpdQ== IGJsZXNzZWQ= IEdsb2Jl IFJlc3BvbnNl IGxlZ2l0aW0= IE1lcmtlbA== IGRpc3Bvc2Fs wrQ= IGdhdWdl cGVhdA== IGluZHVjZWQ= IHF1ZXN0aW9uYWJsZQ== YXJ0aHk= IFZpdA== IEZlZWQ= VW50aWw= VXQ= d29ydGh5 Ulk= IEhlcmFsZA== IEhhbW1lcg== IG1lZGFs IFJpdmVycw== IEhhY2s= IGNsYXJpZnk= IHRyYWNrZWQ= IGF1dG9ub21vdXM= IHRlbmFudA== IFFhdGFy ZXJpZQ== IGdyaW0= IE1vbml0b3I= IHJlc2lzdGFudA== IFNwZWM= IFdlbGxz TkFT MTQ4 IG1pbmVycw== aW90aWNz IG1pc3Nlcw== MTE2 Z2lhbg== Z2l0 IEV5ZXM= cHJlcw== IGdyYWR1YXRlZA== IGFuZ2Vs IHN5bmNocm9u IGVmZmljaWVudGx5 IHRyYW5zbWl0dGVk SGFycnk= IGdsb2JhbGx5 RU5DRQ== IE1vbnRhbmE= cmFnZWQ= IFByZXZlbnRpb24= IHBpc3M= IExs IHNoZWxm IEJKUA== IFRlc3RhbWVudA== IExhdGU= aWtlcg== IEhhcHA= IEp1bGlhbg== aGFsbA== IHNwb250 IHNodXRkb3du IGluY29uc2lzdGVudA== IHN1YnNjcmliZXJz IHNrZWxldG9u IE5lYnJhc2th IGluc3BpcmU= IFZvaWQ= RmVlZA== IGFuZ2xlcw== IFNwcmluZ3M= IGJlbmNobWFyaw== IHZhY2NpbmVz aXpvcGhyZW4= c2V4dWFs dWZmZWQ= IHNoaW5l IEthdGg= IGdlc3R1cmU= aW5lYQ== IHJpcA== IG9wcHJlc3Npb24= IGNvbnNjaWVuY2U= YnQ= IEx1bQ== IGluY2lkZW5jZQ== IEZh d3I= IG1pbmVyYWw= IFNwdXJz YWxreQ== IHRodW5kZXI= IG9waW8= QmVpbmc= IFBhbG0= IHdhc3RlZA== IGxi aWFyaWVz IEluaXRpYXRpdmU= IGN1cnJpYw== IG1hcmtlcg== IE1jTA== IGV4dGVuc2lvbnM= IFB2 IEFybXM= IG9mZmVyaW5ncw== IGRlZmVuc2Vz IHZlbmRvcg== IGNvbnRyYWRpY3Q= IENvbGlu IHJlZGRpdA== IHBlcmlwaGVy MTIy IHNpbnM= RWRpdA== SUNU U29mdA== IFNoYWg= IGFkbWluaXN0cmF0b3I= IFRyaXA= IHBvcm5vZ3JhcGh5 IHR1aXRpb24= aW5lbmNl IFByb2dyZXNz IGNhdGFsb2c= IHN1aXRl IGhpa2U= IHJlcHJvZHVjdGl2ZQ== ZW5naW5l IGRyb3VnaHQ= IE5vYWg= IDIzMA== IGR1ZGU= IHJlbGF4ZWQ= IHBhcnRpdGlvbg== IHBhcnRpY2lwYW50 IHRlbGVzYw== IGZlYXM= IEZG b3duZXI= IHN3ZWVwaW5n IGxlbnNlcw== IG1hdGNodXA= IFJlcGw= b3VybmFscw== IGNyZWRpYmxl IGdyYW5kbW90aGVy IHRoZXJtYWw= IHN1YnNjcmliaW5n IGlkZW50aXRpZXM= Y29sbQ== VUNU IHJlbHVjdGFudA== dXNlcnM= IENvcnQ= IGFzc2lzdGVk T1NT QVRJT05T SVNI IHBoYXJtYWNldXRpY2Fs aWNhYmxl YWRpYW4= IFNvbmlj IEZ1cnk= IE1vbmc= QUg= IFBzeWNob2xvZ3k= IHBob3NwaA== IHRyZWF0cw== rZQ= IHN0ZWFkaWx5 IEhlbGxv IHJlbGF0ZXM= IGNsdWU= RXhwbA== YXV0aA== IHJldmlzaW9u IGVsZA== b3Npb24= IGJyb24= MTQ0 cmlrZXM= IG1pbmVz IGJsYW5rZXQ= IEZhaWw= ZWxlZA== IEltYWdpbmU= IFBsYW5uZWQ= YWlj UmVxdWVzdA== TWFk IEhvcnNl IEVhZ2xl IGNhcGFj MTU3 IGxpbmc= IE5pY2U= IFBhcmVudGhvb2Q= bWluc3Rlcg== b2dz ZW5zaXRpdmU= Tm90aGluZw== IGNhcm4= Rmlu IFBF IHJpZmxlcw== IExQ U2FuZA== IGd1aUFjdGl2ZQ== IHRvdXJpc3Q= Q05O IHVudmVpbGVk IHByZWRlY2Vzc29y fXs= dWJlcg== IG9mZnNob3Jl IG9wdGljYWw= IFJvdA== IFBlYXJs ZXRvbg== IHN0YXJlZA== IGZhcnRoZXI= YXRpbGl0eQ== Y29udGlu IEd5 IEZvc3Rlcg== IENvYw== cmllbnRz IGRlc2lnbmluZw== IEVjb25vbXk= T05H V29tZW4= IE5hbmN5 ZXJ2ZXI= IG1hc2N1bA== IGNhc3VhbHRpZXM= IDIyNQ== IFN1bGxpdmFu IENob2ljZQ== IGFzdGVy d3M= IGhvdGVscw== IGNvbnNpZGVyYXRpb25z IGNvdWNo IFN0cmlw IEdu IG1hbmlwdWxhdGU= bGllZA== IHN5bnRoZXRpYw== IGFzc2F1bHRlZA== IG9mZmVuc2Vz IERyYWtl IGltcGU= T2N0b2Jlcg== IEhlcml0YWdl aGw= IEJsYWly VW5saWtl IGdyaWVm IDQ1MA== IG9wdGVk IHJlc2lnbmF0aW9u aWxv IHZlcnNl IFRvbWI= IHVwdA== IGFpcmVk IEhvb2s= IE1MQg== IGFzc3VtZXM= b3V0ZWQ= IFZlcnM= IGluZmVyaW9y IGJ1bmRsZQ== IEROUw== b2dyYXBoZXI= IG11bHRpcA== IFNvdWxz IGlsbHVzdHJhdGVk IHRhY3RpYw== IGRyZXNzaW5n IGR1bw== Q29uZg== IHJlbGVudA== IGNhbnQ= IHNjYXJjZQ== IGNhbmR5 IENG IGFmZmlsaWF0ZWQ= IHNwcmludA== eWxhbg== IEdhcmNpYQ== IGp1bms= UHJpbnQ= ZXhlYw== Q3JpdA== IHBvcnRyYWl0 aXJpZXM= IE9GRg== IGRpc3B1dGVz V1I= TG92ZQ== 44GE IFJleW4= IGhpcHA= b3BhdGg= IGZsb29ycw== IEZlZWw= IHdvcnJpZXM= IHNldHRsZW1lbnRz IFBvcw== IG1vc3F1ZQ== IGZpbmFscw== IGNydXNoZWQ= IFByb2JhYmx5 IEJvdA== IE1hbnM= IFBlcmlvZA== IHNvdmVyZWlnbnR5 IHNlbGxlcg== IGFwb3N0 IGFtYXRldXI= IGRvcm0= IGNvbnN1bWluZw== IGFybW91cg== IFJvb3Nl IGludGVuc2l2ZQ== IGVsaW1pbmF0aW5n IFN1bm5p IEFsZXBwbw== amlu IGFkdmlzZQ== cGFs IEhhbG8= IGRlc2NlbnQ= IHNpbXBsZXI= IGJvb3Ro U1RS TGF0ZXI= IENhdmU= PT09 IG1vbA== IGZpc3Q= IHNob3RndW4= c3VwcA== IHJvYmJlcnk= RWZmZWN0 IG9ic2N1cmU= IFByb2Zlc3Npb25hbA== IGVtYmFzc3k= IG1pbGl0YW50 IGluY2FyY2Vy IGdlbmVyYXRlcw== IGxhdW5jaGVz IGFkbWluaXN0cmF0b3Jz IHNoYWZ0 IGNpcmN1bGFy IGZyZXNobWFu IFdlcw== IEpvZWw= IERyZXc= IER1bmNhbg== IEFwcGFyZW50bHk= c2lnaHQ= IEludGVybmFs IEluZGl2aWR1YWw= IEZF IGJvcmU= IE10 IGJyb2FkbHk= IE9wdGlvbnM= b3VudGFpbg== aXBlcw== IFZpZGVvcw== MjA0 IGhpbGxz IHNpbXVsYXRpb24= IGRpc2FwcG9pbnRtZW50 aXRhbg== IExhYm9yYXRvcnk= IHVwd2FyZA== IGJvdW5kYXJ5 IGRhcmtlcg== aGFydA== IGRvbWluYW5jZQ== Q29uZw== IE9yYWNsZQ== IExvcmRz IHNjaG9sYXJzaGlw IFZpbmNlbnQ= ZWRl IFJhaA== IGVuY291cmFnZXM= cm92 IHF1bw== IHByZW1pc2U= IENyaXNpcw== IEhvbG9jYXVzdA== IHJoeXRobQ== IG1ldHJpYw== Y2x1Yg== IHRyYW5zcG9ydGVk IG5vZA== IFBpc3Q= IGFuY2VzdG9ycw== IEZyZWRlcg== dGh1bWJuYWlscw== IENF T05E UGhpbA== dmVuZ2U= IFByb2R1Y3Rz Y2FzdGxl IHF1YWxpZnlpbmc= IEthcmVu VkVSVElTRU1FTlQ= IG1pZ2h0eQ== IGV4cGxhbmF0aW9ucw== IGZpeGluZw== RGk= IGRlY2xhcmluZw== IGFub255bWl0eQ== IGp1dmVu IE5vcmQ= IERvb20= IEFjdHVhbGx5 T2s= cGhpcw== IERlc2VydA== IDExNg== SUs= IEZN IGluY29tZXM= VkVM b2tlcnM= IHBlY3Vs IGxpZ2h0d2VpZ2h0 Z3Vl IGFjY2VudA== IGluY3JlbWVudA== IENoYW4= IGNvbXBsYWluaW5n IEJhZ2hk IG1pZGZpZWxkZXI= IG92ZXJoYXVs UHJvY2Vzcw== IEhvbGxvdw== IFRpdGFucw== U21hbGw= bWFudWVs IFVuaXR5 IEV2ZW50cw== U3R5 IGRpc3Byb3BvcnRpb24= bmVzdHk= ZW5lcw== IENvZA== IGRlbW9uc3RyYXRpb25z IENyaW1zb24= IE9I IGVucm9sbGVk IGNlbA== IEJyZXR0 IGFpZGU= IGhlZWxz IGJyb2FkYmFuZA== IG1hcmtpbmc= IHdpemFyZA== IE5K IENoaWVmcw== IGluZ3JlZGllbnQ= IGR1Zw== IFNodXQ= dXJjaGFzZQ== ZW5kb3I= IGZhcm1lcg== IEdvbGRtYW4= MTI5 MTU1 T3JkZXI= IGxpb24= aWFibHk= IHN0YWlu YXJyYXk= aWxpdGFyeQ== IEZBUQ== IGV4cGxvZGVk IE1jQ2FydGh5 IFR3ZWV0 IEdyZWVucw== ZWtpbmc= bG4= ZW5zZW4= IG1vdG9yY3ljbGU= IHBhcnRpY2xl IGNob2xlc3Rlcm9s QnJvbg== IHN0YWly IG94aWQ= IGRlc2lyYWJsZQ== aWJsZXM= IHRoZW9y Zm9yY2luZw== IHByb21vdGlvbmFs b3Zv Ym9vdA== IEJvbnVz cmF3bGluZw== IHNob3J0YWdl IFBzeQ== IHJlY3J1aXRlZA== IGluZmFudHM= IHRlc3Rvc3Rlcm9uZQ== IGRlZHVjdA== IGRpc3RpbmN0aXZl IGZpcm13YXJl YnVpbHQ= MTQ1 IGV4cGxvcmVk IGZhY3Rpb25z IHZpZGU= IHRhdHRvbw== IGZpbmFuY2lhbGx5 IGZhdGlndWU= IHByb2NlZWRpbmc= Y29uc3RpdHV0aW9uYWw= IG1pc2Vy IGNoYWlycw== Z2dpbmc= aXBwbGU= IGRlbnQ= IGRpc3JlZw== 55Q= c3RhbnQ= bGxv YnBz YWtlbmluZw== IGFibm9ybWFs IEVSQQ== 5aOr IEhCTw== IE1BUg== IGNvbmNlc3M= IHNlcnZhbnQ= IGFzcGly bGF2 IFBhbmVs YW1v IHByZWNpcA== IHJlY29yZGluZ3M= IHByb2NlZWRlZA== IGNvbG9ueQ== IFRhbmc= YWJsbw== IHN0cmlwcGVk TGVmdA== dG9v IHBvdGF0b2Vz IGZpbmVzdA== JSku IGNyYXA= IFphY2g= YWJhc2Vz IEdvdGg= IGJpbGxpb25haXJl d29sZg== IHNhbmN0aW9u U0s= IGxvZ2dlZA== UG8= ZXllZA== dW5hbA== IGNyaWNrZXQ= IGFybWllcw== IHVuY292ZXJlZA== Q2xvdWQ= w7Nu IHJlYm91bmRz IG1lcw== T3Blcg== UGFj IG5hdGlvbmFsbHk= IGluc2VydGVk cGljdA== IGdvdmVybmFuY2U= 0Lg= IHByaXZpbGVnZXM= R0VU IGZhdm9yaXRlcw== aW1pdHk= IGxvdmVy dGhlbQ== ZW1wbA== IGdvcmdlb3Vz QW5u IHNsaXBwZWQ= IHZldG8= Qm9i IHNsaW0= dWNj IEZhbWU= dWRkZW5seQ== IGRlbmllcw== IE1hdXI= IGRpc3RhbmNlcw== IHdhbm5h dGFy IFNFUg== IOKI IGxlbW9u YXRoZXRpYw== IGxpdGVyYWw= IGRpc3Rpbmd1aXNoZWQ= IGFuc3dlcmluZw== R0k= IHJlbGlnaW9ucw== IFBoaWxvcw== IExheQ== IGNvbXBvcw== aXJlbWVudHM= IEtvcw== aW5leg== cm9sbGluZw== IHlvdW5nZXN0 YW5kaXNl IEJvcm4= IGFsdGFy YW1pbmE= IEJvb3Q= dm9j IGRpZ2dpbmc= IHByZXNzdXJlcw== IGxlbg== MjY0 IGFzc2Fzc2luYXRpb24= IEJpcm1pbmdoYW0= IE15dGg= IHNvdmVyZWlnbg== IEFydGlzdA== IFBob3RvZ3JhcGg= IGRlcGljdGVk IGRpc3BlbnM= b3J0aHk= IGFtYnVs aW50ZWc= IENlbGU= IFRpYmV0 IGhpZXJhcmNoeQ== IGN1 IHByZXNlYXNvbg== IFBldGVyc29u IGNvbG91cnM= IHdvcnJ5aW5n IGJhY2tlcnM= IFBhbG1lcg== IM68 IGNvbnRyaWJ1dG9y IGhlYXJpbmdz IHVyaW5l INk= b3VyZ2VvaXM= U2ltaWxhcg== IFppbW1lcg== c29tZXRoaW5n IFVTQw== IHN0cmVuZ3Rocw== IEZJ IGxvZ2dpbmc= QXNrZWQ= IFRoYWk= aW5xdQ== IFdhbHQ= IGNyZXdz aXRpc20= MzAx IHNoYXJwbHk= dW1lZA== IHJlZGlyZWN0 cmF0b3Jz SW5m IFdlYXBvbnM= IHRlYXNw MTk5OQ== TGl2ZQ== IEVzcGVjaWFsbHk= IFN0ZXI= IFZldGVyYW5z IGludHJv b3RoZXJhcHk= IG1hbHdhcmU= IGJyZWVkaW5n IG1vbGVjdWxhcg== IFJvdXRl IENvbW1lbnQ= b2NoZW0= IGFpbg== U2Vhc29u IGxpbmViYWNrZXI= xKs= IEVjb25vbWljcw== ZXNhcg== IExpdmVz IEVtbWE= IGtpbg== IFRlcnJpdA== IHBsYW50ZWQ= b3Rvbg== IEJ1dHRlcg== IFNwb25z UEVS IGR1bmdlb24= IHN5bWJvbGlj IGZpbG1lZA== IGRpZXRz IGNvbmNsdWRlcw== IGNlcnRhaW50eQ== IEZvcm1hdA== IHN0cmFuZ2Vycw== Zm9ybWF0 IFBoYXNl IGNvcGllZA== IG1ldHJlcw== bGRh IFVzZXJz IGRlbGliZXJhdGU= IHdhc2hlZA== IExhbmNl aW1hdGlvbg== IGltcHJvcGVy IEdlbmVzaXM= aWNrcg== IEt1c2g= IHJlYWxpc2U= IGVtYmFycmFzc2luZw== YWxraW5n YnVja3M= IHZlcmlmaWVk IG91dGxpbmU= eWVhcnM= IEluY29tZQ== MjAy IHpvbWJpZXM= RmluYWw= IE1pbGxlbm4= IG1vZGlmaWNhdGlvbnM= IFZpc2lvbg== IE1vc2Vz dmVyYg== aXRlcnJhbmVhbg== IEpldA== IG5hdmFs IEFnZw== IHVybA== IHZpY3Rvcmllcw== IG5vbmV0aGVsZXNz IGluanVzdA== IEZhY3Q= 55o= IGluc3VmZmljaWVudA== cmV2aWV3 ZmFjZWJvb2s= IG5lZ290aWF0aW5n IGd1YXJhbnRlZXM= aW1lbg== dXRlbmJlcmc= IGdhbWJsaW5n IGNvbmdy TG9hZGluZw== IG5ldmVydGhlbGVzcw== IHByZXNpZGVudHM= IEluZHVzdHJpYWw= IDExOA== IHBvdXJlZA== IFRvcnk= IDE3NQ== IDo9 U2NvdHQ= YW5nZXJlZA== VG9r IG9yZ2FuaXplcnM= TWF0 IEdyb3d0aA== IGFkdWw= IGVuc3VyZXM= IDExNw== 6b6N5Q== IG1hc3NhY3Jl IGdyYWRlcw== YmVmb3Jl QURWRVJUSVNFTUVOVA== IFNsb3c= IE1NQQ== 4oCUIg== IFZhdGljYW4= UWFlZGE= IG93ZQ== NjY2Ng== IFNvcnJ5 IEdyYXNz IGJhY2tncm91bmRz IGV4aGF1c3RlZA== IGNsYW4= IGNvbXByb21pc2Vk IEVsZg== IElzYWFj ZW5zb24= SW52ZXN0 SUZB IGludGVycnVwdGVk 44OJ44Op IHR3aXN0ZWQ= IERyYWdvbnM= TW9kZQ== IEtyZW1saW4= IGZlcnRpbA== aGVyZXM= cGhhbg== IE5vZGU= ZmVk IE9yYw== IHVud2lsbGluZw== Q2VudA== IHByaW9yaXQ= IGdyYWR1YXRlcw== IHN1YmplY3RpdmU= IGlzc3Vpbmc= IEx0 IHZpZXdlcg== IHdva2U= VGh1cw== YnJvb2s= IGRlcHJlc3NlZA== IGJyYWNrZXQ= IEdvcg== IEZpZ2h0aW5n IHN0cmlrZXI= UmVwb3J0 IFBvcnR1Z2Fs IG5lbw== d2Vk MTk5 IGZsZWVpbmc= c2hhZG93 aWRlbnRpZmllZA== VVNF U3RlYW0= IHN0cmV0Y2hlZA== IHJldmVsYXRpb25z YXJ0ZWQ= IER3 IGFsaWdubWVudA== ZXN0b24= IEphcmVk U2Vw IGJsb2dz dXBkYXRl Z29t cmlzaw== IGNsYXNo IEhvdXI= IHJ1bnRpbWU= IHVud2FudGVk IHNjYW0= IHJhY2s= IGVubGlnaHQ= b25lc3Q= IEZlcnI= IGNvbnZpY3Rpb25z IHBpYW5v IGNpcmN1bGF0aW9u IFdlbGNvbWU= IGJhY2tsYXNo IFdhZGU= IHJlY2VpdmVycw== b3RpdmU= SmVmZg== IG5ldHdvcmtpbmc= IFByZXA= IEV4cGxvcmVy IGxlY3R1cmU= IHVwbG9hZGVk IE1lYXQ= QkxF IE5hemlz IFN5bmQ= c3R1ZA== cm9vdHM= cmlhbnM= IHBvcnRyYXllZA== ID8/ IEJ1ZGRoYQ== c3Vu Um9iZXJ0 IENvbXBsZXg= IG92ZXJzZWU= IHN0ZWFsdGg= VGl0bGU= IEpvYnM= IEt1bQ== IGFwcHJlY2lhdGlvbg== IE1PRA== IGJhc2ljcw== IGNsaXBz IG51cnNpbmc= IHByb3Bvc2l0aW9u IHJlYWxpc2Vk IE5ZQw== IGFsbG9jYXRlZA== cml1bQ== YXJhbg== IFByb2R1Y3Rpb24= IFZvdGU= IHNtdWdn IGh1bnRlcg== YXplcg== IENoYW5nZXM= IGZsdWN0 eW9u QXJyYXk= IGtpdHM= V2F0ZXI= IHVuY29tbW9u IHJlc3Rpbmc= ZWxscw== d291bGQ= IHB1cnN1ZWQ= IGFzc2VydGlvbg== b21ldG93bg== IE1vc3Vs IFBsYXRmb3Jt aW9sZXQ= IHNoYXJlaG9sZGVycw== IHRyYWlscw== UGF5 IEVuZm9yY2VtZW50 dHlwZXM= IEFub255bW91cw== IHNhdGlzZnlpbmc= aWxvZ3k= ICgn d2F2ZQ== Y2l0eQ== U3RldmU= IGNvbmZyb250YXRpb24= IEVsZA== Q2FwdA== YWhhbg== aHRt IEN0cmw= T05T MjMw aWZh aG9sZGluZw== IGRlbGljYXRl IGphdw== IEdvaW5n b3J1bQ== U2Fs IGR1bGw= IEJldGg= IHByaXNvbnM= IGVnbw== IEVsc2E= YXZvcml0ZQ== IEdhbmc= IE51Y2xlYXI= IHNwaWRlcg== YXRzdQ== IHNhbXBsaW5n IGFic29yYmVk IFBoYXJt aWV0aA== IGJ1Y2tldA== IFJlY29tbQ== T0Y= IEZhY3Rvcnk= QU5DRQ== IGJhY3Rlcg== SGFz IE9ic2Vydg== MTIx IHByZW1pZXJl RGV2ZWxvcA== IGN1cnJlbmNpZXM= Q2FzdA== IGFjY29tcGFueWluZw== IE5hc2h2aWxsZQ== IGZhdHR5 IEJyZW5k IGxvY2tz IGNlbnRlcmVk IFVU YXVnaHM= b3JpZQ== IEFmZm9yZGFibGU= dmFuY2U= REw= ZW1ldA== IHRocm9uZQ== IEJsdWV0b290aA== IG5hbWluZw== aWZ0cw== QURF IGNvcnJlY3RlZA== IHByb21wdGx5 IFNUUg== IGdlbm9tZQ== IGNvcGU= IHZhbGxleQ== IHJvdW5kZWQ= IEtlbmQ= YWxpb24= cGVycw== IHRvdXJpc20= IHN0YXJr dmw= IGJsb3dpbmc= IFNjaGVkdWxl c3Rk IHVuaGFwcHk= IGxpdGlnYXRpb24= Y2VkZXM= IGFuZHJvaWQ= IGludGVncmFs ZXJlcnM= dWRlZA== dGF4 IHJlaXRlcg== IE1vdG9ycw== b2NpYXRlZA== IHdvbmRlcnM= IEFwb3N0 dWNraW5n IFJvb3NldmVsdA== ZnJhbQ== IHlpZWxkcw== IGNvbnN0aXR1dGVz YXdr SW50ZXJlc3Q= IGludGVyaW0= IGJyZWFrdGhyb3VnaA== IENoZXI= IHByb3NlYw== IERq IE1U UmVzcA== IFBU IHNwZXJt ZWRpdA== QlQ= TGludXg= Y291bnRyeQ== bGVhZ3Vl IGRpY2s= IG9jdA== IGluc2VydGluZw== IHNjcmE= IEJyZXdpbmc= IDE5NjY= IHJ1bm5lcnM= IHBsdW4= aWR5 IERpYW4= IGR5c2Z1bmN0aW9u IGV4Y2x1c2lvbg== IGRpc2dy IGluY29ycG9yYXRl IHJlY29uYw== IG5vbWluYXRlZA== IEFyY2hlcg== ZHJhdw== YWNoZWxvcg== IHdyaXRpbmdz IHNoYWxsb3c= IGhhc3Q= IEJNVw== IFJT IHRoaWdo IDE5NjM= IGxhbWI= IGZhdm9yZWQ= YWdsZQ== IGNvb2xlcg== IEhvdXJz IEdV IE9yaWdpbg== IGdsaW1wc2U= LS0tLS0tLS0tLS0tLS0tLS0tLS0= TGlt IGNoZWVr IGplYWxvdXM= LSc= IGhhcm5lc3M= IFBvaXNvbg== IGRpc2FiaWxpdGllcw== bmVhcG9saXM= IG91dGxvb2s= IG5vdGlmeQ== IEluZGlhbmFwb2xpcw== IGFicnVwdA== bnNpYw== IGVuY3J5cHRlZA== IGZvcmZl cmVhdGg= IHJhYmI= IGZvdW5kYXRpb25z IGNvbXBsaW1lbnQ= IEludGVydmlldw== IFN3ZQ== IGFkb2xlc2M= IG1vbml0b3Jz IFNhY3JhbWVudG8= IHRpbWVseQ== IGNvbnRlbXBs IHBvc2l0aW9uZWQ= IHBvc3RlcnM= cGhpZXM= aW92YXNjdWxhcg== dm9pZA== IEZpZnRo IGludmVzdGlnYXRpdmU= T1VO IGludGVncmF0ZQ== IElOQw== aXNoYQ== aWJsaW5ncw== IFJlcXVlc3Q= IFJvZHJpZ3Vleg== IHNsaWRlcw== IERY IGZlbWluaXNt IGRhdGFz IGJlbmQ= aXJ1cw== IE5pZ2VyaWE= Rm94 Q2hhbmdl IGFpcnBsYW5l IExhZGVu IHB1YmxpY2l0eQ== aXh0eQ== IGNvbW1pdG1lbnRz IGFnZ3JlZ2F0ZQ== IGRpc3BsYXlpbmc= IEFycm93 IDEyMg== IHJlc3BlY3Rz YW5kcm9pZA== c2l4 IFNoYQ== IHJlc3RvcmF0aW9u KVw= V1M= b3lz IGlsbHVzdHJhdGU= d2l0aG91dA== MTI2 IOKUgg== IHBpY2t1cA== bmVscw== IC4uLi4= Zm9vZA== IEZlbg== KT8= IHBoZW5vbWVuYQ== IGNvbXBhbmlvbnM= IFdyaXRl IHNwaWxs IGJyaWRnZXM= IFVwZGF0ZWQ= IEZv IGluc2VjdHM= QVNISU5HVE9O IHNjYXJl aWx0cg== IFpoYW5n IHNldmVyaXR5 IGluZHVs MTQ5 IENvZmZlZQ== IG5vcm1z IHB1bHNl IEZU IGhvcnJpZmlj IERlc3Ryb3k= IEpTT04= IG9saXZl IGRpc2N1c3Nlcw== UmVzdA== RWxlY3Q= IFdpbm4= IFN1cnZpdg== IEhhaXQ= U3VyZQ== b3BlZA== IHJvb3RlZA== IFNrZQ== IEJyb256ZQ== IGxvbA== RGVmYXVsdA== IGNvbW1vZGl0eQ== cmVkaXRlZA== IGxpYmVydGFyaWFu IGZvcmJpZGRlbg== IGdyYW4= 4Kg= IGxhZw== ZW56 ZHJpdmU= IG1hdGhlbWF0aWNz IHdpcmVz IGNyaXRpY2FsbHk= IGNhcmJvaHlk IENoYW5jZWxsb3I= IEVkZGll IGJhbm5pbmc= IEZyaQ== IGNvbXBsaWNhdGlvbnM= ZXRyaWM= IEJhbmdsYWRlc2g= IGJhbmR3aWR0aA== U3RvcA== IE9yaWdpbmFsbHk= IGhhbGZ3YXk= eW5hc3R5 c2hpbmU= IHRhbGVz cml0aWVz YXZpZXI= IHNwaW5uaW5n IFdITw== IG5laWdoYm91cmhvb2Q= YmFjaA== IGNvbW1lcmNl IFNsZQ== QlU= IGVudHJlcHJlbmV1cg== IHBlY3VsaWFy IENvbW1lbnRz ZnJl MzIw SUNT IGltYWdlcnk= IENhbm9u IEVsZWN0cm9uaWM= c2hvcnQ= KCg= RGln IGNvbW1lbQ== dWNlZA== IGluY2xpbmVk IFN1bW1vbg== IGNsaWZm IE1lZGl0ZXJyYW5lYW4= IHBvZXRyeQ== IHByb3NwZXJpdHk= IFJlY2U= IHBpbGxz bWVtYmVy IGZpbmFsZQ== dW5j IEdpZw== 5L0= IGxvZA== IGJhY2t3YXJk LSs= IEZvcndhcmQ= IHRocmk= c3VyZQ== IHNvYXA= IEZY UkVT IFNleHVhbA== b3Vsb3M= IGZvb2xpc2g= IHJpZ2h0ZW91cw== IGNvZmY= dGVycm9yaXNt dXN0YWlu b3Rlcg== IGFidXNlcw== bmV4dA== IGFidXNpdmU= IHRoZXJlYWZ0ZXI= IHByb2hpYml0aW9u IFNVUA== IGRpcA== IHJpcHBlZA== IGluaGVyaXRlZA== IGJhdHM= c3RydQ== R1Q= IGZsYXdlZA== cGhhYmV0 IGZvZw== ZG9vcnM= IGltYWdpbmc= IGRpZ2l0cw== IEh1bmdhcnk= IGFycm9n IHRlYWNoaW5ncw== IHByb3RvY29scw== IEJhbmtz 4Lg= cG91bmQ= IEN1cnQ= LiIp Li8= IGV4ZW1wdGlvbg== ZW5kaXg= IE11bGw= IGltcHJvdmVz IEdhbWVy ZGltZW5zaW9uYWw= SWNvbg== IE1hcmdhcmV0 U3RhdHVz ZGF0ZXM= IGludGVuZHM= IGRlcGljdA== IHBhcmtlZA== Sm9l IE1hcmluZXM= Y2hub2xvZ3k= ISku IGp1ZGdlZA== IHdlaWdodHM= UmF5 IGFwYXJ0bWVudHM= aGVzdGVy IHJlaW5mb3JjZQ== IG9mZmVuZGVy b2NjdXA= IHNvcmU= ZXB0 IFBIUA== IEJyb3c= IGF1dGhvcml6YXRpb24= IFJpc2s= IERlbGF3YXJl IFFV IG5vdGlmaWNhdGlvbnM= IHN1bmxpZ2h0 IGV4Y2x1ZGU= ZGF0 IG1lc2g= IFN1ZGFu IGJlbG9uZ2Vk IHN1YndheQ== IG5vb24= IEludGVyaW9y b2xpY3M= IExha2Vycw== IGNvZGluZw== RGlzY2xhaW1lcg== Q2FsaWY= T2xk IGRpc2w= Pz8/Pz8= IGNvbmZpcm1z IHJlY3J1aXRtZW50 IGhvbWljaWRl Q29uc2lkZXI= IEplZmZyZXk= ZnR5 fTs= IG9iamVjdGlvbg== ZG9pbmc= IExlbw== V2FudA== IGdsb3c= IENsYXJrZQ== IE5vcm1hbg== IHZlcmlmaWNhdGlvbg== IHBhY2tldA== IEZvcm11bGE= IHBsYWc= ZXN2aWxsZQ== IHNob3V0aW5n IG92 IFJFQw== IEJ1Yg== IG5pbnRo IGVuZXJn IHZhbGlkaXR5 IHVwcw== amFjaw== IG5laWdoYm9yaW5n IE5lYw== ZXdvcmtz IEhhYg== YXJleg== IHNwaW5l IGV2ZW50dWFs IExlYWRlcnM= IENhcm4= IHByb2JhdGlvbg== IHJvbWFuY2U= bXNn IE1lY2hhbmljYWw= RVJZ Um9jaw== IHBhcnRpc2Fu Tm9kZQ== YXNzZXRz bWluZW50 IGZvcmVpZ25lcnM= IHRlc3RpZnk= IFVzdWFsbHk= bG9yZHM= IEdyZW4= IFBvd2VsbA== QklM IHNy IGFkZGljdA== IHNoZWxscw== IHNpZ2g= IFlhbGU= dGVybml0eQ== IDc1MA== RVU= IFJpZmxl IHBhdHJvbg== ZW1h IEJhbm5vbg== YW5pdHk= IHRyb3BpY2Fs IFZJSQ== Y3Jvc3M= RXZlcnl0aGluZw== IElTTw== IGh1bWJsZQ== YXNzaW5n IEZJRw== IHVwZGF0aW5n eXNvbg== IGNhbGNpdW0= IGNvbXBldGVudA== IHN0ZWVyaW5n UHJvdA== IFNZ IEZpbmFscw== IFJ1Zw== MTU5 MTM3 IEdvbGY= IDEyNg== IGFjY29tbW9kYXRpb24= IEh1Z2hlcw== IGFlc3RoZXRpYw== YXJ0aXNhbg== IFR3aWxpZ2h0 IHByaW5jZQ== IEFncmljdWx0dXJl IERpc2Nv IHByZWNlZGVudA== IHR5cGluZw== YXV0aG9yaXplZA== T3B0aW9u IEF1Yg== bGlzaGVz YWNodA== bWFn UGV0ZXI= IFVGTw== bW9udG9u IExpdGg= IGFyb20= IHNlY3VyaW5n IGNvbmZpbmVk cHJpdmF0ZQ== IHN3b3Jkcw== IG1hcmtlcnM= IG1ldGFib2xpYw== c2VsZWN0 IEN1cnNl IE90 Z3Jlc3NpdmU= IGluY3VtYg== IFNhZ2E= IHByaWNlZA== IGNsZWFyYW5jZQ== Q29udGVudA== IGRyaWxsaW5n IG5vdGljZXM= IGJvdXJnZW9pcw== IHZlc3Q= IGNvb2tpZQ== IEd1YXJkaWFucw== cnlz aW55bA== IDEyNA== IHBsYXVzaWJsZQ== b25naA== IE9kaW4= IGNvbmNlcHRpb24= IFl1aw== IEJhZ2hkYWQ= IEZsYWc= QXVzdHJhbA== IElCTQ== IGludGVybmF0aW9uYWxseQ== IFdpa2lMZWFrcw== SUVE IGN5bg== IGNob29zZXM= IFBpbGw= IGNvbWJpbmluZw== IHJhZGk= IE1vaGFtbWVk ZGVmZW5zZQ== YXRjaGluZw== U3ViamVjdA== aWNpZW5jeQ== RnJhbWU= IHsi IGNoZXNz IHRpbWVy MTkw IHRpbg== IG9yZGluYW5jZQ== ZW1ldGVyeQ== IGFjY3VzaW5n IG5vdGljZWFibGU= IGNlbnRyZXM= IGxpZA== IE1pbGxz aW1ndXI= IHpvb20= ZXJnaWM= IGNvbXByZXNzaW9u cHJpbQ== ZmluZA== IHN1cmc= IHBhbmQ= IEtlZQ== IENoYWQ= Y2VsbGVuY2U= b3lsZQ== IHNvY2lhbGlzbQ== IFRyYXZpcw== IE1Ieg== IGd1aWxk QUxMWQ== IFN1YnNjcmliZQ== IFJlbGF0ZWQ= IG9jY3VycmVuY2U= aXRjaGluZw== IGZpY3Rpb25hbA== IGNydXNo IEVB Y29k bWl4 IFRyaXBsZQ== IHJldHJpZXZl IHN0aW11bHVz IHBzeWNoaWF0 IERvb3I= IGhvbW9zZXh1YWxpdHk= IGVsZW1lbnRhcnk= IGNlbGx1bGFy aWRpYW4= IExhdW4= IGludHJpZ3Vpbmc= IGZvYW0= IEJhc3M= aWRp aXRzdQ== IGFzc3VyZQ== IGNvbmdyYXQ= IGJ1c2luZXNzbWFu IEJvb3N0 Y2xvc2U= IGxpZWQ= IHNjaWVuY2Vz IE9tZWdh IEdyYXBoaWNz IDw9 c3Bva2Vu IGNvbm5lY3Rpdml0eQ== U2F0dXJkYXk= IEF2ZW5nZXJz IHRvZ2dsZQ== IGFua2xl IG5hdGlvbmFsaXN0 bW9kZWw= IFBvb2w= b3Bob2JpYQ== VmFy IE1vbnM= YXRvcmllcw== IGFnZ3Jlc3NpdmVseQ== Q2xlYXI= Rm9yZ2U= YWN0ZXJz IGhlZGdl IHBpcGVz IGJsdW50 IHNx IHJlbW90ZWx5 V2Vk YXNlcnM= IHJlZnJpZ2Vy IHRpbGVz IHJlc2N1ZWQ= IGNvbXByaXNlZA== aW5za3k= IG1hbmlm YXZhbmF1Z2g= IHByb2xpZmVy IGFsaWduZWQ= eG1s IHRyaXY= IGNvb3JkaW5hdGlvbg== IFBFUg== IFF1b3Rl MTM0 YmY= IFNhdw== IHRlcm1pbmF0aW9u IDE5MA== IGFkZGl0aW9ucw== IHRyaW8= IHByb2plY3Rpb25z IHBvc2l0aXZlbHk= IGluY2x1c2l2ZQ== IG1lbWJy MTk5MA== b2xkZXI= IHByYWN0aWNlZA== aW5rbGU= QXJjaA== IHN0YXJ0ZXJz YXJpdXM= IGludGVybWVkaWF0ZQ== IEJlbmVm IEtpbGxlcg== IGludGVydmVudGlvbnM= IEtpbA== IEZseWluZw== SW52 IHByZW1hdHVyZQ== IHBzeWNoaWF0cmlj IGluZGll IGNvbGxhcg== IFJhaW5ib3c= YWZp IGRpc3J1cHRpb24= IEZPWA== Y2FzdGluZw== IG1pc2RlbQ== Y3Jv IHdpcGU= YXJkb24= IGJhc3Q= IFRvbW15 IFJlcHJlc2VudGF0aXZl IGJlbGx5 IFBP IEJyZWl0YmFydA== MTMy IG1lc3NhZ2luZw== U2hvdWxk UmVmZXJlbmNlcw== IEdSRQ== aXN0aWNhbA== TFA= IENhdg== IENyYXp5 IGludHVpdGl2ZQ== a2VlcGluZw== IE1vc3M= IGRpc2NvbnRpbg== IE1vZHVsZQ== IHVucmVsYXRlZA== IFByYWN0aWNl IFRyYW5zcG9ydA== IHN0YXRpc3RpY2FsbHk= b3Jucw== IHNpemVk cHU= IGNhZg== IFdvcmxkcw== IFJvZGdlcnM= IEx1bg== IENvbWlj bGl2aW5n IGNhcmVk IGNsaW1iZWQ= KXs= IGNvbnNpc3RlZA== IG1lZGlldmFs Zm9saw== IGhhY2tlZA== IGRpcmU= IEhlcm1pb25l IHRlbmRlZA== Y2VhbnM= RGFuaWVs d2VudA== IGxlZ2lzbGF0b3Jz IHJlZGVz Z2FtZXM= IGdu YW1pbGlhcg== ICsr Z2d5 dGhyZWF0 IG1hZ25ldA== IHBlcmNlaXZl IHppcA== IGluZGljdG1lbnQ= IGNyaXRpcXVl Z2FyZA== IFNhZmU= IENyZWFt IGFkdmVudA== b2Jh IHZvd2Vk b3VzYW5kcw== IHNraQ== IGFib3J0aW9ucw== dWFydA== IHN0dW5uZWQ= IGFkdmFuY2luZw== IGxhY2tlZA== IFwi IHNjaGl6b3BocmVu IGVsZWdhbnQ= IGNvbmZlcmVuY2Vz IGNhbmNlbGVk IEh1ZHNvbg== IEhvcGVmdWxseQ== IHRydW1w IGZyZXF1ZW5jaWVz IG1ldGVvcg== IEp1bmlvcg== IEZsZWV0 IE1hbGNvbG0= IFRvb2xz IC4uLi4uLi4u IGhvYmJ5 IEV1cm9wZWFucw== IDE1MDA= IEludG8= IHN3YXk= IEFwcHJv IENvbXBs Q29tbXVuaXR5 IHRpZGU= IFN1bW1pdA== 5Ls= IGludGVydmFscw== IEV0aGVy IGhhYml0YXQ= IFN0ZXZlbnM= bGlzaGluZw== IERvbWFpbg== IHRyaWdnZXJz IGNoYXNpbmc= IGNoYXJt IEZsb3dlcg== aXRvcmVk IGJsZXNzaW5n IHRleHR1cmVz Rml2ZQ== IGxpcXVvcg== UlA= RklO IDE5NjI= Q0FS VW5rbm93bg== IHJlc2ls IExpbHk= IGFidW5kYW5jZQ== IHByZWRpY3RhYmxl cmFy IGJ1bGxzaGl0 bGVlbg== Y2hldA== TW9y TXVjaA== 5Lk= IGVtcGhhc2l6ZWQ= IGNydXN0 IHByaW1pdGl2ZQ== IGVuam95YWJsZQ== IFBpY3R1cmVz IHRlYW1tYXRl cGxlcg== IFRvbA== IEthbmU= IHN1bW1vbmVk dGh5 cmFtYQ== IEhvbmRh IHJlYWxpemluZw== IHF1aWNrZXI= IGNvbmNlbnRyYXRl Y2xlYXI= IDIxMA== IEVyZG9nYW4= YXJpcw== IHJlc3BvbmRz IEJJ IGVsaWdpYmlsaXR5 IHB1c2hlcw== IElkYWhv IGFnZ3Jhdg== IHJ1aW5z dXJhdGlvbnM= IGJhbnM= IGFuYXQ= c2hhcmU= IGdyaW5k aGlu dW1lbg== IHV0aWxpdGllcw== IFlhbmtlZXM= IGRhdGFiYXNlcw== IERE IGRpc3BsYWNlZA== IGRlcGVuZGVuY2llcw== IHN0aW11bGF0aW9u aHVu aG91c2Vz IFByZXR0eQ== IFJhdmVucw== IFRPREFZ IGFzc29jaWF0ZXM= IHRoZXJhcGU= Y2xlZA== IGRlZXI= IHJlcGFpcnM= cmVudGljZQ== IHJlY2VwdG9ycw== IHJlbWVk IENl IG1hcnJpYWdlcw== IGJhbGxvdHM= IFNvbGRpZXI= IGhpbGFyaW91cw== b3Bs MTM4 IGluaGVyZW50bHk= IGlnbm9yYW50 IGJvdW5jZQ== IEVhc3Rlcg== UkVMQVRFRA== IEN1cnJlbmN5 RVY= 44Oe IExlYWQ= IGRlY2Vhc2Vk QnJpZW4= IE11c2s= SlM= IG1lcmdl aGVhcnRlZA== Y3JlYXQ= bWl0dA== bXVuZA== IOKAiw== IEJhZw== IHByb2plY3Rpb24= IGphdmE= IFN0YW5kYXJkcw== IExlb25hcmQ= IGNvY29udXQ= IFBvcHVsYXRpb24= IHRyYWplY3Q= IGltcGx5 IGN1cmlvc2l0eQ== IERC IEZyZXNo IFBvcg== IGhlYXZpZXI= bmV5cw== Z29tZXJ5 IGRlc2VydmVk IHBocmFzZXM= IEdD IHllYXN0 ZGVzYw== RGVhdGg= IHJlYm9vdA== IG1ldGFkYXRh SUNBTA== IHJlcGF5 IEluZGVwZW5kZW5jZQ== IHN1YnVyYmFu aWNhbHM= IGF0b3A= IGFsbG9jYXRpb24= Z2VuZXJhdGlvbg== IEdyYW0= IG1vaXN0dXJl IHBpbmU= IExpYmVyYWxz IGFpZGVz IHVuZGVyZXN0 IEJlcnJ5 IGNlcmVtb24= Mzcw YXN0cm91cw== IFBpcmF0ZXM= IHRlbnNl IEluZHVzdHJpZXM= IEFwcGVhbHM= IE5lYXI= IOijj+c= IGxvdmVycw== IENBUA== IENyYXc= IGdpYW50cw== IGVmZmljYWN5 RWxlbWVudA== IEJlaGF2aW9y IFRveW90YQ== IGludGVzdA== UHJpdg== QUk= IG1hbmV1dmVy IHBlcmZlY3Rpb24= IGJhbmc= cGFwZXI= cmlsbA== R2Vvcmdl Ym9yZGVy aW50ZXJz IFNldGg= IGNsdWVz IExldmk= IFJldmVudWU= MTQ3 IHZhcG9y IGZvcnR1bmF0ZQ== IHRocmVhdGVucw== IHZldA== IGRlcGVuZGVuY3k= ZXJzZWQ= YXJ0aWNsZQ== IEJsaXp6YXJk IGNobG9y IG1pbnVz IEJpbGxz IGNyeXB0b2N1cnJlbmN5 IG1ldGFib2xpc20= dGVyaW5n IHBlc3RpYw== c3RlcHM= IFRyZWFzdXJl cmFjdGVk IENvbnN0YW50 IHRlbXA= MTM5 IERldGVjdGl2ZQ== dXJhbGx5 IHJlY292ZXJpbmc= IGNvcnRleA== IDE0NA== Y2xvc2Vk IHByZWp1ZGljZQ== YXVudGVk IHN0b3Jtcw== IE5PVw== IG1hY2hpbmVyeQ== QWRkcmVzcw== IGNvbXBlbGxlZA== Mjcw IGRlc3BhaXI= YmFuZQ== IHZlZ2V0YWJsZQ== IGJlZHM= TGVhcm4= IGNvbG9yZnVs IHNwaWtl IG1hcmdpbnM= IHN5bXBhdGh5 IHdvcmtzaG9w IENCQw== U2F0 IGJ1cm5z IEdlbmRlcg== IDEyOQ== IENhYmxl IGRlYnRz IFRoZXJlc2E= IHJlZmxlY3Rpbmc= IGFpcnN0 IHJpbQ== cmFtaWQ= IHdlYWtuZXNzZXM= V3JpdA== b2dnbGU= dGk= IENoYXJnZQ== IHdlaWdoZWQ= ICgu IGxhdWdodGVy IHJvdXRlcg== IERlbW9jcmFjeQ== RGVhcg== IGhhc2h0 IGR5 IGhpbnRz cnVubmluZw== IGZpbmlzaGVz YXJ1cw== TWFzcw== cmVzdWx0 YXNjdXM= IHZpbnRhZ2U= IGNvbnF1 IHdpbGRseQ== YWNpc3Q= IGxpbmd1 IHByb3RhZ29uaXN0 c3Ryb20= dGVlbnRo IFNvbG8= bWFj ZmlsbGVk IHJlbm93bg== aXRpdmVz IG1vdGl2ZQ== IEFudGFy IE1hbm4= IEFkanVzdA== IHJvY2tldHM= IHRyb3VibGluZw== ZWk= IG9yZ2FuaXNtcw== YXNzaXM= Q2hyaXN0aWFu IDE0NQ== IEhhc3M= IHN3YWxs IHdheA== IFN1cnZpdmFs VlM= IE11cmQ= dmQ= c3RhbmRhcmQ= IGRyYWdvbnM= IGFjY2VsZXJhdGlvbg== cmF0aW9uYWw= ZmluYWw= IHBhaXJlZA== IEV0aGVyZXVt IGludGVyZmFjZXM= IHJlc2VudA== IGFydGlmYWN0cw== xas= YXJlbA== IGNvbXBldGl0b3I= IE5pY2hvbGFz IFN1cmZhY2U= Y3Bw IFRvdA== IGVjb25vbWljYWxseQ== IG9yZ2FuaXNlZA== IGVuZm9yY2Vk aW5obw== IHZhcmlldGllcw== IGFiZG9t IEJhaWxleQ== aWRhdg== IFNhbHY= cGFpZA== IGFsdGl0dWRl ZXNzZXJ0 IEd1dGVuYmVyZw== YXJlYQ== b3BvdWxvcw== IHByb2Zlc3NvcnM= aWdncw== IEZhdGU= aGV5 IDMwMDA= RGlzdA== IHR3aW5z Y2lsbA== IE1hcHM= IHRyYXBz IHdlZWQ= IEtpc3M= IHlvZ2E= IHJlY2lwaWVudHM= IFdlc3RtaW5zdGVy IHBvb2xz IFdhbG1hcnQ= MTg4 IFNjaG9vbHM= YXR0YWNr IEFSTQ== cGFyYWdyYXBo V2FybmluZw== amw= IHNlbGZpc2g= YW5jaGV6 IEhlaWdodHM= RnJl IFNvcGg= IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t dG1s MzMz IHJhaWRz IHNhdGVsbGl0ZXM= S0VZ IGxhc3Rz 0YI= SW5z IERhbWU= IHVucHJlZGljdA== Ly8v Z2hhaQ== IGFydGlsbGVyeQ== IGNydWlzZQ== IGdlbA== IENhYmluZXQ= IGJsb3dz IEVzcA== IHByb3hpbWl0eQ== b3RoZQ== IFNraWxscw== IFVwcGVy b2Jv IE5EUA== IGVuam95cw== IHJlcGVhdGluZw== IENvbnN0cnVjdGlvbg== IFF1ZXN0aW9ucw== SGlsbGFyeQ== IHVpbnQ= IHByb2Nlc3NvcnM= IEdpYnNvbg== IE11bHRpcGxl cWE= IEJvbQ== IE1pbGVz dmVudGlvbmFs IGh1cnRz c2tpbg== IEFJRFM= IGFkdmlzZXJz IFJvb3Q= IG1ldGhvZG9sb2d5 IERhbGU= IGRldG9u IEtub3dsZWRnZQ== c2VxdWVudGx5 IDEyMQ== IGNvbm5lY3Rz Q3k= IERhbmdlcg== IGNvbnRyaWJ1dG9ycw== IEJlbnQ= IGJyYXNz IEd1bnM= aW50bw== IEZvcnR1bmU= IGJyb2tlcg== YmFsYW5jZQ== IGxlbmd0aHM= IHZpYw== IGF2ZXJhZ2luZw== IGFwcHJvcHJpYXRlbHk= IENhbWVyYQ== IHNhbmR3aWNo IENEQw== IGNvb3JkaW5hdGU= IG5hdmln IGdvb2RuZXNz bGFpbQ== IGJyYWtl IGV4dHJlbWlzdA== IFdha2U= IE1lbmQ= IFRpbnk= IENPTA== IFJG IER1YWw= IFdpbmU= Q2FzZQ== IHJlZmluZWQ= IGxhbXA= TGVhZA== IGJhcHQ= IENhcmI= IFNhZGQ= IE1pbm5lYXBvbGlz UERG RWFybHk= IEhpZGRlbg== SXRz IFRJTUU= IHBhcA== IGNvbW1pc3Npb25lZA== IEZldw== IENvbHRz IEJyZW4= IGJvdGhlcmVk IGxpa2V3aXNl RXhwZXI= IFNjaHc= Y3J5 bm4= IE1pdGNo aW1vbg== TUc= Ym0= VU1Q cmF5cw== IHJlZ2lzdHJ5 IDI3MA== YWNoaW5l cmVsbGE= YW50aW5n MDAwMDA= IHJ1aW5lZA== c3BvdA== IHRh IG1heGltaXpl IGluY29udmVu RGVhZA== SHVtYW4= RW5hYmxlZA== IE1hcmll IGNoaWxs IFBhcmFkaXNl IHN0YXJyaW5n IExhdGlubw== IFByb3RvY29s IEVWRVI= IHN1cHBsaWVycw== bWVzc2FnZQ== IEJyb2Nr IHNlcnVt 4paI4paI4paI4paI IGVuY29tcA== IGFtYml0aW9u dWVzZQ== IGFycm93cw== QW5kcmV3 IGFudGVubmE= IDE5NjE= IEJhcms= IGJvb2w= 44Kq IFN0b3JhZ2U= IHJhaWx3YXk= IHRvdWdoZXI= IENhZA== IHdhc2hpbmc= UHk= J10= ZW1iZWQ= IE1lbXBoaXM= YWNrbGU= IGZhbW91c2x5 IEZvcnR1bmF0ZWx5 b3ZpZXM= IG1pbmRzZXQ= IHNuZWFr IERo UkFX IFNpbXBzb24= IGxpdmVzdA== IGxhbmRtYXJr IGNlbWVudA== TG93 IHRocmlsbGVk IENvdXJzZQ== aW5lbA== IGNodWNr aWRhdGU= Z2xvYmFs IHdoaXQ= IO+/vQ== YWRheXM= c2tp IFNW IHZpcnVzZXM= MzA2 IFJlc3BvbnM= IHRoZWF0ZXJz IEJyYW5jaA== IEdlbmV2YQ== IE1L IHVuYmVsaWV2 IGNvbW11bmlzdA== T3JpZ2luYWw= IFJlY2VpdmVk IFRyYW5zZmVy IEFyZw== SW5wdXQ= IFN0cmF0ZWd5 IHBhbGFjZQ== dGhlbmluZw== RHJp IHNlbnRlbmNpbmc= dW1ibmFpbA== IHBpbnM= cmVjeQ== IHNpYmxpbmdz R2V0dGluZw== IEJV IE5vcnRod2VzdA== IHByb2xvbmdlZA== IFNha3VyYQ== Q29tYg== IEJvdXI= IGluYWRlcXVhdGU= IEthc2g= IHVzZXJuYW1l IEltcHJvdmU= IGJhdHRsaW5n IE1BQw== IGN1cnJpY3VsdW0= IHNvZGE= IENhbm5vbg== IHNlbnNpYmxl c3BvbnM= RGVjZW1iZXI= IHdpY2tlZA== IFBlbmd1 IGRpY3RhdG9ycw== IEhlYXJ0cw== b2d5bg== IHNpbWlsYXJpdGllcw== IFN0YXRz IGhvbGxvdw== aXRhdGlvbnM= Ijpb IGhvdmVy IExpc3Rlbg== c2No U3VuZA== IGNhZA== IFBhcmtz IGx1cg== IGh5cGU= IExlbQ== TkFNRQ== aXN1cmU= RnJpZGF5 IHNob290cw== IGNsb3Nlcw== IGRi IFJpZGdl IERpZmZlcmVudA== IHJlcGxpZXM= IEJyb2Fkd2F5 b3BlcnM= IGludG9sZXI= IFpldXM= YWtlc3Bl IHByb3ByaWV0YXJ5 IHJlcXVlc3Rpbmc= IGNvbnRyb2xsZXJz IE1JTg== aW1lZGlh YmVjY2E= IGV4cGFucw== IG9pbHM= Qm90 IENoYW5k IHByaW50ZXI= IHRvcHBlZA== IFBPTA== IEVhcmxpZXI= U29jaWFs YXZpbg== IGRlY3JlYXNlcw== IFNlYg== IHNwZWNpZmljYXRpb25z IEJsYXN0 IEt1cnQ= IGZyZWVs QnJvd24= IGRpbGln cm9l IFByb2JsZW0= IFF1YWQ= IGRlY2VudHJhbA== IFZlY3Rvcg== YW51dA== IHBsdWdpbnM= IEdyZWdvcnk= IGZ1Y2tlZA== ZWxpbmVz IEFtYmFzc2Fkb3I= dGFrZQ== IGNsZWFucw== b25neWFuZw== QW5vbnltb3Vz c3Rybw== In0= YWxpbmU= IE9kZA== IEV1Zw== MjE2 IGJvaWw= IFBvd2Vycw== IG51cnNlcw== T2J2aW91c2x5 IFRlY2huaWNhbA== IGV4Y2VlZGVk T1JT IGV4dHJlbWlzdHM= IHRyYWNlcw== ZXhwbA== IGNvbXI= IFNhY2g= KS8= IG1hc2tz IHNjaQ== Qm9u IHJlZ3Jlc3Npb24= d2VnaWFu IGFkdmlzb3I= aXR1cmVz IFZv ZXhhbXBsZQ== IEluc3RydWN0 IHNpZWdl IHJlZHVjdGlvbnM= cHRy IHN0YXR1dG9yeQ== IHJlbW92ZXM= IHB1Y2s= cmVkaXRz IGJlZQ== IHNhbGFk IHByb21vdGlvbnM= IEpvc2h1YQ== d2l0aHN0YW5kaW5n RVRI IENoYQ== aW11cw== IGV4cGVuZGl0dXJl YXVudGluZw== IGRlbGlnaHRlZA== IDE1NQ== YmVo IGNhcnBldA== IFNwYXJ0 IGp1bmdsZQ== bGlzdHM= IGJ1bGx5aW5n IE5vYmVs IEdsZW4= IHJlZmVyZW5jZWQ= IGludHJvZHVjZXM= c2Vpbg== IGNob3BwZWQ= Z2xhc3M= IFdyZXN0 IG5ldXRyYWxpdHk= IOKZ IGludmVzdGlnYXRvcg== IHNoZWx2ZXM= IHVuY29uc3RpdHV0aW9uYWw= IHJlcHJvZHVjdGlvbg== IG1lcmNoYW50 bWlh IG1ldHJpY3M= IGV4cGxvc2l2ZXM= IFNvbmlh IGJvZGlseQ== IHRoaWNrbmVzcw== IHByZWRvbWluYW50bHk= IEFiaWxpdHk= IG1vbml0b3JlZA== SUNI IF0u IE1hcnRpbmV6 IHZpc2liaWxpdHk= IHF1ZXJpZXM= IGdlbm9jaWRl IFdhcmZhcmU= UXVlcnk= IHN0dWRpb3M= IGVtYnJ5 IGNvcnJpZG9y IGNsZWFuZWQ= Y29tcGxldGU= IE1I IGVucm9sbG1lbnQ= SU5HUw== IGltcGFjdGVk IGRpc2FzdHJvdXM= IFl1bg== IENsYWlyZQ== IEJhc2ljYWxseQ== eXQ= dXN0ZXJpdHk= IGluZGlyZWN0bHk= d2lr IGRvZA== IENhcnI= IGFtcA== IHByb2hpYml0 IEluaXRpYWw= IFJk aWpp IGVkdWNhdGU= Y29ybg== aW90dA== IEJlYXV0eQ== IGRldGVjdGl2ZQ== IENvbm4= c2luY2U= IHN0YWdnZXI= IG9iZXNl IGJyZWU= b2xvZ2lj aXNzZQ== d2Fsa2Vy IGJsYWRlcw== IGxhd2Z1bA== ZnVuYw== IEJlaGluZA== IGFwcGV0aXRl ICgq IHRlbm5pcw== IG9mZnNwcmluZw== IGpldHM= IHN0cnVjdHVyZWQ= IGFmb3JlbWVudGlvbmVk Tm92 IHNjYWxpbmc= ZmlsbA== IHN0ZXc= IGN1cmI= IFN0ZXBoYW4= ZWRJbg== U0Y= b2JpYw== 6a2U b3Vn IE1N IGdlbmV0aWNhbGx5 b3Bleg== MTM2 IHVtYg== YW5jZXJz IGNvaG9ydA== IG1lcmNoYW5kaXNl IGltcG9zaW5n IExlZ2lzbGF0dXJl IEFyY2hpdmU= aXZpYQ== IE5hdmFs IG9mZmVuY2Vz IG1pcmFjbGU= IHNuYXBwZWQ= IGZvZXM= IGV4dGVuc2l2ZWx5 IFJhZg== IGNhdGVy ZWRpZW5jZQ== S2l0 IEJpbg== IHJlY29tbWVuZHM= IENpdGllcw== IHJpZ2lk IFJFQUQ= IE5vYmxl IFRpYW4= IGNlcnRpZmljYXRlcw== YW50aXM= b2lsZXI= IEJ1ZGRoaXN0 ZGlk IHN1cnZleWVk IGRvd253YXJk IHByaW50cw== IE1vdGlvbg== cm9uaWNz IFNhbnM= b3NzaWJseQ== dWN0aW9ucw== IGNvbG9uaWVz IERhbmlzaA== dW5pdA== IHNwb2ls IGFkdmlzb3J5 YmVycmllcw== UGxhbg== IHNwZWNpZmljYXRpb24= b3BoZXJz IFJlc291cmNl IHNoaXJ0cw== cHJpc2luZ2x5 Y29tbXVuaWNhdGlvbnM= IHRyaXZpYWw= IG1lbnRpb25pbmc= aXNleHVhbA== IHN1cHBsZW1lbnRz IHN1cGVydmlzaW9u QlA= dm9y IHdpdA== IGNvb2xkb3du IHBsYWludGlmZg== IFJldmlld3M= IFNyaQ== IE1pbnQ= IFN1Z2Fy IGFmdGVyd2FyZA== IFByaWVzdA== IEludmVzdG1lbnQ= b2dlbmU= IFRha2luZw== IHN0cmV0Y2hpbmc= IGluZmxhbW1hdGlvbg== IFRlaHJhbg== IGxpbmluZw== IGZyZWV6aW5n IEVudGl0eQ== IGluc3BpcmluZw== c3BlY2lhbA== cHJpY2U= IHN1ZQ== IFBvcnRlcg== b3VuZ2U= RVRB IERlcmVr IEx1aXM= dW8= eW1waA== IGV4dGVyaW9y aWhpbA== IEFzaGxleQ== aW5hdG9y IG51dHJpZW50cw== IFRocm9uZXM= IGZpbmFuY2Vz IEluc3BlY3Q= IHNwZWNpYWxseQ== IFJlcXVpcmVk IFBUUw== IFZpb2xlbmNl b2ludGVk c2hvdHM= IGV4Y2VycHQ= Y29vbg== SU5T IEdyaQ== IHJlY29nbmlzZWQ= V2Vlaw== WW91bmc= IHZvbQ== aXNsZQ== IEN1cnJ5 IEJ1ZGRo IG5vdGVib29r IGR1cmFibGU= Lz8= IEdhZA== IFB1cHA= IGZvcmdpdmU= cGFyaw== IHBlcnNvbmFsaXRpZXM= YW5hbHlzaXM= Y2xhbWF0aW9u IGVsZXZhdG9y IHdhcmVob3VzZQ== IFJvbGU= dW5u IGlsbHVzdHJhdGlvbg== IFNjYW4= IGF0bW9zcGhlcmlj SW1wb3J0 QU5D cmljdGVk ZnU= MDEw IGFyY2hl IHJld2FyZGVk YWtlc3BlYXJl IGludGVybmFsbHk= IFJCSQ== YWxrZXI= IGVsZXBoYW50 b3dpdHo= IFBpenph IGJpcGFydGlzYW4= w6lz IHNsb3dlZA== IFN0YXJr IG92ZXJyaWRl T1VT IDMyMA== dW5kcmVkcw== IERlY2s= IENlbnN1cw== YmVl MTQ2 b3Rvcg== IGlw IHVi b2NhdGlvbnM= IEJ1dHRvbg== cmljZQ== IGNyaXBw ZmZm IG9yaWdpbmF0ZWQ= IG92ZXJ3aGVsbWVk YXBwYQ== IGZvcmVtb3N0 4oCR IExFRw== cmVsZWFzZQ== ZWF0dXJlZA== YXRjaGVz IHJlcHM= IGxlbmRpbmc= IFJlZmVyZW5jZQ== IENsaWVudA== MTY1 dmVudGg= Q29tcGxldGU= IFBhdHJvbA== IHN3b3Ju Y2Ft IHNodXR0bGU= IFJhbHBo IGhvbWV0b3du LSw= b25hbA== IEJQ 5Y8= IHBlcnN1YWRl IEFsZXhhbmQ= IGNvbWJpbmVz IHZpdmlk IExhZw== IGVuY29kaW5n IHNhbHZhdGlvbg== d2Vu IFJlY292ZXJ5 aXlh VW5pdmVyc2l0eQ== IEJpZGVu IGJ1ZGdldHM= IFRleGFucw== Zml0cw== IGhvbm9yZWQ= IHB5dGhvbg== VEQ= IyMj Y2xvbmU= IGJsaW5r IExpcXVpZA== IHVuZW1wbG95ZWQ= IGNsYXNoZXM= IENvdW5zZWw= IGRpcmVjdGluZw== IHB1bmN0 IEZhbGNvbnM= IHNoYXJr IERhbWFzY3Vz IGplYW5z IGVtYmFyaw== IHNlaXpl IHVwd2FyZHM= Mjgw IEV6 IEFueXRoaW5n IGV4b3RpYw== bG93ZXI= IENyZWF0b3I= IFVt IHN1YnVyYnM= YmVyZ2Vy IFdlbmQ= IG1pbnQ= IFhY IERybw== IHN1ZmZlcnM= IGhlcmI= dHJlZQ== IGZyYWdpbGU= IGZsb29kZWQ= IEFsY29ob2w= b2xlYW4= bnlkZXI= IEtP RnJhbQ== IDEzNg== IG93ZWQ= IE1lbGVl IEhhc2g= IHdoaXNr IHN1ZG8= cnI= UXVpY2s= YXBwcm8= IGlp IEV4YW1wbGVz aGVl IHByb21vdGVz cGVyYXR1cmU= a2Fy IEhvbm9y IHNvZGl1bQ== IExpZg== cm9zc28= aW50ZW5kZW50 IGNvcnJlc3BvbmRlbnQ= Rm91bmQ= c2VjcmV0 IGlkZW50aWZpZXM= YWduZQ== IGxvdQ== IFBQ IGNvaW5jaWRlbmNl bW92ZQ== IG1pbGl0aWE= IGluZmlsdHI= IFByaW1hcnk= IHBpdGNoaW5n IEli IEdPT0Q= 44K4 IFdpemFyZHM= aXJhbA== IFZlbnVz UlI= IOKAlQ== IENhc2V5 IHNhZGx5 IGFkbWlyZQ== IGVtYmFycmFzc2Vk Y2I= TWVs IHR1YmVz IGJlYXV0aWZ1bGx5 IFF1ZWVuc2xhbmQ= QmVsb3c= cmV6 cXVldA== cGxlYXNhbnQ= IMKr Q2FtcA== IGRlY2lzaXZl MTk5OA== IExhbWI= dXR0b24= aG4= IEphZ3U= YXVuZGVy IENvcmQ= IGNsZXJr IGNhZmZl IHdpcGVk IHJlaW0= IE1vdW50YWlucw== IGltcHJpc29uZWQ= IGRldmVsb3Bz IFByYQ== IG1vZGVsaW5n QW55b25l YW5jZWw= IFNpdA== IHNoaWVsZHM= IGxhd24= IGNhcmRpb3Zhc2N1bGFy IGRlbW9uc3RyYXRpbmc= IHBhcnNl IElzcmFlbGlz IGV1cm9z MTQz IGdsb3Jpb3Vz aW5za2k= ZWNk IGNvbmRpdGlvbmluZw== IGhlbHBsZXNz IG1pY3Jvc2M= IEhhcmJvcg== IHN0YWtlcw== IDI2MA== IHVuZXF1 IEZsb3lk IGRhbXA= IGFwcGFyYXR1cw== IExhd3M= IGNvdW50ZXJz IGluZHVjZQ== YXRhYmxl IEFobWVk IHNsYW0= Tm92ZW1iZXI= IHBlcnNpc3Q= IGltbWluZW50 w6Fu IHNocmVk IHBoYXNlcw== IEVkbW9udG9u IEFybXN0cm9uZw== IE1lZXQ= IEtpdHR5 0YA= Y2lyYw== IEFkdWx0 IGFyb3Nl IFhlbg== RGFu Z293 IHN1cGVyZg== IEFkbWly IGVuZHVyZQ== IGtleXdvcmQ= eXJ1cw== IHlhcm4= IHBhdGh3YXk= IEhvcGtpbnM= bWlkdA== IGNlbnNvcnNoaXA= ZGVwZW5kZW50 IGluc3RydWN0b3I= U291cmNlcw== IHRvZQ== IGJhbGxvb24= Tm9i IHN3ZWFy IENhc3Rybw== IGdsb3Nz IEthdmFuYXVnaA== IHJlbWFya2FibHk= UGhvdG9z IE5vbQ== IFNvdXRoZWFzdA== eWVycw== IHZhbGlkYXRpb24= IGNhbm5vbg== IFZpY3Rvcnk= IFBpZXJyZQ== IGNhdXRpb3Vz QXVkaW8= IGZldGNo IEdpZnQ= IEh5cA== IHJlbWVkeQ== WkU= IHNjZW50 IGJlYXJk IFJ1dA== LSI= IHBhdGVudHM= SHk= IHVuanVzdA== IHBvdGF0bw== IGZvcnRoY29taW5n IGNoZWY= IFJpZnQ= YWZmZQ== IFJPTQ== IExhdW5jaA== IHBhZHM= IE5lbw== IG9uc2V0 IHNxdWVlemU= c2FmZQ== IHByZWZpeA== IFRN IE5lYXJseQ== IENsaW5pY2Fs IE1lbnRhbA== b3RpYXRpb24= IFVuaWM= YW50cnk= IENpcg== IGVwaXQ= w6Y= IGV4dHJhY3RlZA== dmVyc2VseQ== cmlhZA== IHN0cmFpbnM= IHRvcHM= IHBvZW0= IFJhbmR5 IE1hcGxl VEhFUg== dXBpdGVy IFNTRA== muk= IHVuY29u cGVyaW5n IHNsZXB0 aW5lcnM= IHVuZGVyd2F0ZXI= IEV2aWRlbmNl Z29uZQ== MjA1 IGhpc3RvcmlhbnM= IHN5bnRoZXNpcw== IGZyb2c= YmFza2V0YmFsbA== IHZpYnJhbnQ= IHN1Ym9yZA== IDM2NQ== IERpYWw= IGNvb3BlcmF0ZQ== SEFIQQ== IGdyZWV0ZWQ= MTU4 IGpheno= IGludG94 IFdhbGtpbmc= IHN1cGVydmlzb3I= IEZ1c2lvbg== IE1lcmNlZGVz c2VuZA== SGFt c2Q= bmw= IHRvdXJz IEZJRkE= IGN1bHA= Z2Q= MzA0 IHBsZWFz IGlsbHVzdHJhdGVz IENvbG9tYmlh IGhpZ2hsaWdodGluZw== IFN1bW1hcnk= IGV4cG9zaW5n IERydQ== IGlyb255 cml0aW9uYWw= IENhcnJvbGw= IEVsbGlz UGljdA== IFJhcHQ= IGFkYXB0ZXI= IHVubQ== IGNvcnBzZQ== IGNlbGVicml0aWVz RGVu YXR1bQ== IEFwb2NhbHlwc2U= IFdhZw== bGluaW5n IGhvcm1vbmVz UnVi IFhp IFZhdWx0cw== MjA4 YWxreXJpZQ== aW5vc2F1cg== IGZlZWRz dml0eQ== IGRlZmVhdGluZw== V2FpdA== IGVtcGhhc2l6ZQ== IFN0ZWVsZXJz eXJpbnRo bGV5cw== IFdoZW5ldmVy Q3VycmVudGx5 IENsb2Nr IGNvbGxlY3RpdmVseQ== YW55b24= IEpQ IG1lbnRhbGl0eQ== IGRvd25sb2Fkcw== IHN1cnJvdW5kaW5ncw== IEJhcm5lcw== IGZsYWdzaGlw IGluZGljYXRvcnM= IGdyYXBw SmFudWFyeQ== IEVsZW1lbnRhbA== IEF0aGVuYQ== aWJhbA== IHNpZ2h0cw== IGNhcGl0YQ== IFRyZWF0eQ== IHZvaWNlZA== IEdheg== bGV0dGU= IHlh IGV4cGlyZWQ= TGVnZW5k SG90 bmF0dXJl IHVuc3RhYmxl IDI4MA== w7o= Q29tbWVudA== QUxF IHF1ZXN0cw== IGhhbmRsZXI= bmlz IHZlcnNhdGlsZQ== IGNvbmNlYWw= ZW5nZWFuY2U= IEludGVyYWN0aXZl IG9ic2Vzc2Vk IERvZ3M= IGNyYWNrZWQ= U291bmQ= c3Y= IER5bGFu cm9hZHM= Zng= IENhdGhvbGljcw== IEhhZw== IHNsYW1tZWQ= IGdsb3dpbmc= c2FsZQ== IHRpc3N1ZXM= IENoaQ== bmVl IGNoZXI= c2lj dXJyZWN0aW9u IGJhY29u dWxhdG9yeQ== KS4i IGlycmVndWxhcg== Rk9STQ== YXNzZWQ= IGludGVudGlvbmFs IGNvbXBlbnNhdGU= IFNwZWFraW5n IFNldHM= MTUz IGNvbnZlbnRpb25z YmFuZHM= ZW1hZGU= IGVjYw== IFdpbnN0b24= IEFzc2Fzc2lu IEJlbGdpYW4= IGRlcGVuZGVuY2U= IG5pY2hl IGJhcms= IEpheno= IGRpc2FkdmFudGFnZQ== IGdhc29saW5l IDE2NQ== 55qE ZXNzYQ== bW9kdWxl YW5ndWxhcg== T1k= IFRyZWF0bWVudA== aXRhcw== b2xhdGlvbg== IEFybm9sZA== IGZldWQ= IE5lc3Q= IHRoZWF0cmU= ZXdhdGVy IG1pbm9ycw== b2xpY3k= IEhhdmVu ZGl2aXNpb24= IHRydW5r RmFy IFB1bGw= IGNhcHR1cmluZw== IDE4MDA= IFRlZW4= IGV4ZW1wbA== IGNsaW5pY3M= IEJ1cmc= IHN1YnN0aXQ= IHBheWxvYWQ= IExhdg== IFRyb3k= IFdpdG5lc3M= IGZyYWdtZW50cw== IHBhc3N3b3Jkcw== IGdvc3BlbA== IEdpbg== IHRlbmFudHM= b2xpdGg= U2l4 UHJldmlvdXM= IEFnZXM= IERhcndpbg== IGJsYXQ= IGVtcGF0aHk= c21pdGg= YmFn IEVjaG8= IENhbWI= IE1hZGQ= IEJvbw== IHJlZGU= IEJ1cm5pbmc= IHNtb290aGx5 IEFkcmlhbg== IFZhbXBpcmU= IE1vbnN0ZXJz c3RlYW0= U3R5bGU= TWE= cmVh IER3YXI= YWx5c3Q= dXJzb3I= IGVsaW1pbmF0aW9u IGNyeXB0bw== Y2h0 IEV0ZXJuYWw= 4oCmXQ== IFNvcmNl SWxs TkVS IHVo Q29uY2x1c2lvbg== d2FnZQ== IHJlc3Bpcg== IHJlbWluaXM= aGV0aWNhbA== IGd5 IHV0aWxpemVk aWNpZGFs IDE5MDA= IGh1bnRlcnM= IFN3YW4= IFJlYWN0 IHZpc2l0b3I= IFRoYW5rc2dpdmluZw== MzA4 UG9zdHM= IGhpcHM= MTk5Nw== b21lcnM= IGtub2NraW5n IFZlaGljbGU= IHRpbA== IDEzOA== IG1p IEludmVzdGlnYXRpb24= IEtlbnlh IGNhc2lubw== IG1vdGl2ZXM= IHJlZ2Fpbg== cmV4 IHdlZWtlbmRz IHN0YWJiZWQ= Ym9ybw== IGV4cGxvaXRlZA== IEhBVkU= IFRlbGV2aXNpb24= Y29jaw== IHByZXBhcmF0aW9ucw== IGVuZGVhdg== IFJlbW90ZQ== IE1ha2Vy IFByb2R1 IEV2YW4= IGluZm9ybWF0aW9uYWw= IExvdWlzdmlsbGU= MTU0 IERyZWFtcw== IHBsb3Rz IFJ1bm5lcg== IGh1cnRpbmc= IGFjYWRlbXk= IE1vbnRnb21lcnk= bm0= IExhbmM= IEFseg== MjEw ZWxvbmc= IHJldGFpbGVy IGFyaXNpbmc= IHJlYmVsbGlvbg== IGJsb25kZQ== cGxheWVk IGluc3RydW1lbnRhbA== Q3Jvc3M= IHJldGVudGlvbg== IHRoZXJhcGV1dGlj IHNlYXM= IGluZmFudHJ5 IENsaW50 IHByb21wdGluZw== IGJpdGNo IHN0ZW1z IEtyYQ== IHRoZXNpcw== IEJvZw== cnVlZA== IGtpbmdz IGNsYXk= aWZpY2VudA== IFlFUw== IFRoaW5n IEN1YnM= dmV5YXJk ZWxzaA== aW5hcmlseQ== IEV5 IFJvbGxpbmc= IGV2b2x2aW5n SW5kaWE= IHJlY29nbml6ZXM= IGdyYWR1YXRpb24= aXNlcnM= IGZlcnRpbGl0eQ== IE1pbGFu Q29tbWFuZA== IGJveGluZw== IDE5NDM= IGdsdXRlbg== IEVtaXI= IGlkb2w= IGNvbmNlaXZlZA== IENyZWF0aW9u TWVyaXQ= dWRkeQ== dXNzaW9ucw== IExpZXV0ZW5hbnQ= aWV0YWw= IHVuY2hhbmdlZA== IFNjYWxl IENyaW1lYQ== YmFsbHM= YXRvcmlhbA== IGRlcHRocw== IGVtcGlyaWNhbA== IHRyYW5zbQ== IHVuc2FmZQ== bWlzc2libGU= Y29tZm9ydA== MTU2 IG1lY2hhbmlj MDAy bGlucw== IHNtb2tlZA== UG9z IHNsb3dpbmc= IGxhdg== VGV4YXM= IGNoZWF0aW5n IE1ldHJvcG9saXRhbg== ZXRoeWw= IGRpc2NvdmVyaW5n YXNzZQ== IHBlbmNpbA== IFB5b25neWFuZw== IGNsb3NldA== IFNoZWV0 IEVudHJ5 b3VzdGlj IG15c3Q= ZXJhdGU= YXJpYXQ= IG1pbmVyYWxz IG11c2ljaWFu IFB1bA== IE1heg== MjQ5 IHBlcm1pc3Npb25z IGl2 ZW5hcnk= aWNrZXJz IEJpbmc= aGVh ZW5hYmxl IGdyaWV2 IGFzc2VydGVk IENvbG9uZWw= IGFmZmlkYXY= d28= IHNlYXRlZA== IFJpZGU= IHBhaW50aW5ncw== IFBpeA== IDEzNw== aXNoaQ== dW1iYWk= Z290dGVu IEVhcmw= IGlubmluZw== IGNlbnN1cw== IHRyYXZlbGxlZA== IENvbnN1bHQ= MTg1 YmluZA== IHNpbXBsaWNpdHk= IG92ZXJsb29rZWQ= IEhlbHBmdWw= IG1vbmtleQ== IG92ZXJ3aGVsbWluZ2x5 Qmxvb2Q= IEZsaW50 IEphbWE= IFByZXNlbnQ= IFJhZ2U= IFRB cHRpdmU= IHR1cm5vdXQ= d2FsZA== IERvbHBoaW5z IFZQTg== IG9uaW9u IGNyYWZ0aW5n bW1h IE1lcmN1cnk= IGFycmFuZ2U= IGFsZXJ0cw== IE9U emJvbGxhaA== IGdhc2Vz IFJpY2hhcmRzb24= c2Fs bGFy IGZyb3N0 IGxvd2VyaW5n IGFjY2xhaW0= IHN0YXJ0dXBz IEdhaW4= ZXNzbWVudA== IGd1YXJkaWFu 5Lq6 IFBpZQ== IExpbmtz IG1lcml0cw== IGF3YWtl IHBhcmVudGFs IGV4Y2VlZHM= IGlkbGU= IFBpbG90 IGVCYXk= IEFjY2VwdA== aXBlZw== Q2Ft IEtvdA== IHRyYWRlcnM= b2xpdGljcw== dW5rZXI= IFBhbGU= b3Np YW5tYXI= IDE5NDc= IEZlbGw= ZXN0aWFs aXRhdGluZw== R0Y= IFNy aWZ0ZWQ= IGNvbm5lY3Rvcg== IEJvbmU= aWxsZXM= MjYw aG1h IG92ZXJsYXA= IEdpdEh1Yg== IGNsZWFuZXI= IEJhcHRpc3Q= IFdBUw== IGx1bmdz 0YE= IEJVVA== IGNpdGU= IHBpdGNoZWQ= cmVhdG1lbnQ= IHRyb3BoaWVz IE51 Mzg2 IFByaWRl IGF0dGVuZGVlcw== W10= MTc5 IHNwYXRpYWw= IHByaXplcw== IFJlbGlnaW9u IHNob3djYXNl IENhdGVnb3J5 dmlkaWE= VGFyZ2V0 UHJvcGVydHk= Pyw= IGZ1c2lvbg== cGll IFVDTEE= IHNvdW5kdHJhY2s= IHByaW5jZXNz IENhdmFs c2hvdWxk IGxpbWJz QmFja2dyb3VuZA== IGxvbmVseQ== IGNvcmVz IFRhaWw= c2hlZXQ= IDEzMg== UmE= 44Kr IEJvbHQ= IGJvb2tlZA== IGFkbWluaXN0ZXI= IGVxdWFscw== d3k= IG9ic2VydmluZw== IEJhcm9u IEFkb2Jl IHZpcmdpbg== IFNvY2lhbGlzdA== TW92ZQ== Z2hhemk= IExpbmRh MjEy IGJyZXdpbmc= IG1lcmNoYW50cw== YnVyc2U= IGRpdm9y IG1ldGFscw== IE5lcg== IHN1bXM= IEVuZW15 IGVudmlzaW9u IGdyYW50aW5n IEhvbmV5 IFNreXJpbQ== IHNvY2lv Z3JhZGVk IHNlbGVjdGl2ZQ== V0FTSElOR1RPTg== IDE5NDg= IFNpcml1cw== IEdyb3Nz YWN0aXZpdHk= IEl2YW4= IGZ1cmlvdXM= QlNE IFByZXZpb3Vz IHJlc3BvbnNpdmU= IGNoYXJpdGFibGU= IGxlYW5pbmc= IFBldw== IHZpb2xhdGVz XFxcXFxcXFw= IENvbWluZw== d2lyZQ== IHBvZXQ= IHJlc29sdXRpb25z Y29tbWFuZA== IFBvcnR1Z3Vlc2U= IG5pY2tuYW1l IGRlYWY= RmVicnVhcnk= IHJlY29nbmlzZQ== IGVudGlyZXR5 IHNlYXNvbmFs cGxhY2Vk IFRlbGVncmFwaA== IG1pY3JvcGhvbmU= b3VyaW5n IGdyYWlucw== IGdvdmVybmVk IHBvc3Rw IFdhdGVycw== aW5lbWVudA== IHVuZG9jdW1lbnRlZA== IENvbWNhc3Q= IGZveA== IGFzc2F1bHRz cmVvbg== bWFueQ== IEplbmtpbnM= IEFueXdheQ== IGFzc2Vzc21lbnRz IGRvd25z IE1vdXNl IHN1cGVyYg== a3Q= IERvdw== IHRheGF0aW9u NDAx IHNtaWxlcw== IHVuZGVydGFrZW4= IGV4aA== IGVudGh1c2lhc3RpYw== IHR3ZW50 IGdvdmVybm1lbnRhbA== IGF1dG9ub215 IFRlY2hub2xvZ2llcw== IENoYWlu IHByZXZhbGVudA== ZmI= IG5pY290aW5l b2dyYW0= am9i IGF3YWl0aW5n IE1lbnU= IGRlcHV0aWVz a292 aXNob3Bz QnV0dG9u IFNoYW5naGFp IGRpZXNlbA== IER1Y2s= Unlhbg== IFBDcw== TkY= anVyeQ== ZW50ZQ== IGluYWNjdXJhdGU= ZWRkeQ== V2hhdGV2ZXI= IHNob3dj IE5hZA== b2R1cw== ZXRy IHBsYWludGlmZnM= IFdPUg== IEFzc2FuZ2U= IHByaXZhdA== IHByZW1pdW1z IHRhbQ== VVJM IGVsaXRlcw== IFJhbmdlcg== b3R0ZW5oYW0= IEhvZmY= IEF0aGVucw== IGRlZmluaXRl IHNpZ2hlZA== IGV2ZW5seQ== MjEx IEFtYmVy YWtpYQ== IG1haWxpbmc= IGNyYXNoaW5n IENvbmZlZGVyYXRl cnVnZ2Vk V2Fs IERlcHRocw== IGp1dmVuaWxl IHJlYWN0b3I= SW50cm9kdWN0aW9u IERlbHV4ZQ== MTk5NQ== IFNhbmNoZXo= IE1lYWQ= aXZhYmxl Oi0= IFBsYW5uaW5n IFRyYXA= cXVpbg== IFByb3RlY3Q= dmVyZWQ= SW5mb3JtYXRpb24= IGtpZG5leQ== aW5uYW1vbg== bGFz IHBvbGljaW5n IHRvbGVyYXRl IFFp IGJpYXNlZA== Rm9ydA== IEtp c2F2ZQ== IHByaXZpbGVnZWQ= IGJlYXN0cw== IEdsYXM= IENpbmVt IGNvbWViYWNr U3VuZGF5 IGV4dGluY3Rpb24= aG9wcw== IHRyYW5zbWl0 IGRvdWJsZXM= IEZsYXQ= MTY3 IGRpc3B1dGVk IGluanVzdGljZQ== Zm9v VmljdA== cm9sZXVt IEp1bGll Q29udGV4dA== IFJhcml0eQ== aXNzdWU= Q29tcG9uZW50 IGNvdW5zZWxpbmc= YW5uZQ== ZGFyaw== IG9iamVjdGlvbnM= dWlsdA== IGdhc3Q= IHBsYWM= IHVudXNlZA== 44OH IFRyaWFs IEphcw== aGVkcmFs b2Ji IHRlbXBvcmFs IFBSTw== IE5X IEFubml2ZXJzYXJ5 TGFyZ2U= IHRoZXJt IGRhdmlk IHN5c3RlbWlj IFNoaXI= bXV0 IE5lcHQ= YWRkcmVzcw== IHNjYW5uaW5n IHVuZGVyc3RhbmRhYmxl IGNhbnZhcw== Q2F0 IFpvbw== IGFuZ2Vscw== TE8= IFN0YXRlbWVudA== IFNpZw== b3ZhYmxl IEF3YXk= c2hhcmluZw== b2NyYXRz c3RhdGVk IHdlaWdoaW5n Tm9y d2lsZA== QmV5 IGFzdG9uaXNoaW5n IFJleW5vbGRz IG9wZW5lcg== IHRyYWluZXI= IHN1cmdpY2Fs cG4= IGFkanVzdGluZw== d2hlZWw= IGZyb3du ZXJ2YXRpdmU= IHN1c3BlbmQ= V2l0aGlu dGVpbg== IG9ic3RhY2xl IGxpYmVydGllcw== eW1lcw== IHVyYW5pdW0= YW5zb20= YW5vbA== dWJh IExvc3M= IGFyb3Vz IEhlbmRlcnNvbg== V293 c3Bs Y3Vy IMKt IHRoZWlycw== RGFtYWdl IGRvd25sb2FkaW5n IGRpc2Nlcm4= IFN0bw== IEZsYQ== IGhhdGg= IEFq IHVucGxlYXNhbnQ= RXVyb3BlYW4= ZXhwZW5zaXZl IHNjcmVlbnNob3Q= IFVW IGFsbGllZA== IFBlcnNpYW4= IG1vbm9wb2x5 IGF0b20= IFJlZHNraW5z Ij48 IGNhbmNlbGw= IGNpbmVtYQ== MTMx ZmFpcg== IEFsZnJlZA== IGR1Y2s= YXJncw== MjIz IElTSQ== IHNpZ25hbGluZw== aW5hcg== IGxhdWdocw== IGZvcndhcmRz IHJlY2tsZXNz IGxpc3RlbmVycw== YXRpdml0eQ== IHZhc3RseQ== bmFudA== TGVzcw== IEh1bnRpbmc= IFNjaWVudGlmaWM= SVRFRA== IGtuaWdodA== IEhUQw== dXNh dG1w IHJ1ZGU= IExlZ2VuZGFyeQ== IGFyaXNlcw== QmFk IENsYWlt cGVn IHJlYWxpdGllcw== VGhpbms= IMKw IHJvZGU= IHN0cml2ZQ== IGFuZWNk IHNob3J0cw== IGh5cG90aGVz IGNvb3JkaW5hdGVk IEdhbmRoaQ== IEZQUw== UkVE IHN1c2NlcHRpYmxl IHNocmluaw== IENoYXJ0 SGVscA== IGlvbg== ZGVlcA== cmliZXM= IEthaQ== IEN1c3RvbWVy U3VtbWFyeQ== IGNvdWdo d2lmZQ== IGxlbmQ= IHBvc2l0aW9uaW5n IGxvdHRlcnk= IENhbnlvbg== IGZhZGU= IGJyb256ZQ== IEtlbm55 IGJvYXN0cw== IEVuaGFuY2Vk cmVjb3Jk IGVtZXJnZW5jZQ== IGFraW4= IEJlcnQ= aXRvdXM= 4paR IHN0aXA= IGV4Y2hhbmdlZA== b21vcmU= YWxzaA== IHJlc2Vydm9pcg== IHN0YW5kcG9pbnQ= V00= IGluaXRpYXRl IGRlY2F5 IGJyZXdlcnk= IHRlcnJpYmx5 IG1vcnRhbA== bGV2YXJk IHJldmlz Tkk= ZWxv IGNvbmZlc3M= IE1TTkJD IHN1Ym1pc3Npb25z Q29udHJvbGxlcg== IDIwMg== IFJ1dGg= fSk7 IEF6dXJl IC4i MjA2 IE1hcmtldGluZw== IGxhdW5k aWVuY2llcw== IHJlbm93bmVk IFRyb3U= IE5HTw== YmxlbXM= IHRlcnJpZmllZA== IHdhcm5z IHBlcnQ= IHVuc3VyZQ== NDgw YWxleg== dWx0eg== IE91dHNpZGU= IHN0eWw= IFVuZGVyZ3JvdW5k IHBhbmM= IGRpY3Rpb25hcnk= IGZvZQ== cmltaW5hbA== IE5vcndlZ2lhbg== IGphaWxlZA== IG1hdGVybmFs w6ll IEx1Y3k= Y29w Q2hv IHVuc2lnbmVk IFplbGRh IEluc2lkZXI= IENvbnRpbnVlZA== IDEzMw== IE5hcnV0bw== IE1ham9yaXR5 MTY5 IFdv 44KT IHBhc3Rvcg== IGluZm9ybWFs 0L0= YW50aHJvcA== am9pbg== 44GX aXRhdGlvbmFs TlA= IFdyaXRpbmc= Zm4= IEJldmVy MTk1 IHllbGxpbmc= IGRyYXN0aWNhbGx5 IGVqZWN0 IG5ldXQ= IHRocml2ZQ== IEZyZXF1 b3V4 IHBvc3Nlc3Nlcw== IFNlbmF0b3Jz IERFUw== IFNoYWtlc3BlYXJl IEZyYW5jbw== IExC dWNoaQ== IGluY2Fybg== IGZvdW5kZXJz RnVuY3Rpb24= IGJyaWdodG5lc3M= IEJU IHdoYWxl IFRoZWF0ZXI= bWFzcw== IERvbGw= U29tZXRoaW5n IGVjaG9lZA== IEhleA== Y3JpdA== YWZpYQ== IGdvZGRlc3M= IGVsZXZlbg== IFByZXZpZXc= IEF1cm9yYQ== IDQwMQ== dWxzaXZl IExvZ2Fu aW5idXJnaA== IENlbnRlcnM= IE9OTFk= IEFpZA== IHBhcmFkb3g= IGh1cmQ= IExD RHVl Y291cnQ= IG9mZmVuZGVk IGV2YWx1YXRpbmc= IE1hdHRoZXdz IHRvbWI= IHBheXJvbGw= IGV4dHJhY3Rpb24= IEhhbmRz aWZp IHN1cGVybmF0dXJhbA== IENPTU0= XT0= ZG9ncw== IDUxMg== IE1lZXRpbmc= UmljaGFyZA== IE1heGltdW0= IGlkZWFscw== VGhpbmdz bWFuZA== IFJlZ2FyZGxlc3M= IGh1bWlsaQ== YnVmZmVy TGl0dGxl IERhbmk= IE5haw== IGxpYmVyYXRpb24= IEFiZQ== IE9M IHN0dWZmZWQ= YWNh aW5kYQ== cmFwaGlj IG1vc3F1 IGNhbXBhaWduaW5n IG9jY3VweQ== U3F1 cmluYQ== IFdlbA== IFZT IHBoeXNpYw== IHB1bHM= cmludA== b2FkZWQ= RVRG IEFyY2hpdmVz IHZlbnVlcw== aG5lcg== IFR1cmJv IGx1c3Q= IGFwcGVhbGVk cXVleg== aWxpYg== IFRpbW90aHk= IG9tbg== ZHJv IG9ic2Vzc2lvbg== IFNhdmFnZQ== MTk5Ng== R2xvYmFs SmVz MjE0 IHNsaWRpbmc= IGRpc2FwcHJv IE1hZ2ljYWw= IHZvbHVudGFyaWx5 Z2I= YW5leQ== IHByb3BoZXQ= IFJlaW4= IEp1bGlh IFdvcnRo YXVydXM= IGJvdW5kcw== aWV1 KSkp IGNyb3Jl IENpdGl6ZW4= U2t5 IGNvbHVtbmlzdA== IHNlZWtlcnM= b25kbw== SVNB IExlbmd0aA== IG5vc3RhbGc= IG5ld2NvbQ== IGRldHJpbQ== ZW50cmlj Mzc1 IEdF IGF1dG9w IGFjYWRlbWljcw== QXBwRGF0YQ== IFNoZW4= IGlkaW90 IFRyYW5zaXQ= IHRlYXNwb29u V2ls S08= IENvbWVkeQ== Piw= IHBvcHVsYXRlZA== V0Q= IHBpZ3M= IE9jdWx1cw== IHN5bXBhdGhldGlj IG1hcmF0aG9u MTk4 IHNlaXp1cmU= c2lkZWQ= IGRvcA== aXJ0dWFs TGFuZA== IEZsb29y b3NhdXJz Li4uXQ== IGxvcw== IHN1YnNpZGlhcnk= RVk= IFBhcnRz IFN0ZWY= IEp1ZGljaWFyeQ== IDEzNA== IG1pcnJvcnM= IGtldA== dGltZXM= IG5ldXJvbG9n IGNhdg== IEd1ZXN0 IHR1bW9y c2NpbGw= IExsb3lk RXN0 IGNsZWFyZXI= IHN0ZXJlb3R5cGVz IGR1cg== bm90aGluZw== UmVkZGl0 IG5lZ290aWF0ZWQ= LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t MjM1 IGZsb3du IFNlb3Vs IFJlc2lkZW50 IFNDSA== IGRpc2FwcGVhcmFuY2U= IFZpbmNl Z3Jvd24= IGdyYWJz cmls IEluZmluaXRl IFR3ZW50eQ== IHBlZGVzdHJpYW4= IGplcnNleQ== IEZ1cg== IEluZmluaXR5 IEVsbGlvdHQ= IG1lbnRvcg== IG1vcmFsbHk= IG9iZXk= c2VjdXJl aWZmZQ== IGFudGliaW90aWNz YW5nbGVk IEZyZWVtYW4= IEludHJvZHVjdGlvbg== SnVu IG1hcnNo aWNhbnM= IEVWRU5UUw== b2Nob25k V2FsbA== aWN1bHR5 IG1pc2RlbWVhbm9y IGx5 VGhvbWFz IFJlc29sdXRpb24= IGFuaW1hdGlvbnM= IERyeQ== IGludGVyY291cnNl IE5ld2Nhc3RsZQ== IEhvZw== IEVxdWlwbWVudA== MTc3 IHRlcnJpdG9yaWFs IGFyY2hpdmVz MjAz RmlsdGVy IE11bmljaA== IGNvbW1hbmRlZA== IFdhbmQ= IHBpdGNoZXM= IENyb2F0 IHJhdGlvcw== IE1pdHM= IGFjY3VtdWxhdGVk IFNwZWNpZmljYWxseQ== IGdlbnRsZW1hbg== YWNlcmI= IHBlbm4= IGFrYQ== IEZ1aw== IGludGVydmVuZQ== IFJlZnVnZQ== IEFsemhlaW1lcg== IHN1Y2Nlc3Npb24= b2hhbg== ZG9lcw== TG9yZA== IHNlcGFyYXQ= IGNvcnJlc3BvbmRlbmNl IHNoaW55 UHJpb3I= IHN1bGY= IG1pc2VyYWJsZQ== IGRlZGljYXRpb24= KCku IHNwZWNpYWxpc3Rz IGRlZmVjdHM= IEN1bHQ= IFhpYQ== IGplb3BhcmQ= IE9yZQ== QWJpbGl0eQ== IGxlYXI= IGFtYml0aW9ucw== IEJNSQ== IEFyYWJz IDE5NDI= IHByZXNlcnZhdGlvbg== aWZpY2F0ZQ== IGFzaGFtZWQ= bG9zcw== IFJlc3RhdXI= IHJlc2VtYmxl IGVucmljaA== IEtO IENsYW4= ZmxvYXQ= IHBsYXlhYmxl SVRU IGhhcm1vbnk= YXJyaXNvbg== IFdlaW5zdGVpbg== d2VyZQ== IHBvaXNvbmluZw== IENvbXB1dA== IFdvcmRQcmVzcw== bWFqb3I= IFZhbHZl RmFu IFRocm93 IFJvbWFucw== IERlcHJlc3Npb24= YWRvcw== IHRvcnR1cmVk IGJhbGFuY2luZw== Ym90dG9t IGFjcXVpcmluZw== IE1vbnRl YXJkaQ== IGF1cmE= ICMj IFN0YW5kaW5n IEF0bGFz Q0Y= IGludHJpbnM= IEJlbmdoYXpp IGNhbXBpbmc= IHRhcHBlZA== YmxhZGU= c3Ryb3Vz IFJhYmI= IFdyaXR0ZW4= dGlw IE5laWdo c3RlcmRhbQ== IEFsbG93 IEhlYWxpbmc= IFJob2Q= bnVt IGNhZmZlaW5l IFBlcmNlbnQ= IGJvbw== IGFwcGxlcw== MzA1 IHdlbGNvbWluZw== IGFwcGxhdWQ= IGF1c3Rlcml0eQ== wrE= IFJlYWxpdHk= ZWZl 5a4= IHN1Y2tz IHRhYnM= IFBheVBhbA== IGJhY2twYWNr IGdpZnRlZA== YWJ1bGFyeQ== IFNjb3V0 aXJ0ZWVu IGNoaW4= IG9taXR0ZWQ= IG5lZ2F0aXZlbHk= IGFjY2Vzc2luZw== IEVhcm4= IGFtYnVsYW5jZQ== IGhlYWRwaG9uZXM= IDIwNQ== IFJlZnJlc2g= cHJlc2lkZW50 IEtpdGNoZW4= IEVudGVyZWQ= IFNueWRlcg== MDA1 b21pY2Fs IGJvcnJvd2Vk IE5lbQ== IGF2aWF0aW9u IHN0YWxs cmltaW5hdGlvbg== IHVuaWZvcm1z aXRpbWU= IFNpbW1vbnM= ZW5lcmd5 YWJsaXNoZWQ= eXk= cXVhbGlmaWVk IHJhbGxpZXM= IFN0dWFydA== ZmxpZ2h0 IGdhbmdz cmFn IHZhdWx0 bHV4 IENvbXBhcg== IGRlc2lnbmF0aW9u MjA5 IEpvcw== ZG9sbGFy emVybw== IHdlbGxz MzAz IGNvbnN0aXR1ZW50cw== IGhlY2s= IGNvd3M= IGNvbW1hbmRlcnM= IGRpZmZlcmVudGlhbA== IENhdGhlcmluZQ== Mjk5 IHZhbHZl IGJyYWNl IHBlcnNwZWN0aXZlcw== Y2VydA== ZmFjdA== aWN1bGFybHk= IE1jTg== cGxhbmVz IGludHJpYw== IHBlYXM= b3Zhbg== IHRvc3NlZA== cmV0Y2g= IExvcGV6 IHVuZmFtaWxpYXI= ZGVhdGg= IEFwYXJ0 IENoYW5n IHJlbGlldmVk cm9waGU= IGFpcnBvcnRz IGZyZWFr dXRpbA== TWlsbA== IENoaW4= IE93ZW4= bWFsZQ== IEJyb2tlbg== IFdpbmRz cm9i cmlzaW5n IGZpcmVmaWdodGVycw== IGF1dGhvcml0YXJpYW4= IDE0OA== Qml0Y29pbg== ZXh0ZXJuYWw= IGJyb3dzZXJz aWNoZXZlcg== b3JpYW4= IHVuYg== IHBva2U= IFpvdA== TWlk IFBvcHVsYXI= IGNvdmVydA== IGNvbnRyaWJ1dGVz IDY1MA== IGNvbnRlbnRpb24= R2F0ZQ== IGNvbnNvbGVz IGNocm9tb3M= IElY IHZpc3VhbGx5 IEVpc2Vu IGpld2Vscnk= IGRlbGVnYXRpb24= IGFjY2VsZXJhdGU= IFJpbGV5 IHNsb3Bl IGluZG9vcg== aXRpYWxseQ== IGh1Z2VseQ== IHR1bm5lbHM= IGZpbmVk IGRpcmVjdGl2ZQ== IGZvcmVoZWFk dXN0b21lZA== IHNrYXRl TXVzaWM= Z2Fz IHJlY29nbml6aW5n YW1ibw== IG92ZXJ3ZWlnaHQ= IEdyYWRl 2Yo= IHNvdW5kaW5n IGxvY2tpbmc= IFJFTQ== U3RvcmU= IGV4Y2F2 IExpa2V3aXNl IExpZ2h0cw== IGVsYm93 IFN1cHBseQ== d2lj IGhhbmRzb21l MTk5NA== Q29sbA== IGFkZXF1YXRlbHk= IEFzc29jaWF0ZQ== IHN0cmlwcw== IGNyYWNrZG93bg== IG1hcnZlbA== IEt1bg== IHBhc3NhZ2Vz QEBAQA== IFRhbGw= IHRob3VnaHRmdWw= bmFtZXNl IHByb3N0aXR1dGlvbg== YnVzaW5lc3M= IGJhbGxpc3RpYw== cGVyc29uYWw= Y2ln aXphdGlvbmFs Um91bmQ= IMKgIMKgIMKgIMKg IENvbGVtYW4= IGFkbWl0dGluZw== IFBsdWc= IGJpdGNvaW5z IFN1eg== IGZhaXJuZXNz IHN1cHBsaWVy IGNhdGFzdHJvcGhpYw== IEhlbGVu b3F1 TWFyYw== IEFydGljbGVz Z2ll IGVuZGFuZ2VyZWQ= IGRlc3Rpbnk= IFZvbHQ= b2xpYQ== YXhpcw== IGNoZWF0 IHVuaWZpZWQ= SUNP cXVvdGU= MzAy IFNlZA== IHN1cHByZXNzaW9u IGFuYWx5emluZw== IHNxdWF0 IGZpZ3VyaW5n IGNvb3JkaW5hdGVz IGNodW5rcw== IDE5NDY= IHN1YnA= IHdpa2k= IEZvcmJlcw== IEp1cGl0ZXI= IEVyaWs= aW1lcg== IENvbW1lcmNpYWw= XCk= IGxlZ2l0aW1hY3k= IGRlbnRhbA== IE1lYW4= IGRlZmljaXRz NTUw T3JpZ2luYWxseQ== IEhvcnJvcg== IGNvbnRhbWluYXRpb24= bGxhaA== IGNvbmZpc2M= IENsYXJl VEI= IEZhaWxlZA== YW5lZA== IHJ1bGVy IENvbnRyb2xsZXI= IGZlbWluaXN0cw== Rml4 Z2F5 MjA3 IHJhYmJpdA== VGhpcmQ= b3dudG93bg== IGdsdWU= IHZvbGF0aWxl IHNoaW5pbmc= IGZvbGw= IGltcGFpcmVk IHN1cGVycw== 5og= IGNsdXRjaA== mumGkg== IHByb2xldA== ICgh IHllbGxlZA== IEtpZXY= IEVybg== IFNob2Nr S0I= IHNpdHVhdGVk cXVlcnk= IE5hcw== IGFubmV4 Y2hhcmFjdGVy IEhvbGlkYXk= IGF1dG9tYXRpb24= IEppbGw= IFJlbWFzdGVyZWQ= IGxpbmVt IHdpbGRlcm5lc3M= IEhvcml6b24= IEd1aW5lYQ== QVo= IG1haW5sYW5k IHNlY3JlY3k= TEVBU0U= IHB1bms= IFByb3ZpbmNl KCks U3BlZWQ= IGhhbmRpbmc= IFNlYmFzdA== U2ly cmFzZQ== IGpvdXJuYWxz IGNvbmdlc3Q= IFR1dA== aXJyZWw= IHNjaGl6b3BocmVuaWE= IG1pc29neW4= aGVhbHRoeQ== SXJvbg== IHJlYWN0ZWQ= LSQ= MjUy IHBsdXJhbA== IHBsdW0= IGJhcmdhaW4= IGdyb3VuZGVk ZmluZGVy IGRpc3Nl IExheg== T09E IGF0cm9j RmFjdG9yeQ== IG1pbmlvbnM= IG9yaQ== IEJyYXZl IFBSRQ== IE15YW5tYXI= IEhvZA== IGV4cGVkaXRpb24= IGV4cGxvZGU= IENvb3Jk IGV4dHI= IEJyaWVm IEFESEQ= IGhhcmRjb3Jl ZmVlZGluZw== IGRpbGU= IEZydWl0 IHZhY2NpbmF0aW9u IE1hbw== b3NwaGVyZQ== IGNvbnRlc3Rz LXw= IGZyZW4= aXNwaGVyZQ== Um9t IFNoYXJw IFRyZW5k IGRpc2Nvbm5lY3Q= 4oCi4oCi IHBlcnNlY3V0aW9u RWFydGg= IGhlYWx0aGllcg== Mzg0 IGNvYg== IFRyaW5pdHk= T1dT QU5O IHNwZWNpYWx0eQ== IGdydQ== IGNvb3BlcmF0aXZl d2h5 U3RhcnRpbmc= IElzc3Vlcw== c3RyZQ== ZW5zb3I= IDE4NQ== QWR2 IT8= IFJldmVs ZW1pYQ== IEh1bGs= IGNlbGVicmF0aW9ucw== IFNvdQ== cmF1ZA== IEtsZWlu IHVucmVhbA== Y29udGV4dA== IHBhcnRuZXJzaGlwcw== IGFkb3B0aW5n dGljYWw= IHNwbGFzaA== IEhlemJvbGxhaA== Y2F0ZWdvcnk= Y3ljbG9w eHRvbg== IERvdA== dXJkeQ== dHo= IGVudmVsb3Bl IE5M 4pU= IHdoZXJlaW4= U3BlYw== MTg0 IHRlbGV2 YWxpYXRpb24= IG15dGhz 5bA= IHJpZ29yb3Vz IGNvbW11bmljYXRpbmc= IG9ic2VydmVy IHJlaGU= IFdhc2g= IGFwb2xvZ2l6ZWQ= IFRpbg== IGV4cGVuZGl0dXJlcw== d29ya2Vycw== ZG9jdW1lbnQ= IGhlc2l0YXRl IExlbmlu IHVucHJlZGljdGFibGU= IHJlbmV3YWw= Y2xlcg== b2tpYQ== IENPTlQ= IHBvc3RzZWFzb24= VG9rZW5z IGV4YWNlcmI= IGJldHRpbmc= IDE0Nw== IGVsZXZhdGlvbg== V29vZA== IFNvbG9tb24= MTk0 MDA0 b3V0cHV0 IHJlZHVuZA== IE11bWJhaQ== IHBI IHJlcHJvZHVjZQ== IER1cmF0aW9u TUFY IGJvZw== Q0JT IEJhbGFuY2U= IFNndA== IFJlY2VudA== IGNk IHBvcHBlZA== IGluY29tcGV0 cHJvcA== YXlhbg== Z3V5 UGFjaWZpYw== IHR5cg== IHt7 IE15c3RpYw== IERhbmE= IG1hc3R1cmI= IGdlb21ldHJ5 w6I= IENvcnJlY3Q= IHRyYWplY3Rvcnk= IGRpc3RyYWN0ZWQ= IGZvbw== IFdlbHNo THVj bWl0aA== IHJ1Z2J5 IHJlc3BpcmF0b3J5 IHRyaWFuZ2xl IDIxNQ== IHVuZGVyZ3JhZHVhdGU= IFN1cGVyaW9y Y2hhbmdpbmc= Xy0= IHJpZ2h0bHk= IHJlZmVyZWU= IGx1Y3JhdGl2ZQ== IHVuYXV0aG9yaXplZA== IHJlc2VtYmxlcw== IEdOVQ== IERlcmJ5 IHBhdGh3YXlz IExlZA== IGVuZHVyYW5jZQ== IHN0aW50 IGNvbGxlY3Rvcg== RmFzdA== IGRvdHM= IG5hdGlvbmFscw== IFNlY3VyaXRpZXM= IHdoaXA= UGFyYW0= IGxlYXJucw== TWFnaWM= IGRldGFpbGluZw== bW9vbg== IGJyb2FkY2FzdGluZw== IGJha2Vk MjY1 aG9sbQ== IFNhaA== IEh1c3NlaW4= IENvdXJ0ZXN5 MTc0 IDE0Ng== IGdlb2dyYXBoaWM= cGVhY2U= IGp1ZGdpbmc= IFN0ZXJu QnVy IHN0b3J5bGluZQ== R3Vu IFN0aWNr MjQ1 MzA3 44K044Oz IEFkbWluaXN0cmF0b3I= IGJ1cm50 IHBhdmU= Y2hvZXM= RXhlYw== IGNhbXB1c2Vz UmVzdWx0 IG11dGF0aW9ucw== IENoYXJ0ZXI= IGNhcHR1cmVz IGNvbXBhcmVz IGJhZGdl U2NpZW50 IGVyYWQ= aWVyeQ== b2k= ZXR0ZXM= IEVzdGF0ZQ== IHN0cmFw IHByb3VkbHk= IGZyaWVk IHdpdGhkcmF3bg== IFZveQ== cGhvbnk= SXRlbXM= IFBpZXJjZQ== YmFyZA== IGFubm90YXRpb24= YW50b24= aWxsb24= SW1wcm8= Li4uKQ== IGhhcHBpZXI= LS0tLS0t YWRqdXN0 IHN0YWZmZXJz IGFjdGl2aXNt IHBlcmY= IGFscmlnaHQ= TmVlZA== IGNvbW1lbmNl IG9waW9pZA== IEFtYW5kYQ== RXM= IFBhcnM= IEthdw== V29ya3M= MjQ4 IGluZG8= dGM= ZW5kYW50 IE1vdG8= IGxlZ2FsaXphdGlvbg== T1RF IHRhc2tlZA== IHRzcA== IEFDVElPTlM= MTY2 IHJlZnJlc2hpbmc= IE5S IFBlcmV6 IGluZnJpbmdlbWVudA== U1k= TGlzdGVu aW5uaW5n a3U= IHJvdGF0ZQ== cHJvZ3JhbQ== YXJhaA== RGVzaWdu ICjCow== IHN0b3Jpbmc= IHdhcnJhbnRz IGp1ZGdlbWVudA== IEJyaXN0 dXN1YWxseQ== cGhvdG8= IFJhbg== IFBpbmU= IG91dHJhZ2VvdXM= IFZhbGVudGluZQ== bHVlbmNl IEV2ZXJ5Ym9keQ== QWx0ZXJu IHJlbGV2YW5jZQ== IHRlcm1pbmF0ZWQ= IGRlc3NlcnQ= IGZ1bGZpbGxlZA== IHByb3NlY3V0ZWQ= IFdvcmRz IG1pZ3JhbnQ= IGN1bHRpdmF0aW9u w4PDgsODw4LDg8OCw4PDgsODw4LDg8OCw4PDgsODw4LDg8OCw4PDgsODw4LDg8OCw4PDgsODw4LDg8OCw4PDgg== aWRlbGl0eQ== IFZlcm4= IExvZ2lu IG1ldGFwaG9y IFRpcA== IHJlY3J1aXRz IFBpZw== cmliaW5n IGVudGh1c2lhc3Rz ZXhwZXI= IGZyaWdodGVuaW5n IEhhaXI= YW5zb24= c3RyYXRl IGhp SGVpZ2h0 IG93bmluZw== bm9uZQ== IGRpc2xpa2U= IGtuaXZlcw== cGhlcmQ= IGxvdWRseQ== IEFQSXM= RGlzcGxheQ== IExhYw== IFVTUw== YWJs dmVyYWdlcw== SmV3 IDE3Mg== IEhpc3RvcmljYWw= YXRvb24= IFBoeXNpY3M= aW50ZXJu IHdhcm10aA== IHRvcHA= RE0= IGd1bm1hbg== IGVtcGVyb3I= b2Rp 44Oj aW5hdG9yeQ== IFJpYg== IDEzMQ== IFNhdHVybg== IFNoaW5pbmc= IHdha2luZw== UXVvdGVz IGNvbWVkaWFu ZW5iZXJn wr0= IGJlbGlldmVycw== IHBhcGVyd29yaw== Y3VzdG9t IGxldg== IGxhbWVudA== IHBvdXJpbmc= MjIy cG9saXRpY2Fs IFN1cHBsZW1lbnQ= bWFpZA== IGNydWVsdHk= IHRyZWFk eXNpY3M= QXc= cml0ZXM= IG1vZGlmaWVy IFBvc2l0aW9u QWRhbQ== bGI= dWJz IGltcGVyZmVjdA== IGNsdXN0ZXJz IEVuZ2luZWVy IENoZXJyeQ== IGluYXVndXJhdGlvbg== IFNhdQ== IGVtYm9kaW1lbnQ= IFVuY2xl IG92ZXJy IGV4cGxvc2lvbnM= Y3VsZQ== IFByaW5jZXRvbg== IEFuZHJlYQ== IGluY29ycmVjdGx5 IGVhcm5lc3Q= IHBpbGdy IFNwcmludA== IHNsZWV2ZQ== IGhlYXJz IEFtYXppbmc= IGJyb3dzaW5n YWdpbg== IGhvbWVsYW5k IGhhdw== IGRpdmluZw== aXN0ZXJlZA== MTc4 IGJhcmdhaW5pbmc= IEFyY2FkZQ== IGRlbGVnYXRl dGVyc29u Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLg== IEphY2tzb252aWxsZQ== Mjc1 IHN0YWdu IGFkYW0= IFNoZXJtYW4= Q0I= IHN1YnVyYg== IEZvb2Rz IGNvbnZlcnRpbmc= IEFyaXN0 IGNoYW1iZXJz bG92ZQ== IGFtaW5v IEdhbg== IG1hZG5lc3M= bWM= IFVTRQ== ZGVmaW5lZA== IHVsdHI= aW5kdXN0 IHdvbHZlcw== bGFuY2U= QWRkaXRpb25hbGx5 IGNyYWNrcw== YXNpYQ== IFJlYXNvbg== IFB1bXA= IGFjY2lkZW50YWw= IExhc2Vy IFJpZA== IGluaXRpYWxpemVk ZWxsaQ== IHVubmFtZWQ= IG5vdW4= IFBhc3NlZA== IGhvc3RhZ2U= IEV0aGlvcA== c2hpcnRz IHVucmVs IEVtYmFzc3k= IDE5NDE= IGF0b21z IHB1cnBvcnRlZA== MTY0 IEZp IGdhbGxvbnM= IE1vbmljYQ== IHBn ZW5tZW50 IHNvcnRlZA== IEdvc3BlbA== IGhlaWdodHM= IHRyYWNlZA== IHVuZGVyZ29pbmc= U2hlbGw= IHNhY2tz IHByb3BvcnRpb25z IGhhbGx1Yw== Rm9udA== YWNldA== IHdhcm1lcg== IElOVEVS IGdyYWJiaW5n UGx1Zw== IHJlYWxpemF0aW9u IEJ1cmtl IGVuY2hhbnQ= QVRFUg== IFNlZWQ= IGFidW5kYW50 Rk0= IGNpdmlj VnM= aXNp IHZvdw== IHJlcGVy IFBhcnRuZXJzaGlw IHBlbmV0cmF0aW9u IGF4ZQ== IHNoYXR0ZXJlZA== IFpvbWJpZXM= IHZpbnls IEFsZXJ0 ZW9u IG9ibGlnZWQ= IElsbHVzdA== IFBsYXph IEZyb250aWVy IGRhdmlkamw= IFNlcmlhbA== IEhhdg== IE51dHJpdGlvbg== Qmk= IOKWiA== IEpheXM= bGludXg= IGh1cnJ5 IHZveQ== IGhvcGVsZXNz IFN0ZWFsdGg= IOOB ZXNzb3Jz dHRsZQ== Ym9yZw== IFNhZmFyaQ== ZmVsbA== IHdhcnk= ZHVl IEFib3Zl SGE= RUxM IG5vdG9y IFdvbg== VG9v IG9jY3VwYXRpb25z IHBvc3Nlc3Npb25z IGludml0aW5n IHByZWRhdG9ycw== IGFjY2VsZXJhdGVk IDE1Nw== dXRlcnRl IEN1YmU= ZWFzdA== YWNjb3VudA== R2l2ZQ== IHRyYW5zcGxhbnQ= cmVkaWVudHM= aWRhYmxl IHNjcmVlbnNob3Rz IEd1bmQ= IEZT IHRyYXZlbGVycw== IHNlbnNvcnk= IEZpYXQ= IFJvY2tldHM= jos= X3s= RnJpZW5k IGNoYXJtaW5n QUxT IGVuam95bWVudA== bXBo IDUwMDA= IFJFRw== 2YY= Ymlh IGNvbXBpbGF0aW9u cm9zdA== IFZQ IFNjaG5l MjAxOQ== IGNvcHlpbmc= TU9SRQ== IEZsb3Jl ZmFsbHM= MjE1 dG90YWw= IGRpc2NpcGxlcw== ZG91Ymxl IGV4Y2VlZGluZw== IHNtYXNoZWQ= IGNvbmNlcHR1YWw= IFJvbWFuaWE= IEJyZW50 IElDRQ== IFRvdQ== IGdyYXA= IG5haWxz MTg5 44OY IHByb2N1cmU= ZXVy IGNvbmZpcm1pbmc= IENlYw== YXdp IEVkZW4= IG5n IGVuZ2luZWVyZWQ= YXRpY3M= IGhvb2tlZA== IGRpc2d1c3Rpbmc= IE11cmRlcg== 44K/ TGlicmFyeQ== IDE2OA== QWxtb3N0 aGVtYXRpYw== TWVudQ== IE5vdHJl IEp1cg== IGtpZG5hcHBlZA== IGhhY2tlcg== IEphZGU= IGNyZWVweQ== IGRyYXdpbmdz IFNwb25zb3I= IGN5Y2xpc3Rz IEdvYmxpbg== IG9wdGltaXplZA== IHN0YWdlZA== IE1jRA== YmV0d2Vlbg== QWdl ZW5v U2V4 IFdpZGU= bmluZ3M= YXZpcw== IGluY2FwYWJsZQ== IEtvYg== IHJld2FyZGluZw== IExvbmU= b2xlc2NlbnQ= IGNvbnRyYWN0ZWQ= IHN0aWNreQ== Sm9zZQ== QmFsbA== ZmVzdA== IElucHV0 IFJlY2VudGx5 IHRvbWF0 c3F1YXJl QXBwbGljYXRpb24= IG5pdHJvZ2Vu IGR1cGxpY2F0ZQ== IFJlY29u IERlYXI= TG9uZG9u IGludHJh IGRvY2s= IG91dHJlYWNo IE1pbGxpb24= IG1hbW1hbHM= YW1wdG9u VkFM IHNuYXBz IGRvcw== IFdob2xl IFJlYWR5 VHJ5 IFdpbm5pcGVn ZWFyYW5jZQ== IGluY3VycmVk cmVuY2hlZA== IE5TVw== aWxvdA== cmFpbmU= IGN1YmU= Z290 IHJ1bndheQ== ZXRlcm1pbmVk IEhhd2tz IHN1cnZpdm9y IFdpc2g= IERpbg== IERFRg== IFZhdWx0 MTg3 IG11c2hyb29tcw== IGNyaXNw YmV5 IERpc2NvdmVyeQ== IGRldmVsb3BtZW50YWw= IHBhcmFkaWdt IGNoYW90aWM= IFRzdQ== IDMzMw== Ym9ucw== IGJhY3RlcmlhbA== IGNvbW1pdHM= IGNvc21pYw== IG1lZ2E= b2NhdGl2ZQ== IFBhaW50 b3Bob2JpYw== IHZhaW4= IGNhcnZlZA== IFRoaWVm IEd1bA== b3dzaGlw IGNpdGVz IEVkaW5idXJnaA== IGRpbWluaXNoZWQ= IGFja25vd2xlZGdlcw== IEtpbGxz IG1pY3Jvdw== IEhlcmE= IHNlbmlvcnM= IHdoZXJlYnk= SG9w YXRyb24= IHVuYXZhaWxhYmxl IE5hdGU= IDQ4MA== IHNsYXRlZA== IFJlYmVjY2E= IEJhdHRlcnk= IGdyYW1tYXI= IGhlYWRzZXQ= IGN1cnNvcg== IGV4Y2x1ZGluZw== YW55ZQ== YXVuZGVyaW5n ZWJpbg== IGZlYXNpYmxl IFB1Ymxpc2hpbmc= IExhYnM= IENsaWZm IEZlcnJhcmk= IHBhYw== dmlzaWJsZQ== bWFya2Vk cGVsbA== IHBvbGl0ZQ== IHN0YWdnZXJpbmc= IEdhbGFjdGlj IHN1cGVyc3Q= IHBhcmFu IE9mZmljZXJz 44CB IHNwZWNpZmljcw== dWx1cw== MjM5 IFBhc3Rl QU1Q IFBhbmFtYQ== IERlbGV0ZQ== YW5ndWFyZA== cmVzdHJpYWw= IGhlcm9pYw== IER5 2KfZhA== IGluY3VtYmVudA== IGNydW5jaA== dHJv IHNjb29w IGJsb2dnZXI= IHNlbGxlcnM= dXJlbg== IG1lZGljaW5lcw== IENhcHM= IEFuaW1hdGlvbg== b3h5 IG91dHdhcmQ= IGlucXVpcmllcw== MjI5 IHBzeWNob2xvZ2lzdA== IFNhc2s= ZXZpbA== IGNvbnRhbWluYXRlZA== 44Ko aGVyZW5jZQ== IGJyYW5kZWQ= IEFiZHVs emg= IHBhcmFncmFwaHM= IG1pbnM= IGNvcnJlbGF0ZWQ= ZXJi IGltcGFydA== IG1pbGVzdG9uZQ== IFNvbHV0aW9ucw== b3RsZQ== IHVuZGVyY292ZXI= IG1hcmNoZWQ= IENoYXJnZXJz ZmF4 IFNlY3JldHM= IHJ1dGg= d2VhdGhlcg== IGZlbWluaW5l IHNoYW0= IHByZXN0aWdpb3Vz aWdnaW5z IHN1bmc= aGlzdG9yeQ== ZXR0bGU= Z2dpZQ== IG91dGRhdGVk b2xhbmQ= IHBlcmNlcHRpb25z IFNlc3Npb24= IERvZGdlcnM= dWo= IEVORA== RG9j IGRlZmljaWVuY3k= R3JhbmQ= IEpva2Vy IHJldHJvc3BlY3Q= IGRpYWdub3N0aWM= IGhhcm1sZXNz IHJvZ3Vl IEF2YWw= RXF1 IHRyYW5zYw== IFJvYmVydHNvbg== IERlcGVuZGluZw== IEJ1cm5z aXZv IGhvc3RpbGl0eQ== RmVhdHVyZXM= k5g= IGRpc2NvbWZvcnQ= IExDRA== c3BlY2lmaWVk IEV4cGVjdA== MzQw IGltcGVyYXRpdmU= IFJlZ3VsYXI= Q2hpbmVzZQ== IHN0YXRld2lkZQ== IHN5bW0= IGxvb3Bz IGF1dHVtbg== Tmljaw== IHNoYXBpbmc= IHF1b3Q= IGNoZXJyeQ== IENyb3NzcmVm 6Kaa6YaS U3RhbmRhcmQ= aGVlZA== IERlbGw= IFZpZXRuYW1lc2U= IG9zdA== IFZhbGt5cmll T0E= QXNzYWQ= IHJlYm91bmQ= IFRyYWZmaWM= cGxhY2Vz 5pg= IEJ1Yw== MTcy IHNoZWx0ZXJz IGluc2lzdGluZw== IENlcnRhaW5seQ== IEtlbm5ldGg= IFRDUA== IHBlbmFs IFJlcGxheQ== aGVhcmQ= IGRpYWxlY3Q= aXph IEZZ aXRjaGVy IERM IHNwaXJhbA== IHF1YXJ0ZXJiYWNrcw== IGh1bGw= IGdvb2dsZQ== IHRvZGQ= IFN0ZXJsaW5n IFBsYXRl IHNweWluZw== bWJvbA== IFJlYWxt IFByb2NlZA== IENyYXNo IHRlcm1pbmF0ZQ== IHByb3Rlc3Rpbmc= Q2VudGVy Z3VpZGVk IHVuY292ZXI= IGJveWNvdHQ= IHJlYWxpemVz c291bmQ= IHByZXRlbmRpbmc= IFZhcw== MTk4MA== IGZyYW1lZA== IDEzOQ== IGRlc2NlbmRlZA== IHJlaGFiaWxpdGF0aW9u IGJvcnJvd2luZw== IEJ1Y2g= IGJsdXI= Um9u IEZyb3plbg== ZW56YQ== Q2hpZWY= IFBvb3I= IHRyYW5zbGF0ZXM= TUlO IDIxMg== SkVDVA== IGVydXB0ZWQ= IHN1Y2Nlc3Nlcw== U0VD IHBsYWd1ZQ== IGdlbXM= ZG9tcw== IHN0cmV0Y2hlcw== IFNweQ== IHN0b3J5dGVsbGluZw== Q3JlZGl0 IFB1c2g= IHRyYWN0aW9u IGluZWZmZWN0aXZl IEx1bmE= IHRhcGVz IGFuYWx5dGljcw== ZXJjaXNl IHByb2dyYW1tZXM= IENhcmJvbg== IGJlaG9sZA== aGVhdnk= IENvbnNlcnZhdGlvbg== IEZJUg== IHNhY2s= dGVybWlu cmlja3M= IGhvdXNlZA== IHVudXN1YWxseQ== SWNl IGV4ZWN1dGluZw== IE1vcm9j ZWRheQ== IGVkaXRpb25z IHNtYXJ0ZXI= IEJB IG91dGxhdw== IHZhbmlzaGVk aWJh QUxTRQ== IFNpbHZh MjM4 Q291bGQ= IHBoaWxvc29waGVy IGV2YWN1YXRlZA== U2VjcmV0 MTQy IHZpc2Fz 44Ks IE1hbHQ= IENsZWFybHk= IE5pZ2Vy IENhaXJv IEZpc3Q= Mzgw IFhNTA== YXV0bw== aXRhbnQ= IHJlaW5mb3JjZWQ= UmVjb3Jk IFN1cnZpdm9y R0h6 IHNjcmV3cw== cGFyZW50cw== IG9jZWFucw== bWFyZXM= IGJyYWtlcw== dmFzaXZl IGhlbGxv IFNJTQ== cmltcA== IG9yZQ== IEFybW91cg== MjQ3 IHRlcnJpZmlj IHRvbmVz MTQx IE1pbnV0ZXM= RXBpc29kZQ== IGN1cnZlcw== IGluZmxhbW1hdG9yeQ== IGJhdHRpbmc= IEJlYXV0aWZ1bA== TGF5 IHVucG9w dmFibGU= IHJpb3Rz IFRhY3RpY3M= YmF1Z2g= IENvY2s= IG9yZ2FzbQ== IFNhcw== IGNvbnN0cnVjdG9y ZXR6 R292 IGFudGFnb24= IHRoZWF0 IGRlZWRz aGFv Y3V0cw== IE1jQ2w= IHVt IFNjaWVudGlzdHM= IGdyYXNzcm9vdHM= eXNzZXk= Il09Pg== IHN1cmZhY2Vk IHNoYWRlcw== IG5laWdoYm91cnM= IGFkdmVydGlz b3lh IG1lcmdlZA== VXBvbg== IGdhZA== IGFudGljaXBhdGU= QW55d2F5 IHNsb2dhbg== IGRpc3Jlc3BlY3Q= SXJhbg== IFRC YWN0ZWQ= IHN1YnBvZW4= bWVkaWF0ZWx5 T09PTw== IHdhaXZlcg== IHZ1bG5lcmFiaWxpdGllcw== b3R0ZXN2aWxsZQ== IEh1ZmZpbmd0b24= Sm9zaA== IERI TW9uZGF5 IEVsbGVu S25vdw== eG9u aXRlbXM= MjI4 IGZpbGxz IE5pa2U= IGN1bXVsYXRpdmU= YW5kYWxz SXI= IOw= IGZyaWN0aW9u aWdhdG9y IHNjYW5z IFZpZW5uYQ== bGRvbQ== IHBlcmZvcm1lcnM= UHJpbQ== IGJpZGRpbmc= TXVy IGxlYW5lZA== IFByaXg= YWxrcw== IFvigKZd IFR3aXRjaA== IERldmVsb3Blcg== IEdpcg== IGNhbGxiYWNr QWJzdHJhY3Q= IGFjY3VzdG9tZWQ= IGZyZWVkb21z IFBH dXJhY3k= IGx1bXA= aXNtYW4= LCwsLA== MTk5Mg== IFJFRA== IHdvcm0= TWF0Y2g= IFBsYXRpbnVt SUo= IE93bmVy VHJpdmlh Y29tcGw= IG5ld2Jvcm4= IGZhbnRhcw== T3du IDE5NTk= IHN5bXBhdGg= IHViaXF1 IG91dHB1dHM= IGFsbGV2 IHByYWc= S2V2aW4= IGZhdm9ycw== IGJ1cmlhbA== IG51cnQ= c29sZXRl Y2FjaGU= IDE1Ng== IHVubG9ja3M= dGVjaG4= TWFraW5n IGNvbnF1ZXI= YWRpYw== 5pY= IGVsZg== IGVsZWN0b3JhdGU= IEt1cmRz IFN0YWNr IFNhbXVyYWk= IOKYhQ== IHt9 IFNhaWQ= IEZhbGxvdXQ= IGtpbmRuZXNz IEN1c3RvbXM= IEJvdWxldmFyZA== IGhlbGljb3B0ZXJz b3RpY3M= IFZlZ2V0 Y29tbWVudA== IGNyaXRpY2lzZWQ= IHBvbGlzaGVk IFJlbWl4 IEN1bHR1cmFs IHJlY29ucw== IGRvaQ== YXRlbQ== U2NyZWVu IGJhcnJlZA== Q29tbWVudHM= IEdlbmVyYWxseQ== IHNsYXA= NzIw VmFyaQ== cGluZQ== IGVtcHQ= IGhhdHM= IFBsYXlpbmc= bGFi YXZlcmFnZQ== Zm9ybXM= IENvdHRvbg== IGNhbnM= IERPTg== IFNvbWFsaWE= Q3J5cHQ= IEluY3JlYXNlcw== RXZlcg== bW9kZXJu IHN1cmdlb24= MzAwMA== IHJhbmRvbWl6ZWQ= PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ== QmVybg== aW1wbA== IENPUg== IHByb2NsYWlt dGhvdXNl IHRvZXM= IGFtcGxl IHByZXNlcnZpbmc= IGRpc2JlbA== Z3JhbmQ= QmVzaWRlcw== IHNpbGs= IFBhdHRlcm4= aG0= IGVudGVycHJpc2Vz IGFmZmlkYXZpdA== IEFkdmlzb3J5 IGFkdmVydGlzZWQ= IFJlbGlnaW91cw== c2VjdGlvbnM= cHN5Y2g= IEZpZWxkcw== YXdheXM= IGhhc2h0YWc= IE5pZ2h0bWFyZQ== IHZhbXBpcmU= IGZvcmVuc2lj cm9zc292ZXI= bmFy IG5hdnk= IHZhY2FudA== IER1ZWw= IGhhbGx3YXk= IGZhY2Vib29r aWRlbnRhbGx5 IE5SQQ== IG1hdHQ= IGh1cnJpY2FuZQ== IEtpcmJ5 IFB1enpsZQ== IHNraXJ0 b3VzdA== ZHVsbGFo IGFuYWxvZ3k= aW5pb24= IHRvbWF0b2Vz IE5W IFBlYWs= IE1leWVy IGFwcG9pbnRtZW50cw== IG1hc2M= IGFsbGV5 cmVoZW5k IGNoYXJpdGllcw== IHVuZG8= IGRlc3RpbmF0aW9ucw== IFRlc3Rpbmc= Ij48Lw== IGRlc3RpbmVk IGltcGxlbWVudHM= IEhhcm9sZA== UkVDVA== IG9wdGltaXphdGlvbg== IGtpbG9tZXRyZXM= IGNtZA== IGltcGFpcm1lbnQ= IHVuc3VjY2Vzc2Z1bA== IHN3aWZ0bHk= IEdsYXNnb3c= YXJ0ZW4= IFNoYXJlcw== IEFuc3dlcg== IEFsYnVt IG51dHJpdGlvbmFs 44OW IEZ1dA== IGJsb2M= IE5GQw== IHdob2xlc2FsZQ== IENX IG5lZ2xlY3RlZA== IGxhdW5jaGVy IGFubm91bmNlbWVudHM= T1VMRA== Y29tYg== IHJvdGF0aW5n IHJlc3Rz IFRpY2tldA== Y2hlZGVs TG91 IFZpYw== ICIn IHRlbXBsYXRlcw== IHJlcGxhY2Vz QXJj Ojo6Og== IEdpbGJlcnQ= IGlsbG5lc3Nlcw== IHNjaGVkdWxlcw== IGhldGVyb3NleHVhbA== TElORQ== IGhlcmVpbg== IGNvZXJj IGRlY3JlYXNpbmc= IGRlcG9ydGF0aW9u c3Vkbw== IEluZGlnZW5vdXM= IHdlaWdocw== QWxvbmc= Jyk7 IEJlbmdhbHM= NzA3 IGpvaW50cw== dmVydHM= IDE0OQ== bmFpcmU= IHNpbXBsZXN0 IGxvcmU= MTA4MA== ZmljdGlvbg== IERhdGFiYXNl IHJlc2VydmF0aW9u IHNvdQ== IHNhbmN0dWFyeQ== YXVkaW8= YXBsZQ== IHZlZ2V0YXJpYW4= IGFudGljaXBhdGlvbg== bWljcm8= IGVuZHVyaW5n IGRlcGFydGVk IHNpZGV3YWxr IHByb2hpYml0cw== IEZvbnQ= IGNvbXB1dGU= IFNlY3Q= IDE1OA== QmF0dGxl IGJvbWJlcg== IGRpc3RyYWN0aW9u IGVuZHVyZWQ= IHByYWN0aXRpb25lcnM= IGRpc3R1cmJlZA== IGRyYW5r b3JkZXJlZA== IHN1cnByaXNlcw== c2VhdA== U2VjdXJpdHk= IFdpc2RvbQ== b2dv IHN1YnBhcmFncmFwaA== IFBlbmluc3VsYQ== IE9yaWdpbnM= aXJlbg== IFBhdg== aWdnbGU= IGdyYXRpdHVkZQ== IEdyYXZpdHk= b3ZlcnR5 aW1hbg== Y3Ry IENhZXNhcg== Y291bGQ= Z2Vt IHNraWVz IGNoYW1w IGFncmVlaW5n RmFtaWx5 RGl2 MTc2 IG1lc3N5 dW1wdGlvbg== RmVkZXJhbA== ZXJubw== IENoYXQ= QmV5b25k IGRldm90ZQ== IFdhbHNo IGR1bXBlZA== IGFjY3VtdWxhdGlvbg== c3RhZA== aGliaXRpb24= IHNtb2tlcnM= IGluc3BlY3Rvcg== RnJlbmNo aXNzYW4= IFZpdGE= IHJlc2VhcmNoaW5n UkFN IENlbHRpY3M= IGNsb2Fr IFRlcnJh TWFyeQ== c29sZA== IERPTQ== bW9kcw== SW50ZWw= IG11bHRpdHVkZQ== IEltcHJvdmVk IHJlbGlhbmNl IGFydGlmYWN0 IGFsYXJtaW5n UHJvbQ== aG9u VElPTg== bWVkaXVt IHJlZmxleA== IEV4Y2Vs IHdlYWtlbmVk MTYz MjI0 IGNvc3R1bWVz IHVuaXF1ZWx5 IHNvcnJvdw== IG1hbnNpb24= d3A= IHNhbHY= IEdyb3Zl YnNw IFNuaXBlcg== IFNoaXBwaW5n IFBPVw== IHVuZGlz IGJyYW5kaW5n R2lybA== IEFobWFk IExha2Vz IENvcmV5 IGluaGVyaXRhbmNl ZW5lcnk= IHBhY2tpbmc= IFByZXN0 RGVzdA== Rlc= IHJlZ3VsYXRvcg== bG9ja2Vk IGNvbnRlc3RlZA== IE1lbGlzc2E= IER1Yw== IHVucG9wdWxhcg== IHN0YWNrZWQ= IDE5MTc= IHllYXJseQ== IHN0YXJl IGFzc2Vzc2luZw== w7g= IGJldmVyYWdlcw== IGNvbXBldGl0aW9ucw== IHN0cmVuZ3RoZW5pbmc= YWxvbmc= IEx1ZA== IG1lbHRlZA== c3RhbmJ1bA== IGJvdW50eQ== RU5D IExhbmRz IGRlY2xhcmVz IGN1c3RvbWl6ZQ== IGNvbXBvc2l0ZQ== 44Os Q00= b2dyYXBoaWNz IFRlbXA= IGNvbnRlbmRlcg== IGluc2lnbg== IExBTg== IGRpc2FzdGVycw== aW5zcGlyZWQ= IGp1ZGdtZW50cw== dXN0YWluYWJsZQ== dXJzaW9u IHZhcmlhbmNl IFVsdGltYXRlbHk= IC0tLS0tLS0t dWFkb3I= IFJY IG1lbHRpbmc= IEV4dGVuZGVk IFR3ZQ== TWFqb3I= IEJpbA== IHN5cnVw cXVpY2s= IEhvbGRlcg== IGlubm9jZW5jZQ== VUxF IE1pZ2h0 OTk5OQ== IGZhbA== IGNvbnRpbnVpdHk= IDE5NTM= IEJT c3RpbGw= TGF0 IEFidXNl IHVuc3VwcG9ydGVk eHh4eHh4eHg= IGluc3RpdHV0ZQ== IGZyYWdtZW50 IFBlcA== V2VzdGVybg== IENhdXNl IEZyYWc= IEFycw== 4KU= YXN0aWNz IGJpc2hvcA== IGNyb3NzZXM= IDE1NA== IFVwZ3JhZGU= IG1pdGlnYXRl IFJheW1vbmQ= TW9kcw== IHRvbWF0bw== IHN0dW1ibGVk IGRpZmZlcnM= SW5pdGlhbA== IFJhc3BiZXJyeQ== IGlnbm9yZXM= IHRhbnQ= w6A= IHJlbGF5 IGJpc2V4dWFs IGNvbmZlc3Npb24= IGRlbWVudA== aW5hcw== IEhlYXRoZXI= cGxhdGZvcm0= ZHJpdmluZw== Ym91cmc= IE11c2g= IGh5c3Rlcg== RGV0YWlscw== IGRyaWZ0 IFdhbGQ= IEx1Y2tpbHk= b3Jm IGV4cGlyZQ== IFB1bmNo enltZQ== Z29sZA== IHVucGFpZA== IFRyZW50 IHVuYXJtZWQ= IGlsbGljaXQ= IFRvdHRlbmhhbQ== IHNtYXNo SW50ZXJuYXRpb25hbA== aW5rZXI= IHN0aW5n IFNhZGRhbQ== IEFSVA== IHRydXRocw== YmlydGg= IHNvYmVy IE5pdA== IGli IHVzYWJsZQ== IHN0YWNrcw== IFN5bHY= IG5vcnRoZWFzdA== IGRvbWluYXRpb24= IE1vdXI= RU5TRQ== IE1lYXN1cmU= IHByb2dyYW1tZXI= IDwt MTgy IENvbmRpdGlvbg== IGJhY2t5YXJk aXJsaW5n IEplYg== IENyZWVk IEhhbmc= IENPTVA= RkVS IElzaA== IGRldGVjdGl2ZXM= LS0tLS0tLS0tLS0tLS0t IE1lc3Nlbmdlcg== IGxvb3Bo IGdhdGV3YXk= MTUx IE1hdGVyaWFscw== IERU IGRvb21lZA== b2Rv IHNsaWNlcw== IGVtYWlsZWQ= IFBlcmw= IHJlbm92 VVRI b2R5bmFt IFNvdXRod2VzdA== Z2V0aWM= IFRQUA== IG9wdGltaXNt IFRvdw== dWxhdG9ycw== cHJvdGVjdGVk eWxlcw== wqs= IGV4aWxl ZW52 UHJvcA== IFppbW1lcm1hbg== 2Y4= Q2E= b21hbHk= 44OG IHJhaWxyb2Fk TGVl MjMy IHJlcGxpY2F0ZQ== IGNvbWZvcnRhYmx5 YWN0bHk= IHJhdg== IHRlbGVzY29wZQ== IGhvbmVzdHk= IFBlcHBlcg== IEJyaW5n IHJpY2hlc3Q= IG91dGRvb3Jz IGhhbGxz IGNvbnRlbmQ= SVNF IHN1Ym1pdHRpbmc= IG5haXZl YXJhdGlvbnM= IDE0Mw== IHBvaXNlZA== cmVzcG9uc2libGU= IHNvY2tz IFNrdWxs UXVlc3Rpb24= IGRpc2NvdmVyaWVz Sm9pbmVk IEVuZW1pZXM= IFdpcmVsZXNz IFJldmVuZ2U= IHB1enpsZXM= IGNlYXNlZA== Mjkw Y3JpcHRpb25z IENvbnNvbGU= IGJvaWxpbmc= IGRpc2NyZXA= IGRlZHVjdGlvbg== IGFyc2VuYWw= WFhYWA== IEFtc3RlcmRhbQ== cm94aW1hdGVseQ== IFNoYW5l IHBvc2luZw== IEFDTFU= IENvbXBhbmllcw== IHRoZW9sb2d5 IFVn cXVhcnRlcg== IEhhbms= Q29pbg== IEx2 IGFsbGVnYXRpb24= IEF2b2lk IGluZGVmaW5pdGVseQ== IGNvbW1vZGl0aWVz IGJyaWc= IE1hbml0 IHRlbnRo bWV0aG9k IEtuaWNrcw== IOKAjg== IGludm9rZWQ= RGlhbA== QVJB IGNhdWN1cw== MjI3 IEphYg== IG91bmNlcw== YmF5 IGJ1ZGR5 ZmFu MjM0 IEhpbA== YWRo IFRZ IElORA== IDE5Mzk= IGl0ZXJhdGlvbg== IEdvbnphbGV6 IFZlcnQ= IElP ZW1i cmVyYQ== ZW5jaA== IFJlcXVpcmVtZW50cw== IFdpbnM= IGxpdmVzdG9jaw== aG91cnM= IuKApg== YnJhbA== TWFyZw== IERvbmU= IHdhc3Rpbmc= aW5nZWQ= Z3JvdXBz IHdpc2hpbmc= IFR1bWJscg== IHRhcHBpbmc= IG5hdGlvbmFsaXNt IEJ5cg== IHNxdWFyZXM= IEFjdGlvbnM= 44Ol SW5zaWRl ZGVidWc= IGFwcGVuZA== IHN0dWJib3Ju IENpbmQ= VGVsbA== IHRlYXJpbmc= IFJleQ== b3Jj IERheXRvbg== IE5I IE1hZG5lc3M= Q2hhcmw= IE1vcnJpc29u ZmlsdGVy IGFjY3VzZQ== IC4v IHRvcnJlbnQ= IGRlY2xpbmVz Z2FsbGVyeQ== TWluZQ== IG5lZ290aWF0aW9u IEJhc2hhcg== b3BpYQ== MTk5Mw== ZW1vcnQ= IE5vdmVs IEZhbmc= ZXJzaXZl IEluc3RhbnQ= IHJvbGxlcg== QXJvdW5k IEVsZWN0aW9ucw== R2FtZXM= IGluZXhwZW5zaXZl IHdvcnM= IHZ1bA== IEhvbGU= IHVuYmVsaWV2YWJsZQ== IG5hdXNl IGVudHI= Ym9hdA== IFNURQ== IGJ1c2g= IEhhc3Nhbg== IHdv IHBhdXNlZA== IE1pZw== bGl2ZWQ= IHNjb3V0 IGxpdGg= UHVibGlzaGVk ZHVpbm8= Y29vbA== IGNpcmN1bGF0aW5n aWRhcw== IFBhbQ== dmlvbGVudA== IENyYXdmb3Jk dWRkbGU= IExldHRlcnM= R3VhcmQ= bW9ycGg= IHdhbmRlcmluZw== IHNvcGhvbW9yZQ== IHF1ZWVy IEJsaW5k cnVl IE1hcnJpYWdl RG9t IHBhZGRpbmc= IGZvbGRlcnM= IG1lYW5pbmdsZXNz IGNhbmRpZGFjeQ== YWZvcnQ= IHdoaXN0bGVibA== IElkZW50aWZpZWQ= IGNpZ2Fy IGhpZA== IER1YmFp IHBvc3R1cmU= IGhpa2luZw== IFRlcm1pbmFs TGVnZW5kYXJ5 IFRQ IEFUSw== IFN0YXJidWNrcw== IFJpb3Q= MTk5MQ== IEJvdHRvbQ== ZWZmaWM= IEV1Z2VuZQ== IFd5b21pbmc= IFJvY2t5 IHNhbG1vbg== IG1ldHJv IGJpbGF0ZXJhbA== IGNlbGVicmF0ZXM= TGVuZ3Ro YmlsbGlvbg== QmF0 IHJlbGVn IHBzZXVkbw== RFQ= IFJob2Rl UGFyZW50 cGxldGlvbg== IGF0dHJpYnV0 IHR1bmluZw== IE5PVEU= IFJlYmVs aWN1cw== RnVuZA== IGNvY2t0YWls IDUwMQ== IHNwb29u IGJydXRhbGl0eQ== IHVuaXRl IG1pY3JvYmk= IFJlaWNo cG9zaXRpdmU= IGFtYXplZA== IE5U RGVzYw== RUNUSU9O IGZhbHNlbHk= IEhpZ2hsYW5kZXI= IENyaXN0 IFZpY3Rvcmlhbg== IGRpc3RyaWJ1dGlvbnM= dGhlaXI= IEVpbnN0ZWlu IHBvZA== IGVwaWRlbQ== IGhlYXA= IFJhbmNo IGFudGhlbQ== IHJlYXBw IEF1YnVybg== IGNvbmN1cnJlbnQ= IFRocm91Z2hvdXQ= IFBPU1Q= 4pg= IGhvbWVtYWRl a2ljaw== QmVn IGNoYXNzaXM= Y291bnRlcg== IG1lcmdlcg== IGxhcHM= MjE3 dW5pb24= IFRyaWdnZXI= IGRlYmF0ZWQ= IHNpbGVudGx5 IHJlc3RyYWludA== QmFs MDAwMDAwMA== IGZvcm1pZGFibGU= IEZpbGlw IHNhY3JpZmljZXM= Rm9vZA== IGR3YXJm IFNlcXU= aW5pYW4= TW9yZW92ZXI= IHRhbmdpYmxl b3BzaXM= IE1pbmVjcmFmdA== IFJlZ2lzdHJhdGlvbg== b2Fu IHJlcHJlc2VudGF0aW9ucw== IHRoaXJzdA== IGNvcnA= aXJlbWVudA== TWFkZQ== bG9l PiI= Y2F0cw== Ki4= IGdlc3R1cmVz Z2VuZXJhbA== TGVhZ3Vl IHBhY2tldHM= IEluc3BlY3Rvcg== IEJlcmc= IGZyYXVkdWxlbnQ= IGNyaXRpY2l6ZQ== RnVu IGJsYW1pbmc= bmRyYQ== IHNsYXNo IEVzdG9u IHByb3Bvc2luZw== IHdoYWxlcw== IHRoZXJhcGlzdA== IHN1YnNldA== IGxlaXN1cmU= RUxE IENWRQ== IEFjdGl2aXR5 IGN1bG1pbg== c2hvcA== IERBWQ== aXNjaGVy IEFkbWlyYWw= IEF0dGFja3M= IDE5NTg= IG1lbW9pcg== IGZvbGRlZA== IHNleGlzdA== IDE1Mw== IExJ IHJlYWRpbmdz IGVtYmFycmFzc21lbnQ= IEVtcGxveW1lbnQ= d2FydA== Y2hpbg== IGNvbnRpbnVhdGlvbg== bGlh UmVjZW50bHk= IGR1ZWw= IGV2YWN1YXRpb24= IEthc2htaXI= IGRpc3Bvc2l0aW9u IFJpZw== IGJvbHRz IGluc3VyZXJz NDY3 TWV4 IHJldGFsaWF0aW9u IG1pc2VyeQ== IHVucmVhc29uYWJsZQ== cmFpbmluZw== SW1t IFBV ZW1lcg== IGdlbml0YWw= 44Kz IENhbmR5 IG9uaW9ucw== IFBhdHQ= bGluZXI= IGNvbmNlZGVk IGZh IGZvcmM= IEhlcm5hbmRleg== IEdlb2Zm ZGViaWFu IFRlYW1z IGNyaWVz IGhvbWVvd25lcnM= MjM3 QUJD IHN0aXRjaA== IHN0YXRpc3RpYw== IGhlYWRlcnM= IEJpb2xvZ3k= IG1vdG9ycw== IEdFTg== IExpcA== IGhhdGVz IGhlZWw= U2VsZg== aXBs RURJVA== b3J0aW5n IGFubm90 IFNwZWVjaA== b2xkZW1vcnQ= IEphdmFzY3JpcHQ= IExlQnJvbg== IGZvb3RwcmludA== IGZu IHNlaXp1cmVz bmFz aGlkZQ== IDE5NTQ= IEJlZQ== IERlY2xhcmF0aW9u IEthdGll IHJlc2VydmF0aW9ucw== TlI= ZmVtYWxl IHNhdHVyYXRlZA== IGJpYmxpY2Fs IHRyb2xscw== RGV2aWNl cGhvdG9z IGRydW1z 44OJ44Op44K044Oz TmlnaHQ= ZmlnaHRlcg== IEhhaw== cmliZXI= IGN1c2g= IGRpc2NpcGxpbmFyeQ== YmF1bQ== IEdI IFNjaG1pZHQ= aWxpYnJpdW0= IHNpeHR5 IEt1c2huZXI= cm90cw== IHB1bmQ= IFJhYw== IHNwcmluZ3M= IGNvbnZl QnVzaW5lc3M= RmFsbA== IHF1YWxpZmljYXRpb25z IHZlcnNlcw== IG5hcmNpc3M= IEtvaA== IFdvdw== IENoYXJsb3R0ZXN2aWxsZQ== ZWRv IGludGVycm9nYXRpb24= IFdvb2w= MzY1 QnJpYW4= IOKckw== IGFsbGVnZXM= b25kcw== aWRhdGlvbg== IEphY2tpZQ== eXU= IGxha2Vz IHdvcnRod2hpbGU= IGNyeXN0YWxz IEp1ZGE= IGNvbXByZWhlbmQ= IGZsdXNo IGFic29ycHRpb24= IE9D IGZyaWdodGVuZWQ= IENob2NvbGF0ZQ== TWFydGlu IGJ1eXM= IGJ1Y2tz IGFwcGVsbA== IENoYW1waW9uc2hpcHM= IGxpc3RlbmVy IERlZmVuc2l2ZQ== IGN6 dWRz IE1hdGU= IHJlcGxheQ== IGRlY29yYXRlZA== IHN1bms= IFZJUA== IEFuaw== IDE5NQ== YWFhYQ== Tm9ib2R5 IE1pbGs= IEd1cg== IE1r IFNhcmE= IHNlYXRpbmc= IFdpZA== VHJhY2s= IGVtcGxveXM= IGdpZ2FudGlj QVBQ 44Kn aW52ZW50b3J5 IHRvd2Vs YXRjaGU= bGFzdGluZw== IFRM IGxhdGVuY3k= IGtuZQ== QmVy bWVhbmluZw== IHVwaGVsZA== IHBsYXlncm91bmQ= IG1hbnQ= U2lkZQ== IHN0ZXJlbw== IG5vcnRod2VzdA== IGV4Y2VwdGlvbmFsbHk= IHJheXM= IHJlY3VycmluZw== RHJpdmU= IHVwcmlnaHQ= IGFiZHVjdA== IE1hcmF0aG9u IGdvb2RieWU= IGFscGhhYmV0 aHA= IGNvdXJ0cm9vbQ== cmluZ3Rvbg== b3RoaW5n VGFn IGRpcGxvbWF0cw== IGJhcmJhcg== IEFxdWE= MTgz MzMzMw== IG1hdHVyaXR5 IGluc3RhYmlsaXR5 IEFwYWNoZQ== ID09PQ== IGZhc3Rpbmc= IEdyaWQ= TW9kTG9hZGVy IDE1Mg== QWJz IE9wZXJhdGluZw== ZXR0aQ== IGFjcXVhaW50 RG9ubmVsbA== IEtlbQ== IEZvcmdl IGFybW9yZWQ= TWls IHBoaWxvc29waGVycw== aW52ZXN0 UGxheWVycw== 4og= IG15cmlhZA== IGNvbXJhZGVz Um90 IHJlbWVtYmVyaW5n IGNvcnJlc3BvbmRz IHByb2dyYW1tZXJz IEx5bm4= IG9saWc= IGNvaGVyZW50 eW5jaHJvbg== IENoZW1pY2Fs IGp1Z2c= cGFpcg== cG9zdHM= RXll IElubmVy IHNlbWVzdGVy b3R0ZXN0 IEVtaXJhdGVz cmljYW5lcw== b3JvdXNseQ== bWl0cw== IFdpcw== IGRvZGdl bG9jYXRpb24= IGZhZGVk QW1hem9u IFByb2NlZWQ= IElORk8= am91cm5hbA== IFRydWNr VGVu IDIxNw== IHN0YXR1dGVz bW9iaWxl IFR5cGVz UmVjb21t YnVzdGVy cGV4 IGxlZ2VuZHM= IGhlYWRhY2hl ZmFjZWQ= IFdpRmk= aWZ0eQ== IEhFUg== IGNpcmN1aXRz RVJST1I= MjI2 b2xpbg== IGN5bGluZGVy b3NwYWNl aWtlcnM= UHJlbQ== UXVhbnQ= IGNvbmZsaWN0aW5n IHNsaWdodGVzdA== IGZvcmdlZA== aW9uYWdl U3RlcGhlbg== IEt1Yg== IE9wcG9ydHVu IEhlYWw= IGJsbw== IHJ1bGVycw== IGh1aA== IHN1Ym1hcmluZQ== Znk= YXNzZXI= IGFsbG93YW5jZQ== IEthc2ljaA== IFRhcw== IEF1c3RyYWxpYW5z Rm9yZ2VNb2RMb2FkZXI= IOKGkQ== IE1hdHJpeA== YW1pbnM= IDEyMDA= IEFjcXU= MjM2 RG9jdW1lbnQ= IEJyZWFraW5n MTkz IFN1YnN0 IFJvbGxlcg== IFByb3BlcnRpZXM= IE5J dGllcg== IGNydXNoaW5n IGFkdm9jYXRpbmc= RnVydGhlcm1vcmU= a2VlcGVycw== IHNleGlzbQ== eGQ= IGNhbGxlcg== IFNlbnNl Y2hpZXZl IFRG IGZ1ZWxlZA== IHJlbWluaXNjZW50 IG9ic2Vzcw== dXJzdA== IHVwaG9sZA== IEZhbnM= aGV0aWNz IOKX IEJhdGg= IGJldmVyYWdl IG9zY2lsbA== MjU0 IHBvbGVz IGdyYWR1YWw= IGV4dGluZw== IFN1ZmY= IFN1ZGRlbmx5 IGxpa2luZw== IDE5NDk= dW5jaWF0aW9u YW1pbmF0aW9u IE9tYXI= IExW IENvbnNlcXVlbnRseQ== IHN5bnRoZXM= IEdJRg== IHBhaW5z IGludGVyYWN0aW5n dW91c2x5 aW5jcmU= IHJ1bW9y IFNjaWVudG9sb2d5 MTk3 IFppZw== IHNwZWxsaW5n IEFTUw== IGV4dGluZ3U= bXNvbg== IGdo IHJlbWFya2Vk IFN0cmF0ZWdpYw== IE1PTg== 5aU= Z2Fl IFdIQVQ= RXJpYw== IENhbXB1cw== IG1ldGhhbmU= IGltYWdpbg== SlVTVA== IEFsbQ== WFQ= aXE= IFJTUw== IHdyb25nZG9pbmc= YXR0YQ== IGJpZ290 IGRlbW9uc3RyYXRvcnM= IENhbHZpbg== IFZpbGxh IG1lbWJyYW5l IEF3ZXNvbWU= IGJlbmVmaWM= MjY4 IG1hZ25pZmljZW50 IExvdHM= R3JlZw== IEJvcmlz IGRldGFpbmVlcw== IEhlcm1hbg== IHdoaXNwZXJlZA== IGF3ZQ== UHJvZmVzc29y ZnVuZGluZw== IHBoeXNpb2xvZ2ljYWw= IERlc3RydWN0aW9u IGxpbWI= IG1hbmlwdWxhdGVk IGJ1YmJsZXM= IHBzZXVk IGh5ZHJh IEJyaXN0b2w= IHN0ZWxsYXI= IEV4cGFuc2lvbg== IEtlbGw= IEludGVyZXN0aW5nbHk= IG1hbnM= IGRyYWdnaW5n IGVjb2xvZ2ljYWw= IEZpdA== IGdlbnQ= IGJlbmVmaXRlZA== IEhhaXRp IHBvbHln 44OO IDIwMzA= IHByb3c= IHJlY29uc3RydWN0aW9u IHdhc3Q= IHBzeWNoaWM= IEdyZWVrcw== SGFuZGxlcg== MTYy IFB1bHNl IHNvbGljaXQ= IHN5cw== IGluZmx1eA== IEdlbnRsZQ== cGVyY2VudA== IHByb2xpZmVyYXRpb24= IHRheGFibGU= IGRpc3JlZ2FyZA== IGVzY2FwaW5n IGdpbmdlcg== IHdpdGhzdGFuZA== IGRldmFzdGF0ZWQ= IERldw== c2VyaWVz IGluamVjdGVk ZWxhaWRl IHR1cm5vdmVy aGVhdA== mYI= SGFwcHk= IFNpbGVudA== 44Kt aXZpc20= IGlycmF0aW9uYWw= QU1B IHJlZWY= cnVi IDE2Mg== IGJhbmtlcnM= IEV0aGljcw== dnY= IGNyaXRpY2lzbXM= S24= MTg2 TW92aWU= IFRvcmllcw== IG5vb2Q= IGRpc3RvcnRpb24= RmFsc2U= b2RvcmU= IHRhc3R5 UmVzZWFyY2g= IFVJRA== LSk= IGRpdm9yY2Vk IE1V IEhheWVz IElzbg== aWFuaQ== IEhR ICIj aWduYW50 IHRyYXVtYXRpYw== IExpbmc= SHVu IHNhYm90 b25saW5l cmFuZG9t IHJlbmFtZWQ= cmFyZWQ= S0E= ZGVhZA== w6l0 IEFzc2lzdGFuY2U= IHNlYWY= KysrKysrKys= IHNlbGRvbQ== IFdlYmI= IGJvb2xlYW4= dWxldA== IHJlZnJhaW4= IERJWQ== cnVsZQ== IHNodXR0aW5n IHV0aWxpemluZw== bG9hZGluZw== IFBhcmFt Y29hbA== b290ZXI= IGF0dHJhY3Rpbmc= IERvbA== IGhlcnM= YWduZXRpYw== IFJlYWNo aW1v IGRpc2NhcmRlZA== IFBpcA== MDE1 w7xy IG11Zw== SW1hZ2luZQ== Q09M IGN1cnNlZA== IFNob3dz IEN1cnRpcw== IFNhY2hz c3BlYWtpbmc= IFZpc3Rh IEZyYW1ld29yaw== b25nbw== IHN1YnJlZGRpdA== IGNydXM= IE92YWw= Um93 Z3Jvd2luZw== IGluc3RhbGxtZW50 IGdsYWM= IEFkdmFuY2U= RUNL IExHQlRR TEVZ IGFjZXQ= IHN1Y2Nlc3NpdmU= IE5pY29sZQ== IDE5NTc= UXVvdGU= IGNpcmN1bXN0YW5jZQ== YWNrZXRz IDE0Mg== b3J0aXVt IGd1ZXNzZWQ= IEZyYW1l IHBlcnBldHJhdG9ycw== IEF2aWF0aW9u IEJlbmNo IGhhbmRj QXA= IDE5NTY= MjU5 cmFuZA== TmV0TWVzc2FnZQ== ZGlu dXJ0bGVz aGln IFZJSUk= ZmZpdGk= IFN3b3Jkcw== YmlhbA== IGtpZG5hcHBpbmc= ZGV2aWNl IGJhcm4= IEVsaQ== YXVjYXM= U2VuZA== Q29uc3RydWN0ZWQ= IMK9 IG5lZWRsZXM= IGFkdmVydGlzZW1lbnRz IHZvdQ== IGV4aGliaXRlZA== IEZvcnRyZXNz QXNr QmVycnk= VFlQRQ== IGNhbmNlcnM= dW1waW5n IFRlcnJpdG9yeQ== IHBydWQ= IG5hcw== IGF0aGVpc3Q= IGJhbGFuY2Vz 44Gf IFNoYXdu JiY= IGxhbmRzYw== IFJHQg== IHBldHR5 IGV4Y2VsbGVuY2U= IHRyYW5zbGF0aW9ucw== IHBhcmNlbA== IENoZXY= RWFzdA== IE91dHB1dA== aW1p IGFtYmllbnQ= IFRocmVhdA== IHZpbGxhaW5z IDU1MA== SUNB IHRhbGxlcg== IGxlYWtpbmc= Y3Vw IHBvbGlzaA== IGluZmVjdGlvdXM= IEtD IEBA YmFja2dyb3VuZA== IGJ1cmVhdWNyYWN5 IFNhaQ== dW5sZXNz aXRpb3Vz IFNreXBl QXRs SURFTlQ= MDA4 IGh5cG9jcg== IHBpdGNoZXJz IGd1ZXNzaW5n IEZJTkFM QmV0d2Vlbg== IHZpbGxhZ2Vycw== IDI1Mg== ZmFzaGlvbg== IFR1bmlz QmVo IEV4Yw== IE1JRA== Mjg4 IEhhc2tlbGw= MTk2 IE5PUg== IHNwZWNz IGludmFyaQ== IGdsdXQ= IENhcnM= IGltcHVsc2U= IGhvbm9ycw== Z2Vs IGp1cmlzZGljdGlvbnM= IEJ1bmRsZQ== dWxhcw== Q2FsaWZvcm5pYQ== IEluY3JlYXNl IHBlYXI= IHNpbmdsZXM= IGN1ZXM= IHVuZGVyd2VudA== IFdT IGV4YWdnZXJhdGVk IGR1YmlvdXM= IGZsYXNoaW5n TE9H KV0u Sm91cm5hbA== dGc= VmFu IElzdGFuYnVs IEluc3A= IEZyYW5rZW4= RHJhdw== IHNhZG5lc3M= IGlyb25pYw== IEZyeQ== eGM= IDE2NA== aXNjaA== V2F5 IFByb3Rlc3RhbnQ= aG9ybg== IHVuYWZm IFZpdg== aWxsYXM= IFByb2R1Y3Rpb25z IEhvZ2Fu IHBlcmltZXRlcg== IFNpc3RlcnM= IHNwb250YW5lb3Vz IGRvd25zaWRl IGRlc2NlbmRhbnRz IG9ybg== d29ybQ== SmFwYW5lc2U= IDE5NTU= IDE1MQ== IERvaW5n ZWxzZW4= dW1ibGVz IHJhZGljYWxseQ== IERydW0= IEJhY2g= IGxpYWJpbGl0aWVz IE9C IEVsZW1lbnRhcnk= IG1lbWU= eW5lcw== IGZpbmdlcnByaW50 IEdyYWI= IHVuZGVydGFrZQ== TWVtYmVycw== IFJlYWRlcg== IFNpbXM= Z29k IGh5cG90aGV0aWNhbA== c2NpZW50 IEFK IGNoYXJpc20= IGFkbWlzc2lvbnM= IE1pc3NpbGU= dHJhZGU= IGV4ZXJjaXNpbmc= IEJhY2tncm91bmQ= V3JpdHRlbg== IHZvY2Fscw== d2hldGhlcg== IHZp IFdpbm5lcg== IGxpdHRlcg== IFNob290aW5n U1RFTQ== 44Kh IEFGTA== IHZhcmlhYmlsaXR5 IGVhdHM= IERQUw== YnJvdw== IGVsZXBoYW50cw== IHN0cmF0 IMU= IHNldHRsZXJz TWF0dGhldw== IGluYWR2ZXJ0 SEk= IElNRg== IEdvYWw= IG5lcnZlcw== Sm9obnNvbg== ZXll YWJsaXNobWVudA== VGh1cnNkYXk= QklMSVRZ SGFk YW1vdG8= aGV0YW1pbmU= ZXBz IG1pdG9jaG9uZA== IGNvbXByZXNzZWQ= IFRyZXZvcg== IEFuaW1hbHM= VG9vbA== TG9jaw== IHR3ZWFr IHBpbmNo IGNhbmNlbGxhdGlvbg== UG90 IGZvY2Fs IEFzdHJvbg== MTcz IEFTQw== IE9USEVS dW1uaQ== IGRlbWlzZQ== ZGw= 2YU= U2VtaXRpc20= IGNyYWNraW5n IGNvbGxhYm9yYXRpdmU= IGV4cGxvcmVz c3Fs IGhlcmJz IGNvbmZpZ3VyYXRpb25z bWlz IFJlc3VsdA== YWNleQ== IFNtb2tl IHNhbmN0 ZWxpYQ== IGRlZ2VuZXI= IGRlZXBlc3Q= IHNjcmVhbWVk IG5hcA== U29mdHdhcmU= IFNUQVI= RUY= IFhpbg== c3BvbnNvcmVk bWFuc2hpcA== MjMz IHByaW1hcmllcw== IGZpbHRlcmluZw== IGFzc2VtYmxl bWls IE15ZXJz Ym93cw== IHB1bmNoZWQ= TWlj IGlubm92YXRpb25z IGZ1bmM= YW5kbw== IGZyYWNraW5n IFZ1bA== 0L7Q b3Nob3A= IEltbXVu IHNldHRsaW5n IGFkb2xlc2NlbnRz IHJlYnVpbGRpbmc= IHRyYW5zZm9ybWluZw== IHBhcm9sZQ== IGhhcmJvcg== IGJvb2tpbmc= b3Rpb25hbA== b25nZXZpdHk= IFlv YnVn IGVtZXJnZXM= IE1ldGhvZHM= IENodQ== UHJlcw== IER1bmdlb25z IHRyYWlsaW5n IFJ1bQ== IEh1Z2g= 5aSp IEVyYQ== IEJhdHRsZXM= UmVzdWx0cw== IFRyYWRpbmc= IHZlcnNh Y3Nz YXhpZXM= aGVldA== IGdyZWVk MTk4OQ== IGdhcmRlbnM= IGNvbnRpbmdlbnQ= UGFyaw== IExlYWZz aG9vaw== cm9iZQ== IGRpcGxvbWFjeQ== IEZ1ZWw= IEludmFzaW9u IHVwZ3JhZGluZw== TWFsZQ== IGVsaWM= IHJlbGVudGxlc3M= IENvdmVuYW50 YXBlc2g= IFRyb3A= VHk= cHJvZHVjdGlvbg== YXJ0eQ== IHB1bmNoZXM= YWtv Y3ljbG9wZWRpYQ== IFJhYmJpdA== IEhETUk= IDE0MQ== IGZvaWw= SXRlbUltYWdl IEZH IGltcGxlbWVudGF0aW9ucw== IFBvbQ== aXh0dXJlcw== IGF3YWl0 IDMzMA== YW11cw== IHVtYnJlbGxh IGZvcmVzZWU= c2VwYXI= IGNpcmN1bWNpc2lvbg== IHBlcmlwaGVyYWw= U2F5 IEV4cGVydA== SW5j IHdpdGhkcmV3 IEFuZGVycw== ZnJpZWQ= IHJhZGlvYWN0aXZl IE9wZW5pbmc= IGJvYXJkaW5n IE5E IG92ZXJ0aHJvdw== QWN0aXY= V1A= IEFjdHM= 15k= IG1vdGlvbnM= dmlj IE1pZ2h0eQ== IERlZmVuZGVy YWVy IHRoYW5rZnVs IEtpbGxpbmc= IEJyaXM= bW9pbA== IHByZWRpY3Rpbmc= MjY2 Y2hvaWNl IGtpbGxlcnM= IGluY3Vi IENoZXN0 YXRoZXJpbmc= IHByb2NsYWltZWQ= Zmxvd2Vy b3Nzb20= dW1ibGVkb3Jl IEN5Y2xpbmc= IE9jY3VweQ== QUdFUw== UGVu IFl1Zw== IHBhY2thZ2Vk IGhlaWdodGVuZWQ= Y290 c3RhY2s= Q29uZA== IHN0YW1wcw== bWFnZQ== IHBlcnN1YWRlZA== IGVuc2w= IENhcmRpbmFs IHNvbGl0YXJ5 IHBvc3Nlc3Npbmc= IENvcms= IGV2aWQ= IFRheQ== IGJsdWVz IGV4dHJlbWlzbQ== IGx1bmFy IGNsb3du VGVjaG4= IGZlc3RpdmFscw== IFB2UA== IExhcg== IGNvbnNlcXVlbnRseQ== cHJlc2VudA== IHNvbWVkYXk= 546L IE1ldGVvcg== IHRvdXJpbmc= Y3VsdHVyZQ== IGJlYWNoZXM= U2hpcA== Y2F1c2U= IEZsb29k 44Ov IHB1cml0eQ== dGhvc2U= IGVtaXNzaW9u Ym9sdA== IGNob3Jk IFNjcmlwdHVyZQ== THU= ICR7 Y3JlYXRlZA== T3RoZXJz MjU4 IGVsZW1lbnRhbA== IGFubm95ZWQ= IEFF ZGFu IFNhZw== UmVzZWFyY2hlcnM= IGZhaXJ5 4oCT4oCT PT09PT09PT09PT09 U21hcnQ= R0dHRw== IHNrZWxldG9ucw== IHB1cGlscw== bGlua2Vk IHVyZ2VuY3k= ZW5hYmxlZA== IEZ1Y2s= IGNvdW5jaWxs cmFi VUFM VEk= IGxpZmVz IGNvbmZlc3NlZA== QnVn IGhhcm1vbg== IENPTkZJRw== IE5ldXRyYWw= RG91Ymxl IHN0YXBsZQ== IFNIQQ== QnJpdGlzaA== IFNOUA== QVRPUg== b2Nv IHN3aW5naW5n Z2V4 b2xlb24= cGxhaW4= IE1pc3Npbmc= IFRyb3BoeQ== dmFyaQ== cmFuY2g= IDMwMQ== NDQw MDAwMDAwMDAwMDAwMDAwMA== IHJlc3RvcmluZw== IGhhdWw= dWNpbmc= bmVyZw== IGZ1dHVyZXM= IHN0cmF0ZWdpc3Q= cXVlc3Rpb24= IGxhdGVyYWw= IEJhcmQ= IHNvcg== IFJob2Rlcw== IERvd250b3du Pz8/Pz8t IExpdA== IEJlbmVk IGNvaWw= c3RyZWV0 IFBvcnRhbA== RklMRQ== IEdydQ== Kiw= MjMx bmV1bQ== IHN1Y2tlZA== IHJhcHBlcg== IHRlbmRlbmNpZXM= IExhdXJlbg== Y2VsbGFuZW91cw== MjY3 IGJyb3dzZQ== IG92ZXJj aGVhZGVy b2lzZQ== IGJlZXQ= IEdsZQ== U3RheQ== IG11bQ== IHR5cGVk IGRpc2NvdW50cw== VGFsaw== IE9n ZXhpc3Rpbmc= IFNlbGw= dXBo Q0k= IEF1c3RyaWFu IFdhcm0= IGRpc21pc3NhbA== IGF2ZXJhZ2Vz Y2FtZXJh IGFsbGVnaWFuY2U= TEFO PSIj IGNvbW1lbnRhdG9ycw== IFNldHRpbmc= IE1pZHdlc3Q= IHBoYXJtYWM= IEVYUA== IHN0YWlubGVzcw== Q2hpY2Fnbw== IHRhbg== MjQ0 IGNvdW50cnlzaWRl IFZhYw== Mjk1 IHBpbm5lZA== IGNyaXNlcw== IHN0YW5kYXJkaXplZA== VGFzaw== IEphaWw= IERvY2tlcg== Y29sb3JlZA== Zm9ydGg= In0s IHBhdHJvbnM= IHNwaWNl IG1vdXJu IE1vb2Q= IGxhdW5kcnk= IGVxdWlw IE1vbGU= eWxs IFRIQw== bmF0aW9u IFNoZXJsb2Nr IGlzc3U= IEtyZQ== IEFtZXJpY2Fz IEFBQQ== IHN5c3RlbWF0aWNhbGx5 IGNvbnRyYQ== IFNhbGx5 IHJhdGlvbmFsZQ== IGNhcnJpYWdl IHBlYWtz IGNvbnRyYWRpY3Rpb24= ZW5zYXRpb24= IEZhaWx1cmU= IHByb3Bz IG5hbWVzcGFjZQ== IGNvdmU= ZmllbGRz 44KL IHdvb2w= IENhdGNo IHByZXN1bWVk IERpYW5h cmFnb24= aWdp IGhhbW0= IHN0dW50 IEdVSQ== IE9ic2VydmF0b3J5 IFNob3Jl IHNtZWxscw== YW5uYWg= IGNvY2twaXQ= IER1dGVydGU= ODUw IG9wcHJlc3NlZA== YnJlYWtlcg== IENvbnRyaWJ1dA== IFBlcnU= IE1vbnNhbnRv IEF0dGVtcHQ= IGNvbW1hbmRpbmc= IGZyaWRnZQ== IFJpbg== IENoZXNz dWFsaXR5 IG9s UmVwdWJsaWNhbg== IEdsb3J5 IFdJTg== Li4uLi4uLg== YWdlbnQ= cmVhZGluZw== IGluaA== Sm9uZXM= IGNsaWNrcw== YWxhbg== IFtdOw== IE1hamVzdHk= IENlZA== b3B1cw== YXRlbA== w6o= QVJD IEVjdWFkb3I= 44Og IEt1cm8= IHJpdHVhbHM= IGNhcHRpdmU= IG91bmNl IGRpc2FncmVlbWVudA== IHNsb2c= ZnVlbA== UGV0 TWFpbA== IGV4ZXJjaXNlZA== IHNvbGlj IHJhaW5mYWxs IGRldm90aW9u IEFzc2Vzc21lbnQ= IHJvYm90aWM= b3B0aW9ucw== IFJQ IEZhbWlsaWVz IEZsYW1lcw== IGFzc2lnbm1lbnRz MDA3 YWtlZG93bg== IHZvY2FidWxhcnk= UmVpbGx5 IGNhdmFs Z2Fycw== IHN1cHByZXNzZWQ= IFNFVA== IEpvaG5z IHdhcnA= YnJva2Vu IHN0YXR1ZXM= IGFkdm9jYXRlZA== IDI3NQ== IHBlcmls b21vcnBo IEZlbWlu cGVyZmVjdA== IGhhdGNo TGli NTEy IGxpZmVsb25n MzEz IGNoZWVrcw== IG51bWJlcmVk IE11Zw== Qm9keQ== cmF2ZWw= V2VpZ2h0 IEphaw== IEhlYXRo IGtpc3Npbmc= IEpVU1Q= IHdhdmluZw== dXBsb2Fk IGluc2lkZXI= IFByb2dyZXNzaXZl IEZpbHRlcg== dHRh IEJlYW0= IHZpb2xlbnRseQ== aXBhdGlvbg== IHNrZXB0aWNpc20= IDE5MTg= IEFubmll IFNJ IGdlbmV0aWNz IG9uYm9hcmQ= YXRs IEZyaWVkbWFu IEJyaQ== Y2VwdGl2ZQ== IHBpcmF0ZQ== IFJlcG9ydGVy Mjc4 IG15dGhvbG9neQ== IGVjbGlwc2U= IHNraW5z IGdseXBo aW5naGFt RmlsZXM= Q291cg== d29tZW4= IHJlZ2ltZXM= IHBob3RvZ3JhcGhlZA== S2F0 IE1BWA== T2ZmaWNpYWxz IHVuZXhwZWN0ZWRseQ== IGltcHJlc3Npb25z RnJvbnQ= Ozs7Ozs7Ozs= IHN1cHJlbWFjeQ== IHNhbmc= IGFnZ3JhdmF0ZWQ= IGFicnVwdGx5 IFNlY3Rvcg== IGV4Y3VzZXM= IGNvc3Rpbmc= aWRlcHJlc3M= U3RhY2s= IFJOQQ== b2JpbA== IGdob3N0cw== bGRvbg== YXRpYmlsaXR5 VG9waWNz IHJlaW1idXJzZQ== IEhN IERlZw== IHRoaWVm eWV0 b2dlbmVzaXM= bGVhbmluZw== IEtvbA== IEJhc2tldGJhbGw= IGZp IFNlZWluZw== IHJlY3ljbGluZw== IFst Q29uZ3Jlc3M= IGxlY3R1cmVz UHN5 IG5lcA== IG1haWQ= IG9yaWVudGVk QVg= IHJlc3BlY3RmdWw= cmVuZQ== Zmx1c2g= IFVubG9hZGVk cmVxdWVzdA== Z3JpZA== IEFsdGVybmF0aXZlbHk= IEh1Z28= IGRlY3JlZQ== IEJ1ZGRoaXNt YW5kdW0= QW5kcm9pZA== IENvbmdv IEpveWNl IGFja25vd2xlZGdpbmc= aGVzaXZl IFRvbW9ycm93 IEhpcm8= dGhyZW4= IE1hY2Vk IGhvYXg= IEluY3JlYXNlZA== IFByYWRlc2g= V2lsZA== X19fX19f MTYx IGF1bnQ= IGRpc3RyaWJ1dGluZw== IFR1Y2tlcg== IFNTTA== IFdvbHZlcw== QnVpbGRpbmc= b3VsdA== IEx1bw== IFlhcw== IFNwaXI= IFNoYXBl IENhbWJvZA== IElQdg== IG1s IGV4dHJhZA== Mzkw IFBlbm55 ZHJlYW0= IHN0YXRpb25lZA== b3B0aW9uYWw= ZXdvcnRoeQ== Ljwv IHVuZGVydGFraW5n IGNoaWNrZW5z IHN0aW11bGk= IEVsc2U= aWdhdG9ycw== IEJlZ2lubmluZw== Y3Rvcnk= IHByZXBhcmVz IGRlbHRh IHZpY2luaXR5 dG9vbA== IHdvcmtzaG9wcw== TUh6 IGFjY3VzYXRpb24= IGhpc3Rvcmllcw== cm9wb2xpcw== IENodXJjaGlsbA== IG5lb24= IGJhZmY= ZGllcw== bWF5YmU= IOijj+immumGkg== IHN5bXB0b20= RUNI IE1hbnVlbA== IGJhbmFuYQ== IEhC ICoqKio= IEtvcmVhbnM= Y29sbA== RkI= IHByYXlpbmc= IENhbm5vdA== IE1pbGU= IGVtYnJhY2luZw== IFNpbGs= Mzkz b3RlcnM= RkQ= IGRheWxpZ2h0 YWxpYXM= IEJyaWdhZGU= IEhhbm5haA== IGNsZXJneQ== IHNvdXRoZWFzdA== IGFsY29ob2xpYw== IHByb3Bvc2Vz bGl2aW9u IGNhbGN1bGF0aW5n IHN0aW11bGF0ZQ== IHNwbGl0dGluZw== ZWlnaHQ= IEluZHk= cGxheXM= IFBpaw== IGRvbWVzdA== IGZvcmdpdmVuZXNz IFJpbmdz cGF0aWVudA== a2luc29u TW9udA== aWdpYmxl OyI= IHBlcmlvZGljYWxseQ== YW1tYWQ= IEJyaXR0 cGFyZA== IGFyYml0cmF0aW9u IFNjaG5laWRlcg== IENvcnBvcmF0ZQ== IE1heWE= IHNuYWtlcw== YXVt IGJsYXN0ZWQ= IG15c3Rlcmllcw== IHJldml2ZQ== b2NhbXA= IERvZGdl IE9wZXJh Mjc5 IG9ycGhhbg== IHNwZWNpZmllcw== IE1ldHM= RHVyYXRpb24= SGVu IGZpcmV3b3Jrcw== IHByb3NlY3V0ZQ== IFRpbGxlcnNvbg== ZHA= dXNhZ2U= bGluZXNz IERlYmlhbg== IDIyNA== cmlzZXM= IEluZmVjdA== YXRyYQ== IFJS IExvcg== ZGlmZg== IENoYXJsZXN0b24= IGFjb3VzdGlj IGFtdXNl MzMw IGNlcg== IFRhYw== IFsr IGNhcmRpYWM= IFJlc3RhdXJhbnQ= ZXJneQ== IGZ1eno= IGJpdGVz IGhhemFyZG91cw== IGJyaWdodGVy cmFucw== IFN0ZXBoYW5pZQ== ZXh0cmE= UkVU IENocmlzdGluZQ== IFN1ZQ== c3RhdGVtZW50 IGJvbHN0ZXI= IGFudGl0 UmFkaW8= QklU 44Kw IHZpc2lvbnM= IENvbmNlcHQ= IGlubGluZQ== IFBoaWxvc29waHk= aXNhbnM= IElydmluZw== w6M= dGFraW5n IGluY29uc2lzdA== IEt1bWFy IGxpZw== IFNjaHVtZXI= IFJlZ3VsYXRpb25z IEh6 dGhybw== IFZvbGRlbW9ydA== IE1FRA== IEZyZWRlcmljaw== UGFk MjIx IGFsbGVnaW5n IENvbW11bmljYXRpb24= IDE2Nw== IGZvcmVjYXN0cw== IHNwaWRlcnM= T3JnYW4= IFBhcnRpY2lwYW50cw== IE9wcw== ZGVzaWdu Q2xvc2U= IGZhY3Rv IGJvbWJlcnM= cmVzaXN0YW50 YXRlZ29yaWVz U2Nob29s IGhvbWV3b3Jr IGNvcnJv VHVlc2RheQ== IEJyZW5kYW4= IE1Y IFRT IFN0cmk= IHN0YWtlaG9sZGVycw== IE1pbGxlbm5pdW0= IHRyYW5zZmVycmluZw== SnVk IHRhYw== IDE2MDA= IFNESw== cmI= IGludGVycHJldGF0aW9ucw== IFNH IHVwc3RhaXJz IEhhcnZlc3Q= IHZhZ2luYQ== IGluZ2VzdA== eGY= IE9yaW9u IEpvZXk= IHNhbmR3aWM= IGltbW9ydGFs IGZsaXBwZWQ= b3J0ZXg= dGhyZWF0ZW5pbmc= IHNuaXBlcg== IGNvbnZlcnRz IGluc3RhbGxhdGlvbnM= IEJ1bGdhcg== b3JzY2hl bWFpbHM= IGx1cmU= IG5hcnJvd2x5 IGdyZW5hZGU= IEdpbmc= IHVuZGVyd2Vhcg== LS0tLS0tLS0tLS0tLS0= IGNoYXNlZA== IFZBTA== IHBhcmVudGluZw== IEhhbWI= IEJsYXo= IGFuYXJjaGlzdA== IE1lZGlhbg== IFByb2dyYW1z zr0= IG9iag== IE5va2lh b3JtYW4= YW5xdQ== YXRpc20= b3Bh IGZ1bGZpbGxpbmc= IHB1cHB5 IGVudGl0 IFNlYmFzdGlhbg== IHNob290ZXJz IHJpY2hlcg== 6KE= IHRlbXB0ZWQ= IEFUVA== IENW IHRvcmU= UmVzb3VyY2U= IERldmlscw== NDA4 aW5hdGlvbmFs IGFzc3VyYW5jZQ== IERhcnJlbg== IHdoaWNoZXZlcg== cG9zdXJl IGZ1cnk= U3RvY2s= IHVuaXZlcnNhbGx5 cmVzcG9uc2U= IG9haw== IHdvcmtsb2Fk IENvcm5lcg== ZWVsZQ== Ii4uLg== IGRlcHJpdmVk a293c2tp IGNhc3Rz IGFmZmlsaWF0aW9u IEFjaA== IEFza2Vk YXRoZQ== IGxhY3Q= IFRodQ== cm0= IGFpcmxpbmVz IG5vdGlvbnM= Rm9ybWF0 IEZBQQ== 44OK ZHJpdmVy IHRyYW5zY2VuZA== U2V0dGluZ3M= IFByb3NlY3V0 IHNwaW5hbA== IGRlZmF1bHRz Rks= IHByZWZlcnM= cmVuZGVyZWQ= dGh1cw== ZmlsbQ== IHRpZ2Vy IFNwaWNlcg== cmVjb2du IFJ1Z2J5 TmV0d29yaw== IHBpdHk= IGNvbXBhcnRtZW50 Y2FzdGVycw== IE1vbnJvZQ== IDcyMA== IGNvcnJlY3Rpb25z IGRvcGFtaW5l IEFa Q3V0 IHJvb21t IHNwZWN1bGF0ZQ== SGFzaA== IHJlc3RyaWN0aXZl MTExMQ== cmVkaWJsZQ== b25lbA== IHJhbXBhbnQ= cmVwb3J0ZWQ= IFN1aXRl IE1pbmltdW0= YWx5cw== YXphcmQ= bG9vcA== IGxlbnQ= c2hh IHZhbmRhbA== bWVudQ== IEJvZWhuZXI= IG5hcnJhdGl2ZXM= IGF1dGhlbnRpY2l0eQ== MjY5 YW5pYw== ZHV0eQ== Mjg1 IHRoYW5rZWQ= IGJldHJheWVk bGlmdA== IHNvdXRod2VzdA== IERleHRlcg== IEJvZA== IGtleXdvcmRz QXZlcmFnZQ== RElT IGV0aG5pY2l0eQ== ISks IE5hdGlvbmFscw== 4bk= IFRhaA== aW94aWQ= IHdpZGdldA== IHBhc3Rh IGJpbGxpbmc= IHRyaWxvZ3k= IExpbmVz IHNuaWZm IG5lcGhldw== TGF0ZQ== IHByaW5jaXA= IExvb3A= IE1hcnhpc3Q= IGRpc3NvbHZlZA== IGNvbnRleHRz IEFtb3VudA== IFNwaWtl IHRvdGFscw== IG9yZ2FuaXplcg== IHVwcmlzaW5n c2hpcHM= WVk= IE5vcnRoZWFzdA== bW9uZXk= Z3JhZGF0aW9u IGdvYWxrZWVwZXI= IEhlYXI= IHN0ZWFr IEJ1enpGZWVk IHNvbGVtbg== IFNjYW5k IHBvcHBpbmc= IGFkaGVyZQ== IEFsbGVn Ynl0ZQ== IFdvbHZlcg== IHVuaW4= IHJlY29s aXR1ZA== IG1pbWlj aWJ1cw== IHByZWRpY3Rz IEtlZXBlcg== aWF0aW5n IGRlY2VwdGlvbg== IGxlYXJudA== IGRpYXJ5 IGNvbmRpdGlvbmFs IHJlbGlj IGludm9rZQ== aWVuY2Vk 5Yg= IFBvbnQ= IGNlbGxwaG9uZQ== IHNwZWVkaW5n IHRhY2tsaW5n IG51ZGU= b3BlbmVk IE1hbmFmb3J0 IDE5NTI= IG1ham9ycw== IFNpbGVuY2U= IGxvZ2lzdGljcw== IHdlaWdodGVk IFBzeWNoaWF0 IjpbIg== IHNpY2tuZXNz IGRpdmlkZW5kcw== em9u UmVsZWFzZQ== IEtleXM= IEljaA== IGVueg== IEZlcm5hbmQ= IM6x IG1lYW5pbmdz IHBlbm55 IHN0ZXJu IGxhcg== IFB1Ymxpc2hlZA== IGJhY2tkcm9w S2lt IFN5bnQ= IGRlYnV0ZWQ= d20= IElzbGU= IHJlZ3VsYXRpbmc= b3R0aQ== IFNjaG9sYXJz aWNlc3Rlcg== IENoZWY= IHBvcHM= IExhdW5jaGVy IFZhcmlvdXM= IGNvbW1lbnRpbmc= b3NsYXY= ZW56aWU= IHJpdmFscnk= 4oKs UmVhbGx5 IG9yYw== IGJlYW4= IEp1ZHk= Tm90aWNl IEJpa2U= P10= IHJlbnRlZA== c3Rlbg== IGZvcmVmcm9udA== IEJhbGR3aW4= IHlpZWxkZWQ= dGFpbHM= UHJpbWU= IFNvdXJjZXM= aWNhdG9y U2Vhbg== IG1hcmNoaW5n T3V0cHV0 IEp1bmdsZQ== IHJlc2lkZQ== enpsZQ== IEFuZHJld3M= IHRvcnF1ZQ== QmFzaWM= QWN0dWFsbHk= c3RyYXA= cGVudGVy IGV4YW1z IFlh IDE1OQ== IERlY2lzaW9u IHJhbnNvbQ== ZXRlZW50aA== ZW5zaW5n MjEz IHN1bnNldA== NDA0 IFJhcGlk IEhlaW4= IEFib3JpZ2luYWw= IG9yZ2FuaXNt IFNldmVy IGNsYQ== YWpp U2ltcGxl IEZsYXZvcg== IEV2YWw= cHJ1cw== IGNob3J1cw== REFZ IGRlbm91bmNlZA== IGJpb2dyYXBoeQ== IFR1cm5idWxs UmVjZW50 Tm9ybWFs bGVjdGlvbnM= V29yZA== IGZlcnJ5 IFdhZ25lcg== aG9t VW5pdA== IHN1cGVybWFya2V0 IFNpdGg= IG5vbWluZWVz IGRpY3RhdG9yc2hpcA== aWRkbGVy IGFubm91bmNlcw== IFRoZW0= IE5lcHR1bmU= IGRlaXR5 IFlp IG1vbmFyY2g= QVJS IGludmFkZWQ= IEhvaw== dW50YXJ5 Q2VydGFpbg== ZWdh IGtpZGRpbmc= IFJlZ3VsYXRpb24= IHRyYXk= IHBob3RvZ3JhcGhlcnM= IEFyY2FuZQ== IGRpc2NoYXJnZWQ= IGV2YW5nZWxpY2Fs IGludGVyY2hhbmdl IGZpbG1tYWtlcg== IEVuZGxlc3M= IDI5MA== IFNhbHZhZG9y QVNZ IFNpZ25hbA== IHdyYXRo 4pw= bG90 Jy8= IHByb2plY3RpbGU= IGVtcGxveWluZw== IEludGVyZmFjZQ== MTkx YXRlbGxpdGU= IFJhdGg= cGFja2FnZQ== IGluZGljYXRpb25z SmFzb24= IGFyZ3M= IEdIeg== IHRpbHQ= bmFudHM= d29u 44K1 cmVkZA== cmVzY2VudA== IENhbGVuZGFy IG1vZHVsYXI= IGFzc2lzdGluZw== IHJlZGVlbQ== IEJlYW4= IHdvcnNo IGRlY2VudHJhbGl6ZWQ= KS4uLg== Mzc3 IGFycmF5cw== IGFjY29tcGxpc2htZW50cw== zr8= ZG90 IG11dHVhbGx5 IG9ic3RydWN0 IG1pc3JlcHJlc2VudA== b3Jlc3Q= aW9uaWM= cnVjZQ== JTs= IGtub3dpbmdseQ== cG9ydGluZw== aW5lbnRseQ== QXJp IFNjaHVsdHo= RGE= IENlcmU= IG9ic29sZXRl hYs= Z2l2ZQ== IGJhaXQ= IGVubGFyZw== TmVpbGw= IDE5MzM= IHJlY29uc2lkZXI= IFNlcmdlYW50 IERpYW5l IENvZ24= IEljb24= UG9zaXRpb24= IGZvc3Q= IHN0aXJyaW5n c2V2ZW4= IFNwYWNlWA== dWdnZXRz IG1lZGQ= R2Fs IFNpc3Rlcg== Qm95 IHRyaWdnZXJpbmc= VGFraW5n IHNjcmVhbXM= IGNhdXNhbA== IGF3YWtlbg== QXJt Mjk3 IGRpc3BhdGNoZWQ= IEZBTFNF IG9yZ2FuaXphdGlvbmFs IFRvbmc= IGRpbGVtbWE= ZGVtb24= U3Bs IGhvb2tz dWRpbmc= IHZhbGlkYXRl IHBvdGlvbg== IGNsYXc= IGJ1cmds IHF1aXI= QUNB IEJyZW5uYW4= IGR1cmFiaWxpdHk= IGJvbWJpbmdz IFdpbmRvdw== IGN1bHByaXQ= MzI1 VGhlcmVmb3Jl dW1iZXJlZA== cGVyZm9ybWFuY2U= d2FydHM= IGVuZm9yY2luZw== IEJsb3c= IHJlcHJpbnQ= aWZheA== YWxwaGE= IHNpbmlzdGVy IGJ1cmdlcg== ZmlnaHRpbmc= U2NvcmU= IFN0b25lcw== aWVt NDA1 Y2hlbXk= IHZpbmVnYXI= bm9t IHByZXZhaWxpbmc= IExhdGVzdA== wrY= IGJh IFdyaXRlcg== IDE3Nw== IENvbndheQ== IGNvbGxlY3Rz IHF1YW50aXRhdGl2ZQ== IGhvcnJvcnM= b2dlbnM= IFNsb3Y= IGxheXM= aGF3 IFNsYXNo IG5pZ2h0Y2x1Yg== IERhdmllcw== IGJyaWRl IFNjYXJsZXQ= eW1t IEFwcGxpY2F0aW9ucw== dmVsZW5ndGg= IHJldml2YWw= IHNvZnRseQ== IHpvbw== aXRhaXJl Q3Vy IGVsZWN0cm9t IHBsYW50aW5n T1RP IEVsZW1lbnRz IHN3YWxsb3c= cG9ydGVy IGxhcHRvcHM= IHBlYW51dA== IGxvYmJ5aXN0cw== zrI= UGFuZWw= IEpvYW4= aW1pbA== dG5j IHJlc2lzdGVk IG91dHdl IHJldGFpbmluZw== YXRyaQ== IHBvb3Jlcg== IFN5cmlhbnM= IEhhbW1vbmQ= IHdlbGQ= dWRlcg== dG9waWM= IFRU cmljaWE= IHRoaWV2ZXM= TGlj IEd1c3Q= IFdheXM= YXJldGg= MjQz IGJyb2FkY2FzdGVy c2hpZWxk YXNzaXVt dWJsZQ== IGFpcnN0cmlrZXM= b25zbw== IHBlZGFs IGNvbGxlY3RvcnM= IFZhbmRlcg== IE1lc2E= IGRpY3RhdG9y IGRpcg== ZW50b24= Y2FydA== c2NvcmU= YWRkZXI= Q3J5 IHNzaA== Z2dlcg== IGRydW5rZW4= IEdT IFNlYXQ= IGNvcm5lcmJhY2s= IHNraXBwZWQ= IFJlc2VhcmNoZXJz IEF1ZGk= UmVmZXJlbmNl IGhhdW50ZWQ= w6s= IENsaW5pYw== Y3o= IHBz IFBhbGFkaW4= IFJlY2lwZQ== IHN0aWdtYQ== b3BweQ== IG1vbmtleXM= IEhhd2s= U2Fk Ii8+ IFdvcmtzaG9w IFJldGFpbA== IEF2YXRhcg== NjI1 TmE= IFZD IFNlY3VyZQ== TVk= MTk4OA== b3NzaXA= IHByb3N0YXRl IHVuZGVu IGdhbWVy IENvbnRlbnRz IFdhcmhhbW1lcg== IFNlbnRpbmVs MzEw IHNlZ3JlZ2F0aW9u IEZsZXg= IE1BWQ== IGRyaWxscw== IERydWdz SXNsYW1pYw== IHNwdXI= IGNhZmU= IGltYWdpbmFyeQ== IGd1aWRpbmc= IHN3aW5ncw== IFRoZW1l b2J5 IG51ZA== IGJlZ2dpbmc= IHN0cm9uZ2g= IHJlamVjdGluZw== IHBlZGVzdHJpYW5z IFByb3NwZWN0 UmFyZQ== c2xl IGNvbmNlc3Npb25z IENvbnN0aXR1dGlvbmFs IGJlYW1z IGZpYmVycw== cG9vbg== IGluc3RpbmN0cw== cHJvcGVydHk= IEJJRw== U2FuZGVycw== aW1hdGVz IGNvYXRpbmc= IGNvcnBzZXM= IFRSVUU= Y2hlY2tlZA== IDE2Ng== QXNo IEpT IEZpY3Rpb24= IGNvbW11bmFs IGVuZXJnZXRpYw== b29vb29vb28= IG5vd2FkYXlz SUxE aWJv IFNVVg== UmVu IGR3ZWxsaW5n U2lsdmVy IHRhbGx5 IE1vdmluZw== IGNvd2FyZA== IGdlbmVyYWxz IGhvcm5z IGNpcmN1bGF0ZWQ= IHJvYmJlZA== IFVubGltaXRlZA== IGhhcmFzc2Vk IGluaGliaXQ= IGNvbXBvc2Vy IFNwb3RpZnk= IHNwcmVhZHM= MzY0 IHN1aWNpZGFs IG5vaXNlcw== IFN0dXI= IHNhZ2E= IEthZw== aXNv IHRoZW9yZXRpY2FsbHk= TW9uZXk= IHNpbWlsYXJpdHk= IHNsaWNlZA== dXRpbHM= aW5nZXM= Ii0= IGFudGg= IGltcGVk TW9kdWxl VGhyb3VnaG91dA== IG1lbnVz Y29tbWl0dGVl YW5kaQ== b2Jq aW5hdg== ZmlyZWQ= IEFiZHVsbGFo IHVuZGVhZA== IGZvbnRz SG9sZA== RU5H IHN1c3RhaW5hYmlsaXR5 IGZsaWNr IHJhem9y IEZlc3Q= IENoYXJhY3RlcnM= IHdvcmRpbmc= IHBvcHVsaXN0 IGNyaXRpY2l6aW5n IG11c2U= dmluZQ== IGNhcmRib2FyZA== IGtpbmRseQ== IGZyaW5nZQ== IFRoZWZ0 aWN1bHR1cmFs IGdvdmVybm9ycw== IO+/ve+/ve+/ve+/vQ== IDE2Mw== IHRpbWVvdXQ= IEF1dGg= Q2hpbGRyZW4= QVU= IHJlZGVtcHRpb24= IEFsZ2Vy IDE5MTQ= IHdhdmVk IGFzdHJvbmF1dHM= b2dyYW1z IHN3YW1w IEZpbm5pc2g= IGNhbmRsZQ== IHRvbm5lcw== dXRt IHJheQ== IHNwdW4= IGZlYXJmdWw= YXJ0aWNsZXM= IGNhdXM= b3JpY2FsbHk= IFJlcXVpcmVz IEdvbA== IHBvcGU= IGluYXVndXJhbA== IGdsZQ== QURB IElTSUw= IE9mZmVuc2l2ZQ== IHdhdGNoZG9n IGJhbGNvbg== ZW50aXR5 IEhvbw== IGdhbGxvbg== QUND IGRvdWJsaW5n IGltcGxpY2F0aW9u IFNpZ2h0 IGRvY3Ry LS0tLS0tLQ== IFxc IG1hbHQ= Um9sbA== IOKJpQ== IHJlY2Fw YWRkaW5n dWNlcw== IEJlbmQ= ZmlndXJl IHR1cmtleQ== IHNvY2lldGFs IFRpY2tldHM= IGNvbW1lcmNpYWxseQ== IHNwaWN5 IDIxNg== IFJhbXA= IHN1cGVyaW9yaXR5 w68= IFRyYWNrZXI= Q2FybA== IENveQ== IFBhdHJpb3Q= IGNvbnN1bHRlZA== IGxpc3Rpbmdz IHNsZXc= cmVlbnNob3Q= IEdvbmU= IFsuLi5d MzA5 IGhvdHRlc3Q= 2LE= IHJvY2t5 IERpYXo= IG1hc3NhZ2U= IHBhcmFseQ== IHBvbnk= QXo= IGNhcnRyaWRnZQ== IE5a IHNuYWNr IExhbWFy cGxlbWVudA== IExlc2xpZQ== IG1hdGVy IHNuaXBw MjQ2 IGpvaW50bHk= IEJyaXNiYW5l IGlQb2Q= IHB1bXBpbmc= IGdvYXQ= IFNoYXJvbg== ZWFsaW5n IGNvcm9u IGFub21hbA== cmFoaW0= IENvbm5lY3Rpb24= IHNjdWxwdHVyZQ== IHNjaGVkdWxpbmc= IERhZGR5 YXRoaW5n IGV5ZWJyb3dz IGN1cnZlZA== IHNlbnRpbWVudHM= IGRyYWZ0aW5n RHJvcA== KFs= IG5vbWluYWw= IExlYWRlcnNoaXA= IEdyb3c= IDE3Ng== IGNvbnN0cnVjdGl2ZQ== aXZhdGlvbg== IGNvcnJ1cHRlZA== Z2VyYWxk IENyb3M= IENoZXN0ZXI= IExhcA== 44Gq T1RI REFUQQ== IGFsbW9uZA== cHJvYmFibHk= SW1w IGZlYXN0 IFdhcmNyYWZ0 Rmxvcg== IGNoZWNrcG9pbnQ= IHRyYW5zY3JpcHRpb24= IDIwNA== IHR3ZWFrcw== IHJlbGlldmU= U2NpZW5jZQ== IHBlcmZvcm1lcg== Wm9uZQ== IHR1cm1vaWw= aWdhdGVk aGliaXQ= IENhZmU= dGhlbWVk IGZsdW9y YmVuY2g= IGRlY29t IFVudA== IEJhcnJldHQ= IEZhY3Rz IHRhc3Rpbmc= IFBUU0Q= IFNlYWw= IEp1ZGFpc20= IER5bmFtaWM= IENvcnM= VmU= IE1pbmc= IFRyYW5zZm9ybQ== dm9u IERlZmVuZGVycw== IFRhY3RpY2Fs IFZvbg== IFVuaXZlcnM= IGRpc3RvcnRlZA== IEJyZWF0aA== Pyci IGFnb24= IERlYWRseQ== IGxhbg== IEN5Y2xl b3JuZWQ= IHJlbGlhYmx5 IGdsb3I= IE1vbmtleQ== 44Oh IGFkcmVu IG1pY3Jvd2F2ZQ== IEFsYmFu aXJjcmFmdA== ZGlnaXQ= c21hcnQ= IERyZWFk wq/Cr8Kvwq/Cr8Kvwq/Cr8Kvwq/Cr8Kvwq/Cr8Kvwq8= e3s= IFJvY2hlc3Rlcg== IHNpbXBsaWZpZWQ= IGluZmxpY3RlZA== IHRha2VvdmVy IHlvdXJzZWx2ZXM= YWRpdGlvbmFs IG11c2N1bGFy S1M= IGluZ2Vu VGF4 IEZlYXR1cmU= Mjc3 IGNydWM= IGNyYXRl IHVuaWRlbnRpZmllZA== IGFjY2xhaW1lZA== IE1hbmdh IEZyYW5jZXM= IE5lcGFs IEdlcmFsZA== IEt1d2FpdA== IHNsYWlu IEhlYg== IEdva3U= 44Gu5g== Mjg2 TXJz IENvZHk= IFNhbmN0dWFyeQ== MDE2 IGRpc21hbnQ= IGRhdGFzZXQ= IEhvbmQ= YnVjaw== IFBhdHRlcnNvbg== IHBhbGV0dGU= IEdE aWNvbA== IExvZGdl IHBsYW5ldGFyeQ== YWtpbg== IFJlZ2lzdGVyZWQ= YWJ3ZQ== IFBldGVyc2J1cmc= IGhhaWxlZA== IFBpZWNl U2NoZQ== IERPSg== IGVudW1lcg== MTgx IE9ic2VydmVy IEJvbGQ= Zm91bmRlZA== Y29tbWVyY2U= IGV4cGxvaXRz IEZpbmRpbmc= VVJO IFNuZQ== IEFjaWQ= YXlldHRl IFZhbHVlcw== IGRyYXN0aWM= IGFyY2hpdGVjdHVyYWw= ICIu 15U= dW1wZWQ= IHdyYXBwaW5n IHdpZG93 IFNsYXllcg== bGFjZQ== b25jZQ== R2VybWFueQ== YXZvaWQ= IHRlbXBsZXM= UEFS w7Q= IEx1Y2lmZXI= IEZsaWNrcg== bG92 Zm9yY2Vz IHNjb3V0aW5n IGxvdWRlcg== dGVzeQ== IGJlZm9yZWhhbmQ= xJM= IE5lb24= IFdvbA== IFR5cGljYWxseQ== IFBvbGl0aWNv LSstKw== IGJ1aWxkZXI= IGRlcml2ZQ== S2lsbA== IHBva2Vy IGFtYmlndW91cw== IGxpZnRz IGN5dA== IHJpYnM= b29kbGU= IFNvdW5kcw== aGFpcg== IFN5bmRyb21l dGY= IHByb3BvcnRpb25hbA== dWlk IHBlcnRhaW5pbmc= IEtpbmRsZQ== IE5lZ3Jv IHJlaXRlcmF0ZWQ= IFRvbmlnaHQ= b3Rocw== IENvcm5lbGw= IG93aW5n IDIwOA== ZWxmYXJl b2NhdGluZw== IEJpcmRz U3Vic2NyaWJl IGVzc2F5cw== IGJ1cmRlbnM= IGlsbHVzdHJhdGlvbnM= YXJpb3Vz RVJBTA== IENhbGN1bA== IHhlbg== IExpbmtlZElu IEp1bmc= IHJlZGVzaWdu Q29ubm9y Mjk2 IHJldmVyc2Fs IEFkZWxhaWRl IExM IHNpbmtpbmc= IGd1bQ== VVNI Y2FwdA== IEdyaW1t IGZvb3RzdGVwcw== IENCRA== aXNwZXJz IHByb3Nl V2VkbmVzZGF5 IE1vdmllcw== ZWRpbg== IG92ZXJ0dXJuZWQ= IGNvbnRlbnRpb3Vz VVNC fn5+fn5+fn5+fn5+fn5+fg== IENvcHBlcg== IHBvaW50bGVzcw== TlY= dmFsdWVz b2xwaGlu ZGFpbg== IGRlcG9zaXRlZA== IEdX IHByZWNlZGVk IENsYQ== IEdvbGVt IE5pbQ== IM6y IEVuZ2luZWVycw== bWlkZGxl IGZsYXR0 b3BlcmF0aXZl IGNvdW5jaWxz aW1iYWJ3ZQ== ZWxpbg== IHN0cmVzc2Z1bA== IExE IHJlc2g= bGFrZQ== IHdoZWVsY2hhaXI= IEFsdGVybmF0aXZl IG9wdGltaXpl b3BlcmF0aW9u IHBlZWs= IG9uZXNlbGY= aWdpbA== IHRyYW5zaXRpb25z b3BhdGh5 Ymxhbms= IDE2OQ== MTcx X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw== IGxhdW5kZXJpbmc= RW5j IERFQw== IHdvcmtvdXRz IHNwaWtlcw== IGRpbm9zYXVycw== IGRpc2NyaW1pbmF0b3J5 UG9vbA== UmF0aGVy Mzg1 Uk5B dGVzdGVycw== ZXRv IElkZW50aXR5 IHZlaW4= IEJ1cnRvbg== IGFyY2FkZQ== NDIw VWx0aW1hdGVseQ== IFNhZGx5 w7A= cGlsbA== IGN1Ymlj IFNwZWN0cnVt dGhlc2U= c3RhdGVz IHVub2ZmaWNpYWw= aGF3a3M= IEVWRVJZ IHJhaW5ib3c= IGluY2FyY2VyYXRpb24= YW5kaW5n IHN5bGw= IEV2ZXJ0b24= IDE3OQ== IFNlcmJpYQ== IDE4OQ== bWV0ZXI= IE1pY2tleQ== IGFudGlxdQ== IGZhY3R1YWw= bmVjaw== IE5hcmU= bm9ybQ== bXVzdA== IGhpZ2h3YXlz IGdsYW0= IGRpdmlkaW5n IFNxdWFkcm9u IE1hcnRoYQ== IGJpcnRocw== Q292ZXI= Ly8vLy8vLy8vLy8vLy8vLw== IFdvbmc= UGhvdA== IEFMUw== cmlv IE5vbmV0aGVsZXNz IExlbW9u IDIwNg== IEVF IGRlcml2YXRpdmU= IFdXSUk= dm90ZQ== IHRoZXJlaW4= IHNlcGFyYXRpbmc= NDQ2 c3luYw== IFN0cmVldHM= IHJhdHQ= IG11bmljaXBhbGl0eQ== IFNob3J0bHk= IG1vbms= KSwi IHNjcnVi IG9wZXJhdGl2ZXM= TmVpdGhlcg== UGxhY2U= IExpbWl0 RmVtYWxl IEFjdG9y Q2hhcmFjdGVy IGNvbnN0aXR1dGVk MzU3 IHByb3Rlc3RlZA== IFN0cmF3 IEhlaWdodA== aWxkYQ== IFR5cGg= IGZsb29kcw== IGNvc21ldGlj V0FZ cGVydHVyZQ== dXBvbg== dG9ucw== ZXNzaW5n IFBvY2tldA== IHJvb2Z0 IENhdWNhcw== IGFudGlkZXByZXNz IGluY29tcGF0aWJsZQ== RUNE IG9wZXJh IENvbnRlc3Q= IGdlbmVyYXRvcnM= bGltZQ== RGVmZW5zZQ== MTk4Nw== Zm9ydW0= IHNhdmFnZQ== IEh1bmdhcmlhbg== bno= IG1ldGFsbGlj IGV4cGVsbGVk IHJlc2lkZW5jeQ== IGRyZXNzZXM= NjY2 IENsZW1lbnQ= ZmlyZXM= Q2F0ZWdvcnk= IGdlZWs= YWxpcw== IGNlbWV0ZXJ5 ZWR1Y2F0ZWQ= IGNyYXds IFVuYWJsZQ== IFR5c29u YWtpcw== IHBhcmRvbg== IFdyYQ== IHN0cmVuZ3RoZW5lZA== IEZvcnM= MzM1 IEhD IE1vbmQ= IHZpc3VhbHM= IEJlYXRsZXM= ZXR0bGVtZW50 IO8= Z3Jv IGJhc2g= IHBvb3Jlc3Q= IGV4Y2Vs IGFzcGlyYXRpb25z IE11bmljaXA= ZW5zaWJsZQ== IGNlcmVtb25pZXM= IGludGltaWRhdGlvbg== IENPTlRS YmVjaw== IEthcA== YXN1 IHRyYWRlbWFya3M= IFNldw== IENvbXBldGl0aW9u bmV0d29yaw== IEFycmk= IFRldA== Um9hbWluZw== V0M= RGF0 IHNvYg== IHBhaXJpbmc= IG92ZXJkb3Nl U0FZ YWJlcg== IHJldm9sdA== IEZhaA== YWN0aW5n ZXE= ZXN0YXRpb24= RmlnaHQ= IE1hcmtz Mjcz IDE3OA== UmF3 44GL MzQ5 YmxvY2tz IHZlcmdl ZXN0aW5l IFBvZGVzdGE= IGludmFzaXZl IHByb2ZvdW5kbHk= IEFv ZWFjaA== IGxlc3Q= aW50ZXJwcmV0 IHNocmlua2luZw== IGVycm9uZQ== IGNoZWVz bHlz IEl2eQ== IERpcmVjdG9yeQ== IGhpbnRlZA== VklDRQ== IGNvbnRhY3Rpbmc= IEdlbnQ= aGVp IGxhYmVsaW5n IG1lcmN1cnk= IExpdGU= IGV4cGlyZXM= IGRlc3RhYmls cml0aXM= Y3U= IGZlYXRoZXJz IHN0ZWVy IHByb2dyYW1tZWQ= IFZhZGVy R29pbmc= IEVsaW0= IHlv IE1pY2hl IDIwMw== IHNsZWV2ZXM= IGJ1bGx5 IEh1bWFucw== MzY4 IGNvbXByZXNz IEJhbm5lcg== QVJT IGF3aGlsZQ== IGNhbGli IHNwb25zb3JzaGlw IERpZmZpY3VsdHk= IFBhcGVycw== IGlkZW50aWZpZXI= fS4= IHlvZw== IFNoaWE= IGNsZWFudXA= IHZpYmU= aW50cm9kdQ== aW1taW5n QXVzdHJhbGlh IG91dGxpbmVz IFlvdXR1YmU= dHJhaW4= IE1ha2Vz IGRlcG9ydGVk IGNlbnRy IER1Zw== IEJvdWxkZXI= IEJ1ZmZ5 IGluanVuY3Rpb24= IEhhcmxleQ== IEdyb3Vwcw== IER1bWJsZWRvcmU= IENsYXJh ICIt IHNhY3JpZmljZWQ= ZXBo U2hhZG93 aWJsaW5n IGZyZWVsYW5jZQ== IGV2aWRlbnRseQ== cGhhbA== IHJldGFpbnM= TWly IGZpbml0ZQ== ZGFy IENvdXM= IHJlcGFpcmVk IHBlcmlvZGlj IGNoYW1waW9uc2hpcHM= IGFzdGVyb2lk YmxpbmQ= IGV4cHJlc3NseQ== IEFzdHJvcw== IHNjYWxlZA== IGdlb2dyYXBoaWNhbA== IFJhcGlkcw== RW5qb3k= IGVsYXN0aWM= IE1vaGFtZWQ= TWFya2V0 YmVnaW4= IGRpc2NvdmVycw== IHRlbGVjb21tdW5pY2F0aW9ucw== IHNjYW5uZXI= IGVubGFyZ2U= IHNoYXJrcw== IHBzeWNoZWRlbA== IFJvdWdl IHNuYXBzaG90 aXNpbmU= WFA= IHBlc3RpY2lkZXM= IExTRA== IERpc3RyaWJ1dGlvbg== cmVhbGx5 IGRlZ3JhZGF0aW9u IGRpc2d1aXNl IGJpb20= IEVYVA== IGVxdWF0aW9ucw== IGhhemFyZHM= IENvbXBhcmVk KSo= IHZpcnR1ZXM= IGVsZGVycw== IGVuaGFuY2luZw== IEFjcm9zcw== ZXJvcw== YW5nbGluZw== IGNvbWJ1c3Q= dWNjaQ== IGNvbmN1c3Npb24= IGNvbnRyYWNlcHRpb24= IEthbmc= IGV4cHJlc3Nlcw== IGF1eA== IFBpb25l IGV4aGliaXRz RGVidWc= T1RBTA== IEFscmVhZHk= IFdoZWVsZXI= IGV4cGFuZHM= Pzo= IHJlY29uY2lsaWF0aW9u IHBpcmF0ZXM= IHB1cnNl IGRpc2NvdXJhZ2U= IHNwZWN0YWNsZQ== UmFuaw== IHdyYXBz IFRob3VnaHQ= IGltcGVuZGluZw== T3Bw IEFuZ2xv IEVVUg== IHNjcmV3ZWQ= cmV0Y2hlZA== IGVuY291cmFnZW1lbnQ= bW9kZWxz IGNvbmZ1c2U= bW1t IFZpdGFtaW4= 4paR4paR Q3J1 IGtuaWdodHM= IGRpc2NhcmQ= IGJpc2hvcHM= IFdlYXI= IEdhcnJldHQ= a2Fu 44Of IG1hc2N1bGluZQ== Y2FwaXRhbA== IEF1cw== IGZhdGFsbHk= dGhhbmtz IEFV IEd1dA== MTIwMA== IDAwMDAwMDAw IHN1cnJvZw== IEJJT1M= cmFpdHM= IFdhdHRz IHJlc3VycmVjdGlvbg== IEVsZWN0b3JhbA== IFRpcHM= NDAwMA== IG51dHJpZW50 IGRlcGljdGluZw== IHNwcmluaw== IG11ZmY= IExJTQ== IFNhbXBsZQ== cHNj aWJp Z2VuZXJhdGVk IHNwZWNpbWVucw== IGRpc3NhdGlzZg== IHRhaWxvcmVk IGhvbGRpbmdz IE1vbnRobHk= IEVhdA== cG9vbnM= IG5lYw== IENhZ2U= IExvdHVz IExhbnRlcm4= IGZyb250aWVy IHBlbnNpb25z IGpva2Vk IEhhcmR5 PS09LT0tPS0= cmFkZQ== VUlE IHJhaWxz IGVtaXQ= IHNsYXRl IHNtdWc= IHNwaXQ= IENhbGxz IEphY29icw== ZmVhdA== IFVF IHJlc3RydWN0 IHJlZ2VuZXJhdGlvbg== IGVuZXJnaWVz IENvbm5vcg== T0hO IENoZWVzZQ== IGdlcg== IHJlc3VycmVjdA== bWFuYWdlbWVudA== Tlc= IHByZXNlbnRseQ== IEJydWlucw== TWVtYmVy IE1hbmc= aWRhbg== IGJvb3N0aW5n d3lu Ky4= cmVxdWlzaXRl IE5ZUEQ= IE1lZ2Fu IENvbmRpdGlvbnM= IHBpY3M= bmVzaXVt IFJhc2g= IDE3NA== IER1Y2tz IGVtYnJv enU= b25pYW4= cmVsaWdpb3Vz IGNyYXo= IEFDQQ== IFp1Y2tlcg== RU1B IFByb3M= V2VhcG9u IEtub3g= IEFyZHVpbm8= IHN0b3Zl IGhlYXZlbnM= IFB1cmNoYXNl IGhlcmQ= IGZ1bmRyYWlzZXI= RGlnaXRhbA== NTAwMA== IHByb3BvbmVudHM= L+KAiw== IGplbGx5 IFZpc2E= IG1vbmtz IGFkdmFuY2VtZW50 IFdlcg== IDE4Nw== ZXVz ZXJ0aWxpdHk= IGZldGFs IDE5MzY= TG8= IG91dGZpdHM= IHN0YWlyY2FzZQ== Ym9tYg== IGN1c3RvbWl6ZWQ= Y2xhaXI= VHJlZQ== IG1hcHBlZA== IENvbnNpZGVyaW5n IFRvcnJlcw== IG1ldGh5bA== IGFwcHJveGltYXRl IGRvb20= IEhhbnNlbg== IGNyb3Nzb3Zlcg== IHN0YW5kYWxvbmU= 5Lw= IGludml0ZXM= IGdyYXZleWFyZA== IGhw RG9uYWxkVHJ1bXA= IGVzY29ydA== R2Fy IHByZWRlY2Vzc29ycw== IGhheQ== IGVuenltZQ== IFN0cmFpZ2h0 dmlzb3Jz SW5n YW5lb3VzbHk= IEFwcGxpZWQ= IGZlYw== IER1cmFudA== IG91dHNwb2tlbg== b3Ji IHplYWw= IGRpc2dyYWNl Jyku IENoZW5n Mjg5 IFJlbmE= IFN1aWNpZGU= Mjk0 IG91dHJhZ2Vk IE5ld21hbg== IE52aWRpYQ== IEFiZXI= IEJlcnM= IHJlY3JlYXRpb24= V2luZG93 IERQ eGU= IHBlZG9waA== IGZhbGxvdXQ= YW1ib28= IHByZXNlbnRhdGlvbnM= IEFwcHM= IGh0bWw= MzQ1 IFhYWA== IHJ1YmJpbmc= IExlYXRoZXI= IGh1bWlkaXR5 c2V5cw== ZXN0YWJsaXNoZWQ= IFVuaXRz NjQ2 IHJlc3BlY3RhYmxl QXV0bw== IHRocml2aW5n IElubm92YXRpb24= YW5ncw== RXh0cmE= cmVndWxhdGlvbg== Mjk4 cGljaw== RXhhbXBsZXM= IENK QXR0YWNr IGRyYWNvbg== TFQ= IHN0aWNrZXI= cmVycw== IHN1bm55 SXNz cmVndWxhdGVk ZGlt IEFic3RyYWN0 IGh1c2JhbmRz T2ZmaWNl b21pbmF0aW9u aXRhcnM= QU5HRQ== YXNjYWw= IEtyaXM= IEluZmFudHJ5 IG1hbGY= IEF0aGU= IFJhbGx5 YmFsYW5jZWQ= Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u T1VQ IG1vbGVjdWxl bWV0aWNz IFNwbGl0 IEluc3RydWN0aW9ucw== IE5pZ2h0cw== Y2FyZHM= IHR1Zw== IGNvbmU= 5a0= IHR4 IERpc2N1c3Npb24= IGNhdGFzdHJvcGhl cHBl Z2lv IGNvbW11bmlzbQ== IGhhbHRlZA== IEd1YW50 Y2xlYW4= IFNjaGVk IEthbnll IHdhbmRlcg== IFNlcmlvdXNseQ== IDE4OA== ZW5uaWFs Zm9sbG93 cHJvZHVjdGl2ZQ== IEZsb3c= IFNhaWw= IGNyYXc= IHNpbXVsYXRpb25z b3J1 YW5nbGVz IE5vbGFu IG1lbnN0cnU= NDcw IDIwNw== YWph IGNhc3VhbGx5 Ym9hcmRpbmc= IDIyMg== b3Z5 IE51bWJlcnM= dW1hdA== T0U= Mjg3 IENsZW1zb24= IGNlcnRz IHNsaWQ= IFRyaWJl IHRvYXN0 IGZvcnR1bmVz IGZhbHM= IENvbW1pdHRlZXM= IGdw IGZpZXJ5 IE5ldHM= IEFuaW1l UGFja2FnZQ== IENvbXBhcmU= bGF1Z2h0ZXI= aW5mZWN0 IGF0cm9jaXRpZXM= IGp1c3RpY2Vz IGluc3VsdHM= IFZlcm5vbg== IHNoYWtlbg== IHBlcnNvbmE= ZXN0YW1w MzY3 YnJhaW4= IGV4cGVyaW1lbnRpbmc= S2Vu IEVsZWN0cm9uaWNz IDE2MQ== ZG9tYWlu IGdyYXBoaWNhbA== YmlzaG9w IHdob3BwaW5n IEV2YW5nZWw= IGFkdmVydGlzZXJz IFNwZWFy IGJpZHM= IGRlc3Ryb3lz dXR6 IHVuZGVyc2M= IEFERA== IGFudHM= IEN1bQ== aXBwbGVz IEZpbGw= IGdsYW5jZWQ= IGluZGljdGVk IEVmZg== IG1pc2Nvbg== IERlc2t0b3A= IGFiaWRl 44OA IElv IENvdWw= IGNhcHN1bGU= IENocnlz TU9O IHVuZGVz IElSQQ== IGNpdGF0aW9u IGRpY3RhdGU= IE5ldHdvcmtz IENvbmZsaWN0 IFN0dWZm eGE= aXNlYw== IENoZW1pc3RyeQ== IHF1YXJ0ZXJseQ== V2lsbGlhbXM= YW5hbg== T3B0 IEFsZXhhbmRyaWE= b3V0aGVhc3Rlcm4= IFNwcmluZ2ZpZWxk IEJsYWNrcw== IGdlb2dyYXBoeQ== MjQy IHV0bW9zdA== IEV4eG9u YWJvdXRz RVZB IEVuYWJsZQ== IEJhcnI= IGRpc2FncmVlZA== IEN5cHJ1cw== IGRlbWVudGlh IGxhYnM= IHViaXF1aXRvdXM= IExPVkU= IGNvbnNvbGlkYXRlZA== c3I= IGNyZWFteQ== IFRpbWJlcg== UmVnYXJkbGVzcw== IENlcnRpZmljYXRl ICIuLi4= b2dlbm91cw== Q2FwdGFpbg== IGluc3VsdGluZw== IFNvcm9z IEluc3Ry IEJ1bGdhcmlh YmV0dGVy IHN1Y2tpbmc= IERhdmlkc29u YXR6 IGNvbGxhdGVyYWw= Z2lm IHBsYWd1ZWQ= IENhbmNlbA== IEdhcmRuZXI= UkI= IHNpeHRlZW4= UmVtb3Zl dXJpc3RpYw== Y29vaw== Um9k IGNvbXByaXNpbmc= Zmxl KeKAlA== IFZpa2luZw== Z3Jvd3Ro YWdvbmFs IHNyZg== YWZldHk= bW90 TmVhcmx5 c3Rvd24= IEZhY3Rvcg== IGF1dG9tb2JpbGU= IHByb2NlZHVyYWw= bWFzaw== YW1waXJlcw== IGRpc2FwcGVhcnM= amFi MzE1 IDE5NTE= bmVlZGVk IGRhcmluZw== bGVhZGVy IHBvZGl1bQ== IHVuaGVhbHRoeQ== IG11bmQ= IHB5cmFtaWQ= b2NyZQ== IGtpc3NlZA== IGRyZWFtZWQ= IEZhbnRhc3RpYw== IEdseQ== 5Yo= IGdyZWF0bmVzcw== IHNwaWNlcw== IG1ldHJvcG9saXRhbg== IGNvbXB1bHM= aWV0cw== MTAxNg== IFNoYW0= IFB5cg== ZmxpZXM= IE1pZG5pZ2h0 IHN3YWxsb3dlZA== IGdlbnJlcw== IEx1Y2t5 IFJld2FyZHM= IGRpc3BhdGNo IElQQQ== IEFwcGx5 IGF2ZW4= YWxpdGllcw== MzEy dGhpbmdz ICgpLg== IG1hdGVz IFN6 IENPUA== b2xhdGU= T0ZG IHJlY2hhcmdl Y2Fwcw== IFlvcmtlcg== aWNvbmU= IGdhbGF4aWVz aWxlYWtz RGF2ZQ== IFB1eno= IENlbHRpYw== IEFGQw== Mjc2 IFNvbnM= IGFmZmlybWF0aXZl SG9y IHR1dG9yaWFscw== IENJVFk= IFJvc2E= IEV4dGVuc2lvbg== U2VyaWVz IGZhdHM= IHJhYg== bGlz IHVuaWM= IGV2ZQ== IFNwaW4= IGFkdWx0aG9vZA== dHlw IHNlY3Rhcmlhbg== IGNoZWNrb3V0 IEN5Y2w= U2luZ2xl IG1hcnR5cg== IGNoaWxsaW5n ODg4 b3VmbA== IF07 IGNvbmdlc3Rpb24= bWs= IFdoZXJlYXM= IDE5Mzg= dXJyZW5jaWVz ZXJpb24= IGJvYXN0 IFBhdGllbnRz IGNoYXA= IEJE cmVhbERvbmFsZFRydW1w IGV4YW1pbmVz aG92 IHN0YXJ0bGluZw== IEJhYnlsb24= d2lk b21ldw== YnJhbmNl IE9keXNzZXk= d2ln IHRvcmNo IFZveA== IE1veg== IFRyb2xs IEFucw== U2ltaWxhcmx5 IEZ1bA== MDA2 VW5sZXNz IEFsb25l c3RlYWQ= IFB1Ymxpc2hlcg== cmlnaHRz dHU= IERvZXNu IHByb2Zlc3Npb25hbGx5 IGNsbw== aWN6 IHN0ZWFscw== IOE= MTk4Ng== IHN0dXJkeQ== IEpvaGFubg== IG1lZGFscw== IGZpbGluZ3M= IEZyYXNlcg== ZG9uZQ== IG11bHRpbmF0aW9uYWw= IGZlZGVy IHdvcnRobGVzcw== IHBlc3Q= WWVzdGVyZGF5 YW5raW5k IGdheXM= IGJvcm5l IFBPUw== UGljdHVyZQ== IHBlcmNlbnRhZ2Vz MjUx cmFtZQ== IHBvdGlvbnM= QU1E IExlYmFuZXNl IHJhbmc= IExTVQ== b25ncw== IHBlbmluc3VsYQ== IENsYXVzZQ== QUxL b2hh IE1hY0Jvb2s= IHVuYW5pbW91cw== IGxlbmRlcnM= IGhhbmdz IGZyYW5jaGlzZXM= b3JlcnM= IFVwZGF0ZXM= IGlzb2xhdGU= YW5kcm8= U29vbg== IGRpc3J1cHRpdmU= IFN1cnZl IHN0aXRjaGVz IFNjb3Jw IERvbWluaW9u IHN1cHBseWluZw== QXJn IHR1cnJldA== IEx1aw== IGJyYWNrZXRz Kik= IFJldm9sdXRpb25hcnk= IEhvbmVzdA== IG5vdGljaW5n IFNoYW5ub24= IGFmZm9yZGVk IHRoYQ== IEphbmV0 IS0t IE5hcmVuZHJh IFBsb3Q= SG9s c2V2ZXI= ZWVudGg= IG9ic3RydWN0aW9u IDEwMjQ= c3RhZmY= amFz b3JnZXQ= c2NlbmVz bGF1Z2hz IEZhcmdv Y3JpbWU= IG9yY2hlc3Ry IGRlbGV0 aWxpYXJ5 cmlldmVk IG1pbGl0YXI= IEdyZWVuZQ== 4peP 44Gm IEd1YXJkcw== IHVubGVhc2hlZA== IFdlYmVy IGFkanVzdGFibGU= IGNhbGliZXI= IG1vdGl2YXRpb25z IMOg bUFo IExhbmth aGFuZGxl IHBlbnQ= IFJhdg== IEFuZ3VsYXI= IEthdQ== dW1iaW5n IHBoaWxhbnRocm9w IGRlaHlk IHRveGljaXR5 ZWVy IFlPUks= d2l0eg== 5bw= IElF Y29tbXVuaXR5 IEFI IHJldGFsaQ== IG1hc3NpdmVseQ== IERhbmllbHM= IERFTA== IGNhcmNpbg== VXJs IHJvdXRpbmc= IE5QQ3M= IFJBRg== cnljZQ== IHdhaXZlZA== IEd1YXRlbQ== RXZlcnlib2R5 IGNvdmVuYW50 IDE3Mw== IHJlbGF4aW5n IHF1YXJ0 YWxtb3N0 IGd1YXJkZWQ= IFNvbGRpZXJz IFBMQVk= IG91dGdvaW5n TEFORA== IHJld3JpdGU= IE1PVg== IEltcGVy IFNvbHV0aW9u IHBoZW5vbWVuYWw= IGxvbmdldml0eQ== IGltcGF0 IE5pc3Nhbg== aXJpZQ== IG9kb3I= IFphcg== b2tz IG1pbGl0aWFz IFNQRUM= IHRvbGVyYXRlZA== YXJzZXI= IEJyYWRmb3Jk Kyw= IHN1cnJlYWw= c2Y= Q2FuYWRpYW4= IHJlc2VtYmxhbmNl IGNhcmJvaHlkcmF0ZQ== VklFVw== IGFjY2Vzc29yeQ== bWVhbA== bGFyZ2VzdA== aWVnZWw= U29tZW9uZQ== IHRvdWdoZXN0 b3Nv IGZ1bm5lbA== IGNvbmRlbW5hdGlvbg== bHVlbnQ= IHdpcmVk IFN1bnNldA== SmVzdXM= IFBTVA== IFBhZ2Vz IFR5Y29vbg== IFBG IHNlbGVjdGlvbnM= IOCk cGFydGlzYW4= IGhpZ2hz IFJ1bmU= IGNyYWZ0cw== bGVhZA== IFBhcmVudHM= IHJlY2xhaW0= ZWtlcg== IEFsbGllZA== YWVwZXI= IGxvb21pbmc= IGJlbmVmaWNpYXJpZXM= IEh1bGw= U3R1ZGVudHM= SmV3aXNo ZGo= IHBhY3Q= dGVtcGxhdGU= IE9mZmljaWFscw== IEJheWxvcg== IGhlbXA= IHlvdXRocw== IExldmVscw== IFhpYW8= IENoZXM= IGVuZGVhdm9y IFJlbW92ZWQ= IGhpcHBvY2FtcA== SGVsbA== 44KK ODA1 IGRpbm9zYXVy IFdyYXRo IEluZG9uZXNpYW4= IGNhbGN1bGF0b3I= IERpY3Rpb25hcnk= IDQyMA== IE1BRw== KF8= ISw= dGFyaWFucw== IHJlc3RyaWN0aW5n cmFjdXNl IHdlZWtkYXk= T1VOVA== IHNocnVnZ2Vk bGVncm91bmQ= IGJhbGQ= IERvY3RvcnM= IHRvdXRlZA== IE1heHdlbGw= IDIxNA== IGRpcGxvbWF0 IHJlcHJlc3Npb24= IGNvbnN0aXR1ZW5jeQ== dmljZQ== cmFua2Vk IE5hcG9sZW9u Z2FuZw== IEZvcmV2ZXI= dHVu IGJ1bGI= IFBEVA== IENpc2Nv VkVO IHJlc3VtZWQ= U3RldmVu IE1hbml0b2Jh IGZhYnVsb3Vz IEFnZW50cw== MTk4NA== IGFtdXNpbmc= IE15c3Rlcmllcw== IG9ydGhvZG94 Zmxvb3I= IHF1ZXN0aW9ubmFpcmU= IHBlbmV0cmF0ZQ== IGZpbG1tYWtlcnM= IFVuYw== IHN0YW1wZWQ= IHRoaXJ0ZWVu IG91dGZpZWxk IGZvcndhcmRlZA== IGFwcHJh IGFpZGVk dHJ5 IHVuZm9jdXNlZA== IExpeg== IFdlbmR5 IFNjZW5l Q2hhcmc= IHJlamVjdHM= IGxlZnRpc3Q= IFByb3ZpZGVuY2U= IEJyaWQ= cmVnbg== IHByb3BoZWN5 IExJVkU= NDk5 IGZvcmdl IEZNTA== IGludHJpbnNpYw== IEZyb2c= IHdvbnQ= IEhvbHQ= IGZhbWVk Q0xVUw== YWVwZXJuaWNr IEhhdGU= IENheQ== IHJlZ2lzdGVyaW5n b3J0YWxpdHk= cm9weQ== b2NhbHlwdGlj YWFu bmF2 IGZhc2Npc3Q= SUZJRUQ= IGltcGxpY2F0ZWQ= IFJlc29ydA== IENoYW5kbGVy IEJyaWNr UGlu eXNj VXNhZ2U= IEhlbG0= dXNyYQ== 4piF4piF IEFiYmFz IHVuYW5pbW91c2x5 IGtlZXBlcg== IGFkZGljdGVk Pz8/ IGhlbG1ldHM= IGFudGlveGlk YXBzZWQ= ODA4 Z2llbmU= IHdhaXRz IG1pbmlvbg== cmF2ZWQ= IFBvcnNjaGU= IGRyZWFtaW5n IDE3MQ== IENhaW4= IHVuZm9y YXNzbw== IENvbmZpZ3VyYXRpb24= a3Vu aGFyZHQ= IG5lc3RlZA== IExEUw== TEVT IHR5aW5n ZW5vcw== IGN1ZQ== IE1hcnF1 c2tpcnRz IGNsaWNrZWQ= IGV4cGlyYXRpb24= IEFjY29yZGluZ2x5 IFdD IGJsZXNzaW5ncw== IGFkZGljdGl2ZQ== IE5hcnI= eXg= IEphZ3VhcnM= IHJlbnRz IFNpYmVy IHRpcHBlZA== b3Vzc2U= IEZpdHpnZXJhbGQ= IGhpZXJhcmNo b3V0aW5l IHdhdmVsZW5ndGg= Pi4= Y2hpZA== IFByb2Nlc3Npbmc= Lys= cmFua2luZw== RWFzeQ== IENvbnN0cnVjdA== IHRldA== aW5zdXJlZA== SFVE IHF1b3Rpbmc= IGNvbW11bmljYXRlZA== aW54 IGlubWF0ZQ== IGVyZWN0ZWQ= IEFic29sdXRlbHk= IFN1cmVseQ== IHVuaW0= IFRocm9uZQ== aGVpZA== IGNsYXdz IHN1cGVyc3Rhcg== IExlbm4= IFdoaXM= VWs= YWJvbA== IHNrZXQ= IE5pZXQ= IHBlcmtz IGFmZmluaXR5 IG9wZW5pbmdz cGhhc2lz IGRpc2NyaW1pbmF0ZQ== VGlw dmM= IGdyaW5kaW5n IEplbm55 IGFzdGhtYQ== aG9sZXM= IEhvbWVy IHJlZ2lzdGVycw== IEdsYWQ= IGNyZWF0aW9ucw== IGxpdGhpdW0= IGFwcGxhdXNl dW50aWw= SnVzdGljZQ== IFR1cmtz IHNjYW5kYWxz IGJha2U= dGFuaw== TWVjaA== IE1lYW5z IE1haWQ= UmVwdWJsaWNhbnM= aXNhbA== d2luZG93cw== IFNhbnRvcw== IHZlZ2V0YXRpb24= MzM4 dHJp IGZsdXg= aW5zZXJ0 IGNsYXJpZmllZA== IG1vcnRn IENoaW0= IFRvcnQ= IGRpc2NsYWlt bWV0YWw= IEFzaWRl IGluZHVjdGlvbg== IGluZmw= IGF0aGVpc3Rz YW1waA== IGV0aGVy IFZpdGFs IEJ1aWx0 TWluZA== IHdlYXBvbnJ5 U0VU IDE4Ng== YWRtaW4= Z2Ft Y29udHJhY3Q= YWZh IGRlcml2YXRpdmVz IHNuYWNrcw== IGNodXJu RWNvbm9t IGNhcHBlZA== IFVuZGVyc3RhbmRpbmc= IEhlcnM= IEl6 IGR1Y3Q= SUVOVA== YXVnaHR5 IOKclA== IE5Q IHNhaWxpbmc= SW5pdGlhbGl6ZWQ= IHRlZA== IHJlYWN0b3Jz IExvbWI= IGNob2tl IFdvcm0= IGFkbWlyYXRpb24= IHN3dW5n ZW5zaWJseQ== IHJhc2g= IEdvYWxz IEltcG9ydGFudA== U2hvdA== IFJhcw== IHRyYWluZXJz IEJ1bg== V29ya2luZw== IGhhcm1lZA== IFBhbmRvcmE= IExURQ== IG11c2hyb29t IENIQVI= IEZlZQ== IE1veQ== Qm9ybg== b2xpYmVyYWw= IE1hcnRpYWw= IGdlbnRsZW1lbg== IGxpbmdlcmluZw== T2ZmaWNpYWw= IGdyYWZmaXRp IE5hbWVz RGVy IHF1aW50 aXN0cmF0ZQ== YXplZXJh IE5PVElDRQ== IEZsb3JlbmNl IHBheWFibGU= IGRlcGljdHM= IFNwZWNpZXM= SGVhcnQ= 4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA IGVuY2xvc2Vk SW5jcmVhc2Vz RGFpbHk= IExpcw== IGVuYWN0bWVudA== IEJhY29u IFN0ZWVsZQ== ZGVtYW5k IDE4Mw== IG1vdXRocw== IHN0cmFuZGVk IGVuaGFuY2VtZW50 MDEx IFdoYXRz IGhlYWxlZA== ZW55 IFJhYg== IDM0MA== IExhYnlyaW50aA== cm9hY2g= IFlvc2g= IENsaXBwZXJz IGNvbmNlcnRz SW50ZXJuZXQ= MzU1 IHN0aWNrZXJz IHRlcm1lZA== IEF4ZQ== IGdyYW5kcGFyZW50cw== RnJhbmNl IENsaW0= IFVo dWxpYw== IHRocmlsbA== Y2VudHJpYw== IE92ZXJ2aWV3 IENvbmR1Y3Q= IHN1YnN0YW50aXZl IDE4Mg== bXVy IHN0cmF5 IENvZmY= IHJlcGV0aXRpdmU= IEZvcmdvdHRlbg== IHF1YWxpZmljYXRpb24= ZXdpdG5lc3M= IFppbWJhYndl IHNpbXVsYXRlZA== IEpE MjUz IFdhcmU= IHVuc2M= VGltZXM= IHN1bW1vbnM= IGRpc2Nvbm5lY3RlZA== IDE4NA== Y2l1cw== IEd1amFy b2RrYQ== IGVyYXNl IFRvYmFjY28= ZWxlY3RlZA== IHVuY29udA== IFNoZXBhcmQ= IExhbXA= IGFsZXJ0ZWQ= IG9wZXJhdGl2ZQ== YXJuYQ== dWludA== IG5lZ2xpZ2VuY2U= YWNlbWVudHM= IHN1cHJh IHByZXZhaWw= IFNoYXJr IGJlbHRz 44Gr IHRpZ2h0ZXI= RW5naW5lZXJz IGluYWN0aXZl IGV4cG9uZW50 IFdpbGxpZQ== YXBsZXM= IGhlaXI= IEhpdHM= aWFubg== IFNheXM= IGN1cnJlbnRz IEJlbmdhbA== IGFyaXN0 QnVmZmVy IGJyZWV6ZQ== IFdlc2xleQ== Q29sYQ== IHByb25vdW4= IGRlZWQ= IEtsaW5n IG9mdA== IGluZmxpY3Q= IHB1bmlzaGluZw== IG5t aWt1 T0RVQ1Q= MDE0 IHN1YnNpZHk= IERFQQ== IEhlcmJlcnQ= IEphbA== QmFuaw== IGRlZmVycmVk IHNoaXBtZW50 Qm90dA== IGFsbGU= YmVhcmluZw== SFRNTA== T2ZmbGluZQ== IDIxMw== IHNjcm9sbGluZw== IHNjYW5uZWQ= IExpYnlhbg== IFRPUA== Y2hyb20= ZHQ= Y29sdW1u UHN5TmV0TWVzc2FnZQ== WmVybw== IHRvcnNv MDUw 4pWQ IGltcGVyc29u IFNjaHdhcnR6 dWRpYw== IHBpc3NlZA== IFNhcHA= MjU3 IElTUHM= b2ds IHN1cGVydmlzZWQ= IGFkb2xlc2NlbnQ= IGF0dGFpbmVk IERlbGl2ZXJ5 IEJ1bm55 IDE5Mzc= IG1pbmlhdHVyZQ== IG9z IDM3MA== NjA4 IE1vdXJpbmhv IGlubmF0ZQ== IHRlbXBv IE5N IEZhbGxlbg== MDA5 IHByb3ZvY2F0aXZl U3RyZWFtZXI= IEJlbmVkaWN0 IEJvbHNoZQ== IHR1cnRsZQ== IFBDQg== IEVxdWFs RGlyZWN0b3I= IFJlbmQ= IGZsdWlkcw== QXV0aG9yaXRpZXM= IGNvdXNpbnM= cmVxdWVuY3k= IE5laWdoYm9y c2V0cw== c2hhcmVk Q2hhcmxlcw== cGFzc3dvcmQ= IGdlYXJz IDIxMQ== IEhhcmR3YXJl cmlrYQ== IHVwc3RyZWFt SG9t IGRpc3Byb3BvcnRpb25hdGVseQ== aXZpdGllcw== IHVuZGVmaW5lZA== IGVsZWN0cm9ucw== IGNvbW1lbW9y RXZlbnR1YWxseQ== ID48 IGlycmVzcG9uc2libGU= MjE4 IFJlbGVhc2Vk IE9WRVI= IElHTg== IEJyZWFk c3RlbGxhcg== IFNhZ2U= dHRlZA== ZGFtYWdl ZWRpdGlvbg== IFByZWM= IGxpbWU= IGNvbmZpbmVtZW50 IGNhbG9yaWU= d2VhcG9u IGRpZmZlcmluZw== IFNpbmE= bXlz YW1k IGludHJpY2F0ZQ== a2s= IFBBVA== w6Nv c3RvbmVz bGlua3M= IHJhbmNo U2VtaXRpYw== IGRpZmZlcmVudGlhdGU= IFNpbmdlcg== b2NjdXBpZWQ= IGZvcnRyZXNz Y21k IGludGVyY2VwdGlvbg== IEFua2FyYQ== IHJlcHQ= IFNvbGl0YWlyZQ== IHJlbWFrZQ== cHJlZA== IGRhcmVk YXV0aW9ucw== IEJBQ0s= UnVubmluZw== IGRlYnVnZ2luZw== IGdyYXBocw== Mzk5 IE5pZ2Vs IGJ1bg== IHBpbGxvdw== IHByb2dyZXNzZWQ= ZmFzaGlvbmVk IG9iZWRpZW5jZQ== RVJO IHJlaGVhcnM= Q2VsbA== dGw= U2hlcg== IGhlcmFsZA== IFBheW1lbnQ= IENvcnk= IERlcHQ= IHJlcGVudA== IFdlYWs= dWNrbGFuZA== IHBsZWFzaW5n IHNob3J0YWdlcw== IGp1cm9ycw== IEthYg== cXFh QW50aQ== IHdvdw== IFJDTVA= IHRzdW4= IFNpYw== IGNvbXByaXNlcw== IHNwaWVz IHByZWNpbmN0 bnU= IHVyZ2Vz IHRpbWVk IHN0cmlwZXM= IEJvb3Rz IHllbg== QWR2YW5jZWQ= IGRpc2NyZXRl IEFyY2hhbmdlbA== ZW1wbG95bWVudA== RGlmZg== IG1vbnVtZW50cw== IDIwOQ== d29ya2Vy IDE5Ng== IEln dXR0ZXJzdG9jaw== VFBT SmFj IGhvbWVsZXNzbmVzcw== IGNvbW1lbnRhdG9y IHJhY2lhbGx5 ZmluZw== c2VlZA== RWxl ZWxsYXRpb24= IGV0aGFub2w= IHBhcmlzaA== IERvbmc= IEF3YWtlbmluZw== IGRldmlhdGlvbg== IEJlYXJpbmc= IFRzdWs= IHJlY2Vzcw== IGx5bXBo IENhbm5hYmlz 5Zw= IE5FV1M= IGRyYQ== IFN0ZWZhbg== IFdyb25n IFNBTQ== IGxvb3NlbHk= IGludGVycHJldGVy IFBsYWlu R292ZXJubWVudA== IGJpZ290cnk= IGdyZW5hZGVz YXZleg== cGljdHVyZWQ= IG1hbmRhdGVk IE1vbms= IFBlZHJv IGxhdmE= Mjc0 IGN5bmljYWw= IFNjcm9sbHM= bG9ja3M= TXA= IGNvbmdyZWdhdGlvbg== b3JuaW5ncw== cGhpbA== IEliaWQ= IGZlcnY= IGRpc2FwcGVhcmluZw== IGFycm9nYW50 c3lu IE1hdmVy IFN1aXQ= MjQx IGFiYnJl YWNrZXJz UGE= IFllbA== V2hlbmV2ZXI= IDIzNQ== IFZpbmU= IEFuYXQ= IGV4dGluY3Q= TEVU IGV4ZWN1dGFibGU= VkVSUw== b3hpZGU= RE5B IFByZWw= IHJlc2VudG1lbnQ= IGNvbXByaXNl IEF2aXY= IGludGVyY2VwdGlvbnM= IHByb2xpZmlj SU5B IEVyaW4= dGhvdWdodA== MjE5 IFBzeWNoaWF0cnk= dW5reQ== Y2hlbWlzdA== SG8= IE1jQ295 IGJyaWNrcw== TG9z cmlseQ== IFVTU1I= IHJ1ZA== IGxhdWQ= IFdpc2U= IEVtZXJhbGQ= IHJldml2ZWQ= IGRhbW5lZA== IFJlcGFpcg== aWRlbQ== Y3RpY2E= IHBhdHJpYXJjaA== IE51cnM= bWVn IGNoZWFwZXN0 cmVlbWVudHM= ZW1wdHk= IENlbGVicg== IGRlcHJpdmF0aW9u Y2hhbnRlZA== IFRodW1ibmFpbHM= RW5lcmd5 IEV0aGFu IFFpbmc= IG9wcG9zZXM= V0lORA== dmlr IE1hdQ== IFNVQg== NjY3 R1JF IFZvbHVudGU= bnRvbg== Q29vaw== 5ZA= ZXNxdWU= IHBsdW1tZXQ= IHN1aW5n IHByb25vdW5jZQ== IHJlc2lzdGluZw== IEZpc2hpbmc= IFRyaWFscw== IHllbGw= IDMxMA== IGluZHVjdA== IHBlcnNvbmFsaXplZA== b2Z0ZW4= UmVi RU1CRVI= IHZpZXdwb2ludA== IGV4aXN0ZW50aWFs KCkp cmVtb3Zl TUVOVFM= bGFzc2Vz IGV2YXBvcg== IGFpc2xl bWV0YQ== IHJlZmxlY3RpdmU= IGVudGl0bGVtZW50 IGRldmlzZWQ= bXVzaWM= YXNjYWRl IHdpbmRpbmc= b2Zmc2V0 IGFjY2Vzc2liaWxpdHk= a2VyZWQ= QmV0dGVy IEpvaG5zdG9u dGhpbmtpbmc= U25vdw== IENyb2F0aWE= IEF0b21pYw== Mjcx MzQ4 IHRleHRib29r IFNpeHRo INin2YQ= IHNsaWRlcg== IEJ1cmdlcg== Ym9s U3luYw== IGdyYW5kY2hpbGRyZW4= IGNlcnY= Kyk= IGV0ZXJuaXR5 IHR3ZWV0aW5n IHNwZWN1bGF0aXZl IHBpdm90YWw= IFdQ IFRFUg== eW5hbWlj IHVwbA== IENhdHM= cGVyaGFwcw== IGNsYXNzbWF0ZXM= IGJsYXRhbnQ= Jy0= IGxha2g= YW50aW5l IEJvcmc= aW9t Lyg= IEF0aGxldGlj IHNhcg== T1RB IEhvZmZtYW4= TmV2ZXJ0aGVsZXNz IGFkb3JhYmxl IHNwYXduZWQ= QXNzb2NpYXRlZA== IERvbWVzdGlj IGltcGxhbnQ= IEx1eGVt IEtlbnM= IHB1bXBz IFNBVA== QXR0cmlidXRlcw== NTA5 YXZvdXI= IGNlbnRyYWxpemVk IFRO IGZyZXNobHk= IEFjaGlldmU= IG91dHNpZGVycw== aGVydHk= IFJlZQ== IFRvd2Vycw== IERhcnQ= YWthYmxl IG1w IEhlYXZlbmx5 IHJpcGU= IENhcm9saW5l cnlhbg== IGNsYXNzaWNz IHJldGlyaW5n IDIyOA== IGFo IGRlYWxpbmdz IHB1bmNoaW5n IENoYXBtYW4= T3B0aW9ucw== bWF4d2VsbA== dm9sdW1l IHN0YWw= IGV4cG9ydGVk IFF1aXRl IG51bWVyaWNhbA== QnVybg== RmFjdA== IEtleXN0b25l IHRyZW5kaW5n IGFsdGVyaW5n IEFmcmljYW5z NDc4 IE1O IEtub2Nr IHRlbXB0YXRpb24= IHByZXN0aWdl T3ZlcnZpZXc= IFRyYWRpdGlvbmFs IEJhaHJhaW4= UHJpdmF0ZQ== IEhPVQ== IGJhcnI= IFRhdA== Q3ViZQ== VVNE IEdyYW5kZQ== IEdhdA== IEZsbw== IHJlc2lkZXM= IGluZGVj dm9sZW50 IHBlcnBldHVhbA== dWJlcw== IHdvcmxkdmlldw== IFF1YW50dW0= IGZpbHRlcmVk IGVuc3U= b3JnZXRvd24= RVJTT04= IE1pbGQ= Mzc5 T1RU w6U= IHZpdGFtaW5z IHJpYmJvbg== IHNpbmNlcmVseQ== IEhpbg== IGVpZ2h0ZWVu IGNvbnRyYWRpY3Rvcnk= IGdsYXJpbmc= IGV4cGVjdGFuY3k= IGNvbnNwaXI= IG1vbnN0cm91cw== IDM4MA== cmVjaQ== IGhhbmRpYw== IHB1bXBlZA== IGluZGljYXRpdmU= IHJhcHA= IGF2YWls IExFR08= IE1hcmlqdWFuYQ== MTk4NQ== ZXJ0b24= IHR3ZW50aWV0aA== IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyM= IFN3YW1w IHZhbHVhdGlvbg== IGFmZmlsaWF0ZXM= YWRqdXN0ZWQ= IEZhY2lsaXR5 MjYy IGVuenltZXM= aXR1ZGluYWw= IGltcHJpbnQ= U2l0ZQ== IGluc3RhbGxlcg== IFRSQQ== bW9sb2d5 bGluZWFy IENvbGxlY3RpdmU= aWdhdGluZw== IFRva2Vu IHNwZWN1bGF0ZWQ= S04= IENseQ== b3JpdHk= IGRlZmVy IGluc3BlY3RvcnM= YXBwcm92ZWQ= Uk0= IFN1bnM= IGluZm9ybWluZw== IFN5cmFjdXNl aWJsaQ== NzY1 IGdsb3Zl IGF1dGhvcml6ZQ== 4oCm4oCm4oCm4oCm4oCm4oCm4oCm4oCm IENydWlzZQ== IGNvbnRyYWN0aW5n c2hlbGw= SUZF IEpld2Vs cHJhY3Q= IFBob3Rvc2hvcA== IEtub3dpbmc= aGFybQ== IGF0dHJhY3Rpb25z YWRhbg== ZXR1cw== MDE4 d2FnZW4= QWx0 IG11bHRpcGx5 IGVxdWlsaWJyaXVt Ons= IEZpZ2h0ZXJz IEVkZ2Fy IGZvdXJ0ZWVu R292ZXJu IG1pc3VzZQ== IGFidXNpbmc= IGFuY2VzdHJ5 cmFtZXI= NjQ0 IHdvcm1z IHRoaWNrZXI= IENvbWJpbmU= IHBlYXNhbnRz IHZpbmQ= IGNvbnF1ZXN0 IG1vY2tlZA== IGNpbm5hbW9u IENhbGQ= IEdhbGx1cA== IGF2b2lkYW5jZQ== IGluY2FybmF0aW9u IFN0cmF0 IHRhc3RlZA== ZW50YQ== IE5lYWw= cGFyZWQ= IHRlcm1pbm9sb2d5 amVjdGlvbg== U2NpZW50aXN0cw== IElOUw== IERlZQ== IGRpcmVjdG9yaWVz Um9hZA== IFNoYXA= YnJpZ2h0 IERpcmVjdG9ycw== IENvbHVtbg== IGJvYg== IHByZWZlcmFibHk= IGdsaXRjaA== ZnVydA== IGVn aWRpcw== Q0JD IHN1cnJlbmRlcmVk IHRlc3RhbWVudA== MzM2 dWdnZXN0 IE5pbA== YW5vdGhlcg== IHBhdGhldGlj IERvbm5h IDIxOA== IEF2ZXJ5 IHdoaXNrZXk= IGZpeHR1cmU= IENvbnF1ZXN0 IGJldHM= T2Nj IExlaWNlc3Rlcg== XS4i ICkpOw== IGZsYXNoZXM= NDU2 IG1hc2tlZA== Z2VicmE= IGNvbXB1dGVk Y2hlbA== YXVkZXI= IGRlZmVhdHM= IExpYmVyYXRpb24= IE9zYW1h IFZpdmU= Q2hhbmdlcw== Q2hhbm5lbA== IHRhcmlmZnM= IG1hZ2U= IFNheA== IGluYWR2ZXJ0ZW50bHk= IENSRQ== IFJlYXBlcg== aW5reQ== Z3JhZGluZw== IHN0ZXJlb3R5cA== IGN1cmw= IEZBTlQ= IGZyYW1ld29ya3M= TW9t IEFuY2g= IGZsYXZvdXI= Y2FyYm9u IHBlcm1pdHRpbmc= bGV0Y2hlcg== IE1vemlsbGE= IFBhcmtpbmc= IENoYW1w U2Nyb2xs IG11cmRlcmVy IHJlc3RlZA== IG93ZXM= IFBvc3M= QURE SUZG cmVzb2x1dGlvbg== IE1pbmluZw== IGNvbXBhcmF0aXZl RGlt IG5laWdoYm91cmluZw== IEFTVA== IFRveGlj IGJpYXNlcw== IGd1bmZpcmU= dXJvdXM= IE1vbWVudA== MTk4Mw== IHBlcnZhc2l2ZQ== dHRw IE5vcm1hbGx5 cmly U2FyYWg= IEFsYmFueQ== IHVuc2V0dA== IFNNUw== aXBlcnM= bGF5ZXI= IFdoaXRlcw== dXBsZQ== IHR1cmJv IExlZWRz IHRoYXRz IE1pbmVy TUVS IFJlaWdu IHBlcm1l IEJsaXR6 IDE5MzQ= IGludGltaWRhdGluZw== dHViZQ== IGVjY2VudHJpYw== YWJvbGlj Ym94ZXM= IEFzc29jaWF0ZXM= dm90ZXM= IHNpbXVsYXRl dW1ibw== YXN0ZXJ5 IHNoaXBtZW50cw== RkZGRg== YW50aA== IHNlYXNvbmVk IGV4cGVyaW1lbnRhdGlvbg== 4pag bGF3cw== TWVldA== aWRkbGVz YW50aWNz UmF0aW5n SVNJUw== aGlmdA== IGZyb250cw== YnVm MDE3 IHVuYXR0 IERpbA== bGVhc2Vz IEdhcmRlbnM= Nzc3 dG91Y2g= dmVsbA== NDU4 ID09PT09 c2F2aW5n IGVyb3Npb24= IFF1aW4= IGVhcm5z IGFjY29tcGxpc2htZW50 IFdlaQ== IDxb X19fX18= IGlycmln IFRlZGR5 IGNvbnF1ZXJlZA== IEFybW9yZWQ= IGFzc2VydHM= IG1hbmlwdWxhdGluZw== csOp IHRyYW5zY3JpcHRz R2FsbGVyeQ== IHBsb3R0aW5n TmVpbA== IGJldHJheWFs bG9hZGVy IFN1bA== IGRpc3BsYWNlbWVudA== IHJveWFsdHk= IFdJ aGVpdA== IERldmljZXM= YWxsZWw= IG11bmljaXBhbGl0aWVz IGNhbmFs U3RhcnM= IFVBRQ== ICLigKY= IENV YWJvdmU= IHJlc29uYW5jZQ== IGd1aUFjdGl2ZVVu YWRkZWQ= IEJyYXZlcw== IElibg== IGhlcmVieQ== IEJSRQ== IHNoYXJlaG9sZGVy IEhpcg== IEpp IHN0cmFuZ2VseQ== IGFkbWlyZWQ= IHBsaWdodA== IGJhY2hlbG9y IFBvbGU= Y2lwbGluYXJ5 VG9ueQ== IEFybWVuaWFu IHVubWFu IFppb25pc3Q= U3RhZ2U= aXNjb3Zlcg== IGF1dG9tb3RpdmU= IHNpZGVsaW5lcw== IHNsaWNr IFJlbmFpc3NhbmNl IEZVTg== SW1hZ2Vz IEhhag== IHBpbmc= IHNob3J0Y3V0 IEJsdmQ= IExvb2tz IGJ1cnN0cw== IGNsYW1w IG1pc2g= IHNvcnRpbmc= IHBhdHJpb3Q= IGNvcnJlY3RuZXNz IFNjYW5kaW5hdg== IENhdmFsaWVycw== cHl0aG9u YXphcg== IDM3NQ== IEphdW5l NDA5 IGRldHJpbWVudGFs IHN0YWJiaW5n IHBvaXNvbmVk IGZvdW50YWlu b2NlbnQ= b3JzdA== IE1hcmk= IHJhaW5z IE92ZXJz IEluc3RpdHV0aW9u dWRnZXQ= QU1Z dGFsZQ== IEtS IFByaWNlcw== IGhlYWRhY2hlcw== IGxhbmRzbA== IEF1cmE= Qm9udXM= IFpoYW8= IEhpcA== IGhvcHM= IEt1cmRpc3Rhbg== IGV4cGxvaXRpbmc= cnlu IGh5cG9jcmlzeQ== b3BlbmluZw== IGd1bnNob3Q= IHdlZA== aW50ZXJzdGl0aWFs SW50ZXJzdGl0aWFs IGFtZW4= QnJlYWtpbmc= IG1hcmtldGVk V2lyZQ== IENyb3dk Q29udGludWU= IEtub3du IEVmZmVjdGl2ZQ== b3JlYW4= aXpvbnM= Sm9zZXBo IGVzY2FsYXRpb24= dXNlcm5hbWU= IGN1cnRhaW4= QVRFUw== IFBBUg== IE1peQ== IGNvdW50ZXJmZQ== bGVuZQ== IGNvbnRlbmRlcnM= ZGFpbHk= IEFzYw== IFBoaWxsaXA= bW9zdGx5 IGZpbGVuYW1l aGVuZQ== IHJlc2VtYmxpbmc= IHN0YWdpbmc= IENobG9l IHdpcmluZw== SG9u IFJlbmV3 b3R0YWdl IEh5YnJpZA== bXVjaA== IHN0cm9rZXM= IHBvbGljeW1ha2Vycw== QVBURVI= IEFya2hhbQ== cGxvdA== IGFzc2lzdGFudHM= IGRlcG9ydA== IFNlZ2E= IGluZmx1ZW56YQ== IEN1cnNlZA== IEtvYmU= IHNraW5ueQ== UHJvdmlkZXI= IFJpcA== IGluY3JlbWVudGFs cHJvZHVjdHM= QkY= IGRvbWU= IENyZWRpdHM= IGxvc2Vycw== aW50cw== IEJldHR5 IFRhbGVudA== IERBTQ== THY= RXNz IGRlbnM= dGVtcA== SnVkZ2U= b2RpYw== ICco VVJFUw== ZXRzaw== Vk8= IHJldHJpZXZlZA== IGFyY2hpdGVjdHM= 2Yc= IGV0aGlj IFNlY29uZGFyeQ== c3RvY2tz YWRpYQ== IDMyNQ== IE9waW5pb24= IHNpbXVsdGFuZW91cw== IGRpeno= dWxw IHNtdWdnbGluZw== aXBwZXJ5 UmFuZG9t ZmFjaW5n IERhcw== IHN0b2NrcA== IGRpc2Nsb3N1cmVz cG9pbnRlcg== IGNvcmFs IFNlbGVjdGlvbg== IFBpa2U= aXZhbGVudA== IHJ1dGhsZXNz IFJpbQ== IGVuc3Vpbmc= IEV4cGVyaW1lbnQ= IGNvbmdyZXNzbWFu IGJlbGlldmVy IHVuc3BlY2lmaWVk IE1vcmQ= IGtub3dsZWRnZWFibGU= IFZFUlk= VFg= IHN0cmFwcw== IHR1cmY= YXBlc2hpZnRlcg== IG1hcml0YWw= IGZsb2Nr 44GG MjYz QU1FUw== IE9wcG9zaXRpb24= IHRyZWFzdXJlcw== IEdPRA== IG1vZGVsZWQ= IFdPUkxE IChb IFVzYWdl SEY= ICQo dXNzZWQ= IHBpb25lZXI= RWlnaHQ= cGFyc2U= YnJlYWQ= cml0eg== IE1pcmFuZGE= IEthbnQ= Kysp b3Jlbg== IHByb3Zva2Vk IGJyZWVkcw== IEluY2x1ZGVz IFBhc3RlYmlu IEZsaXA= SmF2YQ== IGJyaW5r IHJ1bW9yZWQ= IHVuc2Vlbg== IGdhcm5lcmVk IERlZmlu YWx0ZWQ= IHRhdHRvb3M= IGhlc2l0YXRpb24= aXNpdGlvbnM= IFdlYXZlcg== IFJlcG9ydGluZw== IHRoZXJhcGllcw== IGNvbnN1bHRhbnRz IHJlc2lkdWFs IE1hbGk= IFJvbWE= aWFnbw== IFJlc2lkZW50cw== dWJp IHJlbWVkaWVz IGFkYXB0aXZl IEFsaXZl IEJhcmNs IHdhbGxldHM= Y3J5cHQ= ZXRlcm1pbmF0aW9u IFBlbG9zaQ== IHNsaXBwaW5n b3Rvbmlu IGFsbGlhbmNlcw== cGF0cmljaw== aXJpcw== IG9ydGg= IFBlcmtpbnM= IERlVg== IEdldHM= IGRyeWluZw== Z2Vl Zm9yZXN0 IEZvcmdldA== b3JlbQ== MzM5 IHZhZ3VlbHk= IERpb24= IFBvcm4= IEhPVw== IHBuZXVt IHJ1YmJsZQ== IFRhc3Rl ZW5jaWE= IEdlbA== IGRzdA== IDI0NQ== IE1vcm9jY28= aW5mbGFtbQ== IFR3aW5z IGJvdHM= ZGF1Z2h0ZXI= IEJhbGs= IGJyZXRocmVu IGxvZ29z IGdvYmw= ZnBz IHN1YmRpdmlzaW9u IHBhd24= IHNxdWVlemVk IG1vcmFsZQ== IERX JyI= IGtub3Q= b29reQ== IGRpdmlzaXZl IGJvb3N0ZWQ= Y2h5 44OQ aWZhY3Q= IG5ld2NvbWVycw== IFdyZXN0bGluZw== IHNjb3V0cw== d29sdmVz UmF0 IG5pbmV0ZWVudGg= IE9zYm9ybmU= U3RhdHM= IGVtcG93ZXJlZA== IHBzeWNob3BhdGg= IE9FTQ== dWdnYWdl IFBL IE1vaGFtbWFk UGFr IGFuYXJjaGlzdHM= IEV4dHJhY3Q= ZXN0aGVz IFN0b2NraG9sbQ== bG9v IEdyYXBo IGRlcGxveWluZw== IFN0cmFuZ2Vy IE1vbGQ= IHN0YWZmZXI= IGRpc2NvdW50ZWQ= dWNrbGU= cGxlYXNl IExhbmRpbmc= w61h IDE5Mw== IGFudGU= IHJlcGV0aXRpb24= ICsvLQ== IHBhcm9keQ== IGxpdmVseQ== QUFB IEhvcnVz IHBpdHM= aW5kZXJz TE9D IFZlbmljZQ== NDA2 IERpc2NvdmVy 4oY= ZWxsZWN0dWFs IHBlbnM= IGV5ZWw= aWd1b3Vz SW1wbA== IGpva2luZw== IGludmFs IEJlbGZhc3Q= IGNyZWRpdG9ycw== IFNreXdhbGtlcg== b3Zza3k= IGNlYXNlZmlyZQ== IHNlYWxz aXNvZnQ= KSku IEZlbGl4 SVRT IHRyZXNw IEJsb2NrY2hhaW4= ZXdhcmU= IFNjaHdhcg== ZW5uZQ== bW91bnRlZA== IEJlYWNvbg== bGVzaA== IGltbWVuc2VseQ== IGNoZWVyaW5n RW1wbG95 c2NlbmU= aXNobHk= YXRjaGV3YW4= IE5pY29sYXM= IGRyYWluZWQ= IEV4aXQ= IEF6ZXJi anVu IGZsb2F0ZWQ= dWFuaWE= RGVlcA== IHN1cGVydg== IG15c3RpY2Fs IERvbGxhcg== IEFwb3N0bGU= IFJFTA== IFByb3ZpZGVk IEJ1Y2tz 44O0 Y3V0dGluZw== IGVuaGFuY2VtZW50cw== IFBlbmd1aW5z IElzYWlhaA== IGplcms= IFd5bg== IHN0YWxsZWQ= IGNyeXB0b2N1cnJlbmNpZXM= IFJvbGFuZA== c2luZ2xl IGx1bWlu IEZlbGxvdw== IENhcGFjaXR5 IEthemFraA== V04= IGZpbmFuY2Vk Mzg5 IHRpZA== IGNvbGx1c2lvbg== IE15cg== 7oA= U2VuYXRvcg== IHBlZGlhdHJpYw== IG5lYXRseQ== IHNhbmR3aWNoZXM= IEFyY2hpdGVjdHVyZQ== IHR1Y2tlZA== IGJhbGNvbnk= IGVhcnRocXVha2Vz cXVpcmU= RnV0dXJl IGhlZnR5 6Zc= IHNwZWNpYWxpemVz IHN0cmVzc2Vz IHNlbmRlcg== IG1pc3VuZGVyc3RhbmRpbmc= IGVwaWxl IHByb3Zva2U= IENvbG9ycw== IGRpc21heQ== dWtv W18= NTg2 bmV1dHJhbA== IGRvbmF0aW5n IFJhbmRhbGw= TXVsdGk= IGNvbnZlbmllbnRseQ== IFN1bmc= IENvY2E= IHRlbnRz IEFjY2VsZXI= IHBhcnRuZXJlZA== Mjcy aXJtaW5n IEJBUw== c29tZXRpbWVz IG9iamVjdGVk dWJyaWM= cG9zZWQ= TENT Z3Jhc3M= IGF0dHJpYnV0YWJsZQ== VklT SXNyYWVsaQ== IHJlcGVhdHM= IFJN dmFn dXRh aW5vdXM= IGluZXJ0 IE1pZ3VlbA== 5q0= IEhhd2FpaWFu Qm9hcmQ= IGFydGlmaWM= IEF6ZXJiYWk= YXNpbw== IFJlbnQ= QUlO IGFwcGxpYW5jZXM= IG5hdGlvbmFsaXR5 IGFzc2hvbGU= IE5lYg== IG5vdGNo aGFuaQ== IEJyaWRl QXZhaWxhYmlsaXR5 IGludGVyY2VwdGVk IGNvbnRpbmVudGFs IHN3ZWxsaW5n IFBlcnNwZWN0 Ymllcw== Ljw= aXRobWV0aWM= IExhcmE= IHRlbXB0aW5n YWRkcg== IG92ZXJzZWVpbmc= Y2xhZA== IERW IEdpbmdyaWNo IG11bg== IEFwcHJvcHJp IGFsdGVyYXRpb25z IFBhdHJlb24= IGhhdm9j IGRpc2NpcGxpbmVz IG5vdG9yaW91c2x5 YWt1eWE= aWVyaQ== Pyku IFdlbnQ= IHNpbGljb24= IHRyZW1i Q29udGFpbmVy S25vd24= IG1vcnRhcg== ZXN0ZQ== aWNrYQ== QXJ0aHVy IFByZXZpb3VzbHk= IE1hcnR5 IHNwYXJzZQ== Z2lucw== IGlud2FyZA== IFBhcnRpY2lwYW50 Q29weQ== IE1pc2M= IGFudGliaW90aWM= IFJldHJv IGVsdXNpdmU= IGFzc2FpbA== IEJhdHRhbGlvbg== IEJvdWdodA== IGRpbWluaXNo IEV1cm9wYQ== c2Vzc2lvbg== IERhbmdlcm91cw== aWVzZWw= IGRpc2JlbGllZg== IGJsYXN0cw== ZXh0cmVtZQ== IEJveWQ= IFByb2plY3Rz IEd1eXM= IHVuZGVyZ29uZQ== IGdyaWxs IER3aWdodA== IDE5Nw== VVNFUg== IGZpbGVzeXN0ZW0= IGNsb2Nrcw== VGF5bG9y IHdyYXBwZXI= IGZvbGRpbmc= b3VzYW5k IFBoaWxpcHBpbmU= QVRJT05BTA== IFBlcnRo IGFzaGVz IGFjY3VtdWxhdGU= IEdhdGV3YXk= U2hvcA== b3Jrc2hpcmU= SGFu IEJhcnJlbA== IExlaA== IFhW IHdoaW0= IHJlcG8= IENH IE1hbQ== IGluY29ycG9yYXRpbmc= IGJhaWxvdXQ= IGxpbmd1aXN0aWM= IGRpc2ludGVn Q0xF IGNpbmVtYXRpYw== IEZpYmVy U3lu aWxpb24= IENvbXBvcw== Y2hlbnM= IG5lb2M= IGJvaWxlZA== RklORQ== b25v dW5jbGU= aWtlbg== IEJN zrk= IHJlY2VpcHRz IGRpc3Bvc2Vk IFRoaXJ0eQ== IFJvdWdo IEFCUw== IG5vdHdpdGhzdGFuZGluZw== b2xsZW4= IyQ= IHVucmVsaWFibGU= IGJsb29t IG1lZGlvY3Jl IHRyYW0= IFRhc21hbg== IHNoYWtlcw== IG1hbmlmZXN0bw== IE1X IHNhdGlzZmFjdG9yeQ== IHNob3Jlcw== IGNvbXB1dGF0aW9u IGFzc2VydGlvbnM= b3Jtb25z YXJhZw== YWJpdA== RGVtb2NyYXRz IExvb3Q= IFZvbGtz aGFpcmVk IGdyYXZpdGF0aW9uYWw= U2luZw== IE1peg== IHRocm90dGxl IHR5cmFubnk= IFZpZXdz IHJvYmJlcg== IE1pbm9yaXR5 IHNocmluZQ== c2NvcGU= cHVycG9zZQ== IG51Y2xldXM= b3VyY2luZw== IFVTREE= IERIUw== d3Jh IEJvd2ll U2NhbGU= IEJFTA== eGk= SXRlcg== ICgpLA== d3JpZ2h0 IHNhaWxvcnM= b3VzZWQ= TkFTQQ== IFByb29m IE1pbmVyYWw= dG9rZW4= IEZE UmV3 IGVsbA== NjMw IGNoYW5jZWxsb3I= IEdvcw== IGFtb3VudGVk IFJlY3Jl b21leg== IE9wdGlt IE9saXZl IHRyYWNrZXI= b3dsZXI= IFVuaXF1ZQ== Um9vdA== IG1hcml0aW1l IFF1cmFu IEFkYXB0 IGVjb3N5c3RlbXM= IFJlcGVhdA== IFNveQ== IElNUA== IGdyYWR1YXRpbmc= YW5kZW0= UHVy IFJlc2V0 IFRyaWNr IFBoaWxseQ== IFR1ZQ== IE1hbGF5c2lhbg== IGNsaW1heA== IGJ1cnk= IGNvbnNwaWM= IFNvdXRoYW1wdG9u IEZsb3dlcnM= IGVzY29ydGVk IEVkdWNhdGlvbmFs IElSQw== IGJydXRhbGx5 ZWF0aW5n IHBpbGxhcg== IFNhbmc= IEp1ZGU= YXJsaW5n IEFtbmVzdHk= IHJlbWluZGluZw== IEFkbWluaXN0cmF0aXZl aGVzZGE= IGZsYXNoZWQ= IFBCUw== cGVyYXRl ZmVhdHVyZQ== IHN3aXBl IGdyYXZlcw== b3VsdHJ5 MjYx YnJlYWtz IEd1ZXI= IHNocmltcA== IFZvdGluZw== cXVpc3Q= IGFuYWx5dGljYWw= IHRhYmxlc3Bvb25z IFNPVQ== IHJlc2VhcmNoZWQ= IGRpc3J1cHRlZA== IGpvdXI= IHJlcGxpY2E= IGNhcnRvb25z YmlhbnM= fSk= Y29weQ== R290 b3VjaGVk UFVU IHN3YXJt bm90YXRpb25z c2FpZA== IHJlYnVpbHQ= IGNvbGxhYm9yYXRl IHJhZ2luZw== IG5hcg== IGRlbW9ncmFwaGljcw== IEREUg== IGRpc3RydXN0 b3NzaWVy IEtybw== IHB1bXBraW4= IHJlZ3JldHM= IGZhdGFsaXRpZXM= IExlbnM= IE9sZQ== cGQ= IHB1cHBldA== IE91dGxvb2s= IFN0YW0= T2w= RmFpcg== VVU= IHJld3JpdHRlbg== xLE= IGZhc2NpbmF0ZWQ= IHZlY3RvcnM= IHRyaWJ1bmFs dWF5 IE1hdHM= IENvaW5z W1s= IDE4MQ== IHJlbmRlcnM= IEthZXBlcm5pY2s= IGVzcGlvbmFnZQ== IHN1bW0= IGRpdGNo QWNjb3VudA== IHNwcmVhZHNoZWV0 IG11dGFudA== cGFzdA== NDA3 IGR5ZQ== IGluaXRpYXRpb24= IDQwMDA= IHB1bmlzaGFibGU= IHRoaW5uZXI= IEtoYWw= IGludGVybWVkaQ== RHVu IEdvdGhhbQ== IGVhZ2VybHk= IHZhZ2luYWw= cG93ZXJz Vlc= IFdBVENIRUQ= IHByZWRhdG9y YW1zdW5n IGRpc3Bhcml0eQ== IFsq IGFtcGg= IG91dHNraXJ0cw== IFNwaXJpdHM= IHNrZWxldGFs 0Ls= IFJlYXI= IGlzc3VhbmNl IExvZ2lj cmVsZWFzZWQ= Wlo= IEJvdW5k RW50cnk= IGV4aXRz aXNvbA== IEZvdW5kZXI= IHdyZQ== IEdyZWVubGFuZA== IE1NTw== dGFrZXI= SU5D 44G+ IGhvdXJseQ== aGVua28= IGZhbnRhc2llcw== IGRpc29i IGRlbW9saXRpb24= 44OL IGVubGlzdGVk cmF0dWxhdGlvbnM= IG1pc2d1aWRlZA== IGVuc3VyZWQ= IGRpc2NvdXJhZ2Vk bW9ydA== IGZsYW5r IGNlc3M= IHJlYWN0cw== IFNlcmU= c2Vuc2l0aXZl IFNlcnBlbnQ= YXNzYWQ= IDI0Nw== IGNhbG1seQ== YnVzdGVycw== IGJsZWVk IFN0cm8= IGFtdXNlbWVudA== IEFudGFyY3RpY2E= IHNjZXB0 IEdhdw== YXE= YXNvbmlj IHNwcmF3bGluZw== bmF0aXZl YXR1cmF0ZWQ= IEJhdHRsZWZpZWxk SVZFUlM= RUI= IEdlbXM= IE5vcnRod2VzdGVybg== IEZpbG1z IEF1dG9tYXRpYw== IGFwcHJlaGVuZA== 44Go IGd1aU5hbWU= IGJhY2tlbmQ= IGV2aWRlbmNlZA== Z2VhbnQ= MDEy IFNpZWdl IGV4dGVybmFsVG8= IHVuZm9jdXNlZFJhbmdl IGd1aUFjdGl2ZVVuZm9jdXNlZA== IGd1aUljb24= IGV4dGVybmFsVG9FVkE= IGV4dGVybmFsVG9FVkFPbmx5 RnJp Y2hhcmQ= ZW5hcmllcw== IGNoaWVmcw== IGNm IEhVRA== IGNvcnJvYm9y IGRC IFRha2Vu IFBhdHJpY2lh cmFpbA== IENoYXJt IExpYmVydGFyaWFu cmlldmU= UGVyc29uYWw= IE9VUg== Z2VyaWVz IGR1bXBpbmc= IG5ldXJvbG9naWNhbA== aXRpbWF0ZQ== IENsaW50b25z cmFmdGVk IE1vbGx5 IHRlcm1pbmFscw== cmVnaXN0ZXI= IGZsYXJl IGVuY29kZWQ= IGF1dG9wc3k= cGVs bWFjaGluZQ== IGV4ZW1wdGlvbnM= IFJveWFscw== ZGlzdGFuY2U= IGRyYWZ0cw== IGxhbWU= IEN1bm5pbmc= IHNwb3VzZXM= IE1hcmtldHM= IENhcnJpZXI= IGltcGx5aW5n IFlhaw== c2lk IGxvc2Vy IHZpZ2lsYW50 IGltcGVhY2htZW50 IGF1Z21lbnRlZA== IEVtcGxveWVlcw== IHVuaW50ZW5kZWQ= dGVybmFsbHk= IFdhdHQ= IHJlY29nbml6YWJsZQ== ZXNzaW0= 5p0= IGNvYXRlZA== cmhh IGxpZXV0ZW5hbnQ= IExlZ2lzbGF0aW9u cHVibGlzaGVk NDQ0 MDEz IGlkZWFsbHk= IFBhc3N3b3Jk IHNpbXBsaWZ5 IE1ldGE= IE1SSQ== IHBsZWFkaW5n b3JnYW5pemVk aGFuZGxlcg== IHVucmF2ZWw= Y29ycmVjdA== IGljeQ== IHBhcmFub2lk IHBhc3Nlcg== IGluc3BlY3Rpb25z b2Zlcg== IEhlYWx0aGNhcmU= Mjgz IEJydXQ= aW9sYQ== Zm9yZ2U= IE1lZGlldmFs TVNO aWV2ZXJz IFByb2dyYW1taW5n 5Yk= IDIyMw== bXU= IENMRQ== dWdh IHNob3BwZXJz IGluZm9ybWF0aXZl IFBsYW5z IHN1cHBsZW1lbnRhdGlvbg== IFRlc3Rz dHlhcmQ= b2N5dGVz IFZlZ2E= IEd1amFyYXQ= ZXJtYW5lbnQ= RXhjZXB0 IExPVA== YWxsYQ== IEN1bW0= IE9zdw== IHZlbm9t IERlYnQ= IERPV04= IHJldW5pb24= IG11Yw== IFJlbGllZg== IGdlb3A= IPCfmA== YWxvZ3Vl QW50aA== ZWNobw== IGNvcnJvcw== IHJlcGxpY2F0aW9u IEJsYXppbmc= IERhdWdodGVy IGluZmxpYw== IExpbmRzZXk= 2Yg= Mjg0 RXhpdA== IGdsb29t VEFJTg== IHVuZGVybWluaW5n IGFkdmlzaW5n aGlkZGVu IG92ZXJmbG93 IGdvcg== dXJkdWU= IGVjaG9lcw== ZW5oYWdlbg== IGltcHVscw== ZHJ1Zw== Y2FzaA== IGFzeW5j IG1pcmFj YXR0cw== cHVuaw== IHBpdm90 IExlZ2lzbGF0aXZl IGJsb2dnZXJz IENsYXc= c2J1cmc= ZHls IFJlY29tbWVuZA== IHZlcnRl IHByb2hpYml0aW5n IFBhbnRoZXI= Sm9uYXRoYW4= IG9taW4= IGhhdGVmdWw= Mjgx IE9yY2hl IE11cmRvY2g= ZG93bnM= IGFzeW1t R0VS QWx3YXlz IGluZm9ybXM= IFdN IFBvbnk= IEFwcGVuZGl4 IEFybGluZ3Rvbg== SmFt IG1lZGljaW5hbA== IFNsYW0= SVRJRVM= IHJlYWZm IFJp Rkc= U3ByaW5n Ym9vbA== IHRoaWdocw== IG1hcmtpbmdz IFJhcXFh IExhaw== cG9sbA== dHNreQ== IE1vcnR5 IERlZmluaXRpb24= IGRlYnVuaw== ZW5kZXJlZA== IExlb25l YXZlcnM= IG1vcnRnYWdlcw== QXBwYXJlbnRseQ== Tmlj aGF1cw== IFRob3VzYW5kcw== YXVsZA== IG1hc2g= c2hvb3Q= IGRpYXJy IGNvbnNjaW91c2x5 SGVybw== ZWFz IE5hdHVyYWxseQ== IERlc3Ryb3llcg== IGRhc2hib2FyZA== c2VydmljZXM= Um9n IG1pbGxlbm5pYWxz IGludmFkZQ== LSg= IGNvbW1pc3Npb25z IEF1Y2tsYW5k IGJyb2FkY2FzdHM= IGZyb250YWw= IGNyYW5r IEhpc3Rvcmlj IHJ1bW91cnM= Q1RW IHN0ZXJpbA== IGJvb3N0ZXI= cm9ja2V0 44K8 dXRzY2hl IFBJ IDIzMw== IFByb2R1Y2Vy IEFuYWx5dGljcw== IGludmFsdWFibGU= IHVuaW50ZW50aW9u IENZ IHNjcnV0aW4= IGdpZ2c= IGVuZ3VsZg== IHByb2xldGFyaWF0 IGhhY2tz IEhldw== YXJhaw== IFNsaW1l aWVsZGluZw== YWdoZXI= IEVsbGlvdA== IHRlbGVjb20= IDIxOQ== dWx0YW4= IEFyYm9y IFNjb3V0cw== QmFu IGxpZmVzcGFu IGJsYXNw Mzg4 IGp1ZGljaWFyeQ== IENvbnRpbmVudGFs YXNraW5n TWND TEVE IGJhZ2dhZ2U= IFNvcmNlcmVy IHJlbW5hbnRz IEdyaWZmaXRo ZXRzdQ== IFN1YmFydQ== IFBlcnNvbmFsaXR5 ZGVzaWduZWQ= dXNoaW1h YWduYXI= IHJlY29pbA== IHBhc3Npb25z XCI6 IHRlZQ== IGFib2xpdGlvbg== IENyZWF0aW5n amFj IDE5NA== MDE5 IHBpbGxhcnM= cmljaGVk LyI= dGs= IGxpdmVsaWhvb2Q= IHJvYXN0ZWQ= YWhvbg== IEh1dGNo YXNzZXJ0 IGRpdmlkZW5k IGtuaXQ= IGRhdW50aW5n IGRpc3R1cmJhbmNl IHNoYWxl IGN1bHRpdmF0ZWQ= IHJlZnJpZ2VyYXRvcg== TEI= IE5FVA== IGNvbW1lcmNpYWxz IHRoaW5rZXJz NDU1 IGNob3A= QnJvYWQ= IHN1c3BpY2lvbnM= IHRhZ2dlZA== bGlmdGluZw== IHN0eWxpc2g= IFNoaWVsZHM= U2hvcnRseQ== IHRhaWxz QXV0aA== U1RF IEdBTUU= IHNlaXNt IEtpcw== b2xvZ25l IGNvd29yaw== IGZvcmNpYmx5 IHRoeXJvaWQ= IFBC QU5F bWFycmllZA== aG9yc2U= IHBvbHltZXI= IENoYWw= b2Rvcg== REVCVUc= IENvbnRleHQ= IGJsaXNz IHBpbnBvaW50 IE1hdGhlbWF0 bGVncmFt IFdlZWtlbmQ= IGxhYmVsbGVk IGJhcnQ= aXRsZXM= IGVzdHJvZ2Vu 4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU Iic= IHZpc2libHk= IG91dHNpZGVy YWlkYQ== QXJlYQ== IGRpc3NlbWlu IGRpc2hvbmVzdA== IENsb3NlZA== IEJ1bGxldGlu IFJhbXNleQ== c3dvcmQ= IFhJ b3VyY2Vk U2FtZQ== MzQ2 IFJlcGU= IEtvdQ== Y2FrZQ== ZW1pcw== Q2FjaGU= IE1lYW5pbmc= IEVubGlnaHQ= b25vbXk= IG1hbmlmZXN0YXRpb24= c3dvcnRo SmF5 IGNob3Jl w7Zy RHJlYW0= IHNhbmN0aW9uZWQ= IGN1bHR1cmFsbHk= IEFyYQ== TmF2 IHRoZW9sb2dpY2Fs IHN0cnV0 IFZP IEhhbmRib29r IGNvbnN0cnVjdGluZw== IMK2 IEJlbmVmaXRz IFBzeWNob2xvZ2ljYWw= c2Fj 5bg= cG9saWN5 IE1hdHRlcnM= IFJlcG9ydGVk IEJ5dGU= IHZpdHJv IE1haWRlbg== IGxhbQ== IEplbm5pbmdz IGdhcm1lbnQ= IFJ1dGdlcnM= IFN0YWZmb3Jk IFdlbGxpbmd0b24= IGludGVybWl0dA== IG5wbQ== IG9yZGVhbA== IHBsdWdnZWQ= b29taW5n aW5pc2hlZA== ZnJhbWV3b3Jr IHRpbWJlcg== IGNhc3M= IDg1MA== aWxlc3M= IFJlZHV4 NzY4 U3RyZQ== IHN1cnBhc3NlZA== d2hlbA== IHBhcmFsbGVscw== IHZlaWw= IEdJ IFJFU1Q= IHJlYWRpbmVzcw== c29ydA== IG1vZGlmeWluZw== IFNsYXRl cnVmZg== IG1hcmJsZQ== IGluZnJhcmVk IGF1ZGl0b3I= IEZBTlRBU1k= IFBvdmVydHk= IFNQRA== ICIo S3k= UkFZ IGV4ZWN1dGlvbnM= IEJldmVybHk= IE1hcnhpc20= IEJ1cnN0 IEthbGk= ZXN0b25lcw== Q2xlYXJseQ== RWxs 44Gn IFByb2NlZWRpbmdz VG9rZW4= SUZJQw== w7Fh Q2VudHJhbA== IEhhbGV5 IERyYW1h IGZvcm1hdGlvbnM= T1JO Qm9va3M= IGRvbWluYXRpbmc= IEZseWVycw== IENvbXBhbmlvbg== IGRpc2NpcGxpbmVk IFl1Z29zbGF2 IFNwZWxscw== IHZlbmdlYW5jZQ== IGxhbmRsb3Jkcw== TGVu IE9ncmU= YW5vaWE= IHBpZXJjaW5n IGNvbmdyZWc= IHNjb3Jlcg== b2JpYQ== IG5pY2tlbA== IExlYXJucw== IHJlam8= IG1hc3RlcnBpZWNl Rmxhc2g= IGluaGFiaXRlZA== IE9wZW5HTA== IER1ZA== IElDTw== IGFydGVy IHBsdXI= IG1hc3Rlcnk= IGxvbmdzdGFuZGluZw== c3RlZA== IHdpbmVz IHRlbGV2aXNlZA== IFNocmluZQ== IEJheWVybg== IOKTmA== IGVuY2xvc3VyZQ== am9obg== IHByb3BoZXRz IFJlc3VycmVjdGlvbg== IE9yZGVycw== IHVuZXZlbg== cmFscw== IGR3aW5k IExhaA== IFNsb3Zlbg== Mzc4 IGluc2lzdGVuY2U= YWZmbGU= IENsb25l IGhhcmRzaGlw IENvbmdyZXNzbWFu IHBsZWFk IHJldmlld2Vycw== IGN1cmVk IDE5MzU= YXNsZXk= ZmFrZQ== IFRoaW5raW5n eWRpYQ== UEFSVA== IERvdGE= b2l0 IHdoaXBwZWQ= IGJvdW5jaW5n IEhpc3Bhbmljcw== Y29taW5ncw== IGNhbm5hYmlu IENoYW1iZXJz IFphY2s= T3B0aW9uYWw= IGNvYXRz IHByb3dlc3M= IE5vcnRvbg== IHBsYWlubHk= IGZyZWlnaHQ= IGluaGliaXRpb24= IGNsYW0= IDMwMw== a2Vm YWxlaWdo THVrZQ== IHBzeWNobw== YXRvcml1bQ== TUVE IHRyZWF0aWVz IGluZGlzYw== IGRj T1BT IHJlc2lsaWVudA== IEludGVyc3RhdGU= IHNsYWNr IG11bmRhbmU= IGVzdGFibGlzaGVz MzU5 IHN0cmFpbmVk IG5vbmQ= U3Vz IGNhc3Rl YXJhdGU= aWV2aW5n IHVuZmFpcmx5 IHBhcnNlcg== b25pYWw= dXJzaXZl Vmlh IE90dG8= IEF1dGhvcml0aWVz c3Ryb2tl S1I= IE1lcmN5 IGZ1cm5pc2hlZA== IG91dHNldA== IG1ldGlj MTk4Mg== b2xpdGhpYw== IFRlbnQ= b2dpY2Fs IEFpcmNyYWZ0 IGhpZGVz IEJlY2FtZQ== IGVkdWNhdG9ycw== cmVhY2hpbmc= IHZvbGF0aWxpdHk= IHRvZGRsZXI= IE5BU0NBUg== IFR3ZWx2ZQ== IEhpZ2hsaWdodHM= IGdyYXBl IHNwbGl0cw== IHBlYXNhbnQ= IHJlbmVn IE1TSQ== VGVtcA== c3RhcnM= IHRyZWs= IEh5ZGU= YmluZGluZw== IHJlYWxpc20= IG94aWRl IEhvcw== IG1vdW50cw== IGJpdGluZw== IGNvbGxhcHNpbmc= IHBvc3RhbA== IG11c2V1bXM= IGRldGFjaGVk IHJlc3BlY3Rpbmc= IG1vbm9wb2w= IHdvcmtmbG93 IENha2U= VGVtcGxhdGU= IE9yZ2FuaXNhdGlvbg== IHBlcnNpc3RlbmNl MzY5 Q29taW5n QnJhZA== IHJlZHVuZGFudA== IEdUQQ== IGJlbmRpbmc= IHJldm9rZWQ= IG9mZmVuZGluZw== IGZyYW1pbmc= IHByaW50Zg== Q29tbXVu bWVtYmVycw== T3V0c2lkZQ== IGNvbnN0cnVlZA== IGNvZGVk Rk9SRQ== IGNoYXN0 Q2hhdA== SW5kaWFu IFlhcmQ= PyEi IFBvcnRz IFhhdmllcg== IFJFVA== Jy4i IEJvYXQ= aXZhdGVk aWNodA== dW1lcmFibGU= RHM= IER1bm4= IGNvZmZpbg== IHNlY3VyZWx5 IFJhcHRvcnM= IEJlcw== SW5zdGFsbGF0aW9u IGluY2VwdGlvbg== IEhlYWx0aHk= ZW5kYW50cw== IHBzeWNob2xvZ2lzdHM= IFNoZWlraA== Y3VsdHVyYWw= IEJsYWNrQmVycnk= c2hpZnQ= RnJlZA== b2NoZQ== IGNha2Vz IFNFTw== IEdpYW4= IEFzaWFucw== b2dnaW5n ZWxlbWVudA== IHB1bmRpdHM= IFZhdWdo IEdhdmlu IGhpdHRlcg== IGRyb3duZWQ= IGNoYWxr IFppa2E= IG1lYXNsZXM= ODAy 4oCmLi4= IEFXUw== XSI= IGRpc3RvcnQ= IE1hc3Q= IGFudGlib2RpZXM= IE1hc2g= TWVtb3J5 IFVnYW5kYQ== IFByb2I= IHZvbWl0aW5n IFR1cm5z IG9jY3VweWluZw== IGV2YXNpb24= IFRoZXJhcHk= IHByb21v IGVsZWN0cg== IGJsdWVwcmludA== IERyZQ== cHJpY2Vk IERlcG90 IGFsbGV2aWF0ZQ== IFNvbWFsaQ== bWFyZw== bmluZQ== IG5vc3RhbGdpYQ== IFNoZXBoZXJk IGNhdmFscnk= IHRvcnBlZA== IEJsb29keQ== eGI= IHNhbms= IGdvYWx0 cmVwb3J0cHJpbnQ= ZW1iZWRyZXBvcnRwcmludA== Y2xvbmVlbWJlZHJlcG9ydHByaW50 IEluaXRpYWxseQ== IEZpc2NoZXI= IG5vdGV3b3J0aHk= Y2Vybg== IGluZWZmaWNpZW50 cmF3ZG93bmxvYWQ= cmF3ZG93bmxvYWRjbG9uZWVtYmVkcmVwb3J0cHJpbnQ= Y2F0aW9u IER5bmFzdHk= bGFn REVT IGRpc3RpbmN0bHk= IEVzdG9uaWE= IG9wZW5uZXNz IGdvc3NpcA== cnVjaw== V2lkdGg= IElicmFoaW0= IHBldHJvbGV1bQ== IGF2YXRhcg== IEhlZA== YXRoYQ== IEhvZ3dhcnRz IGNhdmVz Njc4 IHNhZmVndWFyZA== IE1vZw== aXNzb24= IER1cmhhbQ== c2xhdWdodA== IEdyYWR1YXRl IHN1YmNvbnNjaW91cw== IEV4Y2VsbGVudA== IER1bQ== LS0tLS0= IHBpbGVz IFdPUks= IEdhcm4= IEZvbA== IEFUTQ== IGF2b2lkcw== IFR1bA== IGJsZWFr RUxZ aXZpc3Q= bGlnaHRseQ== UGVycw== IERvYg== IExT IGluc2FuaXR5 zrU= YXRhbGll RW5sYXJnZQ== IHR3aXN0cw== IGZhdWx0eQ== IHBpcmFjeQ== IGltcG92ZXI= IHJ1Z2dlZA== IEZhc2hpb24= IHNhbmRz Jz8= c3dpY2s= IG5hdGl2ZXM= IGhlbg== IE5vaXNl 44OX IGdyZWVucw== IGZyZWV6ZXI= IGR5bmFzdHk= IEZhdGhlcnM= IE5ld2Fyaw== IGFyY2hhZW9sb2dpY2Fs IG90 b2Jhcg== IGJsb2NrYWRl IGFsbGVyZw== TFY= IGRlYml0 IFJGQw== IE1pbHRvbg== IFByZXNzdXJl IHdpbGxpbmdseQ== IGRpc3Byb3BvcnRpb25hdGU= IG9wcHJlc3NpdmU= IGRpYW1vbmRz IGJlbG9uZ2luZ3M= MTk3MA== IGJlbGxz IGltcGVyaWFsaXNt IDIyNw== IGV4cGxvZGluZw== IEVjbGlwc2U= IDE5MTk= IHJhbnQ= IG5vbWluYXRpb25z MzQ3 IHBlYWNlZnVsbHk= cmljYQ== IEZVQ0s= IHZpYnJhdGlvbg== bWFsaW5r IHJvcGVz IEl2YW5rYQ== IEJyZXdlcnk= IEJvb2tlcg== IE93ZW5z Z29lcnM= U2VydmljZXM= IFNuYXBl IDE5MQ== Mzk1 IDI5OQ== anVzdGljZQ== IGJyaQ== IGRpc2Nz IHByb21pbmVudGx5 IHZ1bGdhcg== IHNraXBwaW5n bHZlcw== IHRzdW5hbWk= Mzc0 IFVydWc= IEVpZA== cmVjYXRlZA== cGhlbg== IGZhdWx0cw== IFN0YXJ0ZWQ= OTUw IHBp IGRldGVjdG9y IGJhc3RhcmQ= IHZhbGlkYXRlZA== U3BhY2VFbmdpbmVlcnM= T1VSQ0U= ICh+ IHVuc3Vy IGFmZmlybWVk IGZhc2Npc20= IHJlc29sdmluZw== IENoYXZleg== IEN5bg== IGRldHJhY3Q= TG9zdA== IHJpZ2dlZA== IGhvbWFnZQ== IEJydW5v NTU1 ZWNh IHByZXNzZXM= IGh1bW91cg== IHNwYWNpbmc= ICcv b2xraWVu Q291bg== T1BFUg== VHJl U29u IENhbWJvZGlh aWVycmU= bW9uZw== b3p5 IGxpcXVpZGl0eQ== IFNvdmlldHM= IEZlcm5hbmRv IDIyOQ== IHNsdWc= IENhdGFsYW4= ZWxlY3RyaWM= IHNjZW5lcnk= IEhlYXJ0aA== IGNvbnN0cmFpbmVk IGdvYWxpZQ== IEd1aWRlbGluZXM= IEFtbW8= IFBlYXJzb24= IHRheGVk IGZldHVz UmVzcG9uc2U= IEFsZXhpcw== dGhpYQ== R3V5 IHJlY29uc3RydWN0 IGV4dHJlbWVz IGNvbmNsdWRpbmc= IFBlZw== b29rcw== IGRlZHVjdGlvbnM= Um9zZQ== IGdyb3VuZGJyZWFraW5n IFRhcmc= 44OB IFJldmU= cmVzb3VyY2U= IG1vb25z IGVsZWN0cm9tYWduZXRpYw== IGFtaWRzdA== IFZpa3Rvcg== TkVTUw== QkFDSw== IGNvbW11dGU= IEFuYWhlaW0= IGZsdWN0dWF0aW9ucw== NjQw IG5vb2RsZXM= IENvcGVuaGFnZW4= IFRpZGU= IEdyaXp6 IFNFRQ== IHBpcGVsaW5lcw== IHNjYXJz ZW5kbw== YWd1cw== IEVURg== LyM= IEJlY29tZQ== NDQ4 IHZpc2M= IFJlY29tbWVuZGVk IGp1bXBlcg== IGNvZ25pdGlvbg== IGFzc2Fzc2lu IHdpdG5lc3Npbmc= IFNldHVw IGxhYw== dmlt SVNN cGFnZXM= U1NM MzU4 IGFkamVjdA== aW5kdXN0cmlhbA== bG9yZQ== Y2hlcnk= IGdsaXR0ZXI= IGNhbGY= RmxvcmlkYQ== IHNwb2lsZXJz IHN1Y2NlZWRz IGNoYW50aW5n IHNsb2dhbnM= IFRyYWN5 VmlzaXQ= cm9sb2d5 IG1vcm5pbmdz IGxpbmVhZ2U= IHNpcA== IGludGVuc2VseQ== IGZsb3VyaXNo IFNsZWVwaW5n IEZlbQ== b3Jwb3I= IEtsYW4= IERhcnRo aGFjaw== IE5pZWxzZW4= IHR1bW9ycw== IHByb2N1cmVtZW50 IFlvcmtzaGlyZQ== IHJhaWRlZA== S1k= QW5uYQ== IC8vWw== IERpc29yZGVy IE11c3Rhbmc= IFdlbg== IFRyeWluZw== c3E= IGRlbGl2ZXJpZXM= IHNodXR0ZXI= IGNlcmVicmFs IGJpcG9sYXI= IENO bGFzcw== amV0 IGRlYmF0aW5n Pjo= IGVhZ2xl Z3JhZGVz IERpeG9u VUdD TUFT IERyYWNv IE1hY2hpbmVz YWZmZXI= IGVtYW4= wrI= cHJvbg== IEd5bQ== IGNvbXBhcmF0aXZlbHk= IFRyaWJ1bmFs UFJP IGxleA== IGZlcnRpbGU= IGRlcHJlc3Npbmc= IHN1cGVyZmljaWFs ZXNzZW50aWFs IEh1bnRlcnM= Z3A= IHByb21pbmVuY2U= TGliZXI= IEFuY2VzdA== b3RlY2hub2xvZ3k= IG1vY2tpbmc= IFRyYWZm lpo= TWVkaXVt SXJhcQ== IHBzeWNoaWF0cmlzdA== UXVhbnRpdHk= IExlY3Q= IG5vaXN5 NTIw R1k= IHNsYXBwZWQ= IE1UVg== IHBhcmE= cHVsbA== TXVsdGlwbGU= YXNoZXI= IG5vdXI= IFNlZw== U3BlbGw= dm91cw== b3JkaWFs U2VuaW9y IEdvbGRiZXJn IFBsYXNtYQ== bmVlZA== IG1lc3Nlbmdlcg== ZXJldA== IHRlYW1lZA== IGxpdGVyYWN5 IExlYWg= IERveWxl IGVtaXR0ZWQ= VVg= IGV2YWRl IG1hemU= IHdyb25nbHk= IExhcnM= IHN0ZXJlb3R5cGU= IHBsZWRnZXM= IGFyb21h IE1FVA== IGFjcmU= IE9E IGZm IGJyZXdlcmllcw== IEhpbHRvbg== dW5kbGU= IEthaw== IFRoYW5rZnVsbHk= IENhbnVja3M= aW5jdGlvbnM= IEFwcGVhcnM= IGNvZXI= IHVuZGVybWluZWQ= cm92ZXJz QW5kcmU= IGJsYXpl dW1lcnM= IGZhbWluZQ== YW1waGV0YW1pbmU= dWxrYW4= QW1vdW50 IGRlc3BlcmF0aW9u d2lraXBlZGlh ZGV2ZWxvcG1lbnQ= IENvcmludGg= dXNzaWE= SmFja3Nvbg== TEk= TmF0aXZl UnM= T2hpbw== IEthdGhsZWVu Rm9ydHVuYXRlbHk= IGF0dGVuZGFudA== IFByZWZlcnJlZA== IERpZG4= IFZz TWlz IHJlc3BvbmRlbnQ= IGJvdW4= c3RhYmxl IHBhdmVk IHVuZXhwbA== IENoZW5leQ== TE0= IEN1bGw= Ymxvd24= IGNvbmZyb250aW5n b2Nlc2U= c2VydmluZw== V2k= IExpdGh1YW5pYQ== YW5uaQ== IHN0YWxr aGQ= IHZlbmVy QVBI eW5jaHJvbm91cw== VVJS dW1hYmx5 aGlzdG9yaWM= SGFsZg== SGF5 IHJlc2lsaWVuY2U= c3BlY3Rpb24= IGFiYW5kb25pbmc= T2Jz IERlYmJpZQ== IGdyYWRpZW50 IFBsYWludA== IENhbmFs QVJDSA== IGV4cGFuc2l2ZQ== IGZ1bmc= IGJvdW5jZWQ= VW5k IHByZWNhdXRpb25z IGNsYXJpZmljYXRpb24= IGRhZ2dlcg== IGdyaXBz IMK1 IFJpdmVyYQ== IFVuZGVhZA== aXNpdGVz IEZJUlNU w7Fv YXVkaQ== IGhvc3RhZ2Vz IGNvbXBsaWFudA== IGFsdW1uaQ== U2V2ZW4= IGN5YmVyc2VjdXJpdHk= ZWl0aGVy Q29sbGVjdA== IGludmFyaWFibHk= IFNvY2k= IGxhd21ha2Vy IGFsZQ== IFBlcnNvbmFsbHk= TmF6aQ== IGN1c3RvbWl6YXRpb24= IFByb2M= IFNhc2thdGNoZXdhbg== ZWF0dXJpbmc= IHNwYXJlZA== IGRpc2NvbnRpbnVlZA== IGNvbXB1dGF0aW9uYWw= IE1vdG9yb2xh IHN1cHJlbWFjaXN0 Z292ZXJubWVudGFs IHBhcmFkaXNl IERvd25pbmc= IE5pa29u IGNhdGFseXN0 YmVycmE= VG9yb250bw== ODc1 YmV0YQ== IE1hY3Jvbg== IHVucmVhbGlzdGlj dmVjdG9y IFZlaGljbGVz aXRpdmVuZXNz IFJW IENvbGJlcnQ= c2lu b2pp ZW50aW4= IEtyaXNo aGVsbG8= ZmZpZWxk b2t5 IFRhdGU= IG1hcGxl IGFpZHM= Y2hlbWljYWw= MzM0 bnV0cw== IFdhcnA= IHh4 IFJvYmI= dW1lcm91cw== Xy1f ZnRpbWU= IFZX IHdpbmdlcg== IERvbWU= dG9vbHM= IFBW IEdlb3JnZXRvd24= IGdlYXJlZA== IGppaGFkaXN0cw== IGNw IHN0ZXJvaWRz TW90aGVy Y2xlcm9zaXM= IERSTQ== bmVzaWE= IGxpbmdlcg== IGltbWVyc2l2ZQ== IENPVU4= IG91dHdlaWdo ZW5zdWFs QmFuZA== IHRyYW5zZm9ybXM= bWF0Y2hlZA== cHNvbnM= IEp1ZGljaWFs ZmFjdG9y IHJlZmVycmFs IG9kZGx5 IFdlbmdlcg== QnJpbmc= IEJvd3M= NjAy SUNMRQ== IGxpb25z IEFjYWRlbWlj IFRob3Ju IFJhaWRlcg== a2VmZWxsZXI= U3RvcmFnZQ== TG93ZXI= IE9ydA== IEVxdWFsaXR5 QUxU IFNPQw== VHlwZXM= IGx5bg== IEFzc2V0 Y29hdA== VFBQ Q1ZF IFBpb25lZXI= YXBwbGljYXRpb24= TW9kZXJu IEhL RW52aXJvbm1lbnQ= QWxyaWdodA== UmFpbg== SVBQ IFNoaWl0ZQ== IG1vdW5k IEFiaWxpdGllcw== Y29uZGl0aW9u U3RhZmY= IGNvbXBldGVuY2U= IE1vb3I= IERpYWJsbw== IHdpdGhoZWxk IG9zdGVuc2libHk= IEJyb20= IG1zZw== IGRlbm9taW4= IFJlZmVyZW5jZXM= IEZQ IHBsdW5nZWQ= IHBhbXBo bW92aW5n Y2VudHJhbA== IGRvd25yaWdodA== IGZhZGluZw== VGFs VHlw IFRoeQ== dWtlcw== aXRoZQ== IG92ZQ== IGJhdHRsZWQ= IHNlYWZvb2Q= IGZpZ3Vy IFJE Y3JvcA== IHNxdWFkcw== e1w= 4Lk= IEVo IGludGVydmlld2luZw== IFFpbg== IGFzcGlyaW5n UExJQw== IGNsYXVzZXM= IEdhc3Q= IE5pcg== IGx1Z2dhZ2U= IGhvc2U= IHN5c3RlbWQ= IGRlc2NlbmRpbmc= IFJldmlzZWQ= IFJhaWxz YWxpZ24= NzA5 MzM3 IGZ1Zw== Y2hhcmdpbmc= dGFncw== IHV0ZXI= a2lzaA== V0FSTklORw== NDkw cHJvZml0cw== IHZveWFnZQ== IGFjZQ== IFZhbmd1YXJk IFRhbmtz IE11aw== IDIyNg== U2FmZQ== QXJtb3I= IHZvbGNhbmlj IHdvbWI= IE1JTA== IGJlZ2lubmVy IFJlY29nbg== IEFBUA== UExBWQ== KSE= IGRldGVjdGluZw== Y24= IGJyZWFjaGVz QmFzaWNhbGx5 IFBhZw== IE11bmljaXBhbA== IEluZGll IExhZg== IERpc2FibGU= IE9sc29u IHJlc3RyYWluZWQ= IHJ1bGluZ3M= IGh1bWFuZQ== ZXZlbnRz IENpbmVtYQ== ZGlzcGxheVRleHQ= IEhhdGNo YWN0aW9uRGF0ZQ== b25uYWlzc2FuY2U= IGFzc2F1bHRpbmc= IEx1Zw== Q0hBVA== IHZpZ29yb3Vz IFBlcnNl IGludG9sZXJhbmNl IFNuYXBjaGF0 IFNoYXJrcw== IGR1bW15 IERpYWdu IEd1aXRhcg== aW1ldGVycw== NDAz UkVH QXg= IHNlcGFyYXRlcw== IE1haG0= IHR2 amFo T09M Q2lyYw== IFdpbmRzb3I= dXNzaWFu IGludHVpdGlvbg== IGRpc2RhaW4= IERvbm92YW4= IDIyMQ== RW1i IGNvbmRlbW5pbmc= IGdlbmVyb3NpdHk= enp5 IHBhbnRpZXM= IFByZXZlbnQ= QWN0aW9uQ29kZQ== QU5B MzQy ZXh0ZXJuYWxBY3Rpb25Db2Rl IHNwZWNpZnlpbmc= IGNyeXN0YWxs SmVyZQ== IHJ1cHQ= IEFwcHJlbnRpY2U= IHByb2ZpbGluZw== 0Lo= U3RyaWtl IHNpZGVsaW5l IG9ibGlnYXRlZA== IG9jY3VsdA== IGJ1cmVhdWNyYXRpYw== YW50aWNhbGx5 cnVwdGVk bmVnYXRpdmU= IEV0aGlvcGlh IENpdmlj IGluc2lkZXJz ZWxpZ2libGU= IFRWcw== IEJBUg== IFRJ aW9sb2dpc3Q= IEFJUg== IHN1YnN0aXR1dGVk QXJhYg== IFNhdWw= IFlvZw== cHJlbQ== IGJ1aWxkZXJz IHN0YXRpb25hcnk= IGRvdWJ0ZnVs IHZpZ29yb3VzbHk= IHRocmlsbGluZw== UGh5c2ljYWw= IENhcmV5 IEh5ZHJh Z2VvbmluZw== IFNseQ== eXRvbg== IGJvcnJvd2Vycw== IFBhcmtpbnNvbg== IOs= IEphbWFpY2E= IHNhdGly IGluc3VyZ2VudHM= IEZpcm0= IGlzb3Q= IEthcm4= b3VybmluZw== YWtlbnM= ZG9jcw== bGl0dGxl IE1vbmFjbw== Q0xBU1M= VHVya2V5 THk= IENvbmFu YXNzaWM= IHN0YXJyZWQ= IFBhY2Vycw== ZXRpZXM= IHRpcHBpbmc= TW9vbg== IFJ3 c2FtZQ== IGNhdml0eQ== IGdvb2Y= IFpv U2hvY2s= dW1tZXI= IGVtcGhhc2l6ZXM= IHJlZ3JldHQ= IG5vdmVsdHk= IGVudnk= IFBhc3NpdmU= cnc= NTA1 IGluZGlmZmVyZW50 IFJpY2E= IEhpbXNlbGY= IEZyZWRkaWU= IGFkaXA= 5LiA IGJyZWFrb3V0 IGh1cnJpZWQ= IEh1YW5n IERpc2s= IHJvYW1pbmc= Pz8/Pz8tPz8/Pz8t VVY= IFJpY2t5 IFNpZ21h IG1hcmdpbmFsaXplZA== IGVkaXRz IDMwNA== bWVtb3J5 IHNwZWNpbWVu Mjkz 44Gv IHZlcnRpY2FsbHk= IGF1ZGl0aW9u IEhlY2s= IGNhc3Rlcg== IEhvbGRpbmdz YWRhbA== IENyb24= IExpYW0= IGRlZmxlY3Q= UGljaw== IERlYnVn UkVG IHZlcnNhdGlsaXR5 b3RoZXM= Y2xhc3NpZmllZA== IE1haGFy IEhvcnQ= Q291bnRlcg== c3Rhc3k= bm90aWNlZA== MzMx IFNoaW0= ZnVjaw== IEJpZQ== IGFpcmluZw== IFByb3RlaW4= IEhvbGRpbmc= IHNwZWN0YXRvcnM= aWxpYXRlZA== IFRoYXRjaGVy bm9zaXM= 44O844Oz VGVsZQ== Qm9zdG9u IFRlbXBs c3RheQ== IGRlY2xhcmF0aW9ucw== NDc5 Vm9sdW1l IERlc2lnbmVy IE92ZXJ3YXRjaA== aWRhZQ== IG9ud2FyZHM= IG5ldHM= IE1hbmlsYQ== cGFydGljdWxhcmx5 IHBvbGl0aWM= b290aGVy IHBvcnRyYWl0cw== IHBhdmVtZW50 Y2ZmZmY= IHNhaW50cw== IGJlZ2lubmVycw== RVNQTg== IHNob3J0Y29taW5ncw== 4pWQ4pWQ IGNvbWV0 IE9yZ2FuaWM= cXVlbA== IGhvc3BpdGFsaXplZA== QnJlYWs= IHBlZWw= ZHlsaWI= YXNweA== dXJhbmNlcw== IFRJTQ== UGc= IHJlYWRhYmxl IE1hbGlr IG11enpsZQ== IGJlbmNobWFya3M= ZGFs IFZhY2M= IEhpY2tz NjA5 IEJpYmxpY2Fs aGVuZw== IG92ZXJsb2Fk IENpdmlsaXphdGlvbg== IGltbW9yYWw= IGZyaWVz 44KS IHJlcHJvZHVjZWQ= IGZvcm11bGF0aW9u anVn aXJleg== Z2Vhcg== IGNvYWNoZWQ= TXBTZXJ2ZXI= IFNK IEt3 SW5pdA== ZGVhbA== IE9ybw== IExva2k= IFNvbmdz IDIzMg== IExvdWlzZQ== YXNpb25hbGx5 IHVuY29uZA== b2xseXdvb2Q= IHByb2dyZXNzaXZlcw== IEVub3VnaA== IERvZQ== IHdyZWNrYWdl IGJydXNoZWQ= IEJhc2VUeXBl IHpvbmluZw== aXNoYWJsZQ== aGV0aWNhbGx5 IENhdWN1cw== IEh1ZQ== IGthcm1h IFNwb3J0aW5n IHRyYWRlcg== IHNlZW1pbmc= IENhcHR1cmU= NDMw YmlzaA== IHR1bmVz IGluZG9vcnM= IFNwaGVyZQ== IERhbmNpbmc= VEVSTg== IG5vYg== IEdTVA== bWFwcw== IHBlcHBlcnM= Rml0 IG92ZXJzZWVz IFJhYmJp IFJ1bGVy dmVydGlzaW5n b2ZmaWNl eHh4 IHJhZnQ= Q2hhbmdlZA== IHRleHRib29rcw== TGlua3M= IE9tbg== 44CR IGluY29udmVuaWVuY2U= IERvbmV0c2s= PX4= IGltcGxpY2l0bHk= IGJvb3N0cw== IEJvbmVz IEJvb20= Q291cnRlc3k= IHNlbnNhdGlvbmFs QU5Z IGdyZWVkeQ== ZWRlbg== IGluZXhwZXI= IExlcg== IFZhbGU= IHRpZ2h0ZW4= IEVBUg== IE51bQ== IGFuY2VzdG9y U2VudA== IEhvcmRl dXJnaWNhbA== YWxsYWg= IHNhcA== YW1iYQ== IFNwcmVhZA== dHdpdGNo IGdyYW5kc29u IGZyYWN0dXJl IG1vZGVyYXRvcg== IFNldmVudGg= IFJldmVyc2U= IGVzdGltYXRpb24= Q2hvb3Nl IHBhcmFjaA== IGJhcnJpYw== 44CQ IGNvbXBhc3M= IGFsbGVyZ2lj 4oCV T1RIRVI= ZXJyaWxsYQ== IHdhZ29u IHppbmM= IHJ1YmJlZA== IEZ1bGxlcg== IEx1eGVtYm91cmc= IEhvb3Zlcg== IGxpYXI= IEV2ZW5pbmc= IENvYmI= ZXN0ZWVt IHNlbGVjdG9y IEJyYXds aXNhbmNl IEVr IHRyb29w IGd1dHM= IEFwcGVhbA== IFRpYmV0YW4= IHJvdXRpbmVz IE1lbnQ= IHN1bW1hcml6ZWQ= c3RlYW1hcHBz IHRyYW5xdQ== IDE5Mjk= b3Jhbg== IEF1dGhlbnQ= IGdtYXh3ZWxs IGFwcHJlaGVucw== IHBvZW1z IHNhdXNhZ2U= IFdlYnN0ZXI= dXJ1cw== IHRoZW1lZA== IGxvdW5nZQ== IGNoYXJnZXI= U3BvaWxlcg== IHNwaWxsZWQ= aG9n IFN1bmRlcg== IEFpbg== IEFuZ3J5 IGRpc3F1YWw= IEZyZXF1ZW5jeQ== IEV0aGVybmV0 IGhlbHBlcg== UGVyY2VudA== IGhvcnJpZnlpbmc= IGFpbA== IEFsbGFu RUVF IENyb3NzaW5n NDQ5 IGhvbG9n IFB1enpsZXM= IEdvZXM= ZXJlbm4= NjA0 44GP IFJhZmFlbA== IGF0dGVu IEVtYW51ZWw= IHVwcm8= IFN1c3A= UHN5Y2g= IFRyYWluZXI= IE5FUw== IEh1bnRz YmVjdWU= IGNvdW5zZWxvcg== UnVsZQ== IHRveGlucw== IGJhbm5lcnM= cmlmaWNl IGdyZWV0aW5n IGZyZW56eQ== IGFsbG9jYXRl ICop ZXhwcg== NTAz IENoaWNr IFRvcm4= IGNvbnNvbGlkYXRpb24= IEZsZXRjaGVy c3dpdGNo ZnJhYw== Y2xpcHM= IE1jS2lu IEx1bmFy TW9udGg= SVRDSA== IHNjaG9sYXJseQ== cmFwZWQ= Mzk4 IDE5MTA= IGVncmVn IGluc2VjdXJl IHZpY3RvcmlvdXM= Y2ZmZmZjYw== IHNpbmdsZWQ= IGVsdmVz IFdvbmQ= YnVyc3Q= IGNhbW91Zmw= IEJMQUNL IGNvbmRpdGlvbmVk 54k= YW5zd2VyZWQ= IGNvbXB1bHNvcnk= YXNjaXN0 IHBvZGNhc3Rz IEZyYW5rZnVydA== Ym5i IG5lb2xpYmVyYWw= IEtleWJvYXJk IEJlbGxl d2FybQ== IHRydXN0cw== IGluc3VyZWQ= IEJ1Y2M= dXNhYmxl NjA3 IFBsYWlucw== IDE4OTA= IHNhYm90YWdl IGxvZGdlZA== ZmVsdA== IGdh IE5hcmM= IFNhbGVt IHNldmVudHk= IEJsYW5r cG9ja2V0 IHdoaXNwZXI= IG1hdGluZw== b21pY3M= IFNhbG1hbg== IEthZA== IGFuZ2VyZWQ= IGNvbGxpc2lvbnM= IGV4dHJhb3JkaW5hcmlseQ== IGNvZXJjaW9u R2hvc3Q= YmlyZHM= 6IA= a29r IHBlcm1pc3NpYmxl YXZvcmFibGU= IHBvaW50ZXJz IGRpc3NpcA== YWNp IHRoZWF0cmljYWw= IENvc21pYw== IGZvcmdldHRpbmc= IGZpbmFsaXplZA== 5aSn eW91dA== bGlicmFyeQ== IGJvb21pbmc= IEJlbGlldmU= IFRlYWNoZXI= IExpdg== IEdPT0RNQU4= IERvbWluaWNhbg== T1JFRA== IFBhcnRpZXM= IHByZWNpcGl0YXRpb24= IFNsb3Q= Um95 IENvbWJpbmVk IGludGVncmF0aW5n IGNocm9tZQ== IGludGVzdGluYWw= IFJlYmVsbA== IG1hdGNodXBz IGJsb2NrYnVzdGVy IExvcmVu IExldnk= IHByZWFjaGluZw== IFNlbmRpbmc= IFB1cnBvc2U= cmF4 Zmlm IGF1dGhvcml0YXRpdmU= IFBFVA== YXN0aWNhbA== IGRpc2hvbg== IGNoYXR0aW5n ICIkOi8= Q29ubmVjdGlvbg== IHJlY3JlYXRl IGRlbGlucXU= IGJyb3Ro IERpcnR5 IEFkbWlu em1hbg== IHNjaG9sYXJzaGlwcw== IDI1Mw== Y29udGFjdA== YWxzYQ== NzY3 Y3JlZW4= YWJiYWdl IDE5MTU= IGJsZW5kZWQ= IGFsYXJtZWQ= TGFuZ3VhZ2U= MzU2 IGJsZW5kcw== IENoYW5nZWQ= V29sZg== IGhlcGF0 Q3JlYXRpbmc= IHBlcnNlY3V0 IHN3ZWV0bmVzcw== YXJ0ZQ== IGZvcmZlaXR1cmU= IFJvYmVydG8= aW1wcm8= TkZM IE1hZ25ldA== RGV0YWlsZWQ= IGluc2lnbmlmaWNhbnQ= IFBPTElU IEJCUQ== IENQUw== IHNlYXc= YW1pbmVy bUw= ZW5kaWY= ZmluYWxz IDI2NQ== dWlzaA== IH0p IFByb2JsZW1z IGVtYmxlbQ== IHNlcmlvdXNuZXNz IHBhcnNpbmc= IHN1YnN0aXR1dGlvbg== IHByZXNzdXJlZA== IHJlY3ljbGVk YWxlYg== UnVieQ== IHByb2ZpY2llbmN5 RHJpdmVy IFdlc3Rlcg== Oic= QUZUQQ== IG1hbnRsZQ== IENsYXl0b24= ZmxhZw== IHByYWN0aXRpb25lcg== Y292ZXJlZA== IFN0cnVjdA== YWRkYWZp NDI1 IFRvd25zaGlw IEh5ZHJv TG91aXM= MzQz IGNvbmRv IFRhbw== IHV0aWxpemF0aW9u IG5hdXNlYQ== IERlbXM= cmlkZ2Vz cGF1c2U= IGZvcm11bGFz IGNoYWxsZW5nZXI= Mzc2 IGRlZmVjdGl2ZQ== IFJhaWx3YXk= IFB1Yk1lZA== IHlvZ3VydA== bGJz IE5vcmZvbGs= T1BF IE1vb2R5 IGRpc3RyaWJ1dG9y IHNjcm9sbHM= IGV4dHJhY3Rz U3Rhbg== IHZpYWJpbGl0eQ== IGV4cG9zZXM= IHN0YXJ2YXRpb24= IFN0ZXBz IERvZGQ= ZmV3 U1RE MzMy IGNsb3N1cmVz IGNvbXBsZW1lbnRhcnk= IFNhc2hh dW1weQ== IG1vbmV0 IGFydGljdWxhdGU= IERvY3Q= a2lsbGVy IHNjcmlt IDI2NA== IHByb3N0aXR1dGVz IHNldmVyZWQ= IGF0dGFjaG1lbnRz IGNvb2xlZA== TGV2 IEZhbGs= ZmFpbA== IHBvbGljZW1hbg== IERhZw== IHByYXllZA== IEtlcm5lbA== IGNsdXQ= IGNhdGg= IGFub21hbHk= U3Rvcm0= ZW1ha2Vy IEJyZWFrZmFzdA== dWxp b2lyZQ== Sko= aHo= T3BlcmF0aW9u IFNpY2s= MzU0 IEd1YXRlbWFsYQ== UmF0ZQ== IGV4cG9zdXJlcw== ZmFjZXM= IEFyY2hhZQ== cmFm IE1pYQ== IDIwMjU= IG9wYXF1ZQ== IGRpc2d1aXNlZA== IEhlYWRxdWFydGVycw== U2Fo IHBvdHM= OTc4 IE1hbGY= IGZyb3duZWQ= IHBvaXNvbm91cw== IENvbnZlcnM= ZWVrcw== IGNyYWI= LiIi IHRyZWFzb24= IHJhbmM= IGVzY2FsYXRpbmc= IHdhcnI= IG1vYnM= IGxhbXBz IFN1bnNoaW5l IEJydW5zd2ljaw== UGhvbmVz IHNwZWxsZWQ= IFNraXA= IDIwNTA= IDE5MTE= IFBsdXRv IEFtZW5k IG1lYXRz Mzg3 IHN0b21w IFpob3U= IExldmlhdGhhbg== IEhhemFyZA== YWR2 IE9yd2VsbA== IGFsb3Vk IGJ1bXBlcg== IEFuYXJjaA== dWJ1bnR1 IFNlcmlvdXM= Zml0dGluZw== IE9wdGlvbmFs IENlY2ls UkVBTQ== IHNlcm90b25pbg== IGN1bHRpdmF0ZQ== YWdvZ3Vl fVw= IG1vc3F1ZXM= IFN1bm55 IHJlYWN0aXZl cmV2b2x1dGlvbg== IEx1cA== IEZlZG9yYQ== IGRlZmVuc2VtYW4= IFZJRA== aXN0aW5l IGRyb3duaW5n IEJyb2FkY2FzdGluZw== IHRocmlsbGVy IFNjeQ== IGFjY2VsZXJhdGluZw== IGRpcmVjdHM= b2RpZWQ= YmlrZQ== ZHVyYXRpb24= IHBhaW5mdWxseQ== UmVkZA== IHByb2R1Y3Rpb25z IGdhZw== IHdoaXN0 IHNvY2s= IGluZmluaXRlbHk= IENvbmNlcm4= IENpdGFkZWw= IGxpZXU= IGNhbmRsZXM= b2dlbmVvdXM= YXJnZXI= IGhlYXZlbmx5 aW5mbGFtbWF0b3J5 UGVyZm9ybWFuY2U= Q3M= cnVjdG9zZQ== YXpha2k= IHBlc3NpbQ== IGluZmVyZW5jZQ== IHBvd2Q= IFpvZQ== IHBhaW50cw== IGRheno= cHRh LS0tLS0tLS0tLS0= IGluc3Bpcg== IEV4cGVyaW1lbnRhbA== IEtuaWZl cmVnb3I= Ym9ycw== IHNob3dlcnM= cm9tZWRh IHNhaW50 IGJlbmlnbg== IEppYW5n IGVudmlzaW9uZWQ= IHNocm91ZA== SUZU SE8= IHNodWZm IElDQw== IHNlZ3JlZw== IHJldmlzaXQ= aWdodGhvdXNl TGk= IHN1YnN0cmF0ZQ== IFNlYXM= IFJld2FyZA== IEhlcA== IEJyYXNz c2Jt IGVsaW1pbmF0ZXM= IHN0YW1pbmE= IFZBVA== IExvYW4= IGNvbnN0cmFpbnQ= IGFwcHJvcHJpYXRlZA== IHBlcw== IEFMRQ== cmFuZ2luZw== IDQwNA== Mzky IGludGVsbGVjdHVhbHM= YWNodQ== IHJlc3RydWN0dXJpbmc= IExldmlu IHJ1bmVz IGRlbGlnaHRmdWw= IGNhcmJvaHlkcmF0ZXM= IE1vZGVscw== IEV4cG8= IHRyYW5zcG9ydGluZw== YWxsb2M= IHJpbmdpbmc= U2Ftc3VuZw== IHNjYXJjZWx5 IFVSTHM= IE1BUw== IHByb3RvdHlwZXM= IG5hcnJhdG9y IENQVXM= Y2Ru IEJhcnRvbg== IGRlY2lkZWRseQ== IFNodQ== aXhpcg== b2Npb3Vz IE15c3Q= TmludGVuZG8= IHJldXNl IGZvcmdpdmVu RmV3 aW5pY2Fs bmF0 IHNlYW1sZXNz IEV2YQ== IEVWRQ== IEpP bGFuZGVycw== IHNvZnRlcg== bmVnaWU= IHRyYW5zaWVudA== IG9yYml0YWw= IGZ1bGZpbA== IEtvbQ== SG9wZWZ1bGx5 IGR5bmFtaWNhbGx5 IEh1bmdlcg== 5Zs= IEFybWVuaWE= ZWxtYW4= YmVydG8= IHBpZ2U= IElEcw== bGltaXQ= IHZlaW5z IHNvYXJpbmc= cGFja3M= R29sZGVu IENyYWI= aXN0b3I= IFJQTQ== ICQk Z3Jlc3Npb24= IGppaGFkaXN0 IGdhbWJsZQ== IGNhcmVn IGluZmxhdGVk RmFjZQ== IEZpcmVhcm1z IEVtbWFudWVs 4p0= IHNob2Nrcw== Z3JhYg== IHNwbGVuZA== IEhQVg== YWJvcnRpb24= QWJvdmU= RW50aXR5 cGxheWVycw== IGNvbW1lbmNlZA== dWxlbmNl IGZ1bGZpbGxtZW50 IGVtYm9kaW1lbnRz IFdlbGZhcmU= IGhhaWw= IDxA dHRlbg== IGNhdGNoZXI= IEphemVlcmE= IHZvbGNhbm8= IHN0YWJpbGl6ZQ== IEhhbmRsZXI= IGludGVuc2lmaWVk IEFicmFtcw== IGh1bWlsaWF0aW9u cGFjZWQ= NjA1 IENlbnRPUw== U3BlY2lmaWM= IGhlZWQ= IENBTQ== IEdhbGlsZQ== RGll IGFib2xpc2hlZA== IFRob21zb24= IFRlYWNoZXJz IFdhc3M= am9uZw== IElTQk4= IEFsbGllcw== c2hha2U= 5bc= dmljdA== SG93YXJk IGRlZW0= IGV4Y2VlZGluZ2x5 IFNtYXJ0c3RvY2tz aWJl IGRvb3J3YXk= IGNvbXBldGVk aWdtYXQ= IG5hdGlvbmFsaXN0cw== IGdyb29t IEtlZW4= IGRpc3Bvc2FibGU= ZGVjbA== IFRvbGtpZW4= IFNjaGVtZQ== IGJpb2Q= IGF2aWQ= IEVsb24= YWdhcg== IFRTQQ== Um9tYW4= IGFydGlmaWNpYWxseQ== IGFkdmlzb3Jz WEw= IEluZmVybm8= MzY2 IHRlZGlvdXM= IFBob3RvZ3JhcGh5 IENhcnJpZQ== IHRyb3Bl IFNhbmRyYQ== IGRlY2ltYWw= UXVlZW4= IEd1bmRhbQ== IE9N b3RlY2g= TkJB IDE5MzI= IGVudHJlbmNoZWQ= IE1hcmlvbg== IGZyYXRlcm5pdHk= TGFib3Vy SGVucnk= IGxhdGl0dWRl RWl0aGVy IGVuaGFuY2Vz IFBvdGVudGlhbA== IHNoaW5lcw== aWRhZA== IGJyZWFkdGg= IGNhcGFjaXRpZXM= IPCfmYI= IEJyb254 IHNleGVz IGRpZmZlcmVudGlhdGlvbg== IGhlYXZ5d2VpZ2h0 IFRhag== ZHJh IG1pZ3JhdGU= IGV4aGF1c3Rpb24= IFJVTg== ZWxzaXVz IEN1b21v IGd1aXRhcnM= IGNsb25lcw== IFNvbWV3 IFByeQ== LS0tLS0tLS0tLS0tLQ== IHdhcnJhbnRlZA== Y3ljbGVz IHNhbHZhZ2U= IGRpc2tz UkFOVA== IE5HT3M= IE1hcnRpYW4= IjpbeyI= IGFkZGljdHM= b2p1cmU= aWxsZXQ= IGFtYXppbmdseQ== YXJ0bWVudHM= cGl4ZWw= IEdQVXM= TGF5b3V0 6KM= IFRhbWls IEJhc2ls IGltcGFydGlhbA== IFN0cnVjdHVyZQ== Zm9yaw== YnJ5Y2U= IHJpZGdl IEhhbWJ1cmc= cmlvdXM= IGJsaXR6 Y2lnYXJldHRlcw== IGNhbm5lZA== NDAy IGlyb25pY2FsbHk= IGNvbXBhc3Npb25hdGU= IEhhd2tpbnM= LiM= IENhdGhlZHJhbA== IHJhbGxpZWQ= aW50ZXJuYWw= IHF1b3Rh c3Rha2Vz VEVYVA== bW9t IGNvbXBsZXRlcw== IDIzOA== IHNocnVn 44OR IE5pbnRo IHJldmlzZQ== IFByb3ZpZGVy IHRyZWFjaGVy IHF1YXNp IFBSRVM= IGRlcG9zaXRpb24= IGNvbmZpZGVudGlhbGl0eQ== aXNzb3Jz IGltYmFsYW5jZQ== IHNwYW5uaW5n IGFuZ3VsYXI= IEN1bA== Y29tbXVuaWNhdGlvbg== IE5vcmE= IEdlbml1cw== b3B0ZXI= IHNhY2tlZA== U3BvdA== IGZpbmVseQ== IENIUg== Mjgy d2F2ZXM= UGFsZXN0 IFJvaGluZw== Tkw= 6L8= IHNoaXR0eQ== IFNjYWxpYQ== NDc1 UHJvZ3Jlc3M= IHJlZmVyZW5jaW5n IGNsYXNzcm9vbXM= YWJlZQ== IHNvZA== aGVzaW9u NzA4 IFp1Y2tlcmJlcmc= IEZpbmlzaA== IFNjb3RpYQ== IFNhdmlvcg== IEluc3RhbGxhdGlvbg== YW50aGE= KC0= IDMwMg== IFB1bms= IGNyYXRlcg== eW91dHU= IHJvYXN0 IGluZmx1ZW5jaW5n IGR1cA== IEpS IEdyYXY= IHN0YXR1cmU= IGJhdGhyb29tcw== QXNpZGU= V2lraQ== bWVhbg== IFphaw== IE9uZXM= IE5hdGg= IGh5cGVydA== IGNvbW1lbmNlbWVudA== Q2l2aWw= IG1vZGVyYXRlbHk= IGRpc3RyaWJ1dG9ycw== IGJyZWFzdGZlZWRpbmc= IDk4MA== IFNpaw== IENpZw== IEFNRVI= UklQ IENhcmVlcg== dXN0aW5n IG1lc3NlZA== IGVo IEplbnNlbg== LyQ= IGJsYWNrbWFpbA== IGNvbnZlcnNpb25z IHNjaWVudGlmaWNhbGx5 IG1hbnRyYQ== cGF5aW5n IGl2b3J5 IENvdXJ0cw== T1VHSA== YXVudGxldA== U2VyaWFs QnJvdw== IEh1bmRyZWRz MzIz IHBlZQ== IGxpbnV4 IHN1Ym1lcg== IFByaW5jaXBhbA== NDg1 IERTTA== IENvdXNpbnM= IGRvY3RyaW5lcw== IEF0aGxldGljcw== IDMxNQ== IEthcm1h IGF0dGVudA== dXJnZXI= IHByZXNjcmliZQ== IGVuY2Fwcw== IENhbWU= IHNlY3JldGl2ZQ== IENyaW1lcw== ZG4= Q2xlYW4= IEVneXB0aWFucw== IENhcnBlbnRlcg== IGxs SHVt IE1pbG8= IGNhcGl0YWxpc3Rz IGJyaWVmZWQ= VHdl IEJhc2lu ZWx2ZXQ= TW9z IHBsdW5nZQ== IEthaXNlcg== IEZ1ag== aWxsaW4= IHNhZmVndWFyZHM= IG9zdGU= IE9wcG9ydHVuaXR5 IE1hZmlh IENhbGxpbmc= YXBh dXJiYW4= YnJ1c2g= aWxsYXJk Y8Op aW50ZWxsaWdlbmNl IExvYg== IERydWlk IHNtb290aGVy IGZvb3Rpbmc= IG1vdG9yaXN0cw== YXJjaXR5 IG1hc2N1bGluaXR5 IG1pc20= IGFiZG9taW5hbA== IFRhdmVybg== IFJvaA== IGVzY2FwZXM= c2lnbmVk QW50aG9ueQ== IHNhY3JpZmljaW5n IGludGltYWN5 IGFudGVyaW9y IEtvZA== IG1vdGlm IGdyYXo= IHZpc3VhbGl6YXRpb24= IGd1aXRhcmlzdA== IFRyb3Rza3k= bWFnaWM= RGFy IE1vcmk= IHdhcmRz IHRvaWxldHM= bGVzdA== IHRlbGVwb3J0 IFN1bmRheXM= IFBsYXQ= RVRT IGVTcG9ydHM= UGF0cmljaw== IEthdGhlcmluZQ== ZW5rbw== IGhhc3NsZQ== IE1pY2s= Z2dsZXM= IGhvYg== YWludGFpbg== IGFpcmJvcm5l IHNwYW5z IGNoaWxp IGFwZXJ0dXJl IHZvbHVudGVlcmVk IEluY2lkZW50 IEZyZXM= IFZldGVyYW4= YXVnaHRlcmVk aW5nbw== IHVuaW5zdXJlZA== Q0xPU0U= IGZ1c2U= IGVyb3RpYw== IGFkdmVydGlzZQ== cmFpc2luZw== VGV4dHVyZQ== IGF0dGVuZHM= IFJFQUw= dWRkbGVk IHNtb290 IDMwNQ== IFdpbGxpcw== IGJsb25k QW5hbHlzaXM= IFZU b25pY2E= IHN0cm9uZ2hvbGQ= UkY= Tk0= Lj4+ IHByb3NwZXJvdXM= IGJvYXN0ZWQ= Mjky IE1hbnVmYWN0dXJpbmc= UFJFU1M= Z3Jlbg== IHBoYXJtYWN5 IFJvY2tlZmVsbGVy a2Fp IHRodW1icw== IEh1dA== IG1vdGhlcmJvYXJk IGd1YXJkaWFucw== IEFsdGVy bGx1bGFy IHNoYWNr IHdpc2VseQ== IGJhY2tib25l ZXJ2YQ== IHN1aWNpZGVz IE1jR3JlZ29y aWphaA== RW1lcg== IEJyYXY= IGRlc2lnbmF0ZQ== UE9TVA== cHJvZHVjZWQ= IGNsZWFuc2luZw== aXJsd2luZA== ZXhpc3RlbnQ= IEh1bXBo IFBheW5l IHZlc3RlZA== xaE= IHN0cmluZ2VudA== aW9uYQ== IHVuc3Vi IHN1bW1lZA== IEhlcmN1bGVz c3ViamVjdA== IFJhZ25hcg== IE5vcw== IGNoYXJhY3Rlcml6YXRpb24= IHNhdnZ5 IERhd3Nvbg== IENhc2lubw== IGZyaQ== IEJhcnJpZXI= IG1pc2luZm9ybWF0aW9u IGluc3VsYXRpb24= IGNvcnJpZG9ycw== IGFpcnBsYW5lcw== IE5vY3Q= YWhp IDE5MTY= a2I= YXJtYWM= IHNodW4= IHNjaGVtYQ== IGhvcnJpZmllZA== IDIzOQ== YXVuZGVycw== TkI= aWF0ZXM= ZXJpdHk= IFNoYXJk IHJhcml0eQ== IGdyb3VwZWQ= IEdoYW5h YWdhaW5zdA== IEJpb2xvZ2ljYWw= IEF3YXJl b3dlbGw= z4Q= IEJlYXU= c2hhdw== SGFjaw== IEp1bGl1cw== VVNT b2xzb24= YXVuYQ== Y3J1 IE1hdXJpY2U= IElr IHNlcXVlbmNpbmc= IHJhZGljYWxz ICg/LA== dmlydHVhbA== IGFueXdheXM= IHJlcGVyYw== IGhhbmRsZXJz IGhlc2l0YW50 6YM= IE1G cGxlbWVudGF0aW9u YXNzb2NpYXRlZA== IGNhbXBhaWduZWQ= IFl1ZQ== dXRhdGlvbnM= IFlvZ2E= IHNpbW1lcg== IHJvZHM= IG1lbG9keQ== IGNvbnZveQ== dmlkZW9z IHNjcmVlbmVk TmVn b2NoZW1pY2Fs ICgpKQ== IHVsdHJhcw== IGFudGlw IElzbGFuZGVycw== NzA0 IGZldGlzaA== IHJpZGljdWxvdXNseQ== IEthcnQ= IG1pdG9jaG9uZHJpYWw= IGludGVyZmVyaW5n QnVpbGRlcg== IG92ZXJmbA== IGFjbmU= IE11ZA== IEtlcnI= ZmxleA== IFBvc3RhbA== IEJhbHRpYw== NDc3 IFBlcnNvbnM= b3VyYWdl SEI= IE11c2U= IEltbW9ydGFs IERyaXZpbmc= IHBldGl0aW9ucw== IHN1YnNjcmlwdA== IHNvcmNl IFByb2Nlc3Nvcg== dXRvbg== U29ueQ== IHBob24= IHJhY2Vk IEFudGhyb3A= IGRheXRpbWU= IEV4ZXJjaXNl QWRkaW5n IGVuZ2FnZXM= IFF1YWxjb21t IG1pcmFjbGVz IG1lbWVz IERyaW5r IE9yaW9sZXM= IGhhaXJz IFBvbGFy YXRob20= IHNsaXBwZXJ5 IFJlbXk= IGNhcmFtZWw= IFlFQVI= IGFsaw== SWdu YXV0aW9u IE1lcmxpbg== IENyYW4= IGFwb2xvZ2llcw== IDQxMA== IG91dGluZw== IE1lbW9yaWVz YXBwb2ludGVk IGNvdW50ZXJlZA== dWxk cG9zaW5n IGZpcmV3YWxs IFdhc3Q= IFdldA== d29ya2Vk c2VsbGVy IHJlcGVhbGVk ZXJlbw== YXNzdW1pbmc= QkxJQw== bWl0ZQ== IENFT3M= IENoYXBlbA== ZWxsaWdlbnQ= X19fX19fX19fX19fX19fX19fX19fX19f RG9n IHdhcnQ= IHN1YnNjcmliZXI= c3BvcnRz IGJlZ2dlZA== IE1W IHNlbWlm ZXRoaWNhbA== IHByZWFjaA== IHJldml0YWw= IHB1bml0aXZl IHNob3J0Y3V0cw== IGluc3RpdHV0ZWQ= IFdhcnNhdw== IGFiZG9tZW4= IEtJTkc= IHN1cGVyaW50ZW5kZW50 IGZyeQ== IEdlbw== VE9S IGNvbnRyYWRpY3Rpb25z YXB0aWM= IGxhbmRzY2FwZXM= YnVncw== IGNsdXN0 IHZvbGxleQ== Y3JpYmVk IHRhbmRlbQ== IHJvYmVz V0hBVA== IHByb21vdGVy IGVsb3F1 cmV2aWV3ZWQ= IERL IFBsYXRv IGZwcw== VGFuaw== IERlcnJpY2s= IHByaW9yaXRpemU= YXNwZXI= IEhvbmR1cmFz IENvbXBsZXRlZA== bmVj IG1vZw== bmly IE1heW8= REVG c3RhbGw= aW5uZXNz IFZvbGtzd2FnZW4= IHByZWNhdXRpb24= IE1lbGw= aWFr aXN0cmllcw== IDI0OA== IG92ZXJsYXBwaW5n U2VuYXRl IEVuaGFuY2U= cmVzeQ== cmFjaWFs T1JUUw== IE1vcm1vbnM= U3Ryb25n IENvY2g= TWV4aWNv IE1hZHVybw== IGphcnM= IGNhbmU= V2lr b2xsYQ== aWZmZXJlbmNl IHBoeXNpY2lzdA== IE1hZ2dpZQ== IDI4NQ== IGRlcGljdGlvbg== IE1jTGFyZW4= SnU= IHNsb3dz IGNvbW1pc3Npb25lcnM= IFdpbGxvdw== IEV4cGxvcw== aG92YWg= IHRlY2huaWNpYW4= IGhvbWljaWRlcw== IEZsYXY= IFRydW1hbg== IDEwMDAw dWN0b3I= IHNoYWRlcg== TmV3c2xldHRlcg== NDU3 IHJldmVy IGhhcmRlbmVk IHdoZXJlYWJvdXRz IHJlZGV2ZWxvcA== IGNhcmJz IHRyYXZlcnM= IHNxdWlycmVs IGZvbGxvd2Vy IHNpbmdz NTA4 IHJhYmJpdHM= ZW1vbml1bQ== IGRvY3VtZW50aW5n IG1pc3VuZGVyc3Rvb2Q= KSc= Umljaw== Z2dpZXM= IHByZW1pZQ== IHNrYXRpbmc= IHBhc3Nwb3J0cw== IGZpc3Rz YWdlZGRvbg== SGF3 QUNQ MDgw IFRob3VnaHRz IENhcmxzb24= IHByaWVzdGhvb2Q= aHVh IGR1bmdlb25z IExvYW5z IGFudGlz IGZhbWlsaWFyaXR5 IFNhYmI= b3BhbA== IEluaw== c3RyaWtl IGNyYW0= IGxlZ2FsaXplZA== IGN1aXNpbmU= IGZpYnJl VHJhdmVs IE1vbnVtZW50 T0RZ ZXRoeQ== IGludGVyc3RhdGU= IFBVUg== ZW1wb3Jhcnk= IEFyYWJpYW4= ZGV2ZWxvcGVk IHNhZGRsZQ== IGdpdGh1Yg== IE9mZmVy IElTUA== cm9sZXQ= IFNVUEVS IERlbmlz IG11bHRpcGxpZXI= IHN0aXJyZWQ= SW50ZXJlc3RpbmdseQ== IGN1c3RvbWFyeQ== IGJpbGxlZA== aGV4 IG11bHRpcGxpZWQ= IGZsaXBwaW5n IENyb3NieQ== IGZ1bmRhbWVudGFscw== aWFl IFBsYXllZA== IEF0b20= YW1hem9u IEZsYW0= ZWV6 YWN0aXZhdGVk IHRhYmxlc3Bvb24= IGxpYmVyYWxpc20= IFBhbGlu IFBhdGVs TnVt IFRBTQ== IHN1cm4= IFJlbG9hZGVk IGNvaW5lZA== Il0s IENsYXNo IEFndQ== IHByYWdtYXRpYw== IEFjdGl2YXRl IDgwMg== IHRyYWlsZXJz IHNpbGhvdQ== IHByb2Jlcw== IGNpcmN1cw== IEJhaW4= IExpbmRzYXk= IEFiYmV5 RGVsaXZlcnk= IGNvbmNlc3Npb24= IGdhc3Rybw== IFNwcml0ZQ== xJ8= YW5kZWw= IGdpbW0= IGF1dG9iaQ== IFR1cnRsZQ== IHdvbmRlcmZ1bGx5 IEhhcmFt IFdvcmxkd2lkZQ== IEhhbmRsZQ== IHRoZW9yaXN0cw== IHNsZWVr IFpodQ== b2dyYXBoaWNhbGx5 RUdB IE93bmVycw== YXRocw== IEFudGFyY3RpYw== bmF0YWw= PSIi ZmxhZ3M= YGBgYA== IHN1bA== S2g= IHBvdGFzc2l1bQ== IGxpbmVtYW4= IGNlcmVhbA== IFNlYXNvbnM= IDIwMjI= IG1hdGhlbWF0aWM= IGFzdHJvbm9tZXJz cHJvZmVzc2lvbmFs IGZhcmVz Y2tub3dsZWQ= IGNoaQ== IHlvdW5nc3RlcnM= IG1pc3Rha2VubHk= IGhlbWlzcGhlcmU= IERpdmluaXR5 cm9uZQ== ICIs cmluZ3M= IGF0dHJhY3Rz dmFuYQ== 5bk= Q0FQ IHBsYXlsaXN0 IHBvcmNo 44Gj IGluY29ycG9yYXRlcw== IHNvYWs= IGFzc2VydGluZw== IFRlcnJvcmlzbQ== IFBhYmxv SmE= Y2VzdGVy IGZlYXJpbmc= IFByYXllcg== IGVzY2FsYXRlZA== R1c= IHJvYmU= IEJyaWdodG9u YWNpc3Rz IFN5bXBob255 IER3YXJm IFBhcmFkZQ== IExlZ28= IGluZXhwbA== IGxvcmRz bGVhZg== UkFH bGliZXI= IGNpZ2Fycw== IEplaG92YWg= NjA2 V0lORE9XUw== IExpYmVyaWE= ZWJ1cw== SGVhdnk= IGx1YnJpYw== IFJX YW5ndWFnZXM= IG5hcnJvd2Vk Y29tcHV0ZXI= IEVtYmVy IG11cmRlcmluZw== IGRvd25zdHJlYW0= IFR1bHM= IFRhYmxlcw== VG9waWM= IEFjY3VyYWN5 PS8= bG9zdA== IFJlaQ== IHByb2dyZXNzZXM= YmVhcg== IGVzdGFibGlzaG1lbnRz SnVzdGlu IFBlYWNo IEdvbWV6 5b8= IFRyaWFuZ2xl SWRlbnQ= IEhpdmU= UmVzb3VyY2Vz IG1peGVz IEFzc3VtaW5n TXU= IGh5cG9j IHNhbmU= IFdhbg== aWRpb3Vz U3VjY2Vzcw== IGlv QW5nZWw= IGRhbmdlcm91c2x5 IENyZWF0dXJl V09SSw== Ols= IEthdHJpbmE= TGlzdGVuZXI= TWlsbGVy IElkbGli aGFuZw== IGNpcmN1bXZlbnQ= aHJlZg== IGNlbGVzdGlhbA== IFdlZWtz IFB1Zw== IERhbHRvbg== IHN1YnBvZW5h dWt1 IHBlcnNpc3RlZA== cGVp b2xkaW5n IERvY3VtZW50cw== IEhhc3Q= IENFTlQ= IHByaW1lcg== IHN5bm9ueW1vdXM= IG5pYg== b21icw== IG5vdGF0aW9u IERpc2g= IEF0bW9zcA== IGZvcmJpZA== IEFORw== cGF0dGVybg== bG9z IHByb2plY3RpbGVz YnJvd24= LiIs IFZlbm9t IGZpZXJjZWx5 dWJsaXNoZWQ= IFVyYW4= IE5pY2FyYWc= NDEw IENBTA== T1RPUw== IE1pcmFjbGU= IEVuY2hhbnQ= IGd1YXJkaW5n YXBwZW5k QXR0YWNo IGxldmVsZWQ= IGNvbmRvbXM= aWhpbGF0aW9u NjQ5 IG5pZ2h0bWFyZXM= IFRIRVk= IFNUQVJU IEtpbm4= IHJvb21tYXRl IGh5Z2llbmU= b3BwaW5n Sm9i IGx2bA== IFZFUg== IEtlZXBpbmc= YWJldGlj IGZvcm1hdHRpbmc= ZXJhbGE= IHJldmlzaW9ucw== IHJlc3VyZw== VGVs IEdvb2RtYW4= MzUz cG9k IGluZGlzcA== IFRyYW5zbGF0aW9u IGdvd24= IE11bmQ= IGNpcw== IGJ5c3RhbmQ= Y29sbGVjdA== IFB1bmphYg== YWN0aXZlbHk= IEdhbWI= dGVsbA== IGltcG9ydGluZw== Z2VuY2llcw== IGxvY29t IEJyaWxs SG9seQ== IEJlcmdlcg== IHNob3dkb3du IHJlc3BvbmRlcnM= SUxZ IHRha2Vkb3du bGV0ZWQ= IG1hdHRlcmVk IHByZWRpY3RpdmU= IG92ZXJsYXk= R1BV IFZpY2s= IGNvbnZleWVk VGFi cGVlcg== U2Nhbg== IGRlZmVuc2l2ZWx5 dmFl IGFwcHJvdmluZw== IHRpZXJz IFZpYQ== cXVlcmFkZQ== IFNhdWRpcw== IGRlbW9saXNoZWQ= IFByb3BoZQ== IG1vbm8= IGhvc3BpdGFsaXR5 SEFN IEFyaWVs TU9E IFRvcmFo IGJsYWg= IEJlbGFydXM= ZXJlbnRpYWw= IFR1Yw== IGJhbmtlcg== Mzk3 IG1vc3F1aXQ= IFNjaWVudGlzdA== IE11c2ljYWw= IGh1c3Q= U2hpZnQ= IHRvcm1lbnQ= IHN0YW5kb2Zm RWR1Yw== IEZvZw== IGFtcGxpZmllcg== U2hhcGU= SW5zdGFuY2U= IENyaXRpY3M= IGRhZW1vbg== SG91c3Rvbg== IG1hdHRyZXNz IElERg== IG9ic2NlbmU= IEFtZXI= aGV0dGk= IGNvbXBpbGluZw== MzUy dmVyZXR0 IFJlZHVjdGlvbg== aXN0cmF0aW9u IEJsZXNzZWQ= IEJhY2hlbG9y MzE2 IHByYW5r IFZ1bGNhbg== ZGRpbmc= IG1vdXJuaW5n IFF1aW50 IEJsYXN0ZXI= dGVzdGluZw== IHNlZGltZW50 Pj4+ IEV0ZXJuaXR5 IFdIRVJF IE1hemU= IHJlYWN0aW5n IEFsdg== b21zZGF5 IENSQQ== IHRyYW5zbGF0b3I= IGJvZ3Vz YXR1 V2Vic2l0ZQ== b2xscw== IGJhcHRpc20= IHNpYmxpbmc= IEF1dHVtbg== dmV6 44Gu6Q== Z3VhcmRz R2Vvcmc= YXNzYWRvcnM= IEZyZXVk IGNvbnRpbmVudHM= IFJlZ2lzdHJ5 QmVybmll lprlo6s= IHRvbGVyYW50 IFVX IGhvcnJpYmx5 OTk1 IE1JREk= IGltcGF0aWVudA== b2NhZG8= ZXJp IFdvcnN0 IE5vcnJpcw== IFRhbGtpbmc= IGRlZmVuZHM= ZW5zYWJsZQ== IDIwMjE= IGFuYXRvbXk= TGV3 IGRyYXdlcg== IENhbmJlcnJh IHBhdHJpb3RpYw== 6b6N5Zaa5aOr IEF2Zw== QVJN IHVuZGlzY2xvc2Vk IGZhcmV3ZWxs NDU5 YmFibGU= IEFsbGlzb24= T0xPRw== IGNvbmNv dGlnaHQ= IEFDUEk= IE1pbmVz bGljaA== IOKUnA== cmVwcmVzZW50ZWQ= MjAwMDAw IGVudGh1c2lhc3Q= T1RT Ymls IEluZ3JlZGllbnRz IGludmVudG9y IE15U1FM wqDCoMKg IEFCT1VU d2l0aGlu IG1r QnVs IEZha2U= IGRyYWNvbmlhbg== V2E= aGVsbQ== IFRlcnJhbg== ZXJ2aWxsZQ== IGNvbW1vbnBsYWNl U0laRQ== ICI8 cmVwbGFjZQ== b2dyYXBocw== IFNFTEVDVA== aW5jaWJsZQ== IE1vc3RseQ== IFNoZWZmaWVsZA== IElERQ== dWdnbGU= IGNpdGF0aW9ucw== aHVyc3Q= IFVuaXg= IHVubGVhc2g= IFBpcGVy IE5hbm8= IHN1Y2N1bWI= IHJlbHVjdGFuY2U= IDI1MDA= IE1lcmNoYW50 IHdpcmV0 IGNvbWJvcw== IEJpcnRoZGF5 IGNoYXJjb2Fs IFVQUw== IEZhaXJmYXg= IGRyaXZld2F5 IFRlaw== IFBpdGNo b3ZlcmU= IHRlY2huaWNpYW5z IEFjdHVhbA== ZmxhdGlvbg== IEZpc2NhbA== IEVtcHR5 YW5hbW8= IG1hZ25lc2l1bQ== IHNsdXQ= IGdyb3dlcnM= SW52ZXN0aWdhdG9ycw== KCk6 IFNhdGVsbGl0ZQ== IEtleW5lcw== bWlzc2l2ZQ== bGFuZQ== IGJvcm91Z2g= MzQ0 IFRFQU0= IEJldGhlc2Rh Q1Y= aG93ZXI= IFJBRA== IGNoYW50 IFJpeQ== IGNvbXBvc2l0aW9ucw== IG1pbGRseQ== IG1lZGRsaW5n IGFnaWxpdHk= YW5lZXJz NTAx IHN5bnRo bGluZ2Vy Mjkx IGV4Y2xhaW1lZA== UGFydHk= IGNvbnRhbWlu IE1hbm9y IFJlc3BvbmQ= IHByYWlzaW5n IG1hbm5lcnM= ZmxlZXQ= U3VtbWVy IEx5bmQ= IERlZmluaXRlbHk= Z3JpbQ== IGJvd2xpbmc= c3RyaQ== 55s= eW50 IG1hbmRhdGVz RElW IHJlY29uY2lsZQ== dmlld3M= IERhbW9u dmV0dGU= Rmxv IEdyZWF0ZXN0 aWxvbg== aWNpYQ== IHBvcnRyYXlhbA== IGN1c2hpb24= NTA0 MTk3OQ== b3NzYWw= QXBwbGlj c2NyaXB0aW9u IG1pdGlnYXRpb24= QVRT cGFj IGVyYXNlZA== IGRlZmljaWVuY2llcw== IEhvbGxhbmRl IFh1 IGJyZWQ= IHByZWduYW5jaWVz ZmVtaW4= IGVtcGg= IHBsYW5uZXJz IG91dHBlcg== dXR0ZXJpbmc= IHBlcnBldHJhdG9y IG1vdHRv IEVsbGlzb24= IE5FVkVS IGFkbWl0dGVkbHk= QVJJ IEF6ZXJiYWlqYW4= IG1pbGxpc2Vj IGNvbWJ1c3Rpb24= IEJvdHRsZQ== IEx1bmQ= IFBz IERyZXNz IGZhYnJpY2F0ZWQ= IGJhdHRlcmVk IHNpZGVs IE5vdHRpbmc= Rm9yZWlnbg== IEplcm9tZQ== MDIw IEFyYml0 IGtub3Rz IFJJR0hU TW92aW5n 44GZ IHN1cmdlcmllcw== IGNvdXJ0aG91c2U= IG1hc3RlcmVk IGhvdmVyaW5n IEJyYW4= IEFsaXNvbg== IHNhZmVzdA== bWlsaXRhcnk= IGJ1bGxpZWQ= IGJhcnJhZ2U= UmVhZGVy RVNF IEdlb2dyYXBoaWM= VG9vbHM= MzE0 IEdlZWs= cm90aA== Z2xlcnM= IEZJTg== z4E= IEFzdG9u YWx0ZXJu NDg4 IHZldGVyaW4= R2FtZXI= IGludGVs cmVuY2hlcw== U2hpZWxk IGFtbmVzdHk= IEJoYXI= IHBpbGVk IGhvbm9yYWJsZQ== IEluc3RpdHV0ZXM= IHNvYWtlZA== IGNvbWE= IEVGRg== MzQx Ynl0ZXM= IEdtYWls bGVpbg== IENhbmFkaWVucw== bWF0ZXJpYWw= SWw= IGluc3RydWN0b3Jz IEtZ IGNvbmNlaXZl dWJi IFBvc3NpYmxl IGVhc2luZw== IENocmlzdGluYQ== IGNhcmlj IEhEUg== Uk9N IHNob3ZlbA== ZGVsZXRl IHB1ZmY= IENoYW5naW5n IHNlYW1sZXNzbHk= QXR0cmlidXRl IGFjcXVpc2l0aW9ucw== YWtlcnk= IEVG IGF1dGlzdGlj IFRha2Vz IFBvd2Rlcg== IFN0aXI= NTEw IEJ1YmJsZQ== c2V0dGluZ3M= IEZvd2xlcg== IG11c3RhcmQ= IG1vcmVvdmVy IGNvcHlyaWdodGVk IExFRHM= MTUwMA== 5ok= IEhJUw== ZW5m IGN1c3RvZA== IEh1Y2s= R2k= IGltZw== QW5zd2Vy Q3Q= amF5 IEluZnJhc3RydWN0dXJl IGZlZGVyYWxseQ== TG9j IG1pY3JvYmVz IG92ZXJydW4= ZGRz b3RlbnQ= YWRpYXRvcg== Pj4+Pj4+Pj4= IHRvcm5hZG8= IGFkanVk IGludHJpZ3VlZA== IHNp IFJldmVsYXRpb24= cHJvZ3Jlc3M= IGJ1cmdsYXJ5 IFNhaXlhbg== IEthdGh5 IHNlcnBlbnQ= IEFuZHJlYXM= IGNvbXBlbA== ZXNzbGVy IFBsYXN0aWM= IEFkdmVudA== IFBvc2l0aXZl IFF0 IEhpbmR1cw== cmVnaXN0ZXJlZA== dWxhcml0eQ== IHJpZ2h0ZW91c25lc3M= IGRlbW9uaWM= dWl0aXZl IEJEUw== IEdyZWdn Y2lh IENydXNhZGU= IFNpbmFp V0FSRQ== Kyg= IG1lbGw= IGRlcmFpbA== eWFyZHM= QXN0 IG5vdGljZWFibHk= IE9iZXI= UmFt IHVubm90aWNlZA== IHNlcQ== YXZhZ2U= VHM= IDY0MA== IGNvbmNlZGU= IF0p RmlsbA== IGNhcHRpdml0eQ== IEltcHJvdmVtZW50 IENydXNhZGVy YXJhb2g= TUFQ 5pc= IHN0cmlkZQ== YWx3YXlz Rmx5 Tml0 IGFsZ2Fl IENvb2tpbmc= IERvb3Jz TWFsbGV5 IHBvbGljZW1lbg== 44GN IGFzdHJvbmF1dA== YWNjZXNzaWJsZQ== NDk1 IFJBVw== Y2xpZmZl dWRpY3JvdXM= IGRlcGVuZGVk YWxhY2g= IHZlbnR1cmVz cmFrZQ== IHRpdHM= IEhvdQ== IGNvbmRvbQ== b3Jtb25hbA== IGluZGVudA== IHVwbG9hZGluZw== Rm9vdG5vdGU= SW1wb3J0YW50 IDI3MQ== IG1pbmRmdWw= IGNvbnRlbmRz Q3Jh IGNhbGlicg== IE9FQ0Q= cGx1Z2lu RmF0 IElTUw== IER5bmFtaWNz YW5zZW4= Njg2 Jyks IHNwcml0ZQ== IGhhbmRoZWxk IEhpcHA= PX49fg== VHJ1c3Q= IHNlbWFudGljcw== IEJ1bmRlcw== IFJlbm8= IExpdGVyYXR1cmU= c2Vuc2U= R2FyeQ== IEFlZw== IFRyaW4= RUVL IGNsZXJpYw== IFNTSA== IGNocmlzdA== IGludmFkaW5n aWJ1 IGVudW0= YXVyYQ== IGFsbGVnZQ== IEluY3JlZGlibGU= QkJD IHRocnU= IHNhaWxlZA== IGVtdWxhdGU= IGluc2VjdXJpdHk= IGNyb3U= IGFjY29tbW9kYXRpb25z IGluY29tcGV0ZW50 IHNsaXBz IEVhcnRocXU= c2FtYQ== SUxMRQ== IGlQaG9uZXM= YXNha2k= IGJ5ZQ== IGFyZA== IGV4dHJhcw== IHNsYXVnaHRlcmVk IGNyb3dkZnVuZGluZw== cmVzc28= IGZpbGli IEVSUk9S IFRMUw== ZWdn IEl0YWw= IGVubGlzdA== IENhdGFsb25pYQ== IFNjb3Rz IHNlcmdlYW50 IGRpc3NvbHZl Tkg= IHN0YW5kaW5ncw== cmlxdWU= SVE= IGJlbmVmaWNpYXJ5 IGFxdWFyaXVt WW91VHViZQ== IFBvd2VyU2hlbGw= IGJyaWdodGVzdA== IFdhcnJhbnQ= U29sZA== V3JpdGluZw== IGJlZ2lubmluZ3M= IFJlc2VydmVk IExhdGlub3M= aGVhZGluZw== IDQ0MA== IHJvb2Z0b3A= QVRJTkc= IDM5MA== VlBO R3M= a2VybmVs dHVybmVk IHByZWZlcmFibGU= IHR1cm5vdmVycw== IEhlbHM= U2E= IFNoaW5qaQ== dmVo IE1PRFVMRQ== VmlvbA== IGV4aXRpbmc= IGphYg== IFZhbmlsbGE= IGFjcm9u IEdhcA== YmVybg== QWs= IE1jR3U= IGVuZGxlc3NseQ== IEZhcmFnZQ== IE5vZWw= VmE= TUs= IGJydXRl IEtydQ== IEVTVg== IE9saXZpYQ== 4oCg IEthZg== IHRydXN0aW5n IGhvdHM= MzI0 IG1hbGFyaWE= IGpzb24= IHBvdW5kaW5n b3J0bWVudA== Q291bnRyeQ== IHBvc3Rwb25lZA== IHVuZXF1aXY= Pyks IFJvb25leQ== dWRkaW5n IExlYXA= dXJyZW5jZQ== c2hhcGVzaGlmdGVy IEhBUw== b3NhdGU= IGNhdmVybg== IGNvbnNlcnZhdGlzbQ== IEJBRA== IG1pbGVhZ2U= IGFycmVzdGluZw== VmF1bHRz IG1peGVy RGVtb2NyYXRpYw== IEJlbnNvbg== IGF1dGhvcmVk ODAwMA== IHByb2FjdGl2ZQ== IFNwaXJpdHVhbA== dHJl IGluY2FyY2VyYXRlZA== IFNvcnQ= IHBlYWtlZA== IHdpZWxkaW5n cmVjaWF0aW9u 15nX UGF0Y2g= IEVtbXk= IGV4cXU= dHRv IFJhdGlv IFBpY2tz IEdyeQ== cGhhbnQ= IGZyZXQ= IGV0aG4= IGFyY2hpdmVk JS0= Y2FzZXM= IEJsYXpl IGltYg== Y3Y= eXNz aW1vbnk= IGNvdW50ZG93bg== IGF3YWtlbmluZw== IFR1bmlzaWE= IFJlZmVy IE1K IHVubmF0dXJhbA== IENhcm5lZ2ll aXplbg== IE51Z2dldHM= aGVzcw== IGV2aWxz NjQ3 IGludHJvZHVjdG9yeQ== bG92aW5n IE1jTWFob24= IGFtYmlndWl0eQ== TGFiZWw= IEFsbWlnaHR5 IGNvbG9yaW5n IENsYXVz c2V0dGluZw== TlVMTA== IEZhdm9yaXRl IFNJRw== Pig= IFNoaXZh IE1heWVy IHN0b3JtZWQ= IENvdmVyYWdl d2VhcG9ucw== aWdoYW0= IHVuYW5zd2VyZWQ= IGxldmU= IGNveQ== Y2Fz YmFncw== YXN1cmVk U2VhdHRsZQ== IFNhbnRvcnVt c2VyaW91cw== IGNvdXJhZ2VvdXM= IFNvdXA= IGNvbmZpc2NhdGVk IC8vLw== IHVuY29udmVudGlvbmFs IG1vbXM= IFJvaGluZ3lh IE9yY2hlc3RyYQ== IFBvdGlvbg== IGRpc2NyZWRpdA== IEZJTA== Zml4ZWQ= IERlZXI= ZG9p IERpbWVuc2lvbg== IGJ1cmVhdWNyYXRz ZXRlZW4= IGFjdGlvbkdyb3Vw b2ht IGJ1bXBz IFV0aWxpdHk= IHN1Ym1hcmluZXM= cmVuaGVpdA== cmVzZWFyY2g= IFNoYXBpcm8= IHNrZXRjaGVz IGRlY2VwdGl2ZQ== IFZpbA== ZXNhbWU= IEVzc2VudGlhbGx5 IHJhbXBhZ2U= aXNreQ== IG11dHRlcmVk dGhyaXRpcw== IDIzNg== ZmV0 YmFycw== IHB1cGls IFRob3U= b1M= c29uZw== IGZyYWN0dXJlZA== IHJldmVydA== cGljdHVyZQ== IGNyaXRlcmlvbg== dXNoZXI= IHJlcGVyY3Vzc2lvbnM= IFZpbnRhZ2U= IFN1cGVyaW50ZW5kZW50 T2ZmaWNlcnM= IGZsYWdnZWQ= IGJsYW1lcw== IGludmVyc2U= b2dyYXBoZXJz IG1ha2VzaGlmdA== IGRldm9pZA== IGZvc3NpbHM= IEFyaXN0b3RsZQ== IEZ1bmRz IGRlcGxldGVk IEZsdQ== IFl1YW4= IHdvZXM= IGxpcGlk IHNpdHU= cmVxdWlzaXRlcw== IGZ1cm5pc2g= IFNhbWFy IHNoYW1lZnVs IGFkdmVyc2VseQ== IGFkZXB0 IHJlbW9yc2U= IG11cmRlcm91cw== dWNrbGVz IEVTTA== IDMxNA== c2VudA== IHJlZGVm IENhY2hl IFB1cnM= aWdhbnM= IDQ2MA== IHByZXNjcmlwdGlvbnM= IGZyZXM= RnVjaw== b2NyYXRlcw== VHdlbnR5 IFdlaXJk IFRvZ2dsZQ== IENhbGxlZA== aXRpemVucw== IHBvdWx0cnk= IGhhcnZlc3Rpbmc= 44Km44K5 Qm90dG9t IGNhdXRpb25lZA== dG4= Mzk2 IE5pa2tp IGV2YWx1YXRpb25z IGhhcmFzc2luZw== IGJpbmRpbmdz IE1vbmV0YXJ5 IGhpdHRlcnM= IGFkdmVyc2FyeQ== dW50cw== IHNldGJhY2s= IGVuY3J5cHQ= IENhaXQ= IGxvd3M= ZW5nZXM= IE5vcm4= IGJ1bGJz IGJvdHRsZWQ= IFZveWFnZXI= MzE3 IHNwaGVyZXM= cG9saXRpY3M= IHN1YnRyYWN0 IHNlbnNhdGlvbnM= IGFwcGFsbGluZw== IDMxNg== IGVudmlyb25tZW50YWxseQ== IFNURU0= IHB1Ymxpc2hlcw== NTYw IGRpbGlnZW5jZQ== NDg0 IGFkdmlzZXM= IHBldHJvbA== IGltYWdpbmluZw== IHBhdHJvbHM= IEludGVnZXI= IEFzaGVz YWN0dXM= IFJhZGlhbnQ= IExU aXRhYmlsaXR5 aHRha2luZw== U2V0dGluZw== IG51YW5jZWQ= IFJlZWY= IERldmVsb3BlcnM= Tmk= cGllY2Vz OTkw TGljZW5zZQ== IGxvd2Vycw== IE90dG9tYW4= MzI3 b29v IHF1aXR0aW5n bWFya2V0cw== QmVoaW5k IGJhc2lu IGRvY3M= YW5pZQ== Zmxhc2g= Y3Rs IGNpdmlsaXplZA== IEZ1a3VzaGltYQ== Il0sIg== IEtT IEhvbmVzdGx5 YXJhdA== IGNvbnN0cnVjdHM= IExhbnM= IERpcmU= IExJS0U= IFRyb3VibGU= IHdpdGhob2xkaW5n IE9ibGl2aW9u IHNhbml0eQ== YW55YQ== Q29uc3Q= IGdyb2Nlcg== IENlbHNpdXM= IHJlY291bnRlZA== IFdpZmU= Qm9yZGVy YXRlcmVk aGFwcHk= IHNwb2lsZXI= IGxvZ2ljYWxseQ== SGFsbA== IHN1Y2NlZWRpbmc= IHBvbHltb3JwaA== IGF4ZXM= IFNob3RndW4= IFNsaW0= IFByaW5jaXBsZXM= IExldGg= YXJ0YQ== IHNjb3I= U2NyZWVuc2hvdA== IHJlbGF4YXRpb24= IyQjJA== IGRldGVycmVudA== aWRkeQ== IHBvd2VybGVzcw== IGxlc2JpYW5z IGNob3Jkcw== IEVkaXRlZA== c2VsZWN0ZWQ= IHNlcGFyYXRpc3Rz MDAwMg== IGFpcnNwYWNl IHR1cm5hcm91bmQ= IGN1bm5pbmc= UEFUSA== UG9seQ== IGJvbWJlZA== IHRpb24= eHM= IHdpdGhob2xk IHdhZ2Vk IExpYmVydGllcw== RmxhZw== IGNvbWZvcnRpbmc= NDU0 IElyaXM= YXJlcnM= IHJhZw== IHJlbG9jYXRlZA== IEd1YXJhbnQ= IHN0cmF0ZWdpY2FsbHk= IGdhbW1h dWJlcnR5 IExvY2toZWVk Z3Jlcw== IGdyaWxsZWQ= IExvd2U= c3RhdHM= IFJvY2tz IHNlbnNpbmc= IHJlbnRpbmc= IEdlb2xvZ2ljYWw= 2KfY b3Ryb3A= IHNldw== IGltcHJvcGVybHk= NDg2 IOKWoA== IHN0YXJ2aW5n IEJq RGlzY3Vzc2lvbg== MzI4 IENvbWJv IEZpeGVz TkFU IHN0cml2aW5n dGhvcmE= IGhhcnZlc3RlZA== IFBpbmc= IHBsYXlmdWw= IGF2ZW51ZXM= IG9jY3VwYXRpb25hbA== IHdha2Vz IENvdXJpZXI= IGRydW1tZXI= IEJyb3dzZXI= IEhvdXRo aXR1 IGFwcGFyZWw= cGFzdGU= IGh1bnRlZA== IFNlY29uZGx5 bGFpbg== WFk= IFBJTg== aWNvbnM= IGNvY2t0YWlscw== IHNpemFibGU= IGh1cmRsZXM= ZXN0aW5hbA== IFJlY3JlYXRpb24= IGVjbw== NjQ4 IERpZWQ= bWludA== IGZpbmdlcnByaW50cw== IGRpc3Bvc2U= IEJvc25pYQ== dHN5 MjIwMA== IGluc3BlY3RlZA== IEZvdQ== IGZ1c3M= IGFtYnVzaA== IFJhaw== IG1hbmlmZXN0ZWQ= UHJvc2VjdXQ= IHN1ZmZpY2U= cmVuY2Vz IGNvbXBlbnNhdGVk IEN5cnVz IGdlbnVz IFdvbHZlcmluZQ== IFRyZW5kcw== IGhpa2Vz IFNlZW4= IGVucm9s Q29sZA== IHBvbGl0ZWx5 IFNsYXY= IFJ1cGVydA== IGV5ZXdpdG5lc3M= IEFsdG8= IHVuY29tcA== IHBvc3Rlcmlvcg== TXVzdA== IEhlcno= IHByb2dyZXNzaXZlbHk= IDIzNA== IGluZGlmZmVyZW5jZQ== IEN1bm5pbmdoYW0= IGFjYWRlbWlh IHNld2Vy IGFzdG91bmRpbmc= IEFFUw== cmF0aGVy IGVsZGVzdA== IGNsaW1icw== IEFkZHM= IG91dGNyeQ== IGNvbnRhZw== IEhvdXNlcw== IHBlcHQ= IE1lbGFuaWE= aW50ZXJlc3RlZA== IFVDSA== IFJvb3Rz IEh1YmJhcmQ= IFRCRA== IFJvbWFuaWFu ZmlsZW5hbWU= U3RvbmU= IEltcGw= IGNocm9tb3NvbWU= Q2xl ZHg= IHNjcmFtYmxlZA== IFB0 IDI0Mg== T1BMRQ== IHRyZW1lbmRvdXNseQ== U3RyZWV0 IGNyYXZpbmc= IGJ1bmRsZWQ= IFJH cGlwZQ== IGluanVyaW5n IGFyY2FuZQ== UGFydGljaXA= IEhlcm9pYw== c3R5 IHRvcHBpbmc= IFRlbXBlc3Q= cmVudGljZXM= Ymg= IHBhcmFub2lh IFVuaWNvZGU= IGVncmVnaW91cw== IFwn IE9zd2FsZA== IGdyYXZlbA== IFNpbXBzb25z IGJsYW5k IEd1YW50YW5hbW8= V3JpdGVy bGluZXJz IERpY2U= SkM= IHBhcml0eQ== IHNpZGVk IDIzNw== IFB5cnJoYQ== YXR0ZXJz ZGs= RmluZQ== Y29tcGFu IGZvcm11bGF0ZWQ= IElkb2w= aWxlcnM= aGVtb3Ro IEZhdg== IGludHJ1c2lvbg== IGNhcnJvdHM= IExheWVy IEhhY2tlcg== IC0tLS0tLS0tLS0tLS0tLS0= IG1vZGVyYXRpb24= 6YE= b2NvYw== IGNoYXJhY3Rlcml6ZQ== IFRlcmVzYQ== IHNvY2lvZWNvbm9taWM= IHBlcms= IFBhcnRpY2lwYXRpb24= dHJhaW5pbmc= IFBhdWxv cGh5cw== IHRydXN0d29ydGh5 IGVtYm9kaWVk IE1lcmNo Y3VycmVuY3k= IFByaW9yaXR5 IHRlYXNpbmc= IGFic29yYmluZw== IHVuZmluaXNoZWQ= IENvbXBhcmlzb24= IGRpc3BsZQ== d3JpdGVycw== IHByb2Zlc3Npb25z IFBlbmd1aW4= IGFuZ3JpbHk= IExJTks= Njg4 IENvcnJlc3BvbmQ= IHByZXZhaWxlZA== IGNhcnRlbA== bHA= YXNtcw== IFJlZGVtcHRpb24= IElzbGFtaXN0cw== ZWZmZWN0cw== ZG9zZQ== IExhdHRlcg== IEhhbGlmYXg= IHZhcw== IFRvcGljcw== IE5hbWVk YWR2ZXJ0aXNpbmc= enph SUNFUw== IHJldGFyZGVk YWNoYWJsZQ== IFB1cHBldA== IEl0ZW1MZXZlbA== IHJldHJhY3Q= IGlkZW50aWZpYWJsZQ== QWFyb24= IEJ1c3Rlcg== c29s aGVsbGU= YXNzZW1i SG9wZQ== cmFuZ2Vk QmE= IFB1cmNo 6YA= IFNpcmk= IGFycml2YWxz IDE5MTI= IHNob3J0ZW5lZA== IDMxMg== IGRpc2NyZXBhbmN5 IFRlbXBlcmF0dXJl IFdhbHRvbg== IGtpbmRlcmc= cG9saXQ= IHJlbWl4 IGNvbm5lY3RvcnM= 44OY44Op IEthemFraHN0YW4= ZG9taW5hdGVk IHN1Z2Fycw== aW1ibGU= IFBhbmlj IERlbWFuZA== IENvbG9ueQ== b25lbg== IE1FUg== Nzc1 dXJpYQ== YXphYXI= IERlZ3JlZQ== UHJp IHN1bnNoaW5l IDI1MQ== IHBzeWNoZWRlbGlj IGRpZ2l0YWxseQ== IEJyYXVu IHNoaW1tZXI= IHNoYXZl IFRlbGVzYw== IEFzdHJhbA== IFZlbmV6dWVsYW4= IE9H IGNyYXdsaW5n SW50ZWc= IEZlYXRoZXI= IHVuZm9sZGluZw== IGFwcHJvcHJpYXRpb24= IOijj+g= IE1vYmlsaXR5 IE5leQ== LS4= YmlsdA== TElO IFR1YmU= IENvbnZlcnNlbHk= IGtleWJvYXJkcw== IENhbw== IG92ZXJ0aA== IGxhdXJl Pj5c IFZpcGVy YWNoYQ== T2Zmc2V0 IFJhbGVpZ2g= IEphZQ== Sm9yZGFu anA= IHRvdGFsaXRhcmlhbg== Q29ubmVjdG9y IG9ic2VydmVz IFNwYXJ0YW4= IEltbWVkaWF0ZWx5 IFNjYWw= Q29vbA== IHRhcHM= IHJvYXI= UGFzdA== IGNoYXJz IEJlbmRlcg== IFNoZWxkb24= IHBhaW50ZXI= IGJlYWNvbg== IENyZWF0dXJlcw== IGRvd250dXJu IGhpbmRlcg== IEFuZHJvbWVkYQ== w5s= Y2NvbGk= IEZpdG5lc3M= ZXRyaWNhbA== IHV0aWxpemVz IHNlbmF0ZQ== IGVuc2VtYmxl IGNoZWVycw== VFc= IGFmZmx1ZW50 a2ls cnlsaWM= b3JkZXJpbmc= Q29tcHV0ZXI= IGdydWVzb21l b3N0aWNz IFViaXNvZnQ= IEtlbGxleQ== IHdyZW5jaA== IGJvdXJnZW9pc2ll SUJMRQ== IFByZXN0b24= d29ybg== YXJpc3Q= cmVhdGluZw== IHN0YWluZWQ= YXJpbmU= IHNsaW1l RU5O IGNoZXN0cw== IGdyb3VuZHdhdGVy YW5ub3Q= IFRyYXk= IExvY2tl IENUUg== IGR1ZGVz IEV4dGVybmFs IERlY29kZXI= IHBhcmFtZWQ= IE1lZGxpbmU= ODA5 IERpbm5lcg== cnVwYWw= Z3o= IEd1bQ== IERlbW8= amVl IGRo YmVybWFu YXJjaHM= IGVucXU= IEVwc3RlaW4= IGRldmFzdGF0aW9u IGZyaWVuZHNoaXBz IEFyZA== IDIzMQ== IFJ1Ymlu IERpc3RhbmNl IHNwdXJyZWQ= IGRvc3NpZXI= IG92ZXJsb29raW5n XFxcXFxcXFxcXFxcXFxcXA== Rm9yZXN0 IENvbWVz XCIs IElyYW5pYW5z IGZpeHR1cmVz TGF1Z2hz IGN1cnJ5 IEtpbmdzdG9u IHNxdWFzaA== IGNhdGFsb2d1ZQ== IGFibm9ybWFsaXRpZXM= IGRpZ2VzdGl2ZQ== Li4uLi4uLi4u IHN1Ym9yZGluYXRl b2dseQ== IDI0OQ== TWlkZGxl IG1hc3NhYw== IGJ1cmdlcnM= IGRvd25zdGFpcnM= IDE5MzE= Mzk0 IFZH IGxhc2Vycw== IFNpa2g= IEFsZXhh ZGVyaXZlZA== IGN5Y2xpc3Q= 44Gu6a2U b25lbGluZXNz ISEhISEhISE= IGJ1ZmZz bGVnYXRl IHJhcGluZw== IHJlY29tbWVuZGluZw== cm9yZWQ= IG11bHRpY3VsdHVyYWw= dW5pcXVl IGJ1c2luZXNzbWVu IHVuZWFzeQ== IE1BUA== IGRpc3BlcnNlZA== Y2lwbGluZQ== SmVzcw== IEtlcmFsYQ== 5ac= IGFic3RyYWN0aW9u U3Vydg== VWg= IHByaW50ZXJz aWph b3dkZXI= IGFuYWxvZ291cw== IEFTUA== YWZlcg== IHVuZm9sZGVk IGxldmVsaW5n IGJyZWFjaGVk IEhlYXJpbmc= IG5hdA== IHRyYW5zbGF0aW5n Y3JpdGljYWw= IGFudGFnb25pc3Q= IFllc3RlcmRheQ== IGZ1enp5 d2FzaA== bWVyZQ== IGJld2lsZA== IE1hZQ== VmlyZ2lu cGhyYXNl IHNpZ25hbGVk IEhJR0g= IHByb3Rlc3Rlcg== IGdhcm5lcg== dW5rbm93bg== IGtheQ== IGFiZHVjdGVk IHN0YWxraW5n YW1u IGRlc2VydmluZw== IFJpdg== IEpvcmdl IHNjcmF0Y2hpbmc= IFNhdmluZw== aXBpbmc= IHRlYXNl IG1pc3Npb25hcnk= IE1vcnJvdw== VElNRQ== UHJlc2VudA== IGNoZW1vdGhlcmFweQ== dGVybmVzcw== IEhvbWVz IFB1cmR1ZQ== IHN0YXVuY2g= IFdoaXRuZXk= IFRIRVJF zrw= aWF0dXM= IEVybmVzdA== IERlcGxveQ== IGNvdmV0ZWQ= Rk1M IERpYWxvZ3Vl IGV4aXRlZA== ZnJ1aXQ= IG5lcmQ= IjoiIiwi IHZpdm8= cnVseQ== NDYw IEFtZW4= cmVoZW5zaWJsZQ== IOKY RElS IGFkaGVyZW5jZQ== IGNoZXc= IENva2U= IFNlcmdlaQ== ZGlnaXRhbA== IE5lY2s= Z2VudGx5 ZW50aGFs Lyk= IHdlYXJ5 IGd1aXNl IENvbmNvcmQ= IE9uaW9u YXRjaGVy IGJpbmdl IERpcmVjdGl2ZQ== IG1hbm5lZA== YW5zaw== IGlsbHVzaW9ucw== IGJpbGxpb25haXJlcw== Mzgz b2x5bg== b2R5bmFtaWM= IFdoZWF0 IEFsaWM= IGNvbG91cmVk IE5BRlRB YWJv IG1hY3Jvcw== aW5kZXBlbmRlbnQ= c3dlZXQ= IHNwYWM= IEthYnVs IMQ= ZW1l IGRpY3RhdGVk IHNob3V0cw== PXs= IHJpcHBpbmc= IFNoYXk= IENyaWNrZXQ= ZGlyZWN0ZWQ= IGFuYWx5c2Vk IFdBUlJBTlQ= YWdvbnM= IEJsYXplcnM= IGNoZWVyZWQ= IGFyaXRobWV0aWM= IFRhbno= Mzcz IEZsYWdz IDI5NQ== IHdpdGNoZXM= IEluY2x1ZGVk IEdhaW5lZA== IEJsYWRlcw== R2Ft IFNhbWFudGhh IEF0bGFudGlz IFByYXR0 IHNwb2lsZWQ= IElC IFJhbWlyZXo= UHJvYmFibHk= cmVybw== IE5n IFdhcmxvY2s= dHA= IG92ZXJoZQ== IGFkbWluaXN0cmF0aW9ucw== IHRpbnQ= IHJlZ2ltZW50 IHBpc3RvbHM= IGJsYW5rZXRz IGVwaXN0 IGJvd2xz IGh5ZHJhdWxpYw== IGRlYW4= IGp1bmc= IGFzY2VuZA== NzA1 IFNhbnRpYWdv w64= IHVuYXZvaWQ= IFNoYW1hbg== cmVi IHN0ZW1taW5n OTk4 IE1H c3RpY2tz ZXN0aGVzaWE= RVJP IG1vcmJpZA== IEdyaWxs IFBvZQ== YW55bA== IGRlbGV0aW5n IFN1cnZlaWxsYW5jZQ== IGRpcmVjdGl2ZXM= IGl0ZXJhdGlvbnM= IFJveA== IE1pbGt5 RmF0aGVy IHBhdGVudGVk NDQ3 IHByZWN1cnNvcg== IG1haWRlbg== IFBoZW4= IFZlZ2Fu IFBhdGVudA== S2VsbHk= UmVkZGl0b3I= IG5vZHM= IHZlbnRpbGF0aW9u IFNjaHdhcno= IHdpemFyZHM= IG9taW5vdXM= IEhlYWRz IEJH IGx1bWJlcg== IFNwaWVs IGlzRW5hYmxlZA== IGFuY2VzdHJhbA== IFNoaXBz IHdyZXN0bGVy cGhp IHl1YW4= IFJlYmVsbGlvbg== IGljZWJlcmc= IG1hZ2ljYWxseQ== IGRpdmVyc2lvbg== YXJybw== eXRobQ== IFJpZGVycw== IFJvYmJpZQ== IEthcmE= IE1haW50ZW5hbmNl IEhlcmI= IGhhcm1z cGFja2Vk IEZlaW5zdGVpbg== IG1hcnJ5aW5n IGJsZW5kaW5n IFJhdGVz IDE4ODA= IHdyaW5r IFVuY2g= IFRvcmNo ZGVzY3JpYmVk IGh1bWFub2lk aWxpdGF0aW5n IENvbnY= IEZlbGQ= SUdIVFM= IHdoaXN0bGVibG93ZXI= b3J0bXVuZA== ZXRzeQ== YXJyZXR0 IE1vbm8= IElrZQ== IENOQkM= IFdBWQ== IE1ETUE= IEluZGl2aWR1YWxz IHN1cHBsZW1lbnRhbA== IHBvd2VyaG91c2U= IFN0cnU= Rm9jdXM= YXBoYWVs IENvbGxlZw== YXR0aQ== WkE= IHBlcmVubg== IFNpZ25hdHVyZQ== IFJvZG5leQ== IGN1YmVz aWRkbGVk IERhbnRl IElOVg== aWxpbmd1YWw= IEN0aA== IHNvZmE= IGludGltaWRhdGU= IFJvZQ== IERpcGxvbQ== IENvdW50cmllcw== YXlzb24= IGV4dHJhZGl0aW9u IGRpc2FibGluZw== IENhcmRpZmY= IG1lbW9yYW5kdW0= IFRyYWNl ID8/Pw== c2VjdG9y IFJvdWhhbmk= IFlhdGVz IEZyZWV6ZQ== IGJsYWRkZXI= TW90b3I= IFByb21pc2U= YW50YXN5 IGZvcmVzZWVhYmxl IENvbG9nbmU= Y29udGFpbmVy IFRyZWVz IEdvcnM= IFNpbmNsYWly IGJhcnJpbmc= a2V5ZQ== IHNsYXNoZWQ= IFN0YXRpc3RpY2Fs 6Yc= IOKWug== QWxsb3dz IGh1bWlsaXR5 IGRyaWxsZWQ= IEZ1cm4= NDQz IHNld2FnZQ== IGhvbWVwYWdl IGNvdXJ0eWFyZA== IHZpbGU= IHN1YnNpZGlhcmllcw== YWpv ZGlyZWN0b3J5 IGFtbW9u VmVycw== Y2hhcmdlcw== IH19 IENoYWlucw== IDI0Ng== bm9i IHBlcmNlcHQ= IGdyaXQ= IGZpc2hlcm1lbg== IElyYXFpcw== IERJU1RS IEZVTEw= IEV2YWx1YXRpb24= Z3JhcGg= YXRpYWw= IGNvb3BlcmF0aW5n IG1lbGFu IGVubGlnaHRlbmVk IGFsaQ== dGFpbGVk IHNhbHV0ZQ== IHdlYWtlc3Q= IEJ1bGxkb2dz VUE= IEFsbG95 IHNlbWVu b2NlbmU= IFdpbGxpYW1zb24= c3By LOKAlA== IEdG aXR0ZW5z QmVhdA== IEp1bms= aXBoYXRl IEZhcm1lcnM= IEJpdGNvaW5z aWdlcnM= ZGg= IExveWFs cGF5ZXI= IGVudGVydGFpbmVk IHBlbm5lZA== IGNvdXBvbg== UXVldWU= IHdlYWtlbmluZw== Y2Fycnk= IHVuZGVyZXN0aW1hdGU= IHNob290b3V0 IGNoYXJpc21hdGlj IFByb2NlZHVyZQ== IHBydWRlbnQ= aW5hbmNlcw== IHJpY2hlcw== IGNvcnRpY2Fs IHN0cmlkZXM= IGRyaWI= IE9pbGVycw== NTQw IFBlcmZvcm0= IEJhbmdrb2s= IGV1dGg= U0VS IHNpbXBsaXN0aWM= dG9wcw== Y2FtcGFpZ24= UXVhbGl0eQ== IGltcG92ZXJpc2hlZA== IEVpc2VuaG93ZXI= IGF1Z21lbnQ= IEhhcmRlbg== IGludGVydmVuZWQ= IGxpc3RlbnM= IEtvaw== IHNhZ2U= IHJ1YmJpc2g= IERlZA== IG11bGw= cGVsbGluZw== IHZpZGVvdA== UHJvZHVjdGlvbg== REo= bWlhaA== IGFkYXB0YXRpb25z IG1lZGljYWxseQ== IGJvYXJkZWQ= IGFycm9nYW5jZQ== IHNjcmFwcGVk IG9wcHJlc3M= Rk9STUFUSU9O IGp1bmN0aW9u NDE1 RUVFRQ== U2tpbGw= IHN1YmR1 IFN1Z2dlc3Q= IFBldHQ= IGxldHQ= IE1hbmlw IENhZg== IENvb3BlcmF0aW9u VGhlcg== IHJlZ2FpbmVk tuY= cmVmbGVjdA== IHRodWdz IFNoZWxieQ== IGRpY3RhdGVz IFdlaW5lcg== IEhhbGU= IGJhdHRsZWdyb3VuZA== c2NoaWxk IGNvbmRvbA== aHVudA== b3NpdG9yaWVz IGFjY3VzZXM= RmlsZW5hbWU= IHNocmk= IG1vdGl2YXRl IHJlZmxlY3Rpb25z TnVsbA== IExvYmJ5 pbU= IFNBVEE= IEJhY2t1cA== 0YM= bmlu IENvcnJlY3Rpb24= IGp1aWN5 dXRyYQ== IFByaWM= IHJlc3RyYWluaW5n IEFpcmJuYg== IEFycmVzdA== IGFwcHJvcHJpYXRpb25z IHNsb3Blcw== IG1hbnNsYXVnaHRlcg== IHdvcmtpbmdz IEh1c3M= IEZyZXk= TGVhdmU= IEhhcm1vbnk= IEZlZGVy IDQzMA== IHRyZW5jaA== IGdsYWRseQ== IGJ1bGxwZW4= IEdhdQ== Ym9uZXM= IGdyb292ZQ== IHByZXRleHQ= 44WL IHRyYW5zbWl0dGVy IENvbXBvbmVudA== IHVuZGVyYWdl IEVtcGlyZXM= VGlsZQ== IG95 IE1hcnZpbg== IENBUw== IGJsb3Nz IHJlcGxpY2F0ZWQ= IE1hcmluZXJz TWFyY3Vz IEJsb2Nrcw== IGxpYmVyYXRlZA== IGJ1dHRlcmZseQ== RmVlbA== IGZlcm1lbnRhdGlvbg== IHlvdXR1YmU= IG9mZmVuZA== IFRlcm0= cmVzaXN0 IGNlc3NhdGlvbg== IGluc3VyZ2VuY3k= IGJpcg== IFJhaXNl NTk1 IGh5cG90aGVzZXM= NTAy IHBsYXF1ZQ== b2NyYXQ= IGphY2tldHM= IEh1ZmZQb3N0 YW1vbmc= IGNvbmZlcg== NDg3 IExpbGx5 IGFkYXB0aW5n IEZheQ== IHNob3ZlZA== dmVj IHJlZmluZQ== IGdvbg== IGd1bm1lbg== emFp IFNodXR0bGU= IEl6YW4= IDE5MTM= IHBsZXRob3Jh wrfCtw== IDUxMA== IHB1YmVydHk= IDI0MQ== IFdlYWx0aA== IEFsbWE= IE1FTQ== IEFkdWx0cw== Q2Fz cHJpc29u UmFjZQ== IHdhdGVycHJvb2Y= IGF0aGxldGljaXNt IGNhcGl0YWxpemU= IEp1aWNl IGlsbHVtaW5hdGVk IFBhc2NhbA== IGlycml0YXRpb24= IFdpdG5lc3Nlcw== YWRsZQ== IEFzdHJv IGZheA== IEVsdmlz UHJpbWFyeQ== IExpY2g= IEVsdmVz IHJlc2lkaW5n IHN0dW1ibGU= MzE5 IFBLSw== IGFkdmVyc2FyaWVz RE9T IFJpdHVhbA== IHNtZWFy IGFyc29u aWRlbnRhbA== IHNjYW50 IG1vbmFyY2h5 IGhhbGZ0aW1l IHJlc2lkdWU= IGluZGlnbg== IFNoYXVu IEVsbQ== YXVyaQ== QWZm V0FUQ0g= IEx5b24= aGVscHM= MzYx IGxvYmJ5aXN0 IGRpbWluaXNoaW5n IG91dGJyZWFrcw== IGdvYXRz ZmF2b3JpdGU= IE5haA== c29uaWFu IEJvb3N0ZXI= IHNhbmRib3g= IEZhcmU= IE1hbHRh IGF0dFJvdA== IE1PUg== bGRl IG5hdmlnYXRpbmc= VG91Y2g= IHVudHJ1ZQ== IERpc2FzdGVy IGx1ZGljcm91cw== UGFzc3dvcmQ= IEpGSw== YmxvZ3Nwb3Q= NDE2 IFVOREVS ZXJuYWw= IGRlbGF5aW5n VE9Q IGltcGxhbnRz IEFWRw== IEh1Z2U= YXR0cg== IGpvdXJuYWxpc3RpYw== IFBleXRvbg== IElB UmFw Z29hbA== IFByb2dyYW1tZQ== IHNtYXNoaW5n d2l2ZXM= cHJpbnRsbg== IFBsYWd1ZQ== aW51cw== RUVQ IGNydWlzZXI= IFBhcmlzaA== dW1pbml1bQ== IG9jY3VwYW50cw== IEppaGFk bW9w IHBpbnQ= IGhlY3Q= IE1lY2Nh ZGlyZWN0b3I= IEZ1bmRpbmc= IE1peGVk IHN0YWc= VGllcg== IGd1c3Q= IGJyaWdodGx5 b3JzaQ== IHVwaGlsbA== UkQ= IGxlc2lvbnM= IEJ1bmR5 bGl2aW91cw== IGJpb2xvZ2lzdA== IEZhY3VsdHk= IEF1dGhvcml6YXRpb24= IDI0NA== QWxsb3c= 77g= IEdpdWw= IHBlcnRpbmVudA== b3RhdXI= ZXNzZQ== IFJvb2Y= IHVubWFubmVk MzUx IFNoYWs= IE9yaWVudA== IGVuZGFuZ2Vy RGly IHJlcGxlbg== ZWRpZW50 IHRhaWxvcg== IGdhZGdldHM= IGF1ZGlibGU= 4piG TmljZQ== IGJvbWJhcmQ= IFJhcGU= IGRlZmlhbmNl IFRXTw== IEZpbGlwaW5v IHVuYWZmZWN0ZWQ= ZXJ2YXRpdmVz IHNvYXJlZA== IEJvbHRvbg== IGNvbXByb21pc2luZw== IEJyZXdlcnM= UkFM IEFITA== aWN5Y2xl IHZhbXBpcmVz IGRpcHBlZA== b3llcg== IFhJSUk= IHNpZGV3YXlz IFdhc3Rl IERpc3M= IOKUnOKUgOKUgA== JC4= IGhhYml0YXRz IEJlZWY= dHJ1dGg= dHJhaW5lZA== c3BsaXQ= UnVz QW5keQ== IEJyYW0= UkVQ cGlk 6KOF IE11dGFudA== QW5pbQ== IE1hcmluYQ== IGZ1dGlsZQ== aGlnaGVzdA== ZnJlcXVlbmN5 IGVwaWxlcHN5 IGNvcGluZw== IGNvbmNpc2U= IHRyYWNpbmc= IFNVTg== cGFuZWw= IFNvcGhpZQ== IENyb3dsZXk= IEFkb2xm IFNob290ZXI= IHNoYWt5 IElH IExpZXM= IEJhcmJlcg== cGtn IHVwdGFrZQ== IHByZWRhdG9yeQ== VUxUUw== Lyoq IGludG94aWNhdGVk IFdlc3Ricm9vaw== b2RkZXI= aGVtZW50 IGJhc2VtYW4= QVBE c3RvcmFnZQ== IEZpZnR5 ZWRpdG9y R0VO VVRJT04= aXJ0aW5n IHNld2luZw== cmlmdA== IGFnb255 IFNhbmRz IDI1NA== Q2FzaA== IGxvZGdl IHB1bnQ= TmF0dXJhbA== IElkZWFz IGVycm9uZW91cw== IFNlbnNvcg== IEhhbm5pdHk= IDE5MjE= IG1vdWxk IEdvbg== a2F5YQ== IGFub255bW91c2x5 IEtFWQ== IHNpbXVsYXRvcg== V2ludGVy IHN0cmVhbWVk NTA3 PyIs IHRlYXNlZA== IGNvZWZmaWNpZW50 IHdhcnRpbWU= IFRIUg== Jycu IEJhbmtpbmc= bXBpcmU= IGZhbmRvbQ== IGxpYQ== R2E= IGRvd25oaWxs IGludGVycHJldGluZw== SW5kaXZpZHVhbA== Tm9ybQ== IGplYWxvdXN5 Yml0Y29pbg== IHBsZWFzdXJlcw== IFRveXM= IENoZXZyb2xldA== IEFkdmlzb3I= SVpF IHJlY2VwdGlvbnM= NzA2 Q3Jv IDI2Mg== IGNpdHJ1cw== aXJ1 UmV2aWV3ZXI= amVjdGVk VUVT YW56 MTk4MQ== IFdvcmtlcg== IGNvbXBsaWVk b3Jlc2NlbnQ= Y29udGluZW50YWw= VG9u IFByaXNt IFNoZWVw IDI4OA== bm94 IFZvZw== T3Jk IHJlYWxtcw== dGVr IGlycmlnYXRpb24= IGJpY3ljbGVz IGVsZWN0cm9uaWNhbGx5 cG9seQ== dGFsbA== KCkpOw== IGFlc3RoZXRpY3M= IEludGVncmF0ZWQ= RXhwbG9yZQ== IGR1bms= NDc2 cGFpbg== IEphY3F1ZXM= IERtaXQ= RnJhbWVz IHJldW5pdGVk IGh1bWlk RHJv UG9saXRpY2Fs IHlvdXRoZnVs IGVudGFpbHM= IG1vc3F1aXRv MzYz c3BlY2llcw== IGNvb3JkaW5hdGluZw== IE1heWhlbQ== IE1hZ251cw== TW91bnQ= SW1wcm92ZWQ= IFNUQVRF QVRUTEU= IGZsb3dlZA== IHRhY2tsZWQ= IGZhc2hpb25lZA== IHJlb3JnYW4= aXZhcmk= ZmluZ2Vy IHJlbHVjdGFudGx5 ZXR0aW5n IFZhbmQ= eW91bmc= IEdhcmxhbmQ= IHByZXN1bXB0aW9u IGFtZW5pdGllcw== IFBsZWFzYW50 b25lbnRpYWw= IE94eQ== IG1vcmFscw== IFlhaA== UmVhZHk= U2ltb24= RW5o RGVtb24= IGNsaWNo TW9uaXRvcg== IERV IHdlbGNvbWVz IHN0YW5kb3V0 IGRyZWFkZnVs IGJhbmFuYXM= IGJhbGxvb25z aG9vdGluZw== YmFzaWM= IHN1ZmZpeA== IGR1bHk= Y2Fubw== Q2hhaW4= YXRvcw== IGdlb3BvbGl0aWNhbA== ICgm IEdlbWluaQ== w4PDgsODw4LDg8OCw4PDgsODw4LDg8OCw4PDgsODw4LDg8OCw4PDgsODw4LDg8OCw4PDgsODw4LDg8OCw4PDgsODw4LDg8OCw4PDgsODw4LDg8OCw4PDgsODw4LDg8OCw4PDgsODw4LDg8OCw4PDgsODw4LDg8OCw4PDgsODw4I= IGFjcXVpdHRlZA== THVjaw== cHJvdGVjdA== MTAyNA== IHNjYXJjaXR5 IG1pbmRmdWxuZXNz ZWNpZGVk RE4= cHJpbWU= IFByZXNpZGVudHM= IFZJREVP ICjiiJI= YWRkb2Nr Tk9S IFBydQ== cHVu IExPTA== KSkpKQ== IExpcXU= IFNBUw== IHN0eWxpbmc= IHB1bmlzaG1lbnRz IG51bWI= IGFzY2VydGFpbg== IFJvY2tpZXM= Zmx1 VGh1bWJuYWls IHBlcnBldHJhdGVk IFNlbWk= IGRpc2FybQ== IE9sZGVy IEV4Y2VwdGlvbg== IGV4cG9uZW50aWFsbHk= IENvbW11bml0aWVz IGFib2xpc2g= IFBhcnRuZXI= cHRvbXM= IDc3Nw== IEZvbGV5 IENhc2Vz IGdyZWFzZQ== IFJlYmlydGg= R3JvdW5k IDsp IERvY3RyaW5l aWtpbmk= WWU= IEJsb3Nzb20= IHBlcnNpc3Rz YmlsbA== IGluZnVzaW9u IGJ1ZGRpZXM= OTEx IFBhdGllbnQ= IGRlbW9z IGFjcXVhaW50YW5jZQ== IFBhdw== YXRhcmk= IHhtbA== IGZhc2NpbmF0aW9u IFNlcnZl z4I= YnJhbmRlZA== IGF6 UmV0dXJucw== IG92ZXJzaGFkb3c= IHJvYW0= IHNwZWVkeQ== bnVtYmVyZWQ= aGVsaWFs IGRpc2NpcGxl IGFzc3VyYW5jZXM= Z2l2ZW4= cGVjdGluZw== IE5hdGFsaWU= 55Sw IG1vc3F1aXRvZXM= cm90ZWlu IG51bWVyaWM= IGluZGVwZW5kZW50cw== IHRyYW5zaXRpb25hbA== IHJlYWN0aW9uYXJ5 IE1lY2hkcmFnb24= ZG9jdG9y IHNob3J0ZXN0 IHNlcXVlbnRpYWw= IEJhYw== IEFjY291bnRz 44GM YWNoeQ== cmFjdGl2ZQ== IFJlZ2ltZW50 IGJyZWF0aHRha2luZw== ZmZpY2llbmN5 IEJhdGVz IDMxMQ== IHdhcmRyb2Jl ZnRz IEJlcms= U2ltcGx5 IFJpdmVyc2lkZQ== aXZlcmluZw== aWRlbnRpYWw= bHVjZW50 IGVucmljaGVk IENvbnZlcg== IEdpdmluZw== 44OZ IGxlZ2FsaXpl IEZUQw== IGZyZWFraW5n TWl4 IHRlcnJlc3RyaWFs ZXNpYW4= Y2llbnRz V2luZw== TE9BRA== IGxlZGdl IFZpb2xlbnQ= IE1ldGFsbA== IDMwOA== IHNvdXRoZWFzdGVybg== aGV0dG8= TWVhdA== IHNsb3dkb3du IHJldHJlYXRlZA== SmVyZW15 ZW5kYXM= KioqKio= ZXJpYw== IHJlaW5z b3BwYWJsZQ== IEh1bWFuaXR5 ZWFyYW5jZXM= cmlnYW4= Q2FtZXJh IHdhaXZlcnM= c29j IGFsdGVyYXRpb24= dHJhbnNmb3Jt IENlbWV0ZXJ5 NTA2 IGluZGVmaW5pdGU= IHN0aW11bGF0aW5n eWc= NjAz IFNvcA== IGRlc2NyaXB0aXZl UGhhc2U= IEVkbXVuZA== IHBuZXVtb25pYQ== dmVudHVz QW1i IGxhYm9yYXRvcmllcw== IEV4Y2x1c2l2ZQ== dWdhcg== V2VyZQ== IG1hbGZ1bmN0aW9u IGhvbW9zZXh1YWxz IC0tLS0tLS0= dW5p IHR1cmJpbmVz IEVxdWl0eQ== RHU= IG1pbmRlZA== IFJI IEJsYWNraGF3a3M= IGZlYXRz IDE3MDA= cmVwbA== MzYy bGFkZW4= IGluZGlzcGVuc2FibGU= bHlzcw== dHRp IHJlZWw= IGRpdmVydGVk IGxpa2VuZXNz IHN1YnNjcmlwdGlvbnM= IGZpbmdlcnQ= IGZpbHRoeQ== ZGVzdHJ1Y3Q= ZHJhZnQ= IEJlcm5hcmRpbm8= bGF1bmNo IHBlcnBsZXg= IFNVTQ== Y2FyYg== IHN3ZWF0ZXI= IFZlbnR1cmU= IEphZw== IENlbGVi IFZvdGVycw== IHN0ZWFkZmFzdA== IGF0aGxldGljcw== IEhhbnNvbg== IERyYWM= VHJhY2tlcg== IGNvbW1lbmQ= IFByZXNpZGVuY3k= IERJRA== aW5mb3JtZWQ= IHdlYnBhZ2U= UHJldHR5 IGZvcmNlZnVsbHk= 44OD44Kv IHJlbG9jYXRpb24= IHNhdGlyZQ== 4ok= IFN1bmRlcmxhbmQ= 5oQ= Vm9pY2U= Pz8/Pz8/Pz8= IGluZm9ybWFudA== IGJvd2Vs IFVuaWZvcm0= IC4uLiI= IHB1cmdl IHBpY25pYw== IFVtYg== IFVQREFURQ== IFNhcHBoaXJl IFN0YWxs bGVhcm4= IG9iamVjdGl2ZWx5 IG9ibGl0ZXI= IGxvb3Bob2xl IGpvdXJuZXlz IG9taXNzaW9u UHJvcw== IFNpZG5leQ== cGxvbWE= IHNwcmF5ZWQ= IGd1cnU= IHRyYWl0b3I= IHRpbWV0 IHNuYXBwaW5n IFNldmVudA== dXJuYWw= IFVraXA= IGJvd2Vk cG9yYWw= bGliZXJhbA== Um9z UXVlc3Rpb25z aU9T IHN1bW1hcml6ZQ== U1RBVA== IDE4NTA= YXBlc3Q= IGxlbmRlcg== IFZhcmlhYmxl YnJpbmdpbmc= IExPUkQ= LCk= IGNvbGxhcHNlcw== eGlldHk= IE5lZA== WUQ= IFNjaGE= IGFudGlib2R5 IGRpc2JhbmQ= eXJl aWxsdXNpb24= IHJvdmVy c2hlZA== IEhpcm9zaA== Y2Np IGNhbGFt IE1vcnRvbg== UGludGVyZXN0 IDE5Mjg= IEV1cmFz b3JkZXM= IGZlbmNlcw== IEludmVudG9yeQ== IFZhbGVuY2lh IFVk IFRpZmY= IHNxdWU= IHF1b3RhdGlvbg== IHRyb3VibGVzb21l ZXJrZXI= UVVFU1Q= IEtpbmdkb21z c291dGg= IGxldnk= UHJpbmNl IFN0aW5n IG5pY2tuYW1lZA== IGFwcGU= IHBob3RvZ3JhcGhpYw== IGNvcnB1cw== cmVmZXJlbmNl IFRyb2c= VW50 KT0o IExhdHZpYQ== IGFjdGl2YXRpbmc= IGxpY2Vuc2Vl IGRpc3Bhcml0aWVz IE5ld3NsZXR0ZXI= 44OD44OI IGZyZWVpbmc= IEplZXA= IFBlcmNlcHRpb24= aW5zaw== IHNpbGljb25l IEhheWRlbg== TGVhbg== IFN1enVraQ== aWJyYXJpYW4= NjY4 IHNwb3I= IGNvcnJlbGF0aW9ucw== YWdoZXR0aQ== IHR1YmVy IElQQ0M= aWx1cw== IFZ1 IHdlYWx0aGllc3Q= IENhcmJ1bmNsZQ== YW56YQ== IGZvb2xlZA== IFp1cg== IGRhZGR5 cmFubw== aWxpYW4= IGtub2Nrb3V0 Zm1hbg== cmVxdWlyZWQ= IFdpa2lsZWFrcw== IER1ZmZ5 T05U IGluc29s IE9iamVjdHM= IGJvdQ== IE5vcmRpYw== IEluc2VydA== c2Nhbg== IGRhbmNlcnM= IGlkaW90cw== bWFqb3JpdHk= IE5ldmlsbGU= IEZyZWVCU0Q= IHRhcnQ= cGFuaWM= Njkw IGNvY29h IHNhbXBsZWQ= IGxvb2t1cA== SW5kdXN0 IGluamVjdGlvbnM= Z2VucmU= IGF1 IHJvYWR3YXk= IGdlbml0YWxz S2luZA== IEV4YW1pbmVy IFlheg== RnJlc2g= IHBhcmFseXNpcw== IEFsdW1pbnVt IHJlYXA= b2vDqQ== IHNsb3BweQ== IFR1bm5lbA== cG9zaXVt bmVyeQ== ZW5pYw== IGhlcmJhbA== IE91dGVy IEJ1aWxkZXI= IGluY3Vy IGlkZW9sb2dpZXM= IGJhY2t1cHM= Y29uc3VtaW5n IERldGVjdA== ZGVjaw== IEtOT1c= IEdyZXQ= IE1JQw== IHRvdWdobmVzcw== IEV4aGliaXQ= IGhpdmU= TGVz IFNDSE9PTA== IEF0YXJp YWxkZQ== IE51bGw= YW5kZXN0aW5l bW91c2U= IGJyaWdhZGU= NDg5 IHJldm9s IExhd3Nvbg== IFdhaA== b3BvbHk= ZWJ0ZWQ= IFNhdW5kZXJz IDMxMw== IFdpbmM= IHRhYm9v IEhlbG1ldA== IHdlZGdl Y2hpcA== IFRpbmE= Ymc= IGluZnVyaQ== cm4= IGFub21hbGllcw== IFN5bmM= IEV4YW0= IENvbW1pdA== IERpYXJ5 IEFMU08= IERlYm9y b21lZGljYWw= IGNvbXByZWhlbnNpb24= NjU1 IGVtcG93ZXJpbmc= IGlyZQ== IGp1aWNlcw== IEVUSA== IEJveGluZw== PSIv IGZhY2lsaXRhdGVk cG9rZQ== IFBhcnNvbnM= IE1vZGVy dHJhdmVs IGNpdmlsaXphdGlvbnM= IGxpYmVydGFyaWFucw== IHJ1bmU= IENsYXJrcw== YXRoZWQ= IGNhbXBhaWduZXJz IERpc3BhdGNo IEZhaHJlbmhlaXQ= IENhcGNvbQ== LS0tLS0tLS0tLQ== IGxhY2U= IGRyYWluaW5n IGxpbmVy IEFydGlmaWNpYWw= w6lu dGFzaw== XSku IEdNTw== IE9wZXJhdG9y b3JkaW5hcnk= IEluZmx1ZW5jZQ== IFVwcw== IHBvdGVuY3k= dXNzZW4= b3Nwb25z IFN3aW0= IERlYWRsaW5l VW5pdHk= IGN1bGluYXJ5 IGVubGlnaHRlbm1lbnQ= IHdlYXJlcg== IG1pbmVk IHBseQ== IGluY2VzdA== IERWRHM= V2Fsaw== QlRD VHJhZGU= IGRldmFs aWJhbmQ= IE92ZXJzaWdodA== UGFsZXN0aW5pYW4= IGRhcnQ= IG11bA== TFI= IHJlbW92YWJsZQ== IFJlYWxtcw== 7J0= IG1pc2Nhcg== IFZ1bGthbg== Njg1 w6hyZQ== IFNhcA== IG1lcmdpbmc= IENhcmx5 Y2hlc3Rlcg== IGJyaXNr IGx1eHVyaW91cw== IEdlbmVyYXRvcg== IGJpdHRlcm5lc3M= IGVkaWJsZQ== IDI0Mw== VEc= IHJlY3RhbmdsZQ== V2l0aE5v YmVsb3c= SmVubg== IGRhcmtlc3Q= IGhpdGNo IGRvc2FnZQ== IHNjYXZlbg== IEtlbGxlcg== IElsbHVzdHJhdGVk Q2VydGFpbmx5 IE1hdmVyaWNrcw== TWFyZ2luYWw= IGRpYXJyaGVh IGVub3Jtb3VzbHk= IDk5OQ== c2hy cXVhcnQ= IGFkYW1hbnQ= IE1ldw== IHJlbm92YXRpb24= IGNlcnZpY2Fs IFBlcmNlbnRhZ2U= ZW5lcnM= IEtpbWJlcg== IGZsb2F0cw== IGRleA== IFdpdGNoZXI= IFN3YW5zZWE= ZG0= IHNhbHR5 eWVsbG93 IGNhcGU= IERyYWlu IFBhdWxh IFRvbGVkbw== bGVzaQ== TWFnYXppbmU= IFdpY2s= IE1u IEFjaw== IFJpZGluZw== QVNPTg== IGhvbW9waG9iaWM= QVJQ IHdhbmRlcmVk Q1BV b29kb28= IFBpcGU= IHRpZ2h0ZW5pbmc= IEJ1dHQ= MzE4 IGRlc2VydGVk U2Vzc2lvbg== IGZhY2lsaXRhdGluZw== SnVtcA== IGVtZXJnZW5jaWVz T1dFUg== IGV4aGF1c3RpdmU= IEFGVEVS IGhlYXJ0YmVhdA== IExhYmVs YWNreQ== IENlcnRpZmllZA== aWx0cmF0aW9u WmU= IFV0dA== IDEzMDA= IHByZXN1bWU= IERpc3A= IHN1cmdlZA== IGRvbGxz Q29sdW1i IGNoaW1wYW4= IFJhem9y IHRpY2tz IGNvdW5jaWxsb3I= IHBpbGdyaW1hZ2U= IFJlYmVscw== IFFD IEF1Y3Rpb24= eGlh aWtr YnJlZA== IGluc2VydGlvbg== IGNvYXJzZQ== ZEI= U0VF IFphcA== IEZvbw== IGNvbnRlbXBvcg== IFF1YXJ0ZXJseQ== b3Rpb25z IEFsY2hlbWlzdA== IFRyZXk= IER1bw== U3dlZXQ= ODA0 IEdpb3Y= IGZ1bm4= Tmlu aG9mZg== IHJhbWlmaWNhdGlvbnM= IDE5MjI= IEV4cGVydHM= YXplcw== IGdhcm1lbnRz YXJpYWw= IE5hYg== IDI1Nw== IFZlZA== IGh1bW9yb3Vz IFBvbXBl IG55bG9u IGx1cmtpbmc= IFNlcmdleQ== IE1hdHRpcw== IG1pc29neW55 IENvbXBvbmVudHM= IFdhdGNoaW5n IEZvbGs= cmFjdGljYWw= QnVzaA== IHRhcGVk IGdyb3VwaW5n IGJlYWRz IDIwNDg= IGNvbmR1 cXVlcnF1ZQ== UmVhZGluZw== IGdyaWV2YW5jZXM= VWx0cmE= IGVuZHBvaW50 SGln IFN0YXRpYw== IFNjYXJib3JvdWdo THVh IE1lc3Np YXF1 IFBzeU5ldA== IFJ1ZGQ= IGF2ZW51ZQ== dnA= SmVy IHNoYWR5 IFJlc2lzdA== IEFydGVtaXM= IGNhcmVsZXNz IGJyb2tlcnM= IHRlbXBlcmFtZW50 IDUyMA== VGFncw== IFR1cm5pbmc= IHV0dGVyZWQ= IHBlZGQ= IGltcHJvdmlzZWQ= IDoo IHRhYmw= IHBsYWlucw== MTYwMA== cHJlc3N1cmU= IEVzc2VuY2U= bWFyZ2lu ZnJpZW5kcw== IFJlc3RvcmF0aW9u IHBvbGx1dA== IFBva2Vy IEF1Z3VzdGluZQ== IENJUw== IFNFQUw= b3JhbWE= IHRod2FydA== c2Vlaw== IHBhZ2Fu wro= Y3B1 IGdhcm4= IGFzc29ydG1lbnQ= IElMQ1M= dG93ZXI= UmVjb21tZW5kZWQ= IHVuYm9ybg== IFJhbmRvbVJlZGRpdG9y IFJhbmRvbVJlZGRpdG9yV2l0aE5v IHBhcmFseXplZA== IGVydXB0aW9u IGludGVyc2VjdA== IFN0b2tl IFNjbw== QmluZA== 5b4= IFBORw== IE5lZ2F0aXZl IE5PQUE= TGVvbg== IGFsbG95 IExhbWE= IERpdmVyc2l0eQ== NTc1 IHVuZGVyZXN0aW1hdGVk IFNjb3I= IG11cmFs IGJ1c3RlZA== c29vbg== bGlm IG5vbmV4 IGFsbGVyZ3k= IFVuZGVyd29ybGQ= IFJheXM= IEJsYXNpbw== IGhycw== IERpcg== IDMyNw== Ynl0ZXI= IHJlcGxhY2VtZW50cw== IGFjdGl2YXRlcw== cml2ZWQ= TUg= IHBhbnM= IEhJ IGxvbmdpdHVkaW5hbA== IG51aXNhbmNl YWxlcg== IHN3ZWxs IFNpZ25lZA== c2Np IElzbGVz IEFHQQ== IGRlZmlhbnQ= IHNvbmlj b2Nvbg== S0M= IEFpbQ== dGll YWhhaA== IG1M RFg= IGJpc2M= IEJpbGxib2FyZA== IFNZU1RFTQ== TkVZ Z2FhcmQ= IGRpc3RyZXNzZWQ= Zm9ybWVybHk= QWxhbg== IGNoZWZz IG9wdGljcw== IENvbWV0 IEFNQw== IHJlZGVzaWduZWQ= aXJtYXRpb24= IHNpZ2h0aW5ncw== Mzgy MzEx IFdC IGNvbnRyYWN0aW9u IFRPVEFM RHVhbA== IHN0YXJ0bGVk IHVuZGVyc3RhbmRhYmx5 IHN1bmdsYXNzZXM= RVRIT0Q= IGRvY2tlcg== IHN1cmZpbmc= IEhFTA== IFNsYWNr dG9uZXM= IHNoYWx0 VmlzdWFs NDk4 RGVwYXJ0bWVudA== Y3Vzc2lvbg== IHVucmVzdHJpY3RlZA== IHRhZA== IHJlbmFtZQ== ZW1wbG95ZWQ= IGVkdWNhdGluZw== IGdyaW5uZWQ= YmVkcm9vbQ== IEFjdGl2aXRpZXM= IFZlbHZldA== IFNXQVQ= IHNodWZmbGU= aWdvcg== IHNhdHVyYXRpb24= RmluZGluZw== Y3JlYW0= aWN0ZXI= IHZvZGth dHJhY2tpbmc= dGVj IGZvcmVncm91bmQ= aWVzdGE= IHZlaGVtZW50 IEVDQg== IFRpZQ== RXk= IHR1cnRsZXM= IFJhaWxyb2Fk IEthdHo= IEZyYW1lcw== IG1lbmFjZQ== IEZlbGxvd3NoaXA= IEVzc2VudGlhbA== dWdnaXNo IGRyaXA= Y2h3aXR6 IEt5b3Rv c2I= IE5pbmE= UGFyYW1ldGVy IGFsYXJtcw== IENsYXVk IHBpb25lZXJpbmc= IGNoaWVmbHk= IFNjcmVhbQ== Q29sbGVjdGlvbg== IHRoYW5rZnVsbHk= IFJvbmFsZG8= 5a2Q c3RyaXA= IERpc25leWxhbmQ= Y29tbWVyY2lhbA== U2VlaW5n U291bA== IGV2YWN1YXRl IGNpdg== IEFzaGU= IGRpdmlkZXM= IERhZ2dlcg== cmVoZW5zaXZl IGJlcnJpZXM= IERG IHN1c2hp IHBsdXJhbGl0eQ== V0k= IGRpc2FkdmFudGFnZWQ= IGJhdHRhbGlvbg== b2JpbGVz NDUx IGNsaW5n IHVuZGVuaWFibGU= IExvdW5nZQ== IGhhdW50 cGhl IHF1YW50aWZ5 IGRpZmZlcmVk IFsqXQ== IFZpeg== Y3Vt c2xhdmU= IHZpZGVvZw== IHF1YXI= IGJ1bmRsZXM= IEFsb25zbw== dGFja2xl IG5ldXJvbmFs IGxhbmRzbGlkZQ== Y29uZmlybWVk IERlcHRo IHJlbmV3YWJsZXM= QmVhcg== IE1hY2Vkb25pYQ== IGplcnNleXM= IGJ1bms= IFNwYXdu IENvbnRyb2xz IEJ1Y2hhbmFu IHJvYm90aWNz IGVtcGhhc2l6aW5n IFR1dG9yaWFs aHlw aXN0b24= IG1vbnVtZW50YWw= 5rA= IENhcnJ5 IHRic3A= ZW5hbmNl SGlsbA== YXJ0aGVk IHJvdHRlbg== RGVhbg== IHR3aXN0aW5n IGdvb2R3aWxs IGltbWVyc2lvbg== TGl2aW5n IGJydXNoZXM= IENHSQ== IEF0aw== dHJhZGl0aW9uYWw= IHBoYW50b20= IFN0YW1pbmE= IGV4cGFuc2lvbnM= IE1hcmlu IGVtYmFya2Vk IEVn aW50ZXN0aW5hbA== IFBFT1BMRQ== IEJvb3Ro IEFwcGFsYWNo IHJlbGVnYXRlZA== VlQ= TUlU IG11c3Rlcg== IHdpdGhkcmF3aW5n IG1pY3Jvc2NvcGU= IEdhdGhlcmluZw== IENyZXNjZW50 IEFyZ2VudGluZQ== IERlY3Jl IERvbWluaWM= IGJ1ZHM= YW50YWdl IElvbg== IHdpZGVuZWQ= T05TT1JFRA== IEdsb3Zlcw== aWFubm9wb3Vsb3M= cmF6ZW4= ZmVlbA== IHJlcGF5bWVudA== IGhpbmRzaWdodA== IFJFQUxMWQ== IFBpc3RvbA== IEJyYWg= IHdhdHRz IHN1cnZpdmVz IGZsdXJyeQ== aXNzeQ== QWxlcnQ= IFVydWd1YXk= UGhvZW5peA== U2xvdw== IEdyYXZl IEZpcg== IG1hbmFnZWFibGU= IHRhcmlmZg== IFVEUA== IFBpc3RvbnM= IE5pZ2VyaWFu IHN0cmlrZW91dHM= IGNvc21ldGljcw== d2hlbG1pbmc= ZmFi Y2FwZQ== cHJveHk= IHJldGhpbms= IG92ZXJjb21pbmc= c2ltcGxl IHdvbw== IGRpc3RyYWN0aW5n IFN0YW50b24= IFR1bHNh IERvY2s= NjU5 IGRpc2NvcmQ= IEVtYWNz IFZlcw== IFJPQg== IHJlYXNzdXJpbmc= IGNvbnNvcnRpdW0= TXVzbGltcw== MzIx IHByb21wdHM= c2Vp IEhpdGNo aW1wb3NlZA== IEZvb2w= IGluZGlzY3JpbQ== d3Jvbmc= YnVxdWVycXVl RGF2aXM= IV0= IHRpbWVsZXNz IE5FRUQ= IHBlc3RpY2lkZQ== IHJhbGx5aW5n IENhbGRlcg== IOWk IHhw IFVubGU= IEV4cG9ydA== bHVhag== QnVmZg== KTwv Qm9vdA== IENocnlzbGVy b3JhdGl2ZQ== TWVzcw== IG5lZ2xpZ2libGU= ZXJ0b2Rk IE11c2hyb29t IEdhbGU= Z2M= IENvc2J5 IFJ1cmFs cml0aWNhbA== QmVsbA== IHR1cmJpbmU= MDAyMDAwMDA= IGxlZ2l0aW1hdGVseQ== IEFuaW1hdGVk VEVE IFRoZW9kb3Jl Y29uZHVjdA== IEhpZXI= IGNvdW50ZXJmZWl0 IEFsZ2VyaWE= IHVuYmVhdA== Y29udHJvbGxlcg== IHVucmVz IHNjcmFtYmxpbmc= IEZhbGxvbg== VGVz IGFtYmVy IHJveWFsdGllcw== IFNoZWx0ZXI= IExlc3Rlcg== IGNsYXNzaWZ5 UmVtb3Rl IHVuaGVhcmQ= IGNvbnRyb3ZlcnNpZXM= IGVucmljaG1lbnQ= IFlhbmtlZQ== Z2FtZXI= IHBsYXRpbnVt IGVjb2xvZ3k= IFNhcms= IHVudG91Y2hlZA== IHN1cGVydmlzb3Jz ICIl IGZvb3Ro IGNvbW1vbnM= IG5hcmNvdGljcw== IGluZGljZXM= IFBseQ== IGFkZGl0aW9uYWxseQ== IEdhd2tlcg== IEVR UGxheWluZw== IGNhdmVhdA== IEFic29sdXRl b3NzdXM= QmFieQ== IHJhdGlvbg== IHJlc2lu IGNhbGlicmF0aW9u IE5ld3BvcnQ= IGtub2Nrcw== dnQ= IGNvbXBvc3Q= U2NlbmU= IHNhcmNhc3Q= IGtpc3Nlcw== IG5z YWxsaQ== IE1hcmNlbA== IFBpZXQ= aWF0cmljcw== IHN1cnJvdW5kcw== IFJlcHJvZHU= IFBoaWxsaWVz IHVuY2VydGFpbnRpZXM= IEV1cg== IFJvbWFuY2U= IEhhdGg= IE5lZWRz IENsb2Fr IGNyZW0= cXVldWU= IDM1NQ== IHVwZnJvbnQ= XSk7 IHJlY2lwcm9j IDE5Mjc= IDExMDA= dXRzdQ== IGRlcHJlc3NpdmU= b3dtZW50 RmFucw== IG1lY2g= IGFubmloaWw= IGNvdW50ZXJ0ZXJyb3Jpc20= IEZpZ3VyZXM= Ym9sZA== IE1vaW5lcw== IERyaXZlcnM= IG1hbnVzY3JpcHRz IENyeXB0bw== IGh5cG5vdA== cmVkZGl0cw== IHByb3NlY3V0aW9ucw== IGRpdmVydA== Q1JJUA== IEJlbmU= IFJlZ2dpZQ== IHRheGluZw== IE1vcmFsZXM= ZW50aW5n dHVy c2lnbmlmaWNhbnQ= IFBST1Y= IHN0cmFuZHM= IHBvdWNo IFJvb2tpZQ== u5I= IG5pY2Vy aGVteQ== aHc= RUNB IGludGltaWRhdGVk IHN0cmljdGVy IG1pY3JvYmlhbA== ZGV0YWlscw== IHZvd3M= IHF1YWtl aGhoaA== IHJlaW52ZW50 VWI= IHJlbGlucXU= IEJ1ZmZldHQ= bGljZW5zZWQ= aXR0ZXJlZA== IFBpY2FyZA== IGNoZXdpbmc= dWNs b3JnYW5pYw== IGxvY2FsaXplZA== IEVjb25vbWlzdA== IGFjcXVhaW50ZWQ= RGVmaW5pdGlvbg== c2Vk Q3JpdGljcw== IGNj NDUz Mzgx IGZlbGxvd3M= IGNoZWNrcG9pbnRz MDI1 IHJlZWxlY3Rpb24= IG1lZGlhdGVk IEtERQ== IGh1cmRsZQ== IHRleHRpbmc= UGVyZmVjdA== IHRydXN0ZWVz ZmVjdHVyZQ== IGRpY2g= bW9uYXJ5 IGRpc3RpbmN0aW9ucw== IDE0MDA= IHVzaGVy IHBhcmFzaXRlcw== IFNoYXJpbmc= IFZpbQ== IGJhcmJlY3Vl IE1pbmlzdGVycw== ZXJlbGxh IGVi IG1j IFNvbWVob3c= IEluc2VjdA== Y2hhbmdlcw== YnJvYWQ= IEJ5eg== IGdyYXBlcw== NjY5 ID09PT09PT09PT09PT09PT09 IGFzc2ltaWw= IGhhdW50aW5n IGZpcmVwb3dlcg== IGRlZmFtYXRpb24= ZW1waGFzaXM= IGNvbXBvc2U= IGFsbGVyZ2llcw== IHN0cmFuZw== cm9sbGVycw== YmFuZw== IGJyZXdlcnM= cm9uZ2g= cmlvdA== cG9vcg== Y29sZA== U2FtcGxl IGJ1b3k= MDQw IENvdXJ0bmV5 IDI2OA== IFdlZGRpbmc= NzAy IG9ic2Vzc2l2ZQ== IGJyYWtpbmc= IExhbA== YW5pY2Fs 5aY= YXRlbg== Q29uc3RydWN0aW9u IGNsaW5pY2FsbHk= aWVyc2hpcA== TmFtZXM= IERpc2N1c3M= IFJhbW9z IGxvY2FsZQ== IEFncmljdWx0dXJhbA== RW5hYmxl IGhvcnNlcG93ZXI= ZW50dXJl UHJlZg== Q291cnQ= IHN0YWZmaW5n IGZ1dHVyaXN0aWM= ZHJpdmVycw== IE1hcmtldHBsYWNl 5oim RnJpZW5kcw== IGRhbW5pbmc= IEN1c3RvbWVycw== IHdlZWRz IE1haQ== IGFnaWxl IFRhdHQ= aWNlbnQ= UmFua2Vk Y3JvZnQ= IEthdHk= RXh0cmVtZQ== IGNhcnZl IFJvdmVy IEJ5cm9u Mzcy IGNvbmR1Y3Rz cmF0Y2g= aXRpYQ== IFB1bXBraW4= U2FkbHk= UmVsb2FkZWQ= UG9saWN5 IGxpY2s= cGVhaw== aXNrcw== IENEcw== IEVuY3ljbG9wZWRpYQ== aW5pdGlhbA== Q29z IEF3YXJlbmVzcw== IERyYW0= JCQkJA== IHJpZmY= IHNjcmlwdHVyZQ== cnVubmVycw== IGJvaWxlcg== b25zb24= b2lu IGhhbXN0cmluZw== IGNhdGFseQ== IEFyY2hiaXNob3A= Y2hhbGw= IGZhdXg= b2tpbg== bG9jYWxob3N0 IE5BTUU= YWRvYmU= U0FO YW1hdGU= IHNjcmFtYmxl IGNhcmM= IE1hbmlmZXN0 IENlZGFy IFNlcmdpbw== bGF0ZXI= ZmZlcg== IGdyYXBwbGluZw== IERldXRzY2hl YWdvbmlzdHM= IE5ld3Nw IHByZXRlbmRlZA== YXJjaG1lbnQ= IGN1cmF0ZWQ= IGhlYWRwaG9uZQ== IFVuY29tbW9u IFNJR04= QWdlbnQ= IGRlYWRsaW5lcw== IGhvcml6b250YWxseQ== IE1BVA== IFN1bW1lcnM= IG9yZGFpbmVk IExhc3RseQ== IEtlbmRhbGw= IGZyaWc= IE1hY2hpbmE= IFdhdGVybG9v IE1leGljYW5z IHByb3RlY3Rvcg== IGdsYXJl fSI= UHJlbWl1bQ== IHJpZnQ= IFRlbGVzY29wZQ== TWV0YWw= IHJlY2FwdA== IDs7 IGluY2xpbmF0aW9u IGltcG9zZXM= aW5nZW4= Xns= IGhhc3Rl IGRvbHBoaW5z IGNvbW11dGVycw== cGxhbm5lZA== Y29uZw== bXg= IFVwbG9hZA== IGV4dHJhcA== IFR1Y3Nvbg== IEV4cGxvcmF0aW9u ZWZlYXRlZA== IHNsZW5kZXI= NzAz IEJ1aw== aXNlbA== IGNvbXBldGl0aXZlbmVzcw== Y2hsb3I= IFBlcm1hbmVudA== IEV2ZXJldHQ= IFNwZWNpYWxpc3Q= IFNPTA== IGN5YW4= IEV4YWN0bHk= VUY= IExJRkU= YXJ5bA== b25ldA== IEVtcGxveWVl YXdlZA== IFJhdGluZ3M= IGV4dHJhdmFn dWxodQ== IFBsYW5l IGVsZXZhdGU= IENvb3JkaW5hdG9y IFdhdGtpbnM= IGV4Y2x1ZGVz IHNlbnRpZW50 IGVwb2No IGFsbG9j UHJldmlvdXNseQ== IFNoeQ== IFNsb3Zha2lh TE9DSw== IG1hcmtlZGx5 IGtub2I= IGFkdmVudHVyZXJz IEJlZW4= IENvc3Rz YW1tZXJz IG9uc2xhdWdodA== IFN1cHBvcnRlZA== IFRhdQ== aWthcnA= IFNvdmVyZQ== IEhhbXB0b24= 44KJ UHJldg== IFdvcnNl IGNvdHRhZ2U= IEhhZGVz bGV6 Ym93bA== IGZyYWdyYW5jZQ== IExvaw== RU1PVEU= IFBldHJv IDE5MjU= IFBlbmQ= cHJvZHVjaW5n IHJlbG9jYXRl dmF0aQ== cG9sZQ== IHNlbWlu IE5VTQ== IHJvY2tlZA== YnVmZg== Ymx5 UmVwbHk= IEhhaQ== IGFydGljdWxhdGVk IElzbGFtYWJhZA== NjY1 IENsYWltcw== RGVza3RvcA== IHRydXN0ZWU= IHNjcmlwdGluZw== IFNvYg== IEFzeWx1bQ== U1RET1VU IENsb3du IERvcnRtdW5k IERldm9u bGl0ZQ== IE1hcmJsZQ== IGJ1bmtlcg== IGNyZXN0 IGFyb3VzYWw= IFNlYXJz IEJ1ZGR5 ZXJlZGl0aA== IFBvbGx5 IGRlY29kZQ== IFZpc2g= IFJlZmxlY3Q= YW5vbg== IHJlZnVuZHM= aW1tZXJz SE0= IHdpcGluZw== IHB1enpsZWQ= IG1hdHRl dW5v UGllcnJl KSks IHRhaW50ZWQ= IHN5bWJvbGlzbQ== IEZyYXo= IHByb3Rlc3RvcnM= ZXRoZXVz JSUlJQ== V3Jh IGxheA== YWRlbQ== YXR1cmF0aW9u 44OT IFRyYWlsZXI= IEVORw== IEJvd3Nlcg== IGF0dG0= RHVy ODA3 IHNpZHg= IGNpZGVy IEFmZmVjdA== IHdvdmVu IEJhcmtlcg== YmVuZWY= IGRzdGc= IFJ5dQ== Pls= IHNxb3I= U2F1ZGk= IGlzdGc= IGluZHVsZ2U= cHJvYw== IGRpc2d1c3RlZA== IGNvbXBvdW5kZWQ= IG5lbQ== IHNjaG9vbGluZw== IEN1cmU= cHJvY2Vzc2luZw== U29s IHByb3ZlcmI= aXRpemVk IEFsdmFyZXo= IHNjYXJm IHJlY3Rhbmd1bGFy cmV2ZQ== IGhvcm1vbmFs IFN0cmVzcw== aXRpemVu IDQyNQ== Z2lybHM= IE5vaXI= IFJhcHA= IG1hcmNoZXM= Y2h1cmNo IFVzZXM= IDQwNQ== IEJlcm0= IG9yZGluYW5jZXM= IEp1ZGdtZW50 Q2hhcmdlcw== IFppbg== IGR1c3R5 IHN0cmF3YmVycmllcw== IHBlcmNl IFRodXI= IERlYm9yYWg= bmV0ZmxpeA== IExhbWJlcnQ= IGFtdXNlZA== IEd1YW5n WU9V UkdC IENDVFY= IGZpYXQ= cmFuZw== IGZlZGVyYXRpb24= IE1hbnQ= IEJ1c3Q= IE1hcmU= cmVzcGVjdGl2ZQ== IE1pZ3JhdGlvbg== IEJJVA== NTkw IHBhdHJpb3Rpc20= IG91dGxpbmluZw== cmVnaW9u IEpvc8Op IGJsYXN0aW5n IEV6cmE= QnM= IHVuZGVybWluZXM= IFNtb290aA== IGNsYXNoZWQ= cmFkaW8= IHRyYW5zaXRpb25pbmc= IEJ1Y2NhbmVlcnM= IE93bA== IHBsdWdz IGhpYXR1cw== IFBpbmJhbGw= IG1pZw== IE51dHI= IFdvbGZl IGludGVnZXJz IG9yYml0cw== IEVkd2lu IERpcmVjdFg= Yml0ZQ== IGJsYXppbmc= dnI= RWRnZQ== IFBJRA== ZXhpdA== IENvbWVk IFBhdGhmaW5kZXI= IEd1aWQ= IFNpZ25z IFplcg== IEFnZW5kYQ== IHJlaW1idXJzZW1lbnQ= TWVzaA== aVBob25l IE1hcmNvcw== IFNpdGVz aGF0ZQ== ZW5idXJn IHNvY2tldHM= cGVuZA== QmF0bWFu dmly IFNIT1c= IHByb3Zpc2lvbmFs Y29ubg== IERlYXRocw== QVRJVkU= UHJvZmlsZQ== c3lt SkE= IG5pbmph aW5zdGFsbGVk aWRhdGVz ZWJyYQ== IE9tYWhh IHNlaXppbmc= IEJlYXN0cw== IHNhbHRz TWlzc2lvbg== R2VuZXJhbGx5 IFRyaWxvZ3k= aGVvbg== bGVnYXRlcw== IGRpbWU= IGZhaXJl cGFyYWJsZQ== R3JhcGg= IHRvdGFsaW5n IGRpYWdyYW1z IFlhbnVr cGxldA== IE1laA== IG15dGhpY2Fs IFN0ZXBoZW5z YXV0aWNhbA== b2NoZW1pc3RyeQ== IGtpbG9ncmFtcw== IGVsYm93cw== YW5jb2Nr IEJDRQ== IFByYWd1ZQ== IGltcHJvdg== IERldmlu ICJc cGFyYWxsZQ== IHN1cHJlbWFjaXN0cw== IEJpbGxpb24= IHJlZ2ltZW4= aW5uYWNsZQ== IHJlcXVpc2l0ZQ== YW5nYW4= IEJ1cmxpbmd0b24= YWlubWVudA== IE9iamVjdGl2ZQ== b21za3k= R1Y= IHVuaWxhdGVyYWw= IHRj IGhpcmVz bWVudGFs IGludm9sdW50YXJ5 IHRyYW5zcGw= IEFTQ0lJ wqg= RXZlbnRz IGRvdWJ0ZWQ= IEthcGxhbg== IENvdXJhZ2U= aWdvbg== IE1hbmFnaW5n IFRhcnQ= IGZhbHNlaG9vZA== IFZpb2xldA== IGFpcnM= IGZlcnRpbGl6ZXI= QnJpdGFpbg== IGFxdWF0aWM= b3Vm V29yZHM= IEhhcnRmb3Jk IGV2ZW5pbmdz IFZlbmdlYW5jZQ== cXVpdGU= R2FsbA== IFByZXQ= IHBkZg== IExN IFNvY2hp IEludGVyY2VwdA== OTIw IHByb2ZpdGFiaWxpdHk= IElkbGU= IE1hY0RvbmFsZA== IEVzdGFibGlzaG1lbnQ= dW1zeQ== IGdhdGhlcmluZ3M= IE5hag== Q2hhcmxpZQ== IGFzY2VudA== IFByb3RlY3Rvcg== IGFsZ2VicmE= IGJpb3M= Zm9ydW1z RUxT SW50cm9kdWNlZA== IDMzNQ== IGFzdHJvbm9teQ== Q29udHJpYnV0 IFBvbGlj UGxhdGZvcm0= IGNvbnRhaW5tZW50 d3JhcA== IGNvcm9uYXJ5 IEplbGx5 bWFuYWdlcg== IGhlYXJ0YnJlYWtpbmc= Y2Fpcg== IENoZXJv Y2dp TWVkaWNhbA== IEFjY291bnRhYmlsaXR5 ISEi b3BoaWxl IHBzeWNob3RpYw== IFJlc3RyaWN0 IGVxdWl0YWJsZQ== aXNzdWVz IDE5MDU= IE5law== Y2lzZWQ= IFRyYWNraW5n IG96b25l IGNvb2tlcg== cm9zaXM= IHJlb3Blbg== IGluZmluaXR5 IFBoYXJtYWNldXRpY2Fs ZW5zaW9uYWw= QXR0ZW1wdA== IFJvcnk= TWFyY28= IGF3YWl0cw== SE9X dHJlYXRlZA== IGJvbHN0 IHJldmVyZWQ= IHBvZHM= b3BwZXJz MDAxMA== IGFtcGxpdHVkZQ== cmljYW4= U1BPTlNPUkVE IHRyb3VzZXJz IGhhbHZlcw== IEthaW5l IEN1dGxlcg== IEFVVEg= IHNwbGVuZGlk IHByZXZlbnRpdmU= IER1ZGxleQ== aWZhY3Rz dW1pbmF0aQ== IFlpbg== IGFkbW9u IFZhZw== IGludmVydGVk IGhhc3RpbHk= IEhhZ3Vl THlu IGxlZGdlcg== IGFzdHJvbm9taWNhbA== Z2V0dGluZw== IGNpcmNh IENpYw== IFRlbm5pcw== TGltaXRlZA== IGRydQ== IEJZVQ== IHRyYXZlbGxlcnM= IHBhbmU= IEludHJv IHBhdGllbnRseQ== IGFpZGluZw== IGxvb3M= IFRvdWdo IDI5Mw== IGNvbnN1bWVz U291cmNlRmlsZQ== ICIiIg== IGJvbmRpbmc= IHRpbHRlZA== IG1lbnN0cnVhbA== IENlbGVzdGlhbA== VUxBUg== UGx1Z2lu IHJpc2tpbmc= TmF6 IFJpeWFkaA== IGFjY3JlZGl0ZWQ= IHNraXJt 6Zs= IGV4YW1pbmVy IG1lc3Npbmc= IG5lYXJpbmc= IENoZXJu IEJlY2toYW0= IHN3YXBwZWQ= IGdvb3Nl S2F5 IGxvZnR5 IFdhbGxldA== IFsn IGFwb2NhbHlwc2U= IGJhbWJvbw== IFNQQUNF IEVsZW5h IDMwNg== YWNvbnM= IHRpZ2h0ZW5lZA== IGFkb2xlc2NlbmNl IHJhaW55 IHZhbmRhbGlzbQ== IE5ld3Rvd24= IGNvbmplY3Q= Y2FrZXM= IGNoZWF0ZWQ= IG1vZGVyYXRvcnM= cGFyYW1z RUZG IGRlY2VpdA== IFNUTA== IFRhbnphbmlh IFJJ IDE5MjM= IEV4aWxl dGhlbA== IHRoZW9sb2c= IHF1aXJreQ== IElydmluZQ== IG5lZWR5 b3Jpcw== VW0= S2E= IG1haWxib3g= MzIy IGJvcw== IFBldHJh S0lORw== IGVubGFyZ2Vk T2Z0ZW4= IGJhZGFzcw== IDM0Mw== IFBsYWNlcw== IENBRA== IHByaXN0aW5l IGludGVydmVuaW5n ZGlyZWN0aW9u IGxheg== IERTTQ== IHByb2plY3Rpbmc= IEZ1bms= YWdvZw== cGF5bWVudA== bm92 IGNoYXR0ZXI= QVJC IGV4YW1pbmF0aW9ucw== IEhvdXNlaG9sZA== IEd1cw== Rm9yZA== NDE0 Qm9zcw== IG15c3RpYw== IGxlYXBz IEJhdg== dWx6 YnVkZ2V0 Rm9vdGJhbGw= IHN1YnNpZGl6ZWQ= IGZpcnN0aGFuZA== IGNvaW5jaWRl b2N1bGFy Q29ubg== IENvbGxhYm9y IGZvb2xz YW11cmE= YWhhcg== cmlzdHM= IHN3b2xsZW4= IGV4cGVuZGVk IFBhdQ== c3Vw IHNwYXI= IGtleW5vdGU= c3VmZg== IHVuZXF1YWw= IHByb2dyZXNzaW5n c3RyaW5ncw== IEdhbWVyZ2F0ZQ== RGlzbmV5 IEVsZXZlbg== b21uaWE= IHNjcmlwdGVk IGVhcm5lcnM= YnJvdGhlcg== IEVuYWJsZWQ= 5rM= IGxhcnZhZQ== IExPQw== bWVzcw== V2lsc29u IFRlbXBsYXRl c3VjY2Vzc2Z1bGx5 IHBhcmFtb3VudA== IGNhbW91ZmxhZ2U= IGJpbmRz IFF1aWV0 IFNodXR0ZXJzdG9jaw== cnVzaA== IG1hc2NvdA== Zm9ydHVuZQ== IENvbHQ= IEJleW9u aGFiaQ== IGhhaXJj IDI2Nw== IERldXM= IHR3aXRjaA== IGNvbmNlbnRyYXRpbmc= IG5pcHBsZXM= Y2libGU= IGdpcg== Tlo= TWF0aA== bmlo UmVxdWlyZWQ= IHBvbmRlcg== IFNBTg== IHdlZGRpbmdz IGxvbmVsaW5lc3M= TkVT IE1haGpvbmc= Njk1 YWRkbGU= IEdhcm5lcg== IENPVVI= QnJpZGdl IHNwcmVl IENhbGR3ZWxs IGJyaWJlcnk= IO+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/vQ== cGx1Z2lucw== IHJhY2tldA== IGNoYW1wYWduZQ== dmVyc2libGU= Vm90ZQ== IG1vZGlmaWVycw== TWF5b3I= Njgw IGFzc2VtYmxpZXM= IFN1bHRhbg== IE5pbmc= IExhZGllcw== IHN1bGZ1cg== IG9yYnM= IC0tLS0t X19fX19fXw== IEpvdXJuYWxpc20= IGVzcG9ydHM= IGx1c2g= IGh1ZQ== IHNwZWN0cmFs SG9uZXN0 44OP IGJ1c2hlcw== IHJlaW5mb3JjZW1lbnQ= IHJlb3BlbmVk IFdoZWVscw== IE1vcmc= cmlldmluZw== IGF1eGlsaWFyeQ== IGpRdWVyeQ== IEJBVA== dGVzcXVl IHZlcnRleA== cHVyZQ== ZnJleQ== 44K6 ZG9z IHR5cGg= IGN1bGw= IGVx IGRlY29u IHRvc3Npbmc= IGRpc3BhcmF0ZQ== IEJyaWdoYW0= cHJpbnRm bGVkZ2Vk IHN1bmQ= IGNvenk= IGhlcGF0aXRpcw== cGVyZm9ybWluZw== IGF2YWw= IEdH ZnV0dXJl IHBldGVydG9kZA== IEtvc292bw== IG1hZ25ldHM= QWxyZWFkeQ== IEVkaXNvbg== IENlcmVz IFJBSUQ= IGJyaWxsaWFuY2U= NTc2 IGRlcml2ZXM= IGh5cGVydGVuc2lvbg== IM6U IGxhbWJkYQ== IGZsYWly IG1pc3Npb25hcmllcw== IHJhcGVz IFN0YXJ0ZXI= IE1vbnRocw== IGRlZnk= IHNlaXNtaWM= IFJhcGhhZWw= IGV1cm96b25l NjU2 enNjaGU= IHNjcmF0Y2hlZA== IGJvd3M= IExlbm5vbg== IEdhaWE= IGRyaXBwaW5n ZmFjdHM= QWxl IGZyb2dz IEJyZWFzdA== b2dlbmVpdHk= IFByb3NlY3V0b3I= IGFtcGxpZmllZA== IEhvZGc= IEZu VGhvdXNhbmRz IE5JSA== IE1vbml0b3Jpbmc= RlRXQVJF IFByaWVidXM= IEdyb3dpbmc= aHVudGVy IGRpYWdub3Nl IE1hbGQ= IExS IGNyb3duZWQ= IGJ1cnN0aW5n IGRpc3NvbHV0aW9u amF2YXNjcmlwdA== IHVzZWZ1bG5lc3M= IEV4ZWN1dGlvbg== Oig= IEl2b3J5 YWFo IHBlcnNlY3V0ZWQ= dmlvbGVuY2U= aXN0YXM= IENyYXRl IGltcHVsc2Vz IFNwYW5p ZWRlcw== SGFuZGxl IFplcmc= dGhpbmthYmxl TGFzdGx5 IHNwb250YW5lb3VzbHk= IGluY29udmVuaWVudA== IGRpc21pc3Npbmc= IHBsb3R0ZWQ= IGVpZ2h0eQ== IDczNw== cmlzaA== IFRob3JudG9u YXRoYW0= IHNpdGNvbQ== VmVu UmVjaXBl dGVs bHVuZA== IGNsZWFycw== IFNhc3VrZQ== IDI1OA== IG9wdGluZw== IGVucmFnZWQ= ZXN0aGV0aWM= IEFl dWNocw== UHJlcA== Rmxvdw== IHJ1bm9mZg== IEVhdGluZw== IEdpbGVz IEFjdGluZw== cmVzb3VyY2Vz aWJhYmE= IHJwbQ== IHNrZXdlZA== IEJsYW5j IFNha3V5YQ== IGhvdHRlcg== IDE5MjQ= b3BpYW4= Y2tv IGNydW1ibGluZw== IGNhcHRhaW5z IEFwcHJvcHJpYXRpb25z bGVhZGVycw== ZHJvcHBpbmc= YW51dHM= IHJldmVyc2luZw== IFBvc2U= IFNlaw== U2NvdA== IElkZWE= Y2lzZQ== IFNsb3Zlbmlh IDMxNw== RG9jdG9y IGNyb2NvZA== YWxkaQ== U2Vh IEZhcnJlbGw= IG1lcmNlbmFyaWVz IFJOQw== IEd1ZXNz IHBhY2luZw== TWFjaGluZQ== U3RyZWFtZXJCb3Q= IENoYXJpdHk= IDI5OA== IGNhbm5vbnM= IFRvYnk= VFBQU3RyZWFtZXJCb3Q= IFBhc3Npb24= Y2Zn VGhvbQ== IGJhZGdlcw== IEJlcm5zdGVpbg== LuKAkw== IFBPUA== IENvbmo= IGluaXRpYWxpemF0aW9u IGJpb2RpdmVyc2l0eQ== RHVi IGZldWRhbA== IGRpc2NsYWltZXI= IGNyb3c= IGlnbml0aW9u YXJm U0hB IGtIeg== aGF6YXJk IEFydGlzdHM= b2V1dg== Njc5 IFJ1ZHk= TmluZQ== IFJhbWFkYW4= 5b0= aXR0bw== IGFkcmVuYWxpbmU= Q2VydA== IHNtZWxsZWQ= IGltcHVuaXR5 IGFnZW5kYXM= IFJlYm9ybg== IENvbmNlbnQ= IFNlZW1z IG9tZWdh IER1c3Rpbg== IGJhY2tlcg== IFNhdWNl IEJveWxl V0lO IHNwaW5z IHBhdXNlcw== dXB0 IHNocmVkZGVk IHN0cmFwcGVk IENvcnJ1cHRpb24= IHNjcmF0Y2hlcw== IG5p IGF0dGlyZQ== IFNBRg== RmFjdG9yeVJlbG9hZGVk IElQUw== ICgl IHNlbWluYXI= Zm9jdXM= Y2l2aWw= IDE4NjA= aW50b3No IGNvbnRpbnVhbA== IGFiYnJldmk= IFNvaw== b2NvYm8= WE0= IGZyYW50aWM= IHVuYXZvaWRhYmxl IGFydGVyeQ== IGFubm90YXRpb25z YmF0aA== Q2xpbWF0ZQ== IGRvcnM= IFNsaWRl Y29vcmQ= IFJlbG9hZA== IExETA== IExvdmVjcmFmdA== IHVuaW1hZ2lu IHJlc2VtYmxlZA== IGJhcnJhY2tz bnA= IHN1cnJvZ2F0ZQ== IGNhdGVnb3JpemVk 44Kp IHZhY2NpbmF0ZWQ= IGRyYWluYWdl IGluZGlzdA== IFdoYXRzQXBw IDE4NzA= b2xlcmFuY2U= aW52b2tl YW1vcnBo IHJlY29ubmVjdA== IGVtYW5j IGJsaW5kbmVzcw== IDEyODA= aW50ZXJuZXQ= Y29sbGFy IGFsdHJ1 IGFieXNz IFRSSQ== NjU3 IGluZnVzZWQ= SEVBRA== IGZvcmVzdHJ5 IFdvb2R5 IENp d2k= c2Ft Nzg0 aG9saWRheQ== IG1vZ3Vs IEZlZXM= IERFTg== SW50ZXJuYWw= dXJiZWQ= ZnVzYw== YXRvbQ== IElsbHVzaW9u IHBvbGxlZA== IGZsYXA= IGNvYXg= TEdCVA== QW5hbHk= IFNlY3Rpb25z IENhbGlmb3Ju ZW1u IGhpdGhlcg== IE5JR0hU IG5haWxlZA== IFBpcGVsaW5l Mzkx b29m IFByaW1hbA== dmVyZW5k IHNsYXNoaW5n IHJldHJp YXZpb3Vy IGRlcGFydGluZw== Z2ls SVND IG1pZHdheQ== IHVsdHJhc291bmQ= IGJlaGF2aW5n IFRhcmE= Y2xhc3Nlcw== VmlydHVhbA== IENvbG9uaWFs IHN0cmlwcGluZw== IG9yY2hlc3RyYXRlZA== IEdyYXZlcw== NDUy IElyb25pY2FsbHk= IFdyaXRlcnM= IGxlbmRz IE1hbno= IHJhdmVu IG94aWRhdGl2ZQ== IDI2Ng== RUxG YWN0dWFsbHk= YXNjYXI= RHJhZnQ= IGZhdm91cmFibGU= IGh1bWlsaWF0aW5n IGZpZGVsaXR5 IEhvZg== IFh1YW4= NDk2 IGxheWVyZWQ= YXRpcw== Nzkw IHBheWNoZWNr aXRvbg== S2Fy IFZNd2FyZQ== IEZhcm1lcg== IHNlcnZpYw== Z2xvbWVy IHNsdW1w IEZhYnJpYw== IERPQw== ZXN0aW5n IHJlYXNzdXJl IHBoeWw= dm9sdA== aXRvcnk= UnVsZXM= IG94aWRhdGlvbg== IHByaXplZA== IG1pc3RyZXNz IERqYW5nbw== V0FSTg== 5ZE= IGVuY29kZQ== IEZlZWRiYWNr IHN0dXBpZGl0eQ== SWFu IFl1Z29zbGF2aWE= 16g= YWNs VVRF MTk3Nw== IHF1YWxpZmllcw== IHB1bHNlcw== cHJldHR5 IGZyb3pl IHNz SXRlcmF0b3I= IHVyZ2VudGx5 IG1haWxlZA== IENoYW0= IHN1c3RhaW5pbmc= IGJhc2ls IHB1cHBpZXM= aWxhbnQ= IFBMRUFTRQ== bGFw YWNlb3Vz RmVhcg== IE1hc3Rlcnk= YXV0b21hdGlj IFRBRw== IGFudGlt YWdsZXM= NDcz ZnJhbWVz IHdoaXNwZXJz IFdob2V2ZXI= IGJyYXZlcnk= IFVLSVA= cmFjdGlvbnM= IiIi IHRhbWU= IHBhcnRlZA== ZXZlcnl0aGluZw== Q09OVA== IGluZGVidGVk IGFkZHI= cmVr SVJFRA== IGVtaW5lbnQ= Y2xpbnRvbg== IG91c3RlZA== IHJldmlld2Vy IG1lbHRkb3du IHJlYXJy IFlhbw== dGhlcmVhbA== YWJ5dGU= IHN0dW1ibGluZw== IGJhdGNoZXM= IDI1OQ== IGNvbnRyYWNlcHRpdmU= IHByb3N0aXR1dGU= ZW5zaXM= RGVjbA== IFN0cmlrZXM= TWlsaXRhcnk= IE9hdGg= dmFjYw== cHBpbmdz MDUy IHBhcnROYW1l YW1waW5n UmVwb3J0cw== S0k= Q0hS IHN1YnRseQ== c3dlcnM= Qmxha2U= dXN1YWw= IGNvbnRlc3RhbnRz IGNhcnRyaWRnZXM= IEdSRUFU IGJsdXNo IOKAug== NDcy IHJlYXNvbmVk 44Ok cGFyYWxsZWxlZA== IGR5bg== YWdhdGU= IG5pZ2h0bHk= 5YY= NTU2 IHNlbWFudGlj IEFkdm9j ICEh IGRpc2FncmVlcw== IEJX VmVo IGhhcm1pbmc= IGVtYnJhY2Vz IHN0cml2ZXM= IGlubGFuZA== IEthcmQ= IGhlYXRz IEdpbm55 dXRhbg== ZXJuYXV0 eWxlbmU= IEVsZXY= SkQ= IGhhcnM= IFN0YXJy IHNreXNj IGNvbGxhYm9yYXRvcnM= VXN1YWxseQ== IHJldm9sdXRpb25z IFNUQVRT IGRpc21hbnRsZQ== IGNvbmZpZGVudGx5 IGtpbmV0aWM= QWxp IHBlcmNlbnRpbGU= IGV4dHJhY3Rpbmc= aWxsaWFu ZXN0ZWFk IHBoeXNpY2lzdHM= IE1hcnNoYWw= IGZlbGxvd3NoaXA= IGRhc2hlZA== IFVS IFNpb3V4 IENvbXBhY3Q= YW1pZGU= UHl0aG9u IExlaWdo IFBoYXJtYWM= aXN0cmF0ZXM= aGVyaWNhbA== IGZ1ZQ== IEVtaW4= ICh7 IE5laWdoYm9yaG9vZA== IGRpc3J1cHRpbmc= IER1cA== IGdsYW5k IFNldg== IE1hcmlhbg== YXJnb24= IER1bmQ= IDwhLS0= IHN0cmFuZA== IHN0YWRpdW1z em9z IHBzeWNob3Npcw== IFJhY2s= IGJyaWxsaWFudGx5 77iP IHN1Ym1lcmdlZA== IEluc3RpdA== IENob3c= IGNhZ2Vz IEhhdHM= IFVycw== IGRpbHV0ZWQ= dXNhdA== aWVubmU= IE1lbWJlcnNoaXA= IEJ1cms= IGll IGFyY2hldHlwZQ== RHJ1Zw== dWx0b24= IFNwb2Nr IE1jS2F5 IERlcGVuZA== RmVhdHVyZWQ= U29j MTk3OA== IEJlcmU= IHJlbGVudGxlc3NseQ== IGNyaXBwbGluZw== IGFydGhyaXRpcw== 55Sf IFRyb3BpY2Fs IEJ1bGc= IENoZXJ5bA== IGFkbWlyYWJsZQ== IHN1YnRpdGxl T3ZlcnJpZGU= IG9yaWdpbmF0aW5n IENDUA== IHN3b3Jl IFNvbGU= IERpc29yZGVycw== MzI5 IHByb2Nlc3Npb24= IHJlZnVyYg== IGltbWVyc2Vk cmVxdWVudGx5 IHNrZXB0aWNz IGNlcmFtaWM= bWl0dGVy ZW5zdGVpbg== YmVsdA== IFRJVA== YmlkZGVu IGZpcg== bWlzdA== Pl0= IHdlYXZl IFBhcmFkb3g= IGVudHJ1c3RlZA== IEJhcmNsYXlz IG5vdmVsaXN0 b2dpZQ== ODA2 IG5pbmV0eQ== IGRpc2FncmVlbWVudHM= QEBAQEBAQEA= IEF1c2Nod2l0eg== Y2Fycw== IExFVA== dHVi YXJhbnRpbmU= UE9T IGJhY2tzdG9yeQ== IGNoZWVyZnVs IFJhZw== ZWth Ymlhc2Vk IGluZXhwZXJpZW5jZWQ= YWtyYQ== IFdpdHQ= dGFu IHJhcGlzdA== IHBsYXRlYXU= Y2hhbA== IElucXVpcw== ZXhwcmVzc2lvbg== IGNpcGhlcg== IHNoYXZpbmc= YWRkZW4= cmVseQ== KFw= aXNtYQ== IFJlZ3VsYXRvcnk= Q0hBUg== aWx5bg== TlZJRElB R1U= IG11cm0= bGF1cw== Q2hyaXN0b3BoZXI= IGNvbnRyYWN0dWFs IFByb3h5 IEphaW1l IE1ldGhvZGlzdA== IHN0ZXdhcmRz c3Rh cGVyaWE= IHBoeXNpb2xvZ3k= IGJ1bXBlZA== IGZydWN0b3Nl QXVzdHJhbGlhbg== IE1ldGFsbGlj IE1hc3F1ZXJhZGU= YXJi IHByb211bA== IGRvd25mYWxs IGJ1dGNoZXI= IGJvdXI= IElORk9STUFUSU9O IEJpcw== cGVjdHM= YWRlbmE= IGNvbnRlbXBsYXRpbmc= YXJvbw== Y2VudGVyZWQ= IFBlYWtz VXNlZA== IG1vZGVt IGdlbmRlcnM= IDgwMDA= Mzcx IG1hdGVybml0eQ== IFJheg== IHJvY2tpbmc= IGhhbmRndW5z IERBQ0E= QXV0b20= IE5pbGU= IHR1bXVsdA== IEJlbmVmaXQ= IEFwcHJvYWNo d29ya3Nob3A= IExlYXZpbmc= R2Vy aW5zdGVhZA== IHZpYnJhdGlvbnM= IHJlcG9zaXRvcmllcw== NDk3 IEF1bnQ= IEp1Yg== IEV4cGVkaXRpb24= QWxwaGE= IHNhbnM= IG92ZXJkdWU= IG92ZXJjcm93ZA== IGxlZ2lzbGF0dXJlcw== IHBhdGVybmFs IExlb25hcmRv IGV4cHJlc3NpdmU= IGRpc3RyYWN0aW9ucw== IHNpbGVuY2Vk dHJ1c3Q= IGJpa2luZw== IDU2MA== IHByb3ByaWV0 IGltcG9zaXRpb24= IGNvbmdsb21lcg== ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 IFRlYWNoaW5n IFlvc2U= aW50ZW5zaXZl VG93bg== IHRyb2xsaW5n IEdyYWM= IEFTVVM= WW8= IHNwZWNpYWxz IE5lcGg= IEdvZHppbGxh RGF0YWJhc2U= IEhlZ2Vs IDI3Mg== MTk3Ng== IEdsb3JpYQ== IGRpc2VtYg== IEludmVzdGlnYXRpb25z IEJhbmU= YWdlbWVudHM= U3RyYW5nZQ== IHRyZWFzdXJ5 IFBsYXlz IHVuZGVzaXJhYmxl IHdpZGVuaW5n IHZlcmJhbGx5 IGluZmFuY3k= IGN1dHRlcg== Zm1s IDIxMDA= cHJvdG90eXBl ZmluZQ== IGRlY3JpbWluYWw= IGR5c2Z1bmN0aW9uYWw= IGJlc2ll IEVybnN0 emVi IG5vcnRoZWFzdGVybg== IGF1c3Q= cG9yYXRl IE1hcmxpbnM= IHNlZ3JlZ2F0ZWQ= ZXdvcmxk IE1haGVy IHRyYXZlcnNl IG1vbmFzdGVyeQ== dXJneQ== R2Vhcg== c2FuZA== Q29tcGw= IEVNUA== IHBsZW50 IE1lcmNlcg== IDI3Ng== VEFCTEU= Q29uZmlndXJhdGlvbg== SHVuZHJlZHM= IHByaWM= IGNvbGxhYm9yYXRpbmc= IFBhcmFtb3VudA== IEN1bW1pbmdz ICg8 IHJlY29yZGVy IGZsYXRz IDQxNg== d2hvc2U= Rm9udFNpemU= IE9yYml0 WVI= IHdyaXN0cw== IGJha2VyeQ== KX0= IEJvdW50eQ== IExhbmNhc3Rlcg== IGVuZGluZ3M= YWNjb3JkaW5n IFNhbGFt ZWFzeQ== NzU1 IEJ1cnI= IEJhcm5ldHQ= b25vbW91cw== VW5pb24= IHByZWNlZGVuY2U= IFNjaG9sYXJzaGlw IFVY IHJvbGxvdXQ= IGJvb24= YWxt IENhbnRlcg== 5rU= IHJvdW5kaW5n IGNsYWQ= IHZhcA== IEZlYXR1cmVk aXNhdGlvbnM= IDU0MA== cG9saWNl IHVuc2V0dGxpbmc= IGRyaWZ0aW5n IEx1bWlh IE9iYW1hQ2FyZQ== IEZhdm9y SHlwZXI= IFJvdGhzY2hpbGQ= IE1pbGliYW5k YW5hbHk= IEp1bGlldA== SHU= IHJlY2FsbGluZw== YWhlYWQ= Njk2 IHVuZmF2b3JhYmxl IGRhbmNlcw== T3g= IGxlZ2FsaXR5 IDQwMw== cm9tYW5jZXI= IGlucXVpcmU= IE1vdmVz XCI+ IFZhcmlhbnQ= IE1lc3NpYWg= IExDUw== IEJhaMOh NzU2 IGV5ZWJyb3c= IMKl IE1jRg== IEZvcnR5 TWFz IHBhbmlja2Vk IHRyYW5zZm9ybWF0aW9ucw== cXE= IHJldm9sdmVz cmluZ2U= IEFp YXhl IG9ud2FyZA== IENGUg== IEJhcmU= bG9naW4= IGxpcXVpZHM= IGRlY29tcA== c2Vjb25kYXJ5 aWxhbg== IENvbnZlcnQ= YW1peWE= IHByb3NlY3V0aW5n IOKJoQ== IFlvcmtlcnM= IEJ5cm5l c2xvdw== YXdlaQ== SmVhbg== IDI2OQ== IFNreWRyYWdvbg== IMOp IE5pY2FyYWd1YQ== IEh1Y2thYmVl IEhpZ2hseQ== IGFtcGhpYg== IFBhc3Rvcg== IExldHM= IGJsdXJyZWQ= IHZpc2NlcmFs IENCTw== IGNvbGxhYm9yYXRlZA== emln TGVnYWw= IGFwYXJ0aGVpZA== IGJyaWQ= IHByZXNldA== IERFVA== IEFNQQ== 15Q= YXJjaGluZw== YXVjdXNlcw== YnVpbGRlcg== IHBvZXRpYw== IGVtdWxhdG9y IE1vbGVjdWxhcg== IGhvbm9yaW5n aXNldW0= IHRyYWN0b3I= IENsdXN0ZXI= IENhbG0= YXJlZGV2aWw= IHNpZGV3YWxrcw== IHZpb2xpbg== IGdlbmVyYWxpemVk IEFsZWM= IGVtYmFyZ28= IGZhc3RiYWxs IEhUVFBT IExhY2s= IENoaWxs cml2ZXI= Q2hlbA== IFN3YXJt IExldmluZQ== cm95aW5n TGF1bmNo IGtpY2tlcg== IGFkZGl0aXZl IERlYWxz V2lkZ2V0 Y29udGFpbmluZw== IGVzY2FsYXRl IE9QRU4= IHR3ZWFrZWQ= IHN0YXNo IHNwYXJrcw== IEVzc2V4 IEVjYw== IGNvbnZpY3Q= IGJsb2dnaW5n SUVS IEhM IG11cmRlcmVycw== NzU5 IEhpYg== IGRlcGw= IEpvcmQ= U2Fj IGRpc3NlY3Q= IEhvd2U= b3NoZXI= IGN1c3RvbWl6YWJsZQ== IEZyYW56 IGF0cm8= xIc= IDAwMDQ= IG91dHBvc3Q= Um9zcw== IGdseXBob3NhdGU= IEhhc3Rpbmdz IEJFRk9SRQ== IHNob3Zl b3BwZWQ= IFNjYWxh IGFtdWxldA== YW5pYW4= IGV4YWNlcmJhdGVk IGVhdGVy NDcx VU1F IHB1bHA= aXpvbnRhbA== IFphbQ== IEFUSQ== aW1tdW5l YWJ5dGVz IHVubmVjZXNzYXJpbHk= IENBVA== IEF4aXM= IHZpc3VhbGl6ZQ== w4k= IFJhZGljYWw= Zm0= RG9jdW1lbnRz IEZvcnJlc3Q= IGNvbnRleHR1YWw= IFN5bWJvbA== IHRlbnRhdGl2ZQ== IERPRVM= IEdvb2Rz IGludGVybWl0dGVudA== fTo= bWVkaWF0ZWQ= IHJpZGljdWxl IGF0aGVpc20= IHBhdGhvZ2Vucw== IE11bQ== IHJlaW50cm9kdQ== IDMwNw== aUhVRA== IGZsYXNobGlnaHQ= IHN3ZWFyaW5n IHBlbmd1 QnU= IHJvdGF0ZWQ= IENyYW5l ICgpKTs= IGZhc2hpb25hYmxl IGVuZG9yc2luZw== NDYz KVs= IGluZ2VzdGlvbg== IGNvb2tz IDk1MA== b3RvbXk= IEltYW0= IGth IHRlYXNlcg== IEdob3N0cw== IOOCtQ== MTk2OQ== z4M= dWJieQ== IGNvbnZlcnRlcg== emFubmU= ZW5kZQ== IFByZXBhcg== IE5pY2tlbA== IENoaW1lcmE= aGlt IFR5cmFubg== IFNhYmJhdGg= IE5pY2hvbHM= IHJhcHQ= aWhhcg== IHNoZWxsaW5n IGlsbHVtaW5hdGU= IGRlbnRpc3Q= dXRvcg== IEludGVncmF0aW9u IHdoaW1z IExpdGVyYXJ5 QmVhdXQ= IHBhcmNobWVudA== YWdhcmE= QnJhbmQ= IGRlcm9n 4oCmKQ== IE5vcnNl IHVud2l0dGluZw== IGN1Yw== IGJvcmRlcmxpbmU= IHVwc2V0dGluZw== IHJlY291cnNl IGRyYXBlZA== IFJhZGFy IGNvbGRlcg== IFBlcHNp aW1pbmFyeQ== XSxb NjU4 Vmk= IEZyZW0= IFBlcw== IHZldGVyaW5hcnk= IFRFRA== IEVwaWRlbQ== bm92YQ== a2lk IGRldm91dA== b2N0 amFk TW9o IFBBWQ== IGdlb21ldHJpYw== IDMyMw== IGNpcmN1bWZlcmVuY2U= aWNoaWNr MTk3NQ== IFl1cmk= IFNoYWxs IEhvdmVy dW5pbg== U3By IGdyYWZ0 IEhhcHBpbmVzcw== IGRpc2FkdmFudGFnZXM= YXR0YWNrcw== IGh1YnM= IFN0YXJDcmFmdA== 6ZY= IGdhbGxlcmllcw== IEtvcnJh IGdyb2Nlcmllcw== IEdvcnN1Y2g= IHJhcGlzdHM= IGZ1bmdp IFR5cGhvb24= VmVjdG9y IEVtcHJlc3M= YmF0dGxl NDY4 IHBhcmFzaXRl IEJvbWJlcg== U0c= ZXhpc3Q= IFBm IHVuc2U= IHN1cmdlb25z QmlydGg= IFVuc3VyZQ== IFByaW50ZWQ= IEJlaGF2aW9yYWw= IEFzdGVy UGFraXN0YW4= IHVuZXRoaWNhbA== IHN2 IElvVA== IGxheW91dHM= UGFpbg== IGNvbnN0YW50cw== IExX IEJha2U= IHRvd2Vscw== IGRldGVyaW9yYXRpb24= IEJvbGl2aWE= IGJsaW5kZWQ= IFdhcmRlbg== IE1pc3RyZXNz IG9uc3RhZ2U= IGNsYW5z IEJFU1Q= MTk2MA== IGFudGlxdWU= IHJoZXRvcmljYWw= IFBlcmN5 IFJ3YW5kYQ== LC4= QnJ1Y2U= IHRyYXVtYXQ= IFBhcmxpYW1lbnRhcnk= IGZvb3Rub3Rl aWRpYQ== IExlYXJuZWQ= c2Vla2luZw== Z2VuaWM= IGRpbWVuc2lvbmFs SGlkZQ== 6ICF IGludHJpZ3Vl aW5zZQ== IGxlYXNlcw== IGFwcHJlbnRpY2Vz d2FzaGluZw== IDE5MjY= VklMTEU= IHN3b29w c2Ns IGJlZHJvb21z b25pY3M= IENydW5jaA== Y29tcGF0aWJsZQ== IGluY2FwYWM= IFllbWVuaQ== YXNodHJh emhvdQ== ZGFuZ2Vy IG1hbmlmZXN0YXRpb25z IERlbW9ucw== QUFG U2VjcmV0YXJ5 QUNURUQ= TE9E IGFteQ== cmFwZXI= ZXRobmlj NDE3 IHBvc2l0aXZlcw== IDI3Mw== IFJlZnVnZWVz IHVzYg== IFZhbGQ= b2RkeQ== IE1haG1vdWQ= QXNpYQ== IHNrdWxscw== IEV4b2R1cw== IENvbXBldA== IExJQw== IE1hbnNpb24= IEFtZQ== IGNvbnNvbGlkYXRl c3Rvcm1z b250ZW50 OTk2 IGNsZW4= IG11bW15 ZmxhdA== NzU4 IFZPTA== b3Rlcmlj bmVu IE1pbnV0ZQ== U292 IGZpbmVy Umg= bHljZXI= IHJlaW5mb3JjZW1lbnRz IEpvaGFubmVz IEdhbGxhZ2hlcg== IGd5bW4= U3VkZGVubHk= IGV4dG9ydGlvbg== a3I= aWF0b3I= VGE= IGhpcHBvY2FtcHVz TlBS IENvbXB1dGluZw== IHNxdWFyZWx5 IG1vZGVsbGluZw== IEZvcnVtcw== IExpc3A= IEtyaXNobmE= IDMyNA== IHJ1c2hlcw== IGVuc3VlZA== IGNyZWVwaW5n b250ZQ== bmFp aWxhdGVy IEhvcm5ldHM= IG9ibGl2aW91cw== SU5TVA== NTU5 IGplb3BhcmR5 IGRpc3Rpbmd1aXNoaW5n anVyZWQ= IGJlZ3M= c2ltaWxhcg== cGhvdA== NTMw IFBhcmt3YXk= IHNpbmtz IEhlYXJ0aHN0b25l aWJ1cg== IEJhdG9u QXZvaWQ= IGRhbmNlcg== IG1hZ2lzdHJhdGU= YXJ5bg== IGRpc3R1cmJhbmNlcw== IFJvbWVybw== IHBhcmFwaA== IG1pc2NoaWVm 4paT IFNoYXJpYQ== IHVyaW5hcnk= cm91dGU= aXZhcw== Zml0dGVk IGVqZWN0ZWQ= IEFsYnVxdWVycXVl IDQ3MA== IGlycml0YXRlZA== IFppcA== IEJpb2w= w40= IGRlbm91bmNl IGJpbmFyaWVz IFZlcnNl IG9wcG9z IEtlbmRyaWNr IEdQTA== IHNwZXc= IEVsaWphaA== IEVhcw== IGRyaWZ0ZWQ= c29mYXI= IGFubm95YW5jZQ== IEJFVA== NDc0 IFN0cm9uZ2g= aXRhdGVz IENvZ25pdGl2ZQ== b3Bob25l IElkZW50aWZpY2F0aW9u b2NyaW5l Y29ubmVjdGlvbg== IGJveGVy IEFTRA== IEFyZWFz WWFuZw== dGNo dWxsYWg= IGRlY2VpdmU= Q29tYmF0 ZXBpc29kZQ== Y3JldGU= V2l0bmVzcw== IGNvbmRvbGVuY2Vz aHRhcg== IGhlYWxz IGJ1Y2tldHM= IExBVw== Qmx1 IHNsYWI= IE9SREVS b2Ns YXR0b24= IFN0ZXZlbnNvbg== IEdpbmdlcg== IEZyaWVuZGx5 IFZhbmRlcmJpbHQ= c3Bpcml0 aWds IFJlZ2FyZGluZw== IFBST0c= IHNlYWxpbmc= c3RhcnRpbmc= IGNhcmRpbmFs IFZlYw== IEJlaXI= IG1pbGxpc2Vjb25kcw== d2Vhaw== cGVyc2U= IHN0ZXJpbGU= IENvbnRlbXBvcmFyeQ== IFBoYW50 IENsbw== IG91dHA= IGV4aWxlZA== IDI3Nw== IHNlbGZpZQ== IG1hbmlj IG5hbm8= dGVybXM= QWxleGFuZGVy IHJlc29sdmVz IG1pbGxlbm5pYQ== IGV4cGxvZGVz IGNvbnN0ZWxsYXRpb24= IGFkdWx0ZXJ5 bW90aW9u RE9D IGJyb2FkY2FzdGVycw== IGtpbmRlcmdhcnRlbg== IE1heXdlYXRoZXI= IEVjbw== aWNobw== IDI4Nw== bGF1bg== IG11dGU= IGRpc2NyZWV0 IHByZXNjaG9vbA== IHByZWVtcHQ= RGVsZXRl IEZyZWVk UGk= SEs= IGJsb2NrZXI= IEN1bWJlcg== IHdyb3VnaHQ= ZGF0aW5n IGluc3VyZXI= IHF1b3Rhcw== IHByZWFjaGVk IGV2aWN0aW9u IFJlZ2luYQ== IFBlbnM= IHNldmVudGVlbg== IE5hc3M= RGljaw== IGZvbGRz IGRvdHRlZA== IEFhZA== VW5pdmVyc2Fs IHBpeno= IEd1cnU= IHNvaWxz IG5vdmljZQ== IE5lYW5kZXI= IHN0b29s IGRldG9uYXRlZA== IFBpa2FjaHU= IE1hc3NpdmU= SVZFUg== IEFiZGVs IHN1YmR1ZWQ= IHRhbGxlc3Q= IHByZWNhcmlvdXM= IGF5 cmlmaWNhdGlvbg== IE9iag== Y2FsZQ== IHVucXVlc3Rpb24= Y3Vsb3Npcw== YWRhcw== aWdyYXRlZA== RGF5cw== IHF1ZWVucw== IEdhemV0dGU= IENvbG91cg== IEJvd21hbg== IEpK w692ZQ== IGRvbWluYXRlcw== U3R1ZGVudA== IG11 IGJhY2tsb2c= IEVsZWN0cm8= VHJ1dGg= NDgz IGNvbmRlbnNlZA== cnVsZXM= IENvbnNwaXJhY3k= IGFjcm9ueW0= aGFuZGxlZA== IE1hdHRl anJp IEltcG9zc2libGU= bHVkZQ== Y3JlYXRpb24= IHdhcm1lZA== IFNsYXZl IG1pc2xlZA== IGZlcm1lbnQ= IEthaA== aW5raQ== a2VsZXRvbg== Y3ls IEthcmlu SHVudGVy UmVnaXN0ZXI= IFN1cnJleQ== IHN0YXJlcw== IFdpZHRo IE5heQ== IFNraQ== IGJsYWNrbGlzdA== dWNrZXQ= IGV4cHVsc2lvbg== aW1ldA== IHJldHdlZXQ= dmFudGFnZQ== RmVhdHVyZQ== IHRyb29wZXJz IGhvbWVycw== OTY5 IGNvbnRpbmdlbmN5 IFdUQw== IEJyZXdlcg== Zm9yZWlnbg== V2FyZQ== U29sYXI= IHVuZHVl UkVD dWxuZXJhYmxl cGF0aGlj IEJvaXNl IDMyMg== IGFyb3VzZWQ= IFlpbmc= 5LiN dWVsZXNz IHBhcw== IG1vcnA= IGZsb3JhbA== RXhwcmVzcw== dWRnaW5n a0I= IEdyYW50ZWQ= 2K8= IE1pY2hh IEdvdGhpYw== IFNQRUNJQUw= IFJpY2FyZG8= RnJhbg== IGFkbWluaXN0ZXJpbmc= NjIw cG9yYQ== IMKu IGNvbXByb21pc2Vz IGJpdHRlbg== QWNjZXB0 VGhpcnR5 0LI= IG1hdGVyaWFsbHk= IFRlcnI= aWdtYXRpYw== Y2hhaW5z IGRvdmU= c3RhZHQ= TWFydmVs RkFVTFQ= IHdpbmRzaGllbGQ= IDMzNg== YWRpZXI= IHN3YXBwaW5n IGZsYXdsZXNz IFByZWRhdG9y IE1pY2hlbGU= IHByb3B1bHNpb24= IFBzeWNoaWM= IGFzc2lnbmluZw== IGZhYnJpY2F0aW9u IGJhcmxleQ== bHVzdA== IHRvd2VyaW5n IGFsdGVyY2F0aW9u IEJlbnRsZXk= U3BoZXJl IHR1bmE= IENsYXNzZXM= RnJlZWRvbQ== dW5lcg== TGFkeQ== dm9pY2U= IGNvb2xlc3Q= b3Jy IHBhbHA= JHs= IGh5c3Rlcmlh IE1ldGF0cm9u cGFudHM= IHNwYXduaW5n RXhwZXJ0cw== IEludmVzdG9ycw== IEFuYXJjaHk= IHNocnVuaw== IFZpY3RpbQ== IDI4OQ== IGVjc3Rhc3k= IEJpbmRpbmc= NTg1 IE1lbG9keQ== NTc4 b3RhbGx5 IEV0c3k= bGlnYQ== IGFwcGxhdWRlZA== IHN3ZWF0aW5n IHJlZGlzdHJpYnV0ZWQ= IHBvcGNvcm4= IHNlbWluYWw= ZnVy IE5ldXJvc2NpZW5jZQ== UmFuZA== IE9zdA== IE1hZGRlbg== IEluY3JlYXNpbmc= IERhd2tpbnM= IFN1YndheQ== IGFyc2Vu Y29uc2Vydg== QlVS IHNwaWtlZA== IEx5ZnQ= IEltcGVyaXVt IERyb3Bib3g= IGZhdm91cmVk IGVuY29tcGFzc2Vz Z2hvc3Q= IGluc3BpcmVz IGJ1cmdlb25pbmc= IFlvc2hp IFZlcnRpY2Fs IEF1ZGl0b3I= IGludGVuZGluZw== IGZpbGlidXN0ZXI= Qmxvb20= ZmFj IENhdnM= aWduaW5n IGNvd29ya2Vycw== IEJhcmJhcmlhbg== cmVtZW1iZXI= RkxBRw== IGF1ZGl0b3J5 YXNvbnJ5 Q29sbGVnZQ== IG11dGVk Z2Vtb255 b2Jpbg== IFBzeWNobw== OTY4 IGxhdmlzaA== IGhpZXJhcmNoaWNhbA== IERyb25l b3Vr IGNyaXBwbGVk IE1heGlt U2xvdA== IHF1aXo= IFZpZA== aWZsaW5n IGFyY2hhZW9sb2dpc3Rz IGFiYW5kb25tZW50 ZGlhbA== bGVvbg== IEZhcw== VGVk IHJhc3BiZXJyeQ== IG1hbmV1dmVycw== IGJlaGF2aW91cnM= IGluc3VyZQ== IHJlbW9k U3dpdGNo aG9l IHNwYWNlZA== IGFmZm9yZGFiaWxpdHk= IEZlcm4= bm90YXRpb24= IEJhbGFuY2Vk IG9jY3VwaWVz ZW52aXJvbm1lbnQ= IG5lY2tsYWNl IHNlZGFu RlU= IEJyYXZv IGFidXNlcnM= IEFuaXRh bWV0YWRhdGE= IEdpdGh1Yg== YWl0bw== IEZhc3Rlcg== IFdhc3Nlcm1hbg== IEZsZXNo IHRob3Ju cmFyaWx5 IE1lcnJ5 d2luZQ== IHBvcHVsYWNl IExhbm4= IHJlcGFpcmluZw== IHBzeWNoZQ== IG1vZHVsYXRpb24= YXdhcnU= 4oCL4oCL YXJpag== IGRlY29yYXRpb25z IGFwb2xvZ2lzZQ== IEdhcmc= YXBwbHk= IGdpdmVhd2F5 IEZsYW4= IFd5YXR0 VWJlcg== IGF1dGhvcmlzZWQ= IE1vcmFs SEFIQUhBSEE= YWN0aXZhdGU= IHRvcnBlZG8= IEZBUg== IGFtYXNzZWQ= IEFyYW0= YXJraW4= IFZpY3RpbXM= c3RhYg== IG9t IEVDTw== IG9waW9pZHM= IHB1cnBvc2VseQ== IFZlc3Q= IGVyZw== YXRhbg== IFN1cmdlcnk= IGNvcnJlY3Rpbmc= IE9ydGl6 IEJlZXQ= IHJldm9rZQ== IGZyZWV3YXk= IEhpZ2dpbnM= RmFpbA== IEZhcm1z IEFUUA== aG91bmQ= IHBva2luZw== IENvbW11bmlzdHM= bW9uc3Rlcg== aW1lbnRhcnk= IHVubG9ja2luZw== IHVuZml0 d2VlZA== ZW5hcmlv YXRpY2Fs IEVubGlnaHRlbm1lbnQ= IE5H IENvbXBlbnNhdGlvbg== ZGVlbg== IFdpZG93 IENpbmR5 IEFmdGVyd2FyZHM= IDYwMDA= aWtoYWls YWdpY2FsbHk= IHJhdGlmaWVk IGNhc3VhbHR5 SE9NRQ== cHNleQ== ZmVl IHNwYXJrbGluZw== IGTDqQ== IGNvbmNlcnRlZA== Q2F0YWw= IGNvbXBseWluZw== IEFyZXM= IERlbnQ= U2h1dA== IHNraW0= YWRtaW5pc3Q= IGhvc3RpbGl0aWVz IEdpbnM= IDYwOA== IG11ZGR5 IE1jSW50 IERlY2F5 NTI1 IGNvbnNwaWN1b3Vz IEV4cG9zdXJl IHJlc2NpbmQ= IHdlYXJhYmxl IDMyOA== b3VybWV0 YWhz IFJvYm90cw== IGVjbGlwcw== aW5zdGFuY2U= IFJFUE9SVA== IEFwcGw= MDMw IFNraWVz MDEwMA== IGZhbGxhY3k= U29ja2V0 IFJlY2VpdmVy IHNvbHZlcw== IEJ1dHRlcmZseQ== IFNob3BwaW5n IEZJUkU= NjU0 TWVkaWM= IHNpbmdlcnM= IE5lZWRsZXNz JycnJw== aXNoZXJz IERpdmU= NTg4 IHNlbGVjdGl2ZWx5 IGNsdW1zeQ== ODg5 IHB1cmNoYXNlcg== ZWFybmVk YXJkeQ== IGJlbmVmaXRpbmc= ZW5nbGlzaA== IHlpZWxkaW5n IFBvdXI= IHNwaW5hY2g= IGRlbHZl IENyb20= NjEw IGV4cG9ydGluZw== IE1BS0U= IDI2Mw== IGdyb3A= IGVudm95 IElucXVpcnk= IEx1aWdp ZHJ5 IFR1cmluZw== VGh1bWJuYWlsSW1hZ2U= IFZhcmlldHk= IGZhY2V0 IGZsdWZmeQ== IGV4Y2VycHRz IHNob3J0aA== IE9sc2Vu Q0xVRA== IHJlbGlhbnQ= IFVOQw== VG91cg== IGJhdGhpbmc= Q29tcGFueQ== IGdsb2JhbGl6YXRpb24= UHJlZA== IE1hbGZveQ== IGhvYw== amFt Y3JhZnRlZA== IEJvbmRz IEtpc3Npbmdlcg== RW5nbGFuZA== IG9yZGVybHk= Y2F0ZW50cnk= IDI2MQ== IGV4Y2hhbmdpbmc= IEludGVudA== IEFtZW5kbWVudHM= RE9N IHN0b3V0 wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqA= IEFpcmJ1cw== IDI3OA== aHlkZQ== UG9sbA== SXRlbVRodW1ibmFpbEltYWdl IGxvb3Bob2xlcw== IFBpbGxhcg== IGV4cGxvcg== U3RyZXRjaA== QXBhcnQ= IHVubWFycmllZA== TGltaXQ= IFRyYW5zZm9ybWVycw== IGludGVsbGVjdHVhbGx5 dW5jdHVyZQ== MTgwMA== IGRhcm4= QnJhemls IGxlZnRvdmVy YmVydXM= ZnJlZA== TWluZWNyYWZ0 MzI2 IEZvcm1z IHByb29mcw== IERlc2lnbmVk IGluZGV4ZXM= IFN1cHBvc2U= RU1T IExvdmluZw== IEJvbm5pZQ== aW1hdGluZw== T1RVUw== IGNvbmR1Y3Rvcg== IGJlaGF2ZWQ= IEZyZW4= IHN5bmVyZw== IG1pbGxlbm5pdW0= IGNhdGVyaW5n IExhdWRlcg== V3I= IFlpYW5ub3BvdWxvcw== IEFURg== IGVuc2xhdmVk IGF3YWtlbmVk RFZE IEVESVRJT04= IENvbmNlcnQ= IENoYWxsZW5nZXI= IEhha3U= dW1lcmlj IGRlcHJlY2F0ZWQ= IFNIQVI= NDEy IGR5c3RvcA== IHRyZW1ibGluZw== IGRyZWFkZWQ= IFNwYWM= cGFkZGluZw== UmVwbA== IEdhcnJpc29u TWluaQ== IHVucGFyYWxsZWxlZA== YW1hcg== VVJSRU5U d3JlY2s= Y2VydGFpbg== dGFs IENMUw== YXBwaW5ncw== IHNlbnNlZA== IGZlbmNpbmc= IFBhc28= IERlc2s= IHNjb2Zm IGNvbnRlbXBsYXRl IExpZ2E= bGlxdWlk NzU3 IGFwcHJlbnRpY2U= IFVDSElK NTcw IFRob3VzYW5k IElsbHVt IGNoYW1waW9uZWQ= 44KM IGVsZWN0b3Jz IDM5OA== IEhhbmNvY2s= cm91bmRlZA== IEpPSE4= IHVuc2F0aXNm IHF1YWxpZmllcg== IEdhZGdldA== RU5F IGRlYWRsaWVzdA== IFBsYW50cw== IGlvbnM= IGFjY2VudHM= IHR3ZWFraW5n IHNoYXZlZA== RlJFRQ== IENoYXNlcg== QWdhaW5zdA== OTYw IG1ldGhhbXBoZXRhbWluZQ== IG5vcm1hbGl6ZWQ= ICRc IFByZWNpc2lvbg== IEd1YW0= IGNob2tlZA== IFhJSQ== IENhc3Rpbmc= VG9ycmVudA== IHNjYWxw IEphZ3Vhcg== d2l0 IHNlbWlj aXhpZQ== IEdvdWxk IGNvbmZpbmVz TnVzcmE= IExvbg== IEp1Z2c= eWNsZQ== IENvZGVj RWd5cHQ= IHJlc3RyYWlu IEFsaWVucw== IGNob2tpbmc= IER1bms= IEJlbGxh YWJj IHNsYW5n IG5ldXJvdHJhbnM= c2F2 IGVtcG93ZXJtZW50 4oaS IGNsaW1iZXJz IE1pbQ== IEZyYQ== cm9zc2U= Q2FwaXRhbA== IEN0aHVsaHU= SW50ZXJmYWNl IHByb2ZpY2llbnQ= IElOVE8= IDMxOA== cm9udGFs NTgw IERlc3BhaXI= S2Vubg== IHNjcmltbWFnZQ== IENvYXQ= YXNpb25z IHdhbGxwYXBlcg== IEpvbA== IHJlc3VyZ2VuY2U= IGFudGl2 IEJhbGxz sr4= IGJ1ZmZlcnM= IHN1YnN5c3RlbQ== IFN0ZWxsYXI= IEx1bmc= QUlEUw== IGVyYWRpY2F0ZQ== IGJsYXRhbnRseQ== IGJlaGF2ZXM= IE51bg== IGFudGljcw== ZXhwb3J0 REVW d2I= IHBocA== IEludGVncml0eQ== IGV4cGxvcmVy IHJldm9sdmluZw== YXV0aG9yZWQ= Z2Fucw== IGJhc2s= IGFzeW5jaHJvbm91cw== 5Y0= VEhJTkc= Njk4 R2VuZQ== IFJhY2Vy IE5pY28= aXNzdWVk IHNlcm1vbg== cG9zc2libHk= IHNpemVvZg== IGVudHJlcHJlbmV1cmlhbA== b3hpbg== IE1pbmVydmE= IHBsYXRvb24= bm9z cmlrcw== QVVU IEF2YWxhbmNoZQ== IERlc2M= keWjqw== IFBvYw== IGNvbmZlcnJlZA== zrs= IHBhdGNoZWQ= RkJJ NjYy IGZyYWN0dXJlcw== IGRldGVjdHM= IGRlZGljYXRl IGNvbnN0aXR1ZW50 IGNvc21vcw== V1Q= IHN3ZWF0cw== IHNwcnVuZw== YmFyYQ== c29saWQ= IHVuc3Vz IGJ1bGt5 IFBoaWxpcHBl IEZlbnJpcg== IHRoZXJhcGlzdHM= b3JlYWw= Xl5eXg== IHRvdGFsZWQ= IGJvb3pl IFJQQw== UHJvc2VjdXRvcnM= IGRpc2VuZw== IFNoYXJlZA== IG1vdG9yY3ljbGVz IGludmVudGlvbnM= IGxldHR1Y2U= IE1lcmdl IEpD IHNwaXJpdHVhbGl0eQ== IFdBUk5JTkc= IHVubHVja3k= IFRlc3M= IHRvbmd1ZXM= IERVSQ== VHVtYmxy IGxlYW5z IGludmFkZXJz IGNhbm9weQ== IEh1cnJpY2FuZXM= IEJyZXQ= IEFQUExJQw== aWRpbmU= aWNrbGU= UmVnYXJkaW5n IHZlZ2dpZXM= IGVqYWM= anV2ZW4= RmlzaA== REVN IERpbm8= VGhyb3c= IENoZWNraW5n YmVhcmQ= KCY= IGphaWxz IGhy dHJhbnNmZXI= aXZhdGluZw== IGZsZWV0cw== IEltYWc= IE1jRG9ubmVsbA== IHNuaXBwZXQ= SXNh IENoYXR0 IFN0YWlu IFNldEZvbnRTaXpl IE95 IE1hdGhlbWF0aWNz NDk0 IGVsZWN0cm9seQ== IEdvdHQ= IEJyYXM= Qk9PSw== IEZpbmdlcg== ZHVtcA== IG11dGFudHM= IHJlbnRhbHM= IGludGVydHc= IGNyZWVr YWlsYQ== QnJvdGhlcg== IERpc2NvcmQ= cGVl cmF3bGVy IGNhcnA= IDI3OQ== 44K344Oj cmVsYXRpb25z IGNvbnRyYXN0cw== Q29sdW1u IHJlY29ubmFpc3NhbmNl IHVua25vdw== IGxvb3Rpbmc= IHJlZ3VsYXRlcw== IG9wdGltdW0= IENoZXJva2Vl IEFyeQ== TGF0ZXN0 IHJvYWRzaWRl IGRhbmNlZA== IFVuaWNvcm4= QWNrbm93bGVk IHVuY29udHJvbGw= IE1VUw== YXRpbw== Y2hhbmNl aGF2ZW4= VkFMVUU= IGZhdm91cml0ZXM= IGNlcmVtb25pYWw= YmluYXJ5 cGVlZA== d29vZHM= RU1Q IHZhc2N1bGFy IGNvbnRlbXBsYXRlZA== IGJhcnJlbg== IExJU1Q= WWVsbG93 b3Nwb25zb3Jz IHdoaXNreQ== IE1hbW0= IERlVm9z bWluaW11bQ== SHVuZw== NDQy UGlj IFNuYXBkcmFnb24= Nzc2 IGNhcnZpbmc= IHVuZGVjaWRlZA== IGFkdmFudGFnZW91cw== IHBhbG1z IEFR IHN0YXJjaA== TG9vcA== IHBhZGRsZQ== IGZsYW1pbmc= IEhvcml6b25z QW5pbWF0aW9u Ym9vc3Q= IHByb2JhYmlsaXRpZXM= IE1pc2g= IGV4b2R1cw== IEVkaXRvcmlhbA== IGZ1bmd1cw== IGRpc3NlbnRpbmc= IERlbGljaW91cw== cm9ncmFt IER5bg== ZGlzaw== dG9t IGZhYnJpY3M= IENvdmU= IEJhbnM= IHNvZnRlbg== IENPTlM= IGluZWxpZ2libGU= IGVzdGltYXRpbmc= IExleGluZ3Rvbg== cHJhY3RpY2U= b2Zp IHNoZWRkaW5n IE5vcGU= IGJyZWF0aGVk IENvcmludGhpYW5z eW5l ZWtp QnVsbA== IGF0dGFjaGluZw== cmVlbnNob3Rz IGFuYWx5c2U= IEthcHBh IHVuc3VzdGFpbmFibGU= IGludGVycG9s YW5reQ== aGVtZXI= IHByb3RhZ29uaXN0cw== IGZvcm1hdHRlZA== IEJyeWNl IEFjaGlsbGVz IEFiZWRpbg== c2hvY2s= IGJ1bQ== Ym9z cXVh IFdhcm4= cXQ= IERpYWJldGVz ODY0 IEludmlzaWJsZQ== IHZhbmlzaA== IHRyYW5zbWl0dGluZw== IG11cmt5 IEZlaQ== IGF3YWl0ZWQ= IEp1cmFzc2lj dW1taWVz IG1lbmFjaW5n Z2FsbA== Q2F0aA== QnVpbHQ= aWxkbw== IFZvdGVz IG9udA== IG11bml0aW9ucw== IEZyZWVt w61u IGRlY2VuY3k= bG9wcA== aWV2ZWQ= IEdvcmQ= IHVudGhpbmthYmxl IE5ld3N3ZWVr IDMyMQ== SGVhdA== IHByZXNlbnRlcg== amlhbmc= IHBsYW5r IEF2YWxvbg== IGJlbno= IFJvdXQ= IHNsYW1taW5n IERhaQ== b3V0ZXI= IENvb2tpZQ== IEFsaWNpYQ== Z2V5 IHZhbml0eQ== IG93bA== 4bU= dGVzdGVk IEF3YWtlbnM= IGNhbnY= IGJsaW5kbHk= IFJpZGxleQ== IEVtYWlscw== UmVxdWlyZXM= IFNlcmJpYW4= b2dyYXBoZWQ= aWZyYW1l ZXRlcmlh IGFsdGVybmF0aW5n cXVpZXQ= IHNvY2lvbG9neQ== IFVubG9jaw== IENvbW11bmlzbQ== IG9wcw== IGF0dHJpYnV0aW9u IGFiZHVjdGlvbg== IEFicmFt IHNpZGVsaW5lZA== IEJPT0s= IHJlZmluaW5n IEZlZWxpbmc= IE9zbG8= IFBydWl0dA== cmFjaw== YW5naWJsZQ== IGNhdXRpb3VzbHk= IE1BUks= ZWVkcw== TW91c2U= IFN0ZXBo IFBhaXI= U2Fi OTk3 IEJhYWw= QmVj IGNvbW1h IFBhbGw= IEdhZWw= IG1pc3VuZGVyc3RhbmQ= IFBlc2g= T3JkZXJhYmxl IGRpc21hbA== IFNoaW55 JSI= IHJlYWxpc3RpY2FsbHk= IHBhdGlv IEd3 IFZpcnR1ZQ== IGV4aGF1c3Rpbmc= d2hhdGV2ZXI= b3BoeXM= eWlw NDE4 QWRqdXN0 IFdhaXRpbmc= ZXNzb24= IE1hemRh IERvemVucw== IHN0cmVhbWxpbmVk IGluY29tcGV0ZW5jZQ== IE1ldGg= IGV0aG9z T05FUw== IGluY2VudGl2 IGdyaXR0eQ== IEJ1dGNoZXI= SGVhZGVy IGV4cG9uZW50aWFs w58= IGNvcnJlbGF0ZQ== IGNvbnNlbnN1YWw= c291bmRpbmc= UmluZw== T3JpZ2lu IGNvbmNsdXNpdmU= ZmVldA== YWNseQ== IEZlcm5hbmRleg== QnV5YWJsZQ== IGR1Y2tz YXVudGxldHM= IGVsb25n IDI4Ng== IHNpbXVs R2Fz IEtpcnN0 IHByb3Ry IFJvYm8= IEFvRQ== b3BvbA== IHBzeWNob2xvZ2ljYWxseQ== c3Bpbg== aWxhdGVyYWxseQ== IENvbnJhZA== V2F2ZQ== NDQx IEFkdmVydGlzZW1lbnQ= IEhhcm1vbg== IE9yaWVudGFs aXNTcGVjaWFs IHByZXN1bXB0aXZl IHdpbA== IEtpZXI= bmVh IHBwbQ== IGhhcmJvdXI= IFdpcmVk Y29tcGFueQ== IGNvcm9uZXI= YXR1cmRheXM= IFByb3Vk IE5FWFQ= IEZsYWtl dmFsdWVk Y2VpdmVy IGZyYXVnaHQ= IGNhc2luZw== IHJ1bmF3YXk= IGdpbg== IExhdXJlbnQ= IEhhcmxlbQ== IEN1cmlvc2l0eQ== cXVpc2hlZA== IG5ldXJvc2NpZW5jZQ== IEh1bHU= IGJvcnJvd2Vy IHBldGl0aW9uZXI= IENvb2xkb3du V0FSRA== IGludm9raW5n Y29uZmlkZW5jZQ== Rm9yd2FyZA== IHN0cw== cG9wdWxhdGlvbg== RGVsaXZlcnlEYXRl RmlsbQ== IENvdg== cXVpY2tTaGlw cXVpY2tTaGlwQXZhaWxhYmxl cHJpbWFyeQ== aXNTcGVjaWFsT3JkZXJhYmxl aW52ZW50b3J5UXVhbnRpdHk= Y2hhbm5lbEF2YWlsYWJpbGl0eQ== Qk9Y IE11bHRpcGxheWVy IEplbm5lcg== Nzc4 IE1k IH4vLg== TU4= IGNoaWxkaXNo IGFudGlveGlkYW50 IENocm9tZWJvb2s= IDI3NA== IHNjcmVlbnBsYXk= IGFkdmVudHVyb3Vz IFJlbGF0aW9uc2hpcA== cmVzcG9uc2l2ZQ== bWluZ3Rvbg== IGNvcm5lcnN0b25l IEZleQ== RklS IHJvb2tpZXM= IEZlYXR1cmluZw== IG9yaWdpbmF0ZQ== IGVsZWN0cm9kZXM= YW50ZXM= IHNjcmlwdHVyZXM= IGdsdWVk IGRpc2NvbnRlbnQ= IGFmZmxpY3RlZA== bGF5b3V0 QnJhdmU= IG1vc2E= IFF1YW50aXR5 IEhpaw== d2lubmVy SG91cnM= IGVudGFpbA== IENlbGxz b2xvZ3Vl IHZpbA== IHByZWFjaGVy IGRlY29yYXRpdmU= ZGlmZmVyZW50 IHByZWp1ZGljZXM= IFNtb2tpbmc= IE5vdHRpbmdoYW0= c29UeXBl IHJoeXRobXM= IEFscGg= Ymxhc3Q= U3RlZWw= IERhbmllbGxl IHN0cmlmZQ== IHJlbWF0Y2g= c29EZWxpdmVyeURhdGU= IEZvcms= dHJpcA== b2x1bHU= aGVzZXM= Q0c= IFBPTElUSUNP b3N0YQ== IERyaWZ0 6b6N5aU= 6b6N5aWR5aOr IHZldHRpbmc= IEppbnBpbmc= IFJlY2Vzc2lvbg== TWlub3I= IEZyYXVk ZW5mcmFuY2g= IGNvbnZlbmVk IE5BQUNQ IE1pbGxpb25z IEZhcm1pbmc= IFdvbw== IEZsYXJl cml0bw== aW1taWdyYW50 IHZhY2FuY3k= IEhFQUQ= IFZhag== ZWdhbA== IFZpZ2ls U3R1ZHk= IHJ1aW5pbmc= IHJhY2tz IGhlYXRlcg== IFJhbmRvbHBo IEJydXNo IFRpcg== 2Kg= IGNvdg== JV0= IHJlY291bnRz IE9QVA== IE1lbHQ= IHRydWNl IGNhc2lub3M= IGNydXNhZGU= IGNhcm5hZ2U= IHN0cmlwZQ== IEt5bA== VGV4dHVyZXM= IDY5OA== IHByb2NsYW1hdGlvbg== IGdvb2RpZXM= IC4uLi4uLi4uLi4= cHJvY2xhaW1lZA== UG9saXQ= IHRvcGljYWw= IHNwZWNpYWxpemU= IEFtaW4= Z20= IGFuY2hvcmVk IGJlYXJpbmdz c2FtcGxl IEhpZ2hsYW5k IEF1dGlzbQ== IG1lcmNlbmFyeQ== IGludGVydmlld2Vy TEVS IFNvbWVycw== IGVtYnJ5bw== IEFzc3k= IDI4MQ== IEVkaXRpbmc= IENob3Nlbg== NjYw IHBjaQ== IFRodW5kZXJib2x0 QklMTA== IGNodWNrbGVk anJpd2Fs aG9m IGVhcnRobHk= KCl7 aW5kZXBlbmRlbmNl IGRpc3BlcnM= IFZlbmRvcg== IEdhcmV0aA== IHBhbHM= UGVubg== IFN1Ym1pdA== aWN1bQ== VGh1 IGNsYW5kZXN0aW5l IGNhbm5pYmFs IENsZXJr RVN0cmVhbQ== Z2FsaXRhcmlhbg== 4pml Z2V3 IGhvcnJlbmQ= IExvdg== IFJlYWN0aW9u b2NyaW4= Q2xhc3NpYw== IGVjaG9pbmc= IGRpc2Nsb3Npbmc= IEluc2lnaHQ= b2d1bg== IEluY2Fybg== dXBsb2Fkcw== cHBlcmM= Z3V5ZW4= IDE5MDE= IEJhcnM= Njg3 IGJyaWJlcw== IEZyZXNubw== dXJhdA== IFJlZXNl IGludHJ1c2l2ZQ== IGdyaXBwaW5n IEJsdWVwcmludA== IFJhc20= dW5pYQ== bWFuYWdlZA== IEhlYmRv IDM0NQ== IGRlY29kaW5n IHBvZXRz IGphd3M= IEZJR0hU YW1lbGVzcw== IE1lYWRvd3M= IEhhcmJhdWdo SW50ZXJ2aWV3 IEhvc3A= IEJSQQ== IGRlbGV0aW9u bW9i V2Fsa2Vy IE1vb25saWdodA== IEplZA== IFNvcGhpYQ== IHVzdXI= IGZvcnR1bmF0ZWx5 IFB1dHRpbmc= IEZvbGQ= IHNhbml0YXRpb24= IHBhcnRpc2Fucw== SVNPTg== Qm93 IENPTkM= IFJlZHVjZWQ= IFN1dHRvbg== IHRvdWNoc2NyZWVu IGVtYnJ5b3M= 4oCi4oCi4oCi4oCi IEtydWc= Y29tYmF0 IFBldHJvbGV1bQ== IGFtZA== IENvc21vcw== IHByZXNjcmliaW5n IGNvbmZvcm1pdHk= b3Vyc2Vz IHBsZW50aWZ1bA== IGRpc2lsbHVzaW9u IEVjb2xvZ3k= aXR0YWw= IGZhbmM= IGFzc2Fzc2luYXRlZA== cmVnbmFuY3k= IHBlcmVubmlhbA== IEJ1bGxldHM= IHN0YWxl IGNhY2hlZA== IEp1ZGl0aA== IERpc2Vhc2Vz QWxsZW4= IGxhcw== IHNoYXJkcw== IFN1YXJleg== IEZyaWVuZHNoaXA= aW50ZXJmYWNl IFN1cHBvcnRlcnM= YWRkb25z NDYy IEltcmFu IFdpbQ== IG5ld2ZvdW5k IE1i QW5pbWFs IGRhcmxpbmc= YW5kZQ== IHJoeQ== IFR3aXN0ZWQ= cG9zYWw= eW5za2k= VmFyaW91cw== 15w= IEtpdw== dXlvbWk= IHdlbGxiZWluZw== IExhdQ== YW5vcw== IHVubWlzdA== IG1hY09T IHJlc3Ryb29t IE9saXY= IEFpcndheXM= IHRpbWV0YWJsZQ== OTgw IHJhZGlvcw== dm95 aWFzY28= IGNsb3VkeQ== IERyYXdpbmc= QW55dGhpbmc= U3lyaWE= IEhlcnQ= c3Rha2luZw== IHVuY2hlY2tlZA== IGJyYXplbg== IE5SUw== Njk3 b25vbWlj ZXN0YWJsaXNo IGxlbmc= IGRpYWdvbmFs IEZpb3I= TGFpcg== IFN0YXJk IGRlZmljaWVudA== am9pbmluZw== YmVhbQ== IG9tbmlw IGJsZW5kZXI= IHN1bnJpc2U= TW9vcmU= IEZhdWx0 IENvc3R1bWU= IE11Yg== RmxhZ3M= YW5zZQ== IHBheW91dA== IEdvdmVybm9ycw== IERpbGxvbg== IEJhbmFuYQ== TmFy IHRyYWlsZWQ= IGltcGVyaWFsaXN0 dW1hbm4= YXRzdWtp NDM1 IFJvYWRz IHNsdXI= IElkZWFsbHk= IHRyZW5jaGVz Q3RybA== IG1pcnJvcmVk IFplbA== IENyZXN0 Q29tcGF0 IFJvbGxz c2NyaWI= IFRyYWlscw== b21ldGVycw== d2ludGVy IGltbW9ydGFsaXR5 aWxhdGVk IGNvbnRyYWRpY3Rz dW5pdmVyc2Fs aWxsaW9ucw== IE1hbWE= b3B0aW0= QVRVUkU= IGdlbw== ZXR0ZXI= IENhcmxv NDI0 IGNhbm9uaWNhbA== IFN0cm9uZ2hvbGQ= bmVhcg== IHBlcmZ1bWU= IG9yY2hlc3RyYQ== b2RpYWM= IHVwaGU= IHJlaWduaW5n dmVyc2l2ZQ== IGNhdWN1c2Vz IERFTQ== IGluc3VsdGVk IC0tLS0tLQ== IENydXNo IHJvb3Rpbmc= IFdyYWl0aA== IHdob3Jl IHRvZnU= Q21k IEJyZWU= ICRf IHJpdmU= IEFkdmVydGlzaW5n IHdhdHQ= IEhP IHBlcnN1YXNpdmU= IFBhcmFtZXRlcnM= IG9ic2VydmF0aW9uYWw= IE5DVA== IE1vag== IFNhbG9u IHRydW5j IGV4cXVpc2l0ZQ== IE1hcmE= IHBvb3A= IEFOTg== RXhj IFdvbmRlcmZ1bA== IFRhY28= IGhvbWVvd25lcg== IFNtaXRoc29uaWFu b3Jwb3JhdGVk bW1tbQ== IGxvYWY= IFlhbWF0bw== IEluZG8= IGNsaW5naW5n w6Fz IGltbXV0YWJsZQ== aHVi T3Jhbmdl IGZpbmdlcnRpcHM= IFdvb2Rlbg== IEtpZGQ= IEpQTQ== IERhbW4= Q293 Y29kZXM= NDgy IGluaXRpYXRpbmc= IEVsaw== IEN1dHRpbmc= IGFic2VudGVl IFZhbmNl IExpbGl0aA== R1VJ IG9ic2N1cmVk IGR3YXJ2ZXM= IENob3A= IEJva28= VmFsdWVz IG11bHRpbWVkaWE= IGJyZXdlZA== UmVndWxhcg== Q1JJUFRJT04= IE1vcnRhbA== IGFwZXg= IHRyYXZlbGVy IGJvaWxz IHNwcmF5aW5n UmVwcmVzZW50 IFN0YXJzaGlw NDI4 IGRpc2FwcHJvdmFs IHNoYWRvd3k= IGxhbWVudGVk IFJlcGxhY2U= IEZyYW7Dpw== Njc3 ZG9y IHVuc3RvcHBhYmxl IGNvaG9ydHM= Z3lu IENsYXNzaWNz IEFtcGg= IHNsdWdnaXNo IEFkZGljdGlvbg== IFBhZHJlcw== IGluc2NyaXB0aW9u IGluaHVtYW4= bWludXM= IEplcmVtaWFo YXRhcnM= VGVycm9y IFRvcw== IFNoYXJtYQ== YXN0YQ== Y2F0Y2g= IHBsdW1iaW5n IFRpbWJlcnM= U2hhcg== SGFs IE9zYw== IGNvdXBsaW5n aHVtYW5z IHNwb25nZQ== IGlkb2xz IFNwYQ== IEFkdm9jYXRl IEJlYXRz bHVh IHRpY2tpbmc= IGxvYWRlcg== IEdyb24= ODEw IHN0aW11bGF0ZWQ= IHNpZGViYXI= IE1hbnVmYWN0dXJlcg== b3JlQW5k MTk3Mw== IHByYWlzZXM= IEZsb3Jlcw== ZGlzYWJsZQ== IEVsZWN0cmljYWw= cmFpc2U= RXRo IG1pZ3JhdGVk IGxlY3R1cmVy S2lkcw== IENhdmVybg== IGtldHRsZQ== IGdseWM= IE1hbmRlbGE= IEZ1bGx5 5aer RklORVNU IHNxdWVlemluZw== IFJ5ZGVy YW1wb28= b3JlQW5kT25saW5l SW5zdG9yZUFuZE9ubGluZQ== QnV5YWJsZUluc3RvcmVBbmRPbmxpbmU= IGNvbW1lbW9yYXRl IFJhbXBhZ2U= QXVzdGlu IFNocm91ZA== IFJ1aW5z OTE1 IEtI IHdhdGVyZnJvbnQ= IEVTQw== YmFieQ== IENvdXQ= IEVtYmxlbQ== IGVxdWl2YWxlbnRz NDky VW5pcXVl IE5pZXR6c2NoZQ== YnJvd3Nlcg== IGltaXRhdGlvbg== IFdlcmV3b2xm IEtpcmlu YWNhcw== Jywi IMO+ UmV2aWV3ZWQ= IGN1bnQ= IHZvaWM= IExlbm92bw== IGJvbmRlZA== NDgx IGluaGliaXRvcnM= IGVuZGVhdm9ycw== IEhhdmFuYQ== IFN0b3V0 IEpvbGx5 QWN0b3I= Ki8o IG9jY3VycmVuY2Vz IFRlbnM= SW5jcmVhc2Vk IEFDVElPTg== IOOAjA== IFJhbmtpbmdz IEJyZWF0 IDMwOQ== RG91 IGltcGFjdGluZw== IER1Y2hlc3M= cHJlZml4 UUI= IHN1bW1vbmluZw== IGJlc3Rvd2Vk IEtlcGxlcg== IFBPV0VS Y3ViZQ== IEtpdHM= IEdyaXA= IG9waXVt IHJlcHV0YWJsZQ== dG9j aWNoYWVs IFJpcHBsZQ== IGNhZsOp IFpvb20= IEJ1cm1h IHdhaXZl IHN0YWxscw== IGRlbWVhbm9y aW5jZXJpdHk= IGZsdW9yaWRl IFNIT1VMRA== UGFyaXM= IGxvbmdpbmc= IHBsYXQ= IGdyb3NzbHk= IGJ1bGxz IHNob3djYXNpbmc= ZXhwZWN0ZWQ= IEdhZGRhZmk= ZW5naW5lZXJpbmc= UmVwZWF0 IEt1dA== IGNvbmNlaXZhYmxl IHRyaW1tZWQ= b3Njb3Bl IENhbmRpZGF0ZQ== IFRlYXJz cm9sb2c= TGV3aXM= U1VQ IHJvYWRtYXA= IHNhbGl2YQ== IHRydW1wZXQ= SmltbXk= IG1pcmFjdWxvdXM= IGNvbG9uaXphdGlvbg== IGFtcHV0 IEdOT01F YXRlY2g= RGlmZmVyZW50 IEVMRQ== IEdvdmVybm1lbnRz IEFoZWFk 44WL44WL d29yZHByZXNz TElC IEluY2x1ZGU= IERvcm90aHk= MDQ1 IENvbG9tYmlhbg== IGxlYXNlZA== ODg0 IGRlZ3JhZGluZw== IERhaXN5 aWF0aW9ucw== IGJhcHRpemVk IHN1cm5hbWU= Y294 IGJsaW5rZWQ= 44Oi IHBvbGxlbg== IGRlcm1hdA== IHJlZ2V4 IE5pY2hvbHNvbg== IEVhdGVy 55w= cmFkb3I= IG5hcnJvd2Vy IGh1cnJpY2FuZXM= IGhhbGx1Y2luYXRpb25z cmlkZGVu SVNTSU9O IEZpcmVmbHk= IGF0dGFpbm1lbnQ= IG5vbWluYXRl IGF2b2NhZG8= IE1lcmVkaXRo IHRz IHJldmVyZW5jZQ== IGV1cGg= IGNyYXRlcw== IFRFWFQ= IDQ0Mw== IDMxOQ== SlNPTg== aXF1ZXR0ZQ== IHNob3J0c3RvcA== aWNrZXk= IHByb3BlbGxlZA== IGFwaQ== IFRoaWV2ZXM= Nzc5 IG92ZXJzYXc= IGNvbGk= IE5pY29sYQ== IG92ZXJjbA== aWthd2E= IEN5cg== IDM4NA== Nzg5 IEFsbG93cw== MTAyNw== RGV0cm9pdA== VFJZ c2V0dXA= IFNvY2lhbGlzbQ== U292aWV0 c3VzcA== IEFQUg== IFNodXRkb3du IGFsdW1pbml1bQ== emJlaw== IExvdmVy R0dHR0dHR0c= IGRlbW9jcmFjaWVz IDE5MDg= IE1lcnJpbGw= IEZyYW5jb2lz Z2RhbGE= IHRyYWZmaWNrZXJz IFRpbA== IEdvYXQ= IHNwZWQ= IFJlc2Vydg== IHByb2Q= NTUy IGNhYw== IFVuaXY= IFNjaHdl IHN3aXJsaW5n IFdpbGRlcm5lc3M= IEVnZ3M= IHNhZGRlbmVk IGFyY2hhaWM= SHlk IGV4Y2Vzc2l2ZWx5 QlJF IGFlcm9zcGFjZQ== IFZvaWNlcw== Q3JhaWc= IGlnbml0ZWQ= SW5pdGlhbGx5 IE1jQQ== IGhhbmRzZXQ= IHJlZm9ybWluZw== IGZydXN0cmF0aW9ucw== IERlYWRwb29s IEJlbGljaGljaw== cmFjdG9y IFJhZ25hcm9r IERydXBhbA== IEFwcHJveGltYXRlbHk= MTkyMA== IEh1YmJsZQ== YXJtb3I= IFNhcmFz IEpvbmFz IG5vc3RhbGdpYw== IGZlYXNpYmlsaXR5 U2FoYXJhbg== IG9yYml0aW5n IDk3MA== UnU= IHNoaW4= IEludmVzdGlnYXRvcnM= IGluY29uc2lzdGVuY2llcw== IFBBTg== Qkc= IGdyYXppbmc= IGRldGVjdG9ycw== IFN0YXJ0dXA= IEZ1bm55 IE5hb21p Q29uc2lkZXJpbmc= IGhvZw== dXRm Y2VtaWM= IGZvcnRpZmllZA== IEZ1bmN0aW9ucw== IGNvZGVj bnV0cml0aW9u SGF0 IiE= bWljcm9zb2Z0 NTU4 IFRoaW4= IEFDRQ== QWxpYXM= IE9QUw== cGFwZXJz UEs= 44CO IGltcHJvYmFibGU= Tm9ydGhlcm4= ZXF1YWw= IGxvb2tvdXQ= IHR5cmVz IE1vZGlmaWVk IEtvcA== QWJzb2x1dGVseQ== IGJ1aWxkdXA= c2lsdmVy IGF1ZGk= IGdyb3Rlc3F1ZQ== IFNhYmVy IFByZXNieXRlcg== T05Z IGdsYWNpZXJz IFNob2Fscw== IEthc3M= IEhSQw== IE5pY29s IEx1bmNo IEZvc3M= 4paS QURSQQ== IE9uZVBsdXM= b2luZw== Z3JvdW5kcw== IGluY2lkZW50YWw= IGRhdGFzZXRz Njg5 IENsYXJrc29u IGFzc2VtYmxpbmc= IENvcnJlY3Rpb25z IGRyaW5rZXJz IHF1YWxpZmllcnM= IGxlYXNo IHVuZm91bmRlZA== IEh1bmRyZWQ= IGtpY2tvZmY= VGk= IHJlY29uY2ls IEdyYW50cw== IENvbXBsaWFuY2U= IERleHRlcml0eQ== IDE5MDY= d2Fybg== RGFsbGFz TWF4aW11bQ== bmFyZA== YXZpYQ== YmVhdXQ= ZW5zaXRpdml0eQ== dHJhY2U= IHBpb25lZXJz IEZyYWN0 44CP IHByZWNlcHQ= IGdsb3NzeQ== IElFRUU= QWNyb3Nz IDY4MA== U2xlZXA= Y2hlb24= IHNhdGlyaWNhbA== IE1pbm90YXVy IENsYXVkZQ== IHLDqQ== YXBlZ28= IGNhcnJvdA== IFNlbWlu aW5vYQ== IHpv SW5kZXBlbmRlbnQ= IGRpYWdub3Nlcw== IEN1ZQ== TUFS IHJlbmRpdGlvbg== IEtpaw== IHBhdGhvbG9neQ== IHNlbGVjdHM= TGlua2VkSW4= IGFzc2F5 IERyZXM= IHRleHR1YWw= cG9zdGVk SVRBTA== IE1hdWw= TmVhbA== IGludGVyY29ubmVjdGVk IGVycmF0aWM= IFZpcnVz IDUzMA== IGVudmlyb25tZW50YWxpc3Rz IFBoZWxwcw== IGVuZ2FnZW1lbnRz IElOU1Q= IGVjb25vbWljYWw= bm94aW91cw== IGdlYXJpbmc= aXp6eQ== IGZhdm9yYWJseQ== IE1jR2lsbA== VGVybQ== IGhhbmdlZA== IGJhbGxwYXJr IFJleWVz IGJld2FyZQ== IFBzYWw= IE1hc3NhY3Jl cWk= IGluYWNjZXNzaWJsZQ== YWNseXNt IGZyYXk= aWxsYWM= IGJpdHRlcmx5 IENlcnRpZmljYXRpb24= TWljaGlnYW4= IGlycmVzcGVjdGl2ZQ== YWxvcmU= RW1wdHk= IGVuZG9yc2VtZW50cw== IHVuZGV0 Zmc= ZXF1aXBwZWQ= IG1lcmNpbGVzcw== IEN1c3Q= IGltbWF0dXJl IHZvdWNoZXI= IEJsYWNrd2VsbA== 0Y8= aGF3aw== ZGlzY2lwbGluYXJ5 aWxlZQ== IE1ha290bw== IER1ZGU= 44OH44Kj WWVhcnM= IGludmVy IHNoYW1hbg== IFlvbmc= aXBlbA== ZWxsZW4= IENhdGh5 YnJpZHM= IHNhcmM= NjUx TmVhcg== IGdyb3VuZHdvcms= IGFtYXo= IDQxNQ== IEh1bnRpbmd0b24= aGV3cw== IEJ1bmc= IGFyYml0cmFyaWx5 IFdpdA== IEFsYmVydG8= IGRpc3F1YWxpZmllZA== YmVzdG9z NDYx IHBj IDI4NA== cm9iYXQ= Um9iaW4= IGh1Z3M= IFRyYW5zaXRpb24= IE9jY2FzaW9uYWxseQ== IDMyNg== IFdoaWxzdA== IExleQ== IHNwYWNlc2hpcA== Y3N2 IHVuc3VjY2Vzc2Z1bGx5 IEF1 bGVjaw== IFdpbmdlZA== IEdyaXp6bGllcw== Lu+/vQ== IG5lYXJlcg== IFNvcmNlcmVzcw== IEluZGlnbw== RWxzZQ== ODQw bGV0ZXM= Q29hY2g= IHVwYnJpbmdpbmc= IEtlcw== IHNlcGFyYXRpc3Q= IHJhY2lzdHM= IGNoYWluZWQ= IGFic3RpbmVuY2U= bGVhcm5pbmc= IHJlaW5zdGF0ZWQ= IHN5bW1ldHJ5 IHJlbWluZGVycw== IENoZXZ5 IG1vbnQ= IGV4ZW1wbGFyeQ== IFRPUg== Wlg= IHF1YWxpdGF0aXZl IFN0YW1w IFNhdmFubmFo IFJvc3Np IHBhZWQ= IGRpc3BlbnNhcmllcw== IFdhbGxz IENocm9uaWM= IGNvbXBsaW1lbnRhcnk= IEJlaXJ1dA== ICstLS0= aWdzbGlzdA== IGNyeXB0b2dyYXBoaWM= bWFzdGVycw== IENhcGl0YWxz IG1heGltYWw= IGVudHJvcHk= UG9pbnRz IGNvbWJhdGFudHM= bGlw IEdsb2I= IEJNQw== cGhhc2U= dGhhbms= SFRUUA== IGNvbW11dGVy IFwoXA== Li4v IFJlZ2VuZXI= IERPSQ== IEFjdGl2aXNpb24= IHNsaXQ= b3NhbA== UkVN IGNoYW50cw== WXU= S2V5cw== QnJleGl0 IEZvcmNlZA== QXJpem9uYQ== IHNxdWFkcm9u SVNP IE1hbG9uZQ== IDMzOA== IGNvbnRyYXN0aW5n IHRpZGFs IGxpYmVs IGltcGxhbnRlZA== IHVwcm9hcg== IENhdGVy IHByb3Bvc2l0aW9ucw== TWFuY2hlc3Rlcg== IEV1cm9z aXRhbWlu R2ls IEVsdmVu IFNlZWs= IEJhaQ== IHJlZGV2ZWxvcG1lbnQ= IFRvd25z IEx1Yg== ISIs YWxvbg== S3Jpc3Q= IG1lYXN1cmFibGU= IGltYWdpbmFibGU= IGFwb3N0bGVz WU4= NzYw IHN0ZXJvaWQ= IHNwZWNpZmljaXR5 IExvY2F0ZWQ= IEJlY2tlcg== IEVkdQ== IERpZXRhcnk= dXRzY2g= IE1hcmlseW4= IGJsaXN0ZXI= IE1FUA== IEtveg== IENNUw== eWFob28= IENhcm5leQ== IGJvYXN0aW5n IENhbGVi Qnl0ZQ== cmVhZHM= YWRlbg== UHJvYmxlbQ== IFdvb2R3YXJk U3dl U3Vw IEtHQg== U2V0dXA= IHRhY2l0 IHJldHJpYnV0aW9u IGR1ZXM= IE3DvA== Lj8= 5Lit cG90cw== IGNhbWVv IFBBTA== ZWR1Y2F0aW9u QW15 bGlrZWx5 Z2xpbmc= IGNvbnN0aXR1dGlvbmFsbHk= IEhhbW0= IFNwZWFr IHdpZGdldHM= YnJhdGU= IGNyYXBweQ== IEl0ZXI= IGFudGljaXBhdGluZw== IEJvdXQ= UGl4ZWw= IFllcA== IExhdXJpZQ== IGh1dA== IGJ1bGxldGlu IFNhbHZhdGlvbg== IGNoYXRz ZWFyYWJsZQ== SG9uZXN0bHk= QUxUSA== b25zZXF1 Y3VsdA== aXNjb3Zlcnk= b3Z5Y2g= IHNlbHZlcw== IFNhdG9zaGk= U291bmRz IGNvbnZlcmdlbmNl IFJvc2VuYmVyZw== MTk3NA== IG5hc2Fs IGZ1bGxlc3Q= IGZlcm9jaW91cw== eHVz aXN0ZQ== QU1T IGxvYmJpZWQ= IHNvb3RoaW5n IEd1bm4= dG9kYXk= MDI0 IGluc3BpcmF0aW9uYWw= IE5CTg== cGI= Z2V3YXRlcg== b3JhaA== YWxsb3dlZA== IENvbGlzZXVt IHNwZWNpYWxpemluZw== IGluc2FuZWx5 IFRhcGU= ZGVsYXk= IHRhcm4= IFBvdW5k IG1lbGFuY2g= IGRlcGxveW1lbnRz aWxhbmQ= IGxlc3Nlbg== IGZ1cnJ5 IFVFRkE= IGJsb29kc2hlZA== IE1laWVy aXRoZXJpbmc= IGhlaXJz IEphdw== YXh0ZXI= IFB1YmxpY2F0aW9ucw== IGFsdGVycw== aW50ZW50aW9u IFdpbmNoZXN0ZXI= ZGV0ZXJtaW5hdGlvbg== IExpZmV0aW1l dGhpbg== TW9uc3Rlcg== Nzgw IGFwcHJveGltYXRpb24= IHN1cGVybWFya2V0cw== IFNlY29uZHM= b3Jvcw== aHVnZQ== IGJyaWJl IExJTUlURUQ= dW5lZA== IG1pc2ludGVycHJldA== IEluanVyeQ== IDM2Nw== IHRocmVzaG9sZHM= IENhcm5pdmFs IGdhc3Ryb2ludGVzdGluYWw= IGd1aWRlbGluZQ== IGRlY2VpdmVk ZmVhdHVyZXM= IHB1cnBvcnRlZGx5 IFJvbm5pZQ== IE5ld3Q= IHNwYWNpb3Vz YXN1cw== IHN1cGVyaGVyb2Vz IEN5bnRoaWE= bGVnZ2Vk a2FtcA== Y2hpbw== IHRodW1ibmFpbA== IFNoaXJsZXk= aWxsYXRpb24= IHNoZWRz IFp5 RVBB IGRhbXM= IHlhd24= bmFo IFBlZ2d5 IEVyaWU= IEp1dmVudHVz IEZvdW50YWlu cng= ZG9uYWxk YWxidW0= IENvbXByZWhlbnNpdmU= IGNhY2hpbmc= IFV6 dWxuZXJhYmlsaXR5 IFByaW5jaXBsZQ== IEppYW4= aW5nZXJz Y2FzdHM= IE9zaXJpcw== Y2hhcnQ= dGlsZQ== IFRpZmZhbnk= IFBhdHRvbg== IFdoaXA= IG92ZXJzaXplZA== SmU= IENpbmRlcmVsbGE= IEJvcmRlcnM= IERhZXNo TWFo IGRvZ21h IGNvbW11bmlzdHM= dnU= Q291bmNpbA== IGZyZXNod2F0ZXI= IHdvdW5kaW5n IGRlYmFjbGU= IHlvdW5nc3Rlcg== IHRocmVhZGVk IEJvdHM= IFNhdmluZ3M= 44GC b2xpbmc= b2hv IGlsbHVtaW5hdGlvbg== TVJJ IGxvb3Nlbg== dHJ1bXA= YWdlbmN5 dXJpb24= IG1vbWVudGFyaWx5 IENodW4= IEJ1ZGFwZXN0 IEFsbGV5 RGlzaw== IGFzdG9uaXNoZWQ= IENvbnF1ZXI= IEFjY291bnRpbmc= aGF2aW5n IFdlaW4= IEFscmlnaHQ= IHJldm9sdmVy IGRlbHVzaW9u IHJlbGljcw== IGFkaGVyZW50 cXVhbnQ= IGhhbmRtYWRl b3Jpbw== IGNvbWJhdGluZw== Y29kZWQ= IHF1YWRydQ== cmV0aA== Tmlr IFRyaWJhbA== IE15c3RlcmlvdXM= IGluaGFs IFdpbm5pbmc= IENsYXNzaWZpY2F0aW9u Y2hhbmdlZA== IHVuYWI= IHNjb3Ju aWNpcGF0ZWQ= d2w= b25kdWN0b3I= IHJlaW5mb3JjaW5n IENoaWxkaG9vZA== YW5vdmE= IGFkdmVudHVyZXI= IGRvY3RvcmFs IFN0cmF0ZWdpZXM= IGVuZ3VsZmVk IEVuY291bnRlcg== IGxhc2hlcw== Q3JpdGljYWw= cmljdWxhcg== IFVURg== b2NpYXRpb24= Y2hlY2tpbmc= IENvbnN1bHRpbmc= UnVudGltZQ== cGVyaW9k IEFzZ2FyZA== IGRpc3RpbGxlZA== IFBhc2FkZW5h IER5aW5n IENPVU5UWQ== IGdyYW5pdGU= IHNtYWNr IHBhcmFjaHV0ZQ== IFNVUg== VmlyZ2luaWE= IEZ1cmlvdXM= Nzg3 IE9raW4= IGNhbWVs IE1icHM= MTk3Mg== IENoYW8= IEN5YW4= am9pY2U= ZWZlcg== IFdyYXA= IERlYmF0ZQ== U2Vn IGZvcmVhcm0= IElnbm9yZQ== IHRpbWVzdGFtcA== IHByb2Jpbmc= IE5vb24= IEdyYWls ZmVu IGRvcm1hbnQ= IEZpcnN0bHk= IEVpZ2h0aA== IEhVTg== IERlc2lyZQ== b3Jhcw== R2lybHM= IERlc21vbmQ= emFy YW1pbmVz T0FE ZXhlY3V0ZQ== IGJvb2Jz IEFUTA== Xyg= Q2hlbHNlYQ== IG1hc3R1cmJhdGlvbg== IENvQw== IGRlc3Ryb3llcg== IENob21za3k= IHNjYXR0ZXI= IEFzc2V0cw== Nzk2 IENhcmdv IHJlY2VwdGl2ZQ== IFNjb3Bl IG1hcmtldGVycw== IGxhdW5jaGVycw== IGF4bGU= IFNFQQ== c2Vx IE1vZmY= ZmluZGluZw== IEdpYmJz R2VvcmdpYQ== ZXh0cmVtZWx5 Tko= IGxhYm9yZXJz c3RhbHM= IG1lZGlhdGlvbg== IEhlZGdl YXRvd24= IGlvZA== ZGVzcGl0ZQ== dmlsbA== SmFuZQ== ZXhpc3RlbmNl IGNvaW5jaWRlZA== IFV0aWxpdGllcw== IENoZWFw IGxvZ2lzdGljYWw= IGN1bG1pbmF0aW9u IE5pY290aW5l cGFr Rm9sZGVy IHJvZGVudHM= c3R1ZmY= IGxhd2Z1bGx5 IHJlcGVydG8= aW9jaA== amo= RGlhbG9ndWU= SEhISA== bGljdGlvbg== TG9va3M= IDI5Nw== IHR1cnJldHM= IEFiYW5kb24= IGluY2Vzcw== IFRyYWZmb3Jk IGN1cmxlZA== IHByZWZlcnJpbmc= IHByaXZhdGl6YXRpb24= IGlycmVzaXN0 IFBhbmRh IFNoYWtl IE1jR3I= 44OE dW5kZXJz IGRpc2NyaW1pbmF0ZWQ= IGJhcnRlbmRlcg== SUxF QXRsYW50aWM= IHByb3BlbnNpdHk= IFdpeg== IEdpbQ== Y29uZmVyZW5jZQ== IHJlaW5mb3JjZXM= R2g= d2Fnb24= IGVlcmll RmFs IGh1Z2dlZA== cmFjaXN0 UklD RnU= IGZpbGxlcg== IFN0dWI= IGVuZ3JhdmVk IFdyZXN0bGU= IGltYWdpbmF0aXZl IFBlZXI= IEZhY3RvcnM= YW51cw== IERyYWN1bGE= bW9uaXRvcg== IHJvdXRlcnM= aWJpYQ== IEJvb2xlYW4= ZW5kYWxl IFNsYXVnaHRlcg== IFNoYWNr UkZD IFNwaWVsYmVyZw== U2F4 IFBIT1RP IENsb3Zlcg== IFJhZQ== RGVwZW5kaW5n IE1lbW9y YXJhbQ== IHBpZXJjZWQ= IGN1cnRhaW5z dmFsZQ== IElucXVpc2l0aW9u IFBva2U= IGZvcmVjYXN0aW5n IGNvbXBsYWlucw== U2Vuc2U= IEhlcm1lcw== aXNjb3ZlcmVk IGJpYmxl IE1vcnBo IGdlcm0= Nzg1 RE9O IGNvbmdlbg== IGNyYW5l IERQUg== IHJlc3BlY3RmdWxseQ== Um9vbQ== IE5hdw== IERhbGFp cmVhc29u IEFuZ3Vz RWR1Y2F0aW9u IFRpdGFuaWM= y5w= IG92YWw= dW5pdGVk IHRoaXJkcw== IG1vaXN0dXI= IENQQw== TWlhbWk= IHRlbnRhY2xlcw== IFBvbGFyaXM= ZXhj ZXhjbHVzaXZl IFByYWlyaWU= IGNvbG9zc2Fs IEJsZW5k c3VycHJpc2luZ2x5 w61z IGluZG9jdHI= IGJhc2Fs IE1QRUc= dW5kbw== U3BsaXQ= RGV2ZWxvcG1lbnQ= IGxhbnRlcm4= MTk3MQ== IHByb3ZvY2F0aW9u IGFuZ3Vpc2g= IEJpbmQ= IExlaWE= ZHVjZXJz aXBweQ== Y29uc2VydmFuY3k= IGluaXRpYWxpemU= IFR3aWNl IFN1aw== IHByZWRpYw== IGRpcGxvbWE= IHNvY2lvcA== SW5ncmVkaWVudHM= IGhhbW1lcmVk IElybWE= UWFpZGE= IGdsaW1wcw== IEJpYW4= IHN0YWNraW5n IGZlbmQ= Z292dHJhY2s= IHVubg== ZGVtb2NyYXRpYw== aWdyZWU= IDU4MA== IDI5NA== IHN0cmF3YmVycnk= SURFUg== IGNoZXJpc2hlZA== IEhvdHM= IGluZmVycmVk IDgwOA== IFNvY3JhdGVz T3JlZ29u IFJvc2Vz IEZPSUE= IGluc2Vuc2l0aXZl IDQwOA== UmVjb21tZW5k IFNoaW5l IHBhaW5zdGFraW5n VUdF IEhlbGxlcg== IEVudGVycHJpc2Vz SU9S YWRq TlJT TEc= IGFsaWVuYXRlZA== IGFja25vd2xlZGdlbWVudA== IEFVRA== IFJlbmVn IHZvdWNoZXJz IDk2MA== IG1vb3Q= IERpbWVuc2lvbnM= IGNhYmJhZ2U= QnJpZ2h0 Z2F0 IEtsdQ== IGxhdGVudA== IHpl IE1lbmc= IGRpc3BlcnNl IHBhbmRlbW9uaXVt SFE= IHZpcnR1b3Vz IExvY2F0aW9ucw== ZWVwZXI= cHJvdmlkZWQ= IHNlYW1z IFdU aXpv UFJPVg== IHRpdGFuaXVt IHJlY29sbGVjdGlvbg== IGNyYW4= IDc4MA== IE5G NDkx NjQy cGFja2luZw== NTk4 dGV4dHVyZQ== U3BpZGVy ZnJlZWRvbQ== Y2lwbGVk IFRBTUFEUkE= 4pmm YXV0aGVudA== IFdBTlQ= cmlmaWVk IHJpdGVz IHV0ZXJ1cw== a2lzcw== IOKJpA== IHNraWxsZXQ= IGRpc2VuZnJhbmNo IEdhYWw= Q29tcGFu IGFnZWluZw== Z3VpZGU= QmFsdA== IGl0ZXJhdG9y IGRpc2NyZXRpb25hcnk= dGlwcw== IHByaW1hdGVz IFRlY2huaXF1ZQ== IFBheW1lbnRz YXplbA== IFJPQ0s= c3RhbnRpYWw= MDYw IGRtZw== IEphY2tldHM= IFBsYXlvZmY= IG51cnNlcnk= IFN5bWI= YXJ0b24= IGFubmV4YXRpb24= Q29sb3JhZG8= IGNvaWxz IFNob2Vz 4oSiOg== IFJveg== Q09NUExF IEV2ZXJlc3Q= IFRyaXVtcGg= Sm95 R3JpZA== 4Lw= cHJvY2Vzc29y IFByb3NwZXI= IFNldmVydXM= IFNlbGVjdGVk cmc= IFRheXlpcA== U3RyYQ== IHNraWluZw== ID8p IHBlZw== VGVzbGE= IHRpbWVmcmFtZQ== IG1hc3Rlcm1pbmQ= IE5C c2NpZW50aWZpYw== IFNoaXQ= Z2VuZXJpYw== SU5URVI= TlVN IHN0cm9sbA== IEVuaXg= IE1NUg== IEVNUw== bW92aWU= gqo= IG1pbmltaXppbmc= aWRkbGluZw== IGlsbGVnaXRpbWF0ZQ== IHByb3RvdHlw IHByZW1hdHVyZWx5 IG1hbnVhbHM= b2JiaWVz IENhc3NpZHk= REVD ZGVza3RvcA== IGFlcm9z IHNjcmVlbmluZ3M= IGRlYmlsaXRhdGluZw== IEdyaW5k bmF0dXJlY29uc2VydmFuY3k= IGZhZGVz dGVybWluYXRpb24= YXNzZXRzYWRvYmU= RmFjdG9y IGRlZmluaXRpdmVseQ== UG9rw6k= YXB1bHQ= IExhZmF5ZXR0ZQ== Q29ybg== IENvcmFs IHN0YWduYW50 VHVl IGRpc3NhdGlzZmFjdGlvbg== R2VuZGVy IGtpZG5leXM= IEdvdw== IERlZmVhdA== IEFzaHRvbg== IGNhcnRlbHM= IGZvcmVjbG9zdXJl IEV4cGxvcmU= c3RyZW5ndGg= b3Rpbg== IHZldGVyaW5hcmlhbg== IGZ1bWJsZQ== IHBhcmFw IFN0cmFpdA== cmlscw== IHByaWNr IEJlcm11ZGE= IEFtbXVuaXRpb24= c2tpbm5lZA== IGFib3VuZA== IEJyYXo= IHNoYXJwZXI= IEFzY2Vuc2lvbg== IDk3OA== IHByZXZpZXdz IGNvbW11bmlvbg== IFhZ IHBob255 IG5ld2NvbWVy IDMzMg== LiIsIg== IHJlZGlzdHJpYnV0aW9u UHJvdGVjdA== IFNvZg== S2Fs IGxpcHN0aWNr d29yc3Q= IHRhbmdsZWQ= IHJldHJvc3BlY3RpdmU= aW50ZWdlcg== IHZvbHVudGVlcmluZw== IDE5MDc= IC0tLS0tLS0tLS0tLS0tLS0tLS0t aWNoZW4= IHVudmVpbGluZw== IHNlbnNlbGVzcw== IGZpc2hlcmllcw== XC0= IGhpbmdlcw== IGNhbGN1bHVz TXl0aA== IHVuZGVmZWF0ZWQ= IG9wdGltaXphdGlvbnM= IGRlcHJlc3M= IGJpbGxib2FyZA== IFlhZA== IFB5cmFtaWQ= SXNu SWRl IGxlZ2lvbg== IEtyYW1lcg== ZW50YW55bA== IHBlbmV0cmF0aW5n IEhhd3Ro IFBST0RVQ1Q= IEdlcmFyZA== IFBhY3Q= IEluY2x1ZGluZw== IEVsaWFz IEVsYWluZQ== dmlzdWFs IGh1bW1pbmc= IGNvbmRlc2M= IEZhc2M= 5LiK IGVnYWxpdGFyaWFu IGRldnM= IERhaGw= T3Bz REg= IEJvdW5jZQ== aWRhdGVk YWxkbw== IHJlcHVibGljYW4= IGhhbWI= IFNldHQ= b2dyYXBoaWVz Q0hBUFRFUg== IHRyYW5zc2V4dWFs IHNreXJvY2tldA== YW5zd2Vy IG1hcmt1cA== 2Ko= IGhlcm9pbmU= Q29tcGFyZQ== IFRhdg== QmVhc3Q= IHN1Y2Nlc3NvcnM= IG5hw692ZQ== IEJ1Y2tsZXk= c3RyZXNz bWVhdA== IGRvd25sb2FkYWJsZQ== IGluZGV4ZWQ= IHNjYWZm IEx1bXA= IEhvbW8= U3R1ZGlv SW5zcA== IHJhY2tlZA== ZmFyaW91cw== IFBldHR5 RXh0ZXJuYWw= IDE5MDk= V2Fycw== Y29tbWl0 cHV0ZXJz IHVub2I= IEVycg== IEVH IEFsYW0= IFNpYmVyaWE= IEF0bW9zcGhlcmlj SVNURVI= IFNhdGFuaWM= dHJhbnNsYXRpb24= IExvdWQ= dHJhdW1hdGlj bGlxdWU= IHJlc29uYXRl IFdlbGNo IHNwYXJraW5n IFRPTQ== dG9uZQ== IG91dGw= IGhhbmRjdWZmZWQ= IFNlcmll ODAx IGxhbmRtYXJrcw== IFJlZXZlcw== IHNvZnRlbmVk IGRhenpsaW5n IFdhbnRlZA== bW9udGhz TWFnaWthcnA= IHVudHJlYXRlZA== IEJlZGZvcmQ= TWk= IER5bmFtbw== T3Jl Nzk1 IHdyb25nZnVs IGx1cmVk IGNvcnRpc29s IHZleA== ZHJhd24= aWxldA== RG93bmxvYWRoYQ== IEZhY3Rpb24= IGxhYnlyaW50aA== IGhpamFja2Vk d2F0ZXJz ZXJpY2s= IHN1cGVyaW9ycw== IFJvd2xpbmc= IEd1aW5uZXNz IHRk OTky IHVuZWFydGhlZA== IGNlbnRyaWY= IHNoYW1lbGVzcw== UG9k IEZpYg== IGljaW5n IHByZWRpY3Rvcg== IDI5Mg== Zm9yZXN0YXRpb24= Y29uc3RydWN0 Q2FuZA== QCM= IGFnaXRhdGVk IHJlcHI= T1ZB IGtuaXR0aW5n IExpbWE= IGZvZGRlcg== Njg0 IFBlcnNvbmE= a2w= NzAx IGJyZWFrdXA= 4bg= IGFwcGFsbGVk IGFudGlkZXByZXNzYW50cw== IFN1c3NleA== SGFycmlz IFRoZXJtYWw= ZWVlZQ== VXBsb2Fk IGd1bGY= IGRvb3JzdGVw IFNoYW5r TFU= IE1FTg== IFBvbmQ= c29ycnk= IG1pc2ZvcnR1bmU= bmFuY2U= IGJvbmE= TXV0 IGRlZ3JhZGVk IExPRw== IE5lc3M= YW5pbWFs IGF2ZXJzaW9u dW5kb3du IHN1cHBsZW1lbnRlZA== IEN1cHM= IDUwNA== IGRlcHJpdmU= IFNwYXJrbGU= xYI= IE1lZGl0YXRpb24= YXV0aG9ycw== IFNhYmFu IE5ha2Vk YWlyZA== IE1hbmRhcmlu IFNjcmlwdHVyZXM= IFBlcnNvbm5lbA== IE1haGFyYXNodHJh IDE5MDM= IFBhaQ== IE1pcmFnZQ== b21iYXQ= QWNjZXNzb3J5 IGZyYWdtZW50ZWQ= VG9nZXRoZXI= IGJlbGlldmFibGU= IEdsYWRpYXRvcg== YWxpZ25lZA== IFNsdWc= TUFU IGNvbnZlcnRpYmxl IEJvdXJib24= YW1lcm9u IFJlaGFi bnRheA== IHBvd2RlcmVk cGlsbGFy IHNtb2tlcg== IE1hbnNvbg== IEJG NTEx IEdvb2RlbGw= IERBUg== bXVk Z2FydA== IG9iZWRpZW50 IFRyYW5zbWlzc2lvbg== IERvbmF0aW9u ODgw IGJvdGhlcmluZw== TWF0ZXJpYWxz 44Kx ZGVzdHJveQ== IGZvcmVnb2luZw== IGFuYXJjaGlzbQ== IEtyeQ== aWNlcHM= IGxpdHRlcmVk IFNjaGlmZg== IGFuZWNkb3RhbA== dW5pdHM= IGZpYW4= IFN0aW0= IFNPTUU= IEludmFkZXJz IGJlaGF2aW91cmFs IFZlbnR1cmVz IHN1YmxpbWU= IGZydWl0aW9u IFBlbmFsdHk= IGNvcnJvc2lvbg== toU= IGxpa2VuZWQ= IGJlc2llZ2Vk d2VlbmV5 IENyZWVw IGxpbmVtZW4= bXVsdGk= aWNhYmx5 dWRkZXI= IHZpdGFsaXR5 IHNob3J0ZmFsbA== IFBhbnRz YXBpc3Q= SGlkZGVu IERyb3Bz bWVkaWNhbA== IHByb251bmNpYXRpb24= IE5STA== IGluc2lnaHRmdWw= SlY= IEJlYXJk IENob3U= IGNoYXJtcw== IGJpbnM= IGFtYmFzc2Fkb3Jz IFNhdHVyZGF5cw== IGluaGliaXRvcg== IEZyYW5jaA== NjAx Jywn IENvbm9y YXJ0bmV5 IFhwZXJpYQ== Z3JhdmU= YmVlcw== IFByb3Rlc3RhbnRz IHNvYWtpbmc= IE1hbmRhbA== IHBoYXNlZA== IDY2MA== IHNjYW1z IGJ1enppbmc= IEl0YWxpYW5z IExvcmVuem8= IEpB IGhlc2l0YXRlZA== IGNsaWZmcw== IEdPVA== aW5ndWlzaGFibGU= IGtv IGludGVycnVwdGlvbg== Wmlw TGVhcm5pbmc= IHVuZGVyc2NvcmVz IEJsaW5r S3U= NTc5 IEF1dG9i SVJF IHdhdGVyaW5n IHBhc3RyeQ== ODIw IHZpc2lvbmFyeQ== IFRlbXBsYXI= YXdhaXRlZA== IHBpc3Rvbg== IGFudGlk Y3VycmVudGx5 IHBhcmQ= IHdhZ2luZw== IG5vYmlsaXR5 IFl1cw== IGluamVjdGluZw== ZmFpdGg= IFBBU1M= 5bo= IHJldGFrZQ== IFBST0M= IGNhdGhlZHJhbA== YmFzaA== IHdyZXN0bGVycw== IHBhcnRuZXJpbmc= IG5vc2Vz IDM1OA== VHJhbnNmb3Jt YW1lbg== IGJvdXRz IElkZWFs IENvbnN0YW50aW4= IHNlcA== IE1vbmFyY2g= YXR0ZW4= IFBlb3BsZXM= bW9kaWZpZWQ= IG1vcmF0b3JpdW0= IHBlbmNoYW50 IG9mZmVuc2l2ZWx5 IHByb3hpZXM= b2thbmU= IFRhaXdhbmVzZQ== IFBvbw== IEhPTUU= dXNpb25hbA== IHZlcmJz IE9tYW4= dmlzb3J5 IHBlcnN1YXNpb24= IG11bHRpdA== IHNjaXNzb3Jz R2F5 b3dheQ== b3BoeXNpY2Fs bHVz Z251 IGFwb2NhbHlwdGlj IGFic3VyZGl0eQ== IHBsYXlib29r IGF1dG9iaW9ncmFwaHk= SVVN IHNuZWFraW5n IFNpbXVsYXRpb24= cHBz ZWxsZXJ5 UGxhbmV0 IHJpZ2h0ZnVsbHk= IG5pZWNl IE5FQw== IElQTw== IERpc2Nsb3N1cmU= bGVhbm9y b3VzeQ== U1RFUg== IDI4Mg== Q3J1eg== Q2hhbGw= NjQz IFN1cnZpdmU= IEZhdGFs IEFtaWQ= YXBv V2VhcG9ucw== REVO Nzcw IEdyZWVud2FsZA== IGxpbmVu YWxvcw== IHBvbGx1dGFudHM= IFBDSWU= a2F0 IHBhdw== IEtyYWZ0 Q2hlbQ== IFRlcm1pbmF0b3I= IHJlaW5jYXJu IF1b IFNlZWRz IHNpbGhvdWV0dGU= IFN0b3Jlcw== IGdyb29taW5n IERpcmVjdGlvbg== IElzYWJlbA== IEJyaWRnZXM= 8J+R RUVE IE1vcnNp IHZhbHZlcw== IFJhbmtlZA== IFBoYXJtYQ== IE9yZ2FuaXphdGlvbnM= IHBlbmV0cmF0ZWQ= IFJvZGhhbQ== IFByb3Rvc3M= IG92ZXJlc3Q= IGV4YXNwZXI= IFRK IDAwMDAwMA== IHRyaWNrbGU= IGJvdXJib24= V0hP IHdyZXRjaGVk IG1pY3Jvc2NvcGlj IGNoZWNrbGlzdA== IGFkb3JuZWQ= Um95YWw= QWRtaW5pc3Q= IFJldGlyZW1lbnQ= IEhpZ2hlc3Q= V2VhdGhlcg== aWxlZ2U= IGluY3JlbWVudHM= IENvc3BvbnNvcnM= IG1hc3Nl IFNpbm4= cmY= IGhvcmRlcw== YXNzZW1ibHk= NzU0 IE5hdGFzaGE= IFRZUEU= IEdFTkVSQUw= IGFycmFuZ2luZw== IDQwNw== bGF0b3I= IGdsZWFu IGRpc2NyZWRpdGVk IGNsaW5pY2lhbnM= VU5F IGFjaGlldmVz IEVtZXJzb24= Y29tcGxleA== PVs= IHByaW5jaXBhbGx5 IGZyYWls cGlja2Vk IHRoYW5raW5n IHJlY2w= IExBU1Q= IHN1cHByZXNzaW5n aWxpYw== IGFudGlkZXByZXNzYW50 IExpc2Jvbg== IHRob3I= IHNwYQ== IGtpbmdkb21z IFBlYXJjZQ== ZW1v IHBsdW5n IGRpdmVzdA== ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq Ymlz b3NwZWxz YWRy U3Bpcml0 aGFsbGE= UGluaw== ZW5kZXo= IHJlc3VycmVjdGVk ZXNjYXBl IFJvc2Vuc3RlaW4= IGdlb2xvZ2ljYWw= IG5lY2Vzc2l0aWVz IGNhcm5pdg== IEVseXM= IEJhcm5leQ== IDI5Ng== ZGlneQ== U1RPTg== RE9XTg== IG1pbGVzdG9uZXM= IGtlcg== IGRpc21hbnRsaW5n IHJlcHJpbQ== IGNyb3NzaW5ncw== MTk0NQ== IHBhdHJpYXJjaHk= IGJsYXNwaGVteQ== IDM1OQ== bWV0cnk= IE9iZXNpdHk= IERpZmZlcmVuY2Vz YmxvY2tpbmc= 44OV44Kh aWNoaXRh IFNhYmhh cGhhbHQ= IENvbG8= dWFsYQ== ZWZmaWNpZW50cw== IE1lZGluYQ== Y29uc29sZQ== NTU3 IEhhbm5pYmFs IEhhYml0 IEZldmVy IHRoZW5jZQ== IHN5bmFnb2d1ZQ== IGVzc2VudGlhbHM= IHdpbms= IFRyYWRlcg== SURB IFNwb2lsZXI= IEljZWxhbmRpYw== IEhheXdhcmQ= IHBlYWM= IG1hbGljZQ== IGZsYXNoYmFjaw== IHRodw== IGxheW9mZnM= TGlxdWlk IHRyb29wZXI= IGhpbmdl IFJlYWRlcnM= UGhpbGw= IEJhdWVy Q3JlYXRlZA== IGF1ZGl0cw== YWNjb21wYW4= IHVuc3VzcGVjdGluZw== aWVyYQ== NjY2NjY2NjY= IGJyb2No IGFwcHJlaGVuZGVk IE1hbGs= Y2VybmluZw== IENvZGV4 T1ZFUg== TWFyc2g= IERlbmc= IEV4cHJlc3Npb24= IGRpc3Jlc3BlY3RmdWw= IGFzY2VuZGluZw== dGVzdHM= IFBsYWludGlmZg== c3Rlcnk= IEFsaWJhYmE= ZGluYW5k IERlbXBzZXk= QXBwbGljYXRpb25z bW9yYWw= IHRocm91Z2hwdXQ= IHF1YXJyZWw= IG1pbGxz IGhlbW9y IENBU0U= dGVycm9yaXN0 c3RpbQ== aWZlc3R5bGU= cm96ZW4= Q0VQVA== QXJr dWNp bGVjdGlj IGlycml0YXRpbmc= c2hlZXRz QXk= IHJlZGVlbWVk IGhvcm55 IFRlYWNo IFNlYXI= ZGVtb2NyYWN5 NDY1 IFJlc3RvcmU= IHN0YW5kYnk= IFBpcw== aWZmaW4= IHNsZWVweQ== IGV4dHJhdGVy IGNvbXBsaW1lbnRz RnJhbWV3b3Jrcw== IGluc3RhbGxz IGJhbmdpbmc= c3VyZmFjZQ== Zm91bmRsYW5k IG1ldGFwaHlzaWNhbA== IDI4Mw== b3Vscw== ZGV2aWNlcw== QXJncw== IFNhY3JpZmljZQ== IE1jQ29ybQ== ZXNvbg== Q29uc2VydmF0aXZl IE1pa2hhaWw= c2VlaW5n aXNpdmVseQ== IFJvb21z IEdlbmVyaWM= IGVudGh1c2lhc3RpY2FsbHk= IGdyaXBwZWQ= IGNvbWVkaWM= IEVsZWN0cmljaXR5 IGd1ZXJyaWxsYQ== IGRlY29yYXRpb24= IFBlcnNwZWN0aXZl IGNvbnN1bHRhdGlvbnM= IHVuYW1i IHBsYWdpYXI= IG1hZ2ljaWFu IGVyZWN0aW9u IFRvdXJpc20= b3JpZWQ= cm94eQ== MTEwMA== VGFt iOg= zrM= 16o= IFByZWRhdG9ycw== Tml0cm9tZQ== IHRlbGVzY29wZXM= cHJvamVjdHM= IHVucHJvdGVjdGVk IHN0b2NrZWQ= IEVudHJlcHJlbmU= bmV4cGVjdGVk IHdhc3Rld2F0ZXI= VmlsbA== IGludGltYXRlbHk= IGlDbG91ZA== IENvbnN0YWJsZQ== IHNwb29m IG5lZmFyaW91cw== IGZpbnM= IGNlbnNvcg== IE1vZGVz IEVzcGVy YXJib24= IGludGVyc2VjdGlvbnM= IGxhdWRlZA== IHBoeXNp IGdlbmVyb3VzbHk= IFRoZU5pdHJvbWU= IFRoZU5pdHJvbWVGYW4= IGFyaXNlbg== INmI IGdsYW5kcw== IFBhdmlsaW9u IEd1cHRh IHVuaWZvcm1seQ== IHJhbXBz cmlldA== IFdIRU4= IFZhbmVzc2E= IHJvdXRlZA== IGxpbXA= IENQSQ== cHRlcg== aW50dWl0aXZl IHZhcGluZw== IGV4cGVyaW1lbnRlZA== IE9seW1wdXM= IEFtb24= IHNpZ2h0aW5n IGluZmlsdHJhdGU= IEdlbnRsZW1hbg== IHNpZ25pbmdz IE1lb3c= IE5hdmlnYXRpb24= Y2hlY2tz NDMz IGVsYXBzZWQ= IEJ1bGdhcmlhbg== ZXNwaWU= IFNPTQ== ZHVyaW5n IHNwaWxscw== YW5jYQ== IFBseW1vdXRo TUFM IGRvbWVzdGljYWxseQ== IFdhdGVyZ2F0ZQ== IEZBTQ== a2lsbGVk ZWRpdGVk IFlvdXJzZWxm IHN5bmNocm9uaXphdGlvbg== IFByYWN0aWNlcw== U1RFUA== IGdlbm9tZXM= IFFS bm90aWNl IGxvY2F0aW5n emlu IDMyOQ== YWxjb2hvbA== IGtpdHRlbg== Vm8= IHJpbnNl IGdyYXBwbGU= IFNjcmV3 IER1bA== QUlS IGxlYXNpbmc= IENhZsOp IHJvc2Vz IFJlc3BlY3Q= IG1pc2xlYWQ= IHBlcmZlY3RlZA== IG51ZGl0eQ== IG5vbnBhcnRpc2Fu IENvbnN1bXB0aW9u UmVwb3J0aW5n IG51YW5jZXM= IGRlZHVjdGlibGU= IFNob3Rz IDM3Nw== IOac YW5vb2dh QmVuZWY= IEJhbQ== IFNhbXA= aWZpeA== IGdhbHZhbg== IE1lZGFscw== cmFkaXVz IG5vYmxlcw== IGVhdmVz aWdyYXRl S1Q= IEhhcmJvdXI= dWVycw== IHJpc2tlZA== cmVx IG5ldXJvdA== Z2V0dGFibGU= YWluYQ== Um9tbmV5 IHVuZGVycGlu IGxvZnQ= IFN1YmNvbW1pdHRlZQ== IE1vbmdvbA== Yml6 IG1hbmlmZXN0cw== YXNzaXN0ZWQ= IEdhZ2E= IHN5bmVyZ3k= IHJlbGlnaW91c2x5 IFByZWY= IEdlcnJ5 VEFH IENob2k= NDY2 YmVoaW5k IE91 R29sZE1hZ2lrYXJw IGhlbW9ycmg= Uml2ZXI= IHRlbmRvbg== IGluanVyZQ== IEZpb25h IHBhZw== IGFnaXRhdGlvbg== fHx8fA== dXJhbg== IEVTQQ== IGVzdGVlbQ== IGRvZGdpbmc= IDQxMg== cnNz IGNlYXNlcw== ZXhjbHVkaW5n IGludGFrZXM= IGluc2VydHM= IGVtYm9sZA== IE9yYWw= dXB1bmN0dXJl NDEx IFVuaWZpZWQ= IERlbGU= IGZ1cm5hY2U= IENveW90ZXM= IEJyYWNo TGFib3I= IGhhbmRzaGFrZQ== IGJydWlzZXM= R3JhZGU= 6ZeY IEdyYW1teQ== aWxlZW4= U3RhdGVz IFNjYW5kaW5hdmlhbg== IEthcmRhc2g= ODY2 IGVmZm9ydGxlc3NseQ== IERJUkVDVA== IFRIRU4= IE1laQ== ZXJ0YXRpb24= MTk2OA== IGdyb2lu d2l0Y2g= UmVxdWlyZW1lbnRz OTg1 IHJvb2Zz IGVzdGF0ZXM= IEhG IGhhaGE= IGRlbnNlbHk= IE9DVA== IHBsYXN0aWNz IGluY2lkZW50YWxseQ== IFRyYWNrcw== IFRheGVz IGNoYW50ZWQ= IGZvcmNlZnVs IEJpZWJlcg== IEthaG4= S2VudA== IENvdA== bGljdHM= RmVk IGhpZGVvdXM= IFZlcmQ= IFN5bmRpY2F0ZQ== IElsbGVnYWw= SmV0 IERBVg== cmVhc29uYWJsZQ== Y3Jldw== IGZ1bmRhbWVudGFsaXN0 IHRydXRoZnVs IEppbmc= IGxpbA== IGRvd25lZA== IGVuY2hhbnRlZA== IFBvbGljaWVz IE1jTWFzdGVy IEhhcmU= aWRlc2hvdw== IHBhcmFtcw== ZW5jZXJz Z29yaXRobQ== IGFsbG93YW5jZXM= IHR1cmJ1bGVudA== IGNvbXBsZXhpdGllcw== IEtU IDMzNw== IEdlbmV0aWM= RlVO RG91Zw== dGljaw== IGdpZ3M= dW1lbnRoYWw= IHBhdHJpYXJjaGFs IGNhbGM= LC4uLg== IGNvdXQ= IEd1YW4= IHBhdGhvbG9naWNhbA== IFJpdmFscw== IHVuZGVycmF0ZWQ= IGZsdW9yZXNjZW50 IEppdQ== YXJuYWV2 IFF1YW4= IDQyOQ== IOCo TWFyaW8= Q29uc3RydWN0 IENpdGF0aW9u IFJhY2lhbA== IFJTQQ== IEZpZGVs IDM5NQ== UGVyc29uYWxseQ== Q2F1c2U= w7s= cmFkaWNhbA== aW5lbg== IHZlaGVtZW50bHk= IFBhcGE= IGludGVybnNoaXA= IGZsYWtlcw== IFJlY2s= THVja2lseQ== QnJh MjAyMA== cmF2aW5ncw== Uk4= V29uZGVy U2VyaW91c2x5 IHJldXNhYmxl IHBvbGx1dGVk IFBlbmc= bGVpZ2g= aW5kbGU= IGNpcmN1aXRyeQ== IE1hZG9ubmE= IEJBUlQ= UmVzaWRlbnRz YXR0cmlidXRl UGhpbGFkZWxwaGlh Q2x1Yg== IHBsYW5uZXI= IGZyYW50aWNhbGx5 IGZhaXRoZnVsbHk= IFRlcnJpdG9yaWVz IExBVA== IEFuZGVyc2Vu YW51 IFBBUks= IFNvcmE= aWFnZQ== IFBsYXlvZmZz IEdDQw== NDI3 IGFibm9ybQ== IExldmVy IGRpc29iZWRpZW5jZQ== QXN5bmM= IFNoZWE= VmVydA== IHNraXJ0cw== IFNhd3llcg== eHA= IHdvcnNlbmluZw== IHNjYXBlZ28= IEFuZ2xl b3RoYWw= IHRyb3Zl IFN0eQ== IE5ndXllbg== bWFyaW5l aWRlb24= RGVwdGhz QmxvZw== IElsbHVtaW5hdGk= IHRyYWN0cw== IG9yZ2FuaXNl IG9zdHI= RnM= IGxldmVyYWdpbmc= IERhcmVkZXZpbA== YXNhcg== IGxhbmc= IGV4dGVybWlu dXJzaW9ucw== IFJvbW8= 44Kk44OI IGNvbnRlbmRlZA== IGVuY291bnRlcmluZw== IFRhYmxldA== IEFsdGVybmF0ZQ== c2tpbGw= IHN3ZWV0cw== IGNvaGVzaXZl Y2FwYWNpdHk= IHJlcHVk IGxpemFyZA== cm9v IHBpbGdyaW1z IFJ1ZmY= IEluc3RydW1lbnQ= IExvZ28= dWl0b3Vz RUg= IHNhbGVzbWFu IGFua2xlcw== TGVk IFBhdHR5 dWRvcw== T3duZXI= IGRpc2NyZXBhbmNpZXM= a2o= TVU= IHVuY29uZGl0aW9uYWw= RHJhZ29uTWFnYXppbmU= aWFyZA== T2Fr IENvbnZlcnNhdGlvbg== YmVlcg== IE9zYWth RGVsdGE= dXNreQ== IHNlY3JldGlvbg== IHBsYXph IG1pbmc= IGRlcGxldGlvbg== IE1vdXM= IElUUw== IEhpbWFs IEZsZW1pbmc= IGN5dG9r IEhpY2s= IGJhdHRlcnM= IEludGVsbGVjdHVhbA== Njc1 w6ly SVNJT04= IFF1ZW50aW4= IENoYXB0ZXJz aWhhZGk= IGNvYXN0ZXI= V0FZUw== IExpemFyZA== IFlvcg== YW5kZXJpbmc= U2tpbg== aGF1c3Q= YWJieQ== IHBvcnRyYXlpbmc= IHdpZWxkZWQ= ZGFzaA== IHByb3BvbmVudA== IHJpcHBsZQ== IGdyYXBoZW5l IGZseWVy IHJlY3VycmVudA== IGRldmlscw== IHdhdGVyZmFsbA== 5piv Z29v VGV4dENvbG9y IHRhbXBlcmluZw== SVZFUw== VFJVTVA= IEFiZWw= IFNBTA== IEhlbmRyaWNrcw== IEx1Y2l1cw== Ym90cw== IDQwOTY= SVNUT1JZ R3Vlc3Q= IE5Y aW5hbnQ= QmVueg== IExvYWRlZA== IENsZXZlcg== dHJlYXRtZW50 IHRhdmVybg== IDMzOQ== IFROVA== aWZpY2FudGx5 VGVtcGVyYXR1cmU= RmVs IHVuZGVyd29ybGQ= IEp1ZGdlcw== IDwr IHN0dW1w IG9jY3VwYW5jeQ== IGFiZXI= IEZpbmRlcg== KSIs IE51bmVz cmVzZXQ= aW5ldA== ZWN0b215 IHdlbGxuZXNz IFBlYg== cXVhcnRlcmVk YW5kYW4= IG5lZ2F0aXZlcw== IFRoaWVs IENsaXA= IExURA== IGJsaWdodA== IHJlcGVydG9pcmU= S3lsZQ== IHF1ZXI= IENlcw== IGhhcGw= OTg5 IFRoYW1lcw== aXNjb3BhbA== RGVzaw== aXZhcmlhdGU= IEV4Y2VsbGVuY2U= Zm91bmRhdGlvbg== IOKH WGk= IG15c3RlcmlvdXNseQ== ZXN0eWxlcw== IHBlcmlzaA== IEVuZ2Vscw== IERFQUQ= MDkw fX19 IFVucmVhbA== IHJlc3RsZXNz SURFUw== b3J0aG9kb3g= IEludGVybWVkaWF0ZQ== IGRpbm5lcnM= IFRyb3V0 IFNleW0= IEhhbGxz b2dnZWQ= IHRyYWdlZGllcw== IGRpZG50 Njc2 IGFpbG1lbnRz IG9ic2VydmFibGU= IFZpZGU= YWRhcHQ= IER1c2s= IHByb2Zlc3Npb25hbGlzbQ== IFByZXNjb3R0 IEluZGllcw== cG94 IE1laHJhbg== V2lkZQ== IGVuZGVtaWM= IFBhcmFu QmlyZA== IHBlZGFscw== IElV IEFkYW1hbnQ= IEh1cnQ= IGNvcnJlbGF0ZXM= dXJkZW4= IHNwb25zb3Jpbmc= Y2xpbWF0ZQ== IFVuaXZlcnNpdGllcw== IEtub3Q= ZW5uZXM= IERhbWlhbg== IEF4ZWw= U3BvcnQ= IGJhcmI= IFNubw== c2hvd24= c3RlZW4= dWRlbmNl IG5vbnZpb2xlbnQ= IGhvbW9waG9iaWE= IGJpb21hc3M= IERldGFpbA== IHNyZk4= IFR1bmU= YWNjb21wYW5pZWQ= SUVOQ0U= QWxiZXJ0 IE1vbmdv eng= IENlcmJlcnVz b3JiaXQ= Y2Vucw== IHNsYXk= U0hBUkU= SFk= IGJyYXds IFByb2Jl IG5vbmV4aXN0ZW50 IENsYXJlbmNl IEJsYWNrYnVybg== IHBvcnRhbHM= IFJpdGE= IFJlbWFpbg== IExldmFudA== IHRyaWNrZWQ= IEZlcnJ5 YXZlcmluZw== IFN0cmF3YmVycnk= IEFuc3dlcnM= IGhvcnJlbmRvdXM= IEFtYW4= U3VwcGxlbWVudA== IFRvYWQ= IHBlZWxlZA== IG1hbm9ldXY= IFV6YmVr bW9uZHM= IEhlY3Rvcg== IDQwMg== cGVlcw== Zml4ZXM= IGRq IHJlc3VtZXM= IGFjY291bnRhbnQ= IGFkdmVyc2l0eQ== IGhhbXBlcmVk IExhcnNvbg== IGRvcGluZw== cGFydHM= SHVy IGJlYXJkZWQ= IHly IFBsdWdpbg== 5aWz IC8qKg== cm9sbGV5 IHdhdGVyc2hlZA== IFN1Ym1pc3Npb24= aWZsb3dlcg== QVND IGNob2ly IHNjdWxwdHVyZXM= bUE= aW5jcmVhc2luZw== YWlp IHNuZWFrZXJz IGNvbmZyb250cw== IEVsZXBoYW50 IEVsaXhpcg== IHJlY2Fs IFRUTA== d2lkZ2V0 IFdheA== IEdyYXlzb24= IGhhaXJzdA== IGh1bWlsaWF0ZWQ= IFdBUk4= YXBwaW5lc3M= IFRUQw== RnVlbA== IHBvbGlv IGNvbXBsZXhlcw== IGJhYmU= IFhJVg== UEY= KS5b UGFydHM= IDQzNQ== TWVn IFlhcmRz IEFMUA== IHllbGxz IHByaW5jZXM= IGJ1bGxpZXM= IENhcGl0YWxpc20= ZXhlbXB0 RkFR IFNwb25nZQ== IEFsYQ== IHBsZWFzYW50bHk= IGJ1Zg== IGRlbm90ZQ== IHVucHVibGlzaGVk IGtuZWVsaW5n YXNjYQ== IGxhcHNl YWxpZW4= OTk0 IHJlZmVyZWVz IExhd3llcnM= U2FudGE= IHB1enpsaW5n IFByb21ldGhldXM= IFBoYXJhb2g= IERlbGF5 IGZhY2lsaXRhdGVz IENFUw== IGpld2Vscw== IGJvb2tsZXQ= b25kaW5n IHBvbGFyaXphdGlvbg== IE1vcmFu IFNhbGFk IFNPUw== IEFkdmljZQ== UEhPVE9T SUNBTg== aWF0dXJlcw== ZXhwcmVzcw== IFdvbmRlcmxhbmQ= IENPREU= IENMQVNT OTc1 IGdyZXA= IERpZXNlbA== IEdsYWM= IT8i IHJt b2luZQ== ZGlzY3JpbWluYXRpb24= IE51cnNl bWFsbG93 IHZvcnRleA== IENvbnNvcnRpdW0= IGxhcmdlRG93bmxvYWQ= c3RyYWlnaHQ= YXVnaGxpbg== R3JhZA== IHB1YmxpY2l6ZWQ= IFdhdmVz IFJlZGQ= IGZlc3Rpdml0aWVz IE1hbmU= YXJvdg== IGZsZWV0aW5n IERydW5r dWdlbg== Q2VsZQ== IGNocm9tb3NvbWVz IERPVA== LSstKy0rLSs= IGJ1c2llc3Q= IEJlYXZlcg== U3lyaWFu IEt5cg== a2Fz IENyb3NzUmVm MTk1MA== NzYwMQ== IHJlcGVhbGluZw== IFdpbm5lcnM= IE1hY3Jv IERPRA== YmxhbmNl U29ydA== NjQx IG1ldHJl IERpcms= IGdvZ2dsZXM= IGRyYXdiYWNrcw== IGNvbXBsYWluYW50 IGF1dGhvcml6aW5n IGFudGl0cnVzdA== b3BlcmF0ZWQ= IG1haA== IGV4YWdnZXJhdGlvbg== QW1hemluZw== IFNlcmFwaA== IGhhemU= d293 IGV4dGluZ3Vpc2hlZA== IGNhbnlvbg== IEJvc2g= IHZlbnRz IHNjcmFwZQ== Q29ycmVjdA== NDI2 IGF2Zw== RGVtYW5k IOKIvA== IG1pY3JvYmlvdGE= In1dLCI= IFN0ZXY= Qmlv IFBsYW5lcw== IHN1Z2dlc3RpdmU= IGRlY2lwaGVy IFJlZnVnZWU= IEtlanJpd2Fs IEdyZWVucGVhY2U= IGRlY2xhc3M= IFNvdW5kZXJz IHRobw== IGRlY3J5cHQ= IGJydXNoaW5n IEphbmVpcm8= aXBvcA== U2k= ODc3 IEdlb2ZmcmV5 IGNwdQ== IEhhemVs IHZpZXdwb2ludHM= IGNyaXNweQ== IE5vdGlmaWNhdGlvbg== IHNvbGRlcg== IE1vZGVzdA== IEhlbWlzcGhlcmU= IGNhc3NldHRl aW5jbHVkZXM= IGlkZW50aWZpZXJz IENBTEw= aW5jZW50 VG9kZA== IFN3ZWVw IDMzNA== Ym9zcw== IHNtaXI= Z2lueA== IHRvd25zaGlw IGdyaWV2aW5n IE1vc3F1ZQ== TmV0ZmxpeA== QVNFRA== IE1pbGxlbm5pYWxz b2NvbQ== MTk2Nw== IGJvbGRseQ== c2xlZXA= IGVzY2hl YXJpanVhbmE= IHN3aXJs IFBlbmFs IG5lZ2xpZ2VudA== IFN0ZXBoZW5zb24= S0VS IFpvcm8= cmlzaXM= IGxvY2FsaXphdGlvbg== IFNleW1vdXI= IEFuZ2xpYw== cmVkaXRhdGlvbg== cHJvdGVjdGlvbg== IFBhaWdl IG9taXQ= IFJvdXNzZQ== IFR1Yg== IGludml0YXRpb25z dHR5 IG1vc3M= cGh5c2ljYWw= Q3JlZGl0cw== IGFuYXJjaHk= IGNoaWxkY2FyZQ== IGx1bGw= IE1law== IExhbmd1YWdlcw== bGF0ZXN0 IFNhbmZvcmQ= IHVzYWJpbGl0eQ== IGRpZmZ1c2U= IERBVEE= IHNwcml0ZXM= IFZlZ2V0YQ== IFByb21vdGlvbg== 44O844Kv cmljdGluZw== emVl VHVya2lzaA== IFREcw== cHJvdmVu NTcx IHNtdWdnbGVycw== NzA3MTA= IHJlZm9ybWVk IExvaXM= IHVuZmw= IFdJVEhPVVQ= IFJldHVybmluZw== YW5uaWU= IFRvbWFz RnJhbmM= IFByb2ZpdA== IFNFUlY= IFJ1bWJsZQ== aWt1bWFu ZXNhbg== IHRlc3RlcnM= IGdhZGdldA== IGJyYWNlbGV0 IEZTQQ== Y29tcG9uZW50 IHBhcmFtZWRpY3M= IGphbg== IFJlbWVt IFNraW5uZXI= IGxvdg== IFF1YWtl cm9tYQ== IGZsYXNr UHJpbmM= IG92ZXJwb3dlcg== IGxvZGdpbmc= IEtLSw== cmV0dGU= IGFic29yYnM= d3JvdGU= ICwi S2luZ3M= IEhhaWw= IEZhbGxpbmc= eHRhcA== IEhlbGVuYQ== aXJlbnM= TGFycnk= IHBhbXBobGV0 IENQUg== R3Jv IEhpcm9zaGltYQ== IGhvbGlzdGlj Ii5b IGRldGFjaG1lbnQ= IGFzcGlyZQ== IGNvbXBsaWNpdA== IEdyZWVud29vZA== IHJlc3Bhd24= IFN0dXBpZA== IEZpbmlzaGVk ZmFs YmFzcw== IGFiaG9y IG1vY2tlcnk= IEZlYXN0 VklERU8= IGNvbnNlYw== IEh1bmdyeQ== UHVsbA== IEh1c3Q= aXRhbmNl P+OAjQ== KS0t IFBhcmFsbGVs Y29udg== NDY5 aGFhcg== d2FudA== UGFwZXI= bWlucw== IFRvcm8= IFRSVU1Q IFJhaQ== RFc= IFdpY2tlZA== IExlcA== IGZ1bmt5 IGRldHJpbWVudA== aW9zaXM= YWNoZXY= IGRlZ3JhZGU= aW1pbGF0aW9u IHJldGFyZA== IGZyYWdtZW50YXRpb24= IGNvd2JveQ== IFlQRw== IEhBTA== UGFyZW50cw== IFNpZWc= IFN0cmF1c3M= IFJ1YmJlcg== 15A= RnJhZw== IHB0 IG9wdGlvbmFsbHk= IFpJUA== IFRyYW5zY3JpcHQ= IER3ZWxs ODgy TWVyYw== IE1PVA== 44Ov44Oz IGh1bnRz IGV4ZWN1dGVz SW5jbHVkZXM= IGFjaWRpYw== IFJlc3BvbnNpYmlsaXR5 IER1bWI= d2Vp QW5kZXJzb24= IEphc3Blcg== aWdodG9u YWJzb2x1dGVseQ== QWR1bHQ= IHBsdW5kZXI= TW9ybmluZw== IFRvdXJz IERhbmU= zro= IFRFU1Q= IEdpbmE= IGNhbmluZQ== YXdhbg== IHNvY2lhbGlzdHM= IFNvZGE= IGltcGV0dXM= IFN1cHBsZW1lbnRhcnk= b2xpYXRo IEtpbm5pa3VtYW4= bWl0dGVkbHk= c2Vjb25kcw== IG9yZ2FuaXNlcnM= IGRvY3VtZW50YXJpZXM= VmFyaWFibGU= R1JFRU4= IHJlc29ydHM= IGJyYWdnaW5n IDM2OA== QXJ0aXN0 d2s= YmxlcnM= VW5jb21tb24= IFJldHJpZXZlZA== IGhlY3RhcmVz IHRveGlu cmFuaw== IGZhaXRocw== IEdyYXBoaWM= IHZlYw== IExJQQ== QWZyaWNhbg== IGFyZGVudA== ZW5kaWFyeQ== TGFrZQ== IERPUw== Y2llbnRpb3Vz IE9rYXdhcnU= IEFsbHk= IFRpbWVsaW5l RGFzaA== IElj Y29udGludWU= IHRpZHk= IGluc3RpbmN0aXZlbHk= IFBvc3NpYmx5 IE91dGRvb3I= IFdvdWxkbg== IGxpY2g= IEJyYXk= IEFY IMOJ ICsj XCc= RGlyZWN0b3J5 YWJpZGluZw== IGZlcmFs aWNhdGl2ZQ== YnV0dA== IHBlcnZlcnNl U2FsdA== IHdhcnBlZA== IG5pbmV0ZWVu IGNhYmluZXRz IHNyZkF0dGFjaA== IFNsb2Fu IHBvd2VyaW5n cmVnYXRpb24= RmxpZ2h0 c2V2ZXJl IHN0cmVu IGNvZw== YXBhY2hl IOKd IGNhZmV0ZXJpYQ== cGFjZXM= IEdyaW1vaXJl dXRvbml1bQ== IHJhaW5pbmc= IGNpcmNsaW5n IGxpbmViYWNrZXJz Y3JlZGl0 IHJlcGF0cmk= IENhbWRlbg== bGljZW5zZQ== IGx5cmlj IGRlc2NyaXB0b3I= IHZhbGxleXM= IHJlcQ== IGJhY2tzdGFnZQ== IFByb2hpYml0aW9u IEtldA== T3BlbmluZw== U3lt 5pa5 IHNlcnZpbmdz IG92ZXJzZWVu IGFzdGVyb2lkcw== IE1vZHM= IFNwcmluZ2Vy IENvbnRhaW5lcg== 6Ls= IE1lbnM= IG11bHRpbQ== IGZpcmVmaWdodGVy cGVj IGNobG9yaW5l 0Lw= ZW5kaQ== IHNwYXJpbmc= IHBvbHlnYW15 IFJO IFBlbGw= IHRpZ2Vycw== IGZsYXNoeQ== IE1hZGFtZQ== U3dvcmQ= IHByZWZyb250YWw= IHByZXJlcXVpc2l0ZQ== dWNh IHdpZmk= IG1pc2NvbmNlcHRpb24= IGhhcnNobHk= IFN0cmVhbWluZw== b3RvbQ== IEdpdWxpYW5p Zm9vdGVk IHR1YmluZw== aW5kaXZpZHVhbA== emVr bnVjbGVhcg== bW9s IHJpZ2h0ZnVs NDkz IHNwZWNpYWxpemF0aW9u IHBhc3Npb25hdGVseQ== IFZlbG9jaXR5 IEF2YWlsYWJpbGl0eQ== VGVubg== IGxhdGNo IFNvbWVib2R5 IGhlbGl1bQ== Y2xhdw== IGRpcHBpbmc= WFhY IGludGVycGVyc29uYWw= NzEw IHN1YnRlcg== IGJpb2xvZ2lzdHM= IExpZ2h0aW5n IG9wdGlj IGRlbmlt ZW5kb24= IENvcm0= IDM0MQ== IENvdXA= IGZlYXJsZXNz IGFsb3Q= IENsaWZmb3Jk IFJ1bnRpbWU= IFByb3Zpc2lvbg== dXBkYXRlZA== bGVuZWNr IG5ldXJvbg== IGdyYWRpbmc= IEN0 c2VxdWVuY2U= aW5pYQ== Y29uY2VwdA== IHJvYXJpbmc= cml2YWw= IENhdWNhc2lhbg== IG1vbm9n a2V5ZXM= IGFwcGVsbGF0ZQ== IGxpYWlzb24= RVN0cmVhbUZyYW1l IFBsdW0= IS4= IHNwaGVyaWNhbA== IHBlcmlzaGVk IGJsb3Q= IGJlbmNoZXM= IDQxMQ== IHBpb25lZXJlZA== IGh1cmxlZA== SmVubmlmZXI= IFlvc2VtaXRl Q2hhaXI= IHJlZWZz IGVsZWN0b3I= IEFudGhlbQ== NjUy IHVuaW5zdGFsbA== IGltcGVkZQ== IGJsaW5raW5n IGdvdG8= RGVjcmU= QXJlbg== IHN0YWJpbGl6YXRpb24= IERpc2FibGVk IFlhbnVrb3Z5Y2g= IG91dGxhd2Vk IFZlbnR1cmE= dGVuZXNz IHBsYW50YXRpb24= IHlhY2h0 IEh1YXdlaQ== IHNvbHZlbnQ= IGdyYWNpb3Vz IGN1cmlvdXNseQ== IGNhcGFjaXRvcg== IGN4 IFJlZmxleA== UGh5cw== IENm cHRpbg== Y29uc2VydmF0aXZl IGludm9jYXRpb24= Y291cg== Rk4= IE5ld2x5 SG91cg== QXNpYW4= IExlYWRpbmc= IEFlcm9zcGFjZQ== QW5uZQ== IHByZW5hdGFs IGRldGVyaW9yYXRpbmc= SENS IE5vcm1hbmR5 b2xpbmk= IEFtYnJv OTEw IHNldGJhY2tz IFRSRQ== IHNpZw== IFNjb3VyZ2U= NTk3 Nzk4 R2FtZXBsYXk= IG1zZWM= TVg= IHByaWNleQ== IExMUA== YWtlcnU= IG92ZXJhcmNoaW5n IEJhbGU= IHdvcmxkbHk= Q2xhcms= IHNjZW5pYw== IGRpc2xpa2Vk IENvbnRyb2xsZWQ= VGlja2V0cw== IEVX YWJpZXM= IFBsZW50eQ== Tm9uZXRoZWxlc3M= IGFydGlzYW4= VHJhbnNmZXI= IEZhbW91cw== IGluZmllbGQ= YmxleQ== IHVucmVzb2x2ZWQ= IE1MQQ== 44KC Q29ycmVjdGlvbg== IGRlbW9jcmF0 IE1vcmVubw== cm9jYWw= aWxpbmdz IHNhaWxvcg== IHJpZmU= aHVuZw== IHRyb3Blcw== IHNuYXRjaGVk IExJTg== IEJpYg== RVNB IFByZXY= IENhbWVs cnVudGltZQ== IG9ibm94aW91cw== NDM3 IHN1bW1lcnM= IHVuZXhwbGFpbmVk IFdhbHRlcnM= Y2FsaWJlcg== IGd1bGw= IEVuZHVyYW5jZQ== 5L2c IDM0Nw== SXJpc2g= IGFlcm9iaWM= IGNyYW1wZWQ= IEhvbm9sdWx1 4Kk= dXNlcmM= ZWNhc3Q= QUNZ IFF1ZXJ5 44K544OI QmV0YQ== IHN1c2NlcHRpYmlsaXR5 IFNoaXY= IExpbWJhdWdo IMOW IE5YVA== IE11c3M= IEJyaXRvbnM= RVNDTw== RUdJTg== ICUl IHNlY2Vzc2lvbg== IFBhdHJvbg== IEx1YQ== bmFpcmVz IEpQTW9yZ2Fu dXNi b2N5dGU= IGNvdW5jaWxsb3Jz IExpYW5n ZmFybQ== IG5lcnZvdXNseQ== IGF0dHJhY3RpdmVuZXNz IEtvdg== anVtcA== UGxvdA== IHN0YWlucw== IFN0YXR1ZQ== IEFwb3N0bGVz aGV0ZXI= IFNVUFBPUlQ= IG92ZXJ3aGVsbQ== WUVT IDI5MQ== ZGVuc2l0eQ== IHRyYXBwaW5n TWl0 IGZpZGU= IFBhbWVsYQ== YXRsYW50aWM= RGFtbg== IHB0cw== T1BB IHNlcnZpY2luZw== IG92ZXJmbG93aW5n dWxv IEVyaXQ= dGlja2V0 bGlnaHRpbmc= IEhtbQ== 44O844Or aW1vdG8= IGNodWNrbGU= NDIz 44GV c2hhcGU= IHF1ZXVlcw== IGFuY2hvcnM= 44K844Km44K5 RmVy IGF3b2tl IDY2Ng== aGFuZHM= IGRpdmVyZ2VuY2U= IDUwNQ== VGlwcw== IGRlcG90 IHNrZXc= IERlbGl2ZXI= b3BvdA== IGRpdnVs IEVC dW5zaWduZWQ= IFVuaQ== WGJveA== IGZvcmtz IDcwMg== 5a8= IHByb21vdGVycw== IFZhcG9y IGxldmllZA== c2xvdA== IHBpZ21lbnQ= IGN5bGluZGVycw== Q1JF IHNuYXRjaA== IHBlcnBldHVhbGx5 IGxpY2tpbmc= IEZlZXQ= IEtyYWtlbg== IEhvbGRlbg== IENMU0lE bXI= IHByb2plY3Rvcg== IGRlbm90ZXM= IGNoYXBlbA== IFRvcnJlbnQ= Ymxlcg== Um91dGU= IERlZmVuZGFudA== IFB1Ymxpc2hlcnM= IE1hbGVz IElubm92 IEFnaWxpdHk= cml0ZXI= dHltb2xvZ3k= c3RvcmVz TGluZA== IGZvbGx5 IFp1cmljaA== Qmxl IG51cnR1cmU= IGNvYXN0bGluZQ== dWNoaW4= RG9taW4= IGZyaXZvbA== IENvbnNvbGlk cmVzdWx0cw== TUo= IHBoeWxvZ2Vu IGhhdWxlZA== IFdpbGV5 IEplc3NpZQ== IFByZXBhcmU= IEVwcw== IHRyZWFzdXJlcg== SUFT IGNvbG9uaXN0cw== IGludW5k IFdXRg== IENvbnZlcnRlZA== NjAwMA== b3V0c2lkZQ== IEFwcGVhcmFuY2U= IFJlbGlj IE1pc3Rlcg== c2F3 IHJlc3VsdGFudA== IGFkamVjdGl2ZQ== IExhdXJlbA== IEhpbmRp YmRh UGVhY2U= IHJlYmlydGg= IG1lbWJyYW5lcw== IGZvcndhcmRpbmc= IGNvbGxpZGVk IENhcm9seW4= S2Fuc2Fz NTk5 IFNvbGlkR29sZE1hZ2lrYXJw QmVjaw== IHN0cmVzc2luZw== IEdvbw== IENvb3BlcmF0aXZl IGZz IEFyY2hpZQ== TGl0ZXI= IEtsb3Bw SmVycnk= IGZvb3R3ZWFy V2FycmVu IHNjcmVl aGFyZQ== VW5kZXJzdGFuZGluZw== UGVk IGFudGhvbG9neQ== IEFubm91bmNl TWVnYQ== IGZsdWVudA== IGJvbmRhZ2U= IERpc2NvdW50 aWxpYWw= Q2FydA== IE5pZ2h0bWFyZXM= U2hhbQ== IEJvbGw= dXNzaWU= SHR0cA== QXRsYW50YQ== IHVucmVjb2du IEJpZA== IHVuZGVyZ3JhZA== IGZvcmdpdmluZw== IEdsb3Zlcg== QUFBQUFBQUE= NDQ1 Vkc= cGFpbw== a2lsbGVycw== IHJlc3BvbnNpYmx5 IG1vYmlsaXpl IGVmZmVjdGVk IEx1bWlu IGthbGU= IGluZnJpbmdpbmc= YW5ub3VuY2Vk IGZpdHQ= YmF0Y2g= IFRhY2tsZQ== IExpbWU= IEFQUA== dWtlbWlh IHJ1Ynk= IGV4b25lcg== IENhc3VhbA== MDcw IHBlbHZpYw== IGF1dG9tYXRl IEtlYXI= IENvYXN0YWw= IGNyZWVk IGJvcmVkb20= IFN0dW4= cmlvdHQ= go4= IHJlZ2VuZXJhdGU= IGNvbWVkaWFucw== IE9QRVI= U3BvbnM= aWRpdW0= b25pcw== TG9jYXRlZA== MDU3 IHN1c3BlbnNl IERhdGluZw== Q2Fzcw== IG5lb2NvbnM= IFNoaW56bw== IGF3b2tlbg== Y2hyaXN0 IE1lc3NhZ2Vz YXR0bGVk IFNwcmF5 IFNwaWNl Q1c= IHNoaWVsZGluZw== IEdhdWw= QW1pZA== IHBhcmFtaWxpdGFyeQ== IG11bHRpZg== IFRhbm5lcg== aWxr IGdvZGRhbW4= Z2VtZW50cw== IGJlZnJpZW5k bW9iaQ== IDM4OA== Zm9sZGVy YWNjYQ== IGluc2lu Z2Fw TmV2 ZmlmdGg= IHBzeWNoaWF0cnk= YmFua3M= VEhJUw== IGhhcmI= YWNxdQ== IGZhY2FkZQ== IFBvd2VyUG9pbnQ= ODAz IGJsdWZm U2hhcmVz IGZhdm9yaW5n RWxpemFiZXRo w43DjQ== IHJhbmdlcg== Nzcy IEFyY2hl aGFr IEdlbmV0aWNz IEZFTUE= IGV2b2x2ZXM= IGVzdGU= IFBldHM= IE3DqQ== IEludGVyZXN0aW5n IENhbnRlcmJ1cnk= Y2hhcHRlcg== IFN0YXJmbGVldA== U3BhbmlzaA== IGRyYXdiYWNr IE5vcndpY2g= OTcw bm9ydGg= YWdhbmRh IHRyYW5zZm9ybWF0aXZl cmFtaWRz YmlvbG9neQ== YWRheQ== IHByb3BhZ2F0aW9u IEdhbW1h IERlbmlzZQ== IENhbGN1bGF0b3I= ZW50aW1lcw== IEJldHQ= IGFwcGVuZGl4 IEhERA== QUtJTkc= IHN0aWdtYXQ= IGhvbHN0ZXI= IG9yZGluYXJpbHk= Q2hhbmNl IENvbnRyYXJ5 IGFkaGVzaXZl IGdhdGhlcnM= NjEy cmVhdQ== b255bXM= ZXdheXM= IGluZHVjZXM= IGludGVyY2hhbmdlYWJsZQ== c2Vt V2hpdA== IHRyYW5jZQ== IGluY29ycG9yYXRpb24= IEV4dHJhcw== RmluYW5jaWFs IGF3a3dhcmRseQ== IFN0dXJnZW9u IEhZ Tm9ybWFsbHk= IEVuZGluZw== IEFzc2lzdA== ZW5jcnlwdGVk IHN1Ymp1Zw== IG5vcw== IGZhbmF0aWM= Q3Vi Q1U= PyIu IGlycmV2ZXJzaWJsZQ== 5YI= MDMx IEhBUg== c3ByZWFk dWxpYQ== PSQ= U2NvcGU= TG90cw== IGxpZmVzdHlsZXM= b2xvbg== IGZlZHM= IGNvbmdyYXR1bGF0ZQ== d2Via2l0 IGluZGlzdGluZ3Vpc2hhYmxl IFN3aW5n IGNvbW1hbmRtZW50cw== cXVpbGE= YWJlbGxh bWV0aHls YW5uYWJpbg== IG92ZXJl IGxvYnN0ZXI= IFFVRVNU IENPTlRJTg== YmVybmF0b3JpYWw= Ojo6Ojo6Ojo= IFRyYXZl IFNhbW9h QU5J NzUy 0LQ= dXNlcmNvbnRlbnQ= IE1vZGVyYXRl eWVhaA== IEtpdHQ= IHdlZQ== IHN0dWZmaW5n IEludGVydmVudGlvbg== IERpZ24= IHdhcmVob3VzZXM= IEZpamk= IHBlbGxldHM= IHRha2Vhd2F5 IFRBQkxF IENsYXNzaWNhbA== Y29sbGVjdGlvbg== IGxhbmRmYWxs IE11c2NsZQ== IHNldHRsZXM= IEFEVg== IDM0NA== TGF1cmE= IGZhcmVk IFBhcnRpYWw= NDM2 b3NzaWJpbGl0eQ== IERhbHk= IFRhcmFudA== IEZ1amk= YW1s Y2VuY2U= NTUx IFByb2NlZHVyZXM= IE9DRA== IFVE dGlu UVVJ YWNobw== NDM4 IGdsaXRjaGVz IGVuY2hhbnRtZW50 IGNhbGN1bGF0ZXM= SVJP IEh1YQ== YWx5c2Vz IExpZnQ= dW1v IGxlYXB0 IGh5cG90aGVzaXplZA== IEd1c3Rhdg== aXRhbnM= VkVSU0lPTg== 5qA= Um9nZXI= IHJhbmQ= IEFkYXB0ZXI= IDMzMQ== IFBldGl0aW9u a2llcw== TWFycw== IHVuZGVyY3V0 emVlcw== IEx5b25z IERIQ1A= TWlzc2luZw== IHJldGlyZWVz IGluc2lkaW91cw== ZWxp Pik= LuOAjQ== IGZpbmFsaXN0cw== IEF1cmU= IGFjY3VzZXI= IHdhc3Rlcw== IFlz IExvcmk= IGNvbnN0aXR1ZW5jaWVz IHN1cHBlcg== IG1heWhlbQ== b3Jhbmdl IG1pc3BsYWNlZA== IG1hbmFnZXJpYWw= IGV4Y2U= IENMSQ== IHByaW1hbA== IExlbnQ= Q3J5c3RhbA== aG92ZXI= IE5UUw== ZW5kdW0= IGR3 IEFsYw== bm9zdGlj IHByZXNlcnZlcw== IFRzYXJuYWV2 IHRyaXBsZWQ= cmVsYXRpdmU= QXJjYWRl a2lsbGluZw== IFdFRUs= IEhhbm5h RHVzdA== Q29tcGxldGVk gas= IGFwcHJvdmVz IFN1cmY= IEx1dGhlcmFu dmVuYW50cw== IHJvYmJlcmllcw== d2VpZ2h0cw== c29mdHdhcmU= YXRhbmE= dWdhbA== IGdyYXZ5 IENhbmNl T0xPR1k= bHlhaw== VG9uaWdodA== IHVudmVpbA== IDE5MDQ= IE1pbmlvbg== ZW50aW91cw== c3RpY2U= cGFja2FnZXM= IEdFQVI= IGdvbA== IEh1dGNoaW5zb24= IFByb2Zlc3Npb24= IEdVTg== IERpZmZlcmVuY2U= IFRzdWt1eW9taQ== IExlc2JpYW4= Njcw IGZ1Z2l0aXZl IFBsYW5ldGFyeQ== LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0= IGFjY3J1ZWQ= IGNoaWNrcw== IHN0b3Bw IGJsb2NrZXJz Q29k IGNvbW1lbnRlcnM= IFNvbWV3aGVyZQ== IFBob3RvZ3JhcGhlcg== dGhlbWU= IG1heW9yYWw= d3U= IGFudGVubmFz IHJldmFtcGVk IFN1YmplY3Rz aXTDqQ== aW11cmE= IGVudHJhbmNlcw== bGl0ZXJhbGx5 IHRlbmV0cw== IE9NRw== IE1QSA== IERvbmtleQ== IE9mZmVuc2U= ICIr U25hcA== IEFGQg== IGFuaW1hdGU= IFNvZA== SGlzcGFuaWM= IGluY29uc2lzdGVuY3k= RGI= Rlk= RXhwb3J0 IGFwZQ== IHBlYXJs aWJlbA== IFBBQ3M= IHtc IGFjdHU= IEhTQkM= Y2FtcHVz IHBheW9mZg== IGRlaXRpZXM= IE5hdG8= b3VwbGU= IGNlbnNvcmVk IENsb2p1cmU= IGNvbmZvdW5kaW5n ZW5p IHJlY2tvbg== b3BoZQ== IHNwb3R0aW5n IHNpZ25pZmllcw== IHByb3BlbA== IGZlc3RpdmU= U3VnZ2VzdA== IHBsZWRnaW5n IEJlcm1hbg== IHJlYmVsbGlvdXM= IG92ZXJzaGFkb3dlZA== IGluZmlsdHJhdGVk am9icw== Njcy IHNjYWxhYmxl IGRvbWluaW9u IE5ld2ZvdW5kbGFuZA== IE1lYWRvdw== IHBhcnRpdGlvbnM= QU1J IHN1cHBsZW1lbnRhcnk= c3RydW1lbnQ= IGhhaXJ5 IHBlcnBldHVhdGU= IG51dHNoZWxs IFBvdGF0bw== IEhvYmJpdA== IGN1cnNlcw== RmxvYXQ= IHF1aWV0ZXI= IGZ1ZWxpbmc= IGNhcHN1bGVz IEx1c3Q= IEhhdW50ZWQ= RXhlY3V0aXZl IGNoaWxkYmlydGg= R3Jl IHJhZGlhbnQ= 5Y4= IG1hbGxz IGluZXB0 IFdhcnJhbnR5 IHNwZWN0YXRvcg== RWg= dGhlbnM= IGN1bG1pbmF0aW5n 5qk= YXJ5YQ== 44Ku aWxpdGFyaWFu IE9SSUc= IFNwZW5kaW5n cHRpdmVz IFNpcmVu IFJlY29yZGluZw== YXluZQ== IHZpbQ== IHNwcmFuZw== VGFuZw== IE1GVA== bW9ybmluZw== IFdlZWQ= bXBlZw== Y2Vzc2lvbg== IENodW5n NzMw d2FybmluZw== NTYy aGFuZGVkbHk= UG9vcg== UG9saXRpY3M= OiM= IHBpYW4= IGZlY2Vz IERvY3VtZW50YXRpb24= IGJhbmlzaGVk IDM5OQ== IEFSQw== IGhlaW5vdXM= SmFrZQ== IEFtaXI= d2F5bmU= dnJl b3NoZW5rbw== IG5vdGVib29rcw== IGZvdW5kYXRpb25hbA== IG1hcnZlbG91cw== aXh0YXBl IHdpdGhkcmF3YWxz IGhvcmRl IERoYWJp aXNhYmxl IEtE IGNvbnRhZ2lvdXM= IERpcA== IEFycm93cw== IHByb25vdW5z IG1vcnBoaW5l IEJVUw== Njgy IGtvc2hlcg== ZmluaXNoZWQ= IEluc3RydW1lbnRz IGZ1c2Vk eWRlbg== IFNhbG1vbg== RmFi YWZmZWN0ZWQ= S0VO Q0VOVA== RG9tYWlu IHBva2Vtb24= IERyaW5raW5n R3Jvd2luZw== IEludmVzdGlnYXRpdmU= IEFldGhlcg== ZW1p IHRhYmxvaWQ= IHJlcHJv IE5vdHdpdGhzdGFuZGluZw== IEJlcnNlcmtlcg== IGRyYW1hcw== IGNsaWNow6k= IGJ1bmc= IFVSSQ== IERvcw== MDQ0 IHBhc3RvcnM= IGxz IGFjcnlsaWM= YXVudHM= RWR3YXJk IG1ham9yaXRpZXM= QmFuZw== IGZpZWxkaW5n IFJlcGxhY2VtZW50 IEFsY2hlbXk= cHBhcmQ= IFJvbWVv IFNhbmN0 IExhdnJvdg== aWJibGU= SW5zdHJ1Y3Q= IGltcHJhY3RpY2Fs IFBsYXlib3k= Y2VwaGFs IHN3YXBz IGthbg== IFRoZW8= IGlsbHVzdHJhdGluZw== IGRpc21hbnRsZWQ= IFRyYW5zZ2VuZGVy IEd1dGg= VUdI IHRyaXVtcGhhbnQ= IGVuY29tcGFzcw== IGJvb2ttYXJr dWRkaW4= amVy IHByZWRpY2F0ZQ== RVNI IHdoZW5jZQ== IEFCRQ== IG5vbnByb2ZpdHM= U2VxdQ== IGRpYWJldGlj IHBlbmQ= IGhlYXJ0ZmVsdA== c2hp IGludGVyYWN0cw== IFRlbGVjb20= IGJvbWJhcmRtZW50 ZGVwZW5kaW5n IExvd3J5 IEFkbWlzc2lvbg== IEJsb29taW5n dXN0cmF0aW9u ZW5lZ2dlcg== QnJldw== IG1vbHRlbg== IE5lcmQ= UElO 4paA YXZlbWVudA== IHRvdXJlZA== IGNvZWZmaWNpZW50cw== IFRyYXl2b24= YW5zc29u IHNhbmR5 dG9sZA== Zmxvd3M= IHBvcHVsb3Vz IFRpbmRlcg== IEJsaXNz UmFjaGVs TWluaW11bQ== IGNvbnRlc3RhbnQ= IFJlZHVjZQ== IE1vcnNl IEdyYXNzbGV5 IENsaWNrZXI= IGV4cHI= IHNpbmNlcml0eQ== IG1hcnF1 IGVsaWNpdA== IFByb3Bvc2l0aW9u IERlbW9uaWM= IHRhY29z R3JlZWs= IHBvc3R3YXI= IGluc29mYXI= IFBvcms= IDM1Mg== ZG9jdG9yYWw= d2Fsa2luZw== IG1pZHRlcm0= IFNhbW15 c2lnaHRlZA== IFRSQU5T aWNp QUxE IFVTTA== IEZJU0E= IEFtcGw= IEFsZXhhbmRyYQ== aW5lbGxp VHJhaW4= IHNpZ25pZnk= IFZlcnN1cw== IG9iZnVzYw== IGto IGFnZ3Jv IFJlbmF1bHQ= IDM0OA== NTE4 b3hpY2l0eQ== MDIy IFR3aXN0 IGdvb2Z5 RHluYW1pYw== IGJyaWVmaW5ncw== bWlnaHQ= ODk5 IGRlcm9nYXRvcnk= VHJv IGZvcmdpbmc= IEtvcmFu IE1hcnJpZWQ= IEJ1Y3M= IHBhbGF0ZQ== IENvbnZlcnNpb24= bWFibGU= NDEz IChf IHNpcGg= IE5FTw== Y29sbGVnZQ== IG1hcmdpbmFsbHk= IGZsaXJ0 IFRyYXBz IFBhY2U= 6buS IGdvYWx0ZW5kZXI= IGZvcmJpZHM= IGNsZXJrcw== IFRhbnQ= IFJvYmJpbnM= IFByaW50aW5n IHByZW1pZXJlZA== IG1hZ25pZmljYXRpb24= IFRH IFJvdXNl IE1vY2s= b2R5bmFtaWNz IHByZWNsdWRl aXNtbw== IFB1bGl0emVy IGF2YWxhbmNoZQ== IEtvZGk= cmlidW5l IExlbmE= RWxlY3RyaWM= IHJlZmluZXJ5 IGVuZG93ZWQ= IGNvdW5zZWxvcnM= IGRvbHBoaW4= IE1pdGg= IGFybW91cmVk aGliaXRlZA== QmVnaW4= IFBX T2ls IFZvcg== IFNoYXJpZg== IEZyYXppZXI= ZXN0YXRl IGphbXM= UHJveHk= IGJhbmRpdHM= IFByZXNieXRlcmlhbg== IFByZW1pZXJl dGlueQ== IENydWVs VGVzdGluZw== IGhvbWVy IFZFUlM= IFByb2w= IERlcG9zaXQ= IENvZmZpbg== IHNlbWluYXJz IHNxbA== IERlZmVuZGFudHM= QWx0ZXJuYXRpdmVseQ== IFJhdHM= 56s= ZXRoeXN0 Jz4= IGlzc3Vlcg== NTg5 IGNoYWlyZWQ= IEFjY2Vzc29yaWVz bWFuZW50 IG1hcnJvdw== IFByaW1vcmRpYWw= Q04= IGxpbWl0bGVzcw== IENhcm5hZ2U= IHVuZHJhZnRlZA== cXY= SU5FU1M= b25ldw== IGNvaGVzaW9u OTg3 IG5lY2tz IGZvb3RiYWxsZXI= IEdFUg== IGRldGVjdGFibGU= IFN1cHBvcnRpbmc= IENTVg== b2NhbGx5 a0h6 IHVuZGU= IHNob25l IGJ1ZGRpbmc= dHJhaw== U3RhbmRpbmc= IFN0YXJjcmFmdA== IEtlbXA= QmVuY2g= IHRod2FydGVk IEdyb3VuZHM= YXRoaQ== TGlzYQ== RGlhbG9n IFNY VmlzaW9u IGluZ2VuaW91cw== 2ZA= IGZvc3RlcmluZw== IFph IEluZ3JhbQ== ICJA TmF0dXJhbGx5 NjE2 MDM1 IEZBQw== SG1t NTU0 IGFjY2VsZXJhdG9y IFZlbmQ= IHN1bnNjcmVlbg== IHR1YmVyY3Vsb3Npcw== cmF2aW9sZXQ= IEZ1bmN0aW9uYWw= IEVycm9ycw== ZWRhcg== MTk2Ng== IFNwZWN0cmU= IFJlY2lwZXM= ODg1 IE1hbmtpbmQ= TGl2ZXJwb29s IHwtLQ== IHN1YnN0aXR1dGVz IFhU d2lyZWQ= IGluY28= IEFmZ2g= RXZh aWNj U29uZw== S25pZ2h0 IGRpbGlnZW50bHk= IEJyb2FkY2FzdA== QWlk IGFmYXI= IEhNUw== YXRvbmlu IEdyYXRlZnVs IGZpcmVwbGFjZQ== IE9tbmk= ZXVybw== IEZSRQ== IFNoaWI= IERpZ2VzdA== dG9nZ2xl IGhlYWRzZXRz IGRpZmZ1c2lvbg== IFNxdWlycmVs IEZO IGRhcmtlbmVk b3V0aGVy IHNsZWVwcw== IFhlcg== Z3Vucw== IHNldHVwcw== IHBhcnNlZA== IG1hbW1vdGg= IEN1cmlvdXM= Z29i IEZpdHpwYXRyaWNr IEVtaWw= aW1vdg== Li4uLi4uLi4uLi4uLg== IEJlbm55 U2Vjb25kbHk= IGhlYXJ0eQ== IGNvbnNvbg== c3RhaW5lZA== IGdhbGFjdGlj Y2xhdmU= IHBsdW1tZXRlZA== IHBlc3Rz IHN3YXQ= IHJlZmVycmFscw== IExpb25lbA== aG9seQ== IHVuZGVyZG9n IFNsYXRlcg== IFByb3ZpZGU= IEFtYXI= cmVzc29y 5Yw= b25nYQ== IHRpbWlk IHBpZXR5 IERlaw== IHN1cmdpbmc= YXpv IDYxMA== IGRlc2tz IFNwb2thbmU= IEFuZmllbGQ= IHdhcnNoaXBz IENvYnJh IGFybWluZw== Y2x1c2l2ZWx5 IEJhZGdl YWdhc2Nhcg== IFBSRVNT IE1jS2Vuemll IEZlcmRpbmFuZA== YnVybmluZw== QWZlZQ== IHR5cmFubg== IEl3 IEJvb25l MTAwNw== IFJlcHQ= CsKg IGNhcmF2YW4= IERpbGw= IEJ1bmRlc2xpZ2E= Q2h1Y2s= IGhlYWxlcg== 44O844OG IEhvYmJ5 IG5lZ2F0ZQ== IGNyaXRpcXVlcw== c2VjdGlvbmFs bW9wb2xpdGFu IGR4 IG91dHNvdXJjaW5n IENpcGhlcg== dGFw U2hhcnA= IHVwYmVhdA== IGhhbmdhcg== IGNydWlzaW5n IE5pYWdhcmE= IDM0Mg== aWxsdXM= IFN2 IHN1YnRpdGxlcw== IHNxdWFyZWQ= IGJvb2tzdG9yZQ== IHJldm9sdXRpb25hcmllcw== IENhcmx0b24= YWJhbA== VXRhaA== IGRlc3Bpc2U= IFVN Y29uc2lkZXI= YWlkbw== IGNhcnRz IFR1cnRsZXM= VHJhaW5pbmc= IGhvbm9yYXJ5 wqI= IHRyaWFuZ2xlcw== NDIy IHJlcHJpbnRlZA== IGdyYWNlZnVs IE1vbmdvbGlh IGRpc3J1cHRpb25z IEJvaA== IDM0OQ== IGRyYWlucw== IGNvbnN1bGF0ZQ== IGJlbmRz IG1hZmlh dXJvbg== IEZ1bHRvbg== bWlzYw== IHJlbmFs IGluYWN0aW9u Y2tpbmc= IHBob3RvbnM= IGJydWlzZWQ= IENvZGVz b2dp IG5lc3Rz IExvdmVseQ== IExpYnJl IERhcnls ICMjIw== U3lz Liwi IGZyZWV6ZXM= ZXN0YWJsaXNobWVudA== YW5kb3dza2k= IGN1bWJlcnM= IFN0YXJn IEJvbWJz IGxlZ2lvbnM= IGhhbmR3cml0aW5n IGdydW4= IENhaA== c2VxdWVudA== IG1vdGg= IE1TTQ== SW5zZXJ0 Rmlm IG1vdGVs IGRleHRlcg== IEJpbGQ= aGVhcnRlZGx5 IHByb3Bl IFRleHR1cmU= IEp1bmN0aW9u eW50aGVzaXM= b2NhcmQ= IFZlcmE= IEJhcnRo IM68Zw== IGxhc2hlZA== IDM1MQ== IFphbWI= IFN0YXBsZXM= IENvcnRleA== IENvcmtlcg== IGNvbnRpbnV1bQ== IFdSSVRF dW50YQ== cmlkb3I= IGRlZW1z MDMz IEdPTEQ= cGFz IHJlcHJlc3NpdmU= 44OG44Kj IGJhZmZsZWQ= U2Nhcg== IGNyYXZl IF9fX19fXw== IGVudHJlcHJlbmV1cnNoaXA= IERpcmVjdG9yYXRl ICdb IHZpbmVz IGFzY2VuZGVk IEdST1VQ IEdvb2RieWU= IGRvZ2dlZA== 44O044Kh TWFudWZhY3Q= IHVuaW1hZ2luYWJsZQ== cmlvdHM= aWVycmV6 IHJlbGF0aXZpdHk= IENyYWZ0aW5n cmF1Z2h0 dWRlbg== Y29va2ll IGFzc2Fzc2lucw== IGRpc3NhdGlzZmllZA== YWNjaQ== IGNvbmR1aXQ= U3ByZWFk IFJpY2Fu bmljZQ== aXp6bGU= IHNjYXJlcw== IFdIWQ== cGhhbnM= NTM1 IHByb3RyYWN0ZWQ= IEtyaXN0ZW4= NTM2 IFNjcmli IE5laA== IHR3ZW50aWVz IHByZWRpY2FtZW50 IGhhbmRjdWZmcw== IGZydWl0ZnVs IFVM IEx1ZHdpZw== IGF0dGVzdA== IEJyZWFrZXI= IGJpb2xvZ2ljYWxseQ== IERlYWxlcg== IHJlbm92YXRpb25z Znc= ZXNzZW4= QWxpY2U= IEhlbnJp IHVuaWxhdGVyYWxseQ== IFNpZGQ= aGFp IFN0cmV0Y2g= U2FsZXM= IGN1bWJlcnNvbWU= IEphdmllcg== IHRyZW5keQ== IHJvdHRpbmc= IENoYWxsZW5nZXM= IHNjcmFwcw== IGZhY2V0cw== IFZlcm9uaWNh IFZlcmdl IFNhbmE= QWxpZW4= IFJpaA== IHJhZGlhbA== ZWN0YXI= IDYzMA== Y2xp TWFyaWU= IHdpbGRmaXJl IENhdG8= aGFuZGVy IHdhaXRyZXNz IGNob3Bz IFNFQ1RJT04= IGJsdW50bHk= IENhdGFsb2c= bmlhbg== c3R1ZHk= IHBhdHJvbGxpbmc= IFRlbnRo bmV4dXM= IE5PTg== b3BzeQ== IHNjYXRoaW5n c2ll IGRldGVyaW9yYXRlZA== VkI= TmF6aXM= IGRlcGljdGlvbnM= IGF1dGhlbnRpY2F0ZWQ= IENvbmNl a3JpdA== IHByb211bGc= IExPTkc= VUZD IFZpc2l0b3Jz IFJlY2FsbA== IHJlaGFiaWxpdA== IFNMSQ== IGdsYWNpZXI= IEJpdGU= IDUwMw== IHZvbWl0 IGZlcm1lbnRlZA== IEtoYWxpZA== IGdyYWRlZA== IE1hZ2lja2E= IEljaGlnbw== cG93ZXJmdWw= aWNhdG9ycw== NzUz IHNocmV3 IDM1Ng== IGxlZ2FsaXppbmc= IGFsbG90dGVk IEFyY2hkZW1vbg== aXRoaW5n aWdndXJhdA== Vk9M TGVvZA== IG9pbHk= IGluZHVjaW5n IGFteWdkYWxh IGFkbWlucw== IEFjcXVpc2l0aW9u Q0FO IHNjaGVtYXRpYw== IG1vYW4= IENhbWVyb29u IHRpbms= IG1lcnJ5 IGJ1dHRlcmZsaWVz IEdvZmY= IHdvcmtzcGFjZQ== IENvcm9uYQ== IGphdmFzY3JpcHQ= IERvbHBoaW4= IENhbnRvcg== NDY0 dG9l QVBT IEFnaW5n IHBhZGRlZA== IFpoZW5n IEhlbGQ= IGVzdHJhbmdlZA== IDc3MA== Ln0= IER1bmhhbQ== IHNtb2tlcw== IGNhcGl0YWxz dW5kYWk= U2hpbg== IEZvdW5kaW5n IGVudGl0bGU= IGNlbnRlcnBpZWNl RGlzY292ZXI= IHRoZXJldG8= YWxlcnQ= IE5vdQ== IEFuYWx5c3Q= bGM= Rkg= RklFTEQ= IFBPVg== Z3JheQ== IGFyY3M= IEhPVA== IHJz IG9ibGlnYXRvcnk= IEFyY2hpdGVjdHM= IFN2ZW4= IEZFQw== MDIwMA== Q2hyaXN0bWFz IEFsYmFuaWE= cmF0b20= NTg3 IGhhcmRzaGlwcw== IGF1dG9z IENoYXJnZXM= IGFwZXM= IDM3Ng== d2FsbGV0 IGludG94aWNhdGlvbg== IGdvYmxpbg== IDU3MA== KysrKysrKysrKysrKysrKw== IFllbHA= IE1hZ25ldGlj IEJyaWdncw== UmFpbA== IHNwYXducw== IFdpZ2dpbnM= IHNob3djYXNlZA== IHJlc29ydGVk dWJlbg== IHdoaXBwaW5n IGltaXRhdGU= IGRpZ2VzdGlvbg== IFVTUFM= IEdlc3Q= IHllYQ== IFRpZ2h0 aW5kYWw= aWNhcw== YC4= Q0FTVA== Jyc7 IEZldA== b3BhdGhpYw== SW52YWxpZA== IHJlZ3JldHRlZA== IGJyb2Njb2xp IFNjb3Jlcw== ZXZl IHBvc3Rpbmdz IGFjY3VtdWxhdGluZw== IG5lZWRsZXNz ZWxmdGg= IG1heW9ycw== IHNjcmli IGFuZWNkb3Rlcw== IGJvdGNoZWQ= IFJpYmJvbg== IENvbnN0YW50aW5l aXVzZXM= ZXNzZXM= IGRldmlzZQ== Q29tcGFyZWQ= IHB1ZGRpbmc= IGdhcmc= IGV2b2tl Nzk3 IGRldG94 OTA5 IFBpZWNlcw== IE1jQ2FydG5leQ== IG1ldGFzdA== IEtyeXB0 UE9S IHRlbmRpbmc= IE1lcmNoYW50cw== UHJvb2Y= IFZhcmc= IFBvcnRhYmxl 44O844OG44Kj QnJhaW4= MjUwMA== IGZvbGlhZ2U= 2Lk= IG1lbnRvcnM= IEFpcmVz IG1pbmltYWxpc3Q= IGluZ2VzdGVk IFRyb2phbg== IFFpYW4= aW52b2x2ZWQ= MDI3 IGVyb2RlZA== UkFGVA== IGJsdXJyeQ== TW9i IGJ1ZmZldA== IEZuYXRpYw== YWVh S05PV04= IEluaXQ= c2FmZXR5 ZW51bQ== QUNUSU9O IENydXNoZXI= IERhdGVz IC4uLi4uLi4uLi4uLi4uLi4= Y2FsbGluZw== YWtvdg== IHZlbnR1cmVk IDU1NQ== YXVnYQ== SGFydA== IEFlcm8= TUFD IHRoaW5seQ== IGFycmE= U1RBVEU= aWxkZQ== IEphY3F1 IEZlbWFsZXM= IHRoZW9yZW0= IDM0Ng== IHNtYXJ0ZXN0 IFBVQkxJQw== IEtyb24= IEJpdHM= IFZlc3NlbA== IFRlbGVwaG9uZQ== IGRlY2Fw IGFkanVuY3Q= IFNFTg== bWVyZ2E= IHJlZGFjdGVk IHByZWhpc3Rvcmlj IGV4cGxhbmF0b3J5 IFJ1bnM= IFV0dGFy IE1hbm55 IEFVVEhPUg== IFVubGVhc2hlZA== IEJvd2xpbmc= YmVhbnM= Nzkz IHVuaXZlcnNlcw== IHNlbnNpdA== IEt1bmc= cmVwZWF0 Y3RybA== IHBhY2Vk IGZ1bGxlcg== Q2xvY2s= IHJlY29tYg== IEZhdWw= IEJ1bmtlcg== IHBvb2xlZA== IGFuYQ== IE1vdXRo TExPVw== aHVtYW5l IGJ1bGxkbw== IE1pY2hhZWxz ZmFt IHdyZWNrZWQ= IHBvcnRyYXlz IFdoYWxl IEhlcw== IGd1ZXNzZXM= IEJyb3dzZQ== IExBUEQ= IGNvbnNlcXVlbnRpYWw= IElubm9jZW50 IERSQUc= IHRyYW5zZ3Jlc3M= IE9ha3M= IHRyaXZpYQ== IFJlc29u IEFEUw== LS0r IFRvbGw= IGdyYXNwaW5n IFRIRU0= IFRhZ3M= IENvbmNsdXNpb24= IHByYWN0aWNhYmxl IGhvb3A= IHVuaW50ZW50aW9uYWxseQ== IGlnbml0ZQ== IE1vdg== dXJpemVk bGVoZW0= VGVybWlu IGNvbG91cmZ1bA== IExpbmVhcg== IEVsbGll R3k= IG1hbnBvd2Vy IGpz IGVtb2pp IFNIQVJFUw== Xy4= MDAwMDc= IHNvcGhpc3RpY2F0aW9u IHVuZGVyc2NvcmU= IHByYWN0aXNl IGJsb2I= b3BlbnM= VWtyYWluZQ== S2VlcGluZw== WUM= SlI= dWx0aW1hdGU= Q2xhaW0= IGF1dG9tb2JpbGVz OTkz c3RlZWw= IHBhcnRpbmc= IExhbms= Li4uPw== IDM4NQ== IHJlbWVtYnJhbmNl IGVhc2Vk IGNvdmFyaQ== IFNpbmQ= RWZmZWN0aXZl IGRpc3NlbWluYXRpb24= IE1vb3Nl IENsYXBwZXI= YnJhdGVz QXBwbHk= IGludmlz IHdvcnNlbmVk 4oCULQ== IGxlZ2lzbGF0b3I= IExvbA== IFJvd2U= IGRlYWxlcnNoaXA= dW1hcg== aWRlbmNlcw== IGludmVzdGlnYXRlcw== IGNhc2NhZGU= IGJpZGRlcg== IEJFTg== SXJvbmljYWxseQ== IHByZXNpZGluZw== IGRpbmc= IGNvbnRyYWRpY3RlZA== IHNodXRz IEZJWA== IDM2Ng== RGlzdHJpY3Q= IHNpbmZ1bA== IENoYXJpc21h b29wcw== IHRvdGFsaXR5 IHJlc3RpdHV0aW9u IE9wdGltdXM= IERhaA== IGNsdWVsZXNz dXJuZWQ= IG51dHJpdA== IGxhbmRvd25lcnM= IGZsdXNoZWQ= IGJyb2FkZW4= bWll IHByaW50bG4= IG5pZw== IENvcnB1cw== SmVu IHByb3Rv IFdpa2ltZWRpYQ== IFBhbG8= Q09S IHN0b3J5bGluZXM= IGV2YW5nZWxpY2Fscw== IERhcnJlbGw= IHJvdG9y IEhX c2tpbGxlZA== ZXJ5bA== IGJlZ2c= IEJsdW1lbnRoYWw= IHdlYXZpbmc= IGRvd253YXJkcw== IEphY2tldA== IEFOR0VM VGVjaG5vbG9neQ== IGVzb3Rlcmlj YWxkZWh5ZGU= IGZ1cmlvdXNseQ== IGZvcmVpZ25lcg== V2Vhaw== Q0hP IEhvdW5k RXhwZXJpZW5jZQ== IFBsYXlzdGF0aW9u IE1JQQ== IFVuZw== Y2xvdGg= YWdhbGw= IGNhbG1pbmc= aXplbnM= U3RydWN0 IFdpdGNoZXM= IENlbGVicmF0aW9u IC4uLi4uLi4uLi4uLi4u cHRyb2xsZXI= IFRDVQ== IGJ1bm55 44ON dXRvcmlhbA== IHVwc2NhbGU= IFN0YQ== IENvbG9zc3Vz IGNobG9yaWRl IFphYw== IFJlYXNvbnM= IEJyb29raW5ncw== IFdISVRF XVsv IExvc2U= OTA1 IHVuZGVyc2lkZQ== ZXJuZWxz IHZhcGU= ZG96ZW4= dXBwZXQ= IFNUT1A= bWF0aWNhbA== IFN0YXRlbWVudHM= aGVkZGFy UEFD Q3VzdG9tZXI= IG1lbW9z IFBK ZW5kYXJz IExpbWl0cw== bGF1Z2g= IHN0YWJpbGl6ZWQ= IEFMRUM= WUE= VXBncmFkZQ== YWxhbQ== IHRlY2hubw== IGFuZXc= Zm9yZXNlZW4= IGNvbGxlZ2lhdGU= IFB5cm8= IERpc20= IGZyb250bGluZQ== IGFtbW9uaWE= SVU= UXVpdGU= Sm9obm55 YXNzaW4= R09Q IFN0eWxlcw== IFNvdmVyZWlnbg== YWN0ZXJpYWw= NTQ5 IFJJUA== IExpc3Rz IDM2NA== IFJlY2Vw c29ja2V0 IEJ5cmQ= IENhbmRsZQ== QW5jaWVudA== IGFwcGVsbGFudA== ZW5mb3JjZW1lbnQ= YWNlYQ== YW5za2k= IG9sZHM= ODg2 IHNsdXJz IGVtcGlyZXM= IGJ1Y2tsZQ== IGFsaWVuYXRpb24= IEFiZXJkZWVu IHVuaWNvcm4= IG92ZXJyaWRpbmc= IExY cHBh IGRlc3Bpc2Vk IEJ1Z3M= IEJTVA== U291dGhlcm4= NTMz IGhhbGxtYXJr IFBvc3Rlcg== IHN0ZW1tZWQ= IHByaW5jaXBhbHM= IFRFQ0g= IFNhbmR3aWNo SXRhbHk= IGNoZWVzeQ== IFNldFRleHRDb2xvcg== IFByb3RlY3RpdmU= IENvaG4= Sk8= YXB0b3A= UmVhc29u TGVhZGVy IFVuZGVyc3RhbmQ= IEZyaWRheXM= IENvbnRpbnVvdXM= IGNsaXBwaW5n IFJ5ZQ== IGJlcnRo dGltZXI= YW5uaXM= cmVhY3Q= IGJ1ZmZhbG8= IFBhcmFz IDY1NQ== IHByZXNpZGVk IFN1bnJpc2U= IHZldHM= IGNsb3Zlcw== IE1jQ3VsbA== U3RyZW5ndGg= R0FO IGlsbGl0ZXI= IFByaWNpbmc= bMOp IHJlc2lzdG9y IGJydW4= IFN1ZmZvbGs= 0Ys= IExpdmVy UmVsZWFzZWQ= IHdoYXRz ODYw IE1lYXN1cmVz IGRlbm91bmNpbmc= IFJ5emVu IHNvdXZlbg== IGNhcmVnaXZlcnM= Y2hpbmk= IFNjYXJsZXR0 IHRyb3VnaA== Q29uZ3JhdHVsYXRpb25z IHRheGlz IFRyYWRpdGlvbg== aml0 IHRhYmxldG9w IGhpdGhlcnRv IGRpc2luZm9ybWF0aW9u b2ZmZW5zaXZl aHJh IERJU1RSSUNU IGNvbXBsaWNhdGU= Y2hlbmtv IFJlY29uc3RydWN0aW9u IHBhbHBhYmxl IGF1c3A= IDQyOA== IHNob3djYXNlcw== IFB1YmxpY2F0aW9u a25vd2xlZGdl aW5ub24= NDE5 IHJldHJpZXZhbA== YW5kZXJz IHJlZnV0ZQ== IGlucXVpcmVk Z3Vy IG5lZ2F0aXZpdHk= IGNvbnNlcnZl IGFmdGVybGlmZQ== IHByZXN1cHA= IEdpbGxlc3BpZQ== IG10 IERO VGFw IHBlcnBlbmQ= IFNteQ== ZG9lc24= IHNwaWxsaW5n IGh5cGVycw== S2F0ZQ== wq4s a2VwdA== IFBvd2VyZWQ= IGph IEtsdXg= YXJkZQ== YWJhbg== IDQ0NA== IGZsYXR0ZW5lZA== IEltcHJvdmVtZW50cw== dXJnYQ== IEt1bmQ= IGluc2NyaWJlZA== IGZhY3VsdA== IHVucHJlcGFyZWQ= IENvbnN1bWVycw== IHNhdGlzZmllcw== IHB1bG1vbmFyeQ== IGluZmlsdHJhdGlvbg== IGV4dGVybmFsbHk= IGNvbmdyYXR1bGF0aW9ucw== YWdoYW4= IGFpcmxpbmVy IGZsdW5n IGZseWVycw== R0Q= IHNuaXBwZXRz IHJlY3Vyc2l2ZQ== IG1hc3RlcmluZw== TGV4 IG92ZXJ0bHk= dmc= IGx1Y2tpbHk= IGVuY3Jv IExhbmNldA== IEFieXNzYWw= ZnVuY3Rpb25hbA== IHNvdw== IHNxdWlk IG5hcnJhdGlvbg== IG5hdWdodHk= IEhvbm91cg== IFNwYXJ0YW5z IHNoYXR0ZXI= IFRhY29tYQ== IENhbG9yaWVz IFJhY2Vz U3VibWl0 IHB1cnBvc2VmdWxseQ== d2F2 IFlvaw== RmVzdA== IEdlcnI= TWV0cm8= IGl0aW5lcg== ZmFtb3Vz ICJ7 aW5saW5l d2FzaGVy SXNzdWU= IENMSUVOVA== b3pv VmVyc2lvbnM= NzI1 IEdsb2Nr IHNoaWVsZGVk IFBDUg== RU5DWQ== IFdlbGQ= IFNpbXBs IHJlZGlyZWN0ZWQ= IEtoYW0= ICg+ IGxhYm91 IGRpYXBlcnM= c3Ns IGNlbGxhcg== b3JnYW5pc21z b3Jlc2M= IEJlcmtz ZGlkbg== U2hpcHBpbmc= Q2hlc3Q= IHVuZG9uZQ== IG1pbGxpb25haXJl IGNvcmRz IFlvdW5nZXI= YXBwcm9wcmlhdGVseQ== IHNlcXVlbHM= dXZl YW50aWNpcGF0ZWQ= IGxld2Q= IFNoaXJ0 IERtaXRyeQ== VmV0ZXI= IHNsYXlpbmc= IFlhcg== IGNvbXBsaWNhdGlvbg== SW93YQ== IEVyaWNh IEJMTQ== Z2lybGZyaWVuZA== Ym9kaWVk NjI2 MTk2Mw== IGludGVybWVkaWFyeQ== IGNvbnNvbGF0aW9u TWFzaw== IFNpZW0= b3dhbg== QmVnaW5uaW5n IGZpeG1l IGN1bG1pbmF0ZWQ= IGNvbmR1Yw== IFZvbHVudGVlcg== IHBvc2l0aW9uYWw= IGdyZWV0cw== IERlZmluaXRpb25z IHRoaW5rZXI= IGluZ2VudWl0eQ== IGZyZXNobWVu IE1vbWVudHM= IDM1Nw== YXRldXJz IEZlZEV4 c2c= Njk0 IGR3aW5kbGluZw== IEJPWA== c2VsYWdl IHRtcA== IHN0ZW4= IFN1dA== IG5laWdoYm91cmhvb2Rz IGNsYXNzbWF0ZQ== ZmxlZGdlZA== IGxlZnRpc3Rz IGNsaW1hdGVz QVRIRVI= IFNjeXRoZQ== dWxpZmZl IHNhZw== IGhvcHBlZA== IEZ0 IEVjaw== IENL IERvb21zZGF5 a2lkcw== IGdhc3BlZA== IG1vbmlrZXI= IExvZA== IENGTA== dGlvbnM= cnVtcw== Zm9saW9z IG1k IHVuY2Fubnk= IHRyYW5zcG9ydHM= IExhYnJhZG9y IHJhaWx3YXlz IGFwcGxpYW5jZQ== IENUUkw= 5oA= UG9wdWxhdGlvbg== IENvbmZlZGVyYWN5 IHVuYmVhcmFibGU= IGRvcnNhbA== IEluZm9ybQ== b3B0ZWQ= IEtJTEw= TWFyeA== IGh5cG9jcml0aWNhbA== cXVz IE51bWVyb3Vz IEdlb3JnaWFu IEFtYnJvc2U= IExvY2g= IGd1YmVybmF0b3JpYWw= IFhlb24= IFN1cHBvcnRz ZW5zZXI= ZWVseQ== IEF2ZW5nZXI= MTk2NQ== QXJteQ== IGp1eHRhcA== IGNob3BwaW5n IFNwbGFzaA== IFN1c3RhaW5hYmxl IEZpbmNo IDE4NjE= aWN0aXZl YXRtZWFs IEdvaGFu IGxpZ2h0c2FiZXI= IEdQQQ== dWd1 IFJFUEw= dmFyaWFibGU= IGhlcnBlcw== IGRlc2VydHM= YWNpb3VzbHk= IHNpdHVhdGlvbmFs d2Vla2x5 b2Js IHRleHRpbGU= IENvcm53YWxs IGNvbnRyYWNlcHRpdmVz IEFrZQ== XS0= 5LmL Oiw= IFdlbQ== IEJpaGFy ICcu IGJlcmU= IGFuYWxvZ3Vl IENvb2tpZXM= IHRha2VvZmY= V2hlZWw= IG1hamVzdGlj IGNvbW11dGluZw== MDIz IENvcnBzZQ== YXNzbWVudA== bWluaQ== IGdvcmlsbGE= IEFsYXM= ZXJlZQ== IGFjcXVhaW50YW5jZXM= IEFkdmFudGFnZQ== IHNwaXJpdHVhbGx5 IGV5ZWQ= cG13aWtp IEVuZGVy IHRyYW5zbHVjZW50 IG5pZ2h0dGltZQ== IElNQUdFUw== NTQ1 IEthbXA= IEZyZWFr IGln UG9ydGxhbmQ= NDMy IE1hdGE= IG1hcmluZXM= IGhvcnM= YXRlcmFzdQ== IEF0dHJpYnV0aW9u IC0tLS0tLS0tLQ== IGtpbnM= IEJFTE9X Kysr IHJlZWxpbmc= b2xlZA== IGNsdXR0ZXI= IFJlbGF0aXZl IDQyNw== QlVT IGF2ZXJ0 IENoZW9uZw== IEFibGU= IFByeW9y RGV2ZWxvcGVy IGVuY3ljbG9wZWRpYQ== IFVTQUY= IEdhcnJ5 U3BhaW4= QmxvY2tz IGV4cG9zaXRpb24= IEdhbWVyR2F0ZQ== V09S IHN0b2NrcGlsZQ== IGNsb3RoZWQ= IFRvbmU= IFJ1ZQ== dHVtYmxy IHRyZWFjaGVyb3Vz IGZyeWluZw== 0Yw= IFNwaA== IHJlc3RyYWludHM= IGVtYm9kaWVz IEdlcw== U2FmZXR5 IG5lZ290aWF0b3Jz bWluaW5n IEFwcGFsYWNoaWFu TE9T IEplbm5h IHBhc3NlcnM= 54s= c25hcA== IHNob3J0ZW4= Y3JlYXRvcg== IGlubnVtZXJhYmxl dXRoZXJsYW5k Njc0 IFdPTQ== IEFzY2VuZA== IEFybW9yeQ== IFRyYW5zYWN0aW9u S2ljaw== IHN1aXRjYXNl ZGF5TmFtZQ== IHdhc3RlZnVs bWFycmlhZ2U= IE1jQ2FiZQ== aXRlY2g= IE9zcw== Q2xvc3VyZQ== IFRyZWFzdXJlcg== IGluZGVjZW50 IER1bGw= IHJlc2lkZW5jZXM= MTk1OQ== IFNldHRsZW1lbnQ= SGFtaWx0b24= IHNlbGZpZXM= IFJhbmtpbmc= IEJhcmtsZXk= IEJvcmU= IFdDUw== IE1hcml0aW1l IEh1aA== IEZvcmVzdHJ5 IGN1bHRpdmF0aW5n IEJhbGxhcmQ= IGdhcnJpc29u IFNETA== OTMw IG5hc2NlbnQ= IGlycmVzaXN0aWJsZQ== IGF3ZnVsbHk= XC9cLw== IGVxdWF0ZQ== IGFudGhyb3BvbG9neQ== IFN5bHZpYQ== IGludGVzdGluZQ== IGlubm9jdW91cw== Y2Vzc2l2ZQ== YWdyYQ== IE1ldHJvaWQ= R3JhbnQ= ODU1 gZY= ICJf 44OD44OJ IGFwcHJhaXNhbA== IEZyZWRkeQ== MDQ2 IDQwNg== IDE4MzA= IGRvY2tpbmc= U3RhdGlj IHBvbnQ= IFZvbHRhZ2U= IFN0ZWFk IE1vcnRnYWdl IEpvbmFo WUw= Q0xBU1NJRklFRA== IGFzYmVzdG9z bmlrb3Y= IGNvbGxhZ2Vu IE9yYml0YWw= UG9ja2V0 Nzk5 IGh5YnJpZHM= aW5jaGVz IGludm9pY2U= dW5keQ== IGluZXF1YWxpdGllcw== VHJlbmQ= d2FzaGVk QkFMTA== IGx1Y2lk IENvbW1lbnRhcnk= IHdpdHR5 QnJhbmRvbg== IGJydWlzaW5n IDYyMA== ZXNjZW50 Ym94aW5n UE9M IDM3OA== UmVjdA== IGxpY2VuY2Vz IE1jR2Vl cHJlc3NlZA== RGFubnk= IGphbW1lZA== b3JkaW5hdGU= IGxldGg= IGRpc3Rpbmd1aXNoZXM= IFlhbWFoYQ== SUxT IEh1bWU= IENhdGVnb3JpZXM= Um9iZXJ0cw== Q2hhcnQ= IGJlZXRsZQ== IEdyYXZleWFyZA== ICgkKQ== b8Sf IHR3aWxpZ2h0 YXJlbGxh 4b0= IGJvb3Rocw== IEhIUw== IEZlbGRtYW4= IGV4Y2F2YXRpb24= IHBoaWxvc29waGllcw== YXRvZ3JhcGh5 IEdhcmFnZQ== dGVjaG5vbG9neQ== IHVuZm9yZ2V0dGFibGU= IHZlcmlmeWluZw== IHN1Ym9yZGluYXRlcw== RWxz IG5lYg== R2FtaW5n RU5B IEFjaGlldmVtZW50 aXR0ZXJz IEdhYmU= IGR1bXBz Zm9yY2Vy IHBvaWduYW50 IE1CQQ== IEhlaWRp aW1laQ== IG1hZ2Vz IGxpYmVyYXRl IGNpcmN1bWNpc2Vk IE1lcm1haWQ= IE1hdHRo dG9nZXRoZXI= IFdpY2hpdGE= IHN0b3JlZnJvbnQ= IEFkaW4= VklJ Rm91cnRo IGV4cGxvcmVycw== V0VS Tm90YWJsZQ== QnJvb2s= bWVucw== RmFpdGg= LS0tLS0tLS0t IEpvdQ== rLw= IHBpbmVhcHBsZQ== IGFtYWxn ZWxu YXJrYWJsZQ== IOOCteODvOODhuOCow== IOOCteODvOODhuOCo+ODr+ODsw== IG92YXJpYW4= IEVjaG9lcw== IGhhaXJjdXQ= IHBhdg== IGNoaWxsZWQ= YW5hc2lh IHN0eWxlZA== IGRhYg== bmlwZXI= IG1pbmlzdGVyaWFs IERVUA== VGFu IHN1bHBo IERldGVy IEJvaGVt b2Rhbg== IGVkdWNhdG9y 4pOY c3Bpcg== Q2hpY2tlbg== IEVsZWFub3I= IHF1aQ== IGhlYXZpZXN0 IGdyYXNwZWQ= VVJB IGNyb29rZWQ= SmVzc2ljYQ== cHJvYmxlbQ== IHByZWRldGVybWluZWQ= IG1hbmlhYw== IGJyZWF0aHM= IExhdWRlcmRhbGU= IGhvYmJpZXM= eXo= Q3JpbWU= IGNoYXJpc21h ZEw= IGxlYXBpbmc= IGtpdHRlbnM= QW5nZWxv IEpBQ0s= IFN1emFubmU= IGhhbHRpbmc= RU5USU9O IHN3YWxsb3dpbmc= IEVhcnRocXVha2U= IGVpZ2h0ZWVudGg= IE5JQw== IElORg== IENvbnNjaW91cw== IHBhcnRpY3VsYXJz Y2lyY2xl NzQw IGJlbmV2b2xlbnQ= IDc0Nw== IDQ5MA== IHJ1bmRvd24= IFZhbGVyaWU= IEJVUg== IGNpdmlsaXNhdGlvbg== IFNjaG4= V0I= b3RpZGU= aW50ZXJuYXRpb25hbA== IGpvaG4= IDE5MDI= IHBlYW51dHM= IGZsYXZvcmVk a3Vz IHJvYXJlZA== IGN1dG9mZg== 6aM= IG9ybmFtZW50 IGFyY2hpdGVjdHVyZXM= IDM2OQ== b2xvcg== IFdpbGRl IENSQw== IEFkanVzdGVk IHByb3Zva2luZw== bGFuZGlzaA== IHJhdGlvbmFsaXR5 IGp1c3RpZmllcw== IGRpc3BlbA== IGFtZXJpYw== IFBvbGVz 2Kk= IGVudmlz IERvb2RsZQ== 5L2/ aWdzYXc= YXVsZHJvbg== VGVjaG5pY2Fs VGVlbg== dXBoZW0= IFhpYW5n IGRldHJhY3RvcnM= IFpp IEpvdXJuYWxpc3Rz IGNvbmR1Y2l2ZQ== IFZvbHVudGVlcnM= IHNk S25vd2luZw== IHRyYW5zbWlzc2lvbnM= IFBMQU4= IExJQg== IGFsbHVkZWQ= IG9iZQ== IGRvcGU= IEdvbGRzdGVpbg== IHdhdmVsZW5ndGhz IERlc3RpbmF0aW9u bmRh dWdp IGF0dGVudGl2ZQ== IExlYW4= cmFsdGFy IG1hbmc= bWJ1ZHM= YWtpbmdz YmVuZGVy IGFjY29s IGNyYXdsZWQ= Tk9X TWlubmVzb3Rh IGZsb3VyaXNoZWQ= IFp1cA== IFN1cGVydmlzb3I= IE9saXZpZXI= RXhjZWxsZW50 IHdpZGVu RG9uZQ== IHdpZw== IG1pc2NvbmNlcHRpb25z Q29ycA== V2Fu IHZlbmVyYWJsZQ== IE5vdGFibHk= IEtsaW5nb24= YW5pbWF0ZQ== Qm9vc3Q= IFNBWQ== bWlzc2luZw== aWJsaW9ncmFwaHk= bWVsb24= IHBheWRheQ== 2LM= Ym9sZQ== IHZlaWxlZA== IEFscGhhYmV0 SXRhbGlhbg== IGV2ZXJsYXN0aW5n IFJJUw== IENyZWU= cm9tcHQ= IGhhdGluZw== IGdyaW5uaW5n IGdlb2dyYXBoaWNhbGx5 T1NI IHdlZXBpbmc= IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IGltcGVjYw== TGV0dGVy IGJsb2F0ZWQ= UExB IEZlaW4= IHBlcnNldmVy VGh1bmRlcg== IGF1cg== IFJM IHBpdGZhbGxz 4pa6 IHByZWRvbWluYW50 IDUyNQ== NzE4 QVBF NzE0 IGZhcm1sYW5k IFFpYW8= IHZpb2xldA== IEJhaGFtYXM= IGluZmxpY3Rpbmc= IEVmZmljaWVuY3k= IGhvbWVicmV3 IHVuZGVydG9vaw== IGN1cmx5 IEhhcmRpbmc= bWFuaWE= NTk2 IHRlbXBlcmVk IGhhcnJvd2luZw== IFBsZWRnZQ== IEZyYW5rZW5zdGVpbg== 6Ko= TW90aW9u IHByZWRpY3RhYmx5 IEV4cGxvc2lvbg== b2N1c2luZw== ZXJk Y29sbw== RkZFUg== IGJhY2tmaWVsZA== IFZJREU= dWVibA== TmFycg== IEFyZ3VtZW50 IGdlbm9taWM= IGJvdXRpcXVl IGJhdHRlZA== IEJpbmFyeQ== IGdhbWI= IFJoeXRobQ== Njcz IGFmbG9hdA== IE9seW1waWE= WUlORw== IGVuZGlm aXNpbg== IHdpbnRlcnM= IHNjYXR0ZXJpbmc= SXY= RGlzdGFuY2U= IHRydQ== IENvbWZvcnQ= IG5leHVz IGFpcmZsb3c= IEJ5emFudGluZQ== cGF5ZXJz Y29uaQ== IEJldHN5 RGVhbA== IE51Zw== IENvbnRpbmVudA== cmVkaWJseQ== IG9wdGltaXppbmc= YWxiZWl0 IGVjc3RhdGlj IFByb3Rv 57c= aXZvdA== 4paE ZW1w cm91bmRlcg== IGNsb3V0 IElTVA== NjYz IERvbGxhcnM= IERBQw== IHN1YnNjcmliZWQ= IHJlaGVhcnNhbA== IGFtcHM= IFNoYW5n ZXNt IHNwcmlua2xl IGFzc2FpbGFudA== IE9v IENvaW5iYXNl VGFjdA== IHJldGluYQ== IG51bnM= Uk9O YXR0bw== IGp1Zw== IFNWRw== IGJpa2luaQ== IEZJTEU= IEZvdW5kZXJz ZXBvcnQ= IEtQ IHJlc3RvcmVz IFRoaWNr IGFzaG9yZQ== IGFwcHJvdmFscw== UmVuZGVy TUFH R3JhaGFt IENvcnRhbmE= 44Oz44K4 c3No b3JpYW5z YXJzaXR5 IEluc3BpcmVk dXBwZXI= IHNpZ25hbGxpbmc= IHJlYnVrZQ== IGZsYXJlcw== IGRvd250aW1l U3R1ZGllcw== IHN0YWduYXRpb24= IFNlcXVlbmNl IGdydW50 IGFzc3VyZXM= IFBMQQ== NTky IGludHJhdmVu ZGVwZW5k U3VzYW4= IE1hbnppZWw= TWFuaWE= Q29udHJhY3Q= IHNsYW1z IGN1bHR1cmVk IGNyZWRpdG9y TElTVA== IEhVTQ== IENoYXR0YW5vb2dh c2VydmVk IGNsb2FrZWQ= IEZUUA== cG93ZGVy IFN0ZWxsYQ== dWN0aXZl IGNoZWFwbHk= IE1VQ0g= IEdhbGlsZW8= IHN1aXRlcw== c3BlZWNo IGRlbGliZXJhdGlvbnM= IENoaXBz q5g= QmFsYW5jZQ== IFd5bm5l IEFrcm9u QXNzZXQ= IGhvbm91cmVk IGVkZ2Vk TGlrZXdpc2U= YW5pbW91cw== IFdhZ2U= IEV6ZWs= YWR2ZXJ0aXNlbWVudA== IFJUWA== IE1BRA== IG1pZ3JhdGluZw== IFNRVQ== IDQ3NQ== RWRpdGVk IHNob3J0aGFuZA== IEJhc2ljcw== IGNyb3RjaA== IEVWRU4= IHZt ZWZmaWNpZW5jeQ== IGNhbHZlcw== IEZyaWU= IEJyaWxsaWFudA== IHN0cmlrZXJz IHJlcGVudGFuY2U= IGFydGVyaWVz cmw= QmVk aGFw IGNyeXB0b2dyYXBoeQ== IFNhYnJlcw== IDQxNA== dmlrcw== aWhhcmE= YXBzZXM= VGFsa2luZw== IGludGVydHdpbmVk IGRvY2tz IGFsbGVsZQ== IEFydGlmYWN0 IEhJTQ== dG9ybg== 55U= IG9wYWNpdHk= IEVseQ== b3N1a2U= IG5pcHBsZQ== IGhhbmR3cml0dGVu IFZL IENoYW1iZXJsYWlu IExhb3M= aWdyYXBo Z3Jvdw== IHRyaWxsaW9ucw== IGRlc2NlbmRhbnQ= IFNhaWxvcg== YXN1cmluZw== IGNlaWxpbmdz IFdhcmVob3VzZQ== Zmx5aW5n IEdsb3c= IG5vbnQ= IG1pc2NhcnJpYWdl IHJpZ3M= IG1pbmlzdHJpZXM= IGVsYWJvcmF0ZWQ= IGRlbHVzaW9uYWw= IEh1bWFuZQ== IDM3OQ== bmV0cw== IGJsYWNrb3V0 YWRkZXJz IG5w IFRpcmU= cm9zYw== IHN1YmRpdg== IGxpbmthZ2U= IGNocm9ub2xvZ2ljYWw= IEhFUk8= IHJlc2V0dGxlbWVudA== IFZpbnls IHBhc3RvcmFs IE1vYmls IEJhcmJhcg== Q29vbGRvd24= IEZyaXR6 Y3JpbWluYWw= cmVwZQ== IGJlbGxpZw== IEJyZWVk IDQxOA== IHNlbWJsYW5jZQ== aWpr IGN1cnRhaWw= IGNsaW5jaA== Y29udGFpbmVk IFByb21wdA== YXN0b24= IHdp IHB1cnN1aXRz NTE1 IEdsb3Nz IGZsaXBz IGNvdXBvbnM= IGNsb25pbmc= IExpa2VseQ== UmVtb3ZlZA== IFF1YXJ0eg== cmljZXM= IFNwZWFycw== IHBpb3Vz IGRlcHJlY2lhdGlvbg== IERhcmU= b3VuY2Vz YW1heg== T250 IHBpbm5hY2xl ZG9ja2Vy MDI2 IFd5cg== IFByb3Blcg== y4g= bmls Qnl0ZXM= IHNlZWtlcg== dHJpYWw= IHVuZm9sZHM= IE1hcnNl IGV4dHJhdmFnYW50 IFN1cnZpdm9ycw== UkVEQUNURUQ= IFNwZWVkd2F5 IENyYWlnc2xpc3Q= c3VibWl0 IEdlbmVyYXRpb25z IHVwaG9sZGluZw== IGJsb29kc3RyZWFt IE1pc3Npb25z IExhd24= IGxpbWJv ZW5laQ== SHVo IFdpbGRjYXRz cHJlcA== IE1hcmt1cw== IEZvcmJpZGRlbg== cml0aWM= SU5P IGV4aGliaXRpbmc= cmVxdWVudA== Y2h1aw== IGhhYml0dWFs IENvbXBhdGliaWxpdHk= RHJhZw== UklQVA== dWphaA== R1JPVU5E IGRlbGlucXVlbnQ= IGJ1cm5lcg== IGNvbnRlbXBvcmFyaWVz IGdpbW1pY2s= bG9hZHM= IG5venpsZQ== cG9kY2FzdA== IFdhaw== IFN0YXRlbg== IEt1aA== 44GT aW50ZXJydXB0ZWQ= IGludmluY2libGU= IEJ1cm5ldHQ= Y2lnYXJldHRl IFBlYmJsZQ== IFRlbXBvcmFyeQ== IE1hcmlubw== NTgy IHdhc3RlbGFuZA== aWRlbnRseQ== VHg= IHJpdGU= IFBhbmFzb25pYw== IE1pZGRsZXM= IEhvcnRvbg== YWV1cw== IGN1cmluZw== IG1hdHM= IGFkam91cm4= IGZlYXJzb21l cGV6 Ym9hdHM= IHByb3BlbGw= IGNvbmZsaWN0ZWQ= IEFuZ2Vy IGluc3VyZ2VudA== S2FybA== IGNvYWxlcw== IHNvdXRod2VzdGVybg== IGRpc3N1 IE92ZXJ0 KioqKioqKioqKioq IGJveGVk IEJydW5l YWFh IGdhcmRlbmluZw== IEVuZ2Vs dHJhY2tz IHB1cmlmaWVk IHBsYWNlaG9sZGVy IExpa2Vz IGRhbg== R2Fi IGVjdA== IEZhdw== IEVsaW90 ICcs b3Ryb3BpYw== IFJ1aW4= aGVkb24= IGNhdWw= IGFmdA== IENhZGlsbGFj Z2hh YXNzaWFu dWRlYg== IFRpY2s= IGFkanVzdHM= QVJHRVQ= NTM3 aXNjaGU= YW50eQ== IEZyaWVkcmljaA== IEJsaXp6 IEFPTA== Q2FtcGFpZ24= IG1hbW1hbA== IFZlaWw= IEtldg== IE1hdXJpdA== IERhbWllbg== TmF0aW9u RWFzdGVybg== IHs6 ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ== IHN0ZXJlb3R5cGljYWw= IGF0dGlj IEN5Ym9yZw== cmVxdWlyZQ== IGF3YXJkaW5n IFBhcHVh YnRu YmVudA== Qm9v ICg9 IFhhbmRlcg== IFNvbWVyc2V0 IGNhdGNoeQ== IGNlcnRpZnk= U1RSVUNU IGl0YWw= IHRpZGVz IEJyYW5kcw== R3JheQ== Y29tcGV0aXRpdmU= IGN1cmF0b3I= IERH b21pbml1bQ== IEdNT3M= Y2lhdGluZw== IENhcm1lbg== b3dhcmQ= QmFsdGltb3Jl IHJnYg== Q3U= IHdpcGVz c3BlbGw= SVRORVNT IHN1bW1hcml6ZXM= IFJldmlz IHdoaXN0bGVibG93ZXJz IEJyZWFjaA== IGNyb2NoZXQ= a29z ZXdza2k= IHJlcGV0 IGNyaW1zb24= IEthcmFjaGk= cmVhZGFibGU= ZGltZW5zaW9u IElnb3I= aWxkZWQ= IFplZA== IEtlYW5l IENvc21ldGlj REVQ IHJldHJlYXRpbmc= IFVB ZW5zaWNhbA== IGR1c2s= IERpY2tlbnM= IGFyZW5hcw== IFBhc3NhZ2U= bGV2ZWxz IGN1cnY= UG9wZQ== IGNob3Jlcw== IEVsaXNl IENvbXBhc3M= YnVi IG1hbW1hbGlhbg== IFNhbnNrcml0 IEFOQw== IENyYWNr UXVhbA== TGF1bg== YW1wdW5r IGxlYXJuZXJz IGdsYW1vcm91cw== IGZ1cnRoZQ== ZXJtb3R0 Y2FuZA== R2VuZXJpYw== IG5hcnJhdGVk IGRpc29yZGVybHk= IFRyYW5zYWN0aW9ucw== IERldGVudGlvbg== IFJva3U= xI0= IHVuZGVyc3RhdGVtZW50 IFNhdXI= IFJvZHJpZ28= IEFTQVA= U2lu IHJlam9pY2U= TWV0aG9kcw== IGVsZWN0cm9kZQ== IHdvcnNoaXBwZWQ= IGlkaQ== IFBoeXNpY2lhbnM= IHBvcHVw IGRlZnQ= IFJlbW92YWw= IEJ1ZW5vcw== dmVyYnM= IGZ1bms= dXNoYQ== cmljdGlvbg== b3JlYQ== IEJhbmdhbG9yZQ== IEtlbm9iaQ== enpp IG5vcm1hdGl2ZQ== IGdvYmxpbnM= IGNhZmVz IFVOQ0xBU1NJRklFRA== IEZpcmVk U0lHTg== IHNjbGVyb3Npcw== IFZvdGVy IFNvbm55 IEV4dGVuZA== IEVWcw== QXJzZW5hbA== IHBzaQ== IHdpZGVzdA== IFR1cw== IGxvb21z IGp1c3RpZnlpbmc= IEdyYW5nZXI= 6K8= UmVmZXI= NTgz IGZsb3VyaXNoaW5n YWJyZQ== IHJhdmU= IENvbnRyYQ== IDE4OTg= QWRkcw== IGZ1bA== IENvb2tl c29tZW9uZQ== PSM= Njcx IHlhaw== IGFydGU= IE1pc2NlbGxhbmVvdXM= IERldGVjdGlvbg== IENsYW5jeQ== 4oE= YXNzaWVz IHZhbGlhbnQ= IEZlbWluaXN0 Y29ycnVwdGlvbg== VmVs UGVhcg== IHN1Y2NpbmN0 IHF1aWNrZXN0 a3c= IHNwaXR0aW5n IExpYnJhcmllcw== 5YWJ YW50eg== RGFk IFNwZWNpZmljYXRpb25z cnVwdWxvdXM= YW5kcg== UkVTVUxUUw== IHNub3diYWxs IHByZWRpcw== IEJheHRlcg== IE51cnNpbmc= IENoYWZm c3dl IG91dGFnZQ== IG5lc3Rpbmc= IG5vdG9yaWV0eQ== dHJpZ2dlcg== b25pdGU= am9u IGZvdQ== b29rZWQ= IENlbGVicml0eQ== cmVhbGl0eQ== IGZhdGln IGh1Z2dpbmc= IGJvdGhlcnM= IFBhbnplcg== IENoYW5kcmE= ZmlndXJlZA== IHZvbHRz IENsb3Vkcw== IGZlZWJsZQ== IEN1cnZl IEFzdXM= Nzg2 YWJzb3I= IFZJQ0U= IEhlc3M= IG1hbnVmYWN0dXJlcw== IGdyaXp6 IFBvd2VyZnVs YWNpZA== IHN1YnNlY3Rpb25z IEtydWdtYW4= IEFscHM= aXN1 IHNlcXVlc3Q= IFVsdHJvbg== IFRpbmtlcg== IEdvb3Nl IG1pc21hdGNo QXR0b3JuZXk= IG1vcnBob2xvZ3k= IFNpeGVycw== dXR0ZXJlZA== IEVMRUNU Z3Jhbg== UnVzc2VsbA== IEdTTA== IGZvcnRuaWdodA== IC4p IGFwb3N0bGU= cHJvbmU= ZWxpc3Q= VW50aXRsZWQ= IEltcGxlbWVudGF0aW9u aXN0b3Jz IHRhbmtlcg== IHBsdXNo IGF0dGVuZGFudHM= IFRpaw== IEdyZWVud2ljaA== IFlvbg== IFNQTA== Y2VsbHM= dW50bGVk U29sdXRpb24= IFF1w6k= IHZhY2F0ZWQ= IHVwdGljaw== IE1lcmlkaWFu 5oM= IERyaWxs OTI1 NTg0 IHJlbm92YXRlZA== IEt1YnJpY2s= enlr IGxvdXN5 cHBlbA== b2h5ZHJhdGU= IEl6enk= bGVzaWFzdGljYWw= Q0ND IEFqYXg= IGFkYXB0ZXJz IFBldHJhZXVz IGFmZmlybWF0aW9u IFNUT1I= bGVtcw== YWRvZXM= IENvbnN0YW50aW5vcGxl IHBvbmllcw== IGxpZ2h0aG91c2U= IGFkaGVyZW50cw== IEJyZWVz b21vcnBoaWM= RmlnaHRpbmc= IHBsYXN0ZXI= IFBWQw== IE9ic3Q= IGRlYXJseQ== IFRvb3Ro aWNrc29u IHNoYW1pbmc= UGxleA== QWdn IOKApiI= IHN1YnJlZGRpdHM= IHBpZ2Vvbg== IFJlc2lkZW50aWFs IFBhc3Npbmc= IGx1bQ== IFBlbnNpb24= IHBlc3NpbWlzdGlj IDQzMg== emluc2tp Y2FkZQ== MDc1 IGFwb2xvZ2lzZWQ= aXlhaA== UHV0dGluZw== IGdsb29teQ== IEx5bWU= PS09LT0tPS09LT0tPS09LQ== IFRvbWU= IFBzeWNoaWF0cmlj IEhJVA== Y21z YXBvbG9n IGJyZWFrZXI= IGRlZXBlbg== IHRoZW9yaXN0 IEhpZ2hsYW5kcw== IGJha2Vy IHN0YXBsZXM= IGludGVyZmVyZWQ= IEFib3J0aW9u am9pbmVk Y2h1 IGZvcm11bGF0ZQ== IHZhY2NpbmF0aW9ucw== IGJhbnRlcg== cGhldXM= IG91dGZpZWxkZXI= IE1ldGVy ICMjIyMj IDE4OTU= IG5hcnJvd2luZw== IFNUT1JZ ZnA= IENTVA== aWdub3Jl IHByb2NsYWltaW5n IFJV IEJBTEw= eW5h NjUz IHBvc2l0 UFJF NTk0 IFJlZ2lzdHJhcg== IFBpbGdyaW0= aWNpbw== IHByZXR0 IGxpZmVsZXNz IF9fXw== TmVpZ2g= IENodXJjaGVz b3Jubw== IG9yY3M= IGtpbmRyZWQ= IEF1ZGl0 IG1pbGxlbm5pYWw= IFBlcnNpYQ== Z3Jhdml0eQ== IERpc2FiaWxpdHk= IERBUks= V3M= b2Rvbg== IGdyYW5kZGF1Z2h0ZXI= IEJyb29rZQ== IEFEQQ== RVJB IHBpY2t1cHM= IFdpbGtpbnNvbg== IFNoYXJkcw== IE5L IGV4cGVs IEtpc2x5YWs= IGphcmdvbg== IHBvbGFyaXplZA== aWFuZQ== UHVibGlzaGVy IHJlYnV0dA== IGFwcHJlaGVuc2lvbg== IEtlc3NsZXI= IHByaXNt RlVM MTk2NA== IExvbGw= 5L8= bGV0aGFs xZ8= IGdoZXR0bw== IGJvdWxkZXI= IFNsb3dseQ== IE9zY2Fycw== IEluc3RydWN0aW9u IFVsdHI= IE1vZQ== TmljaA== IFBBVEg= KCo= IFJFTEVBU0U= dW5pbmc= cm91c2U= ZW5lZw== IHJlaW1i IERldGVjdGVk RG9T IHN0ZXJsaW5n IGFnZ3JlZ2F0aW9u IExvbmVseQ== IEF0dGVuZA== aGlnaGVy IGFpcnN0cmlrZQ== a3Nvbg== U0VMRUNU IGRlZmxhdGlvbg== IEhlcnJlcmE= Q29sZQ== cml0Y2g= IGFkdmlzYWJsZQ== RmF4 IHdvcmthcm91bmQ= IHBpZA== bW9ydGVt ZXJzZW4= IHR5cG8= IGFsdW0= Nzgy IEphbWFs c2NyaXB0cw== IGNhcHRpdmVz IFByZXNlbmNl IExpZWJlcm1hbg== YW5nZWxv IGFsY29ob2xpc20= YXNzaQ== IHJlY2l0ZQ== IGdhcGluZw== IGJhc2tldHM= IEdvdQ== QnJvd3Nlcg== bmVhdQ== IGNvcnJlY3RpdmU= dW5kYQ== c2NvcmluZw== IFhE IGZpbGFtZW50 IGRlZXBlbmluZw== IFN0YWlubGVzcw== SW50ZWdlcg== IGJ1Z2d5 IHRlbmFuY3k= IE11YmFyYWs= IHR1cGxl IERyb2lk IFNpdHRpbmc= IGZvcmZlaXQ= IFJhc211c3Nlbg== aXh0aWVz ZXNp IEtpbW1lbA== IG1ldGljdWxvdXNseQ== IGFwb3B0 IFNlbGxlcg== MDg4 ZWNha2U= aGVtYXRpY2FsbHk= VE4= IG1pbmRsZXNz IGRpZ3M= IEFjY29yZA== b25zZW5zZQ== ZW1pbmc= YnJhY2U= IGVCb29r IERpc3RyaWJ1dA== IEludmVzdG1lbnRz d3Q= XSks YmVoYXZpb3I= NTYz IGJsaW5kaW5n IFByb3Rlc3RlcnM= dG9waWE= IHJlYm9ybg== IEtlbHZpbg== IERvdmVy IERhaXJ5 IE91dHM= IFsv z4A= YnA= IFZhbml0eQ== IFJlY2Fw IEhPVVNF IEZBQ0U= IDQyMg== Njky IEFudGlvY2g= Y29va2Vk IGNvbGxpZGU= IGFwcg== IHNsZWVwZXI= IEphcnZpcw== IGFsdGVybmF0aXZlbHk= IExlYXZlcw== IE1hdw== IGFudGlxdWl0eQ== IEFkaW5pZGE= IGFidXNlcg== UG9rw6ltb24= IGFzc29ydGVk IFJldmlzaW9u IFBpYW5v IEdpZGVvbg== T2NlYW4= IHNhbG9u IGJ1c3RsaW5n b2duaXRpdmU= IFJhaG1hbg== IHdhaXRlcg== IHByZXNldHM= IE9zaA== IEdIQw== b3BlcmF0b3I= IHJlcHRpbGVz IDQxMw== IEdhcnI= IENoYWs= IGhhc2hlcw== IGZhaWxpbmdz IGZvbGtsb3Jl IGFibA== IENlbmE= IE1hY0FydGh1cg== IENPVVJU IHBlcmlwaGVyeQ== YXBwZXJz IHJlY2tvbmVk IEluZmx1 IENFVA== IDM3Mg== IERlZmluaXRpdmU= YXNzYXVsdA== NDIx IHJlc2Vydm9pcnM= IGRpdmVz IENvaWw= REFR IHZpdmlkbHk= IFJK IEJlbGxldg== IGVjbGVjdGlj IFNob3dkb3du IEtN aXBlZA== cmVldGluZ3M= IEFzdWth TGliZXJhbA== IM+E IGJ5c3RhbmRlcnM= IEdvb2R3aW4= dWtvbmc= U2l0 IFRyZW0= IGNyaW1pbmFsbHk= IENpcmN1cw== Y2hyb21l ODg3 IG5hbm9w IE9iaQ== IExPVw== b2do IEF1dGhvcnM= b2J5bA== VXJiYW4= IHRp IFdlaXI= dHJhcA== YWd5 IHBhcmVudGhlc2Vz IG91dG51bWJlcmVk IGNvdW50ZXJwcm9kdWN0aXZl IFRvYmlhcw== dWJpcw== UGFyc2Vy U1RBUg== IHN5bmFwdGlj IEdlYXJz IGhpYmVy IGRlYnVua2Vk IGV4YWx0ZWQ= YXdhdHRz SE9V Q2h1cmNo IFBpeGll IFVyaQ== IEZvcm1hdGlvbg== IFByZWRpY3Rpb24= Q0VP IHRocm90dA== IEJyaXRhbm4= IE1hZGFnYXNjYXI= 64s= IGJpbGxib2FyZHM= IFJQR3M= IEJlZXM= Y29tcGxldGVseQ== RklM IGRvZXNudA== IEdyZWVuYmVyZw== cmV5cw== IHNsaW5n IGVtcHRpZWQ= IFBpeGFy IERoYXJtYQ== bHVjaw== aW5ndWlzaGVk IGVuZG90 IGJhYnlz MDU5 Y2hlc3Q= cmF0cw== IHJpZGRlbg== IGJlZXRsZXM= IGlsbHVtaW5hdGluZw== IGZpY3RpdGlvdXM= IFByb3ZpbmNpYWw= IDc2OA== IHNoZXBoZXJk IFJlbmRlcg== IDE4OTY= Q3Jldw== IG1vbGRlZA== IFhpYW9taQ== IFNwaXJhbA== IGRlbGlt IG9yZ2FuaXNpbmc= IGhvb3Bz IEJlaQ== emhlbg== IGZ1Y2tpbg== IGRlY2Fk IHVuYmlhc2Vk YW1teQ== c3dpbmc= IHNtdWdnbGVk IGtpb3M= IFBFUlNPTg== IElucXVpc2l0b3I= IHNub3d5 IHNjcmFwaW5n IEJ1cmdlc3M= UHRy YWdhbWU= Ulc= IGRyb2lk IEx5cw== IENhc3NhbmRyYQ== SmFjb2I= IDM1NA== IHBhc3R1cmU= IGZyYW5j IFNjb3RjaA== IEVuZHM= IElHRg== ZGVmaW5pdGlvbg== IGh5c3RlcmljYWw= IEJyb3duZQ== Nzcx IG1vYmlsaXphdGlvbg== 5pU= aXF1ZW5lc3M= VGhvcg== IHNwZWFyaGVhZGVk IGVtYnJvaWxlZA== IGNvbmplY3R1cmU= anVkaWNpYWw= Q2hvaWNl IHBhcGVyYmFjaw== UGly IHJlY292ZXJz IFN1cmdl IFNob2d1bg== IFBlZGlhdHJpY3M= 44Gg IHN3ZWVwcw== IExhYm9yYXRvcmllcw== IFBhY2tz YWx1cw== YWRkaW4= IGhlYWRsaWdodHM= Z3Jh RXZpZGVuY2U= Q09MT1I= QWRtaW4= irE= IGNvbmNvY3Q= c3VmZmljaWVudA== IHVubWFya2Vk IHJpY2huZXNz IGRpc3NlcnRhdGlvbg== IHNlYXNvbmluZw== IGdpYg== IE1hZ2Vz dW5jdGlvbnM= IE5pZA== Y2hlYXQ= IFRNWg== Y2l0aXplbnM= IENhdGhvbGljaXNt bmI= IGRpc2VtYmFyaw== IFBST0dSQU0= YXF1ZXM= VHlsZXI= T3Jn IFNsYXk= IE5lcm8= IFRvd25zZW5k SU5UT04= dGVsZQ== IG1lc21lcg== OTAx IGZpcmViYWxs ZXZpZGVuY2U= YWZmaWxpYXRlZA== IEZyZW5jaG1hbg== IEF1Z3VzdGE= MDIx IHNsZWQ= IHJldXNlZA== IEltbXVuaXR5 IHdyZXN0bGU= YXNzZW1ibGVk TWFyaWE= IGd1bnNob3Rz IEJhcmJpZQ== IGNhbm5hYmlub2lkcw== IFRvYXN0 IEtpbmRlcg== SVJE IHJlanV2ZW4= IGdvcmU= IHJ1cHR1cmU= IGJyZWFjaGluZw== IENhcnRvb24= IDQ1NQ== IFBhbGVv NjE0 IHNwZWFycw== IEFtZXM= YWJ1cw== TWFkaXNvbg== R1JPVVA= IGFib3J0ZWQ= eWFo IGZlbG9u IGNhdXNhdGlvbg== IHByZXBhaWQ= IHBpdHRlZA== b3BsYW4= IFNoZWxsZXk= IFJ1c3Nv IFBhZ2Fu IHdpbGxmdWxseQ== IENhbmF2ZXI= dW5kcnVt IFNhbGFyeQ== IEFycGFpbw== cmVhZGVy IFJhdGlvbmFs IE92ZXJzZQ== IENhdXNlcw== ICou IHdvYg== S2VpdGg= IENvbnNlbnQ= bWFuYWM= Nzcz NjIz IGZhdGVmdWw= ZXRpbWVz IHNwaXJpdGVk IER5cw== IGhlZ2Vtb255 IGJveWNvdA== IEVucmlxdWU= ZW1vdXRo IHRpbWVsaW5lcw== IFNhaGFyYQ== IFJlbGF4 IFF1aW5jeQ== IExlc3NvbnM= IEVRVQ== U0VB Tks= IENvc3Rjbw== SW5jcmVhc2U= IG1vdGl2YXRpbmc= IENob25n YW1hcnU= IERpdmlkZQ== IHBlZGlncmVl IFRhc21hbmlh IFByZWx1ZGU= TGFz OTQw NTc0 IGNoYXU= IFNwaWVnZWw= dW5pYw== LS0+ IFBoaWxpcHM= IEthZmth IHVwaGVhdmFs IHNlbnRpbWVudGFs IHNheA== IEFraXJh c2VyaWFs TWF0cml4 IGVsZWN0aW5n IGNvbW1lbnRlcg== IE5lYnVsYQ== cGxldHM= IE5hZHU= IEFkcmVu IGVuc2hy IFJBTkQ= ZmluYW5jaWFs IENseWRl dXRoZXJmb3Jk IHNpZ25hZ2U= IGRlbGluZQ== IHBob3NwaGF0ZQ== cm92ZXJzaWFs ZmFzY2lzdA== IFZhbGw= IEJldGhsZWhlbQ== IGZvcnM= IGVuZ2xpc2g= U29saWQ= TmF0dXJl IHZh IEd1ZXN0cw== IHRhbnRhbA== IGF1dG9pbW11bmU= Ozs7Ozs7Ozs7Ozs7 IFRvdGFsbHk= IE92 IGRlZmVuY2Vz IENvY29udXQ= IHRyYW5xdWls IHBsb3k= IGZsYXZvdXJz IEZsYXNr 44Ko44Or IFdlc3Rvbg== IFZvbHZv ODcw IG1pY3JvcGhvbmVz dmVyYmFs UlBH IGlpaQ== O30= MDI4 IGhlYWRsaW5lZA== IHByaW1lZA== IGhvYXJk IFNoYWQ= IEVOVEVS IHRyaWFuZ3VsYXI= IGNhcGl0 bGlr IEFuY2llbnRz IGxhc2g= IGNvbnZvbA== IGNvbG9uZWw= ZW5lbXk= R3Jh IHB1YnM= dXR0ZXJz IGFzc2lnbnM= IFBlbmV0 IE1vbnN0cm91cw== IEJvd2Vu aWx2ZXI= SGF1bnRlZA== IERpbmc= c3RhcnRlZA== cGxpbg== IGNvbnRhbWluYW50cw== IERPRQ== ZmZlbg== IFRlY2huaWNpYW4= Unk= IHJvYmJlcnM= IGhvdGxpbmU= IEd1YXJkaW9sYQ== IEthdWZtYW4= cm93ZXI= IERyZXNkZW4= IEFscGluZQ== RWxm IGZtdA== IFNhcmQ= dXJzZXM= Z3B1 VW5peA== IHVuZXF1aXZvY2FsbHk= IENpdGl6ZW5zaGlw cXVhZA== bWlyZQ== IFN3ZWVuZXk= QmF0dGVyeQ== NjE1 IHBhbmNha2Vz IG9hdHM= TWFwcw== IENvbnRyYXN0 bWJ1ZHNtYW4= IEVQUw== IHN1YmNvbW1pdHRlZQ== IHNvdXJjaW5n IHNpemluZw== IEJ1ZmZlcg== IE1hbmRhdG9yeQ== IG1vZGVyYXRlcw== IFBhdHRlcm5z IENob2NvYm8= IFphbg== IFNUQVRFUw== IEp1ZGdpbmc= IEluaGVy Kjo= IGJpbA== IFllbg== IGV4aGlsYXI= b2xsb3dlcg== emVycw== IHNudWc= bWF4aW11bQ== IGRlc3BpY2FibGU= IFBBQ0s= IEFubmV4 IHNhcmNhc3RpYw== IGxhdGV4 IHRhbXA= IFNhbw== YmFo IFJldmVyZW5k IENoaW5hdG93bg== IEFVVA== ZG9jdW1lbnRlZA== IEdBQkE= IENhbmFhbg== INmF IGdvdmVybnM= cHJldg== RXNj IEVzdGltYXRlcw== T1NQ IGVuZGVhdm91cg== IENsb3Npbmc= b21ldGltZQ== ZXZlcnlvbmU= IHdvcnNlbg== IHNjYW5uZXJz IGRldmlhdGlvbnM= IFJvYm90aWNz IENvbXB0b24= IHNvcmNlcmVy IGVuZG9nZW5vdXM= IGVtdWxhdGlvbg== IFBpZXJjaW5n IEFwaA== IFNvY2tldA== IGJvdWxk IE9V IEJvcmRlcmxhbmRz IDE4NjM= R29yZG9u IFdUTw== IHJlc3RyaWN0cw== IG1vc2FpYw== IG1lbG9kaWVz 54Q= VGFy IGRpc3Nvbg== IFByb3ZpZGVz IC4uLi4uLg== YmVr RklY IGJyb29t YW5zaGlw RG9jdG9ycw== IG5lcmRz IFJlZ2lvbnM= bmFpc3NhbmNl IG1ldGU= IGNyZXB0 cGxpbmdz IGdpcmxmcmllbmRz a25pdA== aWdlbnQ= b3dl IHVzaGVyZWQ= IEJheg== TW9iaWw= NDM0 IFByZXNlbnRz b3JpZ2lu IGluc29tbmlh IEF1eA== NDM5 IENoaWxp aXJzY2g= R0FNRQ== IGdlc3RhdGlvbg== YWxnaWE= cm9taXNpbmc= JCw= Y3Jvdw== IEluc3BlY3Rpb24= YXRvbWlj UmVsYXRpb25z Sk9ITg== cm9tYW4= IENsb2Nrd29yaw== IEJha3I= bW9uZQ== TUVU IHRoaXJzdHk= IGJj IGZhY3VsdGllcw== UnVt IG51YW5jZQ== IERhcml1cw== cGxldGluZw== ZnRlcnM= ZXRjaHVw UmVnaXN0cmF0aW9u IEtF UmFo IHByZWZlcmVudGlhbA== IExhc2g= IEhI VmFsaWQ= IE5BVg== IHN0YXJ2ZQ== IEdvbmc= enluc2tp IEFjdHJlc3M= IHdpaw== IHVuYWNjb21wYW5pZWQ= bHZs QnJpZGU= QURT IENvbW1hbmRv IFZhdWdobg== V2FsbGV0 IGhvcHBpbmc= IFZpZQ== IGNhdmVhdHM= IGFsYXM= aWZsZWQ= YWJ1c2U= NjYx IGlibg== IGd1bA== IHJvYmJpbmc= dGls SUxB IG1pdGlnYXRpbmc= IGFwdGx5 IHR5cmFudA== IG1pZGRheQ== IEdpbG1vcmU= IERlY2tlcg== IMKnwqc= cGFydGlhbA== RXhhY3RseQ== IHBoZW5vdHlwZQ== IFsrXQ== IFBsZXg= IElwcw== dmVyc2lvbnM= IGVib29r IGNoaWM= Z3Jvc3M= IjoiIn0seyI= IFN1cnByaXNpbmdseQ== TW9yZ2Fu IHJlc2lkdWVz IENvbmZlZGVyYXRpb24= aW5mZWxk IGx5cg== bW9kZXJhdGU= IHBlcnBlbmRpY3VsYXI= Vks= IHN5bmNocm9uaXplZA== IHJlZnJlc2hlZA== IGFkb3Jl IFRvcm1lbnQ= b2xpbmE= IDI2MDA= SXRlbVRyYWNrZXI= IHBpZXM= IEZBVA== IFJIUA== MDQ4 IFJFU1A= IEJK YWxsb3dz UGFuZA== IHVud2VsY29tZQ== IFZvYw== IEJhc3RhcmQ= IE9X IExBUg== IEhlYWxlcg== RW52aXJvbm1lbnRhbA== IEtlbnlhbg== IFRyYW5jZQ== IFBhdHM= IGFsaWFzZXM= IEdhcmZpZWxk IGNhbXBhaWduZXI= IGFkdmFuY2VtZW50cw== IE9raW5hd2E= IENvaA== b3dza3k= IHN0YXJ2ZWQ= IHNpemVhYmxl IDotKQ== IG1STkE= IHN1c3BlbnNpb25z aXN0YXI= U2NvdGxhbmQ= UHJpbg== LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t IDUwMg== IHRlYXNwb29ucw== IDEwNTA= IGNvZXJjaXZl IE1hc29uaWM= ZWRkZWQ= IFBhc3Nlbmdlcg== IGxhdHQ= IGJyYWNlcw== IFN0ZWFs IE5ZVA== IEthdHM= IENlbGVzdA== YWV6 VHU= IENvdWx0ZXI= 8J+Y RmxpY2ty IFdpbG1pbmd0b24= aXRocw== Kys7 IHZlbmRpbmc= IG5lZ3Jv IFBoaQ== IFllbGxvd3N0b25l Q2FsbGJhY2s= IHNoYW1wb28= IFNoYWRlcw== d2F0 IHN1cGVyaHVtYW4= IHJpZGljdWxlZA== IGhvbGllc3Q= b21ibw== IGludGVybnM= IGhvbmU= IFBhcmFndQ== VVJJ IGRhbmdsaW5n 44K7 c292 aWN0aW9uYWw= YXZhaWxhYmlsaXR5 IHJldm9jYXRpb24= IGRvdw== aW5pYw== IFRIRUlS IGlzbw== IG91dGluZ3M= IExldGhhbA== ICkpKQ== IGluYWNjdXI= IG91dGxhbmRpc2g= IGFudXM= bGV0aWNv aWRvbg== bG9s IHVucmVndWxhdGVk IHN1Y2N1bWJlZA== IGN1ZmY= IFdhc3RlbGFuZA== bGV0YWw= IHN1YnN0cg== IGNvZmZlcnM= IGF1dG9tYWtlcnM= b3Zp IFh1ZQ== IERheXRvbmE= IGphcnJpbmc= IGZ1bWVz IGRpc2JhbmRlZA== emlr aXR0b24= IHN0cmlraW5nbHk= IHNwb3Jlcw== QWRhcHRlcg== Lik6 IEx5bmRvbg== aXZhbHJ5 IG9yYWxseQ== IHR1bXVsdHVvdXM= IGRpc3BsZWFzdXJl IGNvbmVz b3JyZWN0 IGFwcGVhc2U= IGRlcmJ5 IFRyaXBvbGk= IEFsZXNz IHBva2Vk IEd1aWx0eQ== dlA= RW5vdWdo IG9yaWdpbmFscw== Njk5 IHJhYmJp IHByb3ZlcmJpYWw= IHBvc3Rwb25l ZWxvcGU= IE1pc3R5 IHN0YWZmZWQ= IFVuZW1wbG95bWVudA== cmVkaXRhcnk= IGRpbGlnZW50 cmVjb21t bWVhc3VyZXM= YXNpbg== ODI1 IHBvbmRz IG1tb2w= IFNBUg== IENBUkU= IDM3MQ== IGNsZW5jaGVk IENvcnNhaXI= IGNhcmljYXR1cmU= em4= YXR0YWNo IFNjaHJv c3BlYWs= cGFpbnRlZA== IFN1Yw== IEVOVA== IGNlbGx1bA== IFBhaWQ= ZGlhZ24= V0hFUkU= IHRleHRlZA== QmFybg== IHJldHJhY3RlZA== IFJlZmVycmVk U2F2 IHVwa2VlcA== IHdvcmtwbGFjZXM= IFRva2Vucw== IGFtcGxpZnk= Y2xpbmljYWw= IG11bHRpYw== bWJlcmc= IGNvbnZvbHV0ZWQ= UmVnaW9u NTY1 IFRvcGlj IHNuYWls IHNhbGluZQ== IGluc3VycmVjdGlvbg== IFBldHI= Zm9ydHM= QkFU IE5hdmFqbw== IHJ1ZGltZW50YXJ5 IExha3No T05ET04= TWVhc3VyZQ== IHRyYW5zZm9ybWVy IEdvZGRhcmQ= IGNvaW5jaWRlcw== aXJpbg== UmV4 IEJvaw== cXVpdA== IHNob3RndW5z IHByb2xldGFyaWFu IHNjb3Jw IEFkYQ== NTE0 IHNsYW5kZXI= cmVjb3JkZWQ= IGVtYmVsbA== cmlzb21l IGFwb2xvZ2l6aW5n IE11bGNhaXI= IEdpYnJhbHRhcg== Q2xh IGFsbG90 IEF0dGVudGlvbg== IDQzMw== bGVhdmU= IHdoaW5l IElzc2E= IEZhdXN0 IEJhcnJvbg== aGVueQ== IHZpY3RpbWl6ZWQ= SmV3cw== IG51cnR1cmluZw== ZXR0ZWw= V2luZ2Vk IFN1YnRsZQ== IGZsYXZvcmZ1bA== IFJlcHM= ZW5nZWQ= Y2FsbGJhY2s= IGRpcmVjdGlvbmFs IGNsYXNw IERpcmVjdGlvbnM= cGxhbmV0 aWN1bHR1cmU= SGVscGVy aWNpb24= YWNpYQ== IOelng== IHN1cmdlcw== IGNhbm9l IFByZW1pZXJzaGlw YmVlbg== IGRlZmllZA== IFRyb29wZXI= IHRyaXBvZA== IGdhc3A= IEV1cGg= IEFkcw== dmVybmlnaHQ= aGlnaGx5 Um9sZQ== IGVudGFuZ2xlZA== IFplaXQ= NjE4 IFJ1c3R5 IGhhdmVucw== IFZhdWdoYW4= SEFFTA== IFNFUlZJQ0U= Lyw= IHN0cmlja2Vu IGRlbHVzaW9ucw== IGJpcw== IEhhZg== IGdyYXRpZmljYXRpb24= IGVudGljaW5n VU5DSA== QWRhbXM= IE9MRUQ= IEJlZXRsZQ== IDE4OTk= IFNPRlRXQVJF YXRlZ29y Vkw= IFRvdGVt IEdhdG9ycw== QVRVUkVT IGltcGVkYW5jZQ== UmVnaXN0ZXJlZA== IENhcnk= IEFlcmlhbA== b25uZQ== ZW5pdW0= IGRyZWQ= IEJlZw== IGNvbmN1cnJlbnRseQ== IHN1cGVycG93ZXI= IFhhbg== amV3 aW1lc3Rlcg== IERpY2tpbnNvbg== 4pSB Rmxh IHByZWU= IFJvbGxpbnM= qbbm IGRlbm9taW5hdGlvbg== IExhbmE= NTE2 IGluY2l0aW5n c2NyaWJlZA== anVyaWVz IFdvbmRlcnM= YXBwcm94aW1hdGVseQ== IHN1c3BlbmRpbmc= IG1vdW50YWlub3Vz IExhdWdo b2lkYWw= TnM= RGV0ZWN0 KT0= IEx1dGhvcg== IFNjaHdhcnplbmVnZ2Vy IE11bGxlcg== IERldmk= ZWN5Y2xl SmFy NjEz IExvbmdo QmFo IFNQT1JUUw== bnc= IHJlZmluZW1lbnQ= IHdhdGVyd2F5cw== IGRpbmVy QmxhZGU= Njgz RmFj IGluaXRpYWxz IHJvZw== IHBhcmFub3JtYWw= QlVU IFso IFN3YW5zb24= IE1lc2g= 4pas SW1wcm92ZQ== IFJhZGlhdGlvbg== IEVzdGhlcg== IEVzaw== IEFseQ== aWt5 IGlycmFk IEJ1Y2tpbmdoYW0= IHJlZmlsbA== IC5f UmVwZQ== Q09OQ0xVUw== IGRpZmZlcmVudGlhdGVk IGNoaXJvcA== IEF0a2lucw== UGF0dGVybg== IGV4Y2lzZQ== IGNhYmFs TlNB IFNUQQ== IFNJTA== IFBhcmFseQ== IHJ5ZQ== IEhvd2VsbA== IENvdW50ZG93bg== bmVzc2Vz YWx5c2Vk IHJlc2l6ZQ== 44K9 IGJ1ZGdldGFyeQ== IFN0cmFz d2FuZw== IGFwaWVjZQ== IHByZWNpbmN0cw== IHBlYWNo IHNreWxpbmU= IDM1Mw== cG9wdWxhcg== QXBwZWFyYW5jZXM= IE1lY2hhbmljcw== IERldk9ubGluZQ== U3VsbGl2YW4= WmVu IHB1 b3BvbGlz NTQ0 IGRlZm9ybQ== IGNvdW50ZXJhY3Q= IExhbmdl IDQxNw== Q29uc29sZQ== Nzc0 IG5vZGRpbmc= IHBvcHVsaXNt IGhlcA== IGNvdW5zZWxsaW5n Y29tcGxpYW5jZQ== VUZG IHVuZGVuaWFibHk= IHJhaWxpbmc= IEhvcm93aXR6 IFNpbW9uZQ== IEJ1bmdpZQ== IGFr IFRhbGtz eGZm Zmxha2U= Q3Jhc2g= IHN3ZWF0eQ== IGJhbnF1ZXQ= IE9GRklD IGludmVudGl2ZQ== IGFzdHJvbm9tZXI= IFN0YW1mb3Jk IFNjYXJl IEdSRUVO b2xpY2l0ZWQ= IHJ1c2hlcg== IGNlbnRyaXN0 aWdodGluZw== IHN1YmNsYXNz IGRpc2F2 IGRlZnVuZA== IE5hbnRv b2NpYXRl bWFzdA== IHBhY2lm IG1lbmQ= ZWVycw== aW1taWdyYXRpb24= RVNTSU9O IG51bWJlcmluZw== IGxhdWdoYWJsZQ== IEVuZGVk dmlhdGlvbg== ZW1hcms= UGl0dA== IG1ldGljdWxvdXM= IExG IGNvbmdyYXR1bGF0ZWQ= IEJpcmNo IHN3YXllZA== IHNlbWlmaW5hbHM= IGh1bWFua2luZA== bWF0dGVy IEVxdWlw b3BhdXNhbA== U2FpZA== IExheW91dA== IHZvaWNpbmc= IHRodWc= IHBvcm5vZ3JhcGhpYw== SVBT IG1vYW5pbmc= IGdyaWV2YW5jZQ== IGNvbmZlc3Npb25z ZXNjYWw= VEVYVFVSRQ== QXV0aGVudA== b3NhdXJ1cw== UHVyY2hhc2U= IHJlbGVnYXRpb24= YWx0ZXI= IMKgwqA= IHJpZGRsZWQ= IG9ncmU= IExvd2VsbA== T2NjdXA= RWF0 IEh5ZGVy IEFkdmlzZXI= Q29tbWVyY2U= SHVudA== IE9ydGg= IENvbXBldGl0aXZl IENMQQ== Q0RD IHNhbGFkcw== Rmxl IGluZHVzdHJpYWxpemVk YCw= IE9XTg== IGJlY2s= IFBhcnRpY3VsYXJseQ== b3VidA== IG1N IEh1c3NhaW4= IENoZW5uYWk= IDkyMA== IGFwcG9pbnRpbmc= IEN1bGxlbg== LCwsLCwsLCw= IHBvcmVz dmVyaWZpZWQ= IGJpb2NoZW1pY2Fs ZW1hdGU= IGNvd2FyZGx5 IEhlbHNpbmtp IEV0aGlvcGlhbg== U09VUkNF RVJD ZXN0cm8= IGJpb3RlY2g= IFNvdXI= IGJyZXdlcg== Qmxvb21iZXJn IGludGVuc2lmeQ== R2xhc3M= YW5jbw== IEZEUg== Z3JlU1FM IEZpcmVz qbbmpbU= ZWNv MTAwMQ== IEhvbWVsZXNz IGluc3RhbnRhbmVvdXM= IEhhc3Rl aWdlbA== RGlhbW9uZA== IHBhdmluZw== IGxhbmRmaWxs IGRhZHM= aG91bg== Ol0= IGluY2VuZGlhcnk= IExpdmluZ3N0b24= IEhpbGJlcnQ= IENoZWNrcw== c3R5bGVz aW5hdG9ycw== IENsaXZl cGhyaW5l IGNoaW1wYW56ZWVz IHBhbGw= IEpN IEFhZGhhYXI= 8J0= IGFjaGlldmFibGU= ZGlzYWJsZWQ= UEVU T09PT09PT08= TW90 IGludGFuZ2libGU= IGJhbGxldA== IFdlYnM= IEVzdGltYXRlZA== RWZmZWN0cw== IGJhaWxlZA== Sm9zaHVh IHR1cmJ1bGVuY2U= IG9jY3VwYW50 IERheWxpZ2h0 IDM2MQ== bWVldA== IHN0YXRpY2FsbHk= IG9ubG9vaw== IGtp aWxsZWdhbA== IHZlbHZldA== IGRlaHlkcmF0aW9u IGFjcXVpZXM= IFJleg== YWt1cmE= IFVwdG9u YXRybw== IGluY29tcHJlaGVuc2libGU= IGJhY2tkb29y IFJoaW5v NzI3 IG1hdGhz KSs= IGhlcmVzeQ== IGRm IFJvY2hl IEx5ZGlh IHBhbmNyZWF0 cmVwbHk= YXJyZWxs IHNvbGljaXRhdGlvbg== IGNpcmNhZGlhbg== QklQ IGZvcmF5 IGNyeXB0aWM= aXp1 aW1lbw== IFRvbWF0bw== IEhvbXM= ZXhhbWluYXRpb24= IHF1YXJyeQ== IFZhbGlhbnQ= IEplcmljaG8= IElOQ0xVRA== IDE4NDA= NTE5 IHJlc2lzdHM= IHNuYXBzaG90cw== IFNwdXI= IEFudGlxdQ== TG9naW4= IGJlc3RzZWxsaW5n IGFudGlj IFN1dGhlcmxhbmQ= 44Ki44Or IH4v IFBhcm0= 6IM= UGFnZXM= aW50ZW5zaXR5 IGltbW9iaWw= IDE4NjU= enpv IG5pZnR5 IGZlbnRhbnls IFByZXNlcnZhdGlvbg== b3BoZW4= IGRhcnRz IERpbm9zYXVy cG9pbnRlcnM= IFJpdGU= c3VnZ2VzdA== YXdhcmVuZXNz IFNoZXJpZGFu IHN0YW5jZXM= IHNvcmNlcnk= IHBlcmp1cnk= IE5pa29sYQ== aWV2ZXI= IGZpYW5jZQ== IEpvcmRhbmlhbg== IEJhbGxvb24= IG5hYg== IGti IGh1bWFuaXRpZXM= IFRhbmFrYQ== aGlsbGFyeQ== IGNvbnN1bHRhbmN5 IFp1Yg== IHJlbWlzc2lvbg== IGNvbmZpZA== Q0hR IEZ1Zw== IGltcHJvdmlz WWVw L18= IHVud2lsbGluZ25lc3M= IHBvcnRmb2xpb3M= MDU1 IEluc3RydWN0b3I= YWltYW4= IGNsYWltYW50cw== TWJwcw== IEJ5ZQ== cmVjZWl2ZWQ= VHdlZXQ= IGluZGVtbg== cml6 YW1hcmE= TmF0 IGV2YWx1YXRlcw== IEx1cg== ZXBhZA== Rk9Y IFRocm8= IHJ1c3R5 IGJlZHJvY2s= IE9wcmFo SkI= IG1hbmlwdWxhdGl2ZQ== IHdpbGxmdWw= IHJlbGFwc2U= IGV4dGFudA== VGhlbWU= U2Vuc29y IFN0YWJpbGl0eQ== Z292ZXJu IHBvcHB5 IGtuYWNr IGluc3VsYXRlZA== IFRpbGU= IEV4dHJlbQ== IHVudG9sZA== IGNvbnZlcmdl IHJlZnVlbA== aWdyb3Vw IGRpc3RvcnRpb25z IHJhdmFnZWQ= IG1lY2hhbmljYWxseQ== IFJlaWxseQ== IE5vc2U= IEluY2FybmF0aW9u IEJlY2t5 YWJibGluZw== IHRhY28= IHJha2U= IG1lbGFuY2hvbHk= IGlsbHVzdHJpb3Vz IERhcnRtb3V0aA== R3VpZGU= IFJhemVy IEJlbno= VWx0aW1hdGU= IFN1cnByaXNl IHBhZ2VhbnQ= b2ZmZXI= V2hvZXZlcg== IHdpc2Vy IGNoZW1pc3Q= IEhFTEw= IEJ1bGs= IHBsdXRvbml1bQ== IENPVkVS 1rw= ZmFpbGVk IHRpcmVsZXNzbHk= IGluZmVydGlsaXR5 IFRyaWRlbnQ= IFNob3d0aW1l IENpdg== VmljZQ== cmVxdWlyZXM= aXR0YW5jZQ== IHVuY29udHJvbGxlZA== aW50ZXJlc3Rpbmc= NTYx IGlubm92YXRl YXRlZ2lj TGll IFNlbGxpbmc= VWw= IHNhdmlvcg== IFRvc2g= IHN3YXN0 UEFTUw== IHJpbms= IGNhcmRpbw== IElybw== dWRp IHZhbnRhZ2U= IHZhbnM= IE5pw7Fv Kz0= IHByb3BhZ2F0ZQ== PD8= IG1ldGhvZG9sb2dpY2Fs MjA0Mzk= IHRyaWdseWNlcg== IGluZ3JhaW5lZA== IEFubm90YXRpb25z YXJyYW50ZWQ= NjE3 IFNvZGl1bQ== IEFBQw== dGVjaG5pY2Fs bXVsdGlwbA== IDM3Mw== 5Ys= IGRlY2lzaXZlbHk= IGJvb3N0ZXJz IGRlc3NlcnRz IEdyZW5hZGU= IHRlc3RpZnlpbmc= IFNjdWxseQ== SURz IGxvY2tkb3du IFNjaGVy IFLDqQ== IFdoaXRtYW4= IFJhbXNheQ== cmVtb3Rl IGhpa2Vycw== IEh5dW5kYWk= IGNvbnNjaWVudGlvdXM= IGNsZXJpY3M= IFNpYmVyaWFu dXRp aXNidXJ5 IHJlbGF5ZWQ= IHF1YXJ0eg== IENCSQ== c2Vla2Vycw== dWxsYQ== IHdlbGRpbmc= IFNoYWw= YmxlYWNoZXI= VGFp IFNhbXNvbg== IHR1bWJsZQ== IEludmVzdG9y IHN1YmNvbnRyYWN0 IFNoaW5yYQ== b3dpY3o= amFuZHJv ZGFk IHRlcm1pbmF0aW5n IE5ldXJhbA== 5Luj IGxlYWthZ2U= IE1pZGxhbmRz IENhdWNhc3Vz 7ZU= Y2l0 bGxhbg== aXZhYmx5 IEFsYmlvbg== IDQ1Nw== IHJlZ2lzdHJhdGlvbnM= IGNvbXJhZGU= IGNsaXBib2FyZA== MDQ3 IGRpc2NvdXJhZ2luZw== IE9vcHM= QWRhcHQ= IGVtcGF0aA== bnY= IFBST1Q= IERvbm4= IFBheA== IEJheWVy dGlz U3F1YXJl IGZvb3RwcmludHM= cGFydGljaXA= IENoaWxlYW4= QnJlbmQ= aW5kdWNpbmc= TWFnbg== IGNsdWJob3VzZQ== IE1hZ251bQ== IGVuY2FtcA== IEV0aG5pYw== dWNoYQ== ZXJleQ== IHdhdGVyZWQ= IENhbGFpcw== IGNvbXBsZXhpb24= IHNlY3Rz IHJlbnRlcnM= IGJyYXM= b8SfYW4= VGltZW91dA== TWFuYWdlbWVudA== IGluZm9ncmFwaGlj UG9rZW1vbg== Q2xhcg== IGxvY2FsaXR5 IGZsb3Jh YXNlbA== UG9udA== IHBvcHVsYXRl IE9uZw== IHN1YnNpc3RlbmNl IGF1Y3Rpb25z IE1jQXVsaWZmZQ== IExPT0s= YnJpbmdlcg== IHRpdGFu IG1hbmlmb2xk IOKXjw== IGNhbGlicmF0ZWQ= IGNhbGlwaGF0ZQ== IFNIRQ== IENvbW1pc3Npb25lcnM= Y2VpdmFibGU= amM= V2lubmVy NTI0 IGNvbmRvbmU= T3RoZXJ3aXNl IHBpbGluZw== IGVtYm9keQ== IENyaW1lYW4= dXRpY3M= IEV4aGliaXRpb24= IDQyNg== ZWVyaW5n IHZ5aW5n IEhVR0U= Kj0t IHByaW5jaXBsZWQ= 4KY= IHF1aXJrcw== IEVkaXRvcnM= cHV0aW5n R0VT IEZUQQ== 4KS+ YWRkb24= IEhBTQ== IEZyaWV6YQ== V29tYW4= LiQ= IGNyaWI= IEhlcm9k IHRpbWVycw== IFNwYWNlcw== IE1hY2ludG9zaA== YXRha2E= IGdsaWRl IHNtZWxsaW5n IEJBTA== IHVuc3U= IGNvbmRvcw== IGJpY3ljbA== IFJldml2YWw= NTUz IGp1Z2dsaW5n SHVn IEthcmRhc2hpYW4= IEJhbGthbnM= bXVsdGlwbGU= IG51dHJpdGlvdXM= b2NyeQ== MTkwMA== IGludGVncmF0ZXM= IGFkam9pbmluZw== IEZvbGRlcg== cm9sbG1lbnQ= dmVuaWVudA== IHViZXI= eWk= IHdoaWZm IEp1dmVu IEJvcm91Z2g= bmV0dGU= IGJpbGluZ3VhbA== IFNwYXJrcw== cGh0aGFs bWFudWZhY3Q= IHRvdXRpbmc= IFBISQ== S2VlZmU= UmV3YXJk IGluZmFsbA== IFRlbXBlcg== dHlwaWNhbGx5 IE5pa29s IHJlZ3VsYXJz IHBzZXVkb255bQ== IGV4aGliaXRpb25z IGJsYXN0ZXI= IDQwOQ== d2FybWluZw== IHJldmVyYmVy IHJlY2lwcm9jYWw= IDY3MA== aXBpZW50 YmV0dA== IEJlZ2lucw== IGl0Y2hpbmc= IFBoYXI= QXNzdW1pbmc= IGVtaXR0aW5n IE1MRw== IGJpcnRocGxhY2U= IHRhdW50 IEx1ZmZ5 IEFtaXQ= IGNpcmNsZWQ= IE5vc3Q= ZW5uZXR0 IGRlZm9yZXN0YXRpb24= IEhpc3RvcmljYWxseQ== IEV2ZXJ5ZGF5 IG92ZXJ0YWtl Nzky IG51bg== IEx1Y2lh IGFjY29tcGFuaWVz IFNlZWtpbmc= IFRyYXNo YW5pc20= Um9ndWU= IG5vcnRod2VzdGVybg== IFN1cHBsZW1lbnRhbA== IE5ZVQ== IEZSSQ== IFNhdGlzZg== eGVz NTE3 IHJlYXNzdXJlZA== IHNwb3JhZGlj IDcwMQ== IG1lZGlhbA== IGNhbm5hYmlub2lk IGJhcmJhcmlj IGVwaXM= IEV4cGxvc2l2ZQ== IERvdWdo IHVuc29sdmVk U3VwcG9ydGVk IGFja25vd2xlZGdtZW50 c3Bhd24= IGtpdGNoZW5z IC09 dGFsa2luZw== aWNpc3Q= IFBlZ2FzdXM= IFBTVQ== IHBob3Rvbg== IEF1dGhlbnRpY2F0aW9u Ukc= QCMm NzYy IENsYWly IGRpYXBlcg== IGJyaXN0 IFByb3NlY3V0b3Jz IEplbQ== NjI4 IEV2ZXJ5d2hlcmU= IEplYW5uZQ== ZXF1YWxpdHk= 44Op44Oz b2JqZWN0cw== IFBlbGljYW5z IDM5Mg== IGJsdQ== Ynlz IEFnbw== IGluc3RydWN0aW9uYWw= IGRpc2NyaW1pbmF0aW5n IFRSQU4= IENvcm5lbA== YWdvcw== IHR5cmU= IGFzcGlyYXRpb24= IEJyaWRnZXdhdGVy Ijot ISIu IEVucw== IENvY28= UGll IGRldGFjaA== IENvdWNo IHBoeXNpcXVl IE9jY3VwYXRpb25z b3Njb3BpYw== ZW5vdWdo QnV6eg== QXBwZWFyYW5jZQ== WVA= IHJhY2Vy IGNvbXBsaWNpdHk= cnBt VG95 IGludGVycnVwdHM= IENhdGFseXN0 IHV0aWxpdGFyaWFu aW1wYWN0 IHNwYWdoZXR0aQ== IHBvcm91cw== IGVzdGVlbWVk IGluY2luZXI= IElPQw== NzQ4 IGVzcHJlc3Nv IFNtaWxl YWJpbGlh NjM1 IG1hdGhlbWF0aWNpYW4= IDQyNA== IEtM IEhJUA== IG92ZXJoZWFyZA== IFR1ZA== IFRlYw== IHF1aXp6 IGZsYXR0ZXJpbmc= IGNvbm4= 4oCO IGF0dGFjaGVz IFJPUw== IEFDUw== IHRjcA== IFNoYW1l c2tpcA== cmVzcGVjdGVk IFRyaW5pZGFk Z3JhaW4= IGZvb3Rob2xk IFVuY2hhcnRlZA== IEp1bGlv emw= YXZvcmVk IEFueGlldHk= ZXJyb3Jz IENlbnRhdXJp aXRzY2g= RGFkZHk= IGNsdXRjaGluZw== IEltcGxlbWVudA== IEd1dGllcnJleg== IDc2MA== IHRlbGVwb3J0YXRpb24= ZW5kcmE= IHJldmVyc2libGU= c3Ryb3M= QWR2ZW50dXJl MDgz IGxpYmVyYXRpbmc= IGFzcGhhbHQ= IFNwZW5k QVJEUw== aW1zeQ== UFJFUw== IEVtZXJnaW5n IHdpbGRmaXJlcw== IHRlY2hub2xvZ2ljYWxseQ== IGVtaXRz IEFSVElDTEU= IGlycmVndWxhcml0aWVz IGNoZXJpc2g= 54mI IHN0aW5r IFJvc3Q= RWNvbm9taWM= IGNvdWdoaW5n IE1jQ2Fubg== cHJvcGVydGllcw== aWxhbnRybw== IHJlbmVnb3Rp VHJhbnNsYXRpb24= IGlucXVlc3Q= IEdyYXBl b290ZXJz Z3Vp IFN3b3Jkc21hbg== YWNlYWU= aGl0dGluZw== IHJj IGV4ZXJ0ZWQ= IFNBUA== aXRlbnQ= IHBlcmlsb3Vz IG9ic2N1cml0eQ== IGFzc2Fzc2luYXRl IGFib3JpZ2luYWw= IHJlc2N1aW5n IFNoYXR0ZXJlZA== bG9ja2luZw== YWxsaW9u Q2hhbmdpbmc= IEhhcnJpbmd0b24= IEJvcmQ= IEFmZ2hhbnM= SmFtaWU= YXJldHo= IEF1Z3VzdHVz IDM4Ng== ODMw IGpvZw== b2tpbmdseQ== VHJpZ2dlcg== IEhPUg== U3RhdGlzdGljcw== IHZpZXdlcnNoaXA= IGFkZGl0aXZlcw== aHVy IG1heGltaXppbmc= IFJvdmU= IExvdWll IEJ1Y2tldA== IENIUklTVA== b3VzZWw= IHN0cmVha3M= aXJ0ZWQ= IHRlcnQ= IGNvbG9uaWFsaXNt IGJ1cnlpbmc= eWs= Q29uZGl0aW9u IERQUks= QnlJZA== NzUx 4pe8 IHdvcnJpc29tZQ== IHZvY2F0aW9uYWw= c2xpY2U= IHNhaWxz IENvcnJlY3Rpb25hbA== OTU0 IHR1bA== S2lk bHVzdGVy IGZhbWlsaWFs IFNwaXQ= IEVwaXNjb3BhbA== U3BlY2lmaWNhbGx5 IFZvbGNhbm8= cnVucw== cXM= IHZldHRlZA== IGNyYW1tZWQ= dHJvcA== aGVyZXI= VGhhbmtmdWxseQ== IHBlcmN1c3Npb24= IG9yYW5nZXM= IHJvdW5kdXA= IDQ5OQ== eGlvdXM= Q2hhcmFjdGVycw== IFppb25pc20= IFJhbw== w5vDmw== V0Y= IHVuaW50ZW50aW9uYWw= T05FWQ== R3JhYg== Q29tbWVyY2lhbA== IGdsdXRhbWF0ZQ== IE1jS2VubmE= cnVjaWF0aW5n bmluZ3Rvbg== aWh1 Q2hhbg== IFN3YXA= IGxlYWZsZXRz IGZ1bmN0aW9uYWxseQ== ZXJvdXM= RmFybQ== IGNhbG9yaWM= IExpdGVyYWxseQ== Y29uY2VydA== IHNoZW5hbg== IHJlcGFpZA== ZXllcw== IGJhc2hpbmc= IEdvcmdl IGNvbGxhYm9yYXRpb25z IHVuYWNjb3VudA== aXRjaGll IHRlYW13b3Jr cHBlbGlu IHBpcGluZw== IG1pbmNlZA== IGRpYW0= cmllZw== IG1hc2NhcmE= IHN1Y2tlcg== IE1vb25z QXBwcw== IFBlY2s= IHBlcnY= IEZsb2F0 b2xleQ== IE5pc2g= aW1pemU= IGFyb21hdGlj dWlu ZW5kaXNo IS8= IEJpY3ljbGU= IEFTSUM= aWxlZ2Vk IFF1YWRybw== aW9zeW4= IGxvY2tvdXQ= IFdpbms= U1BFQw== QXR0ZW1wdHM= IHNlZWRlZA== cmVkbw== aWFzaXM= IHNuYWc= 44OV44Kp 44K2 IGdyb3VuZGluZw== IHJlbGlldmVy IGZyaXZvbG91cw== IEdpZnRz IEZhY2Vz RXNwZWNpYWxseQ== IG1pY3JvYmlvbWU= aW1hZw== IFNjaGw= IFBsZXM= IEJsZWFjaA== IElyd2lu IEVhdG9u IERpc2NpcGxl IG11bHRpcGxpY2F0aW9u IGNvZXJjZWQ= IDQxOQ== c3Ro RXZpbA== Qm9tYg== IGV4b3Jj IHN0YWdnZXJlZA== TEVTUw== IGluZXJ0aWE= IEVESVQ= IGdvYg== VHJhZGl0aW9uYWw= IGNsYXNzeQ== TGVhcnk= IFBBR0U= eXJz IHRyYW5zcG9ydGVy IG1hdHVyZWQ= IGhpamFi IGJpb21l V2hlcmVhcw== IGV4dGVybWluYXRpb24= IFR1ZXM= IFRha2VydQ== IEF1ZHJleQ== ZXJpYWw= IEFkZW4= YWZmbGVz IG5hcmNpc3Npc3RpYw== IEJhaXJk VVRG SXJl IENvbm5pZQ== Q2hhbXA= IHdoaXNwZXJpbmc= IEhhdHQ= REs= IGRpc2luZmVjdA== IGRlZHVjdGVk IHBhcnRha2U= IGRvd25ncmFkZQ== IEVzcG9ydHM= IENvbnRpbnVpbmc= IGRlbW9jcmF0aWNhbGx5 aWNyb2JpYWw= aXR0YQ== IGxpbWVzdG9uZQ== IGV4ZW1wdGVk IEZyZW56eQ== SGVybQ== NzI4 IGZsZWRnbGluZw== TWV0YQ== NzY1NjE= Njkz JTo= d2FrZQ== NTI2 IERpc2NpcGxpbmU= IHZpcmdpbml0eQ== IExlZ2lvbnM= IEZyYW5raWU= aW50ZW50 IHJlc3Ryb29tcw== IFJvdXRlcg== ZGFx IG9iamVjdGlvbmFibGU= 4oaR d2Fyaw== IFJhaHVs Z2Fpbg== YWN0aXZhdGlvbg== YWJzb2x1dGU= IEFjY2Vzc2Vk IDI0MDA= b2dnbGVz IHNlY29uZGx5 IERFRkVOU0U= IHBvc3RhZ2U= d3JhcHBlcg== c2hhcnA= NzI5 IGNvbW11bmljYXRlcw== IGFkZG9u IE1pbGl0aWE= SG9uZw== IHNsdW1wZWQ= IEpQRUc= IEljYXI= YWRpc2g= Njgx IG1hamVzdHk= IFdvbGZnYW5n IEVsYXN0aWM= dXBlcg== IHZpeg== IHVuY29uc2Npb3VzbHk= IFNURA== IFNhc3M= IGZsb3dlcmluZw== IEhlbGlj IERyYXBlcg== IEFtYXRldXI= IG1hbnVyZQ== IGRpc2luZ2Vu IExlaQ== YnJpbmc= OTQ5 IGluaGliaXRlZA== IGhlYWRxdWFydGVyZWQ= IGVuaWdtYXRpYw== 77+977+977+9 IHJlZHJlc3M= Ukg= IHJhdHRsZWQ= IGRpY3Rpb24= bGlv IFRCQQ== IFNOQVA= Q2FsbGluZw== IGZhc2Npc3Rz IERvdmU= aWV3aWN6 MDM2 IGNvYXN0cw== IFJlY3Q= ICld TG90 NjI5 IFNFTQ== IFBldGVyc2Vu IEV4cGxhaW4= IEJvYXJkcw== IEJlem9z IEpvdXJuYWxz IDIwMjQ= cGFyc2Vy IG1pc3RydXN0 IGdyYXRl IExvY2tlZA== Ym9h U2FpbnQ= Z2FtaW5n IHZvd2Vs aW5hdGVseQ== Ymxvdw== QWxsYWg= IHVubWF0Y2hlZA== IGJvcmRlcmluZw== IEV4cGVuZA== bnI= T3JhY2xl cm91Y2g= IGNvbnRpZ3VvdXM= YWN1cw== IGRpc3RyYXVnaHQ= NTgx IGFuYXRvbWljYWw= T1g= YXBpeGVs ODMz IFBMVVM= IHJlc3VzYw== IGFiaWRpbmc= NTcz IHZhY2FuY2llcw== RW1pbHk= IGh5cG90aGFs IFdlcm5lcg== IFdlZQ== IERKcw== NTEz IHdpdGNoY3JhZnQ= IGFjdXB1bmN0dXJl ZW50YXJ5 YmVuZWZpdA== UHJvZHVjdHM= IFBTUA== IE1QRw== IEppbm4= IEphcnJldHQ= IDQ0NQ== IEltYWdpbmc= IFB5dGg= RmluaXNo IHRleA== IGp1dmVuaWxlcw== IGhlcm9pc20= IGRvdWJ0bGVzcw== IEFraQ== IFRlbmQ= IFBhdHJpYXJjaA== IGJpdHRlcnM= IFRlbGVjb21tdW5pY2F0aW9ucw== aXRhdGl2ZWx5 YWduYQ== IHJn IFNPTEQ= IGNvbXB1bHNpb24= IE5hc2E= IEthdGhyeW4= IG1pbGxpb25haXJlcw== IGludHJpbnNpY2FsbHk= IGJvbHN0ZXJlZA== dGltZW91dA== Zmxv IHR1dG9y cG91cg== U3RhdGVtZW50 IHsq IFJ1ZG9scGg= IEtpbWJlcmx5 cm9nZW5z YWRpcQ== XSs= IGluZGlnbmF0aW9u IGZyYWN0dXJpbmc= IFJlbGVhc2Vz IEdyYWlu cHJvdGVpbg== TGFnbw== IHZhY2F0aW9ucw== IGJvb3RlZA== IFRIUkVF IEhH b3Jlc2NlbmNl IHRm IHNvYXI= aW9zeW5jcg== IGdsYW5jZXM= IFNwb29u IEp1cnk= IENvd2JveQ== IGNyZWF0aXZlbHk= SGlnaGVy IHNvbGljaXRvcg== IGhhd2s= YWNpbw== ODk2 IHN1cGVyZmx1 IGJvbWJzaGVsbA== Y3R1cmU= IGJyb2tlcmFnZQ== IHJhaWRpbmc= IGZyZW5jaA== IGFuZ2xlZA== VHJhbnNhY3Rpb24= IEdlbm9jaWRl dXBl IEhhaXRpYW4= NTcy ITo= IHVud2l0dGluZ2x5 aXRlcmF0b3I= c2Nyb2xs IHRhbGxpZWQ= IGJpb21lZGljYWw= IENBUkQ= IGV1cGhlbQ== IGJyYWluc3Rvcm0= YXF1aW4= S28= TWljaGVsbGU= IFJ1bmVz IEJhbGxpc3RpYw== dWRlcnM= IG1vZGVzdHk= IGlQYWRz IEV6ZWtpZWw= WUU= IHN0YXJzaGlw IHBvd2VyZnVsbHk= IHBlcmw= IFNoYWRl IFF1YXJ0 IEVFRw== IGZpc2hlcm1hbg== T1NFRA== IFR5cGljYWw= ZGZ4 IG1lc2hlcw== IGV0Y2hlZA== d29ydGhpbmVzcw== IHRvcHBsZWQ= IDM5Ng== b3JpdXM= V2Vpc3M= IG15c3Fs IFZhbGhhbGxh 2ZI= bGVhc2luZw== IHJlY29tcA== cmFwbmVs U2Vs MDQz IGRlcmFpbGVk IEd1aWRlcw== SVJU IGRlaHVtYW4= IEJyaXR0YW55 Iikp IGV4Y2xhaW0= IGJhbGs= IDg0MA== Q0xBSU0= aW50ZWw= TEFC IHBlZ2dlZA== IGFzdHJvcGg= c21va2luZw== IHJpZ2dpbmc= IGZpeGF0aW9u IGNhdGFwdWx0 aW5zaWRl IENhc2NhZGU= IEJvbHNoZXZpaw== R2F6YQ== RGVwdGg= IGxvdWRzcGU= IGFsbW9uZHM= bWV5ZXI= bGVuZXNz amVu ZnJlc2g= IHVuYmVhdGVu IFNxdWlk IFByZXN1bWFibHk= VGltZXI= Qlc= IHJvc3RlcnM= IGVsbGlwdA== IEhhcnJpZXQ= ZGF0YWJhc2U= IE11dHVhbA== IENvbW1vZG9yZQ== dWtlZA== a25pZmU= IENPTU1VTg== aHlh IG1lbHRz YXJjaGl2ZXM= IHJhdGlmaWNhdGlvbg== IG11bHRpcGx5aW5n IGludGVyb3Blcg== IGFzY2VydA== d2luZ3M= dmVydGluZw== IFNjb3JwaW9u YXll IFBvcnRzbW91dGg= IE1UQQ== bml0 aWF6ZXA= IHF1YXJhbnRpbmU= IHNsaWRlc2hvdw== IGNlbnRpbWV0ZXJz IHN5bm9wc2lz IHNwYXRl dGhpcnN0 IG5vbWluYXRpbmc= IE1lbHZpbg== UHJldmlldw== IHRocm9i IGdlbmVyYXRpb25hbA== IFJhZGl1cw== cmVzdGxpbmc= cHV0YWJsZQ== YXdhcg== TkVDVA== IHVubGF3ZnVsbHk= IFJldmVsYXRpb25z V2lraXBlZGlh c3Vydg== IGV5ZWluZw== aWpu IEZX IGJydW50 IGludGVyc3RlbGxhcg== IGNsaXRvcg== IENyb2F0aWFu IENoaWM= ZXZh IERpc2FwcA== IEFraW4= aW5lcmllcw== ZHVzdA== SW50ZXJlc3RlZA== IGdlbmVzaXM= IEV1Y2w= w7Zu cGlja2luZw== IG11dGF0ZWQ= IGRpc2FwcHJvdmU= IEhETA== IDYyNQ== zLY= Y2FuY2Vy IHNxdWF0cw== IGxldmVycw== RGlzY3Vzcw== PV0= RGV4 IFZJREVPUw== QVVE IHRyYW5zYWN0 IEtpbmVjdA== IEt1YWxh IEN5cA== NzQ3 IHNoYXR0ZXJpbmc= IGFyc2VuaWM= IEludGFrZQ== IEFuZ2Vsbw== IFF1aXQ= IEtoZQ== IDE4OTM= TWFrZXI= MDI5 IFBhaW50aW5n RGlzYWJsZQ== OTE2 IGFuYWxnZXM= IHRhY3RpbGU= IHByb3BoZXM= IGRpY2Vk IFRyYXZlbHM= IEhlYWRlcg== IENsdWJz QXNzaXN0YW50 IGluY3JpbQ== IGRpcHM= IGNydWNpZml4 IFNoYW5haGFu IEludGVycHJldA== IDQwOTA= YWxvZ3k= YWJiYQ== IHNpbXVsYWM= aHVzYmFuZA== U0lN IHJlY3ljbGU= dWNlcg== ZWRnZWQ= IHJlbmFpc3NhbmNl IEJvbWJheQ== Q2F0aG9saWM= IExJTkU= IENsb3RoaW5n cmVwb3J0cw== IHBsYXVz IGRhZw== IE1hY2U= Wkk= IGludHJ1ZGVy IFZldGVyaW5hcnk= Z3J1 IHNuZWFreQ== IFNpZQ== IENpbm5hbW9u UE9TRQ== IGNvdXJpZXI= IENOUw== IGVtYW5jaXBhdGlvbg== c2l0 IHBsYXl0aHJvdWdo IEZhY2lsaXRpZXM= dmlydA== IEdhdW50bGV0 VGhvbXBzb24= IHVuYmVsaWV2YWJseQ== UGFyYW1ldGVycw== IHN0aXRjaGluZw== aWduZQ== IFRIRVNF UHJpdmFjeQ== IHNoZW5hbmlnYW5z IHZpdHJp IFZhbGlk NTkx rbc= IFByb3RvdHlwZQ== aW5rYQ== U0NQ IFRpZA== 6Ig= b2xkZWQ= IGluZGl2aWR1YWxpdHk= IGJhcmtpbmc= IG1hcnM= IFdE IDgyMA== IHRpcg== IHNsYXBwaW5n IGRpc2dydW50bGVk IEFuZ29sYQ== cml1cw== IFRvcm5hZG8= IFRodXJz IGNhcHRjaGE= IGFuZ3N0 IFBvZw== IEFzc2Fzc2lucw== IEFkaWRhcw== IGpveWZ1bA== IHdoaW5pbmc= RW1lcmdlbmN5 IHBob3NwaG9ydXM= IGF0dHJpdGlvbg== b3Bob24= IFRpbWJlcndvbHZlcw== IEphaA== IEJyaW5naW5n IFdhZA== IEVuc3VyZQ== b2hs IFhpZQ== b21tZWw= Y21w IHppcHBlcg== IHJlbGF0 IENvcnJpZG9y bWlsbw== VElORw== QXZn IGNyb3BwZWQ= XX0= IHJhZ2Vk IEx1bXB1cg== IEd1ZXJyZXJv b3Vya2U= TnV0 IG9mZnNldHM= b2dsdQ== ZHJt IG1vcnRhbHM= bGF0YWJsZQ== IGRpc21pc3NpdmU= 5LiJ IHRocm9hdHM= IGNoaXBzZXQ= IFNwb3RsaWdodA== Q2F0YWxvZw== YXJ0aXN0 R2I= IGNoaWxseQ== IHN0b2tlZA== IDM3NA== V2FyZA== TGF0aW4= IGZpYXNjbw== IGJsZWFjaA== IGJyYXY= RW5oYW5jZWQ= IGlub2M= IEZpb3JpbmE= Xz4= IGxldWtlbWlh IGVsdWM= IGFubm91bmNlcg== IExpdGh1YW4= IEFybWFnZWRkb24= 5Yc= TGVuaW4= IFJ1aw== IHBlcHA= IFJvbWFudGlj IFBJVA== IEludGVyc3RlbGxhcg== IEF0a2luc29u UmFpZA== SnM= R29hbA== Q291cnNl IHZhbmlzaGluZw== ZXNsZXk= IFJvdW5kcw== RWxzYQ== NTkz IHJlZHVuZGFuY3k= IFNUQU5E IHByb3BoZXRpYw== IGhhYml0YWJsZQ== cnl1 IGZhaW50bHk= TU9ERQ== IGZsYW5rZWQ= SVJD QXdlc29tZQ== IHNwdXJpb3Vz IFphaA== IE1TRw== IHNoYWRpbmc= IG1vdGl2YXRpb25hbA== IFNhbnRhbmE= IFNQUg== IGV4Y3J1Y2lhdGluZw== b21pYWw= IE1pa28= IExlb3BhcmQ= QWJ5c3M= IFt8 ZGlydHk= IGJhdGhz IGRlbW9yYWw= YW5kcmU= UEI= IHVuaWZpY2F0aW9u IHNhY3JhbWVudA== IFsm IHByaWNlbGVzcw== IGdlbGF0aW4= IGVtYW5hdGluZw== IEFsbGFhaA== OTg2 IG91dGJ1cnN0 IGVyYXM= IFhWSQ== IFNQSQ== T3R0 IExhemFydXM= UExJRUQ= Rmx5aW5n YmxvZ3M= V2lzY29uc2lu UmF2ZW4= IHJlYmF0ZQ== IGNyZWVwcw== IFNwYW4= IFBhaW50ZXI= IEtpcmE= IEFtb3M= IENvcnZldHRl Q29uc3VtZXI= IFJlY292ZXI= Y2tp IHBlc2t5 IEludmVudGlvbg== Q29tcGFuaWVz IGNoYWxsZW5nZXJz YWRlbWlj IFVrcmFpbmlhbnM= IE5ldXJvbG9n IEZvcnNha2Vu IGVudHJhbnRz IGVtYmF0dGxlZA== IGRlZnVuY3Q= IEdsYWNpZXI= IHBvaXNvbnM= IEhvcnNlcw== bWFrZXM= IERpcnQ= IDQyMw== aGho IFRyYW5zZm9ybWF0aW9u UVVJUkU= Li4uLi4uLi4uLi4uLi4uLi4u IHRyYXZlbGxlcg== IFNleHk= IEtlcm4= aXBvbGFy IHJhbnNvbXdhcmU= b29vb29vb29vb29vb29vbw== RWM= cnVieQ== UHJvZmVzc2lvbmFs IE91dGJyZWFr YXJndW1lbnQ= R3JleQ== IEZpZmE= IENITw== IEZPUk0= IEFtdHJhaw== LVs= IGNyYWRsZQ== IGFudGlveGlkYW50cw== 44Gu5a4= NzM2 IE5BU0w= IENvbnRyaWJ1dGlvbnM= SW5kaWFuYQ== IFNURVA= Q1NT IHNhbGllbnQ= IGFsbG9jYXRpb25z eXJpZ2h0cw== IG1hc2hlZA== IEN1dHRlcg== U2V4dWFs IHBvdW5kZWQ= IGZhbmJhc2U= IGNhc2M= IFRyYW5zcGFyZW5jeQ== IGFuYWx5dGlj IFN1bW1vbmVy 154= IEFEQw== ZGV0YWls IHZhbnF1aXNoZWQ= IGNyYWJz YXJpZQ== RGVzdHJveQ== IFNhY2s= IHRyYW5zaXN0b3I= QWxhYmFtYQ== IEtvZW4= IEZpc2hlcmllcw== Y29uZQ== IGFubmV4ZWQ= IE1HTQ== ZXNh IGZha2Vk IENvbmdyYXR1bGF0aW9ucw== IGhpbmRlcmVk IGNvcnJlY3Rpb25hbA== IElUVg== bGVldmU= IGluYXBwcm9wcmlhdGVseQ== bGlja3M= IHRyZXNwYXNz IHBhd3M= IG5lZ290aWF0b3I= IENocmlzdGVuc2Vu bGltaXRz IERpYW5uZQ== IGVsZWdhbmNl IENvbnRyYWN0cw== YW5rZQ== T2Jq IHZpZ2lsYW5jZQ== IGNhc3RsZXM= IE5BRA== IEhvbG8= IGVtcGhhdGljYWxseQ== IFRpdHVz IFNlcnZpbmc= IFJpY2hpZQ== IFBpZ3M= NTY4 IGFuaW1vc2l0eQ== IEF0dHJpYnV0ZXM= IFVyaWVs TVE= bXlyYQ== IEFwcGxpY2FudA== IHBzeWNoaWF0cmlzdHM= IFZpag== IEFiYnk= YWdyZWU= UHVzaA== IGtXaA== aGliYQ== IGluY2l0ZQ== IFdlYXNsZXk= IFRheGk= bWluaXN0aWM= aHlwZXI= IEZhcm4= IDYwMQ== IE5hdGlvbndpZGU= RmFrZQ== OTUy IG1haXpl IGludGVyYWN0ZWQ= IHRyYW5zaXRpb25lZA== IHBhcmFzaXRpYw== IGhhcm1vbmlj IGRlY2F5aW5n IGJhc2VsZXNz bnNpY3M= IHRyYW5zcGlyZWQ= IGFidW5kYW50bHk= IEZvcmVuc2lj IHRyZWFkbWlsbA== IEphdg== YWJhbmQ= IHNzaGQ= IGZyb250bWFu IEpha2FydGE= b2xsZXI= ZHJvcHM= IFNFUlZJQ0VT cm9tcHR1 b3BoaWNhbA== aG9zcGl0YWw= YmxlZG9u NjQ1 IG1pZHJhbmdl IEVWRU5U Y3VsYXRlZA== cmF3bGVk IHBlcmNoZWQ= IG92ZXJib2FyZA== IFBlZWw= IFB3cg== IENhcnRo IENPTVBMRQ== Y29l c2hhbGw= IGRldGVycmVuY2U= TUVUSE9E IEFic2VudA== TUVO IHNpbGw= IExFVkVM WW9yaw== IHNpbm5lcnM= IE9QRUM= IE51cg== IERlc2lnbnM= c2VsZWN0aW9u IHVud29ydGh5 Q0hB IHN0cmVuZ3RoZW5z ODgz ZWRseQ== IHNsaWNpbmc= IG1hbG51dHJpdGlvbg== IGZpbG1tYWtpbmc= IFBvbGs= dXJhdGVk IDQyMQ== YnJlYWtlcnM= ISci IHdldGxhbmRz IERpc2NyaW1pbmF0aW9u IGFsbG93YWJsZQ== IHN0ZWVyZWQ= IFNpY2lseQ== U0FN IG11c3RhY2hl IG1pZHM= IGNsaXBwZWQ= IGNpcmN1bGF0ZQ== IGJyaXR0bGU= IEJ1aWxkaW5ncw== cmFpc2Vk IFJvdW5kdXA= IHdlYWx0aGllcg== IG92ZXJ3cml0ZQ== IG92ZXJwb3dlcmVk IEdlcnJhcmQ= c2l0ZXM= UERBVEVE IGFjdXRlbHk= IEdhbWJsZQ== IHBpbQ== IEt1cw== VHlwaWNhbGx5 RGVwbG95 IE1vcm9jY2Fu cG90aW9u Y29tYmU= IHZpZ2lsYW50ZQ== IDM2Mw== U3Rldw== IEJhZ2c= IHJlc2lkZWQ= IFNwbw== IHJlbW5hbnQ= IGVtcHRpbmVzcw== YnJhaW5lcg== IG91dHBhdGllbnQ= cHJpb3JpdHk= IGxlcHRpbg== IFBheXRvbg== IEdsZWFtaW5n IFNoZWQ= IFBvbG8= IE1vcm1vbmlzbQ== cmVzdHJpY3RlZA== YXJsYW5l d3g= IGNyZWF0aW5l IEFub24= IFNUVUQ= IEpVTA== IFRlZQ== NTI4 MDg5 IGhhdGNoZWQ= RGlzcGF0Y2g= IENvbXBvc2l0ZQ== IDQ1MQ== cHVmZg== IFhDT00= IE9ybg== IFRIQU5L RU5ERUQ= IEFzaGV2aWxsZQ== IMOc IG1hbmdv IFNsaWdodGx5 d29ybGRseQ== IFdhbmRlcg== IEV4cGFuZA== IENocg== TWlzdA== IG9ydGhvZG94eQ== IFVORVNDTw== cmVnYXRl RWxzZXdoZXJl a2ll aXJsZWQ= IHRvcHBsZQ== IGFkb3B0aXZl IExlZ3M= ZHJlc3M= IFNhZ2Fu YmFyZQ== IEdsb3U= Q3J1bmNo IGhlbHBlcnM= IGNocm9uaWNhbGx5 IEh1bWE= MTAwMDA= IGFjY29tbW9kYXRpbmc= 5LqU IHdyaW5rbGVz IGRvZGdlZA== Zm91cnRo IHByZWNvbg== IGNvbXByZXNzb3I= IEthcmU= IGV2aWN0 IFdhcndpY2s= aW1hcg== IG1vZGVybml6YXRpb24= IGJhbmR3YWdvbg== IHJlZnV0ZWQ= IG5ldHRlZA== IE5hcGxlcw== IEdlbmll cGVyb3Jz IGZpZWxkZWQ= IGRlcmU= IFBhcmFibGVz bGVlcw== IHRyb3V0 YXNwZXJz IG5paGls IGhhcHBpZXN0 IGZsb3BweQ== IExvZnQ= IEhlYXJk IHVuaXNvbg== IGx1Zw== IFJlZG1vbmQ= Y2xhc3NpYw== U3VwcG9ydGVycw== U0hJUA== R01U IGZ1ZWxsZWQ= 55A= IGRk IEVtaW5lbQ== IDE4OTc= TllTRQ== IHNlY3JldGFyaWVz IEZJQQ== IENhbmF2ZXJhbA== RmF2b3JpdGU= IHBvbXA= IGRldGFpbmVl ZXJzaGlw YWltb24= aW91cg== IEFwZXg= IHBsYW50YXRpb25z YW1pYQ== YWNpb24= UnVzdA== IHRvd2Vk IFRydWx5 NTc3 IHNoZWx0ZXJlZA== cmlkZXI= V28= IGxhaXI= IEludGVsbGlnZW50 aW1wcm92ZQ== bWF0aWNhbGx5 IGV0aXF1ZXR0ZQ== YWRyYQ== YWxsbw== IEp1bm8= YW55dGhpbmc= IFN0cnVnZ2xl IFByZWRpY3Q= IEdyaW1lcw== IEFNRVJJQ0E= Y3R4 IFNpdHVhdGlvbg== V09PRA== IHNvbHVibGU= bWVpZXI= IGludG9sZXJhYmxl YW5nZXJpbmc= IHVuaW50ZXJydXB0ZWQ= IHRvb2x0aXA= IGludGVycm9nYXRlZA== IGd1bm5lZA== IFNuZWFr 5q2m IHRldGhlcg== IGNydW1ibGU= TGVucw== IGNsdXN0ZXJlZA== IFN5bA== IEhhc2Fu IGR5c3RvcGlhbg== d2FuYQ== IGpveXN0aWNr IFRoaWI= YW1tdQ== VG9tb3Jyb3c= NTQ2 IG92ZXJjYW1l IG1pbmltaXplZA== Y2VwdG9y UnVubmVy RU5HVEg= IEJyZW5kYQ== IEFjaGlldmVtZW50cw== IHRvcmNoZXM= IHJhcHBvcnQ= IEludmVzdGlnYXRvcg== IEhhbmRsaW5n cmVsYXRpb24= Z3JleQ== ODE1 IGtjYWw= IENvbW1hbmRz ZHE= IGN1cmxz IGJlYXJlcg== IGN5bmljaXNt aXRyaQ== IFVzZWZ1bA== QmVl RENT IGFicmFz UHJhY3Q= QklMSVRJRVM= NzEy IGRlYnVnZ2Vy IGRlYnRvcg== IExpYQ== IEtlcnM= IGV4YWNlcmJhdGU= IFN0YWN5 IEJsYW5k IFNjZW5lcw== IGJyYW5jaGluZw== 4paI4paI4paI4paI4paI4paI4paI4paI YXBlYWtl IHNhbHNh IG1pc2hhbmQ= IEtvbmFtaQ== IE5pYg== IGFuZWNkb3Rl IGFncmVlYWJsZQ== z4k= IE5hdGhhbmllbA== IEhlaXNtYW4= IEJld2FyZQ== IDE4ODY= c3BlY3RpdmU= Njkx NTIy IGluaGliaXRz IGhhc2hpbmc= IDE4ODk= 5bCG dmljaA== UHVyZQ== IHNvbGlkbHk= IGFzcGlyaW4= aW1hcnU= IHN0cmVldGNhcg== IFVDUw== IEp1ZGQ= IGZsYXNoYmFja3M= cGlucw== IDE0NDA= IFVOSENS IFN5bXB0b21z VElU NTM4 RnJh JSk7 IG9veg== IGN1cmZldw== IGNhbG1lZA== IHBhcnRpY2lwYXRlcw== VGVY IG5vbnNlbnNpY2Fs IGZ1bGxiYWNr IERlTA== bW9ua2V5 aGFyaQ== IG1ldGFib2xpdGVz IGxvb3RlZA== IEFMV0FZUw== IEJDQw== THQ= b2NoZXQ= Qm9uZQ== IHZldG9lZA== IGdjYw== IENMSUNL IDE4ODg= c2Fm IHN0aWZmbmVzcw== IGxvd2x5 IEdlaA== dmVyc29u b3JzZXQ= IHVuZm9yZXNlZW4= IGFuZXN0aGVzaWE= IE9wdGljYWw= IHJlY29uc3RydWN0ZWQ= IFR1cA== c2hvd3M= TkVXUw== IE5ld3NwYXBlcg== IEFTQQ== dGVyYQ== TnVtYmVycw== IGluZXhwbGljYWJsZQ== 15E= IGhhcmRuZXNz dW50YXJpbHk= IEFjZXI= Z3JhZGllbnQ= QVJESVM= IHdvb2RsYW5k IG1ldGFwaG9ycw== IFdlbWJsZXk= IFBhdmVs cGhpbGlz IHJld3JpdGluZw== IHBlcmNlcHR1YWw= IDEwNzA= d29ybXM= IERvd25z IHVuc3VycHJpc2luZ2x5 IHRhZ2dpbmc= ZmxhbWU= IGxpdHJlcw== IGJvdW5jZXM= IEJhYmU= c2h1dA== IG92ZXJkb3Nlcw== IFNoZWlsYQ== IENoYXU= IEJsZXNz Q2FwdHVyZQ== IFNpZ25pZmljYW50 IFNjaW9u IDM4OQ== IE1jSA== IFRpdGFuaXVt IE1lYWw= YW1lZGE= YWdlbnRz YWdncmVzc2l2ZQ== QmlsbHk= NzYz IFNheWluZw== REVSUg== aXRvbmU= Q29sbGlucw== Qm91bmQ= IGJvbHRlZA== IERNQ0E= OTUz IHVuaXF1ZW5lc3M= IGVwaWdlbg== dW5jaQ== YW50YW0= IHJlY2tvbmluZw== Y2hhaXJz T0dS IFNlbmVnYWw= IDE4NjI= cmVsZXZhbnQ= IMKv IHBoYXJtYWNpZXM= IEdlcmFs dmllcg== WWFu T1JQRw== IHJhYmlk YmVuZGluZw== IFVOSVRFRA== IDQ2NQ== QXNzZW1ibHk= IHdlZXA= IGJlaGVzdA== IE1vdGhlcnM= IEphY2U= aGlk IHdoaXJsd2luZA== IFVOSVZFUlM= IHV0b3BpYW4= IGtpZG5hcA== UGhpbGlwcA== S2lu ODkz IGxpdmVzdHJlYW0= IE1JU1M= IHN1YnZlcnNpdmU= IFRlY2huaXF1ZXM= IEpVU1RJQ0U= IEJBU0U= IDM4Nw== IGFzc2FpbGFudHM= IEhhcmRjb3Jl IHNwcmlua2xlZA== IFBzZQ== 6Zo= cHJpbnRlZA== IEhhdQ== T1JHRQ== IFRPVVI= IGxhY2Vk IGl0Y2g= R2l2aW5n IHBvcnRlZA== Nzgx Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8= YnJlZWRpbmc= IGxvZ2dlcg== IEhPTA== aW5uaWU= Rmlyc3RseQ== IGVtYnJ5b25pYw== IGRlbGVnYXRlZA== cGFp T0lM IGNlbnRyYWxseQ== IFJ4 IFNjb3V0aW5n RHV0Y2g= IGhlcmVkaXRhcnk= IENydWlzZXI= c2F0 NTI5 IE1hcnJpb3R0 b3RoZXJtYWw= IHByb2hpYml0aW9ucw== RWFybg== IFN0YWI= IENvbGxlZ2Vz IEJlbGllZg== c3RyZXRjaGVk IExI IEVudGl0eUl0ZW0= Q0lB IHVucmVt IGxhdXJlYXRl IGRlbm9taW5hdGlvbnM= c3VtbWFyeQ== aGxlcg== U3BlY3Q= IEtsYXVz IEJlYW5z IGluc3Vy IFBBWA== IGZpZWxkZXI= IFZldA== IFNwYXJyb3c= emll IFNR IE1vbmRheXM= IE9mZmxpbmU= IExlcm5lcg== IEV4dGVuc2lvbnM= SXJlbGFuZA== IHBhdHJvbmFnZQ== IGNvbnRyYXN0ZWQ= IE1hbmlh aGlydA== TW9zY293 IGNvbmRlbW5z IEFuZ2U= IGNvbXBvc2luZw== IFBlcGU= IFBhZGRvY2s= IGhldGVyb2dlbmVpdHk= IGlkZW9sb2dpY2FsbHk= IGZpc2hlcw== IGN1cnNpbmc= IFJ1dGhlcmZvcmQ= IEZsb2F0aW5n IEFtZWxpYQ== VGVh U3lub3BzaXM= IHN0dW50cw== IGJlYWQ= IHN0b2NraW5n IE1JTEw= b2Jvb2s= bWFzc2l2ZQ== XDw= IGh1bXA= IFByZWZlcmVuY2Vz RW5naW5lRGVidWc= Z2Vpc3Q= IE5pZXRv b21ldmVy aXNoeQ== ZXZhbHVhdGU= Y29sb25pYWw= QWx0ZXJuYXRpdmU= IEdvUHJv IFZvcnRleA== IE5FVFdPUks= YW5za3k= U2VjdXJl IFRocnVzdA== U25ha2U= IHBhcmNlbHM= IHNhbXVyYWk= IGFjdHJlc3Nlcw== TmFw TUY= aWZlcmF0aW9u QmVlcg== NTIz IElseQ== b2ludG1lbnQ= UGluZw== IHN0cmlwZWQ= IE1lbGxvbg== b3NzZXNzaW9u IG5ldXRyb24= ZW5kaXVt IGFwaA== IEZsYXZvcmluZw== IDM4Mw== IHJlc3BvbnNpdmVuZXNz IEppbmRhbA== IEhpdGNoY29jaw== RGVudmVy IERSQUdPTg== c21hbnNoaXA= IER1cGw= IHNseQ== IHdlYmNhbQ== IFR3YWlu IERhcmxpbmc= aWxpYXRl Y29uc3VtZXI= RElU IG5hbWVzYWtl IHVub3J0aG9kb3g= IGZ1bmVy IFBMb1M= IENPTlRST0w= b3p5Zw== b2dsb2Jpbg== RkFDRQ== RVJH IERpYQ== IEZpZXN0YQ== Y2VsZQ== MDM0 IGVuY2xhdmU= 4pas4pas b25lbWVudA== YWxpc3Q= TWFuZA== IGhvbWVncm93bg== IEZhbmN5 IGNvbmNlcHRpb25z IENvbnRhaW5z dXJlZW4= IHJlaXRlcmF0ZQ== IG1lYWdlcg== IGluc3RhbGxtZW50cw== U3Bhd24= NjI3 IHBob3RvYw== IENhYnJlcmE= IFJvc2VudGhhbA== IExhbnNpbmc= aXNuZXI= IGludmVzdHM= IFVGT3M= RVhQ SGFyZHdhcmU= IHRyYWdpY2FsbHk= IGNvbmNlZGVz aWVmdA== Y2hhbQ== Ym9yZ2g= IFNjaHI= IE1lbGFuaWU= IEhveQ== IHZpc2l0YXRpb24= IGlkaW9zeW5jcg== IGZyYWN0aW9ucw== IGZvcmVza2lu b2Jvcw== IHBvYWNoaW5n IFZJRVc= IHN0aW11bGF0ZXM= IEdvcms= Y2Fub24= TUlD IE5lbWVzaXM= IEluZHJh IERNVg== IDUyOQ== IGluc3BlY3Rpbmc= IGdyYW5kbWE= IFdoZWRvbg== IFNoYW50 IFB1cmc= aWthbg== IFRlZw== IENMUg== emFj VmljdG9yaWE= IFZlcmlmeQ== aW9uaWNz IHBhcnR5aW5n IE1vdQ== Y29sb3Vy IHRlc3RpbW9uaWVz bGF0aW9ucw== IHByZXNzdXJpbmc= aGlybw== YWNlcnM= IGZpZA== YW5nbGVy IENTSQ== IGhlcmVhZnRlcg== IGRpc3NpZGVudHM= cmVwb3J0aW5n aXBoYW55 Y2hldg== IHNvbGl0dWRl IGxvYmU= IGluZGlz IGNyZWRlbnRpYWw= cmVjZW50 YWR1bHQ= IE5pcnZhbmE= IEZyYW5jaGlzZQ== TGF5ZXI= SHlw IEJlcmtzaGlyZQ== IHdpbGxz dGlm IHRvdGVt IEp1ZGFo cmVwYWly SW5zdGFudA== NTQ4 IGVtYmFzc2llcw== IGJvdHRsZW5lY2s= IGJvdW50 IHR5cGV3 IEFsdmlu amluZw== aW1pbGFy UnVzaA== IGJyaW0= IEhFTFA= QWlt XSc= IHBhc3NpdmVseQ== IGJvdW5kZWQ= IFJhdGVk IGNyaW1pbmFsaXR5 IGJpb21hcms= IGRpc3BhdGNoZXI= IFRvd2FyZHM= ICsrKw== cmlnaHRlb3Vz ZnJvZw== IFBhbmM= Q2FydGVy MDMy 5qmf IHVsdHJhdmlvbGV0 IExpY2Vuc2Vk IFRhdGE= IEJsZXNzaW5n IEdBTQ== IGNoZW1pY2FsbHk= IFNlYWY= IFJFTEU= IE1lcmNlbmFyeQ== Y2FwaXRhbGlzdA== IGZvcm11bGF0aW9ucw== IGFubmloaWxhdGlvbg== IFZlcmI= IEFyZ29u IHVubG9hZGVk IG1vcnBoZWQ= IGNvbnF1ZXJpbmc= YmFja2Vy SUVMRA== IHRoZWZ0cw== IGZyb250cnVubmVy IFJveWFsZQ== IEZ1bmRhbWVudGFs ZWxpZ2h0 Q2hpcA== bmVjZXNzYXJ5 YXlu IFNsaXA= IDQ0OA== Y2VybmVk UGF1c2U= IHNob2NraW5nbHk= IEFCVg== IGNvbXBvc3VyZQ== NzMz IE1vdG9yc3BvcnQ= YWhpbWU= TXVycmF5 TWFjaA== IGdyaWRz IGRlYmlhbg== IGZ1cnRoZXJtb3Jl IGRleHRlcml0eQ== IENvbGxlY3Rpb25z b3Nsb3Y= aWxhZ2U= Ymo= IE1vbnRlbmVn IHN0cnV0Q29ubmVjdG9y IG1hc3NhY3Jlcw== IGJyaWVmcw== ZmV0Y2hlZA== dXZpYW4= b2xpdGlvbg== RmFpbHVyZQ== ZW1vbmlj IGZsYXJlZA== IGNsYWltYW50 IGN1cmVz IGdpdmVhd2F5cw== IFN1YnN0YW5jZQ== YWxpb25z IGNyaW5nZQ== IEt1bA== IGFyaXN0b2NyYWN5 IFVsc3Rlcg== b2xhdGVk aG91c2luZw== IE1JUw== IGdsYXJlZA== IFdpbGhlbG0= bmVlZHM= bGFtYmRh YnVpbGRlcnM= IFZJUw== IHJhZGlhdG9y IEdob3N0YnVzdGVycw== IDQzNg== YWN0dWFs IGhlcmRz w6dh d2F0Y2hpbmc= IGNvdW50ZXJpbmc= Q2hhcmdl IGNoYXJyZWQ= IHdhcmhlYWRz IGlvZGluZQ== IE1hY3k= MDQx IGRlcGFydHVyZXM= IFNpbnM= IGR5ZWQ= IENvbmNlcHRz Z2Fkbw== NzEz IHF1b3RhdGlvbnM= IGdpc3Q= IENocmlzdHk= IGFudGlnZW4= IEhlbXA= IERyYXdu IEJhcmc= ZXp2b3Vz IHBhdGVybml0eQ== IGFyZHU= IEFuY2hvcmFnZQ== IFJpaw== IG92ZXJsb2FkZWQ= IFVzZXJuYW1l IFRhbW15 IE5hdQ== IENlbGx1bGFy IHdhbmluZw== IHJvZGVudA== IFdvcmNlc3Rlcg== aWx0cw== IFRhZA== IGR3ZWxsaW5ncw== IGJ1bGxpc2g= NDMx IHJldGFsaWF0ZQ== IG1pZ3JhaW5l IENoZXZyb24= Q0hFQ0s= IGRvbmtleQ== Y3JpbQ== U1BB IEFuYWxvZw== IG1hcnF1ZWU= IEhhYXM= Qmly IEdERFI= IERvd25sb2Fkcw== IHdpbGxwb3dlcg== IEZvcnRo IFJlY29yZGVk IGltcG9zc2liaWxpdHk= IExvZ2dlZA== IEZyYW5rcw== IFJhdHQ= aW5pdGlvbnM= IGNsZWFuZXJz IHNvcmVseQ== IGZsaWNrZXJpbmc= IEV4YW1pbmF0aW9u Y2F0Y2hpbmc= YWxsb3dlZW4= TXNn IGR1bm5v RmE= IGR5c3Bo Y3Jhenk= LicnLg== IG1haW5saW5l IGNz IHB0cg== IFdhbGx5 aWd1bg== OTUx IEJpZ2Zvb3Q= ZmlnaHRz IHJldHJpZXZpbmc= SnI= IGR1cGxpY2F0aW9u IEV4cGxhbg== IHJlbGF0aW9uYWw= IHF1YWludA== IGJpc2N1aXRz IGFkbw== IHNodWRkZXI= IGFudGlkb3Rl Ymxvb2RlZA== a3No IHNhdWNlcw== IHJlaW52ZXN0 IGRpc3BlbnNhcnk= IERpdmVy IDkwMDA= c3R1ZGVudA== IGluc2VwYXI= ZXNjYXA= IHRvZGRsZXJz IEdQSU8= IEFzc2lnbm1lbnQ= aGVhZGVycw== IGxhY2tsdXN0ZXI= IGFiYWNr OTU2 IHRvb2xiYXI= NzQ1 IG91c3Q= IGNvbnRlbXBsYXRpb24= IFBSRVNJREVOVA== IDQ1OA== PT09PT09 IGd1YXJhbnRlZWluZw== IEhlaXN0 IENhbm5lcw== mb0= IGNvbGxhYm9yYXRvcg== IEFtcA== IGdvdQ== IFNIQUxM c3Rvcmllcw== Nzgz IG1vYmlsaXplZA== IGJyb29k IExV IPCfkQ== IHJlZmlu IEFudGhyb3BvbG9neQ== dmluZA== aWxsaQ== IHdhcnJhbnRpZXM= IEJhYmVs IHN3YXRo IGNhY2hlcw== IGFudGFnb25pc3Rz YXJ0aWZhY3Rz IGhvdGx5 IFN0YXJ0cw== IEfDtg== emFn ISEhISE= IHNjb3VyZ2U= IGNvbnNwaXJpbmc= cnVpdHM= cmV2ZXJzZQ== IFNoZWVu IEplc3VpdA== IEdpb3Zhbm5p YWRpZXM= IGJ1dHRvY2tz ZWFyY2hlcg== YWNhbg== IHZvbGxleWJhbGw= IHNocm91ZGVk IHNjb3JlYm9hcmQ= YmF0cw== IElQTQ== IGFzc2Vz IGRlcmVndWxhdGlvbg== IFRlbGVncmFt IFJlYm9vdA== IDcwMDA= IENhbmFyeQ== IGtlcm5lbHM= IEZyYW7Dp29pcw== IER1ZmY= IFBvbg== IExlaWNh IEdhcm1pbg== IG9ycGhhbnM= IENsYXVkaWE= IGNhbGVuZGFycw== IExlaWxhbg== ZW50bw== Um9ja2V0 IGJydW5jaA== IEhhd2tpbmc= YWluZXJz IHNlbnNpYmlsaXRpZXM= IGtX IEthbmQ= IHJlY2xhaW1lZA== IGludGVyZXN0aW5nbHk= 16k= cm9teQ== Sk0= IEVuaGFuY2VtZW50 YnVzaA== U2tpcA== IHJhcHBlcnM= IGdhemluZw== cGVkaWE= YXRobG9u UmV2b2x1dGlvbg== IHNuaXBlcnM= IHJldmVydGVk IGNvbmdsb21lcmF0ZQ== VGVycnk= Nzk0 IGhhcnNoZXI= IGRlc29sYXRl IEhpdG1hbg== Q29tbWlzc2lvbg== ICgv 4oCmLiI= Q29tcGFy IGFtcGxpZmljYXRpb24= b21pbmF0ZWQ= IHJlZ3Jlc3M= IENvbGxpZGVy IGluZm9ybWFudHM= IGdhemVk -! 50257 ICA= ICAg ICAgIA== ICAgICA= ICAgICAg ICAgICAgIA== ICAgICAgICA= ICAgICAgICAg ICAgICAgICAgIA== ICAgICAgICAgICA= ICAgICAgICAgICAg ICAgICAgICAgICAgIA== ICAgICAgICAgICAgICA= ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIA== ICAgICAgICAgICAgICAgICA= ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIA== ICAgICAgICAgICAgICAgICAgICA= ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIA== ICAgICAgICAgICAgICAgICAgICAgICA= ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIA==`},hVI={pat_str:"'s|'t|'re|'ve|'m|'ll|'d| ?\\p{L}+| ?\\p{N}+| ?[^\\s\\p{L}\\p{N}]+|\\s+(?!\\S)|\\s+",special_tokens:{"<|endoftext|>":50256,"<|fim_prefix|>":50281,"<|fim_middle|>":50282,"<|fim_suffix|>":50283},bpe_ranks:`! 0 IQ== Ig== Iw== JA== JQ== Jg== Jw== KA== KQ== Kg== Kw== LA== LQ== Lg== Lw== MA== MQ== Mg== Mw== NA== NQ== Ng== Nw== OA== OQ== Og== Ow== PA== PQ== Pg== Pw== QA== QQ== Qg== Qw== RA== RQ== Rg== Rw== SA== SQ== Sg== Sw== TA== TQ== Tg== Tw== UA== UQ== Ug== Uw== VA== VQ== Vg== Vw== WA== WQ== Wg== Ww== XA== XQ== Xg== Xw== YA== YQ== Yg== Yw== ZA== ZQ== Zg== Zw== aA== aQ== ag== aw== bA== bQ== bg== bw== cA== cQ== cg== cw== dA== dQ== dg== dw== eA== eQ== eg== ew== fA== fQ== fg== oQ== og== ow== pA== pQ== pg== pw== qA== qQ== qg== qw== rA== rg== rw== sA== sQ== sg== sw== tA== tQ== tg== tw== uA== uQ== ug== uw== vA== vQ== vg== vw== wA== wQ== wg== ww== xA== xQ== xg== xw== yA== yQ== yg== yw== zA== zQ== zg== zw== 0A== 0Q== 0g== 0w== 1A== 1Q== 1g== 1w== 2A== 2Q== 2g== 2w== 3A== 3Q== 3g== 3w== 4A== 4Q== 4g== 4w== 5A== 5Q== 5g== 5w== 6A== 6Q== 6g== 6w== 7A== 7Q== 7g== 7w== 8A== 8Q== 8g== 8w== 9A== 9Q== 9g== 9w== +A== +Q== +g== +w== /A== /Q== /g== /w== AA== AQ== Ag== Aw== BA== BQ== Bg== Bw== CA== CQ== Cg== Cw== DA== DQ== Dg== Dw== EA== EQ== Eg== Ew== FA== FQ== Fg== Fw== GA== GQ== Gg== Gw== HA== HQ== Hg== Hw== IA== fw== gA== gQ== gg== gw== hA== hQ== hg== hw== iA== iQ== ig== iw== jA== jQ== jg== jw== kA== kQ== kg== kw== lA== lQ== lg== lw== mA== mQ== mg== mw== nA== nQ== ng== nw== oA== rQ== IHQ= IGE= aGU= aW4= cmU= b24= IHRoZQ== ZXI= IHM= YXQ= IHc= IG8= ZW4= IGM= aXQ= aXM= YW4= b3I= ZXM= IGI= ZWQ= IGY= aW5n IHA= b3U= IGFu YWw= YXI= IHRv IG0= IG9m IGlu IGQ= IGg= IGFuZA== aWM= YXM= bGU= IHRo aW9u b20= bGw= ZW50 IG4= IGw= c3Q= IHJl dmU= IGU= cm8= bHk= IGJl IGc= IFQ= Y3Q= IFM= aWQ= b3Q= IEk= dXQ= ZXQ= IEE= IGlz IG9u aW0= YW0= b3c= YXk= YWQ= c2U= IHRoYXQ= IEM= aWc= IGZvcg== YWM= IHk= dmVy dXI= IHU= bGQ= IHN0 IE0= J3M= IGhl IGl0 YXRpb24= aXRo aXI= Y2U= IHlvdQ== aWw= IEI= IHdo b2w= IFA= IHdpdGg= IDE= dGVy Y2g= IGFz IHdl ICg= bmQ= aWxs IEQ= aWY= IDI= YWc= ZXJz a2U= ICI= IEg= ZW0= IGNvbg== IFc= IFI= aGVy IHdhcw== IHI= b2Q= IEY= dWw= YXRl IGF0 cmk= cHA= b3Jl IFRoZQ== IHNl dXM= IHBybw== IGhh dW0= IGFyZQ== IGRl YWlu YW5k IG9y aWdo ZXN0 aXN0 YWI= cm9t IE4= dGg= IGNvbQ== IEc= dW4= b3A= MDA= IEw= IG5vdA== ZXNz IGV4 IHY= cmVz IEU= ZXc= aXR5 YW50 IGJ5 ZWw= b3M= b3J0 b2M= cXU= IGZyb20= IGhhdmU= IHN1 aXZl b3VsZA== IHNo IHRoaXM= bnQ= cmE= cGU= aWdodA== YXJ0 bWVudA== IGFs dXN0 ZW5k LS0= YWxs IE8= YWNr IGNo IGxl aWVz cmVk YXJk 4oA= b3V0 IEo= IGFi ZWFy aXY= YWxseQ== b3Vy b3N0 Z2g= cHQ= IHBs YXN0 IGNhbg== YWs= b21l dWQ= VGhl IGhpcw== IGRv IGdv IGhhcw== Z2U= J3Q= IFU= cm91 IHNh IGo= IGJ1dA== IHdvcg== IGFsbA== ZWN0 IGs= YW1l IHdpbGw= b2s= IHdoZQ== IHRoZXk= aWRl MDE= ZmY= aWNo cGw= dGhlcg== IHRy Li4= IGludA== aWU= dXJl YWdl IG5l aWFs YXA= aW5l aWNl IG1l IG91dA== YW5z b25l b25n aW9ucw== IHdobw== IEs= IHVw IHRoZWly IGFk IDM= IHVz YXRlZA== b3Vz IG1vcmU= dWU= b2c= IFN0 aW5k aWtl IHNv aW1l cGVy LiI= YmVy aXo= YWN0 IG9uZQ== IHNhaWQ= IC0= YXJl IHlvdXI= Y2M= IFRo IGNs ZXA= YWtl YWJsZQ== aXA= IGNvbnQ= IHdoaWNo aWE= IGlt IGFib3V0 IHdlcmU= dmVyeQ== dWI= IGhhZA== IGVu IGNvbXA= LCI= IElu IHVu IGFn aXJl YWNl YXU= YXJ5 IHdvdWxk YXNz cnk= IOKA Y2w= b29r ZXJl c28= IFY= aWdu aWI= IG9mZg== IHRl dmVu IFk= aWxl b3Nl aXRl b3Jt IDIwMQ== IHJlcw== IG1hbg== IHBlcg== IG90aGVy b3Jk dWx0 IGJlZW4= IGxpa2U= YXNl YW5jZQ== a3M= YXlz b3du ZW5jZQ== IGRpcw== Y3Rpb24= IGFueQ== IGFwcA== IHNw aW50 cmVzcw== YXRpb25z YWls IDQ= aWNhbA== IHRoZW0= IGhlcg== b3VudA== IENo IGFy IGlm IHRoZXJl IHBl IHllYXI= YXY= IG15 IHNvbWU= IHdoZW4= b3VnaA== YWNo IHRoYW4= cnU= b25k aWNr IG92ZXI= dmVs IHF1 Cgo= IHNj cmVhdA== cmVl IEl0 b3VuZA== cG9ydA== IGFsc28= IHBhcnQ= ZnRlcg== IGtu IGJlYw== IHRpbWU= ZW5z IDU= b3BsZQ== IHdoYXQ= IG5v ZHU= bWVy YW5n IG5ldw== LS0tLQ== IGdldA== b3J5 aXRpb24= aW5ncw== IGp1c3Q= IGludG8= IDA= ZW50cw== b3Zl dGU= IHBlb3BsZQ== IHByZQ== IGl0cw== IHJlYw== IHR3 aWFu aXJzdA== YXJr b3Jz IHdvcms= YWRl b2I= IHNoZQ== IG91cg== d24= aW5r bGlj IDE5 IEhl aXNo bmRlcg== YXVzZQ== IGhpbQ== b25z IFs= IHJv Zm9ybQ== aWxk YXRlcw== dmVycw== IG9ubHk= b2xs IHNwZQ== Y2s= ZWxs YW1w IGFjYw== IGJs aW91cw== dXJu ZnQ= b29k IGhvdw== aGVk ICc= IGFmdGVy YXc= IGF0dA== b3Y= bmU= IHBsYXk= ZXJ2 aWN0 IGNvdWxk aXR0 IGFt IGZpcnN0 IDY= IGFjdA== ICQ= ZWM= aGluZw== dWFs dWxs IGNvbW0= b3k= b2xk Y2Vz YXRlcg== IGZl IGJldA== d2U= aWZm IHR3bw== b2Nr IGJhY2s= KS4= aWRlbnQ= IHVuZGVy cm91Z2g= c2Vs eHQ= IG1heQ== cm91bmQ= IHBv cGg= aXNz IGRlcw== IG1vc3Q= IGRpZA== IGFkZA== amVjdA== IGluYw== Zm9yZQ== IHBvbA== b250 IGFnYWlu Y2x1ZA== dGVybg== IGtub3c= IG5lZWQ= IGNvbnM= IGNv IC4= IHdhbnQ= IHNlZQ== IDc= bmluZw== aWV3 IFRoaXM= Y2Vk IGV2ZW4= IGluZA== dHk= IFdl YXRo IHRoZXNl IHBy IHVzZQ== IGJlY2F1c2U= IGZs bmc= IG5vdw== IOKAkw== Y29t aXNl IG1ha2U= IHRoZW4= b3dlcg== IGV2ZXJ5 IFVu IHNlYw== b3Nz dWNo IGVt ID0= IFJl aWVk cml0 IGludg== bGVjdA== IHN1cHA= YXRpbmc= IGxvb2s= bWFu cGVjdA== IDg= cm93 IGJ1 IHdoZXJl aWZpYw== IHllYXJz aWx5 IGRpZmY= IHNob3VsZA== IHJlbQ== VGg= SW4= IGV2 ZGF5 J3Jl cmli IHJlbA== c3M= IGRlZg== IHJpZ2h0 IHN5 KSw= bGVz MDAw aGVu IHRocm91Z2g= IFRy X18= IHdheQ== IGRvbg== ICw= IDEw YXNlZA== IGFzcw== dWJsaWM= IHJlZw== IEFuZA== aXg= IHZlcnk= IGluY2x1ZA== b3RoZXI= IGltcA== b3Ro IHN1Yg== IOKAlA== IGJlaW5n YXJn IFdo PT0= aWJsZQ== IGRvZXM= YW5nZQ== cmFt IDk= ZXJ0 cHM= aXRlZA== YXRpb25hbA== IGJy IGRvd24= IG1hbnk= YWtpbmc= IGNhbGw= dXJpbmc= aXRpZXM= IHBo aWNz YWxz IGRlYw== YXRpdmU= ZW5lcg== IGJlZm9yZQ== aWxpdHk= IHdlbGw= IG11Y2g= ZXJzb24= IHRob3Nl IHN1Y2g= IGtl IGVuZA== IEJ1dA== YXNvbg== dGluZw== IGxvbmc= ZWY= IHRoaW5r eXM= IGJlbA== IHNt aXRz YXg= IG93bg== IHByb3Y= IHNldA== aWZl bWVudHM= Ymxl d2FyZA== IHNob3c= IHByZXM= bXM= b21ldA== IG9i IHNheQ== IFNo dHM= ZnVs IGVmZg== IGd1 IGluc3Q= dW5k cmVu Y2Vzcw== IGVudA== IFlvdQ== IGdvb2Q= IHN0YXJ0 aW5jZQ== IG1hZGU= dHQ= c3RlbQ== b2xvZw== dXA= IHw= dW1w IGhlbA== dmVybg== dWxhcg== dWFsbHk= IGFj IG1vbg== IGxhc3Q= IDIwMA== MTA= IHN0dWQ= dXJlcw== IEFy c2VsZg== YXJz bWVyaWM= dWVz Y3k= IG1pbg== b2xsb3c= IGNvbA== aW8= IG1vZA== IGNvdW50 IENvbQ== aGVz IGZpbg== YWly aWVy 4oCU cmVhZA== YW5r YXRjaA== ZXZlcg== IHN0cg== IHBvaW50 b3Jr IE5ldw== IHN1cg== b29s YWxr ZW1lbnQ= IHVzZWQ= cmFjdA== d2Vlbg== IHNhbWU= b3Vu IEFs Y2k= IGRpZmZlcmU= IHdoaWxl LS0tLS0tLS0= IGdhbWU= Y2VwdA== IHNpbQ== Li4u IGludGVy ZWs= IHJlcG9ydA== IHByb2R1 IHN0aWxs bGVk YWg= IGhlcmU= IHdvcmxk IHRob3VnaA== IG51bQ== YXJjaA== aW1lcw== YWxl IFNl IElm Ly8= IExl IHJldA== IHJlZg== IHRyYW5z bmVy dXRpb24= dGVycw== IHRha2U= IENs IGNvbmY= d2F5 YXZl IGdvaW5n IHNs dWc= IEFtZXJpYw== IHNwZWM= IGhhbmQ= IGJldHdlZW4= aXN0cw== IERl b290 SXQ= IGVhcg== IGFnYWluc3Q= IGhpZ2g= Z2Fu YXo= YXRoZXI= IGV4cA== IG9w IGlucw== IGdy IGhlbHA= IHJlcXU= ZXRz aW5z IFBybw== aXNt IGZvdW5k bGFuZA== YXRh dXNz YW1lcw== IHBlcnNvbg== IGdyZWF0 cHI= IHNpZ24= IEFu J3Zl IHNvbWV0 IHNlcg== aGlw IHJ1bg== IDo= IHRlcg== aXJlY3Q= IGZvbGxvdw== IGRldA== aWNlcw== IGZpbmQ= MTI= IG1lbQ== IGNy ZXJlZA== ZXg= IGV4dA== dXRo ZW5zZQ== Y28= IHRlYW0= dmluZw== b3VzZQ== YXNo YXR0 dmVk IHN5c3RlbQ== IEFz ZGVy aXZlcw== bWlu IGxlYWQ= IEJs Y2VudA== IGFyb3VuZA== IGdvdmVybg== IGN1cg== dmVsb3A= YW55 IGNvdXI= YWx0aA== YWdlcw== aXpl IGNhcg== b2Rl IGxhdw== IHJlYWQ= J20= Y29u IHJlYWw= IHN1cHBvcnQ= IDEy Li4uLg== IHJlYWxseQ== bmVzcw== IGZhY3Q= IGRheQ== IGJvdGg= eWluZw== IHNlcnY= IEZvcg== IHRocmVl IHdvbQ== IG1lZA== b2R5 IFRoZXk= NTA= IGV4cGVy dG9u IGVhY2g= YWtlcw== IGNoZQ== IGNyZQ== aW5lcw== IHJlcA== MTk= Z2c= aWxsaW9u IGdyb3U= dXRl aWs= V2U= Z2V0 RVI= IG1ldA== IHNheXM= b3g= IGR1cmluZw== ZXJu aXplZA== YXJlZA== IGZhbQ== aWNhbGx5 IGhhcHA= IElz IGNoYXI= bWVk dmVudA== IGdlbmVy aWVudA== cGxl aWV0 cmVudA== MTE= dmVz cHRpb24= IDIw Zm9ybWF0aW9u IGNvcg== IG9mZmlj aWVsZA== IHRvbw== aXNpb24= IGluZg== IFo= dGhl b2Fk IHB1YmxpYw== IHByb2c= cmlj Kio= IHdhcg== IHBvd2Vy dmlldw== IGZldw== IGxvYw== IGRpZmZlcmVudA== IHN0YXRl IGhlYWQ= J2xs IHBvc3M= IHN0YXQ= cmV0 YW50cw== IHZhbA== IGlzcw== IGNsZQ== aXZlcnM= YW5j IGV4cGw= IGFub3RoZXI= IFE= IGF2 dGhpbmc= bmNl V2g= IGNoaWxk IHNpbmNl aXJlZA== bGVzcw== IGxpZmU= IGRldmVsb3A= aXR0bGU= IGRlcA== IHBhc3M= 44M= IHR1cm4= b3Ju VGhpcw== YmVycw== cm9zcw== IEFk IGZy IHJlc3A= IHNlY29uZA== b2g= IC8= IGRpc2M= ICY= IHNvbWV0aGluZw== IGNvbXBsZQ== IGVk IGZpbA== IG1vbnRo YWo= dWM= IGdvdmVybm1lbnQ= IHdpdGhvdXQ= IGxlZw== IGRpc3Q= IHB1dA== IHF1ZXN0 YW5u IHByb3Q= MjA= IG5ldmVy aWVuY2U= IGxldmVs IGFydA== IHRoaW5ncw== IG1pZ2h0 IGVmZmVjdA== IGNvbnRybw== IGNlbnQ= IDE4 IGFsbG93 IGJlbGll Y2hvb2w= b3R0 IGluY3Jl IGZlZWw= IHJlc3VsdA== IGxvdA== IGZ1bg== b3Rl IHR5 ZXJlc3Q= IGNvbnRpbg== IHVzaW5n IGJpZw== MjAx IGFzaw== IGJlc3Q= ICk= SU4= IG9wcA== MzA= IG51bWJlcg== aW5lc3M= U3Q= bGVhc2U= IGNh IG11c3Q= IGRpcmVjdA== IGds IDw= IG9wZW4= IHBvc3Q= IGNvbWU= IHNlZW0= b3JkaW5n IHdlZWs= YXRlbHk= aXRhbA== IGVs cmllbmQ= IGZhcg== IHRyYQ== aW5hbA== IHByaQ== IFVT IHBsYWNl IGZvcm0= IHRvbGQ= Ijo= YWlucw== YXR1cmU= IFRydW1w IHN0YW5k ICM= aWRlcg== IEZy IG5leHQ= IHNvYw== IHB1cg== IGxldA== IGxpdHRsZQ== IGh1bQ== IGk= cm9u MTU= IDE1 IGNvbW11bg== IG1hcms= IFRoZXJl IHdy IFRoYXQ= IGluZm9ybWF0aW9u d2F5cw== IGJ1cw== YXBw IGludmVzdA== bWU= IGhhcmQ= YWluZWQ= ZWFk IGltcG9ydA== IGFwcHJv IHRlc3Q= IHRyaQ== IHJlc3Q= b3NlZA== IGZ1bGw= IGNhcmU= IFNw IGNhc2U= T04= IHNr IGxlc3M= ICs= IHBhcnRpYw== IFBs YWJseQ== dWNr aXNoZWQ= Y2hu YmU= IGxpc3Q= YXRvcg== IHRvcA== IGFkdg== IEJl cnVjdA== IGRlbQ== cmF0aW9u bGluZw== Z3k= cmVlbg== Z2Vy IGhvbWU= IGxlZnQ= IGJldHRlcg== IGRhdGE= IDEx IGF0dGFjaw== IHByb2JsZQ== bGluZQ== YXJkcw== IGJlaA== cmFs IEhvdw== IFNoZQ== YXJnZQ== IC0t Oi8v IGJybw== IFBo YXRz IGJ1aWxk d3c= aWRlZA== YWlt YXNlcw== ZW5jeQ== IG1haW4= aW5lZA== IGluY2x1ZGluZw== IHs= IGdvdA== IGludGVyZXN0 IGtlZXA= IFg= IGVhcw== YWluaW5n IGNsYXNz 4oCm IE5v IHZhcg== IHNtYWxs YW1wbGU= QVQ= IGlkZQ== IFNv IHJlY2U= IHBvbGl0 IG1vdg== IHBsYW4= IHBlcmNlbnQ= aXZpbmc= IGNhbXA= IHBheQ== MTQ= c2M= aXNlZA== IHVudA== b25leQ== cGxveQ== PT09PQ== IGRpZG4= IEluZA== ZWxz ZXJ0YWlu IHBvcw== X19fXw== aXZlcg== IHByb2Nlc3M= IHByb2dyYW0= aWZpZWQ= IFJlcA== MTY= dXJv b2xvZ3k= YXR0ZXI= aW5h IG5hbWU= IEFsbA== IGZvdXI= IHJldHVybg== dmlvdXM= YnM= IGNhbGxlZA== IG1vdmU= IFNj aXJk IGdyb3Vw IGJyZQ== IG1lbg== IGNhcA== dGVu ZWU= IGRyaQ== bGVn aGVyZQ== dXRob3I= IHBhdA== IGN1cnJlbnQ= aWRlcw== IHBvcA== dG8= ZW50aW9u IGFsd2F5cw== IG1pbA== IHdvbWVu IDE2 IG9sZA== aXZlbg== cmFwaA== IE9y cm9y ZW50bHk= IG5lYXI= IEV4 cmVhbQ== c2g= IDE0 IGZyZWU= aXNzaW9u c3RhbmQ= IENvbg== YWxpdHk= dXNlZA== MTM= IGRlc2lnbg== IGNoYW5nZQ== IGNoYW5n IGJv IHZpcw== ZW1iZXI= IGJvb2s= cmVhZHk= IGtpbGw= MjU= cHBlZA== IGF3YXk= IGFibGU= IGNvdW50cnk= IGNvbnN0 YXJu IG9yZGVy QVI= aW9y aXVt b3J0aA== MTg= YWlsYWJsZQ== IHN3 IG1pbGxpb24= IDEz YXRpYw== dGVk IEdv IG9wZXI= ZW5n IHRoaW5n YWpvcg== Y29ub20= IENvbW0= IHdoeQ== dXJlZA== dXJhbA== IHNjaG9vbA== Ynk= IE1hcg== IGFmZg== IGRheXM= IGFubg== dXNo YW5l SWY= ZWc= IHByb2Y= IGhlYWx0aA== b3V0aA== QnV0 aW9uYWw= Liw= IHNvbA== IGFscmVhZHk= IDMw IGNoYXJhY3Q= SGU= IGZyaWVuZA== RVM= aWFucw== aWNsZQ== J2Q= IE9u IGxlYXN0 IHByb20= IGRy IGhpc3Q= aXRoZXI= IGVzdA== aXF1 MTc= c29u IHRlbGw= IHRhbGs= b2hu b2ludA== bGVjdGlvbg== QU4= IHVudGls YXVnaA== IGxhdGVy IHZl IHZpZXc= ZW5kaW5n aXZlZA== IHdvcmQ= d2FyZQ== IGNvc3Q= IGVub3VnaA== IGdpdmU= IFVuaXRlZA== IHRlY2hu YXJlbnQ= T1I= IHBhcg== IERy IDIwMTY= cmlzdA== ZXJpbmc= IMI= IGxhcmdl c2lkZQ== YWN5 Y2Nlc3M= IHdpbg== IGltcG9ydGFudA== IDE5OQ== IGRvZXNu IDE3 IGJ1c2luZXNz IGNsZWFy IHJlc2U= Iiw= dXJ5 IGVxdQ== YXN0ZXI= YWxm IEFtZXJpY2Fu bmVjdA== IGV4cGVjdA== aXZlcnNpdHk= IG9jYw== IEZs IGtpbmQ= IG1lYW4= IHBhc3Q= IGRldg== IGJhcw== bGV0 cmFmdA== IG9yZ2Fu IGRlbA== IHBlcmZvcm0= IHN0b3J5 IHNlYXNvbg== IENvbA== IGNsYWlt IGNhbWU= IHdpdGhpbg== IGxpbmU= IHByb2plY3Q= IEF0 IGNvbnRyb2w= ZW5kZWQ= IFN5 IGFpcg== aXphdGlvbg== ICo= bGV5 IG1vbmV5 aWRk WW91 Zm9y IGZhbWlseQ== IG1ha2luZw== IGJpdA== IHBvbGljZQ== IGhhcHBlbg== IHZlcnM= b255 dWZm IFdoZW4= IHNpdA== aWRlbw== bGY= aXNvbg== IHN1cmU= Z2lu IGFwcGVhcg== IGxpZ2h0 IGVz b2Y= IHdhdGVy IHRpbWVz bm90 IGdyb3c= IGNvbXBhbnk= IFRl b3dz IG1hcg== b3VyY2U= aW9s YXJt YnI= IGV4YW1wbGU= IGNvbmM= IGZvcmU= IFRv cHJv RU4= cmllcw== IDI1 IENhbg== bmV5 IGFjdHVhbGx5 IGV2ZXI= dXJpdHk= YWtlbg== YXBz IHRheA== IG1ham9y YW1h IG9mdGVu ZXJhbA== IGh1bWFu IGpvYg== aXN0ZXI= IGF2YWlsYWJsZQ== b2Ny ZW5u YWlk aXZpZA== IHJlY29yZA== PyI= IHNpbmc= IEFt aWRlbmNl IG5ld3M= c3Rlcg== IGVjb25vbQ== IGZvbGxvd2luZw== IEJy aXNpbmc= IGhvdXI= bW9zdA== dW1lbnQ= IHNleA== IGRlc2M= IGJlY29tZQ== IEVk IHRvb2s= IGhhdmluZw== IHByb2R1Y3Q= YXVsdA== QXM= YXJpbmc= IG1lYW5z IGhvcA== dW5l IGNobw== IGNlcnRhaW4= IG5vbg== IGRlYWw= MjQ= bGVtZW50 b2Np ZW5l IHNpZGU= IFBy IE1heQ== IHJlYXNvbg== dWVk Y2hlZA== dWxhdGlvbg== IGVsZWN0 IG9mZmljaWFs IHBvc3NpYmxl IGhvbGQ= YW5kcw== b3Rz IGNpdHk= b3JpZXM= IHNldmVy IGNoaWxkcmVu IG9uY2U= IGFjdGl2 bGVy IG5pZ2h0 aXRpb25z IEpvaG4= YXBl cGxheQ== IGRvbmU= IGxpbQ== IHdvcmtpbmc= IFByZXM= b3JsZA== ZWI= IENv IGJvZHk= YWlscw== dXRlcw== IE1y IHdoZXRoZXI= IGF1dGhvcg== cm9w IHByb3Blcg== IHNlZW4= KTs= IGZhYw== IFN1 IGNvbmQ= aXRpbmc= IGNvdXJzZQ== IH0= LS0tLS0tLS0tLS0tLS0tLQ== YWlnbg== IGV2ZW50 IGVuZw== IHBvdA== IGludGVybg== aWFt IHNob3J0 ZW1wdA== 44I= IEdvZA== aWxhcg== ODA= IG9yaWc= SVM= b3Vybg== YWJpbGl0eQ== aXRpdmU= IGRhbQ== IDEwMA== IHByZXNz IGRvaW5n IHByb3RlY3Q= cmluZw== IHRob3VnaHQ= IHF1ZXN0aW9u cmV3 IFdhcg== IHNldmVyYWw= IFN0YXRl IGdpdmVu IGZ1bmQ= IFR3 IHdlbnQ= YW5jZXM= d29yaw== cG9y bXk= NDA= IGFyZw== YXJ0bWVudA== dXN0b20= IHBvbGlj IG1lZXQ= IGNyZWF0 MjI= IFN0YXRlcw== IGdhbWVz cmF3 dXR1cmU= IHVuZGVyc3RhbmQ= dXJz IE9i bGlzaA== c3k= IG1ha2Vz IHdvbg== YWdvbg== IGh0dA== IGxvdmU= ZW50aWFs IGNvbXBsZXRl cGFy IElt QUw= IGFjY291bnQ= wqA= b3JlZA== dmVydA== IGlkZW50 IDIwMTU= IG90aGVycw== IE1pbg== aWJlcg== dmVyYWdl VGhlcmU= aXRpb25hbA== ZGQ= IHByb2I= IHlvdW5n IGFsb25n IGFjY29yZGluZw== IHlldA== IG1lbWJlcnM= IFdoYXQ= b2lk IE1hbg== QW5k IGFtb25n YWk= IGVtcGxveQ== IFJlcw== ID4= IGludm9s IGxvdw== YWY= IENhcg== IGhpZw== IE9uZQ== IFNlYw== aW5hdGlvbg== IGxpa2VseQ== IGFudA== YWdlZA== IFJ1c3M= IGJlbg== IHJlbGU= Rm9y YmFjaw== IE5vdA== IHByZXNpZGVudA== YmFsbA== IGFjY2Vzcw== aXZpZHVhbA== IERlbQ== IEV1cm8= NjA= IGtub3du aXJs IEdy IGVhcmx5 dXNl aWV0eQ== 4oCT IGZpZ2h0 IHNlbnQ= IHRvZGF5 IG1hcmtldA== Ii4= IGJhc2Vk IHN0cm9uZw== dXJ0aGVy IGRlYg== bWJlcg== IHByb2JsZW0= IGRlYXRo IHNvY2lhbA== aW1hdGU= QVM= b3J0dW4= IGNhbXBhaWdu ZXJ5 Q2g= IGV5 aWFsbHk= IG11cw== d2g= cG9z IGVy IHNhZg== IG1vbnRocw== aXJvbg== IHZpb2w= IGZpdmU= IHN0cmU= IHBsYXllcnM= aW5j YWxk eWVhcg== YXVu IHN1Y2Nlc3M= IHByZXNlbnQ= ZXJlbmNl IDIwMTQ= IHN1Z2c= IHBhcnRpY3VsYXI= IHRyeQ== IHN1Z2dlc3Q= IENocmlzdA== b25lcw== IHByaXY= MjM= IGNyaXQ= IGxhbmQ= IGxvY2Fs aWZ5 Mjk= IGF1dA== RUQ= IEd1 IG11bHQ= IHBvbGl0aWNhbA== IGFza2Vk IGZvcm1lcg== aXR0ZXI= cmlwdA== IGNsb3Nl IHByYWN0 IFlvcms= IGdldHRpbmc= IGFjcm9zcw== IGNvbWI= IGJlbGlldmU= IHo= IHRvZ2V0 IHRvZ2V0aGVy IENlbnQ= aXJj IGluZGl2aWR1YWw= IE1j Mjc= aXNr IEVuZw== IGZhY2U= IDI0 IHZhbHVl IGFyZWE= ZXY= IHdyaXQ= IFByZXNpZGVudA== IHZvdA== IGtleQ== IG1vbQ== cHV0 IGFueXRoaW5n IGV4cGVyaWVuY2U= YXR0bGU= IG1pbmQ= YWZm b21t IGZ1dHVyZQ== Z2Vk IGN1dA== IHRvdA== aXRjaA== IHZpZGVv IGludmVzdGln IG5ldA== IE15 cmljdA== aWVu Lik= IGltcHJv dGhvdWdo d2FyZHM= IGNvbm5lY3Q= IE1lZA== c2VsdmVz ZW5zaXZl bWI= b2Jlcg== YXRvcnM= QW4= IDUw IHJlZHU= cmVzZW50 IGFib3Zl IGZyZQ== IEV1cm9wZQ== c3c= IGFtb3VudA== IEFwcA== IGVpdGhlcg== IG1pbGl0 IGFuYWw= IGZhaWw= IEVu YWxlcw== IHNwZWNpYWw= IGJsYWNr SVQ= Y2hlcg== IGxvb2tpbmc= IGZpcmU= eW4= IGFsbW9zdA== b29u IHN0dWR5 IG1pc3M= Y2hlcw== cm93bg== IHRyZQ== IGNvbW11bml0eQ== IG1lZGlh IGZvb2Q= IGNvbWVz IFVuaXZlcnNpdHk= IHNpbmdsZQ== V2hhdA== dWx5 IGhhbGY= YWd1ZQ== aG9k IFJlcHVibGlj IHN0YXJ0ZWQ= IHF1aWNr b3Rv Ym9vaw== IGlzc3Vl aXRvcg== IGVsc2U= IGNvbnNpZGVy MjY= cm9kdQ== IHRha2Vu Mjg= OTk= IFdpdGg= IHRydWU= IHdh IHRyYWQ= IGFnbw== IG1lc3M= aWVm IGFkZGVk b2tl IGJhZA== IGZhdg== MzM= IHNpbWlsYXI= YXNr IERvbg== IGNoYXJhY3Rlcg== b3J0cw== IEhvdXNl IHJlcG9ydGVk IHR5cGU= dmFs aW9k IEhvd2V2ZXI= IHRhcmc= IGVudGlyZQ== cHBpbmc= IGhpc3Rvcnk= IGxpdmU= ZmZpYw== Li4uLi4uLi4= ZWRlcmFs IHRyeWluZw== IGRpc2N1c3M= IEhhcg== YWNlcw== bGlzaGVk IHNlbGY= b3Nw cmVzdA== IHJvb20= ZWx0 IGZhbGw= b2x1dGlvbg== IGV0 IHg= IGlzbg== IGlkZWE= Ym8= IHNvdW5k IERlcA== IHNvbWVvbmU= Y2lhbGx5 dWxseQ== IGZvYw== IG9iamVjdA== aWZ0 YXBlcg== IHBsYXllcg== IHJhdGhlcg== IHNlcnZpY2U= YXNoaW5n IERv IFBhcnQ= cnVn bW9u cGx5 IG1vcg== IG5vdGhpbmc= IHByb3ZpZGU= SUM= dW5n IHBhcnR5 IGV4aXN0 IG1hZw== NzA= IHJ1bA== IGhvdXNl IGJlaGluZA== IGhvd2V2ZXI= IFdvcmxk IHN1bQ== IGFwcGxpYw== IDs= IGZ1bmN0aW9u Z3I= IFBvbA== IGZyb250 MjAw IHNlcmllcw== IHRlbQ== IHR5cA== aWxscw== IG9wdA== IHBvaW50cw== IGJlbG93 aXR0ZWQ= IHNwZWNpZmlj IDIwMTc= dW1i IHJh IHByZXZpb3Vz IHByZXQ= cmVtZQ== IGN1c3RvbQ== IGNvdXJ0 IE1l IHJlcGw= IHdob2xl Z28= Y2Vy IHRyZWF0 IEFjdA== IHByb2JhYmx5 IGxlYXJu ZW5kZXI= IEFzcw== IHZlcnNpb24= bm93 IGNoZWNr IENhbA== UkU= bWluaXN0 T24= b3VyY2Vz IGJlbmVm IGRvYw== IGRldGVy IGVuYw== IHN1cGVy IGFkZHJlc3M= IHZpY3Q= IDIwMTM= IG1lYXM= dHI= IGZpZWxk V2hlbg== IHNpZ25pZmlj dWdl IGZlYXQ= IGNvbW1vbg== bG9hZA== IGJlZ2lu IGJyaW5n IGFjdGlvbg== ZXJtYW4= IGRlc2NyaWI= IGluZHVzdA== IHdhbnRlZA== cmllZA== bWluZw== IGF0dGVtcHQ= NDU= ZmVy IGR1ZQ== cmVzc2lvbg== IyM= IHNoYWxs IHNpeA== b28= IHN0ZXA= IHB1Yg== IGhpbXNlbGY= IDIz IGNvcA== IGRlc3Q= IHN0b3A= QUM= aWJpbGl0eQ== IGxhYg== aWN1bHQ= IGhvdXJz IGNyZWF0ZQ== IGZ1cnRoZXI= IEFtZXJpY2E= IENpdHk= IGRvdQ== aGVhZA== U1Q= IE5vcnRo Y2luZw== IG5hdGlvbmFs dWxl IEluc3Q= IHRha2luZw== IFF1 aXJ0 IHJlZA== IHJlc2VhcmNo dmlyb24= IEdl IGJyZWFr YW5h IHNwYWNl YXRlcmlhbA== IHJlY2VudA== IEFi IGdlbmVyYWw= IGhpdA== IHBlcmlvZA== IGV2ZXJ5dGhpbmc= aXZlbHk= IHBoeXM= IHNheWluZw== YW5rcw== IGNvdQ== IGN1bHQ= YWNlZA== ZWFs dWF0aW9u IGNvdW4= bHU= IGluY2x1ZGU= IHBvc2l0aW9u IEFmdGVy IENhbmFk IEVt IGltbQ== IFJlZA== IHBpY2s= IGNvbXBs IG1hdHRlcg== cmVn ZXh0 YW5ndQ== aXNj b2xl YXV0 IGNvbXBldA== ZWVk ZmVjdA== IDIx IFNlbg== IFRoZXNl YXNpbmc= IGNhbm5vdA== IGluaXQ= IHJlbGF0aW9ucw== YWNoZWQ= IGJhcg== IDQw IFRI IDIwMTI= IHZvbA== IGdyb3VuZA== IHNlY3VyaXR5 IHVwZA== aWx0 MzU= IGNvbmNlcm4= IEp1c3Q= IHdoaXRl IHNlZW1z IEhlcg== cGVjaWFsbHk= aWVudHM= IGFubm91bg== IGZpZw== aWdodHM= IHN0cmk= bGlrZQ== aWRz IHN1cw== IHdhdGNo IOI= IHdpbmQ= IENvbnQ= IGl0c2VsZg== IG1hc3M= QWw= eWxl aXF1ZQ== IE5hdGlvbmFs IGFicw== IHBhY2s= IG91dHNpZGU= IGFuaW0= IHBhaW4= ZXRlcg== IG1hbmFn ZHVjdA== b2du IF0= IFNlcHQ= c2Vj b2Zm IEphbg== IGZvb3Q= YWRlcw== IHRoaXJk IG1vdA== IGV2aWRlbmNl aW50b24= IHRocmVhdA== YXB0 cGxlcw== Y2xl IGxv IGRlY2w= IGl0ZW0= bWVkaQ== IHJlcHJlc2VudA== b21i YW1lcg== IHNpZ25pZmljYW50 b2dyYXBo c3U= IGNhbA== aXJlcw== MDAwMA== SUQ= QU0= IHNpbXBseQ== IGxvbmdlcg== IGZpbGU= T1Q= Y2hl U28= YXRlZw== b3Jn IEhpcw== IGVuZXI= IGRvbQ== IHVwb24= aWxp Ijoi IHRoZW1zZWx2ZXM= IGNvbWluZw== IHF1aXRl IGRpZmZpY3VsdA== IEJhcg== aWxpdGllcw== cmVs ZW5kcw== Y2lhbA== NjQ= IHdvbWFu cmFw eXI= IG5lY2Vzcw== aXBz IHRleHQ= IHJlcXVpcmU= IG1pbGl0YXJ5 IHJldmlldw== IHJlc3BvbnM= NzU= IHN1YmplY3Q= IGluc3RlYWQ= IGlzc3Vlcw== IGdlbg== Iiwi IG1pbnV0ZXM= IHdlYXA= cmF5 YW1lZA== dGltZQ== Ymw= SG93 IGNvZGU= IFNt IGhpZ2hlcg== IFN0ZQ== cmlz IHBhZ2U= IHN0dWRlbnRz IEludGVybg== IG1ldGhvZA== IEF1Zw== IFBlcg== IEFn IHBvbGljeQ== IFN3 IGV4ZWM= IGFjY2VwdA== dW1l cmlidXQ= IHdvcmRz IGZpbmFs IGNoYW5nZXM= IERlbW9jcg== IGZyaWVuZHM= IHJlc3BlY3Q= IGVw IGNvbXBhbg== aXZpbA== IGRhbWFnZQ== KioqKg== b2dsZQ== dmlyb25tZW50 IG5lZw== ZW50YWw= IGFw IHRvdGFs aXZhbA== ISI= bGlt IG5lZWRz IGFncmU= IGRldmVsb3BtZW50 IGFnZQ== aXBsZQ== MjE= IHJlc3VsdHM= IEFm U2g= IGd1bg== IE9iYW1h cm9sbA== IEA= IHJpZ2h0cw== IEJyaXQ= IHJ1bm5pbmc= IHdhc24= IHBvcnQ= IHJhdGU= IHByZXR0eQ== IHRhcmdldA== IHNhdw== IGNpcmM= IHdvcmtz aWNybw== YWx0 b3Zlcg== d3d3 VGhhdA== bGllcg== IGV2ZXJ5b25l dWRl IHBpZQ== aWRkbGU= cmFlbA== IHJhZA== IGJsb2Nr IHdhbGs= VG8= 44E= bmVz IEF1c3Q= YXVs cm90ZQ== IFNvdXRo ZXNzaW9u b3Bo IHNob3dz IHNpdGU= IGpv IHJpc2s= Y2x1cw== bHQ= IGluag== aWRpbmc= IFNwZQ== IGNoYWxs aXJt IDIy aXR0aW5n c3Ry IGh5 TEU= a2V5 IGJlZ2Fu YXR1cg== YXNoaW5ndG9u bGFt IERhdg== Yml0 IHNpemU= IFBhcg== Mzg= b3VybmFs ZmFjZQ== IGRlY2lzaW9u IGxhcmc= IGp1ZA== cmVjdA== IGNvbnRpbnVl IE9jdA== b3ZlcmVk IEludA== PT09PT09PT0= IHBhcmVudA== IFdpbGw= IGVhc3k= IGRydWc= YW5nZXI= IHNlbnNl IGRp aWRheQ== IGVuZXJneQ== aXN0aWM= IGFzc29jaQ== YXJ0ZXI= b2JhbA== ZWtz IEVs dXJjaA== IGdpcmw= b2U= aXRsZQ== IDI4 IENoZQ== IHJlcXVlc3Q= IHNvb24= IGhvc3Q= a3k= IHN0YXRlcw== b21lcw== IG1hdGVyaWFs bGV4 IG1vbWVudA== IGFuc3c= b25zZQ== IGVzcGVjaWFsbHk= IG5vcm0= IHNlcnZpY2Vz cGl0ZQ== cmFu IHJvbGU= NDQ= KTo= IGNyZWQ= Q2w= X19fX19fX18= IG1hdA== IGxvZw== IENsaW50b24= T1U= IG9mZmljZQ== IDI2 IGNoYXJn IHRyYWNr bWE= IGhlYXJ0 IGJhbGw= IHBlcnNvbmFs IGJ1aWxkaW5n bmE= c2V0 Ym9keQ== IEJsYWNr IGluY3JlYXNl aXR0ZW4= IG5lZWRlZA== MzY= MzI= PSI= IGxvc3Q= IGJlY2FtZQ== IGdyb3Vwcw== IE11cw== IHdyb3Rl IFBl IHByb3A= am95 w6k= IFdoaXRl IGRlYWQ= Lic= IGh0dHA= IHdlYnM= T1M= IGluc2lkZQ== IHdyb25n IHN0YXRlbWVudA== IC4uLg== eWw= IGZpbG0= IG11c2lj IHNoYXJl aWZpY2F0aW9u IHJlbGVhc2U= IGZvcndhcmQ= IHN0YXk= IGNvbXB1dA== aXR0ZQ== c2Vy IG9yaWdpbmFs IGNhcmQ= IGNhbmQ= IGRpdg== YXR1cmFs IGZhdm9y T00= IGNhc2Vz dXNlcw== IHNlY3Rpb24= IGxlYXZl Z2luZw== b3ZlZA== IFdhc2hpbmd0b24= Mzk= IEds IHJlcXVpcmVk YWN0aW9u YXBhbg== b29y aXRlcg== IEtpbmc= IGNvdW50cmllcw== IEdlcm1hbg== bGxpbmc= IDI3 MzQ= IHF1ZXN0aW9ucw== IHByaW0= IGNlbGw= IHNob290 IGFueW9uZQ== IFdlc3Q= IGFmZmVjdA== ZXBlbmQ= IG9ubGluZQ== IElzcmFlbA== IFNlcHRlbWJlcg== IGFiaWxpdHk= IGNvbnRlbnQ= aXNlcw== IHJldmU= IGxhdW4= IGluZGlj IGZvcmNl Y2FzdA== IHNvbGQ= YXZpbmc= Zmw= IHNvZnQ= IGNvbXBhbmllcw== Y2VlZA== IGFydGljbGU= IGF1ZA== IHJldg== IGVkdWM= IHBsYXlpbmc= MDU= IGhlbGQ= Y3Rvcg== IHJlbGVhc2Vk IGZlZGVyYWw= Mzc= IGFkbWluaXN0 IGludGVydmlldw== IGluc3RhbGw= IHJlY2VpdmVk IHNvdXJjZQ== dWs= UGg= IHNlcmlvdXM= IGNyZWF0ZWQ= IGNhdXNl IGltbWVkaQ== IGRlZmlu dWVs IERlcGFydG1lbnQ= Y3Rpb25z IENvdXI= IE5vdw== emU= aXRlcw== aXR1dGlvbg== IGxhdGU= IHNwZWFr bmVycw== IGxlZ2Fs YXJp IENvcg== IHdlZWtz IG1vZGVs IHByZWQ= IGV4YWN0 QkM= IEJ5 SU5H b3Npbmc= IHRha2Vz IHJlZ2FyZA== IG9wcG9ydHVu IHByaWNl IDE5OA== IEFwcg== ZnVsbHk= IG9yZA== IHByb2JsZW1z cnVjdGlvbg== aGFt IENvdW50 bGVnZQ== IGxlYWRlcnM= RVQ= bGV2 IGRlZXA= b2xvZ2ljYWw= ZXNl aGFwcw== IFNvbWU= IHBlcnM= IGNvbnRyYWN0 IHJlbGF0aW9uc2hpcA== c3A= b3Vk IGJhc2U= NDg= bWl0 QWQ= YW5jaWFs IGNvbnN1bQ== IHBvdGVudGlhbA== IGxhbmd1 cmVt ZXRo IHJlbGln cmVzc2Vk NjY= IGxpbms= IGxvd2Vy YXllcg== IEp1bmU= IGZlbQ== dW50 ZXJj dXJk IGNvbnRhY3Q= IGlsbA== IG1vdGhlcg== IGVzdGFi aHR0 IE1hcmNo IEJybw== IENoaW5h IDI5 IHNxdQ== IHByb3ZpZGVk IGF2ZXJhZ2U= YXNvbnM= IDIwMTE= IGV4YW0= bGlu NTU= bmVk IHBlcmZlY3Q= IHRvdQ== YWxzZQ== dXg= IGJ1eQ== IHNob3Q= IGNvbGxlY3Q= IHBob3Q= IHBsYXllZA== IHN1cnBy IG9mZmljaWFscw== IHNpbXBsZQ== YXZ5 IGluZHVzdHJ5 IGhhbmRz Z3JvdW5k IHB1bGw= IHJvdW5k IHVzZXI= IHJhbmdl dWFyeQ== IHByaXZhdGU= b3Bz ZWVz IHdheXM= IE1pY2g= IHZlaA== IGV4Y2VwdA== IHRlcm1z aW11bQ== cHBlcg== SU9O b3Jlcw== IERyYWdvbg== b3Vs IGRlbg== IHBlcmZvcm1hbmNl IGJpbGw= Y2ls NDc= IGVudmlyb25tZW50 IGV4Yw== YWRk IHdvcnRo IHBpY3Q= IGNoYW5jZQ== IDIwMTg= Ym9y IHNwZWVk aWN0aW9u IGFsbGVn IEphcGFu YXRvcnk= cmVldA== IG1hdGNo IElJ IHN0cnU= b3JkZXI= IHN0ZQ== IGxpdmluZw== IHN0cnVjdA== aW5v IHNlcGFy aGVybg== IHJlc3BvbnNl IGVuam95 IHZpYQ== QUQ= dW1lbnRz YWNlYm9vaw== IG1lbWJlcg== aWJy aXppbmc= IHRvb2w= IE1vbg== IFdoaWxl aG9vZA== IEFuZw== IERlZg== IG9mZmVy VHI= YXVy IHR1cm5lZA== IEp1bHk= ZG93bg== YW5jZWQ= IHJlY2VudGx5 IEVhcg== IGNl IFN0YXI= IENvbmc= cm91Z2h0 IGJsb29k IGhvcGU= IGNvbW1lbnQ= YWludA== IGFycmk= aWxlcw== IHBhcnRpY2lw b3VnaHQ= cmlwdGlvbg== MDg= NDk= IGdhdmU= IHNlbGVjdA== IGtpbGxlZA== c3ljaA== IGdvZXM= aWo= IGNvbGw= IGltcGFjdA== YXRpdmVz IFNlcg== MDk= IEF1Z3VzdA== IGJveQ== ZGU= IERlcw== IGZlbHQ= VVM= IGV4cGVjdGVk IGltYWdl IE1hcms= Y2NvcmRpbmc= b2ljZQ== RUM= IE1hZw== ZW5lZA== aG9sZA== IFBvc3Q= IHByZXZlbnQ= Tm8= IGludm9sdmVk IGV5ZXM= IHF1aWNrbHk= QXQ= dW5r IGJlaGF2 IHVy IGxlZA== Y29tZQ== ZXk= IGNhbmRpZA== IGVhcmxpZXI= IGZvY3Vz ZXR5 UHJv bGVkZ2U= aXhlZA== aWxsZWQ= IHBvcHVsYXI= QVA= IHNldHQ= bGlnaHQ= IHZhcmlvdXM= aW5rcw== IGxldmVscw== IHJvYWQ= ZWxsaWc= YWJsZXM= aGVs aXR0ZWU= IEdlbmVy eXBl IGhlYXJk aWNsZXM= IG1pcw== IHVzZXJz IFNhbg== IGltcHJvdmU= IGZhdGhlcg== IHNlYXJjaA== VGhleQ== dmls IHByb2Zlc3M= IGtuZXc= IGxvc3M= IGV2ZW50cw== NjU= IGJpbGxpb24= MDc= MDI= IE5ld3M= IEFN IGNvdmVy d2hlcmU= ZW5zaW9u IGJvdHQ= IGFyZWFz ZW5jZXM= b3Bl IFR3aXR0ZXI= YWVs IGdldHM= IEdvb2dsZQ== IHNu aWFudA== IHZvdGU= IG5lYXJseQ== IGluY2x1ZGVk IHJlY29nbg== eno= bW0= YWxlZA== IGhhcHBlbmVk MDQ= IGhvdA== IHdob3Nl IGNpdmls IHN1ZmY= b2Vz aXRpeg== IFN5cmk= IHJlc3BvbmQ= IGhvbg== IGZlYXR1cmVz IGVjb25vbWlj IEFwcmls cmlt IHRlY2hub2xvZ3k= IG9wdGlvbg== YWdpbmc= IHB1cmNo UmU= IGxhdA== Y2hpZQ== aXNs IHJlY29tbQ== dWY= IHRyYWluaW5n IGVmZmVjdHM= IGZhc3Q= IDIwMTA= IG9jY3Vy IHdlYnNpdGU= IGVtYWls IHNlbnM= ZWNo IG9pbA== IGluZmx1 IGN1cnJlbnRseQ== IFNjaA== IEFkZA== IGdvYWw= IHNjaWVudA== IGNvbnY= MTAw ZW15 IGRlY2lkZWQ= IHRyYXZlbA== IG1lbnRpb24= TEw= MDM= IGVsZWN0aW9u IHBob25l IGxvb2tz IHNpdHVhdGlvbg== IGN5 IGhvcg== YmVk IENvdXJ0 YWlseQ== YXZlcw== IHF1YWxpdHk= IENvbXA= d2lzZQ== IHRhYmxl IHN0YWZm IFdpbmQ= ZXR0 IHRyaWVk aWRlcmVk IGFkZGl0aW9u IGJveA== IGxhY2s= YXJpbHk= IHdpZGU= IG1pZA== IGJvYXJk eXNpcw== IGFudGk= aGE= IGRpZw== ZW5pbmc= IGRybw== Q29u Njg= IHNsb3c= YmFzZWQ= c2VxdQ== IHBhdGg= RXg= YWtlcg== IHdvcmtlZA== IHBlbg== IGVuZ2luZQ== IGxvb2tlZA== IFN1cGVy IFNlcnY= IHZpY3RpbQ== VW4= IHByb3BlcnR5 IGludHJvZHU= IGV4ZWN1dA== IFBN TGU= IGNvbG9y IE1vcmU= IDYw IG5ldHdvcms= IGRhdGU= Y3Vs aWRnZQ== IGV4dHJh MzE= IHNsZQ== Njc= IHdvbmQ= IHJlcG9ydHM= anVzdA== IEF1c3RyYWw= IGNhcGl0YWw= IGVucw== IGNvbW1hbmQ= IGFsbG93ZWQ= IHByZXA= IGNhcHQ= aGli IG51bWJlcnM= Y2hhbg== IGZhaXI= bXA= b21z IHJlYWNo V2l0aA== dGFpbg== IGJyb2Fk IGNvdXBsZQ== ZWNhdXNl bHlpbmc= IEZlYg== IHNjcmVlbg== IGxpdmVz IHByaW9y IENvbmdyZXNz QXI= IGFwcHJvYWNo IGVtZXI= YXJpZXM= IERpcw== c2Vydg== IE5l IGJ1aWx0 Y2llcw== IHJlcGU= IHJ1bGVz Zm9yY2U= IFBhbA== IGZpbmFuY2lhbA== IGNvbnNpZGVyZWQ= IENoYXI= bmNlcw== IElT IGJyb3VnaHQ= IGJp aWVycw== IFNpbQ== T1A= IHByb2R1Y3Rz IHZpc2l0 IGRvY3VtZW50 IGNvbmR1Y3Q= IGNvbXBsZXRlbHk= aW5pbmc= IENhbGlm aWJseQ== IHdyaXR0ZW4= IFRW ZW1lbnRz IGRyYXc= T25l IHB1Ymxpc2hlZA== IHNlY3JldA== cmFpbg== aGV0 IEZhY2Vib29r b25kYXk= IFVw IHNleHVhbA== IHRob3Vz IFBhdA== IGVzcw== IHN0YW5kYXJk IGFybQ== Z2Vz ZWN0aW9u IGZlbGw= IGZvcmVpZ24= YW5p IEZyaWRheQ== IHJlZ3VsYXI= aW5hcnk= IGluY3JlYXNlZA== IHVzdWFsbHk= IGRlbW9u IGRhcms= IGFkZGl0aW9uYWw= cm9s IE9m IHByb2R1Y3Rpb24= ISE= dW5kcmVk IGludGVybmF0aW9uYWw= aWRlbnRz IEZyZWU= cm91cA== IHJhY2U= IG1hY2g= IGh1Z2U= QWxs bGVhcg== b3ZlbWJlcg== IHRvd24= IGF0dGVudGlvbg== IE9mZg== eW9uZA== IFRoZW4= ZmllbGQ= IHRlcnJvcg== cmF6 IEJv IG1lZXRpbmc= IFBhcms= IGFycmVzdA== IGZlYXI= IGF3 IFZhbA== b3Jpbmc= Jyw= IGV4dHJlbWU= YXJy IHdvcmtlcnM= QWZ0ZXI= IDMx bmV0 YW1lbnQ= IGRpcmVjdGx5 IHBvcHVsYXRpb24= dWJl IE9jdG9iZXI= IElO IEphbnVhcnk= NTk= IERhdmlk IGNyb3Nz Y2VtYmVy IEZpcnN0 IG1lc3NhZ2U= aXJpdA== IG5hdGlvbg== IHBvbGw= aXNpb25z IGFuc3dlcg== bnk= aXNvZGU= IGNhcnJ5 IFJ1c3NpYQ== IGhlYXI= ZW5ndGg= cm95 IG5hdHVyYWw= aW5hbGx5 IGRvZw== bWl0dGVk IHRyYWRl IHN1YnN0 IG11bHRpcGxl IEFmcmlj IGZhbnM= IHNvcnQ= IGdsb2JhbA== aWNhdGlvbg== IFdlZA== YXJh IGFjaGll IGxhbmd1YWdl dmV5 IHRhbA== IG5lY2Vzc2FyeQ== IGRldGFpbHM= IHNlbg== IFN1bmQ= IFJlZw== IFJlYw== MDY= IHNpbA== cmVzc2l2ZQ== IG1lZGljYWw= dW5jaA== b3JuaWE= IHVuZA== Zm9ydA== b2Nrcw== IE1vbmRheQ== dWVzZGF5 Y3JhZnQ= Nzc= dXJ0 IHZlcg== IEhpbGw= IHJlY2VpdmU= IG1vcm5pbmc= ZXN0ZXJu IGJhbms= IHNhdA== aXJ0aA== IEhpZ2g= IGRldmljZQ== IFRIRQ== IENlbnRlcg== IHNhZmU= IHBsZQ== IENhbmFkYQ== IHN5c3RlbXM= IGFzc2lzdA== IHN1cnY= IGJhdHRsZQ== IFNvYw== dmVydGlz U2hl IHBhcGVy IGdyb3d0aA== IGNhc3Q= U2M= IHBsYW5z bGxlZA== IHBhcnRz IHdhbGw= IG1vdmVtZW50 IHByYWN0aWNl aW1hdGVseQ== IGRpc3BsYXk= IHNvbWV0aW1lcw== b21w IFBhdWw= IFllcw== a2luZw== NTg= b2x5 IHNvbg== IGF2b2lk b2tlcw== IEpldw== IHRvd2FyZHM= YXNj IC8v IEtvcmU= IHRhbGtpbmc= IGNvcnJlY3Q= IHNwZW50 aWNrcw== aWFibGU= ZWFyZWQ= IHRlcm0= IHdhbnRz b21pbmc= IHV0 IGRvdWI= IGZvcmNlcw== IHBsZWFzZQ== Njk= IE5vdmVtYmVy YXRmb3Jt b25kb24= IG9uZXM= IGltbWVkaWF0ZWx5 IFJ1c3NpYW4= IE1ldA== IGRlZw== IHBhcmVudHM= Q0g= IEFtZXJpY2Fucw== YWx5 IE1vZA== IHNob3du IGNvbmRpdGlvbnM= IHN0dWZm IHJlYg== IFlvdXI= IGluY2x1ZGVz bm93bg== IFNhbQ== IGV4cGVyaWVu bWlzc2lvbg== IEV2ZW4= YXVnaHQ= IGFubm91bmNlZA== IFJlcHVibGljYW4= IGRldGVybWlu IGRlc2NyaWJlZA== IENvdW50eQ== KCk= IGRvb3I= IGNoYW5nZWQ= IG5laWdo IEhlcmU= IGNsZWFu IHBhbg== IERlY2VtYmVy IEV1cm9wZWFu aXJpbmc= YXB0ZXI= IGNsdWI= IFR1ZXNkYXk= IHBhaWQ= IE5ldA== IGF0dGFja3M= IGNoYXJhY3RlcnM= IGFsb25l IGRpcmVjdG9y ZG9t IDM1 IGxvYWQ= IHJvdXQ= IENhbGlmb3JuaWE= IGZpbmFsbHk= IHJhYw== IGNvbnRy IGV4YWN0bHk= cmVzaA== cHJp IElzbGFt IG5hdHVyZQ== IGNhcmVlcg== IGxhdGVzdA== IGNvbnZlcnM= IFNs cG9zZQ== Y2llbnQ= IEluYw== aXZpdHk= ODg= IEF0dA== IE1vcg== bmVzZGF5 IHdlaWdodA== a2Vu IG5vdGU= IHRlYW1z IFw= YWlycw== IEdyZWVu IGh1bmRyZWQ= b25lbnQ= IHN0cmVuZw== IGNvbnNpc3Q= aWNhdGVk IHJlZ3Vs IGxpYw== YXN0aWM= IHRlbg== dXJzZGF5 ZWxsaWdlbmNl b3VzbHk= IFVL Qkk= IGNvc3Rz IGluZGVwZW5k IEFQ IG5vcm1hbA== IGhvbQ== IG9idmlvdXM= IHN3ZQ== IHN0YXI= IHJlYWR5 YWNoZXI= IGltcGxlbWVudA== Z2VzdA== IHNvbmc= IEdldA== IExhYg== IGludGVyZXN0aW5n dXNpbmc= IGdpdmluZw== IFN1bmRheQ== IGV0Yw== IG1pZGRsZQ== IHJlbWVtYmVy cmlnaHQ= b3NpdGlvbg== dXRpb25z IG1heA== NDY= IHlvdXJzZWxm IGRlbWFuZA== IHRyZWF0bWVudA== IGRhbmdlcg== IENvbnM= IGd1eQ== IEJyaXRpc2g= IHBoeXNpY2Fs IHJlbGF0ZWQ= IHJlbWFpbg== IGNvdWxkbg== IHJlZmVy IGNpdGl6 Ym94 RU5U Ym9hcmQ= IGlubg== SUc= ZXJv IFN0cmVldA== b3NwaXRhbA== cmVuY2g= Y2hlcnM= IHN0cmE= T0w= YWdlcg== IEFO IGVhc2lseQ== SUE= ZW5nZQ== aW55 IGNsb3M= b2NrZWQ= IHVzZXM= IENvdW4= SW0= dWlsZA== Pz8= bW9yZQ== IGFuZw== IHdyaXRl b2x1dGU= NTc= IGxlYWRlcg== IHJlYWRpbmc= PC8= IGF1dG9t ZXN0cw== NDM= IGxlZ2lzbA== IEdvbGQ= IGRlc2lnbmVk IFNU IExlZw== YXJlcw== IGJlYXV0 IFRleA== IGFwcGVhcnM= IHN0cnVnZw== IFJvbQ== IDAw IGNob2ljZQ== IHBhcnRpY3VsYXJseQ== IEZyb20= b3Blcg== IExvbmRvbg== YW5uZWQ= IGFsbG93cw== b2JpbGU= IGRpZmZlcmVuY2U= 4oCi IFZpZXc= IFdlZG5lc2RheQ== IGFsdGhvdWdo IHJlbGF0aXZl IGFwcGxpY2F0aW9u YXRldmVy IGFyZW4= IG15c2VsZg== IGltYWc= IGRpc2U= IHNvY2lldHk= IGZyZXF1 IEVuZ2xpc2g= IHBvb3I= IERheQ== IHdyaXRpbmc= IHNldmVu IHN0YXJ0aW5n IGJ1ZA== IHByaW50 IFRyYW5z dWZhY3Q= IFN0dWQ= bmV3 IGNyaW0= IGdpdmVz IGNvb2w= YWU= aWFuY2U= IEdlbmVyYWw= IHRoaW5raW5n IHNhdmU= IGxpbWl0ZWQ= IFBhcnR5 IG1lYW5pbmc= cGVu b3dlcnM= IEphY2s= RU0= IG5pY2U= cnVwdA== IGdhcw== IGVpZ2h0 IGZlZXQ= IGVmZm9ydA== IGlnbg== aWNpdA== Qmw= Y29pbg== IG9waW4= IGJyYWlu V2hpbGU= aGVzdA== IFRodXJzZGF5 IHdvdWxkbg== YXVnaHRlcg== IHRvdWNo bGVtZW50cw== IHN0dWRpZXM= IGNlbnRlcg== Y29udA== b3JnZQ== IGNvbXB1dGVy IGludmVzdGlnYXRpb24= UGw= b3Jrcw== IDIwMDg= IGluY3JlYXNpbmc= IHN0b3Jl IGNvbW1lbnRz IGJhbA== bWVu IGRvbGw= IGxpYmVy IHdpZmU= IGxhd3M= YXR1cmRheQ== aXRuZXNz IG1vZGVybg== IFNr IGFkbWluaXN0cmF0aW9u IG9wcG9ydHVuaXR5 IHNhbA== IHBvd2VyZnVs TXk= IGNsYWltcw== IEVhcnRo b3Jkcw== IHRpdGxl IGVzYw== bmFtZQ== Tm90 b21lbg== IGJleW9uZA== IGNhbWVy IHNlbGw= aXR1dGU= ZWFyY2g= IGFwcGw= aW1lbnQ= NDI= IEFydA== IHVuZg== IHZpb2xlbmNl dXJn IEVhc3Q= IGNvbXBhcmVk IG9wdGlvbnM= IHRocm91Z2hvdXQ= IHZz aWdy Lls= YWNoZXM= Nzg= IGZpbGVz Rkw= RUw= YXJpYW4= IEphbWVz IEFpcg== YW5jaA== IGRldGFpbA== IHBpZWNl UFM= IG5hbWVk IGVkdWNhdGlvbg== IGRyaXZl IGl0ZW1z IHN0dWRlbnQ= aWNlZA== Ojo= aWNv IHRocm93 IHNjZW5l IGNvbXBsZXg= IDIwMDk= IHByZWM= IEJyZQ== Nzk= IGNvbmNlcHQ= IHN0YXR1cw== YW1pbmc= IGRpZWQ= IGtub3dsZWRnZQ== IGJlZ2lubmluZw== T0Q= cnVhcnk= IGNlcnRhaW5seQ== IGd1eXM= IHNsaWdodA== aW5u b3VuZHM= IGZpbmU= IGZhdA== aWNhdGlvbnM= IHBlcmhhcHM= IEFudA== IGluY29tZQ== IGh0dHBz IG1ham9yaXR5 cG9ydHM= c3Rvbg== IGdyZWF0ZXI= IGZlZWQ= ZW50aWFsbHk= IHNhZmV0eQ== IHVuaXF1ZQ== YW5kb20= IGdvbmU= IHNob3dlZA== IGhpc3Rvcg== IGNvdW50ZXI= aXVz aWRh IGxlYWRpbmc= aXBl IHNlbmQ= IERvbmFsZA== ZXJ2ZQ== IGRlZmVuc2U= aW5lc2U= IHllcw== IEZpcmU= IE11c2xpbQ== cmFx IGNvbnRpbnVlZA== b3No IHByb3ZpZGVz IHByaXNvbg== IFByZQ== IGhhcHB5 IGVjb25vbXk= IHRydXN0 YWdz IEdhbWU= IHdlYXBvbnM= dW1hbg== IENsZQ== aXRhdGlvbg== IGFuYWx5c2lz IFRpbWVz IHNjaWVuY2U= LT4= IGZpZ3VyZQ== IGRpc2FwcA== ZW50eQ== IHNvZnR3YXJl IHVsdA== IG9mZmljZXJz TmV3 SXM= IHJlbWFpbnM= IEluZGlh IHBzeWNo cmllZg== IGNhdA== ZXNj IG9ic2Vydg== IHN0YWdl IERhcms= IGVudGVy Y2hhbmdl IHBhc3NlZA== IGRlc3BpdGU= IE91dA== IG1vdmll cnM= IHZvaWNl bWluZQ== IFBsYXk= IHRvd2FyZA== IFRlcg== IHJlZ2lvbg== IHZhbHVlcw== b3J0ZXJz IG1vdW50 IG9mZmljZXI= IE90aGVy YmFu IGhvdXM= d29vZA== cm9vbQ== SVY= IFN1bg== c2Vl IE92ZXI= cm9n OTA= IGxheQ== IFR1cg== YXdu IHByZXNzdXJl IFN1Yg== IGJvb2tz ZWRvbQ== IFNhbmQ= QUE= YWdv IHJlYXNvbnM= Zm9yZA== IGFjdGl2aXR5 VVQ= Tm93 IFNlbmF0ZQ== Y2VsbA== bmlnaHQ= IGNhbGxz aW50ZXI= IGxldHRlcg== IFJvYg== IEpl IGNob29zZQ== IExhdw== R2V0 QmU= IHJvYg== IHR5cGVz IHBsYXRmb3Jt IHF1YXJ0ZXI= UkE= IFRpbWU= IG1heWJl IENy OTU= cHJl IG1vdmluZw== IGxpZg== IGdvbGQ= IHNvbQ== IHBhdGllbnRz IHRydXRo IEtl dXJhbmNl YW50bHk= bWFy IGNoYXJnZQ== IEdyZWF0 IGNlbGU= LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0= IHJvY2s= cm9pZA== YW5jeQ== IGNyZWRpdA== YXVk Qnk= IEV2ZXJ5 IG1vdmVk aW5nZXI= cmlidXRpb24= IG5hbWVz IHN0cmFpZ2h0 IEhlYWx0aA== IFdlbGw= IGZlYXR1cmU= IHJ1bGU= IHNjaGU= aW5hdGVk IE1pY2hhZWw= YmVyZw== NDE= aWxlZA== YmFuZA== IGNsaWNr IEFuZ2Vs b25lbnRz wq0= IElyYXE= IFNhdHVyZGF5 IGF3YXJl cGFydA== IHBhdHRlcm4= T1c= IExldA== IGdyYWQ= aWduZWQ= IGFzc29jaWF0ZWQ= IHN0eWxl bm8= aWF0aW9u YWl0aA== aWxpZXM= IHN0b3JpZXM= dXJhdGlvbg== IGluZGl2aWR1YWxz IOKApg== bWlzcw== IEFzc29jaQ== aXNoaW5n YWJ5 IHN1bW1lcg== IEJlbg== IDMy IGFyY2g= dXR5 IFRleGFz aG9s IGZ1bGx5 IG1pbGw= IGZvbGxvd2Vk IEJpbGw= IEluZGlhbg== IFNlY3JldA== IEJlbA== IEZlYnJ1YXJ5 IGpvYnM= IHNlZW1lZA== IEdvdmVybg== aXBwZWQ= IHJlYWxpdHk= IGxpbmVz IHBhcms= IG1lYXN1cmU= IE91cg== SU0= IGJyb3RoZXI= IGdyb3dpbmc= IGJhbg== IGVzdGlt IGNyeQ== IFNjaG9vbA== IG1lY2hhbg== IE9G IFdpbmRvd3M= IHJhdGVz IE9o IHBvc2l0aXZl IGN1bHR1cmU= aXN0aWNz aWNh IGhhcg== eWE= aXRlbHk= aXBw IG1hcA== ZW5jaWVz IFdpbGxpYW0= SUk= YWtlcnM= NTY= IE1hcnQ= IFJlbQ== IGFsdGVybg== aXR1ZGU= IGNvYWNo cm93ZA== RG9u IGtpZHM= IGpvdXJuYWw= IGNvcnBvcg== IGZhbHNl IHdlYg== IHNsZWVw IGNvbnRhaW4= IHN0bw== IGJlZA== aXZlcnNl IFJpY2g= IENoaW5lc2U= IHB1bg== IG1lYW50 a25vd24= IG5vdGljZQ== IGZhdm9yaXRl YXZlbg== IGNvbmRpdGlvbg== IHB1cnBvc2U= KSk= IG9yZ2FuaXphdGlvbg== IGNoYWxsZW5n IG1hbnVmYWN0 IHN1c3A= IEFj IGNyaXRpYw== dW5lcw== dWNsZWFy IG1lcg== dmVudGlvbg== IDgw IG1pc3Q= IFVz IFRvcg== aHR0cA== b2xm IGxhcmdlcg== IGFkdmFudA== IHJlc2Vhcg== IGFjdGlvbnM= bWw= IGtlcHQ= IGFpbQ== LCc= Y29s IGJlbmVmaXRz aWZ5aW5n IGFjdHVhbA== IEludGVybmF0aW9uYWw= IHZlaGljbGU= IGNoaWVm IGVmZm9ydHM= IExlYWd1ZQ== IE1vc3Q= IHdhaXQ= IGFkdWx0 IG92ZXJhbGw= IHNwZWVjaA== IGhpZ2hseQ== IGZlbWFsZQ== IGVycm9y IGVmZmVjdGl2ZQ== NTQ= IGVuY291cg== d2VsbA== IGZhaWxlZA== IGNvbnNlcnY= IHByb2dyYW1z IHRyb3U= IGFoZWFk NTAw dmVydGlzZW1lbnQ= SVA= IEZvdW5k cGly ICU= IGNyaW1l YW5kZXI= IGxvY2F0aW9u IElyYW4= IGJlaGF2aW9y YXppbmc= IHJhcmU= IGVtYg== IGNhdXNlZA== IHNoaXA= IGFjdGl2ZQ== IGNvbnRyaWJ1dA== IGdyZWVu IGFjcXU= IHJlZmxlY3Q= dmVudWU= IGZpcm0= IGJpcnRo XS4= IGNsZWFybHk= IGVtb3Q= IGFnZW5jeQ== cmlhZ2U= IG1lbW9yeQ== OTg= U0E= IFNlZQ== YWNpbmc= Q0M= IGJpZ2dlc3Q= IHJhcA== IGJhc2lj IGJhbmQ= ZWF0 IHN1c3BlY3Q= IE1hYw== IDkw bWFyaw== aXN0YW4= IHNwcmVhZA== YW1z a2k= YXN5 cmF2 IFJvYmVy IGRlbW9uc3Ry cmF0ZWQ= IGFic29sdXRl IHBsYWNlcw== IGltcGw= aWJyYXJ5 IGNhcmRz IGRlc3Ryb3k= IHZpcnQ= dmVyZQ== IGFwcGVhcmVk eWFu cG9pbnQ= IGJlZw== IHRlbXBlcg== c3Bl YW50ZWQ= ZWFycw== IERpcmVjdA== IGxlbmd0aA== IGJsb2c= YW1i IGludGVn IHJlc291cmNlcw== YWNj aWZ1bA== IHNwb3Q= IGZvcmNlZA== IHRob3VzYW5kcw== IE1pbmlzdGVy IHF1YWw= IEZyZW5jaA== YXRpY2FsbHk= IGdlbmVyYWxseQ== IGRyaW5r IHRodXM= SUw= b2Rlcw== IGFwcHJvcHJp IFJlYWQ= IHdob20= IGV5ZQ== IGNvbGxlZ2U= IDQ1 aXJlY3Rpb24= IGVuc3VyZQ== IGFwcGFyZW50 aWRlcnM= IHJlbGlnaW91cw== IG1pbm9y b2xpYw== IHRybw== IFdoeQ== cmlidXRl bWV0 IHByaW1hcnk= IGRldmVsb3BlZA== IHBlYWNl IHNraW4= c3Rl YXZh IGJsdWU= IGZhbWlsaWVz IGly IGFwcGx5 IGluZm9ybQ== IFNtaXRo Q1Q= aWk= IGxpbWl0 IHJlc2lzdA== Li4uLi4uLi4uLi4uLi4uLg== dW1u IGNvbmZsaWM= IHR3ZQ== dWRk IFRvbQ== IGxpdGVy cXVl Ym9u IGhhaXI= IGV2ZW50dWFsbHk= IHB1cw== IGhlbHBlZA== IGFnZw== b3JuZXk= IEFwcGxl IGZpdA== IFN1cg== IHByZW0= IHNhbGVz IHNlY29uZHM= IHN0cmVuZ3Ro IGZlZWxpbmc= v70= IHRvdXI= IGtub3dz b29t IGV4ZXJj IHNvbWV3 77+9 Pj4= IHNwb2tlcw== IGlkZWFz IHJlZ2lzdA== c29mdA== IERlbA== IFBD IHByb3Bvcw== IGxhdW5jaA== IGJvdHRvbQ== VEg= IFBsZWFzZQ== dmVzdA== aXR6 IEludGVy IHNjcmlwdA== IHJhdA== YXJuaW5n IGls IEplcg== IEFyZQ== IHdoYXRldmVy b2tlbg== Y2llbmNl IG1vZGU= IGFncmVl IHNvdXJjZXM= IGluaXRpYWw= IHJlc3RyaWN0 IHdvbmRlcg== dXNpb24= IyMjIw== IFNpbA== dmlsbGU= IGJ1cm4= dHc= YXNpb24= IMKj IG5vcg== dWluZw== IHJlYWNoZWQ= IHN1bg== IGNhdGVn aWdyYXRpb24= IGNvb2s= IHByb21vdA== IG1hbGU= IGNsaW1hdGU= IGZpeA== IGFsbGVnZWQ= VVI= YWxsZWQ= IGltYWdlcw== Q29udA== b3Rh IHNjaG9vbHM= aW9z IGRyb3A= IHN0cmVhbQ== IE1v IHByZXZpb3VzbHk= YWxpbmc= IHBldA== IGRvdWJsZQ== IChA YW5uZWw= IGRlZmF1bHQ= dGllcw== IHJhbms= IERlYw== IENvdW5jaWw= IHdlYXBvbg== IHN0b2Nr IGFuYWx5 IFN0cg== IHBpY3R1cmU= IFBvbGljZQ== ZmVyZW5jZQ== IGNlbnR1cnk= IGNpdGl6ZW5z IG9udG8= IGV4cGFuZA== IGhlcm8= IFNvbA== IHdpbGQ= IHVwZGF0ZQ== IGN1c3RvbWVycw== cm9udA== ZGVm IGxpaw== IGNyaW1pbmFs IENocmlzdGlhbg== U1A= NzY= IGxlYXZpbmc= IG90aGVyd2lzZQ== IERpc3Q= IGJhc2lz NTI= NTM= aWNpcA== IEJlcg== IHJlY29tbWVuZA== IGZsb29y IGNyb3dk b2xlcw== IDcw IGNlbnRyYWw= IEV2 IGRyZWFt IGRvd25sb2Fk IGNvbmZpcg== IFRob20= IHdpbmRvdw== IGhhcHBlbnM= IHVuaXQ= IHRlbmQ= IHNwbA== IGJlY29tZXM= IGZpZ2h0aW5n IHByZWRpY3Q= IFByZXNz IFBvd2Vy IGhlYXZ5 YWtlZA== IGZhbg== b3J0ZXI= YXRlZ3k= QkE= aXplcw== IHNwZW5k SGVyZQ== IDIwMDc= IGFkb3A= IEhhbQ== IGZvb3RiYWxs IFBvcnQ= b2RheQ== NTE= YW1waW9ucw== IHRyYW5zZmVy aHQ= IDM4 dGVybQ== YWNpdHk= IGJ1cg== XSw= dGVybmFs cmln YnV0 IHRoZXJlZm9yZQ== IEJlY2F1c2U= cmVzcA== cmV5 IG1pc3Npb24= U29tZQ== IG5vdGVk IGFzc3Vt IGRpc2Vhc2U= IGVkaXQ= IHByb2dyZXNz cmQ= IEJyb3du b2NhbA== IGFkZGluZw== IHJhaXNlZA== IEFueQ== IHRpY2s= IHNlZWluZw== IFBlb3BsZQ== IGFncmVlbWVudA== IHNlcnZlcg== IHdhdA== IGRlYmF0ZQ== IHN1cHBvc2Vk aWxpbmc= IGxhcmdlc3Q= IHN1Y2Nlc3NmdWw= IFByaQ== IERlbW9jcmF0aWM= IGp1bXA= IFN5cmlh IG93bmVycw== IG9mZmVycw== IHNob290aW5n IGVmZmlj c2V5 IGhhdmVu dmVyc2U= dGVyZWQ= IExpZ2h0 aW1hbA== IEJpZw== IGRlZmVuZA== IGJlYXQ= IHJlY29yZHM= JSk= IHNjZW4= IGVtcGxveWVlcw== IGRldmljZXM= aGVt IGNvbW1lcg== IE1leA== IGJlbmVmaXQ= IFByb2Y= IGlsbGVn IHN1cmZhY2U= IEFsc28= IGhhcm0= aW5nbHk= d2lkZQ== IEFsZXg= IHNodXQ= IEN1cg== IGxvc2U= cG0= IGNoYWxsZW5nZQ== c2VtYg== IHN0YXRpb24= IGludGVsbGlnZW5jZQ== IGFjY3Vy IEZsb3I= IHJlcXVpcmVz IE1hbA== YnVt IGhvc3BpdGFs IHNwaXJpdA== IG9mZmVyZWQ= IHByb2R1Y2U= IENvbW11bg== IGNyZWF0aW5n IGNyaXM= c3BlY3Q= IGVuZGVk IGRhaWx5 IHZvdGVycw== bGFuZHM= aWFz aWg= b25h IHNtYXJ0 IE9mZmljZQ== IExvcmQ= cmlhbA== IEludGVybmV0 IGNpcmN1bQ== IGV4dHJlbWVseQ== Jy4= IG9waW5pb24= IE1pbA== IGdhaW4= QlM= IEZpbg== eXA= IHVzZWZ1bA== IGJ1ZGdldA== IGNvbWZvcnQ= aXNm IGJhY2tncm91bmQ= ZWxpbmU= IGVwaXNvZGU= IGVuZW15 IHRyaWFs IGVzdGFibGlzaA== ZGF0ZQ== IENhcA== IGNvbnRpbnVlcw== IHNob3dpbmc= IFVuaW9u d2l0aA== IHBvc3RlZA== IFN5c3RlbQ== IGVhdA== cmlhbg== IHJpc2U= IEdlcm1hbnk= aWxz IHNpZ25lZA== IHZpbGw= IGdyYW5k bW9y IEVuZ2xhbmQ= IHByb2plY3Rz dW1iZXI= IGNvbmZlcmVuY2U= emE= IHJlc3BvbnNpYmxl IEFyYWI= IGxlYXJuZWQ= 4oCU4oCU aXBwaW5n IEdlb3JnZQ== T0M= IHJldHVybmVk IEF1c3RyYWxpYQ== IGJyaWVm UXU= IGJyYW5k aWxsaW5n YWJsZWQ= IGhpZ2hlc3Q= IHRyYWlu IENvbW1pc3Npb24= d2hpbGU= IG5vbQ== Y2VwdGlvbg== IG11dA== IEJsdWU= IGluY2lkZW50 dmFudA== ODY= IElE IG51Y2xlYXI= NzQ= IExpa2U= IFJF IE1pY3Jv bGk= bWFpbA== IGNoYXJnZXM= ODk= IGFkanVzdA== YWRv IGVhcnRo TkE= IHByaWNlcw== UEE= IGRyYWZ0 IHJ1bnM= IGNhbmRpZGF0ZQ== ZW5zZXM= IG1hbmFnZW1lbnQ= IFBoaWw= IE1pc3M= IHRlYWNo Z3JhbQ== IHVuZGVyc3RhbmRpbmc= YWl0 aWNhZ28= QWRk IEVw c2VjdXQ= IHNlcGFyYXRl IGluc3RhbmNl IGV0aA== IHVubGVzcw== KioqKioqKio= IEZvcmU= aW5hdGU= IG9wZXJhdGlvbnM= U3A= IGZhaXRo Z2Fy IENodXJjaA== cm9uaWM= IGNvbmZpZw== b3N1cmU= IGFjdGl2aXRpZXM= IHRyYWRpdGlvbmFs IDM2 IGRpcmVjdGlvbg== IG1hY2hpbmU= IHN1cnJvdW5k IHB1c2g= dW5jdGlvbg== IEVV IGVhc2llcg== IGFyZ3VtZW50 R0I= IG1pY3Jv IHNwZW5kaW5n aXphdGlvbnM= IHRoZW9yeQ== YWRvdw== IGNhbGxpbmc= IExhc3Q= IGRlcg== IGluZmx1ZW5jZQ== IGNvbW1pdA== IHBob3Rv IHVuYw== aXN0cnk= Z24= YXN0ZQ== YWNrcw== IGRpc3A= YWR5 ZG8= IEdvb2Q= IGA= IHdpc2g= IHJldmVhbGVk wqDCoA== bGln IGVuZm9yY2U= IENvbW1pdHRlZQ== IGNoZW0= IG1pbGVz IGludGVyZXN0ZWQ= IHNvbHV0aW9u aWN5 aW5jdA== IC0+ IERldA== IHJlbW92ZWQ= IGNvbXBhcg== ZWFo IHBsYW50 IFNpbmNl IGFjaGlldmU= IGFkdmFudGFnZQ== IHNsaWdodGx5 YmluZw== IHBsYWNlZA== dW5kZXI= MjAxNQ== IE1hZA== IHRpbQ== b3Nlcw== IGNydQ== IFJvY2s= IG1vc3RseQ== IG5lZ2F0aXZl IHNldHRpbmc= IHByb2R1Y2Vk IG11cg== IGNvbm5lY3Rpb24= IE1lcg== IGRyaXZlcg== IGV4ZWN1dGl2ZQ== IGFzc2F1bHQ= IGJvcm4= IFZlcg== dGFpbmVk IHN0cnVjdHVyZQ== IHJlZHVjZQ== IGRlY2FkZXM= IGRlZA== dWtl IE1hbnk= aWRkZW4= IGxlYWd1ZQ== U2U= IGpvaW4= IGRpc2Nv IGRpZQ== Y2tz YWN0aW9ucw== IGFzc2Vzcw== YWdu IGdvYWxz b3Vycw== SVI= IHNlbmlvcg== aWxsZXI= bW9k aXBtZW50 b2NvbA== dXk= IFF1ZQ== IHBhcnRpZXM= aXJnaW4= IGxlYXJuaW5n aXRhYmxl IHN0cmVldA== IGNhbWVyYQ== QXBw IHNraWxscw== YnJl Y2lvdXM= IGNlbGVicg== IEZyYW5j IGV4aXN0aW5n IHdpbGxpbmc= bG9y IGlk IFNwYWNl IGNyaXRpY2Fs IExh b3J0dW5hdGVseQ== IHNlcnZl IGNvbGQ= IHNwZWNpZXM= VFM= IGFuaW1hbHM= IEJheQ== IG9sZGVy IFVuZGVy ZXN0aWM= IFRyZQ== IHRlYWNoZXI= IHByZWZlcg== dmlz IHRocmVhZA== IE1hdHQ= IG1hbmFnZXI= 44O7 IHByb2Zlc3Npb25hbA== IFZvbA== IG5vdGVz VGhlc2U= dWxh IGZyZXNo ZW50ZWQ= dXp6 ZWR5 Y2x1c2lvbg== IFJlbA== IGRvdWJ0 RU8= IG9wZW5lZA== IEJpdA== QWR2ZXJ0aXNlbWVudA== IGd1ZXNz IFVO IHNlcXU= IGV4cGxhaW4= b3R0ZW4= IGF0dHJhY3Q= YWtz IHN0cmluZw== IGNvbnRleHQ= b3NzaWJsZQ== IFJlcHVibGljYW5z IHNvbGlk IGNpdGllcw== IGFza2luZw== IHJhbmRvbQ== dXBz dXJpZXM= YXJhbnQ= ZGRlbg== Z2w= IEZsb3JpZGE= IGRlcGVuZA== IFNjb3R0 IDMz IGlU aWNvbg== IG1lbnRpb25lZA== IDIwMDA= IGNsYWltZWQ= IGRlZmluaXRlbHk= dWxm IGNvcmU= IG9wZW5pbmc= IENvbnN0 d2hpY2g= IFRyYQ== QUc= NzI= IGJlbGlldmVk YWRh IDQ4 IFNlY3VyaXR5 eXJpZ2h0 IFBldA== IExvdQ== IGhvbGRpbmc= PT09PT09PT09PT09PT09PQ== IGljZQ== IGJyb3c= IGF1dGhvcml0aWVz aG9zdA== d29yZA== IHNjb3Jl IERpdg== IGNlbGxz IHRyYW5zbA== IG5laWdoYm9y IHJlbW92ZQ== dWN0 IGRpc3RyaWN0 IEFjY29yZGluZw== IHdvcnNl IGNvbmNlcm5z IHByZXNpZGVudGlhbA== IHBvbGljaWVz IEhhbGw= NzM= IGh1cw== QVk= IDIwMDY= IEp1ZA== IGluZGVwZW5kZW50 IEp1c3RpY2U= aWxpYXI= cHJpbnQ= aWdodGVy IHByb3RlY3Rpb24= emVu IHN1ZGRlbg== aG91c2U= IEplcw== UFI= IEluZg== IGJ1bA== IF8= IFNlcnZpY2U= IFBS IHN0cmF0ZWd5 ZmZlY3Q= IGdpcmxz IG1pc3Npbmc= b3lhbA== IFRlYW0= dWxhdGVk IGRhdA== IHBvbGl0aWNz YWJvcg== QWNjb3JkaW5n IHNwZWxs IGdyYXBo b3J0aGVybg== VEM= QWI= IGxhYm9y aXNoZXI= IGtpY2s= IGlUdW5lcw== IHN0ZXBz cG9zZXM= IHNtYWxsZXI= RW4= YmVydA== IHJvbGw= IHJlc2VhcmNoZXJz IGNsb3NlZA== IHRyYW5zcG9ydA== IGxhd3k= X19fX19fX19fX19fX19fXw== IENoaWNhZ28= IGFzcGVjdA== IG5vbmU= IG1hcnJpYWdl OTY= IGVsZW1lbnRz IEZyZQ== IFNhbA== IGRyYW0= RkM= dG9w ZXF1 IGhlYXJpbmc= IHN1cHBvcnRlZA== IHRlc3Rpbmc= Y29ob2w= IG1hc3NpdmU= IHN0aWNr IGd1YXJk aXNjbw== cGhvbmU= RnJvbQ== SG93ZXZlcg== IGJvcmRlcg== IGNvcHk= b2dyYXBoeQ== bGlzdA== NzE= IG93bmVy Y2xhc3M= cnVpdA== cmF0ZQ== IE9uY2U= IGRpZ2l0YWw= IHRhc2s= RVJT IGluY3JlZA== dGVz Kys= IEZyYW5jZQ== IGJyZWF0 b3ds IGlzc3VlZA== IFdlc3Rlcm4= IGRldGVjdA== IHBhcnRuZXJz IHNoYXJlZA== IENhbGw= IGNhbmNlcg== YWNoZQ== cmliZQ== IGV4cGxhaW5lZA== IGhlYXQ= eyI= IGludmVzdG1lbnQ= IEJvb2s= IHdvb2Q= IHRvb2xz IEFsdGhvdWdo IGJlbGllZg== IGNyaXNpcw== IGdl IE1Q IG9wZXJhdGlvbg== dHlwZQ== fn4= Z2E= IGNvbnRhaW5z YW50YQ== IGV4cHJlc3M= IEdyb3Vw IEpvdXJuYWw= a2E= IGFtYg== IFVTQQ== IGZpbmRpbmc= IGZ1bmRpbmc= aG93 IGVzdGFibGlzaGVk aWRlb3M= IGRlZ3JlZQ== IGRhbmdlcm91cw== YW5naW5n IGZyZWVkb20= cHBvcnQ= b3V0aGVybg== IGNodXJjaA== IGNhdGNo IFR3bw== IHByZXNlbmNl IEd1YXJk VXA= IGF1dGhvcml0eQ== IFByb2plY3Q= IGJ1dHRvbg== IGNvbnNlcXU= IHZhbGlk IHdlYWs= IHN0YXJ0cw== IHJlZmVyZW5jZQ== IE1lbQ== Iik= VU4= b3JhZ2U= IE9wZW4= IGNvbGxlY3Rpb24= eW0= Z2VuY3k= IGJlYXV0aWZ1bA== cm9z IHRlbGxz IHdhaXRpbmc= bmVs IHByb3ZpZGluZw== IERlbW9jcmF0cw== IGRhdWdodGVy IG1hc3Rlcg== IHB1cnBvc2Vz IEphcGFuZXNl IGVxdWFs IHR1cm5z IGRvY3VtZW50cw== IHdhdGNoaW5n UmVz IHJhbg== MjAxNA== IHJlamVjdA== IEtvcmVh IHZpY3RpbXM= TGV2ZWw= ZXJlbmNlcw== IHdpdG5lc3M= IDM0 IHJlZm9ybQ== Y29taW5n IG9jY3Vw IGNhdWdodA== IHRyYWZmaWM= YWRpbmc= IG1vZGVscw== YXJpbw== IHNlcnZlZA== IGJhdHRlcg== dWF0ZQ== IFNlY3JldGFyeQ== IGFncmVlZA== IHRydWx5 eW5hbQ== IFJldA== IHVuaXRz IFJlc2VhcmNo aGFuZA== YXppbmU= IE1pa2U= IHZhcmlldHk= b3RhbA== IGFtYXppbmc= IGNvbmZpcm1lZA== IGVudGlyZWx5 IHB1cmNoYXNl IGVsZW1lbnQ= IGNhc2g= IGRldGVybWluZQ== RGU= IGNhcnM= IFdhbGw= 4pY= IHZpZXdz IGRydWdz IGRlcGFydG1lbnQ= IFN0ZXA= dWl0 IDM5 YXN1cmU= IENsYXNz IGNvdmVyZWQ= IEJhbms= IG1lcmU= dWFuYQ== IG11bHRp IG1peA== IHVubGlrZQ== bGV2aXNpb24= IHN0b3BwZWQ= IHNlbQ== IEdhbA== dWxlcw== IHdlbA== IEpvaG5zb24= bGE= IHNraWxs IGJlY29taW5n cmll IGFwcHJvcHJpYXRl ZmU= ZWxsb3c= IFByb3Q= dWxhdGU= b2NhdGlvbg== IHdlZWtlbmQ= b2RpZXM= IHNpdGVz IGFuaW1hbA== IFRpbQ== IHNjYWxl IGNoYXJnZWQ= IGluc3RydWN0 aWxsYQ== IG1ldGhvZHM= IGNlcnQ= IGp1ZGdl IEhlbA== IGRvbGxhcnM= IHN0YW5kaW5n IFNxdQ== IGRlYnQ= bGlhbQ== IGRyaXZpbmc= IFN1bQ== IEVkaXRpb24= IGFsYnVt YW5kb24= SUY= IFVr NjM= YWRlcg== IGNvbW1lcmNpYWw= ZXNo IEdvdmVybm1lbnQ= IGRpc2NvdmVyZWQ= IG91dHB1dA== IEhpbGxhcnk= IENhcm9s IDIwMDU= IGFidXNl YW5jaW5n IHN3aXRjaA== IGFubnVhbA== VHc= IHN0YXRlZA== YWdlbWVudA== aW5uZXI= IGRlbW9jcg== IHJlc2lkZW50cw== IGFsbG93aW5n IGZhY3RvcnM= b2Rk IGZ1Y2s= ZW1pZXM= IG9jY3VycmVk b3Rp IG5vcnRo IFB1YmxpYw== IGluanVyeQ== IGluc3VyYW5jZQ== Q0w= b2xseQ== 44A= IHJlcGVhdGVk IGFybXM= YW5nZWQ= IGNvbnN0cnVjdGlvbg== IGZsZQ== UFU= aWNpYW5z IGZvcm1z IE1jQw== YW50aWM= IG1lbnRhbA== cGlyZQ== IGVxdWlwbWVudA== IGZhbnQ= IGRpc2N1c3Npb24= IHJlZ2FyZGluZw== a2lu YXJw IGNoYWly b2d1ZQ== IHByb2NlZWQ= IElk T3Vy IG11cmRlcg== TWFu IDQ5 YXNw IHN1cHBseQ== IGlucHV0 IHdlYWx0aA== bGlhbWVudA== IHByb2NlZA== b3JpYWw= IFN0YXQ= IE5GTA== aGVucw== IEluc3RpdHV0ZQ== IHB1dHRpbmc= b3VybmFtZW50 ZXRpYw== IGxvY2F0ZWQ= IGtpZA== ZXJpYQ== cnVu IHByaW5j ICE= Z29pbmc= IEJldA== IGNsb3Q= IHRlbGxpbmc= IHByb3Bvc2Vk aW90 b3JyeQ== IGZ1bmRz Z21lbnQ= IExpZmU= IGJhYnk= IEJhY2s= IHNwb2tl SW1hZ2U= IGVhcm4= IEFU Z3U= IGV4Y2hhbmdl IExpbg== b3Zpbmc= IHBhaXI= TW9yZQ== YXpvbg== IGFycmVzdGVk IGtpbGxpbmc= Y2Fu IENhcmQ= eWQ= IGlkZW50aWZpZWQ= IG1vYmlsZQ== IHRoYW5rcw== b255bQ== IEZvcm0= IGh1bmRyZWRz IENocmlz IENhdA== IHRyZW5k aGF0 IEF2 b21hbg== IGVsZWN0cmlj IFdpbA== U0U= T2Y= IHJlc3RhdXI= b3RlZA== IHRyaWc= IG5pbmU= IGJvbWI= V2h5 wq8= IGNvdmVyYWdl IGFwcGVhbA== IFJvYmVydA== IFN1cA== IGZpbmlzaGVk IGZsb3c= IGRlbGl2ZXI= IGNhbGN1bA== IHBob3Rvcw== IHBoaWw= IHBpZWNlcw== IGFwcHJl a2Vz IHJvdWdo RG8= IHBhcnRuZXI= IGNvbmNlcm5lZA== IDM3 IEdlbg== Q29s Y3RvcnM= ID0+ c3RhdGU= IHN1Z2dlc3RlZA== IEZvcmNl Q0U= IGhlcnNlbGY= IFBsYW4= d29ya3M= b290aA== cmVuY3k= IGNvcm5lcg== IGh1c2JhbmQ= IGludGVybmV0 IEF1dA== ZW1z b3Nlbg== IEF0bA== Z2Vu IGJhbGFuY2U= NjI= IHNvdW5kcw== dGV4dA== IGFycg== b3Zlcw== IG1pbGxpb25z IHJhZGlv IHNhdGlzZg== IERhbQ== TXI= R28= U3Bl IGNvbWJhdA== cmFudA== IEdyZWU= IGZ1ZWw= IGRpc3RhbmNl IHRlc3Rz IGRlY3Jl IEVy IG1hbmFnZWQ= RFM= IHRpdA== IG1lYXN1cmVz IExpYmVy IGF0dGVuZA== YXNoZWQ= IEpvc2U= IE5pZ2h0 ZGl0 IE5vdg== IEVuZA== b3V0cw== IGdlbmVyYXRpb24= IGFkdm9j eXRo IGNvbnZlcnNhdGlvbg== IFNreQ== YWN0aXZl Y2Vs cmllcg== IEZyYW5r IGdlbmRlcg== IGNvbmNlbnQ= IGNhcnJpZWQ= YW5kYQ== IFZpcmdpbg== IGFycml2ZWQ= aWNpZGU= YWRlZA== IGZhaWx1cmU= IG1pbmltdW0= bGV0cw== IHdvcnN0 IGtlZXBpbmc= IGludGVuZGVk IGlsbGVnYWw= IHN1YnNj IGRldGVybWluZWQ= IHRyaXA= WWVz IHJhaXNl IH4= IGZlZWxz IHBhY2thZ2U= IEpv aGk= MjAxNg== cmVhbA== IGZyYQ== IHN5bWI= TWU= dWNreQ== cHJldA== IEto IEVkaXQ= IFdlYg== ZW1pYw== IENvbG9y IGp1c3RpY2U= SW50 IGZhcm0= Y2tub3c= Ij4= ZWxlc3M= IHJlZHVjZWQ= IDUwMA== eHg= IFJhZA== IFdvb2Q= IGNsaW4= IGh5cA== aWxlcg== dXJh a2lucw== ODU= NjE= IFRoZWly IE1hcnk= IHNhbg== IG5vdmVs IFdobw== IGNhcGFjaXR5 IGltcG9zc2libGU= IHBsYXlz IG1pbmlzdGVy aWp1YW5h aWNhdGU= IFNldA== IGZyYW0= IGluZw== IGNvbW11bml0aWVz IEZCSQ== aXRh IGJvbg== IHN0cmF0ZWc= IGludGVyZXN0cw== bG9jaw== Z2Vycw== bWFz IEFORA== IGNvbmZsaWN0 IHJlcXVpcmVtZW50cw== IHNhYw== IG9wZXJhdGluZw== aW5p cmVsYXRlZA== IGNvbW1pdHRlZA== IHJlbGF0aXZlbHk= IHNvdXRo wq/Crw== IGFmZm9yZA== IGlkZW50aXR5 IGRlY2lzaW9ucw== IGFjY3VzZWQ= cGxhY2U= IHZpY3Rvcnk= b2No aWF0 TmFtZQ== Q29t dGlvbg== ZWRz IHNlZWs= IHRpZ2h0 IEltYWdlcw== IGluaXRp IGh1bWFucw== IGZhbWlsaWFy IGF1ZGllbmNl IGludGVybmFs dmVudHVyZQ== IHNpZGVz IFRP IGRpbQ== IGNvbmNsdWQ= IGFwcG9pbnQ= IGVuZm9yY2VtZW50 IEppbQ== IEFzc29jaWF0aW9u IGNpcmN1bXN0 IENhbmFkaWFu IGpvaW5lZA== IGRpZmZlcmVuY2Vz IExvcw== IHByb3Rlc3Q= IHR3aWNl d2lu IGdsYXNz YXJzaA== IEFybXk= IGV4cHJlc3Npb24= IGRlY2lkZQ== IHBsYW5uaW5n YW5pYQ== IGhhbmRsZQ== IE1pY3Jvc29mdA== IE5vcg== IG1heGltdW0= IFJldg== IHNlYQ== IGV2YWw= IGhlbHBz cmVm IGJvdW5k IG1vdXRo IHN0YW5kYXJkcw== IGNsaW0= IENhbXA= IEZveA== Y2xlcw== IGFybXk= IFRlY2hu YWNraW5n eHk= U1M= IDQy IGJ1Zw== IFVrcmFpbg== IE1heA== IEpvbmVz IFNob3c= bG8= IHBsYW5ldA== IDc1 IHdpbm5pbmc= IGZhc3Rlcg== IHNwZWN0 IGJyb2tlbg== VFI= IGRlZmluZWQ= IGhlYWx0aHk= IGNvbXBldGl0aW9u aHR0cHM= IElzbGFuZA== IEZl IGFubm91bmNl IEN1cA== IEluc3RlYWQ= IGNsaWVudA== IHBvc3NpYmx5 c2VjdGlvbg== b2NrZXQ= bG9vaw== IGZpbmlzaA== IGNyZXc= IHJlc2Vydg== IGVkaXRvcg== IGhhdGU= IHNhbGU= IGNvbnRyb3ZlcnM= IHBhZ2Vz d2luZw== IG51bWVy IG9wcG9zaXRpb24= IDIwMDQ= IHJlZnVnZQ== IGZsaWdodA== IGFwYXJ0 IExhdA== QW1lcmlj IEFmcmljYQ== IGFwcGxpY2F0aW9ucw== IFBhbGVzdA== IEJ1cg== IGdhcg== IFNvY2lhbA== IHVwZ3I= IHNoYXBl IHNwZWFraW5n YW5zaW9u YW8= IFNu IHdvcnJ5 IEJyaXRhaW4= UGxlYXNl cm91ZA== IGh1bg== IGludHJvZHVjZWQ= IGRpZXQ= SW5k IFNlY29uZA== IGZ1bmN0aW9ucw== dXRz IEVhY2g= IEplZmY= IHN0cmVzcw== IGFjY291bnRz IGd1YXJhbnQ= IEFubg== ZWRpYQ== IGhvbmVzdA== IHRyZWU= IEFmcmljYW4= IEJ1c2g= fSw= IHNjaA== IE9ubHk= IGZpZg== aWdhbg== IGV4ZXJjaXNl IEV4cA== IHNjaWVudGlzdHM= IGxlZ2lzbGF0aW9u IFdvcms= IFNwcg== w4I= IEh1bWFu IOg= IHN1cnZleQ== IHJpY2g= cmlw IG1haW50YWlu IGZsbw== IGxlYWRlcnNoaXA= c3RyZWFt IElzbGFtaWM= IDAx IENvbGxlZ2U= IG1hZ2lj IFByaW1l IGZpZ3VyZXM= MjAxNw== aW5kZXI= eHVhbA== IERlYWQ= IGFic29sdXRlbHk= IGZvdXJ0aA== IHByZXNlbnRlZA== cmVzcG9uZA== cmlibGU= IGFsY29ob2w= YXRv IERF cG9yYXJ5 IGdyYWI= IHZhcmk= IHF1YW50 IFBob3Rv IHBsdXM= cmljaw== YXJrcw== IGFsdGVybmF0aXZl IHBpbA== IGFwcHJveA== dGhhdA== IG9iamVjdHM= IFJv IEFuZHJvaWQ= IHNpZ25pZmljYW50bHk= IFJvYWQ= a2F5 UmVhZA== YXZvcg== IGFja25vdw== IEhE IFNpbmc= T3I= IE1vbnQ= IHVucw== cHJvZg== IG5lZ290aQ== IEFyY2g= aWtp IHRlbGV2aXNpb24= IEpld2lzaA== IGNvbW1pdHRlZQ== IG1vdG9y IGFwcGVhcmFuY2U= IHNpdHRpbmc= IHN0cmlrZQ== IERvd24= Y29tcA== IEhpc3Q= IGZvbGQ= YWNlbWVudA== IExvdWlz IGJlbG9uZw== IOKAog== IG1vcnQ= IHByZXBhcmVk IDY0 IE1hc3Rlcg== IGluZGVlZA== IERlbg== IHJlbnQ= VEE= b3VybmV5 YXJj U3U= OTc= IGFkdmljZQ== IGNoYW5naW5n IGxpc3RlZA== IGxhdW5jaGVk aXNhdGlvbg== IFBldGVy aXNoZXM= IGxpdmVk IE1lbA== IFN1cHJlbWU= IEZlZGVyYWw= ICk7 cnVjdHVyZQ== IHNldHM= IHBoaWxvcw== dW91cw== IMKg IGFwcGxpZWQ= IE5PVA== IGhvdXNpbmc= IE1vdW50 IG9kZA== IHN1c3Q= REE= ZmZpY2llbnQ= ID8= b2x2ZWQ= IHBvd2Vycw== IHRocg== IHJlbWFpbmluZw== IFdhdGVy TEM= IGNhdXNlcw== 44Gu IG1hbm5lcg== YWRz IHN1Z2dlc3Rz IGVuZHM= c3RhbmRpbmc= Zmln IER1bg== aWR0aA== IGdheQ== IHRlcm1pbg== IEFuZ2VsZXM= TVM= IHNjaWVudGlmaWM= IGNvYWw= YXBlcnM= YmFy IFRob21hcw== IHN5bQ== IFJ1bg== dGhpcw== UEM= aWdyYW50cw== IG1pbnV0ZQ== IERpc3RyaWN0 Y2VsbGVudA== IGxlYXZlcw== IGNvbXBsZXRlZA== YW1pbg== IGZvY3VzZWQ= IG1vbml0b3I= IHZlaGljbGVz TUE= IE1hc3M= IEdyYW5k IGFmZmVjdGVk aXR1dGlvbmFs IGNvbnN0cnVjdA== IGZvbGxvd3M= IHRvbg== cmVlbnM= IGhvbWVz IEV4dA== IExldmVs cmFzdA== IEly IGVsaW0= IGxhcmdlbHk= IEpvZQ== IHZvdGVz YWxscw== IGJ1c2luZXNzZXM= IEZvdW5kYXRpb24= IENlbnRyYWw= IHlhcmRz IG1hdGVyaWFscw== dWxuZXI= IGd1aWRl IGNsb3Nlcg== dW1z IHNwb3J0cw== ZWRlcg== SnVzdA== IHRheGVz ODQ= IE9sZA== IGRlY2FkZQ== b2xh IHZpcg== IGRyb3BwZWQ= IGRlbGF5 aXRlY3Q= IHNlY3VyZQ== c3RlaW4= bGV2ZWw= IHRyZWF0ZWQ= IGZpbGVk YWluZQ== IHZhbg== IG1pcg== IGNvbHVtbg== aWN0ZWQ= ZXBlcg== IHJvdA== IGNvbnN1bHQ= IGVudHJ5 IG1hcmlqdWFuYQ== IERvdQ== IGFwcGFyZW50bHk= b2tpbmc= Y2x1c2l2ZQ== IGluY3JlYXNlcw== YW5v IHNwZWNpZmljYWxseQ== IHRlbGU= ZW5zaW9ucw== IHJlbGlnaW9u YWJpbGl0aWVz IGZyYW1l IE5vdGU= IExlZQ== IGhlbHBpbmc= IGVkZ2U= b3N0b24= IG9yZ2FuaXphdGlvbnM= w4M= IEJvdGg= aGlwcw== IGJpZ2dlcg== IGJvb3N0 IFN0YW5k IHJvdw== dWxz YWJhc2U= IHJpZA== TGV0 YXJlbg== cmF2ZQ== IHN0cmV0 UEQ= IHZpc2lvbg== IHdlYXJpbmc= IGFwcHJlY2k= IGF3YXJk IFVzZQ== IGZhY3Rvcg== d2Fy dWxhdGlvbnM= KSg= IGdvZA== IHRlcnJpdA== IHBhcmFt YXN0cw== ODc= IGVuZW1pZXM= IEdhbWVz RkY= IGFjY2lkZW50 V2VsbA== IE1hcnRpbg== VEVS IGF0aA== IEhlbGw= IGZvcmc= IHZldGVy IE1lZGlj ZnJlZQ== IHN0YXJz IGV4cGVuc2l2ZQ== IGFjYWQ= cmF3bg== IFdoZQ== IGxvY2s= IGZvcm1hdA== IHNvbGRpZXJz c20= IGFnZW50 IHJlc3BvbnNpYmlsaXR5 b3Jh IFNjaWVuY2U= IHJhcGlk IHRvdWdo IEplc3Vz IGJlbGlldmVz TUw= IHdlYXI= bGV0ZQ== w4PDgg== IERyaQ== IGNvbW1pc3Npb24= IEJvYg== T2g= YXBlZA== IHdhcm0= w4PDgsODw4I= IDIwMDM= b3J0aW9u IGhhc24= dXN0ZXI= IHVuaXZlcnM= IElsbA== IGtpbmc= b2xvZ2llcw== OTQ= IFRlbQ== IE1vcw== IHBhdGllbnQ= IE1leGljbw== Y2Vhbg== IERlYXRo IFNhbmRlcnM= eW91 IENhc3Q= IENvbXBhbnk= cHR5 IGhhcHBlbmluZw== RlA= IEJhdHRsZQ== IGJvdWdodA== QW0= TW9k VXM= dXRlcnM= IENyZQ== IFRob3Nl IDQ0 aXNlcg== IHNvdWw= IFRvcA== IEhhcnJ5 IEF3 IHNlYXQ= ZmZlZQ== IHJldm9sdXRpb24= ICgi IER1cmluZw== ZXR0ZQ== IHJpbmc= IG9mZmVuc2l2ZQ== IHJldHVybnM= IHZpZGVvcw== IGRpc2Ns IGZhbW91cw== ZW5jZWQ= IFNpZ24= IFJpdmVy IDMwMA== UE0= IEJ1cw== IENI IGNhbmRpZGF0ZXM= YXJkZW4= IHBlcmNlbnRhZ2U= IHZpc3VhbA== IHRoYW5r IHRyb3VibGU= bmVyZ3k= IDIwMDE= IHByb3Zl YXNoaW9u IGVuaA== IExvbmc= VU0= IGNvbm5lY3RlZA== IHBvc3NpYmlsaXR5 T3Zlcg== IGV4cGVydA== IGxpYnJhcnk= YXJ0cw== IERpcmVjdG9y IGZlbGxvdw== OTI= aXJ0eQ== IGRyeQ== IHNpZ25z IExvdmU= IHF1aWV0 Zm9vdA== IHB1cmU= IEh1bg== IGZpbGxlZA== cGhhcw== IEVsZWN0 ZW5kbWVudA== IEV4cGw= IHVuYWJsZQ== bnM= bW8= IHZhc3Q= b2Jl IGlkZW50aWZ5 YXBwaW5n IENhcm9saW5h Z3Jlc3M= IHByb3Rl IGZpc2g= IGNpcmN1bXN0YW5jZXM= cmF6eQ== IFBob3Q= IGJvZGllcw== IE11cg== IGRldmVsb3Bpbmc= IEFS IGV4cGVyaWVuY2Vk IHN1YnN0YW50 IEJvYXJk ZXNvbWU= IGRvbWVzdGlj IGNvbWJpbmVk IFB1dA== IGNoZW1pY2Fs IENoaWxk IHBvb2w= IEN5 IGVnZw== Y29ucw== c3RlcnM= IGh1cnQ= IG1hcmtldHM= IGNvbnNlcnZhdGl2ZQ== IHN1cHBvcnRlcnM= IGFnZW5jaWVz aWRlbA== T2I= dXJi IDQz IERlZmVuc2U= eWU= IEFw ZHVsZQ== IHRlbXBlcmF0dXJl IGNvbmR1Y3RlZA== IENoaWVm IHB1bGxlZA== IGZvbA== TGFzdA== b250bw== b3Npcw== VkVS RGVz IFBhbg== Rmlyc3Q= IGFkdmFuY2U= IGxpY2Vuc2U= cm9ycw== IEpvbg== IGltYWdpbmU= IGhlbGw= IGZpeGVk IGluY29y b3NpdGU= IExvZw== aWNrZW4= XTo= IHN1cnByaXNl aGFi IGNyYWZ0 b2x0 IEp1bA== IGRpYWw= IHJlbGV2YW50 IGVudGVyZWQ= IGxlYWRz IEFE IENsZWFu IHBpY3R1cmVz ZXNzb3I= IGFsdA== IHBheWluZw== UGVy IE1hcmtldA== IHVwZGF0ZXM= YW1pbHk= IFR5cGU= IEhvbWU= IDU1 c2VtYmx5 cm9tZQ== ODM= IGdyZWF0ZXN0 IGhlaWdodA== IGhlYXY= YWludHM= IGxpc3Rlbg== YXNlcg== IFNI IGNhcGFibGU= YWNsZQ== IHBlcnNwZWN0 aW5hdGluZw== IG9mZmVyaW5n cnlwdA== IERldmVsb3A= YWJpbg== cmM= IGJyaWdodA== YWx0eQ== YXJyb3c= IHN1cHBs aW5kaW5n YWNrZWQ= Z3lwdA== IEFub3RoZXI= cGc= IFZpcmdpbmlh IEx1 IHBsYW5uZWQ= IHBpdA== IHN3ZWV0 VHlwZQ== IERp IHR5cGljYWxseQ== IEZyYW5jaXNjbw== IHByb3NwZWN0 IERhbg== IHRlZW4= cmVlcw== IHNjaGVk IGhvbA== IHNjcg== IGxvdHM= bGlmZQ== IG5ld3Nw IGZvcmdldA== IE5vbmU= IE1pZGRsZQ== IFJ5YW4= ZWRk IHNldmVyZQ== IHN1aXQ= bGxlcg== OTM= IGNvcnJlc3BvbmQ= IGV4cGxvcw== dWF0aW9ucw== IGZsYWc= Z2FtZQ== cmlk IHByaW4= IERhdGE= IGRlcGxveQ== IEVudGVy c3VpdA== Z2hhbg== IE1lbg== IHRob3VnaHRz IG1hdHRlcnM= IGFkYXB0 IEFyaQ== IGZpbGw= IGZvcnRo IHNhbQ== IDQx IHBheW1lbnQ= IEhvcg== IHNwcmluZw== ZHVj IGxvc2luZw== IGJyaW5naW5n Rk8= YWxh IGRpc3RyaWJ1dGlvbg== aGVyZWQ= Ym91cg== IElzcmFlbGk= b21h IGNvbWJpbmF0aW9u IHBsZW50eQ== VkU= Q2Fu IEhhdw== IHBlcm1hbg== IFNwZWNpYWw= IHRvdw== IHNlZWtpbmc= IGV4YW1wbGVz IGNsYXNzZXM= Y3I= IGJlZXI= IG1vdmVz IElQ IEtu IHBhbmVs RXZlbg== IHByb3Blcmx5 IHJpcw== IHBsdWc= IGVzdGltYXRlZA== RXZlcnk= IGRlZmVuc2l2ZQ== YWdyYXBo IHByZWdu IGluc3RpdA== IFZpY3Q= IHZvbHVtZQ== IHBvc2l0aW9ucw== IGxpbmtz IFByb2dyYW0= IFdlZWs= YWd1ZXM= IHRyYW5zZm9ybQ== a2Vy IENFTw== IGNhcw== IG9wcG9uZW50 IHR3ZWV0 IENvZGU= IHNob3A= IGZseQ== IHRhbGtz IGJhZw== UGhvbmU= IGFpZA== IHBsYW50cw== IDY1 IGF0dG9ybmV5 YXJ0ZXJz cXVlc3Q= IE1hZ2lj IGJlZ2lucw== IG15c3Rlcg== IGVudmlyb25tZW50YWw= IHN0b3JhZ2U= Tk4= IG1hcmc= IHNrZQ== IG1ldGFs ZWxseQ== IG9yZGVyZWQ= IHJlbWFpbmVk IGxvdmVk IHByb21wdA== IHVwZGF0ZWQ= IGV4cGVydHM= IHdhbGtpbmc= IGFuY2llbnQ= IHBlcmZvcm1lZA== QVRF IG5laXRoZXI= aWVuY3k= IG1hbnVmYWN0dXJl IFBhaw== IHNlbGVjdGVk IG1pbmU= IHVsdGltYXRlbHk= IGV4cGxhbg== IGxhYmVs IFNlcnZpY2Vz cmlidXRlZA== VHJ1bXA= IHN5bg== IFVsdA== U0M= IG1lYXQ= IGdpYW50 IFdhcnM= IE9O IGFkbQ== IGludGVycHJldA== IGV2ZW5pbmc= IGV2aWw= IEJvc3Rvbg== IFdpbGQ= IMM= IEJpdGNvaW4= IEFtYXpvbg== RHI= IEluZm9ybWF0aW9u IG9idmlvdXNseQ== IGFkdmFuY2Vk UGhvdG8= b2xhcg== IHdlYXRoZXI= IHN5bWJvbA== IHNvbGU= IHBvdGVudGlhbGx5 b3N0ZXI= IG9yaWdpbmFsbHk= bXVu MzAw YXpl ZXNzaW9ucw== IGRlY2s= IHN0b29k IHlvdXRo IEJlcm4= UmVw IFRlc3Q= IGJhc2ljYWxseQ== b3RpYw== IGludm9sdmU= b2xpdA== bHlu U2Vl IGFpcmNyYWZ0 IGNvbmZpcm0= RVc= IG1lc3NhZ2Vz IFJpY2hhcmQ= IGtpdA== IHByb2hpYg== IHZ1bG5lcg== aXN0ZXJz IGV4aXN0ZW5jZQ== IHR1cm5pbmc= IFNQ IGRlc2lyZQ== IGZsYXQ= IG1lbnQ= c2Vhc29u YW5nZXM= IG5laWdoYm9yaG9vZA== IExha2U= QVRJT04= IHBvaW50ZWQ= YnVy IGlubm92 dWNrcw== VUw= IHByb2Zlc3Nvcg== IGV4cHJlc3NlZA== QUI= aWNpb3Vz IDIwMDI= IERldg== IHNlc3Npb24= IGJhcmU= c2Vu IGRpc3M= IENhdGg= IFBhc3M= IFBvaW50 IGRvY3Rvcg== b3Jyb3c= YWlsZWQ= IFJ1Yg== IERD IENoYXJs cGVyc29u IHdyaXRlcg== aWdodGVycw== dXJlYXU= IG9ibGln IHJlY29yZGVk IGJyb2tl IG9yZGVycw== aWx0eQ== IG1vdGlvbg== aW5pdHk= bGF3 YWRpdW0= IGltbWlncmF0aW9u IGNvbnRyYXN0 IGJhdHQ= IGV4Y2VsbGVudA== IHRlY2huaWNhbA== YW1p IHR1bg== IGNsb3Vk IFllYXI= Z2Vvbg== IGNyZWF0aW9u IHN0cmFuZ2U= IGF1dGg= IGZvcnQ= Ym9ybg== IGV4dGVudA== IFRvZGF5 IENsdWI= IHJhaW4= IHNhbXBsZQ== IGFjY2VwdGVk IHRhY3Q= IGZpcmVk IFNvbg== IHN0YW5kcw== IGJvb3Q= IDQ3 IHN0YXRlbWVudHM= IHZlcnNpb25z IHNlbGxpbmc= b3VuZGVk IDE5OTA= IHdlcmVu IFdhdGNo IGV4cGVyaW1lbnQ= UG9zdA== IHJldGFpbA== dWxlZA== SW5zdA== dW50ZQ== 44O8 IGRlcGFydA== IGJvbmQ= aXZlcnk= b21wbA== IHJlYWN0aW9u IFN5cmlhbg== IFBhYw== YXBwZWQ= YW5pZWw= RFA= IHJlc29sdXRpb24= IHJlYWN0 IGFwcHJvdmVk b25vbQ== bW9uZA== IE9mZmlj LS0t IHJlcGxhY2U= IHRhY2s= IHNwb3J0 IGNoYWlu IGVtZXJnZW5jeQ== cmFk IFBhbGVzdGlu IDQ2 IGF1dG9tYXRpY2FsbHk= IHJvdXRl IHBhbA== IGJhbmtz IFBhcmlz IE1lZGlh cm9hZA== aWNpbmc= aXh0 aXN0ZWQ= IGdyZXc= IGNvb3Jk IFdoZXJl b21pbg== IHN1YnM= 77+977+9 IMKx IGNvcnBvcmF0ZQ== IHNlbGVjdGlvbg== bm9vbg== IFJlcG9ydA== Y3M= Y2x1ZGluZw== b3JkZXJz YW5jaGU= IEl0cw== IHNsb3dseQ== IEVneXB0 IEFjYw== IGNvbGxl aXF1ZXM= RVg= IGF0dGVtcHRz dXJs IENyb3Nz IGZpbmRpbmdz IFND IE9S IGluZGV4 ZW5zaXR5 IFdheQ== IExhbmQ= IHNob2Nr ZGlz IGR5bmFt IGNhcnQ= bW9zcA== U2luY2U= aWVzdA== IEJveQ== IHN0b3Jt IENvbnRpbg== MjAxMw== aGV3 aWxpdA== IGVzc2VudGlhbA== aXF1aWQ= T3RoZXI= aXZlcmVk IHJlYXNvbmFibGU= QWN0 IHN1YnNlcXU= IFBhY2s= IEZvcnQ= IGNvbnNpZGVyaW5n IHVuaXZlcnNpdHk= bG9n IG1hcnJpZWQ= IGlsbHVzdA== IFRydWU= o48= IG51bWVyb3Vz cmFzdHJ1Y3R1cmU= IHNlcmlvdXNseQ== IHJlZmVycmVk dWE= IGNvbnNpc3RlbnQ= b25uYQ== IFJlYWw= cnVwdGlvbg== Y2lwbGVz IGZhY3Rz OTE= b3Rlcw== ZXJn VGhlbg== IGFjY29tcGw= Tm90ZQ== IHJldmVudWU= IHBhc3Npbmc= IG1hbA== ZWVu IFlldA== IGdhdGhlcg== dGVyZGF5 ZXdvcms= IEF1dGhvcg== UGU= IG9wdGlt IHJ1Yg== IOijjw== IHVua25vd24= c3RvbmU= IHVuaW9u b2x2ZQ== IG9wcG9ydHVuaXRpZXM= IGJyb3dzZXI= IFdhbA== IENvc3Q= IHJlcG9ydGluZw== c3Rz cGV0 IHNhbmQ= IHN1ZGRlbmx5 IHN1cnByaXNpbmc= IFZS IHNvbWV3aGF0 IEJhcw== dWx0dXJl aXp6 IENE IGNoYWxsZW5nZXM= IHNldHRpbmdz IGV4cGVyaWVuY2Vz IEZ1bGw= IGNhbm4= IHJlY2VpdmluZw== RVNU IGpvaW50 IGN1bHR1cmFs IGFzdA== ODI= YXN0ZXJu Y2VpdmVk IENydQ== IGJ1bGw= cGlyZWQ= YW1t IGZhY2luZw== cG93ZXI= IGJvc3M= IEhvbA== IGluc3Ry IGluY3JlYXNpbmdseQ== IHNoaWZ0 IHN0cmVldHM= IFdpbGxpYW1z YWJi IGxpZQ== IGxhdWdo IENh UEw= IGFkdWx0cw== IGN1c3RvbWVy IG9idGFpbmVk IHN1cHBvcnRpbmc= aHRtbA== ZmlyZQ== IGRldGFpbGVk IHBpY2tlZA== IFJpZ2h0 bGRlcg== RUU= c3Rvb2Q= IEtpbQ== IHdpcmU= IHNpZ2h0 IGRldmVsb3BlcnM= IHBlcnNvbnM= IHNhZA== IGN1cA== IHdhcm5pbmc= IGJveXM= bG9uZw== IGJpcmQ= Zm8= IHdhbA== IG9ic2VydmVk IHpvbmU= aXZlbmVzcw== IGNoYW5uZWw= Y3JpcHQ= IHJlZnVzZWQ= IEFnYWlu IHN1Yw== IHNwb2tlc21hbg== IFJlZg== cml0ZQ== b3VzdG9u 44Oz IFNoZXI= IGFjdHM= IE5hbWU= IHN0cnVnZ2xl YXJyeQ== b21ldGltZXM= IGRpc2NyaW0= SFQ= IGNhdGVnb3J5 IHJlYWxpemU= IGVtcGxveWVl IEFmZ2hhbg== ZW5nZXI= IGd1bnM= IFN0ZXZl IE1vdA== IE9s b2tlZA== IHRoaWNr IGZhaXJseQ== aWxseQ== IHN1cnZl IE1hdA== d2VpZ2h0 4pQ= IHRyb29wcw== IGFnZW50cw== IGJhdHRlcnk= IG1vdGl2 w6E= U2Vj ZGVu b3Zlcnk= TFM= IGZsdQ== IGNvbmZpZGVudA== IE9wZXI= IGVtcHR5 IHBoZW4= IHNlY3Rvcg== IGV4Y2l0ZWQ= IHJlbW90ZQ== YXBo b2Vu IGRlc3Ryb3llZA== IG1vcmFs IEhQ IFJvbg== IGRyZXNz IEJhdA== IGxpdA== IE1T IGFm SEw= cnVt aXNtcw== IHNob3VsZG4= IHN5bXB0 IFRvcm9udG8= aGV0aWM= IGNhcmJvbg== IGluc3RhbGxlZA== IHZpb2xlbnQ= IHNvbGFy amE= IHByYWN0aWNlcw== IHJpZGU= IFBlbm4= IGltcHJvdmVk IGF1ZGlv IGJlaGF2aQ== IFBT IGVhdGluZw== RGF0YQ== IFJldmlldw== cGFzcw== Y2xhaW0= dWF0ZWQ= YW5nZXJz Y2hlbg== IHByb3BlcnRpZXM= IGFueXdoZXJl QW5vdGhlcg== IGJsb3c= IEphY2tzb24= IHByb3Vk IHBsYW5l bGluZXM= IHNxdWFyZQ== IHByb29m YW5zYXM= IHRhbGtlZA== bWFrZXJz IHNpc3Rlcg== IGhvbGRz IHJlc2lkZW50 ID09 IHJlc2lzdGFuY2U= IHNwbGl0 IHByb3NlY3V0 IGNvbmZpZGVuY2U= cmVzZW50cw== IGN1dHM= IGV4Y2VwdGlvbg== IHplcm8= R2V0dHk= IGNvcHlyaWdodA== IHRvdGFsbHk= b3JtYWw= aWZpY2F0aW9ucw== IEF1c3RyYWxpYW4= IHNpY2s= IDE1MA== IGhvdXNlaG9sZA== IGZlZXM= IGRyaXZlcnM= b2dlbg== IE5Z IG5lY2Vzc2FyaWx5 IHJlZ3VsYXRpb25z ZWFyaW5n c2w= IHBlcnNwZWN0aXZl Y2FyZQ== aWNpYWw= SGlz IGVzY2FwZQ== IHN1cnByaXNlZA== IFZhbg== dXJyZW50 IHZhYw== ODE= IFRodXM= IGVtcGhhcw== IENoYW1waW9ucw== IEljZQ== IG5hcnI= IGhlYWRz IGNhdXNpbmc= YmVs Zm9ydHVuYXRlbHk= IE1h IHRhcmdldHM= Y2lwbA== IGFmdGVybm9vbg== IGFkZHM= IE1heWJl IEZvdXI= ZXNzZWQ= cGxldGU= IHVzdWFs Y2hv aW5ndQ== IHdpdGhk IEVuZXJneQ== IEVjb25vbQ== T08= IGFydGljbGVz IGluanVyZWQ= IG1hbmFnZQ== IGV4cGxhaW5z IGRpYWdu UmVj YXR1cmVz IGxpbmtlZA== IGRpc2N1c3NlZA== IGV4cGxv IG9jY2FzaW9u YXRoYW4= IG9wcG9zaXRl IGZhY2Vz IGRlbmllZA== IEtuaWdodA== IG51dA== IGFwcHJveGltYXRlbHk= IGRpc2FwcG9pbnQ= b255bW91cw== IEJlc3Q= IExv IEh5 IEFmZg== IHZvdGluZw== YW53aGlsZQ== IElJSQ== IGluc3RpdHV0aW9ucw== YWdyYW0= IERhaWx5 IGRyYWc= IG5lYXJieQ== IGd1aWx0eQ== IGNvbnZlcg== UHJl c2hpcA== IHJld2FyZA== IHBoaWxvc29waA== IFNT dWdo IGFwcHM= ZnJpZW5k IHVwcGVy IGFkdmVydA== IHNub3c= IGZydXN0 IG91cnNlbHZlcw== RnI= IERpZQ== YW1waW9u IGRpc21pc3M= IGNlcmU= IHNpZ25hbA== ZnJvbQ== ICku IDUy IGNyaW1lcw== aXRvcnM= ZXN0aXZhbA== dXNldW0= IGNvdW5jaWw= IFNhdWQ= TWF5 IEd1bg== aWNpYW4= ZXRoZXI= IHN1ZmZpY2llbnQ= IEhlbg== c29sZQ== IGhpc3RvcmljYWw= IEZhcg== IFR1cm4= IHBpbg== IHN1Y2NlZWQ= bWF0 bHltcA== IHRyYWRpdGlvbg== IE9r IGNybw== IGRlc2NyaXB0aW9u YWxsZQ== IHNreQ== VGU= IHdpZGVseQ== IHdhdmU= IGRlZmluaXRpb24= IEpld3M= IGN5Y2xl IHJlZmVyZQ== IGJyaW5ncw== dXNhbA== IGFsaXZl IGZyZXF1ZW50bHk= IGludGVudGlvbg== IENvbnRyb2w= bHY= eXN0ZW0= IHByaXZhY3k= Z2VudA== cmVuY2U= IFF1ZXN0 IENocmlzdG1hcw== IHJhaWw= IGNvb3Blcg== IHRlc3RlZA== IENhcHQ= YXNrcw== IGNvbWZvcnRhYmxl IGRlbGl2ZXJlZA== c2NhcGU= IGRlcHRo IEdPUA== IHdyaXRlcw== IGFzc2V0cw== IHNhdg== aW1lbnRz IHRyYW5zaXRpb24= IGFydGlzdA== IExvb2s= IGxvYg== IGNvbXBvbmVudHM= YXJpdHk= IHdhbGtlZA== IHJvb3Q= IHBhcnRpY2lwYW50cw== IG5vdGljZWQ= IHJlc2M= IG5hdg== IEFkbWluaXN0 ZGE= dXRyYWw= cGxhdGU= IGltcG9ydGFuY2U= IGFzc2VydA== aW91c2x5 Y3JpcHRpb24= IGluanVyaWVz IENoZWNr IHJlZ2lzdGVyZWQ= IGludGVudA== IG1pc3NlZA== b2dyYXBoaWM= IHNlbnRlbmNl b3VudGVy IGFzc2lzdGFuY2U= ZXZpbg== IGRhdGFiYXNl IGJ1aWxkaW5ncw== IGNsYXNzaWM= IHRoaW5rcw== IE9oaW8= UHI= dWdn IGZlZQ== cGFu IGVmZmVjdGl2ZWx5 IGZhY2lsaXR5 IGJlYXI= IGNoYXB0ZXI= IGRvZ3M= IENvbHVtYg== IGxhdHRlcg== aXRpYWw= IGFkbWl0dGVk VFY= IEdlb3Jn IHBvc3Rz XFw= IGxhd3llcg== IGVxdWl2YWw= IG1hbmQ= IGNvbnRyb2xsZWQ= IFdhbGs= IEFuZHJldw== IG1lbnU= YW1lbnRhbA== IHByb3RlY3RlZA== dmE= IGFkbWluaXN0cg== b3JhbA== IHJlaW4= IFNhcg== IGFtb3VudHM= IG5hdGl2ZQ== IE1vb24= IHJlcHJlc2VudHM= IGFiYW5kb24= IGNhcnJ5aW5n IHRhbms= bWFyeQ== IGRlY2xhcmVk VHViZQ== IGhhdA== IHB1bmlzaA== ZWxsZWN0 bWVz IHVuaXZlcnNl IFJvZA== cGh5 IGluZnJhc3RydWN0dXJl IDUx IG9wcG9zZWQ= b3dudA== Y2E= IE1ha2U= IGhhcmR3YXJl IGNvZmZlZQ== UmVs YmFs d29ybGQ= IFNhZg== IFNlYQ== aW5hbHM= IG93bmVk IGhhbGw= ZXJzaW9u IGRlc2NyaWJl IFBvdA== IHBvcnRpb24= IGF0bW9zcA== IGdvdmVybm1lbnRz IGRlcGVuZGluZw== IG9mZmVuc2U= IHRyaWNr YXdh IExpbmU= IFZpcw== IEhhcmQ= IE9yaWc= IENsaWNr IGRlc2s= IFZhbGxleQ== IFNvdg== IG1vdmllcw== IHJlbWFyaw== IG1haWw= IGNvbnNjaW91cw== IHJ1bGluZw== IFJpZ2h0cw== IG1lZGlj aGVudA== IFdvbWVu Pjw= IHJlcGxhY2Vk IFByZW0= IFRoYW5rcw== IHJlbmV3 IEJhbGw= aWZvcm0= IHNob3Rz Q29tbQ== IGFybWVk IGNvbnN0YW50 IHRhc3Rl IHJlYWxpemVk IGJ1ZmY= IG1v IGVmZmljaWVudA== TW9zdA== b3JhdGlvbg== aWZpZXM= IGNvbW11bmljYXRpb24= IGZsb29k IGNvbnNlcXVlbmNlcw== IGFueXdheQ== aWdn IEdN IFRoYW5r IGlyb24= IGV2b2x1dGlvbg== IENvcA== dHdpdHRlcg== IDk1 IHJlbGF0aW9uc2hpcHM= YWRlbA== IFlvdW5n IHByb3Bvc2Fs YXllcnM= dWlsZGluZw== IEhvdA== T1JF Y29z IGNvbGxhYm9y UEc= YXh5 IGtub3dpbmc= IHN1cHBvcnRz b3dlZA== IGNvbnRyb2xz IG1lcmVseQ== dW1lcg== IGF0aGxldA== IGZhc2hpb24= cGF0aA== IGdpZnQ= IGVyYQ== QU5E IGtpbmRz IEtvcmVhbg== IGxlZ2l0 dWxvdXM= IGVzc2VudGlhbGx5 IHRoZXJhcA== bmlj IHN1ZmZlcmVk IGh1cg== IHByb21pc2U= IGV4Y2Vzcw== IG92ZXJ3 IHByaW1l IEhvdXN0b24= ZXJyeQ== IE1z UlM= MjAxMg== IHN0b3Jlcw== IE9seW1w IGpvdXJuZXk= QWx0aG91Z2g= U3Vi IEVkdWM= IENoYXB0ZXI= IHJlcXVlc3Rz IGNvbnN1bWVycw== IHRpbnk= IGlzb2w= IEZhaXI= YmE= IFlPVQ== IGNyYXNo Y2VsZXI= IGVtb3Rpb25hbA== IGdvb2Rz IGVsZWN0ZWQ= IG1vZGVy IExpbnV4 IGJsb2Nrcw== IGlzbGFuZA== IFNvY2lldHk= IGVsZWN0aW9ucw== IGJyb2FkY2FzdA== IGNoZWFw IG5hdGlvbnM= IHNlYXNvbnM= NDAw IHdhc3Rl IFNhdA== IGZpZWxkcw== ZW1wbG95 IHByb2ZpbGU= IGF1dGhvcnM= QUxM IEdyYQ== d2VzdA== IFR5 IGRlYXRocw== IHZhY2M= IGZvcm1lZA== IGR1 IG9uZ29pbmc= IE11c2xpbXM= ZWxm aWd1cmU= IGFzc3VtZQ== IFVrcmFpbmU= d2F0ZXI= IGNvYXN0 IHZvdGVk Z29y IEFT IE1pY2hpZ2Fu YXph IEFybQ== aXJv IGZsZXg= YXN0ZXJz Jyc= IHdlbGNvbWU= YXJs IGxvY2F0aW9ucw== aWdhdGlvbg== IEZpbA== IGJ1eWluZw== IGFyY2hpdGVjdA== IGhhcmRlcg== IEN1Yg== IGludGVyZmFjZQ== IHJlc3RhdXJhbnQ= IGRpc2NvdmVy IGV4Y2VlZA== IGZhdm91cg== Z2VyeQ== IGR1dHk= IHBpdGNo YWRvcg== IE1hY2g= Ym95 IHJlc3BvbmRlZA== IGV4dGVuZGVk aGVycw== TWFueQ== cmFpZA== aWZlcg== IElucw== U2Vy IG1lZGl1bQ== c2hl IFNwb3J0cw== IG1hZ2F6aW5l dXRhdGlvbg== IGxpbWl0cw== IEdhbGw= IGV4dGVybmFs cmF6aWw= IHlvdW5nZXI= dGxl IHJlbWluZA== IENPTg== IGltbWVkaWF0ZQ== IGhpZGRlbg== IHZvbHVudGU= IHNpbXBs b2RjYXN0 IHBoYXNl ZHI= IHBsb3Q= IGV4cG9zdXJl Ukk= b2dyYXA= dmlu YW5pc2g= IEFjYWQ= IEVuZ2luZQ== IGV4cGFuc2lvbg== IFBheQ== WW91cg== IHB1c2hlZA== IEVsbA== IEhlYWQ= IG1hcmtldGluZw== IEFD a2V0 IGhpdHM= IGdybw== IEFnZQ== IFNjb3Q= XVs= IHN0aW0= IGlQaG9uZQ== iJI= IG5hcnJvdw== IEdldHR5 IFR1cmtleQ== IHBlcmZlY3RseQ== IGVuYWJsZQ== dXRjaA== IHByZWNpc2U= IHJlZ2ltZQ== IHNoaWY= IGNvbXBlbnM= Z3Vu ZGl2 IGNob3Nlbg== IEtlbg== QW55 IHRyZWVz IHJlY29tbWVuZGVk IFJlbg== dWFibGU= IEhU Rm9sbG93 RUc= IEhhbmQ= IEtlbm4= IGFyZ3VtZW50cw== IGV4aXN0cw== IGJpa2U= IENvbnNlcnY= IGJyZWFraW5n IEdhcg== IGNyYXp5 IHZpcnR1YWw= YXlsb3I= aXhlbA== IDE5ODA= IHBlcm1pc3Npb24= IFNlcmllcw== IGNvbnN1bWVy IGNsb3NlbHk= Y2FsbGVk IDU0 IGhvcGVz IGFycmF5 IFdpbg== IExhYm91cg== IHNwb25z IElyZQ== IHBvdw== IHJlYWRlcnM= IGVtcGxveW1lbnQ= IGNyZWF0dXJl IHJlc3VsdGluZw== IGFjY3VyYXRl IG1vbWVudHM= IGFyZ3VlZA== IHBlZA== RHVyaW5n IDUz IFRhbA== IHNvdWdodA== IHN1ZmZlcmluZw== IGljb24= bGVl ICgk YWxpYW4= wrA= IHByYQ== IGJvbnVz KCI= a28= IGFjdGluZw== REU= ZmFsbA== IGNvbXBhcmlzb24= IHNtb290aA== IE5BUw== dXBw IEpvc2VwaA== ZXBpbmc= IFRha2U= IE1pZA== IHNlbmRpbmc= ZmFzdA== IEZhbGw= IGRlYWxpbmc= dXNlcg== IE9yZ2Fu Q28= IGF0dGFjaGVk IHNlZXM= JS4= IHR5cGljYWw= QVJU IGZpbmRz IEFzaWE= dW1pbg== IENvcmU= IEVudA== aW5lbnQ= dWNl IEJsb29k IE5ldmVy IGVtYWlscw== IGhpZ2hsaWdodA== IGNvbmZyb250 YXR1cw== dXRlZA== IHVudXM= IHRvcGlj IEFkYW0= IGJsZQ== YXRp IHVuZGVyc3Rvb2Q= U2V0 c3RydWN0 VFA= IG1vYg== YWE= IFN0YXJ0 cGVjdGVk c2VsbA== IGRlZGljYXRlZA== IENB dWFu IHNvbmdz ZXNjcmlwdGlvbg== IHRlY2g= IHJhcGU= IGFzaWRl IGdyYW50 IDU2 c3Vi IGFyZ3Vl IGNvbnRhaW5pbmc= IHNjaGVkdWxl IGxpYmVyYWw= IHB1YmxpY2x5 IGhlYXZpbHk= IFV0 aW5lcg== IFNlY3Rpb24= IENhcmU= d2VldA== bHM= RGlz 4pSA IEZvbGxvdw== QmFjaw== IElU IGJlcw== amk= IEhpdA== ZXN0ZWQ= IGV2ZXJ5Ym9keQ== IFN3ZWQ= IGZlbWlu IGZhY2lsaXRpZXM= IGNvbnZlbg== Q29tcA== IE9T Y29yZQ== IGFueA== IGRpdmlzaW9u IENhbQ== IFN0YW4= bWF0ZXM= IGV4cGxvcmU= cGxvbQ== IHNoYXJlcw== cGxvYWQ= YW5lcw== IGlkZWFs ZXRlcnM= IEJhc2U= IHBsYXN0aWM= IGRpc3RpbmN0 IE5ldHdvcms= IFNlYXR0bGU= IHRyYWRpbmc= ZW5zdXM= aW50ZW5k IGV4aGli IGluaXRpYWxseQ== IEZvb2Q= IHRob3VzYW5k IEJ1c2luZXNz YWN0ZXI= IHBhcmFncmFwaA== IHJvdWdobHk= IHd3dw== IGNyZWF0aXZl IENvbmY= IGNvbnN1bXB0aW9u IGZpbG1z YWdhbg== IG9idGFpbg== IHRhbGw= IHRvcg== IGFja25vd2xlZA== IGdyb3du YWxv S0U= IDQwMA== ZW5kZXJz dGFpbmluZw== VUc= IHN1aWNpZGU= IHdhdGNoZWQ= IExpc3Q= YWxp cmVoZW5z IHN1cnJvdW5kaW5n IHBpcA== IGZseWluZw== IEphdmE= b3JkYW4= IHNlcnZpbmc= aW5hdGlvbnM= cG9zdA== IHNobw== QXY= IGphaWw= enk= IDE5OTk= IDwv IGxpdGVyYWxseQ== IFNpcg== IGV4cG9zZWQ= IGxpZXM= c3Rhcg== IGJhdA== IGVhcm5lZA== IERpZw== IHNwZWNpZmllZA== IFNlYXNvbg== IGRlZ3JlZXM= RG9uYWxk IGNlbnRyZQ== IHNoYXJpbmc= IHdpbnRlcg== IENP Q2hl IM4= TVA= IHVudw== IGZld2Vy IE1pcg== IHNvbWV3aGVyZQ== IEtleQ== IGF0dGFja2Vk IEtpcg== IGRvbWFpbg== IHN0cm9uZ2Vy IDk5 IHBlbmFsdHk= SWQ= U2NyaXB0 IGRlY2xpbmVk IG5lY2s= IGZyYXVk IGN1cnJlbmN5 IHJpc2luZw== UkM= 4oCm4oCm SHo= IHRhYg== IHRhbGVudA== bmFt IE5CQQ== IHZpbGxhZ2U= IGxlZ3M= IE5leHQ= RWQ= IGFjaWQ= IGh5ZA== ODAw IGludm9sdmluZw== IEltYWdl IEJlZm9yZQ== Rmw= IHllc3RlcmRheQ== U291cmNl IHRlcnJvcmlzdA== IHN1cA== IHN5bnQ= IFNhdWRp IHdlc3Q= IHJ1 YnVyZw== IHZpc2libGU= IHN0cnVjaw== cmlzb24= IGF3ZXNvbWU= IGRyYXdu IGFuc3dlcnM= IEdpcmw= IFJhbQ== IHRocmVhdHM= IGRlZmVhdA== b3NpdA== IHZlbnQ= YXR1cmFsbHk= QW1lcmljYW4= ZW5kYQ== IEhvbHk= IHJ1bQ== JSw= Y2FzZQ== IEhpc3Rvcnk= IFlvdVR1YmU= IHNpdHVhdGlvbnM= IEROQQ== U3Rl IHNhdmVk SXRlbQ== IHJlY2lw b2xvZ2lzdA== IGZhY2Vk IGVsaWc= T25jZQ== IExp dWg= IG1pc3Rha2U= IERpdmlzaW9u IEJlbGw= IHN5bXB0b21z wq4= IGRvbWlu IGZhbGxpbmc= IGVuZGluZw== YXNoZXM= IG1hdGNoZXM= IE9ubGluZQ== IGV4cGxhbmF0aW9u RGVm cmVkaXQ= IGFueW1vcmU= IFRvdGFs IEZPUg== dXNoZWQ= IGxldHRlcnM= IHJpc2tz IE9L IHJlcG9ydGVkbHk= Olw= IHBsYXRl IHN1YmplY3Rz IGF0dGVtcHRlZA== aWZpZXI= aWFuYQ== IHVubGlrZWx5 IFRob3VnaA== dW1h IEludmVzdA== IFByaW4= aWNhbg== IERhcg== IENvbG9yYWRv YXVn IHZlZ2V0 YW9z cmlh IHNoZWw= IG1hcmtlZA== ICgp IHNwcg== cG8= IExpbms= IGRlZmU= IEpy IHRoZW1l IHBhc3Npb24= IFBlbg== IGluZm8= aXplcg== IHNoaXQ= IENpdmls YXBzZQ== Y3Jl IHBvbHk= IGNvbXBvbmVudA== IENoYXJsZXM= IElyZWxhbmQ= IFByb3Y= IGRvY3RvcnM= IGdyYW50ZWQ= IHBhaW50 IGhvbm9y IHNtb2tl IHBheW1lbnRz IHByaW1hcmlseQ== IEtpbmdkb20= cmljaA== YXRlbGw= IGRlYWxz IHNjaGVkdWxlZA== IGZ1bmRhbWVudGFs IHByb3RlaW4= IG5ld3NwYXBlcg== IGNsaWVudHM= eXRob24= IERhdGU= aHVz IGZlZWRiYWNr IHN0cmV0Y2g= IGNvY2s= IGhvdGVs IFF1ZWVu IHN1Z2Fy IGp1 IG1pbGs= IGFwcHJvdmFs IExpdmU= IGVxdWl2YWxlbnQ= ZWZ1bGx5 IGluc2VydA== em9uYQ== IGV4dGVuc2lvbg== ZHJp Sm9obg== IGFjY29tcA== U20= IEZ1bmQ= IGNvbnN0YW50bHk= IGBg IGdlbmVyYXRlZA== IEFjdGlvbg== IFBzeWNo IFRyaQ== IHJlY29nbml6ZQ== IHZhcnk= cGhh IFJh ZGY= ZXRjaA== IFNvdmlldA== VHdv IHBhdHRlcm5z IHByb2Zlc3Npb24= YW5pbmc= VGltZQ== IExpbQ== IGNvbG9ycw== IEF6 IFRS IGluZmVjdA== IHBoZW5vbWVu IHNoZWxs QWxzbw== IHB1dHM= IGRlbGl2ZXJ5 IGJyb3du IHByb2Nlc3Npbmc= IGxpZ2h0cw== ZXNzYWdl IEJyb29r IEF1ZA== bGF0aW9u IGluZHVzdHJpYWw= TGlrZQ== IEJyYXppbA== cm91cw== RVNT IEx1Yw== IHNvbWVob3c= IDg1 IHByb3BvcnQ= IHBvbGl0aWNpYW5z IGluZGljYXRl IGhvbGU= IHRlY2huaXF1ZXM= IGNvbXBldGl0aXZl IHBocg== IHZv aXN0ZW50 IERyZWFt IGNhbXB1cw== IGFzcGVjdHM= IGhlbHBmdWw= IHNoaWVsZA== b3JzZQ== IHRyaWdnZXI= bWFs IDU4 IHRvcnQ= IHBlcnNvbmFsbHk= IHRhZw== IGtlZXBz IFZpZGVv IGJlbmNo IGdhcA== YWlyZQ== IGVhc3Q= IHJlY292ZXJ5 cGVyaWFs IHByb2ZpdA== IE1pYw== IDU3 IGNvbG9u IHN0cm9uZ2x5 c3R5bGU= IGFsbGVnYXRpb25z aGFu IHJlcG9ydGVycw== am8= cmluZQ== YXJnZXQ= YW5kYWw= IDAz IGZsYXNo dHJhbnM= IHN0cmljdA== IHBhcmtpbmc= IFBha2lzdGFu IGxp IHdlaXJk IEVyaWM= IHJlZ2lvbnM= IEp1bg== IGludGVsbGVjdA== IFdI b2Rpbmc= cmlidXRlcw== dXBpZA== IFRpdA== IGZpbmdlcg== b3JpYQ== IGVsZXY= IEZpZWxk IGNvbmNsdXNpb24= Ozs= IGZlZWxpbmdz IGV4dGVuc2l2ZQ== IG1peGVk IG5ldXJv dnk= IGhhcmFzcw== IENpcmM= b3VjaA== IHRlcnJpdG9yeQ== IHN1Y2Nlc3NmdWxseQ== TWFy IGluZ3JlZA== IG92ZXJ3aGVs IGxheWVy Vmlldw== IGFsbGllcw== aWxsYW5jZQ== IFRocmVl IGJ1bmNo IG5vcm1hbGx5 IG5ldHdvcmtz IHNhY3I= IENJQQ== Ymxlcw== IGNob3Nl IG9wcG9uZW50cw== IHJlZ2FyZGxlc3M= IGZyYW5jaA== IHByZWY= IFBv IGJyaWRnZQ== YW5uYQ== IFNpbHZlcg== IHdhZ2U= cGFnZQ== cmlvcg== IHJhZGljYWw= IExpdHRsZQ== IG1hbmlw IHNlY3JldGFyeQ== IGdhbmc= RFI= RkE= IGRlY2VudA== IFNwaXJpdA== IHVuY2xl IERldmVsb3BtZW50 IGludmVzdG9ycw== IHdhbGxz IHB1Ymxpc2g= IGdlbmVyYXRl aXNzaW9ucw== Y2Fy IHByb21vdGU= IGN1dHRpbmc= IGNoZXN0 IGRyaW5raW5n IGNvbGxlY3RlZA== IDcy IGhvcGluZw== IGVtYnI= Z29yaXRo IHdhcm5lZA== IGluc3RydWN0aW9ucw== T0c= IERpZA== IEFnZW5jeQ== IGdlYXI= IGNyaXRpY2lzbQ== IEZ1cnRoZXI= IHV0aWw= YW5ueQ== UmVk IGNvdW5zZWw= IEFzaWFu IHJlZHVjdGlvbg== cG9vbA== IHRlYWNoaW5n IGRlZXBseQ== aXk= IGVzdGltYXRlcw== IGNob2ljZXM= IHBlcm1hbmVudA== aW5lbQ== a2Vs IGZhc2M= cHNl ZmlsZQ== IExvdw== IFBlcnNvbg== IHRvdXJuYW1lbnQ= c3RhbA== IG1lbA== VVNU IFJheQ== YXpp VmFs IGNvbnRhaW5lZA== IEhvbGx5 IHdha2U= IHJldmVhbA== IHByb2Nlc3Nlcw== IElTSVM= IDA5 IGJsaW5k IHN0ZWVs IEJhZA== IGNhcmVmdWxseQ== YXBweQ== cm9pdA== IGdhbWluZw== IGhvdXNlcw== IENvbGw= IHRydWNr ZXJt IHNjb3JlZA== IG9jY2Fz cmV0dXJu Ym91bmQ= dmFy IHNoYXJw IGFmcmFpZA== IEVY YW1iZXI= Y2lmaWM= IHNjaGVtZQ== TkM= IFBvbGl0 IGRlY2xpbmU= IDE5OTg= IHB1c2hpbmc= IHBvc3Nlc3Npb24= IHByaXZpbGU= IHRlYWNoZXJz IHlpZWxk SEE= IERhdmlz aXRsZWQ= IyMjIyMjIyM= IHJpZw== IERhbmllbA== YWNvbg== IGhpZGU= dXRlbg== IGNvbGxlYWd1ZXM= IHByaW5jaXBsZXM= IGxvdWQ= IHNpbg== IERlbW9u IHN0b25l IDAy IHRhdWdodA== IHRlcnJpYmxl IHN0dWNr IFBvbGljeQ== dGVlbg== IGltcGxlbWVudGF0aW9u IEJCQw== IEFQSQ== IHdoZWVs YWxsYXM= IGNoYW1waW9ucw== b2xhcnM= cGxheWVy IHJlcGVhdGVkbHk= IFN0aWxs IGxpa2Vz YXN0eQ== ZXN0ZXI= IENhdGhvbGlj Ukw= IGJhdGg= IG5vaXNl dGl0bGU= IG5vcnRoZXJu UGFydA== IG1hZ24= IGZhYg== IEFzaA== IGRpc3Bs IHRpY2tldA== IG11cmQ= IGFsb25nc2lkZQ== IE11c2lj IHJpdmVy IFN0ZWVs IENM IFBsYXllcg== IE11bHQ= b3dpbmc= cmVw c2l6ZQ== IHR1cg== IEdlb3JnaWE= aXNjYWw= cmFjdGlvbg== IGNhYmxl IDU5 IHdpbnM= IHVwY29taW5n IHN1cnZpdmU= IGluc3BpcmVk IEVkdWNhdGlvbg== IHN0YXRpc3RpY3M= IEZvb3Q= aWFtaQ== IHllbGxvdw== IFBhZ2U= Li0= IEhhcw== IHVyYmFu IGF4 ZXNzZWw= XCI= IHF1YXJ0ZXJiYWNr IHJlZ2lzdGVy IExhYm9y IGFiaWxpdGllcw== IEZhbWlseQ== IHZhcmlhYmxl IFByaWNl IGNvbnRlbQ== IHRoaW4= IEVxdQ== ZGF0YQ== IGdvdHRlbg== IGNvbnN0aXQ= IGFza3M= IHRhaWw= IGV4Y2l0aW5n IEVmZmVjdA== IFNwYW5pc2g= IGVuY291cmFnZQ== aW5zb24= IEFo IGNvbW1pdG1lbnQ= Q1M= IHJhbGx5 IDo6 IHN1YnNpZA== IHNwaW4= IGNhcHR1cmVk MjAxOA== IGlubm9j IGFsbGVnZWRseQ== IENvbWU= IGFydGlzdHM= IE51bWJlcg== IGVsZWN0cm9uaWM= IHJlZ2lvbmFs YXBlcw== IHdyYQ== IG15dGg= cHJpc2U= IE1pbGxlcg== IENyZWF0 IEVwaXNvZGU= YmVsbA== IGRpcmVjdGVk IGV4dHJhY3Q= IHNvcnJ5 IHZpY2U= YWdnZXI= IFN1cHBvcnQ= IDY2 IElyb24= IHdvbmRlcmZ1bA== IGdyYQ== TmV0 aW9uZQ== RW5n IHNoaXBz aWtlcw== IEtldmlu aXRhcg== IGFjdGl2aXN0cw== dHJ1ZQ== IEFyaXpvbmE= ZW50aA== IERlc3BpdGU= IFNF IGhhYml0 ZXJuZWw= IGlucXU= IGFib3J0aW9u IHZvaWQ= IGV4cGxpY2l0 IGVuZ2FnZWQ= IGFuZ3J5 IHJhdGluZw== IGZyYWc= YnJv aWNraW5n ZGV2 IHdvcnJpZWQ= IG9ic2Vy IGFwYXJ0bWVudA== IEdU IGVzdGF0ZQ== IENvbnN0aXR1dGlvbg== ZW1vbg== IFNub3c= IGNvdW50eQ== IGRpc2Fn IFN0ZXBoZW4= IGltbWlncmFudHM= d2luZA== IE5hdGlvbnM= IGZvbGtz T3V0 IGdhbGw= IHRhcmdldGVk IHN0ZWFk IEJvbg== IExpYg== IGluZm9ybWVk IDEyMA== Y2hhaW4= aWRlbGluZXM= b3JvdWdo IGRyaXZlbg== IHJlZ3VsYXJseQ== IGJhc2tldA== IHByaW5jaXBsZQ== b2N1bWVudA== IHN0dW4= aWJpbGl0aWVz IFJvbWFu IEFib3V0 IGFsZXJ0 IGRlbW9jcmFjeQ== IHJlcHJlc2VudGVk SFM= Y2Vycw== cGFyZW50 QXJ0 cGFjaw== IGRpcGxvbQ== cmV0cw== IE5P IGNhcHR1cmU= IEFkdg== hKI= IGFubm91bmNlbWVudA== IExlYXI= IGhvb2s= IHB1cnM= IFN1Y2g= IENhbWVy IHJlZnVnZWVz IFZl UG9s IHJlY29nbml6ZWQ= bGli IGhhZG4= QXNz IHBpbG90 dXNoaW5n IHJldHVybmluZw== IHRyYWls IFN0b25l IHJvdXRpbmU= IGNvdXJ0cw== IGRlc3Blcg== IGZyaWVuZGx5 IEl0YWx5 IHBsZWQ= IGJyZWF0aA== IHN0dWRpbw== TlM= IGltcHJlc3NpdmU= IEFmZ2hhbmlzdGFu IGZpbmc= IGRvd250 aW5raW5n IFJvZw== aWFyeQ== Y29sb3I= c2V4 YXJvbg== IGZhdWx0 IE5pY2s= RG93bg== IFJvc2U= IFNvdXRoZXJu WFg= aXNvZGVz TGlzdA== NjAw IG91dGNvbWU= ZXJy IGVsc2V3aGVyZQ== IHJldGlyZQ== IHBvdW5kcw== IEdsb2JhbA== UGVvcGxl IGNvbW11bmljYXRpb25z IGxvYW4= IHJhdGlv IEVtcGlyZQ== IGdvbm5h IGludmVudA== REY= IDE5NzA= IENvbW1vbg== cGF0 IHByb21pc2Vk IGRpbm5lcg== IEhvbQ== IGNyZWF0ZXM= IG9wZXJhdGU= dmVydHk= IEpvcmRhbg== ZXRpbWU= IHN1c3RhaW4= UmVn IGluY3JlZGlibGU= aW1h IHdhcnJhbnQ= IG1t QXR0 IGxhd3N1aXQ= IHJldmlld3M= aXR1cmU= IFNvdXJjZQ== bGlnaHRz IEZvcmQ= IDYz Z3JvdXA= c3RvcmU= IGZlYXR1cmVk IGZvcmV2ZXI= IHBvdmVydHk= IFBvcA== IENOTg== YXp6 YWJpcw== YWNoaW5n IGxhaWQ= IFN1cHA= IGZpbHRlcg== ZW5h IENvbW11bml0eQ== IGNyZWF0dXJlcw== dWN0aW9u IFJveWFs IGFzc29jaWF0aW9u IENvbm5lY3Q= IEJyYWQ= 4paI bGVycw== dGhlcmU= IEdp IHZhbHVhYmxl QUNL IFRheWxvcg== IGxpcXVpZA== IEF0dG9ybmV5 IENhcmw= IEZpbmFs YWdh IFdpbHNvbg== QmVjYXVzZQ== IFByb2Zlc3Nvcg== YWth IGluY3JlZGlibHk= cmFuY2U= ISk= UmVm c2s= IHNvbHV0aW9ucw== IGF0bW9zcGhlcmU= IGJsYW1l dW1lcw== IE5vYg== Q0E= dW1wcw== cmljYWw= IFB1dGlu IERlc3Q= b3JpYw== IFBB IHJlc3BlY3RpdmVseQ== d2Fu IGZpZnRo 4oSi IENyeQ== IGdvdmVybm9y cmVzaWRlbnQ= IHB1cmNoYXNlZA== IGhhY2s= IGludGVuc2U= b2Jz IG9yaWdpbg== IGRlZmluZQ== IGNhcmVmdWw= Kioq IHNob3VsZGVy Q2xpY2s= IHRpZWQ= IGRlc3RydWN0aW9u b3VyZWQ= IG5vYm9keQ== IGhv IEV4cGVy IHRpcA== Ijs= IHRlY2huaXF1ZQ== IGp1cg== IFBvaw== Ym93 IGxlZ2VuZA== IGFjY29yZA== IGJ1c3k= IEludGVs IGhhbmc= YWtp Ll0= 4oCU4oCU4oCU4oCU IHN1cmdlcnk= IHJlcHJvZHU= IHVuaWZvcm0= IHNjZW5lcw== Y29kZQ== IDYy bGlzaGVy IEhhdmU= cGhpYQ== IGNyeXB0 IHJlY29u IHNjcmVhbQ== IGFkb3B0ZWQ= IHNjb3Jlcw== TmU= IEl0YWxpYW4= aW5jbHVkaW5n Qk8= IGluZGljYXRlZA== IGVudGVydGFpbg== R3U= VGV4dA== aWVs IHR3ZW50eQ== IGVuZ2FnZQ== b2Zmcw== IFBhY2lmaWM= IHNtaWxl IHBlcnNvbm5lbA== IHRvbGVy IGRvb3Jz IHRvbmU= IG1hY2hpbmVz IGVudGVyaW5n dGVuYW5jZQ== Q08= IEplcnNleQ== IGZvcmVzdA== IGhvcnNl IGNvbXBsYWludA== IFNwcmluZw== eW8= IFBsdXM= ZWRpbmc= IFJldHVybg== cXVhcnRlcnM= aWFscw== Y293 IGFjYWRlbWlj IGZydWl0 IDE5OTY= b2dldGhlcg== IHdpbmU= IHB1cnN1 IFN0ZXZlbg== IGxpY2Vucw== V2hv IGNsb3RoZXM= cmVjdGlvbg== IHNxdWFk IHN0YWJsZQ== IHJhdw== emVucw== U3Rhcg== dXRpZXM= YW5jZXI= IGtleXM= IE11 IGNvbXBsaWNhdGVk aWdlcg== IFRleHQ= IGFic29y IDY4 IGZ1bm55 IHJlbGllZg== IExldw== IENvb2s= IGNoYXJ0 IGRyYXdpbmc= R0U= IG1vZHVsZQ== IEJ1bGw= SUxM IHNhbHQ= MDAwMDAwMDA= aWxsZQ== IHJlc291cmNl YXdheQ== YWRlbHBoaWE= IEJydQ== IDY3 IHNvbWVib2R5 IHBhcnRpY2lwYXRl IHJvc2U= d2VyZWQ= IG11c2NsZQ== IGNvbnNlbnQ= IGNvbnRpbnVpbmc= IEd1YXJkaWFu IE9yZGVy cmVnb24= IHJlYXI= IHByb3Zpc2lvbg== IGxpa2Vk cmllbnQ= IGJyYQ== VHJhbnM= IG1lZXRpbmdz IHRveA== IGNvbnZlbnQ= IGF1dG8= IHJlY29yZGluZw== IFNvZnQ= MDAx IFJvbGw= IHByb2dyYW1taW5n IHBpYw== IHByb3ZlZA== IHN0YWI= IEFzdA== IGNhcHRpb24= dWxhdGluZw== IEF0dGFjaw== IG5ld2x5 IDE5OTc= ZnI= IGRpc2NpcGw= IEdyZWVr IGVkaXRpb24= IERvZXM= IEJveA== aWZsZQ== YWNrZXQ= IHBhc3Nlcw== IGd1ZXN0 IGFjY2VsZXI= aXRhbHM= VUQ= IGF1dGhlbnQ= IFJlc3Q= b3ZhbA== dGE= dWluZQ== IGFybW9y IFRvd24= IGNvbXBhdA== IGluY2hlcw== RGVzcGl0ZQ== IGFzc2lnbg== aGVyZW50 IHByZXBhcmU= IE1lZw== b2NrZXk= IGRlcGVuZHM= IHRyYWNrcw== d2F0Y2g= IGxpc3Rz IE5vcnRoZXJu IGFsdGVy cmVj IEVhc3Rlcm4= IGNvbmRlbQ== IGV2ZXJ5d2hlcmU= Pyc= IGFmZmlsaQ== IGZvdWdodA== Ijp7Ig== IG1hYw== aXRhcmlhbg== IHNjb3Bl IEFM YXdz YXJtcw== IHF1ZQ== IGVuam95ZWQ= bmVzb3Rh IGFnZ3Jlc3NpdmU= IFN0b3J5 IElW IHJlY2lwZQ== IHJhcmVseQ== IE1lZGljYWw= dmFsdWU= YW5nZWw= YXlpbmc= b21ldGhpbmc= IHN1YnNlY3Rpb24= IHNvdXRoZXJu IGZyZXF1ZW5jeQ== cmV0ZQ== cm9sbGVk dWx0cw== IE5pYw== IGJlaGFsZg== IHNlcXVlbmNl YWJldA== IGNvbnRyb3ZlcnNpYWw= IGNvbXByb20= IHdvcmtlcg== IG1haW5seQ== IGFsZ29yaXRo IE1ham9y b3JjZQ== Z2VuZGVy IG9yZ2FuaXplZA== IGZha2U= IGNvbmNsdWRlZA== IEVE IEV4ZWM= cmFnZQ== IGNoYW5jZXM= YmVycnk= IFRyYWQ= IGNvbmZpZ3VyYXRpb24= IHdpdGhkcmF3 IGZybw== dWRlcw== IEJyb3RoZXI= IEJyaWFu IHRyaWVz IHNhbXBsZXM= IGJpZA== IEdvbGRlbg== IHBob3RvZ3JhcGg= aWZlc3Q= IERP IFBhcmxpYW1lbnQ= KioqKioqKioqKioqKioqKg== UmVt IGNvbnRlc3Q= IHNpZ25pbmc= cHg= IFplYWw= 4pSA4pSA RWFy IGV4aXQ= QmVmb3Jl IENvcnBvcg== bnVsbA== bW9udGg= IHJhY2lhbA== b3R0ZWQ= IFZlZw== IFJldXRlcnM= IHN3b3Jk cHNvbg== IFJvbW5leQ== YWVk IHRyaWI= IGlubmVy IHByb3RvY29s IEJp IE1pYW1p ZXZlcmFs cHJlc3M= IHNoaXBwaW5n IEFtZW5kbWVudA== IEhvd2FyZA== Y29ubmVjdA== IERpc2M= IEphYw== aWFtb25k IFRoZXJlZm9yZQ== c2Vz IFByaW5jZXNz IFVTQg== IEFudGg= IHN1cnZlaWxsYW5jZQ== IGFwb2xvZw== IDYx b3dh IGZ1bGY= anM= IGx1Y2s= dXN0ZWQ= IMKn bmk= IGFudGljaXA= ZW1hbg== IHdpbm5lcg== IHNpbHZlcg== bGxh aWNpdHk= IHVudXN1YWw= IGNyYWNr IHRpZXM= ZXo= IHByYWN0aWNhbA== IHByb3ZpbmNl IFBsYWNl IHByaW9yaXR5 SUNF IGRlc2NyaWJlcw== IGJyYW5jaA== Rm9ybQ== YXNrYQ== bWlzc2lvbnM= Ymk= IHBvcm4= IFR1cms= IGVudGh1cw== IGZpZ2h0ZXJz IDA4 IERldHJvaXQ= IGZvdW5kYXRpb24= YXZpZA== QXJl IGp1ZGdtZW50 Y2xpbmc= IHNvbHZl IERlc2lnbg== V2hlcmU= aGVzaXM= IFRybw== YWZ0ZXI= IG5ldXRyYWw= IFBhbGVzdGluaWFu IEhvbGx5d29vZA== IGFkdmlz IE5vbg== eWVz b2xpcw== IHJlcHV0YXRpb24= IHNtZWxs IGJyZWFk IEJ1bA== IEJlYWNo IGNsYWltaW5n IGdlbmV0aWM= IHRlY2hub2xvZ2llcw== IHVwZ3JhZGU= cm93cw== IGRldmVsb3Blcg== IEpvc2g= IERpc25leQ== ZXJ2ZWQ= aXBhbA== IHVuZXg= IGJhcmVseQ== dGhlbg== IFB1Yg== IGlsbG5lc3M= ZXRhcnk= IEJhbA== IHBhdGNo IGJ1dHQ= IHN0dXBpZA== IERvZw== IERhbGxhcw== ZnJvbnQ= aWVjZQ== IHByb3Rlc3Rz IGNoYXQ= b2VuaXg= IHdpbmc= IHBhcmxpYW1lbnQ= IDc3 b3NleHVhbA== IHJlbmRlcg== cHRpb25z IENvYXN0 b3Nh IEdyZWc= aG9w IE1hbmFnZW1lbnQ= IGJpdGNvaW4= IHJlY292ZXI= IGluY29ycG9y b3JuZQ== IFVzaW5n IHByZWNlZA== IHRocmVhdGVuZWQ= IHNwaXJpdHVhbA== IEV2ZW50 IEZyZWQ= IGFkdmVydGlzaW5n IGltcHJvdmVtZW50cw== IEN1c3RvbQ== IGVycm9ycw== IHNlbnNpdGl2ZQ== IE5hdnk= IGNyZWFt TG9vaw== IGV4Y2x1c2l2ZQ== IGNvbXByZWhlbnM= IGRlbGVn IGNvbmNl IHJlbWVt IHN0cnVjdHVyZXM= IHN0b3JlZA== TkQ= IDEwMDA= VVA= IEJ1ZGQ= QUY= d29tYW4= IEFjYWRlbXk= 8J8= c2Vh IHRlbXBvcmFyeQ== QWJvdXQ= ZXN0ZXJz IHRpY2tldHM= IHBvc3Nlc3M= aW5jaA== b3o= IGxh IGNvbnRyYWN0cw== IHVucA== IGNpZw== IEthdA== dWx0dXJhbA== YXNt IG1vdW50YWlu IENhcHRhaW4= U3RlcA== bWFraW5n IFNwYWlu IGVxdWFsbHk= IGxhbmRz YXRlcnM= IHJlamVjdGVk ZXJh aW1t cml4 Q0Q= IHRyYW5zYWN0aW9u Z2VuZXI= bGVzc2x5 IHx8 IGNvcw== IEhlbnJ5 IHByb3Zpc2lvbnM= IGdhaW5lZA== IGRpcmVjdG9yeQ== IHJhaXNpbmc= IFNlcA== b2xlbg== b25kZXI= IGNvbnNvbGU= aW5zdA== IGJvbQ== IHVuY2VydGFpbg== MTUw b2NraW5n IG1lYXN1cmVk IHBsYWlu IHNlYXRz IGRpY3Q= U0w= YWZl IGVzdGltYXRl aXpvbg== YXRoZXJlZA== IGNvbnRyaWJ1dGVk IGVwaXNvZGVz b21tb2Q= R3I= QU5U IDY5 R2VuZXI= IDI1MA== dmlvdXNseQ== cm9nZW4= IHRlcnJvcmlzbQ== IG1vdmVtZW50cw== ZW50bGU= b3VuY2U= IFNvdWw= IHByZXY= IFRhYmxl YWN0cw== cmlvcnM= dGFi IHN1ZmZlcg== IG5lcnY= IG1haW5zdHJlYW0= IFdvbGY= IGZyYW5jaGlzZQ== YmF0 IGRlbWFuZHM= IGFnZW5kYQ== IGRvemVu IGNsaW5pY2Fs aXphcmQ= IE9w dGQ= IHZpc2l0ZWQ= IFBlcmhhcHM= IGFjdG9y IGRlbGlj IGNvbnRyaWJ1dGU= IGluamVjdA== IEVz YWNjbw== IGxpc3RlbmluZw== IGNvbmdyZXNz ZXBlbmRlbnQ= IHByZW1pdW0= IDc2 IElyaXNo IGFzc2lnbmVk IFBoeXM= IHdvcmxkd2lkZQ== IG5hcnJhdGl2ZQ== b3R5cGU= bW9udA== YmFzZQ== IEJvd2w= IEFkbWluaXN0cmF0aW9u IHJlbGF0aW9u IEVW Q1A= IGNvdmVycw== IDc4 IGNlcnRpZmlj IGdyYXNz IDA0 cGlyYWN5 aXJh IGVuZ2luZWVyaW5n IE1hcnM= IHVuZW1wbG95 IEZvcmVpZ24= c3RyYWN0 IHZlbg== IHN0ZWFs IHJlcGxpZWQ= IHVsdGltYXRl IHRpdGxlcw== ZGF0ZWQ= IGpveQ== YXVz IGh5cGVy YWt1 IG9mZmljaWFsbHk= IFByb2R1Y3Q= IGRpZmZpY3VsdHk= cGVyb3I= IHJlc3VsdGVk cmliZWQ= bGluaw== d2hv fn5+fg== IFNwZWVk IFZpZXQ= V2luZA== IEJhcmFjaw== IHJlc3RyaWN0aW9ucw== IFNoYXJl IDE5OTU= aXRpb25hbGx5 IGJlYXV0eQ== b3B0 IG1hcHM= IENS IE5hdGlvbg== IENydXo= V2lsbA== IGVsZWN0cmljaXR5 IG9yZw== IGJ1cmQ= IHZpb2xhdGlvbg== IHVzYWdl IHBlcm1pdA== IENocm9u IEZhbnQ= IG5hdHVyYWxseQ== IDA3 IHRocm93bg== IEF3b2tlbg== IGFsaWVu IEhlcm8= IEtlbnQ= IFJpY2s= cmlrZQ== IHBhY2U= fSx7Ig== R0w= IHBvaXNvbg== IFRvd2Vy IGZvcm1hbA== YWx5c2lz IGdlbnVpbmU= IGtpbA== YXZlcg== IHByb2NlZHVyZQ== IFByb3A= aW50ZW5kbw== IE1haW4= YXNhbnQ= IHRyYWluZWQ= R2FtZQ== IExvYWQ= IE1B IGNydWNpYWw= IGxldHM= IEZS IGNoYW1waW9u MTAx IENvbmZlcmVuY2U= IHdyaXRlcnM= IGNvbm5lY3Rpb25z IG9rYXk= aXJtcw== IFJhbmQ= IGVuY291bnRlcg== IEJ1ZmY= IGFjaGlldmVk IGNoZWNrcw== aXNjb25z IGFzc2lzdGFudA== IHdoZW5ldmVy IEFjY2Vzcw== IFVy Ymlu IGNsb2Nr aXNw b3BoZXI= IGJvcnJvdw== IG1hZA== IHBlcnNvbmFsaXR5 b25seQ== SVNU YWJhbWE= IGdhaW5z IGNvbW1vbmx5 IHRlcnI= IGh5cG90 IHJlbHk= IHRpc3M= aXNjb25zaW4= IHJpZGlj ZnVuY3Rpb24= IE9yZWdvbg== IHVuY29t cmF0aW5n ZWxhbmQ= IE5D IG1vb24= YW5ub24= IHZ1bG5lcmFibGU= dXRpdmU= wqDCoMKgwqA= IFJhZGlv IHdlc3Rlcm4= c2VjdA== IFRvbnk= IG9jY3Vycw== IE9z IEhvbg== w60= IHZlc3NlbA== IFNjb3RsYW5k IGRpc2NyaW1pbmF0aW9u IHN1YnNlcXVlbnQ= c3RyaW5n IGZhbnRhc3k= IFNoYWRvdw== IHRlc3RpbQ== V0U= aXRp cmFz IGJvYXQ= IG1hcmtz IG9yZGluYXJ5 IHJlbg== IHJlcHJlc2VudGF0aXZl IHBldGl0aW9u IDcz IGFkdmVudHVyZQ== IGlnbm9yZQ== IFBoaWxhZGVscGhpYQ== IFNhdg== VlA= IGZhY3Rvcnk= IHRhc2tz IGRlcHJlc3Npb24= emVk Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4= IFN0b3Jt IGNvZ24= IGVsaWdpYmxl IHJlZHVjaW5n dmlh IDA1 IHN0cmlraW5n IGRvbGxhcg== aG8= T1Y= IGluc3RydW1lbnQ= IHBoaWxvc29waHk= IE1vb3Jl IEF2ZW51ZQ== IHJ1bGVk IEZyb250 SU5F IE1haA== IHNjZW5hcmlv IE5BU0E= IGVub3Jt IGRlYnV0 IHRlYQ== VG9kYXk= IGFic2VuY2U= U2lt IGhhbQ== bGVlcA== IHRhYmxlcw== IEhlYXJ0 TUk= S2U= cmVxdQ== VkQ= bWFw IGNoYWlybWFu IHB1bXA= IHJhcGlkbHk= dmk= IHN1YnN0YW50aWFs RVA= ZGVz Y2hhbnQ= aWxpcHA= IFNhbnRh cmllcnM= YW5jaGVzdGVy TG9hZA== IENhc2U= IHNhdmluZw== IDc0 IEFGUA== ZXJuaW5n b3VuY2Vk IE1pbm5lc290YQ== IFdhcw== IHJlY3J1 IGFzc2Vzc21lbnQ= IEJyb24= VUU= IGR5bmFtaWM= IGZ1cm4= dWxhdG9y IHByb3BhZw== aGlnaA== IGFjY29tbW9k IHN0YWNr IFN1cw== d3JpdA== IHJldmVu IEdvZGQ= IFplYWxhbmQ= YWJz IGJydXQ= IHBlcnBldA== aG90 IGhhcmRseQ== IEJ1cm4= 44K5 IHN0eQ== IHRyYW5zYWN0aW9ucw== IGdhdGU= IHNjcmVlbnM= IHN1Ym1pdHRlZA== IDEwMQ== IGxhbmd1YWdlcw== dWdodA== ZW1lbg== IGZhbGxz IGNvYw== gqw= IHN0cmlrZXM= cGE= IGRlbGliZXI= IElN IHJlbGF4 YW5uZWxz IFNlbmF0b3I= IGV4dHJlbQ== IH0s IERlYg== IGJlbGw= IGRpc29yZGVy Y3V0 IGlPUw== IGxvY2tlZA== IGVtaXNzaW9ucw== IHNob3J0bHk= Il0= IEp1ZGdl IFNvbWV0aW1lcw== IHJpdmFs IGR1c3Q= IHJlYWNoaW5n RmlsZQ== wq/Cr8Kvwq8= aW5vaXM= IEphc29u IHNhdGVsbA== YXJldA== IHN0YXRpb25z IGFncmlj IFRlY2hub2xvZ3k= Y29tZXM= IFVuZm9ydHVuYXRlbHk= IENoaWxkcmVu IGFwcGxpZXM= YXN0ZWQ= IGFuZ2Vy YWlsYWJpbGl0eQ== IERhbWFnZQ== IGNvbXBhcmU= IFN0YW5kYXJk IGFpbWVk IEJh YW5ndWFnZQ== IHJlZ3VsYXRpb24= IGp1cnk= IGFpcnBvcnQ= IHNlY3Rpb25z IFByaW5jZQ== ZW1lZA== IG1lZGljaW5l IGhpdHRpbmc= IHNwYXJr b2x2ZXM= IGFkcw== U3RhdGU= IGZvb2Rz IHJlcGxhY2VtZW50 IGNoaWNrZW4= IGxvd2VzdA== IG1pbmRz IGludm9sdmVz dWk= IGFycmFuZw== IHByb2NlZHVyZXM= IFdoaWNo aXZlcnNhcnk= IGJpbGxz IGltcHJvdmVtZW50 IGluZXY= IGV4cGVjdGF0aW9ucw== IGludGVsbGVjdHVhbA== IHNwYWNlcw== IG1lY2hhbmlzbQ== MjUw YnJlYWs= IFpl IFRlbm4= IEJhbHQ= IGJhcnJlbA== IHN0YXRpYw== bWFubg== UG9saWNl IHRpcHM= IGhhbmRsaW5n Y3Vz b2RlZA== aWx0b24= aXJ5 IGpvdXJuYWxpc3Rz b3Vyc2U= IGNvbWlj IG5vbWluZQ== SVRZ IHZlcnN1cw== IGxvb3A= IHN1cmY= IEluZHVzdA== IEh1bnRlcg== IGJlbGllZnM= aXNhbg== IHNldHVw IGJyZXc= aW1hZ2U= IGNvbXB1dGVycw== Zm9s fSwi IE1lZGFs IHRheHA= IGRpc3BsYXllZA== IGdyYXY= IGZpc2NhbA== TW9u IE1vc2Nvdw== IEtvbmc= IENlbnRyZQ== IGNhbWVyYXM= IE1ycw== IEhheQ== IGF2ZXI= IEtlbGx5 cHk= IHJlcXVpcmVtZW50 IGVudGl0bGVk b21iaWU= IHNoYWRvdw== YWdpYw== IEFr IGVsaXRl IGRpdmlkZWQ= IGhlYWRpbmc= IGNvcGllcw== IGxvc3Nlcw== IHZpdA== a2Vk IEJyeQ== IGFucw== IFN0ZWFt IHJlcG9ydGVy aGVpbQ== IEl0ZW0= IHN1cGVyaW9y ZG9u ZXJlbnQ= w7Y= IHRoZXJhcHk= IHBlYWs= IE1vZGVs IGx5aW5n IGdhbQ== emVy cml0dGVu IHJlc3BvbnNlcw== IGNvbnNpZGVyYXRpb24= IEJpYmxl IGxveWFs IGluc3RhbnQ= IHBt IEZvcmVzdA== w7w= IGV4dGVuZA== IGNvbnZpY3RlZA== IGZvdW5kZXI= IGNvbnZpbg== IE9haw== Y2hlY2s= IHNjaG9sYXJz cGVk IG92ZXJzZQ== VG9w Y291bnQ= IEFyaw== wrc= IDA2 IExB bWQ= IExhdGlu aW1lbnRhbA== IENQVQ== IHN1YnN0YW5jZQ== IG1pbm9yaXR5 IG1hbnVmYWN0dXJpbmc= RXI= b2NvbGF0ZQ== IGF0dGVuZGVk IE1hbmFnZXI= cmF0aW9ucw== IGFwcHJlY2lhdGU= b215 R0JU aWRlbmN5 Qkw= IGd1YXJhbnRlZQ== cG9zaXRpb24= IG9jZWFu Y2x1ZGU= IGhlYWRlZA== IHRhcGU= IGxvb3Nl IGxvZ2lj IHByb3Zlbg== IHNwaXI= IGFkbWl0 aXNh IGludmVzdGlnYXRl IDE5OTQ= c3lsdg== IExvc3Q= Y2VzdA== IDcx IHJlcXVlc3RlZA== IHdpbmRvd3M= IFBva8Op IFdpdGhvdXQ= TWV0 IGJlaGF2aW91cg== IHJlYWRlcg== IGh1bmc= IEtlZXA= IHJvbGVz IGltcGxlbWVudGVk IGJsYW5r IHNlcnZlcw== IEpheQ== IGNpdGVk IEZyaWVuZA== cHJvZml0 YXBvbg== IHJlcGFpcg== aXRlbQ== YXJyYXNz IGNyaXRpY3M= YWRp IEZhdGhlcg== IHNob3V0 IGZvb2w= IDg4 IHByb2R1Y2luZw== IGxpYg== IHJvdW5kcw== IGNpcmNsZQ== IHByZXBhcg== IHN1Ym1pdA== IG5pYw== bW9ycm93 44Or VW5kZXI= IHZpdGFs YXRlcm4= IHBhc3N3b3Jk IHB1YmxpY2F0aW9u IHByb21pbmVudA== IHNwZWFrcw== IGJhcnM= IGRlZXBlcg== IE1pbGw= cG9ydGVk IHdpZA== IGJ1dHRlcg== IHNtb2tpbmc= IGluZGljYXRlcw== S2V5 cm9wcmk= IEZpbGU= YWxsaW5n YXN0aW5n IFJ1cw== IGFkag== IDc5 YXZhbA== IHByZXN1bQ== YnVyZ2g= b25pYw== IGZ1cg== IHBvbGxz aWth IHNlY29uZGFyeQ== IG1vbnN0ZXI= aWdz IEN1cnJlbnQ= RXZlbnQ= IG93bmVyc2hpcA== ZW5kYXI= IGFycml2ZQ== IFRheA== IG51bGw= IFByaXY= IHRocm8= IGtpc3M= Y2F0 IHVwc2V0 YW5nbGU= aXRjaGVz ZWN0b3I= b2xvZ2lzdHM= IEdhbGF4eQ== IGNvcnJ1cHRpb24= IGhpbnQ= ZW50ZXI= IEhvc3BpdGFs IGdyZWF0bHk= IGJlZ3Vu ZXN5 IHNvaWw= IEFudG9u IG1haW50ZW5hbmNl 44Op IGRvemVucw== IGh1bWFuaXR5 IEFsYWJhbWE= IHJvbQ== d29ydGg= YXBpbmc= c3lsdmFuaWE= bGFo IGdhdGhlcmVk R0E= IGF0dGFja2luZw== Zm91bmQ= IFNxdWFyZQ== IGFyYml0 aWN0aW9ucw== IFdpc2NvbnNpbg== IGRhbmNl IFNhaW50 YXJjaHk= IGJhc2ViYWxs IGNvbnRyaWJ1dGlvbnM= IGxpdGVyYXR1cmU= IGV4aGE= cGVydHk= dGVzdA== IGJhYg== IGNvbnRhaW5lcg== bGV0dGVy IGZhbGxlbg== IHdlYnNpdGVz IGJvdHRsZQ== IFNhYw== IGJyZWFzdA== IFBM IHZldGVyYW4= IGludGVydmlld3M= IEFsZQ== IGJhbm5lZA== ZW5nZXJz IFJldm9sdXRpb24= aW50aA== IGNvbmNlcm5pbmc= SVZF IGV4cGVuc2Vz IE1hdHRoZXc= IENvbHVtYmlh ZHM= aXN0YW5jZQ== IGVudGl0eQ== Li4uIg== IHJlbGlhYmxl IHBhcmFsbGU= IENocmlzdGlhbnM= IG9waW5pb25z IGluZHU= bG93 IGNvbXBldGU= IHRob3JvdWdo IGVtcGxveWVk IGVzdGFibGlzaG1lbnQ= aWdlbg== IENybw== IGxhd3llcnM= IFN0YXRpb24= VEU= IExpbmQ= IFB1cg== aXRhcnk= IGVmZmljaWVuY3k= 4oCQ IEx5 IG1hc2s= IGRpc2FzdGVy IGFnZXM= RVJF ZXNpcw== IEhvbGQ= IGNhc3VhbA== YmxlZA== IGVuYWJsZWQ= IEVudmlyb25tZW50 IEludGVsbGlnZW5jZQ== aXBlcg== IE1hcA== IEJF IGVtZXJnZWQ= aXNkb20= IGNhYmlu IHJlZ2lzdHJhdGlvbg== IGZpbmdlcnM= IHJvc3Rlcg== IGZyYW1ld29yaw== IERvY3Rvcg== ZXR0cw== IHRyYW5zcG9ydGF0aW9u IGF3YXJlbmVzcw== SGVy IGF0dGVtcHRpbmc= T2Zm IFN0b3Jl w4PDgsODw4LDg8OCw4PDgg== IEtub3c= IGRlZmVuY2U= IHNjYW4= IFRlbg== IENoYWly IFBI IEF0bGFudGE= IGZ1Y2tpbmc= IGFuc3dlcmVk Ym4= IEthcg== IGNhdGVnb3JpZXM= IHJhdGlvbmFs IGN1c3Q= IHJvYm90 IGNvcnJlY3RseQ== IGdpZg== IGdyYXBoaWNz bWlj IGdyb3VuZHM= IE9wcA== aWF0ZQ== IGRpc3RyaWJ1dGVk IHNhbmN0aW9ucw== IGNoYWxsZW5naW5n dXRv IGluZ3JlZGllbnRz IGludml0ZWQ= IGZvdW5kZWQ= IFJlcXU= ZGVk IGJvd2w= IGJyb3RoZXJz IEhh SU8= IHdhZ2Vz aW1vcmU= b2NpYWw= IHNlZWQ= YXRpdmVseQ== IGFkZHJlc3Nlcw== IElvd2E= YWJldGg= IGF0dGl0dWRl aXNk Y2hpbGQ= IG1vbGU= IGRpc2NvdmVyeQ== eWFyZA== QnI= IDgy IHN1cHBsaWVz ZWxsaW5n IGRpc3Rpbmd1 Q1I= IHJlY2VwdA== IHZlcnQ= IHN3aW0= YmVj ZG9vcg== IFllYWg= IGdhbA== IGludGVyYWN0 IEVTUA== IENT YW1wcw== IGNvbnZpbmNlZA== IG9iamVjdGl2ZQ== IGRpc2g= IFBob3Rvcw== bGFk IGRvd250b3du b2ls aW5jdGlvbg== IHRvbW9ycm93 IENPTQ== IHN1cnZpdmFs c2hvdA== IHNldHRsZW1lbnQ= Q29ucw== IFhib3g= aW50ZXJlc3Q= IFNN YXJnbw== ZW5lc3M= IGV0aG5pYw== YmVyZWQ= TWlu IFRvaw== IGluY2VudA== IENvbW1hbmQ= IG1haW50YWluZWQ= IGJyZWFrcw== YnJpZGdl YXRhcg== YWdn IEZpbmFsbHk= dW5pY2lw IE9udA== bGVmdA== IHJlY29nbml0aW9u ICov IFBlcnM= IHdlbGY= IGFkZHJlc3NlZA== IEthbnNhcw== IHZpcnVz IHdoZXJlYXM= IHBhcGVycw== cmFtcw== IE1pbmlzdHJ5 IHBsZWFzdXJl IGFjcXVpcmVk IGR1cmF0aW9u anBn IGNhbG0= IE5ITA== IGJ1cm5pbmc= IGZvbGRlcg== aWNrZWQ= IFB5 IElsbGlub2lz Q2xhc3M= IEdvZGRlc3M= IHBlcmZvcm1pbmc= IHdlbGZhcmU= amFy SW50ZXI= IGxpbg== IGVuaGFuY2U= IG5vdGlvbg== ZmFyZQ== eXBlcw== IEFyZWE= IGNhbm5hYmlz IERpZWdv ZnM= IE1hbmNoZXN0ZXI= Y29tbQ== aW5pdGU= IGNvdmVyaW5n IFNvdW5k IDE5NjA= IDg0 ZWxlY3Q= emluZw== IGNpdGl6ZW4= IHBob25lcw== IHJhaWQ= IGlnbm9yZWQ= IE9iamVjdA== IHVwbG9hZA== Y2FyZA== IG1vZGlmaWVk IHJvb21z aWFo cmFuZ2U= aGVhc3Q= YWNodXM= IHN1Z2dlc3Rpbmc= 4oCL Z3JhZGU= RWw= IGNsb3RoaW5n IHJo IEhhbg== dW5pdHk= ZW5jaW5n IEF1c3Rpbg== c2VjdXRpb24= dHJh ZGVt IFF1YWw= IGhlYXZlbg== IHN0YWdlcw== IHdlZGQ= cGx1cw== aWZpY2lhbA== IEltbQ== IEhv aWV0aWVz IHBocmFzZQ== IGJyaWxs YWN0b3J5 IHByb3ZpZGVycw== IHNpbGVuY2U= IGFlcg== IEFJ IEFkdmVudHVyZQ== IHBsYXRmb3Jtcw== IGRlbW9uc3RyYXRlZA== IGludGVyZg== aW5ndG9u IHJhY2Vz IGdyYWRl dWx0YW5l IFRocm91Z2g= ZmFsc2U= IGJvdw== IEFC IGZsYXZvcg== IGhpc3Rvcmlj Z292 IGNvbG91cg== IHZpZXdlZA== IEVtYWls ZWxjb21l IGludGVydmVudGlvbg== IGRpdmVyc2l0eQ== IHBlcmlvZHM= IHJldmVyc2U= IFZlcnk= IHF1b3Rl IExlZnQ= dGhyb3VnaA== IHNjcmV3 IGxhbmRpbmc= IHBpbGw= IHdldA== IHByb3Rlc3RlcnM= IHJlcGVhdA== YXZlZA== ZXJr IHNhbGFyeQ== IFBlbm5zeWx2YW5pYQ== U3RpbGw= IG1heW9y IGtpdGNoZW4= IGZlYXR1cmluZw== IE11c2V1bQ== IFRvdXJuYW1lbnQ= IEZhbA== IHNlcnZlcnM= VUM= IGFueWJvZHk= aW1n IFRyYWRl aXh0dXJl dGhlbGVzcw== IGZpbmFuY2U= IGNsb3Npbmc= IFBhdHJp aWFj YWJlbA== ID4+ b3JvdXM= IGZpcm1z c2NyZWVu dW5h IGVtYmFycmFzcw== dWxzZQ== IGxldHRpbmc= IHRocmV3 aWxleQ== IGNoYW5uZWxz bGFu IFZlZ2Fz IHNlYXI= IGZhbnRhc3RpYw== YXJyZQ== dXp6bGU= IERlcg== VGhvc2U= IHN3aW5n IHNoZWV0 aW5kZXg= Y292ZXI= b2dhbg== IHZhcmlhYmxlcw== IFRlY2g= IHNwb2tlbg== YWNoZWw= IERh IE1vdW50YWlu IGxvYWRlZA== IGZvb3RhZ2U= dmVyc2lvbg== IHVubA== IFBob2VuaXg= IHRocm93aW5n IGZpcmluZw== IHRyYWNraW5n IHdpZHRo IHN0cnVnZ2xpbmc= cm9vbXM= b3Rpb24= IG1vbnRobHk= IFNlcnZlcg== IGVnZ3M= b3Blbg== TUM= IDE5OTM= IGhpcmVk IHN0YXllZA== IEFsbGVu IHN0cm8= IDk4 c3RlcA== IFR1cmtpc2g= IGZhYnJpYw== aXN0aW5n IERvbQ== IGRhdGVz IHByb24= IGJhc2tldGJhbGw= IGx1Y2t5 IEFyYWJpYQ== IGFzc3VtZWQ= ZXN0eQ== IGFmZmFpcnM= IGdsYWQ= IEluZGVlZA== IEZB IFdvcmQ= IGpvaW5pbmc= aWZpY2U= cHJlYWQ= aXJ0cw== IFNlbGVjdA== IHBvcHVsYXRpb25z YXdhcmU= IG5vc2U= IGNvbXBsYWludHM= c3RhcnQ= IHNjb3Jpbmc= VGhhbmtz IG1pbmluZw== IHZpc2l0b3Jz U0g= IGRhbWFnZWQ= IGNoYXJhY3RlcmlzdGljcw== IFBlbnQ= REM= IDgz IFNpeA== cmF0ZXM= IGZsYWdz IEJyZXc= ZG9n TWFyaw== Ly8vLw== IGV4ZWN1dGlvbg== IGpva2U= cGhvbmVz IHRlc3RpbW9ueQ== IG9ic3Q= UUw= IEN1dA== IHN0dWRpZWQ= IE5pbnRlbmRv aWNrZXQ= IE5CQw== IGxhZA== IEJyYQ== IE1vaA== IGtlcm5lbA== IG92ZXJ3aGVsbWluZw== IGFnZWQ= IGFwcGxpY2FibGU= IENvbmQ= IHJvYWRz IEJsb2Nr bWFkZQ== b2RnZQ== IGNvbW1hbmRz IG9mZmljZXM= dmVsYW5k IHR1dA== IHJlY2VpdmVy IEZybw== IHNob3BwaW5n IGlQ IFN0cmU= IEFCQw== IGVudGVydGFpbm1lbnQ= IEJvdw== b3J0ZWQ= TWM= IHJlYWRz Z3JhZA== IENvbGxlY3Q= IOKIkg== IENhcGl0YWw= ZWRlcmF0aW9u IGVtcGxveWVy IGludm9sdmVtZW50 IGFueGlldHk= YWxpYQ== IHJvb2Y= IEFtb25n IERlbW9jcmF0 IHN0YXRz IFZpbGw= IGNvbnN0aXR1dGlvbmFs IHJlZmVycmluZw== aXR0eQ== IHRhY2tsZQ== b3V0dWJl IGJhY2tlZA== IEhvbmc= IEJyb2Fk IGVsZQ== IE90dA== IDE5OTI= aG91cg== YWNodXNldHRz Q2Fs IGRlZmVhdGVk IDgx ZXNw IHNlZW1pbmdseQ== d2Fz IEplbm4= IEt1cmQ= IGdlbmU= IGRpc2NvdW50 UmV0 RUNU KCk7 IGNsdWJz IHNpZA== IE1hcnNo Q2hlY2s= IHBw IEVhZw== aWRlc3ByZWFk IGJlaW5ncw== RlQ= IGludHJvZHVjdGlvbg== IENoYW5nZQ== QVJE IDExMA== YWRvd3M= aWVyY2U= IG1lYWw= YXV0aG9y IEJhbmc= bGFob21h IHJhbmtz MjAxMQ== Pz8/Pw== bWF4 IGNvbGxhcHNl IG9wZW5z IGVjaG8= IHNvcGg= IHJhY2lzdA== IGVub3Jtb3Vz IHdhdmVz IHRhcA== IGNvbXByZWhlbnNpdmU= Li0t IFJveQ== IGZhcm1lcnM= UmVsYXRlZA== YWlyZWQ= cm9uZXM= IENyaW0= IHByb3BvcnRpb24= IGRlc2lnbnM= IG5lZ290aWF0aW9ucw== IHZpcnR1YWxseQ== IEJhdG1hbg== IHdhcm4= IGxlZ2l0aW1hdGU= bWF0ZQ== IGNvbnZlbnRpb24= LCw= bmV0aWM= IFNE IGNvbnNpc3RlbnRseQ== IGNvbXBlbnNhdGlvbg== IHB1bmlzaG1lbnQ= IHll IHRpZQ== IEJ1cmVhdQ== aXJsZg== IEJ1 IEFyZW4= IFBoaWxpcHA= IGtuaWZl IG1lbW9yaWVz IFJvc3M= IGFuZ2xl IDg2 IFRodW5kZXI= IHJlbmQ= IFRvdXI= IGNvdW50cw== c3VuZw== IEltcA== IGVkdWNhdGlvbmFs IGFjY2Vzc2libGU= Q09N IGRyZXc= eWVy R2w= YW1pbmU= T1JU T0I= SUI= bWFzdGVy IHRyaWFscw== b2d5 aGFy IFRydXN0 IHByZWZlcnJlZA== aXJsZnJpZW5k IE5ldg== IGJpbg== IGNvdw== UGFnZQ== IHNpZ25hdHVyZQ== IEJM NzAw IHJldGlyZWQ= IGJ5dGVz IG5laWdoYg== IExlZ2VuZA== IGRldmFzdA== IHN1c3BlY3RlZA== aXNvbnM= IFBva8OpbW9u c2NhbGU= IGNhcGFiaWxpdGllcw== IHJldmVs IGNoZWVzZQ== ZHk= aWdyYW50 IGZhaWxpbmc= Yml0cw== IEhlcm9lcw== IEdob3N0 IFNjaWVudA== IGFwcG9pbnRlZA== dXJp IGluc3RpdHV0aW9u IGV4cGFuZGVk Z3JlZw== IG1vbml0b3Jpbmc= IHBvZGNhc3Q= IGNvYWxpdGlvbg== IDk2 Sm8= IHN0b2xlbg== IFNhYg== IHN0b3Bz IGhvbGlkYXk= IGludHI= Q2Fy QmxhY2s= IExHQlQ= IHdhcm1pbmc= IEFuZGVyc29u IDg5 IHByb2R1Y2Vy TWVk IGFjY3VyYWN5 IE1hcnZlbA== aXphYmV0aA== IFBhdHJpY2s= bW9ueQ== IG1pbmk= YWNsZXM= IG92ZXJ0 dGhleQ== IG1lbWJlcnNoaXA= IFZlbg== IGV4Y2g= IHJlbW92YWw= IERhdmU= VFk= bWFk IEZpbmQ= IGFkZXF1 IGVj IHRlZXRo IGVtb3Rpb24= IHBlcm0= IHNvbGVseQ== ZGI= IGV4dHJhb3Jk SUdIVA== Y2Fs IGd1aWRlbGluZXM= IGR5aW5n IHN1c3BlbmRlZA== IFByZW1pZXI= IEFudGhvbnk= ZWx2ZQ== IGRhZA== IEV0aA== IEZvb3RiYWxs IGFiYW5kb25lZA== IDw8 IG1hcmNo IGhvcnJvcg== 4oCmIg== IGNoaWxkaG9vZA== IGNhbXBhaWducw== IGx1bmNo IEFsYmVydA== YmxvY2s= 4paI4paI b3VuZGluZw== IGJvbmU= b3JnYW4= YWRlcnM= IEZsYXNo IERyaXZl IHRvbmlnaHQ= IHdhcnM= IEZM IGZvcm1hdGlvbg== Y29uc3Q= TmV3cw== IGNvbXBl b3Jpb3Vz IFN0YWZm IGRpc2N1c3Npb25z IFByb3RlY3Rpb24= IEphbQ== IGNyaXRlcmlh IGluc3RhbGxhdGlvbg== IGFjY29tcGxpc2g= aXp6YQ== IHB1Ymxpc2hlcg== IHJlc2N1ZQ== IFRyeQ== VUxM IFNvbQ== IEhvcA== b3JldA== dGhz b3Jkb24= IHBvY2tldA== IEludg== RG93bmxvYWQ= IENyaW1l IGJlbmU= IEd1aWRl IEFzc2VtYmx5 IHBhcmFtZXRlcnM= SUU= IEFsZXhhbmRlcg== IGNvbmNlcnQ= IFNjaGU= IHNob2Vz IHZpc2l0aW5n IHJlY2FsbA== IGJ1Yg== IHJ1cmFs IGNvbmNyZXRl IFJvcw== TmV4dA== UnVzcw== IGxvYW5z IFNoaWVsZA== IHRyZW0= aGVtYXQ= a2c= IEhhcnJpcw== aXNpdGlvbg== IE1vdmU= IEZD IGZhdGU= IENobw== IHRpcmVk IHByaW5jaXBhbA== aGlzdA== aWVuY2Vz YXRoeQ== IHNldmVudA== IG1vb2Q= IHN0cmF0ZWdpYw== IGRpc2Vhc2Vz IGZvcnVt IHRlbXBvcg== IGhlYWRxdWFydGVycw== UGFy aWdl ZmxpeA== IGd1aXRhcg== IDk0 T25seQ== IHJlbGVhc2Vz cm9waA== PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0= IDYwMA== IENvbnRpbnVl aWdhdGU= IENyaXQ= c3lzdGVt IGRpc2FibGVk IHVuZXhwZWN0ZWQ= aXRodWI= IHVuY2xlYXI= IEVzdA== IGNvbnRyYWQ= IHN0cmF0ZWdpZXM= dmVudHVyZXM= IHBhc3NhZ2U= QU1F IGltcHJvdmluZw== IHJldmVhbHM= IGRlY3JlYXNl b3Zh IGFubm95 IFNob3J0 IExpYnJhcnk= IGN5YmVy bmVsbA== IEh1cg== IENC IHBob3RvZ3JhcA== VUk= IHNlZA== R2U= IDg3 IGRpdmVyc2U= IGVuY291cmFnZWQ= IGNvbnNwaXJhY3k= IGJpcmRz IG9wZXJhdG9y IGhhbmRmdWw= IGNsYXNzaWZpZWQ= Pyk= IGRyYW1hdGlj IGludmVzdGlnYXRvcnM= aXRv IHdpZGVzcHJlYWQ= IFJvb20= LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ== IGNvbGxlY3RpdmU= IGpvdXJuYWxpc3Q= U3RyaW5n IHRlbXBlcmF0dXJlcw== aWxh IGd1aWQ= IGluc3BlY3Q= IG1pc3NpbGU= IE1heW9y IG1hbnVhbA== IHNpbXVsdGFuZQ== IHJhdGluZ3M= IHN1Y2s= IDk3 IHVuaXZlcnNhbA== IHBoYXJt IGRpc3J1cHQ= aWFubw== QVY= IGZ0 IHN0YXRpc3Q= b2xkcw== IFdhbGtlcg== cGhw IHVuZGVydA== IExhcw== aXNob3A= bnRpbA== cmVzaG9sZA== IFdoZXRoZXI= TXM= IGRlbnk= IENsb3Vk IHByb3ZpZGVy IHN1cnZpdg== IFVwZGF0ZQ== aGFz IG1pc3Rha2Vz Y2hhcmdl cGxlZA== cml0eQ== IG5vZGU= IE1hc3NhY2h1c2V0dHM= b29scw== bGljYXRpb24= IGZhaWxz ZW1hbGU= b3Jp YmFja3M= IHNoaXJ0 ICcn IE5BVA== IHdhdGVycw== ZWxzb24= IGVhc2U= IHNjYXI= IGNvbnRlbnRz bWluZA== IGNvbnRyaWJ1dGlvbg== IHNocg== IGhhbmRlZA== IHN0YWJpbGl0eQ== IHRyYXZl RW0= IG1pcnJvcg== MTIz IHdlaWdo IGZpY3Rpb24= b3V2ZXI= aXN0YW50 cml0aW9u IEZlZA== IHBoeXNpY2FsbHk= IHN0YWtl IEFydGljbGU= IEFyYw== IExld2lz IE1pbmQ= IGRlbW9uc3RyYXRl IHByb2ZpdHM= dmlzaW9u b21pYw== b2xpZA== IGJhdHRsZXM= IGRyaXZlcw== IGVhc3Rlcm4= IFNvbnk= ISEh YXJhdGlvbg== dmFyZA== IEdM cG9ydGF0aW9u IDky IGxhd21ha2Vycw== IHByb3RlY3Rpbmc= IEVQQQ== IHllYWg= IHNoYW1l b2xwaA== ZXZlbg== eGl0 IGF0dGFjaA== IHJlcHJlc2VudGluZw== IG9icw== IFV0YWg= aWZmcw== IEZyZWVkb20= w7M= QUs= IGluY2lkZW50cw== aXRhZ2U= IHZpZXdlcnM= Y2Q= IG1vdXNl IGNsYXI= IGFjY29yZGFuY2U= IGJvdA== Y29y IFN1bW1lcg== aGVsZA== IGlubm9jZW50 IGluaXRpYXRpdmU= b2xz X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18= IHNwb3Rz cGFjZQ== IGNvbnZlbnRpb25hbA== IGNvcnBvcmF0aW9ucw== IGJsb2NrZWQ= SEQ= YXR0ZXJlZA== IHJlZmVycw== IGJ1Y2s= IERpZ2l0YWw= MTIw IHRvcGljcw== VEY= xIE= YnJpZA== cmVlbWVudA== IHVuZGVybHlpbmc= IE1lbWJlcg== IGludmVzdGlnYXRpbmc= IHByZWduYW5jeQ== IHRvdWNoZG93bg== IEJhbmQ= IENhbGxlcg== IGluc3RhbmNlcw== UFA= d2E= R29vZA== IDE5OTE= IENvbGQ= IGZlYXJz IHJlbWFya3M= hpI= YXRhbA== IG1pdA== IGV4cGVyaW1lbnRz aXB0 Q29sb3I= aW5kdQ== VXBkYXRl IDkz QWc= IOU= YW5jb3V2ZXI= Qm90aA== IGp1ZGdlcw== T2JqZWN0 IHN0ZXJl dW1ibg== IHBhcnRpY2lwYXRpb24= IFN0YXJz IEplcmU= IHdlZWtseQ== IEJhbg== IGNvbnZlcnNhdGlvbnM= IFBpdHQ= dXo= IEluZGlhbmE= IEtpY2s= IGluZmVjdGlvbg== IGhlcm9lcw== IHNldHRsZWQ= IHN0cmlw IGhhbA== IGR1bXA= IFNjaQ== IGxlcw== IHJlZmVyZW5jZXM= IFVSTA== IEJyaWRnZQ== IHdhbnRpbmc= Rm9yY2U= IGV4Y2x1cw== TWVhbndoaWxl bW4= IGdlbnRsZQ== bWFrZXI= c2VuYWw= IEdybw== b3VyaQ== IFJhaW4= IEFsbGlhbmNl IGxpZnQ= ZWxh U0Q= IENsZXZlbGFuZA== IHJhbmtlZA== IHN0YWRpdW0= IGRlYWRseQ== 5Lg= IHJpZGluZw== YXJpYQ== IEFybW9y IGRvY3VtZW50YXRpb24= IEdyZWVjZQ== cmVlaw== IGxlbnM= IFNh IGdyb3Nz IEVtZXI= YWdlcnM= IER1Yg== IFJo IEFNRA== IGFycml2YWw= IGRlc2VydA== IHN1cHBsZW1lbnQ= IFJlc3A= IGtuZWU= IG1hcmdpbg== Zm9udA== b2dn MjAxMA== IFBpcg== IFByb20= aXZhbHM= IGludGFrZQ== IGRpZmZlcmVudGx5 dWdz IGJpdHM= Y2x1ZGVk IHNlYXJjaGluZw== IER1 dW1ibGU= IGZ1bmN0aW9uYWw= IEJhbHRpbW9yZQ== IENvdWxk IGRlc2lyZWQ= IGNpcmN1aXQ= IEx5bg== IEdP IEZhbHNl cmVwcmU= Jzo= YWx0aWVz IG1pbmlt IGRyb3Zl IFNob3VsZA== IGhpcA== IHByb3M= IHV0aWxpdHk= IE5hdHVyZQ== IE1vZGU= UHJlc2lkZW50 b3Bw cmF0 Zm9ybWFuY2U= IGNvbmNlbnRyYXRpb24= IGZvbnQ= IEJ1ZA== IGFtaWQ= IHJldmVycw== IE1M QmFy IGludGVyYWN0aW9u IGp1cmlzZA== IHNwZWxscw== ZGVw Zmls IGNpdmlsaWFucw== dXR0ZXI= IENvb3Blcg== IEJlbG93 IGVudHJhbmNl IGNvbnZlcnQ= IGNvbnRyb3ZlcnN5 b3dlcmVk IGNvbnRyYXJ5 IGFyYw== IEV4ZWN1dGl2ZQ== IE9mZmljZXI= IHBhY2thZ2Vz IHByb2dyZXNzaXZl d2lkdGg= IHJlc2VydmVk dm9s IFNhbXN1bmc= IHByaW50ZWQ= IGNlbnRlcnM= IGludHJvZHVjZQ== IEtlbm5lZHk= IG9kZHM= IHN1cmVseQ== IGluZGVwZW5kZW5jZQ== IHBhc3NlbmdlcnM= cmVwcmVuZQ== IEJlaA== IGxvdmVz IEVTUE4= IGZhY2lsaXQ= IGlkZW50aWNhbA== IGRvY3Q= IHBhcnRuZXJzaGlw Y29uZg== IEhpZGU= IGNvbmZ1c2Vk IENvdw== TWVu IHdyZXN0 IElyYXFp IGhvbGVz IFN0dWRpZXM= IHByZWduYW50 aGFyZA== IHNpZ25hbHM= SVg= IHB1bGxpbmc= IGdyYWR1YXRl IG5vbWluZWU= RGF0ZQ== IHBlcm1pdHRlZA== IOKCrA== IE9rbGFob21h U3RhcnQ= IGF1dGhvcml6ZWQ= IGFsYXJt IENvcw== dmFu IGdlbmVyYXRpb25z Y3VsYXI= IGRyYWdvbg== IFNvZnR3YXJl IEVkd2FyZA== IGNvbnRyb2xsZXI= U2Vu Z2VyZWQ= IFZpaw== IGFwcHJvYWNoZWQ= VGhhbms= IGNhbmNl IGZvcm11bGE= IFNtYWxs IHdlYWtuZXNz IHJhbXA= aXR1ZGVz anVk IGJyaWxsaWFudA== IGFjY3Vz c291cmNl IDgwMA== IEV2aWw= U3c= IGhvbWVsZXNz d2Vlaw== aWVucw== cmljcw== IFRoaXJk VE8= IG9yZ2FuaWM= IHByZXNlbnRhdGlvbg== YWdo IERvd25sb2Fk dmF0aW9u IGFzc2VtYmx5 b3JhYmxl aG9sZGVycw== IEJlcm5pZQ== IEhlbHA= IHRvbmc= IEZpZ2h0 IGJlYWNo Qm9vaw== IExpYw== IHJ1c2g= IFJvdW5k b3Vw IE1hcng= IGNhbGN1bGF0ZWQ= IERldmls IFNhcmFo IG9jY2FzaW9uYWxseQ== IGJ1bGxldA== QXZhaWxhYmxl Z2F0ZQ== IDkx IGhvc3A= IHByb21pc2Vz IEhJVg== IFN0YWRpdW0= IFN0b2Nr IENvcnBvcmF0aW9u Z2FnZQ== Tkc= IENyZWRpdA== IHNuZQ== aWJs IGFjY3Vt c3VjaA== IHRlcnJvcmlzdHM= IGNvbnNjaW91c25lc3M= IFpo IGRyYW1h b29sYQ== cGlyYXRpb24= IGxhYm91cg== IE5pbg== IHV0dGVy IGRlbW9jcmF0aWM= IGFzc2Fzcw== aWxhdGlvbg== IGdlc3Q= IGFicm9hZA== IG1ldGFi IHNvcnRz IGZsYXY= VUI= IG1n IE5vdGhpbmc= IE9k IG11c2ljYWw= MjAwOQ== IGRyb3Bz b2NhdGVk YXRlcmFs MDAwMDAw IGdyZQ== IGVxdWFsaXR5 IGJ1cmRlbg== IHZpZw== IExlYWRlcg== LS0tLS0tLS0tLS0t IGNlcmVtb255 IGZpZ2h0ZXI= IGFjdG9ycw== IOY= YW1hbg== Rmk= IGFsaWdu cHV0ZXI= IGVsZGVy IE5TQQ== IHJlcHJlc2VudGF0aW9u IE9udGFyaW8= SVRI dXNhbGVt IGhhcmFzc21lbnQ= aXR6ZXI= IHN5bXA= IGJveGVz IERS IG1hbmlmZXN0 YXRyZQ== IF4= IGRpZXM= bGV0b24= IG1pc3Npb25z ZXRoZQ== IHJlc29sdmU= IGZvbGxvd2Vycw== IGFzYw== IGtt bG9yZA== YW1tZWQ= IHNpbGVudA== IEFzc29jaWF0ZWQ= IHRpbWluZw== IHByaXNvbmVycw== IEtpbmdz IEZpdmU= IHRvd2Vy IGFwcHJvYWNoZXM= IHByZWNpc2VseQ== IGJ1cmVhdQ== IE1vdGhlcg== IElzcw== IGtleWJvYXJk aXR1YWw= IGZ1bmRlZA== IHN0YXlpbmc= IHBzeWNob2xvZ2ljYWw= IG1pbGU= IExlb24= IEJhcmI= d2lsbA== IHdpZGVy IEF0bGFudGlj IHRpbGw= IFJvbWU= cm90 IGFjY29tcGFu IGZsb3Vy YWNv V29ybGQ= IEV4cHJlc3M= IFl1 Q29y IHBsZWFzZWQ= cGFydHk= IHBvaW50aW5n IGluZmxhdGlvbg== IHJveQ== ICks YWluZXI= IHdlZGRpbmc= b3Jtb24= IHJlcXVpcmluZw== IHF1YWxpZmllZA== IHNlZ21lbnQ= RU5E IHNpemVz ZWFscw== IGNvcnJ1cHQ= YXNzYWRvcg== IGNlbGVi IGRyZWFtcw== IE1lc3M= IGNoZWNraW5n IFZlcnNpb24= IHByZXBhcmluZw== IGFjdGl2ZWx5 IERpZmY= IGx1eA== IFdpbnRlcg== YWN0ZXJpYQ== IE5F IGRlcHV0eQ== IHRyYW5zZ2VuZGVy IHN1bW1hcnk= IGluaGVy ZXJpZXM= Y2hhcg== IFlhbg== IGtub2Nr IFBhdGg= IGxpcA== cm9sbGVy IGltcHJlc3Npb24= IGNlbGVicmF0ZQ== IHNsaWRl IGd1ZXN0cw== IGNsaXA= RlM= IHNhdmluZ3M= IGNhcHRhaW4= IGxlZ2FjeQ== IERlbnZlcg== IHdvdW5kZWQ= dGFib29sYQ== QUNU IHB1cnN1ZQ== IG94eQ== IHE= IHNlbWk= IE5lZWQ= IEFmZmFpcnM= IG9ic2M= IGNoZWNrZWQ= IGR1YWw= Q29kZQ== IE1E bGVt dWx0eQ== IMKp IEVsaXphYmV0aA== IGNlbnR1cmllcw== YXJkZWQ= c3Jj IGV2aWRlbnQ= ZW5uaXM= YXRpbg== IHVuZW1wbG95bWVudA== IE1hcmlv IGludGlt Q2hyaXN0 IGJpb2xvZ2ljYWw= IHNvbGRpZXI= IEFkZGVk IG1hdGg= IEdpbA== IGJpYXM= IGRhdGluZw== IE9jZWFu IG1pY2U= TXVz aGlyZQ== IFRlcw== U2VydmVy bGltaXRlZA== U2l6ZQ== IG1ldGVycw== IHJvY2tldA== ZXNzZWU= IGNlcnRpZmljYXRl IElyYW5pYW4= QVNT IGdyaWQ= RGVj IHJvbGxpbmc= Y29tbXVu IFN3ZWRlbg== YnVyeQ== IHRpc3N1ZQ== IHJhY2lzbQ== IExvY2Fs IG15c3Rlcnk= IGV4YW1pbmU= IHN0ZW0= IHNpdHM= IGhvcGVk b3Rpbmc= IGRpYWxvZ3Vl IHBlcnN1 V2F0Y2g= bGF5 TUFO IGNocm9uaWM= IFBvcnRsYW5k bWFya2V0 IFNFQw== IHBhcmFsbGVs IHNjYW5kYWw= IGNhcnJpZXM= IHBoZW5vbWVub24= aHVtYW4= YWNrZXI= IE94 IHJldGlyZW1lbnQ= dGFpbm1lbnQ= b3ZpZQ== IEdlYXI= IGR1dGllcw== IGRvc2U= IHNjcm9sbA== TUI= aW5m IHNhdWNl IGxhbmRzY2FwZQ== cmVkZGl0 IENoYW1waW9uc2hpcA== IFJlZGRpdA== YWxpZA== IGNvaW4= IG92ZXJz IHBvc3Rpbmc= YWJvdXQ= IGZlbA== YW5keQ== IGJvbGQ= IGZvY3VzaW5n ZWZmZWN0 R1I= IGRlZW1lZA== IHJlY29tbWVuZGF0aW9ucw== IHN0ZXBwZWQ= IHZvdGVy IERlZXA= IEluc3RhZ3JhbQ== IG1vZGVyYXRl IE1hcnlsYW5k IHJlc3RyaWN0ZWQ= IE1C IENoYWxs IHRvYg== IGNpcg== IE9jYw== IEV2ZXI= IGNvbGxhcHM= SU5GTw== PS0= IFBpY3Q= IEFjY291bnQ= bmM= IG91Z2h0 IGV4cG9ydA== IGRydW5r KCc= IHdpc2U= IE1vcnQ= bmVjZXNz IGFuY2VzdA== IEluY3Jl IGZyZXF1ZW50 bWly IGludGVycHJldGF0aW9u IGRlcGVuZGVudA== IGNvaW5z IEJvbA== VmlkZW8= IEp1c3Rpbg== IGZhdGFs IGNvb2tpbmc= IGNvbmZ1c2lvbg== aXBoZXI= IGN1c3RvZHk= IE1vcmdhbg== b21hY2g= IEdvdmVybm9y IHJlc3RhdXJhbnRz ZWxpbmc= IGFja25vd2xlZGdlZA== IHRoZXI= IGdlbmVz Y2hpbmc= SGV5 IHRhY3RpY3M= IE1leGljYW4= IHZlbmQ= IGhlcw== cXVlcg== IG5vdGluZw== IENhbWVyb24= IHRhcmdldGluZw== cm9jaw== IGNyZWRpdHM= IGVtb3Rpb25z IHJlcHJlc2VudGF0aXZlcw== bmV3cw== IGxlZ2lzbGF0aXZl IHJlbW92aW5n IHR3ZWV0ZWQ= IENhcnRlcg== IEZpeGVk IGZvcmNpbmc= IHNwZWFrZXI= IG1hbGVz IFZpZXRuYW0= bGluZWQ= IGNvbmNlcHRz IHZvaWNlcw== b2ly IFRyaWI= V2hl IEplcnVzYWxlbQ== IFNhbnQ= IGN1bA== IGxhZHk= IEhhd2Fp IGFydHM= IElubg== IE1hY2hpbmU= IEVtcGVyb3I= IHNsb3Q= Z2x5 IFByb2Nlc3M= SUlJ IGF0aGxldGVz IFRlbXBsZQ== IFJlcHJlc2VudA== IHByZXNj IHRvbnM= IGdvbGRlbg== IHB1bmNo IEdS aXZlcnBvb2w= IGVuYWN0 IGxvYmJ5 IG1vcw== IHBpY2tpbmc= IGxpZmV0aW1l IGNvZ25pdGl2ZQ== RWFjaA== em8= IGR1Yg== IGNvbnNpc3Rz b2xu IGZlc3RpdmFs YW1vdXM= IGludGVsbGln d29yZHM= IFNtYXJ0 IGRlbGU= IGxhcHQ= IG1hZ2ljYWw= IFNpbg== YnVz dXJpdGllcw== aWdodGg= IFJ1Ynk= IFN1cmU= b2x2aW5n IGp1bg== T1NU IGltcG9zZWQ= IGFzdHJvbg== IGNvcnJlbA== IE5T IEtpdA== IEZ1dHVyZQ== YnVybg== IGltbXVuZQ== b2N1cw== IGNvdXJzZXM= IFN0cmluZw== IGxlYW4= IGdob3N0 IG91dGNvbWVz IGV4cGVuc2U= IGV2ZXJ5ZGF5 IGFjY2VwdGFibGU= QWg= IGVxdWlwcGVk IG9yYW5nZQ== RlI= IER1dGNo VGhvdWdo IFJhbms= UVU= IFJvYmVydHM= d2hhdA== cmVuZA== IGRpc2FwcGVhcg== IHNwYXdu IExhbQ== b2lz IGRlc2VydmU= IG1pbmltYWw= IG5lcnZvdXM= IFdvdWxk IHJvb2s= IFZhbmNvdXZlcg== IHJlc2lnbg== c2hpcmU= IFdvcmtz IEJ1aWxk IGFmZm9yZGFibGU= IEdhcnk= IEFyZW5h IGhhbmdpbmc= IGltcGxpY2F0aW9ucw== IFNvbmc= IG1haW50YWluaW5n IGd1YXJkcw== Q09O IGRlcml2ZWQ= IGV4ZWN1dGVk IHRoZW9yaWVz IHF1b3RlZA== IEFuZHJl b2dh c2VsZXNz aW5mbw== IEJlbGc= IHRlYXJz IFN1cnY= IGJpcnRoZGF5 aWdpb3Vz aW1tZXI= IHNwZWN0cnVt IGFyY2hpdGVjdHVyZQ== IHJlY3J1aXQ= YXJtYQ== VGFibGU= IG1vbnN0ZXJz IEdvdg== IGRlc3RpbmF0aW9u IGF0dHJhY3RpdmU= IGZvc3M= IE1vcmVvdmVy IHByZXNlbnRz VEhF IHJlcGx5 cHRvbg== IGN1bQ== IGRlbGlnaHQ= IGFmZmVjdHM= IGRvbmF0aW9ucw== IFRveQ== IEhpbQ== TUVOVA== IG92ZXJjb21l aXRjaGVk IEZhbnRhc3k= IEhhdA== IEJlYXN0 Ym90dA== IGludmVzdGlnYXRpb25z UnVu IGh1bnRpbmc= ZGk= ZnVuZA== IHNlc3Npb25z ZXN0eWxl IHBvcnRyYXk= b2lkcw== WWVhaA== IGNvbW11bmljYXRl IGNvbWVkeQ== IFlhbmc= IGJlbHQ= IE1hcmluZQ== IHByZWRpY3RlZA== UGxheQ== IGltcG9ydGFudGx5 IHJlbWFya2FibGU= IGVsaW1pbmF0ZQ== RGF2aWQ= IGJpbmQ= VklE IGFkdm9jYXRlcw== IEdhemE= aW1w REI= IE5h IFNpbWlsYXI= SUVT IGNoYXJpdHk= dmFz bWF0aA== IOKW b2tlcg== bmR1bQ== IGNhcHM= IEhhbA== MjAwMA== ZWFu IGZsZWV0 IHJlY3Jl UmlnaHQ= IHNsZWVwaW5n aWppbmc= a2luZA== IGRlc2lnbmF0ZWQ= w6Q= IGFuaW1hdGlvbg== a2Vl IEludHJvZHU= IC8+ IGRlbGF5ZWQ= IHRyZW1lbmQ= IGN1cmlvdXM= VXNl IGxlY3Q= ZGFt IGlubm92YXRpb24= IFBvaW50cw== IGxvYWRpbmc= IGRpc3B1dGU= Y3RpYw== aXJkcw== IEJZ IG51cnM= IFZhbHVl SU9OUw== IEh1bQ== IHRlbXBsYXRl bWVycw== IGFwcGVhcmFuY2Vz IEVudGVydGFpbm1lbnQ= IHRyYW5zbGF0aW9u IHNha2U= IGJlbmVhdGg= IGluaGli IGV1cm8= YWJldGVz IHN0dWR5aW5n IE1hcw== IHBlcmNlaXZlZA== IGV4YW1pbmVk IGVhZ2Vy IGNvYWNoZXM= IGltcGVy Y2hp IHByb2R1Y2Vz Iiku IEV2ZXJ5b25l IG11bmljaXA= IGdpcmxmcmllbmQ= IGhpcmU= IFZpY2U= IHN1aXRhYmxl b3B5 IGluZXF1 IER1a2U= ZmlzaA== Zmlyc3Q= IE9icw== IGludGVyaW9y IEJydWNl IFJ5 IGFuYWx5cw== IGNvbnNpZGVyYWJsZQ== IGZvcmVjYXN0 IGZlcnQ= b3JzaGlw IERydWc= IEFMTA== OiI= dGh1cg== IE1haWw= IGJhbGxvdA== IGluc3RhbnRseQ== IENoYW5uZWw= IHBpY2tz IDE5ODk= IHRlbnQ= b2xp IGNpdmlsaWFu Ymxpbmc= ZWxsbw== YnU= IGluY2g= IGxvZ28= IGNvb3BlcmF0aW9u IHdhbGtz IGludmVzdG1lbnRz IGltcHJpc29u IEZlc3RpdmFs IEt5 IGxlZ2FsbHk= IGdyaQ== Y2hhcmc= U2w= IHRocmVhdGVuaW5n ZHVjdGlvbg== Zmxvdw== IGRpc21pc3NlZA== aWJyYXJpZXM= Y2Fw ZWxl IE1jRw== IEhhcnZhcmQ= IENvbnNlcnZhdGl2ZQ== IENCUw== cG5n IHJvb3Rz IEhhdmluZw== dW1ibGVk IEZ1bg== XC8= IFNlYXJjaA== cGxleA== IGRpc2N1c3Npbmc= IGNvbnRpbnU= IFRhaQ== IFdpaw== RnJlZQ== Zml0 IHJlZnVzZQ== IG1hbmFnaW5n IHN5bmQ= aXBlZGlh d2Fsaw== IHByb2Zlc3Npb25hbHM= IGd1aWRhbmNl IHVuaXZlcnNpdGllcw== IGFzc2VtYg== dW50dQ== RmluYWxseQ== QVNF IEF1dG8= IEhhZA== IGFubml2ZXJzYXJ5 TEQ= IER1cg== IFVsdGltYXRl aWhhZA== cHJvZHVjdA== IHRyYW5zaXQ= IHJlc3RvcmU= IGV4cGxhaW5pbmc= IGFzc2V0 IHRyYW5zZmVycmVk IGJ1cnN0 YXBvbGlz IE1hZ2F6aW5l IENyYQ== IEJS Z2dlZA== IEhF TWljaA== YmV0 IExhZHk= eWx1bQ== ZXJ2ZXM= IG1lZXRz d2hpdGU= TG9n IGNvcnJlc3BvbmRpbmc= IGluc2lzdGVk R0c= IHN1cnJvdW5kZWQ= IHRlbnM= IGxhbmU= IGNvaW5j aG9tZQ== IGV4aXN0ZWQ= ZWN0ZWQ= IERvdWJsZQ== bGFtbQ== IHNrZXB0 ZXhw IHBlcmNlcHRpb24= aWV2 IEJlaW5n b2Z0 IGFkb3B0 Ljo= XTs= V2luZG93cw== IHNhdGVsbGl0ZQ== QVNI IGluZmFudA== ZGVzY3JpcHRpb24= IE1lYW53aGlsZQ== Y20= b2Nh IFRyZWF0 YWN0b3I= IHRvYmFjY28= IE5vcm0= ZW1wdGlvbg== IGZsZXNo IGpl b29w IEhlYXZlbg== IGJlYXRpbmc= YW5pbQ== IGdhdGhlcmluZw== IGN1bHRpdg== R08= YWJl IEpvbmF0aGFu IFNhZmV0eQ== IGJhZGx5 cHJvdA== IGNob29zaW5n IGNvbnRhY3RlZA== IHF1aXQ= IGRpc3R1cg== IHN0aXI= IHRva2Vu RGV0 IFBh IGZ1bmN0aW9uYWxpdHk= MDAz c29tZQ== IGxpbWl0YXRpb25z IG1ldGg= YnVpbGQ= Y29uZmln TlQ= cmVsbA== YmxlbQ== IE1vbQ== IHZldGVyYW5z IEh1 IHRyZW5kcw== YXJlcg== IEdpdmVu IENhcHRpb24= bWF5 QVNU IHdvbmRlcmluZw== IENsYXJr bm9ybWFs IHNlcGFyYXRlZA== IGRlc3A= c3RpYw== YnJldw== IHJlbGF0aW5n IE5paw== IEZhcm0= IGVudGh1c2k= Z29vZA== ZGVi IGFjdGl2aXN0 IG1hcnQ= IGV4cGxvc2lvbg== IEVjb25vbWlj TGluaw== IGluc2lnaHQ= IGNvbnZlbmllbnQ= IGNvdW50ZXJwYXJ0 c3VwcG9ydA== IFZpcnQ= YWdlbg== IFRlbm5lc3NlZQ== IFNpbW9u IEF3YXJk T0NL IEZpZ3VyZQ== IG92ZXJzZWFz IHByaWRl IENhcw== bm90ZQ== bWc= Q3VycmVudA== IGRpc3BsYXlz Y29udGVudA== IHRyYXZlbGluZw== IGhvc3BpdGFscw== IEZpbmFuY2lhbA== IFBhc3Q= IGRlZmVuZGFudA== IHN0cmVhbWluZw== bWJsZQ== IEJlcmxpbg== dWtp IGRpc3RyaWJ1dA== IGFudGli IGNob2NvbGF0ZQ== IENhc3RsZQ== IGludGVycnVwdA== IFJvdw== IGNvbnZlcnNpb24= IGJ1Z3M= IFJhdGhlcg== bGllc3Q= TFk= IEplYW4= Y29tbW9u YWto IDEzMA== b3R0b24= IERlYW4= IGFtZW5kbWVudA== IGdhbWVwbGF5 IFdhcnJlbg== b2Rh IGhpZ2hsaWdodHM= IGlycmU= IE5BVE8= IGJhbGxz IGRlbWFuZGluZw== VVJF IEx1a2U= RmlndXJl c3RvcA== b25pYQ== em9uZQ== aXplcnM= IFdS IGF3YXJkZWQ= IHJlZ3VsYXRvcnk= IEhhcnQ= IFNO cGxpbmc= IHNvdXI= IFBpeGVs dXNpdmU= IGZldA== IFNlbnQ= IGF1dG9tYXRpYw== IGZlcg== dmVybm1lbnQ= IEtoYW4= VE9O ZmF0aGVy IGV4dHJhb3JkaW5hcnk= dGhyb3A= IFB5dGhvbg== IEdQVQ== IHNleHVhbGx5 IGRlc2t0b3A= aXRpdml0eQ== IEFudG9uaW8= IG9yaWVudA== IGVhcnM= b2JieQ== b3VzZXM= dmVydGlzZW1lbnRz IG1hbnVmYWN0dXJlcnM= aWNpZW50 bWludXRl IGNvbnZpY3Rpb24= IGdhcmRlbg== cHVibGlj IHNhdGlzZmllZA== Zm9sZA== T0s= IGluaGFi IFRoaW5r IHByb2dyYW1tZQ== IHN0b21hY2g= IGNvb3JkaW4= IGhvbHk= IHRocmVzaG9sZA== IHJoZXQ= IHNlcmlhbA== IGVtcGxveWVycw== IEV2ZXJ5dGhpbmc= cmFo IGJvdGhlcg== IGJyYW5kcw== VmFsdWU= IFRlZA== IFBsYW5ldA== IHBpbms= IEZ1cnRoZXJtb3Jl c2E= UEU= cmVjaw== IFVTRA== b3R0ZQ== ICYm IGxhbmRlZA== Z2V0cw== IHByb2R1Y2Vycw== IGhlYWx0aGNhcmU= IGRvbWluYW50 IGRlc3Rybw== IGFtZW5kZWQ= Y2hyb24= IGZpdHM= IFN5ZA== IEF1dGhvcml0eQ== QVRDSA== IGZpZ2h0cw== IExMQw== IC0tLQ== IENvcnA= IHRveGlj c3BlY2lmaWM= IENvcm4= IENoZWw= IHRlbGVwaG9uZQ== IFBhbnQ= IG15c3RlcmlvdXM= YXVuY2g= b2RveA== bWVkaWE= IHdpdG5lc3Nlcw== YWd1 IHF1ZXN0aW9uZWQ= IEJyZXhpdA== IFJlbWVtYmVy ZW5leg== IGVuZG9yc2U= aWF0cmlj IElkZW50 IHJpZGljdWxvdXM= MTEw IHByYXllcg== IHNjaWVudGlzdA== IDE5NTA= IEFxdQ== IHVuZGVyZ3JvdW5k IFVGQw== bWFyZQ== IExhdGVy d2ljaA== IHN1YnNjcmli IGhvc3Rz IGVycg== IGdyYW50cw== YW50b20= IHN1bW1vbg== ZWFybHk= IENsZWFy IFByaW0= IHN1c3BlbnNpb24= IGd1YXJhbnRlZWQ= YXBwZXI= IHJpY2U= IFNlYW4= IFNoaW4= IHJlZmVyZW5kdW0= IGZsZWQ= cnVzdA== IDM2MA== dGVyeQ== IHNob2NrZWQ= QlI= IE9pbA== IEFsbGFo IHBhcnRseQ== IGlnbm9y IHRyYW5zbWlzc2lvbg== IGhvbW9zZXh1YWw= aXZlcnNhbA== IGhvcGVmdWxseQ== 44Kk IGxlc3Nvbg== TGVn IC4u WWV0 dGFibGU= YXBwcm9wcmk= cmV0dA== IGJvYXJkcw== IGluY29ycmVjdA== IGJhY3Rlcmlh YXJ1 YW1hYw== IHNuYXA= Lici IHBhcmFk dGVt aGVhcnQ= IGF2YWlsYWJpbGl0eQ== IHdpc2RvbQ== ICgr IHByaWVzdA== IMKgIMKg T3Blbg== IHNwYW4= IHBhcmFtZXRlcg== IGNvbnZpbmNl ICglKQ== cmFj IGZv IHNhZmVseQ== IGNvbnZlcnRlZA== IE9seW1waWM= IHJlc2VydmU= IGhlYWxpbmc= IE1pbmU= TWF4 IGluaGVyZW50 IEdyYWhhbQ== IGludGVncmF0ZWQ= RGVt IHBpcGVsaW5l IGFwcGx5aW5n IGVtYmVk IENoYXJsaWU= IGNhdmU= MjAwOA== IGNvbnNlbnN1cw== IHJld2FyZHM= UGFs IEhUTUw= IHBvcHVsYXJpdHk= bG9va2luZw== IFN3b3Jk IEFydHM= Jyk= IGVsZWN0cm9u Y2x1c2lvbnM= IGludGVncml0eQ== IGV4Y2x1c2l2ZWx5 IGdyYWNl IHRvcnR1cmU= IGJ1cm5lZA== dHdv IDE4MA== UHJvZHU= IGVudHJlcHJlbmU= cmFwaGljcw== IGd5bQ== cmljYW5l IFRhbQ== IGFkbWluaXN0cmF0aXZl IG1hbnVmYWN0dXJlcg== IHZlbA== IE5p IGlzb2xhdGVk IE1lZGljaW5l IGJhY2t1cA== IHByb21vdGluZw== IGNvbW1hbmRlcg== IGZsZWU= IFJ1c3NlbGw= IGZvcmdvdHRlbg== IE1pc3NvdXJp IHJlc2lkZW5jZQ== bW9ucw== IHJlc2VtYg== IHdhbmQ= IG1lYW5pbmdmdWw= UFQ= IGJvbA== IGhlbGlj IHdlYWx0aHk= IHJpZmxl c3Ryb25n cm93aW5n cGxhbg== YXN1cnk= 4oCmLg== IGV4cGFuZGluZw== IEhhbWlsdG9u IHJlY2VpdmVz U0k= ZWF0dXJlcw== IEFuaW0= UkVF UHV0 IGJyaWVmbHk= cml2ZQ== IHN0aW11bA== IGBgKA== IF9f IGNoaXA= IGhheg== IHByaXpl IFRoaW5ncw== QUNF dWxpbg== ZGljdA== b2t1 IGFzc29jaWF0ZQ== b2NrZXRz eW91dHViZQ== U3Rvcnk= YXRlZ29yeQ== IG1pbGQ= YWlsaW5n IFll T3JpZw== IEth b3JpZw== IHByb3BhZ2FuZGE= IGFub255bW91cw== IHN0cnVnZ2xlZA== IG91dHJhZ2U= QVRFRA== IEJlaWppbmc= cmFyeQ== IGxlYXRoZXI= IHdvcmxkcw== IGJyb2FkZXI= MTI1 aWRhbA== IEJldHRlcg== IHRlYXI= RXh0 IHByb3Bvc2Fscw== IGl0ZXI= IFNxdWFk IHZvbHVudA== bWk= RGlk IFB1 cGlu IHNwZWFrZXJz IGJvcmRlcnM= IGZpZ3VyZWQ= PSc= IHNpbXVsdGFuZW91c2x5 YWVkYQ== IGNoYXJnaW5n IHVyZ2Vk IGNvbmo= MjU2 IEdvcmRvbg== bWVyY2U= IGRvY3VtZW50YXJ5 U2hhcmU= aXRvbA== T05F IEdhcmRlbg== aGF0dA== IFRob21wc29u YW5lb3Vz YXBvcmU= IHRhbmtz IGxlc3NvbnM= dHJhY2s= IG91dHN0YW5kaW5n IHZvbHVudGVlcnM= IHNwcmF5 IG1hbmFnZXJz bGFyZ2U= IGNhbXBz IGFydGlmaWNpYWw= IFJ1 IGJhZ3M= dGhhbA== IGNvbXBhdGlibGU= IEJsYWRl IGZlZA== IGFyZ3Vlcw== Rkk= IHVuZmFpcg== IGNvcm4= IG9mZnNldA== IGRpcmVjdGlvbnM= IGRpc2FwcG9pbnRlZA== IENvbnZlbnRpb24= IHZpZXdpbmc= TUU= b2NpdHk= IHRvd25z IGxheWVycw== IHJvbGxlZA== IGp1bXBlZA== IGF0dHJpYnV0ZQ== IHVubmVjZXNz aW5jb2xu IHN1cHBvc2U= IE5ldGhlcg== Y2hh IGJ1cmllZA== IHNpeHRo QmVu cmVzc2luZw== T1VS IHdvdW5k IGN5Y2w= IG1lY2hhbmlzbXM= IGNvbmdyZXNzaW9uYWw= IEVsZW1lbnQ= IGFncmVlbWVudHM= IGRlY29y IGNsb3Nlc3Q= IE1pdA== R29vZ2xl fX0= IG1peHR1cmU= IGZsdWlk U2lnbg== IFNjaG9sYXI= IHBpc3Q= YXNrZXQ= YWJsaW5n IHJhY2luZw== aGVybw== cmllbA== YXNzeQ== IGNoZWFwZXI= YmVu IHZlcnRpY2Fs YW1hY2FyZQ== IFJlYWRpbmc= Z21lbnRz IGhlbGljb3A= IHNhY3JpZmljZQ== YXlh cGFyZW4= VkE= IExlcw== IFN0dWRpbw== IHZpb2xhdGlvbnM= IEFubmE= YWNlcg== 6b4= IFJhdA== IEJlY2s= IERpY2s= IEFDVA== IGNvbXBvc2l0aW9u IHRleHR1cmU= IE93bg== IHNtYXJ0cGhvbmU= IE5B IGZvcmI= aW1wb3J0 IGRlZmVuZGluZw== aWxzdA== cmVy IG9o IEplcmVteQ== IGJhbmtpbmc= Y2VwdGlvbnM= IHJlc3BlY3RpdmU= Ly4= IGRyaW5rcw== IFdp IGJhbmRz IExpdmVycG9vbA== IGdyaXA= IEJ1eQ== IG9wZW5seQ== IHJldmlld2Vk cGVydA== IHZlcmlmeQ== IENvbGU= IFdhbGVz TU8= IHVucHJl IHNoZWx0ZXI= IEltcGVyaWFs IGd1aQ== IERhaw== IHN1Z2dlc3Rpb25z IGV4cGxpY2l0bHk= IHNsYXZl IGJsb2NrY2hhaW4= IGNvbXBldGluZw== IHByb21pc2luZw== U09O IHNvY2Nlcg== IGNvbnN0aXR1dGlvbg== NDI5 IGRpc3RyYWN0 IFVzZXI= ZXNpZGVz IE1ldGhvZA== IFRva3lv IGFjY29tcGFuaWVk Q2xpZW50 c3Vy YWxvZw== IGlkZW50aWZpY2F0aW9u IGludmFzaW9u YXNtYQ== IGluZHVzdHJpZXM= cHBlcnM= IHN1YnRsZQ== IFVuaXQ= bmF0dXJhbA== IHN1cnZpdmVk IGZsYXc= mIU= IEhvbGw= IGRlZmljaXQ= IHR1dG9yaWFs IENoYW5jZQ== IGFyZ3Vpbmc= IGNvbnRlbXBvcmFyeQ== IGludGVncmF0aW9u Zm9yd2FyZA== IHR1bQ== aXRpcw== IGhpZGluZw== IERvbWlu IFRhbg== IEJ1aWxkaW5n IFZpbg== IHNwb2tlc3BlcnNvbg== IE5vdGVz IGVtZXJnaW5n IHByZXBhcmF0aW9u IHByb3N0 IHN1c3BlY3Rz IGF1dG9ub20= RGVzY3JpcHRpb24= IGRlYWx0 IFBlYXI= IHN0ZWFkeQ== IGRlY3JlYXNlZA== IHNvdmVyZQ== IENsaW4= IGdyYWR1YWxseQ== b3JzZXM= IFdBUg== U2Vydg== 44Ki aHI= IGRpcnR5 IEJhcm4= IEJD IGRpbA== IGNhbGVuZGFy IGNvbXBsaWFuY2U= IGNoYW1iZXI= YmI= IHBhc3Nlbmdlcg== YXRlZnVs IFRpdGxl IFN5ZG5leQ== IEdvdA== IGRhcmtuZXNz IGRlZmVjdA== IHBhY2tlZA== YXNzaW9u IGdvZHM= IGhhcnNo SUNL bGVhbnM= IGFsZ29yaXRobQ== IG94eWdlbg== IHZpc2l0cw== IGJsYWRl IGtpbG9tZXQ= IEtlbnR1Y2t5 IGtpbGxlcg== UGFjaw== ZW5ueQ== IGRpdmluZQ== IG5vbWluYXRpb24= YmVpbmc= IGVuZ2luZXM= IGNhdHM= IGJ1ZmZlcg== IFBoaWxs IHRyYWZm QUdF IHRvbmd1ZQ== IHJhZGlhdGlvbg== ZXJlcg== bWVt IEV4cGxpY2l0 6b6N IGNvdXBsZXM= IHBoeXNpY3M= IE1jSw== IHBvbGl0aWNhbGx5 YXdrcw== IEJsb29t IHdvcnNoaXA= ZWdlcg== dXRlcg== IEZP IG1hdGhlbWF0 IHNlbnRlbmNlZA== IGRpc2s= IE1hcmc= IC8q UEk= IG9wdGlvbmFs IGJhYmllcw== IHNlZWRz IFNjb3R0aXNo IHRoeQ== XV0= IEhpdGxlcg== UEg= bmd0aA== IHJlY292ZXJlZA== aW5nZQ== IHBvd2Rlcg== IGxpcHM= IGRlc2lnbmVy IGRpc29yZGVycw== IGNvdXJhZ2U= IGNoYW9z In0seyI= IGNhcnJpZXI= YmFibHk= SGlnaA== IFJU ZXNpdHk= bGVu IHJvdXRlcw== dWF0aW5n Rmls Tk9U d2FsbA== c2J1cmdo IGVuZ2FnaW5n IEphdmFTY3JpcHQ= b3Jlcg== bGlob29k IHVuaW9ucw== IEZlZGVyYXRpb24= IFRlc2xh IGNvbXBsZXRpb24= IFRh IHByaXZpbGVnZQ== IE9yYW5nZQ== IG5ldXI= cGFyZW5jeQ== IGJvbmVz IHRpdGxlZA== IHByb3NlY3V0b3Jz IE1F IGVuZ2luZWVy IFVuaXZlcnNl IEhpZw== bmll b2FyZA== IGhlYXJ0cw== IEdyZQ== dXNzaW9u IG1pbmlzdHJ5 IHBlbmV0 IE51dA== IE93 IFhQ aW5zdGVpbg== IGJ1bGs= U3lzdGVt aWNpc20= IE1hcmtldGFibGU= IHByZXZhbA== IHBvc3Rlcg== IGF0dGVuZGluZw== dXJhYmxl IGxpY2Vuc2Vk IEdo ZXRyeQ== IFRyYWRhYmxl IGJsYXN0 4KQ= IFRpdGFu ZWxsZWQ= ZGll SGF2ZQ== IEZsYW1l IHByb2ZvdW5k IHBhcnRpY2lwYXRpbmc= IGFuaW1l IEVzcw== IHNwZWNpZnk= IHJlZ2FyZGVk IFNwZWxs IHNvbnM= b3duZWQ= IG1lcmM= IGV4cGVyaW1lbnRhbA== bGFuZG8= aHM= IER1bmdlb24= aW5vcw== IGNvbXBseQ== IFN5c3RlbXM= YXJ0aA== IHNlaXplZA== bG9jYWw= IEdpcmxz dWRv b25lZA== IEZsZQ== IGNvbnN0cnVjdGVk IGhvc3RlZA== IHNjYXJlZA== YWN0aWM= IElzbGFuZHM= IE1PUkU= IGJsZXNz IGJsb2NraW5n IGNoaXBz IGV2YWM= UHM= IGNvcnBvcmF0aW9u IG94 IGxpZ2h0aW5n IG5laWdoYm9ycw== IFVi YXJv IGJlZWY= IFViZXI= RmFjZWJvb2s= YXJtZWQ= aXRhdGU= IFJhdGluZw== IFF1aWNr IG9jY3VwaWVk IGFpbXM= IEFkZGl0aW9uYWxseQ== IEludGVyZXN0 IGRyYW1hdGljYWxseQ== IGhlYWw= IHBhaW50aW5n IGVuZ2luZWVycw== TU0= IE11c3Q= IHF1YW50aXR5 UGF1bA== IGVhcm5pbmdz IFBvc3Rz c3RyYQ== 44O844M= IHN0YW5jZQ== IGRyb3BwaW5n c2NyaXB0 IGRyZXNzZWQ= TWFrZQ== IGp1c3RpZnk= IEx0ZA== IHByb21wdGVk IHNjcnV0 IHNwZWVkcw== IEdpYW50cw== b21lcg== IEVkaXRvcg== IGRlc2NyaWJpbmc= IExpZQ== bWVudGVk IG5vd2hlcmU= b2NhbHk= IGluc3RydWN0aW9u Zm9ydGFibGU= IGVudGl0aWVz IGNt IE5hdHVyYWw= IGlucXVpcnk= IHByZXNzZWQ= aXpvbnQ= Zm9yY2Vk IHJhaXNlcw== IE5ldGZsaXg= IFNpZGU= IG91dGVy IGFtb25nc3Q= aW1z b3dza2k= IGNsaW1i bmV2ZXI= IGNvbWJpbmU= ZGluZw== IGNvbXBy IHNpZ25pZmljYW5jZQ== IHJlbWVtYmVyZWQ= IE5ldmFkYQ== IFRlbA== IFNjYXI= IFdhcnJpb3Jz IEphbmU= IGNvdXA= YmFz IHRlcm1pbmFs LC0= T0g= IHRlbnNpb24= IHdpbmdz IE15c3Rlcg== 77+977+977+977+9 IFVubGlrZQ== dmFsaWQ= dmlyb25tZW50cw== IEFsaQ== IG5ha2Vk Ym9va3M= IE11bg== IEd1bGY= IGRlbnNpdHk= IGRpbWlu IGRlc3BlcmF0ZQ== IHByZXNpZGVuY3k= IDE5ODY= aHk= SU5E IHVubG9jaw== aW1lbnM= IGhhbmRsZWQ= IEVi IGRpc2FwcGVhcmVk IGdlbnJl IDE5ODg= IGRldGVybWluYXRpb24= U3RyZWFt aWtv YXB0ZXJz IGFja25vd2xlZGdl SmFu IGNhcGl0YWxpc20= UGF0 IDIwMjA= IHBhaW5mdWw= IGN1cnZl IGJvbWJz c3Rvcm0= IE1ldGFs ZW5jZXI= IEZpZw== IEFhcm9u YW5jaGVz IGluc3BpcmF0aW9u IGV4aGF1c3Q= dGFpbnM= YXNoaQ== IGRlc2NyaXB0 IHJpdHVhbA== IENoZWxzZWE= IHByb21vdGlvbg== IEh1bmc= IFdhcmQ= aXZh IEVU IHRvc3M= YWxsb3c= IEZyYW5jaXM= RGVw IGhhcHBpbmVzcw== IEdsYXNz IGJldGE= IHN0cmVuZ3RoZW4= TkU= b2E= IGJ1dHRvbnM= IE11cnJheQ== IGtpY2tlZA== UXVlc3Q= IFRhbGs= IFNldmVyYWw= IFplcm8= IGRyb25l dWxr IGNhbQ== IE1vYmlsZQ== IHByZXZlbnRpbmc= IHJldHJv IEF4 IGNydWVs IGZsb2F0 Liks IGZpbGluZw== IEdyYW50 IEJvcg== IHJpYg== IGNoYW1waW9uc2hpcA== IE1lcmM= IHN0eWxlcw== IGNha2U= IGJ1aWxkcw== IFNlbGY= aW94 IGVwaWM= b3lk QmVs IFN0ZXc= Lig= YWh1 IEJleW9uZA== IG91dHM= IHNvbG8= IFRyZWU= IHByZXNlcnZl IHR1Yg== QVJF cm9j IEltcHJv IFdyaWdodA== IGJ1bmQ= IHRyYWdlZA== IG9jY2FzaW9uYWw= Ymlhbg== U2Vjb25k cm9ucw== IGludGVyYWN0aW9ucw== Zm9ybWVk c2luZw== IG93bnM= IGhvY2tleQ== R2VuZXJhbA== IGxvZ2ljYWw= IGV4cGVuZA== IGVzY2Fs IEdyaWZm IENyb3du IFJlc2VydmU= IHN0b3BwaW5n IGV4Y3VzZQ== c2Vjb25k IG9wZXJhdGVk IHJlYWNoZXM= IE1hbGF5cw== IHBvbGx1dGlvbg== IEJyb29rbHlu IGRlbGV0ZQ== IGhhc2g= QmxvY2s= YWhh 4oCz IHNob3J0ZXI= cGllY2U= Pjwv IGhvcm0= IFdhdA== IEJyZWFr IHByb2hpYml0ZWQ= IGludGVuc2l0eQ== IEFsYW4= IGxpYWJpbGl0eQ== PyE= YW5kZWQ= IG5laWdoYm91cg== IENvbGxlY3Rpb24= IGZpcmVz IHJldm9sdXRpb25hcnk= Zmx5 IE9ybGVhbnM= V2hpdGU= IFdyaXQ= IERhd24= IHNldHRsZQ== IGV4ZWN1dGU= Qk0= IHNwb2tlc3dvbWFu IGxpZmVzdHlsZQ== IGNsaWNraW5n IEtpbGw= IExpYmVyYWw= IE5hemk= IHRyYWlsZXI= IG1vdW50YWlucw== IGRhbW4= emVz cGVz IHByZXNzaW5n IGJhaWw= IE9yZ2FuaXphdGlvbg== IHBpcg== IHRoaXJ0eQ== IGVsZWN0cmljYWw= IDExNQ== IFBvbHk= IFJhcA== IFN0cmlrZQ== IENhbm4= IGRlbWFuZGVk IGJhY2tpbmc= ZGVmYXVsdA== c3BlZWQ= IExlZ2lzbA== IG1vdGhlcnM= IEJvZHk= IHZhcmlhdGlvbg== Y2VkZW50ZWQ= cG93ZXJlZA== bGVhZGluZw== TmV2ZXI= IGdyYXZl IEFudGk= QVc= IGludGVydmlld2Vk IEdhYg== IEZhdA== IHJvb2tpZQ== dXU= IGRlcG9z aXhvbg== IGFtcGw= cmV0aW9u IEhlYXQ= IHBlYWNlZnVs U00= aWV2ZQ== IGRpdmVy IFZpY3Rvcmlh IG1pYw== cGRm IHN0YXRpbmc= IGx1bmc= IGNyaXRpY2l6ZWQ= IHZhY2NpbmU= IExvYWRpbmc= dXJzZQ== VGFrZQ== IEZyYW4= IFNvbGQ= IFJvYmlu IGRldGVjdGVk IFNjcmlwdA== IGFkanVzdGVk IHNlbmF0b3I= IG9wcG9zaW5n RXJyb3I= Q291bnQ= IGNvbmZsaWN0cw== IG93 IEFyZ2VudA== IG1hdGNoaW5n aGg= IFRyZWs= c3RhcnRlcg== Iiks IEFG b2Rlcg== eHh4eA== IEFsdA== YWNyZQ== IFBpY2s= IFNvbGFy IERhbA== T2N0 IEJhdHQ= IHNyYw== IGVuZ2FnZW1lbnQ= IGV4ZWN1dGl2ZXM= IGxpYmVydHk= amF2YQ== IHRhbGVudGVk aWdlbm91cw== IGNvbnNlY3V0 Li4uLi4= SW5mbw== IGhvcnJpYmxl IHN1cnByaXNpbmdseQ== ZmVlZA== aWNhdGluZw== IExFRA== IGZlbWFsZXM= U3RhdGlvbg== ZWxsZXI= IE9ha2xhbmQ= IG1lY2hhbmljYWw= aW9sb2d5 IFZhcg== IHJvYnVzdA== ZXR0aW5ncw== b3R0YQ== IHRoZW9yZXQ= IHJldGFpbg== a3dhcmQ= IGRh IGRlcGxveWVk ZGVs IEFuZHk= IHN1YnNjcmliZQ== d2Vi IG5h IE1pY2hlbA== IHBhcnRpYWxseQ== IENvbWV5 IGNyb3du IE1hag== IEJsdQ== cmF0b3I= RGF5 SU5U IGRvY3VtZW50ZWQ= IEdEUA== Z2k= Y2hlbGw= IGJydXRhbA== IEJhYg== c3RyYXRpb24= IHRoZWZ0 IHR1YmU= QEA= IHF1ZXJ5 IExpbmNvbG4= IHB1Ymxpc2hpbmc= IHdvcmU= b3JpY2Fs IHJpYw== IG5vdGFibGU= IHN1YnNlcXVlbnRseQ== bmV4 IG9ic2VydmU= IEJvZQ== IGNvZGVz bWFpbg== V0g= IFNM IHJlc2lkZW50aWFs YXZhbg== IG1hcw== YXJlc3Q= YWRlb24= T1VU IHNvcGhpc3RpYw== YW50ZQ== IGNlbnM= ICoq IG1vcnRhbGl0eQ== IHlvdXJz IG9jY2FzaW9ucw== IHJlY2FsbGVk IERyaXZlcg== IHZvY2Fs IGJhdGhyb29t IHNob3Bz IGNvbGxhYm9yYXRpb24= IE9iYW1hY2FyZQ== IENlbGw= Q2hhcg== U3VwZXI= Q3Jl IHRlbmRz IHRvcm4= IGVjb25vbWljcw== YXZlcnk= IFJhaWQ= IFNlbQ== IHNob3VsZGVycw== IGV4cGVjdGluZw== IGV4YW1pbmF0aW9u ZW5hbWU= IFVJ aWFiaWxpdHk= b2xhcw== IEFtYg== IERyYQ== IG1pZGZpZWxk IElD IGxheW91dA== IGZsb2F0aW5n Zmk= aXRhdGl2ZQ== IHRyZW1lbmRvdXM= INA= IGFidW5k V29yaw== IExpZ2h0bmluZw== IHNpbWlsYXJseQ== IGNvbnNlcnZhdGl2ZXM= IHByYXk= QkU= aXphcnJl IHRlbXB0 IGVtcGhhc2lz IE1ldHJv IGZpc2hpbmc= IG1hcnJ5 bmVn IFN0dWR5 IHJlY2s= IGRpc3Bvcw== b25pbmc= YnNpdGU= IHN1c3BpYw== IG1lcmNo IEdpYg== IERlc2NyaXB0aW9u IERWRA== d2hl IFllbWVu IGVudmlyb25tZW50cw== b290aW5n IE1vZGVybg== ZXU= IHJlZmxlY3Rz IGhvbmV5 IGFuYWx5c3Q= IGd1dA== ZGVj QWN0aW9u IGhvdXNlaG9sZHM= IHN0ZXI= IHRlbXBsZQ== IHJlZm9ybXM= IGZhdm91cml0ZQ== IGRlYWRsaW5l IExF VGhyZWU= IFdpdGhpbg== QXVn IG5pZ2h0cw== ZWx0YQ== IGludmFsaWQ= IEV4Y2hhbmdl IERlbGhp d2hlbg== aW5jb21l IPCf IHdpcmVsZXNz c2NyaWJl aXN0YQ== IGhvc3RpbGU= IGFsbHk= IGdpZw== IG91dGxldHM= IERvcg== RU1FTlQ= IGFzaA== IGFic3RyYWN0 T1JE IE1vdG9y IGFkdmlzZXI= aXN0bGU= IGJhc2Vz IGNvdXJ0ZXN5 IGNyb3NzaW5n IGNsZWFyZWQ= IHJlZnVnZWU= Y29zeXN0ZW0= IHRocm93cw== ZnVu Ym91cm5l ZGF5cw== IGRpc2FncmVl IE5hdGl2ZQ== IHJlZmxlY3RlZA== IEZhc3Q= IFllbGxvdw== IFNpbmdhcG9yZQ== IFJhdmVu IGVtYnJhY2U= IEt1 IENoZW4= IEVhcmx5 IGFwcG9pbnRtZW50 IE1pbmk= aXRlbWVudA== IHBsYWNpbmc= IGJpY3k= U1I= IHdoaXM= U1U= IGludmVzdGlnYXRlZA== IHBob3RvZ3JhcGhz Z2l0aHVi IEJlYXQ= IFJpbmc= aWdoZWQ= aWFy IGV2b2x2ZWQ= ZXJhbGQ= IGR1bg== IGh1Yg== SUFM IGVuY291cmFnaW5n IFByaW50 IERheXM= IHByb3NlY3V0aW9u IHBhbnRz YXp5 bGl2ZQ== IGZvc3NpbA== IEp1 IHJvY2tz dWRnZQ== IFJhY2U= IGdyZWV0 Ymll IGZpbGxpbmc= IExlbg== IGRpYWJldGVz IGZpcmVhcm1z dW1pbmc= ZW5lenVlbA== IEJC IGFjY2VwdGluZw== QVRI IHJlc29ydA== IGh1bnQ= cmlr dWNrZXI= YW1lbnRz IHN1c3RhaW5lZA== IGNyb3NzZWQ= IGJyZWFrZmFzdA== IGF0dHJpYnV0ZXM= bGVjdGVk YXRpbGU= IHZpYnI= IEthbA== YXJzb24= b3BsZXM= IHRvdWNoZWQ= IGRhbWFnZXM= IGltcHJlc3NlZA== cnVw IGFuY2g= IEFkYW1z SGVs IFZpY3Rvcg== IG1vdW50ZWQ= IEND IGRlbGljaW91cw== c3Bhbg== ZWxsYQ== IGVsYWJvcg== YW1wbGVz IGRlZmlj IGNvbnN0aXR1 dWF0ZXM= IE1pc3Npb24= IFRoZXI= IE1vbnN0ZXI= YmVz UmV1dGVycw== IEluZG9uZXM= aGlsbA== bXVuaXRpb24= IGNvbmZpcm1hdGlvbg== IENvbnNpZGVy YWNlbnQ= IGpldA== IEVtcGxveQ== IEdUWA== bmFu IFNwaWRlcg== IHByb2Nlc3Nvcg== IHBhdHJp IFBlbnRhZ29u IFJvYmluc29u IHJlYWxpc3RpYw== w7E= IGFwcGVhcmluZw== IHBpcGU= b21lZA== IGZydQ== IGF3ZnVs IGV2YWx1YXRpb24= IGludGVsbGlnZW50 IENpdGl6 IGZ1bmRyYQ== b2RpdW0= IHR3ZWV0cw== IHdvcm4= cHJpbmc= IGtpZG4= IHJlYmVscw== IEthbQ== IE5ldGhlcmxhbmRz IFNX IGFjcXVpc2l0aW9u IE1hbGU= 44Oq b21iaWVz IHRyYWRlbQ== IFN0YXR1cw== QnJl IFRISVM= IGFkdmVyc2U= IE5FVw== c2lnbg== IG9yZ2FuaXNhdGlvbg== ZW5j IEhhcnBlcg== YXBvcg== IE1lbWJlcnM= IFBlYWNl IEFpcnBvcnQ= IE90aGVycw== IHNjcmF0Y2g= IFBpbA== IHNlbnNvcg== IGFkb3B0aW9u IEhvdGVs IERyYWc= IGhvbmVzdGx5 IHlhcmQ= IEZvcmNlcw== IHBhdGVudA== IGJhc3M= IHF1aWV0bHk= IGJyZWF0aGluZw== IHBvc2U= aW9ycw== IEplc3M= c3RhdGlj SVRF T2ZmaWM= IGpldw== d2Nz IDE0MA== IHByZXZpZXc= aXBwaQ== IHVuZm9ydHVuYXRlbHk= b2tlbW9u IGhvcm4= IHJlYXNz IHBlZXI= b2NrZXI= IHVudG8= IEdyYXk= IGNsZWFuaW5n IGF0dHJhY3RlZA== MjAwNw== UG9pbnQ= a2lsbA== IEFncmVlbWVudA== dXJjaGVz IGhvcnI= IE1pc3Npc3M= IHdvcnRoeQ== IGZsb3dlcnM= dG93bg== ZGxs IHJlYWN0aW9ucw== IGRlY2U= IGluZGljYXRpbmc= TUQ= IHByZWZlcmVuY2U= IE1WUA== ZXNzaW9uYWw= IFRhcmdldA== Z2VuY2U= IEluZGlhbnM= IG1pc2M= IGZyZWVseQ== IG11c2NsZXM= IGxpbmV1cA== IGltcGFjdHM= b3VzaW5n b21p YWN1bGFy IGNvbnRyb2xsaW5n YWdpbmU= Y2VyeQ== aGVsbA== IHJhbmtpbmc= IE5pY2g= IEF2ZQ== MTI4 IGhpZ2h3YXk= IGluY29ucw== IGJpbmRpbmc= IHN0cnVnZ2xlcw== IFBpdHRzYnVyZ2g= IGdyYXk= cmlu IGNvbWljcw== IFNwb3J0 IHJlbGF0aXZlcw== IGZyaWdodA== IHByb2Jl IFBvcnR1Zw== IHZvYw== IHR1 IENvcnBz IHBvc3NpYmlsaXRpZXM= IHF1YWxpZnk= d2Nzc3RvcmU= IGxpYnJhcmllcw== IG1pZ3JhbnRz IGVudHJpZXM= IGNvbnNlY3V0aXZl dmFscw== IENoYWlybWFu IGhpbGw= SU1F IEdhcmQ= IGluZXF1YWxpdHk= Zm94 IFNhdmU= IGNvcnQ= Y2xhaW1lZA== IHRyYWl0cw== IHBvdXI= IG1pc3NpbGVz IGVzc2VuY2U= IHNlbmRz IGFsbGlhbmNl IHdpc2hlcw== IENocmlzdG9waGVy Qmln Tlk= IEphY29i c2Fu dXJyZWQ= IFNP bGx5 IGFkdm9jYXRl IEJvbmQ= ICIv VXNpbmc= IGRpc3RyaWN0cw== IEdhdGU= IEJpcg== cmlkZ2U= IE5heg== IFJz Ym9hcmRz IEdh IFJlYWdhbg== IGluZmx1ZW5jZWQ= MTAwMA== YXB5 IGNoYWxsZW5nZWQ= IGJhcmc= IGZhY3VsdHk= IEZpZg== IGFjcXVpcmU= QWM= IGluc2VjdA== IGluc3RydW1lbnRz IGxlYWY= dGhvZG94 TWVzc2FnZQ== IHRhbGU= IHRoZXJlYnk= IHRyYXA= IHN0cm9uZ2VzdA== IE1pbGl0YXJ5 aXNpYmxl IDE5ODQ= ZXRoZWxlc3M= IGZsZXhpYmxl IGtpbGxz IGZpbmlzaGluZw== IFNpemU= IHJlZHVjZXM= IGVwaWQ= IG9yaWVudGF0aW9u ZnVsbA== IHRyYWNl IGxhc2Vy IG9wcG9zZQ== IGVkaXRpbmc= IG1vbWVudHVt 5Lo= c2hvdw== Vkk= IExhZA== IDE5ODU= IG11cmRlcmVk OTAw dXRoZXI= IHByb2JhYmlsaXR5 IFBvbGw= IHJlbHVjdA== IENoZW0= IE1vbnRyZWFs IGFkZXF1YXRl IFBvbGFuZA== IFNoZXJpZmY= dW1waA== IG9r IDAwMA== ICJb IG9wZXJhdG9ycw== IEZlcg== IG1vZGVz IEV2ZQ== IGRpc2NpcGxpbmU= TkVU SGFuZA== IG9yYWw= IFdF ZW1haWw= SlA= IFBhbGVzdGluaWFucw== IGhlbmNl IExlc3M= IG92ZXJs ZGln IGludGltaWQ= IENvYWw= IHJhbmdpbmc= dGhh IGRpc3RhbnQ= IGZpYg== IEluZGV4 IFdvbmRlcg== IFBlbA== aGF0dGFu IEh1Zw== w5c= cmFpdA== IHdyYXBwZWQ= IFJQRw== IGNoZW1pY2Fscw== IE1vbmV5 IGZyb3plbg== IGluZGlyZWN0 IEFnYWluc3Q= RW5k IHVuY29tZm9ydGFibGU= IEdhbGxlcnk= IFBvc3RlZA== 2Kc= b25kdWN0 IGNvbnNlcXVlbmNl IGJpdHRlcg== IDE5ODc= cG9w IGNvdW50bGVzcw== IEFsYXNrYQ== ZmZmZg== IGRlcGFydHVyZQ== IHJlZnVuZA== IElhbg== aWF0ZWQ= IHNlZWtz IG1lY2hhbmljcw== IGp1cmlzZGljdGlvbg== bHlubg== IGFsaWtl IEh1bnQ= YXRob24= IHJlc29sdmVk IGNhY2hl IGRpc3RpbmN0aW9u ZGlyZWN0 IGVuY291bnQ= b3Vi YmVhdA== IENvdW50cnk= c2VhcmNo IGNvbnRpbnVvdXM= IG1vZGVzdA== IFJhaWw= dGhvb2Q= MTMw QlVH IGNyaW1pbmFscw== IGluZGljYXRpb24= IGVuY291bnRlcmVk bGFzdA== IFd5 IGlkZW9sb2d5 IFBERg== c2VjdXJpdHk= XSk= IEppbW15 IEVO IGhpcmluZw== VGVt IHBpZw== YXVudA== IENyeXN0YWw= IHBlbmFsdGllcw== IGNhcGFiaWxpdHk= IHB5 IHByb2R1Y3RpdmU= IGJhbGFuY2Vk IEdlRm9yY2U= Y2xpY2s= b2xpdGFu b2Rz IGFmdGVyd2FyZHM= IHBsYXlvZmZz IEdpbGw= VXNlcg== IGJhY2tz cHVi dGFn IGFic3VyZA== cGlyaW5n IGNpdGluZw== IHRyaWxsaW9u IG9ibGlnYXRpb24= IG1heGlt YWhvbw== Y2Y= dW1p IEFscGhh IE5lbHNvbg== IHB1cnN1YW50 aW5pdGVseQ== IGZyYWN0 ZW50cnk= YmVyeQ== IFRob3I= QWRkZWQ= IERK IEdlbmU= IGF3a3dhcmQ= U3R1ZA== IHdhbGxldA== IERpdmluZQ== YXJpb3M= IHJlbGVhc2luZw== IGVkaXRlZA== IGFjY29tcGxpc2hlZA== QmVzdA== IGVkZ2Vz IHBsYW5lcw== IGZlZWRpbmc= In0sIg== IGRpc2Nsb3N1cmU= IGdyYWlu YWlyeQ== b29ucw== ZXJuYW5k VlI= IHJlYXNvbmFibHk= IGRydW0= IHBhcnRpYWw= IGdyYXBoaWM= IHVucHJlY2VkZW50ZWQ= IGFkdmlzZWQ= TWljcm8= IEFzc2Fk cG9pbnRz c2Nhcg== IFpvbmU= dHRlcw== IDcwMA== dm8= IEhhbXA= IGZpeGVz IGNhdXRpb24= IHN0cmluZ3M= IHBhbmVscw== IGxlYWs= IHByaWNpbmc= cm93dGg= IEVycm9y IFNhaW50cw== Zml4 IG9ic2VydmF0aW9ucw== IEFicw== IHN1Z2dlc3Rpb24= IFVrcmFpbmlhbg== IGJhcnJpZXI= IHBhaW50ZWQ= QmV0 aW1pcg== IFNwZWN0 cG90 b3JuZXlz IGNvbXBvdW5k IGJlYXJz IFJ1c2g= IGx1eHVyeQ== U3Vt IG9yYml0 IE1hcmM= IGV4ZW1wdA== IFRyYWls IE1P IEhhbnM= IFdlYXBvbg== b2N1c2Vk dW1pbnVt IEplcnJ5 IGJ1c3Q= IEFH IFdpa2k= IGVuZGxlc3M= IFZsYWQ= IEJhaA== IFJhZGVvbg== a2V5cw== IFN1cnZleQ== IFZpb2w= ZGVmaW5l bGVhbg== IGNvbW1vZA== IHJldmVudWVz xY0= IGZ1cm5pdHVyZQ== IGNhc3Rpbmc= IGRpcGxvbWF0aWM= IFBsYXllcnM= IEtpbGxlZA== IG1vZGlmeQ== IGlubm92YXRpdmU= IEFidQ== bm9y IGJvbmRz IGNvYWNoaW5n TWVy IG1vZHVsZXM= IFBhdHJpb3Rz IGVuaGFuY2Vk IHByb2NlZWRpbmdz IHRlYW1tYXRlcw== IDEyOA== YXJkbw== IGNvbXByb21pc2U= IE11Y2g= IGZsZXc= IEVkZ2U= IHVubmVjZXNzYXJ5 IGRvY3RyaW5l cmVwb3J0 IE9ybGFuZG8= IFByb2ZpbGU= IHBsYXlvZmY= ZnJpZW5kbHk= IGNvbXBsYWlu IE1D IE9wdA== IEdC IGJlYXRlbg== IGdvbGY= IHBsYWNlbWVudA== Qml0 IG5ld3NsZXR0ZXI= IDIwMTk= dmlzb3I= cmF3bA== IGlQYWQ= IGFjdGVk IGp1aWNl IGRlY2tz UE4= c3VjY2Vzcw== IEhhbGY= IGRlbGV0ZWQ= IHNlY3JldHM= IGFzeWx1bQ== TWFydA== IEFjdGl2 IEd1eQ== IFRz IGR5cw== IGFzc3VtaW5n IG1hbmE= IHN1YnVy IDEyNQ== TWVkaWE= QVJZ cmlkZQ== Y3A= IGRpZmZpY3VsdGllcw== IGNvbGxlY3Rpbmc= IGJhbmtydXB0 bm9u IGNvbXBvc2Vk IHZvbHQ= IG1pbGl0YW50cw== ID4+Pg== IE1vcm1vbg== dG9y IHBhcnRpY2xlcw== IEJhcnQ= cnlwdGlvbg== IGFkbWlu IHNxdWVl VklESUE= IGNyZWF0b3I= aWFtZXRlcg== aWN1bGFy TkJD IGdyYWJiZWQ= IG5vZGQ= IHJhdGVk IHJvdGF0aW9u IGdyYXNw IGV4Y2Vzc2l2ZQ== IEVD IFdoaXQ= IGludmVudG9yeQ== YXVsdHM= IEZC IGVjb3N5c3RlbQ== IGJpbGxpb25z IHZlbnR1cmU= bmFtZWQ= IGRlZmVuZGVy b3V0ZQ== SW5zdGVhZA== aXJhYmxl V2Fy IGFzc3VtcHRpb24= IGJpdGU= IGVhcnRocXU= dGFpbA== c3BhY2U= IGdpZnRz Ym95cw== IGluZXZpdGFibGU= IHN0cnVjdHVyYWw= IGJlbmVmaWNpYWw= IGNvbXBlbGxpbmc= aG9sZQ== ZXJ2YXRpb24= IGNvYXQ= b2o= aW5jYXJu IFllYXJz IGRldGVybWluaW5n IHJoZXRvcmlj IGJvdW5kYXJpZXM= IHdoaXRlcw== QW50 YWRkeQ== KS0= cmFoYW0= ZXRlcm1pbg== IGhhcnZlc3Q= IENvbmM= IGxhcHRvcA== IE1hdGNo IGVuam95aW5n Y2Nh b2xsYXI= IHRyaXBz IGFkZGljdGlvbg== IFNhaw== IHBvd2VyZWQ= IGNvdXM= IFJ1c3NpYW5z aWVyZQ== IHJldHJpZQ== cXVhbGl0eQ== IGRpZmZlcg== IGtpbmdkb20= IExhdXI= IENhcGl0b2w= IGNvbmNsdXNpb25z IEFsdGVybg== IE5hdg== IHRyYW5zcGFyZW50 QkVS R3JvdXA= IENvbXBsZXRl IGluZmVy IGludHJpZw== IGluc2FuZQ== Uk8= b3Bob2I= aXNlbg== cXVhbA== TWljaGFlbA== IG11c2V1bQ== IFBvcGU= IHJlc2V0 cmF0aXZl Zml2ZQ== IGFnZ3JlZw== aXR0ZWVz b3NpdG9yeQ== IGNhcmI= IFJlY29yZA== IGRlY2lkZXM= IEZpeA== IGV4Y2VwdGlvbnM= IENvbW1pc3Npb25lcg== dW5z IEVudmlyb25tZW50YWw= IGxlZ2VuZGFyeQ== aXN0ZW5jZQ== IHR1bm5lbA== a20= IGluc3VsdA== IHRyb2xs IHNoYWtl IGRldGVudGlvbg== cXVlcw== IENocm9tZQ== IEZpbGVz IHN1YnQ= IHByb3NwZWN0cw== IHByb2w= cmVuZGVy cHJvb2Y= IHBlcmZvcm1hbmNlcw== U3Ry IGhyZWY= ZXJuYW1l IGFjaGlldmVtZW50 IGZ1dA== RnVsbA== IExlYmFu Z29vZ2xl 44OI YW1wYQ== TWF5YmU= IHByb2plY3RlZA== IEVtYg== IGNvbGxlZw== IGF3YXJkcw== IOKU R29sZA== IEJsYWtl IFJhag== aWZ0aW5n IHBlbmRpbmc= IGluc3RpbmN0 IGRldmVsb3BtZW50cw== Q29ubmVjdA== IE1hbmQ= IFdJVEg= IFBoaWxpcHBpbmVz cHJvZmlsZQ== IGFsdG9nZXRoZXI= IEJ1bmQ= IFRE b29vbw== YW1wZWQ= aXBo IHN0ZWFt IG9sZGVzdA== IGRldGVjdGlvbg== dWxwdA== IOc= IFdheW5l MjAwNg== ZmE= IGNpcmNsZXM= IEZ1 IGRvbm9ycw== YXBwcm9wcmlhdGU= IERha290YQ== amFtaW4= IG1vdGl2YXRlZA== IHB1cmNoYXNlcw== IExvdWlzaWFuYQ== IFNwbA== IGdsb2Jl IDEwNQ== emlw Y2FsbA== IGRlcGFydG1lbnRz IHN1c3RhaW5hYmxl MTA1 IE9Q aWZpZXJz IHByZXZlbnRlZA== IGluY29tcA== IENvbW1hbmRlcg== IGRvbWluYXRlZA== IMK7 IGludmVzdGVk IGNvbXBsZXhpdHk= IGluY2w= IGVuc3VyaW5n IHJlYWxt eW5j IEluZGVwZW5kZW50 cmFpbmVk IEplbg== IEZsaWdodA== IGF0aGU= IHNwZWN1bGF0aW9u IFRF b2NhdGU= dGlj IHBsYWludA== aGVycnk= IHRveQ== IDExMQ== IHBsYXRlcw== c3RhdHVz IElzYQ== IGRldm90ZWQ= Q29w IEVT MjU1 dXJyZW5jeQ== TWFpbg== IHNsYXZlcw== IHBlcHBlcg== IHF1b3Rlcw== IGNlaWxpbmc= IEZpc2g= IHRyYW5zZm9ybWF0aW9u IGZyYWN0aW9u IGFkdmFudGFnZXM= IHRvaWxl IHN0dW5uaW5n IG1vaXN0 YnJlYWtpbmc= c2k= IExvY2F0aW9u IE1lZGl1bQ== IHRleHRz IHVnbHk= IGJpbw== LuKAlA== IEJhc2Vk IHRyYWlucw== IFdpbmc= IEFuY2llbnQ= IFJlY29yZHM= IEhvcGU= U3BlY2lhbA== YWRlc2g= b2Jp Wy8= IHRlbXBvcmFyaWx5 VmVy aHU= b3Nlcg== IG92ZXJuaWdodA== IG1hbW0= IFRyZWFzdXJ5 IFZlbmV6dWVs IE1lZ2E= IHRhcg== IGV4cGVjdHM= YmxhY2s= b3JwaA== XFxcXA== IGFjY2VwdGFuY2U= IHJhZGFy c2lz IGp1bmlvcg== IGZyYW1lcw== IG9ic2VydmF0aW9u YWNpZXM= UG93ZXI= IEFkdmFuY2Vk TWFn b2xvZ2ljYWxseQ== IE1lY2hhbg== IHNlbnRlbmNlcw== IGFuYWx5c3Rz YXVnaHRlcnM= Zm9yY2VtZW50 IHZhZ3Vl IGNsYXVzZQ== IGRpcmVjdG9ycw== IGV2YWx1YXRl IGNhYmluZXQ= TWF0dA== IENsYXNzaWM= QW5n IGNsZXI= IEJ1Y2s= IHJlc2VhcmNoZXI= IDE2MA== IHBvb3JseQ== IGV4cGVyaWVuY2luZw== IFBlZA== IE1hbmhhdHRhbg== IGZyZWVk IHRoZW1lcw== YWR2YW50 IG5pbg== IHByYWlzZQ== MTA0 IExpYnlh YmVzdA== IHRydXN0ZWQ= IGNlYXNl IGRpZ24= RGlyZWN0 IGJvbWJpbmc= IG1pZ3JhdGlvbg== IFNjaWVuY2Vz IG11bmljaXBhbA== IEF2ZXJhZ2U= IGdsb3J5 IHJldmVhbGluZw== IGFyZW5h IHVuY2VydGFpbnR5 IGJhdHRsZWZpZWxk aWFv R29k IGNpbmVt cmFwZQ== ZWxsZQ== YXBvbnM= IGxpc3Rpbmc= IHdhaXRlZA== IHNwb3R0ZWQ= a2VsZXk= IEF1ZGlv ZW9y YXJkaW5n aWRkaW5n aWdtYQ== IE5lZw== IGxvbmU= IC0tLS0= ZXhl ZGVn IHRyYW5zZg== IHdhc2g= IHNsYXZlcnk= IGV4cGxvcmluZw== IFdX YXRzb24= IGVuY2w= bGllcw== IENyZWVr IHdvb2Rlbg== TWFuYWdlcg== IEJyYW5k dW1teQ== IEFydGh1cg== IGJ1cmVhdWNy IGJsZW5k YXJpYW5z RnVydGhlcg== IHN1cHBvc2VkbHk= IHdpbmRz IDE5Nzk= IGdyYXZpdHk= IGFuYWx5c2Vz IFRyYXZlbA== IFZldGVy IGR1bWI= IGFsdGVybmF0ZQ== Z2Fs IGNvbnN1bWVk IGVmZmVjdGl2ZW5lc3M= Licn IHBhdGhz b25kYQ== TEE= IFN0cm9uZw== IGVuYWJsZXM= IGVzY2FwZWQ= ICIi IDExMg== IDE5ODM= IHNtaWxlZA== IHRlbmRlbmN5 RmlyZQ== IHBhcnM= IFJvYw== IGxha2U= IGZpdG5lc3M= IEF0aA== IEhvcm4= IGhpZXI= IGltcG9zZQ== bW90aGVy IHBlbnNpb24= aWN1dA== Ym9ybmU= aWNpYXJ5 Ll8= IFNV IHBvbGFy aXN5 ZW5ndQ== aXRpYWxpemVk QVRB d3JpdGU= IGV4ZXJjaXNlcw== IERpYW1vbmQ= b3R5cGVz IGhhcm1mdWw= b256 IHByaW50aW5n c3Rvcnk= IGV4cGVydGlzZQ== IEdlcg== IHRyYWdlZHk= IEZseQ== IGRpdmlk YW1waXJl c3RvY2s= TWVt IHJlaWdu IHVudmU= IGFtZW5k IFByb3BoZXQ= IG11dHVhbA== IEZhYw== IHJlcGxhY2luZw== SGFy IENpcmN1aXQ= IHRocm9hdA== IFNob3Q= IGJhdHRlcmllcw== IHRvbGw= IGFkZHJlc3Npbmc= IE1lZGljYWlk IHB1cHA= IE5hcg== b2xr IGVxdWl0eQ== TVI= IEhpc3Bhbg== IExhcmdl bWlk RGV2 IGV4cGVk IGRlbW8= IE1hcnNoYWxs ZXJndXM= IGZpYmVy IGRpdm9yY2U= IENyZWF0ZQ== IHNsb3dlcg== IFBhcmtlcg== IFN0dWRlbnQ= IFRyYWluaW5n UmV0dXJu IFRydQ== IGN1Yg== IFJlYWNoZWQ= IHBhbmlj IHF1YXJ0ZXJz IHJlY3Q= IHRyZWF0aW5n IHJhdHM= IENocmlzdGlhbml0eQ== b2xlcg== IHNhY3JlZA== IGRlY2xhcmU= dWxhdGl2ZQ== ZXRpbmc= IGRlbGl2ZXJpbmc= ZXN0b25l IHRlbA== IExhcnJ5 IG1ldGE= YWNjZXB0 YXJ0eg== IFJvZ2Vy aGFuZGVk IGhlYWRlcg== IHRyYXBwZWQ= IENlbnR1cnk= IGtub2NrZWQ= IE94Zm9yZA== IHN1cnZpdm9ycw== Ym90 IGRlbW9uc3RyYXRpb24= IGRpcnQ= IGFzc2lzdHM= T01F IERyYWZ0 b3J0dW5hdGU= Zm9saW8= cGVyZWQ= dXN0ZXJz Z3Q= IExvY2s= IGp1ZGljaWFs dmVydGVk IHNlY3VyZWQ= b3V0aW5n IEJvb2tz IGhvc3Rpbmc= IGxpZnRlZA== bGVuZ3Ro IGplcg== IHdoZWVscw== IFJhbmdl dW1ibmFpbHM= IGRpYWdub3Npcw== dGVjaA== IFN0ZXdhcnQ= IFByYWN0 IG5hdGlvbndpZGU= IGRlYXI= IG9ibGlnYXRpb25z IGdyb3dz IG1hbmRhdG9yeQ== IHN1c3BpY2lvdXM= ISc= QXBy R3JlYXQ= IG1vcnRnYWdl IHByb3NlY3V0b3I= IGVkaXRvcmlhbA== IEty IHByb2Nlc3NlZA== dW5nbGU= IGZsZXhpYmlsaXR5 RWFybGllcg== IENhcnQ= IFN1Zw== IGZvY3VzZXM= IHN0YXJ0dXA= IGJyZWFjaA== IFRvYg== Y3ljbGU= 44CM cm9zZQ== IGJpemFycmU= 44CN IHZlZ2V0YWJsZXM= JCQ= IHJldHJlYXQ= b3NoaQ== IFNob3A= IEdyb3VuZA== IFN0b3A= IEhhd2FpaQ== IEF5 UGVyaGFwcw== IEJlYXV0 dWZmZXI= ZW5uYQ== IHByb2R1Y3Rpdml0eQ== Rml4ZWQ= Y29udHJvbA== IGFic2VudA== IENhbXBhaWdu R3JlZW4= IGlkZW50aWZ5aW5n IHJlZ3JldA== IHByb21vdGVk IFNldmVu IGVydQ== bmVhdGg= YXVnaGVk IFBpbg== IExpdmluZw== Q29zdA== b21hdGlj bWVnYQ== IE5pZw== b2N5 IGluYm94 IGVtcGlyZQ== IGhvcml6b250 IGJyYW5jaGVz IG1ldGFwaA== QWN0aXZl ZWRp IEZpbG0= IFNvbWV0aGluZw== IG1vZHM= aW5jaWFs IE9yaWdpbmFs R2Vu IHNwaXJpdHM= IGVhcm5pbmc= SGlzdA== IHJpZGVycw== IHNhY3JpZmlj TVQ= IFZB IFNhbHQ= IG9jY3VwYXRpb24= IE1p IGRpc2c= bGljdA== IG5pdA== IG5vZGVz ZWVt IFBpZXI= IGhhdHJlZA== cHN5 44OJ IHRoZWF0ZXI= IHNvcGhpc3RpY2F0ZWQ= IGRlZmVuZGVk IGJlc2lkZXM= IHRob3JvdWdobHk= IE1lZGljYXJl IGJsYW1lZA== YXJlbnRseQ== IGNyeWluZw== Rk9S cHJpdg== IHNpbmdpbmc= IEls IGN1dGU= b2lkZWQ= b2xpdGljYWw= IE5ldXJv 5aQ= IGRvbmF0aW9u IEVhZ2xlcw== IEdpdmU= VG9t IHN1YnN0YW50aWFsbHk= IExpY2Vuc2U= IEph IGdyZXk= IEFuaW1hbA== IEVS IFVuZA== IGtlZW4= IGNvbmNsdWRl IE1pc3Npc3NpcHBp RW5naW5l IFN0dWRpb3M= UHJlc3M= b3ZlcnM= bGxlcnM= IDM1MA== IFJhbmdlcnM= IHJvdQ== ZXJ0bw== RXA= aXNzYQ== aXZhbg== IHNlYWw= IFJlZ2lzdA== ZGlzcGxheQ== IHdlYWtlbg== dXVt IENvbW1vbnM= IFNheQ== IGN1bHR1cmVz IGxhdWdoZWQ= IHNsaXA= IHRyZWF0bWVudHM= aXphYmxl bWFydA== IFJpY2U= IGJlYXN0 IG9iZXNpdHk= IExhdXJl aWdh V2hpY2g= aG9sZGVy IGVsZGVybHk= IHBheXM= IGNvbXBsYWluZWQ= IGNyb3A= IHByb2M= IGV4cGxvc2l2ZQ== IEZhbg== IEFyc2VuYWw= QXV0aG9y ZWZ1bA== IG1lYWxz ICgt aWRheXM= IGltYWdpbmF0aW9u IGFubnVhbGx5 IG1z YXN1cmVz SGVhZA== aWto bWF0aWM= IGJveWZyaWVuZA== IENvbXB1dGVy IGJ1bXA= IHN1cmdl IENyYWln IEtpcms= RGVs bWVkaWF0ZQ== IHNjZW5hcmlvcw== IE11dA== IFN0cmVhbQ== IGNvbXBldGl0b3Jz 2YQ= IFN0YW5mb3Jk IFJlc291cmNlcw== YXplZA== YmFnZQ== IG9yZ2FuaXM= IFJlbGVhc2U= IHNlcGFyYXRlbHk= IGhhYml0cw== IG1lYXN1cmVtZW50cw== IENsb3Nl IGFjY29tcGFueQ== IGdseQ== IHRhbmc= IFJvdQ== IHBsdWdpbg== IGNvbnZleQ== IENoYWxsZW5nZQ== b290cw== amFu IGN1cnM= IFJlbGF0aW9ucw== a2VlcGVy IGFwcHJvYWNoaW5n cGluZw== U3BlYWtpbmc= IGFycmFuZ2VtZW50 IFZJ YXJldHRlcw== IGFmZmVjdGluZw== IHBlcm1pdHM= YmVjYXVzZQ== IHVzZWxlc3M= IEh1cw== ISEhIQ== IGRlc3Ryb3lpbmc= VW5mb3J0dW5hdGVseQ== IGZhc2NpbmF0aW5n U2Vt IGVsZWN0b3JhbA== IHRyYW5zcGFyZW5jeQ== IENoYW9z IHZvbHVudGVlcg== IHN0YXRpc3RpY2Fs IGFjdGl2YXRlZA== cm94 V2Vi SEU= IEhhbXBzaGlyZQ== aXNpdmU= TWFw IHRyYXNo IExhd3JlbmNl c3RpY2s= Q3I= IHJpbmdz RVhU IG9wZXJhdGlvbmFs b3Blcw== RG9lcw== IEV2YW5z IHdpdG5lc3NlZA== UG9ydA== IGxhdW5jaGluZw== ZWNvbm9t d2Vhcg== IFBhcnRpY2lw dW1t Y3VsZXM= IFJBTQ== IFR1bg== IGFzc3VyZWQ= IGJpbmFyeQ== IGJldHJheQ== IGV4cGxvcmF0aW9u IEZlbA== IGFkbWlzc2lvbg== aXRhdGVk U3k= IGF2b2lkZWQ= IFNpbXVsYXRvcg== IGNlbGVicmF0ZWQ= IEVsZWN0cmlj pZ4= IGNsdXN0ZXI= aXR6ZXJsYW5k aGVhbHRo TGluZQ== IE5hc2g= YXRvbg== IHNwYXJl IGVudGVycHJpc2U= IERJUw== Y2x1ZGVz IGZsaWdodHM= IHJlZ2FyZHM= IMOX aGFsZg== IHRydWNrcw== IGNvbnRhY3Rz IHVuY29ucw== IENsaW1hdGU= IGltbWVuc2U= TkVX b2Nj ZWN0aXZl IGVtYm9k IHBhdHJvbA== IGJlc2lkZQ== IHZpYWJsZQ== IGNyZWVw IHRyaWdnZXJlZA== dmVybmluZw== IGNvbXBhcmFibGU= cWw= IGdhaW5pbmc= YXNzZXM= ICgpOw== IEdyZXk= IE1MUw== c2l6ZWQ= IHByb3NwZXI= Ij8= IHBvbGxpbmc= IHNoYXI= IFJD IGZpcmVhcm0= b3JpZW50 IGZlbmNl IHZhcmlhdGlvbnM= Z2l2aW5n IFBp b3NwZWw= IHBsZWRnZQ== IGN1cmU= IHNweQ== IHZpb2xhdGVk IHJ1c2hlZA== IHN0cm9rZQ== IEJsb2c= c2Vscw== IEVj LCcn IHBhbGU= IENvbGxpbnM= dGVycm9y IENhbmFkaWFucw== IHR1bmU= IGxhYm9yYXRvcnk= IG5vbnM= dGFyaWFu IGRpc2FiaWxpdHk= IEdhbQ== IHNpbmdlcg== YWxn IFNlbmlvcg== IHRyYWRlZA== IFdhcnJpb3I= IGluZnJpbmc= IEZyYW5rbGlu IHN0cmFpbg== IFN3ZWRpc2g= IHNldmVudGg= IEJlbm4= IFRlbGw= IHN5bmRyb21l IHdvbmRlcmVk aWRlbg== KysrKw== aWdv IHB1cnBsZQ== IGpvdXJuYWxpc20= IHJlYmVs IGZ1 YmxvZw== IGludml0ZQ== cmVuY2llcw== IENvbnRhY3Q= SXNyYWVs IENvbnRlbnQ= IGNoZWVy IGJlZHJvb20= IEVuZ2luZWVyaW5n IFF1ZWVucw== IGR3ZWxs IFBsYXlTdGF0aW9u IERpbQ== IENvbG9u bHI= IG9wZXJhdGVz IG1vdGl2YXRpb24= VVNB YXN0ZXJlZA== Q29yZQ== IFRydXRo b2xv T1NF IE1lbW9yeQ== IHByZWRlYw== IGFuYXJjaA== IDE5MjA= IFlhbQ== w6g= Ymlk IGdyYXRlZnVs IGV4Y2l0ZW1lbnQ= IHRyZWFzdXJl IGxvbmdlc3Q= Y3RpdmU= IGRlc2VydmVz IHJlc2VydmVz IGNvcHM= IE90dGF3YQ== IEVneXB0aWFu YW5rZWQ= IGFydGlm IGh5cG90aGVzaXM= Oi8= IHB1cmNoYXNpbmc= IGxvdmVseQ== SFA= IGRpdmlkZQ== IHN0cmljdGx5 IHF1ZXN0aW9uaW5n IHRheHBheWVycw== IEpveQ== IHJvbGxz IEhlYXZ5 IHBvcnRz IG1hZ25ldGlj IGluZmxhbW0= IGJydXNo dGljcw== 4oiS IGJvdHRsZXM= cHB5 IHBhZGQ= 44Kv bWlsbGlvbg== IGRldmFzdGF0aW5n IGNvbXBpbGVk IG1lZGljYXRpb24= IHR3ZWx2ZQ== IFBlcnJ5 U3BhY2U= aW1i eW91cg== IGxlYWtlZA== IFRhcg== IHVuaXR5 IGluZmVjdGVk IHRyYXZlbGVk SURF IE1jRG9uYWxk dHh0 IFByaW5j IGludGVydmVu IFRhaXdhbg== IFBvdw== IGJlYXJpbmc= IFRocmVhZA== IHpvbmVz aXphcmRz dW5rcw== Q2hhcHRlcg== bGxvcg== IMK3 IHdvdW5kcw== IGRpc2NyZXRpb24= IHN1Y2NlZWRlZA== aWtpbmc= IGljb25pYw== Q2FsbA== IHNjcmVlbmluZw== IE1pcw== aWN0cw== IG1pbmlzdGVycw== IHNlcGFyYXRpb24= UGxheWVy IGJpcA== IGJlbG92ZWQ= IGNvdW50aW5n IEV5ZQ== YXJvdW5k aW5naW5n IHRhYmxldA== IG9mZmVuY2U= aW5hbmNl aGF2ZQ== IEluZm8= IE5pbmph IHByb3RlY3RpdmU= IENhc3M= TWFj IFF1YWxpdHk= Tm9ydGg= IGlj IEN1YmE= IENocm9uaWNsZQ== IFByb3BlcnR5 IGZhc3Rlc3Q= b3Rvcw== IEdlcm0= T1dO IGJvb20= IFN0YW5sZXk= ZXJndXNvbg== IGNsZXZlcg== IGVudGVycw== bW9kZQ== dGVyaW9y IFNlbnM= IGxpbmVhcg== QVJL IGNvbXBhcmluZw== IHB1cmVseQ== IHNhZmVy IFBvdHRlcg== IGN1cHM= UlQ= IGdsdWM= IGF0dHJpYnV0ZWQ= IGR1cGw= IFBhcA== IHByZWNpb3Vz IHBh aWN0aW9uYXJ5 IFRpZw== IFRvbw== b2x1dGlvbnM= c3Rhbg== IHJvYm90cw== IGxvYmI= IHN0YXR1dGU= IHByZXZlbnRpb24= d2VzdGVybg== MTYw IEFjdGl2ZQ== IE1hcmlh aGFs Tm9uZQ== ZWxsYXI= IEtC IFBhcnRuZXJz IFNpbmdsZQ== IEZvbGxvd2luZw== YW5nbw== YWNpb3Vz IHRob3U= IGtn IGluZmx1ZW50aWFs IEZyaWVuZHM= U3Vy YWludGVk IGZvcnVtcw== IHN0YXJ0ZXI= IGNpdGl6ZW5zaGlw IEVsZWN0aW9u b25nZQ== b3RhdGlvbg== b3NwaA== Ozs7Ow== dXRpY2Fs cHVy ZXJlbg== IGFjY3VzYXRpb25z Yml0aW91cw== YWJiaXQ= IE9yZA== UG9zdGVk aXJr IHNlbnNpdGl2aXR5 aWNoZQ== IEFteQ== IEZhYg== IHN1bW1pdA== IHBlZGVzdA== IHJ1YmJlcg== IGFncmljdWx0dXJhbA== IGNhbmNlbA== QUU= IGluYXVn IGNvbnRhbQ== IGZpcm1seQ== aXc= c3RhZ2U= IEthbg== IHRpZXI= IGludmVudGlvbg== IHRyYW5zbGF0ZWQ= IFJ1bGVz Qm94 VHdpdHRlcg== SURT IHBpenph IGRlYnVn IERyb3A= dnM= IGhvcnNlcw== Ymln IGJvcmluZw== IGhvb2Q= IE1jQ2Fpbg== YXRjaGVk IEJyb3M= IHNraXA= IGVzc2F5 c3RhdA== IExlZ2VuZHM= IGFtbXVuaXRpb24= YXVj IHNob290ZXI= IHVuaA== IHN1cHBsaWVk IGdlbmVyaWM= IFNL aWJhbg== eXJpY3M= IDI1NQ== IGNsaW1iaW5n Rm9ybWVy IGZsaXA= IGp1bXBpbmc= IGZydXN0cmF0aW9u IFRlcnJ5 IG5laWdoYm9yaG9vZHM= IG1lZGlhbg== YmVhbg== IGJyYWlucw== Rm9sbG93aW5n IHNoYXBlZA== IGRyYXdz IGFsdGVyZWQ= SmFjaw== IHJlY2lwZXM= IHNraWxsZWQ= d2VhbHRo YWNoaQ== ZWxlY3Rpb24= IGJlaGF2aW9ycw== ZGVhbHM= IFVudGls RmU= IGRlY2xhcmF0aW9u bWFya3M= IEJldHdlZW4= Y2Vsb25h IHJlc29u IGJ1YmJsZQ== QW1vbmc= IGltcGVyaWFs R1M= IGZlbWluaXN0 MjAwNQ== IEt5bGU= IGFjY291bnRpbmc= IFRlbGU= IFR5cg== IGNvbm5lY3Rpbmc= IHJlaGFi IFByZWQ= c2lt IG1lYW50aW1l IHBoeXNpY2lhbg== TVc= IENhbXBiZWxs IEJyYW5kb24= IGNvbnRyaWJ1dGluZw== IFJ1bGU= IFdlaWdodA== IE5hcA== IGludGVyYWN0aXZl IHZhZw== IGhlbG1ldA== IENvbWI= Zm91cg== IHNoaXBwZWQ= IGNvbXBsZXRpbmc= IFBE UERBVEU= IHNwcmVhZGluZw== IHNjYXJ5 ZXJ2aW5n IEdhcw== IGZyYW5r c2Nob29s IHJvbWFudGlj IHN0YWJpbA== Um9i IGFjY3VyYXRlbHk= IGFjdXRl IEhhbm4= IHN5bWJvbHM= IGNpdmlsaXphdGlvbg== IEFX IGxpZ2h0bmluZw== IGNvbnNpZGVycw== IHZlbnVl INc= IG92ZW4= IFNG aGlz IG51 IExlYXJu IHBlb3BsZXM= IHN0ZA== IHNsZWU= IHNsaWM= IFN0YXRpc3RpY3M= IGNvcm5lcnM= IEJha2Vy IDop bWVudGF0aW9u b2x2ZXI= IGxhdWdoaW5n IFRvZGQ= b25kZQ== IEhpbGxz IG51dHM= IFdvbWFu cGxhbmU= IGxpdmVy IEluc2lkZQ== U29ycnk= IGFncmVlcw== IGZ1bmRhbWVudA== IEZpc2hlcg== IGF1Y3Rpb24= IHRocmVhZHM= Z2xhcw== IEJhc2lj IE5hdA== IGxhY2tpbmc= IGNlbGVicmF0aW9u anU= IHNpbGx5 RXVybw== IHRhdHQ= aWdodHk= Y29udHJvbGxlZA== VGVzdA== IFNpbmdo IHJhZ2U= IHJoeXRo b2ZmaWM= IFBoYW50b20= IGhlYWRsaW5lcw== IHJlc3BvbmRpbmc= IE1vcm5pbmc= IHZpdGFtaW4= IGJvb3Rz IFNpdGU= YWxpbg== cGk= IHZpcmFs IFVD REVS IFNleA== IHN0b2Nrcw== Y3VycmVudA== IGNodXJjaGVz IFJhcmU= IE11cnBoeQ== IGRlbmlhbA== IEdhbWluZw== IHRvdWc= IG5pY2s= IG1ha2Vycw== IFJvbmFsZA== IGdlbmVyb3Vz IERvYw== IE1vcnJpcw== IHRyYW5zZm9ybWVk IE5vcm1hbA== IDEwNA== IEtpY2tzdGFydGVy IFVwb24= T25saW5l IElSUw== IHdyYXA= IGxvdmluZw== IGFycml2ZXM= IER1ZQ== IGhldGVy IE1hZGU= IHJlbnRhbA== IGJlbG9uZ3M= IGF0dG9ybmV5cw== IGNyb3Bz IG1hdGNoZWQ= dWx1bQ== b2xpbmU= MTA5 IGRpc3Bhcg== IGJ1eWVycw== IENhbWJyaWRnZQ== IGV0aGljcw== cm91cHM= IGp1c3RpZmllZA== IG1hcmdpbmFs IHJlc3BlY3RlZA== d2lubmluZw== IG5vZGRlZA== IFNlcmdl IEZvcm1lcg== Q3JhZnQ= IyMjIyMjIyMjIyMjIyMjIw== IFdhcm5lcg== IGRhc2g= ZXRl IGVudGVydA== IEVzY2FwZQ== b3V0aGVhc3Q= IGtuZWVz IEJvbWI= IHJ1Zw== UGFzcw== IGF0dGl0dWRlcw== Z292ZXJubWVudA== IFByaW9y IHF1YWxpdGllcw== IG5vdGlmaWNhdGlvbg== IFBob25l bGll IGFudGljaXBhdGVk IENvbWJhdA== IEJhcnJ5 IDE5ODI= VXNlcnM= b25lcg== IGNvbXB1dGluZw== IENvbm5lY3RpY3V0 IGxlc3Nlcg== IHBlZXJz IEN1 IHRlY2huaWNhbGx5 IHN1Ym1pc3Npb24= IFVuaXZlcnNhbA== IG1hbnVhbGx5 b3VyZ2U= IHJlc3BvbmRlbnRz IEJUQw== IEhvc3Q= IGZhcmU= IEJpcmQ= IHJlY2VpcHQ= YWxzbw== IGphY2s= IGFncmljdWx0dXJl IHNrdWxs ICE9 IHBhc3NpdmU= IENJ IHNvY2lldGllcw== IHJlbWluZGVk IGludGVyZmVyZW5jZQ== QnV5 IOKc Z29u IHNjcnV0aW55 IFdpdGNo IGNvbmR1Y3Rpbmc= IOOD IGV4Y2hhbmdlcw== IE1pdGNoZWxs IGluaGFiaXQ= IHR3aXN0 QkQ= IHdoZXJldmVy Z3JvdXBvbg== IGpva2Vz IEJlbmphbWlu IFJhbmRvbQ== ZnJhbWU= IExpb25z IGhpZ2hsaWdodGVk IEFya2Fuc2Fz RW50 IHBpbGU= IHByZWxpbQ== Z3M= bWluZGVk IGZlbG9ueQ== IEdB IEx1Y2s= IHByYWN0aWNhbGx5 IEJvcw== IGFjdHJlc3M= RGFt IEJvdQ== IHZpc2E= IGVtYmVkZGVk IGh5YnJpZA== IGVhcmxpZXN0 IHNvb25lcg== c29jaWFs IEhB IHN0ZWVw IGRpc2FkdmFudA== IGV4cGxvaXQ= IEVnZw== IFVsdHJh IG5lY2Vzc2l0eQ== TG9jYWw= aWVnZQ== IGRhdGVk IG1hc3Nlcw== IHN1YnNjcmlwdGlvbg== cGxlc3M= IGFub255bQ== IHByZXN1bWFibHk= Qmx1ZQ== VGhlaXI= YXNrZXRiYWxs IFBoaWxpcA== IGNvbWVk bG9hZGVk cmFuZQ== IHJlZmxlY3Rpb24= Q2hpbmE= IGV4dGVuZHM= IGZvcm1pbmc= IHVuZGVycw== MjAwMQ== IGdyYXQ= IGNvbmNlbnRyYXRpb25z IGluc3VsaW4= IHNlY3VsYXI= IHdoaWxzdA== IHdpbm5lcnM= QWR2ZXJ0aXNlbWVudHM= IGRlbGliZXJhdGVseQ== IFdvcmtpbmc= IHNpbms= ZXRpY3M= ZGFsZQ== IG1hbmRhdGU= IGdyYW0= IHZhY2F0aW9u IHdhcm5pbmdz cmlwcA== IFRIQVQ= IGNvbW1lbnRhcnk= IGludHU= IGFlc3Q= IHJlYXNvbmluZw== IGJyZWFrZG93bg== IFpvbWJpZQ== IC0tPg== IFBvbGl0aWNhbA== Y290dA== IHRocnVzdA== IHRlY2hub2xvZ2ljYWw= IGRlY2lkaW5n IHRyYWZmaWNraW5n TG9uZw== V2VsY29tZQ== cHJpc2luZw== IENvbW11bmljYXRpb25z IGVuZG9ycw== IHN3aWZ0 IG1ldGFib2w= Y29pbnM= cmVzYQ== IEhUVFA= IGVucm9sbA== IEhhcHB5 dXNy aW50YWdl IFsi dWFibHk= IE1hdGVyaWFs IHJlcGVhbA== U2VwdA== a2g= IE1vZGk= IHVuZGVybmVhdGg= IElM c2hvcmU= IGRpYWdub3NlZA== YWNldXRpY2Fs IHNob3dlcg== YXV4 IFN3aXRjaA== IFN0cmVuZ3Ro IGppaGFk bmF0aW9uYWw= IHRyYXVtYQ== dXNzeQ== b25p IGNvbnNvbGlk IGNhbG9yaWVz IEZseW5u YWdnZWQ= MTY4 IFBpbms= IGZ1bGZpbGw= IGNoYWlucw== IG5vdGFibHk= IEFW TGlmZQ== IENodWNr bXVz IFVyYmFu IEhlbmQ= IGRlcG9zaXQ= IFNhZA== IGFmZmFpcg== T1JL aWV2YWw= IEZEQQ== IHRyb3A= IE92ZXJhbGw= IHZpcnR1ZQ== IHNhdGlzZmFjdGlvbg== YXVuZA== IGx1bg== IFN3aXR6ZXJsYW5k IE9wZXJhdGlvbg== cHJvY2Vzcw== IHNob29r IGNvdW50aWVz bGVhc2Vk IENoYXJsb3R0ZQ== MTEy IHRyYW5zY3JpcHQ= IHJlZGQ= cHVzaA== IEhleQ== IEFuYWx5c2lz WyI= IGFsdGVybmF0aXZlcw== YXJkbGVzcw== IGVsZXBo IHByZWp1ZA== IExlYWY= SGF2aW5n IEh1Yg== IGV4cHJlc3Npb25z IFZvbHVtZQ== IHNob2NraW5n IFJlZHM= IHJlYWRpbHk= IHBsYW5ldHM= YWRhdGE= IGNvbGxhcHNlZA== IE1hZHJpZA== IGlycml0 aXBwZXI= IEVuYw== IFdpcmU= IGJ1eno= IEdQ YXNoYQ== IGFjY2lkZW50YWxseQ== dXJ1 IGZydXN0cmF0ZWQ= IFNB IGh1bmdyeQ== IEh1ZmY= IGxhYmVscw== YW50bw== IEVQ IGJhcnJpZXJz KXw= IEJlcmtlbGV5 IEpldHM= IHBhaXJz IExhbg== SmFtZXM= IEJlYXI= IGh1bW9y IExpYmVydHk= IG1hZ25pdHVkZQ== IGFnaW5n IE1hc29u IGZyaWVuZHNoaXA= dW1ibGluZw== IGVtZXJnZQ== IG5ld3NwYXBlcnM= IGFtYml0aW91cw== IFJpY2hhcmRz YXRlcm5hbA== IDE5ODE= IGNvb2tpZXM= IHNjdWxwdA== IHB1cnN1aXQ= TG9jYXRpb24= IHNjcmlwdHM= cGM= IGFycmFuZ2VtZW50cw== IGRpYW1ldGVy IGxvc2Vz YW1hdGlvbg== IGxpcXU= IEpha2U= YXJldHRl IHVuZGVyc3RhbmRz IFplbg== dm0= IGFwcHJvdmU= IHdpcA== IHVsdHJh IGludGVuZA== IERJ YXNjdWxhcg== IHN0YXlz IEtvcg== IEts IGludmVzdGluZw== TGE= IGJlbGlldmluZw== YmFk bW91dGg= IHRheHBheWVy 44OD IFF1ZWJlYw== IGxhcA== IFN3aXNz ZHJvcA== IGRyYWlu aXJp ZXRj ZnRlbg== IE5leA== IHN0cmF3 IHNjcmVhbWluZw== IGNvdW50ZWQ= IGRhbWFnaW5n IGFtYmFzc2Fkb3I= Y2VudHVyeQ== IHByb3g= IGFycmVzdHM= dXY= aWxhdGVyYWw= IENoYXJn IHByZXNjcmliZWQ= IGluZGVwZW5kZW50bHk= IGZpZXJjZQ== IEJhYnk= IGJyYXZl IHN1aXRz PT4= IGJhc2VsaW5l IFJhdGU= IGlzbGFuZHM= ICgo Z3JlZW4= aXhlbHM= IG5hbWVseQ== IFZpbGxhZ2U= dGhhbg== YW15 VmVyc2lvbg== Z21haWw= ZW50aWFscw== IFN1ZA== IE1lbGJvdXJuZQ== IGFycml2aW5n IHF1YW50dW0= ZWZm cm9wb2xpdGFu VHJp IGZ1bmVyYWw= IElS w4PDgsODw4LDg8OCw4PDgsODw4LDg8OCw4PDgsODw4I= IENvYg== aXRhYmx5 IHR1cmI= IGNvbWJv UmV2aWV3 IGRlcGxveW1lbnQ= dWl0eQ== IEJvdHQ= IGludmlzaWJsZQ== IHJlbmRlcmluZw== IHVubG9ja2Vk IGFxdQ== IFZsYWRpbWly IHBhZA== IEJyYWlu IExlZ2FjeQ== ZHJhZ29u IEt1cmRpc2g= IHNvdW5kZWQ= IGRldGFpbmVk IERN Z2FyeQ== IGRhdWdodGVycw== IGRpc3R1cmJpbmc= dWth IFBhcmFk IHRhc3Q= IHVuZm9ydHVuYXRl IHVs ZW1pbg== IGF0dGVuZGFuY2U= dHJs IHBhcmtz IE1lbW9yaWFs IEFsaWNl b3RoeQ== Z3VhcmQ= IERpc2U= IFNoYW4= IEZvcnVt UmljaA== IHNoaWZ0ZWQ= dWV6 IGxpZ2h0ZXI= IE1hZ24= IGNvZA== U2No aGFtbWFk UHVi MzUw IFBva2Vtb24= IHByb3RvdHlwZQ== IHVucmU= QmFzZQ== IFN0dWRlbnRz IFJlcGx5 IENvbW11bmlzdA== IGdhdQ== IFR5bGVy SVo= IHBhcnRpY2lwYXRlZA== IHN1cHJlbQ== IERldGFpbHM= IHZlc3NlbHM= cm9k IHRyaWJl a2VlcA== IGFzc3VtcHRpb25z IHBvdW5k IGNydWRl IEF2YWlsYWJsZQ== IHN3aW1taW5n IGluY2x1c2lvbg== IGFkdmFuY2Vz Y3VsYXRpb24= IGNvbnNlcnZhdGlvbg== IG92ZXJk IEJ1ZmZhbG8= QXJ0aWNsZQ== ZWRnZQ== IGF3YQ== IE1hZGlzb24= IHNpZGV3 IGNhdGFzdA== IEtyaXN0 dWNsZQ== IEhpZ2h3YXk= IFRlcnJvcg== IGFjdGl2YXRpb24= IHVuY29uc2Npb3Vz IFNhdGFu IFN1c2Fu aWxsZXJ5 IGFycmFuZ2Vk aW9w IHJ1bW9ycw== dXJyaW5n dGhpbms= IEtlaXRo IEtpbmQ= IGF2b2lkaW5n Ynlu bnV0 IFNwZWFrZXI= cnVz bmFtZXM= IGd1aWx0 IE9seW1waWNz IHNhaWw= IE1lcw== bGV2YW50 IENvbHVtYnVz YWZ0 Q2l0eQ== U291dGg= IEhhcnZleQ== IFB1bg== U2V2ZXJhbA== IG1lbnRhbGx5 IGltcHJlc3M= bW91bnQ= IFVidW50dQ== 4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU IFN1cGVybWFu IE1Qcw== IGludGVudGlvbnM= IFJhY2luZw== IGxpa2VsaWhvb2Q= IDI0MA== VG90YWw= IHRveXM= IFdhdHNvbg== IHVyZ2U= TGVhcg== IFBhcGVy IG9jY3VycmluZw== IEJlbmc= IENlcnQ= IHN0b25lcw== VGlt IFR3aW4= emI= IER5bmFt IHBvbGl0aWNpYW4= a2Vucw== IEVudGVycHJpc2U= VVRFUlM= IGFib2w= IHJlZnJlc2g= IGFyYml0cmFyeQ== cGVjdGlvbg== IHRyb3VibGVz IH0pOw== dHY= IHBpbG90cw== IGRpc3RyaWJ1dGU= IGF1ZGl0 IHBhdXNl b3JpZ2luYWw= IHJpdmFscw== wqM= Rmln VEw= YWJpbA== cnlpbmc= TGlu aW9uZWQ= bG9u IGZhbmN5 IGNyYXNoZWQ= IHRyYWN0 IHNoZWQ= IGNvbnN1bWU= QmFzZWQ= ZG93bmxvYWQ= aW5pdA== IHZvbHRhZ2U= SW50cm9kdQ== IGNvbmRlbW5lZA== IEZpbmFuY2U= cmVzcGVjdA== IGV4Y2x1ZGVk IGVzdGFibGlzaGluZw== aGVyaWM= IGhlcml0YWdl IHNwZWN0YWN1bGFy IHVuc3Q= IFNub3dkZW4= IExhbmU= U2Fu IHByb3RlY3Rpb25z c3RydWN0aW9u aW5jaW5u IG1hY3Jv Q3VzdG9t aW9zaXR5 IGVzcA== IGZ1bmN0aW9uaW5n IG11c2g= IHB1enpsZQ== IGV0aGljYWw= TWFs IGdvdmVybmluZw== IEZlcmd1c29u IHJlc3RvcmVk IHN0cmVzc2Vk IENvdW50ZXI= IEthcw== Y2xpcA== QU5T IHNlaXo= VUs= Ynlzcw== b2xkb3du YXBp IHBlcm1hbmVudGx5 b3VudGVycw== V2VzdA== VGhyb3VnaA== TGlnaHQ= YXRvZXM= IG5lYXQ= IGNvcmQ= dXJlcg== IHNldmVyZWx5 IEF2ZW4= IGludGVycm9n IHRyaXBsZQ== R2l2ZW4= TnVtYmVy IGFyaXNl IHNoZXI= cGxhbnQ= IGZsb3dlcg== IENvdQ== IGF0ZQ== IG5ld2Vy YnVs IG1lYW53aGlsZQ== IExhaXI= IGFkanVzdG1lbnQ= IENvcHlyaWdodA== IGRpdmVycw== aW9sb2dpY2Fs IGdhbWVycw== b2F0 IGhpc3RvcmljYWxseQ== IGFuYWxvZw== IGxvbmd0aW1l IHByZXNjcmlwdGlvbg== IE1pc3Q= IEh5cGVy IE1haW5l IERlaXR5 IG11bHRpcGw= IFJlaW5jYXJu IEh5ZA== IFBpYw== U2ls cmFudHM= IENyaXM= Ljs= KHs= ZXBlbmRlbmNl IHJlY3k= YXRldXI= IHF1YWQ= IGdsb2I= IGNvbmNlZA== dGVhbQ== IGNhcGl0YWxpc3Q= IExvdA== IHJveWFs IEN5YmVy IGJsYWNrcw== bWV0aWM= cml2 IERhbm55 IHNwbw== IFJP IGFuaW1hdGVk cnlwdGVk IERlcHV0eQ== IHJlbmRlcmVk RkU= IHN0cmVhaw== IGNsb3Vkcw== IERvdWc= fn5+fn5+fn4= IGRpc2NvdXI= IFZlaA== IHBzeWNob2xvZ3k= IEpvdXJuZXk= IGNyeXN0YWw= IEZyb3N0 IHN1c3BpY2lvbg== IHJlbGF0ZQ== b3J1cw== IENyeXB0 IE5WSURJQQ== Y29tZWQ= dXRpbmc= aW5jaW5uYXRp IHZ1bG5lcmFiaWxpdHk= b3N0aWM= IGlzb2xhdGlvbg== IGNvb2xpbmc= IENvYWxpdGlvbg== IDExOQ== Rm91cg== IERlYWw= IOKJ c2VtYmxl cmFtZW50 IEJhcmNlbG9uYQ== IDEwMg== IGNvY2FpbmU= b2NhbHlwc2U= RmVi b2dlbmlj IG11dGF0aW9u IGNyeXB0b2M= IEtlbA== IEdpdA== YWlz IHNpc3RlcnM= QU5L IGFjdGl2YXRl VGVy IGRyZWFk eWxvbg== IHByb3ByaQ== QXVzdA== IERlZmF1bHQ= IG91dGRvb3I= IHNoZWVy Y2VpdmU= IGdlbnRseQ== 0L4= UHJvZ3JhbQ== IOKGkg== IHZlZ2Fu IENydXM= IHJlc3BvbnNpYmlsaXRpZXM= IEhS T0xE IHByZXZlbnRz IHN0aWZm IFdlcmU= IGF0aGxldGlj IFNjb3Jl ICk6 IGNvbHVtbnM= IExvYw== YXZhaWxhYmxl IEZyYW0= IFNlc3Npb25z IGNvbXBhbmlvbg== IHBhY2tz MTQw IEtuaWdodHM= IGZhcnQ= IHN0cmVhbXM= IHNob3Jl IGFwcGVhbHM= IFBlcmZvcm1hbmNl aGF1bA== IFN0cmE= IE5hZw== MTAz IFRyYW5zcG9ydGF0aW9u QkI= RXY= emFu UHVibGlj IHR3aW4= dWxzaW9u TXVsdA== IGVsZWN0cm8= IHN0YXR1ZQ== YXRpb25hbGx5 IE5vcnQ= IGluc3BlY3Rpb24= Lyo= aWd1ZQ== IGNvbXBhc3Npb24= IFRhbGVz IFN0ZWlu IFNjcmVlbg== IEJ1Zw== IExpb24= Z2lybA== IHdpdGhkcmF3YWw= IG9iamVjdGl2ZXM= IGJsb29keQ== IHByZWxpbWluYXJ5 IGphY2tldA== IGRpbWVuc2lvbnM= IENvb2w= IE9jY3Vw IHdyZWNr IGRvdWJsZWQ= YW5raW5n IDE5NzU= IGdsYXNzZXM= IFdhbmc= cHJvdg== UGF0aA== Y29ubmVjdGVk IE11bHRp IE5vcndheQ== YWdvbmlzdA== IGZlYXJlZA== IHRvdWNoaW5n IGFyZ3VhYmx5 wq/Cr8Kvwq/Cr8Kvwq/Crw== IE5DQUE= Y2hlbQ== IHNwYXQ= IFdXRQ== IENlbA== aWdnZXI= IGF0dGFja2Vy IEpvaW4= b2JqZWN0 ZXR0YQ== IGVsaW1pbmF0ZWQ= ZGV0 IGRlc3RydWN0 IEx1Y2Fz Y3R1YXJ5 MTgw IEJyYWR5 IEJsdWVz QmF5 YXVrZWU= IHRpbWVsaW5l IGRlbGVnYXRlcw== d3JpdHRlbg== dWZmaWNpZW50 IHNoYXBlcw== Q29weXJpZ2h0 b3VibGU= c2VydmljZQ== IHBpb25l IGNvbGxlZ2Vz IHJvd3M= IHNwaXRl IGFzc2Vzc2Vk MzYw IGxlYXNl IGNvbmZpZGVudGlhbA== Y2tlcg== IE1hbm5pbmc= IFZvaWNl IHNlYWxlZA== IGNhbGN1bGF0ZQ== Tk8= IEFzc2lzdGFudA== IHRlZW5hZ2Vy dWxlbnQ= YXRoZXJpbmU= IG1vY2s= IGRpYW1vbmQ= IGZlc3Q= IHN3aXRjaGVk IHJlc3VtZQ== IFB1ZXJ0bw== IGxhbmVz aXJhdGlvbg== IFNpbWlsYXJseQ== IHJvZA== IFNlbA== IFBhbGFjZQ== IExpbWl0ZWQ= ZW91cw== IHZhcmlhbnQ= IHdhcmQ= ICkp U2hvdw== T09L QWxleA== IE5lcA== YnJpcw== IFdpa2lwZWRpYQ== IGV4Y2VwdGlvbmFs IG1hbmFnZXM= IERyYXc= QWdhaW4= IGNvcHBlcg== dXR0 IGV4cG9ydHM= IHBvcnRmb2xpbw== IGVsZXZhdGVk UmF0ZWQ= IE90aGVyd2lzZQ== IFRhY3Q= IFNoZWw= IFRY IuKAlA== IHJlc3Vy IFdh dmVuYW50 IG1vbmV0YXJ5 cGVvcGxl RW1haWw= IGZpZnR5 IFN3ZWV0 IE1hbGF5c2lh IGNvbmZ1c2luZw== IFJpbw== dWRh dXRlbmFudA== Iik7 IHByYWlzZWQ= IHZvbHVtZXM= dHVybg== IG1hdHVyZQ== IG5vbnByb2ZpdA== IHBhc3Npb25hdGU= IFByaXZhdGU= IDEwMw== IGRlc2NlbmQ= 56We dWZmeQ== aGVhZGVk V2hldGhlcg== cmllbg== emVjaA== YmVpdA== IGNocm9t IE1jTQ== IGRhbmNpbmc= IGVsZWc= IE5vdGljZWQ= MTE1 IGFkdm9jYWN5 RU5UUw== YW1ibGluZw== IE1pbm9y IEZpbm4= IHByaW9yaXRpZXM= IHRoZXJlb2Y= IFN0YWdl IFJvZ2Vycw== IHN1YnN0aXR1dGU= IEphcg== IEplZmZlcnNvbg== IGxpZ2h0bHk= MTAy IExpc2E= dWl0cw== eXNpY2Fs IHNoaWZ0cw== IGRyb25lcw== IHdvcmtwbGFjZQ== IHJlc2lk ZW5zZWQ= YWhu IHByZWZlcmVuY2Vz c2VydmVy IGRlYmF0ZXM= ZG9j IEdvZHM= IGhlbGljb3B0ZXI= IGhvbm91cg== IGNvbnNpZGVyYWJseQ== ZWRlZA== IEZlbWFsZQ== IEFubmU= IHJldW4= IEZhY2U= IEhhbGxvdw== IEJ1ZGdldA== IGNvbmRlbW4= IHRlbmRlcg== UHJvZg== b2NyYXRpYw== IFR1cm5lcg== IEFncmlj IDE5NzY= IGFwdA== ZGlzYw== IEZpZ2h0ZXI= IEF1cg== IGdhcmJhZ2U= aW5wdXQ= IEthcmw= IE9saXZlcg== IExhbmd1YWdl a24= Tm9u IENsYXI= IHRyYWRpdGlvbnM= IGFkdmVydGlzZW1lbnQ= IFNvcg== IGFyY2hpdmU= IHZpbGxhZ2Vz NzUw IGltcGxlbWVudGluZw== d2F1a2Vl IGRpZXRhcnk= IHN3aXRjaGluZw== UmVwdWJsaWM= IHZlbG9jaXR5 IGNpdA== IEF3YXJkcw== IGZpbmFuY2luZw== IGxhc3RlZA== KV0= IHJlbWluZGVy UGVyc29u IHByZWNpc2lvbg== IGRlc2lnbmVycw== IEZyaWVk IEJvcmRlcg== IHRyYWdpYw== IHdpZWxk IGluaXRpYXRpdmVz IFRhbms= d2Vy IGpvaW5z Um8= aW5lcnk= IGFycm93 IGdlbmVyYXRpbmc= Zm91bmRlcg== IHNlYXJjaGVz IHJhbmRvbWx5 QWNjZXNz IGJhdGNo IHBvc2Vk bGF0 IHB1cnN1aW5n YXNh IHRlc3RpZmllZA== Zm9ybWluZw== IFNoYXI= d2lraQ== IEVpdGhlcg== U29tZXRpbWVz IHNlbmF0b3Jz IEpvaG5ueQ== IFRhbGliYW4= IEdQUw== IjoiLw== 44Gu5Q== IGFuYWx5emVk IFJ1Ymlv IE1vdmVtZW50 b3BhcmQ= aWlp U3RhbmQ= ZmlnaHQ= IGlnbm9yaW5n aWFuZw== IEdO c29ldmVy IFNUQVQ= IHJlZnVzaW5n IHN3ZWF0 IGJheQ== UE9SVA== aXJtZWQ= YWt5 IGRpc3Bybw== IGxhYmVsZWQ= IDEwOA== SGVsbG8= IHBsZWFzYW50 YWJh IHRyaXVtcGg= IGFib2FyZA== IGluY29t IENyb3c= bGV0dA== IGZvbGs= IGNoYXNl YGA= IEJydXM= IHRlZW5z Y3Vl IHRlcnJhaW4= aHlk aWxpZ2h0 T1JZ U3VwcG9ydA== ZXdz bGxp cmFpbnRz IENhbmQ= IGFidXNlZA== YWNobWVudA== bGFyZw== QmFz IENhbmNlcg== IDE5Nzg= IHN1cHBvcnRlcg== YWNjZXNz IFRlcm1pbg== IFRhbXBh IEFOWQ== IG5ld2VzdA== IENyaW1pbmFs ZWR1 IDE5MzA= IGFkbWl0cw== IGVuZGU= IGZhaWx1cmVz dXJhdGU= ZnVsbmVzcw== Y3ljbA== IFN1YmplY3Q= IGluZmluaXRl dGhyZWU= V0E= cGl0 IEluc3RhbGw= UmFk aWxpYXRpb24= R00= IGNvbnRpbmVudA== IGFjY29tbW9kYXRl IENsYXk= IHB1cA== IEZ1bmN0aW9u IGhhbW1lcg== IEFsYmVydGE= IHJldmlzZWQ= IG1pbm9yaXRpZXM= IG1lYXN1cmVtZW50 Q29ubmVsbA== IGRpc2FibGU= IE1peA== SW5jcmU= IGZvcms= IFJvc2Vu IGltcGxpZXM= dW1ibHI= QU5H IHByb3RlaW5z IGFnZ3Jlc3Npb24= IGZhY2lsaXRhdGU= U04= IGlsbGVnYWxseQ== dWVy IGFjYWRlbQ== IHB1eno= IFNoaWZ0 cGF5 b2xsbw== IGF1ZGllbmNlcw== QnVpbGQ= IG5vYmxl IHN5bnRheA== 4piF IGJlYW0= IEJlZA== IEFsZA== IG9yaWdpbnM= dmlkZW8= IDE5Nzc= IEFzc2F1bHQ= IGdhcmFnZQ== VGVhbQ== IHZlcmRpY3Q= IGR3YXI= IFZpcnR1YWw= ZXZlbnQ= S2VlcA== IHNlbnRpbWVudA== IHdpbGRsaWZl c2hpcnQ= IGJ1cmc= IHJlY29tbWVuZGF0aW9u cmVwcmVzZW50 IGdhbGxlcnk= b3duZXJz IHNjaG9sYXI= IGNvbnZlbmllbmNl IFN3aWZ0 IGNvbnZpbmM= Q2Fw IHdhcmZhcmU= IFZpc3VhbA== IGNvbnN0aXR1dGU= IGFib3J0 IFdlYXRoZXI= IExvb2tpbmc= IEhlbQ== IG1hcnRpYWw= IGluY29taW5n ZXRpdGlvbg== IHRvbGVyYW5jZQ== IENyZWF0ZWQ= IGZsb3dz IEVsZGVy IHNvdWxz IGZvdWw= IFBhaW4= IENBTg== IDIyMA== YmM= aGVuZA== IGdlbml1cw== UmVhbA== IFdy b21ldGVy cGFk IGxpbWl0aW5n IFNp IExvcmU= IEFkdmVudHVyZXM= IHZhcmllZA== RGlzYw== Zmlu IFBlcnNvbmFs Q2hyaXM= IGludmVudGVk IGRpdmU= IFJpc2U= IG96 IENvbWljcw== IGV4cG9zZQ== IFJlYg== bGV0dGVycw== c2l0ZQ== aW1hdGVk IGhhY2tpbmc= IGVkdWNhdGVk IE5vYm9keQ== IGRlcHJp IGluY2VudGl2ZQ== 44K3 IG92ZXJzaWdodA== IHRyaWJlcw== IEJlbGdpdW0= IGxpY2Vuc2luZw== b3VydA== UHJvZHVjdA== YWhs IEdlbQ== IHNwZWNpYWxpc3Q= IGNyYQ== YW5uZXJz IENvcmJ5bg== IDE5NzM= UkVBRA== IHN1bW1hcg== IG92ZXJsb29r IEFwcGxpY2F0aW9u IGluYXBwcm9wcmlhdGU= IGRvd25sb2FkZWQ= UXVl IEJlYXJz IHRodW1i IENoYXJhY3Rlcg== IFJlaW5jYXJuYXRlZA== IFNpZA== IGRlbW9uc3RyYXRlcw== c2t5 IEJsb29tYmVyZw== IEFycmF5 IFJlc3VsdHM= IEZvdXJ0aA== IEVEVA== IE9zY2Fy Y2VuZA== IDEwNg== IE5VTEw= IEhFUkU= bWF0Y2g= IEJydW4= IGdsdWNvc2U= aWVn ZWd1 IGNlcnRpZmllZA== IHJlbGll IGh1bWFuaXRhcmlhbg== IHByYXllcnM= S2luZw== IG5hbg== aG91 MTA4 dWx1 IHJlbmV3YWJsZQ== IGRpc3Rpbmd1aXNo IGRlbnNl IFZlbnQ= IFBhY2thZ2U= IEJvc3M= IGVkaXRvcnM= IG1pZ3I= VHJh IFBldGVycw== IEFyY3RpYw== MjAwNA== IENhcGU= IGxvY2FsbHk= IGxhc3Rpbmc= IGhhbmR5 Liku UGFu IFJFUw== SW5kZXg= IHRlbnNpb25z IGZvcm1lcmx5 IGlkZW9sb2dpY2Fs IHNlbnNvcnM= IGRlYWxlcnM= IGRlZmluZXM= U2s= IHByb2NlZWRz IHByb3h5 YXppbmVz IEJhc2g= IFBhZA== IENyYWZ0 ZWFsb3Vz IHNoZWV0cw== b21ldHJ5 SnVuZQ== Y2xvY2s= VFQ= IFRoZWF0cmU= IEJ1eno= IGNoYXB0ZXJz IG1pbGxlbm4= IGRvdWdo IENvbmdyZXNzaW9uYWw= IGltYWdpbmVk YXZpb3I= IGNsaW5pYw== IDE5NDU= IGhvbGRlcg== cm9vdA== b2xlc3Rlcg== IHJlc3RhcnQ= Qk4= IEhhbWFz IEpvYg== IG9yYg== IHJhbQ== IGRpc2Nsb3Nl IHRyYW5zbGF0ZQ== IGltbWlncmFudA== IGFubm95aW5n IHRyZWF0eQ== YW5pdW0= IFRlYQ== IExlZ2lvbg== IGNyb3dkcw== IEJlYw== IEFlcg== b2h5ZA== QnJv TG9va2luZw== IGxicw== IGFnZ3Jlc3M= IHNlYW0= IGludGVyY2VwdA== IE1J bWVyY2lhbA== YWN0aXY= IENpdA== IGRpbWVuc2lvbg== IGNvbnNpc3RlbmN5 IHJ1c2hpbmc= IERvdWdsYXM= IHRyaW0= SW5zdGFsbA== aWNrZXI= IHNoeQ== MTA2 IG1lbnRpb25z cGVsbGVk IFRhaw== Y29zdA== IGNsYXNzcm9vbQ== IGZvcnR1bmU= ZHJpdmVu IHVubGU= IFdoZWVs IGludmVzdG9y IE1hc3RlcnM= a2l0 IGFzc29jaWF0aW9ucw== IEV2b2x1dGlvbg== b3Bpbmc= dXNjcmlwdA== IHByb3ZpbmNpYWw= IFdhbHRlcg== YXZp U08= IHVubGltaXRlZA== RW5nbGlzaA== IENhcmRz IEVib2xh bmVyZWQ= IHJldmVuZ2U= IG91dHJpZ2h0 dW1wZXI= IGZpdHRpbmc= IFNvbGlk IGZvcm1hbGx5 IHByb2JsZW1hdGlj IGhhemFyZA== IGVuY3J5cHRpb24= IHN0cmFpZ2h0Zm9yd2FyZA== IEFL IHBzZQ== IE9yYg== IENoYW1iZXI= IE1haw== Q29udGVudHM= IGxveWFsdHk= IGx5cmljcw== IFN5bQ== IHdlbGNvbWVk IGNvb2tlZA== IG1vbm9w IG51cnNl IG1pc2xlYWRpbmc= IGV0ZXJuYWw= IHNoaWZ0aW5n ICs9 Vmlz IGluc3RpdHV0aW9uYWw= aWxsYXJ5 IHBhbnQ= VkVSVA== IEFDQw== IEVuaA== IGluY29u IFJFVVRFUlM= IGRvbmF0ZWQ= 4oCm4oCm4oCm4oCm SW50ZXJu IGV4aGliaXQ= IHRpcmU= IFJpYw== IENoYW1waW9u IE11aGFtbWFk TklORw== IFNvY2Nlcg== IG1vYmlsaXR5 IHZhcnlpbmc= IE1vdmll IGxvcmQ= b2Fr RmllbGQ= IHZlY3Rvcg== dXNpb25z IHNjcmFw IGVuYWJsaW5n bWFrZQ== VG9y Lio= fHw= IFdlYnNpdGU= IE5QQw== IHNvY2lhbGlzdA== IEJpbGx5 IEFkZGl0aW9uYWw= IGNhcmdv IGZhcm1z IFNvb24= IFByaXpl IG1pZG5pZ2h0 IDkwMA== c2Vlbg== IFNwb3Q= IHNoZWVw IHNwb25zb3JlZA== IEhp IEp1bXA= IDE5Njc= TWljcm9zb2Z0 IEFnZW50 IGNoYXJ0cw== ZGly IGFkamFjZW50 IHRyaWNrcw== IG1hbmdh IGV4YWdnZXI= Lz4= Zm9vdGJhbGw= IEZDQw== R0M= IFRpZXI= YW5kcmE= T1VORA== JSks IGZydWl0cw== VkM= IEFB Um9iZXI= IG1pZHN0 4pc= YW5rYQ== IGxlZ2lzbGF0dXJl IE5laWw= IHRvdXJpc3Rz IiI= IFdhcm5pbmc= IE5ldmVydGhlbGVzcw== IE9mZmljaWFs IFdoYXRldmVy IG1vbGQ= IGRyYWZ0ZWQ= IHN1YnN0YW5jZXM= IGJyZWVk IHRhZ3M= IFRhc2s= IHZlcmI= IG1hbnVmYWN0dXJlZA== Y29tbWVudHM= IFBvbGlzaA== UHJvdg== IGRldGVybWluZXM= T2JhbWE= a2Vycw== IHV0dGVybHk= IHNlY3Q= c2NoZQ== IEdhdGVz IENoYXA= IGFsdW1pbnVt IHpvbWJpZQ== IFRvdWNo IFVQ IHNhdGlzZnk= IHByZWRvbWlu YXNjcmlwdA== IGVsYWJvcmF0ZQ== IDE5Njg= IG1lYXN1cmluZw== IFZhcmk= YW55YWh1 IHNpcg== dWxhdGVz aWRnZXM= aWNrZXRz IFNwZW5jZXI= VE0= b3VidGVk IHByZXk= IGluc3RhbGxpbmc= IENhYg== cmVlZA== cmVhdGVk U3VwcA== IHdyaXN0 IEtlcnJ5 MTA3 IEtsZQ== IFJhY2hlbA== IGNvdHRvbg== IEFSRQ== IEVsZQ== Q29udHJvbA== IGxvYWRz IERvZA== YW5hcw== Ym9uZQ== IGNsYXNzaWNhbA== IFJlZ2lvbmFs IEludGVn Vk0= IGRlc2lyZXM= IGF1dGlzbQ== c3VwcG9ydGVk IE1lc3NhZ2U= IGNvbXBhY3Q= d3JpdGVy IDEwOQ== IEh1cnJpY2FuZQ== Y2lzaW9u IGN5Y2xlcw== IGRyaWxs IGNvbGxlYWd1ZQ== IG1ha2Vy R2VybWFu IG1pc3Rha2Vu U3Vu IEdheQ== IHdoYXRzb2V2ZXI= IHNlbGxz IEFpcmw= bGl2 IE9wdGlvbg== IHNvbHZlZA== IHNlY3RvcnM= IGhvcml6b250YWw= IGVxdWF0aW9u IFNraWxs IEJpbw== Z2VtZW50 IFNuYXA= IExlZ2Fs IHRyYWRlbWFyaw== IG1ha2V1cA== IGFzc2VtYmxlZA== IHNhdmVz IEhhbGxvd2Vlbg== IFZlcm1vbnQ= IEZST00= IGZhcm1pbmc= IFBvZGNhc3Q= YWNjZXB0YWJsZQ== IEhpZ2hlcg== IGFzbGVlcA== dWxsaXZhbg== IHJlZmVyZW4= IExldg== IGJ1bGxldHM= b2tv SEM= IHN0YWlycw== IG1haW50YWlucw== IExvd2Vy IFZp IG1hcmluZQ== IGFjcmVz IGNvb3JkaW5hdG9y IEpvaA== IGNvdW50ZXJwYXJ0cw== IEJyb3RoZXJz IGluZGljdA== YnJh IGNodW5r IGNlbnRz SG9tZQ== IE1vbnRo IGFjY29yZGluZ2x5 aWZsZXM= IEdlcm1hbnM= IFN5bg== SHVi IGV5ZWI= 4pSA4pSA4pSA4pSA IHJhbmdlcw== IEhvbGxhbmQ= IFJvYm90 ZmM= TWlrZQ== IHBsYXNtYQ== IHN3YXA= IGF0aGxldGU= IFJhbXM= LCci IGluZmVjdGlvbnM= IGNvcnJpZA== IHZpYg== IHBhdGNoZXM= IHRyYWRpdGlvbmFsbHk= IHJldmVsYXRpb24= IHN3ZWVw IGdsYW5jZQ== IGluZXg= MjAwMw== IFJhdw== d29ya2luZw== b3N1cmVz IERhdA== IEx5bmNo IGxldmVyYWdl IFJlaWQ= IGNvcnJlbGF0aW9u aWFuY2Vz YXZhc2NyaXB0 IHJlcG9zaXRvcnk= cmV0dHk= IDE5NzI= MjQw IG91bg== cG9s IFJlZWQ= IHRhY3RpY2Fs aXNpdGU= QXBwbGU= IFF1aW5u IHJhcGVk aWxsbw== RXVyb3Bl IGFsZ29yaXRobXM= IFJvZHJpZw== aXU= IGlsbHVt IGZhbWU= IGludHJvZHVjaW5n IGRlbGF5cw== IFJhaWRlcnM= IHdoaXN0bGU= IG5vdmVscw== IFJlYWxseQ== IGRlcml2 IHB1YmxpY2F0aW9ucw== IE5laXRoZXI= IENvbW1lcmNl IGFzdG9u bGFuZ3VhZ2U= Tm90ZXM= IFJvdGg= IEZlYXI= IG1hdGU= IHBhcmFkZQ== IFFC IG1hbmV1 IENpbmNpbm5hdGk= bWl0dGluZw== IHdhaXN0 IFJldw== IGRpc2NvbnQ= 0LA= IHN0YXJpbmc= IGFsaWFz IHNlY3VyaXRpZXM= IHRvaWxldA== IEplZGk= IHVubGF3 dmlzZWQ= Ly8vLy8vLy8= XSg= IFdlaXNz IHByZXN0 IENvbXBhbg== IG1lbW8= IEdyYWNl SnVseQ== IEVsaXRl Y2VudGVy IFN0YXk= IGdhbGF4eQ== IHRvb3Ro IFNldHRpbmdz IHN1YmplY3RlZA== 44Km IGxpbmViYWNr IHJldGFpbGVycw== IFdhbnQ= IGRhbmdlcnM= QWly IHZvbHVudGFyeQ== ZXdheQ== IGludGVycHJldGVk b3RpbmU= w6c= IHBlbA== U2VydmljZQ== IEV2ZW50dWFsbHk= IGNhcmVlcnM= IHRocmVhdGVu IG1lbW9y IEJyYWRsZXk= YW5jaWVz c24= IFVua25vd24= TmF0aW9uYWw= IHNoYWRvd3M= YWlsYW5k IERhc2g= RXZlcnlvbmU= aXp6YXJk TWFyY2g= PSg= IHB1bGxz IHN0cmFuZ2Vy IGJhY2t3YXJkcw== IEJlcm5hcmQ= aW1lbnNpb25hbA== IGNocm9u IHRoZW9yZXRpY2Fs a3RvcA== IHdhcmU= IEludmVzdGln IEluaXRp IE9wZXJhdGlvbnM= b3Zlbg== b2NpZGU= Ki8= IGZsYW1lcw== IENhc2g= c2hpdA== IGNhYg== IEFuYWx5 IFNlYWg= IGRlZmluaW5n IG9yZGVyaW5n IGltbXVu IHBlcnNpc3RlbnQ= QUNI UnVzc2lhbg== bWFucw== IGhpbmQ= IHBob3RvZ3JhcGh5 wqk= IGh1Zw== IDEwNw== IEhlbmNl aW90cw== dWRlYXU= IHN1YnNpZGllcw== IHJvdXRpbmVseQ== IERldmljZQ== aXRpYw== IGRpc2d1c3Q= bGFuZGVy IDE5NDA= IGFzc2lnbm1lbnQ= IEJlc2lkZXM= d2ljaw== IER1c3Q= dXNj c3RydWN0ZWQ= MTEx ZGV2ZWxvcA== IGZvbmQ= IGludGVyc2VjdGlvbg== IGRpZ25pdHk= IGNvbW1pc3Npb25lcg== V2l0aG91dA== cmVhY2g= IGNhcnRvb24= IHNjYWxlcw== 44Ot RklH IHN1cnZleXM= IEluZG9uZXNpYQ== IGFydHdvcms= IHVuY2g= IGN5Y2xpbmc= dW5jdA== YXVlcg== b3JhdGU= IE9idmlvdXNseQ== IGNoYXJhY3Rlcml6ZWQ= ZmVsZA== IGFmZmlybQ== IGlubmluZ3M= IOk= IGFsaWVucw== IGNsb3Ro ZXRvb3Ro IENlcnRhaW4= wqc= IGRpZ2VzdA== a25vdw== IFhM IHByZWRpY3Rpb25z IGRpbg== V0FS IGFmdGVybWF0aA== RXhhbXBsZQ== IFN1Y2Nlc3M= IFRocg== SUdO IG1pbmVy QnVz IGNsYXJpdHk= aGVpbWVy IE9VVA== IFNlbmQ= IENpcmNsZQ== IERpZXQ= IHByb25vdW5jZWQ= IGNyZWF0b3Jz IGVhcnRocXVha2U= YXR0ZXJ5 Z2VvbnM= IG9k IGxheWluZw== b3Jw VWx0 cHJvamVjdA== IHVuZGVybWlu IHNlcXVlbA== U2Ft IERhcmtuZXNz IHJlY2VwdGlvbg== YnVsbA== WVM= IFZpcg== IHNlcXVlbmNlcw== IENvaW4= IG91dGZpdA== IFdhaXQ= MTE5 IGRlbGl2ZXJz Li4uLi4u IGJsb3du IEVzYw== IE1hdGg= cGVybQ== IFVs IGdsaW0= IGZhY2lhbA== IGdyZWVuaG91c2U= IHRva2Vucw== Ly0= IEFubnVhbA== IE9ORQ== IHRlZW5hZ2U= IFBoeXNpY2Fs IExhbmc= IENlbHQ= IHN1ZWQ= aXZpZHVhbGx5 IHBhdGllbmNl Y2hhaXI= cmVndWxhcg== IGF1Zw== aW52 ZXhjZXB0 IExpbA== IG5lc3Q= ZmQ= c3Vt IENoYXNl UnVzc2lh IEplbm5pZmVy IG9mZnNlYXNvbg== T3ZlcmFsbA== Rm9yZQ== IHJpb3Q= QXVk Zm9ybWVy IGRlZmVuZGVycw== IENU aW90aWM= cmlibHk= IGF1dG9tYXRlZA== IHBlbmlz IGluc2lzdA== IGRpYWdyYW0= IFNRTA== IEdhcmM= IHdpdGNo Y2xpZW50 aWVycmE= YW1iZXJz IHJlY291bnQ= ZmFy VmVyeQ== b3N0ZXJvbmU= IGFwcHJlY2lhdGVk IFBlcmZlY3Q= U2VjdGlvbg== IGRvc2Vz b2NhdXN0 IGNvc3RseQ== IGdyYW1z IFNoaQ== IHdyZXN0bGluZw== IDE5NzE= IHRyb3BoeQ== IG5lcnZl IEtheg== IEV4cGVyaWVuY2U= IHBsZWRnZWQ= IHBsYXliYWNr IGNyZWF0aXZpdHk= Ynll IGF0dGFja2Vycw== IGhvbGRlcnM= IENvYWNo IFBoRA== IHRyYW5zZmVycw== IGNvbG9yZWQ= IEhpbmR1 IGRyb3du IGxpc3RlbmVk IFdB aWFzbQ== UE8= IGFwcGVhbGluZw== IGRpc2Nsb3NlZA== IENoaWNrZW4= YWdnaW5n IHBsZWFkZWQ= IG5hdmlnYXRpb24= IFJldHVybnM= IFtb Uk9S RUE= IHBob3RvZ3JhcGhlcg== IFJpZGVy aXBwZXJz IHNsaWNl IGVyZWN0 IGhlZA== aXNzYW5jZQ== IFZpa2luZ3M= dXJpb3Vz IGFwcGV0 b3VidGVkbHk= Q2hpbGQ= IGF1dGhlbnRpYw== b29z IE1ha2luZw== IGFubm91bmNpbmc= IGJvZA== IG1ldGVy IE5pbmU= IFJvZ3Vl IHdvcmtmb3JjZQ== IHJlbmV3ZWQ= IG9yZ2FuaXNhdGlvbnM= YWNz UExF U2hvcnQ= IGNvbXBvdW5kcw== IFZpc2l0 IGVudmVsb3A= ZWFydGg= IHN1cHBvcnRpdmU= Z2dsZQ== IEJydXNzZWxz IEd1aWxk Q3JlYXRl UkVM IGF2ZXJhZ2Vk IDE5Njk= cmlhZ2Vz IGxlbmd0aHk= IGZvcmdvdA== T2theQ== IEVyZA== IGRlYWxlcg== IHJlY2Vzc2lvbg== REQ= IGRlc3BlcmF0ZWx5 IGh1bmdlcg== IHN0aWNrcw== IG1waA== IEZhaXRo IGludGVudGlvbmFsbHk= IGRlbW9s dWVsbGVy IFNhbGU= IGRlYnJpcw== c3ByaW5n IGxlYXA= Pj4+Pg== IGNvbnRhaW5lcnM= c2VsbGluZw== cmFuZWFu YXR0ZXJpbmc= IGNvbW1lbnRlZA== IENN b251dA== IHdvb2Rz ZXNwZWNpYWxseQ== IG9yZ2FuaXpl aXZpYw== IFdvb2Rz YW5nYQ== c3F1 IG1hag== YW1vbg== IGF4aXM= IDE5NzQ= IERlbm1hcms= IHdhcnJpb3I= IFBhbmQ= IG91dGxpbmVk IEJP aW5zdWxh emlsbGE= ZWJvb2s= IGRhcmU= IHNlYXJjaGVk IG5hdmlnYXRl U24= d3JpdGluZw== IHVuaXRlZA== SmFwYW4= IEhlYnJldw== IGZsYW1l IHJlbGllcw== IGNhdGNoaW5n IFNobw== IGltcHJpc29ubWVudA== IHBvY2tldHM= IGNsb3N1cmU= IEZhbQ== dGlt YWRlcXU= QWN0aXZpdHk= IHJlY3J1aXRpbmc= IFdBVENI IEFyZ2VudGluYQ== ZGVzdA== IGFwb2xvZ2l6ZQ== b3Jv IGxhY2tz IHR1bmVk IEdyaWZmaW4= IGluZmFtb3Vz IGNlbGVicml0eQ== c3Nvbg== IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0= IElzaXM= IERpc3BsYXk= IGNyZWRpYmlsaXR5 IGVjb25vbWllcw== IGhlYWRsaW5l IENvd2JveXM= IGluZGVm IGxhdGVseQ== IGluY2VudGl2ZXM= YnV0dG9u IE1vYg== QXV0 IHJlc2lnbmVk IE9t Y2FtcA== IHByb2ZpbGVz IHNjaGVtZXM= b2xwaGlucw== YXllZA== Q2xpbnRvbg== ZW5o IFlhaG9v IGFic3Q= IGFuaw== c3VpdHM= IHdpc2hlZA== IE1hcmNv dWRkZW4= IHNwaGVyZQ== IEJpc2hvcA== IGluY29ycG9yYXRlZA== IFBsYW50 MTE0 IGhhdGVk cGlj IGRvbmF0ZQ== IGxpbmVk IGJlYW5z IHN0ZWFsaW5n IGNvc3R1bWU= IHNoZXJpZmY= IGZvcnR5 IGludGFjdA== IGFkYXB0ZWQ= IHRyYXZlbGxpbmc= YmFydA== IG5pY2VseQ== IGRyaWVk IHNjYWw= b3NpdHk= Tk9URQ== IEJo IEJyb25jb3M= IElnbg== IGludGltYXRl IGNoZW1pc3RyeQ== IG9wdGltYWw= RGVi IEdlbmVyYXRpb24= IF0s aWNoaQ== IFdpaQ== IFlPVVI= dmVudGlvbnM= V3JpdGU= IHBvcHVs dW5uaW5n IFdvcg== Vm9s IHF1ZWVu aGVhZHM= S0s= IGFuYWx5emU= b3BpYw== ZWFyY2hlcnM= IGRvdA== bGVncmFwaA== YXN0aWNhbGx5 IHVwZ3JhZGVz IGNhcmVz IGV4dGVuZGluZw== IGZyZWV6ZQ== IGluYWJpbGl0eQ== IG9yZ2Fucw== IHByZXRlbmQ= IG91dGxldA== MTEz b2xhbg== IE1hbGw= dWxpbmc= dGFsaw== IGV4cHJlc3Npbmc= IEFsd2F5cw== IEJlZ2lu ZmlsZXM= IGxpY2Vuc2Vz JSU= IE1pdHQ= IGZpbHRlcnM= IE1pbHdhdWtlZQ== R04= IHVuZm9sZA== TW8= IG51dHJpdGlvbg== cHBv Qm8= IGZvdW5kaW5n IHVuZGVybWluZQ== IGVhc2llc3Q= IEN6ZWNo IE1hY2s= IHNleHVhbGl0eQ== IE5peG9u V2lu IEFybg== IEtpbg== 44Kj aWNlcg== IGZvcnR1bg== IHN1cmZhY2Vz YWdoZA== IGNhcnJpZXJz IFBBUlQ= IFRpYg== IGludGVydmFs IGZydXN0cmF0aW5n IFNoaXA= IEFybWVk ZmZl IGJvYXRz IEFicmFoYW0= aW5pcw== IHN1aXRlZA== dGhyZWFk aW92 YWJ1bA== IFZlbmV6dWVsYQ== IHRvbQ== c3VwZXI= IGNhc3RsZQ== YWx0aG91Z2g= aW94aWRl ZWNoZXM= IGV2b2x1dGlvbmFyeQ== IG5lZ290aWF0ZQ== IGNvbmZyb250ZWQ= UmVtZW1iZXI= IDE3MA== U3VjaA== IDkxMQ== bXVsdA== IEFieXNz dXJyeQ== a2Vlcw== c3BlYw== IEJhcmJhcmE= IGJlbG9uZ2luZw== IHZpbGxhaW4= aXN0YW5p IGFjY291bnRhYmxl IHBvcnRpb25z IERlY2w= VXI= IEthdGU= Z3Jl IG1hZ2F6aW5lcw== VUNL IHJlZ3VsYXRl b21vbg== IEFsbW9zdA== IG92ZXJ2aWV3 IHNjcmFt IGxvb3Q= IEZpdHo= IGNoYXJhY3RlcmlzdGlj IFNuYWtl c2F5 IFJpY28= IHRyYWl0 IEpvaW5lZA== YXVjdXM= IGFkYXB0YXRpb24= IEFpcmxpbmVz IGFyY2hhZQ== IElkZQ== IGJpa2Vz IGxpdGVyYXJ5 IGluZmx1ZW5jZXM= IFVzZWQ= Q3JlYXQ= IHBsZWE= IERlZmVuY2U= IEFzc2Fzcw== IHBvbmQ= VUxU KSI= IGV2YWx1YXRlZA== IG9idGFpbmluZw== IGRlbW9ncmFwaGlj IHZpZ2ls YWxleQ== IHNwb3VzZQ== IFNlYWhhd2tz cmVzcG9ucw== IEJlbHQ= dW1hdGlj IHJpc2Vz cnVubmVy IE1pY2hlbGxl IHBvdGVudA== cmFjZQ== IFBBQw== RmluZA== b2xlc3Rlcm9s SVNT IEludHJvZHVjZWQ= cmVzc2Vz aWdubWVudA== T3M= IFR1 IERleA== aWNpZGVz IHNwYXJrZWQ= IExhdXJh IEJyeWFudA== IHNtaWxpbmc= IE5leHVz IGRlZmVuZGFudHM= IENhdGFs IGRpc2hlcw== c2hhcGVk IHByb2xvbmc= bXQ= KCQ= 44CC IGNhbGN1bGF0aW9ucw== IFNhbWU= IHBpdg== SEg= IGNhbmNlbGxlZA== IGdyaW4= IHRlcnJpdG9yaWVz aXN0aWNhbGx5 Q29tZQ== IFBhcmVudA== UHJvamVjdA== IG5lZ2xpZw== IFByaXZhY3k= IGFtbW8= TEVDVA== b2x1dGVseQ== IEVwaWM= IG1pc3VuZGVy d2Fs QXByaWw= bW9z cGF0aHk= IENhcnNvbg== IGFsYnVtcw== IEVhc3k= IHBpc3RvbA== PDw= IFwo dGFyZ2V0 aGVscA== IGludGVycHJl Y29uc2Npb3Vz IEhvdXNpbmc= IEpvaW50 MTI3 IGJlZXJz c2NpZW5jZQ== IEZpcmVmb3g= ZWZmZWN0aXZl IENhYmlu IE9rYXk= IEFwcGxpYw== IHNwYWNlY3JhZnQ= IFNS dmV0 IFN0cmFuZ2U= U0I= IGNvcnBz aWJlcmFs ZWZmaWNpZW50 IHByZXZhbGVuY2U= IGVjb25vbWlzdHM= MTE4 VGhyZWFk b3JkYWJsZQ== T0RF IENhbnQ= PS09LQ== aWZpYWJsZQ== IEFyb3VuZA== IHBvbGU= IHdpbGxpbmduZXNz Q0xB IEtpZA== IGNvbXBsZW1lbnQ= IHNjYXR0ZXJlZA== IGlubWF0ZXM= IGJsZWVkaW5n ZXZlcnk= IHF1ZXVl IFRyYWlu IGhpag== IG1lbGVl cGxldGVk IGRpZ2l0 IGdlbQ== b2ZmaWNpYWw= IGxpZnRpbmc= 0LU= UmVxdQ== aXR1dGVz IHBhY2thZ2luZw== IFdvcmtlcnM= aHJhbg== IExlYmFub24= b2xlc2M= IHB1bmlzaGVk IEp1YW4= IGphbQ== IERvY3VtZW50 IG1hcHBpbmc= aWNhdGVz IGluZXZpdGFibHk= IHZhbmlsbGE= IFRvbg== IHdhdGNoZXM= IGxlYWd1ZXM= IGluaXRpYXRlZA== ZGVncmVl cG9ydGlvbg== IHJlY2FsbHM= IHJ1aW4= IG1lbHQ= SUFO IGhlbQ== RXhw IGJha2luZw== IENvbG9tYg== YXRpYmxl IHJhZGl1cw== cGx1Zw== IElG ZXRpY2FsbHk= IGZpY3Q= SEVS IFRhcA== YXRpbnVt IGluaw== IGNvaA== IFdpemFyZA== Ym90aA== dGV4 IHNwZW5kcw== IEN1cnJlbnRseQ== IFBpdA== IG5ldXJvbnM= aWdudA== IHJhbGw= IGJ1c2Vz YnVpbGRpbmc= IGFkanVzdG1lbnRz IGNyaWVk aWJsaWNhbA== YXR0ZWQ= IFppb24= IE1hdHRlcg== IG1lZGl0YXRpb24= IERlbm5pcw== IG91cnM= IFRhYg== IHJhbmtpbmdz b3J0YWw= IGFkdmVycw== IHN1cnJlbmRlcg== IEdvYg== Y2l1bQ== b21hcw== aW1ldGVy IG11bHRpcGxheWVy IGhlcm9pbg== IG9wdGltaXN0aWM= IGluZGljYXRvcg== IEJyaWc= IGdyb2Nlcnk= IGFwcGxpY2FudA== IFJvY2tldA== dmlk RXhjZXB0aW9u cGVudA== IG9yZ2FuaXppbmc= IGVuY291bnRlcnM= IFRPRA== IGpld2Vs U2F2ZQ== IENocmlzdGll IGhlYXRpbmc= IGxhenk= IENQ IGNvdXNpbg== Q29uZmln IHJlZ2VuZXI= IG5lYXJlc3Q= IGFjaGlldmluZw== RU5T dGhyb3c= IFJpY2htb25k YW50bGU= MjAwMg== IGFudGVu YmlyZA== MTMz IG5hcmM= cmFpbnQ= dW5ueQ== IEhpc3Bhbmlj b3VybmFtZW50cw== IHByb3BoZQ== IFRoYWlsYW5k IFRp IGluamVjdGlvbg== IGluaGVyaXQ= cmF2aXM= IG1lZGk= IHdob2V2ZXI= IERFQlVH R1A= IEh1ZA== Q2FyZA== cHJvbQ== IHBvcg== IG92ZXJoZWFk TGF3 IHZpb2xhdGU= IGhlYXRlZA== IGRlc2NyaXB0aW9ucw== IGFjaGlldmVtZW50cw== IEJlZXI= IFF1YW50 V2Fz IGVpZ2h0aA== IEl2 IHNwZWNpYWxpemVk VVBEQVRF IERlbHRh UG9w SnVs IEFzaw== b3BoeQ== IG5ld3NsZXR0ZXJz IFRvb2w= IGdhcmQ= IENvbmZlZGVy IEdNVA== IEFiYm90dA== IGltbXVuaXR5 IFZN SXNsYW0= IGltcGxpY2l0 d2Q= IDE5NDQ= cmF2aXR5 b21ldHJpYw== IHN1cnZpdmluZw== dXJhaQ== IFByaXNvbg== IHJ1c3Q= IFNrZXRjaA== IGJlZXM= IFRoZW9yeQ== IG1lcml0 VGV4 Y2hhdA== IG1pbQ== IHBhc3Rl IEtvY2g= IGlnbm9yYW5jZQ== IFNob290 IGJhc2VtZW50 VW5pdGVk IEFkdmlz aGVpZ2h0 IGZvc3Rlcg== IGRldGFpbg== aW5mb3JtYXRpb24= IG5ldXJhbA== Jzs= IHByb3Zlcw== YWxsZXJ5 IGludml0YXRpb24= dW1iZXJz IGNhdHRsZQ== IGJpY3ljbGU= emk= IGNvbnN1bHRhbnQ= IGFwb2xvZ3k= IFRpZ2Vy IDEyMw== OTk5 IGluZGl2aWR1YWxseQ== cnQ= aWdpb24= IEJyYXppbGlhbg== IGRpc3R1cmI= IGVudHJlcHJlbmV1cnM= IGZvcmVzdHM= Y2VycHQ= cGxhdGVz cGhlcg== Y2xpcHNl IHR3aXR0ZXI= IGFjaWRz b2dyYXBoaWNhbA== aHVt IEJhbGQ= aWZ1bGx5 IGNvbXBpbGVy IERB IGRvbm9y YXNp IHRyaWJhbA== bGFzaA== IENvbmZpZw== IGFwcGxpY2FudHM= IHNhbGFyaWVz MTM1 UHV0aW4= IEZvY3Vz aXJz IG1pc2NvbmR1Y3Q= IEhheg== IGVhdGVu TW9iaWxl TXVzbGlt IE1hcmN1cw== dmlvbA== IGZhdm9yYWJsZQ== IHN0dWI= YWRpbg== IEhvYg== IGZhaXRoZnVs IGVsZWN0cm9uaWNz IHZhY3V1bQ== d2FpdA== YmFja2Vk ZWNvbm9taWM= ZGlzdA== IHRlbnVyZQ== IHNpbmNlcmU= IFRvZ2V0aGVy IFdhdmU= IHByb2dyZXNzaW9u IGRlbnlpbmc= IGRpc3RyZXNz YnJhc2th dGhpcmQ= IG1peGluZw== IGNvbG9uaWFs IHByaXZhdGVseQ== IHVucmVzdA== YXRlcm5pdHk= IHByZW1pc2Vz YW50aQ== Z3JlZ2F0aW9u IGxpY2VuY2U= IEhpbmQ= IFNhbXVlbA== IGNvbnZpbmNpbmc= IEFjZQ== IFJ1c3Q= IE5ldGFueWFodQ== IGhhbmRsZXM= IFBhdGNo b3JpZW50ZWQ= YWhv IEdvbno= IGhhY2tlcnM= Y2xhaW1lcg== IGN1c3RvbXM= IEdyYW4= ZmlnaHRlcnM= IGx1Yw== IG1hbnVzY3JpcHQ= YXJlbnRob29k IGRldmls IHdhcnJpb3Jz IG9mZmVuZGVycw== V2lsbGlhbQ== IGhvbGlkYXlz IG5pZ2h0bWFyZQ== IGxldmVy aWZmZXJlbnQ= U3RhdA== IGV4aGliaXRpb24= cHV0ZWQ= IFB1cmU= IGFscGhh IGVudGh1c2lhc20= IFJlcHJlc2VudGF0aXZlcw== RUFS IFR5cA== IHdoZWF0 IEFsZg== IGNvcnJlY3Rpb24= IGV2YW5nZWw= QVRU TWlzcw== IHNvdXA= IGltcGxpZWQ= cGFyYW0= IHNleHk= IEx1eA== IHJlcHVibGlj cGF0Y2g= YWJsaXNo IGljb25z IGZhdGhlcnM= IEdFVA== IENhcmli IHJlZ3VsYXRlZA== IENvaGVu IEJvYmJ5 IG5lcg== IGJlbnQ= dmVudG9yeQ== IEFsb25n IEVTVA== IFdhbGxhY2U= IG11cmRlcnM= cmlzZQ== a2VsbA== IENvbW1vbndlYWx0aA== IG5hc3R5 ZXRh IE1JVA== IGFkbWluaXN0ZXJlZA== IGdlbnVpbmVseQ== RWRpdG9y bmljaw== IGh5ZHJv KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKio= IEJsZQ== IGZpbmVz IGdvcmdl YXVzaWJsZQ== cmg= IGFwcGxl bWVudGlvbmVk IHJvcGU= b3R5cA== SFI= IGRpc2FwcG9pbnRpbmc= IGNhZ2U= bmlr IGRvdWJ0cw== IEZSRUU= cHJpbnRz IE1VU1Q= IHZlbmRvcnM= IElucXU= IGxpYmVyYWxz IGNvbnRyYWN0b3I= IHVwc2lkZQ== Y2hpbGRyZW4= IHRyaWNreQ== IHJlZ3VsYXRvcnM= Y2hhcmdlZA== bGl0ZXI= ICoqKg== IHJlYmVsbA== bGFuZw== IGxvY2Fscw== IHBoeXNpY2lhbnM= IGhleQ== YXJzZQ== dG0= IExleA== IGJlaGF2aW9yYWw= c3VjY2Vzc2Z1bA== Rlg= IGJyaWNr b3ZpYw== IGNvbmZvcm0= IHJldmlld2luZw== IGluc2lnaHRz IGJpb2xvZ3k= IFJlbW92ZQ== IEV4dHJh IGNvbW1pdHRpbmc= aW5kdWNlZA== aWdudHk= aWdt IGF0b21pYw== Q29tbW9u IEVN IFBlcmU= IEl0ZW1z ZWg= IHByZXNlcnZlZA== IEhvb2Q= IHByaXNvbmVy IGJhbmtydXB0Y3k= IGdyZW4= dXNoZXM= IGV4cGxvaXRhdGlvbg== IHNpZ25hdHVyZXM= IGZpbmFu XSwi IE1S IG1lZw== cmVtbGlu IG11c2ljaWFucw== IHNlbGVjdGluZw== IGV4YW1pbmluZw== SU5L bGF0ZWQ= SGk= IGFydGlj IHBldHM= IGltcGFpcg== IE1BTg== IHRhYmxldHM= aW5jbHVkZQ== UmFuZ2U= IGNhdXQ= IGxvZ3M= IG1vdW50aW5n IHVuYXdhcmU= IGR5bmFtaWNz IFBhbGVzdGluZQ== IFF1YXJ0ZXI= IFB1cnBsZQ== IG1h IEltcG9ydA== IGNvbGxlY3Rpb25z Y2lhdGlvbg== IHN1Y2Nlc3Nvcg== IGNsb25l IGFpbWluZw== IHBvc3Nlc3NlZA== IHN0aWNraW5n IHNoYWtpbmc= IGxvY2F0ZQ== IEhvY2tleQ== VHVybg== MTcw IGZpZnRlZW4= IEhhcnJpc29u IGNvbnRpbnVvdXNseQ== IFRD IFZhbGVudA== IFJlc2N1ZQ== IGJ5cGFzcw== YW1vdW50 IG1hc3Q= IHByb3RlY3Rz IGFydGlzdGlj IHNvbWV0aW1l IHNob2U= IHNob3V0ZWQ= aWZpY2FudA== ZXRpdGl2ZQ== IFJlZ2lzdGVy IEppbg== IGNvbmNlbnRyYXRlZA== bGluZ3Rvbg== b25pZXM= IGdlbmVyYXRvcg== eXJpbQ== IEFybWVu IGNsZWFyaW5n aWRv IFRX YWxwaA== IGxhZGllcw== SGFyZA== IGRpYWxvZw== IGlucHV0cw== 5pw= IHBvc2Vz IHNsb3Rz IFByZW1pdW0= IGxlYWtz IGJvc3Nlcw== IDExMw== Y291cnNl QWNj IE5ld3Rvbg== IEF1c3RyaWE= IE1hZ2U= IHRlYWNoZXM= YWJhZA== IHdlYXJz IGN5bA== IGN1cnNl IFNhbGVz IFdpbmdz IHBzeQ== IGdhcHM= IEljZWxhbmQ= IFBpbnRlcmVzdA== IGxhbmRsb3Jk IGRlZmluaXRpb25z IEtlcg== IHN1ZmZpY2llbnRseQ== IFBlbmNl IEFyY2hpdGVjdA== IHN1cnBhc3M= IDExNA== IHN1cGVyaGVybw== IERpc2Vhc2U= IHByaWVzdHM= IEN1bHR1cmU= IGRlZmluaXRpdmU= IHNlY3JldGx5 IERhbmNl aW5zdGFsbA== Y2hpZWY= IEplc3NpY2E= V291bGQ= VXBkYXRlZA== IGxvY2tlcg== IEtheQ== IG1lbW9yaWFs 6KY= ZmF0 IGRpc2d1 IGZsYXZvcnM= IEJhc2ViYWxs IFJlc2lzdGFuY2U= IGtpY2tz IGVudg== IHRlZW5hZ2Vycw== RGFyaw== IENBUg== IGhhbHQ= IExH IEdhYnJpZWw= IGZldmVy IHNhdHVy IG1hbGw= IGFmZmlsaWF0ZQ== IFNsZWVw IFNwZWNpZmlj IFZlbA== IGphcg== IFNhY3JlZA== IEVkd2FyZHM= IEFDTA== IHJldGFpbmVk IEdpYW50 IGxpbWl0YXRpb24= aW5jZXM= IHJlZnVzYWw= IFRhbGU= IEJ1dGxlcg== IGFjY2lkZW50cw== IENTUw== IGltcG9ydGVk IENvcHk= zrE= RVJU emVs IGRpdmlzaW9ucw== aG90cw== IEFsYg== IERT TG9hZGVy V2FzaGluZ3Rvbg== YXRpc2Y= IENyZWF0aXZl XC4= IEF1dG9t cmVkaWN0 IHJlY2VwdG9y IENhcmxvcw== TWV0aG9k b2th IG1hbGljaW91cw== IHN0ZXBwaW5n LFs= IERhZA== IGF0dHJhY3Rpb24= IEVmZmVjdHM= IFBpcmF0ZQ== IENlcg== IEluZHVzdHJ5 IFJ1ZA== IGNoYXJ0ZXI= IGRpbmluZw== IGluc2lzdHM= IGNvbmZpZ3VyZQ== ICgj IFNpbXBsZQ== IFNjcm9sbA== VVRD MTc1 IEtvbg== IG1hcmtldHBsYWNl IOOC IHJlZnJlcw== IGdhdGVz ZXJyZWQ= IFBvZA== IGJlaGF2ZQ== RnJhbms= bm9kZQ== IGVuZG9yc2Vk aGV0dA== YXNpdmU= IEhvbWVsYW5k IHJpZGVz IExlYXZl ZXJuZXNz IGZsb29kaW5n QUZQ IHJpc2Vu IGNvbnRpbnVhbGx5 IHVuYW5pbQ== IENvbnRyYWN0 IFBhcw== IGd1aWRlZA== IENoaWxl YmQ= IHN1Y2M= cHRpYw== IGNvbW1pdHRlZXM= IEx1dGhlcg== IEFueW9uZQ== IHNhYg== MTI0 IHBpeGVs IEJhaw== IFRhZw== IEJlbm5ldHQ= RW50ZXI= c21hbGw= IFByZXNpZGVudGlhbA== IHB1bA== IGNvbnRyYWNl YXJjaGl2ZQ== IGNvYXN0YWw= IEtpZHM= MTky 4oCy aWNreQ== SU5HVE9O IHdvbGY= IFN0YWxpbg== VHVy aWRnZXQ= YW1hcw== IFVubGVzcw== IHNwb25zb3I= IG1vcnBo IENob29zZQ== IHJ1bm5lcg== IHVuYmVs IG11ZA== IE1hbmE= IGR1YmJlZA== IGdvZGQ= dXJlcnM= d2luZG93 IHJlbGllZA== IGNlbGVicmF0aW5n b3Nj IDEzNQ== IGxvYmJ5aW5n IGluY29tcGxldGU= IHJlc3RyaWN0aW9u IGluY2Fw aXR1cw== IGV4cGVjdGF0aW9u IEFwb2xsbw== IGludGVucw== IHN5bmM= R0g= IG1hbmlwdWxhdGlvbg== Qlk= IHNwZWFy IGJyZWFzdHM= IHZvbGNhbg== aWxpYQ== TWF0ZXJpYWw= IGZvcm1hdHM= IEJhc3Q= IHBhcmxpYW1lbnRhcnk= IHNuYWtl IHNlcnZhbnRz IFRydWRlYXU= IEdyaW0= IEFyYWJpYw== IFNDUA== IEJveXM= c3RhdGlvbg== IHByb3NwZWN0aXZl b3JkZQ== aW5pdGlhbGl6ZWQ= IGJvcmVk QUJMRQ== IGFjY2Vzc2Vk IHRheGk= IFNoZWxs YWlkZW4= dXJzZWQ= aW5hdGVz IEluc3VyYW5jZQ== IFBldGU= U2VwdGVtYmVy NjUw IGFkdmVudHVyZXM= IENvdmVy IHRyaWJ1dGU= IHNrZXRjaA== IGVtcG93ZXI= INg= IEdsZW5u IERhdw== PVwi IFBvbGl0aWNz IGd1aWRlcw== IGRpb3hpZGU= IEdvcmU= IEJyaWdodA== IFNpZXJyYQ== IHZhbHVlZA== Y29uZA== IHBvaW50ZXI= U2VsZWN0 IHJpc2t5 IGFic29yYg== aW1hZ2Vz IHJlZnVzZXM= IGJvbnVzZXM= X19f IGhpbGFy IEZlYXR1cmVz MjIw IENvbGxlY3Rvcg== Rm9vdA== IDE5NjQ= Y3VsdXM= IGRhd24= IHdvcmtvdXQ= IExP IHBoaWxvc29waGljYWw= IFNhbmR5 IFlvdXRo IGxpYWJsZQ== QWY= Ymx1ZQ== IG92ZXJ0dXJu bGVzc25lc3M= IFRyaWJ1bmU= IEluZw== IGZhY3Rvcmllcw== IGNhdGNoZXM= IHByb25l IG1hdHJpeA== IGxvZ2lu IGluYWNj IGV4ZXJ0 c3lz IG5lZWRsZQ== IFF1cg== IG5vdGlmaWVk b3VsZGVy dHg= IHJlbWluZHM= IHB1Ymxpc2hlcnM= IG5vcnQ= IGdpdA== IGZsaWVz IEVtaWx5 IGZsb3dpbmc= IEFsaWVu IFN0cmF0ZWc= IGhhcmRlc3Q= IG1vZGlmaWNhdGlvbg== QVBJ IE1Z IGNyYXNoZXM= c3RhaXJz bnVtYmVy IHVyZ2luZw== Y2hhbm5lbA== IEZhbGNvbg== IGluaGFiaXRhbnRz IHRlcnJpZnlpbmc= IHV0aWxpemU= IGJhbm5lcg== IGNpZ2FyZXR0ZXM= IHNlbnNlcw== IEhvbG1lcw== IHByYWN0aXRpb24= IFBoaWxsaXBz b3R0bw== IGNvbXBpbGU= TW9kZWw= IEtv IFtd QW1lcmljYW5z IFRlcm1z IG1lZGljYXRpb25z IEFuYQ== IGZ1bmRhbWVudGFsbHk= IE5vdGljZQ== IHdlYWtlcg== IDAwMDA= IGdhcmxpYw== IG91dGJyZWFr IGVjb25vbWlzdA== IEJpcnRo IG9ic3RhY2xlcw== YXJjZXI= IE9ydGhvZG94 IHBsYWNlYm8= IENyZXc= YXNwYmVycnk= IEFuZ2Vscw== IGRpc2NoYXJnZQ== IGRlc3RydWN0aXZl MTE3 IFJpc2luZw== IGRhaXJ5 bGF0ZQ== IGNvbGxpc2lvbg== IFRpZ2Vycw== ZWFub3I= b2N1bWVudGVk IEludmFsaWQ= IGRvbnQ= IExpdGVy IFZh IGh5ZHJvZ2Vu IHZhcmlhbnRz IEJyb3ducw== IDE5NjU= IGluZGlnZW5vdXM= IHRyYWRlcw== IHJlbWFpbmRlcg== IHN3ZXB0 IEltcGFjdA== IHJlZGlzdA== IHVuaW50 Z3JhZHVhdGU= 44OV IFdJTEw= 44Gu5w== IENyaXRpY2Fs IGZpc2hlcg== IHZpY2lvdXM= IHJldmVyc2Vk WWVhcg== IFNveA== IHNob290aW5ncw== IGZpbG1pbmc= IHRvdWNoZG93bnM= YWlyZXM= bWVs IGdyYW5kZmF0aGVy IGFmZmVjdGlvbg== aW5nbGU= IG92ZXJseQ== QWRkaXRpb25hbA== IHN1cHJlbWU= IEdyYWQ= IHNwb3J0aW5n IG1lcmN5 IEJyb29rcw== b3VudHk= IHBlcmZvcm1z IHRpZ2h0bHk= IGRlbW9ucw== IGtpbGxpbmdz IGZhY3Rpb24= IE5vdmE= YXV0cw== IHVuZG91YnRlZGx5 YXJpbg== IHVuZGVyd2F5 cmFr IGxpdg== IFJlZ2lvbg== IGJyaWVmaW5n c2Vycw== Y2xvdWQ= IE1paw== dXNw IHByZWRpY3Rpb24= YXpvcg== IHBvcnRhYmxl IEdhbmQ= IHByZXNlbnRpbmc= IDEwODA= wrs= dXNoaQ== IFNwYXJr dGhlcmV1bQ== IGp1c3RpZmljYXRpb24= IE55 IGNvbnRyYWN0b3Jz bWluZ2hhbQ== IFN0eWxl 5YU= IENocm9uaWNsZXM= IFBpY3R1cmU= IHByb3Zpbmc= IHdpdmVz c2V0dA== IG1vbGVjdWxlcw== IEZhaXJ5 IGNvbnNpc3Rpbmc= IHBpZXI= YWxvbmU= aW5pdGlvbg== IG51Y2xl anNvbg== IGdvdHRh IG1vYmls IHZlcmJhbA== YXJpdW0= IG1vbnVtZW50 dWNrZWQ= IDI1Ng== VGVjaA== bWluZWNyYWZ0 IFRyYWNr IHRpbGU= IGNvbXBhdGliaWxpdHk= YXNpcw== IHNhZGQ= IGluc3RydWN0ZWQ= IE11ZWxsZXI= IGxldGhhbA== IGhvcm1vbmU= IG9yY2hl ZWxzZQ== IHNrZWxldA== IGVudGVydGFpbmluZw== IG1pbmltaXpl YWdhaW4= IHVuZGVyZ28= IGNvbnN0cmFpbnRz IGNpZ2FyZXR0ZQ== IElzbGFtaXN0 IHRyYXZlbHM= IFBhbnRoZXJz bGluZ3M= Q2FyZQ== IGxhd3N1aXRz dXJhcw== IGNyeXN0 IGxvd2VyZWQ= IGFlcmlhbA== IGNvbWJpbmF0aW9ucw== IGhhdW4= IGNoYQ== IHZpbmU= IHF1YW50aXRpZXM= IGxpbmtpbmc= YmFuaw== IHNveQ== QmlsbA== IEFuZ2VsYQ== IHJlY2lwaWVudA== IFByb3Rlc3Q= IHNvY2tldA== IHNvbGlkYXJpdHk= IOKG bWlsbA== IHZhcmllcw== IFBha2lzdGFuaQ== RHJhZ29u IHVuZQ== IGhvcml6b24= wqDCoMKgwqDCoMKgwqDCoA== IHByb3ZpbmNlcw== IGZyYW5rbHk= IGVuYWN0ZWQ= bm90ZXM= Wyc= IDE5Mg== b2NyYWN5 IGVuZG9yc2VtZW50 IG92ZXJ0aW1l VHJ1ZQ== TGFi bGljdGVk IEROQw== IGJlYXRz IEphbWll MTUy IElOVA== Q29udGFjdA== IGFjY291bnRlZA== aGFzaA== IFBhY2tlcnM= cGlyZXM= IGxlc2JpYW4= IGFtZW5kbWVudHM= IGhvcGVmdWw= IEZpbmxhbmQ= IHNwb3RsaWdodA== IGNvbmZpZ3VyZWQ= IHRyb3VibGVk IGdhemU= IENhbGdhcnk= IHJlbGlhYmlsaXR5 IGluc3VyZw== c3dlcg== YnV5 IFNraW4= IHBpeGVscw== IGhhbmRndW4= IHBhcmFz IGNhdGVnb3I= IEVM IFJleA== SW5kZWVk IGtpbmRh IGNvbmp1bmN0aW9u IEJyeWFu IE1hbnVmYWN0 eWFuZw== UGx1cw== U1FM aXNobWVudA== IGRvbWluYXRl IG5haWw= IG9hdGg= IGVydXB0 IEZpbmU= aXRiYXJ0 IENoaXA= IEFiZA== IE5hbQ== IGJ1eWVy IGRpc3NlbnQ= TGVha3M= Q29udGlu IHJpZGVy IFNvbWVvbmU= IGlsbHVzaW9u Y2lu IEJvZWluZw== IGluYWRlcXU= b3ZhdGlvbg== aWFudHM= IHJlYnVpbGQ= NDUw IERlc3Rpbnk= U1c= IFRpbGw= SGl0 aWF6 IEJhbmds YWNoZXJz IFJlZm9ybQ== IHNlZ21lbnRz IHN5c3RlbWF0aWM= ZGM= IENvbnNlcnZhdGl2ZXM= IHBvcnRhbA== aG9y IERyYWdvbmJvdW5k IGRyYWdnZWQ= b21v IHRoZWU= YWR2ZXJ0 IFJlcG9ydHM= IEV0 IGJhcnJlbHM= QXVndXN0 IGNvbXBhcmlzb25z IGhleA== IGFudGhyb3A= Ils= Ym9yb3VnaA== YWJp IHBpY3R1cmVk cGxheWluZw== IEFkZHJlc3M= IE1pcnJvcg== U21pdGg= IHRpcmVz IE5QUg== QUFBQQ== IGNsYXNzaWZpY2F0aW9u IFRoYW4= IEhhcm0= IFJB IHJlamVjdGlvbg== bWluYXRpb24= IHJhbmdlZA== IEZhbGxz REk= SG9zdA== 44K0 IEV4YW1wbGU= bGlzdGVk dGhpcmRz IHNhZmVndQ== YnJhbmQ= IHByb2JhYmxl Q2FuYWRh SVRJT04= IFFhZWRh IGNoaWNr IGltcG9ydHM= aGl0 bG9j V1c= IGJsZXc= IGFueXRpbWU= IHdob2xlcw== aWtlZA== IGNhbGN1bGF0aW9u Y3JlYXRl IE9yaQ== IHVwZ3JhZGVk IGFwcGFy dXRvcnk= IE1vbA== QnJpdA== IEpvbmc= SU5BTA== IFN0YXJ0aW5n IGRpY2U= dXJ0bGU= IHJlbHlpbmc= Y2xvc3VyZQ== IHByb2ZpdGFibGU= IHNsYXVnaHRlcg== IE1hbnVhbA== Y2FzdGVy ICIk IGZlYXRoZXI= IFNpbXBseQ== aWV2ZXM= IGRldGVyaW9y IFBDSQ== IHN0YW1w IGZsYXdz IHNoYWRl aGFtbWVy IHBhc3Nwb3J0 IGNvbnRpbmc= YW1lbA== IG9ic2VydmVycw== IG5lZ2xlY3Q= IFJC IEJyb3RoZXJob29k IHNrZXB0aWNhbA== ZmFtaWx5 dXNr IGVtb3Rpb25hbGx5 4pk= IEJldGE= YXNvbmFibGU= aWRpdHk= IE11bA== IGtpY2tpbmc= IENhcm0= b2xsYWg= VkVSVElT IEF0aGVu IGxhZGRlcg== IEJ1bGxldA== 5aM= MDAwMQ== IFdpbGRsaWZl IE1hc2s= IE5hbg== UmV2 IHVuYWNjZXB0YWJsZQ== bGVnYWw= IGNyb3dkZWQ= YWdp IENveA== amU= IG1vcmFsaXR5 IGZ1ZWxz IGNhYmxlcw== IG1hbmtpbmQ= IENhcmliYmVhbg== IGFuY2hvcg== IGJ5dGU= IE9mdGVu IE96 IGNyYWZ0ZWQ= IGhpc3Rvcmlhbg== IFd1 IHRvd2Vycw== IENpdGl6ZW5z IGhlbG0= IGNyZWRlbnRpYWxz IHNpbmd1bGFy IEplc3Nl IHRhY2tsZXM= IGNvbnRlbXB0 IGFmb3Jl IFNoYWRvd3M= IG5pbA== IHVyZ2VudA== YXBwbGU= Ymxvb2Q= IHZvbg== IG9mZmxpbmU= IGJyZWF0aGU= IGp1bXBz IGlycmVsZXZhbnQ= b3hpYw== b21hbA== aW1wb3J0YW50 Smlt IGdsb3Zlcw== YXJtaW5n ZGVwdGg= IHRhbGVudHM= b29raWU= IFNC IHBhbG0= dWZmcw== ZXN0YQ== SUdI IGNhbm9u IFZlcml6b24= IFBsZQ== IGNvdXBsZWQ= dmVsdA== IGZ1bmRyYWlzaW5n IEdldHRpbmc= IERMQw== IG1hdGhlbWF0aWNhbA== IEhT IENhcmRpbmFscw== dGVsbGluZw== IHNwb25zb3Jz IM8= IEJ1bGxz b3B0aW9u IHByb3Bvc2U= IG1lbW9yYWJsZQ== IGVtYnJhY2Vk IGRlY2xpbmluZw== SGVhbHRo ZWRh IH07 IHNwYW0= bWlsZQ== IHBpdGNoZXI= IEVpZ2h0 IGNhcmluZw== dXRpYw== cm9sZQ== IGFpcmxpbmU= ZXJuYW5kZXo= IEF0aGxldA== IGNlcnRpZmljYXRpb24= dXhl cmlnZXI= IGVtcGly IHNlbnNhdGlvbg== IGRpc20= IGJvbHQ= IGV2b2x2ZQ== SG91c2U= IGNvbnN1bHRhdGlvbg== IER1dHk= IHRvdWNoZXM= IE5hdGhhbg== IGZhaW50 aGFk Iig= IENvbnN1bWVy IEV4dHJlbWU= IDEyNw== IEhlcm0= IFNhY3JhbWVudA== aXpvcGg= IGFueGlvdXM= dWxvdXNseQ== IHNvY2lhbGx5 IFVUQw== IHNvbHZpbmc= IExldHRlcg== SGlzdG9yeQ== ZWR1Yw== UHJpY2U= KSk7 IHJlbG9hZA== YW1pYw== IHBvcms= IGRpc2NvdXJzZQ== IHRvdXJuYW1lbnRz YWlybw== IEt1cg== IENvc3Rh IHZpb2xhdGluZw== IGludGVyZmVyZQ== IHJlY3JlYXRpb25hbA== dWZmbGU= IHNwZWVjaGVz IG5lZWRpbmc= IHJlbWVtYmVycw== IGNyZWRpdGVk bmlh Zm9jdXNlZA== YW1lcmE= IGJydQ== dW1icw== IEN1YmFu IHByZWNlZGluZw== IG5vbnNlbnNl YWNpYWw= IHNtYXJ0cGhvbmVz IFN0b3JpZXM= U3BvcnRz IEVtZXJnZW5jeQ== b3VuY2luZw== ZWZpbmVk IGJlcg== IGNvbnN1bHRpbmc= IG1hc3RlcnM= aGVhc3Rlcm4= LiJb IFJ1bm5pbmc= IHN1c2NlcHQ= IEZlbmc= QW1lcmljYQ== cHJpc2Vz c3RpdGlhbA== IFdlZWtseQ== IEdyZWF0ZXI= bW9kdWxlcw== aWZ0ZXI= R3JhcGhpY3M= dWxlcg== IHdob2xseQ== IHN1cHByZXNz IGNvbmNlYWxlZA== IGhhcHBpbHk= IGFjY2VwdHM= IEVuam95 IHJpdmVycw== IEV4Y2VwdA== MjI1 IE5IUw== IE1jQ29ubmVsbA== IHB1c3N5 ZmVycmVk dXRhYmxl IGF0dGFpbg== ID49 IGRlcG9zaXRz cm9waGlj IG5vdG9yaW91cw== IFNoYXc= aWxpdGF0aW9u IGVwaWRlbWlj YWxsaWM= IHNtYWxsZXN0 b3ZpY2g= IGFjY2Vzc29yaWVz cGVydGllcw== IHN1cnBsdXM= IE1lY2g= IGFtYmln IEltbWlncmF0aW9u IGNoaW0= ZXZhbA== IHByYWN0aWNpbmc= IE15c3Rlcnk= IGRvbWFpbnM= IFNpbGljb24= YXBwcw== IGtpbG9tZXRlcnM= ZWE= IFNtYXNo IHdhcnJhbnR5 IG5vc3Q= c2ls cmV2 Sm9u IER1Ymxpbg== IHRhc3Rlcw== IGJvdXQ= Z3JlYXQ= ZXJyb3I= IHN3aXRjaGVz IEJhcHQ= RE8= b2tp IHNvdXJjZWQ= cHJvZHU= IGF0dGFjaG1lbnQ= IElzc3Vl IFF1ZXN0aW9u Sm9pbg== IGZpdHRlZA== IHVubGF3ZnVs Xl4= ZXJlaw== IGF1dGhlbnRpY2F0aW9u IHN0b2xl IGFjY291bnRhYmlsaXR5 bGFiZWw= U2VhcmNo IGFsYmVpdA== YXRpY2Fu ZnVuZGVk IEFkZGluZw== IElR IHN1Ym1hcg== bGl0 YXF1ZQ== IExlYXJuaW5n IGludGVnZXI= TWFzdGVy IENocm9t IHByZW1pZXI= T3A= IExpdQ== IGJsZXNzZWQ= IEdsb2Jl IFJlc3BvbnNl IGxlZ2l0aW0= IE1lcmtlbA== IGRpc3Bvc2Fs wrQ= IGdhdWdl cGVhdA== IGluZHVjZWQ= IHF1ZXN0aW9uYWJsZQ== YXJ0aHk= IFZpdA== IEZlZWQ= VW50aWw= VXQ= d29ydGh5 Ulk= IEhlcmFsZA== IEhhbW1lcg== IG1lZGFs IFJpdmVycw== IEhhY2s= IGNsYXJpZnk= IHRyYWNrZWQ= IGF1dG9ub21vdXM= IHRlbmFudA== IFFhdGFy ZXJpZQ== IGdyaW0= IE1vbml0b3I= IHJlc2lzdGFudA== IFNwZWM= IFdlbGxz TkFT MTQ4 IG1pbmVycw== aW90aWNz IG1pc3Nlcw== MTE2 Z2lhbg== Z2l0 IEV5ZXM= cHJlcw== IGdyYWR1YXRlZA== IGFuZ2Vs IHN5bmNocm9u IGVmZmljaWVudGx5 IHRyYW5zbWl0dGVk SGFycnk= IGdsb2JhbGx5 RU5DRQ== IE1vbnRhbmE= cmFnZWQ= IFByZXZlbnRpb24= IHBpc3M= IExs IHNoZWxm IEJKUA== IFRlc3RhbWVudA== IExhdGU= aWtlcg== IEhhcHA= IEp1bGlhbg== aGFsbA== IHNwb250 IHNodXRkb3du IGluY29uc2lzdGVudA== IHN1YnNjcmliZXJz IHNrZWxldG9u IE5lYnJhc2th IGluc3BpcmU= IFZvaWQ= RmVlZA== IGFuZ2xlcw== IFNwcmluZ3M= IGJlbmNobWFyaw== IHZhY2NpbmVz aXpvcGhyZW4= c2V4dWFs dWZmZWQ= IHNoaW5l IEthdGg= IGdlc3R1cmU= aW5lYQ== IHJpcA== IG9wcHJlc3Npb24= IGNvbnNjaWVuY2U= YnQ= IEx1bQ== IGluY2lkZW5jZQ== IEZh d3I= IG1pbmVyYWw= IFNwdXJz YWxreQ== IHRodW5kZXI= IG9waW8= QmVpbmc= IFBhbG0= IHdhc3RlZA== IGxi aWFyaWVz IEluaXRpYXRpdmU= IGN1cnJpYw== IG1hcmtlcg== IE1jTA== IGV4dGVuc2lvbnM= IFB2 IEFybXM= IG9mZmVyaW5ncw== IGRlZmVuc2Vz IHZlbmRvcg== IGNvbnRyYWRpY3Q= IENvbGlu IHJlZGRpdA== IHBlcmlwaGVy MTIy IHNpbnM= RWRpdA== SUNU U29mdA== IFNoYWg= IGFkbWluaXN0cmF0b3I= IFRyaXA= IHBvcm5vZ3JhcGh5 IHR1aXRpb24= aW5lbmNl IFByb2dyZXNz IGNhdGFsb2c= IHN1aXRl IGhpa2U= IHJlcHJvZHVjdGl2ZQ== ZW5naW5l IGRyb3VnaHQ= IE5vYWg= IDIzMA== IGR1ZGU= IHJlbGF4ZWQ= IHBhcnRpdGlvbg== IHBhcnRpY2lwYW50 IHRlbGVzYw== IGZlYXM= IEZG b3duZXI= IHN3ZWVwaW5n IGxlbnNlcw== IG1hdGNodXA= IFJlcGw= b3VybmFscw== IGNyZWRpYmxl IGdyYW5kbW90aGVy IHRoZXJtYWw= IHN1YnNjcmliaW5n IGlkZW50aXRpZXM= Y29sbQ== VUNU IHJlbHVjdGFudA== dXNlcnM= IENvcnQ= IGFzc2lzdGVk T1NT QVRJT05T SVNI IHBoYXJtYWNldXRpY2Fs aWNhYmxl YWRpYW4= IFNvbmlj IEZ1cnk= IE1vbmc= QUg= IFBzeWNob2xvZ3k= IHBob3NwaA== IHRyZWF0cw== rZQ= IHN0ZWFkaWx5 IEhlbGxv IHJlbGF0ZXM= IGNsdWU= RXhwbA== YXV0aA== IHJldmlzaW9u IGVsZA== b3Npb24= IGJyb24= MTQ0 cmlrZXM= IG1pbmVz IGJsYW5rZXQ= IEZhaWw= ZWxlZA== IEltYWdpbmU= IFBsYW5uZWQ= YWlj UmVxdWVzdA== TWFk IEhvcnNl IEVhZ2xl IGNhcGFj MTU3 IGxpbmc= IE5pY2U= IFBhcmVudGhvb2Q= bWluc3Rlcg== b2dz ZW5zaXRpdmU= Tm90aGluZw== IGNhcm4= Rmlu IFBF IHJpZmxlcw== IExQ U2FuZA== IGd1aUFjdGl2ZQ== IHRvdXJpc3Q= Q05O IHVudmVpbGVk IHByZWRlY2Vzc29y fXs= dWJlcg== IG9mZnNob3Jl IG9wdGljYWw= IFJvdA== IFBlYXJs ZXRvbg== IHN0YXJlZA== IGZhcnRoZXI= YXRpbGl0eQ== Y29udGlu IEd5 IEZvc3Rlcg== IENvYw== cmllbnRz IGRlc2lnbmluZw== IEVjb25vbXk= T05H V29tZW4= IE5hbmN5 ZXJ2ZXI= IG1hc2N1bA== IGNhc3VhbHRpZXM= IDIyNQ== IFN1bGxpdmFu IENob2ljZQ== IGFzdGVy d3M= IGhvdGVscw== IGNvbnNpZGVyYXRpb25z IGNvdWNo IFN0cmlw IEdu IG1hbmlwdWxhdGU= bGllZA== IHN5bnRoZXRpYw== IGFzc2F1bHRlZA== IG9mZmVuc2Vz IERyYWtl IGltcGU= T2N0b2Jlcg== IEhlcml0YWdl aGw= IEJsYWly VW5saWtl IGdyaWVm IDQ1MA== IG9wdGVk IHJlc2lnbmF0aW9u aWxv IHZlcnNl IFRvbWI= IHVwdA== IGFpcmVk IEhvb2s= IE1MQg== IGFzc3VtZXM= b3V0ZWQ= IFZlcnM= IGluZmVyaW9y IGJ1bmRsZQ== IEROUw== b2dyYXBoZXI= IG11bHRpcA== IFNvdWxz IGlsbHVzdHJhdGVk IHRhY3RpYw== IGRyZXNzaW5n IGR1bw== Q29uZg== IHJlbGVudA== IGNhbnQ= IHNjYXJjZQ== IGNhbmR5 IENG IGFmZmlsaWF0ZWQ= IHNwcmludA== eWxhbg== IEdhcmNpYQ== IGp1bms= UHJpbnQ= ZXhlYw== Q3JpdA== IHBvcnRyYWl0 aXJpZXM= IE9GRg== IGRpc3B1dGVz V1I= TG92ZQ== 44GE IFJleW4= IGhpcHA= b3BhdGg= IGZsb29ycw== IEZlZWw= IHdvcnJpZXM= IHNldHRsZW1lbnRz IFBvcw== IG1vc3F1ZQ== IGZpbmFscw== IGNydXNoZWQ= IFByb2JhYmx5 IEJvdA== IE1hbnM= IFBlcmlvZA== IHNvdmVyZWlnbnR5 IHNlbGxlcg== IGFwb3N0 IGFtYXRldXI= IGRvcm0= IGNvbnN1bWluZw== IGFybW91cg== IFJvb3Nl IGludGVuc2l2ZQ== IGVsaW1pbmF0aW5n IFN1bm5p IEFsZXBwbw== amlu IGFkdmlzZQ== cGFs IEhhbG8= IGRlc2NlbnQ= IHNpbXBsZXI= IGJvb3Ro U1RS TGF0ZXI= IENhdmU= PT09 IG1vbA== IGZpc3Q= IHNob3RndW4= c3VwcA== IHJvYmJlcnk= RWZmZWN0 IG9ic2N1cmU= IFByb2Zlc3Npb25hbA== IGVtYmFzc3k= IG1pbGl0YW50 IGluY2FyY2Vy IGdlbmVyYXRlcw== IGxhdW5jaGVz IGFkbWluaXN0cmF0b3Jz IHNoYWZ0 IGNpcmN1bGFy IGZyZXNobWFu IFdlcw== IEpvZWw= IERyZXc= IER1bmNhbg== IEFwcGFyZW50bHk= c2lnaHQ= IEludGVybmFs IEluZGl2aWR1YWw= IEZF IGJvcmU= IE10 IGJyb2FkbHk= IE9wdGlvbnM= b3VudGFpbg== aXBlcw== IFZpZGVvcw== MjA0 IGhpbGxz IHNpbXVsYXRpb24= IGRpc2FwcG9pbnRtZW50 aXRhbg== IExhYm9yYXRvcnk= IHVwd2FyZA== IGJvdW5kYXJ5 IGRhcmtlcg== aGFydA== IGRvbWluYW5jZQ== Q29uZw== IE9yYWNsZQ== IExvcmRz IHNjaG9sYXJzaGlw IFZpbmNlbnQ= ZWRl IFJhaA== IGVuY291cmFnZXM= cm92 IHF1bw== IHByZW1pc2U= IENyaXNpcw== IEhvbG9jYXVzdA== IHJoeXRobQ== IG1ldHJpYw== Y2x1Yg== IHRyYW5zcG9ydGVk IG5vZA== IFBpc3Q= IGFuY2VzdG9ycw== IEZyZWRlcg== dGh1bWJuYWlscw== IENF T05E UGhpbA== dmVuZ2U= IFByb2R1Y3Rz Y2FzdGxl IHF1YWxpZnlpbmc= IEthcmVu VkVSVElTRU1FTlQ= IG1pZ2h0eQ== IGV4cGxhbmF0aW9ucw== IGZpeGluZw== RGk= IGRlY2xhcmluZw== IGFub255bWl0eQ== IGp1dmVu IE5vcmQ= IERvb20= IEFjdHVhbGx5 T2s= cGhpcw== IERlc2VydA== IDExNg== SUs= IEZN IGluY29tZXM= VkVM b2tlcnM= IHBlY3Vs IGxpZ2h0d2VpZ2h0 Z3Vl IGFjY2VudA== IGluY3JlbWVudA== IENoYW4= IGNvbXBsYWluaW5n IEJhZ2hk IG1pZGZpZWxkZXI= IG92ZXJoYXVs UHJvY2Vzcw== IEhvbGxvdw== IFRpdGFucw== U21hbGw= bWFudWVs IFVuaXR5 IEV2ZW50cw== U3R5 IGRpc3Byb3BvcnRpb24= bmVzdHk= ZW5lcw== IENvZA== IGRlbW9uc3RyYXRpb25z IENyaW1zb24= IE9I IGVucm9sbGVk IGNlbA== IEJyZXR0 IGFpZGU= IGhlZWxz IGJyb2FkYmFuZA== IG1hcmtpbmc= IHdpemFyZA== IE5K IENoaWVmcw== IGluZ3JlZGllbnQ= IGR1Zw== IFNodXQ= dXJjaGFzZQ== ZW5kb3I= IGZhcm1lcg== IEdvbGRtYW4= MTI5 MTU1 T3JkZXI= IGxpb24= aWFibHk= IHN0YWlu YXJyYXk= aWxpdGFyeQ== IEZBUQ== IGV4cGxvZGVk IE1jQ2FydGh5 IFR3ZWV0 IEdyZWVucw== ZWtpbmc= bG4= ZW5zZW4= IG1vdG9yY3ljbGU= IHBhcnRpY2xl IGNob2xlc3Rlcm9s QnJvbg== IHN0YWly IG94aWQ= IGRlc2lyYWJsZQ== aWJsZXM= IHRoZW9y Zm9yY2luZw== IHByb21vdGlvbmFs b3Zv Ym9vdA== IEJvbnVz cmF3bGluZw== IHNob3J0YWdl IFBzeQ== IHJlY3J1aXRlZA== IGluZmFudHM= IHRlc3Rvc3Rlcm9uZQ== IGRlZHVjdA== IGRpc3RpbmN0aXZl IGZpcm13YXJl YnVpbHQ= MTQ1 IGV4cGxvcmVk IGZhY3Rpb25z IHZpZGU= IHRhdHRvbw== IGZpbmFuY2lhbGx5 IGZhdGlndWU= IHByb2NlZWRpbmc= Y29uc3RpdHV0aW9uYWw= IG1pc2Vy IGNoYWlycw== Z2dpbmc= aXBwbGU= IGRlbnQ= IGRpc3JlZw== 55Q= c3RhbnQ= bGxv YnBz YWtlbmluZw== IGFibm9ybWFs IEVSQQ== 5aOr IEhCTw== IE1BUg== IGNvbmNlc3M= IHNlcnZhbnQ= IGFzcGly bGF2 IFBhbmVs YW1v IHByZWNpcA== IHJlY29yZGluZ3M= IHByb2NlZWRlZA== IGNvbG9ueQ== IFRhbmc= YWJsbw== IHN0cmlwcGVk TGVmdA== dG9v IHBvdGF0b2Vz IGZpbmVzdA== JSku IGNyYXA= IFphY2g= YWJhc2Vz IEdvdGg= IGJpbGxpb25haXJl d29sZg== IHNhbmN0aW9u U0s= IGxvZ2dlZA== UG8= ZXllZA== dW5hbA== IGNyaWNrZXQ= IGFybWllcw== IHVuY292ZXJlZA== Q2xvdWQ= w7Nu IHJlYm91bmRz IG1lcw== T3Blcg== UGFj IG5hdGlvbmFsbHk= IGluc2VydGVk cGljdA== IGdvdmVybmFuY2U= 0Lg= IHByaXZpbGVnZXM= R0VU IGZhdm9yaXRlcw== aW1pdHk= IGxvdmVy dGhlbQ== ZW1wbA== IGdvcmdlb3Vz QW5u IHNsaXBwZWQ= IHZldG8= Qm9i IHNsaW0= dWNj IEZhbWU= dWRkZW5seQ== IGRlbmllcw== IE1hdXI= IGRpc3RhbmNlcw== IHdhbm5h dGFy IFNFUg== IOKI IGxlbW9u YXRoZXRpYw== IGxpdGVyYWw= IGRpc3Rpbmd1aXNoZWQ= IGFuc3dlcmluZw== R0k= IHJlbGlnaW9ucw== IFBoaWxvcw== IExheQ== IGNvbXBvcw== aXJlbWVudHM= IEtvcw== aW5leg== cm9sbGluZw== IHlvdW5nZXN0 YW5kaXNl IEJvcm4= IGFsdGFy YW1pbmE= IEJvb3Q= dm9j IGRpZ2dpbmc= IHByZXNzdXJlcw== IGxlbg== MjY0 IGFzc2Fzc2luYXRpb24= IEJpcm1pbmdoYW0= IE15dGg= IHNvdmVyZWlnbg== IEFydGlzdA== IFBob3RvZ3JhcGg= IGRlcGljdGVk IGRpc3BlbnM= b3J0aHk= IGFtYnVs aW50ZWc= IENlbGU= IFRpYmV0 IGhpZXJhcmNoeQ== IGN1 IHByZXNlYXNvbg== IFBldGVyc29u IGNvbG91cnM= IHdvcnJ5aW5n IGJhY2tlcnM= IFBhbG1lcg== IM68 IGNvbnRyaWJ1dG9y IGhlYXJpbmdz IHVyaW5l INk= b3VyZ2VvaXM= U2ltaWxhcg== IFppbW1lcg== c29tZXRoaW5n IFVTQw== IHN0cmVuZ3Rocw== IEZJ IGxvZ2dpbmc= QXNrZWQ= IFRoYWk= aW5xdQ== IFdhbHQ= IGNyZXdz aXRpc20= MzAx IHNoYXJwbHk= dW1lZA== IHJlZGlyZWN0 cmF0b3Jz SW5m IFdlYXBvbnM= IHRlYXNw MTk5OQ== TGl2ZQ== IEVzcGVjaWFsbHk= IFN0ZXI= IFZldGVyYW5z IGludHJv b3RoZXJhcHk= IG1hbHdhcmU= IGJyZWVkaW5n IG1vbGVjdWxhcg== IFJvdXRl IENvbW1lbnQ= b2NoZW0= IGFpbg== U2Vhc29u IGxpbmViYWNrZXI= xKs= IEVjb25vbWljcw== ZXNhcg== IExpdmVz IEVtbWE= IGtpbg== IFRlcnJpdA== IHBsYW50ZWQ= b3Rvbg== IEJ1dHRlcg== IFNwb25z UEVS IGR1bmdlb24= IHN5bWJvbGlj IGZpbG1lZA== IGRpZXRz IGNvbmNsdWRlcw== IGNlcnRhaW50eQ== IEZvcm1hdA== IHN0cmFuZ2Vycw== Zm9ybWF0 IFBoYXNl IGNvcGllZA== IG1ldHJlcw== bGRh IFVzZXJz IGRlbGliZXJhdGU= IHdhc2hlZA== IExhbmNl aW1hdGlvbg== IGltcHJvcGVy IEdlbmVzaXM= aWNrcg== IEt1c2g= IHJlYWxpc2U= IGVtYmFycmFzc2luZw== YWxraW5n YnVja3M= IHZlcmlmaWVk IG91dGxpbmU= eWVhcnM= IEluY29tZQ== MjAy IHpvbWJpZXM= RmluYWw= IE1pbGxlbm4= IG1vZGlmaWNhdGlvbnM= IFZpc2lvbg== IE1vc2Vz dmVyYg== aXRlcnJhbmVhbg== IEpldA== IG5hdmFs IEFnZw== IHVybA== IHZpY3Rvcmllcw== IG5vbmV0aGVsZXNz IGluanVzdA== IEZhY3Q= 55o= IGluc3VmZmljaWVudA== cmV2aWV3 ZmFjZWJvb2s= IG5lZ290aWF0aW5n IGd1YXJhbnRlZXM= aW1lbg== dXRlbmJlcmc= IGdhbWJsaW5n IGNvbmdy TG9hZGluZw== IG5ldmVydGhlbGVzcw== IHByZXNpZGVudHM= IEluZHVzdHJpYWw= IDExOA== IHBvdXJlZA== IFRvcnk= IDE3NQ== IDo9 U2NvdHQ= YW5nZXJlZA== VG9r IG9yZ2FuaXplcnM= TWF0 IEdyb3d0aA== IGFkdWw= IGVuc3VyZXM= IDExNw== 6b6N5Q== IG1hc3NhY3Jl IGdyYWRlcw== YmVmb3Jl QURWRVJUSVNFTUVOVA== IFNsb3c= IE1NQQ== 4oCUIg== IFZhdGljYW4= UWFlZGE= IG93ZQ== NjY2Ng== IFNvcnJ5 IEdyYXNz IGJhY2tncm91bmRz IGV4aGF1c3RlZA== IGNsYW4= IGNvbXByb21pc2Vk IEVsZg== IElzYWFj ZW5zb24= SW52ZXN0 SUZB IGludGVycnVwdGVk 44OJ44Op IHR3aXN0ZWQ= IERyYWdvbnM= TW9kZQ== IEtyZW1saW4= IGZlcnRpbA== aGVyZXM= cGhhbg== IE5vZGU= ZmVk IE9yYw== IHVud2lsbGluZw== Q2VudA== IHByaW9yaXQ= IGdyYWR1YXRlcw== IHN1YmplY3RpdmU= IGlzc3Vpbmc= IEx0 IHZpZXdlcg== IHdva2U= VGh1cw== YnJvb2s= IGRlcHJlc3NlZA== IGJyYWNrZXQ= IEdvcg== IEZpZ2h0aW5n IHN0cmlrZXI= UmVwb3J0 IFBvcnR1Z2Fs IG5lbw== d2Vk MTk5 IGZsZWVpbmc= c2hhZG93 aWRlbnRpZmllZA== VVNF U3RlYW0= IHN0cmV0Y2hlZA== IHJldmVsYXRpb25z YXJ0ZWQ= IER3 IGFsaWdubWVudA== ZXN0b24= IEphcmVk U2Vw IGJsb2dz dXBkYXRl Z29t cmlzaw== IGNsYXNo IEhvdXI= IHJ1bnRpbWU= IHVud2FudGVk IHNjYW0= IHJhY2s= IGVubGlnaHQ= b25lc3Q= IEZlcnI= IGNvbnZpY3Rpb25z IHBpYW5v IGNpcmN1bGF0aW9u IFdlbGNvbWU= IGJhY2tsYXNo IFdhZGU= IHJlY2VpdmVycw== b3RpdmU= SmVmZg== IG5ldHdvcmtpbmc= IFByZXA= IEV4cGxvcmVy IGxlY3R1cmU= IHVwbG9hZGVk IE1lYXQ= QkxF IE5hemlz IFN5bmQ= c3R1ZA== cm9vdHM= cmlhbnM= IHBvcnRyYXllZA== ID8/ IEJ1ZGRoYQ== c3Vu Um9iZXJ0 IENvbXBsZXg= IG92ZXJzZWU= IHN0ZWFsdGg= VGl0bGU= IEpvYnM= IEt1bQ== IGFwcHJlY2lhdGlvbg== IE1PRA== IGJhc2ljcw== IGNsaXBz IG51cnNpbmc= IHByb3Bvc2l0aW9u IHJlYWxpc2Vk IE5ZQw== IGFsbG9jYXRlZA== cml1bQ== YXJhbg== IFByb2R1Y3Rpb24= IFZvdGU= IHNtdWdn IGh1bnRlcg== YXplcg== IENoYW5nZXM= IGZsdWN0 eW9u QXJyYXk= IGtpdHM= V2F0ZXI= IHVuY29tbW9u IHJlc3Rpbmc= ZWxscw== d291bGQ= IHB1cnN1ZWQ= IGFzc2VydGlvbg== b21ldG93bg== IE1vc3Vs IFBsYXRmb3Jt aW9sZXQ= IHNoYXJlaG9sZGVycw== IHRyYWlscw== UGF5 IEVuZm9yY2VtZW50 dHlwZXM= IEFub255bW91cw== IHNhdGlzZnlpbmc= aWxvZ3k= ICgn d2F2ZQ== Y2l0eQ== U3RldmU= IGNvbmZyb250YXRpb24= IEVsZA== Q2FwdA== YWhhbg== aHRt IEN0cmw= T05T MjMw aWZh aG9sZGluZw== IGRlbGljYXRl IGphdw== IEdvaW5n b3J1bQ== U2Fs IGR1bGw= IEJldGg= IHByaXNvbnM= IGVnbw== IEVsc2E= YXZvcml0ZQ== IEdhbmc= IE51Y2xlYXI= IHNwaWRlcg== YXRzdQ== IHNhbXBsaW5n IGFic29yYmVk IFBoYXJt aWV0aA== IGJ1Y2tldA== IFJlY29tbQ== T0Y= IEZhY3Rvcnk= QU5DRQ== IGJhY3Rlcg== SGFz IE9ic2Vydg== MTIx IHByZW1pZXJl RGV2ZWxvcA== IGN1cnJlbmNpZXM= Q2FzdA== IGFjY29tcGFueWluZw== IE5hc2h2aWxsZQ== IGZhdHR5 IEJyZW5k IGxvY2tz IGNlbnRlcmVk IFVU YXVnaHM= b3JpZQ== IEFmZm9yZGFibGU= dmFuY2U= REw= ZW1ldA== IHRocm9uZQ== IEJsdWV0b290aA== IG5hbWluZw== aWZ0cw== QURF IGNvcnJlY3RlZA== IHByb21wdGx5 IFNUUg== IGdlbm9tZQ== IGNvcGU= IHZhbGxleQ== IHJvdW5kZWQ= IEtlbmQ= YWxpb24= cGVycw== IHRvdXJpc20= IHN0YXJr dmw= IGJsb3dpbmc= IFNjaGVkdWxl c3Rk IHVuaGFwcHk= IGxpdGlnYXRpb24= Y2VkZXM= IGFuZHJvaWQ= IGludGVncmFs ZXJlcnM= dWRlZA== dGF4 IHJlaXRlcg== IE1vdG9ycw== b2NpYXRlZA== IHdvbmRlcnM= IEFwb3N0 dWNraW5n IFJvb3NldmVsdA== ZnJhbQ== IHlpZWxkcw== IGNvbnN0aXR1dGVz YXdr SW50ZXJlc3Q= IGludGVyaW0= IGJyZWFrdGhyb3VnaA== IENoZXI= IHByb3NlYw== IERq IE1U UmVzcA== IFBU IHNwZXJt ZWRpdA== QlQ= TGludXg= Y291bnRyeQ== bGVhZ3Vl IGRpY2s= IG9jdA== IGluc2VydGluZw== IHNjcmE= IEJyZXdpbmc= IDE5NjY= IHJ1bm5lcnM= IHBsdW4= aWR5 IERpYW4= IGR5c2Z1bmN0aW9u IGV4Y2x1c2lvbg== IGRpc2dy IGluY29ycG9yYXRl IHJlY29uYw== IG5vbWluYXRlZA== IEFyY2hlcg== ZHJhdw== YWNoZWxvcg== IHdyaXRpbmdz IHNoYWxsb3c= IGhhc3Q= IEJNVw== IFJT IHRoaWdo IDE5NjM= IGxhbWI= IGZhdm9yZWQ= YWdsZQ== IGNvb2xlcg== IEhvdXJz IEdV IE9yaWdpbg== IGdsaW1wc2U= LS0tLS0tLS0tLS0tLS0tLS0tLS0= TGlt IGNoZWVr IGplYWxvdXM= LSc= IGhhcm5lc3M= IFBvaXNvbg== IGRpc2FiaWxpdGllcw== bmVhcG9saXM= IG91dGxvb2s= IG5vdGlmeQ== IEluZGlhbmFwb2xpcw== IGFicnVwdA== bnNpYw== IGVuY3J5cHRlZA== IGZvcmZl cmVhdGg= IHJhYmI= IGZvdW5kYXRpb25z IGNvbXBsaW1lbnQ= IEludGVydmlldw== IFN3ZQ== IGFkb2xlc2M= IG1vbml0b3Jz IFNhY3JhbWVudG8= IHRpbWVseQ== IGNvbnRlbXBs IHBvc2l0aW9uZWQ= IHBvc3RlcnM= cGhpZXM= aW92YXNjdWxhcg== dm9pZA== IEZpZnRo IGludmVzdGlnYXRpdmU= T1VO IGludGVncmF0ZQ== IElOQw== aXNoYQ== aWJsaW5ncw== IFJlcXVlc3Q= IFJvZHJpZ3Vleg== IHNsaWRlcw== IERY IGZlbWluaXNt IGRhdGFz IGJlbmQ= aXJ1cw== IE5pZ2VyaWE= Rm94 Q2hhbmdl IGFpcnBsYW5l IExhZGVu IHB1YmxpY2l0eQ== aXh0eQ== IGNvbW1pdG1lbnRz IGFnZ3JlZ2F0ZQ== IGRpc3BsYXlpbmc= IEFycm93 IDEyMg== IHJlc3BlY3Rz YW5kcm9pZA== c2l4 IFNoYQ== IHJlc3RvcmF0aW9u KVw= V1M= b3lz IGlsbHVzdHJhdGU= d2l0aG91dA== MTI2 IOKUgg== IHBpY2t1cA== bmVscw== IC4uLi4= Zm9vZA== IEZlbg== KT8= IHBoZW5vbWVuYQ== IGNvbXBhbmlvbnM= IFdyaXRl IHNwaWxs IGJyaWRnZXM= IFVwZGF0ZWQ= IEZv IGluc2VjdHM= QVNISU5HVE9O IHNjYXJl aWx0cg== IFpoYW5n IHNldmVyaXR5 IGluZHVs MTQ5 IENvZmZlZQ== IG5vcm1z IHB1bHNl IEZU IGhvcnJpZmlj IERlc3Ryb3k= IEpTT04= IG9saXZl IGRpc2N1c3Nlcw== UmVzdA== RWxlY3Q= IFdpbm4= IFN1cnZpdg== IEhhaXQ= U3VyZQ== b3BlZA== IHJvb3RlZA== IFNrZQ== IEJyb256ZQ== IGxvbA== RGVmYXVsdA== IGNvbW1vZGl0eQ== cmVkaXRlZA== IGxpYmVydGFyaWFu IGZvcmJpZGRlbg== IGdyYW4= 4Kg= IGxhZw== ZW56 ZHJpdmU= IG1hdGhlbWF0aWNz IHdpcmVz IGNyaXRpY2FsbHk= IGNhcmJvaHlk IENoYW5jZWxsb3I= IEVkZGll IGJhbm5pbmc= IEZyaQ== IGNvbXBsaWNhdGlvbnM= ZXRyaWM= IEJhbmdsYWRlc2g= IGJhbmR3aWR0aA== U3RvcA== IE9yaWdpbmFsbHk= IGhhbGZ3YXk= eW5hc3R5 c2hpbmU= IHRhbGVz cml0aWVz YXZpZXI= IHNwaW5uaW5n IFdITw== IG5laWdoYm91cmhvb2Q= YmFjaA== IGNvbW1lcmNl IFNsZQ== QlU= IGVudHJlcHJlbmV1cg== IHBlY3VsaWFy IENvbW1lbnRz ZnJl MzIw SUNT IGltYWdlcnk= IENhbm9u IEVsZWN0cm9uaWM= c2hvcnQ= KCg= RGln IGNvbW1lbQ== dWNlZA== IGluY2xpbmVk IFN1bW1vbg== IGNsaWZm IE1lZGl0ZXJyYW5lYW4= IHBvZXRyeQ== IHByb3NwZXJpdHk= IFJlY2U= IHBpbGxz bWVtYmVy IGZpbmFsZQ== dW5j IEdpZw== 5L0= IGxvZA== IGJhY2t3YXJk LSs= IEZvcndhcmQ= IHRocmk= c3VyZQ== IHNvYXA= IEZY UkVT IFNleHVhbA== b3Vsb3M= IGZvb2xpc2g= IHJpZ2h0ZW91cw== IGNvZmY= dGVycm9yaXNt dXN0YWlu b3Rlcg== IGFidXNlcw== bmV4dA== IGFidXNpdmU= IHRoZXJlYWZ0ZXI= IHByb2hpYml0aW9u IFNVUA== IGRpcA== IHJpcHBlZA== IGluaGVyaXRlZA== IGJhdHM= c3RydQ== R1Q= IGZsYXdlZA== cGhhYmV0 IGZvZw== ZG9vcnM= IGltYWdpbmc= IGRpZ2l0cw== IEh1bmdhcnk= IGFycm9n IHRlYWNoaW5ncw== IHByb3RvY29scw== IEJhbmtz 4Lg= cG91bmQ= IEN1cnQ= LiIp Li8= IGV4ZW1wdGlvbg== ZW5kaXg= IE11bGw= IGltcHJvdmVz IEdhbWVy ZGltZW5zaW9uYWw= SWNvbg== IE1hcmdhcmV0 U3RhdHVz ZGF0ZXM= IGludGVuZHM= IGRlcGljdA== IHBhcmtlZA== Sm9l IE1hcmluZXM= Y2hub2xvZ3k= ISku IGp1ZGdlZA== IHdlaWdodHM= UmF5 IGFwYXJ0bWVudHM= aGVzdGVy IHJlaW5mb3JjZQ== IG9mZmVuZGVy b2NjdXA= IHNvcmU= ZXB0 IFBIUA== IEJyb3c= IGF1dGhvcml6YXRpb24= IFJpc2s= IERlbGF3YXJl IFFV IG5vdGlmaWNhdGlvbnM= IHN1bmxpZ2h0 IGV4Y2x1ZGU= ZGF0 IG1lc2g= IFN1ZGFu IGJlbG9uZ2Vk IHN1YndheQ== IG5vb24= IEludGVyaW9y b2xpY3M= IExha2Vycw== IGNvZGluZw== RGlzY2xhaW1lcg== Q2FsaWY= T2xk IGRpc2w= Pz8/Pz8= IGNvbmZpcm1z IHJlY3J1aXRtZW50 IGhvbWljaWRl Q29uc2lkZXI= IEplZmZyZXk= ZnR5 fTs= IG9iamVjdGlvbg== ZG9pbmc= IExlbw== V2FudA== IGdsb3c= IENsYXJrZQ== IE5vcm1hbg== IHZlcmlmaWNhdGlvbg== IHBhY2tldA== IEZvcm11bGE= IHBsYWc= ZXN2aWxsZQ== IHNob3V0aW5n IG92 IFJFQw== IEJ1Yg== IG5pbnRo IGVuZXJn IHZhbGlkaXR5 IHVwcw== amFjaw== IG5laWdoYm9yaW5n IE5lYw== ZXdvcmtz IEhhYg== YXJleg== IHNwaW5l IGV2ZW50dWFs IExlYWRlcnM= IENhcm4= IHByb2JhdGlvbg== IHJvbWFuY2U= bXNn IE1lY2hhbmljYWw= RVJZ Um9jaw== IHBhcnRpc2Fu Tm9kZQ== YXNzZXRz bWluZW50 IGZvcmVpZ25lcnM= IHRlc3RpZnk= IFVzdWFsbHk= bG9yZHM= IEdyZW4= IFBvd2VsbA== QklM IHNy IGFkZGljdA== IHNoZWxscw== IHNpZ2g= IFlhbGU= dGVybml0eQ== IDc1MA== RVU= IFJpZmxl IHBhdHJvbg== ZW1h IEJhbm5vbg== YW5pdHk= IHRyb3BpY2Fs IFZJSQ== Y3Jvc3M= RXZlcnl0aGluZw== IElTTw== IGh1bWJsZQ== YXNzaW5n IEZJRw== IHVwZGF0aW5n eXNvbg== IGNhbGNpdW0= IGNvbXBldGVudA== IHN0ZWVyaW5n UHJvdA== IFNZ IEZpbmFscw== IFJ1Zw== MTU5 MTM3 IEdvbGY= IDEyNg== IGFjY29tbW9kYXRpb24= IEh1Z2hlcw== IGFlc3RoZXRpYw== YXJ0aXNhbg== IFR3aWxpZ2h0 IHByaW5jZQ== IEFncmljdWx0dXJl IERpc2Nv IHByZWNlZGVudA== IHR5cGluZw== YXV0aG9yaXplZA== T3B0aW9u IEF1Yg== bGlzaGVz YWNodA== bWFn UGV0ZXI= IFVGTw== bW9udG9u IExpdGg= IGFyb20= IHNlY3VyaW5n IGNvbmZpbmVk cHJpdmF0ZQ== IHN3b3Jkcw== IG1hcmtlcnM= IG1ldGFib2xpYw== c2VsZWN0 IEN1cnNl IE90 Z3Jlc3NpdmU= IGluY3VtYg== IFNhZ2E= IHByaWNlZA== IGNsZWFyYW5jZQ== Q29udGVudA== IGRyaWxsaW5n IG5vdGljZXM= IGJvdXJnZW9pcw== IHZlc3Q= IGNvb2tpZQ== IEd1YXJkaWFucw== cnlz aW55bA== IDEyNA== IHBsYXVzaWJsZQ== b25naA== IE9kaW4= IGNvbmNlcHRpb24= IFl1aw== IEJhZ2hkYWQ= IEZsYWc= QXVzdHJhbA== IElCTQ== IGludGVybmF0aW9uYWxseQ== IFdpa2lMZWFrcw== SUVE IGN5bg== IGNob29zZXM= IFBpbGw= IGNvbWJpbmluZw== IHJhZGk= IE1vaGFtbWVk ZGVmZW5zZQ== YXRjaGluZw== U3ViamVjdA== aWNpZW5jeQ== RnJhbWU= IHsi IGNoZXNz IHRpbWVy MTkw IHRpbg== IG9yZGluYW5jZQ== ZW1ldGVyeQ== IGFjY3VzaW5n IG5vdGljZWFibGU= IGNlbnRyZXM= IGxpZA== IE1pbGxz aW1ndXI= IHpvb20= ZXJnaWM= IGNvbXByZXNzaW9u cHJpbQ== ZmluZA== IHN1cmc= IHBhbmQ= IEtlZQ== IENoYWQ= Y2VsbGVuY2U= b3lsZQ== IHNvY2lhbGlzbQ== IFRyYXZpcw== IE1Ieg== IGd1aWxk QUxMWQ== IFN1YnNjcmliZQ== IFJlbGF0ZWQ= IG9jY3VycmVuY2U= aXRjaGluZw== IGZpY3Rpb25hbA== IGNydXNo IEVB Y29k bWl4 IFRyaXBsZQ== IHJldHJpZXZl IHN0aW11bHVz IHBzeWNoaWF0 IERvb3I= IGhvbW9zZXh1YWxpdHk= IGVsZW1lbnRhcnk= IGNlbGx1bGFy aWRpYW4= IExhdW4= IGludHJpZ3Vpbmc= IGZvYW0= IEJhc3M= aWRp aXRzdQ== IGFzc3VyZQ== IGNvbmdyYXQ= IGJ1c2luZXNzbWFu IEJvb3N0 Y2xvc2U= IGxpZWQ= IHNjaWVuY2Vz IE9tZWdh IEdyYXBoaWNz IDw9 c3Bva2Vu IGNvbm5lY3Rpdml0eQ== U2F0dXJkYXk= IEF2ZW5nZXJz IHRvZ2dsZQ== IGFua2xl IG5hdGlvbmFsaXN0 bW9kZWw= IFBvb2w= b3Bob2JpYQ== VmFy IE1vbnM= YXRvcmllcw== IGFnZ3Jlc3NpdmVseQ== Q2xlYXI= Rm9yZ2U= YWN0ZXJz IGhlZGdl IHBpcGVz IGJsdW50 IHNx IHJlbW90ZWx5 V2Vk YXNlcnM= IHJlZnJpZ2Vy IHRpbGVz IHJlc2N1ZWQ= IGNvbXByaXNlZA== aW5za3k= IG1hbmlm YXZhbmF1Z2g= IHByb2xpZmVy IGFsaWduZWQ= eG1s IHRyaXY= IGNvb3JkaW5hdGlvbg== IFBFUg== IFF1b3Rl MTM0 YmY= IFNhdw== IHRlcm1pbmF0aW9u IDE5MA== IGFkZGl0aW9ucw== IHRyaW8= IHByb2plY3Rpb25z IHBvc2l0aXZlbHk= IGluY2x1c2l2ZQ== IG1lbWJy MTk5MA== b2xkZXI= IHByYWN0aWNlZA== aW5rbGU= QXJjaA== IHN0YXJ0ZXJz YXJpdXM= IGludGVybWVkaWF0ZQ== IEJlbmVm IEtpbGxlcg== IGludGVydmVudGlvbnM= IEtpbA== IEZseWluZw== SW52 IHByZW1hdHVyZQ== IHBzeWNoaWF0cmlj IGluZGll IGNvbGxhcg== IFJhaW5ib3c= YWZp IGRpc3J1cHRpb24= IEZPWA== Y2FzdGluZw== IG1pc2RlbQ== Y3Jv IHdpcGU= YXJkb24= IGJhc3Q= IFRvbW15 IFJlcHJlc2VudGF0aXZl IGJlbGx5 IFBP IEJyZWl0YmFydA== MTMy IG1lc3NhZ2luZw== U2hvdWxk UmVmZXJlbmNlcw== IEdSRQ== aXN0aWNhbA== TFA= IENhdg== IENyYXp5 IGludHVpdGl2ZQ== a2VlcGluZw== IE1vc3M= IGRpc2NvbnRpbg== IE1vZHVsZQ== IHVucmVsYXRlZA== IFByYWN0aWNl IFRyYW5zcG9ydA== IHN0YXRpc3RpY2FsbHk= b3Jucw== IHNpemVk cHU= IGNhZg== IFdvcmxkcw== IFJvZGdlcnM= IEx1bg== IENvbWlj bGl2aW5n IGNhcmVk IGNsaW1iZWQ= KXs= IGNvbnNpc3RlZA== IG1lZGlldmFs Zm9saw== IGhhY2tlZA== IGRpcmU= IEhlcm1pb25l IHRlbmRlZA== Y2VhbnM= RGFuaWVs d2VudA== IGxlZ2lzbGF0b3Jz IHJlZGVz Z2FtZXM= IGdu YW1pbGlhcg== ICsr Z2d5 dGhyZWF0 IG1hZ25ldA== IHBlcmNlaXZl IHppcA== IGluZGljdG1lbnQ= IGNyaXRpcXVl Z2FyZA== IFNhZmU= IENyZWFt IGFkdmVudA== b2Jh IHZvd2Vk b3VzYW5kcw== IHNraQ== IGFib3J0aW9ucw== dWFydA== IHN0dW5uZWQ= IGFkdmFuY2luZw== IGxhY2tlZA== IFwi IHNjaGl6b3BocmVu IGVsZWdhbnQ= IGNvbmZlcmVuY2Vz IGNhbmNlbGVk IEh1ZHNvbg== IEhvcGVmdWxseQ== IHRydW1w IGZyZXF1ZW5jaWVz IG1ldGVvcg== IEp1bmlvcg== IEZsZWV0 IE1hbGNvbG0= IFRvb2xz IC4uLi4uLi4u IGhvYmJ5 IEV1cm9wZWFucw== IDE1MDA= IEludG8= IHN3YXk= IEFwcHJv IENvbXBs Q29tbXVuaXR5 IHRpZGU= IFN1bW1pdA== 5Ls= IGludGVydmFscw== IEV0aGVy IGhhYml0YXQ= IFN0ZXZlbnM= bGlzaGluZw== IERvbWFpbg== IHRyaWdnZXJz IGNoYXNpbmc= IGNoYXJt IEZsb3dlcg== aXRvcmVk IGJsZXNzaW5n IHRleHR1cmVz Rml2ZQ== IGxpcXVvcg== UlA= RklO IDE5NjI= Q0FS VW5rbm93bg== IHJlc2ls IExpbHk= IGFidW5kYW5jZQ== IHByZWRpY3RhYmxl cmFy IGJ1bGxzaGl0 bGVlbg== Y2hldA== TW9y TXVjaA== 5Lk= IGVtcGhhc2l6ZWQ= IGNydXN0 IHByaW1pdGl2ZQ== IGVuam95YWJsZQ== IFBpY3R1cmVz IHRlYW1tYXRl cGxlcg== IFRvbA== IEthbmU= IHN1bW1vbmVk dGh5 cmFtYQ== IEhvbmRh IHJlYWxpemluZw== IHF1aWNrZXI= IGNvbmNlbnRyYXRl Y2xlYXI= IDIxMA== IEVyZG9nYW4= YXJpcw== IHJlc3BvbmRz IEJJ IGVsaWdpYmlsaXR5 IHB1c2hlcw== IElkYWhv IGFnZ3Jhdg== IHJ1aW5z dXJhdGlvbnM= IGJhbnM= IGFuYXQ= c2hhcmU= IGdyaW5k aGlu dW1lbg== IHV0aWxpdGllcw== IFlhbmtlZXM= IGRhdGFiYXNlcw== IERE IGRpc3BsYWNlZA== IGRlcGVuZGVuY2llcw== IHN0aW11bGF0aW9u aHVu aG91c2Vz IFByZXR0eQ== IFJhdmVucw== IFRPREFZ IGFzc29jaWF0ZXM= IHRoZXJhcGU= Y2xlZA== IGRlZXI= IHJlcGFpcnM= cmVudGljZQ== IHJlY2VwdG9ycw== IHJlbWVk IENl IG1hcnJpYWdlcw== IGJhbGxvdHM= IFNvbGRpZXI= IGhpbGFyaW91cw== b3Bs MTM4 IGluaGVyZW50bHk= IGlnbm9yYW50 IGJvdW5jZQ== IEVhc3Rlcg== UkVMQVRFRA== IEN1cnJlbmN5 RVY= 44Oe IExlYWQ= IGRlY2Vhc2Vk QnJpZW4= IE11c2s= SlM= IG1lcmdl aGVhcnRlZA== Y3JlYXQ= bWl0dA== bXVuZA== IOKAiw== IEJhZw== IHByb2plY3Rpb24= IGphdmE= IFN0YW5kYXJkcw== IExlb25hcmQ= IGNvY29udXQ= IFBvcHVsYXRpb24= IHRyYWplY3Q= IGltcGx5 IGN1cmlvc2l0eQ== IERC IEZyZXNo IFBvcg== IGhlYXZpZXI= bmV5cw== Z29tZXJ5 IGRlc2VydmVk IHBocmFzZXM= IEdD IHllYXN0 ZGVzYw== RGVhdGg= IHJlYm9vdA== IG1ldGFkYXRh SUNBTA== IHJlcGF5 IEluZGVwZW5kZW5jZQ== IHN1YnVyYmFu aWNhbHM= IGF0b3A= IGFsbG9jYXRpb24= Z2VuZXJhdGlvbg== IEdyYW0= IG1vaXN0dXJl IHBpbmU= IExpYmVyYWxz IGFpZGVz IHVuZGVyZXN0 IEJlcnJ5 IGNlcmVtb24= Mzcw YXN0cm91cw== IFBpcmF0ZXM= IHRlbnNl IEluZHVzdHJpZXM= IEFwcGVhbHM= IE5lYXI= IOijj+c= IGxvdmVycw== IENBUA== IENyYXc= IGdpYW50cw== IGVmZmljYWN5 RWxlbWVudA== IEJlaGF2aW9y IFRveW90YQ== IGludGVzdA== UHJpdg== QUk= IG1hbmV1dmVy IHBlcmZlY3Rpb24= IGJhbmc= cGFwZXI= cmlsbA== R2Vvcmdl Ym9yZGVy aW50ZXJz IFNldGg= IGNsdWVz IExldmk= IFJldmVudWU= MTQ3 IHZhcG9y IGZvcnR1bmF0ZQ== IHRocmVhdGVucw== IHZldA== IGRlcGVuZGVuY3k= ZXJzZWQ= YXJ0aWNsZQ== IEJsaXp6YXJk IGNobG9y IG1pbnVz IEJpbGxz IGNyeXB0b2N1cnJlbmN5 IG1ldGFib2xpc20= dGVyaW5n IHBlc3RpYw== c3RlcHM= IFRyZWFzdXJl cmFjdGVk IENvbnN0YW50 IHRlbXA= MTM5 IERldGVjdGl2ZQ== dXJhbGx5 IHJlY292ZXJpbmc= IGNvcnRleA== IDE0NA== Y2xvc2Vk IHByZWp1ZGljZQ== YXVudGVk IHN0b3Jtcw== IE5PVw== IG1hY2hpbmVyeQ== QWRkcmVzcw== IGNvbXBlbGxlZA== Mjcw IGRlc3BhaXI= YmFuZQ== IHZlZ2V0YWJsZQ== IGJlZHM= TGVhcm4= IGNvbG9yZnVs IHNwaWtl IG1hcmdpbnM= IHN5bXBhdGh5 IHdvcmtzaG9w IENCQw== U2F0 IGJ1cm5z IEdlbmRlcg== IDEyOQ== IENhYmxl IGRlYnRz IFRoZXJlc2E= IHJlZmxlY3Rpbmc= IGFpcnN0 IHJpbQ== cmFtaWQ= IHdlYWtuZXNzZXM= V3JpdA== b2dnbGU= dGk= IENoYXJnZQ== IHdlaWdoZWQ= ICgu IGxhdWdodGVy IHJvdXRlcg== IERlbW9jcmFjeQ== RGVhcg== IGhhc2h0 IGR5 IGhpbnRz cnVubmluZw== IGZpbmlzaGVz YXJ1cw== TWFzcw== cmVzdWx0 YXNjdXM= IHZpbnRhZ2U= IGNvbnF1 IHdpbGRseQ== YWNpc3Q= IGxpbmd1 IHByb3RhZ29uaXN0 c3Ryb20= dGVlbnRo IFNvbG8= bWFj ZmlsbGVk IHJlbm93bg== aXRpdmVz IG1vdGl2ZQ== IEFudGFy IE1hbm4= IEFkanVzdA== IHJvY2tldHM= IHRyb3VibGluZw== ZWk= IG9yZ2FuaXNtcw== YXNzaXM= Q2hyaXN0aWFu IDE0NQ== IEhhc3M= IHN3YWxs IHdheA== IFN1cnZpdmFs VlM= IE11cmQ= dmQ= c3RhbmRhcmQ= IGRyYWdvbnM= IGFjY2VsZXJhdGlvbg== cmF0aW9uYWw= ZmluYWw= IHBhaXJlZA== IEV0aGVyZXVt IGludGVyZmFjZXM= IHJlc2VudA== IGFydGlmYWN0cw== xas= YXJlbA== IGNvbXBldGl0b3I= IE5pY2hvbGFz IFN1cmZhY2U= Y3Bw IFRvdA== IGVjb25vbWljYWxseQ== IG9yZ2FuaXNlZA== IGVuZm9yY2Vk aW5obw== IHZhcmlldGllcw== IGFiZG9t IEJhaWxleQ== aWRhdg== IFNhbHY= cGFpZA== IGFsdGl0dWRl ZXNzZXJ0 IEd1dGVuYmVyZw== YXJlYQ== b3BvdWxvcw== IHByb2Zlc3NvcnM= aWdncw== IEZhdGU= aGV5 IDMwMDA= RGlzdA== IHR3aW5z Y2lsbA== IE1hcHM= IHRyYXBz IHdlZWQ= IEtpc3M= IHlvZ2E= IHJlY2lwaWVudHM= IFdlc3RtaW5zdGVy IHBvb2xz IFdhbG1hcnQ= MTg4 IFNjaG9vbHM= YXR0YWNr IEFSTQ== cGFyYWdyYXBo V2FybmluZw== amw= IHNlbGZpc2g= YW5jaGV6 IEhlaWdodHM= RnJl IFNvcGg= IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t dG1s MzMz IHJhaWRz IHNhdGVsbGl0ZXM= S0VZ IGxhc3Rz 0YI= SW5z IERhbWU= IHVucHJlZGljdA== Ly8v Z2hhaQ== IGFydGlsbGVyeQ== IGNydWlzZQ== IGdlbA== IENhYmluZXQ= IGJsb3dz IEVzcA== IHByb3hpbWl0eQ== b3RoZQ== IFNraWxscw== IFVwcGVy b2Jv IE5EUA== IGVuam95cw== IHJlcGVhdGluZw== IENvbnN0cnVjdGlvbg== IFF1ZXN0aW9ucw== SGlsbGFyeQ== IHVpbnQ= IHByb2Nlc3NvcnM= IEdpYnNvbg== IE11bHRpcGxl cWE= IEJvbQ== IE1pbGVz dmVudGlvbmFs IGh1cnRz c2tpbg== IEFJRFM= IGFkdmlzZXJz IFJvb3Q= IG1ldGhvZG9sb2d5 IERhbGU= IGRldG9u IEtub3dsZWRnZQ== c2VxdWVudGx5 IDEyMQ== IGNvbm5lY3Rz Q3k= IERhbmdlcg== IGNvbnRyaWJ1dG9ycw== IEJlbnQ= IGJyYXNz IEd1bnM= aW50bw== IEZvcnR1bmU= IGJyb2tlcg== YmFsYW5jZQ== IGxlbmd0aHM= IHZpYw== IGF2ZXJhZ2luZw== IGFwcHJvcHJpYXRlbHk= IENhbWVyYQ== IHNhbmR3aWNo IENEQw== IGNvb3JkaW5hdGU= IG5hdmln IGdvb2RuZXNz bGFpbQ== IGJyYWtl IGV4dHJlbWlzdA== IFdha2U= IE1lbmQ= IFRpbnk= IENPTA== IFJG IER1YWw= IFdpbmU= Q2FzZQ== IHJlZmluZWQ= IGxhbXA= TGVhZA== IGJhcHQ= IENhcmI= IFNhZGQ= IE1pbm5lYXBvbGlz UERG RWFybHk= IEhpZGRlbg== SXRz IFRJTUU= IHBhcA== IGNvbW1pc3Npb25lZA== IEZldw== IENvbHRz IEJyZW4= IGJvdGhlcmVk IGxpa2V3aXNl RXhwZXI= IFNjaHc= Y3J5 bm4= IE1pdGNo aW1vbg== TUc= Ym0= VU1Q cmF5cw== IHJlZ2lzdHJ5 IDI3MA== YWNoaW5l cmVsbGE= YW50aW5n MDAwMDA= IHJ1aW5lZA== c3BvdA== IHRh IG1heGltaXpl IGluY29udmVu RGVhZA== SHVtYW4= RW5hYmxlZA== IE1hcmll IGNoaWxs IFBhcmFkaXNl IHN0YXJyaW5n IExhdGlubw== IFByb3RvY29s IEVWRVI= IHN1cHBsaWVycw== bWVzc2FnZQ== IEJyb2Nr IHNlcnVt 4paI4paI4paI4paI IGVuY29tcA== IGFtYml0aW9u dWVzZQ== IGFycm93cw== QW5kcmV3 IGFudGVubmE= IDE5NjE= IEJhcms= IGJvb2w= 44Kq IFN0b3JhZ2U= IHJhaWx3YXk= IHRvdWdoZXI= IENhZA== IHdhc2hpbmc= UHk= J10= ZW1iZWQ= IE1lbXBoaXM= YWNrbGU= IGZhbW91c2x5 IEZvcnR1bmF0ZWx5 b3ZpZXM= IG1pbmRzZXQ= IHNuZWFr IERo UkFX IFNpbXBzb24= IGxpdmVzdA== IGxhbmRtYXJr IGNlbWVudA== TG93 IHRocmlsbGVk IENvdXJzZQ== aW5lbA== IGNodWNr aWRhdGU= Z2xvYmFs IHdoaXQ= IO+/vQ== YWRheXM= c2tp IFNW IHZpcnVzZXM= MzA2 IFJlc3BvbnM= IHRoZWF0ZXJz IEJyYW5jaA== IEdlbmV2YQ== IE1L IHVuYmVsaWV2 IGNvbW11bmlzdA== T3JpZ2luYWw= IFJlY2VpdmVk IFRyYW5zZmVy IEFyZw== SW5wdXQ= IFN0cmF0ZWd5 IHBhbGFjZQ== dGhlbmluZw== RHJp IHNlbnRlbmNpbmc= dW1ibmFpbA== IHBpbnM= cmVjeQ== IHNpYmxpbmdz R2V0dGluZw== IEJV IE5vcnRod2VzdA== IHByb2xvbmdlZA== IFNha3VyYQ== Q29tYg== IEJvdXI= IGluYWRlcXVhdGU= IEthc2g= IHVzZXJuYW1l IEltcHJvdmU= IGJhdHRsaW5n IE1BQw== IGN1cnJpY3VsdW0= IHNvZGE= IENhbm5vbg== IHNlbnNpYmxl c3BvbnM= RGVjZW1iZXI= IHdpY2tlZA== IFBlbmd1 IGRpY3RhdG9ycw== IEhlYXJ0cw== b2d5bg== IHNpbWlsYXJpdGllcw== IFN0YXRz IGhvbGxvdw== aXRhdGlvbnM= Ijpb IGhvdmVy IExpc3Rlbg== c2No U3VuZA== IGNhZA== IFBhcmtz IGx1cg== IGh5cGU= IExlbQ== TkFNRQ== aXN1cmU= RnJpZGF5 IHNob290cw== IGNsb3Nlcw== IGRi IFJpZGdl IERpZmZlcmVudA== IHJlcGxpZXM= IEJyb2Fkd2F5 b3BlcnM= IGludG9sZXI= IFpldXM= YWtlc3Bl IHByb3ByaWV0YXJ5 IHJlcXVlc3Rpbmc= IGNvbnRyb2xsZXJz IE1JTg== aW1lZGlh YmVjY2E= IGV4cGFucw== IG9pbHM= Qm90 IENoYW5k IHByaW50ZXI= IHRvcHBlZA== IFBPTA== IEVhcmxpZXI= U29jaWFs YXZpbg== IGRlY3JlYXNlcw== IFNlYg== IHNwZWNpZmljYXRpb25z IEJsYXN0 IEt1cnQ= IGZyZWVs QnJvd24= IGRpbGln cm9l IFByb2JsZW0= IFF1YWQ= IGRlY2VudHJhbA== IFZlY3Rvcg== YW51dA== IHBsdWdpbnM= IEdyZWdvcnk= IGZ1Y2tlZA== ZWxpbmVz IEFtYmFzc2Fkb3I= dGFrZQ== IGNsZWFucw== b25neWFuZw== QW5vbnltb3Vz c3Rybw== In0= YWxpbmU= IE9kZA== IEV1Zw== MjE2 IGJvaWw= IFBvd2Vycw== IG51cnNlcw== T2J2aW91c2x5 IFRlY2huaWNhbA== IGV4Y2VlZGVk T1JT IGV4dHJlbWlzdHM= IHRyYWNlcw== ZXhwbA== IGNvbXI= IFNhY2g= KS8= IG1hc2tz IHNjaQ== Qm9u IHJlZ3Jlc3Npb24= d2VnaWFu IGFkdmlzb3I= aXR1cmVz IFZv ZXhhbXBsZQ== IEluc3RydWN0 IHNpZWdl IHJlZHVjdGlvbnM= cHRy IHN0YXR1dG9yeQ== IHJlbW92ZXM= IHB1Y2s= cmVkaXRz IGJlZQ== IHNhbGFk IHByb21vdGlvbnM= IEpvc2h1YQ== d2l0aHN0YW5kaW5n RVRI IENoYQ== aW11cw== IGV4cGVuZGl0dXJl YXVudGluZw== IGRlbGlnaHRlZA== IDE1NQ== YmVo IGNhcnBldA== IFNwYXJ0 IGp1bmdsZQ== bGlzdHM= IGJ1bGx5aW5n IE5vYmVs IEdsZW4= IHJlZmVyZW5jZWQ= IGludHJvZHVjZXM= c2Vpbg== IGNob3BwZWQ= Z2xhc3M= IFdyZXN0 IG5ldXRyYWxpdHk= IOKZ IGludmVzdGlnYXRvcg== IHNoZWx2ZXM= IHVuY29uc3RpdHV0aW9uYWw= IHJlcHJvZHVjdGlvbg== IG1lcmNoYW50 bWlh IG1ldHJpY3M= IGV4cGxvc2l2ZXM= IFNvbmlh IGJvZGlseQ== IHRoaWNrbmVzcw== IHByZWRvbWluYW50bHk= IEFiaWxpdHk= IG1vbml0b3JlZA== SUNI IF0u IE1hcnRpbmV6 IHZpc2liaWxpdHk= IHF1ZXJpZXM= IGdlbm9jaWRl IFdhcmZhcmU= UXVlcnk= IHN0dWRpb3M= IGVtYnJ5 IGNvcnJpZG9y IGNsZWFuZWQ= Y29tcGxldGU= IE1I IGVucm9sbG1lbnQ= SU5HUw== IGltcGFjdGVk IGRpc2FzdHJvdXM= IFl1bg== IENsYWlyZQ== IEJhc2ljYWxseQ== eXQ= dXN0ZXJpdHk= IGluZGlyZWN0bHk= d2lr IGRvZA== IENhcnI= IGFtcA== IHByb2hpYml0 IEluaXRpYWw= IFJk aWpp IGVkdWNhdGU= Y29ybg== aW90dA== IEJlYXV0eQ== IGRldGVjdGl2ZQ== IENvbm4= c2luY2U= IHN0YWdnZXI= IG9iZXNl IGJyZWU= b2xvZ2lj aXNzZQ== d2Fsa2Vy IGJsYWRlcw== IGxhd2Z1bA== ZnVuYw== IEJlaGluZA== IGFwcGV0aXRl ICgq IHRlbm5pcw== IG9mZnNwcmluZw== IGpldHM= IHN0cnVjdHVyZWQ= IGFmb3JlbWVudGlvbmVk Tm92 IHNjYWxpbmc= ZmlsbA== IHN0ZXc= IGN1cmI= IFN0ZXBoYW4= ZWRJbg== U0Y= b2JpYw== 6a2U b3Vn IE1N IGdlbmV0aWNhbGx5 b3Bleg== MTM2 IHVtYg== YW5jZXJz IGNvaG9ydA== IG1lcmNoYW5kaXNl IGltcG9zaW5n IExlZ2lzbGF0dXJl IEFyY2hpdmU= aXZpYQ== IE5hdmFs IG9mZmVuY2Vz IG1pcmFjbGU= IHNuYXBwZWQ= IGZvZXM= IGV4dGVuc2l2ZWx5 IFJhZg== IGNhdGVy ZWRpZW5jZQ== S2l0 IEJpbg== IHJlY29tbWVuZHM= IENpdGllcw== IHJpZ2lk IFJFQUQ= IE5vYmxl IFRpYW4= IGNlcnRpZmljYXRlcw== YW50aXM= b2lsZXI= IEJ1ZGRoaXN0 ZGlk IHN1cnZleWVk IGRvd253YXJk IHByaW50cw== IE1vdGlvbg== cm9uaWNz IFNhbnM= b3NzaWJseQ== dWN0aW9ucw== IGNvbG9uaWVz IERhbmlzaA== dW5pdA== IHNwb2ls IGFkdmlzb3J5 YmVycmllcw== UGxhbg== IHNwZWNpZmljYXRpb24= b3BoZXJz IFJlc291cmNl IHNoaXJ0cw== cHJpc2luZ2x5 Y29tbXVuaWNhdGlvbnM= IHRyaXZpYWw= IG1lbnRpb25pbmc= aXNleHVhbA== IHN1cHBsZW1lbnRz IHN1cGVydmlzaW9u QlA= dm9y IHdpdA== IGNvb2xkb3du IHBsYWludGlmZg== IFJldmlld3M= IFNyaQ== IE1pbnQ= IFN1Z2Fy IGFmdGVyd2FyZA== IFByaWVzdA== IEludmVzdG1lbnQ= b2dlbmU= IFRha2luZw== IHN0cmV0Y2hpbmc= IGluZmxhbW1hdGlvbg== IFRlaHJhbg== IGxpbmluZw== IGZyZWV6aW5n IEVudGl0eQ== IGluc3BpcmluZw== c3BlY2lhbA== cHJpY2U= IHN1ZQ== IFBvcnRlcg== b3VuZ2U= RVRB IERlcmVr IEx1aXM= dW8= eW1waA== IGV4dGVyaW9y aWhpbA== IEFzaGxleQ== aW5hdG9y IG51dHJpZW50cw== IFRocm9uZXM= IGZpbmFuY2Vz IEluc3BlY3Q= IHNwZWNpYWxseQ== IFJlcXVpcmVk IFBUUw== IFZpb2xlbmNl b2ludGVk c2hvdHM= IGV4Y2VycHQ= Y29vbg== SU5T IEdyaQ== IHJlY29nbmlzZWQ= V2Vlaw== WW91bmc= IHZvbQ== aXNsZQ== IEN1cnJ5 IEJ1ZGRo IG5vdGVib29r IGR1cmFibGU= Lz8= IEdhZA== IFB1cHA= IGZvcmdpdmU= cGFyaw== IHBlcnNvbmFsaXRpZXM= YW5hbHlzaXM= Y2xhbWF0aW9u IGVsZXZhdG9y IHdhcmVob3VzZQ== IFJvbGU= dW5u IGlsbHVzdHJhdGlvbg== IFNjYW4= IGF0bW9zcGhlcmlj SW1wb3J0 QU5D cmljdGVk ZnU= MDEw IGFyY2hl IHJld2FyZGVk YWtlc3BlYXJl IGludGVybmFsbHk= IFJCSQ== YWxrZXI= IGVsZXBoYW50 b3dpdHo= IFBpenph IGJpcGFydGlzYW4= w6lz IHNsb3dlZA== IFN0YXJr IG92ZXJyaWRl T1VT IDMyMA== dW5kcmVkcw== IERlY2s= IENlbnN1cw== YmVl MTQ2 b3Rvcg== IGlw IHVi b2NhdGlvbnM= IEJ1dHRvbg== cmljZQ== IGNyaXBw ZmZm IG9yaWdpbmF0ZWQ= IG92ZXJ3aGVsbWVk YXBwYQ== IGZvcmVtb3N0 4oCR IExFRw== cmVsZWFzZQ== ZWF0dXJlZA== YXRjaGVz IHJlcHM= IGxlbmRpbmc= IFJlZmVyZW5jZQ== IENsaWVudA== MTY1 dmVudGg= Q29tcGxldGU= IFBhdHJvbA== IHN3b3Ju Y2Ft IHNodXR0bGU= IFJhbHBo IGhvbWV0b3du LSw= b25hbA== IEJQ 5Y8= IHBlcnN1YWRl IEFsZXhhbmQ= IGNvbWJpbmVz IHZpdmlk IExhZw== IGVuY29kaW5n IHNhbHZhdGlvbg== d2Vu IFJlY292ZXJ5 aXlh VW5pdmVyc2l0eQ== IEJpZGVu IGJ1ZGdldHM= IFRleGFucw== Zml0cw== IGhvbm9yZWQ= IHB5dGhvbg== VEQ= IyMj Y2xvbmU= IGJsaW5r IExpcXVpZA== IHVuZW1wbG95ZWQ= IGNsYXNoZXM= IENvdW5zZWw= IGRpcmVjdGluZw== IHB1bmN0 IEZhbGNvbnM= IHNoYXJr IERhbWFzY3Vz IGplYW5z IGVtYmFyaw== IHNlaXpl IHVwd2FyZHM= Mjgw IEV6 IEFueXRoaW5n IGV4b3RpYw== bG93ZXI= IENyZWF0b3I= IFVt IHN1YnVyYnM= YmVyZ2Vy IFdlbmQ= IG1pbnQ= IFhY IERybw== IHN1ZmZlcnM= IGhlcmI= dHJlZQ== IGZyYWdpbGU= IGZsb29kZWQ= IEFsY29ob2w= b2xlYW4= bnlkZXI= IEtP RnJhbQ== IDEzNg== IG93ZWQ= IE1lbGVl IEhhc2g= IHdoaXNr IHN1ZG8= cnI= UXVpY2s= YXBwcm8= IGlp IEV4YW1wbGVz aGVl IHByb21vdGVz cGVyYXR1cmU= a2Fy IEhvbm9y IHNvZGl1bQ== IExpZg== cm9zc28= aW50ZW5kZW50 IGNvcnJlc3BvbmRlbnQ= Rm91bmQ= c2VjcmV0 IGlkZW50aWZpZXM= YWduZQ== IGxvdQ== IFBQ IGNvaW5jaWRlbmNl bW92ZQ== IG1pbGl0aWE= IGluZmlsdHI= IFByaW1hcnk= IHBpdGNoaW5n IEli IEdPT0Q= 44K4 IFdpemFyZHM= aXJhbA== IFZlbnVz UlI= IOKAlQ== IENhc2V5 IHNhZGx5 IGFkbWlyZQ== IGVtYmFycmFzc2Vk Y2I= TWVs IHR1YmVz IGJlYXV0aWZ1bGx5 IFF1ZWVuc2xhbmQ= QmVsb3c= cmV6 cXVldA== cGxlYXNhbnQ= IMKr Q2FtcA== IGRlY2lzaXZl MTk5OA== IExhbWI= dXR0b24= aG4= IEphZ3U= YXVuZGVy IENvcmQ= IGNsZXJr IGNhZmZl IHdpcGVk IHJlaW0= IE1vdW50YWlucw== IGltcHJpc29uZWQ= IGRldmVsb3Bz IFByYQ== IG1vZGVsaW5n QW55b25l YW5jZWw= IFNpdA== IHNoaWVsZHM= IGxhd24= IGNhcmRpb3Zhc2N1bGFy IGRlbW9uc3RyYXRpbmc= IHBhcnNl IElzcmFlbGlz IGV1cm9z MTQz IGdsb3Jpb3Vz aW5za2k= ZWNk IGNvbmRpdGlvbmluZw== IGhlbHBsZXNz IG1pY3Jvc2M= IEhhcmJvcg== IHN0YWtlcw== IDI2MA== IHVuZXF1 IEZsb3lk IGRhbXA= IGFwcGFyYXR1cw== IExhd3M= IGNvdW50ZXJz IGluZHVjZQ== YXRhYmxl IEFobWVk IHNsYW0= Tm92ZW1iZXI= IHBlcnNpc3Q= IGltbWluZW50 w6Fu IHNocmVk IHBoYXNlcw== IEVkbW9udG9u IEFybXN0cm9uZw== IE1lZXQ= IEtpdHR5 0YA= Y2lyYw== IEFkdWx0 IGFyb3Nl IFhlbg== RGFu Z293 IHN1cGVyZg== IEFkbWly IGVuZHVyZQ== IGtleXdvcmQ= eXJ1cw== IHlhcm4= IHBhdGh3YXk= IEhvcGtpbnM= bWlkdA== IGNlbnNvcnNoaXA= ZGVwZW5kZW50 IGluc3RydWN0b3I= U291cmNlcw== IHRvZQ== IGJhbGxvb24= Tm9i IHN3ZWFy IENhc3Rybw== IGdsb3Nz IEthdmFuYXVnaA== IHJlbWFya2FibHk= UGhvdG9z IE5vbQ== IFNvdXRoZWFzdA== eWVycw== IHZhbGlkYXRpb24= IGNhbm5vbg== IFZpY3Rvcnk= IFBpZXJyZQ== IGNhdXRpb3Vz QXVkaW8= IGZldGNo IEdpZnQ= IEh5cA== IHJlbWVkeQ== WkU= IHNjZW50 IGJlYXJk IFJ1dA== LSI= IHBhdGVudHM= SHk= IHVuanVzdA== IHBvdGF0bw== IGZvcnRoY29taW5n IGNoZWY= IFJpZnQ= YWZmZQ== IFJPTQ== IExhdW5jaA== IHBhZHM= IE5lbw== IG9uc2V0 IHNxdWVlemU= c2FmZQ== IHByZWZpeA== IFRN IE5lYXJseQ== IENsaW5pY2Fs IE1lbnRhbA== b3RpYXRpb24= IFVuaWM= YW50cnk= IENpcg== IGVwaXQ= w6Y= IGV4dHJhY3RlZA== dmVyc2VseQ== cmlhZA== IHN0cmFpbnM= IHRvcHM= IHBvZW0= IFJhbmR5 IE1hcGxl VEhFUg== dXBpdGVy IFNTRA== muk= IHVuY29u cGVyaW5n IHNsZXB0 aW5lcnM= IHVuZGVyd2F0ZXI= IEV2aWRlbmNl Z29uZQ== MjA1 IGhpc3RvcmlhbnM= IHN5bnRoZXNpcw== IGZyb2c= YmFza2V0YmFsbA== IHZpYnJhbnQ= IHN1Ym9yZA== IDM2NQ== IERpYWw= IGNvb3BlcmF0ZQ== SEFIQQ== IGdyZWV0ZWQ= MTU4 IGpheno= IGludG94 IFdhbGtpbmc= IHN1cGVydmlzb3I= IEZ1c2lvbg== IE1lcmNlZGVz c2VuZA== SGFt c2Q= bmw= IHRvdXJz IEZJRkE= IGN1bHA= Z2Q= MzA0 IHBsZWFz IGlsbHVzdHJhdGVz IENvbG9tYmlh IGhpZ2hsaWdodGluZw== IFN1bW1hcnk= IGV4cG9zaW5n IERydQ== IGlyb255 cml0aW9uYWw= IENhcnJvbGw= IEVsbGlz UGljdA== IFJhcHQ= IGFkYXB0ZXI= IHVubQ== IGNvcnBzZQ== IGNlbGVicml0aWVz RGVu YXR1bQ== IEFwb2NhbHlwc2U= IFdhZw== bGluaW5n IGhvcm1vbmVz UnVi IFhp IFZhdWx0cw== MjA4 YWxreXJpZQ== aW5vc2F1cg== IGZlZWRz dml0eQ== IGRlZmVhdGluZw== V2FpdA== IGVtcGhhc2l6ZQ== IFN0ZWVsZXJz eXJpbnRo bGV5cw== IFdoZW5ldmVy Q3VycmVudGx5 IENsb2Nr IGNvbGxlY3RpdmVseQ== YW55b24= IEpQ IG1lbnRhbGl0eQ== IGRvd25sb2Fkcw== IHN1cnJvdW5kaW5ncw== IEJhcm5lcw== IGZsYWdzaGlw IGluZGljYXRvcnM= IGdyYXBw SmFudWFyeQ== IEVsZW1lbnRhbA== IEF0aGVuYQ== aWJhbA== IHNpZ2h0cw== IGNhcGl0YQ== IFRyZWF0eQ== IHZvaWNlZA== IEdheg== bGV0dGU= IHlh IGV4cGlyZWQ= TGVnZW5k SG90 bmF0dXJl IHVuc3RhYmxl IDI4MA== w7o= Q29tbWVudA== QUxF IHF1ZXN0cw== IGhhbmRsZXI= bmlz IHZlcnNhdGlsZQ== IGNvbmNlYWw= ZW5nZWFuY2U= IEludGVyYWN0aXZl IG9ic2Vzc2Vk IERvZ3M= IGNyYWNrZWQ= U291bmQ= c3Y= IER5bGFu cm9hZHM= Zng= IENhdGhvbGljcw== IEhhZw== IHNsYW1tZWQ= IGdsb3dpbmc= c2FsZQ== IHRpc3N1ZXM= IENoaQ== bmVl IGNoZXI= c2lj dXJyZWN0aW9u IGJhY29u dWxhdG9yeQ== KS4i IGlycmVndWxhcg== Rk9STQ== YXNzZWQ= IGludGVudGlvbmFs IGNvbXBlbnNhdGU= IFNwZWFraW5n IFNldHM= MTUz IGNvbnZlbnRpb25z YmFuZHM= ZW1hZGU= IGVjYw== IFdpbnN0b24= IEFzc2Fzc2lu IEJlbGdpYW4= IGRlcGVuZGVuY2U= IG5pY2hl IGJhcms= IEpheno= IGRpc2FkdmFudGFnZQ== IGdhc29saW5l IDE2NQ== 55qE ZXNzYQ== bW9kdWxl YW5ndWxhcg== T1k= IFRyZWF0bWVudA== aXRhcw== b2xhdGlvbg== IEFybm9sZA== IGZldWQ= IE5lc3Q= IHRoZWF0cmU= ZXdhdGVy IG1pbm9ycw== b2xpY3k= IEhhdmVu ZGl2aXNpb24= IHRydW5r RmFy IFB1bGw= IGNhcHR1cmluZw== IDE4MDA= IFRlZW4= IGV4ZW1wbA== IGNsaW5pY3M= IEJ1cmc= IHN1YnN0aXQ= IHBheWxvYWQ= IExhdg== IFRyb3k= IFdpdG5lc3M= IGZyYWdtZW50cw== IHBhc3N3b3Jkcw== IGdvc3BlbA== IEdpbg== IHRlbmFudHM= b2xpdGg= U2l4 UHJldmlvdXM= IEFnZXM= IERhcndpbg== IGJsYXQ= IGVtcGF0aHk= c21pdGg= YmFn IEVjaG8= IENhbWI= IE1hZGQ= IEJvbw== IHJlZGU= IEJ1cm5pbmc= IHNtb290aGx5 IEFkcmlhbg== IFZhbXBpcmU= IE1vbnN0ZXJz c3RlYW0= U3R5bGU= TWE= cmVh IER3YXI= YWx5c3Q= dXJzb3I= IGVsaW1pbmF0aW9u IGNyeXB0bw== Y2h0 IEV0ZXJuYWw= 4oCmXQ== IFNvcmNl SWxs TkVS IHVo Q29uY2x1c2lvbg== d2FnZQ== IHJlc3Bpcg== IHJlbWluaXM= aGV0aWNhbA== IGd5 IHV0aWxpemVk aWNpZGFs IDE5MDA= IGh1bnRlcnM= IFN3YW4= IFJlYWN0 IHZpc2l0b3I= IFRoYW5rc2dpdmluZw== MzA4 UG9zdHM= IGhpcHM= MTk5Nw== b21lcnM= IGtub2NraW5n IFZlaGljbGU= IHRpbA== IDEzOA== IG1p IEludmVzdGlnYXRpb24= IEtlbnlh IGNhc2lubw== IG1vdGl2ZXM= IHJlZ2Fpbg== cmV4 IHdlZWtlbmRz IHN0YWJiZWQ= Ym9ybw== IGV4cGxvaXRlZA== IEhBVkU= IFRlbGV2aXNpb24= Y29jaw== IHByZXBhcmF0aW9ucw== IGVuZGVhdg== IFJlbW90ZQ== IE1ha2Vy IFByb2R1 IEV2YW4= IGluZm9ybWF0aW9uYWw= IExvdWlzdmlsbGU= MTU0 IERyZWFtcw== IHBsb3Rz IFJ1bm5lcg== IGh1cnRpbmc= IGFjYWRlbXk= IE1vbnRnb21lcnk= bm0= IExhbmM= IEFseg== MjEw ZWxvbmc= IHJldGFpbGVy IGFyaXNpbmc= IHJlYmVsbGlvbg== IGJsb25kZQ== cGxheWVk IGluc3RydW1lbnRhbA== Q3Jvc3M= IHJldGVudGlvbg== IHRoZXJhcGV1dGlj IHNlYXM= IGluZmFudHJ5 IENsaW50 IHByb21wdGluZw== IGJpdGNo IHN0ZW1z IEtyYQ== IHRoZXNpcw== IEJvZw== cnVlZA== IGtpbmdz IGNsYXk= aWZpY2VudA== IFlFUw== IFRoaW5n IEN1YnM= dmV5YXJk ZWxzaA== aW5hcmlseQ== IEV5 IFJvbGxpbmc= IGV2b2x2aW5n SW5kaWE= IHJlY29nbml6ZXM= IGdyYWR1YXRpb24= aXNlcnM= IGZlcnRpbGl0eQ== IE1pbGFu Q29tbWFuZA== IGJveGluZw== IDE5NDM= IGdsdXRlbg== IEVtaXI= IGlkb2w= IGNvbmNlaXZlZA== IENyZWF0aW9u TWVyaXQ= dWRkeQ== dXNzaW9ucw== IExpZXV0ZW5hbnQ= aWV0YWw= IHVuY2hhbmdlZA== IFNjYWxl IENyaW1lYQ== YmFsbHM= YXRvcmlhbA== IGRlcHRocw== IGVtcGlyaWNhbA== IHRyYW5zbQ== IHVuc2FmZQ== bWlzc2libGU= Y29tZm9ydA== MTU2 IG1lY2hhbmlj MDAy bGlucw== IHNtb2tlZA== UG9z IHNsb3dpbmc= IGxhdg== VGV4YXM= IGNoZWF0aW5n IE1ldHJvcG9saXRhbg== ZXRoeWw= IGRpc2NvdmVyaW5n YXNzZQ== IHBlbmNpbA== IFB5b25neWFuZw== IGNsb3NldA== IFNoZWV0 IEVudHJ5 b3VzdGlj IG15c3Q= ZXJhdGU= YXJpYXQ= IG1pbmVyYWxz IG11c2ljaWFu IFB1bA== IE1heg== MjQ5 IHBlcm1pc3Npb25z IGl2 ZW5hcnk= aWNrZXJz IEJpbmc= aGVh ZW5hYmxl IGdyaWV2 IGFzc2VydGVk IENvbG9uZWw= IGFmZmlkYXY= d28= IHNlYXRlZA== IFJpZGU= IHBhaW50aW5ncw== IFBpeA== IDEzNw== aXNoaQ== dW1iYWk= Z290dGVu IEVhcmw= IGlubmluZw== IGNlbnN1cw== IHRyYXZlbGxlZA== IENvbnN1bHQ= MTg1 YmluZA== IHNpbXBsaWNpdHk= IG92ZXJsb29rZWQ= IEhlbHBmdWw= IG1vbmtleQ== IG92ZXJ3aGVsbWluZ2x5 Qmxvb2Q= IEZsaW50 IEphbWE= IFByZXNlbnQ= IFJhZ2U= IFRB cHRpdmU= IHR1cm5vdXQ= d2FsZA== IERvbHBoaW5z IFZQTg== IG9uaW9u IGNyYWZ0aW5n bW1h IE1lcmN1cnk= IGFycmFuZ2U= IGFsZXJ0cw== IE9U emJvbGxhaA== IGdhc2Vz IFJpY2hhcmRzb24= c2Fs bGFy IGZyb3N0 IGxvd2VyaW5n IGFjY2xhaW0= IHN0YXJ0dXBz IEdhaW4= ZXNzbWVudA== IGd1YXJkaWFu 5Lq6 IFBpZQ== IExpbmtz IG1lcml0cw== IGF3YWtl IHBhcmVudGFs IGV4Y2VlZHM= IGlkbGU= IFBpbG90 IGVCYXk= IEFjY2VwdA== aXBlZw== Q2Ft IEtvdA== IHRyYWRlcnM= b2xpdGljcw== dW5rZXI= IFBhbGU= b3Np YW5tYXI= IDE5NDc= IEZlbGw= ZXN0aWFs aXRhdGluZw== R0Y= IFNy aWZ0ZWQ= IGNvbm5lY3Rvcg== IEJvbmU= aWxsZXM= MjYw aG1h IG92ZXJsYXA= IEdpdEh1Yg== IGNsZWFuZXI= IEJhcHRpc3Q= IFdBUw== IGx1bmdz 0YE= IEJVVA== IGNpdGU= IHBpdGNoZWQ= cmVhdG1lbnQ= IHRyb3BoaWVz IE51 Mzg2 IFByaWRl IGF0dGVuZGVlcw== W10= MTc5 IHNwYXRpYWw= IHByaXplcw== IFJlbGlnaW9u IHNob3djYXNl IENhdGVnb3J5 dmlkaWE= VGFyZ2V0 UHJvcGVydHk= Pyw= IGZ1c2lvbg== cGll IFVDTEE= IHNvdW5kdHJhY2s= IHByaW5jZXNz IENhdmFs c2hvdWxk IGxpbWJz QmFja2dyb3VuZA== IGxvbmVseQ== IGNvcmVz IFRhaWw= c2hlZXQ= IDEzMg== UmE= 44Kr IEJvbHQ= IGJvb2tlZA== IGFkbWluaXN0ZXI= IGVxdWFscw== d3k= IG9ic2VydmluZw== IEJhcm9u IEFkb2Jl IHZpcmdpbg== IFNvY2lhbGlzdA== TW92ZQ== Z2hhemk= IExpbmRh MjEy IGJyZXdpbmc= IG1lcmNoYW50cw== YnVyc2U= IGRpdm9y IG1ldGFscw== IE5lcg== IHN1bXM= IEVuZW15 IGVudmlzaW9u IGdyYW50aW5n IEhvbmV5 IFNreXJpbQ== IHNvY2lv Z3JhZGVk IHNlbGVjdGl2ZQ== V0FTSElOR1RPTg== IDE5NDg= IFNpcml1cw== IEdyb3Nz YWN0aXZpdHk= IEl2YW4= IGZ1cmlvdXM= QlNE IFByZXZpb3Vz IHJlc3BvbnNpdmU= IGNoYXJpdGFibGU= IGxlYW5pbmc= IFBldw== IHZpb2xhdGVz XFxcXFxcXFw= IENvbWluZw== d2lyZQ== IHBvZXQ= IHJlc29sdXRpb25z Y29tbWFuZA== IFBvcnR1Z3Vlc2U= IG5pY2tuYW1l IGRlYWY= RmVicnVhcnk= IHJlY29nbmlzZQ== IGVudGlyZXR5 IHNlYXNvbmFs cGxhY2Vk IFRlbGVncmFwaA== IG1pY3JvcGhvbmU= b3VyaW5n IGdyYWlucw== IGdvdmVybmVk IHBvc3Rw IFdhdGVycw== aW5lbWVudA== IHVuZG9jdW1lbnRlZA== IENvbWNhc3Q= IGZveA== IGFzc2F1bHRz cmVvbg== bWFueQ== IEplbmtpbnM= IEFueXdheQ== IGFzc2Vzc21lbnRz IGRvd25z IE1vdXNl IHN1cGVyYg== a3Q= IERvdw== IHRheGF0aW9u NDAx IHNtaWxlcw== IHVuZGVydGFrZW4= IGV4aA== IGVudGh1c2lhc3RpYw== IHR3ZW50 IGdvdmVybm1lbnRhbA== IGF1dG9ub215 IFRlY2hub2xvZ2llcw== IENoYWlu IHByZXZhbGVudA== ZmI= IG5pY290aW5l b2dyYW0= am9i IGF3YWl0aW5n IE1lbnU= IGRlcHV0aWVz a292 aXNob3Bz QnV0dG9u IFNoYW5naGFp IGRpZXNlbA== IER1Y2s= Unlhbg== IFBDcw== TkY= anVyeQ== ZW50ZQ== IGluYWNjdXJhdGU= ZWRkeQ== V2hhdGV2ZXI= IHNob3dj IE5hZA== b2R1cw== ZXRy IHBsYWludGlmZnM= IFdPUg== IEFzc2FuZ2U= IHByaXZhdA== IHByZW1pdW1z IHRhbQ== VVJM IGVsaXRlcw== IFJhbmdlcg== b3R0ZW5oYW0= IEhvZmY= IEF0aGVucw== IGRlZmluaXRl IHNpZ2hlZA== IGV2ZW5seQ== MjEx IEFtYmVy YWtpYQ== IG1haWxpbmc= IGNyYXNoaW5n IENvbmZlZGVyYXRl cnVnZ2Vk V2Fs IERlcHRocw== IGp1dmVuaWxl IHJlYWN0b3I= SW50cm9kdWN0aW9u IERlbHV4ZQ== MTk5NQ== IFNhbmNoZXo= IE1lYWQ= aXZhYmxl Oi0= IFBsYW5uaW5n IFRyYXA= cXVpbg== IFByb3RlY3Q= dmVyZWQ= SW5mb3JtYXRpb24= IGtpZG5leQ== aW5uYW1vbg== bGFz IHBvbGljaW5n IHRvbGVyYXRl IFFp IGJpYXNlZA== Rm9ydA== IEtp c2F2ZQ== IHByaXZpbGVnZWQ= IGJlYXN0cw== IEdsYXM= IENpbmVt IGNvbWViYWNr U3VuZGF5 IGV4dGluY3Rpb24= aG9wcw== IHRyYW5zbWl0 IGRvdWJsZXM= IEZsYXQ= MTY3 IGRpc3B1dGVk IGluanVzdGljZQ== Zm9v VmljdA== cm9sZXVt IEp1bGll Q29udGV4dA== IFJhcml0eQ== aXNzdWU= Q29tcG9uZW50 IGNvdW5zZWxpbmc= YW5uZQ== ZGFyaw== IG9iamVjdGlvbnM= dWlsdA== IGdhc3Q= IHBsYWM= IHVudXNlZA== 44OH IFRyaWFs IEphcw== aGVkcmFs b2Ji IHRlbXBvcmFs IFBSTw== IE5X IEFubml2ZXJzYXJ5 TGFyZ2U= IHRoZXJt IGRhdmlk IHN5c3RlbWlj IFNoaXI= bXV0 IE5lcHQ= YWRkcmVzcw== IHNjYW5uaW5n IHVuZGVyc3RhbmRhYmxl IGNhbnZhcw== Q2F0 IFpvbw== IGFuZ2Vscw== TE8= IFN0YXRlbWVudA== IFNpZw== b3ZhYmxl IEF3YXk= c2hhcmluZw== b2NyYXRz c3RhdGVk IHdlaWdoaW5n Tm9y d2lsZA== QmV5 IGFzdG9uaXNoaW5n IFJleW5vbGRz IG9wZW5lcg== IHRyYWluZXI= IHN1cmdpY2Fs cG4= IGFkanVzdGluZw== d2hlZWw= IGZyb3du ZXJ2YXRpdmU= IHN1c3BlbmQ= V2l0aGlu dGVpbg== IG9ic3RhY2xl IGxpYmVydGllcw== eW1lcw== IHVyYW5pdW0= YW5zb20= YW5vbA== dWJh IExvc3M= IGFyb3Vz IEhlbmRlcnNvbg== V293 c3Bs Y3Vy IMKt IHRoZWlycw== RGFtYWdl IGRvd25sb2FkaW5n IGRpc2Nlcm4= IFN0bw== IEZsYQ== IGhhdGg= IEFq IHVucGxlYXNhbnQ= RXVyb3BlYW4= ZXhwZW5zaXZl IHNjcmVlbnNob3Q= IFVW IGFsbGllZA== IFBlcnNpYW4= IG1vbm9wb2x5 IGF0b20= IFJlZHNraW5z Ij48 IGNhbmNlbGw= IGNpbmVtYQ== MTMx ZmFpcg== IEFsZnJlZA== IGR1Y2s= YXJncw== MjIz IElTSQ== IHNpZ25hbGluZw== aW5hcg== IGxhdWdocw== IGZvcndhcmRz IHJlY2tsZXNz IGxpc3RlbmVycw== YXRpdml0eQ== IHZhc3RseQ== bmFudA== TGVzcw== IEh1bnRpbmc= IFNjaWVudGlmaWM= SVRFRA== IGtuaWdodA== IEhUQw== dXNh dG1w IHJ1ZGU= IExlZ2VuZGFyeQ== IGFyaXNlcw== QmFk IENsYWlt cGVn IHJlYWxpdGllcw== VGhpbms= IMKw IHJvZGU= IHN0cml2ZQ== IGFuZWNk IHNob3J0cw== IGh5cG90aGVz IGNvb3JkaW5hdGVk IEdhbmRoaQ== IEZQUw== UkVE IHN1c2NlcHRpYmxl IHNocmluaw== IENoYXJ0 SGVscA== IGlvbg== ZGVlcA== cmliZXM= IEthaQ== IEN1c3RvbWVy U3VtbWFyeQ== IGNvdWdo d2lmZQ== IGxlbmQ= IHBvc2l0aW9uaW5n IGxvdHRlcnk= IENhbnlvbg== IGZhZGU= IGJyb256ZQ== IEtlbm55 IGJvYXN0cw== IEVuaGFuY2Vk cmVjb3Jk IGVtZXJnZW5jZQ== IGFraW4= IEJlcnQ= aXRvdXM= 4paR IHN0aXA= IGV4Y2hhbmdlZA== b21vcmU= YWxzaA== IHJlc2Vydm9pcg== IHN0YW5kcG9pbnQ= V00= IGluaXRpYXRl IGRlY2F5 IGJyZXdlcnk= IHRlcnJpYmx5 IG1vcnRhbA== bGV2YXJk IHJldmlz Tkk= ZWxv IGNvbmZlc3M= IE1TTkJD IHN1Ym1pc3Npb25z Q29udHJvbGxlcg== IDIwMg== IFJ1dGg= fSk7 IEF6dXJl IC4i MjA2 IE1hcmtldGluZw== IGxhdW5k aWVuY2llcw== IHJlbm93bmVk IFRyb3U= IE5HTw== YmxlbXM= IHRlcnJpZmllZA== IHdhcm5z IHBlcnQ= IHVuc3VyZQ== NDgw YWxleg== dWx0eg== IE91dHNpZGU= IHN0eWw= IFVuZGVyZ3JvdW5k IHBhbmM= IGRpY3Rpb25hcnk= IGZvZQ== cmltaW5hbA== IE5vcndlZ2lhbg== IGphaWxlZA== IG1hdGVybmFs w6ll IEx1Y3k= Y29w Q2hv IHVuc2lnbmVk IFplbGRh IEluc2lkZXI= IENvbnRpbnVlZA== IDEzMw== IE5hcnV0bw== IE1ham9yaXR5 MTY5 IFdv 44KT IHBhc3Rvcg== IGluZm9ybWFs 0L0= YW50aHJvcA== am9pbg== 44GX aXRhdGlvbmFs TlA= IFdyaXRpbmc= Zm4= IEJldmVy MTk1 IHllbGxpbmc= IGRyYXN0aWNhbGx5 IGVqZWN0 IG5ldXQ= IHRocml2ZQ== IEZyZXF1 b3V4 IHBvc3Nlc3Nlcw== IFNlbmF0b3Jz IERFUw== IFNoYWtlc3BlYXJl IEZyYW5jbw== IExC dWNoaQ== IGluY2Fybg== IGZvdW5kZXJz RnVuY3Rpb24= IGJyaWdodG5lc3M= IEJU IHdoYWxl IFRoZWF0ZXI= bWFzcw== IERvbGw= U29tZXRoaW5n IGVjaG9lZA== IEhleA== Y3JpdA== YWZpYQ== IGdvZGRlc3M= IGVsZXZlbg== IFByZXZpZXc= IEF1cm9yYQ== IDQwMQ== dWxzaXZl IExvZ2Fu aW5idXJnaA== IENlbnRlcnM= IE9OTFk= IEFpZA== IHBhcmFkb3g= IGh1cmQ= IExD RHVl Y291cnQ= IG9mZmVuZGVk IGV2YWx1YXRpbmc= IE1hdHRoZXdz IHRvbWI= IHBheXJvbGw= IGV4dHJhY3Rpb24= IEhhbmRz aWZp IHN1cGVybmF0dXJhbA== IENPTU0= XT0= ZG9ncw== IDUxMg== IE1lZXRpbmc= UmljaGFyZA== IE1heGltdW0= IGlkZWFscw== VGhpbmdz bWFuZA== IFJlZ2FyZGxlc3M= IGh1bWlsaQ== YnVmZmVy TGl0dGxl IERhbmk= IE5haw== IGxpYmVyYXRpb24= IEFiZQ== IE9M IHN0dWZmZWQ= YWNh aW5kYQ== cmFwaGlj IG1vc3F1 IGNhbXBhaWduaW5n IG9jY3VweQ== U3F1 cmluYQ== IFdlbA== IFZT IHBoeXNpYw== IHB1bHM= cmludA== b2FkZWQ= RVRG IEFyY2hpdmVz IHZlbnVlcw== aG5lcg== IFR1cmJv IGx1c3Q= IGFwcGVhbGVk cXVleg== aWxpYg== IFRpbW90aHk= IG9tbg== ZHJv IG9ic2Vzc2lvbg== IFNhdmFnZQ== MTk5Ng== R2xvYmFs SmVz MjE0 IHNsaWRpbmc= IGRpc2FwcHJv IE1hZ2ljYWw= IHZvbHVudGFyaWx5 Z2I= YW5leQ== IHByb3BoZXQ= IFJlaW4= IEp1bGlh IFdvcnRo YXVydXM= IGJvdW5kcw== aWV1 KSkp IGNyb3Jl IENpdGl6ZW4= U2t5 IGNvbHVtbmlzdA== IHNlZWtlcnM= b25kbw== SVNB IExlbmd0aA== IG5vc3RhbGc= IG5ld2NvbQ== IGRldHJpbQ== ZW50cmlj Mzc1 IEdF IGF1dG9w IGFjYWRlbWljcw== QXBwRGF0YQ== IFNoZW4= IGlkaW90 IFRyYW5zaXQ= IHRlYXNwb29u V2ls S08= IENvbWVkeQ== Piw= IHBvcHVsYXRlZA== V0Q= IHBpZ3M= IE9jdWx1cw== IHN5bXBhdGhldGlj IG1hcmF0aG9u MTk4 IHNlaXp1cmU= c2lkZWQ= IGRvcA== aXJ0dWFs TGFuZA== IEZsb29y b3NhdXJz Li4uXQ== IGxvcw== IHN1YnNpZGlhcnk= RVk= IFBhcnRz IFN0ZWY= IEp1ZGljaWFyeQ== IDEzNA== IG1pcnJvcnM= IGtldA== dGltZXM= IG5ldXJvbG9n IGNhdg== IEd1ZXN0 IHR1bW9y c2NpbGw= IExsb3lk RXN0 IGNsZWFyZXI= IHN0ZXJlb3R5cGVz IGR1cg== bm90aGluZw== UmVkZGl0 IG5lZ290aWF0ZWQ= LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t MjM1 IGZsb3du IFNlb3Vs IFJlc2lkZW50 IFNDSA== IGRpc2FwcGVhcmFuY2U= IFZpbmNl Z3Jvd24= IGdyYWJz cmls IEluZmluaXRl IFR3ZW50eQ== IHBlZGVzdHJpYW4= IGplcnNleQ== IEZ1cg== IEluZmluaXR5 IEVsbGlvdHQ= IG1lbnRvcg== IG1vcmFsbHk= IG9iZXk= c2VjdXJl aWZmZQ== IGFudGliaW90aWNz YW5nbGVk IEZyZWVtYW4= IEludHJvZHVjdGlvbg== SnVu IG1hcnNo aWNhbnM= IEVWRU5UUw== b2Nob25k V2FsbA== aWN1bHR5 IG1pc2RlbWVhbm9y IGx5 VGhvbWFz IFJlc29sdXRpb24= IGFuaW1hdGlvbnM= IERyeQ== IGludGVyY291cnNl IE5ld2Nhc3RsZQ== IEhvZw== IEVxdWlwbWVudA== MTc3 IHRlcnJpdG9yaWFs IGFyY2hpdmVz MjAz RmlsdGVy IE11bmljaA== IGNvbW1hbmRlZA== IFdhbmQ= IHBpdGNoZXM= IENyb2F0 IHJhdGlvcw== IE1pdHM= IGFjY3VtdWxhdGVk IFNwZWNpZmljYWxseQ== IGdlbnRsZW1hbg== YWNlcmI= IHBlbm4= IGFrYQ== IEZ1aw== IGludGVydmVuZQ== IFJlZnVnZQ== IEFsemhlaW1lcg== IHN1Y2Nlc3Npb24= b2hhbg== ZG9lcw== TG9yZA== IHNlcGFyYXQ= IGNvcnJlc3BvbmRlbmNl IHNoaW55 UHJpb3I= IHN1bGY= IG1pc2VyYWJsZQ== IGRlZGljYXRpb24= KCku IHNwZWNpYWxpc3Rz IGRlZmVjdHM= IEN1bHQ= IFhpYQ== IGplb3BhcmQ= IE9yZQ== QWJpbGl0eQ== IGxlYXI= IGFtYml0aW9ucw== IEJNSQ== IEFyYWJz IDE5NDI= IHByZXNlcnZhdGlvbg== aWZpY2F0ZQ== IGFzaGFtZWQ= bG9zcw== IFJlc3RhdXI= IHJlc2VtYmxl IGVucmljaA== IEtO IENsYW4= ZmxvYXQ= IHBsYXlhYmxl SVRU IGhhcm1vbnk= YXJyaXNvbg== IFdlaW5zdGVpbg== d2VyZQ== IHBvaXNvbmluZw== IENvbXB1dA== IFdvcmRQcmVzcw== bWFqb3I= IFZhbHZl RmFu IFRocm93 IFJvbWFucw== IERlcHJlc3Npb24= YWRvcw== IHRvcnR1cmVk IGJhbGFuY2luZw== Ym90dG9t IGFjcXVpcmluZw== IE1vbnRl YXJkaQ== IGF1cmE= ICMj IFN0YW5kaW5n IEF0bGFz Q0Y= IGludHJpbnM= IEJlbmdoYXpp IGNhbXBpbmc= IHRhcHBlZA== YmxhZGU= c3Ryb3Vz IFJhYmI= IFdyaXR0ZW4= dGlw IE5laWdo c3RlcmRhbQ== IEFsbG93 IEhlYWxpbmc= IFJob2Q= bnVt IGNhZmZlaW5l IFBlcmNlbnQ= IGJvbw== IGFwcGxlcw== MzA1 IHdlbGNvbWluZw== IGFwcGxhdWQ= IGF1c3Rlcml0eQ== wrE= IFJlYWxpdHk= ZWZl 5a4= IHN1Y2tz IHRhYnM= IFBheVBhbA== IGJhY2twYWNr IGdpZnRlZA== YWJ1bGFyeQ== IFNjb3V0 aXJ0ZWVu IGNoaW4= IG9taXR0ZWQ= IG5lZ2F0aXZlbHk= IGFjY2Vzc2luZw== IEVhcm4= IGFtYnVsYW5jZQ== IGhlYWRwaG9uZXM= IDIwNQ== IFJlZnJlc2g= cHJlc2lkZW50 IEtpdGNoZW4= IEVudGVyZWQ= IFNueWRlcg== MDA1 b21pY2Fs IGJvcnJvd2Vk IE5lbQ== IGF2aWF0aW9u IHN0YWxs cmltaW5hdGlvbg== IHVuaWZvcm1z aXRpbWU= IFNpbW1vbnM= ZW5lcmd5 YWJsaXNoZWQ= eXk= cXVhbGlmaWVk IHJhbGxpZXM= IFN0dWFydA== ZmxpZ2h0 IGdhbmdz cmFn IHZhdWx0 bHV4 IENvbXBhcg== IGRlc2lnbmF0aW9u MjA5 IEpvcw== ZG9sbGFy emVybw== IHdlbGxz MzAz IGNvbnN0aXR1ZW50cw== IGhlY2s= IGNvd3M= IGNvbW1hbmRlcnM= IGRpZmZlcmVudGlhbA== IENhdGhlcmluZQ== Mjk5 IHZhbHZl IGJyYWNl IHBlcnNwZWN0aXZlcw== Y2VydA== ZmFjdA== aWN1bGFybHk= IE1jTg== cGxhbmVz IGludHJpYw== IHBlYXM= b3Zhbg== IHRvc3NlZA== cmV0Y2g= IExvcGV6 IHVuZmFtaWxpYXI= ZGVhdGg= IEFwYXJ0 IENoYW5n IHJlbGlldmVk cm9waGU= IGFpcnBvcnRz IGZyZWFr dXRpbA== TWlsbA== IENoaW4= IE93ZW4= bWFsZQ== IEJyb2tlbg== IFdpbmRz cm9i cmlzaW5n IGZpcmVmaWdodGVycw== IGF1dGhvcml0YXJpYW4= IDE0OA== Qml0Y29pbg== ZXh0ZXJuYWw= IGJyb3dzZXJz aWNoZXZlcg== b3JpYW4= IHVuYg== IHBva2U= IFpvdA== TWlk IFBvcHVsYXI= IGNvdmVydA== IGNvbnRyaWJ1dGVz IDY1MA== IGNvbnRlbnRpb24= R2F0ZQ== IGNvbnNvbGVz IGNocm9tb3M= IElY IHZpc3VhbGx5 IEVpc2Vu IGpld2Vscnk= IGRlbGVnYXRpb24= IGFjY2VsZXJhdGU= IFJpbGV5 IHNsb3Bl IGluZG9vcg== aXRpYWxseQ== IGh1Z2VseQ== IHR1bm5lbHM= IGZpbmVk IGRpcmVjdGl2ZQ== IGZvcmVoZWFk dXN0b21lZA== IHNrYXRl TXVzaWM= Z2Fz IHJlY29nbml6aW5n YW1ibw== IG92ZXJ3ZWlnaHQ= IEdyYWRl 2Yo= IHNvdW5kaW5n IGxvY2tpbmc= IFJFTQ== U3RvcmU= IGV4Y2F2 IExpa2V3aXNl IExpZ2h0cw== IGVsYm93 IFN1cHBseQ== d2lj IGhhbmRzb21l MTk5NA== Q29sbA== IGFkZXF1YXRlbHk= IEFzc29jaWF0ZQ== IHN0cmlwcw== IGNyYWNrZG93bg== IG1hcnZlbA== IEt1bg== IHBhc3NhZ2Vz QEBAQA== IFRhbGw= IHRob3VnaHRmdWw= bmFtZXNl IHByb3N0aXR1dGlvbg== YnVzaW5lc3M= IGJhbGxpc3RpYw== cGVyc29uYWw= Y2ln aXphdGlvbmFs Um91bmQ= IMKgIMKgIMKgIMKg IENvbGVtYW4= IGFkbWl0dGluZw== IFBsdWc= IGJpdGNvaW5z IFN1eg== IGZhaXJuZXNz IHN1cHBsaWVy IGNhdGFzdHJvcGhpYw== IEhlbGVu b3F1 TWFyYw== IEFydGljbGVz Z2ll IGVuZGFuZ2VyZWQ= IGRlc3Rpbnk= IFZvbHQ= b2xpYQ== YXhpcw== IGNoZWF0 IHVuaWZpZWQ= SUNP cXVvdGU= MzAy IFNlZA== IHN1cHByZXNzaW9u IGFuYWx5emluZw== IHNxdWF0 IGZpZ3VyaW5n IGNvb3JkaW5hdGVz IGNodW5rcw== IDE5NDY= IHN1YnA= IHdpa2k= IEZvcmJlcw== IEp1cGl0ZXI= IEVyaWs= aW1lcg== IENvbW1lcmNpYWw= XCk= IGxlZ2l0aW1hY3k= IGRlbnRhbA== IE1lYW4= IGRlZmljaXRz NTUw T3JpZ2luYWxseQ== IEhvcnJvcg== IGNvbnRhbWluYXRpb24= bGxhaA== IGNvbmZpc2M= IENsYXJl VEI= IEZhaWxlZA== YW5lZA== IHJ1bGVy IENvbnRyb2xsZXI= IGZlbWluaXN0cw== Rml4 Z2F5 MjA3 IHJhYmJpdA== VGhpcmQ= b3dudG93bg== IGdsdWU= IHZvbGF0aWxl IHNoaW5pbmc= IGZvbGw= IGltcGFpcmVk IHN1cGVycw== 5og= IGNsdXRjaA== mumGkg== IHByb2xldA== ICgh IHllbGxlZA== IEtpZXY= IEVybg== IFNob2Nr S0I= IHNpdHVhdGVk cXVlcnk= IE5hcw== IGFubmV4 Y2hhcmFjdGVy IEhvbGlkYXk= IGF1dG9tYXRpb24= IEppbGw= IFJlbWFzdGVyZWQ= IGxpbmVt IHdpbGRlcm5lc3M= IEhvcml6b24= IEd1aW5lYQ== QVo= IG1haW5sYW5k IHNlY3JlY3k= TEVBU0U= IHB1bms= IFByb3ZpbmNl KCks U3BlZWQ= IGhhbmRpbmc= IFNlYmFzdA== U2ly cmFzZQ== IGpvdXJuYWxz IGNvbmdlc3Q= IFR1dA== aXJyZWw= IHNjaGl6b3BocmVuaWE= IG1pc29neW4= aGVhbHRoeQ== SXJvbg== IHJlYWN0ZWQ= LSQ= MjUy IHBsdXJhbA== IHBsdW0= IGJhcmdhaW4= IGdyb3VuZGVk ZmluZGVy IGRpc3Nl IExheg== T09E IGF0cm9j RmFjdG9yeQ== IG1pbmlvbnM= IG9yaQ== IEJyYXZl IFBSRQ== IE15YW5tYXI= IEhvZA== IGV4cGVkaXRpb24= IGV4cGxvZGU= IENvb3Jk IGV4dHI= IEJyaWVm IEFESEQ= IGhhcmRjb3Jl ZmVlZGluZw== IGRpbGU= IEZydWl0 IHZhY2NpbmF0aW9u IE1hbw== b3NwaGVyZQ== IGNvbnRlc3Rz LXw= IGZyZW4= aXNwaGVyZQ== Um9t IFNoYXJw IFRyZW5k IGRpc2Nvbm5lY3Q= 4oCi4oCi IHBlcnNlY3V0aW9u RWFydGg= IGhlYWx0aGllcg== Mzg0 IGNvYg== IFRyaW5pdHk= T1dT QU5O IHNwZWNpYWx0eQ== IGdydQ== IGNvb3BlcmF0aXZl d2h5 U3RhcnRpbmc= IElzc3Vlcw== c3RyZQ== ZW5zb3I= IDE4NQ== QWR2 IT8= IFJldmVs ZW1pYQ== IEh1bGs= IGNlbGVicmF0aW9ucw== IFNvdQ== cmF1ZA== IEtsZWlu IHVucmVhbA== Y29udGV4dA== IHBhcnRuZXJzaGlwcw== IGFkb3B0aW5n dGljYWw= IHNwbGFzaA== IEhlemJvbGxhaA== Y2F0ZWdvcnk= Y3ljbG9w eHRvbg== IERvdA== dXJkeQ== dHo= IGVudmVsb3Bl IE5M 4pU= IHdoZXJlaW4= U3BlYw== MTg0 IHRlbGV2 YWxpYXRpb24= IG15dGhz 5bA= IHJpZ29yb3Vz IGNvbW11bmljYXRpbmc= IG9ic2VydmVy IHJlaGU= IFdhc2g= IGFwb2xvZ2l6ZWQ= IFRpbg== IGV4cGVuZGl0dXJlcw== d29ya2Vycw== ZG9jdW1lbnQ= IGhlc2l0YXRl IExlbmlu IHVucHJlZGljdGFibGU= IHJlbmV3YWw= Y2xlcg== b2tpYQ== IENPTlQ= IHBvc3RzZWFzb24= VG9rZW5z IGV4YWNlcmI= IGJldHRpbmc= IDE0Nw== IGVsZXZhdGlvbg== V29vZA== IFNvbG9tb24= MTk0 MDA0 b3V0cHV0 IHJlZHVuZA== IE11bWJhaQ== IHBI IHJlcHJvZHVjZQ== IER1cmF0aW9u TUFY IGJvZw== Q0JT IEJhbGFuY2U= IFNndA== IFJlY2VudA== IGNk IHBvcHBlZA== IGluY29tcGV0 cHJvcA== YXlhbg== Z3V5 UGFjaWZpYw== IHR5cg== IHt7 IE15c3RpYw== IERhbmE= IG1hc3R1cmI= IGdlb21ldHJ5 w6I= IENvcnJlY3Q= IHRyYWplY3Rvcnk= IGRpc3RyYWN0ZWQ= IGZvbw== IFdlbHNo THVj bWl0aA== IHJ1Z2J5 IHJlc3BpcmF0b3J5 IHRyaWFuZ2xl IDIxNQ== IHVuZGVyZ3JhZHVhdGU= IFN1cGVyaW9y Y2hhbmdpbmc= Xy0= IHJpZ2h0bHk= IHJlZmVyZWU= IGx1Y3JhdGl2ZQ== IHVuYXV0aG9yaXplZA== IHJlc2VtYmxlcw== IEdOVQ== IERlcmJ5 IHBhdGh3YXlz IExlZA== IGVuZHVyYW5jZQ== IHN0aW50 IGNvbGxlY3Rvcg== RmFzdA== IGRvdHM= IG5hdGlvbmFscw== IFNlY3VyaXRpZXM= IHdoaXA= UGFyYW0= IGxlYXJucw== TWFnaWM= IGRldGFpbGluZw== bW9vbg== IGJyb2FkY2FzdGluZw== IGJha2Vk MjY1 aG9sbQ== IFNhaA== IEh1c3NlaW4= IENvdXJ0ZXN5 MTc0 IDE0Ng== IGdlb2dyYXBoaWM= cGVhY2U= IGp1ZGdpbmc= IFN0ZXJu QnVy IHN0b3J5bGluZQ== R3Vu IFN0aWNr MjQ1 MzA3 44K044Oz IEFkbWluaXN0cmF0b3I= IGJ1cm50 IHBhdmU= Y2hvZXM= RXhlYw== IGNhbXB1c2Vz UmVzdWx0 IG11dGF0aW9ucw== IENoYXJ0ZXI= IGNhcHR1cmVz IGNvbXBhcmVz IGJhZGdl U2NpZW50 IGVyYWQ= aWVyeQ== b2k= ZXR0ZXM= IEVzdGF0ZQ== IHN0cmFw IHByb3VkbHk= IGZyaWVk IHdpdGhkcmF3bg== IFZveQ== cGhvbnk= SXRlbXM= IFBpZXJjZQ== YmFyZA== IGFubm90YXRpb24= YW50b24= aWxsb24= SW1wcm8= Li4uKQ== IGhhcHBpZXI= LS0tLS0t YWRqdXN0 IHN0YWZmZXJz IGFjdGl2aXNt IHBlcmY= IGFscmlnaHQ= TmVlZA== IGNvbW1lbmNl IG9waW9pZA== IEFtYW5kYQ== RXM= IFBhcnM= IEthdw== V29ya3M= MjQ4 IGluZG8= dGM= ZW5kYW50 IE1vdG8= IGxlZ2FsaXphdGlvbg== T1RF IHRhc2tlZA== IHRzcA== IEFDVElPTlM= MTY2 IHJlZnJlc2hpbmc= IE5S IFBlcmV6 IGluZnJpbmdlbWVudA== U1k= TGlzdGVu aW5uaW5n a3U= IHJvdGF0ZQ== cHJvZ3JhbQ== YXJhaA== RGVzaWdu ICjCow== IHN0b3Jpbmc= IHdhcnJhbnRz IGp1ZGdlbWVudA== IEJyaXN0 dXN1YWxseQ== cGhvdG8= IFJhbg== IFBpbmU= IG91dHJhZ2VvdXM= IFZhbGVudGluZQ== bHVlbmNl IEV2ZXJ5Ym9keQ== QWx0ZXJu IHJlbGV2YW5jZQ== IHRlcm1pbmF0ZWQ= IGRlc3NlcnQ= IGZ1bGZpbGxlZA== IHByb3NlY3V0ZWQ= IFdvcmRz IG1pZ3JhbnQ= IGN1bHRpdmF0aW9u w4PDgsODw4LDg8OCw4PDgsODw4LDg8OCw4PDgsODw4LDg8OCw4PDgsODw4LDg8OCw4PDgsODw4LDg8OCw4PDgg== aWRlbGl0eQ== IFZlcm4= IExvZ2lu IG1ldGFwaG9y IFRpcA== IHJlY3J1aXRz IFBpZw== cmliaW5n IGVudGh1c2lhc3Rz ZXhwZXI= IGZyaWdodGVuaW5n IEhhaXI= YW5zb24= c3RyYXRl IGhp SGVpZ2h0 IG93bmluZw== bm9uZQ== IGRpc2xpa2U= IGtuaXZlcw== cGhlcmQ= IGxvdWRseQ== IEFQSXM= RGlzcGxheQ== IExhYw== IFVTUw== YWJs dmVyYWdlcw== SmV3 IDE3Mg== IEhpc3RvcmljYWw= YXRvb24= IFBoeXNpY3M= aW50ZXJu IHdhcm10aA== IHRvcHA= RE0= IGd1bm1hbg== IGVtcGVyb3I= b2Rp 44Oj aW5hdG9yeQ== IFJpYg== IDEzMQ== IFNhdHVybg== IFNoaW5pbmc= IHdha2luZw== UXVvdGVz IGNvbWVkaWFu ZW5iZXJn wr0= IGJlbGlldmVycw== IHBhcGVyd29yaw== Y3VzdG9t IGxldg== IGxhbWVudA== IHBvdXJpbmc= MjIy cG9saXRpY2Fs IFN1cHBsZW1lbnQ= bWFpZA== IGNydWVsdHk= IHRyZWFk eXNpY3M= QXc= cml0ZXM= IG1vZGlmaWVy IFBvc2l0aW9u QWRhbQ== bGI= dWJz IGltcGVyZmVjdA== IGNsdXN0ZXJz IEVuZ2luZWVy IENoZXJyeQ== IGluYXVndXJhdGlvbg== IFNhdQ== IGVtYm9kaW1lbnQ= IFVuY2xl IG92ZXJy IGV4cGxvc2lvbnM= Y3VsZQ== IFByaW5jZXRvbg== IEFuZHJlYQ== IGluY29ycmVjdGx5 IGVhcm5lc3Q= IHBpbGdy IFNwcmludA== IHNsZWV2ZQ== IGhlYXJz IEFtYXppbmc= IGJyb3dzaW5n YWdpbg== IGhvbWVsYW5k IGhhdw== IGRpdmluZw== aXN0ZXJlZA== MTc4 IGJhcmdhaW5pbmc= IEFyY2FkZQ== IGRlbGVnYXRl dGVyc29u Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLg== IEphY2tzb252aWxsZQ== Mjc1 IHN0YWdu IGFkYW0= IFNoZXJtYW4= Q0I= IHN1YnVyYg== IEZvb2Rz IGNvbnZlcnRpbmc= IEFyaXN0 IGNoYW1iZXJz bG92ZQ== IGFtaW5v IEdhbg== IG1hZG5lc3M= bWM= IFVTRQ== ZGVmaW5lZA== IHVsdHI= aW5kdXN0 IHdvbHZlcw== bGFuY2U= QWRkaXRpb25hbGx5 IGNyYWNrcw== YXNpYQ== IFJlYXNvbg== IFB1bXA= IGFjY2lkZW50YWw= IExhc2Vy IFJpZA== IGluaXRpYWxpemVk ZWxsaQ== IHVubmFtZWQ= IG5vdW4= IFBhc3NlZA== IGhvc3RhZ2U= IEV0aGlvcA== c2hpcnRz IHVucmVs IEVtYmFzc3k= IDE5NDE= IGF0b21z IHB1cnBvcnRlZA== MTY0 IEZp IGdhbGxvbnM= IE1vbmljYQ== IHBn ZW5tZW50 IHNvcnRlZA== IEdvc3BlbA== IGhlaWdodHM= IHRyYWNlZA== IHVuZGVyZ29pbmc= U2hlbGw= IHNhY2tz IHByb3BvcnRpb25z IGhhbGx1Yw== Rm9udA== YWNldA== IHdhcm1lcg== IElOVEVS IGdyYWJiaW5n UGx1Zw== IHJlYWxpemF0aW9u IEJ1cmtl IGVuY2hhbnQ= QVRFUg== IFNlZWQ= IGFidW5kYW50 Rk0= IGNpdmlj VnM= aXNp IHZvdw== IHJlcGVy IFBhcnRuZXJzaGlw IHBlbmV0cmF0aW9u IGF4ZQ== IHNoYXR0ZXJlZA== IFpvbWJpZXM= IHZpbnls IEFsZXJ0 ZW9u IG9ibGlnZWQ= IElsbHVzdA== IFBsYXph IEZyb250aWVy IGRhdmlkamw= IFNlcmlhbA== IEhhdg== IE51dHJpdGlvbg== Qmk= IOKWiA== IEpheXM= bGludXg= IGh1cnJ5 IHZveQ== IGhvcGVsZXNz IFN0ZWFsdGg= IOOB ZXNzb3Jz dHRsZQ== Ym9yZw== IFNhZmFyaQ== ZmVsbA== IHdhcnk= ZHVl IEFib3Zl SGE= RUxM IG5vdG9y IFdvbg== VG9v IG9jY3VwYXRpb25z IHBvc3Nlc3Npb25z IGludml0aW5n IHByZWRhdG9ycw== IGFjY2VsZXJhdGVk IDE1Nw== dXRlcnRl IEN1YmU= ZWFzdA== YWNjb3VudA== R2l2ZQ== IHRyYW5zcGxhbnQ= cmVkaWVudHM= aWRhYmxl IHNjcmVlbnNob3Rz IEd1bmQ= IEZT IHRyYXZlbGVycw== IHNlbnNvcnk= IEZpYXQ= IFJvY2tldHM= jos= X3s= RnJpZW5k IGNoYXJtaW5n QUxT IGVuam95bWVudA== bXBo IDUwMDA= IFJFRw== 2YY= Ymlh IGNvbXBpbGF0aW9u cm9zdA== IFZQ IFNjaG5l MjAxOQ== IGNvcHlpbmc= TU9SRQ== IEZsb3Jl ZmFsbHM= MjE1 dG90YWw= IGRpc2NpcGxlcw== ZG91Ymxl IGV4Y2VlZGluZw== IHNtYXNoZWQ= IGNvbmNlcHR1YWw= IFJvbWFuaWE= IEJyZW50 IElDRQ== IFRvdQ== IGdyYXA= IG5haWxz MTg5 44OY IHByb2N1cmU= ZXVy IGNvbmZpcm1pbmc= IENlYw== YXdp IEVkZW4= IG5n IGVuZ2luZWVyZWQ= YXRpY3M= IGhvb2tlZA== IGRpc2d1c3Rpbmc= IE11cmRlcg== 44K/ TGlicmFyeQ== IDE2OA== QWxtb3N0 aGVtYXRpYw== TWVudQ== IE5vdHJl IEp1cg== IGtpZG5hcHBlZA== IGhhY2tlcg== IEphZGU= IGNyZWVweQ== IGRyYXdpbmdz IFNwb25zb3I= IGN5Y2xpc3Rz IEdvYmxpbg== IG9wdGltaXplZA== IHN0YWdlZA== IE1jRA== YmV0d2Vlbg== QWdl ZW5v U2V4 IFdpZGU= bmluZ3M= YXZpcw== IGluY2FwYWJsZQ== IEtvYg== IHJld2FyZGluZw== IExvbmU= b2xlc2NlbnQ= IGNvbnRyYWN0ZWQ= IHN0aWNreQ== Sm9zZQ== QmFsbA== ZmVzdA== IElucHV0 IFJlY2VudGx5 IHRvbWF0 c3F1YXJl QXBwbGljYXRpb24= IG5pdHJvZ2Vu IGR1cGxpY2F0ZQ== IFJlY29u IERlYXI= TG9uZG9u IGludHJh IGRvY2s= IG91dHJlYWNo IE1pbGxpb24= IG1hbW1hbHM= YW1wdG9u VkFM IHNuYXBz IGRvcw== IFdob2xl IFJlYWR5 VHJ5 IFdpbm5pcGVn ZWFyYW5jZQ== IGluY3VycmVk cmVuY2hlZA== IE5TVw== aWxvdA== cmFpbmU= IGN1YmU= Z290 IHJ1bndheQ== ZXRlcm1pbmVk IEhhd2tz IHN1cnZpdm9y IFdpc2g= IERpbg== IERFRg== IFZhdWx0 MTg3 IG11c2hyb29tcw== IGNyaXNw YmV5 IERpc2NvdmVyeQ== IGRldmVsb3BtZW50YWw= IHBhcmFkaWdt IGNoYW90aWM= IFRzdQ== IDMzMw== Ym9ucw== IGJhY3RlcmlhbA== IGNvbW1pdHM= IGNvc21pYw== IG1lZ2E= b2NhdGl2ZQ== IFBhaW50 b3Bob2JpYw== IHZhaW4= IGNhcnZlZA== IFRoaWVm IEd1bA== b3dzaGlw IGNpdGVz IEVkaW5idXJnaA== IGRpbWluaXNoZWQ= IGFja25vd2xlZGdlcw== IEtpbGxz IG1pY3Jvdw== IEhlcmE= IHNlbmlvcnM= IHdoZXJlYnk= SG9w YXRyb24= IHVuYXZhaWxhYmxl IE5hdGU= IDQ4MA== IHNsYXRlZA== IFJlYmVjY2E= IEJhdHRlcnk= IGdyYW1tYXI= IGhlYWRzZXQ= IGN1cnNvcg== IGV4Y2x1ZGluZw== YW55ZQ== YXVuZGVyaW5n ZWJpbg== IGZlYXNpYmxl IFB1Ymxpc2hpbmc= IExhYnM= IENsaWZm IEZlcnJhcmk= IHBhYw== dmlzaWJsZQ== bWFya2Vk cGVsbA== IHBvbGl0ZQ== IHN0YWdnZXJpbmc= IEdhbGFjdGlj IHN1cGVyc3Q= IHBhcmFu IE9mZmljZXJz 44CB IHNwZWNpZmljcw== dWx1cw== MjM5 IFBhc3Rl QU1Q IFBhbmFtYQ== IERlbGV0ZQ== YW5ndWFyZA== cmVzdHJpYWw= IGhlcm9pYw== IER5 2KfZhA== IGluY3VtYmVudA== IGNydW5jaA== dHJv IHNjb29w IGJsb2dnZXI= IHNlbGxlcnM= dXJlbg== IG1lZGljaW5lcw== IENhcHM= IEFuaW1hdGlvbg== b3h5 IG91dHdhcmQ= IGlucXVpcmllcw== MjI5 IHBzeWNob2xvZ2lzdA== IFNhc2s= ZXZpbA== IGNvbnRhbWluYXRlZA== 44Ko aGVyZW5jZQ== IGJyYW5kZWQ= IEFiZHVs emg= IHBhcmFncmFwaHM= IG1pbnM= IGNvcnJlbGF0ZWQ= ZXJi IGltcGFydA== IG1pbGVzdG9uZQ== IFNvbHV0aW9ucw== b3RsZQ== IHVuZGVyY292ZXI= IG1hcmNoZWQ= IENoYXJnZXJz ZmF4 IFNlY3JldHM= IHJ1dGg= d2VhdGhlcg== IGZlbWluaW5l IHNoYW0= IHByZXN0aWdpb3Vz aWdnaW5z IHN1bmc= aGlzdG9yeQ== ZXR0bGU= Z2dpZQ== IG91dGRhdGVk b2xhbmQ= IHBlcmNlcHRpb25z IFNlc3Npb24= IERvZGdlcnM= dWo= IEVORA== RG9j IGRlZmljaWVuY3k= R3JhbmQ= IEpva2Vy IHJldHJvc3BlY3Q= IGRpYWdub3N0aWM= IGhhcm1sZXNz IHJvZ3Vl IEF2YWw= RXF1 IHRyYW5zYw== IFJvYmVydHNvbg== IERlcGVuZGluZw== IEJ1cm5z aXZv IGhvc3RpbGl0eQ== RmVhdHVyZXM= k5g= IGRpc2NvbWZvcnQ= IExDRA== c3BlY2lmaWVk IEV4cGVjdA== MzQw IGltcGVyYXRpdmU= IFJlZ3VsYXI= Q2hpbmVzZQ== IHN0YXRld2lkZQ== IHN5bW0= IGxvb3Bz IGF1dHVtbg== Tmljaw== IHNoYXBpbmc= IHF1b3Q= IGNoZXJyeQ== IENyb3NzcmVm 6Kaa6YaS U3RhbmRhcmQ= aGVlZA== IERlbGw= IFZpZXRuYW1lc2U= IG9zdA== IFZhbGt5cmll T0E= QXNzYWQ= IHJlYm91bmQ= IFRyYWZmaWM= cGxhY2Vz 5pg= IEJ1Yw== MTcy IHNoZWx0ZXJz IGluc2lzdGluZw== IENlcnRhaW5seQ== IEtlbm5ldGg= IFRDUA== IHBlbmFs IFJlcGxheQ== aGVhcmQ= IGRpYWxlY3Q= aXph IEZZ aXRjaGVy IERM IHNwaXJhbA== IHF1YXJ0ZXJiYWNrcw== IGh1bGw= IGdvb2dsZQ== IHRvZGQ= IFN0ZXJsaW5n IFBsYXRl IHNweWluZw== bWJvbA== IFJlYWxt IFByb2NlZA== IENyYXNo IHRlcm1pbmF0ZQ== IHByb3Rlc3Rpbmc= Q2VudGVy Z3VpZGVk IHVuY292ZXI= IGJveWNvdHQ= IHJlYWxpemVz c291bmQ= IHByZXRlbmRpbmc= IFZhcw== MTk4MA== IGZyYW1lZA== IDEzOQ== IGRlc2NlbmRlZA== IHJlaGFiaWxpdGF0aW9u IGJvcnJvd2luZw== IEJ1Y2g= IGJsdXI= Um9u IEZyb3plbg== ZW56YQ== Q2hpZWY= IFBvb3I= IHRyYW5zbGF0ZXM= TUlO IDIxMg== SkVDVA== IGVydXB0ZWQ= IHN1Y2Nlc3Nlcw== U0VD IHBsYWd1ZQ== IGdlbXM= ZG9tcw== IHN0cmV0Y2hlcw== IFNweQ== IHN0b3J5dGVsbGluZw== Q3JlZGl0 IFB1c2g= IHRyYWN0aW9u IGluZWZmZWN0aXZl IEx1bmE= IHRhcGVz IGFuYWx5dGljcw== ZXJjaXNl IHByb2dyYW1tZXM= IENhcmJvbg== IGJlaG9sZA== aGVhdnk= IENvbnNlcnZhdGlvbg== IEZJUg== IHNhY2s= dGVybWlu cmlja3M= IGhvdXNlZA== IHVudXN1YWxseQ== SWNl IGV4ZWN1dGluZw== IE1vcm9j ZWRheQ== IGVkaXRpb25z IHNtYXJ0ZXI= IEJB IG91dGxhdw== IHZhbmlzaGVk aWJh QUxTRQ== IFNpbHZh MjM4 Q291bGQ= IHBoaWxvc29waGVy IGV2YWN1YXRlZA== U2VjcmV0 MTQy IHZpc2Fz 44Ks IE1hbHQ= IENsZWFybHk= IE5pZ2Vy IENhaXJv IEZpc3Q= Mzgw IFhNTA== YXV0bw== aXRhbnQ= IHJlaW5mb3JjZWQ= UmVjb3Jk IFN1cnZpdm9y R0h6 IHNjcmV3cw== cGFyZW50cw== IG9jZWFucw== bWFyZXM= IGJyYWtlcw== dmFzaXZl IGhlbGxv IFNJTQ== cmltcA== IG9yZQ== IEFybW91cg== MjQ3 IHRlcnJpZmlj IHRvbmVz MTQx IE1pbnV0ZXM= RXBpc29kZQ== IGN1cnZlcw== IGluZmxhbW1hdG9yeQ== IGJhdHRpbmc= IEJlYXV0aWZ1bA== TGF5 IHVucG9w dmFibGU= IHJpb3Rz IFRhY3RpY3M= YmF1Z2g= IENvY2s= IG9yZ2FzbQ== IFNhcw== IGNvbnN0cnVjdG9y ZXR6 R292 IGFudGFnb24= IHRoZWF0 IGRlZWRz aGFv Y3V0cw== IE1jQ2w= IHVt IFNjaWVudGlzdHM= IGdyYXNzcm9vdHM= eXNzZXk= Il09Pg== IHN1cmZhY2Vk IHNoYWRlcw== IG5laWdoYm91cnM= IGFkdmVydGlz b3lh IG1lcmdlZA== VXBvbg== IGdhZA== IGFudGljaXBhdGU= QW55d2F5 IHNsb2dhbg== IGRpc3Jlc3BlY3Q= SXJhbg== IFRC YWN0ZWQ= IHN1YnBvZW4= bWVkaWF0ZWx5 T09PTw== IHdhaXZlcg== IHZ1bG5lcmFiaWxpdGllcw== b3R0ZXN2aWxsZQ== IEh1ZmZpbmd0b24= Sm9zaA== IERI TW9uZGF5 IEVsbGVu S25vdw== eG9u aXRlbXM= MjI4 IGZpbGxz IE5pa2U= IGN1bXVsYXRpdmU= YW5kYWxz SXI= IOw= IGZyaWN0aW9u aWdhdG9y IHNjYW5z IFZpZW5uYQ== bGRvbQ== IHBlcmZvcm1lcnM= UHJpbQ== IGJpZGRpbmc= TXVy IGxlYW5lZA== IFByaXg= YWxrcw== IFvigKZd IFR3aXRjaA== IERldmVsb3Blcg== IEdpcg== IGNhbGxiYWNr QWJzdHJhY3Q= IGFjY3VzdG9tZWQ= IGZyZWVkb21z IFBH dXJhY3k= IGx1bXA= aXNtYW4= LCwsLA== MTk5Mg== IFJFRA== IHdvcm0= TWF0Y2g= IFBsYXRpbnVt SUo= IE93bmVy VHJpdmlh Y29tcGw= IG5ld2Jvcm4= IGZhbnRhcw== T3du IDE5NTk= IHN5bXBhdGg= IHViaXF1 IG91dHB1dHM= IGFsbGV2 IHByYWc= S2V2aW4= IGZhdm9ycw== IGJ1cmlhbA== IG51cnQ= c29sZXRl Y2FjaGU= IDE1Ng== IHVubG9ja3M= dGVjaG4= TWFraW5n IGNvbnF1ZXI= YWRpYw== 5pY= IGVsZg== IGVsZWN0b3JhdGU= IEt1cmRz IFN0YWNr IFNhbXVyYWk= IOKYhQ== IHt9 IFNhaWQ= IEZhbGxvdXQ= IGtpbmRuZXNz IEN1c3RvbXM= IEJvdWxldmFyZA== IGhlbGljb3B0ZXJz b3RpY3M= IFZlZ2V0 Y29tbWVudA== IGNyaXRpY2lzZWQ= IHBvbGlzaGVk IFJlbWl4 IEN1bHR1cmFs IHJlY29ucw== IGRvaQ== YXRlbQ== U2NyZWVu IGJhcnJlZA== Q29tbWVudHM= IEdlbmVyYWxseQ== IHNsYXA= NzIw VmFyaQ== cGluZQ== IGVtcHQ= IGhhdHM= IFBsYXlpbmc= bGFi YXZlcmFnZQ== Zm9ybXM= IENvdHRvbg== IGNhbnM= IERPTg== IFNvbWFsaWE= Q3J5cHQ= IEluY3JlYXNlcw== RXZlcg== bW9kZXJu IHN1cmdlb24= MzAwMA== IHJhbmRvbWl6ZWQ= PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ== QmVybg== aW1wbA== IENPUg== IHByb2NsYWlt dGhvdXNl IHRvZXM= IGFtcGxl IHByZXNlcnZpbmc= IGRpc2JlbA== Z3JhbmQ= QmVzaWRlcw== IHNpbGs= IFBhdHRlcm4= aG0= IGVudGVycHJpc2Vz IGFmZmlkYXZpdA== IEFkdmlzb3J5 IGFkdmVydGlzZWQ= IFJlbGlnaW91cw== c2VjdGlvbnM= cHN5Y2g= IEZpZWxkcw== YXdheXM= IGhhc2h0YWc= IE5pZ2h0bWFyZQ== IHZhbXBpcmU= IGZvcmVuc2lj cm9zc292ZXI= bmFy IG5hdnk= IHZhY2FudA== IER1ZWw= IGhhbGx3YXk= IGZhY2Vib29r aWRlbnRhbGx5 IE5SQQ== IG1hdHQ= IGh1cnJpY2FuZQ== IEtpcmJ5 IFB1enpsZQ== IHNraXJ0 b3VzdA== ZHVsbGFo IGFuYWxvZ3k= aW5pb24= IHRvbWF0b2Vz IE5W IFBlYWs= IE1leWVy IGFwcG9pbnRtZW50cw== IG1hc2M= IGFsbGV5 cmVoZW5k IGNoYXJpdGllcw== IHVuZG8= IGRlc3RpbmF0aW9ucw== IFRlc3Rpbmc= Ij48Lw== IGRlc3RpbmVk IGltcGxlbWVudHM= IEhhcm9sZA== UkVDVA== IG9wdGltaXphdGlvbg== IGtpbG9tZXRyZXM= IGNtZA== IGltcGFpcm1lbnQ= IHVuc3VjY2Vzc2Z1bA== IHN3aWZ0bHk= IEdsYXNnb3c= YXJ0ZW4= IFNoYXJlcw== IEFuc3dlcg== IEFsYnVt IG51dHJpdGlvbmFs 44OW IEZ1dA== IGJsb2M= IE5GQw== IHdob2xlc2FsZQ== IENX IG5lZ2xlY3RlZA== IGxhdW5jaGVy IGFubm91bmNlbWVudHM= T1VMRA== Y29tYg== IHJvdGF0aW5n IHJlc3Rz IFRpY2tldA== Y2hlZGVs TG91 IFZpYw== ICIn IHRlbXBsYXRlcw== IHJlcGxhY2Vz QXJj Ojo6Og== IEdpbGJlcnQ= IGlsbG5lc3Nlcw== IHNjaGVkdWxlcw== IGhldGVyb3NleHVhbA== TElORQ== IGhlcmVpbg== IGNvZXJj IGRlY3JlYXNpbmc= IGRlcG9ydGF0aW9u c3Vkbw== IEluZGlnZW5vdXM= IHdlaWdocw== QWxvbmc= Jyk7 IEJlbmdhbHM= NzA3 IGpvaW50cw== dmVydHM= IDE0OQ== bmFpcmU= IHNpbXBsZXN0 IGxvcmU= MTA4MA== ZmljdGlvbg== IERhdGFiYXNl IHJlc2VydmF0aW9u IHNvdQ== IHNhbmN0dWFyeQ== YXVkaW8= YXBsZQ== IHZlZ2V0YXJpYW4= IGFudGljaXBhdGlvbg== bWljcm8= IGVuZHVyaW5n IGRlcGFydGVk IHNpZGV3YWxr IHByb2hpYml0cw== IEZvbnQ= IGNvbXB1dGU= IFNlY3Q= IDE1OA== QmF0dGxl IGJvbWJlcg== IGRpc3RyYWN0aW9u IGVuZHVyZWQ= IHByYWN0aXRpb25lcnM= IGRpc3R1cmJlZA== IGRyYW5r b3JkZXJlZA== IHN1cnByaXNlcw== c2VhdA== U2VjdXJpdHk= IFdpc2RvbQ== b2dv IHN1YnBhcmFncmFwaA== IFBlbmluc3VsYQ== IE9yaWdpbnM= aXJlbg== IFBhdg== aWdnbGU= IGdyYXRpdHVkZQ== IEdyYXZpdHk= b3ZlcnR5 aW1hbg== Y3Ry IENhZXNhcg== Y291bGQ= Z2Vt IHNraWVz IGNoYW1w IGFncmVlaW5n RmFtaWx5 RGl2 MTc2 IG1lc3N5 dW1wdGlvbg== RmVkZXJhbA== ZXJubw== IENoYXQ= QmV5b25k IGRldm90ZQ== IFdhbHNo IGR1bXBlZA== IGFjY3VtdWxhdGlvbg== c3RhZA== aGliaXRpb24= IHNtb2tlcnM= IGluc3BlY3Rvcg== RnJlbmNo aXNzYW4= IFZpdGE= IHJlc2VhcmNoaW5n UkFN IENlbHRpY3M= IGNsb2Fr IFRlcnJh TWFyeQ== c29sZA== IERPTQ== bW9kcw== SW50ZWw= IG11bHRpdHVkZQ== IEltcHJvdmVk IHJlbGlhbmNl IGFydGlmYWN0 IGFsYXJtaW5n UHJvbQ== aG9u VElPTg== bWVkaXVt IHJlZmxleA== IEV4Y2Vs IHdlYWtlbmVk MTYz MjI0 IGNvc3R1bWVz IHVuaXF1ZWx5 IHNvcnJvdw== IG1hbnNpb24= d3A= IHNhbHY= IEdyb3Zl YnNw IFNuaXBlcg== IFNoaXBwaW5n IFBPVw== IHVuZGlz IGJyYW5kaW5n R2lybA== IEFobWFk IExha2Vz IENvcmV5 IGluaGVyaXRhbmNl ZW5lcnk= IHBhY2tpbmc= IFByZXN0 RGVzdA== Rlc= IHJlZ3VsYXRvcg== bG9ja2Vk IGNvbnRlc3RlZA== IE1lbGlzc2E= IER1Yw== IHVucG9wdWxhcg== IHN0YWNrZWQ= IDE5MTc= IHllYXJseQ== IHN0YXJl IGFzc2Vzc2luZw== w7g= IGJldmVyYWdlcw== IGNvbXBldGl0aW9ucw== IHN0cmVuZ3RoZW5pbmc= YWxvbmc= IEx1ZA== IG1lbHRlZA== c3RhbmJ1bA== IGJvdW50eQ== RU5D IExhbmRz IGRlY2xhcmVz IGN1c3RvbWl6ZQ== IGNvbXBvc2l0ZQ== 44Os Q00= b2dyYXBoaWNz IFRlbXA= IGNvbnRlbmRlcg== IGluc2lnbg== IExBTg== IGRpc2FzdGVycw== aW5zcGlyZWQ= IGp1ZGdtZW50cw== dXN0YWluYWJsZQ== dXJzaW9u IHZhcmlhbmNl IFVsdGltYXRlbHk= IC0tLS0tLS0t dWFkb3I= IFJY IG1lbHRpbmc= IEV4dGVuZGVk IFR3ZQ== TWFqb3I= IEJpbA== IHN5cnVw cXVpY2s= IEhvbGRlcg== IGlubm9jZW5jZQ== VUxF IE1pZ2h0 OTk5OQ== IGZhbA== IGNvbnRpbnVpdHk= IDE5NTM= IEJT c3RpbGw= TGF0 IEFidXNl IHVuc3VwcG9ydGVk eHh4eHh4eHg= IGluc3RpdHV0ZQ== IGZyYWdtZW50 IFBlcA== V2VzdGVybg== IENhdXNl IEZyYWc= IEFycw== 4KU= YXN0aWNz IGJpc2hvcA== IGNyb3NzZXM= IDE1NA== IFVwZ3JhZGU= IG1pdGlnYXRl IFJheW1vbmQ= TW9kcw== IHRvbWF0bw== IHN0dW1ibGVk IGRpZmZlcnM= SW5pdGlhbA== IFJhc3BiZXJyeQ== IGlnbm9yZXM= IHRhbnQ= w6A= IHJlbGF5 IGJpc2V4dWFs IGNvbmZlc3Npb24= IGRlbWVudA== aW5hcw== IEhlYXRoZXI= cGxhdGZvcm0= ZHJpdmluZw== Ym91cmc= IE11c2g= IGh5c3Rlcg== RGV0YWlscw== IGRyaWZ0 IFdhbGQ= IEx1Y2tpbHk= b3Jm IGV4cGlyZQ== IFB1bmNo enltZQ== Z29sZA== IHVucGFpZA== IFRyZW50 IHVuYXJtZWQ= IGlsbGljaXQ= IFRvdHRlbmhhbQ== IHNtYXNo SW50ZXJuYXRpb25hbA== aW5rZXI= IHN0aW5n IFNhZGRhbQ== IEFSVA== IHRydXRocw== YmlydGg= IHNvYmVy IE5pdA== IGli IHVzYWJsZQ== IHN0YWNrcw== IFN5bHY= IG5vcnRoZWFzdA== IGRvbWluYXRpb24= IE1vdXI= RU5TRQ== IE1lYXN1cmU= IHByb2dyYW1tZXI= IDwt MTgy IENvbmRpdGlvbg== IGJhY2t5YXJk aXJsaW5n IEplYg== IENyZWVk IEhhbmc= IENPTVA= RkVS IElzaA== IGRldGVjdGl2ZXM= LS0tLS0tLS0tLS0tLS0t IE1lc3Nlbmdlcg== IGxvb3Bo IGdhdGV3YXk= MTUx IE1hdGVyaWFscw== IERU IGRvb21lZA== b2Rv IHNsaWNlcw== IGVtYWlsZWQ= IFBlcmw= IHJlbm92 VVRI b2R5bmFt IFNvdXRod2VzdA== Z2V0aWM= IFRQUA== IG9wdGltaXNt IFRvdw== dWxhdG9ycw== cHJvdGVjdGVk eWxlcw== wqs= IGV4aWxl ZW52 UHJvcA== IFppbW1lcm1hbg== 2Y4= Q2E= b21hbHk= 44OG IHJhaWxyb2Fk TGVl MjMy IHJlcGxpY2F0ZQ== IGNvbWZvcnRhYmx5 YWN0bHk= IHJhdg== IHRlbGVzY29wZQ== IGhvbmVzdHk= IFBlcHBlcg== IEJyaW5n IHJpY2hlc3Q= IG91dGRvb3Jz IGhhbGxz IGNvbnRlbmQ= SVNF IHN1Ym1pdHRpbmc= IG5haXZl YXJhdGlvbnM= IDE0Mw== IHBvaXNlZA== cmVzcG9uc2libGU= IHNvY2tz IFNrdWxs UXVlc3Rpb24= IGRpc2NvdmVyaWVz Sm9pbmVk IEVuZW1pZXM= IFdpcmVsZXNz IFJldmVuZ2U= IHB1enpsZXM= IGNlYXNlZA== Mjkw Y3JpcHRpb25z IENvbnNvbGU= IGJvaWxpbmc= IGRpc2NyZXA= IGRlZHVjdGlvbg== IGFyc2VuYWw= WFhYWA== IEFtc3RlcmRhbQ== cm94aW1hdGVseQ== IFNoYW5l IHBvc2luZw== IEFDTFU= IENvbXBhbmllcw== IHRoZW9sb2d5 IFVn cXVhcnRlcg== IEhhbms= Q29pbg== IEx2 IGFsbGVnYXRpb24= IEF2b2lk IGluZGVmaW5pdGVseQ== IGNvbW1vZGl0aWVz IGJyaWc= IE1hbml0 IHRlbnRo bWV0aG9k IEtuaWNrcw== IOKAjg== IGludm9rZWQ= RGlhbA== QVJB IGNhdWN1cw== MjI3 IEphYg== IG91bmNlcw== YmF5 IGJ1ZGR5 ZmFu MjM0 IEhpbA== YWRo IFRZ IElORA== IDE5Mzk= IGl0ZXJhdGlvbg== IEdvbnphbGV6 IFZlcnQ= IElP ZW1i cmVyYQ== ZW5jaA== IFJlcXVpcmVtZW50cw== IFdpbnM= IGxpdmVzdG9jaw== aG91cnM= IuKApg== YnJhbA== TWFyZw== IERvbmU= IHdhc3Rpbmc= aW5nZWQ= Z3JvdXBz IHdpc2hpbmc= IFR1bWJscg== IHRhcHBpbmc= IG5hdGlvbmFsaXNt IEJ5cg== IHNxdWFyZXM= IEFjdGlvbnM= 44Ol SW5zaWRl ZGVidWc= IGFwcGVuZA== IHN0dWJib3Ju IENpbmQ= VGVsbA== IHRlYXJpbmc= IFJleQ== b3Jj IERheXRvbg== IE5I IE1hZG5lc3M= Q2hhcmw= IE1vcnJpc29u ZmlsdGVy IGFjY3VzZQ== IC4v IHRvcnJlbnQ= IGRlY2xpbmVz Z2FsbGVyeQ== TWluZQ== IG5lZ290aWF0aW9u IEJhc2hhcg== b3BpYQ== MTk5Mw== ZW1vcnQ= IE5vdmVs IEZhbmc= ZXJzaXZl IEluc3RhbnQ= IHJvbGxlcg== QXJvdW5k IEVsZWN0aW9ucw== R2FtZXM= IGluZXhwZW5zaXZl IHdvcnM= IHZ1bA== IEhvbGU= IHVuYmVsaWV2YWJsZQ== IG5hdXNl IGVudHI= Ym9hdA== IFNURQ== IGJ1c2g= IEhhc3Nhbg== IHdv IHBhdXNlZA== IE1pZw== bGl2ZWQ= IHNjb3V0 IGxpdGg= UHVibGlzaGVk ZHVpbm8= Y29vbA== IGNpcmN1bGF0aW5n aWRhcw== IFBhbQ== dmlvbGVudA== IENyYXdmb3Jk dWRkbGU= IExldHRlcnM= R3VhcmQ= bW9ycGg= IHdhbmRlcmluZw== IHNvcGhvbW9yZQ== IHF1ZWVy IEJsaW5k cnVl IE1hcnJpYWdl RG9t IHBhZGRpbmc= IGZvbGRlcnM= IG1lYW5pbmdsZXNz IGNhbmRpZGFjeQ== YWZvcnQ= IHdoaXN0bGVibA== IElkZW50aWZpZWQ= IGNpZ2Fy IGhpZA== IER1YmFp IHBvc3R1cmU= IGhpa2luZw== IFRlcm1pbmFs TGVnZW5kYXJ5 IFRQ IEFUSw== IFN0YXJidWNrcw== IFJpb3Q= MTk5MQ== IEJvdHRvbQ== ZWZmaWM= IEV1Z2VuZQ== IFd5b21pbmc= IFJvY2t5 IHNhbG1vbg== IG1ldHJv IGJpbGF0ZXJhbA== IGNlbGVicmF0ZXM= TGVuZ3Ro YmlsbGlvbg== QmF0 IHJlbGVn IHBzZXVkbw== RFQ= IFJob2Rl UGFyZW50 cGxldGlvbg== IGF0dHJpYnV0 IHR1bmluZw== IE5PVEU= IFJlYmVs aWN1cw== RnVuZA== IGNvY2t0YWls IDUwMQ== IHNwb29u IGJydXRhbGl0eQ== IHVuaXRl IG1pY3JvYmk= IFJlaWNo cG9zaXRpdmU= IGFtYXplZA== IE5U RGVzYw== RUNUSU9O IGZhbHNlbHk= IEhpZ2hsYW5kZXI= IENyaXN0 IFZpY3Rvcmlhbg== IGRpc3RyaWJ1dGlvbnM= dGhlaXI= IEVpbnN0ZWlu IHBvZA== IGVwaWRlbQ== IGhlYXA= IFJhbmNo IGFudGhlbQ== IHJlYXBw IEF1YnVybg== IGNvbmN1cnJlbnQ= IFRocm91Z2hvdXQ= IFBPU1Q= 4pg= IGhvbWVtYWRl a2ljaw== QmVn IGNoYXNzaXM= Y291bnRlcg== IG1lcmdlcg== IGxhcHM= MjE3 dW5pb24= IFRyaWdnZXI= IGRlYmF0ZWQ= IHNpbGVudGx5 IHJlc3RyYWludA== QmFs MDAwMDAwMA== IGZvcm1pZGFibGU= IEZpbGlw IHNhY3JpZmljZXM= Rm9vZA== IGR3YXJm IFNlcXU= aW5pYW4= TW9yZW92ZXI= IHRhbmdpYmxl b3BzaXM= IE1pbmVjcmFmdA== IFJlZ2lzdHJhdGlvbg== b2Fu IHJlcHJlc2VudGF0aW9ucw== IHRoaXJzdA== IGNvcnA= aXJlbWVudA== TWFkZQ== bG9l PiI= Y2F0cw== Ki4= IGdlc3R1cmVz Z2VuZXJhbA== TGVhZ3Vl IHBhY2tldHM= IEluc3BlY3Rvcg== IEJlcmc= IGZyYXVkdWxlbnQ= IGNyaXRpY2l6ZQ== RnVu IGJsYW1pbmc= bmRyYQ== IHNsYXNo IEVzdG9u IHByb3Bvc2luZw== IHdoYWxlcw== IHRoZXJhcGlzdA== IHN1YnNldA== IGxlaXN1cmU= RUxE IENWRQ== IEFjdGl2aXR5 IGN1bG1pbg== c2hvcA== IERBWQ== aXNjaGVy IEFkbWlyYWw= IEF0dGFja3M= IDE5NTg= IG1lbW9pcg== IGZvbGRlZA== IHNleGlzdA== IDE1Mw== IExJ IHJlYWRpbmdz IGVtYmFycmFzc21lbnQ= IEVtcGxveW1lbnQ= d2FydA== Y2hpbg== IGNvbnRpbnVhdGlvbg== bGlh UmVjZW50bHk= IGR1ZWw= IGV2YWN1YXRpb24= IEthc2htaXI= IGRpc3Bvc2l0aW9u IFJpZw== IGJvbHRz IGluc3VyZXJz NDY3 TWV4 IHJldGFsaWF0aW9u IG1pc2VyeQ== IHVucmVhc29uYWJsZQ== cmFpbmluZw== SW1t IFBV ZW1lcg== IGdlbml0YWw= 44Kz IENhbmR5 IG9uaW9ucw== IFBhdHQ= bGluZXI= IGNvbmNlZGVk IGZh IGZvcmM= IEhlcm5hbmRleg== IEdlb2Zm ZGViaWFu IFRlYW1z IGNyaWVz IGhvbWVvd25lcnM= MjM3 QUJD IHN0aXRjaA== IHN0YXRpc3RpYw== IGhlYWRlcnM= IEJpb2xvZ3k= IG1vdG9ycw== IEdFTg== IExpcA== IGhhdGVz IGhlZWw= U2VsZg== aXBs RURJVA== b3J0aW5n IGFubm90 IFNwZWVjaA== b2xkZW1vcnQ= IEphdmFzY3JpcHQ= IExlQnJvbg== IGZvb3RwcmludA== IGZu IHNlaXp1cmVz bmFz aGlkZQ== IDE5NTQ= IEJlZQ== IERlY2xhcmF0aW9u IEthdGll IHJlc2VydmF0aW9ucw== TlI= ZmVtYWxl IHNhdHVyYXRlZA== IGJpYmxpY2Fs IHRyb2xscw== RGV2aWNl cGhvdG9z IGRydW1z 44OJ44Op44K044Oz TmlnaHQ= ZmlnaHRlcg== IEhhaw== cmliZXI= IGN1c2g= IGRpc2NpcGxpbmFyeQ== YmF1bQ== IEdI IFNjaG1pZHQ= aWxpYnJpdW0= IHNpeHR5 IEt1c2huZXI= cm90cw== IHB1bmQ= IFJhYw== IHNwcmluZ3M= IGNvbnZl QnVzaW5lc3M= RmFsbA== IHF1YWxpZmljYXRpb25z IHZlcnNlcw== IG5hcmNpc3M= IEtvaA== IFdvdw== IENoYXJsb3R0ZXN2aWxsZQ== ZWRv IGludGVycm9nYXRpb24= IFdvb2w= MzY1 QnJpYW4= IOKckw== IGFsbGVnZXM= b25kcw== aWRhdGlvbg== IEphY2tpZQ== eXU= IGxha2Vz IHdvcnRod2hpbGU= IGNyeXN0YWxz IEp1ZGE= IGNvbXByZWhlbmQ= IGZsdXNo IGFic29ycHRpb24= IE9D IGZyaWdodGVuZWQ= IENob2NvbGF0ZQ== TWFydGlu IGJ1eXM= IGJ1Y2tz IGFwcGVsbA== IENoYW1waW9uc2hpcHM= IGxpc3RlbmVy IERlZmVuc2l2ZQ== IGN6 dWRz IE1hdGU= IHJlcGxheQ== IGRlY29yYXRlZA== IHN1bms= IFZJUA== IEFuaw== IDE5NQ== YWFhYQ== Tm9ib2R5 IE1pbGs= IEd1cg== IE1r IFNhcmE= IHNlYXRpbmc= IFdpZA== VHJhY2s= IGVtcGxveXM= IGdpZ2FudGlj QVBQ 44Kn aW52ZW50b3J5 IHRvd2Vs YXRjaGU= bGFzdGluZw== IFRM IGxhdGVuY3k= IGtuZQ== QmVy bWVhbmluZw== IHVwaGVsZA== IHBsYXlncm91bmQ= IG1hbnQ= U2lkZQ== IHN0ZXJlbw== IG5vcnRod2VzdA== IGV4Y2VwdGlvbmFsbHk= IHJheXM= IHJlY3VycmluZw== RHJpdmU= IHVwcmlnaHQ= IGFiZHVjdA== IE1hcmF0aG9u IGdvb2RieWU= IGFscGhhYmV0 aHA= IGNvdXJ0cm9vbQ== cmluZ3Rvbg== b3RoaW5n VGFn IGRpcGxvbWF0cw== IGJhcmJhcg== IEFxdWE= MTgz MzMzMw== IG1hdHVyaXR5 IGluc3RhYmlsaXR5 IEFwYWNoZQ== ID09PQ== IGZhc3Rpbmc= IEdyaWQ= TW9kTG9hZGVy IDE1Mg== QWJz IE9wZXJhdGluZw== ZXR0aQ== IGFjcXVhaW50 RG9ubmVsbA== IEtlbQ== IEZvcmdl IGFybW9yZWQ= TWls IHBoaWxvc29waGVycw== aW52ZXN0 UGxheWVycw== 4og= IG15cmlhZA== IGNvbXJhZGVz Um90 IHJlbWVtYmVyaW5n IGNvcnJlc3BvbmRz IHByb2dyYW1tZXJz IEx5bm4= IG9saWc= IGNvaGVyZW50 eW5jaHJvbg== IENoZW1pY2Fs IGp1Z2c= cGFpcg== cG9zdHM= RXll IElubmVy IHNlbWVzdGVy b3R0ZXN0 IEVtaXJhdGVz cmljYW5lcw== b3JvdXNseQ== bWl0cw== IFdpcw== IGRvZGdl bG9jYXRpb24= IGZhZGVk QW1hem9u IFByb2NlZWQ= IElORk8= am91cm5hbA== IFRydWNr VGVu IDIxNw== IHN0YXR1dGVz bW9iaWxl IFR5cGVz UmVjb21t YnVzdGVy cGV4 IGxlZ2VuZHM= IGhlYWRhY2hl ZmFjZWQ= IFdpRmk= aWZ0eQ== IEhFUg== IGNpcmN1aXRz RVJST1I= MjI2 b2xpbg== IGN5bGluZGVy b3NwYWNl aWtlcnM= UHJlbQ== UXVhbnQ= IGNvbmZsaWN0aW5n IHNsaWdodGVzdA== IGZvcmdlZA== aW9uYWdl U3RlcGhlbg== IEt1Yg== IE9wcG9ydHVu IEhlYWw= IGJsbw== IHJ1bGVycw== IGh1aA== IHN1Ym1hcmluZQ== Znk= YXNzZXI= IGFsbG93YW5jZQ== IEthc2ljaA== IFRhcw== IEF1c3RyYWxpYW5z Rm9yZ2VNb2RMb2FkZXI= IOKGkQ== IE1hdHJpeA== YW1pbnM= IDEyMDA= IEFjcXU= MjM2 RG9jdW1lbnQ= IEJyZWFraW5n MTkz IFN1YnN0 IFJvbGxlcg== IFByb3BlcnRpZXM= IE5J dGllcg== IGNydXNoaW5n IGFkdm9jYXRpbmc= RnVydGhlcm1vcmU= a2VlcGVycw== IHNleGlzbQ== eGQ= IGNhbGxlcg== IFNlbnNl Y2hpZXZl IFRG IGZ1ZWxlZA== IHJlbWluaXNjZW50 IG9ic2Vzcw== dXJzdA== IHVwaG9sZA== IEZhbnM= aGV0aWNz IOKX IEJhdGg= IGJldmVyYWdl IG9zY2lsbA== MjU0 IHBvbGVz IGdyYWR1YWw= IGV4dGluZw== IFN1ZmY= IFN1ZGRlbmx5 IGxpa2luZw== IDE5NDk= dW5jaWF0aW9u YW1pbmF0aW9u IE9tYXI= IExW IENvbnNlcXVlbnRseQ== IHN5bnRoZXM= IEdJRg== IHBhaW5z IGludGVyYWN0aW5n dW91c2x5 aW5jcmU= IHJ1bW9y IFNjaWVudG9sb2d5 MTk3 IFppZw== IHNwZWxsaW5n IEFTUw== IGV4dGluZ3U= bXNvbg== IGdo IHJlbWFya2Vk IFN0cmF0ZWdpYw== IE1PTg== 5aU= Z2Fl IFdIQVQ= RXJpYw== IENhbXB1cw== IG1ldGhhbmU= IGltYWdpbg== SlVTVA== IEFsbQ== WFQ= aXE= IFJTUw== IHdyb25nZG9pbmc= YXR0YQ== IGJpZ290 IGRlbW9uc3RyYXRvcnM= IENhbHZpbg== IFZpbGxh IG1lbWJyYW5l IEF3ZXNvbWU= IGJlbmVmaWM= MjY4 IG1hZ25pZmljZW50 IExvdHM= R3JlZw== IEJvcmlz IGRldGFpbmVlcw== IEhlcm1hbg== IHdoaXNwZXJlZA== IGF3ZQ== UHJvZmVzc29y ZnVuZGluZw== IHBoeXNpb2xvZ2ljYWw= IERlc3RydWN0aW9u IGxpbWI= IG1hbmlwdWxhdGVk IGJ1YmJsZXM= IHBzZXVk IGh5ZHJh IEJyaXN0b2w= IHN0ZWxsYXI= IEV4cGFuc2lvbg== IEtlbGw= IEludGVyZXN0aW5nbHk= IG1hbnM= IGRyYWdnaW5n IGVjb2xvZ2ljYWw= IEZpdA== IGdlbnQ= IGJlbmVmaXRlZA== IEhhaXRp IHBvbHln 44OO IDIwMzA= IHByb3c= IHJlY29uc3RydWN0aW9u IHdhc3Q= IHBzeWNoaWM= IEdyZWVrcw== SGFuZGxlcg== MTYy IFB1bHNl IHNvbGljaXQ= IHN5cw== IGluZmx1eA== IEdlbnRsZQ== cGVyY2VudA== IHByb2xpZmVyYXRpb24= IHRheGFibGU= IGRpc3JlZ2FyZA== IGVzY2FwaW5n IGdpbmdlcg== IHdpdGhzdGFuZA== IGRldmFzdGF0ZWQ= IERldw== c2VyaWVz IGluamVjdGVk ZWxhaWRl IHR1cm5vdmVy aGVhdA== mYI= SGFwcHk= IFNpbGVudA== 44Kt aXZpc20= IGlycmF0aW9uYWw= QU1B IHJlZWY= cnVi IDE2Mg== IGJhbmtlcnM= IEV0aGljcw== dnY= IGNyaXRpY2lzbXM= S24= MTg2 TW92aWU= IFRvcmllcw== IG5vb2Q= IGRpc3RvcnRpb24= RmFsc2U= b2RvcmU= IHRhc3R5 UmVzZWFyY2g= IFVJRA== LSk= IGRpdm9yY2Vk IE1V IEhheWVz IElzbg== aWFuaQ== IEhR ICIj aWduYW50 IHRyYXVtYXRpYw== IExpbmc= SHVu IHNhYm90 b25saW5l cmFuZG9t IHJlbmFtZWQ= cmFyZWQ= S0E= ZGVhZA== w6l0 IEFzc2lzdGFuY2U= IHNlYWY= KysrKysrKys= IHNlbGRvbQ== IFdlYmI= IGJvb2xlYW4= dWxldA== IHJlZnJhaW4= IERJWQ== cnVsZQ== IHNodXR0aW5n IHV0aWxpemluZw== bG9hZGluZw== IFBhcmFt Y29hbA== b290ZXI= IGF0dHJhY3Rpbmc= IERvbA== IGhlcnM= YWduZXRpYw== IFJlYWNo aW1v IGRpc2NhcmRlZA== IFBpcA== MDE1 w7xy IG11Zw== SW1hZ2luZQ== Q09M IGN1cnNlZA== IFNob3dz IEN1cnRpcw== IFNhY2hz c3BlYWtpbmc= IFZpc3Rh IEZyYW1ld29yaw== b25nbw== IHN1YnJlZGRpdA== IGNydXM= IE92YWw= Um93 Z3Jvd2luZw== IGluc3RhbGxtZW50 IGdsYWM= IEFkdmFuY2U= RUNL IExHQlRR TEVZ IGFjZXQ= IHN1Y2Nlc3NpdmU= IE5pY29sZQ== IDE5NTc= UXVvdGU= IGNpcmN1bXN0YW5jZQ== YWNrZXRz IDE0Mg== b3J0aXVt IGd1ZXNzZWQ= IEZyYW1l IHBlcnBldHJhdG9ycw== IEF2aWF0aW9u IEJlbmNo IGhhbmRj QXA= IDE5NTY= MjU5 cmFuZA== TmV0TWVzc2FnZQ== ZGlu dXJ0bGVz aGln IFZJSUk= ZmZpdGk= IFN3b3Jkcw== YmlhbA== IGtpZG5hcHBpbmc= ZGV2aWNl IGJhcm4= IEVsaQ== YXVjYXM= U2VuZA== Q29uc3RydWN0ZWQ= IMK9 IG5lZWRsZXM= IGFkdmVydGlzZW1lbnRz IHZvdQ== IGV4aGliaXRlZA== IEZvcnRyZXNz QXNr QmVycnk= VFlQRQ== IGNhbmNlcnM= dW1waW5n IFRlcnJpdG9yeQ== IHBydWQ= IG5hcw== IGF0aGVpc3Q= IGJhbGFuY2Vz 44Gf IFNoYXdu JiY= IGxhbmRzYw== IFJHQg== IHBldHR5 IGV4Y2VsbGVuY2U= IHRyYW5zbGF0aW9ucw== IHBhcmNlbA== IENoZXY= RWFzdA== IE91dHB1dA== aW1p IGFtYmllbnQ= IFRocmVhdA== IHZpbGxhaW5z IDU1MA== SUNB IHRhbGxlcg== IGxlYWtpbmc= Y3Vw IHBvbGlzaA== IGluZmVjdGlvdXM= IEtD IEBA YmFja2dyb3VuZA== IGJ1cmVhdWNyYWN5 IFNhaQ== dW5sZXNz aXRpb3Vz IFNreXBl QXRs SURFTlQ= MDA4 IGh5cG9jcg== IHBpdGNoZXJz IGd1ZXNzaW5n IEZJTkFM QmV0d2Vlbg== IHZpbGxhZ2Vycw== IDI1Mg== ZmFzaGlvbg== IFR1bmlz QmVo IEV4Yw== IE1JRA== Mjg4 IEhhc2tlbGw= MTk2 IE5PUg== IHNwZWNz IGludmFyaQ== IGdsdXQ= IENhcnM= IGltcHVsc2U= IGhvbm9ycw== Z2Vs IGp1cmlzZGljdGlvbnM= IEJ1bmRsZQ== dWxhcw== Q2FsaWZvcm5pYQ== IEluY3JlYXNl IHBlYXI= IHNpbmdsZXM= IGN1ZXM= IHVuZGVyd2VudA== IFdT IGV4YWdnZXJhdGVk IGR1YmlvdXM= IGZsYXNoaW5n TE9H KV0u Sm91cm5hbA== dGc= VmFu IElzdGFuYnVs IEluc3A= IEZyYW5rZW4= RHJhdw== IHNhZG5lc3M= IGlyb25pYw== IEZyeQ== eGM= IDE2NA== aXNjaA== V2F5 IFByb3Rlc3RhbnQ= aG9ybg== IHVuYWZm IFZpdg== aWxsYXM= IFByb2R1Y3Rpb25z IEhvZ2Fu IHBlcmltZXRlcg== IFNpc3RlcnM= IHNwb250YW5lb3Vz IGRvd25zaWRl IGRlc2NlbmRhbnRz IG9ybg== d29ybQ== SmFwYW5lc2U= IDE5NTU= IDE1MQ== IERvaW5n ZWxzZW4= dW1ibGVz IHJhZGljYWxseQ== IERydW0= IEJhY2g= IGxpYWJpbGl0aWVz IE9C IEVsZW1lbnRhcnk= IG1lbWU= eW5lcw== IGZpbmdlcnByaW50 IEdyYWI= IHVuZGVydGFrZQ== TWVtYmVycw== IFJlYWRlcg== IFNpbXM= Z29k IGh5cG90aGV0aWNhbA== c2NpZW50 IEFK IGNoYXJpc20= IGFkbWlzc2lvbnM= IE1pc3NpbGU= dHJhZGU= IGV4ZXJjaXNpbmc= IEJhY2tncm91bmQ= V3JpdHRlbg== IHZvY2Fscw== d2hldGhlcg== IHZp IFdpbm5lcg== IGxpdHRlcg== IFNob290aW5n U1RFTQ== 44Kh IEFGTA== IHZhcmlhYmlsaXR5 IGVhdHM= IERQUw== YnJvdw== IGVsZXBoYW50cw== IHN0cmF0 IMU= IHNldHRsZXJz TWF0dGhldw== IGluYWR2ZXJ0 SEk= IElNRg== IEdvYWw= IG5lcnZlcw== Sm9obnNvbg== ZXll YWJsaXNobWVudA== VGh1cnNkYXk= QklMSVRZ SGFk YW1vdG8= aGV0YW1pbmU= ZXBz IG1pdG9jaG9uZA== IGNvbXByZXNzZWQ= IFRyZXZvcg== IEFuaW1hbHM= VG9vbA== TG9jaw== IHR3ZWFr IHBpbmNo IGNhbmNlbGxhdGlvbg== UG90 IGZvY2Fs IEFzdHJvbg== MTcz IEFTQw== IE9USEVS dW1uaQ== IGRlbWlzZQ== ZGw= 2YU= U2VtaXRpc20= IGNyYWNraW5n IGNvbGxhYm9yYXRpdmU= IGV4cGxvcmVz c3Fs IGhlcmJz IGNvbmZpZ3VyYXRpb25z bWlz IFJlc3VsdA== YWNleQ== IFNtb2tl IHNhbmN0 ZWxpYQ== IGRlZ2VuZXI= IGRlZXBlc3Q= IHNjcmVhbWVk IG5hcA== U29mdHdhcmU= IFNUQVI= RUY= IFhpbg== c3BvbnNvcmVk bWFuc2hpcA== MjMz IHByaW1hcmllcw== IGZpbHRlcmluZw== IGFzc2VtYmxl bWls IE15ZXJz Ym93cw== IHB1bmNoZWQ= TWlj IGlubm92YXRpb25z IGZ1bmM= YW5kbw== IGZyYWNraW5n IFZ1bA== 0L7Q b3Nob3A= IEltbXVu IHNldHRsaW5n IGFkb2xlc2NlbnRz IHJlYnVpbGRpbmc= IHRyYW5zZm9ybWluZw== IHBhcm9sZQ== IGhhcmJvcg== IGJvb2tpbmc= b3Rpb25hbA== b25nZXZpdHk= IFlv YnVn IGVtZXJnZXM= IE1ldGhvZHM= IENodQ== UHJlcw== IER1bmdlb25z IHRyYWlsaW5n IFJ1bQ== IEh1Z2g= 5aSp IEVyYQ== IEJhdHRsZXM= UmVzdWx0cw== IFRyYWRpbmc= IHZlcnNh Y3Nz YXhpZXM= aGVldA== IGdyZWVk MTk4OQ== IGdhcmRlbnM= IGNvbnRpbmdlbnQ= UGFyaw== IExlYWZz aG9vaw== cm9iZQ== IGRpcGxvbWFjeQ== IEZ1ZWw= IEludmFzaW9u IHVwZ3JhZGluZw== TWFsZQ== IGVsaWM= IHJlbGVudGxlc3M= IENvdmVuYW50 YXBlc2g= IFRyb3A= VHk= cHJvZHVjdGlvbg== YXJ0eQ== IHB1bmNoZXM= YWtv Y3ljbG9wZWRpYQ== IFJhYmJpdA== IEhETUk= IDE0MQ== IGZvaWw= SXRlbUltYWdl IEZH IGltcGxlbWVudGF0aW9ucw== IFBvbQ== aXh0dXJlcw== IGF3YWl0 IDMzMA== YW11cw== IHVtYnJlbGxh IGZvcmVzZWU= c2VwYXI= IGNpcmN1bWNpc2lvbg== IHBlcmlwaGVyYWw= U2F5 IEV4cGVydA== SW5j IHdpdGhkcmV3 IEFuZGVycw== ZnJpZWQ= IHJhZGlvYWN0aXZl IE9wZW5pbmc= IGJvYXJkaW5n IE5E IG92ZXJ0aHJvdw== QWN0aXY= V1A= IEFjdHM= 15k= IG1vdGlvbnM= dmlj IE1pZ2h0eQ== IERlZmVuZGVy YWVy IHRoYW5rZnVs IEtpbGxpbmc= IEJyaXM= bW9pbA== IHByZWRpY3Rpbmc= MjY2 Y2hvaWNl IGtpbGxlcnM= IGluY3Vi IENoZXN0 YXRoZXJpbmc= IHByb2NsYWltZWQ= Zmxvd2Vy b3Nzb20= dW1ibGVkb3Jl IEN5Y2xpbmc= IE9jY3VweQ== QUdFUw== UGVu IFl1Zw== IHBhY2thZ2Vk IGhlaWdodGVuZWQ= Y290 c3RhY2s= Q29uZA== IHN0YW1wcw== bWFnZQ== IHBlcnN1YWRlZA== IGVuc2w= IENhcmRpbmFs IHNvbGl0YXJ5 IHBvc3Nlc3Npbmc= IENvcms= IGV2aWQ= IFRheQ== IGJsdWVz IGV4dHJlbWlzbQ== IGx1bmFy IGNsb3du VGVjaG4= IGZlc3RpdmFscw== IFB2UA== IExhcg== IGNvbnNlcXVlbnRseQ== cHJlc2VudA== IHNvbWVkYXk= 546L IE1ldGVvcg== IHRvdXJpbmc= Y3VsdHVyZQ== IGJlYWNoZXM= U2hpcA== Y2F1c2U= IEZsb29k 44Ov IHB1cml0eQ== dGhvc2U= IGVtaXNzaW9u Ym9sdA== IGNob3Jk IFNjcmlwdHVyZQ== THU= ICR7 Y3JlYXRlZA== T3RoZXJz MjU4 IGVsZW1lbnRhbA== IGFubm95ZWQ= IEFF ZGFu IFNhZw== UmVzZWFyY2hlcnM= IGZhaXJ5 4oCT4oCT PT09PT09PT09PT09 U21hcnQ= R0dHRw== IHNrZWxldG9ucw== IHB1cGlscw== bGlua2Vk IHVyZ2VuY3k= ZW5hYmxlZA== IEZ1Y2s= IGNvdW5jaWxs cmFi VUFM VEk= IGxpZmVz IGNvbmZlc3NlZA== QnVn IGhhcm1vbg== IENPTkZJRw== IE5ldXRyYWw= RG91Ymxl IHN0YXBsZQ== IFNIQQ== QnJpdGlzaA== IFNOUA== QVRPUg== b2Nv IHN3aW5naW5n Z2V4 b2xlb24= cGxhaW4= IE1pc3Npbmc= IFRyb3BoeQ== dmFyaQ== cmFuY2g= IDMwMQ== NDQw MDAwMDAwMDAwMDAwMDAwMA== IHJlc3RvcmluZw== IGhhdWw= dWNpbmc= bmVyZw== IGZ1dHVyZXM= IHN0cmF0ZWdpc3Q= cXVlc3Rpb24= IGxhdGVyYWw= IEJhcmQ= IHNvcg== IFJob2Rlcw== IERvd250b3du Pz8/Pz8t IExpdA== IEJlbmVk IGNvaWw= c3RyZWV0 IFBvcnRhbA== RklMRQ== IEdydQ== Kiw= MjMx bmV1bQ== IHN1Y2tlZA== IHJhcHBlcg== IHRlbmRlbmNpZXM= IExhdXJlbg== Y2VsbGFuZW91cw== MjY3 IGJyb3dzZQ== IG92ZXJj aGVhZGVy b2lzZQ== IGJlZXQ= IEdsZQ== U3RheQ== IG11bQ== IHR5cGVk IGRpc2NvdW50cw== VGFsaw== IE9n ZXhpc3Rpbmc= IFNlbGw= dXBo Q0k= IEF1c3RyaWFu IFdhcm0= IGRpc21pc3NhbA== IGF2ZXJhZ2Vz Y2FtZXJh IGFsbGVnaWFuY2U= TEFO PSIj IGNvbW1lbnRhdG9ycw== IFNldHRpbmc= IE1pZHdlc3Q= IHBoYXJtYWM= IEVYUA== IHN0YWlubGVzcw== Q2hpY2Fnbw== IHRhbg== MjQ0 IGNvdW50cnlzaWRl IFZhYw== Mjk1 IHBpbm5lZA== IGNyaXNlcw== IHN0YW5kYXJkaXplZA== VGFzaw== IEphaWw= IERvY2tlcg== Y29sb3JlZA== Zm9ydGg= In0s IHBhdHJvbnM= IHNwaWNl IG1vdXJu IE1vb2Q= IGxhdW5kcnk= IGVxdWlw IE1vbGU= eWxs IFRIQw== bmF0aW9u IFNoZXJsb2Nr IGlzc3U= IEtyZQ== IEFtZXJpY2Fz IEFBQQ== IHN5c3RlbWF0aWNhbGx5 IGNvbnRyYQ== IFNhbGx5 IHJhdGlvbmFsZQ== IGNhcnJpYWdl IHBlYWtz IGNvbnRyYWRpY3Rpb24= ZW5zYXRpb24= IEZhaWx1cmU= IHByb3Bz IG5hbWVzcGFjZQ== IGNvdmU= ZmllbGRz 44KL IHdvb2w= IENhdGNo IHByZXN1bWVk IERpYW5h cmFnb24= aWdp IGhhbW0= IHN0dW50 IEdVSQ== IE9ic2VydmF0b3J5 IFNob3Jl IHNtZWxscw== YW5uYWg= IGNvY2twaXQ= IER1dGVydGU= ODUw IG9wcHJlc3NlZA== YnJlYWtlcg== IENvbnRyaWJ1dA== IFBlcnU= IE1vbnNhbnRv IEF0dGVtcHQ= IGNvbW1hbmRpbmc= IGZyaWRnZQ== IFJpbg== IENoZXNz dWFsaXR5 IG9s UmVwdWJsaWNhbg== IEdsb3J5 IFdJTg== Li4uLi4uLg== YWdlbnQ= cmVhZGluZw== IGluaA== Sm9uZXM= IGNsaWNrcw== YWxhbg== IFtdOw== IE1hamVzdHk= IENlZA== b3B1cw== YXRlbA== w6o= QVJD IEVjdWFkb3I= 44Og IEt1cm8= IHJpdHVhbHM= IGNhcHRpdmU= IG91bmNl IGRpc2FncmVlbWVudA== IHNsb2c= ZnVlbA== UGV0 TWFpbA== IGV4ZXJjaXNlZA== IHNvbGlj IHJhaW5mYWxs IGRldm90aW9u IEFzc2Vzc21lbnQ= IHJvYm90aWM= b3B0aW9ucw== IFJQ IEZhbWlsaWVz IEZsYW1lcw== IGFzc2lnbm1lbnRz MDA3 YWtlZG93bg== IHZvY2FidWxhcnk= UmVpbGx5 IGNhdmFs Z2Fycw== IHN1cHByZXNzZWQ= IFNFVA== IEpvaG5z IHdhcnA= YnJva2Vu IHN0YXR1ZXM= IGFkdm9jYXRlZA== IDI3NQ== IHBlcmls b21vcnBo IEZlbWlu cGVyZmVjdA== IGhhdGNo TGli NTEy IGxpZmVsb25n MzEz IGNoZWVrcw== IG51bWJlcmVk IE11Zw== Qm9keQ== cmF2ZWw= V2VpZ2h0 IEphaw== IEhlYXRo IGtpc3Npbmc= IEpVU1Q= IHdhdmluZw== dXBsb2Fk IGluc2lkZXI= IFByb2dyZXNzaXZl IEZpbHRlcg== dHRh IEJlYW0= IHZpb2xlbnRseQ== aXBhdGlvbg== IHNrZXB0aWNpc20= IDE5MTg= IEFubmll IFNJ IGdlbmV0aWNz IG9uYm9hcmQ= YXRs IEZyaWVkbWFu IEJyaQ== Y2VwdGl2ZQ== IHBpcmF0ZQ== IFJlcG9ydGVy Mjc4 IG15dGhvbG9neQ== IGVjbGlwc2U= IHNraW5z IGdseXBo aW5naGFt RmlsZXM= Q291cg== d29tZW4= IHJlZ2ltZXM= IHBob3RvZ3JhcGhlZA== S2F0 IE1BWA== T2ZmaWNpYWxz IHVuZXhwZWN0ZWRseQ== IGltcHJlc3Npb25z RnJvbnQ= Ozs7Ozs7Ozs= IHN1cHJlbWFjeQ== IHNhbmc= IGFnZ3JhdmF0ZWQ= IGFicnVwdGx5 IFNlY3Rvcg== IGV4Y3VzZXM= IGNvc3Rpbmc= aWRlcHJlc3M= U3RhY2s= IFJOQQ== b2JpbA== IGdob3N0cw== bGRvbg== YXRpYmlsaXR5 VG9waWNz IHJlaW1idXJzZQ== IEhN IERlZw== IHRoaWVm eWV0 b2dlbmVzaXM= bGVhbmluZw== IEtvbA== IEJhc2tldGJhbGw= IGZp IFNlZWluZw== IHJlY3ljbGluZw== IFst Q29uZ3Jlc3M= IGxlY3R1cmVz UHN5 IG5lcA== IG1haWQ= IG9yaWVudGVk QVg= IHJlc3BlY3RmdWw= cmVuZQ== Zmx1c2g= IFVubG9hZGVk cmVxdWVzdA== Z3JpZA== IEFsdGVybmF0aXZlbHk= IEh1Z28= IGRlY3JlZQ== IEJ1ZGRoaXNt YW5kdW0= QW5kcm9pZA== IENvbmdv IEpveWNl IGFja25vd2xlZGdpbmc= aGVzaXZl IFRvbW9ycm93 IEhpcm8= dGhyZW4= IE1hY2Vk IGhvYXg= IEluY3JlYXNlZA== IFByYWRlc2g= V2lsZA== X19fX19f MTYx IGF1bnQ= IGRpc3RyaWJ1dGluZw== IFR1Y2tlcg== IFNTTA== IFdvbHZlcw== QnVpbGRpbmc= b3VsdA== IEx1bw== IFlhcw== IFNwaXI= IFNoYXBl IENhbWJvZA== IElQdg== IG1s IGV4dHJhZA== Mzkw IFBlbm55 ZHJlYW0= IHN0YXRpb25lZA== b3B0aW9uYWw= ZXdvcnRoeQ== Ljwv IHVuZGVydGFraW5n IGNoaWNrZW5z IHN0aW11bGk= IEVsc2U= aWdhdG9ycw== IEJlZ2lubmluZw== Y3Rvcnk= IHByZXBhcmVz IGRlbHRh IHZpY2luaXR5 dG9vbA== IHdvcmtzaG9wcw== TUh6 IGFjY3VzYXRpb24= IGhpc3Rvcmllcw== cm9wb2xpcw== IENodXJjaGlsbA== IG5lb24= IGJhZmY= ZGllcw== bWF5YmU= IOijj+immumGkg== IHN5bXB0b20= RUNI IE1hbnVlbA== IGJhbmFuYQ== IEhC ICoqKio= IEtvcmVhbnM= Y29sbA== RkI= IHByYXlpbmc= IENhbm5vdA== IE1pbGU= IGVtYnJhY2luZw== IFNpbGs= Mzkz b3RlcnM= RkQ= IGRheWxpZ2h0 YWxpYXM= IEJyaWdhZGU= IEhhbm5haA== IGNsZXJneQ== IHNvdXRoZWFzdA== IGFsY29ob2xpYw== IHByb3Bvc2Vz bGl2aW9u IGNhbGN1bGF0aW5n IHN0aW11bGF0ZQ== IHNwbGl0dGluZw== ZWlnaHQ= IEluZHk= cGxheXM= IFBpaw== IGRvbWVzdA== IGZvcmdpdmVuZXNz IFJpbmdz cGF0aWVudA== a2luc29u TW9udA== aWdpYmxl OyI= IHBlcmlvZGljYWxseQ== YW1tYWQ= IEJyaXR0 cGFyZA== IGFyYml0cmF0aW9u IFNjaG5laWRlcg== IENvcnBvcmF0ZQ== IE1heWE= IHNuYWtlcw== YXVt IGJsYXN0ZWQ= IG15c3Rlcmllcw== IHJldml2ZQ== b2NhbXA= IERvZGdl IE9wZXJh Mjc5 IG9ycGhhbg== IHNwZWNpZmllcw== IE1ldHM= RHVyYXRpb24= SGVu IGZpcmV3b3Jrcw== IHByb3NlY3V0ZQ== IFRpbGxlcnNvbg== ZHA= dXNhZ2U= bGluZXNz IERlYmlhbg== IDIyNA== cmlzZXM= IEluZmVjdA== YXRyYQ== IFJS IExvcg== ZGlmZg== IENoYXJsZXN0b24= IGFjb3VzdGlj IGFtdXNl MzMw IGNlcg== IFRhYw== IFsr IGNhcmRpYWM= IFJlc3RhdXJhbnQ= ZXJneQ== IGZ1eno= IGJpdGVz IGhhemFyZG91cw== IGJyaWdodGVy cmFucw== IFN0ZXBoYW5pZQ== ZXh0cmE= UkVU IENocmlzdGluZQ== IFN1ZQ== c3RhdGVtZW50 IGJvbHN0ZXI= IGFudGl0 UmFkaW8= QklU 44Kw IHZpc2lvbnM= IENvbmNlcHQ= IGlubGluZQ== IFBoaWxvc29waHk= aXNhbnM= IElydmluZw== w6M= dGFraW5n IGluY29uc2lzdA== IEt1bWFy IGxpZw== IFNjaHVtZXI= IFJlZ3VsYXRpb25z IEh6 dGhybw== IFZvbGRlbW9ydA== IE1FRA== IEZyZWRlcmljaw== UGFk MjIx IGFsbGVnaW5n IENvbW11bmljYXRpb24= IDE2Nw== IGZvcmVjYXN0cw== IHNwaWRlcnM= T3JnYW4= IFBhcnRpY2lwYW50cw== IE9wcw== ZGVzaWdu Q2xvc2U= IGZhY3Rv IGJvbWJlcnM= cmVzaXN0YW50 YXRlZ29yaWVz U2Nob29s IGhvbWV3b3Jr IGNvcnJv VHVlc2RheQ== IEJyZW5kYW4= IE1Y IFRT IFN0cmk= IHN0YWtlaG9sZGVycw== IE1pbGxlbm5pdW0= IHRyYW5zZmVycmluZw== SnVk IHRhYw== IDE2MDA= IFNESw== cmI= IGludGVycHJldGF0aW9ucw== IFNH IHVwc3RhaXJz IEhhcnZlc3Q= IHZhZ2luYQ== IGluZ2VzdA== eGY= IE9yaW9u IEpvZXk= IHNhbmR3aWM= IGltbW9ydGFs IGZsaXBwZWQ= b3J0ZXg= dGhyZWF0ZW5pbmc= IHNuaXBlcg== IGNvbnZlcnRz IGluc3RhbGxhdGlvbnM= IEJ1bGdhcg== b3JzY2hl bWFpbHM= IGx1cmU= IG5hcnJvd2x5 IGdyZW5hZGU= IEdpbmc= IHVuZGVyd2Vhcg== LS0tLS0tLS0tLS0tLS0= IGNoYXNlZA== IFZBTA== IHBhcmVudGluZw== IEhhbWI= IEJsYXo= IGFuYXJjaGlzdA== IE1lZGlhbg== IFByb2dyYW1z zr0= IG9iag== IE5va2lh b3JtYW4= YW5xdQ== YXRpc20= b3Bh IGZ1bGZpbGxpbmc= IHB1cHB5 IGVudGl0 IFNlYmFzdGlhbg== IHNob290ZXJz IHJpY2hlcg== 6KE= IHRlbXB0ZWQ= IEFUVA== IENW IHRvcmU= UmVzb3VyY2U= IERldmlscw== NDA4 aW5hdGlvbmFs IGFzc3VyYW5jZQ== IERhcnJlbg== IHdoaWNoZXZlcg== cG9zdXJl IGZ1cnk= U3RvY2s= IHVuaXZlcnNhbGx5 cmVzcG9uc2U= IG9haw== IHdvcmtsb2Fk IENvcm5lcg== ZWVsZQ== Ii4uLg== IGRlcHJpdmVk a293c2tp IGNhc3Rz IGFmZmlsaWF0aW9u IEFjaA== IEFza2Vk YXRoZQ== IGxhY3Q= IFRodQ== cm0= IGFpcmxpbmVz IG5vdGlvbnM= Rm9ybWF0 IEZBQQ== 44OK ZHJpdmVy IHRyYW5zY2VuZA== U2V0dGluZ3M= IFByb3NlY3V0 IHNwaW5hbA== IGRlZmF1bHRz Rks= IHByZWZlcnM= cmVuZGVyZWQ= dGh1cw== ZmlsbQ== IHRpZ2Vy IFNwaWNlcg== cmVjb2du IFJ1Z2J5 TmV0d29yaw== IHBpdHk= IGNvbXBhcnRtZW50 Y2FzdGVycw== IE1vbnJvZQ== IDcyMA== IGNvcnJlY3Rpb25z IGRvcGFtaW5l IEFa Q3V0 IHJvb21t IHNwZWN1bGF0ZQ== SGFzaA== IHJlc3RyaWN0aXZl MTExMQ== cmVkaWJsZQ== b25lbA== IHJhbXBhbnQ= cmVwb3J0ZWQ= IFN1aXRl IE1pbmltdW0= YWx5cw== YXphcmQ= bG9vcA== IGxlbnQ= c2hh IHZhbmRhbA== bWVudQ== IEJvZWhuZXI= IG5hcnJhdGl2ZXM= IGF1dGhlbnRpY2l0eQ== MjY5 YW5pYw== ZHV0eQ== Mjg1 IHRoYW5rZWQ= IGJldHJheWVk bGlmdA== IHNvdXRod2VzdA== IERleHRlcg== IEJvZA== IGtleXdvcmRz QXZlcmFnZQ== RElT IGV0aG5pY2l0eQ== ISks IE5hdGlvbmFscw== 4bk= IFRhaA== aW94aWQ= IHdpZGdldA== IHBhc3Rh IGJpbGxpbmc= IHRyaWxvZ3k= IExpbmVz IHNuaWZm IG5lcGhldw== TGF0ZQ== IHByaW5jaXA= IExvb3A= IE1hcnhpc3Q= IGRpc3NvbHZlZA== IGNvbnRleHRz IEFtb3VudA== IFNwaWtl IHRvdGFscw== IG9yZ2FuaXplcg== IHVwcmlzaW5n c2hpcHM= WVk= IE5vcnRoZWFzdA== bW9uZXk= Z3JhZGF0aW9u IGdvYWxrZWVwZXI= IEhlYXI= IHN0ZWFr IEJ1enpGZWVk IHNvbGVtbg== IFNjYW5k IHBvcHBpbmc= IGFkaGVyZQ== IEFsbGVn Ynl0ZQ== IFdvbHZlcg== IHVuaW4= IHJlY29s aXR1ZA== IG1pbWlj aWJ1cw== IHByZWRpY3Rz IEtlZXBlcg== aWF0aW5n IGRlY2VwdGlvbg== IGxlYXJudA== IGRpYXJ5 IGNvbmRpdGlvbmFs IHJlbGlj IGludm9rZQ== aWVuY2Vk 5Yg= IFBvbnQ= IGNlbGxwaG9uZQ== IHNwZWVkaW5n IHRhY2tsaW5n IG51ZGU= b3BlbmVk IE1hbmFmb3J0 IDE5NTI= IG1ham9ycw== IFNpbGVuY2U= IGxvZ2lzdGljcw== IHdlaWdodGVk IFBzeWNoaWF0 IjpbIg== IHNpY2tuZXNz IGRpdmlkZW5kcw== em9u UmVsZWFzZQ== IEtleXM= IEljaA== IGVueg== IEZlcm5hbmQ= IM6x IG1lYW5pbmdz IHBlbm55 IHN0ZXJu IGxhcg== IFB1Ymxpc2hlZA== IGJhY2tkcm9w S2lt IFN5bnQ= IGRlYnV0ZWQ= d20= IElzbGU= IHJlZ3VsYXRpbmc= b3R0aQ== IFNjaG9sYXJz aWNlc3Rlcg== IENoZWY= IHBvcHM= IExhdW5jaGVy IFZhcmlvdXM= IGNvbW1lbnRpbmc= b3NsYXY= ZW56aWU= IHJpdmFscnk= 4oKs UmVhbGx5 IG9yYw== IGJlYW4= IEp1ZHk= Tm90aWNl IEJpa2U= P10= IHJlbnRlZA== c3Rlbg== IGZvcmVmcm9udA== IEJhbGR3aW4= IHlpZWxkZWQ= dGFpbHM= UHJpbWU= IFNvdXJjZXM= aWNhdG9y U2Vhbg== IG1hcmNoaW5n T3V0cHV0 IEp1bmdsZQ== IHJlc2lkZQ== enpsZQ== IEFuZHJld3M= IHRvcnF1ZQ== QmFzaWM= QWN0dWFsbHk= c3RyYXA= cGVudGVy IGV4YW1z IFlh IDE1OQ== IERlY2lzaW9u IHJhbnNvbQ== ZXRlZW50aA== ZW5zaW5n MjEz IHN1bnNldA== NDA0 IFJhcGlk IEhlaW4= IEFib3JpZ2luYWw= IG9yZ2FuaXNt IFNldmVy IGNsYQ== YWpp U2ltcGxl IEZsYXZvcg== IEV2YWw= cHJ1cw== IGNob3J1cw== REFZ IGRlbm91bmNlZA== IGJpb2dyYXBoeQ== IFR1cm5idWxs UmVjZW50 Tm9ybWFs bGVjdGlvbnM= V29yZA== IGZlcnJ5 IFdhZ25lcg== aG9t VW5pdA== IHN1cGVybWFya2V0 IFNpdGg= IG5vbWluZWVz IGRpY3RhdG9yc2hpcA== aWRkbGVy IGFubm91bmNlcw== IFRoZW0= IE5lcHR1bmU= IGRlaXR5 IFlp IG1vbmFyY2g= QVJS IGludmFkZWQ= IEhvaw== dW50YXJ5 Q2VydGFpbg== ZWdh IGtpZGRpbmc= IFJlZ3VsYXRpb24= IHRyYXk= IHBob3RvZ3JhcGhlcnM= IEFyY2FuZQ== IGRpc2NoYXJnZWQ= IGV2YW5nZWxpY2Fs IGludGVyY2hhbmdl IGZpbG1tYWtlcg== IEVuZGxlc3M= IDI5MA== IFNhbHZhZG9y QVNZ IFNpZ25hbA== IHdyYXRo 4pw= bG90 Jy8= IHByb2plY3RpbGU= IGVtcGxveWluZw== IEludGVyZmFjZQ== MTkx YXRlbGxpdGU= IFJhdGg= cGFja2FnZQ== IGluZGljYXRpb25z SmFzb24= IGFyZ3M= IEdIeg== IHRpbHQ= bmFudHM= d29u 44K1 cmVkZA== cmVzY2VudA== IENhbGVuZGFy IG1vZHVsYXI= IGFzc2lzdGluZw== IHJlZGVlbQ== IEJlYW4= IHdvcnNo IGRlY2VudHJhbGl6ZWQ= KS4uLg== Mzc3 IGFycmF5cw== IGFjY29tcGxpc2htZW50cw== zr8= ZG90 IG11dHVhbGx5 IG9ic3RydWN0 IG1pc3JlcHJlc2VudA== b3Jlc3Q= aW9uaWM= cnVjZQ== JTs= IGtub3dpbmdseQ== cG9ydGluZw== aW5lbnRseQ== QXJp IFNjaHVsdHo= RGE= IENlcmU= IG9ic29sZXRl hYs= Z2l2ZQ== IGJhaXQ= IGVubGFyZw== TmVpbGw= IDE5MzM= IHJlY29uc2lkZXI= IFNlcmdlYW50 IERpYW5l IENvZ24= IEljb24= UG9zaXRpb24= IGZvc3Q= IHN0aXJyaW5n c2V2ZW4= IFNwYWNlWA== dWdnZXRz IG1lZGQ= R2Fs IFNpc3Rlcg== Qm95 IHRyaWdnZXJpbmc= VGFraW5n IHNjcmVhbXM= IGNhdXNhbA== IGF3YWtlbg== QXJt Mjk3 IGRpc3BhdGNoZWQ= IEZBTFNF IG9yZ2FuaXphdGlvbmFs IFRvbmc= IGRpbGVtbWE= ZGVtb24= U3Bs IGhvb2tz dWRpbmc= IHZhbGlkYXRl IHBvdGlvbg== IGNsYXc= IGJ1cmds IHF1aXI= QUNB IEJyZW5uYW4= IGR1cmFiaWxpdHk= IGJvbWJpbmdz IFdpbmRvdw== IGN1bHByaXQ= MzI1 VGhlcmVmb3Jl dW1iZXJlZA== cGVyZm9ybWFuY2U= d2FydHM= IGVuZm9yY2luZw== IEJsb3c= IHJlcHJpbnQ= aWZheA== YWxwaGE= IHNpbmlzdGVy IGJ1cmdlcg== ZmlnaHRpbmc= U2NvcmU= IFN0b25lcw== aWVt NDA1 Y2hlbXk= IHZpbmVnYXI= bm9t IHByZXZhaWxpbmc= IExhdGVzdA== wrY= IGJh IFdyaXRlcg== IDE3Nw== IENvbndheQ== IGNvbGxlY3Rz IHF1YW50aXRhdGl2ZQ== IGhvcnJvcnM= b2dlbnM= IFNsb3Y= IGxheXM= aGF3 IFNsYXNo IG5pZ2h0Y2x1Yg== IERhdmllcw== IGJyaWRl IFNjYXJsZXQ= eW1t IEFwcGxpY2F0aW9ucw== dmVsZW5ndGg= IHJldml2YWw= IHNvZnRseQ== IHpvbw== aXRhaXJl Q3Vy IGVsZWN0cm9t IHBsYW50aW5n T1RP IEVsZW1lbnRz IHN3YWxsb3c= cG9ydGVy IGxhcHRvcHM= IHBlYW51dA== IGxvYmJ5aXN0cw== zrI= UGFuZWw= IEpvYW4= aW1pbA== dG5j IHJlc2lzdGVk IG91dHdl IHJldGFpbmluZw== YXRyaQ== IHBvb3Jlcg== IFN5cmlhbnM= IEhhbW1vbmQ= IHdlbGQ= dWRlcg== dG9waWM= IFRU cmljaWE= IHRoaWV2ZXM= TGlj IEd1c3Q= IFdheXM= YXJldGg= MjQz IGJyb2FkY2FzdGVy c2hpZWxk YXNzaXVt dWJsZQ== IGFpcnN0cmlrZXM= b25zbw== IHBlZGFs IGNvbGxlY3RvcnM= IFZhbmRlcg== IE1lc2E= IGRpY3RhdG9y IGRpcg== ZW50b24= Y2FydA== c2NvcmU= YWRkZXI= Q3J5 IHNzaA== Z2dlcg== IGRydW5rZW4= IEdT IFNlYXQ= IGNvcm5lcmJhY2s= IHNraXBwZWQ= IFJlc2VhcmNoZXJz IEF1ZGk= UmVmZXJlbmNl IGhhdW50ZWQ= w6s= IENsaW5pYw== Y3o= IHBz IFBhbGFkaW4= IFJlY2lwZQ== IHN0aWdtYQ== b3BweQ== IG1vbmtleXM= IEhhd2s= U2Fk Ii8+ IFdvcmtzaG9w IFJldGFpbA== IEF2YXRhcg== NjI1 TmE= IFZD IFNlY3VyZQ== TVk= MTk4OA== b3NzaXA= IHByb3N0YXRl IHVuZGVu IGdhbWVy IENvbnRlbnRz IFdhcmhhbW1lcg== IFNlbnRpbmVs MzEw IHNlZ3JlZ2F0aW9u IEZsZXg= IE1BWQ== IGRyaWxscw== IERydWdz SXNsYW1pYw== IHNwdXI= IGNhZmU= IGltYWdpbmFyeQ== IGd1aWRpbmc= IHN3aW5ncw== IFRoZW1l b2J5 IG51ZA== IGJlZ2dpbmc= IHN0cm9uZ2g= IHJlamVjdGluZw== IHBlZGVzdHJpYW5z IFByb3NwZWN0 UmFyZQ== c2xl IGNvbmNlc3Npb25z IENvbnN0aXR1dGlvbmFs IGJlYW1z IGZpYmVycw== cG9vbg== IGluc3RpbmN0cw== cHJvcGVydHk= IEJJRw== U2FuZGVycw== aW1hdGVz IGNvYXRpbmc= IGNvcnBzZXM= IFRSVUU= Y2hlY2tlZA== IDE2Ng== QXNo IEpT IEZpY3Rpb24= IGNvbW11bmFs IGVuZXJnZXRpYw== b29vb29vb28= IG5vd2FkYXlz SUxE aWJv IFNVVg== UmVu IGR3ZWxsaW5n U2lsdmVy IHRhbGx5 IE1vdmluZw== IGNvd2FyZA== IGdlbmVyYWxz IGhvcm5z IGNpcmN1bGF0ZWQ= IHJvYmJlZA== IFVubGltaXRlZA== IGhhcmFzc2Vk IGluaGliaXQ= IGNvbXBvc2Vy IFNwb3RpZnk= IHNwcmVhZHM= MzY0 IHN1aWNpZGFs IG5vaXNlcw== IFN0dXI= IHNhZ2E= IEthZw== aXNv IHRoZW9yZXRpY2FsbHk= TW9uZXk= IHNpbWlsYXJpdHk= IHNsaWNlZA== dXRpbHM= aW5nZXM= Ii0= IGFudGg= IGltcGVk TW9kdWxl VGhyb3VnaG91dA== IG1lbnVz Y29tbWl0dGVl YW5kaQ== b2Jq aW5hdg== ZmlyZWQ= IEFiZHVsbGFo IHVuZGVhZA== IGZvbnRz SG9sZA== RU5H IHN1c3RhaW5hYmlsaXR5 IGZsaWNr IHJhem9y IEZlc3Q= IENoYXJhY3RlcnM= IHdvcmRpbmc= IHBvcHVsaXN0 IGNyaXRpY2l6aW5n IG11c2U= dmluZQ== IGNhcmRib2FyZA== IGtpbmRseQ== IGZyaW5nZQ== IFRoZWZ0 aWN1bHR1cmFs IGdvdmVybm9ycw== IO+/ve+/ve+/ve+/vQ== IDE2Mw== IHRpbWVvdXQ= IEF1dGg= Q2hpbGRyZW4= QVU= IHJlZGVtcHRpb24= IEFsZ2Vy IDE5MTQ= IHdhdmVk IGFzdHJvbmF1dHM= b2dyYW1z IHN3YW1w IEZpbm5pc2g= IGNhbmRsZQ== IHRvbm5lcw== dXRt IHJheQ== IHNwdW4= IGZlYXJmdWw= YXJ0aWNsZXM= IGNhdXM= b3JpY2FsbHk= IFJlcXVpcmVz IEdvbA== IHBvcGU= IGluYXVndXJhbA== IGdsZQ== QURB IElTSUw= IE9mZmVuc2l2ZQ== IHdhdGNoZG9n IGJhbGNvbg== ZW50aXR5 IEhvbw== IGdhbGxvbg== QUND IGRvdWJsaW5n IGltcGxpY2F0aW9u IFNpZ2h0 IGRvY3Ry LS0tLS0tLQ== IFxc IG1hbHQ= Um9sbA== IOKJpQ== IHJlY2Fw YWRkaW5n dWNlcw== IEJlbmQ= ZmlndXJl IHR1cmtleQ== IHNvY2lldGFs IFRpY2tldHM= IGNvbW1lcmNpYWxseQ== IHNwaWN5 IDIxNg== IFJhbXA= IHN1cGVyaW9yaXR5 w68= IFRyYWNrZXI= Q2FybA== IENveQ== IFBhdHJpb3Q= IGNvbnN1bHRlZA== IGxpc3Rpbmdz IHNsZXc= cmVlbnNob3Q= IEdvbmU= IFsuLi5d MzA5 IGhvdHRlc3Q= 2LE= IHJvY2t5 IERpYXo= IG1hc3NhZ2U= IHBhcmFseQ== IHBvbnk= QXo= IGNhcnRyaWRnZQ== IE5a IHNuYWNr IExhbWFy cGxlbWVudA== IExlc2xpZQ== IG1hdGVy IHNuaXBw MjQ2 IGpvaW50bHk= IEJyaXNiYW5l IGlQb2Q= IHB1bXBpbmc= IGdvYXQ= IFNoYXJvbg== ZWFsaW5n IGNvcm9u IGFub21hbA== cmFoaW0= IENvbm5lY3Rpb24= IHNjdWxwdHVyZQ== IHNjaGVkdWxpbmc= IERhZGR5 YXRoaW5n IGV5ZWJyb3dz IGN1cnZlZA== IHNlbnRpbWVudHM= IGRyYWZ0aW5n RHJvcA== KFs= IG5vbWluYWw= IExlYWRlcnNoaXA= IEdyb3c= IDE3Ng== IGNvbnN0cnVjdGl2ZQ== aXZhdGlvbg== IGNvcnJ1cHRlZA== Z2VyYWxk IENyb3M= IENoZXN0ZXI= IExhcA== 44Gq T1RI REFUQQ== IGFsbW9uZA== cHJvYmFibHk= SW1w IGZlYXN0 IFdhcmNyYWZ0 Rmxvcg== IGNoZWNrcG9pbnQ= IHRyYW5zY3JpcHRpb24= IDIwNA== IHR3ZWFrcw== IHJlbGlldmU= U2NpZW5jZQ== IHBlcmZvcm1lcg== Wm9uZQ== IHR1cm1vaWw= aWdhdGVk aGliaXQ= IENhZmU= dGhlbWVk IGZsdW9y YmVuY2g= IGRlY29t IFVudA== IEJhcnJldHQ= IEZhY3Rz IHRhc3Rpbmc= IFBUU0Q= IFNlYWw= IEp1ZGFpc20= IER5bmFtaWM= IENvcnM= VmU= IE1pbmc= IFRyYW5zZm9ybQ== dm9u IERlZmVuZGVycw== IFRhY3RpY2Fs IFZvbg== IFVuaXZlcnM= IGRpc3RvcnRlZA== IEJyZWF0aA== Pyci IGFnb24= IERlYWRseQ== IGxhbg== IEN5Y2xl b3JuZWQ= IHJlbGlhYmx5 IGdsb3I= IE1vbmtleQ== 44Oh IGFkcmVu IG1pY3Jvd2F2ZQ== IEFsYmFu aXJjcmFmdA== ZGlnaXQ= c21hcnQ= IERyZWFk wq/Cr8Kvwq/Cr8Kvwq/Cr8Kvwq/Cr8Kvwq/Cr8Kvwq8= e3s= IFJvY2hlc3Rlcg== IHNpbXBsaWZpZWQ= IGluZmxpY3RlZA== IHRha2VvdmVy IHlvdXJzZWx2ZXM= YWRpdGlvbmFs IG11c2N1bGFy S1M= IGluZ2Vu VGF4 IEZlYXR1cmU= Mjc3 IGNydWM= IGNyYXRl IHVuaWRlbnRpZmllZA== IGFjY2xhaW1lZA== IE1hbmdh IEZyYW5jZXM= IE5lcGFs IEdlcmFsZA== IEt1d2FpdA== IHNsYWlu IEhlYg== IEdva3U= 44Gu5g== Mjg2 TXJz IENvZHk= IFNhbmN0dWFyeQ== MDE2 IGRpc21hbnQ= IGRhdGFzZXQ= IEhvbmQ= YnVjaw== IFBhdHRlcnNvbg== IHBhbGV0dGU= IEdE aWNvbA== IExvZGdl IHBsYW5ldGFyeQ== YWtpbg== IFJlZ2lzdGVyZWQ= YWJ3ZQ== IFBldGVyc2J1cmc= IGhhaWxlZA== IFBpZWNl U2NoZQ== IERPSg== IGVudW1lcg== MTgx IE9ic2VydmVy IEJvbGQ= Zm91bmRlZA== Y29tbWVyY2U= IGV4cGxvaXRz IEZpbmRpbmc= VVJO IFNuZQ== IEFjaWQ= YXlldHRl IFZhbHVlcw== IGRyYXN0aWM= IGFyY2hpdGVjdHVyYWw= ICIu 15U= dW1wZWQ= IHdyYXBwaW5n IHdpZG93 IFNsYXllcg== bGFjZQ== b25jZQ== R2VybWFueQ== YXZvaWQ= IHRlbXBsZXM= UEFS w7Q= IEx1Y2lmZXI= IEZsaWNrcg== bG92 Zm9yY2Vz IHNjb3V0aW5n IGxvdWRlcg== dGVzeQ== IGJlZm9yZWhhbmQ= xJM= IE5lb24= IFdvbA== IFR5cGljYWxseQ== IFBvbGl0aWNv LSstKw== IGJ1aWxkZXI= IGRlcml2ZQ== S2lsbA== IHBva2Vy IGFtYmlndW91cw== IGxpZnRz IGN5dA== IHJpYnM= b29kbGU= IFNvdW5kcw== aGFpcg== IFN5bmRyb21l dGY= IHByb3BvcnRpb25hbA== dWlk IHBlcnRhaW5pbmc= IEtpbmRsZQ== IE5lZ3Jv IHJlaXRlcmF0ZWQ= IFRvbmlnaHQ= b3Rocw== IENvcm5lbGw= IG93aW5n IDIwOA== ZWxmYXJl b2NhdGluZw== IEJpcmRz U3Vic2NyaWJl IGVzc2F5cw== IGJ1cmRlbnM= IGlsbHVzdHJhdGlvbnM= YXJpb3Vz RVJBTA== IENhbGN1bA== IHhlbg== IExpbmtlZElu IEp1bmc= IHJlZGVzaWdu Q29ubm9y Mjk2 IHJldmVyc2Fs IEFkZWxhaWRl IExM IHNpbmtpbmc= IGd1bQ== VVNI Y2FwdA== IEdyaW1t IGZvb3RzdGVwcw== IENCRA== aXNwZXJz IHByb3Nl V2VkbmVzZGF5 IE1vdmllcw== ZWRpbg== IG92ZXJ0dXJuZWQ= IGNvbnRlbnRpb3Vz VVNC fn5+fn5+fn5+fn5+fn5+fg== IENvcHBlcg== IHBvaW50bGVzcw== TlY= dmFsdWVz b2xwaGlu ZGFpbg== IGRlcG9zaXRlZA== IEdX IHByZWNlZGVk IENsYQ== IEdvbGVt IE5pbQ== IM6y IEVuZ2luZWVycw== bWlkZGxl IGZsYXR0 b3BlcmF0aXZl IGNvdW5jaWxz aW1iYWJ3ZQ== ZWxpbg== IHN0cmVzc2Z1bA== IExE IHJlc2g= bGFrZQ== IHdoZWVsY2hhaXI= IEFsdGVybmF0aXZl IG9wdGltaXpl b3BlcmF0aW9u IHBlZWs= IG9uZXNlbGY= aWdpbA== IHRyYW5zaXRpb25z b3BhdGh5 Ymxhbms= IDE2OQ== MTcx X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw== IGxhdW5kZXJpbmc= RW5j IERFQw== IHdvcmtvdXRz IHNwaWtlcw== IGRpbm9zYXVycw== IGRpc2NyaW1pbmF0b3J5 UG9vbA== UmF0aGVy Mzg1 Uk5B dGVzdGVycw== ZXRv IElkZW50aXR5 IHZlaW4= IEJ1cnRvbg== IGFyY2FkZQ== NDIw VWx0aW1hdGVseQ== IFNhZGx5 w7A= cGlsbA== IGN1Ymlj IFNwZWN0cnVt dGhlc2U= c3RhdGVz IHVub2ZmaWNpYWw= aGF3a3M= IEVWRVJZ IHJhaW5ib3c= IGluY2FyY2VyYXRpb24= YW5kaW5n IHN5bGw= IEV2ZXJ0b24= IDE3OQ== IFNlcmJpYQ== IDE4OQ== bWV0ZXI= IE1pY2tleQ== IGFudGlxdQ== IGZhY3R1YWw= bmVjaw== IE5hcmU= bm9ybQ== bXVzdA== IGhpZ2h3YXlz IGdsYW0= IGRpdmlkaW5n IFNxdWFkcm9u IE1hcnRoYQ== IGJpcnRocw== Q292ZXI= Ly8vLy8vLy8vLy8vLy8vLw== IFdvbmc= UGhvdA== IEFMUw== cmlv IE5vbmV0aGVsZXNz IExlbW9u IDIwNg== IEVF IGRlcml2YXRpdmU= IFdXSUk= dm90ZQ== IHRoZXJlaW4= IHNlcGFyYXRpbmc= NDQ2 c3luYw== IFN0cmVldHM= IHJhdHQ= IG11bmljaXBhbGl0eQ== IFNob3J0bHk= IG1vbms= KSwi IHNjcnVi IG9wZXJhdGl2ZXM= TmVpdGhlcg== UGxhY2U= IExpbWl0 RmVtYWxl IEFjdG9y Q2hhcmFjdGVy IGNvbnN0aXR1dGVk MzU3 IHByb3Rlc3RlZA== IFN0cmF3 IEhlaWdodA== aWxkYQ== IFR5cGg= IGZsb29kcw== IGNvc21ldGlj V0FZ cGVydHVyZQ== dXBvbg== dG9ucw== ZXNzaW5n IFBvY2tldA== IHJvb2Z0 IENhdWNhcw== IGFudGlkZXByZXNz IGluY29tcGF0aWJsZQ== RUNE IG9wZXJh IENvbnRlc3Q= IGdlbmVyYXRvcnM= bGltZQ== RGVmZW5zZQ== MTk4Nw== Zm9ydW0= IHNhdmFnZQ== IEh1bmdhcmlhbg== bno= IG1ldGFsbGlj IGV4cGVsbGVk IHJlc2lkZW5jeQ== IGRyZXNzZXM= NjY2 IENsZW1lbnQ= ZmlyZXM= Q2F0ZWdvcnk= IGdlZWs= YWxpcw== IGNlbWV0ZXJ5 ZWR1Y2F0ZWQ= IGNyYXds IFVuYWJsZQ== IFR5c29u YWtpcw== IHBhcmRvbg== IFdyYQ== IHN0cmVuZ3RoZW5lZA== IEZvcnM= MzM1 IEhD IE1vbmQ= IHZpc3VhbHM= IEJlYXRsZXM= ZXR0bGVtZW50 IO8= Z3Jv IGJhc2g= IHBvb3Jlc3Q= IGV4Y2Vs IGFzcGlyYXRpb25z IE11bmljaXA= ZW5zaWJsZQ== IGNlcmVtb25pZXM= IGludGltaWRhdGlvbg== IENPTlRS YmVjaw== IEthcA== YXN1 IHRyYWRlbWFya3M= IFNldw== IENvbXBldGl0aW9u bmV0d29yaw== IEFycmk= IFRldA== Um9hbWluZw== V0M= RGF0 IHNvYg== IHBhaXJpbmc= IG92ZXJkb3Nl U0FZ YWJlcg== IHJldm9sdA== IEZhaA== YWN0aW5n ZXE= ZXN0YXRpb24= RmlnaHQ= IE1hcmtz Mjcz IDE3OA== UmF3 44GL MzQ5 YmxvY2tz IHZlcmdl ZXN0aW5l IFBvZGVzdGE= IGludmFzaXZl IHByb2ZvdW5kbHk= IEFv ZWFjaA== IGxlc3Q= aW50ZXJwcmV0 IHNocmlua2luZw== IGVycm9uZQ== IGNoZWVz bHlz IEl2eQ== IERpcmVjdG9yeQ== IGhpbnRlZA== VklDRQ== IGNvbnRhY3Rpbmc= IEdlbnQ= aGVp IGxhYmVsaW5n IG1lcmN1cnk= IExpdGU= IGV4cGlyZXM= IGRlc3RhYmls cml0aXM= Y3U= IGZlYXRoZXJz IHN0ZWVy IHByb2dyYW1tZWQ= IFZhZGVy R29pbmc= IEVsaW0= IHlv IE1pY2hl IDIwMw== IHNsZWV2ZXM= IGJ1bGx5 IEh1bWFucw== MzY4 IGNvbXByZXNz IEJhbm5lcg== QVJT IGF3aGlsZQ== IGNhbGli IHNwb25zb3JzaGlw IERpZmZpY3VsdHk= IFBhcGVycw== IGlkZW50aWZpZXI= fS4= IHlvZw== IFNoaWE= IGNsZWFudXA= IHZpYmU= aW50cm9kdQ== aW1taW5n QXVzdHJhbGlh IG91dGxpbmVz IFlvdXR1YmU= dHJhaW4= IE1ha2Vz IGRlcG9ydGVk IGNlbnRy IER1Zw== IEJvdWxkZXI= IEJ1ZmZ5 IGluanVuY3Rpb24= IEhhcmxleQ== IEdyb3Vwcw== IER1bWJsZWRvcmU= IENsYXJh ICIt IHNhY3JpZmljZWQ= ZXBo U2hhZG93 aWJsaW5n IGZyZWVsYW5jZQ== IGV2aWRlbnRseQ== cGhhbA== IHJldGFpbnM= TWly IGZpbml0ZQ== ZGFy IENvdXM= IHJlcGFpcmVk IHBlcmlvZGlj IGNoYW1waW9uc2hpcHM= IGFzdGVyb2lk YmxpbmQ= IGV4cHJlc3NseQ== IEFzdHJvcw== IHNjYWxlZA== IGdlb2dyYXBoaWNhbA== IFJhcGlkcw== RW5qb3k= IGVsYXN0aWM= IE1vaGFtZWQ= TWFya2V0 YmVnaW4= IGRpc2NvdmVycw== IHRlbGVjb21tdW5pY2F0aW9ucw== IHNjYW5uZXI= IGVubGFyZ2U= IHNoYXJrcw== IHBzeWNoZWRlbA== IFJvdWdl IHNuYXBzaG90 aXNpbmU= WFA= IHBlc3RpY2lkZXM= IExTRA== IERpc3RyaWJ1dGlvbg== cmVhbGx5 IGRlZ3JhZGF0aW9u IGRpc2d1aXNl IGJpb20= IEVYVA== IGVxdWF0aW9ucw== IGhhemFyZHM= IENvbXBhcmVk KSo= IHZpcnR1ZXM= IGVsZGVycw== IGVuaGFuY2luZw== IEFjcm9zcw== ZXJvcw== YW5nbGluZw== IGNvbWJ1c3Q= dWNjaQ== IGNvbmN1c3Npb24= IGNvbnRyYWNlcHRpb24= IEthbmc= IGV4cHJlc3Nlcw== IGF1eA== IFBpb25l IGV4aGliaXRz RGVidWc= T1RBTA== IEFscmVhZHk= IFdoZWVsZXI= IGV4cGFuZHM= Pzo= IHJlY29uY2lsaWF0aW9u IHBpcmF0ZXM= IHB1cnNl IGRpc2NvdXJhZ2U= IHNwZWN0YWNsZQ== UmFuaw== IHdyYXBz IFRob3VnaHQ= IGltcGVuZGluZw== T3Bw IEFuZ2xv IEVVUg== IHNjcmV3ZWQ= cmV0Y2hlZA== IGVuY291cmFnZW1lbnQ= bW9kZWxz IGNvbmZ1c2U= bW1t IFZpdGFtaW4= 4paR4paR Q3J1 IGtuaWdodHM= IGRpc2NhcmQ= IGJpc2hvcHM= IFdlYXI= IEdhcnJldHQ= a2Fu 44Of IG1hc2N1bGluZQ== Y2FwaXRhbA== IEF1cw== IGZhdGFsbHk= dGhhbmtz IEFV IEd1dA== MTIwMA== IDAwMDAwMDAw IHN1cnJvZw== IEJJT1M= cmFpdHM= IFdhdHRz IHJlc3VycmVjdGlvbg== IEVsZWN0b3JhbA== IFRpcHM= NDAwMA== IG51dHJpZW50 IGRlcGljdGluZw== IHNwcmluaw== IG11ZmY= IExJTQ== IFNhbXBsZQ== cHNj aWJp Z2VuZXJhdGVk IHNwZWNpbWVucw== IGRpc3NhdGlzZg== IHRhaWxvcmVk IGhvbGRpbmdz IE1vbnRobHk= IEVhdA== cG9vbnM= IG5lYw== IENhZ2U= IExvdHVz IExhbnRlcm4= IGZyb250aWVy IHBlbnNpb25z IGpva2Vk IEhhcmR5 PS09LT0tPS0= cmFkZQ== VUlE IHJhaWxz IGVtaXQ= IHNsYXRl IHNtdWc= IHNwaXQ= IENhbGxz IEphY29icw== ZmVhdA== IFVF IHJlc3RydWN0 IHJlZ2VuZXJhdGlvbg== IGVuZXJnaWVz IENvbm5vcg== T0hO IENoZWVzZQ== IGdlcg== IHJlc3VycmVjdA== bWFuYWdlbWVudA== Tlc= IHByZXNlbnRseQ== IEJydWlucw== TWVtYmVy IE1hbmc= aWRhbg== IGJvb3N0aW5n d3lu Ky4= cmVxdWlzaXRl IE5ZUEQ= IE1lZ2Fu IENvbmRpdGlvbnM= IHBpY3M= bmVzaXVt IFJhc2g= IDE3NA== IER1Y2tz IGVtYnJv enU= b25pYW4= cmVsaWdpb3Vz IGNyYXo= IEFDQQ== IFp1Y2tlcg== RU1B IFByb3M= V2VhcG9u IEtub3g= IEFyZHVpbm8= IHN0b3Zl IGhlYXZlbnM= IFB1cmNoYXNl IGhlcmQ= IGZ1bmRyYWlzZXI= RGlnaXRhbA== NTAwMA== IHByb3BvbmVudHM= L+KAiw== IGplbGx5 IFZpc2E= IG1vbmtz IGFkdmFuY2VtZW50 IFdlcg== IDE4Nw== ZXVz ZXJ0aWxpdHk= IGZldGFs IDE5MzY= TG8= IG91dGZpdHM= IHN0YWlyY2FzZQ== Ym9tYg== IGN1c3RvbWl6ZWQ= Y2xhaXI= VHJlZQ== IG1hcHBlZA== IENvbnNpZGVyaW5n IFRvcnJlcw== IG1ldGh5bA== IGFwcHJveGltYXRl IGRvb20= IEhhbnNlbg== IGNyb3Nzb3Zlcg== IHN0YW5kYWxvbmU= 5Lw= IGludml0ZXM= IGdyYXZleWFyZA== IGhw RG9uYWxkVHJ1bXA= IGVzY29ydA== R2Fy IHByZWRlY2Vzc29ycw== IGhheQ== IGVuenltZQ== IFN0cmFpZ2h0 dmlzb3Jz SW5n YW5lb3VzbHk= IEFwcGxpZWQ= IGZlYw== IER1cmFudA== IG91dHNwb2tlbg== b3Ji IHplYWw= IGRpc2dyYWNl Jyku IENoZW5n Mjg5 IFJlbmE= IFN1aWNpZGU= Mjk0 IG91dHJhZ2Vk IE5ld21hbg== IE52aWRpYQ== IEFiZXI= IEJlcnM= IHJlY3JlYXRpb24= V2luZG93 IERQ eGU= IHBlZG9waA== IGZhbGxvdXQ= YW1ib28= IHByZXNlbnRhdGlvbnM= IEFwcHM= IGh0bWw= MzQ1 IFhYWA== IHJ1YmJpbmc= IExlYXRoZXI= IGh1bWlkaXR5 c2V5cw== ZXN0YWJsaXNoZWQ= IFVuaXRz NjQ2 IHJlc3BlY3RhYmxl QXV0bw== IHRocml2aW5n IElubm92YXRpb24= YW5ncw== RXh0cmE= cmVndWxhdGlvbg== Mjk4 cGljaw== RXhhbXBsZXM= IENK QXR0YWNr IGRyYWNvbg== TFQ= IHN0aWNrZXI= cmVycw== IHN1bm55 SXNz cmVndWxhdGVk ZGlt IEFic3RyYWN0 IGh1c2JhbmRz T2ZmaWNl b21pbmF0aW9u aXRhcnM= QU5HRQ== YXNjYWw= IEtyaXM= IEluZmFudHJ5 IG1hbGY= IEF0aGU= IFJhbGx5 YmFsYW5jZWQ= Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u T1VQ IG1vbGVjdWxl bWV0aWNz IFNwbGl0 IEluc3RydWN0aW9ucw== IE5pZ2h0cw== Y2FyZHM= IHR1Zw== IGNvbmU= 5a0= IHR4 IERpc2N1c3Npb24= IGNhdGFzdHJvcGhl cHBl Z2lv IGNvbW11bmlzbQ== IGhhbHRlZA== IEd1YW50 Y2xlYW4= IFNjaGVk IEthbnll IHdhbmRlcg== IFNlcmlvdXNseQ== IDE4OA== ZW5uaWFs Zm9sbG93 cHJvZHVjdGl2ZQ== IEZsb3c= IFNhaWw= IGNyYXc= IHNpbXVsYXRpb25z b3J1 YW5nbGVz IE5vbGFu IG1lbnN0cnU= NDcw IDIwNw== YWph IGNhc3VhbGx5 Ym9hcmRpbmc= IDIyMg== b3Z5 IE51bWJlcnM= dW1hdA== T0U= Mjg3 IENsZW1zb24= IGNlcnRz IHNsaWQ= IFRyaWJl IHRvYXN0 IGZvcnR1bmVz IGZhbHM= IENvbW1pdHRlZXM= IGdw IGZpZXJ5 IE5ldHM= IEFuaW1l UGFja2FnZQ== IENvbXBhcmU= bGF1Z2h0ZXI= aW5mZWN0 IGF0cm9jaXRpZXM= IGp1c3RpY2Vz IGluc3VsdHM= IFZlcm5vbg== IHNoYWtlbg== IHBlcnNvbmE= ZXN0YW1w MzY3 YnJhaW4= IGV4cGVyaW1lbnRpbmc= S2Vu IEVsZWN0cm9uaWNz IDE2MQ== ZG9tYWlu IGdyYXBoaWNhbA== YmlzaG9w IHdob3BwaW5n IEV2YW5nZWw= IGFkdmVydGlzZXJz IFNwZWFy IGJpZHM= IGRlc3Ryb3lz dXR6 IHVuZGVyc2M= IEFERA== IGFudHM= IEN1bQ== aXBwbGVz IEZpbGw= IGdsYW5jZWQ= IGluZGljdGVk IEVmZg== IG1pc2Nvbg== IERlc2t0b3A= IGFiaWRl 44OA IElv IENvdWw= IGNhcHN1bGU= IENocnlz TU9O IHVuZGVz IElSQQ== IGNpdGF0aW9u IGRpY3RhdGU= IE5ldHdvcmtz IENvbmZsaWN0 IFN0dWZm eGE= aXNlYw== IENoZW1pc3RyeQ== IHF1YXJ0ZXJseQ== V2lsbGlhbXM= YW5hbg== T3B0 IEFsZXhhbmRyaWE= b3V0aGVhc3Rlcm4= IFNwcmluZ2ZpZWxk IEJsYWNrcw== IGdlb2dyYXBoeQ== MjQy IHV0bW9zdA== IEV4eG9u YWJvdXRz RVZB IEVuYWJsZQ== IEJhcnI= IGRpc2FncmVlZA== IEN5cHJ1cw== IGRlbWVudGlh IGxhYnM= IHViaXF1aXRvdXM= IExPVkU= IGNvbnNvbGlkYXRlZA== c3I= IGNyZWFteQ== IFRpbWJlcg== UmVnYXJkbGVzcw== IENlcnRpZmljYXRl ICIuLi4= b2dlbm91cw== Q2FwdGFpbg== IGluc3VsdGluZw== IFNvcm9z IEluc3Ry IEJ1bGdhcmlh YmV0dGVy IHN1Y2tpbmc= IERhdmlkc29u YXR6 IGNvbGxhdGVyYWw= Z2lm IHBsYWd1ZWQ= IENhbmNlbA== IEdhcmRuZXI= UkI= IHNpeHRlZW4= UmVtb3Zl dXJpc3RpYw== Y29vaw== Um9k IGNvbXByaXNpbmc= Zmxl KeKAlA== IFZpa2luZw== Z3Jvd3Ro YWdvbmFs IHNyZg== YWZldHk= bW90 TmVhcmx5 c3Rvd24= IEZhY3Rvcg== IGF1dG9tb2JpbGU= IHByb2NlZHVyYWw= bWFzaw== YW1waXJlcw== IGRpc2FwcGVhcnM= amFi MzE1 IDE5NTE= bmVlZGVk IGRhcmluZw== bGVhZGVy IHBvZGl1bQ== IHVuaGVhbHRoeQ== IG11bmQ= IHB5cmFtaWQ= b2NyZQ== IGtpc3NlZA== IGRyZWFtZWQ= IEZhbnRhc3RpYw== IEdseQ== 5Yo= IGdyZWF0bmVzcw== IHNwaWNlcw== IG1ldHJvcG9saXRhbg== IGNvbXB1bHM= aWV0cw== MTAxNg== IFNoYW0= IFB5cg== ZmxpZXM= IE1pZG5pZ2h0 IHN3YWxsb3dlZA== IGdlbnJlcw== IEx1Y2t5 IFJld2FyZHM= IGRpc3BhdGNo IElQQQ== IEFwcGx5 IGF2ZW4= YWxpdGllcw== MzEy dGhpbmdz ICgpLg== IG1hdGVz IFN6 IENPUA== b2xhdGU= T0ZG IHJlY2hhcmdl Y2Fwcw== IFlvcmtlcg== aWNvbmU= IGdhbGF4aWVz aWxlYWtz RGF2ZQ== IFB1eno= IENlbHRpYw== IEFGQw== Mjc2 IFNvbnM= IGFmZmlybWF0aXZl SG9y IHR1dG9yaWFscw== IENJVFk= IFJvc2E= IEV4dGVuc2lvbg== U2VyaWVz IGZhdHM= IHJhYg== bGlz IHVuaWM= IGV2ZQ== IFNwaW4= IGFkdWx0aG9vZA== dHlw IHNlY3Rhcmlhbg== IGNoZWNrb3V0 IEN5Y2w= U2luZ2xl IG1hcnR5cg== IGNoaWxsaW5n ODg4 b3VmbA== IF07 IGNvbmdlc3Rpb24= bWs= IFdoZXJlYXM= IDE5Mzg= dXJyZW5jaWVz ZXJpb24= IGJvYXN0 IFBhdGllbnRz IGNoYXA= IEJE cmVhbERvbmFsZFRydW1w IGV4YW1pbmVz aG92 IHN0YXJ0bGluZw== IEJhYnlsb24= d2lk b21ldw== YnJhbmNl IE9keXNzZXk= d2ln IHRvcmNo IFZveA== IE1veg== IFRyb2xs IEFucw== U2ltaWxhcmx5 IEZ1bA== MDA2 VW5sZXNz IEFsb25l c3RlYWQ= IFB1Ymxpc2hlcg== cmlnaHRz dHU= IERvZXNu IHByb2Zlc3Npb25hbGx5 IGNsbw== aWN6 IHN0ZWFscw== IOE= MTk4Ng== IHN0dXJkeQ== IEpvaGFubg== IG1lZGFscw== IGZpbGluZ3M= IEZyYXNlcg== ZG9uZQ== IG11bHRpbmF0aW9uYWw= IGZlZGVy IHdvcnRobGVzcw== IHBlc3Q= WWVzdGVyZGF5 YW5raW5k IGdheXM= IGJvcm5l IFBPUw== UGljdHVyZQ== IHBlcmNlbnRhZ2Vz MjUx cmFtZQ== IHBvdGlvbnM= QU1E IExlYmFuZXNl IHJhbmc= IExTVQ== b25ncw== IHBlbmluc3VsYQ== IENsYXVzZQ== QUxL b2hh IE1hY0Jvb2s= IHVuYW5pbW91cw== IGxlbmRlcnM= IGhhbmdz IGZyYW5jaGlzZXM= b3JlcnM= IFVwZGF0ZXM= IGlzb2xhdGU= YW5kcm8= U29vbg== IGRpc3J1cHRpdmU= IFN1cnZl IHN0aXRjaGVz IFNjb3Jw IERvbWluaW9u IHN1cHBseWluZw== QXJn IHR1cnJldA== IEx1aw== IGJyYWNrZXRz Kik= IFJldm9sdXRpb25hcnk= IEhvbmVzdA== IG5vdGljaW5n IFNoYW5ub24= IGFmZm9yZGVk IHRoYQ== IEphbmV0 IS0t IE5hcmVuZHJh IFBsb3Q= SG9s c2V2ZXI= ZWVudGg= IG9ic3RydWN0aW9u IDEwMjQ= c3RhZmY= amFz b3JnZXQ= c2NlbmVz bGF1Z2hz IEZhcmdv Y3JpbWU= IG9yY2hlc3Ry IGRlbGV0 aWxpYXJ5 cmlldmVk IG1pbGl0YXI= IEdyZWVuZQ== 4peP 44Gm IEd1YXJkcw== IHVubGVhc2hlZA== IFdlYmVy IGFkanVzdGFibGU= IGNhbGliZXI= IG1vdGl2YXRpb25z IMOg bUFo IExhbmth aGFuZGxl IHBlbnQ= IFJhdg== IEFuZ3VsYXI= IEthdQ== dW1iaW5n IHBoaWxhbnRocm9w IGRlaHlk IHRveGljaXR5 ZWVy IFlPUks= d2l0eg== 5bw= IElF Y29tbXVuaXR5 IEFI IHJldGFsaQ== IG1hc3NpdmVseQ== IERhbmllbHM= IERFTA== IGNhcmNpbg== VXJs IHJvdXRpbmc= IE5QQ3M= IFJBRg== cnljZQ== IHdhaXZlZA== IEd1YXRlbQ== RXZlcnlib2R5 IGNvdmVuYW50 IDE3Mw== IHJlbGF4aW5n IHF1YXJ0 YWxtb3N0 IGd1YXJkZWQ= IFNvbGRpZXJz IFBMQVk= IG91dGdvaW5n TEFORA== IHJld3JpdGU= IE1PVg== IEltcGVy IFNvbHV0aW9u IHBoZW5vbWVuYWw= IGxvbmdldml0eQ== IGltcGF0 IE5pc3Nhbg== aXJpZQ== IG9kb3I= IFphcg== b2tz IG1pbGl0aWFz IFNQRUM= IHRvbGVyYXRlZA== YXJzZXI= IEJyYWRmb3Jk Kyw= IHN1cnJlYWw= c2Y= Q2FuYWRpYW4= IHJlc2VtYmxhbmNl IGNhcmJvaHlkcmF0ZQ== VklFVw== IGFjY2Vzc29yeQ== bWVhbA== bGFyZ2VzdA== aWVnZWw= U29tZW9uZQ== IHRvdWdoZXN0 b3Nv IGZ1bm5lbA== IGNvbmRlbW5hdGlvbg== bHVlbnQ= IHdpcmVk IFN1bnNldA== SmVzdXM= IFBTVA== IFBhZ2Vz IFR5Y29vbg== IFBG IHNlbGVjdGlvbnM= IOCk cGFydGlzYW4= IGhpZ2hz IFJ1bmU= IGNyYWZ0cw== bGVhZA== IFBhcmVudHM= IHJlY2xhaW0= ZWtlcg== IEFsbGllZA== YWVwZXI= IGxvb21pbmc= IGJlbmVmaWNpYXJpZXM= IEh1bGw= U3R1ZGVudHM= SmV3aXNo ZGo= IHBhY3Q= dGVtcGxhdGU= IE9mZmljaWFscw== IEJheWxvcg== IGhlbXA= IHlvdXRocw== IExldmVscw== IFhpYW8= IENoZXM= IGVuZGVhdm9y IFJlbW92ZWQ= IGhpcHBvY2FtcA== SGVsbA== 44KK ODA1 IGRpbm9zYXVy IFdyYXRo IEluZG9uZXNpYW4= IGNhbGN1bGF0b3I= IERpY3Rpb25hcnk= IDQyMA== IE1BRw== KF8= ISw= dGFyaWFucw== IHJlc3RyaWN0aW5n cmFjdXNl IHdlZWtkYXk= T1VOVA== IHNocnVnZ2Vk bGVncm91bmQ= IGJhbGQ= IERvY3RvcnM= IHRvdXRlZA== IE1heHdlbGw= IDIxNA== IGRpcGxvbWF0 IHJlcHJlc3Npb24= IGNvbnN0aXR1ZW5jeQ== dmljZQ== cmFua2Vk IE5hcG9sZW9u Z2FuZw== IEZvcmV2ZXI= dHVu IGJ1bGI= IFBEVA== IENpc2Nv VkVO IHJlc3VtZWQ= U3RldmVu IE1hbml0b2Jh IGZhYnVsb3Vz IEFnZW50cw== MTk4NA== IGFtdXNpbmc= IE15c3Rlcmllcw== IG9ydGhvZG94 Zmxvb3I= IHF1ZXN0aW9ubmFpcmU= IHBlbmV0cmF0ZQ== IGZpbG1tYWtlcnM= IFVuYw== IHN0YW1wZWQ= IHRoaXJ0ZWVu IG91dGZpZWxk IGZvcndhcmRlZA== IGFwcHJh IGFpZGVk dHJ5 IHVuZm9jdXNlZA== IExpeg== IFdlbmR5 IFNjZW5l Q2hhcmc= IHJlamVjdHM= IGxlZnRpc3Q= IFByb3ZpZGVuY2U= IEJyaWQ= cmVnbg== IHByb3BoZWN5 IExJVkU= NDk5 IGZvcmdl IEZNTA== IGludHJpbnNpYw== IEZyb2c= IHdvbnQ= IEhvbHQ= IGZhbWVk Q0xVUw== YWVwZXJuaWNr IEhhdGU= IENheQ== IHJlZ2lzdGVyaW5n b3J0YWxpdHk= cm9weQ== b2NhbHlwdGlj YWFu bmF2 IGZhc2Npc3Q= SUZJRUQ= IGltcGxpY2F0ZWQ= IFJlc29ydA== IENoYW5kbGVy IEJyaWNr UGlu eXNj VXNhZ2U= IEhlbG0= dXNyYQ== 4piF4piF IEFiYmFz IHVuYW5pbW91c2x5 IGtlZXBlcg== IGFkZGljdGVk Pz8/ IGhlbG1ldHM= IGFudGlveGlk YXBzZWQ= ODA4 Z2llbmU= IHdhaXRz IG1pbmlvbg== cmF2ZWQ= IFBvcnNjaGU= IGRyZWFtaW5n IDE3MQ== IENhaW4= IHVuZm9y YXNzbw== IENvbmZpZ3VyYXRpb24= a3Vu aGFyZHQ= IG5lc3RlZA== IExEUw== TEVT IHR5aW5n ZW5vcw== IGN1ZQ== IE1hcnF1 c2tpcnRz IGNsaWNrZWQ= IGV4cGlyYXRpb24= IEFjY29yZGluZ2x5 IFdD IGJsZXNzaW5ncw== IGFkZGljdGl2ZQ== IE5hcnI= eXg= IEphZ3VhcnM= IHJlbnRz IFNpYmVy IHRpcHBlZA== b3Vzc2U= IEZpdHpnZXJhbGQ= IGhpZXJhcmNo b3V0aW5l IHdhdmVsZW5ndGg= Pi4= Y2hpZA== IFByb2Nlc3Npbmc= Lys= cmFua2luZw== RWFzeQ== IENvbnN0cnVjdA== IHRldA== aW5zdXJlZA== SFVE IHF1b3Rpbmc= IGNvbW11bmljYXRlZA== aW54 IGlubWF0ZQ== IGVyZWN0ZWQ= IEFic29sdXRlbHk= IFN1cmVseQ== IHVuaW0= IFRocm9uZQ== aGVpZA== IGNsYXdz IHN1cGVyc3Rhcg== IExlbm4= IFdoaXM= VWs= YWJvbA== IHNrZXQ= IE5pZXQ= IHBlcmtz IGFmZmluaXR5 IG9wZW5pbmdz cGhhc2lz IGRpc2NyaW1pbmF0ZQ== VGlw dmM= IGdyaW5kaW5n IEplbm55 IGFzdGhtYQ== aG9sZXM= IEhvbWVy IHJlZ2lzdGVycw== IEdsYWQ= IGNyZWF0aW9ucw== IGxpdGhpdW0= IGFwcGxhdXNl dW50aWw= SnVzdGljZQ== IFR1cmtz IHNjYW5kYWxz IGJha2U= dGFuaw== TWVjaA== IE1lYW5z IE1haWQ= UmVwdWJsaWNhbnM= aXNhbA== d2luZG93cw== IFNhbnRvcw== IHZlZ2V0YXRpb24= MzM4 dHJp IGZsdXg= aW5zZXJ0 IGNsYXJpZmllZA== IG1vcnRn IENoaW0= IFRvcnQ= IGRpc2NsYWlt bWV0YWw= IEFzaWRl IGluZHVjdGlvbg== IGluZmw= IGF0aGVpc3Rz YW1waA== IGV0aGVy IFZpdGFs IEJ1aWx0 TWluZA== IHdlYXBvbnJ5 U0VU IDE4Ng== YWRtaW4= Z2Ft Y29udHJhY3Q= YWZh IGRlcml2YXRpdmVz IHNuYWNrcw== IGNodXJu RWNvbm9t IGNhcHBlZA== IFVuZGVyc3RhbmRpbmc= IEhlcnM= IEl6 IGR1Y3Q= SUVOVA== YXVnaHR5 IOKclA== IE5Q IHNhaWxpbmc= SW5pdGlhbGl6ZWQ= IHRlZA== IHJlYWN0b3Jz IExvbWI= IGNob2tl IFdvcm0= IGFkbWlyYXRpb24= IHN3dW5n ZW5zaWJseQ== IHJhc2g= IEdvYWxz IEltcG9ydGFudA== U2hvdA== IFJhcw== IHRyYWluZXJz IEJ1bg== V29ya2luZw== IGhhcm1lZA== IFBhbmRvcmE= IExURQ== IG11c2hyb29t IENIQVI= IEZlZQ== IE1veQ== Qm9ybg== b2xpYmVyYWw= IE1hcnRpYWw= IGdlbnRsZW1lbg== IGxpbmdlcmluZw== T2ZmaWNpYWw= IGdyYWZmaXRp IE5hbWVz RGVy IHF1aW50 aXN0cmF0ZQ== YXplZXJh IE5PVElDRQ== IEZsb3JlbmNl IHBheWFibGU= IGRlcGljdHM= IFNwZWNpZXM= SGVhcnQ= 4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA IGVuY2xvc2Vk SW5jcmVhc2Vz RGFpbHk= IExpcw== IGVuYWN0bWVudA== IEJhY29u IFN0ZWVsZQ== ZGVtYW5k IDE4Mw== IG1vdXRocw== IHN0cmFuZGVk IGVuaGFuY2VtZW50 MDEx IFdoYXRz IGhlYWxlZA== ZW55 IFJhYg== IDM0MA== IExhYnlyaW50aA== cm9hY2g= IFlvc2g= IENsaXBwZXJz IGNvbmNlcnRz SW50ZXJuZXQ= MzU1 IHN0aWNrZXJz IHRlcm1lZA== IEF4ZQ== IGdyYW5kcGFyZW50cw== RnJhbmNl IENsaW0= IFVo dWxpYw== IHRocmlsbA== Y2VudHJpYw== IE92ZXJ2aWV3 IENvbmR1Y3Q= IHN1YnN0YW50aXZl IDE4Mg== bXVy IHN0cmF5 IENvZmY= IHJlcGV0aXRpdmU= IEZvcmdvdHRlbg== IHF1YWxpZmljYXRpb24= ZXdpdG5lc3M= IFppbWJhYndl IHNpbXVsYXRlZA== IEpE MjUz IFdhcmU= IHVuc2M= VGltZXM= IHN1bW1vbnM= IGRpc2Nvbm5lY3RlZA== IDE4NA== Y2l1cw== IEd1amFy b2RrYQ== IGVyYXNl IFRvYmFjY28= ZWxlY3RlZA== IHVuY29udA== IFNoZXBhcmQ= IExhbXA= IGFsZXJ0ZWQ= IG9wZXJhdGl2ZQ== YXJuYQ== dWludA== IG5lZ2xpZ2VuY2U= YWNlbWVudHM= IHN1cHJh IHByZXZhaWw= IFNoYXJr IGJlbHRz 44Gr IHRpZ2h0ZXI= RW5naW5lZXJz IGluYWN0aXZl IGV4cG9uZW50 IFdpbGxpZQ== YXBsZXM= IGhlaXI= IEhpdHM= aWFubg== IFNheXM= IGN1cnJlbnRz IEJlbmdhbA== IGFyaXN0 QnVmZmVy IGJyZWV6ZQ== IFdlc2xleQ== Q29sYQ== IHByb25vdW4= IGRlZWQ= IEtsaW5n IG9mdA== IGluZmxpY3Q= IHB1bmlzaGluZw== IG5t aWt1 T0RVQ1Q= MDE0 IHN1YnNpZHk= IERFQQ== IEhlcmJlcnQ= IEphbA== QmFuaw== IGRlZmVycmVk IHNoaXBtZW50 Qm90dA== IGFsbGU= YmVhcmluZw== SFRNTA== T2ZmbGluZQ== IDIxMw== IHNjcm9sbGluZw== IHNjYW5uZWQ= IExpYnlhbg== IFRPUA== Y2hyb20= ZHQ= Y29sdW1u UHN5TmV0TWVzc2FnZQ== WmVybw== IHRvcnNv MDUw 4pWQ IGltcGVyc29u IFNjaHdhcnR6 dWRpYw== IHBpc3NlZA== IFNhcHA= MjU3 IElTUHM= b2ds IHN1cGVydmlzZWQ= IGFkb2xlc2NlbnQ= IGF0dGFpbmVk IERlbGl2ZXJ5 IEJ1bm55 IDE5Mzc= IG1pbmlhdHVyZQ== IG9z IDM3MA== NjA4 IE1vdXJpbmhv IGlubmF0ZQ== IHRlbXBv IE5N IEZhbGxlbg== MDA5 IHByb3ZvY2F0aXZl U3RyZWFtZXI= IEJlbmVkaWN0 IEJvbHNoZQ== IHR1cnRsZQ== IFBDQg== IEVxdWFs RGlyZWN0b3I= IFJlbmQ= IGZsdWlkcw== QXV0aG9yaXRpZXM= IGNvdXNpbnM= cmVxdWVuY3k= IE5laWdoYm9y c2V0cw== c2hhcmVk Q2hhcmxlcw== cGFzc3dvcmQ= IGdlYXJz IDIxMQ== IEhhcmR3YXJl cmlrYQ== IHVwc3RyZWFt SG9t IGRpc3Byb3BvcnRpb25hdGVseQ== aXZpdGllcw== IHVuZGVmaW5lZA== IGVsZWN0cm9ucw== IGNvbW1lbW9y RXZlbnR1YWxseQ== ID48 IGlycmVzcG9uc2libGU= MjE4 IFJlbGVhc2Vk IE9WRVI= IElHTg== IEJyZWFk c3RlbGxhcg== IFNhZ2U= dHRlZA== ZGFtYWdl ZWRpdGlvbg== IFByZWM= IGxpbWU= IGNvbmZpbmVtZW50 IGNhbG9yaWU= d2VhcG9u IGRpZmZlcmluZw== IFNpbmE= bXlz YW1k IGludHJpY2F0ZQ== a2s= IFBBVA== w6Nv c3RvbmVz bGlua3M= IHJhbmNo U2VtaXRpYw== IGRpZmZlcmVudGlhdGU= IFNpbmdlcg== b2NjdXBpZWQ= IGZvcnRyZXNz Y21k IGludGVyY2VwdGlvbg== IEFua2FyYQ== IHJlcHQ= IFNvbGl0YWlyZQ== IHJlbWFrZQ== cHJlZA== IGRhcmVk YXV0aW9ucw== IEJBQ0s= UnVubmluZw== IGRlYnVnZ2luZw== IGdyYXBocw== Mzk5 IE5pZ2Vs IGJ1bg== IHBpbGxvdw== IHByb2dyZXNzZWQ= ZmFzaGlvbmVk IG9iZWRpZW5jZQ== RVJO IHJlaGVhcnM= Q2VsbA== dGw= U2hlcg== IGhlcmFsZA== IFBheW1lbnQ= IENvcnk= IERlcHQ= IHJlcGVudA== IFdlYWs= dWNrbGFuZA== IHBsZWFzaW5n IHNob3J0YWdlcw== IGp1cm9ycw== IEthYg== cXFh QW50aQ== IHdvdw== IFJDTVA= IHRzdW4= IFNpYw== IGNvbXByaXNlcw== IHNwaWVz IHByZWNpbmN0 bnU= IHVyZ2Vz IHRpbWVk IHN0cmlwZXM= IEJvb3Rz IHllbg== QWR2YW5jZWQ= IGRpc2NyZXRl IEFyY2hhbmdlbA== ZW1wbG95bWVudA== RGlmZg== IG1vbnVtZW50cw== IDIwOQ== d29ya2Vy IDE5Ng== IEln dXR0ZXJzdG9jaw== VFBT SmFj IGhvbWVsZXNzbmVzcw== IGNvbW1lbnRhdG9y IHJhY2lhbGx5 ZmluZw== c2VlZA== RWxl ZWxsYXRpb24= IGV0aGFub2w= IHBhcmlzaA== IERvbmc= IEF3YWtlbmluZw== IGRldmlhdGlvbg== IEJlYXJpbmc= IFRzdWs= IHJlY2Vzcw== IGx5bXBo IENhbm5hYmlz 5Zw= IE5FV1M= IGRyYQ== IFN0ZWZhbg== IFdyb25n IFNBTQ== IGxvb3NlbHk= IGludGVycHJldGVy IFBsYWlu R292ZXJubWVudA== IGJpZ290cnk= IGdyZW5hZGVz YXZleg== cGljdHVyZWQ= IG1hbmRhdGVk IE1vbms= IFBlZHJv IGxhdmE= Mjc0 IGN5bmljYWw= IFNjcm9sbHM= bG9ja3M= TXA= IGNvbmdyZWdhdGlvbg== b3JuaW5ncw== cGhpbA== IEliaWQ= IGZlcnY= IGRpc2FwcGVhcmluZw== IGFycm9nYW50 c3lu IE1hdmVy IFN1aXQ= MjQx IGFiYnJl YWNrZXJz UGE= IFllbA== V2hlbmV2ZXI= IDIzNQ== IFZpbmU= IEFuYXQ= IGV4dGluY3Q= TEVU IGV4ZWN1dGFibGU= VkVSUw== b3hpZGU= RE5B IFByZWw= IHJlc2VudG1lbnQ= IGNvbXByaXNl IEF2aXY= IGludGVyY2VwdGlvbnM= IHByb2xpZmlj SU5B IEVyaW4= dGhvdWdodA== MjE5 IFBzeWNoaWF0cnk= dW5reQ== Y2hlbWlzdA== SG8= IE1jQ295 IGJyaWNrcw== TG9z cmlseQ== IFVTU1I= IHJ1ZA== IGxhdWQ= IFdpc2U= IEVtZXJhbGQ= IHJldml2ZWQ= IGRhbW5lZA== IFJlcGFpcg== aWRlbQ== Y3RpY2E= IHBhdHJpYXJjaA== IE51cnM= bWVn IGNoZWFwZXN0 cmVlbWVudHM= ZW1wdHk= IENlbGVicg== IGRlcHJpdmF0aW9u Y2hhbnRlZA== IFRodW1ibmFpbHM= RW5lcmd5 IEV0aGFu IFFpbmc= IG9wcG9zZXM= V0lORA== dmlr IE1hdQ== IFNVQg== NjY3 R1JF IFZvbHVudGU= bnRvbg== Q29vaw== 5ZA= ZXNxdWU= IHBsdW1tZXQ= IHN1aW5n IHByb25vdW5jZQ== IHJlc2lzdGluZw== IEZpc2hpbmc= IFRyaWFscw== IHllbGw= IDMxMA== IGluZHVjdA== IHBlcnNvbmFsaXplZA== b2Z0ZW4= UmVi RU1CRVI= IHZpZXdwb2ludA== IGV4aXN0ZW50aWFs KCkp cmVtb3Zl TUVOVFM= bGFzc2Vz IGV2YXBvcg== IGFpc2xl bWV0YQ== IHJlZmxlY3RpdmU= IGVudGl0bGVtZW50 IGRldmlzZWQ= bXVzaWM= YXNjYWRl IHdpbmRpbmc= b2Zmc2V0 IGFjY2Vzc2liaWxpdHk= a2VyZWQ= QmV0dGVy IEpvaG5zdG9u dGhpbmtpbmc= U25vdw== IENyb2F0aWE= IEF0b21pYw== Mjcx MzQ4 IHRleHRib29r IFNpeHRo INin2YQ= IHNsaWRlcg== IEJ1cmdlcg== Ym9s U3luYw== IGdyYW5kY2hpbGRyZW4= IGNlcnY= Kyk= IGV0ZXJuaXR5 IHR3ZWV0aW5n IHNwZWN1bGF0aXZl IHBpdm90YWw= IFdQ IFRFUg== eW5hbWlj IHVwbA== IENhdHM= cGVyaGFwcw== IGNsYXNzbWF0ZXM= IGJsYXRhbnQ= Jy0= IGxha2g= YW50aW5l IEJvcmc= aW9t Lyg= IEF0aGxldGlj IHNhcg== T1RB IEhvZmZtYW4= TmV2ZXJ0aGVsZXNz IGFkb3JhYmxl IHNwYXduZWQ= QXNzb2NpYXRlZA== IERvbWVzdGlj IGltcGxhbnQ= IEx1eGVt IEtlbnM= IHB1bXBz IFNBVA== QXR0cmlidXRlcw== NTA5 YXZvdXI= IGNlbnRyYWxpemVk IFRO IGZyZXNobHk= IEFjaGlldmU= IG91dHNpZGVycw== aGVydHk= IFJlZQ== IFRvd2Vycw== IERhcnQ= YWthYmxl IG1w IEhlYXZlbmx5 IHJpcGU= IENhcm9saW5l cnlhbg== IGNsYXNzaWNz IHJldGlyaW5n IDIyOA== IGFo IGRlYWxpbmdz IHB1bmNoaW5n IENoYXBtYW4= T3B0aW9ucw== bWF4d2VsbA== dm9sdW1l IHN0YWw= IGV4cG9ydGVk IFF1aXRl IG51bWVyaWNhbA== QnVybg== RmFjdA== IEtleXN0b25l IHRyZW5kaW5n IGFsdGVyaW5n IEFmcmljYW5z NDc4 IE1O IEtub2Nr IHRlbXB0YXRpb24= IHByZXN0aWdl T3ZlcnZpZXc= IFRyYWRpdGlvbmFs IEJhaHJhaW4= UHJpdmF0ZQ== IEhPVQ== IGJhcnI= IFRhdA== Q3ViZQ== VVNE IEdyYW5kZQ== IEdhdA== IEZsbw== IHJlc2lkZXM= IGluZGVj dm9sZW50 IHBlcnBldHVhbA== dWJlcw== IHdvcmxkdmlldw== IFF1YW50dW0= IGZpbHRlcmVk IGVuc3U= b3JnZXRvd24= RVJTT04= IE1pbGQ= Mzc5 T1RU w6U= IHZpdGFtaW5z IHJpYmJvbg== IHNpbmNlcmVseQ== IEhpbg== IGVpZ2h0ZWVu IGNvbnRyYWRpY3Rvcnk= IGdsYXJpbmc= IGV4cGVjdGFuY3k= IGNvbnNwaXI= IG1vbnN0cm91cw== IDM4MA== cmVjaQ== IGhhbmRpYw== IHB1bXBlZA== IGluZGljYXRpdmU= IHJhcHA= IGF2YWls IExFR08= IE1hcmlqdWFuYQ== MTk4NQ== ZXJ0b24= IHR3ZW50aWV0aA== IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyM= IFN3YW1w IHZhbHVhdGlvbg== IGFmZmlsaWF0ZXM= YWRqdXN0ZWQ= IEZhY2lsaXR5 MjYy IGVuenltZXM= aXR1ZGluYWw= IGltcHJpbnQ= U2l0ZQ== IGluc3RhbGxlcg== IFRSQQ== bW9sb2d5 bGluZWFy IENvbGxlY3RpdmU= aWdhdGluZw== IFRva2Vu IHNwZWN1bGF0ZWQ= S04= IENseQ== b3JpdHk= IGRlZmVy IGluc3BlY3RvcnM= YXBwcm92ZWQ= Uk0= IFN1bnM= IGluZm9ybWluZw== IFN5cmFjdXNl aWJsaQ== NzY1 IGdsb3Zl IGF1dGhvcml6ZQ== 4oCm4oCm4oCm4oCm4oCm4oCm4oCm4oCm IENydWlzZQ== IGNvbnRyYWN0aW5n c2hlbGw= SUZF IEpld2Vs cHJhY3Q= IFBob3Rvc2hvcA== IEtub3dpbmc= aGFybQ== IGF0dHJhY3Rpb25z YWRhbg== ZXR1cw== MDE4 d2FnZW4= QWx0 IG11bHRpcGx5 IGVxdWlsaWJyaXVt Ons= IEZpZ2h0ZXJz IEVkZ2Fy IGZvdXJ0ZWVu R292ZXJu IG1pc3VzZQ== IGFidXNpbmc= IGFuY2VzdHJ5 cmFtZXI= NjQ0 IHdvcm1z IHRoaWNrZXI= IENvbWJpbmU= IHBlYXNhbnRz IHZpbmQ= IGNvbnF1ZXN0 IG1vY2tlZA== IGNpbm5hbW9u IENhbGQ= IEdhbGx1cA== IGF2b2lkYW5jZQ== IGluY2FybmF0aW9u IFN0cmF0 IHRhc3RlZA== ZW50YQ== IE5lYWw= cGFyZWQ= IHRlcm1pbm9sb2d5 amVjdGlvbg== U2NpZW50aXN0cw== IElOUw== IERlZQ== IGRpcmVjdG9yaWVz Um9hZA== IFNoYXA= YnJpZ2h0 IERpcmVjdG9ycw== IENvbHVtbg== IGJvYg== IHByZWZlcmFibHk= IGdsaXRjaA== ZnVydA== IGVn aWRpcw== Q0JD IHN1cnJlbmRlcmVk IHRlc3RhbWVudA== MzM2 dWdnZXN0 IE5pbA== YW5vdGhlcg== IHBhdGhldGlj IERvbm5h IDIxOA== IEF2ZXJ5 IHdoaXNrZXk= IGZpeHR1cmU= IENvbnF1ZXN0 IGJldHM= T2Nj IExlaWNlc3Rlcg== XS4i ICkpOw== IGZsYXNoZXM= NDU2 IG1hc2tlZA== Z2VicmE= IGNvbXB1dGVk Y2hlbA== YXVkZXI= IGRlZmVhdHM= IExpYmVyYXRpb24= IE9zYW1h IFZpdmU= Q2hhbmdlcw== Q2hhbm5lbA== IHRhcmlmZnM= IG1hZ2U= IFNheA== IGluYWR2ZXJ0ZW50bHk= IENSRQ== IFJlYXBlcg== aW5reQ== Z3JhZGluZw== IHN0ZXJlb3R5cA== IGN1cmw= IEZBTlQ= IGZyYW1ld29ya3M= TW9t IEFuY2g= IGZsYXZvdXI= Y2FyYm9u IHBlcm1pdHRpbmc= bGV0Y2hlcg== IE1vemlsbGE= IFBhcmtpbmc= IENoYW1w U2Nyb2xs IG11cmRlcmVy IHJlc3RlZA== IG93ZXM= IFBvc3M= QURE SUZG cmVzb2x1dGlvbg== IE1pbmluZw== IGNvbXBhcmF0aXZl RGlt IG5laWdoYm91cmluZw== IEFTVA== IFRveGlj IGJpYXNlcw== IGd1bmZpcmU= dXJvdXM= IE1vbWVudA== MTk4Mw== IHBlcnZhc2l2ZQ== dHRw IE5vcm1hbGx5 cmly U2FyYWg= IEFsYmFueQ== IHVuc2V0dA== IFNNUw== aXBlcnM= bGF5ZXI= IFdoaXRlcw== dXBsZQ== IHR1cmJv IExlZWRz IHRoYXRz IE1pbmVy TUVS IFJlaWdu IHBlcm1l IEJsaXR6 IDE5MzQ= IGludGltaWRhdGluZw== dHViZQ== IGVjY2VudHJpYw== YWJvbGlj Ym94ZXM= IEFzc29jaWF0ZXM= dm90ZXM= IHNpbXVsYXRl dW1ibw== YXN0ZXJ5 IHNoaXBtZW50cw== RkZGRg== YW50aA== IHNlYXNvbmVk IGV4cGVyaW1lbnRhdGlvbg== 4pag bGF3cw== TWVldA== aWRkbGVz YW50aWNz UmF0aW5n SVNJUw== aGlmdA== IGZyb250cw== YnVm MDE3 IHVuYXR0 IERpbA== bGVhc2Vz IEdhcmRlbnM= Nzc3 dG91Y2g= dmVsbA== NDU4 ID09PT09 c2F2aW5n IGVyb3Npb24= IFF1aW4= IGVhcm5z IGFjY29tcGxpc2htZW50 IFdlaQ== IDxb X19fX18= IGlycmln IFRlZGR5 IGNvbnF1ZXJlZA== IEFybW9yZWQ= IGFzc2VydHM= IG1hbmlwdWxhdGluZw== csOp IHRyYW5zY3JpcHRz R2FsbGVyeQ== IHBsb3R0aW5n TmVpbA== IGJldHJheWFs bG9hZGVy IFN1bA== IGRpc3BsYWNlbWVudA== IHJveWFsdHk= IFdJ aGVpdA== IERldmljZXM= YWxsZWw= IG11bmljaXBhbGl0aWVz IGNhbmFs U3RhcnM= IFVBRQ== ICLigKY= IENV YWJvdmU= IHJlc29uYW5jZQ== IGd1aUFjdGl2ZVVu YWRkZWQ= IEJyYXZlcw== IElibg== IGhlcmVieQ== IEJSRQ== IHNoYXJlaG9sZGVy IEhpcg== IEpp IHN0cmFuZ2VseQ== IGFkbWlyZWQ= IHBsaWdodA== IGJhY2hlbG9y IFBvbGU= Y2lwbGluYXJ5 VG9ueQ== IEFybWVuaWFu IHVubWFu IFppb25pc3Q= U3RhZ2U= aXNjb3Zlcg== IGF1dG9tb3RpdmU= IHNpZGVsaW5lcw== IHNsaWNr IFJlbmFpc3NhbmNl IEZVTg== SW1hZ2Vz IEhhag== IHBpbmc= IHNob3J0Y3V0 IEJsdmQ= IExvb2tz IGJ1cnN0cw== IGNsYW1w IG1pc2g= IHNvcnRpbmc= IHBhdHJpb3Q= IGNvcnJlY3RuZXNz IFNjYW5kaW5hdg== IENhdmFsaWVycw== cHl0aG9u YXphcg== IDM3NQ== IEphdW5l NDA5 IGRldHJpbWVudGFs IHN0YWJiaW5n IHBvaXNvbmVk IGZvdW50YWlu b2NlbnQ= b3JzdA== IE1hcmk= IHJhaW5z IE92ZXJz IEluc3RpdHV0aW9u dWRnZXQ= QU1Z dGFsZQ== IEtS IFByaWNlcw== IGhlYWRhY2hlcw== IGxhbmRzbA== IEF1cmE= Qm9udXM= IFpoYW8= IEhpcA== IGhvcHM= IEt1cmRpc3Rhbg== IGV4cGxvaXRpbmc= cnlu IGh5cG9jcmlzeQ== b3BlbmluZw== IGd1bnNob3Q= IHdlZA== aW50ZXJzdGl0aWFs SW50ZXJzdGl0aWFs IGFtZW4= QnJlYWtpbmc= IG1hcmtldGVk V2lyZQ== IENyb3dk Q29udGludWU= IEtub3du IEVmZmVjdGl2ZQ== b3JlYW4= aXpvbnM= Sm9zZXBo IGVzY2FsYXRpb24= dXNlcm5hbWU= IGN1cnRhaW4= QVRFUw== IFBBUg== IE1peQ== IGNvdW50ZXJmZQ== bGVuZQ== IGNvbnRlbmRlcnM= ZGFpbHk= IEFzYw== IFBoaWxsaXA= bW9zdGx5 IGZpbGVuYW1l aGVuZQ== IHJlc2VtYmxpbmc= IHN0YWdpbmc= IENobG9l IHdpcmluZw== SG9u IFJlbmV3 b3R0YWdl IEh5YnJpZA== bXVjaA== IHN0cm9rZXM= IHBvbGljeW1ha2Vycw== QVBURVI= IEFya2hhbQ== cGxvdA== IGFzc2lzdGFudHM= IGRlcG9ydA== IFNlZ2E= IGluZmx1ZW56YQ== IEN1cnNlZA== IEtvYmU= IHNraW5ueQ== UHJvdmlkZXI= IFJpcA== IGluY3JlbWVudGFs cHJvZHVjdHM= QkY= IGRvbWU= IENyZWRpdHM= IGxvc2Vycw== aW50cw== IEJldHR5 IFRhbGVudA== IERBTQ== THY= RXNz IGRlbnM= dGVtcA== SnVkZ2U= b2RpYw== ICco VVJFUw== ZXRzaw== Vk8= IHJldHJpZXZlZA== IGFyY2hpdGVjdHM= 2Yc= IGV0aGlj IFNlY29uZGFyeQ== c3RvY2tz YWRpYQ== IDMyNQ== IE9waW5pb24= IHNpbXVsdGFuZW91cw== IGRpeno= dWxw IHNtdWdnbGluZw== aXBwZXJ5 UmFuZG9t ZmFjaW5n IERhcw== IHN0b2NrcA== IGRpc2Nsb3N1cmVz cG9pbnRlcg== IGNvcmFs IFNlbGVjdGlvbg== IFBpa2U= aXZhbGVudA== IHJ1dGhsZXNz IFJpbQ== IGVuc3Vpbmc= IEV4cGVyaW1lbnQ= IGNvbmdyZXNzbWFu IGJlbGlldmVy IHVuc3BlY2lmaWVk IE1vcmQ= IGtub3dsZWRnZWFibGU= IFZFUlk= VFg= IHN0cmFwcw== IHR1cmY= YXBlc2hpZnRlcg== IG1hcml0YWw= IGZsb2Nr 44GG MjYz QU1FUw== IE9wcG9zaXRpb24= IHRyZWFzdXJlcw== IEdPRA== IG1vZGVsZWQ= IFdPUkxE IChb IFVzYWdl SEY= ICQo dXNzZWQ= IHBpb25lZXI= RWlnaHQ= cGFyc2U= YnJlYWQ= cml0eg== IE1pcmFuZGE= IEthbnQ= Kysp b3Jlbg== IHByb3Zva2Vk IGJyZWVkcw== IEluY2x1ZGVz IFBhc3RlYmlu IEZsaXA= SmF2YQ== IGJyaW5r IHJ1bW9yZWQ= IHVuc2Vlbg== IGdhcm5lcmVk IERlZmlu YWx0ZWQ= IHRhdHRvb3M= IGhlc2l0YXRpb24= aXNpdGlvbnM= IFdlYXZlcg== IFJlcG9ydGluZw== IHRoZXJhcGllcw== IGNvbnN1bHRhbnRz IHJlc2lkdWFs IE1hbGk= IFJvbWE= aWFnbw== IFJlc2lkZW50cw== dWJp IHJlbWVkaWVz IGFkYXB0aXZl IEFsaXZl IEJhcmNs IHdhbGxldHM= Y3J5cHQ= ZXRlcm1pbmF0aW9u IFBlbG9zaQ== IHNsaXBwaW5n b3Rvbmlu IGFsbGlhbmNlcw== cGF0cmljaw== aXJpcw== IG9ydGg= IFBlcmtpbnM= IERlVg== IEdldHM= IGRyeWluZw== Z2Vl Zm9yZXN0 IEZvcmdldA== b3JlbQ== MzM5 IHZhZ3VlbHk= IERpb24= IFBvcm4= IEhPVw== IHBuZXVt IHJ1YmJsZQ== IFRhc3Rl ZW5jaWE= IEdlbA== IGRzdA== IDI0NQ== IE1vcm9jY28= aW5mbGFtbQ== IFR3aW5z IGJvdHM= ZGF1Z2h0ZXI= IEJhbGs= IGJyZXRocmVu IGxvZ29z IGdvYmw= ZnBz IHN1YmRpdmlzaW9u IHBhd24= IHNxdWVlemVk IG1vcmFsZQ== IERX JyI= IGtub3Q= b29reQ== IGRpdmlzaXZl IGJvb3N0ZWQ= Y2h5 44OQ aWZhY3Q= IG5ld2NvbWVycw== IFdyZXN0bGluZw== IHNjb3V0cw== d29sdmVz UmF0 IG5pbmV0ZWVudGg= IE9zYm9ybmU= U3RhdHM= IGVtcG93ZXJlZA== IHBzeWNob3BhdGg= IE9FTQ== dWdnYWdl IFBL IE1vaGFtbWFk UGFr IGFuYXJjaGlzdHM= IEV4dHJhY3Q= ZXN0aGVz IFN0b2NraG9sbQ== bG9v IEdyYXBo IGRlcGxveWluZw== IFN0cmFuZ2Vy IE1vbGQ= IHN0YWZmZXI= IGRpc2NvdW50ZWQ= dWNrbGU= cGxlYXNl IExhbmRpbmc= w61h IDE5Mw== IGFudGU= IHJlcGV0aXRpb24= ICsvLQ== IHBhcm9keQ== IGxpdmVseQ== QUFB IEhvcnVz IHBpdHM= aW5kZXJz TE9D IFZlbmljZQ== NDA2 IERpc2NvdmVy 4oY= ZWxsZWN0dWFs IHBlbnM= IGV5ZWw= aWd1b3Vz SW1wbA== IGpva2luZw== IGludmFs IEJlbGZhc3Q= IGNyZWRpdG9ycw== IFNreXdhbGtlcg== b3Zza3k= IGNlYXNlZmlyZQ== IHNlYWxz aXNvZnQ= KSku IEZlbGl4 SVRT IHRyZXNw IEJsb2NrY2hhaW4= ZXdhcmU= IFNjaHdhcg== ZW5uZQ== bW91bnRlZA== IEJlYWNvbg== bGVzaA== IGltbWVuc2VseQ== IGNoZWVyaW5n RW1wbG95 c2NlbmU= aXNobHk= YXRjaGV3YW4= IE5pY29sYXM= IGRyYWluZWQ= IEV4aXQ= IEF6ZXJi anVu IGZsb2F0ZWQ= dWFuaWE= RGVlcA== IHN1cGVydg== IG15c3RpY2Fs IERvbGxhcg== IEFwb3N0bGU= IFJFTA== IFByb3ZpZGVk IEJ1Y2tz 44O0 Y3V0dGluZw== IGVuaGFuY2VtZW50cw== IFBlbmd1aW5z IElzYWlhaA== IGplcms= IFd5bg== IHN0YWxsZWQ= IGNyeXB0b2N1cnJlbmNpZXM= IFJvbGFuZA== c2luZ2xl IGx1bWlu IEZlbGxvdw== IENhcGFjaXR5 IEthemFraA== V04= IGZpbmFuY2Vk Mzg5 IHRpZA== IGNvbGx1c2lvbg== IE15cg== 7oA= U2VuYXRvcg== IHBlZGlhdHJpYw== IG5lYXRseQ== IHNhbmR3aWNoZXM= IEFyY2hpdGVjdHVyZQ== IHR1Y2tlZA== IGJhbGNvbnk= IGVhcnRocXVha2Vz cXVpcmU= RnV0dXJl IGhlZnR5 6Zc= IHNwZWNpYWxpemVz IHN0cmVzc2Vz IHNlbmRlcg== IG1pc3VuZGVyc3RhbmRpbmc= IGVwaWxl IHByb3Zva2U= IENvbG9ycw== IGRpc21heQ== dWtv W18= NTg2 bmV1dHJhbA== IGRvbmF0aW5n IFJhbmRhbGw= TXVsdGk= IGNvbnZlbmllbnRseQ== IFN1bmc= IENvY2E= IHRlbnRz IEFjY2VsZXI= IHBhcnRuZXJlZA== Mjcy aXJtaW5n IEJBUw== c29tZXRpbWVz IG9iamVjdGVk dWJyaWM= cG9zZWQ= TENT Z3Jhc3M= IGF0dHJpYnV0YWJsZQ== VklT SXNyYWVsaQ== IHJlcGVhdHM= IFJN dmFn dXRh aW5vdXM= IGluZXJ0 IE1pZ3VlbA== 5q0= IEhhd2FpaWFu Qm9hcmQ= IGFydGlmaWM= IEF6ZXJiYWk= YXNpbw== IFJlbnQ= QUlO IGFwcGxpYW5jZXM= IG5hdGlvbmFsaXR5 IGFzc2hvbGU= IE5lYg== IG5vdGNo aGFuaQ== IEJyaWRl QXZhaWxhYmlsaXR5 IGludGVyY2VwdGVk IGNvbnRpbmVudGFs IHN3ZWxsaW5n IFBlcnNwZWN0 Ymllcw== Ljw= aXRobWV0aWM= IExhcmE= IHRlbXB0aW5n YWRkcg== IG92ZXJzZWVpbmc= Y2xhZA== IERW IEdpbmdyaWNo IG11bg== IEFwcHJvcHJp IGFsdGVyYXRpb25z IFBhdHJlb24= IGhhdm9j IGRpc2NpcGxpbmVz IG5vdG9yaW91c2x5 YWt1eWE= aWVyaQ== Pyku IFdlbnQ= IHNpbGljb24= IHRyZW1i Q29udGFpbmVy S25vd24= IG1vcnRhcg== ZXN0ZQ== aWNrYQ== QXJ0aHVy IFByZXZpb3VzbHk= IE1hcnR5 IHNwYXJzZQ== Z2lucw== IGlud2FyZA== IFBhcnRpY2lwYW50 Q29weQ== IE1pc2M= IGFudGliaW90aWM= IFJldHJv IGVsdXNpdmU= IGFzc2FpbA== IEJhdHRhbGlvbg== IEJvdWdodA== IGRpbWluaXNo IEV1cm9wYQ== c2Vzc2lvbg== IERhbmdlcm91cw== aWVzZWw= IGRpc2JlbGllZg== IGJsYXN0cw== ZXh0cmVtZQ== IEJveWQ= IFByb2plY3Rz IEd1eXM= IHVuZGVyZ29uZQ== IGdyaWxs IER3aWdodA== IDE5Nw== VVNFUg== IGZpbGVzeXN0ZW0= IGNsb2Nrcw== VGF5bG9y IHdyYXBwZXI= IGZvbGRpbmc= b3VzYW5k IFBoaWxpcHBpbmU= QVRJT05BTA== IFBlcnRo IGFzaGVz IGFjY3VtdWxhdGU= IEdhdGV3YXk= U2hvcA== b3Jrc2hpcmU= SGFu IEJhcnJlbA== IExlaA== IFhW IHdoaW0= IHJlcG8= IENH IE1hbQ== IGluY29ycG9yYXRpbmc= IGJhaWxvdXQ= IGxpbmd1aXN0aWM= IGRpc2ludGVn Q0xF IGNpbmVtYXRpYw== IEZpYmVy U3lu aWxpb24= IENvbXBvcw== Y2hlbnM= IG5lb2M= IGJvaWxlZA== RklORQ== b25v dW5jbGU= aWtlbg== IEJN zrk= IHJlY2VpcHRz IGRpc3Bvc2Vk IFRoaXJ0eQ== IFJvdWdo IEFCUw== IG5vdHdpdGhzdGFuZGluZw== b2xsZW4= IyQ= IHVucmVsaWFibGU= IGJsb29t IG1lZGlvY3Jl IHRyYW0= IFRhc21hbg== IHNoYWtlcw== IG1hbmlmZXN0bw== IE1X IHNhdGlzZmFjdG9yeQ== IHNob3Jlcw== IGNvbXB1dGF0aW9u IGFzc2VydGlvbnM= b3Jtb25z YXJhZw== YWJpdA== RGVtb2NyYXRz IExvb3Q= IFZvbGtz aGFpcmVk IGdyYXZpdGF0aW9uYWw= U2luZw== IE1peg== IHRocm90dGxl IHR5cmFubnk= IFZpZXdz IHJvYmJlcg== IE1pbm9yaXR5 IHNocmluZQ== c2NvcGU= cHVycG9zZQ== IG51Y2xldXM= b3VyY2luZw== IFVTREE= IERIUw== d3Jh IEJvd2ll U2NhbGU= IEJFTA== eGk= SXRlcg== ICgpLA== d3JpZ2h0 IHNhaWxvcnM= b3VzZWQ= TkFTQQ== IFByb29m IE1pbmVyYWw= dG9rZW4= IEZE UmV3 IGVsbA== NjMw IGNoYW5jZWxsb3I= IEdvcw== IGFtb3VudGVk IFJlY3Jl b21leg== IE9wdGlt IE9saXZl IHRyYWNrZXI= b3dsZXI= IFVuaXF1ZQ== Um9vdA== IG1hcml0aW1l IFF1cmFu IEFkYXB0 IGVjb3N5c3RlbXM= IFJlcGVhdA== IFNveQ== IElNUA== IGdyYWR1YXRpbmc= YW5kZW0= UHVy IFJlc2V0 IFRyaWNr IFBoaWxseQ== IFR1ZQ== IE1hbGF5c2lhbg== IGNsaW1heA== IGJ1cnk= IGNvbnNwaWM= IFNvdXRoYW1wdG9u IEZsb3dlcnM= IGVzY29ydGVk IEVkdWNhdGlvbmFs IElSQw== IGJydXRhbGx5 ZWF0aW5n IHBpbGxhcg== IFNhbmc= IEp1ZGU= YXJsaW5n IEFtbmVzdHk= IHJlbWluZGluZw== IEFkbWluaXN0cmF0aXZl aGVzZGE= IGZsYXNoZWQ= IFBCUw== cGVyYXRl ZmVhdHVyZQ== IHN3aXBl IGdyYXZlcw== b3VsdHJ5 MjYx YnJlYWtz IEd1ZXI= IHNocmltcA== IFZvdGluZw== cXVpc3Q= IGFuYWx5dGljYWw= IHRhYmxlc3Bvb25z IFNPVQ== IHJlc2VhcmNoZWQ= IGRpc3J1cHRlZA== IGpvdXI= IHJlcGxpY2E= IGNhcnRvb25z YmlhbnM= fSk= Y29weQ== R290 b3VjaGVk UFVU IHN3YXJt bm90YXRpb25z c2FpZA== IHJlYnVpbHQ= IGNvbGxhYm9yYXRl IHJhZ2luZw== IG5hcg== IGRlbW9ncmFwaGljcw== IEREUg== IGRpc3RydXN0 b3NzaWVy IEtybw== IHB1bXBraW4= IHJlZ3JldHM= IGZhdGFsaXRpZXM= IExlbnM= IE9sZQ== cGQ= IHB1cHBldA== IE91dGxvb2s= IFN0YW0= T2w= RmFpcg== VVU= IHJld3JpdHRlbg== xLE= IGZhc2NpbmF0ZWQ= IHZlY3RvcnM= IHRyaWJ1bmFs dWF5 IE1hdHM= IENvaW5z W1s= IDE4MQ== IHJlbmRlcnM= IEthZXBlcm5pY2s= IGVzcGlvbmFnZQ== IHN1bW0= IGRpdGNo QWNjb3VudA== IHNwcmVhZHNoZWV0 IG11dGFudA== cGFzdA== NDA3 IGR5ZQ== IGluaXRpYXRpb24= IDQwMDA= IHB1bmlzaGFibGU= IHRoaW5uZXI= IEtoYWw= IGludGVybWVkaQ== RHVu IEdvdGhhbQ== IGVhZ2VybHk= IHZhZ2luYWw= cG93ZXJz Vlc= IFdBVENIRUQ= IHByZWRhdG9y YW1zdW5n IGRpc3Bhcml0eQ== IFsq IGFtcGg= IG91dHNraXJ0cw== IFNwaXJpdHM= IHNrZWxldGFs 0Ls= IFJlYXI= IGlzc3VhbmNl IExvZ2lj cmVsZWFzZWQ= Wlo= IEJvdW5k RW50cnk= IGV4aXRz aXNvbA== IEZvdW5kZXI= IHdyZQ== IEdyZWVubGFuZA== IE1NTw== dGFrZXI= SU5D 44G+ IGhvdXJseQ== aGVua28= IGZhbnRhc2llcw== IGRpc29i IGRlbW9saXRpb24= 44OL IGVubGlzdGVk cmF0dWxhdGlvbnM= IG1pc2d1aWRlZA== IGVuc3VyZWQ= IGRpc2NvdXJhZ2Vk bW9ydA== IGZsYW5r IGNlc3M= IHJlYWN0cw== IFNlcmU= c2Vuc2l0aXZl IFNlcnBlbnQ= YXNzYWQ= IDI0Nw== IGNhbG1seQ== YnVzdGVycw== IGJsZWVk IFN0cm8= IGFtdXNlbWVudA== IEFudGFyY3RpY2E= IHNjZXB0 IEdhdw== YXE= YXNvbmlj IHNwcmF3bGluZw== bmF0aXZl YXR1cmF0ZWQ= IEJhdHRsZWZpZWxk SVZFUlM= RUI= IEdlbXM= IE5vcnRod2VzdGVybg== IEZpbG1z IEF1dG9tYXRpYw== IGFwcHJlaGVuZA== 44Go IGd1aU5hbWU= IGJhY2tlbmQ= IGV2aWRlbmNlZA== Z2VhbnQ= MDEy IFNpZWdl IGV4dGVybmFsVG8= IHVuZm9jdXNlZFJhbmdl IGd1aUFjdGl2ZVVuZm9jdXNlZA== IGd1aUljb24= IGV4dGVybmFsVG9FVkE= IGV4dGVybmFsVG9FVkFPbmx5 RnJp Y2hhcmQ= ZW5hcmllcw== IGNoaWVmcw== IGNm IEhVRA== IGNvcnJvYm9y IGRC IFRha2Vu IFBhdHJpY2lh cmFpbA== IENoYXJt IExpYmVydGFyaWFu cmlldmU= UGVyc29uYWw= IE9VUg== Z2VyaWVz IGR1bXBpbmc= IG5ldXJvbG9naWNhbA== aXRpbWF0ZQ== IENsaW50b25z cmFmdGVk IE1vbGx5 IHRlcm1pbmFscw== cmVnaXN0ZXI= IGZsYXJl IGVuY29kZWQ= IGF1dG9wc3k= cGVs bWFjaGluZQ== IGV4ZW1wdGlvbnM= IFJveWFscw== ZGlzdGFuY2U= IGRyYWZ0cw== IGxhbWU= IEN1bm5pbmc= IHNwb3VzZXM= IE1hcmtldHM= IENhcnJpZXI= IGltcGx5aW5n IFlhaw== c2lk IGxvc2Vy IHZpZ2lsYW50 IGltcGVhY2htZW50 IGF1Z21lbnRlZA== IEVtcGxveWVlcw== IHVuaW50ZW5kZWQ= dGVybmFsbHk= IFdhdHQ= IHJlY29nbml6YWJsZQ== ZXNzaW0= 5p0= IGNvYXRlZA== cmhh IGxpZXV0ZW5hbnQ= IExlZ2lzbGF0aW9u cHVibGlzaGVk NDQ0 MDEz IGlkZWFsbHk= IFBhc3N3b3Jk IHNpbXBsaWZ5 IE1ldGE= IE1SSQ== IHBsZWFkaW5n b3JnYW5pemVk aGFuZGxlcg== IHVucmF2ZWw= Y29ycmVjdA== IGljeQ== IHBhcmFub2lk IHBhc3Nlcg== IGluc3BlY3Rpb25z b2Zlcg== IEhlYWx0aGNhcmU= Mjgz IEJydXQ= aW9sYQ== Zm9yZ2U= IE1lZGlldmFs TVNO aWV2ZXJz IFByb2dyYW1taW5n 5Yk= IDIyMw== bXU= IENMRQ== dWdh IHNob3BwZXJz IGluZm9ybWF0aXZl IFBsYW5z IHN1cHBsZW1lbnRhdGlvbg== IFRlc3Rz dHlhcmQ= b2N5dGVz IFZlZ2E= IEd1amFyYXQ= ZXJtYW5lbnQ= RXhjZXB0 IExPVA== YWxsYQ== IEN1bW0= IE9zdw== IHZlbm9t IERlYnQ= IERPV04= IHJldW5pb24= IG11Yw== IFJlbGllZg== IGdlb3A= IPCfmA== YWxvZ3Vl QW50aA== ZWNobw== IGNvcnJvcw== IHJlcGxpY2F0aW9u IEJsYXppbmc= IERhdWdodGVy IGluZmxpYw== IExpbmRzZXk= 2Yg= Mjg0 RXhpdA== IGdsb29t VEFJTg== IHVuZGVybWluaW5n IGFkdmlzaW5n aGlkZGVu IG92ZXJmbG93 IGdvcg== dXJkdWU= IGVjaG9lcw== ZW5oYWdlbg== IGltcHVscw== ZHJ1Zw== Y2FzaA== IGFzeW5j IG1pcmFj YXR0cw== cHVuaw== IHBpdm90 IExlZ2lzbGF0aXZl IGJsb2dnZXJz IENsYXc= c2J1cmc= ZHls IFJlY29tbWVuZA== IHZlcnRl IHByb2hpYml0aW5n IFBhbnRoZXI= Sm9uYXRoYW4= IG9taW4= IGhhdGVmdWw= Mjgx IE9yY2hl IE11cmRvY2g= ZG93bnM= IGFzeW1t R0VS QWx3YXlz IGluZm9ybXM= IFdN IFBvbnk= IEFwcGVuZGl4 IEFybGluZ3Rvbg== SmFt IG1lZGljaW5hbA== IFNsYW0= SVRJRVM= IHJlYWZm IFJp Rkc= U3ByaW5n Ym9vbA== IHRoaWdocw== IG1hcmtpbmdz IFJhcXFh IExhaw== cG9sbA== dHNreQ== IE1vcnR5 IERlZmluaXRpb24= IGRlYnVuaw== ZW5kZXJlZA== IExlb25l YXZlcnM= IG1vcnRnYWdlcw== QXBwYXJlbnRseQ== Tmlj aGF1cw== IFRob3VzYW5kcw== YXVsZA== IG1hc2g= c2hvb3Q= IGRpYXJy IGNvbnNjaW91c2x5 SGVybw== ZWFz IE5hdHVyYWxseQ== IERlc3Ryb3llcg== IGRhc2hib2FyZA== c2VydmljZXM= Um9n IG1pbGxlbm5pYWxz IGludmFkZQ== LSg= IGNvbW1pc3Npb25z IEF1Y2tsYW5k IGJyb2FkY2FzdHM= IGZyb250YWw= IGNyYW5r IEhpc3Rvcmlj IHJ1bW91cnM= Q1RW IHN0ZXJpbA== IGJvb3N0ZXI= cm9ja2V0 44K8 dXRzY2hl IFBJ IDIzMw== IFByb2R1Y2Vy IEFuYWx5dGljcw== IGludmFsdWFibGU= IHVuaW50ZW50aW9u IENZ IHNjcnV0aW4= IGdpZ2c= IGVuZ3VsZg== IHByb2xldGFyaWF0 IGhhY2tz IEhldw== YXJhaw== IFNsaW1l aWVsZGluZw== YWdoZXI= IEVsbGlvdA== IHRlbGVjb20= IDIxOQ== dWx0YW4= IEFyYm9y IFNjb3V0cw== QmFu IGxpZmVzcGFu IGJsYXNw Mzg4 IGp1ZGljaWFyeQ== IENvbnRpbmVudGFs YXNraW5n TWND TEVE IGJhZ2dhZ2U= IFNvcmNlcmVy IHJlbW5hbnRz IEdyaWZmaXRo ZXRzdQ== IFN1YmFydQ== IFBlcnNvbmFsaXR5 ZGVzaWduZWQ= dXNoaW1h YWduYXI= IHJlY29pbA== IHBhc3Npb25z XCI6 IHRlZQ== IGFib2xpdGlvbg== IENyZWF0aW5n amFj IDE5NA== MDE5 IHBpbGxhcnM= cmljaGVk LyI= dGs= IGxpdmVsaWhvb2Q= IHJvYXN0ZWQ= YWhvbg== IEh1dGNo YXNzZXJ0 IGRpdmlkZW5k IGtuaXQ= IGRhdW50aW5n IGRpc3R1cmJhbmNl IHNoYWxl IGN1bHRpdmF0ZWQ= IHJlZnJpZ2VyYXRvcg== TEI= IE5FVA== IGNvbW1lcmNpYWxz IHRoaW5rZXJz NDU1 IGNob3A= QnJvYWQ= IHN1c3BpY2lvbnM= IHRhZ2dlZA== bGlmdGluZw== IHN0eWxpc2g= IFNoaWVsZHM= U2hvcnRseQ== IHRhaWxz QXV0aA== U1RF IEdBTUU= IHNlaXNt IEtpcw== b2xvZ25l IGNvd29yaw== IGZvcmNpYmx5 IHRoeXJvaWQ= IFBC QU5F bWFycmllZA== aG9yc2U= IHBvbHltZXI= IENoYWw= b2Rvcg== REVCVUc= IENvbnRleHQ= IGJsaXNz IHBpbnBvaW50 IE1hdGhlbWF0 bGVncmFt IFdlZWtlbmQ= IGxhYmVsbGVk IGJhcnQ= aXRsZXM= IGVzdHJvZ2Vu 4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU Iic= IHZpc2libHk= IG91dHNpZGVy YWlkYQ== QXJlYQ== IGRpc3NlbWlu IGRpc2hvbmVzdA== IENsb3NlZA== IEJ1bGxldGlu IFJhbXNleQ== c3dvcmQ= IFhJ b3VyY2Vk U2FtZQ== MzQ2 IFJlcGU= IEtvdQ== Y2FrZQ== ZW1pcw== Q2FjaGU= IE1lYW5pbmc= IEVubGlnaHQ= b25vbXk= IG1hbmlmZXN0YXRpb24= c3dvcnRo SmF5 IGNob3Jl w7Zy RHJlYW0= IHNhbmN0aW9uZWQ= IGN1bHR1cmFsbHk= IEFyYQ== TmF2 IHRoZW9sb2dpY2Fs IHN0cnV0 IFZP IEhhbmRib29r IGNvbnN0cnVjdGluZw== IMK2 IEJlbmVmaXRz IFBzeWNob2xvZ2ljYWw= c2Fj 5bg= cG9saWN5 IE1hdHRlcnM= IFJlcG9ydGVk IEJ5dGU= IHZpdHJv IE1haWRlbg== IGxhbQ== IEplbm5pbmdz IGdhcm1lbnQ= IFJ1dGdlcnM= IFN0YWZmb3Jk IFdlbGxpbmd0b24= IGludGVybWl0dA== IG5wbQ== IG9yZGVhbA== IHBsdWdnZWQ= b29taW5n aW5pc2hlZA== ZnJhbWV3b3Jr IHRpbWJlcg== IGNhc3M= IDg1MA== aWxlc3M= IFJlZHV4 NzY4 U3RyZQ== IHN1cnBhc3NlZA== d2hlbA== IHBhcmFsbGVscw== IHZlaWw= IEdJ IFJFU1Q= IHJlYWRpbmVzcw== c29ydA== IG1vZGlmeWluZw== IFNsYXRl cnVmZg== IG1hcmJsZQ== IGluZnJhcmVk IGF1ZGl0b3I= IEZBTlRBU1k= IFBvdmVydHk= IFNQRA== ICIo S3k= UkFZ IGV4ZWN1dGlvbnM= IEJldmVybHk= IE1hcnhpc20= IEJ1cnN0 IEthbGk= ZXN0b25lcw== Q2xlYXJseQ== RWxs 44Gn IFByb2NlZWRpbmdz VG9rZW4= SUZJQw== w7Fh Q2VudHJhbA== IEhhbGV5 IERyYW1h IGZvcm1hdGlvbnM= T1JO Qm9va3M= IGRvbWluYXRpbmc= IEZseWVycw== IENvbXBhbmlvbg== IGRpc2NpcGxpbmVk IFl1Z29zbGF2 IFNwZWxscw== IHZlbmdlYW5jZQ== IGxhbmRsb3Jkcw== TGVu IE9ncmU= YW5vaWE= IHBpZXJjaW5n IGNvbmdyZWc= IHNjb3Jlcg== b2JpYQ== IG5pY2tlbA== IExlYXJucw== IHJlam8= IG1hc3RlcnBpZWNl Rmxhc2g= IGluaGFiaXRlZA== IE9wZW5HTA== IER1ZA== IElDTw== IGFydGVy IHBsdXI= IG1hc3Rlcnk= IGxvbmdzdGFuZGluZw== c3RlZA== IHdpbmVz IHRlbGV2aXNlZA== IFNocmluZQ== IEJheWVybg== IOKTmA== IGVuY2xvc3VyZQ== am9obg== IHByb3BoZXRz IFJlc3VycmVjdGlvbg== IE9yZGVycw== IHVuZXZlbg== cmFscw== IGR3aW5k IExhaA== IFNsb3Zlbg== Mzc4 IGluc2lzdGVuY2U= YWZmbGU= IENsb25l IGhhcmRzaGlw IENvbmdyZXNzbWFu IHBsZWFk IHJldmlld2Vycw== IGN1cmVk IDE5MzU= YXNsZXk= ZmFrZQ== IFRoaW5raW5n eWRpYQ== UEFSVA== IERvdGE= b2l0 IHdoaXBwZWQ= IGJvdW5jaW5n IEhpc3Bhbmljcw== Y29taW5ncw== IGNhbm5hYmlu IENoYW1iZXJz IFphY2s= T3B0aW9uYWw= IGNvYXRz IHByb3dlc3M= IE5vcnRvbg== IHBsYWlubHk= IGZyZWlnaHQ= IGluaGliaXRpb24= IGNsYW0= IDMwMw== a2Vm YWxlaWdo THVrZQ== IHBzeWNobw== YXRvcml1bQ== TUVE IHRyZWF0aWVz IGluZGlzYw== IGRj T1BT IHJlc2lsaWVudA== IEludGVyc3RhdGU= IHNsYWNr IG11bmRhbmU= IGVzdGFibGlzaGVz MzU5 IHN0cmFpbmVk IG5vbmQ= U3Vz IGNhc3Rl YXJhdGU= aWV2aW5n IHVuZmFpcmx5 IHBhcnNlcg== b25pYWw= dXJzaXZl Vmlh IE90dG8= IEF1dGhvcml0aWVz c3Ryb2tl S1I= IE1lcmN5 IGZ1cm5pc2hlZA== IG91dHNldA== IG1ldGlj MTk4Mg== b2xpdGhpYw== IFRlbnQ= b2dpY2Fs IEFpcmNyYWZ0 IGhpZGVz IEJlY2FtZQ== IGVkdWNhdG9ycw== cmVhY2hpbmc= IHZvbGF0aWxpdHk= IHRvZGRsZXI= IE5BU0NBUg== IFR3ZWx2ZQ== IEhpZ2hsaWdodHM= IGdyYXBl IHNwbGl0cw== IHBlYXNhbnQ= IHJlbmVn IE1TSQ== VGVtcA== c3RhcnM= IHRyZWs= IEh5ZGU= YmluZGluZw== IHJlYWxpc20= IG94aWRl IEhvcw== IG1vdW50cw== IGJpdGluZw== IGNvbGxhcHNpbmc= IHBvc3RhbA== IG11c2V1bXM= IGRldGFjaGVk IHJlc3BlY3Rpbmc= IG1vbm9wb2w= IHdvcmtmbG93 IENha2U= VGVtcGxhdGU= IE9yZ2FuaXNhdGlvbg== IHBlcnNpc3RlbmNl MzY5 Q29taW5n QnJhZA== IHJlZHVuZGFudA== IEdUQQ== IGJlbmRpbmc= IHJldm9rZWQ= IG9mZmVuZGluZw== IGZyYW1pbmc= IHByaW50Zg== Q29tbXVu bWVtYmVycw== T3V0c2lkZQ== IGNvbnN0cnVlZA== IGNvZGVk Rk9SRQ== IGNoYXN0 Q2hhdA== SW5kaWFu IFlhcmQ= PyEi IFBvcnRz IFhhdmllcg== IFJFVA== Jy4i IEJvYXQ= aXZhdGVk aWNodA== dW1lcmFibGU= RHM= IER1bm4= IGNvZmZpbg== IHNlY3VyZWx5 IFJhcHRvcnM= IEJlcw== SW5zdGFsbGF0aW9u IGluY2VwdGlvbg== IEhlYWx0aHk= ZW5kYW50cw== IHBzeWNob2xvZ2lzdHM= IFNoZWlraA== Y3VsdHVyYWw= IEJsYWNrQmVycnk= c2hpZnQ= RnJlZA== b2NoZQ== IGNha2Vz IFNFTw== IEdpYW4= IEFzaWFucw== b2dnaW5n ZWxlbWVudA== IHB1bmRpdHM= IFZhdWdo IEdhdmlu IGhpdHRlcg== IGRyb3duZWQ= IGNoYWxr IFppa2E= IG1lYXNsZXM= ODAy 4oCmLi4= IEFXUw== XSI= IGRpc3RvcnQ= IE1hc3Q= IGFudGlib2RpZXM= IE1hc2g= TWVtb3J5 IFVnYW5kYQ== IFByb2I= IHZvbWl0aW5n IFR1cm5z IG9jY3VweWluZw== IGV2YXNpb24= IFRoZXJhcHk= IHByb21v IGVsZWN0cg== IGJsdWVwcmludA== IERyZQ== cHJpY2Vk IERlcG90 IGFsbGV2aWF0ZQ== IFNvbWFsaQ== bWFyZw== bmluZQ== IG5vc3RhbGdpYQ== IFNoZXBoZXJk IGNhdmFscnk= IHRvcnBlZA== IEJsb29keQ== eGI= IHNhbms= IGdvYWx0 cmVwb3J0cHJpbnQ= ZW1iZWRyZXBvcnRwcmludA== Y2xvbmVlbWJlZHJlcG9ydHByaW50 IEluaXRpYWxseQ== IEZpc2NoZXI= IG5vdGV3b3J0aHk= Y2Vybg== IGluZWZmaWNpZW50 cmF3ZG93bmxvYWQ= cmF3ZG93bmxvYWRjbG9uZWVtYmVkcmVwb3J0cHJpbnQ= Y2F0aW9u IER5bmFzdHk= bGFn REVT IGRpc3RpbmN0bHk= IEVzdG9uaWE= IG9wZW5uZXNz IGdvc3NpcA== cnVjaw== V2lkdGg= IElicmFoaW0= IHBldHJvbGV1bQ== IGF2YXRhcg== IEhlZA== YXRoYQ== IEhvZ3dhcnRz IGNhdmVz Njc4 IHNhZmVndWFyZA== IE1vZw== aXNzb24= IER1cmhhbQ== c2xhdWdodA== IEdyYWR1YXRl IHN1YmNvbnNjaW91cw== IEV4Y2VsbGVudA== IER1bQ== LS0tLS0= IHBpbGVz IFdPUks= IEdhcm4= IEZvbA== IEFUTQ== IGF2b2lkcw== IFR1bA== IGJsZWFr RUxZ aXZpc3Q= bGlnaHRseQ== UGVycw== IERvYg== IExT IGluc2FuaXR5 zrU= YXRhbGll RW5sYXJnZQ== IHR3aXN0cw== IGZhdWx0eQ== IHBpcmFjeQ== IGltcG92ZXI= IHJ1Z2dlZA== IEZhc2hpb24= IHNhbmRz Jz8= c3dpY2s= IG5hdGl2ZXM= IGhlbg== IE5vaXNl 44OX IGdyZWVucw== IGZyZWV6ZXI= IGR5bmFzdHk= IEZhdGhlcnM= IE5ld2Fyaw== IGFyY2hhZW9sb2dpY2Fs IG90 b2Jhcg== IGJsb2NrYWRl IGFsbGVyZw== TFY= IGRlYml0 IFJGQw== IE1pbHRvbg== IFByZXNzdXJl IHdpbGxpbmdseQ== IGRpc3Byb3BvcnRpb25hdGU= IG9wcHJlc3NpdmU= IGRpYW1vbmRz IGJlbG9uZ2luZ3M= MTk3MA== IGJlbGxz IGltcGVyaWFsaXNt IDIyNw== IGV4cGxvZGluZw== IEVjbGlwc2U= IDE5MTk= IHJhbnQ= IG5vbWluYXRpb25z MzQ3 IHBlYWNlZnVsbHk= cmljYQ== IEZVQ0s= IHZpYnJhdGlvbg== bWFsaW5r IHJvcGVz IEl2YW5rYQ== IEJyZXdlcnk= IEJvb2tlcg== IE93ZW5z Z29lcnM= U2VydmljZXM= IFNuYXBl IDE5MQ== Mzk1 IDI5OQ== anVzdGljZQ== IGJyaQ== IGRpc2Nz IHByb21pbmVudGx5 IHZ1bGdhcg== IHNraXBwaW5n bHZlcw== IHRzdW5hbWk= Mzc0 IFVydWc= IEVpZA== cmVjYXRlZA== cGhlbg== IGZhdWx0cw== IFN0YXJ0ZWQ= OTUw IHBp IGRldGVjdG9y IGJhc3RhcmQ= IHZhbGlkYXRlZA== U3BhY2VFbmdpbmVlcnM= T1VSQ0U= ICh+ IHVuc3Vy IGFmZmlybWVk IGZhc2Npc20= IHJlc29sdmluZw== IENoYXZleg== IEN5bg== IGRldHJhY3Q= TG9zdA== IHJpZ2dlZA== IGhvbWFnZQ== IEJydW5v NTU1 ZWNh IHByZXNzZXM= IGh1bW91cg== IHNwYWNpbmc= ICcv b2xraWVu Q291bg== T1BFUg== VHJl U29u IENhbWJvZGlh aWVycmU= bW9uZw== b3p5 IGxpcXVpZGl0eQ== IFNvdmlldHM= IEZlcm5hbmRv IDIyOQ== IHNsdWc= IENhdGFsYW4= ZWxlY3RyaWM= IHNjZW5lcnk= IEhlYXJ0aA== IGNvbnN0cmFpbmVk IGdvYWxpZQ== IEd1aWRlbGluZXM= IEFtbW8= IFBlYXJzb24= IHRheGVk IGZldHVz UmVzcG9uc2U= IEFsZXhpcw== dGhpYQ== R3V5 IHJlY29uc3RydWN0 IGV4dHJlbWVz IGNvbmNsdWRpbmc= IFBlZw== b29rcw== IGRlZHVjdGlvbnM= Um9zZQ== IGdyb3VuZGJyZWFraW5n IFRhcmc= 44OB IFJldmU= cmVzb3VyY2U= IG1vb25z IGVsZWN0cm9tYWduZXRpYw== IGFtaWRzdA== IFZpa3Rvcg== TkVTUw== QkFDSw== IGNvbW11dGU= IEFuYWhlaW0= IGZsdWN0dWF0aW9ucw== NjQw IG5vb2RsZXM= IENvcGVuaGFnZW4= IFRpZGU= IEdyaXp6 IFNFRQ== IHBpcGVsaW5lcw== IHNjYXJz ZW5kbw== YWd1cw== IEVURg== LyM= IEJlY29tZQ== NDQ4 IHZpc2M= IFJlY29tbWVuZGVk IGp1bXBlcg== IGNvZ25pdGlvbg== IGFzc2Fzc2lu IHdpdG5lc3Npbmc= IFNldHVw IGxhYw== dmlt SVNN cGFnZXM= U1NM MzU4 IGFkamVjdA== aW5kdXN0cmlhbA== bG9yZQ== Y2hlcnk= IGdsaXR0ZXI= IGNhbGY= RmxvcmlkYQ== IHNwb2lsZXJz IHN1Y2NlZWRz IGNoYW50aW5n IHNsb2dhbnM= IFRyYWN5 VmlzaXQ= cm9sb2d5 IG1vcm5pbmdz IGxpbmVhZ2U= IHNpcA== IGludGVuc2VseQ== IGZsb3VyaXNo IFNsZWVwaW5n IEZlbQ== b3Jwb3I= IEtsYW4= IERhcnRo aGFjaw== IE5pZWxzZW4= IHR1bW9ycw== IHByb2N1cmVtZW50 IFlvcmtzaGlyZQ== IHJhaWRlZA== S1k= QW5uYQ== IC8vWw== IERpc29yZGVy IE11c3Rhbmc= IFdlbg== IFRyeWluZw== c3E= IGRlbGl2ZXJpZXM= IHNodXR0ZXI= IGNlcmVicmFs IGJpcG9sYXI= IENO bGFzcw== amV0 IGRlYmF0aW5n Pjo= IGVhZ2xl Z3JhZGVz IERpeG9u VUdD TUFT IERyYWNv IE1hY2hpbmVz YWZmZXI= IGVtYW4= wrI= cHJvbg== IEd5bQ== IGNvbXBhcmF0aXZlbHk= IFRyaWJ1bmFs UFJP IGxleA== IGZlcnRpbGU= IGRlcHJlc3Npbmc= IHN1cGVyZmljaWFs ZXNzZW50aWFs IEh1bnRlcnM= Z3A= IHByb21pbmVuY2U= TGliZXI= IEFuY2VzdA== b3RlY2hub2xvZ3k= IG1vY2tpbmc= IFRyYWZm lpo= TWVkaXVt SXJhcQ== IHBzeWNoaWF0cmlzdA== UXVhbnRpdHk= IExlY3Q= IG5vaXN5 NTIw R1k= IHNsYXBwZWQ= IE1UVg== IHBhcmE= cHVsbA== TXVsdGlwbGU= YXNoZXI= IG5vdXI= IFNlZw== U3BlbGw= dm91cw== b3JkaWFs U2VuaW9y IEdvbGRiZXJn IFBsYXNtYQ== bmVlZA== IG1lc3Nlbmdlcg== ZXJldA== IHRlYW1lZA== IGxpdGVyYWN5 IExlYWg= IERveWxl IGVtaXR0ZWQ= VVg= IGV2YWRl IG1hemU= IHdyb25nbHk= IExhcnM= IHN0ZXJlb3R5cGU= IHBsZWRnZXM= IGFyb21h IE1FVA== IGFjcmU= IE9E IGZm IGJyZXdlcmllcw== IEhpbHRvbg== dW5kbGU= IEthaw== IFRoYW5rZnVsbHk= IENhbnVja3M= aW5jdGlvbnM= IEFwcGVhcnM= IGNvZXI= IHVuZGVybWluZWQ= cm92ZXJz QW5kcmU= IGJsYXpl dW1lcnM= IGZhbWluZQ== YW1waGV0YW1pbmU= dWxrYW4= QW1vdW50 IGRlc3BlcmF0aW9u d2lraXBlZGlh ZGV2ZWxvcG1lbnQ= IENvcmludGg= dXNzaWE= SmFja3Nvbg== TEk= TmF0aXZl UnM= T2hpbw== IEthdGhsZWVu Rm9ydHVuYXRlbHk= IGF0dGVuZGFudA== IFByZWZlcnJlZA== IERpZG4= IFZz TWlz IHJlc3BvbmRlbnQ= IGJvdW4= c3RhYmxl IHBhdmVk IHVuZXhwbA== IENoZW5leQ== TE0= IEN1bGw= Ymxvd24= IGNvbmZyb250aW5n b2Nlc2U= c2VydmluZw== V2k= IExpdGh1YW5pYQ== YW5uaQ== IHN0YWxr aGQ= IHZlbmVy QVBI eW5jaHJvbm91cw== VVJS dW1hYmx5 aGlzdG9yaWM= SGFsZg== SGF5 IHJlc2lsaWVuY2U= c3BlY3Rpb24= IGFiYW5kb25pbmc= T2Jz IERlYmJpZQ== IGdyYWRpZW50 IFBsYWludA== IENhbmFs QVJDSA== IGV4cGFuc2l2ZQ== IGZ1bmc= IGJvdW5jZWQ= VW5k IHByZWNhdXRpb25z IGNsYXJpZmljYXRpb24= IGRhZ2dlcg== IGdyaXBz IMK1 IFJpdmVyYQ== IFVuZGVhZA== aXNpdGVz IEZJUlNU w7Fv YXVkaQ== IGhvc3RhZ2Vz IGNvbXBsaWFudA== IGFsdW1uaQ== U2V2ZW4= IGN5YmVyc2VjdXJpdHk= ZWl0aGVy Q29sbGVjdA== IGludmFyaWFibHk= IFNvY2k= IGxhd21ha2Vy IGFsZQ== IFBlcnNvbmFsbHk= TmF6aQ== IGN1c3RvbWl6YXRpb24= IFByb2M= IFNhc2thdGNoZXdhbg== ZWF0dXJpbmc= IHNwYXJlZA== IGRpc2NvbnRpbnVlZA== IGNvbXB1dGF0aW9uYWw= IE1vdG9yb2xh IHN1cHJlbWFjaXN0 Z292ZXJubWVudGFs IHBhcmFkaXNl IERvd25pbmc= IE5pa29u IGNhdGFseXN0 YmVycmE= VG9yb250bw== ODc1 YmV0YQ== IE1hY3Jvbg== IHVucmVhbGlzdGlj dmVjdG9y IFZlaGljbGVz aXRpdmVuZXNz IFJW IENvbGJlcnQ= c2lu b2pp ZW50aW4= IEtyaXNo aGVsbG8= ZmZpZWxk b2t5 IFRhdGU= IG1hcGxl IGFpZHM= Y2hlbWljYWw= MzM0 bnV0cw== IFdhcnA= IHh4 IFJvYmI= dW1lcm91cw== Xy1f ZnRpbWU= IFZX IHdpbmdlcg== IERvbWU= dG9vbHM= IFBW IEdlb3JnZXRvd24= IGdlYXJlZA== IGppaGFkaXN0cw== IGNw IHN0ZXJvaWRz TW90aGVy Y2xlcm9zaXM= IERSTQ== bmVzaWE= IGxpbmdlcg== IGltbWVyc2l2ZQ== IENPVU4= IG91dHdlaWdo ZW5zdWFs QmFuZA== IHRyYW5zZm9ybXM= bWF0Y2hlZA== cHNvbnM= IEp1ZGljaWFs ZmFjdG9y IHJlZmVycmFs IG9kZGx5 IFdlbmdlcg== QnJpbmc= IEJvd3M= NjAy SUNMRQ== IGxpb25z IEFjYWRlbWlj IFRob3Ju IFJhaWRlcg== a2VmZWxsZXI= U3RvcmFnZQ== TG93ZXI= IE9ydA== IEVxdWFsaXR5 QUxU IFNPQw== VHlwZXM= IGx5bg== IEFzc2V0 Y29hdA== VFBQ Q1ZF IFBpb25lZXI= YXBwbGljYXRpb24= TW9kZXJu IEhL RW52aXJvbm1lbnQ= QWxyaWdodA== UmFpbg== SVBQ IFNoaWl0ZQ== IG1vdW5k IEFiaWxpdGllcw== Y29uZGl0aW9u U3RhZmY= IGNvbXBldGVuY2U= IE1vb3I= IERpYWJsbw== IHdpdGhoZWxk IG9zdGVuc2libHk= IEJyb20= IG1zZw== IGRlbm9taW4= IFJlZmVyZW5jZXM= IEZQ IHBsdW5nZWQ= IHBhbXBo bW92aW5n Y2VudHJhbA== IGRvd25yaWdodA== IGZhZGluZw== VGFs VHlw IFRoeQ== dWtlcw== aXRoZQ== IG92ZQ== IGJhdHRsZWQ= IHNlYWZvb2Q= IGZpZ3Vy IFJE Y3JvcA== IHNxdWFkcw== e1w= 4Lk= IEVo IGludGVydmlld2luZw== IFFpbg== IGFzcGlyaW5n UExJQw== IGNsYXVzZXM= IEdhc3Q= IE5pcg== IGx1Z2dhZ2U= IGhvc2U= IHN5c3RlbWQ= IGRlc2NlbmRpbmc= IFJldmlzZWQ= IFJhaWxz YWxpZ24= NzA5 MzM3 IGZ1Zw== Y2hhcmdpbmc= dGFncw== IHV0ZXI= a2lzaA== V0FSTklORw== NDkw cHJvZml0cw== IHZveWFnZQ== IGFjZQ== IFZhbmd1YXJk IFRhbmtz IE11aw== IDIyNg== U2FmZQ== QXJtb3I= IHZvbGNhbmlj IHdvbWI= IE1JTA== IGJlZ2lubmVy IFJlY29nbg== IEFBUA== UExBWQ== KSE= IGRldGVjdGluZw== Y24= IGJyZWFjaGVz QmFzaWNhbGx5 IFBhZw== IE11bmljaXBhbA== IEluZGll IExhZg== IERpc2FibGU= IE9sc29u IHJlc3RyYWluZWQ= IHJ1bGluZ3M= IGh1bWFuZQ== ZXZlbnRz IENpbmVtYQ== ZGlzcGxheVRleHQ= IEhhdGNo YWN0aW9uRGF0ZQ== b25uYWlzc2FuY2U= IGFzc2F1bHRpbmc= IEx1Zw== Q0hBVA== IHZpZ29yb3Vz IFBlcnNl IGludG9sZXJhbmNl IFNuYXBjaGF0 IFNoYXJrcw== IGR1bW15 IERpYWdu IEd1aXRhcg== aW1ldGVycw== NDAz UkVH QXg= IHNlcGFyYXRlcw== IE1haG0= IHR2 amFo T09M Q2lyYw== IFdpbmRzb3I= dXNzaWFu IGludHVpdGlvbg== IGRpc2RhaW4= IERvbm92YW4= IDIyMQ== RW1i IGNvbmRlbW5pbmc= IGdlbmVyb3NpdHk= enp5 IHBhbnRpZXM= IFByZXZlbnQ= QWN0aW9uQ29kZQ== QU5B MzQy ZXh0ZXJuYWxBY3Rpb25Db2Rl IHNwZWNpZnlpbmc= IGNyeXN0YWxs SmVyZQ== IHJ1cHQ= IEFwcHJlbnRpY2U= IHByb2ZpbGluZw== 0Lo= U3RyaWtl IHNpZGVsaW5l IG9ibGlnYXRlZA== IG9jY3VsdA== IGJ1cmVhdWNyYXRpYw== YW50aWNhbGx5 cnVwdGVk bmVnYXRpdmU= IEV0aGlvcGlh IENpdmlj IGluc2lkZXJz ZWxpZ2libGU= IFRWcw== IEJBUg== IFRJ aW9sb2dpc3Q= IEFJUg== IHN1YnN0aXR1dGVk QXJhYg== IFNhdWw= IFlvZw== cHJlbQ== IGJ1aWxkZXJz IHN0YXRpb25hcnk= IGRvdWJ0ZnVs IHZpZ29yb3VzbHk= IHRocmlsbGluZw== UGh5c2ljYWw= IENhcmV5 IEh5ZHJh Z2VvbmluZw== IFNseQ== eXRvbg== IGJvcnJvd2Vycw== IFBhcmtpbnNvbg== IOs= IEphbWFpY2E= IHNhdGly IGluc3VyZ2VudHM= IEZpcm0= IGlzb3Q= IEthcm4= b3VybmluZw== YWtlbnM= ZG9jcw== bGl0dGxl IE1vbmFjbw== Q0xBU1M= VHVya2V5 THk= IENvbmFu YXNzaWM= IHN0YXJyZWQ= IFBhY2Vycw== ZXRpZXM= IHRpcHBpbmc= TW9vbg== IFJ3 c2FtZQ== IGNhdml0eQ== IGdvb2Y= IFpv U2hvY2s= dW1tZXI= IGVtcGhhc2l6ZXM= IHJlZ3JldHQ= IG5vdmVsdHk= IGVudnk= IFBhc3NpdmU= cnc= NTA1 IGluZGlmZmVyZW50 IFJpY2E= IEhpbXNlbGY= IEZyZWRkaWU= IGFkaXA= 5LiA IGJyZWFrb3V0 IGh1cnJpZWQ= IEh1YW5n IERpc2s= IHJvYW1pbmc= Pz8/Pz8tPz8/Pz8t VVY= IFJpY2t5 IFNpZ21h IG1hcmdpbmFsaXplZA== IGVkaXRz IDMwNA== bWVtb3J5 IHNwZWNpbWVu Mjkz 44Gv IHZlcnRpY2FsbHk= IGF1ZGl0aW9u IEhlY2s= IGNhc3Rlcg== IEhvbGRpbmdz YWRhbA== IENyb24= IExpYW0= IGRlZmxlY3Q= UGljaw== IERlYnVn UkVG IHZlcnNhdGlsaXR5 b3RoZXM= Y2xhc3NpZmllZA== IE1haGFy IEhvcnQ= Q291bnRlcg== c3Rhc3k= bm90aWNlZA== MzMx IFNoaW0= ZnVjaw== IEJpZQ== IGFpcmluZw== IFByb3RlaW4= IEhvbGRpbmc= IHNwZWN0YXRvcnM= aWxpYXRlZA== IFRoYXRjaGVy bm9zaXM= 44O844Oz VGVsZQ== Qm9zdG9u IFRlbXBs c3RheQ== IGRlY2xhcmF0aW9ucw== NDc5 Vm9sdW1l IERlc2lnbmVy IE92ZXJ3YXRjaA== aWRhZQ== IG9ud2FyZHM= IG5ldHM= IE1hbmlsYQ== cGFydGljdWxhcmx5 IHBvbGl0aWM= b290aGVy IHBvcnRyYWl0cw== IHBhdmVtZW50 Y2ZmZmY= IHNhaW50cw== IGJlZ2lubmVycw== RVNQTg== IHNob3J0Y29taW5ncw== 4pWQ4pWQ IGNvbWV0 IE9yZ2FuaWM= cXVlbA== IGhvc3BpdGFsaXplZA== QnJlYWs= IHBlZWw= ZHlsaWI= YXNweA== dXJhbmNlcw== IFRJTQ== UGc= IHJlYWRhYmxl IE1hbGlr IG11enpsZQ== IGJlbmNobWFya3M= ZGFs IFZhY2M= IEhpY2tz NjA5 IEJpYmxpY2Fs aGVuZw== IG92ZXJsb2Fk IENpdmlsaXphdGlvbg== IGltbW9yYWw= IGZyaWVz 44KS IHJlcHJvZHVjZWQ= IGZvcm11bGF0aW9u anVn aXJleg== Z2Vhcg== IGNvYWNoZWQ= TXBTZXJ2ZXI= IFNK IEt3 SW5pdA== ZGVhbA== IE9ybw== IExva2k= IFNvbmdz IDIzMg== IExvdWlzZQ== YXNpb25hbGx5 IHVuY29uZA== b2xseXdvb2Q= IHByb2dyZXNzaXZlcw== IEVub3VnaA== IERvZQ== IHdyZWNrYWdl IGJydXNoZWQ= IEJhc2VUeXBl IHpvbmluZw== aXNoYWJsZQ== aGV0aWNhbGx5 IENhdWN1cw== IEh1ZQ== IGthcm1h IFNwb3J0aW5n IHRyYWRlcg== IHNlZW1pbmc= IENhcHR1cmU= NDMw YmlzaA== IHR1bmVz IGluZG9vcnM= IFNwaGVyZQ== IERhbmNpbmc= VEVSTg== IG5vYg== IEdTVA== bWFwcw== IHBlcHBlcnM= Rml0 IG92ZXJzZWVz IFJhYmJp IFJ1bGVy dmVydGlzaW5n b2ZmaWNl eHh4 IHJhZnQ= Q2hhbmdlZA== IHRleHRib29rcw== TGlua3M= IE9tbg== 44CR IGluY29udmVuaWVuY2U= IERvbmV0c2s= PX4= IGltcGxpY2l0bHk= IGJvb3N0cw== IEJvbmVz IEJvb20= Q291cnRlc3k= IHNlbnNhdGlvbmFs QU5Z IGdyZWVkeQ== ZWRlbg== IGluZXhwZXI= IExlcg== IFZhbGU= IHRpZ2h0ZW4= IEVBUg== IE51bQ== IGFuY2VzdG9y U2VudA== IEhvcmRl dXJnaWNhbA== YWxsYWg= IHNhcA== YW1iYQ== IFNwcmVhZA== dHdpdGNo IGdyYW5kc29u IGZyYWN0dXJl IG1vZGVyYXRvcg== IFNldmVudGg= IFJldmVyc2U= IGVzdGltYXRpb24= Q2hvb3Nl IHBhcmFjaA== IGJhcnJpYw== 44CQ IGNvbXBhc3M= IGFsbGVyZ2lj 4oCV T1RIRVI= ZXJyaWxsYQ== IHdhZ29u IHppbmM= IHJ1YmJlZA== IEZ1bGxlcg== IEx1eGVtYm91cmc= IEhvb3Zlcg== IGxpYXI= IEV2ZW5pbmc= IENvYmI= ZXN0ZWVt IHNlbGVjdG9y IEJyYXds aXNhbmNl IEVr IHRyb29w IGd1dHM= IEFwcGVhbA== IFRpYmV0YW4= IHJvdXRpbmVz IE1lbnQ= IHN1bW1hcml6ZWQ= c3RlYW1hcHBz IHRyYW5xdQ== IDE5Mjk= b3Jhbg== IEF1dGhlbnQ= IGdtYXh3ZWxs IGFwcHJlaGVucw== IHBvZW1z IHNhdXNhZ2U= IFdlYnN0ZXI= dXJ1cw== IHRoZW1lZA== IGxvdW5nZQ== IGNoYXJnZXI= U3BvaWxlcg== IHNwaWxsZWQ= aG9n IFN1bmRlcg== IEFpbg== IEFuZ3J5 IGRpc3F1YWw= IEZyZXF1ZW5jeQ== IEV0aGVybmV0 IGhlbHBlcg== UGVyY2VudA== IGhvcnJpZnlpbmc= IGFpbA== IEFsbGFu RUVF IENyb3NzaW5n NDQ5 IGhvbG9n IFB1enpsZXM= IEdvZXM= ZXJlbm4= NjA0 44GP IFJhZmFlbA== IGF0dGVu IEVtYW51ZWw= IHVwcm8= IFN1c3A= UHN5Y2g= IFRyYWluZXI= IE5FUw== IEh1bnRz YmVjdWU= IGNvdW5zZWxvcg== UnVsZQ== IHRveGlucw== IGJhbm5lcnM= cmlmaWNl IGdyZWV0aW5n IGZyZW56eQ== IGFsbG9jYXRl ICop ZXhwcg== NTAz IENoaWNr IFRvcm4= IGNvbnNvbGlkYXRpb24= IEZsZXRjaGVy c3dpdGNo ZnJhYw== Y2xpcHM= IE1jS2lu IEx1bmFy TW9udGg= SVRDSA== IHNjaG9sYXJseQ== cmFwZWQ= Mzk4 IDE5MTA= IGVncmVn IGluc2VjdXJl IHZpY3RvcmlvdXM= Y2ZmZmZjYw== IHNpbmdsZWQ= IGVsdmVz IFdvbmQ= YnVyc3Q= IGNhbW91Zmw= IEJMQUNL IGNvbmRpdGlvbmVk 54k= YW5zd2VyZWQ= IGNvbXB1bHNvcnk= YXNjaXN0 IHBvZGNhc3Rz IEZyYW5rZnVydA== Ym5i IG5lb2xpYmVyYWw= IEtleWJvYXJk IEJlbGxl d2FybQ== IHRydXN0cw== IGluc3VyZWQ= IEJ1Y2M= dXNhYmxl NjA3 IFBsYWlucw== IDE4OTA= IHNhYm90YWdl IGxvZGdlZA== ZmVsdA== IGdh IE5hcmM= IFNhbGVt IHNldmVudHk= IEJsYW5r cG9ja2V0 IHdoaXNwZXI= IG1hdGluZw== b21pY3M= IFNhbG1hbg== IEthZA== IGFuZ2VyZWQ= IGNvbGxpc2lvbnM= IGV4dHJhb3JkaW5hcmlseQ== IGNvZXJjaW9u R2hvc3Q= YmlyZHM= 6IA= a29r IHBlcm1pc3NpYmxl YXZvcmFibGU= IHBvaW50ZXJz IGRpc3NpcA== YWNp IHRoZWF0cmljYWw= IENvc21pYw== IGZvcmdldHRpbmc= IGZpbmFsaXplZA== 5aSn eW91dA== bGlicmFyeQ== IGJvb21pbmc= IEJlbGlldmU= IFRlYWNoZXI= IExpdg== IEdPT0RNQU4= IERvbWluaWNhbg== T1JFRA== IFBhcnRpZXM= IHByZWNpcGl0YXRpb24= IFNsb3Q= Um95 IENvbWJpbmVk IGludGVncmF0aW5n IGNocm9tZQ== IGludGVzdGluYWw= IFJlYmVsbA== IG1hdGNodXBz IGJsb2NrYnVzdGVy IExvcmVu IExldnk= IHByZWFjaGluZw== IFNlbmRpbmc= IFB1cnBvc2U= cmF4 Zmlm IGF1dGhvcml0YXRpdmU= IFBFVA== YXN0aWNhbA== IGRpc2hvbg== IGNoYXR0aW5n ICIkOi8= Q29ubmVjdGlvbg== IHJlY3JlYXRl IGRlbGlucXU= IGJyb3Ro IERpcnR5 IEFkbWlu em1hbg== IHNjaG9sYXJzaGlwcw== IDI1Mw== Y29udGFjdA== YWxzYQ== NzY3 Y3JlZW4= YWJiYWdl IDE5MTU= IGJsZW5kZWQ= IGFsYXJtZWQ= TGFuZ3VhZ2U= MzU2 IGJsZW5kcw== IENoYW5nZWQ= V29sZg== IGhlcGF0 Q3JlYXRpbmc= IHBlcnNlY3V0 IHN3ZWV0bmVzcw== YXJ0ZQ== IGZvcmZlaXR1cmU= IFJvYmVydG8= aW1wcm8= TkZM IE1hZ25ldA== RGV0YWlsZWQ= IGluc2lnbmlmaWNhbnQ= IFBPTElU IEJCUQ== IENQUw== IHNlYXc= YW1pbmVy bUw= ZW5kaWY= ZmluYWxz IDI2NQ== dWlzaA== IH0p IFByb2JsZW1z IGVtYmxlbQ== IHNlcmlvdXNuZXNz IHBhcnNpbmc= IHN1YnN0aXR1dGlvbg== IHByZXNzdXJlZA== IHJlY3ljbGVk YWxlYg== UnVieQ== IHByb2ZpY2llbmN5 RHJpdmVy IFdlc3Rlcg== Oic= QUZUQQ== IG1hbnRsZQ== IENsYXl0b24= ZmxhZw== IHByYWN0aXRpb25lcg== Y292ZXJlZA== IFN0cnVjdA== YWRkYWZp NDI1 IFRvd25zaGlw IEh5ZHJv TG91aXM= MzQz IGNvbmRv IFRhbw== IHV0aWxpemF0aW9u IG5hdXNlYQ== IERlbXM= cmlkZ2Vz cGF1c2U= IGZvcm11bGFz IGNoYWxsZW5nZXI= Mzc2 IGRlZmVjdGl2ZQ== IFJhaWx3YXk= IFB1Yk1lZA== IHlvZ3VydA== bGJz IE5vcmZvbGs= T1BF IE1vb2R5 IGRpc3RyaWJ1dG9y IHNjcm9sbHM= IGV4dHJhY3Rz U3Rhbg== IHZpYWJpbGl0eQ== IGV4cG9zZXM= IHN0YXJ2YXRpb24= IFN0ZXBz IERvZGQ= ZmV3 U1RE MzMy IGNsb3N1cmVz IGNvbXBsZW1lbnRhcnk= IFNhc2hh dW1weQ== IG1vbmV0 IGFydGljdWxhdGU= IERvY3Q= a2lsbGVy IHNjcmlt IDI2NA== IHByb3N0aXR1dGVz IHNldmVyZWQ= IGF0dGFjaG1lbnRz IGNvb2xlZA== TGV2 IEZhbGs= ZmFpbA== IHBvbGljZW1hbg== IERhZw== IHByYXllZA== IEtlcm5lbA== IGNsdXQ= IGNhdGg= IGFub21hbHk= U3Rvcm0= ZW1ha2Vy IEJyZWFrZmFzdA== dWxp b2lyZQ== Sko= aHo= T3BlcmF0aW9u IFNpY2s= MzU0 IEd1YXRlbWFsYQ== UmF0ZQ== IGV4cG9zdXJlcw== ZmFjZXM= IEFyY2hhZQ== cmFm IE1pYQ== IDIwMjU= IG9wYXF1ZQ== IGRpc2d1aXNlZA== IEhlYWRxdWFydGVycw== U2Fo IHBvdHM= OTc4 IE1hbGY= IGZyb3duZWQ= IHBvaXNvbm91cw== IENvbnZlcnM= ZWVrcw== IGNyYWI= LiIi IHRyZWFzb24= IHJhbmM= IGVzY2FsYXRpbmc= IHdhcnI= IG1vYnM= IGxhbXBz IFN1bnNoaW5l IEJydW5zd2ljaw== UGhvbmVz IHNwZWxsZWQ= IFNraXA= IDIwNTA= IDE5MTE= IFBsdXRv IEFtZW5k IG1lYXRz Mzg3 IHN0b21w IFpob3U= IExldmlhdGhhbg== IEhhemFyZA== YWR2 IE9yd2VsbA== IGFsb3Vk IGJ1bXBlcg== IEFuYXJjaA== dWJ1bnR1 IFNlcmlvdXM= Zml0dGluZw== IE9wdGlvbmFs IENlY2ls UkVBTQ== IHNlcm90b25pbg== IGN1bHRpdmF0ZQ== YWdvZ3Vl fVw= IG1vc3F1ZXM= IFN1bm55 IHJlYWN0aXZl cmV2b2x1dGlvbg== IEx1cA== IEZlZG9yYQ== IGRlZmVuc2VtYW4= IFZJRA== aXN0aW5l IGRyb3duaW5n IEJyb2FkY2FzdGluZw== IHRocmlsbGVy IFNjeQ== IGFjY2VsZXJhdGluZw== IGRpcmVjdHM= b2RpZWQ= YmlrZQ== ZHVyYXRpb24= IHBhaW5mdWxseQ== UmVkZA== IHByb2R1Y3Rpb25z IGdhZw== IHdoaXN0 IHNvY2s= IGluZmluaXRlbHk= IENvbmNlcm4= IENpdGFkZWw= IGxpZXU= IGNhbmRsZXM= b2dlbmVvdXM= YXJnZXI= IGhlYXZlbmx5 aW5mbGFtbWF0b3J5 UGVyZm9ybWFuY2U= Q3M= cnVjdG9zZQ== YXpha2k= IHBlc3NpbQ== IGluZmVyZW5jZQ== IHBvd2Q= IFpvZQ== IHBhaW50cw== IGRheno= cHRh LS0tLS0tLS0tLS0= IGluc3Bpcg== IEV4cGVyaW1lbnRhbA== IEtuaWZl cmVnb3I= Ym9ycw== IHNob3dlcnM= cm9tZWRh IHNhaW50 IGJlbmlnbg== IEppYW5n IGVudmlzaW9uZWQ= IHNocm91ZA== SUZU SE8= IHNodWZm IElDQw== IHNlZ3JlZw== IHJldmlzaXQ= aWdodGhvdXNl TGk= IHN1YnN0cmF0ZQ== IFNlYXM= IFJld2FyZA== IEhlcA== IEJyYXNz c2Jt IGVsaW1pbmF0ZXM= IHN0YW1pbmE= IFZBVA== IExvYW4= IGNvbnN0cmFpbnQ= IGFwcHJvcHJpYXRlZA== IHBlcw== IEFMRQ== cmFuZ2luZw== IDQwNA== Mzky IGludGVsbGVjdHVhbHM= YWNodQ== IHJlc3RydWN0dXJpbmc= IExldmlu IHJ1bmVz IGRlbGlnaHRmdWw= IGNhcmJvaHlkcmF0ZXM= IE1vZGVscw== IEV4cG8= IHRyYW5zcG9ydGluZw== YWxsb2M= IHJpbmdpbmc= U2Ftc3VuZw== IHNjYXJjZWx5 IFVSTHM= IE1BUw== IHByb3RvdHlwZXM= IG5hcnJhdG9y IENQVXM= Y2Ru IEJhcnRvbg== IGRlY2lkZWRseQ== IFNodQ== aXhpcg== b2Npb3Vz IE15c3Q= TmludGVuZG8= IHJldXNl IGZvcmdpdmVu RmV3 aW5pY2Fs bmF0 IHNlYW1sZXNz IEV2YQ== IEVWRQ== IEpP bGFuZGVycw== IHNvZnRlcg== bmVnaWU= IHRyYW5zaWVudA== IG9yYml0YWw= IGZ1bGZpbA== IEtvbQ== SG9wZWZ1bGx5 IGR5bmFtaWNhbGx5 IEh1bmdlcg== 5Zs= IEFybWVuaWE= ZWxtYW4= YmVydG8= IHBpZ2U= IElEcw== bGltaXQ= IHZlaW5z IHNvYXJpbmc= cGFja3M= R29sZGVu IENyYWI= aXN0b3I= IFJQTQ== ICQk Z3Jlc3Npb24= IGppaGFkaXN0 IGdhbWJsZQ== IGNhcmVn IGluZmxhdGVk RmFjZQ== IEZpcmVhcm1z IEVtbWFudWVs 4p0= IHNob2Nrcw== Z3JhYg== IHNwbGVuZA== IEhQVg== YWJvcnRpb24= QWJvdmU= RW50aXR5 cGxheWVycw== IGNvbW1lbmNlZA== dWxlbmNl IGZ1bGZpbGxtZW50 IGVtYm9kaW1lbnRz IFdlbGZhcmU= IGhhaWw= IDxA dHRlbg== IGNhdGNoZXI= IEphemVlcmE= IHZvbGNhbm8= IHN0YWJpbGl6ZQ== IEhhbmRsZXI= IGludGVuc2lmaWVk IEFicmFtcw== IGh1bWlsaWF0aW9u cGFjZWQ= NjA1 IENlbnRPUw== U3BlY2lmaWM= IGhlZWQ= IENBTQ== IEdhbGlsZQ== RGll IGFib2xpc2hlZA== IFRob21zb24= IFRlYWNoZXJz IFdhc3M= am9uZw== IElTQk4= IEFsbGllcw== c2hha2U= 5bc= dmljdA== SG93YXJk IGRlZW0= IGV4Y2VlZGluZ2x5 IFNtYXJ0c3RvY2tz aWJl IGRvb3J3YXk= IGNvbXBldGVk aWdtYXQ= IG5hdGlvbmFsaXN0cw== IGdyb29t IEtlZW4= IGRpc3Bvc2FibGU= ZGVjbA== IFRvbGtpZW4= IFNjaGVtZQ== IGJpb2Q= IGF2aWQ= IEVsb24= YWdhcg== IFRTQQ== Um9tYW4= IGFydGlmaWNpYWxseQ== IGFkdmlzb3Jz WEw= IEluZmVybm8= MzY2 IHRlZGlvdXM= IFBob3RvZ3JhcGh5 IENhcnJpZQ== IHRyb3Bl IFNhbmRyYQ== IGRlY2ltYWw= UXVlZW4= IEd1bmRhbQ== IE9N b3RlY2g= TkJB IDE5MzI= IGVudHJlbmNoZWQ= IE1hcmlvbg== IGZyYXRlcm5pdHk= TGFib3Vy SGVucnk= IGxhdGl0dWRl RWl0aGVy IGVuaGFuY2Vz IFBvdGVudGlhbA== IHNoaW5lcw== aWRhZA== IGJyZWFkdGg= IGNhcGFjaXRpZXM= IPCfmYI= IEJyb254 IHNleGVz IGRpZmZlcmVudGlhdGlvbg== IGhlYXZ5d2VpZ2h0 IFRhag== ZHJh IG1pZ3JhdGU= IGV4aGF1c3Rpb24= IFJVTg== ZWxzaXVz IEN1b21v IGd1aXRhcnM= IGNsb25lcw== IFNvbWV3 IFByeQ== LS0tLS0tLS0tLS0tLQ== IHdhcnJhbnRlZA== Y3ljbGVz IHNhbHZhZ2U= IGRpc2tz UkFOVA== IE5HT3M= IE1hcnRpYW4= IjpbeyI= IGFkZGljdHM= b2p1cmU= aWxsZXQ= IGFtYXppbmdseQ== YXJ0bWVudHM= cGl4ZWw= IEdQVXM= TGF5b3V0 6KM= IFRhbWls IEJhc2ls IGltcGFydGlhbA== IFN0cnVjdHVyZQ== Zm9yaw== YnJ5Y2U= IHJpZGdl IEhhbWJ1cmc= cmlvdXM= IGJsaXR6 Y2lnYXJldHRlcw== IGNhbm5lZA== NDAy IGlyb25pY2FsbHk= IGNvbXBhc3Npb25hdGU= IEhhd2tpbnM= LiM= IENhdGhlZHJhbA== IHJhbGxpZWQ= aW50ZXJuYWw= IHF1b3Rh c3Rha2Vz VEVYVA== bW9t IGNvbXBsZXRlcw== IDIzOA== IHNocnVn 44OR IE5pbnRo IHJldmlzZQ== IFByb3ZpZGVy IHRyZWFjaGVy IHF1YXNp IFBSRVM= IGRlcG9zaXRpb24= IGNvbmZpZGVudGlhbGl0eQ== aXNzb3Jz IGltYmFsYW5jZQ== IHNwYW5uaW5n IGFuZ3VsYXI= IEN1bA== Y29tbXVuaWNhdGlvbg== IE5vcmE= IEdlbml1cw== b3B0ZXI= IHNhY2tlZA== U3BvdA== IGZpbmVseQ== IENIUg== Mjgy d2F2ZXM= UGFsZXN0 IFJvaGluZw== Tkw= 6L8= IHNoaXR0eQ== IFNjYWxpYQ== NDc1 UHJvZ3Jlc3M= IHJlZmVyZW5jaW5n IGNsYXNzcm9vbXM= YWJlZQ== IHNvZA== aGVzaW9u NzA4 IFp1Y2tlcmJlcmc= IEZpbmlzaA== IFNjb3RpYQ== IFNhdmlvcg== IEluc3RhbGxhdGlvbg== YW50aGE= KC0= IDMwMg== IFB1bms= IGNyYXRlcg== eW91dHU= IHJvYXN0 IGluZmx1ZW5jaW5n IGR1cA== IEpS IEdyYXY= IHN0YXR1cmU= IGJhdGhyb29tcw== QXNpZGU= V2lraQ== bWVhbg== IFphaw== IE9uZXM= IE5hdGg= IGh5cGVydA== IGNvbW1lbmNlbWVudA== Q2l2aWw= IG1vZGVyYXRlbHk= IGRpc3RyaWJ1dG9ycw== IGJyZWFzdGZlZWRpbmc= IDk4MA== IFNpaw== IENpZw== IEFNRVI= UklQ IENhcmVlcg== dXN0aW5n IG1lc3NlZA== IGVo IEplbnNlbg== LyQ= IGJsYWNrbWFpbA== IGNvbnZlcnNpb25z IHNjaWVudGlmaWNhbGx5 IG1hbnRyYQ== cGF5aW5n IGl2b3J5 IENvdXJ0cw== T1VHSA== YXVudGxldA== U2VyaWFs QnJvdw== IEh1bmRyZWRz MzIz IHBlZQ== IGxpbnV4 IHN1Ym1lcg== IFByaW5jaXBhbA== NDg1 IERTTA== IENvdXNpbnM= IGRvY3RyaW5lcw== IEF0aGxldGljcw== IDMxNQ== IEthcm1h IGF0dGVudA== dXJnZXI= IHByZXNjcmliZQ== IGVuY2Fwcw== IENhbWU= IHNlY3JldGl2ZQ== IENyaW1lcw== ZG4= Q2xlYW4= IEVneXB0aWFucw== IENhcnBlbnRlcg== IGxs SHVt IE1pbG8= IGNhcGl0YWxpc3Rz IGJyaWVmZWQ= VHdl IEJhc2lu ZWx2ZXQ= TW9z IHBsdW5nZQ== IEthaXNlcg== IEZ1ag== aWxsaW4= IHNhZmVndWFyZHM= IG9zdGU= IE9wcG9ydHVuaXR5 IE1hZmlh IENhbGxpbmc= YXBh dXJiYW4= YnJ1c2g= aWxsYXJk Y8Op aW50ZWxsaWdlbmNl IExvYg== IERydWlk IHNtb290aGVy IGZvb3Rpbmc= IG1vdG9yaXN0cw== YXJjaXR5 IG1hc2N1bGluaXR5 IG1pc20= IGFiZG9taW5hbA== IFRhdmVybg== IFJvaA== IGVzY2FwZXM= c2lnbmVk QW50aG9ueQ== IHNhY3JpZmljaW5n IGludGltYWN5 IGFudGVyaW9y IEtvZA== IG1vdGlm IGdyYXo= IHZpc3VhbGl6YXRpb24= IGd1aXRhcmlzdA== IFRyb3Rza3k= bWFnaWM= RGFy IE1vcmk= IHdhcmRz IHRvaWxldHM= bGVzdA== IHRlbGVwb3J0 IFN1bmRheXM= IFBsYXQ= RVRT IGVTcG9ydHM= UGF0cmljaw== IEthdGhlcmluZQ== ZW5rbw== IGhhc3NsZQ== IE1pY2s= Z2dsZXM= IGhvYg== YWludGFpbg== IGFpcmJvcm5l IHNwYW5z IGNoaWxp IGFwZXJ0dXJl IHZvbHVudGVlcmVk IEluY2lkZW50 IEZyZXM= IFZldGVyYW4= YXVnaHRlcmVk aW5nbw== IHVuaW5zdXJlZA== Q0xPU0U= IGZ1c2U= IGVyb3RpYw== IGFkdmVydGlzZQ== cmFpc2luZw== VGV4dHVyZQ== IGF0dGVuZHM= IFJFQUw= dWRkbGVk IHNtb290 IDMwNQ== IFdpbGxpcw== IGJsb25k QW5hbHlzaXM= IFZU b25pY2E= IHN0cm9uZ2hvbGQ= UkY= Tk0= Lj4+ IHByb3NwZXJvdXM= IGJvYXN0ZWQ= Mjky IE1hbnVmYWN0dXJpbmc= UFJFU1M= Z3Jlbg== IHBoYXJtYWN5 IFJvY2tlZmVsbGVy a2Fp IHRodW1icw== IEh1dA== IG1vdGhlcmJvYXJk IGd1YXJkaWFucw== IEFsdGVy bGx1bGFy IHNoYWNr IHdpc2VseQ== IGJhY2tib25l ZXJ2YQ== IHN1aWNpZGVz IE1jR3JlZ29y aWphaA== RW1lcg== IEJyYXY= IGRlc2lnbmF0ZQ== UE9TVA== cHJvZHVjZWQ= IGNsZWFuc2luZw== aXJsd2luZA== ZXhpc3RlbnQ= IEh1bXBo IFBheW5l IHZlc3RlZA== xaE= IHN0cmluZ2VudA== aW9uYQ== IHVuc3Vi IHN1bW1lZA== IEhlcmN1bGVz c3ViamVjdA== IFJhZ25hcg== IE5vcw== IGNoYXJhY3Rlcml6YXRpb24= IHNhdnZ5 IERhd3Nvbg== IENhc2lubw== IGZyaQ== IEJhcnJpZXI= IG1pc2luZm9ybWF0aW9u IGluc3VsYXRpb24= IGNvcnJpZG9ycw== IGFpcnBsYW5lcw== IE5vY3Q= YWhp IDE5MTY= a2I= YXJtYWM= IHNodW4= IHNjaGVtYQ== IGhvcnJpZmllZA== IDIzOQ== YXVuZGVycw== TkI= aWF0ZXM= ZXJpdHk= IFNoYXJk IHJhcml0eQ== IGdyb3VwZWQ= IEdoYW5h YWdhaW5zdA== IEJpb2xvZ2ljYWw= IEF3YXJl b3dlbGw= z4Q= IEJlYXU= c2hhdw== SGFjaw== IEp1bGl1cw== VVNT b2xzb24= YXVuYQ== Y3J1 IE1hdXJpY2U= IElr IHNlcXVlbmNpbmc= IHJhZGljYWxz ICg/LA== dmlydHVhbA== IGFueXdheXM= IHJlcGVyYw== IGhhbmRsZXJz IGhlc2l0YW50 6YM= IE1G cGxlbWVudGF0aW9u YXNzb2NpYXRlZA== IGNhbXBhaWduZWQ= IFl1ZQ== dXRhdGlvbnM= IFlvZ2E= IHNpbW1lcg== IHJvZHM= IG1lbG9keQ== IGNvbnZveQ== dmlkZW9z IHNjcmVlbmVk TmVn b2NoZW1pY2Fs ICgpKQ== IHVsdHJhcw== IGFudGlw IElzbGFuZGVycw== NzA0 IGZldGlzaA== IHJpZGljdWxvdXNseQ== IEthcnQ= IG1pdG9jaG9uZHJpYWw= IGludGVyZmVyaW5n QnVpbGRlcg== IG92ZXJmbA== IGFjbmU= IE11ZA== IEtlcnI= ZmxleA== IFBvc3RhbA== IEJhbHRpYw== NDc3 IFBlcnNvbnM= b3VyYWdl SEI= IE11c2U= IEltbW9ydGFs IERyaXZpbmc= IHBldGl0aW9ucw== IHN1YnNjcmlwdA== IHNvcmNl IFByb2Nlc3Nvcg== dXRvbg== U29ueQ== IHBob24= IHJhY2Vk IEFudGhyb3A= IGRheXRpbWU= IEV4ZXJjaXNl QWRkaW5n IGVuZ2FnZXM= IFF1YWxjb21t IG1pcmFjbGVz IG1lbWVz IERyaW5r IE9yaW9sZXM= IGhhaXJz IFBvbGFy YXRob20= IHNsaXBwZXJ5 IFJlbXk= IGNhcmFtZWw= IFlFQVI= IGFsaw== SWdu YXV0aW9u IE1lcmxpbg== IENyYW4= IGFwb2xvZ2llcw== IDQxMA== IG91dGluZw== IE1lbW9yaWVz YXBwb2ludGVk IGNvdW50ZXJlZA== dWxk cG9zaW5n IGZpcmV3YWxs IFdhc3Q= IFdldA== d29ya2Vk c2VsbGVy IHJlcGVhbGVk ZXJlbw== YXNzdW1pbmc= QkxJQw== bWl0ZQ== IENFT3M= IENoYXBlbA== ZWxsaWdlbnQ= X19fX19fX19fX19fX19fX19fX19fX19f RG9n IHdhcnQ= IHN1YnNjcmliZXI= c3BvcnRz IGJlZ2dlZA== IE1W IHNlbWlm ZXRoaWNhbA== IHByZWFjaA== IHJldml0YWw= IHB1bml0aXZl IHNob3J0Y3V0cw== IGluc3RpdHV0ZWQ= IFdhcnNhdw== IGFiZG9tZW4= IEtJTkc= IHN1cGVyaW50ZW5kZW50 IGZyeQ== IEdlbw== VE9S IGNvbnRyYWRpY3Rpb25z YXB0aWM= IGxhbmRzY2FwZXM= YnVncw== IGNsdXN0 IHZvbGxleQ== Y3JpYmVk IHRhbmRlbQ== IHJvYmVz V0hBVA== IHByb21vdGVy IGVsb3F1 cmV2aWV3ZWQ= IERL IFBsYXRv IGZwcw== VGFuaw== IERlcnJpY2s= IHByaW9yaXRpemU= YXNwZXI= IEhvbmR1cmFz IENvbXBsZXRlZA== bmVj IG1vZw== bmly IE1heW8= REVG c3RhbGw= aW5uZXNz IFZvbGtzd2FnZW4= IHByZWNhdXRpb24= IE1lbGw= aWFr aXN0cmllcw== IDI0OA== IG92ZXJsYXBwaW5n U2VuYXRl IEVuaGFuY2U= cmVzeQ== cmFjaWFs T1JUUw== IE1vcm1vbnM= U3Ryb25n IENvY2g= TWV4aWNv IE1hZHVybw== IGphcnM= IGNhbmU= V2lr b2xsYQ== aWZmZXJlbmNl IHBoeXNpY2lzdA== IE1hZ2dpZQ== IDI4NQ== IGRlcGljdGlvbg== IE1jTGFyZW4= SnU= IHNsb3dz IGNvbW1pc3Npb25lcnM= IFdpbGxvdw== IEV4cGxvcw== aG92YWg= IHRlY2huaWNpYW4= IGhvbWljaWRlcw== IEZsYXY= IFRydW1hbg== IDEwMDAw dWN0b3I= IHNoYWRlcg== TmV3c2xldHRlcg== NDU3 IHJldmVy IGhhcmRlbmVk IHdoZXJlYWJvdXRz IHJlZGV2ZWxvcA== IGNhcmJz IHRyYXZlcnM= IHNxdWlycmVs IGZvbGxvd2Vy IHNpbmdz NTA4 IHJhYmJpdHM= ZW1vbml1bQ== IGRvY3VtZW50aW5n IG1pc3VuZGVyc3Rvb2Q= KSc= Umljaw== Z2dpZXM= IHByZW1pZQ== IHNrYXRpbmc= IHBhc3Nwb3J0cw== IGZpc3Rz YWdlZGRvbg== SGF3 QUNQ MDgw IFRob3VnaHRz IENhcmxzb24= IHByaWVzdGhvb2Q= aHVh IGR1bmdlb25z IExvYW5z IGFudGlz IGZhbWlsaWFyaXR5 IFNhYmI= b3BhbA== IEluaw== c3RyaWtl IGNyYW0= IGxlZ2FsaXplZA== IGN1aXNpbmU= IGZpYnJl VHJhdmVs IE1vbnVtZW50 T0RZ ZXRoeQ== IGludGVyc3RhdGU= IFBVUg== ZW1wb3Jhcnk= IEFyYWJpYW4= ZGV2ZWxvcGVk IHNhZGRsZQ== IGdpdGh1Yg== IE9mZmVy IElTUA== cm9sZXQ= IFNVUEVS IERlbmlz IG11bHRpcGxpZXI= IHN0aXJyZWQ= SW50ZXJlc3RpbmdseQ== IGN1c3RvbWFyeQ== IGJpbGxlZA== aGV4 IG11bHRpcGxpZWQ= IGZsaXBwaW5n IENyb3NieQ== IGZ1bmRhbWVudGFscw== aWFl IFBsYXllZA== IEF0b20= YW1hem9u IEZsYW0= ZWV6 YWN0aXZhdGVk IHRhYmxlc3Bvb24= IGxpYmVyYWxpc20= IFBhbGlu IFBhdGVs TnVt IFRBTQ== IHN1cm4= IFJlbG9hZGVk IGNvaW5lZA== Il0s IENsYXNo IEFndQ== IHByYWdtYXRpYw== IEFjdGl2YXRl IDgwMg== IHRyYWlsZXJz IHNpbGhvdQ== IHByb2Jlcw== IGNpcmN1cw== IEJhaW4= IExpbmRzYXk= IEFiYmV5 RGVsaXZlcnk= IGNvbmNlc3Npb24= IGdhc3Rybw== IFNwcml0ZQ== xJ8= YW5kZWw= IGdpbW0= IGF1dG9iaQ== IFR1cnRsZQ== IHdvbmRlcmZ1bGx5 IEhhcmFt IFdvcmxkd2lkZQ== IEhhbmRsZQ== IHRoZW9yaXN0cw== IHNsZWVr IFpodQ== b2dyYXBoaWNhbGx5 RUdB IE93bmVycw== YXRocw== IEFudGFyY3RpYw== bmF0YWw= PSIi ZmxhZ3M= YGBgYA== IHN1bA== S2g= IHBvdGFzc2l1bQ== IGxpbmVtYW4= IGNlcmVhbA== IFNlYXNvbnM= IDIwMjI= IG1hdGhlbWF0aWM= IGFzdHJvbm9tZXJz cHJvZmVzc2lvbmFs IGZhcmVz Y2tub3dsZWQ= IGNoaQ== IHlvdW5nc3RlcnM= IG1pc3Rha2VubHk= IGhlbWlzcGhlcmU= IERpdmluaXR5 cm9uZQ== ICIs cmluZ3M= IGF0dHJhY3Rz dmFuYQ== 5bk= Q0FQ IHBsYXlsaXN0 IHBvcmNo 44Gj IGluY29ycG9yYXRlcw== IHNvYWs= IGFzc2VydGluZw== IFRlcnJvcmlzbQ== IFBhYmxv SmE= Y2VzdGVy IGZlYXJpbmc= IFByYXllcg== IGVzY2FsYXRlZA== R1c= IHJvYmU= IEJyaWdodG9u YWNpc3Rz IFN5bXBob255 IER3YXJm IFBhcmFkZQ== IExlZ28= IGluZXhwbA== IGxvcmRz bGVhZg== UkFH bGliZXI= IGNpZ2Fycw== IEplaG92YWg= NjA2 V0lORE9XUw== IExpYmVyaWE= ZWJ1cw== SGVhdnk= IGx1YnJpYw== IFJX YW5ndWFnZXM= IG5hcnJvd2Vk Y29tcHV0ZXI= IEVtYmVy IG11cmRlcmluZw== IGRvd25zdHJlYW0= IFR1bHM= IFRhYmxlcw== VG9waWM= IEFjY3VyYWN5 PS8= bG9zdA== IFJlaQ== IHByb2dyZXNzZXM= YmVhcg== IGVzdGFibGlzaG1lbnRz SnVzdGlu IFBlYWNo IEdvbWV6 5b8= IFRyaWFuZ2xl SWRlbnQ= IEhpdmU= UmVzb3VyY2Vz IG1peGVz IEFzc3VtaW5n TXU= IGh5cG9j IHNhbmU= IFdhbg== aWRpb3Vz U3VjY2Vzcw== IGlv QW5nZWw= IGRhbmdlcm91c2x5 IENyZWF0dXJl V09SSw== Ols= IEthdHJpbmE= TGlzdGVuZXI= TWlsbGVy IElkbGli aGFuZw== IGNpcmN1bXZlbnQ= aHJlZg== IGNlbGVzdGlhbA== IFdlZWtz IFB1Zw== IERhbHRvbg== IHN1YnBvZW5h dWt1 IHBlcnNpc3RlZA== cGVp b2xkaW5n IERvY3VtZW50cw== IEhhc3Q= IENFTlQ= IHByaW1lcg== IHN5bm9ueW1vdXM= IG5pYg== b21icw== IG5vdGF0aW9u IERpc2g= IEF0bW9zcA== IGZvcmJpZA== IEFORw== cGF0dGVybg== bG9z IHByb2plY3RpbGVz YnJvd24= LiIs IFZlbm9t IGZpZXJjZWx5 dWJsaXNoZWQ= IFVyYW4= IE5pY2FyYWc= NDEw IENBTA== T1RPUw== IE1pcmFjbGU= IEVuY2hhbnQ= IGd1YXJkaW5n YXBwZW5k QXR0YWNo IGxldmVsZWQ= IGNvbmRvbXM= aWhpbGF0aW9u NjQ5 IG5pZ2h0bWFyZXM= IFRIRVk= IFNUQVJU IEtpbm4= IHJvb21tYXRl IGh5Z2llbmU= b3BwaW5n Sm9i IGx2bA== IFZFUg== IEtlZXBpbmc= YWJldGlj IGZvcm1hdHRpbmc= ZXJhbGE= IHJldmlzaW9ucw== IHJlc3VyZw== VGVs IEdvb2RtYW4= MzUz cG9k IGluZGlzcA== IFRyYW5zbGF0aW9u IGdvd24= IE11bmQ= IGNpcw== IGJ5c3RhbmQ= Y29sbGVjdA== IFB1bmphYg== YWN0aXZlbHk= IEdhbWI= dGVsbA== IGltcG9ydGluZw== Z2VuY2llcw== IGxvY29t IEJyaWxs SG9seQ== IEJlcmdlcg== IHNob3dkb3du IHJlc3BvbmRlcnM= SUxZ IHRha2Vkb3du bGV0ZWQ= IG1hdHRlcmVk IHByZWRpY3RpdmU= IG92ZXJsYXk= R1BV IFZpY2s= IGNvbnZleWVk VGFi cGVlcg== U2Nhbg== IGRlZmVuc2l2ZWx5 dmFl IGFwcHJvdmluZw== IHRpZXJz IFZpYQ== cXVlcmFkZQ== IFNhdWRpcw== IGRlbW9saXNoZWQ= IFByb3BoZQ== IG1vbm8= IGhvc3BpdGFsaXR5 SEFN IEFyaWVs TU9E IFRvcmFo IGJsYWg= IEJlbGFydXM= ZXJlbnRpYWw= IFR1Yw== IGJhbmtlcg== Mzk3 IG1vc3F1aXQ= IFNjaWVudGlzdA== IE11c2ljYWw= IGh1c3Q= U2hpZnQ= IHRvcm1lbnQ= IHN0YW5kb2Zm RWR1Yw== IEZvZw== IGFtcGxpZmllcg== U2hhcGU= SW5zdGFuY2U= IENyaXRpY3M= IGRhZW1vbg== SG91c3Rvbg== IG1hdHRyZXNz IElERg== IG9ic2NlbmU= IEFtZXI= aGV0dGk= IGNvbXBpbGluZw== MzUy dmVyZXR0 IFJlZHVjdGlvbg== aXN0cmF0aW9u IEJsZXNzZWQ= IEJhY2hlbG9y MzE2 IHByYW5r IFZ1bGNhbg== ZGRpbmc= IG1vdXJuaW5n IFF1aW50 IEJsYXN0ZXI= dGVzdGluZw== IHNlZGltZW50 Pj4+ IEV0ZXJuaXR5 IFdIRVJF IE1hemU= IHJlYWN0aW5n IEFsdg== b21zZGF5 IENSQQ== IHRyYW5zbGF0b3I= IGJvZ3Vz YXR1 V2Vic2l0ZQ== b2xscw== IGJhcHRpc20= IHNpYmxpbmc= IEF1dHVtbg== dmV6 44Gu6Q== Z3VhcmRz R2Vvcmc= YXNzYWRvcnM= IEZyZXVk IGNvbnRpbmVudHM= IFJlZ2lzdHJ5 QmVybmll lprlo6s= IHRvbGVyYW50 IFVX IGhvcnJpYmx5 OTk1 IE1JREk= IGltcGF0aWVudA== b2NhZG8= ZXJp IFdvcnN0 IE5vcnJpcw== IFRhbGtpbmc= IGRlZmVuZHM= ZW5zYWJsZQ== IDIwMjE= IGFuYXRvbXk= TGV3 IGRyYXdlcg== IENhbmJlcnJh IHBhdHJpb3RpYw== 6b6N5Zaa5aOr IEF2Zw== QVJN IHVuZGlzY2xvc2Vk IGZhcmV3ZWxs NDU5 YmFibGU= IEFsbGlzb24= T0xPRw== IGNvbmNv dGlnaHQ= IEFDUEk= IE1pbmVz bGljaA== IOKUnA== cmVwcmVzZW50ZWQ= MjAwMDAw IGVudGh1c2lhc3Q= T1RT Ymls IEluZ3JlZGllbnRz IGludmVudG9y IE15U1FM wqDCoMKg IEFCT1VU d2l0aGlu IG1r QnVs IEZha2U= IGRyYWNvbmlhbg== V2E= aGVsbQ== IFRlcnJhbg== ZXJ2aWxsZQ== IGNvbW1vbnBsYWNl U0laRQ== ICI8 cmVwbGFjZQ== b2dyYXBocw== IFNFTEVDVA== aW5jaWJsZQ== IE1vc3RseQ== IFNoZWZmaWVsZA== IElERQ== dWdnbGU= IGNpdGF0aW9ucw== aHVyc3Q= IFVuaXg= IHVubGVhc2g= IFBpcGVy IE5hbm8= IHN1Y2N1bWI= IHJlbHVjdGFuY2U= IDI1MDA= IE1lcmNoYW50 IHdpcmV0 IGNvbWJvcw== IEJpcnRoZGF5 IGNoYXJjb2Fs IFVQUw== IEZhaXJmYXg= IGRyaXZld2F5 IFRlaw== IFBpdGNo b3ZlcmU= IHRlY2huaWNpYW5z IEFjdHVhbA== ZmxhdGlvbg== IEZpc2NhbA== IEVtcHR5 YW5hbW8= IG1hZ25lc2l1bQ== IHNsdXQ= IGdyb3dlcnM= SW52ZXN0aWdhdG9ycw== KCk6 IFNhdGVsbGl0ZQ== IEtleW5lcw== bWlzc2l2ZQ== bGFuZQ== IGJvcm91Z2g= MzQ0 IFRFQU0= IEJldGhlc2Rh Q1Y= aG93ZXI= IFJBRA== IGNoYW50 IFJpeQ== IGNvbXBvc2l0aW9ucw== IG1pbGRseQ== IG1lZGRsaW5n IGFnaWxpdHk= YW5lZXJz NTAx IHN5bnRo bGluZ2Vy Mjkx IGV4Y2xhaW1lZA== UGFydHk= IGNvbnRhbWlu IE1hbm9y IFJlc3BvbmQ= IHByYWlzaW5n IG1hbm5lcnM= ZmxlZXQ= U3VtbWVy IEx5bmQ= IERlZmluaXRlbHk= Z3JpbQ== IGJvd2xpbmc= c3RyaQ== 55s= eW50 IG1hbmRhdGVz RElW IHJlY29uY2lsZQ== dmlld3M= IERhbW9u dmV0dGU= Rmxv IEdyZWF0ZXN0 aWxvbg== aWNpYQ== IHBvcnRyYXlhbA== IGN1c2hpb24= NTA0 MTk3OQ== b3NzYWw= QXBwbGlj c2NyaXB0aW9u IG1pdGlnYXRpb24= QVRT cGFj IGVyYXNlZA== IGRlZmljaWVuY2llcw== IEhvbGxhbmRl IFh1 IGJyZWQ= IHByZWduYW5jaWVz ZmVtaW4= IGVtcGg= IHBsYW5uZXJz IG91dHBlcg== dXR0ZXJpbmc= IHBlcnBldHJhdG9y IG1vdHRv IEVsbGlzb24= IE5FVkVS IGFkbWl0dGVkbHk= QVJJ IEF6ZXJiYWlqYW4= IG1pbGxpc2Vj IGNvbWJ1c3Rpb24= IEJvdHRsZQ== IEx1bmQ= IFBz IERyZXNz IGZhYnJpY2F0ZWQ= IGJhdHRlcmVk IHNpZGVs IE5vdHRpbmc= Rm9yZWlnbg== IEplcm9tZQ== MDIw IEFyYml0 IGtub3Rz IFJJR0hU TW92aW5n 44GZ IHN1cmdlcmllcw== IGNvdXJ0aG91c2U= IG1hc3RlcmVk IGhvdmVyaW5n IEJyYW4= IEFsaXNvbg== IHNhZmVzdA== bWlsaXRhcnk= IGJ1bGxpZWQ= IGJhcnJhZ2U= UmVhZGVy RVNF IEdlb2dyYXBoaWM= VG9vbHM= MzE0 IEdlZWs= cm90aA== Z2xlcnM= IEZJTg== z4E= IEFzdG9u YWx0ZXJu NDg4 IHZldGVyaW4= R2FtZXI= IGludGVs cmVuY2hlcw== U2hpZWxk IGFtbmVzdHk= IEJoYXI= IHBpbGVk IGhvbm9yYWJsZQ== IEluc3RpdHV0ZXM= IHNvYWtlZA== IGNvbWE= IEVGRg== MzQx Ynl0ZXM= IEdtYWls bGVpbg== IENhbmFkaWVucw== bWF0ZXJpYWw= SWw= IGluc3RydWN0b3Jz IEtZ IGNvbmNlaXZl dWJi IFBvc3NpYmxl IGVhc2luZw== IENocmlzdGluYQ== IGNhcmlj IEhEUg== Uk9N IHNob3ZlbA== ZGVsZXRl IHB1ZmY= IENoYW5naW5n IHNlYW1sZXNzbHk= QXR0cmlidXRl IGFjcXVpc2l0aW9ucw== YWtlcnk= IEVG IGF1dGlzdGlj IFRha2Vz IFBvd2Rlcg== IFN0aXI= NTEw IEJ1YmJsZQ== c2V0dGluZ3M= IEZvd2xlcg== IG11c3RhcmQ= IG1vcmVvdmVy IGNvcHlyaWdodGVk IExFRHM= MTUwMA== 5ok= IEhJUw== ZW5m IGN1c3RvZA== IEh1Y2s= R2k= IGltZw== QW5zd2Vy Q3Q= amF5 IEluZnJhc3RydWN0dXJl IGZlZGVyYWxseQ== TG9j IG1pY3JvYmVz IG92ZXJydW4= ZGRz b3RlbnQ= YWRpYXRvcg== Pj4+Pj4+Pj4= IHRvcm5hZG8= IGFkanVk IGludHJpZ3VlZA== IHNp IFJldmVsYXRpb24= cHJvZ3Jlc3M= IGJ1cmdsYXJ5 IFNhaXlhbg== IEthdGh5 IHNlcnBlbnQ= IEFuZHJlYXM= IGNvbXBlbA== ZXNzbGVy IFBsYXN0aWM= IEFkdmVudA== IFBvc2l0aXZl IFF0 IEhpbmR1cw== cmVnaXN0ZXJlZA== dWxhcml0eQ== IHJpZ2h0ZW91c25lc3M= IGRlbW9uaWM= dWl0aXZl IEJEUw== IEdyZWdn Y2lh IENydXNhZGU= IFNpbmFp V0FSRQ== Kyg= IG1lbGw= IGRlcmFpbA== eWFyZHM= QXN0 IG5vdGljZWFibHk= IE9iZXI= UmFt IHVubm90aWNlZA== IHNlcQ== YXZhZ2U= VHM= IDY0MA== IGNvbmNlZGU= IF0p RmlsbA== IGNhcHRpdml0eQ== IEltcHJvdmVtZW50 IENydXNhZGVy YXJhb2g= TUFQ 5pc= IHN0cmlkZQ== YWx3YXlz Rmx5 Tml0 IGFsZ2Fl IENvb2tpbmc= IERvb3Jz TWFsbGV5 IHBvbGljZW1lbg== 44GN IGFzdHJvbmF1dA== YWNjZXNzaWJsZQ== NDk1 IFJBVw== Y2xpZmZl dWRpY3JvdXM= IGRlcGVuZGVk YWxhY2g= IHZlbnR1cmVz cmFrZQ== IHRpdHM= IEhvdQ== IGNvbmRvbQ== b3Jtb25hbA== IGluZGVudA== IHVwbG9hZGluZw== Rm9vdG5vdGU= SW1wb3J0YW50 IDI3MQ== IG1pbmRmdWw= IGNvbnRlbmRz Q3Jh IGNhbGlicg== IE9FQ0Q= cGx1Z2lu RmF0 IElTUw== IER5bmFtaWNz YW5zZW4= Njg2 Jyks IHNwcml0ZQ== IGhhbmRoZWxk IEhpcHA= PX49fg== VHJ1c3Q= IHNlbWFudGljcw== IEJ1bmRlcw== IFJlbm8= IExpdGVyYXR1cmU= c2Vuc2U= R2FyeQ== IEFlZw== IFRyaW4= RUVL IGNsZXJpYw== IFNTSA== IGNocmlzdA== IGludmFkaW5n aWJ1 IGVudW0= YXVyYQ== IGFsbGVnZQ== IEluY3JlZGlibGU= QkJD IHRocnU= IHNhaWxlZA== IGVtdWxhdGU= IGluc2VjdXJpdHk= IGNyb3U= IGFjY29tbW9kYXRpb25z IGluY29tcGV0ZW50 IHNsaXBz IEVhcnRocXU= c2FtYQ== SUxMRQ== IGlQaG9uZXM= YXNha2k= IGJ5ZQ== IGFyZA== IGV4dHJhcw== IHNsYXVnaHRlcmVk IGNyb3dkZnVuZGluZw== cmVzc28= IGZpbGli IEVSUk9S IFRMUw== ZWdn IEl0YWw= IGVubGlzdA== IENhdGFsb25pYQ== IFNjb3Rz IHNlcmdlYW50 IGRpc3NvbHZl Tkg= IHN0YW5kaW5ncw== cmlxdWU= SVE= IGJlbmVmaWNpYXJ5 IGFxdWFyaXVt WW91VHViZQ== IFBvd2VyU2hlbGw= IGJyaWdodGVzdA== IFdhcnJhbnQ= U29sZA== V3JpdGluZw== IGJlZ2lubmluZ3M= IFJlc2VydmVk IExhdGlub3M= aGVhZGluZw== IDQ0MA== IHJvb2Z0b3A= QVRJTkc= IDM5MA== VlBO R3M= a2VybmVs dHVybmVk IHByZWZlcmFibGU= IHR1cm5vdmVycw== IEhlbHM= U2E= IFNoaW5qaQ== dmVo IE1PRFVMRQ== VmlvbA== IGV4aXRpbmc= IGphYg== IFZhbmlsbGE= IGFjcm9u IEdhcA== YmVybg== QWs= IE1jR3U= IGVuZGxlc3NseQ== IEZhcmFnZQ== IE5vZWw= VmE= TUs= IGJydXRl IEtydQ== IEVTVg== IE9saXZpYQ== 4oCg IEthZg== IHRydXN0aW5n IGhvdHM= MzI0 IG1hbGFyaWE= IGpzb24= IHBvdW5kaW5n b3J0bWVudA== Q291bnRyeQ== IHBvc3Rwb25lZA== IHVuZXF1aXY= Pyks IFJvb25leQ== dWRkaW5n IExlYXA= dXJyZW5jZQ== c2hhcGVzaGlmdGVy IEhBUw== b3NhdGU= IGNhdmVybg== IGNvbnNlcnZhdGlzbQ== IEJBRA== IG1pbGVhZ2U= IGFycmVzdGluZw== VmF1bHRz IG1peGVy RGVtb2NyYXRpYw== IEJlbnNvbg== IGF1dGhvcmVk ODAwMA== IHByb2FjdGl2ZQ== IFNwaXJpdHVhbA== dHJl IGluY2FyY2VyYXRlZA== IFNvcnQ= IHBlYWtlZA== IHdpZWxkaW5n cmVjaWF0aW9u 15nX UGF0Y2g= IEVtbXk= IGV4cXU= dHRv IFJhdGlv IFBpY2tz IEdyeQ== cGhhbnQ= IGZyZXQ= IGV0aG4= IGFyY2hpdmVk JS0= Y2FzZXM= IEJsYXpl IGltYg== Y3Y= eXNz aW1vbnk= IGNvdW50ZG93bg== IGF3YWtlbmluZw== IFR1bmlzaWE= IFJlZmVy IE1K IHVubmF0dXJhbA== IENhcm5lZ2ll aXplbg== IE51Z2dldHM= aGVzcw== IGV2aWxz NjQ3 IGludHJvZHVjdG9yeQ== bG92aW5n IE1jTWFob24= IGFtYmlndWl0eQ== TGFiZWw= IEFsbWlnaHR5 IGNvbG9yaW5n IENsYXVz c2V0dGluZw== TlVMTA== IEZhdm9yaXRl IFNJRw== Pig= IFNoaXZh IE1heWVy IHN0b3JtZWQ= IENvdmVyYWdl d2VhcG9ucw== aWdoYW0= IHVuYW5zd2VyZWQ= IGxldmU= IGNveQ== Y2Fz YmFncw== YXN1cmVk U2VhdHRsZQ== IFNhbnRvcnVt c2VyaW91cw== IGNvdXJhZ2VvdXM= IFNvdXA= IGNvbmZpc2NhdGVk IC8vLw== IHVuY29udmVudGlvbmFs IG1vbXM= IFJvaGluZ3lh IE9yY2hlc3RyYQ== IFBvdGlvbg== IGRpc2NyZWRpdA== IEZJTA== Zml4ZWQ= IERlZXI= ZG9p IERpbWVuc2lvbg== IGJ1cmVhdWNyYXRz ZXRlZW4= IGFjdGlvbkdyb3Vw b2ht IGJ1bXBz IFV0aWxpdHk= IHN1Ym1hcmluZXM= cmVuaGVpdA== cmVzZWFyY2g= IFNoYXBpcm8= IHNrZXRjaGVz IGRlY2VwdGl2ZQ== IFZpbA== ZXNhbWU= IEVzc2VudGlhbGx5 IHJhbXBhZ2U= aXNreQ== IG11dHRlcmVk dGhyaXRpcw== IDIzNg== ZmV0 YmFycw== IHB1cGls IFRob3U= b1M= c29uZw== IGZyYWN0dXJlZA== IHJldmVydA== cGljdHVyZQ== IGNyaXRlcmlvbg== dXNoZXI= IHJlcGVyY3Vzc2lvbnM= IFZpbnRhZ2U= IFN1cGVyaW50ZW5kZW50 T2ZmaWNlcnM= IGZsYWdnZWQ= IGJsYW1lcw== IGludmVyc2U= b2dyYXBoZXJz IG1ha2VzaGlmdA== IGRldm9pZA== IGZvc3NpbHM= IEFyaXN0b3RsZQ== IEZ1bmRz IGRlcGxldGVk IEZsdQ== IFl1YW4= IHdvZXM= IGxpcGlk IHNpdHU= cmVxdWlzaXRlcw== IGZ1cm5pc2g= IFNhbWFy IHNoYW1lZnVs IGFkdmVyc2VseQ== IGFkZXB0 IHJlbW9yc2U= IG11cmRlcm91cw== dWNrbGVz IEVTTA== IDMxNA== c2VudA== IHJlZGVm IENhY2hl IFB1cnM= aWdhbnM= IDQ2MA== IHByZXNjcmlwdGlvbnM= IGZyZXM= RnVjaw== b2NyYXRlcw== VHdlbnR5 IFdlaXJk IFRvZ2dsZQ== IENhbGxlZA== aXRpemVucw== IHBvdWx0cnk= IGhhcnZlc3Rpbmc= 44Km44K5 Qm90dG9t IGNhdXRpb25lZA== dG4= Mzk2 IE5pa2tp IGV2YWx1YXRpb25z IGhhcmFzc2luZw== IGJpbmRpbmdz IE1vbmV0YXJ5 IGhpdHRlcnM= IGFkdmVyc2FyeQ== dW50cw== IHNldGJhY2s= IGVuY3J5cHQ= IENhaXQ= IGxvd3M= ZW5nZXM= IE5vcm4= IGJ1bGJz IGJvdHRsZWQ= IFZveWFnZXI= MzE3 IHNwaGVyZXM= cG9saXRpY3M= IHN1YnRyYWN0 IHNlbnNhdGlvbnM= IGFwcGFsbGluZw== IDMxNg== IGVudmlyb25tZW50YWxseQ== IFNURU0= IHB1Ymxpc2hlcw== NTYw IGRpbGlnZW5jZQ== NDg0 IGFkdmlzZXM= IHBldHJvbA== IGltYWdpbmluZw== IHBhdHJvbHM= IEludGVnZXI= IEFzaGVz YWN0dXM= IFJhZGlhbnQ= IExU aXRhYmlsaXR5 aHRha2luZw== U2V0dGluZw== IG51YW5jZWQ= IFJlZWY= IERldmVsb3BlcnM= Tmk= cGllY2Vz OTkw TGljZW5zZQ== IGxvd2Vycw== IE90dG9tYW4= MzI3 b29v IHF1aXR0aW5n bWFya2V0cw== QmVoaW5k IGJhc2lu IGRvY3M= YW5pZQ== Zmxhc2g= Y3Rs IGNpdmlsaXplZA== IEZ1a3VzaGltYQ== Il0sIg== IEtT IEhvbmVzdGx5 YXJhdA== IGNvbnN0cnVjdHM= IExhbnM= IERpcmU= IExJS0U= IFRyb3VibGU= IHdpdGhob2xkaW5n IE9ibGl2aW9u IHNhbml0eQ== YW55YQ== Q29uc3Q= IGdyb2Nlcg== IENlbHNpdXM= IHJlY291bnRlZA== IFdpZmU= Qm9yZGVy YXRlcmVk aGFwcHk= IHNwb2lsZXI= IGxvZ2ljYWxseQ== SGFsbA== IHN1Y2NlZWRpbmc= IHBvbHltb3JwaA== IGF4ZXM= IFNob3RndW4= IFNsaW0= IFByaW5jaXBsZXM= IExldGg= YXJ0YQ== IHNjb3I= U2NyZWVuc2hvdA== IHJlbGF4YXRpb24= IyQjJA== IGRldGVycmVudA== aWRkeQ== IHBvd2VybGVzcw== IGxlc2JpYW5z IGNob3Jkcw== IEVkaXRlZA== c2VsZWN0ZWQ= IHNlcGFyYXRpc3Rz MDAwMg== IGFpcnNwYWNl IHR1cm5hcm91bmQ= IGN1bm5pbmc= UEFUSA== UG9seQ== IGJvbWJlZA== IHRpb24= eHM= IHdpdGhob2xk IHdhZ2Vk IExpYmVydGllcw== RmxhZw== IGNvbWZvcnRpbmc= NDU0 IElyaXM= YXJlcnM= IHJhZw== IHJlbG9jYXRlZA== IEd1YXJhbnQ= IHN0cmF0ZWdpY2FsbHk= IGdhbW1h dWJlcnR5 IExvY2toZWVk Z3Jlcw== IGdyaWxsZWQ= IExvd2U= c3RhdHM= IFJvY2tz IHNlbnNpbmc= IHJlbnRpbmc= IEdlb2xvZ2ljYWw= 2KfY b3Ryb3A= IHNldw== IGltcHJvcGVybHk= NDg2 IOKWoA== IHN0YXJ2aW5n IEJq RGlzY3Vzc2lvbg== MzI4 IENvbWJv IEZpeGVz TkFU IHN0cml2aW5n dGhvcmE= IGhhcnZlc3RlZA== IFBpbmc= IHBsYXlmdWw= IGF2ZW51ZXM= IG9jY3VwYXRpb25hbA== IHdha2Vz IENvdXJpZXI= IGRydW1tZXI= IEJyb3dzZXI= IEhvdXRo aXR1 IGFwcGFyZWw= cGFzdGU= IGh1bnRlZA== IFNlY29uZGx5 bGFpbg== WFk= IFBJTg== aWNvbnM= IGNvY2t0YWlscw== IHNpemFibGU= IGh1cmRsZXM= ZXN0aW5hbA== IFJlY3JlYXRpb24= IGVjbw== NjQ4 IERpZWQ= bWludA== IGZpbmdlcnByaW50cw== IGRpc3Bvc2U= IEJvc25pYQ== dHN5 MjIwMA== IGluc3BlY3RlZA== IEZvdQ== IGZ1c3M= IGFtYnVzaA== IFJhaw== IG1hbmlmZXN0ZWQ= UHJvc2VjdXQ= IHN1ZmZpY2U= cmVuY2Vz IGNvbXBlbnNhdGVk IEN5cnVz IGdlbnVz IFdvbHZlcmluZQ== IFRyZW5kcw== IGhpa2Vz IFNlZW4= IGVucm9s Q29sZA== IHBvbGl0ZWx5 IFNsYXY= IFJ1cGVydA== IGV5ZXdpdG5lc3M= IEFsdG8= IHVuY29tcA== IHBvc3Rlcmlvcg== TXVzdA== IEhlcno= IHByb2dyZXNzaXZlbHk= IDIzNA== IGluZGlmZmVyZW5jZQ== IEN1bm5pbmdoYW0= IGFjYWRlbWlh IHNld2Vy IGFzdG91bmRpbmc= IEFFUw== cmF0aGVy IGVsZGVzdA== IGNsaW1icw== IEFkZHM= IG91dGNyeQ== IGNvbnRhZw== IEhvdXNlcw== IHBlcHQ= IE1lbGFuaWE= aW50ZXJlc3RlZA== IFVDSA== IFJvb3Rz IEh1YmJhcmQ= IFRCRA== IFJvbWFuaWFu ZmlsZW5hbWU= U3RvbmU= IEltcGw= IGNocm9tb3NvbWU= Q2xl ZHg= IHNjcmFtYmxlZA== IFB0 IDI0Mg== T1BMRQ== IHRyZW1lbmRvdXNseQ== U3RyZWV0 IGNyYXZpbmc= IGJ1bmRsZWQ= IFJH cGlwZQ== IGluanVyaW5n IGFyY2FuZQ== UGFydGljaXA= IEhlcm9pYw== c3R5 IHRvcHBpbmc= IFRlbXBlc3Q= cmVudGljZXM= Ymg= IHBhcmFub2lh IFVuaWNvZGU= IGVncmVnaW91cw== IFwn IE9zd2FsZA== IGdyYXZlbA== IFNpbXBzb25z IGJsYW5k IEd1YW50YW5hbW8= V3JpdGVy bGluZXJz IERpY2U= SkM= IHBhcml0eQ== IHNpZGVk IDIzNw== IFB5cnJoYQ== YXR0ZXJz ZGs= RmluZQ== Y29tcGFu IGZvcm11bGF0ZWQ= IElkb2w= aWxlcnM= aGVtb3Ro IEZhdg== IGludHJ1c2lvbg== IGNhcnJvdHM= IExheWVy IEhhY2tlcg== IC0tLS0tLS0tLS0tLS0tLS0= IG1vZGVyYXRpb24= 6YE= b2NvYw== IGNoYXJhY3Rlcml6ZQ== IFRlcmVzYQ== IHNvY2lvZWNvbm9taWM= IHBlcms= IFBhcnRpY2lwYXRpb24= dHJhaW5pbmc= IFBhdWxv cGh5cw== IHRydXN0d29ydGh5 IGVtYm9kaWVk IE1lcmNo Y3VycmVuY3k= IFByaW9yaXR5 IHRlYXNpbmc= IGFic29yYmluZw== IHVuZmluaXNoZWQ= IENvbXBhcmlzb24= IGRpc3BsZQ== d3JpdGVycw== IHByb2Zlc3Npb25z IFBlbmd1aW4= IGFuZ3JpbHk= IExJTks= Njg4 IENvcnJlc3BvbmQ= IHByZXZhaWxlZA== IGNhcnRlbA== bHA= YXNtcw== IFJlZGVtcHRpb24= IElzbGFtaXN0cw== ZWZmZWN0cw== ZG9zZQ== IExhdHRlcg== IEhhbGlmYXg= IHZhcw== IFRvcGljcw== IE5hbWVk YWR2ZXJ0aXNpbmc= enph SUNFUw== IHJldGFyZGVk YWNoYWJsZQ== IFB1cHBldA== IEl0ZW1MZXZlbA== IHJldHJhY3Q= IGlkZW50aWZpYWJsZQ== QWFyb24= IEJ1c3Rlcg== c29s aGVsbGU= YXNzZW1i SG9wZQ== cmFuZ2Vk QmE= IFB1cmNo 6YA= IFNpcmk= IGFycml2YWxz IDE5MTI= IHNob3J0ZW5lZA== IDMxMg== IGRpc2NyZXBhbmN5 IFRlbXBlcmF0dXJl IFdhbHRvbg== IGtpbmRlcmc= cG9saXQ= IHJlbWl4 IGNvbm5lY3RvcnM= 44OY44Op IEthemFraHN0YW4= ZG9taW5hdGVk IHN1Z2Fycw== aW1ibGU= IFBhbmlj IERlbWFuZA== IENvbG9ueQ== b25lbg== IE1FUg== Nzc1 dXJpYQ== YXphYXI= IERlZ3JlZQ== UHJp IHN1bnNoaW5l IDI1MQ== IHBzeWNoZWRlbGlj IGRpZ2l0YWxseQ== IEJyYXVu IHNoaW1tZXI= IHNoYXZl IFRlbGVzYw== IEFzdHJhbA== IFZlbmV6dWVsYW4= IE9H IGNyYXdsaW5n SW50ZWc= IEZlYXRoZXI= IHVuZm9sZGluZw== IGFwcHJvcHJpYXRpb24= IOijj+g= IE1vYmlsaXR5 IE5leQ== LS4= YmlsdA== TElO IFR1YmU= IENvbnZlcnNlbHk= IGtleWJvYXJkcw== IENhbw== IG92ZXJ0aA== IGxhdXJl Pj5c IFZpcGVy YWNoYQ== T2Zmc2V0 IFJhbGVpZ2g= IEphZQ== Sm9yZGFu anA= IHRvdGFsaXRhcmlhbg== Q29ubmVjdG9y IG9ic2VydmVz IFNwYXJ0YW4= IEltbWVkaWF0ZWx5 IFNjYWw= Q29vbA== IHRhcHM= IHJvYXI= UGFzdA== IGNoYXJz IEJlbmRlcg== IFNoZWxkb24= IHBhaW50ZXI= IGJlYWNvbg== IENyZWF0dXJlcw== IGRvd250dXJu IGhpbmRlcg== IEFuZHJvbWVkYQ== w5s= Y2NvbGk= IEZpdG5lc3M= ZXRyaWNhbA== IHV0aWxpemVz IHNlbmF0ZQ== IGVuc2VtYmxl IGNoZWVycw== VFc= IGFmZmx1ZW50 a2ls cnlsaWM= b3JkZXJpbmc= Q29tcHV0ZXI= IGdydWVzb21l b3N0aWNz IFViaXNvZnQ= IEtlbGxleQ== IHdyZW5jaA== IGJvdXJnZW9pc2ll SUJMRQ== IFByZXN0b24= d29ybg== YXJpc3Q= cmVhdGluZw== IHN0YWluZWQ= YXJpbmU= IHNsaW1l RU5O IGNoZXN0cw== IGdyb3VuZHdhdGVy YW5ub3Q= IFRyYXk= IExvY2tl IENUUg== IGR1ZGVz IEV4dGVybmFs IERlY29kZXI= IHBhcmFtZWQ= IE1lZGxpbmU= ODA5 IERpbm5lcg== cnVwYWw= Z3o= IEd1bQ== IERlbW8= amVl IGRo YmVybWFu YXJjaHM= IGVucXU= IEVwc3RlaW4= IGRldmFzdGF0aW9u IGZyaWVuZHNoaXBz IEFyZA== IDIzMQ== IFJ1Ymlu IERpc3RhbmNl IHNwdXJyZWQ= IGRvc3NpZXI= IG92ZXJsb29raW5n XFxcXFxcXFxcXFxcXFxcXA== Rm9yZXN0 IENvbWVz XCIs IElyYW5pYW5z IGZpeHR1cmVz TGF1Z2hz IGN1cnJ5 IEtpbmdzdG9u IHNxdWFzaA== IGNhdGFsb2d1ZQ== IGFibm9ybWFsaXRpZXM= IGRpZ2VzdGl2ZQ== Li4uLi4uLi4u IHN1Ym9yZGluYXRl b2dseQ== IDI0OQ== TWlkZGxl IG1hc3NhYw== IGJ1cmdlcnM= IGRvd25zdGFpcnM= IDE5MzE= Mzk0 IFZH IGxhc2Vycw== IFNpa2g= IEFsZXhh ZGVyaXZlZA== IGN5Y2xpc3Q= 44Gu6a2U b25lbGluZXNz ISEhISEhISE= IGJ1ZmZz bGVnYXRl IHJhcGluZw== IHJlY29tbWVuZGluZw== cm9yZWQ= IG11bHRpY3VsdHVyYWw= dW5pcXVl IGJ1c2luZXNzbWVu IHVuZWFzeQ== IE1BUA== IGRpc3BlcnNlZA== Y2lwbGluZQ== SmVzcw== IEtlcmFsYQ== 5ac= IGFic3RyYWN0aW9u U3Vydg== VWg= IHByaW50ZXJz aWph b3dkZXI= IGFuYWxvZ291cw== IEFTUA== YWZlcg== IHVuZm9sZGVk IGxldmVsaW5n IGJyZWFjaGVk IEhlYXJpbmc= IG5hdA== IHRyYW5zbGF0aW5n Y3JpdGljYWw= IGFudGFnb25pc3Q= IFllc3RlcmRheQ== IGZ1enp5 d2FzaA== bWVyZQ== IGJld2lsZA== IE1hZQ== VmlyZ2lu cGhyYXNl IHNpZ25hbGVk IEhJR0g= IHByb3Rlc3Rlcg== IGdhcm5lcg== dW5rbm93bg== IGtheQ== IGFiZHVjdGVk IHN0YWxraW5n YW1u IGRlc2VydmluZw== IFJpdg== IEpvcmdl IHNjcmF0Y2hpbmc= IFNhdmluZw== aXBpbmc= IHRlYXNl IG1pc3Npb25hcnk= IE1vcnJvdw== VElNRQ== UHJlc2VudA== IGNoZW1vdGhlcmFweQ== dGVybmVzcw== IEhvbWVz IFB1cmR1ZQ== IHN0YXVuY2g= IFdoaXRuZXk= IFRIRVJF zrw= aWF0dXM= IEVybmVzdA== IERlcGxveQ== IGNvdmV0ZWQ= Rk1M IERpYWxvZ3Vl IGV4aXRlZA== ZnJ1aXQ= IG5lcmQ= IjoiIiwi IHZpdm8= cnVseQ== NDYw IEFtZW4= cmVoZW5zaWJsZQ== IOKY RElS IGFkaGVyZW5jZQ== IGNoZXc= IENva2U= IFNlcmdlaQ== ZGlnaXRhbA== IE5lY2s= Z2VudGx5 ZW50aGFs Lyk= IHdlYXJ5 IGd1aXNl IENvbmNvcmQ= IE9uaW9u YXRjaGVy IGJpbmdl IERpcmVjdGl2ZQ== IG1hbm5lZA== YW5zaw== IGlsbHVzaW9ucw== IGJpbGxpb25haXJlcw== Mzgz b2x5bg== b2R5bmFtaWM= IFdoZWF0 IEFsaWM= IGNvbG91cmVk IE5BRlRB YWJv IG1hY3Jvcw== aW5kZXBlbmRlbnQ= c3dlZXQ= IHNwYWM= IEthYnVs IMQ= ZW1l IGRpY3RhdGVk IHNob3V0cw== PXs= IHJpcHBpbmc= IFNoYXk= IENyaWNrZXQ= ZGlyZWN0ZWQ= IGFuYWx5c2Vk IFdBUlJBTlQ= YWdvbnM= IEJsYXplcnM= IGNoZWVyZWQ= IGFyaXRobWV0aWM= IFRhbno= Mzcz IEZsYWdz IDI5NQ== IHdpdGNoZXM= IEluY2x1ZGVk IEdhaW5lZA== IEJsYWRlcw== R2Ft IFNhbWFudGhh IEF0bGFudGlz IFByYXR0 IHNwb2lsZWQ= IElC IFJhbWlyZXo= UHJvYmFibHk= cmVybw== IE5n IFdhcmxvY2s= dHA= IG92ZXJoZQ== IGFkbWluaXN0cmF0aW9ucw== IHRpbnQ= IHJlZ2ltZW50 IHBpc3RvbHM= IGJsYW5rZXRz IGVwaXN0 IGJvd2xz IGh5ZHJhdWxpYw== IGRlYW4= IGp1bmc= IGFzY2VuZA== NzA1 IFNhbnRpYWdv w64= IHVuYXZvaWQ= IFNoYW1hbg== cmVi IHN0ZW1taW5n OTk4 IE1H c3RpY2tz ZXN0aGVzaWE= RVJP IG1vcmJpZA== IEdyaWxs IFBvZQ== YW55bA== IGRlbGV0aW5n IFN1cnZlaWxsYW5jZQ== IGRpcmVjdGl2ZXM= IGl0ZXJhdGlvbnM= IFJveA== IE1pbGt5 RmF0aGVy IHBhdGVudGVk NDQ3 IHByZWN1cnNvcg== IG1haWRlbg== IFBoZW4= IFZlZ2Fu IFBhdGVudA== S2VsbHk= UmVkZGl0b3I= IG5vZHM= IHZlbnRpbGF0aW9u IFNjaHdhcno= IHdpemFyZHM= IG9taW5vdXM= IEhlYWRz IEJH IGx1bWJlcg== IFNwaWVs IGlzRW5hYmxlZA== IGFuY2VzdHJhbA== IFNoaXBz IHdyZXN0bGVy cGhp IHl1YW4= IFJlYmVsbGlvbg== IGljZWJlcmc= IG1hZ2ljYWxseQ== IGRpdmVyc2lvbg== YXJybw== eXRobQ== IFJpZGVycw== IFJvYmJpZQ== IEthcmE= IE1haW50ZW5hbmNl IEhlcmI= IGhhcm1z cGFja2Vk IEZlaW5zdGVpbg== IG1hcnJ5aW5n IGJsZW5kaW5n IFJhdGVz IDE4ODA= IHdyaW5r IFVuY2g= IFRvcmNo ZGVzY3JpYmVk IGh1bWFub2lk aWxpdGF0aW5n IENvbnY= IEZlbGQ= SUdIVFM= IHdoaXN0bGVibG93ZXI= b3J0bXVuZA== ZXRzeQ== YXJyZXR0 IE1vbm8= IElrZQ== IENOQkM= IFdBWQ== IE1ETUE= IEluZGl2aWR1YWxz IHN1cHBsZW1lbnRhbA== IHBvd2VyaG91c2U= IFN0cnU= Rm9jdXM= YXBoYWVs IENvbGxlZw== YXR0aQ== WkE= IHBlcmVubg== IFNpZ25hdHVyZQ== IFJvZG5leQ== IGN1YmVz aWRkbGVk IERhbnRl IElOVg== aWxpbmd1YWw= IEN0aA== IHNvZmE= IGludGltaWRhdGU= IFJvZQ== IERpcGxvbQ== IENvdW50cmllcw== YXlzb24= IGV4dHJhZGl0aW9u IGRpc2FibGluZw== IENhcmRpZmY= IG1lbW9yYW5kdW0= IFRyYWNl ID8/Pw== c2VjdG9y IFJvdWhhbmk= IFlhdGVz IEZyZWV6ZQ== IGJsYWRkZXI= TW90b3I= IFByb21pc2U= YW50YXN5 IGZvcmVzZWVhYmxl IENvbG9nbmU= Y29udGFpbmVy IFRyZWVz IEdvcnM= IFNpbmNsYWly IGJhcnJpbmc= a2V5ZQ== IHNsYXNoZWQ= IFN0YXRpc3RpY2Fs 6Yc= IOKWug== QWxsb3dz IGh1bWlsaXR5 IGRyaWxsZWQ= IEZ1cm4= NDQz IHNld2FnZQ== IGhvbWVwYWdl IGNvdXJ0eWFyZA== IHZpbGU= IHN1YnNpZGlhcmllcw== YWpv ZGlyZWN0b3J5 IGFtbW9u VmVycw== Y2hhcmdlcw== IH19 IENoYWlucw== IDI0Ng== bm9i IHBlcmNlcHQ= IGdyaXQ= IGZpc2hlcm1lbg== IElyYXFpcw== IERJU1RS IEZVTEw= IEV2YWx1YXRpb24= Z3JhcGg= YXRpYWw= IGNvb3BlcmF0aW5n IG1lbGFu IGVubGlnaHRlbmVk IGFsaQ== dGFpbGVk IHNhbHV0ZQ== IHdlYWtlc3Q= IEJ1bGxkb2dz VUE= IEFsbG95 IHNlbWVu b2NlbmU= IFdpbGxpYW1zb24= c3By LOKAlA== IEdG aXR0ZW5z QmVhdA== IEp1bms= aXBoYXRl IEZhcm1lcnM= IEJpdGNvaW5z aWdlcnM= ZGg= IExveWFs cGF5ZXI= IGVudGVydGFpbmVk IHBlbm5lZA== IGNvdXBvbg== UXVldWU= IHdlYWtlbmluZw== Y2Fycnk= IHVuZGVyZXN0aW1hdGU= IHNob290b3V0 IGNoYXJpc21hdGlj IFByb2NlZHVyZQ== IHBydWRlbnQ= aW5hbmNlcw== IHJpY2hlcw== IGNvcnRpY2Fs IHN0cmlkZXM= IGRyaWI= IE9pbGVycw== NTQw IFBlcmZvcm0= IEJhbmdrb2s= IGV1dGg= U0VS IHNpbXBsaXN0aWM= dG9wcw== Y2FtcGFpZ24= UXVhbGl0eQ== IGltcG92ZXJpc2hlZA== IEVpc2VuaG93ZXI= IGF1Z21lbnQ= IEhhcmRlbg== IGludGVydmVuZWQ= IGxpc3RlbnM= IEtvaw== IHNhZ2U= IHJ1YmJpc2g= IERlZA== IG11bGw= cGVsbGluZw== IHZpZGVvdA== UHJvZHVjdGlvbg== REo= bWlhaA== IGFkYXB0YXRpb25z IG1lZGljYWxseQ== IGJvYXJkZWQ= IGFycm9nYW5jZQ== IHNjcmFwcGVk IG9wcHJlc3M= Rk9STUFUSU9O IGp1bmN0aW9u NDE1 RUVFRQ== U2tpbGw= IHN1YmR1 IFN1Z2dlc3Q= IFBldHQ= IGxldHQ= IE1hbmlw IENhZg== IENvb3BlcmF0aW9u VGhlcg== IHJlZ2FpbmVk tuY= cmVmbGVjdA== IHRodWdz IFNoZWxieQ== IGRpY3RhdGVz IFdlaW5lcg== IEhhbGU= IGJhdHRsZWdyb3VuZA== c2NoaWxk IGNvbmRvbA== aHVudA== b3NpdG9yaWVz IGFjY3VzZXM= RmlsZW5hbWU= IHNocmk= IG1vdGl2YXRl IHJlZmxlY3Rpb25z TnVsbA== IExvYmJ5 pbU= IFNBVEE= IEJhY2t1cA== 0YM= bmlu IENvcnJlY3Rpb24= IGp1aWN5 dXRyYQ== IFByaWM= IHJlc3RyYWluaW5n IEFpcmJuYg== IEFycmVzdA== IGFwcHJvcHJpYXRpb25z IHNsb3Blcw== IG1hbnNsYXVnaHRlcg== IHdvcmtpbmdz IEh1c3M= IEZyZXk= TGVhdmU= IEhhcm1vbnk= IEZlZGVy IDQzMA== IHRyZW5jaA== IGdsYWRseQ== IGJ1bGxwZW4= IEdhdQ== Ym9uZXM= IGdyb292ZQ== IHByZXRleHQ= 44WL IHRyYW5zbWl0dGVy IENvbXBvbmVudA== IHVuZGVyYWdl IEVtcGlyZXM= VGlsZQ== IG95 IE1hcnZpbg== IENBUw== IGJsb3Nz IHJlcGxpY2F0ZWQ= IE1hcmluZXJz TWFyY3Vz IEJsb2Nrcw== IGxpYmVyYXRlZA== IGJ1dHRlcmZseQ== RmVlbA== IGZlcm1lbnRhdGlvbg== IHlvdXR1YmU= IG9mZmVuZA== IFRlcm0= cmVzaXN0 IGNlc3NhdGlvbg== IGluc3VyZ2VuY3k= IGJpcg== IFJhaXNl NTk1 IGh5cG90aGVzZXM= NTAy IHBsYXF1ZQ== b2NyYXQ= IGphY2tldHM= IEh1ZmZQb3N0 YW1vbmc= IGNvbmZlcg== NDg3 IExpbGx5 IGFkYXB0aW5n IEZheQ== IHNob3ZlZA== dmVj IHJlZmluZQ== IGdvbg== IGd1bm1lbg== emFp IFNodXR0bGU= IEl6YW4= IDE5MTM= IHBsZXRob3Jh wrfCtw== IDUxMA== IHB1YmVydHk= IDI0MQ== IFdlYWx0aA== IEFsbWE= IE1FTQ== IEFkdWx0cw== Q2Fz cHJpc29u UmFjZQ== IHdhdGVycHJvb2Y= IGF0aGxldGljaXNt IGNhcGl0YWxpemU= IEp1aWNl IGlsbHVtaW5hdGVk IFBhc2NhbA== IGlycml0YXRpb24= IFdpdG5lc3Nlcw== YWRsZQ== IEFzdHJv IGZheA== IEVsdmlz UHJpbWFyeQ== IExpY2g= IEVsdmVz IHJlc2lkaW5n IHN0dW1ibGU= MzE5 IFBLSw== IGFkdmVyc2FyaWVz RE9T IFJpdHVhbA== IHNtZWFy IGFyc29u aWRlbnRhbA== IHNjYW50 IG1vbmFyY2h5 IGhhbGZ0aW1l IHJlc2lkdWU= IGluZGlnbg== IFNoYXVu IEVsbQ== YXVyaQ== QWZm V0FUQ0g= IEx5b24= aGVscHM= MzYx IGxvYmJ5aXN0 IGRpbWluaXNoaW5n IG91dGJyZWFrcw== IGdvYXRz ZmF2b3JpdGU= IE5haA== c29uaWFu IEJvb3N0ZXI= IHNhbmRib3g= IEZhcmU= IE1hbHRh IGF0dFJvdA== IE1PUg== bGRl IG5hdmlnYXRpbmc= VG91Y2g= IHVudHJ1ZQ== IERpc2FzdGVy IGx1ZGljcm91cw== UGFzc3dvcmQ= IEpGSw== YmxvZ3Nwb3Q= NDE2 IFVOREVS ZXJuYWw= IGRlbGF5aW5n VE9Q IGltcGxhbnRz IEFWRw== IEh1Z2U= YXR0cg== IGpvdXJuYWxpc3RpYw== IFBleXRvbg== IElB UmFw Z29hbA== IFByb2dyYW1tZQ== IHNtYXNoaW5n d2l2ZXM= cHJpbnRsbg== IFBsYWd1ZQ== aW51cw== RUVQ IGNydWlzZXI= IFBhcmlzaA== dW1pbml1bQ== IG9jY3VwYW50cw== IEppaGFk bW9w IHBpbnQ= IGhlY3Q= IE1lY2Nh ZGlyZWN0b3I= IEZ1bmRpbmc= IE1peGVk IHN0YWc= VGllcg== IGd1c3Q= IGJyaWdodGx5 b3JzaQ== IHVwaGlsbA== UkQ= IGxlc2lvbnM= IEJ1bmR5 bGl2aW91cw== IGJpb2xvZ2lzdA== IEZhY3VsdHk= IEF1dGhvcml6YXRpb24= IDI0NA== QWxsb3c= 77g= IEdpdWw= IHBlcnRpbmVudA== b3RhdXI= ZXNzZQ== IFJvb2Y= IHVubWFubmVk MzUx IFNoYWs= IE9yaWVudA== IGVuZGFuZ2Vy RGly IHJlcGxlbg== ZWRpZW50 IHRhaWxvcg== IGdhZGdldHM= IGF1ZGlibGU= 4piG TmljZQ== IGJvbWJhcmQ= IFJhcGU= IGRlZmlhbmNl IFRXTw== IEZpbGlwaW5v IHVuYWZmZWN0ZWQ= ZXJ2YXRpdmVz IHNvYXJlZA== IEJvbHRvbg== IGNvbXByb21pc2luZw== IEJyZXdlcnM= UkFM IEFITA== aWN5Y2xl IHZhbXBpcmVz IGRpcHBlZA== b3llcg== IFhJSUk= IHNpZGV3YXlz IFdhc3Rl IERpc3M= IOKUnOKUgOKUgA== JC4= IGhhYml0YXRz IEJlZWY= dHJ1dGg= dHJhaW5lZA== c3BsaXQ= UnVz QW5keQ== IEJyYW0= UkVQ cGlk 6KOF IE11dGFudA== QW5pbQ== IE1hcmluYQ== IGZ1dGlsZQ== aGlnaGVzdA== ZnJlcXVlbmN5 IGVwaWxlcHN5 IGNvcGluZw== IGNvbmNpc2U= IHRyYWNpbmc= IFNVTg== cGFuZWw= IFNvcGhpZQ== IENyb3dsZXk= IEFkb2xm IFNob290ZXI= IHNoYWt5 IElH IExpZXM= IEJhcmJlcg== cGtn IHVwdGFrZQ== IHByZWRhdG9yeQ== VUxUUw== Lyoq IGludG94aWNhdGVk IFdlc3Ricm9vaw== b2RkZXI= aGVtZW50 IGJhc2VtYW4= QVBE c3RvcmFnZQ== IEZpZnR5 ZWRpdG9y R0VO VVRJT04= aXJ0aW5n IHNld2luZw== cmlmdA== IGFnb255 IFNhbmRz IDI1NA== Q2FzaA== IGxvZGdl IHB1bnQ= TmF0dXJhbA== IElkZWFz IGVycm9uZW91cw== IFNlbnNvcg== IEhhbm5pdHk= IDE5MjE= IG1vdWxk IEdvbg== a2F5YQ== IGFub255bW91c2x5 IEtFWQ== IHNpbXVsYXRvcg== V2ludGVy IHN0cmVhbWVk NTA3 PyIs IHRlYXNlZA== IGNvZWZmaWNpZW50 IHdhcnRpbWU= IFRIUg== Jycu IEJhbmtpbmc= bXBpcmU= IGZhbmRvbQ== IGxpYQ== R2E= IGRvd25oaWxs IGludGVycHJldGluZw== SW5kaXZpZHVhbA== Tm9ybQ== IGplYWxvdXN5 Yml0Y29pbg== IHBsZWFzdXJlcw== IFRveXM= IENoZXZyb2xldA== IEFkdmlzb3I= SVpF IHJlY2VwdGlvbnM= NzA2 Q3Jv IDI2Mg== IGNpdHJ1cw== aXJ1 UmV2aWV3ZXI= amVjdGVk VUVT YW56 MTk4MQ== IFdvcmtlcg== IGNvbXBsaWVk b3Jlc2NlbnQ= Y29udGluZW50YWw= VG9u IFByaXNt IFNoZWVw IDI4OA== bm94 IFZvZw== T3Jk IHJlYWxtcw== dGVr IGlycmlnYXRpb24= IGJpY3ljbGVz IGVsZWN0cm9uaWNhbGx5 cG9seQ== dGFsbA== KCkpOw== IGFlc3RoZXRpY3M= IEludGVncmF0ZWQ= RXhwbG9yZQ== IGR1bms= NDc2 cGFpbg== IEphY3F1ZXM= IERtaXQ= RnJhbWVz IHJldW5pdGVk IGh1bWlk RHJv UG9saXRpY2Fs IHlvdXRoZnVs IGVudGFpbHM= IG1vc3F1aXRv MzYz c3BlY2llcw== IGNvb3JkaW5hdGluZw== IE1heWhlbQ== IE1hZ251cw== TW91bnQ= SW1wcm92ZWQ= IFNUQVRF QVRUTEU= IGZsb3dlZA== IHRhY2tsZWQ= IGZhc2hpb25lZA== IHJlb3JnYW4= aXZhcmk= ZmluZ2Vy IHJlbHVjdGFudGx5 ZXR0aW5n IFZhbmQ= eW91bmc= IEdhcmxhbmQ= IHByZXN1bXB0aW9u IGFtZW5pdGllcw== IFBsZWFzYW50 b25lbnRpYWw= IE94eQ== IG1vcmFscw== IFlhaA== UmVhZHk= U2ltb24= RW5o RGVtb24= IGNsaWNo TW9uaXRvcg== IERV IHdlbGNvbWVz IHN0YW5kb3V0 IGRyZWFkZnVs IGJhbmFuYXM= IGJhbGxvb25z aG9vdGluZw== YmFzaWM= IHN1ZmZpeA== IGR1bHk= Y2Fubw== Q2hhaW4= YXRvcw== IGdlb3BvbGl0aWNhbA== ICgm IEdlbWluaQ== w4PDgsODw4LDg8OCw4PDgsODw4LDg8OCw4PDgsODw4LDg8OCw4PDgsODw4LDg8OCw4PDgsODw4LDg8OCw4PDgsODw4LDg8OCw4PDgsODw4LDg8OCw4PDgsODw4LDg8OCw4PDgsODw4LDg8OCw4PDgsODw4LDg8OCw4PDgsODw4I= IGFjcXVpdHRlZA== THVjaw== cHJvdGVjdA== MTAyNA== IHNjYXJjaXR5 IG1pbmRmdWxuZXNz ZWNpZGVk RE4= cHJpbWU= IFByZXNpZGVudHM= IFZJREVP ICjiiJI= YWRkb2Nr Tk9S IFBydQ== cHVu IExPTA== KSkpKQ== IExpcXU= IFNBUw== IHN0eWxpbmc= IHB1bmlzaG1lbnRz IG51bWI= IGFzY2VydGFpbg== IFJvY2tpZXM= Zmx1 VGh1bWJuYWls IHBlcnBldHJhdGVk IFNlbWk= IGRpc2FybQ== IE9sZGVy IEV4Y2VwdGlvbg== IGV4cG9uZW50aWFsbHk= IENvbW11bml0aWVz IGFib2xpc2g= IFBhcnRuZXI= cHRvbXM= IDc3Nw== IEZvbGV5 IENhc2Vz IGdyZWFzZQ== IFJlYmlydGg= R3JvdW5k IDsp IERvY3RyaW5l aWtpbmk= WWU= IEJsb3Nzb20= IHBlcnNpc3Rz YmlsbA== IGluZnVzaW9u IGJ1ZGRpZXM= OTEx IFBhdGllbnQ= IGRlbW9z IGFjcXVhaW50YW5jZQ== IFBhdw== YXRhcmk= IHhtbA== IGZhc2NpbmF0aW9u IFNlcnZl z4I= YnJhbmRlZA== IGF6 UmV0dXJucw== IG92ZXJzaGFkb3c= IHJvYW0= IHNwZWVkeQ== bnVtYmVyZWQ= aGVsaWFs IGRpc2NpcGxl IGFzc3VyYW5jZXM= Z2l2ZW4= cGVjdGluZw== IE5hdGFsaWU= 55Sw IG1vc3F1aXRvZXM= cm90ZWlu IG51bWVyaWM= IGluZGVwZW5kZW50cw== IHRyYW5zaXRpb25hbA== IHJlYWN0aW9uYXJ5 IE1lY2hkcmFnb24= ZG9jdG9y IHNob3J0ZXN0 IHNlcXVlbnRpYWw= IEJhYw== IEFjY291bnRz 44GM YWNoeQ== cmFjdGl2ZQ== IFJlZ2ltZW50 IGJyZWF0aHRha2luZw== ZmZpY2llbmN5 IEJhdGVz IDMxMQ== IHdhcmRyb2Jl ZnRz IEJlcms= U2ltcGx5 IFJpdmVyc2lkZQ== aXZlcmluZw== aWRlbnRpYWw= bHVjZW50 IGVucmljaGVk IENvbnZlcg== IEdpdmluZw== 44OZ IGxlZ2FsaXpl IEZUQw== IGZyZWFraW5n TWl4 IHRlcnJlc3RyaWFs ZXNpYW4= Y2llbnRz V2luZw== TE9BRA== IGxlZGdl IFZpb2xlbnQ= IE1ldGFsbA== IDMwOA== IHNvdXRoZWFzdGVybg== aGV0dG8= TWVhdA== IHNsb3dkb3du IHJldHJlYXRlZA== SmVyZW15 ZW5kYXM= KioqKio= ZXJpYw== IHJlaW5z b3BwYWJsZQ== IEh1bWFuaXR5 ZWFyYW5jZXM= cmlnYW4= Q2FtZXJh IHdhaXZlcnM= c29j IGFsdGVyYXRpb24= dHJhbnNmb3Jt IENlbWV0ZXJ5 NTA2 IGluZGVmaW5pdGU= IHN0aW11bGF0aW5n eWc= NjAz IFNvcA== IGRlc2NyaXB0aXZl UGhhc2U= IEVkbXVuZA== IHBuZXVtb25pYQ== dmVudHVz QW1i IGxhYm9yYXRvcmllcw== IEV4Y2x1c2l2ZQ== dWdhcg== V2VyZQ== IG1hbGZ1bmN0aW9u IGhvbW9zZXh1YWxz IC0tLS0tLS0= dW5p IHR1cmJpbmVz IEVxdWl0eQ== RHU= IG1pbmRlZA== IFJI IEJsYWNraGF3a3M= IGZlYXRz IDE3MDA= cmVwbA== MzYy bGFkZW4= IGluZGlzcGVuc2FibGU= bHlzcw== dHRp IHJlZWw= IGRpdmVydGVk IGxpa2VuZXNz IHN1YnNjcmlwdGlvbnM= IGZpbmdlcnQ= IGZpbHRoeQ== ZGVzdHJ1Y3Q= ZHJhZnQ= IEJlcm5hcmRpbm8= bGF1bmNo IHBlcnBsZXg= IFNVTQ== Y2FyYg== IHN3ZWF0ZXI= IFZlbnR1cmU= IEphZw== IENlbGVi IFZvdGVycw== IHN0ZWFkZmFzdA== IGF0aGxldGljcw== IEhhbnNvbg== IERyYWM= VHJhY2tlcg== IGNvbW1lbmQ= IFByZXNpZGVuY3k= IERJRA== aW5mb3JtZWQ= IHdlYnBhZ2U= UHJldHR5 IGZvcmNlZnVsbHk= 44OD44Kv IHJlbG9jYXRpb24= IHNhdGlyZQ== 4ok= IFN1bmRlcmxhbmQ= 5oQ= Vm9pY2U= Pz8/Pz8/Pz8= IGluZm9ybWFudA== IGJvd2Vs IFVuaWZvcm0= IC4uLiI= IHB1cmdl IHBpY25pYw== IFVtYg== IFVQREFURQ== IFNhcHBoaXJl IFN0YWxs bGVhcm4= IG9iamVjdGl2ZWx5 IG9ibGl0ZXI= IGxvb3Bob2xl IGpvdXJuZXlz IG9taXNzaW9u UHJvcw== IFNpZG5leQ== cGxvbWE= IHNwcmF5ZWQ= IGd1cnU= IHRyYWl0b3I= IHRpbWV0 IHNuYXBwaW5n IFNldmVudA== dXJuYWw= IFVraXA= IGJvd2Vk cG9yYWw= bGliZXJhbA== Um9z UXVlc3Rpb25z aU9T IHN1bW1hcml6ZQ== U1RBVA== IDE4NTA= YXBlc3Q= IGxlbmRlcg== IFZhcmlhYmxl YnJpbmdpbmc= IExPUkQ= LCk= IGNvbGxhcHNlcw== eGlldHk= IE5lZA== WUQ= IFNjaGE= IGFudGlib2R5 IGRpc2JhbmQ= eXJl aWxsdXNpb24= IHJvdmVy c2hlZA== IEhpcm9zaA== Y2Np IGNhbGFt IE1vcnRvbg== UGludGVyZXN0 IDE5Mjg= IEV1cmFz b3JkZXM= IGZlbmNlcw== IEludmVudG9yeQ== IFZhbGVuY2lh IFVk IFRpZmY= IHNxdWU= IHF1b3RhdGlvbg== IHRyb3VibGVzb21l ZXJrZXI= UVVFU1Q= IEtpbmdkb21z c291dGg= IGxldnk= UHJpbmNl IFN0aW5n IG5pY2tuYW1lZA== IGFwcGU= IHBob3RvZ3JhcGhpYw== IGNvcnB1cw== cmVmZXJlbmNl IFRyb2c= VW50 KT0o IExhdHZpYQ== IGFjdGl2YXRpbmc= IGxpY2Vuc2Vl IGRpc3Bhcml0aWVz IE5ld3NsZXR0ZXI= 44OD44OI IGZyZWVpbmc= IEplZXA= IFBlcmNlcHRpb24= aW5zaw== IHNpbGljb25l IEhheWRlbg== TGVhbg== IFN1enVraQ== aWJyYXJpYW4= NjY4 IHNwb3I= IGNvcnJlbGF0aW9ucw== YWdoZXR0aQ== IHR1YmVy IElQQ0M= aWx1cw== IFZ1 IHdlYWx0aGllc3Q= IENhcmJ1bmNsZQ== YW56YQ== IGZvb2xlZA== IFp1cg== IGRhZGR5 cmFubw== aWxpYW4= IGtub2Nrb3V0 Zm1hbg== cmVxdWlyZWQ= IFdpa2lsZWFrcw== IER1ZmZ5 T05U IGluc29s IE9iamVjdHM= IGJvdQ== IE5vcmRpYw== IEluc2VydA== c2Nhbg== IGRhbmNlcnM= IGlkaW90cw== bWFqb3JpdHk= IE5ldmlsbGU= IEZyZWVCU0Q= IHRhcnQ= cGFuaWM= Njkw IGNvY29h IHNhbXBsZWQ= IGxvb2t1cA== SW5kdXN0 IGluamVjdGlvbnM= Z2VucmU= IGF1 IHJvYWR3YXk= IGdlbml0YWxz S2luZA== IEV4YW1pbmVy IFlheg== RnJlc2g= IHBhcmFseXNpcw== IEFsdW1pbnVt IHJlYXA= b2vDqQ== IHNsb3BweQ== IFR1bm5lbA== cG9zaXVt bmVyeQ== ZW5pYw== IGhlcmJhbA== IE91dGVy IEJ1aWxkZXI= IGluY3Vy IGlkZW9sb2dpZXM= IGJhY2t1cHM= Y29uc3VtaW5n IERldGVjdA== ZGVjaw== IEtOT1c= IEdyZXQ= IE1JQw== IHRvdWdobmVzcw== IEV4aGliaXQ= IGhpdmU= TGVz IFNDSE9PTA== IEF0YXJp YWxkZQ== IE51bGw= YW5kZXN0aW5l bW91c2U= IGJyaWdhZGU= NDg5 IHJldm9s IExhd3Nvbg== IFdhaA== b3BvbHk= ZWJ0ZWQ= IFNhdW5kZXJz IDMxMw== IFdpbmM= IHRhYm9v IEhlbG1ldA== IHdlZGdl Y2hpcA== IFRpbmE= Ymc= IGluZnVyaQ== cm4= IGFub21hbGllcw== IFN5bmM= IEV4YW0= IENvbW1pdA== IERpYXJ5 IEFMU08= IERlYm9y b21lZGljYWw= IGNvbXByZWhlbnNpb24= NjU1 IGVtcG93ZXJpbmc= IGlyZQ== IGp1aWNlcw== IEVUSA== IEJveGluZw== PSIv IGZhY2lsaXRhdGVk cG9rZQ== IFBhcnNvbnM= IE1vZGVy dHJhdmVs IGNpdmlsaXphdGlvbnM= IGxpYmVydGFyaWFucw== IHJ1bmU= IENsYXJrcw== YXRoZWQ= IGNhbXBhaWduZXJz IERpc3BhdGNo IEZhaHJlbmhlaXQ= IENhcGNvbQ== LS0tLS0tLS0tLQ== IGxhY2U= IGRyYWluaW5n IGxpbmVy IEFydGlmaWNpYWw= w6lu dGFzaw== XSku IEdNTw== IE9wZXJhdG9y b3JkaW5hcnk= IEluZmx1ZW5jZQ== IFVwcw== IHBvdGVuY3k= dXNzZW4= b3Nwb25z IFN3aW0= IERlYWRsaW5l VW5pdHk= IGN1bGluYXJ5 IGVubGlnaHRlbm1lbnQ= IHdlYXJlcg== IG1pbmVk IHBseQ== IGluY2VzdA== IERWRHM= V2Fsaw== QlRD VHJhZGU= IGRldmFs aWJhbmQ= IE92ZXJzaWdodA== UGFsZXN0aW5pYW4= IGRhcnQ= IG11bA== TFI= IHJlbW92YWJsZQ== IFJlYWxtcw== 7J0= IG1pc2Nhcg== IFZ1bGthbg== Njg1 w6hyZQ== IFNhcA== IG1lcmdpbmc= IENhcmx5 Y2hlc3Rlcg== IGJyaXNr IGx1eHVyaW91cw== IEdlbmVyYXRvcg== IGJpdHRlcm5lc3M= IGVkaWJsZQ== IDI0Mw== VEc= IHJlY3RhbmdsZQ== V2l0aE5v YmVsb3c= SmVubg== IGRhcmtlc3Q= IGhpdGNo IGRvc2FnZQ== IHNjYXZlbg== IEtlbGxlcg== IElsbHVzdHJhdGVk Q2VydGFpbmx5 IE1hdmVyaWNrcw== TWFyZ2luYWw= IGRpYXJyaGVh IGVub3Jtb3VzbHk= IDk5OQ== c2hy cXVhcnQ= IGFkYW1hbnQ= IE1ldw== IHJlbm92YXRpb24= IGNlcnZpY2Fs IFBlcmNlbnRhZ2U= ZW5lcnM= IEtpbWJlcg== IGZsb2F0cw== IGRleA== IFdpdGNoZXI= IFN3YW5zZWE= ZG0= IHNhbHR5 eWVsbG93 IGNhcGU= IERyYWlu IFBhdWxh IFRvbGVkbw== bGVzaQ== TWFnYXppbmU= IFdpY2s= IE1u IEFjaw== IFJpZGluZw== QVNPTg== IGhvbW9waG9iaWM= QVJQ IHdhbmRlcmVk Q1BV b29kb28= IFBpcGU= IHRpZ2h0ZW5pbmc= IEJ1dHQ= MzE4 IGRlc2VydGVk U2Vzc2lvbg== IGZhY2lsaXRhdGluZw== SnVtcA== IGVtZXJnZW5jaWVz T1dFUg== IGV4aGF1c3RpdmU= IEFGVEVS IGhlYXJ0YmVhdA== IExhYmVs YWNreQ== IENlcnRpZmllZA== aWx0cmF0aW9u WmU= IFV0dA== IDEzMDA= IHByZXN1bWU= IERpc3A= IHN1cmdlZA== IGRvbGxz Q29sdW1i IGNoaW1wYW4= IFJhem9y IHRpY2tz IGNvdW5jaWxsb3I= IHBpbGdyaW1hZ2U= IFJlYmVscw== IFFD IEF1Y3Rpb24= eGlh aWtr YnJlZA== IGluc2VydGlvbg== IGNvYXJzZQ== ZEI= U0VF IFphcA== IEZvbw== IGNvbnRlbXBvcg== IFF1YXJ0ZXJseQ== b3Rpb25z IEFsY2hlbWlzdA== IFRyZXk= IER1bw== U3dlZXQ= ODA0 IEdpb3Y= IGZ1bm4= Tmlu aG9mZg== IHJhbWlmaWNhdGlvbnM= IDE5MjI= IEV4cGVydHM= YXplcw== IGdhcm1lbnRz YXJpYWw= IE5hYg== IDI1Nw== IFZlZA== IGh1bW9yb3Vz IFBvbXBl IG55bG9u IGx1cmtpbmc= IFNlcmdleQ== IE1hdHRpcw== IG1pc29neW55 IENvbXBvbmVudHM= IFdhdGNoaW5n IEZvbGs= cmFjdGljYWw= QnVzaA== IHRhcGVk IGdyb3VwaW5n IGJlYWRz IDIwNDg= IGNvbmR1 cXVlcnF1ZQ== UmVhZGluZw== IGdyaWV2YW5jZXM= VWx0cmE= IGVuZHBvaW50 SGln IFN0YXRpYw== IFNjYXJib3JvdWdo THVh IE1lc3Np YXF1 IFBzeU5ldA== IFJ1ZGQ= IGF2ZW51ZQ== dnA= SmVy IHNoYWR5 IFJlc2lzdA== IEFydGVtaXM= IGNhcmVsZXNz IGJyb2tlcnM= IHRlbXBlcmFtZW50 IDUyMA== VGFncw== IFR1cm5pbmc= IHV0dGVyZWQ= IHBlZGQ= IGltcHJvdmlzZWQ= IDoo IHRhYmw= IHBsYWlucw== MTYwMA== cHJlc3N1cmU= IEVzc2VuY2U= bWFyZ2lu ZnJpZW5kcw== IFJlc3RvcmF0aW9u IHBvbGx1dA== IFBva2Vy IEF1Z3VzdGluZQ== IENJUw== IFNFQUw= b3JhbWE= IHRod2FydA== c2Vlaw== IHBhZ2Fu wro= Y3B1 IGdhcm4= IGFzc29ydG1lbnQ= IElMQ1M= dG93ZXI= UmVjb21tZW5kZWQ= IHVuYm9ybg== IFJhbmRvbVJlZGRpdG9y IFJhbmRvbVJlZGRpdG9yV2l0aE5v IHBhcmFseXplZA== IGVydXB0aW9u IGludGVyc2VjdA== IFN0b2tl IFNjbw== QmluZA== 5b4= IFBORw== IE5lZ2F0aXZl IE5PQUE= TGVvbg== IGFsbG95 IExhbWE= IERpdmVyc2l0eQ== NTc1 IHVuZGVyZXN0aW1hdGVk IFNjb3I= IG11cmFs IGJ1c3RlZA== c29vbg== bGlm IG5vbmV4 IGFsbGVyZ3k= IFVuZGVyd29ybGQ= IFJheXM= IEJsYXNpbw== IGhycw== IERpcg== IDMyNw== Ynl0ZXI= IHJlcGxhY2VtZW50cw== IGFjdGl2YXRlcw== cml2ZWQ= TUg= IHBhbnM= IEhJ IGxvbmdpdHVkaW5hbA== IG51aXNhbmNl YWxlcg== IHN3ZWxs IFNpZ25lZA== c2Np IElzbGVz IEFHQQ== IGRlZmlhbnQ= IHNvbmlj b2Nvbg== S0M= IEFpbQ== dGll YWhhaA== IG1M RFg= IGJpc2M= IEJpbGxib2FyZA== IFNZU1RFTQ== TkVZ Z2FhcmQ= IGRpc3RyZXNzZWQ= Zm9ybWVybHk= QWxhbg== IGNoZWZz IG9wdGljcw== IENvbWV0 IEFNQw== IHJlZGVzaWduZWQ= aXJtYXRpb24= IHNpZ2h0aW5ncw== Mzgy MzEx IFdC IGNvbnRyYWN0aW9u IFRPVEFM RHVhbA== IHN0YXJ0bGVk IHVuZGVyc3RhbmRhYmx5 IHN1bmdsYXNzZXM= RVRIT0Q= IGRvY2tlcg== IHN1cmZpbmc= IEhFTA== IFNsYWNr dG9uZXM= IHNoYWx0 VmlzdWFs NDk4 RGVwYXJ0bWVudA== Y3Vzc2lvbg== IHVucmVzdHJpY3RlZA== IHRhZA== IHJlbmFtZQ== ZW1wbG95ZWQ= IGVkdWNhdGluZw== IGdyaW5uZWQ= YmVkcm9vbQ== IEFjdGl2aXRpZXM= IFZlbHZldA== IFNXQVQ= IHNodWZmbGU= aWdvcg== IHNhdHVyYXRpb24= RmluZGluZw== Y3JlYW0= aWN0ZXI= IHZvZGth dHJhY2tpbmc= dGVj IGZvcmVncm91bmQ= aWVzdGE= IHZlaGVtZW50 IEVDQg== IFRpZQ== RXk= IHR1cnRsZXM= IFJhaWxyb2Fk IEthdHo= IEZyYW1lcw== IG1lbmFjZQ== IEZlbGxvd3NoaXA= IEVzc2VudGlhbA== dWdnaXNo IGRyaXA= Y2h3aXR6 IEt5b3Rv c2I= IE5pbmE= UGFyYW1ldGVy IGFsYXJtcw== IENsYXVk IHBpb25lZXJpbmc= IGNoaWVmbHk= IFNjcmVhbQ== Q29sbGVjdGlvbg== IHRoYW5rZnVsbHk= IFJvbmFsZG8= 5a2Q c3RyaXA= IERpc25leWxhbmQ= Y29tbWVyY2lhbA== U2VlaW5n U291bA== IGV2YWN1YXRl IGNpdg== IEFzaGU= IGRpdmlkZXM= IERhZ2dlcg== cmVoZW5zaXZl IGJlcnJpZXM= IERG IHN1c2hp IHBsdXJhbGl0eQ== V0k= IGRpc2FkdmFudGFnZWQ= IGJhdHRhbGlvbg== b2JpbGVz NDUx IGNsaW5n IHVuZGVuaWFibGU= IExvdW5nZQ== IGhhdW50 cGhl IHF1YW50aWZ5 IGRpZmZlcmVk IFsqXQ== IFZpeg== Y3Vt c2xhdmU= IHZpZGVvZw== IHF1YXI= IGJ1bmRsZXM= IEFsb25zbw== dGFja2xl IG5ldXJvbmFs IGxhbmRzbGlkZQ== Y29uZmlybWVk IERlcHRo IHJlbmV3YWJsZXM= QmVhcg== IE1hY2Vkb25pYQ== IGplcnNleXM= IGJ1bms= IFNwYXdu IENvbnRyb2xz IEJ1Y2hhbmFu IHJvYm90aWNz IGVtcGhhc2l6aW5n IFR1dG9yaWFs aHlw aXN0b24= IG1vbnVtZW50YWw= 5rA= IENhcnJ5 IHRic3A= ZW5hbmNl SGlsbA== YXJ0aGVk IHJvdHRlbg== RGVhbg== IHR3aXN0aW5n IGdvb2R3aWxs IGltbWVyc2lvbg== TGl2aW5n IGJydXNoZXM= IENHSQ== IEF0aw== dHJhZGl0aW9uYWw= IHBoYW50b20= IFN0YW1pbmE= IGV4cGFuc2lvbnM= IE1hcmlu IGVtYmFya2Vk IEVn aW50ZXN0aW5hbA== IFBFT1BMRQ== IEJvb3Ro IEFwcGFsYWNo IHJlbGVnYXRlZA== VlQ= TUlU IG11c3Rlcg== IHdpdGhkcmF3aW5n IG1pY3Jvc2NvcGU= IEdhdGhlcmluZw== IENyZXNjZW50 IEFyZ2VudGluZQ== IERlY3Jl IERvbWluaWM= IGJ1ZHM= YW50YWdl IElvbg== IHdpZGVuZWQ= T05TT1JFRA== IEdsb3Zlcw== aWFubm9wb3Vsb3M= cmF6ZW4= ZmVlbA== IHJlcGF5bWVudA== IGhpbmRzaWdodA== IFJFQUxMWQ== IFBpc3RvbA== IEJyYWg= IHdhdHRz IHN1cnZpdmVz IGZsdXJyeQ== aXNzeQ== QWxlcnQ= IFVydWd1YXk= UGhvZW5peA== U2xvdw== IEdyYXZl IEZpcg== IG1hbmFnZWFibGU= IHRhcmlmZg== IFVEUA== IFBpc3RvbnM= IE5pZ2VyaWFu IHN0cmlrZW91dHM= IGNvc21ldGljcw== d2hlbG1pbmc= ZmFi Y2FwZQ== cHJveHk= IHJldGhpbms= IG92ZXJjb21pbmc= c2ltcGxl IHdvbw== IGRpc3RyYWN0aW5n IFN0YW50b24= IFR1bHNh IERvY2s= NjU5 IGRpc2NvcmQ= IEVtYWNz IFZlcw== IFJPQg== IHJlYXNzdXJpbmc= IGNvbnNvcnRpdW0= TXVzbGltcw== MzIx IHByb21wdHM= c2Vp IEhpdGNo aW1wb3NlZA== IEZvb2w= IGluZGlzY3JpbQ== d3Jvbmc= YnVxdWVycXVl RGF2aXM= IV0= IHRpbWVsZXNz IE5FRUQ= IHBlc3RpY2lkZQ== IHJhbGx5aW5n IENhbGRlcg== IOWk IHhw IFVubGU= IEV4cG9ydA== bHVhag== QnVmZg== KTwv Qm9vdA== IENocnlzbGVy b3JhdGl2ZQ== TWVzcw== IG5lZ2xpZ2libGU= ZXJ0b2Rk IE11c2hyb29t IEdhbGU= Z2M= IENvc2J5 IFJ1cmFs cml0aWNhbA== QmVsbA== IHR1cmJpbmU= MDAyMDAwMDA= IGxlZ2l0aW1hdGVseQ== IEFuaW1hdGVk VEVE IFRoZW9kb3Jl Y29uZHVjdA== IEhpZXI= IGNvdW50ZXJmZWl0 IEFsZ2VyaWE= IHVuYmVhdA== Y29udHJvbGxlcg== IHVucmVz IHNjcmFtYmxpbmc= IEZhbGxvbg== VGVz IGFtYmVy IHJveWFsdGllcw== IFNoZWx0ZXI= IExlc3Rlcg== IGNsYXNzaWZ5 UmVtb3Rl IHVuaGVhcmQ= IGNvbnRyb3ZlcnNpZXM= IGVucmljaG1lbnQ= IFlhbmtlZQ== Z2FtZXI= IHBsYXRpbnVt IGVjb2xvZ3k= IFNhcms= IHVudG91Y2hlZA== IHN1cGVydmlzb3Jz ICIl IGZvb3Ro IGNvbW1vbnM= IG5hcmNvdGljcw== IGluZGljZXM= IFBseQ== IGFkZGl0aW9uYWxseQ== IEdhd2tlcg== IEVR UGxheWluZw== IGNhdmVhdA== IEFic29sdXRl b3NzdXM= QmFieQ== IHJhdGlvbg== IHJlc2lu IGNhbGlicmF0aW9u IE5ld3BvcnQ= IGtub2Nrcw== dnQ= IGNvbXBvc3Q= U2NlbmU= IHNhcmNhc3Q= IGtpc3Nlcw== IG5z YWxsaQ== IE1hcmNlbA== IFBpZXQ= aWF0cmljcw== IHN1cnJvdW5kcw== IFJlcHJvZHU= IFBoaWxsaWVz IHVuY2VydGFpbnRpZXM= IEV1cg== IFJvbWFuY2U= IEhhdGg= IE5lZWRz IENsb2Fr IGNyZW0= cXVldWU= IDM1NQ== IHVwZnJvbnQ= XSk7 IHJlY2lwcm9j IDE5Mjc= IDExMDA= dXRzdQ== IGRlcHJlc3NpdmU= b3dtZW50 RmFucw== IG1lY2g= IGFubmloaWw= IGNvdW50ZXJ0ZXJyb3Jpc20= IEZpZ3VyZXM= Ym9sZA== IE1vaW5lcw== IERyaXZlcnM= IG1hbnVzY3JpcHRz IENyeXB0bw== IGh5cG5vdA== cmVkZGl0cw== IHByb3NlY3V0aW9ucw== IGRpdmVydA== Q1JJUA== IEJlbmU= IFJlZ2dpZQ== IHRheGluZw== IE1vcmFsZXM= ZW50aW5n dHVy c2lnbmlmaWNhbnQ= IFBST1Y= IHN0cmFuZHM= IHBvdWNo IFJvb2tpZQ== u5I= IG5pY2Vy aGVteQ== aHc= RUNB IGludGltaWRhdGVk IHN0cmljdGVy IG1pY3JvYmlhbA== ZGV0YWlscw== IHZvd3M= IHF1YWtl aGhoaA== IHJlaW52ZW50 VWI= IHJlbGlucXU= IEJ1ZmZldHQ= bGljZW5zZWQ= aXR0ZXJlZA== IFBpY2FyZA== IGNoZXdpbmc= dWNs b3JnYW5pYw== IGxvY2FsaXplZA== IEVjb25vbWlzdA== IGFjcXVhaW50ZWQ= RGVmaW5pdGlvbg== c2Vk Q3JpdGljcw== IGNj NDUz Mzgx IGZlbGxvd3M= IGNoZWNrcG9pbnRz MDI1 IHJlZWxlY3Rpb24= IG1lZGlhdGVk IEtERQ== IGh1cmRsZQ== IHRleHRpbmc= UGVyZmVjdA== IHRydXN0ZWVz ZmVjdHVyZQ== IGRpY2g= bW9uYXJ5 IGRpc3RpbmN0aW9ucw== IDE0MDA= IHVzaGVy IHBhcmFzaXRlcw== IFNoYXJpbmc= IFZpbQ== IGJhcmJlY3Vl IE1pbmlzdGVycw== ZXJlbGxh IGVi IG1j IFNvbWVob3c= IEluc2VjdA== Y2hhbmdlcw== YnJvYWQ= IEJ5eg== IGdyYXBlcw== NjY5 ID09PT09PT09PT09PT09PT09 IGFzc2ltaWw= IGhhdW50aW5n IGZpcmVwb3dlcg== IGRlZmFtYXRpb24= ZW1waGFzaXM= IGNvbXBvc2U= IGFsbGVyZ2llcw== IHN0cmFuZw== cm9sbGVycw== YmFuZw== IGJyZXdlcnM= cm9uZ2g= cmlvdA== cG9vcg== Y29sZA== U2FtcGxl IGJ1b3k= MDQw IENvdXJ0bmV5 IDI2OA== IFdlZGRpbmc= NzAy IG9ic2Vzc2l2ZQ== IGJyYWtpbmc= IExhbA== YW5pY2Fs 5aY= YXRlbg== Q29uc3RydWN0aW9u IGNsaW5pY2FsbHk= aWVyc2hpcA== TmFtZXM= IERpc2N1c3M= IFJhbW9z IGxvY2FsZQ== IEFncmljdWx0dXJhbA== RW5hYmxl IGhvcnNlcG93ZXI= ZW50dXJl UHJlZg== Q291cnQ= IHN0YWZmaW5n IGZ1dHVyaXN0aWM= ZHJpdmVycw== IE1hcmtldHBsYWNl 5oim RnJpZW5kcw== IGRhbW5pbmc= IEN1c3RvbWVycw== IHdlZWRz IE1haQ== IGFnaWxl IFRhdHQ= aWNlbnQ= UmFua2Vk Y3JvZnQ= IEthdHk= RXh0cmVtZQ== IGNhcnZl IFJvdmVy IEJ5cm9u Mzcy IGNvbmR1Y3Rz cmF0Y2g= aXRpYQ== IFB1bXBraW4= U2FkbHk= UmVsb2FkZWQ= UG9saWN5 IGxpY2s= cGVhaw== aXNrcw== IENEcw== IEVuY3ljbG9wZWRpYQ== aW5pdGlhbA== Q29z IEF3YXJlbmVzcw== IERyYW0= JCQkJA== IHJpZmY= IHNjcmlwdHVyZQ== cnVubmVycw== IGJvaWxlcg== b25zb24= b2lu IGhhbXN0cmluZw== IGNhdGFseQ== IEFyY2hiaXNob3A= Y2hhbGw= IGZhdXg= b2tpbg== bG9jYWxob3N0 IE5BTUU= YWRvYmU= U0FO YW1hdGU= IHNjcmFtYmxl IGNhcmM= IE1hbmlmZXN0 IENlZGFy IFNlcmdpbw== bGF0ZXI= ZmZlcg== IGdyYXBwbGluZw== IERldXRzY2hl YWdvbmlzdHM= IE5ld3Nw IHByZXRlbmRlZA== YXJjaG1lbnQ= IGN1cmF0ZWQ= IGhlYWRwaG9uZQ== IFVuY29tbW9u IFNJR04= QWdlbnQ= IGRlYWRsaW5lcw== IGhvcml6b250YWxseQ== IE1BVA== IFN1bW1lcnM= IG9yZGFpbmVk IExhc3RseQ== IEtlbmRhbGw= IGZyaWc= IE1hY2hpbmE= IFdhdGVybG9v IE1leGljYW5z IHByb3RlY3Rvcg== IGdsYXJl fSI= UHJlbWl1bQ== IHJpZnQ= IFRlbGVzY29wZQ== TWV0YWw= IHJlY2FwdA== IDs7 IGluY2xpbmF0aW9u IGltcG9zZXM= aW5nZW4= Xns= IGhhc3Rl IGRvbHBoaW5z IGNvbW11dGVycw== cGxhbm5lZA== Y29uZw== bXg= IFVwbG9hZA== IGV4dHJhcA== IFR1Y3Nvbg== IEV4cGxvcmF0aW9u ZWZlYXRlZA== IHNsZW5kZXI= NzAz IEJ1aw== aXNlbA== IGNvbXBldGl0aXZlbmVzcw== Y2hsb3I= IFBlcm1hbmVudA== IEV2ZXJldHQ= IFNwZWNpYWxpc3Q= IFNPTA== IGN5YW4= IEV4YWN0bHk= VUY= IExJRkU= YXJ5bA== b25ldA== IEVtcGxveWVl YXdlZA== IFJhdGluZ3M= IGV4dHJhdmFn dWxodQ== IFBsYW5l IGVsZXZhdGU= IENvb3JkaW5hdG9y IFdhdGtpbnM= IGV4Y2x1ZGVz IHNlbnRpZW50 IGVwb2No IGFsbG9j UHJldmlvdXNseQ== IFNoeQ== IFNsb3Zha2lh TE9DSw== IG1hcmtlZGx5 IGtub2I= IGFkdmVudHVyZXJz IEJlZW4= IENvc3Rz YW1tZXJz IG9uc2xhdWdodA== IFN1cHBvcnRlZA== IFRhdQ== aWthcnA= IFNvdmVyZQ== IEhhbXB0b24= 44KJ UHJldg== IFdvcnNl IGNvdHRhZ2U= IEhhZGVz bGV6 Ym93bA== IGZyYWdyYW5jZQ== IExvaw== RU1PVEU= IFBldHJv IDE5MjU= IFBlbmQ= cHJvZHVjaW5n IHJlbG9jYXRl dmF0aQ== cG9sZQ== IHNlbWlu IE5VTQ== IHJvY2tlZA== YnVmZg== Ymx5 UmVwbHk= IEhhaQ== IGFydGljdWxhdGVk IElzbGFtYWJhZA== NjY1 IENsYWltcw== RGVza3RvcA== IHRydXN0ZWU= IHNjcmlwdGluZw== IFNvYg== IEFzeWx1bQ== U1RET1VU IENsb3du IERvcnRtdW5k IERldm9u bGl0ZQ== IE1hcmJsZQ== IGJ1bmtlcg== IGNyZXN0 IGFyb3VzYWw= IFNlYXJz IEJ1ZGR5 ZXJlZGl0aA== IFBvbGx5 IGRlY29kZQ== IFZpc2g= IFJlZmxlY3Q= YW5vbg== IHJlZnVuZHM= aW1tZXJz SE0= IHdpcGluZw== IHB1enpsZWQ= IG1hdHRl dW5v UGllcnJl KSks IHRhaW50ZWQ= IHN5bWJvbGlzbQ== IEZyYXo= IHByb3Rlc3RvcnM= ZXRoZXVz JSUlJQ== V3Jh IGxheA== YWRlbQ== YXR1cmF0aW9u 44OT IFRyYWlsZXI= IEVORw== IEJvd3Nlcg== IGF0dG0= RHVy ODA3 IHNpZHg= IGNpZGVy IEFmZmVjdA== IHdvdmVu IEJhcmtlcg== YmVuZWY= IGRzdGc= IFJ5dQ== Pls= IHNxb3I= U2F1ZGk= IGlzdGc= IGluZHVsZ2U= cHJvYw== IGRpc2d1c3RlZA== IGNvbXBvdW5kZWQ= IG5lbQ== IHNjaG9vbGluZw== IEN1cmU= cHJvY2Vzc2luZw== U29s IHByb3ZlcmI= aXRpemVk IEFsdmFyZXo= IHNjYXJm IHJlY3Rhbmd1bGFy cmV2ZQ== IGhvcm1vbmFs IFN0cmVzcw== aXRpemVu IDQyNQ== Z2lybHM= IE5vaXI= IFJhcHA= IG1hcmNoZXM= Y2h1cmNo IFVzZXM= IDQwNQ== IEJlcm0= IG9yZGluYW5jZXM= IEp1ZGdtZW50 Q2hhcmdlcw== IFppbg== IGR1c3R5 IHN0cmF3YmVycmllcw== IHBlcmNl IFRodXI= IERlYm9yYWg= bmV0ZmxpeA== IExhbWJlcnQ= IGFtdXNlZA== IEd1YW5n WU9V UkdC IENDVFY= IGZpYXQ= cmFuZw== IGZlZGVyYXRpb24= IE1hbnQ= IEJ1c3Q= IE1hcmU= cmVzcGVjdGl2ZQ== IE1pZ3JhdGlvbg== IEJJVA== NTkw IHBhdHJpb3Rpc20= IG91dGxpbmluZw== cmVnaW9u IEpvc8Op IGJsYXN0aW5n IEV6cmE= QnM= IHVuZGVybWluZXM= IFNtb290aA== IGNsYXNoZWQ= cmFkaW8= IHRyYW5zaXRpb25pbmc= IEJ1Y2NhbmVlcnM= IE93bA== IHBsdWdz IGhpYXR1cw== IFBpbmJhbGw= IG1pZw== IE51dHI= IFdvbGZl IGludGVnZXJz IG9yYml0cw== IEVkd2lu IERpcmVjdFg= Yml0ZQ== IGJsYXppbmc= dnI= RWRnZQ== IFBJRA== ZXhpdA== IENvbWVk IFBhdGhmaW5kZXI= IEd1aWQ= IFNpZ25z IFplcg== IEFnZW5kYQ== IHJlaW1idXJzZW1lbnQ= TWVzaA== aVBob25l IE1hcmNvcw== IFNpdGVz aGF0ZQ== ZW5idXJn IHNvY2tldHM= cGVuZA== QmF0bWFu dmly IFNIT1c= IHByb3Zpc2lvbmFs Y29ubg== IERlYXRocw== QVRJVkU= UHJvZmlsZQ== c3lt SkE= IG5pbmph aW5zdGFsbGVk aWRhdGVz ZWJyYQ== IE9tYWhh IHNlaXppbmc= IEJlYXN0cw== IHNhbHRz TWlzc2lvbg== R2VuZXJhbGx5 IFRyaWxvZ3k= aGVvbg== bGVnYXRlcw== IGRpbWU= IGZhaXJl cGFyYWJsZQ== R3JhcGg= IHRvdGFsaW5n IGRpYWdyYW1z IFlhbnVr cGxldA== IE1laA== IG15dGhpY2Fs IFN0ZXBoZW5z YXV0aWNhbA== b2NoZW1pc3RyeQ== IGtpbG9ncmFtcw== IGVsYm93cw== YW5jb2Nr IEJDRQ== IFByYWd1ZQ== IGltcHJvdg== IERldmlu ICJc cGFyYWxsZQ== IHN1cHJlbWFjaXN0cw== IEJpbGxpb24= IHJlZ2ltZW4= aW5uYWNsZQ== IHJlcXVpc2l0ZQ== YW5nYW4= IEJ1cmxpbmd0b24= YWlubWVudA== IE9iamVjdGl2ZQ== b21za3k= R1Y= IHVuaWxhdGVyYWw= IHRj IGhpcmVz bWVudGFs IGludm9sdW50YXJ5 IHRyYW5zcGw= IEFTQ0lJ wqg= RXZlbnRz IGRvdWJ0ZWQ= IEthcGxhbg== IENvdXJhZ2U= aWdvbg== IE1hbmFnaW5n IFRhcnQ= IGZhbHNlaG9vZA== IFZpb2xldA== IGFpcnM= IGZlcnRpbGl6ZXI= QnJpdGFpbg== IGFxdWF0aWM= b3Vm V29yZHM= IEhhcnRmb3Jk IGV2ZW5pbmdz IFZlbmdlYW5jZQ== cXVpdGU= R2FsbA== IFByZXQ= IHBkZg== IExN IFNvY2hp IEludGVyY2VwdA== OTIw IHByb2ZpdGFiaWxpdHk= IElkbGU= IE1hY0RvbmFsZA== IEVzdGFibGlzaG1lbnQ= dW1zeQ== IGdhdGhlcmluZ3M= IE5hag== Q2hhcmxpZQ== IGFzY2VudA== IFByb3RlY3Rvcg== IGFsZ2VicmE= IGJpb3M= Zm9ydW1z RUxT SW50cm9kdWNlZA== IDMzNQ== IGFzdHJvbm9teQ== Q29udHJpYnV0 IFBvbGlj UGxhdGZvcm0= IGNvbnRhaW5tZW50 d3JhcA== IGNvcm9uYXJ5 IEplbGx5 bWFuYWdlcg== IGhlYXJ0YnJlYWtpbmc= Y2Fpcg== IENoZXJv Y2dp TWVkaWNhbA== IEFjY291bnRhYmlsaXR5 ISEi b3BoaWxl IHBzeWNob3RpYw== IFJlc3RyaWN0 IGVxdWl0YWJsZQ== aXNzdWVz IDE5MDU= IE5law== Y2lzZWQ= IFRyYWNraW5n IG96b25l IGNvb2tlcg== cm9zaXM= IHJlb3Blbg== IGluZmluaXR5 IFBoYXJtYWNldXRpY2Fs ZW5zaW9uYWw= QXR0ZW1wdA== IFJvcnk= TWFyY28= IGF3YWl0cw== SE9X dHJlYXRlZA== IGJvbHN0 IHJldmVyZWQ= IHBvZHM= b3BwZXJz MDAxMA== IGFtcGxpdHVkZQ== cmljYW4= U1BPTlNPUkVE IHRyb3VzZXJz IGhhbHZlcw== IEthaW5l IEN1dGxlcg== IEFVVEg= IHNwbGVuZGlk IHByZXZlbnRpdmU= IER1ZGxleQ== aWZhY3Rz dW1pbmF0aQ== IFlpbg== IGFkbW9u IFZhZw== IGludmVydGVk IGhhc3RpbHk= IEhhZ3Vl THlu IGxlZGdlcg== IGFzdHJvbm9taWNhbA== Z2V0dGluZw== IGNpcmNh IENpYw== IFRlbm5pcw== TGltaXRlZA== IGRydQ== IEJZVQ== IHRyYXZlbGxlcnM= IHBhbmU= IEludHJv IHBhdGllbnRseQ== IGFpZGluZw== IGxvb3M= IFRvdWdo IDI5Mw== IGNvbnN1bWVz U291cmNlRmlsZQ== ICIiIg== IGJvbmRpbmc= IHRpbHRlZA== IG1lbnN0cnVhbA== IENlbGVzdGlhbA== VUxBUg== UGx1Z2lu IHJpc2tpbmc= TmF6 IFJpeWFkaA== IGFjY3JlZGl0ZWQ= IHNraXJt 6Zs= IGV4YW1pbmVy IG1lc3Npbmc= IG5lYXJpbmc= IENoZXJu IEJlY2toYW0= IHN3YXBwZWQ= IGdvb3Nl S2F5 IGxvZnR5 IFdhbGxldA== IFsn IGFwb2NhbHlwc2U= IGJhbWJvbw== IFNQQUNF IEVsZW5h IDMwNg== YWNvbnM= IHRpZ2h0ZW5lZA== IGFkb2xlc2NlbmNl IHJhaW55 IHZhbmRhbGlzbQ== IE5ld3Rvd24= IGNvbmplY3Q= Y2FrZXM= IGNoZWF0ZWQ= IG1vZGVyYXRvcnM= cGFyYW1z RUZG IGRlY2VpdA== IFNUTA== IFRhbnphbmlh IFJJ IDE5MjM= IEV4aWxl dGhlbA== IHRoZW9sb2c= IHF1aXJreQ== IElydmluZQ== IG5lZWR5 b3Jpcw== VW0= S2E= IG1haWxib3g= MzIy IGJvcw== IFBldHJh S0lORw== IGVubGFyZ2Vk T2Z0ZW4= IGJhZGFzcw== IDM0Mw== IFBsYWNlcw== IENBRA== IHByaXN0aW5l IGludGVydmVuaW5n ZGlyZWN0aW9u IGxheg== IERTTQ== IHByb2plY3Rpbmc= IEZ1bms= YWdvZw== cGF5bWVudA== bm92 IGNoYXR0ZXI= QVJC IGV4YW1pbmF0aW9ucw== IEhvdXNlaG9sZA== IEd1cw== Rm9yZA== NDE0 Qm9zcw== IG15c3RpYw== IGxlYXBz IEJhdg== dWx6 YnVkZ2V0 Rm9vdGJhbGw= IHN1YnNpZGl6ZWQ= IGZpcnN0aGFuZA== IGNvaW5jaWRl b2N1bGFy Q29ubg== IENvbGxhYm9y IGZvb2xz YW11cmE= YWhhcg== cmlzdHM= IHN3b2xsZW4= IGV4cGVuZGVk IFBhdQ== c3Vw IHNwYXI= IGtleW5vdGU= c3VmZg== IHVuZXF1YWw= IHByb2dyZXNzaW5n c3RyaW5ncw== IEdhbWVyZ2F0ZQ== RGlzbmV5 IEVsZXZlbg== b21uaWE= IHNjcmlwdGVk IGVhcm5lcnM= YnJvdGhlcg== IEVuYWJsZWQ= 5rM= IGxhcnZhZQ== IExPQw== bWVzcw== V2lsc29u IFRlbXBsYXRl c3VjY2Vzc2Z1bGx5 IHBhcmFtb3VudA== IGNhbW91ZmxhZ2U= IGJpbmRz IFF1aWV0 IFNodXR0ZXJzdG9jaw== cnVzaA== IG1hc2NvdA== Zm9ydHVuZQ== IENvbHQ= IEJleW9u aGFiaQ== IGhhaXJj IDI2Nw== IERldXM= IHR3aXRjaA== IGNvbmNlbnRyYXRpbmc= IG5pcHBsZXM= Y2libGU= IGdpcg== Tlo= TWF0aA== bmlo UmVxdWlyZWQ= IHBvbmRlcg== IFNBTg== IHdlZGRpbmdz IGxvbmVsaW5lc3M= TkVT IE1haGpvbmc= Njk1 YWRkbGU= IEdhcm5lcg== IENPVVI= QnJpZGdl IHNwcmVl IENhbGR3ZWxs IGJyaWJlcnk= IO+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/vQ== cGx1Z2lucw== IHJhY2tldA== IGNoYW1wYWduZQ== dmVyc2libGU= Vm90ZQ== IG1vZGlmaWVycw== TWF5b3I= Njgw IGFzc2VtYmxpZXM= IFN1bHRhbg== IE5pbmc= IExhZGllcw== IHN1bGZ1cg== IG9yYnM= IC0tLS0t X19fX19fXw== IEpvdXJuYWxpc20= IGVzcG9ydHM= IGx1c2g= IGh1ZQ== IHNwZWN0cmFs SG9uZXN0 44OP IGJ1c2hlcw== IHJlaW5mb3JjZW1lbnQ= IHJlb3BlbmVk IFdoZWVscw== IE1vcmc= cmlldmluZw== IGF1eGlsaWFyeQ== IGpRdWVyeQ== IEJBVA== dGVzcXVl IHZlcnRleA== cHVyZQ== ZnJleQ== 44K6 ZG9z IHR5cGg= IGN1bGw= IGVx IGRlY29u IHRvc3Npbmc= IGRpc3BhcmF0ZQ== IEJyaWdoYW0= cHJpbnRm bGVkZ2Vk IHN1bmQ= IGNvenk= IGhlcGF0aXRpcw== cGVyZm9ybWluZw== IGF2YWw= IEdH ZnV0dXJl IHBldGVydG9kZA== IEtvc292bw== IG1hZ25ldHM= QWxyZWFkeQ== IEVkaXNvbg== IENlcmVz IFJBSUQ= IGJyaWxsaWFuY2U= NTc2 IGRlcml2ZXM= IGh5cGVydGVuc2lvbg== IM6U IGxhbWJkYQ== IGZsYWly IG1pc3Npb25hcmllcw== IHJhcGVz IFN0YXJ0ZXI= IE1vbnRocw== IGRlZnk= IHNlaXNtaWM= IFJhcGhhZWw= IGV1cm96b25l NjU2 enNjaGU= IHNjcmF0Y2hlZA== IGJvd3M= IExlbm5vbg== IEdhaWE= IGRyaXBwaW5n ZmFjdHM= QWxl IGZyb2dz IEJyZWFzdA== b2dlbmVpdHk= IFByb3NlY3V0b3I= IGFtcGxpZmllZA== IEhvZGc= IEZu VGhvdXNhbmRz IE5JSA== IE1vbml0b3Jpbmc= RlRXQVJF IFByaWVidXM= IEdyb3dpbmc= aHVudGVy IGRpYWdub3Nl IE1hbGQ= IExS IGNyb3duZWQ= IGJ1cnN0aW5n IGRpc3NvbHV0aW9u amF2YXNjcmlwdA== IHVzZWZ1bG5lc3M= IEV4ZWN1dGlvbg== Oig= IEl2b3J5 YWFo IHBlcnNlY3V0ZWQ= dmlvbGVuY2U= aXN0YXM= IENyYXRl IGltcHVsc2Vz IFNwYW5p ZWRlcw== SGFuZGxl IFplcmc= dGhpbmthYmxl TGFzdGx5 IHNwb250YW5lb3VzbHk= IGluY29udmVuaWVudA== IGRpc21pc3Npbmc= IHBsb3R0ZWQ= IGVpZ2h0eQ== IDczNw== cmlzaA== IFRob3JudG9u YXRoYW0= IHNpdGNvbQ== VmVu UmVjaXBl dGVs bHVuZA== IGNsZWFycw== IFNhc3VrZQ== IDI1OA== IG9wdGluZw== IGVucmFnZWQ= ZXN0aGV0aWM= IEFl dWNocw== UHJlcA== Rmxvdw== IHJ1bm9mZg== IEVhdGluZw== IEdpbGVz IEFjdGluZw== cmVzb3VyY2Vz aWJhYmE= IHJwbQ== IHNrZXdlZA== IEJsYW5j IFNha3V5YQ== IGhvdHRlcg== IDE5MjQ= b3BpYW4= Y2tv IGNydW1ibGluZw== IGNhcHRhaW5z IEFwcHJvcHJpYXRpb25z bGVhZGVycw== ZHJvcHBpbmc= YW51dHM= IHJldmVyc2luZw== IFBvc2U= IFNlaw== U2NvdA== IElkZWE= Y2lzZQ== IFNsb3Zlbmlh IDMxNw== RG9jdG9y IGNyb2NvZA== YWxkaQ== U2Vh IEZhcnJlbGw= IG1lcmNlbmFyaWVz IFJOQw== IEd1ZXNz IHBhY2luZw== TWFjaGluZQ== U3RyZWFtZXJCb3Q= IENoYXJpdHk= IDI5OA== IGNhbm5vbnM= IFRvYnk= VFBQU3RyZWFtZXJCb3Q= IFBhc3Npb24= Y2Zn VGhvbQ== IGJhZGdlcw== IEJlcm5zdGVpbg== LuKAkw== IFBPUA== IENvbmo= IGluaXRpYWxpemF0aW9u IGJpb2RpdmVyc2l0eQ== RHVi IGZldWRhbA== IGRpc2NsYWltZXI= IGNyb3c= IGlnbml0aW9u YXJm U0hB IGtIeg== aGF6YXJk IEFydGlzdHM= b2V1dg== Njc5 IFJ1ZHk= TmluZQ== IFJhbWFkYW4= 5b0= aXR0bw== IGFkcmVuYWxpbmU= Q2VydA== IHNtZWxsZWQ= IGltcHVuaXR5 IGFnZW5kYXM= IFJlYm9ybg== IENvbmNlbnQ= IFNlZW1z IG9tZWdh IER1c3Rpbg== IGJhY2tlcg== IFNhdWNl IEJveWxl V0lO IHNwaW5z IHBhdXNlcw== dXB0 IHNocmVkZGVk IHN0cmFwcGVk IENvcnJ1cHRpb24= IHNjcmF0Y2hlcw== IG5p IGF0dGlyZQ== IFNBRg== RmFjdG9yeVJlbG9hZGVk IElQUw== ICgl IHNlbWluYXI= Zm9jdXM= Y2l2aWw= IDE4NjA= aW50b3No IGNvbnRpbnVhbA== IGFiYnJldmk= IFNvaw== b2NvYm8= WE0= IGZyYW50aWM= IHVuYXZvaWRhYmxl IGFydGVyeQ== IGFubm90YXRpb25z YmF0aA== Q2xpbWF0ZQ== IGRvcnM= IFNsaWRl Y29vcmQ= IFJlbG9hZA== IExETA== IExvdmVjcmFmdA== IHVuaW1hZ2lu IHJlc2VtYmxlZA== IGJhcnJhY2tz bnA= IHN1cnJvZ2F0ZQ== IGNhdGVnb3JpemVk 44Kp IHZhY2NpbmF0ZWQ= IGRyYWluYWdl IGluZGlzdA== IFdoYXRzQXBw IDE4NzA= b2xlcmFuY2U= aW52b2tl YW1vcnBo IHJlY29ubmVjdA== IGVtYW5j IGJsaW5kbmVzcw== IDEyODA= aW50ZXJuZXQ= Y29sbGFy IGFsdHJ1 IGFieXNz IFRSSQ== NjU3 IGluZnVzZWQ= SEVBRA== IGZvcmVzdHJ5 IFdvb2R5 IENp d2k= c2Ft Nzg0 aG9saWRheQ== IG1vZ3Vs IEZlZXM= IERFTg== SW50ZXJuYWw= dXJiZWQ= ZnVzYw== YXRvbQ== IElsbHVzaW9u IHBvbGxlZA== IGZsYXA= IGNvYXg= TEdCVA== QW5hbHk= IFNlY3Rpb25z IENhbGlmb3Ju ZW1u IGhpdGhlcg== IE5JR0hU IG5haWxlZA== IFBpcGVsaW5l Mzkx b29m IFByaW1hbA== dmVyZW5k IHNsYXNoaW5n IHJldHJp YXZpb3Vy IGRlcGFydGluZw== Z2ls SVND IG1pZHdheQ== IHVsdHJhc291bmQ= IGJlaGF2aW5n IFRhcmE= Y2xhc3Nlcw== VmlydHVhbA== IENvbG9uaWFs IHN0cmlwcGluZw== IG9yY2hlc3RyYXRlZA== IEdyYXZlcw== NDUy IElyb25pY2FsbHk= IFdyaXRlcnM= IGxlbmRz IE1hbno= IHJhdmVu IG94aWRhdGl2ZQ== IDI2Ng== RUxG YWN0dWFsbHk= YXNjYXI= RHJhZnQ= IGZhdm91cmFibGU= IGh1bWlsaWF0aW5n IGZpZGVsaXR5 IEhvZg== IFh1YW4= NDk2 IGxheWVyZWQ= YXRpcw== Nzkw IHBheWNoZWNr aXRvbg== S2Fy IFZNd2FyZQ== IEZhcm1lcg== IHNlcnZpYw== Z2xvbWVy IHNsdW1w IEZhYnJpYw== IERPQw== ZXN0aW5n IHJlYXNzdXJl IHBoeWw= dm9sdA== aXRvcnk= UnVsZXM= IG94aWRhdGlvbg== IHByaXplZA== IG1pc3RyZXNz IERqYW5nbw== V0FSTg== 5ZE= IGVuY29kZQ== IEZlZWRiYWNr IHN0dXBpZGl0eQ== SWFu IFl1Z29zbGF2aWE= 16g= YWNs VVRF MTk3Nw== IHF1YWxpZmllcw== IHB1bHNlcw== cHJldHR5 IGZyb3pl IHNz SXRlcmF0b3I= IHVyZ2VudGx5 IG1haWxlZA== IENoYW0= IHN1c3RhaW5pbmc= IGJhc2ls IHB1cHBpZXM= aWxhbnQ= IFBMRUFTRQ== bGFw YWNlb3Vz RmVhcg== IE1hc3Rlcnk= YXV0b21hdGlj IFRBRw== IGFudGlt YWdsZXM= NDcz ZnJhbWVz IHdoaXNwZXJz IFdob2V2ZXI= IGJyYXZlcnk= IFVLSVA= cmFjdGlvbnM= IiIi IHRhbWU= IHBhcnRlZA== ZXZlcnl0aGluZw== Q09OVA== IGluZGVidGVk IGFkZHI= cmVr SVJFRA== IGVtaW5lbnQ= Y2xpbnRvbg== IG91c3RlZA== IHJldmlld2Vy IG1lbHRkb3du IHJlYXJy IFlhbw== dGhlcmVhbA== YWJ5dGU= IHN0dW1ibGluZw== IGJhdGNoZXM= IDI1OQ== IGNvbnRyYWNlcHRpdmU= IHByb3N0aXR1dGU= ZW5zaXM= RGVjbA== IFN0cmlrZXM= TWlsaXRhcnk= IE9hdGg= dmFjYw== cHBpbmdz MDUy IHBhcnROYW1l YW1waW5n UmVwb3J0cw== S0k= Q0hS IHN1YnRseQ== c3dlcnM= Qmxha2U= dXN1YWw= IGNvbnRlc3RhbnRz IGNhcnRyaWRnZXM= IEdSRUFU IGJsdXNo IOKAug== NDcy IHJlYXNvbmVk 44Ok cGFyYWxsZWxlZA== IGR5bg== YWdhdGU= IG5pZ2h0bHk= 5YY= NTU2 IHNlbWFudGlj IEFkdm9j ICEh IGRpc2FncmVlcw== IEJX VmVo IGhhcm1pbmc= IGVtYnJhY2Vz IHN0cml2ZXM= IGlubGFuZA== IEthcmQ= IGhlYXRz IEdpbm55 dXRhbg== ZXJuYXV0 eWxlbmU= IEVsZXY= SkQ= IGhhcnM= IFN0YXJy IHNreXNj IGNvbGxhYm9yYXRvcnM= VXN1YWxseQ== IHJldm9sdXRpb25z IFNUQVRT IGRpc21hbnRsZQ== IGNvbmZpZGVudGx5 IGtpbmV0aWM= QWxp IHBlcmNlbnRpbGU= IGV4dHJhY3Rpbmc= aWxsaWFu ZXN0ZWFk IHBoeXNpY2lzdHM= IE1hcnNoYWw= IGZlbGxvd3NoaXA= IGRhc2hlZA== IFVS IFNpb3V4 IENvbXBhY3Q= YW1pZGU= UHl0aG9u IExlaWdo IFBoYXJtYWM= aXN0cmF0ZXM= aGVyaWNhbA== IGZ1ZQ== IEVtaW4= ICh7 IE5laWdoYm9yaG9vZA== IGRpc3J1cHRpbmc= IER1cA== IGdsYW5k IFNldg== IE1hcmlhbg== YXJnb24= IER1bmQ= IDwhLS0= IHN0cmFuZA== IHN0YWRpdW1z em9z IHBzeWNob3Npcw== IFJhY2s= IGJyaWxsaWFudGx5 77iP IHN1Ym1lcmdlZA== IEluc3RpdA== IENob3c= IGNhZ2Vz IEhhdHM= IFVycw== IGRpbHV0ZWQ= dXNhdA== aWVubmU= IE1lbWJlcnNoaXA= IEJ1cms= IGll IGFyY2hldHlwZQ== RHJ1Zw== dWx0b24= IFNwb2Nr IE1jS2F5 IERlcGVuZA== RmVhdHVyZWQ= U29j MTk3OA== IEJlcmU= IHJlbGVudGxlc3NseQ== IGNyaXBwbGluZw== IGFydGhyaXRpcw== 55Sf IFRyb3BpY2Fs IEJ1bGc= IENoZXJ5bA== IGFkbWlyYWJsZQ== IHN1YnRpdGxl T3ZlcnJpZGU= IG9yaWdpbmF0aW5n IENDUA== IHN3b3Jl IFNvbGU= IERpc29yZGVycw== MzI5 IHByb2Nlc3Npb24= IHJlZnVyYg== IGltbWVyc2Vk cmVxdWVudGx5 IHNrZXB0aWNz IGNlcmFtaWM= bWl0dGVy ZW5zdGVpbg== YmVsdA== IFRJVA== YmlkZGVu IGZpcg== bWlzdA== Pl0= IHdlYXZl IFBhcmFkb3g= IGVudHJ1c3RlZA== IEJhcmNsYXlz IG5vdmVsaXN0 b2dpZQ== ODA2 IG5pbmV0eQ== IGRpc2FncmVlbWVudHM= QEBAQEBAQEA= IEF1c2Nod2l0eg== Y2Fycw== IExFVA== dHVi YXJhbnRpbmU= UE9T IGJhY2tzdG9yeQ== IGNoZWVyZnVs IFJhZw== ZWth Ymlhc2Vk IGluZXhwZXJpZW5jZWQ= YWtyYQ== IFdpdHQ= dGFu IHJhcGlzdA== IHBsYXRlYXU= Y2hhbA== IElucXVpcw== ZXhwcmVzc2lvbg== IGNpcGhlcg== IHNoYXZpbmc= YWRkZW4= cmVseQ== KFw= aXNtYQ== IFJlZ3VsYXRvcnk= Q0hBUg== aWx5bg== TlZJRElB R1U= IG11cm0= bGF1cw== Q2hyaXN0b3BoZXI= IGNvbnRyYWN0dWFs IFByb3h5 IEphaW1l IE1ldGhvZGlzdA== IHN0ZXdhcmRz c3Rh cGVyaWE= IHBoeXNpb2xvZ3k= IGJ1bXBlZA== IGZydWN0b3Nl QXVzdHJhbGlhbg== IE1ldGFsbGlj IE1hc3F1ZXJhZGU= YXJi IHByb211bA== IGRvd25mYWxs IGJ1dGNoZXI= IGJvdXI= IElORk9STUFUSU9O IEJpcw== cGVjdHM= YWRlbmE= IGNvbnRlbXBsYXRpbmc= YXJvbw== Y2VudGVyZWQ= IFBlYWtz VXNlZA== IG1vZGVt IGdlbmRlcnM= IDgwMDA= Mzcx IG1hdGVybml0eQ== IFJheg== IHJvY2tpbmc= IGhhbmRndW5z IERBQ0E= QXV0b20= IE5pbGU= IHR1bXVsdA== IEJlbmVmaXQ= IEFwcHJvYWNo d29ya3Nob3A= IExlYXZpbmc= R2Vy aW5zdGVhZA== IHZpYnJhdGlvbnM= IHJlcG9zaXRvcmllcw== NDk3 IEF1bnQ= IEp1Yg== IEV4cGVkaXRpb24= QWxwaGE= IHNhbnM= IG92ZXJkdWU= IG92ZXJjcm93ZA== IGxlZ2lzbGF0dXJlcw== IHBhdGVybmFs IExlb25hcmRv IGV4cHJlc3NpdmU= IGRpc3RyYWN0aW9ucw== IHNpbGVuY2Vk dHJ1c3Q= IGJpa2luZw== IDU2MA== IHByb3ByaWV0 IGltcG9zaXRpb24= IGNvbmdsb21lcg== ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 IFRlYWNoaW5n IFlvc2U= aW50ZW5zaXZl VG93bg== IHRyb2xsaW5n IEdyYWM= IEFTVVM= WW8= IHNwZWNpYWxz IE5lcGg= IEdvZHppbGxh RGF0YWJhc2U= IEhlZ2Vs IDI3Mg== MTk3Ng== IEdsb3JpYQ== IGRpc2VtYg== IEludmVzdGlnYXRpb25z IEJhbmU= YWdlbWVudHM= U3RyYW5nZQ== IHRyZWFzdXJ5 IFBsYXlz IHVuZGVzaXJhYmxl IHdpZGVuaW5n IHZlcmJhbGx5 IGluZmFuY3k= IGN1dHRlcg== Zm1s IDIxMDA= cHJvdG90eXBl ZmluZQ== IGRlY3JpbWluYWw= IGR5c2Z1bmN0aW9uYWw= IGJlc2ll IEVybnN0 emVi IG5vcnRoZWFzdGVybg== IGF1c3Q= cG9yYXRl IE1hcmxpbnM= IHNlZ3JlZ2F0ZWQ= ZXdvcmxk IE1haGVy IHRyYXZlcnNl IG1vbmFzdGVyeQ== dXJneQ== R2Vhcg== c2FuZA== Q29tcGw= IEVNUA== IHBsZW50 IE1lcmNlcg== IDI3Ng== VEFCTEU= Q29uZmlndXJhdGlvbg== SHVuZHJlZHM= IHByaWM= IGNvbGxhYm9yYXRpbmc= IFBhcmFtb3VudA== IEN1bW1pbmdz ICg8 IHJlY29yZGVy IGZsYXRz IDQxNg== d2hvc2U= Rm9udFNpemU= IE9yYml0 WVI= IHdyaXN0cw== IGJha2VyeQ== KX0= IEJvdW50eQ== IExhbmNhc3Rlcg== IGVuZGluZ3M= YWNjb3JkaW5n IFNhbGFt ZWFzeQ== NzU1 IEJ1cnI= IEJhcm5ldHQ= b25vbW91cw== VW5pb24= IHByZWNlZGVuY2U= IFNjaG9sYXJzaGlw IFVY IHJvbGxvdXQ= IGJvb24= YWxt IENhbnRlcg== 5rU= IHJvdW5kaW5n IGNsYWQ= IHZhcA== IEZlYXR1cmVk aXNhdGlvbnM= IDU0MA== cG9saWNl IHVuc2V0dGxpbmc= IGRyaWZ0aW5n IEx1bWlh IE9iYW1hQ2FyZQ== IEZhdm9y SHlwZXI= IFJvdGhzY2hpbGQ= IE1pbGliYW5k YW5hbHk= IEp1bGlldA== SHU= IHJlY2FsbGluZw== YWhlYWQ= Njk2 IHVuZmF2b3JhYmxl IGRhbmNlcw== T3g= IGxlZ2FsaXR5 IDQwMw== cm9tYW5jZXI= IGlucXVpcmU= IE1vdmVz XCI+ IFZhcmlhbnQ= IE1lc3NpYWg= IExDUw== IEJhaMOh NzU2 IGV5ZWJyb3c= IMKl IE1jRg== IEZvcnR5 TWFz IHBhbmlja2Vk IHRyYW5zZm9ybWF0aW9ucw== cXE= IHJldm9sdmVz cmluZ2U= IEFp YXhl IG9ud2FyZA== IENGUg== IEJhcmU= bG9naW4= IGxpcXVpZHM= IGRlY29tcA== c2Vjb25kYXJ5 aWxhbg== IENvbnZlcnQ= YW1peWE= IHByb3NlY3V0aW5n IOKJoQ== IFlvcmtlcnM= IEJ5cm5l c2xvdw== YXdlaQ== SmVhbg== IDI2OQ== IFNreWRyYWdvbg== IMOp IE5pY2FyYWd1YQ== IEh1Y2thYmVl IEhpZ2hseQ== IGFtcGhpYg== IFBhc3Rvcg== IExldHM= IGJsdXJyZWQ= IHZpc2NlcmFs IENCTw== IGNvbGxhYm9yYXRlZA== emln TGVnYWw= IGFwYXJ0aGVpZA== IGJyaWQ= IHByZXNldA== IERFVA== IEFNQQ== 15Q= YXJjaGluZw== YXVjdXNlcw== YnVpbGRlcg== IHBvZXRpYw== IGVtdWxhdG9y IE1vbGVjdWxhcg== IGhvbm9yaW5n aXNldW0= IHRyYWN0b3I= IENsdXN0ZXI= IENhbG0= YXJlZGV2aWw= IHNpZGV3YWxrcw== IHZpb2xpbg== IGdlbmVyYWxpemVk IEFsZWM= IGVtYmFyZ28= IGZhc3RiYWxs IEhUVFBT IExhY2s= IENoaWxs cml2ZXI= Q2hlbA== IFN3YXJt IExldmluZQ== cm95aW5n TGF1bmNo IGtpY2tlcg== IGFkZGl0aXZl IERlYWxz V2lkZ2V0 Y29udGFpbmluZw== IGVzY2FsYXRl IE9QRU4= IHR3ZWFrZWQ= IHN0YXNo IHNwYXJrcw== IEVzc2V4 IEVjYw== IGNvbnZpY3Q= IGJsb2dnaW5n SUVS IEhM IG11cmRlcmVycw== NzU5 IEhpYg== IGRlcGw= IEpvcmQ= U2Fj IGRpc3NlY3Q= IEhvd2U= b3NoZXI= IGN1c3RvbWl6YWJsZQ== IEZyYW56 IGF0cm8= xIc= IDAwMDQ= IG91dHBvc3Q= Um9zcw== IGdseXBob3NhdGU= IEhhc3Rpbmdz IEJFRk9SRQ== IHNob3Zl b3BwZWQ= IFNjYWxh IGFtdWxldA== YW5pYW4= IGV4YWNlcmJhdGVk IGVhdGVy NDcx VU1F IHB1bHA= aXpvbnRhbA== IFphbQ== IEFUSQ== aW1tdW5l YWJ5dGVz IHVubmVjZXNzYXJpbHk= IENBVA== IEF4aXM= IHZpc3VhbGl6ZQ== w4k= IFJhZGljYWw= Zm0= RG9jdW1lbnRz IEZvcnJlc3Q= IGNvbnRleHR1YWw= IFN5bWJvbA== IHRlbnRhdGl2ZQ== IERPRVM= IEdvb2Rz IGludGVybWl0dGVudA== fTo= bWVkaWF0ZWQ= IHJpZGljdWxl IGF0aGVpc20= IHBhdGhvZ2Vucw== IE11bQ== IHJlaW50cm9kdQ== IDMwNw== aUhVRA== IGZsYXNobGlnaHQ= IHN3ZWFyaW5n IHBlbmd1 QnU= IHJvdGF0ZWQ= IENyYW5l ICgpKTs= IGZhc2hpb25hYmxl IGVuZG9yc2luZw== NDYz KVs= IGluZ2VzdGlvbg== IGNvb2tz IDk1MA== b3RvbXk= IEltYW0= IGth IHRlYXNlcg== IEdob3N0cw== IOOCtQ== MTk2OQ== z4M= dWJieQ== IGNvbnZlcnRlcg== emFubmU= ZW5kZQ== IFByZXBhcg== IE5pY2tlbA== IENoaW1lcmE= aGlt IFR5cmFubg== IFNhYmJhdGg= IE5pY2hvbHM= IHJhcHQ= aWhhcg== IHNoZWxsaW5n IGlsbHVtaW5hdGU= IGRlbnRpc3Q= dXRvcg== IEludGVncmF0aW9u IHdoaW1z IExpdGVyYXJ5 QmVhdXQ= IHBhcmNobWVudA== YWdhcmE= QnJhbmQ= IGRlcm9n 4oCmKQ== IE5vcnNl IHVud2l0dGluZw== IGN1Yw== IGJvcmRlcmxpbmU= IHVwc2V0dGluZw== IHJlY291cnNl IGRyYXBlZA== IFJhZGFy IGNvbGRlcg== IFBlcHNp aW1pbmFyeQ== XSxb NjU4 Vmk= IEZyZW0= IFBlcw== IHZldGVyaW5hcnk= IFRFRA== IEVwaWRlbQ== bm92YQ== a2lk IGRldm91dA== b2N0 amFk TW9o IFBBWQ== IGdlb21ldHJpYw== IDMyMw== IGNpcmN1bWZlcmVuY2U= aWNoaWNr MTk3NQ== IFl1cmk= IFNoYWxs IEhvdmVy dW5pbg== U3By IGdyYWZ0 IEhhcHBpbmVzcw== IGRpc2FkdmFudGFnZXM= YXR0YWNrcw== IGh1YnM= IFN0YXJDcmFmdA== 6ZY= IGdhbGxlcmllcw== IEtvcnJh IGdyb2Nlcmllcw== IEdvcnN1Y2g= IHJhcGlzdHM= IGZ1bmdp IFR5cGhvb24= VmVjdG9y IEVtcHJlc3M= YmF0dGxl NDY4 IHBhcmFzaXRl IEJvbWJlcg== U0c= ZXhpc3Q= IFBm IHVuc2U= IHN1cmdlb25z QmlydGg= IFVuc3VyZQ== IFByaW50ZWQ= IEJlaGF2aW9yYWw= IEFzdGVy UGFraXN0YW4= IHVuZXRoaWNhbA== IHN2 IElvVA== IGxheW91dHM= UGFpbg== IGNvbnN0YW50cw== IExX IEJha2U= IHRvd2Vscw== IGRldGVyaW9yYXRpb24= IEJvbGl2aWE= IGJsaW5kZWQ= IFdhcmRlbg== IE1pc3RyZXNz IG9uc3RhZ2U= IGNsYW5z IEJFU1Q= MTk2MA== IGFudGlxdWU= IHJoZXRvcmljYWw= IFBlcmN5 IFJ3YW5kYQ== LC4= QnJ1Y2U= IHRyYXVtYXQ= IFBhcmxpYW1lbnRhcnk= IGZvb3Rub3Rl aWRpYQ== IExlYXJuZWQ= c2Vla2luZw== Z2VuaWM= IGRpbWVuc2lvbmFs SGlkZQ== 6ICF IGludHJpZ3Vl aW5zZQ== IGxlYXNlcw== IGFwcHJlbnRpY2Vz d2FzaGluZw== IDE5MjY= VklMTEU= IHN3b29w c2Ns IGJlZHJvb21z b25pY3M= IENydW5jaA== Y29tcGF0aWJsZQ== IGluY2FwYWM= IFllbWVuaQ== YXNodHJh emhvdQ== ZGFuZ2Vy IG1hbmlmZXN0YXRpb25z IERlbW9ucw== QUFG U2VjcmV0YXJ5 QUNURUQ= TE9E IGFteQ== cmFwZXI= ZXRobmlj NDE3 IHBvc2l0aXZlcw== IDI3Mw== IFJlZnVnZWVz IHVzYg== IFZhbGQ= b2RkeQ== IE1haG1vdWQ= QXNpYQ== IHNrdWxscw== IEV4b2R1cw== IENvbXBldA== IExJQw== IE1hbnNpb24= IEFtZQ== IGNvbnNvbGlkYXRl c3Rvcm1z b250ZW50 OTk2 IGNsZW4= IG11bW15 ZmxhdA== NzU4 IFZPTA== b3Rlcmlj bmVu IE1pbnV0ZQ== U292 IGZpbmVy Umg= bHljZXI= IHJlaW5mb3JjZW1lbnRz IEpvaGFubmVz IEdhbGxhZ2hlcg== IGd5bW4= U3VkZGVubHk= IGV4dG9ydGlvbg== a3I= aWF0b3I= VGE= IGhpcHBvY2FtcHVz TlBS IENvbXB1dGluZw== IHNxdWFyZWx5 IG1vZGVsbGluZw== IEZvcnVtcw== IExpc3A= IEtyaXNobmE= IDMyNA== IHJ1c2hlcw== IGVuc3VlZA== IGNyZWVwaW5n b250ZQ== bmFp aWxhdGVy IEhvcm5ldHM= IG9ibGl2aW91cw== SU5TVA== NTU5 IGplb3BhcmR5 IGRpc3Rpbmd1aXNoaW5n anVyZWQ= IGJlZ3M= c2ltaWxhcg== cGhvdA== NTMw IFBhcmt3YXk= IHNpbmtz IEhlYXJ0aHN0b25l aWJ1cg== IEJhdG9u QXZvaWQ= IGRhbmNlcg== IG1hZ2lzdHJhdGU= YXJ5bg== IGRpc3R1cmJhbmNlcw== IFJvbWVybw== IHBhcmFwaA== IG1pc2NoaWVm 4paT IFNoYXJpYQ== IHVyaW5hcnk= cm91dGU= aXZhcw== Zml0dGVk IGVqZWN0ZWQ= IEFsYnVxdWVycXVl IDQ3MA== IGlycml0YXRlZA== IFppcA== IEJpb2w= w40= IGRlbm91bmNl IGJpbmFyaWVz IFZlcnNl IG9wcG9z IEtlbmRyaWNr IEdQTA== IHNwZXc= IEVsaWphaA== IEVhcw== IGRyaWZ0ZWQ= c29mYXI= IGFubm95YW5jZQ== IEJFVA== NDc0 IFN0cm9uZ2g= aXRhdGVz IENvZ25pdGl2ZQ== b3Bob25l IElkZW50aWZpY2F0aW9u b2NyaW5l Y29ubmVjdGlvbg== IGJveGVy IEFTRA== IEFyZWFz WWFuZw== dGNo dWxsYWg= IGRlY2VpdmU= Q29tYmF0 ZXBpc29kZQ== Y3JldGU= V2l0bmVzcw== IGNvbmRvbGVuY2Vz aHRhcg== IGhlYWxz IGJ1Y2tldHM= IExBVw== Qmx1 IHNsYWI= IE9SREVS b2Ns YXR0b24= IFN0ZXZlbnNvbg== IEdpbmdlcg== IEZyaWVuZGx5 IFZhbmRlcmJpbHQ= c3Bpcml0 aWds IFJlZ2FyZGluZw== IFBST0c= IHNlYWxpbmc= c3RhcnRpbmc= IGNhcmRpbmFs IFZlYw== IEJlaXI= IG1pbGxpc2Vjb25kcw== d2Vhaw== cGVyc2U= IHN0ZXJpbGU= IENvbnRlbXBvcmFyeQ== IFBoYW50 IENsbw== IG91dHA= IGV4aWxlZA== IDI3Nw== IHNlbGZpZQ== IG1hbmlj IG5hbm8= dGVybXM= QWxleGFuZGVy IHJlc29sdmVz IG1pbGxlbm5pYQ== IGV4cGxvZGVz IGNvbnN0ZWxsYXRpb24= IGFkdWx0ZXJ5 bW90aW9u RE9D IGJyb2FkY2FzdGVycw== IGtpbmRlcmdhcnRlbg== IE1heXdlYXRoZXI= IEVjbw== aWNobw== IDI4Nw== bGF1bg== IG11dGU= IGRpc2NyZWV0 IHByZXNjaG9vbA== IHByZWVtcHQ= RGVsZXRl IEZyZWVk UGk= SEs= IGJsb2NrZXI= IEN1bWJlcg== IHdyb3VnaHQ= ZGF0aW5n IGluc3VyZXI= IHF1b3Rhcw== IHByZWFjaGVk IGV2aWN0aW9u IFJlZ2luYQ== IFBlbnM= IHNldmVudGVlbg== IE5hc3M= RGljaw== IGZvbGRz IGRvdHRlZA== IEFhZA== VW5pdmVyc2Fs IHBpeno= IEd1cnU= IHNvaWxz IG5vdmljZQ== IE5lYW5kZXI= IHN0b29s IGRldG9uYXRlZA== IFBpa2FjaHU= IE1hc3NpdmU= SVZFUg== IEFiZGVs IHN1YmR1ZWQ= IHRhbGxlc3Q= IHByZWNhcmlvdXM= IGF5 cmlmaWNhdGlvbg== IE9iag== Y2FsZQ== IHVucXVlc3Rpb24= Y3Vsb3Npcw== YWRhcw== aWdyYXRlZA== RGF5cw== IHF1ZWVucw== IEdhemV0dGU= IENvbG91cg== IEJvd21hbg== IEpK w692ZQ== IGRvbWluYXRlcw== U3R1ZGVudA== IG11 IGJhY2tsb2c= IEVsZWN0cm8= VHJ1dGg= NDgz IGNvbmRlbnNlZA== cnVsZXM= IENvbnNwaXJhY3k= IGFjcm9ueW0= aGFuZGxlZA== IE1hdHRl anJp IEltcG9zc2libGU= bHVkZQ== Y3JlYXRpb24= IHdhcm1lZA== IFNsYXZl IG1pc2xlZA== IGZlcm1lbnQ= IEthaA== aW5raQ== a2VsZXRvbg== Y3ls IEthcmlu SHVudGVy UmVnaXN0ZXI= IFN1cnJleQ== IHN0YXJlcw== IFdpZHRo IE5heQ== IFNraQ== IGJsYWNrbGlzdA== dWNrZXQ= IGV4cHVsc2lvbg== aW1ldA== IHJldHdlZXQ= dmFudGFnZQ== RmVhdHVyZQ== IHRyb29wZXJz IGhvbWVycw== OTY5 IGNvbnRpbmdlbmN5 IFdUQw== IEJyZXdlcg== Zm9yZWlnbg== V2FyZQ== U29sYXI= IHVuZHVl UkVD dWxuZXJhYmxl cGF0aGlj IEJvaXNl IDMyMg== IGFyb3VzZWQ= IFlpbmc= 5LiN dWVsZXNz IHBhcw== IG1vcnA= IGZsb3JhbA== RXhwcmVzcw== dWRnaW5n a0I= IEdyYW50ZWQ= 2K8= IE1pY2hh IEdvdGhpYw== IFNQRUNJQUw= IFJpY2FyZG8= RnJhbg== IGFkbWluaXN0ZXJpbmc= NjIw cG9yYQ== IMKu IGNvbXByb21pc2Vz IGJpdHRlbg== QWNjZXB0 VGhpcnR5 0LI= IG1hdGVyaWFsbHk= IFRlcnI= aWdtYXRpYw== Y2hhaW5z IGRvdmU= c3RhZHQ= TWFydmVs RkFVTFQ= IHdpbmRzaGllbGQ= IDMzNg== YWRpZXI= IHN3YXBwaW5n IGZsYXdsZXNz IFByZWRhdG9y IE1pY2hlbGU= IHByb3B1bHNpb24= IFBzeWNoaWM= IGFzc2lnbmluZw== IGZhYnJpY2F0aW9u IGJhcmxleQ== bHVzdA== IHRvd2VyaW5n IGFsdGVyY2F0aW9u IEJlbnRsZXk= U3BoZXJl IHR1bmE= IENsYXNzZXM= RnJlZWRvbQ== dW5lcg== TGFkeQ== dm9pY2U= IGNvb2xlc3Q= b3Jy IHBhbHA= JHs= IGh5c3Rlcmlh IE1ldGF0cm9u cGFudHM= IHNwYXduaW5n RXhwZXJ0cw== IEludmVzdG9ycw== IEFuYXJjaHk= IHNocnVuaw== IFZpY3RpbQ== IDI4OQ== IGVjc3Rhc3k= IEJpbmRpbmc= NTg1 IE1lbG9keQ== NTc4 b3RhbGx5 IEV0c3k= bGlnYQ== IGFwcGxhdWRlZA== IHN3ZWF0aW5n IHJlZGlzdHJpYnV0ZWQ= IHBvcGNvcm4= IHNlbWluYWw= ZnVy IE5ldXJvc2NpZW5jZQ== UmFuZA== IE9zdA== IE1hZGRlbg== IEluY3JlYXNpbmc= IERhd2tpbnM= IFN1YndheQ== IGFyc2Vu Y29uc2Vydg== QlVS IHNwaWtlZA== IEx5ZnQ= IEltcGVyaXVt IERyb3Bib3g= IGZhdm91cmVk IGVuY29tcGFzc2Vz Z2hvc3Q= IGluc3BpcmVz IGJ1cmdlb25pbmc= IFlvc2hp IFZlcnRpY2Fs IEF1ZGl0b3I= IGludGVuZGluZw== IGZpbGlidXN0ZXI= Qmxvb20= ZmFj IENhdnM= aWduaW5n IGNvd29ya2Vycw== IEJhcmJhcmlhbg== cmVtZW1iZXI= RkxBRw== IGF1ZGl0b3J5 YXNvbnJ5 Q29sbGVnZQ== IG11dGVk Z2Vtb255 b2Jpbg== IFBzeWNobw== OTY4 IGxhdmlzaA== IGhpZXJhcmNoaWNhbA== IERyb25l b3Vr IGNyaXBwbGVk IE1heGlt U2xvdA== IHF1aXo= IFZpZA== aWZsaW5n IGFyY2hhZW9sb2dpc3Rz IGFiYW5kb25tZW50 ZGlhbA== bGVvbg== IEZhcw== VGVk IHJhc3BiZXJyeQ== IG1hbmV1dmVycw== IGJlaGF2aW91cnM= IGluc3VyZQ== IHJlbW9k U3dpdGNo aG9l IHNwYWNlZA== IGFmZm9yZGFiaWxpdHk= IEZlcm4= bm90YXRpb24= IEJhbGFuY2Vk IG9jY3VwaWVz ZW52aXJvbm1lbnQ= IG5lY2tsYWNl IHNlZGFu RlU= IEJyYXZv IGFidXNlcnM= IEFuaXRh bWV0YWRhdGE= IEdpdGh1Yg== YWl0bw== IEZhc3Rlcg== IFdhc3Nlcm1hbg== IEZsZXNo IHRob3Ju cmFyaWx5 IE1lcnJ5 d2luZQ== IHBvcHVsYWNl IExhbm4= IHJlcGFpcmluZw== IHBzeWNoZQ== IG1vZHVsYXRpb24= YXdhcnU= 4oCL4oCL YXJpag== IGRlY29yYXRpb25z IGFwb2xvZ2lzZQ== IEdhcmc= YXBwbHk= IGdpdmVhd2F5 IEZsYW4= IFd5YXR0 VWJlcg== IGF1dGhvcmlzZWQ= IE1vcmFs SEFIQUhBSEE= YWN0aXZhdGU= IHRvcnBlZG8= IEZBUg== IGFtYXNzZWQ= IEFyYW0= YXJraW4= IFZpY3RpbXM= c3RhYg== IG9t IEVDTw== IG9waW9pZHM= IHB1cnBvc2VseQ== IFZlc3Q= IGVyZw== YXRhbg== IFN1cmdlcnk= IGNvcnJlY3Rpbmc= IE9ydGl6 IEJlZXQ= IHJldm9rZQ== IGZyZWV3YXk= IEhpZ2dpbnM= RmFpbA== IEZhcm1z IEFUUA== aG91bmQ= IHBva2luZw== IENvbW11bmlzdHM= bW9uc3Rlcg== aW1lbnRhcnk= IHVubG9ja2luZw== IHVuZml0 d2VlZA== ZW5hcmlv YXRpY2Fs IEVubGlnaHRlbm1lbnQ= IE5H IENvbXBlbnNhdGlvbg== ZGVlbg== IFdpZG93 IENpbmR5 IEFmdGVyd2FyZHM= IDYwMDA= aWtoYWls YWdpY2FsbHk= IHJhdGlmaWVk IGNhc3VhbHR5 SE9NRQ== cHNleQ== ZmVl IHNwYXJrbGluZw== IGTDqQ== IGNvbmNlcnRlZA== Q2F0YWw= IGNvbXBseWluZw== IEFyZXM= IERlbnQ= U2h1dA== IHNraW0= YWRtaW5pc3Q= IGhvc3RpbGl0aWVz IEdpbnM= IDYwOA== IG11ZGR5 IE1jSW50 IERlY2F5 NTI1 IGNvbnNwaWN1b3Vz IEV4cG9zdXJl IHJlc2NpbmQ= IHdlYXJhYmxl IDMyOA== b3VybWV0 YWhz IFJvYm90cw== IGVjbGlwcw== aW5zdGFuY2U= IFJFUE9SVA== IEFwcGw= MDMw IFNraWVz MDEwMA== IGZhbGxhY3k= U29ja2V0 IFJlY2VpdmVy IHNvbHZlcw== IEJ1dHRlcmZseQ== IFNob3BwaW5n IEZJUkU= NjU0 TWVkaWM= IHNpbmdlcnM= IE5lZWRsZXNz JycnJw== aXNoZXJz IERpdmU= NTg4 IHNlbGVjdGl2ZWx5 IGNsdW1zeQ== ODg5 IHB1cmNoYXNlcg== ZWFybmVk YXJkeQ== IGJlbmVmaXRpbmc= ZW5nbGlzaA== IHlpZWxkaW5n IFBvdXI= IHNwaW5hY2g= IGRlbHZl IENyb20= NjEw IGV4cG9ydGluZw== IE1BS0U= IDI2Mw== IGdyb3A= IGVudm95 IElucXVpcnk= IEx1aWdp ZHJ5 IFR1cmluZw== VGh1bWJuYWlsSW1hZ2U= IFZhcmlldHk= IGZhY2V0 IGZsdWZmeQ== IGV4Y2VycHRz IHNob3J0aA== IE9sc2Vu Q0xVRA== IHJlbGlhbnQ= IFVOQw== VG91cg== IGJhdGhpbmc= Q29tcGFueQ== IGdsb2JhbGl6YXRpb24= UHJlZA== IE1hbGZveQ== IGhvYw== amFt Y3JhZnRlZA== IEJvbmRz IEtpc3Npbmdlcg== RW5nbGFuZA== IG9yZGVybHk= Y2F0ZW50cnk= IDI2MQ== IGV4Y2hhbmdpbmc= IEludGVudA== IEFtZW5kbWVudHM= RE9N IHN0b3V0 wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqA= IEFpcmJ1cw== IDI3OA== aHlkZQ== UG9sbA== SXRlbVRodW1ibmFpbEltYWdl IGxvb3Bob2xlcw== IFBpbGxhcg== IGV4cGxvcg== U3RyZXRjaA== QXBhcnQ= IHVubWFycmllZA== TGltaXQ= IFRyYW5zZm9ybWVycw== IGludGVsbGVjdHVhbGx5 dW5jdHVyZQ== MTgwMA== IGRhcm4= QnJhemls IGxlZnRvdmVy YmVydXM= ZnJlZA== TWluZWNyYWZ0 MzI2 IEZvcm1z IHByb29mcw== IERlc2lnbmVk IGluZGV4ZXM= IFN1cHBvc2U= RU1T IExvdmluZw== IEJvbm5pZQ== aW1hdGluZw== T1RVUw== IGNvbmR1Y3Rvcg== IGJlaGF2ZWQ= IEZyZW4= IHN5bmVyZw== IG1pbGxlbm5pdW0= IGNhdGVyaW5n IExhdWRlcg== V3I= IFlpYW5ub3BvdWxvcw== IEFURg== IGVuc2xhdmVk IGF3YWtlbmVk RFZE IEVESVRJT04= IENvbmNlcnQ= IENoYWxsZW5nZXI= IEhha3U= dW1lcmlj IGRlcHJlY2F0ZWQ= IFNIQVI= NDEy IGR5c3RvcA== IHRyZW1ibGluZw== IGRyZWFkZWQ= IFNwYWM= cGFkZGluZw== UmVwbA== IEdhcnJpc29u TWluaQ== IHVucGFyYWxsZWxlZA== YW1hcg== VVJSRU5U d3JlY2s= Y2VydGFpbg== dGFs IENMUw== YXBwaW5ncw== IHNlbnNlZA== IGZlbmNpbmc= IFBhc28= IERlc2s= IHNjb2Zm IGNvbnRlbXBsYXRl IExpZ2E= bGlxdWlk NzU3 IGFwcHJlbnRpY2U= IFVDSElK NTcw IFRob3VzYW5k IElsbHVt IGNoYW1waW9uZWQ= 44KM IGVsZWN0b3Jz IDM5OA== IEhhbmNvY2s= cm91bmRlZA== IEpPSE4= IHVuc2F0aXNm IHF1YWxpZmllcg== IEdhZGdldA== RU5F IGRlYWRsaWVzdA== IFBsYW50cw== IGlvbnM= IGFjY2VudHM= IHR3ZWFraW5n IHNoYXZlZA== RlJFRQ== IENoYXNlcg== QWdhaW5zdA== OTYw IG1ldGhhbXBoZXRhbWluZQ== IG5vcm1hbGl6ZWQ= ICRc IFByZWNpc2lvbg== IEd1YW0= IGNob2tlZA== IFhJSQ== IENhc3Rpbmc= VG9ycmVudA== IHNjYWxw IEphZ3Vhcg== d2l0 IHNlbWlj aXhpZQ== IEdvdWxk IGNvbmZpbmVz TnVzcmE= IExvbg== IEp1Z2c= eWNsZQ== IENvZGVj RWd5cHQ= IHJlc3RyYWlu IEFsaWVucw== IGNob2tpbmc= IER1bms= IEJlbGxh YWJj IHNsYW5n IG5ldXJvdHJhbnM= c2F2 IGVtcG93ZXJtZW50 4oaS IGNsaW1iZXJz IE1pbQ== IEZyYQ== cm9zc2U= Q2FwaXRhbA== IEN0aHVsaHU= SW50ZXJmYWNl IHByb2ZpY2llbnQ= IElOVE8= IDMxOA== cm9udGFs NTgw IERlc3BhaXI= S2Vubg== IHNjcmltbWFnZQ== IENvYXQ= YXNpb25z IHdhbGxwYXBlcg== IEpvbA== IHJlc3VyZ2VuY2U= IGFudGl2 IEJhbGxz sr4= IGJ1ZmZlcnM= IHN1YnN5c3RlbQ== IFN0ZWxsYXI= IEx1bmc= QUlEUw== IGVyYWRpY2F0ZQ== IGJsYXRhbnRseQ== IGJlaGF2ZXM= IE51bg== IGFudGljcw== ZXhwb3J0 REVW d2I= IHBocA== IEludGVncml0eQ== IGV4cGxvcmVy IHJldm9sdmluZw== YXV0aG9yZWQ= Z2Fucw== IGJhc2s= IGFzeW5jaHJvbm91cw== 5Y0= VEhJTkc= Njk4 R2VuZQ== IFJhY2Vy IE5pY28= aXNzdWVk IHNlcm1vbg== cG9zc2libHk= IHNpemVvZg== IGVudHJlcHJlbmV1cmlhbA== b3hpbg== IE1pbmVydmE= IHBsYXRvb24= bm9z cmlrcw== QVVU IEF2YWxhbmNoZQ== IERlc2M= keWjqw== IFBvYw== IGNvbmZlcnJlZA== zrs= IHBhdGNoZWQ= RkJJ NjYy IGZyYWN0dXJlcw== IGRldGVjdHM= IGRlZGljYXRl IGNvbnN0aXR1ZW50 IGNvc21vcw== V1Q= IHN3ZWF0cw== IHNwcnVuZw== YmFyYQ== c29saWQ= IHVuc3Vz IGJ1bGt5 IFBoaWxpcHBl IEZlbnJpcg== IHRoZXJhcGlzdHM= b3JlYWw= Xl5eXg== IHRvdGFsZWQ= IGJvb3pl IFJQQw== UHJvc2VjdXRvcnM= IGRpc2VuZw== IFNoYXJlZA== IG1vdG9yY3ljbGVz IGludmVudGlvbnM= IGxldHR1Y2U= IE1lcmdl IEpD IHNwaXJpdHVhbGl0eQ== IFdBUk5JTkc= IHVubHVja3k= IFRlc3M= IHRvbmd1ZXM= IERVSQ== VHVtYmxy IGxlYW5z IGludmFkZXJz IGNhbm9weQ== IEh1cnJpY2FuZXM= IEJyZXQ= IEFQUExJQw== aWRpbmU= aWNrbGU= UmVnYXJkaW5n IHZlZ2dpZXM= IGVqYWM= anV2ZW4= RmlzaA== REVN IERpbm8= VGhyb3c= IENoZWNraW5n YmVhcmQ= KCY= IGphaWxz IGhy dHJhbnNmZXI= aXZhdGluZw== IGZsZWV0cw== IEltYWc= IE1jRG9ubmVsbA== IHNuaXBwZXQ= SXNh IENoYXR0 IFN0YWlu IFNldEZvbnRTaXpl IE95 IE1hdGhlbWF0aWNz NDk0 IGVsZWN0cm9seQ== IEdvdHQ= IEJyYXM= Qk9PSw== IEZpbmdlcg== ZHVtcA== IG11dGFudHM= IHJlbnRhbHM= IGludGVydHc= IGNyZWVr YWlsYQ== QnJvdGhlcg== IERpc2NvcmQ= cGVl cmF3bGVy IGNhcnA= IDI3OQ== 44K344Oj cmVsYXRpb25z IGNvbnRyYXN0cw== Q29sdW1u IHJlY29ubmFpc3NhbmNl IHVua25vdw== IGxvb3Rpbmc= IHJlZ3VsYXRlcw== IG9wdGltdW0= IENoZXJva2Vl IEFyeQ== TGF0ZXN0 IHJvYWRzaWRl IGRhbmNlZA== IFVuaWNvcm4= QWNrbm93bGVk IHVuY29udHJvbGw= IE1VUw== YXRpbw== Y2hhbmNl aGF2ZW4= VkFMVUU= IGZhdm91cml0ZXM= IGNlcmVtb25pYWw= YmluYXJ5 cGVlZA== d29vZHM= RU1Q IHZhc2N1bGFy IGNvbnRlbXBsYXRlZA== IGJhcnJlbg== IExJU1Q= WWVsbG93 b3Nwb25zb3Jz IHdoaXNreQ== IE1hbW0= IERlVm9z bWluaW11bQ== SHVuZw== NDQy UGlj IFNuYXBkcmFnb24= Nzc2 IGNhcnZpbmc= IHVuZGVjaWRlZA== IGFkdmFudGFnZW91cw== IHBhbG1z IEFR IHN0YXJjaA== TG9vcA== IHBhZGRsZQ== IGZsYW1pbmc= IEhvcml6b25z QW5pbWF0aW9u Ym9vc3Q= IHByb2JhYmlsaXRpZXM= IE1pc2g= IGV4b2R1cw== IEVkaXRvcmlhbA== IGZ1bmd1cw== IGRpc3NlbnRpbmc= IERlbGljaW91cw== cm9ncmFt IER5bg== ZGlzaw== dG9t IGZhYnJpY3M= IENvdmU= IEJhbnM= IHNvZnRlbg== IENPTlM= IGluZWxpZ2libGU= IGVzdGltYXRpbmc= IExleGluZ3Rvbg== cHJhY3RpY2U= b2Zp IHNoZWRkaW5n IE5vcGU= IGJyZWF0aGVk IENvcmludGhpYW5z eW5l ZWtp QnVsbA== IGF0dGFjaGluZw== cmVlbnNob3Rz IGFuYWx5c2U= IEthcHBh IHVuc3VzdGFpbmFibGU= IGludGVycG9s YW5reQ== aGVtZXI= IHByb3RhZ29uaXN0cw== IGZvcm1hdHRlZA== IEJyeWNl IEFjaGlsbGVz IEFiZWRpbg== c2hvY2s= IGJ1bQ== Ym9z cXVh IFdhcm4= cXQ= IERpYWJldGVz ODY0 IEludmlzaWJsZQ== IHZhbmlzaA== IHRyYW5zbWl0dGluZw== IG11cmt5 IEZlaQ== IGF3YWl0ZWQ= IEp1cmFzc2lj dW1taWVz IG1lbmFjaW5n Z2FsbA== Q2F0aA== QnVpbHQ= aWxkbw== IFZvdGVz IG9udA== IG11bml0aW9ucw== IEZyZWVt w61u IGRlY2VuY3k= bG9wcA== aWV2ZWQ= IEdvcmQ= IHVudGhpbmthYmxl IE5ld3N3ZWVr IDMyMQ== SGVhdA== IHByZXNlbnRlcg== amlhbmc= IHBsYW5r IEF2YWxvbg== IGJlbno= IFJvdXQ= IHNsYW1taW5n IERhaQ== b3V0ZXI= IENvb2tpZQ== IEFsaWNpYQ== Z2V5 IHZhbml0eQ== IG93bA== 4bU= dGVzdGVk IEF3YWtlbnM= IGNhbnY= IGJsaW5kbHk= IFJpZGxleQ== IEVtYWlscw== UmVxdWlyZXM= IFNlcmJpYW4= b2dyYXBoZWQ= aWZyYW1l ZXRlcmlh IGFsdGVybmF0aW5n cXVpZXQ= IHNvY2lvbG9neQ== IFVubG9jaw== IENvbW11bmlzbQ== IG9wcw== IGF0dHJpYnV0aW9u IGFiZHVjdGlvbg== IEFicmFt IHNpZGVsaW5lZA== IEJPT0s= IHJlZmluaW5n IEZlZWxpbmc= IE9zbG8= IFBydWl0dA== cmFjaw== YW5naWJsZQ== IGNhdXRpb3VzbHk= IE1BUks= ZWVkcw== TW91c2U= IFN0ZXBo IFBhaXI= U2Fi OTk3 IEJhYWw= QmVj IGNvbW1h IFBhbGw= IEdhZWw= IG1pc3VuZGVyc3RhbmQ= IFBlc2g= T3JkZXJhYmxl IGRpc21hbA== IFNoaW55 JSI= IHJlYWxpc3RpY2FsbHk= IHBhdGlv IEd3 IFZpcnR1ZQ== IGV4aGF1c3Rpbmc= d2hhdGV2ZXI= b3BoeXM= eWlw NDE4 QWRqdXN0 IFdhaXRpbmc= ZXNzb24= IE1hemRh IERvemVucw== IHN0cmVhbWxpbmVk IGluY29tcGV0ZW5jZQ== IE1ldGg= IGV0aG9z T05FUw== IGluY2VudGl2 IGdyaXR0eQ== IEJ1dGNoZXI= SGVhZGVy IGV4cG9uZW50aWFs w58= IGNvcnJlbGF0ZQ== IGNvbnNlbnN1YWw= c291bmRpbmc= UmluZw== T3JpZ2lu IGNvbmNsdXNpdmU= ZmVldA== YWNseQ== IEZlcm5hbmRleg== QnV5YWJsZQ== IGR1Y2tz YXVudGxldHM= IGVsb25n IDI4Ng== IHNpbXVs R2Fz IEtpcnN0 IHByb3Ry IFJvYm8= IEFvRQ== b3BvbA== IHBzeWNob2xvZ2ljYWxseQ== c3Bpbg== aWxhdGVyYWxseQ== IENvbnJhZA== V2F2ZQ== NDQx IEFkdmVydGlzZW1lbnQ= IEhhcm1vbg== IE9yaWVudGFs aXNTcGVjaWFs IHByZXN1bXB0aXZl IHdpbA== IEtpZXI= bmVh IHBwbQ== IGhhcmJvdXI= IFdpcmVk Y29tcGFueQ== IGNvcm9uZXI= YXR1cmRheXM= IFByb3Vk IE5FWFQ= IEZsYWtl dmFsdWVk Y2VpdmVy IGZyYXVnaHQ= IGNhc2luZw== IHJ1bmF3YXk= IGdpbg== IExhdXJlbnQ= IEhhcmxlbQ== IEN1cmlvc2l0eQ== cXVpc2hlZA== IG5ldXJvc2NpZW5jZQ== IEh1bHU= IGJvcnJvd2Vy IHBldGl0aW9uZXI= IENvb2xkb3du V0FSRA== IGludm9raW5n Y29uZmlkZW5jZQ== Rm9yd2FyZA== IHN0cw== cG9wdWxhdGlvbg== RGVsaXZlcnlEYXRl RmlsbQ== IENvdg== cXVpY2tTaGlw cXVpY2tTaGlwQXZhaWxhYmxl cHJpbWFyeQ== aXNTcGVjaWFsT3JkZXJhYmxl aW52ZW50b3J5UXVhbnRpdHk= Y2hhbm5lbEF2YWlsYWJpbGl0eQ== Qk9Y IE11bHRpcGxheWVy IEplbm5lcg== Nzc4 IE1k IH4vLg== TU4= IGNoaWxkaXNo IGFudGlveGlkYW50 IENocm9tZWJvb2s= IDI3NA== IHNjcmVlbnBsYXk= IGFkdmVudHVyb3Vz IFJlbGF0aW9uc2hpcA== cmVzcG9uc2l2ZQ== bWluZ3Rvbg== IGNvcm5lcnN0b25l IEZleQ== RklS IHJvb2tpZXM= IEZlYXR1cmluZw== IG9yaWdpbmF0ZQ== IGVsZWN0cm9kZXM= YW50ZXM= IHNjcmlwdHVyZXM= IGdsdWVk IGRpc2NvbnRlbnQ= IGFmZmxpY3RlZA== bGF5b3V0 QnJhdmU= IG1vc2E= IFF1YW50aXR5 IEhpaw== d2lubmVy SG91cnM= IGVudGFpbA== IENlbGxz b2xvZ3Vl IHZpbA== IHByZWFjaGVy IGRlY29yYXRpdmU= ZGlmZmVyZW50 IHByZWp1ZGljZXM= IFNtb2tpbmc= IE5vdHRpbmdoYW0= c29UeXBl IHJoeXRobXM= IEFscGg= Ymxhc3Q= U3RlZWw= IERhbmllbGxl IHN0cmlmZQ== IHJlbWF0Y2g= c29EZWxpdmVyeURhdGU= IEZvcms= dHJpcA== b2x1bHU= aGVzZXM= Q0c= IFBPTElUSUNP b3N0YQ== IERyaWZ0 6b6N5aU= 6b6N5aWR5aOr IHZldHRpbmc= IEppbnBpbmc= IFJlY2Vzc2lvbg== TWlub3I= IEZyYXVk ZW5mcmFuY2g= IGNvbnZlbmVk IE5BQUNQ IE1pbGxpb25z IEZhcm1pbmc= IFdvbw== IEZsYXJl cml0bw== aW1taWdyYW50 IHZhY2FuY3k= IEhFQUQ= IFZhag== ZWdhbA== IFZpZ2ls U3R1ZHk= IHJ1aW5pbmc= IHJhY2tz IGhlYXRlcg== IFJhbmRvbHBo IEJydXNo IFRpcg== 2Kg= IGNvdg== JV0= IHJlY291bnRz IE9QVA== IE1lbHQ= IHRydWNl IGNhc2lub3M= IGNydXNhZGU= IGNhcm5hZ2U= IHN0cmlwZQ== IEt5bA== VGV4dHVyZXM= IDY5OA== IHByb2NsYW1hdGlvbg== IGdvb2RpZXM= IC4uLi4uLi4uLi4= cHJvY2xhaW1lZA== UG9saXQ= IHRvcGljYWw= IHNwZWNpYWxpemU= IEFtaW4= Z20= IGFuY2hvcmVk IGJlYXJpbmdz c2FtcGxl IEhpZ2hsYW5k IEF1dGlzbQ== IG1lcmNlbmFyeQ== IGludGVydmlld2Vy TEVS IFNvbWVycw== IGVtYnJ5bw== IEFzc3k= IDI4MQ== IEVkaXRpbmc= IENob3Nlbg== NjYw IHBjaQ== IFRodW5kZXJib2x0 QklMTA== IGNodWNrbGVk anJpd2Fs aG9m IGVhcnRobHk= KCl7 aW5kZXBlbmRlbmNl IGRpc3BlcnM= IFZlbmRvcg== IEdhcmV0aA== IHBhbHM= UGVubg== IFN1Ym1pdA== aWN1bQ== VGh1 IGNsYW5kZXN0aW5l IGNhbm5pYmFs IENsZXJr RVN0cmVhbQ== Z2FsaXRhcmlhbg== 4pml Z2V3 IGhvcnJlbmQ= IExvdg== IFJlYWN0aW9u b2NyaW4= Q2xhc3NpYw== IGVjaG9pbmc= IGRpc2Nsb3Npbmc= IEluc2lnaHQ= b2d1bg== IEluY2Fybg== dXBsb2Fkcw== cHBlcmM= Z3V5ZW4= IDE5MDE= IEJhcnM= Njg3 IGJyaWJlcw== IEZyZXNubw== dXJhdA== IFJlZXNl IGludHJ1c2l2ZQ== IGdyaXBwaW5n IEJsdWVwcmludA== IFJhc20= dW5pYQ== bWFuYWdlZA== IEhlYmRv IDM0NQ== IGRlY29kaW5n IHBvZXRz IGphd3M= IEZJR0hU YW1lbGVzcw== IE1lYWRvd3M= IEhhcmJhdWdo SW50ZXJ2aWV3 IEhvc3A= IEJSQQ== IGRlbGV0aW9u bW9i V2Fsa2Vy IE1vb25saWdodA== IEplZA== IFNvcGhpYQ== IHVzdXI= IGZvcnR1bmF0ZWx5 IFB1dHRpbmc= IEZvbGQ= IHNhbml0YXRpb24= IHBhcnRpc2Fucw== SVNPTg== Qm93 IENPTkM= IFJlZHVjZWQ= IFN1dHRvbg== IHRvdWNoc2NyZWVu IGVtYnJ5b3M= 4oCi4oCi4oCi4oCi IEtydWc= Y29tYmF0 IFBldHJvbGV1bQ== IGFtZA== IENvc21vcw== IHByZXNjcmliaW5n IGNvbmZvcm1pdHk= b3Vyc2Vz IHBsZW50aWZ1bA== IGRpc2lsbHVzaW9u IEVjb2xvZ3k= aXR0YWw= IGZhbmM= IGFzc2Fzc2luYXRlZA== cmVnbmFuY3k= IHBlcmVubmlhbA== IEJ1bGxldHM= IHN0YWxl IGNhY2hlZA== IEp1ZGl0aA== IERpc2Vhc2Vz QWxsZW4= IGxhcw== IHNoYXJkcw== IFN1YXJleg== IEZyaWVuZHNoaXA= aW50ZXJmYWNl IFN1cHBvcnRlcnM= YWRkb25z NDYy IEltcmFu IFdpbQ== IG5ld2ZvdW5k IE1i QW5pbWFs IGRhcmxpbmc= YW5kZQ== IHJoeQ== IFR3aXN0ZWQ= cG9zYWw= eW5za2k= VmFyaW91cw== 15w= IEtpdw== dXlvbWk= IHdlbGxiZWluZw== IExhdQ== YW5vcw== IHVubWlzdA== IG1hY09T IHJlc3Ryb29t IE9saXY= IEFpcndheXM= IHRpbWV0YWJsZQ== OTgw IHJhZGlvcw== dm95 aWFzY28= IGNsb3VkeQ== IERyYXdpbmc= QW55dGhpbmc= U3lyaWE= IEhlcnQ= c3Rha2luZw== IHVuY2hlY2tlZA== IGJyYXplbg== IE5SUw== Njk3 b25vbWlj ZXN0YWJsaXNo IGxlbmc= IGRpYWdvbmFs IEZpb3I= TGFpcg== IFN0YXJk IGRlZmljaWVudA== am9pbmluZw== YmVhbQ== IG9tbmlw IGJsZW5kZXI= IHN1bnJpc2U= TW9vcmU= IEZhdWx0 IENvc3R1bWU= IE11Yg== RmxhZ3M= YW5zZQ== IHBheW91dA== IEdvdmVybm9ycw== IERpbGxvbg== IEJhbmFuYQ== TmFy IHRyYWlsZWQ= IGltcGVyaWFsaXN0 dW1hbm4= YXRzdWtp NDM1 IFJvYWRz IHNsdXI= IElkZWFsbHk= IHRyZW5jaGVz Q3RybA== IG1pcnJvcmVk IFplbA== IENyZXN0 Q29tcGF0 IFJvbGxz c2NyaWI= IFRyYWlscw== b21ldGVycw== d2ludGVy IGltbW9ydGFsaXR5 aWxhdGVk IGNvbnRyYWRpY3Rz dW5pdmVyc2Fs aWxsaW9ucw== IE1hbWE= b3B0aW0= QVRVUkU= IGdlbw== ZXR0ZXI= IENhcmxv NDI0 IGNhbm9uaWNhbA== IFN0cm9uZ2hvbGQ= bmVhcg== IHBlcmZ1bWU= IG9yY2hlc3RyYQ== b2RpYWM= IHVwaGU= IHJlaWduaW5n dmVyc2l2ZQ== IGNhdWN1c2Vz IERFTQ== IGluc3VsdGVk IC0tLS0tLQ== IENydXNo IHJvb3Rpbmc= IFdyYWl0aA== IHdob3Jl IHRvZnU= Q21k IEJyZWU= ICRf IHJpdmU= IEFkdmVydGlzaW5n IHdhdHQ= IEhP IHBlcnN1YXNpdmU= IFBhcmFtZXRlcnM= IG9ic2VydmF0aW9uYWw= IE5DVA== IE1vag== IFNhbG9u IHRydW5j IGV4cXVpc2l0ZQ== IE1hcmE= IHBvb3A= IEFOTg== RXhj IFdvbmRlcmZ1bA== IFRhY28= IGhvbWVvd25lcg== IFNtaXRoc29uaWFu b3Jwb3JhdGVk bW1tbQ== IGxvYWY= IFlhbWF0bw== IEluZG8= IGNsaW5naW5n w6Fz IGltbXV0YWJsZQ== aHVi T3Jhbmdl IGZpbmdlcnRpcHM= IFdvb2Rlbg== IEtpZGQ= IEpQTQ== IERhbW4= Q293 Y29kZXM= NDgy IGluaXRpYXRpbmc= IEVsaw== IEN1dHRpbmc= IGFic2VudGVl IFZhbmNl IExpbGl0aA== R1VJ IG9ic2N1cmVk IGR3YXJ2ZXM= IENob3A= IEJva28= VmFsdWVz IG11bHRpbWVkaWE= IGJyZXdlZA== UmVndWxhcg== Q1JJUFRJT04= IE1vcnRhbA== IGFwZXg= IHRyYXZlbGVy IGJvaWxz IHNwcmF5aW5n UmVwcmVzZW50 IFN0YXJzaGlw NDI4 IGRpc2FwcHJvdmFs IHNoYWRvd3k= IGxhbWVudGVk IFJlcGxhY2U= IEZyYW7Dpw== Njc3 ZG9y IHVuc3RvcHBhYmxl IGNvaG9ydHM= Z3lu IENsYXNzaWNz IEFtcGg= IHNsdWdnaXNo IEFkZGljdGlvbg== IFBhZHJlcw== IGluc2NyaXB0aW9u IGluaHVtYW4= bWludXM= IEplcmVtaWFo YXRhcnM= VGVycm9y IFRvcw== IFNoYXJtYQ== YXN0YQ== Y2F0Y2g= IHBsdW1iaW5n IFRpbWJlcnM= U2hhcg== SGFs IE9zYw== IGNvdXBsaW5n aHVtYW5z IHNwb25nZQ== IGlkb2xz IFNwYQ== IEFkdm9jYXRl IEJlYXRz bHVh IHRpY2tpbmc= IGxvYWRlcg== IEdyb24= ODEw IHN0aW11bGF0ZWQ= IHNpZGViYXI= IE1hbnVmYWN0dXJlcg== b3JlQW5k MTk3Mw== IHByYWlzZXM= IEZsb3Jlcw== ZGlzYWJsZQ== IEVsZWN0cmljYWw= cmFpc2U= RXRo IG1pZ3JhdGVk IGxlY3R1cmVy S2lkcw== IENhdmVybg== IGtldHRsZQ== IGdseWM= IE1hbmRlbGE= IEZ1bGx5 5aer RklORVNU IHNxdWVlemluZw== IFJ5ZGVy YW1wb28= b3JlQW5kT25saW5l SW5zdG9yZUFuZE9ubGluZQ== QnV5YWJsZUluc3RvcmVBbmRPbmxpbmU= IGNvbW1lbW9yYXRl IFJhbXBhZ2U= QXVzdGlu IFNocm91ZA== IFJ1aW5z OTE1 IEtI IHdhdGVyZnJvbnQ= IEVTQw== YmFieQ== IENvdXQ= IEVtYmxlbQ== IGVxdWl2YWxlbnRz NDky VW5pcXVl IE5pZXR6c2NoZQ== YnJvd3Nlcg== IGltaXRhdGlvbg== IFdlcmV3b2xm IEtpcmlu YWNhcw== Jywi IMO+ UmV2aWV3ZWQ= IGN1bnQ= IHZvaWM= IExlbm92bw== IGJvbmRlZA== NDgx IGluaGliaXRvcnM= IGVuZGVhdm9ycw== IEhhdmFuYQ== IFN0b3V0 IEpvbGx5 QWN0b3I= Ki8o IG9jY3VycmVuY2Vz IFRlbnM= SW5jcmVhc2Vk IEFDVElPTg== IOOAjA== IFJhbmtpbmdz IEJyZWF0 IDMwOQ== RG91 IGltcGFjdGluZw== IER1Y2hlc3M= cHJlZml4 UUI= IHN1bW1vbmluZw== IGJlc3Rvd2Vk IEtlcGxlcg== IFBPV0VS Y3ViZQ== IEtpdHM= IEdyaXA= IG9waXVt IHJlcHV0YWJsZQ== dG9j aWNoYWVs IFJpcHBsZQ== IGNhZsOp IFpvb20= IEJ1cm1h IHdhaXZl IHN0YWxscw== IGRlbWVhbm9y aW5jZXJpdHk= IGZsdW9yaWRl IFNIT1VMRA== UGFyaXM= IGxvbmdpbmc= IHBsYXQ= IGdyb3NzbHk= IGJ1bGxz IHNob3djYXNpbmc= ZXhwZWN0ZWQ= IEdhZGRhZmk= ZW5naW5lZXJpbmc= UmVwZWF0 IEt1dA== IGNvbmNlaXZhYmxl IHRyaW1tZWQ= b3Njb3Bl IENhbmRpZGF0ZQ== IFRlYXJz cm9sb2c= TGV3aXM= U1VQ IHJvYWRtYXA= IHNhbGl2YQ== IHRydW1wZXQ= SmltbXk= IG1pcmFjdWxvdXM= IGNvbG9uaXphdGlvbg== IGFtcHV0 IEdOT01F YXRlY2g= RGlmZmVyZW50 IEVMRQ== IEdvdmVybm1lbnRz IEFoZWFk 44WL44WL d29yZHByZXNz TElC IEluY2x1ZGU= IERvcm90aHk= MDQ1 IENvbG9tYmlhbg== IGxlYXNlZA== ODg0 IGRlZ3JhZGluZw== IERhaXN5 aWF0aW9ucw== IGJhcHRpemVk IHN1cm5hbWU= Y294 IGJsaW5rZWQ= 44Oi IHBvbGxlbg== IGRlcm1hdA== IHJlZ2V4 IE5pY2hvbHNvbg== IEVhdGVy 55w= cmFkb3I= IG5hcnJvd2Vy IGh1cnJpY2FuZXM= IGhhbGx1Y2luYXRpb25z cmlkZGVu SVNTSU9O IEZpcmVmbHk= IGF0dGFpbm1lbnQ= IG5vbWluYXRl IGF2b2NhZG8= IE1lcmVkaXRo IHRz IHJldmVyZW5jZQ== IGV1cGg= IGNyYXRlcw== IFRFWFQ= IDQ0Mw== IDMxOQ== SlNPTg== aXF1ZXR0ZQ== IHNob3J0c3RvcA== aWNrZXk= IHByb3BlbGxlZA== IGFwaQ== IFRoaWV2ZXM= Nzc5 IG92ZXJzYXc= IGNvbGk= IE5pY29sYQ== IG92ZXJjbA== aWthd2E= IEN5cg== IDM4NA== Nzg5 IEFsbG93cw== MTAyNw== RGV0cm9pdA== VFJZ c2V0dXA= IFNvY2lhbGlzbQ== U292aWV0 c3VzcA== IEFQUg== IFNodXRkb3du IGFsdW1pbml1bQ== emJlaw== IExvdmVy R0dHR0dHR0c= IGRlbW9jcmFjaWVz IDE5MDg= IE1lcnJpbGw= IEZyYW5jb2lz Z2RhbGE= IHRyYWZmaWNrZXJz IFRpbA== IEdvYXQ= IHNwZWQ= IFJlc2Vydg== IHByb2Q= NTUy IGNhYw== IFVuaXY= IFNjaHdl IHN3aXJsaW5n IFdpbGRlcm5lc3M= IEVnZ3M= IHNhZGRlbmVk IGFyY2hhaWM= SHlk IGV4Y2Vzc2l2ZWx5 QlJF IGFlcm9zcGFjZQ== IFZvaWNlcw== Q3JhaWc= IGlnbml0ZWQ= SW5pdGlhbGx5 IE1jQQ== IGhhbmRzZXQ= IHJlZm9ybWluZw== IGZydXN0cmF0aW9ucw== IERlYWRwb29s IEJlbGljaGljaw== cmFjdG9y IFJhZ25hcm9r IERydXBhbA== IEFwcHJveGltYXRlbHk= MTkyMA== IEh1YmJsZQ== YXJtb3I= IFNhcmFz IEpvbmFz IG5vc3RhbGdpYw== IGZlYXNpYmlsaXR5 U2FoYXJhbg== IG9yYml0aW5n IDk3MA== UnU= IHNoaW4= IEludmVzdGlnYXRvcnM= IGluY29uc2lzdGVuY2llcw== IFBBTg== Qkc= IGdyYXppbmc= IGRldGVjdG9ycw== IFN0YXJ0dXA= IEZ1bm55 IE5hb21p Q29uc2lkZXJpbmc= IGhvZw== dXRm Y2VtaWM= IGZvcnRpZmllZA== IEZ1bmN0aW9ucw== IGNvZGVj bnV0cml0aW9u SGF0 IiE= bWljcm9zb2Z0 NTU4 IFRoaW4= IEFDRQ== QWxpYXM= IE9QUw== cGFwZXJz UEs= 44CO IGltcHJvYmFibGU= Tm9ydGhlcm4= ZXF1YWw= IGxvb2tvdXQ= IHR5cmVz IE1vZGlmaWVk IEtvcA== QWJzb2x1dGVseQ== IGJ1aWxkdXA= c2lsdmVy IGF1ZGk= IGdyb3Rlc3F1ZQ== IFNhYmVy IFByZXNieXRlcg== T05Z IGdsYWNpZXJz IFNob2Fscw== IEthc3M= IEhSQw== IE5pY29s IEx1bmNo IEZvc3M= 4paS QURSQQ== IE9uZVBsdXM= b2luZw== Z3JvdW5kcw== IGluY2lkZW50YWw= IGRhdGFzZXRz Njg5 IENsYXJrc29u IGFzc2VtYmxpbmc= IENvcnJlY3Rpb25z IGRyaW5rZXJz IHF1YWxpZmllcnM= IGxlYXNo IHVuZm91bmRlZA== IEh1bmRyZWQ= IGtpY2tvZmY= VGk= IHJlY29uY2ls IEdyYW50cw== IENvbXBsaWFuY2U= IERleHRlcml0eQ== IDE5MDY= d2Fybg== RGFsbGFz TWF4aW11bQ== bmFyZA== YXZpYQ== YmVhdXQ= ZW5zaXRpdml0eQ== dHJhY2U= IHBpb25lZXJz IEZyYWN0 44CP IHByZWNlcHQ= IGdsb3NzeQ== IElFRUU= QWNyb3Nz IDY4MA== U2xlZXA= Y2hlb24= IHNhdGlyaWNhbA== IE1pbm90YXVy IENsYXVkZQ== IHLDqQ== YXBlZ28= IGNhcnJvdA== IFNlbWlu aW5vYQ== IHpv SW5kZXBlbmRlbnQ= IGRpYWdub3Nlcw== IEN1ZQ== TUFS IHJlbmRpdGlvbg== IEtpaw== IHBhdGhvbG9neQ== IHNlbGVjdHM= TGlua2VkSW4= IGFzc2F5 IERyZXM= IHRleHR1YWw= cG9zdGVk SVRBTA== IE1hdWw= TmVhbA== IGludGVyY29ubmVjdGVk IGVycmF0aWM= IFZpcnVz IDUzMA== IGVudmlyb25tZW50YWxpc3Rz IFBoZWxwcw== IGVuZ2FnZW1lbnRz IElOU1Q= IGVjb25vbWljYWw= bm94aW91cw== IGdlYXJpbmc= aXp6eQ== IGZhdm9yYWJseQ== IE1jR2lsbA== VGVybQ== IGhhbmdlZA== IGJhbGxwYXJr IFJleWVz IGJld2FyZQ== IFBzYWw= IE1hc3NhY3Jl cWk= IGluYWNjZXNzaWJsZQ== YWNseXNt IGZyYXk= aWxsYWM= IGJpdHRlcmx5 IENlcnRpZmljYXRpb24= TWljaGlnYW4= IGlycmVzcGVjdGl2ZQ== YWxvcmU= RW1wdHk= IGVuZG9yc2VtZW50cw== IHVuZGV0 Zmc= ZXF1aXBwZWQ= IG1lcmNpbGVzcw== IEN1c3Q= IGltbWF0dXJl IHZvdWNoZXI= IEJsYWNrd2VsbA== 0Y8= aGF3aw== ZGlzY2lwbGluYXJ5 aWxlZQ== IE1ha290bw== IER1ZGU= 44OH44Kj WWVhcnM= IGludmVy IHNoYW1hbg== IFlvbmc= aXBlbA== ZWxsZW4= IENhdGh5 YnJpZHM= IHNhcmM= NjUx TmVhcg== IGdyb3VuZHdvcms= IGFtYXo= IDQxNQ== IEh1bnRpbmd0b24= aGV3cw== IEJ1bmc= IGFyYml0cmFyaWx5 IFdpdA== IEFsYmVydG8= IGRpc3F1YWxpZmllZA== YmVzdG9z NDYx IHBj IDI4NA== cm9iYXQ= Um9iaW4= IGh1Z3M= IFRyYW5zaXRpb24= IE9jY2FzaW9uYWxseQ== IDMyNg== IFdoaWxzdA== IExleQ== IHNwYWNlc2hpcA== Y3N2 IHVuc3VjY2Vzc2Z1bGx5 IEF1 bGVjaw== IFdpbmdlZA== IEdyaXp6bGllcw== Lu+/vQ== IG5lYXJlcg== IFNvcmNlcmVzcw== IEluZGlnbw== RWxzZQ== ODQw bGV0ZXM= Q29hY2g= IHVwYnJpbmdpbmc= IEtlcw== IHNlcGFyYXRpc3Q= IHJhY2lzdHM= IGNoYWluZWQ= IGFic3RpbmVuY2U= bGVhcm5pbmc= IHJlaW5zdGF0ZWQ= IHN5bW1ldHJ5 IHJlbWluZGVycw== IENoZXZ5 IG1vbnQ= IGV4ZW1wbGFyeQ== IFRPUg== Wlg= IHF1YWxpdGF0aXZl IFN0YW1w IFNhdmFubmFo IFJvc3Np IHBhZWQ= IGRpc3BlbnNhcmllcw== IFdhbGxz IENocm9uaWM= IGNvbXBsaW1lbnRhcnk= IEJlaXJ1dA== ICstLS0= aWdzbGlzdA== IGNyeXB0b2dyYXBoaWM= bWFzdGVycw== IENhcGl0YWxz IG1heGltYWw= IGVudHJvcHk= UG9pbnRz IGNvbWJhdGFudHM= bGlw IEdsb2I= IEJNQw== cGhhc2U= dGhhbms= SFRUUA== IGNvbW11dGVy IFwoXA== Li4v IFJlZ2VuZXI= IERPSQ== IEFjdGl2aXNpb24= IHNsaXQ= b3NhbA== UkVN IGNoYW50cw== WXU= S2V5cw== QnJleGl0 IEZvcmNlZA== QXJpem9uYQ== IHNxdWFkcm9u SVNP IE1hbG9uZQ== IDMzOA== IGNvbnRyYXN0aW5n IHRpZGFs IGxpYmVs IGltcGxhbnRlZA== IHVwcm9hcg== IENhdGVy IHByb3Bvc2l0aW9ucw== TWFuY2hlc3Rlcg== IEV1cm9z aXRhbWlu R2ls IEVsdmVu IFNlZWs= IEJhaQ== IHJlZGV2ZWxvcG1lbnQ= IFRvd25z IEx1Yg== ISIs YWxvbg== S3Jpc3Q= IG1lYXN1cmFibGU= IGltYWdpbmFibGU= IGFwb3N0bGVz WU4= NzYw IHN0ZXJvaWQ= IHNwZWNpZmljaXR5 IExvY2F0ZWQ= IEJlY2tlcg== IEVkdQ== IERpZXRhcnk= dXRzY2g= IE1hcmlseW4= IGJsaXN0ZXI= IE1FUA== IEtveg== IENNUw== eWFob28= IENhcm5leQ== IGJvYXN0aW5n IENhbGVi Qnl0ZQ== cmVhZHM= YWRlbg== UHJvYmxlbQ== IFdvb2R3YXJk U3dl U3Vw IEtHQg== U2V0dXA= IHRhY2l0 IHJldHJpYnV0aW9u IGR1ZXM= IE3DvA== Lj8= 5Lit cG90cw== IGNhbWVv IFBBTA== ZWR1Y2F0aW9u QW15 bGlrZWx5 Z2xpbmc= IGNvbnN0aXR1dGlvbmFsbHk= IEhhbW0= IFNwZWFr IHdpZGdldHM= YnJhdGU= IGNyYXBweQ== IEl0ZXI= IGFudGljaXBhdGluZw== IEJvdXQ= UGl4ZWw= IFllcA== IExhdXJpZQ== IGh1dA== IGJ1bGxldGlu IFNhbHZhdGlvbg== IGNoYXRz ZWFyYWJsZQ== SG9uZXN0bHk= QUxUSA== b25zZXF1 Y3VsdA== aXNjb3Zlcnk= b3Z5Y2g= IHNlbHZlcw== IFNhdG9zaGk= U291bmRz IGNvbnZlcmdlbmNl IFJvc2VuYmVyZw== MTk3NA== IG5hc2Fs IGZ1bGxlc3Q= IGZlcm9jaW91cw== eHVz aXN0ZQ== QU1T IGxvYmJpZWQ= IHNvb3RoaW5n IEd1bm4= dG9kYXk= MDI0 IGluc3BpcmF0aW9uYWw= IE5CTg== cGI= Z2V3YXRlcg== b3JhaA== YWxsb3dlZA== IENvbGlzZXVt IHNwZWNpYWxpemluZw== IGluc2FuZWx5 IFRhcGU= ZGVsYXk= IHRhcm4= IFBvdW5k IG1lbGFuY2g= IGRlcGxveW1lbnRz aWxhbmQ= IGxlc3Nlbg== IGZ1cnJ5 IFVFRkE= IGJsb29kc2hlZA== IE1laWVy aXRoZXJpbmc= IGhlaXJz IEphdw== YXh0ZXI= IFB1YmxpY2F0aW9ucw== IGFsdGVycw== aW50ZW50aW9u IFdpbmNoZXN0ZXI= ZGV0ZXJtaW5hdGlvbg== IExpZmV0aW1l dGhpbg== TW9uc3Rlcg== Nzgw IGFwcHJveGltYXRpb24= IHN1cGVybWFya2V0cw== IFNlY29uZHM= b3Jvcw== aHVnZQ== IGJyaWJl IExJTUlURUQ= dW5lZA== IG1pc2ludGVycHJldA== IEluanVyeQ== IDM2Nw== IHRocmVzaG9sZHM= IENhcm5pdmFs IGdhc3Ryb2ludGVzdGluYWw= IGd1aWRlbGluZQ== IGRlY2VpdmVk ZmVhdHVyZXM= IHB1cnBvcnRlZGx5 IFJvbm5pZQ== IE5ld3Q= IHNwYWNpb3Vz YXN1cw== IHN1cGVyaGVyb2Vz IEN5bnRoaWE= bGVnZ2Vk a2FtcA== Y2hpbw== IHRodW1ibmFpbA== IFNoaXJsZXk= aWxsYXRpb24= IHNoZWRz IFp5 RVBB IGRhbXM= IHlhd24= bmFo IFBlZ2d5 IEVyaWU= IEp1dmVudHVz IEZvdW50YWlu cng= ZG9uYWxk YWxidW0= IENvbXByZWhlbnNpdmU= IGNhY2hpbmc= IFV6 dWxuZXJhYmlsaXR5 IFByaW5jaXBsZQ== IEppYW4= aW5nZXJz Y2FzdHM= IE9zaXJpcw== Y2hhcnQ= dGlsZQ== IFRpZmZhbnk= IFBhdHRvbg== IFdoaXA= IG92ZXJzaXplZA== SmU= IENpbmRlcmVsbGE= IEJvcmRlcnM= IERhZXNo TWFo IGRvZ21h IGNvbW11bmlzdHM= dnU= Q291bmNpbA== IGZyZXNod2F0ZXI= IHdvdW5kaW5n IGRlYmFjbGU= IHlvdW5nc3Rlcg== IHRocmVhZGVk IEJvdHM= IFNhdmluZ3M= 44GC b2xpbmc= b2hv IGlsbHVtaW5hdGlvbg== TVJJ IGxvb3Nlbg== dHJ1bXA= YWdlbmN5 dXJpb24= IG1vbWVudGFyaWx5 IENodW4= IEJ1ZGFwZXN0 IEFsbGV5 RGlzaw== IGFzdG9uaXNoZWQ= IENvbnF1ZXI= IEFjY291bnRpbmc= aGF2aW5n IFdlaW4= IEFscmlnaHQ= IHJldm9sdmVy IGRlbHVzaW9u IHJlbGljcw== IGFkaGVyZW50 cXVhbnQ= IGhhbmRtYWRl b3Jpbw== IGNvbWJhdGluZw== Y29kZWQ= IHF1YWRydQ== cmV0aA== Tmlr IFRyaWJhbA== IE15c3RlcmlvdXM= IGluaGFs IFdpbm5pbmc= IENsYXNzaWZpY2F0aW9u Y2hhbmdlZA== IHVuYWI= IHNjb3Ju aWNpcGF0ZWQ= d2w= b25kdWN0b3I= IHJlaW5mb3JjaW5n IENoaWxkaG9vZA== YW5vdmE= IGFkdmVudHVyZXI= IGRvY3RvcmFs IFN0cmF0ZWdpZXM= IGVuZ3VsZmVk IEVuY291bnRlcg== IGxhc2hlcw== Q3JpdGljYWw= cmljdWxhcg== IFVURg== b2NpYXRpb24= Y2hlY2tpbmc= IENvbnN1bHRpbmc= UnVudGltZQ== cGVyaW9k IEFzZ2FyZA== IGRpc3RpbGxlZA== IFBhc2FkZW5h IER5aW5n IENPVU5UWQ== IGdyYW5pdGU= IHNtYWNr IHBhcmFjaHV0ZQ== IFNVUg== VmlyZ2luaWE= IEZ1cmlvdXM= Nzg3 IE9raW4= IGNhbWVs IE1icHM= MTk3Mg== IENoYW8= IEN5YW4= am9pY2U= ZWZlcg== IFdyYXA= IERlYmF0ZQ== U2Vn IGZvcmVhcm0= IElnbm9yZQ== IHRpbWVzdGFtcA== IHByb2Jpbmc= IE5vb24= IEdyYWls ZmVu IGRvcm1hbnQ= IEZpcnN0bHk= IEVpZ2h0aA== IEhVTg== IERlc2lyZQ== b3Jhcw== R2lybHM= IERlc21vbmQ= emFy YW1pbmVz T0FE ZXhlY3V0ZQ== IGJvb2Jz IEFUTA== Xyg= Q2hlbHNlYQ== IG1hc3R1cmJhdGlvbg== IENvQw== IGRlc3Ryb3llcg== IENob21za3k= IHNjYXR0ZXI= IEFzc2V0cw== Nzk2 IENhcmdv IHJlY2VwdGl2ZQ== IFNjb3Bl IG1hcmtldGVycw== IGxhdW5jaGVycw== IGF4bGU= IFNFQQ== c2Vx IE1vZmY= ZmluZGluZw== IEdpYmJz R2VvcmdpYQ== ZXh0cmVtZWx5 Tko= IGxhYm9yZXJz c3RhbHM= IG1lZGlhdGlvbg== IEhlZGdl YXRvd24= IGlvZA== ZGVzcGl0ZQ== dmlsbA== SmFuZQ== ZXhpc3RlbmNl IGNvaW5jaWRlZA== IFV0aWxpdGllcw== IENoZWFw IGxvZ2lzdGljYWw= IGN1bG1pbmF0aW9u IE5pY290aW5l cGFr Rm9sZGVy IHJvZGVudHM= c3R1ZmY= IGxhd2Z1bGx5 IHJlcGVydG8= aW9jaA== amo= RGlhbG9ndWU= SEhISA== bGljdGlvbg== TG9va3M= IDI5Nw== IHR1cnJldHM= IEFiYW5kb24= IGluY2Vzcw== IFRyYWZmb3Jk IGN1cmxlZA== IHByZWZlcnJpbmc= IHByaXZhdGl6YXRpb24= IGlycmVzaXN0 IFBhbmRh IFNoYWtl IE1jR3I= 44OE dW5kZXJz IGRpc2NyaW1pbmF0ZWQ= IGJhcnRlbmRlcg== SUxF QXRsYW50aWM= IHByb3BlbnNpdHk= IFdpeg== IEdpbQ== Y29uZmVyZW5jZQ== IHJlaW5mb3JjZXM= R2g= d2Fnb24= IGVlcmll RmFs IGh1Z2dlZA== cmFjaXN0 UklD RnU= IGZpbGxlcg== IFN0dWI= IGVuZ3JhdmVk IFdyZXN0bGU= IGltYWdpbmF0aXZl IFBlZXI= IEZhY3RvcnM= YW51cw== IERyYWN1bGE= bW9uaXRvcg== IHJvdXRlcnM= aWJpYQ== IEJvb2xlYW4= ZW5kYWxl IFNsYXVnaHRlcg== IFNoYWNr UkZD IFNwaWVsYmVyZw== U2F4 IFBIT1RP IENsb3Zlcg== IFJhZQ== RGVwZW5kaW5n IE1lbW9y YXJhbQ== IHBpZXJjZWQ= IGN1cnRhaW5z dmFsZQ== IElucXVpc2l0aW9u IFBva2U= IGZvcmVjYXN0aW5n IGNvbXBsYWlucw== U2Vuc2U= IEhlcm1lcw== aXNjb3ZlcmVk IGJpYmxl IE1vcnBo IGdlcm0= Nzg1 RE9O IGNvbmdlbg== IGNyYW5l IERQUg== IHJlc3BlY3RmdWxseQ== Um9vbQ== IE5hdw== IERhbGFp cmVhc29u IEFuZ3Vz RWR1Y2F0aW9u IFRpdGFuaWM= y5w= IG92YWw= dW5pdGVk IHRoaXJkcw== IG1vaXN0dXI= IENQQw== TWlhbWk= IHRlbnRhY2xlcw== IFBvbGFyaXM= ZXhj ZXhjbHVzaXZl IFByYWlyaWU= IGNvbG9zc2Fs IEJsZW5k c3VycHJpc2luZ2x5 w61z IGluZG9jdHI= IGJhc2Fs IE1QRUc= dW5kbw== U3BsaXQ= RGV2ZWxvcG1lbnQ= IGxhbnRlcm4= MTk3MQ== IHByb3ZvY2F0aW9u IGFuZ3Vpc2g= IEJpbmQ= IExlaWE= ZHVjZXJz aXBweQ== Y29uc2VydmFuY3k= IGluaXRpYWxpemU= IFR3aWNl IFN1aw== IHByZWRpYw== IGRpcGxvbWE= IHNvY2lvcA== SW5ncmVkaWVudHM= IGhhbW1lcmVk IElybWE= UWFpZGE= IGdsaW1wcw== IEJpYW4= IHN0YWNraW5n IGZlbmQ= Z292dHJhY2s= IHVubg== ZGVtb2NyYXRpYw== aWdyZWU= IDU4MA== IDI5NA== IHN0cmF3YmVycnk= SURFUg== IGNoZXJpc2hlZA== IEhvdHM= IGluZmVycmVk IDgwOA== IFNvY3JhdGVz T3JlZ29u IFJvc2Vz IEZPSUE= IGluc2Vuc2l0aXZl IDQwOA== UmVjb21tZW5k IFNoaW5l IHBhaW5zdGFraW5n VUdF IEhlbGxlcg== IEVudGVycHJpc2Vz SU9S YWRq TlJT TEc= IGFsaWVuYXRlZA== IGFja25vd2xlZGdlbWVudA== IEFVRA== IFJlbmVn IHZvdWNoZXJz IDk2MA== IG1vb3Q= IERpbWVuc2lvbnM= IGNhYmJhZ2U= QnJpZ2h0 Z2F0 IEtsdQ== IGxhdGVudA== IHpl IE1lbmc= IGRpc3BlcnNl IHBhbmRlbW9uaXVt SFE= IHZpcnR1b3Vz IExvY2F0aW9ucw== ZWVwZXI= cHJvdmlkZWQ= IHNlYW1z IFdU aXpv UFJPVg== IHRpdGFuaXVt IHJlY29sbGVjdGlvbg== IGNyYW4= IDc4MA== IE5G NDkx NjQy cGFja2luZw== NTk4 dGV4dHVyZQ== U3BpZGVy ZnJlZWRvbQ== Y2lwbGVk IFRBTUFEUkE= 4pmm YXV0aGVudA== IFdBTlQ= cmlmaWVk IHJpdGVz IHV0ZXJ1cw== a2lzcw== IOKJpA== IHNraWxsZXQ= IGRpc2VuZnJhbmNo IEdhYWw= Q29tcGFu IGFnZWluZw== Z3VpZGU= QmFsdA== IGl0ZXJhdG9y IGRpc2NyZXRpb25hcnk= dGlwcw== IHByaW1hdGVz IFRlY2huaXF1ZQ== IFBheW1lbnRz YXplbA== IFJPQ0s= c3RhbnRpYWw= MDYw IGRtZw== IEphY2tldHM= IFBsYXlvZmY= IG51cnNlcnk= IFN5bWI= YXJ0b24= IGFubmV4YXRpb24= Q29sb3JhZG8= IGNvaWxz IFNob2Vz 4oSiOg== IFJveg== Q09NUExF IEV2ZXJlc3Q= IFRyaXVtcGg= Sm95 R3JpZA== 4Lw= cHJvY2Vzc29y IFByb3NwZXI= IFNldmVydXM= IFNlbGVjdGVk cmc= IFRheXlpcA== U3RyYQ== IHNraWluZw== ID8p IHBlZw== VGVzbGE= IHRpbWVmcmFtZQ== IG1hc3Rlcm1pbmQ= IE5C c2NpZW50aWZpYw== IFNoaXQ= Z2VuZXJpYw== SU5URVI= TlVN IHN0cm9sbA== IEVuaXg= IE1NUg== IEVNUw== bW92aWU= gqo= IG1pbmltaXppbmc= aWRkbGluZw== IGlsbGVnaXRpbWF0ZQ== IHByb3RvdHlw IHByZW1hdHVyZWx5 IG1hbnVhbHM= b2JiaWVz IENhc3NpZHk= REVD ZGVza3RvcA== IGFlcm9z IHNjcmVlbmluZ3M= IGRlYmlsaXRhdGluZw== IEdyaW5k bmF0dXJlY29uc2VydmFuY3k= IGZhZGVz dGVybWluYXRpb24= YXNzZXRzYWRvYmU= RmFjdG9y IGRlZmluaXRpdmVseQ== UG9rw6k= YXB1bHQ= IExhZmF5ZXR0ZQ== Q29ybg== IENvcmFs IHN0YWduYW50 VHVl IGRpc3NhdGlzZmFjdGlvbg== R2VuZGVy IGtpZG5leXM= IEdvdw== IERlZmVhdA== IEFzaHRvbg== IGNhcnRlbHM= IGZvcmVjbG9zdXJl IEV4cGxvcmU= c3RyZW5ndGg= b3Rpbg== IHZldGVyaW5hcmlhbg== IGZ1bWJsZQ== IHBhcmFw IFN0cmFpdA== cmlscw== IHByaWNr IEJlcm11ZGE= IEFtbXVuaXRpb24= c2tpbm5lZA== IGFib3VuZA== IEJyYXo= IHNoYXJwZXI= IEFzY2Vuc2lvbg== IDk3OA== IHByZXZpZXdz IGNvbW11bmlvbg== IFhZ IHBob255 IG5ld2NvbWVy IDMzMg== LiIsIg== IHJlZGlzdHJpYnV0aW9u UHJvdGVjdA== IFNvZg== S2Fs IGxpcHN0aWNr d29yc3Q= IHRhbmdsZWQ= IHJldHJvc3BlY3RpdmU= aW50ZWdlcg== IHZvbHVudGVlcmluZw== IDE5MDc= IC0tLS0tLS0tLS0tLS0tLS0tLS0t aWNoZW4= IHVudmVpbGluZw== IHNlbnNlbGVzcw== IGZpc2hlcmllcw== XC0= IGhpbmdlcw== IGNhbGN1bHVz TXl0aA== IHVuZGVmZWF0ZWQ= IG9wdGltaXphdGlvbnM= IGRlcHJlc3M= IGJpbGxib2FyZA== IFlhZA== IFB5cmFtaWQ= SXNu SWRl IGxlZ2lvbg== IEtyYW1lcg== ZW50YW55bA== IHBlbmV0cmF0aW5n IEhhd3Ro IFBST0RVQ1Q= IEdlcmFyZA== IFBhY3Q= IEluY2x1ZGluZw== IEVsaWFz IEVsYWluZQ== dmlzdWFs IGh1bW1pbmc= IGNvbmRlc2M= IEZhc2M= 5LiK IGVnYWxpdGFyaWFu IGRldnM= IERhaGw= T3Bz REg= IEJvdW5jZQ== aWRhdGVk YWxkbw== IHJlcHVibGljYW4= IGhhbWI= IFNldHQ= b2dyYXBoaWVz Q0hBUFRFUg== IHRyYW5zc2V4dWFs IHNreXJvY2tldA== YW5zd2Vy IG1hcmt1cA== 2Ko= IGhlcm9pbmU= Q29tcGFyZQ== IFRhdg== QmVhc3Q= IHN1Y2Nlc3NvcnM= IG5hw692ZQ== IEJ1Y2tsZXk= c3RyZXNz bWVhdA== IGRvd25sb2FkYWJsZQ== IGluZGV4ZWQ= IHNjYWZm IEx1bXA= IEhvbW8= U3R1ZGlv SW5zcA== IHJhY2tlZA== ZmFyaW91cw== IFBldHR5 RXh0ZXJuYWw= IDE5MDk= V2Fycw== Y29tbWl0 cHV0ZXJz IHVub2I= IEVycg== IEVH IEFsYW0= IFNpYmVyaWE= IEF0bW9zcGhlcmlj SVNURVI= IFNhdGFuaWM= dHJhbnNsYXRpb24= IExvdWQ= dHJhdW1hdGlj bGlxdWU= IHJlc29uYXRl IFdlbGNo IHNwYXJraW5n IFRPTQ== dG9uZQ== IG91dGw= IGhhbmRjdWZmZWQ= IFNlcmll ODAx IGxhbmRtYXJrcw== IFJlZXZlcw== IHNvZnRlbmVk IGRhenpsaW5n IFdhbnRlZA== bW9udGhz TWFnaWthcnA= IHVudHJlYXRlZA== IEJlZGZvcmQ= TWk= IER5bmFtbw== T3Jl Nzk1 IHdyb25nZnVs IGx1cmVk IGNvcnRpc29s IHZleA== ZHJhd24= aWxldA== RG93bmxvYWRoYQ== IEZhY3Rpb24= IGxhYnlyaW50aA== IGhpamFja2Vk d2F0ZXJz ZXJpY2s= IHN1cGVyaW9ycw== IFJvd2xpbmc= IEd1aW5uZXNz IHRk OTky IHVuZWFydGhlZA== IGNlbnRyaWY= IHNoYW1lbGVzcw== UG9k IEZpYg== IGljaW5n IHByZWRpY3Rvcg== IDI5Mg== Zm9yZXN0YXRpb24= Y29uc3RydWN0 Q2FuZA== QCM= IGFnaXRhdGVk IHJlcHI= T1ZB IGtuaXR0aW5n IExpbWE= IGZvZGRlcg== Njg0 IFBlcnNvbmE= a2w= NzAx IGJyZWFrdXA= 4bg= IGFwcGFsbGVk IGFudGlkZXByZXNzYW50cw== IFN1c3NleA== SGFycmlz IFRoZXJtYWw= ZWVlZQ== VXBsb2Fk IGd1bGY= IGRvb3JzdGVw IFNoYW5r TFU= IE1FTg== IFBvbmQ= c29ycnk= IG1pc2ZvcnR1bmU= bmFuY2U= IGJvbmE= TXV0 IGRlZ3JhZGVk IExPRw== IE5lc3M= YW5pbWFs IGF2ZXJzaW9u dW5kb3du IHN1cHBsZW1lbnRlZA== IEN1cHM= IDUwNA== IGRlcHJpdmU= IFNwYXJrbGU= xYI= IE1lZGl0YXRpb24= YXV0aG9ycw== IFNhYmFu IE5ha2Vk YWlyZA== IE1hbmRhcmlu IFNjcmlwdHVyZXM= IFBlcnNvbm5lbA== IE1haGFyYXNodHJh IDE5MDM= IFBhaQ== IE1pcmFnZQ== b21iYXQ= QWNjZXNzb3J5 IGZyYWdtZW50ZWQ= VG9nZXRoZXI= IGJlbGlldmFibGU= IEdsYWRpYXRvcg== YWxpZ25lZA== IFNsdWc= TUFU IGNvbnZlcnRpYmxl IEJvdXJib24= YW1lcm9u IFJlaGFi bnRheA== IHBvd2RlcmVk cGlsbGFy IHNtb2tlcg== IE1hbnNvbg== IEJG NTEx IEdvb2RlbGw= IERBUg== bXVk Z2FydA== IG9iZWRpZW50 IFRyYW5zbWlzc2lvbg== IERvbmF0aW9u ODgw IGJvdGhlcmluZw== TWF0ZXJpYWxz 44Kx ZGVzdHJveQ== IGZvcmVnb2luZw== IGFuYXJjaGlzbQ== IEtyeQ== aWNlcHM= IGxpdHRlcmVk IFNjaGlmZg== IGFuZWNkb3RhbA== dW5pdHM= IGZpYW4= IFN0aW0= IFNPTUU= IEludmFkZXJz IGJlaGF2aW91cmFs IFZlbnR1cmVz IHN1YmxpbWU= IGZydWl0aW9u IFBlbmFsdHk= IGNvcnJvc2lvbg== toU= IGxpa2VuZWQ= IGJlc2llZ2Vk d2VlbmV5 IENyZWVw IGxpbmVtZW4= bXVsdGk= aWNhYmx5 dWRkZXI= IHZpdGFsaXR5 IHNob3J0ZmFsbA== IFBhbnRz YXBpc3Q= SGlkZGVu IERyb3Bz bWVkaWNhbA== IHByb251bmNpYXRpb24= IE5STA== IGluc2lnaHRmdWw= SlY= IEJlYXJk IENob3U= IGNoYXJtcw== IGJpbnM= IGFtYmFzc2Fkb3Jz IFNhdHVyZGF5cw== IGluaGliaXRvcg== IEZyYW5jaA== NjAx Jywn IENvbm9y YXJ0bmV5 IFhwZXJpYQ== Z3JhdmU= YmVlcw== IFByb3Rlc3RhbnRz IHNvYWtpbmc= IE1hbmRhbA== IHBoYXNlZA== IDY2MA== IHNjYW1z IGJ1enppbmc= IEl0YWxpYW5z IExvcmVuem8= IEpB IGhlc2l0YXRlZA== IGNsaWZmcw== IEdPVA== aW5ndWlzaGFibGU= IGtv IGludGVycnVwdGlvbg== Wmlw TGVhcm5pbmc= IHVuZGVyc2NvcmVz IEJsaW5r S3U= NTc5 IEF1dG9i SVJF IHdhdGVyaW5n IHBhc3RyeQ== ODIw IHZpc2lvbmFyeQ== IFRlbXBsYXI= YXdhaXRlZA== IHBpc3Rvbg== IGFudGlk Y3VycmVudGx5 IHBhcmQ= IHdhZ2luZw== IG5vYmlsaXR5 IFl1cw== IGluamVjdGluZw== ZmFpdGg= IFBBU1M= 5bo= IHJldGFrZQ== IFBST0M= IGNhdGhlZHJhbA== YmFzaA== IHdyZXN0bGVycw== IHBhcnRuZXJpbmc= IG5vc2Vz IDM1OA== VHJhbnNmb3Jt YW1lbg== IGJvdXRz IElkZWFs IENvbnN0YW50aW4= IHNlcA== IE1vbmFyY2g= YXR0ZW4= IFBlb3BsZXM= bW9kaWZpZWQ= IG1vcmF0b3JpdW0= IHBlbmNoYW50 IG9mZmVuc2l2ZWx5 IHByb3hpZXM= b2thbmU= IFRhaXdhbmVzZQ== IFBvbw== IEhPTUU= dXNpb25hbA== IHZlcmJz IE9tYW4= dmlzb3J5 IHBlcnN1YXNpb24= IG11bHRpdA== IHNjaXNzb3Jz R2F5 b3dheQ== b3BoeXNpY2Fs bHVz Z251 IGFwb2NhbHlwdGlj IGFic3VyZGl0eQ== IHBsYXlib29r IGF1dG9iaW9ncmFwaHk= SVVN IHNuZWFraW5n IFNpbXVsYXRpb24= cHBz ZWxsZXJ5 UGxhbmV0 IHJpZ2h0ZnVsbHk= IG5pZWNl IE5FQw== IElQTw== IERpc2Nsb3N1cmU= bGVhbm9y b3VzeQ== U1RFUg== IDI4Mg== Q3J1eg== Q2hhbGw= NjQz IFN1cnZpdmU= IEZhdGFs IEFtaWQ= YXBv V2VhcG9ucw== REVO Nzcw IEdyZWVud2FsZA== IGxpbmVu YWxvcw== IHBvbGx1dGFudHM= IFBDSWU= a2F0 IHBhdw== IEtyYWZ0 Q2hlbQ== IFRlcm1pbmF0b3I= IHJlaW5jYXJu IF1b IFNlZWRz IHNpbGhvdWV0dGU= IFN0b3Jlcw== IGdyb29taW5n IERpcmVjdGlvbg== IElzYWJlbA== IEJyaWRnZXM= 8J+R RUVE IE1vcnNp IHZhbHZlcw== IFJhbmtlZA== IFBoYXJtYQ== IE9yZ2FuaXphdGlvbnM= IHBlbmV0cmF0ZWQ= IFJvZGhhbQ== IFByb3Rvc3M= IG92ZXJlc3Q= IGV4YXNwZXI= IFRK IDAwMDAwMA== IHRyaWNrbGU= IGJvdXJib24= V0hP IHdyZXRjaGVk IG1pY3Jvc2NvcGlj IGNoZWNrbGlzdA== IGFkb3JuZWQ= Um95YWw= QWRtaW5pc3Q= IFJldGlyZW1lbnQ= IEhpZ2hlc3Q= V2VhdGhlcg== aWxlZ2U= IGluY3JlbWVudHM= IENvc3BvbnNvcnM= IG1hc3Nl IFNpbm4= cmY= IGhvcmRlcw== YXNzZW1ibHk= NzU0 IE5hdGFzaGE= IFRZUEU= IEdFTkVSQUw= IGFycmFuZ2luZw== IDQwNw== bGF0b3I= IGdsZWFu IGRpc2NyZWRpdGVk IGNsaW5pY2lhbnM= VU5F IGFjaGlldmVz IEVtZXJzb24= Y29tcGxleA== PVs= IHByaW5jaXBhbGx5 IGZyYWls cGlja2Vk IHRoYW5raW5n IHJlY2w= IExBU1Q= IHN1cHByZXNzaW5n aWxpYw== IGFudGlkZXByZXNzYW50 IExpc2Jvbg== IHRob3I= IHNwYQ== IGtpbmdkb21z IFBlYXJjZQ== ZW1v IHBsdW5n IGRpdmVzdA== ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq Ymlz b3NwZWxz YWRy U3Bpcml0 aGFsbGE= UGluaw== ZW5kZXo= IHJlc3VycmVjdGVk ZXNjYXBl IFJvc2Vuc3RlaW4= IGdlb2xvZ2ljYWw= IG5lY2Vzc2l0aWVz IGNhcm5pdg== IEVseXM= IEJhcm5leQ== IDI5Ng== ZGlneQ== U1RPTg== RE9XTg== IG1pbGVzdG9uZXM= IGtlcg== IGRpc21hbnRsaW5n IHJlcHJpbQ== IGNyb3NzaW5ncw== MTk0NQ== IHBhdHJpYXJjaHk= IGJsYXNwaGVteQ== IDM1OQ== bWV0cnk= IE9iZXNpdHk= IERpZmZlcmVuY2Vz YmxvY2tpbmc= 44OV44Kh aWNoaXRh IFNhYmhh cGhhbHQ= IENvbG8= dWFsYQ== ZWZmaWNpZW50cw== IE1lZGluYQ== Y29uc29sZQ== NTU3 IEhhbm5pYmFs IEhhYml0 IEZldmVy IHRoZW5jZQ== IHN5bmFnb2d1ZQ== IGVzc2VudGlhbHM= IHdpbms= IFRyYWRlcg== SURB IFNwb2lsZXI= IEljZWxhbmRpYw== IEhheXdhcmQ= IHBlYWM= IG1hbGljZQ== IGZsYXNoYmFjaw== IHRodw== IGxheW9mZnM= TGlxdWlk IHRyb29wZXI= IGhpbmdl IFJlYWRlcnM= UGhpbGw= IEJhdWVy Q3JlYXRlZA== IGF1ZGl0cw== YWNjb21wYW4= IHVuc3VzcGVjdGluZw== aWVyYQ== NjY2NjY2NjY= IGJyb2No IGFwcHJlaGVuZGVk IE1hbGs= Y2VybmluZw== IENvZGV4 T1ZFUg== TWFyc2g= IERlbmc= IEV4cHJlc3Npb24= IGRpc3Jlc3BlY3RmdWw= IGFzY2VuZGluZw== dGVzdHM= IFBsYWludGlmZg== c3Rlcnk= IEFsaWJhYmE= ZGluYW5k IERlbXBzZXk= QXBwbGljYXRpb25z bW9yYWw= IHRocm91Z2hwdXQ= IHF1YXJyZWw= IG1pbGxz IGhlbW9y IENBU0U= dGVycm9yaXN0 c3RpbQ== aWZlc3R5bGU= cm96ZW4= Q0VQVA== QXJr dWNp bGVjdGlj IGlycml0YXRpbmc= c2hlZXRz QXk= IHJlZGVlbWVk IGhvcm55 IFRlYWNo IFNlYXI= ZGVtb2NyYWN5 NDY1 IFJlc3RvcmU= IHN0YW5kYnk= IFBpcw== aWZmaW4= IHNsZWVweQ== IGV4dHJhdGVy IGNvbXBsaW1lbnRz RnJhbWV3b3Jrcw== IGluc3RhbGxz IGJhbmdpbmc= c3VyZmFjZQ== Zm91bmRsYW5k IG1ldGFwaHlzaWNhbA== IDI4Mw== b3Vscw== ZGV2aWNlcw== QXJncw== IFNhY3JpZmljZQ== IE1jQ29ybQ== ZXNvbg== Q29uc2VydmF0aXZl IE1pa2hhaWw= c2VlaW5n aXNpdmVseQ== IFJvb21z IEdlbmVyaWM= IGVudGh1c2lhc3RpY2FsbHk= IGdyaXBwZWQ= IGNvbWVkaWM= IEVsZWN0cmljaXR5 IGd1ZXJyaWxsYQ== IGRlY29yYXRpb24= IFBlcnNwZWN0aXZl IGNvbnN1bHRhdGlvbnM= IHVuYW1i IHBsYWdpYXI= IG1hZ2ljaWFu IGVyZWN0aW9u IFRvdXJpc20= b3JpZWQ= cm94eQ== MTEwMA== VGFt iOg= zrM= 16o= IFByZWRhdG9ycw== Tml0cm9tZQ== IHRlbGVzY29wZXM= cHJvamVjdHM= IHVucHJvdGVjdGVk IHN0b2NrZWQ= IEVudHJlcHJlbmU= bmV4cGVjdGVk IHdhc3Rld2F0ZXI= VmlsbA== IGludGltYXRlbHk= IGlDbG91ZA== IENvbnN0YWJsZQ== IHNwb29m IG5lZmFyaW91cw== IGZpbnM= IGNlbnNvcg== IE1vZGVz IEVzcGVy YXJib24= IGludGVyc2VjdGlvbnM= IGxhdWRlZA== IHBoeXNp IGdlbmVyb3VzbHk= IFRoZU5pdHJvbWU= IFRoZU5pdHJvbWVGYW4= IGFyaXNlbg== INmI IGdsYW5kcw== IFBhdmlsaW9u IEd1cHRh IHVuaWZvcm1seQ== IHJhbXBz cmlldA== IFdIRU4= IFZhbmVzc2E= IHJvdXRlZA== IGxpbXA= IENQSQ== cHRlcg== aW50dWl0aXZl IHZhcGluZw== IGV4cGVyaW1lbnRlZA== IE9seW1wdXM= IEFtb24= IHNpZ2h0aW5n IGluZmlsdHJhdGU= IEdlbnRsZW1hbg== IHNpZ25pbmdz IE1lb3c= IE5hdmlnYXRpb24= Y2hlY2tz NDMz IGVsYXBzZWQ= IEJ1bGdhcmlhbg== ZXNwaWU= IFNPTQ== ZHVyaW5n IHNwaWxscw== YW5jYQ== IFBseW1vdXRo TUFM IGRvbWVzdGljYWxseQ== IFdhdGVyZ2F0ZQ== IEZBTQ== a2lsbGVk ZWRpdGVk IFlvdXJzZWxm IHN5bmNocm9uaXphdGlvbg== IFByYWN0aWNlcw== U1RFUA== IGdlbm9tZXM= IFFS bm90aWNl IGxvY2F0aW5n emlu IDMyOQ== YWxjb2hvbA== IGtpdHRlbg== Vm8= IHJpbnNl IGdyYXBwbGU= IFNjcmV3 IER1bA== QUlS IGxlYXNpbmc= IENhZsOp IHJvc2Vz IFJlc3BlY3Q= IG1pc2xlYWQ= IHBlcmZlY3RlZA== IG51ZGl0eQ== IG5vbnBhcnRpc2Fu IENvbnN1bXB0aW9u UmVwb3J0aW5n IG51YW5jZXM= IGRlZHVjdGlibGU= IFNob3Rz IDM3Nw== IOac YW5vb2dh QmVuZWY= IEJhbQ== IFNhbXA= aWZpeA== IGdhbHZhbg== IE1lZGFscw== cmFkaXVz IG5vYmxlcw== IGVhdmVz aWdyYXRl S1Q= IEhhcmJvdXI= dWVycw== IHJpc2tlZA== cmVx IG5ldXJvdA== Z2V0dGFibGU= YWluYQ== Um9tbmV5 IHVuZGVycGlu IGxvZnQ= IFN1YmNvbW1pdHRlZQ== IE1vbmdvbA== Yml6 IG1hbmlmZXN0cw== YXNzaXN0ZWQ= IEdhZ2E= IHN5bmVyZ3k= IHJlbGlnaW91c2x5 IFByZWY= IEdlcnJ5 VEFH IENob2k= NDY2 YmVoaW5k IE91 R29sZE1hZ2lrYXJw IGhlbW9ycmg= Uml2ZXI= IHRlbmRvbg== IGluanVyZQ== IEZpb25h IHBhZw== IGFnaXRhdGlvbg== fHx8fA== dXJhbg== IEVTQQ== IGVzdGVlbQ== IGRvZGdpbmc= IDQxMg== cnNz IGNlYXNlcw== ZXhjbHVkaW5n IGludGFrZXM= IGluc2VydHM= IGVtYm9sZA== IE9yYWw= dXB1bmN0dXJl NDEx IFVuaWZpZWQ= IERlbGU= IGZ1cm5hY2U= IENveW90ZXM= IEJyYWNo TGFib3I= IGhhbmRzaGFrZQ== IGJydWlzZXM= R3JhZGU= 6ZeY IEdyYW1teQ== aWxlZW4= U3RhdGVz IFNjYW5kaW5hdmlhbg== IEthcmRhc2g= ODY2 IGVmZm9ydGxlc3NseQ== IERJUkVDVA== IFRIRU4= IE1laQ== ZXJ0YXRpb24= MTk2OA== IGdyb2lu d2l0Y2g= UmVxdWlyZW1lbnRz OTg1 IHJvb2Zz IGVzdGF0ZXM= IEhG IGhhaGE= IGRlbnNlbHk= IE9DVA== IHBsYXN0aWNz IGluY2lkZW50YWxseQ== IFRyYWNrcw== IFRheGVz IGNoYW50ZWQ= IGZvcmNlZnVs IEJpZWJlcg== IEthaG4= S2VudA== IENvdA== bGljdHM= RmVk IGhpZGVvdXM= IFZlcmQ= IFN5bmRpY2F0ZQ== IElsbGVnYWw= SmV0 IERBVg== cmVhc29uYWJsZQ== Y3Jldw== IGZ1bmRhbWVudGFsaXN0 IHRydXRoZnVs IEppbmc= IGxpbA== IGRvd25lZA== IGVuY2hhbnRlZA== IFBvbGljaWVz IE1jTWFzdGVy IEhhcmU= aWRlc2hvdw== IHBhcmFtcw== ZW5jZXJz Z29yaXRobQ== IGFsbG93YW5jZXM= IHR1cmJ1bGVudA== IGNvbXBsZXhpdGllcw== IEtU IDMzNw== IEdlbmV0aWM= RlVO RG91Zw== dGljaw== IGdpZ3M= dW1lbnRoYWw= IHBhdHJpYXJjaGFs IGNhbGM= LC4uLg== IGNvdXQ= IEd1YW4= IHBhdGhvbG9naWNhbA== IFJpdmFscw== IHVuZGVycmF0ZWQ= IGZsdW9yZXNjZW50 IEppdQ== YXJuYWV2 IFF1YW4= IDQyOQ== IOCo TWFyaW8= Q29uc3RydWN0 IENpdGF0aW9u IFJhY2lhbA== IFJTQQ== IEZpZGVs IDM5NQ== UGVyc29uYWxseQ== Q2F1c2U= w7s= cmFkaWNhbA== aW5lbg== IHZlaGVtZW50bHk= IFBhcGE= IGludGVybnNoaXA= IGZsYWtlcw== IFJlY2s= THVja2lseQ== QnJh MjAyMA== cmF2aW5ncw== Uk4= V29uZGVy U2VyaW91c2x5 IHJldXNhYmxl IHBvbGx1dGVk IFBlbmc= bGVpZ2g= aW5kbGU= IGNpcmN1aXRyeQ== IE1hZG9ubmE= IEJBUlQ= UmVzaWRlbnRz YXR0cmlidXRl UGhpbGFkZWxwaGlh Q2x1Yg== IHBsYW5uZXI= IGZyYW50aWNhbGx5 IGZhaXRoZnVsbHk= IFRlcnJpdG9yaWVz IExBVA== IEFuZGVyc2Vu YW51 IFBBUks= IFNvcmE= aWFnZQ== IFBsYXlvZmZz IEdDQw== NDI3 IGFibm9ybQ== IExldmVy IGRpc29iZWRpZW5jZQ== QXN5bmM= IFNoZWE= VmVydA== IHNraXJ0cw== IFNhd3llcg== eHA= IHdvcnNlbmluZw== IHNjYXBlZ28= IEFuZ2xl b3RoYWw= IHRyb3Zl IFN0eQ== IE5ndXllbg== bWFyaW5l aWRlb24= RGVwdGhz QmxvZw== IElsbHVtaW5hdGk= IHRyYWN0cw== IG9yZ2FuaXNl IG9zdHI= RnM= IGxldmVyYWdpbmc= IERhcmVkZXZpbA== YXNhcg== IGxhbmc= IGV4dGVybWlu dXJzaW9ucw== IFJvbW8= 44Kk44OI IGNvbnRlbmRlZA== IGVuY291bnRlcmluZw== IFRhYmxldA== IEFsdGVybmF0ZQ== c2tpbGw= IHN3ZWV0cw== IGNvaGVzaXZl Y2FwYWNpdHk= IHJlcHVk IGxpemFyZA== cm9v IHBpbGdyaW1z IFJ1ZmY= IEluc3RydW1lbnQ= IExvZ28= dWl0b3Vz RUg= IHNhbGVzbWFu IGFua2xlcw== TGVk IFBhdHR5 dWRvcw== T3duZXI= IGRpc2NyZXBhbmNpZXM= a2o= TVU= IHVuY29uZGl0aW9uYWw= RHJhZ29uTWFnYXppbmU= aWFyZA== T2Fr IENvbnZlcnNhdGlvbg== YmVlcg== IE9zYWth RGVsdGE= dXNreQ== IHNlY3JldGlvbg== IHBsYXph IG1pbmc= IGRlcGxldGlvbg== IE1vdXM= IElUUw== IEhpbWFs IEZsZW1pbmc= IGN5dG9r IEhpY2s= IGJhdHRlcnM= IEludGVsbGVjdHVhbA== Njc1 w6ly SVNJT04= IFF1ZW50aW4= IENoYXB0ZXJz aWhhZGk= IGNvYXN0ZXI= V0FZUw== IExpemFyZA== IFlvcg== YW5kZXJpbmc= U2tpbg== aGF1c3Q= YWJieQ== IHBvcnRyYXlpbmc= IHdpZWxkZWQ= ZGFzaA== IHByb3BvbmVudA== IHJpcHBsZQ== IGdyYXBoZW5l IGZseWVy IHJlY3VycmVudA== IGRldmlscw== IHdhdGVyZmFsbA== 5piv Z29v VGV4dENvbG9y IHRhbXBlcmluZw== SVZFUw== VFJVTVA= IEFiZWw= IFNBTA== IEhlbmRyaWNrcw== IEx1Y2l1cw== Ym90cw== IDQwOTY= SVNUT1JZ R3Vlc3Q= IE5Y aW5hbnQ= QmVueg== IExvYWRlZA== IENsZXZlcg== dHJlYXRtZW50 IHRhdmVybg== IDMzOQ== IFROVA== aWZpY2FudGx5 VGVtcGVyYXR1cmU= RmVs IHVuZGVyd29ybGQ= IEp1ZGdlcw== IDwr IHN0dW1w IG9jY3VwYW5jeQ== IGFiZXI= IEZpbmRlcg== KSIs IE51bmVz cmVzZXQ= aW5ldA== ZWN0b215 IHdlbGxuZXNz IFBlYg== cXVhcnRlcmVk YW5kYW4= IG5lZ2F0aXZlcw== IFRoaWVs IENsaXA= IExURA== IGJsaWdodA== IHJlcGVydG9pcmU= S3lsZQ== IHF1ZXI= IENlcw== IGhhcGw= OTg5 IFRoYW1lcw== aXNjb3BhbA== RGVzaw== aXZhcmlhdGU= IEV4Y2VsbGVuY2U= Zm91bmRhdGlvbg== IOKH WGk= IG15c3RlcmlvdXNseQ== ZXN0eWxlcw== IHBlcmlzaA== IEVuZ2Vscw== IERFQUQ= MDkw fX19 IFVucmVhbA== IHJlc3RsZXNz SURFUw== b3J0aG9kb3g= IEludGVybWVkaWF0ZQ== IGRpbm5lcnM= IFRyb3V0 IFNleW0= IEhhbGxz b2dnZWQ= IHRyYWdlZGllcw== IGRpZG50 Njc2 IGFpbG1lbnRz IG9ic2VydmFibGU= IFZpZGU= YWRhcHQ= IER1c2s= IHByb2Zlc3Npb25hbGlzbQ== IFByZXNjb3R0 IEluZGllcw== cG94 IE1laHJhbg== V2lkZQ== IGVuZGVtaWM= IFBhcmFu QmlyZA== IHBlZGFscw== IElV IEFkYW1hbnQ= IEh1cnQ= IGNvcnJlbGF0ZXM= dXJkZW4= IHNwb25zb3Jpbmc= Y2xpbWF0ZQ== IFVuaXZlcnNpdGllcw== IEtub3Q= ZW5uZXM= IERhbWlhbg== IEF4ZWw= U3BvcnQ= IGJhcmI= IFNubw== c2hvd24= c3RlZW4= dWRlbmNl IG5vbnZpb2xlbnQ= IGhvbW9waG9iaWE= IGJpb21hc3M= IERldGFpbA== IHNyZk4= IFR1bmU= YWNjb21wYW5pZWQ= SUVOQ0U= QWxiZXJ0 IE1vbmdv eng= IENlcmJlcnVz b3JiaXQ= Y2Vucw== IHNsYXk= U0hBUkU= SFk= IGJyYXds IFByb2Jl IG5vbmV4aXN0ZW50 IENsYXJlbmNl IEJsYWNrYnVybg== IHBvcnRhbHM= IFJpdGE= IFJlbWFpbg== IExldmFudA== IHRyaWNrZWQ= IEZlcnJ5 YXZlcmluZw== IFN0cmF3YmVycnk= IEFuc3dlcnM= IGhvcnJlbmRvdXM= IEFtYW4= U3VwcGxlbWVudA== IFRvYWQ= IHBlZWxlZA== IG1hbm9ldXY= IFV6YmVr bW9uZHM= IEhlY3Rvcg== IDQwMg== cGVlcw== Zml4ZXM= IGRq IHJlc3VtZXM= IGFjY291bnRhbnQ= IGFkdmVyc2l0eQ== IGhhbXBlcmVk IExhcnNvbg== IGRvcGluZw== cGFydHM= SHVy IGJlYXJkZWQ= IHly IFBsdWdpbg== 5aWz IC8qKg== cm9sbGV5 IHdhdGVyc2hlZA== IFN1Ym1pc3Npb24= aWZsb3dlcg== QVND IGNob2ly IHNjdWxwdHVyZXM= bUE= aW5jcmVhc2luZw== YWlp IHNuZWFrZXJz IGNvbmZyb250cw== IEVsZXBoYW50 IEVsaXhpcg== IHJlY2Fs IFRUTA== d2lkZ2V0 IFdheA== IEdyYXlzb24= IGhhaXJzdA== IGh1bWlsaWF0ZWQ= IFdBUk4= YXBwaW5lc3M= IFRUQw== RnVlbA== IHBvbGlv IGNvbXBsZXhlcw== IGJhYmU= IFhJVg== UEY= KS5b UGFydHM= IDQzNQ== TWVn IFlhcmRz IEFMUA== IHllbGxz IHByaW5jZXM= IGJ1bGxpZXM= IENhcGl0YWxpc20= ZXhlbXB0 RkFR IFNwb25nZQ== IEFsYQ== IHBsZWFzYW50bHk= IGJ1Zg== IGRlbm90ZQ== IHVucHVibGlzaGVk IGtuZWVsaW5n YXNjYQ== IGxhcHNl YWxpZW4= OTk0 IHJlZmVyZWVz IExhd3llcnM= U2FudGE= IHB1enpsaW5n IFByb21ldGhldXM= IFBoYXJhb2g= IERlbGF5 IGZhY2lsaXRhdGVz IENFUw== IGpld2Vscw== IGJvb2tsZXQ= b25kaW5n IHBvbGFyaXphdGlvbg== IE1vcmFu IFNhbGFk IFNPUw== IEFkdmljZQ== UEhPVE9T SUNBTg== aWF0dXJlcw== ZXhwcmVzcw== IFdvbmRlcmxhbmQ= IENPREU= IENMQVNT OTc1 IGdyZXA= IERpZXNlbA== IEdsYWM= IT8i IHJt b2luZQ== ZGlzY3JpbWluYXRpb24= IE51cnNl bWFsbG93 IHZvcnRleA== IENvbnNvcnRpdW0= IGxhcmdlRG93bmxvYWQ= c3RyYWlnaHQ= YXVnaGxpbg== R3JhZA== IHB1YmxpY2l6ZWQ= IFdhdmVz IFJlZGQ= IGZlc3Rpdml0aWVz IE1hbmU= YXJvdg== IGZsZWV0aW5n IERydW5r dWdlbg== Q2VsZQ== IGNocm9tb3NvbWVz IERPVA== LSstKy0rLSs= IGJ1c2llc3Q= IEJlYXZlcg== U3lyaWFu IEt5cg== a2Fz IENyb3NzUmVm MTk1MA== NzYwMQ== IHJlcGVhbGluZw== IFdpbm5lcnM= IE1hY3Jv IERPRA== YmxhbmNl U29ydA== NjQx IG1ldHJl IERpcms= IGdvZ2dsZXM= IGRyYXdiYWNrcw== IGNvbXBsYWluYW50 IGF1dGhvcml6aW5n IGFudGl0cnVzdA== b3BlcmF0ZWQ= IG1haA== IGV4YWdnZXJhdGlvbg== QW1hemluZw== IFNlcmFwaA== IGhhemU= d293 IGV4dGluZ3Vpc2hlZA== IGNhbnlvbg== IEJvc2g= IHZlbnRz IHNjcmFwZQ== Q29ycmVjdA== NDI2 IGF2Zw== RGVtYW5k IOKIvA== IG1pY3JvYmlvdGE= In1dLCI= IFN0ZXY= Qmlv IFBsYW5lcw== IHN1Z2dlc3RpdmU= IGRlY2lwaGVy IFJlZnVnZWU= IEtlanJpd2Fs IEdyZWVucGVhY2U= IGRlY2xhc3M= IFNvdW5kZXJz IHRobw== IGRlY3J5cHQ= IGJydXNoaW5n IEphbmVpcm8= aXBvcA== U2k= ODc3 IEdlb2ZmcmV5 IGNwdQ== IEhhemVs IHZpZXdwb2ludHM= IGNyaXNweQ== IE5vdGlmaWNhdGlvbg== IHNvbGRlcg== IE1vZGVzdA== IEhlbWlzcGhlcmU= IGNhc3NldHRl aW5jbHVkZXM= IGlkZW50aWZpZXJz IENBTEw= aW5jZW50 VG9kZA== IFN3ZWVw IDMzNA== Ym9zcw== IHNtaXI= Z2lueA== IHRvd25zaGlw IGdyaWV2aW5n IE1vc3F1ZQ== TmV0ZmxpeA== QVNFRA== IE1pbGxlbm5pYWxz b2NvbQ== MTk2Nw== IGJvbGRseQ== c2xlZXA= IGVzY2hl YXJpanVhbmE= IHN3aXJs IFBlbmFs IG5lZ2xpZ2VudA== IFN0ZXBoZW5zb24= S0VS IFpvcm8= cmlzaXM= IGxvY2FsaXphdGlvbg== IFNleW1vdXI= IEFuZ2xpYw== cmVkaXRhdGlvbg== cHJvdGVjdGlvbg== IFBhaWdl IG9taXQ= IFJvdXNzZQ== IFR1Yg== IGludml0YXRpb25z dHR5 IG1vc3M= cGh5c2ljYWw= Q3JlZGl0cw== IGFuYXJjaHk= IGNoaWxkY2FyZQ== IGx1bGw= IE1law== IExhbmd1YWdlcw== bGF0ZXN0 IFNhbmZvcmQ= IHVzYWJpbGl0eQ== IGRpZmZ1c2U= IERBVEE= IHNwcml0ZXM= IFZlZ2V0YQ== IFByb21vdGlvbg== 44O844Kv cmljdGluZw== emVl VHVya2lzaA== IFREcw== cHJvdmVu NTcx IHNtdWdnbGVycw== NzA3MTA= IHJlZm9ybWVk IExvaXM= IHVuZmw= IFdJVEhPVVQ= IFJldHVybmluZw== YW5uaWU= IFRvbWFz RnJhbmM= IFByb2ZpdA== IFNFUlY= IFJ1bWJsZQ== aWt1bWFu ZXNhbg== IHRlc3RlcnM= IGdhZGdldA== IGJyYWNlbGV0 IEZTQQ== Y29tcG9uZW50 IHBhcmFtZWRpY3M= IGphbg== IFJlbWVt IFNraW5uZXI= IGxvdg== IFF1YWtl cm9tYQ== IGZsYXNr UHJpbmM= IG92ZXJwb3dlcg== IGxvZGdpbmc= IEtLSw== cmV0dGU= IGFic29yYnM= d3JvdGU= ICwi S2luZ3M= IEhhaWw= IEZhbGxpbmc= eHRhcA== IEhlbGVuYQ== aXJlbnM= TGFycnk= IHBhbXBobGV0 IENQUg== R3Jv IEhpcm9zaGltYQ== IGhvbGlzdGlj Ii5b IGRldGFjaG1lbnQ= IGFzcGlyZQ== IGNvbXBsaWNpdA== IEdyZWVud29vZA== IHJlc3Bhd24= IFN0dXBpZA== IEZpbmlzaGVk ZmFs YmFzcw== IGFiaG9y IG1vY2tlcnk= IEZlYXN0 VklERU8= IGNvbnNlYw== IEh1bmdyeQ== UHVsbA== IEh1c3Q= aXRhbmNl P+OAjQ== KS0t IFBhcmFsbGVs Y29udg== NDY5 aGFhcg== d2FudA== UGFwZXI= bWlucw== IFRvcm8= IFRSVU1Q IFJhaQ== RFc= IFdpY2tlZA== IExlcA== IGZ1bmt5 IGRldHJpbWVudA== aW9zaXM= YWNoZXY= IGRlZ3JhZGU= aW1pbGF0aW9u IHJldGFyZA== IGZyYWdtZW50YXRpb24= IGNvd2JveQ== IFlQRw== IEhBTA== UGFyZW50cw== IFNpZWc= IFN0cmF1c3M= IFJ1YmJlcg== 15A= RnJhZw== IHB0 IG9wdGlvbmFsbHk= IFpJUA== IFRyYW5zY3JpcHQ= IER3ZWxs ODgy TWVyYw== IE1PVA== 44Ov44Oz IGh1bnRz IGV4ZWN1dGVz SW5jbHVkZXM= IGFjaWRpYw== IFJlc3BvbnNpYmlsaXR5 IER1bWI= d2Vp QW5kZXJzb24= IEphc3Blcg== aWdodG9u YWJzb2x1dGVseQ== QWR1bHQ= IHBsdW5kZXI= TW9ybmluZw== IFRvdXJz IERhbmU= zro= IFRFU1Q= IEdpbmE= IGNhbmluZQ== YXdhbg== IHNvY2lhbGlzdHM= IFNvZGE= IGltcGV0dXM= IFN1cHBsZW1lbnRhcnk= b2xpYXRo IEtpbm5pa3VtYW4= bWl0dGVkbHk= c2Vjb25kcw== IG9yZ2FuaXNlcnM= IGRvY3VtZW50YXJpZXM= VmFyaWFibGU= R1JFRU4= IHJlc29ydHM= IGJyYWdnaW5n IDM2OA== QXJ0aXN0 d2s= YmxlcnM= VW5jb21tb24= IFJldHJpZXZlZA== IGhlY3RhcmVz IHRveGlu cmFuaw== IGZhaXRocw== IEdyYXBoaWM= IHZlYw== IExJQQ== QWZyaWNhbg== IGFyZGVudA== ZW5kaWFyeQ== TGFrZQ== IERPUw== Y2llbnRpb3Vz IE9rYXdhcnU= IEFsbHk= IFRpbWVsaW5l RGFzaA== IElj Y29udGludWU= IHRpZHk= IGluc3RpbmN0aXZlbHk= IFBvc3NpYmx5 IE91dGRvb3I= IFdvdWxkbg== IGxpY2g= IEJyYXk= IEFY IMOJ ICsj XCc= RGlyZWN0b3J5 YWJpZGluZw== IGZlcmFs aWNhdGl2ZQ== YnV0dA== IHBlcnZlcnNl U2FsdA== IHdhcnBlZA== IG5pbmV0ZWVu IGNhYmluZXRz IHNyZkF0dGFjaA== IFNsb2Fu IHBvd2VyaW5n cmVnYXRpb24= RmxpZ2h0 c2V2ZXJl IHN0cmVu IGNvZw== YXBhY2hl IOKd IGNhZmV0ZXJpYQ== cGFjZXM= IEdyaW1vaXJl dXRvbml1bQ== IHJhaW5pbmc= IGNpcmNsaW5n IGxpbmViYWNrZXJz Y3JlZGl0 IHJlcGF0cmk= IENhbWRlbg== bGljZW5zZQ== IGx5cmlj IGRlc2NyaXB0b3I= IHZhbGxleXM= IHJlcQ== IGJhY2tzdGFnZQ== IFByb2hpYml0aW9u IEtldA== T3BlbmluZw== U3lt 5pa5 IHNlcnZpbmdz IG92ZXJzZWVu IGFzdGVyb2lkcw== IE1vZHM= IFNwcmluZ2Vy IENvbnRhaW5lcg== 6Ls= IE1lbnM= IG11bHRpbQ== IGZpcmVmaWdodGVy cGVj IGNobG9yaW5l 0Lw= ZW5kaQ== IHNwYXJpbmc= IHBvbHlnYW15 IFJO IFBlbGw= IHRpZ2Vycw== IGZsYXNoeQ== IE1hZGFtZQ== U3dvcmQ= IHByZWZyb250YWw= IHByZXJlcXVpc2l0ZQ== dWNh IHdpZmk= IG1pc2NvbmNlcHRpb24= IGhhcnNobHk= IFN0cmVhbWluZw== b3RvbQ== IEdpdWxpYW5p Zm9vdGVk IHR1YmluZw== aW5kaXZpZHVhbA== emVr bnVjbGVhcg== bW9s IHJpZ2h0ZnVs NDkz IHNwZWNpYWxpemF0aW9u IHBhc3Npb25hdGVseQ== IFZlbG9jaXR5 IEF2YWlsYWJpbGl0eQ== VGVubg== IGxhdGNo IFNvbWVib2R5 IGhlbGl1bQ== Y2xhdw== IGRpcHBpbmc= WFhY IGludGVycGVyc29uYWw= NzEw IHN1YnRlcg== IGJpb2xvZ2lzdHM= IExpZ2h0aW5n IG9wdGlj IGRlbmlt ZW5kb24= IENvcm0= IDM0MQ== IENvdXA= IGZlYXJsZXNz IGFsb3Q= IENsaWZmb3Jk IFJ1bnRpbWU= IFByb3Zpc2lvbg== dXBkYXRlZA== bGVuZWNr IG5ldXJvbg== IGdyYWRpbmc= IEN0 c2VxdWVuY2U= aW5pYQ== Y29uY2VwdA== IHJvYXJpbmc= cml2YWw= IENhdWNhc2lhbg== IG1vbm9n a2V5ZXM= IGFwcGVsbGF0ZQ== IGxpYWlzb24= RVN0cmVhbUZyYW1l IFBsdW0= IS4= IHNwaGVyaWNhbA== IHBlcmlzaGVk IGJsb3Q= IGJlbmNoZXM= IDQxMQ== IHBpb25lZXJlZA== IGh1cmxlZA== SmVubmlmZXI= IFlvc2VtaXRl Q2hhaXI= IHJlZWZz IGVsZWN0b3I= IEFudGhlbQ== NjUy IHVuaW5zdGFsbA== IGltcGVkZQ== IGJsaW5raW5n IGdvdG8= RGVjcmU= QXJlbg== IHN0YWJpbGl6YXRpb24= IERpc2FibGVk IFlhbnVrb3Z5Y2g= IG91dGxhd2Vk IFZlbnR1cmE= dGVuZXNz IHBsYW50YXRpb24= IHlhY2h0 IEh1YXdlaQ== IHNvbHZlbnQ= IGdyYWNpb3Vz IGN1cmlvdXNseQ== IGNhcGFjaXRvcg== IGN4 IFJlZmxleA== UGh5cw== IENm cHRpbg== Y29uc2VydmF0aXZl IGludm9jYXRpb24= Y291cg== Rk4= IE5ld2x5 SG91cg== QXNpYW4= IExlYWRpbmc= IEFlcm9zcGFjZQ== QW5uZQ== IHByZW5hdGFs IGRldGVyaW9yYXRpbmc= SENS IE5vcm1hbmR5 b2xpbmk= IEFtYnJv OTEw IHNldGJhY2tz IFRSRQ== IHNpZw== IFNjb3VyZ2U= NTk3 Nzk4 R2FtZXBsYXk= IG1zZWM= TVg= IHByaWNleQ== IExMUA== YWtlcnU= IG92ZXJhcmNoaW5n IEJhbGU= IHdvcmxkbHk= Q2xhcms= IHNjZW5pYw== IGRpc2xpa2Vk IENvbnRyb2xsZWQ= VGlja2V0cw== IEVX YWJpZXM= IFBsZW50eQ== Tm9uZXRoZWxlc3M= IGFydGlzYW4= VHJhbnNmZXI= IEZhbW91cw== IGluZmllbGQ= YmxleQ== IHVucmVzb2x2ZWQ= IE1MQQ== 44KC Q29ycmVjdGlvbg== IGRlbW9jcmF0 IE1vcmVubw== cm9jYWw= aWxpbmdz IHNhaWxvcg== IHJpZmU= aHVuZw== IHRyb3Blcw== IHNuYXRjaGVk IExJTg== IEJpYg== RVNB IFByZXY= IENhbWVs cnVudGltZQ== IG9ibm94aW91cw== NDM3 IHN1bW1lcnM= IHVuZXhwbGFpbmVk IFdhbHRlcnM= Y2FsaWJlcg== IGd1bGw= IEVuZHVyYW5jZQ== 5L2c IDM0Nw== SXJpc2g= IGFlcm9iaWM= IGNyYW1wZWQ= IEhvbm9sdWx1 4Kk= dXNlcmM= ZWNhc3Q= QUNZ IFF1ZXJ5 44K544OI QmV0YQ== IHN1c2NlcHRpYmlsaXR5 IFNoaXY= IExpbWJhdWdo IMOW IE5YVA== IE11c3M= IEJyaXRvbnM= RVNDTw== RUdJTg== ICUl IHNlY2Vzc2lvbg== IFBhdHJvbg== IEx1YQ== bmFpcmVz IEpQTW9yZ2Fu dXNi b2N5dGU= IGNvdW5jaWxsb3Jz IExpYW5n ZmFybQ== IG5lcnZvdXNseQ== IGF0dHJhY3RpdmVuZXNz IEtvdg== anVtcA== UGxvdA== IHN0YWlucw== IFN0YXR1ZQ== IEFwb3N0bGVz aGV0ZXI= IFNVUFBPUlQ= IG92ZXJ3aGVsbQ== WUVT IDI5MQ== ZGVuc2l0eQ== IHRyYXBwaW5n TWl0 IGZpZGU= IFBhbWVsYQ== YXRsYW50aWM= RGFtbg== IHB0cw== T1BB IHNlcnZpY2luZw== IG92ZXJmbG93aW5n dWxv IEVyaXQ= dGlja2V0 bGlnaHRpbmc= IEhtbQ== 44O844Or aW1vdG8= IGNodWNrbGU= NDIz 44GV c2hhcGU= IHF1ZXVlcw== IGFuY2hvcnM= 44K844Km44K5 RmVy IGF3b2tl IDY2Ng== aGFuZHM= IGRpdmVyZ2VuY2U= IDUwNQ== VGlwcw== IGRlcG90 IHNrZXc= IERlbGl2ZXI= b3BvdA== IGRpdnVs IEVC dW5zaWduZWQ= IFVuaQ== WGJveA== IGZvcmtz IDcwMg== 5a8= IHByb21vdGVycw== IFZhcG9y IGxldmllZA== c2xvdA== IHBpZ21lbnQ= IGN5bGluZGVycw== Q1JF IHNuYXRjaA== IHBlcnBldHVhbGx5 IGxpY2tpbmc= IEZlZXQ= IEtyYWtlbg== IEhvbGRlbg== IENMU0lE bXI= IHByb2plY3Rvcg== IGRlbm90ZXM= IGNoYXBlbA== IFRvcnJlbnQ= Ymxlcg== Um91dGU= IERlZmVuZGFudA== IFB1Ymxpc2hlcnM= IE1hbGVz IElubm92 IEFnaWxpdHk= cml0ZXI= dHltb2xvZ3k= c3RvcmVz TGluZA== IGZvbGx5 IFp1cmljaA== Qmxl IG51cnR1cmU= IGNvYXN0bGluZQ== dWNoaW4= RG9taW4= IGZyaXZvbA== IENvbnNvbGlk cmVzdWx0cw== TUo= IHBoeWxvZ2Vu IGhhdWxlZA== IFdpbGV5 IEplc3NpZQ== IFByZXBhcmU= IEVwcw== IHRyZWFzdXJlcg== SUFT IGNvbG9uaXN0cw== IGludW5k IFdXRg== IENvbnZlcnRlZA== NjAwMA== b3V0c2lkZQ== IEFwcGVhcmFuY2U= IFJlbGlj IE1pc3Rlcg== c2F3 IHJlc3VsdGFudA== IGFkamVjdGl2ZQ== IExhdXJlbA== IEhpbmRp YmRh UGVhY2U= IHJlYmlydGg= IG1lbWJyYW5lcw== IGZvcndhcmRpbmc= IGNvbGxpZGVk IENhcm9seW4= S2Fuc2Fz NTk5 IFNvbGlkR29sZE1hZ2lrYXJw QmVjaw== IHN0cmVzc2luZw== IEdvbw== IENvb3BlcmF0aXZl IGZz IEFyY2hpZQ== TGl0ZXI= IEtsb3Bw SmVycnk= IGZvb3R3ZWFy V2FycmVu IHNjcmVl aGFyZQ== VW5kZXJzdGFuZGluZw== UGVk IGFudGhvbG9neQ== IEFubm91bmNl TWVnYQ== IGZsdWVudA== IGJvbmRhZ2U= IERpc2NvdW50 aWxpYWw= Q2FydA== IE5pZ2h0bWFyZXM= U2hhbQ== IEJvbGw= dXNzaWU= SHR0cA== QXRsYW50YQ== IHVucmVjb2du IEJpZA== IHVuZGVyZ3JhZA== IGZvcmdpdmluZw== IEdsb3Zlcg== QUFBQUFBQUE= NDQ1 Vkc= cGFpbw== a2lsbGVycw== IHJlc3BvbnNpYmx5 IG1vYmlsaXpl IGVmZmVjdGVk IEx1bWlu IGthbGU= IGluZnJpbmdpbmc= YW5ub3VuY2Vk IGZpdHQ= YmF0Y2g= IFRhY2tsZQ== IExpbWU= IEFQUA== dWtlbWlh IHJ1Ynk= IGV4b25lcg== IENhc3VhbA== MDcw IHBlbHZpYw== IGF1dG9tYXRl IEtlYXI= IENvYXN0YWw= IGNyZWVk IGJvcmVkb20= IFN0dW4= cmlvdHQ= go4= IHJlZ2VuZXJhdGU= IGNvbWVkaWFucw== IE9QRVI= U3BvbnM= aWRpdW0= b25pcw== TG9jYXRlZA== MDU3 IHN1c3BlbnNl IERhdGluZw== Q2Fzcw== IG5lb2NvbnM= IFNoaW56bw== IGF3b2tlbg== Y2hyaXN0 IE1lc3NhZ2Vz YXR0bGVk IFNwcmF5 IFNwaWNl Q1c= IHNoaWVsZGluZw== IEdhdWw= QW1pZA== IHBhcmFtaWxpdGFyeQ== IG11bHRpZg== IFRhbm5lcg== aWxr IGdvZGRhbW4= Z2VtZW50cw== IGJlZnJpZW5k bW9iaQ== IDM4OA== Zm9sZGVy YWNjYQ== IGluc2lu Z2Fw TmV2 ZmlmdGg= IHBzeWNoaWF0cnk= YmFua3M= VEhJUw== IGhhcmI= YWNxdQ== IGZhY2FkZQ== IFBvd2VyUG9pbnQ= ODAz IGJsdWZm U2hhcmVz IGZhdm9yaW5n RWxpemFiZXRo w43DjQ== IHJhbmdlcg== Nzcy IEFyY2hl aGFr IEdlbmV0aWNz IEZFTUE= IGV2b2x2ZXM= IGVzdGU= IFBldHM= IE3DqQ== IEludGVyZXN0aW5n IENhbnRlcmJ1cnk= Y2hhcHRlcg== IFN0YXJmbGVldA== U3BhbmlzaA== IGRyYXdiYWNr IE5vcndpY2g= OTcw bm9ydGg= YWdhbmRh IHRyYW5zZm9ybWF0aXZl cmFtaWRz YmlvbG9neQ== YWRheQ== IHByb3BhZ2F0aW9u IEdhbW1h IERlbmlzZQ== IENhbGN1bGF0b3I= ZW50aW1lcw== IEJldHQ= IGFwcGVuZGl4 IEhERA== QUtJTkc= IHN0aWdtYXQ= IGhvbHN0ZXI= IG9yZGluYXJpbHk= Q2hhbmNl IENvbnRyYXJ5 IGFkaGVzaXZl IGdhdGhlcnM= NjEy cmVhdQ== b255bXM= ZXdheXM= IGluZHVjZXM= IGludGVyY2hhbmdlYWJsZQ== c2Vt V2hpdA== IHRyYW5jZQ== IGluY29ycG9yYXRpb24= IEV4dHJhcw== RmluYW5jaWFs IGF3a3dhcmRseQ== IFN0dXJnZW9u IEhZ Tm9ybWFsbHk= IEVuZGluZw== IEFzc2lzdA== ZW5jcnlwdGVk IHN1Ymp1Zw== IG5vcw== IGZhbmF0aWM= Q3Vi Q1U= PyIu IGlycmV2ZXJzaWJsZQ== 5YI= MDMx IEhBUg== c3ByZWFk dWxpYQ== PSQ= U2NvcGU= TG90cw== IGxpZmVzdHlsZXM= b2xvbg== IGZlZHM= IGNvbmdyYXR1bGF0ZQ== d2Via2l0 IGluZGlzdGluZ3Vpc2hhYmxl IFN3aW5n IGNvbW1hbmRtZW50cw== cXVpbGE= YWJlbGxh bWV0aHls YW5uYWJpbg== IG92ZXJl IGxvYnN0ZXI= IFFVRVNU IENPTlRJTg== YmVybmF0b3JpYWw= Ojo6Ojo6Ojo= IFRyYXZl IFNhbW9h QU5J NzUy 0LQ= dXNlcmNvbnRlbnQ= IE1vZGVyYXRl eWVhaA== IEtpdHQ= IHdlZQ== IHN0dWZmaW5n IEludGVydmVudGlvbg== IERpZ24= IHdhcmVob3VzZXM= IEZpamk= IHBlbGxldHM= IHRha2Vhd2F5 IFRBQkxF IENsYXNzaWNhbA== Y29sbGVjdGlvbg== IGxhbmRmYWxs IE11c2NsZQ== IHNldHRsZXM= IEFEVg== IDM0NA== TGF1cmE= IGZhcmVk IFBhcnRpYWw= NDM2 b3NzaWJpbGl0eQ== IERhbHk= IFRhcmFudA== IEZ1amk= YW1s Y2VuY2U= NTUx IFByb2NlZHVyZXM= IE9DRA== IFVE dGlu UVVJ YWNobw== NDM4 IGdsaXRjaGVz IGVuY2hhbnRtZW50 IGNhbGN1bGF0ZXM= SVJP IEh1YQ== YWx5c2Vz IExpZnQ= dW1v IGxlYXB0 IGh5cG90aGVzaXplZA== IEd1c3Rhdg== aXRhbnM= VkVSU0lPTg== 5qA= Um9nZXI= IHJhbmQ= IEFkYXB0ZXI= IDMzMQ== IFBldGl0aW9u a2llcw== TWFycw== IHVuZGVyY3V0 emVlcw== IEx5b25z IERIQ1A= TWlzc2luZw== IHJldGlyZWVz IGluc2lkaW91cw== ZWxp Pik= LuOAjQ== IGZpbmFsaXN0cw== IEF1cmU= IGFjY3VzZXI= IHdhc3Rlcw== IFlz IExvcmk= IGNvbnN0aXR1ZW5jaWVz IHN1cHBlcg== IG1heWhlbQ== b3Jhbmdl IG1pc3BsYWNlZA== IG1hbmFnZXJpYWw= IGV4Y2U= IENMSQ== IHByaW1hbA== IExlbnQ= Q3J5c3RhbA== aG92ZXI= IE5UUw== ZW5kdW0= IGR3 IEFsYw== bm9zdGlj IHByZXNlcnZlcw== IFRzYXJuYWV2 IHRyaXBsZWQ= cmVsYXRpdmU= QXJjYWRl a2lsbGluZw== IFdFRUs= IEhhbm5h RHVzdA== Q29tcGxldGVk gas= IGFwcHJvdmVz IFN1cmY= IEx1dGhlcmFu dmVuYW50cw== IHJvYmJlcmllcw== d2VpZ2h0cw== c29mdHdhcmU= YXRhbmE= dWdhbA== IGdyYXZ5 IENhbmNl T0xPR1k= bHlhaw== VG9uaWdodA== IHVudmVpbA== IDE5MDQ= IE1pbmlvbg== ZW50aW91cw== c3RpY2U= cGFja2FnZXM= IEdFQVI= IGdvbA== IEh1dGNoaW5zb24= IFByb2Zlc3Npb24= IEdVTg== IERpZmZlcmVuY2U= IFRzdWt1eW9taQ== IExlc2JpYW4= Njcw IGZ1Z2l0aXZl IFBsYW5ldGFyeQ== LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0= IGFjY3J1ZWQ= IGNoaWNrcw== IHN0b3Bw IGJsb2NrZXJz Q29k IGNvbW1lbnRlcnM= IFNvbWV3aGVyZQ== IFBob3RvZ3JhcGhlcg== dGhlbWU= IG1heW9yYWw= d3U= IGFudGVubmFz IHJldmFtcGVk IFN1YmplY3Rz aXTDqQ== aW11cmE= IGVudHJhbmNlcw== bGl0ZXJhbGx5 IHRlbmV0cw== IE9NRw== IE1QSA== IERvbmtleQ== IE9mZmVuc2U= ICIr U25hcA== IEFGQg== IGFuaW1hdGU= IFNvZA== SGlzcGFuaWM= IGluY29uc2lzdGVuY3k= RGI= Rlk= RXhwb3J0 IGFwZQ== IHBlYXJs aWJlbA== IFBBQ3M= IHtc IGFjdHU= IEhTQkM= Y2FtcHVz IHBheW9mZg== IGRlaXRpZXM= IE5hdG8= b3VwbGU= IGNlbnNvcmVk IENsb2p1cmU= IGNvbmZvdW5kaW5n ZW5p IHJlY2tvbg== b3BoZQ== IHNwb3R0aW5n IHNpZ25pZmllcw== IHByb3BlbA== IGZlc3RpdmU= U3VnZ2VzdA== IHBsZWRnaW5n IEJlcm1hbg== IHJlYmVsbGlvdXM= IG92ZXJzaGFkb3dlZA== IGluZmlsdHJhdGVk am9icw== Njcy IHNjYWxhYmxl IGRvbWluaW9u IE5ld2ZvdW5kbGFuZA== IE1lYWRvdw== IHBhcnRpdGlvbnM= QU1J IHN1cHBsZW1lbnRhcnk= c3RydW1lbnQ= IGhhaXJ5 IHBlcnBldHVhdGU= IG51dHNoZWxs IFBvdGF0bw== IEhvYmJpdA== IGN1cnNlcw== RmxvYXQ= IHF1aWV0ZXI= IGZ1ZWxpbmc= IGNhcHN1bGVz IEx1c3Q= IEhhdW50ZWQ= RXhlY3V0aXZl IGNoaWxkYmlydGg= R3Jl IHJhZGlhbnQ= 5Y4= IG1hbGxz IGluZXB0 IFdhcnJhbnR5 IHNwZWN0YXRvcg== RWg= dGhlbnM= IGN1bG1pbmF0aW5n 5qk= YXJ5YQ== 44Ku aWxpdGFyaWFu IE9SSUc= IFNwZW5kaW5n cHRpdmVz IFNpcmVu IFJlY29yZGluZw== YXluZQ== IHZpbQ== IHNwcmFuZw== VGFuZw== IE1GVA== bW9ybmluZw== IFdlZWQ= bXBlZw== Y2Vzc2lvbg== IENodW5n NzMw d2FybmluZw== NTYy aGFuZGVkbHk= UG9vcg== UG9saXRpY3M= OiM= IHBpYW4= IGZlY2Vz IERvY3VtZW50YXRpb24= IGJhbmlzaGVk IDM5OQ== IEFSQw== IGhlaW5vdXM= SmFrZQ== IEFtaXI= d2F5bmU= dnJl b3NoZW5rbw== IG5vdGVib29rcw== IGZvdW5kYXRpb25hbA== IG1hcnZlbG91cw== aXh0YXBl IHdpdGhkcmF3YWxz IGhvcmRl IERoYWJp aXNhYmxl IEtE IGNvbnRhZ2lvdXM= IERpcA== IEFycm93cw== IHByb25vdW5z IG1vcnBoaW5l IEJVUw== Njgy IGtvc2hlcg== ZmluaXNoZWQ= IEluc3RydW1lbnRz IGZ1c2Vk eWRlbg== IFNhbG1vbg== RmFi YWZmZWN0ZWQ= S0VO Q0VOVA== RG9tYWlu IHBva2Vtb24= IERyaW5raW5n R3Jvd2luZw== IEludmVzdGlnYXRpdmU= IEFldGhlcg== ZW1p IHRhYmxvaWQ= IHJlcHJv IE5vdHdpdGhzdGFuZGluZw== IEJlcnNlcmtlcg== IGRyYW1hcw== IGNsaWNow6k= IGJ1bmc= IFVSSQ== IERvcw== MDQ0 IHBhc3RvcnM= IGxz IGFjcnlsaWM= YXVudHM= RWR3YXJk IG1ham9yaXRpZXM= QmFuZw== IGZpZWxkaW5n IFJlcGxhY2VtZW50 IEFsY2hlbXk= cHBhcmQ= IFJvbWVv IFNhbmN0 IExhdnJvdg== aWJibGU= SW5zdHJ1Y3Q= IGltcHJhY3RpY2Fs IFBsYXlib3k= Y2VwaGFs IHN3YXBz IGthbg== IFRoZW8= IGlsbHVzdHJhdGluZw== IGRpc21hbnRsZWQ= IFRyYW5zZ2VuZGVy IEd1dGg= VUdI IHRyaXVtcGhhbnQ= IGVuY29tcGFzcw== IGJvb2ttYXJr dWRkaW4= amVy IHByZWRpY2F0ZQ== RVNI IHdoZW5jZQ== IEFCRQ== IG5vbnByb2ZpdHM= U2VxdQ== IGRpYWJldGlj IHBlbmQ= IGhlYXJ0ZmVsdA== c2hp IGludGVyYWN0cw== IFRlbGVjb20= IGJvbWJhcmRtZW50 ZGVwZW5kaW5n IExvd3J5 IEFkbWlzc2lvbg== IEJsb29taW5n dXN0cmF0aW9u ZW5lZ2dlcg== QnJldw== IG1vbHRlbg== IE5lcmQ= UElO 4paA YXZlbWVudA== IHRvdXJlZA== IGNvZWZmaWNpZW50cw== IFRyYXl2b24= YW5zc29u IHNhbmR5 dG9sZA== Zmxvd3M= IHBvcHVsb3Vz IFRpbmRlcg== IEJsaXNz UmFjaGVs TWluaW11bQ== IGNvbnRlc3RhbnQ= IFJlZHVjZQ== IE1vcnNl IEdyYXNzbGV5 IENsaWNrZXI= IGV4cHI= IHNpbmNlcml0eQ== IG1hcnF1 IGVsaWNpdA== IFByb3Bvc2l0aW9u IERlbW9uaWM= IHRhY29z R3JlZWs= IHBvc3R3YXI= IGluc29mYXI= IFBvcms= IDM1Mg== ZG9jdG9yYWw= d2Fsa2luZw== IG1pZHRlcm0= IFNhbW15 c2lnaHRlZA== IFRSQU5T aWNp QUxE IFVTTA== IEZJU0E= IEFtcGw= IEFsZXhhbmRyYQ== aW5lbGxp VHJhaW4= IHNpZ25pZnk= IFZlcnN1cw== IG9iZnVzYw== IGto IGFnZ3Jv IFJlbmF1bHQ= IDM0OA== NTE4 b3hpY2l0eQ== MDIy IFR3aXN0 IGdvb2Z5 RHluYW1pYw== IGJyaWVmaW5ncw== bWlnaHQ= ODk5 IGRlcm9nYXRvcnk= VHJv IGZvcmdpbmc= IEtvcmFu IE1hcnJpZWQ= IEJ1Y3M= IHBhbGF0ZQ== IENvbnZlcnNpb24= bWFibGU= NDEz IChf IHNpcGg= IE5FTw== Y29sbGVnZQ== IG1hcmdpbmFsbHk= IGZsaXJ0 IFRyYXBz IFBhY2U= 6buS IGdvYWx0ZW5kZXI= IGZvcmJpZHM= IGNsZXJrcw== IFRhbnQ= IFJvYmJpbnM= IFByaW50aW5n IHByZW1pZXJlZA== IG1hZ25pZmljYXRpb24= IFRH IFJvdXNl IE1vY2s= b2R5bmFtaWNz IHByZWNsdWRl aXNtbw== IFB1bGl0emVy IGF2YWxhbmNoZQ== IEtvZGk= cmlidW5l IExlbmE= RWxlY3RyaWM= IHJlZmluZXJ5 IGVuZG93ZWQ= IGNvdW5zZWxvcnM= IGRvbHBoaW4= IE1pdGg= IGFybW91cmVk aGliaXRlZA== QmVnaW4= IFBX T2ls IFZvcg== IFNoYXJpZg== IEZyYXppZXI= ZXN0YXRl IGphbXM= UHJveHk= IGJhbmRpdHM= IFByZXNieXRlcmlhbg== IFByZW1pZXJl dGlueQ== IENydWVs VGVzdGluZw== IGhvbWVy IFZFUlM= IFByb2w= IERlcG9zaXQ= IENvZmZpbg== IHNlbWluYXJz IHNxbA== IERlZmVuZGFudHM= QWx0ZXJuYXRpdmVseQ== IFJhdHM= 56s= ZXRoeXN0 Jz4= IGlzc3Vlcg== NTg5 IGNoYWlyZWQ= IEFjY2Vzc29yaWVz bWFuZW50 IG1hcnJvdw== IFByaW1vcmRpYWw= Q04= IGxpbWl0bGVzcw== IENhcm5hZ2U= IHVuZHJhZnRlZA== cXY= SU5FU1M= b25ldw== IGNvaGVzaW9u OTg3 IG5lY2tz IGZvb3RiYWxsZXI= IEdFUg== IGRldGVjdGFibGU= IFN1cHBvcnRpbmc= IENTVg== b2NhbGx5 a0h6 IHVuZGU= IHNob25l IGJ1ZGRpbmc= dHJhaw== U3RhbmRpbmc= IFN0YXJjcmFmdA== IEtlbXA= QmVuY2g= IHRod2FydGVk IEdyb3VuZHM= YXRoaQ== TGlzYQ== RGlhbG9n IFNY VmlzaW9u IGluZ2VuaW91cw== 2ZA= IGZvc3RlcmluZw== IFph IEluZ3JhbQ== ICJA TmF0dXJhbGx5 NjE2 MDM1 IEZBQw== SG1t NTU0 IGFjY2VsZXJhdG9y IFZlbmQ= IHN1bnNjcmVlbg== IHR1YmVyY3Vsb3Npcw== cmF2aW9sZXQ= IEZ1bmN0aW9uYWw= IEVycm9ycw== ZWRhcg== MTk2Ng== IFNwZWN0cmU= IFJlY2lwZXM= ODg1 IE1hbmtpbmQ= TGl2ZXJwb29s IHwtLQ== IHN1YnN0aXR1dGVz IFhU d2lyZWQ= IGluY28= IEFmZ2g= RXZh aWNj U29uZw== S25pZ2h0 IGRpbGlnZW50bHk= IEJyb2FkY2FzdA== QWlk IGFmYXI= IEhNUw== YXRvbmlu IEdyYXRlZnVs IGZpcmVwbGFjZQ== IE9tbmk= ZXVybw== IEZSRQ== IFNoaWI= IERpZ2VzdA== dG9nZ2xl IGhlYWRzZXRz IGRpZmZ1c2lvbg== IFNxdWlycmVs IEZO IGRhcmtlbmVk b3V0aGVy IHNsZWVwcw== IFhlcg== Z3Vucw== IHNldHVwcw== IHBhcnNlZA== IG1hbW1vdGg= IEN1cmlvdXM= Z29i IEZpdHpwYXRyaWNr IEVtaWw= aW1vdg== Li4uLi4uLi4uLi4uLg== IEJlbm55 U2Vjb25kbHk= IGhlYXJ0eQ== IGNvbnNvbg== c3RhaW5lZA== IGdhbGFjdGlj Y2xhdmU= IHBsdW1tZXRlZA== IHBlc3Rz IHN3YXQ= IHJlZmVycmFscw== IExpb25lbA== aG9seQ== IHVuZGVyZG9n IFNsYXRlcg== IFByb3ZpZGU= IEFtYXI= cmVzc29y 5Yw= b25nYQ== IHRpbWlk IHBpZXR5 IERlaw== IHN1cmdpbmc= YXpv IDYxMA== IGRlc2tz IFNwb2thbmU= IEFuZmllbGQ= IHdhcnNoaXBz IENvYnJh IGFybWluZw== Y2x1c2l2ZWx5 IEJhZGdl YWdhc2Nhcg== IFBSRVNT IE1jS2Vuemll IEZlcmRpbmFuZA== YnVybmluZw== QWZlZQ== IHR5cmFubg== IEl3 IEJvb25l MTAwNw== IFJlcHQ= CsKg IGNhcmF2YW4= IERpbGw= IEJ1bmRlc2xpZ2E= Q2h1Y2s= IGhlYWxlcg== 44O844OG IEhvYmJ5 IG5lZ2F0ZQ== IGNyaXRpcXVlcw== c2VjdGlvbmFs bW9wb2xpdGFu IGR4 IG91dHNvdXJjaW5n IENpcGhlcg== dGFw U2hhcnA= IHVwYmVhdA== IGhhbmdhcg== IGNydWlzaW5n IE5pYWdhcmE= IDM0Mg== aWxsdXM= IFN2 IHN1YnRpdGxlcw== IHNxdWFyZWQ= IGJvb2tzdG9yZQ== IHJldm9sdXRpb25hcmllcw== IENhcmx0b24= YWJhbA== VXRhaA== IGRlc3Bpc2U= IFVN Y29uc2lkZXI= YWlkbw== IGNhcnRz IFR1cnRsZXM= VHJhaW5pbmc= IGhvbm9yYXJ5 wqI= IHRyaWFuZ2xlcw== NDIy IHJlcHJpbnRlZA== IGdyYWNlZnVs IE1vbmdvbGlh IGRpc3J1cHRpb25z IEJvaA== IDM0OQ== IGRyYWlucw== IGNvbnN1bGF0ZQ== IGJlbmRz IG1hZmlh dXJvbg== IEZ1bHRvbg== bWlzYw== IHJlbmFs IGluYWN0aW9u Y2tpbmc= IHBob3RvbnM= IGJydWlzZWQ= IENvZGVz b2dp IG5lc3Rz IExvdmVseQ== IExpYnJl IERhcnls ICMjIw== U3lz Liwi IGZyZWV6ZXM= ZXN0YWJsaXNobWVudA== YW5kb3dza2k= IGN1bWJlcnM= IFN0YXJn IEJvbWJz IGxlZ2lvbnM= IGhhbmR3cml0aW5n IGdydW4= IENhaA== c2VxdWVudA== IG1vdGg= IE1TTQ== SW5zZXJ0 Rmlm IG1vdGVs IGRleHRlcg== IEJpbGQ= aGVhcnRlZGx5 IHByb3Bl IFRleHR1cmU= IEp1bmN0aW9u eW50aGVzaXM= b2NhcmQ= IFZlcmE= IEJhcnRo IM68Zw== IGxhc2hlZA== IDM1MQ== IFphbWI= IFN0YXBsZXM= IENvcnRleA== IENvcmtlcg== IGNvbnRpbnV1bQ== IFdSSVRF dW50YQ== cmlkb3I= IGRlZW1z MDMz IEdPTEQ= cGFz IHJlcHJlc3NpdmU= 44OG44Kj IGJhZmZsZWQ= U2Nhcg== IGNyYXZl IF9fX19fXw== IGVudHJlcHJlbmV1cnNoaXA= IERpcmVjdG9yYXRl ICdb IHZpbmVz IGFzY2VuZGVk IEdST1VQ IEdvb2RieWU= IGRvZ2dlZA== 44O044Kh TWFudWZhY3Q= IHVuaW1hZ2luYWJsZQ== cmlvdHM= aWVycmV6 IHJlbGF0aXZpdHk= IENyYWZ0aW5n cmF1Z2h0 dWRlbg== Y29va2ll IGFzc2Fzc2lucw== IGRpc3NhdGlzZmllZA== YWNjaQ== IGNvbmR1aXQ= U3ByZWFk IFJpY2Fu bmljZQ== aXp6bGU= IHNjYXJlcw== IFdIWQ== cGhhbnM= NTM1 IHByb3RyYWN0ZWQ= IEtyaXN0ZW4= NTM2 IFNjcmli IE5laA== IHR3ZW50aWVz IHByZWRpY2FtZW50 IGhhbmRjdWZmcw== IGZydWl0ZnVs IFVM IEx1ZHdpZw== IGF0dGVzdA== IEJyZWFrZXI= IGJpb2xvZ2ljYWxseQ== IERlYWxlcg== IHJlbm92YXRpb25z Znc= ZXNzZW4= QWxpY2U= IEhlbnJp IHVuaWxhdGVyYWxseQ== IFNpZGQ= aGFp IFN0cmV0Y2g= U2FsZXM= IGN1bWJlcnNvbWU= IEphdmllcg== IHRyZW5keQ== IHJvdHRpbmc= IENoYWxsZW5nZXM= IHNjcmFwcw== IGZhY2V0cw== IFZlcm9uaWNh IFZlcmdl IFNhbmE= QWxpZW4= IFJpaA== IHJhZGlhbA== ZWN0YXI= IDYzMA== Y2xp TWFyaWU= IHdpbGRmaXJl IENhdG8= aGFuZGVy IHdhaXRyZXNz IGNob3Bz IFNFQ1RJT04= IGJsdW50bHk= IENhdGFsb2c= bmlhbg== c3R1ZHk= IHBhdHJvbGxpbmc= IFRlbnRo bmV4dXM= IE5PTg== b3BzeQ== IHNjYXRoaW5n c2ll IGRldGVyaW9yYXRlZA== VkI= TmF6aXM= IGRlcGljdGlvbnM= IGF1dGhlbnRpY2F0ZWQ= IENvbmNl a3JpdA== IHByb211bGc= IExPTkc= VUZD IFZpc2l0b3Jz IFJlY2FsbA== IHJlaGFiaWxpdA== IFNMSQ== IGdsYWNpZXI= IEJpdGU= IDUwMw== IHZvbWl0 IGZlcm1lbnRlZA== IEtoYWxpZA== IGdyYWRlZA== IE1hZ2lja2E= IEljaGlnbw== cG93ZXJmdWw= aWNhdG9ycw== NzUz IHNocmV3 IDM1Ng== IGxlZ2FsaXppbmc= IGFsbG90dGVk IEFyY2hkZW1vbg== aXRoaW5n aWdndXJhdA== Vk9M TGVvZA== IG9pbHk= IGluZHVjaW5n IGFteWdkYWxh IGFkbWlucw== IEFjcXVpc2l0aW9u Q0FO IHNjaGVtYXRpYw== IG1vYW4= IENhbWVyb29u IHRpbms= IG1lcnJ5 IGJ1dHRlcmZsaWVz IEdvZmY= IHdvcmtzcGFjZQ== IENvcm9uYQ== IGphdmFzY3JpcHQ= IERvbHBoaW4= IENhbnRvcg== NDY0 dG9l QVBT IEFnaW5n IHBhZGRlZA== IFpoZW5n IEhlbGQ= IGVzdHJhbmdlZA== IDc3MA== Ln0= IER1bmhhbQ== IHNtb2tlcw== IGNhcGl0YWxz dW5kYWk= U2hpbg== IEZvdW5kaW5n IGVudGl0bGU= IGNlbnRlcnBpZWNl RGlzY292ZXI= IHRoZXJldG8= YWxlcnQ= IE5vdQ== IEFuYWx5c3Q= bGM= Rkg= RklFTEQ= IFBPVg== Z3JheQ== IGFyY3M= IEhPVA== IHJz IG9ibGlnYXRvcnk= IEFyY2hpdGVjdHM= IFN2ZW4= IEZFQw== MDIwMA== Q2hyaXN0bWFz IEFsYmFuaWE= cmF0b20= NTg3 IGhhcmRzaGlwcw== IGF1dG9z IENoYXJnZXM= IGFwZXM= IDM3Ng== d2FsbGV0 IGludG94aWNhdGlvbg== IGdvYmxpbg== IDU3MA== KysrKysrKysrKysrKysrKw== IFllbHA= IE1hZ25ldGlj IEJyaWdncw== UmFpbA== IHNwYXducw== IFdpZ2dpbnM= IHNob3djYXNlZA== IHJlc29ydGVk dWJlbg== IHdoaXBwaW5n IGltaXRhdGU= IGRpZ2VzdGlvbg== IFVTUFM= IEdlc3Q= IHllYQ== IFRpZ2h0 aW5kYWw= aWNhcw== YC4= Q0FTVA== Jyc7 IEZldA== b3BhdGhpYw== SW52YWxpZA== IHJlZ3JldHRlZA== IGJyb2Njb2xp IFNjb3Jlcw== ZXZl IHBvc3Rpbmdz IGFjY3VtdWxhdGluZw== IG5lZWRsZXNz ZWxmdGg= IG1heW9ycw== IHNjcmli IGFuZWNkb3Rlcw== IGJvdGNoZWQ= IFJpYmJvbg== IENvbnN0YW50aW5l aXVzZXM= ZXNzZXM= IGRldmlzZQ== Q29tcGFyZWQ= IHB1ZGRpbmc= IGdhcmc= IGV2b2tl Nzk3 IGRldG94 OTA5 IFBpZWNlcw== IE1jQ2FydG5leQ== IG1ldGFzdA== IEtyeXB0 UE9S IHRlbmRpbmc= IE1lcmNoYW50cw== UHJvb2Y= IFZhcmc= IFBvcnRhYmxl 44O844OG44Kj QnJhaW4= MjUwMA== IGZvbGlhZ2U= 2Lk= IG1lbnRvcnM= IEFpcmVz IG1pbmltYWxpc3Q= IGluZ2VzdGVk IFRyb2phbg== IFFpYW4= aW52b2x2ZWQ= MDI3 IGVyb2RlZA== UkFGVA== IGJsdXJyeQ== TW9i IGJ1ZmZldA== IEZuYXRpYw== YWVh S05PV04= IEluaXQ= c2FmZXR5 ZW51bQ== QUNUSU9O IENydXNoZXI= IERhdGVz IC4uLi4uLi4uLi4uLi4uLi4= Y2FsbGluZw== YWtvdg== IHZlbnR1cmVk IDU1NQ== YXVnYQ== SGFydA== IEFlcm8= TUFD IHRoaW5seQ== IGFycmE= U1RBVEU= aWxkZQ== IEphY3F1 IEZlbWFsZXM= IHRoZW9yZW0= IDM0Ng== IHNtYXJ0ZXN0 IFBVQkxJQw== IEtyb24= IEJpdHM= IFZlc3NlbA== IFRlbGVwaG9uZQ== IGRlY2Fw IGFkanVuY3Q= IFNFTg== bWVyZ2E= IHJlZGFjdGVk IHByZWhpc3Rvcmlj IGV4cGxhbmF0b3J5 IFJ1bnM= IFV0dGFy IE1hbm55 IEFVVEhPUg== IFVubGVhc2hlZA== IEJvd2xpbmc= YmVhbnM= Nzkz IHVuaXZlcnNlcw== IHNlbnNpdA== IEt1bmc= cmVwZWF0 Y3RybA== IHBhY2Vk IGZ1bGxlcg== Q2xvY2s= IHJlY29tYg== IEZhdWw= IEJ1bmtlcg== IHBvb2xlZA== IGFuYQ== IE1vdXRo TExPVw== aHVtYW5l IGJ1bGxkbw== IE1pY2hhZWxz ZmFt IHdyZWNrZWQ= IHBvcnRyYXlz IFdoYWxl IEhlcw== IGd1ZXNzZXM= IEJyb3dzZQ== IExBUEQ= IGNvbnNlcXVlbnRpYWw= IElubm9jZW50 IERSQUc= IHRyYW5zZ3Jlc3M= IE9ha3M= IHRyaXZpYQ== IFJlc29u IEFEUw== LS0r IFRvbGw= IGdyYXNwaW5n IFRIRU0= IFRhZ3M= IENvbmNsdXNpb24= IHByYWN0aWNhYmxl IGhvb3A= IHVuaW50ZW50aW9uYWxseQ== IGlnbml0ZQ== IE1vdg== dXJpemVk bGVoZW0= VGVybWlu IGNvbG91cmZ1bA== IExpbmVhcg== IEVsbGll R3k= IG1hbnBvd2Vy IGpz IGVtb2pp IFNIQVJFUw== Xy4= MDAwMDc= IHNvcGhpc3RpY2F0aW9u IHVuZGVyc2NvcmU= IHByYWN0aXNl IGJsb2I= b3BlbnM= VWtyYWluZQ== S2VlcGluZw== WUM= SlI= dWx0aW1hdGU= Q2xhaW0= IGF1dG9tb2JpbGVz OTkz c3RlZWw= IHBhcnRpbmc= IExhbms= Li4uPw== IDM4NQ== IHJlbWVtYnJhbmNl IGVhc2Vk IGNvdmFyaQ== IFNpbmQ= RWZmZWN0aXZl IGRpc3NlbWluYXRpb24= IE1vb3Nl IENsYXBwZXI= YnJhdGVz QXBwbHk= IGludmlz IHdvcnNlbmVk 4oCULQ== IGxlZ2lzbGF0b3I= IExvbA== IFJvd2U= IGRlYWxlcnNoaXA= dW1hcg== aWRlbmNlcw== IGludmVzdGlnYXRlcw== IGNhc2NhZGU= IGJpZGRlcg== IEJFTg== SXJvbmljYWxseQ== IHByZXNpZGluZw== IGRpbmc= IGNvbnRyYWRpY3RlZA== IHNodXRz IEZJWA== IDM2Ng== RGlzdHJpY3Q= IHNpbmZ1bA== IENoYXJpc21h b29wcw== IHRvdGFsaXR5 IHJlc3RpdHV0aW9u IE9wdGltdXM= IERhaA== IGNsdWVsZXNz dXJuZWQ= IG51dHJpdA== IGxhbmRvd25lcnM= IGZsdXNoZWQ= IGJyb2FkZW4= bWll IHByaW50bG4= IG5pZw== IENvcnB1cw== SmVu IHByb3Rv IFdpa2ltZWRpYQ== IFBhbG8= Q09S IHN0b3J5bGluZXM= IGV2YW5nZWxpY2Fscw== IERhcnJlbGw= IHJvdG9y IEhX c2tpbGxlZA== ZXJ5bA== IGJlZ2c= IEJsdW1lbnRoYWw= IHdlYXZpbmc= IGRvd253YXJkcw== IEphY2tldA== IEFOR0VM VGVjaG5vbG9neQ== IGVzb3Rlcmlj YWxkZWh5ZGU= IGZ1cmlvdXNseQ== IGZvcmVpZ25lcg== V2Vhaw== Q0hP IEhvdW5k RXhwZXJpZW5jZQ== IFBsYXlzdGF0aW9u IE1JQQ== IFVuZw== Y2xvdGg= YWdhbGw= IGNhbG1pbmc= aXplbnM= U3RydWN0 IFdpdGNoZXM= IENlbGVicmF0aW9u IC4uLi4uLi4uLi4uLi4u cHRyb2xsZXI= IFRDVQ== IGJ1bm55 44ON dXRvcmlhbA== IHVwc2NhbGU= IFN0YQ== IENvbG9zc3Vz IGNobG9yaWRl IFphYw== IFJlYXNvbnM= IEJyb29raW5ncw== IFdISVRF XVsv IExvc2U= OTA1 IHVuZGVyc2lkZQ== ZXJuZWxz IHZhcGU= ZG96ZW4= dXBwZXQ= IFNUT1A= bWF0aWNhbA== IFN0YXRlbWVudHM= aGVkZGFy UEFD Q3VzdG9tZXI= IG1lbW9z IFBK ZW5kYXJz IExpbWl0cw== bGF1Z2g= IHN0YWJpbGl6ZWQ= IEFMRUM= WUE= VXBncmFkZQ== YWxhbQ== IHRlY2hubw== IGFuZXc= Zm9yZXNlZW4= IGNvbGxlZ2lhdGU= IFB5cm8= IERpc20= IGZyb250bGluZQ== IGFtbW9uaWE= SVU= UXVpdGU= Sm9obm55 YXNzaW4= R09Q IFN0eWxlcw== IFNvdmVyZWlnbg== YWN0ZXJpYWw= NTQ5 IFJJUA== IExpc3Rz IDM2NA== IFJlY2Vw c29ja2V0 IEJ5cmQ= IENhbmRsZQ== QW5jaWVudA== IGFwcGVsbGFudA== ZW5mb3JjZW1lbnQ= YWNlYQ== YW5za2k= IG9sZHM= ODg2 IHNsdXJz IGVtcGlyZXM= IGJ1Y2tsZQ== IGFsaWVuYXRpb24= IEFiZXJkZWVu IHVuaWNvcm4= IG92ZXJyaWRpbmc= IExY cHBh IGRlc3Bpc2Vk IEJ1Z3M= IEJTVA== U291dGhlcm4= NTMz IGhhbGxtYXJr IFBvc3Rlcg== IHN0ZW1tZWQ= IHByaW5jaXBhbHM= IFRFQ0g= IFNhbmR3aWNo SXRhbHk= IGNoZWVzeQ== IFNldFRleHRDb2xvcg== IFByb3RlY3RpdmU= IENvaG4= Sk8= YXB0b3A= UmVhc29u TGVhZGVy IFVuZGVyc3RhbmQ= IEZyaWRheXM= IENvbnRpbnVvdXM= IGNsaXBwaW5n IFJ5ZQ== IGJlcnRo dGltZXI= YW5uaXM= cmVhY3Q= IGJ1ZmZhbG8= IFBhcmFz IDY1NQ== IHByZXNpZGVk IFN1bnJpc2U= IHZldHM= IGNsb3Zlcw== IE1jQ3VsbA== U3RyZW5ndGg= R0FO IGlsbGl0ZXI= IFByaWNpbmc= bMOp IHJlc2lzdG9y IGJydW4= IFN1ZmZvbGs= 0Ys= IExpdmVy UmVsZWFzZWQ= IHdoYXRz ODYw IE1lYXN1cmVz IGRlbm91bmNpbmc= IFJ5emVu IHNvdXZlbg== IGNhcmVnaXZlcnM= Y2hpbmk= IFNjYXJsZXR0 IHRyb3VnaA== Q29uZ3JhdHVsYXRpb25z IHRheGlz IFRyYWRpdGlvbg== aml0 IHRhYmxldG9w IGhpdGhlcnRv IGRpc2luZm9ybWF0aW9u b2ZmZW5zaXZl aHJh IERJU1RSSUNU IGNvbXBsaWNhdGU= Y2hlbmtv IFJlY29uc3RydWN0aW9u IHBhbHBhYmxl IGF1c3A= IDQyOA== IHNob3djYXNlcw== IFB1YmxpY2F0aW9u a25vd2xlZGdl aW5ub24= NDE5 IHJldHJpZXZhbA== YW5kZXJz IHJlZnV0ZQ== IGlucXVpcmVk Z3Vy IG5lZ2F0aXZpdHk= IGNvbnNlcnZl IGFmdGVybGlmZQ== IHByZXN1cHA= IEdpbGxlc3BpZQ== IG10 IERO VGFw IHBlcnBlbmQ= IFNteQ== ZG9lc24= IHNwaWxsaW5n IGh5cGVycw== S2F0ZQ== wq4s a2VwdA== IFBvd2VyZWQ= IGph IEtsdXg= YXJkZQ== YWJhbg== IDQ0NA== IGZsYXR0ZW5lZA== IEltcHJvdmVtZW50cw== dXJnYQ== IEt1bmQ= IGluc2NyaWJlZA== IGZhY3VsdA== IHVucHJlcGFyZWQ= IENvbnN1bWVycw== IHNhdGlzZmllcw== IHB1bG1vbmFyeQ== IGluZmlsdHJhdGlvbg== IGV4dGVybmFsbHk= IGNvbmdyYXR1bGF0aW9ucw== YWdoYW4= IGFpcmxpbmVy IGZsdW5n IGZseWVycw== R0Q= IHNuaXBwZXRz IHJlY3Vyc2l2ZQ== IG1hc3RlcmluZw== TGV4 IG92ZXJ0bHk= dmc= IGx1Y2tpbHk= IGVuY3Jv IExhbmNldA== IEFieXNzYWw= ZnVuY3Rpb25hbA== IHNvdw== IHNxdWlk IG5hcnJhdGlvbg== IG5hdWdodHk= IEhvbm91cg== IFNwYXJ0YW5z IHNoYXR0ZXI= IFRhY29tYQ== IENhbG9yaWVz IFJhY2Vz U3VibWl0 IHB1cnBvc2VmdWxseQ== d2F2 IFlvaw== RmVzdA== IEdlcnI= TWV0cm8= IGl0aW5lcg== ZmFtb3Vz ICJ7 aW5saW5l d2FzaGVy SXNzdWU= IENMSUVOVA== b3pv VmVyc2lvbnM= NzI1 IEdsb2Nr IHNoaWVsZGVk IFBDUg== RU5DWQ== IFdlbGQ= IFNpbXBs IHJlZGlyZWN0ZWQ= IEtoYW0= ICg+ IGxhYm91 IGRpYXBlcnM= c3Ns IGNlbGxhcg== b3JnYW5pc21z b3Jlc2M= IEJlcmtz ZGlkbg== U2hpcHBpbmc= Q2hlc3Q= IHVuZG9uZQ== IG1pbGxpb25haXJl IGNvcmRz IFlvdW5nZXI= YXBwcm9wcmlhdGVseQ== IHNlcXVlbHM= dXZl YW50aWNpcGF0ZWQ= IGxld2Q= IFNoaXJ0 IERtaXRyeQ== VmV0ZXI= IHNsYXlpbmc= IFlhcg== IGNvbXBsaWNhdGlvbg== SW93YQ== IEVyaWNh IEJMTQ== Z2lybGZyaWVuZA== Ym9kaWVk NjI2 MTk2Mw== IGludGVybWVkaWFyeQ== IGNvbnNvbGF0aW9u TWFzaw== IFNpZW0= b3dhbg== QmVnaW5uaW5n IGZpeG1l IGN1bG1pbmF0ZWQ= IGNvbmR1Yw== IFZvbHVudGVlcg== IHBvc2l0aW9uYWw= IGdyZWV0cw== IERlZmluaXRpb25z IHRoaW5rZXI= IGluZ2VudWl0eQ== IGZyZXNobWVu IE1vbWVudHM= IDM1Nw== YXRldXJz IEZlZEV4 c2c= Njk0 IGR3aW5kbGluZw== IEJPWA== c2VsYWdl IHRtcA== IHN0ZW4= IFN1dA== IG5laWdoYm91cmhvb2Rz IGNsYXNzbWF0ZQ== ZmxlZGdlZA== IGxlZnRpc3Rz IGNsaW1hdGVz QVRIRVI= IFNjeXRoZQ== dWxpZmZl IHNhZw== IGhvcHBlZA== IEZ0 IEVjaw== IENL IERvb21zZGF5 a2lkcw== IGdhc3BlZA== IG1vbmlrZXI= IExvZA== IENGTA== dGlvbnM= cnVtcw== Zm9saW9z IG1k IHVuY2Fubnk= IHRyYW5zcG9ydHM= IExhYnJhZG9y IHJhaWx3YXlz IGFwcGxpYW5jZQ== IENUUkw= 5oA= UG9wdWxhdGlvbg== IENvbmZlZGVyYWN5 IHVuYmVhcmFibGU= IGRvcnNhbA== IEluZm9ybQ== b3B0ZWQ= IEtJTEw= TWFyeA== IGh5cG9jcml0aWNhbA== cXVz IE51bWVyb3Vz IEdlb3JnaWFu IEFtYnJvc2U= IExvY2g= IGd1YmVybmF0b3JpYWw= IFhlb24= IFN1cHBvcnRz ZW5zZXI= ZWVseQ== IEF2ZW5nZXI= MTk2NQ== QXJteQ== IGp1eHRhcA== IGNob3BwaW5n IFNwbGFzaA== IFN1c3RhaW5hYmxl IEZpbmNo IDE4NjE= aWN0aXZl YXRtZWFs IEdvaGFu IGxpZ2h0c2FiZXI= IEdQQQ== dWd1 IFJFUEw= dmFyaWFibGU= IGhlcnBlcw== IGRlc2VydHM= YWNpb3VzbHk= IHNpdHVhdGlvbmFs d2Vla2x5 b2Js IHRleHRpbGU= IENvcm53YWxs IGNvbnRyYWNlcHRpdmVz IEFrZQ== XS0= 5LmL Oiw= IFdlbQ== IEJpaGFy ICcu IGJlcmU= IGFuYWxvZ3Vl IENvb2tpZXM= IHRha2VvZmY= V2hlZWw= IG1hamVzdGlj IGNvbW11dGluZw== MDIz IENvcnBzZQ== YXNzbWVudA== bWluaQ== IGdvcmlsbGE= IEFsYXM= ZXJlZQ== IGFjcXVhaW50YW5jZXM= IEFkdmFudGFnZQ== IHNwaXJpdHVhbGx5 IGV5ZWQ= cG13aWtp IEVuZGVy IHRyYW5zbHVjZW50 IG5pZ2h0dGltZQ== IElNQUdFUw== NTQ1 IEthbXA= IEZyZWFr IGln UG9ydGxhbmQ= NDMy IE1hdGE= IG1hcmluZXM= IGhvcnM= YXRlcmFzdQ== IEF0dHJpYnV0aW9u IC0tLS0tLS0tLQ== IGtpbnM= IEJFTE9X Kysr IHJlZWxpbmc= b2xlZA== IGNsdXR0ZXI= IFJlbGF0aXZl IDQyNw== QlVT IGF2ZXJ0 IENoZW9uZw== IEFibGU= IFByeW9y RGV2ZWxvcGVy IGVuY3ljbG9wZWRpYQ== IFVTQUY= IEdhcnJ5 U3BhaW4= QmxvY2tz IGV4cG9zaXRpb24= IEdhbWVyR2F0ZQ== V09S IHN0b2NrcGlsZQ== IGNsb3RoZWQ= IFRvbmU= IFJ1ZQ== dHVtYmxy IHRyZWFjaGVyb3Vz IGZyeWluZw== 0Yw= IFNwaA== IHJlc3RyYWludHM= IGVtYm9kaWVz IEdlcw== U2FmZXR5 IG5lZ290aWF0b3Jz bWluaW5n IEFwcGFsYWNoaWFu TE9T IEplbm5h IHBhc3NlcnM= 54s= c25hcA== IHNob3J0ZW4= Y3JlYXRvcg== IGlubnVtZXJhYmxl dXRoZXJsYW5k Njc0 IFdPTQ== IEFzY2VuZA== IEFybW9yeQ== IFRyYW5zYWN0aW9u S2ljaw== IHN1aXRjYXNl ZGF5TmFtZQ== IHdhc3RlZnVs bWFycmlhZ2U= IE1jQ2FiZQ== aXRlY2g= IE9zcw== Q2xvc3VyZQ== IFRyZWFzdXJlcg== IGluZGVjZW50 IER1bGw= IHJlc2lkZW5jZXM= MTk1OQ== IFNldHRsZW1lbnQ= SGFtaWx0b24= IHNlbGZpZXM= IFJhbmtpbmc= IEJhcmtsZXk= IEJvcmU= IFdDUw== IE1hcml0aW1l IEh1aA== IEZvcmVzdHJ5 IGN1bHRpdmF0aW5n IEJhbGxhcmQ= IGdhcnJpc29u IFNETA== OTMw IG5hc2NlbnQ= IGlycmVzaXN0aWJsZQ== IGF3ZnVsbHk= XC9cLw== IGVxdWF0ZQ== IGFudGhyb3BvbG9neQ== IFN5bHZpYQ== IGludGVzdGluZQ== IGlubm9jdW91cw== Y2Vzc2l2ZQ== YWdyYQ== IE1ldHJvaWQ= R3JhbnQ= ODU1 gZY= ICJf 44OD44OJ IGFwcHJhaXNhbA== IEZyZWRkeQ== MDQ2 IDQwNg== IDE4MzA= IGRvY2tpbmc= U3RhdGlj IHBvbnQ= IFZvbHRhZ2U= IFN0ZWFk IE1vcnRnYWdl IEpvbmFo WUw= Q0xBU1NJRklFRA== IGFzYmVzdG9z bmlrb3Y= IGNvbGxhZ2Vu IE9yYml0YWw= UG9ja2V0 Nzk5 IGh5YnJpZHM= aW5jaGVz IGludm9pY2U= dW5keQ== IGluZXF1YWxpdGllcw== VHJlbmQ= d2FzaGVk QkFMTA== IGx1Y2lk IENvbW1lbnRhcnk= IHdpdHR5 QnJhbmRvbg== IGJydWlzaW5n IDYyMA== ZXNjZW50 Ym94aW5n UE9M IDM3OA== UmVjdA== IGxpY2VuY2Vz IE1jR2Vl cHJlc3NlZA== RGFubnk= IGphbW1lZA== b3JkaW5hdGU= IGxldGg= IGRpc3Rpbmd1aXNoZXM= IFlhbWFoYQ== SUxT IEh1bWU= IENhdGVnb3JpZXM= Um9iZXJ0cw== Q2hhcnQ= IGJlZXRsZQ== IEdyYXZleWFyZA== ICgkKQ== b8Sf IHR3aWxpZ2h0 YXJlbGxh 4b0= IGJvb3Rocw== IEhIUw== IEZlbGRtYW4= IGV4Y2F2YXRpb24= IHBoaWxvc29waGllcw== YXRvZ3JhcGh5 IEdhcmFnZQ== dGVjaG5vbG9neQ== IHVuZm9yZ2V0dGFibGU= IHZlcmlmeWluZw== IHN1Ym9yZGluYXRlcw== RWxz IG5lYg== R2FtaW5n RU5B IEFjaGlldmVtZW50 aXR0ZXJz IEdhYmU= IGR1bXBz Zm9yY2Vy IHBvaWduYW50 IE1CQQ== IEhlaWRp aW1laQ== IG1hZ2Vz IGxpYmVyYXRl IGNpcmN1bWNpc2Vk IE1lcm1haWQ= IE1hdHRo dG9nZXRoZXI= IFdpY2hpdGE= IHN0b3JlZnJvbnQ= IEFkaW4= VklJ Rm91cnRo IGV4cGxvcmVycw== V0VS Tm90YWJsZQ== QnJvb2s= bWVucw== RmFpdGg= LS0tLS0tLS0t IEpvdQ== rLw= IHBpbmVhcHBsZQ== IGFtYWxn ZWxu YXJrYWJsZQ== IOOCteODvOODhuOCow== IOOCteODvOODhuOCo+ODr+ODsw== IG92YXJpYW4= IEVjaG9lcw== IGhhaXJjdXQ= IHBhdg== IGNoaWxsZWQ= YW5hc2lh IHN0eWxlZA== IGRhYg== bmlwZXI= IG1pbmlzdGVyaWFs IERVUA== VGFu IHN1bHBo IERldGVy IEJvaGVt b2Rhbg== IGVkdWNhdG9y 4pOY c3Bpcg== Q2hpY2tlbg== IEVsZWFub3I= IHF1aQ== IGhlYXZpZXN0 IGdyYXNwZWQ= VVJB IGNyb29rZWQ= SmVzc2ljYQ== cHJvYmxlbQ== IHByZWRldGVybWluZWQ= IG1hbmlhYw== IGJyZWF0aHM= IExhdWRlcmRhbGU= IGhvYmJpZXM= eXo= Q3JpbWU= IGNoYXJpc21h ZEw= IGxlYXBpbmc= IGtpdHRlbnM= QW5nZWxv IEpBQ0s= IFN1emFubmU= IGhhbHRpbmc= RU5USU9O IHN3YWxsb3dpbmc= IEVhcnRocXVha2U= IGVpZ2h0ZWVudGg= IE5JQw== IElORg== IENvbnNjaW91cw== IHBhcnRpY3VsYXJz Y2lyY2xl NzQw IGJlbmV2b2xlbnQ= IDc0Nw== IDQ5MA== IHJ1bmRvd24= IFZhbGVyaWU= IEJVUg== IGNpdmlsaXNhdGlvbg== IFNjaG4= V0I= b3RpZGU= aW50ZXJuYXRpb25hbA== IGpvaG4= IDE5MDI= IHBlYW51dHM= IGZsYXZvcmVk a3Vz IHJvYXJlZA== IGN1dG9mZg== 6aM= IG9ybmFtZW50 IGFyY2hpdGVjdHVyZXM= IDM2OQ== b2xvcg== IFdpbGRl IENSQw== IEFkanVzdGVk IHByb3Zva2luZw== bGFuZGlzaA== IHJhdGlvbmFsaXR5 IGp1c3RpZmllcw== IGRpc3BlbA== IGFtZXJpYw== IFBvbGVz 2Kk= IGVudmlz IERvb2RsZQ== 5L2/ aWdzYXc= YXVsZHJvbg== VGVjaG5pY2Fs VGVlbg== dXBoZW0= IFhpYW5n IGRldHJhY3RvcnM= IFpp IEpvdXJuYWxpc3Rz IGNvbmR1Y2l2ZQ== IFZvbHVudGVlcnM= IHNk S25vd2luZw== IHRyYW5zbWlzc2lvbnM= IFBMQU4= IExJQg== IGFsbHVkZWQ= IG9iZQ== IGRvcGU= IEdvbGRzdGVpbg== IHdhdmVsZW5ndGhz IERlc3RpbmF0aW9u bmRh dWdp IGF0dGVudGl2ZQ== IExlYW4= cmFsdGFy IG1hbmc= bWJ1ZHM= YWtpbmdz YmVuZGVy IGFjY29s IGNyYXdsZWQ= Tk9X TWlubmVzb3Rh IGZsb3VyaXNoZWQ= IFp1cA== IFN1cGVydmlzb3I= IE9saXZpZXI= RXhjZWxsZW50 IHdpZGVu RG9uZQ== IHdpZw== IG1pc2NvbmNlcHRpb25z Q29ycA== V2Fu IHZlbmVyYWJsZQ== IE5vdGFibHk= IEtsaW5nb24= YW5pbWF0ZQ== Qm9vc3Q= IFNBWQ== bWlzc2luZw== aWJsaW9ncmFwaHk= bWVsb24= IHBheWRheQ== 2LM= Ym9sZQ== IHZlaWxlZA== IEFscGhhYmV0 SXRhbGlhbg== IGV2ZXJsYXN0aW5n IFJJUw== IENyZWU= cm9tcHQ= IGhhdGluZw== IGdyaW5uaW5n IGdlb2dyYXBoaWNhbGx5 T1NI IHdlZXBpbmc= IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IGltcGVjYw== TGV0dGVy IGJsb2F0ZWQ= UExB IEZlaW4= IHBlcnNldmVy VGh1bmRlcg== IGF1cg== IFJM IHBpdGZhbGxz 4pa6 IHByZWRvbWluYW50 IDUyNQ== NzE4 QVBF NzE0 IGZhcm1sYW5k IFFpYW8= IHZpb2xldA== IEJhaGFtYXM= IGluZmxpY3Rpbmc= IEVmZmljaWVuY3k= IGhvbWVicmV3 IHVuZGVydG9vaw== IGN1cmx5 IEhhcmRpbmc= bWFuaWE= NTk2 IHRlbXBlcmVk IGhhcnJvd2luZw== IFBsZWRnZQ== IEZyYW5rZW5zdGVpbg== 6Ko= TW90aW9u IHByZWRpY3RhYmx5 IEV4cGxvc2lvbg== b2N1c2luZw== ZXJk Y29sbw== RkZFUg== IGJhY2tmaWVsZA== IFZJREU= dWVibA== TmFycg== IEFyZ3VtZW50 IGdlbm9taWM= IGJvdXRpcXVl IGJhdHRlZA== IEJpbmFyeQ== IGdhbWI= IFJoeXRobQ== Njcz IGFmbG9hdA== IE9seW1waWE= WUlORw== IGVuZGlm aXNpbg== IHdpbnRlcnM= IHNjYXR0ZXJpbmc= SXY= RGlzdGFuY2U= IHRydQ== IENvbWZvcnQ= IG5leHVz IGFpcmZsb3c= IEJ5emFudGluZQ== cGF5ZXJz Y29uaQ== IEJldHN5 RGVhbA== IE51Zw== IENvbnRpbmVudA== cmVkaWJseQ== IG9wdGltaXppbmc= YWxiZWl0 IGVjc3RhdGlj IFByb3Rv 57c= aXZvdA== 4paE ZW1w cm91bmRlcg== IGNsb3V0 IElTVA== NjYz IERvbGxhcnM= IERBQw== IHN1YnNjcmliZWQ= IHJlaGVhcnNhbA== IGFtcHM= IFNoYW5n ZXNt IHNwcmlua2xl IGFzc2FpbGFudA== IE9v IENvaW5iYXNl VGFjdA== IHJldGluYQ== IG51bnM= Uk9O YXR0bw== IGp1Zw== IFNWRw== IGJpa2luaQ== IEZJTEU= IEZvdW5kZXJz ZXBvcnQ= IEtQ IHJlc3RvcmVz IFRoaWNr IGFzaG9yZQ== IGFwcHJvdmFscw== UmVuZGVy TUFH R3JhaGFt IENvcnRhbmE= 44Oz44K4 c3No b3JpYW5z YXJzaXR5 IEluc3BpcmVk dXBwZXI= IHNpZ25hbGxpbmc= IHJlYnVrZQ== IGZsYXJlcw== IGRvd250aW1l U3R1ZGllcw== IHN0YWduYXRpb24= IFNlcXVlbmNl IGdydW50 IGFzc3VyZXM= IFBMQQ== NTky IGludHJhdmVu ZGVwZW5k U3VzYW4= IE1hbnppZWw= TWFuaWE= Q29udHJhY3Q= IHNsYW1z IGN1bHR1cmVk IGNyZWRpdG9y TElTVA== IEhVTQ== IENoYXR0YW5vb2dh c2VydmVk IGNsb2FrZWQ= IEZUUA== cG93ZGVy IFN0ZWxsYQ== dWN0aXZl IGNoZWFwbHk= IE1VQ0g= IEdhbGlsZW8= IHN1aXRlcw== c3BlZWNo IGRlbGliZXJhdGlvbnM= IENoaXBz q5g= QmFsYW5jZQ== IFd5bm5l IEFrcm9u QXNzZXQ= IGhvbm91cmVk IGVkZ2Vk TGlrZXdpc2U= YW5pbW91cw== IFdhZ2U= IEV6ZWs= YWR2ZXJ0aXNlbWVudA== IFJUWA== IE1BRA== IG1pZ3JhdGluZw== IFNRVQ== IDQ3NQ== RWRpdGVk IHNob3J0aGFuZA== IEJhc2ljcw== IGNyb3RjaA== IEVWRU4= IHZt ZWZmaWNpZW5jeQ== IGNhbHZlcw== IEZyaWU= IEJyaWxsaWFudA== IHN0cmlrZXJz IHJlcGVudGFuY2U= IGFydGVyaWVz cmw= QmVk aGFw IGNyeXB0b2dyYXBoeQ== IFNhYnJlcw== IDQxNA== dmlrcw== aWhhcmE= YXBzZXM= VGFsa2luZw== IGludGVydHdpbmVk IGRvY2tz IGFsbGVsZQ== IEFydGlmYWN0 IEhJTQ== dG9ybg== 55U= IG9wYWNpdHk= IEVseQ== b3N1a2U= IG5pcHBsZQ== IGhhbmR3cml0dGVu IFZL IENoYW1iZXJsYWlu IExhb3M= aWdyYXBo Z3Jvdw== IHRyaWxsaW9ucw== IGRlc2NlbmRhbnQ= IFNhaWxvcg== YXN1cmluZw== IGNlaWxpbmdz IFdhcmVob3VzZQ== Zmx5aW5n IEdsb3c= IG5vbnQ= IG1pc2NhcnJpYWdl IHJpZ3M= IG1pbmlzdHJpZXM= IGVsYWJvcmF0ZWQ= IGRlbHVzaW9uYWw= IEh1bWFuZQ== IDM3OQ== bmV0cw== IGJsYWNrb3V0 YWRkZXJz IG5w IFRpcmU= cm9zYw== IHN1YmRpdg== IGxpbmthZ2U= IGNocm9ub2xvZ2ljYWw= IEhFUk8= IHJlc2V0dGxlbWVudA== IFZpbnls IHBhc3RvcmFs IE1vYmls IEJhcmJhcg== Q29vbGRvd24= IEZyaXR6 Y3JpbWluYWw= cmVwZQ== IGJlbGxpZw== IEJyZWVk IDQxOA== IHNlbWJsYW5jZQ== aWpr IGN1cnRhaWw= IGNsaW5jaA== Y29udGFpbmVk IFByb21wdA== YXN0b24= IHdp IHB1cnN1aXRz NTE1 IEdsb3Nz IGZsaXBz IGNvdXBvbnM= IGNsb25pbmc= IExpa2VseQ== UmVtb3ZlZA== IFF1YXJ0eg== cmljZXM= IFNwZWFycw== IHBpb3Vz IGRlcHJlY2lhdGlvbg== IERhcmU= b3VuY2Vz YW1heg== T250 IHBpbm5hY2xl ZG9ja2Vy MDI2 IFd5cg== IFByb3Blcg== y4g= bmls Qnl0ZXM= IHNlZWtlcg== dHJpYWw= IHVuZm9sZHM= IE1hcnNl IGV4dHJhdmFnYW50 IFN1cnZpdm9ycw== UkVEQUNURUQ= IFNwZWVkd2F5 IENyYWlnc2xpc3Q= c3VibWl0 IEdlbmVyYXRpb25z IHVwaG9sZGluZw== IGJsb29kc3RyZWFt IE1pc3Npb25z IExhd24= IGxpbWJv ZW5laQ== SHVo IFdpbGRjYXRz cHJlcA== IE1hcmt1cw== IEZvcmJpZGRlbg== cml0aWM= SU5P IGV4aGliaXRpbmc= cmVxdWVudA== Y2h1aw== IGhhYml0dWFs IENvbXBhdGliaWxpdHk= RHJhZw== UklQVA== dWphaA== R1JPVU5E IGRlbGlucXVlbnQ= IGJ1cm5lcg== IGNvbnRlbXBvcmFyaWVz IGdpbW1pY2s= bG9hZHM= IG5venpsZQ== cG9kY2FzdA== IFdhaw== IFN0YXRlbg== IEt1aA== 44GT aW50ZXJydXB0ZWQ= IGludmluY2libGU= IEJ1cm5ldHQ= Y2lnYXJldHRl IFBlYmJsZQ== IFRlbXBvcmFyeQ== IE1hcmlubw== NTgy IHdhc3RlbGFuZA== aWRlbnRseQ== VHg= IHJpdGU= IFBhbmFzb25pYw== IE1pZGRsZXM= IEhvcnRvbg== YWV1cw== IGN1cmluZw== IG1hdHM= IGFkam91cm4= IGZlYXJzb21l cGV6 Ym9hdHM= IHByb3BlbGw= IGNvbmZsaWN0ZWQ= IEFuZ2Vy IGluc3VyZ2VudA== S2FybA== IGNvYWxlcw== IHNvdXRod2VzdGVybg== IGRpc3N1 IE92ZXJ0 KioqKioqKioqKioq IGJveGVk IEJydW5l YWFh IGdhcmRlbmluZw== IEVuZ2Vs dHJhY2tz IHB1cmlmaWVk IHBsYWNlaG9sZGVy IExpa2Vz IGRhbg== R2Fi IGVjdA== IEZhdw== IEVsaW90 ICcs b3Ryb3BpYw== IFJ1aW4= aGVkb24= IGNhdWw= IGFmdA== IENhZGlsbGFj Z2hh YXNzaWFu dWRlYg== IFRpY2s= IGFkanVzdHM= QVJHRVQ= NTM3 aXNjaGU= YW50eQ== IEZyaWVkcmljaA== IEJsaXp6 IEFPTA== Q2FtcGFpZ24= IG1hbW1hbA== IFZlaWw= IEtldg== IE1hdXJpdA== IERhbWllbg== TmF0aW9u RWFzdGVybg== IHs6 ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ== IHN0ZXJlb3R5cGljYWw= IGF0dGlj IEN5Ym9yZw== cmVxdWlyZQ== IGF3YXJkaW5n IFBhcHVh YnRu YmVudA== Qm9v ICg9 IFhhbmRlcg== IFNvbWVyc2V0 IGNhdGNoeQ== IGNlcnRpZnk= U1RSVUNU IGl0YWw= IHRpZGVz IEJyYW5kcw== R3JheQ== Y29tcGV0aXRpdmU= IGN1cmF0b3I= IERH b21pbml1bQ== IEdNT3M= Y2lhdGluZw== IENhcm1lbg== b3dhcmQ= QmFsdGltb3Jl IHJnYg== Q3U= IHdpcGVz c3BlbGw= SVRORVNT IHN1bW1hcml6ZXM= IFJldmlz IHdoaXN0bGVibG93ZXJz IEJyZWFjaA== IGNyb2NoZXQ= a29z ZXdza2k= IHJlcGV0 IGNyaW1zb24= IEthcmFjaGk= cmVhZGFibGU= ZGltZW5zaW9u IElnb3I= aWxkZWQ= IFplZA== IEtlYW5l IENvc21ldGlj REVQ IHJldHJlYXRpbmc= IFVB ZW5zaWNhbA== IGR1c2s= IERpY2tlbnM= IGFyZW5hcw== IFBhc3NhZ2U= bGV2ZWxz IGN1cnY= UG9wZQ== IGNob3Jlcw== IEVsaXNl IENvbXBhc3M= YnVi IG1hbW1hbGlhbg== IFNhbnNrcml0 IEFOQw== IENyYWNr UXVhbA== TGF1bg== YW1wdW5r IGxlYXJuZXJz IGdsYW1vcm91cw== IGZ1cnRoZQ== ZXJtb3R0 Y2FuZA== R2VuZXJpYw== IG5hcnJhdGVk IGRpc29yZGVybHk= IFRyYW5zYWN0aW9ucw== IERldGVudGlvbg== IFJva3U= xI0= IHVuZGVyc3RhdGVtZW50 IFNhdXI= IFJvZHJpZ28= IEFTQVA= U2lu IHJlam9pY2U= TWV0aG9kcw== IGVsZWN0cm9kZQ== IHdvcnNoaXBwZWQ= IGlkaQ== IFBoeXNpY2lhbnM= IHBvcHVw IGRlZnQ= IFJlbW92YWw= IEJ1ZW5vcw== dmVyYnM= IGZ1bms= dXNoYQ== cmljdGlvbg== b3JlYQ== IEJhbmdhbG9yZQ== IEtlbm9iaQ== enpp IG5vcm1hdGl2ZQ== IGdvYmxpbnM= IGNhZmVz IFVOQ0xBU1NJRklFRA== IEZpcmVk U0lHTg== IHNjbGVyb3Npcw== IFZvdGVy IFNvbm55 IEV4dGVuZA== IEVWcw== QXJzZW5hbA== IHBzaQ== IHdpZGVzdA== IFR1cw== IGxvb21z IGp1c3RpZnlpbmc= IEdyYW5nZXI= 6K8= UmVmZXI= NTgz IGZsb3VyaXNoaW5n YWJyZQ== IHJhdmU= IENvbnRyYQ== IDE4OTg= QWRkcw== IGZ1bA== IENvb2tl c29tZW9uZQ== PSM= Njcx IHlhaw== IGFydGU= IE1pc2NlbGxhbmVvdXM= IERldGVjdGlvbg== IENsYW5jeQ== 4oE= YXNzaWVz IHZhbGlhbnQ= IEZlbWluaXN0 Y29ycnVwdGlvbg== VmVs UGVhcg== IHN1Y2NpbmN0 IHF1aWNrZXN0 a3c= IHNwaXR0aW5n IExpYnJhcmllcw== 5YWJ YW50eg== RGFk IFNwZWNpZmljYXRpb25z cnVwdWxvdXM= YW5kcg== UkVTVUxUUw== IHNub3diYWxs IHByZWRpcw== IEJheHRlcg== IE51cnNpbmc= IENoYWZm c3dl IG91dGFnZQ== IG5lc3Rpbmc= IG5vdG9yaWV0eQ== dHJpZ2dlcg== b25pdGU= am9u IGZvdQ== b29rZWQ= IENlbGVicml0eQ== cmVhbGl0eQ== IGZhdGln IGh1Z2dpbmc= IGJvdGhlcnM= IFBhbnplcg== IENoYW5kcmE= ZmlndXJlZA== IHZvbHRz IENsb3Vkcw== IGZlZWJsZQ== IEN1cnZl IEFzdXM= Nzg2 YWJzb3I= IFZJQ0U= IEhlc3M= IG1hbnVmYWN0dXJlcw== IGdyaXp6 IFBvd2VyZnVs YWNpZA== IHN1YnNlY3Rpb25z IEtydWdtYW4= IEFscHM= aXN1 IHNlcXVlc3Q= IFVsdHJvbg== IFRpbmtlcg== IEdvb3Nl IG1pc21hdGNo QXR0b3JuZXk= IG1vcnBob2xvZ3k= IFNpeGVycw== dXR0ZXJlZA== IEVMRUNU Z3Jhbg== UnVzc2VsbA== IEdTTA== IGZvcnRuaWdodA== IC4p IGFwb3N0bGU= cHJvbmU= ZWxpc3Q= VW50aXRsZWQ= IEltcGxlbWVudGF0aW9u aXN0b3Jz IHRhbmtlcg== IHBsdXNo IGF0dGVuZGFudHM= IFRpaw== IEdyZWVud2ljaA== IFlvbg== IFNQTA== Y2VsbHM= dW50bGVk U29sdXRpb24= IFF1w6k= IHZhY2F0ZWQ= IHVwdGljaw== IE1lcmlkaWFu 5oM= IERyaWxs OTI1 NTg0 IHJlbm92YXRlZA== IEt1YnJpY2s= enlr IGxvdXN5 cHBlbA== b2h5ZHJhdGU= IEl6enk= bGVzaWFzdGljYWw= Q0ND IEFqYXg= IGFkYXB0ZXJz IFBldHJhZXVz IGFmZmlybWF0aW9u IFNUT1I= bGVtcw== YWRvZXM= IENvbnN0YW50aW5vcGxl IHBvbmllcw== IGxpZ2h0aG91c2U= IGFkaGVyZW50cw== IEJyZWVz b21vcnBoaWM= RmlnaHRpbmc= IHBsYXN0ZXI= IFBWQw== IE9ic3Q= IGRlYXJseQ== IFRvb3Ro aWNrc29u IHNoYW1pbmc= UGxleA== QWdn IOKApiI= IHN1YnJlZGRpdHM= IHBpZ2Vvbg== IFJlc2lkZW50aWFs IFBhc3Npbmc= IGx1bQ== IFBlbnNpb24= IHBlc3NpbWlzdGlj IDQzMg== emluc2tp Y2FkZQ== MDc1 IGFwb2xvZ2lzZWQ= aXlhaA== UHV0dGluZw== IGdsb29teQ== IEx5bWU= PS09LT0tPS09LT0tPS09LQ== IFRvbWU= IFBzeWNoaWF0cmlj IEhJVA== Y21z YXBvbG9n IGJyZWFrZXI= IGRlZXBlbg== IHRoZW9yaXN0 IEhpZ2hsYW5kcw== IGJha2Vy IHN0YXBsZXM= IGludGVyZmVyZWQ= IEFib3J0aW9u am9pbmVk Y2h1 IGZvcm11bGF0ZQ== IHZhY2NpbmF0aW9ucw== IGJhbnRlcg== cGhldXM= IG91dGZpZWxkZXI= IE1ldGVy ICMjIyMj IDE4OTU= IG5hcnJvd2luZw== IFNUT1JZ ZnA= IENTVA== aWdub3Jl IHByb2NsYWltaW5n IFJV IEJBTEw= eW5h NjUz IHBvc2l0 UFJF NTk0 IFJlZ2lzdHJhcg== IFBpbGdyaW0= aWNpbw== IHByZXR0 IGxpZmVsZXNz IF9fXw== TmVpZ2g= IENodXJjaGVz b3Jubw== IG9yY3M= IGtpbmRyZWQ= IEF1ZGl0 IG1pbGxlbm5pYWw= IFBlcnNpYQ== Z3Jhdml0eQ== IERpc2FiaWxpdHk= IERBUks= V3M= b2Rvbg== IGdyYW5kZGF1Z2h0ZXI= IEJyb29rZQ== IEFEQQ== RVJB IHBpY2t1cHM= IFdpbGtpbnNvbg== IFNoYXJkcw== IE5L IGV4cGVs IEtpc2x5YWs= IGphcmdvbg== IHBvbGFyaXplZA== aWFuZQ== UHVibGlzaGVy IHJlYnV0dA== IGFwcHJlaGVuc2lvbg== IEtlc3NsZXI= IHByaXNt RlVM MTk2NA== IExvbGw= 5L8= bGV0aGFs xZ8= IGdoZXR0bw== IGJvdWxkZXI= IFNsb3dseQ== IE9zY2Fycw== IEluc3RydWN0aW9u IFVsdHI= IE1vZQ== TmljaA== IFBBVEg= KCo= IFJFTEVBU0U= dW5pbmc= cm91c2U= ZW5lZw== IHJlaW1i IERldGVjdGVk RG9T IHN0ZXJsaW5n IGFnZ3JlZ2F0aW9u IExvbmVseQ== IEF0dGVuZA== aGlnaGVy IGFpcnN0cmlrZQ== a3Nvbg== U0VMRUNU IGRlZmxhdGlvbg== IEhlcnJlcmE= Q29sZQ== cml0Y2g= IGFkdmlzYWJsZQ== RmF4 IHdvcmthcm91bmQ= IHBpZA== bW9ydGVt ZXJzZW4= IHR5cG8= IGFsdW0= Nzgy IEphbWFs c2NyaXB0cw== IGNhcHRpdmVz IFByZXNlbmNl IExpZWJlcm1hbg== YW5nZWxv IGFsY29ob2xpc20= YXNzaQ== IHJlY2l0ZQ== IGdhcGluZw== IGJhc2tldHM= IEdvdQ== QnJvd3Nlcg== bmVhdQ== IGNvcnJlY3RpdmU= dW5kYQ== c2NvcmluZw== IFhE IGZpbGFtZW50 IGRlZXBlbmluZw== IFN0YWlubGVzcw== SW50ZWdlcg== IGJ1Z2d5 IHRlbmFuY3k= IE11YmFyYWs= IHR1cGxl IERyb2lk IFNpdHRpbmc= IGZvcmZlaXQ= IFJhc211c3Nlbg== aXh0aWVz ZXNp IEtpbW1lbA== IG1ldGljdWxvdXNseQ== IGFwb3B0 IFNlbGxlcg== MDg4 ZWNha2U= aGVtYXRpY2FsbHk= VE4= IG1pbmRsZXNz IGRpZ3M= IEFjY29yZA== b25zZW5zZQ== ZW1pbmc= YnJhY2U= IGVCb29r IERpc3RyaWJ1dA== IEludmVzdG1lbnRz d3Q= XSks YmVoYXZpb3I= NTYz IGJsaW5kaW5n IFByb3Rlc3RlcnM= dG9waWE= IHJlYm9ybg== IEtlbHZpbg== IERvdmVy IERhaXJ5 IE91dHM= IFsv z4A= YnA= IFZhbml0eQ== IFJlY2Fw IEhPVVNF IEZBQ0U= IDQyMg== Njky IEFudGlvY2g= Y29va2Vk IGNvbGxpZGU= IGFwcg== IHNsZWVwZXI= IEphcnZpcw== IGFsdGVybmF0aXZlbHk= IExlYXZlcw== IE1hdw== IGFudGlxdWl0eQ== IEFkaW5pZGE= IGFidXNlcg== UG9rw6ltb24= IGFzc29ydGVk IFJldmlzaW9u IFBpYW5v IEdpZGVvbg== T2NlYW4= IHNhbG9u IGJ1c3RsaW5n b2duaXRpdmU= IFJhaG1hbg== IHdhaXRlcg== IHByZXNldHM= IE9zaA== IEdIQw== b3BlcmF0b3I= IHJlcHRpbGVz IDQxMw== IEdhcnI= IENoYWs= IGhhc2hlcw== IGZhaWxpbmdz IGZvbGtsb3Jl IGFibA== IENlbmE= IE1hY0FydGh1cg== IENPVVJU IHBlcmlwaGVyeQ== YXBwZXJz IHJlY2tvbmVk IEluZmx1 IENFVA== IDM3Mg== IERlZmluaXRpdmU= YXNzYXVsdA== NDIx IHJlc2Vydm9pcnM= IGRpdmVz IENvaWw= REFR IHZpdmlkbHk= IFJK IEJlbGxldg== IGVjbGVjdGlj IFNob3dkb3du IEtN aXBlZA== cmVldGluZ3M= IEFzdWth TGliZXJhbA== IM+E IGJ5c3RhbmRlcnM= IEdvb2R3aW4= dWtvbmc= U2l0 IFRyZW0= IGNyaW1pbmFsbHk= IENpcmN1cw== Y2hyb21l ODg3 IG5hbm9w IE9iaQ== IExPVw== b2do IEF1dGhvcnM= b2J5bA== VXJiYW4= IHRp IFdlaXI= dHJhcA== YWd5 IHBhcmVudGhlc2Vz IG91dG51bWJlcmVk IGNvdW50ZXJwcm9kdWN0aXZl IFRvYmlhcw== dWJpcw== UGFyc2Vy U1RBUg== IHN5bmFwdGlj IEdlYXJz IGhpYmVy IGRlYnVua2Vk IGV4YWx0ZWQ= YXdhdHRz SE9V Q2h1cmNo IFBpeGll IFVyaQ== IEZvcm1hdGlvbg== IFByZWRpY3Rpb24= Q0VP IHRocm90dA== IEJyaXRhbm4= IE1hZGFnYXNjYXI= 64s= IGJpbGxib2FyZHM= IFJQR3M= IEJlZXM= Y29tcGxldGVseQ== RklM IGRvZXNudA== IEdyZWVuYmVyZw== cmV5cw== IHNsaW5n IGVtcHRpZWQ= IFBpeGFy IERoYXJtYQ== bHVjaw== aW5ndWlzaGVk IGVuZG90 IGJhYnlz MDU5 Y2hlc3Q= cmF0cw== IHJpZGRlbg== IGJlZXRsZXM= IGlsbHVtaW5hdGluZw== IGZpY3RpdGlvdXM= IFByb3ZpbmNpYWw= IDc2OA== IHNoZXBoZXJk IFJlbmRlcg== IDE4OTY= Q3Jldw== IG1vbGRlZA== IFhpYW9taQ== IFNwaXJhbA== IGRlbGlt IG9yZ2FuaXNpbmc= IGhvb3Bz IEJlaQ== emhlbg== IGZ1Y2tpbg== IGRlY2Fk IHVuYmlhc2Vk YW1teQ== c3dpbmc= IHNtdWdnbGVk IGtpb3M= IFBFUlNPTg== IElucXVpc2l0b3I= IHNub3d5 IHNjcmFwaW5n IEJ1cmdlc3M= UHRy YWdhbWU= Ulc= IGRyb2lk IEx5cw== IENhc3NhbmRyYQ== SmFjb2I= IDM1NA== IHBhc3R1cmU= IGZyYW5j IFNjb3RjaA== IEVuZHM= IElHRg== ZGVmaW5pdGlvbg== IGh5c3RlcmljYWw= IEJyb3duZQ== Nzcx IG1vYmlsaXphdGlvbg== 5pU= aXF1ZW5lc3M= VGhvcg== IHNwZWFyaGVhZGVk IGVtYnJvaWxlZA== IGNvbmplY3R1cmU= anVkaWNpYWw= Q2hvaWNl IHBhcGVyYmFjaw== UGly IHJlY292ZXJz IFN1cmdl IFNob2d1bg== IFBlZGlhdHJpY3M= 44Gg IHN3ZWVwcw== IExhYm9yYXRvcmllcw== IFBhY2tz YWx1cw== YWRkaW4= IGhlYWRsaWdodHM= Z3Jh RXZpZGVuY2U= Q09MT1I= QWRtaW4= irE= IGNvbmNvY3Q= c3VmZmljaWVudA== IHVubWFya2Vk IHJpY2huZXNz IGRpc3NlcnRhdGlvbg== IHNlYXNvbmluZw== IGdpYg== IE1hZ2Vz dW5jdGlvbnM= IE5pZA== Y2hlYXQ= IFRNWg== Y2l0aXplbnM= IENhdGhvbGljaXNt bmI= IGRpc2VtYmFyaw== IFBST0dSQU0= YXF1ZXM= VHlsZXI= T3Jn IFNsYXk= IE5lcm8= IFRvd25zZW5k SU5UT04= dGVsZQ== IG1lc21lcg== OTAx IGZpcmViYWxs ZXZpZGVuY2U= YWZmaWxpYXRlZA== IEZyZW5jaG1hbg== IEF1Z3VzdGE= MDIx IHNsZWQ= IHJldXNlZA== IEltbXVuaXR5 IHdyZXN0bGU= YXNzZW1ibGVk TWFyaWE= IGd1bnNob3Rz IEJhcmJpZQ== IGNhbm5hYmlub2lkcw== IFRvYXN0 IEtpbmRlcg== SVJE IHJlanV2ZW4= IGdvcmU= IHJ1cHR1cmU= IGJyZWFjaGluZw== IENhcnRvb24= IDQ1NQ== IFBhbGVv NjE0 IHNwZWFycw== IEFtZXM= YWJ1cw== TWFkaXNvbg== R1JPVVA= IGFib3J0ZWQ= eWFo IGZlbG9u IGNhdXNhdGlvbg== IHByZXBhaWQ= IHBpdHRlZA== b3BsYW4= IFNoZWxsZXk= IFJ1c3Nv IFBhZ2Fu IHdpbGxmdWxseQ== IENhbmF2ZXI= dW5kcnVt IFNhbGFyeQ== IEFycGFpbw== cmVhZGVy IFJhdGlvbmFs IE92ZXJzZQ== IENhdXNlcw== ICou IHdvYg== S2VpdGg= IENvbnNlbnQ= bWFuYWM= Nzcz NjIz IGZhdGVmdWw= ZXRpbWVz IHNwaXJpdGVk IER5cw== IGhlZ2Vtb255 IGJveWNvdA== IEVucmlxdWU= ZW1vdXRo IHRpbWVsaW5lcw== IFNhaGFyYQ== IFJlbGF4 IFF1aW5jeQ== IExlc3NvbnM= IEVRVQ== U0VB Tks= IENvc3Rjbw== SW5jcmVhc2U= IG1vdGl2YXRpbmc= IENob25n YW1hcnU= IERpdmlkZQ== IHBlZGlncmVl IFRhc21hbmlh IFByZWx1ZGU= TGFz OTQw NTc0 IGNoYXU= IFNwaWVnZWw= dW5pYw== LS0+ IFBoaWxpcHM= IEthZmth IHVwaGVhdmFs IHNlbnRpbWVudGFs IHNheA== IEFraXJh c2VyaWFs TWF0cml4 IGVsZWN0aW5n IGNvbW1lbnRlcg== IE5lYnVsYQ== cGxldHM= IE5hZHU= IEFkcmVu IGVuc2hy IFJBTkQ= ZmluYW5jaWFs IENseWRl dXRoZXJmb3Jk IHNpZ25hZ2U= IGRlbGluZQ== IHBob3NwaGF0ZQ== cm92ZXJzaWFs ZmFzY2lzdA== IFZhbGw= IEJldGhsZWhlbQ== IGZvcnM= IGVuZ2xpc2g= U29saWQ= TmF0dXJl IHZh IEd1ZXN0cw== IHRhbnRhbA== IGF1dG9pbW11bmU= Ozs7Ozs7Ozs7Ozs7 IFRvdGFsbHk= IE92 IGRlZmVuY2Vz IENvY29udXQ= IHRyYW5xdWls IHBsb3k= IGZsYXZvdXJz IEZsYXNr 44Ko44Or IFdlc3Rvbg== IFZvbHZv ODcw IG1pY3JvcGhvbmVz dmVyYmFs UlBH IGlpaQ== O30= MDI4 IGhlYWRsaW5lZA== IHByaW1lZA== IGhvYXJk IFNoYWQ= IEVOVEVS IHRyaWFuZ3VsYXI= IGNhcGl0 bGlr IEFuY2llbnRz IGxhc2g= IGNvbnZvbA== IGNvbG9uZWw= ZW5lbXk= R3Jh IHB1YnM= dXR0ZXJz IGFzc2lnbnM= IFBlbmV0 IE1vbnN0cm91cw== IEJvd2Vu aWx2ZXI= SGF1bnRlZA== IERpbmc= c3RhcnRlZA== cGxpbg== IGNvbnRhbWluYW50cw== IERPRQ== ZmZlbg== IFRlY2huaWNpYW4= Unk= IHJvYmJlcnM= IGhvdGxpbmU= IEd1YXJkaW9sYQ== IEthdWZtYW4= cm93ZXI= IERyZXNkZW4= IEFscGluZQ== RWxm IGZtdA== IFNhcmQ= dXJzZXM= Z3B1 VW5peA== IHVuZXF1aXZvY2FsbHk= IENpdGl6ZW5zaGlw cXVhZA== bWlyZQ== IFN3ZWVuZXk= QmF0dGVyeQ== NjE1 IHBhbmNha2Vz IG9hdHM= TWFwcw== IENvbnRyYXN0 bWJ1ZHNtYW4= IEVQUw== IHN1YmNvbW1pdHRlZQ== IHNvdXJjaW5n IHNpemluZw== IEJ1ZmZlcg== IE1hbmRhdG9yeQ== IG1vZGVyYXRlcw== IFBhdHRlcm5z IENob2NvYm8= IFphbg== IFNUQVRFUw== IEp1ZGdpbmc= IEluaGVy Kjo= IGJpbA== IFllbg== IGV4aGlsYXI= b2xsb3dlcg== emVycw== IHNudWc= bWF4aW11bQ== IGRlc3BpY2FibGU= IFBBQ0s= IEFubmV4 IHNhcmNhc3RpYw== IGxhdGV4 IHRhbXA= IFNhbw== YmFo IFJldmVyZW5k IENoaW5hdG93bg== IEFVVA== ZG9jdW1lbnRlZA== IEdBQkE= IENhbmFhbg== INmF IGdvdmVybnM= cHJldg== RXNj IEVzdGltYXRlcw== T1NQ IGVuZGVhdm91cg== IENsb3Npbmc= b21ldGltZQ== ZXZlcnlvbmU= IHdvcnNlbg== IHNjYW5uZXJz IGRldmlhdGlvbnM= IFJvYm90aWNz IENvbXB0b24= IHNvcmNlcmVy IGVuZG9nZW5vdXM= IGVtdWxhdGlvbg== IFBpZXJjaW5n IEFwaA== IFNvY2tldA== IGJvdWxk IE9V IEJvcmRlcmxhbmRz IDE4NjM= R29yZG9u IFdUTw== IHJlc3RyaWN0cw== IG1vc2FpYw== IG1lbG9kaWVz 54Q= VGFy IGRpc3Nvbg== IFByb3ZpZGVz IC4uLi4uLg== YmVr RklY IGJyb29t YW5zaGlw RG9jdG9ycw== IG5lcmRz IFJlZ2lvbnM= bmFpc3NhbmNl IG1ldGU= IGNyZXB0 cGxpbmdz IGdpcmxmcmllbmRz a25pdA== aWdlbnQ= b3dl IHVzaGVyZWQ= IEJheg== TW9iaWw= NDM0 IFByZXNlbnRz b3JpZ2lu IGluc29tbmlh IEF1eA== NDM5 IENoaWxp aXJzY2g= R0FNRQ== IGdlc3RhdGlvbg== YWxnaWE= cm9taXNpbmc= JCw= Y3Jvdw== IEluc3BlY3Rpb24= YXRvbWlj UmVsYXRpb25z Sk9ITg== cm9tYW4= IENsb2Nrd29yaw== IEJha3I= bW9uZQ== TUVU IHRoaXJzdHk= IGJj IGZhY3VsdGllcw== UnVt IG51YW5jZQ== IERhcml1cw== cGxldGluZw== ZnRlcnM= ZXRjaHVw UmVnaXN0cmF0aW9u IEtF UmFo IHByZWZlcmVudGlhbA== IExhc2g= IEhI VmFsaWQ= IE5BVg== IHN0YXJ2ZQ== IEdvbmc= enluc2tp IEFjdHJlc3M= IHdpaw== IHVuYWNjb21wYW5pZWQ= bHZs QnJpZGU= QURT IENvbW1hbmRv IFZhdWdobg== V2FsbGV0 IGhvcHBpbmc= IFZpZQ== IGNhdmVhdHM= IGFsYXM= aWZsZWQ= YWJ1c2U= NjYx IGlibg== IGd1bA== IHJvYmJpbmc= dGls SUxB IG1pdGlnYXRpbmc= IGFwdGx5 IHR5cmFudA== IG1pZGRheQ== IEdpbG1vcmU= IERlY2tlcg== IMKnwqc= cGFydGlhbA== RXhhY3RseQ== IHBoZW5vdHlwZQ== IFsrXQ== IFBsZXg= IElwcw== dmVyc2lvbnM= IGVib29r IGNoaWM= Z3Jvc3M= IjoiIn0seyI= IFN1cnByaXNpbmdseQ== TW9yZ2Fu IHJlc2lkdWVz IENvbmZlZGVyYXRpb24= aW5mZWxk IGx5cg== bW9kZXJhdGU= IHBlcnBlbmRpY3VsYXI= Vks= IHN5bmNocm9uaXplZA== IHJlZnJlc2hlZA== IGFkb3Jl IFRvcm1lbnQ= b2xpbmE= IDI2MDA= SXRlbVRyYWNrZXI= IHBpZXM= IEZBVA== IFJIUA== MDQ4 IFJFU1A= IEJK YWxsb3dz UGFuZA== IHVud2VsY29tZQ== IFZvYw== IEJhc3RhcmQ= IE9X IExBUg== IEhlYWxlcg== RW52aXJvbm1lbnRhbA== IEtlbnlhbg== IFRyYW5jZQ== IFBhdHM= IGFsaWFzZXM= IEdhcmZpZWxk IGNhbXBhaWduZXI= IGFkdmFuY2VtZW50cw== IE9raW5hd2E= IENvaA== b3dza3k= IHN0YXJ2ZWQ= IHNpemVhYmxl IDotKQ== IG1STkE= IHN1c3BlbnNpb25z aXN0YXI= U2NvdGxhbmQ= UHJpbg== LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t IDUwMg== IHRlYXNwb29ucw== IDEwNTA= IGNvZXJjaXZl IE1hc29uaWM= ZWRkZWQ= IFBhc3Nlbmdlcg== IGxhdHQ= IGJyYWNlcw== IFN0ZWFs IE5ZVA== IEthdHM= IENlbGVzdA== YWV6 VHU= IENvdWx0ZXI= 8J+Y RmxpY2ty IFdpbG1pbmd0b24= aXRocw== Kys7 IHZlbmRpbmc= IG5lZ3Jv IFBoaQ== IFllbGxvd3N0b25l Q2FsbGJhY2s= IHNoYW1wb28= IFNoYWRlcw== d2F0 IHN1cGVyaHVtYW4= IHJpZGljdWxlZA== IGhvbGllc3Q= b21ibw== IGludGVybnM= IGhvbmU= IFBhcmFndQ== VVJJ IGRhbmdsaW5n 44K7 c292 aWN0aW9uYWw= YXZhaWxhYmlsaXR5 IHJldm9jYXRpb24= IGRvdw== aW5pYw== IFRIRUlS IGlzbw== IG91dGluZ3M= IExldGhhbA== ICkpKQ== IGluYWNjdXI= IG91dGxhbmRpc2g= IGFudXM= bGV0aWNv aWRvbg== bG9s IHVucmVndWxhdGVk IHN1Y2N1bWJlZA== IGN1ZmY= IFdhc3RlbGFuZA== bGV0YWw= IHN1YnN0cg== IGNvZmZlcnM= IGF1dG9tYWtlcnM= b3Zp IFh1ZQ== IERheXRvbmE= IGphcnJpbmc= IGZ1bWVz IGRpc2JhbmRlZA== emlr aXR0b24= IHN0cmlraW5nbHk= IHNwb3Jlcw== QWRhcHRlcg== Lik6 IEx5bmRvbg== aXZhbHJ5 IG9yYWxseQ== IHR1bXVsdHVvdXM= IGRpc3BsZWFzdXJl IGNvbmVz b3JyZWN0 IGFwcGVhc2U= IGRlcmJ5 IFRyaXBvbGk= IEFsZXNz IHBva2Vk IEd1aWx0eQ== dlA= RW5vdWdo IG9yaWdpbmFscw== Njk5 IHJhYmJp IHByb3ZlcmJpYWw= IHBvc3Rwb25l ZWxvcGU= IE1pc3R5 IHN0YWZmZWQ= IFVuZW1wbG95bWVudA== cmVkaXRhcnk= IGRpbGlnZW50 cmVjb21t bWVhc3VyZXM= YXNpbg== ODI1 IHBvbmRz IG1tb2w= IFNBUg== IENBUkU= IDM3MQ== IGNsZW5jaGVk IENvcnNhaXI= IGNhcmljYXR1cmU= em4= YXR0YWNo IFNjaHJv c3BlYWs= cGFpbnRlZA== IFN1Yw== IEVOVA== IGNlbGx1bA== IFBhaWQ= ZGlhZ24= V0hFUkU= IHRleHRlZA== QmFybg== IHJldHJhY3RlZA== IFJlZmVycmVk U2F2 IHVwa2VlcA== IHdvcmtwbGFjZXM= IFRva2Vucw== IGFtcGxpZnk= Y2xpbmljYWw= IG11bHRpYw== bWJlcmc= IGNvbnZvbHV0ZWQ= UmVnaW9u NTY1 IFRvcGlj IHNuYWls IHNhbGluZQ== IGluc3VycmVjdGlvbg== IFBldHI= Zm9ydHM= QkFU IE5hdmFqbw== IHJ1ZGltZW50YXJ5 IExha3No T05ET04= TWVhc3VyZQ== IHRyYW5zZm9ybWVy IEdvZGRhcmQ= IGNvaW5jaWRlcw== aXJpbg== UmV4 IEJvaw== cXVpdA== IHNob3RndW5z IHByb2xldGFyaWFu IHNjb3Jw IEFkYQ== NTE0 IHNsYW5kZXI= cmVjb3JkZWQ= IGVtYmVsbA== cmlzb21l IGFwb2xvZ2l6aW5n IE11bGNhaXI= IEdpYnJhbHRhcg== Q2xh IGFsbG90 IEF0dGVudGlvbg== IDQzMw== bGVhdmU= IHdoaW5l IElzc2E= IEZhdXN0 IEJhcnJvbg== aGVueQ== IHZpY3RpbWl6ZWQ= SmV3cw== IG51cnR1cmluZw== ZXR0ZWw= V2luZ2Vk IFN1YnRsZQ== IGZsYXZvcmZ1bA== IFJlcHM= ZW5nZWQ= Y2FsbGJhY2s= IGRpcmVjdGlvbmFs IGNsYXNw IERpcmVjdGlvbnM= cGxhbmV0 aWN1bHR1cmU= SGVscGVy aWNpb24= YWNpYQ== IOelng== IHN1cmdlcw== IGNhbm9l IFByZW1pZXJzaGlw YmVlbg== IGRlZmllZA== IFRyb29wZXI= IHRyaXBvZA== IGdhc3A= IEV1cGg= IEFkcw== dmVybmlnaHQ= aGlnaGx5 Um9sZQ== IGVudGFuZ2xlZA== IFplaXQ= NjE4 IFJ1c3R5 IGhhdmVucw== IFZhdWdoYW4= SEFFTA== IFNFUlZJQ0U= Lyw= IHN0cmlja2Vu IGRlbHVzaW9ucw== IGJpcw== IEhhZg== IGdyYXRpZmljYXRpb24= IGVudGljaW5n VU5DSA== QWRhbXM= IE9MRUQ= IEJlZXRsZQ== IDE4OTk= IFNPRlRXQVJF YXRlZ29y Vkw= IFRvdGVt IEdhdG9ycw== QVRVUkVT IGltcGVkYW5jZQ== UmVnaXN0ZXJlZA== IENhcnk= IEFlcmlhbA== b25uZQ== ZW5pdW0= IGRyZWQ= IEJlZw== IGNvbmN1cnJlbnRseQ== IHN1cGVycG93ZXI= IFhhbg== amV3 aW1lc3Rlcg== IERpY2tpbnNvbg== 4pSB Rmxh IHByZWU= IFJvbGxpbnM= qbbm IGRlbm9taW5hdGlvbg== IExhbmE= NTE2 IGluY2l0aW5n c2NyaWJlZA== anVyaWVz IFdvbmRlcnM= YXBwcm94aW1hdGVseQ== IHN1c3BlbmRpbmc= IG1vdW50YWlub3Vz IExhdWdo b2lkYWw= TnM= RGV0ZWN0 KT0= IEx1dGhvcg== IFNjaHdhcnplbmVnZ2Vy IE11bGxlcg== IERldmk= ZWN5Y2xl SmFy NjEz IExvbmdo QmFo IFNQT1JUUw== bnc= IHJlZmluZW1lbnQ= IHdhdGVyd2F5cw== IGRpbmVy QmxhZGU= Njgz RmFj IGluaXRpYWxz IHJvZw== IHBhcmFub3JtYWw= QlVU IFso IFN3YW5zb24= IE1lc2g= 4pas SW1wcm92ZQ== IFJhZGlhdGlvbg== IEVzdGhlcg== IEVzaw== IEFseQ== aWt5 IGlycmFk IEJ1Y2tpbmdoYW0= IHJlZmlsbA== IC5f UmVwZQ== Q09OQ0xVUw== IGRpZmZlcmVudGlhdGVk IGNoaXJvcA== IEF0a2lucw== UGF0dGVybg== IGV4Y2lzZQ== IGNhYmFs TlNB IFNUQQ== IFNJTA== IFBhcmFseQ== IHJ5ZQ== IEhvd2VsbA== IENvdW50ZG93bg== bmVzc2Vz YWx5c2Vk IHJlc2l6ZQ== 44K9 IGJ1ZGdldGFyeQ== IFN0cmFz d2FuZw== IGFwaWVjZQ== IHByZWNpbmN0cw== IHBlYWNo IHNreWxpbmU= IDM1Mw== cG9wdWxhcg== QXBwZWFyYW5jZXM= IE1lY2hhbmljcw== IERldk9ubGluZQ== U3VsbGl2YW4= WmVu IHB1 b3BvbGlz NTQ0 IGRlZm9ybQ== IGNvdW50ZXJhY3Q= IExhbmdl IDQxNw== Q29uc29sZQ== Nzc0 IG5vZGRpbmc= IHBvcHVsaXNt IGhlcA== IGNvdW5zZWxsaW5n Y29tcGxpYW5jZQ== VUZG IHVuZGVuaWFibHk= IHJhaWxpbmc= IEhvcm93aXR6 IFNpbW9uZQ== IEJ1bmdpZQ== IGFr IFRhbGtz eGZm Zmxha2U= Q3Jhc2g= IHN3ZWF0eQ== IGJhbnF1ZXQ= IE9GRklD IGludmVudGl2ZQ== IGFzdHJvbm9tZXI= IFN0YW1mb3Jk IFNjYXJl IEdSRUVO b2xpY2l0ZWQ= IHJ1c2hlcg== IGNlbnRyaXN0 aWdodGluZw== IHN1YmNsYXNz IGRpc2F2 IGRlZnVuZA== IE5hbnRv b2NpYXRl bWFzdA== IHBhY2lm IG1lbmQ= ZWVycw== aW1taWdyYXRpb24= RVNTSU9O IG51bWJlcmluZw== IGxhdWdoYWJsZQ== IEVuZGVk dmlhdGlvbg== ZW1hcms= UGl0dA== IG1ldGljdWxvdXM= IExG IGNvbmdyYXR1bGF0ZWQ= IEJpcmNo IHN3YXllZA== IHNlbWlmaW5hbHM= IGh1bWFua2luZA== bWF0dGVy IEVxdWlw b3BhdXNhbA== U2FpZA== IExheW91dA== IHZvaWNpbmc= IHRodWc= IHBvcm5vZ3JhcGhpYw== SVBT IG1vYW5pbmc= IGdyaWV2YW5jZQ== IGNvbmZlc3Npb25z ZXNjYWw= VEVYVFVSRQ== QXV0aGVudA== b3NhdXJ1cw== UHVyY2hhc2U= IHJlbGVnYXRpb24= YWx0ZXI= IMKgwqA= IHJpZGRsZWQ= IG9ncmU= IExvd2VsbA== T2NjdXA= RWF0 IEh5ZGVy IEFkdmlzZXI= Q29tbWVyY2U= SHVudA== IE9ydGg= IENvbXBldGl0aXZl IENMQQ== Q0RD IHNhbGFkcw== Rmxl IGluZHVzdHJpYWxpemVk YCw= IE9XTg== IGJlY2s= IFBhcnRpY3VsYXJseQ== b3VidA== IG1N IEh1c3NhaW4= IENoZW5uYWk= IDkyMA== IGFwcG9pbnRpbmc= IEN1bGxlbg== LCwsLCwsLCw= IHBvcmVz dmVyaWZpZWQ= IGJpb2NoZW1pY2Fs ZW1hdGU= IGNvd2FyZGx5 IEhlbHNpbmtp IEV0aGlvcGlhbg== U09VUkNF RVJD ZXN0cm8= IGJpb3RlY2g= IFNvdXI= IGJyZXdlcg== Qmxvb21iZXJn IGludGVuc2lmeQ== R2xhc3M= YW5jbw== IEZEUg== Z3JlU1FM IEZpcmVz qbbmpbU= ZWNv MTAwMQ== IEhvbWVsZXNz IGluc3RhbnRhbmVvdXM= IEhhc3Rl aWdlbA== RGlhbW9uZA== IHBhdmluZw== IGxhbmRmaWxs IGRhZHM= aG91bg== Ol0= IGluY2VuZGlhcnk= IExpdmluZ3N0b24= IEhpbGJlcnQ= IENoZWNrcw== c3R5bGVz aW5hdG9ycw== IENsaXZl cGhyaW5l IGNoaW1wYW56ZWVz IHBhbGw= IEpN IEFhZGhhYXI= 8J0= IGFjaGlldmFibGU= ZGlzYWJsZWQ= UEVU T09PT09PT08= TW90 IGludGFuZ2libGU= IGJhbGxldA== IFdlYnM= IEVzdGltYXRlZA== RWZmZWN0cw== IGJhaWxlZA== Sm9zaHVh IHR1cmJ1bGVuY2U= IG9jY3VwYW50 IERheWxpZ2h0 IDM2MQ== bWVldA== IHN0YXRpY2FsbHk= IG9ubG9vaw== IGtp aWxsZWdhbA== IHZlbHZldA== IGRlaHlkcmF0aW9u IGFjcXVpZXM= IFJleg== YWt1cmE= IFVwdG9u YXRybw== IGluY29tcHJlaGVuc2libGU= IGJhY2tkb29y IFJoaW5v NzI3 IG1hdGhz KSs= IGhlcmVzeQ== IGRm IFJvY2hl IEx5ZGlh IHBhbmNyZWF0 cmVwbHk= YXJyZWxs IHNvbGljaXRhdGlvbg== IGNpcmNhZGlhbg== QklQ IGZvcmF5 IGNyeXB0aWM= aXp1 aW1lbw== IFRvbWF0bw== IEhvbXM= ZXhhbWluYXRpb24= IHF1YXJyeQ== IFZhbGlhbnQ= IEplcmljaG8= IElOQ0xVRA== IDE4NDA= NTE5 IHJlc2lzdHM= IHNuYXBzaG90cw== IFNwdXI= IEFudGlxdQ== TG9naW4= IGJlc3RzZWxsaW5n IGFudGlj IFN1dGhlcmxhbmQ= 44Ki44Or IH4v IFBhcm0= 6IM= UGFnZXM= aW50ZW5zaXR5 IGltbW9iaWw= IDE4NjU= enpv IG5pZnR5 IGZlbnRhbnls IFByZXNlcnZhdGlvbg== b3BoZW4= IGRhcnRz IERpbm9zYXVy cG9pbnRlcnM= IFJpdGU= c3VnZ2VzdA== YXdhcmVuZXNz IFNoZXJpZGFu IHN0YW5jZXM= IHNvcmNlcnk= IHBlcmp1cnk= IE5pa29sYQ== aWV2ZXI= IGZpYW5jZQ== IEpvcmRhbmlhbg== IEJhbGxvb24= IG5hYg== IGti IGh1bWFuaXRpZXM= IFRhbmFrYQ== aGlsbGFyeQ== IGNvbnN1bHRhbmN5 IFp1Yg== IHJlbWlzc2lvbg== IGNvbmZpZA== Q0hR IEZ1Zw== IGltcHJvdmlz WWVw L18= IHVud2lsbGluZ25lc3M= IHBvcnRmb2xpb3M= MDU1 IEluc3RydWN0b3I= YWltYW4= IGNsYWltYW50cw== TWJwcw== IEJ5ZQ== cmVjZWl2ZWQ= VHdlZXQ= IGluZGVtbg== cml6 YW1hcmE= TmF0 IGV2YWx1YXRlcw== IEx1cg== ZXBhZA== Rk9Y IFRocm8= IHJ1c3R5 IGJlZHJvY2s= IE9wcmFo SkI= IG1hbmlwdWxhdGl2ZQ== IHdpbGxmdWw= IHJlbGFwc2U= IGV4dGFudA== VGhlbWU= U2Vuc29y IFN0YWJpbGl0eQ== Z292ZXJu IHBvcHB5 IGtuYWNr IGluc3VsYXRlZA== IFRpbGU= IEV4dHJlbQ== IHVudG9sZA== IGNvbnZlcmdl IHJlZnVlbA== aWdyb3Vw IGRpc3RvcnRpb25z IHJhdmFnZWQ= IG1lY2hhbmljYWxseQ== IFJlaWxseQ== IE5vc2U= IEluY2FybmF0aW9u IEJlY2t5 YWJibGluZw== IHRhY28= IHJha2U= IG1lbGFuY2hvbHk= IGlsbHVzdHJpb3Vz IERhcnRtb3V0aA== R3VpZGU= IFJhemVy IEJlbno= VWx0aW1hdGU= IFN1cnByaXNl IHBhZ2VhbnQ= b2ZmZXI= V2hvZXZlcg== IHdpc2Vy IGNoZW1pc3Q= IEhFTEw= IEJ1bGs= IHBsdXRvbml1bQ== IENPVkVS 1rw= ZmFpbGVk IHRpcmVsZXNzbHk= IGluZmVydGlsaXR5 IFRyaWRlbnQ= IFNob3d0aW1l IENpdg== VmljZQ== cmVxdWlyZXM= aXR0YW5jZQ== IHVuY29udHJvbGxlZA== aW50ZXJlc3Rpbmc= NTYx IGlubm92YXRl YXRlZ2lj TGll IFNlbGxpbmc= VWw= IHNhdmlvcg== IFRvc2g= IHN3YXN0 UEFTUw== IHJpbms= IGNhcmRpbw== IElybw== dWRp IHZhbnRhZ2U= IHZhbnM= IE5pw7Fv Kz0= IHByb3BhZ2F0ZQ== PD8= IG1ldGhvZG9sb2dpY2Fs MjA0Mzk= IHRyaWdseWNlcg== IGluZ3JhaW5lZA== IEFubm90YXRpb25z YXJyYW50ZWQ= NjE3 IFNvZGl1bQ== IEFBQw== dGVjaG5pY2Fs bXVsdGlwbA== IDM3Mw== 5Ys= IGRlY2lzaXZlbHk= IGJvb3N0ZXJz IGRlc3NlcnRz IEdyZW5hZGU= IHRlc3RpZnlpbmc= IFNjdWxseQ== SURz IGxvY2tkb3du IFNjaGVy IFLDqQ== IFdoaXRtYW4= IFJhbXNheQ== cmVtb3Rl IGhpa2Vycw== IEh5dW5kYWk= IGNvbnNjaWVudGlvdXM= IGNsZXJpY3M= IFNpYmVyaWFu dXRp aXNidXJ5 IHJlbGF5ZWQ= IHF1YXJ0eg== IENCSQ== c2Vla2Vycw== dWxsYQ== IHdlbGRpbmc= IFNoYWw= YmxlYWNoZXI= VGFp IFNhbXNvbg== IHR1bWJsZQ== IEludmVzdG9y IHN1YmNvbnRyYWN0 IFNoaW5yYQ== b3dpY3o= amFuZHJv ZGFk IHRlcm1pbmF0aW5n IE5ldXJhbA== 5Luj IGxlYWthZ2U= IE1pZGxhbmRz IENhdWNhc3Vz 7ZU= Y2l0 bGxhbg== aXZhYmx5 IEFsYmlvbg== IDQ1Nw== IHJlZ2lzdHJhdGlvbnM= IGNvbXJhZGU= IGNsaXBib2FyZA== MDQ3 IGRpc2NvdXJhZ2luZw== IE9vcHM= QWRhcHQ= IGVtcGF0aA== bnY= IFBST1Q= IERvbm4= IFBheA== IEJheWVy dGlz U3F1YXJl IGZvb3RwcmludHM= cGFydGljaXA= IENoaWxlYW4= QnJlbmQ= aW5kdWNpbmc= TWFnbg== IGNsdWJob3VzZQ== IE1hZ251bQ== IGVuY2FtcA== IEV0aG5pYw== dWNoYQ== ZXJleQ== IHdhdGVyZWQ= IENhbGFpcw== IGNvbXBsZXhpb24= IHNlY3Rz IHJlbnRlcnM= IGJyYXM= b8SfYW4= VGltZW91dA== TWFuYWdlbWVudA== IGluZm9ncmFwaGlj UG9rZW1vbg== Q2xhcg== IGxvY2FsaXR5 IGZsb3Jh YXNlbA== UG9udA== IHBvcHVsYXRl IE9uZw== IHN1YnNpc3RlbmNl IGF1Y3Rpb25z IE1jQXVsaWZmZQ== IExPT0s= YnJpbmdlcg== IHRpdGFu IG1hbmlmb2xk IOKXjw== IGNhbGlicmF0ZWQ= IGNhbGlwaGF0ZQ== IFNIRQ== IENvbW1pc3Npb25lcnM= Y2VpdmFibGU= amM= V2lubmVy NTI0 IGNvbmRvbmU= T3RoZXJ3aXNl IHBpbGluZw== IGVtYm9keQ== IENyaW1lYW4= dXRpY3M= IEV4aGliaXRpb24= IDQyNg== ZWVyaW5n IHZ5aW5n IEhVR0U= Kj0t IHByaW5jaXBsZWQ= 4KY= IHF1aXJrcw== IEVkaXRvcnM= cHV0aW5n R0VT IEZUQQ== 4KS+ YWRkb24= IEhBTQ== IEZyaWV6YQ== V29tYW4= LiQ= IGNyaWI= IEhlcm9k IHRpbWVycw== IFNwYWNlcw== IE1hY2ludG9zaA== YXRha2E= IGdsaWRl IHNtZWxsaW5n IEJBTA== IHVuc3U= IGNvbmRvcw== IGJpY3ljbA== IFJldml2YWw= NTUz IGp1Z2dsaW5n SHVn IEthcmRhc2hpYW4= IEJhbGthbnM= bXVsdGlwbGU= IG51dHJpdGlvdXM= b2NyeQ== MTkwMA== IGludGVncmF0ZXM= IGFkam9pbmluZw== IEZvbGRlcg== cm9sbG1lbnQ= dmVuaWVudA== IHViZXI= eWk= IHdoaWZm IEp1dmVu IEJvcm91Z2g= bmV0dGU= IGJpbGluZ3VhbA== IFNwYXJrcw== cGh0aGFs bWFudWZhY3Q= IHRvdXRpbmc= IFBISQ== S2VlZmU= UmV3YXJk IGluZmFsbA== IFRlbXBlcg== dHlwaWNhbGx5 IE5pa29s IHJlZ3VsYXJz IHBzZXVkb255bQ== IGV4aGliaXRpb25z IGJsYXN0ZXI= IDQwOQ== d2FybWluZw== IHJldmVyYmVy IHJlY2lwcm9jYWw= IDY3MA== aXBpZW50 YmV0dA== IEJlZ2lucw== IGl0Y2hpbmc= IFBoYXI= QXNzdW1pbmc= IGVtaXR0aW5n IE1MRw== IGJpcnRocGxhY2U= IHRhdW50 IEx1ZmZ5 IEFtaXQ= IGNpcmNsZWQ= IE5vc3Q= ZW5uZXR0 IGRlZm9yZXN0YXRpb24= IEhpc3RvcmljYWxseQ== IEV2ZXJ5ZGF5 IG92ZXJ0YWtl Nzky IG51bg== IEx1Y2lh IGFjY29tcGFuaWVz IFNlZWtpbmc= IFRyYXNo YW5pc20= Um9ndWU= IG5vcnRod2VzdGVybg== IFN1cHBsZW1lbnRhbA== IE5ZVQ== IEZSSQ== IFNhdGlzZg== eGVz NTE3 IHJlYXNzdXJlZA== IHNwb3JhZGlj IDcwMQ== IG1lZGlhbA== IGNhbm5hYmlub2lk IGJhcmJhcmlj IGVwaXM= IEV4cGxvc2l2ZQ== IERvdWdo IHVuc29sdmVk U3VwcG9ydGVk IGFja25vd2xlZGdtZW50 c3Bhd24= IGtpdGNoZW5z IC09 dGFsa2luZw== aWNpc3Q= IFBlZ2FzdXM= IFBTVQ== IHBob3Rvbg== IEF1dGhlbnRpY2F0aW9u Ukc= QCMm NzYy IENsYWly IGRpYXBlcg== IGJyaXN0 IFByb3NlY3V0b3Jz IEplbQ== NjI4 IEV2ZXJ5d2hlcmU= IEplYW5uZQ== ZXF1YWxpdHk= 44Op44Oz b2JqZWN0cw== IFBlbGljYW5z IDM5Mg== IGJsdQ== Ynlz IEFnbw== IGluc3RydWN0aW9uYWw= IGRpc2NyaW1pbmF0aW5n IFRSQU4= IENvcm5lbA== YWdvcw== IHR5cmU= IGFzcGlyYXRpb24= IEJyaWRnZXdhdGVy Ijot ISIu IEVucw== IENvY28= UGll IGRldGFjaA== IENvdWNo IHBoeXNpcXVl IE9jY3VwYXRpb25z b3Njb3BpYw== ZW5vdWdo QnV6eg== QXBwZWFyYW5jZQ== WVA= IHJhY2Vy IGNvbXBsaWNpdHk= cnBt VG95 IGludGVycnVwdHM= IENhdGFseXN0 IHV0aWxpdGFyaWFu aW1wYWN0 IHNwYWdoZXR0aQ== IHBvcm91cw== IGVzdGVlbWVk IGluY2luZXI= IElPQw== NzQ4 IGVzcHJlc3Nv IFNtaWxl YWJpbGlh NjM1 IG1hdGhlbWF0aWNpYW4= IDQyNA== IEtM IEhJUA== IG92ZXJoZWFyZA== IFR1ZA== IFRlYw== IHF1aXp6 IGZsYXR0ZXJpbmc= IGNvbm4= 4oCO IGF0dGFjaGVz IFJPUw== IEFDUw== IHRjcA== IFNoYW1l c2tpcA== cmVzcGVjdGVk IFRyaW5pZGFk Z3JhaW4= IGZvb3Rob2xk IFVuY2hhcnRlZA== IEp1bGlv emw= YXZvcmVk IEFueGlldHk= ZXJyb3Jz IENlbnRhdXJp aXRzY2g= RGFkZHk= IGNsdXRjaGluZw== IEltcGxlbWVudA== IEd1dGllcnJleg== IDc2MA== IHRlbGVwb3J0YXRpb24= ZW5kcmE= IHJldmVyc2libGU= c3Ryb3M= QWR2ZW50dXJl MDgz IGxpYmVyYXRpbmc= IGFzcGhhbHQ= IFNwZW5k QVJEUw== aW1zeQ== UFJFUw== IEVtZXJnaW5n IHdpbGRmaXJlcw== IHRlY2hub2xvZ2ljYWxseQ== IGVtaXRz IEFSVElDTEU= IGlycmVndWxhcml0aWVz IGNoZXJpc2g= 54mI IHN0aW5r IFJvc3Q= RWNvbm9taWM= IGNvdWdoaW5n IE1jQ2Fubg== cHJvcGVydGllcw== aWxhbnRybw== IHJlbmVnb3Rp VHJhbnNsYXRpb24= IGlucXVlc3Q= IEdyYXBl b290ZXJz Z3Vp IFN3b3Jkc21hbg== YWNlYWU= aGl0dGluZw== IHJj IGV4ZXJ0ZWQ= IFNBUA== aXRlbnQ= IHBlcmlsb3Vz IG9ic2N1cml0eQ== IGFzc2Fzc2luYXRl IGFib3JpZ2luYWw= IHJlc2N1aW5n IFNoYXR0ZXJlZA== bG9ja2luZw== YWxsaW9u Q2hhbmdpbmc= IEhhcnJpbmd0b24= IEJvcmQ= IEFmZ2hhbnM= SmFtaWU= YXJldHo= IEF1Z3VzdHVz IDM4Ng== ODMw IGpvZw== b2tpbmdseQ== VHJpZ2dlcg== IEhPUg== U3RhdGlzdGljcw== IHZpZXdlcnNoaXA= IGFkZGl0aXZlcw== aHVy IG1heGltaXppbmc= IFJvdmU= IExvdWll IEJ1Y2tldA== IENIUklTVA== b3VzZWw= IHN0cmVha3M= aXJ0ZWQ= IHRlcnQ= IGNvbG9uaWFsaXNt IGJ1cnlpbmc= eWs= Q29uZGl0aW9u IERQUks= QnlJZA== NzUx 4pe8 IHdvcnJpc29tZQ== IHZvY2F0aW9uYWw= c2xpY2U= IHNhaWxz IENvcnJlY3Rpb25hbA== OTU0 IHR1bA== S2lk bHVzdGVy IGZhbWlsaWFs IFNwaXQ= IEVwaXNjb3BhbA== U3BlY2lmaWNhbGx5 IFZvbGNhbm8= cnVucw== cXM= IHZldHRlZA== IGNyYW1tZWQ= dHJvcA== aGVyZXI= VGhhbmtmdWxseQ== IHBlcmN1c3Npb24= IG9yYW5nZXM= IHJvdW5kdXA= IDQ5OQ== eGlvdXM= Q2hhcmFjdGVycw== IFppb25pc20= IFJhbw== w5vDmw== V0Y= IHVuaW50ZW50aW9uYWw= T05FWQ== R3JhYg== Q29tbWVyY2lhbA== IGdsdXRhbWF0ZQ== IE1jS2VubmE= cnVjaWF0aW5n bmluZ3Rvbg== aWh1 Q2hhbg== IFN3YXA= IGxlYWZsZXRz IGZ1bmN0aW9uYWxseQ== ZXJvdXM= RmFybQ== IGNhbG9yaWM= IExpdGVyYWxseQ== Y29uY2VydA== IHNoZW5hbg== IHJlcGFpZA== ZXllcw== IGJhc2hpbmc= IEdvcmdl IGNvbGxhYm9yYXRpb25z IHVuYWNjb3VudA== aXRjaGll IHRlYW13b3Jr cHBlbGlu IHBpcGluZw== IG1pbmNlZA== IGRpYW0= cmllZw== IG1hc2NhcmE= IHN1Y2tlcg== IE1vb25z QXBwcw== IFBlY2s= IHBlcnY= IEZsb2F0 b2xleQ== IE5pc2g= aW1pemU= IGFyb21hdGlj dWlu ZW5kaXNo IS8= IEJpY3ljbGU= IEFTSUM= aWxlZ2Vk IFF1YWRybw== aW9zeW4= IGxvY2tvdXQ= IFdpbms= U1BFQw== QXR0ZW1wdHM= IHNlZWRlZA== cmVkbw== aWFzaXM= IHNuYWc= 44OV44Kp 44K2 IGdyb3VuZGluZw== IHJlbGlldmVy IGZyaXZvbG91cw== IEdpZnRz IEZhY2Vz RXNwZWNpYWxseQ== IG1pY3JvYmlvbWU= aW1hZw== IFNjaGw= IFBsZXM= IEJsZWFjaA== IElyd2lu IEVhdG9u IERpc2NpcGxl IG11bHRpcGxpY2F0aW9u IGNvZXJjZWQ= IDQxOQ== c3Ro RXZpbA== Qm9tYg== IGV4b3Jj IHN0YWdnZXJlZA== TEVTUw== IGluZXJ0aWE= IEVESVQ= IGdvYg== VHJhZGl0aW9uYWw= IGNsYXNzeQ== TGVhcnk= IFBBR0U= eXJz IHRyYW5zcG9ydGVy IG1hdHVyZWQ= IGhpamFi IGJpb21l V2hlcmVhcw== IGV4dGVybWluYXRpb24= IFR1ZXM= IFRha2VydQ== IEF1ZHJleQ== ZXJpYWw= IEFkZW4= YWZmbGVz IG5hcmNpc3Npc3RpYw== IEJhaXJk VVRG SXJl IENvbm5pZQ== Q2hhbXA= IHdoaXNwZXJpbmc= IEhhdHQ= REs= IGRpc2luZmVjdA== IGRlZHVjdGVk IHBhcnRha2U= IGRvd25ncmFkZQ== IEVzcG9ydHM= IENvbnRpbnVpbmc= IGRlbW9jcmF0aWNhbGx5 aWNyb2JpYWw= aXR0YQ== IGxpbWVzdG9uZQ== IGV4ZW1wdGVk IEZyZW56eQ== SGVybQ== NzI4 IGZsZWRnbGluZw== TWV0YQ== NzY1NjE= Njkz JTo= d2FrZQ== NTI2 IERpc2NpcGxpbmU= IHZpcmdpbml0eQ== IExlZ2lvbnM= IEZyYW5raWU= aW50ZW50 IHJlc3Ryb29tcw== IFJvdXRlcg== ZGFx IG9iamVjdGlvbmFibGU= 4oaR d2Fyaw== IFJhaHVs Z2Fpbg== YWN0aXZhdGlvbg== YWJzb2x1dGU= IEFjY2Vzc2Vk IDI0MDA= b2dnbGVz IHNlY29uZGx5 IERFRkVOU0U= IHBvc3RhZ2U= d3JhcHBlcg== c2hhcnA= NzI5 IGNvbW11bmljYXRlcw== IGFkZG9u IE1pbGl0aWE= SG9uZw== IHNsdW1wZWQ= IEpQRUc= IEljYXI= YWRpc2g= Njgx IG1hamVzdHk= IFdvbGZnYW5n IEVsYXN0aWM= dXBlcg== IHZpeg== IHVuY29uc2Npb3VzbHk= IFNURA== IFNhc3M= IGZsb3dlcmluZw== IEhlbGlj IERyYXBlcg== IEFtYXRldXI= IG1hbnVyZQ== IGRpc2luZ2Vu IExlaQ== YnJpbmc= OTQ5 IGluaGliaXRlZA== IGhlYWRxdWFydGVyZWQ= IGVuaWdtYXRpYw== 77+977+977+9 IHJlZHJlc3M= Ukg= IHJhdHRsZWQ= IGRpY3Rpb24= bGlv IFRCQQ== IFNOQVA= Q2FsbGluZw== IGZhc2Npc3Rz IERvdmU= aWV3aWN6 MDM2 IGNvYXN0cw== IFJlY3Q= ICld TG90 NjI5 IFNFTQ== IFBldGVyc2Vu IEV4cGxhaW4= IEJvYXJkcw== IEJlem9z IEpvdXJuYWxz IDIwMjQ= cGFyc2Vy IG1pc3RydXN0 IGdyYXRl IExvY2tlZA== Ym9h U2FpbnQ= Z2FtaW5n IHZvd2Vs aW5hdGVseQ== Ymxvdw== QWxsYWg= IHVubWF0Y2hlZA== IGJvcmRlcmluZw== IEV4cGVuZA== bnI= T3JhY2xl cm91Y2g= IGNvbnRpZ3VvdXM= YWN1cw== IGRpc3RyYXVnaHQ= NTgx IGFuYXRvbWljYWw= T1g= YXBpeGVs ODMz IFBMVVM= IHJlc3VzYw== IGFiaWRpbmc= NTcz IHZhY2FuY2llcw== RW1pbHk= IGh5cG90aGFs IFdlcm5lcg== IFdlZQ== IERKcw== NTEz IHdpdGNoY3JhZnQ= IGFjdXB1bmN0dXJl ZW50YXJ5 YmVuZWZpdA== UHJvZHVjdHM= IFBTUA== IE1QRw== IEppbm4= IEphcnJldHQ= IDQ0NQ== IEltYWdpbmc= IFB5dGg= RmluaXNo IHRleA== IGp1dmVuaWxlcw== IGhlcm9pc20= IGRvdWJ0bGVzcw== IEFraQ== IFRlbmQ= IFBhdHJpYXJjaA== IGJpdHRlcnM= IFRlbGVjb21tdW5pY2F0aW9ucw== aXRhdGl2ZWx5 YWduYQ== IHJn IFNPTEQ= IGNvbXB1bHNpb24= IE5hc2E= IEthdGhyeW4= IG1pbGxpb25haXJlcw== IGludHJpbnNpY2FsbHk= IGJvbHN0ZXJlZA== dGltZW91dA== Zmxv IHR1dG9y cG91cg== U3RhdGVtZW50 IHsq IFJ1ZG9scGg= IEtpbWJlcmx5 cm9nZW5z YWRpcQ== XSs= IGluZGlnbmF0aW9u IGZyYWN0dXJpbmc= IFJlbGVhc2Vz IEdyYWlu cHJvdGVpbg== TGFnbw== IHZhY2F0aW9ucw== IGJvb3RlZA== IFRIUkVF IEhH b3Jlc2NlbmNl IHRm IHNvYXI= aW9zeW5jcg== IGdsYW5jZXM= IFNwb29u IEp1cnk= IENvd2JveQ== IGNyZWF0aXZlbHk= SGlnaGVy IHNvbGljaXRvcg== IGhhd2s= YWNpbw== ODk2 IHN1cGVyZmx1 IGJvbWJzaGVsbA== Y3R1cmU= IGJyb2tlcmFnZQ== IHJhaWRpbmc= IGZyZW5jaA== IGFuZ2xlZA== VHJhbnNhY3Rpb24= IEdlbm9jaWRl dXBl IEhhaXRpYW4= NTcy ITo= IHVud2l0dGluZ2x5 aXRlcmF0b3I= c2Nyb2xs IHRhbGxpZWQ= IGJpb21lZGljYWw= IENBUkQ= IGV1cGhlbQ== IGJyYWluc3Rvcm0= YXF1aW4= S28= TWljaGVsbGU= IFJ1bmVz IEJhbGxpc3RpYw== dWRlcnM= IG1vZGVzdHk= IGlQYWRz IEV6ZWtpZWw= WUU= IHN0YXJzaGlw IHBvd2VyZnVsbHk= IHBlcmw= IFNoYWRl IFF1YXJ0 IEVFRw== IGZpc2hlcm1hbg== T1NFRA== IFR5cGljYWw= ZGZ4 IG1lc2hlcw== IGV0Y2hlZA== d29ydGhpbmVzcw== IHRvcHBsZWQ= IDM5Ng== b3JpdXM= V2Vpc3M= IG15c3Fs IFZhbGhhbGxh 2ZI= bGVhc2luZw== IHJlY29tcA== cmFwbmVs U2Vs MDQz IGRlcmFpbGVk IEd1aWRlcw== SVJU IGRlaHVtYW4= IEJyaXR0YW55 Iikp IGV4Y2xhaW0= IGJhbGs= IDg0MA== Q0xBSU0= aW50ZWw= TEFC IHBlZ2dlZA== IGFzdHJvcGg= c21va2luZw== IHJpZ2dpbmc= IGZpeGF0aW9u IGNhdGFwdWx0 aW5zaWRl IENhc2NhZGU= IEJvbHNoZXZpaw== R2F6YQ== RGVwdGg= IGxvdWRzcGU= IGFsbW9uZHM= bWV5ZXI= bGVuZXNz amVu ZnJlc2g= IHVuYmVhdGVu IFNxdWlk IFByZXN1bWFibHk= VGltZXI= Qlc= IHJvc3RlcnM= IGVsbGlwdA== IEhhcnJpZXQ= ZGF0YWJhc2U= IE11dHVhbA== IENvbW1vZG9yZQ== dWtlZA== a25pZmU= IENPTU1VTg== aHlh IG1lbHRz YXJjaGl2ZXM= IHJhdGlmaWNhdGlvbg== IG11bHRpcGx5aW5n IGludGVyb3Blcg== IGFzY2VydA== d2luZ3M= dmVydGluZw== IFNjb3JwaW9u YXll IFBvcnRzbW91dGg= IE1UQQ== bml0 aWF6ZXA= IHF1YXJhbnRpbmU= IHNsaWRlc2hvdw== IGNlbnRpbWV0ZXJz IHN5bm9wc2lz IHNwYXRl dGhpcnN0 IG5vbWluYXRpbmc= IE1lbHZpbg== UHJldmlldw== IHRocm9i IGdlbmVyYXRpb25hbA== IFJhZGl1cw== cmVzdGxpbmc= cHV0YWJsZQ== YXdhcg== TkVDVA== IHVubGF3ZnVsbHk= IFJldmVsYXRpb25z V2lraXBlZGlh c3Vydg== IGV5ZWluZw== aWpu IEZX IGJydW50 IGludGVyc3RlbGxhcg== IGNsaXRvcg== IENyb2F0aWFu IENoaWM= ZXZh IERpc2FwcA== IEFraW4= aW5lcmllcw== ZHVzdA== SW50ZXJlc3RlZA== IGdlbmVzaXM= IEV1Y2w= w7Zu cGlja2luZw== IG11dGF0ZWQ= IGRpc2FwcHJvdmU= IEhETA== IDYyNQ== zLY= Y2FuY2Vy IHNxdWF0cw== IGxldmVycw== RGlzY3Vzcw== PV0= RGV4 IFZJREVPUw== QVVE IHRyYW5zYWN0 IEtpbmVjdA== IEt1YWxh IEN5cA== NzQ3 IHNoYXR0ZXJpbmc= IGFyc2VuaWM= IEludGFrZQ== IEFuZ2Vsbw== IFF1aXQ= IEtoZQ== IDE4OTM= TWFrZXI= MDI5 IFBhaW50aW5n RGlzYWJsZQ== OTE2 IGFuYWxnZXM= IHRhY3RpbGU= IHByb3BoZXM= IGRpY2Vk IFRyYXZlbHM= IEhlYWRlcg== IENsdWJz QXNzaXN0YW50 IGluY3JpbQ== IGRpcHM= IGNydWNpZml4 IFNoYW5haGFu IEludGVycHJldA== IDQwOTA= YWxvZ3k= YWJiYQ== IHNpbXVsYWM= aHVzYmFuZA== U0lN IHJlY3ljbGU= dWNlcg== ZWRnZWQ= IHJlbmFpc3NhbmNl IEJvbWJheQ== Q2F0aG9saWM= IExJTkU= IENsb3RoaW5n cmVwb3J0cw== IHBsYXVz IGRhZw== IE1hY2U= Wkk= IGludHJ1ZGVy IFZldGVyaW5hcnk= Z3J1 IHNuZWFreQ== IFNpZQ== IENpbm5hbW9u UE9TRQ== IGNvdXJpZXI= IENOUw== IGVtYW5jaXBhdGlvbg== c2l0 IHBsYXl0aHJvdWdo IEZhY2lsaXRpZXM= dmlydA== IEdhdW50bGV0 VGhvbXBzb24= IHVuYmVsaWV2YWJseQ== UGFyYW1ldGVycw== IHN0aXRjaGluZw== aWduZQ== IFRIRVNF UHJpdmFjeQ== IHNoZW5hbmlnYW5z IHZpdHJp IFZhbGlk NTkx rbc= IFByb3RvdHlwZQ== aW5rYQ== U0NQ IFRpZA== 6Ig= b2xkZWQ= IGluZGl2aWR1YWxpdHk= IGJhcmtpbmc= IG1hcnM= IFdE IDgyMA== IHRpcg== IHNsYXBwaW5n IGRpc2dydW50bGVk IEFuZ29sYQ== cml1cw== IFRvcm5hZG8= IFRodXJz IGNhcHRjaGE= IGFuZ3N0 IFBvZw== IEFzc2Fzc2lucw== IEFkaWRhcw== IGpveWZ1bA== IHdoaW5pbmc= RW1lcmdlbmN5 IHBob3NwaG9ydXM= IGF0dHJpdGlvbg== b3Bob24= IFRpbWJlcndvbHZlcw== IEphaA== IEJyaW5naW5n IFdhZA== IEVuc3VyZQ== b2hs IFhpZQ== b21tZWw= Y21w IHppcHBlcg== IHJlbGF0 IENvcnJpZG9y bWlsbw== VElORw== QXZn IGNyb3BwZWQ= XX0= IHJhZ2Vk IEx1bXB1cg== IEd1ZXJyZXJv b3Vya2U= TnV0 IG9mZnNldHM= b2dsdQ== ZHJt IG1vcnRhbHM= bGF0YWJsZQ== IGRpc21pc3NpdmU= 5LiJ IHRocm9hdHM= IGNoaXBzZXQ= IFNwb3RsaWdodA== Q2F0YWxvZw== YXJ0aXN0 R2I= IGNoaWxseQ== IHN0b2tlZA== IDM3NA== V2FyZA== TGF0aW4= IGZpYXNjbw== IGJsZWFjaA== IGJyYXY= RW5oYW5jZWQ= IGlub2M= IEZpb3JpbmE= Xz4= IGxldWtlbWlh IGVsdWM= IGFubm91bmNlcg== IExpdGh1YW4= IEFybWFnZWRkb24= 5Yc= TGVuaW4= IFJ1aw== IHBlcHA= IFJvbWFudGlj IFBJVA== IEludGVyc3RlbGxhcg== IEF0a2luc29u UmFpZA== SnM= R29hbA== Q291cnNl IHZhbmlzaGluZw== ZXNsZXk= IFJvdW5kcw== RWxzYQ== NTkz IHJlZHVuZGFuY3k= IFNUQU5E IHByb3BoZXRpYw== IGhhYml0YWJsZQ== cnl1 IGZhaW50bHk= TU9ERQ== IGZsYW5rZWQ= SVJD QXdlc29tZQ== IHNwdXJpb3Vz IFphaA== IE1TRw== IHNoYWRpbmc= IG1vdGl2YXRpb25hbA== IFNhbnRhbmE= IFNQUg== IGV4Y3J1Y2lhdGluZw== b21pYWw= IE1pa28= IExlb3BhcmQ= QWJ5c3M= IFt8 ZGlydHk= IGJhdGhz IGRlbW9yYWw= YW5kcmU= UEI= IHVuaWZpY2F0aW9u IHNhY3JhbWVudA== IFsm IHByaWNlbGVzcw== IGdlbGF0aW4= IGVtYW5hdGluZw== IEFsbGFhaA== OTg2 IG91dGJ1cnN0 IGVyYXM= IFhWSQ== IFNQSQ== T3R0 IExhemFydXM= UExJRUQ= Rmx5aW5n YmxvZ3M= V2lzY29uc2lu UmF2ZW4= IHJlYmF0ZQ== IGNyZWVwcw== IFNwYW4= IFBhaW50ZXI= IEtpcmE= IEFtb3M= IENvcnZldHRl Q29uc3VtZXI= IFJlY292ZXI= Y2tp IHBlc2t5 IEludmVudGlvbg== Q29tcGFuaWVz IGNoYWxsZW5nZXJz YWRlbWlj IFVrcmFpbmlhbnM= IE5ldXJvbG9n IEZvcnNha2Vu IGVudHJhbnRz IGVtYmF0dGxlZA== IGRlZnVuY3Q= IEdsYWNpZXI= IHBvaXNvbnM= IEhvcnNlcw== bWFrZXM= IERpcnQ= IDQyMw== aGho IFRyYW5zZm9ybWF0aW9u UVVJUkU= Li4uLi4uLi4uLi4uLi4uLi4u IHRyYXZlbGxlcg== IFNleHk= IEtlcm4= aXBvbGFy IHJhbnNvbXdhcmU= b29vb29vb29vb29vb29vbw== RWM= cnVieQ== UHJvZmVzc2lvbmFs IE91dGJyZWFr YXJndW1lbnQ= R3JleQ== IEZpZmE= IENITw== IEZPUk0= IEFtdHJhaw== LVs= IGNyYWRsZQ== IGFudGlveGlkYW50cw== 44Gu5a4= NzM2 IE5BU0w= IENvbnRyaWJ1dGlvbnM= SW5kaWFuYQ== IFNURVA= Q1NT IHNhbGllbnQ= IGFsbG9jYXRpb25z eXJpZ2h0cw== IG1hc2hlZA== IEN1dHRlcg== U2V4dWFs IHBvdW5kZWQ= IGZhbmJhc2U= IGNhc2M= IFRyYW5zcGFyZW5jeQ== IGFuYWx5dGlj IFN1bW1vbmVy 154= IEFEQw== ZGV0YWls IHZhbnF1aXNoZWQ= IGNyYWJz YXJpZQ== RGVzdHJveQ== IFNhY2s= IHRyYW5zaXN0b3I= QWxhYmFtYQ== IEtvZW4= IEZpc2hlcmllcw== Y29uZQ== IGFubmV4ZWQ= IE1HTQ== ZXNh IGZha2Vk IENvbmdyYXR1bGF0aW9ucw== IGhpbmRlcmVk IGNvcnJlY3Rpb25hbA== IElUVg== bGVldmU= IGluYXBwcm9wcmlhdGVseQ== bGlja3M= IHRyZXNwYXNz IHBhd3M= IG5lZ290aWF0b3I= IENocmlzdGVuc2Vu bGltaXRz IERpYW5uZQ== IGVsZWdhbmNl IENvbnRyYWN0cw== YW5rZQ== T2Jq IHZpZ2lsYW5jZQ== IGNhc3RsZXM= IE5BRA== IEhvbG8= IGVtcGhhdGljYWxseQ== IFRpdHVz IFNlcnZpbmc= IFJpY2hpZQ== IFBpZ3M= NTY4 IGFuaW1vc2l0eQ== IEF0dHJpYnV0ZXM= IFVyaWVs TVE= bXlyYQ== IEFwcGxpY2FudA== IHBzeWNoaWF0cmlzdHM= IFZpag== IEFiYnk= YWdyZWU= UHVzaA== IGtXaA== aGliYQ== IGluY2l0ZQ== IFdlYXNsZXk= IFRheGk= bWluaXN0aWM= aHlwZXI= IEZhcm4= IDYwMQ== IE5hdGlvbndpZGU= RmFrZQ== OTUy IG1haXpl IGludGVyYWN0ZWQ= IHRyYW5zaXRpb25lZA== IHBhcmFzaXRpYw== IGhhcm1vbmlj IGRlY2F5aW5n IGJhc2VsZXNz bnNpY3M= IHRyYW5zcGlyZWQ= IGFidW5kYW50bHk= IEZvcmVuc2lj IHRyZWFkbWlsbA== IEphdg== YWJhbmQ= IHNzaGQ= IGZyb250bWFu IEpha2FydGE= b2xsZXI= ZHJvcHM= IFNFUlZJQ0VT cm9tcHR1 b3BoaWNhbA== aG9zcGl0YWw= YmxlZG9u NjQ1 IG1pZHJhbmdl IEVWRU5U Y3VsYXRlZA== cmF3bGVk IHBlcmNoZWQ= IG92ZXJib2FyZA== IFBlZWw= IFB3cg== IENhcnRo IENPTVBMRQ== Y29l c2hhbGw= IGRldGVycmVuY2U= TUVUSE9E IEFic2VudA== TUVO IHNpbGw= IExFVkVM WW9yaw== IHNpbm5lcnM= IE9QRUM= IE51cg== IERlc2lnbnM= c2VsZWN0aW9u IHVud29ydGh5 Q0hB IHN0cmVuZ3RoZW5z ODgz ZWRseQ== IHNsaWNpbmc= IG1hbG51dHJpdGlvbg== IGZpbG1tYWtpbmc= IFBvbGs= dXJhdGVk IDQyMQ== YnJlYWtlcnM= ISci IHdldGxhbmRz IERpc2NyaW1pbmF0aW9u IGFsbG93YWJsZQ== IHN0ZWVyZWQ= IFNpY2lseQ== U0FN IG11c3RhY2hl IG1pZHM= IGNsaXBwZWQ= IGNpcmN1bGF0ZQ== IGJyaXR0bGU= IEJ1aWxkaW5ncw== cmFpc2Vk IFJvdW5kdXA= IHdlYWx0aGllcg== IG92ZXJ3cml0ZQ== IG92ZXJwb3dlcmVk IEdlcnJhcmQ= c2l0ZXM= UERBVEVE IGFjdXRlbHk= IEdhbWJsZQ== IHBpbQ== IEt1cw== VHlwaWNhbGx5 RGVwbG95 IE1vcm9jY2Fu cG90aW9u Y29tYmU= IHZpZ2lsYW50ZQ== IDM2Mw== U3Rldw== IEJhZ2c= IHJlc2lkZWQ= IFNwbw== IHJlbW5hbnQ= IGVtcHRpbmVzcw== YnJhaW5lcg== IG91dHBhdGllbnQ= cHJpb3JpdHk= IGxlcHRpbg== IFBheXRvbg== IEdsZWFtaW5n IFNoZWQ= IFBvbG8= IE1vcm1vbmlzbQ== cmVzdHJpY3RlZA== YXJsYW5l d3g= IGNyZWF0aW5l IEFub24= IFNUVUQ= IEpVTA== IFRlZQ== NTI4 MDg5 IGhhdGNoZWQ= RGlzcGF0Y2g= IENvbXBvc2l0ZQ== IDQ1MQ== cHVmZg== IFhDT00= IE9ybg== IFRIQU5L RU5ERUQ= IEFzaGV2aWxsZQ== IMOc IG1hbmdv IFNsaWdodGx5 d29ybGRseQ== IFdhbmRlcg== IEV4cGFuZA== IENocg== TWlzdA== IG9ydGhvZG94eQ== IFVORVNDTw== cmVnYXRl RWxzZXdoZXJl a2ll aXJsZWQ= IHRvcHBsZQ== IGFkb3B0aXZl IExlZ3M= ZHJlc3M= IFNhZ2Fu YmFyZQ== IEdsb3U= Q3J1bmNo IGhlbHBlcnM= IGNocm9uaWNhbGx5 IEh1bWE= MTAwMDA= IGFjY29tbW9kYXRpbmc= 5LqU IHdyaW5rbGVz IGRvZGdlZA== Zm91cnRo IHByZWNvbg== IGNvbXByZXNzb3I= IEthcmU= IGV2aWN0 IFdhcndpY2s= aW1hcg== IG1vZGVybml6YXRpb24= IGJhbmR3YWdvbg== IHJlZnV0ZWQ= IG5ldHRlZA== IE5hcGxlcw== IEdlbmll cGVyb3Jz IGZpZWxkZWQ= IGRlcmU= IFBhcmFibGVz bGVlcw== IHRyb3V0 YXNwZXJz IG5paGls IGhhcHBpZXN0 IGZsb3BweQ== IExvZnQ= IEhlYXJk IHVuaXNvbg== IGx1Zw== IFJlZG1vbmQ= Y2xhc3NpYw== U3VwcG9ydGVycw== U0hJUA== R01U IGZ1ZWxsZWQ= 55A= IGRk IEVtaW5lbQ== IDE4OTc= TllTRQ== IHNlY3JldGFyaWVz IEZJQQ== IENhbmF2ZXJhbA== RmF2b3JpdGU= IHBvbXA= IGRldGFpbmVl ZXJzaGlw YWltb24= aW91cg== IEFwZXg= IHBsYW50YXRpb25z YW1pYQ== YWNpb24= UnVzdA== IHRvd2Vk IFRydWx5 NTc3 IHNoZWx0ZXJlZA== cmlkZXI= V28= IGxhaXI= IEludGVsbGlnZW50 aW1wcm92ZQ== bWF0aWNhbGx5 IGV0aXF1ZXR0ZQ== YWRyYQ== YWxsbw== IEp1bm8= YW55dGhpbmc= IFN0cnVnZ2xl IFByZWRpY3Q= IEdyaW1lcw== IEFNRVJJQ0E= Y3R4 IFNpdHVhdGlvbg== V09PRA== IHNvbHVibGU= bWVpZXI= IGludG9sZXJhYmxl YW5nZXJpbmc= IHVuaW50ZXJydXB0ZWQ= IHRvb2x0aXA= IGludGVycm9nYXRlZA== IGd1bm5lZA== IFNuZWFr 5q2m IHRldGhlcg== IGNydW1ibGU= TGVucw== IGNsdXN0ZXJlZA== IFN5bA== IEhhc2Fu IGR5c3RvcGlhbg== d2FuYQ== IGpveXN0aWNr IFRoaWI= YW1tdQ== VG9tb3Jyb3c= NTQ2 IG92ZXJjYW1l IG1pbmltaXplZA== Y2VwdG9y UnVubmVy RU5HVEg= IEJyZW5kYQ== IEFjaGlldmVtZW50cw== IHRvcmNoZXM= IHJhcHBvcnQ= IEludmVzdGlnYXRvcg== IEhhbmRsaW5n cmVsYXRpb24= Z3JleQ== ODE1 IGtjYWw= IENvbW1hbmRz ZHE= IGN1cmxz IGJlYXJlcg== IGN5bmljaXNt aXRyaQ== IFVzZWZ1bA== QmVl RENT IGFicmFz UHJhY3Q= QklMSVRJRVM= NzEy IGRlYnVnZ2Vy IGRlYnRvcg== IExpYQ== IEtlcnM= IGV4YWNlcmJhdGU= IFN0YWN5 IEJsYW5k IFNjZW5lcw== IGJyYW5jaGluZw== 4paI4paI4paI4paI4paI4paI4paI4paI YXBlYWtl IHNhbHNh IG1pc2hhbmQ= IEtvbmFtaQ== IE5pYg== IGFuZWNkb3Rl IGFncmVlYWJsZQ== z4k= IE5hdGhhbmllbA== IEhlaXNtYW4= IEJld2FyZQ== IDE4ODY= c3BlY3RpdmU= Njkx NTIy IGluaGliaXRz IGhhc2hpbmc= IDE4ODk= 5bCG dmljaA== UHVyZQ== IHNvbGlkbHk= IGFzcGlyaW4= aW1hcnU= IHN0cmVldGNhcg== IFVDUw== IEp1ZGQ= IGZsYXNoYmFja3M= cGlucw== IDE0NDA= IFVOSENS IFN5bXB0b21z VElU NTM4 RnJh JSk7 IG9veg== IGN1cmZldw== IGNhbG1lZA== IHBhcnRpY2lwYXRlcw== VGVY IG5vbnNlbnNpY2Fs IGZ1bGxiYWNr IERlTA== bW9ua2V5 aGFyaQ== IG1ldGFib2xpdGVz IGxvb3RlZA== IEFMV0FZUw== IEJDQw== THQ= b2NoZXQ= Qm9uZQ== IHZldG9lZA== IGdjYw== IENMSUNL IDE4ODg= c2Fm IHN0aWZmbmVzcw== IGxvd2x5 IEdlaA== dmVyc29u b3JzZXQ= IHVuZm9yZXNlZW4= IGFuZXN0aGVzaWE= IE9wdGljYWw= IHJlY29uc3RydWN0ZWQ= IFR1cA== c2hvd3M= TkVXUw== IE5ld3NwYXBlcg== IEFTQQ== dGVyYQ== TnVtYmVycw== IGluZXhwbGljYWJsZQ== 15E= IGhhcmRuZXNz dW50YXJpbHk= IEFjZXI= Z3JhZGllbnQ= QVJESVM= IHdvb2RsYW5k IG1ldGFwaG9ycw== IFdlbWJsZXk= IFBhdmVs cGhpbGlz IHJld3JpdGluZw== IHBlcmNlcHR1YWw= IDEwNzA= d29ybXM= IERvd25z IHVuc3VycHJpc2luZ2x5 IHRhZ2dpbmc= ZmxhbWU= IGxpdHJlcw== IGJvdW5jZXM= IEJhYmU= c2h1dA== IG92ZXJkb3Nlcw== IFNoZWlsYQ== IENoYXU= IEJsZXNz Q2FwdHVyZQ== IFNpZ25pZmljYW50 IFNjaW9u IDM4OQ== IE1jSA== IFRpdGFuaXVt IE1lYWw= YW1lZGE= YWdlbnRz YWdncmVzc2l2ZQ== QmlsbHk= NzYz IFNheWluZw== REVSUg== aXRvbmU= Q29sbGlucw== Qm91bmQ= IGJvbHRlZA== IERNQ0E= OTUz IHVuaXF1ZW5lc3M= IGVwaWdlbg== dW5jaQ== YW50YW0= IHJlY2tvbmluZw== Y2hhaXJz T0dS IFNlbmVnYWw= IDE4NjI= cmVsZXZhbnQ= IMKv IHBoYXJtYWNpZXM= IEdlcmFs dmllcg== WWFu T1JQRw== IHJhYmlk YmVuZGluZw== IFVOSVRFRA== IDQ2NQ== QXNzZW1ibHk= IHdlZXA= IGJlaGVzdA== IE1vdGhlcnM= IEphY2U= aGlk IHdoaXJsd2luZA== IFVOSVZFUlM= IHV0b3BpYW4= IGtpZG5hcA== UGhpbGlwcA== S2lu ODkz IGxpdmVzdHJlYW0= IE1JU1M= IHN1YnZlcnNpdmU= IFRlY2huaXF1ZXM= IEpVU1RJQ0U= IEJBU0U= IDM4Nw== IGFzc2FpbGFudHM= IEhhcmRjb3Jl IHNwcmlua2xlZA== IFBzZQ== 6Zo= cHJpbnRlZA== IEhhdQ== T1JHRQ== IFRPVVI= IGxhY2Vk IGl0Y2g= R2l2aW5n IHBvcnRlZA== Nzgx Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8= YnJlZWRpbmc= IGxvZ2dlcg== IEhPTA== aW5uaWU= Rmlyc3RseQ== IGVtYnJ5b25pYw== IGRlbGVnYXRlZA== cGFp T0lM IGNlbnRyYWxseQ== IFJ4 IFNjb3V0aW5n RHV0Y2g= IGhlcmVkaXRhcnk= IENydWlzZXI= c2F0 NTI5 IE1hcnJpb3R0 b3RoZXJtYWw= IHByb2hpYml0aW9ucw== RWFybg== IFN0YWI= IENvbGxlZ2Vz IEJlbGllZg== c3RyZXRjaGVk IExI IEVudGl0eUl0ZW0= Q0lB IHVucmVt IGxhdXJlYXRl IGRlbm9taW5hdGlvbnM= c3VtbWFyeQ== aGxlcg== U3BlY3Q= IEtsYXVz IEJlYW5z IGluc3Vy IFBBWA== IGZpZWxkZXI= IFZldA== IFNwYXJyb3c= emll IFNR IE1vbmRheXM= IE9mZmxpbmU= IExlcm5lcg== IEV4dGVuc2lvbnM= SXJlbGFuZA== IHBhdHJvbmFnZQ== IGNvbnRyYXN0ZWQ= IE1hbmlh aGlydA== TW9zY293 IGNvbmRlbW5z IEFuZ2U= IGNvbXBvc2luZw== IFBlcGU= IFBhZGRvY2s= IGhldGVyb2dlbmVpdHk= IGlkZW9sb2dpY2FsbHk= IGZpc2hlcw== IGN1cnNpbmc= IFJ1dGhlcmZvcmQ= IEZsb2F0aW5n IEFtZWxpYQ== VGVh U3lub3BzaXM= IHN0dW50cw== IGJlYWQ= IHN0b2NraW5n IE1JTEw= b2Jvb2s= bWFzc2l2ZQ== XDw= IGh1bXA= IFByZWZlcmVuY2Vz RW5naW5lRGVidWc= Z2Vpc3Q= IE5pZXRv b21ldmVy aXNoeQ== ZXZhbHVhdGU= Y29sb25pYWw= QWx0ZXJuYXRpdmU= IEdvUHJv IFZvcnRleA== IE5FVFdPUks= YW5za3k= U2VjdXJl IFRocnVzdA== U25ha2U= IHBhcmNlbHM= IHNhbXVyYWk= IGFjdHJlc3Nlcw== TmFw TUY= aWZlcmF0aW9u QmVlcg== NTIz IElseQ== b2ludG1lbnQ= UGluZw== IHN0cmlwZWQ= IE1lbGxvbg== b3NzZXNzaW9u IG5ldXRyb24= ZW5kaXVt IGFwaA== IEZsYXZvcmluZw== IDM4Mw== IHJlc3BvbnNpdmVuZXNz IEppbmRhbA== IEhpdGNoY29jaw== RGVudmVy IERSQUdPTg== c21hbnNoaXA= IER1cGw= IHNseQ== IHdlYmNhbQ== IFR3YWlu IERhcmxpbmc= aWxpYXRl Y29uc3VtZXI= RElU IG5hbWVzYWtl IHVub3J0aG9kb3g= IGZ1bmVy IFBMb1M= IENPTlRST0w= b3p5Zw== b2dsb2Jpbg== RkFDRQ== RVJH IERpYQ== IEZpZXN0YQ== Y2VsZQ== MDM0 IGVuY2xhdmU= 4pas4pas b25lbWVudA== YWxpc3Q= TWFuZA== IGhvbWVncm93bg== IEZhbmN5 IGNvbmNlcHRpb25z IENvbnRhaW5z dXJlZW4= IHJlaXRlcmF0ZQ== IG1lYWdlcg== IGluc3RhbGxtZW50cw== U3Bhd24= NjI3 IHBob3RvYw== IENhYnJlcmE= IFJvc2VudGhhbA== IExhbnNpbmc= aXNuZXI= IGludmVzdHM= IFVGT3M= RVhQ SGFyZHdhcmU= IHRyYWdpY2FsbHk= IGNvbmNlZGVz aWVmdA== Y2hhbQ== Ym9yZ2g= IFNjaHI= IE1lbGFuaWU= IEhveQ== IHZpc2l0YXRpb24= IGlkaW9zeW5jcg== IGZyYWN0aW9ucw== IGZvcmVza2lu b2Jvcw== IHBvYWNoaW5n IFZJRVc= IHN0aW11bGF0ZXM= IEdvcms= Y2Fub24= TUlD IE5lbWVzaXM= IEluZHJh IERNVg== IDUyOQ== IGluc3BlY3Rpbmc= IGdyYW5kbWE= IFdoZWRvbg== IFNoYW50 IFB1cmc= aWthbg== IFRlZw== IENMUg== emFj VmljdG9yaWE= IFZlcmlmeQ== aW9uaWNz IHBhcnR5aW5n IE1vdQ== Y29sb3Vy IHRlc3RpbW9uaWVz bGF0aW9ucw== IHByZXNzdXJpbmc= aGlybw== YWNlcnM= IGZpZA== YW5nbGVy IENTSQ== IGhlcmVhZnRlcg== IGRpc3NpZGVudHM= cmVwb3J0aW5n aXBoYW55 Y2hldg== IHNvbGl0dWRl IGxvYmU= IGluZGlz IGNyZWRlbnRpYWw= cmVjZW50 YWR1bHQ= IE5pcnZhbmE= IEZyYW5jaGlzZQ== TGF5ZXI= SHlw IEJlcmtzaGlyZQ== IHdpbGxz dGlm IHRvdGVt IEp1ZGFo cmVwYWly SW5zdGFudA== NTQ4 IGVtYmFzc2llcw== IGJvdHRsZW5lY2s= IGJvdW50 IHR5cGV3 IEFsdmlu amluZw== aW1pbGFy UnVzaA== IGJyaW0= IEhFTFA= QWlt XSc= IHBhc3NpdmVseQ== IGJvdW5kZWQ= IFJhdGVk IGNyaW1pbmFsaXR5 IGJpb21hcms= IGRpc3BhdGNoZXI= IFRvd2FyZHM= ICsrKw== cmlnaHRlb3Vz ZnJvZw== IFBhbmM= Q2FydGVy MDMy 5qmf IHVsdHJhdmlvbGV0 IExpY2Vuc2Vk IFRhdGE= IEJsZXNzaW5n IEdBTQ== IGNoZW1pY2FsbHk= IFNlYWY= IFJFTEU= IE1lcmNlbmFyeQ== Y2FwaXRhbGlzdA== IGZvcm11bGF0aW9ucw== IGFubmloaWxhdGlvbg== IFZlcmI= IEFyZ29u IHVubG9hZGVk IG1vcnBoZWQ= IGNvbnF1ZXJpbmc= YmFja2Vy SUVMRA== IHRoZWZ0cw== IGZyb250cnVubmVy IFJveWFsZQ== IEZ1bmRhbWVudGFs ZWxpZ2h0 Q2hpcA== bmVjZXNzYXJ5 YXlu IFNsaXA= IDQ0OA== Y2VybmVk UGF1c2U= IHNob2NraW5nbHk= IEFCVg== IGNvbXBvc3VyZQ== NzMz IE1vdG9yc3BvcnQ= YWhpbWU= TXVycmF5 TWFjaA== IGdyaWRz IGRlYmlhbg== IGZ1cnRoZXJtb3Jl IGRleHRlcml0eQ== IENvbGxlY3Rpb25z b3Nsb3Y= aWxhZ2U= Ymo= IE1vbnRlbmVn IHN0cnV0Q29ubmVjdG9y IG1hc3NhY3Jlcw== IGJyaWVmcw== ZmV0Y2hlZA== dXZpYW4= b2xpdGlvbg== RmFpbHVyZQ== ZW1vbmlj IGZsYXJlZA== IGNsYWltYW50 IGN1cmVz IGdpdmVhd2F5cw== IFN1YnN0YW5jZQ== YWxpb25z IGNyaW5nZQ== IEt1bA== IGFyaXN0b2NyYWN5 IFVsc3Rlcg== b2xhdGVk aG91c2luZw== IE1JUw== IGdsYXJlZA== IFdpbGhlbG0= bmVlZHM= bGFtYmRh YnVpbGRlcnM= IFZJUw== IHJhZGlhdG9y IEdob3N0YnVzdGVycw== IDQzNg== YWN0dWFs IGhlcmRz w6dh d2F0Y2hpbmc= IGNvdW50ZXJpbmc= Q2hhcmdl IGNoYXJyZWQ= IHdhcmhlYWRz IGlvZGluZQ== IE1hY3k= MDQx IGRlcGFydHVyZXM= IFNpbnM= IGR5ZWQ= IENvbmNlcHRz Z2Fkbw== NzEz IHF1b3RhdGlvbnM= IGdpc3Q= IENocmlzdHk= IGFudGlnZW4= IEhlbXA= IERyYXdu IEJhcmc= ZXp2b3Vz IHBhdGVybml0eQ== IGFyZHU= IEFuY2hvcmFnZQ== IFJpaw== IG92ZXJsb2FkZWQ= IFVzZXJuYW1l IFRhbW15 IE5hdQ== IENlbGx1bGFy IHdhbmluZw== IHJvZGVudA== IFdvcmNlc3Rlcg== aWx0cw== IFRhZA== IGR3ZWxsaW5ncw== IGJ1bGxpc2g= NDMx IHJldGFsaWF0ZQ== IG1pZ3JhaW5l IENoZXZyb24= Q0hFQ0s= IGRvbmtleQ== Y3JpbQ== U1BB IEFuYWxvZw== IG1hcnF1ZWU= IEhhYXM= Qmly IEdERFI= IERvd25sb2Fkcw== IHdpbGxwb3dlcg== IEZvcnRo IFJlY29yZGVk IGltcG9zc2liaWxpdHk= IExvZ2dlZA== IEZyYW5rcw== IFJhdHQ= aW5pdGlvbnM= IGNsZWFuZXJz IHNvcmVseQ== IGZsaWNrZXJpbmc= IEV4YW1pbmF0aW9u Y2F0Y2hpbmc= YWxsb3dlZW4= TXNn IGR1bm5v RmE= IGR5c3Bo Y3Jhenk= LicnLg== IG1haW5saW5l IGNz IHB0cg== IFdhbGx5 aWd1bg== OTUx IEJpZ2Zvb3Q= ZmlnaHRz IHJldHJpZXZpbmc= SnI= IGR1cGxpY2F0aW9u IEV4cGxhbg== IHJlbGF0aW9uYWw= IHF1YWludA== IGJpc2N1aXRz IGFkbw== IHNodWRkZXI= IGFudGlkb3Rl Ymxvb2RlZA== a3No IHNhdWNlcw== IHJlaW52ZXN0 IGRpc3BlbnNhcnk= IERpdmVy IDkwMDA= c3R1ZGVudA== IGluc2VwYXI= ZXNjYXA= IHRvZGRsZXJz IEdQSU8= IEFzc2lnbm1lbnQ= aGVhZGVycw== IGxhY2tsdXN0ZXI= IGFiYWNr OTU2 IHRvb2xiYXI= NzQ1 IG91c3Q= IGNvbnRlbXBsYXRpb24= IFBSRVNJREVOVA== IDQ1OA== PT09PT09 IGd1YXJhbnRlZWluZw== IEhlaXN0 IENhbm5lcw== mb0= IGNvbGxhYm9yYXRvcg== IEFtcA== IGdvdQ== IFNIQUxM c3Rvcmllcw== Nzgz IG1vYmlsaXplZA== IGJyb29k IExV IPCfkQ== IHJlZmlu IEFudGhyb3BvbG9neQ== dmluZA== aWxsaQ== IHdhcnJhbnRpZXM= IEJhYmVs IHN3YXRo IGNhY2hlcw== IGFudGFnb25pc3Rz YXJ0aWZhY3Rz IGhvdGx5 IFN0YXJ0cw== IEfDtg== emFn ISEhISE= IHNjb3VyZ2U= IGNvbnNwaXJpbmc= cnVpdHM= cmV2ZXJzZQ== IFNoZWVu IEplc3VpdA== IEdpb3Zhbm5p YWRpZXM= IGJ1dHRvY2tz ZWFyY2hlcg== YWNhbg== IHZvbGxleWJhbGw= IHNocm91ZGVk IHNjb3JlYm9hcmQ= YmF0cw== IElQTQ== IGFzc2Vz IGRlcmVndWxhdGlvbg== IFRlbGVncmFt IFJlYm9vdA== IDcwMDA= IENhbmFyeQ== IGtlcm5lbHM= IEZyYW7Dp29pcw== IER1ZmY= IFBvbg== IExlaWNh IEdhcm1pbg== IG9ycGhhbnM= IENsYXVkaWE= IGNhbGVuZGFycw== IExlaWxhbg== ZW50bw== Um9ja2V0 IGJydW5jaA== IEhhd2tpbmc= YWluZXJz IHNlbnNpYmlsaXRpZXM= IGtX IEthbmQ= IHJlY2xhaW1lZA== IGludGVyZXN0aW5nbHk= 16k= cm9teQ== Sk0= IEVuaGFuY2VtZW50 YnVzaA== U2tpcA== IHJhcHBlcnM= IGdhemluZw== cGVkaWE= YXRobG9u UmV2b2x1dGlvbg== IHNuaXBlcnM= IHJldmVydGVk IGNvbmdsb21lcmF0ZQ== VGVycnk= Nzk0 IGhhcnNoZXI= IGRlc29sYXRl IEhpdG1hbg== Q29tbWlzc2lvbg== ICgv 4oCmLiI= Q29tcGFy IGFtcGxpZmljYXRpb24= b21pbmF0ZWQ= IHJlZ3Jlc3M= IENvbGxpZGVy IGluZm9ybWFudHM= IGdhemVk -! 50257 ICA= ICAg ICAgIA== ICAgICA= ICAgICAg ICAgICAgIA== ICAgICAgICA= ICAgICAgICAg ICAgICAgICAgIA== ICAgICAgICAgICA= ICAgICAgICAgICAg ICAgICAgICAgICAgIA== ICAgICAgICAgICAgICA= ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIA== ICAgICAgICAgICAgICAgICA= ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIA== ICAgICAgICAgICAgICAgICAgICA= ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIA== ICAgICAgICAgICAgICAgICAgICAgICA= ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIA==`},pVI={explicit_n_vocab:50257,pat_str:"'s|'t|'re|'ve|'m|'ll|'d| ?\\p{L}+| ?\\p{N}+| ?[^\\s\\p{L}\\p{N}]+|\\s+(?!\\S)|\\s+",special_tokens:{"<|endoftext|>":50256},bpe_ranks:"! 0 IQ== Ig== Iw== JA== JQ== Jg== Jw== KA== KQ== Kg== Kw== LA== LQ== Lg== Lw== MA== MQ== Mg== Mw== NA== NQ== Ng== Nw== OA== OQ== Og== Ow== PA== PQ== Pg== Pw== QA== QQ== Qg== Qw== RA== RQ== Rg== Rw== SA== SQ== Sg== Sw== TA== TQ== Tg== Tw== UA== UQ== Ug== Uw== VA== VQ== Vg== Vw== WA== WQ== Wg== Ww== XA== XQ== Xg== Xw== YA== YQ== Yg== Yw== ZA== ZQ== Zg== Zw== aA== aQ== ag== aw== bA== bQ== bg== bw== cA== cQ== cg== cw== dA== dQ== dg== dw== eA== eQ== eg== ew== fA== fQ== fg== oQ== og== ow== pA== pQ== pg== pw== qA== qQ== qg== qw== rA== rg== rw== sA== sQ== sg== sw== tA== tQ== tg== tw== uA== uQ== ug== uw== vA== vQ== vg== vw== wA== wQ== wg== ww== xA== xQ== xg== xw== yA== yQ== yg== yw== zA== zQ== zg== zw== 0A== 0Q== 0g== 0w== 1A== 1Q== 1g== 1w== 2A== 2Q== 2g== 2w== 3A== 3Q== 3g== 3w== 4A== 4Q== 4g== 4w== 5A== 5Q== 5g== 5w== 6A== 6Q== 6g== 6w== 7A== 7Q== 7g== 7w== 8A== 8Q== 8g== 8w== 9A== 9Q== 9g== 9w== +A== +Q== +g== +w== /A== /Q== /g== /w== AA== AQ== Ag== Aw== BA== BQ== Bg== Bw== CA== CQ== Cg== Cw== DA== DQ== Dg== Dw== EA== EQ== Eg== Ew== FA== FQ== Fg== Fw== GA== GQ== Gg== Gw== HA== HQ== Hg== Hw== IA== fw== gA== gQ== gg== gw== hA== hQ== hg== hw== iA== iQ== ig== iw== jA== jQ== jg== jw== kA== kQ== kg== kw== lA== lQ== lg== lw== mA== mQ== mg== mw== nA== nQ== ng== nw== oA== rQ== IHQ= IGE= aGU= aW4= cmU= b24= IHRoZQ== ZXI= IHM= YXQ= IHc= IG8= ZW4= IGM= aXQ= aXM= YW4= b3I= ZXM= IGI= ZWQ= IGY= aW5n IHA= b3U= IGFu YWw= YXI= IHRv IG0= IG9m IGlu IGQ= IGg= IGFuZA== aWM= YXM= bGU= IHRo aW9u b20= bGw= ZW50 IG4= IGw= c3Q= IHJl dmU= IGU= cm8= bHk= IGJl IGc= IFQ= Y3Q= IFM= aWQ= b3Q= IEk= dXQ= ZXQ= IEE= IGlz IG9u aW0= YW0= b3c= YXk= YWQ= c2U= IHRoYXQ= IEM= aWc= IGZvcg== YWM= IHk= dmVy dXI= IHU= bGQ= IHN0 IE0= J3M= IGhl IGl0 YXRpb24= aXRo aXI= Y2U= IHlvdQ== aWw= IEI= IHdo b2w= IFA= IHdpdGg= IDE= dGVy Y2g= IGFz IHdl ICg= bmQ= aWxs IEQ= aWY= IDI= YWc= ZXJz a2U= ICI= IEg= ZW0= IGNvbg== IFc= IFI= aGVy IHdhcw== IHI= b2Q= IEY= dWw= YXRl IGF0 cmk= cHA= b3Jl IFRoZQ== IHNl dXM= IHBybw== IGhh dW0= IGFyZQ== IGRl YWlu YW5k IG9y aWdo ZXN0 aXN0 YWI= cm9t IE4= dGg= IGNvbQ== IEc= dW4= b3A= MDA= IEw= IG5vdA== ZXNz IGV4 IHY= cmVz IEU= ZXc= aXR5 YW50 IGJ5 ZWw= b3M= b3J0 b2M= cXU= IGZyb20= IGhhdmU= IHN1 aXZl b3VsZA== IHNo IHRoaXM= bnQ= cmE= cGU= aWdodA== YXJ0 bWVudA== IGFs dXN0 ZW5k LS0= YWxs IE8= YWNr IGNo IGxl aWVz cmVk YXJk 4oA= b3V0 IEo= IGFi ZWFy aXY= YWxseQ== b3Vy b3N0 Z2g= cHQ= IHBs YXN0 IGNhbg== YWs= b21l dWQ= VGhl IGhpcw== IGRv IGdv IGhhcw== Z2U= J3Q= IFU= cm91 IHNh IGo= IGJ1dA== IHdvcg== IGFsbA== ZWN0 IGs= YW1l IHdpbGw= b2s= IHdoZQ== IHRoZXk= aWRl MDE= ZmY= aWNo cGw= dGhlcg== IHRy Li4= IGludA== aWU= dXJl YWdl IG5l aWFs YXA= aW5l aWNl IG1l IG91dA== YW5z b25l b25n aW9ucw== IHdobw== IEs= IHVw IHRoZWly IGFk IDM= IHVz YXRlZA== b3Vz IG1vcmU= dWU= b2c= IFN0 aW5k aWtl IHNv aW1l cGVy LiI= YmVy aXo= YWN0 IG9uZQ== IHNhaWQ= IC0= YXJl IHlvdXI= Y2M= IFRo IGNs ZXA= YWtl YWJsZQ== aXA= IGNvbnQ= IHdoaWNo aWE= IGlt IGFib3V0 IHdlcmU= dmVyeQ== dWI= IGhhZA== IGVu IGNvbXA= LCI= IElu IHVu IGFn aXJl YWNl YXU= YXJ5 IHdvdWxk YXNz cnk= IOKA Y2w= b29r ZXJl c28= IFY= aWdu aWI= IG9mZg== IHRl dmVu IFk= aWxl b3Nl aXRl b3Jt IDIwMQ== IHJlcw== IG1hbg== IHBlcg== IG90aGVy b3Jk dWx0 IGJlZW4= IGxpa2U= YXNl YW5jZQ== a3M= YXlz b3du ZW5jZQ== IGRpcw== Y3Rpb24= IGFueQ== IGFwcA== IHNw aW50 cmVzcw== YXRpb25z YWls IDQ= aWNhbA== IHRoZW0= IGhlcg== b3VudA== IENo IGFy IGlm IHRoZXJl IHBl IHllYXI= YXY= IG15 IHNvbWU= IHdoZW4= b3VnaA== YWNo IHRoYW4= cnU= b25k aWNr IG92ZXI= dmVs IHF1 Cgo= IHNj cmVhdA== cmVl IEl0 b3VuZA== cG9ydA== IGFsc28= IHBhcnQ= ZnRlcg== IGtu IGJlYw== IHRpbWU= ZW5z IDU= b3BsZQ== IHdoYXQ= IG5v ZHU= bWVy YW5n IG5ldw== LS0tLQ== IGdldA== b3J5 aXRpb24= aW5ncw== IGp1c3Q= IGludG8= IDA= ZW50cw== b3Zl dGU= IHBlb3BsZQ== IHByZQ== IGl0cw== IHJlYw== IHR3 aWFu aXJzdA== YXJr b3Jz IHdvcms= YWRl b2I= IHNoZQ== IG91cg== d24= aW5r bGlj IDE5 IEhl aXNo bmRlcg== YXVzZQ== IGhpbQ== b25z IFs= IHJv Zm9ybQ== aWxk YXRlcw== dmVycw== IG9ubHk= b2xs IHNwZQ== Y2s= ZWxs YW1w IGFjYw== IGJs aW91cw== dXJu ZnQ= b29k IGhvdw== aGVk ICc= IGFmdGVy YXc= IGF0dA== b3Y= bmU= IHBsYXk= ZXJ2 aWN0 IGNvdWxk aXR0 IGFt IGZpcnN0 IDY= IGFjdA== ICQ= ZWM= aGluZw== dWFs dWxs IGNvbW0= b3k= b2xk Y2Vz YXRlcg== IGZl IGJldA== d2U= aWZm IHR3bw== b2Nr IGJhY2s= KS4= aWRlbnQ= IHVuZGVy cm91Z2g= c2Vs eHQ= IG1heQ== cm91bmQ= IHBv cGg= aXNz IGRlcw== IG1vc3Q= IGRpZA== IGFkZA== amVjdA== IGluYw== Zm9yZQ== IHBvbA== b250 IGFnYWlu Y2x1ZA== dGVybg== IGtub3c= IG5lZWQ= IGNvbnM= IGNv IC4= IHdhbnQ= IHNlZQ== IDc= bmluZw== aWV3 IFRoaXM= Y2Vk IGV2ZW4= IGluZA== dHk= IFdl YXRo IHRoZXNl IHBy IHVzZQ== IGJlY2F1c2U= IGZs bmc= IG5vdw== IOKAkw== Y29t aXNl IG1ha2U= IHRoZW4= b3dlcg== IGV2ZXJ5 IFVu IHNlYw== b3Nz dWNo IGVt ID0= IFJl aWVk cml0 IGludg== bGVjdA== IHN1cHA= YXRpbmc= IGxvb2s= bWFu cGVjdA== IDg= cm93 IGJ1 IHdoZXJl aWZpYw== IHllYXJz aWx5 IGRpZmY= IHNob3VsZA== IHJlbQ== VGg= SW4= IGV2 ZGF5 J3Jl cmli IHJlbA== c3M= IGRlZg== IHJpZ2h0 IHN5 KSw= bGVz MDAw aGVu IHRocm91Z2g= IFRy X18= IHdheQ== IGRvbg== ICw= IDEw YXNlZA== IGFzcw== dWJsaWM= IHJlZw== IEFuZA== aXg= IHZlcnk= IGluY2x1ZA== b3RoZXI= IGltcA== b3Ro IHN1Yg== IOKAlA== IGJlaW5n YXJn IFdo PT0= aWJsZQ== IGRvZXM= YW5nZQ== cmFt IDk= ZXJ0 cHM= aXRlZA== YXRpb25hbA== IGJy IGRvd24= IG1hbnk= YWtpbmc= IGNhbGw= dXJpbmc= aXRpZXM= IHBo aWNz YWxz IGRlYw== YXRpdmU= ZW5lcg== IGJlZm9yZQ== aWxpdHk= IHdlbGw= IG11Y2g= ZXJzb24= IHRob3Nl IHN1Y2g= IGtl IGVuZA== IEJ1dA== YXNvbg== dGluZw== IGxvbmc= ZWY= IHRoaW5r eXM= IGJlbA== IHNt aXRz YXg= IG93bg== IHByb3Y= IHNldA== aWZl bWVudHM= Ymxl d2FyZA== IHNob3c= IHByZXM= bXM= b21ldA== IG9i IHNheQ== IFNo dHM= ZnVs IGVmZg== IGd1 IGluc3Q= dW5k cmVu Y2Vzcw== IGVudA== IFlvdQ== IGdvb2Q= IHN0YXJ0 aW5jZQ== IG1hZGU= dHQ= c3RlbQ== b2xvZw== dXA= IHw= dW1w IGhlbA== dmVybg== dWxhcg== dWFsbHk= IGFj IG1vbg== IGxhc3Q= IDIwMA== MTA= IHN0dWQ= dXJlcw== IEFy c2VsZg== YXJz bWVyaWM= dWVz Y3k= IG1pbg== b2xsb3c= IGNvbA== aW8= IG1vZA== IGNvdW50 IENvbQ== aGVz IGZpbg== YWly aWVy 4oCU cmVhZA== YW5r YXRjaA== ZXZlcg== IHN0cg== IHBvaW50 b3Jr IE5ldw== IHN1cg== b29s YWxr ZW1lbnQ= IHVzZWQ= cmFjdA== d2Vlbg== IHNhbWU= b3Vu IEFs Y2k= IGRpZmZlcmU= IHdoaWxl LS0tLS0tLS0= IGdhbWU= Y2VwdA== IHNpbQ== Li4u IGludGVy ZWs= IHJlcG9ydA== IHByb2R1 IHN0aWxs bGVk YWg= IGhlcmU= IHdvcmxk IHRob3VnaA== IG51bQ== YXJjaA== aW1lcw== YWxl IFNl IElm Ly8= IExl IHJldA== IHJlZg== IHRyYW5z bmVy dXRpb24= dGVycw== IHRha2U= IENs IGNvbmY= d2F5 YXZl IGdvaW5n IHNs dWc= IEFtZXJpYw== IHNwZWM= IGhhbmQ= IGJldHdlZW4= aXN0cw== IERl b290 SXQ= IGVhcg== IGFnYWluc3Q= IGhpZ2g= Z2Fu YXo= YXRoZXI= IGV4cA== IG9w IGlucw== IGdy IGhlbHA= IHJlcXU= ZXRz aW5z IFBybw== aXNt IGZvdW5k bGFuZA== YXRh dXNz YW1lcw== IHBlcnNvbg== IGdyZWF0 cHI= IHNpZ24= IEFu J3Zl IHNvbWV0 IHNlcg== aGlw IHJ1bg== IDo= IHRlcg== aXJlY3Q= IGZvbGxvdw== IGRldA== aWNlcw== IGZpbmQ= MTI= IG1lbQ== IGNy ZXJlZA== ZXg= IGV4dA== dXRo ZW5zZQ== Y28= IHRlYW0= dmluZw== b3VzZQ== YXNo YXR0 dmVk IHN5c3RlbQ== IEFz ZGVy aXZlcw== bWlu IGxlYWQ= IEJs Y2VudA== IGFyb3VuZA== IGdvdmVybg== IGN1cg== dmVsb3A= YW55 IGNvdXI= YWx0aA== YWdlcw== aXpl IGNhcg== b2Rl IGxhdw== IHJlYWQ= J20= Y29u IHJlYWw= IHN1cHBvcnQ= IDEy Li4uLg== IHJlYWxseQ== bmVzcw== IGZhY3Q= IGRheQ== IGJvdGg= eWluZw== IHNlcnY= IEZvcg== IHRocmVl IHdvbQ== IG1lZA== b2R5 IFRoZXk= NTA= IGV4cGVy dG9u IGVhY2g= YWtlcw== IGNoZQ== IGNyZQ== aW5lcw== IHJlcA== MTk= Z2c= aWxsaW9u IGdyb3U= dXRl aWs= V2U= Z2V0 RVI= IG1ldA== IHNheXM= b3g= IGR1cmluZw== ZXJu aXplZA== YXJlZA== IGZhbQ== aWNhbGx5 IGhhcHA= IElz IGNoYXI= bWVk dmVudA== IGdlbmVy aWVudA== cGxl aWV0 cmVudA== MTE= dmVz cHRpb24= IDIw Zm9ybWF0aW9u IGNvcg== IG9mZmlj aWVsZA== IHRvbw== aXNpb24= IGluZg== IFo= dGhl b2Fk IHB1YmxpYw== IHByb2c= cmlj Kio= IHdhcg== IHBvd2Vy dmlldw== IGZldw== IGxvYw== IGRpZmZlcmVudA== IHN0YXRl IGhlYWQ= J2xs IHBvc3M= IHN0YXQ= cmV0 YW50cw== IHZhbA== IGlzcw== IGNsZQ== aXZlcnM= YW5j IGV4cGw= IGFub3RoZXI= IFE= IGF2 dGhpbmc= bmNl V2g= IGNoaWxk IHNpbmNl aXJlZA== bGVzcw== IGxpZmU= IGRldmVsb3A= aXR0bGU= IGRlcA== IHBhc3M= 44M= IHR1cm4= b3Ju VGhpcw== YmVycw== cm9zcw== IEFk IGZy IHJlc3A= IHNlY29uZA== b2g= IC8= IGRpc2M= ICY= IHNvbWV0aGluZw== IGNvbXBsZQ== IGVk IGZpbA== IG1vbnRo YWo= dWM= IGdvdmVybm1lbnQ= IHdpdGhvdXQ= IGxlZw== IGRpc3Q= IHB1dA== IHF1ZXN0 YW5u IHByb3Q= MjA= IG5ldmVy aWVuY2U= IGxldmVs IGFydA== IHRoaW5ncw== IG1pZ2h0 IGVmZmVjdA== IGNvbnRybw== IGNlbnQ= IDE4 IGFsbG93 IGJlbGll Y2hvb2w= b3R0 IGluY3Jl IGZlZWw= IHJlc3VsdA== IGxvdA== IGZ1bg== b3Rl IHR5 ZXJlc3Q= IGNvbnRpbg== IHVzaW5n IGJpZw== MjAx IGFzaw== IGJlc3Q= ICk= SU4= IG9wcA== MzA= IG51bWJlcg== aW5lc3M= U3Q= bGVhc2U= IGNh IG11c3Q= IGRpcmVjdA== IGds IDw= IG9wZW4= IHBvc3Q= IGNvbWU= IHNlZW0= b3JkaW5n IHdlZWs= YXRlbHk= aXRhbA== IGVs cmllbmQ= IGZhcg== IHRyYQ== aW5hbA== IHByaQ== IFVT IHBsYWNl IGZvcm0= IHRvbGQ= Ijo= YWlucw== YXR1cmU= IFRydW1w IHN0YW5k ICM= aWRlcg== IEZy IG5leHQ= IHNvYw== IHB1cg== IGxldA== IGxpdHRsZQ== IGh1bQ== IGk= cm9u MTU= IDE1 IGNvbW11bg== IG1hcms= IFRoZXJl IHdy IFRoYXQ= IGluZm9ybWF0aW9u d2F5cw== IGJ1cw== YXBw IGludmVzdA== bWU= IGhhcmQ= YWluZWQ= ZWFk IGltcG9ydA== IGFwcHJv IHRlc3Q= IHRyaQ== IHJlc3Q= b3NlZA== IGZ1bGw= IGNhcmU= IFNw IGNhc2U= T04= IHNr IGxlc3M= ICs= IHBhcnRpYw== IFBs YWJseQ== dWNr aXNoZWQ= Y2hu YmU= IGxpc3Q= YXRvcg== IHRvcA== IGFkdg== IEJl cnVjdA== IGRlbQ== cmF0aW9u bGluZw== Z3k= cmVlbg== Z2Vy IGhvbWU= IGxlZnQ= IGJldHRlcg== IGRhdGE= IDEx IGF0dGFjaw== IHByb2JsZQ== bGluZQ== YXJkcw== IGJlaA== cmFs IEhvdw== IFNoZQ== YXJnZQ== IC0t Oi8v IGJybw== IFBo YXRz IGJ1aWxk d3c= aWRlZA== YWlt YXNlcw== ZW5jeQ== IG1haW4= aW5lZA== IGluY2x1ZGluZw== IHs= IGdvdA== IGludGVyZXN0 IGtlZXA= IFg= IGVhcw== YWluaW5n IGNsYXNz 4oCm IE5v IHZhcg== IHNtYWxs YW1wbGU= QVQ= IGlkZQ== IFNv IHJlY2U= IHBvbGl0 IG1vdg== IHBsYW4= IHBlcmNlbnQ= aXZpbmc= IGNhbXA= IHBheQ== MTQ= c2M= aXNlZA== IHVudA== b25leQ== cGxveQ== PT09PQ== IGRpZG4= IEluZA== ZWxz ZXJ0YWlu IHBvcw== X19fXw== aXZlcg== IHByb2Nlc3M= IHByb2dyYW0= aWZpZWQ= IFJlcA== MTY= dXJv b2xvZ3k= YXR0ZXI= aW5h IG5hbWU= IEFsbA== IGZvdXI= IHJldHVybg== dmlvdXM= YnM= IGNhbGxlZA== IG1vdmU= IFNj aXJk IGdyb3Vw IGJyZQ== IG1lbg== IGNhcA== dGVu ZWU= IGRyaQ== bGVn aGVyZQ== dXRob3I= IHBhdA== IGN1cnJlbnQ= aWRlcw== IHBvcA== dG8= ZW50aW9u IGFsd2F5cw== IG1pbA== IHdvbWVu IDE2 IG9sZA== aXZlbg== cmFwaA== IE9y cm9y ZW50bHk= IG5lYXI= IEV4 cmVhbQ== c2g= IDE0 IGZyZWU= aXNzaW9u c3RhbmQ= IENvbg== YWxpdHk= dXNlZA== MTM= IGRlc2lnbg== IGNoYW5nZQ== IGNoYW5n IGJv IHZpcw== ZW1iZXI= IGJvb2s= cmVhZHk= IGtpbGw= MjU= cHBlZA== IGF3YXk= IGFibGU= IGNvdW50cnk= IGNvbnN0 YXJu IG9yZGVy QVI= aW9y aXVt b3J0aA== MTg= YWlsYWJsZQ== IHN3 IG1pbGxpb24= IDEz YXRpYw== dGVk IEdv IG9wZXI= ZW5n IHRoaW5n YWpvcg== Y29ub20= IENvbW0= IHdoeQ== dXJlZA== dXJhbA== IHNjaG9vbA== Ynk= IE1hcg== IGFmZg== IGRheXM= IGFubg== dXNo YW5l SWY= ZWc= IHByb2Y= IGhlYWx0aA== b3V0aA== QnV0 aW9uYWw= Liw= IHNvbA== IGFscmVhZHk= IDMw IGNoYXJhY3Q= SGU= IGZyaWVuZA== RVM= aWFucw== aWNsZQ== J2Q= IE9u IGxlYXN0 IHByb20= IGRy IGhpc3Q= aXRoZXI= IGVzdA== aXF1 MTc= c29u IHRlbGw= IHRhbGs= b2hu b2ludA== bGVjdGlvbg== QU4= IHVudGls YXVnaA== IGxhdGVy IHZl IHZpZXc= ZW5kaW5n aXZlZA== IHdvcmQ= d2FyZQ== IGNvc3Q= IGVub3VnaA== IGdpdmU= IFVuaXRlZA== IHRlY2hu YXJlbnQ= T1I= IHBhcg== IERy IDIwMTY= cmlzdA== ZXJpbmc= IMI= IGxhcmdl c2lkZQ== YWN5 Y2Nlc3M= IHdpbg== IGltcG9ydGFudA== IDE5OQ== IGRvZXNu IDE3 IGJ1c2luZXNz IGNsZWFy IHJlc2U= Iiw= dXJ5 IGVxdQ== YXN0ZXI= YWxm IEFtZXJpY2Fu bmVjdA== IGV4cGVjdA== aXZlcnNpdHk= IG9jYw== IEZs IGtpbmQ= IG1lYW4= IHBhc3Q= IGRldg== IGJhcw== bGV0 cmFmdA== IG9yZ2Fu IGRlbA== IHBlcmZvcm0= IHN0b3J5 IHNlYXNvbg== IENvbA== IGNsYWlt IGNhbWU= IHdpdGhpbg== IGxpbmU= IHByb2plY3Q= IEF0 IGNvbnRyb2w= ZW5kZWQ= IFN5 IGFpcg== aXphdGlvbg== ICo= bGV5 IG1vbmV5 aWRk WW91 Zm9y IGZhbWlseQ== IG1ha2luZw== IGJpdA== IHBvbGljZQ== IGhhcHBlbg== IHZlcnM= b255 dWZm IFdoZW4= IHNpdA== aWRlbw== bGY= aXNvbg== IHN1cmU= Z2lu IGFwcGVhcg== IGxpZ2h0 IGVz b2Y= IHdhdGVy IHRpbWVz bm90 IGdyb3c= IGNvbXBhbnk= IFRl b3dz IG1hcg== b3VyY2U= aW9s YXJt YnI= IGV4YW1wbGU= IGNvbmM= IGZvcmU= IFRv cHJv RU4= cmllcw== IDI1 IENhbg== bmV5 IGFjdHVhbGx5 IGV2ZXI= dXJpdHk= YWtlbg== YXBz IHRheA== IG1ham9y YW1h IG9mdGVu ZXJhbA== IGh1bWFu IGpvYg== aXN0ZXI= IGF2YWlsYWJsZQ== b2Ny ZW5u YWlk aXZpZA== IHJlY29yZA== PyI= IHNpbmc= IEFt aWRlbmNl IG5ld3M= c3Rlcg== IGVjb25vbQ== IGZvbGxvd2luZw== IEJy aXNpbmc= IGhvdXI= bW9zdA== dW1lbnQ= IHNleA== IGRlc2M= IGJlY29tZQ== IEVk IHRvb2s= IGhhdmluZw== IHByb2R1Y3Q= YXVsdA== QXM= YXJpbmc= IG1lYW5z IGhvcA== dW5l IGNobw== IGNlcnRhaW4= IG5vbg== IGRlYWw= MjQ= bGVtZW50 b2Np ZW5l IHNpZGU= IFBy IE1heQ== IHJlYXNvbg== dWVk Y2hlZA== dWxhdGlvbg== IGVsZWN0 IG9mZmljaWFs IHBvc3NpYmxl IGhvbGQ= YW5kcw== b3Rz IGNpdHk= b3JpZXM= IHNldmVy IGNoaWxkcmVu IG9uY2U= IGFjdGl2 bGVy IG5pZ2h0 aXRpb25z IEpvaG4= YXBl cGxheQ== IGRvbmU= IGxpbQ== IHdvcmtpbmc= IFByZXM= b3JsZA== ZWI= IENv IGJvZHk= YWlscw== dXRlcw== IE1y IHdoZXRoZXI= IGF1dGhvcg== cm9w IHByb3Blcg== IHNlZW4= KTs= IGZhYw== IFN1 IGNvbmQ= aXRpbmc= IGNvdXJzZQ== IH0= LS0tLS0tLS0tLS0tLS0tLQ== YWlnbg== IGV2ZW50 IGVuZw== IHBvdA== IGludGVybg== aWFt IHNob3J0 ZW1wdA== 44I= IEdvZA== aWxhcg== ODA= IG9yaWc= SVM= b3Vybg== YWJpbGl0eQ== aXRpdmU= IGRhbQ== IDEwMA== IHByZXNz IGRvaW5n IHByb3RlY3Q= cmluZw== IHRob3VnaHQ= IHF1ZXN0aW9u cmV3 IFdhcg== IHNldmVyYWw= IFN0YXRl IGdpdmVu IGZ1bmQ= IFR3 IHdlbnQ= YW5jZXM= d29yaw== cG9y bXk= NDA= IGFyZw== YXJ0bWVudA== dXN0b20= IHBvbGlj IG1lZXQ= IGNyZWF0 MjI= IFN0YXRlcw== IGdhbWVz cmF3 dXR1cmU= IHVuZGVyc3RhbmQ= dXJz IE9i bGlzaA== c3k= IG1ha2Vz IHdvbg== YWdvbg== IGh0dA== IGxvdmU= ZW50aWFs IGNvbXBsZXRl cGFy IElt QUw= IGFjY291bnQ= wqA= b3JlZA== dmVydA== IGlkZW50 IDIwMTU= IG90aGVycw== IE1pbg== aWJlcg== dmVyYWdl VGhlcmU= aXRpb25hbA== ZGQ= IHByb2I= IHlvdW5n IGFsb25n IGFjY29yZGluZw== IHlldA== IG1lbWJlcnM= IFdoYXQ= b2lk IE1hbg== QW5k IGFtb25n YWk= IGVtcGxveQ== IFJlcw== ID4= IGludm9s IGxvdw== YWY= IENhcg== IGhpZw== IE9uZQ== IFNlYw== aW5hdGlvbg== IGxpa2VseQ== IGFudA== YWdlZA== IFJ1c3M= IGJlbg== IHJlbGU= Rm9y YmFjaw== IE5vdA== IHByZXNpZGVudA== YmFsbA== IGFjY2Vzcw== aXZpZHVhbA== IERlbQ== IEV1cm8= NjA= IGtub3du aXJs IEdy IGVhcmx5 dXNl aWV0eQ== 4oCT IGZpZ2h0 IHNlbnQ= IHRvZGF5 IG1hcmtldA== Ii4= IGJhc2Vk IHN0cm9uZw== dXJ0aGVy IGRlYg== bWJlcg== IHByb2JsZW0= IGRlYXRo IHNvY2lhbA== aW1hdGU= QVM= b3J0dW4= IGNhbXBhaWdu ZXJ5 Q2g= IGV5 aWFsbHk= IG11cw== d2g= cG9z IGVy IHNhZg== IG1vbnRocw== aXJvbg== IHZpb2w= IGZpdmU= IHN0cmU= IHBsYXllcnM= aW5j YWxk eWVhcg== YXVu IHN1Y2Nlc3M= IHByZXNlbnQ= ZXJlbmNl IDIwMTQ= IHN1Z2c= IHBhcnRpY3VsYXI= IHRyeQ== IHN1Z2dlc3Q= IENocmlzdA== b25lcw== IHByaXY= MjM= IGNyaXQ= IGxhbmQ= IGxvY2Fs aWZ5 Mjk= IGF1dA== RUQ= IEd1 IG11bHQ= IHBvbGl0aWNhbA== IGFza2Vk IGZvcm1lcg== aXR0ZXI= cmlwdA== IGNsb3Nl IHByYWN0 IFlvcms= IGdldHRpbmc= IGFjcm9zcw== IGNvbWI= IGJlbGlldmU= IHo= IHRvZ2V0 IHRvZ2V0aGVy IENlbnQ= aXJj IGluZGl2aWR1YWw= IE1j Mjc= aXNr IEVuZw== IGZhY2U= IDI0 IHZhbHVl IGFyZWE= ZXY= IHdyaXQ= IFByZXNpZGVudA== IHZvdA== IGtleQ== IG1vbQ== cHV0 IGFueXRoaW5n IGV4cGVyaWVuY2U= YXR0bGU= IG1pbmQ= YWZm b21t IGZ1dHVyZQ== Z2Vk IGN1dA== IHRvdA== aXRjaA== IHZpZGVv IGludmVzdGln IG5ldA== IE15 cmljdA== aWVu Lik= IGltcHJv dGhvdWdo d2FyZHM= IGNvbm5lY3Q= IE1lZA== c2VsdmVz ZW5zaXZl bWI= b2Jlcg== YXRvcnM= QW4= IDUw IHJlZHU= cmVzZW50 IGFib3Zl IGZyZQ== IEV1cm9wZQ== c3c= IGFtb3VudA== IEFwcA== IGVpdGhlcg== IG1pbGl0 IGFuYWw= IGZhaWw= IEVu YWxlcw== IHNwZWNpYWw= IGJsYWNr SVQ= Y2hlcg== IGxvb2tpbmc= IGZpcmU= eW4= IGFsbW9zdA== b29u IHN0dWR5 IG1pc3M= Y2hlcw== cm93bg== IHRyZQ== IGNvbW11bml0eQ== IG1lZGlh IGZvb2Q= IGNvbWVz IFVuaXZlcnNpdHk= IHNpbmdsZQ== V2hhdA== dWx5 IGhhbGY= YWd1ZQ== aG9k IFJlcHVibGlj IHN0YXJ0ZWQ= IHF1aWNr b3Rv Ym9vaw== IGlzc3Vl aXRvcg== IGVsc2U= IGNvbnNpZGVy MjY= cm9kdQ== IHRha2Vu Mjg= OTk= IFdpdGg= IHRydWU= IHdh IHRyYWQ= IGFnbw== IG1lc3M= aWVm IGFkZGVk b2tl IGJhZA== IGZhdg== MzM= IHNpbWlsYXI= YXNr IERvbg== IGNoYXJhY3Rlcg== b3J0cw== IEhvdXNl IHJlcG9ydGVk IHR5cGU= dmFs aW9k IEhvd2V2ZXI= IHRhcmc= IGVudGlyZQ== cHBpbmc= IGhpc3Rvcnk= IGxpdmU= ZmZpYw== Li4uLi4uLi4= ZWRlcmFs IHRyeWluZw== IGRpc2N1c3M= IEhhcg== YWNlcw== bGlzaGVk IHNlbGY= b3Nw cmVzdA== IHJvb20= ZWx0 IGZhbGw= b2x1dGlvbg== IGV0 IHg= IGlzbg== IGlkZWE= Ym8= IHNvdW5k IERlcA== IHNvbWVvbmU= Y2lhbGx5 dWxseQ== IGZvYw== IG9iamVjdA== aWZ0 YXBlcg== IHBsYXllcg== IHJhdGhlcg== IHNlcnZpY2U= YXNoaW5n IERv IFBhcnQ= cnVn bW9u cGx5 IG1vcg== IG5vdGhpbmc= IHByb3ZpZGU= SUM= dW5n IHBhcnR5 IGV4aXN0 IG1hZw== NzA= IHJ1bA== IGhvdXNl IGJlaGluZA== IGhvd2V2ZXI= IFdvcmxk IHN1bQ== IGFwcGxpYw== IDs= IGZ1bmN0aW9u Z3I= IFBvbA== IGZyb250 MjAw IHNlcmllcw== IHRlbQ== IHR5cA== aWxscw== IG9wdA== IHBvaW50cw== IGJlbG93 aXR0ZWQ= IHNwZWNpZmlj IDIwMTc= dW1i IHJh IHByZXZpb3Vz IHByZXQ= cmVtZQ== IGN1c3RvbQ== IGNvdXJ0 IE1l IHJlcGw= IHdob2xl Z28= Y2Vy IHRyZWF0 IEFjdA== IHByb2JhYmx5 IGxlYXJu ZW5kZXI= IEFzcw== IHZlcnNpb24= bm93 IGNoZWNr IENhbA== UkU= bWluaXN0 T24= b3VyY2Vz IGJlbmVm IGRvYw== IGRldGVy IGVuYw== IHN1cGVy IGFkZHJlc3M= IHZpY3Q= IDIwMTM= IG1lYXM= dHI= IGZpZWxk V2hlbg== IHNpZ25pZmlj dWdl IGZlYXQ= IGNvbW1vbg== bG9hZA== IGJlZ2lu IGJyaW5n IGFjdGlvbg== ZXJtYW4= IGRlc2NyaWI= IGluZHVzdA== IHdhbnRlZA== cmllZA== bWluZw== IGF0dGVtcHQ= NDU= ZmVy IGR1ZQ== cmVzc2lvbg== IyM= IHNoYWxs IHNpeA== b28= IHN0ZXA= IHB1Yg== IGhpbXNlbGY= IDIz IGNvcA== IGRlc3Q= IHN0b3A= QUM= aWJpbGl0eQ== IGxhYg== aWN1bHQ= IGhvdXJz IGNyZWF0ZQ== IGZ1cnRoZXI= IEFtZXJpY2E= IENpdHk= IGRvdQ== aGVhZA== U1Q= IE5vcnRo Y2luZw== IG5hdGlvbmFs dWxl IEluc3Q= IHRha2luZw== IFF1 aXJ0 IHJlZA== IHJlc2VhcmNo dmlyb24= IEdl IGJyZWFr YW5h IHNwYWNl YXRlcmlhbA== IHJlY2VudA== IEFi IGdlbmVyYWw= IGhpdA== IHBlcmlvZA== IGV2ZXJ5dGhpbmc= aXZlbHk= IHBoeXM= IHNheWluZw== YW5rcw== IGNvdQ== IGN1bHQ= YWNlZA== ZWFs dWF0aW9u IGNvdW4= bHU= IGluY2x1ZGU= IHBvc2l0aW9u IEFmdGVy IENhbmFk IEVt IGltbQ== IFJlZA== IHBpY2s= IGNvbXBs IG1hdHRlcg== cmVn ZXh0 YW5ndQ== aXNj b2xl YXV0 IGNvbXBldA== ZWVk ZmVjdA== IDIx IFNlbg== IFRoZXNl YXNpbmc= IGNhbm5vdA== IGluaXQ= IHJlbGF0aW9ucw== YWNoZWQ= IGJhcg== IDQw IFRI IDIwMTI= IHZvbA== IGdyb3VuZA== IHNlY3VyaXR5 IHVwZA== aWx0 MzU= IGNvbmNlcm4= IEp1c3Q= IHdoaXRl IHNlZW1z IEhlcg== cGVjaWFsbHk= aWVudHM= IGFubm91bg== IGZpZw== aWdodHM= IHN0cmk= bGlrZQ== aWRz IHN1cw== IHdhdGNo IOI= IHdpbmQ= IENvbnQ= IGl0c2VsZg== IG1hc3M= QWw= eWxl aXF1ZQ== IE5hdGlvbmFs IGFicw== IHBhY2s= IG91dHNpZGU= IGFuaW0= IHBhaW4= ZXRlcg== IG1hbmFn ZHVjdA== b2du IF0= IFNlcHQ= c2Vj b2Zm IEphbg== IGZvb3Q= YWRlcw== IHRoaXJk IG1vdA== IGV2aWRlbmNl aW50b24= IHRocmVhdA== YXB0 cGxlcw== Y2xl IGxv IGRlY2w= IGl0ZW0= bWVkaQ== IHJlcHJlc2VudA== b21i YW1lcg== IHNpZ25pZmljYW50 b2dyYXBo c3U= IGNhbA== aXJlcw== MDAwMA== SUQ= QU0= IHNpbXBseQ== IGxvbmdlcg== IGZpbGU= T1Q= Y2hl U28= YXRlZw== b3Jn IEhpcw== IGVuZXI= IGRvbQ== IHVwb24= aWxp Ijoi IHRoZW1zZWx2ZXM= IGNvbWluZw== IHF1aXRl IGRpZmZpY3VsdA== IEJhcg== aWxpdGllcw== cmVs ZW5kcw== Y2lhbA== NjQ= IHdvbWFu cmFw eXI= IG5lY2Vzcw== aXBz IHRleHQ= IHJlcXVpcmU= IG1pbGl0YXJ5 IHJldmlldw== IHJlc3BvbnM= NzU= IHN1YmplY3Q= IGluc3RlYWQ= IGlzc3Vlcw== IGdlbg== Iiwi IG1pbnV0ZXM= IHdlYXA= cmF5 YW1lZA== dGltZQ== Ymw= SG93 IGNvZGU= IFNt IGhpZ2hlcg== IFN0ZQ== cmlz IHBhZ2U= IHN0dWRlbnRz IEludGVybg== IG1ldGhvZA== IEF1Zw== IFBlcg== IEFn IHBvbGljeQ== IFN3 IGV4ZWM= IGFjY2VwdA== dW1l cmlidXQ= IHdvcmRz IGZpbmFs IGNoYW5nZXM= IERlbW9jcg== IGZyaWVuZHM= IHJlc3BlY3Q= IGVw IGNvbXBhbg== aXZpbA== IGRhbWFnZQ== KioqKg== b2dsZQ== dmlyb25tZW50 IG5lZw== ZW50YWw= IGFw IHRvdGFs aXZhbA== ISI= bGlt IG5lZWRz IGFncmU= IGRldmVsb3BtZW50 IGFnZQ== aXBsZQ== MjE= IHJlc3VsdHM= IEFm U2g= IGd1bg== IE9iYW1h cm9sbA== IEA= IHJpZ2h0cw== IEJyaXQ= IHJ1bm5pbmc= IHdhc24= IHBvcnQ= IHJhdGU= IHByZXR0eQ== IHRhcmdldA== IHNhdw== IGNpcmM= IHdvcmtz aWNybw== YWx0 b3Zlcg== d3d3 VGhhdA== bGllcg== IGV2ZXJ5b25l dWRl IHBpZQ== aWRkbGU= cmFlbA== IHJhZA== IGJsb2Nr IHdhbGs= VG8= 44E= bmVz IEF1c3Q= YXVs cm90ZQ== IFNvdXRo ZXNzaW9u b3Bo IHNob3dz IHNpdGU= IGpv IHJpc2s= Y2x1cw== bHQ= IGluag== aWRpbmc= IFNwZQ== IGNoYWxs aXJt IDIy aXR0aW5n c3Ry IGh5 TEU= a2V5 IGJlZ2Fu YXR1cg== YXNoaW5ndG9u bGFt IERhdg== Yml0 IHNpemU= IFBhcg== Mzg= b3VybmFs ZmFjZQ== IGRlY2lzaW9u IGxhcmc= IGp1ZA== cmVjdA== IGNvbnRpbnVl IE9jdA== b3ZlcmVk IEludA== PT09PT09PT0= IHBhcmVudA== IFdpbGw= IGVhc3k= IGRydWc= YW5nZXI= IHNlbnNl IGRp aWRheQ== IGVuZXJneQ== aXN0aWM= IGFzc29jaQ== YXJ0ZXI= b2JhbA== ZWtz IEVs dXJjaA== IGdpcmw= b2U= aXRsZQ== IDI4 IENoZQ== IHJlcXVlc3Q= IHNvb24= IGhvc3Q= a3k= IHN0YXRlcw== b21lcw== IG1hdGVyaWFs bGV4 IG1vbWVudA== IGFuc3c= b25zZQ== IGVzcGVjaWFsbHk= IG5vcm0= IHNlcnZpY2Vz cGl0ZQ== cmFu IHJvbGU= NDQ= KTo= IGNyZWQ= Q2w= X19fX19fX18= IG1hdA== IGxvZw== IENsaW50b24= T1U= IG9mZmljZQ== IDI2 IGNoYXJn IHRyYWNr bWE= IGhlYXJ0 IGJhbGw= IHBlcnNvbmFs IGJ1aWxkaW5n bmE= c2V0 Ym9keQ== IEJsYWNr IGluY3JlYXNl aXR0ZW4= IG5lZWRlZA== MzY= MzI= PSI= IGxvc3Q= IGJlY2FtZQ== IGdyb3Vwcw== IE11cw== IHdyb3Rl IFBl IHByb3A= am95 w6k= IFdoaXRl IGRlYWQ= Lic= IGh0dHA= IHdlYnM= T1M= IGluc2lkZQ== IHdyb25n IHN0YXRlbWVudA== IC4uLg== eWw= IGZpbG0= IG11c2lj IHNoYXJl aWZpY2F0aW9u IHJlbGVhc2U= IGZvcndhcmQ= IHN0YXk= IGNvbXB1dA== aXR0ZQ== c2Vy IG9yaWdpbmFs IGNhcmQ= IGNhbmQ= IGRpdg== YXR1cmFs IGZhdm9y T00= IGNhc2Vz dXNlcw== IHNlY3Rpb24= IGxlYXZl Z2luZw== b3ZlZA== IFdhc2hpbmd0b24= Mzk= IEds IHJlcXVpcmVk YWN0aW9u YXBhbg== b29y aXRlcg== IEtpbmc= IGNvdW50cmllcw== IEdlcm1hbg== bGxpbmc= IDI3 MzQ= IHF1ZXN0aW9ucw== IHByaW0= IGNlbGw= IHNob290 IGFueW9uZQ== IFdlc3Q= IGFmZmVjdA== ZXBlbmQ= IG9ubGluZQ== IElzcmFlbA== IFNlcHRlbWJlcg== IGFiaWxpdHk= IGNvbnRlbnQ= aXNlcw== IHJldmU= IGxhdW4= IGluZGlj IGZvcmNl Y2FzdA== IHNvbGQ= YXZpbmc= Zmw= IHNvZnQ= IGNvbXBhbmllcw== Y2VlZA== IGFydGljbGU= IGF1ZA== IHJldg== IGVkdWM= IHBsYXlpbmc= MDU= IGhlbGQ= Y3Rvcg== IHJlbGVhc2Vk IGZlZGVyYWw= Mzc= IGFkbWluaXN0 IGludGVydmlldw== IGluc3RhbGw= IHJlY2VpdmVk IHNvdXJjZQ== dWs= UGg= IHNlcmlvdXM= IGNyZWF0ZWQ= IGNhdXNl IGltbWVkaQ== IGRlZmlu dWVs IERlcGFydG1lbnQ= Y3Rpb25z IENvdXI= IE5vdw== emU= aXRlcw== aXR1dGlvbg== IGxhdGU= IHNwZWFr bmVycw== IGxlZ2Fs YXJp IENvcg== IHdlZWtz IG1vZGVs IHByZWQ= IGV4YWN0 QkM= IEJ5 SU5H b3Npbmc= IHRha2Vz IHJlZ2FyZA== IG9wcG9ydHVu IHByaWNl IDE5OA== IEFwcg== ZnVsbHk= IG9yZA== IHByb2JsZW1z cnVjdGlvbg== aGFt IENvdW50 bGVnZQ== IGxlYWRlcnM= RVQ= bGV2 IGRlZXA= b2xvZ2ljYWw= ZXNl aGFwcw== IFNvbWU= IHBlcnM= IGNvbnRyYWN0 IHJlbGF0aW9uc2hpcA== c3A= b3Vk IGJhc2U= NDg= bWl0 QWQ= YW5jaWFs IGNvbnN1bQ== IHBvdGVudGlhbA== IGxhbmd1 cmVt ZXRo IHJlbGln cmVzc2Vk NjY= IGxpbms= IGxvd2Vy YXllcg== IEp1bmU= IGZlbQ== dW50 ZXJj dXJk IGNvbnRhY3Q= IGlsbA== IG1vdGhlcg== IGVzdGFi aHR0 IE1hcmNo IEJybw== IENoaW5h IDI5 IHNxdQ== IHByb3ZpZGVk IGF2ZXJhZ2U= YXNvbnM= IDIwMTE= IGV4YW0= bGlu NTU= bmVk IHBlcmZlY3Q= IHRvdQ== YWxzZQ== dXg= IGJ1eQ== IHNob3Q= IGNvbGxlY3Q= IHBob3Q= IHBsYXllZA== IHN1cnBy IG9mZmljaWFscw== IHNpbXBsZQ== YXZ5 IGluZHVzdHJ5 IGhhbmRz Z3JvdW5k IHB1bGw= IHJvdW5k IHVzZXI= IHJhbmdl dWFyeQ== IHByaXZhdGU= b3Bz ZWVz IHdheXM= IE1pY2g= IHZlaA== IGV4Y2VwdA== IHRlcm1z aW11bQ== cHBlcg== SU9O b3Jlcw== IERyYWdvbg== b3Vs IGRlbg== IHBlcmZvcm1hbmNl IGJpbGw= Y2ls NDc= IGVudmlyb25tZW50 IGV4Yw== YWRk IHdvcnRo IHBpY3Q= IGNoYW5jZQ== IDIwMTg= Ym9y IHNwZWVk aWN0aW9u IGFsbGVn IEphcGFu YXRvcnk= cmVldA== IG1hdGNo IElJ IHN0cnU= b3JkZXI= IHN0ZQ== IGxpdmluZw== IHN0cnVjdA== aW5v IHNlcGFy aGVybg== IHJlc3BvbnNl IGVuam95 IHZpYQ== QUQ= dW1lbnRz YWNlYm9vaw== IG1lbWJlcg== aWJy aXppbmc= IHRvb2w= IE1vbg== IFdoaWxl aG9vZA== IEFuZw== IERlZg== IG9mZmVy VHI= YXVy IHR1cm5lZA== IEp1bHk= ZG93bg== YW5jZWQ= IHJlY2VudGx5 IEVhcg== IGNl IFN0YXI= IENvbmc= cm91Z2h0 IGJsb29k IGhvcGU= IGNvbW1lbnQ= YWludA== IGFycmk= aWxlcw== IHBhcnRpY2lw b3VnaHQ= cmlwdGlvbg== MDg= NDk= IGdhdmU= IHNlbGVjdA== IGtpbGxlZA== c3ljaA== IGdvZXM= aWo= IGNvbGw= IGltcGFjdA== YXRpdmVz IFNlcg== MDk= IEF1Z3VzdA== IGJveQ== ZGU= IERlcw== IGZlbHQ= VVM= IGV4cGVjdGVk IGltYWdl IE1hcms= Y2NvcmRpbmc= b2ljZQ== RUM= IE1hZw== ZW5lZA== aG9sZA== IFBvc3Q= IHByZXZlbnQ= Tm8= IGludm9sdmVk IGV5ZXM= IHF1aWNrbHk= QXQ= dW5r IGJlaGF2 IHVy IGxlZA== Y29tZQ== ZXk= IGNhbmRpZA== IGVhcmxpZXI= IGZvY3Vz ZXR5 UHJv bGVkZ2U= aXhlZA== aWxsZWQ= IHBvcHVsYXI= QVA= IHNldHQ= bGlnaHQ= IHZhcmlvdXM= aW5rcw== IGxldmVscw== IHJvYWQ= ZWxsaWc= YWJsZXM= aGVs aXR0ZWU= IEdlbmVy eXBl IGhlYXJk aWNsZXM= IG1pcw== IHVzZXJz IFNhbg== IGltcHJvdmU= IGZhdGhlcg== IHNlYXJjaA== VGhleQ== dmls IHByb2Zlc3M= IGtuZXc= IGxvc3M= IGV2ZW50cw== NjU= IGJpbGxpb24= MDc= MDI= IE5ld3M= IEFN IGNvdmVy d2hlcmU= ZW5zaW9u IGJvdHQ= IGFyZWFz ZW5jZXM= b3Bl IFR3aXR0ZXI= YWVs IGdldHM= IEdvb2dsZQ== IHNu aWFudA== IHZvdGU= IG5lYXJseQ== IGluY2x1ZGVk IHJlY29nbg== eno= bW0= YWxlZA== IGhhcHBlbmVk MDQ= IGhvdA== IHdob3Nl IGNpdmls IHN1ZmY= b2Vz aXRpeg== IFN5cmk= IHJlc3BvbmQ= IGhvbg== IGZlYXR1cmVz IGVjb25vbWlj IEFwcmls cmlt IHRlY2hub2xvZ3k= IG9wdGlvbg== YWdpbmc= IHB1cmNo UmU= IGxhdA== Y2hpZQ== aXNs IHJlY29tbQ== dWY= IHRyYWluaW5n IGVmZmVjdHM= IGZhc3Q= IDIwMTA= IG9jY3Vy IHdlYnNpdGU= IGVtYWls IHNlbnM= ZWNo IG9pbA== IGluZmx1 IGN1cnJlbnRseQ== IFNjaA== IEFkZA== IGdvYWw= IHNjaWVudA== IGNvbnY= MTAw ZW15 IGRlY2lkZWQ= IHRyYXZlbA== IG1lbnRpb24= TEw= MDM= IGVsZWN0aW9u IHBob25l IGxvb2tz IHNpdHVhdGlvbg== IGN5 IGhvcg== YmVk IENvdXJ0 YWlseQ== YXZlcw== IHF1YWxpdHk= IENvbXA= d2lzZQ== IHRhYmxl IHN0YWZm IFdpbmQ= ZXR0 IHRyaWVk aWRlcmVk IGFkZGl0aW9u IGJveA== IGxhY2s= YXJpbHk= IHdpZGU= IG1pZA== IGJvYXJk eXNpcw== IGFudGk= aGE= IGRpZw== ZW5pbmc= IGRybw== Q29u Njg= IHNsb3c= YmFzZWQ= c2VxdQ== IHBhdGg= RXg= YWtlcg== IHdvcmtlZA== IHBlbg== IGVuZ2luZQ== IGxvb2tlZA== IFN1cGVy IFNlcnY= IHZpY3RpbQ== VW4= IHByb3BlcnR5 IGludHJvZHU= IGV4ZWN1dA== IFBN TGU= IGNvbG9y IE1vcmU= IDYw IG5ldHdvcms= IGRhdGU= Y3Vs aWRnZQ== IGV4dHJh MzE= IHNsZQ== Njc= IHdvbmQ= IHJlcG9ydHM= anVzdA== IEF1c3RyYWw= IGNhcGl0YWw= IGVucw== IGNvbW1hbmQ= IGFsbG93ZWQ= IHByZXA= IGNhcHQ= aGli IG51bWJlcnM= Y2hhbg== IGZhaXI= bXA= b21z IHJlYWNo V2l0aA== dGFpbg== IGJyb2Fk IGNvdXBsZQ== ZWNhdXNl bHlpbmc= IEZlYg== IHNjcmVlbg== IGxpdmVz IHByaW9y IENvbmdyZXNz QXI= IGFwcHJvYWNo IGVtZXI= YXJpZXM= IERpcw== c2Vydg== IE5l IGJ1aWx0 Y2llcw== IHJlcGU= IHJ1bGVz Zm9yY2U= IFBhbA== IGZpbmFuY2lhbA== IGNvbnNpZGVyZWQ= IENoYXI= bmNlcw== IElT IGJyb3VnaHQ= IGJp aWVycw== IFNpbQ== T1A= IHByb2R1Y3Rz IHZpc2l0 IGRvY3VtZW50 IGNvbmR1Y3Q= IGNvbXBsZXRlbHk= aW5pbmc= IENhbGlm aWJseQ== IHdyaXR0ZW4= IFRW ZW1lbnRz IGRyYXc= T25l IHB1Ymxpc2hlZA== IHNlY3JldA== cmFpbg== aGV0 IEZhY2Vib29r b25kYXk= IFVw IHNleHVhbA== IHRob3Vz IFBhdA== IGVzcw== IHN0YW5kYXJk IGFybQ== Z2Vz ZWN0aW9u IGZlbGw= IGZvcmVpZ24= YW5p IEZyaWRheQ== IHJlZ3VsYXI= aW5hcnk= IGluY3JlYXNlZA== IHVzdWFsbHk= IGRlbW9u IGRhcms= IGFkZGl0aW9uYWw= cm9s IE9m IHByb2R1Y3Rpb24= ISE= dW5kcmVk IGludGVybmF0aW9uYWw= aWRlbnRz IEZyZWU= cm91cA== IHJhY2U= IG1hY2g= IGh1Z2U= QWxs bGVhcg== b3ZlbWJlcg== IHRvd24= IGF0dGVudGlvbg== IE9mZg== eW9uZA== IFRoZW4= ZmllbGQ= IHRlcnJvcg== cmF6 IEJv IG1lZXRpbmc= IFBhcms= IGFycmVzdA== IGZlYXI= IGF3 IFZhbA== b3Jpbmc= Jyw= IGV4dHJlbWU= YXJy IHdvcmtlcnM= QWZ0ZXI= IDMx bmV0 YW1lbnQ= IGRpcmVjdGx5 IHBvcHVsYXRpb24= dWJl IE9jdG9iZXI= IElO IEphbnVhcnk= NTk= IERhdmlk IGNyb3Nz Y2VtYmVy IEZpcnN0 IG1lc3NhZ2U= aXJpdA== IG5hdGlvbg== IHBvbGw= aXNpb25z IGFuc3dlcg== bnk= aXNvZGU= IGNhcnJ5 IFJ1c3NpYQ== IGhlYXI= ZW5ndGg= cm95 IG5hdHVyYWw= aW5hbGx5 IGRvZw== bWl0dGVk IHRyYWRl IHN1YnN0 IG11bHRpcGxl IEFmcmlj IGZhbnM= IHNvcnQ= IGdsb2JhbA== aWNhdGlvbg== IFdlZA== YXJh IGFjaGll IGxhbmd1YWdl dmV5 IHRhbA== IG5lY2Vzc2FyeQ== IGRldGFpbHM= IHNlbg== IFN1bmQ= IFJlZw== IFJlYw== MDY= IHNpbA== cmVzc2l2ZQ== IG1lZGljYWw= dW5jaA== b3JuaWE= IHVuZA== Zm9ydA== b2Nrcw== IE1vbmRheQ== dWVzZGF5 Y3JhZnQ= Nzc= dXJ0 IHZlcg== IEhpbGw= IHJlY2VpdmU= IG1vcm5pbmc= ZXN0ZXJu IGJhbms= IHNhdA== aXJ0aA== IEhpZ2g= IGRldmljZQ== IFRIRQ== IENlbnRlcg== IHNhZmU= IHBsZQ== IENhbmFkYQ== IHN5c3RlbXM= IGFzc2lzdA== IHN1cnY= IGJhdHRsZQ== IFNvYw== dmVydGlz U2hl IHBhcGVy IGdyb3d0aA== IGNhc3Q= U2M= IHBsYW5z bGxlZA== IHBhcnRz IHdhbGw= IG1vdmVtZW50 IHByYWN0aWNl aW1hdGVseQ== IGRpc3BsYXk= IHNvbWV0aW1lcw== b21w IFBhdWw= IFllcw== a2luZw== NTg= b2x5 IHNvbg== IGF2b2lk b2tlcw== IEpldw== IHRvd2FyZHM= YXNj IC8v IEtvcmU= IHRhbGtpbmc= IGNvcnJlY3Q= IHNwZW50 aWNrcw== aWFibGU= ZWFyZWQ= IHRlcm0= IHdhbnRz b21pbmc= IHV0 IGRvdWI= IGZvcmNlcw== IHBsZWFzZQ== Njk= IE5vdmVtYmVy YXRmb3Jt b25kb24= IG9uZXM= IGltbWVkaWF0ZWx5 IFJ1c3NpYW4= IE1ldA== IGRlZw== IHBhcmVudHM= Q0g= IEFtZXJpY2Fucw== YWx5 IE1vZA== IHNob3du IGNvbmRpdGlvbnM= IHN0dWZm IHJlYg== IFlvdXI= IGluY2x1ZGVz bm93bg== IFNhbQ== IGV4cGVyaWVu bWlzc2lvbg== IEV2ZW4= YXVnaHQ= IGFubm91bmNlZA== IFJlcHVibGljYW4= IGRldGVybWlu IGRlc2NyaWJlZA== IENvdW50eQ== KCk= IGRvb3I= IGNoYW5nZWQ= IG5laWdo IEhlcmU= IGNsZWFu IHBhbg== IERlY2VtYmVy IEV1cm9wZWFu aXJpbmc= YXB0ZXI= IGNsdWI= IFR1ZXNkYXk= IHBhaWQ= IE5ldA== IGF0dGFja3M= IGNoYXJhY3RlcnM= IGFsb25l IGRpcmVjdG9y ZG9t IDM1 IGxvYWQ= IHJvdXQ= IENhbGlmb3JuaWE= IGZpbmFsbHk= IHJhYw== IGNvbnRy IGV4YWN0bHk= cmVzaA== cHJp IElzbGFt IG5hdHVyZQ== IGNhcmVlcg== IGxhdGVzdA== IGNvbnZlcnM= IFNs cG9zZQ== Y2llbnQ= IEluYw== aXZpdHk= ODg= IEF0dA== IE1vcg== bmVzZGF5 IHdlaWdodA== a2Vu IG5vdGU= IHRlYW1z IFw= YWlycw== IEdyZWVu IGh1bmRyZWQ= b25lbnQ= IHN0cmVuZw== IGNvbnNpc3Q= aWNhdGVk IHJlZ3Vs IGxpYw== YXN0aWM= IHRlbg== dXJzZGF5 ZWxsaWdlbmNl b3VzbHk= IFVL Qkk= IGNvc3Rz IGluZGVwZW5k IEFQ IG5vcm1hbA== IGhvbQ== IG9idmlvdXM= IHN3ZQ== IHN0YXI= IHJlYWR5 YWNoZXI= IGltcGxlbWVudA== Z2VzdA== IHNvbmc= IEdldA== IExhYg== IGludGVyZXN0aW5n dXNpbmc= IGdpdmluZw== IFN1bmRheQ== IGV0Yw== IG1pZGRsZQ== IHJlbWVtYmVy cmlnaHQ= b3NpdGlvbg== dXRpb25z IG1heA== NDY= IHlvdXJzZWxm IGRlbWFuZA== IHRyZWF0bWVudA== IGRhbmdlcg== IENvbnM= IGd1eQ== IEJyaXRpc2g= IHBoeXNpY2Fs IHJlbGF0ZWQ= IHJlbWFpbg== IGNvdWxkbg== IHJlZmVy IGNpdGl6 Ym94 RU5U Ym9hcmQ= IGlubg== SUc= ZXJv IFN0cmVldA== b3NwaXRhbA== cmVuY2g= Y2hlcnM= IHN0cmE= T0w= YWdlcg== IEFO IGVhc2lseQ== SUE= ZW5nZQ== aW55 IGNsb3M= b2NrZWQ= IHVzZXM= IENvdW4= SW0= dWlsZA== Pz8= bW9yZQ== IGFuZw== IHdyaXRl b2x1dGU= NTc= IGxlYWRlcg== IHJlYWRpbmc= PC8= IGF1dG9t ZXN0cw== NDM= IGxlZ2lzbA== IEdvbGQ= IGRlc2lnbmVk IFNU IExlZw== YXJlcw== IGJlYXV0 IFRleA== IGFwcGVhcnM= IHN0cnVnZw== IFJvbQ== IDAw IGNob2ljZQ== IHBhcnRpY3VsYXJseQ== IEZyb20= b3Blcg== IExvbmRvbg== YW5uZWQ= IGFsbG93cw== b2JpbGU= IGRpZmZlcmVuY2U= 4oCi IFZpZXc= IFdlZG5lc2RheQ== IGFsdGhvdWdo IHJlbGF0aXZl IGFwcGxpY2F0aW9u YXRldmVy IGFyZW4= IG15c2VsZg== IGltYWc= IGRpc2U= IHNvY2lldHk= IGZyZXF1 IEVuZ2xpc2g= IHBvb3I= IERheQ== IHdyaXRpbmc= IHNldmVu IHN0YXJ0aW5n IGJ1ZA== IHByaW50 IFRyYW5z dWZhY3Q= IFN0dWQ= bmV3 IGNyaW0= IGdpdmVz IGNvb2w= YWU= aWFuY2U= IEdlbmVyYWw= IHRoaW5raW5n IHNhdmU= IGxpbWl0ZWQ= IFBhcnR5 IG1lYW5pbmc= cGVu b3dlcnM= IEphY2s= RU0= IG5pY2U= cnVwdA== IGdhcw== IGVpZ2h0 IGZlZXQ= IGVmZm9ydA== IGlnbg== aWNpdA== Qmw= Y29pbg== IG9waW4= IGJyYWlu V2hpbGU= aGVzdA== IFRodXJzZGF5 IHdvdWxkbg== YXVnaHRlcg== IHRvdWNo bGVtZW50cw== IHN0dWRpZXM= IGNlbnRlcg== Y29udA== b3JnZQ== IGNvbXB1dGVy IGludmVzdGlnYXRpb24= UGw= b3Jrcw== IDIwMDg= IGluY3JlYXNpbmc= IHN0b3Jl IGNvbW1lbnRz IGJhbA== bWVu IGRvbGw= IGxpYmVy IHdpZmU= IGxhd3M= YXR1cmRheQ== aXRuZXNz IG1vZGVybg== IFNr IGFkbWluaXN0cmF0aW9u IG9wcG9ydHVuaXR5 IHNhbA== IHBvd2VyZnVs TXk= IGNsYWltcw== IEVhcnRo b3Jkcw== IHRpdGxl IGVzYw== bmFtZQ== Tm90 b21lbg== IGJleW9uZA== IGNhbWVy IHNlbGw= aXR1dGU= ZWFyY2g= IGFwcGw= aW1lbnQ= NDI= IEFydA== IHVuZg== IHZpb2xlbmNl dXJn IEVhc3Q= IGNvbXBhcmVk IG9wdGlvbnM= IHRocm91Z2hvdXQ= IHZz aWdy Lls= YWNoZXM= Nzg= IGZpbGVz Rkw= RUw= YXJpYW4= IEphbWVz IEFpcg== YW5jaA== IGRldGFpbA== IHBpZWNl UFM= IG5hbWVk IGVkdWNhdGlvbg== IGRyaXZl IGl0ZW1z IHN0dWRlbnQ= aWNlZA== Ojo= aWNv IHRocm93 IHNjZW5l IGNvbXBsZXg= IDIwMDk= IHByZWM= IEJyZQ== Nzk= IGNvbmNlcHQ= IHN0YXR1cw== YW1pbmc= IGRpZWQ= IGtub3dsZWRnZQ== IGJlZ2lubmluZw== T0Q= cnVhcnk= IGNlcnRhaW5seQ== IGd1eXM= IHNsaWdodA== aW5u b3VuZHM= IGZpbmU= IGZhdA== aWNhdGlvbnM= IHBlcmhhcHM= IEFudA== IGluY29tZQ== IGh0dHBz IG1ham9yaXR5 cG9ydHM= c3Rvbg== IGdyZWF0ZXI= IGZlZWQ= ZW50aWFsbHk= IHNhZmV0eQ== IHVuaXF1ZQ== YW5kb20= IGdvbmU= IHNob3dlZA== IGhpc3Rvcg== IGNvdW50ZXI= aXVz aWRh IGxlYWRpbmc= aXBl IHNlbmQ= IERvbmFsZA== ZXJ2ZQ== IGRlZmVuc2U= aW5lc2U= IHllcw== IEZpcmU= IE11c2xpbQ== cmFx IGNvbnRpbnVlZA== b3No IHByb3ZpZGVz IHByaXNvbg== IFByZQ== IGhhcHB5 IGVjb25vbXk= IHRydXN0 YWdz IEdhbWU= IHdlYXBvbnM= dW1hbg== IENsZQ== aXRhdGlvbg== IGFuYWx5c2lz IFRpbWVz IHNjaWVuY2U= LT4= IGZpZ3VyZQ== IGRpc2FwcA== ZW50eQ== IHNvZnR3YXJl IHVsdA== IG9mZmljZXJz TmV3 SXM= IHJlbWFpbnM= IEluZGlh IHBzeWNo cmllZg== IGNhdA== ZXNj IG9ic2Vydg== IHN0YWdl IERhcms= IGVudGVy Y2hhbmdl IHBhc3NlZA== IGRlc3BpdGU= IE91dA== IG1vdmll cnM= IHZvaWNl bWluZQ== IFBsYXk= IHRvd2FyZA== IFRlcg== IHJlZ2lvbg== IHZhbHVlcw== b3J0ZXJz IG1vdW50 IG9mZmljZXI= IE90aGVy YmFu IGhvdXM= d29vZA== cm9vbQ== SVY= IFN1bg== c2Vl IE92ZXI= cm9n OTA= IGxheQ== IFR1cg== YXdu IHByZXNzdXJl IFN1Yg== IGJvb2tz ZWRvbQ== IFNhbmQ= QUE= YWdv IHJlYXNvbnM= Zm9yZA== IGFjdGl2aXR5 VVQ= Tm93 IFNlbmF0ZQ== Y2VsbA== bmlnaHQ= IGNhbGxz aW50ZXI= IGxldHRlcg== IFJvYg== IEpl IGNob29zZQ== IExhdw== R2V0 QmU= IHJvYg== IHR5cGVz IHBsYXRmb3Jt IHF1YXJ0ZXI= UkE= IFRpbWU= IG1heWJl IENy OTU= cHJl IG1vdmluZw== IGxpZg== IGdvbGQ= IHNvbQ== IHBhdGllbnRz IHRydXRo IEtl dXJhbmNl YW50bHk= bWFy IGNoYXJnZQ== IEdyZWF0 IGNlbGU= LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0= IHJvY2s= cm9pZA== YW5jeQ== IGNyZWRpdA== YXVk Qnk= IEV2ZXJ5 IG1vdmVk aW5nZXI= cmlidXRpb24= IG5hbWVz IHN0cmFpZ2h0 IEhlYWx0aA== IFdlbGw= IGZlYXR1cmU= IHJ1bGU= IHNjaGU= aW5hdGVk IE1pY2hhZWw= YmVyZw== NDE= aWxlZA== YmFuZA== IGNsaWNr IEFuZ2Vs b25lbnRz wq0= IElyYXE= IFNhdHVyZGF5 IGF3YXJl cGFydA== IHBhdHRlcm4= T1c= IExldA== IGdyYWQ= aWduZWQ= IGFzc29jaWF0ZWQ= IHN0eWxl bm8= aWF0aW9u YWl0aA== aWxpZXM= IHN0b3JpZXM= dXJhdGlvbg== IGluZGl2aWR1YWxz IOKApg== bWlzcw== IEFzc29jaQ== aXNoaW5n YWJ5 IHN1bW1lcg== IEJlbg== IDMy IGFyY2g= dXR5 IFRleGFz aG9s IGZ1bGx5 IG1pbGw= IGZvbGxvd2Vk IEJpbGw= IEluZGlhbg== IFNlY3JldA== IEJlbA== IEZlYnJ1YXJ5 IGpvYnM= IHNlZW1lZA== IEdvdmVybg== aXBwZWQ= IHJlYWxpdHk= IGxpbmVz IHBhcms= IG1lYXN1cmU= IE91cg== SU0= IGJyb3RoZXI= IGdyb3dpbmc= IGJhbg== IGVzdGlt IGNyeQ== IFNjaG9vbA== IG1lY2hhbg== IE9G IFdpbmRvd3M= IHJhdGVz IE9o IHBvc2l0aXZl IGN1bHR1cmU= aXN0aWNz aWNh IGhhcg== eWE= aXRlbHk= aXBw IG1hcA== ZW5jaWVz IFdpbGxpYW0= SUk= YWtlcnM= NTY= IE1hcnQ= IFJlbQ== IGFsdGVybg== aXR1ZGU= IGNvYWNo cm93ZA== RG9u IGtpZHM= IGpvdXJuYWw= IGNvcnBvcg== IGZhbHNl IHdlYg== IHNsZWVw IGNvbnRhaW4= IHN0bw== IGJlZA== aXZlcnNl IFJpY2g= IENoaW5lc2U= IHB1bg== IG1lYW50 a25vd24= IG5vdGljZQ== IGZhdm9yaXRl YXZlbg== IGNvbmRpdGlvbg== IHB1cnBvc2U= KSk= IG9yZ2FuaXphdGlvbg== IGNoYWxsZW5n IG1hbnVmYWN0 IHN1c3A= IEFj IGNyaXRpYw== dW5lcw== dWNsZWFy IG1lcg== dmVudGlvbg== IDgw IG1pc3Q= IFVz IFRvcg== aHR0cA== b2xm IGxhcmdlcg== IGFkdmFudA== IHJlc2Vhcg== IGFjdGlvbnM= bWw= IGtlcHQ= IGFpbQ== LCc= Y29s IGJlbmVmaXRz aWZ5aW5n IGFjdHVhbA== IEludGVybmF0aW9uYWw= IHZlaGljbGU= IGNoaWVm IGVmZm9ydHM= IExlYWd1ZQ== IE1vc3Q= IHdhaXQ= IGFkdWx0 IG92ZXJhbGw= IHNwZWVjaA== IGhpZ2hseQ== IGZlbWFsZQ== IGVycm9y IGVmZmVjdGl2ZQ== NTQ= IGVuY291cg== d2VsbA== IGZhaWxlZA== IGNvbnNlcnY= IHByb2dyYW1z IHRyb3U= IGFoZWFk NTAw dmVydGlzZW1lbnQ= SVA= IEZvdW5k cGly ICU= IGNyaW1l YW5kZXI= IGxvY2F0aW9u IElyYW4= IGJlaGF2aW9y YXppbmc= IHJhcmU= IGVtYg== IGNhdXNlZA== IHNoaXA= IGFjdGl2ZQ== IGNvbnRyaWJ1dA== IGdyZWVu IGFjcXU= IHJlZmxlY3Q= dmVudWU= IGZpcm0= IGJpcnRo XS4= IGNsZWFybHk= IGVtb3Q= IGFnZW5jeQ== cmlhZ2U= IG1lbW9yeQ== OTg= U0E= IFNlZQ== YWNpbmc= Q0M= IGJpZ2dlc3Q= IHJhcA== IGJhc2lj IGJhbmQ= ZWF0 IHN1c3BlY3Q= IE1hYw== IDkw bWFyaw== aXN0YW4= IHNwcmVhZA== YW1z a2k= YXN5 cmF2 IFJvYmVy IGRlbW9uc3Ry cmF0ZWQ= IGFic29sdXRl IHBsYWNlcw== IGltcGw= aWJyYXJ5 IGNhcmRz IGRlc3Ryb3k= IHZpcnQ= dmVyZQ== IGFwcGVhcmVk eWFu cG9pbnQ= IGJlZw== IHRlbXBlcg== c3Bl YW50ZWQ= ZWFycw== IERpcmVjdA== IGxlbmd0aA== IGJsb2c= YW1i IGludGVn IHJlc291cmNlcw== YWNj aWZ1bA== IHNwb3Q= IGZvcmNlZA== IHRob3VzYW5kcw== IE1pbmlzdGVy IHF1YWw= IEZyZW5jaA== YXRpY2FsbHk= IGdlbmVyYWxseQ== IGRyaW5r IHRodXM= SUw= b2Rlcw== IGFwcHJvcHJp IFJlYWQ= IHdob20= IGV5ZQ== IGNvbGxlZ2U= IDQ1 aXJlY3Rpb24= IGVuc3VyZQ== IGFwcGFyZW50 aWRlcnM= IHJlbGlnaW91cw== IG1pbm9y b2xpYw== IHRybw== IFdoeQ== cmlidXRl bWV0 IHByaW1hcnk= IGRldmVsb3BlZA== IHBlYWNl IHNraW4= c3Rl YXZh IGJsdWU= IGZhbWlsaWVz IGly IGFwcGx5 IGluZm9ybQ== IFNtaXRo Q1Q= aWk= IGxpbWl0 IHJlc2lzdA== Li4uLi4uLi4uLi4uLi4uLg== dW1u IGNvbmZsaWM= IHR3ZQ== dWRk IFRvbQ== IGxpdGVy cXVl Ym9u IGhhaXI= IGV2ZW50dWFsbHk= IHB1cw== IGhlbHBlZA== IGFnZw== b3JuZXk= IEFwcGxl IGZpdA== IFN1cg== IHByZW0= IHNhbGVz IHNlY29uZHM= IHN0cmVuZ3Ro IGZlZWxpbmc= v70= IHRvdXI= IGtub3dz b29t IGV4ZXJj IHNvbWV3 77+9 Pj4= IHNwb2tlcw== IGlkZWFz IHJlZ2lzdA== c29mdA== IERlbA== IFBD IHByb3Bvcw== IGxhdW5jaA== IGJvdHRvbQ== VEg= IFBsZWFzZQ== dmVzdA== aXR6 IEludGVy IHNjcmlwdA== IHJhdA== YXJuaW5n IGls IEplcg== IEFyZQ== IHdoYXRldmVy b2tlbg== Y2llbmNl IG1vZGU= IGFncmVl IHNvdXJjZXM= IGluaXRpYWw= IHJlc3RyaWN0 IHdvbmRlcg== dXNpb24= IyMjIw== IFNpbA== dmlsbGU= IGJ1cm4= dHc= YXNpb24= IMKj IG5vcg== dWluZw== IHJlYWNoZWQ= IHN1bg== IGNhdGVn aWdyYXRpb24= IGNvb2s= IHByb21vdA== IG1hbGU= IGNsaW1hdGU= IGZpeA== IGFsbGVnZWQ= VVI= YWxsZWQ= IGltYWdlcw== Q29udA== b3Rh IHNjaG9vbHM= aW9z IGRyb3A= IHN0cmVhbQ== IE1v IHByZXZpb3VzbHk= YWxpbmc= IHBldA== IGRvdWJsZQ== IChA YW5uZWw= IGRlZmF1bHQ= dGllcw== IHJhbms= IERlYw== IENvdW5jaWw= IHdlYXBvbg== IHN0b2Nr IGFuYWx5 IFN0cg== IHBpY3R1cmU= IFBvbGljZQ== ZmVyZW5jZQ== IGNlbnR1cnk= IGNpdGl6ZW5z IG9udG8= IGV4cGFuZA== IGhlcm8= IFNvbA== IHdpbGQ= IHVwZGF0ZQ== IGN1c3RvbWVycw== cm9udA== ZGVm IGxpaw== IGNyaW1pbmFs IENocmlzdGlhbg== U1A= NzY= IGxlYXZpbmc= IG90aGVyd2lzZQ== IERpc3Q= IGJhc2lz NTI= NTM= aWNpcA== IEJlcg== IHJlY29tbWVuZA== IGZsb29y IGNyb3dk b2xlcw== IDcw IGNlbnRyYWw= IEV2 IGRyZWFt IGRvd25sb2Fk IGNvbmZpcg== IFRob20= IHdpbmRvdw== IGhhcHBlbnM= IHVuaXQ= IHRlbmQ= IHNwbA== IGJlY29tZXM= IGZpZ2h0aW5n IHByZWRpY3Q= IFByZXNz IFBvd2Vy IGhlYXZ5 YWtlZA== IGZhbg== b3J0ZXI= YXRlZ3k= QkE= aXplcw== IHNwZW5k SGVyZQ== IDIwMDc= IGFkb3A= IEhhbQ== IGZvb3RiYWxs IFBvcnQ= b2RheQ== NTE= YW1waW9ucw== IHRyYW5zZmVy aHQ= IDM4 dGVybQ== YWNpdHk= IGJ1cg== XSw= dGVybmFs cmln YnV0 IHRoZXJlZm9yZQ== IEJlY2F1c2U= cmVzcA== cmV5 IG1pc3Npb24= U29tZQ== IG5vdGVk IGFzc3Vt IGRpc2Vhc2U= IGVkaXQ= IHByb2dyZXNz cmQ= IEJyb3du b2NhbA== IGFkZGluZw== IHJhaXNlZA== IEFueQ== IHRpY2s= IHNlZWluZw== IFBlb3BsZQ== IGFncmVlbWVudA== IHNlcnZlcg== IHdhdA== IGRlYmF0ZQ== IHN1cHBvc2Vk aWxpbmc= IGxhcmdlc3Q= IHN1Y2Nlc3NmdWw= IFByaQ== IERlbW9jcmF0aWM= IGp1bXA= IFN5cmlh IG93bmVycw== IG9mZmVycw== IHNob290aW5n IGVmZmlj c2V5 IGhhdmVu dmVyc2U= dGVyZWQ= IExpZ2h0 aW1hbA== IEJpZw== IGRlZmVuZA== IGJlYXQ= IHJlY29yZHM= JSk= IHNjZW4= IGVtcGxveWVlcw== IGRldmljZXM= aGVt IGNvbW1lcg== IE1leA== IGJlbmVmaXQ= IFByb2Y= IGlsbGVn IHN1cmZhY2U= IEFsc28= IGhhcm0= aW5nbHk= d2lkZQ== IEFsZXg= IHNodXQ= IEN1cg== IGxvc2U= cG0= IGNoYWxsZW5nZQ== c2VtYg== IHN0YXRpb24= IGludGVsbGlnZW5jZQ== IGFjY3Vy IEZsb3I= IHJlcXVpcmVz IE1hbA== YnVt IGhvc3BpdGFs IHNwaXJpdA== IG9mZmVyZWQ= IHByb2R1Y2U= IENvbW11bg== IGNyZWF0aW5n IGNyaXM= c3BlY3Q= IGVuZGVk IGRhaWx5 IHZvdGVycw== bGFuZHM= aWFz aWg= b25h IHNtYXJ0 IE9mZmljZQ== IExvcmQ= cmlhbA== IEludGVybmV0 IGNpcmN1bQ== IGV4dHJlbWVseQ== Jy4= IG9waW5pb24= IE1pbA== IGdhaW4= QlM= IEZpbg== eXA= IHVzZWZ1bA== IGJ1ZGdldA== IGNvbWZvcnQ= aXNm IGJhY2tncm91bmQ= ZWxpbmU= IGVwaXNvZGU= IGVuZW15 IHRyaWFs IGVzdGFibGlzaA== ZGF0ZQ== IENhcA== IGNvbnRpbnVlcw== IHNob3dpbmc= IFVuaW9u d2l0aA== IHBvc3RlZA== IFN5c3RlbQ== IGVhdA== cmlhbg== IHJpc2U= IEdlcm1hbnk= aWxz IHNpZ25lZA== IHZpbGw= IGdyYW5k bW9y IEVuZ2xhbmQ= IHByb2plY3Rz dW1iZXI= IGNvbmZlcmVuY2U= emE= IHJlc3BvbnNpYmxl IEFyYWI= IGxlYXJuZWQ= 4oCU4oCU aXBwaW5n IEdlb3JnZQ== T0M= IHJldHVybmVk IEF1c3RyYWxpYQ== IGJyaWVm UXU= IGJyYW5k aWxsaW5n YWJsZWQ= IGhpZ2hlc3Q= IHRyYWlu IENvbW1pc3Npb24= d2hpbGU= IG5vbQ== Y2VwdGlvbg== IG11dA== IEJsdWU= IGluY2lkZW50 dmFudA== ODY= IElE IG51Y2xlYXI= NzQ= IExpa2U= IFJF IE1pY3Jv bGk= bWFpbA== IGNoYXJnZXM= ODk= IGFkanVzdA== YWRv IGVhcnRo TkE= IHByaWNlcw== UEE= IGRyYWZ0 IHJ1bnM= IGNhbmRpZGF0ZQ== ZW5zZXM= IG1hbmFnZW1lbnQ= IFBoaWw= IE1pc3M= IHRlYWNo Z3JhbQ== IHVuZGVyc3RhbmRpbmc= YWl0 aWNhZ28= QWRk IEVw c2VjdXQ= IHNlcGFyYXRl IGluc3RhbmNl IGV0aA== IHVubGVzcw== KioqKioqKio= IEZvcmU= aW5hdGU= IG9wZXJhdGlvbnM= U3A= IGZhaXRo Z2Fy IENodXJjaA== cm9uaWM= IGNvbmZpZw== b3N1cmU= IGFjdGl2aXRpZXM= IHRyYWRpdGlvbmFs IDM2 IGRpcmVjdGlvbg== IG1hY2hpbmU= IHN1cnJvdW5k IHB1c2g= dW5jdGlvbg== IEVV IGVhc2llcg== IGFyZ3VtZW50 R0I= IG1pY3Jv IHNwZW5kaW5n aXphdGlvbnM= IHRoZW9yeQ== YWRvdw== IGNhbGxpbmc= IExhc3Q= IGRlcg== IGluZmx1ZW5jZQ== IGNvbW1pdA== IHBob3Rv IHVuYw== aXN0cnk= Z24= YXN0ZQ== YWNrcw== IGRpc3A= YWR5 ZG8= IEdvb2Q= IGA= IHdpc2g= IHJldmVhbGVk wqDCoA== bGln IGVuZm9yY2U= IENvbW1pdHRlZQ== IGNoZW0= IG1pbGVz IGludGVyZXN0ZWQ= IHNvbHV0aW9u aWN5 aW5jdA== IC0+ IERldA== IHJlbW92ZWQ= IGNvbXBhcg== ZWFo IHBsYW50 IFNpbmNl IGFjaGlldmU= IGFkdmFudGFnZQ== IHNsaWdodGx5 YmluZw== IHBsYWNlZA== dW5kZXI= MjAxNQ== IE1hZA== IHRpbQ== b3Nlcw== IGNydQ== IFJvY2s= IG1vc3RseQ== IG5lZ2F0aXZl IHNldHRpbmc= IHByb2R1Y2Vk IG11cg== IGNvbm5lY3Rpb24= IE1lcg== IGRyaXZlcg== IGV4ZWN1dGl2ZQ== IGFzc2F1bHQ= IGJvcm4= IFZlcg== dGFpbmVk IHN0cnVjdHVyZQ== IHJlZHVjZQ== IGRlY2FkZXM= IGRlZA== dWtl IE1hbnk= aWRkZW4= IGxlYWd1ZQ== U2U= IGpvaW4= IGRpc2Nv IGRpZQ== Y2tz YWN0aW9ucw== IGFzc2Vzcw== YWdu IGdvYWxz b3Vycw== SVI= IHNlbmlvcg== aWxsZXI= bW9k aXBtZW50 b2NvbA== dXk= IFF1ZQ== IHBhcnRpZXM= aXJnaW4= IGxlYXJuaW5n aXRhYmxl IHN0cmVldA== IGNhbWVyYQ== QXBw IHNraWxscw== YnJl Y2lvdXM= IGNlbGVicg== IEZyYW5j IGV4aXN0aW5n IHdpbGxpbmc= bG9y IGlk IFNwYWNl IGNyaXRpY2Fs IExh b3J0dW5hdGVseQ== IHNlcnZl IGNvbGQ= IHNwZWNpZXM= VFM= IGFuaW1hbHM= IEJheQ== IG9sZGVy IFVuZGVy ZXN0aWM= IFRyZQ== IHRlYWNoZXI= IHByZWZlcg== dmlz IHRocmVhZA== IE1hdHQ= IG1hbmFnZXI= 44O7 IHByb2Zlc3Npb25hbA== IFZvbA== IG5vdGVz VGhlc2U= dWxh IGZyZXNo ZW50ZWQ= dXp6 ZWR5 Y2x1c2lvbg== IFJlbA== IGRvdWJ0 RU8= IG9wZW5lZA== IEJpdA== QWR2ZXJ0aXNlbWVudA== IGd1ZXNz IFVO IHNlcXU= IGV4cGxhaW4= b3R0ZW4= IGF0dHJhY3Q= YWtz IHN0cmluZw== IGNvbnRleHQ= b3NzaWJsZQ== IFJlcHVibGljYW5z IHNvbGlk IGNpdGllcw== IGFza2luZw== IHJhbmRvbQ== dXBz dXJpZXM= YXJhbnQ= ZGRlbg== Z2w= IEZsb3JpZGE= IGRlcGVuZA== IFNjb3R0 IDMz IGlU aWNvbg== IG1lbnRpb25lZA== IDIwMDA= IGNsYWltZWQ= IGRlZmluaXRlbHk= dWxm IGNvcmU= IG9wZW5pbmc= IENvbnN0 d2hpY2g= IFRyYQ== QUc= NzI= IGJlbGlldmVk YWRh IDQ4 IFNlY3VyaXR5 eXJpZ2h0 IFBldA== IExvdQ== IGhvbGRpbmc= PT09PT09PT09PT09PT09PQ== IGljZQ== IGJyb3c= IGF1dGhvcml0aWVz aG9zdA== d29yZA== IHNjb3Jl IERpdg== IGNlbGxz IHRyYW5zbA== IG5laWdoYm9y IHJlbW92ZQ== dWN0 IGRpc3RyaWN0 IEFjY29yZGluZw== IHdvcnNl IGNvbmNlcm5z IHByZXNpZGVudGlhbA== IHBvbGljaWVz IEhhbGw= NzM= IGh1cw== QVk= IDIwMDY= IEp1ZA== IGluZGVwZW5kZW50 IEp1c3RpY2U= aWxpYXI= cHJpbnQ= aWdodGVy IHByb3RlY3Rpb24= emVu IHN1ZGRlbg== aG91c2U= IEplcw== UFI= IEluZg== IGJ1bA== IF8= IFNlcnZpY2U= IFBS IHN0cmF0ZWd5 ZmZlY3Q= IGdpcmxz IG1pc3Npbmc= b3lhbA== IFRlYW0= dWxhdGVk IGRhdA== IHBvbGl0aWNz YWJvcg== QWNjb3JkaW5n IHNwZWxs IGdyYXBo b3J0aGVybg== VEM= QWI= IGxhYm9y aXNoZXI= IGtpY2s= IGlUdW5lcw== IHN0ZXBz cG9zZXM= IHNtYWxsZXI= RW4= YmVydA== IHJvbGw= IHJlc2VhcmNoZXJz IGNsb3NlZA== IHRyYW5zcG9ydA== IGxhd3k= X19fX19fX19fX19fX19fXw== IENoaWNhZ28= IGFzcGVjdA== IG5vbmU= IG1hcnJpYWdl OTY= IGVsZW1lbnRz IEZyZQ== IFNhbA== IGRyYW0= RkM= dG9w ZXF1 IGhlYXJpbmc= IHN1cHBvcnRlZA== IHRlc3Rpbmc= Y29ob2w= IG1hc3NpdmU= IHN0aWNr IGd1YXJk aXNjbw== cGhvbmU= RnJvbQ== SG93ZXZlcg== IGJvcmRlcg== IGNvcHk= b2dyYXBoeQ== bGlzdA== NzE= IG93bmVy Y2xhc3M= cnVpdA== cmF0ZQ== IE9uY2U= IGRpZ2l0YWw= IHRhc2s= RVJT IGluY3JlZA== dGVz Kys= IEZyYW5jZQ== IGJyZWF0 b3ds IGlzc3VlZA== IFdlc3Rlcm4= IGRldGVjdA== IHBhcnRuZXJz IHNoYXJlZA== IENhbGw= IGNhbmNlcg== YWNoZQ== cmliZQ== IGV4cGxhaW5lZA== IGhlYXQ= eyI= IGludmVzdG1lbnQ= IEJvb2s= IHdvb2Q= IHRvb2xz IEFsdGhvdWdo IGJlbGllZg== IGNyaXNpcw== IGdl IE1Q IG9wZXJhdGlvbg== dHlwZQ== fn4= Z2E= IGNvbnRhaW5z YW50YQ== IGV4cHJlc3M= IEdyb3Vw IEpvdXJuYWw= a2E= IGFtYg== IFVTQQ== IGZpbmRpbmc= IGZ1bmRpbmc= aG93 IGVzdGFibGlzaGVk aWRlb3M= IGRlZ3JlZQ== IGRhbmdlcm91cw== YW5naW5n IGZyZWVkb20= cHBvcnQ= b3V0aGVybg== IGNodXJjaA== IGNhdGNo IFR3bw== IHByZXNlbmNl IEd1YXJk VXA= IGF1dGhvcml0eQ== IFByb2plY3Q= IGJ1dHRvbg== IGNvbnNlcXU= IHZhbGlk IHdlYWs= IHN0YXJ0cw== IHJlZmVyZW5jZQ== IE1lbQ== Iik= VU4= b3JhZ2U= IE9wZW4= IGNvbGxlY3Rpb24= eW0= Z2VuY3k= IGJlYXV0aWZ1bA== cm9z IHRlbGxz IHdhaXRpbmc= bmVs IHByb3ZpZGluZw== IERlbW9jcmF0cw== IGRhdWdodGVy IG1hc3Rlcg== IHB1cnBvc2Vz IEphcGFuZXNl IGVxdWFs IHR1cm5z IGRvY3VtZW50cw== IHdhdGNoaW5n UmVz IHJhbg== MjAxNA== IHJlamVjdA== IEtvcmVh IHZpY3RpbXM= TGV2ZWw= ZXJlbmNlcw== IHdpdG5lc3M= IDM0 IHJlZm9ybQ== Y29taW5n IG9jY3Vw IGNhdWdodA== IHRyYWZmaWM= YWRpbmc= IG1vZGVscw== YXJpbw== IHNlcnZlZA== IGJhdHRlcg== dWF0ZQ== IFNlY3JldGFyeQ== IGFncmVlZA== IHRydWx5 eW5hbQ== IFJldA== IHVuaXRz IFJlc2VhcmNo aGFuZA== YXppbmU= IE1pa2U= IHZhcmlldHk= b3RhbA== IGFtYXppbmc= IGNvbmZpcm1lZA== IGVudGlyZWx5 IHB1cmNoYXNl IGVsZW1lbnQ= IGNhc2g= IGRldGVybWluZQ== RGU= IGNhcnM= IFdhbGw= 4pY= IHZpZXdz IGRydWdz IGRlcGFydG1lbnQ= IFN0ZXA= dWl0 IDM5 YXN1cmU= IENsYXNz IGNvdmVyZWQ= IEJhbms= IG1lcmU= dWFuYQ== IG11bHRp IG1peA== IHVubGlrZQ== bGV2aXNpb24= IHN0b3BwZWQ= IHNlbQ== IEdhbA== dWxlcw== IHdlbA== IEpvaG5zb24= bGE= IHNraWxs IGJlY29taW5n cmll IGFwcHJvcHJpYXRl ZmU= ZWxsb3c= IFByb3Q= dWxhdGU= b2NhdGlvbg== IHdlZWtlbmQ= b2RpZXM= IHNpdGVz IGFuaW1hbA== IFRpbQ== IHNjYWxl IGNoYXJnZWQ= IGluc3RydWN0 aWxsYQ== IG1ldGhvZHM= IGNlcnQ= IGp1ZGdl IEhlbA== IGRvbGxhcnM= IHN0YW5kaW5n IFNxdQ== IGRlYnQ= bGlhbQ== IGRyaXZpbmc= IFN1bQ== IEVkaXRpb24= IGFsYnVt YW5kb24= SUY= IFVr NjM= YWRlcg== IGNvbW1lcmNpYWw= ZXNo IEdvdmVybm1lbnQ= IGRpc2NvdmVyZWQ= IG91dHB1dA== IEhpbGxhcnk= IENhcm9s IDIwMDU= IGFidXNl YW5jaW5n IHN3aXRjaA== IGFubnVhbA== VHc= IHN0YXRlZA== YWdlbWVudA== aW5uZXI= IGRlbW9jcg== IHJlc2lkZW50cw== IGFsbG93aW5n IGZhY3RvcnM= b2Rk IGZ1Y2s= ZW1pZXM= IG9jY3VycmVk b3Rp IG5vcnRo IFB1YmxpYw== IGluanVyeQ== IGluc3VyYW5jZQ== Q0w= b2xseQ== 44A= IHJlcGVhdGVk IGFybXM= YW5nZWQ= IGNvbnN0cnVjdGlvbg== IGZsZQ== UFU= aWNpYW5z IGZvcm1z IE1jQw== YW50aWM= IG1lbnRhbA== cGlyZQ== IGVxdWlwbWVudA== IGZhbnQ= IGRpc2N1c3Npb24= IHJlZ2FyZGluZw== a2lu YXJw IGNoYWly b2d1ZQ== IHByb2NlZWQ= IElk T3Vy IG11cmRlcg== TWFu IDQ5 YXNw IHN1cHBseQ== IGlucHV0 IHdlYWx0aA== bGlhbWVudA== IHByb2NlZA== b3JpYWw= IFN0YXQ= IE5GTA== aGVucw== IEluc3RpdHV0ZQ== IHB1dHRpbmc= b3VybmFtZW50 ZXRpYw== IGxvY2F0ZWQ= IGtpZA== ZXJpYQ== cnVu IHByaW5j ICE= Z29pbmc= IEJldA== IGNsb3Q= IHRlbGxpbmc= IHByb3Bvc2Vk aW90 b3JyeQ== IGZ1bmRz Z21lbnQ= IExpZmU= IGJhYnk= IEJhY2s= IHNwb2tl SW1hZ2U= IGVhcm4= IEFU Z3U= IGV4Y2hhbmdl IExpbg== b3Zpbmc= IHBhaXI= TW9yZQ== YXpvbg== IGFycmVzdGVk IGtpbGxpbmc= Y2Fu IENhcmQ= eWQ= IGlkZW50aWZpZWQ= IG1vYmlsZQ== IHRoYW5rcw== b255bQ== IEZvcm0= IGh1bmRyZWRz IENocmlz IENhdA== IHRyZW5k aGF0 IEF2 b21hbg== IGVsZWN0cmlj IFdpbA== U0U= T2Y= IHJlc3RhdXI= b3RlZA== IHRyaWc= IG5pbmU= IGJvbWI= V2h5 wq8= IGNvdmVyYWdl IGFwcGVhbA== IFJvYmVydA== IFN1cA== IGZpbmlzaGVk IGZsb3c= IGRlbGl2ZXI= IGNhbGN1bA== IHBob3Rvcw== IHBoaWw= IHBpZWNlcw== IGFwcHJl a2Vz IHJvdWdo RG8= IHBhcnRuZXI= IGNvbmNlcm5lZA== IDM3 IEdlbg== Q29s Y3RvcnM= ID0+ c3RhdGU= IHN1Z2dlc3RlZA== IEZvcmNl Q0U= IGhlcnNlbGY= IFBsYW4= d29ya3M= b290aA== cmVuY3k= IGNvcm5lcg== IGh1c2JhbmQ= IGludGVybmV0 IEF1dA== ZW1z b3Nlbg== IEF0bA== Z2Vu IGJhbGFuY2U= NjI= IHNvdW5kcw== dGV4dA== IGFycg== b3Zlcw== IG1pbGxpb25z IHJhZGlv IHNhdGlzZg== IERhbQ== TXI= R28= U3Bl IGNvbWJhdA== cmFudA== IEdyZWU= IGZ1ZWw= IGRpc3RhbmNl IHRlc3Rz IGRlY3Jl IEVy IG1hbmFnZWQ= RFM= IHRpdA== IG1lYXN1cmVz IExpYmVy IGF0dGVuZA== YXNoZWQ= IEpvc2U= IE5pZ2h0 ZGl0 IE5vdg== IEVuZA== b3V0cw== IGdlbmVyYXRpb24= IGFkdm9j eXRo IGNvbnZlcnNhdGlvbg== IFNreQ== YWN0aXZl Y2Vs cmllcg== IEZyYW5r IGdlbmRlcg== IGNvbmNlbnQ= IGNhcnJpZWQ= YW5kYQ== IFZpcmdpbg== IGFycml2ZWQ= aWNpZGU= YWRlZA== IGZhaWx1cmU= IG1pbmltdW0= bGV0cw== IHdvcnN0 IGtlZXBpbmc= IGludGVuZGVk IGlsbGVnYWw= IHN1YnNj IGRldGVybWluZWQ= IHRyaXA= WWVz IHJhaXNl IH4= IGZlZWxz IHBhY2thZ2U= IEpv aGk= MjAxNg== cmVhbA== IGZyYQ== IHN5bWI= TWU= dWNreQ== cHJldA== IEto IEVkaXQ= IFdlYg== ZW1pYw== IENvbG9y IGp1c3RpY2U= SW50 IGZhcm0= Y2tub3c= Ij4= ZWxlc3M= IHJlZHVjZWQ= IDUwMA== eHg= IFJhZA== IFdvb2Q= IGNsaW4= IGh5cA== aWxlcg== dXJh a2lucw== ODU= NjE= IFRoZWly IE1hcnk= IHNhbg== IG5vdmVs IFdobw== IGNhcGFjaXR5 IGltcG9zc2libGU= IHBsYXlz IG1pbmlzdGVy aWp1YW5h aWNhdGU= IFNldA== IGZyYW0= IGluZw== IGNvbW11bml0aWVz IEZCSQ== aXRh IGJvbg== IHN0cmF0ZWc= IGludGVyZXN0cw== bG9jaw== Z2Vycw== bWFz IEFORA== IGNvbmZsaWN0 IHJlcXVpcmVtZW50cw== IHNhYw== IG9wZXJhdGluZw== aW5p cmVsYXRlZA== IGNvbW1pdHRlZA== IHJlbGF0aXZlbHk= IHNvdXRo wq/Crw== IGFmZm9yZA== IGlkZW50aXR5 IGRlY2lzaW9ucw== IGFjY3VzZWQ= cGxhY2U= IHZpY3Rvcnk= b2No aWF0 TmFtZQ== Q29t dGlvbg== ZWRz IHNlZWs= IHRpZ2h0 IEltYWdlcw== IGluaXRp IGh1bWFucw== IGZhbWlsaWFy IGF1ZGllbmNl IGludGVybmFs dmVudHVyZQ== IHNpZGVz IFRP IGRpbQ== IGNvbmNsdWQ= IGFwcG9pbnQ= IGVuZm9yY2VtZW50 IEppbQ== IEFzc29jaWF0aW9u IGNpcmN1bXN0 IENhbmFkaWFu IGpvaW5lZA== IGRpZmZlcmVuY2Vz IExvcw== IHByb3Rlc3Q= IHR3aWNl d2lu IGdsYXNz YXJzaA== IEFybXk= IGV4cHJlc3Npb24= IGRlY2lkZQ== IHBsYW5uaW5n YW5pYQ== IGhhbmRsZQ== IE1pY3Jvc29mdA== IE5vcg== IG1heGltdW0= IFJldg== IHNlYQ== IGV2YWw= IGhlbHBz cmVm IGJvdW5k IG1vdXRo IHN0YW5kYXJkcw== IGNsaW0= IENhbXA= IEZveA== Y2xlcw== IGFybXk= IFRlY2hu YWNraW5n eHk= U1M= IDQy IGJ1Zw== IFVrcmFpbg== IE1heA== IEpvbmVz IFNob3c= bG8= IHBsYW5ldA== IDc1 IHdpbm5pbmc= IGZhc3Rlcg== IHNwZWN0 IGJyb2tlbg== VFI= IGRlZmluZWQ= IGhlYWx0aHk= IGNvbXBldGl0aW9u aHR0cHM= IElzbGFuZA== IEZl IGFubm91bmNl IEN1cA== IEluc3RlYWQ= IGNsaWVudA== IHBvc3NpYmx5 c2VjdGlvbg== b2NrZXQ= bG9vaw== IGZpbmlzaA== IGNyZXc= IHJlc2Vydg== IGVkaXRvcg== IGhhdGU= IHNhbGU= IGNvbnRyb3ZlcnM= IHBhZ2Vz d2luZw== IG51bWVy IG9wcG9zaXRpb24= IDIwMDQ= IHJlZnVnZQ== IGZsaWdodA== IGFwYXJ0 IExhdA== QW1lcmlj IEFmcmljYQ== IGFwcGxpY2F0aW9ucw== IFBhbGVzdA== IEJ1cg== IGdhcg== IFNvY2lhbA== IHVwZ3I= IHNoYXBl IHNwZWFraW5n YW5zaW9u YW8= IFNu IHdvcnJ5 IEJyaXRhaW4= UGxlYXNl cm91ZA== IGh1bg== IGludHJvZHVjZWQ= IGRpZXQ= SW5k IFNlY29uZA== IGZ1bmN0aW9ucw== dXRz IEVhY2g= IEplZmY= IHN0cmVzcw== IGFjY291bnRz IGd1YXJhbnQ= IEFubg== ZWRpYQ== IGhvbmVzdA== IHRyZWU= IEFmcmljYW4= IEJ1c2g= fSw= IHNjaA== IE9ubHk= IGZpZg== aWdhbg== IGV4ZXJjaXNl IEV4cA== IHNjaWVudGlzdHM= IGxlZ2lzbGF0aW9u IFdvcms= IFNwcg== w4I= IEh1bWFu IOg= IHN1cnZleQ== IHJpY2g= cmlw IG1haW50YWlu IGZsbw== IGxlYWRlcnNoaXA= c3RyZWFt IElzbGFtaWM= IDAx IENvbGxlZ2U= IG1hZ2lj IFByaW1l IGZpZ3VyZXM= MjAxNw== aW5kZXI= eHVhbA== IERlYWQ= IGFic29sdXRlbHk= IGZvdXJ0aA== IHByZXNlbnRlZA== cmVzcG9uZA== cmlibGU= IGFsY29ob2w= YXRv IERF cG9yYXJ5 IGdyYWI= IHZhcmk= IHF1YW50 IFBob3Rv IHBsdXM= cmljaw== YXJrcw== IGFsdGVybmF0aXZl IHBpbA== IGFwcHJveA== dGhhdA== IG9iamVjdHM= IFJv IEFuZHJvaWQ= IHNpZ25pZmljYW50bHk= IFJvYWQ= a2F5 UmVhZA== YXZvcg== IGFja25vdw== IEhE IFNpbmc= T3I= IE1vbnQ= IHVucw== cHJvZg== IG5lZ290aQ== IEFyY2g= aWtp IHRlbGV2aXNpb24= IEpld2lzaA== IGNvbW1pdHRlZQ== IG1vdG9y IGFwcGVhcmFuY2U= IHNpdHRpbmc= IHN0cmlrZQ== IERvd24= Y29tcA== IEhpc3Q= IGZvbGQ= YWNlbWVudA== IExvdWlz IGJlbG9uZw== IOKAog== IG1vcnQ= IHByZXBhcmVk IDY0 IE1hc3Rlcg== IGluZGVlZA== IERlbg== IHJlbnQ= VEE= b3VybmV5 YXJj U3U= OTc= IGFkdmljZQ== IGNoYW5naW5n IGxpc3RlZA== IGxhdW5jaGVk aXNhdGlvbg== IFBldGVy aXNoZXM= IGxpdmVk IE1lbA== IFN1cHJlbWU= IEZlZGVyYWw= ICk7 cnVjdHVyZQ== IHNldHM= IHBoaWxvcw== dW91cw== IMKg IGFwcGxpZWQ= IE5PVA== IGhvdXNpbmc= IE1vdW50 IG9kZA== IHN1c3Q= REE= ZmZpY2llbnQ= ID8= b2x2ZWQ= IHBvd2Vycw== IHRocg== IHJlbWFpbmluZw== IFdhdGVy TEM= IGNhdXNlcw== 44Gu IG1hbm5lcg== YWRz IHN1Z2dlc3Rz IGVuZHM= c3RhbmRpbmc= Zmln IER1bg== aWR0aA== IGdheQ== IHRlcm1pbg== IEFuZ2VsZXM= TVM= IHNjaWVudGlmaWM= IGNvYWw= YXBlcnM= YmFy IFRob21hcw== IHN5bQ== IFJ1bg== dGhpcw== UEM= aWdyYW50cw== IG1pbnV0ZQ== IERpc3RyaWN0 Y2VsbGVudA== IGxlYXZlcw== IGNvbXBsZXRlZA== YW1pbg== IGZvY3VzZWQ= IG1vbml0b3I= IHZlaGljbGVz TUE= IE1hc3M= IEdyYW5k IGFmZmVjdGVk aXR1dGlvbmFs IGNvbnN0cnVjdA== IGZvbGxvd3M= IHRvbg== cmVlbnM= IGhvbWVz IEV4dA== IExldmVs cmFzdA== IEly IGVsaW0= IGxhcmdlbHk= IEpvZQ== IHZvdGVz YWxscw== IGJ1c2luZXNzZXM= IEZvdW5kYXRpb24= IENlbnRyYWw= IHlhcmRz IG1hdGVyaWFscw== dWxuZXI= IGd1aWRl IGNsb3Nlcg== dW1z IHNwb3J0cw== ZWRlcg== SnVzdA== IHRheGVz ODQ= IE9sZA== IGRlY2FkZQ== b2xh IHZpcg== IGRyb3BwZWQ= IGRlbGF5 aXRlY3Q= IHNlY3VyZQ== c3RlaW4= bGV2ZWw= IHRyZWF0ZWQ= IGZpbGVk YWluZQ== IHZhbg== IG1pcg== IGNvbHVtbg== aWN0ZWQ= ZXBlcg== IHJvdA== IGNvbnN1bHQ= IGVudHJ5 IG1hcmlqdWFuYQ== IERvdQ== IGFwcGFyZW50bHk= b2tpbmc= Y2x1c2l2ZQ== IGluY3JlYXNlcw== YW5v IHNwZWNpZmljYWxseQ== IHRlbGU= ZW5zaW9ucw== IHJlbGlnaW9u YWJpbGl0aWVz IGZyYW1l IE5vdGU= IExlZQ== IGhlbHBpbmc= IGVkZ2U= b3N0b24= IG9yZ2FuaXphdGlvbnM= w4M= IEJvdGg= aGlwcw== IGJpZ2dlcg== IGJvb3N0 IFN0YW5k IHJvdw== dWxz YWJhc2U= IHJpZA== TGV0 YXJlbg== cmF2ZQ== IHN0cmV0 UEQ= IHZpc2lvbg== IHdlYXJpbmc= IGFwcHJlY2k= IGF3YXJk IFVzZQ== IGZhY3Rvcg== d2Fy dWxhdGlvbnM= KSg= IGdvZA== IHRlcnJpdA== IHBhcmFt YXN0cw== ODc= IGVuZW1pZXM= IEdhbWVz RkY= IGFjY2lkZW50 V2VsbA== IE1hcnRpbg== VEVS IGF0aA== IEhlbGw= IGZvcmc= IHZldGVy IE1lZGlj ZnJlZQ== IHN0YXJz IGV4cGVuc2l2ZQ== IGFjYWQ= cmF3bg== IFdoZQ== IGxvY2s= IGZvcm1hdA== IHNvbGRpZXJz c20= IGFnZW50 IHJlc3BvbnNpYmlsaXR5 b3Jh IFNjaWVuY2U= IHJhcGlk IHRvdWdo IEplc3Vz IGJlbGlldmVz TUw= IHdlYXI= bGV0ZQ== w4PDgg== IERyaQ== IGNvbW1pc3Npb24= IEJvYg== T2g= YXBlZA== IHdhcm0= w4PDgsODw4I= IDIwMDM= b3J0aW9u IGhhc24= dXN0ZXI= IHVuaXZlcnM= IElsbA== IGtpbmc= b2xvZ2llcw== OTQ= IFRlbQ== IE1vcw== IHBhdGllbnQ= IE1leGljbw== Y2Vhbg== IERlYXRo IFNhbmRlcnM= eW91 IENhc3Q= IENvbXBhbnk= cHR5 IGhhcHBlbmluZw== RlA= IEJhdHRsZQ== IGJvdWdodA== QW0= TW9k VXM= dXRlcnM= IENyZQ== IFRob3Nl IDQ0 aXNlcg== IHNvdWw= IFRvcA== IEhhcnJ5 IEF3 IHNlYXQ= ZmZlZQ== IHJldm9sdXRpb24= ICgi IER1cmluZw== ZXR0ZQ== IHJpbmc= IG9mZmVuc2l2ZQ== IHJldHVybnM= IHZpZGVvcw== IGRpc2Ns IGZhbW91cw== ZW5jZWQ= IFNpZ24= IFJpdmVy IDMwMA== UE0= IEJ1cw== IENI IGNhbmRpZGF0ZXM= YXJkZW4= IHBlcmNlbnRhZ2U= IHZpc3VhbA== IHRoYW5r IHRyb3VibGU= bmVyZ3k= IDIwMDE= IHByb3Zl YXNoaW9u IGVuaA== IExvbmc= VU0= IGNvbm5lY3RlZA== IHBvc3NpYmlsaXR5 T3Zlcg== IGV4cGVydA== IGxpYnJhcnk= YXJ0cw== IERpcmVjdG9y IGZlbGxvdw== OTI= aXJ0eQ== IGRyeQ== IHNpZ25z IExvdmU= IHF1aWV0 Zm9vdA== IHB1cmU= IEh1bg== IGZpbGxlZA== cGhhcw== IEVsZWN0 ZW5kbWVudA== IEV4cGw= IHVuYWJsZQ== bnM= bW8= IHZhc3Q= b2Jl IGlkZW50aWZ5 YXBwaW5n IENhcm9saW5h Z3Jlc3M= IHByb3Rl IGZpc2g= IGNpcmN1bXN0YW5jZXM= cmF6eQ== IFBob3Q= IGJvZGllcw== IE11cg== IGRldmVsb3Bpbmc= IEFS IGV4cGVyaWVuY2Vk IHN1YnN0YW50 IEJvYXJk ZXNvbWU= IGRvbWVzdGlj IGNvbWJpbmVk IFB1dA== IGNoZW1pY2Fs IENoaWxk IHBvb2w= IEN5 IGVnZw== Y29ucw== c3RlcnM= IGh1cnQ= IG1hcmtldHM= IGNvbnNlcnZhdGl2ZQ== IHN1cHBvcnRlcnM= IGFnZW5jaWVz aWRlbA== T2I= dXJi IDQz IERlZmVuc2U= eWU= IEFw ZHVsZQ== IHRlbXBlcmF0dXJl IGNvbmR1Y3RlZA== IENoaWVm IHB1bGxlZA== IGZvbA== TGFzdA== b250bw== b3Npcw== VkVS RGVz IFBhbg== Rmlyc3Q= IGFkdmFuY2U= IGxpY2Vuc2U= cm9ycw== IEpvbg== IGltYWdpbmU= IGhlbGw= IGZpeGVk IGluY29y b3NpdGU= IExvZw== aWNrZW4= XTo= IHN1cnByaXNl aGFi IGNyYWZ0 b2x0 IEp1bA== IGRpYWw= IHJlbGV2YW50 IGVudGVyZWQ= IGxlYWRz IEFE IENsZWFu IHBpY3R1cmVz ZXNzb3I= IGFsdA== IHBheWluZw== UGVy IE1hcmtldA== IHVwZGF0ZXM= YW1pbHk= IFR5cGU= IEhvbWU= IDU1 c2VtYmx5 cm9tZQ== ODM= IGdyZWF0ZXN0 IGhlaWdodA== IGhlYXY= YWludHM= IGxpc3Rlbg== YXNlcg== IFNI IGNhcGFibGU= YWNsZQ== IHBlcnNwZWN0 aW5hdGluZw== IG9mZmVyaW5n cnlwdA== IERldmVsb3A= YWJpbg== cmM= IGJyaWdodA== YWx0eQ== YXJyb3c= IHN1cHBs aW5kaW5n YWNrZWQ= Z3lwdA== IEFub3RoZXI= cGc= IFZpcmdpbmlh IEx1 IHBsYW5uZWQ= IHBpdA== IHN3ZWV0 VHlwZQ== IERp IHR5cGljYWxseQ== IEZyYW5jaXNjbw== IHByb3NwZWN0 IERhbg== IHRlZW4= cmVlcw== IHNjaGVk IGhvbA== IHNjcg== IGxvdHM= bGlmZQ== IG5ld3Nw IGZvcmdldA== IE5vbmU= IE1pZGRsZQ== IFJ5YW4= ZWRk IHNldmVyZQ== IHN1aXQ= bGxlcg== OTM= IGNvcnJlc3BvbmQ= IGV4cGxvcw== dWF0aW9ucw== IGZsYWc= Z2FtZQ== cmlk IHByaW4= IERhdGE= IGRlcGxveQ== IEVudGVy c3VpdA== Z2hhbg== IE1lbg== IHRob3VnaHRz IG1hdHRlcnM= IGFkYXB0 IEFyaQ== IGZpbGw= IGZvcnRo IHNhbQ== IDQx IHBheW1lbnQ= IEhvcg== IHNwcmluZw== ZHVj IGxvc2luZw== IGJyaW5naW5n Rk8= YWxh IGRpc3RyaWJ1dGlvbg== aGVyZWQ= Ym91cg== IElzcmFlbGk= b21h IGNvbWJpbmF0aW9u IHBsZW50eQ== VkU= Q2Fu IEhhdw== IHBlcm1hbg== IFNwZWNpYWw= IHRvdw== IHNlZWtpbmc= IGV4YW1wbGVz IGNsYXNzZXM= Y3I= IGJlZXI= IG1vdmVz IElQ IEtu IHBhbmVs RXZlbg== IHByb3Blcmx5 IHJpcw== IHBsdWc= IGVzdGltYXRlZA== RXZlcnk= IGRlZmVuc2l2ZQ== YWdyYXBo IHByZWdu IGluc3RpdA== IFZpY3Q= IHZvbHVtZQ== IHBvc2l0aW9ucw== IGxpbmtz IFByb2dyYW0= IFdlZWs= YWd1ZXM= IHRyYW5zZm9ybQ== a2Vy IENFTw== IGNhcw== IG9wcG9uZW50 IHR3ZWV0 IENvZGU= IHNob3A= IGZseQ== IHRhbGtz IGJhZw== UGhvbmU= IGFpZA== IHBsYW50cw== IDY1 IGF0dG9ybmV5 YXJ0ZXJz cXVlc3Q= IE1hZ2lj IGJlZ2lucw== IG15c3Rlcg== IGVudmlyb25tZW50YWw= IHN0b3JhZ2U= Tk4= IG1hcmc= IHNrZQ== IG1ldGFs ZWxseQ== IG9yZGVyZWQ= IHJlbWFpbmVk IGxvdmVk IHByb21wdA== IHVwZGF0ZWQ= IGV4cGVydHM= IHdhbGtpbmc= IGFuY2llbnQ= IHBlcmZvcm1lZA== QVRF IG5laXRoZXI= aWVuY3k= IG1hbnVmYWN0dXJl IFBhaw== IHNlbGVjdGVk IG1pbmU= IHVsdGltYXRlbHk= IGV4cGxhbg== IGxhYmVs IFNlcnZpY2Vz cmlidXRlZA== VHJ1bXA= IHN5bg== IFVsdA== U0M= IG1lYXQ= IGdpYW50 IFdhcnM= IE9O IGFkbQ== IGludGVycHJldA== IGV2ZW5pbmc= IGV2aWw= IEJvc3Rvbg== IFdpbGQ= IMM= IEJpdGNvaW4= IEFtYXpvbg== RHI= IEluZm9ybWF0aW9u IG9idmlvdXNseQ== IGFkdmFuY2Vk UGhvdG8= b2xhcg== IHdlYXRoZXI= IHN5bWJvbA== IHNvbGU= IHBvdGVudGlhbGx5 b3N0ZXI= IG9yaWdpbmFsbHk= bXVu MzAw YXpl ZXNzaW9ucw== IGRlY2s= IHN0b29k IHlvdXRo IEJlcm4= UmVw IFRlc3Q= IGJhc2ljYWxseQ== b3RpYw== IGludm9sdmU= b2xpdA== bHlu U2Vl IGFpcmNyYWZ0 IGNvbmZpcm0= RVc= IG1lc3NhZ2Vz IFJpY2hhcmQ= IGtpdA== IHByb2hpYg== IHZ1bG5lcg== aXN0ZXJz IGV4aXN0ZW5jZQ== IHR1cm5pbmc= IFNQ IGRlc2lyZQ== IGZsYXQ= IG1lbnQ= c2Vhc29u YW5nZXM= IG5laWdoYm9yaG9vZA== IExha2U= QVRJT04= IHBvaW50ZWQ= YnVy IGlubm92 dWNrcw== VUw= IHByb2Zlc3Nvcg== IGV4cHJlc3NlZA== QUI= aWNpb3Vz IDIwMDI= IERldg== IHNlc3Npb24= IGJhcmU= c2Vu IGRpc3M= IENhdGg= IFBhc3M= IFBvaW50 IGRvY3Rvcg== b3Jyb3c= YWlsZWQ= IFJ1Yg== IERD IENoYXJs cGVyc29u IHdyaXRlcg== aWdodGVycw== dXJlYXU= IG9ibGln IHJlY29yZGVk IGJyb2tl IG9yZGVycw== aWx0eQ== IG1vdGlvbg== aW5pdHk= bGF3 YWRpdW0= IGltbWlncmF0aW9u IGNvbnRyYXN0 IGJhdHQ= IGV4Y2VsbGVudA== IHRlY2huaWNhbA== YW1p IHR1bg== IGNsb3Vk IFllYXI= Z2Vvbg== IGNyZWF0aW9u IHN0cmFuZ2U= IGF1dGg= IGZvcnQ= Ym9ybg== IGV4dGVudA== IFRvZGF5 IENsdWI= IHJhaW4= IHNhbXBsZQ== IGFjY2VwdGVk IHRhY3Q= IGZpcmVk IFNvbg== IHN0YW5kcw== IGJvb3Q= IDQ3 IHN0YXRlbWVudHM= IHZlcnNpb25z IHNlbGxpbmc= b3VuZGVk IDE5OTA= IHdlcmVu IFdhdGNo IGV4cGVyaW1lbnQ= UG9zdA== IHJldGFpbA== dWxlZA== SW5zdA== dW50ZQ== 44O8 IGRlcGFydA== IGJvbmQ= aXZlcnk= b21wbA== IHJlYWN0aW9u IFN5cmlhbg== IFBhYw== YXBwZWQ= YW5pZWw= RFA= IHJlc29sdXRpb24= IHJlYWN0 IGFwcHJvdmVk b25vbQ== bW9uZA== IE9mZmlj LS0t IHJlcGxhY2U= IHRhY2s= IHNwb3J0 IGNoYWlu IGVtZXJnZW5jeQ== cmFk IFBhbGVzdGlu IDQ2 IGF1dG9tYXRpY2FsbHk= IHJvdXRl IHBhbA== IGJhbmtz IFBhcmlz IE1lZGlh cm9hZA== aWNpbmc= aXh0 aXN0ZWQ= IGdyZXc= IGNvb3Jk IFdoZXJl b21pbg== IHN1YnM= 77+977+9 IMKx IGNvcnBvcmF0ZQ== IHNlbGVjdGlvbg== bm9vbg== IFJlcG9ydA== Y3M= Y2x1ZGluZw== b3JkZXJz YW5jaGU= IEl0cw== IHNsb3dseQ== IEVneXB0 IEFjYw== IGNvbGxl aXF1ZXM= RVg= IGF0dGVtcHRz dXJs IENyb3Nz IGZpbmRpbmdz IFND IE9S IGluZGV4 ZW5zaXR5 IFdheQ== IExhbmQ= IHNob2Nr ZGlz IGR5bmFt IGNhcnQ= bW9zcA== U2luY2U= aWVzdA== IEJveQ== IHN0b3Jt IENvbnRpbg== MjAxMw== aGV3 aWxpdA== IGVzc2VudGlhbA== aXF1aWQ= T3RoZXI= aXZlcmVk IHJlYXNvbmFibGU= QWN0 IHN1YnNlcXU= IFBhY2s= IEZvcnQ= IGNvbnNpZGVyaW5n IHVuaXZlcnNpdHk= bG9n IG1hcnJpZWQ= IGlsbHVzdA== IFRydWU= o48= IG51bWVyb3Vz cmFzdHJ1Y3R1cmU= IHNlcmlvdXNseQ== IHJlZmVycmVk dWE= IGNvbnNpc3RlbnQ= b25uYQ== IFJlYWw= cnVwdGlvbg== Y2lwbGVz IGZhY3Rz OTE= b3Rlcw== ZXJn VGhlbg== IGFjY29tcGw= Tm90ZQ== IHJldmVudWU= IHBhc3Npbmc= IG1hbA== ZWVu IFlldA== IGdhdGhlcg== dGVyZGF5 ZXdvcms= IEF1dGhvcg== UGU= IG9wdGlt IHJ1Yg== IOijjw== IHVua25vd24= c3RvbmU= IHVuaW9u b2x2ZQ== IG9wcG9ydHVuaXRpZXM= IGJyb3dzZXI= IFdhbA== IENvc3Q= IHJlcG9ydGluZw== c3Rz cGV0 IHNhbmQ= IHN1ZGRlbmx5 IHN1cnByaXNpbmc= IFZS IHNvbWV3aGF0 IEJhcw== dWx0dXJl aXp6 IENE IGNoYWxsZW5nZXM= IHNldHRpbmdz IGV4cGVyaWVuY2Vz IEZ1bGw= IGNhbm4= IHJlY2VpdmluZw== RVNU IGpvaW50 IGN1bHR1cmFs IGFzdA== ODI= YXN0ZXJu Y2VpdmVk IENydQ== IGJ1bGw= cGlyZWQ= YW1t IGZhY2luZw== cG93ZXI= IGJvc3M= IEhvbA== IGluc3Ry IGluY3JlYXNpbmdseQ== IHNoaWZ0 IHN0cmVldHM= IFdpbGxpYW1z YWJi IGxpZQ== IGxhdWdo IENh UEw= IGFkdWx0cw== IGN1c3RvbWVy IG9idGFpbmVk IHN1cHBvcnRpbmc= aHRtbA== ZmlyZQ== IGRldGFpbGVk IHBpY2tlZA== IFJpZ2h0 bGRlcg== RUU= c3Rvb2Q= IEtpbQ== IHdpcmU= IHNpZ2h0 IGRldmVsb3BlcnM= IHBlcnNvbnM= IHNhZA== IGN1cA== IHdhcm5pbmc= IGJveXM= bG9uZw== IGJpcmQ= Zm8= IHdhbA== IG9ic2VydmVk IHpvbmU= aXZlbmVzcw== IGNoYW5uZWw= Y3JpcHQ= IHJlZnVzZWQ= IEFnYWlu IHN1Yw== IHNwb2tlc21hbg== IFJlZg== cml0ZQ== b3VzdG9u 44Oz IFNoZXI= IGFjdHM= IE5hbWU= IHN0cnVnZ2xl YXJyeQ== b21ldGltZXM= IGRpc2NyaW0= SFQ= IGNhdGVnb3J5 IHJlYWxpemU= IGVtcGxveWVl IEFmZ2hhbg== ZW5nZXI= IGd1bnM= IFN0ZXZl IE1vdA== IE9s b2tlZA== IHRoaWNr IGZhaXJseQ== aWxseQ== IHN1cnZl IE1hdA== d2VpZ2h0 4pQ= IHRyb29wcw== IGFnZW50cw== IGJhdHRlcnk= IG1vdGl2 w6E= U2Vj ZGVu b3Zlcnk= TFM= IGZsdQ== IGNvbmZpZGVudA== IE9wZXI= IGVtcHR5 IHBoZW4= IHNlY3Rvcg== IGV4Y2l0ZWQ= IHJlbW90ZQ== YXBo b2Vu IGRlc3Ryb3llZA== IG1vcmFs IEhQ IFJvbg== IGRyZXNz IEJhdA== IGxpdA== IE1T IGFm SEw= cnVt aXNtcw== IHNob3VsZG4= IHN5bXB0 IFRvcm9udG8= aGV0aWM= IGNhcmJvbg== IGluc3RhbGxlZA== IHZpb2xlbnQ= IHNvbGFy amE= IHByYWN0aWNlcw== IHJpZGU= IFBlbm4= IGltcHJvdmVk IGF1ZGlv IGJlaGF2aQ== IFBT IGVhdGluZw== RGF0YQ== IFJldmlldw== cGFzcw== Y2xhaW0= dWF0ZWQ= YW5nZXJz Y2hlbg== IHByb3BlcnRpZXM= IGFueXdoZXJl QW5vdGhlcg== IGJsb3c= IEphY2tzb24= IHByb3Vk IHBsYW5l bGluZXM= IHNxdWFyZQ== IHByb29m YW5zYXM= IHRhbGtlZA== bWFrZXJz IHNpc3Rlcg== IGhvbGRz IHJlc2lkZW50 ID09 IHJlc2lzdGFuY2U= IHNwbGl0 IHByb3NlY3V0 IGNvbmZpZGVuY2U= cmVzZW50cw== IGN1dHM= IGV4Y2VwdGlvbg== IHplcm8= R2V0dHk= IGNvcHlyaWdodA== IHRvdGFsbHk= b3JtYWw= aWZpY2F0aW9ucw== IEF1c3RyYWxpYW4= IHNpY2s= IDE1MA== IGhvdXNlaG9sZA== IGZlZXM= IGRyaXZlcnM= b2dlbg== IE5Z IG5lY2Vzc2FyaWx5 IHJlZ3VsYXRpb25z ZWFyaW5n c2w= IHBlcnNwZWN0aXZl Y2FyZQ== aWNpYWw= SGlz IGVzY2FwZQ== IHN1cnByaXNlZA== IFZhbg== dXJyZW50 IHZhYw== ODE= IFRodXM= IGVtcGhhcw== IENoYW1waW9ucw== IEljZQ== IG5hcnI= IGhlYWRz IGNhdXNpbmc= YmVs Zm9ydHVuYXRlbHk= IE1h IHRhcmdldHM= Y2lwbA== IGFmdGVybm9vbg== IGFkZHM= IE1heWJl IEZvdXI= ZXNzZWQ= cGxldGU= IHVzdWFs Y2hv aW5ndQ== IHdpdGhk IEVuZXJneQ== IEVjb25vbQ== T08= IGFydGljbGVz IGluanVyZWQ= IG1hbmFnZQ== IGV4cGxhaW5z IGRpYWdu UmVj YXR1cmVz IGxpbmtlZA== IGRpc2N1c3NlZA== IGV4cGxv IG9jY2FzaW9u YXRoYW4= IG9wcG9zaXRl IGZhY2Vz IGRlbmllZA== IEtuaWdodA== IG51dA== IGFwcHJveGltYXRlbHk= IGRpc2FwcG9pbnQ= b255bW91cw== IEJlc3Q= IExv IEh5 IEFmZg== IHZvdGluZw== YW53aGlsZQ== IElJSQ== IGluc3RpdHV0aW9ucw== YWdyYW0= IERhaWx5 IGRyYWc= IG5lYXJieQ== IGd1aWx0eQ== IGNvbnZlcg== UHJl c2hpcA== IHJld2FyZA== IHBoaWxvc29waA== IFNT dWdo IGFwcHM= ZnJpZW5k IHVwcGVy IGFkdmVydA== IHNub3c= IGZydXN0 IG91cnNlbHZlcw== RnI= IERpZQ== YW1waW9u IGRpc21pc3M= IGNlcmU= IHNpZ25hbA== ZnJvbQ== ICku IDUy IGNyaW1lcw== aXRvcnM= ZXN0aXZhbA== dXNldW0= IGNvdW5jaWw= IFNhdWQ= TWF5 IEd1bg== aWNpYW4= ZXRoZXI= IHN1ZmZpY2llbnQ= IEhlbg== c29sZQ== IGhpc3RvcmljYWw= IEZhcg== IFR1cm4= IHBpbg== IHN1Y2NlZWQ= bWF0 bHltcA== IHRyYWRpdGlvbg== IE9r IGNybw== IGRlc2NyaXB0aW9u YWxsZQ== IHNreQ== VGU= IHdpZGVseQ== IHdhdmU= IGRlZmluaXRpb24= IEpld3M= IGN5Y2xl IHJlZmVyZQ== IGJyaW5ncw== dXNhbA== IGFsaXZl IGZyZXF1ZW50bHk= IGludGVudGlvbg== IENvbnRyb2w= bHY= eXN0ZW0= IHByaXZhY3k= Z2VudA== cmVuY2U= IFF1ZXN0 IENocmlzdG1hcw== IHJhaWw= IGNvb3Blcg== IHRlc3RlZA== IENhcHQ= YXNrcw== IGNvbWZvcnRhYmxl IGRlbGl2ZXJlZA== c2NhcGU= IGRlcHRo IEdPUA== IHdyaXRlcw== IGFzc2V0cw== IHNhdg== aW1lbnRz IHRyYW5zaXRpb24= IGFydGlzdA== IExvb2s= IGxvYg== IGNvbXBvbmVudHM= YXJpdHk= IHdhbGtlZA== IHJvb3Q= IHBhcnRpY2lwYW50cw== IG5vdGljZWQ= IHJlc2M= IG5hdg== IEFkbWluaXN0 ZGE= dXRyYWw= cGxhdGU= IGltcG9ydGFuY2U= IGFzc2VydA== aW91c2x5 Y3JpcHRpb24= IGluanVyaWVz IENoZWNr IHJlZ2lzdGVyZWQ= IGludGVudA== IG1pc3NlZA== b2dyYXBoaWM= IHNlbnRlbmNl b3VudGVy IGFzc2lzdGFuY2U= ZXZpbg== IGRhdGFiYXNl IGJ1aWxkaW5ncw== IGNsYXNzaWM= IHRoaW5rcw== IE9oaW8= UHI= dWdn IGZlZQ== cGFu IGVmZmVjdGl2ZWx5 IGZhY2lsaXR5 IGJlYXI= IGNoYXB0ZXI= IGRvZ3M= IENvbHVtYg== IGxhdHRlcg== aXRpYWw= IGFkbWl0dGVk VFY= IEdlb3Jn IHBvc3Rz XFw= IGxhd3llcg== IGVxdWl2YWw= IG1hbmQ= IGNvbnRyb2xsZWQ= IFdhbGs= IEFuZHJldw== IG1lbnU= YW1lbnRhbA== IHByb3RlY3RlZA== dmE= IGFkbWluaXN0cg== b3JhbA== IHJlaW4= IFNhcg== IGFtb3VudHM= IG5hdGl2ZQ== IE1vb24= IHJlcHJlc2VudHM= IGFiYW5kb24= IGNhcnJ5aW5n IHRhbms= bWFyeQ== IGRlY2xhcmVk VHViZQ== IGhhdA== IHB1bmlzaA== ZWxsZWN0 bWVz IHVuaXZlcnNl IFJvZA== cGh5 IGluZnJhc3RydWN0dXJl IDUx IG9wcG9zZWQ= b3dudA== Y2E= IE1ha2U= IGhhcmR3YXJl IGNvZmZlZQ== UmVs YmFs d29ybGQ= IFNhZg== IFNlYQ== aW5hbHM= IG93bmVk IGhhbGw= ZXJzaW9u IGRlc2NyaWJl IFBvdA== IHBvcnRpb24= IGF0bW9zcA== IGdvdmVybm1lbnRz IGRlcGVuZGluZw== IG9mZmVuc2U= IHRyaWNr YXdh IExpbmU= IFZpcw== IEhhcmQ= IE9yaWc= IENsaWNr IGRlc2s= IFZhbGxleQ== IFNvdg== IG1vdmllcw== IHJlbWFyaw== IG1haWw= IGNvbnNjaW91cw== IHJ1bGluZw== IFJpZ2h0cw== IG1lZGlj aGVudA== IFdvbWVu Pjw= IHJlcGxhY2Vk IFByZW0= IFRoYW5rcw== IHJlbmV3 IEJhbGw= aWZvcm0= IHNob3Rz Q29tbQ== IGFybWVk IGNvbnN0YW50 IHRhc3Rl IHJlYWxpemVk IGJ1ZmY= IG1v IGVmZmljaWVudA== TW9zdA== b3JhdGlvbg== aWZpZXM= IGNvbW11bmljYXRpb24= IGZsb29k IGNvbnNlcXVlbmNlcw== IGFueXdheQ== aWdn IEdN IFRoYW5r IGlyb24= IGV2b2x1dGlvbg== IENvcA== dHdpdHRlcg== IDk1 IHJlbGF0aW9uc2hpcHM= YWRlbA== IFlvdW5n IHByb3Bvc2Fs YXllcnM= dWlsZGluZw== IEhvdA== T1JF Y29z IGNvbGxhYm9y UEc= YXh5 IGtub3dpbmc= IHN1cHBvcnRz b3dlZA== IGNvbnRyb2xz IG1lcmVseQ== dW1lcg== IGF0aGxldA== IGZhc2hpb24= cGF0aA== IGdpZnQ= IGVyYQ== QU5E IGtpbmRz IEtvcmVhbg== IGxlZ2l0 dWxvdXM= IGVzc2VudGlhbGx5 IHRoZXJhcA== bmlj IHN1ZmZlcmVk IGh1cg== IHByb21pc2U= IGV4Y2Vzcw== IG92ZXJ3 IHByaW1l IEhvdXN0b24= ZXJyeQ== IE1z UlM= MjAxMg== IHN0b3Jlcw== IE9seW1w IGpvdXJuZXk= QWx0aG91Z2g= U3Vi IEVkdWM= IENoYXB0ZXI= IHJlcXVlc3Rz IGNvbnN1bWVycw== IHRpbnk= IGlzb2w= IEZhaXI= YmE= IFlPVQ== IGNyYXNo Y2VsZXI= IGVtb3Rpb25hbA== IGdvb2Rz IGVsZWN0ZWQ= IG1vZGVy IExpbnV4 IGJsb2Nrcw== IGlzbGFuZA== IFNvY2lldHk= IGVsZWN0aW9ucw== IGJyb2FkY2FzdA== IGNoZWFw IG5hdGlvbnM= IHNlYXNvbnM= NDAw IHdhc3Rl IFNhdA== IGZpZWxkcw== ZW1wbG95 IHByb2ZpbGU= IGF1dGhvcnM= QUxM IEdyYQ== d2VzdA== IFR5 IGRlYXRocw== IHZhY2M= IGZvcm1lZA== IGR1 IG9uZ29pbmc= IE11c2xpbXM= ZWxm aWd1cmU= IGFzc3VtZQ== IFVrcmFpbmU= d2F0ZXI= IGNvYXN0 IHZvdGVk Z29y IEFT IE1pY2hpZ2Fu YXph IEFybQ== aXJv IGZsZXg= YXN0ZXJz Jyc= IHdlbGNvbWU= YXJs IGxvY2F0aW9ucw== aWdhdGlvbg== IEZpbA== IGJ1eWluZw== IGFyY2hpdGVjdA== IGhhcmRlcg== IEN1Yg== IGludGVyZmFjZQ== IHJlc3RhdXJhbnQ= IGRpc2NvdmVy IGV4Y2VlZA== IGZhdm91cg== Z2VyeQ== IGR1dHk= IHBpdGNo YWRvcg== IE1hY2g= Ym95 IHJlc3BvbmRlZA== IGV4dGVuZGVk aGVycw== TWFueQ== cmFpZA== aWZlcg== IElucw== U2Vy IG1lZGl1bQ== c2hl IFNwb3J0cw== IG1hZ2F6aW5l dXRhdGlvbg== IGxpbWl0cw== IEdhbGw= IGV4dGVybmFs cmF6aWw= IHlvdW5nZXI= dGxl IHJlbWluZA== IENPTg== IGltbWVkaWF0ZQ== IGhpZGRlbg== IHZvbHVudGU= IHNpbXBs b2RjYXN0 IHBoYXNl ZHI= IHBsb3Q= IGV4cG9zdXJl Ukk= b2dyYXA= dmlu YW5pc2g= IEFjYWQ= IEVuZ2luZQ== IGV4cGFuc2lvbg== IFBheQ== WW91cg== IHB1c2hlZA== IEVsbA== IEhlYWQ= IG1hcmtldGluZw== IEFD a2V0 IGhpdHM= IGdybw== IEFnZQ== IFNjb3Q= XVs= IHN0aW0= IGlQaG9uZQ== iJI= IG5hcnJvdw== IEdldHR5 IFR1cmtleQ== IHBlcmZlY3RseQ== IGVuYWJsZQ== dXRjaA== IHByZWNpc2U= IHJlZ2ltZQ== IHNoaWY= IGNvbXBlbnM= Z3Vu ZGl2 IGNob3Nlbg== IEtlbg== QW55 IHRyZWVz IHJlY29tbWVuZGVk IFJlbg== dWFibGU= IEhU Rm9sbG93 RUc= IEhhbmQ= IEtlbm4= IGFyZ3VtZW50cw== IGV4aXN0cw== IGJpa2U= IENvbnNlcnY= IGJyZWFraW5n IEdhcg== IGNyYXp5 IHZpcnR1YWw= YXlsb3I= aXhlbA== IDE5ODA= IHBlcm1pc3Npb24= IFNlcmllcw== IGNvbnN1bWVy IGNsb3NlbHk= Y2FsbGVk IDU0 IGhvcGVz IGFycmF5 IFdpbg== IExhYm91cg== IHNwb25z IElyZQ== IHBvdw== IHJlYWRlcnM= IGVtcGxveW1lbnQ= IGNyZWF0dXJl IHJlc3VsdGluZw== IGFjY3VyYXRl IG1vbWVudHM= IGFyZ3VlZA== IHBlZA== RHVyaW5n IDUz IFRhbA== IHNvdWdodA== IHN1ZmZlcmluZw== IGljb24= bGVl ICgk YWxpYW4= wrA= IHByYQ== IGJvbnVz KCI= a28= IGFjdGluZw== REU= ZmFsbA== IGNvbXBhcmlzb24= IHNtb290aA== IE5BUw== dXBw IEpvc2VwaA== ZXBpbmc= IFRha2U= IE1pZA== IHNlbmRpbmc= ZmFzdA== IEZhbGw= IGRlYWxpbmc= dXNlcg== IE9yZ2Fu Q28= IGF0dGFjaGVk IHNlZXM= JS4= IHR5cGljYWw= QVJU IGZpbmRz IEFzaWE= dW1pbg== IENvcmU= IEVudA== aW5lbnQ= dWNl IEJsb29k IE5ldmVy IGVtYWlscw== IGhpZ2hsaWdodA== IGNvbmZyb250 YXR1cw== dXRlZA== IHVudXM= IHRvcGlj IEFkYW0= IGJsZQ== YXRp IHVuZGVyc3Rvb2Q= U2V0 c3RydWN0 VFA= IG1vYg== YWE= IFN0YXJ0 cGVjdGVk c2VsbA== IGRlZGljYXRlZA== IENB dWFu IHNvbmdz ZXNjcmlwdGlvbg== IHRlY2g= IHJhcGU= IGFzaWRl IGdyYW50 IDU2 c3Vi IGFyZ3Vl IGNvbnRhaW5pbmc= IHNjaGVkdWxl IGxpYmVyYWw= IHB1YmxpY2x5 IGhlYXZpbHk= IFV0 aW5lcg== IFNlY3Rpb24= IENhcmU= d2VldA== bHM= RGlz 4pSA IEZvbGxvdw== QmFjaw== IElU IGJlcw== amk= IEhpdA== ZXN0ZWQ= IGV2ZXJ5Ym9keQ== IFN3ZWQ= IGZlbWlu IGZhY2lsaXRpZXM= IGNvbnZlbg== Q29tcA== IE9T Y29yZQ== IGFueA== IGRpdmlzaW9u IENhbQ== IFN0YW4= bWF0ZXM= IGV4cGxvcmU= cGxvbQ== IHNoYXJlcw== cGxvYWQ= YW5lcw== IGlkZWFs ZXRlcnM= IEJhc2U= IHBsYXN0aWM= IGRpc3RpbmN0 IE5ldHdvcms= IFNlYXR0bGU= IHRyYWRpbmc= ZW5zdXM= aW50ZW5k IGV4aGli IGluaXRpYWxseQ== IEZvb2Q= IHRob3VzYW5k IEJ1c2luZXNz YWN0ZXI= IHBhcmFncmFwaA== IHJvdWdobHk= IHd3dw== IGNyZWF0aXZl IENvbmY= IGNvbnN1bXB0aW9u IGZpbG1z YWdhbg== IG9idGFpbg== IHRhbGw= IHRvcg== IGFja25vd2xlZA== IGdyb3du YWxv S0U= IDQwMA== ZW5kZXJz dGFpbmluZw== VUc= IHN1aWNpZGU= IHdhdGNoZWQ= IExpc3Q= YWxp cmVoZW5z IHN1cnJvdW5kaW5n IHBpcA== IGZseWluZw== IEphdmE= b3JkYW4= IHNlcnZpbmc= aW5hdGlvbnM= cG9zdA== IHNobw== QXY= IGphaWw= enk= IDE5OTk= IDwv IGxpdGVyYWxseQ== IFNpcg== IGV4cG9zZWQ= IGxpZXM= c3Rhcg== IGJhdA== IGVhcm5lZA== IERpZw== IHNwZWNpZmllZA== IFNlYXNvbg== IGRlZ3JlZXM= RG9uYWxk IGNlbnRyZQ== IHNoYXJpbmc= IHdpbnRlcg== IENP Q2hl IM4= TVA= IHVudw== IGZld2Vy IE1pcg== IHNvbWV3aGVyZQ== IEtleQ== IGF0dGFja2Vk IEtpcg== IGRvbWFpbg== IHN0cm9uZ2Vy IDk5 IHBlbmFsdHk= SWQ= U2NyaXB0 IGRlY2xpbmVk IG5lY2s= IGZyYXVk IGN1cnJlbmN5 IHJpc2luZw== UkM= 4oCm4oCm SHo= IHRhYg== IHRhbGVudA== bmFt IE5CQQ== IHZpbGxhZ2U= IGxlZ3M= IE5leHQ= RWQ= IGFjaWQ= IGh5ZA== ODAw IGludm9sdmluZw== IEltYWdl IEJlZm9yZQ== Rmw= IHllc3RlcmRheQ== U291cmNl IHRlcnJvcmlzdA== IHN1cA== IHN5bnQ= IFNhdWRp IHdlc3Q= IHJ1 YnVyZw== IHZpc2libGU= IHN0cnVjaw== cmlzb24= IGF3ZXNvbWU= IGRyYXdu IGFuc3dlcnM= IEdpcmw= IFJhbQ== IHRocmVhdHM= IGRlZmVhdA== b3NpdA== IHZlbnQ= YXR1cmFsbHk= QW1lcmljYW4= ZW5kYQ== IEhvbHk= IHJ1bQ== JSw= Y2FzZQ== IEhpc3Rvcnk= IFlvdVR1YmU= IHNpdHVhdGlvbnM= IEROQQ== U3Rl IHNhdmVk SXRlbQ== IHJlY2lw b2xvZ2lzdA== IGZhY2Vk IGVsaWc= T25jZQ== IExp dWg= IG1pc3Rha2U= IERpdmlzaW9u IEJlbGw= IHN5bXB0b21z wq4= IGRvbWlu IGZhbGxpbmc= IGVuZGluZw== YXNoZXM= IG1hdGNoZXM= IE9ubGluZQ== IGV4cGxhbmF0aW9u RGVm cmVkaXQ= IGFueW1vcmU= IFRvdGFs IEZPUg== dXNoZWQ= IGxldHRlcnM= IHJpc2tz IE9L IHJlcG9ydGVkbHk= Olw= IHBsYXRl IHN1YmplY3Rz IGF0dGVtcHRlZA== aWZpZXI= aWFuYQ== IHVubGlrZWx5 IFRob3VnaA== dW1h IEludmVzdA== IFByaW4= aWNhbg== IERhcg== IENvbG9yYWRv YXVn IHZlZ2V0 YW9z cmlh IHNoZWw= IG1hcmtlZA== ICgp IHNwcg== cG8= IExpbms= IGRlZmU= IEpy IHRoZW1l IHBhc3Npb24= IFBlbg== IGluZm8= aXplcg== IHNoaXQ= IENpdmls YXBzZQ== Y3Jl IHBvbHk= IGNvbXBvbmVudA== IENoYXJsZXM= IElyZWxhbmQ= IFByb3Y= IGRvY3RvcnM= IGdyYW50ZWQ= IHBhaW50 IGhvbm9y IHNtb2tl IHBheW1lbnRz IHByaW1hcmlseQ== IEtpbmdkb20= cmljaA== YXRlbGw= IGRlYWxz IHNjaGVkdWxlZA== IGZ1bmRhbWVudGFs IHByb3RlaW4= IG5ld3NwYXBlcg== IGNsaWVudHM= eXRob24= IERhdGU= aHVz IGZlZWRiYWNr IHN0cmV0Y2g= IGNvY2s= IGhvdGVs IFF1ZWVu IHN1Z2Fy IGp1 IG1pbGs= IGFwcHJvdmFs IExpdmU= IGVxdWl2YWxlbnQ= ZWZ1bGx5 IGluc2VydA== em9uYQ== IGV4dGVuc2lvbg== ZHJp Sm9obg== IGFjY29tcA== U20= IEZ1bmQ= IGNvbnN0YW50bHk= IGBg IGdlbmVyYXRlZA== IEFjdGlvbg== IFBzeWNo IFRyaQ== IHJlY29nbml6ZQ== IHZhcnk= cGhh IFJh ZGY= ZXRjaA== IFNvdmlldA== VHdv IHBhdHRlcm5z IHByb2Zlc3Npb24= YW5pbmc= VGltZQ== IExpbQ== IGNvbG9ycw== IEF6 IFRS IGluZmVjdA== IHBoZW5vbWVu IHNoZWxs QWxzbw== IHB1dHM= IGRlbGl2ZXJ5 IGJyb3du IHByb2Nlc3Npbmc= IGxpZ2h0cw== ZXNzYWdl IEJyb29r IEF1ZA== bGF0aW9u IGluZHVzdHJpYWw= TGlrZQ== IEJyYXppbA== cm91cw== RVNT IEx1Yw== IHNvbWVob3c= IDg1 IHByb3BvcnQ= IHBvbGl0aWNpYW5z IGluZGljYXRl IGhvbGU= IHRlY2huaXF1ZXM= IGNvbXBldGl0aXZl IHBocg== IHZv aXN0ZW50 IERyZWFt IGNhbXB1cw== IGFzcGVjdHM= IGhlbHBmdWw= IHNoaWVsZA== b3JzZQ== IHRyaWdnZXI= bWFs IDU4 IHRvcnQ= IHBlcnNvbmFsbHk= IHRhZw== IGtlZXBz IFZpZGVv IGJlbmNo IGdhcA== YWlyZQ== IGVhc3Q= IHJlY292ZXJ5 cGVyaWFs IHByb2ZpdA== IE1pYw== IDU3 IGNvbG9u IHN0cm9uZ2x5 c3R5bGU= IGFsbGVnYXRpb25z aGFu IHJlcG9ydGVycw== am8= cmluZQ== YXJnZXQ= YW5kYWw= IDAz IGZsYXNo dHJhbnM= IHN0cmljdA== IHBhcmtpbmc= IFBha2lzdGFu IGxp IHdlaXJk IEVyaWM= IHJlZ2lvbnM= IEp1bg== IGludGVsbGVjdA== IFdI b2Rpbmc= cmlidXRlcw== dXBpZA== IFRpdA== IGZpbmdlcg== b3JpYQ== IGVsZXY= IEZpZWxk IGNvbmNsdXNpb24= Ozs= IGZlZWxpbmdz IGV4dGVuc2l2ZQ== IG1peGVk IG5ldXJv dnk= IGhhcmFzcw== IENpcmM= b3VjaA== IHRlcnJpdG9yeQ== IHN1Y2Nlc3NmdWxseQ== TWFy IGluZ3JlZA== IG92ZXJ3aGVs IGxheWVy Vmlldw== IGFsbGllcw== aWxsYW5jZQ== IFRocmVl IGJ1bmNo IG5vcm1hbGx5 IG5ldHdvcmtz IHNhY3I= IENJQQ== Ymxlcw== IGNob3Nl IG9wcG9uZW50cw== IHJlZ2FyZGxlc3M= IGZyYW5jaA== IHByZWY= IFBv IGJyaWRnZQ== YW5uYQ== IFNpbHZlcg== IHdhZ2U= cGFnZQ== cmlvcg== IHJhZGljYWw= IExpdHRsZQ== IG1hbmlw IHNlY3JldGFyeQ== IGdhbmc= RFI= RkE= IGRlY2VudA== IFNwaXJpdA== IHVuY2xl IERldmVsb3BtZW50 IGludmVzdG9ycw== IHdhbGxz IHB1Ymxpc2g= IGdlbmVyYXRl aXNzaW9ucw== Y2Fy IHByb21vdGU= IGN1dHRpbmc= IGNoZXN0 IGRyaW5raW5n IGNvbGxlY3RlZA== IDcy IGhvcGluZw== IGVtYnI= Z29yaXRo IHdhcm5lZA== IGluc3RydWN0aW9ucw== T0c= IERpZA== IEFnZW5jeQ== IGdlYXI= IGNyaXRpY2lzbQ== IEZ1cnRoZXI= IHV0aWw= YW5ueQ== UmVk IGNvdW5zZWw= IEFzaWFu IHJlZHVjdGlvbg== cG9vbA== IHRlYWNoaW5n IGRlZXBseQ== aXk= IGVzdGltYXRlcw== IGNob2ljZXM= IHBlcm1hbmVudA== aW5lbQ== a2Vs IGZhc2M= cHNl ZmlsZQ== IExvdw== IFBlcnNvbg== IHRvdXJuYW1lbnQ= c3RhbA== IG1lbA== VVNU IFJheQ== YXpp VmFs IGNvbnRhaW5lZA== IEhvbGx5 IHdha2U= IHJldmVhbA== IHByb2Nlc3Nlcw== IElTSVM= IDA5 IGJsaW5k IHN0ZWVs IEJhZA== IGNhcmVmdWxseQ== YXBweQ== cm9pdA== IGdhbWluZw== IGhvdXNlcw== IENvbGw= IHRydWNr ZXJt IHNjb3JlZA== IG9jY2Fz cmV0dXJu Ym91bmQ= dmFy IHNoYXJw IGFmcmFpZA== IEVY YW1iZXI= Y2lmaWM= IHNjaGVtZQ== TkM= IFBvbGl0 IGRlY2xpbmU= IDE5OTg= IHB1c2hpbmc= IHBvc3Nlc3Npb24= IHByaXZpbGU= IHRlYWNoZXJz IHlpZWxk SEE= IERhdmlz aXRsZWQ= IyMjIyMjIyM= IHJpZw== IERhbmllbA== YWNvbg== IGhpZGU= dXRlbg== IGNvbGxlYWd1ZXM= IHByaW5jaXBsZXM= IGxvdWQ= IHNpbg== IERlbW9u IHN0b25l IDAy IHRhdWdodA== IHRlcnJpYmxl IHN0dWNr IFBvbGljeQ== dGVlbg== IGltcGxlbWVudGF0aW9u IEJCQw== IEFQSQ== IHdoZWVs YWxsYXM= IGNoYW1waW9ucw== b2xhcnM= cGxheWVy IHJlcGVhdGVkbHk= IFN0aWxs IGxpa2Vz YXN0eQ== ZXN0ZXI= IENhdGhvbGlj Ukw= IGJhdGg= IG5vaXNl dGl0bGU= IG5vcnRoZXJu UGFydA== IG1hZ24= IGZhYg== IEFzaA== IGRpc3Bs IHRpY2tldA== IG11cmQ= IGFsb25nc2lkZQ== IE11c2lj IHJpdmVy IFN0ZWVs IENM IFBsYXllcg== IE11bHQ= b3dpbmc= cmVw c2l6ZQ== IHR1cg== IEdlb3JnaWE= aXNjYWw= cmFjdGlvbg== IGNhYmxl IDU5 IHdpbnM= IHVwY29taW5n IHN1cnZpdmU= IGluc3BpcmVk IEVkdWNhdGlvbg== IHN0YXRpc3RpY3M= IEZvb3Q= aWFtaQ== IHllbGxvdw== IFBhZ2U= Li0= IEhhcw== IHVyYmFu IGF4 ZXNzZWw= XCI= IHF1YXJ0ZXJiYWNr IHJlZ2lzdGVy IExhYm9y IGFiaWxpdGllcw== IEZhbWlseQ== IHZhcmlhYmxl IFByaWNl IGNvbnRlbQ== IHRoaW4= IEVxdQ== ZGF0YQ== IGdvdHRlbg== IGNvbnN0aXQ= IGFza3M= IHRhaWw= IGV4Y2l0aW5n IEVmZmVjdA== IFNwYW5pc2g= IGVuY291cmFnZQ== aW5zb24= IEFo IGNvbW1pdG1lbnQ= Q1M= IHJhbGx5 IDo6 IHN1YnNpZA== IHNwaW4= IGNhcHR1cmVk MjAxOA== IGlubm9j IGFsbGVnZWRseQ== IENvbWU= IGFydGlzdHM= IE51bWJlcg== IGVsZWN0cm9uaWM= IHJlZ2lvbmFs YXBlcw== IHdyYQ== IG15dGg= cHJpc2U= IE1pbGxlcg== IENyZWF0 IEVwaXNvZGU= YmVsbA== IGRpcmVjdGVk IGV4dHJhY3Q= IHNvcnJ5 IHZpY2U= YWdnZXI= IFN1cHBvcnQ= IDY2 IElyb24= IHdvbmRlcmZ1bA== IGdyYQ== TmV0 aW9uZQ== RW5n IHNoaXBz aWtlcw== IEtldmlu aXRhcg== IGFjdGl2aXN0cw== dHJ1ZQ== IEFyaXpvbmE= ZW50aA== IERlc3BpdGU= IFNF IGhhYml0 ZXJuZWw= IGlucXU= IGFib3J0aW9u IHZvaWQ= IGV4cGxpY2l0 IGVuZ2FnZWQ= IGFuZ3J5 IHJhdGluZw== IGZyYWc= YnJv aWNraW5n ZGV2 IHdvcnJpZWQ= IG9ic2Vy IGFwYXJ0bWVudA== IEdU IGVzdGF0ZQ== IENvbnN0aXR1dGlvbg== ZW1vbg== IFNub3c= IGNvdW50eQ== IGRpc2Fn IFN0ZXBoZW4= IGltbWlncmFudHM= d2luZA== IE5hdGlvbnM= IGZvbGtz T3V0 IGdhbGw= IHRhcmdldGVk IHN0ZWFk IEJvbg== IExpYg== IGluZm9ybWVk IDEyMA== Y2hhaW4= aWRlbGluZXM= b3JvdWdo IGRyaXZlbg== IHJlZ3VsYXJseQ== IGJhc2tldA== IHByaW5jaXBsZQ== b2N1bWVudA== IHN0dW4= aWJpbGl0aWVz IFJvbWFu IEFib3V0 IGFsZXJ0 IGRlbW9jcmFjeQ== IHJlcHJlc2VudGVk SFM= Y2Vycw== cGFyZW50 QXJ0 cGFjaw== IGRpcGxvbQ== cmV0cw== IE5P IGNhcHR1cmU= IEFkdg== hKI= IGFubm91bmNlbWVudA== IExlYXI= IGhvb2s= IHB1cnM= IFN1Y2g= IENhbWVy IHJlZnVnZWVz IFZl UG9s IHJlY29nbml6ZWQ= bGli IGhhZG4= QXNz IHBpbG90 dXNoaW5n IHJldHVybmluZw== IHRyYWls IFN0b25l IHJvdXRpbmU= IGNvdXJ0cw== IGRlc3Blcg== IGZyaWVuZGx5 IEl0YWx5 IHBsZWQ= IGJyZWF0aA== IHN0dWRpbw== TlM= IGltcHJlc3NpdmU= IEFmZ2hhbmlzdGFu IGZpbmc= IGRvd250 aW5raW5n IFJvZw== aWFyeQ== Y29sb3I= c2V4 YXJvbg== IGZhdWx0 IE5pY2s= RG93bg== IFJvc2U= IFNvdXRoZXJu WFg= aXNvZGVz TGlzdA== NjAw IG91dGNvbWU= ZXJy IGVsc2V3aGVyZQ== IHJldGlyZQ== IHBvdW5kcw== IEdsb2JhbA== UGVvcGxl IGNvbW11bmljYXRpb25z IGxvYW4= IHJhdGlv IEVtcGlyZQ== IGdvbm5h IGludmVudA== REY= IDE5NzA= IENvbW1vbg== cGF0 IHByb21pc2Vk IGRpbm5lcg== IEhvbQ== IGNyZWF0ZXM= IG9wZXJhdGU= dmVydHk= IEpvcmRhbg== ZXRpbWU= IHN1c3RhaW4= UmVn IGluY3JlZGlibGU= aW1h IHdhcnJhbnQ= IG1t QXR0 IGxhd3N1aXQ= IHJldmlld3M= aXR1cmU= IFNvdXJjZQ== bGlnaHRz IEZvcmQ= IDYz Z3JvdXA= c3RvcmU= IGZlYXR1cmVk IGZvcmV2ZXI= IHBvdmVydHk= IFBvcA== IENOTg== YXp6 YWJpcw== YWNoaW5n IGxhaWQ= IFN1cHA= IGZpbHRlcg== ZW5h IENvbW11bml0eQ== IGNyZWF0dXJlcw== dWN0aW9u IFJveWFs IGFzc29jaWF0aW9u IENvbm5lY3Q= IEJyYWQ= 4paI bGVycw== dGhlcmU= IEdp IHZhbHVhYmxl QUNL IFRheWxvcg== IGxpcXVpZA== IEF0dG9ybmV5 IENhcmw= IEZpbmFs YWdh IFdpbHNvbg== QmVjYXVzZQ== IFByb2Zlc3Nvcg== YWth IGluY3JlZGlibHk= cmFuY2U= ISk= UmVm c2s= IHNvbHV0aW9ucw== IGF0bW9zcGhlcmU= IGJsYW1l dW1lcw== IE5vYg== Q0E= dW1wcw== cmljYWw= IFB1dGlu IERlc3Q= b3JpYw== IFBB IHJlc3BlY3RpdmVseQ== d2Fu IGZpZnRo 4oSi IENyeQ== IGdvdmVybm9y cmVzaWRlbnQ= IHB1cmNoYXNlZA== IGhhY2s= IGludGVuc2U= b2Jz IG9yaWdpbg== IGRlZmluZQ== IGNhcmVmdWw= Kioq IHNob3VsZGVy Q2xpY2s= IHRpZWQ= IGRlc3RydWN0aW9u b3VyZWQ= IG5vYm9keQ== IGhv IEV4cGVy IHRpcA== Ijs= IHRlY2huaXF1ZQ== IGp1cg== IFBvaw== Ym93 IGxlZ2VuZA== IGFjY29yZA== IGJ1c3k= IEludGVs IGhhbmc= YWtp Ll0= 4oCU4oCU4oCU4oCU IHN1cmdlcnk= IHJlcHJvZHU= IHVuaWZvcm0= IHNjZW5lcw== Y29kZQ== IDYy bGlzaGVy IEhhdmU= cGhpYQ== IGNyeXB0 IHJlY29u IHNjcmVhbQ== IGFkb3B0ZWQ= IHNjb3Jlcw== TmU= IEl0YWxpYW4= aW5jbHVkaW5n Qk8= IGluZGljYXRlZA== IGVudGVydGFpbg== R3U= VGV4dA== aWVs IHR3ZW50eQ== IGVuZ2FnZQ== b2Zmcw== IFBhY2lmaWM= IHNtaWxl IHBlcnNvbm5lbA== IHRvbGVy IGRvb3Jz IHRvbmU= IG1hY2hpbmVz IGVudGVyaW5n dGVuYW5jZQ== Q08= IEplcnNleQ== IGZvcmVzdA== IGhvcnNl IGNvbXBsYWludA== IFNwcmluZw== eW8= IFBsdXM= ZWRpbmc= IFJldHVybg== cXVhcnRlcnM= aWFscw== Y293 IGFjYWRlbWlj IGZydWl0 IDE5OTY= b2dldGhlcg== IHdpbmU= IHB1cnN1 IFN0ZXZlbg== IGxpY2Vucw== V2hv IGNsb3RoZXM= cmVjdGlvbg== IHNxdWFk IHN0YWJsZQ== IHJhdw== emVucw== U3Rhcg== dXRpZXM= YW5jZXI= IGtleXM= IE11 IGNvbXBsaWNhdGVk aWdlcg== IFRleHQ= IGFic29y IDY4 IGZ1bm55 IHJlbGllZg== IExldw== IENvb2s= IGNoYXJ0 IGRyYXdpbmc= R0U= IG1vZHVsZQ== IEJ1bGw= SUxM IHNhbHQ= MDAwMDAwMDA= aWxsZQ== IHJlc291cmNl YXdheQ== YWRlbHBoaWE= IEJydQ== IDY3 IHNvbWVib2R5 IHBhcnRpY2lwYXRl IHJvc2U= d2VyZWQ= IG11c2NsZQ== IGNvbnNlbnQ= IGNvbnRpbnVpbmc= IEd1YXJkaWFu IE9yZGVy cmVnb24= IHJlYXI= IHByb3Zpc2lvbg== IGxpa2Vk cmllbnQ= IGJyYQ== VHJhbnM= IG1lZXRpbmdz IHRveA== IGNvbnZlbnQ= IGF1dG8= IHJlY29yZGluZw== IFNvZnQ= MDAx IFJvbGw= IHByb2dyYW1taW5n IHBpYw== IHByb3ZlZA== IHN0YWI= IEFzdA== IGNhcHRpb24= dWxhdGluZw== IEF0dGFjaw== IG5ld2x5 IDE5OTc= ZnI= IGRpc2NpcGw= IEdyZWVr IGVkaXRpb24= IERvZXM= IEJveA== aWZsZQ== YWNrZXQ= IHBhc3Nlcw== IGd1ZXN0 IGFjY2VsZXI= aXRhbHM= VUQ= IGF1dGhlbnQ= IFJlc3Q= b3ZhbA== dGE= dWluZQ== IGFybW9y IFRvd24= IGNvbXBhdA== IGluY2hlcw== RGVzcGl0ZQ== IGFzc2lnbg== aGVyZW50 IHByZXBhcmU= IE1lZw== b2NrZXk= IGRlcGVuZHM= IHRyYWNrcw== d2F0Y2g= IGxpc3Rz IE5vcnRoZXJu IGFsdGVy cmVj IEVhc3Rlcm4= IGNvbmRlbQ== IGV2ZXJ5d2hlcmU= Pyc= IGFmZmlsaQ== IGZvdWdodA== Ijp7Ig== IG1hYw== aXRhcmlhbg== IHNjb3Bl IEFM YXdz YXJtcw== IHF1ZQ== IGVuam95ZWQ= bmVzb3Rh IGFnZ3Jlc3NpdmU= IFN0b3J5 IElW IHJlY2lwZQ== IHJhcmVseQ== IE1lZGljYWw= dmFsdWU= YW5nZWw= YXlpbmc= b21ldGhpbmc= IHN1YnNlY3Rpb24= IHNvdXRoZXJu IGZyZXF1ZW5jeQ== cmV0ZQ== cm9sbGVk dWx0cw== IE5pYw== IGJlaGFsZg== IHNlcXVlbmNl YWJldA== IGNvbnRyb3ZlcnNpYWw= IGNvbXByb20= IHdvcmtlcg== IG1haW5seQ== IGFsZ29yaXRo IE1ham9y b3JjZQ== Z2VuZGVy IG9yZ2FuaXplZA== IGZha2U= IGNvbmNsdWRlZA== IEVE IEV4ZWM= cmFnZQ== IGNoYW5jZXM= YmVycnk= IFRyYWQ= IGNvbmZpZ3VyYXRpb24= IHdpdGhkcmF3 IGZybw== dWRlcw== IEJyb3RoZXI= IEJyaWFu IHRyaWVz IHNhbXBsZXM= IGJpZA== IEdvbGRlbg== IHBob3RvZ3JhcGg= aWZlc3Q= IERP IFBhcmxpYW1lbnQ= KioqKioqKioqKioqKioqKg== UmVt IGNvbnRlc3Q= IHNpZ25pbmc= cHg= IFplYWw= 4pSA4pSA RWFy IGV4aXQ= QmVmb3Jl IENvcnBvcg== bnVsbA== bW9udGg= IHJhY2lhbA== b3R0ZWQ= IFZlZw== IFJldXRlcnM= IHN3b3Jk cHNvbg== IFJvbW5leQ== YWVk IHRyaWI= IGlubmVy IHByb3RvY29s IEJp IE1pYW1p ZXZlcmFs cHJlc3M= IHNoaXBwaW5n IEFtZW5kbWVudA== IEhvd2FyZA== Y29ubmVjdA== IERpc2M= IEphYw== aWFtb25k IFRoZXJlZm9yZQ== c2Vz IFByaW5jZXNz IFVTQg== IEFudGg= IHN1cnZlaWxsYW5jZQ== IGFwb2xvZw== IDYx b3dh IGZ1bGY= anM= IGx1Y2s= dXN0ZWQ= IMKn bmk= IGFudGljaXA= ZW1hbg== IHdpbm5lcg== IHNpbHZlcg== bGxh aWNpdHk= IHVudXN1YWw= IGNyYWNr IHRpZXM= ZXo= IHByYWN0aWNhbA== IHByb3ZpbmNl IFBsYWNl IHByaW9yaXR5 SUNF IGRlc2NyaWJlcw== IGJyYW5jaA== Rm9ybQ== YXNrYQ== bWlzc2lvbnM= Ymk= IHBvcm4= IFR1cms= IGVudGh1cw== IGZpZ2h0ZXJz IDA4 IERldHJvaXQ= IGZvdW5kYXRpb24= YXZpZA== QXJl IGp1ZGdtZW50 Y2xpbmc= IHNvbHZl IERlc2lnbg== V2hlcmU= aGVzaXM= IFRybw== YWZ0ZXI= IG5ldXRyYWw= IFBhbGVzdGluaWFu IEhvbGx5d29vZA== IGFkdmlz IE5vbg== eWVz b2xpcw== IHJlcHV0YXRpb24= IHNtZWxs IGJyZWFk IEJ1bA== IEJlYWNo IGNsYWltaW5n IGdlbmV0aWM= IHRlY2hub2xvZ2llcw== IHVwZ3JhZGU= cm93cw== IGRldmVsb3Blcg== IEpvc2g= IERpc25leQ== ZXJ2ZWQ= aXBhbA== IHVuZXg= IGJhcmVseQ== dGhlbg== IFB1Yg== IGlsbG5lc3M= ZXRhcnk= IEJhbA== IHBhdGNo IGJ1dHQ= IHN0dXBpZA== IERvZw== IERhbGxhcw== ZnJvbnQ= aWVjZQ== IHByb3Rlc3Rz IGNoYXQ= b2VuaXg= IHdpbmc= IHBhcmxpYW1lbnQ= IDc3 b3NleHVhbA== IHJlbmRlcg== cHRpb25z IENvYXN0 b3Nh IEdyZWc= aG9w IE1hbmFnZW1lbnQ= IGJpdGNvaW4= IHJlY292ZXI= IGluY29ycG9y b3JuZQ== IFVzaW5n IHByZWNlZA== IHRocmVhdGVuZWQ= IHNwaXJpdHVhbA== IEV2ZW50 IEZyZWQ= IGFkdmVydGlzaW5n IGltcHJvdmVtZW50cw== IEN1c3RvbQ== IGVycm9ycw== IHNlbnNpdGl2ZQ== IE5hdnk= IGNyZWFt TG9vaw== IGV4Y2x1c2l2ZQ== IGNvbXByZWhlbnM= IGRlbGVn IGNvbmNl IHJlbWVt IHN0cnVjdHVyZXM= IHN0b3JlZA== TkQ= IDEwMDA= VVA= IEJ1ZGQ= QUY= d29tYW4= IEFjYWRlbXk= 8J8= c2Vh IHRlbXBvcmFyeQ== QWJvdXQ= ZXN0ZXJz IHRpY2tldHM= IHBvc3Nlc3M= aW5jaA== b3o= IGxh IGNvbnRyYWN0cw== IHVucA== IGNpZw== IEthdA== dWx0dXJhbA== YXNt IG1vdW50YWlu IENhcHRhaW4= U3RlcA== bWFraW5n IFNwYWlu IGVxdWFsbHk= IGxhbmRz YXRlcnM= IHJlamVjdGVk ZXJh aW1t cml4 Q0Q= IHRyYW5zYWN0aW9u Z2VuZXI= bGVzc2x5 IHx8 IGNvcw== IEhlbnJ5 IHByb3Zpc2lvbnM= IGdhaW5lZA== IGRpcmVjdG9yeQ== IHJhaXNpbmc= IFNlcA== b2xlbg== b25kZXI= IGNvbnNvbGU= aW5zdA== IGJvbQ== IHVuY2VydGFpbg== MTUw b2NraW5n IG1lYXN1cmVk IHBsYWlu IHNlYXRz IGRpY3Q= U0w= YWZl IGVzdGltYXRl aXpvbg== YXRoZXJlZA== IGNvbnRyaWJ1dGVk IGVwaXNvZGVz b21tb2Q= R3I= QU5U IDY5 R2VuZXI= IDI1MA== dmlvdXNseQ== cm9nZW4= IHRlcnJvcmlzbQ== IG1vdmVtZW50cw== ZW50bGU= b3VuY2U= IFNvdWw= IHByZXY= IFRhYmxl YWN0cw== cmlvcnM= dGFi IHN1ZmZlcg== IG5lcnY= IG1haW5zdHJlYW0= IFdvbGY= IGZyYW5jaGlzZQ== YmF0 IGRlbWFuZHM= IGFnZW5kYQ== IGRvemVu IGNsaW5pY2Fs aXphcmQ= IE9w dGQ= IHZpc2l0ZWQ= IFBlcmhhcHM= IGFjdG9y IGRlbGlj IGNvbnRyaWJ1dGU= IGluamVjdA== IEVz YWNjbw== IGxpc3RlbmluZw== IGNvbmdyZXNz ZXBlbmRlbnQ= IHByZW1pdW0= IDc2 IElyaXNo IGFzc2lnbmVk IFBoeXM= IHdvcmxkd2lkZQ== IG5hcnJhdGl2ZQ== b3R5cGU= bW9udA== YmFzZQ== IEJvd2w= IEFkbWluaXN0cmF0aW9u IHJlbGF0aW9u IEVW Q1A= IGNvdmVycw== IDc4 IGNlcnRpZmlj IGdyYXNz IDA0 cGlyYWN5 aXJh IGVuZ2luZWVyaW5n IE1hcnM= IHVuZW1wbG95 IEZvcmVpZ24= c3RyYWN0 IHZlbg== IHN0ZWFs IHJlcGxpZWQ= IHVsdGltYXRl IHRpdGxlcw== ZGF0ZWQ= IGpveQ== YXVz IGh5cGVy YWt1 IG9mZmljaWFsbHk= IFByb2R1Y3Q= IGRpZmZpY3VsdHk= cGVyb3I= IHJlc3VsdGVk cmliZWQ= bGluaw== d2hv fn5+fg== IFNwZWVk IFZpZXQ= V2luZA== IEJhcmFjaw== IHJlc3RyaWN0aW9ucw== IFNoYXJl IDE5OTU= aXRpb25hbGx5 IGJlYXV0eQ== b3B0 IG1hcHM= IENS IE5hdGlvbg== IENydXo= V2lsbA== IGVsZWN0cmljaXR5 IG9yZw== IGJ1cmQ= IHZpb2xhdGlvbg== IHVzYWdl IHBlcm1pdA== IENocm9u IEZhbnQ= IG5hdHVyYWxseQ== IDA3 IHRocm93bg== IEF3b2tlbg== IGFsaWVu IEhlcm8= IEtlbnQ= IFJpY2s= cmlrZQ== IHBhY2U= fSx7Ig== R0w= IHBvaXNvbg== IFRvd2Vy IGZvcm1hbA== YWx5c2lz IGdlbnVpbmU= IGtpbA== YXZlcg== IHByb2NlZHVyZQ== IFByb3A= aW50ZW5kbw== IE1haW4= YXNhbnQ= IHRyYWluZWQ= R2FtZQ== IExvYWQ= IE1B IGNydWNpYWw= IGxldHM= IEZS IGNoYW1waW9u MTAx IENvbmZlcmVuY2U= IHdyaXRlcnM= IGNvbm5lY3Rpb25z IG9rYXk= aXJtcw== IFJhbmQ= IGVuY291bnRlcg== IEJ1ZmY= IGFjaGlldmVk IGNoZWNrcw== aXNjb25z IGFzc2lzdGFudA== IHdoZW5ldmVy IEFjY2Vzcw== IFVy Ymlu IGNsb2Nr aXNw b3BoZXI= IGJvcnJvdw== IG1hZA== IHBlcnNvbmFsaXR5 b25seQ== SVNU YWJhbWE= IGdhaW5z IGNvbW1vbmx5 IHRlcnI= IGh5cG90 IHJlbHk= IHRpc3M= aXNjb25zaW4= IHJpZGlj ZnVuY3Rpb24= IE9yZWdvbg== IHVuY29t cmF0aW5n ZWxhbmQ= IE5D IG1vb24= YW5ub24= IHZ1bG5lcmFibGU= dXRpdmU= wqDCoMKgwqA= IFJhZGlv IHdlc3Rlcm4= c2VjdA== IFRvbnk= IG9jY3Vycw== IE9z IEhvbg== w60= IHZlc3NlbA== IFNjb3RsYW5k IGRpc2NyaW1pbmF0aW9u IHN1YnNlcXVlbnQ= c3RyaW5n IGZhbnRhc3k= IFNoYWRvdw== IHRlc3RpbQ== V0U= aXRp cmFz IGJvYXQ= IG1hcmtz IG9yZGluYXJ5 IHJlbg== IHJlcHJlc2VudGF0aXZl IHBldGl0aW9u IDcz IGFkdmVudHVyZQ== IGlnbm9yZQ== IFBoaWxhZGVscGhpYQ== IFNhdg== VlA= IGZhY3Rvcnk= IHRhc2tz IGRlcHJlc3Npb24= emVk Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4= IFN0b3Jt IGNvZ24= IGVsaWdpYmxl IHJlZHVjaW5n dmlh IDA1 IHN0cmlraW5n IGRvbGxhcg== aG8= T1Y= IGluc3RydW1lbnQ= IHBoaWxvc29waHk= IE1vb3Jl IEF2ZW51ZQ== IHJ1bGVk IEZyb250 SU5F IE1haA== IHNjZW5hcmlv IE5BU0E= IGVub3Jt IGRlYnV0 IHRlYQ== VG9kYXk= IGFic2VuY2U= U2lt IGhhbQ== bGVlcA== IHRhYmxlcw== IEhlYXJ0 TUk= S2U= cmVxdQ== VkQ= bWFw IGNoYWlybWFu IHB1bXA= IHJhcGlkbHk= dmk= IHN1YnN0YW50aWFs RVA= ZGVz Y2hhbnQ= aWxpcHA= IFNhbnRh cmllcnM= YW5jaGVzdGVy TG9hZA== IENhc2U= IHNhdmluZw== IDc0 IEFGUA== ZXJuaW5n b3VuY2Vk IE1pbm5lc290YQ== IFdhcw== IHJlY3J1 IGFzc2Vzc21lbnQ= IEJyb24= VUU= IGR5bmFtaWM= IGZ1cm4= dWxhdG9y IHByb3BhZw== aGlnaA== IGFjY29tbW9k IHN0YWNr IFN1cw== d3JpdA== IHJldmVu IEdvZGQ= IFplYWxhbmQ= YWJz IGJydXQ= IHBlcnBldA== aG90 IGhhcmRseQ== IEJ1cm4= 44K5 IHN0eQ== IHRyYW5zYWN0aW9ucw== IGdhdGU= IHNjcmVlbnM= IHN1Ym1pdHRlZA== IDEwMQ== IGxhbmd1YWdlcw== dWdodA== ZW1lbg== IGZhbGxz IGNvYw== gqw= IHN0cmlrZXM= cGE= IGRlbGliZXI= IElN IHJlbGF4 YW5uZWxz IFNlbmF0b3I= IGV4dHJlbQ== IH0s IERlYg== IGJlbGw= IGRpc29yZGVy Y3V0 IGlPUw== IGxvY2tlZA== IGVtaXNzaW9ucw== IHNob3J0bHk= Il0= IEp1ZGdl IFNvbWV0aW1lcw== IHJpdmFs IGR1c3Q= IHJlYWNoaW5n RmlsZQ== wq/Cr8Kvwq8= aW5vaXM= IEphc29u IHNhdGVsbA== YXJldA== IHN0YXRpb25z IGFncmlj IFRlY2hub2xvZ3k= Y29tZXM= IFVuZm9ydHVuYXRlbHk= IENoaWxkcmVu IGFwcGxpZXM= YXN0ZWQ= IGFuZ2Vy YWlsYWJpbGl0eQ== IERhbWFnZQ== IGNvbXBhcmU= IFN0YW5kYXJk IGFpbWVk IEJh YW5ndWFnZQ== IHJlZ3VsYXRpb24= IGp1cnk= IGFpcnBvcnQ= IHNlY3Rpb25z IFByaW5jZQ== ZW1lZA== IG1lZGljaW5l IGhpdHRpbmc= IHNwYXJr b2x2ZXM= IGFkcw== U3RhdGU= IGZvb2Rz IHJlcGxhY2VtZW50 IGNoaWNrZW4= IGxvd2VzdA== IG1pbmRz IGludm9sdmVz dWk= IGFycmFuZw== IHByb2NlZHVyZXM= IFdoaWNo aXZlcnNhcnk= IGJpbGxz IGltcHJvdmVtZW50 IGluZXY= IGV4cGVjdGF0aW9ucw== IGludGVsbGVjdHVhbA== IHNwYWNlcw== IG1lY2hhbmlzbQ== MjUw YnJlYWs= IFpl IFRlbm4= IEJhbHQ= IGJhcnJlbA== IHN0YXRpYw== bWFubg== UG9saWNl IHRpcHM= IGhhbmRsaW5n Y3Vz b2RlZA== aWx0b24= aXJ5 IGpvdXJuYWxpc3Rz b3Vyc2U= IGNvbWlj IG5vbWluZQ== SVRZ IHZlcnN1cw== IGxvb3A= IHN1cmY= IEluZHVzdA== IEh1bnRlcg== IGJlbGllZnM= aXNhbg== IHNldHVw IGJyZXc= aW1hZ2U= IGNvbXB1dGVycw== Zm9s fSwi IE1lZGFs IHRheHA= IGRpc3BsYXllZA== IGdyYXY= IGZpc2NhbA== TW9u IE1vc2Nvdw== IEtvbmc= IENlbnRyZQ== IGNhbWVyYXM= IE1ycw== IEhheQ== IGF2ZXI= IEtlbGx5 cHk= IHJlcXVpcmVtZW50 IGVudGl0bGVk b21iaWU= IHNoYWRvdw== YWdpYw== IEFr IGVsaXRl IGRpdmlkZWQ= IGhlYWRpbmc= IGNvcGllcw== IGxvc3Nlcw== IHZpdA== a2Vk IEJyeQ== IGFucw== IFN0ZWFt IHJlcG9ydGVy aGVpbQ== IEl0ZW0= IHN1cGVyaW9y ZG9u ZXJlbnQ= w7Y= IHRoZXJhcHk= IHBlYWs= IE1vZGVs IGx5aW5n IGdhbQ== emVy cml0dGVu IHJlc3BvbnNlcw== IGNvbnNpZGVyYXRpb24= IEJpYmxl IGxveWFs IGluc3RhbnQ= IHBt IEZvcmVzdA== w7w= IGV4dGVuZA== IGNvbnZpY3RlZA== IGZvdW5kZXI= IGNvbnZpbg== IE9haw== Y2hlY2s= IHNjaG9sYXJz cGVk IG92ZXJzZQ== VG9w Y291bnQ= IEFyaw== wrc= IDA2 IExB bWQ= IExhdGlu aW1lbnRhbA== IENQVQ== IHN1YnN0YW5jZQ== IG1pbm9yaXR5 IG1hbnVmYWN0dXJpbmc= RXI= b2NvbGF0ZQ== IGF0dGVuZGVk IE1hbmFnZXI= cmF0aW9ucw== IGFwcHJlY2lhdGU= b215 R0JU aWRlbmN5 Qkw= IGd1YXJhbnRlZQ== cG9zaXRpb24= IG9jZWFu Y2x1ZGU= IGhlYWRlZA== IHRhcGU= IGxvb3Nl IGxvZ2lj IHByb3Zlbg== IHNwaXI= IGFkbWl0 aXNh IGludmVzdGlnYXRl IDE5OTQ= c3lsdg== IExvc3Q= Y2VzdA== IDcx IHJlcXVlc3RlZA== IHdpbmRvd3M= IFBva8Op IFdpdGhvdXQ= TWV0 IGJlaGF2aW91cg== IHJlYWRlcg== IGh1bmc= IEtlZXA= IHJvbGVz IGltcGxlbWVudGVk IGJsYW5r IHNlcnZlcw== IEpheQ== IGNpdGVk IEZyaWVuZA== cHJvZml0 YXBvbg== IHJlcGFpcg== aXRlbQ== YXJyYXNz IGNyaXRpY3M= YWRp IEZhdGhlcg== IHNob3V0 IGZvb2w= IDg4 IHByb2R1Y2luZw== IGxpYg== IHJvdW5kcw== IGNpcmNsZQ== IHByZXBhcg== IHN1Ym1pdA== IG5pYw== bW9ycm93 44Or VW5kZXI= IHZpdGFs YXRlcm4= IHBhc3N3b3Jk IHB1YmxpY2F0aW9u IHByb21pbmVudA== IHNwZWFrcw== IGJhcnM= IGRlZXBlcg== IE1pbGw= cG9ydGVk IHdpZA== IGJ1dHRlcg== IHNtb2tpbmc= IGluZGljYXRlcw== S2V5 cm9wcmk= IEZpbGU= YWxsaW5n YXN0aW5n IFJ1cw== IGFkag== IDc5 YXZhbA== IHByZXN1bQ== YnVyZ2g= b25pYw== IGZ1cg== IHBvbGxz aWth IHNlY29uZGFyeQ== IG1vbnN0ZXI= aWdz IEN1cnJlbnQ= RXZlbnQ= IG93bmVyc2hpcA== ZW5kYXI= IGFycml2ZQ== IFRheA== IG51bGw= IFByaXY= IHRocm8= IGtpc3M= Y2F0 IHVwc2V0 YW5nbGU= aXRjaGVz ZWN0b3I= b2xvZ2lzdHM= IEdhbGF4eQ== IGNvcnJ1cHRpb24= IGhpbnQ= ZW50ZXI= IEhvc3BpdGFs IGdyZWF0bHk= IGJlZ3Vu ZXN5 IHNvaWw= IEFudG9u IG1haW50ZW5hbmNl 44Op IGRvemVucw== IGh1bWFuaXR5 IEFsYWJhbWE= IHJvbQ== d29ydGg= YXBpbmc= c3lsdmFuaWE= bGFo IGdhdGhlcmVk R0E= IGF0dGFja2luZw== Zm91bmQ= IFNxdWFyZQ== IGFyYml0 aWN0aW9ucw== IFdpc2NvbnNpbg== IGRhbmNl IFNhaW50 YXJjaHk= IGJhc2ViYWxs IGNvbnRyaWJ1dGlvbnM= IGxpdGVyYXR1cmU= IGV4aGE= cGVydHk= dGVzdA== IGJhYg== IGNvbnRhaW5lcg== bGV0dGVy IGZhbGxlbg== IHdlYnNpdGVz IGJvdHRsZQ== IFNhYw== IGJyZWFzdA== IFBM IHZldGVyYW4= IGludGVydmlld3M= IEFsZQ== IGJhbm5lZA== ZW5nZXJz IFJldm9sdXRpb24= aW50aA== IGNvbmNlcm5pbmc= SVZF IGV4cGVuc2Vz IE1hdHRoZXc= IENvbHVtYmlh ZHM= aXN0YW5jZQ== IGVudGl0eQ== Li4uIg== IHJlbGlhYmxl IHBhcmFsbGU= IENocmlzdGlhbnM= IG9waW5pb25z IGluZHU= bG93 IGNvbXBldGU= IHRob3JvdWdo IGVtcGxveWVk IGVzdGFibGlzaG1lbnQ= aWdlbg== IENybw== IGxhd3llcnM= IFN0YXRpb24= VEU= IExpbmQ= IFB1cg== aXRhcnk= IGVmZmljaWVuY3k= 4oCQ IEx5 IG1hc2s= IGRpc2FzdGVy IGFnZXM= RVJF ZXNpcw== IEhvbGQ= IGNhc3VhbA== YmxlZA== IGVuYWJsZWQ= IEVudmlyb25tZW50 IEludGVsbGlnZW5jZQ== aXBlcg== IE1hcA== IEJF IGVtZXJnZWQ= aXNkb20= IGNhYmlu IHJlZ2lzdHJhdGlvbg== IGZpbmdlcnM= IHJvc3Rlcg== IGZyYW1ld29yaw== IERvY3Rvcg== ZXR0cw== IHRyYW5zcG9ydGF0aW9u IGF3YXJlbmVzcw== SGVy IGF0dGVtcHRpbmc= T2Zm IFN0b3Jl w4PDgsODw4LDg8OCw4PDgg== IEtub3c= IGRlZmVuY2U= IHNjYW4= IFRlbg== IENoYWly IFBI IEF0bGFudGE= IGZ1Y2tpbmc= IGFuc3dlcmVk Ym4= IEthcg== IGNhdGVnb3JpZXM= IHJhdGlvbmFs IGN1c3Q= IHJvYm90 IGNvcnJlY3RseQ== IGdpZg== IGdyYXBoaWNz bWlj IGdyb3VuZHM= IE9wcA== aWF0ZQ== IGRpc3RyaWJ1dGVk IHNhbmN0aW9ucw== IGNoYWxsZW5naW5n dXRv IGluZ3JlZGllbnRz IGludml0ZWQ= IGZvdW5kZWQ= IFJlcXU= ZGVk IGJvd2w= IGJyb3RoZXJz IEhh SU8= IHdhZ2Vz aW1vcmU= b2NpYWw= IHNlZWQ= YXRpdmVseQ== IGFkZHJlc3Nlcw== IElvd2E= YWJldGg= IGF0dGl0dWRl aXNk Y2hpbGQ= IG1vbGU= IGRpc2NvdmVyeQ== eWFyZA== QnI= IDgy IHN1cHBsaWVz ZWxsaW5n IGRpc3Rpbmd1 Q1I= IHJlY2VwdA== IHZlcnQ= IHN3aW0= YmVj ZG9vcg== IFllYWg= IGdhbA== IGludGVyYWN0 IEVTUA== IENT YW1wcw== IGNvbnZpbmNlZA== IG9iamVjdGl2ZQ== IGRpc2g= IFBob3Rvcw== bGFk IGRvd250b3du b2ls aW5jdGlvbg== IHRvbW9ycm93 IENPTQ== IHN1cnZpdmFs c2hvdA== IHNldHRsZW1lbnQ= Q29ucw== IFhib3g= aW50ZXJlc3Q= IFNN YXJnbw== ZW5lc3M= IGV0aG5pYw== YmVyZWQ= TWlu IFRvaw== IGluY2VudA== IENvbW1hbmQ= IG1haW50YWluZWQ= IGJyZWFrcw== YnJpZGdl YXRhcg== YWdn IEZpbmFsbHk= dW5pY2lw IE9udA== bGVmdA== IHJlY29nbml0aW9u ICov IFBlcnM= IHdlbGY= IGFkZHJlc3NlZA== IEthbnNhcw== IHZpcnVz IHdoZXJlYXM= IHBhcGVycw== cmFtcw== IE1pbmlzdHJ5 IHBsZWFzdXJl IGFjcXVpcmVk IGR1cmF0aW9u anBn IGNhbG0= IE5ITA== IGJ1cm5pbmc= IGZvbGRlcg== aWNrZWQ= IFB5 IElsbGlub2lz Q2xhc3M= IEdvZGRlc3M= IHBlcmZvcm1pbmc= IHdlbGZhcmU= amFy SW50ZXI= IGxpbg== IGVuaGFuY2U= IG5vdGlvbg== ZmFyZQ== eXBlcw== IEFyZWE= IGNhbm5hYmlz IERpZWdv ZnM= IE1hbmNoZXN0ZXI= Y29tbQ== aW5pdGU= IGNvdmVyaW5n IFNvdW5k IDE5NjA= IDg0 ZWxlY3Q= emluZw== IGNpdGl6ZW4= IHBob25lcw== IHJhaWQ= IGlnbm9yZWQ= IE9iamVjdA== IHVwbG9hZA== Y2FyZA== IG1vZGlmaWVk IHJvb21z aWFo cmFuZ2U= aGVhc3Q= YWNodXM= IHN1Z2dlc3Rpbmc= 4oCL Z3JhZGU= RWw= IGNsb3RoaW5n IHJo IEhhbg== dW5pdHk= ZW5jaW5n IEF1c3Rpbg== c2VjdXRpb24= dHJh ZGVt IFF1YWw= IGhlYXZlbg== IHN0YWdlcw== IHdlZGQ= cGx1cw== aWZpY2lhbA== IEltbQ== IEhv aWV0aWVz IHBocmFzZQ== IGJyaWxs YWN0b3J5 IHByb3ZpZGVycw== IHNpbGVuY2U= IGFlcg== IEFJ IEFkdmVudHVyZQ== IHBsYXRmb3Jtcw== IGRlbW9uc3RyYXRlZA== IGludGVyZg== aW5ndG9u IHJhY2Vz IGdyYWRl dWx0YW5l IFRocm91Z2g= ZmFsc2U= IGJvdw== IEFC IGZsYXZvcg== IGhpc3Rvcmlj Z292 IGNvbG91cg== IHZpZXdlZA== IEVtYWls ZWxjb21l IGludGVydmVudGlvbg== IGRpdmVyc2l0eQ== IHBlcmlvZHM= IHJldmVyc2U= IFZlcnk= IHF1b3Rl IExlZnQ= dGhyb3VnaA== IHNjcmV3 IGxhbmRpbmc= IHBpbGw= IHdldA== IHByb3Rlc3RlcnM= IHJlcGVhdA== YXZlZA== ZXJr IHNhbGFyeQ== IFBlbm5zeWx2YW5pYQ== U3RpbGw= IG1heW9y IGtpdGNoZW4= IGZlYXR1cmluZw== IE11c2V1bQ== IFRvdXJuYW1lbnQ= IEZhbA== IHNlcnZlcnM= VUM= IGFueWJvZHk= aW1n IFRyYWRl aXh0dXJl dGhlbGVzcw== IGZpbmFuY2U= IGNsb3Npbmc= IFBhdHJp aWFj YWJlbA== ID4+ b3JvdXM= IGZpcm1z c2NyZWVu dW5h IGVtYmFycmFzcw== dWxzZQ== IGxldHRpbmc= IHRocmV3 aWxleQ== IGNoYW5uZWxz bGFu IFZlZ2Fz IHNlYXI= IGZhbnRhc3RpYw== YXJyZQ== dXp6bGU= IERlcg== VGhvc2U= IHN3aW5n IHNoZWV0 aW5kZXg= Y292ZXI= b2dhbg== IHZhcmlhYmxlcw== IFRlY2g= IHNwb2tlbg== YWNoZWw= IERh IE1vdW50YWlu IGxvYWRlZA== IGZvb3RhZ2U= dmVyc2lvbg== IHVubA== IFBob2VuaXg= IHRocm93aW5n IGZpcmluZw== IHRyYWNraW5n IHdpZHRo IHN0cnVnZ2xpbmc= cm9vbXM= b3Rpb24= IG1vbnRobHk= IFNlcnZlcg== IGVnZ3M= b3Blbg== TUM= IDE5OTM= IGhpcmVk IHN0YXllZA== IEFsbGVu IHN0cm8= IDk4 c3RlcA== IFR1cmtpc2g= IGZhYnJpYw== aXN0aW5n IERvbQ== IGRhdGVz IHByb24= IGJhc2tldGJhbGw= IGx1Y2t5 IEFyYWJpYQ== IGFzc3VtZWQ= ZXN0eQ== IGFmZmFpcnM= IGdsYWQ= IEluZGVlZA== IEZB IFdvcmQ= IGpvaW5pbmc= aWZpY2U= cHJlYWQ= aXJ0cw== IFNlbGVjdA== IHBvcHVsYXRpb25z YXdhcmU= IG5vc2U= IGNvbXBsYWludHM= c3RhcnQ= IHNjb3Jpbmc= VGhhbmtz IG1pbmluZw== IHZpc2l0b3Jz U0g= IGRhbWFnZWQ= IGNoYXJhY3RlcmlzdGljcw== IFBlbnQ= REM= IDgz IFNpeA== cmF0ZXM= IGZsYWdz IEJyZXc= ZG9n TWFyaw== Ly8vLw== IGV4ZWN1dGlvbg== IGpva2U= cGhvbmVz IHRlc3RpbW9ueQ== IG9ic3Q= UUw= IEN1dA== IHN0dWRpZWQ= IE5pbnRlbmRv aWNrZXQ= IE5CQw== IGxhZA== IEJyYQ== IE1vaA== IGtlcm5lbA== IG92ZXJ3aGVsbWluZw== IGFnZWQ= IGFwcGxpY2FibGU= IENvbmQ= IHJvYWRz IEJsb2Nr bWFkZQ== b2RnZQ== IGNvbW1hbmRz IG9mZmljZXM= dmVsYW5k IHR1dA== IHJlY2VpdmVy IEZybw== IHNob3BwaW5n IGlQ IFN0cmU= IEFCQw== IGVudGVydGFpbm1lbnQ= IEJvdw== b3J0ZWQ= TWM= IHJlYWRz Z3JhZA== IENvbGxlY3Q= IOKIkg== IENhcGl0YWw= ZWRlcmF0aW9u IGVtcGxveWVy IGludm9sdmVtZW50 IGFueGlldHk= YWxpYQ== IHJvb2Y= IEFtb25n IERlbW9jcmF0 IHN0YXRz IFZpbGw= IGNvbnN0aXR1dGlvbmFs IHJlZmVycmluZw== aXR0eQ== IHRhY2tsZQ== b3V0dWJl IGJhY2tlZA== IEhvbmc= IEJyb2Fk IGVsZQ== IE90dA== IDE5OTI= aG91cg== YWNodXNldHRz Q2Fs IGRlZmVhdGVk IDgx ZXNw IHNlZW1pbmdseQ== d2Fz IEplbm4= IEt1cmQ= IGdlbmU= IGRpc2NvdW50 UmV0 RUNU KCk7 IGNsdWJz IHNpZA== IE1hcnNo Q2hlY2s= IHBw IEVhZw== aWRlc3ByZWFk IGJlaW5ncw== RlQ= IGludHJvZHVjdGlvbg== IENoYW5nZQ== QVJE IDExMA== YWRvd3M= aWVyY2U= IG1lYWw= YXV0aG9y IEJhbmc= bGFob21h IHJhbmtz MjAxMQ== Pz8/Pw== bWF4 IGNvbGxhcHNl IG9wZW5z IGVjaG8= IHNvcGg= IHJhY2lzdA== IGVub3Jtb3Vz IHdhdmVz IHRhcA== IGNvbXByZWhlbnNpdmU= Li0t IFJveQ== IGZhcm1lcnM= UmVsYXRlZA== YWlyZWQ= cm9uZXM= IENyaW0= IHByb3BvcnRpb24= IGRlc2lnbnM= IG5lZ290aWF0aW9ucw== IHZpcnR1YWxseQ== IEJhdG1hbg== IHdhcm4= IGxlZ2l0aW1hdGU= bWF0ZQ== IGNvbnZlbnRpb24= LCw= bmV0aWM= IFNE IGNvbnNpc3RlbnRseQ== IGNvbXBlbnNhdGlvbg== IHB1bmlzaG1lbnQ= IHll IHRpZQ== IEJ1cmVhdQ== aXJsZg== IEJ1 IEFyZW4= IFBoaWxpcHA= IGtuaWZl IG1lbW9yaWVz IFJvc3M= IGFuZ2xl IDg2 IFRodW5kZXI= IHJlbmQ= IFRvdXI= IGNvdW50cw== c3VuZw== IEltcA== IGVkdWNhdGlvbmFs IGFjY2Vzc2libGU= Q09N IGRyZXc= eWVy R2w= YW1pbmU= T1JU T0I= SUI= bWFzdGVy IHRyaWFscw== b2d5 aGFy IFRydXN0 IHByZWZlcnJlZA== aXJsZnJpZW5k IE5ldg== IGJpbg== IGNvdw== UGFnZQ== IHNpZ25hdHVyZQ== IEJM NzAw IHJldGlyZWQ= IGJ5dGVz IG5laWdoYg== IExlZ2VuZA== IGRldmFzdA== IHN1c3BlY3RlZA== aXNvbnM= IFBva8OpbW9u c2NhbGU= IGNhcGFiaWxpdGllcw== IHJldmVs IGNoZWVzZQ== ZHk= aWdyYW50 IGZhaWxpbmc= Yml0cw== IEhlcm9lcw== IEdob3N0 IFNjaWVudA== IGFwcG9pbnRlZA== dXJp IGluc3RpdHV0aW9u IGV4cGFuZGVk Z3JlZw== IG1vbml0b3Jpbmc= IHBvZGNhc3Q= IGNvYWxpdGlvbg== IDk2 Sm8= IHN0b2xlbg== IFNhYg== IHN0b3Bz IGhvbGlkYXk= IGludHI= Q2Fy QmxhY2s= IExHQlQ= IHdhcm1pbmc= IEFuZGVyc29u IDg5 IHByb2R1Y2Vy TWVk IGFjY3VyYWN5 IE1hcnZlbA== aXphYmV0aA== IFBhdHJpY2s= bW9ueQ== IG1pbmk= YWNsZXM= IG92ZXJ0 dGhleQ== IG1lbWJlcnNoaXA= IFZlbg== IGV4Y2g= IHJlbW92YWw= IERhdmU= VFk= bWFk IEZpbmQ= IGFkZXF1 IGVj IHRlZXRo IGVtb3Rpb24= IHBlcm0= IHNvbGVseQ== ZGI= IGV4dHJhb3Jk SUdIVA== Y2Fs IGd1aWRlbGluZXM= IGR5aW5n IHN1c3BlbmRlZA== IFByZW1pZXI= IEFudGhvbnk= ZWx2ZQ== IGRhZA== IEV0aA== IEZvb3RiYWxs IGFiYW5kb25lZA== IDw8 IG1hcmNo IGhvcnJvcg== 4oCmIg== IGNoaWxkaG9vZA== IGNhbXBhaWducw== IGx1bmNo IEFsYmVydA== YmxvY2s= 4paI4paI b3VuZGluZw== IGJvbmU= b3JnYW4= YWRlcnM= IEZsYXNo IERyaXZl IHRvbmlnaHQ= IHdhcnM= IEZM IGZvcm1hdGlvbg== Y29uc3Q= TmV3cw== IGNvbXBl b3Jpb3Vz IFN0YWZm IGRpc2N1c3Npb25z IFByb3RlY3Rpb24= IEphbQ== IGNyaXRlcmlh IGluc3RhbGxhdGlvbg== IGFjY29tcGxpc2g= aXp6YQ== IHB1Ymxpc2hlcg== IHJlc2N1ZQ== IFRyeQ== VUxM IFNvbQ== IEhvcA== b3JldA== dGhz b3Jkb24= IHBvY2tldA== IEludg== RG93bmxvYWQ= IENyaW1l IGJlbmU= IEd1aWRl IEFzc2VtYmx5 IHBhcmFtZXRlcnM= SUU= IEFsZXhhbmRlcg== IGNvbmNlcnQ= IFNjaGU= IHNob2Vz IHZpc2l0aW5n IHJlY2FsbA== IGJ1Yg== IHJ1cmFs IGNvbmNyZXRl IFJvcw== TmV4dA== UnVzcw== IGxvYW5z IFNoaWVsZA== IHRyZW0= aGVtYXQ= a2c= IEhhcnJpcw== aXNpdGlvbg== IE1vdmU= IEZD IGZhdGU= IENobw== IHRpcmVk IHByaW5jaXBhbA== aGlzdA== aWVuY2Vz YXRoeQ== IHNldmVudA== IG1vb2Q= IHN0cmF0ZWdpYw== IGRpc2Vhc2Vz IGZvcnVt IHRlbXBvcg== IGhlYWRxdWFydGVycw== UGFy aWdl ZmxpeA== IGd1aXRhcg== IDk0 T25seQ== IHJlbGVhc2Vz cm9waA== PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0= IDYwMA== IENvbnRpbnVl aWdhdGU= IENyaXQ= c3lzdGVt IGRpc2FibGVk IHVuZXhwZWN0ZWQ= aXRodWI= IHVuY2xlYXI= IEVzdA== IGNvbnRyYWQ= IHN0cmF0ZWdpZXM= dmVudHVyZXM= IHBhc3NhZ2U= QU1F IGltcHJvdmluZw== IHJldmVhbHM= IGRlY3JlYXNl b3Zh IGFubm95 IFNob3J0 IExpYnJhcnk= IGN5YmVy bmVsbA== IEh1cg== IENC IHBob3RvZ3JhcA== VUk= IHNlZA== R2U= IDg3 IGRpdmVyc2U= IGVuY291cmFnZWQ= IGNvbnNwaXJhY3k= IGJpcmRz IG9wZXJhdG9y IGhhbmRmdWw= IGNsYXNzaWZpZWQ= Pyk= IGRyYW1hdGlj IGludmVzdGlnYXRvcnM= aXRv IHdpZGVzcHJlYWQ= IFJvb20= LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ== IGNvbGxlY3RpdmU= IGpvdXJuYWxpc3Q= U3RyaW5n IHRlbXBlcmF0dXJlcw== aWxh IGd1aWQ= IGluc3BlY3Q= IG1pc3NpbGU= IE1heW9y IG1hbnVhbA== IHNpbXVsdGFuZQ== IHJhdGluZ3M= IHN1Y2s= IDk3 IHVuaXZlcnNhbA== IHBoYXJt IGRpc3J1cHQ= aWFubw== QVY= IGZ0 IHN0YXRpc3Q= b2xkcw== IFdhbGtlcg== cGhw IHVuZGVydA== IExhcw== aXNob3A= bnRpbA== cmVzaG9sZA== IFdoZXRoZXI= TXM= IGRlbnk= IENsb3Vk IHByb3ZpZGVy IHN1cnZpdg== IFVwZGF0ZQ== aGFz IG1pc3Rha2Vz Y2hhcmdl cGxlZA== cml0eQ== IG5vZGU= IE1hc3NhY2h1c2V0dHM= b29scw== bGljYXRpb24= IGZhaWxz ZW1hbGU= b3Jp YmFja3M= IHNoaXJ0 ICcn IE5BVA== IHdhdGVycw== ZWxzb24= IGVhc2U= IHNjYXI= IGNvbnRlbnRz bWluZA== IGNvbnRyaWJ1dGlvbg== IHNocg== IGhhbmRlZA== IHN0YWJpbGl0eQ== IHRyYXZl RW0= IG1pcnJvcg== MTIz IHdlaWdo IGZpY3Rpb24= b3V2ZXI= aXN0YW50 cml0aW9u IEZlZA== IHBoeXNpY2FsbHk= IHN0YWtl IEFydGljbGU= IEFyYw== IExld2lz IE1pbmQ= IGRlbW9uc3RyYXRl IHByb2ZpdHM= dmlzaW9u b21pYw== b2xpZA== IGJhdHRsZXM= IGRyaXZlcw== IGVhc3Rlcm4= IFNvbnk= ISEh YXJhdGlvbg== dmFyZA== IEdM cG9ydGF0aW9u IDky IGxhd21ha2Vycw== IHByb3RlY3Rpbmc= IEVQQQ== IHllYWg= IHNoYW1l b2xwaA== ZXZlbg== eGl0 IGF0dGFjaA== IHJlcHJlc2VudGluZw== IG9icw== IFV0YWg= aWZmcw== IEZyZWVkb20= w7M= QUs= IGluY2lkZW50cw== aXRhZ2U= IHZpZXdlcnM= Y2Q= IG1vdXNl IGNsYXI= IGFjY29yZGFuY2U= IGJvdA== Y29y IFN1bW1lcg== aGVsZA== IGlubm9jZW50 IGluaXRpYXRpdmU= b2xz X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18= IHNwb3Rz cGFjZQ== IGNvbnZlbnRpb25hbA== IGNvcnBvcmF0aW9ucw== IGJsb2NrZWQ= SEQ= YXR0ZXJlZA== IHJlZmVycw== IGJ1Y2s= IERpZ2l0YWw= MTIw IHRvcGljcw== VEY= xIE= YnJpZA== cmVlbWVudA== IHVuZGVybHlpbmc= IE1lbWJlcg== IGludmVzdGlnYXRpbmc= IHByZWduYW5jeQ== IHRvdWNoZG93bg== IEJhbmQ= IENhbGxlcg== IGluc3RhbmNlcw== UFA= d2E= R29vZA== IDE5OTE= IENvbGQ= IGZlYXJz IHJlbWFya3M= hpI= YXRhbA== IG1pdA== IGV4cGVyaW1lbnRz aXB0 Q29sb3I= aW5kdQ== VXBkYXRl IDkz QWc= IOU= YW5jb3V2ZXI= Qm90aA== IGp1ZGdlcw== T2JqZWN0 IHN0ZXJl dW1ibg== IHBhcnRpY2lwYXRpb24= IFN0YXJz IEplcmU= IHdlZWtseQ== IEJhbg== IGNvbnZlcnNhdGlvbnM= IFBpdHQ= dXo= IEluZGlhbmE= IEtpY2s= IGluZmVjdGlvbg== IGhlcm9lcw== IHNldHRsZWQ= IHN0cmlw IGhhbA== IGR1bXA= IFNjaQ== IGxlcw== IHJlZmVyZW5jZXM= IFVSTA== IEJyaWRnZQ== IHdhbnRpbmc= Rm9yY2U= IGV4Y2x1cw== TWVhbndoaWxl bW4= IGdlbnRsZQ== bWFrZXI= c2VuYWw= IEdybw== b3VyaQ== IFJhaW4= IEFsbGlhbmNl IGxpZnQ= ZWxh U0Q= IENsZXZlbGFuZA== IHJhbmtlZA== IHN0YWRpdW0= IGRlYWRseQ== 5Lg= IHJpZGluZw== YXJpYQ== IEFybW9y IGRvY3VtZW50YXRpb24= IEdyZWVjZQ== cmVlaw== IGxlbnM= IFNh IGdyb3Nz IEVtZXI= YWdlcnM= IER1Yg== IFJo IEFNRA== IGFycml2YWw= IGRlc2VydA== IHN1cHBsZW1lbnQ= IFJlc3A= IGtuZWU= IG1hcmdpbg== Zm9udA== b2dn MjAxMA== IFBpcg== IFByb20= aXZhbHM= IGludGFrZQ== IGRpZmZlcmVudGx5 dWdz IGJpdHM= Y2x1ZGVk IHNlYXJjaGluZw== IER1 dW1ibGU= IGZ1bmN0aW9uYWw= IEJhbHRpbW9yZQ== IENvdWxk IGRlc2lyZWQ= IGNpcmN1aXQ= IEx5bg== IEdP IEZhbHNl cmVwcmU= Jzo= YWx0aWVz IG1pbmlt IGRyb3Zl IFNob3VsZA== IGhpcA== IHByb3M= IHV0aWxpdHk= IE5hdHVyZQ== IE1vZGU= UHJlc2lkZW50 b3Bw cmF0 Zm9ybWFuY2U= IGNvbmNlbnRyYXRpb24= IGZvbnQ= IEJ1ZA== IGFtaWQ= IHJldmVycw== IE1M QmFy IGludGVyYWN0aW9u IGp1cmlzZA== IHNwZWxscw== ZGVw Zmls IGNpdmlsaWFucw== dXR0ZXI= IENvb3Blcg== IEJlbG93 IGVudHJhbmNl IGNvbnZlcnQ= IGNvbnRyb3ZlcnN5 b3dlcmVk IGNvbnRyYXJ5 IGFyYw== IEV4ZWN1dGl2ZQ== IE9mZmljZXI= IHBhY2thZ2Vz IHByb2dyZXNzaXZl d2lkdGg= IHJlc2VydmVk dm9s IFNhbXN1bmc= IHByaW50ZWQ= IGNlbnRlcnM= IGludHJvZHVjZQ== IEtlbm5lZHk= IG9kZHM= IHN1cmVseQ== IGluZGVwZW5kZW5jZQ== IHBhc3NlbmdlcnM= cmVwcmVuZQ== IEJlaA== IGxvdmVz IEVTUE4= IGZhY2lsaXQ= IGlkZW50aWNhbA== IGRvY3Q= IHBhcnRuZXJzaGlw Y29uZg== IEhpZGU= IGNvbmZ1c2Vk IENvdw== TWVu IHdyZXN0 IElyYXFp IGhvbGVz IFN0dWRpZXM= IHByZWduYW50 aGFyZA== IHNpZ25hbHM= SVg= IHB1bGxpbmc= IGdyYWR1YXRl IG5vbWluZWU= RGF0ZQ== IHBlcm1pdHRlZA== IOKCrA== IE9rbGFob21h U3RhcnQ= IGF1dGhvcml6ZWQ= IGFsYXJt IENvcw== dmFu IGdlbmVyYXRpb25z Y3VsYXI= IGRyYWdvbg== IFNvZnR3YXJl IEVkd2FyZA== IGNvbnRyb2xsZXI= U2Vu Z2VyZWQ= IFZpaw== IGFwcHJvYWNoZWQ= VGhhbms= IGNhbmNl IGZvcm11bGE= IFNtYWxs IHdlYWtuZXNz IHJhbXA= aXR1ZGVz anVk IGJyaWxsaWFudA== IGFjY3Vz c291cmNl IDgwMA== IEV2aWw= U3c= IGhvbWVsZXNz d2Vlaw== aWVucw== cmljcw== IFRoaXJk VE8= IG9yZ2FuaWM= IHByZXNlbnRhdGlvbg== YWdo IERvd25sb2Fk dmF0aW9u IGFzc2VtYmx5 b3JhYmxl aG9sZGVycw== IEJlcm5pZQ== IEhlbHA= IHRvbmc= IEZpZ2h0 IGJlYWNo Qm9vaw== IExpYw== IHJ1c2g= IFJvdW5k b3Vw IE1hcng= IGNhbGN1bGF0ZWQ= IERldmls IFNhcmFo IG9jY2FzaW9uYWxseQ== IGJ1bGxldA== QXZhaWxhYmxl Z2F0ZQ== IDkx IGhvc3A= IHByb21pc2Vz IEhJVg== IFN0YWRpdW0= IFN0b2Nr IENvcnBvcmF0aW9u Z2FnZQ== Tkc= IENyZWRpdA== IHNuZQ== aWJs IGFjY3Vt c3VjaA== IHRlcnJvcmlzdHM= IGNvbnNjaW91c25lc3M= IFpo IGRyYW1h b29sYQ== cGlyYXRpb24= IGxhYm91cg== IE5pbg== IHV0dGVy IGRlbW9jcmF0aWM= IGFzc2Fzcw== aWxhdGlvbg== IGdlc3Q= IGFicm9hZA== IG1ldGFi IHNvcnRz IGZsYXY= VUI= IG1n IE5vdGhpbmc= IE9k IG11c2ljYWw= MjAwOQ== IGRyb3Bz b2NhdGVk YXRlcmFs MDAwMDAw IGdyZQ== IGVxdWFsaXR5 IGJ1cmRlbg== IHZpZw== IExlYWRlcg== LS0tLS0tLS0tLS0t IGNlcmVtb255 IGZpZ2h0ZXI= IGFjdG9ycw== IOY= YW1hbg== Rmk= IGFsaWdu cHV0ZXI= IGVsZGVy IE5TQQ== IHJlcHJlc2VudGF0aW9u IE9udGFyaW8= SVRI dXNhbGVt IGhhcmFzc21lbnQ= aXR6ZXI= IHN5bXA= IGJveGVz IERS IG1hbmlmZXN0 YXRyZQ== IF4= IGRpZXM= bGV0b24= IG1pc3Npb25z ZXRoZQ== IHJlc29sdmU= IGZvbGxvd2Vycw== IGFzYw== IGtt bG9yZA== YW1tZWQ= IHNpbGVudA== IEFzc29jaWF0ZWQ= IHRpbWluZw== IHByaXNvbmVycw== IEtpbmdz IEZpdmU= IHRvd2Vy IGFwcHJvYWNoZXM= IHByZWNpc2VseQ== IGJ1cmVhdQ== IE1vdGhlcg== IElzcw== IGtleWJvYXJk aXR1YWw= IGZ1bmRlZA== IHN0YXlpbmc= IHBzeWNob2xvZ2ljYWw= IG1pbGU= IExlb24= IEJhcmI= d2lsbA== IHdpZGVy IEF0bGFudGlj IHRpbGw= IFJvbWU= cm90 IGFjY29tcGFu IGZsb3Vy YWNv V29ybGQ= IEV4cHJlc3M= IFl1 Q29y IHBsZWFzZWQ= cGFydHk= IHBvaW50aW5n IGluZmxhdGlvbg== IHJveQ== ICks YWluZXI= IHdlZGRpbmc= b3Jtb24= IHJlcXVpcmluZw== IHF1YWxpZmllZA== IHNlZ21lbnQ= RU5E IHNpemVz ZWFscw== IGNvcnJ1cHQ= YXNzYWRvcg== IGNlbGVi IGRyZWFtcw== IE1lc3M= IGNoZWNraW5n IFZlcnNpb24= IHByZXBhcmluZw== IGFjdGl2ZWx5 IERpZmY= IGx1eA== IFdpbnRlcg== YWN0ZXJpYQ== IE5F IGRlcHV0eQ== IHRyYW5zZ2VuZGVy IHN1bW1hcnk= IGluaGVy ZXJpZXM= Y2hhcg== IFlhbg== IGtub2Nr IFBhdGg= IGxpcA== cm9sbGVy IGltcHJlc3Npb24= IGNlbGVicmF0ZQ== IHNsaWRl IGd1ZXN0cw== IGNsaXA= RlM= IHNhdmluZ3M= IGNhcHRhaW4= IGxlZ2FjeQ== IERlbnZlcg== IHdvdW5kZWQ= dGFib29sYQ== QUNU IHB1cnN1ZQ== IG94eQ== IHE= IHNlbWk= IE5lZWQ= IEFmZmFpcnM= IG9ic2M= IGNoZWNrZWQ= IGR1YWw= Q29kZQ== IE1E bGVt dWx0eQ== IMKp IEVsaXphYmV0aA== IGNlbnR1cmllcw== YXJkZWQ= c3Jj IGV2aWRlbnQ= ZW5uaXM= YXRpbg== IHVuZW1wbG95bWVudA== IE1hcmlv IGludGlt Q2hyaXN0 IGJpb2xvZ2ljYWw= IHNvbGRpZXI= IEFkZGVk IG1hdGg= IEdpbA== IGJpYXM= IGRhdGluZw== IE9jZWFu IG1pY2U= TXVz aGlyZQ== IFRlcw== U2VydmVy bGltaXRlZA== U2l6ZQ== IG1ldGVycw== IHJvY2tldA== ZXNzZWU= IGNlcnRpZmljYXRl IElyYW5pYW4= QVNT IGdyaWQ= RGVj IHJvbGxpbmc= Y29tbXVu IFN3ZWRlbg== YnVyeQ== IHRpc3N1ZQ== IHJhY2lzbQ== IExvY2Fs IG15c3Rlcnk= IGV4YW1pbmU= IHN0ZW0= IHNpdHM= IGhvcGVk b3Rpbmc= IGRpYWxvZ3Vl IHBlcnN1 V2F0Y2g= bGF5 TUFO IGNocm9uaWM= IFBvcnRsYW5k bWFya2V0 IFNFQw== IHBhcmFsbGVs IHNjYW5kYWw= IGNhcnJpZXM= IHBoZW5vbWVub24= aHVtYW4= YWNrZXI= IE94 IHJldGlyZW1lbnQ= dGFpbm1lbnQ= b3ZpZQ== IEdlYXI= IGR1dGllcw== IGRvc2U= IHNjcm9sbA== TUI= aW5m IHNhdWNl IGxhbmRzY2FwZQ== cmVkZGl0 IENoYW1waW9uc2hpcA== IFJlZGRpdA== YWxpZA== IGNvaW4= IG92ZXJz IHBvc3Rpbmc= YWJvdXQ= IGZlbA== YW5keQ== IGJvbGQ= IGZvY3VzaW5n ZWZmZWN0 R1I= IGRlZW1lZA== IHJlY29tbWVuZGF0aW9ucw== IHN0ZXBwZWQ= IHZvdGVy IERlZXA= IEluc3RhZ3JhbQ== IG1vZGVyYXRl IE1hcnlsYW5k IHJlc3RyaWN0ZWQ= IE1C IENoYWxs IHRvYg== IGNpcg== IE9jYw== IEV2ZXI= IGNvbGxhcHM= SU5GTw== PS0= IFBpY3Q= IEFjY291bnQ= bmM= IG91Z2h0 IGV4cG9ydA== IGRydW5r KCc= IHdpc2U= IE1vcnQ= bmVjZXNz IGFuY2VzdA== IEluY3Jl IGZyZXF1ZW50 bWly IGludGVycHJldGF0aW9u IGRlcGVuZGVudA== IGNvaW5z IEJvbA== VmlkZW8= IEp1c3Rpbg== IGZhdGFs IGNvb2tpbmc= IGNvbmZ1c2lvbg== aXBoZXI= IGN1c3RvZHk= IE1vcmdhbg== b21hY2g= IEdvdmVybm9y IHJlc3RhdXJhbnRz ZWxpbmc= IGFja25vd2xlZGdlZA== IHRoZXI= IGdlbmVz Y2hpbmc= SGV5 IHRhY3RpY3M= IE1leGljYW4= IHZlbmQ= IGhlcw== cXVlcg== IG5vdGluZw== IENhbWVyb24= IHRhcmdldGluZw== cm9jaw== IGNyZWRpdHM= IGVtb3Rpb25z IHJlcHJlc2VudGF0aXZlcw== bmV3cw== IGxlZ2lzbGF0aXZl IHJlbW92aW5n IHR3ZWV0ZWQ= IENhcnRlcg== IEZpeGVk IGZvcmNpbmc= IHNwZWFrZXI= IG1hbGVz IFZpZXRuYW0= bGluZWQ= IGNvbmNlcHRz IHZvaWNlcw== b2ly IFRyaWI= V2hl IEplcnVzYWxlbQ== IFNhbnQ= IGN1bA== IGxhZHk= IEhhd2Fp IGFydHM= IElubg== IE1hY2hpbmU= IEVtcGVyb3I= IHNsb3Q= Z2x5 IFByb2Nlc3M= SUlJ IGF0aGxldGVz IFRlbXBsZQ== IFJlcHJlc2VudA== IHByZXNj IHRvbnM= IGdvbGRlbg== IHB1bmNo IEdS aXZlcnBvb2w= IGVuYWN0 IGxvYmJ5 IG1vcw== IHBpY2tpbmc= IGxpZmV0aW1l IGNvZ25pdGl2ZQ== RWFjaA== em8= IGR1Yg== IGNvbnNpc3Rz b2xu IGZlc3RpdmFs YW1vdXM= IGludGVsbGln d29yZHM= IFNtYXJ0 IGRlbGU= IGxhcHQ= IG1hZ2ljYWw= IFNpbg== YnVz dXJpdGllcw== aWdodGg= IFJ1Ynk= IFN1cmU= b2x2aW5n IGp1bg== T1NU IGltcG9zZWQ= IGFzdHJvbg== IGNvcnJlbA== IE5T IEtpdA== IEZ1dHVyZQ== YnVybg== IGltbXVuZQ== b2N1cw== IGNvdXJzZXM= IFN0cmluZw== IGxlYW4= IGdob3N0 IG91dGNvbWVz IGV4cGVuc2U= IGV2ZXJ5ZGF5 IGFjY2VwdGFibGU= QWg= IGVxdWlwcGVk IG9yYW5nZQ== RlI= IER1dGNo VGhvdWdo IFJhbms= UVU= IFJvYmVydHM= d2hhdA== cmVuZA== IGRpc2FwcGVhcg== IHNwYXdu IExhbQ== b2lz IGRlc2VydmU= IG1pbmltYWw= IG5lcnZvdXM= IFdvdWxk IHJvb2s= IFZhbmNvdXZlcg== IHJlc2lnbg== c2hpcmU= IFdvcmtz IEJ1aWxk IGFmZm9yZGFibGU= IEdhcnk= IEFyZW5h IGhhbmdpbmc= IGltcGxpY2F0aW9ucw== IFNvbmc= IG1haW50YWluaW5n IGd1YXJkcw== Q09O IGRlcml2ZWQ= IGV4ZWN1dGVk IHRoZW9yaWVz IHF1b3RlZA== IEFuZHJl b2dh c2VsZXNz aW5mbw== IEJlbGc= IHRlYXJz IFN1cnY= IGJpcnRoZGF5 aWdpb3Vz aW1tZXI= IHNwZWN0cnVt IGFyY2hpdGVjdHVyZQ== IHJlY3J1aXQ= YXJtYQ== VGFibGU= IG1vbnN0ZXJz IEdvdg== IGRlc3RpbmF0aW9u IGF0dHJhY3RpdmU= IGZvc3M= IE1vcmVvdmVy IHByZXNlbnRz VEhF IHJlcGx5 cHRvbg== IGN1bQ== IGRlbGlnaHQ= IGFmZmVjdHM= IGRvbmF0aW9ucw== IFRveQ== IEhpbQ== TUVOVA== IG92ZXJjb21l aXRjaGVk IEZhbnRhc3k= IEhhdA== IEJlYXN0 Ym90dA== IGludmVzdGlnYXRpb25z UnVu IGh1bnRpbmc= ZGk= ZnVuZA== IHNlc3Npb25z ZXN0eWxl IHBvcnRyYXk= b2lkcw== WWVhaA== IGNvbW11bmljYXRl IGNvbWVkeQ== IFlhbmc= IGJlbHQ= IE1hcmluZQ== IHByZWRpY3RlZA== UGxheQ== IGltcG9ydGFudGx5 IHJlbWFya2FibGU= IGVsaW1pbmF0ZQ== RGF2aWQ= IGJpbmQ= VklE IGFkdm9jYXRlcw== IEdhemE= aW1w REI= IE5h IFNpbWlsYXI= SUVT IGNoYXJpdHk= dmFz bWF0aA== IOKW b2tlcg== bmR1bQ== IGNhcHM= IEhhbA== MjAwMA== ZWFu IGZsZWV0 IHJlY3Jl UmlnaHQ= IHNsZWVwaW5n aWppbmc= a2luZA== IGRlc2lnbmF0ZWQ= w6Q= IGFuaW1hdGlvbg== a2Vl IEludHJvZHU= IC8+ IGRlbGF5ZWQ= IHRyZW1lbmQ= IGN1cmlvdXM= VXNl IGxlY3Q= ZGFt IGlubm92YXRpb24= IFBvaW50cw== IGxvYWRpbmc= IGRpc3B1dGU= Y3RpYw== aXJkcw== IEJZ IG51cnM= IFZhbHVl SU9OUw== IEh1bQ== IHRlbXBsYXRl bWVycw== IGFwcGVhcmFuY2Vz IEVudGVydGFpbm1lbnQ= IHRyYW5zbGF0aW9u IHNha2U= IGJlbmVhdGg= IGluaGli IGV1cm8= YWJldGVz IHN0dWR5aW5n IE1hcw== IHBlcmNlaXZlZA== IGV4YW1pbmVk IGVhZ2Vy IGNvYWNoZXM= IGltcGVy Y2hp IHByb2R1Y2Vz Iiku IEV2ZXJ5b25l IG11bmljaXA= IGdpcmxmcmllbmQ= IGhpcmU= IFZpY2U= IHN1aXRhYmxl b3B5 IGluZXF1 IER1a2U= ZmlzaA== Zmlyc3Q= IE9icw== IGludGVyaW9y IEJydWNl IFJ5 IGFuYWx5cw== IGNvbnNpZGVyYWJsZQ== IGZvcmVjYXN0 IGZlcnQ= b3JzaGlw IERydWc= IEFMTA== OiI= dGh1cg== IE1haWw= IGJhbGxvdA== IGluc3RhbnRseQ== IENoYW5uZWw= IHBpY2tz IDE5ODk= IHRlbnQ= b2xp IGNpdmlsaWFu Ymxpbmc= ZWxsbw== YnU= IGluY2g= IGxvZ28= IGNvb3BlcmF0aW9u IHdhbGtz IGludmVzdG1lbnRz IGltcHJpc29u IEZlc3RpdmFs IEt5 IGxlZ2FsbHk= IGdyaQ== Y2hhcmc= U2w= IHRocmVhdGVuaW5n ZHVjdGlvbg== Zmxvdw== IGRpc21pc3NlZA== aWJyYXJpZXM= Y2Fw ZWxl IE1jRw== IEhhcnZhcmQ= IENvbnNlcnZhdGl2ZQ== IENCUw== cG5n IHJvb3Rz IEhhdmluZw== dW1ibGVk IEZ1bg== XC8= IFNlYXJjaA== cGxleA== IGRpc2N1c3Npbmc= IGNvbnRpbnU= IFRhaQ== IFdpaw== RnJlZQ== Zml0 IHJlZnVzZQ== IG1hbmFnaW5n IHN5bmQ= aXBlZGlh d2Fsaw== IHByb2Zlc3Npb25hbHM= IGd1aWRhbmNl IHVuaXZlcnNpdGllcw== IGFzc2VtYg== dW50dQ== RmluYWxseQ== QVNF IEF1dG8= IEhhZA== IGFubml2ZXJzYXJ5 TEQ= IER1cg== IFVsdGltYXRl aWhhZA== cHJvZHVjdA== IHRyYW5zaXQ= IHJlc3RvcmU= IGV4cGxhaW5pbmc= IGFzc2V0 IHRyYW5zZmVycmVk IGJ1cnN0 YXBvbGlz IE1hZ2F6aW5l IENyYQ== IEJS Z2dlZA== IEhF TWljaA== YmV0 IExhZHk= eWx1bQ== ZXJ2ZXM= IG1lZXRz d2hpdGU= TG9n IGNvcnJlc3BvbmRpbmc= IGluc2lzdGVk R0c= IHN1cnJvdW5kZWQ= IHRlbnM= IGxhbmU= IGNvaW5j aG9tZQ== IGV4aXN0ZWQ= ZWN0ZWQ= IERvdWJsZQ== bGFtbQ== IHNrZXB0 ZXhw IHBlcmNlcHRpb24= aWV2 IEJlaW5n b2Z0 IGFkb3B0 Ljo= XTs= V2luZG93cw== IHNhdGVsbGl0ZQ== QVNI IGluZmFudA== ZGVzY3JpcHRpb24= IE1lYW53aGlsZQ== Y20= b2Nh IFRyZWF0 YWN0b3I= IHRvYmFjY28= IE5vcm0= ZW1wdGlvbg== IGZsZXNo IGpl b29w IEhlYXZlbg== IGJlYXRpbmc= YW5pbQ== IGdhdGhlcmluZw== IGN1bHRpdg== R08= YWJl IEpvbmF0aGFu IFNhZmV0eQ== IGJhZGx5 cHJvdA== IGNob29zaW5n IGNvbnRhY3RlZA== IHF1aXQ= IGRpc3R1cg== IHN0aXI= IHRva2Vu RGV0 IFBh IGZ1bmN0aW9uYWxpdHk= MDAz c29tZQ== IGxpbWl0YXRpb25z IG1ldGg= YnVpbGQ= Y29uZmln TlQ= cmVsbA== YmxlbQ== IE1vbQ== IHZldGVyYW5z IEh1 IHRyZW5kcw== YXJlcg== IEdpdmVu IENhcHRpb24= bWF5 QVNU IHdvbmRlcmluZw== IENsYXJr bm9ybWFs IHNlcGFyYXRlZA== IGRlc3A= c3RpYw== YnJldw== IHJlbGF0aW5n IE5paw== IEZhcm0= IGVudGh1c2k= Z29vZA== ZGVi IGFjdGl2aXN0 IG1hcnQ= IGV4cGxvc2lvbg== IEVjb25vbWlj TGluaw== IGluc2lnaHQ= IGNvbnZlbmllbnQ= IGNvdW50ZXJwYXJ0 c3VwcG9ydA== IFZpcnQ= YWdlbg== IFRlbm5lc3NlZQ== IFNpbW9u IEF3YXJk T0NL IEZpZ3VyZQ== IG92ZXJzZWFz IHByaWRl IENhcw== bm90ZQ== bWc= Q3VycmVudA== IGRpc3BsYXlz Y29udGVudA== IHRyYXZlbGluZw== IGhvc3BpdGFscw== IEZpbmFuY2lhbA== IFBhc3Q= IGRlZmVuZGFudA== IHN0cmVhbWluZw== bWJsZQ== IEJlcmxpbg== dWtp IGRpc3RyaWJ1dA== IGFudGli IGNob2NvbGF0ZQ== IENhc3RsZQ== IGludGVycnVwdA== IFJvdw== IGNvbnZlcnNpb24= IGJ1Z3M= IFJhdGhlcg== bGllc3Q= TFk= IEplYW4= Y29tbW9u YWto IDEzMA== b3R0b24= IERlYW4= IGFtZW5kbWVudA== IGdhbWVwbGF5 IFdhcnJlbg== b2Rh IGhpZ2hsaWdodHM= IGlycmU= IE5BVE8= IGJhbGxz IGRlbWFuZGluZw== VVJF IEx1a2U= RmlndXJl c3RvcA== b25pYQ== em9uZQ== aXplcnM= IFdS IGF3YXJkZWQ= IHJlZ3VsYXRvcnk= IEhhcnQ= IFNO cGxpbmc= IHNvdXI= IFBpeGVs dXNpdmU= IGZldA== IFNlbnQ= IGF1dG9tYXRpYw== IGZlcg== dmVybm1lbnQ= IEtoYW4= VE9O ZmF0aGVy IGV4dHJhb3JkaW5hcnk= dGhyb3A= IFB5dGhvbg== IEdQVQ== IHNleHVhbGx5 IGRlc2t0b3A= aXRpdml0eQ== IEFudG9uaW8= IG9yaWVudA== IGVhcnM= b2JieQ== b3VzZXM= dmVydGlzZW1lbnRz IG1hbnVmYWN0dXJlcnM= aWNpZW50 bWludXRl IGNvbnZpY3Rpb24= IGdhcmRlbg== cHVibGlj IHNhdGlzZmllZA== Zm9sZA== T0s= IGluaGFi IFRoaW5r IHByb2dyYW1tZQ== IHN0b21hY2g= IGNvb3JkaW4= IGhvbHk= IHRocmVzaG9sZA== IHJoZXQ= IHNlcmlhbA== IGVtcGxveWVycw== IEV2ZXJ5dGhpbmc= cmFo IGJvdGhlcg== IGJyYW5kcw== VmFsdWU= IFRlZA== IFBsYW5ldA== IHBpbms= IEZ1cnRoZXJtb3Jl c2E= UEU= cmVjaw== IFVTRA== b3R0ZQ== ICYm IGxhbmRlZA== Z2V0cw== IHByb2R1Y2Vycw== IGhlYWx0aGNhcmU= IGRvbWluYW50 IGRlc3Rybw== IGFtZW5kZWQ= Y2hyb24= IGZpdHM= IFN5ZA== IEF1dGhvcml0eQ== QVRDSA== IGZpZ2h0cw== IExMQw== IC0tLQ== IENvcnA= IHRveGlj c3BlY2lmaWM= IENvcm4= IENoZWw= IHRlbGVwaG9uZQ== IFBhbnQ= IG15c3RlcmlvdXM= YXVuY2g= b2RveA== bWVkaWE= IHdpdG5lc3Nlcw== YWd1 IHF1ZXN0aW9uZWQ= IEJyZXhpdA== IFJlbWVtYmVy ZW5leg== IGVuZG9yc2U= aWF0cmlj IElkZW50 IHJpZGljdWxvdXM= MTEw IHByYXllcg== IHNjaWVudGlzdA== IDE5NTA= IEFxdQ== IHVuZGVyZ3JvdW5k IFVGQw== bWFyZQ== IExhdGVy d2ljaA== IHN1YnNjcmli IGhvc3Rz IGVycg== IGdyYW50cw== YW50b20= IHN1bW1vbg== ZWFybHk= IENsZWFy IFByaW0= IHN1c3BlbnNpb24= IGd1YXJhbnRlZWQ= YXBwZXI= IHJpY2U= IFNlYW4= IFNoaW4= IHJlZmVyZW5kdW0= IGZsZWQ= cnVzdA== IDM2MA== dGVyeQ== IHNob2NrZWQ= QlI= IE9pbA== IEFsbGFo IHBhcnRseQ== IGlnbm9y IHRyYW5zbWlzc2lvbg== IGhvbW9zZXh1YWw= aXZlcnNhbA== IGhvcGVmdWxseQ== 44Kk IGxlc3Nvbg== TGVn IC4u WWV0 dGFibGU= YXBwcm9wcmk= cmV0dA== IGJvYXJkcw== IGluY29ycmVjdA== IGJhY3Rlcmlh YXJ1 YW1hYw== IHNuYXA= Lici IHBhcmFk dGVt aGVhcnQ= IGF2YWlsYWJpbGl0eQ== IHdpc2RvbQ== ICgr IHByaWVzdA== IMKgIMKg T3Blbg== IHNwYW4= IHBhcmFtZXRlcg== IGNvbnZpbmNl ICglKQ== cmFj IGZv IHNhZmVseQ== IGNvbnZlcnRlZA== IE9seW1waWM= IHJlc2VydmU= IGhlYWxpbmc= IE1pbmU= TWF4 IGluaGVyZW50 IEdyYWhhbQ== IGludGVncmF0ZWQ= RGVt IHBpcGVsaW5l IGFwcGx5aW5n IGVtYmVk IENoYXJsaWU= IGNhdmU= MjAwOA== IGNvbnNlbnN1cw== IHJld2FyZHM= UGFs IEhUTUw= IHBvcHVsYXJpdHk= bG9va2luZw== IFN3b3Jk IEFydHM= Jyk= IGVsZWN0cm9u Y2x1c2lvbnM= IGludGVncml0eQ== IGV4Y2x1c2l2ZWx5 IGdyYWNl IHRvcnR1cmU= IGJ1cm5lZA== dHdv IDE4MA== UHJvZHU= IGVudHJlcHJlbmU= cmFwaGljcw== IGd5bQ== cmljYW5l IFRhbQ== IGFkbWluaXN0cmF0aXZl IG1hbnVmYWN0dXJlcg== IHZlbA== IE5p IGlzb2xhdGVk IE1lZGljaW5l IGJhY2t1cA== IHByb21vdGluZw== IGNvbW1hbmRlcg== IGZsZWU= IFJ1c3NlbGw= IGZvcmdvdHRlbg== IE1pc3NvdXJp IHJlc2lkZW5jZQ== bW9ucw== IHJlc2VtYg== IHdhbmQ= IG1lYW5pbmdmdWw= UFQ= IGJvbA== IGhlbGlj IHdlYWx0aHk= IHJpZmxl c3Ryb25n cm93aW5n cGxhbg== YXN1cnk= 4oCmLg== IGV4cGFuZGluZw== IEhhbWlsdG9u IHJlY2VpdmVz U0k= ZWF0dXJlcw== IEFuaW0= UkVF UHV0 IGJyaWVmbHk= cml2ZQ== IHN0aW11bA== IGBgKA== IF9f IGNoaXA= IGhheg== IHByaXpl IFRoaW5ncw== QUNF dWxpbg== ZGljdA== b2t1 IGFzc29jaWF0ZQ== b2NrZXRz eW91dHViZQ== U3Rvcnk= YXRlZ29yeQ== IG1pbGQ= YWlsaW5n IFll T3JpZw== IEth b3JpZw== IHByb3BhZ2FuZGE= IGFub255bW91cw== IHN0cnVnZ2xlZA== IG91dHJhZ2U= QVRFRA== IEJlaWppbmc= cmFyeQ== IGxlYXRoZXI= IHdvcmxkcw== IGJyb2FkZXI= MTI1 aWRhbA== IEJldHRlcg== IHRlYXI= RXh0 IHByb3Bvc2Fscw== IGl0ZXI= IFNxdWFk IHZvbHVudA== bWk= RGlk IFB1 cGlu IHNwZWFrZXJz IGJvcmRlcnM= IGZpZ3VyZWQ= PSc= IHNpbXVsdGFuZW91c2x5 YWVkYQ== IGNoYXJnaW5n IHVyZ2Vk IGNvbmo= MjU2 IEdvcmRvbg== bWVyY2U= IGRvY3VtZW50YXJ5 U2hhcmU= aXRvbA== T05F IEdhcmRlbg== aGF0dA== IFRob21wc29u YW5lb3Vz YXBvcmU= IHRhbmtz IGxlc3NvbnM= dHJhY2s= IG91dHN0YW5kaW5n IHZvbHVudGVlcnM= IHNwcmF5 IG1hbmFnZXJz bGFyZ2U= IGNhbXBz IGFydGlmaWNpYWw= IFJ1 IGJhZ3M= dGhhbA== IGNvbXBhdGlibGU= IEJsYWRl IGZlZA== IGFyZ3Vlcw== Rkk= IHVuZmFpcg== IGNvcm4= IG9mZnNldA== IGRpcmVjdGlvbnM= IGRpc2FwcG9pbnRlZA== IENvbnZlbnRpb24= IHZpZXdpbmc= TUU= b2NpdHk= IHRvd25z IGxheWVycw== IHJvbGxlZA== IGp1bXBlZA== IGF0dHJpYnV0ZQ== IHVubmVjZXNz aW5jb2xu IHN1cHBvc2U= IE5ldGhlcg== Y2hh IGJ1cmllZA== IHNpeHRo QmVu cmVzc2luZw== T1VS IHdvdW5k IGN5Y2w= IG1lY2hhbmlzbXM= IGNvbmdyZXNzaW9uYWw= IEVsZW1lbnQ= IGFncmVlbWVudHM= IGRlY29y IGNsb3Nlc3Q= IE1pdA== R29vZ2xl fX0= IG1peHR1cmU= IGZsdWlk U2lnbg== IFNjaG9sYXI= IHBpc3Q= YXNrZXQ= YWJsaW5n IHJhY2luZw== aGVybw== cmllbA== YXNzeQ== IGNoZWFwZXI= YmVu IHZlcnRpY2Fs YW1hY2FyZQ== IFJlYWRpbmc= Z21lbnRz IGhlbGljb3A= IHNhY3JpZmljZQ== YXlh cGFyZW4= VkE= IExlcw== IFN0dWRpbw== IHZpb2xhdGlvbnM= IEFubmE= YWNlcg== 6b4= IFJhdA== IEJlY2s= IERpY2s= IEFDVA== IGNvbXBvc2l0aW9u IHRleHR1cmU= IE93bg== IHNtYXJ0cGhvbmU= IE5B IGZvcmI= aW1wb3J0 IGRlZmVuZGluZw== aWxzdA== cmVy IG9o IEplcmVteQ== IGJhbmtpbmc= Y2VwdGlvbnM= IHJlc3BlY3RpdmU= Ly4= IGRyaW5rcw== IFdp IGJhbmRz IExpdmVycG9vbA== IGdyaXA= IEJ1eQ== IG9wZW5seQ== IHJldmlld2Vk cGVydA== IHZlcmlmeQ== IENvbGU= IFdhbGVz TU8= IHVucHJl IHNoZWx0ZXI= IEltcGVyaWFs IGd1aQ== IERhaw== IHN1Z2dlc3Rpb25z IGV4cGxpY2l0bHk= IHNsYXZl IGJsb2NrY2hhaW4= IGNvbXBldGluZw== IHByb21pc2luZw== U09O IHNvY2Nlcg== IGNvbnN0aXR1dGlvbg== NDI5 IGRpc3RyYWN0 IFVzZXI= ZXNpZGVz IE1ldGhvZA== IFRva3lv IGFjY29tcGFuaWVk Q2xpZW50 c3Vy YWxvZw== IGlkZW50aWZpY2F0aW9u IGludmFzaW9u YXNtYQ== IGluZHVzdHJpZXM= cHBlcnM= IHN1YnRsZQ== IFVuaXQ= bmF0dXJhbA== IHN1cnZpdmVk IGZsYXc= mIU= IEhvbGw= IGRlZmljaXQ= IHR1dG9yaWFs IENoYW5jZQ== IGFyZ3Vpbmc= IGNvbnRlbXBvcmFyeQ== IGludGVncmF0aW9u Zm9yd2FyZA== IHR1bQ== aXRpcw== IGhpZGluZw== IERvbWlu IFRhbg== IEJ1aWxkaW5n IFZpbg== IHNwb2tlc3BlcnNvbg== IE5vdGVz IGVtZXJnaW5n IHByZXBhcmF0aW9u IHByb3N0 IHN1c3BlY3Rz IGF1dG9ub20= RGVzY3JpcHRpb24= IGRlYWx0 IFBlYXI= IHN0ZWFkeQ== IGRlY3JlYXNlZA== IHNvdmVyZQ== IENsaW4= IGdyYWR1YWxseQ== b3JzZXM= IFdBUg== U2Vydg== 44Ki aHI= IGRpcnR5 IEJhcm4= IEJD IGRpbA== IGNhbGVuZGFy IGNvbXBsaWFuY2U= IGNoYW1iZXI= YmI= IHBhc3Nlbmdlcg== YXRlZnVs IFRpdGxl IFN5ZG5leQ== IEdvdA== IGRhcmtuZXNz IGRlZmVjdA== IHBhY2tlZA== YXNzaW9u IGdvZHM= IGhhcnNo SUNL bGVhbnM= IGFsZ29yaXRobQ== IG94eWdlbg== IHZpc2l0cw== IGJsYWRl IGtpbG9tZXQ= IEtlbnR1Y2t5 IGtpbGxlcg== UGFjaw== ZW5ueQ== IGRpdmluZQ== IG5vbWluYXRpb24= YmVpbmc= IGVuZ2luZXM= IGNhdHM= IGJ1ZmZlcg== IFBoaWxs IHRyYWZm QUdF IHRvbmd1ZQ== IHJhZGlhdGlvbg== ZXJlcg== bWVt IEV4cGxpY2l0 6b6N IGNvdXBsZXM= IHBoeXNpY3M= IE1jSw== IHBvbGl0aWNhbGx5 YXdrcw== IEJsb29t IHdvcnNoaXA= ZWdlcg== dXRlcg== IEZP IG1hdGhlbWF0 IHNlbnRlbmNlZA== IGRpc2s= IE1hcmc= IC8q UEk= IG9wdGlvbmFs IGJhYmllcw== IHNlZWRz IFNjb3R0aXNo IHRoeQ== XV0= IEhpdGxlcg== UEg= bmd0aA== IHJlY292ZXJlZA== aW5nZQ== IHBvd2Rlcg== IGxpcHM= IGRlc2lnbmVy IGRpc29yZGVycw== IGNvdXJhZ2U= IGNoYW9z In0seyI= IGNhcnJpZXI= YmFibHk= SGlnaA== IFJU ZXNpdHk= bGVu IHJvdXRlcw== dWF0aW5n Rmls Tk9U d2FsbA== c2J1cmdo IGVuZ2FnaW5n IEphdmFTY3JpcHQ= b3Jlcg== bGlob29k IHVuaW9ucw== IEZlZGVyYXRpb24= IFRlc2xh IGNvbXBsZXRpb24= IFRh IHByaXZpbGVnZQ== IE9yYW5nZQ== IG5ldXI= cGFyZW5jeQ== IGJvbmVz IHRpdGxlZA== IHByb3NlY3V0b3Jz IE1F IGVuZ2luZWVy IFVuaXZlcnNl IEhpZw== bmll b2FyZA== IGhlYXJ0cw== IEdyZQ== dXNzaW9u IG1pbmlzdHJ5 IHBlbmV0 IE51dA== IE93 IFhQ aW5zdGVpbg== IGJ1bGs= U3lzdGVt aWNpc20= IE1hcmtldGFibGU= IHByZXZhbA== IHBvc3Rlcg== IGF0dGVuZGluZw== dXJhYmxl IGxpY2Vuc2Vk IEdo ZXRyeQ== IFRyYWRhYmxl IGJsYXN0 4KQ= IFRpdGFu ZWxsZWQ= ZGll SGF2ZQ== IEZsYW1l IHByb2ZvdW5k IHBhcnRpY2lwYXRpbmc= IGFuaW1l IEVzcw== IHNwZWNpZnk= IHJlZ2FyZGVk IFNwZWxs IHNvbnM= b3duZWQ= IG1lcmM= IGV4cGVyaW1lbnRhbA== bGFuZG8= aHM= IER1bmdlb24= aW5vcw== IGNvbXBseQ== IFN5c3RlbXM= YXJ0aA== IHNlaXplZA== bG9jYWw= IEdpcmxz dWRv b25lZA== IEZsZQ== IGNvbnN0cnVjdGVk IGhvc3RlZA== IHNjYXJlZA== YWN0aWM= IElzbGFuZHM= IE1PUkU= IGJsZXNz IGJsb2NraW5n IGNoaXBz IGV2YWM= UHM= IGNvcnBvcmF0aW9u IG94 IGxpZ2h0aW5n IG5laWdoYm9ycw== IFVi YXJv IGJlZWY= IFViZXI= RmFjZWJvb2s= YXJtZWQ= aXRhdGU= IFJhdGluZw== IFF1aWNr IG9jY3VwaWVk IGFpbXM= IEFkZGl0aW9uYWxseQ== IEludGVyZXN0 IGRyYW1hdGljYWxseQ== IGhlYWw= IHBhaW50aW5n IGVuZ2luZWVycw== TU0= IE11c3Q= IHF1YW50aXR5 UGF1bA== IGVhcm5pbmdz IFBvc3Rz c3RyYQ== 44O844M= IHN0YW5jZQ== IGRyb3BwaW5n c2NyaXB0 IGRyZXNzZWQ= TWFrZQ== IGp1c3RpZnk= IEx0ZA== IHByb21wdGVk IHNjcnV0 IHNwZWVkcw== IEdpYW50cw== b21lcg== IEVkaXRvcg== IGRlc2NyaWJpbmc= IExpZQ== bWVudGVk IG5vd2hlcmU= b2NhbHk= IGluc3RydWN0aW9u Zm9ydGFibGU= IGVudGl0aWVz IGNt IE5hdHVyYWw= IGlucXVpcnk= IHByZXNzZWQ= aXpvbnQ= Zm9yY2Vk IHJhaXNlcw== IE5ldGZsaXg= IFNpZGU= IG91dGVy IGFtb25nc3Q= aW1z b3dza2k= IGNsaW1i bmV2ZXI= IGNvbWJpbmU= ZGluZw== IGNvbXBy IHNpZ25pZmljYW5jZQ== IHJlbWVtYmVyZWQ= IE5ldmFkYQ== IFRlbA== IFNjYXI= IFdhcnJpb3Jz IEphbmU= IGNvdXA= YmFz IHRlcm1pbmFs LC0= T0g= IHRlbnNpb24= IHdpbmdz IE15c3Rlcg== 77+977+977+977+9 IFVubGlrZQ== dmFsaWQ= dmlyb25tZW50cw== IEFsaQ== IG5ha2Vk Ym9va3M= IE11bg== IEd1bGY= IGRlbnNpdHk= IGRpbWlu IGRlc3BlcmF0ZQ== IHByZXNpZGVuY3k= IDE5ODY= aHk= SU5E IHVubG9jaw== aW1lbnM= IGhhbmRsZWQ= IEVi IGRpc2FwcGVhcmVk IGdlbnJl IDE5ODg= IGRldGVybWluYXRpb24= U3RyZWFt aWtv YXB0ZXJz IGFja25vd2xlZGdl SmFu IGNhcGl0YWxpc20= UGF0 IDIwMjA= IHBhaW5mdWw= IGN1cnZl IGJvbWJz c3Rvcm0= IE1ldGFs ZW5jZXI= IEZpZw== IEFhcm9u YW5jaGVz IGluc3BpcmF0aW9u IGV4aGF1c3Q= dGFpbnM= YXNoaQ== IGRlc2NyaXB0 IHJpdHVhbA== IENoZWxzZWE= IHByb21vdGlvbg== IEh1bmc= IFdhcmQ= aXZh IEVU IHRvc3M= YWxsb3c= IEZyYW5jaXM= RGVw IGhhcHBpbmVzcw== IEdsYXNz IGJldGE= IHN0cmVuZ3RoZW4= TkU= b2E= IGJ1dHRvbnM= IE11cnJheQ== IGtpY2tlZA== UXVlc3Q= IFRhbGs= IFNldmVyYWw= IFplcm8= IGRyb25l dWxr IGNhbQ== IE1vYmlsZQ== IHByZXZlbnRpbmc= IHJldHJv IEF4 IGNydWVs IGZsb2F0 Liks IGZpbGluZw== IEdyYW50 IEJvcg== IHJpYg== IGNoYW1waW9uc2hpcA== IE1lcmM= IHN0eWxlcw== IGNha2U= IGJ1aWxkcw== IFNlbGY= aW94 IGVwaWM= b3lk QmVs IFN0ZXc= Lig= YWh1 IEJleW9uZA== IG91dHM= IHNvbG8= IFRyZWU= IHByZXNlcnZl IHR1Yg== QVJF cm9j IEltcHJv IFdyaWdodA== IGJ1bmQ= IHRyYWdlZA== IG9jY2FzaW9uYWw= Ymlhbg== U2Vjb25k cm9ucw== IGludGVyYWN0aW9ucw== Zm9ybWVk c2luZw== IG93bnM= IGhvY2tleQ== R2VuZXJhbA== IGxvZ2ljYWw= IGV4cGVuZA== IGVzY2Fs IEdyaWZm IENyb3du IFJlc2VydmU= IHN0b3BwaW5n IGV4Y3VzZQ== c2Vjb25k IG9wZXJhdGVk IHJlYWNoZXM= IE1hbGF5cw== IHBvbGx1dGlvbg== IEJyb29rbHlu IGRlbGV0ZQ== IGhhc2g= QmxvY2s= YWhh 4oCz IHNob3J0ZXI= cGllY2U= Pjwv IGhvcm0= IFdhdA== IEJyZWFr IHByb2hpYml0ZWQ= IGludGVuc2l0eQ== IEFsYW4= IGxpYWJpbGl0eQ== PyE= YW5kZWQ= IG5laWdoYm91cg== IENvbGxlY3Rpb24= IGZpcmVz IHJldm9sdXRpb25hcnk= Zmx5 IE9ybGVhbnM= V2hpdGU= IFdyaXQ= IERhd24= IHNldHRsZQ== IGV4ZWN1dGU= Qk0= IHNwb2tlc3dvbWFu IGxpZmVzdHlsZQ== IGNsaWNraW5n IEtpbGw= IExpYmVyYWw= IE5hemk= IHRyYWlsZXI= IG1vdW50YWlucw== IGRhbW4= emVz cGVz IHByZXNzaW5n IGJhaWw= IE9yZ2FuaXphdGlvbg== IHBpcg== IHRoaXJ0eQ== IGVsZWN0cmljYWw= IDExNQ== IFBvbHk= IFJhcA== IFN0cmlrZQ== IENhbm4= IGRlbWFuZGVk IGJhY2tpbmc= ZGVmYXVsdA== c3BlZWQ= IExlZ2lzbA== IG1vdGhlcnM= IEJvZHk= IHZhcmlhdGlvbg== Y2VkZW50ZWQ= cG93ZXJlZA== bGVhZGluZw== TmV2ZXI= IGdyYXZl IEFudGk= QVc= IGludGVydmlld2Vk IEdhYg== IEZhdA== IHJvb2tpZQ== dXU= IGRlcG9z aXhvbg== IGFtcGw= cmV0aW9u IEhlYXQ= IHBlYWNlZnVs U00= aWV2ZQ== IGRpdmVy IFZpY3Rvcmlh IG1pYw== cGRm IHN0YXRpbmc= IGx1bmc= IGNyaXRpY2l6ZWQ= IHZhY2NpbmU= IExvYWRpbmc= dXJzZQ== VGFrZQ== IEZyYW4= IFNvbGQ= IFJvYmlu IGRldGVjdGVk IFNjcmlwdA== IGFkanVzdGVk IHNlbmF0b3I= IG9wcG9zaW5n RXJyb3I= Q291bnQ= IGNvbmZsaWN0cw== IG93 IEFyZ2VudA== IG1hdGNoaW5n aGg= IFRyZWs= c3RhcnRlcg== Iiks IEFG b2Rlcg== eHh4eA== IEFsdA== YWNyZQ== IFBpY2s= IFNvbGFy IERhbA== T2N0 IEJhdHQ= IHNyYw== IGVuZ2FnZW1lbnQ= IGV4ZWN1dGl2ZXM= IGxpYmVydHk= amF2YQ== IHRhbGVudGVk aWdlbm91cw== IGNvbnNlY3V0 Li4uLi4= SW5mbw== IGhvcnJpYmxl IHN1cnByaXNpbmdseQ== ZmVlZA== aWNhdGluZw== IExFRA== IGZlbWFsZXM= U3RhdGlvbg== ZWxsZXI= IE9ha2xhbmQ= IG1lY2hhbmljYWw= aW9sb2d5 IFZhcg== IHJvYnVzdA== ZXR0aW5ncw== b3R0YQ== IHRoZW9yZXQ= IHJldGFpbg== a3dhcmQ= IGRh IGRlcGxveWVk ZGVs IEFuZHk= IHN1YnNjcmliZQ== d2Vi IG5h IE1pY2hlbA== IHBhcnRpYWxseQ== IENvbWV5 IGNyb3du IE1hag== IEJsdQ== cmF0b3I= RGF5 SU5U IGRvY3VtZW50ZWQ= IEdEUA== Z2k= Y2hlbGw= IGJydXRhbA== IEJhYg== c3RyYXRpb24= IHRoZWZ0 IHR1YmU= QEA= IHF1ZXJ5 IExpbmNvbG4= IHB1Ymxpc2hpbmc= IHdvcmU= b3JpY2Fs IHJpYw== IG5vdGFibGU= IHN1YnNlcXVlbnRseQ== bmV4 IG9ic2VydmU= IEJvZQ== IGNvZGVz bWFpbg== V0g= IFNM IHJlc2lkZW50aWFs YXZhbg== IG1hcw== YXJlc3Q= YWRlb24= T1VU IHNvcGhpc3RpYw== YW50ZQ== IGNlbnM= ICoq IG1vcnRhbGl0eQ== IHlvdXJz IG9jY2FzaW9ucw== IHJlY2FsbGVk IERyaXZlcg== IHZvY2Fs IGJhdGhyb29t IHNob3Bz IGNvbGxhYm9yYXRpb24= IE9iYW1hY2FyZQ== IENlbGw= Q2hhcg== U3VwZXI= Q3Jl IHRlbmRz IHRvcm4= IGVjb25vbWljcw== YXZlcnk= IFJhaWQ= IFNlbQ== IHNob3VsZGVycw== IGV4cGVjdGluZw== IGV4YW1pbmF0aW9u ZW5hbWU= IFVJ aWFiaWxpdHk= b2xhcw== IEFtYg== IERyYQ== IG1pZGZpZWxk IElD IGxheW91dA== IGZsb2F0aW5n Zmk= aXRhdGl2ZQ== IHRyZW1lbmRvdXM= INA= IGFidW5k V29yaw== IExpZ2h0bmluZw== IHNpbWlsYXJseQ== IGNvbnNlcnZhdGl2ZXM= IHByYXk= QkU= aXphcnJl IHRlbXB0 IGVtcGhhc2lz IE1ldHJv IGZpc2hpbmc= IG1hcnJ5 bmVn IFN0dWR5 IHJlY2s= IGRpc3Bvcw== b25pbmc= YnNpdGU= IHN1c3BpYw== IG1lcmNo IEdpYg== IERlc2NyaXB0aW9u IERWRA== d2hl IFllbWVu IGVudmlyb25tZW50cw== b290aW5n IE1vZGVybg== ZXU= IHJlZmxlY3Rz IGhvbmV5 IGFuYWx5c3Q= IGd1dA== ZGVj QWN0aW9u IGhvdXNlaG9sZHM= IHN0ZXI= IHRlbXBsZQ== IHJlZm9ybXM= IGZhdm91cml0ZQ== IGRlYWRsaW5l IExF VGhyZWU= IFdpdGhpbg== QXVn IG5pZ2h0cw== ZWx0YQ== IGludmFsaWQ= IEV4Y2hhbmdl IERlbGhp d2hlbg== aW5jb21l IPCf IHdpcmVsZXNz c2NyaWJl aXN0YQ== IGhvc3RpbGU= IGFsbHk= IGdpZw== IG91dGxldHM= IERvcg== RU1FTlQ= IGFzaA== IGFic3RyYWN0 T1JE IE1vdG9y IGFkdmlzZXI= aXN0bGU= IGJhc2Vz IGNvdXJ0ZXN5 IGNyb3NzaW5n IGNsZWFyZWQ= IHJlZnVnZWU= Y29zeXN0ZW0= IHRocm93cw== ZnVu Ym91cm5l ZGF5cw== IGRpc2FncmVl IE5hdGl2ZQ== IHJlZmxlY3RlZA== IEZhc3Q= IFllbGxvdw== IFNpbmdhcG9yZQ== IFJhdmVu IGVtYnJhY2U= IEt1 IENoZW4= IEVhcmx5 IGFwcG9pbnRtZW50 IE1pbmk= aXRlbWVudA== IHBsYWNpbmc= IGJpY3k= U1I= IHdoaXM= U1U= IGludmVzdGlnYXRlZA== IHBob3RvZ3JhcGhz Z2l0aHVi IEJlYXQ= IFJpbmc= aWdoZWQ= aWFy IGV2b2x2ZWQ= ZXJhbGQ= IGR1bg== IGh1Yg== SUFM IGVuY291cmFnaW5n IFByaW50 IERheXM= IHByb3NlY3V0aW9u IHBhbnRz YXp5 bGl2ZQ== IGZvc3NpbA== IEp1 IHJvY2tz dWRnZQ== IFJhY2U= IGdyZWV0 Ymll IGZpbGxpbmc= IExlbg== IGRpYWJldGVz IGZpcmVhcm1z dW1pbmc= ZW5lenVlbA== IEJC IGFjY2VwdGluZw== QVRI IHJlc29ydA== IGh1bnQ= cmlr dWNrZXI= YW1lbnRz IHN1c3RhaW5lZA== IGNyb3NzZWQ= IGJyZWFrZmFzdA== IGF0dHJpYnV0ZXM= bGVjdGVk YXRpbGU= IHZpYnI= IEthbA== YXJzb24= b3BsZXM= IHRvdWNoZWQ= IGRhbWFnZXM= IGltcHJlc3NlZA== cnVw IGFuY2g= IEFkYW1z SGVs IFZpY3Rvcg== IG1vdW50ZWQ= IEND IGRlbGljaW91cw== c3Bhbg== ZWxsYQ== IGVsYWJvcg== YW1wbGVz IGRlZmlj IGNvbnN0aXR1 dWF0ZXM= IE1pc3Npb24= IFRoZXI= IE1vbnN0ZXI= YmVz UmV1dGVycw== IEluZG9uZXM= aGlsbA== bXVuaXRpb24= IGNvbmZpcm1hdGlvbg== IENvbnNpZGVy YWNlbnQ= IGpldA== IEVtcGxveQ== IEdUWA== bmFu IFNwaWRlcg== IHByb2Nlc3Nvcg== IHBhdHJp IFBlbnRhZ29u IFJvYmluc29u IHJlYWxpc3RpYw== w7E= IGFwcGVhcmluZw== IHBpcGU= b21lZA== IGZydQ== IGF3ZnVs IGV2YWx1YXRpb24= IGludGVsbGlnZW50 IENpdGl6 IGZ1bmRyYQ== b2RpdW0= IHR3ZWV0cw== IHdvcm4= cHJpbmc= IGtpZG4= IHJlYmVscw== IEthbQ== IE5ldGhlcmxhbmRz IFNX IGFjcXVpc2l0aW9u IE1hbGU= 44Oq b21iaWVz IHRyYWRlbQ== IFN0YXR1cw== QnJl IFRISVM= IGFkdmVyc2U= IE5FVw== c2lnbg== IG9yZ2FuaXNhdGlvbg== ZW5j IEhhcnBlcg== YXBvcg== IE1lbWJlcnM= IFBlYWNl IEFpcnBvcnQ= IE90aGVycw== IHNjcmF0Y2g= IFBpbA== IHNlbnNvcg== IGFkb3B0aW9u IEhvdGVs IERyYWc= IGhvbmVzdGx5 IHlhcmQ= IEZvcmNlcw== IHBhdGVudA== IGJhc3M= IHF1aWV0bHk= IGJyZWF0aGluZw== IHBvc2U= aW9ycw== IEplc3M= c3RhdGlj SVRF T2ZmaWM= IGpldw== d2Nz IDE0MA== IHByZXZpZXc= aXBwaQ== IHVuZm9ydHVuYXRlbHk= b2tlbW9u IGhvcm4= IHJlYXNz IHBlZXI= b2NrZXI= IHVudG8= IEdyYXk= IGNsZWFuaW5n IGF0dHJhY3RlZA== MjAwNw== UG9pbnQ= a2lsbA== IEFncmVlbWVudA== dXJjaGVz IGhvcnI= IE1pc3Npc3M= IHdvcnRoeQ== IGZsb3dlcnM= dG93bg== ZGxs IHJlYWN0aW9ucw== IGRlY2U= IGluZGljYXRpbmc= TUQ= IHByZWZlcmVuY2U= IE1WUA== ZXNzaW9uYWw= IFRhcmdldA== Z2VuY2U= IEluZGlhbnM= IG1pc2M= IGZyZWVseQ== IG11c2NsZXM= IGxpbmV1cA== IGltcGFjdHM= b3VzaW5n b21p YWN1bGFy IGNvbnRyb2xsaW5n YWdpbmU= Y2VyeQ== aGVsbA== IHJhbmtpbmc= IE5pY2g= IEF2ZQ== MTI4 IGhpZ2h3YXk= IGluY29ucw== IGJpbmRpbmc= IHN0cnVnZ2xlcw== IFBpdHRzYnVyZ2g= IGdyYXk= cmlu IGNvbWljcw== IFNwb3J0 IHJlbGF0aXZlcw== IGZyaWdodA== IHByb2Jl IFBvcnR1Zw== IHZvYw== IHR1 IENvcnBz IHBvc3NpYmlsaXRpZXM= IHF1YWxpZnk= d2Nzc3RvcmU= IGxpYnJhcmllcw== IG1pZ3JhbnRz IGVudHJpZXM= IGNvbnNlY3V0aXZl dmFscw== IENoYWlybWFu IGhpbGw= SU1F IEdhcmQ= IGluZXF1YWxpdHk= Zm94 IFNhdmU= IGNvcnQ= Y2xhaW1lZA== IHRyYWl0cw== IHBvdXI= IG1pc3NpbGVz IGVzc2VuY2U= IHNlbmRz IGFsbGlhbmNl IHdpc2hlcw== IENocmlzdG9waGVy Qmln Tlk= IEphY29i c2Fu dXJyZWQ= IFNP bGx5 IGFkdm9jYXRl IEJvbmQ= ICIv VXNpbmc= IGRpc3RyaWN0cw== IEdhdGU= IEJpcg== cmlkZ2U= IE5heg== IFJz Ym9hcmRz IEdh IFJlYWdhbg== IGluZmx1ZW5jZWQ= MTAwMA== YXB5 IGNoYWxsZW5nZWQ= IGJhcmc= IGZhY3VsdHk= IEZpZg== IGFjcXVpcmU= QWM= IGluc2VjdA== IGluc3RydW1lbnRz IGxlYWY= dGhvZG94 TWVzc2FnZQ== IHRhbGU= IHRoZXJlYnk= IHRyYXA= IHN0cm9uZ2VzdA== IE1pbGl0YXJ5 aXNpYmxl IDE5ODQ= ZXRoZWxlc3M= IGZsZXhpYmxl IGtpbGxz IGZpbmlzaGluZw== IFNpemU= IHJlZHVjZXM= IGVwaWQ= IG9yaWVudGF0aW9u ZnVsbA== IHRyYWNl IGxhc2Vy IG9wcG9zZQ== IGVkaXRpbmc= IG1vbWVudHVt 5Lo= c2hvdw== Vkk= IExhZA== IDE5ODU= IG11cmRlcmVk OTAw dXRoZXI= IHByb2JhYmlsaXR5 IFBvbGw= IHJlbHVjdA== IENoZW0= IE1vbnRyZWFs IGFkZXF1YXRl IFBvbGFuZA== IFNoZXJpZmY= dW1waA== IG9r IDAwMA== ICJb IG9wZXJhdG9ycw== IEZlcg== IG1vZGVz IEV2ZQ== IGRpc2NpcGxpbmU= TkVU SGFuZA== IG9yYWw= IFdF ZW1haWw= SlA= IFBhbGVzdGluaWFucw== IGhlbmNl IExlc3M= IG92ZXJs ZGln IGludGltaWQ= IENvYWw= IHJhbmdpbmc= dGhh IGRpc3RhbnQ= IGZpYg== IEluZGV4 IFdvbmRlcg== IFBlbA== aGF0dGFu IEh1Zw== w5c= cmFpdA== IHdyYXBwZWQ= IFJQRw== IGNoZW1pY2Fscw== IE1vbmV5 IGZyb3plbg== IGluZGlyZWN0 IEFnYWluc3Q= RW5k IHVuY29tZm9ydGFibGU= IEdhbGxlcnk= IFBvc3RlZA== 2Kc= b25kdWN0 IGNvbnNlcXVlbmNl IGJpdHRlcg== IDE5ODc= cG9w IGNvdW50bGVzcw== IEFsYXNrYQ== ZmZmZg== IGRlcGFydHVyZQ== IHJlZnVuZA== IElhbg== aWF0ZWQ= IHNlZWtz IG1lY2hhbmljcw== IGp1cmlzZGljdGlvbg== bHlubg== IGFsaWtl IEh1bnQ= YXRob24= IHJlc29sdmVk IGNhY2hl IGRpc3RpbmN0aW9u ZGlyZWN0 IGVuY291bnQ= b3Vi YmVhdA== IENvdW50cnk= c2VhcmNo IGNvbnRpbnVvdXM= IG1vZGVzdA== IFJhaWw= dGhvb2Q= MTMw QlVH IGNyaW1pbmFscw== IGluZGljYXRpb24= IGVuY291bnRlcmVk bGFzdA== IFd5 IGlkZW9sb2d5 IFBERg== c2VjdXJpdHk= XSk= IEppbW15 IEVO IGhpcmluZw== VGVt IHBpZw== YXVudA== IENyeXN0YWw= IHBlbmFsdGllcw== IGNhcGFiaWxpdHk= IHB5 IHByb2R1Y3RpdmU= IGJhbGFuY2Vk IEdlRm9yY2U= Y2xpY2s= b2xpdGFu b2Rz IGFmdGVyd2FyZHM= IHBsYXlvZmZz IEdpbGw= VXNlcg== IGJhY2tz cHVi dGFn IGFic3VyZA== cGlyaW5n IGNpdGluZw== IHRyaWxsaW9u IG9ibGlnYXRpb24= IG1heGlt YWhvbw== Y2Y= dW1p IEFscGhh IE5lbHNvbg== IHB1cnN1YW50 aW5pdGVseQ== IGZyYWN0 ZW50cnk= YmVyeQ== IFRob3I= QWRkZWQ= IERK IEdlbmU= IGF3a3dhcmQ= U3R1ZA== IHdhbGxldA== IERpdmluZQ== YXJpb3M= IHJlbGVhc2luZw== IGVkaXRlZA== IGFjY29tcGxpc2hlZA== QmVzdA== IGVkZ2Vz IHBsYW5lcw== IGZlZWRpbmc= In0sIg== IGRpc2Nsb3N1cmU= IGdyYWlu YWlyeQ== b29ucw== ZXJuYW5k VlI= IHJlYXNvbmFibHk= IGRydW0= IHBhcnRpYWw= IGdyYXBoaWM= IHVucHJlY2VkZW50ZWQ= IGFkdmlzZWQ= TWljcm8= IEFzc2Fk cG9pbnRz c2Nhcg== IFpvbmU= dHRlcw== IDcwMA== dm8= IEhhbXA= IGZpeGVz IGNhdXRpb24= IHN0cmluZ3M= IHBhbmVscw== IGxlYWs= IHByaWNpbmc= cm93dGg= IEVycm9y IFNhaW50cw== Zml4 IG9ic2VydmF0aW9ucw== IEFicw== IHN1Z2dlc3Rpb24= IFVrcmFpbmlhbg== IGJhcnJpZXI= IHBhaW50ZWQ= QmV0 aW1pcg== IFNwZWN0 cG90 b3JuZXlz IGNvbXBvdW5k IGJlYXJz IFJ1c2g= IGx1eHVyeQ== U3Vt IG9yYml0 IE1hcmM= IGV4ZW1wdA== IFRyYWls IE1P IEhhbnM= IFdlYXBvbg== b2N1c2Vk dW1pbnVt IEplcnJ5 IGJ1c3Q= IEFH IFdpa2k= IGVuZGxlc3M= IFZsYWQ= IEJhaA== IFJhZGVvbg== a2V5cw== IFN1cnZleQ== IFZpb2w= ZGVmaW5l bGVhbg== IGNvbW1vZA== IHJldmVudWVz xY0= IGZ1cm5pdHVyZQ== IGNhc3Rpbmc= IGRpcGxvbWF0aWM= IFBsYXllcnM= IEtpbGxlZA== IG1vZGlmeQ== IGlubm92YXRpdmU= IEFidQ== bm9y IGJvbmRz IGNvYWNoaW5n TWVy IG1vZHVsZXM= IFBhdHJpb3Rz IGVuaGFuY2Vk IHByb2NlZWRpbmdz IHRlYW1tYXRlcw== IDEyOA== YXJkbw== IGNvbXByb21pc2U= IE11Y2g= IGZsZXc= IEVkZ2U= IHVubmVjZXNzYXJ5 IGRvY3RyaW5l cmVwb3J0 IE9ybGFuZG8= IFByb2ZpbGU= IHBsYXlvZmY= ZnJpZW5kbHk= IGNvbXBsYWlu IE1D IE9wdA== IEdC IGJlYXRlbg== IGdvbGY= IHBsYWNlbWVudA== Qml0 IG5ld3NsZXR0ZXI= IDIwMTk= dmlzb3I= cmF3bA== IGlQYWQ= IGFjdGVk IGp1aWNl IGRlY2tz UE4= c3VjY2Vzcw== IEhhbGY= IGRlbGV0ZWQ= IHNlY3JldHM= IGFzeWx1bQ== TWFydA== IEFjdGl2 IEd1eQ== IFRz IGR5cw== IGFzc3VtaW5n IG1hbmE= IHN1YnVy IDEyNQ== TWVkaWE= QVJZ cmlkZQ== Y3A= IGRpZmZpY3VsdGllcw== IGNvbGxlY3Rpbmc= IGJhbmtydXB0 bm9u IGNvbXBvc2Vk IHZvbHQ= IG1pbGl0YW50cw== ID4+Pg== IE1vcm1vbg== dG9y IHBhcnRpY2xlcw== IEJhcnQ= cnlwdGlvbg== IGFkbWlu IHNxdWVl VklESUE= IGNyZWF0b3I= aWFtZXRlcg== aWN1bGFy TkJD IGdyYWJiZWQ= IG5vZGQ= IHJhdGVk IHJvdGF0aW9u IGdyYXNw IGV4Y2Vzc2l2ZQ== IEVD IFdoaXQ= IGludmVudG9yeQ== YXVsdHM= IEZC IGVjb3N5c3RlbQ== IGJpbGxpb25z IHZlbnR1cmU= bmFtZWQ= IGRlZmVuZGVy b3V0ZQ== SW5zdGVhZA== aXJhYmxl V2Fy IGFzc3VtcHRpb24= IGJpdGU= IGVhcnRocXU= dGFpbA== c3BhY2U= IGdpZnRz Ym95cw== IGluZXZpdGFibGU= IHN0cnVjdHVyYWw= IGJlbmVmaWNpYWw= IGNvbXBlbGxpbmc= aG9sZQ== ZXJ2YXRpb24= IGNvYXQ= b2o= aW5jYXJu IFllYXJz IGRldGVybWluaW5n IHJoZXRvcmlj IGJvdW5kYXJpZXM= IHdoaXRlcw== QW50 YWRkeQ== KS0= cmFoYW0= ZXRlcm1pbg== IGhhcnZlc3Q= IENvbmM= IGxhcHRvcA== IE1hdGNo IGVuam95aW5n Y2Nh b2xsYXI= IHRyaXBz IGFkZGljdGlvbg== IFNhaw== IHBvd2VyZWQ= IGNvdXM= IFJ1c3NpYW5z aWVyZQ== IHJldHJpZQ== cXVhbGl0eQ== IGRpZmZlcg== IGtpbmdkb20= IExhdXI= IENhcGl0b2w= IGNvbmNsdXNpb25z IEFsdGVybg== IE5hdg== IHRyYW5zcGFyZW50 QkVS R3JvdXA= IENvbXBsZXRl IGluZmVy IGludHJpZw== IGluc2FuZQ== Uk8= b3Bob2I= aXNlbg== cXVhbA== TWljaGFlbA== IG11c2V1bQ== IFBvcGU= IHJlc2V0 cmF0aXZl Zml2ZQ== IGFnZ3JlZw== aXR0ZWVz b3NpdG9yeQ== IGNhcmI= IFJlY29yZA== IGRlY2lkZXM= IEZpeA== IGV4Y2VwdGlvbnM= IENvbW1pc3Npb25lcg== dW5z IEVudmlyb25tZW50YWw= IGxlZ2VuZGFyeQ== aXN0ZW5jZQ== IHR1bm5lbA== a20= IGluc3VsdA== IHRyb2xs IHNoYWtl IGRldGVudGlvbg== cXVlcw== IENocm9tZQ== IEZpbGVz IHN1YnQ= IHByb3NwZWN0cw== IHByb2w= cmVuZGVy cHJvb2Y= IHBlcmZvcm1hbmNlcw== U3Ry IGhyZWY= ZXJuYW1l IGFjaGlldmVtZW50 IGZ1dA== RnVsbA== IExlYmFu Z29vZ2xl 44OI YW1wYQ== TWF5YmU= IHByb2plY3RlZA== IEVtYg== IGNvbGxlZw== IGF3YXJkcw== IOKU R29sZA== IEJsYWtl IFJhag== aWZ0aW5n IHBlbmRpbmc= IGluc3RpbmN0 IGRldmVsb3BtZW50cw== Q29ubmVjdA== IE1hbmQ= IFdJVEg= IFBoaWxpcHBpbmVz cHJvZmlsZQ== IGFsdG9nZXRoZXI= IEJ1bmQ= IFRE b29vbw== YW1wZWQ= aXBo IHN0ZWFt IG9sZGVzdA== IGRldGVjdGlvbg== dWxwdA== IOc= IFdheW5l MjAwNg== ZmE= IGNpcmNsZXM= IEZ1 IGRvbm9ycw== YXBwcm9wcmlhdGU= IERha290YQ== amFtaW4= IG1vdGl2YXRlZA== IHB1cmNoYXNlcw== IExvdWlzaWFuYQ== IFNwbA== IGdsb2Jl IDEwNQ== emlw Y2FsbA== IGRlcGFydG1lbnRz IHN1c3RhaW5hYmxl MTA1 IE9Q aWZpZXJz IHByZXZlbnRlZA== IGluY29tcA== IENvbW1hbmRlcg== IGRvbWluYXRlZA== IMK7 IGludmVzdGVk IGNvbXBsZXhpdHk= IGluY2w= IGVuc3VyaW5n IHJlYWxt eW5j IEluZGVwZW5kZW50 cmFpbmVk IEplbg== IEZsaWdodA== IGF0aGU= IHNwZWN1bGF0aW9u IFRF b2NhdGU= dGlj IHBsYWludA== aGVycnk= IHRveQ== IDExMQ== IHBsYXRlcw== c3RhdHVz IElzYQ== IGRldm90ZWQ= Q29w IEVT MjU1 dXJyZW5jeQ== TWFpbg== IHNsYXZlcw== IHBlcHBlcg== IHF1b3Rlcw== IGNlaWxpbmc= IEZpc2g= IHRyYW5zZm9ybWF0aW9u IGZyYWN0aW9u IGFkdmFudGFnZXM= IHRvaWxl IHN0dW5uaW5n IG1vaXN0 YnJlYWtpbmc= c2k= IExvY2F0aW9u IE1lZGl1bQ== IHRleHRz IHVnbHk= IGJpbw== LuKAlA== IEJhc2Vk IHRyYWlucw== IFdpbmc= IEFuY2llbnQ= IFJlY29yZHM= IEhvcGU= U3BlY2lhbA== YWRlc2g= b2Jp Wy8= IHRlbXBvcmFyaWx5 VmVy aHU= b3Nlcg== IG92ZXJuaWdodA== IG1hbW0= IFRyZWFzdXJ5 IFZlbmV6dWVs IE1lZ2E= IHRhcg== IGV4cGVjdHM= YmxhY2s= b3JwaA== XFxcXA== IGFjY2VwdGFuY2U= IHJhZGFy c2lz IGp1bmlvcg== IGZyYW1lcw== IG9ic2VydmF0aW9u YWNpZXM= UG93ZXI= IEFkdmFuY2Vk TWFn b2xvZ2ljYWxseQ== IE1lY2hhbg== IHNlbnRlbmNlcw== IGFuYWx5c3Rz YXVnaHRlcnM= Zm9yY2VtZW50 IHZhZ3Vl IGNsYXVzZQ== IGRpcmVjdG9ycw== IGV2YWx1YXRl IGNhYmluZXQ= TWF0dA== IENsYXNzaWM= QW5n IGNsZXI= IEJ1Y2s= IHJlc2VhcmNoZXI= IDE2MA== IHBvb3JseQ== IGV4cGVyaWVuY2luZw== IFBlZA== IE1hbmhhdHRhbg== IGZyZWVk IHRoZW1lcw== YWR2YW50 IG5pbg== IHByYWlzZQ== MTA0 IExpYnlh YmVzdA== IHRydXN0ZWQ= IGNlYXNl IGRpZ24= RGlyZWN0 IGJvbWJpbmc= IG1pZ3JhdGlvbg== IFNjaWVuY2Vz IG11bmljaXBhbA== IEF2ZXJhZ2U= IGdsb3J5 IHJldmVhbGluZw== IGFyZW5h IHVuY2VydGFpbnR5 IGJhdHRsZWZpZWxk aWFv R29k IGNpbmVt cmFwZQ== ZWxsZQ== YXBvbnM= IGxpc3Rpbmc= IHdhaXRlZA== IHNwb3R0ZWQ= a2VsZXk= IEF1ZGlv ZW9y YXJkaW5n aWRkaW5n aWdtYQ== IE5lZw== IGxvbmU= IC0tLS0= ZXhl ZGVn IHRyYW5zZg== IHdhc2g= IHNsYXZlcnk= IGV4cGxvcmluZw== IFdX YXRzb24= IGVuY2w= bGllcw== IENyZWVr IHdvb2Rlbg== TWFuYWdlcg== IEJyYW5k dW1teQ== IEFydGh1cg== IGJ1cmVhdWNy IGJsZW5k YXJpYW5z RnVydGhlcg== IHN1cHBvc2VkbHk= IHdpbmRz IDE5Nzk= IGdyYXZpdHk= IGFuYWx5c2Vz IFRyYXZlbA== IFZldGVy IGR1bWI= IGFsdGVybmF0ZQ== Z2Fs IGNvbnN1bWVk IGVmZmVjdGl2ZW5lc3M= Licn IHBhdGhz b25kYQ== TEE= IFN0cm9uZw== IGVuYWJsZXM= IGVzY2FwZWQ= ICIi IDExMg== IDE5ODM= IHNtaWxlZA== IHRlbmRlbmN5 RmlyZQ== IHBhcnM= IFJvYw== IGxha2U= IGZpdG5lc3M= IEF0aA== IEhvcm4= IGhpZXI= IGltcG9zZQ== bW90aGVy IHBlbnNpb24= aWN1dA== Ym9ybmU= aWNpYXJ5 Ll8= IFNV IHBvbGFy aXN5 ZW5ndQ== aXRpYWxpemVk QVRB d3JpdGU= IGV4ZXJjaXNlcw== IERpYW1vbmQ= b3R5cGVz IGhhcm1mdWw= b256 IHByaW50aW5n c3Rvcnk= IGV4cGVydGlzZQ== IEdlcg== IHRyYWdlZHk= IEZseQ== IGRpdmlk YW1waXJl c3RvY2s= TWVt IHJlaWdu IHVudmU= IGFtZW5k IFByb3BoZXQ= IG11dHVhbA== IEZhYw== IHJlcGxhY2luZw== SGFy IENpcmN1aXQ= IHRocm9hdA== IFNob3Q= IGJhdHRlcmllcw== IHRvbGw= IGFkZHJlc3Npbmc= IE1lZGljYWlk IHB1cHA= IE5hcg== b2xr IGVxdWl0eQ== TVI= IEhpc3Bhbg== IExhcmdl bWlk RGV2 IGV4cGVk IGRlbW8= IE1hcnNoYWxs ZXJndXM= IGZpYmVy IGRpdm9yY2U= IENyZWF0ZQ== IHNsb3dlcg== IFBhcmtlcg== IFN0dWRlbnQ= IFRyYWluaW5n UmV0dXJu IFRydQ== IGN1Yg== IFJlYWNoZWQ= IHBhbmlj IHF1YXJ0ZXJz IHJlY3Q= IHRyZWF0aW5n IHJhdHM= IENocmlzdGlhbml0eQ== b2xlcg== IHNhY3JlZA== IGRlY2xhcmU= dWxhdGl2ZQ== ZXRpbmc= IGRlbGl2ZXJpbmc= ZXN0b25l IHRlbA== IExhcnJ5 IG1ldGE= YWNjZXB0 YXJ0eg== IFJvZ2Vy aGFuZGVk IGhlYWRlcg== IHRyYXBwZWQ= IENlbnR1cnk= IGtub2NrZWQ= IE94Zm9yZA== IHN1cnZpdm9ycw== Ym90 IGRlbW9uc3RyYXRpb24= IGRpcnQ= IGFzc2lzdHM= T01F IERyYWZ0 b3J0dW5hdGU= Zm9saW8= cGVyZWQ= dXN0ZXJz Z3Q= IExvY2s= IGp1ZGljaWFs dmVydGVk IHNlY3VyZWQ= b3V0aW5n IEJvb2tz IGhvc3Rpbmc= IGxpZnRlZA== bGVuZ3Ro IGplcg== IHdoZWVscw== IFJhbmdl dW1ibmFpbHM= IGRpYWdub3Npcw== dGVjaA== IFN0ZXdhcnQ= IFByYWN0 IG5hdGlvbndpZGU= IGRlYXI= IG9ibGlnYXRpb25z IGdyb3dz IG1hbmRhdG9yeQ== IHN1c3BpY2lvdXM= ISc= QXBy R3JlYXQ= IG1vcnRnYWdl IHByb3NlY3V0b3I= IGVkaXRvcmlhbA== IEty IHByb2Nlc3NlZA== dW5nbGU= IGZsZXhpYmlsaXR5 RWFybGllcg== IENhcnQ= IFN1Zw== IGZvY3VzZXM= IHN0YXJ0dXA= IGJyZWFjaA== IFRvYg== Y3ljbGU= 44CM cm9zZQ== IGJpemFycmU= 44CN IHZlZ2V0YWJsZXM= JCQ= IHJldHJlYXQ= b3NoaQ== IFNob3A= IEdyb3VuZA== IFN0b3A= IEhhd2FpaQ== IEF5 UGVyaGFwcw== IEJlYXV0 dWZmZXI= ZW5uYQ== IHByb2R1Y3Rpdml0eQ== Rml4ZWQ= Y29udHJvbA== IGFic2VudA== IENhbXBhaWdu R3JlZW4= IGlkZW50aWZ5aW5n IHJlZ3JldA== IHByb21vdGVk IFNldmVu IGVydQ== bmVhdGg= YXVnaGVk IFBpbg== IExpdmluZw== Q29zdA== b21hdGlj bWVnYQ== IE5pZw== b2N5 IGluYm94 IGVtcGlyZQ== IGhvcml6b250 IGJyYW5jaGVz IG1ldGFwaA== QWN0aXZl ZWRp IEZpbG0= IFNvbWV0aGluZw== IG1vZHM= aW5jaWFs IE9yaWdpbmFs R2Vu IHNwaXJpdHM= IGVhcm5pbmc= SGlzdA== IHJpZGVycw== IHNhY3JpZmlj TVQ= IFZB IFNhbHQ= IG9jY3VwYXRpb24= IE1p IGRpc2c= bGljdA== IG5pdA== IG5vZGVz ZWVt IFBpZXI= IGhhdHJlZA== cHN5 44OJ IHRoZWF0ZXI= IHNvcGhpc3RpY2F0ZWQ= IGRlZmVuZGVk IGJlc2lkZXM= IHRob3JvdWdobHk= IE1lZGljYXJl IGJsYW1lZA== YXJlbnRseQ== IGNyeWluZw== Rk9S cHJpdg== IHNpbmdpbmc= IEls IGN1dGU= b2lkZWQ= b2xpdGljYWw= IE5ldXJv 5aQ= IGRvbmF0aW9u IEVhZ2xlcw== IEdpdmU= VG9t IHN1YnN0YW50aWFsbHk= IExpY2Vuc2U= IEph IGdyZXk= IEFuaW1hbA== IEVS IFVuZA== IGtlZW4= IGNvbmNsdWRl IE1pc3Npc3NpcHBp RW5naW5l IFN0dWRpb3M= UHJlc3M= b3ZlcnM= bGxlcnM= IDM1MA== IFJhbmdlcnM= IHJvdQ== ZXJ0bw== RXA= aXNzYQ== aXZhbg== IHNlYWw= IFJlZ2lzdA== ZGlzcGxheQ== IHdlYWtlbg== dXVt IENvbW1vbnM= IFNheQ== IGN1bHR1cmVz IGxhdWdoZWQ= IHNsaXA= IHRyZWF0bWVudHM= aXphYmxl bWFydA== IFJpY2U= IGJlYXN0 IG9iZXNpdHk= IExhdXJl aWdh V2hpY2g= aG9sZGVy IGVsZGVybHk= IHBheXM= IGNvbXBsYWluZWQ= IGNyb3A= IHByb2M= IGV4cGxvc2l2ZQ== IEZhbg== IEFyc2VuYWw= QXV0aG9y ZWZ1bA== IG1lYWxz ICgt aWRheXM= IGltYWdpbmF0aW9u IGFubnVhbGx5 IG1z YXN1cmVz SGVhZA== aWto bWF0aWM= IGJveWZyaWVuZA== IENvbXB1dGVy IGJ1bXA= IHN1cmdl IENyYWln IEtpcms= RGVs bWVkaWF0ZQ== IHNjZW5hcmlvcw== IE11dA== IFN0cmVhbQ== IGNvbXBldGl0b3Jz 2YQ= IFN0YW5mb3Jk IFJlc291cmNlcw== YXplZA== YmFnZQ== IG9yZ2FuaXM= IFJlbGVhc2U= IHNlcGFyYXRlbHk= IGhhYml0cw== IG1lYXN1cmVtZW50cw== IENsb3Nl IGFjY29tcGFueQ== IGdseQ== IHRhbmc= IFJvdQ== IHBsdWdpbg== IGNvbnZleQ== IENoYWxsZW5nZQ== b290cw== amFu IGN1cnM= IFJlbGF0aW9ucw== a2VlcGVy IGFwcHJvYWNoaW5n cGluZw== U3BlYWtpbmc= IGFycmFuZ2VtZW50 IFZJ YXJldHRlcw== IGFmZmVjdGluZw== IHBlcm1pdHM= YmVjYXVzZQ== IHVzZWxlc3M= IEh1cw== ISEhIQ== IGRlc3Ryb3lpbmc= VW5mb3J0dW5hdGVseQ== IGZhc2NpbmF0aW5n U2Vt IGVsZWN0b3JhbA== IHRyYW5zcGFyZW5jeQ== IENoYW9z IHZvbHVudGVlcg== IHN0YXRpc3RpY2Fs IGFjdGl2YXRlZA== cm94 V2Vi SEU= IEhhbXBzaGlyZQ== aXNpdmU= TWFw IHRyYXNo IExhd3JlbmNl c3RpY2s= Q3I= IHJpbmdz RVhU IG9wZXJhdGlvbmFs b3Blcw== RG9lcw== IEV2YW5z IHdpdG5lc3NlZA== UG9ydA== IGxhdW5jaGluZw== ZWNvbm9t d2Vhcg== IFBhcnRpY2lw dW1t Y3VsZXM= IFJBTQ== IFR1bg== IGFzc3VyZWQ= IGJpbmFyeQ== IGJldHJheQ== IGV4cGxvcmF0aW9u IEZlbA== IGFkbWlzc2lvbg== aXRhdGVk U3k= IGF2b2lkZWQ= IFNpbXVsYXRvcg== IGNlbGVicmF0ZWQ= IEVsZWN0cmlj pZ4= IGNsdXN0ZXI= aXR6ZXJsYW5k aGVhbHRo TGluZQ== IE5hc2g= YXRvbg== IHNwYXJl IGVudGVycHJpc2U= IERJUw== Y2x1ZGVz IGZsaWdodHM= IHJlZ2FyZHM= IMOX aGFsZg== IHRydWNrcw== IGNvbnRhY3Rz IHVuY29ucw== IENsaW1hdGU= IGltbWVuc2U= TkVX b2Nj ZWN0aXZl IGVtYm9k IHBhdHJvbA== IGJlc2lkZQ== IHZpYWJsZQ== IGNyZWVw IHRyaWdnZXJlZA== dmVybmluZw== IGNvbXBhcmFibGU= cWw= IGdhaW5pbmc= YXNzZXM= ICgpOw== IEdyZXk= IE1MUw== c2l6ZWQ= IHByb3NwZXI= Ij8= IHBvbGxpbmc= IHNoYXI= IFJD IGZpcmVhcm0= b3JpZW50 IGZlbmNl IHZhcmlhdGlvbnM= Z2l2aW5n IFBp b3NwZWw= IHBsZWRnZQ== IGN1cmU= IHNweQ== IHZpb2xhdGVk IHJ1c2hlZA== IHN0cm9rZQ== IEJsb2c= c2Vscw== IEVj LCcn IHBhbGU= IENvbGxpbnM= dGVycm9y IENhbmFkaWFucw== IHR1bmU= IGxhYm9yYXRvcnk= IG5vbnM= dGFyaWFu IGRpc2FiaWxpdHk= IEdhbQ== IHNpbmdlcg== YWxn IFNlbmlvcg== IHRyYWRlZA== IFdhcnJpb3I= IGluZnJpbmc= IEZyYW5rbGlu IHN0cmFpbg== IFN3ZWRpc2g= IHNldmVudGg= IEJlbm4= IFRlbGw= IHN5bmRyb21l IHdvbmRlcmVk aWRlbg== KysrKw== aWdv IHB1cnBsZQ== IGpvdXJuYWxpc20= IHJlYmVs IGZ1 YmxvZw== IGludml0ZQ== cmVuY2llcw== IENvbnRhY3Q= SXNyYWVs IENvbnRlbnQ= IGNoZWVy IGJlZHJvb20= IEVuZ2luZWVyaW5n IFF1ZWVucw== IGR3ZWxs IFBsYXlTdGF0aW9u IERpbQ== IENvbG9u bHI= IG9wZXJhdGVz IG1vdGl2YXRpb24= VVNB YXN0ZXJlZA== Q29yZQ== IFRydXRo b2xv T1NF IE1lbW9yeQ== IHByZWRlYw== IGFuYXJjaA== IDE5MjA= IFlhbQ== w6g= Ymlk IGdyYXRlZnVs IGV4Y2l0ZW1lbnQ= IHRyZWFzdXJl IGxvbmdlc3Q= Y3RpdmU= IGRlc2VydmVz IHJlc2VydmVz IGNvcHM= IE90dGF3YQ== IEVneXB0aWFu YW5rZWQ= IGFydGlm IGh5cG90aGVzaXM= Oi8= IHB1cmNoYXNpbmc= IGxvdmVseQ== SFA= IGRpdmlkZQ== IHN0cmljdGx5 IHF1ZXN0aW9uaW5n IHRheHBheWVycw== IEpveQ== IHJvbGxz IEhlYXZ5 IHBvcnRz IG1hZ25ldGlj IGluZmxhbW0= IGJydXNo dGljcw== 4oiS IGJvdHRsZXM= cHB5 IHBhZGQ= 44Kv bWlsbGlvbg== IGRldmFzdGF0aW5n IGNvbXBpbGVk IG1lZGljYXRpb24= IHR3ZWx2ZQ== IFBlcnJ5 U3BhY2U= aW1i eW91cg== IGxlYWtlZA== IFRhcg== IHVuaXR5 IGluZmVjdGVk IHRyYXZlbGVk SURF IE1jRG9uYWxk dHh0 IFByaW5j IGludGVydmVu IFRhaXdhbg== IFBvdw== IGJlYXJpbmc= IFRocmVhZA== IHpvbmVz aXphcmRz dW5rcw== Q2hhcHRlcg== bGxvcg== IMK3 IHdvdW5kcw== IGRpc2NyZXRpb24= IHN1Y2NlZWRlZA== aWtpbmc= IGljb25pYw== Q2FsbA== IHNjcmVlbmluZw== IE1pcw== aWN0cw== IG1pbmlzdGVycw== IHNlcGFyYXRpb24= UGxheWVy IGJpcA== IGJlbG92ZWQ= IGNvdW50aW5n IEV5ZQ== YXJvdW5k aW5naW5n IHRhYmxldA== IG9mZmVuY2U= aW5hbmNl aGF2ZQ== IEluZm8= IE5pbmph IHByb3RlY3RpdmU= IENhc3M= TWFj IFF1YWxpdHk= Tm9ydGg= IGlj IEN1YmE= IENocm9uaWNsZQ== IFByb3BlcnR5 IGZhc3Rlc3Q= b3Rvcw== IEdlcm0= T1dO IGJvb20= IFN0YW5sZXk= ZXJndXNvbg== IGNsZXZlcg== IGVudGVycw== bW9kZQ== dGVyaW9y IFNlbnM= IGxpbmVhcg== QVJL IGNvbXBhcmluZw== IHB1cmVseQ== IHNhZmVy IFBvdHRlcg== IGN1cHM= UlQ= IGdsdWM= IGF0dHJpYnV0ZWQ= IGR1cGw= IFBhcA== IHByZWNpb3Vz IHBh aWN0aW9uYXJ5 IFRpZw== IFRvbw== b2x1dGlvbnM= c3Rhbg== IHJvYm90cw== IGxvYmI= IHN0YXR1dGU= IHByZXZlbnRpb24= d2VzdGVybg== MTYw IEFjdGl2ZQ== IE1hcmlh aGFs Tm9uZQ== ZWxsYXI= IEtC IFBhcnRuZXJz IFNpbmdsZQ== IEZvbGxvd2luZw== YW5nbw== YWNpb3Vz IHRob3U= IGtn IGluZmx1ZW50aWFs IEZyaWVuZHM= U3Vy YWludGVk IGZvcnVtcw== IHN0YXJ0ZXI= IGNpdGl6ZW5zaGlw IEVsZWN0aW9u b25nZQ== b3RhdGlvbg== b3NwaA== Ozs7Ow== dXRpY2Fs cHVy ZXJlbg== IGFjY3VzYXRpb25z Yml0aW91cw== YWJiaXQ= IE9yZA== UG9zdGVk aXJr IHNlbnNpdGl2aXR5 aWNoZQ== IEFteQ== IEZhYg== IHN1bW1pdA== IHBlZGVzdA== IHJ1YmJlcg== IGFncmljdWx0dXJhbA== IGNhbmNlbA== QUU= IGluYXVn IGNvbnRhbQ== IGZpcm1seQ== aXc= c3RhZ2U= IEthbg== IHRpZXI= IGludmVudGlvbg== IHRyYW5zbGF0ZWQ= IFJ1bGVz Qm94 VHdpdHRlcg== SURT IHBpenph IGRlYnVn IERyb3A= dnM= IGhvcnNlcw== Ymln IGJvcmluZw== IGhvb2Q= IE1jQ2Fpbg== YXRjaGVk IEJyb3M= IHNraXA= IGVzc2F5 c3RhdA== IExlZ2VuZHM= IGFtbXVuaXRpb24= YXVj IHNob290ZXI= IHVuaA== IHN1cHBsaWVk IGdlbmVyaWM= IFNL aWJhbg== eXJpY3M= IDI1NQ== IGNsaW1iaW5n Rm9ybWVy IGZsaXA= IGp1bXBpbmc= IGZydXN0cmF0aW9u IFRlcnJ5 IG5laWdoYm9yaG9vZHM= IG1lZGlhbg== YmVhbg== IGJyYWlucw== Rm9sbG93aW5n IHNoYXBlZA== IGRyYXdz IGFsdGVyZWQ= SmFjaw== IHJlY2lwZXM= IHNraWxsZWQ= d2VhbHRo YWNoaQ== ZWxlY3Rpb24= IGJlaGF2aW9ycw== ZGVhbHM= IFVudGls RmU= IGRlY2xhcmF0aW9u bWFya3M= IEJldHdlZW4= Y2Vsb25h IHJlc29u IGJ1YmJsZQ== QW1vbmc= IGltcGVyaWFs R1M= IGZlbWluaXN0 MjAwNQ== IEt5bGU= IGFjY291bnRpbmc= IFRlbGU= IFR5cg== IGNvbm5lY3Rpbmc= IHJlaGFi IFByZWQ= c2lt IG1lYW50aW1l IHBoeXNpY2lhbg== TVc= IENhbXBiZWxs IEJyYW5kb24= IGNvbnRyaWJ1dGluZw== IFJ1bGU= IFdlaWdodA== IE5hcA== IGludGVyYWN0aXZl IHZhZw== IGhlbG1ldA== IENvbWI= Zm91cg== IHNoaXBwZWQ= IGNvbXBsZXRpbmc= IFBE UERBVEU= IHNwcmVhZGluZw== IHNjYXJ5 ZXJ2aW5n IEdhcw== IGZyYW5r c2Nob29s IHJvbWFudGlj IHN0YWJpbA== Um9i IGFjY3VyYXRlbHk= IGFjdXRl IEhhbm4= IHN5bWJvbHM= IGNpdmlsaXphdGlvbg== IEFX IGxpZ2h0bmluZw== IGNvbnNpZGVycw== IHZlbnVl INc= IG92ZW4= IFNG aGlz IG51 IExlYXJu IHBlb3BsZXM= IHN0ZA== IHNsZWU= IHNsaWM= IFN0YXRpc3RpY3M= IGNvcm5lcnM= IEJha2Vy IDop bWVudGF0aW9u b2x2ZXI= IGxhdWdoaW5n IFRvZGQ= b25kZQ== IEhpbGxz IG51dHM= IFdvbWFu cGxhbmU= IGxpdmVy IEluc2lkZQ== U29ycnk= IGFncmVlcw== IGZ1bmRhbWVudA== IEZpc2hlcg== IGF1Y3Rpb24= IHRocmVhZHM= Z2xhcw== IEJhc2lj IE5hdA== IGxhY2tpbmc= IGNlbGVicmF0aW9u anU= IHNpbGx5 RXVybw== IHRhdHQ= aWdodHk= Y29udHJvbGxlZA== VGVzdA== IFNpbmdo IHJhZ2U= IHJoeXRo b2ZmaWM= IFBoYW50b20= IGhlYWRsaW5lcw== IHJlc3BvbmRpbmc= IE1vcm5pbmc= IHZpdGFtaW4= IGJvb3Rz IFNpdGU= YWxpbg== cGk= IHZpcmFs IFVD REVS IFNleA== IHN0b2Nrcw== Y3VycmVudA== IGNodXJjaGVz IFJhcmU= IE11cnBoeQ== IGRlbmlhbA== IEdhbWluZw== IHRvdWc= IG5pY2s= IG1ha2Vycw== IFJvbmFsZA== IGdlbmVyb3Vz IERvYw== IE1vcnJpcw== IHRyYW5zZm9ybWVk IE5vcm1hbA== IDEwNA== IEtpY2tzdGFydGVy IFVwb24= T25saW5l IElSUw== IHdyYXA= IGxvdmluZw== IGFycml2ZXM= IER1ZQ== IGhldGVy IE1hZGU= IHJlbnRhbA== IGJlbG9uZ3M= IGF0dG9ybmV5cw== IGNyb3Bz IG1hdGNoZWQ= dWx1bQ== b2xpbmU= MTA5 IGRpc3Bhcg== IGJ1eWVycw== IENhbWJyaWRnZQ== IGV0aGljcw== cm91cHM= IGp1c3RpZmllZA== IG1hcmdpbmFs IHJlc3BlY3RlZA== d2lubmluZw== IG5vZGRlZA== IFNlcmdl IEZvcm1lcg== Q3JhZnQ= IyMjIyMjIyMjIyMjIyMjIw== IFdhcm5lcg== IGRhc2g= ZXRl IGVudGVydA== IEVzY2FwZQ== b3V0aGVhc3Q= IGtuZWVz IEJvbWI= IHJ1Zw== UGFzcw== IGF0dGl0dWRlcw== Z292ZXJubWVudA== IFByaW9y IHF1YWxpdGllcw== IG5vdGlmaWNhdGlvbg== IFBob25l bGll IGFudGljaXBhdGVk IENvbWJhdA== IEJhcnJ5 IDE5ODI= VXNlcnM= b25lcg== IGNvbXB1dGluZw== IENvbm5lY3RpY3V0 IGxlc3Nlcg== IHBlZXJz IEN1 IHRlY2huaWNhbGx5 IHN1Ym1pc3Npb24= IFVuaXZlcnNhbA== IG1hbnVhbGx5 b3VyZ2U= IHJlc3BvbmRlbnRz IEJUQw== IEhvc3Q= IGZhcmU= IEJpcmQ= IHJlY2VpcHQ= YWxzbw== IGphY2s= IGFncmljdWx0dXJl IHNrdWxs ICE9 IHBhc3NpdmU= IENJ IHNvY2lldGllcw== IHJlbWluZGVk IGludGVyZmVyZW5jZQ== QnV5 IOKc Z29u IHNjcnV0aW55 IFdpdGNo IGNvbmR1Y3Rpbmc= IOOD IGV4Y2hhbmdlcw== IE1pdGNoZWxs IGluaGFiaXQ= IHR3aXN0 QkQ= IHdoZXJldmVy Z3JvdXBvbg== IGpva2Vz IEJlbmphbWlu IFJhbmRvbQ== ZnJhbWU= IExpb25z IGhpZ2hsaWdodGVk IEFya2Fuc2Fz RW50 IHBpbGU= IHByZWxpbQ== Z3M= bWluZGVk IGZlbG9ueQ== IEdB IEx1Y2s= IHByYWN0aWNhbGx5 IEJvcw== IGFjdHJlc3M= RGFt IEJvdQ== IHZpc2E= IGVtYmVkZGVk IGh5YnJpZA== IGVhcmxpZXN0 IHNvb25lcg== c29jaWFs IEhB IHN0ZWVw IGRpc2FkdmFudA== IGV4cGxvaXQ= IEVnZw== IFVsdHJh IG5lY2Vzc2l0eQ== TG9jYWw= aWVnZQ== IGRhdGVk IG1hc3Nlcw== IHN1YnNjcmlwdGlvbg== cGxlc3M= IGFub255bQ== IHByZXN1bWFibHk= Qmx1ZQ== VGhlaXI= YXNrZXRiYWxs IFBoaWxpcA== IGNvbWVk bG9hZGVk cmFuZQ== IHJlZmxlY3Rpb24= Q2hpbmE= IGV4dGVuZHM= IGZvcm1pbmc= IHVuZGVycw== MjAwMQ== IGdyYXQ= IGNvbmNlbnRyYXRpb25z IGluc3VsaW4= IHNlY3VsYXI= IHdoaWxzdA== IHdpbm5lcnM= QWR2ZXJ0aXNlbWVudHM= IGRlbGliZXJhdGVseQ== IFdvcmtpbmc= IHNpbms= ZXRpY3M= ZGFsZQ== IG1hbmRhdGU= IGdyYW0= IHZhY2F0aW9u IHdhcm5pbmdz cmlwcA== IFRIQVQ= IGNvbW1lbnRhcnk= IGludHU= IGFlc3Q= IHJlYXNvbmluZw== IGJyZWFrZG93bg== IFpvbWJpZQ== IC0tPg== IFBvbGl0aWNhbA== Y290dA== IHRocnVzdA== IHRlY2hub2xvZ2ljYWw= IGRlY2lkaW5n IHRyYWZmaWNraW5n TG9uZw== V2VsY29tZQ== cHJpc2luZw== IENvbW11bmljYXRpb25z IGVuZG9ycw== IHN3aWZ0 IG1ldGFib2w= Y29pbnM= cmVzYQ== IEhUVFA= IGVucm9sbA== IEhhcHB5 dXNy aW50YWdl IFsi dWFibHk= IE1hdGVyaWFs IHJlcGVhbA== U2VwdA== a2g= IE1vZGk= IHVuZGVybmVhdGg= IElM c2hvcmU= IGRpYWdub3NlZA== YWNldXRpY2Fs IHNob3dlcg== YXV4 IFN3aXRjaA== IFN0cmVuZ3Ro IGppaGFk bmF0aW9uYWw= IHRyYXVtYQ== dXNzeQ== b25p IGNvbnNvbGlk IGNhbG9yaWVz IEZseW5u YWdnZWQ= MTY4 IFBpbms= IGZ1bGZpbGw= IGNoYWlucw== IG5vdGFibHk= IEFW TGlmZQ== IENodWNr bXVz IFVyYmFu IEhlbmQ= IGRlcG9zaXQ= IFNhZA== IGFmZmFpcg== T1JL aWV2YWw= IEZEQQ== IHRyb3A= IE92ZXJhbGw= IHZpcnR1ZQ== IHNhdGlzZmFjdGlvbg== YXVuZA== IGx1bg== IFN3aXR6ZXJsYW5k IE9wZXJhdGlvbg== cHJvY2Vzcw== IHNob29r IGNvdW50aWVz bGVhc2Vk IENoYXJsb3R0ZQ== MTEy IHRyYW5zY3JpcHQ= IHJlZGQ= cHVzaA== IEhleQ== IEFuYWx5c2lz WyI= IGFsdGVybmF0aXZlcw== YXJkbGVzcw== IGVsZXBo IHByZWp1ZA== IExlYWY= SGF2aW5n IEh1Yg== IGV4cHJlc3Npb25z IFZvbHVtZQ== IHNob2NraW5n IFJlZHM= IHJlYWRpbHk= IHBsYW5ldHM= YWRhdGE= IGNvbGxhcHNlZA== IE1hZHJpZA== IGlycml0 aXBwZXI= IEVuYw== IFdpcmU= IGJ1eno= IEdQ YXNoYQ== IGFjY2lkZW50YWxseQ== dXJ1 IGZydXN0cmF0ZWQ= IFNB IGh1bmdyeQ== IEh1ZmY= IGxhYmVscw== YW50bw== IEVQ IGJhcnJpZXJz KXw= IEJlcmtlbGV5 IEpldHM= IHBhaXJz IExhbg== SmFtZXM= IEJlYXI= IGh1bW9y IExpYmVydHk= IG1hZ25pdHVkZQ== IGFnaW5n IE1hc29u IGZyaWVuZHNoaXA= dW1ibGluZw== IGVtZXJnZQ== IG5ld3NwYXBlcnM= IGFtYml0aW91cw== IFJpY2hhcmRz YXRlcm5hbA== IDE5ODE= IGNvb2tpZXM= IHNjdWxwdA== IHB1cnN1aXQ= TG9jYXRpb24= IHNjcmlwdHM= cGM= IGFycmFuZ2VtZW50cw== IGRpYW1ldGVy IGxvc2Vz YW1hdGlvbg== IGxpcXU= IEpha2U= YXJldHRl IHVuZGVyc3RhbmRz IFplbg== dm0= IGFwcHJvdmU= IHdpcA== IHVsdHJh IGludGVuZA== IERJ YXNjdWxhcg== IHN0YXlz IEtvcg== IEts IGludmVzdGluZw== TGE= IGJlbGlldmluZw== YmFk bW91dGg= IHRheHBheWVy 44OD IFF1ZWJlYw== IGxhcA== IFN3aXNz ZHJvcA== IGRyYWlu aXJp ZXRj ZnRlbg== IE5leA== IHN0cmF3 IHNjcmVhbWluZw== IGNvdW50ZWQ= IGRhbWFnaW5n IGFtYmFzc2Fkb3I= Y2VudHVyeQ== IHByb3g= IGFycmVzdHM= dXY= aWxhdGVyYWw= IENoYXJn IHByZXNjcmliZWQ= IGluZGVwZW5kZW50bHk= IGZpZXJjZQ== IEJhYnk= IGJyYXZl IHN1aXRz PT4= IGJhc2VsaW5l IFJhdGU= IGlzbGFuZHM= ICgo Z3JlZW4= aXhlbHM= IG5hbWVseQ== IFZpbGxhZ2U= dGhhbg== YW15 VmVyc2lvbg== Z21haWw= ZW50aWFscw== IFN1ZA== IE1lbGJvdXJuZQ== IGFycml2aW5n IHF1YW50dW0= ZWZm cm9wb2xpdGFu VHJp IGZ1bmVyYWw= IElS w4PDgsODw4LDg8OCw4PDgsODw4LDg8OCw4PDgsODw4I= IENvYg== aXRhYmx5 IHR1cmI= IGNvbWJv UmV2aWV3 IGRlcGxveW1lbnQ= dWl0eQ== IEJvdHQ= IGludmlzaWJsZQ== IHJlbmRlcmluZw== IHVubG9ja2Vk IGFxdQ== IFZsYWRpbWly IHBhZA== IEJyYWlu IExlZ2FjeQ== ZHJhZ29u IEt1cmRpc2g= IHNvdW5kZWQ= IGRldGFpbmVk IERN Z2FyeQ== IGRhdWdodGVycw== IGRpc3R1cmJpbmc= dWth IFBhcmFk IHRhc3Q= IHVuZm9ydHVuYXRl IHVs ZW1pbg== IGF0dGVuZGFuY2U= dHJs IHBhcmtz IE1lbW9yaWFs IEFsaWNl b3RoeQ== Z3VhcmQ= IERpc2U= IFNoYW4= IEZvcnVt UmljaA== IHNoaWZ0ZWQ= dWV6 IGxpZ2h0ZXI= IE1hZ24= IGNvZA== U2No aGFtbWFk UHVi MzUw IFBva2Vtb24= IHByb3RvdHlwZQ== IHVucmU= QmFzZQ== IFN0dWRlbnRz IFJlcGx5 IENvbW11bmlzdA== IGdhdQ== IFR5bGVy SVo= IHBhcnRpY2lwYXRlZA== IHN1cHJlbQ== IERldGFpbHM= IHZlc3NlbHM= cm9k IHRyaWJl a2VlcA== IGFzc3VtcHRpb25z IHBvdW5k IGNydWRl IEF2YWlsYWJsZQ== IHN3aW1taW5n IGluY2x1c2lvbg== IGFkdmFuY2Vz Y3VsYXRpb24= IGNvbnNlcnZhdGlvbg== IG92ZXJk IEJ1ZmZhbG8= QXJ0aWNsZQ== ZWRnZQ== IGF3YQ== IE1hZGlzb24= IHNpZGV3 IGNhdGFzdA== IEtyaXN0 dWNsZQ== IEhpZ2h3YXk= IFRlcnJvcg== IGFjdGl2YXRpb24= IHVuY29uc2Npb3Vz IFNhdGFu IFN1c2Fu aWxsZXJ5 IGFycmFuZ2Vk aW9w IHJ1bW9ycw== dXJyaW5n dGhpbms= IEtlaXRo IEtpbmQ= IGF2b2lkaW5n Ynlu bnV0 IFNwZWFrZXI= cnVz bmFtZXM= IGd1aWx0 IE9seW1waWNz IHNhaWw= IE1lcw== bGV2YW50 IENvbHVtYnVz YWZ0 Q2l0eQ== U291dGg= IEhhcnZleQ== IFB1bg== U2V2ZXJhbA== IG1lbnRhbGx5 IGltcHJlc3M= bW91bnQ= IFVidW50dQ== 4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU IFN1cGVybWFu IE1Qcw== IGludGVudGlvbnM= IFJhY2luZw== IGxpa2VsaWhvb2Q= IDI0MA== VG90YWw= IHRveXM= IFdhdHNvbg== IHVyZ2U= TGVhcg== IFBhcGVy IG9jY3VycmluZw== IEJlbmc= IENlcnQ= IHN0b25lcw== VGlt IFR3aW4= emI= IER5bmFt IHBvbGl0aWNpYW4= a2Vucw== IEVudGVycHJpc2U= VVRFUlM= IGFib2w= IHJlZnJlc2g= IGFyYml0cmFyeQ== cGVjdGlvbg== IHRyb3VibGVz IH0pOw== dHY= IHBpbG90cw== IGRpc3RyaWJ1dGU= IGF1ZGl0 IHBhdXNl b3JpZ2luYWw= IHJpdmFscw== wqM= Rmln VEw= YWJpbA== cnlpbmc= TGlu aW9uZWQ= bG9u IGZhbmN5 IGNyYXNoZWQ= IHRyYWN0 IHNoZWQ= IGNvbnN1bWU= QmFzZWQ= ZG93bmxvYWQ= aW5pdA== IHZvbHRhZ2U= SW50cm9kdQ== IGNvbmRlbW5lZA== IEZpbmFuY2U= cmVzcGVjdA== IGV4Y2x1ZGVk IGVzdGFibGlzaGluZw== aGVyaWM= IGhlcml0YWdl IHNwZWN0YWN1bGFy IHVuc3Q= IFNub3dkZW4= IExhbmU= U2Fu IHByb3RlY3Rpb25z c3RydWN0aW9u aW5jaW5u IG1hY3Jv Q3VzdG9t aW9zaXR5 IGVzcA== IGZ1bmN0aW9uaW5n IG11c2g= IHB1enpsZQ== IGV0aGljYWw= TWFs IGdvdmVybmluZw== IEZlcmd1c29u IHJlc3RvcmVk IHN0cmVzc2Vk IENvdW50ZXI= IEthcw== Y2xpcA== QU5T IHNlaXo= VUs= Ynlzcw== b2xkb3du YXBp IHBlcm1hbmVudGx5 b3VudGVycw== V2VzdA== VGhyb3VnaA== TGlnaHQ= YXRvZXM= IG5lYXQ= IGNvcmQ= dXJlcg== IHNldmVyZWx5 IEF2ZW4= IGludGVycm9n IHRyaXBsZQ== R2l2ZW4= TnVtYmVy IGFyaXNl IHNoZXI= cGxhbnQ= IGZsb3dlcg== IENvdQ== IGF0ZQ== IG5ld2Vy YnVs IG1lYW53aGlsZQ== IExhaXI= IGFkanVzdG1lbnQ= IENvcHlyaWdodA== IGRpdmVycw== aW9sb2dpY2Fs IGdhbWVycw== b2F0 IGhpc3RvcmljYWxseQ== IGFuYWxvZw== IGxvbmd0aW1l IHByZXNjcmlwdGlvbg== IE1pc3Q= IEh5cGVy IE1haW5l IERlaXR5 IG11bHRpcGw= IFJlaW5jYXJu IEh5ZA== IFBpYw== U2ls cmFudHM= IENyaXM= Ljs= KHs= ZXBlbmRlbmNl IHJlY3k= YXRldXI= IHF1YWQ= IGdsb2I= IGNvbmNlZA== dGVhbQ== IGNhcGl0YWxpc3Q= IExvdA== IHJveWFs IEN5YmVy IGJsYWNrcw== bWV0aWM= cml2 IERhbm55 IHNwbw== IFJP IGFuaW1hdGVk cnlwdGVk IERlcHV0eQ== IHJlbmRlcmVk RkU= IHN0cmVhaw== IGNsb3Vkcw== IERvdWc= fn5+fn5+fn4= IGRpc2NvdXI= IFZlaA== IHBzeWNob2xvZ3k= IEpvdXJuZXk= IGNyeXN0YWw= IEZyb3N0 IHN1c3BpY2lvbg== IHJlbGF0ZQ== b3J1cw== IENyeXB0 IE5WSURJQQ== Y29tZWQ= dXRpbmc= aW5jaW5uYXRp IHZ1bG5lcmFiaWxpdHk= b3N0aWM= IGlzb2xhdGlvbg== IGNvb2xpbmc= IENvYWxpdGlvbg== IDExOQ== Rm91cg== IERlYWw= IOKJ c2VtYmxl cmFtZW50 IEJhcmNlbG9uYQ== IDEwMg== IGNvY2FpbmU= b2NhbHlwc2U= RmVi b2dlbmlj IG11dGF0aW9u IGNyeXB0b2M= IEtlbA== IEdpdA== YWlz IHNpc3RlcnM= QU5L IGFjdGl2YXRl VGVy IGRyZWFk eWxvbg== IHByb3ByaQ== QXVzdA== IERlZmF1bHQ= IG91dGRvb3I= IHNoZWVy Y2VpdmU= IGdlbnRseQ== 0L4= UHJvZ3JhbQ== IOKGkg== IHZlZ2Fu IENydXM= IHJlc3BvbnNpYmlsaXRpZXM= IEhS T0xE IHByZXZlbnRz IHN0aWZm IFdlcmU= IGF0aGxldGlj IFNjb3Jl ICk6 IGNvbHVtbnM= IExvYw== YXZhaWxhYmxl IEZyYW0= IFNlc3Npb25z IGNvbXBhbmlvbg== IHBhY2tz MTQw IEtuaWdodHM= IGZhcnQ= IHN0cmVhbXM= IHNob3Jl IGFwcGVhbHM= IFBlcmZvcm1hbmNl aGF1bA== IFN0cmE= IE5hZw== MTAz IFRyYW5zcG9ydGF0aW9u QkI= RXY= emFu UHVibGlj IHR3aW4= dWxzaW9u TXVsdA== IGVsZWN0cm8= IHN0YXR1ZQ== YXRpb25hbGx5 IE5vcnQ= IGluc3BlY3Rpb24= Lyo= aWd1ZQ== IGNvbXBhc3Npb24= IFRhbGVz IFN0ZWlu IFNjcmVlbg== IEJ1Zw== IExpb24= Z2lybA== IHdpdGhkcmF3YWw= IG9iamVjdGl2ZXM= IGJsb29keQ== IHByZWxpbWluYXJ5 IGphY2tldA== IGRpbWVuc2lvbnM= IENvb2w= IE9jY3Vw IHdyZWNr IGRvdWJsZWQ= YW5raW5n IDE5NzU= IGdsYXNzZXM= IFdhbmc= cHJvdg== UGF0aA== Y29ubmVjdGVk IE11bHRp IE5vcndheQ== YWdvbmlzdA== IGZlYXJlZA== IHRvdWNoaW5n IGFyZ3VhYmx5 wq/Cr8Kvwq/Cr8Kvwq/Crw== IE5DQUE= Y2hlbQ== IHNwYXQ= IFdXRQ== IENlbA== aWdnZXI= IGF0dGFja2Vy IEpvaW4= b2JqZWN0 ZXR0YQ== IGVsaW1pbmF0ZWQ= ZGV0 IGRlc3RydWN0 IEx1Y2Fz Y3R1YXJ5 MTgw IEJyYWR5 IEJsdWVz QmF5 YXVrZWU= IHRpbWVsaW5l IGRlbGVnYXRlcw== d3JpdHRlbg== dWZmaWNpZW50 IHNoYXBlcw== Q29weXJpZ2h0 b3VibGU= c2VydmljZQ== IHBpb25l IGNvbGxlZ2Vz IHJvd3M= IHNwaXRl IGFzc2Vzc2Vk MzYw IGxlYXNl IGNvbmZpZGVudGlhbA== Y2tlcg== IE1hbm5pbmc= IFZvaWNl IHNlYWxlZA== IGNhbGN1bGF0ZQ== Tk8= IEFzc2lzdGFudA== IHRlZW5hZ2Vy dWxlbnQ= YXRoZXJpbmU= IG1vY2s= IGRpYW1vbmQ= IGZlc3Q= IHN3aXRjaGVk IHJlc3VtZQ== IFB1ZXJ0bw== IGxhbmVz aXJhdGlvbg== IFNpbWlsYXJseQ== IHJvZA== IFNlbA== IFBhbGFjZQ== IExpbWl0ZWQ= ZW91cw== IHZhcmlhbnQ= IHdhcmQ= ICkp U2hvdw== T09L QWxleA== IE5lcA== YnJpcw== IFdpa2lwZWRpYQ== IGV4Y2VwdGlvbmFs IG1hbmFnZXM= IERyYXc= QWdhaW4= IGNvcHBlcg== dXR0 IGV4cG9ydHM= IHBvcnRmb2xpbw== IGVsZXZhdGVk UmF0ZWQ= IE90aGVyd2lzZQ== IFRhY3Q= IFNoZWw= IFRY IuKAlA== IHJlc3Vy IFdh dmVuYW50 IG1vbmV0YXJ5 cGVvcGxl RW1haWw= IGZpZnR5 IFN3ZWV0 IE1hbGF5c2lh IGNvbmZ1c2luZw== IFJpbw== dWRh dXRlbmFudA== Iik7 IHByYWlzZWQ= IHZvbHVtZXM= dHVybg== IG1hdHVyZQ== IG5vbnByb2ZpdA== IHBhc3Npb25hdGU= IFByaXZhdGU= IDEwMw== IGRlc2NlbmQ= 56We dWZmeQ== aGVhZGVk V2hldGhlcg== cmllbg== emVjaA== YmVpdA== IGNocm9t IE1jTQ== IGRhbmNpbmc= IGVsZWc= IE5vdGljZWQ= MTE1 IGFkdm9jYWN5 RU5UUw== YW1ibGluZw== IE1pbm9y IEZpbm4= IHByaW9yaXRpZXM= IHRoZXJlb2Y= IFN0YWdl IFJvZ2Vycw== IHN1YnN0aXR1dGU= IEphcg== IEplZmZlcnNvbg== IGxpZ2h0bHk= MTAy IExpc2E= dWl0cw== eXNpY2Fs IHNoaWZ0cw== IGRyb25lcw== IHdvcmtwbGFjZQ== IHJlc2lk ZW5zZWQ= YWhu IHByZWZlcmVuY2Vz c2VydmVy IGRlYmF0ZXM= ZG9j IEdvZHM= IGhlbGljb3B0ZXI= IGhvbm91cg== IGNvbnNpZGVyYWJseQ== ZWRlZA== IEZlbWFsZQ== IEFubmU= IHJldW4= IEZhY2U= IEhhbGxvdw== IEJ1ZGdldA== IGNvbmRlbW4= IHRlbmRlcg== UHJvZg== b2NyYXRpYw== IFR1cm5lcg== IEFncmlj IDE5NzY= IGFwdA== ZGlzYw== IEZpZ2h0ZXI= IEF1cg== IGdhcmJhZ2U= aW5wdXQ= IEthcmw= IE9saXZlcg== IExhbmd1YWdl a24= Tm9u IENsYXI= IHRyYWRpdGlvbnM= IGFkdmVydGlzZW1lbnQ= IFNvcg== IGFyY2hpdmU= IHZpbGxhZ2Vz NzUw IGltcGxlbWVudGluZw== d2F1a2Vl IGRpZXRhcnk= IHN3aXRjaGluZw== UmVwdWJsaWM= IHZlbG9jaXR5 IGNpdA== IEF3YXJkcw== IGZpbmFuY2luZw== IGxhc3RlZA== KV0= IHJlbWluZGVy UGVyc29u IHByZWNpc2lvbg== IGRlc2lnbmVycw== IEZyaWVk IEJvcmRlcg== IHRyYWdpYw== IHdpZWxk IGluaXRpYXRpdmVz IFRhbms= d2Vy IGpvaW5z Um8= aW5lcnk= IGFycm93 IGdlbmVyYXRpbmc= Zm91bmRlcg== IHNlYXJjaGVz IHJhbmRvbWx5 QWNjZXNz IGJhdGNo IHBvc2Vk bGF0 IHB1cnN1aW5n YXNh IHRlc3RpZmllZA== Zm9ybWluZw== IFNoYXI= d2lraQ== IEVpdGhlcg== U29tZXRpbWVz IHNlbmF0b3Jz IEpvaG5ueQ== IFRhbGliYW4= IEdQUw== IjoiLw== 44Gu5Q== IGFuYWx5emVk IFJ1Ymlv IE1vdmVtZW50 b3BhcmQ= aWlp U3RhbmQ= ZmlnaHQ= IGlnbm9yaW5n aWFuZw== IEdO c29ldmVy IFNUQVQ= IHJlZnVzaW5n IHN3ZWF0 IGJheQ== UE9SVA== aXJtZWQ= YWt5 IGRpc3Bybw== IGxhYmVsZWQ= IDEwOA== SGVsbG8= IHBsZWFzYW50 YWJh IHRyaXVtcGg= IGFib2FyZA== IGluY29t IENyb3c= bGV0dA== IGZvbGs= IGNoYXNl YGA= IEJydXM= IHRlZW5z Y3Vl IHRlcnJhaW4= aHlk aWxpZ2h0 T1JZ U3VwcG9ydA== ZXdz bGxp cmFpbnRz IENhbmQ= IGFidXNlZA== YWNobWVudA== bGFyZw== QmFz IENhbmNlcg== IDE5Nzg= IHN1cHBvcnRlcg== YWNjZXNz IFRlcm1pbg== IFRhbXBh IEFOWQ== IG5ld2VzdA== IENyaW1pbmFs ZWR1 IDE5MzA= IGFkbWl0cw== IGVuZGU= IGZhaWx1cmVz dXJhdGU= ZnVsbmVzcw== Y3ljbA== IFN1YmplY3Q= IGluZmluaXRl dGhyZWU= V0E= cGl0 IEluc3RhbGw= UmFk aWxpYXRpb24= R00= IGNvbnRpbmVudA== IGFjY29tbW9kYXRl IENsYXk= IHB1cA== IEZ1bmN0aW9u IGhhbW1lcg== IEFsYmVydGE= IHJldmlzZWQ= IG1pbm9yaXRpZXM= IG1lYXN1cmVtZW50 Q29ubmVsbA== IGRpc2FibGU= IE1peA== SW5jcmU= IGZvcms= IFJvc2Vu IGltcGxpZXM= dW1ibHI= QU5H IHByb3RlaW5z IGFnZ3Jlc3Npb24= IGZhY2lsaXRhdGU= U04= IGlsbGVnYWxseQ== dWVy IGFjYWRlbQ== IHB1eno= IFNoaWZ0 cGF5 b2xsbw== IGF1ZGllbmNlcw== QnVpbGQ= IG5vYmxl IHN5bnRheA== 4piF IGJlYW0= IEJlZA== IEFsZA== IG9yaWdpbnM= dmlkZW8= IDE5Nzc= IEFzc2F1bHQ= IGdhcmFnZQ== VGVhbQ== IHZlcmRpY3Q= IGR3YXI= IFZpcnR1YWw= ZXZlbnQ= S2VlcA== IHNlbnRpbWVudA== IHdpbGRsaWZl c2hpcnQ= IGJ1cmc= IHJlY29tbWVuZGF0aW9u cmVwcmVzZW50 IGdhbGxlcnk= b3duZXJz IHNjaG9sYXI= IGNvbnZlbmllbmNl IFN3aWZ0 IGNvbnZpbmM= Q2Fw IHdhcmZhcmU= IFZpc3VhbA== IGNvbnN0aXR1dGU= IGFib3J0 IFdlYXRoZXI= IExvb2tpbmc= IEhlbQ== IG1hcnRpYWw= IGluY29taW5n ZXRpdGlvbg== IHRvbGVyYW5jZQ== IENyZWF0ZWQ= IGZsb3dz IEVsZGVy IHNvdWxz IGZvdWw= IFBhaW4= IENBTg== IDIyMA== YmM= aGVuZA== IGdlbml1cw== UmVhbA== IFdy b21ldGVy cGFk IGxpbWl0aW5n IFNp IExvcmU= IEFkdmVudHVyZXM= IHZhcmllZA== RGlzYw== Zmlu IFBlcnNvbmFs Q2hyaXM= IGludmVudGVk IGRpdmU= IFJpc2U= IG96 IENvbWljcw== IGV4cG9zZQ== IFJlYg== bGV0dGVycw== c2l0ZQ== aW1hdGVk IGhhY2tpbmc= IGVkdWNhdGVk IE5vYm9keQ== IGRlcHJp IGluY2VudGl2ZQ== 44K3 IG92ZXJzaWdodA== IHRyaWJlcw== IEJlbGdpdW0= IGxpY2Vuc2luZw== b3VydA== UHJvZHVjdA== YWhs IEdlbQ== IHNwZWNpYWxpc3Q= IGNyYQ== YW5uZXJz IENvcmJ5bg== IDE5NzM= UkVBRA== IHN1bW1hcg== IG92ZXJsb29r IEFwcGxpY2F0aW9u IGluYXBwcm9wcmlhdGU= IGRvd25sb2FkZWQ= UXVl IEJlYXJz IHRodW1i IENoYXJhY3Rlcg== IFJlaW5jYXJuYXRlZA== IFNpZA== IGRlbW9uc3RyYXRlcw== c2t5 IEJsb29tYmVyZw== IEFycmF5 IFJlc3VsdHM= IEZvdXJ0aA== IEVEVA== IE9zY2Fy Y2VuZA== IDEwNg== IE5VTEw= IEhFUkU= bWF0Y2g= IEJydW4= IGdsdWNvc2U= aWVn ZWd1 IGNlcnRpZmllZA== IHJlbGll IGh1bWFuaXRhcmlhbg== IHByYXllcnM= S2luZw== IG5hbg== aG91 MTA4 dWx1 IHJlbmV3YWJsZQ== IGRpc3Rpbmd1aXNo IGRlbnNl IFZlbnQ= IFBhY2thZ2U= IEJvc3M= IGVkaXRvcnM= IG1pZ3I= VHJh IFBldGVycw== IEFyY3RpYw== MjAwNA== IENhcGU= IGxvY2FsbHk= IGxhc3Rpbmc= IGhhbmR5 Liku UGFu IFJFUw== SW5kZXg= IHRlbnNpb25z IGZvcm1lcmx5 IGlkZW9sb2dpY2Fs IHNlbnNvcnM= IGRlYWxlcnM= IGRlZmluZXM= U2s= IHByb2NlZWRz IHByb3h5 YXppbmVz IEJhc2g= IFBhZA== IENyYWZ0 ZWFsb3Vz IHNoZWV0cw== b21ldHJ5 SnVuZQ== Y2xvY2s= VFQ= IFRoZWF0cmU= IEJ1eno= IGNoYXB0ZXJz IG1pbGxlbm4= IGRvdWdo IENvbmdyZXNzaW9uYWw= IGltYWdpbmVk YXZpb3I= IGNsaW5pYw== IDE5NDU= IGhvbGRlcg== cm9vdA== b2xlc3Rlcg== IHJlc3RhcnQ= Qk4= IEhhbWFz IEpvYg== IG9yYg== IHJhbQ== IGRpc2Nsb3Nl IHRyYW5zbGF0ZQ== IGltbWlncmFudA== IGFubm95aW5n IHRyZWF0eQ== YW5pdW0= IFRlYQ== IExlZ2lvbg== IGNyb3dkcw== IEJlYw== IEFlcg== b2h5ZA== QnJv TG9va2luZw== IGxicw== IGFnZ3Jlc3M= IHNlYW0= IGludGVyY2VwdA== IE1J bWVyY2lhbA== YWN0aXY= IENpdA== IGRpbWVuc2lvbg== IGNvbnNpc3RlbmN5 IHJ1c2hpbmc= IERvdWdsYXM= IHRyaW0= SW5zdGFsbA== aWNrZXI= IHNoeQ== MTA2 IG1lbnRpb25z cGVsbGVk IFRhaw== Y29zdA== IGNsYXNzcm9vbQ== IGZvcnR1bmU= ZHJpdmVu IHVubGU= IFdoZWVs IGludmVzdG9y IE1hc3RlcnM= a2l0 IGFzc29jaWF0aW9ucw== IEV2b2x1dGlvbg== b3Bpbmc= dXNjcmlwdA== IHByb3ZpbmNpYWw= IFdhbHRlcg== YXZp U08= IHVubGltaXRlZA== RW5nbGlzaA== IENhcmRz IEVib2xh bmVyZWQ= IHJldmVuZ2U= IG91dHJpZ2h0 dW1wZXI= IGZpdHRpbmc= IFNvbGlk IGZvcm1hbGx5 IHByb2JsZW1hdGlj IGhhemFyZA== IGVuY3J5cHRpb24= IHN0cmFpZ2h0Zm9yd2FyZA== IEFL IHBzZQ== IE9yYg== IENoYW1iZXI= IE1haw== Q29udGVudHM= IGxveWFsdHk= IGx5cmljcw== IFN5bQ== IHdlbGNvbWVk IGNvb2tlZA== IG1vbm9w IG51cnNl IG1pc2xlYWRpbmc= IGV0ZXJuYWw= IHNoaWZ0aW5n ICs9 Vmlz IGluc3RpdHV0aW9uYWw= aWxsYXJ5 IHBhbnQ= VkVSVA== IEFDQw== IEVuaA== IGluY29u IFJFVVRFUlM= IGRvbmF0ZWQ= 4oCm4oCm4oCm4oCm SW50ZXJu IGV4aGliaXQ= IHRpcmU= IFJpYw== IENoYW1waW9u IE11aGFtbWFk TklORw== IFNvY2Nlcg== IG1vYmlsaXR5 IHZhcnlpbmc= IE1vdmll IGxvcmQ= b2Fr RmllbGQ= IHZlY3Rvcg== dXNpb25z IHNjcmFw IGVuYWJsaW5n bWFrZQ== VG9y Lio= fHw= IFdlYnNpdGU= IE5QQw== IHNvY2lhbGlzdA== IEJpbGx5 IEFkZGl0aW9uYWw= IGNhcmdv IGZhcm1z IFNvb24= IFByaXpl IG1pZG5pZ2h0 IDkwMA== c2Vlbg== IFNwb3Q= IHNoZWVw IHNwb25zb3JlZA== IEhp IEp1bXA= IDE5Njc= TWljcm9zb2Z0 IEFnZW50 IGNoYXJ0cw== ZGly IGFkamFjZW50 IHRyaWNrcw== IG1hbmdh IGV4YWdnZXI= Lz4= Zm9vdGJhbGw= IEZDQw== R0M= IFRpZXI= YW5kcmE= T1VORA== JSks IGZydWl0cw== VkM= IEFB Um9iZXI= IG1pZHN0 4pc= YW5rYQ== IGxlZ2lzbGF0dXJl IE5laWw= IHRvdXJpc3Rz IiI= IFdhcm5pbmc= IE5ldmVydGhlbGVzcw== IE9mZmljaWFs IFdoYXRldmVy IG1vbGQ= IGRyYWZ0ZWQ= IHN1YnN0YW5jZXM= IGJyZWVk IHRhZ3M= IFRhc2s= IHZlcmI= IG1hbnVmYWN0dXJlZA== Y29tbWVudHM= IFBvbGlzaA== UHJvdg== IGRldGVybWluZXM= T2JhbWE= a2Vycw== IHV0dGVybHk= IHNlY3Q= c2NoZQ== IEdhdGVz IENoYXA= IGFsdW1pbnVt IHpvbWJpZQ== IFRvdWNo IFVQ IHNhdGlzZnk= IHByZWRvbWlu YXNjcmlwdA== IGVsYWJvcmF0ZQ== IDE5Njg= IG1lYXN1cmluZw== IFZhcmk= YW55YWh1 IHNpcg== dWxhdGVz aWRnZXM= aWNrZXRz IFNwZW5jZXI= VE0= b3VidGVk IHByZXk= IGluc3RhbGxpbmc= IENhYg== cmVlZA== cmVhdGVk U3VwcA== IHdyaXN0 IEtlcnJ5 MTA3 IEtsZQ== IFJhY2hlbA== IGNvdHRvbg== IEFSRQ== IEVsZQ== Q29udHJvbA== IGxvYWRz IERvZA== YW5hcw== Ym9uZQ== IGNsYXNzaWNhbA== IFJlZ2lvbmFs IEludGVn Vk0= IGRlc2lyZXM= IGF1dGlzbQ== c3VwcG9ydGVk IE1lc3NhZ2U= IGNvbXBhY3Q= d3JpdGVy IDEwOQ== IEh1cnJpY2FuZQ== Y2lzaW9u IGN5Y2xlcw== IGRyaWxs IGNvbGxlYWd1ZQ== IG1ha2Vy R2VybWFu IG1pc3Rha2Vu U3Vu IEdheQ== IHdoYXRzb2V2ZXI= IHNlbGxz IEFpcmw= bGl2 IE9wdGlvbg== IHNvbHZlZA== IHNlY3RvcnM= IGhvcml6b250YWw= IGVxdWF0aW9u IFNraWxs IEJpbw== Z2VtZW50 IFNuYXA= IExlZ2Fs IHRyYWRlbWFyaw== IG1ha2V1cA== IGFzc2VtYmxlZA== IHNhdmVz IEhhbGxvd2Vlbg== IFZlcm1vbnQ= IEZST00= IGZhcm1pbmc= IFBvZGNhc3Q= YWNjZXB0YWJsZQ== IEhpZ2hlcg== IGFzbGVlcA== dWxsaXZhbg== IHJlZmVyZW4= IExldg== IGJ1bGxldHM= b2tv SEM= IHN0YWlycw== IG1haW50YWlucw== IExvd2Vy IFZp IG1hcmluZQ== IGFjcmVz IGNvb3JkaW5hdG9y IEpvaA== IGNvdW50ZXJwYXJ0cw== IEJyb3RoZXJz IGluZGljdA== YnJh IGNodW5r IGNlbnRz SG9tZQ== IE1vbnRo IGFjY29yZGluZ2x5 aWZsZXM= IEdlcm1hbnM= IFN5bg== SHVi IGV5ZWI= 4pSA4pSA4pSA4pSA IHJhbmdlcw== IEhvbGxhbmQ= IFJvYm90 ZmM= TWlrZQ== IHBsYXNtYQ== IHN3YXA= IGF0aGxldGU= IFJhbXM= LCci IGluZmVjdGlvbnM= IGNvcnJpZA== IHZpYg== IHBhdGNoZXM= IHRyYWRpdGlvbmFsbHk= IHJldmVsYXRpb24= IHN3ZWVw IGdsYW5jZQ== IGluZXg= MjAwMw== IFJhdw== d29ya2luZw== b3N1cmVz IERhdA== IEx5bmNo IGxldmVyYWdl IFJlaWQ= IGNvcnJlbGF0aW9u aWFuY2Vz YXZhc2NyaXB0 IHJlcG9zaXRvcnk= cmV0dHk= IDE5NzI= MjQw IG91bg== cG9s IFJlZWQ= IHRhY3RpY2Fs aXNpdGU= QXBwbGU= IFF1aW5u IHJhcGVk aWxsbw== RXVyb3Bl IGFsZ29yaXRobXM= IFJvZHJpZw== aXU= IGlsbHVt IGZhbWU= IGludHJvZHVjaW5n IGRlbGF5cw== IFJhaWRlcnM= IHdoaXN0bGU= IG5vdmVscw== IFJlYWxseQ== IGRlcml2 IHB1YmxpY2F0aW9ucw== IE5laXRoZXI= IENvbW1lcmNl IGFzdG9u bGFuZ3VhZ2U= Tm90ZXM= IFJvdGg= IEZlYXI= IG1hdGU= IHBhcmFkZQ== IFFC IG1hbmV1 IENpbmNpbm5hdGk= bWl0dGluZw== IHdhaXN0 IFJldw== IGRpc2NvbnQ= 0LA= IHN0YXJpbmc= IGFsaWFz IHNlY3VyaXRpZXM= IHRvaWxldA== IEplZGk= IHVubGF3 dmlzZWQ= Ly8vLy8vLy8= XSg= IFdlaXNz IHByZXN0 IENvbXBhbg== IG1lbW8= IEdyYWNl SnVseQ== IEVsaXRl Y2VudGVy IFN0YXk= IGdhbGF4eQ== IHRvb3Ro IFNldHRpbmdz IHN1YmplY3RlZA== 44Km IGxpbmViYWNr IHJldGFpbGVycw== IFdhbnQ= IGRhbmdlcnM= QWly IHZvbHVudGFyeQ== ZXdheQ== IGludGVycHJldGVk b3RpbmU= w6c= IHBlbA== U2VydmljZQ== IEV2ZW50dWFsbHk= IGNhcmVlcnM= IHRocmVhdGVu IG1lbW9y IEJyYWRsZXk= YW5jaWVz c24= IFVua25vd24= TmF0aW9uYWw= IHNoYWRvd3M= YWlsYW5k IERhc2g= RXZlcnlvbmU= aXp6YXJk TWFyY2g= PSg= IHB1bGxz IHN0cmFuZ2Vy IGJhY2t3YXJkcw== IEJlcm5hcmQ= aW1lbnNpb25hbA== IGNocm9u IHRoZW9yZXRpY2Fs a3RvcA== IHdhcmU= IEludmVzdGln IEluaXRp IE9wZXJhdGlvbnM= b3Zlbg== b2NpZGU= Ki8= IGZsYW1lcw== IENhc2g= c2hpdA== IGNhYg== IEFuYWx5 IFNlYWg= IGRlZmluaW5n IG9yZGVyaW5n IGltbXVu IHBlcnNpc3RlbnQ= QUNI UnVzc2lhbg== bWFucw== IGhpbmQ= IHBob3RvZ3JhcGh5 wqk= IGh1Zw== IDEwNw== IEhlbmNl aW90cw== dWRlYXU= IHN1YnNpZGllcw== IHJvdXRpbmVseQ== IERldmljZQ== aXRpYw== IGRpc2d1c3Q= bGFuZGVy IDE5NDA= IGFzc2lnbm1lbnQ= IEJlc2lkZXM= d2ljaw== IER1c3Q= dXNj c3RydWN0ZWQ= MTEx ZGV2ZWxvcA== IGZvbmQ= IGludGVyc2VjdGlvbg== IGRpZ25pdHk= IGNvbW1pc3Npb25lcg== V2l0aG91dA== cmVhY2g= IGNhcnRvb24= IHNjYWxlcw== 44Ot RklH IHN1cnZleXM= IEluZG9uZXNpYQ== IGFydHdvcms= IHVuY2g= IGN5Y2xpbmc= dW5jdA== YXVlcg== b3JhdGU= IE9idmlvdXNseQ== IGNoYXJhY3Rlcml6ZWQ= ZmVsZA== IGFmZmlybQ== IGlubmluZ3M= IOk= IGFsaWVucw== IGNsb3Ro ZXRvb3Ro IENlcnRhaW4= wqc= IGRpZ2VzdA== a25vdw== IFhM IHByZWRpY3Rpb25z IGRpbg== V0FS IGFmdGVybWF0aA== RXhhbXBsZQ== IFN1Y2Nlc3M= IFRocg== SUdO IG1pbmVy QnVz IGNsYXJpdHk= aGVpbWVy IE9VVA== IFNlbmQ= IENpcmNsZQ== IERpZXQ= IHByb25vdW5jZWQ= IGNyZWF0b3Jz IGVhcnRocXVha2U= YXR0ZXJ5 Z2VvbnM= IG9k IGxheWluZw== b3Jw VWx0 cHJvamVjdA== IHVuZGVybWlu IHNlcXVlbA== U2Ft IERhcmtuZXNz IHJlY2VwdGlvbg== YnVsbA== WVM= IFZpcg== IHNlcXVlbmNlcw== IENvaW4= IG91dGZpdA== IFdhaXQ= MTE5 IGRlbGl2ZXJz Li4uLi4u IGJsb3du IEVzYw== IE1hdGg= cGVybQ== IFVs IGdsaW0= IGZhY2lhbA== IGdyZWVuaG91c2U= IHRva2Vucw== Ly0= IEFubnVhbA== IE9ORQ== IHRlZW5hZ2U= IFBoeXNpY2Fs IExhbmc= IENlbHQ= IHN1ZWQ= aXZpZHVhbGx5 IHBhdGllbmNl Y2hhaXI= cmVndWxhcg== IGF1Zw== aW52 ZXhjZXB0 IExpbA== IG5lc3Q= ZmQ= c3Vt IENoYXNl UnVzc2lh IEplbm5pZmVy IG9mZnNlYXNvbg== T3ZlcmFsbA== Rm9yZQ== IHJpb3Q= QXVk Zm9ybWVy IGRlZmVuZGVycw== IENU aW90aWM= cmlibHk= IGF1dG9tYXRlZA== IHBlbmlz IGluc2lzdA== IGRpYWdyYW0= IFNRTA== IEdhcmM= IHdpdGNo Y2xpZW50 aWVycmE= YW1iZXJz IHJlY291bnQ= ZmFy VmVyeQ== b3N0ZXJvbmU= IGFwcHJlY2lhdGVk IFBlcmZlY3Q= U2VjdGlvbg== IGRvc2Vz b2NhdXN0 IGNvc3RseQ== IGdyYW1z IFNoaQ== IHdyZXN0bGluZw== IDE5NzE= IHRyb3BoeQ== IG5lcnZl IEtheg== IEV4cGVyaWVuY2U= IHBsZWRnZWQ= IHBsYXliYWNr IGNyZWF0aXZpdHk= Ynll IGF0dGFja2Vycw== IGhvbGRlcnM= IENvYWNo IFBoRA== IHRyYW5zZmVycw== IGNvbG9yZWQ= IEhpbmR1 IGRyb3du IGxpc3RlbmVk IFdB aWFzbQ== UE8= IGFwcGVhbGluZw== IGRpc2Nsb3NlZA== IENoaWNrZW4= YWdnaW5n IHBsZWFkZWQ= IG5hdmlnYXRpb24= IFJldHVybnM= IFtb Uk9S RUE= IHBob3RvZ3JhcGhlcg== IFJpZGVy aXBwZXJz IHNsaWNl IGVyZWN0 IGhlZA== aXNzYW5jZQ== IFZpa2luZ3M= dXJpb3Vz IGFwcGV0 b3VidGVkbHk= Q2hpbGQ= IGF1dGhlbnRpYw== b29z IE1ha2luZw== IGFubm91bmNpbmc= IGJvZA== IG1ldGVy IE5pbmU= IFJvZ3Vl IHdvcmtmb3JjZQ== IHJlbmV3ZWQ= IG9yZ2FuaXNhdGlvbnM= YWNz UExF U2hvcnQ= IGNvbXBvdW5kcw== IFZpc2l0 IGVudmVsb3A= ZWFydGg= IHN1cHBvcnRpdmU= Z2dsZQ== IEJydXNzZWxz IEd1aWxk Q3JlYXRl UkVM IGF2ZXJhZ2Vk IDE5Njk= cmlhZ2Vz IGxlbmd0aHk= IGZvcmdvdA== T2theQ== IEVyZA== IGRlYWxlcg== IHJlY2Vzc2lvbg== REQ= IGRlc3BlcmF0ZWx5 IGh1bmdlcg== IHN0aWNrcw== IG1waA== IEZhaXRo IGludGVudGlvbmFsbHk= IGRlbW9s dWVsbGVy IFNhbGU= IGRlYnJpcw== c3ByaW5n IGxlYXA= Pj4+Pg== IGNvbnRhaW5lcnM= c2VsbGluZw== cmFuZWFu YXR0ZXJpbmc= IGNvbW1lbnRlZA== IENN b251dA== IHdvb2Rz ZXNwZWNpYWxseQ== IG9yZ2FuaXpl aXZpYw== IFdvb2Rz YW5nYQ== c3F1 IG1hag== YW1vbg== IGF4aXM= IDE5NzQ= IERlbm1hcms= IHdhcnJpb3I= IFBhbmQ= IG91dGxpbmVk IEJP aW5zdWxh emlsbGE= ZWJvb2s= IGRhcmU= IHNlYXJjaGVk IG5hdmlnYXRl U24= d3JpdGluZw== IHVuaXRlZA== SmFwYW4= IEhlYnJldw== IGZsYW1l IHJlbGllcw== IGNhdGNoaW5n IFNobw== IGltcHJpc29ubWVudA== IHBvY2tldHM= IGNsb3N1cmU= IEZhbQ== dGlt YWRlcXU= QWN0aXZpdHk= IHJlY3J1aXRpbmc= IFdBVENI IEFyZ2VudGluYQ== ZGVzdA== IGFwb2xvZ2l6ZQ== b3Jv IGxhY2tz IHR1bmVk IEdyaWZmaW4= IGluZmFtb3Vz IGNlbGVicml0eQ== c3Nvbg== IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0= IElzaXM= IERpc3BsYXk= IGNyZWRpYmlsaXR5 IGVjb25vbWllcw== IGhlYWRsaW5l IENvd2JveXM= IGluZGVm IGxhdGVseQ== IGluY2VudGl2ZXM= YnV0dG9u IE1vYg== QXV0 IHJlc2lnbmVk IE9t Y2FtcA== IHByb2ZpbGVz IHNjaGVtZXM= b2xwaGlucw== YXllZA== Q2xpbnRvbg== ZW5o IFlhaG9v IGFic3Q= IGFuaw== c3VpdHM= IHdpc2hlZA== IE1hcmNv dWRkZW4= IHNwaGVyZQ== IEJpc2hvcA== IGluY29ycG9yYXRlZA== IFBsYW50 MTE0 IGhhdGVk cGlj IGRvbmF0ZQ== IGxpbmVk IGJlYW5z IHN0ZWFsaW5n IGNvc3R1bWU= IHNoZXJpZmY= IGZvcnR5 IGludGFjdA== IGFkYXB0ZWQ= IHRyYXZlbGxpbmc= YmFydA== IG5pY2VseQ== IGRyaWVk IHNjYWw= b3NpdHk= Tk9URQ== IEJo IEJyb25jb3M= IElnbg== IGludGltYXRl IGNoZW1pc3RyeQ== IG9wdGltYWw= RGVi IEdlbmVyYXRpb24= IF0s aWNoaQ== IFdpaQ== IFlPVVI= dmVudGlvbnM= V3JpdGU= IHBvcHVs dW5uaW5n IFdvcg== Vm9s IHF1ZWVu aGVhZHM= S0s= IGFuYWx5emU= b3BpYw== ZWFyY2hlcnM= IGRvdA== bGVncmFwaA== YXN0aWNhbGx5 IHVwZ3JhZGVz IGNhcmVz IGV4dGVuZGluZw== IGZyZWV6ZQ== IGluYWJpbGl0eQ== IG9yZ2Fucw== IHByZXRlbmQ= IG91dGxldA== MTEz b2xhbg== IE1hbGw= dWxpbmc= dGFsaw== IGV4cHJlc3Npbmc= IEFsd2F5cw== IEJlZ2lu ZmlsZXM= IGxpY2Vuc2Vz JSU= IE1pdHQ= IGZpbHRlcnM= IE1pbHdhdWtlZQ== R04= IHVuZm9sZA== TW8= IG51dHJpdGlvbg== cHBv Qm8= IGZvdW5kaW5n IHVuZGVybWluZQ== IGVhc2llc3Q= IEN6ZWNo IE1hY2s= IHNleHVhbGl0eQ== IE5peG9u V2lu IEFybg== IEtpbg== 44Kj aWNlcg== IGZvcnR1bg== IHN1cmZhY2Vz YWdoZA== IGNhcnJpZXJz IFBBUlQ= IFRpYg== IGludGVydmFs IGZydXN0cmF0aW5n IFNoaXA= IEFybWVk ZmZl IGJvYXRz IEFicmFoYW0= aW5pcw== IHN1aXRlZA== dGhyZWFk aW92 YWJ1bA== IFZlbmV6dWVsYQ== IHRvbQ== c3VwZXI= IGNhc3RsZQ== YWx0aG91Z2g= aW94aWRl ZWNoZXM= IGV2b2x1dGlvbmFyeQ== IG5lZ290aWF0ZQ== IGNvbmZyb250ZWQ= UmVtZW1iZXI= IDE3MA== U3VjaA== IDkxMQ== bXVsdA== IEFieXNz dXJyeQ== a2Vlcw== c3BlYw== IEJhcmJhcmE= IGJlbG9uZ2luZw== IHZpbGxhaW4= aXN0YW5p IGFjY291bnRhYmxl IHBvcnRpb25z IERlY2w= VXI= IEthdGU= Z3Jl IG1hZ2F6aW5lcw== VUNL IHJlZ3VsYXRl b21vbg== IEFsbW9zdA== IG92ZXJ2aWV3 IHNjcmFt IGxvb3Q= IEZpdHo= IGNoYXJhY3RlcmlzdGlj IFNuYWtl c2F5 IFJpY28= IHRyYWl0 IEpvaW5lZA== YXVjdXM= IGFkYXB0YXRpb24= IEFpcmxpbmVz IGFyY2hhZQ== IElkZQ== IGJpa2Vz IGxpdGVyYXJ5 IGluZmx1ZW5jZXM= IFVzZWQ= Q3JlYXQ= IHBsZWE= IERlZmVuY2U= IEFzc2Fzcw== IHBvbmQ= VUxU KSI= IGV2YWx1YXRlZA== IG9idGFpbmluZw== IGRlbW9ncmFwaGlj IHZpZ2ls YWxleQ== IHNwb3VzZQ== IFNlYWhhd2tz cmVzcG9ucw== IEJlbHQ= dW1hdGlj IHJpc2Vz cnVubmVy IE1pY2hlbGxl IHBvdGVudA== cmFjZQ== IFBBQw== RmluZA== b2xlc3Rlcm9s SVNT IEludHJvZHVjZWQ= cmVzc2Vz aWdubWVudA== T3M= IFR1 IERleA== aWNpZGVz IHNwYXJrZWQ= IExhdXJh IEJyeWFudA== IHNtaWxpbmc= IE5leHVz IGRlZmVuZGFudHM= IENhdGFs IGRpc2hlcw== c2hhcGVk IHByb2xvbmc= bXQ= KCQ= 44CC IGNhbGN1bGF0aW9ucw== IFNhbWU= IHBpdg== SEg= IGNhbmNlbGxlZA== IGdyaW4= IHRlcnJpdG9yaWVz aXN0aWNhbGx5 Q29tZQ== IFBhcmVudA== UHJvamVjdA== IG5lZ2xpZw== IFByaXZhY3k= IGFtbW8= TEVDVA== b2x1dGVseQ== IEVwaWM= IG1pc3VuZGVy d2Fs QXByaWw= bW9z cGF0aHk= IENhcnNvbg== IGFsYnVtcw== IEVhc3k= IHBpc3RvbA== PDw= IFwo dGFyZ2V0 aGVscA== IGludGVycHJl Y29uc2Npb3Vz IEhvdXNpbmc= IEpvaW50 MTI3 IGJlZXJz c2NpZW5jZQ== IEZpcmVmb3g= ZWZmZWN0aXZl IENhYmlu IE9rYXk= IEFwcGxpYw== IHNwYWNlY3JhZnQ= IFNS dmV0 IFN0cmFuZ2U= U0I= IGNvcnBz aWJlcmFs ZWZmaWNpZW50 IHByZXZhbGVuY2U= IGVjb25vbWlzdHM= MTE4 VGhyZWFk b3JkYWJsZQ== T0RF IENhbnQ= PS09LQ== aWZpYWJsZQ== IEFyb3VuZA== IHBvbGU= IHdpbGxpbmduZXNz Q0xB IEtpZA== IGNvbXBsZW1lbnQ= IHNjYXR0ZXJlZA== IGlubWF0ZXM= IGJsZWVkaW5n ZXZlcnk= IHF1ZXVl IFRyYWlu IGhpag== IG1lbGVl cGxldGVk IGRpZ2l0 IGdlbQ== b2ZmaWNpYWw= IGxpZnRpbmc= 0LU= UmVxdQ== aXR1dGVz IHBhY2thZ2luZw== IFdvcmtlcnM= aHJhbg== IExlYmFub24= b2xlc2M= IHB1bmlzaGVk IEp1YW4= IGphbQ== IERvY3VtZW50 IG1hcHBpbmc= aWNhdGVz IGluZXZpdGFibHk= IHZhbmlsbGE= IFRvbg== IHdhdGNoZXM= IGxlYWd1ZXM= IGluaXRpYXRlZA== ZGVncmVl cG9ydGlvbg== IHJlY2FsbHM= IHJ1aW4= IG1lbHQ= SUFO IGhlbQ== RXhw IGJha2luZw== IENvbG9tYg== YXRpYmxl IHJhZGl1cw== cGx1Zw== IElG ZXRpY2FsbHk= IGZpY3Q= SEVS IFRhcA== YXRpbnVt IGluaw== IGNvaA== IFdpemFyZA== Ym90aA== dGV4 IHNwZW5kcw== IEN1cnJlbnRseQ== IFBpdA== IG5ldXJvbnM= aWdudA== IHJhbGw= IGJ1c2Vz YnVpbGRpbmc= IGFkanVzdG1lbnRz IGNyaWVk aWJsaWNhbA== YXR0ZWQ= IFppb24= IE1hdHRlcg== IG1lZGl0YXRpb24= IERlbm5pcw== IG91cnM= IFRhYg== IHJhbmtpbmdz b3J0YWw= IGFkdmVycw== IHN1cnJlbmRlcg== IEdvYg== Y2l1bQ== b21hcw== aW1ldGVy IG11bHRpcGxheWVy IGhlcm9pbg== IG9wdGltaXN0aWM= IGluZGljYXRvcg== IEJyaWc= IGdyb2Nlcnk= IGFwcGxpY2FudA== IFJvY2tldA== dmlk RXhjZXB0aW9u cGVudA== IG9yZ2FuaXppbmc= IGVuY291bnRlcnM= IFRPRA== IGpld2Vs U2F2ZQ== IENocmlzdGll IGhlYXRpbmc= IGxhenk= IENQ IGNvdXNpbg== Q29uZmln IHJlZ2VuZXI= IG5lYXJlc3Q= IGFjaGlldmluZw== RU5T dGhyb3c= IFJpY2htb25k YW50bGU= MjAwMg== IGFudGVu YmlyZA== MTMz IG5hcmM= cmFpbnQ= dW5ueQ== IEhpc3Bhbmlj b3VybmFtZW50cw== IHByb3BoZQ== IFRoYWlsYW5k IFRp IGluamVjdGlvbg== IGluaGVyaXQ= cmF2aXM= IG1lZGk= IHdob2V2ZXI= IERFQlVH R1A= IEh1ZA== Q2FyZA== cHJvbQ== IHBvcg== IG92ZXJoZWFk TGF3 IHZpb2xhdGU= IGhlYXRlZA== IGRlc2NyaXB0aW9ucw== IGFjaGlldmVtZW50cw== IEJlZXI= IFF1YW50 V2Fz IGVpZ2h0aA== IEl2 IHNwZWNpYWxpemVk VVBEQVRF IERlbHRh UG9w SnVs IEFzaw== b3BoeQ== IG5ld3NsZXR0ZXJz IFRvb2w= IGdhcmQ= IENvbmZlZGVy IEdNVA== IEFiYm90dA== IGltbXVuaXR5 IFZN SXNsYW0= IGltcGxpY2l0 d2Q= IDE5NDQ= cmF2aXR5 b21ldHJpYw== IHN1cnZpdmluZw== dXJhaQ== IFByaXNvbg== IHJ1c3Q= IFNrZXRjaA== IGJlZXM= IFRoZW9yeQ== IG1lcml0 VGV4 Y2hhdA== IG1pbQ== IHBhc3Rl IEtvY2g= IGlnbm9yYW5jZQ== IFNob290 IGJhc2VtZW50 VW5pdGVk IEFkdmlz aGVpZ2h0 IGZvc3Rlcg== IGRldGFpbg== aW5mb3JtYXRpb24= IG5ldXJhbA== Jzs= IHByb3Zlcw== YWxsZXJ5 IGludml0YXRpb24= dW1iZXJz IGNhdHRsZQ== IGJpY3ljbGU= emk= IGNvbnN1bHRhbnQ= IGFwb2xvZ3k= IFRpZ2Vy IDEyMw== OTk5 IGluZGl2aWR1YWxseQ== cnQ= aWdpb24= IEJyYXppbGlhbg== IGRpc3R1cmI= IGVudHJlcHJlbmV1cnM= IGZvcmVzdHM= Y2VycHQ= cGxhdGVz cGhlcg== Y2xpcHNl IHR3aXR0ZXI= IGFjaWRz b2dyYXBoaWNhbA== aHVt IEJhbGQ= aWZ1bGx5 IGNvbXBpbGVy IERB IGRvbm9y YXNp IHRyaWJhbA== bGFzaA== IENvbmZpZw== IGFwcGxpY2FudHM= IHNhbGFyaWVz MTM1 UHV0aW4= IEZvY3Vz aXJz IG1pc2NvbmR1Y3Q= IEhheg== IGVhdGVu TW9iaWxl TXVzbGlt IE1hcmN1cw== dmlvbA== IGZhdm9yYWJsZQ== IHN0dWI= YWRpbg== IEhvYg== IGZhaXRoZnVs IGVsZWN0cm9uaWNz IHZhY3V1bQ== d2FpdA== YmFja2Vk ZWNvbm9taWM= ZGlzdA== IHRlbnVyZQ== IHNpbmNlcmU= IFRvZ2V0aGVy IFdhdmU= IHByb2dyZXNzaW9u IGRlbnlpbmc= IGRpc3RyZXNz YnJhc2th dGhpcmQ= IG1peGluZw== IGNvbG9uaWFs IHByaXZhdGVseQ== IHVucmVzdA== YXRlcm5pdHk= IHByZW1pc2Vz YW50aQ== Z3JlZ2F0aW9u IGxpY2VuY2U= IEhpbmQ= IFNhbXVlbA== IGNvbnZpbmNpbmc= IEFjZQ== IFJ1c3Q= IE5ldGFueWFodQ== IGhhbmRsZXM= IFBhdGNo b3JpZW50ZWQ= YWhv IEdvbno= IGhhY2tlcnM= Y2xhaW1lcg== IGN1c3RvbXM= IEdyYW4= ZmlnaHRlcnM= IGx1Yw== IG1hbnVzY3JpcHQ= YXJlbnRob29k IGRldmls IHdhcnJpb3Jz IG9mZmVuZGVycw== V2lsbGlhbQ== IGhvbGlkYXlz IG5pZ2h0bWFyZQ== IGxldmVy aWZmZXJlbnQ= U3RhdA== IGV4aGliaXRpb24= cHV0ZWQ= IFB1cmU= IGFscGhh IGVudGh1c2lhc20= IFJlcHJlc2VudGF0aXZlcw== RUFS IFR5cA== IHdoZWF0 IEFsZg== IGNvcnJlY3Rpb24= IGV2YW5nZWw= QVRU TWlzcw== IHNvdXA= IGltcGxpZWQ= cGFyYW0= IHNleHk= IEx1eA== IHJlcHVibGlj cGF0Y2g= YWJsaXNo IGljb25z IGZhdGhlcnM= IEdFVA== IENhcmli IHJlZ3VsYXRlZA== IENvaGVu IEJvYmJ5 IG5lcg== IGJlbnQ= dmVudG9yeQ== IEFsb25n IEVTVA== IFdhbGxhY2U= IG11cmRlcnM= cmlzZQ== a2VsbA== IENvbW1vbndlYWx0aA== IG5hc3R5 ZXRh IE1JVA== IGFkbWluaXN0ZXJlZA== IGdlbnVpbmVseQ== RWRpdG9y bmljaw== IGh5ZHJv KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKio= IEJsZQ== IGZpbmVz IGdvcmdl YXVzaWJsZQ== cmg= IGFwcGxl bWVudGlvbmVk IHJvcGU= b3R5cA== SFI= IGRpc2FwcG9pbnRpbmc= IGNhZ2U= bmlr IGRvdWJ0cw== IEZSRUU= cHJpbnRz IE1VU1Q= IHZlbmRvcnM= IElucXU= IGxpYmVyYWxz IGNvbnRyYWN0b3I= IHVwc2lkZQ== Y2hpbGRyZW4= IHRyaWNreQ== IHJlZ3VsYXRvcnM= Y2hhcmdlZA== bGl0ZXI= ICoqKg== IHJlYmVsbA== bGFuZw== IGxvY2Fscw== IHBoeXNpY2lhbnM= IGhleQ== YXJzZQ== dG0= IExleA== IGJlaGF2aW9yYWw= c3VjY2Vzc2Z1bA== Rlg= IGJyaWNr b3ZpYw== IGNvbmZvcm0= IHJldmlld2luZw== IGluc2lnaHRz IGJpb2xvZ3k= IFJlbW92ZQ== IEV4dHJh IGNvbW1pdHRpbmc= aW5kdWNlZA== aWdudHk= aWdt IGF0b21pYw== Q29tbW9u IEVN IFBlcmU= IEl0ZW1z ZWg= IHByZXNlcnZlZA== IEhvb2Q= IHByaXNvbmVy IGJhbmtydXB0Y3k= IGdyZW4= dXNoZXM= IGV4cGxvaXRhdGlvbg== IHNpZ25hdHVyZXM= IGZpbmFu XSwi IE1S IG1lZw== cmVtbGlu IG11c2ljaWFucw== IHNlbGVjdGluZw== IGV4YW1pbmluZw== SU5L bGF0ZWQ= SGk= IGFydGlj IHBldHM= IGltcGFpcg== IE1BTg== IHRhYmxldHM= aW5jbHVkZQ== UmFuZ2U= IGNhdXQ= IGxvZ3M= IG1vdW50aW5n IHVuYXdhcmU= IGR5bmFtaWNz IFBhbGVzdGluZQ== IFF1YXJ0ZXI= IFB1cnBsZQ== IG1h IEltcG9ydA== IGNvbGxlY3Rpb25z Y2lhdGlvbg== IHN1Y2Nlc3Nvcg== IGNsb25l IGFpbWluZw== IHBvc3Nlc3NlZA== IHN0aWNraW5n IHNoYWtpbmc= IGxvY2F0ZQ== IEhvY2tleQ== VHVybg== MTcw IGZpZnRlZW4= IEhhcnJpc29u IGNvbnRpbnVvdXNseQ== IFRD IFZhbGVudA== IFJlc2N1ZQ== IGJ5cGFzcw== YW1vdW50 IG1hc3Q= IHByb3RlY3Rz IGFydGlzdGlj IHNvbWV0aW1l IHNob2U= IHNob3V0ZWQ= aWZpY2FudA== ZXRpdGl2ZQ== IFJlZ2lzdGVy IEppbg== IGNvbmNlbnRyYXRlZA== bGluZ3Rvbg== b25pZXM= IGdlbmVyYXRvcg== eXJpbQ== IEFybWVu IGNsZWFyaW5n aWRv IFRX YWxwaA== IGxhZGllcw== SGFyZA== IGRpYWxvZw== IGlucHV0cw== 5pw= IHBvc2Vz IHNsb3Rz IFByZW1pdW0= IGxlYWtz IGJvc3Nlcw== IDExMw== Y291cnNl QWNj IE5ld3Rvbg== IEF1c3RyaWE= IE1hZ2U= IHRlYWNoZXM= YWJhZA== IHdlYXJz IGN5bA== IGN1cnNl IFNhbGVz IFdpbmdz IHBzeQ== IGdhcHM= IEljZWxhbmQ= IFBpbnRlcmVzdA== IGxhbmRsb3Jk IGRlZmluaXRpb25z IEtlcg== IHN1ZmZpY2llbnRseQ== IFBlbmNl IEFyY2hpdGVjdA== IHN1cnBhc3M= IDExNA== IHN1cGVyaGVybw== IERpc2Vhc2U= IHByaWVzdHM= IEN1bHR1cmU= IGRlZmluaXRpdmU= IHNlY3JldGx5 IERhbmNl aW5zdGFsbA== Y2hpZWY= IEplc3NpY2E= V291bGQ= VXBkYXRlZA== IGxvY2tlcg== IEtheQ== IG1lbW9yaWFs 6KY= ZmF0 IGRpc2d1 IGZsYXZvcnM= IEJhc2ViYWxs IFJlc2lzdGFuY2U= IGtpY2tz IGVudg== IHRlZW5hZ2Vycw== RGFyaw== IENBUg== IGhhbHQ= IExH IEdhYnJpZWw= IGZldmVy IHNhdHVy IG1hbGw= IGFmZmlsaWF0ZQ== IFNsZWVw IFNwZWNpZmlj IFZlbA== IGphcg== IFNhY3JlZA== IEVkd2FyZHM= IEFDTA== IHJldGFpbmVk IEdpYW50 IGxpbWl0YXRpb24= aW5jZXM= IHJlZnVzYWw= IFRhbGU= IEJ1dGxlcg== IGFjY2lkZW50cw== IENTUw== IGltcG9ydGVk IENvcHk= zrE= RVJU emVs IGRpdmlzaW9ucw== aG90cw== IEFsYg== IERT TG9hZGVy V2FzaGluZ3Rvbg== YXRpc2Y= IENyZWF0aXZl XC4= IEF1dG9t cmVkaWN0 IHJlY2VwdG9y IENhcmxvcw== TWV0aG9k b2th IG1hbGljaW91cw== IHN0ZXBwaW5n LFs= IERhZA== IGF0dHJhY3Rpb24= IEVmZmVjdHM= IFBpcmF0ZQ== IENlcg== IEluZHVzdHJ5 IFJ1ZA== IGNoYXJ0ZXI= IGRpbmluZw== IGluc2lzdHM= IGNvbmZpZ3VyZQ== ICgj IFNpbXBsZQ== IFNjcm9sbA== VVRD MTc1 IEtvbg== IG1hcmtldHBsYWNl IOOC IHJlZnJlcw== IGdhdGVz ZXJyZWQ= IFBvZA== IGJlaGF2ZQ== RnJhbms= bm9kZQ== IGVuZG9yc2Vk aGV0dA== YXNpdmU= IEhvbWVsYW5k IHJpZGVz IExlYXZl ZXJuZXNz IGZsb29kaW5n QUZQ IHJpc2Vu IGNvbnRpbnVhbGx5 IHVuYW5pbQ== IENvbnRyYWN0 IFBhcw== IGd1aWRlZA== IENoaWxl YmQ= IHN1Y2M= cHRpYw== IGNvbW1pdHRlZXM= IEx1dGhlcg== IEFueW9uZQ== IHNhYg== MTI0 IHBpeGVs IEJhaw== IFRhZw== IEJlbm5ldHQ= RW50ZXI= c21hbGw= IFByZXNpZGVudGlhbA== IHB1bA== IGNvbnRyYWNl YXJjaGl2ZQ== IGNvYXN0YWw= IEtpZHM= MTky 4oCy aWNreQ== SU5HVE9O IHdvbGY= IFN0YWxpbg== VHVy aWRnZXQ= YW1hcw== IFVubGVzcw== IHNwb25zb3I= IG1vcnBo IENob29zZQ== IHJ1bm5lcg== IHVuYmVs IG11ZA== IE1hbmE= IGR1YmJlZA== IGdvZGQ= dXJlcnM= d2luZG93 IHJlbGllZA== IGNlbGVicmF0aW5n b3Nj IDEzNQ== IGxvYmJ5aW5n IGluY29tcGxldGU= IHJlc3RyaWN0aW9u IGluY2Fw aXR1cw== IGV4cGVjdGF0aW9u IEFwb2xsbw== IGludGVucw== IHN5bmM= R0g= IG1hbmlwdWxhdGlvbg== Qlk= IHNwZWFy IGJyZWFzdHM= IHZvbGNhbg== aWxpYQ== TWF0ZXJpYWw= IGZvcm1hdHM= IEJhc3Q= IHBhcmxpYW1lbnRhcnk= IHNuYWtl IHNlcnZhbnRz IFRydWRlYXU= IEdyaW0= IEFyYWJpYw== IFNDUA== IEJveXM= c3RhdGlvbg== IHByb3NwZWN0aXZl b3JkZQ== aW5pdGlhbGl6ZWQ= IGJvcmVk QUJMRQ== IGFjY2Vzc2Vk IHRheGk= IFNoZWxs YWlkZW4= dXJzZWQ= aW5hdGVz IEluc3VyYW5jZQ== IFBldGU= U2VwdGVtYmVy NjUw IGFkdmVudHVyZXM= IENvdmVy IHRyaWJ1dGU= IHNrZXRjaA== IGVtcG93ZXI= INg= IEdsZW5u IERhdw== PVwi IFBvbGl0aWNz IGd1aWRlcw== IGRpb3hpZGU= IEdvcmU= IEJyaWdodA== IFNpZXJyYQ== IHZhbHVlZA== Y29uZA== IHBvaW50ZXI= U2VsZWN0 IHJpc2t5 IGFic29yYg== aW1hZ2Vz IHJlZnVzZXM= IGJvbnVzZXM= X19f IGhpbGFy IEZlYXR1cmVz MjIw IENvbGxlY3Rvcg== Rm9vdA== IDE5NjQ= Y3VsdXM= IGRhd24= IHdvcmtvdXQ= IExP IHBoaWxvc29waGljYWw= IFNhbmR5 IFlvdXRo IGxpYWJsZQ== QWY= Ymx1ZQ== IG92ZXJ0dXJu bGVzc25lc3M= IFRyaWJ1bmU= IEluZw== IGZhY3Rvcmllcw== IGNhdGNoZXM= IHByb25l IG1hdHJpeA== IGxvZ2lu IGluYWNj IGV4ZXJ0 c3lz IG5lZWRsZQ== IFF1cg== IG5vdGlmaWVk b3VsZGVy dHg= IHJlbWluZHM= IHB1Ymxpc2hlcnM= IG5vcnQ= IGdpdA== IGZsaWVz IEVtaWx5 IGZsb3dpbmc= IEFsaWVu IFN0cmF0ZWc= IGhhcmRlc3Q= IG1vZGlmaWNhdGlvbg== QVBJ IE1Z IGNyYXNoZXM= c3RhaXJz bnVtYmVy IHVyZ2luZw== Y2hhbm5lbA== IEZhbGNvbg== IGluaGFiaXRhbnRz IHRlcnJpZnlpbmc= IHV0aWxpemU= IGJhbm5lcg== IGNpZ2FyZXR0ZXM= IHNlbnNlcw== IEhvbG1lcw== IHByYWN0aXRpb24= IFBoaWxsaXBz b3R0bw== IGNvbXBpbGU= TW9kZWw= IEtv IFtd QW1lcmljYW5z IFRlcm1z IG1lZGljYXRpb25z IEFuYQ== IGZ1bmRhbWVudGFsbHk= IE5vdGljZQ== IHdlYWtlcg== IDAwMDA= IGdhcmxpYw== IG91dGJyZWFr IGVjb25vbWlzdA== IEJpcnRo IG9ic3RhY2xlcw== YXJjZXI= IE9ydGhvZG94 IHBsYWNlYm8= IENyZXc= YXNwYmVycnk= IEFuZ2Vscw== IGRpc2NoYXJnZQ== IGRlc3RydWN0aXZl MTE3 IFJpc2luZw== IGRhaXJ5 bGF0ZQ== IGNvbGxpc2lvbg== IFRpZ2Vycw== ZWFub3I= b2N1bWVudGVk IEludmFsaWQ= IGRvbnQ= IExpdGVy IFZh IGh5ZHJvZ2Vu IHZhcmlhbnRz IEJyb3ducw== IDE5NjU= IGluZGlnZW5vdXM= IHRyYWRlcw== IHJlbWFpbmRlcg== IHN3ZXB0 IEltcGFjdA== IHJlZGlzdA== IHVuaW50 Z3JhZHVhdGU= 44OV IFdJTEw= 44Gu5w== IENyaXRpY2Fs IGZpc2hlcg== IHZpY2lvdXM= IHJldmVyc2Vk WWVhcg== IFNveA== IHNob290aW5ncw== IGZpbG1pbmc= IHRvdWNoZG93bnM= YWlyZXM= bWVs IGdyYW5kZmF0aGVy IGFmZmVjdGlvbg== aW5nbGU= IG92ZXJseQ== QWRkaXRpb25hbA== IHN1cHJlbWU= IEdyYWQ= IHNwb3J0aW5n IG1lcmN5 IEJyb29rcw== b3VudHk= IHBlcmZvcm1z IHRpZ2h0bHk= IGRlbW9ucw== IGtpbGxpbmdz IGZhY3Rpb24= IE5vdmE= YXV0cw== IHVuZG91YnRlZGx5 YXJpbg== IHVuZGVyd2F5 cmFr IGxpdg== IFJlZ2lvbg== IGJyaWVmaW5n c2Vycw== Y2xvdWQ= IE1paw== dXNw IHByZWRpY3Rpb24= YXpvcg== IHBvcnRhYmxl IEdhbmQ= IHByZXNlbnRpbmc= IDEwODA= wrs= dXNoaQ== IFNwYXJr dGhlcmV1bQ== IGp1c3RpZmljYXRpb24= IE55 IGNvbnRyYWN0b3Jz bWluZ2hhbQ== IFN0eWxl 5YU= IENocm9uaWNsZXM= IFBpY3R1cmU= IHByb3Zpbmc= IHdpdmVz c2V0dA== IG1vbGVjdWxlcw== IEZhaXJ5 IGNvbnNpc3Rpbmc= IHBpZXI= YWxvbmU= aW5pdGlvbg== IG51Y2xl anNvbg== IGdvdHRh IG1vYmls IHZlcmJhbA== YXJpdW0= IG1vbnVtZW50 dWNrZWQ= IDI1Ng== VGVjaA== bWluZWNyYWZ0 IFRyYWNr IHRpbGU= IGNvbXBhdGliaWxpdHk= YXNpcw== IHNhZGQ= IGluc3RydWN0ZWQ= IE11ZWxsZXI= IGxldGhhbA== IGhvcm1vbmU= IG9yY2hl ZWxzZQ== IHNrZWxldA== IGVudGVydGFpbmluZw== IG1pbmltaXpl YWdhaW4= IHVuZGVyZ28= IGNvbnN0cmFpbnRz IGNpZ2FyZXR0ZQ== IElzbGFtaXN0 IHRyYXZlbHM= IFBhbnRoZXJz bGluZ3M= Q2FyZQ== IGxhd3N1aXRz dXJhcw== IGNyeXN0 IGxvd2VyZWQ= IGFlcmlhbA== IGNvbWJpbmF0aW9ucw== IGhhdW4= IGNoYQ== IHZpbmU= IHF1YW50aXRpZXM= IGxpbmtpbmc= YmFuaw== IHNveQ== QmlsbA== IEFuZ2VsYQ== IHJlY2lwaWVudA== IFByb3Rlc3Q= IHNvY2tldA== IHNvbGlkYXJpdHk= IOKG bWlsbA== IHZhcmllcw== IFBha2lzdGFuaQ== RHJhZ29u IHVuZQ== IGhvcml6b24= wqDCoMKgwqDCoMKgwqDCoA== IHByb3ZpbmNlcw== IGZyYW5rbHk= IGVuYWN0ZWQ= bm90ZXM= Wyc= IDE5Mg== b2NyYWN5 IGVuZG9yc2VtZW50 IG92ZXJ0aW1l VHJ1ZQ== TGFi bGljdGVk IEROQw== IGJlYXRz IEphbWll MTUy IElOVA== Q29udGFjdA== IGFjY291bnRlZA== aGFzaA== IFBhY2tlcnM= cGlyZXM= IGxlc2JpYW4= IGFtZW5kbWVudHM= IGhvcGVmdWw= IEZpbmxhbmQ= IHNwb3RsaWdodA== IGNvbmZpZ3VyZWQ= IHRyb3VibGVk IGdhemU= IENhbGdhcnk= IHJlbGlhYmlsaXR5 IGluc3VyZw== c3dlcg== YnV5 IFNraW4= IHBpeGVscw== IGhhbmRndW4= IHBhcmFz IGNhdGVnb3I= IEVM IFJleA== SW5kZWVk IGtpbmRh IGNvbmp1bmN0aW9u IEJyeWFu IE1hbnVmYWN0 eWFuZw== UGx1cw== U1FM aXNobWVudA== IGRvbWluYXRl IG5haWw= IG9hdGg= IGVydXB0 IEZpbmU= aXRiYXJ0 IENoaXA= IEFiZA== IE5hbQ== IGJ1eWVy IGRpc3NlbnQ= TGVha3M= Q29udGlu IHJpZGVy IFNvbWVvbmU= IGlsbHVzaW9u Y2lu IEJvZWluZw== IGluYWRlcXU= b3ZhdGlvbg== aWFudHM= IHJlYnVpbGQ= NDUw IERlc3Rpbnk= U1c= IFRpbGw= SGl0 aWF6 IEJhbmds YWNoZXJz IFJlZm9ybQ== IHNlZ21lbnRz IHN5c3RlbWF0aWM= ZGM= IENvbnNlcnZhdGl2ZXM= IHBvcnRhbA== aG9y IERyYWdvbmJvdW5k IGRyYWdnZWQ= b21v IHRoZWU= YWR2ZXJ0 IFJlcG9ydHM= IEV0 IGJhcnJlbHM= QXVndXN0 IGNvbXBhcmlzb25z IGhleA== IGFudGhyb3A= Ils= Ym9yb3VnaA== YWJp IHBpY3R1cmVk cGxheWluZw== IEFkZHJlc3M= IE1pcnJvcg== U21pdGg= IHRpcmVz IE5QUg== QUFBQQ== IGNsYXNzaWZpY2F0aW9u IFRoYW4= IEhhcm0= IFJB IHJlamVjdGlvbg== bWluYXRpb24= IHJhbmdlZA== IEZhbGxz REk= SG9zdA== 44K0 IEV4YW1wbGU= bGlzdGVk dGhpcmRz IHNhZmVndQ== YnJhbmQ= IHByb2JhYmxl Q2FuYWRh SVRJT04= IFFhZWRh IGNoaWNr IGltcG9ydHM= aGl0 bG9j V1c= IGJsZXc= IGFueXRpbWU= IHdob2xlcw== aWtlZA== IGNhbGN1bGF0aW9u Y3JlYXRl IE9yaQ== IHVwZ3JhZGVk IGFwcGFy dXRvcnk= IE1vbA== QnJpdA== IEpvbmc= SU5BTA== IFN0YXJ0aW5n IGRpY2U= dXJ0bGU= IHJlbHlpbmc= Y2xvc3VyZQ== IHByb2ZpdGFibGU= IHNsYXVnaHRlcg== IE1hbnVhbA== Y2FzdGVy ICIk IGZlYXRoZXI= IFNpbXBseQ== aWV2ZXM= IGRldGVyaW9y IFBDSQ== IHN0YW1w IGZsYXdz IHNoYWRl aGFtbWVy IHBhc3Nwb3J0 IGNvbnRpbmc= YW1lbA== IG9ic2VydmVycw== IG5lZ2xlY3Q= IFJC IEJyb3RoZXJob29k IHNrZXB0aWNhbA== ZmFtaWx5 dXNr IGVtb3Rpb25hbGx5 4pk= IEJldGE= YXNvbmFibGU= aWRpdHk= IE11bA== IGtpY2tpbmc= IENhcm0= b2xsYWg= VkVSVElT IEF0aGVu IGxhZGRlcg== IEJ1bGxldA== 5aM= MDAwMQ== IFdpbGRsaWZl IE1hc2s= IE5hbg== UmV2 IHVuYWNjZXB0YWJsZQ== bGVnYWw= IGNyb3dkZWQ= YWdp IENveA== amU= IG1vcmFsaXR5 IGZ1ZWxz IGNhYmxlcw== IG1hbmtpbmQ= IENhcmliYmVhbg== IGFuY2hvcg== IGJ5dGU= IE9mdGVu IE96 IGNyYWZ0ZWQ= IGhpc3Rvcmlhbg== IFd1 IHRvd2Vycw== IENpdGl6ZW5z IGhlbG0= IGNyZWRlbnRpYWxz IHNpbmd1bGFy IEplc3Nl IHRhY2tsZXM= IGNvbnRlbXB0 IGFmb3Jl IFNoYWRvd3M= IG5pbA== IHVyZ2VudA== YXBwbGU= Ymxvb2Q= IHZvbg== IG9mZmxpbmU= IGJyZWF0aGU= IGp1bXBz IGlycmVsZXZhbnQ= b3hpYw== b21hbA== aW1wb3J0YW50 Smlt IGdsb3Zlcw== YXJtaW5n ZGVwdGg= IHRhbGVudHM= b29raWU= IFNC IHBhbG0= dWZmcw== ZXN0YQ== SUdI IGNhbm9u IFZlcml6b24= IFBsZQ== IGNvdXBsZWQ= dmVsdA== IGZ1bmRyYWlzaW5n IEdldHRpbmc= IERMQw== IG1hdGhlbWF0aWNhbA== IEhT IENhcmRpbmFscw== dGVsbGluZw== IHNwb25zb3Jz IM8= IEJ1bGxz b3B0aW9u IHByb3Bvc2U= IG1lbW9yYWJsZQ== IGVtYnJhY2Vk IGRlY2xpbmluZw== SGVhbHRo ZWRh IH07 IHNwYW0= bWlsZQ== IHBpdGNoZXI= IEVpZ2h0 IGNhcmluZw== dXRpYw== cm9sZQ== IGFpcmxpbmU= ZXJuYW5kZXo= IEF0aGxldA== IGNlcnRpZmljYXRpb24= dXhl cmlnZXI= IGVtcGly IHNlbnNhdGlvbg== IGRpc20= IGJvbHQ= IGV2b2x2ZQ== SG91c2U= IGNvbnN1bHRhdGlvbg== IER1dHk= IHRvdWNoZXM= IE5hdGhhbg== IGZhaW50 aGFk Iig= IENvbnN1bWVy IEV4dHJlbWU= IDEyNw== IEhlcm0= IFNhY3JhbWVudA== aXpvcGg= IGFueGlvdXM= dWxvdXNseQ== IHNvY2lhbGx5 IFVUQw== IHNvbHZpbmc= IExldHRlcg== SGlzdG9yeQ== ZWR1Yw== UHJpY2U= KSk7 IHJlbG9hZA== YW1pYw== IHBvcms= IGRpc2NvdXJzZQ== IHRvdXJuYW1lbnRz YWlybw== IEt1cg== IENvc3Rh IHZpb2xhdGluZw== IGludGVyZmVyZQ== IHJlY3JlYXRpb25hbA== dWZmbGU= IHNwZWVjaGVz IG5lZWRpbmc= IHJlbWVtYmVycw== IGNyZWRpdGVk bmlh Zm9jdXNlZA== YW1lcmE= IGJydQ== dW1icw== IEN1YmFu IHByZWNlZGluZw== IG5vbnNlbnNl YWNpYWw= IHNtYXJ0cGhvbmVz IFN0b3JpZXM= U3BvcnRz IEVtZXJnZW5jeQ== b3VuY2luZw== ZWZpbmVk IGJlcg== IGNvbnN1bHRpbmc= IG1hc3RlcnM= aGVhc3Rlcm4= LiJb IFJ1bm5pbmc= IHN1c2NlcHQ= IEZlbmc= QW1lcmljYQ== cHJpc2Vz c3RpdGlhbA== IFdlZWtseQ== IEdyZWF0ZXI= bW9kdWxlcw== aWZ0ZXI= R3JhcGhpY3M= dWxlcg== IHdob2xseQ== IHN1cHByZXNz IGNvbmNlYWxlZA== IGhhcHBpbHk= IGFjY2VwdHM= IEVuam95 IHJpdmVycw== IEV4Y2VwdA== MjI1 IE5IUw== IE1jQ29ubmVsbA== IHB1c3N5 ZmVycmVk dXRhYmxl IGF0dGFpbg== ID49 IGRlcG9zaXRz cm9waGlj IG5vdG9yaW91cw== IFNoYXc= aWxpdGF0aW9u IGVwaWRlbWlj YWxsaWM= IHNtYWxsZXN0 b3ZpY2g= IGFjY2Vzc29yaWVz cGVydGllcw== IHN1cnBsdXM= IE1lY2g= IGFtYmln IEltbWlncmF0aW9u IGNoaW0= ZXZhbA== IHByYWN0aWNpbmc= IE15c3Rlcnk= IGRvbWFpbnM= IFNpbGljb24= YXBwcw== IGtpbG9tZXRlcnM= ZWE= IFNtYXNo IHdhcnJhbnR5 IG5vc3Q= c2ls cmV2 Sm9u IER1Ymxpbg== IHRhc3Rlcw== IGJvdXQ= Z3JlYXQ= ZXJyb3I= IHN3aXRjaGVz IEJhcHQ= RE8= b2tp IHNvdXJjZWQ= cHJvZHU= IGF0dGFjaG1lbnQ= IElzc3Vl IFF1ZXN0aW9u Sm9pbg== IGZpdHRlZA== IHVubGF3ZnVs Xl4= ZXJlaw== IGF1dGhlbnRpY2F0aW9u IHN0b2xl IGFjY291bnRhYmlsaXR5 bGFiZWw= U2VhcmNo IGFsYmVpdA== YXRpY2Fu ZnVuZGVk IEFkZGluZw== IElR IHN1Ym1hcg== bGl0 YXF1ZQ== IExlYXJuaW5n IGludGVnZXI= TWFzdGVy IENocm9t IHByZW1pZXI= T3A= IExpdQ== IGJsZXNzZWQ= IEdsb2Jl IFJlc3BvbnNl IGxlZ2l0aW0= IE1lcmtlbA== IGRpc3Bvc2Fs wrQ= IGdhdWdl cGVhdA== IGluZHVjZWQ= IHF1ZXN0aW9uYWJsZQ== YXJ0aHk= IFZpdA== IEZlZWQ= VW50aWw= VXQ= d29ydGh5 Ulk= IEhlcmFsZA== IEhhbW1lcg== IG1lZGFs IFJpdmVycw== IEhhY2s= IGNsYXJpZnk= IHRyYWNrZWQ= IGF1dG9ub21vdXM= IHRlbmFudA== IFFhdGFy ZXJpZQ== IGdyaW0= IE1vbml0b3I= IHJlc2lzdGFudA== IFNwZWM= IFdlbGxz TkFT MTQ4 IG1pbmVycw== aW90aWNz IG1pc3Nlcw== MTE2 Z2lhbg== Z2l0 IEV5ZXM= cHJlcw== IGdyYWR1YXRlZA== IGFuZ2Vs IHN5bmNocm9u IGVmZmljaWVudGx5 IHRyYW5zbWl0dGVk SGFycnk= IGdsb2JhbGx5 RU5DRQ== IE1vbnRhbmE= cmFnZWQ= IFByZXZlbnRpb24= IHBpc3M= IExs IHNoZWxm IEJKUA== IFRlc3RhbWVudA== IExhdGU= aWtlcg== IEhhcHA= IEp1bGlhbg== aGFsbA== IHNwb250 IHNodXRkb3du IGluY29uc2lzdGVudA== IHN1YnNjcmliZXJz IHNrZWxldG9u IE5lYnJhc2th IGluc3BpcmU= IFZvaWQ= RmVlZA== IGFuZ2xlcw== IFNwcmluZ3M= IGJlbmNobWFyaw== IHZhY2NpbmVz aXpvcGhyZW4= c2V4dWFs dWZmZWQ= IHNoaW5l IEthdGg= IGdlc3R1cmU= aW5lYQ== IHJpcA== IG9wcHJlc3Npb24= IGNvbnNjaWVuY2U= YnQ= IEx1bQ== IGluY2lkZW5jZQ== IEZh d3I= IG1pbmVyYWw= IFNwdXJz YWxreQ== IHRodW5kZXI= IG9waW8= QmVpbmc= IFBhbG0= IHdhc3RlZA== IGxi aWFyaWVz IEluaXRpYXRpdmU= IGN1cnJpYw== IG1hcmtlcg== IE1jTA== IGV4dGVuc2lvbnM= IFB2 IEFybXM= IG9mZmVyaW5ncw== IGRlZmVuc2Vz IHZlbmRvcg== IGNvbnRyYWRpY3Q= IENvbGlu IHJlZGRpdA== IHBlcmlwaGVy MTIy IHNpbnM= RWRpdA== SUNU U29mdA== IFNoYWg= IGFkbWluaXN0cmF0b3I= IFRyaXA= IHBvcm5vZ3JhcGh5 IHR1aXRpb24= aW5lbmNl IFByb2dyZXNz IGNhdGFsb2c= IHN1aXRl IGhpa2U= IHJlcHJvZHVjdGl2ZQ== ZW5naW5l IGRyb3VnaHQ= IE5vYWg= IDIzMA== IGR1ZGU= IHJlbGF4ZWQ= IHBhcnRpdGlvbg== IHBhcnRpY2lwYW50 IHRlbGVzYw== IGZlYXM= IEZG b3duZXI= IHN3ZWVwaW5n IGxlbnNlcw== IG1hdGNodXA= IFJlcGw= b3VybmFscw== IGNyZWRpYmxl IGdyYW5kbW90aGVy IHRoZXJtYWw= IHN1YnNjcmliaW5n IGlkZW50aXRpZXM= Y29sbQ== VUNU IHJlbHVjdGFudA== dXNlcnM= IENvcnQ= IGFzc2lzdGVk T1NT QVRJT05T SVNI IHBoYXJtYWNldXRpY2Fs aWNhYmxl YWRpYW4= IFNvbmlj IEZ1cnk= IE1vbmc= QUg= IFBzeWNob2xvZ3k= IHBob3NwaA== IHRyZWF0cw== rZQ= IHN0ZWFkaWx5 IEhlbGxv IHJlbGF0ZXM= IGNsdWU= RXhwbA== YXV0aA== IHJldmlzaW9u IGVsZA== b3Npb24= IGJyb24= MTQ0 cmlrZXM= IG1pbmVz IGJsYW5rZXQ= IEZhaWw= ZWxlZA== IEltYWdpbmU= IFBsYW5uZWQ= YWlj UmVxdWVzdA== TWFk IEhvcnNl IEVhZ2xl IGNhcGFj MTU3 IGxpbmc= IE5pY2U= IFBhcmVudGhvb2Q= bWluc3Rlcg== b2dz ZW5zaXRpdmU= Tm90aGluZw== IGNhcm4= Rmlu IFBF IHJpZmxlcw== IExQ U2FuZA== IGd1aUFjdGl2ZQ== IHRvdXJpc3Q= Q05O IHVudmVpbGVk IHByZWRlY2Vzc29y fXs= dWJlcg== IG9mZnNob3Jl IG9wdGljYWw= IFJvdA== IFBlYXJs ZXRvbg== IHN0YXJlZA== IGZhcnRoZXI= YXRpbGl0eQ== Y29udGlu IEd5 IEZvc3Rlcg== IENvYw== cmllbnRz IGRlc2lnbmluZw== IEVjb25vbXk= T05H V29tZW4= IE5hbmN5 ZXJ2ZXI= IG1hc2N1bA== IGNhc3VhbHRpZXM= IDIyNQ== IFN1bGxpdmFu IENob2ljZQ== IGFzdGVy d3M= IGhvdGVscw== IGNvbnNpZGVyYXRpb25z IGNvdWNo IFN0cmlw IEdu IG1hbmlwdWxhdGU= bGllZA== IHN5bnRoZXRpYw== IGFzc2F1bHRlZA== IG9mZmVuc2Vz IERyYWtl IGltcGU= T2N0b2Jlcg== IEhlcml0YWdl aGw= IEJsYWly VW5saWtl IGdyaWVm IDQ1MA== IG9wdGVk IHJlc2lnbmF0aW9u aWxv IHZlcnNl IFRvbWI= IHVwdA== IGFpcmVk IEhvb2s= IE1MQg== IGFzc3VtZXM= b3V0ZWQ= IFZlcnM= IGluZmVyaW9y IGJ1bmRsZQ== IEROUw== b2dyYXBoZXI= IG11bHRpcA== IFNvdWxz IGlsbHVzdHJhdGVk IHRhY3RpYw== IGRyZXNzaW5n IGR1bw== Q29uZg== IHJlbGVudA== IGNhbnQ= IHNjYXJjZQ== IGNhbmR5 IENG IGFmZmlsaWF0ZWQ= IHNwcmludA== eWxhbg== IEdhcmNpYQ== IGp1bms= UHJpbnQ= ZXhlYw== Q3JpdA== IHBvcnRyYWl0 aXJpZXM= IE9GRg== IGRpc3B1dGVz V1I= TG92ZQ== 44GE IFJleW4= IGhpcHA= b3BhdGg= IGZsb29ycw== IEZlZWw= IHdvcnJpZXM= IHNldHRsZW1lbnRz IFBvcw== IG1vc3F1ZQ== IGZpbmFscw== IGNydXNoZWQ= IFByb2JhYmx5 IEJvdA== IE1hbnM= IFBlcmlvZA== IHNvdmVyZWlnbnR5 IHNlbGxlcg== IGFwb3N0 IGFtYXRldXI= IGRvcm0= IGNvbnN1bWluZw== IGFybW91cg== IFJvb3Nl IGludGVuc2l2ZQ== IGVsaW1pbmF0aW5n IFN1bm5p IEFsZXBwbw== amlu IGFkdmlzZQ== cGFs IEhhbG8= IGRlc2NlbnQ= IHNpbXBsZXI= IGJvb3Ro U1RS TGF0ZXI= IENhdmU= PT09 IG1vbA== IGZpc3Q= IHNob3RndW4= c3VwcA== IHJvYmJlcnk= RWZmZWN0 IG9ic2N1cmU= IFByb2Zlc3Npb25hbA== IGVtYmFzc3k= IG1pbGl0YW50 IGluY2FyY2Vy IGdlbmVyYXRlcw== IGxhdW5jaGVz IGFkbWluaXN0cmF0b3Jz IHNoYWZ0 IGNpcmN1bGFy IGZyZXNobWFu IFdlcw== IEpvZWw= IERyZXc= IER1bmNhbg== IEFwcGFyZW50bHk= c2lnaHQ= IEludGVybmFs IEluZGl2aWR1YWw= IEZF IGJvcmU= IE10 IGJyb2FkbHk= IE9wdGlvbnM= b3VudGFpbg== aXBlcw== IFZpZGVvcw== MjA0 IGhpbGxz IHNpbXVsYXRpb24= IGRpc2FwcG9pbnRtZW50 aXRhbg== IExhYm9yYXRvcnk= IHVwd2FyZA== IGJvdW5kYXJ5 IGRhcmtlcg== aGFydA== IGRvbWluYW5jZQ== Q29uZw== IE9yYWNsZQ== IExvcmRz IHNjaG9sYXJzaGlw IFZpbmNlbnQ= ZWRl IFJhaA== IGVuY291cmFnZXM= cm92 IHF1bw== IHByZW1pc2U= IENyaXNpcw== IEhvbG9jYXVzdA== IHJoeXRobQ== IG1ldHJpYw== Y2x1Yg== IHRyYW5zcG9ydGVk IG5vZA== IFBpc3Q= IGFuY2VzdG9ycw== IEZyZWRlcg== dGh1bWJuYWlscw== IENF T05E UGhpbA== dmVuZ2U= IFByb2R1Y3Rz Y2FzdGxl IHF1YWxpZnlpbmc= IEthcmVu VkVSVElTRU1FTlQ= IG1pZ2h0eQ== IGV4cGxhbmF0aW9ucw== IGZpeGluZw== RGk= IGRlY2xhcmluZw== IGFub255bWl0eQ== IGp1dmVu IE5vcmQ= IERvb20= IEFjdHVhbGx5 T2s= cGhpcw== IERlc2VydA== IDExNg== SUs= IEZN IGluY29tZXM= VkVM b2tlcnM= IHBlY3Vs IGxpZ2h0d2VpZ2h0 Z3Vl IGFjY2VudA== IGluY3JlbWVudA== IENoYW4= IGNvbXBsYWluaW5n IEJhZ2hk IG1pZGZpZWxkZXI= IG92ZXJoYXVs UHJvY2Vzcw== IEhvbGxvdw== IFRpdGFucw== U21hbGw= bWFudWVs IFVuaXR5 IEV2ZW50cw== U3R5 IGRpc3Byb3BvcnRpb24= bmVzdHk= ZW5lcw== IENvZA== IGRlbW9uc3RyYXRpb25z IENyaW1zb24= IE9I IGVucm9sbGVk IGNlbA== IEJyZXR0 IGFpZGU= IGhlZWxz IGJyb2FkYmFuZA== IG1hcmtpbmc= IHdpemFyZA== IE5K IENoaWVmcw== IGluZ3JlZGllbnQ= IGR1Zw== IFNodXQ= dXJjaGFzZQ== ZW5kb3I= IGZhcm1lcg== IEdvbGRtYW4= MTI5 MTU1 T3JkZXI= IGxpb24= aWFibHk= IHN0YWlu YXJyYXk= aWxpdGFyeQ== IEZBUQ== IGV4cGxvZGVk IE1jQ2FydGh5 IFR3ZWV0 IEdyZWVucw== ZWtpbmc= bG4= ZW5zZW4= IG1vdG9yY3ljbGU= IHBhcnRpY2xl IGNob2xlc3Rlcm9s QnJvbg== IHN0YWly IG94aWQ= IGRlc2lyYWJsZQ== aWJsZXM= IHRoZW9y Zm9yY2luZw== IHByb21vdGlvbmFs b3Zv Ym9vdA== IEJvbnVz cmF3bGluZw== IHNob3J0YWdl IFBzeQ== IHJlY3J1aXRlZA== IGluZmFudHM= IHRlc3Rvc3Rlcm9uZQ== IGRlZHVjdA== IGRpc3RpbmN0aXZl IGZpcm13YXJl YnVpbHQ= MTQ1 IGV4cGxvcmVk IGZhY3Rpb25z IHZpZGU= IHRhdHRvbw== IGZpbmFuY2lhbGx5 IGZhdGlndWU= IHByb2NlZWRpbmc= Y29uc3RpdHV0aW9uYWw= IG1pc2Vy IGNoYWlycw== Z2dpbmc= aXBwbGU= IGRlbnQ= IGRpc3JlZw== 55Q= c3RhbnQ= bGxv YnBz YWtlbmluZw== IGFibm9ybWFs IEVSQQ== 5aOr IEhCTw== IE1BUg== IGNvbmNlc3M= IHNlcnZhbnQ= IGFzcGly bGF2 IFBhbmVs YW1v IHByZWNpcA== IHJlY29yZGluZ3M= IHByb2NlZWRlZA== IGNvbG9ueQ== IFRhbmc= YWJsbw== IHN0cmlwcGVk TGVmdA== dG9v IHBvdGF0b2Vz IGZpbmVzdA== JSku IGNyYXA= IFphY2g= YWJhc2Vz IEdvdGg= IGJpbGxpb25haXJl d29sZg== IHNhbmN0aW9u U0s= IGxvZ2dlZA== UG8= ZXllZA== dW5hbA== IGNyaWNrZXQ= IGFybWllcw== IHVuY292ZXJlZA== Q2xvdWQ= w7Nu IHJlYm91bmRz IG1lcw== T3Blcg== UGFj IG5hdGlvbmFsbHk= IGluc2VydGVk cGljdA== IGdvdmVybmFuY2U= 0Lg= IHByaXZpbGVnZXM= R0VU IGZhdm9yaXRlcw== aW1pdHk= IGxvdmVy dGhlbQ== ZW1wbA== IGdvcmdlb3Vz QW5u IHNsaXBwZWQ= IHZldG8= Qm9i IHNsaW0= dWNj IEZhbWU= dWRkZW5seQ== IGRlbmllcw== IE1hdXI= IGRpc3RhbmNlcw== IHdhbm5h dGFy IFNFUg== IOKI IGxlbW9u YXRoZXRpYw== IGxpdGVyYWw= IGRpc3Rpbmd1aXNoZWQ= IGFuc3dlcmluZw== R0k= IHJlbGlnaW9ucw== IFBoaWxvcw== IExheQ== IGNvbXBvcw== aXJlbWVudHM= IEtvcw== aW5leg== cm9sbGluZw== IHlvdW5nZXN0 YW5kaXNl IEJvcm4= IGFsdGFy YW1pbmE= IEJvb3Q= dm9j IGRpZ2dpbmc= IHByZXNzdXJlcw== IGxlbg== MjY0 IGFzc2Fzc2luYXRpb24= IEJpcm1pbmdoYW0= IE15dGg= IHNvdmVyZWlnbg== IEFydGlzdA== IFBob3RvZ3JhcGg= IGRlcGljdGVk IGRpc3BlbnM= b3J0aHk= IGFtYnVs aW50ZWc= IENlbGU= IFRpYmV0 IGhpZXJhcmNoeQ== IGN1 IHByZXNlYXNvbg== IFBldGVyc29u IGNvbG91cnM= IHdvcnJ5aW5n IGJhY2tlcnM= IFBhbG1lcg== IM68 IGNvbnRyaWJ1dG9y IGhlYXJpbmdz IHVyaW5l INk= b3VyZ2VvaXM= U2ltaWxhcg== IFppbW1lcg== c29tZXRoaW5n IFVTQw== IHN0cmVuZ3Rocw== IEZJ IGxvZ2dpbmc= QXNrZWQ= IFRoYWk= aW5xdQ== IFdhbHQ= IGNyZXdz aXRpc20= MzAx IHNoYXJwbHk= dW1lZA== IHJlZGlyZWN0 cmF0b3Jz SW5m IFdlYXBvbnM= IHRlYXNw MTk5OQ== TGl2ZQ== IEVzcGVjaWFsbHk= IFN0ZXI= IFZldGVyYW5z IGludHJv b3RoZXJhcHk= IG1hbHdhcmU= IGJyZWVkaW5n IG1vbGVjdWxhcg== IFJvdXRl IENvbW1lbnQ= b2NoZW0= IGFpbg== U2Vhc29u IGxpbmViYWNrZXI= xKs= IEVjb25vbWljcw== ZXNhcg== IExpdmVz IEVtbWE= IGtpbg== IFRlcnJpdA== IHBsYW50ZWQ= b3Rvbg== IEJ1dHRlcg== IFNwb25z UEVS IGR1bmdlb24= IHN5bWJvbGlj IGZpbG1lZA== IGRpZXRz IGNvbmNsdWRlcw== IGNlcnRhaW50eQ== IEZvcm1hdA== IHN0cmFuZ2Vycw== Zm9ybWF0 IFBoYXNl IGNvcGllZA== IG1ldHJlcw== bGRh IFVzZXJz IGRlbGliZXJhdGU= IHdhc2hlZA== IExhbmNl aW1hdGlvbg== IGltcHJvcGVy IEdlbmVzaXM= aWNrcg== IEt1c2g= IHJlYWxpc2U= IGVtYmFycmFzc2luZw== YWxraW5n YnVja3M= IHZlcmlmaWVk IG91dGxpbmU= eWVhcnM= IEluY29tZQ== MjAy IHpvbWJpZXM= RmluYWw= IE1pbGxlbm4= IG1vZGlmaWNhdGlvbnM= IFZpc2lvbg== IE1vc2Vz dmVyYg== aXRlcnJhbmVhbg== IEpldA== IG5hdmFs IEFnZw== IHVybA== IHZpY3Rvcmllcw== IG5vbmV0aGVsZXNz IGluanVzdA== IEZhY3Q= 55o= IGluc3VmZmljaWVudA== cmV2aWV3 ZmFjZWJvb2s= IG5lZ290aWF0aW5n IGd1YXJhbnRlZXM= aW1lbg== dXRlbmJlcmc= IGdhbWJsaW5n IGNvbmdy TG9hZGluZw== IG5ldmVydGhlbGVzcw== IHByZXNpZGVudHM= IEluZHVzdHJpYWw= IDExOA== IHBvdXJlZA== IFRvcnk= IDE3NQ== IDo9 U2NvdHQ= YW5nZXJlZA== VG9r IG9yZ2FuaXplcnM= TWF0 IEdyb3d0aA== IGFkdWw= IGVuc3VyZXM= IDExNw== 6b6N5Q== IG1hc3NhY3Jl IGdyYWRlcw== YmVmb3Jl QURWRVJUSVNFTUVOVA== IFNsb3c= IE1NQQ== 4oCUIg== IFZhdGljYW4= UWFlZGE= IG93ZQ== NjY2Ng== IFNvcnJ5 IEdyYXNz IGJhY2tncm91bmRz IGV4aGF1c3RlZA== IGNsYW4= IGNvbXByb21pc2Vk IEVsZg== IElzYWFj ZW5zb24= SW52ZXN0 SUZB IGludGVycnVwdGVk 44OJ44Op IHR3aXN0ZWQ= IERyYWdvbnM= TW9kZQ== IEtyZW1saW4= IGZlcnRpbA== aGVyZXM= cGhhbg== IE5vZGU= ZmVk IE9yYw== IHVud2lsbGluZw== Q2VudA== IHByaW9yaXQ= IGdyYWR1YXRlcw== IHN1YmplY3RpdmU= IGlzc3Vpbmc= IEx0 IHZpZXdlcg== IHdva2U= VGh1cw== YnJvb2s= IGRlcHJlc3NlZA== IGJyYWNrZXQ= IEdvcg== IEZpZ2h0aW5n IHN0cmlrZXI= UmVwb3J0 IFBvcnR1Z2Fs IG5lbw== d2Vk MTk5 IGZsZWVpbmc= c2hhZG93 aWRlbnRpZmllZA== VVNF U3RlYW0= IHN0cmV0Y2hlZA== IHJldmVsYXRpb25z YXJ0ZWQ= IER3 IGFsaWdubWVudA== ZXN0b24= IEphcmVk U2Vw IGJsb2dz dXBkYXRl Z29t cmlzaw== IGNsYXNo IEhvdXI= IHJ1bnRpbWU= IHVud2FudGVk IHNjYW0= IHJhY2s= IGVubGlnaHQ= b25lc3Q= IEZlcnI= IGNvbnZpY3Rpb25z IHBpYW5v IGNpcmN1bGF0aW9u IFdlbGNvbWU= IGJhY2tsYXNo IFdhZGU= IHJlY2VpdmVycw== b3RpdmU= SmVmZg== IG5ldHdvcmtpbmc= IFByZXA= IEV4cGxvcmVy IGxlY3R1cmU= IHVwbG9hZGVk IE1lYXQ= QkxF IE5hemlz IFN5bmQ= c3R1ZA== cm9vdHM= cmlhbnM= IHBvcnRyYXllZA== ID8/ IEJ1ZGRoYQ== c3Vu Um9iZXJ0 IENvbXBsZXg= IG92ZXJzZWU= IHN0ZWFsdGg= VGl0bGU= IEpvYnM= IEt1bQ== IGFwcHJlY2lhdGlvbg== IE1PRA== IGJhc2ljcw== IGNsaXBz IG51cnNpbmc= IHByb3Bvc2l0aW9u IHJlYWxpc2Vk IE5ZQw== IGFsbG9jYXRlZA== cml1bQ== YXJhbg== IFByb2R1Y3Rpb24= IFZvdGU= IHNtdWdn IGh1bnRlcg== YXplcg== IENoYW5nZXM= IGZsdWN0 eW9u QXJyYXk= IGtpdHM= V2F0ZXI= IHVuY29tbW9u IHJlc3Rpbmc= ZWxscw== d291bGQ= IHB1cnN1ZWQ= IGFzc2VydGlvbg== b21ldG93bg== IE1vc3Vs IFBsYXRmb3Jt aW9sZXQ= IHNoYXJlaG9sZGVycw== IHRyYWlscw== UGF5 IEVuZm9yY2VtZW50 dHlwZXM= IEFub255bW91cw== IHNhdGlzZnlpbmc= aWxvZ3k= ICgn d2F2ZQ== Y2l0eQ== U3RldmU= IGNvbmZyb250YXRpb24= IEVsZA== Q2FwdA== YWhhbg== aHRt IEN0cmw= T05T MjMw aWZh aG9sZGluZw== IGRlbGljYXRl IGphdw== IEdvaW5n b3J1bQ== U2Fs IGR1bGw= IEJldGg= IHByaXNvbnM= IGVnbw== IEVsc2E= YXZvcml0ZQ== IEdhbmc= IE51Y2xlYXI= IHNwaWRlcg== YXRzdQ== IHNhbXBsaW5n IGFic29yYmVk IFBoYXJt aWV0aA== IGJ1Y2tldA== IFJlY29tbQ== T0Y= IEZhY3Rvcnk= QU5DRQ== IGJhY3Rlcg== SGFz IE9ic2Vydg== MTIx IHByZW1pZXJl RGV2ZWxvcA== IGN1cnJlbmNpZXM= Q2FzdA== IGFjY29tcGFueWluZw== IE5hc2h2aWxsZQ== IGZhdHR5 IEJyZW5k IGxvY2tz IGNlbnRlcmVk IFVU YXVnaHM= b3JpZQ== IEFmZm9yZGFibGU= dmFuY2U= REw= ZW1ldA== IHRocm9uZQ== IEJsdWV0b290aA== IG5hbWluZw== aWZ0cw== QURF IGNvcnJlY3RlZA== IHByb21wdGx5 IFNUUg== IGdlbm9tZQ== IGNvcGU= IHZhbGxleQ== IHJvdW5kZWQ= IEtlbmQ= YWxpb24= cGVycw== IHRvdXJpc20= IHN0YXJr dmw= IGJsb3dpbmc= IFNjaGVkdWxl c3Rk IHVuaGFwcHk= IGxpdGlnYXRpb24= Y2VkZXM= IGFuZHJvaWQ= IGludGVncmFs ZXJlcnM= dWRlZA== dGF4 IHJlaXRlcg== IE1vdG9ycw== b2NpYXRlZA== IHdvbmRlcnM= IEFwb3N0 dWNraW5n IFJvb3NldmVsdA== ZnJhbQ== IHlpZWxkcw== IGNvbnN0aXR1dGVz YXdr SW50ZXJlc3Q= IGludGVyaW0= IGJyZWFrdGhyb3VnaA== IENoZXI= IHByb3NlYw== IERq IE1U UmVzcA== IFBU IHNwZXJt ZWRpdA== QlQ= TGludXg= Y291bnRyeQ== bGVhZ3Vl IGRpY2s= IG9jdA== IGluc2VydGluZw== IHNjcmE= IEJyZXdpbmc= IDE5NjY= IHJ1bm5lcnM= IHBsdW4= aWR5 IERpYW4= IGR5c2Z1bmN0aW9u IGV4Y2x1c2lvbg== IGRpc2dy IGluY29ycG9yYXRl IHJlY29uYw== IG5vbWluYXRlZA== IEFyY2hlcg== ZHJhdw== YWNoZWxvcg== IHdyaXRpbmdz IHNoYWxsb3c= IGhhc3Q= IEJNVw== IFJT IHRoaWdo IDE5NjM= IGxhbWI= IGZhdm9yZWQ= YWdsZQ== IGNvb2xlcg== IEhvdXJz IEdV IE9yaWdpbg== IGdsaW1wc2U= LS0tLS0tLS0tLS0tLS0tLS0tLS0= TGlt IGNoZWVr IGplYWxvdXM= LSc= IGhhcm5lc3M= IFBvaXNvbg== IGRpc2FiaWxpdGllcw== bmVhcG9saXM= IG91dGxvb2s= IG5vdGlmeQ== IEluZGlhbmFwb2xpcw== IGFicnVwdA== bnNpYw== IGVuY3J5cHRlZA== IGZvcmZl cmVhdGg= IHJhYmI= IGZvdW5kYXRpb25z IGNvbXBsaW1lbnQ= IEludGVydmlldw== IFN3ZQ== IGFkb2xlc2M= IG1vbml0b3Jz IFNhY3JhbWVudG8= IHRpbWVseQ== IGNvbnRlbXBs IHBvc2l0aW9uZWQ= IHBvc3RlcnM= cGhpZXM= aW92YXNjdWxhcg== dm9pZA== IEZpZnRo IGludmVzdGlnYXRpdmU= T1VO IGludGVncmF0ZQ== IElOQw== aXNoYQ== aWJsaW5ncw== IFJlcXVlc3Q= IFJvZHJpZ3Vleg== IHNsaWRlcw== IERY IGZlbWluaXNt IGRhdGFz IGJlbmQ= aXJ1cw== IE5pZ2VyaWE= Rm94 Q2hhbmdl IGFpcnBsYW5l IExhZGVu IHB1YmxpY2l0eQ== aXh0eQ== IGNvbW1pdG1lbnRz IGFnZ3JlZ2F0ZQ== IGRpc3BsYXlpbmc= IEFycm93 IDEyMg== IHJlc3BlY3Rz YW5kcm9pZA== c2l4 IFNoYQ== IHJlc3RvcmF0aW9u KVw= V1M= b3lz IGlsbHVzdHJhdGU= d2l0aG91dA== MTI2 IOKUgg== IHBpY2t1cA== bmVscw== IC4uLi4= Zm9vZA== IEZlbg== KT8= IHBoZW5vbWVuYQ== IGNvbXBhbmlvbnM= IFdyaXRl IHNwaWxs IGJyaWRnZXM= IFVwZGF0ZWQ= IEZv IGluc2VjdHM= QVNISU5HVE9O IHNjYXJl aWx0cg== IFpoYW5n IHNldmVyaXR5 IGluZHVs MTQ5 IENvZmZlZQ== IG5vcm1z IHB1bHNl IEZU IGhvcnJpZmlj IERlc3Ryb3k= IEpTT04= IG9saXZl IGRpc2N1c3Nlcw== UmVzdA== RWxlY3Q= IFdpbm4= IFN1cnZpdg== IEhhaXQ= U3VyZQ== b3BlZA== IHJvb3RlZA== IFNrZQ== IEJyb256ZQ== IGxvbA== RGVmYXVsdA== IGNvbW1vZGl0eQ== cmVkaXRlZA== IGxpYmVydGFyaWFu IGZvcmJpZGRlbg== IGdyYW4= 4Kg= IGxhZw== ZW56 ZHJpdmU= IG1hdGhlbWF0aWNz IHdpcmVz IGNyaXRpY2FsbHk= IGNhcmJvaHlk IENoYW5jZWxsb3I= IEVkZGll IGJhbm5pbmc= IEZyaQ== IGNvbXBsaWNhdGlvbnM= ZXRyaWM= IEJhbmdsYWRlc2g= IGJhbmR3aWR0aA== U3RvcA== IE9yaWdpbmFsbHk= IGhhbGZ3YXk= eW5hc3R5 c2hpbmU= IHRhbGVz cml0aWVz YXZpZXI= IHNwaW5uaW5n IFdITw== IG5laWdoYm91cmhvb2Q= YmFjaA== IGNvbW1lcmNl IFNsZQ== QlU= IGVudHJlcHJlbmV1cg== IHBlY3VsaWFy IENvbW1lbnRz ZnJl MzIw SUNT IGltYWdlcnk= IENhbm9u IEVsZWN0cm9uaWM= c2hvcnQ= KCg= RGln IGNvbW1lbQ== dWNlZA== IGluY2xpbmVk IFN1bW1vbg== IGNsaWZm IE1lZGl0ZXJyYW5lYW4= IHBvZXRyeQ== IHByb3NwZXJpdHk= IFJlY2U= IHBpbGxz bWVtYmVy IGZpbmFsZQ== dW5j IEdpZw== 5L0= IGxvZA== IGJhY2t3YXJk LSs= IEZvcndhcmQ= IHRocmk= c3VyZQ== IHNvYXA= IEZY UkVT IFNleHVhbA== b3Vsb3M= IGZvb2xpc2g= IHJpZ2h0ZW91cw== IGNvZmY= dGVycm9yaXNt dXN0YWlu b3Rlcg== IGFidXNlcw== bmV4dA== IGFidXNpdmU= IHRoZXJlYWZ0ZXI= IHByb2hpYml0aW9u IFNVUA== IGRpcA== IHJpcHBlZA== IGluaGVyaXRlZA== IGJhdHM= c3RydQ== R1Q= IGZsYXdlZA== cGhhYmV0 IGZvZw== ZG9vcnM= IGltYWdpbmc= IGRpZ2l0cw== IEh1bmdhcnk= IGFycm9n IHRlYWNoaW5ncw== IHByb3RvY29scw== IEJhbmtz 4Lg= cG91bmQ= IEN1cnQ= LiIp Li8= IGV4ZW1wdGlvbg== ZW5kaXg= IE11bGw= IGltcHJvdmVz IEdhbWVy ZGltZW5zaW9uYWw= SWNvbg== IE1hcmdhcmV0 U3RhdHVz ZGF0ZXM= IGludGVuZHM= IGRlcGljdA== IHBhcmtlZA== Sm9l IE1hcmluZXM= Y2hub2xvZ3k= ISku IGp1ZGdlZA== IHdlaWdodHM= UmF5 IGFwYXJ0bWVudHM= aGVzdGVy IHJlaW5mb3JjZQ== IG9mZmVuZGVy b2NjdXA= IHNvcmU= ZXB0 IFBIUA== IEJyb3c= IGF1dGhvcml6YXRpb24= IFJpc2s= IERlbGF3YXJl IFFV IG5vdGlmaWNhdGlvbnM= IHN1bmxpZ2h0 IGV4Y2x1ZGU= ZGF0 IG1lc2g= IFN1ZGFu IGJlbG9uZ2Vk IHN1YndheQ== IG5vb24= IEludGVyaW9y b2xpY3M= IExha2Vycw== IGNvZGluZw== RGlzY2xhaW1lcg== Q2FsaWY= T2xk IGRpc2w= Pz8/Pz8= IGNvbmZpcm1z IHJlY3J1aXRtZW50 IGhvbWljaWRl Q29uc2lkZXI= IEplZmZyZXk= ZnR5 fTs= IG9iamVjdGlvbg== ZG9pbmc= IExlbw== V2FudA== IGdsb3c= IENsYXJrZQ== IE5vcm1hbg== IHZlcmlmaWNhdGlvbg== IHBhY2tldA== IEZvcm11bGE= IHBsYWc= ZXN2aWxsZQ== IHNob3V0aW5n IG92 IFJFQw== IEJ1Yg== IG5pbnRo IGVuZXJn IHZhbGlkaXR5 IHVwcw== amFjaw== IG5laWdoYm9yaW5n IE5lYw== ZXdvcmtz IEhhYg== YXJleg== IHNwaW5l IGV2ZW50dWFs IExlYWRlcnM= IENhcm4= IHByb2JhdGlvbg== IHJvbWFuY2U= bXNn IE1lY2hhbmljYWw= RVJZ Um9jaw== IHBhcnRpc2Fu Tm9kZQ== YXNzZXRz bWluZW50 IGZvcmVpZ25lcnM= IHRlc3RpZnk= IFVzdWFsbHk= bG9yZHM= IEdyZW4= IFBvd2VsbA== QklM IHNy IGFkZGljdA== IHNoZWxscw== IHNpZ2g= IFlhbGU= dGVybml0eQ== IDc1MA== RVU= IFJpZmxl IHBhdHJvbg== ZW1h IEJhbm5vbg== YW5pdHk= IHRyb3BpY2Fs IFZJSQ== Y3Jvc3M= RXZlcnl0aGluZw== IElTTw== IGh1bWJsZQ== YXNzaW5n IEZJRw== IHVwZGF0aW5n eXNvbg== IGNhbGNpdW0= IGNvbXBldGVudA== IHN0ZWVyaW5n UHJvdA== IFNZ IEZpbmFscw== IFJ1Zw== MTU5 MTM3 IEdvbGY= IDEyNg== IGFjY29tbW9kYXRpb24= IEh1Z2hlcw== IGFlc3RoZXRpYw== YXJ0aXNhbg== IFR3aWxpZ2h0 IHByaW5jZQ== IEFncmljdWx0dXJl IERpc2Nv IHByZWNlZGVudA== IHR5cGluZw== YXV0aG9yaXplZA== T3B0aW9u IEF1Yg== bGlzaGVz YWNodA== bWFn UGV0ZXI= IFVGTw== bW9udG9u IExpdGg= IGFyb20= IHNlY3VyaW5n IGNvbmZpbmVk cHJpdmF0ZQ== IHN3b3Jkcw== IG1hcmtlcnM= IG1ldGFib2xpYw== c2VsZWN0 IEN1cnNl IE90 Z3Jlc3NpdmU= IGluY3VtYg== IFNhZ2E= IHByaWNlZA== IGNsZWFyYW5jZQ== Q29udGVudA== IGRyaWxsaW5n IG5vdGljZXM= IGJvdXJnZW9pcw== IHZlc3Q= IGNvb2tpZQ== IEd1YXJkaWFucw== cnlz aW55bA== IDEyNA== IHBsYXVzaWJsZQ== b25naA== IE9kaW4= IGNvbmNlcHRpb24= IFl1aw== IEJhZ2hkYWQ= IEZsYWc= QXVzdHJhbA== IElCTQ== IGludGVybmF0aW9uYWxseQ== IFdpa2lMZWFrcw== SUVE IGN5bg== IGNob29zZXM= IFBpbGw= IGNvbWJpbmluZw== IHJhZGk= IE1vaGFtbWVk ZGVmZW5zZQ== YXRjaGluZw== U3ViamVjdA== aWNpZW5jeQ== RnJhbWU= IHsi IGNoZXNz IHRpbWVy MTkw IHRpbg== IG9yZGluYW5jZQ== ZW1ldGVyeQ== IGFjY3VzaW5n IG5vdGljZWFibGU= IGNlbnRyZXM= IGxpZA== IE1pbGxz aW1ndXI= IHpvb20= ZXJnaWM= IGNvbXByZXNzaW9u cHJpbQ== ZmluZA== IHN1cmc= IHBhbmQ= IEtlZQ== IENoYWQ= Y2VsbGVuY2U= b3lsZQ== IHNvY2lhbGlzbQ== IFRyYXZpcw== IE1Ieg== IGd1aWxk QUxMWQ== IFN1YnNjcmliZQ== IFJlbGF0ZWQ= IG9jY3VycmVuY2U= aXRjaGluZw== IGZpY3Rpb25hbA== IGNydXNo IEVB Y29k bWl4 IFRyaXBsZQ== IHJldHJpZXZl IHN0aW11bHVz IHBzeWNoaWF0 IERvb3I= IGhvbW9zZXh1YWxpdHk= IGVsZW1lbnRhcnk= IGNlbGx1bGFy aWRpYW4= IExhdW4= IGludHJpZ3Vpbmc= IGZvYW0= IEJhc3M= aWRp aXRzdQ== IGFzc3VyZQ== IGNvbmdyYXQ= IGJ1c2luZXNzbWFu IEJvb3N0 Y2xvc2U= IGxpZWQ= IHNjaWVuY2Vz IE9tZWdh IEdyYXBoaWNz IDw9 c3Bva2Vu IGNvbm5lY3Rpdml0eQ== U2F0dXJkYXk= IEF2ZW5nZXJz IHRvZ2dsZQ== IGFua2xl IG5hdGlvbmFsaXN0 bW9kZWw= IFBvb2w= b3Bob2JpYQ== VmFy IE1vbnM= YXRvcmllcw== IGFnZ3Jlc3NpdmVseQ== Q2xlYXI= Rm9yZ2U= YWN0ZXJz IGhlZGdl IHBpcGVz IGJsdW50 IHNx IHJlbW90ZWx5 V2Vk YXNlcnM= IHJlZnJpZ2Vy IHRpbGVz IHJlc2N1ZWQ= IGNvbXByaXNlZA== aW5za3k= IG1hbmlm YXZhbmF1Z2g= IHByb2xpZmVy IGFsaWduZWQ= eG1s IHRyaXY= IGNvb3JkaW5hdGlvbg== IFBFUg== IFF1b3Rl MTM0 YmY= IFNhdw== IHRlcm1pbmF0aW9u IDE5MA== IGFkZGl0aW9ucw== IHRyaW8= IHByb2plY3Rpb25z IHBvc2l0aXZlbHk= IGluY2x1c2l2ZQ== IG1lbWJy MTk5MA== b2xkZXI= IHByYWN0aWNlZA== aW5rbGU= QXJjaA== IHN0YXJ0ZXJz YXJpdXM= IGludGVybWVkaWF0ZQ== IEJlbmVm IEtpbGxlcg== IGludGVydmVudGlvbnM= IEtpbA== IEZseWluZw== SW52 IHByZW1hdHVyZQ== IHBzeWNoaWF0cmlj IGluZGll IGNvbGxhcg== IFJhaW5ib3c= YWZp IGRpc3J1cHRpb24= IEZPWA== Y2FzdGluZw== IG1pc2RlbQ== Y3Jv IHdpcGU= YXJkb24= IGJhc3Q= IFRvbW15 IFJlcHJlc2VudGF0aXZl IGJlbGx5 IFBP IEJyZWl0YmFydA== MTMy IG1lc3NhZ2luZw== U2hvdWxk UmVmZXJlbmNlcw== IEdSRQ== aXN0aWNhbA== TFA= IENhdg== IENyYXp5 IGludHVpdGl2ZQ== a2VlcGluZw== IE1vc3M= IGRpc2NvbnRpbg== IE1vZHVsZQ== IHVucmVsYXRlZA== IFByYWN0aWNl IFRyYW5zcG9ydA== IHN0YXRpc3RpY2FsbHk= b3Jucw== IHNpemVk cHU= IGNhZg== IFdvcmxkcw== IFJvZGdlcnM= IEx1bg== IENvbWlj bGl2aW5n IGNhcmVk IGNsaW1iZWQ= KXs= IGNvbnNpc3RlZA== IG1lZGlldmFs Zm9saw== IGhhY2tlZA== IGRpcmU= IEhlcm1pb25l IHRlbmRlZA== Y2VhbnM= RGFuaWVs d2VudA== IGxlZ2lzbGF0b3Jz IHJlZGVz Z2FtZXM= IGdu YW1pbGlhcg== ICsr Z2d5 dGhyZWF0 IG1hZ25ldA== IHBlcmNlaXZl IHppcA== IGluZGljdG1lbnQ= IGNyaXRpcXVl Z2FyZA== IFNhZmU= IENyZWFt IGFkdmVudA== b2Jh IHZvd2Vk b3VzYW5kcw== IHNraQ== IGFib3J0aW9ucw== dWFydA== IHN0dW5uZWQ= IGFkdmFuY2luZw== IGxhY2tlZA== IFwi IHNjaGl6b3BocmVu IGVsZWdhbnQ= IGNvbmZlcmVuY2Vz IGNhbmNlbGVk IEh1ZHNvbg== IEhvcGVmdWxseQ== IHRydW1w IGZyZXF1ZW5jaWVz IG1ldGVvcg== IEp1bmlvcg== IEZsZWV0 IE1hbGNvbG0= IFRvb2xz IC4uLi4uLi4u IGhvYmJ5 IEV1cm9wZWFucw== IDE1MDA= IEludG8= IHN3YXk= IEFwcHJv IENvbXBs Q29tbXVuaXR5 IHRpZGU= IFN1bW1pdA== 5Ls= IGludGVydmFscw== IEV0aGVy IGhhYml0YXQ= IFN0ZXZlbnM= bGlzaGluZw== IERvbWFpbg== IHRyaWdnZXJz IGNoYXNpbmc= IGNoYXJt IEZsb3dlcg== aXRvcmVk IGJsZXNzaW5n IHRleHR1cmVz Rml2ZQ== IGxpcXVvcg== UlA= RklO IDE5NjI= Q0FS VW5rbm93bg== IHJlc2ls IExpbHk= IGFidW5kYW5jZQ== IHByZWRpY3RhYmxl cmFy IGJ1bGxzaGl0 bGVlbg== Y2hldA== TW9y TXVjaA== 5Lk= IGVtcGhhc2l6ZWQ= IGNydXN0 IHByaW1pdGl2ZQ== IGVuam95YWJsZQ== IFBpY3R1cmVz IHRlYW1tYXRl cGxlcg== IFRvbA== IEthbmU= IHN1bW1vbmVk dGh5 cmFtYQ== IEhvbmRh IHJlYWxpemluZw== IHF1aWNrZXI= IGNvbmNlbnRyYXRl Y2xlYXI= IDIxMA== IEVyZG9nYW4= YXJpcw== IHJlc3BvbmRz IEJJ IGVsaWdpYmlsaXR5 IHB1c2hlcw== IElkYWhv IGFnZ3Jhdg== IHJ1aW5z dXJhdGlvbnM= IGJhbnM= IGFuYXQ= c2hhcmU= IGdyaW5k aGlu dW1lbg== IHV0aWxpdGllcw== IFlhbmtlZXM= IGRhdGFiYXNlcw== IERE IGRpc3BsYWNlZA== IGRlcGVuZGVuY2llcw== IHN0aW11bGF0aW9u aHVu aG91c2Vz IFByZXR0eQ== IFJhdmVucw== IFRPREFZ IGFzc29jaWF0ZXM= IHRoZXJhcGU= Y2xlZA== IGRlZXI= IHJlcGFpcnM= cmVudGljZQ== IHJlY2VwdG9ycw== IHJlbWVk IENl IG1hcnJpYWdlcw== IGJhbGxvdHM= IFNvbGRpZXI= IGhpbGFyaW91cw== b3Bs MTM4 IGluaGVyZW50bHk= IGlnbm9yYW50 IGJvdW5jZQ== IEVhc3Rlcg== UkVMQVRFRA== IEN1cnJlbmN5 RVY= 44Oe IExlYWQ= IGRlY2Vhc2Vk QnJpZW4= IE11c2s= SlM= IG1lcmdl aGVhcnRlZA== Y3JlYXQ= bWl0dA== bXVuZA== IOKAiw== IEJhZw== IHByb2plY3Rpb24= IGphdmE= IFN0YW5kYXJkcw== IExlb25hcmQ= IGNvY29udXQ= IFBvcHVsYXRpb24= IHRyYWplY3Q= IGltcGx5 IGN1cmlvc2l0eQ== IERC IEZyZXNo IFBvcg== IGhlYXZpZXI= bmV5cw== Z29tZXJ5 IGRlc2VydmVk IHBocmFzZXM= IEdD IHllYXN0 ZGVzYw== RGVhdGg= IHJlYm9vdA== IG1ldGFkYXRh SUNBTA== IHJlcGF5 IEluZGVwZW5kZW5jZQ== IHN1YnVyYmFu aWNhbHM= IGF0b3A= IGFsbG9jYXRpb24= Z2VuZXJhdGlvbg== IEdyYW0= IG1vaXN0dXJl IHBpbmU= IExpYmVyYWxz IGFpZGVz IHVuZGVyZXN0 IEJlcnJ5 IGNlcmVtb24= Mzcw YXN0cm91cw== IFBpcmF0ZXM= IHRlbnNl IEluZHVzdHJpZXM= IEFwcGVhbHM= IE5lYXI= IOijj+c= IGxvdmVycw== IENBUA== IENyYXc= IGdpYW50cw== IGVmZmljYWN5 RWxlbWVudA== IEJlaGF2aW9y IFRveW90YQ== IGludGVzdA== UHJpdg== QUk= IG1hbmV1dmVy IHBlcmZlY3Rpb24= IGJhbmc= cGFwZXI= cmlsbA== R2Vvcmdl Ym9yZGVy aW50ZXJz IFNldGg= IGNsdWVz IExldmk= IFJldmVudWU= MTQ3 IHZhcG9y IGZvcnR1bmF0ZQ== IHRocmVhdGVucw== IHZldA== IGRlcGVuZGVuY3k= ZXJzZWQ= YXJ0aWNsZQ== IEJsaXp6YXJk IGNobG9y IG1pbnVz IEJpbGxz IGNyeXB0b2N1cnJlbmN5 IG1ldGFib2xpc20= dGVyaW5n IHBlc3RpYw== c3RlcHM= IFRyZWFzdXJl cmFjdGVk IENvbnN0YW50 IHRlbXA= MTM5 IERldGVjdGl2ZQ== dXJhbGx5 IHJlY292ZXJpbmc= IGNvcnRleA== IDE0NA== Y2xvc2Vk IHByZWp1ZGljZQ== YXVudGVk IHN0b3Jtcw== IE5PVw== IG1hY2hpbmVyeQ== QWRkcmVzcw== IGNvbXBlbGxlZA== Mjcw IGRlc3BhaXI= YmFuZQ== IHZlZ2V0YWJsZQ== IGJlZHM= TGVhcm4= IGNvbG9yZnVs IHNwaWtl IG1hcmdpbnM= IHN5bXBhdGh5 IHdvcmtzaG9w IENCQw== U2F0 IGJ1cm5z IEdlbmRlcg== IDEyOQ== IENhYmxl IGRlYnRz IFRoZXJlc2E= IHJlZmxlY3Rpbmc= IGFpcnN0 IHJpbQ== cmFtaWQ= IHdlYWtuZXNzZXM= V3JpdA== b2dnbGU= dGk= IENoYXJnZQ== IHdlaWdoZWQ= ICgu IGxhdWdodGVy IHJvdXRlcg== IERlbW9jcmFjeQ== RGVhcg== IGhhc2h0 IGR5 IGhpbnRz cnVubmluZw== IGZpbmlzaGVz YXJ1cw== TWFzcw== cmVzdWx0 YXNjdXM= IHZpbnRhZ2U= IGNvbnF1 IHdpbGRseQ== YWNpc3Q= IGxpbmd1 IHByb3RhZ29uaXN0 c3Ryb20= dGVlbnRo IFNvbG8= bWFj ZmlsbGVk IHJlbm93bg== aXRpdmVz IG1vdGl2ZQ== IEFudGFy IE1hbm4= IEFkanVzdA== IHJvY2tldHM= IHRyb3VibGluZw== ZWk= IG9yZ2FuaXNtcw== YXNzaXM= Q2hyaXN0aWFu IDE0NQ== IEhhc3M= IHN3YWxs IHdheA== IFN1cnZpdmFs VlM= IE11cmQ= dmQ= c3RhbmRhcmQ= IGRyYWdvbnM= IGFjY2VsZXJhdGlvbg== cmF0aW9uYWw= ZmluYWw= IHBhaXJlZA== IEV0aGVyZXVt IGludGVyZmFjZXM= IHJlc2VudA== IGFydGlmYWN0cw== xas= YXJlbA== IGNvbXBldGl0b3I= IE5pY2hvbGFz IFN1cmZhY2U= Y3Bw IFRvdA== IGVjb25vbWljYWxseQ== IG9yZ2FuaXNlZA== IGVuZm9yY2Vk aW5obw== IHZhcmlldGllcw== IGFiZG9t IEJhaWxleQ== aWRhdg== IFNhbHY= cGFpZA== IGFsdGl0dWRl ZXNzZXJ0 IEd1dGVuYmVyZw== YXJlYQ== b3BvdWxvcw== IHByb2Zlc3NvcnM= aWdncw== IEZhdGU= aGV5 IDMwMDA= RGlzdA== IHR3aW5z Y2lsbA== IE1hcHM= IHRyYXBz IHdlZWQ= IEtpc3M= IHlvZ2E= IHJlY2lwaWVudHM= IFdlc3RtaW5zdGVy IHBvb2xz IFdhbG1hcnQ= MTg4 IFNjaG9vbHM= YXR0YWNr IEFSTQ== cGFyYWdyYXBo V2FybmluZw== amw= IHNlbGZpc2g= YW5jaGV6 IEhlaWdodHM= RnJl IFNvcGg= IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t dG1s MzMz IHJhaWRz IHNhdGVsbGl0ZXM= S0VZ IGxhc3Rz 0YI= SW5z IERhbWU= IHVucHJlZGljdA== Ly8v Z2hhaQ== IGFydGlsbGVyeQ== IGNydWlzZQ== IGdlbA== IENhYmluZXQ= IGJsb3dz IEVzcA== IHByb3hpbWl0eQ== b3RoZQ== IFNraWxscw== IFVwcGVy b2Jv IE5EUA== IGVuam95cw== IHJlcGVhdGluZw== IENvbnN0cnVjdGlvbg== IFF1ZXN0aW9ucw== SGlsbGFyeQ== IHVpbnQ= IHByb2Nlc3NvcnM= IEdpYnNvbg== IE11bHRpcGxl cWE= IEJvbQ== IE1pbGVz dmVudGlvbmFs IGh1cnRz c2tpbg== IEFJRFM= IGFkdmlzZXJz IFJvb3Q= IG1ldGhvZG9sb2d5 IERhbGU= IGRldG9u IEtub3dsZWRnZQ== c2VxdWVudGx5 IDEyMQ== IGNvbm5lY3Rz Q3k= IERhbmdlcg== IGNvbnRyaWJ1dG9ycw== IEJlbnQ= IGJyYXNz IEd1bnM= aW50bw== IEZvcnR1bmU= IGJyb2tlcg== YmFsYW5jZQ== IGxlbmd0aHM= IHZpYw== IGF2ZXJhZ2luZw== IGFwcHJvcHJpYXRlbHk= IENhbWVyYQ== IHNhbmR3aWNo IENEQw== IGNvb3JkaW5hdGU= IG5hdmln IGdvb2RuZXNz bGFpbQ== IGJyYWtl IGV4dHJlbWlzdA== IFdha2U= IE1lbmQ= IFRpbnk= IENPTA== IFJG IER1YWw= IFdpbmU= Q2FzZQ== IHJlZmluZWQ= IGxhbXA= TGVhZA== IGJhcHQ= IENhcmI= IFNhZGQ= IE1pbm5lYXBvbGlz UERG RWFybHk= IEhpZGRlbg== SXRz IFRJTUU= IHBhcA== IGNvbW1pc3Npb25lZA== IEZldw== IENvbHRz IEJyZW4= IGJvdGhlcmVk IGxpa2V3aXNl RXhwZXI= IFNjaHc= Y3J5 bm4= IE1pdGNo aW1vbg== TUc= Ym0= VU1Q cmF5cw== IHJlZ2lzdHJ5 IDI3MA== YWNoaW5l cmVsbGE= YW50aW5n MDAwMDA= IHJ1aW5lZA== c3BvdA== IHRh IG1heGltaXpl IGluY29udmVu RGVhZA== SHVtYW4= RW5hYmxlZA== IE1hcmll IGNoaWxs IFBhcmFkaXNl IHN0YXJyaW5n IExhdGlubw== IFByb3RvY29s IEVWRVI= IHN1cHBsaWVycw== bWVzc2FnZQ== IEJyb2Nr IHNlcnVt 4paI4paI4paI4paI IGVuY29tcA== IGFtYml0aW9u dWVzZQ== IGFycm93cw== QW5kcmV3 IGFudGVubmE= IDE5NjE= IEJhcms= IGJvb2w= 44Kq IFN0b3JhZ2U= IHJhaWx3YXk= IHRvdWdoZXI= IENhZA== IHdhc2hpbmc= UHk= J10= ZW1iZWQ= IE1lbXBoaXM= YWNrbGU= IGZhbW91c2x5 IEZvcnR1bmF0ZWx5 b3ZpZXM= IG1pbmRzZXQ= IHNuZWFr IERo UkFX IFNpbXBzb24= IGxpdmVzdA== IGxhbmRtYXJr IGNlbWVudA== TG93 IHRocmlsbGVk IENvdXJzZQ== aW5lbA== IGNodWNr aWRhdGU= Z2xvYmFs IHdoaXQ= IO+/vQ== YWRheXM= c2tp IFNW IHZpcnVzZXM= MzA2 IFJlc3BvbnM= IHRoZWF0ZXJz IEJyYW5jaA== IEdlbmV2YQ== IE1L IHVuYmVsaWV2 IGNvbW11bmlzdA== T3JpZ2luYWw= IFJlY2VpdmVk IFRyYW5zZmVy IEFyZw== SW5wdXQ= IFN0cmF0ZWd5 IHBhbGFjZQ== dGhlbmluZw== RHJp IHNlbnRlbmNpbmc= dW1ibmFpbA== IHBpbnM= cmVjeQ== IHNpYmxpbmdz R2V0dGluZw== IEJV IE5vcnRod2VzdA== IHByb2xvbmdlZA== IFNha3VyYQ== Q29tYg== IEJvdXI= IGluYWRlcXVhdGU= IEthc2g= IHVzZXJuYW1l IEltcHJvdmU= IGJhdHRsaW5n IE1BQw== IGN1cnJpY3VsdW0= IHNvZGE= IENhbm5vbg== IHNlbnNpYmxl c3BvbnM= RGVjZW1iZXI= IHdpY2tlZA== IFBlbmd1 IGRpY3RhdG9ycw== IEhlYXJ0cw== b2d5bg== IHNpbWlsYXJpdGllcw== IFN0YXRz IGhvbGxvdw== aXRhdGlvbnM= Ijpb IGhvdmVy IExpc3Rlbg== c2No U3VuZA== IGNhZA== IFBhcmtz IGx1cg== IGh5cGU= IExlbQ== TkFNRQ== aXN1cmU= RnJpZGF5 IHNob290cw== IGNsb3Nlcw== IGRi IFJpZGdl IERpZmZlcmVudA== IHJlcGxpZXM= IEJyb2Fkd2F5 b3BlcnM= IGludG9sZXI= IFpldXM= YWtlc3Bl IHByb3ByaWV0YXJ5 IHJlcXVlc3Rpbmc= IGNvbnRyb2xsZXJz IE1JTg== aW1lZGlh YmVjY2E= IGV4cGFucw== IG9pbHM= Qm90 IENoYW5k IHByaW50ZXI= IHRvcHBlZA== IFBPTA== IEVhcmxpZXI= U29jaWFs YXZpbg== IGRlY3JlYXNlcw== IFNlYg== IHNwZWNpZmljYXRpb25z IEJsYXN0 IEt1cnQ= IGZyZWVs QnJvd24= IGRpbGln cm9l IFByb2JsZW0= IFF1YWQ= IGRlY2VudHJhbA== IFZlY3Rvcg== YW51dA== IHBsdWdpbnM= IEdyZWdvcnk= IGZ1Y2tlZA== ZWxpbmVz IEFtYmFzc2Fkb3I= dGFrZQ== IGNsZWFucw== b25neWFuZw== QW5vbnltb3Vz c3Rybw== In0= YWxpbmU= IE9kZA== IEV1Zw== MjE2 IGJvaWw= IFBvd2Vycw== IG51cnNlcw== T2J2aW91c2x5 IFRlY2huaWNhbA== IGV4Y2VlZGVk T1JT IGV4dHJlbWlzdHM= IHRyYWNlcw== ZXhwbA== IGNvbXI= IFNhY2g= KS8= IG1hc2tz IHNjaQ== Qm9u IHJlZ3Jlc3Npb24= d2VnaWFu IGFkdmlzb3I= aXR1cmVz IFZv ZXhhbXBsZQ== IEluc3RydWN0 IHNpZWdl IHJlZHVjdGlvbnM= cHRy IHN0YXR1dG9yeQ== IHJlbW92ZXM= IHB1Y2s= cmVkaXRz IGJlZQ== IHNhbGFk IHByb21vdGlvbnM= IEpvc2h1YQ== d2l0aHN0YW5kaW5n RVRI IENoYQ== aW11cw== IGV4cGVuZGl0dXJl YXVudGluZw== IGRlbGlnaHRlZA== IDE1NQ== YmVo IGNhcnBldA== IFNwYXJ0 IGp1bmdsZQ== bGlzdHM= IGJ1bGx5aW5n IE5vYmVs IEdsZW4= IHJlZmVyZW5jZWQ= IGludHJvZHVjZXM= c2Vpbg== IGNob3BwZWQ= Z2xhc3M= IFdyZXN0 IG5ldXRyYWxpdHk= IOKZ IGludmVzdGlnYXRvcg== IHNoZWx2ZXM= IHVuY29uc3RpdHV0aW9uYWw= IHJlcHJvZHVjdGlvbg== IG1lcmNoYW50 bWlh IG1ldHJpY3M= IGV4cGxvc2l2ZXM= IFNvbmlh IGJvZGlseQ== IHRoaWNrbmVzcw== IHByZWRvbWluYW50bHk= IEFiaWxpdHk= IG1vbml0b3JlZA== SUNI IF0u IE1hcnRpbmV6 IHZpc2liaWxpdHk= IHF1ZXJpZXM= IGdlbm9jaWRl IFdhcmZhcmU= UXVlcnk= IHN0dWRpb3M= IGVtYnJ5 IGNvcnJpZG9y IGNsZWFuZWQ= Y29tcGxldGU= IE1I IGVucm9sbG1lbnQ= SU5HUw== IGltcGFjdGVk IGRpc2FzdHJvdXM= IFl1bg== IENsYWlyZQ== IEJhc2ljYWxseQ== eXQ= dXN0ZXJpdHk= IGluZGlyZWN0bHk= d2lr IGRvZA== IENhcnI= IGFtcA== IHByb2hpYml0 IEluaXRpYWw= IFJk aWpp IGVkdWNhdGU= Y29ybg== aW90dA== IEJlYXV0eQ== IGRldGVjdGl2ZQ== IENvbm4= c2luY2U= IHN0YWdnZXI= IG9iZXNl IGJyZWU= b2xvZ2lj aXNzZQ== d2Fsa2Vy IGJsYWRlcw== IGxhd2Z1bA== ZnVuYw== IEJlaGluZA== IGFwcGV0aXRl ICgq IHRlbm5pcw== IG9mZnNwcmluZw== IGpldHM= IHN0cnVjdHVyZWQ= IGFmb3JlbWVudGlvbmVk Tm92 IHNjYWxpbmc= ZmlsbA== IHN0ZXc= IGN1cmI= IFN0ZXBoYW4= ZWRJbg== U0Y= b2JpYw== 6a2U b3Vn IE1N IGdlbmV0aWNhbGx5 b3Bleg== MTM2 IHVtYg== YW5jZXJz IGNvaG9ydA== IG1lcmNoYW5kaXNl IGltcG9zaW5n IExlZ2lzbGF0dXJl IEFyY2hpdmU= aXZpYQ== IE5hdmFs IG9mZmVuY2Vz IG1pcmFjbGU= IHNuYXBwZWQ= IGZvZXM= IGV4dGVuc2l2ZWx5 IFJhZg== IGNhdGVy ZWRpZW5jZQ== S2l0 IEJpbg== IHJlY29tbWVuZHM= IENpdGllcw== IHJpZ2lk IFJFQUQ= IE5vYmxl IFRpYW4= IGNlcnRpZmljYXRlcw== YW50aXM= b2lsZXI= IEJ1ZGRoaXN0 ZGlk IHN1cnZleWVk IGRvd253YXJk IHByaW50cw== IE1vdGlvbg== cm9uaWNz IFNhbnM= b3NzaWJseQ== dWN0aW9ucw== IGNvbG9uaWVz IERhbmlzaA== dW5pdA== IHNwb2ls IGFkdmlzb3J5 YmVycmllcw== UGxhbg== IHNwZWNpZmljYXRpb24= b3BoZXJz IFJlc291cmNl IHNoaXJ0cw== cHJpc2luZ2x5 Y29tbXVuaWNhdGlvbnM= IHRyaXZpYWw= IG1lbnRpb25pbmc= aXNleHVhbA== IHN1cHBsZW1lbnRz IHN1cGVydmlzaW9u QlA= dm9y IHdpdA== IGNvb2xkb3du IHBsYWludGlmZg== IFJldmlld3M= IFNyaQ== IE1pbnQ= IFN1Z2Fy IGFmdGVyd2FyZA== IFByaWVzdA== IEludmVzdG1lbnQ= b2dlbmU= IFRha2luZw== IHN0cmV0Y2hpbmc= IGluZmxhbW1hdGlvbg== IFRlaHJhbg== IGxpbmluZw== IGZyZWV6aW5n IEVudGl0eQ== IGluc3BpcmluZw== c3BlY2lhbA== cHJpY2U= IHN1ZQ== IFBvcnRlcg== b3VuZ2U= RVRB IERlcmVr IEx1aXM= dW8= eW1waA== IGV4dGVyaW9y aWhpbA== IEFzaGxleQ== aW5hdG9y IG51dHJpZW50cw== IFRocm9uZXM= IGZpbmFuY2Vz IEluc3BlY3Q= IHNwZWNpYWxseQ== IFJlcXVpcmVk IFBUUw== IFZpb2xlbmNl b2ludGVk c2hvdHM= IGV4Y2VycHQ= Y29vbg== SU5T IEdyaQ== IHJlY29nbmlzZWQ= V2Vlaw== WW91bmc= IHZvbQ== aXNsZQ== IEN1cnJ5 IEJ1ZGRo IG5vdGVib29r IGR1cmFibGU= Lz8= IEdhZA== IFB1cHA= IGZvcmdpdmU= cGFyaw== IHBlcnNvbmFsaXRpZXM= YW5hbHlzaXM= Y2xhbWF0aW9u IGVsZXZhdG9y IHdhcmVob3VzZQ== IFJvbGU= dW5u IGlsbHVzdHJhdGlvbg== IFNjYW4= IGF0bW9zcGhlcmlj SW1wb3J0 QU5D cmljdGVk ZnU= MDEw IGFyY2hl IHJld2FyZGVk YWtlc3BlYXJl IGludGVybmFsbHk= IFJCSQ== YWxrZXI= IGVsZXBoYW50 b3dpdHo= IFBpenph IGJpcGFydGlzYW4= w6lz IHNsb3dlZA== IFN0YXJr IG92ZXJyaWRl T1VT IDMyMA== dW5kcmVkcw== IERlY2s= IENlbnN1cw== YmVl MTQ2 b3Rvcg== IGlw IHVi b2NhdGlvbnM= IEJ1dHRvbg== cmljZQ== IGNyaXBw ZmZm IG9yaWdpbmF0ZWQ= IG92ZXJ3aGVsbWVk YXBwYQ== IGZvcmVtb3N0 4oCR IExFRw== cmVsZWFzZQ== ZWF0dXJlZA== YXRjaGVz IHJlcHM= IGxlbmRpbmc= IFJlZmVyZW5jZQ== IENsaWVudA== MTY1 dmVudGg= Q29tcGxldGU= IFBhdHJvbA== IHN3b3Ju Y2Ft IHNodXR0bGU= IFJhbHBo IGhvbWV0b3du LSw= b25hbA== IEJQ 5Y8= IHBlcnN1YWRl IEFsZXhhbmQ= IGNvbWJpbmVz IHZpdmlk IExhZw== IGVuY29kaW5n IHNhbHZhdGlvbg== d2Vu IFJlY292ZXJ5 aXlh VW5pdmVyc2l0eQ== IEJpZGVu IGJ1ZGdldHM= IFRleGFucw== Zml0cw== IGhvbm9yZWQ= IHB5dGhvbg== VEQ= IyMj Y2xvbmU= IGJsaW5r IExpcXVpZA== IHVuZW1wbG95ZWQ= IGNsYXNoZXM= IENvdW5zZWw= IGRpcmVjdGluZw== IHB1bmN0 IEZhbGNvbnM= IHNoYXJr IERhbWFzY3Vz IGplYW5z IGVtYmFyaw== IHNlaXpl IHVwd2FyZHM= Mjgw IEV6 IEFueXRoaW5n IGV4b3RpYw== bG93ZXI= IENyZWF0b3I= IFVt IHN1YnVyYnM= YmVyZ2Vy IFdlbmQ= IG1pbnQ= IFhY IERybw== IHN1ZmZlcnM= IGhlcmI= dHJlZQ== IGZyYWdpbGU= IGZsb29kZWQ= IEFsY29ob2w= b2xlYW4= bnlkZXI= IEtP RnJhbQ== IDEzNg== IG93ZWQ= IE1lbGVl IEhhc2g= IHdoaXNr IHN1ZG8= cnI= UXVpY2s= YXBwcm8= IGlp IEV4YW1wbGVz aGVl IHByb21vdGVz cGVyYXR1cmU= a2Fy IEhvbm9y IHNvZGl1bQ== IExpZg== cm9zc28= aW50ZW5kZW50 IGNvcnJlc3BvbmRlbnQ= Rm91bmQ= c2VjcmV0 IGlkZW50aWZpZXM= YWduZQ== IGxvdQ== IFBQ IGNvaW5jaWRlbmNl bW92ZQ== IG1pbGl0aWE= IGluZmlsdHI= IFByaW1hcnk= IHBpdGNoaW5n IEli IEdPT0Q= 44K4 IFdpemFyZHM= aXJhbA== IFZlbnVz UlI= IOKAlQ== IENhc2V5 IHNhZGx5 IGFkbWlyZQ== IGVtYmFycmFzc2Vk Y2I= TWVs IHR1YmVz IGJlYXV0aWZ1bGx5 IFF1ZWVuc2xhbmQ= QmVsb3c= cmV6 cXVldA== cGxlYXNhbnQ= IMKr Q2FtcA== IGRlY2lzaXZl MTk5OA== IExhbWI= dXR0b24= aG4= IEphZ3U= YXVuZGVy IENvcmQ= IGNsZXJr IGNhZmZl IHdpcGVk IHJlaW0= IE1vdW50YWlucw== IGltcHJpc29uZWQ= IGRldmVsb3Bz IFByYQ== IG1vZGVsaW5n QW55b25l YW5jZWw= IFNpdA== IHNoaWVsZHM= IGxhd24= IGNhcmRpb3Zhc2N1bGFy IGRlbW9uc3RyYXRpbmc= IHBhcnNl IElzcmFlbGlz IGV1cm9z MTQz IGdsb3Jpb3Vz aW5za2k= ZWNk IGNvbmRpdGlvbmluZw== IGhlbHBsZXNz IG1pY3Jvc2M= IEhhcmJvcg== IHN0YWtlcw== IDI2MA== IHVuZXF1 IEZsb3lk IGRhbXA= IGFwcGFyYXR1cw== IExhd3M= IGNvdW50ZXJz IGluZHVjZQ== YXRhYmxl IEFobWVk IHNsYW0= Tm92ZW1iZXI= IHBlcnNpc3Q= IGltbWluZW50 w6Fu IHNocmVk IHBoYXNlcw== IEVkbW9udG9u IEFybXN0cm9uZw== IE1lZXQ= IEtpdHR5 0YA= Y2lyYw== IEFkdWx0 IGFyb3Nl IFhlbg== RGFu Z293 IHN1cGVyZg== IEFkbWly IGVuZHVyZQ== IGtleXdvcmQ= eXJ1cw== IHlhcm4= IHBhdGh3YXk= IEhvcGtpbnM= bWlkdA== IGNlbnNvcnNoaXA= ZGVwZW5kZW50 IGluc3RydWN0b3I= U291cmNlcw== IHRvZQ== IGJhbGxvb24= Tm9i IHN3ZWFy IENhc3Rybw== IGdsb3Nz IEthdmFuYXVnaA== IHJlbWFya2FibHk= UGhvdG9z IE5vbQ== IFNvdXRoZWFzdA== eWVycw== IHZhbGlkYXRpb24= IGNhbm5vbg== IFZpY3Rvcnk= IFBpZXJyZQ== IGNhdXRpb3Vz QXVkaW8= IGZldGNo IEdpZnQ= IEh5cA== IHJlbWVkeQ== WkU= IHNjZW50 IGJlYXJk IFJ1dA== LSI= IHBhdGVudHM= SHk= IHVuanVzdA== IHBvdGF0bw== IGZvcnRoY29taW5n IGNoZWY= IFJpZnQ= YWZmZQ== IFJPTQ== IExhdW5jaA== IHBhZHM= IE5lbw== IG9uc2V0 IHNxdWVlemU= c2FmZQ== IHByZWZpeA== IFRN IE5lYXJseQ== IENsaW5pY2Fs IE1lbnRhbA== b3RpYXRpb24= IFVuaWM= YW50cnk= IENpcg== IGVwaXQ= w6Y= IGV4dHJhY3RlZA== dmVyc2VseQ== cmlhZA== IHN0cmFpbnM= IHRvcHM= IHBvZW0= IFJhbmR5 IE1hcGxl VEhFUg== dXBpdGVy IFNTRA== muk= IHVuY29u cGVyaW5n IHNsZXB0 aW5lcnM= IHVuZGVyd2F0ZXI= IEV2aWRlbmNl Z29uZQ== MjA1 IGhpc3RvcmlhbnM= IHN5bnRoZXNpcw== IGZyb2c= YmFza2V0YmFsbA== IHZpYnJhbnQ= IHN1Ym9yZA== IDM2NQ== IERpYWw= IGNvb3BlcmF0ZQ== SEFIQQ== IGdyZWV0ZWQ= MTU4 IGpheno= IGludG94 IFdhbGtpbmc= IHN1cGVydmlzb3I= IEZ1c2lvbg== IE1lcmNlZGVz c2VuZA== SGFt c2Q= bmw= IHRvdXJz IEZJRkE= IGN1bHA= Z2Q= MzA0 IHBsZWFz IGlsbHVzdHJhdGVz IENvbG9tYmlh IGhpZ2hsaWdodGluZw== IFN1bW1hcnk= IGV4cG9zaW5n IERydQ== IGlyb255 cml0aW9uYWw= IENhcnJvbGw= IEVsbGlz UGljdA== IFJhcHQ= IGFkYXB0ZXI= IHVubQ== IGNvcnBzZQ== IGNlbGVicml0aWVz RGVu YXR1bQ== IEFwb2NhbHlwc2U= IFdhZw== bGluaW5n IGhvcm1vbmVz UnVi IFhp IFZhdWx0cw== MjA4 YWxreXJpZQ== aW5vc2F1cg== IGZlZWRz dml0eQ== IGRlZmVhdGluZw== V2FpdA== IGVtcGhhc2l6ZQ== IFN0ZWVsZXJz eXJpbnRo bGV5cw== IFdoZW5ldmVy Q3VycmVudGx5 IENsb2Nr IGNvbGxlY3RpdmVseQ== YW55b24= IEpQ IG1lbnRhbGl0eQ== IGRvd25sb2Fkcw== IHN1cnJvdW5kaW5ncw== IEJhcm5lcw== IGZsYWdzaGlw IGluZGljYXRvcnM= IGdyYXBw SmFudWFyeQ== IEVsZW1lbnRhbA== IEF0aGVuYQ== aWJhbA== IHNpZ2h0cw== IGNhcGl0YQ== IFRyZWF0eQ== IHZvaWNlZA== IEdheg== bGV0dGU= IHlh IGV4cGlyZWQ= TGVnZW5k SG90 bmF0dXJl IHVuc3RhYmxl IDI4MA== w7o= Q29tbWVudA== QUxF IHF1ZXN0cw== IGhhbmRsZXI= bmlz IHZlcnNhdGlsZQ== IGNvbmNlYWw= ZW5nZWFuY2U= IEludGVyYWN0aXZl IG9ic2Vzc2Vk IERvZ3M= IGNyYWNrZWQ= U291bmQ= c3Y= IER5bGFu cm9hZHM= Zng= IENhdGhvbGljcw== IEhhZw== IHNsYW1tZWQ= IGdsb3dpbmc= c2FsZQ== IHRpc3N1ZXM= IENoaQ== bmVl IGNoZXI= c2lj dXJyZWN0aW9u IGJhY29u dWxhdG9yeQ== KS4i IGlycmVndWxhcg== Rk9STQ== YXNzZWQ= IGludGVudGlvbmFs IGNvbXBlbnNhdGU= IFNwZWFraW5n IFNldHM= MTUz IGNvbnZlbnRpb25z YmFuZHM= ZW1hZGU= IGVjYw== IFdpbnN0b24= IEFzc2Fzc2lu IEJlbGdpYW4= IGRlcGVuZGVuY2U= IG5pY2hl IGJhcms= IEpheno= IGRpc2FkdmFudGFnZQ== IGdhc29saW5l IDE2NQ== 55qE ZXNzYQ== bW9kdWxl YW5ndWxhcg== T1k= IFRyZWF0bWVudA== aXRhcw== b2xhdGlvbg== IEFybm9sZA== IGZldWQ= IE5lc3Q= IHRoZWF0cmU= ZXdhdGVy IG1pbm9ycw== b2xpY3k= IEhhdmVu ZGl2aXNpb24= IHRydW5r RmFy IFB1bGw= IGNhcHR1cmluZw== IDE4MDA= IFRlZW4= IGV4ZW1wbA== IGNsaW5pY3M= IEJ1cmc= IHN1YnN0aXQ= IHBheWxvYWQ= IExhdg== IFRyb3k= IFdpdG5lc3M= IGZyYWdtZW50cw== IHBhc3N3b3Jkcw== IGdvc3BlbA== IEdpbg== IHRlbmFudHM= b2xpdGg= U2l4 UHJldmlvdXM= IEFnZXM= IERhcndpbg== IGJsYXQ= IGVtcGF0aHk= c21pdGg= YmFn IEVjaG8= IENhbWI= IE1hZGQ= IEJvbw== IHJlZGU= IEJ1cm5pbmc= IHNtb290aGx5 IEFkcmlhbg== IFZhbXBpcmU= IE1vbnN0ZXJz c3RlYW0= U3R5bGU= TWE= cmVh IER3YXI= YWx5c3Q= dXJzb3I= IGVsaW1pbmF0aW9u IGNyeXB0bw== Y2h0 IEV0ZXJuYWw= 4oCmXQ== IFNvcmNl SWxs TkVS IHVo Q29uY2x1c2lvbg== d2FnZQ== IHJlc3Bpcg== IHJlbWluaXM= aGV0aWNhbA== IGd5 IHV0aWxpemVk aWNpZGFs IDE5MDA= IGh1bnRlcnM= IFN3YW4= IFJlYWN0 IHZpc2l0b3I= IFRoYW5rc2dpdmluZw== MzA4 UG9zdHM= IGhpcHM= MTk5Nw== b21lcnM= IGtub2NraW5n IFZlaGljbGU= IHRpbA== IDEzOA== IG1p IEludmVzdGlnYXRpb24= IEtlbnlh IGNhc2lubw== IG1vdGl2ZXM= IHJlZ2Fpbg== cmV4 IHdlZWtlbmRz IHN0YWJiZWQ= Ym9ybw== IGV4cGxvaXRlZA== IEhBVkU= IFRlbGV2aXNpb24= Y29jaw== IHByZXBhcmF0aW9ucw== IGVuZGVhdg== IFJlbW90ZQ== IE1ha2Vy IFByb2R1 IEV2YW4= IGluZm9ybWF0aW9uYWw= IExvdWlzdmlsbGU= MTU0 IERyZWFtcw== IHBsb3Rz IFJ1bm5lcg== IGh1cnRpbmc= IGFjYWRlbXk= IE1vbnRnb21lcnk= bm0= IExhbmM= IEFseg== MjEw ZWxvbmc= IHJldGFpbGVy IGFyaXNpbmc= IHJlYmVsbGlvbg== IGJsb25kZQ== cGxheWVk IGluc3RydW1lbnRhbA== Q3Jvc3M= IHJldGVudGlvbg== IHRoZXJhcGV1dGlj IHNlYXM= IGluZmFudHJ5 IENsaW50 IHByb21wdGluZw== IGJpdGNo IHN0ZW1z IEtyYQ== IHRoZXNpcw== IEJvZw== cnVlZA== IGtpbmdz IGNsYXk= aWZpY2VudA== IFlFUw== IFRoaW5n IEN1YnM= dmV5YXJk ZWxzaA== aW5hcmlseQ== IEV5 IFJvbGxpbmc= IGV2b2x2aW5n SW5kaWE= IHJlY29nbml6ZXM= IGdyYWR1YXRpb24= aXNlcnM= IGZlcnRpbGl0eQ== IE1pbGFu Q29tbWFuZA== IGJveGluZw== IDE5NDM= IGdsdXRlbg== IEVtaXI= IGlkb2w= IGNvbmNlaXZlZA== IENyZWF0aW9u TWVyaXQ= dWRkeQ== dXNzaW9ucw== IExpZXV0ZW5hbnQ= aWV0YWw= IHVuY2hhbmdlZA== IFNjYWxl IENyaW1lYQ== YmFsbHM= YXRvcmlhbA== IGRlcHRocw== IGVtcGlyaWNhbA== IHRyYW5zbQ== IHVuc2FmZQ== bWlzc2libGU= Y29tZm9ydA== MTU2 IG1lY2hhbmlj MDAy bGlucw== IHNtb2tlZA== UG9z IHNsb3dpbmc= IGxhdg== VGV4YXM= IGNoZWF0aW5n IE1ldHJvcG9saXRhbg== ZXRoeWw= IGRpc2NvdmVyaW5n YXNzZQ== IHBlbmNpbA== IFB5b25neWFuZw== IGNsb3NldA== IFNoZWV0 IEVudHJ5 b3VzdGlj IG15c3Q= ZXJhdGU= YXJpYXQ= IG1pbmVyYWxz IG11c2ljaWFu IFB1bA== IE1heg== MjQ5 IHBlcm1pc3Npb25z IGl2 ZW5hcnk= aWNrZXJz IEJpbmc= aGVh ZW5hYmxl IGdyaWV2 IGFzc2VydGVk IENvbG9uZWw= IGFmZmlkYXY= d28= IHNlYXRlZA== IFJpZGU= IHBhaW50aW5ncw== IFBpeA== IDEzNw== aXNoaQ== dW1iYWk= Z290dGVu IEVhcmw= IGlubmluZw== IGNlbnN1cw== IHRyYXZlbGxlZA== IENvbnN1bHQ= MTg1 YmluZA== IHNpbXBsaWNpdHk= IG92ZXJsb29rZWQ= IEhlbHBmdWw= IG1vbmtleQ== IG92ZXJ3aGVsbWluZ2x5 Qmxvb2Q= IEZsaW50 IEphbWE= IFByZXNlbnQ= IFJhZ2U= IFRB cHRpdmU= IHR1cm5vdXQ= d2FsZA== IERvbHBoaW5z IFZQTg== IG9uaW9u IGNyYWZ0aW5n bW1h IE1lcmN1cnk= IGFycmFuZ2U= IGFsZXJ0cw== IE9U emJvbGxhaA== IGdhc2Vz IFJpY2hhcmRzb24= c2Fs bGFy IGZyb3N0 IGxvd2VyaW5n IGFjY2xhaW0= IHN0YXJ0dXBz IEdhaW4= ZXNzbWVudA== IGd1YXJkaWFu 5Lq6 IFBpZQ== IExpbmtz IG1lcml0cw== IGF3YWtl IHBhcmVudGFs IGV4Y2VlZHM= IGlkbGU= IFBpbG90 IGVCYXk= IEFjY2VwdA== aXBlZw== Q2Ft IEtvdA== IHRyYWRlcnM= b2xpdGljcw== dW5rZXI= IFBhbGU= b3Np YW5tYXI= IDE5NDc= IEZlbGw= ZXN0aWFs aXRhdGluZw== R0Y= IFNy aWZ0ZWQ= IGNvbm5lY3Rvcg== IEJvbmU= aWxsZXM= MjYw aG1h IG92ZXJsYXA= IEdpdEh1Yg== IGNsZWFuZXI= IEJhcHRpc3Q= IFdBUw== IGx1bmdz 0YE= IEJVVA== IGNpdGU= IHBpdGNoZWQ= cmVhdG1lbnQ= IHRyb3BoaWVz IE51 Mzg2 IFByaWRl IGF0dGVuZGVlcw== W10= MTc5 IHNwYXRpYWw= IHByaXplcw== IFJlbGlnaW9u IHNob3djYXNl IENhdGVnb3J5 dmlkaWE= VGFyZ2V0 UHJvcGVydHk= Pyw= IGZ1c2lvbg== cGll IFVDTEE= IHNvdW5kdHJhY2s= IHByaW5jZXNz IENhdmFs c2hvdWxk IGxpbWJz QmFja2dyb3VuZA== IGxvbmVseQ== IGNvcmVz IFRhaWw= c2hlZXQ= IDEzMg== UmE= 44Kr IEJvbHQ= IGJvb2tlZA== IGFkbWluaXN0ZXI= IGVxdWFscw== d3k= IG9ic2VydmluZw== IEJhcm9u IEFkb2Jl IHZpcmdpbg== IFNvY2lhbGlzdA== TW92ZQ== Z2hhemk= IExpbmRh MjEy IGJyZXdpbmc= IG1lcmNoYW50cw== YnVyc2U= IGRpdm9y IG1ldGFscw== IE5lcg== IHN1bXM= IEVuZW15 IGVudmlzaW9u IGdyYW50aW5n IEhvbmV5 IFNreXJpbQ== IHNvY2lv Z3JhZGVk IHNlbGVjdGl2ZQ== V0FTSElOR1RPTg== IDE5NDg= IFNpcml1cw== IEdyb3Nz YWN0aXZpdHk= IEl2YW4= IGZ1cmlvdXM= QlNE IFByZXZpb3Vz IHJlc3BvbnNpdmU= IGNoYXJpdGFibGU= IGxlYW5pbmc= IFBldw== IHZpb2xhdGVz XFxcXFxcXFw= IENvbWluZw== d2lyZQ== IHBvZXQ= IHJlc29sdXRpb25z Y29tbWFuZA== IFBvcnR1Z3Vlc2U= IG5pY2tuYW1l IGRlYWY= RmVicnVhcnk= IHJlY29nbmlzZQ== IGVudGlyZXR5 IHNlYXNvbmFs cGxhY2Vk IFRlbGVncmFwaA== IG1pY3JvcGhvbmU= b3VyaW5n IGdyYWlucw== IGdvdmVybmVk IHBvc3Rw IFdhdGVycw== aW5lbWVudA== IHVuZG9jdW1lbnRlZA== IENvbWNhc3Q= IGZveA== IGFzc2F1bHRz cmVvbg== bWFueQ== IEplbmtpbnM= IEFueXdheQ== IGFzc2Vzc21lbnRz IGRvd25z IE1vdXNl IHN1cGVyYg== a3Q= IERvdw== IHRheGF0aW9u NDAx IHNtaWxlcw== IHVuZGVydGFrZW4= IGV4aA== IGVudGh1c2lhc3RpYw== IHR3ZW50 IGdvdmVybm1lbnRhbA== IGF1dG9ub215 IFRlY2hub2xvZ2llcw== IENoYWlu IHByZXZhbGVudA== ZmI= IG5pY290aW5l b2dyYW0= am9i IGF3YWl0aW5n IE1lbnU= IGRlcHV0aWVz a292 aXNob3Bz QnV0dG9u IFNoYW5naGFp IGRpZXNlbA== IER1Y2s= Unlhbg== IFBDcw== TkY= anVyeQ== ZW50ZQ== IGluYWNjdXJhdGU= ZWRkeQ== V2hhdGV2ZXI= IHNob3dj IE5hZA== b2R1cw== ZXRy IHBsYWludGlmZnM= IFdPUg== IEFzc2FuZ2U= IHByaXZhdA== IHByZW1pdW1z IHRhbQ== VVJM IGVsaXRlcw== IFJhbmdlcg== b3R0ZW5oYW0= IEhvZmY= IEF0aGVucw== IGRlZmluaXRl IHNpZ2hlZA== IGV2ZW5seQ== MjEx IEFtYmVy YWtpYQ== IG1haWxpbmc= IGNyYXNoaW5n IENvbmZlZGVyYXRl cnVnZ2Vk V2Fs IERlcHRocw== IGp1dmVuaWxl IHJlYWN0b3I= SW50cm9kdWN0aW9u IERlbHV4ZQ== MTk5NQ== IFNhbmNoZXo= IE1lYWQ= aXZhYmxl Oi0= IFBsYW5uaW5n IFRyYXA= cXVpbg== IFByb3RlY3Q= dmVyZWQ= SW5mb3JtYXRpb24= IGtpZG5leQ== aW5uYW1vbg== bGFz IHBvbGljaW5n IHRvbGVyYXRl IFFp IGJpYXNlZA== Rm9ydA== IEtp c2F2ZQ== IHByaXZpbGVnZWQ= IGJlYXN0cw== IEdsYXM= IENpbmVt IGNvbWViYWNr U3VuZGF5 IGV4dGluY3Rpb24= aG9wcw== IHRyYW5zbWl0 IGRvdWJsZXM= IEZsYXQ= MTY3 IGRpc3B1dGVk IGluanVzdGljZQ== Zm9v VmljdA== cm9sZXVt IEp1bGll Q29udGV4dA== IFJhcml0eQ== aXNzdWU= Q29tcG9uZW50 IGNvdW5zZWxpbmc= YW5uZQ== ZGFyaw== IG9iamVjdGlvbnM= dWlsdA== IGdhc3Q= IHBsYWM= IHVudXNlZA== 44OH IFRyaWFs IEphcw== aGVkcmFs b2Ji IHRlbXBvcmFs IFBSTw== IE5X IEFubml2ZXJzYXJ5 TGFyZ2U= IHRoZXJt IGRhdmlk IHN5c3RlbWlj IFNoaXI= bXV0 IE5lcHQ= YWRkcmVzcw== IHNjYW5uaW5n IHVuZGVyc3RhbmRhYmxl IGNhbnZhcw== Q2F0 IFpvbw== IGFuZ2Vscw== TE8= IFN0YXRlbWVudA== IFNpZw== b3ZhYmxl IEF3YXk= c2hhcmluZw== b2NyYXRz c3RhdGVk IHdlaWdoaW5n Tm9y d2lsZA== QmV5 IGFzdG9uaXNoaW5n IFJleW5vbGRz IG9wZW5lcg== IHRyYWluZXI= IHN1cmdpY2Fs cG4= IGFkanVzdGluZw== d2hlZWw= IGZyb3du ZXJ2YXRpdmU= IHN1c3BlbmQ= V2l0aGlu dGVpbg== IG9ic3RhY2xl IGxpYmVydGllcw== eW1lcw== IHVyYW5pdW0= YW5zb20= YW5vbA== dWJh IExvc3M= IGFyb3Vz IEhlbmRlcnNvbg== V293 c3Bs Y3Vy IMKt IHRoZWlycw== RGFtYWdl IGRvd25sb2FkaW5n IGRpc2Nlcm4= IFN0bw== IEZsYQ== IGhhdGg= IEFq IHVucGxlYXNhbnQ= RXVyb3BlYW4= ZXhwZW5zaXZl IHNjcmVlbnNob3Q= IFVW IGFsbGllZA== IFBlcnNpYW4= IG1vbm9wb2x5 IGF0b20= IFJlZHNraW5z Ij48 IGNhbmNlbGw= IGNpbmVtYQ== MTMx ZmFpcg== IEFsZnJlZA== IGR1Y2s= YXJncw== MjIz IElTSQ== IHNpZ25hbGluZw== aW5hcg== IGxhdWdocw== IGZvcndhcmRz IHJlY2tsZXNz IGxpc3RlbmVycw== YXRpdml0eQ== IHZhc3RseQ== bmFudA== TGVzcw== IEh1bnRpbmc= IFNjaWVudGlmaWM= SVRFRA== IGtuaWdodA== IEhUQw== dXNh dG1w IHJ1ZGU= IExlZ2VuZGFyeQ== IGFyaXNlcw== QmFk IENsYWlt cGVn IHJlYWxpdGllcw== VGhpbms= IMKw IHJvZGU= IHN0cml2ZQ== IGFuZWNk IHNob3J0cw== IGh5cG90aGVz IGNvb3JkaW5hdGVk IEdhbmRoaQ== IEZQUw== UkVE IHN1c2NlcHRpYmxl IHNocmluaw== IENoYXJ0 SGVscA== IGlvbg== ZGVlcA== cmliZXM= IEthaQ== IEN1c3RvbWVy U3VtbWFyeQ== IGNvdWdo d2lmZQ== IGxlbmQ= IHBvc2l0aW9uaW5n IGxvdHRlcnk= IENhbnlvbg== IGZhZGU= IGJyb256ZQ== IEtlbm55 IGJvYXN0cw== IEVuaGFuY2Vk cmVjb3Jk IGVtZXJnZW5jZQ== IGFraW4= IEJlcnQ= aXRvdXM= 4paR IHN0aXA= IGV4Y2hhbmdlZA== b21vcmU= YWxzaA== IHJlc2Vydm9pcg== IHN0YW5kcG9pbnQ= V00= IGluaXRpYXRl IGRlY2F5 IGJyZXdlcnk= IHRlcnJpYmx5 IG1vcnRhbA== bGV2YXJk IHJldmlz Tkk= ZWxv IGNvbmZlc3M= IE1TTkJD IHN1Ym1pc3Npb25z Q29udHJvbGxlcg== IDIwMg== IFJ1dGg= fSk7 IEF6dXJl IC4i MjA2 IE1hcmtldGluZw== IGxhdW5k aWVuY2llcw== IHJlbm93bmVk IFRyb3U= IE5HTw== YmxlbXM= IHRlcnJpZmllZA== IHdhcm5z IHBlcnQ= IHVuc3VyZQ== NDgw YWxleg== dWx0eg== IE91dHNpZGU= IHN0eWw= IFVuZGVyZ3JvdW5k IHBhbmM= IGRpY3Rpb25hcnk= IGZvZQ== cmltaW5hbA== IE5vcndlZ2lhbg== IGphaWxlZA== IG1hdGVybmFs w6ll IEx1Y3k= Y29w Q2hv IHVuc2lnbmVk IFplbGRh IEluc2lkZXI= IENvbnRpbnVlZA== IDEzMw== IE5hcnV0bw== IE1ham9yaXR5 MTY5 IFdv 44KT IHBhc3Rvcg== IGluZm9ybWFs 0L0= YW50aHJvcA== am9pbg== 44GX aXRhdGlvbmFs TlA= IFdyaXRpbmc= Zm4= IEJldmVy MTk1 IHllbGxpbmc= IGRyYXN0aWNhbGx5 IGVqZWN0 IG5ldXQ= IHRocml2ZQ== IEZyZXF1 b3V4 IHBvc3Nlc3Nlcw== IFNlbmF0b3Jz IERFUw== IFNoYWtlc3BlYXJl IEZyYW5jbw== IExC dWNoaQ== IGluY2Fybg== IGZvdW5kZXJz RnVuY3Rpb24= IGJyaWdodG5lc3M= IEJU IHdoYWxl IFRoZWF0ZXI= bWFzcw== IERvbGw= U29tZXRoaW5n IGVjaG9lZA== IEhleA== Y3JpdA== YWZpYQ== IGdvZGRlc3M= IGVsZXZlbg== IFByZXZpZXc= IEF1cm9yYQ== IDQwMQ== dWxzaXZl IExvZ2Fu aW5idXJnaA== IENlbnRlcnM= IE9OTFk= IEFpZA== IHBhcmFkb3g= IGh1cmQ= IExD RHVl Y291cnQ= IG9mZmVuZGVk IGV2YWx1YXRpbmc= IE1hdHRoZXdz IHRvbWI= IHBheXJvbGw= IGV4dHJhY3Rpb24= IEhhbmRz aWZp IHN1cGVybmF0dXJhbA== IENPTU0= XT0= ZG9ncw== IDUxMg== IE1lZXRpbmc= UmljaGFyZA== IE1heGltdW0= IGlkZWFscw== VGhpbmdz bWFuZA== IFJlZ2FyZGxlc3M= IGh1bWlsaQ== YnVmZmVy TGl0dGxl IERhbmk= IE5haw== IGxpYmVyYXRpb24= IEFiZQ== IE9M IHN0dWZmZWQ= YWNh aW5kYQ== cmFwaGlj IG1vc3F1 IGNhbXBhaWduaW5n IG9jY3VweQ== U3F1 cmluYQ== IFdlbA== IFZT IHBoeXNpYw== IHB1bHM= cmludA== b2FkZWQ= RVRG IEFyY2hpdmVz IHZlbnVlcw== aG5lcg== IFR1cmJv IGx1c3Q= IGFwcGVhbGVk cXVleg== aWxpYg== IFRpbW90aHk= IG9tbg== ZHJv IG9ic2Vzc2lvbg== IFNhdmFnZQ== MTk5Ng== R2xvYmFs SmVz MjE0 IHNsaWRpbmc= IGRpc2FwcHJv IE1hZ2ljYWw= IHZvbHVudGFyaWx5 Z2I= YW5leQ== IHByb3BoZXQ= IFJlaW4= IEp1bGlh IFdvcnRo YXVydXM= IGJvdW5kcw== aWV1 KSkp IGNyb3Jl IENpdGl6ZW4= U2t5 IGNvbHVtbmlzdA== IHNlZWtlcnM= b25kbw== SVNB IExlbmd0aA== IG5vc3RhbGc= IG5ld2NvbQ== IGRldHJpbQ== ZW50cmlj Mzc1 IEdF IGF1dG9w IGFjYWRlbWljcw== QXBwRGF0YQ== IFNoZW4= IGlkaW90 IFRyYW5zaXQ= IHRlYXNwb29u V2ls S08= IENvbWVkeQ== Piw= IHBvcHVsYXRlZA== V0Q= IHBpZ3M= IE9jdWx1cw== IHN5bXBhdGhldGlj IG1hcmF0aG9u MTk4 IHNlaXp1cmU= c2lkZWQ= IGRvcA== aXJ0dWFs TGFuZA== IEZsb29y b3NhdXJz Li4uXQ== IGxvcw== IHN1YnNpZGlhcnk= RVk= IFBhcnRz IFN0ZWY= IEp1ZGljaWFyeQ== IDEzNA== IG1pcnJvcnM= IGtldA== dGltZXM= IG5ldXJvbG9n IGNhdg== IEd1ZXN0 IHR1bW9y c2NpbGw= IExsb3lk RXN0 IGNsZWFyZXI= IHN0ZXJlb3R5cGVz IGR1cg== bm90aGluZw== UmVkZGl0 IG5lZ290aWF0ZWQ= LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t MjM1 IGZsb3du IFNlb3Vs IFJlc2lkZW50 IFNDSA== IGRpc2FwcGVhcmFuY2U= IFZpbmNl Z3Jvd24= IGdyYWJz cmls IEluZmluaXRl IFR3ZW50eQ== IHBlZGVzdHJpYW4= IGplcnNleQ== IEZ1cg== IEluZmluaXR5 IEVsbGlvdHQ= IG1lbnRvcg== IG1vcmFsbHk= IG9iZXk= c2VjdXJl aWZmZQ== IGFudGliaW90aWNz YW5nbGVk IEZyZWVtYW4= IEludHJvZHVjdGlvbg== SnVu IG1hcnNo aWNhbnM= IEVWRU5UUw== b2Nob25k V2FsbA== aWN1bHR5 IG1pc2RlbWVhbm9y IGx5 VGhvbWFz IFJlc29sdXRpb24= IGFuaW1hdGlvbnM= IERyeQ== IGludGVyY291cnNl IE5ld2Nhc3RsZQ== IEhvZw== IEVxdWlwbWVudA== MTc3 IHRlcnJpdG9yaWFs IGFyY2hpdmVz MjAz RmlsdGVy IE11bmljaA== IGNvbW1hbmRlZA== IFdhbmQ= IHBpdGNoZXM= IENyb2F0 IHJhdGlvcw== IE1pdHM= IGFjY3VtdWxhdGVk IFNwZWNpZmljYWxseQ== IGdlbnRsZW1hbg== YWNlcmI= IHBlbm4= IGFrYQ== IEZ1aw== IGludGVydmVuZQ== IFJlZnVnZQ== IEFsemhlaW1lcg== IHN1Y2Nlc3Npb24= b2hhbg== ZG9lcw== TG9yZA== IHNlcGFyYXQ= IGNvcnJlc3BvbmRlbmNl IHNoaW55 UHJpb3I= IHN1bGY= IG1pc2VyYWJsZQ== IGRlZGljYXRpb24= KCku IHNwZWNpYWxpc3Rz IGRlZmVjdHM= IEN1bHQ= IFhpYQ== IGplb3BhcmQ= IE9yZQ== QWJpbGl0eQ== IGxlYXI= IGFtYml0aW9ucw== IEJNSQ== IEFyYWJz IDE5NDI= IHByZXNlcnZhdGlvbg== aWZpY2F0ZQ== IGFzaGFtZWQ= bG9zcw== IFJlc3RhdXI= IHJlc2VtYmxl IGVucmljaA== IEtO IENsYW4= ZmxvYXQ= IHBsYXlhYmxl SVRU IGhhcm1vbnk= YXJyaXNvbg== IFdlaW5zdGVpbg== d2VyZQ== IHBvaXNvbmluZw== IENvbXB1dA== IFdvcmRQcmVzcw== bWFqb3I= IFZhbHZl RmFu IFRocm93 IFJvbWFucw== IERlcHJlc3Npb24= YWRvcw== IHRvcnR1cmVk IGJhbGFuY2luZw== Ym90dG9t IGFjcXVpcmluZw== IE1vbnRl YXJkaQ== IGF1cmE= ICMj IFN0YW5kaW5n IEF0bGFz Q0Y= IGludHJpbnM= IEJlbmdoYXpp IGNhbXBpbmc= IHRhcHBlZA== YmxhZGU= c3Ryb3Vz IFJhYmI= IFdyaXR0ZW4= dGlw IE5laWdo c3RlcmRhbQ== IEFsbG93 IEhlYWxpbmc= IFJob2Q= bnVt IGNhZmZlaW5l IFBlcmNlbnQ= IGJvbw== IGFwcGxlcw== MzA1 IHdlbGNvbWluZw== IGFwcGxhdWQ= IGF1c3Rlcml0eQ== wrE= IFJlYWxpdHk= ZWZl 5a4= IHN1Y2tz IHRhYnM= IFBheVBhbA== IGJhY2twYWNr IGdpZnRlZA== YWJ1bGFyeQ== IFNjb3V0 aXJ0ZWVu IGNoaW4= IG9taXR0ZWQ= IG5lZ2F0aXZlbHk= IGFjY2Vzc2luZw== IEVhcm4= IGFtYnVsYW5jZQ== IGhlYWRwaG9uZXM= IDIwNQ== IFJlZnJlc2g= cHJlc2lkZW50 IEtpdGNoZW4= IEVudGVyZWQ= IFNueWRlcg== MDA1 b21pY2Fs IGJvcnJvd2Vk IE5lbQ== IGF2aWF0aW9u IHN0YWxs cmltaW5hdGlvbg== IHVuaWZvcm1z aXRpbWU= IFNpbW1vbnM= ZW5lcmd5 YWJsaXNoZWQ= eXk= cXVhbGlmaWVk IHJhbGxpZXM= IFN0dWFydA== ZmxpZ2h0 IGdhbmdz cmFn IHZhdWx0 bHV4 IENvbXBhcg== IGRlc2lnbmF0aW9u MjA5 IEpvcw== ZG9sbGFy emVybw== IHdlbGxz MzAz IGNvbnN0aXR1ZW50cw== IGhlY2s= IGNvd3M= IGNvbW1hbmRlcnM= IGRpZmZlcmVudGlhbA== IENhdGhlcmluZQ== Mjk5 IHZhbHZl IGJyYWNl IHBlcnNwZWN0aXZlcw== Y2VydA== ZmFjdA== aWN1bGFybHk= IE1jTg== cGxhbmVz IGludHJpYw== IHBlYXM= b3Zhbg== IHRvc3NlZA== cmV0Y2g= IExvcGV6 IHVuZmFtaWxpYXI= ZGVhdGg= IEFwYXJ0 IENoYW5n IHJlbGlldmVk cm9waGU= IGFpcnBvcnRz IGZyZWFr dXRpbA== TWlsbA== IENoaW4= IE93ZW4= bWFsZQ== IEJyb2tlbg== IFdpbmRz cm9i cmlzaW5n IGZpcmVmaWdodGVycw== IGF1dGhvcml0YXJpYW4= IDE0OA== Qml0Y29pbg== ZXh0ZXJuYWw= IGJyb3dzZXJz aWNoZXZlcg== b3JpYW4= IHVuYg== IHBva2U= IFpvdA== TWlk IFBvcHVsYXI= IGNvdmVydA== IGNvbnRyaWJ1dGVz IDY1MA== IGNvbnRlbnRpb24= R2F0ZQ== IGNvbnNvbGVz IGNocm9tb3M= IElY IHZpc3VhbGx5 IEVpc2Vu IGpld2Vscnk= IGRlbGVnYXRpb24= IGFjY2VsZXJhdGU= IFJpbGV5 IHNsb3Bl IGluZG9vcg== aXRpYWxseQ== IGh1Z2VseQ== IHR1bm5lbHM= IGZpbmVk IGRpcmVjdGl2ZQ== IGZvcmVoZWFk dXN0b21lZA== IHNrYXRl TXVzaWM= Z2Fz IHJlY29nbml6aW5n YW1ibw== IG92ZXJ3ZWlnaHQ= IEdyYWRl 2Yo= IHNvdW5kaW5n IGxvY2tpbmc= IFJFTQ== U3RvcmU= IGV4Y2F2 IExpa2V3aXNl IExpZ2h0cw== IGVsYm93 IFN1cHBseQ== d2lj IGhhbmRzb21l MTk5NA== Q29sbA== IGFkZXF1YXRlbHk= IEFzc29jaWF0ZQ== IHN0cmlwcw== IGNyYWNrZG93bg== IG1hcnZlbA== IEt1bg== IHBhc3NhZ2Vz QEBAQA== IFRhbGw= IHRob3VnaHRmdWw= bmFtZXNl IHByb3N0aXR1dGlvbg== YnVzaW5lc3M= IGJhbGxpc3RpYw== cGVyc29uYWw= Y2ln aXphdGlvbmFs Um91bmQ= IMKgIMKgIMKgIMKg IENvbGVtYW4= IGFkbWl0dGluZw== IFBsdWc= IGJpdGNvaW5z IFN1eg== IGZhaXJuZXNz IHN1cHBsaWVy IGNhdGFzdHJvcGhpYw== IEhlbGVu b3F1 TWFyYw== IEFydGljbGVz Z2ll IGVuZGFuZ2VyZWQ= IGRlc3Rpbnk= IFZvbHQ= b2xpYQ== YXhpcw== IGNoZWF0 IHVuaWZpZWQ= SUNP cXVvdGU= MzAy IFNlZA== IHN1cHByZXNzaW9u IGFuYWx5emluZw== IHNxdWF0 IGZpZ3VyaW5n IGNvb3JkaW5hdGVz IGNodW5rcw== IDE5NDY= IHN1YnA= IHdpa2k= IEZvcmJlcw== IEp1cGl0ZXI= IEVyaWs= aW1lcg== IENvbW1lcmNpYWw= XCk= IGxlZ2l0aW1hY3k= IGRlbnRhbA== IE1lYW4= IGRlZmljaXRz NTUw T3JpZ2luYWxseQ== IEhvcnJvcg== IGNvbnRhbWluYXRpb24= bGxhaA== IGNvbmZpc2M= IENsYXJl VEI= IEZhaWxlZA== YW5lZA== IHJ1bGVy IENvbnRyb2xsZXI= IGZlbWluaXN0cw== Rml4 Z2F5 MjA3 IHJhYmJpdA== VGhpcmQ= b3dudG93bg== IGdsdWU= IHZvbGF0aWxl IHNoaW5pbmc= IGZvbGw= IGltcGFpcmVk IHN1cGVycw== 5og= IGNsdXRjaA== mumGkg== IHByb2xldA== ICgh IHllbGxlZA== IEtpZXY= IEVybg== IFNob2Nr S0I= IHNpdHVhdGVk cXVlcnk= IE5hcw== IGFubmV4 Y2hhcmFjdGVy IEhvbGlkYXk= IGF1dG9tYXRpb24= IEppbGw= IFJlbWFzdGVyZWQ= IGxpbmVt IHdpbGRlcm5lc3M= IEhvcml6b24= IEd1aW5lYQ== QVo= IG1haW5sYW5k IHNlY3JlY3k= TEVBU0U= IHB1bms= IFByb3ZpbmNl KCks U3BlZWQ= IGhhbmRpbmc= IFNlYmFzdA== U2ly cmFzZQ== IGpvdXJuYWxz IGNvbmdlc3Q= IFR1dA== aXJyZWw= IHNjaGl6b3BocmVuaWE= IG1pc29neW4= aGVhbHRoeQ== SXJvbg== IHJlYWN0ZWQ= LSQ= MjUy IHBsdXJhbA== IHBsdW0= IGJhcmdhaW4= IGdyb3VuZGVk ZmluZGVy IGRpc3Nl IExheg== T09E IGF0cm9j RmFjdG9yeQ== IG1pbmlvbnM= IG9yaQ== IEJyYXZl IFBSRQ== IE15YW5tYXI= IEhvZA== IGV4cGVkaXRpb24= IGV4cGxvZGU= IENvb3Jk IGV4dHI= IEJyaWVm IEFESEQ= IGhhcmRjb3Jl ZmVlZGluZw== IGRpbGU= IEZydWl0 IHZhY2NpbmF0aW9u IE1hbw== b3NwaGVyZQ== IGNvbnRlc3Rz LXw= IGZyZW4= aXNwaGVyZQ== Um9t IFNoYXJw IFRyZW5k IGRpc2Nvbm5lY3Q= 4oCi4oCi IHBlcnNlY3V0aW9u RWFydGg= IGhlYWx0aGllcg== Mzg0 IGNvYg== IFRyaW5pdHk= T1dT QU5O IHNwZWNpYWx0eQ== IGdydQ== IGNvb3BlcmF0aXZl d2h5 U3RhcnRpbmc= IElzc3Vlcw== c3RyZQ== ZW5zb3I= IDE4NQ== QWR2 IT8= IFJldmVs ZW1pYQ== IEh1bGs= IGNlbGVicmF0aW9ucw== IFNvdQ== cmF1ZA== IEtsZWlu IHVucmVhbA== Y29udGV4dA== IHBhcnRuZXJzaGlwcw== IGFkb3B0aW5n dGljYWw= IHNwbGFzaA== IEhlemJvbGxhaA== Y2F0ZWdvcnk= Y3ljbG9w eHRvbg== IERvdA== dXJkeQ== dHo= IGVudmVsb3Bl IE5M 4pU= IHdoZXJlaW4= U3BlYw== MTg0 IHRlbGV2 YWxpYXRpb24= IG15dGhz 5bA= IHJpZ29yb3Vz IGNvbW11bmljYXRpbmc= IG9ic2VydmVy IHJlaGU= IFdhc2g= IGFwb2xvZ2l6ZWQ= IFRpbg== IGV4cGVuZGl0dXJlcw== d29ya2Vycw== ZG9jdW1lbnQ= IGhlc2l0YXRl IExlbmlu IHVucHJlZGljdGFibGU= IHJlbmV3YWw= Y2xlcg== b2tpYQ== IENPTlQ= IHBvc3RzZWFzb24= VG9rZW5z IGV4YWNlcmI= IGJldHRpbmc= IDE0Nw== IGVsZXZhdGlvbg== V29vZA== IFNvbG9tb24= MTk0 MDA0 b3V0cHV0 IHJlZHVuZA== IE11bWJhaQ== IHBI IHJlcHJvZHVjZQ== IER1cmF0aW9u TUFY IGJvZw== Q0JT IEJhbGFuY2U= IFNndA== IFJlY2VudA== IGNk IHBvcHBlZA== IGluY29tcGV0 cHJvcA== YXlhbg== Z3V5 UGFjaWZpYw== IHR5cg== IHt7 IE15c3RpYw== IERhbmE= IG1hc3R1cmI= IGdlb21ldHJ5 w6I= IENvcnJlY3Q= IHRyYWplY3Rvcnk= IGRpc3RyYWN0ZWQ= IGZvbw== IFdlbHNo THVj bWl0aA== IHJ1Z2J5 IHJlc3BpcmF0b3J5 IHRyaWFuZ2xl IDIxNQ== IHVuZGVyZ3JhZHVhdGU= IFN1cGVyaW9y Y2hhbmdpbmc= Xy0= IHJpZ2h0bHk= IHJlZmVyZWU= IGx1Y3JhdGl2ZQ== IHVuYXV0aG9yaXplZA== IHJlc2VtYmxlcw== IEdOVQ== IERlcmJ5 IHBhdGh3YXlz IExlZA== IGVuZHVyYW5jZQ== IHN0aW50 IGNvbGxlY3Rvcg== RmFzdA== IGRvdHM= IG5hdGlvbmFscw== IFNlY3VyaXRpZXM= IHdoaXA= UGFyYW0= IGxlYXJucw== TWFnaWM= IGRldGFpbGluZw== bW9vbg== IGJyb2FkY2FzdGluZw== IGJha2Vk MjY1 aG9sbQ== IFNhaA== IEh1c3NlaW4= IENvdXJ0ZXN5 MTc0 IDE0Ng== IGdlb2dyYXBoaWM= cGVhY2U= IGp1ZGdpbmc= IFN0ZXJu QnVy IHN0b3J5bGluZQ== R3Vu IFN0aWNr MjQ1 MzA3 44K044Oz IEFkbWluaXN0cmF0b3I= IGJ1cm50 IHBhdmU= Y2hvZXM= RXhlYw== IGNhbXB1c2Vz UmVzdWx0 IG11dGF0aW9ucw== IENoYXJ0ZXI= IGNhcHR1cmVz IGNvbXBhcmVz IGJhZGdl U2NpZW50 IGVyYWQ= aWVyeQ== b2k= ZXR0ZXM= IEVzdGF0ZQ== IHN0cmFw IHByb3VkbHk= IGZyaWVk IHdpdGhkcmF3bg== IFZveQ== cGhvbnk= SXRlbXM= IFBpZXJjZQ== YmFyZA== IGFubm90YXRpb24= YW50b24= aWxsb24= SW1wcm8= Li4uKQ== IGhhcHBpZXI= LS0tLS0t YWRqdXN0 IHN0YWZmZXJz IGFjdGl2aXNt IHBlcmY= IGFscmlnaHQ= TmVlZA== IGNvbW1lbmNl IG9waW9pZA== IEFtYW5kYQ== RXM= IFBhcnM= IEthdw== V29ya3M= MjQ4 IGluZG8= dGM= ZW5kYW50 IE1vdG8= IGxlZ2FsaXphdGlvbg== T1RF IHRhc2tlZA== IHRzcA== IEFDVElPTlM= MTY2 IHJlZnJlc2hpbmc= IE5S IFBlcmV6 IGluZnJpbmdlbWVudA== U1k= TGlzdGVu aW5uaW5n a3U= IHJvdGF0ZQ== cHJvZ3JhbQ== YXJhaA== RGVzaWdu ICjCow== IHN0b3Jpbmc= IHdhcnJhbnRz IGp1ZGdlbWVudA== IEJyaXN0 dXN1YWxseQ== cGhvdG8= IFJhbg== IFBpbmU= IG91dHJhZ2VvdXM= IFZhbGVudGluZQ== bHVlbmNl IEV2ZXJ5Ym9keQ== QWx0ZXJu IHJlbGV2YW5jZQ== IHRlcm1pbmF0ZWQ= IGRlc3NlcnQ= IGZ1bGZpbGxlZA== IHByb3NlY3V0ZWQ= IFdvcmRz IG1pZ3JhbnQ= IGN1bHRpdmF0aW9u w4PDgsODw4LDg8OCw4PDgsODw4LDg8OCw4PDgsODw4LDg8OCw4PDgsODw4LDg8OCw4PDgsODw4LDg8OCw4PDgg== aWRlbGl0eQ== IFZlcm4= IExvZ2lu IG1ldGFwaG9y IFRpcA== IHJlY3J1aXRz IFBpZw== cmliaW5n IGVudGh1c2lhc3Rz ZXhwZXI= IGZyaWdodGVuaW5n IEhhaXI= YW5zb24= c3RyYXRl IGhp SGVpZ2h0 IG93bmluZw== bm9uZQ== IGRpc2xpa2U= IGtuaXZlcw== cGhlcmQ= IGxvdWRseQ== IEFQSXM= RGlzcGxheQ== IExhYw== IFVTUw== YWJs dmVyYWdlcw== SmV3 IDE3Mg== IEhpc3RvcmljYWw= YXRvb24= IFBoeXNpY3M= aW50ZXJu IHdhcm10aA== IHRvcHA= RE0= IGd1bm1hbg== IGVtcGVyb3I= b2Rp 44Oj aW5hdG9yeQ== IFJpYg== IDEzMQ== IFNhdHVybg== IFNoaW5pbmc= IHdha2luZw== UXVvdGVz IGNvbWVkaWFu ZW5iZXJn wr0= IGJlbGlldmVycw== IHBhcGVyd29yaw== Y3VzdG9t IGxldg== IGxhbWVudA== IHBvdXJpbmc= MjIy cG9saXRpY2Fs IFN1cHBsZW1lbnQ= bWFpZA== IGNydWVsdHk= IHRyZWFk eXNpY3M= QXc= cml0ZXM= IG1vZGlmaWVy IFBvc2l0aW9u QWRhbQ== bGI= dWJz IGltcGVyZmVjdA== IGNsdXN0ZXJz IEVuZ2luZWVy IENoZXJyeQ== IGluYXVndXJhdGlvbg== IFNhdQ== IGVtYm9kaW1lbnQ= IFVuY2xl IG92ZXJy IGV4cGxvc2lvbnM= Y3VsZQ== IFByaW5jZXRvbg== IEFuZHJlYQ== IGluY29ycmVjdGx5 IGVhcm5lc3Q= IHBpbGdy IFNwcmludA== IHNsZWV2ZQ== IGhlYXJz IEFtYXppbmc= IGJyb3dzaW5n YWdpbg== IGhvbWVsYW5k IGhhdw== IGRpdmluZw== aXN0ZXJlZA== MTc4 IGJhcmdhaW5pbmc= IEFyY2FkZQ== IGRlbGVnYXRl dGVyc29u Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLg== IEphY2tzb252aWxsZQ== Mjc1 IHN0YWdu IGFkYW0= IFNoZXJtYW4= Q0I= IHN1YnVyYg== IEZvb2Rz IGNvbnZlcnRpbmc= IEFyaXN0 IGNoYW1iZXJz bG92ZQ== IGFtaW5v IEdhbg== IG1hZG5lc3M= bWM= IFVTRQ== ZGVmaW5lZA== IHVsdHI= aW5kdXN0 IHdvbHZlcw== bGFuY2U= QWRkaXRpb25hbGx5 IGNyYWNrcw== YXNpYQ== IFJlYXNvbg== IFB1bXA= IGFjY2lkZW50YWw= IExhc2Vy IFJpZA== IGluaXRpYWxpemVk ZWxsaQ== IHVubmFtZWQ= IG5vdW4= IFBhc3NlZA== IGhvc3RhZ2U= IEV0aGlvcA== c2hpcnRz IHVucmVs IEVtYmFzc3k= IDE5NDE= IGF0b21z IHB1cnBvcnRlZA== MTY0 IEZp IGdhbGxvbnM= IE1vbmljYQ== IHBn ZW5tZW50 IHNvcnRlZA== IEdvc3BlbA== IGhlaWdodHM= IHRyYWNlZA== IHVuZGVyZ29pbmc= U2hlbGw= IHNhY2tz IHByb3BvcnRpb25z IGhhbGx1Yw== Rm9udA== YWNldA== IHdhcm1lcg== IElOVEVS IGdyYWJiaW5n UGx1Zw== IHJlYWxpemF0aW9u IEJ1cmtl IGVuY2hhbnQ= QVRFUg== IFNlZWQ= IGFidW5kYW50 Rk0= IGNpdmlj VnM= aXNp IHZvdw== IHJlcGVy IFBhcnRuZXJzaGlw IHBlbmV0cmF0aW9u IGF4ZQ== IHNoYXR0ZXJlZA== IFpvbWJpZXM= IHZpbnls IEFsZXJ0 ZW9u IG9ibGlnZWQ= IElsbHVzdA== IFBsYXph IEZyb250aWVy IGRhdmlkamw= IFNlcmlhbA== IEhhdg== IE51dHJpdGlvbg== Qmk= IOKWiA== IEpheXM= bGludXg= IGh1cnJ5 IHZveQ== IGhvcGVsZXNz IFN0ZWFsdGg= IOOB ZXNzb3Jz dHRsZQ== Ym9yZw== IFNhZmFyaQ== ZmVsbA== IHdhcnk= ZHVl IEFib3Zl SGE= RUxM IG5vdG9y IFdvbg== VG9v IG9jY3VwYXRpb25z IHBvc3Nlc3Npb25z IGludml0aW5n IHByZWRhdG9ycw== IGFjY2VsZXJhdGVk IDE1Nw== dXRlcnRl IEN1YmU= ZWFzdA== YWNjb3VudA== R2l2ZQ== IHRyYW5zcGxhbnQ= cmVkaWVudHM= aWRhYmxl IHNjcmVlbnNob3Rz IEd1bmQ= IEZT IHRyYXZlbGVycw== IHNlbnNvcnk= IEZpYXQ= IFJvY2tldHM= jos= X3s= RnJpZW5k IGNoYXJtaW5n QUxT IGVuam95bWVudA== bXBo IDUwMDA= IFJFRw== 2YY= Ymlh IGNvbXBpbGF0aW9u cm9zdA== IFZQ IFNjaG5l MjAxOQ== IGNvcHlpbmc= TU9SRQ== IEZsb3Jl ZmFsbHM= MjE1 dG90YWw= IGRpc2NpcGxlcw== ZG91Ymxl IGV4Y2VlZGluZw== IHNtYXNoZWQ= IGNvbmNlcHR1YWw= IFJvbWFuaWE= IEJyZW50 IElDRQ== IFRvdQ== IGdyYXA= IG5haWxz MTg5 44OY IHByb2N1cmU= ZXVy IGNvbmZpcm1pbmc= IENlYw== YXdp IEVkZW4= IG5n IGVuZ2luZWVyZWQ= YXRpY3M= IGhvb2tlZA== IGRpc2d1c3Rpbmc= IE11cmRlcg== 44K/ TGlicmFyeQ== IDE2OA== QWxtb3N0 aGVtYXRpYw== TWVudQ== IE5vdHJl IEp1cg== IGtpZG5hcHBlZA== IGhhY2tlcg== IEphZGU= IGNyZWVweQ== IGRyYXdpbmdz IFNwb25zb3I= IGN5Y2xpc3Rz IEdvYmxpbg== IG9wdGltaXplZA== IHN0YWdlZA== IE1jRA== YmV0d2Vlbg== QWdl ZW5v U2V4 IFdpZGU= bmluZ3M= YXZpcw== IGluY2FwYWJsZQ== IEtvYg== IHJld2FyZGluZw== IExvbmU= b2xlc2NlbnQ= IGNvbnRyYWN0ZWQ= IHN0aWNreQ== Sm9zZQ== QmFsbA== ZmVzdA== IElucHV0 IFJlY2VudGx5 IHRvbWF0 c3F1YXJl QXBwbGljYXRpb24= IG5pdHJvZ2Vu IGR1cGxpY2F0ZQ== IFJlY29u IERlYXI= TG9uZG9u IGludHJh IGRvY2s= IG91dHJlYWNo IE1pbGxpb24= IG1hbW1hbHM= YW1wdG9u VkFM IHNuYXBz IGRvcw== IFdob2xl IFJlYWR5 VHJ5 IFdpbm5pcGVn ZWFyYW5jZQ== IGluY3VycmVk cmVuY2hlZA== IE5TVw== aWxvdA== cmFpbmU= IGN1YmU= Z290 IHJ1bndheQ== ZXRlcm1pbmVk IEhhd2tz IHN1cnZpdm9y IFdpc2g= IERpbg== IERFRg== IFZhdWx0 MTg3 IG11c2hyb29tcw== IGNyaXNw YmV5 IERpc2NvdmVyeQ== IGRldmVsb3BtZW50YWw= IHBhcmFkaWdt IGNoYW90aWM= IFRzdQ== IDMzMw== Ym9ucw== IGJhY3RlcmlhbA== IGNvbW1pdHM= IGNvc21pYw== IG1lZ2E= b2NhdGl2ZQ== IFBhaW50 b3Bob2JpYw== IHZhaW4= IGNhcnZlZA== IFRoaWVm IEd1bA== b3dzaGlw IGNpdGVz IEVkaW5idXJnaA== IGRpbWluaXNoZWQ= IGFja25vd2xlZGdlcw== IEtpbGxz IG1pY3Jvdw== IEhlcmE= IHNlbmlvcnM= IHdoZXJlYnk= SG9w YXRyb24= IHVuYXZhaWxhYmxl IE5hdGU= IDQ4MA== IHNsYXRlZA== IFJlYmVjY2E= IEJhdHRlcnk= IGdyYW1tYXI= IGhlYWRzZXQ= IGN1cnNvcg== IGV4Y2x1ZGluZw== YW55ZQ== YXVuZGVyaW5n ZWJpbg== IGZlYXNpYmxl IFB1Ymxpc2hpbmc= IExhYnM= IENsaWZm IEZlcnJhcmk= IHBhYw== dmlzaWJsZQ== bWFya2Vk cGVsbA== IHBvbGl0ZQ== IHN0YWdnZXJpbmc= IEdhbGFjdGlj IHN1cGVyc3Q= IHBhcmFu IE9mZmljZXJz 44CB IHNwZWNpZmljcw== dWx1cw== MjM5 IFBhc3Rl QU1Q IFBhbmFtYQ== IERlbGV0ZQ== YW5ndWFyZA== cmVzdHJpYWw= IGhlcm9pYw== IER5 2KfZhA== IGluY3VtYmVudA== IGNydW5jaA== dHJv IHNjb29w IGJsb2dnZXI= IHNlbGxlcnM= dXJlbg== IG1lZGljaW5lcw== IENhcHM= IEFuaW1hdGlvbg== b3h5 IG91dHdhcmQ= IGlucXVpcmllcw== MjI5 IHBzeWNob2xvZ2lzdA== IFNhc2s= ZXZpbA== IGNvbnRhbWluYXRlZA== 44Ko aGVyZW5jZQ== IGJyYW5kZWQ= IEFiZHVs emg= IHBhcmFncmFwaHM= IG1pbnM= IGNvcnJlbGF0ZWQ= ZXJi IGltcGFydA== IG1pbGVzdG9uZQ== IFNvbHV0aW9ucw== b3RsZQ== IHVuZGVyY292ZXI= IG1hcmNoZWQ= IENoYXJnZXJz ZmF4 IFNlY3JldHM= IHJ1dGg= d2VhdGhlcg== IGZlbWluaW5l IHNoYW0= IHByZXN0aWdpb3Vz aWdnaW5z IHN1bmc= aGlzdG9yeQ== ZXR0bGU= Z2dpZQ== IG91dGRhdGVk b2xhbmQ= IHBlcmNlcHRpb25z IFNlc3Npb24= IERvZGdlcnM= dWo= IEVORA== RG9j IGRlZmljaWVuY3k= R3JhbmQ= IEpva2Vy IHJldHJvc3BlY3Q= IGRpYWdub3N0aWM= IGhhcm1sZXNz IHJvZ3Vl IEF2YWw= RXF1 IHRyYW5zYw== IFJvYmVydHNvbg== IERlcGVuZGluZw== IEJ1cm5z aXZv IGhvc3RpbGl0eQ== RmVhdHVyZXM= k5g= IGRpc2NvbWZvcnQ= IExDRA== c3BlY2lmaWVk IEV4cGVjdA== MzQw IGltcGVyYXRpdmU= IFJlZ3VsYXI= Q2hpbmVzZQ== IHN0YXRld2lkZQ== IHN5bW0= IGxvb3Bz IGF1dHVtbg== Tmljaw== IHNoYXBpbmc= IHF1b3Q= IGNoZXJyeQ== IENyb3NzcmVm 6Kaa6YaS U3RhbmRhcmQ= aGVlZA== IERlbGw= IFZpZXRuYW1lc2U= IG9zdA== IFZhbGt5cmll T0E= QXNzYWQ= IHJlYm91bmQ= IFRyYWZmaWM= cGxhY2Vz 5pg= IEJ1Yw== MTcy IHNoZWx0ZXJz IGluc2lzdGluZw== IENlcnRhaW5seQ== IEtlbm5ldGg= IFRDUA== IHBlbmFs IFJlcGxheQ== aGVhcmQ= IGRpYWxlY3Q= aXph IEZZ aXRjaGVy IERM IHNwaXJhbA== IHF1YXJ0ZXJiYWNrcw== IGh1bGw= IGdvb2dsZQ== IHRvZGQ= IFN0ZXJsaW5n IFBsYXRl IHNweWluZw== bWJvbA== IFJlYWxt IFByb2NlZA== IENyYXNo IHRlcm1pbmF0ZQ== IHByb3Rlc3Rpbmc= Q2VudGVy Z3VpZGVk IHVuY292ZXI= IGJveWNvdHQ= IHJlYWxpemVz c291bmQ= IHByZXRlbmRpbmc= IFZhcw== MTk4MA== IGZyYW1lZA== IDEzOQ== IGRlc2NlbmRlZA== IHJlaGFiaWxpdGF0aW9u IGJvcnJvd2luZw== IEJ1Y2g= IGJsdXI= Um9u IEZyb3plbg== ZW56YQ== Q2hpZWY= IFBvb3I= IHRyYW5zbGF0ZXM= TUlO IDIxMg== SkVDVA== IGVydXB0ZWQ= IHN1Y2Nlc3Nlcw== U0VD IHBsYWd1ZQ== IGdlbXM= ZG9tcw== IHN0cmV0Y2hlcw== IFNweQ== IHN0b3J5dGVsbGluZw== Q3JlZGl0 IFB1c2g= IHRyYWN0aW9u IGluZWZmZWN0aXZl IEx1bmE= IHRhcGVz IGFuYWx5dGljcw== ZXJjaXNl IHByb2dyYW1tZXM= IENhcmJvbg== IGJlaG9sZA== aGVhdnk= IENvbnNlcnZhdGlvbg== IEZJUg== IHNhY2s= dGVybWlu cmlja3M= IGhvdXNlZA== IHVudXN1YWxseQ== SWNl IGV4ZWN1dGluZw== IE1vcm9j ZWRheQ== IGVkaXRpb25z IHNtYXJ0ZXI= IEJB IG91dGxhdw== IHZhbmlzaGVk aWJh QUxTRQ== IFNpbHZh MjM4 Q291bGQ= IHBoaWxvc29waGVy IGV2YWN1YXRlZA== U2VjcmV0 MTQy IHZpc2Fz 44Ks IE1hbHQ= IENsZWFybHk= IE5pZ2Vy IENhaXJv IEZpc3Q= Mzgw IFhNTA== YXV0bw== aXRhbnQ= IHJlaW5mb3JjZWQ= UmVjb3Jk IFN1cnZpdm9y R0h6 IHNjcmV3cw== cGFyZW50cw== IG9jZWFucw== bWFyZXM= IGJyYWtlcw== dmFzaXZl IGhlbGxv IFNJTQ== cmltcA== IG9yZQ== IEFybW91cg== MjQ3 IHRlcnJpZmlj IHRvbmVz MTQx IE1pbnV0ZXM= RXBpc29kZQ== IGN1cnZlcw== IGluZmxhbW1hdG9yeQ== IGJhdHRpbmc= IEJlYXV0aWZ1bA== TGF5 IHVucG9w dmFibGU= IHJpb3Rz IFRhY3RpY3M= YmF1Z2g= IENvY2s= IG9yZ2FzbQ== IFNhcw== IGNvbnN0cnVjdG9y ZXR6 R292 IGFudGFnb24= IHRoZWF0 IGRlZWRz aGFv Y3V0cw== IE1jQ2w= IHVt IFNjaWVudGlzdHM= IGdyYXNzcm9vdHM= eXNzZXk= Il09Pg== IHN1cmZhY2Vk IHNoYWRlcw== IG5laWdoYm91cnM= IGFkdmVydGlz b3lh IG1lcmdlZA== VXBvbg== IGdhZA== IGFudGljaXBhdGU= QW55d2F5 IHNsb2dhbg== IGRpc3Jlc3BlY3Q= SXJhbg== IFRC YWN0ZWQ= IHN1YnBvZW4= bWVkaWF0ZWx5 T09PTw== IHdhaXZlcg== IHZ1bG5lcmFiaWxpdGllcw== b3R0ZXN2aWxsZQ== IEh1ZmZpbmd0b24= Sm9zaA== IERI TW9uZGF5 IEVsbGVu S25vdw== eG9u aXRlbXM= MjI4 IGZpbGxz IE5pa2U= IGN1bXVsYXRpdmU= YW5kYWxz SXI= IOw= IGZyaWN0aW9u aWdhdG9y IHNjYW5z IFZpZW5uYQ== bGRvbQ== IHBlcmZvcm1lcnM= UHJpbQ== IGJpZGRpbmc= TXVy IGxlYW5lZA== IFByaXg= YWxrcw== IFvigKZd IFR3aXRjaA== IERldmVsb3Blcg== IEdpcg== IGNhbGxiYWNr QWJzdHJhY3Q= IGFjY3VzdG9tZWQ= IGZyZWVkb21z IFBH dXJhY3k= IGx1bXA= aXNtYW4= LCwsLA== MTk5Mg== IFJFRA== IHdvcm0= TWF0Y2g= IFBsYXRpbnVt SUo= IE93bmVy VHJpdmlh Y29tcGw= IG5ld2Jvcm4= IGZhbnRhcw== T3du IDE5NTk= IHN5bXBhdGg= IHViaXF1 IG91dHB1dHM= IGFsbGV2 IHByYWc= S2V2aW4= IGZhdm9ycw== IGJ1cmlhbA== IG51cnQ= c29sZXRl Y2FjaGU= IDE1Ng== IHVubG9ja3M= dGVjaG4= TWFraW5n IGNvbnF1ZXI= YWRpYw== 5pY= IGVsZg== IGVsZWN0b3JhdGU= IEt1cmRz IFN0YWNr IFNhbXVyYWk= IOKYhQ== IHt9 IFNhaWQ= IEZhbGxvdXQ= IGtpbmRuZXNz IEN1c3RvbXM= IEJvdWxldmFyZA== IGhlbGljb3B0ZXJz b3RpY3M= IFZlZ2V0 Y29tbWVudA== IGNyaXRpY2lzZWQ= IHBvbGlzaGVk IFJlbWl4 IEN1bHR1cmFs IHJlY29ucw== IGRvaQ== YXRlbQ== U2NyZWVu IGJhcnJlZA== Q29tbWVudHM= IEdlbmVyYWxseQ== IHNsYXA= NzIw VmFyaQ== cGluZQ== IGVtcHQ= IGhhdHM= IFBsYXlpbmc= bGFi YXZlcmFnZQ== Zm9ybXM= IENvdHRvbg== IGNhbnM= IERPTg== IFNvbWFsaWE= Q3J5cHQ= IEluY3JlYXNlcw== RXZlcg== bW9kZXJu IHN1cmdlb24= MzAwMA== IHJhbmRvbWl6ZWQ= PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ== QmVybg== aW1wbA== IENPUg== IHByb2NsYWlt dGhvdXNl IHRvZXM= IGFtcGxl IHByZXNlcnZpbmc= IGRpc2JlbA== Z3JhbmQ= QmVzaWRlcw== IHNpbGs= IFBhdHRlcm4= aG0= IGVudGVycHJpc2Vz IGFmZmlkYXZpdA== IEFkdmlzb3J5 IGFkdmVydGlzZWQ= IFJlbGlnaW91cw== c2VjdGlvbnM= cHN5Y2g= IEZpZWxkcw== YXdheXM= IGhhc2h0YWc= IE5pZ2h0bWFyZQ== IHZhbXBpcmU= IGZvcmVuc2lj cm9zc292ZXI= bmFy IG5hdnk= IHZhY2FudA== IER1ZWw= IGhhbGx3YXk= IGZhY2Vib29r aWRlbnRhbGx5 IE5SQQ== IG1hdHQ= IGh1cnJpY2FuZQ== IEtpcmJ5 IFB1enpsZQ== IHNraXJ0 b3VzdA== ZHVsbGFo IGFuYWxvZ3k= aW5pb24= IHRvbWF0b2Vz IE5W IFBlYWs= IE1leWVy IGFwcG9pbnRtZW50cw== IG1hc2M= IGFsbGV5 cmVoZW5k IGNoYXJpdGllcw== IHVuZG8= IGRlc3RpbmF0aW9ucw== IFRlc3Rpbmc= Ij48Lw== IGRlc3RpbmVk IGltcGxlbWVudHM= IEhhcm9sZA== UkVDVA== IG9wdGltaXphdGlvbg== IGtpbG9tZXRyZXM= IGNtZA== IGltcGFpcm1lbnQ= IHVuc3VjY2Vzc2Z1bA== IHN3aWZ0bHk= IEdsYXNnb3c= YXJ0ZW4= IFNoYXJlcw== IEFuc3dlcg== IEFsYnVt IG51dHJpdGlvbmFs 44OW IEZ1dA== IGJsb2M= IE5GQw== IHdob2xlc2FsZQ== IENX IG5lZ2xlY3RlZA== IGxhdW5jaGVy IGFubm91bmNlbWVudHM= T1VMRA== Y29tYg== IHJvdGF0aW5n IHJlc3Rz IFRpY2tldA== Y2hlZGVs TG91 IFZpYw== ICIn IHRlbXBsYXRlcw== IHJlcGxhY2Vz QXJj Ojo6Og== IEdpbGJlcnQ= IGlsbG5lc3Nlcw== IHNjaGVkdWxlcw== IGhldGVyb3NleHVhbA== TElORQ== IGhlcmVpbg== IGNvZXJj IGRlY3JlYXNpbmc= IGRlcG9ydGF0aW9u c3Vkbw== IEluZGlnZW5vdXM= IHdlaWdocw== QWxvbmc= Jyk7 IEJlbmdhbHM= NzA3 IGpvaW50cw== dmVydHM= IDE0OQ== bmFpcmU= IHNpbXBsZXN0 IGxvcmU= MTA4MA== ZmljdGlvbg== IERhdGFiYXNl IHJlc2VydmF0aW9u IHNvdQ== IHNhbmN0dWFyeQ== YXVkaW8= YXBsZQ== IHZlZ2V0YXJpYW4= IGFudGljaXBhdGlvbg== bWljcm8= IGVuZHVyaW5n IGRlcGFydGVk IHNpZGV3YWxr IHByb2hpYml0cw== IEZvbnQ= IGNvbXB1dGU= IFNlY3Q= IDE1OA== QmF0dGxl IGJvbWJlcg== IGRpc3RyYWN0aW9u IGVuZHVyZWQ= IHByYWN0aXRpb25lcnM= IGRpc3R1cmJlZA== IGRyYW5r b3JkZXJlZA== IHN1cnByaXNlcw== c2VhdA== U2VjdXJpdHk= IFdpc2RvbQ== b2dv IHN1YnBhcmFncmFwaA== IFBlbmluc3VsYQ== IE9yaWdpbnM= aXJlbg== IFBhdg== aWdnbGU= IGdyYXRpdHVkZQ== IEdyYXZpdHk= b3ZlcnR5 aW1hbg== Y3Ry IENhZXNhcg== Y291bGQ= Z2Vt IHNraWVz IGNoYW1w IGFncmVlaW5n RmFtaWx5 RGl2 MTc2 IG1lc3N5 dW1wdGlvbg== RmVkZXJhbA== ZXJubw== IENoYXQ= QmV5b25k IGRldm90ZQ== IFdhbHNo IGR1bXBlZA== IGFjY3VtdWxhdGlvbg== c3RhZA== aGliaXRpb24= IHNtb2tlcnM= IGluc3BlY3Rvcg== RnJlbmNo aXNzYW4= IFZpdGE= IHJlc2VhcmNoaW5n UkFN IENlbHRpY3M= IGNsb2Fr IFRlcnJh TWFyeQ== c29sZA== IERPTQ== bW9kcw== SW50ZWw= IG11bHRpdHVkZQ== IEltcHJvdmVk IHJlbGlhbmNl IGFydGlmYWN0 IGFsYXJtaW5n UHJvbQ== aG9u VElPTg== bWVkaXVt IHJlZmxleA== IEV4Y2Vs IHdlYWtlbmVk MTYz MjI0 IGNvc3R1bWVz IHVuaXF1ZWx5 IHNvcnJvdw== IG1hbnNpb24= d3A= IHNhbHY= IEdyb3Zl YnNw IFNuaXBlcg== IFNoaXBwaW5n IFBPVw== IHVuZGlz IGJyYW5kaW5n R2lybA== IEFobWFk IExha2Vz IENvcmV5 IGluaGVyaXRhbmNl ZW5lcnk= IHBhY2tpbmc= IFByZXN0 RGVzdA== Rlc= IHJlZ3VsYXRvcg== bG9ja2Vk IGNvbnRlc3RlZA== IE1lbGlzc2E= IER1Yw== IHVucG9wdWxhcg== IHN0YWNrZWQ= IDE5MTc= IHllYXJseQ== IHN0YXJl IGFzc2Vzc2luZw== w7g= IGJldmVyYWdlcw== IGNvbXBldGl0aW9ucw== IHN0cmVuZ3RoZW5pbmc= YWxvbmc= IEx1ZA== IG1lbHRlZA== c3RhbmJ1bA== IGJvdW50eQ== RU5D IExhbmRz IGRlY2xhcmVz IGN1c3RvbWl6ZQ== IGNvbXBvc2l0ZQ== 44Os Q00= b2dyYXBoaWNz IFRlbXA= IGNvbnRlbmRlcg== IGluc2lnbg== IExBTg== IGRpc2FzdGVycw== aW5zcGlyZWQ= IGp1ZGdtZW50cw== dXN0YWluYWJsZQ== dXJzaW9u IHZhcmlhbmNl IFVsdGltYXRlbHk= IC0tLS0tLS0t dWFkb3I= IFJY IG1lbHRpbmc= IEV4dGVuZGVk IFR3ZQ== TWFqb3I= IEJpbA== IHN5cnVw cXVpY2s= IEhvbGRlcg== IGlubm9jZW5jZQ== VUxF IE1pZ2h0 OTk5OQ== IGZhbA== IGNvbnRpbnVpdHk= IDE5NTM= IEJT c3RpbGw= TGF0 IEFidXNl IHVuc3VwcG9ydGVk eHh4eHh4eHg= IGluc3RpdHV0ZQ== IGZyYWdtZW50 IFBlcA== V2VzdGVybg== IENhdXNl IEZyYWc= IEFycw== 4KU= YXN0aWNz IGJpc2hvcA== IGNyb3NzZXM= IDE1NA== IFVwZ3JhZGU= IG1pdGlnYXRl IFJheW1vbmQ= TW9kcw== IHRvbWF0bw== IHN0dW1ibGVk IGRpZmZlcnM= SW5pdGlhbA== IFJhc3BiZXJyeQ== IGlnbm9yZXM= IHRhbnQ= w6A= IHJlbGF5 IGJpc2V4dWFs IGNvbmZlc3Npb24= IGRlbWVudA== aW5hcw== IEhlYXRoZXI= cGxhdGZvcm0= ZHJpdmluZw== Ym91cmc= IE11c2g= IGh5c3Rlcg== RGV0YWlscw== IGRyaWZ0 IFdhbGQ= IEx1Y2tpbHk= b3Jm IGV4cGlyZQ== IFB1bmNo enltZQ== Z29sZA== IHVucGFpZA== IFRyZW50 IHVuYXJtZWQ= IGlsbGljaXQ= IFRvdHRlbmhhbQ== IHNtYXNo SW50ZXJuYXRpb25hbA== aW5rZXI= IHN0aW5n IFNhZGRhbQ== IEFSVA== IHRydXRocw== YmlydGg= IHNvYmVy IE5pdA== IGli IHVzYWJsZQ== IHN0YWNrcw== IFN5bHY= IG5vcnRoZWFzdA== IGRvbWluYXRpb24= IE1vdXI= RU5TRQ== IE1lYXN1cmU= IHByb2dyYW1tZXI= IDwt MTgy IENvbmRpdGlvbg== IGJhY2t5YXJk aXJsaW5n IEplYg== IENyZWVk IEhhbmc= IENPTVA= RkVS IElzaA== IGRldGVjdGl2ZXM= LS0tLS0tLS0tLS0tLS0t IE1lc3Nlbmdlcg== IGxvb3Bo IGdhdGV3YXk= MTUx IE1hdGVyaWFscw== IERU IGRvb21lZA== b2Rv IHNsaWNlcw== IGVtYWlsZWQ= IFBlcmw= IHJlbm92 VVRI b2R5bmFt IFNvdXRod2VzdA== Z2V0aWM= IFRQUA== IG9wdGltaXNt IFRvdw== dWxhdG9ycw== cHJvdGVjdGVk eWxlcw== wqs= IGV4aWxl ZW52 UHJvcA== IFppbW1lcm1hbg== 2Y4= Q2E= b21hbHk= 44OG IHJhaWxyb2Fk TGVl MjMy IHJlcGxpY2F0ZQ== IGNvbWZvcnRhYmx5 YWN0bHk= IHJhdg== IHRlbGVzY29wZQ== IGhvbmVzdHk= IFBlcHBlcg== IEJyaW5n IHJpY2hlc3Q= IG91dGRvb3Jz IGhhbGxz IGNvbnRlbmQ= SVNF IHN1Ym1pdHRpbmc= IG5haXZl YXJhdGlvbnM= IDE0Mw== IHBvaXNlZA== cmVzcG9uc2libGU= IHNvY2tz IFNrdWxs UXVlc3Rpb24= IGRpc2NvdmVyaWVz Sm9pbmVk IEVuZW1pZXM= IFdpcmVsZXNz IFJldmVuZ2U= IHB1enpsZXM= IGNlYXNlZA== Mjkw Y3JpcHRpb25z IENvbnNvbGU= IGJvaWxpbmc= IGRpc2NyZXA= IGRlZHVjdGlvbg== IGFyc2VuYWw= WFhYWA== IEFtc3RlcmRhbQ== cm94aW1hdGVseQ== IFNoYW5l IHBvc2luZw== IEFDTFU= IENvbXBhbmllcw== IHRoZW9sb2d5 IFVn cXVhcnRlcg== IEhhbms= Q29pbg== IEx2 IGFsbGVnYXRpb24= IEF2b2lk IGluZGVmaW5pdGVseQ== IGNvbW1vZGl0aWVz IGJyaWc= IE1hbml0 IHRlbnRo bWV0aG9k IEtuaWNrcw== IOKAjg== IGludm9rZWQ= RGlhbA== QVJB IGNhdWN1cw== MjI3 IEphYg== IG91bmNlcw== YmF5 IGJ1ZGR5 ZmFu MjM0 IEhpbA== YWRo IFRZ IElORA== IDE5Mzk= IGl0ZXJhdGlvbg== IEdvbnphbGV6 IFZlcnQ= IElP ZW1i cmVyYQ== ZW5jaA== IFJlcXVpcmVtZW50cw== IFdpbnM= IGxpdmVzdG9jaw== aG91cnM= IuKApg== YnJhbA== TWFyZw== IERvbmU= IHdhc3Rpbmc= aW5nZWQ= Z3JvdXBz IHdpc2hpbmc= IFR1bWJscg== IHRhcHBpbmc= IG5hdGlvbmFsaXNt IEJ5cg== IHNxdWFyZXM= IEFjdGlvbnM= 44Ol SW5zaWRl ZGVidWc= IGFwcGVuZA== IHN0dWJib3Ju IENpbmQ= VGVsbA== IHRlYXJpbmc= IFJleQ== b3Jj IERheXRvbg== IE5I IE1hZG5lc3M= Q2hhcmw= IE1vcnJpc29u ZmlsdGVy IGFjY3VzZQ== IC4v IHRvcnJlbnQ= IGRlY2xpbmVz Z2FsbGVyeQ== TWluZQ== IG5lZ290aWF0aW9u IEJhc2hhcg== b3BpYQ== MTk5Mw== ZW1vcnQ= IE5vdmVs IEZhbmc= ZXJzaXZl IEluc3RhbnQ= IHJvbGxlcg== QXJvdW5k IEVsZWN0aW9ucw== R2FtZXM= IGluZXhwZW5zaXZl IHdvcnM= IHZ1bA== IEhvbGU= IHVuYmVsaWV2YWJsZQ== IG5hdXNl IGVudHI= Ym9hdA== IFNURQ== IGJ1c2g= IEhhc3Nhbg== IHdv IHBhdXNlZA== IE1pZw== bGl2ZWQ= IHNjb3V0 IGxpdGg= UHVibGlzaGVk ZHVpbm8= Y29vbA== IGNpcmN1bGF0aW5n aWRhcw== IFBhbQ== dmlvbGVudA== IENyYXdmb3Jk dWRkbGU= IExldHRlcnM= R3VhcmQ= bW9ycGg= IHdhbmRlcmluZw== IHNvcGhvbW9yZQ== IHF1ZWVy IEJsaW5k cnVl IE1hcnJpYWdl RG9t IHBhZGRpbmc= IGZvbGRlcnM= IG1lYW5pbmdsZXNz IGNhbmRpZGFjeQ== YWZvcnQ= IHdoaXN0bGVibA== IElkZW50aWZpZWQ= IGNpZ2Fy IGhpZA== IER1YmFp IHBvc3R1cmU= IGhpa2luZw== IFRlcm1pbmFs TGVnZW5kYXJ5 IFRQ IEFUSw== IFN0YXJidWNrcw== IFJpb3Q= MTk5MQ== IEJvdHRvbQ== ZWZmaWM= IEV1Z2VuZQ== IFd5b21pbmc= IFJvY2t5 IHNhbG1vbg== IG1ldHJv IGJpbGF0ZXJhbA== IGNlbGVicmF0ZXM= TGVuZ3Ro YmlsbGlvbg== QmF0 IHJlbGVn IHBzZXVkbw== RFQ= IFJob2Rl UGFyZW50 cGxldGlvbg== IGF0dHJpYnV0 IHR1bmluZw== IE5PVEU= IFJlYmVs aWN1cw== RnVuZA== IGNvY2t0YWls IDUwMQ== IHNwb29u IGJydXRhbGl0eQ== IHVuaXRl IG1pY3JvYmk= IFJlaWNo cG9zaXRpdmU= IGFtYXplZA== IE5U RGVzYw== RUNUSU9O IGZhbHNlbHk= IEhpZ2hsYW5kZXI= IENyaXN0 IFZpY3Rvcmlhbg== IGRpc3RyaWJ1dGlvbnM= dGhlaXI= IEVpbnN0ZWlu IHBvZA== IGVwaWRlbQ== IGhlYXA= IFJhbmNo IGFudGhlbQ== IHJlYXBw IEF1YnVybg== IGNvbmN1cnJlbnQ= IFRocm91Z2hvdXQ= IFBPU1Q= 4pg= IGhvbWVtYWRl a2ljaw== QmVn IGNoYXNzaXM= Y291bnRlcg== IG1lcmdlcg== IGxhcHM= MjE3 dW5pb24= IFRyaWdnZXI= IGRlYmF0ZWQ= IHNpbGVudGx5 IHJlc3RyYWludA== QmFs MDAwMDAwMA== IGZvcm1pZGFibGU= IEZpbGlw IHNhY3JpZmljZXM= Rm9vZA== IGR3YXJm IFNlcXU= aW5pYW4= TW9yZW92ZXI= IHRhbmdpYmxl b3BzaXM= IE1pbmVjcmFmdA== IFJlZ2lzdHJhdGlvbg== b2Fu IHJlcHJlc2VudGF0aW9ucw== IHRoaXJzdA== IGNvcnA= aXJlbWVudA== TWFkZQ== bG9l PiI= Y2F0cw== Ki4= IGdlc3R1cmVz Z2VuZXJhbA== TGVhZ3Vl IHBhY2tldHM= IEluc3BlY3Rvcg== IEJlcmc= IGZyYXVkdWxlbnQ= IGNyaXRpY2l6ZQ== RnVu IGJsYW1pbmc= bmRyYQ== IHNsYXNo IEVzdG9u IHByb3Bvc2luZw== IHdoYWxlcw== IHRoZXJhcGlzdA== IHN1YnNldA== IGxlaXN1cmU= RUxE IENWRQ== IEFjdGl2aXR5 IGN1bG1pbg== c2hvcA== IERBWQ== aXNjaGVy IEFkbWlyYWw= IEF0dGFja3M= IDE5NTg= IG1lbW9pcg== IGZvbGRlZA== IHNleGlzdA== IDE1Mw== IExJ IHJlYWRpbmdz IGVtYmFycmFzc21lbnQ= IEVtcGxveW1lbnQ= d2FydA== Y2hpbg== IGNvbnRpbnVhdGlvbg== bGlh UmVjZW50bHk= IGR1ZWw= IGV2YWN1YXRpb24= IEthc2htaXI= IGRpc3Bvc2l0aW9u IFJpZw== IGJvbHRz IGluc3VyZXJz NDY3 TWV4 IHJldGFsaWF0aW9u IG1pc2VyeQ== IHVucmVhc29uYWJsZQ== cmFpbmluZw== SW1t IFBV ZW1lcg== IGdlbml0YWw= 44Kz IENhbmR5 IG9uaW9ucw== IFBhdHQ= bGluZXI= IGNvbmNlZGVk IGZh IGZvcmM= IEhlcm5hbmRleg== IEdlb2Zm ZGViaWFu IFRlYW1z IGNyaWVz IGhvbWVvd25lcnM= MjM3 QUJD IHN0aXRjaA== IHN0YXRpc3RpYw== IGhlYWRlcnM= IEJpb2xvZ3k= IG1vdG9ycw== IEdFTg== IExpcA== IGhhdGVz IGhlZWw= U2VsZg== aXBs RURJVA== b3J0aW5n IGFubm90 IFNwZWVjaA== b2xkZW1vcnQ= IEphdmFzY3JpcHQ= IExlQnJvbg== IGZvb3RwcmludA== IGZu IHNlaXp1cmVz bmFz aGlkZQ== IDE5NTQ= IEJlZQ== IERlY2xhcmF0aW9u IEthdGll IHJlc2VydmF0aW9ucw== TlI= ZmVtYWxl IHNhdHVyYXRlZA== IGJpYmxpY2Fs IHRyb2xscw== RGV2aWNl cGhvdG9z IGRydW1z 44OJ44Op44K044Oz TmlnaHQ= ZmlnaHRlcg== IEhhaw== cmliZXI= IGN1c2g= IGRpc2NpcGxpbmFyeQ== YmF1bQ== IEdI IFNjaG1pZHQ= aWxpYnJpdW0= IHNpeHR5 IEt1c2huZXI= cm90cw== IHB1bmQ= IFJhYw== IHNwcmluZ3M= IGNvbnZl QnVzaW5lc3M= RmFsbA== IHF1YWxpZmljYXRpb25z IHZlcnNlcw== IG5hcmNpc3M= IEtvaA== IFdvdw== IENoYXJsb3R0ZXN2aWxsZQ== ZWRv IGludGVycm9nYXRpb24= IFdvb2w= MzY1 QnJpYW4= IOKckw== IGFsbGVnZXM= b25kcw== aWRhdGlvbg== IEphY2tpZQ== eXU= IGxha2Vz IHdvcnRod2hpbGU= IGNyeXN0YWxz IEp1ZGE= IGNvbXByZWhlbmQ= IGZsdXNo IGFic29ycHRpb24= IE9D IGZyaWdodGVuZWQ= IENob2NvbGF0ZQ== TWFydGlu IGJ1eXM= IGJ1Y2tz IGFwcGVsbA== IENoYW1waW9uc2hpcHM= IGxpc3RlbmVy IERlZmVuc2l2ZQ== IGN6 dWRz IE1hdGU= IHJlcGxheQ== IGRlY29yYXRlZA== IHN1bms= IFZJUA== IEFuaw== IDE5NQ== YWFhYQ== Tm9ib2R5 IE1pbGs= IEd1cg== IE1r IFNhcmE= IHNlYXRpbmc= IFdpZA== VHJhY2s= IGVtcGxveXM= IGdpZ2FudGlj QVBQ 44Kn aW52ZW50b3J5 IHRvd2Vs YXRjaGU= bGFzdGluZw== IFRM IGxhdGVuY3k= IGtuZQ== QmVy bWVhbmluZw== IHVwaGVsZA== IHBsYXlncm91bmQ= IG1hbnQ= U2lkZQ== IHN0ZXJlbw== IG5vcnRod2VzdA== IGV4Y2VwdGlvbmFsbHk= IHJheXM= IHJlY3VycmluZw== RHJpdmU= IHVwcmlnaHQ= IGFiZHVjdA== IE1hcmF0aG9u IGdvb2RieWU= IGFscGhhYmV0 aHA= IGNvdXJ0cm9vbQ== cmluZ3Rvbg== b3RoaW5n VGFn IGRpcGxvbWF0cw== IGJhcmJhcg== IEFxdWE= MTgz MzMzMw== IG1hdHVyaXR5 IGluc3RhYmlsaXR5 IEFwYWNoZQ== ID09PQ== IGZhc3Rpbmc= IEdyaWQ= TW9kTG9hZGVy IDE1Mg== QWJz IE9wZXJhdGluZw== ZXR0aQ== IGFjcXVhaW50 RG9ubmVsbA== IEtlbQ== IEZvcmdl IGFybW9yZWQ= TWls IHBoaWxvc29waGVycw== aW52ZXN0 UGxheWVycw== 4og= IG15cmlhZA== IGNvbXJhZGVz Um90 IHJlbWVtYmVyaW5n IGNvcnJlc3BvbmRz IHByb2dyYW1tZXJz IEx5bm4= IG9saWc= IGNvaGVyZW50 eW5jaHJvbg== IENoZW1pY2Fs IGp1Z2c= cGFpcg== cG9zdHM= RXll IElubmVy IHNlbWVzdGVy b3R0ZXN0 IEVtaXJhdGVz cmljYW5lcw== b3JvdXNseQ== bWl0cw== IFdpcw== IGRvZGdl bG9jYXRpb24= IGZhZGVk QW1hem9u IFByb2NlZWQ= IElORk8= am91cm5hbA== IFRydWNr VGVu IDIxNw== IHN0YXR1dGVz bW9iaWxl IFR5cGVz UmVjb21t YnVzdGVy cGV4 IGxlZ2VuZHM= IGhlYWRhY2hl ZmFjZWQ= IFdpRmk= aWZ0eQ== IEhFUg== IGNpcmN1aXRz RVJST1I= MjI2 b2xpbg== IGN5bGluZGVy b3NwYWNl aWtlcnM= UHJlbQ== UXVhbnQ= IGNvbmZsaWN0aW5n IHNsaWdodGVzdA== IGZvcmdlZA== aW9uYWdl U3RlcGhlbg== IEt1Yg== IE9wcG9ydHVu IEhlYWw= IGJsbw== IHJ1bGVycw== IGh1aA== IHN1Ym1hcmluZQ== Znk= YXNzZXI= IGFsbG93YW5jZQ== IEthc2ljaA== IFRhcw== IEF1c3RyYWxpYW5z Rm9yZ2VNb2RMb2FkZXI= IOKGkQ== IE1hdHJpeA== YW1pbnM= IDEyMDA= IEFjcXU= MjM2 RG9jdW1lbnQ= IEJyZWFraW5n MTkz IFN1YnN0 IFJvbGxlcg== IFByb3BlcnRpZXM= IE5J dGllcg== IGNydXNoaW5n IGFkdm9jYXRpbmc= RnVydGhlcm1vcmU= a2VlcGVycw== IHNleGlzbQ== eGQ= IGNhbGxlcg== IFNlbnNl Y2hpZXZl IFRG IGZ1ZWxlZA== IHJlbWluaXNjZW50 IG9ic2Vzcw== dXJzdA== IHVwaG9sZA== IEZhbnM= aGV0aWNz IOKX IEJhdGg= IGJldmVyYWdl IG9zY2lsbA== MjU0 IHBvbGVz IGdyYWR1YWw= IGV4dGluZw== IFN1ZmY= IFN1ZGRlbmx5 IGxpa2luZw== IDE5NDk= dW5jaWF0aW9u YW1pbmF0aW9u IE9tYXI= IExW IENvbnNlcXVlbnRseQ== IHN5bnRoZXM= IEdJRg== IHBhaW5z IGludGVyYWN0aW5n dW91c2x5 aW5jcmU= IHJ1bW9y IFNjaWVudG9sb2d5 MTk3 IFppZw== IHNwZWxsaW5n IEFTUw== IGV4dGluZ3U= bXNvbg== IGdo IHJlbWFya2Vk IFN0cmF0ZWdpYw== IE1PTg== 5aU= Z2Fl IFdIQVQ= RXJpYw== IENhbXB1cw== IG1ldGhhbmU= IGltYWdpbg== SlVTVA== IEFsbQ== WFQ= aXE= IFJTUw== IHdyb25nZG9pbmc= YXR0YQ== IGJpZ290 IGRlbW9uc3RyYXRvcnM= IENhbHZpbg== IFZpbGxh IG1lbWJyYW5l IEF3ZXNvbWU= IGJlbmVmaWM= MjY4 IG1hZ25pZmljZW50 IExvdHM= R3JlZw== IEJvcmlz IGRldGFpbmVlcw== IEhlcm1hbg== IHdoaXNwZXJlZA== IGF3ZQ== UHJvZmVzc29y ZnVuZGluZw== IHBoeXNpb2xvZ2ljYWw= IERlc3RydWN0aW9u IGxpbWI= IG1hbmlwdWxhdGVk IGJ1YmJsZXM= IHBzZXVk IGh5ZHJh IEJyaXN0b2w= IHN0ZWxsYXI= IEV4cGFuc2lvbg== IEtlbGw= IEludGVyZXN0aW5nbHk= IG1hbnM= IGRyYWdnaW5n IGVjb2xvZ2ljYWw= IEZpdA== IGdlbnQ= IGJlbmVmaXRlZA== IEhhaXRp IHBvbHln 44OO IDIwMzA= IHByb3c= IHJlY29uc3RydWN0aW9u IHdhc3Q= IHBzeWNoaWM= IEdyZWVrcw== SGFuZGxlcg== MTYy IFB1bHNl IHNvbGljaXQ= IHN5cw== IGluZmx1eA== IEdlbnRsZQ== cGVyY2VudA== IHByb2xpZmVyYXRpb24= IHRheGFibGU= IGRpc3JlZ2FyZA== IGVzY2FwaW5n IGdpbmdlcg== IHdpdGhzdGFuZA== IGRldmFzdGF0ZWQ= IERldw== c2VyaWVz IGluamVjdGVk ZWxhaWRl IHR1cm5vdmVy aGVhdA== mYI= SGFwcHk= IFNpbGVudA== 44Kt aXZpc20= IGlycmF0aW9uYWw= QU1B IHJlZWY= cnVi IDE2Mg== IGJhbmtlcnM= IEV0aGljcw== dnY= IGNyaXRpY2lzbXM= S24= MTg2 TW92aWU= IFRvcmllcw== IG5vb2Q= IGRpc3RvcnRpb24= RmFsc2U= b2RvcmU= IHRhc3R5 UmVzZWFyY2g= IFVJRA== LSk= IGRpdm9yY2Vk IE1V IEhheWVz IElzbg== aWFuaQ== IEhR ICIj aWduYW50 IHRyYXVtYXRpYw== IExpbmc= SHVu IHNhYm90 b25saW5l cmFuZG9t IHJlbmFtZWQ= cmFyZWQ= S0E= ZGVhZA== w6l0 IEFzc2lzdGFuY2U= IHNlYWY= KysrKysrKys= IHNlbGRvbQ== IFdlYmI= IGJvb2xlYW4= dWxldA== IHJlZnJhaW4= IERJWQ== cnVsZQ== IHNodXR0aW5n IHV0aWxpemluZw== bG9hZGluZw== IFBhcmFt Y29hbA== b290ZXI= IGF0dHJhY3Rpbmc= IERvbA== IGhlcnM= YWduZXRpYw== IFJlYWNo aW1v IGRpc2NhcmRlZA== IFBpcA== MDE1 w7xy IG11Zw== SW1hZ2luZQ== Q09M IGN1cnNlZA== IFNob3dz IEN1cnRpcw== IFNhY2hz c3BlYWtpbmc= IFZpc3Rh IEZyYW1ld29yaw== b25nbw== IHN1YnJlZGRpdA== IGNydXM= IE92YWw= Um93 Z3Jvd2luZw== IGluc3RhbGxtZW50 IGdsYWM= IEFkdmFuY2U= RUNL IExHQlRR TEVZ IGFjZXQ= IHN1Y2Nlc3NpdmU= IE5pY29sZQ== IDE5NTc= UXVvdGU= IGNpcmN1bXN0YW5jZQ== YWNrZXRz IDE0Mg== b3J0aXVt IGd1ZXNzZWQ= IEZyYW1l IHBlcnBldHJhdG9ycw== IEF2aWF0aW9u IEJlbmNo IGhhbmRj QXA= IDE5NTY= MjU5 cmFuZA== TmV0TWVzc2FnZQ== ZGlu dXJ0bGVz aGln IFZJSUk= ZmZpdGk= IFN3b3Jkcw== YmlhbA== IGtpZG5hcHBpbmc= ZGV2aWNl IGJhcm4= IEVsaQ== YXVjYXM= U2VuZA== Q29uc3RydWN0ZWQ= IMK9 IG5lZWRsZXM= IGFkdmVydGlzZW1lbnRz IHZvdQ== IGV4aGliaXRlZA== IEZvcnRyZXNz QXNr QmVycnk= VFlQRQ== IGNhbmNlcnM= dW1waW5n IFRlcnJpdG9yeQ== IHBydWQ= IG5hcw== IGF0aGVpc3Q= IGJhbGFuY2Vz 44Gf IFNoYXdu JiY= IGxhbmRzYw== IFJHQg== IHBldHR5 IGV4Y2VsbGVuY2U= IHRyYW5zbGF0aW9ucw== IHBhcmNlbA== IENoZXY= RWFzdA== IE91dHB1dA== aW1p IGFtYmllbnQ= IFRocmVhdA== IHZpbGxhaW5z IDU1MA== SUNB IHRhbGxlcg== IGxlYWtpbmc= Y3Vw IHBvbGlzaA== IGluZmVjdGlvdXM= IEtD IEBA YmFja2dyb3VuZA== IGJ1cmVhdWNyYWN5 IFNhaQ== dW5sZXNz aXRpb3Vz IFNreXBl QXRs SURFTlQ= MDA4 IGh5cG9jcg== IHBpdGNoZXJz IGd1ZXNzaW5n IEZJTkFM QmV0d2Vlbg== IHZpbGxhZ2Vycw== IDI1Mg== ZmFzaGlvbg== IFR1bmlz QmVo IEV4Yw== IE1JRA== Mjg4 IEhhc2tlbGw= MTk2 IE5PUg== IHNwZWNz IGludmFyaQ== IGdsdXQ= IENhcnM= IGltcHVsc2U= IGhvbm9ycw== Z2Vs IGp1cmlzZGljdGlvbnM= IEJ1bmRsZQ== dWxhcw== Q2FsaWZvcm5pYQ== IEluY3JlYXNl IHBlYXI= IHNpbmdsZXM= IGN1ZXM= IHVuZGVyd2VudA== IFdT IGV4YWdnZXJhdGVk IGR1YmlvdXM= IGZsYXNoaW5n TE9H KV0u Sm91cm5hbA== dGc= VmFu IElzdGFuYnVs IEluc3A= IEZyYW5rZW4= RHJhdw== IHNhZG5lc3M= IGlyb25pYw== IEZyeQ== eGM= IDE2NA== aXNjaA== V2F5 IFByb3Rlc3RhbnQ= aG9ybg== IHVuYWZm IFZpdg== aWxsYXM= IFByb2R1Y3Rpb25z IEhvZ2Fu IHBlcmltZXRlcg== IFNpc3RlcnM= IHNwb250YW5lb3Vz IGRvd25zaWRl IGRlc2NlbmRhbnRz IG9ybg== d29ybQ== SmFwYW5lc2U= IDE5NTU= IDE1MQ== IERvaW5n ZWxzZW4= dW1ibGVz IHJhZGljYWxseQ== IERydW0= IEJhY2g= IGxpYWJpbGl0aWVz IE9C IEVsZW1lbnRhcnk= IG1lbWU= eW5lcw== IGZpbmdlcnByaW50 IEdyYWI= IHVuZGVydGFrZQ== TWVtYmVycw== IFJlYWRlcg== IFNpbXM= Z29k IGh5cG90aGV0aWNhbA== c2NpZW50 IEFK IGNoYXJpc20= IGFkbWlzc2lvbnM= IE1pc3NpbGU= dHJhZGU= IGV4ZXJjaXNpbmc= IEJhY2tncm91bmQ= V3JpdHRlbg== IHZvY2Fscw== d2hldGhlcg== IHZp IFdpbm5lcg== IGxpdHRlcg== IFNob290aW5n U1RFTQ== 44Kh IEFGTA== IHZhcmlhYmlsaXR5 IGVhdHM= IERQUw== YnJvdw== IGVsZXBoYW50cw== IHN0cmF0 IMU= IHNldHRsZXJz TWF0dGhldw== IGluYWR2ZXJ0 SEk= IElNRg== IEdvYWw= IG5lcnZlcw== Sm9obnNvbg== ZXll YWJsaXNobWVudA== VGh1cnNkYXk= QklMSVRZ SGFk YW1vdG8= aGV0YW1pbmU= ZXBz IG1pdG9jaG9uZA== IGNvbXByZXNzZWQ= IFRyZXZvcg== IEFuaW1hbHM= VG9vbA== TG9jaw== IHR3ZWFr IHBpbmNo IGNhbmNlbGxhdGlvbg== UG90 IGZvY2Fs IEFzdHJvbg== MTcz IEFTQw== IE9USEVS dW1uaQ== IGRlbWlzZQ== ZGw= 2YU= U2VtaXRpc20= IGNyYWNraW5n IGNvbGxhYm9yYXRpdmU= IGV4cGxvcmVz c3Fs IGhlcmJz IGNvbmZpZ3VyYXRpb25z bWlz IFJlc3VsdA== YWNleQ== IFNtb2tl IHNhbmN0 ZWxpYQ== IGRlZ2VuZXI= IGRlZXBlc3Q= IHNjcmVhbWVk IG5hcA== U29mdHdhcmU= IFNUQVI= RUY= IFhpbg== c3BvbnNvcmVk bWFuc2hpcA== MjMz IHByaW1hcmllcw== IGZpbHRlcmluZw== IGFzc2VtYmxl bWls IE15ZXJz Ym93cw== IHB1bmNoZWQ= TWlj IGlubm92YXRpb25z IGZ1bmM= YW5kbw== IGZyYWNraW5n IFZ1bA== 0L7Q b3Nob3A= IEltbXVu IHNldHRsaW5n IGFkb2xlc2NlbnRz IHJlYnVpbGRpbmc= IHRyYW5zZm9ybWluZw== IHBhcm9sZQ== IGhhcmJvcg== IGJvb2tpbmc= b3Rpb25hbA== b25nZXZpdHk= IFlv YnVn IGVtZXJnZXM= IE1ldGhvZHM= IENodQ== UHJlcw== IER1bmdlb25z IHRyYWlsaW5n IFJ1bQ== IEh1Z2g= 5aSp IEVyYQ== IEJhdHRsZXM= UmVzdWx0cw== IFRyYWRpbmc= IHZlcnNh Y3Nz YXhpZXM= aGVldA== IGdyZWVk MTk4OQ== IGdhcmRlbnM= IGNvbnRpbmdlbnQ= UGFyaw== IExlYWZz aG9vaw== cm9iZQ== IGRpcGxvbWFjeQ== IEZ1ZWw= IEludmFzaW9u IHVwZ3JhZGluZw== TWFsZQ== IGVsaWM= IHJlbGVudGxlc3M= IENvdmVuYW50 YXBlc2g= IFRyb3A= VHk= cHJvZHVjdGlvbg== YXJ0eQ== IHB1bmNoZXM= YWtv Y3ljbG9wZWRpYQ== IFJhYmJpdA== IEhETUk= IDE0MQ== IGZvaWw= SXRlbUltYWdl IEZH IGltcGxlbWVudGF0aW9ucw== IFBvbQ== aXh0dXJlcw== IGF3YWl0 IDMzMA== YW11cw== IHVtYnJlbGxh IGZvcmVzZWU= c2VwYXI= IGNpcmN1bWNpc2lvbg== IHBlcmlwaGVyYWw= U2F5 IEV4cGVydA== SW5j IHdpdGhkcmV3 IEFuZGVycw== ZnJpZWQ= IHJhZGlvYWN0aXZl IE9wZW5pbmc= IGJvYXJkaW5n IE5E IG92ZXJ0aHJvdw== QWN0aXY= V1A= IEFjdHM= 15k= IG1vdGlvbnM= dmlj IE1pZ2h0eQ== IERlZmVuZGVy YWVy IHRoYW5rZnVs IEtpbGxpbmc= IEJyaXM= bW9pbA== IHByZWRpY3Rpbmc= MjY2 Y2hvaWNl IGtpbGxlcnM= IGluY3Vi IENoZXN0 YXRoZXJpbmc= IHByb2NsYWltZWQ= Zmxvd2Vy b3Nzb20= dW1ibGVkb3Jl IEN5Y2xpbmc= IE9jY3VweQ== QUdFUw== UGVu IFl1Zw== IHBhY2thZ2Vk IGhlaWdodGVuZWQ= Y290 c3RhY2s= Q29uZA== IHN0YW1wcw== bWFnZQ== IHBlcnN1YWRlZA== IGVuc2w= IENhcmRpbmFs IHNvbGl0YXJ5 IHBvc3Nlc3Npbmc= IENvcms= IGV2aWQ= IFRheQ== IGJsdWVz IGV4dHJlbWlzbQ== IGx1bmFy IGNsb3du VGVjaG4= IGZlc3RpdmFscw== IFB2UA== IExhcg== IGNvbnNlcXVlbnRseQ== cHJlc2VudA== IHNvbWVkYXk= 546L IE1ldGVvcg== IHRvdXJpbmc= Y3VsdHVyZQ== IGJlYWNoZXM= U2hpcA== Y2F1c2U= IEZsb29k 44Ov IHB1cml0eQ== dGhvc2U= IGVtaXNzaW9u Ym9sdA== IGNob3Jk IFNjcmlwdHVyZQ== THU= ICR7 Y3JlYXRlZA== T3RoZXJz MjU4 IGVsZW1lbnRhbA== IGFubm95ZWQ= IEFF ZGFu IFNhZw== UmVzZWFyY2hlcnM= IGZhaXJ5 4oCT4oCT PT09PT09PT09PT09 U21hcnQ= R0dHRw== IHNrZWxldG9ucw== IHB1cGlscw== bGlua2Vk IHVyZ2VuY3k= ZW5hYmxlZA== IEZ1Y2s= IGNvdW5jaWxs cmFi VUFM VEk= IGxpZmVz IGNvbmZlc3NlZA== QnVn IGhhcm1vbg== IENPTkZJRw== IE5ldXRyYWw= RG91Ymxl IHN0YXBsZQ== IFNIQQ== QnJpdGlzaA== IFNOUA== QVRPUg== b2Nv IHN3aW5naW5n Z2V4 b2xlb24= cGxhaW4= IE1pc3Npbmc= IFRyb3BoeQ== dmFyaQ== cmFuY2g= IDMwMQ== NDQw MDAwMDAwMDAwMDAwMDAwMA== IHJlc3RvcmluZw== IGhhdWw= dWNpbmc= bmVyZw== IGZ1dHVyZXM= IHN0cmF0ZWdpc3Q= cXVlc3Rpb24= IGxhdGVyYWw= IEJhcmQ= IHNvcg== IFJob2Rlcw== IERvd250b3du Pz8/Pz8t IExpdA== IEJlbmVk IGNvaWw= c3RyZWV0 IFBvcnRhbA== RklMRQ== IEdydQ== Kiw= MjMx bmV1bQ== IHN1Y2tlZA== IHJhcHBlcg== IHRlbmRlbmNpZXM= IExhdXJlbg== Y2VsbGFuZW91cw== MjY3 IGJyb3dzZQ== IG92ZXJj aGVhZGVy b2lzZQ== IGJlZXQ= IEdsZQ== U3RheQ== IG11bQ== IHR5cGVk IGRpc2NvdW50cw== VGFsaw== IE9n ZXhpc3Rpbmc= IFNlbGw= dXBo Q0k= IEF1c3RyaWFu IFdhcm0= IGRpc21pc3NhbA== IGF2ZXJhZ2Vz Y2FtZXJh IGFsbGVnaWFuY2U= TEFO PSIj IGNvbW1lbnRhdG9ycw== IFNldHRpbmc= IE1pZHdlc3Q= IHBoYXJtYWM= IEVYUA== IHN0YWlubGVzcw== Q2hpY2Fnbw== IHRhbg== MjQ0 IGNvdW50cnlzaWRl IFZhYw== Mjk1 IHBpbm5lZA== IGNyaXNlcw== IHN0YW5kYXJkaXplZA== VGFzaw== IEphaWw= IERvY2tlcg== Y29sb3JlZA== Zm9ydGg= In0s IHBhdHJvbnM= IHNwaWNl IG1vdXJu IE1vb2Q= IGxhdW5kcnk= IGVxdWlw IE1vbGU= eWxs IFRIQw== bmF0aW9u IFNoZXJsb2Nr IGlzc3U= IEtyZQ== IEFtZXJpY2Fz IEFBQQ== IHN5c3RlbWF0aWNhbGx5 IGNvbnRyYQ== IFNhbGx5 IHJhdGlvbmFsZQ== IGNhcnJpYWdl IHBlYWtz IGNvbnRyYWRpY3Rpb24= ZW5zYXRpb24= IEZhaWx1cmU= IHByb3Bz IG5hbWVzcGFjZQ== IGNvdmU= ZmllbGRz 44KL IHdvb2w= IENhdGNo IHByZXN1bWVk IERpYW5h cmFnb24= aWdp IGhhbW0= IHN0dW50 IEdVSQ== IE9ic2VydmF0b3J5 IFNob3Jl IHNtZWxscw== YW5uYWg= IGNvY2twaXQ= IER1dGVydGU= ODUw IG9wcHJlc3NlZA== YnJlYWtlcg== IENvbnRyaWJ1dA== IFBlcnU= IE1vbnNhbnRv IEF0dGVtcHQ= IGNvbW1hbmRpbmc= IGZyaWRnZQ== IFJpbg== IENoZXNz dWFsaXR5 IG9s UmVwdWJsaWNhbg== IEdsb3J5 IFdJTg== Li4uLi4uLg== YWdlbnQ= cmVhZGluZw== IGluaA== Sm9uZXM= IGNsaWNrcw== YWxhbg== IFtdOw== IE1hamVzdHk= IENlZA== b3B1cw== YXRlbA== w6o= QVJD IEVjdWFkb3I= 44Og IEt1cm8= IHJpdHVhbHM= IGNhcHRpdmU= IG91bmNl IGRpc2FncmVlbWVudA== IHNsb2c= ZnVlbA== UGV0 TWFpbA== IGV4ZXJjaXNlZA== IHNvbGlj IHJhaW5mYWxs IGRldm90aW9u IEFzc2Vzc21lbnQ= IHJvYm90aWM= b3B0aW9ucw== IFJQ IEZhbWlsaWVz IEZsYW1lcw== IGFzc2lnbm1lbnRz MDA3 YWtlZG93bg== IHZvY2FidWxhcnk= UmVpbGx5 IGNhdmFs Z2Fycw== IHN1cHByZXNzZWQ= IFNFVA== IEpvaG5z IHdhcnA= YnJva2Vu IHN0YXR1ZXM= IGFkdm9jYXRlZA== IDI3NQ== IHBlcmls b21vcnBo IEZlbWlu cGVyZmVjdA== IGhhdGNo TGli NTEy IGxpZmVsb25n MzEz IGNoZWVrcw== IG51bWJlcmVk IE11Zw== Qm9keQ== cmF2ZWw= V2VpZ2h0 IEphaw== IEhlYXRo IGtpc3Npbmc= IEpVU1Q= IHdhdmluZw== dXBsb2Fk IGluc2lkZXI= IFByb2dyZXNzaXZl IEZpbHRlcg== dHRh IEJlYW0= IHZpb2xlbnRseQ== aXBhdGlvbg== IHNrZXB0aWNpc20= IDE5MTg= IEFubmll IFNJ IGdlbmV0aWNz IG9uYm9hcmQ= YXRs IEZyaWVkbWFu IEJyaQ== Y2VwdGl2ZQ== IHBpcmF0ZQ== IFJlcG9ydGVy Mjc4 IG15dGhvbG9neQ== IGVjbGlwc2U= IHNraW5z IGdseXBo aW5naGFt RmlsZXM= Q291cg== d29tZW4= IHJlZ2ltZXM= IHBob3RvZ3JhcGhlZA== S2F0 IE1BWA== T2ZmaWNpYWxz IHVuZXhwZWN0ZWRseQ== IGltcHJlc3Npb25z RnJvbnQ= Ozs7Ozs7Ozs= IHN1cHJlbWFjeQ== IHNhbmc= IGFnZ3JhdmF0ZWQ= IGFicnVwdGx5 IFNlY3Rvcg== IGV4Y3VzZXM= IGNvc3Rpbmc= aWRlcHJlc3M= U3RhY2s= IFJOQQ== b2JpbA== IGdob3N0cw== bGRvbg== YXRpYmlsaXR5 VG9waWNz IHJlaW1idXJzZQ== IEhN IERlZw== IHRoaWVm eWV0 b2dlbmVzaXM= bGVhbmluZw== IEtvbA== IEJhc2tldGJhbGw= IGZp IFNlZWluZw== IHJlY3ljbGluZw== IFst Q29uZ3Jlc3M= IGxlY3R1cmVz UHN5 IG5lcA== IG1haWQ= IG9yaWVudGVk QVg= IHJlc3BlY3RmdWw= cmVuZQ== Zmx1c2g= IFVubG9hZGVk cmVxdWVzdA== Z3JpZA== IEFsdGVybmF0aXZlbHk= IEh1Z28= IGRlY3JlZQ== IEJ1ZGRoaXNt YW5kdW0= QW5kcm9pZA== IENvbmdv IEpveWNl IGFja25vd2xlZGdpbmc= aGVzaXZl IFRvbW9ycm93 IEhpcm8= dGhyZW4= IE1hY2Vk IGhvYXg= IEluY3JlYXNlZA== IFByYWRlc2g= V2lsZA== X19fX19f MTYx IGF1bnQ= IGRpc3RyaWJ1dGluZw== IFR1Y2tlcg== IFNTTA== IFdvbHZlcw== QnVpbGRpbmc= b3VsdA== IEx1bw== IFlhcw== IFNwaXI= IFNoYXBl IENhbWJvZA== IElQdg== IG1s IGV4dHJhZA== Mzkw IFBlbm55 ZHJlYW0= IHN0YXRpb25lZA== b3B0aW9uYWw= ZXdvcnRoeQ== Ljwv IHVuZGVydGFraW5n IGNoaWNrZW5z IHN0aW11bGk= IEVsc2U= aWdhdG9ycw== IEJlZ2lubmluZw== Y3Rvcnk= IHByZXBhcmVz IGRlbHRh IHZpY2luaXR5 dG9vbA== IHdvcmtzaG9wcw== TUh6 IGFjY3VzYXRpb24= IGhpc3Rvcmllcw== cm9wb2xpcw== IENodXJjaGlsbA== IG5lb24= IGJhZmY= ZGllcw== bWF5YmU= IOijj+immumGkg== IHN5bXB0b20= RUNI IE1hbnVlbA== IGJhbmFuYQ== IEhC ICoqKio= IEtvcmVhbnM= Y29sbA== RkI= IHByYXlpbmc= IENhbm5vdA== IE1pbGU= IGVtYnJhY2luZw== IFNpbGs= Mzkz b3RlcnM= RkQ= IGRheWxpZ2h0 YWxpYXM= IEJyaWdhZGU= IEhhbm5haA== IGNsZXJneQ== IHNvdXRoZWFzdA== IGFsY29ob2xpYw== IHByb3Bvc2Vz bGl2aW9u IGNhbGN1bGF0aW5n IHN0aW11bGF0ZQ== IHNwbGl0dGluZw== ZWlnaHQ= IEluZHk= cGxheXM= IFBpaw== IGRvbWVzdA== IGZvcmdpdmVuZXNz IFJpbmdz cGF0aWVudA== a2luc29u TW9udA== aWdpYmxl OyI= IHBlcmlvZGljYWxseQ== YW1tYWQ= IEJyaXR0 cGFyZA== IGFyYml0cmF0aW9u IFNjaG5laWRlcg== IENvcnBvcmF0ZQ== IE1heWE= IHNuYWtlcw== YXVt IGJsYXN0ZWQ= IG15c3Rlcmllcw== IHJldml2ZQ== b2NhbXA= IERvZGdl IE9wZXJh Mjc5 IG9ycGhhbg== IHNwZWNpZmllcw== IE1ldHM= RHVyYXRpb24= SGVu IGZpcmV3b3Jrcw== IHByb3NlY3V0ZQ== IFRpbGxlcnNvbg== ZHA= dXNhZ2U= bGluZXNz IERlYmlhbg== IDIyNA== cmlzZXM= IEluZmVjdA== YXRyYQ== IFJS IExvcg== ZGlmZg== IENoYXJsZXN0b24= IGFjb3VzdGlj IGFtdXNl MzMw IGNlcg== IFRhYw== IFsr IGNhcmRpYWM= IFJlc3RhdXJhbnQ= ZXJneQ== IGZ1eno= IGJpdGVz IGhhemFyZG91cw== IGJyaWdodGVy cmFucw== IFN0ZXBoYW5pZQ== ZXh0cmE= UkVU IENocmlzdGluZQ== IFN1ZQ== c3RhdGVtZW50 IGJvbHN0ZXI= IGFudGl0 UmFkaW8= QklU 44Kw IHZpc2lvbnM= IENvbmNlcHQ= IGlubGluZQ== IFBoaWxvc29waHk= aXNhbnM= IElydmluZw== w6M= dGFraW5n IGluY29uc2lzdA== IEt1bWFy IGxpZw== IFNjaHVtZXI= IFJlZ3VsYXRpb25z IEh6 dGhybw== IFZvbGRlbW9ydA== IE1FRA== IEZyZWRlcmljaw== UGFk MjIx IGFsbGVnaW5n IENvbW11bmljYXRpb24= IDE2Nw== IGZvcmVjYXN0cw== IHNwaWRlcnM= T3JnYW4= IFBhcnRpY2lwYW50cw== IE9wcw== ZGVzaWdu Q2xvc2U= IGZhY3Rv IGJvbWJlcnM= cmVzaXN0YW50 YXRlZ29yaWVz U2Nob29s IGhvbWV3b3Jr IGNvcnJv VHVlc2RheQ== IEJyZW5kYW4= IE1Y IFRT IFN0cmk= IHN0YWtlaG9sZGVycw== IE1pbGxlbm5pdW0= IHRyYW5zZmVycmluZw== SnVk IHRhYw== IDE2MDA= IFNESw== cmI= IGludGVycHJldGF0aW9ucw== IFNH IHVwc3RhaXJz IEhhcnZlc3Q= IHZhZ2luYQ== IGluZ2VzdA== eGY= IE9yaW9u IEpvZXk= IHNhbmR3aWM= IGltbW9ydGFs IGZsaXBwZWQ= b3J0ZXg= dGhyZWF0ZW5pbmc= IHNuaXBlcg== IGNvbnZlcnRz IGluc3RhbGxhdGlvbnM= IEJ1bGdhcg== b3JzY2hl bWFpbHM= IGx1cmU= IG5hcnJvd2x5 IGdyZW5hZGU= IEdpbmc= IHVuZGVyd2Vhcg== LS0tLS0tLS0tLS0tLS0= IGNoYXNlZA== IFZBTA== IHBhcmVudGluZw== IEhhbWI= IEJsYXo= IGFuYXJjaGlzdA== IE1lZGlhbg== IFByb2dyYW1z zr0= IG9iag== IE5va2lh b3JtYW4= YW5xdQ== YXRpc20= b3Bh IGZ1bGZpbGxpbmc= IHB1cHB5 IGVudGl0 IFNlYmFzdGlhbg== IHNob290ZXJz IHJpY2hlcg== 6KE= IHRlbXB0ZWQ= IEFUVA== IENW IHRvcmU= UmVzb3VyY2U= IERldmlscw== NDA4 aW5hdGlvbmFs IGFzc3VyYW5jZQ== IERhcnJlbg== IHdoaWNoZXZlcg== cG9zdXJl IGZ1cnk= U3RvY2s= IHVuaXZlcnNhbGx5 cmVzcG9uc2U= IG9haw== IHdvcmtsb2Fk IENvcm5lcg== ZWVsZQ== Ii4uLg== IGRlcHJpdmVk a293c2tp IGNhc3Rz IGFmZmlsaWF0aW9u IEFjaA== IEFza2Vk YXRoZQ== IGxhY3Q= IFRodQ== cm0= IGFpcmxpbmVz IG5vdGlvbnM= Rm9ybWF0 IEZBQQ== 44OK ZHJpdmVy IHRyYW5zY2VuZA== U2V0dGluZ3M= IFByb3NlY3V0 IHNwaW5hbA== IGRlZmF1bHRz Rks= IHByZWZlcnM= cmVuZGVyZWQ= dGh1cw== ZmlsbQ== IHRpZ2Vy IFNwaWNlcg== cmVjb2du IFJ1Z2J5 TmV0d29yaw== IHBpdHk= IGNvbXBhcnRtZW50 Y2FzdGVycw== IE1vbnJvZQ== IDcyMA== IGNvcnJlY3Rpb25z IGRvcGFtaW5l IEFa Q3V0 IHJvb21t IHNwZWN1bGF0ZQ== SGFzaA== IHJlc3RyaWN0aXZl MTExMQ== cmVkaWJsZQ== b25lbA== IHJhbXBhbnQ= cmVwb3J0ZWQ= IFN1aXRl IE1pbmltdW0= YWx5cw== YXphcmQ= bG9vcA== IGxlbnQ= c2hh IHZhbmRhbA== bWVudQ== IEJvZWhuZXI= IG5hcnJhdGl2ZXM= IGF1dGhlbnRpY2l0eQ== MjY5 YW5pYw== ZHV0eQ== Mjg1 IHRoYW5rZWQ= IGJldHJheWVk bGlmdA== IHNvdXRod2VzdA== IERleHRlcg== IEJvZA== IGtleXdvcmRz QXZlcmFnZQ== RElT IGV0aG5pY2l0eQ== ISks IE5hdGlvbmFscw== 4bk= IFRhaA== aW94aWQ= IHdpZGdldA== IHBhc3Rh IGJpbGxpbmc= IHRyaWxvZ3k= IExpbmVz IHNuaWZm IG5lcGhldw== TGF0ZQ== IHByaW5jaXA= IExvb3A= IE1hcnhpc3Q= IGRpc3NvbHZlZA== IGNvbnRleHRz IEFtb3VudA== IFNwaWtl IHRvdGFscw== IG9yZ2FuaXplcg== IHVwcmlzaW5n c2hpcHM= WVk= IE5vcnRoZWFzdA== bW9uZXk= Z3JhZGF0aW9u IGdvYWxrZWVwZXI= IEhlYXI= IHN0ZWFr IEJ1enpGZWVk IHNvbGVtbg== IFNjYW5k IHBvcHBpbmc= IGFkaGVyZQ== IEFsbGVn Ynl0ZQ== IFdvbHZlcg== IHVuaW4= IHJlY29s aXR1ZA== IG1pbWlj aWJ1cw== IHByZWRpY3Rz IEtlZXBlcg== aWF0aW5n IGRlY2VwdGlvbg== IGxlYXJudA== IGRpYXJ5 IGNvbmRpdGlvbmFs IHJlbGlj IGludm9rZQ== aWVuY2Vk 5Yg= IFBvbnQ= IGNlbGxwaG9uZQ== IHNwZWVkaW5n IHRhY2tsaW5n IG51ZGU= b3BlbmVk IE1hbmFmb3J0 IDE5NTI= IG1ham9ycw== IFNpbGVuY2U= IGxvZ2lzdGljcw== IHdlaWdodGVk IFBzeWNoaWF0 IjpbIg== IHNpY2tuZXNz IGRpdmlkZW5kcw== em9u UmVsZWFzZQ== IEtleXM= IEljaA== IGVueg== IEZlcm5hbmQ= IM6x IG1lYW5pbmdz IHBlbm55 IHN0ZXJu IGxhcg== IFB1Ymxpc2hlZA== IGJhY2tkcm9w S2lt IFN5bnQ= IGRlYnV0ZWQ= d20= IElzbGU= IHJlZ3VsYXRpbmc= b3R0aQ== IFNjaG9sYXJz aWNlc3Rlcg== IENoZWY= IHBvcHM= IExhdW5jaGVy IFZhcmlvdXM= IGNvbW1lbnRpbmc= b3NsYXY= ZW56aWU= IHJpdmFscnk= 4oKs UmVhbGx5 IG9yYw== IGJlYW4= IEp1ZHk= Tm90aWNl IEJpa2U= P10= IHJlbnRlZA== c3Rlbg== IGZvcmVmcm9udA== IEJhbGR3aW4= IHlpZWxkZWQ= dGFpbHM= UHJpbWU= IFNvdXJjZXM= aWNhdG9y U2Vhbg== IG1hcmNoaW5n T3V0cHV0 IEp1bmdsZQ== IHJlc2lkZQ== enpsZQ== IEFuZHJld3M= IHRvcnF1ZQ== QmFzaWM= QWN0dWFsbHk= c3RyYXA= cGVudGVy IGV4YW1z IFlh IDE1OQ== IERlY2lzaW9u IHJhbnNvbQ== ZXRlZW50aA== ZW5zaW5n MjEz IHN1bnNldA== NDA0 IFJhcGlk IEhlaW4= IEFib3JpZ2luYWw= IG9yZ2FuaXNt IFNldmVy IGNsYQ== YWpp U2ltcGxl IEZsYXZvcg== IEV2YWw= cHJ1cw== IGNob3J1cw== REFZ IGRlbm91bmNlZA== IGJpb2dyYXBoeQ== IFR1cm5idWxs UmVjZW50 Tm9ybWFs bGVjdGlvbnM= V29yZA== IGZlcnJ5 IFdhZ25lcg== aG9t VW5pdA== IHN1cGVybWFya2V0 IFNpdGg= IG5vbWluZWVz IGRpY3RhdG9yc2hpcA== aWRkbGVy IGFubm91bmNlcw== IFRoZW0= IE5lcHR1bmU= IGRlaXR5 IFlp IG1vbmFyY2g= QVJS IGludmFkZWQ= IEhvaw== dW50YXJ5 Q2VydGFpbg== ZWdh IGtpZGRpbmc= IFJlZ3VsYXRpb24= IHRyYXk= IHBob3RvZ3JhcGhlcnM= IEFyY2FuZQ== IGRpc2NoYXJnZWQ= IGV2YW5nZWxpY2Fs IGludGVyY2hhbmdl IGZpbG1tYWtlcg== IEVuZGxlc3M= IDI5MA== IFNhbHZhZG9y QVNZ IFNpZ25hbA== IHdyYXRo 4pw= bG90 Jy8= IHByb2plY3RpbGU= IGVtcGxveWluZw== IEludGVyZmFjZQ== MTkx YXRlbGxpdGU= IFJhdGg= cGFja2FnZQ== IGluZGljYXRpb25z SmFzb24= IGFyZ3M= IEdIeg== IHRpbHQ= bmFudHM= d29u 44K1 cmVkZA== cmVzY2VudA== IENhbGVuZGFy IG1vZHVsYXI= IGFzc2lzdGluZw== IHJlZGVlbQ== IEJlYW4= IHdvcnNo IGRlY2VudHJhbGl6ZWQ= KS4uLg== Mzc3 IGFycmF5cw== IGFjY29tcGxpc2htZW50cw== zr8= ZG90 IG11dHVhbGx5 IG9ic3RydWN0 IG1pc3JlcHJlc2VudA== b3Jlc3Q= aW9uaWM= cnVjZQ== JTs= IGtub3dpbmdseQ== cG9ydGluZw== aW5lbnRseQ== QXJp IFNjaHVsdHo= RGE= IENlcmU= IG9ic29sZXRl hYs= Z2l2ZQ== IGJhaXQ= IGVubGFyZw== TmVpbGw= IDE5MzM= IHJlY29uc2lkZXI= IFNlcmdlYW50 IERpYW5l IENvZ24= IEljb24= UG9zaXRpb24= IGZvc3Q= IHN0aXJyaW5n c2V2ZW4= IFNwYWNlWA== dWdnZXRz IG1lZGQ= R2Fs IFNpc3Rlcg== Qm95 IHRyaWdnZXJpbmc= VGFraW5n IHNjcmVhbXM= IGNhdXNhbA== IGF3YWtlbg== QXJt Mjk3 IGRpc3BhdGNoZWQ= IEZBTFNF IG9yZ2FuaXphdGlvbmFs IFRvbmc= IGRpbGVtbWE= ZGVtb24= U3Bs IGhvb2tz dWRpbmc= IHZhbGlkYXRl IHBvdGlvbg== IGNsYXc= IGJ1cmds IHF1aXI= QUNB IEJyZW5uYW4= IGR1cmFiaWxpdHk= IGJvbWJpbmdz IFdpbmRvdw== IGN1bHByaXQ= MzI1 VGhlcmVmb3Jl dW1iZXJlZA== cGVyZm9ybWFuY2U= d2FydHM= IGVuZm9yY2luZw== IEJsb3c= IHJlcHJpbnQ= aWZheA== YWxwaGE= IHNpbmlzdGVy IGJ1cmdlcg== ZmlnaHRpbmc= U2NvcmU= IFN0b25lcw== aWVt NDA1 Y2hlbXk= IHZpbmVnYXI= bm9t IHByZXZhaWxpbmc= IExhdGVzdA== wrY= IGJh IFdyaXRlcg== IDE3Nw== IENvbndheQ== IGNvbGxlY3Rz IHF1YW50aXRhdGl2ZQ== IGhvcnJvcnM= b2dlbnM= IFNsb3Y= IGxheXM= aGF3 IFNsYXNo IG5pZ2h0Y2x1Yg== IERhdmllcw== IGJyaWRl IFNjYXJsZXQ= eW1t IEFwcGxpY2F0aW9ucw== dmVsZW5ndGg= IHJldml2YWw= IHNvZnRseQ== IHpvbw== aXRhaXJl Q3Vy IGVsZWN0cm9t IHBsYW50aW5n T1RP IEVsZW1lbnRz IHN3YWxsb3c= cG9ydGVy IGxhcHRvcHM= IHBlYW51dA== IGxvYmJ5aXN0cw== zrI= UGFuZWw= IEpvYW4= aW1pbA== dG5j IHJlc2lzdGVk IG91dHdl IHJldGFpbmluZw== YXRyaQ== IHBvb3Jlcg== IFN5cmlhbnM= IEhhbW1vbmQ= IHdlbGQ= dWRlcg== dG9waWM= IFRU cmljaWE= IHRoaWV2ZXM= TGlj IEd1c3Q= IFdheXM= YXJldGg= MjQz IGJyb2FkY2FzdGVy c2hpZWxk YXNzaXVt dWJsZQ== IGFpcnN0cmlrZXM= b25zbw== IHBlZGFs IGNvbGxlY3RvcnM= IFZhbmRlcg== IE1lc2E= IGRpY3RhdG9y IGRpcg== ZW50b24= Y2FydA== c2NvcmU= YWRkZXI= Q3J5 IHNzaA== Z2dlcg== IGRydW5rZW4= IEdT IFNlYXQ= IGNvcm5lcmJhY2s= IHNraXBwZWQ= IFJlc2VhcmNoZXJz IEF1ZGk= UmVmZXJlbmNl IGhhdW50ZWQ= w6s= IENsaW5pYw== Y3o= IHBz IFBhbGFkaW4= IFJlY2lwZQ== IHN0aWdtYQ== b3BweQ== IG1vbmtleXM= IEhhd2s= U2Fk Ii8+ IFdvcmtzaG9w IFJldGFpbA== IEF2YXRhcg== NjI1 TmE= IFZD IFNlY3VyZQ== TVk= MTk4OA== b3NzaXA= IHByb3N0YXRl IHVuZGVu IGdhbWVy IENvbnRlbnRz IFdhcmhhbW1lcg== IFNlbnRpbmVs MzEw IHNlZ3JlZ2F0aW9u IEZsZXg= IE1BWQ== IGRyaWxscw== IERydWdz SXNsYW1pYw== IHNwdXI= IGNhZmU= IGltYWdpbmFyeQ== IGd1aWRpbmc= IHN3aW5ncw== IFRoZW1l b2J5 IG51ZA== IGJlZ2dpbmc= IHN0cm9uZ2g= IHJlamVjdGluZw== IHBlZGVzdHJpYW5z IFByb3NwZWN0 UmFyZQ== c2xl IGNvbmNlc3Npb25z IENvbnN0aXR1dGlvbmFs IGJlYW1z IGZpYmVycw== cG9vbg== IGluc3RpbmN0cw== cHJvcGVydHk= IEJJRw== U2FuZGVycw== aW1hdGVz IGNvYXRpbmc= IGNvcnBzZXM= IFRSVUU= Y2hlY2tlZA== IDE2Ng== QXNo IEpT IEZpY3Rpb24= IGNvbW11bmFs IGVuZXJnZXRpYw== b29vb29vb28= IG5vd2FkYXlz SUxE aWJv IFNVVg== UmVu IGR3ZWxsaW5n U2lsdmVy IHRhbGx5 IE1vdmluZw== IGNvd2FyZA== IGdlbmVyYWxz IGhvcm5z IGNpcmN1bGF0ZWQ= IHJvYmJlZA== IFVubGltaXRlZA== IGhhcmFzc2Vk IGluaGliaXQ= IGNvbXBvc2Vy IFNwb3RpZnk= IHNwcmVhZHM= MzY0 IHN1aWNpZGFs IG5vaXNlcw== IFN0dXI= IHNhZ2E= IEthZw== aXNv IHRoZW9yZXRpY2FsbHk= TW9uZXk= IHNpbWlsYXJpdHk= IHNsaWNlZA== dXRpbHM= aW5nZXM= Ii0= IGFudGg= IGltcGVk TW9kdWxl VGhyb3VnaG91dA== IG1lbnVz Y29tbWl0dGVl YW5kaQ== b2Jq aW5hdg== ZmlyZWQ= IEFiZHVsbGFo IHVuZGVhZA== IGZvbnRz SG9sZA== RU5H IHN1c3RhaW5hYmlsaXR5 IGZsaWNr IHJhem9y IEZlc3Q= IENoYXJhY3RlcnM= IHdvcmRpbmc= IHBvcHVsaXN0 IGNyaXRpY2l6aW5n IG11c2U= dmluZQ== IGNhcmRib2FyZA== IGtpbmRseQ== IGZyaW5nZQ== IFRoZWZ0 aWN1bHR1cmFs IGdvdmVybm9ycw== IO+/ve+/ve+/ve+/vQ== IDE2Mw== IHRpbWVvdXQ= IEF1dGg= Q2hpbGRyZW4= QVU= IHJlZGVtcHRpb24= IEFsZ2Vy IDE5MTQ= IHdhdmVk IGFzdHJvbmF1dHM= b2dyYW1z IHN3YW1w IEZpbm5pc2g= IGNhbmRsZQ== IHRvbm5lcw== dXRt IHJheQ== IHNwdW4= IGZlYXJmdWw= YXJ0aWNsZXM= IGNhdXM= b3JpY2FsbHk= IFJlcXVpcmVz IEdvbA== IHBvcGU= IGluYXVndXJhbA== IGdsZQ== QURB IElTSUw= IE9mZmVuc2l2ZQ== IHdhdGNoZG9n IGJhbGNvbg== ZW50aXR5 IEhvbw== IGdhbGxvbg== QUND IGRvdWJsaW5n IGltcGxpY2F0aW9u IFNpZ2h0 IGRvY3Ry LS0tLS0tLQ== IFxc IG1hbHQ= Um9sbA== IOKJpQ== IHJlY2Fw YWRkaW5n dWNlcw== IEJlbmQ= ZmlndXJl IHR1cmtleQ== IHNvY2lldGFs IFRpY2tldHM= IGNvbW1lcmNpYWxseQ== IHNwaWN5 IDIxNg== IFJhbXA= IHN1cGVyaW9yaXR5 w68= IFRyYWNrZXI= Q2FybA== IENveQ== IFBhdHJpb3Q= IGNvbnN1bHRlZA== IGxpc3Rpbmdz IHNsZXc= cmVlbnNob3Q= IEdvbmU= IFsuLi5d MzA5 IGhvdHRlc3Q= 2LE= IHJvY2t5 IERpYXo= IG1hc3NhZ2U= IHBhcmFseQ== IHBvbnk= QXo= IGNhcnRyaWRnZQ== IE5a IHNuYWNr IExhbWFy cGxlbWVudA== IExlc2xpZQ== IG1hdGVy IHNuaXBw MjQ2 IGpvaW50bHk= IEJyaXNiYW5l IGlQb2Q= IHB1bXBpbmc= IGdvYXQ= IFNoYXJvbg== ZWFsaW5n IGNvcm9u IGFub21hbA== cmFoaW0= IENvbm5lY3Rpb24= IHNjdWxwdHVyZQ== IHNjaGVkdWxpbmc= IERhZGR5 YXRoaW5n IGV5ZWJyb3dz IGN1cnZlZA== IHNlbnRpbWVudHM= IGRyYWZ0aW5n RHJvcA== KFs= IG5vbWluYWw= IExlYWRlcnNoaXA= IEdyb3c= IDE3Ng== IGNvbnN0cnVjdGl2ZQ== aXZhdGlvbg== IGNvcnJ1cHRlZA== Z2VyYWxk IENyb3M= IENoZXN0ZXI= IExhcA== 44Gq T1RI REFUQQ== IGFsbW9uZA== cHJvYmFibHk= SW1w IGZlYXN0 IFdhcmNyYWZ0 Rmxvcg== IGNoZWNrcG9pbnQ= IHRyYW5zY3JpcHRpb24= IDIwNA== IHR3ZWFrcw== IHJlbGlldmU= U2NpZW5jZQ== IHBlcmZvcm1lcg== Wm9uZQ== IHR1cm1vaWw= aWdhdGVk aGliaXQ= IENhZmU= dGhlbWVk IGZsdW9y YmVuY2g= IGRlY29t IFVudA== IEJhcnJldHQ= IEZhY3Rz IHRhc3Rpbmc= IFBUU0Q= IFNlYWw= IEp1ZGFpc20= IER5bmFtaWM= IENvcnM= VmU= IE1pbmc= IFRyYW5zZm9ybQ== dm9u IERlZmVuZGVycw== IFRhY3RpY2Fs IFZvbg== IFVuaXZlcnM= IGRpc3RvcnRlZA== IEJyZWF0aA== Pyci IGFnb24= IERlYWRseQ== IGxhbg== IEN5Y2xl b3JuZWQ= IHJlbGlhYmx5 IGdsb3I= IE1vbmtleQ== 44Oh IGFkcmVu IG1pY3Jvd2F2ZQ== IEFsYmFu aXJjcmFmdA== ZGlnaXQ= c21hcnQ= IERyZWFk wq/Cr8Kvwq/Cr8Kvwq/Cr8Kvwq/Cr8Kvwq/Cr8Kvwq8= e3s= IFJvY2hlc3Rlcg== IHNpbXBsaWZpZWQ= IGluZmxpY3RlZA== IHRha2VvdmVy IHlvdXJzZWx2ZXM= YWRpdGlvbmFs IG11c2N1bGFy S1M= IGluZ2Vu VGF4 IEZlYXR1cmU= Mjc3 IGNydWM= IGNyYXRl IHVuaWRlbnRpZmllZA== IGFjY2xhaW1lZA== IE1hbmdh IEZyYW5jZXM= IE5lcGFs IEdlcmFsZA== IEt1d2FpdA== IHNsYWlu IEhlYg== IEdva3U= 44Gu5g== Mjg2 TXJz IENvZHk= IFNhbmN0dWFyeQ== MDE2 IGRpc21hbnQ= IGRhdGFzZXQ= IEhvbmQ= YnVjaw== IFBhdHRlcnNvbg== IHBhbGV0dGU= IEdE aWNvbA== IExvZGdl IHBsYW5ldGFyeQ== YWtpbg== IFJlZ2lzdGVyZWQ= YWJ3ZQ== IFBldGVyc2J1cmc= IGhhaWxlZA== IFBpZWNl U2NoZQ== IERPSg== IGVudW1lcg== MTgx IE9ic2VydmVy IEJvbGQ= Zm91bmRlZA== Y29tbWVyY2U= IGV4cGxvaXRz IEZpbmRpbmc= VVJO IFNuZQ== IEFjaWQ= YXlldHRl IFZhbHVlcw== IGRyYXN0aWM= IGFyY2hpdGVjdHVyYWw= ICIu 15U= dW1wZWQ= IHdyYXBwaW5n IHdpZG93 IFNsYXllcg== bGFjZQ== b25jZQ== R2VybWFueQ== YXZvaWQ= IHRlbXBsZXM= UEFS w7Q= IEx1Y2lmZXI= IEZsaWNrcg== bG92 Zm9yY2Vz IHNjb3V0aW5n IGxvdWRlcg== dGVzeQ== IGJlZm9yZWhhbmQ= xJM= IE5lb24= IFdvbA== IFR5cGljYWxseQ== IFBvbGl0aWNv LSstKw== IGJ1aWxkZXI= IGRlcml2ZQ== S2lsbA== IHBva2Vy IGFtYmlndW91cw== IGxpZnRz IGN5dA== IHJpYnM= b29kbGU= IFNvdW5kcw== aGFpcg== IFN5bmRyb21l dGY= IHByb3BvcnRpb25hbA== dWlk IHBlcnRhaW5pbmc= IEtpbmRsZQ== IE5lZ3Jv IHJlaXRlcmF0ZWQ= IFRvbmlnaHQ= b3Rocw== IENvcm5lbGw= IG93aW5n IDIwOA== ZWxmYXJl b2NhdGluZw== IEJpcmRz U3Vic2NyaWJl IGVzc2F5cw== IGJ1cmRlbnM= IGlsbHVzdHJhdGlvbnM= YXJpb3Vz RVJBTA== IENhbGN1bA== IHhlbg== IExpbmtlZElu IEp1bmc= IHJlZGVzaWdu Q29ubm9y Mjk2 IHJldmVyc2Fs IEFkZWxhaWRl IExM IHNpbmtpbmc= IGd1bQ== VVNI Y2FwdA== IEdyaW1t IGZvb3RzdGVwcw== IENCRA== aXNwZXJz IHByb3Nl V2VkbmVzZGF5 IE1vdmllcw== ZWRpbg== IG92ZXJ0dXJuZWQ= IGNvbnRlbnRpb3Vz VVNC fn5+fn5+fn5+fn5+fn5+fg== IENvcHBlcg== IHBvaW50bGVzcw== TlY= dmFsdWVz b2xwaGlu ZGFpbg== IGRlcG9zaXRlZA== IEdX IHByZWNlZGVk IENsYQ== IEdvbGVt IE5pbQ== IM6y IEVuZ2luZWVycw== bWlkZGxl IGZsYXR0 b3BlcmF0aXZl IGNvdW5jaWxz aW1iYWJ3ZQ== ZWxpbg== IHN0cmVzc2Z1bA== IExE IHJlc2g= bGFrZQ== IHdoZWVsY2hhaXI= IEFsdGVybmF0aXZl IG9wdGltaXpl b3BlcmF0aW9u IHBlZWs= IG9uZXNlbGY= aWdpbA== IHRyYW5zaXRpb25z b3BhdGh5 Ymxhbms= IDE2OQ== MTcx X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw== IGxhdW5kZXJpbmc= RW5j IERFQw== IHdvcmtvdXRz IHNwaWtlcw== IGRpbm9zYXVycw== IGRpc2NyaW1pbmF0b3J5 UG9vbA== UmF0aGVy Mzg1 Uk5B dGVzdGVycw== ZXRv IElkZW50aXR5 IHZlaW4= IEJ1cnRvbg== IGFyY2FkZQ== NDIw VWx0aW1hdGVseQ== IFNhZGx5 w7A= cGlsbA== IGN1Ymlj IFNwZWN0cnVt dGhlc2U= c3RhdGVz IHVub2ZmaWNpYWw= aGF3a3M= IEVWRVJZ IHJhaW5ib3c= IGluY2FyY2VyYXRpb24= YW5kaW5n IHN5bGw= IEV2ZXJ0b24= IDE3OQ== IFNlcmJpYQ== IDE4OQ== bWV0ZXI= IE1pY2tleQ== IGFudGlxdQ== IGZhY3R1YWw= bmVjaw== IE5hcmU= bm9ybQ== bXVzdA== IGhpZ2h3YXlz IGdsYW0= IGRpdmlkaW5n IFNxdWFkcm9u IE1hcnRoYQ== IGJpcnRocw== Q292ZXI= Ly8vLy8vLy8vLy8vLy8vLw== IFdvbmc= UGhvdA== IEFMUw== cmlv IE5vbmV0aGVsZXNz IExlbW9u IDIwNg== IEVF IGRlcml2YXRpdmU= IFdXSUk= dm90ZQ== IHRoZXJlaW4= IHNlcGFyYXRpbmc= NDQ2 c3luYw== IFN0cmVldHM= IHJhdHQ= IG11bmljaXBhbGl0eQ== IFNob3J0bHk= IG1vbms= KSwi IHNjcnVi IG9wZXJhdGl2ZXM= TmVpdGhlcg== UGxhY2U= IExpbWl0 RmVtYWxl IEFjdG9y Q2hhcmFjdGVy IGNvbnN0aXR1dGVk MzU3 IHByb3Rlc3RlZA== IFN0cmF3 IEhlaWdodA== aWxkYQ== IFR5cGg= IGZsb29kcw== IGNvc21ldGlj V0FZ cGVydHVyZQ== dXBvbg== dG9ucw== ZXNzaW5n IFBvY2tldA== IHJvb2Z0 IENhdWNhcw== IGFudGlkZXByZXNz IGluY29tcGF0aWJsZQ== RUNE IG9wZXJh IENvbnRlc3Q= IGdlbmVyYXRvcnM= bGltZQ== RGVmZW5zZQ== MTk4Nw== Zm9ydW0= IHNhdmFnZQ== IEh1bmdhcmlhbg== bno= IG1ldGFsbGlj IGV4cGVsbGVk IHJlc2lkZW5jeQ== IGRyZXNzZXM= NjY2 IENsZW1lbnQ= ZmlyZXM= Q2F0ZWdvcnk= IGdlZWs= YWxpcw== IGNlbWV0ZXJ5 ZWR1Y2F0ZWQ= IGNyYXds IFVuYWJsZQ== IFR5c29u YWtpcw== IHBhcmRvbg== IFdyYQ== IHN0cmVuZ3RoZW5lZA== IEZvcnM= MzM1 IEhD IE1vbmQ= IHZpc3VhbHM= IEJlYXRsZXM= ZXR0bGVtZW50 IO8= Z3Jv IGJhc2g= IHBvb3Jlc3Q= IGV4Y2Vs IGFzcGlyYXRpb25z IE11bmljaXA= ZW5zaWJsZQ== IGNlcmVtb25pZXM= IGludGltaWRhdGlvbg== IENPTlRS YmVjaw== IEthcA== YXN1 IHRyYWRlbWFya3M= IFNldw== IENvbXBldGl0aW9u bmV0d29yaw== IEFycmk= IFRldA== Um9hbWluZw== V0M= RGF0 IHNvYg== IHBhaXJpbmc= IG92ZXJkb3Nl U0FZ YWJlcg== IHJldm9sdA== IEZhaA== YWN0aW5n ZXE= ZXN0YXRpb24= RmlnaHQ= IE1hcmtz Mjcz IDE3OA== UmF3 44GL MzQ5 YmxvY2tz IHZlcmdl ZXN0aW5l IFBvZGVzdGE= IGludmFzaXZl IHByb2ZvdW5kbHk= IEFv ZWFjaA== IGxlc3Q= aW50ZXJwcmV0 IHNocmlua2luZw== IGVycm9uZQ== IGNoZWVz bHlz IEl2eQ== IERpcmVjdG9yeQ== IGhpbnRlZA== VklDRQ== IGNvbnRhY3Rpbmc= IEdlbnQ= aGVp IGxhYmVsaW5n IG1lcmN1cnk= IExpdGU= IGV4cGlyZXM= IGRlc3RhYmls cml0aXM= Y3U= IGZlYXRoZXJz IHN0ZWVy IHByb2dyYW1tZWQ= IFZhZGVy R29pbmc= IEVsaW0= IHlv IE1pY2hl IDIwMw== IHNsZWV2ZXM= IGJ1bGx5 IEh1bWFucw== MzY4 IGNvbXByZXNz IEJhbm5lcg== QVJT IGF3aGlsZQ== IGNhbGli IHNwb25zb3JzaGlw IERpZmZpY3VsdHk= IFBhcGVycw== IGlkZW50aWZpZXI= fS4= IHlvZw== IFNoaWE= IGNsZWFudXA= IHZpYmU= aW50cm9kdQ== aW1taW5n QXVzdHJhbGlh IG91dGxpbmVz IFlvdXR1YmU= dHJhaW4= IE1ha2Vz IGRlcG9ydGVk IGNlbnRy IER1Zw== IEJvdWxkZXI= IEJ1ZmZ5 IGluanVuY3Rpb24= IEhhcmxleQ== IEdyb3Vwcw== IER1bWJsZWRvcmU= IENsYXJh ICIt IHNhY3JpZmljZWQ= ZXBo U2hhZG93 aWJsaW5n IGZyZWVsYW5jZQ== IGV2aWRlbnRseQ== cGhhbA== IHJldGFpbnM= TWly IGZpbml0ZQ== ZGFy IENvdXM= IHJlcGFpcmVk IHBlcmlvZGlj IGNoYW1waW9uc2hpcHM= IGFzdGVyb2lk YmxpbmQ= IGV4cHJlc3NseQ== IEFzdHJvcw== IHNjYWxlZA== IGdlb2dyYXBoaWNhbA== IFJhcGlkcw== RW5qb3k= IGVsYXN0aWM= IE1vaGFtZWQ= TWFya2V0 YmVnaW4= IGRpc2NvdmVycw== IHRlbGVjb21tdW5pY2F0aW9ucw== IHNjYW5uZXI= IGVubGFyZ2U= IHNoYXJrcw== IHBzeWNoZWRlbA== IFJvdWdl IHNuYXBzaG90 aXNpbmU= WFA= IHBlc3RpY2lkZXM= IExTRA== IERpc3RyaWJ1dGlvbg== cmVhbGx5 IGRlZ3JhZGF0aW9u IGRpc2d1aXNl IGJpb20= IEVYVA== IGVxdWF0aW9ucw== IGhhemFyZHM= IENvbXBhcmVk KSo= IHZpcnR1ZXM= IGVsZGVycw== IGVuaGFuY2luZw== IEFjcm9zcw== ZXJvcw== YW5nbGluZw== IGNvbWJ1c3Q= dWNjaQ== IGNvbmN1c3Npb24= IGNvbnRyYWNlcHRpb24= IEthbmc= IGV4cHJlc3Nlcw== IGF1eA== IFBpb25l IGV4aGliaXRz RGVidWc= T1RBTA== IEFscmVhZHk= IFdoZWVsZXI= IGV4cGFuZHM= Pzo= IHJlY29uY2lsaWF0aW9u IHBpcmF0ZXM= IHB1cnNl IGRpc2NvdXJhZ2U= IHNwZWN0YWNsZQ== UmFuaw== IHdyYXBz IFRob3VnaHQ= IGltcGVuZGluZw== T3Bw IEFuZ2xv IEVVUg== IHNjcmV3ZWQ= cmV0Y2hlZA== IGVuY291cmFnZW1lbnQ= bW9kZWxz IGNvbmZ1c2U= bW1t IFZpdGFtaW4= 4paR4paR Q3J1 IGtuaWdodHM= IGRpc2NhcmQ= IGJpc2hvcHM= IFdlYXI= IEdhcnJldHQ= a2Fu 44Of IG1hc2N1bGluZQ== Y2FwaXRhbA== IEF1cw== IGZhdGFsbHk= dGhhbmtz IEFV IEd1dA== MTIwMA== IDAwMDAwMDAw IHN1cnJvZw== IEJJT1M= cmFpdHM= IFdhdHRz IHJlc3VycmVjdGlvbg== IEVsZWN0b3JhbA== IFRpcHM= NDAwMA== IG51dHJpZW50 IGRlcGljdGluZw== IHNwcmluaw== IG11ZmY= IExJTQ== IFNhbXBsZQ== cHNj aWJp Z2VuZXJhdGVk IHNwZWNpbWVucw== IGRpc3NhdGlzZg== IHRhaWxvcmVk IGhvbGRpbmdz IE1vbnRobHk= IEVhdA== cG9vbnM= IG5lYw== IENhZ2U= IExvdHVz IExhbnRlcm4= IGZyb250aWVy IHBlbnNpb25z IGpva2Vk IEhhcmR5 PS09LT0tPS0= cmFkZQ== VUlE IHJhaWxz IGVtaXQ= IHNsYXRl IHNtdWc= IHNwaXQ= IENhbGxz IEphY29icw== ZmVhdA== IFVF IHJlc3RydWN0 IHJlZ2VuZXJhdGlvbg== IGVuZXJnaWVz IENvbm5vcg== T0hO IENoZWVzZQ== IGdlcg== IHJlc3VycmVjdA== bWFuYWdlbWVudA== Tlc= IHByZXNlbnRseQ== IEJydWlucw== TWVtYmVy IE1hbmc= aWRhbg== IGJvb3N0aW5n d3lu Ky4= cmVxdWlzaXRl IE5ZUEQ= IE1lZ2Fu IENvbmRpdGlvbnM= IHBpY3M= bmVzaXVt IFJhc2g= IDE3NA== IER1Y2tz IGVtYnJv enU= b25pYW4= cmVsaWdpb3Vz IGNyYXo= IEFDQQ== IFp1Y2tlcg== RU1B IFByb3M= V2VhcG9u IEtub3g= IEFyZHVpbm8= IHN0b3Zl IGhlYXZlbnM= IFB1cmNoYXNl IGhlcmQ= IGZ1bmRyYWlzZXI= RGlnaXRhbA== NTAwMA== IHByb3BvbmVudHM= L+KAiw== IGplbGx5 IFZpc2E= IG1vbmtz IGFkdmFuY2VtZW50 IFdlcg== IDE4Nw== ZXVz ZXJ0aWxpdHk= IGZldGFs IDE5MzY= TG8= IG91dGZpdHM= IHN0YWlyY2FzZQ== Ym9tYg== IGN1c3RvbWl6ZWQ= Y2xhaXI= VHJlZQ== IG1hcHBlZA== IENvbnNpZGVyaW5n IFRvcnJlcw== IG1ldGh5bA== IGFwcHJveGltYXRl IGRvb20= IEhhbnNlbg== IGNyb3Nzb3Zlcg== IHN0YW5kYWxvbmU= 5Lw= IGludml0ZXM= IGdyYXZleWFyZA== IGhw RG9uYWxkVHJ1bXA= IGVzY29ydA== R2Fy IHByZWRlY2Vzc29ycw== IGhheQ== IGVuenltZQ== IFN0cmFpZ2h0 dmlzb3Jz SW5n YW5lb3VzbHk= IEFwcGxpZWQ= IGZlYw== IER1cmFudA== IG91dHNwb2tlbg== b3Ji IHplYWw= IGRpc2dyYWNl Jyku IENoZW5n Mjg5 IFJlbmE= IFN1aWNpZGU= Mjk0 IG91dHJhZ2Vk IE5ld21hbg== IE52aWRpYQ== IEFiZXI= IEJlcnM= IHJlY3JlYXRpb24= V2luZG93 IERQ eGU= IHBlZG9waA== IGZhbGxvdXQ= YW1ib28= IHByZXNlbnRhdGlvbnM= IEFwcHM= IGh0bWw= MzQ1 IFhYWA== IHJ1YmJpbmc= IExlYXRoZXI= IGh1bWlkaXR5 c2V5cw== ZXN0YWJsaXNoZWQ= IFVuaXRz NjQ2 IHJlc3BlY3RhYmxl QXV0bw== IHRocml2aW5n IElubm92YXRpb24= YW5ncw== RXh0cmE= cmVndWxhdGlvbg== Mjk4 cGljaw== RXhhbXBsZXM= IENK QXR0YWNr IGRyYWNvbg== TFQ= IHN0aWNrZXI= cmVycw== IHN1bm55 SXNz cmVndWxhdGVk ZGlt IEFic3RyYWN0 IGh1c2JhbmRz T2ZmaWNl b21pbmF0aW9u aXRhcnM= QU5HRQ== YXNjYWw= IEtyaXM= IEluZmFudHJ5 IG1hbGY= IEF0aGU= IFJhbGx5 YmFsYW5jZWQ= Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u T1VQ IG1vbGVjdWxl bWV0aWNz IFNwbGl0 IEluc3RydWN0aW9ucw== IE5pZ2h0cw== Y2FyZHM= IHR1Zw== IGNvbmU= 5a0= IHR4 IERpc2N1c3Npb24= IGNhdGFzdHJvcGhl cHBl Z2lv IGNvbW11bmlzbQ== IGhhbHRlZA== IEd1YW50 Y2xlYW4= IFNjaGVk IEthbnll IHdhbmRlcg== IFNlcmlvdXNseQ== IDE4OA== ZW5uaWFs Zm9sbG93 cHJvZHVjdGl2ZQ== IEZsb3c= IFNhaWw= IGNyYXc= IHNpbXVsYXRpb25z b3J1 YW5nbGVz IE5vbGFu IG1lbnN0cnU= NDcw IDIwNw== YWph IGNhc3VhbGx5 Ym9hcmRpbmc= IDIyMg== b3Z5 IE51bWJlcnM= dW1hdA== T0U= Mjg3 IENsZW1zb24= IGNlcnRz IHNsaWQ= IFRyaWJl IHRvYXN0 IGZvcnR1bmVz IGZhbHM= IENvbW1pdHRlZXM= IGdw IGZpZXJ5 IE5ldHM= IEFuaW1l UGFja2FnZQ== IENvbXBhcmU= bGF1Z2h0ZXI= aW5mZWN0 IGF0cm9jaXRpZXM= IGp1c3RpY2Vz IGluc3VsdHM= IFZlcm5vbg== IHNoYWtlbg== IHBlcnNvbmE= ZXN0YW1w MzY3 YnJhaW4= IGV4cGVyaW1lbnRpbmc= S2Vu IEVsZWN0cm9uaWNz IDE2MQ== ZG9tYWlu IGdyYXBoaWNhbA== YmlzaG9w IHdob3BwaW5n IEV2YW5nZWw= IGFkdmVydGlzZXJz IFNwZWFy IGJpZHM= IGRlc3Ryb3lz dXR6 IHVuZGVyc2M= IEFERA== IGFudHM= IEN1bQ== aXBwbGVz IEZpbGw= IGdsYW5jZWQ= IGluZGljdGVk IEVmZg== IG1pc2Nvbg== IERlc2t0b3A= IGFiaWRl 44OA IElv IENvdWw= IGNhcHN1bGU= IENocnlz TU9O IHVuZGVz IElSQQ== IGNpdGF0aW9u IGRpY3RhdGU= IE5ldHdvcmtz IENvbmZsaWN0 IFN0dWZm eGE= aXNlYw== IENoZW1pc3RyeQ== IHF1YXJ0ZXJseQ== V2lsbGlhbXM= YW5hbg== T3B0 IEFsZXhhbmRyaWE= b3V0aGVhc3Rlcm4= IFNwcmluZ2ZpZWxk IEJsYWNrcw== IGdlb2dyYXBoeQ== MjQy IHV0bW9zdA== IEV4eG9u YWJvdXRz RVZB IEVuYWJsZQ== IEJhcnI= IGRpc2FncmVlZA== IEN5cHJ1cw== IGRlbWVudGlh IGxhYnM= IHViaXF1aXRvdXM= IExPVkU= IGNvbnNvbGlkYXRlZA== c3I= IGNyZWFteQ== IFRpbWJlcg== UmVnYXJkbGVzcw== IENlcnRpZmljYXRl ICIuLi4= b2dlbm91cw== Q2FwdGFpbg== IGluc3VsdGluZw== IFNvcm9z IEluc3Ry IEJ1bGdhcmlh YmV0dGVy IHN1Y2tpbmc= IERhdmlkc29u YXR6 IGNvbGxhdGVyYWw= Z2lm IHBsYWd1ZWQ= IENhbmNlbA== IEdhcmRuZXI= UkI= IHNpeHRlZW4= UmVtb3Zl dXJpc3RpYw== Y29vaw== Um9k IGNvbXByaXNpbmc= Zmxl KeKAlA== IFZpa2luZw== Z3Jvd3Ro YWdvbmFs IHNyZg== YWZldHk= bW90 TmVhcmx5 c3Rvd24= IEZhY3Rvcg== IGF1dG9tb2JpbGU= IHByb2NlZHVyYWw= bWFzaw== YW1waXJlcw== IGRpc2FwcGVhcnM= amFi MzE1 IDE5NTE= bmVlZGVk IGRhcmluZw== bGVhZGVy IHBvZGl1bQ== IHVuaGVhbHRoeQ== IG11bmQ= IHB5cmFtaWQ= b2NyZQ== IGtpc3NlZA== IGRyZWFtZWQ= IEZhbnRhc3RpYw== IEdseQ== 5Yo= IGdyZWF0bmVzcw== IHNwaWNlcw== IG1ldHJvcG9saXRhbg== IGNvbXB1bHM= aWV0cw== MTAxNg== IFNoYW0= IFB5cg== ZmxpZXM= IE1pZG5pZ2h0 IHN3YWxsb3dlZA== IGdlbnJlcw== IEx1Y2t5 IFJld2FyZHM= IGRpc3BhdGNo IElQQQ== IEFwcGx5 IGF2ZW4= YWxpdGllcw== MzEy dGhpbmdz ICgpLg== IG1hdGVz IFN6 IENPUA== b2xhdGU= T0ZG IHJlY2hhcmdl Y2Fwcw== IFlvcmtlcg== aWNvbmU= IGdhbGF4aWVz aWxlYWtz RGF2ZQ== IFB1eno= IENlbHRpYw== IEFGQw== Mjc2 IFNvbnM= IGFmZmlybWF0aXZl SG9y IHR1dG9yaWFscw== IENJVFk= IFJvc2E= IEV4dGVuc2lvbg== U2VyaWVz IGZhdHM= IHJhYg== bGlz IHVuaWM= IGV2ZQ== IFNwaW4= IGFkdWx0aG9vZA== dHlw IHNlY3Rhcmlhbg== IGNoZWNrb3V0 IEN5Y2w= U2luZ2xl IG1hcnR5cg== IGNoaWxsaW5n ODg4 b3VmbA== IF07 IGNvbmdlc3Rpb24= bWs= IFdoZXJlYXM= IDE5Mzg= dXJyZW5jaWVz ZXJpb24= IGJvYXN0 IFBhdGllbnRz IGNoYXA= IEJE cmVhbERvbmFsZFRydW1w IGV4YW1pbmVz aG92 IHN0YXJ0bGluZw== IEJhYnlsb24= d2lk b21ldw== YnJhbmNl IE9keXNzZXk= d2ln IHRvcmNo IFZveA== IE1veg== IFRyb2xs IEFucw== U2ltaWxhcmx5 IEZ1bA== MDA2 VW5sZXNz IEFsb25l c3RlYWQ= IFB1Ymxpc2hlcg== cmlnaHRz dHU= IERvZXNu IHByb2Zlc3Npb25hbGx5 IGNsbw== aWN6 IHN0ZWFscw== IOE= MTk4Ng== IHN0dXJkeQ== IEpvaGFubg== IG1lZGFscw== IGZpbGluZ3M= IEZyYXNlcg== ZG9uZQ== IG11bHRpbmF0aW9uYWw= IGZlZGVy IHdvcnRobGVzcw== IHBlc3Q= WWVzdGVyZGF5 YW5raW5k IGdheXM= IGJvcm5l IFBPUw== UGljdHVyZQ== IHBlcmNlbnRhZ2Vz MjUx cmFtZQ== IHBvdGlvbnM= QU1E IExlYmFuZXNl IHJhbmc= IExTVQ== b25ncw== IHBlbmluc3VsYQ== IENsYXVzZQ== QUxL b2hh IE1hY0Jvb2s= IHVuYW5pbW91cw== IGxlbmRlcnM= IGhhbmdz IGZyYW5jaGlzZXM= b3JlcnM= IFVwZGF0ZXM= IGlzb2xhdGU= YW5kcm8= U29vbg== IGRpc3J1cHRpdmU= IFN1cnZl IHN0aXRjaGVz IFNjb3Jw IERvbWluaW9u IHN1cHBseWluZw== QXJn IHR1cnJldA== IEx1aw== IGJyYWNrZXRz Kik= IFJldm9sdXRpb25hcnk= IEhvbmVzdA== IG5vdGljaW5n IFNoYW5ub24= IGFmZm9yZGVk IHRoYQ== IEphbmV0 IS0t IE5hcmVuZHJh IFBsb3Q= SG9s c2V2ZXI= ZWVudGg= IG9ic3RydWN0aW9u IDEwMjQ= c3RhZmY= amFz b3JnZXQ= c2NlbmVz bGF1Z2hz IEZhcmdv Y3JpbWU= IG9yY2hlc3Ry IGRlbGV0 aWxpYXJ5 cmlldmVk IG1pbGl0YXI= IEdyZWVuZQ== 4peP 44Gm IEd1YXJkcw== IHVubGVhc2hlZA== IFdlYmVy IGFkanVzdGFibGU= IGNhbGliZXI= IG1vdGl2YXRpb25z IMOg bUFo IExhbmth aGFuZGxl IHBlbnQ= IFJhdg== IEFuZ3VsYXI= IEthdQ== dW1iaW5n IHBoaWxhbnRocm9w IGRlaHlk IHRveGljaXR5 ZWVy IFlPUks= d2l0eg== 5bw= IElF Y29tbXVuaXR5 IEFI IHJldGFsaQ== IG1hc3NpdmVseQ== IERhbmllbHM= IERFTA== IGNhcmNpbg== VXJs IHJvdXRpbmc= IE5QQ3M= IFJBRg== cnljZQ== IHdhaXZlZA== IEd1YXRlbQ== RXZlcnlib2R5 IGNvdmVuYW50 IDE3Mw== IHJlbGF4aW5n IHF1YXJ0 YWxtb3N0 IGd1YXJkZWQ= IFNvbGRpZXJz IFBMQVk= IG91dGdvaW5n TEFORA== IHJld3JpdGU= IE1PVg== IEltcGVy IFNvbHV0aW9u IHBoZW5vbWVuYWw= IGxvbmdldml0eQ== IGltcGF0 IE5pc3Nhbg== aXJpZQ== IG9kb3I= IFphcg== b2tz IG1pbGl0aWFz IFNQRUM= IHRvbGVyYXRlZA== YXJzZXI= IEJyYWRmb3Jk Kyw= IHN1cnJlYWw= c2Y= Q2FuYWRpYW4= IHJlc2VtYmxhbmNl IGNhcmJvaHlkcmF0ZQ== VklFVw== IGFjY2Vzc29yeQ== bWVhbA== bGFyZ2VzdA== aWVnZWw= U29tZW9uZQ== IHRvdWdoZXN0 b3Nv IGZ1bm5lbA== IGNvbmRlbW5hdGlvbg== bHVlbnQ= IHdpcmVk IFN1bnNldA== SmVzdXM= IFBTVA== IFBhZ2Vz IFR5Y29vbg== IFBG IHNlbGVjdGlvbnM= IOCk cGFydGlzYW4= IGhpZ2hz IFJ1bmU= IGNyYWZ0cw== bGVhZA== IFBhcmVudHM= IHJlY2xhaW0= ZWtlcg== IEFsbGllZA== YWVwZXI= IGxvb21pbmc= IGJlbmVmaWNpYXJpZXM= IEh1bGw= U3R1ZGVudHM= SmV3aXNo ZGo= IHBhY3Q= dGVtcGxhdGU= IE9mZmljaWFscw== IEJheWxvcg== IGhlbXA= IHlvdXRocw== IExldmVscw== IFhpYW8= IENoZXM= IGVuZGVhdm9y IFJlbW92ZWQ= IGhpcHBvY2FtcA== SGVsbA== 44KK ODA1 IGRpbm9zYXVy IFdyYXRo IEluZG9uZXNpYW4= IGNhbGN1bGF0b3I= IERpY3Rpb25hcnk= IDQyMA== IE1BRw== KF8= ISw= dGFyaWFucw== IHJlc3RyaWN0aW5n cmFjdXNl IHdlZWtkYXk= T1VOVA== IHNocnVnZ2Vk bGVncm91bmQ= IGJhbGQ= IERvY3RvcnM= IHRvdXRlZA== IE1heHdlbGw= IDIxNA== IGRpcGxvbWF0 IHJlcHJlc3Npb24= IGNvbnN0aXR1ZW5jeQ== dmljZQ== cmFua2Vk IE5hcG9sZW9u Z2FuZw== IEZvcmV2ZXI= dHVu IGJ1bGI= IFBEVA== IENpc2Nv VkVO IHJlc3VtZWQ= U3RldmVu IE1hbml0b2Jh IGZhYnVsb3Vz IEFnZW50cw== MTk4NA== IGFtdXNpbmc= IE15c3Rlcmllcw== IG9ydGhvZG94 Zmxvb3I= IHF1ZXN0aW9ubmFpcmU= IHBlbmV0cmF0ZQ== IGZpbG1tYWtlcnM= IFVuYw== IHN0YW1wZWQ= IHRoaXJ0ZWVu IG91dGZpZWxk IGZvcndhcmRlZA== IGFwcHJh IGFpZGVk dHJ5 IHVuZm9jdXNlZA== IExpeg== IFdlbmR5 IFNjZW5l Q2hhcmc= IHJlamVjdHM= IGxlZnRpc3Q= IFByb3ZpZGVuY2U= IEJyaWQ= cmVnbg== IHByb3BoZWN5 IExJVkU= NDk5 IGZvcmdl IEZNTA== IGludHJpbnNpYw== IEZyb2c= IHdvbnQ= IEhvbHQ= IGZhbWVk Q0xVUw== YWVwZXJuaWNr IEhhdGU= IENheQ== IHJlZ2lzdGVyaW5n b3J0YWxpdHk= cm9weQ== b2NhbHlwdGlj YWFu bmF2 IGZhc2Npc3Q= SUZJRUQ= IGltcGxpY2F0ZWQ= IFJlc29ydA== IENoYW5kbGVy IEJyaWNr UGlu eXNj VXNhZ2U= IEhlbG0= dXNyYQ== 4piF4piF IEFiYmFz IHVuYW5pbW91c2x5 IGtlZXBlcg== IGFkZGljdGVk Pz8/ IGhlbG1ldHM= IGFudGlveGlk YXBzZWQ= ODA4 Z2llbmU= IHdhaXRz IG1pbmlvbg== cmF2ZWQ= IFBvcnNjaGU= IGRyZWFtaW5n IDE3MQ== IENhaW4= IHVuZm9y YXNzbw== IENvbmZpZ3VyYXRpb24= a3Vu aGFyZHQ= IG5lc3RlZA== IExEUw== TEVT IHR5aW5n ZW5vcw== IGN1ZQ== IE1hcnF1 c2tpcnRz IGNsaWNrZWQ= IGV4cGlyYXRpb24= IEFjY29yZGluZ2x5 IFdD IGJsZXNzaW5ncw== IGFkZGljdGl2ZQ== IE5hcnI= eXg= IEphZ3VhcnM= IHJlbnRz IFNpYmVy IHRpcHBlZA== b3Vzc2U= IEZpdHpnZXJhbGQ= IGhpZXJhcmNo b3V0aW5l IHdhdmVsZW5ndGg= Pi4= Y2hpZA== IFByb2Nlc3Npbmc= Lys= cmFua2luZw== RWFzeQ== IENvbnN0cnVjdA== IHRldA== aW5zdXJlZA== SFVE IHF1b3Rpbmc= IGNvbW11bmljYXRlZA== aW54 IGlubWF0ZQ== IGVyZWN0ZWQ= IEFic29sdXRlbHk= IFN1cmVseQ== IHVuaW0= IFRocm9uZQ== aGVpZA== IGNsYXdz IHN1cGVyc3Rhcg== IExlbm4= IFdoaXM= VWs= YWJvbA== IHNrZXQ= IE5pZXQ= IHBlcmtz IGFmZmluaXR5 IG9wZW5pbmdz cGhhc2lz IGRpc2NyaW1pbmF0ZQ== VGlw dmM= IGdyaW5kaW5n IEplbm55 IGFzdGhtYQ== aG9sZXM= IEhvbWVy IHJlZ2lzdGVycw== IEdsYWQ= IGNyZWF0aW9ucw== IGxpdGhpdW0= IGFwcGxhdXNl dW50aWw= SnVzdGljZQ== IFR1cmtz IHNjYW5kYWxz IGJha2U= dGFuaw== TWVjaA== IE1lYW5z IE1haWQ= UmVwdWJsaWNhbnM= aXNhbA== d2luZG93cw== IFNhbnRvcw== IHZlZ2V0YXRpb24= MzM4 dHJp IGZsdXg= aW5zZXJ0 IGNsYXJpZmllZA== IG1vcnRn IENoaW0= IFRvcnQ= IGRpc2NsYWlt bWV0YWw= IEFzaWRl IGluZHVjdGlvbg== IGluZmw= IGF0aGVpc3Rz YW1waA== IGV0aGVy IFZpdGFs IEJ1aWx0 TWluZA== IHdlYXBvbnJ5 U0VU IDE4Ng== YWRtaW4= Z2Ft Y29udHJhY3Q= YWZh IGRlcml2YXRpdmVz IHNuYWNrcw== IGNodXJu RWNvbm9t IGNhcHBlZA== IFVuZGVyc3RhbmRpbmc= IEhlcnM= IEl6 IGR1Y3Q= SUVOVA== YXVnaHR5 IOKclA== IE5Q IHNhaWxpbmc= SW5pdGlhbGl6ZWQ= IHRlZA== IHJlYWN0b3Jz IExvbWI= IGNob2tl IFdvcm0= IGFkbWlyYXRpb24= IHN3dW5n ZW5zaWJseQ== IHJhc2g= IEdvYWxz IEltcG9ydGFudA== U2hvdA== IFJhcw== IHRyYWluZXJz IEJ1bg== V29ya2luZw== IGhhcm1lZA== IFBhbmRvcmE= IExURQ== IG11c2hyb29t IENIQVI= IEZlZQ== IE1veQ== Qm9ybg== b2xpYmVyYWw= IE1hcnRpYWw= IGdlbnRsZW1lbg== IGxpbmdlcmluZw== T2ZmaWNpYWw= IGdyYWZmaXRp IE5hbWVz RGVy IHF1aW50 aXN0cmF0ZQ== YXplZXJh IE5PVElDRQ== IEZsb3JlbmNl IHBheWFibGU= IGRlcGljdHM= IFNwZWNpZXM= SGVhcnQ= 4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA IGVuY2xvc2Vk SW5jcmVhc2Vz RGFpbHk= IExpcw== IGVuYWN0bWVudA== IEJhY29u IFN0ZWVsZQ== ZGVtYW5k IDE4Mw== IG1vdXRocw== IHN0cmFuZGVk IGVuaGFuY2VtZW50 MDEx IFdoYXRz IGhlYWxlZA== ZW55 IFJhYg== IDM0MA== IExhYnlyaW50aA== cm9hY2g= IFlvc2g= IENsaXBwZXJz IGNvbmNlcnRz SW50ZXJuZXQ= MzU1 IHN0aWNrZXJz IHRlcm1lZA== IEF4ZQ== IGdyYW5kcGFyZW50cw== RnJhbmNl IENsaW0= IFVo dWxpYw== IHRocmlsbA== Y2VudHJpYw== IE92ZXJ2aWV3 IENvbmR1Y3Q= IHN1YnN0YW50aXZl IDE4Mg== bXVy IHN0cmF5 IENvZmY= IHJlcGV0aXRpdmU= IEZvcmdvdHRlbg== IHF1YWxpZmljYXRpb24= ZXdpdG5lc3M= IFppbWJhYndl IHNpbXVsYXRlZA== IEpE MjUz IFdhcmU= IHVuc2M= VGltZXM= IHN1bW1vbnM= IGRpc2Nvbm5lY3RlZA== IDE4NA== Y2l1cw== IEd1amFy b2RrYQ== IGVyYXNl IFRvYmFjY28= ZWxlY3RlZA== IHVuY29udA== IFNoZXBhcmQ= IExhbXA= IGFsZXJ0ZWQ= IG9wZXJhdGl2ZQ== YXJuYQ== dWludA== IG5lZ2xpZ2VuY2U= YWNlbWVudHM= IHN1cHJh IHByZXZhaWw= IFNoYXJr IGJlbHRz 44Gr IHRpZ2h0ZXI= RW5naW5lZXJz IGluYWN0aXZl IGV4cG9uZW50 IFdpbGxpZQ== YXBsZXM= IGhlaXI= IEhpdHM= aWFubg== IFNheXM= IGN1cnJlbnRz IEJlbmdhbA== IGFyaXN0 QnVmZmVy IGJyZWV6ZQ== IFdlc2xleQ== Q29sYQ== IHByb25vdW4= IGRlZWQ= IEtsaW5n IG9mdA== IGluZmxpY3Q= IHB1bmlzaGluZw== IG5t aWt1 T0RVQ1Q= MDE0 IHN1YnNpZHk= IERFQQ== IEhlcmJlcnQ= IEphbA== QmFuaw== IGRlZmVycmVk IHNoaXBtZW50 Qm90dA== IGFsbGU= YmVhcmluZw== SFRNTA== T2ZmbGluZQ== IDIxMw== IHNjcm9sbGluZw== IHNjYW5uZWQ= IExpYnlhbg== IFRPUA== Y2hyb20= ZHQ= Y29sdW1u UHN5TmV0TWVzc2FnZQ== WmVybw== IHRvcnNv MDUw 4pWQ IGltcGVyc29u IFNjaHdhcnR6 dWRpYw== IHBpc3NlZA== IFNhcHA= MjU3 IElTUHM= b2ds IHN1cGVydmlzZWQ= IGFkb2xlc2NlbnQ= IGF0dGFpbmVk IERlbGl2ZXJ5 IEJ1bm55 IDE5Mzc= IG1pbmlhdHVyZQ== IG9z IDM3MA== NjA4 IE1vdXJpbmhv IGlubmF0ZQ== IHRlbXBv IE5N IEZhbGxlbg== MDA5 IHByb3ZvY2F0aXZl U3RyZWFtZXI= IEJlbmVkaWN0 IEJvbHNoZQ== IHR1cnRsZQ== IFBDQg== IEVxdWFs RGlyZWN0b3I= IFJlbmQ= IGZsdWlkcw== QXV0aG9yaXRpZXM= IGNvdXNpbnM= cmVxdWVuY3k= IE5laWdoYm9y c2V0cw== c2hhcmVk Q2hhcmxlcw== cGFzc3dvcmQ= IGdlYXJz IDIxMQ== IEhhcmR3YXJl cmlrYQ== IHVwc3RyZWFt SG9t IGRpc3Byb3BvcnRpb25hdGVseQ== aXZpdGllcw== IHVuZGVmaW5lZA== IGVsZWN0cm9ucw== IGNvbW1lbW9y RXZlbnR1YWxseQ== ID48 IGlycmVzcG9uc2libGU= MjE4 IFJlbGVhc2Vk IE9WRVI= IElHTg== IEJyZWFk c3RlbGxhcg== IFNhZ2U= dHRlZA== ZGFtYWdl ZWRpdGlvbg== IFByZWM= IGxpbWU= IGNvbmZpbmVtZW50 IGNhbG9yaWU= d2VhcG9u IGRpZmZlcmluZw== IFNpbmE= bXlz YW1k IGludHJpY2F0ZQ== a2s= IFBBVA== w6Nv c3RvbmVz bGlua3M= IHJhbmNo U2VtaXRpYw== IGRpZmZlcmVudGlhdGU= IFNpbmdlcg== b2NjdXBpZWQ= IGZvcnRyZXNz Y21k IGludGVyY2VwdGlvbg== IEFua2FyYQ== IHJlcHQ= IFNvbGl0YWlyZQ== IHJlbWFrZQ== cHJlZA== IGRhcmVk YXV0aW9ucw== IEJBQ0s= UnVubmluZw== IGRlYnVnZ2luZw== IGdyYXBocw== Mzk5 IE5pZ2Vs IGJ1bg== IHBpbGxvdw== IHByb2dyZXNzZWQ= ZmFzaGlvbmVk IG9iZWRpZW5jZQ== RVJO IHJlaGVhcnM= Q2VsbA== dGw= U2hlcg== IGhlcmFsZA== IFBheW1lbnQ= IENvcnk= IERlcHQ= IHJlcGVudA== IFdlYWs= dWNrbGFuZA== IHBsZWFzaW5n IHNob3J0YWdlcw== IGp1cm9ycw== IEthYg== cXFh QW50aQ== IHdvdw== IFJDTVA= IHRzdW4= IFNpYw== IGNvbXByaXNlcw== IHNwaWVz IHByZWNpbmN0 bnU= IHVyZ2Vz IHRpbWVk IHN0cmlwZXM= IEJvb3Rz IHllbg== QWR2YW5jZWQ= IGRpc2NyZXRl IEFyY2hhbmdlbA== ZW1wbG95bWVudA== RGlmZg== IG1vbnVtZW50cw== IDIwOQ== d29ya2Vy IDE5Ng== IEln dXR0ZXJzdG9jaw== VFBT SmFj IGhvbWVsZXNzbmVzcw== IGNvbW1lbnRhdG9y IHJhY2lhbGx5 ZmluZw== c2VlZA== RWxl ZWxsYXRpb24= IGV0aGFub2w= IHBhcmlzaA== IERvbmc= IEF3YWtlbmluZw== IGRldmlhdGlvbg== IEJlYXJpbmc= IFRzdWs= IHJlY2Vzcw== IGx5bXBo IENhbm5hYmlz 5Zw= IE5FV1M= IGRyYQ== IFN0ZWZhbg== IFdyb25n IFNBTQ== IGxvb3NlbHk= IGludGVycHJldGVy IFBsYWlu R292ZXJubWVudA== IGJpZ290cnk= IGdyZW5hZGVz YXZleg== cGljdHVyZWQ= IG1hbmRhdGVk IE1vbms= IFBlZHJv IGxhdmE= Mjc0 IGN5bmljYWw= IFNjcm9sbHM= bG9ja3M= TXA= IGNvbmdyZWdhdGlvbg== b3JuaW5ncw== cGhpbA== IEliaWQ= IGZlcnY= IGRpc2FwcGVhcmluZw== IGFycm9nYW50 c3lu IE1hdmVy IFN1aXQ= MjQx IGFiYnJl YWNrZXJz UGE= IFllbA== V2hlbmV2ZXI= IDIzNQ== IFZpbmU= IEFuYXQ= IGV4dGluY3Q= TEVU IGV4ZWN1dGFibGU= VkVSUw== b3hpZGU= RE5B IFByZWw= IHJlc2VudG1lbnQ= IGNvbXByaXNl IEF2aXY= IGludGVyY2VwdGlvbnM= IHByb2xpZmlj SU5B IEVyaW4= dGhvdWdodA== MjE5 IFBzeWNoaWF0cnk= dW5reQ== Y2hlbWlzdA== SG8= IE1jQ295 IGJyaWNrcw== TG9z cmlseQ== IFVTU1I= IHJ1ZA== IGxhdWQ= IFdpc2U= IEVtZXJhbGQ= IHJldml2ZWQ= IGRhbW5lZA== IFJlcGFpcg== aWRlbQ== Y3RpY2E= IHBhdHJpYXJjaA== IE51cnM= bWVn IGNoZWFwZXN0 cmVlbWVudHM= ZW1wdHk= IENlbGVicg== IGRlcHJpdmF0aW9u Y2hhbnRlZA== IFRodW1ibmFpbHM= RW5lcmd5 IEV0aGFu IFFpbmc= IG9wcG9zZXM= V0lORA== dmlr IE1hdQ== IFNVQg== NjY3 R1JF IFZvbHVudGU= bnRvbg== Q29vaw== 5ZA= ZXNxdWU= IHBsdW1tZXQ= IHN1aW5n IHByb25vdW5jZQ== IHJlc2lzdGluZw== IEZpc2hpbmc= IFRyaWFscw== IHllbGw= IDMxMA== IGluZHVjdA== IHBlcnNvbmFsaXplZA== b2Z0ZW4= UmVi RU1CRVI= IHZpZXdwb2ludA== IGV4aXN0ZW50aWFs KCkp cmVtb3Zl TUVOVFM= bGFzc2Vz IGV2YXBvcg== IGFpc2xl bWV0YQ== IHJlZmxlY3RpdmU= IGVudGl0bGVtZW50 IGRldmlzZWQ= bXVzaWM= YXNjYWRl IHdpbmRpbmc= b2Zmc2V0 IGFjY2Vzc2liaWxpdHk= a2VyZWQ= QmV0dGVy IEpvaG5zdG9u dGhpbmtpbmc= U25vdw== IENyb2F0aWE= IEF0b21pYw== Mjcx MzQ4 IHRleHRib29r IFNpeHRo INin2YQ= IHNsaWRlcg== IEJ1cmdlcg== Ym9s U3luYw== IGdyYW5kY2hpbGRyZW4= IGNlcnY= Kyk= IGV0ZXJuaXR5 IHR3ZWV0aW5n IHNwZWN1bGF0aXZl IHBpdm90YWw= IFdQ IFRFUg== eW5hbWlj IHVwbA== IENhdHM= cGVyaGFwcw== IGNsYXNzbWF0ZXM= IGJsYXRhbnQ= Jy0= IGxha2g= YW50aW5l IEJvcmc= aW9t Lyg= IEF0aGxldGlj IHNhcg== T1RB IEhvZmZtYW4= TmV2ZXJ0aGVsZXNz IGFkb3JhYmxl IHNwYXduZWQ= QXNzb2NpYXRlZA== IERvbWVzdGlj IGltcGxhbnQ= IEx1eGVt IEtlbnM= IHB1bXBz IFNBVA== QXR0cmlidXRlcw== NTA5 YXZvdXI= IGNlbnRyYWxpemVk IFRO IGZyZXNobHk= IEFjaGlldmU= IG91dHNpZGVycw== aGVydHk= IFJlZQ== IFRvd2Vycw== IERhcnQ= YWthYmxl IG1w IEhlYXZlbmx5 IHJpcGU= IENhcm9saW5l cnlhbg== IGNsYXNzaWNz IHJldGlyaW5n IDIyOA== IGFo IGRlYWxpbmdz IHB1bmNoaW5n IENoYXBtYW4= T3B0aW9ucw== bWF4d2VsbA== dm9sdW1l IHN0YWw= IGV4cG9ydGVk IFF1aXRl IG51bWVyaWNhbA== QnVybg== RmFjdA== IEtleXN0b25l IHRyZW5kaW5n IGFsdGVyaW5n IEFmcmljYW5z NDc4 IE1O IEtub2Nr IHRlbXB0YXRpb24= IHByZXN0aWdl T3ZlcnZpZXc= IFRyYWRpdGlvbmFs IEJhaHJhaW4= UHJpdmF0ZQ== IEhPVQ== IGJhcnI= IFRhdA== Q3ViZQ== VVNE IEdyYW5kZQ== IEdhdA== IEZsbw== IHJlc2lkZXM= IGluZGVj dm9sZW50 IHBlcnBldHVhbA== dWJlcw== IHdvcmxkdmlldw== IFF1YW50dW0= IGZpbHRlcmVk IGVuc3U= b3JnZXRvd24= RVJTT04= IE1pbGQ= Mzc5 T1RU w6U= IHZpdGFtaW5z IHJpYmJvbg== IHNpbmNlcmVseQ== IEhpbg== IGVpZ2h0ZWVu IGNvbnRyYWRpY3Rvcnk= IGdsYXJpbmc= IGV4cGVjdGFuY3k= IGNvbnNwaXI= IG1vbnN0cm91cw== IDM4MA== cmVjaQ== IGhhbmRpYw== IHB1bXBlZA== IGluZGljYXRpdmU= IHJhcHA= IGF2YWls IExFR08= IE1hcmlqdWFuYQ== MTk4NQ== ZXJ0b24= IHR3ZW50aWV0aA== IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyM= IFN3YW1w IHZhbHVhdGlvbg== IGFmZmlsaWF0ZXM= YWRqdXN0ZWQ= IEZhY2lsaXR5 MjYy IGVuenltZXM= aXR1ZGluYWw= IGltcHJpbnQ= U2l0ZQ== IGluc3RhbGxlcg== IFRSQQ== bW9sb2d5 bGluZWFy IENvbGxlY3RpdmU= aWdhdGluZw== IFRva2Vu IHNwZWN1bGF0ZWQ= S04= IENseQ== b3JpdHk= IGRlZmVy IGluc3BlY3RvcnM= YXBwcm92ZWQ= Uk0= IFN1bnM= IGluZm9ybWluZw== IFN5cmFjdXNl aWJsaQ== NzY1 IGdsb3Zl IGF1dGhvcml6ZQ== 4oCm4oCm4oCm4oCm4oCm4oCm4oCm4oCm IENydWlzZQ== IGNvbnRyYWN0aW5n c2hlbGw= SUZF IEpld2Vs cHJhY3Q= IFBob3Rvc2hvcA== IEtub3dpbmc= aGFybQ== IGF0dHJhY3Rpb25z YWRhbg== ZXR1cw== MDE4 d2FnZW4= QWx0 IG11bHRpcGx5 IGVxdWlsaWJyaXVt Ons= IEZpZ2h0ZXJz IEVkZ2Fy IGZvdXJ0ZWVu R292ZXJu IG1pc3VzZQ== IGFidXNpbmc= IGFuY2VzdHJ5 cmFtZXI= NjQ0 IHdvcm1z IHRoaWNrZXI= IENvbWJpbmU= IHBlYXNhbnRz IHZpbmQ= IGNvbnF1ZXN0 IG1vY2tlZA== IGNpbm5hbW9u IENhbGQ= IEdhbGx1cA== IGF2b2lkYW5jZQ== IGluY2FybmF0aW9u IFN0cmF0 IHRhc3RlZA== ZW50YQ== IE5lYWw= cGFyZWQ= IHRlcm1pbm9sb2d5 amVjdGlvbg== U2NpZW50aXN0cw== IElOUw== IERlZQ== IGRpcmVjdG9yaWVz Um9hZA== IFNoYXA= YnJpZ2h0 IERpcmVjdG9ycw== IENvbHVtbg== IGJvYg== IHByZWZlcmFibHk= IGdsaXRjaA== ZnVydA== IGVn aWRpcw== Q0JD IHN1cnJlbmRlcmVk IHRlc3RhbWVudA== MzM2 dWdnZXN0 IE5pbA== YW5vdGhlcg== IHBhdGhldGlj IERvbm5h IDIxOA== IEF2ZXJ5 IHdoaXNrZXk= IGZpeHR1cmU= IENvbnF1ZXN0 IGJldHM= T2Nj IExlaWNlc3Rlcg== XS4i ICkpOw== IGZsYXNoZXM= NDU2 IG1hc2tlZA== Z2VicmE= IGNvbXB1dGVk Y2hlbA== YXVkZXI= IGRlZmVhdHM= IExpYmVyYXRpb24= IE9zYW1h IFZpdmU= Q2hhbmdlcw== Q2hhbm5lbA== IHRhcmlmZnM= IG1hZ2U= IFNheA== IGluYWR2ZXJ0ZW50bHk= IENSRQ== IFJlYXBlcg== aW5reQ== Z3JhZGluZw== IHN0ZXJlb3R5cA== IGN1cmw= IEZBTlQ= IGZyYW1ld29ya3M= TW9t IEFuY2g= IGZsYXZvdXI= Y2FyYm9u IHBlcm1pdHRpbmc= bGV0Y2hlcg== IE1vemlsbGE= IFBhcmtpbmc= IENoYW1w U2Nyb2xs IG11cmRlcmVy IHJlc3RlZA== IG93ZXM= IFBvc3M= QURE SUZG cmVzb2x1dGlvbg== IE1pbmluZw== IGNvbXBhcmF0aXZl RGlt IG5laWdoYm91cmluZw== IEFTVA== IFRveGlj IGJpYXNlcw== IGd1bmZpcmU= dXJvdXM= IE1vbWVudA== MTk4Mw== IHBlcnZhc2l2ZQ== dHRw IE5vcm1hbGx5 cmly U2FyYWg= IEFsYmFueQ== IHVuc2V0dA== IFNNUw== aXBlcnM= bGF5ZXI= IFdoaXRlcw== dXBsZQ== IHR1cmJv IExlZWRz IHRoYXRz IE1pbmVy TUVS IFJlaWdu IHBlcm1l IEJsaXR6 IDE5MzQ= IGludGltaWRhdGluZw== dHViZQ== IGVjY2VudHJpYw== YWJvbGlj Ym94ZXM= IEFzc29jaWF0ZXM= dm90ZXM= IHNpbXVsYXRl dW1ibw== YXN0ZXJ5 IHNoaXBtZW50cw== RkZGRg== YW50aA== IHNlYXNvbmVk IGV4cGVyaW1lbnRhdGlvbg== 4pag bGF3cw== TWVldA== aWRkbGVz YW50aWNz UmF0aW5n SVNJUw== aGlmdA== IGZyb250cw== YnVm MDE3 IHVuYXR0 IERpbA== bGVhc2Vz IEdhcmRlbnM= Nzc3 dG91Y2g= dmVsbA== NDU4 ID09PT09 c2F2aW5n IGVyb3Npb24= IFF1aW4= IGVhcm5z IGFjY29tcGxpc2htZW50 IFdlaQ== IDxb X19fX18= IGlycmln IFRlZGR5 IGNvbnF1ZXJlZA== IEFybW9yZWQ= IGFzc2VydHM= IG1hbmlwdWxhdGluZw== csOp IHRyYW5zY3JpcHRz R2FsbGVyeQ== IHBsb3R0aW5n TmVpbA== IGJldHJheWFs bG9hZGVy IFN1bA== IGRpc3BsYWNlbWVudA== IHJveWFsdHk= IFdJ aGVpdA== IERldmljZXM= YWxsZWw= IG11bmljaXBhbGl0aWVz IGNhbmFs U3RhcnM= IFVBRQ== ICLigKY= IENV YWJvdmU= IHJlc29uYW5jZQ== IGd1aUFjdGl2ZVVu YWRkZWQ= IEJyYXZlcw== IElibg== IGhlcmVieQ== IEJSRQ== IHNoYXJlaG9sZGVy IEhpcg== IEpp IHN0cmFuZ2VseQ== IGFkbWlyZWQ= IHBsaWdodA== IGJhY2hlbG9y IFBvbGU= Y2lwbGluYXJ5 VG9ueQ== IEFybWVuaWFu IHVubWFu IFppb25pc3Q= U3RhZ2U= aXNjb3Zlcg== IGF1dG9tb3RpdmU= IHNpZGVsaW5lcw== IHNsaWNr IFJlbmFpc3NhbmNl IEZVTg== SW1hZ2Vz IEhhag== IHBpbmc= IHNob3J0Y3V0 IEJsdmQ= IExvb2tz IGJ1cnN0cw== IGNsYW1w IG1pc2g= IHNvcnRpbmc= IHBhdHJpb3Q= IGNvcnJlY3RuZXNz IFNjYW5kaW5hdg== IENhdmFsaWVycw== cHl0aG9u YXphcg== IDM3NQ== IEphdW5l NDA5 IGRldHJpbWVudGFs IHN0YWJiaW5n IHBvaXNvbmVk IGZvdW50YWlu b2NlbnQ= b3JzdA== IE1hcmk= IHJhaW5z IE92ZXJz IEluc3RpdHV0aW9u dWRnZXQ= QU1Z dGFsZQ== IEtS IFByaWNlcw== IGhlYWRhY2hlcw== IGxhbmRzbA== IEF1cmE= Qm9udXM= IFpoYW8= IEhpcA== IGhvcHM= IEt1cmRpc3Rhbg== IGV4cGxvaXRpbmc= cnlu IGh5cG9jcmlzeQ== b3BlbmluZw== IGd1bnNob3Q= IHdlZA== aW50ZXJzdGl0aWFs SW50ZXJzdGl0aWFs IGFtZW4= QnJlYWtpbmc= IG1hcmtldGVk V2lyZQ== IENyb3dk Q29udGludWU= IEtub3du IEVmZmVjdGl2ZQ== b3JlYW4= aXpvbnM= Sm9zZXBo IGVzY2FsYXRpb24= dXNlcm5hbWU= IGN1cnRhaW4= QVRFUw== IFBBUg== IE1peQ== IGNvdW50ZXJmZQ== bGVuZQ== IGNvbnRlbmRlcnM= ZGFpbHk= IEFzYw== IFBoaWxsaXA= bW9zdGx5 IGZpbGVuYW1l aGVuZQ== IHJlc2VtYmxpbmc= IHN0YWdpbmc= IENobG9l IHdpcmluZw== SG9u IFJlbmV3 b3R0YWdl IEh5YnJpZA== bXVjaA== IHN0cm9rZXM= IHBvbGljeW1ha2Vycw== QVBURVI= IEFya2hhbQ== cGxvdA== IGFzc2lzdGFudHM= IGRlcG9ydA== IFNlZ2E= IGluZmx1ZW56YQ== IEN1cnNlZA== IEtvYmU= IHNraW5ueQ== UHJvdmlkZXI= IFJpcA== IGluY3JlbWVudGFs cHJvZHVjdHM= QkY= IGRvbWU= IENyZWRpdHM= IGxvc2Vycw== aW50cw== IEJldHR5 IFRhbGVudA== IERBTQ== THY= RXNz IGRlbnM= dGVtcA== SnVkZ2U= b2RpYw== ICco VVJFUw== ZXRzaw== Vk8= IHJldHJpZXZlZA== IGFyY2hpdGVjdHM= 2Yc= IGV0aGlj IFNlY29uZGFyeQ== c3RvY2tz YWRpYQ== IDMyNQ== IE9waW5pb24= IHNpbXVsdGFuZW91cw== IGRpeno= dWxw IHNtdWdnbGluZw== aXBwZXJ5 UmFuZG9t ZmFjaW5n IERhcw== IHN0b2NrcA== IGRpc2Nsb3N1cmVz cG9pbnRlcg== IGNvcmFs IFNlbGVjdGlvbg== IFBpa2U= aXZhbGVudA== IHJ1dGhsZXNz IFJpbQ== IGVuc3Vpbmc= IEV4cGVyaW1lbnQ= IGNvbmdyZXNzbWFu IGJlbGlldmVy IHVuc3BlY2lmaWVk IE1vcmQ= IGtub3dsZWRnZWFibGU= IFZFUlk= VFg= IHN0cmFwcw== IHR1cmY= YXBlc2hpZnRlcg== IG1hcml0YWw= IGZsb2Nr 44GG MjYz QU1FUw== IE9wcG9zaXRpb24= IHRyZWFzdXJlcw== IEdPRA== IG1vZGVsZWQ= IFdPUkxE IChb IFVzYWdl SEY= ICQo dXNzZWQ= IHBpb25lZXI= RWlnaHQ= cGFyc2U= YnJlYWQ= cml0eg== IE1pcmFuZGE= IEthbnQ= Kysp b3Jlbg== IHByb3Zva2Vk IGJyZWVkcw== IEluY2x1ZGVz IFBhc3RlYmlu IEZsaXA= SmF2YQ== IGJyaW5r IHJ1bW9yZWQ= IHVuc2Vlbg== IGdhcm5lcmVk IERlZmlu YWx0ZWQ= IHRhdHRvb3M= IGhlc2l0YXRpb24= aXNpdGlvbnM= IFdlYXZlcg== IFJlcG9ydGluZw== IHRoZXJhcGllcw== IGNvbnN1bHRhbnRz IHJlc2lkdWFs IE1hbGk= IFJvbWE= aWFnbw== IFJlc2lkZW50cw== dWJp IHJlbWVkaWVz IGFkYXB0aXZl IEFsaXZl IEJhcmNs IHdhbGxldHM= Y3J5cHQ= ZXRlcm1pbmF0aW9u IFBlbG9zaQ== IHNsaXBwaW5n b3Rvbmlu IGFsbGlhbmNlcw== cGF0cmljaw== aXJpcw== IG9ydGg= IFBlcmtpbnM= IERlVg== IEdldHM= IGRyeWluZw== Z2Vl Zm9yZXN0 IEZvcmdldA== b3JlbQ== MzM5 IHZhZ3VlbHk= IERpb24= IFBvcm4= IEhPVw== IHBuZXVt IHJ1YmJsZQ== IFRhc3Rl ZW5jaWE= IEdlbA== IGRzdA== IDI0NQ== IE1vcm9jY28= aW5mbGFtbQ== IFR3aW5z IGJvdHM= ZGF1Z2h0ZXI= IEJhbGs= IGJyZXRocmVu IGxvZ29z IGdvYmw= ZnBz IHN1YmRpdmlzaW9u IHBhd24= IHNxdWVlemVk IG1vcmFsZQ== IERX JyI= IGtub3Q= b29reQ== IGRpdmlzaXZl IGJvb3N0ZWQ= Y2h5 44OQ aWZhY3Q= IG5ld2NvbWVycw== IFdyZXN0bGluZw== IHNjb3V0cw== d29sdmVz UmF0 IG5pbmV0ZWVudGg= IE9zYm9ybmU= U3RhdHM= IGVtcG93ZXJlZA== IHBzeWNob3BhdGg= IE9FTQ== dWdnYWdl IFBL IE1vaGFtbWFk UGFr IGFuYXJjaGlzdHM= IEV4dHJhY3Q= ZXN0aGVz IFN0b2NraG9sbQ== bG9v IEdyYXBo IGRlcGxveWluZw== IFN0cmFuZ2Vy IE1vbGQ= IHN0YWZmZXI= IGRpc2NvdW50ZWQ= dWNrbGU= cGxlYXNl IExhbmRpbmc= w61h IDE5Mw== IGFudGU= IHJlcGV0aXRpb24= ICsvLQ== IHBhcm9keQ== IGxpdmVseQ== QUFB IEhvcnVz IHBpdHM= aW5kZXJz TE9D IFZlbmljZQ== NDA2 IERpc2NvdmVy 4oY= ZWxsZWN0dWFs IHBlbnM= IGV5ZWw= aWd1b3Vz SW1wbA== IGpva2luZw== IGludmFs IEJlbGZhc3Q= IGNyZWRpdG9ycw== IFNreXdhbGtlcg== b3Zza3k= IGNlYXNlZmlyZQ== IHNlYWxz aXNvZnQ= KSku IEZlbGl4 SVRT IHRyZXNw IEJsb2NrY2hhaW4= ZXdhcmU= IFNjaHdhcg== ZW5uZQ== bW91bnRlZA== IEJlYWNvbg== bGVzaA== IGltbWVuc2VseQ== IGNoZWVyaW5n RW1wbG95 c2NlbmU= aXNobHk= YXRjaGV3YW4= IE5pY29sYXM= IGRyYWluZWQ= IEV4aXQ= IEF6ZXJi anVu IGZsb2F0ZWQ= dWFuaWE= RGVlcA== IHN1cGVydg== IG15c3RpY2Fs IERvbGxhcg== IEFwb3N0bGU= IFJFTA== IFByb3ZpZGVk IEJ1Y2tz 44O0 Y3V0dGluZw== IGVuaGFuY2VtZW50cw== IFBlbmd1aW5z IElzYWlhaA== IGplcms= IFd5bg== IHN0YWxsZWQ= IGNyeXB0b2N1cnJlbmNpZXM= IFJvbGFuZA== c2luZ2xl IGx1bWlu IEZlbGxvdw== IENhcGFjaXR5 IEthemFraA== V04= IGZpbmFuY2Vk Mzg5 IHRpZA== IGNvbGx1c2lvbg== IE15cg== 7oA= U2VuYXRvcg== IHBlZGlhdHJpYw== IG5lYXRseQ== IHNhbmR3aWNoZXM= IEFyY2hpdGVjdHVyZQ== IHR1Y2tlZA== IGJhbGNvbnk= IGVhcnRocXVha2Vz cXVpcmU= RnV0dXJl IGhlZnR5 6Zc= IHNwZWNpYWxpemVz IHN0cmVzc2Vz IHNlbmRlcg== IG1pc3VuZGVyc3RhbmRpbmc= IGVwaWxl IHByb3Zva2U= IENvbG9ycw== IGRpc21heQ== dWtv W18= NTg2 bmV1dHJhbA== IGRvbmF0aW5n IFJhbmRhbGw= TXVsdGk= IGNvbnZlbmllbnRseQ== IFN1bmc= IENvY2E= IHRlbnRz IEFjY2VsZXI= IHBhcnRuZXJlZA== Mjcy aXJtaW5n IEJBUw== c29tZXRpbWVz IG9iamVjdGVk dWJyaWM= cG9zZWQ= TENT Z3Jhc3M= IGF0dHJpYnV0YWJsZQ== VklT SXNyYWVsaQ== IHJlcGVhdHM= IFJN dmFn dXRh aW5vdXM= IGluZXJ0 IE1pZ3VlbA== 5q0= IEhhd2FpaWFu Qm9hcmQ= IGFydGlmaWM= IEF6ZXJiYWk= YXNpbw== IFJlbnQ= QUlO IGFwcGxpYW5jZXM= IG5hdGlvbmFsaXR5 IGFzc2hvbGU= IE5lYg== IG5vdGNo aGFuaQ== IEJyaWRl QXZhaWxhYmlsaXR5 IGludGVyY2VwdGVk IGNvbnRpbmVudGFs IHN3ZWxsaW5n IFBlcnNwZWN0 Ymllcw== Ljw= aXRobWV0aWM= IExhcmE= IHRlbXB0aW5n YWRkcg== IG92ZXJzZWVpbmc= Y2xhZA== IERW IEdpbmdyaWNo IG11bg== IEFwcHJvcHJp IGFsdGVyYXRpb25z IFBhdHJlb24= IGhhdm9j IGRpc2NpcGxpbmVz IG5vdG9yaW91c2x5 YWt1eWE= aWVyaQ== Pyku IFdlbnQ= IHNpbGljb24= IHRyZW1i Q29udGFpbmVy S25vd24= IG1vcnRhcg== ZXN0ZQ== aWNrYQ== QXJ0aHVy IFByZXZpb3VzbHk= IE1hcnR5 IHNwYXJzZQ== Z2lucw== IGlud2FyZA== IFBhcnRpY2lwYW50 Q29weQ== IE1pc2M= IGFudGliaW90aWM= IFJldHJv IGVsdXNpdmU= IGFzc2FpbA== IEJhdHRhbGlvbg== IEJvdWdodA== IGRpbWluaXNo IEV1cm9wYQ== c2Vzc2lvbg== IERhbmdlcm91cw== aWVzZWw= IGRpc2JlbGllZg== IGJsYXN0cw== ZXh0cmVtZQ== IEJveWQ= IFByb2plY3Rz IEd1eXM= IHVuZGVyZ29uZQ== IGdyaWxs IER3aWdodA== IDE5Nw== VVNFUg== IGZpbGVzeXN0ZW0= IGNsb2Nrcw== VGF5bG9y IHdyYXBwZXI= IGZvbGRpbmc= b3VzYW5k IFBoaWxpcHBpbmU= QVRJT05BTA== IFBlcnRo IGFzaGVz IGFjY3VtdWxhdGU= IEdhdGV3YXk= U2hvcA== b3Jrc2hpcmU= SGFu IEJhcnJlbA== IExlaA== IFhW IHdoaW0= IHJlcG8= IENH IE1hbQ== IGluY29ycG9yYXRpbmc= IGJhaWxvdXQ= IGxpbmd1aXN0aWM= IGRpc2ludGVn Q0xF IGNpbmVtYXRpYw== IEZpYmVy U3lu aWxpb24= IENvbXBvcw== Y2hlbnM= IG5lb2M= IGJvaWxlZA== RklORQ== b25v dW5jbGU= aWtlbg== IEJN zrk= IHJlY2VpcHRz IGRpc3Bvc2Vk IFRoaXJ0eQ== IFJvdWdo IEFCUw== IG5vdHdpdGhzdGFuZGluZw== b2xsZW4= IyQ= IHVucmVsaWFibGU= IGJsb29t IG1lZGlvY3Jl IHRyYW0= IFRhc21hbg== IHNoYWtlcw== IG1hbmlmZXN0bw== IE1X IHNhdGlzZmFjdG9yeQ== IHNob3Jlcw== IGNvbXB1dGF0aW9u IGFzc2VydGlvbnM= b3Jtb25z YXJhZw== YWJpdA== RGVtb2NyYXRz IExvb3Q= IFZvbGtz aGFpcmVk IGdyYXZpdGF0aW9uYWw= U2luZw== IE1peg== IHRocm90dGxl IHR5cmFubnk= IFZpZXdz IHJvYmJlcg== IE1pbm9yaXR5 IHNocmluZQ== c2NvcGU= cHVycG9zZQ== IG51Y2xldXM= b3VyY2luZw== IFVTREE= IERIUw== d3Jh IEJvd2ll U2NhbGU= IEJFTA== eGk= SXRlcg== ICgpLA== d3JpZ2h0 IHNhaWxvcnM= b3VzZWQ= TkFTQQ== IFByb29m IE1pbmVyYWw= dG9rZW4= IEZE UmV3 IGVsbA== NjMw IGNoYW5jZWxsb3I= IEdvcw== IGFtb3VudGVk IFJlY3Jl b21leg== IE9wdGlt IE9saXZl IHRyYWNrZXI= b3dsZXI= IFVuaXF1ZQ== Um9vdA== IG1hcml0aW1l IFF1cmFu IEFkYXB0 IGVjb3N5c3RlbXM= IFJlcGVhdA== IFNveQ== IElNUA== IGdyYWR1YXRpbmc= YW5kZW0= UHVy IFJlc2V0 IFRyaWNr IFBoaWxseQ== IFR1ZQ== IE1hbGF5c2lhbg== IGNsaW1heA== IGJ1cnk= IGNvbnNwaWM= IFNvdXRoYW1wdG9u IEZsb3dlcnM= IGVzY29ydGVk IEVkdWNhdGlvbmFs IElSQw== IGJydXRhbGx5 ZWF0aW5n IHBpbGxhcg== IFNhbmc= IEp1ZGU= YXJsaW5n IEFtbmVzdHk= IHJlbWluZGluZw== IEFkbWluaXN0cmF0aXZl aGVzZGE= IGZsYXNoZWQ= IFBCUw== cGVyYXRl ZmVhdHVyZQ== IHN3aXBl IGdyYXZlcw== b3VsdHJ5 MjYx YnJlYWtz IEd1ZXI= IHNocmltcA== IFZvdGluZw== cXVpc3Q= IGFuYWx5dGljYWw= IHRhYmxlc3Bvb25z IFNPVQ== IHJlc2VhcmNoZWQ= IGRpc3J1cHRlZA== IGpvdXI= IHJlcGxpY2E= IGNhcnRvb25z YmlhbnM= fSk= Y29weQ== R290 b3VjaGVk UFVU IHN3YXJt bm90YXRpb25z c2FpZA== IHJlYnVpbHQ= IGNvbGxhYm9yYXRl IHJhZ2luZw== IG5hcg== IGRlbW9ncmFwaGljcw== IEREUg== IGRpc3RydXN0 b3NzaWVy IEtybw== IHB1bXBraW4= IHJlZ3JldHM= IGZhdGFsaXRpZXM= IExlbnM= IE9sZQ== cGQ= IHB1cHBldA== IE91dGxvb2s= IFN0YW0= T2w= RmFpcg== VVU= IHJld3JpdHRlbg== xLE= IGZhc2NpbmF0ZWQ= IHZlY3RvcnM= IHRyaWJ1bmFs dWF5 IE1hdHM= IENvaW5z W1s= IDE4MQ== IHJlbmRlcnM= IEthZXBlcm5pY2s= IGVzcGlvbmFnZQ== IHN1bW0= IGRpdGNo QWNjb3VudA== IHNwcmVhZHNoZWV0 IG11dGFudA== cGFzdA== NDA3 IGR5ZQ== IGluaXRpYXRpb24= IDQwMDA= IHB1bmlzaGFibGU= IHRoaW5uZXI= IEtoYWw= IGludGVybWVkaQ== RHVu IEdvdGhhbQ== IGVhZ2VybHk= IHZhZ2luYWw= cG93ZXJz Vlc= IFdBVENIRUQ= IHByZWRhdG9y YW1zdW5n IGRpc3Bhcml0eQ== IFsq IGFtcGg= IG91dHNraXJ0cw== IFNwaXJpdHM= IHNrZWxldGFs 0Ls= IFJlYXI= IGlzc3VhbmNl IExvZ2lj cmVsZWFzZWQ= Wlo= IEJvdW5k RW50cnk= IGV4aXRz aXNvbA== IEZvdW5kZXI= IHdyZQ== IEdyZWVubGFuZA== IE1NTw== dGFrZXI= SU5D 44G+ IGhvdXJseQ== aGVua28= IGZhbnRhc2llcw== IGRpc29i IGRlbW9saXRpb24= 44OL IGVubGlzdGVk cmF0dWxhdGlvbnM= IG1pc2d1aWRlZA== IGVuc3VyZWQ= IGRpc2NvdXJhZ2Vk bW9ydA== IGZsYW5r IGNlc3M= IHJlYWN0cw== IFNlcmU= c2Vuc2l0aXZl IFNlcnBlbnQ= YXNzYWQ= IDI0Nw== IGNhbG1seQ== YnVzdGVycw== IGJsZWVk IFN0cm8= IGFtdXNlbWVudA== IEFudGFyY3RpY2E= IHNjZXB0 IEdhdw== YXE= YXNvbmlj IHNwcmF3bGluZw== bmF0aXZl YXR1cmF0ZWQ= IEJhdHRsZWZpZWxk SVZFUlM= RUI= IEdlbXM= IE5vcnRod2VzdGVybg== IEZpbG1z IEF1dG9tYXRpYw== IGFwcHJlaGVuZA== 44Go IGd1aU5hbWU= IGJhY2tlbmQ= IGV2aWRlbmNlZA== Z2VhbnQ= MDEy IFNpZWdl IGV4dGVybmFsVG8= IHVuZm9jdXNlZFJhbmdl IGd1aUFjdGl2ZVVuZm9jdXNlZA== IGd1aUljb24= IGV4dGVybmFsVG9FVkE= IGV4dGVybmFsVG9FVkFPbmx5 RnJp Y2hhcmQ= ZW5hcmllcw== IGNoaWVmcw== IGNm IEhVRA== IGNvcnJvYm9y IGRC IFRha2Vu IFBhdHJpY2lh cmFpbA== IENoYXJt IExpYmVydGFyaWFu cmlldmU= UGVyc29uYWw= IE9VUg== Z2VyaWVz IGR1bXBpbmc= IG5ldXJvbG9naWNhbA== aXRpbWF0ZQ== IENsaW50b25z cmFmdGVk IE1vbGx5 IHRlcm1pbmFscw== cmVnaXN0ZXI= IGZsYXJl IGVuY29kZWQ= IGF1dG9wc3k= cGVs bWFjaGluZQ== IGV4ZW1wdGlvbnM= IFJveWFscw== ZGlzdGFuY2U= IGRyYWZ0cw== IGxhbWU= IEN1bm5pbmc= IHNwb3VzZXM= IE1hcmtldHM= IENhcnJpZXI= IGltcGx5aW5n IFlhaw== c2lk IGxvc2Vy IHZpZ2lsYW50 IGltcGVhY2htZW50 IGF1Z21lbnRlZA== IEVtcGxveWVlcw== IHVuaW50ZW5kZWQ= dGVybmFsbHk= IFdhdHQ= IHJlY29nbml6YWJsZQ== ZXNzaW0= 5p0= IGNvYXRlZA== cmhh IGxpZXV0ZW5hbnQ= IExlZ2lzbGF0aW9u cHVibGlzaGVk NDQ0 MDEz IGlkZWFsbHk= IFBhc3N3b3Jk IHNpbXBsaWZ5 IE1ldGE= IE1SSQ== IHBsZWFkaW5n b3JnYW5pemVk aGFuZGxlcg== IHVucmF2ZWw= Y29ycmVjdA== IGljeQ== IHBhcmFub2lk IHBhc3Nlcg== IGluc3BlY3Rpb25z b2Zlcg== IEhlYWx0aGNhcmU= Mjgz IEJydXQ= aW9sYQ== Zm9yZ2U= IE1lZGlldmFs TVNO aWV2ZXJz IFByb2dyYW1taW5n 5Yk= IDIyMw== bXU= IENMRQ== dWdh IHNob3BwZXJz IGluZm9ybWF0aXZl IFBsYW5z IHN1cHBsZW1lbnRhdGlvbg== IFRlc3Rz dHlhcmQ= b2N5dGVz IFZlZ2E= IEd1amFyYXQ= ZXJtYW5lbnQ= RXhjZXB0 IExPVA== YWxsYQ== IEN1bW0= IE9zdw== IHZlbm9t IERlYnQ= IERPV04= IHJldW5pb24= IG11Yw== IFJlbGllZg== IGdlb3A= IPCfmA== YWxvZ3Vl QW50aA== ZWNobw== IGNvcnJvcw== IHJlcGxpY2F0aW9u IEJsYXppbmc= IERhdWdodGVy IGluZmxpYw== IExpbmRzZXk= 2Yg= Mjg0 RXhpdA== IGdsb29t VEFJTg== IHVuZGVybWluaW5n IGFkdmlzaW5n aGlkZGVu IG92ZXJmbG93 IGdvcg== dXJkdWU= IGVjaG9lcw== ZW5oYWdlbg== IGltcHVscw== ZHJ1Zw== Y2FzaA== IGFzeW5j IG1pcmFj YXR0cw== cHVuaw== IHBpdm90 IExlZ2lzbGF0aXZl IGJsb2dnZXJz IENsYXc= c2J1cmc= ZHls IFJlY29tbWVuZA== IHZlcnRl IHByb2hpYml0aW5n IFBhbnRoZXI= Sm9uYXRoYW4= IG9taW4= IGhhdGVmdWw= Mjgx IE9yY2hl IE11cmRvY2g= ZG93bnM= IGFzeW1t R0VS QWx3YXlz IGluZm9ybXM= IFdN IFBvbnk= IEFwcGVuZGl4 IEFybGluZ3Rvbg== SmFt IG1lZGljaW5hbA== IFNsYW0= SVRJRVM= IHJlYWZm IFJp Rkc= U3ByaW5n Ym9vbA== IHRoaWdocw== IG1hcmtpbmdz IFJhcXFh IExhaw== cG9sbA== dHNreQ== IE1vcnR5 IERlZmluaXRpb24= IGRlYnVuaw== ZW5kZXJlZA== IExlb25l YXZlcnM= IG1vcnRnYWdlcw== QXBwYXJlbnRseQ== Tmlj aGF1cw== IFRob3VzYW5kcw== YXVsZA== IG1hc2g= c2hvb3Q= IGRpYXJy IGNvbnNjaW91c2x5 SGVybw== ZWFz IE5hdHVyYWxseQ== IERlc3Ryb3llcg== IGRhc2hib2FyZA== c2VydmljZXM= Um9n IG1pbGxlbm5pYWxz IGludmFkZQ== LSg= IGNvbW1pc3Npb25z IEF1Y2tsYW5k IGJyb2FkY2FzdHM= IGZyb250YWw= IGNyYW5r IEhpc3Rvcmlj IHJ1bW91cnM= Q1RW IHN0ZXJpbA== IGJvb3N0ZXI= cm9ja2V0 44K8 dXRzY2hl IFBJ IDIzMw== IFByb2R1Y2Vy IEFuYWx5dGljcw== IGludmFsdWFibGU= IHVuaW50ZW50aW9u IENZ IHNjcnV0aW4= IGdpZ2c= IGVuZ3VsZg== IHByb2xldGFyaWF0 IGhhY2tz IEhldw== YXJhaw== IFNsaW1l aWVsZGluZw== YWdoZXI= IEVsbGlvdA== IHRlbGVjb20= IDIxOQ== dWx0YW4= IEFyYm9y IFNjb3V0cw== QmFu IGxpZmVzcGFu IGJsYXNw Mzg4 IGp1ZGljaWFyeQ== IENvbnRpbmVudGFs YXNraW5n TWND TEVE IGJhZ2dhZ2U= IFNvcmNlcmVy IHJlbW5hbnRz IEdyaWZmaXRo ZXRzdQ== IFN1YmFydQ== IFBlcnNvbmFsaXR5 ZGVzaWduZWQ= dXNoaW1h YWduYXI= IHJlY29pbA== IHBhc3Npb25z XCI6 IHRlZQ== IGFib2xpdGlvbg== IENyZWF0aW5n amFj IDE5NA== MDE5 IHBpbGxhcnM= cmljaGVk LyI= dGs= IGxpdmVsaWhvb2Q= IHJvYXN0ZWQ= YWhvbg== IEh1dGNo YXNzZXJ0 IGRpdmlkZW5k IGtuaXQ= IGRhdW50aW5n IGRpc3R1cmJhbmNl IHNoYWxl IGN1bHRpdmF0ZWQ= IHJlZnJpZ2VyYXRvcg== TEI= IE5FVA== IGNvbW1lcmNpYWxz IHRoaW5rZXJz NDU1 IGNob3A= QnJvYWQ= IHN1c3BpY2lvbnM= IHRhZ2dlZA== bGlmdGluZw== IHN0eWxpc2g= IFNoaWVsZHM= U2hvcnRseQ== IHRhaWxz QXV0aA== U1RF IEdBTUU= IHNlaXNt IEtpcw== b2xvZ25l IGNvd29yaw== IGZvcmNpYmx5 IHRoeXJvaWQ= IFBC QU5F bWFycmllZA== aG9yc2U= IHBvbHltZXI= IENoYWw= b2Rvcg== REVCVUc= IENvbnRleHQ= IGJsaXNz IHBpbnBvaW50 IE1hdGhlbWF0 bGVncmFt IFdlZWtlbmQ= IGxhYmVsbGVk IGJhcnQ= aXRsZXM= IGVzdHJvZ2Vu 4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU Iic= IHZpc2libHk= IG91dHNpZGVy YWlkYQ== QXJlYQ== IGRpc3NlbWlu IGRpc2hvbmVzdA== IENsb3NlZA== IEJ1bGxldGlu IFJhbXNleQ== c3dvcmQ= IFhJ b3VyY2Vk U2FtZQ== MzQ2 IFJlcGU= IEtvdQ== Y2FrZQ== ZW1pcw== Q2FjaGU= IE1lYW5pbmc= IEVubGlnaHQ= b25vbXk= IG1hbmlmZXN0YXRpb24= c3dvcnRo SmF5 IGNob3Jl w7Zy RHJlYW0= IHNhbmN0aW9uZWQ= IGN1bHR1cmFsbHk= IEFyYQ== TmF2 IHRoZW9sb2dpY2Fs IHN0cnV0 IFZP IEhhbmRib29r IGNvbnN0cnVjdGluZw== IMK2 IEJlbmVmaXRz IFBzeWNob2xvZ2ljYWw= c2Fj 5bg= cG9saWN5 IE1hdHRlcnM= IFJlcG9ydGVk IEJ5dGU= IHZpdHJv IE1haWRlbg== IGxhbQ== IEplbm5pbmdz IGdhcm1lbnQ= IFJ1dGdlcnM= IFN0YWZmb3Jk IFdlbGxpbmd0b24= IGludGVybWl0dA== IG5wbQ== IG9yZGVhbA== IHBsdWdnZWQ= b29taW5n aW5pc2hlZA== ZnJhbWV3b3Jr IHRpbWJlcg== IGNhc3M= IDg1MA== aWxlc3M= IFJlZHV4 NzY4 U3RyZQ== IHN1cnBhc3NlZA== d2hlbA== IHBhcmFsbGVscw== IHZlaWw= IEdJ IFJFU1Q= IHJlYWRpbmVzcw== c29ydA== IG1vZGlmeWluZw== IFNsYXRl cnVmZg== IG1hcmJsZQ== IGluZnJhcmVk IGF1ZGl0b3I= IEZBTlRBU1k= IFBvdmVydHk= IFNQRA== ICIo S3k= UkFZ IGV4ZWN1dGlvbnM= IEJldmVybHk= IE1hcnhpc20= IEJ1cnN0 IEthbGk= ZXN0b25lcw== Q2xlYXJseQ== RWxs 44Gn IFByb2NlZWRpbmdz VG9rZW4= SUZJQw== w7Fh Q2VudHJhbA== IEhhbGV5 IERyYW1h IGZvcm1hdGlvbnM= T1JO Qm9va3M= IGRvbWluYXRpbmc= IEZseWVycw== IENvbXBhbmlvbg== IGRpc2NpcGxpbmVk IFl1Z29zbGF2 IFNwZWxscw== IHZlbmdlYW5jZQ== IGxhbmRsb3Jkcw== TGVu IE9ncmU= YW5vaWE= IHBpZXJjaW5n IGNvbmdyZWc= IHNjb3Jlcg== b2JpYQ== IG5pY2tlbA== IExlYXJucw== IHJlam8= IG1hc3RlcnBpZWNl Rmxhc2g= IGluaGFiaXRlZA== IE9wZW5HTA== IER1ZA== IElDTw== IGFydGVy IHBsdXI= IG1hc3Rlcnk= IGxvbmdzdGFuZGluZw== c3RlZA== IHdpbmVz IHRlbGV2aXNlZA== IFNocmluZQ== IEJheWVybg== IOKTmA== IGVuY2xvc3VyZQ== am9obg== IHByb3BoZXRz IFJlc3VycmVjdGlvbg== IE9yZGVycw== IHVuZXZlbg== cmFscw== IGR3aW5k IExhaA== IFNsb3Zlbg== Mzc4 IGluc2lzdGVuY2U= YWZmbGU= IENsb25l IGhhcmRzaGlw IENvbmdyZXNzbWFu IHBsZWFk IHJldmlld2Vycw== IGN1cmVk IDE5MzU= YXNsZXk= ZmFrZQ== IFRoaW5raW5n eWRpYQ== UEFSVA== IERvdGE= b2l0 IHdoaXBwZWQ= IGJvdW5jaW5n IEhpc3Bhbmljcw== Y29taW5ncw== IGNhbm5hYmlu IENoYW1iZXJz IFphY2s= T3B0aW9uYWw= IGNvYXRz IHByb3dlc3M= IE5vcnRvbg== IHBsYWlubHk= IGZyZWlnaHQ= IGluaGliaXRpb24= IGNsYW0= IDMwMw== a2Vm YWxlaWdo THVrZQ== IHBzeWNobw== YXRvcml1bQ== TUVE IHRyZWF0aWVz IGluZGlzYw== IGRj T1BT IHJlc2lsaWVudA== IEludGVyc3RhdGU= IHNsYWNr IG11bmRhbmU= IGVzdGFibGlzaGVz MzU5 IHN0cmFpbmVk IG5vbmQ= U3Vz IGNhc3Rl YXJhdGU= aWV2aW5n IHVuZmFpcmx5 IHBhcnNlcg== b25pYWw= dXJzaXZl Vmlh IE90dG8= IEF1dGhvcml0aWVz c3Ryb2tl S1I= IE1lcmN5 IGZ1cm5pc2hlZA== IG91dHNldA== IG1ldGlj MTk4Mg== b2xpdGhpYw== IFRlbnQ= b2dpY2Fs IEFpcmNyYWZ0 IGhpZGVz IEJlY2FtZQ== IGVkdWNhdG9ycw== cmVhY2hpbmc= IHZvbGF0aWxpdHk= IHRvZGRsZXI= IE5BU0NBUg== IFR3ZWx2ZQ== IEhpZ2hsaWdodHM= IGdyYXBl IHNwbGl0cw== IHBlYXNhbnQ= IHJlbmVn IE1TSQ== VGVtcA== c3RhcnM= IHRyZWs= IEh5ZGU= YmluZGluZw== IHJlYWxpc20= IG94aWRl IEhvcw== IG1vdW50cw== IGJpdGluZw== IGNvbGxhcHNpbmc= IHBvc3RhbA== IG11c2V1bXM= IGRldGFjaGVk IHJlc3BlY3Rpbmc= IG1vbm9wb2w= IHdvcmtmbG93 IENha2U= VGVtcGxhdGU= IE9yZ2FuaXNhdGlvbg== IHBlcnNpc3RlbmNl MzY5 Q29taW5n QnJhZA== IHJlZHVuZGFudA== IEdUQQ== IGJlbmRpbmc= IHJldm9rZWQ= IG9mZmVuZGluZw== IGZyYW1pbmc= IHByaW50Zg== Q29tbXVu bWVtYmVycw== T3V0c2lkZQ== IGNvbnN0cnVlZA== IGNvZGVk Rk9SRQ== IGNoYXN0 Q2hhdA== SW5kaWFu IFlhcmQ= PyEi IFBvcnRz IFhhdmllcg== IFJFVA== Jy4i IEJvYXQ= aXZhdGVk aWNodA== dW1lcmFibGU= RHM= IER1bm4= IGNvZmZpbg== IHNlY3VyZWx5 IFJhcHRvcnM= IEJlcw== SW5zdGFsbGF0aW9u IGluY2VwdGlvbg== IEhlYWx0aHk= ZW5kYW50cw== IHBzeWNob2xvZ2lzdHM= IFNoZWlraA== Y3VsdHVyYWw= IEJsYWNrQmVycnk= c2hpZnQ= RnJlZA== b2NoZQ== IGNha2Vz IFNFTw== IEdpYW4= IEFzaWFucw== b2dnaW5n ZWxlbWVudA== IHB1bmRpdHM= IFZhdWdo IEdhdmlu IGhpdHRlcg== IGRyb3duZWQ= IGNoYWxr IFppa2E= IG1lYXNsZXM= ODAy 4oCmLi4= IEFXUw== XSI= IGRpc3RvcnQ= IE1hc3Q= IGFudGlib2RpZXM= IE1hc2g= TWVtb3J5 IFVnYW5kYQ== IFByb2I= IHZvbWl0aW5n IFR1cm5z IG9jY3VweWluZw== IGV2YXNpb24= IFRoZXJhcHk= IHByb21v IGVsZWN0cg== IGJsdWVwcmludA== IERyZQ== cHJpY2Vk IERlcG90 IGFsbGV2aWF0ZQ== IFNvbWFsaQ== bWFyZw== bmluZQ== IG5vc3RhbGdpYQ== IFNoZXBoZXJk IGNhdmFscnk= IHRvcnBlZA== IEJsb29keQ== eGI= IHNhbms= IGdvYWx0 cmVwb3J0cHJpbnQ= ZW1iZWRyZXBvcnRwcmludA== Y2xvbmVlbWJlZHJlcG9ydHByaW50 IEluaXRpYWxseQ== IEZpc2NoZXI= IG5vdGV3b3J0aHk= Y2Vybg== IGluZWZmaWNpZW50 cmF3ZG93bmxvYWQ= cmF3ZG93bmxvYWRjbG9uZWVtYmVkcmVwb3J0cHJpbnQ= Y2F0aW9u IER5bmFzdHk= bGFn REVT IGRpc3RpbmN0bHk= IEVzdG9uaWE= IG9wZW5uZXNz IGdvc3NpcA== cnVjaw== V2lkdGg= IElicmFoaW0= IHBldHJvbGV1bQ== IGF2YXRhcg== IEhlZA== YXRoYQ== IEhvZ3dhcnRz IGNhdmVz Njc4 IHNhZmVndWFyZA== IE1vZw== aXNzb24= IER1cmhhbQ== c2xhdWdodA== IEdyYWR1YXRl IHN1YmNvbnNjaW91cw== IEV4Y2VsbGVudA== IER1bQ== LS0tLS0= IHBpbGVz IFdPUks= IEdhcm4= IEZvbA== IEFUTQ== IGF2b2lkcw== IFR1bA== IGJsZWFr RUxZ aXZpc3Q= bGlnaHRseQ== UGVycw== IERvYg== IExT IGluc2FuaXR5 zrU= YXRhbGll RW5sYXJnZQ== IHR3aXN0cw== IGZhdWx0eQ== IHBpcmFjeQ== IGltcG92ZXI= IHJ1Z2dlZA== IEZhc2hpb24= IHNhbmRz Jz8= c3dpY2s= IG5hdGl2ZXM= IGhlbg== IE5vaXNl 44OX IGdyZWVucw== IGZyZWV6ZXI= IGR5bmFzdHk= IEZhdGhlcnM= IE5ld2Fyaw== IGFyY2hhZW9sb2dpY2Fs IG90 b2Jhcg== IGJsb2NrYWRl IGFsbGVyZw== TFY= IGRlYml0 IFJGQw== IE1pbHRvbg== IFByZXNzdXJl IHdpbGxpbmdseQ== IGRpc3Byb3BvcnRpb25hdGU= IG9wcHJlc3NpdmU= IGRpYW1vbmRz IGJlbG9uZ2luZ3M= MTk3MA== IGJlbGxz IGltcGVyaWFsaXNt IDIyNw== IGV4cGxvZGluZw== IEVjbGlwc2U= IDE5MTk= IHJhbnQ= IG5vbWluYXRpb25z MzQ3 IHBlYWNlZnVsbHk= cmljYQ== IEZVQ0s= IHZpYnJhdGlvbg== bWFsaW5r IHJvcGVz IEl2YW5rYQ== IEJyZXdlcnk= IEJvb2tlcg== IE93ZW5z Z29lcnM= U2VydmljZXM= IFNuYXBl IDE5MQ== Mzk1 IDI5OQ== anVzdGljZQ== IGJyaQ== IGRpc2Nz IHByb21pbmVudGx5 IHZ1bGdhcg== IHNraXBwaW5n bHZlcw== IHRzdW5hbWk= Mzc0 IFVydWc= IEVpZA== cmVjYXRlZA== cGhlbg== IGZhdWx0cw== IFN0YXJ0ZWQ= OTUw IHBp IGRldGVjdG9y IGJhc3RhcmQ= IHZhbGlkYXRlZA== U3BhY2VFbmdpbmVlcnM= T1VSQ0U= ICh+ IHVuc3Vy IGFmZmlybWVk IGZhc2Npc20= IHJlc29sdmluZw== IENoYXZleg== IEN5bg== IGRldHJhY3Q= TG9zdA== IHJpZ2dlZA== IGhvbWFnZQ== IEJydW5v NTU1 ZWNh IHByZXNzZXM= IGh1bW91cg== IHNwYWNpbmc= ICcv b2xraWVu Q291bg== T1BFUg== VHJl U29u IENhbWJvZGlh aWVycmU= bW9uZw== b3p5 IGxpcXVpZGl0eQ== IFNvdmlldHM= IEZlcm5hbmRv IDIyOQ== IHNsdWc= IENhdGFsYW4= ZWxlY3RyaWM= IHNjZW5lcnk= IEhlYXJ0aA== IGNvbnN0cmFpbmVk IGdvYWxpZQ== IEd1aWRlbGluZXM= IEFtbW8= IFBlYXJzb24= IHRheGVk IGZldHVz UmVzcG9uc2U= IEFsZXhpcw== dGhpYQ== R3V5 IHJlY29uc3RydWN0 IGV4dHJlbWVz IGNvbmNsdWRpbmc= IFBlZw== b29rcw== IGRlZHVjdGlvbnM= Um9zZQ== IGdyb3VuZGJyZWFraW5n IFRhcmc= 44OB IFJldmU= cmVzb3VyY2U= IG1vb25z IGVsZWN0cm9tYWduZXRpYw== IGFtaWRzdA== IFZpa3Rvcg== TkVTUw== QkFDSw== IGNvbW11dGU= IEFuYWhlaW0= IGZsdWN0dWF0aW9ucw== NjQw IG5vb2RsZXM= IENvcGVuaGFnZW4= IFRpZGU= IEdyaXp6 IFNFRQ== IHBpcGVsaW5lcw== IHNjYXJz ZW5kbw== YWd1cw== IEVURg== LyM= IEJlY29tZQ== NDQ4 IHZpc2M= IFJlY29tbWVuZGVk IGp1bXBlcg== IGNvZ25pdGlvbg== IGFzc2Fzc2lu IHdpdG5lc3Npbmc= IFNldHVw IGxhYw== dmlt SVNN cGFnZXM= U1NM MzU4 IGFkamVjdA== aW5kdXN0cmlhbA== bG9yZQ== Y2hlcnk= IGdsaXR0ZXI= IGNhbGY= RmxvcmlkYQ== IHNwb2lsZXJz IHN1Y2NlZWRz IGNoYW50aW5n IHNsb2dhbnM= IFRyYWN5 VmlzaXQ= cm9sb2d5 IG1vcm5pbmdz IGxpbmVhZ2U= IHNpcA== IGludGVuc2VseQ== IGZsb3VyaXNo IFNsZWVwaW5n IEZlbQ== b3Jwb3I= IEtsYW4= IERhcnRo aGFjaw== IE5pZWxzZW4= IHR1bW9ycw== IHByb2N1cmVtZW50 IFlvcmtzaGlyZQ== IHJhaWRlZA== S1k= QW5uYQ== IC8vWw== IERpc29yZGVy IE11c3Rhbmc= IFdlbg== IFRyeWluZw== c3E= IGRlbGl2ZXJpZXM= IHNodXR0ZXI= IGNlcmVicmFs IGJpcG9sYXI= IENO bGFzcw== amV0 IGRlYmF0aW5n Pjo= IGVhZ2xl Z3JhZGVz IERpeG9u VUdD TUFT IERyYWNv IE1hY2hpbmVz YWZmZXI= IGVtYW4= wrI= cHJvbg== IEd5bQ== IGNvbXBhcmF0aXZlbHk= IFRyaWJ1bmFs UFJP IGxleA== IGZlcnRpbGU= IGRlcHJlc3Npbmc= IHN1cGVyZmljaWFs ZXNzZW50aWFs IEh1bnRlcnM= Z3A= IHByb21pbmVuY2U= TGliZXI= IEFuY2VzdA== b3RlY2hub2xvZ3k= IG1vY2tpbmc= IFRyYWZm lpo= TWVkaXVt SXJhcQ== IHBzeWNoaWF0cmlzdA== UXVhbnRpdHk= IExlY3Q= IG5vaXN5 NTIw R1k= IHNsYXBwZWQ= IE1UVg== IHBhcmE= cHVsbA== TXVsdGlwbGU= YXNoZXI= IG5vdXI= IFNlZw== U3BlbGw= dm91cw== b3JkaWFs U2VuaW9y IEdvbGRiZXJn IFBsYXNtYQ== bmVlZA== IG1lc3Nlbmdlcg== ZXJldA== IHRlYW1lZA== IGxpdGVyYWN5 IExlYWg= IERveWxl IGVtaXR0ZWQ= VVg= IGV2YWRl IG1hemU= IHdyb25nbHk= IExhcnM= IHN0ZXJlb3R5cGU= IHBsZWRnZXM= IGFyb21h IE1FVA== IGFjcmU= IE9E IGZm IGJyZXdlcmllcw== IEhpbHRvbg== dW5kbGU= IEthaw== IFRoYW5rZnVsbHk= IENhbnVja3M= aW5jdGlvbnM= IEFwcGVhcnM= IGNvZXI= IHVuZGVybWluZWQ= cm92ZXJz QW5kcmU= IGJsYXpl dW1lcnM= IGZhbWluZQ== YW1waGV0YW1pbmU= dWxrYW4= QW1vdW50 IGRlc3BlcmF0aW9u d2lraXBlZGlh ZGV2ZWxvcG1lbnQ= IENvcmludGg= dXNzaWE= SmFja3Nvbg== TEk= TmF0aXZl UnM= T2hpbw== IEthdGhsZWVu Rm9ydHVuYXRlbHk= IGF0dGVuZGFudA== IFByZWZlcnJlZA== IERpZG4= IFZz TWlz IHJlc3BvbmRlbnQ= IGJvdW4= c3RhYmxl IHBhdmVk IHVuZXhwbA== IENoZW5leQ== TE0= IEN1bGw= Ymxvd24= IGNvbmZyb250aW5n b2Nlc2U= c2VydmluZw== V2k= IExpdGh1YW5pYQ== YW5uaQ== IHN0YWxr aGQ= IHZlbmVy QVBI eW5jaHJvbm91cw== VVJS dW1hYmx5 aGlzdG9yaWM= SGFsZg== SGF5 IHJlc2lsaWVuY2U= c3BlY3Rpb24= IGFiYW5kb25pbmc= T2Jz IERlYmJpZQ== IGdyYWRpZW50 IFBsYWludA== IENhbmFs QVJDSA== IGV4cGFuc2l2ZQ== IGZ1bmc= IGJvdW5jZWQ= VW5k IHByZWNhdXRpb25z IGNsYXJpZmljYXRpb24= IGRhZ2dlcg== IGdyaXBz IMK1 IFJpdmVyYQ== IFVuZGVhZA== aXNpdGVz IEZJUlNU w7Fv YXVkaQ== IGhvc3RhZ2Vz IGNvbXBsaWFudA== IGFsdW1uaQ== U2V2ZW4= IGN5YmVyc2VjdXJpdHk= ZWl0aGVy Q29sbGVjdA== IGludmFyaWFibHk= IFNvY2k= IGxhd21ha2Vy IGFsZQ== IFBlcnNvbmFsbHk= TmF6aQ== IGN1c3RvbWl6YXRpb24= IFByb2M= IFNhc2thdGNoZXdhbg== ZWF0dXJpbmc= IHNwYXJlZA== IGRpc2NvbnRpbnVlZA== IGNvbXB1dGF0aW9uYWw= IE1vdG9yb2xh IHN1cHJlbWFjaXN0 Z292ZXJubWVudGFs IHBhcmFkaXNl IERvd25pbmc= IE5pa29u IGNhdGFseXN0 YmVycmE= VG9yb250bw== ODc1 YmV0YQ== IE1hY3Jvbg== IHVucmVhbGlzdGlj dmVjdG9y IFZlaGljbGVz aXRpdmVuZXNz IFJW IENvbGJlcnQ= c2lu b2pp ZW50aW4= IEtyaXNo aGVsbG8= ZmZpZWxk b2t5 IFRhdGU= IG1hcGxl IGFpZHM= Y2hlbWljYWw= MzM0 bnV0cw== IFdhcnA= IHh4 IFJvYmI= dW1lcm91cw== Xy1f ZnRpbWU= IFZX IHdpbmdlcg== IERvbWU= dG9vbHM= IFBW IEdlb3JnZXRvd24= IGdlYXJlZA== IGppaGFkaXN0cw== IGNw IHN0ZXJvaWRz TW90aGVy Y2xlcm9zaXM= IERSTQ== bmVzaWE= IGxpbmdlcg== IGltbWVyc2l2ZQ== IENPVU4= IG91dHdlaWdo ZW5zdWFs QmFuZA== IHRyYW5zZm9ybXM= bWF0Y2hlZA== cHNvbnM= IEp1ZGljaWFs ZmFjdG9y IHJlZmVycmFs IG9kZGx5 IFdlbmdlcg== QnJpbmc= IEJvd3M= NjAy SUNMRQ== IGxpb25z IEFjYWRlbWlj IFRob3Ju IFJhaWRlcg== a2VmZWxsZXI= U3RvcmFnZQ== TG93ZXI= IE9ydA== IEVxdWFsaXR5 QUxU IFNPQw== VHlwZXM= IGx5bg== IEFzc2V0 Y29hdA== VFBQ Q1ZF IFBpb25lZXI= YXBwbGljYXRpb24= TW9kZXJu IEhL RW52aXJvbm1lbnQ= QWxyaWdodA== UmFpbg== SVBQ IFNoaWl0ZQ== IG1vdW5k IEFiaWxpdGllcw== Y29uZGl0aW9u U3RhZmY= IGNvbXBldGVuY2U= IE1vb3I= IERpYWJsbw== IHdpdGhoZWxk IG9zdGVuc2libHk= IEJyb20= IG1zZw== IGRlbm9taW4= IFJlZmVyZW5jZXM= IEZQ IHBsdW5nZWQ= IHBhbXBo bW92aW5n Y2VudHJhbA== IGRvd25yaWdodA== IGZhZGluZw== VGFs VHlw IFRoeQ== dWtlcw== aXRoZQ== IG92ZQ== IGJhdHRsZWQ= IHNlYWZvb2Q= IGZpZ3Vy IFJE Y3JvcA== IHNxdWFkcw== e1w= 4Lk= IEVo IGludGVydmlld2luZw== IFFpbg== IGFzcGlyaW5n UExJQw== IGNsYXVzZXM= IEdhc3Q= IE5pcg== IGx1Z2dhZ2U= IGhvc2U= IHN5c3RlbWQ= IGRlc2NlbmRpbmc= IFJldmlzZWQ= IFJhaWxz YWxpZ24= NzA5 MzM3 IGZ1Zw== Y2hhcmdpbmc= dGFncw== IHV0ZXI= a2lzaA== V0FSTklORw== NDkw cHJvZml0cw== IHZveWFnZQ== IGFjZQ== IFZhbmd1YXJk IFRhbmtz IE11aw== IDIyNg== U2FmZQ== QXJtb3I= IHZvbGNhbmlj IHdvbWI= IE1JTA== IGJlZ2lubmVy IFJlY29nbg== IEFBUA== UExBWQ== KSE= IGRldGVjdGluZw== Y24= IGJyZWFjaGVz QmFzaWNhbGx5 IFBhZw== IE11bmljaXBhbA== IEluZGll IExhZg== IERpc2FibGU= IE9sc29u IHJlc3RyYWluZWQ= IHJ1bGluZ3M= IGh1bWFuZQ== ZXZlbnRz IENpbmVtYQ== ZGlzcGxheVRleHQ= IEhhdGNo YWN0aW9uRGF0ZQ== b25uYWlzc2FuY2U= IGFzc2F1bHRpbmc= IEx1Zw== Q0hBVA== IHZpZ29yb3Vz IFBlcnNl IGludG9sZXJhbmNl IFNuYXBjaGF0 IFNoYXJrcw== IGR1bW15 IERpYWdu IEd1aXRhcg== aW1ldGVycw== NDAz UkVH QXg= IHNlcGFyYXRlcw== IE1haG0= IHR2 amFo T09M Q2lyYw== IFdpbmRzb3I= dXNzaWFu IGludHVpdGlvbg== IGRpc2RhaW4= IERvbm92YW4= IDIyMQ== RW1i IGNvbmRlbW5pbmc= IGdlbmVyb3NpdHk= enp5 IHBhbnRpZXM= IFByZXZlbnQ= QWN0aW9uQ29kZQ== QU5B MzQy ZXh0ZXJuYWxBY3Rpb25Db2Rl IHNwZWNpZnlpbmc= IGNyeXN0YWxs SmVyZQ== IHJ1cHQ= IEFwcHJlbnRpY2U= IHByb2ZpbGluZw== 0Lo= U3RyaWtl IHNpZGVsaW5l IG9ibGlnYXRlZA== IG9jY3VsdA== IGJ1cmVhdWNyYXRpYw== YW50aWNhbGx5 cnVwdGVk bmVnYXRpdmU= IEV0aGlvcGlh IENpdmlj IGluc2lkZXJz ZWxpZ2libGU= IFRWcw== IEJBUg== IFRJ aW9sb2dpc3Q= IEFJUg== IHN1YnN0aXR1dGVk QXJhYg== IFNhdWw= IFlvZw== cHJlbQ== IGJ1aWxkZXJz IHN0YXRpb25hcnk= IGRvdWJ0ZnVs IHZpZ29yb3VzbHk= IHRocmlsbGluZw== UGh5c2ljYWw= IENhcmV5 IEh5ZHJh Z2VvbmluZw== IFNseQ== eXRvbg== IGJvcnJvd2Vycw== IFBhcmtpbnNvbg== IOs= IEphbWFpY2E= IHNhdGly IGluc3VyZ2VudHM= IEZpcm0= IGlzb3Q= IEthcm4= b3VybmluZw== YWtlbnM= ZG9jcw== bGl0dGxl IE1vbmFjbw== Q0xBU1M= VHVya2V5 THk= IENvbmFu YXNzaWM= IHN0YXJyZWQ= IFBhY2Vycw== ZXRpZXM= IHRpcHBpbmc= TW9vbg== IFJ3 c2FtZQ== IGNhdml0eQ== IGdvb2Y= IFpv U2hvY2s= dW1tZXI= IGVtcGhhc2l6ZXM= IHJlZ3JldHQ= IG5vdmVsdHk= IGVudnk= IFBhc3NpdmU= cnc= NTA1 IGluZGlmZmVyZW50 IFJpY2E= IEhpbXNlbGY= IEZyZWRkaWU= IGFkaXA= 5LiA IGJyZWFrb3V0 IGh1cnJpZWQ= IEh1YW5n IERpc2s= IHJvYW1pbmc= Pz8/Pz8tPz8/Pz8t VVY= IFJpY2t5 IFNpZ21h IG1hcmdpbmFsaXplZA== IGVkaXRz IDMwNA== bWVtb3J5 IHNwZWNpbWVu Mjkz 44Gv IHZlcnRpY2FsbHk= IGF1ZGl0aW9u IEhlY2s= IGNhc3Rlcg== IEhvbGRpbmdz YWRhbA== IENyb24= IExpYW0= IGRlZmxlY3Q= UGljaw== IERlYnVn UkVG IHZlcnNhdGlsaXR5 b3RoZXM= Y2xhc3NpZmllZA== IE1haGFy IEhvcnQ= Q291bnRlcg== c3Rhc3k= bm90aWNlZA== MzMx IFNoaW0= ZnVjaw== IEJpZQ== IGFpcmluZw== IFByb3RlaW4= IEhvbGRpbmc= IHNwZWN0YXRvcnM= aWxpYXRlZA== IFRoYXRjaGVy bm9zaXM= 44O844Oz VGVsZQ== Qm9zdG9u IFRlbXBs c3RheQ== IGRlY2xhcmF0aW9ucw== NDc5 Vm9sdW1l IERlc2lnbmVy IE92ZXJ3YXRjaA== aWRhZQ== IG9ud2FyZHM= IG5ldHM= IE1hbmlsYQ== cGFydGljdWxhcmx5 IHBvbGl0aWM= b290aGVy IHBvcnRyYWl0cw== IHBhdmVtZW50 Y2ZmZmY= IHNhaW50cw== IGJlZ2lubmVycw== RVNQTg== IHNob3J0Y29taW5ncw== 4pWQ4pWQ IGNvbWV0 IE9yZ2FuaWM= cXVlbA== IGhvc3BpdGFsaXplZA== QnJlYWs= IHBlZWw= ZHlsaWI= YXNweA== dXJhbmNlcw== IFRJTQ== UGc= IHJlYWRhYmxl IE1hbGlr IG11enpsZQ== IGJlbmNobWFya3M= ZGFs IFZhY2M= IEhpY2tz NjA5 IEJpYmxpY2Fs aGVuZw== IG92ZXJsb2Fk IENpdmlsaXphdGlvbg== IGltbW9yYWw= IGZyaWVz 44KS IHJlcHJvZHVjZWQ= IGZvcm11bGF0aW9u anVn aXJleg== Z2Vhcg== IGNvYWNoZWQ= TXBTZXJ2ZXI= IFNK IEt3 SW5pdA== ZGVhbA== IE9ybw== IExva2k= IFNvbmdz IDIzMg== IExvdWlzZQ== YXNpb25hbGx5 IHVuY29uZA== b2xseXdvb2Q= IHByb2dyZXNzaXZlcw== IEVub3VnaA== IERvZQ== IHdyZWNrYWdl IGJydXNoZWQ= IEJhc2VUeXBl IHpvbmluZw== aXNoYWJsZQ== aGV0aWNhbGx5 IENhdWN1cw== IEh1ZQ== IGthcm1h IFNwb3J0aW5n IHRyYWRlcg== IHNlZW1pbmc= IENhcHR1cmU= NDMw YmlzaA== IHR1bmVz IGluZG9vcnM= IFNwaGVyZQ== IERhbmNpbmc= VEVSTg== IG5vYg== IEdTVA== bWFwcw== IHBlcHBlcnM= Rml0 IG92ZXJzZWVz IFJhYmJp IFJ1bGVy dmVydGlzaW5n b2ZmaWNl eHh4 IHJhZnQ= Q2hhbmdlZA== IHRleHRib29rcw== TGlua3M= IE9tbg== 44CR IGluY29udmVuaWVuY2U= IERvbmV0c2s= PX4= IGltcGxpY2l0bHk= IGJvb3N0cw== IEJvbmVz IEJvb20= Q291cnRlc3k= IHNlbnNhdGlvbmFs QU5Z IGdyZWVkeQ== ZWRlbg== IGluZXhwZXI= IExlcg== IFZhbGU= IHRpZ2h0ZW4= IEVBUg== IE51bQ== IGFuY2VzdG9y U2VudA== IEhvcmRl dXJnaWNhbA== YWxsYWg= IHNhcA== YW1iYQ== IFNwcmVhZA== dHdpdGNo IGdyYW5kc29u IGZyYWN0dXJl IG1vZGVyYXRvcg== IFNldmVudGg= IFJldmVyc2U= IGVzdGltYXRpb24= Q2hvb3Nl IHBhcmFjaA== IGJhcnJpYw== 44CQ IGNvbXBhc3M= IGFsbGVyZ2lj 4oCV T1RIRVI= ZXJyaWxsYQ== IHdhZ29u IHppbmM= IHJ1YmJlZA== IEZ1bGxlcg== IEx1eGVtYm91cmc= IEhvb3Zlcg== IGxpYXI= IEV2ZW5pbmc= IENvYmI= ZXN0ZWVt IHNlbGVjdG9y IEJyYXds aXNhbmNl IEVr IHRyb29w IGd1dHM= IEFwcGVhbA== IFRpYmV0YW4= IHJvdXRpbmVz IE1lbnQ= IHN1bW1hcml6ZWQ= c3RlYW1hcHBz IHRyYW5xdQ== IDE5Mjk= b3Jhbg== IEF1dGhlbnQ= IGdtYXh3ZWxs IGFwcHJlaGVucw== IHBvZW1z IHNhdXNhZ2U= IFdlYnN0ZXI= dXJ1cw== IHRoZW1lZA== IGxvdW5nZQ== IGNoYXJnZXI= U3BvaWxlcg== IHNwaWxsZWQ= aG9n IFN1bmRlcg== IEFpbg== IEFuZ3J5 IGRpc3F1YWw= IEZyZXF1ZW5jeQ== IEV0aGVybmV0 IGhlbHBlcg== UGVyY2VudA== IGhvcnJpZnlpbmc= IGFpbA== IEFsbGFu RUVF IENyb3NzaW5n NDQ5 IGhvbG9n IFB1enpsZXM= IEdvZXM= ZXJlbm4= NjA0 44GP IFJhZmFlbA== IGF0dGVu IEVtYW51ZWw= IHVwcm8= IFN1c3A= UHN5Y2g= IFRyYWluZXI= IE5FUw== IEh1bnRz YmVjdWU= IGNvdW5zZWxvcg== UnVsZQ== IHRveGlucw== IGJhbm5lcnM= cmlmaWNl IGdyZWV0aW5n IGZyZW56eQ== IGFsbG9jYXRl ICop ZXhwcg== NTAz IENoaWNr IFRvcm4= IGNvbnNvbGlkYXRpb24= IEZsZXRjaGVy c3dpdGNo ZnJhYw== Y2xpcHM= IE1jS2lu IEx1bmFy TW9udGg= SVRDSA== IHNjaG9sYXJseQ== cmFwZWQ= Mzk4 IDE5MTA= IGVncmVn IGluc2VjdXJl IHZpY3RvcmlvdXM= Y2ZmZmZjYw== IHNpbmdsZWQ= IGVsdmVz IFdvbmQ= YnVyc3Q= IGNhbW91Zmw= IEJMQUNL IGNvbmRpdGlvbmVk 54k= YW5zd2VyZWQ= IGNvbXB1bHNvcnk= YXNjaXN0 IHBvZGNhc3Rz IEZyYW5rZnVydA== Ym5i IG5lb2xpYmVyYWw= IEtleWJvYXJk IEJlbGxl d2FybQ== IHRydXN0cw== IGluc3VyZWQ= IEJ1Y2M= dXNhYmxl NjA3 IFBsYWlucw== IDE4OTA= IHNhYm90YWdl IGxvZGdlZA== ZmVsdA== IGdh IE5hcmM= IFNhbGVt IHNldmVudHk= IEJsYW5r cG9ja2V0 IHdoaXNwZXI= IG1hdGluZw== b21pY3M= IFNhbG1hbg== IEthZA== IGFuZ2VyZWQ= IGNvbGxpc2lvbnM= IGV4dHJhb3JkaW5hcmlseQ== IGNvZXJjaW9u R2hvc3Q= YmlyZHM= 6IA= a29r IHBlcm1pc3NpYmxl YXZvcmFibGU= IHBvaW50ZXJz IGRpc3NpcA== YWNp IHRoZWF0cmljYWw= IENvc21pYw== IGZvcmdldHRpbmc= IGZpbmFsaXplZA== 5aSn eW91dA== bGlicmFyeQ== IGJvb21pbmc= IEJlbGlldmU= IFRlYWNoZXI= IExpdg== IEdPT0RNQU4= IERvbWluaWNhbg== T1JFRA== IFBhcnRpZXM= IHByZWNpcGl0YXRpb24= IFNsb3Q= Um95 IENvbWJpbmVk IGludGVncmF0aW5n IGNocm9tZQ== IGludGVzdGluYWw= IFJlYmVsbA== IG1hdGNodXBz IGJsb2NrYnVzdGVy IExvcmVu IExldnk= IHByZWFjaGluZw== IFNlbmRpbmc= IFB1cnBvc2U= cmF4 Zmlm IGF1dGhvcml0YXRpdmU= IFBFVA== YXN0aWNhbA== IGRpc2hvbg== IGNoYXR0aW5n ICIkOi8= Q29ubmVjdGlvbg== IHJlY3JlYXRl IGRlbGlucXU= IGJyb3Ro IERpcnR5 IEFkbWlu em1hbg== IHNjaG9sYXJzaGlwcw== IDI1Mw== Y29udGFjdA== YWxzYQ== NzY3 Y3JlZW4= YWJiYWdl IDE5MTU= IGJsZW5kZWQ= IGFsYXJtZWQ= TGFuZ3VhZ2U= MzU2 IGJsZW5kcw== IENoYW5nZWQ= V29sZg== IGhlcGF0 Q3JlYXRpbmc= IHBlcnNlY3V0 IHN3ZWV0bmVzcw== YXJ0ZQ== IGZvcmZlaXR1cmU= IFJvYmVydG8= aW1wcm8= TkZM IE1hZ25ldA== RGV0YWlsZWQ= IGluc2lnbmlmaWNhbnQ= IFBPTElU IEJCUQ== IENQUw== IHNlYXc= YW1pbmVy bUw= ZW5kaWY= ZmluYWxz IDI2NQ== dWlzaA== IH0p IFByb2JsZW1z IGVtYmxlbQ== IHNlcmlvdXNuZXNz IHBhcnNpbmc= IHN1YnN0aXR1dGlvbg== IHByZXNzdXJlZA== IHJlY3ljbGVk YWxlYg== UnVieQ== IHByb2ZpY2llbmN5 RHJpdmVy IFdlc3Rlcg== Oic= QUZUQQ== IG1hbnRsZQ== IENsYXl0b24= ZmxhZw== IHByYWN0aXRpb25lcg== Y292ZXJlZA== IFN0cnVjdA== YWRkYWZp NDI1 IFRvd25zaGlw IEh5ZHJv TG91aXM= MzQz IGNvbmRv IFRhbw== IHV0aWxpemF0aW9u IG5hdXNlYQ== IERlbXM= cmlkZ2Vz cGF1c2U= IGZvcm11bGFz IGNoYWxsZW5nZXI= Mzc2 IGRlZmVjdGl2ZQ== IFJhaWx3YXk= IFB1Yk1lZA== IHlvZ3VydA== bGJz IE5vcmZvbGs= T1BF IE1vb2R5 IGRpc3RyaWJ1dG9y IHNjcm9sbHM= IGV4dHJhY3Rz U3Rhbg== IHZpYWJpbGl0eQ== IGV4cG9zZXM= IHN0YXJ2YXRpb24= IFN0ZXBz IERvZGQ= ZmV3 U1RE MzMy IGNsb3N1cmVz IGNvbXBsZW1lbnRhcnk= IFNhc2hh dW1weQ== IG1vbmV0 IGFydGljdWxhdGU= IERvY3Q= a2lsbGVy IHNjcmlt IDI2NA== IHByb3N0aXR1dGVz IHNldmVyZWQ= IGF0dGFjaG1lbnRz IGNvb2xlZA== TGV2 IEZhbGs= ZmFpbA== IHBvbGljZW1hbg== IERhZw== IHByYXllZA== IEtlcm5lbA== IGNsdXQ= IGNhdGg= IGFub21hbHk= U3Rvcm0= ZW1ha2Vy IEJyZWFrZmFzdA== dWxp b2lyZQ== Sko= aHo= T3BlcmF0aW9u IFNpY2s= MzU0 IEd1YXRlbWFsYQ== UmF0ZQ== IGV4cG9zdXJlcw== ZmFjZXM= IEFyY2hhZQ== cmFm IE1pYQ== IDIwMjU= IG9wYXF1ZQ== IGRpc2d1aXNlZA== IEhlYWRxdWFydGVycw== U2Fo IHBvdHM= OTc4 IE1hbGY= IGZyb3duZWQ= IHBvaXNvbm91cw== IENvbnZlcnM= ZWVrcw== IGNyYWI= LiIi IHRyZWFzb24= IHJhbmM= IGVzY2FsYXRpbmc= IHdhcnI= IG1vYnM= IGxhbXBz IFN1bnNoaW5l IEJydW5zd2ljaw== UGhvbmVz IHNwZWxsZWQ= IFNraXA= IDIwNTA= IDE5MTE= IFBsdXRv IEFtZW5k IG1lYXRz Mzg3 IHN0b21w IFpob3U= IExldmlhdGhhbg== IEhhemFyZA== YWR2 IE9yd2VsbA== IGFsb3Vk IGJ1bXBlcg== IEFuYXJjaA== dWJ1bnR1 IFNlcmlvdXM= Zml0dGluZw== IE9wdGlvbmFs IENlY2ls UkVBTQ== IHNlcm90b25pbg== IGN1bHRpdmF0ZQ== YWdvZ3Vl fVw= IG1vc3F1ZXM= IFN1bm55 IHJlYWN0aXZl cmV2b2x1dGlvbg== IEx1cA== IEZlZG9yYQ== IGRlZmVuc2VtYW4= IFZJRA== aXN0aW5l IGRyb3duaW5n IEJyb2FkY2FzdGluZw== IHRocmlsbGVy IFNjeQ== IGFjY2VsZXJhdGluZw== IGRpcmVjdHM= b2RpZWQ= YmlrZQ== ZHVyYXRpb24= IHBhaW5mdWxseQ== UmVkZA== IHByb2R1Y3Rpb25z IGdhZw== IHdoaXN0 IHNvY2s= IGluZmluaXRlbHk= IENvbmNlcm4= IENpdGFkZWw= IGxpZXU= IGNhbmRsZXM= b2dlbmVvdXM= YXJnZXI= IGhlYXZlbmx5 aW5mbGFtbWF0b3J5 UGVyZm9ybWFuY2U= Q3M= cnVjdG9zZQ== YXpha2k= IHBlc3NpbQ== IGluZmVyZW5jZQ== IHBvd2Q= IFpvZQ== IHBhaW50cw== IGRheno= cHRh LS0tLS0tLS0tLS0= IGluc3Bpcg== IEV4cGVyaW1lbnRhbA== IEtuaWZl cmVnb3I= Ym9ycw== IHNob3dlcnM= cm9tZWRh IHNhaW50 IGJlbmlnbg== IEppYW5n IGVudmlzaW9uZWQ= IHNocm91ZA== SUZU SE8= IHNodWZm IElDQw== IHNlZ3JlZw== IHJldmlzaXQ= aWdodGhvdXNl TGk= IHN1YnN0cmF0ZQ== IFNlYXM= IFJld2FyZA== IEhlcA== IEJyYXNz c2Jt IGVsaW1pbmF0ZXM= IHN0YW1pbmE= IFZBVA== IExvYW4= IGNvbnN0cmFpbnQ= IGFwcHJvcHJpYXRlZA== IHBlcw== IEFMRQ== cmFuZ2luZw== IDQwNA== Mzky IGludGVsbGVjdHVhbHM= YWNodQ== IHJlc3RydWN0dXJpbmc= IExldmlu IHJ1bmVz IGRlbGlnaHRmdWw= IGNhcmJvaHlkcmF0ZXM= IE1vZGVscw== IEV4cG8= IHRyYW5zcG9ydGluZw== YWxsb2M= IHJpbmdpbmc= U2Ftc3VuZw== IHNjYXJjZWx5 IFVSTHM= IE1BUw== IHByb3RvdHlwZXM= IG5hcnJhdG9y IENQVXM= Y2Ru IEJhcnRvbg== IGRlY2lkZWRseQ== IFNodQ== aXhpcg== b2Npb3Vz IE15c3Q= TmludGVuZG8= IHJldXNl IGZvcmdpdmVu RmV3 aW5pY2Fs bmF0 IHNlYW1sZXNz IEV2YQ== IEVWRQ== IEpP bGFuZGVycw== IHNvZnRlcg== bmVnaWU= IHRyYW5zaWVudA== IG9yYml0YWw= IGZ1bGZpbA== IEtvbQ== SG9wZWZ1bGx5 IGR5bmFtaWNhbGx5 IEh1bmdlcg== 5Zs= IEFybWVuaWE= ZWxtYW4= YmVydG8= IHBpZ2U= IElEcw== bGltaXQ= IHZlaW5z IHNvYXJpbmc= cGFja3M= R29sZGVu IENyYWI= aXN0b3I= IFJQTQ== ICQk Z3Jlc3Npb24= IGppaGFkaXN0 IGdhbWJsZQ== IGNhcmVn IGluZmxhdGVk RmFjZQ== IEZpcmVhcm1z IEVtbWFudWVs 4p0= IHNob2Nrcw== Z3JhYg== IHNwbGVuZA== IEhQVg== YWJvcnRpb24= QWJvdmU= RW50aXR5 cGxheWVycw== IGNvbW1lbmNlZA== dWxlbmNl IGZ1bGZpbGxtZW50 IGVtYm9kaW1lbnRz IFdlbGZhcmU= IGhhaWw= IDxA dHRlbg== IGNhdGNoZXI= IEphemVlcmE= IHZvbGNhbm8= IHN0YWJpbGl6ZQ== IEhhbmRsZXI= IGludGVuc2lmaWVk IEFicmFtcw== IGh1bWlsaWF0aW9u cGFjZWQ= NjA1 IENlbnRPUw== U3BlY2lmaWM= IGhlZWQ= IENBTQ== IEdhbGlsZQ== RGll IGFib2xpc2hlZA== IFRob21zb24= IFRlYWNoZXJz IFdhc3M= am9uZw== IElTQk4= IEFsbGllcw== c2hha2U= 5bc= dmljdA== SG93YXJk IGRlZW0= IGV4Y2VlZGluZ2x5 IFNtYXJ0c3RvY2tz aWJl IGRvb3J3YXk= IGNvbXBldGVk aWdtYXQ= IG5hdGlvbmFsaXN0cw== IGdyb29t IEtlZW4= IGRpc3Bvc2FibGU= ZGVjbA== IFRvbGtpZW4= IFNjaGVtZQ== IGJpb2Q= IGF2aWQ= IEVsb24= YWdhcg== IFRTQQ== Um9tYW4= IGFydGlmaWNpYWxseQ== IGFkdmlzb3Jz WEw= IEluZmVybm8= MzY2 IHRlZGlvdXM= IFBob3RvZ3JhcGh5 IENhcnJpZQ== IHRyb3Bl IFNhbmRyYQ== IGRlY2ltYWw= UXVlZW4= IEd1bmRhbQ== IE9N b3RlY2g= TkJB IDE5MzI= IGVudHJlbmNoZWQ= IE1hcmlvbg== IGZyYXRlcm5pdHk= TGFib3Vy SGVucnk= IGxhdGl0dWRl RWl0aGVy IGVuaGFuY2Vz IFBvdGVudGlhbA== IHNoaW5lcw== aWRhZA== IGJyZWFkdGg= IGNhcGFjaXRpZXM= IPCfmYI= IEJyb254 IHNleGVz IGRpZmZlcmVudGlhdGlvbg== IGhlYXZ5d2VpZ2h0 IFRhag== ZHJh IG1pZ3JhdGU= IGV4aGF1c3Rpb24= IFJVTg== ZWxzaXVz IEN1b21v IGd1aXRhcnM= IGNsb25lcw== IFNvbWV3 IFByeQ== LS0tLS0tLS0tLS0tLQ== IHdhcnJhbnRlZA== Y3ljbGVz IHNhbHZhZ2U= IGRpc2tz UkFOVA== IE5HT3M= IE1hcnRpYW4= IjpbeyI= IGFkZGljdHM= b2p1cmU= aWxsZXQ= IGFtYXppbmdseQ== YXJ0bWVudHM= cGl4ZWw= IEdQVXM= TGF5b3V0 6KM= IFRhbWls IEJhc2ls IGltcGFydGlhbA== IFN0cnVjdHVyZQ== Zm9yaw== YnJ5Y2U= IHJpZGdl IEhhbWJ1cmc= cmlvdXM= IGJsaXR6 Y2lnYXJldHRlcw== IGNhbm5lZA== NDAy IGlyb25pY2FsbHk= IGNvbXBhc3Npb25hdGU= IEhhd2tpbnM= LiM= IENhdGhlZHJhbA== IHJhbGxpZWQ= aW50ZXJuYWw= IHF1b3Rh c3Rha2Vz VEVYVA== bW9t IGNvbXBsZXRlcw== IDIzOA== IHNocnVn 44OR IE5pbnRo IHJldmlzZQ== IFByb3ZpZGVy IHRyZWFjaGVy IHF1YXNp IFBSRVM= IGRlcG9zaXRpb24= IGNvbmZpZGVudGlhbGl0eQ== aXNzb3Jz IGltYmFsYW5jZQ== IHNwYW5uaW5n IGFuZ3VsYXI= IEN1bA== Y29tbXVuaWNhdGlvbg== IE5vcmE= IEdlbml1cw== b3B0ZXI= IHNhY2tlZA== U3BvdA== IGZpbmVseQ== IENIUg== Mjgy d2F2ZXM= UGFsZXN0 IFJvaGluZw== Tkw= 6L8= IHNoaXR0eQ== IFNjYWxpYQ== NDc1 UHJvZ3Jlc3M= IHJlZmVyZW5jaW5n IGNsYXNzcm9vbXM= YWJlZQ== IHNvZA== aGVzaW9u NzA4 IFp1Y2tlcmJlcmc= IEZpbmlzaA== IFNjb3RpYQ== IFNhdmlvcg== IEluc3RhbGxhdGlvbg== YW50aGE= KC0= IDMwMg== IFB1bms= IGNyYXRlcg== eW91dHU= IHJvYXN0 IGluZmx1ZW5jaW5n IGR1cA== IEpS IEdyYXY= IHN0YXR1cmU= IGJhdGhyb29tcw== QXNpZGU= V2lraQ== bWVhbg== IFphaw== IE9uZXM= IE5hdGg= IGh5cGVydA== IGNvbW1lbmNlbWVudA== Q2l2aWw= IG1vZGVyYXRlbHk= IGRpc3RyaWJ1dG9ycw== IGJyZWFzdGZlZWRpbmc= IDk4MA== IFNpaw== IENpZw== IEFNRVI= UklQ IENhcmVlcg== dXN0aW5n IG1lc3NlZA== IGVo IEplbnNlbg== LyQ= IGJsYWNrbWFpbA== IGNvbnZlcnNpb25z IHNjaWVudGlmaWNhbGx5 IG1hbnRyYQ== cGF5aW5n IGl2b3J5 IENvdXJ0cw== T1VHSA== YXVudGxldA== U2VyaWFs QnJvdw== IEh1bmRyZWRz MzIz IHBlZQ== IGxpbnV4 IHN1Ym1lcg== IFByaW5jaXBhbA== NDg1 IERTTA== IENvdXNpbnM= IGRvY3RyaW5lcw== IEF0aGxldGljcw== IDMxNQ== IEthcm1h IGF0dGVudA== dXJnZXI= IHByZXNjcmliZQ== IGVuY2Fwcw== IENhbWU= IHNlY3JldGl2ZQ== IENyaW1lcw== ZG4= Q2xlYW4= IEVneXB0aWFucw== IENhcnBlbnRlcg== IGxs SHVt IE1pbG8= IGNhcGl0YWxpc3Rz IGJyaWVmZWQ= VHdl IEJhc2lu ZWx2ZXQ= TW9z IHBsdW5nZQ== IEthaXNlcg== IEZ1ag== aWxsaW4= IHNhZmVndWFyZHM= IG9zdGU= IE9wcG9ydHVuaXR5 IE1hZmlh IENhbGxpbmc= YXBh dXJiYW4= YnJ1c2g= aWxsYXJk Y8Op aW50ZWxsaWdlbmNl IExvYg== IERydWlk IHNtb290aGVy IGZvb3Rpbmc= IG1vdG9yaXN0cw== YXJjaXR5 IG1hc2N1bGluaXR5 IG1pc20= IGFiZG9taW5hbA== IFRhdmVybg== IFJvaA== IGVzY2FwZXM= c2lnbmVk QW50aG9ueQ== IHNhY3JpZmljaW5n IGludGltYWN5 IGFudGVyaW9y IEtvZA== IG1vdGlm IGdyYXo= IHZpc3VhbGl6YXRpb24= IGd1aXRhcmlzdA== IFRyb3Rza3k= bWFnaWM= RGFy IE1vcmk= IHdhcmRz IHRvaWxldHM= bGVzdA== IHRlbGVwb3J0 IFN1bmRheXM= IFBsYXQ= RVRT IGVTcG9ydHM= UGF0cmljaw== IEthdGhlcmluZQ== ZW5rbw== IGhhc3NsZQ== IE1pY2s= Z2dsZXM= IGhvYg== YWludGFpbg== IGFpcmJvcm5l IHNwYW5z IGNoaWxp IGFwZXJ0dXJl IHZvbHVudGVlcmVk IEluY2lkZW50 IEZyZXM= IFZldGVyYW4= YXVnaHRlcmVk aW5nbw== IHVuaW5zdXJlZA== Q0xPU0U= IGZ1c2U= IGVyb3RpYw== IGFkdmVydGlzZQ== cmFpc2luZw== VGV4dHVyZQ== IGF0dGVuZHM= IFJFQUw= dWRkbGVk IHNtb290 IDMwNQ== IFdpbGxpcw== IGJsb25k QW5hbHlzaXM= IFZU b25pY2E= IHN0cm9uZ2hvbGQ= UkY= Tk0= Lj4+ IHByb3NwZXJvdXM= IGJvYXN0ZWQ= Mjky IE1hbnVmYWN0dXJpbmc= UFJFU1M= Z3Jlbg== IHBoYXJtYWN5 IFJvY2tlZmVsbGVy a2Fp IHRodW1icw== IEh1dA== IG1vdGhlcmJvYXJk IGd1YXJkaWFucw== IEFsdGVy bGx1bGFy IHNoYWNr IHdpc2VseQ== IGJhY2tib25l ZXJ2YQ== IHN1aWNpZGVz IE1jR3JlZ29y aWphaA== RW1lcg== IEJyYXY= IGRlc2lnbmF0ZQ== UE9TVA== cHJvZHVjZWQ= IGNsZWFuc2luZw== aXJsd2luZA== ZXhpc3RlbnQ= IEh1bXBo IFBheW5l IHZlc3RlZA== xaE= IHN0cmluZ2VudA== aW9uYQ== IHVuc3Vi IHN1bW1lZA== IEhlcmN1bGVz c3ViamVjdA== IFJhZ25hcg== IE5vcw== IGNoYXJhY3Rlcml6YXRpb24= IHNhdnZ5 IERhd3Nvbg== IENhc2lubw== IGZyaQ== IEJhcnJpZXI= IG1pc2luZm9ybWF0aW9u IGluc3VsYXRpb24= IGNvcnJpZG9ycw== IGFpcnBsYW5lcw== IE5vY3Q= YWhp IDE5MTY= a2I= YXJtYWM= IHNodW4= IHNjaGVtYQ== IGhvcnJpZmllZA== IDIzOQ== YXVuZGVycw== TkI= aWF0ZXM= ZXJpdHk= IFNoYXJk IHJhcml0eQ== IGdyb3VwZWQ= IEdoYW5h YWdhaW5zdA== IEJpb2xvZ2ljYWw= IEF3YXJl b3dlbGw= z4Q= IEJlYXU= c2hhdw== SGFjaw== IEp1bGl1cw== VVNT b2xzb24= YXVuYQ== Y3J1 IE1hdXJpY2U= IElr IHNlcXVlbmNpbmc= IHJhZGljYWxz ICg/LA== dmlydHVhbA== IGFueXdheXM= IHJlcGVyYw== IGhhbmRsZXJz IGhlc2l0YW50 6YM= IE1G cGxlbWVudGF0aW9u YXNzb2NpYXRlZA== IGNhbXBhaWduZWQ= IFl1ZQ== dXRhdGlvbnM= IFlvZ2E= IHNpbW1lcg== IHJvZHM= IG1lbG9keQ== IGNvbnZveQ== dmlkZW9z IHNjcmVlbmVk TmVn b2NoZW1pY2Fs ICgpKQ== IHVsdHJhcw== IGFudGlw IElzbGFuZGVycw== NzA0 IGZldGlzaA== IHJpZGljdWxvdXNseQ== IEthcnQ= IG1pdG9jaG9uZHJpYWw= IGludGVyZmVyaW5n QnVpbGRlcg== IG92ZXJmbA== IGFjbmU= IE11ZA== IEtlcnI= ZmxleA== IFBvc3RhbA== IEJhbHRpYw== NDc3 IFBlcnNvbnM= b3VyYWdl SEI= IE11c2U= IEltbW9ydGFs IERyaXZpbmc= IHBldGl0aW9ucw== IHN1YnNjcmlwdA== IHNvcmNl IFByb2Nlc3Nvcg== dXRvbg== U29ueQ== IHBob24= IHJhY2Vk IEFudGhyb3A= IGRheXRpbWU= IEV4ZXJjaXNl QWRkaW5n IGVuZ2FnZXM= IFF1YWxjb21t IG1pcmFjbGVz IG1lbWVz IERyaW5r IE9yaW9sZXM= IGhhaXJz IFBvbGFy YXRob20= IHNsaXBwZXJ5 IFJlbXk= IGNhcmFtZWw= IFlFQVI= IGFsaw== SWdu YXV0aW9u IE1lcmxpbg== IENyYW4= IGFwb2xvZ2llcw== IDQxMA== IG91dGluZw== IE1lbW9yaWVz YXBwb2ludGVk IGNvdW50ZXJlZA== dWxk cG9zaW5n IGZpcmV3YWxs IFdhc3Q= IFdldA== d29ya2Vk c2VsbGVy IHJlcGVhbGVk ZXJlbw== YXNzdW1pbmc= QkxJQw== bWl0ZQ== IENFT3M= IENoYXBlbA== ZWxsaWdlbnQ= X19fX19fX19fX19fX19fX19fX19fX19f RG9n IHdhcnQ= IHN1YnNjcmliZXI= c3BvcnRz IGJlZ2dlZA== IE1W IHNlbWlm ZXRoaWNhbA== IHByZWFjaA== IHJldml0YWw= IHB1bml0aXZl IHNob3J0Y3V0cw== IGluc3RpdHV0ZWQ= IFdhcnNhdw== IGFiZG9tZW4= IEtJTkc= IHN1cGVyaW50ZW5kZW50 IGZyeQ== IEdlbw== VE9S IGNvbnRyYWRpY3Rpb25z YXB0aWM= IGxhbmRzY2FwZXM= YnVncw== IGNsdXN0 IHZvbGxleQ== Y3JpYmVk IHRhbmRlbQ== IHJvYmVz V0hBVA== IHByb21vdGVy IGVsb3F1 cmV2aWV3ZWQ= IERL IFBsYXRv IGZwcw== VGFuaw== IERlcnJpY2s= IHByaW9yaXRpemU= YXNwZXI= IEhvbmR1cmFz IENvbXBsZXRlZA== bmVj IG1vZw== bmly IE1heW8= REVG c3RhbGw= aW5uZXNz IFZvbGtzd2FnZW4= IHByZWNhdXRpb24= IE1lbGw= aWFr aXN0cmllcw== IDI0OA== IG92ZXJsYXBwaW5n U2VuYXRl IEVuaGFuY2U= cmVzeQ== cmFjaWFs T1JUUw== IE1vcm1vbnM= U3Ryb25n IENvY2g= TWV4aWNv IE1hZHVybw== IGphcnM= IGNhbmU= V2lr b2xsYQ== aWZmZXJlbmNl IHBoeXNpY2lzdA== IE1hZ2dpZQ== IDI4NQ== IGRlcGljdGlvbg== IE1jTGFyZW4= SnU= IHNsb3dz IGNvbW1pc3Npb25lcnM= IFdpbGxvdw== IEV4cGxvcw== aG92YWg= IHRlY2huaWNpYW4= IGhvbWljaWRlcw== IEZsYXY= IFRydW1hbg== IDEwMDAw dWN0b3I= IHNoYWRlcg== TmV3c2xldHRlcg== NDU3 IHJldmVy IGhhcmRlbmVk IHdoZXJlYWJvdXRz IHJlZGV2ZWxvcA== IGNhcmJz IHRyYXZlcnM= IHNxdWlycmVs IGZvbGxvd2Vy IHNpbmdz NTA4 IHJhYmJpdHM= ZW1vbml1bQ== IGRvY3VtZW50aW5n IG1pc3VuZGVyc3Rvb2Q= KSc= Umljaw== Z2dpZXM= IHByZW1pZQ== IHNrYXRpbmc= IHBhc3Nwb3J0cw== IGZpc3Rz YWdlZGRvbg== SGF3 QUNQ MDgw IFRob3VnaHRz IENhcmxzb24= IHByaWVzdGhvb2Q= aHVh IGR1bmdlb25z IExvYW5z IGFudGlz IGZhbWlsaWFyaXR5 IFNhYmI= b3BhbA== IEluaw== c3RyaWtl IGNyYW0= IGxlZ2FsaXplZA== IGN1aXNpbmU= IGZpYnJl VHJhdmVs IE1vbnVtZW50 T0RZ ZXRoeQ== IGludGVyc3RhdGU= IFBVUg== ZW1wb3Jhcnk= IEFyYWJpYW4= ZGV2ZWxvcGVk IHNhZGRsZQ== IGdpdGh1Yg== IE9mZmVy IElTUA== cm9sZXQ= IFNVUEVS IERlbmlz IG11bHRpcGxpZXI= IHN0aXJyZWQ= SW50ZXJlc3RpbmdseQ== IGN1c3RvbWFyeQ== IGJpbGxlZA== aGV4 IG11bHRpcGxpZWQ= IGZsaXBwaW5n IENyb3NieQ== IGZ1bmRhbWVudGFscw== aWFl IFBsYXllZA== IEF0b20= YW1hem9u IEZsYW0= ZWV6 YWN0aXZhdGVk IHRhYmxlc3Bvb24= IGxpYmVyYWxpc20= IFBhbGlu IFBhdGVs TnVt IFRBTQ== IHN1cm4= IFJlbG9hZGVk IGNvaW5lZA== Il0s IENsYXNo IEFndQ== IHByYWdtYXRpYw== IEFjdGl2YXRl IDgwMg== IHRyYWlsZXJz IHNpbGhvdQ== IHByb2Jlcw== IGNpcmN1cw== IEJhaW4= IExpbmRzYXk= IEFiYmV5 RGVsaXZlcnk= IGNvbmNlc3Npb24= IGdhc3Rybw== IFNwcml0ZQ== xJ8= YW5kZWw= IGdpbW0= IGF1dG9iaQ== IFR1cnRsZQ== IHdvbmRlcmZ1bGx5 IEhhcmFt IFdvcmxkd2lkZQ== IEhhbmRsZQ== IHRoZW9yaXN0cw== IHNsZWVr IFpodQ== b2dyYXBoaWNhbGx5 RUdB IE93bmVycw== YXRocw== IEFudGFyY3RpYw== bmF0YWw= PSIi ZmxhZ3M= YGBgYA== IHN1bA== S2g= IHBvdGFzc2l1bQ== IGxpbmVtYW4= IGNlcmVhbA== IFNlYXNvbnM= IDIwMjI= IG1hdGhlbWF0aWM= IGFzdHJvbm9tZXJz cHJvZmVzc2lvbmFs IGZhcmVz Y2tub3dsZWQ= IGNoaQ== IHlvdW5nc3RlcnM= IG1pc3Rha2VubHk= IGhlbWlzcGhlcmU= IERpdmluaXR5 cm9uZQ== ICIs cmluZ3M= IGF0dHJhY3Rz dmFuYQ== 5bk= Q0FQ IHBsYXlsaXN0 IHBvcmNo 44Gj IGluY29ycG9yYXRlcw== IHNvYWs= IGFzc2VydGluZw== IFRlcnJvcmlzbQ== IFBhYmxv SmE= Y2VzdGVy IGZlYXJpbmc= IFByYXllcg== IGVzY2FsYXRlZA== R1c= IHJvYmU= IEJyaWdodG9u YWNpc3Rz IFN5bXBob255 IER3YXJm IFBhcmFkZQ== IExlZ28= IGluZXhwbA== IGxvcmRz bGVhZg== UkFH bGliZXI= IGNpZ2Fycw== IEplaG92YWg= NjA2 V0lORE9XUw== IExpYmVyaWE= ZWJ1cw== SGVhdnk= IGx1YnJpYw== IFJX YW5ndWFnZXM= IG5hcnJvd2Vk Y29tcHV0ZXI= IEVtYmVy IG11cmRlcmluZw== IGRvd25zdHJlYW0= IFR1bHM= IFRhYmxlcw== VG9waWM= IEFjY3VyYWN5 PS8= bG9zdA== IFJlaQ== IHByb2dyZXNzZXM= YmVhcg== IGVzdGFibGlzaG1lbnRz SnVzdGlu IFBlYWNo IEdvbWV6 5b8= IFRyaWFuZ2xl SWRlbnQ= IEhpdmU= UmVzb3VyY2Vz IG1peGVz IEFzc3VtaW5n TXU= IGh5cG9j IHNhbmU= IFdhbg== aWRpb3Vz U3VjY2Vzcw== IGlv QW5nZWw= IGRhbmdlcm91c2x5 IENyZWF0dXJl V09SSw== Ols= IEthdHJpbmE= TGlzdGVuZXI= TWlsbGVy IElkbGli aGFuZw== IGNpcmN1bXZlbnQ= aHJlZg== IGNlbGVzdGlhbA== IFdlZWtz IFB1Zw== IERhbHRvbg== IHN1YnBvZW5h dWt1 IHBlcnNpc3RlZA== cGVp b2xkaW5n IERvY3VtZW50cw== IEhhc3Q= IENFTlQ= IHByaW1lcg== IHN5bm9ueW1vdXM= IG5pYg== b21icw== IG5vdGF0aW9u IERpc2g= IEF0bW9zcA== IGZvcmJpZA== IEFORw== cGF0dGVybg== bG9z IHByb2plY3RpbGVz YnJvd24= LiIs IFZlbm9t IGZpZXJjZWx5 dWJsaXNoZWQ= IFVyYW4= IE5pY2FyYWc= NDEw IENBTA== T1RPUw== IE1pcmFjbGU= IEVuY2hhbnQ= IGd1YXJkaW5n YXBwZW5k QXR0YWNo IGxldmVsZWQ= IGNvbmRvbXM= aWhpbGF0aW9u NjQ5 IG5pZ2h0bWFyZXM= IFRIRVk= IFNUQVJU IEtpbm4= IHJvb21tYXRl IGh5Z2llbmU= b3BwaW5n Sm9i IGx2bA== IFZFUg== IEtlZXBpbmc= YWJldGlj IGZvcm1hdHRpbmc= ZXJhbGE= IHJldmlzaW9ucw== IHJlc3VyZw== VGVs IEdvb2RtYW4= MzUz cG9k IGluZGlzcA== IFRyYW5zbGF0aW9u IGdvd24= IE11bmQ= IGNpcw== IGJ5c3RhbmQ= Y29sbGVjdA== IFB1bmphYg== YWN0aXZlbHk= IEdhbWI= dGVsbA== IGltcG9ydGluZw== Z2VuY2llcw== IGxvY29t IEJyaWxs SG9seQ== IEJlcmdlcg== IHNob3dkb3du IHJlc3BvbmRlcnM= SUxZ IHRha2Vkb3du bGV0ZWQ= IG1hdHRlcmVk IHByZWRpY3RpdmU= IG92ZXJsYXk= R1BV IFZpY2s= IGNvbnZleWVk VGFi cGVlcg== U2Nhbg== IGRlZmVuc2l2ZWx5 dmFl IGFwcHJvdmluZw== IHRpZXJz IFZpYQ== cXVlcmFkZQ== IFNhdWRpcw== IGRlbW9saXNoZWQ= IFByb3BoZQ== IG1vbm8= IGhvc3BpdGFsaXR5 SEFN IEFyaWVs TU9E IFRvcmFo IGJsYWg= IEJlbGFydXM= ZXJlbnRpYWw= IFR1Yw== IGJhbmtlcg== Mzk3 IG1vc3F1aXQ= IFNjaWVudGlzdA== IE11c2ljYWw= IGh1c3Q= U2hpZnQ= IHRvcm1lbnQ= IHN0YW5kb2Zm RWR1Yw== IEZvZw== IGFtcGxpZmllcg== U2hhcGU= SW5zdGFuY2U= IENyaXRpY3M= IGRhZW1vbg== SG91c3Rvbg== IG1hdHRyZXNz IElERg== IG9ic2NlbmU= IEFtZXI= aGV0dGk= IGNvbXBpbGluZw== MzUy dmVyZXR0 IFJlZHVjdGlvbg== aXN0cmF0aW9u IEJsZXNzZWQ= IEJhY2hlbG9y MzE2 IHByYW5r IFZ1bGNhbg== ZGRpbmc= IG1vdXJuaW5n IFF1aW50 IEJsYXN0ZXI= dGVzdGluZw== IHNlZGltZW50 Pj4+ IEV0ZXJuaXR5 IFdIRVJF IE1hemU= IHJlYWN0aW5n IEFsdg== b21zZGF5 IENSQQ== IHRyYW5zbGF0b3I= IGJvZ3Vz YXR1 V2Vic2l0ZQ== b2xscw== IGJhcHRpc20= IHNpYmxpbmc= IEF1dHVtbg== dmV6 44Gu6Q== Z3VhcmRz R2Vvcmc= YXNzYWRvcnM= IEZyZXVk IGNvbnRpbmVudHM= IFJlZ2lzdHJ5 QmVybmll lprlo6s= IHRvbGVyYW50 IFVX IGhvcnJpYmx5 OTk1 IE1JREk= IGltcGF0aWVudA== b2NhZG8= ZXJp IFdvcnN0 IE5vcnJpcw== IFRhbGtpbmc= IGRlZmVuZHM= ZW5zYWJsZQ== IDIwMjE= IGFuYXRvbXk= TGV3 IGRyYXdlcg== IENhbmJlcnJh IHBhdHJpb3RpYw== 6b6N5Zaa5aOr IEF2Zw== QVJN IHVuZGlzY2xvc2Vk IGZhcmV3ZWxs NDU5 YmFibGU= IEFsbGlzb24= T0xPRw== IGNvbmNv dGlnaHQ= IEFDUEk= IE1pbmVz bGljaA== IOKUnA== cmVwcmVzZW50ZWQ= MjAwMDAw IGVudGh1c2lhc3Q= T1RT Ymls IEluZ3JlZGllbnRz IGludmVudG9y IE15U1FM wqDCoMKg IEFCT1VU d2l0aGlu IG1r QnVs IEZha2U= IGRyYWNvbmlhbg== V2E= aGVsbQ== IFRlcnJhbg== ZXJ2aWxsZQ== IGNvbW1vbnBsYWNl U0laRQ== ICI8 cmVwbGFjZQ== b2dyYXBocw== IFNFTEVDVA== aW5jaWJsZQ== IE1vc3RseQ== IFNoZWZmaWVsZA== IElERQ== dWdnbGU= IGNpdGF0aW9ucw== aHVyc3Q= IFVuaXg= IHVubGVhc2g= IFBpcGVy IE5hbm8= IHN1Y2N1bWI= IHJlbHVjdGFuY2U= IDI1MDA= IE1lcmNoYW50 IHdpcmV0 IGNvbWJvcw== IEJpcnRoZGF5 IGNoYXJjb2Fs IFVQUw== IEZhaXJmYXg= IGRyaXZld2F5 IFRlaw== IFBpdGNo b3ZlcmU= IHRlY2huaWNpYW5z IEFjdHVhbA== ZmxhdGlvbg== IEZpc2NhbA== IEVtcHR5 YW5hbW8= IG1hZ25lc2l1bQ== IHNsdXQ= IGdyb3dlcnM= SW52ZXN0aWdhdG9ycw== KCk6 IFNhdGVsbGl0ZQ== IEtleW5lcw== bWlzc2l2ZQ== bGFuZQ== IGJvcm91Z2g= MzQ0 IFRFQU0= IEJldGhlc2Rh Q1Y= aG93ZXI= IFJBRA== IGNoYW50 IFJpeQ== IGNvbXBvc2l0aW9ucw== IG1pbGRseQ== IG1lZGRsaW5n IGFnaWxpdHk= YW5lZXJz NTAx IHN5bnRo bGluZ2Vy Mjkx IGV4Y2xhaW1lZA== UGFydHk= IGNvbnRhbWlu IE1hbm9y IFJlc3BvbmQ= IHByYWlzaW5n IG1hbm5lcnM= ZmxlZXQ= U3VtbWVy IEx5bmQ= IERlZmluaXRlbHk= Z3JpbQ== IGJvd2xpbmc= c3RyaQ== 55s= eW50 IG1hbmRhdGVz RElW IHJlY29uY2lsZQ== dmlld3M= IERhbW9u dmV0dGU= Rmxv IEdyZWF0ZXN0 aWxvbg== aWNpYQ== IHBvcnRyYXlhbA== IGN1c2hpb24= NTA0 MTk3OQ== b3NzYWw= QXBwbGlj c2NyaXB0aW9u IG1pdGlnYXRpb24= QVRT cGFj IGVyYXNlZA== IGRlZmljaWVuY2llcw== IEhvbGxhbmRl IFh1 IGJyZWQ= IHByZWduYW5jaWVz ZmVtaW4= IGVtcGg= IHBsYW5uZXJz IG91dHBlcg== dXR0ZXJpbmc= IHBlcnBldHJhdG9y IG1vdHRv IEVsbGlzb24= IE5FVkVS IGFkbWl0dGVkbHk= QVJJ IEF6ZXJiYWlqYW4= IG1pbGxpc2Vj IGNvbWJ1c3Rpb24= IEJvdHRsZQ== IEx1bmQ= IFBz IERyZXNz IGZhYnJpY2F0ZWQ= IGJhdHRlcmVk IHNpZGVs IE5vdHRpbmc= Rm9yZWlnbg== IEplcm9tZQ== MDIw IEFyYml0 IGtub3Rz IFJJR0hU TW92aW5n 44GZ IHN1cmdlcmllcw== IGNvdXJ0aG91c2U= IG1hc3RlcmVk IGhvdmVyaW5n IEJyYW4= IEFsaXNvbg== IHNhZmVzdA== bWlsaXRhcnk= IGJ1bGxpZWQ= IGJhcnJhZ2U= UmVhZGVy RVNF IEdlb2dyYXBoaWM= VG9vbHM= MzE0 IEdlZWs= cm90aA== Z2xlcnM= IEZJTg== z4E= IEFzdG9u YWx0ZXJu NDg4 IHZldGVyaW4= R2FtZXI= IGludGVs cmVuY2hlcw== U2hpZWxk IGFtbmVzdHk= IEJoYXI= IHBpbGVk IGhvbm9yYWJsZQ== IEluc3RpdHV0ZXM= IHNvYWtlZA== IGNvbWE= IEVGRg== MzQx Ynl0ZXM= IEdtYWls bGVpbg== IENhbmFkaWVucw== bWF0ZXJpYWw= SWw= IGluc3RydWN0b3Jz IEtZ IGNvbmNlaXZl dWJi IFBvc3NpYmxl IGVhc2luZw== IENocmlzdGluYQ== IGNhcmlj IEhEUg== Uk9N IHNob3ZlbA== ZGVsZXRl IHB1ZmY= IENoYW5naW5n IHNlYW1sZXNzbHk= QXR0cmlidXRl IGFjcXVpc2l0aW9ucw== YWtlcnk= IEVG IGF1dGlzdGlj IFRha2Vz IFBvd2Rlcg== IFN0aXI= NTEw IEJ1YmJsZQ== c2V0dGluZ3M= IEZvd2xlcg== IG11c3RhcmQ= IG1vcmVvdmVy IGNvcHlyaWdodGVk IExFRHM= MTUwMA== 5ok= IEhJUw== ZW5m IGN1c3RvZA== IEh1Y2s= R2k= IGltZw== QW5zd2Vy Q3Q= amF5 IEluZnJhc3RydWN0dXJl IGZlZGVyYWxseQ== TG9j IG1pY3JvYmVz IG92ZXJydW4= ZGRz b3RlbnQ= YWRpYXRvcg== Pj4+Pj4+Pj4= IHRvcm5hZG8= IGFkanVk IGludHJpZ3VlZA== IHNp IFJldmVsYXRpb24= cHJvZ3Jlc3M= IGJ1cmdsYXJ5 IFNhaXlhbg== IEthdGh5 IHNlcnBlbnQ= IEFuZHJlYXM= IGNvbXBlbA== ZXNzbGVy IFBsYXN0aWM= IEFkdmVudA== IFBvc2l0aXZl IFF0 IEhpbmR1cw== cmVnaXN0ZXJlZA== dWxhcml0eQ== IHJpZ2h0ZW91c25lc3M= IGRlbW9uaWM= dWl0aXZl IEJEUw== IEdyZWdn Y2lh IENydXNhZGU= IFNpbmFp V0FSRQ== Kyg= IG1lbGw= IGRlcmFpbA== eWFyZHM= QXN0 IG5vdGljZWFibHk= IE9iZXI= UmFt IHVubm90aWNlZA== IHNlcQ== YXZhZ2U= VHM= IDY0MA== IGNvbmNlZGU= IF0p RmlsbA== IGNhcHRpdml0eQ== IEltcHJvdmVtZW50 IENydXNhZGVy YXJhb2g= TUFQ 5pc= IHN0cmlkZQ== YWx3YXlz Rmx5 Tml0 IGFsZ2Fl IENvb2tpbmc= IERvb3Jz TWFsbGV5 IHBvbGljZW1lbg== 44GN IGFzdHJvbmF1dA== YWNjZXNzaWJsZQ== NDk1 IFJBVw== Y2xpZmZl dWRpY3JvdXM= IGRlcGVuZGVk YWxhY2g= IHZlbnR1cmVz cmFrZQ== IHRpdHM= IEhvdQ== IGNvbmRvbQ== b3Jtb25hbA== IGluZGVudA== IHVwbG9hZGluZw== Rm9vdG5vdGU= SW1wb3J0YW50 IDI3MQ== IG1pbmRmdWw= IGNvbnRlbmRz Q3Jh IGNhbGlicg== IE9FQ0Q= cGx1Z2lu RmF0 IElTUw== IER5bmFtaWNz YW5zZW4= Njg2 Jyks IHNwcml0ZQ== IGhhbmRoZWxk IEhpcHA= PX49fg== VHJ1c3Q= IHNlbWFudGljcw== IEJ1bmRlcw== IFJlbm8= IExpdGVyYXR1cmU= c2Vuc2U= R2FyeQ== IEFlZw== IFRyaW4= RUVL IGNsZXJpYw== IFNTSA== IGNocmlzdA== IGludmFkaW5n aWJ1 IGVudW0= YXVyYQ== IGFsbGVnZQ== IEluY3JlZGlibGU= QkJD IHRocnU= IHNhaWxlZA== IGVtdWxhdGU= IGluc2VjdXJpdHk= IGNyb3U= IGFjY29tbW9kYXRpb25z IGluY29tcGV0ZW50 IHNsaXBz IEVhcnRocXU= c2FtYQ== SUxMRQ== IGlQaG9uZXM= YXNha2k= IGJ5ZQ== IGFyZA== IGV4dHJhcw== IHNsYXVnaHRlcmVk IGNyb3dkZnVuZGluZw== cmVzc28= IGZpbGli IEVSUk9S IFRMUw== ZWdn IEl0YWw= IGVubGlzdA== IENhdGFsb25pYQ== IFNjb3Rz IHNlcmdlYW50 IGRpc3NvbHZl Tkg= IHN0YW5kaW5ncw== cmlxdWU= SVE= IGJlbmVmaWNpYXJ5 IGFxdWFyaXVt WW91VHViZQ== IFBvd2VyU2hlbGw= IGJyaWdodGVzdA== IFdhcnJhbnQ= U29sZA== V3JpdGluZw== IGJlZ2lubmluZ3M= IFJlc2VydmVk IExhdGlub3M= aGVhZGluZw== IDQ0MA== IHJvb2Z0b3A= QVRJTkc= IDM5MA== VlBO R3M= a2VybmVs dHVybmVk IHByZWZlcmFibGU= IHR1cm5vdmVycw== IEhlbHM= U2E= IFNoaW5qaQ== dmVo IE1PRFVMRQ== VmlvbA== IGV4aXRpbmc= IGphYg== IFZhbmlsbGE= IGFjcm9u IEdhcA== YmVybg== QWs= IE1jR3U= IGVuZGxlc3NseQ== IEZhcmFnZQ== IE5vZWw= VmE= TUs= IGJydXRl IEtydQ== IEVTVg== IE9saXZpYQ== 4oCg IEthZg== IHRydXN0aW5n IGhvdHM= MzI0 IG1hbGFyaWE= IGpzb24= IHBvdW5kaW5n b3J0bWVudA== Q291bnRyeQ== IHBvc3Rwb25lZA== IHVuZXF1aXY= Pyks IFJvb25leQ== dWRkaW5n IExlYXA= dXJyZW5jZQ== c2hhcGVzaGlmdGVy IEhBUw== b3NhdGU= IGNhdmVybg== IGNvbnNlcnZhdGlzbQ== IEJBRA== IG1pbGVhZ2U= IGFycmVzdGluZw== VmF1bHRz IG1peGVy RGVtb2NyYXRpYw== IEJlbnNvbg== IGF1dGhvcmVk ODAwMA== IHByb2FjdGl2ZQ== IFNwaXJpdHVhbA== dHJl IGluY2FyY2VyYXRlZA== IFNvcnQ= IHBlYWtlZA== IHdpZWxkaW5n cmVjaWF0aW9u 15nX UGF0Y2g= IEVtbXk= IGV4cXU= dHRv IFJhdGlv IFBpY2tz IEdyeQ== cGhhbnQ= IGZyZXQ= IGV0aG4= IGFyY2hpdmVk JS0= Y2FzZXM= IEJsYXpl IGltYg== Y3Y= eXNz aW1vbnk= IGNvdW50ZG93bg== IGF3YWtlbmluZw== IFR1bmlzaWE= IFJlZmVy IE1K IHVubmF0dXJhbA== IENhcm5lZ2ll aXplbg== IE51Z2dldHM= aGVzcw== IGV2aWxz NjQ3 IGludHJvZHVjdG9yeQ== bG92aW5n IE1jTWFob24= IGFtYmlndWl0eQ== TGFiZWw= IEFsbWlnaHR5 IGNvbG9yaW5n IENsYXVz c2V0dGluZw== TlVMTA== IEZhdm9yaXRl IFNJRw== Pig= IFNoaXZh IE1heWVy IHN0b3JtZWQ= IENvdmVyYWdl d2VhcG9ucw== aWdoYW0= IHVuYW5zd2VyZWQ= IGxldmU= IGNveQ== Y2Fz YmFncw== YXN1cmVk U2VhdHRsZQ== IFNhbnRvcnVt c2VyaW91cw== IGNvdXJhZ2VvdXM= IFNvdXA= IGNvbmZpc2NhdGVk IC8vLw== IHVuY29udmVudGlvbmFs IG1vbXM= IFJvaGluZ3lh IE9yY2hlc3RyYQ== IFBvdGlvbg== IGRpc2NyZWRpdA== IEZJTA== Zml4ZWQ= IERlZXI= ZG9p IERpbWVuc2lvbg== IGJ1cmVhdWNyYXRz ZXRlZW4= IGFjdGlvbkdyb3Vw b2ht IGJ1bXBz IFV0aWxpdHk= IHN1Ym1hcmluZXM= cmVuaGVpdA== cmVzZWFyY2g= IFNoYXBpcm8= IHNrZXRjaGVz IGRlY2VwdGl2ZQ== IFZpbA== ZXNhbWU= IEVzc2VudGlhbGx5 IHJhbXBhZ2U= aXNreQ== IG11dHRlcmVk dGhyaXRpcw== IDIzNg== ZmV0 YmFycw== IHB1cGls IFRob3U= b1M= c29uZw== IGZyYWN0dXJlZA== IHJldmVydA== cGljdHVyZQ== IGNyaXRlcmlvbg== dXNoZXI= IHJlcGVyY3Vzc2lvbnM= IFZpbnRhZ2U= IFN1cGVyaW50ZW5kZW50 T2ZmaWNlcnM= IGZsYWdnZWQ= IGJsYW1lcw== IGludmVyc2U= b2dyYXBoZXJz IG1ha2VzaGlmdA== IGRldm9pZA== IGZvc3NpbHM= IEFyaXN0b3RsZQ== IEZ1bmRz IGRlcGxldGVk IEZsdQ== IFl1YW4= IHdvZXM= IGxpcGlk IHNpdHU= cmVxdWlzaXRlcw== IGZ1cm5pc2g= IFNhbWFy IHNoYW1lZnVs IGFkdmVyc2VseQ== IGFkZXB0 IHJlbW9yc2U= IG11cmRlcm91cw== dWNrbGVz IEVTTA== IDMxNA== c2VudA== IHJlZGVm IENhY2hl IFB1cnM= aWdhbnM= IDQ2MA== IHByZXNjcmlwdGlvbnM= IGZyZXM= RnVjaw== b2NyYXRlcw== VHdlbnR5 IFdlaXJk IFRvZ2dsZQ== IENhbGxlZA== aXRpemVucw== IHBvdWx0cnk= IGhhcnZlc3Rpbmc= 44Km44K5 Qm90dG9t IGNhdXRpb25lZA== dG4= Mzk2 IE5pa2tp IGV2YWx1YXRpb25z IGhhcmFzc2luZw== IGJpbmRpbmdz IE1vbmV0YXJ5 IGhpdHRlcnM= IGFkdmVyc2FyeQ== dW50cw== IHNldGJhY2s= IGVuY3J5cHQ= IENhaXQ= IGxvd3M= ZW5nZXM= IE5vcm4= IGJ1bGJz IGJvdHRsZWQ= IFZveWFnZXI= MzE3 IHNwaGVyZXM= cG9saXRpY3M= IHN1YnRyYWN0 IHNlbnNhdGlvbnM= IGFwcGFsbGluZw== IDMxNg== IGVudmlyb25tZW50YWxseQ== IFNURU0= IHB1Ymxpc2hlcw== NTYw IGRpbGlnZW5jZQ== NDg0 IGFkdmlzZXM= IHBldHJvbA== IGltYWdpbmluZw== IHBhdHJvbHM= IEludGVnZXI= IEFzaGVz YWN0dXM= IFJhZGlhbnQ= IExU aXRhYmlsaXR5 aHRha2luZw== U2V0dGluZw== IG51YW5jZWQ= IFJlZWY= IERldmVsb3BlcnM= Tmk= cGllY2Vz OTkw TGljZW5zZQ== IGxvd2Vycw== IE90dG9tYW4= MzI3 b29v IHF1aXR0aW5n bWFya2V0cw== QmVoaW5k IGJhc2lu IGRvY3M= YW5pZQ== Zmxhc2g= Y3Rs IGNpdmlsaXplZA== IEZ1a3VzaGltYQ== Il0sIg== IEtT IEhvbmVzdGx5 YXJhdA== IGNvbnN0cnVjdHM= IExhbnM= IERpcmU= IExJS0U= IFRyb3VibGU= IHdpdGhob2xkaW5n IE9ibGl2aW9u IHNhbml0eQ== YW55YQ== Q29uc3Q= IGdyb2Nlcg== IENlbHNpdXM= IHJlY291bnRlZA== IFdpZmU= Qm9yZGVy YXRlcmVk aGFwcHk= IHNwb2lsZXI= IGxvZ2ljYWxseQ== SGFsbA== IHN1Y2NlZWRpbmc= IHBvbHltb3JwaA== IGF4ZXM= IFNob3RndW4= IFNsaW0= IFByaW5jaXBsZXM= IExldGg= YXJ0YQ== IHNjb3I= U2NyZWVuc2hvdA== IHJlbGF4YXRpb24= IyQjJA== IGRldGVycmVudA== aWRkeQ== IHBvd2VybGVzcw== IGxlc2JpYW5z IGNob3Jkcw== IEVkaXRlZA== c2VsZWN0ZWQ= IHNlcGFyYXRpc3Rz MDAwMg== IGFpcnNwYWNl IHR1cm5hcm91bmQ= IGN1bm5pbmc= UEFUSA== UG9seQ== IGJvbWJlZA== IHRpb24= eHM= IHdpdGhob2xk IHdhZ2Vk IExpYmVydGllcw== RmxhZw== IGNvbWZvcnRpbmc= NDU0 IElyaXM= YXJlcnM= IHJhZw== IHJlbG9jYXRlZA== IEd1YXJhbnQ= IHN0cmF0ZWdpY2FsbHk= IGdhbW1h dWJlcnR5 IExvY2toZWVk Z3Jlcw== IGdyaWxsZWQ= IExvd2U= c3RhdHM= IFJvY2tz IHNlbnNpbmc= IHJlbnRpbmc= IEdlb2xvZ2ljYWw= 2KfY b3Ryb3A= IHNldw== IGltcHJvcGVybHk= NDg2 IOKWoA== IHN0YXJ2aW5n IEJq RGlzY3Vzc2lvbg== MzI4 IENvbWJv IEZpeGVz TkFU IHN0cml2aW5n dGhvcmE= IGhhcnZlc3RlZA== IFBpbmc= IHBsYXlmdWw= IGF2ZW51ZXM= IG9jY3VwYXRpb25hbA== IHdha2Vz IENvdXJpZXI= IGRydW1tZXI= IEJyb3dzZXI= IEhvdXRo aXR1 IGFwcGFyZWw= cGFzdGU= IGh1bnRlZA== IFNlY29uZGx5 bGFpbg== WFk= IFBJTg== aWNvbnM= IGNvY2t0YWlscw== IHNpemFibGU= IGh1cmRsZXM= ZXN0aW5hbA== IFJlY3JlYXRpb24= IGVjbw== NjQ4 IERpZWQ= bWludA== IGZpbmdlcnByaW50cw== IGRpc3Bvc2U= IEJvc25pYQ== dHN5 MjIwMA== IGluc3BlY3RlZA== IEZvdQ== IGZ1c3M= IGFtYnVzaA== IFJhaw== IG1hbmlmZXN0ZWQ= UHJvc2VjdXQ= IHN1ZmZpY2U= cmVuY2Vz IGNvbXBlbnNhdGVk IEN5cnVz IGdlbnVz IFdvbHZlcmluZQ== IFRyZW5kcw== IGhpa2Vz IFNlZW4= IGVucm9s Q29sZA== IHBvbGl0ZWx5 IFNsYXY= IFJ1cGVydA== IGV5ZXdpdG5lc3M= IEFsdG8= IHVuY29tcA== IHBvc3Rlcmlvcg== TXVzdA== IEhlcno= IHByb2dyZXNzaXZlbHk= IDIzNA== IGluZGlmZmVyZW5jZQ== IEN1bm5pbmdoYW0= IGFjYWRlbWlh IHNld2Vy IGFzdG91bmRpbmc= IEFFUw== cmF0aGVy IGVsZGVzdA== IGNsaW1icw== IEFkZHM= IG91dGNyeQ== IGNvbnRhZw== IEhvdXNlcw== IHBlcHQ= IE1lbGFuaWE= aW50ZXJlc3RlZA== IFVDSA== IFJvb3Rz IEh1YmJhcmQ= IFRCRA== IFJvbWFuaWFu ZmlsZW5hbWU= U3RvbmU= IEltcGw= IGNocm9tb3NvbWU= Q2xl ZHg= IHNjcmFtYmxlZA== IFB0 IDI0Mg== T1BMRQ== IHRyZW1lbmRvdXNseQ== U3RyZWV0 IGNyYXZpbmc= IGJ1bmRsZWQ= IFJH cGlwZQ== IGluanVyaW5n IGFyY2FuZQ== UGFydGljaXA= IEhlcm9pYw== c3R5 IHRvcHBpbmc= IFRlbXBlc3Q= cmVudGljZXM= Ymg= IHBhcmFub2lh IFVuaWNvZGU= IGVncmVnaW91cw== IFwn IE9zd2FsZA== IGdyYXZlbA== IFNpbXBzb25z IGJsYW5k IEd1YW50YW5hbW8= V3JpdGVy bGluZXJz IERpY2U= SkM= IHBhcml0eQ== IHNpZGVk IDIzNw== IFB5cnJoYQ== YXR0ZXJz ZGs= RmluZQ== Y29tcGFu IGZvcm11bGF0ZWQ= IElkb2w= aWxlcnM= aGVtb3Ro IEZhdg== IGludHJ1c2lvbg== IGNhcnJvdHM= IExheWVy IEhhY2tlcg== IC0tLS0tLS0tLS0tLS0tLS0= IG1vZGVyYXRpb24= 6YE= b2NvYw== IGNoYXJhY3Rlcml6ZQ== IFRlcmVzYQ== IHNvY2lvZWNvbm9taWM= IHBlcms= IFBhcnRpY2lwYXRpb24= dHJhaW5pbmc= IFBhdWxv cGh5cw== IHRydXN0d29ydGh5 IGVtYm9kaWVk IE1lcmNo Y3VycmVuY3k= IFByaW9yaXR5 IHRlYXNpbmc= IGFic29yYmluZw== IHVuZmluaXNoZWQ= IENvbXBhcmlzb24= IGRpc3BsZQ== d3JpdGVycw== IHByb2Zlc3Npb25z IFBlbmd1aW4= IGFuZ3JpbHk= IExJTks= Njg4 IENvcnJlc3BvbmQ= IHByZXZhaWxlZA== IGNhcnRlbA== bHA= YXNtcw== IFJlZGVtcHRpb24= IElzbGFtaXN0cw== ZWZmZWN0cw== ZG9zZQ== IExhdHRlcg== IEhhbGlmYXg= IHZhcw== IFRvcGljcw== IE5hbWVk YWR2ZXJ0aXNpbmc= enph SUNFUw== IHJldGFyZGVk YWNoYWJsZQ== IFB1cHBldA== IEl0ZW1MZXZlbA== IHJldHJhY3Q= IGlkZW50aWZpYWJsZQ== QWFyb24= IEJ1c3Rlcg== c29s aGVsbGU= YXNzZW1i SG9wZQ== cmFuZ2Vk QmE= IFB1cmNo 6YA= IFNpcmk= IGFycml2YWxz IDE5MTI= IHNob3J0ZW5lZA== IDMxMg== IGRpc2NyZXBhbmN5 IFRlbXBlcmF0dXJl IFdhbHRvbg== IGtpbmRlcmc= cG9saXQ= IHJlbWl4 IGNvbm5lY3RvcnM= 44OY44Op IEthemFraHN0YW4= ZG9taW5hdGVk IHN1Z2Fycw== aW1ibGU= IFBhbmlj IERlbWFuZA== IENvbG9ueQ== b25lbg== IE1FUg== Nzc1 dXJpYQ== YXphYXI= IERlZ3JlZQ== UHJp IHN1bnNoaW5l IDI1MQ== IHBzeWNoZWRlbGlj IGRpZ2l0YWxseQ== IEJyYXVu IHNoaW1tZXI= IHNoYXZl IFRlbGVzYw== IEFzdHJhbA== IFZlbmV6dWVsYW4= IE9H IGNyYXdsaW5n SW50ZWc= IEZlYXRoZXI= IHVuZm9sZGluZw== IGFwcHJvcHJpYXRpb24= IOijj+g= IE1vYmlsaXR5 IE5leQ== LS4= YmlsdA== TElO IFR1YmU= IENvbnZlcnNlbHk= IGtleWJvYXJkcw== IENhbw== IG92ZXJ0aA== IGxhdXJl Pj5c IFZpcGVy YWNoYQ== T2Zmc2V0 IFJhbGVpZ2g= IEphZQ== Sm9yZGFu anA= IHRvdGFsaXRhcmlhbg== Q29ubmVjdG9y IG9ic2VydmVz IFNwYXJ0YW4= IEltbWVkaWF0ZWx5 IFNjYWw= Q29vbA== IHRhcHM= IHJvYXI= UGFzdA== IGNoYXJz IEJlbmRlcg== IFNoZWxkb24= IHBhaW50ZXI= IGJlYWNvbg== IENyZWF0dXJlcw== IGRvd250dXJu IGhpbmRlcg== IEFuZHJvbWVkYQ== w5s= Y2NvbGk= IEZpdG5lc3M= ZXRyaWNhbA== IHV0aWxpemVz IHNlbmF0ZQ== IGVuc2VtYmxl IGNoZWVycw== VFc= IGFmZmx1ZW50 a2ls cnlsaWM= b3JkZXJpbmc= Q29tcHV0ZXI= IGdydWVzb21l b3N0aWNz IFViaXNvZnQ= IEtlbGxleQ== IHdyZW5jaA== IGJvdXJnZW9pc2ll SUJMRQ== IFByZXN0b24= d29ybg== YXJpc3Q= cmVhdGluZw== IHN0YWluZWQ= YXJpbmU= IHNsaW1l RU5O IGNoZXN0cw== IGdyb3VuZHdhdGVy YW5ub3Q= IFRyYXk= IExvY2tl IENUUg== IGR1ZGVz IEV4dGVybmFs IERlY29kZXI= IHBhcmFtZWQ= IE1lZGxpbmU= ODA5 IERpbm5lcg== cnVwYWw= Z3o= IEd1bQ== IERlbW8= amVl IGRo YmVybWFu YXJjaHM= IGVucXU= IEVwc3RlaW4= IGRldmFzdGF0aW9u IGZyaWVuZHNoaXBz IEFyZA== IDIzMQ== IFJ1Ymlu IERpc3RhbmNl IHNwdXJyZWQ= IGRvc3NpZXI= IG92ZXJsb29raW5n XFxcXFxcXFxcXFxcXFxcXA== Rm9yZXN0 IENvbWVz XCIs IElyYW5pYW5z IGZpeHR1cmVz TGF1Z2hz IGN1cnJ5 IEtpbmdzdG9u IHNxdWFzaA== IGNhdGFsb2d1ZQ== IGFibm9ybWFsaXRpZXM= IGRpZ2VzdGl2ZQ== Li4uLi4uLi4u IHN1Ym9yZGluYXRl b2dseQ== IDI0OQ== TWlkZGxl IG1hc3NhYw== IGJ1cmdlcnM= IGRvd25zdGFpcnM= IDE5MzE= Mzk0 IFZH IGxhc2Vycw== IFNpa2g= IEFsZXhh ZGVyaXZlZA== IGN5Y2xpc3Q= 44Gu6a2U b25lbGluZXNz ISEhISEhISE= IGJ1ZmZz bGVnYXRl IHJhcGluZw== IHJlY29tbWVuZGluZw== cm9yZWQ= IG11bHRpY3VsdHVyYWw= dW5pcXVl IGJ1c2luZXNzbWVu IHVuZWFzeQ== IE1BUA== IGRpc3BlcnNlZA== Y2lwbGluZQ== SmVzcw== IEtlcmFsYQ== 5ac= IGFic3RyYWN0aW9u U3Vydg== VWg= IHByaW50ZXJz aWph b3dkZXI= IGFuYWxvZ291cw== IEFTUA== YWZlcg== IHVuZm9sZGVk IGxldmVsaW5n IGJyZWFjaGVk IEhlYXJpbmc= IG5hdA== IHRyYW5zbGF0aW5n Y3JpdGljYWw= IGFudGFnb25pc3Q= IFllc3RlcmRheQ== IGZ1enp5 d2FzaA== bWVyZQ== IGJld2lsZA== IE1hZQ== VmlyZ2lu cGhyYXNl IHNpZ25hbGVk IEhJR0g= IHByb3Rlc3Rlcg== IGdhcm5lcg== dW5rbm93bg== IGtheQ== IGFiZHVjdGVk IHN0YWxraW5n YW1u IGRlc2VydmluZw== IFJpdg== IEpvcmdl IHNjcmF0Y2hpbmc= IFNhdmluZw== aXBpbmc= IHRlYXNl IG1pc3Npb25hcnk= IE1vcnJvdw== VElNRQ== UHJlc2VudA== IGNoZW1vdGhlcmFweQ== dGVybmVzcw== IEhvbWVz IFB1cmR1ZQ== IHN0YXVuY2g= IFdoaXRuZXk= IFRIRVJF zrw= aWF0dXM= IEVybmVzdA== IERlcGxveQ== IGNvdmV0ZWQ= Rk1M IERpYWxvZ3Vl IGV4aXRlZA== ZnJ1aXQ= IG5lcmQ= IjoiIiwi IHZpdm8= cnVseQ== NDYw IEFtZW4= cmVoZW5zaWJsZQ== IOKY RElS IGFkaGVyZW5jZQ== IGNoZXc= IENva2U= IFNlcmdlaQ== ZGlnaXRhbA== IE5lY2s= Z2VudGx5 ZW50aGFs Lyk= IHdlYXJ5 IGd1aXNl IENvbmNvcmQ= IE9uaW9u YXRjaGVy IGJpbmdl IERpcmVjdGl2ZQ== IG1hbm5lZA== YW5zaw== IGlsbHVzaW9ucw== IGJpbGxpb25haXJlcw== Mzgz b2x5bg== b2R5bmFtaWM= IFdoZWF0 IEFsaWM= IGNvbG91cmVk IE5BRlRB YWJv IG1hY3Jvcw== aW5kZXBlbmRlbnQ= c3dlZXQ= IHNwYWM= IEthYnVs IMQ= ZW1l IGRpY3RhdGVk IHNob3V0cw== PXs= IHJpcHBpbmc= IFNoYXk= IENyaWNrZXQ= ZGlyZWN0ZWQ= IGFuYWx5c2Vk IFdBUlJBTlQ= YWdvbnM= IEJsYXplcnM= IGNoZWVyZWQ= IGFyaXRobWV0aWM= IFRhbno= Mzcz IEZsYWdz IDI5NQ== IHdpdGNoZXM= IEluY2x1ZGVk IEdhaW5lZA== IEJsYWRlcw== R2Ft IFNhbWFudGhh IEF0bGFudGlz IFByYXR0 IHNwb2lsZWQ= IElC IFJhbWlyZXo= UHJvYmFibHk= cmVybw== IE5n IFdhcmxvY2s= dHA= IG92ZXJoZQ== IGFkbWluaXN0cmF0aW9ucw== IHRpbnQ= IHJlZ2ltZW50 IHBpc3RvbHM= IGJsYW5rZXRz IGVwaXN0 IGJvd2xz IGh5ZHJhdWxpYw== IGRlYW4= IGp1bmc= IGFzY2VuZA== NzA1 IFNhbnRpYWdv w64= IHVuYXZvaWQ= IFNoYW1hbg== cmVi IHN0ZW1taW5n OTk4 IE1H c3RpY2tz ZXN0aGVzaWE= RVJP IG1vcmJpZA== IEdyaWxs IFBvZQ== YW55bA== IGRlbGV0aW5n IFN1cnZlaWxsYW5jZQ== IGRpcmVjdGl2ZXM= IGl0ZXJhdGlvbnM= IFJveA== IE1pbGt5 RmF0aGVy IHBhdGVudGVk NDQ3 IHByZWN1cnNvcg== IG1haWRlbg== IFBoZW4= IFZlZ2Fu IFBhdGVudA== S2VsbHk= UmVkZGl0b3I= IG5vZHM= IHZlbnRpbGF0aW9u IFNjaHdhcno= IHdpemFyZHM= IG9taW5vdXM= IEhlYWRz IEJH IGx1bWJlcg== IFNwaWVs IGlzRW5hYmxlZA== IGFuY2VzdHJhbA== IFNoaXBz IHdyZXN0bGVy cGhp IHl1YW4= IFJlYmVsbGlvbg== IGljZWJlcmc= IG1hZ2ljYWxseQ== IGRpdmVyc2lvbg== YXJybw== eXRobQ== IFJpZGVycw== IFJvYmJpZQ== IEthcmE= IE1haW50ZW5hbmNl IEhlcmI= IGhhcm1z cGFja2Vk IEZlaW5zdGVpbg== IG1hcnJ5aW5n IGJsZW5kaW5n IFJhdGVz IDE4ODA= IHdyaW5r IFVuY2g= IFRvcmNo ZGVzY3JpYmVk IGh1bWFub2lk aWxpdGF0aW5n IENvbnY= IEZlbGQ= SUdIVFM= IHdoaXN0bGVibG93ZXI= b3J0bXVuZA== ZXRzeQ== YXJyZXR0 IE1vbm8= IElrZQ== IENOQkM= IFdBWQ== IE1ETUE= IEluZGl2aWR1YWxz IHN1cHBsZW1lbnRhbA== IHBvd2VyaG91c2U= IFN0cnU= Rm9jdXM= YXBoYWVs IENvbGxlZw== YXR0aQ== WkE= IHBlcmVubg== IFNpZ25hdHVyZQ== IFJvZG5leQ== IGN1YmVz aWRkbGVk IERhbnRl IElOVg== aWxpbmd1YWw= IEN0aA== IHNvZmE= IGludGltaWRhdGU= IFJvZQ== IERpcGxvbQ== IENvdW50cmllcw== YXlzb24= IGV4dHJhZGl0aW9u IGRpc2FibGluZw== IENhcmRpZmY= IG1lbW9yYW5kdW0= IFRyYWNl ID8/Pw== c2VjdG9y IFJvdWhhbmk= IFlhdGVz IEZyZWV6ZQ== IGJsYWRkZXI= TW90b3I= IFByb21pc2U= YW50YXN5 IGZvcmVzZWVhYmxl IENvbG9nbmU= Y29udGFpbmVy IFRyZWVz IEdvcnM= IFNpbmNsYWly IGJhcnJpbmc= a2V5ZQ== IHNsYXNoZWQ= IFN0YXRpc3RpY2Fs 6Yc= IOKWug== QWxsb3dz IGh1bWlsaXR5 IGRyaWxsZWQ= IEZ1cm4= NDQz IHNld2FnZQ== IGhvbWVwYWdl IGNvdXJ0eWFyZA== IHZpbGU= IHN1YnNpZGlhcmllcw== YWpv ZGlyZWN0b3J5 IGFtbW9u VmVycw== Y2hhcmdlcw== IH19 IENoYWlucw== IDI0Ng== bm9i IHBlcmNlcHQ= IGdyaXQ= IGZpc2hlcm1lbg== IElyYXFpcw== IERJU1RS IEZVTEw= IEV2YWx1YXRpb24= Z3JhcGg= YXRpYWw= IGNvb3BlcmF0aW5n IG1lbGFu IGVubGlnaHRlbmVk IGFsaQ== dGFpbGVk IHNhbHV0ZQ== IHdlYWtlc3Q= IEJ1bGxkb2dz VUE= IEFsbG95 IHNlbWVu b2NlbmU= IFdpbGxpYW1zb24= c3By LOKAlA== IEdG aXR0ZW5z QmVhdA== IEp1bms= aXBoYXRl IEZhcm1lcnM= IEJpdGNvaW5z aWdlcnM= ZGg= IExveWFs cGF5ZXI= IGVudGVydGFpbmVk IHBlbm5lZA== IGNvdXBvbg== UXVldWU= IHdlYWtlbmluZw== Y2Fycnk= IHVuZGVyZXN0aW1hdGU= IHNob290b3V0 IGNoYXJpc21hdGlj IFByb2NlZHVyZQ== IHBydWRlbnQ= aW5hbmNlcw== IHJpY2hlcw== IGNvcnRpY2Fs IHN0cmlkZXM= IGRyaWI= IE9pbGVycw== NTQw IFBlcmZvcm0= IEJhbmdrb2s= IGV1dGg= U0VS IHNpbXBsaXN0aWM= dG9wcw== Y2FtcGFpZ24= UXVhbGl0eQ== IGltcG92ZXJpc2hlZA== IEVpc2VuaG93ZXI= IGF1Z21lbnQ= IEhhcmRlbg== IGludGVydmVuZWQ= IGxpc3RlbnM= IEtvaw== IHNhZ2U= IHJ1YmJpc2g= IERlZA== IG11bGw= cGVsbGluZw== IHZpZGVvdA== UHJvZHVjdGlvbg== REo= bWlhaA== IGFkYXB0YXRpb25z IG1lZGljYWxseQ== IGJvYXJkZWQ= IGFycm9nYW5jZQ== IHNjcmFwcGVk IG9wcHJlc3M= Rk9STUFUSU9O IGp1bmN0aW9u NDE1 RUVFRQ== U2tpbGw= IHN1YmR1 IFN1Z2dlc3Q= IFBldHQ= IGxldHQ= IE1hbmlw IENhZg== IENvb3BlcmF0aW9u VGhlcg== IHJlZ2FpbmVk tuY= cmVmbGVjdA== IHRodWdz IFNoZWxieQ== IGRpY3RhdGVz IFdlaW5lcg== IEhhbGU= IGJhdHRsZWdyb3VuZA== c2NoaWxk IGNvbmRvbA== aHVudA== b3NpdG9yaWVz IGFjY3VzZXM= RmlsZW5hbWU= IHNocmk= IG1vdGl2YXRl IHJlZmxlY3Rpb25z TnVsbA== IExvYmJ5 pbU= IFNBVEE= IEJhY2t1cA== 0YM= bmlu IENvcnJlY3Rpb24= IGp1aWN5 dXRyYQ== IFByaWM= IHJlc3RyYWluaW5n IEFpcmJuYg== IEFycmVzdA== IGFwcHJvcHJpYXRpb25z IHNsb3Blcw== IG1hbnNsYXVnaHRlcg== IHdvcmtpbmdz IEh1c3M= IEZyZXk= TGVhdmU= IEhhcm1vbnk= IEZlZGVy IDQzMA== IHRyZW5jaA== IGdsYWRseQ== IGJ1bGxwZW4= IEdhdQ== Ym9uZXM= IGdyb292ZQ== IHByZXRleHQ= 44WL IHRyYW5zbWl0dGVy IENvbXBvbmVudA== IHVuZGVyYWdl IEVtcGlyZXM= VGlsZQ== IG95 IE1hcnZpbg== IENBUw== IGJsb3Nz IHJlcGxpY2F0ZWQ= IE1hcmluZXJz TWFyY3Vz IEJsb2Nrcw== IGxpYmVyYXRlZA== IGJ1dHRlcmZseQ== RmVlbA== IGZlcm1lbnRhdGlvbg== IHlvdXR1YmU= IG9mZmVuZA== IFRlcm0= cmVzaXN0 IGNlc3NhdGlvbg== IGluc3VyZ2VuY3k= IGJpcg== IFJhaXNl NTk1 IGh5cG90aGVzZXM= NTAy IHBsYXF1ZQ== b2NyYXQ= IGphY2tldHM= IEh1ZmZQb3N0 YW1vbmc= IGNvbmZlcg== NDg3 IExpbGx5 IGFkYXB0aW5n IEZheQ== IHNob3ZlZA== dmVj IHJlZmluZQ== IGdvbg== IGd1bm1lbg== emFp IFNodXR0bGU= IEl6YW4= IDE5MTM= IHBsZXRob3Jh wrfCtw== IDUxMA== IHB1YmVydHk= IDI0MQ== IFdlYWx0aA== IEFsbWE= IE1FTQ== IEFkdWx0cw== Q2Fz cHJpc29u UmFjZQ== IHdhdGVycHJvb2Y= IGF0aGxldGljaXNt IGNhcGl0YWxpemU= IEp1aWNl IGlsbHVtaW5hdGVk IFBhc2NhbA== IGlycml0YXRpb24= IFdpdG5lc3Nlcw== YWRsZQ== IEFzdHJv IGZheA== IEVsdmlz UHJpbWFyeQ== IExpY2g= IEVsdmVz IHJlc2lkaW5n IHN0dW1ibGU= MzE5 IFBLSw== IGFkdmVyc2FyaWVz RE9T IFJpdHVhbA== IHNtZWFy IGFyc29u aWRlbnRhbA== IHNjYW50 IG1vbmFyY2h5 IGhhbGZ0aW1l IHJlc2lkdWU= IGluZGlnbg== IFNoYXVu IEVsbQ== YXVyaQ== QWZm V0FUQ0g= IEx5b24= aGVscHM= MzYx IGxvYmJ5aXN0 IGRpbWluaXNoaW5n IG91dGJyZWFrcw== IGdvYXRz ZmF2b3JpdGU= IE5haA== c29uaWFu IEJvb3N0ZXI= IHNhbmRib3g= IEZhcmU= IE1hbHRh IGF0dFJvdA== IE1PUg== bGRl IG5hdmlnYXRpbmc= VG91Y2g= IHVudHJ1ZQ== IERpc2FzdGVy IGx1ZGljcm91cw== UGFzc3dvcmQ= IEpGSw== YmxvZ3Nwb3Q= NDE2 IFVOREVS ZXJuYWw= IGRlbGF5aW5n VE9Q IGltcGxhbnRz IEFWRw== IEh1Z2U= YXR0cg== IGpvdXJuYWxpc3RpYw== IFBleXRvbg== IElB UmFw Z29hbA== IFByb2dyYW1tZQ== IHNtYXNoaW5n d2l2ZXM= cHJpbnRsbg== IFBsYWd1ZQ== aW51cw== RUVQ IGNydWlzZXI= IFBhcmlzaA== dW1pbml1bQ== IG9jY3VwYW50cw== IEppaGFk bW9w IHBpbnQ= IGhlY3Q= IE1lY2Nh ZGlyZWN0b3I= IEZ1bmRpbmc= IE1peGVk IHN0YWc= VGllcg== IGd1c3Q= IGJyaWdodGx5 b3JzaQ== IHVwaGlsbA== UkQ= IGxlc2lvbnM= IEJ1bmR5 bGl2aW91cw== IGJpb2xvZ2lzdA== IEZhY3VsdHk= IEF1dGhvcml6YXRpb24= IDI0NA== QWxsb3c= 77g= IEdpdWw= IHBlcnRpbmVudA== b3RhdXI= ZXNzZQ== IFJvb2Y= IHVubWFubmVk MzUx IFNoYWs= IE9yaWVudA== IGVuZGFuZ2Vy RGly IHJlcGxlbg== ZWRpZW50 IHRhaWxvcg== IGdhZGdldHM= IGF1ZGlibGU= 4piG TmljZQ== IGJvbWJhcmQ= IFJhcGU= IGRlZmlhbmNl IFRXTw== IEZpbGlwaW5v IHVuYWZmZWN0ZWQ= ZXJ2YXRpdmVz IHNvYXJlZA== IEJvbHRvbg== IGNvbXByb21pc2luZw== IEJyZXdlcnM= UkFM IEFITA== aWN5Y2xl IHZhbXBpcmVz IGRpcHBlZA== b3llcg== IFhJSUk= IHNpZGV3YXlz IFdhc3Rl IERpc3M= IOKUnOKUgOKUgA== JC4= IGhhYml0YXRz IEJlZWY= dHJ1dGg= dHJhaW5lZA== c3BsaXQ= UnVz QW5keQ== IEJyYW0= UkVQ cGlk 6KOF IE11dGFudA== QW5pbQ== IE1hcmluYQ== IGZ1dGlsZQ== aGlnaGVzdA== ZnJlcXVlbmN5 IGVwaWxlcHN5 IGNvcGluZw== IGNvbmNpc2U= IHRyYWNpbmc= IFNVTg== cGFuZWw= IFNvcGhpZQ== IENyb3dsZXk= IEFkb2xm IFNob290ZXI= IHNoYWt5 IElH IExpZXM= IEJhcmJlcg== cGtn IHVwdGFrZQ== IHByZWRhdG9yeQ== VUxUUw== Lyoq IGludG94aWNhdGVk IFdlc3Ricm9vaw== b2RkZXI= aGVtZW50 IGJhc2VtYW4= QVBE c3RvcmFnZQ== IEZpZnR5 ZWRpdG9y R0VO VVRJT04= aXJ0aW5n IHNld2luZw== cmlmdA== IGFnb255 IFNhbmRz IDI1NA== Q2FzaA== IGxvZGdl IHB1bnQ= TmF0dXJhbA== IElkZWFz IGVycm9uZW91cw== IFNlbnNvcg== IEhhbm5pdHk= IDE5MjE= IG1vdWxk IEdvbg== a2F5YQ== IGFub255bW91c2x5 IEtFWQ== IHNpbXVsYXRvcg== V2ludGVy IHN0cmVhbWVk NTA3 PyIs IHRlYXNlZA== IGNvZWZmaWNpZW50 IHdhcnRpbWU= IFRIUg== Jycu IEJhbmtpbmc= bXBpcmU= IGZhbmRvbQ== IGxpYQ== R2E= IGRvd25oaWxs IGludGVycHJldGluZw== SW5kaXZpZHVhbA== Tm9ybQ== IGplYWxvdXN5 Yml0Y29pbg== IHBsZWFzdXJlcw== IFRveXM= IENoZXZyb2xldA== IEFkdmlzb3I= SVpF IHJlY2VwdGlvbnM= NzA2 Q3Jv IDI2Mg== IGNpdHJ1cw== aXJ1 UmV2aWV3ZXI= amVjdGVk VUVT YW56 MTk4MQ== IFdvcmtlcg== IGNvbXBsaWVk b3Jlc2NlbnQ= Y29udGluZW50YWw= VG9u IFByaXNt IFNoZWVw IDI4OA== bm94 IFZvZw== T3Jk IHJlYWxtcw== dGVr IGlycmlnYXRpb24= IGJpY3ljbGVz IGVsZWN0cm9uaWNhbGx5 cG9seQ== dGFsbA== KCkpOw== IGFlc3RoZXRpY3M= IEludGVncmF0ZWQ= RXhwbG9yZQ== IGR1bms= NDc2 cGFpbg== IEphY3F1ZXM= IERtaXQ= RnJhbWVz IHJldW5pdGVk IGh1bWlk RHJv UG9saXRpY2Fs IHlvdXRoZnVs IGVudGFpbHM= IG1vc3F1aXRv MzYz c3BlY2llcw== IGNvb3JkaW5hdGluZw== IE1heWhlbQ== IE1hZ251cw== TW91bnQ= SW1wcm92ZWQ= IFNUQVRF QVRUTEU= IGZsb3dlZA== IHRhY2tsZWQ= IGZhc2hpb25lZA== IHJlb3JnYW4= aXZhcmk= ZmluZ2Vy IHJlbHVjdGFudGx5 ZXR0aW5n IFZhbmQ= eW91bmc= IEdhcmxhbmQ= IHByZXN1bXB0aW9u IGFtZW5pdGllcw== IFBsZWFzYW50 b25lbnRpYWw= IE94eQ== IG1vcmFscw== IFlhaA== UmVhZHk= U2ltb24= RW5o RGVtb24= IGNsaWNo TW9uaXRvcg== IERV IHdlbGNvbWVz IHN0YW5kb3V0 IGRyZWFkZnVs IGJhbmFuYXM= IGJhbGxvb25z aG9vdGluZw== YmFzaWM= IHN1ZmZpeA== IGR1bHk= Y2Fubw== Q2hhaW4= YXRvcw== IGdlb3BvbGl0aWNhbA== ICgm IEdlbWluaQ== w4PDgsODw4LDg8OCw4PDgsODw4LDg8OCw4PDgsODw4LDg8OCw4PDgsODw4LDg8OCw4PDgsODw4LDg8OCw4PDgsODw4LDg8OCw4PDgsODw4LDg8OCw4PDgsODw4LDg8OCw4PDgsODw4LDg8OCw4PDgsODw4LDg8OCw4PDgsODw4I= IGFjcXVpdHRlZA== THVjaw== cHJvdGVjdA== MTAyNA== IHNjYXJjaXR5 IG1pbmRmdWxuZXNz ZWNpZGVk RE4= cHJpbWU= IFByZXNpZGVudHM= IFZJREVP ICjiiJI= YWRkb2Nr Tk9S IFBydQ== cHVu IExPTA== KSkpKQ== IExpcXU= IFNBUw== IHN0eWxpbmc= IHB1bmlzaG1lbnRz IG51bWI= IGFzY2VydGFpbg== IFJvY2tpZXM= Zmx1 VGh1bWJuYWls IHBlcnBldHJhdGVk IFNlbWk= IGRpc2FybQ== IE9sZGVy IEV4Y2VwdGlvbg== IGV4cG9uZW50aWFsbHk= IENvbW11bml0aWVz IGFib2xpc2g= IFBhcnRuZXI= cHRvbXM= IDc3Nw== IEZvbGV5 IENhc2Vz IGdyZWFzZQ== IFJlYmlydGg= R3JvdW5k IDsp IERvY3RyaW5l aWtpbmk= WWU= IEJsb3Nzb20= IHBlcnNpc3Rz YmlsbA== IGluZnVzaW9u IGJ1ZGRpZXM= OTEx IFBhdGllbnQ= IGRlbW9z IGFjcXVhaW50YW5jZQ== IFBhdw== YXRhcmk= IHhtbA== IGZhc2NpbmF0aW9u IFNlcnZl z4I= YnJhbmRlZA== IGF6 UmV0dXJucw== IG92ZXJzaGFkb3c= IHJvYW0= IHNwZWVkeQ== bnVtYmVyZWQ= aGVsaWFs IGRpc2NpcGxl IGFzc3VyYW5jZXM= Z2l2ZW4= cGVjdGluZw== IE5hdGFsaWU= 55Sw IG1vc3F1aXRvZXM= cm90ZWlu IG51bWVyaWM= IGluZGVwZW5kZW50cw== IHRyYW5zaXRpb25hbA== IHJlYWN0aW9uYXJ5 IE1lY2hkcmFnb24= ZG9jdG9y IHNob3J0ZXN0 IHNlcXVlbnRpYWw= IEJhYw== IEFjY291bnRz 44GM YWNoeQ== cmFjdGl2ZQ== IFJlZ2ltZW50 IGJyZWF0aHRha2luZw== ZmZpY2llbmN5 IEJhdGVz IDMxMQ== IHdhcmRyb2Jl ZnRz IEJlcms= U2ltcGx5 IFJpdmVyc2lkZQ== aXZlcmluZw== aWRlbnRpYWw= bHVjZW50 IGVucmljaGVk IENvbnZlcg== IEdpdmluZw== 44OZ IGxlZ2FsaXpl IEZUQw== IGZyZWFraW5n TWl4 IHRlcnJlc3RyaWFs ZXNpYW4= Y2llbnRz V2luZw== TE9BRA== IGxlZGdl IFZpb2xlbnQ= IE1ldGFsbA== IDMwOA== IHNvdXRoZWFzdGVybg== aGV0dG8= TWVhdA== IHNsb3dkb3du IHJldHJlYXRlZA== SmVyZW15 ZW5kYXM= KioqKio= ZXJpYw== IHJlaW5z b3BwYWJsZQ== IEh1bWFuaXR5 ZWFyYW5jZXM= cmlnYW4= Q2FtZXJh IHdhaXZlcnM= c29j IGFsdGVyYXRpb24= dHJhbnNmb3Jt IENlbWV0ZXJ5 NTA2 IGluZGVmaW5pdGU= IHN0aW11bGF0aW5n eWc= NjAz IFNvcA== IGRlc2NyaXB0aXZl UGhhc2U= IEVkbXVuZA== IHBuZXVtb25pYQ== dmVudHVz QW1i IGxhYm9yYXRvcmllcw== IEV4Y2x1c2l2ZQ== dWdhcg== V2VyZQ== IG1hbGZ1bmN0aW9u IGhvbW9zZXh1YWxz IC0tLS0tLS0= dW5p IHR1cmJpbmVz IEVxdWl0eQ== RHU= IG1pbmRlZA== IFJI IEJsYWNraGF3a3M= IGZlYXRz IDE3MDA= cmVwbA== MzYy bGFkZW4= IGluZGlzcGVuc2FibGU= bHlzcw== dHRp IHJlZWw= IGRpdmVydGVk IGxpa2VuZXNz IHN1YnNjcmlwdGlvbnM= IGZpbmdlcnQ= IGZpbHRoeQ== ZGVzdHJ1Y3Q= ZHJhZnQ= IEJlcm5hcmRpbm8= bGF1bmNo IHBlcnBsZXg= IFNVTQ== Y2FyYg== IHN3ZWF0ZXI= IFZlbnR1cmU= IEphZw== IENlbGVi IFZvdGVycw== IHN0ZWFkZmFzdA== IGF0aGxldGljcw== IEhhbnNvbg== IERyYWM= VHJhY2tlcg== IGNvbW1lbmQ= IFByZXNpZGVuY3k= IERJRA== aW5mb3JtZWQ= IHdlYnBhZ2U= UHJldHR5 IGZvcmNlZnVsbHk= 44OD44Kv IHJlbG9jYXRpb24= IHNhdGlyZQ== 4ok= IFN1bmRlcmxhbmQ= 5oQ= Vm9pY2U= Pz8/Pz8/Pz8= IGluZm9ybWFudA== IGJvd2Vs IFVuaWZvcm0= IC4uLiI= IHB1cmdl IHBpY25pYw== IFVtYg== IFVQREFURQ== IFNhcHBoaXJl IFN0YWxs bGVhcm4= IG9iamVjdGl2ZWx5 IG9ibGl0ZXI= IGxvb3Bob2xl IGpvdXJuZXlz IG9taXNzaW9u UHJvcw== IFNpZG5leQ== cGxvbWE= IHNwcmF5ZWQ= IGd1cnU= IHRyYWl0b3I= IHRpbWV0 IHNuYXBwaW5n IFNldmVudA== dXJuYWw= IFVraXA= IGJvd2Vk cG9yYWw= bGliZXJhbA== Um9z UXVlc3Rpb25z aU9T IHN1bW1hcml6ZQ== U1RBVA== IDE4NTA= YXBlc3Q= IGxlbmRlcg== IFZhcmlhYmxl YnJpbmdpbmc= IExPUkQ= LCk= IGNvbGxhcHNlcw== eGlldHk= IE5lZA== WUQ= IFNjaGE= IGFudGlib2R5 IGRpc2JhbmQ= eXJl aWxsdXNpb24= IHJvdmVy c2hlZA== IEhpcm9zaA== Y2Np IGNhbGFt IE1vcnRvbg== UGludGVyZXN0 IDE5Mjg= IEV1cmFz b3JkZXM= IGZlbmNlcw== IEludmVudG9yeQ== IFZhbGVuY2lh IFVk IFRpZmY= IHNxdWU= IHF1b3RhdGlvbg== IHRyb3VibGVzb21l ZXJrZXI= UVVFU1Q= IEtpbmdkb21z c291dGg= IGxldnk= UHJpbmNl IFN0aW5n IG5pY2tuYW1lZA== IGFwcGU= IHBob3RvZ3JhcGhpYw== IGNvcnB1cw== cmVmZXJlbmNl IFRyb2c= VW50 KT0o IExhdHZpYQ== IGFjdGl2YXRpbmc= IGxpY2Vuc2Vl IGRpc3Bhcml0aWVz IE5ld3NsZXR0ZXI= 44OD44OI IGZyZWVpbmc= IEplZXA= IFBlcmNlcHRpb24= aW5zaw== IHNpbGljb25l IEhheWRlbg== TGVhbg== IFN1enVraQ== aWJyYXJpYW4= NjY4 IHNwb3I= IGNvcnJlbGF0aW9ucw== YWdoZXR0aQ== IHR1YmVy IElQQ0M= aWx1cw== IFZ1 IHdlYWx0aGllc3Q= IENhcmJ1bmNsZQ== YW56YQ== IGZvb2xlZA== IFp1cg== IGRhZGR5 cmFubw== aWxpYW4= IGtub2Nrb3V0 Zm1hbg== cmVxdWlyZWQ= IFdpa2lsZWFrcw== IER1ZmZ5 T05U IGluc29s IE9iamVjdHM= IGJvdQ== IE5vcmRpYw== IEluc2VydA== c2Nhbg== IGRhbmNlcnM= IGlkaW90cw== bWFqb3JpdHk= IE5ldmlsbGU= IEZyZWVCU0Q= IHRhcnQ= cGFuaWM= Njkw IGNvY29h IHNhbXBsZWQ= IGxvb2t1cA== SW5kdXN0 IGluamVjdGlvbnM= Z2VucmU= IGF1 IHJvYWR3YXk= IGdlbml0YWxz S2luZA== IEV4YW1pbmVy IFlheg== RnJlc2g= IHBhcmFseXNpcw== IEFsdW1pbnVt IHJlYXA= b2vDqQ== IHNsb3BweQ== IFR1bm5lbA== cG9zaXVt bmVyeQ== ZW5pYw== IGhlcmJhbA== IE91dGVy IEJ1aWxkZXI= IGluY3Vy IGlkZW9sb2dpZXM= IGJhY2t1cHM= Y29uc3VtaW5n IERldGVjdA== ZGVjaw== IEtOT1c= IEdyZXQ= IE1JQw== IHRvdWdobmVzcw== IEV4aGliaXQ= IGhpdmU= TGVz IFNDSE9PTA== IEF0YXJp YWxkZQ== IE51bGw= YW5kZXN0aW5l bW91c2U= IGJyaWdhZGU= NDg5 IHJldm9s IExhd3Nvbg== IFdhaA== b3BvbHk= ZWJ0ZWQ= IFNhdW5kZXJz IDMxMw== IFdpbmM= IHRhYm9v IEhlbG1ldA== IHdlZGdl Y2hpcA== IFRpbmE= Ymc= IGluZnVyaQ== cm4= IGFub21hbGllcw== IFN5bmM= IEV4YW0= IENvbW1pdA== IERpYXJ5 IEFMU08= IERlYm9y b21lZGljYWw= IGNvbXByZWhlbnNpb24= NjU1 IGVtcG93ZXJpbmc= IGlyZQ== IGp1aWNlcw== IEVUSA== IEJveGluZw== PSIv IGZhY2lsaXRhdGVk cG9rZQ== IFBhcnNvbnM= IE1vZGVy dHJhdmVs IGNpdmlsaXphdGlvbnM= IGxpYmVydGFyaWFucw== IHJ1bmU= IENsYXJrcw== YXRoZWQ= IGNhbXBhaWduZXJz IERpc3BhdGNo IEZhaHJlbmhlaXQ= IENhcGNvbQ== LS0tLS0tLS0tLQ== IGxhY2U= IGRyYWluaW5n IGxpbmVy IEFydGlmaWNpYWw= w6lu dGFzaw== XSku IEdNTw== IE9wZXJhdG9y b3JkaW5hcnk= IEluZmx1ZW5jZQ== IFVwcw== IHBvdGVuY3k= dXNzZW4= b3Nwb25z IFN3aW0= IERlYWRsaW5l VW5pdHk= IGN1bGluYXJ5 IGVubGlnaHRlbm1lbnQ= IHdlYXJlcg== IG1pbmVk IHBseQ== IGluY2VzdA== IERWRHM= V2Fsaw== QlRD VHJhZGU= IGRldmFs aWJhbmQ= IE92ZXJzaWdodA== UGFsZXN0aW5pYW4= IGRhcnQ= IG11bA== TFI= IHJlbW92YWJsZQ== IFJlYWxtcw== 7J0= IG1pc2Nhcg== IFZ1bGthbg== Njg1 w6hyZQ== IFNhcA== IG1lcmdpbmc= IENhcmx5 Y2hlc3Rlcg== IGJyaXNr IGx1eHVyaW91cw== IEdlbmVyYXRvcg== IGJpdHRlcm5lc3M= IGVkaWJsZQ== IDI0Mw== VEc= IHJlY3RhbmdsZQ== V2l0aE5v YmVsb3c= SmVubg== IGRhcmtlc3Q= IGhpdGNo IGRvc2FnZQ== IHNjYXZlbg== IEtlbGxlcg== IElsbHVzdHJhdGVk Q2VydGFpbmx5 IE1hdmVyaWNrcw== TWFyZ2luYWw= IGRpYXJyaGVh IGVub3Jtb3VzbHk= IDk5OQ== c2hy cXVhcnQ= IGFkYW1hbnQ= IE1ldw== IHJlbm92YXRpb24= IGNlcnZpY2Fs IFBlcmNlbnRhZ2U= ZW5lcnM= IEtpbWJlcg== IGZsb2F0cw== IGRleA== IFdpdGNoZXI= IFN3YW5zZWE= ZG0= IHNhbHR5 eWVsbG93 IGNhcGU= IERyYWlu IFBhdWxh IFRvbGVkbw== bGVzaQ== TWFnYXppbmU= IFdpY2s= IE1u IEFjaw== IFJpZGluZw== QVNPTg== IGhvbW9waG9iaWM= QVJQ IHdhbmRlcmVk Q1BV b29kb28= IFBpcGU= IHRpZ2h0ZW5pbmc= IEJ1dHQ= MzE4 IGRlc2VydGVk U2Vzc2lvbg== IGZhY2lsaXRhdGluZw== SnVtcA== IGVtZXJnZW5jaWVz T1dFUg== IGV4aGF1c3RpdmU= IEFGVEVS IGhlYXJ0YmVhdA== IExhYmVs YWNreQ== IENlcnRpZmllZA== aWx0cmF0aW9u WmU= IFV0dA== IDEzMDA= IHByZXN1bWU= IERpc3A= IHN1cmdlZA== IGRvbGxz Q29sdW1i IGNoaW1wYW4= IFJhem9y IHRpY2tz IGNvdW5jaWxsb3I= IHBpbGdyaW1hZ2U= IFJlYmVscw== IFFD IEF1Y3Rpb24= eGlh aWtr YnJlZA== IGluc2VydGlvbg== IGNvYXJzZQ== ZEI= U0VF IFphcA== IEZvbw== IGNvbnRlbXBvcg== IFF1YXJ0ZXJseQ== b3Rpb25z IEFsY2hlbWlzdA== IFRyZXk= IER1bw== U3dlZXQ= ODA0 IEdpb3Y= IGZ1bm4= Tmlu aG9mZg== IHJhbWlmaWNhdGlvbnM= IDE5MjI= IEV4cGVydHM= YXplcw== IGdhcm1lbnRz YXJpYWw= IE5hYg== IDI1Nw== IFZlZA== IGh1bW9yb3Vz IFBvbXBl IG55bG9u IGx1cmtpbmc= IFNlcmdleQ== IE1hdHRpcw== IG1pc29neW55 IENvbXBvbmVudHM= IFdhdGNoaW5n IEZvbGs= cmFjdGljYWw= QnVzaA== IHRhcGVk IGdyb3VwaW5n IGJlYWRz IDIwNDg= IGNvbmR1 cXVlcnF1ZQ== UmVhZGluZw== IGdyaWV2YW5jZXM= VWx0cmE= IGVuZHBvaW50 SGln IFN0YXRpYw== IFNjYXJib3JvdWdo THVh IE1lc3Np YXF1 IFBzeU5ldA== IFJ1ZGQ= IGF2ZW51ZQ== dnA= SmVy IHNoYWR5 IFJlc2lzdA== IEFydGVtaXM= IGNhcmVsZXNz IGJyb2tlcnM= IHRlbXBlcmFtZW50 IDUyMA== VGFncw== IFR1cm5pbmc= IHV0dGVyZWQ= IHBlZGQ= IGltcHJvdmlzZWQ= IDoo IHRhYmw= IHBsYWlucw== MTYwMA== cHJlc3N1cmU= IEVzc2VuY2U= bWFyZ2lu ZnJpZW5kcw== IFJlc3RvcmF0aW9u IHBvbGx1dA== IFBva2Vy IEF1Z3VzdGluZQ== IENJUw== IFNFQUw= b3JhbWE= IHRod2FydA== c2Vlaw== IHBhZ2Fu wro= Y3B1 IGdhcm4= IGFzc29ydG1lbnQ= IElMQ1M= dG93ZXI= UmVjb21tZW5kZWQ= IHVuYm9ybg== IFJhbmRvbVJlZGRpdG9y IFJhbmRvbVJlZGRpdG9yV2l0aE5v IHBhcmFseXplZA== IGVydXB0aW9u IGludGVyc2VjdA== IFN0b2tl IFNjbw== QmluZA== 5b4= IFBORw== IE5lZ2F0aXZl IE5PQUE= TGVvbg== IGFsbG95 IExhbWE= IERpdmVyc2l0eQ== NTc1 IHVuZGVyZXN0aW1hdGVk IFNjb3I= IG11cmFs IGJ1c3RlZA== c29vbg== bGlm IG5vbmV4 IGFsbGVyZ3k= IFVuZGVyd29ybGQ= IFJheXM= IEJsYXNpbw== IGhycw== IERpcg== IDMyNw== Ynl0ZXI= IHJlcGxhY2VtZW50cw== IGFjdGl2YXRlcw== cml2ZWQ= TUg= IHBhbnM= IEhJ IGxvbmdpdHVkaW5hbA== IG51aXNhbmNl YWxlcg== IHN3ZWxs IFNpZ25lZA== c2Np IElzbGVz IEFHQQ== IGRlZmlhbnQ= IHNvbmlj b2Nvbg== S0M= IEFpbQ== dGll YWhhaA== IG1M RFg= IGJpc2M= IEJpbGxib2FyZA== IFNZU1RFTQ== TkVZ Z2FhcmQ= IGRpc3RyZXNzZWQ= Zm9ybWVybHk= QWxhbg== IGNoZWZz IG9wdGljcw== IENvbWV0 IEFNQw== IHJlZGVzaWduZWQ= aXJtYXRpb24= IHNpZ2h0aW5ncw== Mzgy MzEx IFdC IGNvbnRyYWN0aW9u IFRPVEFM RHVhbA== IHN0YXJ0bGVk IHVuZGVyc3RhbmRhYmx5 IHN1bmdsYXNzZXM= RVRIT0Q= IGRvY2tlcg== IHN1cmZpbmc= IEhFTA== IFNsYWNr dG9uZXM= IHNoYWx0 VmlzdWFs NDk4 RGVwYXJ0bWVudA== Y3Vzc2lvbg== IHVucmVzdHJpY3RlZA== IHRhZA== IHJlbmFtZQ== ZW1wbG95ZWQ= IGVkdWNhdGluZw== IGdyaW5uZWQ= YmVkcm9vbQ== IEFjdGl2aXRpZXM= IFZlbHZldA== IFNXQVQ= IHNodWZmbGU= aWdvcg== IHNhdHVyYXRpb24= RmluZGluZw== Y3JlYW0= aWN0ZXI= IHZvZGth dHJhY2tpbmc= dGVj IGZvcmVncm91bmQ= aWVzdGE= IHZlaGVtZW50 IEVDQg== IFRpZQ== RXk= IHR1cnRsZXM= IFJhaWxyb2Fk IEthdHo= IEZyYW1lcw== IG1lbmFjZQ== IEZlbGxvd3NoaXA= IEVzc2VudGlhbA== dWdnaXNo IGRyaXA= Y2h3aXR6 IEt5b3Rv c2I= IE5pbmE= UGFyYW1ldGVy IGFsYXJtcw== IENsYXVk IHBpb25lZXJpbmc= IGNoaWVmbHk= IFNjcmVhbQ== Q29sbGVjdGlvbg== IHRoYW5rZnVsbHk= IFJvbmFsZG8= 5a2Q c3RyaXA= IERpc25leWxhbmQ= Y29tbWVyY2lhbA== U2VlaW5n U291bA== IGV2YWN1YXRl IGNpdg== IEFzaGU= IGRpdmlkZXM= IERhZ2dlcg== cmVoZW5zaXZl IGJlcnJpZXM= IERG IHN1c2hp IHBsdXJhbGl0eQ== V0k= IGRpc2FkdmFudGFnZWQ= IGJhdHRhbGlvbg== b2JpbGVz NDUx IGNsaW5n IHVuZGVuaWFibGU= IExvdW5nZQ== IGhhdW50 cGhl IHF1YW50aWZ5 IGRpZmZlcmVk IFsqXQ== IFZpeg== Y3Vt c2xhdmU= IHZpZGVvZw== IHF1YXI= IGJ1bmRsZXM= IEFsb25zbw== dGFja2xl IG5ldXJvbmFs IGxhbmRzbGlkZQ== Y29uZmlybWVk IERlcHRo IHJlbmV3YWJsZXM= QmVhcg== IE1hY2Vkb25pYQ== IGplcnNleXM= IGJ1bms= IFNwYXdu IENvbnRyb2xz IEJ1Y2hhbmFu IHJvYm90aWNz IGVtcGhhc2l6aW5n IFR1dG9yaWFs aHlw aXN0b24= IG1vbnVtZW50YWw= 5rA= IENhcnJ5 IHRic3A= ZW5hbmNl SGlsbA== YXJ0aGVk IHJvdHRlbg== RGVhbg== IHR3aXN0aW5n IGdvb2R3aWxs IGltbWVyc2lvbg== TGl2aW5n IGJydXNoZXM= IENHSQ== IEF0aw== dHJhZGl0aW9uYWw= IHBoYW50b20= IFN0YW1pbmE= IGV4cGFuc2lvbnM= IE1hcmlu IGVtYmFya2Vk IEVn aW50ZXN0aW5hbA== IFBFT1BMRQ== IEJvb3Ro IEFwcGFsYWNo IHJlbGVnYXRlZA== VlQ= TUlU IG11c3Rlcg== IHdpdGhkcmF3aW5n IG1pY3Jvc2NvcGU= IEdhdGhlcmluZw== IENyZXNjZW50 IEFyZ2VudGluZQ== IERlY3Jl IERvbWluaWM= IGJ1ZHM= YW50YWdl IElvbg== IHdpZGVuZWQ= T05TT1JFRA== IEdsb3Zlcw== aWFubm9wb3Vsb3M= cmF6ZW4= ZmVlbA== IHJlcGF5bWVudA== IGhpbmRzaWdodA== IFJFQUxMWQ== IFBpc3RvbA== IEJyYWg= IHdhdHRz IHN1cnZpdmVz IGZsdXJyeQ== aXNzeQ== QWxlcnQ= IFVydWd1YXk= UGhvZW5peA== U2xvdw== IEdyYXZl IEZpcg== IG1hbmFnZWFibGU= IHRhcmlmZg== IFVEUA== IFBpc3RvbnM= IE5pZ2VyaWFu IHN0cmlrZW91dHM= IGNvc21ldGljcw== d2hlbG1pbmc= ZmFi Y2FwZQ== cHJveHk= IHJldGhpbms= IG92ZXJjb21pbmc= c2ltcGxl IHdvbw== IGRpc3RyYWN0aW5n IFN0YW50b24= IFR1bHNh IERvY2s= NjU5 IGRpc2NvcmQ= IEVtYWNz IFZlcw== IFJPQg== IHJlYXNzdXJpbmc= IGNvbnNvcnRpdW0= TXVzbGltcw== MzIx IHByb21wdHM= c2Vp IEhpdGNo aW1wb3NlZA== IEZvb2w= IGluZGlzY3JpbQ== d3Jvbmc= YnVxdWVycXVl RGF2aXM= IV0= IHRpbWVsZXNz IE5FRUQ= IHBlc3RpY2lkZQ== IHJhbGx5aW5n IENhbGRlcg== IOWk IHhw IFVubGU= IEV4cG9ydA== bHVhag== QnVmZg== KTwv Qm9vdA== IENocnlzbGVy b3JhdGl2ZQ== TWVzcw== IG5lZ2xpZ2libGU= ZXJ0b2Rk IE11c2hyb29t IEdhbGU= Z2M= IENvc2J5 IFJ1cmFs cml0aWNhbA== QmVsbA== IHR1cmJpbmU= MDAyMDAwMDA= IGxlZ2l0aW1hdGVseQ== IEFuaW1hdGVk VEVE IFRoZW9kb3Jl Y29uZHVjdA== IEhpZXI= IGNvdW50ZXJmZWl0 IEFsZ2VyaWE= IHVuYmVhdA== Y29udHJvbGxlcg== IHVucmVz IHNjcmFtYmxpbmc= IEZhbGxvbg== VGVz IGFtYmVy IHJveWFsdGllcw== IFNoZWx0ZXI= IExlc3Rlcg== IGNsYXNzaWZ5 UmVtb3Rl IHVuaGVhcmQ= IGNvbnRyb3ZlcnNpZXM= IGVucmljaG1lbnQ= IFlhbmtlZQ== Z2FtZXI= IHBsYXRpbnVt IGVjb2xvZ3k= IFNhcms= IHVudG91Y2hlZA== IHN1cGVydmlzb3Jz ICIl IGZvb3Ro IGNvbW1vbnM= IG5hcmNvdGljcw== IGluZGljZXM= IFBseQ== IGFkZGl0aW9uYWxseQ== IEdhd2tlcg== IEVR UGxheWluZw== IGNhdmVhdA== IEFic29sdXRl b3NzdXM= QmFieQ== IHJhdGlvbg== IHJlc2lu IGNhbGlicmF0aW9u IE5ld3BvcnQ= IGtub2Nrcw== dnQ= IGNvbXBvc3Q= U2NlbmU= IHNhcmNhc3Q= IGtpc3Nlcw== IG5z YWxsaQ== IE1hcmNlbA== IFBpZXQ= aWF0cmljcw== IHN1cnJvdW5kcw== IFJlcHJvZHU= IFBoaWxsaWVz IHVuY2VydGFpbnRpZXM= IEV1cg== IFJvbWFuY2U= IEhhdGg= IE5lZWRz IENsb2Fr IGNyZW0= cXVldWU= IDM1NQ== IHVwZnJvbnQ= XSk7 IHJlY2lwcm9j IDE5Mjc= IDExMDA= dXRzdQ== IGRlcHJlc3NpdmU= b3dtZW50 RmFucw== IG1lY2g= IGFubmloaWw= IGNvdW50ZXJ0ZXJyb3Jpc20= IEZpZ3VyZXM= Ym9sZA== IE1vaW5lcw== IERyaXZlcnM= IG1hbnVzY3JpcHRz IENyeXB0bw== IGh5cG5vdA== cmVkZGl0cw== IHByb3NlY3V0aW9ucw== IGRpdmVydA== Q1JJUA== IEJlbmU= IFJlZ2dpZQ== IHRheGluZw== IE1vcmFsZXM= ZW50aW5n dHVy c2lnbmlmaWNhbnQ= IFBST1Y= IHN0cmFuZHM= IHBvdWNo IFJvb2tpZQ== u5I= IG5pY2Vy aGVteQ== aHc= RUNB IGludGltaWRhdGVk IHN0cmljdGVy IG1pY3JvYmlhbA== ZGV0YWlscw== IHZvd3M= IHF1YWtl aGhoaA== IHJlaW52ZW50 VWI= IHJlbGlucXU= IEJ1ZmZldHQ= bGljZW5zZWQ= aXR0ZXJlZA== IFBpY2FyZA== IGNoZXdpbmc= dWNs b3JnYW5pYw== IGxvY2FsaXplZA== IEVjb25vbWlzdA== IGFjcXVhaW50ZWQ= RGVmaW5pdGlvbg== c2Vk Q3JpdGljcw== IGNj NDUz Mzgx IGZlbGxvd3M= IGNoZWNrcG9pbnRz MDI1 IHJlZWxlY3Rpb24= IG1lZGlhdGVk IEtERQ== IGh1cmRsZQ== IHRleHRpbmc= UGVyZmVjdA== IHRydXN0ZWVz ZmVjdHVyZQ== IGRpY2g= bW9uYXJ5 IGRpc3RpbmN0aW9ucw== IDE0MDA= IHVzaGVy IHBhcmFzaXRlcw== IFNoYXJpbmc= IFZpbQ== IGJhcmJlY3Vl IE1pbmlzdGVycw== ZXJlbGxh IGVi IG1j IFNvbWVob3c= IEluc2VjdA== Y2hhbmdlcw== YnJvYWQ= IEJ5eg== IGdyYXBlcw== NjY5 ID09PT09PT09PT09PT09PT09 IGFzc2ltaWw= IGhhdW50aW5n IGZpcmVwb3dlcg== IGRlZmFtYXRpb24= ZW1waGFzaXM= IGNvbXBvc2U= IGFsbGVyZ2llcw== IHN0cmFuZw== cm9sbGVycw== YmFuZw== IGJyZXdlcnM= cm9uZ2g= cmlvdA== cG9vcg== Y29sZA== U2FtcGxl IGJ1b3k= MDQw IENvdXJ0bmV5 IDI2OA== IFdlZGRpbmc= NzAy IG9ic2Vzc2l2ZQ== IGJyYWtpbmc= IExhbA== YW5pY2Fs 5aY= YXRlbg== Q29uc3RydWN0aW9u IGNsaW5pY2FsbHk= aWVyc2hpcA== TmFtZXM= IERpc2N1c3M= IFJhbW9z IGxvY2FsZQ== IEFncmljdWx0dXJhbA== RW5hYmxl IGhvcnNlcG93ZXI= ZW50dXJl UHJlZg== Q291cnQ= IHN0YWZmaW5n IGZ1dHVyaXN0aWM= ZHJpdmVycw== IE1hcmtldHBsYWNl 5oim RnJpZW5kcw== IGRhbW5pbmc= IEN1c3RvbWVycw== IHdlZWRz IE1haQ== IGFnaWxl IFRhdHQ= aWNlbnQ= UmFua2Vk Y3JvZnQ= IEthdHk= RXh0cmVtZQ== IGNhcnZl IFJvdmVy IEJ5cm9u Mzcy IGNvbmR1Y3Rz cmF0Y2g= aXRpYQ== IFB1bXBraW4= U2FkbHk= UmVsb2FkZWQ= UG9saWN5 IGxpY2s= cGVhaw== aXNrcw== IENEcw== IEVuY3ljbG9wZWRpYQ== aW5pdGlhbA== Q29z IEF3YXJlbmVzcw== IERyYW0= JCQkJA== IHJpZmY= IHNjcmlwdHVyZQ== cnVubmVycw== IGJvaWxlcg== b25zb24= b2lu IGhhbXN0cmluZw== IGNhdGFseQ== IEFyY2hiaXNob3A= Y2hhbGw= IGZhdXg= b2tpbg== bG9jYWxob3N0 IE5BTUU= YWRvYmU= U0FO YW1hdGU= IHNjcmFtYmxl IGNhcmM= IE1hbmlmZXN0 IENlZGFy IFNlcmdpbw== bGF0ZXI= ZmZlcg== IGdyYXBwbGluZw== IERldXRzY2hl YWdvbmlzdHM= IE5ld3Nw IHByZXRlbmRlZA== YXJjaG1lbnQ= IGN1cmF0ZWQ= IGhlYWRwaG9uZQ== IFVuY29tbW9u IFNJR04= QWdlbnQ= IGRlYWRsaW5lcw== IGhvcml6b250YWxseQ== IE1BVA== IFN1bW1lcnM= IG9yZGFpbmVk IExhc3RseQ== IEtlbmRhbGw= IGZyaWc= IE1hY2hpbmE= IFdhdGVybG9v IE1leGljYW5z IHByb3RlY3Rvcg== IGdsYXJl fSI= UHJlbWl1bQ== IHJpZnQ= IFRlbGVzY29wZQ== TWV0YWw= IHJlY2FwdA== IDs7 IGluY2xpbmF0aW9u IGltcG9zZXM= aW5nZW4= Xns= IGhhc3Rl IGRvbHBoaW5z IGNvbW11dGVycw== cGxhbm5lZA== Y29uZw== bXg= IFVwbG9hZA== IGV4dHJhcA== IFR1Y3Nvbg== IEV4cGxvcmF0aW9u ZWZlYXRlZA== IHNsZW5kZXI= NzAz IEJ1aw== aXNlbA== IGNvbXBldGl0aXZlbmVzcw== Y2hsb3I= IFBlcm1hbmVudA== IEV2ZXJldHQ= IFNwZWNpYWxpc3Q= IFNPTA== IGN5YW4= IEV4YWN0bHk= VUY= IExJRkU= YXJ5bA== b25ldA== IEVtcGxveWVl YXdlZA== IFJhdGluZ3M= IGV4dHJhdmFn dWxodQ== IFBsYW5l IGVsZXZhdGU= IENvb3JkaW5hdG9y IFdhdGtpbnM= IGV4Y2x1ZGVz IHNlbnRpZW50 IGVwb2No IGFsbG9j UHJldmlvdXNseQ== IFNoeQ== IFNsb3Zha2lh TE9DSw== IG1hcmtlZGx5 IGtub2I= IGFkdmVudHVyZXJz IEJlZW4= IENvc3Rz YW1tZXJz IG9uc2xhdWdodA== IFN1cHBvcnRlZA== IFRhdQ== aWthcnA= IFNvdmVyZQ== IEhhbXB0b24= 44KJ UHJldg== IFdvcnNl IGNvdHRhZ2U= IEhhZGVz bGV6 Ym93bA== IGZyYWdyYW5jZQ== IExvaw== RU1PVEU= IFBldHJv IDE5MjU= IFBlbmQ= cHJvZHVjaW5n IHJlbG9jYXRl dmF0aQ== cG9sZQ== IHNlbWlu IE5VTQ== IHJvY2tlZA== YnVmZg== Ymx5 UmVwbHk= IEhhaQ== IGFydGljdWxhdGVk IElzbGFtYWJhZA== NjY1 IENsYWltcw== RGVza3RvcA== IHRydXN0ZWU= IHNjcmlwdGluZw== IFNvYg== IEFzeWx1bQ== U1RET1VU IENsb3du IERvcnRtdW5k IERldm9u bGl0ZQ== IE1hcmJsZQ== IGJ1bmtlcg== IGNyZXN0 IGFyb3VzYWw= IFNlYXJz IEJ1ZGR5 ZXJlZGl0aA== IFBvbGx5 IGRlY29kZQ== IFZpc2g= IFJlZmxlY3Q= YW5vbg== IHJlZnVuZHM= aW1tZXJz SE0= IHdpcGluZw== IHB1enpsZWQ= IG1hdHRl dW5v UGllcnJl KSks IHRhaW50ZWQ= IHN5bWJvbGlzbQ== IEZyYXo= IHByb3Rlc3RvcnM= ZXRoZXVz JSUlJQ== V3Jh IGxheA== YWRlbQ== YXR1cmF0aW9u 44OT IFRyYWlsZXI= IEVORw== IEJvd3Nlcg== IGF0dG0= RHVy ODA3 IHNpZHg= IGNpZGVy IEFmZmVjdA== IHdvdmVu IEJhcmtlcg== YmVuZWY= IGRzdGc= IFJ5dQ== Pls= IHNxb3I= U2F1ZGk= IGlzdGc= IGluZHVsZ2U= cHJvYw== IGRpc2d1c3RlZA== IGNvbXBvdW5kZWQ= IG5lbQ== IHNjaG9vbGluZw== IEN1cmU= cHJvY2Vzc2luZw== U29s IHByb3ZlcmI= aXRpemVk IEFsdmFyZXo= IHNjYXJm IHJlY3Rhbmd1bGFy cmV2ZQ== IGhvcm1vbmFs IFN0cmVzcw== aXRpemVu IDQyNQ== Z2lybHM= IE5vaXI= IFJhcHA= IG1hcmNoZXM= Y2h1cmNo IFVzZXM= IDQwNQ== IEJlcm0= IG9yZGluYW5jZXM= IEp1ZGdtZW50 Q2hhcmdlcw== IFppbg== IGR1c3R5 IHN0cmF3YmVycmllcw== IHBlcmNl IFRodXI= IERlYm9yYWg= bmV0ZmxpeA== IExhbWJlcnQ= IGFtdXNlZA== IEd1YW5n WU9V UkdC IENDVFY= IGZpYXQ= cmFuZw== IGZlZGVyYXRpb24= IE1hbnQ= IEJ1c3Q= IE1hcmU= cmVzcGVjdGl2ZQ== IE1pZ3JhdGlvbg== IEJJVA== NTkw IHBhdHJpb3Rpc20= IG91dGxpbmluZw== cmVnaW9u IEpvc8Op IGJsYXN0aW5n IEV6cmE= QnM= IHVuZGVybWluZXM= IFNtb290aA== IGNsYXNoZWQ= cmFkaW8= IHRyYW5zaXRpb25pbmc= IEJ1Y2NhbmVlcnM= IE93bA== IHBsdWdz IGhpYXR1cw== IFBpbmJhbGw= IG1pZw== IE51dHI= IFdvbGZl IGludGVnZXJz IG9yYml0cw== IEVkd2lu IERpcmVjdFg= Yml0ZQ== IGJsYXppbmc= dnI= RWRnZQ== IFBJRA== ZXhpdA== IENvbWVk IFBhdGhmaW5kZXI= IEd1aWQ= IFNpZ25z IFplcg== IEFnZW5kYQ== IHJlaW1idXJzZW1lbnQ= TWVzaA== aVBob25l IE1hcmNvcw== IFNpdGVz aGF0ZQ== ZW5idXJn IHNvY2tldHM= cGVuZA== QmF0bWFu dmly IFNIT1c= IHByb3Zpc2lvbmFs Y29ubg== IERlYXRocw== QVRJVkU= UHJvZmlsZQ== c3lt SkE= IG5pbmph aW5zdGFsbGVk aWRhdGVz ZWJyYQ== IE9tYWhh IHNlaXppbmc= IEJlYXN0cw== IHNhbHRz TWlzc2lvbg== R2VuZXJhbGx5 IFRyaWxvZ3k= aGVvbg== bGVnYXRlcw== IGRpbWU= IGZhaXJl cGFyYWJsZQ== R3JhcGg= IHRvdGFsaW5n IGRpYWdyYW1z IFlhbnVr cGxldA== IE1laA== IG15dGhpY2Fs IFN0ZXBoZW5z YXV0aWNhbA== b2NoZW1pc3RyeQ== IGtpbG9ncmFtcw== IGVsYm93cw== YW5jb2Nr IEJDRQ== IFByYWd1ZQ== IGltcHJvdg== IERldmlu ICJc cGFyYWxsZQ== IHN1cHJlbWFjaXN0cw== IEJpbGxpb24= IHJlZ2ltZW4= aW5uYWNsZQ== IHJlcXVpc2l0ZQ== YW5nYW4= IEJ1cmxpbmd0b24= YWlubWVudA== IE9iamVjdGl2ZQ== b21za3k= R1Y= IHVuaWxhdGVyYWw= IHRj IGhpcmVz bWVudGFs IGludm9sdW50YXJ5 IHRyYW5zcGw= IEFTQ0lJ wqg= RXZlbnRz IGRvdWJ0ZWQ= IEthcGxhbg== IENvdXJhZ2U= aWdvbg== IE1hbmFnaW5n IFRhcnQ= IGZhbHNlaG9vZA== IFZpb2xldA== IGFpcnM= IGZlcnRpbGl6ZXI= QnJpdGFpbg== IGFxdWF0aWM= b3Vm V29yZHM= IEhhcnRmb3Jk IGV2ZW5pbmdz IFZlbmdlYW5jZQ== cXVpdGU= R2FsbA== IFByZXQ= IHBkZg== IExN IFNvY2hp IEludGVyY2VwdA== OTIw IHByb2ZpdGFiaWxpdHk= IElkbGU= IE1hY0RvbmFsZA== IEVzdGFibGlzaG1lbnQ= dW1zeQ== IGdhdGhlcmluZ3M= IE5hag== Q2hhcmxpZQ== IGFzY2VudA== IFByb3RlY3Rvcg== IGFsZ2VicmE= IGJpb3M= Zm9ydW1z RUxT SW50cm9kdWNlZA== IDMzNQ== IGFzdHJvbm9teQ== Q29udHJpYnV0 IFBvbGlj UGxhdGZvcm0= IGNvbnRhaW5tZW50 d3JhcA== IGNvcm9uYXJ5 IEplbGx5 bWFuYWdlcg== IGhlYXJ0YnJlYWtpbmc= Y2Fpcg== IENoZXJv Y2dp TWVkaWNhbA== IEFjY291bnRhYmlsaXR5 ISEi b3BoaWxl IHBzeWNob3RpYw== IFJlc3RyaWN0 IGVxdWl0YWJsZQ== aXNzdWVz IDE5MDU= IE5law== Y2lzZWQ= IFRyYWNraW5n IG96b25l IGNvb2tlcg== cm9zaXM= IHJlb3Blbg== IGluZmluaXR5 IFBoYXJtYWNldXRpY2Fs ZW5zaW9uYWw= QXR0ZW1wdA== IFJvcnk= TWFyY28= IGF3YWl0cw== SE9X dHJlYXRlZA== IGJvbHN0 IHJldmVyZWQ= IHBvZHM= b3BwZXJz MDAxMA== IGFtcGxpdHVkZQ== cmljYW4= U1BPTlNPUkVE IHRyb3VzZXJz IGhhbHZlcw== IEthaW5l IEN1dGxlcg== IEFVVEg= IHNwbGVuZGlk IHByZXZlbnRpdmU= IER1ZGxleQ== aWZhY3Rz dW1pbmF0aQ== IFlpbg== IGFkbW9u IFZhZw== IGludmVydGVk IGhhc3RpbHk= IEhhZ3Vl THlu IGxlZGdlcg== IGFzdHJvbm9taWNhbA== Z2V0dGluZw== IGNpcmNh IENpYw== IFRlbm5pcw== TGltaXRlZA== IGRydQ== IEJZVQ== IHRyYXZlbGxlcnM= IHBhbmU= IEludHJv IHBhdGllbnRseQ== IGFpZGluZw== IGxvb3M= IFRvdWdo IDI5Mw== IGNvbnN1bWVz U291cmNlRmlsZQ== ICIiIg== IGJvbmRpbmc= IHRpbHRlZA== IG1lbnN0cnVhbA== IENlbGVzdGlhbA== VUxBUg== UGx1Z2lu IHJpc2tpbmc= TmF6 IFJpeWFkaA== IGFjY3JlZGl0ZWQ= IHNraXJt 6Zs= IGV4YW1pbmVy IG1lc3Npbmc= IG5lYXJpbmc= IENoZXJu IEJlY2toYW0= IHN3YXBwZWQ= IGdvb3Nl S2F5 IGxvZnR5 IFdhbGxldA== IFsn IGFwb2NhbHlwc2U= IGJhbWJvbw== IFNQQUNF IEVsZW5h IDMwNg== YWNvbnM= IHRpZ2h0ZW5lZA== IGFkb2xlc2NlbmNl IHJhaW55 IHZhbmRhbGlzbQ== IE5ld3Rvd24= IGNvbmplY3Q= Y2FrZXM= IGNoZWF0ZWQ= IG1vZGVyYXRvcnM= cGFyYW1z RUZG IGRlY2VpdA== IFNUTA== IFRhbnphbmlh IFJJ IDE5MjM= IEV4aWxl dGhlbA== IHRoZW9sb2c= IHF1aXJreQ== IElydmluZQ== IG5lZWR5 b3Jpcw== VW0= S2E= IG1haWxib3g= MzIy IGJvcw== IFBldHJh S0lORw== IGVubGFyZ2Vk T2Z0ZW4= IGJhZGFzcw== IDM0Mw== IFBsYWNlcw== IENBRA== IHByaXN0aW5l IGludGVydmVuaW5n ZGlyZWN0aW9u IGxheg== IERTTQ== IHByb2plY3Rpbmc= IEZ1bms= YWdvZw== cGF5bWVudA== bm92 IGNoYXR0ZXI= QVJC IGV4YW1pbmF0aW9ucw== IEhvdXNlaG9sZA== IEd1cw== Rm9yZA== NDE0 Qm9zcw== IG15c3RpYw== IGxlYXBz IEJhdg== dWx6 YnVkZ2V0 Rm9vdGJhbGw= IHN1YnNpZGl6ZWQ= IGZpcnN0aGFuZA== IGNvaW5jaWRl b2N1bGFy Q29ubg== IENvbGxhYm9y IGZvb2xz YW11cmE= YWhhcg== cmlzdHM= IHN3b2xsZW4= IGV4cGVuZGVk IFBhdQ== c3Vw IHNwYXI= IGtleW5vdGU= c3VmZg== IHVuZXF1YWw= IHByb2dyZXNzaW5n c3RyaW5ncw== IEdhbWVyZ2F0ZQ== RGlzbmV5 IEVsZXZlbg== b21uaWE= IHNjcmlwdGVk IGVhcm5lcnM= YnJvdGhlcg== IEVuYWJsZWQ= 5rM= IGxhcnZhZQ== IExPQw== bWVzcw== V2lsc29u IFRlbXBsYXRl c3VjY2Vzc2Z1bGx5 IHBhcmFtb3VudA== IGNhbW91ZmxhZ2U= IGJpbmRz IFF1aWV0 IFNodXR0ZXJzdG9jaw== cnVzaA== IG1hc2NvdA== Zm9ydHVuZQ== IENvbHQ= IEJleW9u aGFiaQ== IGhhaXJj IDI2Nw== IERldXM= IHR3aXRjaA== IGNvbmNlbnRyYXRpbmc= IG5pcHBsZXM= Y2libGU= IGdpcg== Tlo= TWF0aA== bmlo UmVxdWlyZWQ= IHBvbmRlcg== IFNBTg== IHdlZGRpbmdz IGxvbmVsaW5lc3M= TkVT IE1haGpvbmc= Njk1 YWRkbGU= IEdhcm5lcg== IENPVVI= QnJpZGdl IHNwcmVl IENhbGR3ZWxs IGJyaWJlcnk= IO+/ve+/ve+/ve+/ve+/ve+/ve+/ve+/vQ== cGx1Z2lucw== IHJhY2tldA== IGNoYW1wYWduZQ== dmVyc2libGU= Vm90ZQ== IG1vZGlmaWVycw== TWF5b3I= Njgw IGFzc2VtYmxpZXM= IFN1bHRhbg== IE5pbmc= IExhZGllcw== IHN1bGZ1cg== IG9yYnM= IC0tLS0t X19fX19fXw== IEpvdXJuYWxpc20= IGVzcG9ydHM= IGx1c2g= IGh1ZQ== IHNwZWN0cmFs SG9uZXN0 44OP IGJ1c2hlcw== IHJlaW5mb3JjZW1lbnQ= IHJlb3BlbmVk IFdoZWVscw== IE1vcmc= cmlldmluZw== IGF1eGlsaWFyeQ== IGpRdWVyeQ== IEJBVA== dGVzcXVl IHZlcnRleA== cHVyZQ== ZnJleQ== 44K6 ZG9z IHR5cGg= IGN1bGw= IGVx IGRlY29u IHRvc3Npbmc= IGRpc3BhcmF0ZQ== IEJyaWdoYW0= cHJpbnRm bGVkZ2Vk IHN1bmQ= IGNvenk= IGhlcGF0aXRpcw== cGVyZm9ybWluZw== IGF2YWw= IEdH ZnV0dXJl IHBldGVydG9kZA== IEtvc292bw== IG1hZ25ldHM= QWxyZWFkeQ== IEVkaXNvbg== IENlcmVz IFJBSUQ= IGJyaWxsaWFuY2U= NTc2 IGRlcml2ZXM= IGh5cGVydGVuc2lvbg== IM6U IGxhbWJkYQ== IGZsYWly IG1pc3Npb25hcmllcw== IHJhcGVz IFN0YXJ0ZXI= IE1vbnRocw== IGRlZnk= IHNlaXNtaWM= IFJhcGhhZWw= IGV1cm96b25l NjU2 enNjaGU= IHNjcmF0Y2hlZA== IGJvd3M= IExlbm5vbg== IEdhaWE= IGRyaXBwaW5n ZmFjdHM= QWxl IGZyb2dz IEJyZWFzdA== b2dlbmVpdHk= IFByb3NlY3V0b3I= IGFtcGxpZmllZA== IEhvZGc= IEZu VGhvdXNhbmRz IE5JSA== IE1vbml0b3Jpbmc= RlRXQVJF IFByaWVidXM= IEdyb3dpbmc= aHVudGVy IGRpYWdub3Nl IE1hbGQ= IExS IGNyb3duZWQ= IGJ1cnN0aW5n IGRpc3NvbHV0aW9u amF2YXNjcmlwdA== IHVzZWZ1bG5lc3M= IEV4ZWN1dGlvbg== Oig= IEl2b3J5 YWFo IHBlcnNlY3V0ZWQ= dmlvbGVuY2U= aXN0YXM= IENyYXRl IGltcHVsc2Vz IFNwYW5p ZWRlcw== SGFuZGxl IFplcmc= dGhpbmthYmxl TGFzdGx5 IHNwb250YW5lb3VzbHk= IGluY29udmVuaWVudA== IGRpc21pc3Npbmc= IHBsb3R0ZWQ= IGVpZ2h0eQ== IDczNw== cmlzaA== IFRob3JudG9u YXRoYW0= IHNpdGNvbQ== VmVu UmVjaXBl dGVs bHVuZA== IGNsZWFycw== IFNhc3VrZQ== IDI1OA== IG9wdGluZw== IGVucmFnZWQ= ZXN0aGV0aWM= IEFl dWNocw== UHJlcA== Rmxvdw== IHJ1bm9mZg== IEVhdGluZw== IEdpbGVz IEFjdGluZw== cmVzb3VyY2Vz aWJhYmE= IHJwbQ== IHNrZXdlZA== IEJsYW5j IFNha3V5YQ== IGhvdHRlcg== IDE5MjQ= b3BpYW4= Y2tv IGNydW1ibGluZw== IGNhcHRhaW5z IEFwcHJvcHJpYXRpb25z bGVhZGVycw== ZHJvcHBpbmc= YW51dHM= IHJldmVyc2luZw== IFBvc2U= IFNlaw== U2NvdA== IElkZWE= Y2lzZQ== IFNsb3Zlbmlh IDMxNw== RG9jdG9y IGNyb2NvZA== YWxkaQ== U2Vh IEZhcnJlbGw= IG1lcmNlbmFyaWVz IFJOQw== IEd1ZXNz IHBhY2luZw== TWFjaGluZQ== U3RyZWFtZXJCb3Q= IENoYXJpdHk= IDI5OA== IGNhbm5vbnM= IFRvYnk= VFBQU3RyZWFtZXJCb3Q= IFBhc3Npb24= Y2Zn VGhvbQ== IGJhZGdlcw== IEJlcm5zdGVpbg== LuKAkw== IFBPUA== IENvbmo= IGluaXRpYWxpemF0aW9u IGJpb2RpdmVyc2l0eQ== RHVi IGZldWRhbA== IGRpc2NsYWltZXI= IGNyb3c= IGlnbml0aW9u YXJm U0hB IGtIeg== aGF6YXJk IEFydGlzdHM= b2V1dg== Njc5 IFJ1ZHk= TmluZQ== IFJhbWFkYW4= 5b0= aXR0bw== IGFkcmVuYWxpbmU= Q2VydA== IHNtZWxsZWQ= IGltcHVuaXR5 IGFnZW5kYXM= IFJlYm9ybg== IENvbmNlbnQ= IFNlZW1z IG9tZWdh IER1c3Rpbg== IGJhY2tlcg== IFNhdWNl IEJveWxl V0lO IHNwaW5z IHBhdXNlcw== dXB0 IHNocmVkZGVk IHN0cmFwcGVk IENvcnJ1cHRpb24= IHNjcmF0Y2hlcw== IG5p IGF0dGlyZQ== IFNBRg== RmFjdG9yeVJlbG9hZGVk IElQUw== ICgl IHNlbWluYXI= Zm9jdXM= Y2l2aWw= IDE4NjA= aW50b3No IGNvbnRpbnVhbA== IGFiYnJldmk= IFNvaw== b2NvYm8= WE0= IGZyYW50aWM= IHVuYXZvaWRhYmxl IGFydGVyeQ== IGFubm90YXRpb25z YmF0aA== Q2xpbWF0ZQ== IGRvcnM= IFNsaWRl Y29vcmQ= IFJlbG9hZA== IExETA== IExvdmVjcmFmdA== IHVuaW1hZ2lu IHJlc2VtYmxlZA== IGJhcnJhY2tz bnA= IHN1cnJvZ2F0ZQ== IGNhdGVnb3JpemVk 44Kp IHZhY2NpbmF0ZWQ= IGRyYWluYWdl IGluZGlzdA== IFdoYXRzQXBw IDE4NzA= b2xlcmFuY2U= aW52b2tl YW1vcnBo IHJlY29ubmVjdA== IGVtYW5j IGJsaW5kbmVzcw== IDEyODA= aW50ZXJuZXQ= Y29sbGFy IGFsdHJ1 IGFieXNz IFRSSQ== NjU3 IGluZnVzZWQ= SEVBRA== IGZvcmVzdHJ5 IFdvb2R5 IENp d2k= c2Ft Nzg0 aG9saWRheQ== IG1vZ3Vs IEZlZXM= IERFTg== SW50ZXJuYWw= dXJiZWQ= ZnVzYw== YXRvbQ== IElsbHVzaW9u IHBvbGxlZA== IGZsYXA= IGNvYXg= TEdCVA== QW5hbHk= IFNlY3Rpb25z IENhbGlmb3Ju ZW1u IGhpdGhlcg== IE5JR0hU IG5haWxlZA== IFBpcGVsaW5l Mzkx b29m IFByaW1hbA== dmVyZW5k IHNsYXNoaW5n IHJldHJp YXZpb3Vy IGRlcGFydGluZw== Z2ls SVND IG1pZHdheQ== IHVsdHJhc291bmQ= IGJlaGF2aW5n IFRhcmE= Y2xhc3Nlcw== VmlydHVhbA== IENvbG9uaWFs IHN0cmlwcGluZw== IG9yY2hlc3RyYXRlZA== IEdyYXZlcw== NDUy IElyb25pY2FsbHk= IFdyaXRlcnM= IGxlbmRz IE1hbno= IHJhdmVu IG94aWRhdGl2ZQ== IDI2Ng== RUxG YWN0dWFsbHk= YXNjYXI= RHJhZnQ= IGZhdm91cmFibGU= IGh1bWlsaWF0aW5n IGZpZGVsaXR5 IEhvZg== IFh1YW4= NDk2 IGxheWVyZWQ= YXRpcw== Nzkw IHBheWNoZWNr aXRvbg== S2Fy IFZNd2FyZQ== IEZhcm1lcg== IHNlcnZpYw== Z2xvbWVy IHNsdW1w IEZhYnJpYw== IERPQw== ZXN0aW5n IHJlYXNzdXJl IHBoeWw= dm9sdA== aXRvcnk= UnVsZXM= IG94aWRhdGlvbg== IHByaXplZA== IG1pc3RyZXNz IERqYW5nbw== V0FSTg== 5ZE= IGVuY29kZQ== IEZlZWRiYWNr IHN0dXBpZGl0eQ== SWFu IFl1Z29zbGF2aWE= 16g= YWNs VVRF MTk3Nw== IHF1YWxpZmllcw== IHB1bHNlcw== cHJldHR5 IGZyb3pl IHNz SXRlcmF0b3I= IHVyZ2VudGx5 IG1haWxlZA== IENoYW0= IHN1c3RhaW5pbmc= IGJhc2ls IHB1cHBpZXM= aWxhbnQ= IFBMRUFTRQ== bGFw YWNlb3Vz RmVhcg== IE1hc3Rlcnk= YXV0b21hdGlj IFRBRw== IGFudGlt YWdsZXM= NDcz ZnJhbWVz IHdoaXNwZXJz IFdob2V2ZXI= IGJyYXZlcnk= IFVLSVA= cmFjdGlvbnM= IiIi IHRhbWU= IHBhcnRlZA== ZXZlcnl0aGluZw== Q09OVA== IGluZGVidGVk IGFkZHI= cmVr SVJFRA== IGVtaW5lbnQ= Y2xpbnRvbg== IG91c3RlZA== IHJldmlld2Vy IG1lbHRkb3du IHJlYXJy IFlhbw== dGhlcmVhbA== YWJ5dGU= IHN0dW1ibGluZw== IGJhdGNoZXM= IDI1OQ== IGNvbnRyYWNlcHRpdmU= IHByb3N0aXR1dGU= ZW5zaXM= RGVjbA== IFN0cmlrZXM= TWlsaXRhcnk= IE9hdGg= dmFjYw== cHBpbmdz MDUy IHBhcnROYW1l YW1waW5n UmVwb3J0cw== S0k= Q0hS IHN1YnRseQ== c3dlcnM= Qmxha2U= dXN1YWw= IGNvbnRlc3RhbnRz IGNhcnRyaWRnZXM= IEdSRUFU IGJsdXNo IOKAug== NDcy IHJlYXNvbmVk 44Ok cGFyYWxsZWxlZA== IGR5bg== YWdhdGU= IG5pZ2h0bHk= 5YY= NTU2 IHNlbWFudGlj IEFkdm9j ICEh IGRpc2FncmVlcw== IEJX VmVo IGhhcm1pbmc= IGVtYnJhY2Vz IHN0cml2ZXM= IGlubGFuZA== IEthcmQ= IGhlYXRz IEdpbm55 dXRhbg== ZXJuYXV0 eWxlbmU= IEVsZXY= SkQ= IGhhcnM= IFN0YXJy IHNreXNj IGNvbGxhYm9yYXRvcnM= VXN1YWxseQ== IHJldm9sdXRpb25z IFNUQVRT IGRpc21hbnRsZQ== IGNvbmZpZGVudGx5 IGtpbmV0aWM= QWxp IHBlcmNlbnRpbGU= IGV4dHJhY3Rpbmc= aWxsaWFu ZXN0ZWFk IHBoeXNpY2lzdHM= IE1hcnNoYWw= IGZlbGxvd3NoaXA= IGRhc2hlZA== IFVS IFNpb3V4 IENvbXBhY3Q= YW1pZGU= UHl0aG9u IExlaWdo IFBoYXJtYWM= aXN0cmF0ZXM= aGVyaWNhbA== IGZ1ZQ== IEVtaW4= ICh7 IE5laWdoYm9yaG9vZA== IGRpc3J1cHRpbmc= IER1cA== IGdsYW5k IFNldg== IE1hcmlhbg== YXJnb24= IER1bmQ= IDwhLS0= IHN0cmFuZA== IHN0YWRpdW1z em9z IHBzeWNob3Npcw== IFJhY2s= IGJyaWxsaWFudGx5 77iP IHN1Ym1lcmdlZA== IEluc3RpdA== IENob3c= IGNhZ2Vz IEhhdHM= IFVycw== IGRpbHV0ZWQ= dXNhdA== aWVubmU= IE1lbWJlcnNoaXA= IEJ1cms= IGll IGFyY2hldHlwZQ== RHJ1Zw== dWx0b24= IFNwb2Nr IE1jS2F5 IERlcGVuZA== RmVhdHVyZWQ= U29j MTk3OA== IEJlcmU= IHJlbGVudGxlc3NseQ== IGNyaXBwbGluZw== IGFydGhyaXRpcw== 55Sf IFRyb3BpY2Fs IEJ1bGc= IENoZXJ5bA== IGFkbWlyYWJsZQ== IHN1YnRpdGxl T3ZlcnJpZGU= IG9yaWdpbmF0aW5n IENDUA== IHN3b3Jl IFNvbGU= IERpc29yZGVycw== MzI5 IHByb2Nlc3Npb24= IHJlZnVyYg== IGltbWVyc2Vk cmVxdWVudGx5 IHNrZXB0aWNz IGNlcmFtaWM= bWl0dGVy ZW5zdGVpbg== YmVsdA== IFRJVA== YmlkZGVu IGZpcg== bWlzdA== Pl0= IHdlYXZl IFBhcmFkb3g= IGVudHJ1c3RlZA== IEJhcmNsYXlz IG5vdmVsaXN0 b2dpZQ== ODA2 IG5pbmV0eQ== IGRpc2FncmVlbWVudHM= QEBAQEBAQEA= IEF1c2Nod2l0eg== Y2Fycw== IExFVA== dHVi YXJhbnRpbmU= UE9T IGJhY2tzdG9yeQ== IGNoZWVyZnVs IFJhZw== ZWth Ymlhc2Vk IGluZXhwZXJpZW5jZWQ= YWtyYQ== IFdpdHQ= dGFu IHJhcGlzdA== IHBsYXRlYXU= Y2hhbA== IElucXVpcw== ZXhwcmVzc2lvbg== IGNpcGhlcg== IHNoYXZpbmc= YWRkZW4= cmVseQ== KFw= aXNtYQ== IFJlZ3VsYXRvcnk= Q0hBUg== aWx5bg== TlZJRElB R1U= IG11cm0= bGF1cw== Q2hyaXN0b3BoZXI= IGNvbnRyYWN0dWFs IFByb3h5 IEphaW1l IE1ldGhvZGlzdA== IHN0ZXdhcmRz c3Rh cGVyaWE= IHBoeXNpb2xvZ3k= IGJ1bXBlZA== IGZydWN0b3Nl QXVzdHJhbGlhbg== IE1ldGFsbGlj IE1hc3F1ZXJhZGU= YXJi IHByb211bA== IGRvd25mYWxs IGJ1dGNoZXI= IGJvdXI= IElORk9STUFUSU9O IEJpcw== cGVjdHM= YWRlbmE= IGNvbnRlbXBsYXRpbmc= YXJvbw== Y2VudGVyZWQ= IFBlYWtz VXNlZA== IG1vZGVt IGdlbmRlcnM= IDgwMDA= Mzcx IG1hdGVybml0eQ== IFJheg== IHJvY2tpbmc= IGhhbmRndW5z IERBQ0E= QXV0b20= IE5pbGU= IHR1bXVsdA== IEJlbmVmaXQ= IEFwcHJvYWNo d29ya3Nob3A= IExlYXZpbmc= R2Vy aW5zdGVhZA== IHZpYnJhdGlvbnM= IHJlcG9zaXRvcmllcw== NDk3 IEF1bnQ= IEp1Yg== IEV4cGVkaXRpb24= QWxwaGE= IHNhbnM= IG92ZXJkdWU= IG92ZXJjcm93ZA== IGxlZ2lzbGF0dXJlcw== IHBhdGVybmFs IExlb25hcmRv IGV4cHJlc3NpdmU= IGRpc3RyYWN0aW9ucw== IHNpbGVuY2Vk dHJ1c3Q= IGJpa2luZw== IDU2MA== IHByb3ByaWV0 IGltcG9zaXRpb24= IGNvbmdsb21lcg== ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 IFRlYWNoaW5n IFlvc2U= aW50ZW5zaXZl VG93bg== IHRyb2xsaW5n IEdyYWM= IEFTVVM= WW8= IHNwZWNpYWxz IE5lcGg= IEdvZHppbGxh RGF0YWJhc2U= IEhlZ2Vs IDI3Mg== MTk3Ng== IEdsb3JpYQ== IGRpc2VtYg== IEludmVzdGlnYXRpb25z IEJhbmU= YWdlbWVudHM= U3RyYW5nZQ== IHRyZWFzdXJ5 IFBsYXlz IHVuZGVzaXJhYmxl IHdpZGVuaW5n IHZlcmJhbGx5 IGluZmFuY3k= IGN1dHRlcg== Zm1s IDIxMDA= cHJvdG90eXBl ZmluZQ== IGRlY3JpbWluYWw= IGR5c2Z1bmN0aW9uYWw= IGJlc2ll IEVybnN0 emVi IG5vcnRoZWFzdGVybg== IGF1c3Q= cG9yYXRl IE1hcmxpbnM= IHNlZ3JlZ2F0ZWQ= ZXdvcmxk IE1haGVy IHRyYXZlcnNl IG1vbmFzdGVyeQ== dXJneQ== R2Vhcg== c2FuZA== Q29tcGw= IEVNUA== IHBsZW50 IE1lcmNlcg== IDI3Ng== VEFCTEU= Q29uZmlndXJhdGlvbg== SHVuZHJlZHM= IHByaWM= IGNvbGxhYm9yYXRpbmc= IFBhcmFtb3VudA== IEN1bW1pbmdz ICg8 IHJlY29yZGVy IGZsYXRz IDQxNg== d2hvc2U= Rm9udFNpemU= IE9yYml0 WVI= IHdyaXN0cw== IGJha2VyeQ== KX0= IEJvdW50eQ== IExhbmNhc3Rlcg== IGVuZGluZ3M= YWNjb3JkaW5n IFNhbGFt ZWFzeQ== NzU1 IEJ1cnI= IEJhcm5ldHQ= b25vbW91cw== VW5pb24= IHByZWNlZGVuY2U= IFNjaG9sYXJzaGlw IFVY IHJvbGxvdXQ= IGJvb24= YWxt IENhbnRlcg== 5rU= IHJvdW5kaW5n IGNsYWQ= IHZhcA== IEZlYXR1cmVk aXNhdGlvbnM= IDU0MA== cG9saWNl IHVuc2V0dGxpbmc= IGRyaWZ0aW5n IEx1bWlh IE9iYW1hQ2FyZQ== IEZhdm9y SHlwZXI= IFJvdGhzY2hpbGQ= IE1pbGliYW5k YW5hbHk= IEp1bGlldA== SHU= IHJlY2FsbGluZw== YWhlYWQ= Njk2 IHVuZmF2b3JhYmxl IGRhbmNlcw== T3g= IGxlZ2FsaXR5 IDQwMw== cm9tYW5jZXI= IGlucXVpcmU= IE1vdmVz XCI+ IFZhcmlhbnQ= IE1lc3NpYWg= IExDUw== IEJhaMOh NzU2 IGV5ZWJyb3c= IMKl IE1jRg== IEZvcnR5 TWFz IHBhbmlja2Vk IHRyYW5zZm9ybWF0aW9ucw== cXE= IHJldm9sdmVz cmluZ2U= IEFp YXhl IG9ud2FyZA== IENGUg== IEJhcmU= bG9naW4= IGxpcXVpZHM= IGRlY29tcA== c2Vjb25kYXJ5 aWxhbg== IENvbnZlcnQ= YW1peWE= IHByb3NlY3V0aW5n IOKJoQ== IFlvcmtlcnM= IEJ5cm5l c2xvdw== YXdlaQ== SmVhbg== IDI2OQ== IFNreWRyYWdvbg== IMOp IE5pY2FyYWd1YQ== IEh1Y2thYmVl IEhpZ2hseQ== IGFtcGhpYg== IFBhc3Rvcg== IExldHM= IGJsdXJyZWQ= IHZpc2NlcmFs IENCTw== IGNvbGxhYm9yYXRlZA== emln TGVnYWw= IGFwYXJ0aGVpZA== IGJyaWQ= IHByZXNldA== IERFVA== IEFNQQ== 15Q= YXJjaGluZw== YXVjdXNlcw== YnVpbGRlcg== IHBvZXRpYw== IGVtdWxhdG9y IE1vbGVjdWxhcg== IGhvbm9yaW5n aXNldW0= IHRyYWN0b3I= IENsdXN0ZXI= IENhbG0= YXJlZGV2aWw= IHNpZGV3YWxrcw== IHZpb2xpbg== IGdlbmVyYWxpemVk IEFsZWM= IGVtYmFyZ28= IGZhc3RiYWxs IEhUVFBT IExhY2s= IENoaWxs cml2ZXI= Q2hlbA== IFN3YXJt IExldmluZQ== cm95aW5n TGF1bmNo IGtpY2tlcg== IGFkZGl0aXZl IERlYWxz V2lkZ2V0 Y29udGFpbmluZw== IGVzY2FsYXRl IE9QRU4= IHR3ZWFrZWQ= IHN0YXNo IHNwYXJrcw== IEVzc2V4 IEVjYw== IGNvbnZpY3Q= IGJsb2dnaW5n SUVS IEhM IG11cmRlcmVycw== NzU5 IEhpYg== IGRlcGw= IEpvcmQ= U2Fj IGRpc3NlY3Q= IEhvd2U= b3NoZXI= IGN1c3RvbWl6YWJsZQ== IEZyYW56 IGF0cm8= xIc= IDAwMDQ= IG91dHBvc3Q= Um9zcw== IGdseXBob3NhdGU= IEhhc3Rpbmdz IEJFRk9SRQ== IHNob3Zl b3BwZWQ= IFNjYWxh IGFtdWxldA== YW5pYW4= IGV4YWNlcmJhdGVk IGVhdGVy NDcx VU1F IHB1bHA= aXpvbnRhbA== IFphbQ== IEFUSQ== aW1tdW5l YWJ5dGVz IHVubmVjZXNzYXJpbHk= IENBVA== IEF4aXM= IHZpc3VhbGl6ZQ== w4k= IFJhZGljYWw= Zm0= RG9jdW1lbnRz IEZvcnJlc3Q= IGNvbnRleHR1YWw= IFN5bWJvbA== IHRlbnRhdGl2ZQ== IERPRVM= IEdvb2Rz IGludGVybWl0dGVudA== fTo= bWVkaWF0ZWQ= IHJpZGljdWxl IGF0aGVpc20= IHBhdGhvZ2Vucw== IE11bQ== IHJlaW50cm9kdQ== IDMwNw== aUhVRA== IGZsYXNobGlnaHQ= IHN3ZWFyaW5n IHBlbmd1 QnU= IHJvdGF0ZWQ= IENyYW5l ICgpKTs= IGZhc2hpb25hYmxl IGVuZG9yc2luZw== NDYz KVs= IGluZ2VzdGlvbg== IGNvb2tz IDk1MA== b3RvbXk= IEltYW0= IGth IHRlYXNlcg== IEdob3N0cw== IOOCtQ== MTk2OQ== z4M= dWJieQ== IGNvbnZlcnRlcg== emFubmU= ZW5kZQ== IFByZXBhcg== IE5pY2tlbA== IENoaW1lcmE= aGlt IFR5cmFubg== IFNhYmJhdGg= IE5pY2hvbHM= IHJhcHQ= aWhhcg== IHNoZWxsaW5n IGlsbHVtaW5hdGU= IGRlbnRpc3Q= dXRvcg== IEludGVncmF0aW9u IHdoaW1z IExpdGVyYXJ5 QmVhdXQ= IHBhcmNobWVudA== YWdhcmE= QnJhbmQ= IGRlcm9n 4oCmKQ== IE5vcnNl IHVud2l0dGluZw== IGN1Yw== IGJvcmRlcmxpbmU= IHVwc2V0dGluZw== IHJlY291cnNl IGRyYXBlZA== IFJhZGFy IGNvbGRlcg== IFBlcHNp aW1pbmFyeQ== XSxb NjU4 Vmk= IEZyZW0= IFBlcw== IHZldGVyaW5hcnk= IFRFRA== IEVwaWRlbQ== bm92YQ== a2lk IGRldm91dA== b2N0 amFk TW9o IFBBWQ== IGdlb21ldHJpYw== IDMyMw== IGNpcmN1bWZlcmVuY2U= aWNoaWNr MTk3NQ== IFl1cmk= IFNoYWxs IEhvdmVy dW5pbg== U3By IGdyYWZ0 IEhhcHBpbmVzcw== IGRpc2FkdmFudGFnZXM= YXR0YWNrcw== IGh1YnM= IFN0YXJDcmFmdA== 6ZY= IGdhbGxlcmllcw== IEtvcnJh IGdyb2Nlcmllcw== IEdvcnN1Y2g= IHJhcGlzdHM= IGZ1bmdp IFR5cGhvb24= VmVjdG9y IEVtcHJlc3M= YmF0dGxl NDY4 IHBhcmFzaXRl IEJvbWJlcg== U0c= ZXhpc3Q= IFBm IHVuc2U= IHN1cmdlb25z QmlydGg= IFVuc3VyZQ== IFByaW50ZWQ= IEJlaGF2aW9yYWw= IEFzdGVy UGFraXN0YW4= IHVuZXRoaWNhbA== IHN2 IElvVA== IGxheW91dHM= UGFpbg== IGNvbnN0YW50cw== IExX IEJha2U= IHRvd2Vscw== IGRldGVyaW9yYXRpb24= IEJvbGl2aWE= IGJsaW5kZWQ= IFdhcmRlbg== IE1pc3RyZXNz IG9uc3RhZ2U= IGNsYW5z IEJFU1Q= MTk2MA== IGFudGlxdWU= IHJoZXRvcmljYWw= IFBlcmN5 IFJ3YW5kYQ== LC4= QnJ1Y2U= IHRyYXVtYXQ= IFBhcmxpYW1lbnRhcnk= IGZvb3Rub3Rl aWRpYQ== IExlYXJuZWQ= c2Vla2luZw== Z2VuaWM= IGRpbWVuc2lvbmFs SGlkZQ== 6ICF IGludHJpZ3Vl aW5zZQ== IGxlYXNlcw== IGFwcHJlbnRpY2Vz d2FzaGluZw== IDE5MjY= VklMTEU= IHN3b29w c2Ns IGJlZHJvb21z b25pY3M= IENydW5jaA== Y29tcGF0aWJsZQ== IGluY2FwYWM= IFllbWVuaQ== YXNodHJh emhvdQ== ZGFuZ2Vy IG1hbmlmZXN0YXRpb25z IERlbW9ucw== QUFG U2VjcmV0YXJ5 QUNURUQ= TE9E IGFteQ== cmFwZXI= ZXRobmlj NDE3 IHBvc2l0aXZlcw== IDI3Mw== IFJlZnVnZWVz IHVzYg== IFZhbGQ= b2RkeQ== IE1haG1vdWQ= QXNpYQ== IHNrdWxscw== IEV4b2R1cw== IENvbXBldA== IExJQw== IE1hbnNpb24= IEFtZQ== IGNvbnNvbGlkYXRl c3Rvcm1z b250ZW50 OTk2 IGNsZW4= IG11bW15 ZmxhdA== NzU4 IFZPTA== b3Rlcmlj bmVu IE1pbnV0ZQ== U292 IGZpbmVy Umg= bHljZXI= IHJlaW5mb3JjZW1lbnRz IEpvaGFubmVz IEdhbGxhZ2hlcg== IGd5bW4= U3VkZGVubHk= IGV4dG9ydGlvbg== a3I= aWF0b3I= VGE= IGhpcHBvY2FtcHVz TlBS IENvbXB1dGluZw== IHNxdWFyZWx5 IG1vZGVsbGluZw== IEZvcnVtcw== IExpc3A= IEtyaXNobmE= IDMyNA== IHJ1c2hlcw== IGVuc3VlZA== IGNyZWVwaW5n b250ZQ== bmFp aWxhdGVy IEhvcm5ldHM= IG9ibGl2aW91cw== SU5TVA== NTU5 IGplb3BhcmR5 IGRpc3Rpbmd1aXNoaW5n anVyZWQ= IGJlZ3M= c2ltaWxhcg== cGhvdA== NTMw IFBhcmt3YXk= IHNpbmtz IEhlYXJ0aHN0b25l aWJ1cg== IEJhdG9u QXZvaWQ= IGRhbmNlcg== IG1hZ2lzdHJhdGU= YXJ5bg== IGRpc3R1cmJhbmNlcw== IFJvbWVybw== IHBhcmFwaA== IG1pc2NoaWVm 4paT IFNoYXJpYQ== IHVyaW5hcnk= cm91dGU= aXZhcw== Zml0dGVk IGVqZWN0ZWQ= IEFsYnVxdWVycXVl IDQ3MA== IGlycml0YXRlZA== IFppcA== IEJpb2w= w40= IGRlbm91bmNl IGJpbmFyaWVz IFZlcnNl IG9wcG9z IEtlbmRyaWNr IEdQTA== IHNwZXc= IEVsaWphaA== IEVhcw== IGRyaWZ0ZWQ= c29mYXI= IGFubm95YW5jZQ== IEJFVA== NDc0 IFN0cm9uZ2g= aXRhdGVz IENvZ25pdGl2ZQ== b3Bob25l IElkZW50aWZpY2F0aW9u b2NyaW5l Y29ubmVjdGlvbg== IGJveGVy IEFTRA== IEFyZWFz WWFuZw== dGNo dWxsYWg= IGRlY2VpdmU= Q29tYmF0 ZXBpc29kZQ== Y3JldGU= V2l0bmVzcw== IGNvbmRvbGVuY2Vz aHRhcg== IGhlYWxz IGJ1Y2tldHM= IExBVw== Qmx1 IHNsYWI= IE9SREVS b2Ns YXR0b24= IFN0ZXZlbnNvbg== IEdpbmdlcg== IEZyaWVuZGx5 IFZhbmRlcmJpbHQ= c3Bpcml0 aWds IFJlZ2FyZGluZw== IFBST0c= IHNlYWxpbmc= c3RhcnRpbmc= IGNhcmRpbmFs IFZlYw== IEJlaXI= IG1pbGxpc2Vjb25kcw== d2Vhaw== cGVyc2U= IHN0ZXJpbGU= IENvbnRlbXBvcmFyeQ== IFBoYW50 IENsbw== IG91dHA= IGV4aWxlZA== IDI3Nw== IHNlbGZpZQ== IG1hbmlj IG5hbm8= dGVybXM= QWxleGFuZGVy IHJlc29sdmVz IG1pbGxlbm5pYQ== IGV4cGxvZGVz IGNvbnN0ZWxsYXRpb24= IGFkdWx0ZXJ5 bW90aW9u RE9D IGJyb2FkY2FzdGVycw== IGtpbmRlcmdhcnRlbg== IE1heXdlYXRoZXI= IEVjbw== aWNobw== IDI4Nw== bGF1bg== IG11dGU= IGRpc2NyZWV0 IHByZXNjaG9vbA== IHByZWVtcHQ= RGVsZXRl IEZyZWVk UGk= SEs= IGJsb2NrZXI= IEN1bWJlcg== IHdyb3VnaHQ= ZGF0aW5n IGluc3VyZXI= IHF1b3Rhcw== IHByZWFjaGVk IGV2aWN0aW9u IFJlZ2luYQ== IFBlbnM= IHNldmVudGVlbg== IE5hc3M= RGljaw== IGZvbGRz IGRvdHRlZA== IEFhZA== VW5pdmVyc2Fs IHBpeno= IEd1cnU= IHNvaWxz IG5vdmljZQ== IE5lYW5kZXI= IHN0b29s IGRldG9uYXRlZA== IFBpa2FjaHU= IE1hc3NpdmU= SVZFUg== IEFiZGVs IHN1YmR1ZWQ= IHRhbGxlc3Q= IHByZWNhcmlvdXM= IGF5 cmlmaWNhdGlvbg== IE9iag== Y2FsZQ== IHVucXVlc3Rpb24= Y3Vsb3Npcw== YWRhcw== aWdyYXRlZA== RGF5cw== IHF1ZWVucw== IEdhemV0dGU= IENvbG91cg== IEJvd21hbg== IEpK w692ZQ== IGRvbWluYXRlcw== U3R1ZGVudA== IG11 IGJhY2tsb2c= IEVsZWN0cm8= VHJ1dGg= NDgz IGNvbmRlbnNlZA== cnVsZXM= IENvbnNwaXJhY3k= IGFjcm9ueW0= aGFuZGxlZA== IE1hdHRl anJp IEltcG9zc2libGU= bHVkZQ== Y3JlYXRpb24= IHdhcm1lZA== IFNsYXZl IG1pc2xlZA== IGZlcm1lbnQ= IEthaA== aW5raQ== a2VsZXRvbg== Y3ls IEthcmlu SHVudGVy UmVnaXN0ZXI= IFN1cnJleQ== IHN0YXJlcw== IFdpZHRo IE5heQ== IFNraQ== IGJsYWNrbGlzdA== dWNrZXQ= IGV4cHVsc2lvbg== aW1ldA== IHJldHdlZXQ= dmFudGFnZQ== RmVhdHVyZQ== IHRyb29wZXJz IGhvbWVycw== OTY5 IGNvbnRpbmdlbmN5 IFdUQw== IEJyZXdlcg== Zm9yZWlnbg== V2FyZQ== U29sYXI= IHVuZHVl UkVD dWxuZXJhYmxl cGF0aGlj IEJvaXNl IDMyMg== IGFyb3VzZWQ= IFlpbmc= 5LiN dWVsZXNz IHBhcw== IG1vcnA= IGZsb3JhbA== RXhwcmVzcw== dWRnaW5n a0I= IEdyYW50ZWQ= 2K8= IE1pY2hh IEdvdGhpYw== IFNQRUNJQUw= IFJpY2FyZG8= RnJhbg== IGFkbWluaXN0ZXJpbmc= NjIw cG9yYQ== IMKu IGNvbXByb21pc2Vz IGJpdHRlbg== QWNjZXB0 VGhpcnR5 0LI= IG1hdGVyaWFsbHk= IFRlcnI= aWdtYXRpYw== Y2hhaW5z IGRvdmU= c3RhZHQ= TWFydmVs RkFVTFQ= IHdpbmRzaGllbGQ= IDMzNg== YWRpZXI= IHN3YXBwaW5n IGZsYXdsZXNz IFByZWRhdG9y IE1pY2hlbGU= IHByb3B1bHNpb24= IFBzeWNoaWM= IGFzc2lnbmluZw== IGZhYnJpY2F0aW9u IGJhcmxleQ== bHVzdA== IHRvd2VyaW5n IGFsdGVyY2F0aW9u IEJlbnRsZXk= U3BoZXJl IHR1bmE= IENsYXNzZXM= RnJlZWRvbQ== dW5lcg== TGFkeQ== dm9pY2U= IGNvb2xlc3Q= b3Jy IHBhbHA= JHs= IGh5c3Rlcmlh IE1ldGF0cm9u cGFudHM= IHNwYXduaW5n RXhwZXJ0cw== IEludmVzdG9ycw== IEFuYXJjaHk= IHNocnVuaw== IFZpY3RpbQ== IDI4OQ== IGVjc3Rhc3k= IEJpbmRpbmc= NTg1 IE1lbG9keQ== NTc4 b3RhbGx5 IEV0c3k= bGlnYQ== IGFwcGxhdWRlZA== IHN3ZWF0aW5n IHJlZGlzdHJpYnV0ZWQ= IHBvcGNvcm4= IHNlbWluYWw= ZnVy IE5ldXJvc2NpZW5jZQ== UmFuZA== IE9zdA== IE1hZGRlbg== IEluY3JlYXNpbmc= IERhd2tpbnM= IFN1YndheQ== IGFyc2Vu Y29uc2Vydg== QlVS IHNwaWtlZA== IEx5ZnQ= IEltcGVyaXVt IERyb3Bib3g= IGZhdm91cmVk IGVuY29tcGFzc2Vz Z2hvc3Q= IGluc3BpcmVz IGJ1cmdlb25pbmc= IFlvc2hp IFZlcnRpY2Fs IEF1ZGl0b3I= IGludGVuZGluZw== IGZpbGlidXN0ZXI= Qmxvb20= ZmFj IENhdnM= aWduaW5n IGNvd29ya2Vycw== IEJhcmJhcmlhbg== cmVtZW1iZXI= RkxBRw== IGF1ZGl0b3J5 YXNvbnJ5 Q29sbGVnZQ== IG11dGVk Z2Vtb255 b2Jpbg== IFBzeWNobw== OTY4 IGxhdmlzaA== IGhpZXJhcmNoaWNhbA== IERyb25l b3Vr IGNyaXBwbGVk IE1heGlt U2xvdA== IHF1aXo= IFZpZA== aWZsaW5n IGFyY2hhZW9sb2dpc3Rz IGFiYW5kb25tZW50 ZGlhbA== bGVvbg== IEZhcw== VGVk IHJhc3BiZXJyeQ== IG1hbmV1dmVycw== IGJlaGF2aW91cnM= IGluc3VyZQ== IHJlbW9k U3dpdGNo aG9l IHNwYWNlZA== IGFmZm9yZGFiaWxpdHk= IEZlcm4= bm90YXRpb24= IEJhbGFuY2Vk IG9jY3VwaWVz ZW52aXJvbm1lbnQ= IG5lY2tsYWNl IHNlZGFu RlU= IEJyYXZv IGFidXNlcnM= IEFuaXRh bWV0YWRhdGE= IEdpdGh1Yg== YWl0bw== IEZhc3Rlcg== IFdhc3Nlcm1hbg== IEZsZXNo IHRob3Ju cmFyaWx5 IE1lcnJ5 d2luZQ== IHBvcHVsYWNl IExhbm4= IHJlcGFpcmluZw== IHBzeWNoZQ== IG1vZHVsYXRpb24= YXdhcnU= 4oCL4oCL YXJpag== IGRlY29yYXRpb25z IGFwb2xvZ2lzZQ== IEdhcmc= YXBwbHk= IGdpdmVhd2F5 IEZsYW4= IFd5YXR0 VWJlcg== IGF1dGhvcmlzZWQ= IE1vcmFs SEFIQUhBSEE= YWN0aXZhdGU= IHRvcnBlZG8= IEZBUg== IGFtYXNzZWQ= IEFyYW0= YXJraW4= IFZpY3RpbXM= c3RhYg== IG9t IEVDTw== IG9waW9pZHM= IHB1cnBvc2VseQ== IFZlc3Q= IGVyZw== YXRhbg== IFN1cmdlcnk= IGNvcnJlY3Rpbmc= IE9ydGl6 IEJlZXQ= IHJldm9rZQ== IGZyZWV3YXk= IEhpZ2dpbnM= RmFpbA== IEZhcm1z IEFUUA== aG91bmQ= IHBva2luZw== IENvbW11bmlzdHM= bW9uc3Rlcg== aW1lbnRhcnk= IHVubG9ja2luZw== IHVuZml0 d2VlZA== ZW5hcmlv YXRpY2Fs IEVubGlnaHRlbm1lbnQ= IE5H IENvbXBlbnNhdGlvbg== ZGVlbg== IFdpZG93 IENpbmR5 IEFmdGVyd2FyZHM= IDYwMDA= aWtoYWls YWdpY2FsbHk= IHJhdGlmaWVk IGNhc3VhbHR5 SE9NRQ== cHNleQ== ZmVl IHNwYXJrbGluZw== IGTDqQ== IGNvbmNlcnRlZA== Q2F0YWw= IGNvbXBseWluZw== IEFyZXM= IERlbnQ= U2h1dA== IHNraW0= YWRtaW5pc3Q= IGhvc3RpbGl0aWVz IEdpbnM= IDYwOA== IG11ZGR5 IE1jSW50 IERlY2F5 NTI1 IGNvbnNwaWN1b3Vz IEV4cG9zdXJl IHJlc2NpbmQ= IHdlYXJhYmxl IDMyOA== b3VybWV0 YWhz IFJvYm90cw== IGVjbGlwcw== aW5zdGFuY2U= IFJFUE9SVA== IEFwcGw= MDMw IFNraWVz MDEwMA== IGZhbGxhY3k= U29ja2V0 IFJlY2VpdmVy IHNvbHZlcw== IEJ1dHRlcmZseQ== IFNob3BwaW5n IEZJUkU= NjU0 TWVkaWM= IHNpbmdlcnM= IE5lZWRsZXNz JycnJw== aXNoZXJz IERpdmU= NTg4 IHNlbGVjdGl2ZWx5 IGNsdW1zeQ== ODg5 IHB1cmNoYXNlcg== ZWFybmVk YXJkeQ== IGJlbmVmaXRpbmc= ZW5nbGlzaA== IHlpZWxkaW5n IFBvdXI= IHNwaW5hY2g= IGRlbHZl IENyb20= NjEw IGV4cG9ydGluZw== IE1BS0U= IDI2Mw== IGdyb3A= IGVudm95 IElucXVpcnk= IEx1aWdp ZHJ5 IFR1cmluZw== VGh1bWJuYWlsSW1hZ2U= IFZhcmlldHk= IGZhY2V0 IGZsdWZmeQ== IGV4Y2VycHRz IHNob3J0aA== IE9sc2Vu Q0xVRA== IHJlbGlhbnQ= IFVOQw== VG91cg== IGJhdGhpbmc= Q29tcGFueQ== IGdsb2JhbGl6YXRpb24= UHJlZA== IE1hbGZveQ== IGhvYw== amFt Y3JhZnRlZA== IEJvbmRz IEtpc3Npbmdlcg== RW5nbGFuZA== IG9yZGVybHk= Y2F0ZW50cnk= IDI2MQ== IGV4Y2hhbmdpbmc= IEludGVudA== IEFtZW5kbWVudHM= RE9N IHN0b3V0 wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqA= IEFpcmJ1cw== IDI3OA== aHlkZQ== UG9sbA== SXRlbVRodW1ibmFpbEltYWdl IGxvb3Bob2xlcw== IFBpbGxhcg== IGV4cGxvcg== U3RyZXRjaA== QXBhcnQ= IHVubWFycmllZA== TGltaXQ= IFRyYW5zZm9ybWVycw== IGludGVsbGVjdHVhbGx5 dW5jdHVyZQ== MTgwMA== IGRhcm4= QnJhemls IGxlZnRvdmVy YmVydXM= ZnJlZA== TWluZWNyYWZ0 MzI2 IEZvcm1z IHByb29mcw== IERlc2lnbmVk IGluZGV4ZXM= IFN1cHBvc2U= RU1T IExvdmluZw== IEJvbm5pZQ== aW1hdGluZw== T1RVUw== IGNvbmR1Y3Rvcg== IGJlaGF2ZWQ= IEZyZW4= IHN5bmVyZw== IG1pbGxlbm5pdW0= IGNhdGVyaW5n IExhdWRlcg== V3I= IFlpYW5ub3BvdWxvcw== IEFURg== IGVuc2xhdmVk IGF3YWtlbmVk RFZE IEVESVRJT04= IENvbmNlcnQ= IENoYWxsZW5nZXI= IEhha3U= dW1lcmlj IGRlcHJlY2F0ZWQ= IFNIQVI= NDEy IGR5c3RvcA== IHRyZW1ibGluZw== IGRyZWFkZWQ= IFNwYWM= cGFkZGluZw== UmVwbA== IEdhcnJpc29u TWluaQ== IHVucGFyYWxsZWxlZA== YW1hcg== VVJSRU5U d3JlY2s= Y2VydGFpbg== dGFs IENMUw== YXBwaW5ncw== IHNlbnNlZA== IGZlbmNpbmc= IFBhc28= IERlc2s= IHNjb2Zm IGNvbnRlbXBsYXRl IExpZ2E= bGlxdWlk NzU3 IGFwcHJlbnRpY2U= IFVDSElK NTcw IFRob3VzYW5k IElsbHVt IGNoYW1waW9uZWQ= 44KM IGVsZWN0b3Jz IDM5OA== IEhhbmNvY2s= cm91bmRlZA== IEpPSE4= IHVuc2F0aXNm IHF1YWxpZmllcg== IEdhZGdldA== RU5F IGRlYWRsaWVzdA== IFBsYW50cw== IGlvbnM= IGFjY2VudHM= IHR3ZWFraW5n IHNoYXZlZA== RlJFRQ== IENoYXNlcg== QWdhaW5zdA== OTYw IG1ldGhhbXBoZXRhbWluZQ== IG5vcm1hbGl6ZWQ= ICRc IFByZWNpc2lvbg== IEd1YW0= IGNob2tlZA== IFhJSQ== IENhc3Rpbmc= VG9ycmVudA== IHNjYWxw IEphZ3Vhcg== d2l0 IHNlbWlj aXhpZQ== IEdvdWxk IGNvbmZpbmVz TnVzcmE= IExvbg== IEp1Z2c= eWNsZQ== IENvZGVj RWd5cHQ= IHJlc3RyYWlu IEFsaWVucw== IGNob2tpbmc= IER1bms= IEJlbGxh YWJj IHNsYW5n IG5ldXJvdHJhbnM= c2F2 IGVtcG93ZXJtZW50 4oaS IGNsaW1iZXJz IE1pbQ== IEZyYQ== cm9zc2U= Q2FwaXRhbA== IEN0aHVsaHU= SW50ZXJmYWNl IHByb2ZpY2llbnQ= IElOVE8= IDMxOA== cm9udGFs NTgw IERlc3BhaXI= S2Vubg== IHNjcmltbWFnZQ== IENvYXQ= YXNpb25z IHdhbGxwYXBlcg== IEpvbA== IHJlc3VyZ2VuY2U= IGFudGl2 IEJhbGxz sr4= IGJ1ZmZlcnM= IHN1YnN5c3RlbQ== IFN0ZWxsYXI= IEx1bmc= QUlEUw== IGVyYWRpY2F0ZQ== IGJsYXRhbnRseQ== IGJlaGF2ZXM= IE51bg== IGFudGljcw== ZXhwb3J0 REVW d2I= IHBocA== IEludGVncml0eQ== IGV4cGxvcmVy IHJldm9sdmluZw== YXV0aG9yZWQ= Z2Fucw== IGJhc2s= IGFzeW5jaHJvbm91cw== 5Y0= VEhJTkc= Njk4 R2VuZQ== IFJhY2Vy IE5pY28= aXNzdWVk IHNlcm1vbg== cG9zc2libHk= IHNpemVvZg== IGVudHJlcHJlbmV1cmlhbA== b3hpbg== IE1pbmVydmE= IHBsYXRvb24= bm9z cmlrcw== QVVU IEF2YWxhbmNoZQ== IERlc2M= keWjqw== IFBvYw== IGNvbmZlcnJlZA== zrs= IHBhdGNoZWQ= RkJJ NjYy IGZyYWN0dXJlcw== IGRldGVjdHM= IGRlZGljYXRl IGNvbnN0aXR1ZW50 IGNvc21vcw== V1Q= IHN3ZWF0cw== IHNwcnVuZw== YmFyYQ== c29saWQ= IHVuc3Vz IGJ1bGt5 IFBoaWxpcHBl IEZlbnJpcg== IHRoZXJhcGlzdHM= b3JlYWw= Xl5eXg== IHRvdGFsZWQ= IGJvb3pl IFJQQw== UHJvc2VjdXRvcnM= IGRpc2VuZw== IFNoYXJlZA== IG1vdG9yY3ljbGVz IGludmVudGlvbnM= IGxldHR1Y2U= IE1lcmdl IEpD IHNwaXJpdHVhbGl0eQ== IFdBUk5JTkc= IHVubHVja3k= IFRlc3M= IHRvbmd1ZXM= IERVSQ== VHVtYmxy IGxlYW5z IGludmFkZXJz IGNhbm9weQ== IEh1cnJpY2FuZXM= IEJyZXQ= IEFQUExJQw== aWRpbmU= aWNrbGU= UmVnYXJkaW5n IHZlZ2dpZXM= IGVqYWM= anV2ZW4= RmlzaA== REVN IERpbm8= VGhyb3c= IENoZWNraW5n YmVhcmQ= KCY= IGphaWxz IGhy dHJhbnNmZXI= aXZhdGluZw== IGZsZWV0cw== IEltYWc= IE1jRG9ubmVsbA== IHNuaXBwZXQ= SXNh IENoYXR0 IFN0YWlu IFNldEZvbnRTaXpl IE95 IE1hdGhlbWF0aWNz NDk0 IGVsZWN0cm9seQ== IEdvdHQ= IEJyYXM= Qk9PSw== IEZpbmdlcg== ZHVtcA== IG11dGFudHM= IHJlbnRhbHM= IGludGVydHc= IGNyZWVr YWlsYQ== QnJvdGhlcg== IERpc2NvcmQ= cGVl cmF3bGVy IGNhcnA= IDI3OQ== 44K344Oj cmVsYXRpb25z IGNvbnRyYXN0cw== Q29sdW1u IHJlY29ubmFpc3NhbmNl IHVua25vdw== IGxvb3Rpbmc= IHJlZ3VsYXRlcw== IG9wdGltdW0= IENoZXJva2Vl IEFyeQ== TGF0ZXN0 IHJvYWRzaWRl IGRhbmNlZA== IFVuaWNvcm4= QWNrbm93bGVk IHVuY29udHJvbGw= IE1VUw== YXRpbw== Y2hhbmNl aGF2ZW4= VkFMVUU= IGZhdm91cml0ZXM= IGNlcmVtb25pYWw= YmluYXJ5 cGVlZA== d29vZHM= RU1Q IHZhc2N1bGFy IGNvbnRlbXBsYXRlZA== IGJhcnJlbg== IExJU1Q= WWVsbG93 b3Nwb25zb3Jz IHdoaXNreQ== IE1hbW0= IERlVm9z bWluaW11bQ== SHVuZw== NDQy UGlj IFNuYXBkcmFnb24= Nzc2 IGNhcnZpbmc= IHVuZGVjaWRlZA== IGFkdmFudGFnZW91cw== IHBhbG1z IEFR IHN0YXJjaA== TG9vcA== IHBhZGRsZQ== IGZsYW1pbmc= IEhvcml6b25z QW5pbWF0aW9u Ym9vc3Q= IHByb2JhYmlsaXRpZXM= IE1pc2g= IGV4b2R1cw== IEVkaXRvcmlhbA== IGZ1bmd1cw== IGRpc3NlbnRpbmc= IERlbGljaW91cw== cm9ncmFt IER5bg== ZGlzaw== dG9t IGZhYnJpY3M= IENvdmU= IEJhbnM= IHNvZnRlbg== IENPTlM= IGluZWxpZ2libGU= IGVzdGltYXRpbmc= IExleGluZ3Rvbg== cHJhY3RpY2U= b2Zp IHNoZWRkaW5n IE5vcGU= IGJyZWF0aGVk IENvcmludGhpYW5z eW5l ZWtp QnVsbA== IGF0dGFjaGluZw== cmVlbnNob3Rz IGFuYWx5c2U= IEthcHBh IHVuc3VzdGFpbmFibGU= IGludGVycG9s YW5reQ== aGVtZXI= IHByb3RhZ29uaXN0cw== IGZvcm1hdHRlZA== IEJyeWNl IEFjaGlsbGVz IEFiZWRpbg== c2hvY2s= IGJ1bQ== Ym9z cXVh IFdhcm4= cXQ= IERpYWJldGVz ODY0 IEludmlzaWJsZQ== IHZhbmlzaA== IHRyYW5zbWl0dGluZw== IG11cmt5 IEZlaQ== IGF3YWl0ZWQ= IEp1cmFzc2lj dW1taWVz IG1lbmFjaW5n Z2FsbA== Q2F0aA== QnVpbHQ= aWxkbw== IFZvdGVz IG9udA== IG11bml0aW9ucw== IEZyZWVt w61u IGRlY2VuY3k= bG9wcA== aWV2ZWQ= IEdvcmQ= IHVudGhpbmthYmxl IE5ld3N3ZWVr IDMyMQ== SGVhdA== IHByZXNlbnRlcg== amlhbmc= IHBsYW5r IEF2YWxvbg== IGJlbno= IFJvdXQ= IHNsYW1taW5n IERhaQ== b3V0ZXI= IENvb2tpZQ== IEFsaWNpYQ== Z2V5 IHZhbml0eQ== IG93bA== 4bU= dGVzdGVk IEF3YWtlbnM= IGNhbnY= IGJsaW5kbHk= IFJpZGxleQ== IEVtYWlscw== UmVxdWlyZXM= IFNlcmJpYW4= b2dyYXBoZWQ= aWZyYW1l ZXRlcmlh IGFsdGVybmF0aW5n cXVpZXQ= IHNvY2lvbG9neQ== IFVubG9jaw== IENvbW11bmlzbQ== IG9wcw== IGF0dHJpYnV0aW9u IGFiZHVjdGlvbg== IEFicmFt IHNpZGVsaW5lZA== IEJPT0s= IHJlZmluaW5n IEZlZWxpbmc= IE9zbG8= IFBydWl0dA== cmFjaw== YW5naWJsZQ== IGNhdXRpb3VzbHk= IE1BUks= ZWVkcw== TW91c2U= IFN0ZXBo IFBhaXI= U2Fi OTk3 IEJhYWw= QmVj IGNvbW1h IFBhbGw= IEdhZWw= IG1pc3VuZGVyc3RhbmQ= IFBlc2g= T3JkZXJhYmxl IGRpc21hbA== IFNoaW55 JSI= IHJlYWxpc3RpY2FsbHk= IHBhdGlv IEd3 IFZpcnR1ZQ== IGV4aGF1c3Rpbmc= d2hhdGV2ZXI= b3BoeXM= eWlw NDE4 QWRqdXN0 IFdhaXRpbmc= ZXNzb24= IE1hemRh IERvemVucw== IHN0cmVhbWxpbmVk IGluY29tcGV0ZW5jZQ== IE1ldGg= IGV0aG9z T05FUw== IGluY2VudGl2 IGdyaXR0eQ== IEJ1dGNoZXI= SGVhZGVy IGV4cG9uZW50aWFs w58= IGNvcnJlbGF0ZQ== IGNvbnNlbnN1YWw= c291bmRpbmc= UmluZw== T3JpZ2lu IGNvbmNsdXNpdmU= ZmVldA== YWNseQ== IEZlcm5hbmRleg== QnV5YWJsZQ== IGR1Y2tz YXVudGxldHM= IGVsb25n IDI4Ng== IHNpbXVs R2Fz IEtpcnN0 IHByb3Ry IFJvYm8= IEFvRQ== b3BvbA== IHBzeWNob2xvZ2ljYWxseQ== c3Bpbg== aWxhdGVyYWxseQ== IENvbnJhZA== V2F2ZQ== NDQx IEFkdmVydGlzZW1lbnQ= IEhhcm1vbg== IE9yaWVudGFs aXNTcGVjaWFs IHByZXN1bXB0aXZl IHdpbA== IEtpZXI= bmVh IHBwbQ== IGhhcmJvdXI= IFdpcmVk Y29tcGFueQ== IGNvcm9uZXI= YXR1cmRheXM= IFByb3Vk IE5FWFQ= IEZsYWtl dmFsdWVk Y2VpdmVy IGZyYXVnaHQ= IGNhc2luZw== IHJ1bmF3YXk= IGdpbg== IExhdXJlbnQ= IEhhcmxlbQ== IEN1cmlvc2l0eQ== cXVpc2hlZA== IG5ldXJvc2NpZW5jZQ== IEh1bHU= IGJvcnJvd2Vy IHBldGl0aW9uZXI= IENvb2xkb3du V0FSRA== IGludm9raW5n Y29uZmlkZW5jZQ== Rm9yd2FyZA== IHN0cw== cG9wdWxhdGlvbg== RGVsaXZlcnlEYXRl RmlsbQ== IENvdg== cXVpY2tTaGlw cXVpY2tTaGlwQXZhaWxhYmxl cHJpbWFyeQ== aXNTcGVjaWFsT3JkZXJhYmxl aW52ZW50b3J5UXVhbnRpdHk= Y2hhbm5lbEF2YWlsYWJpbGl0eQ== Qk9Y IE11bHRpcGxheWVy IEplbm5lcg== Nzc4 IE1k IH4vLg== TU4= IGNoaWxkaXNo IGFudGlveGlkYW50 IENocm9tZWJvb2s= IDI3NA== IHNjcmVlbnBsYXk= IGFkdmVudHVyb3Vz IFJlbGF0aW9uc2hpcA== cmVzcG9uc2l2ZQ== bWluZ3Rvbg== IGNvcm5lcnN0b25l IEZleQ== RklS IHJvb2tpZXM= IEZlYXR1cmluZw== IG9yaWdpbmF0ZQ== IGVsZWN0cm9kZXM= YW50ZXM= IHNjcmlwdHVyZXM= IGdsdWVk IGRpc2NvbnRlbnQ= IGFmZmxpY3RlZA== bGF5b3V0 QnJhdmU= IG1vc2E= IFF1YW50aXR5 IEhpaw== d2lubmVy SG91cnM= IGVudGFpbA== IENlbGxz b2xvZ3Vl IHZpbA== IHByZWFjaGVy IGRlY29yYXRpdmU= ZGlmZmVyZW50 IHByZWp1ZGljZXM= IFNtb2tpbmc= IE5vdHRpbmdoYW0= c29UeXBl IHJoeXRobXM= IEFscGg= Ymxhc3Q= U3RlZWw= IERhbmllbGxl IHN0cmlmZQ== IHJlbWF0Y2g= c29EZWxpdmVyeURhdGU= IEZvcms= dHJpcA== b2x1bHU= aGVzZXM= Q0c= IFBPTElUSUNP b3N0YQ== IERyaWZ0 6b6N5aU= 6b6N5aWR5aOr IHZldHRpbmc= IEppbnBpbmc= IFJlY2Vzc2lvbg== TWlub3I= IEZyYXVk ZW5mcmFuY2g= IGNvbnZlbmVk IE5BQUNQ IE1pbGxpb25z IEZhcm1pbmc= IFdvbw== IEZsYXJl cml0bw== aW1taWdyYW50 IHZhY2FuY3k= IEhFQUQ= IFZhag== ZWdhbA== IFZpZ2ls U3R1ZHk= IHJ1aW5pbmc= IHJhY2tz IGhlYXRlcg== IFJhbmRvbHBo IEJydXNo IFRpcg== 2Kg= IGNvdg== JV0= IHJlY291bnRz IE9QVA== IE1lbHQ= IHRydWNl IGNhc2lub3M= IGNydXNhZGU= IGNhcm5hZ2U= IHN0cmlwZQ== IEt5bA== VGV4dHVyZXM= IDY5OA== IHByb2NsYW1hdGlvbg== IGdvb2RpZXM= IC4uLi4uLi4uLi4= cHJvY2xhaW1lZA== UG9saXQ= IHRvcGljYWw= IHNwZWNpYWxpemU= IEFtaW4= Z20= IGFuY2hvcmVk IGJlYXJpbmdz c2FtcGxl IEhpZ2hsYW5k IEF1dGlzbQ== IG1lcmNlbmFyeQ== IGludGVydmlld2Vy TEVS IFNvbWVycw== IGVtYnJ5bw== IEFzc3k= IDI4MQ== IEVkaXRpbmc= IENob3Nlbg== NjYw IHBjaQ== IFRodW5kZXJib2x0 QklMTA== IGNodWNrbGVk anJpd2Fs aG9m IGVhcnRobHk= KCl7 aW5kZXBlbmRlbmNl IGRpc3BlcnM= IFZlbmRvcg== IEdhcmV0aA== IHBhbHM= UGVubg== IFN1Ym1pdA== aWN1bQ== VGh1 IGNsYW5kZXN0aW5l IGNhbm5pYmFs IENsZXJr RVN0cmVhbQ== Z2FsaXRhcmlhbg== 4pml Z2V3 IGhvcnJlbmQ= IExvdg== IFJlYWN0aW9u b2NyaW4= Q2xhc3NpYw== IGVjaG9pbmc= IGRpc2Nsb3Npbmc= IEluc2lnaHQ= b2d1bg== IEluY2Fybg== dXBsb2Fkcw== cHBlcmM= Z3V5ZW4= IDE5MDE= IEJhcnM= Njg3 IGJyaWJlcw== IEZyZXNubw== dXJhdA== IFJlZXNl IGludHJ1c2l2ZQ== IGdyaXBwaW5n IEJsdWVwcmludA== IFJhc20= dW5pYQ== bWFuYWdlZA== IEhlYmRv IDM0NQ== IGRlY29kaW5n IHBvZXRz IGphd3M= IEZJR0hU YW1lbGVzcw== IE1lYWRvd3M= IEhhcmJhdWdo SW50ZXJ2aWV3 IEhvc3A= IEJSQQ== IGRlbGV0aW9u bW9i V2Fsa2Vy IE1vb25saWdodA== IEplZA== IFNvcGhpYQ== IHVzdXI= IGZvcnR1bmF0ZWx5 IFB1dHRpbmc= IEZvbGQ= IHNhbml0YXRpb24= IHBhcnRpc2Fucw== SVNPTg== Qm93 IENPTkM= IFJlZHVjZWQ= IFN1dHRvbg== IHRvdWNoc2NyZWVu IGVtYnJ5b3M= 4oCi4oCi4oCi4oCi IEtydWc= Y29tYmF0 IFBldHJvbGV1bQ== IGFtZA== IENvc21vcw== IHByZXNjcmliaW5n IGNvbmZvcm1pdHk= b3Vyc2Vz IHBsZW50aWZ1bA== IGRpc2lsbHVzaW9u IEVjb2xvZ3k= aXR0YWw= IGZhbmM= IGFzc2Fzc2luYXRlZA== cmVnbmFuY3k= IHBlcmVubmlhbA== IEJ1bGxldHM= IHN0YWxl IGNhY2hlZA== IEp1ZGl0aA== IERpc2Vhc2Vz QWxsZW4= IGxhcw== IHNoYXJkcw== IFN1YXJleg== IEZyaWVuZHNoaXA= aW50ZXJmYWNl IFN1cHBvcnRlcnM= YWRkb25z NDYy IEltcmFu IFdpbQ== IG5ld2ZvdW5k IE1i QW5pbWFs IGRhcmxpbmc= YW5kZQ== IHJoeQ== IFR3aXN0ZWQ= cG9zYWw= eW5za2k= VmFyaW91cw== 15w= IEtpdw== dXlvbWk= IHdlbGxiZWluZw== IExhdQ== YW5vcw== IHVubWlzdA== IG1hY09T IHJlc3Ryb29t IE9saXY= IEFpcndheXM= IHRpbWV0YWJsZQ== OTgw IHJhZGlvcw== dm95 aWFzY28= IGNsb3VkeQ== IERyYXdpbmc= QW55dGhpbmc= U3lyaWE= IEhlcnQ= c3Rha2luZw== IHVuY2hlY2tlZA== IGJyYXplbg== IE5SUw== Njk3 b25vbWlj ZXN0YWJsaXNo IGxlbmc= IGRpYWdvbmFs IEZpb3I= TGFpcg== IFN0YXJk IGRlZmljaWVudA== am9pbmluZw== YmVhbQ== IG9tbmlw IGJsZW5kZXI= IHN1bnJpc2U= TW9vcmU= IEZhdWx0 IENvc3R1bWU= IE11Yg== RmxhZ3M= YW5zZQ== IHBheW91dA== IEdvdmVybm9ycw== IERpbGxvbg== IEJhbmFuYQ== TmFy IHRyYWlsZWQ= IGltcGVyaWFsaXN0 dW1hbm4= YXRzdWtp NDM1 IFJvYWRz IHNsdXI= IElkZWFsbHk= IHRyZW5jaGVz Q3RybA== IG1pcnJvcmVk IFplbA== IENyZXN0 Q29tcGF0 IFJvbGxz c2NyaWI= IFRyYWlscw== b21ldGVycw== d2ludGVy IGltbW9ydGFsaXR5 aWxhdGVk IGNvbnRyYWRpY3Rz dW5pdmVyc2Fs aWxsaW9ucw== IE1hbWE= b3B0aW0= QVRVUkU= IGdlbw== ZXR0ZXI= IENhcmxv NDI0 IGNhbm9uaWNhbA== IFN0cm9uZ2hvbGQ= bmVhcg== IHBlcmZ1bWU= IG9yY2hlc3RyYQ== b2RpYWM= IHVwaGU= IHJlaWduaW5n dmVyc2l2ZQ== IGNhdWN1c2Vz IERFTQ== IGluc3VsdGVk IC0tLS0tLQ== IENydXNo IHJvb3Rpbmc= IFdyYWl0aA== IHdob3Jl IHRvZnU= Q21k IEJyZWU= ICRf IHJpdmU= IEFkdmVydGlzaW5n IHdhdHQ= IEhP IHBlcnN1YXNpdmU= IFBhcmFtZXRlcnM= IG9ic2VydmF0aW9uYWw= IE5DVA== IE1vag== IFNhbG9u IHRydW5j IGV4cXVpc2l0ZQ== IE1hcmE= IHBvb3A= IEFOTg== RXhj IFdvbmRlcmZ1bA== IFRhY28= IGhvbWVvd25lcg== IFNtaXRoc29uaWFu b3Jwb3JhdGVk bW1tbQ== IGxvYWY= IFlhbWF0bw== IEluZG8= IGNsaW5naW5n w6Fz IGltbXV0YWJsZQ== aHVi T3Jhbmdl IGZpbmdlcnRpcHM= IFdvb2Rlbg== IEtpZGQ= IEpQTQ== IERhbW4= Q293 Y29kZXM= NDgy IGluaXRpYXRpbmc= IEVsaw== IEN1dHRpbmc= IGFic2VudGVl IFZhbmNl IExpbGl0aA== R1VJ IG9ic2N1cmVk IGR3YXJ2ZXM= IENob3A= IEJva28= VmFsdWVz IG11bHRpbWVkaWE= IGJyZXdlZA== UmVndWxhcg== Q1JJUFRJT04= IE1vcnRhbA== IGFwZXg= IHRyYXZlbGVy IGJvaWxz IHNwcmF5aW5n UmVwcmVzZW50 IFN0YXJzaGlw NDI4 IGRpc2FwcHJvdmFs IHNoYWRvd3k= IGxhbWVudGVk IFJlcGxhY2U= IEZyYW7Dpw== Njc3 ZG9y IHVuc3RvcHBhYmxl IGNvaG9ydHM= Z3lu IENsYXNzaWNz IEFtcGg= IHNsdWdnaXNo IEFkZGljdGlvbg== IFBhZHJlcw== IGluc2NyaXB0aW9u IGluaHVtYW4= bWludXM= IEplcmVtaWFo YXRhcnM= VGVycm9y IFRvcw== IFNoYXJtYQ== YXN0YQ== Y2F0Y2g= IHBsdW1iaW5n IFRpbWJlcnM= U2hhcg== SGFs IE9zYw== IGNvdXBsaW5n aHVtYW5z IHNwb25nZQ== IGlkb2xz IFNwYQ== IEFkdm9jYXRl IEJlYXRz bHVh IHRpY2tpbmc= IGxvYWRlcg== IEdyb24= ODEw IHN0aW11bGF0ZWQ= IHNpZGViYXI= IE1hbnVmYWN0dXJlcg== b3JlQW5k MTk3Mw== IHByYWlzZXM= IEZsb3Jlcw== ZGlzYWJsZQ== IEVsZWN0cmljYWw= cmFpc2U= RXRo IG1pZ3JhdGVk IGxlY3R1cmVy S2lkcw== IENhdmVybg== IGtldHRsZQ== IGdseWM= IE1hbmRlbGE= IEZ1bGx5 5aer RklORVNU IHNxdWVlemluZw== IFJ5ZGVy YW1wb28= b3JlQW5kT25saW5l SW5zdG9yZUFuZE9ubGluZQ== QnV5YWJsZUluc3RvcmVBbmRPbmxpbmU= IGNvbW1lbW9yYXRl IFJhbXBhZ2U= QXVzdGlu IFNocm91ZA== IFJ1aW5z OTE1 IEtI IHdhdGVyZnJvbnQ= IEVTQw== YmFieQ== IENvdXQ= IEVtYmxlbQ== IGVxdWl2YWxlbnRz NDky VW5pcXVl IE5pZXR6c2NoZQ== YnJvd3Nlcg== IGltaXRhdGlvbg== IFdlcmV3b2xm IEtpcmlu YWNhcw== Jywi IMO+ UmV2aWV3ZWQ= IGN1bnQ= IHZvaWM= IExlbm92bw== IGJvbmRlZA== NDgx IGluaGliaXRvcnM= IGVuZGVhdm9ycw== IEhhdmFuYQ== IFN0b3V0 IEpvbGx5 QWN0b3I= Ki8o IG9jY3VycmVuY2Vz IFRlbnM= SW5jcmVhc2Vk IEFDVElPTg== IOOAjA== IFJhbmtpbmdz IEJyZWF0 IDMwOQ== RG91 IGltcGFjdGluZw== IER1Y2hlc3M= cHJlZml4 UUI= IHN1bW1vbmluZw== IGJlc3Rvd2Vk IEtlcGxlcg== IFBPV0VS Y3ViZQ== IEtpdHM= IEdyaXA= IG9waXVt IHJlcHV0YWJsZQ== dG9j aWNoYWVs IFJpcHBsZQ== IGNhZsOp IFpvb20= IEJ1cm1h IHdhaXZl IHN0YWxscw== IGRlbWVhbm9y aW5jZXJpdHk= IGZsdW9yaWRl IFNIT1VMRA== UGFyaXM= IGxvbmdpbmc= IHBsYXQ= IGdyb3NzbHk= IGJ1bGxz IHNob3djYXNpbmc= ZXhwZWN0ZWQ= IEdhZGRhZmk= ZW5naW5lZXJpbmc= UmVwZWF0 IEt1dA== IGNvbmNlaXZhYmxl IHRyaW1tZWQ= b3Njb3Bl IENhbmRpZGF0ZQ== IFRlYXJz cm9sb2c= TGV3aXM= U1VQ IHJvYWRtYXA= IHNhbGl2YQ== IHRydW1wZXQ= SmltbXk= IG1pcmFjdWxvdXM= IGNvbG9uaXphdGlvbg== IGFtcHV0 IEdOT01F YXRlY2g= RGlmZmVyZW50 IEVMRQ== IEdvdmVybm1lbnRz IEFoZWFk 44WL44WL d29yZHByZXNz TElC IEluY2x1ZGU= IERvcm90aHk= MDQ1 IENvbG9tYmlhbg== IGxlYXNlZA== ODg0 IGRlZ3JhZGluZw== IERhaXN5 aWF0aW9ucw== IGJhcHRpemVk IHN1cm5hbWU= Y294 IGJsaW5rZWQ= 44Oi IHBvbGxlbg== IGRlcm1hdA== IHJlZ2V4 IE5pY2hvbHNvbg== IEVhdGVy 55w= cmFkb3I= IG5hcnJvd2Vy IGh1cnJpY2FuZXM= IGhhbGx1Y2luYXRpb25z cmlkZGVu SVNTSU9O IEZpcmVmbHk= IGF0dGFpbm1lbnQ= IG5vbWluYXRl IGF2b2NhZG8= IE1lcmVkaXRo IHRz IHJldmVyZW5jZQ== IGV1cGg= IGNyYXRlcw== IFRFWFQ= IDQ0Mw== IDMxOQ== SlNPTg== aXF1ZXR0ZQ== IHNob3J0c3RvcA== aWNrZXk= IHByb3BlbGxlZA== IGFwaQ== IFRoaWV2ZXM= Nzc5 IG92ZXJzYXc= IGNvbGk= IE5pY29sYQ== IG92ZXJjbA== aWthd2E= IEN5cg== IDM4NA== Nzg5 IEFsbG93cw== MTAyNw== RGV0cm9pdA== VFJZ c2V0dXA= IFNvY2lhbGlzbQ== U292aWV0 c3VzcA== IEFQUg== IFNodXRkb3du IGFsdW1pbml1bQ== emJlaw== IExvdmVy R0dHR0dHR0c= IGRlbW9jcmFjaWVz IDE5MDg= IE1lcnJpbGw= IEZyYW5jb2lz Z2RhbGE= IHRyYWZmaWNrZXJz IFRpbA== IEdvYXQ= IHNwZWQ= IFJlc2Vydg== IHByb2Q= NTUy IGNhYw== IFVuaXY= IFNjaHdl IHN3aXJsaW5n IFdpbGRlcm5lc3M= IEVnZ3M= IHNhZGRlbmVk IGFyY2hhaWM= SHlk IGV4Y2Vzc2l2ZWx5 QlJF IGFlcm9zcGFjZQ== IFZvaWNlcw== Q3JhaWc= IGlnbml0ZWQ= SW5pdGlhbGx5 IE1jQQ== IGhhbmRzZXQ= IHJlZm9ybWluZw== IGZydXN0cmF0aW9ucw== IERlYWRwb29s IEJlbGljaGljaw== cmFjdG9y IFJhZ25hcm9r IERydXBhbA== IEFwcHJveGltYXRlbHk= MTkyMA== IEh1YmJsZQ== YXJtb3I= IFNhcmFz IEpvbmFz IG5vc3RhbGdpYw== IGZlYXNpYmlsaXR5 U2FoYXJhbg== IG9yYml0aW5n IDk3MA== UnU= IHNoaW4= IEludmVzdGlnYXRvcnM= IGluY29uc2lzdGVuY2llcw== IFBBTg== Qkc= IGdyYXppbmc= IGRldGVjdG9ycw== IFN0YXJ0dXA= IEZ1bm55 IE5hb21p Q29uc2lkZXJpbmc= IGhvZw== dXRm Y2VtaWM= IGZvcnRpZmllZA== IEZ1bmN0aW9ucw== IGNvZGVj bnV0cml0aW9u SGF0 IiE= bWljcm9zb2Z0 NTU4 IFRoaW4= IEFDRQ== QWxpYXM= IE9QUw== cGFwZXJz UEs= 44CO IGltcHJvYmFibGU= Tm9ydGhlcm4= ZXF1YWw= IGxvb2tvdXQ= IHR5cmVz IE1vZGlmaWVk IEtvcA== QWJzb2x1dGVseQ== IGJ1aWxkdXA= c2lsdmVy IGF1ZGk= IGdyb3Rlc3F1ZQ== IFNhYmVy IFByZXNieXRlcg== T05Z IGdsYWNpZXJz IFNob2Fscw== IEthc3M= IEhSQw== IE5pY29s IEx1bmNo IEZvc3M= 4paS QURSQQ== IE9uZVBsdXM= b2luZw== Z3JvdW5kcw== IGluY2lkZW50YWw= IGRhdGFzZXRz Njg5 IENsYXJrc29u IGFzc2VtYmxpbmc= IENvcnJlY3Rpb25z IGRyaW5rZXJz IHF1YWxpZmllcnM= IGxlYXNo IHVuZm91bmRlZA== IEh1bmRyZWQ= IGtpY2tvZmY= VGk= IHJlY29uY2ls IEdyYW50cw== IENvbXBsaWFuY2U= IERleHRlcml0eQ== IDE5MDY= d2Fybg== RGFsbGFz TWF4aW11bQ== bmFyZA== YXZpYQ== YmVhdXQ= ZW5zaXRpdml0eQ== dHJhY2U= IHBpb25lZXJz IEZyYWN0 44CP IHByZWNlcHQ= IGdsb3NzeQ== IElFRUU= QWNyb3Nz IDY4MA== U2xlZXA= Y2hlb24= IHNhdGlyaWNhbA== IE1pbm90YXVy IENsYXVkZQ== IHLDqQ== YXBlZ28= IGNhcnJvdA== IFNlbWlu aW5vYQ== IHpv SW5kZXBlbmRlbnQ= IGRpYWdub3Nlcw== IEN1ZQ== TUFS IHJlbmRpdGlvbg== IEtpaw== IHBhdGhvbG9neQ== IHNlbGVjdHM= TGlua2VkSW4= IGFzc2F5 IERyZXM= IHRleHR1YWw= cG9zdGVk SVRBTA== IE1hdWw= TmVhbA== IGludGVyY29ubmVjdGVk IGVycmF0aWM= IFZpcnVz IDUzMA== IGVudmlyb25tZW50YWxpc3Rz IFBoZWxwcw== IGVuZ2FnZW1lbnRz IElOU1Q= IGVjb25vbWljYWw= bm94aW91cw== IGdlYXJpbmc= aXp6eQ== IGZhdm9yYWJseQ== IE1jR2lsbA== VGVybQ== IGhhbmdlZA== IGJhbGxwYXJr IFJleWVz IGJld2FyZQ== IFBzYWw= IE1hc3NhY3Jl cWk= IGluYWNjZXNzaWJsZQ== YWNseXNt IGZyYXk= aWxsYWM= IGJpdHRlcmx5 IENlcnRpZmljYXRpb24= TWljaGlnYW4= IGlycmVzcGVjdGl2ZQ== YWxvcmU= RW1wdHk= IGVuZG9yc2VtZW50cw== IHVuZGV0 Zmc= ZXF1aXBwZWQ= IG1lcmNpbGVzcw== IEN1c3Q= IGltbWF0dXJl IHZvdWNoZXI= IEJsYWNrd2VsbA== 0Y8= aGF3aw== ZGlzY2lwbGluYXJ5 aWxlZQ== IE1ha290bw== IER1ZGU= 44OH44Kj WWVhcnM= IGludmVy IHNoYW1hbg== IFlvbmc= aXBlbA== ZWxsZW4= IENhdGh5 YnJpZHM= IHNhcmM= NjUx TmVhcg== IGdyb3VuZHdvcms= IGFtYXo= IDQxNQ== IEh1bnRpbmd0b24= aGV3cw== IEJ1bmc= IGFyYml0cmFyaWx5 IFdpdA== IEFsYmVydG8= IGRpc3F1YWxpZmllZA== YmVzdG9z NDYx IHBj IDI4NA== cm9iYXQ= Um9iaW4= IGh1Z3M= IFRyYW5zaXRpb24= IE9jY2FzaW9uYWxseQ== IDMyNg== IFdoaWxzdA== IExleQ== IHNwYWNlc2hpcA== Y3N2 IHVuc3VjY2Vzc2Z1bGx5 IEF1 bGVjaw== IFdpbmdlZA== IEdyaXp6bGllcw== Lu+/vQ== IG5lYXJlcg== IFNvcmNlcmVzcw== IEluZGlnbw== RWxzZQ== ODQw bGV0ZXM= Q29hY2g= IHVwYnJpbmdpbmc= IEtlcw== IHNlcGFyYXRpc3Q= IHJhY2lzdHM= IGNoYWluZWQ= IGFic3RpbmVuY2U= bGVhcm5pbmc= IHJlaW5zdGF0ZWQ= IHN5bW1ldHJ5 IHJlbWluZGVycw== IENoZXZ5 IG1vbnQ= IGV4ZW1wbGFyeQ== IFRPUg== Wlg= IHF1YWxpdGF0aXZl IFN0YW1w IFNhdmFubmFo IFJvc3Np IHBhZWQ= IGRpc3BlbnNhcmllcw== IFdhbGxz IENocm9uaWM= IGNvbXBsaW1lbnRhcnk= IEJlaXJ1dA== ICstLS0= aWdzbGlzdA== IGNyeXB0b2dyYXBoaWM= bWFzdGVycw== IENhcGl0YWxz IG1heGltYWw= IGVudHJvcHk= UG9pbnRz IGNvbWJhdGFudHM= bGlw IEdsb2I= IEJNQw== cGhhc2U= dGhhbms= SFRUUA== IGNvbW11dGVy IFwoXA== Li4v IFJlZ2VuZXI= IERPSQ== IEFjdGl2aXNpb24= IHNsaXQ= b3NhbA== UkVN IGNoYW50cw== WXU= S2V5cw== QnJleGl0 IEZvcmNlZA== QXJpem9uYQ== IHNxdWFkcm9u SVNP IE1hbG9uZQ== IDMzOA== IGNvbnRyYXN0aW5n IHRpZGFs IGxpYmVs IGltcGxhbnRlZA== IHVwcm9hcg== IENhdGVy IHByb3Bvc2l0aW9ucw== TWFuY2hlc3Rlcg== IEV1cm9z aXRhbWlu R2ls IEVsdmVu IFNlZWs= IEJhaQ== IHJlZGV2ZWxvcG1lbnQ= IFRvd25z IEx1Yg== ISIs YWxvbg== S3Jpc3Q= IG1lYXN1cmFibGU= IGltYWdpbmFibGU= IGFwb3N0bGVz WU4= NzYw IHN0ZXJvaWQ= IHNwZWNpZmljaXR5 IExvY2F0ZWQ= IEJlY2tlcg== IEVkdQ== IERpZXRhcnk= dXRzY2g= IE1hcmlseW4= IGJsaXN0ZXI= IE1FUA== IEtveg== IENNUw== eWFob28= IENhcm5leQ== IGJvYXN0aW5n IENhbGVi Qnl0ZQ== cmVhZHM= YWRlbg== UHJvYmxlbQ== IFdvb2R3YXJk U3dl U3Vw IEtHQg== U2V0dXA= IHRhY2l0 IHJldHJpYnV0aW9u IGR1ZXM= IE3DvA== Lj8= 5Lit cG90cw== IGNhbWVv IFBBTA== ZWR1Y2F0aW9u QW15 bGlrZWx5 Z2xpbmc= IGNvbnN0aXR1dGlvbmFsbHk= IEhhbW0= IFNwZWFr IHdpZGdldHM= YnJhdGU= IGNyYXBweQ== IEl0ZXI= IGFudGljaXBhdGluZw== IEJvdXQ= UGl4ZWw= IFllcA== IExhdXJpZQ== IGh1dA== IGJ1bGxldGlu IFNhbHZhdGlvbg== IGNoYXRz ZWFyYWJsZQ== SG9uZXN0bHk= QUxUSA== b25zZXF1 Y3VsdA== aXNjb3Zlcnk= b3Z5Y2g= IHNlbHZlcw== IFNhdG9zaGk= U291bmRz IGNvbnZlcmdlbmNl IFJvc2VuYmVyZw== MTk3NA== IG5hc2Fs IGZ1bGxlc3Q= IGZlcm9jaW91cw== eHVz aXN0ZQ== QU1T IGxvYmJpZWQ= IHNvb3RoaW5n IEd1bm4= dG9kYXk= MDI0 IGluc3BpcmF0aW9uYWw= IE5CTg== cGI= Z2V3YXRlcg== b3JhaA== YWxsb3dlZA== IENvbGlzZXVt IHNwZWNpYWxpemluZw== IGluc2FuZWx5 IFRhcGU= ZGVsYXk= IHRhcm4= IFBvdW5k IG1lbGFuY2g= IGRlcGxveW1lbnRz aWxhbmQ= IGxlc3Nlbg== IGZ1cnJ5 IFVFRkE= IGJsb29kc2hlZA== IE1laWVy aXRoZXJpbmc= IGhlaXJz IEphdw== YXh0ZXI= IFB1YmxpY2F0aW9ucw== IGFsdGVycw== aW50ZW50aW9u IFdpbmNoZXN0ZXI= ZGV0ZXJtaW5hdGlvbg== IExpZmV0aW1l dGhpbg== TW9uc3Rlcg== Nzgw IGFwcHJveGltYXRpb24= IHN1cGVybWFya2V0cw== IFNlY29uZHM= b3Jvcw== aHVnZQ== IGJyaWJl IExJTUlURUQ= dW5lZA== IG1pc2ludGVycHJldA== IEluanVyeQ== IDM2Nw== IHRocmVzaG9sZHM= IENhcm5pdmFs IGdhc3Ryb2ludGVzdGluYWw= IGd1aWRlbGluZQ== IGRlY2VpdmVk ZmVhdHVyZXM= IHB1cnBvcnRlZGx5 IFJvbm5pZQ== IE5ld3Q= IHNwYWNpb3Vz YXN1cw== IHN1cGVyaGVyb2Vz IEN5bnRoaWE= bGVnZ2Vk a2FtcA== Y2hpbw== IHRodW1ibmFpbA== IFNoaXJsZXk= aWxsYXRpb24= IHNoZWRz IFp5 RVBB IGRhbXM= IHlhd24= bmFo IFBlZ2d5 IEVyaWU= IEp1dmVudHVz IEZvdW50YWlu cng= ZG9uYWxk YWxidW0= IENvbXByZWhlbnNpdmU= IGNhY2hpbmc= IFV6 dWxuZXJhYmlsaXR5 IFByaW5jaXBsZQ== IEppYW4= aW5nZXJz Y2FzdHM= IE9zaXJpcw== Y2hhcnQ= dGlsZQ== IFRpZmZhbnk= IFBhdHRvbg== IFdoaXA= IG92ZXJzaXplZA== SmU= IENpbmRlcmVsbGE= IEJvcmRlcnM= IERhZXNo TWFo IGRvZ21h IGNvbW11bmlzdHM= dnU= Q291bmNpbA== IGZyZXNod2F0ZXI= IHdvdW5kaW5n IGRlYmFjbGU= IHlvdW5nc3Rlcg== IHRocmVhZGVk IEJvdHM= IFNhdmluZ3M= 44GC b2xpbmc= b2hv IGlsbHVtaW5hdGlvbg== TVJJ IGxvb3Nlbg== dHJ1bXA= YWdlbmN5 dXJpb24= IG1vbWVudGFyaWx5 IENodW4= IEJ1ZGFwZXN0 IEFsbGV5 RGlzaw== IGFzdG9uaXNoZWQ= IENvbnF1ZXI= IEFjY291bnRpbmc= aGF2aW5n IFdlaW4= IEFscmlnaHQ= IHJldm9sdmVy IGRlbHVzaW9u IHJlbGljcw== IGFkaGVyZW50 cXVhbnQ= IGhhbmRtYWRl b3Jpbw== IGNvbWJhdGluZw== Y29kZWQ= IHF1YWRydQ== cmV0aA== Tmlr IFRyaWJhbA== IE15c3RlcmlvdXM= IGluaGFs IFdpbm5pbmc= IENsYXNzaWZpY2F0aW9u Y2hhbmdlZA== IHVuYWI= IHNjb3Ju aWNpcGF0ZWQ= d2w= b25kdWN0b3I= IHJlaW5mb3JjaW5n IENoaWxkaG9vZA== YW5vdmE= IGFkdmVudHVyZXI= IGRvY3RvcmFs IFN0cmF0ZWdpZXM= IGVuZ3VsZmVk IEVuY291bnRlcg== IGxhc2hlcw== Q3JpdGljYWw= cmljdWxhcg== IFVURg== b2NpYXRpb24= Y2hlY2tpbmc= IENvbnN1bHRpbmc= UnVudGltZQ== cGVyaW9k IEFzZ2FyZA== IGRpc3RpbGxlZA== IFBhc2FkZW5h IER5aW5n IENPVU5UWQ== IGdyYW5pdGU= IHNtYWNr IHBhcmFjaHV0ZQ== IFNVUg== VmlyZ2luaWE= IEZ1cmlvdXM= Nzg3 IE9raW4= IGNhbWVs IE1icHM= MTk3Mg== IENoYW8= IEN5YW4= am9pY2U= ZWZlcg== IFdyYXA= IERlYmF0ZQ== U2Vn IGZvcmVhcm0= IElnbm9yZQ== IHRpbWVzdGFtcA== IHByb2Jpbmc= IE5vb24= IEdyYWls ZmVu IGRvcm1hbnQ= IEZpcnN0bHk= IEVpZ2h0aA== IEhVTg== IERlc2lyZQ== b3Jhcw== R2lybHM= IERlc21vbmQ= emFy YW1pbmVz T0FE ZXhlY3V0ZQ== IGJvb2Jz IEFUTA== Xyg= Q2hlbHNlYQ== IG1hc3R1cmJhdGlvbg== IENvQw== IGRlc3Ryb3llcg== IENob21za3k= IHNjYXR0ZXI= IEFzc2V0cw== Nzk2 IENhcmdv IHJlY2VwdGl2ZQ== IFNjb3Bl IG1hcmtldGVycw== IGxhdW5jaGVycw== IGF4bGU= IFNFQQ== c2Vx IE1vZmY= ZmluZGluZw== IEdpYmJz R2VvcmdpYQ== ZXh0cmVtZWx5 Tko= IGxhYm9yZXJz c3RhbHM= IG1lZGlhdGlvbg== IEhlZGdl YXRvd24= IGlvZA== ZGVzcGl0ZQ== dmlsbA== SmFuZQ== ZXhpc3RlbmNl IGNvaW5jaWRlZA== IFV0aWxpdGllcw== IENoZWFw IGxvZ2lzdGljYWw= IGN1bG1pbmF0aW9u IE5pY290aW5l cGFr Rm9sZGVy IHJvZGVudHM= c3R1ZmY= IGxhd2Z1bGx5 IHJlcGVydG8= aW9jaA== amo= RGlhbG9ndWU= SEhISA== bGljdGlvbg== TG9va3M= IDI5Nw== IHR1cnJldHM= IEFiYW5kb24= IGluY2Vzcw== IFRyYWZmb3Jk IGN1cmxlZA== IHByZWZlcnJpbmc= IHByaXZhdGl6YXRpb24= IGlycmVzaXN0 IFBhbmRh IFNoYWtl IE1jR3I= 44OE dW5kZXJz IGRpc2NyaW1pbmF0ZWQ= IGJhcnRlbmRlcg== SUxF QXRsYW50aWM= IHByb3BlbnNpdHk= IFdpeg== IEdpbQ== Y29uZmVyZW5jZQ== IHJlaW5mb3JjZXM= R2g= d2Fnb24= IGVlcmll RmFs IGh1Z2dlZA== cmFjaXN0 UklD RnU= IGZpbGxlcg== IFN0dWI= IGVuZ3JhdmVk IFdyZXN0bGU= IGltYWdpbmF0aXZl IFBlZXI= IEZhY3RvcnM= YW51cw== IERyYWN1bGE= bW9uaXRvcg== IHJvdXRlcnM= aWJpYQ== IEJvb2xlYW4= ZW5kYWxl IFNsYXVnaHRlcg== IFNoYWNr UkZD IFNwaWVsYmVyZw== U2F4 IFBIT1RP IENsb3Zlcg== IFJhZQ== RGVwZW5kaW5n IE1lbW9y YXJhbQ== IHBpZXJjZWQ= IGN1cnRhaW5z dmFsZQ== IElucXVpc2l0aW9u IFBva2U= IGZvcmVjYXN0aW5n IGNvbXBsYWlucw== U2Vuc2U= IEhlcm1lcw== aXNjb3ZlcmVk IGJpYmxl IE1vcnBo IGdlcm0= Nzg1 RE9O IGNvbmdlbg== IGNyYW5l IERQUg== IHJlc3BlY3RmdWxseQ== Um9vbQ== IE5hdw== IERhbGFp cmVhc29u IEFuZ3Vz RWR1Y2F0aW9u IFRpdGFuaWM= y5w= IG92YWw= dW5pdGVk IHRoaXJkcw== IG1vaXN0dXI= IENQQw== TWlhbWk= IHRlbnRhY2xlcw== IFBvbGFyaXM= ZXhj ZXhjbHVzaXZl IFByYWlyaWU= IGNvbG9zc2Fs IEJsZW5k c3VycHJpc2luZ2x5 w61z IGluZG9jdHI= IGJhc2Fs IE1QRUc= dW5kbw== U3BsaXQ= RGV2ZWxvcG1lbnQ= IGxhbnRlcm4= MTk3MQ== IHByb3ZvY2F0aW9u IGFuZ3Vpc2g= IEJpbmQ= IExlaWE= ZHVjZXJz aXBweQ== Y29uc2VydmFuY3k= IGluaXRpYWxpemU= IFR3aWNl IFN1aw== IHByZWRpYw== IGRpcGxvbWE= IHNvY2lvcA== SW5ncmVkaWVudHM= IGhhbW1lcmVk IElybWE= UWFpZGE= IGdsaW1wcw== IEJpYW4= IHN0YWNraW5n IGZlbmQ= Z292dHJhY2s= IHVubg== ZGVtb2NyYXRpYw== aWdyZWU= IDU4MA== IDI5NA== IHN0cmF3YmVycnk= SURFUg== IGNoZXJpc2hlZA== IEhvdHM= IGluZmVycmVk IDgwOA== IFNvY3JhdGVz T3JlZ29u IFJvc2Vz IEZPSUE= IGluc2Vuc2l0aXZl IDQwOA== UmVjb21tZW5k IFNoaW5l IHBhaW5zdGFraW5n VUdF IEhlbGxlcg== IEVudGVycHJpc2Vz SU9S YWRq TlJT TEc= IGFsaWVuYXRlZA== IGFja25vd2xlZGdlbWVudA== IEFVRA== IFJlbmVn IHZvdWNoZXJz IDk2MA== IG1vb3Q= IERpbWVuc2lvbnM= IGNhYmJhZ2U= QnJpZ2h0 Z2F0 IEtsdQ== IGxhdGVudA== IHpl IE1lbmc= IGRpc3BlcnNl IHBhbmRlbW9uaXVt SFE= IHZpcnR1b3Vz IExvY2F0aW9ucw== ZWVwZXI= cHJvdmlkZWQ= IHNlYW1z IFdU aXpv UFJPVg== IHRpdGFuaXVt IHJlY29sbGVjdGlvbg== IGNyYW4= IDc4MA== IE5G NDkx NjQy cGFja2luZw== NTk4 dGV4dHVyZQ== U3BpZGVy ZnJlZWRvbQ== Y2lwbGVk IFRBTUFEUkE= 4pmm YXV0aGVudA== IFdBTlQ= cmlmaWVk IHJpdGVz IHV0ZXJ1cw== a2lzcw== IOKJpA== IHNraWxsZXQ= IGRpc2VuZnJhbmNo IEdhYWw= Q29tcGFu IGFnZWluZw== Z3VpZGU= QmFsdA== IGl0ZXJhdG9y IGRpc2NyZXRpb25hcnk= dGlwcw== IHByaW1hdGVz IFRlY2huaXF1ZQ== IFBheW1lbnRz YXplbA== IFJPQ0s= c3RhbnRpYWw= MDYw IGRtZw== IEphY2tldHM= IFBsYXlvZmY= IG51cnNlcnk= IFN5bWI= YXJ0b24= IGFubmV4YXRpb24= Q29sb3JhZG8= IGNvaWxz IFNob2Vz 4oSiOg== IFJveg== Q09NUExF IEV2ZXJlc3Q= IFRyaXVtcGg= Sm95 R3JpZA== 4Lw= cHJvY2Vzc29y IFByb3NwZXI= IFNldmVydXM= IFNlbGVjdGVk cmc= IFRheXlpcA== U3RyYQ== IHNraWluZw== ID8p IHBlZw== VGVzbGE= IHRpbWVmcmFtZQ== IG1hc3Rlcm1pbmQ= IE5C c2NpZW50aWZpYw== IFNoaXQ= Z2VuZXJpYw== SU5URVI= TlVN IHN0cm9sbA== IEVuaXg= IE1NUg== IEVNUw== bW92aWU= gqo= IG1pbmltaXppbmc= aWRkbGluZw== IGlsbGVnaXRpbWF0ZQ== IHByb3RvdHlw IHByZW1hdHVyZWx5 IG1hbnVhbHM= b2JiaWVz IENhc3NpZHk= REVD ZGVza3RvcA== IGFlcm9z IHNjcmVlbmluZ3M= IGRlYmlsaXRhdGluZw== IEdyaW5k bmF0dXJlY29uc2VydmFuY3k= IGZhZGVz dGVybWluYXRpb24= YXNzZXRzYWRvYmU= RmFjdG9y IGRlZmluaXRpdmVseQ== UG9rw6k= YXB1bHQ= IExhZmF5ZXR0ZQ== Q29ybg== IENvcmFs IHN0YWduYW50 VHVl IGRpc3NhdGlzZmFjdGlvbg== R2VuZGVy IGtpZG5leXM= IEdvdw== IERlZmVhdA== IEFzaHRvbg== IGNhcnRlbHM= IGZvcmVjbG9zdXJl IEV4cGxvcmU= c3RyZW5ndGg= b3Rpbg== IHZldGVyaW5hcmlhbg== IGZ1bWJsZQ== IHBhcmFw IFN0cmFpdA== cmlscw== IHByaWNr IEJlcm11ZGE= IEFtbXVuaXRpb24= c2tpbm5lZA== IGFib3VuZA== IEJyYXo= IHNoYXJwZXI= IEFzY2Vuc2lvbg== IDk3OA== IHByZXZpZXdz IGNvbW11bmlvbg== IFhZ IHBob255 IG5ld2NvbWVy IDMzMg== LiIsIg== IHJlZGlzdHJpYnV0aW9u UHJvdGVjdA== IFNvZg== S2Fs IGxpcHN0aWNr d29yc3Q= IHRhbmdsZWQ= IHJldHJvc3BlY3RpdmU= aW50ZWdlcg== IHZvbHVudGVlcmluZw== IDE5MDc= IC0tLS0tLS0tLS0tLS0tLS0tLS0t aWNoZW4= IHVudmVpbGluZw== IHNlbnNlbGVzcw== IGZpc2hlcmllcw== XC0= IGhpbmdlcw== IGNhbGN1bHVz TXl0aA== IHVuZGVmZWF0ZWQ= IG9wdGltaXphdGlvbnM= IGRlcHJlc3M= IGJpbGxib2FyZA== IFlhZA== IFB5cmFtaWQ= SXNu SWRl IGxlZ2lvbg== IEtyYW1lcg== ZW50YW55bA== IHBlbmV0cmF0aW5n IEhhd3Ro IFBST0RVQ1Q= IEdlcmFyZA== IFBhY3Q= IEluY2x1ZGluZw== IEVsaWFz IEVsYWluZQ== dmlzdWFs IGh1bW1pbmc= IGNvbmRlc2M= IEZhc2M= 5LiK IGVnYWxpdGFyaWFu IGRldnM= IERhaGw= T3Bz REg= IEJvdW5jZQ== aWRhdGVk YWxkbw== IHJlcHVibGljYW4= IGhhbWI= IFNldHQ= b2dyYXBoaWVz Q0hBUFRFUg== IHRyYW5zc2V4dWFs IHNreXJvY2tldA== YW5zd2Vy IG1hcmt1cA== 2Ko= IGhlcm9pbmU= Q29tcGFyZQ== IFRhdg== QmVhc3Q= IHN1Y2Nlc3NvcnM= IG5hw692ZQ== IEJ1Y2tsZXk= c3RyZXNz bWVhdA== IGRvd25sb2FkYWJsZQ== IGluZGV4ZWQ= IHNjYWZm IEx1bXA= IEhvbW8= U3R1ZGlv SW5zcA== IHJhY2tlZA== ZmFyaW91cw== IFBldHR5 RXh0ZXJuYWw= IDE5MDk= V2Fycw== Y29tbWl0 cHV0ZXJz IHVub2I= IEVycg== IEVH IEFsYW0= IFNpYmVyaWE= IEF0bW9zcGhlcmlj SVNURVI= IFNhdGFuaWM= dHJhbnNsYXRpb24= IExvdWQ= dHJhdW1hdGlj bGlxdWU= IHJlc29uYXRl IFdlbGNo IHNwYXJraW5n IFRPTQ== dG9uZQ== IG91dGw= IGhhbmRjdWZmZWQ= IFNlcmll ODAx IGxhbmRtYXJrcw== IFJlZXZlcw== IHNvZnRlbmVk IGRhenpsaW5n IFdhbnRlZA== bW9udGhz TWFnaWthcnA= IHVudHJlYXRlZA== IEJlZGZvcmQ= TWk= IER5bmFtbw== T3Jl Nzk1 IHdyb25nZnVs IGx1cmVk IGNvcnRpc29s IHZleA== ZHJhd24= aWxldA== RG93bmxvYWRoYQ== IEZhY3Rpb24= IGxhYnlyaW50aA== IGhpamFja2Vk d2F0ZXJz ZXJpY2s= IHN1cGVyaW9ycw== IFJvd2xpbmc= IEd1aW5uZXNz IHRk OTky IHVuZWFydGhlZA== IGNlbnRyaWY= IHNoYW1lbGVzcw== UG9k IEZpYg== IGljaW5n IHByZWRpY3Rvcg== IDI5Mg== Zm9yZXN0YXRpb24= Y29uc3RydWN0 Q2FuZA== QCM= IGFnaXRhdGVk IHJlcHI= T1ZB IGtuaXR0aW5n IExpbWE= IGZvZGRlcg== Njg0 IFBlcnNvbmE= a2w= NzAx IGJyZWFrdXA= 4bg= IGFwcGFsbGVk IGFudGlkZXByZXNzYW50cw== IFN1c3NleA== SGFycmlz IFRoZXJtYWw= ZWVlZQ== VXBsb2Fk IGd1bGY= IGRvb3JzdGVw IFNoYW5r TFU= IE1FTg== IFBvbmQ= c29ycnk= IG1pc2ZvcnR1bmU= bmFuY2U= IGJvbmE= TXV0 IGRlZ3JhZGVk IExPRw== IE5lc3M= YW5pbWFs IGF2ZXJzaW9u dW5kb3du IHN1cHBsZW1lbnRlZA== IEN1cHM= IDUwNA== IGRlcHJpdmU= IFNwYXJrbGU= xYI= IE1lZGl0YXRpb24= YXV0aG9ycw== IFNhYmFu IE5ha2Vk YWlyZA== IE1hbmRhcmlu IFNjcmlwdHVyZXM= IFBlcnNvbm5lbA== IE1haGFyYXNodHJh IDE5MDM= IFBhaQ== IE1pcmFnZQ== b21iYXQ= QWNjZXNzb3J5 IGZyYWdtZW50ZWQ= VG9nZXRoZXI= IGJlbGlldmFibGU= IEdsYWRpYXRvcg== YWxpZ25lZA== IFNsdWc= TUFU IGNvbnZlcnRpYmxl IEJvdXJib24= YW1lcm9u IFJlaGFi bnRheA== IHBvd2RlcmVk cGlsbGFy IHNtb2tlcg== IE1hbnNvbg== IEJG NTEx IEdvb2RlbGw= IERBUg== bXVk Z2FydA== IG9iZWRpZW50 IFRyYW5zbWlzc2lvbg== IERvbmF0aW9u ODgw IGJvdGhlcmluZw== TWF0ZXJpYWxz 44Kx ZGVzdHJveQ== IGZvcmVnb2luZw== IGFuYXJjaGlzbQ== IEtyeQ== aWNlcHM= IGxpdHRlcmVk IFNjaGlmZg== IGFuZWNkb3RhbA== dW5pdHM= IGZpYW4= IFN0aW0= IFNPTUU= IEludmFkZXJz IGJlaGF2aW91cmFs IFZlbnR1cmVz IHN1YmxpbWU= IGZydWl0aW9u IFBlbmFsdHk= IGNvcnJvc2lvbg== toU= IGxpa2VuZWQ= IGJlc2llZ2Vk d2VlbmV5 IENyZWVw IGxpbmVtZW4= bXVsdGk= aWNhYmx5 dWRkZXI= IHZpdGFsaXR5 IHNob3J0ZmFsbA== IFBhbnRz YXBpc3Q= SGlkZGVu IERyb3Bz bWVkaWNhbA== IHByb251bmNpYXRpb24= IE5STA== IGluc2lnaHRmdWw= SlY= IEJlYXJk IENob3U= IGNoYXJtcw== IGJpbnM= IGFtYmFzc2Fkb3Jz IFNhdHVyZGF5cw== IGluaGliaXRvcg== IEZyYW5jaA== NjAx Jywn IENvbm9y YXJ0bmV5 IFhwZXJpYQ== Z3JhdmU= YmVlcw== IFByb3Rlc3RhbnRz IHNvYWtpbmc= IE1hbmRhbA== IHBoYXNlZA== IDY2MA== IHNjYW1z IGJ1enppbmc= IEl0YWxpYW5z IExvcmVuem8= IEpB IGhlc2l0YXRlZA== IGNsaWZmcw== IEdPVA== aW5ndWlzaGFibGU= IGtv IGludGVycnVwdGlvbg== Wmlw TGVhcm5pbmc= IHVuZGVyc2NvcmVz IEJsaW5r S3U= NTc5 IEF1dG9i SVJF IHdhdGVyaW5n IHBhc3RyeQ== ODIw IHZpc2lvbmFyeQ== IFRlbXBsYXI= YXdhaXRlZA== IHBpc3Rvbg== IGFudGlk Y3VycmVudGx5 IHBhcmQ= IHdhZ2luZw== IG5vYmlsaXR5 IFl1cw== IGluamVjdGluZw== ZmFpdGg= IFBBU1M= 5bo= IHJldGFrZQ== IFBST0M= IGNhdGhlZHJhbA== YmFzaA== IHdyZXN0bGVycw== IHBhcnRuZXJpbmc= IG5vc2Vz IDM1OA== VHJhbnNmb3Jt YW1lbg== IGJvdXRz IElkZWFs IENvbnN0YW50aW4= IHNlcA== IE1vbmFyY2g= YXR0ZW4= IFBlb3BsZXM= bW9kaWZpZWQ= IG1vcmF0b3JpdW0= IHBlbmNoYW50 IG9mZmVuc2l2ZWx5 IHByb3hpZXM= b2thbmU= IFRhaXdhbmVzZQ== IFBvbw== IEhPTUU= dXNpb25hbA== IHZlcmJz IE9tYW4= dmlzb3J5 IHBlcnN1YXNpb24= IG11bHRpdA== IHNjaXNzb3Jz R2F5 b3dheQ== b3BoeXNpY2Fs bHVz Z251 IGFwb2NhbHlwdGlj IGFic3VyZGl0eQ== IHBsYXlib29r IGF1dG9iaW9ncmFwaHk= SVVN IHNuZWFraW5n IFNpbXVsYXRpb24= cHBz ZWxsZXJ5 UGxhbmV0 IHJpZ2h0ZnVsbHk= IG5pZWNl IE5FQw== IElQTw== IERpc2Nsb3N1cmU= bGVhbm9y b3VzeQ== U1RFUg== IDI4Mg== Q3J1eg== Q2hhbGw= NjQz IFN1cnZpdmU= IEZhdGFs IEFtaWQ= YXBv V2VhcG9ucw== REVO Nzcw IEdyZWVud2FsZA== IGxpbmVu YWxvcw== IHBvbGx1dGFudHM= IFBDSWU= a2F0 IHBhdw== IEtyYWZ0 Q2hlbQ== IFRlcm1pbmF0b3I= IHJlaW5jYXJu IF1b IFNlZWRz IHNpbGhvdWV0dGU= IFN0b3Jlcw== IGdyb29taW5n IERpcmVjdGlvbg== IElzYWJlbA== IEJyaWRnZXM= 8J+R RUVE IE1vcnNp IHZhbHZlcw== IFJhbmtlZA== IFBoYXJtYQ== IE9yZ2FuaXphdGlvbnM= IHBlbmV0cmF0ZWQ= IFJvZGhhbQ== IFByb3Rvc3M= IG92ZXJlc3Q= IGV4YXNwZXI= IFRK IDAwMDAwMA== IHRyaWNrbGU= IGJvdXJib24= V0hP IHdyZXRjaGVk IG1pY3Jvc2NvcGlj IGNoZWNrbGlzdA== IGFkb3JuZWQ= Um95YWw= QWRtaW5pc3Q= IFJldGlyZW1lbnQ= IEhpZ2hlc3Q= V2VhdGhlcg== aWxlZ2U= IGluY3JlbWVudHM= IENvc3BvbnNvcnM= IG1hc3Nl IFNpbm4= cmY= IGhvcmRlcw== YXNzZW1ibHk= NzU0 IE5hdGFzaGE= IFRZUEU= IEdFTkVSQUw= IGFycmFuZ2luZw== IDQwNw== bGF0b3I= IGdsZWFu IGRpc2NyZWRpdGVk IGNsaW5pY2lhbnM= VU5F IGFjaGlldmVz IEVtZXJzb24= Y29tcGxleA== PVs= IHByaW5jaXBhbGx5 IGZyYWls cGlja2Vk IHRoYW5raW5n IHJlY2w= IExBU1Q= IHN1cHByZXNzaW5n aWxpYw== IGFudGlkZXByZXNzYW50 IExpc2Jvbg== IHRob3I= IHNwYQ== IGtpbmdkb21z IFBlYXJjZQ== ZW1v IHBsdW5n IGRpdmVzdA== ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq Ymlz b3NwZWxz YWRy U3Bpcml0 aGFsbGE= UGluaw== ZW5kZXo= IHJlc3VycmVjdGVk ZXNjYXBl IFJvc2Vuc3RlaW4= IGdlb2xvZ2ljYWw= IG5lY2Vzc2l0aWVz IGNhcm5pdg== IEVseXM= IEJhcm5leQ== IDI5Ng== ZGlneQ== U1RPTg== RE9XTg== IG1pbGVzdG9uZXM= IGtlcg== IGRpc21hbnRsaW5n IHJlcHJpbQ== IGNyb3NzaW5ncw== MTk0NQ== IHBhdHJpYXJjaHk= IGJsYXNwaGVteQ== IDM1OQ== bWV0cnk= IE9iZXNpdHk= IERpZmZlcmVuY2Vz YmxvY2tpbmc= 44OV44Kh aWNoaXRh IFNhYmhh cGhhbHQ= IENvbG8= dWFsYQ== ZWZmaWNpZW50cw== IE1lZGluYQ== Y29uc29sZQ== NTU3 IEhhbm5pYmFs IEhhYml0 IEZldmVy IHRoZW5jZQ== IHN5bmFnb2d1ZQ== IGVzc2VudGlhbHM= IHdpbms= IFRyYWRlcg== SURB IFNwb2lsZXI= IEljZWxhbmRpYw== IEhheXdhcmQ= IHBlYWM= IG1hbGljZQ== IGZsYXNoYmFjaw== IHRodw== IGxheW9mZnM= TGlxdWlk IHRyb29wZXI= IGhpbmdl IFJlYWRlcnM= UGhpbGw= IEJhdWVy Q3JlYXRlZA== IGF1ZGl0cw== YWNjb21wYW4= IHVuc3VzcGVjdGluZw== aWVyYQ== NjY2NjY2NjY= IGJyb2No IGFwcHJlaGVuZGVk IE1hbGs= Y2VybmluZw== IENvZGV4 T1ZFUg== TWFyc2g= IERlbmc= IEV4cHJlc3Npb24= IGRpc3Jlc3BlY3RmdWw= IGFzY2VuZGluZw== dGVzdHM= IFBsYWludGlmZg== c3Rlcnk= IEFsaWJhYmE= ZGluYW5k IERlbXBzZXk= QXBwbGljYXRpb25z bW9yYWw= IHRocm91Z2hwdXQ= IHF1YXJyZWw= IG1pbGxz IGhlbW9y IENBU0U= dGVycm9yaXN0 c3RpbQ== aWZlc3R5bGU= cm96ZW4= Q0VQVA== QXJr dWNp bGVjdGlj IGlycml0YXRpbmc= c2hlZXRz QXk= IHJlZGVlbWVk IGhvcm55 IFRlYWNo IFNlYXI= ZGVtb2NyYWN5 NDY1 IFJlc3RvcmU= IHN0YW5kYnk= IFBpcw== aWZmaW4= IHNsZWVweQ== IGV4dHJhdGVy IGNvbXBsaW1lbnRz RnJhbWV3b3Jrcw== IGluc3RhbGxz IGJhbmdpbmc= c3VyZmFjZQ== Zm91bmRsYW5k IG1ldGFwaHlzaWNhbA== IDI4Mw== b3Vscw== ZGV2aWNlcw== QXJncw== IFNhY3JpZmljZQ== IE1jQ29ybQ== ZXNvbg== Q29uc2VydmF0aXZl IE1pa2hhaWw= c2VlaW5n aXNpdmVseQ== IFJvb21z IEdlbmVyaWM= IGVudGh1c2lhc3RpY2FsbHk= IGdyaXBwZWQ= IGNvbWVkaWM= IEVsZWN0cmljaXR5 IGd1ZXJyaWxsYQ== IGRlY29yYXRpb24= IFBlcnNwZWN0aXZl IGNvbnN1bHRhdGlvbnM= IHVuYW1i IHBsYWdpYXI= IG1hZ2ljaWFu IGVyZWN0aW9u IFRvdXJpc20= b3JpZWQ= cm94eQ== MTEwMA== VGFt iOg= zrM= 16o= IFByZWRhdG9ycw== Tml0cm9tZQ== IHRlbGVzY29wZXM= cHJvamVjdHM= IHVucHJvdGVjdGVk IHN0b2NrZWQ= IEVudHJlcHJlbmU= bmV4cGVjdGVk IHdhc3Rld2F0ZXI= VmlsbA== IGludGltYXRlbHk= IGlDbG91ZA== IENvbnN0YWJsZQ== IHNwb29m IG5lZmFyaW91cw== IGZpbnM= IGNlbnNvcg== IE1vZGVz IEVzcGVy YXJib24= IGludGVyc2VjdGlvbnM= IGxhdWRlZA== IHBoeXNp IGdlbmVyb3VzbHk= IFRoZU5pdHJvbWU= IFRoZU5pdHJvbWVGYW4= IGFyaXNlbg== INmI IGdsYW5kcw== IFBhdmlsaW9u IEd1cHRh IHVuaWZvcm1seQ== IHJhbXBz cmlldA== IFdIRU4= IFZhbmVzc2E= IHJvdXRlZA== IGxpbXA= IENQSQ== cHRlcg== aW50dWl0aXZl IHZhcGluZw== IGV4cGVyaW1lbnRlZA== IE9seW1wdXM= IEFtb24= IHNpZ2h0aW5n IGluZmlsdHJhdGU= IEdlbnRsZW1hbg== IHNpZ25pbmdz IE1lb3c= IE5hdmlnYXRpb24= Y2hlY2tz NDMz IGVsYXBzZWQ= IEJ1bGdhcmlhbg== ZXNwaWU= IFNPTQ== ZHVyaW5n IHNwaWxscw== YW5jYQ== IFBseW1vdXRo TUFM IGRvbWVzdGljYWxseQ== IFdhdGVyZ2F0ZQ== IEZBTQ== a2lsbGVk ZWRpdGVk IFlvdXJzZWxm IHN5bmNocm9uaXphdGlvbg== IFByYWN0aWNlcw== U1RFUA== IGdlbm9tZXM= IFFS bm90aWNl IGxvY2F0aW5n emlu IDMyOQ== YWxjb2hvbA== IGtpdHRlbg== Vm8= IHJpbnNl IGdyYXBwbGU= IFNjcmV3 IER1bA== QUlS IGxlYXNpbmc= IENhZsOp IHJvc2Vz IFJlc3BlY3Q= IG1pc2xlYWQ= IHBlcmZlY3RlZA== IG51ZGl0eQ== IG5vbnBhcnRpc2Fu IENvbnN1bXB0aW9u UmVwb3J0aW5n IG51YW5jZXM= IGRlZHVjdGlibGU= IFNob3Rz IDM3Nw== IOac YW5vb2dh QmVuZWY= IEJhbQ== IFNhbXA= aWZpeA== IGdhbHZhbg== IE1lZGFscw== cmFkaXVz IG5vYmxlcw== IGVhdmVz aWdyYXRl S1Q= IEhhcmJvdXI= dWVycw== IHJpc2tlZA== cmVx IG5ldXJvdA== Z2V0dGFibGU= YWluYQ== Um9tbmV5 IHVuZGVycGlu IGxvZnQ= IFN1YmNvbW1pdHRlZQ== IE1vbmdvbA== Yml6 IG1hbmlmZXN0cw== YXNzaXN0ZWQ= IEdhZ2E= IHN5bmVyZ3k= IHJlbGlnaW91c2x5 IFByZWY= IEdlcnJ5 VEFH IENob2k= NDY2 YmVoaW5k IE91 R29sZE1hZ2lrYXJw IGhlbW9ycmg= Uml2ZXI= IHRlbmRvbg== IGluanVyZQ== IEZpb25h IHBhZw== IGFnaXRhdGlvbg== fHx8fA== dXJhbg== IEVTQQ== IGVzdGVlbQ== IGRvZGdpbmc= IDQxMg== cnNz IGNlYXNlcw== ZXhjbHVkaW5n IGludGFrZXM= IGluc2VydHM= IGVtYm9sZA== IE9yYWw= dXB1bmN0dXJl NDEx IFVuaWZpZWQ= IERlbGU= IGZ1cm5hY2U= IENveW90ZXM= IEJyYWNo TGFib3I= IGhhbmRzaGFrZQ== IGJydWlzZXM= R3JhZGU= 6ZeY IEdyYW1teQ== aWxlZW4= U3RhdGVz IFNjYW5kaW5hdmlhbg== IEthcmRhc2g= ODY2 IGVmZm9ydGxlc3NseQ== IERJUkVDVA== IFRIRU4= IE1laQ== ZXJ0YXRpb24= MTk2OA== IGdyb2lu d2l0Y2g= UmVxdWlyZW1lbnRz OTg1 IHJvb2Zz IGVzdGF0ZXM= IEhG IGhhaGE= IGRlbnNlbHk= IE9DVA== IHBsYXN0aWNz IGluY2lkZW50YWxseQ== IFRyYWNrcw== IFRheGVz IGNoYW50ZWQ= IGZvcmNlZnVs IEJpZWJlcg== IEthaG4= S2VudA== IENvdA== bGljdHM= RmVk IGhpZGVvdXM= IFZlcmQ= IFN5bmRpY2F0ZQ== IElsbGVnYWw= SmV0 IERBVg== cmVhc29uYWJsZQ== Y3Jldw== IGZ1bmRhbWVudGFsaXN0 IHRydXRoZnVs IEppbmc= IGxpbA== IGRvd25lZA== IGVuY2hhbnRlZA== IFBvbGljaWVz IE1jTWFzdGVy IEhhcmU= aWRlc2hvdw== IHBhcmFtcw== ZW5jZXJz Z29yaXRobQ== IGFsbG93YW5jZXM= IHR1cmJ1bGVudA== IGNvbXBsZXhpdGllcw== IEtU IDMzNw== IEdlbmV0aWM= RlVO RG91Zw== dGljaw== IGdpZ3M= dW1lbnRoYWw= IHBhdHJpYXJjaGFs IGNhbGM= LC4uLg== IGNvdXQ= IEd1YW4= IHBhdGhvbG9naWNhbA== IFJpdmFscw== IHVuZGVycmF0ZWQ= IGZsdW9yZXNjZW50 IEppdQ== YXJuYWV2 IFF1YW4= IDQyOQ== IOCo TWFyaW8= Q29uc3RydWN0 IENpdGF0aW9u IFJhY2lhbA== IFJTQQ== IEZpZGVs IDM5NQ== UGVyc29uYWxseQ== Q2F1c2U= w7s= cmFkaWNhbA== aW5lbg== IHZlaGVtZW50bHk= IFBhcGE= IGludGVybnNoaXA= IGZsYWtlcw== IFJlY2s= THVja2lseQ== QnJh MjAyMA== cmF2aW5ncw== Uk4= V29uZGVy U2VyaW91c2x5 IHJldXNhYmxl IHBvbGx1dGVk IFBlbmc= bGVpZ2g= aW5kbGU= IGNpcmN1aXRyeQ== IE1hZG9ubmE= IEJBUlQ= UmVzaWRlbnRz YXR0cmlidXRl UGhpbGFkZWxwaGlh Q2x1Yg== IHBsYW5uZXI= IGZyYW50aWNhbGx5 IGZhaXRoZnVsbHk= IFRlcnJpdG9yaWVz IExBVA== IEFuZGVyc2Vu YW51 IFBBUks= IFNvcmE= aWFnZQ== IFBsYXlvZmZz IEdDQw== NDI3 IGFibm9ybQ== IExldmVy IGRpc29iZWRpZW5jZQ== QXN5bmM= IFNoZWE= VmVydA== IHNraXJ0cw== IFNhd3llcg== eHA= IHdvcnNlbmluZw== IHNjYXBlZ28= IEFuZ2xl b3RoYWw= IHRyb3Zl IFN0eQ== IE5ndXllbg== bWFyaW5l aWRlb24= RGVwdGhz QmxvZw== IElsbHVtaW5hdGk= IHRyYWN0cw== IG9yZ2FuaXNl IG9zdHI= RnM= IGxldmVyYWdpbmc= IERhcmVkZXZpbA== YXNhcg== IGxhbmc= IGV4dGVybWlu dXJzaW9ucw== IFJvbW8= 44Kk44OI IGNvbnRlbmRlZA== IGVuY291bnRlcmluZw== IFRhYmxldA== IEFsdGVybmF0ZQ== c2tpbGw= IHN3ZWV0cw== IGNvaGVzaXZl Y2FwYWNpdHk= IHJlcHVk IGxpemFyZA== cm9v IHBpbGdyaW1z IFJ1ZmY= IEluc3RydW1lbnQ= IExvZ28= dWl0b3Vz RUg= IHNhbGVzbWFu IGFua2xlcw== TGVk IFBhdHR5 dWRvcw== T3duZXI= IGRpc2NyZXBhbmNpZXM= a2o= TVU= IHVuY29uZGl0aW9uYWw= RHJhZ29uTWFnYXppbmU= aWFyZA== T2Fr IENvbnZlcnNhdGlvbg== YmVlcg== IE9zYWth RGVsdGE= dXNreQ== IHNlY3JldGlvbg== IHBsYXph IG1pbmc= IGRlcGxldGlvbg== IE1vdXM= IElUUw== IEhpbWFs IEZsZW1pbmc= IGN5dG9r IEhpY2s= IGJhdHRlcnM= IEludGVsbGVjdHVhbA== Njc1 w6ly SVNJT04= IFF1ZW50aW4= IENoYXB0ZXJz aWhhZGk= IGNvYXN0ZXI= V0FZUw== IExpemFyZA== IFlvcg== YW5kZXJpbmc= U2tpbg== aGF1c3Q= YWJieQ== IHBvcnRyYXlpbmc= IHdpZWxkZWQ= ZGFzaA== IHByb3BvbmVudA== IHJpcHBsZQ== IGdyYXBoZW5l IGZseWVy IHJlY3VycmVudA== IGRldmlscw== IHdhdGVyZmFsbA== 5piv Z29v VGV4dENvbG9y IHRhbXBlcmluZw== SVZFUw== VFJVTVA= IEFiZWw= IFNBTA== IEhlbmRyaWNrcw== IEx1Y2l1cw== Ym90cw== IDQwOTY= SVNUT1JZ R3Vlc3Q= IE5Y aW5hbnQ= QmVueg== IExvYWRlZA== IENsZXZlcg== dHJlYXRtZW50 IHRhdmVybg== IDMzOQ== IFROVA== aWZpY2FudGx5 VGVtcGVyYXR1cmU= RmVs IHVuZGVyd29ybGQ= IEp1ZGdlcw== IDwr IHN0dW1w IG9jY3VwYW5jeQ== IGFiZXI= IEZpbmRlcg== KSIs IE51bmVz cmVzZXQ= aW5ldA== ZWN0b215 IHdlbGxuZXNz IFBlYg== cXVhcnRlcmVk YW5kYW4= IG5lZ2F0aXZlcw== IFRoaWVs IENsaXA= IExURA== IGJsaWdodA== IHJlcGVydG9pcmU= S3lsZQ== IHF1ZXI= IENlcw== IGhhcGw= OTg5 IFRoYW1lcw== aXNjb3BhbA== RGVzaw== aXZhcmlhdGU= IEV4Y2VsbGVuY2U= Zm91bmRhdGlvbg== IOKH WGk= IG15c3RlcmlvdXNseQ== ZXN0eWxlcw== IHBlcmlzaA== IEVuZ2Vscw== IERFQUQ= MDkw fX19 IFVucmVhbA== IHJlc3RsZXNz SURFUw== b3J0aG9kb3g= IEludGVybWVkaWF0ZQ== IGRpbm5lcnM= IFRyb3V0 IFNleW0= IEhhbGxz b2dnZWQ= IHRyYWdlZGllcw== IGRpZG50 Njc2 IGFpbG1lbnRz IG9ic2VydmFibGU= IFZpZGU= YWRhcHQ= IER1c2s= IHByb2Zlc3Npb25hbGlzbQ== IFByZXNjb3R0 IEluZGllcw== cG94 IE1laHJhbg== V2lkZQ== IGVuZGVtaWM= IFBhcmFu QmlyZA== IHBlZGFscw== IElV IEFkYW1hbnQ= IEh1cnQ= IGNvcnJlbGF0ZXM= dXJkZW4= IHNwb25zb3Jpbmc= Y2xpbWF0ZQ== IFVuaXZlcnNpdGllcw== IEtub3Q= ZW5uZXM= IERhbWlhbg== IEF4ZWw= U3BvcnQ= IGJhcmI= IFNubw== c2hvd24= c3RlZW4= dWRlbmNl IG5vbnZpb2xlbnQ= IGhvbW9waG9iaWE= IGJpb21hc3M= IERldGFpbA== IHNyZk4= IFR1bmU= YWNjb21wYW5pZWQ= SUVOQ0U= QWxiZXJ0 IE1vbmdv eng= IENlcmJlcnVz b3JiaXQ= Y2Vucw== IHNsYXk= U0hBUkU= SFk= IGJyYXds IFByb2Jl IG5vbmV4aXN0ZW50 IENsYXJlbmNl IEJsYWNrYnVybg== IHBvcnRhbHM= IFJpdGE= IFJlbWFpbg== IExldmFudA== IHRyaWNrZWQ= IEZlcnJ5 YXZlcmluZw== IFN0cmF3YmVycnk= IEFuc3dlcnM= IGhvcnJlbmRvdXM= IEFtYW4= U3VwcGxlbWVudA== IFRvYWQ= IHBlZWxlZA== IG1hbm9ldXY= IFV6YmVr bW9uZHM= IEhlY3Rvcg== IDQwMg== cGVlcw== Zml4ZXM= IGRq IHJlc3VtZXM= IGFjY291bnRhbnQ= IGFkdmVyc2l0eQ== IGhhbXBlcmVk IExhcnNvbg== IGRvcGluZw== cGFydHM= SHVy IGJlYXJkZWQ= IHly IFBsdWdpbg== 5aWz IC8qKg== cm9sbGV5 IHdhdGVyc2hlZA== IFN1Ym1pc3Npb24= aWZsb3dlcg== QVND IGNob2ly IHNjdWxwdHVyZXM= bUE= aW5jcmVhc2luZw== YWlp IHNuZWFrZXJz IGNvbmZyb250cw== IEVsZXBoYW50 IEVsaXhpcg== IHJlY2Fs IFRUTA== d2lkZ2V0 IFdheA== IEdyYXlzb24= IGhhaXJzdA== IGh1bWlsaWF0ZWQ= IFdBUk4= YXBwaW5lc3M= IFRUQw== RnVlbA== IHBvbGlv IGNvbXBsZXhlcw== IGJhYmU= IFhJVg== UEY= KS5b UGFydHM= IDQzNQ== TWVn IFlhcmRz IEFMUA== IHllbGxz IHByaW5jZXM= IGJ1bGxpZXM= IENhcGl0YWxpc20= ZXhlbXB0 RkFR IFNwb25nZQ== IEFsYQ== IHBsZWFzYW50bHk= IGJ1Zg== IGRlbm90ZQ== IHVucHVibGlzaGVk IGtuZWVsaW5n YXNjYQ== IGxhcHNl YWxpZW4= OTk0 IHJlZmVyZWVz IExhd3llcnM= U2FudGE= IHB1enpsaW5n IFByb21ldGhldXM= IFBoYXJhb2g= IERlbGF5 IGZhY2lsaXRhdGVz IENFUw== IGpld2Vscw== IGJvb2tsZXQ= b25kaW5n IHBvbGFyaXphdGlvbg== IE1vcmFu IFNhbGFk IFNPUw== IEFkdmljZQ== UEhPVE9T SUNBTg== aWF0dXJlcw== ZXhwcmVzcw== IFdvbmRlcmxhbmQ= IENPREU= IENMQVNT OTc1 IGdyZXA= IERpZXNlbA== IEdsYWM= IT8i IHJt b2luZQ== ZGlzY3JpbWluYXRpb24= IE51cnNl bWFsbG93 IHZvcnRleA== IENvbnNvcnRpdW0= IGxhcmdlRG93bmxvYWQ= c3RyYWlnaHQ= YXVnaGxpbg== R3JhZA== IHB1YmxpY2l6ZWQ= IFdhdmVz IFJlZGQ= IGZlc3Rpdml0aWVz IE1hbmU= YXJvdg== IGZsZWV0aW5n IERydW5r dWdlbg== Q2VsZQ== IGNocm9tb3NvbWVz IERPVA== LSstKy0rLSs= IGJ1c2llc3Q= IEJlYXZlcg== U3lyaWFu IEt5cg== a2Fz IENyb3NzUmVm MTk1MA== NzYwMQ== IHJlcGVhbGluZw== IFdpbm5lcnM= IE1hY3Jv IERPRA== YmxhbmNl U29ydA== NjQx IG1ldHJl IERpcms= IGdvZ2dsZXM= IGRyYXdiYWNrcw== IGNvbXBsYWluYW50 IGF1dGhvcml6aW5n IGFudGl0cnVzdA== b3BlcmF0ZWQ= IG1haA== IGV4YWdnZXJhdGlvbg== QW1hemluZw== IFNlcmFwaA== IGhhemU= d293 IGV4dGluZ3Vpc2hlZA== IGNhbnlvbg== IEJvc2g= IHZlbnRz IHNjcmFwZQ== Q29ycmVjdA== NDI2 IGF2Zw== RGVtYW5k IOKIvA== IG1pY3JvYmlvdGE= In1dLCI= IFN0ZXY= Qmlv IFBsYW5lcw== IHN1Z2dlc3RpdmU= IGRlY2lwaGVy IFJlZnVnZWU= IEtlanJpd2Fs IEdyZWVucGVhY2U= IGRlY2xhc3M= IFNvdW5kZXJz IHRobw== IGRlY3J5cHQ= IGJydXNoaW5n IEphbmVpcm8= aXBvcA== U2k= ODc3 IEdlb2ZmcmV5 IGNwdQ== IEhhemVs IHZpZXdwb2ludHM= IGNyaXNweQ== IE5vdGlmaWNhdGlvbg== IHNvbGRlcg== IE1vZGVzdA== IEhlbWlzcGhlcmU= IGNhc3NldHRl aW5jbHVkZXM= IGlkZW50aWZpZXJz IENBTEw= aW5jZW50 VG9kZA== IFN3ZWVw IDMzNA== Ym9zcw== IHNtaXI= Z2lueA== IHRvd25zaGlw IGdyaWV2aW5n IE1vc3F1ZQ== TmV0ZmxpeA== QVNFRA== IE1pbGxlbm5pYWxz b2NvbQ== MTk2Nw== IGJvbGRseQ== c2xlZXA= IGVzY2hl YXJpanVhbmE= IHN3aXJs IFBlbmFs IG5lZ2xpZ2VudA== IFN0ZXBoZW5zb24= S0VS IFpvcm8= cmlzaXM= IGxvY2FsaXphdGlvbg== IFNleW1vdXI= IEFuZ2xpYw== cmVkaXRhdGlvbg== cHJvdGVjdGlvbg== IFBhaWdl IG9taXQ= IFJvdXNzZQ== IFR1Yg== IGludml0YXRpb25z dHR5 IG1vc3M= cGh5c2ljYWw= Q3JlZGl0cw== IGFuYXJjaHk= IGNoaWxkY2FyZQ== IGx1bGw= IE1law== IExhbmd1YWdlcw== bGF0ZXN0 IFNhbmZvcmQ= IHVzYWJpbGl0eQ== IGRpZmZ1c2U= IERBVEE= IHNwcml0ZXM= IFZlZ2V0YQ== IFByb21vdGlvbg== 44O844Kv cmljdGluZw== emVl VHVya2lzaA== IFREcw== cHJvdmVu NTcx IHNtdWdnbGVycw== NzA3MTA= IHJlZm9ybWVk IExvaXM= IHVuZmw= IFdJVEhPVVQ= IFJldHVybmluZw== YW5uaWU= IFRvbWFz RnJhbmM= IFByb2ZpdA== IFNFUlY= IFJ1bWJsZQ== aWt1bWFu ZXNhbg== IHRlc3RlcnM= IGdhZGdldA== IGJyYWNlbGV0 IEZTQQ== Y29tcG9uZW50 IHBhcmFtZWRpY3M= IGphbg== IFJlbWVt IFNraW5uZXI= IGxvdg== IFF1YWtl cm9tYQ== IGZsYXNr UHJpbmM= IG92ZXJwb3dlcg== IGxvZGdpbmc= IEtLSw== cmV0dGU= IGFic29yYnM= d3JvdGU= ICwi S2luZ3M= IEhhaWw= IEZhbGxpbmc= eHRhcA== IEhlbGVuYQ== aXJlbnM= TGFycnk= IHBhbXBobGV0 IENQUg== R3Jv IEhpcm9zaGltYQ== IGhvbGlzdGlj Ii5b IGRldGFjaG1lbnQ= IGFzcGlyZQ== IGNvbXBsaWNpdA== IEdyZWVud29vZA== IHJlc3Bhd24= IFN0dXBpZA== IEZpbmlzaGVk ZmFs YmFzcw== IGFiaG9y IG1vY2tlcnk= IEZlYXN0 VklERU8= IGNvbnNlYw== IEh1bmdyeQ== UHVsbA== IEh1c3Q= aXRhbmNl P+OAjQ== KS0t IFBhcmFsbGVs Y29udg== NDY5 aGFhcg== d2FudA== UGFwZXI= bWlucw== IFRvcm8= IFRSVU1Q IFJhaQ== RFc= IFdpY2tlZA== IExlcA== IGZ1bmt5 IGRldHJpbWVudA== aW9zaXM= YWNoZXY= IGRlZ3JhZGU= aW1pbGF0aW9u IHJldGFyZA== IGZyYWdtZW50YXRpb24= IGNvd2JveQ== IFlQRw== IEhBTA== UGFyZW50cw== IFNpZWc= IFN0cmF1c3M= IFJ1YmJlcg== 15A= RnJhZw== IHB0 IG9wdGlvbmFsbHk= IFpJUA== IFRyYW5zY3JpcHQ= IER3ZWxs ODgy TWVyYw== IE1PVA== 44Ov44Oz IGh1bnRz IGV4ZWN1dGVz SW5jbHVkZXM= IGFjaWRpYw== IFJlc3BvbnNpYmlsaXR5 IER1bWI= d2Vp QW5kZXJzb24= IEphc3Blcg== aWdodG9u YWJzb2x1dGVseQ== QWR1bHQ= IHBsdW5kZXI= TW9ybmluZw== IFRvdXJz IERhbmU= zro= IFRFU1Q= IEdpbmE= IGNhbmluZQ== YXdhbg== IHNvY2lhbGlzdHM= IFNvZGE= IGltcGV0dXM= IFN1cHBsZW1lbnRhcnk= b2xpYXRo IEtpbm5pa3VtYW4= bWl0dGVkbHk= c2Vjb25kcw== IG9yZ2FuaXNlcnM= IGRvY3VtZW50YXJpZXM= VmFyaWFibGU= R1JFRU4= IHJlc29ydHM= IGJyYWdnaW5n IDM2OA== QXJ0aXN0 d2s= YmxlcnM= VW5jb21tb24= IFJldHJpZXZlZA== IGhlY3RhcmVz IHRveGlu cmFuaw== IGZhaXRocw== IEdyYXBoaWM= IHZlYw== IExJQQ== QWZyaWNhbg== IGFyZGVudA== ZW5kaWFyeQ== TGFrZQ== IERPUw== Y2llbnRpb3Vz IE9rYXdhcnU= IEFsbHk= IFRpbWVsaW5l RGFzaA== IElj Y29udGludWU= IHRpZHk= IGluc3RpbmN0aXZlbHk= IFBvc3NpYmx5 IE91dGRvb3I= IFdvdWxkbg== IGxpY2g= IEJyYXk= IEFY IMOJ ICsj XCc= RGlyZWN0b3J5 YWJpZGluZw== IGZlcmFs aWNhdGl2ZQ== YnV0dA== IHBlcnZlcnNl U2FsdA== IHdhcnBlZA== IG5pbmV0ZWVu IGNhYmluZXRz IHNyZkF0dGFjaA== IFNsb2Fu IHBvd2VyaW5n cmVnYXRpb24= RmxpZ2h0 c2V2ZXJl IHN0cmVu IGNvZw== YXBhY2hl IOKd IGNhZmV0ZXJpYQ== cGFjZXM= IEdyaW1vaXJl dXRvbml1bQ== IHJhaW5pbmc= IGNpcmNsaW5n IGxpbmViYWNrZXJz Y3JlZGl0 IHJlcGF0cmk= IENhbWRlbg== bGljZW5zZQ== IGx5cmlj IGRlc2NyaXB0b3I= IHZhbGxleXM= IHJlcQ== IGJhY2tzdGFnZQ== IFByb2hpYml0aW9u IEtldA== T3BlbmluZw== U3lt 5pa5 IHNlcnZpbmdz IG92ZXJzZWVu IGFzdGVyb2lkcw== IE1vZHM= IFNwcmluZ2Vy IENvbnRhaW5lcg== 6Ls= IE1lbnM= IG11bHRpbQ== IGZpcmVmaWdodGVy cGVj IGNobG9yaW5l 0Lw= ZW5kaQ== IHNwYXJpbmc= IHBvbHlnYW15 IFJO IFBlbGw= IHRpZ2Vycw== IGZsYXNoeQ== IE1hZGFtZQ== U3dvcmQ= IHByZWZyb250YWw= IHByZXJlcXVpc2l0ZQ== dWNh IHdpZmk= IG1pc2NvbmNlcHRpb24= IGhhcnNobHk= IFN0cmVhbWluZw== b3RvbQ== IEdpdWxpYW5p Zm9vdGVk IHR1YmluZw== aW5kaXZpZHVhbA== emVr bnVjbGVhcg== bW9s IHJpZ2h0ZnVs NDkz IHNwZWNpYWxpemF0aW9u IHBhc3Npb25hdGVseQ== IFZlbG9jaXR5 IEF2YWlsYWJpbGl0eQ== VGVubg== IGxhdGNo IFNvbWVib2R5 IGhlbGl1bQ== Y2xhdw== IGRpcHBpbmc= WFhY IGludGVycGVyc29uYWw= NzEw IHN1YnRlcg== IGJpb2xvZ2lzdHM= IExpZ2h0aW5n IG9wdGlj IGRlbmlt ZW5kb24= IENvcm0= IDM0MQ== IENvdXA= IGZlYXJsZXNz IGFsb3Q= IENsaWZmb3Jk IFJ1bnRpbWU= IFByb3Zpc2lvbg== dXBkYXRlZA== bGVuZWNr IG5ldXJvbg== IGdyYWRpbmc= IEN0 c2VxdWVuY2U= aW5pYQ== Y29uY2VwdA== IHJvYXJpbmc= cml2YWw= IENhdWNhc2lhbg== IG1vbm9n a2V5ZXM= IGFwcGVsbGF0ZQ== IGxpYWlzb24= RVN0cmVhbUZyYW1l IFBsdW0= IS4= IHNwaGVyaWNhbA== IHBlcmlzaGVk IGJsb3Q= IGJlbmNoZXM= IDQxMQ== IHBpb25lZXJlZA== IGh1cmxlZA== SmVubmlmZXI= IFlvc2VtaXRl Q2hhaXI= IHJlZWZz IGVsZWN0b3I= IEFudGhlbQ== NjUy IHVuaW5zdGFsbA== IGltcGVkZQ== IGJsaW5raW5n IGdvdG8= RGVjcmU= QXJlbg== IHN0YWJpbGl6YXRpb24= IERpc2FibGVk IFlhbnVrb3Z5Y2g= IG91dGxhd2Vk IFZlbnR1cmE= dGVuZXNz IHBsYW50YXRpb24= IHlhY2h0 IEh1YXdlaQ== IHNvbHZlbnQ= IGdyYWNpb3Vz IGN1cmlvdXNseQ== IGNhcGFjaXRvcg== IGN4 IFJlZmxleA== UGh5cw== IENm cHRpbg== Y29uc2VydmF0aXZl IGludm9jYXRpb24= Y291cg== Rk4= IE5ld2x5 SG91cg== QXNpYW4= IExlYWRpbmc= IEFlcm9zcGFjZQ== QW5uZQ== IHByZW5hdGFs IGRldGVyaW9yYXRpbmc= SENS IE5vcm1hbmR5 b2xpbmk= IEFtYnJv OTEw IHNldGJhY2tz IFRSRQ== IHNpZw== IFNjb3VyZ2U= NTk3 Nzk4 R2FtZXBsYXk= IG1zZWM= TVg= IHByaWNleQ== IExMUA== YWtlcnU= IG92ZXJhcmNoaW5n IEJhbGU= IHdvcmxkbHk= Q2xhcms= IHNjZW5pYw== IGRpc2xpa2Vk IENvbnRyb2xsZWQ= VGlja2V0cw== IEVX YWJpZXM= IFBsZW50eQ== Tm9uZXRoZWxlc3M= IGFydGlzYW4= VHJhbnNmZXI= IEZhbW91cw== IGluZmllbGQ= YmxleQ== IHVucmVzb2x2ZWQ= IE1MQQ== 44KC Q29ycmVjdGlvbg== IGRlbW9jcmF0 IE1vcmVubw== cm9jYWw= aWxpbmdz IHNhaWxvcg== IHJpZmU= aHVuZw== IHRyb3Blcw== IHNuYXRjaGVk IExJTg== IEJpYg== RVNB IFByZXY= IENhbWVs cnVudGltZQ== IG9ibm94aW91cw== NDM3 IHN1bW1lcnM= IHVuZXhwbGFpbmVk IFdhbHRlcnM= Y2FsaWJlcg== IGd1bGw= IEVuZHVyYW5jZQ== 5L2c IDM0Nw== SXJpc2g= IGFlcm9iaWM= IGNyYW1wZWQ= IEhvbm9sdWx1 4Kk= dXNlcmM= ZWNhc3Q= QUNZ IFF1ZXJ5 44K544OI QmV0YQ== IHN1c2NlcHRpYmlsaXR5 IFNoaXY= IExpbWJhdWdo IMOW IE5YVA== IE11c3M= IEJyaXRvbnM= RVNDTw== RUdJTg== ICUl IHNlY2Vzc2lvbg== IFBhdHJvbg== IEx1YQ== bmFpcmVz IEpQTW9yZ2Fu dXNi b2N5dGU= IGNvdW5jaWxsb3Jz IExpYW5n ZmFybQ== IG5lcnZvdXNseQ== IGF0dHJhY3RpdmVuZXNz IEtvdg== anVtcA== UGxvdA== IHN0YWlucw== IFN0YXR1ZQ== IEFwb3N0bGVz aGV0ZXI= IFNVUFBPUlQ= IG92ZXJ3aGVsbQ== WUVT IDI5MQ== ZGVuc2l0eQ== IHRyYXBwaW5n TWl0 IGZpZGU= IFBhbWVsYQ== YXRsYW50aWM= RGFtbg== IHB0cw== T1BB IHNlcnZpY2luZw== IG92ZXJmbG93aW5n dWxv IEVyaXQ= dGlja2V0 bGlnaHRpbmc= IEhtbQ== 44O844Or aW1vdG8= IGNodWNrbGU= NDIz 44GV c2hhcGU= IHF1ZXVlcw== IGFuY2hvcnM= 44K844Km44K5 RmVy IGF3b2tl IDY2Ng== aGFuZHM= IGRpdmVyZ2VuY2U= IDUwNQ== VGlwcw== IGRlcG90 IHNrZXc= IERlbGl2ZXI= b3BvdA== IGRpdnVs IEVC dW5zaWduZWQ= IFVuaQ== WGJveA== IGZvcmtz IDcwMg== 5a8= IHByb21vdGVycw== IFZhcG9y IGxldmllZA== c2xvdA== IHBpZ21lbnQ= IGN5bGluZGVycw== Q1JF IHNuYXRjaA== IHBlcnBldHVhbGx5 IGxpY2tpbmc= IEZlZXQ= IEtyYWtlbg== IEhvbGRlbg== IENMU0lE bXI= IHByb2plY3Rvcg== IGRlbm90ZXM= IGNoYXBlbA== IFRvcnJlbnQ= Ymxlcg== Um91dGU= IERlZmVuZGFudA== IFB1Ymxpc2hlcnM= IE1hbGVz IElubm92 IEFnaWxpdHk= cml0ZXI= dHltb2xvZ3k= c3RvcmVz TGluZA== IGZvbGx5 IFp1cmljaA== Qmxl IG51cnR1cmU= IGNvYXN0bGluZQ== dWNoaW4= RG9taW4= IGZyaXZvbA== IENvbnNvbGlk cmVzdWx0cw== TUo= IHBoeWxvZ2Vu IGhhdWxlZA== IFdpbGV5 IEplc3NpZQ== IFByZXBhcmU= IEVwcw== IHRyZWFzdXJlcg== SUFT IGNvbG9uaXN0cw== IGludW5k IFdXRg== IENvbnZlcnRlZA== NjAwMA== b3V0c2lkZQ== IEFwcGVhcmFuY2U= IFJlbGlj IE1pc3Rlcg== c2F3 IHJlc3VsdGFudA== IGFkamVjdGl2ZQ== IExhdXJlbA== IEhpbmRp YmRh UGVhY2U= IHJlYmlydGg= IG1lbWJyYW5lcw== IGZvcndhcmRpbmc= IGNvbGxpZGVk IENhcm9seW4= S2Fuc2Fz NTk5 IFNvbGlkR29sZE1hZ2lrYXJw QmVjaw== IHN0cmVzc2luZw== IEdvbw== IENvb3BlcmF0aXZl IGZz IEFyY2hpZQ== TGl0ZXI= IEtsb3Bw SmVycnk= IGZvb3R3ZWFy V2FycmVu IHNjcmVl aGFyZQ== VW5kZXJzdGFuZGluZw== UGVk IGFudGhvbG9neQ== IEFubm91bmNl TWVnYQ== IGZsdWVudA== IGJvbmRhZ2U= IERpc2NvdW50 aWxpYWw= Q2FydA== IE5pZ2h0bWFyZXM= U2hhbQ== IEJvbGw= dXNzaWU= SHR0cA== QXRsYW50YQ== IHVucmVjb2du IEJpZA== IHVuZGVyZ3JhZA== IGZvcmdpdmluZw== IEdsb3Zlcg== QUFBQUFBQUE= NDQ1 Vkc= cGFpbw== a2lsbGVycw== IHJlc3BvbnNpYmx5 IG1vYmlsaXpl IGVmZmVjdGVk IEx1bWlu IGthbGU= IGluZnJpbmdpbmc= YW5ub3VuY2Vk IGZpdHQ= YmF0Y2g= IFRhY2tsZQ== IExpbWU= IEFQUA== dWtlbWlh IHJ1Ynk= IGV4b25lcg== IENhc3VhbA== MDcw IHBlbHZpYw== IGF1dG9tYXRl IEtlYXI= IENvYXN0YWw= IGNyZWVk IGJvcmVkb20= IFN0dW4= cmlvdHQ= go4= IHJlZ2VuZXJhdGU= IGNvbWVkaWFucw== IE9QRVI= U3BvbnM= aWRpdW0= b25pcw== TG9jYXRlZA== MDU3 IHN1c3BlbnNl IERhdGluZw== Q2Fzcw== IG5lb2NvbnM= IFNoaW56bw== IGF3b2tlbg== Y2hyaXN0 IE1lc3NhZ2Vz YXR0bGVk IFNwcmF5 IFNwaWNl Q1c= IHNoaWVsZGluZw== IEdhdWw= QW1pZA== IHBhcmFtaWxpdGFyeQ== IG11bHRpZg== IFRhbm5lcg== aWxr IGdvZGRhbW4= Z2VtZW50cw== IGJlZnJpZW5k bW9iaQ== IDM4OA== Zm9sZGVy YWNjYQ== IGluc2lu Z2Fw TmV2 ZmlmdGg= IHBzeWNoaWF0cnk= YmFua3M= VEhJUw== IGhhcmI= YWNxdQ== IGZhY2FkZQ== IFBvd2VyUG9pbnQ= ODAz IGJsdWZm U2hhcmVz IGZhdm9yaW5n RWxpemFiZXRo w43DjQ== IHJhbmdlcg== Nzcy IEFyY2hl aGFr IEdlbmV0aWNz IEZFTUE= IGV2b2x2ZXM= IGVzdGU= IFBldHM= IE3DqQ== IEludGVyZXN0aW5n IENhbnRlcmJ1cnk= Y2hhcHRlcg== IFN0YXJmbGVldA== U3BhbmlzaA== IGRyYXdiYWNr IE5vcndpY2g= OTcw bm9ydGg= YWdhbmRh IHRyYW5zZm9ybWF0aXZl cmFtaWRz YmlvbG9neQ== YWRheQ== IHByb3BhZ2F0aW9u IEdhbW1h IERlbmlzZQ== IENhbGN1bGF0b3I= ZW50aW1lcw== IEJldHQ= IGFwcGVuZGl4 IEhERA== QUtJTkc= IHN0aWdtYXQ= IGhvbHN0ZXI= IG9yZGluYXJpbHk= Q2hhbmNl IENvbnRyYXJ5 IGFkaGVzaXZl IGdhdGhlcnM= NjEy cmVhdQ== b255bXM= ZXdheXM= IGluZHVjZXM= IGludGVyY2hhbmdlYWJsZQ== c2Vt V2hpdA== IHRyYW5jZQ== IGluY29ycG9yYXRpb24= IEV4dHJhcw== RmluYW5jaWFs IGF3a3dhcmRseQ== IFN0dXJnZW9u IEhZ Tm9ybWFsbHk= IEVuZGluZw== IEFzc2lzdA== ZW5jcnlwdGVk IHN1Ymp1Zw== IG5vcw== IGZhbmF0aWM= Q3Vi Q1U= PyIu IGlycmV2ZXJzaWJsZQ== 5YI= MDMx IEhBUg== c3ByZWFk dWxpYQ== PSQ= U2NvcGU= TG90cw== IGxpZmVzdHlsZXM= b2xvbg== IGZlZHM= IGNvbmdyYXR1bGF0ZQ== d2Via2l0 IGluZGlzdGluZ3Vpc2hhYmxl IFN3aW5n IGNvbW1hbmRtZW50cw== cXVpbGE= YWJlbGxh bWV0aHls YW5uYWJpbg== IG92ZXJl IGxvYnN0ZXI= IFFVRVNU IENPTlRJTg== YmVybmF0b3JpYWw= Ojo6Ojo6Ojo= IFRyYXZl IFNhbW9h QU5J NzUy 0LQ= dXNlcmNvbnRlbnQ= IE1vZGVyYXRl eWVhaA== IEtpdHQ= IHdlZQ== IHN0dWZmaW5n IEludGVydmVudGlvbg== IERpZ24= IHdhcmVob3VzZXM= IEZpamk= IHBlbGxldHM= IHRha2Vhd2F5 IFRBQkxF IENsYXNzaWNhbA== Y29sbGVjdGlvbg== IGxhbmRmYWxs IE11c2NsZQ== IHNldHRsZXM= IEFEVg== IDM0NA== TGF1cmE= IGZhcmVk IFBhcnRpYWw= NDM2 b3NzaWJpbGl0eQ== IERhbHk= IFRhcmFudA== IEZ1amk= YW1s Y2VuY2U= NTUx IFByb2NlZHVyZXM= IE9DRA== IFVE dGlu UVVJ YWNobw== NDM4 IGdsaXRjaGVz IGVuY2hhbnRtZW50 IGNhbGN1bGF0ZXM= SVJP IEh1YQ== YWx5c2Vz IExpZnQ= dW1v IGxlYXB0 IGh5cG90aGVzaXplZA== IEd1c3Rhdg== aXRhbnM= VkVSU0lPTg== 5qA= Um9nZXI= IHJhbmQ= IEFkYXB0ZXI= IDMzMQ== IFBldGl0aW9u a2llcw== TWFycw== IHVuZGVyY3V0 emVlcw== IEx5b25z IERIQ1A= TWlzc2luZw== IHJldGlyZWVz IGluc2lkaW91cw== ZWxp Pik= LuOAjQ== IGZpbmFsaXN0cw== IEF1cmU= IGFjY3VzZXI= IHdhc3Rlcw== IFlz IExvcmk= IGNvbnN0aXR1ZW5jaWVz IHN1cHBlcg== IG1heWhlbQ== b3Jhbmdl IG1pc3BsYWNlZA== IG1hbmFnZXJpYWw= IGV4Y2U= IENMSQ== IHByaW1hbA== IExlbnQ= Q3J5c3RhbA== aG92ZXI= IE5UUw== ZW5kdW0= IGR3 IEFsYw== bm9zdGlj IHByZXNlcnZlcw== IFRzYXJuYWV2 IHRyaXBsZWQ= cmVsYXRpdmU= QXJjYWRl a2lsbGluZw== IFdFRUs= IEhhbm5h RHVzdA== Q29tcGxldGVk gas= IGFwcHJvdmVz IFN1cmY= IEx1dGhlcmFu dmVuYW50cw== IHJvYmJlcmllcw== d2VpZ2h0cw== c29mdHdhcmU= YXRhbmE= dWdhbA== IGdyYXZ5 IENhbmNl T0xPR1k= bHlhaw== VG9uaWdodA== IHVudmVpbA== IDE5MDQ= IE1pbmlvbg== ZW50aW91cw== c3RpY2U= cGFja2FnZXM= IEdFQVI= IGdvbA== IEh1dGNoaW5zb24= IFByb2Zlc3Npb24= IEdVTg== IERpZmZlcmVuY2U= IFRzdWt1eW9taQ== IExlc2JpYW4= Njcw IGZ1Z2l0aXZl IFBsYW5ldGFyeQ== LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0= IGFjY3J1ZWQ= IGNoaWNrcw== IHN0b3Bw IGJsb2NrZXJz Q29k IGNvbW1lbnRlcnM= IFNvbWV3aGVyZQ== IFBob3RvZ3JhcGhlcg== dGhlbWU= IG1heW9yYWw= d3U= IGFudGVubmFz IHJldmFtcGVk IFN1YmplY3Rz aXTDqQ== aW11cmE= IGVudHJhbmNlcw== bGl0ZXJhbGx5 IHRlbmV0cw== IE9NRw== IE1QSA== IERvbmtleQ== IE9mZmVuc2U= ICIr U25hcA== IEFGQg== IGFuaW1hdGU= IFNvZA== SGlzcGFuaWM= IGluY29uc2lzdGVuY3k= RGI= Rlk= RXhwb3J0 IGFwZQ== IHBlYXJs aWJlbA== IFBBQ3M= IHtc IGFjdHU= IEhTQkM= Y2FtcHVz IHBheW9mZg== IGRlaXRpZXM= IE5hdG8= b3VwbGU= IGNlbnNvcmVk IENsb2p1cmU= IGNvbmZvdW5kaW5n ZW5p IHJlY2tvbg== b3BoZQ== IHNwb3R0aW5n IHNpZ25pZmllcw== IHByb3BlbA== IGZlc3RpdmU= U3VnZ2VzdA== IHBsZWRnaW5n IEJlcm1hbg== IHJlYmVsbGlvdXM= IG92ZXJzaGFkb3dlZA== IGluZmlsdHJhdGVk am9icw== Njcy IHNjYWxhYmxl IGRvbWluaW9u IE5ld2ZvdW5kbGFuZA== IE1lYWRvdw== IHBhcnRpdGlvbnM= QU1J IHN1cHBsZW1lbnRhcnk= c3RydW1lbnQ= IGhhaXJ5 IHBlcnBldHVhdGU= IG51dHNoZWxs IFBvdGF0bw== IEhvYmJpdA== IGN1cnNlcw== RmxvYXQ= IHF1aWV0ZXI= IGZ1ZWxpbmc= IGNhcHN1bGVz IEx1c3Q= IEhhdW50ZWQ= RXhlY3V0aXZl IGNoaWxkYmlydGg= R3Jl IHJhZGlhbnQ= 5Y4= IG1hbGxz IGluZXB0 IFdhcnJhbnR5 IHNwZWN0YXRvcg== RWg= dGhlbnM= IGN1bG1pbmF0aW5n 5qk= YXJ5YQ== 44Ku aWxpdGFyaWFu IE9SSUc= IFNwZW5kaW5n cHRpdmVz IFNpcmVu IFJlY29yZGluZw== YXluZQ== IHZpbQ== IHNwcmFuZw== VGFuZw== IE1GVA== bW9ybmluZw== IFdlZWQ= bXBlZw== Y2Vzc2lvbg== IENodW5n NzMw d2FybmluZw== NTYy aGFuZGVkbHk= UG9vcg== UG9saXRpY3M= OiM= IHBpYW4= IGZlY2Vz IERvY3VtZW50YXRpb24= IGJhbmlzaGVk IDM5OQ== IEFSQw== IGhlaW5vdXM= SmFrZQ== IEFtaXI= d2F5bmU= dnJl b3NoZW5rbw== IG5vdGVib29rcw== IGZvdW5kYXRpb25hbA== IG1hcnZlbG91cw== aXh0YXBl IHdpdGhkcmF3YWxz IGhvcmRl IERoYWJp aXNhYmxl IEtE IGNvbnRhZ2lvdXM= IERpcA== IEFycm93cw== IHByb25vdW5z IG1vcnBoaW5l IEJVUw== Njgy IGtvc2hlcg== ZmluaXNoZWQ= IEluc3RydW1lbnRz IGZ1c2Vk eWRlbg== IFNhbG1vbg== RmFi YWZmZWN0ZWQ= S0VO Q0VOVA== RG9tYWlu IHBva2Vtb24= IERyaW5raW5n R3Jvd2luZw== IEludmVzdGlnYXRpdmU= IEFldGhlcg== ZW1p IHRhYmxvaWQ= IHJlcHJv IE5vdHdpdGhzdGFuZGluZw== IEJlcnNlcmtlcg== IGRyYW1hcw== IGNsaWNow6k= IGJ1bmc= IFVSSQ== IERvcw== MDQ0 IHBhc3RvcnM= IGxz IGFjcnlsaWM= YXVudHM= RWR3YXJk IG1ham9yaXRpZXM= QmFuZw== IGZpZWxkaW5n IFJlcGxhY2VtZW50 IEFsY2hlbXk= cHBhcmQ= IFJvbWVv IFNhbmN0 IExhdnJvdg== aWJibGU= SW5zdHJ1Y3Q= IGltcHJhY3RpY2Fs IFBsYXlib3k= Y2VwaGFs IHN3YXBz IGthbg== IFRoZW8= IGlsbHVzdHJhdGluZw== IGRpc21hbnRsZWQ= IFRyYW5zZ2VuZGVy IEd1dGg= VUdI IHRyaXVtcGhhbnQ= IGVuY29tcGFzcw== IGJvb2ttYXJr dWRkaW4= amVy IHByZWRpY2F0ZQ== RVNI IHdoZW5jZQ== IEFCRQ== IG5vbnByb2ZpdHM= U2VxdQ== IGRpYWJldGlj IHBlbmQ= IGhlYXJ0ZmVsdA== c2hp IGludGVyYWN0cw== IFRlbGVjb20= IGJvbWJhcmRtZW50 ZGVwZW5kaW5n IExvd3J5 IEFkbWlzc2lvbg== IEJsb29taW5n dXN0cmF0aW9u ZW5lZ2dlcg== QnJldw== IG1vbHRlbg== IE5lcmQ= UElO 4paA YXZlbWVudA== IHRvdXJlZA== IGNvZWZmaWNpZW50cw== IFRyYXl2b24= YW5zc29u IHNhbmR5 dG9sZA== Zmxvd3M= IHBvcHVsb3Vz IFRpbmRlcg== IEJsaXNz UmFjaGVs TWluaW11bQ== IGNvbnRlc3RhbnQ= IFJlZHVjZQ== IE1vcnNl IEdyYXNzbGV5 IENsaWNrZXI= IGV4cHI= IHNpbmNlcml0eQ== IG1hcnF1 IGVsaWNpdA== IFByb3Bvc2l0aW9u IERlbW9uaWM= IHRhY29z R3JlZWs= IHBvc3R3YXI= IGluc29mYXI= IFBvcms= IDM1Mg== ZG9jdG9yYWw= d2Fsa2luZw== IG1pZHRlcm0= IFNhbW15 c2lnaHRlZA== IFRSQU5T aWNp QUxE IFVTTA== IEZJU0E= IEFtcGw= IEFsZXhhbmRyYQ== aW5lbGxp VHJhaW4= IHNpZ25pZnk= IFZlcnN1cw== IG9iZnVzYw== IGto IGFnZ3Jv IFJlbmF1bHQ= IDM0OA== NTE4 b3hpY2l0eQ== MDIy IFR3aXN0 IGdvb2Z5 RHluYW1pYw== IGJyaWVmaW5ncw== bWlnaHQ= ODk5 IGRlcm9nYXRvcnk= VHJv IGZvcmdpbmc= IEtvcmFu IE1hcnJpZWQ= IEJ1Y3M= IHBhbGF0ZQ== IENvbnZlcnNpb24= bWFibGU= NDEz IChf IHNpcGg= IE5FTw== Y29sbGVnZQ== IG1hcmdpbmFsbHk= IGZsaXJ0 IFRyYXBz IFBhY2U= 6buS IGdvYWx0ZW5kZXI= IGZvcmJpZHM= IGNsZXJrcw== IFRhbnQ= IFJvYmJpbnM= IFByaW50aW5n IHByZW1pZXJlZA== IG1hZ25pZmljYXRpb24= IFRH IFJvdXNl IE1vY2s= b2R5bmFtaWNz IHByZWNsdWRl aXNtbw== IFB1bGl0emVy IGF2YWxhbmNoZQ== IEtvZGk= cmlidW5l IExlbmE= RWxlY3RyaWM= IHJlZmluZXJ5 IGVuZG93ZWQ= IGNvdW5zZWxvcnM= IGRvbHBoaW4= IE1pdGg= IGFybW91cmVk aGliaXRlZA== QmVnaW4= IFBX T2ls IFZvcg== IFNoYXJpZg== IEZyYXppZXI= ZXN0YXRl IGphbXM= UHJveHk= IGJhbmRpdHM= IFByZXNieXRlcmlhbg== IFByZW1pZXJl dGlueQ== IENydWVs VGVzdGluZw== IGhvbWVy IFZFUlM= IFByb2w= IERlcG9zaXQ= IENvZmZpbg== IHNlbWluYXJz IHNxbA== IERlZmVuZGFudHM= QWx0ZXJuYXRpdmVseQ== IFJhdHM= 56s= ZXRoeXN0 Jz4= IGlzc3Vlcg== NTg5 IGNoYWlyZWQ= IEFjY2Vzc29yaWVz bWFuZW50 IG1hcnJvdw== IFByaW1vcmRpYWw= Q04= IGxpbWl0bGVzcw== IENhcm5hZ2U= IHVuZHJhZnRlZA== cXY= SU5FU1M= b25ldw== IGNvaGVzaW9u OTg3 IG5lY2tz IGZvb3RiYWxsZXI= IEdFUg== IGRldGVjdGFibGU= IFN1cHBvcnRpbmc= IENTVg== b2NhbGx5 a0h6 IHVuZGU= IHNob25l IGJ1ZGRpbmc= dHJhaw== U3RhbmRpbmc= IFN0YXJjcmFmdA== IEtlbXA= QmVuY2g= IHRod2FydGVk IEdyb3VuZHM= YXRoaQ== TGlzYQ== RGlhbG9n IFNY VmlzaW9u IGluZ2VuaW91cw== 2ZA= IGZvc3RlcmluZw== IFph IEluZ3JhbQ== ICJA TmF0dXJhbGx5 NjE2 MDM1 IEZBQw== SG1t NTU0 IGFjY2VsZXJhdG9y IFZlbmQ= IHN1bnNjcmVlbg== IHR1YmVyY3Vsb3Npcw== cmF2aW9sZXQ= IEZ1bmN0aW9uYWw= IEVycm9ycw== ZWRhcg== MTk2Ng== IFNwZWN0cmU= IFJlY2lwZXM= ODg1 IE1hbmtpbmQ= TGl2ZXJwb29s IHwtLQ== IHN1YnN0aXR1dGVz IFhU d2lyZWQ= IGluY28= IEFmZ2g= RXZh aWNj U29uZw== S25pZ2h0 IGRpbGlnZW50bHk= IEJyb2FkY2FzdA== QWlk IGFmYXI= IEhNUw== YXRvbmlu IEdyYXRlZnVs IGZpcmVwbGFjZQ== IE9tbmk= ZXVybw== IEZSRQ== IFNoaWI= IERpZ2VzdA== dG9nZ2xl IGhlYWRzZXRz IGRpZmZ1c2lvbg== IFNxdWlycmVs IEZO IGRhcmtlbmVk b3V0aGVy IHNsZWVwcw== IFhlcg== Z3Vucw== IHNldHVwcw== IHBhcnNlZA== IG1hbW1vdGg= IEN1cmlvdXM= Z29i IEZpdHpwYXRyaWNr IEVtaWw= aW1vdg== Li4uLi4uLi4uLi4uLg== IEJlbm55 U2Vjb25kbHk= IGhlYXJ0eQ== IGNvbnNvbg== c3RhaW5lZA== IGdhbGFjdGlj Y2xhdmU= IHBsdW1tZXRlZA== IHBlc3Rz IHN3YXQ= IHJlZmVycmFscw== IExpb25lbA== aG9seQ== IHVuZGVyZG9n IFNsYXRlcg== IFByb3ZpZGU= IEFtYXI= cmVzc29y 5Yw= b25nYQ== IHRpbWlk IHBpZXR5 IERlaw== IHN1cmdpbmc= YXpv IDYxMA== IGRlc2tz IFNwb2thbmU= IEFuZmllbGQ= IHdhcnNoaXBz IENvYnJh IGFybWluZw== Y2x1c2l2ZWx5 IEJhZGdl YWdhc2Nhcg== IFBSRVNT IE1jS2Vuemll IEZlcmRpbmFuZA== YnVybmluZw== QWZlZQ== IHR5cmFubg== IEl3 IEJvb25l MTAwNw== IFJlcHQ= CsKg IGNhcmF2YW4= IERpbGw= IEJ1bmRlc2xpZ2E= Q2h1Y2s= IGhlYWxlcg== 44O844OG IEhvYmJ5 IG5lZ2F0ZQ== IGNyaXRpcXVlcw== c2VjdGlvbmFs bW9wb2xpdGFu IGR4 IG91dHNvdXJjaW5n IENpcGhlcg== dGFw U2hhcnA= IHVwYmVhdA== IGhhbmdhcg== IGNydWlzaW5n IE5pYWdhcmE= IDM0Mg== aWxsdXM= IFN2 IHN1YnRpdGxlcw== IHNxdWFyZWQ= IGJvb2tzdG9yZQ== IHJldm9sdXRpb25hcmllcw== IENhcmx0b24= YWJhbA== VXRhaA== IGRlc3Bpc2U= IFVN Y29uc2lkZXI= YWlkbw== IGNhcnRz IFR1cnRsZXM= VHJhaW5pbmc= IGhvbm9yYXJ5 wqI= IHRyaWFuZ2xlcw== NDIy IHJlcHJpbnRlZA== IGdyYWNlZnVs IE1vbmdvbGlh IGRpc3J1cHRpb25z IEJvaA== IDM0OQ== IGRyYWlucw== IGNvbnN1bGF0ZQ== IGJlbmRz IG1hZmlh dXJvbg== IEZ1bHRvbg== bWlzYw== IHJlbmFs IGluYWN0aW9u Y2tpbmc= IHBob3RvbnM= IGJydWlzZWQ= IENvZGVz b2dp IG5lc3Rz IExvdmVseQ== IExpYnJl IERhcnls ICMjIw== U3lz Liwi IGZyZWV6ZXM= ZXN0YWJsaXNobWVudA== YW5kb3dza2k= IGN1bWJlcnM= IFN0YXJn IEJvbWJz IGxlZ2lvbnM= IGhhbmR3cml0aW5n IGdydW4= IENhaA== c2VxdWVudA== IG1vdGg= IE1TTQ== SW5zZXJ0 Rmlm IG1vdGVs IGRleHRlcg== IEJpbGQ= aGVhcnRlZGx5 IHByb3Bl IFRleHR1cmU= IEp1bmN0aW9u eW50aGVzaXM= b2NhcmQ= IFZlcmE= IEJhcnRo IM68Zw== IGxhc2hlZA== IDM1MQ== IFphbWI= IFN0YXBsZXM= IENvcnRleA== IENvcmtlcg== IGNvbnRpbnV1bQ== IFdSSVRF dW50YQ== cmlkb3I= IGRlZW1z MDMz IEdPTEQ= cGFz IHJlcHJlc3NpdmU= 44OG44Kj IGJhZmZsZWQ= U2Nhcg== IGNyYXZl IF9fX19fXw== IGVudHJlcHJlbmV1cnNoaXA= IERpcmVjdG9yYXRl ICdb IHZpbmVz IGFzY2VuZGVk IEdST1VQ IEdvb2RieWU= IGRvZ2dlZA== 44O044Kh TWFudWZhY3Q= IHVuaW1hZ2luYWJsZQ== cmlvdHM= aWVycmV6 IHJlbGF0aXZpdHk= IENyYWZ0aW5n cmF1Z2h0 dWRlbg== Y29va2ll IGFzc2Fzc2lucw== IGRpc3NhdGlzZmllZA== YWNjaQ== IGNvbmR1aXQ= U3ByZWFk IFJpY2Fu bmljZQ== aXp6bGU= IHNjYXJlcw== IFdIWQ== cGhhbnM= NTM1 IHByb3RyYWN0ZWQ= IEtyaXN0ZW4= NTM2 IFNjcmli IE5laA== IHR3ZW50aWVz IHByZWRpY2FtZW50 IGhhbmRjdWZmcw== IGZydWl0ZnVs IFVM IEx1ZHdpZw== IGF0dGVzdA== IEJyZWFrZXI= IGJpb2xvZ2ljYWxseQ== IERlYWxlcg== IHJlbm92YXRpb25z Znc= ZXNzZW4= QWxpY2U= IEhlbnJp IHVuaWxhdGVyYWxseQ== IFNpZGQ= aGFp IFN0cmV0Y2g= U2FsZXM= IGN1bWJlcnNvbWU= IEphdmllcg== IHRyZW5keQ== IHJvdHRpbmc= IENoYWxsZW5nZXM= IHNjcmFwcw== IGZhY2V0cw== IFZlcm9uaWNh IFZlcmdl IFNhbmE= QWxpZW4= IFJpaA== IHJhZGlhbA== ZWN0YXI= IDYzMA== Y2xp TWFyaWU= IHdpbGRmaXJl IENhdG8= aGFuZGVy IHdhaXRyZXNz IGNob3Bz IFNFQ1RJT04= IGJsdW50bHk= IENhdGFsb2c= bmlhbg== c3R1ZHk= IHBhdHJvbGxpbmc= IFRlbnRo bmV4dXM= IE5PTg== b3BzeQ== IHNjYXRoaW5n c2ll IGRldGVyaW9yYXRlZA== VkI= TmF6aXM= IGRlcGljdGlvbnM= IGF1dGhlbnRpY2F0ZWQ= IENvbmNl a3JpdA== IHByb211bGc= IExPTkc= VUZD IFZpc2l0b3Jz IFJlY2FsbA== IHJlaGFiaWxpdA== IFNMSQ== IGdsYWNpZXI= IEJpdGU= IDUwMw== IHZvbWl0 IGZlcm1lbnRlZA== IEtoYWxpZA== IGdyYWRlZA== IE1hZ2lja2E= IEljaGlnbw== cG93ZXJmdWw= aWNhdG9ycw== NzUz IHNocmV3 IDM1Ng== IGxlZ2FsaXppbmc= IGFsbG90dGVk IEFyY2hkZW1vbg== aXRoaW5n aWdndXJhdA== Vk9M TGVvZA== IG9pbHk= IGluZHVjaW5n IGFteWdkYWxh IGFkbWlucw== IEFjcXVpc2l0aW9u Q0FO IHNjaGVtYXRpYw== IG1vYW4= IENhbWVyb29u IHRpbms= IG1lcnJ5 IGJ1dHRlcmZsaWVz IEdvZmY= IHdvcmtzcGFjZQ== IENvcm9uYQ== IGphdmFzY3JpcHQ= IERvbHBoaW4= IENhbnRvcg== NDY0 dG9l QVBT IEFnaW5n IHBhZGRlZA== IFpoZW5n IEhlbGQ= IGVzdHJhbmdlZA== IDc3MA== Ln0= IER1bmhhbQ== IHNtb2tlcw== IGNhcGl0YWxz dW5kYWk= U2hpbg== IEZvdW5kaW5n IGVudGl0bGU= IGNlbnRlcnBpZWNl RGlzY292ZXI= IHRoZXJldG8= YWxlcnQ= IE5vdQ== IEFuYWx5c3Q= bGM= Rkg= RklFTEQ= IFBPVg== Z3JheQ== IGFyY3M= IEhPVA== IHJz IG9ibGlnYXRvcnk= IEFyY2hpdGVjdHM= IFN2ZW4= IEZFQw== MDIwMA== Q2hyaXN0bWFz IEFsYmFuaWE= cmF0b20= NTg3 IGhhcmRzaGlwcw== IGF1dG9z IENoYXJnZXM= IGFwZXM= IDM3Ng== d2FsbGV0 IGludG94aWNhdGlvbg== IGdvYmxpbg== IDU3MA== KysrKysrKysrKysrKysrKw== IFllbHA= IE1hZ25ldGlj IEJyaWdncw== UmFpbA== IHNwYXducw== IFdpZ2dpbnM= IHNob3djYXNlZA== IHJlc29ydGVk dWJlbg== IHdoaXBwaW5n IGltaXRhdGU= IGRpZ2VzdGlvbg== IFVTUFM= IEdlc3Q= IHllYQ== IFRpZ2h0 aW5kYWw= aWNhcw== YC4= Q0FTVA== Jyc7 IEZldA== b3BhdGhpYw== SW52YWxpZA== IHJlZ3JldHRlZA== IGJyb2Njb2xp IFNjb3Jlcw== ZXZl IHBvc3Rpbmdz IGFjY3VtdWxhdGluZw== IG5lZWRsZXNz ZWxmdGg= IG1heW9ycw== IHNjcmli IGFuZWNkb3Rlcw== IGJvdGNoZWQ= IFJpYmJvbg== IENvbnN0YW50aW5l aXVzZXM= ZXNzZXM= IGRldmlzZQ== Q29tcGFyZWQ= IHB1ZGRpbmc= IGdhcmc= IGV2b2tl Nzk3 IGRldG94 OTA5 IFBpZWNlcw== IE1jQ2FydG5leQ== IG1ldGFzdA== IEtyeXB0 UE9S IHRlbmRpbmc= IE1lcmNoYW50cw== UHJvb2Y= IFZhcmc= IFBvcnRhYmxl 44O844OG44Kj QnJhaW4= MjUwMA== IGZvbGlhZ2U= 2Lk= IG1lbnRvcnM= IEFpcmVz IG1pbmltYWxpc3Q= IGluZ2VzdGVk IFRyb2phbg== IFFpYW4= aW52b2x2ZWQ= MDI3 IGVyb2RlZA== UkFGVA== IGJsdXJyeQ== TW9i IGJ1ZmZldA== IEZuYXRpYw== YWVh S05PV04= IEluaXQ= c2FmZXR5 ZW51bQ== QUNUSU9O IENydXNoZXI= IERhdGVz IC4uLi4uLi4uLi4uLi4uLi4= Y2FsbGluZw== YWtvdg== IHZlbnR1cmVk IDU1NQ== YXVnYQ== SGFydA== IEFlcm8= TUFD IHRoaW5seQ== IGFycmE= U1RBVEU= aWxkZQ== IEphY3F1 IEZlbWFsZXM= IHRoZW9yZW0= IDM0Ng== IHNtYXJ0ZXN0 IFBVQkxJQw== IEtyb24= IEJpdHM= IFZlc3NlbA== IFRlbGVwaG9uZQ== IGRlY2Fw IGFkanVuY3Q= IFNFTg== bWVyZ2E= IHJlZGFjdGVk IHByZWhpc3Rvcmlj IGV4cGxhbmF0b3J5 IFJ1bnM= IFV0dGFy IE1hbm55 IEFVVEhPUg== IFVubGVhc2hlZA== IEJvd2xpbmc= YmVhbnM= Nzkz IHVuaXZlcnNlcw== IHNlbnNpdA== IEt1bmc= cmVwZWF0 Y3RybA== IHBhY2Vk IGZ1bGxlcg== Q2xvY2s= IHJlY29tYg== IEZhdWw= IEJ1bmtlcg== IHBvb2xlZA== IGFuYQ== IE1vdXRo TExPVw== aHVtYW5l IGJ1bGxkbw== IE1pY2hhZWxz ZmFt IHdyZWNrZWQ= IHBvcnRyYXlz IFdoYWxl IEhlcw== IGd1ZXNzZXM= IEJyb3dzZQ== IExBUEQ= IGNvbnNlcXVlbnRpYWw= IElubm9jZW50 IERSQUc= IHRyYW5zZ3Jlc3M= IE9ha3M= IHRyaXZpYQ== IFJlc29u IEFEUw== LS0r IFRvbGw= IGdyYXNwaW5n IFRIRU0= IFRhZ3M= IENvbmNsdXNpb24= IHByYWN0aWNhYmxl IGhvb3A= IHVuaW50ZW50aW9uYWxseQ== IGlnbml0ZQ== IE1vdg== dXJpemVk bGVoZW0= VGVybWlu IGNvbG91cmZ1bA== IExpbmVhcg== IEVsbGll R3k= IG1hbnBvd2Vy IGpz IGVtb2pp IFNIQVJFUw== Xy4= MDAwMDc= IHNvcGhpc3RpY2F0aW9u IHVuZGVyc2NvcmU= IHByYWN0aXNl IGJsb2I= b3BlbnM= VWtyYWluZQ== S2VlcGluZw== WUM= SlI= dWx0aW1hdGU= Q2xhaW0= IGF1dG9tb2JpbGVz OTkz c3RlZWw= IHBhcnRpbmc= IExhbms= Li4uPw== IDM4NQ== IHJlbWVtYnJhbmNl IGVhc2Vk IGNvdmFyaQ== IFNpbmQ= RWZmZWN0aXZl IGRpc3NlbWluYXRpb24= IE1vb3Nl IENsYXBwZXI= YnJhdGVz QXBwbHk= IGludmlz IHdvcnNlbmVk 4oCULQ== IGxlZ2lzbGF0b3I= IExvbA== IFJvd2U= IGRlYWxlcnNoaXA= dW1hcg== aWRlbmNlcw== IGludmVzdGlnYXRlcw== IGNhc2NhZGU= IGJpZGRlcg== IEJFTg== SXJvbmljYWxseQ== IHByZXNpZGluZw== IGRpbmc= IGNvbnRyYWRpY3RlZA== IHNodXRz IEZJWA== IDM2Ng== RGlzdHJpY3Q= IHNpbmZ1bA== IENoYXJpc21h b29wcw== IHRvdGFsaXR5 IHJlc3RpdHV0aW9u IE9wdGltdXM= IERhaA== IGNsdWVsZXNz dXJuZWQ= IG51dHJpdA== IGxhbmRvd25lcnM= IGZsdXNoZWQ= IGJyb2FkZW4= bWll IHByaW50bG4= IG5pZw== IENvcnB1cw== SmVu IHByb3Rv IFdpa2ltZWRpYQ== IFBhbG8= Q09S IHN0b3J5bGluZXM= IGV2YW5nZWxpY2Fscw== IERhcnJlbGw= IHJvdG9y IEhX c2tpbGxlZA== ZXJ5bA== IGJlZ2c= IEJsdW1lbnRoYWw= IHdlYXZpbmc= IGRvd253YXJkcw== IEphY2tldA== IEFOR0VM VGVjaG5vbG9neQ== IGVzb3Rlcmlj YWxkZWh5ZGU= IGZ1cmlvdXNseQ== IGZvcmVpZ25lcg== V2Vhaw== Q0hP IEhvdW5k RXhwZXJpZW5jZQ== IFBsYXlzdGF0aW9u IE1JQQ== IFVuZw== Y2xvdGg= YWdhbGw= IGNhbG1pbmc= aXplbnM= U3RydWN0 IFdpdGNoZXM= IENlbGVicmF0aW9u IC4uLi4uLi4uLi4uLi4u cHRyb2xsZXI= IFRDVQ== IGJ1bm55 44ON dXRvcmlhbA== IHVwc2NhbGU= IFN0YQ== IENvbG9zc3Vz IGNobG9yaWRl IFphYw== IFJlYXNvbnM= IEJyb29raW5ncw== IFdISVRF XVsv IExvc2U= OTA1 IHVuZGVyc2lkZQ== ZXJuZWxz IHZhcGU= ZG96ZW4= dXBwZXQ= IFNUT1A= bWF0aWNhbA== IFN0YXRlbWVudHM= aGVkZGFy UEFD Q3VzdG9tZXI= IG1lbW9z IFBK ZW5kYXJz IExpbWl0cw== bGF1Z2g= IHN0YWJpbGl6ZWQ= IEFMRUM= WUE= VXBncmFkZQ== YWxhbQ== IHRlY2hubw== IGFuZXc= Zm9yZXNlZW4= IGNvbGxlZ2lhdGU= IFB5cm8= IERpc20= IGZyb250bGluZQ== IGFtbW9uaWE= SVU= UXVpdGU= Sm9obm55 YXNzaW4= R09Q IFN0eWxlcw== IFNvdmVyZWlnbg== YWN0ZXJpYWw= NTQ5 IFJJUA== IExpc3Rz IDM2NA== IFJlY2Vw c29ja2V0 IEJ5cmQ= IENhbmRsZQ== QW5jaWVudA== IGFwcGVsbGFudA== ZW5mb3JjZW1lbnQ= YWNlYQ== YW5za2k= IG9sZHM= ODg2 IHNsdXJz IGVtcGlyZXM= IGJ1Y2tsZQ== IGFsaWVuYXRpb24= IEFiZXJkZWVu IHVuaWNvcm4= IG92ZXJyaWRpbmc= IExY cHBh IGRlc3Bpc2Vk IEJ1Z3M= IEJTVA== U291dGhlcm4= NTMz IGhhbGxtYXJr IFBvc3Rlcg== IHN0ZW1tZWQ= IHByaW5jaXBhbHM= IFRFQ0g= IFNhbmR3aWNo SXRhbHk= IGNoZWVzeQ== IFNldFRleHRDb2xvcg== IFByb3RlY3RpdmU= IENvaG4= Sk8= YXB0b3A= UmVhc29u TGVhZGVy IFVuZGVyc3RhbmQ= IEZyaWRheXM= IENvbnRpbnVvdXM= IGNsaXBwaW5n IFJ5ZQ== IGJlcnRo dGltZXI= YW5uaXM= cmVhY3Q= IGJ1ZmZhbG8= IFBhcmFz IDY1NQ== IHByZXNpZGVk IFN1bnJpc2U= IHZldHM= IGNsb3Zlcw== IE1jQ3VsbA== U3RyZW5ndGg= R0FO IGlsbGl0ZXI= IFByaWNpbmc= bMOp IHJlc2lzdG9y IGJydW4= IFN1ZmZvbGs= 0Ys= IExpdmVy UmVsZWFzZWQ= IHdoYXRz ODYw IE1lYXN1cmVz IGRlbm91bmNpbmc= IFJ5emVu IHNvdXZlbg== IGNhcmVnaXZlcnM= Y2hpbmk= IFNjYXJsZXR0 IHRyb3VnaA== Q29uZ3JhdHVsYXRpb25z IHRheGlz IFRyYWRpdGlvbg== aml0 IHRhYmxldG9w IGhpdGhlcnRv IGRpc2luZm9ybWF0aW9u b2ZmZW5zaXZl aHJh IERJU1RSSUNU IGNvbXBsaWNhdGU= Y2hlbmtv IFJlY29uc3RydWN0aW9u IHBhbHBhYmxl IGF1c3A= IDQyOA== IHNob3djYXNlcw== IFB1YmxpY2F0aW9u a25vd2xlZGdl aW5ub24= NDE5 IHJldHJpZXZhbA== YW5kZXJz IHJlZnV0ZQ== IGlucXVpcmVk Z3Vy IG5lZ2F0aXZpdHk= IGNvbnNlcnZl IGFmdGVybGlmZQ== IHByZXN1cHA= IEdpbGxlc3BpZQ== IG10 IERO VGFw IHBlcnBlbmQ= IFNteQ== ZG9lc24= IHNwaWxsaW5n IGh5cGVycw== S2F0ZQ== wq4s a2VwdA== IFBvd2VyZWQ= IGph IEtsdXg= YXJkZQ== YWJhbg== IDQ0NA== IGZsYXR0ZW5lZA== IEltcHJvdmVtZW50cw== dXJnYQ== IEt1bmQ= IGluc2NyaWJlZA== IGZhY3VsdA== IHVucHJlcGFyZWQ= IENvbnN1bWVycw== IHNhdGlzZmllcw== IHB1bG1vbmFyeQ== IGluZmlsdHJhdGlvbg== IGV4dGVybmFsbHk= IGNvbmdyYXR1bGF0aW9ucw== YWdoYW4= IGFpcmxpbmVy IGZsdW5n IGZseWVycw== R0Q= IHNuaXBwZXRz IHJlY3Vyc2l2ZQ== IG1hc3RlcmluZw== TGV4 IG92ZXJ0bHk= dmc= IGx1Y2tpbHk= IGVuY3Jv IExhbmNldA== IEFieXNzYWw= ZnVuY3Rpb25hbA== IHNvdw== IHNxdWlk IG5hcnJhdGlvbg== IG5hdWdodHk= IEhvbm91cg== IFNwYXJ0YW5z IHNoYXR0ZXI= IFRhY29tYQ== IENhbG9yaWVz IFJhY2Vz U3VibWl0 IHB1cnBvc2VmdWxseQ== d2F2 IFlvaw== RmVzdA== IEdlcnI= TWV0cm8= IGl0aW5lcg== ZmFtb3Vz ICJ7 aW5saW5l d2FzaGVy SXNzdWU= IENMSUVOVA== b3pv VmVyc2lvbnM= NzI1 IEdsb2Nr IHNoaWVsZGVk IFBDUg== RU5DWQ== IFdlbGQ= IFNpbXBs IHJlZGlyZWN0ZWQ= IEtoYW0= ICg+ IGxhYm91 IGRpYXBlcnM= c3Ns IGNlbGxhcg== b3JnYW5pc21z b3Jlc2M= IEJlcmtz ZGlkbg== U2hpcHBpbmc= Q2hlc3Q= IHVuZG9uZQ== IG1pbGxpb25haXJl IGNvcmRz IFlvdW5nZXI= YXBwcm9wcmlhdGVseQ== IHNlcXVlbHM= dXZl YW50aWNpcGF0ZWQ= IGxld2Q= IFNoaXJ0 IERtaXRyeQ== VmV0ZXI= IHNsYXlpbmc= IFlhcg== IGNvbXBsaWNhdGlvbg== SW93YQ== IEVyaWNh IEJMTQ== Z2lybGZyaWVuZA== Ym9kaWVk NjI2 MTk2Mw== IGludGVybWVkaWFyeQ== IGNvbnNvbGF0aW9u TWFzaw== IFNpZW0= b3dhbg== QmVnaW5uaW5n IGZpeG1l IGN1bG1pbmF0ZWQ= IGNvbmR1Yw== IFZvbHVudGVlcg== IHBvc2l0aW9uYWw= IGdyZWV0cw== IERlZmluaXRpb25z IHRoaW5rZXI= IGluZ2VudWl0eQ== IGZyZXNobWVu IE1vbWVudHM= IDM1Nw== YXRldXJz IEZlZEV4 c2c= Njk0 IGR3aW5kbGluZw== IEJPWA== c2VsYWdl IHRtcA== IHN0ZW4= IFN1dA== IG5laWdoYm91cmhvb2Rz IGNsYXNzbWF0ZQ== ZmxlZGdlZA== IGxlZnRpc3Rz IGNsaW1hdGVz QVRIRVI= IFNjeXRoZQ== dWxpZmZl IHNhZw== IGhvcHBlZA== IEZ0 IEVjaw== IENL IERvb21zZGF5 a2lkcw== IGdhc3BlZA== IG1vbmlrZXI= IExvZA== IENGTA== dGlvbnM= cnVtcw== Zm9saW9z IG1k IHVuY2Fubnk= IHRyYW5zcG9ydHM= IExhYnJhZG9y IHJhaWx3YXlz IGFwcGxpYW5jZQ== IENUUkw= 5oA= UG9wdWxhdGlvbg== IENvbmZlZGVyYWN5 IHVuYmVhcmFibGU= IGRvcnNhbA== IEluZm9ybQ== b3B0ZWQ= IEtJTEw= TWFyeA== IGh5cG9jcml0aWNhbA== cXVz IE51bWVyb3Vz IEdlb3JnaWFu IEFtYnJvc2U= IExvY2g= IGd1YmVybmF0b3JpYWw= IFhlb24= IFN1cHBvcnRz ZW5zZXI= ZWVseQ== IEF2ZW5nZXI= MTk2NQ== QXJteQ== IGp1eHRhcA== IGNob3BwaW5n IFNwbGFzaA== IFN1c3RhaW5hYmxl IEZpbmNo IDE4NjE= aWN0aXZl YXRtZWFs IEdvaGFu IGxpZ2h0c2FiZXI= IEdQQQ== dWd1 IFJFUEw= dmFyaWFibGU= IGhlcnBlcw== IGRlc2VydHM= YWNpb3VzbHk= IHNpdHVhdGlvbmFs d2Vla2x5 b2Js IHRleHRpbGU= IENvcm53YWxs IGNvbnRyYWNlcHRpdmVz IEFrZQ== XS0= 5LmL Oiw= IFdlbQ== IEJpaGFy ICcu IGJlcmU= IGFuYWxvZ3Vl IENvb2tpZXM= IHRha2VvZmY= V2hlZWw= IG1hamVzdGlj IGNvbW11dGluZw== MDIz IENvcnBzZQ== YXNzbWVudA== bWluaQ== IGdvcmlsbGE= IEFsYXM= ZXJlZQ== IGFjcXVhaW50YW5jZXM= IEFkdmFudGFnZQ== IHNwaXJpdHVhbGx5 IGV5ZWQ= cG13aWtp IEVuZGVy IHRyYW5zbHVjZW50 IG5pZ2h0dGltZQ== IElNQUdFUw== NTQ1 IEthbXA= IEZyZWFr IGln UG9ydGxhbmQ= NDMy IE1hdGE= IG1hcmluZXM= IGhvcnM= YXRlcmFzdQ== IEF0dHJpYnV0aW9u IC0tLS0tLS0tLQ== IGtpbnM= IEJFTE9X Kysr IHJlZWxpbmc= b2xlZA== IGNsdXR0ZXI= IFJlbGF0aXZl IDQyNw== QlVT IGF2ZXJ0 IENoZW9uZw== IEFibGU= IFByeW9y RGV2ZWxvcGVy IGVuY3ljbG9wZWRpYQ== IFVTQUY= IEdhcnJ5 U3BhaW4= QmxvY2tz IGV4cG9zaXRpb24= IEdhbWVyR2F0ZQ== V09S IHN0b2NrcGlsZQ== IGNsb3RoZWQ= IFRvbmU= IFJ1ZQ== dHVtYmxy IHRyZWFjaGVyb3Vz IGZyeWluZw== 0Yw= IFNwaA== IHJlc3RyYWludHM= IGVtYm9kaWVz IEdlcw== U2FmZXR5 IG5lZ290aWF0b3Jz bWluaW5n IEFwcGFsYWNoaWFu TE9T IEplbm5h IHBhc3NlcnM= 54s= c25hcA== IHNob3J0ZW4= Y3JlYXRvcg== IGlubnVtZXJhYmxl dXRoZXJsYW5k Njc0 IFdPTQ== IEFzY2VuZA== IEFybW9yeQ== IFRyYW5zYWN0aW9u S2ljaw== IHN1aXRjYXNl ZGF5TmFtZQ== IHdhc3RlZnVs bWFycmlhZ2U= IE1jQ2FiZQ== aXRlY2g= IE9zcw== Q2xvc3VyZQ== IFRyZWFzdXJlcg== IGluZGVjZW50 IER1bGw= IHJlc2lkZW5jZXM= MTk1OQ== IFNldHRsZW1lbnQ= SGFtaWx0b24= IHNlbGZpZXM= IFJhbmtpbmc= IEJhcmtsZXk= IEJvcmU= IFdDUw== IE1hcml0aW1l IEh1aA== IEZvcmVzdHJ5 IGN1bHRpdmF0aW5n IEJhbGxhcmQ= IGdhcnJpc29u IFNETA== OTMw IG5hc2NlbnQ= IGlycmVzaXN0aWJsZQ== IGF3ZnVsbHk= XC9cLw== IGVxdWF0ZQ== IGFudGhyb3BvbG9neQ== IFN5bHZpYQ== IGludGVzdGluZQ== IGlubm9jdW91cw== Y2Vzc2l2ZQ== YWdyYQ== IE1ldHJvaWQ= R3JhbnQ= ODU1 gZY= ICJf 44OD44OJ IGFwcHJhaXNhbA== IEZyZWRkeQ== MDQ2 IDQwNg== IDE4MzA= IGRvY2tpbmc= U3RhdGlj IHBvbnQ= IFZvbHRhZ2U= IFN0ZWFk IE1vcnRnYWdl IEpvbmFo WUw= Q0xBU1NJRklFRA== IGFzYmVzdG9z bmlrb3Y= IGNvbGxhZ2Vu IE9yYml0YWw= UG9ja2V0 Nzk5 IGh5YnJpZHM= aW5jaGVz IGludm9pY2U= dW5keQ== IGluZXF1YWxpdGllcw== VHJlbmQ= d2FzaGVk QkFMTA== IGx1Y2lk IENvbW1lbnRhcnk= IHdpdHR5 QnJhbmRvbg== IGJydWlzaW5n IDYyMA== ZXNjZW50 Ym94aW5n UE9M IDM3OA== UmVjdA== IGxpY2VuY2Vz IE1jR2Vl cHJlc3NlZA== RGFubnk= IGphbW1lZA== b3JkaW5hdGU= IGxldGg= IGRpc3Rpbmd1aXNoZXM= IFlhbWFoYQ== SUxT IEh1bWU= IENhdGVnb3JpZXM= Um9iZXJ0cw== Q2hhcnQ= IGJlZXRsZQ== IEdyYXZleWFyZA== ICgkKQ== b8Sf IHR3aWxpZ2h0 YXJlbGxh 4b0= IGJvb3Rocw== IEhIUw== IEZlbGRtYW4= IGV4Y2F2YXRpb24= IHBoaWxvc29waGllcw== YXRvZ3JhcGh5 IEdhcmFnZQ== dGVjaG5vbG9neQ== IHVuZm9yZ2V0dGFibGU= IHZlcmlmeWluZw== IHN1Ym9yZGluYXRlcw== RWxz IG5lYg== R2FtaW5n RU5B IEFjaGlldmVtZW50 aXR0ZXJz IEdhYmU= IGR1bXBz Zm9yY2Vy IHBvaWduYW50 IE1CQQ== IEhlaWRp aW1laQ== IG1hZ2Vz IGxpYmVyYXRl IGNpcmN1bWNpc2Vk IE1lcm1haWQ= IE1hdHRo dG9nZXRoZXI= IFdpY2hpdGE= IHN0b3JlZnJvbnQ= IEFkaW4= VklJ Rm91cnRo IGV4cGxvcmVycw== V0VS Tm90YWJsZQ== QnJvb2s= bWVucw== RmFpdGg= LS0tLS0tLS0t IEpvdQ== rLw= IHBpbmVhcHBsZQ== IGFtYWxn ZWxu YXJrYWJsZQ== IOOCteODvOODhuOCow== IOOCteODvOODhuOCo+ODr+ODsw== IG92YXJpYW4= IEVjaG9lcw== IGhhaXJjdXQ= IHBhdg== IGNoaWxsZWQ= YW5hc2lh IHN0eWxlZA== IGRhYg== bmlwZXI= IG1pbmlzdGVyaWFs IERVUA== VGFu IHN1bHBo IERldGVy IEJvaGVt b2Rhbg== IGVkdWNhdG9y 4pOY c3Bpcg== Q2hpY2tlbg== IEVsZWFub3I= IHF1aQ== IGhlYXZpZXN0 IGdyYXNwZWQ= VVJB IGNyb29rZWQ= SmVzc2ljYQ== cHJvYmxlbQ== IHByZWRldGVybWluZWQ= IG1hbmlhYw== IGJyZWF0aHM= IExhdWRlcmRhbGU= IGhvYmJpZXM= eXo= Q3JpbWU= IGNoYXJpc21h ZEw= IGxlYXBpbmc= IGtpdHRlbnM= QW5nZWxv IEpBQ0s= IFN1emFubmU= IGhhbHRpbmc= RU5USU9O IHN3YWxsb3dpbmc= IEVhcnRocXVha2U= IGVpZ2h0ZWVudGg= IE5JQw== IElORg== IENvbnNjaW91cw== IHBhcnRpY3VsYXJz Y2lyY2xl NzQw IGJlbmV2b2xlbnQ= IDc0Nw== IDQ5MA== IHJ1bmRvd24= IFZhbGVyaWU= IEJVUg== IGNpdmlsaXNhdGlvbg== IFNjaG4= V0I= b3RpZGU= aW50ZXJuYXRpb25hbA== IGpvaG4= IDE5MDI= IHBlYW51dHM= IGZsYXZvcmVk a3Vz IHJvYXJlZA== IGN1dG9mZg== 6aM= IG9ybmFtZW50 IGFyY2hpdGVjdHVyZXM= IDM2OQ== b2xvcg== IFdpbGRl IENSQw== IEFkanVzdGVk IHByb3Zva2luZw== bGFuZGlzaA== IHJhdGlvbmFsaXR5 IGp1c3RpZmllcw== IGRpc3BlbA== IGFtZXJpYw== IFBvbGVz 2Kk= IGVudmlz IERvb2RsZQ== 5L2/ aWdzYXc= YXVsZHJvbg== VGVjaG5pY2Fs VGVlbg== dXBoZW0= IFhpYW5n IGRldHJhY3RvcnM= IFpp IEpvdXJuYWxpc3Rz IGNvbmR1Y2l2ZQ== IFZvbHVudGVlcnM= IHNk S25vd2luZw== IHRyYW5zbWlzc2lvbnM= IFBMQU4= IExJQg== IGFsbHVkZWQ= IG9iZQ== IGRvcGU= IEdvbGRzdGVpbg== IHdhdmVsZW5ndGhz IERlc3RpbmF0aW9u bmRh dWdp IGF0dGVudGl2ZQ== IExlYW4= cmFsdGFy IG1hbmc= bWJ1ZHM= YWtpbmdz YmVuZGVy IGFjY29s IGNyYXdsZWQ= Tk9X TWlubmVzb3Rh IGZsb3VyaXNoZWQ= IFp1cA== IFN1cGVydmlzb3I= IE9saXZpZXI= RXhjZWxsZW50 IHdpZGVu RG9uZQ== IHdpZw== IG1pc2NvbmNlcHRpb25z Q29ycA== V2Fu IHZlbmVyYWJsZQ== IE5vdGFibHk= IEtsaW5nb24= YW5pbWF0ZQ== Qm9vc3Q= IFNBWQ== bWlzc2luZw== aWJsaW9ncmFwaHk= bWVsb24= IHBheWRheQ== 2LM= Ym9sZQ== IHZlaWxlZA== IEFscGhhYmV0 SXRhbGlhbg== IGV2ZXJsYXN0aW5n IFJJUw== IENyZWU= cm9tcHQ= IGhhdGluZw== IGdyaW5uaW5n IGdlb2dyYXBoaWNhbGx5 T1NI IHdlZXBpbmc= IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IGltcGVjYw== TGV0dGVy IGJsb2F0ZWQ= UExB IEZlaW4= IHBlcnNldmVy VGh1bmRlcg== IGF1cg== IFJM IHBpdGZhbGxz 4pa6 IHByZWRvbWluYW50 IDUyNQ== NzE4 QVBF NzE0 IGZhcm1sYW5k IFFpYW8= IHZpb2xldA== IEJhaGFtYXM= IGluZmxpY3Rpbmc= IEVmZmljaWVuY3k= IGhvbWVicmV3 IHVuZGVydG9vaw== IGN1cmx5 IEhhcmRpbmc= bWFuaWE= NTk2 IHRlbXBlcmVk IGhhcnJvd2luZw== IFBsZWRnZQ== IEZyYW5rZW5zdGVpbg== 6Ko= TW90aW9u IHByZWRpY3RhYmx5 IEV4cGxvc2lvbg== b2N1c2luZw== ZXJk Y29sbw== RkZFUg== IGJhY2tmaWVsZA== IFZJREU= dWVibA== TmFycg== IEFyZ3VtZW50 IGdlbm9taWM= IGJvdXRpcXVl IGJhdHRlZA== IEJpbmFyeQ== IGdhbWI= IFJoeXRobQ== Njcz IGFmbG9hdA== IE9seW1waWE= WUlORw== IGVuZGlm aXNpbg== IHdpbnRlcnM= IHNjYXR0ZXJpbmc= SXY= RGlzdGFuY2U= IHRydQ== IENvbWZvcnQ= IG5leHVz IGFpcmZsb3c= IEJ5emFudGluZQ== cGF5ZXJz Y29uaQ== IEJldHN5 RGVhbA== IE51Zw== IENvbnRpbmVudA== cmVkaWJseQ== IG9wdGltaXppbmc= YWxiZWl0 IGVjc3RhdGlj IFByb3Rv 57c= aXZvdA== 4paE ZW1w cm91bmRlcg== IGNsb3V0 IElTVA== NjYz IERvbGxhcnM= IERBQw== IHN1YnNjcmliZWQ= IHJlaGVhcnNhbA== IGFtcHM= IFNoYW5n ZXNt IHNwcmlua2xl IGFzc2FpbGFudA== IE9v IENvaW5iYXNl VGFjdA== IHJldGluYQ== IG51bnM= Uk9O YXR0bw== IGp1Zw== IFNWRw== IGJpa2luaQ== IEZJTEU= IEZvdW5kZXJz ZXBvcnQ= IEtQ IHJlc3RvcmVz IFRoaWNr IGFzaG9yZQ== IGFwcHJvdmFscw== UmVuZGVy TUFH R3JhaGFt IENvcnRhbmE= 44Oz44K4 c3No b3JpYW5z YXJzaXR5 IEluc3BpcmVk dXBwZXI= IHNpZ25hbGxpbmc= IHJlYnVrZQ== IGZsYXJlcw== IGRvd250aW1l U3R1ZGllcw== IHN0YWduYXRpb24= IFNlcXVlbmNl IGdydW50 IGFzc3VyZXM= IFBMQQ== NTky IGludHJhdmVu ZGVwZW5k U3VzYW4= IE1hbnppZWw= TWFuaWE= Q29udHJhY3Q= IHNsYW1z IGN1bHR1cmVk IGNyZWRpdG9y TElTVA== IEhVTQ== IENoYXR0YW5vb2dh c2VydmVk IGNsb2FrZWQ= IEZUUA== cG93ZGVy IFN0ZWxsYQ== dWN0aXZl IGNoZWFwbHk= IE1VQ0g= IEdhbGlsZW8= IHN1aXRlcw== c3BlZWNo IGRlbGliZXJhdGlvbnM= IENoaXBz q5g= QmFsYW5jZQ== IFd5bm5l IEFrcm9u QXNzZXQ= IGhvbm91cmVk IGVkZ2Vk TGlrZXdpc2U= YW5pbW91cw== IFdhZ2U= IEV6ZWs= YWR2ZXJ0aXNlbWVudA== IFJUWA== IE1BRA== IG1pZ3JhdGluZw== IFNRVQ== IDQ3NQ== RWRpdGVk IHNob3J0aGFuZA== IEJhc2ljcw== IGNyb3RjaA== IEVWRU4= IHZt ZWZmaWNpZW5jeQ== IGNhbHZlcw== IEZyaWU= IEJyaWxsaWFudA== IHN0cmlrZXJz IHJlcGVudGFuY2U= IGFydGVyaWVz cmw= QmVk aGFw IGNyeXB0b2dyYXBoeQ== IFNhYnJlcw== IDQxNA== dmlrcw== aWhhcmE= YXBzZXM= VGFsa2luZw== IGludGVydHdpbmVk IGRvY2tz IGFsbGVsZQ== IEFydGlmYWN0 IEhJTQ== dG9ybg== 55U= IG9wYWNpdHk= IEVseQ== b3N1a2U= IG5pcHBsZQ== IGhhbmR3cml0dGVu IFZL IENoYW1iZXJsYWlu IExhb3M= aWdyYXBo Z3Jvdw== IHRyaWxsaW9ucw== IGRlc2NlbmRhbnQ= IFNhaWxvcg== YXN1cmluZw== IGNlaWxpbmdz IFdhcmVob3VzZQ== Zmx5aW5n IEdsb3c= IG5vbnQ= IG1pc2NhcnJpYWdl IHJpZ3M= IG1pbmlzdHJpZXM= IGVsYWJvcmF0ZWQ= IGRlbHVzaW9uYWw= IEh1bWFuZQ== IDM3OQ== bmV0cw== IGJsYWNrb3V0 YWRkZXJz IG5w IFRpcmU= cm9zYw== IHN1YmRpdg== IGxpbmthZ2U= IGNocm9ub2xvZ2ljYWw= IEhFUk8= IHJlc2V0dGxlbWVudA== IFZpbnls IHBhc3RvcmFs IE1vYmls IEJhcmJhcg== Q29vbGRvd24= IEZyaXR6 Y3JpbWluYWw= cmVwZQ== IGJlbGxpZw== IEJyZWVk IDQxOA== IHNlbWJsYW5jZQ== aWpr IGN1cnRhaWw= IGNsaW5jaA== Y29udGFpbmVk IFByb21wdA== YXN0b24= IHdp IHB1cnN1aXRz NTE1 IEdsb3Nz IGZsaXBz IGNvdXBvbnM= IGNsb25pbmc= IExpa2VseQ== UmVtb3ZlZA== IFF1YXJ0eg== cmljZXM= IFNwZWFycw== IHBpb3Vz IGRlcHJlY2lhdGlvbg== IERhcmU= b3VuY2Vz YW1heg== T250 IHBpbm5hY2xl ZG9ja2Vy MDI2 IFd5cg== IFByb3Blcg== y4g= bmls Qnl0ZXM= IHNlZWtlcg== dHJpYWw= IHVuZm9sZHM= IE1hcnNl IGV4dHJhdmFnYW50 IFN1cnZpdm9ycw== UkVEQUNURUQ= IFNwZWVkd2F5 IENyYWlnc2xpc3Q= c3VibWl0 IEdlbmVyYXRpb25z IHVwaG9sZGluZw== IGJsb29kc3RyZWFt IE1pc3Npb25z IExhd24= IGxpbWJv ZW5laQ== SHVo IFdpbGRjYXRz cHJlcA== IE1hcmt1cw== IEZvcmJpZGRlbg== cml0aWM= SU5P IGV4aGliaXRpbmc= cmVxdWVudA== Y2h1aw== IGhhYml0dWFs IENvbXBhdGliaWxpdHk= RHJhZw== UklQVA== dWphaA== R1JPVU5E IGRlbGlucXVlbnQ= IGJ1cm5lcg== IGNvbnRlbXBvcmFyaWVz IGdpbW1pY2s= bG9hZHM= IG5venpsZQ== cG9kY2FzdA== IFdhaw== IFN0YXRlbg== IEt1aA== 44GT aW50ZXJydXB0ZWQ= IGludmluY2libGU= IEJ1cm5ldHQ= Y2lnYXJldHRl IFBlYmJsZQ== IFRlbXBvcmFyeQ== IE1hcmlubw== NTgy IHdhc3RlbGFuZA== aWRlbnRseQ== VHg= IHJpdGU= IFBhbmFzb25pYw== IE1pZGRsZXM= IEhvcnRvbg== YWV1cw== IGN1cmluZw== IG1hdHM= IGFkam91cm4= IGZlYXJzb21l cGV6 Ym9hdHM= IHByb3BlbGw= IGNvbmZsaWN0ZWQ= IEFuZ2Vy IGluc3VyZ2VudA== S2FybA== IGNvYWxlcw== IHNvdXRod2VzdGVybg== IGRpc3N1 IE92ZXJ0 KioqKioqKioqKioq IGJveGVk IEJydW5l YWFh IGdhcmRlbmluZw== IEVuZ2Vs dHJhY2tz IHB1cmlmaWVk IHBsYWNlaG9sZGVy IExpa2Vz IGRhbg== R2Fi IGVjdA== IEZhdw== IEVsaW90 ICcs b3Ryb3BpYw== IFJ1aW4= aGVkb24= IGNhdWw= IGFmdA== IENhZGlsbGFj Z2hh YXNzaWFu dWRlYg== IFRpY2s= IGFkanVzdHM= QVJHRVQ= NTM3 aXNjaGU= YW50eQ== IEZyaWVkcmljaA== IEJsaXp6 IEFPTA== Q2FtcGFpZ24= IG1hbW1hbA== IFZlaWw= IEtldg== IE1hdXJpdA== IERhbWllbg== TmF0aW9u RWFzdGVybg== IHs6 ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ== IHN0ZXJlb3R5cGljYWw= IGF0dGlj IEN5Ym9yZw== cmVxdWlyZQ== IGF3YXJkaW5n IFBhcHVh YnRu YmVudA== Qm9v ICg9 IFhhbmRlcg== IFNvbWVyc2V0 IGNhdGNoeQ== IGNlcnRpZnk= U1RSVUNU IGl0YWw= IHRpZGVz IEJyYW5kcw== R3JheQ== Y29tcGV0aXRpdmU= IGN1cmF0b3I= IERH b21pbml1bQ== IEdNT3M= Y2lhdGluZw== IENhcm1lbg== b3dhcmQ= QmFsdGltb3Jl IHJnYg== Q3U= IHdpcGVz c3BlbGw= SVRORVNT IHN1bW1hcml6ZXM= IFJldmlz IHdoaXN0bGVibG93ZXJz IEJyZWFjaA== IGNyb2NoZXQ= a29z ZXdza2k= IHJlcGV0 IGNyaW1zb24= IEthcmFjaGk= cmVhZGFibGU= ZGltZW5zaW9u IElnb3I= aWxkZWQ= IFplZA== IEtlYW5l IENvc21ldGlj REVQ IHJldHJlYXRpbmc= IFVB ZW5zaWNhbA== IGR1c2s= IERpY2tlbnM= IGFyZW5hcw== IFBhc3NhZ2U= bGV2ZWxz IGN1cnY= UG9wZQ== IGNob3Jlcw== IEVsaXNl IENvbXBhc3M= YnVi IG1hbW1hbGlhbg== IFNhbnNrcml0 IEFOQw== IENyYWNr UXVhbA== TGF1bg== YW1wdW5r IGxlYXJuZXJz IGdsYW1vcm91cw== IGZ1cnRoZQ== ZXJtb3R0 Y2FuZA== R2VuZXJpYw== IG5hcnJhdGVk IGRpc29yZGVybHk= IFRyYW5zYWN0aW9ucw== IERldGVudGlvbg== IFJva3U= xI0= IHVuZGVyc3RhdGVtZW50 IFNhdXI= IFJvZHJpZ28= IEFTQVA= U2lu IHJlam9pY2U= TWV0aG9kcw== IGVsZWN0cm9kZQ== IHdvcnNoaXBwZWQ= IGlkaQ== IFBoeXNpY2lhbnM= IHBvcHVw IGRlZnQ= IFJlbW92YWw= IEJ1ZW5vcw== dmVyYnM= IGZ1bms= dXNoYQ== cmljdGlvbg== b3JlYQ== IEJhbmdhbG9yZQ== IEtlbm9iaQ== enpp IG5vcm1hdGl2ZQ== IGdvYmxpbnM= IGNhZmVz IFVOQ0xBU1NJRklFRA== IEZpcmVk U0lHTg== IHNjbGVyb3Npcw== IFZvdGVy IFNvbm55 IEV4dGVuZA== IEVWcw== QXJzZW5hbA== IHBzaQ== IHdpZGVzdA== IFR1cw== IGxvb21z IGp1c3RpZnlpbmc= IEdyYW5nZXI= 6K8= UmVmZXI= NTgz IGZsb3VyaXNoaW5n YWJyZQ== IHJhdmU= IENvbnRyYQ== IDE4OTg= QWRkcw== IGZ1bA== IENvb2tl c29tZW9uZQ== PSM= Njcx IHlhaw== IGFydGU= IE1pc2NlbGxhbmVvdXM= IERldGVjdGlvbg== IENsYW5jeQ== 4oE= YXNzaWVz IHZhbGlhbnQ= IEZlbWluaXN0 Y29ycnVwdGlvbg== VmVs UGVhcg== IHN1Y2NpbmN0 IHF1aWNrZXN0 a3c= IHNwaXR0aW5n IExpYnJhcmllcw== 5YWJ YW50eg== RGFk IFNwZWNpZmljYXRpb25z cnVwdWxvdXM= YW5kcg== UkVTVUxUUw== IHNub3diYWxs IHByZWRpcw== IEJheHRlcg== IE51cnNpbmc= IENoYWZm c3dl IG91dGFnZQ== IG5lc3Rpbmc= IG5vdG9yaWV0eQ== dHJpZ2dlcg== b25pdGU= am9u IGZvdQ== b29rZWQ= IENlbGVicml0eQ== cmVhbGl0eQ== IGZhdGln IGh1Z2dpbmc= IGJvdGhlcnM= IFBhbnplcg== IENoYW5kcmE= ZmlndXJlZA== IHZvbHRz IENsb3Vkcw== IGZlZWJsZQ== IEN1cnZl IEFzdXM= Nzg2 YWJzb3I= IFZJQ0U= IEhlc3M= IG1hbnVmYWN0dXJlcw== IGdyaXp6 IFBvd2VyZnVs YWNpZA== IHN1YnNlY3Rpb25z IEtydWdtYW4= IEFscHM= aXN1 IHNlcXVlc3Q= IFVsdHJvbg== IFRpbmtlcg== IEdvb3Nl IG1pc21hdGNo QXR0b3JuZXk= IG1vcnBob2xvZ3k= IFNpeGVycw== dXR0ZXJlZA== IEVMRUNU Z3Jhbg== UnVzc2VsbA== IEdTTA== IGZvcnRuaWdodA== IC4p IGFwb3N0bGU= cHJvbmU= ZWxpc3Q= VW50aXRsZWQ= IEltcGxlbWVudGF0aW9u aXN0b3Jz IHRhbmtlcg== IHBsdXNo IGF0dGVuZGFudHM= IFRpaw== IEdyZWVud2ljaA== IFlvbg== IFNQTA== Y2VsbHM= dW50bGVk U29sdXRpb24= IFF1w6k= IHZhY2F0ZWQ= IHVwdGljaw== IE1lcmlkaWFu 5oM= IERyaWxs OTI1 NTg0 IHJlbm92YXRlZA== IEt1YnJpY2s= enlr IGxvdXN5 cHBlbA== b2h5ZHJhdGU= IEl6enk= bGVzaWFzdGljYWw= Q0ND IEFqYXg= IGFkYXB0ZXJz IFBldHJhZXVz IGFmZmlybWF0aW9u IFNUT1I= bGVtcw== YWRvZXM= IENvbnN0YW50aW5vcGxl IHBvbmllcw== IGxpZ2h0aG91c2U= IGFkaGVyZW50cw== IEJyZWVz b21vcnBoaWM= RmlnaHRpbmc= IHBsYXN0ZXI= IFBWQw== IE9ic3Q= IGRlYXJseQ== IFRvb3Ro aWNrc29u IHNoYW1pbmc= UGxleA== QWdn IOKApiI= IHN1YnJlZGRpdHM= IHBpZ2Vvbg== IFJlc2lkZW50aWFs IFBhc3Npbmc= IGx1bQ== IFBlbnNpb24= IHBlc3NpbWlzdGlj IDQzMg== emluc2tp Y2FkZQ== MDc1 IGFwb2xvZ2lzZWQ= aXlhaA== UHV0dGluZw== IGdsb29teQ== IEx5bWU= PS09LT0tPS09LT0tPS09LQ== IFRvbWU= IFBzeWNoaWF0cmlj IEhJVA== Y21z YXBvbG9n IGJyZWFrZXI= IGRlZXBlbg== IHRoZW9yaXN0 IEhpZ2hsYW5kcw== IGJha2Vy IHN0YXBsZXM= IGludGVyZmVyZWQ= IEFib3J0aW9u am9pbmVk Y2h1 IGZvcm11bGF0ZQ== IHZhY2NpbmF0aW9ucw== IGJhbnRlcg== cGhldXM= IG91dGZpZWxkZXI= IE1ldGVy ICMjIyMj IDE4OTU= IG5hcnJvd2luZw== IFNUT1JZ ZnA= IENTVA== aWdub3Jl IHByb2NsYWltaW5n IFJV IEJBTEw= eW5h NjUz IHBvc2l0 UFJF NTk0 IFJlZ2lzdHJhcg== IFBpbGdyaW0= aWNpbw== IHByZXR0 IGxpZmVsZXNz IF9fXw== TmVpZ2g= IENodXJjaGVz b3Jubw== IG9yY3M= IGtpbmRyZWQ= IEF1ZGl0 IG1pbGxlbm5pYWw= IFBlcnNpYQ== Z3Jhdml0eQ== IERpc2FiaWxpdHk= IERBUks= V3M= b2Rvbg== IGdyYW5kZGF1Z2h0ZXI= IEJyb29rZQ== IEFEQQ== RVJB IHBpY2t1cHM= IFdpbGtpbnNvbg== IFNoYXJkcw== IE5L IGV4cGVs IEtpc2x5YWs= IGphcmdvbg== IHBvbGFyaXplZA== aWFuZQ== UHVibGlzaGVy IHJlYnV0dA== IGFwcHJlaGVuc2lvbg== IEtlc3NsZXI= IHByaXNt RlVM MTk2NA== IExvbGw= 5L8= bGV0aGFs xZ8= IGdoZXR0bw== IGJvdWxkZXI= IFNsb3dseQ== IE9zY2Fycw== IEluc3RydWN0aW9u IFVsdHI= IE1vZQ== TmljaA== IFBBVEg= KCo= IFJFTEVBU0U= dW5pbmc= cm91c2U= ZW5lZw== IHJlaW1i IERldGVjdGVk RG9T IHN0ZXJsaW5n IGFnZ3JlZ2F0aW9u IExvbmVseQ== IEF0dGVuZA== aGlnaGVy IGFpcnN0cmlrZQ== a3Nvbg== U0VMRUNU IGRlZmxhdGlvbg== IEhlcnJlcmE= Q29sZQ== cml0Y2g= IGFkdmlzYWJsZQ== RmF4 IHdvcmthcm91bmQ= IHBpZA== bW9ydGVt ZXJzZW4= IHR5cG8= IGFsdW0= Nzgy IEphbWFs c2NyaXB0cw== IGNhcHRpdmVz IFByZXNlbmNl IExpZWJlcm1hbg== YW5nZWxv IGFsY29ob2xpc20= YXNzaQ== IHJlY2l0ZQ== IGdhcGluZw== IGJhc2tldHM= IEdvdQ== QnJvd3Nlcg== bmVhdQ== IGNvcnJlY3RpdmU= dW5kYQ== c2NvcmluZw== IFhE IGZpbGFtZW50 IGRlZXBlbmluZw== IFN0YWlubGVzcw== SW50ZWdlcg== IGJ1Z2d5 IHRlbmFuY3k= IE11YmFyYWs= IHR1cGxl IERyb2lk IFNpdHRpbmc= IGZvcmZlaXQ= IFJhc211c3Nlbg== aXh0aWVz ZXNp IEtpbW1lbA== IG1ldGljdWxvdXNseQ== IGFwb3B0 IFNlbGxlcg== MDg4 ZWNha2U= aGVtYXRpY2FsbHk= VE4= IG1pbmRsZXNz IGRpZ3M= IEFjY29yZA== b25zZW5zZQ== ZW1pbmc= YnJhY2U= IGVCb29r IERpc3RyaWJ1dA== IEludmVzdG1lbnRz d3Q= XSks YmVoYXZpb3I= NTYz IGJsaW5kaW5n IFByb3Rlc3RlcnM= dG9waWE= IHJlYm9ybg== IEtlbHZpbg== IERvdmVy IERhaXJ5 IE91dHM= IFsv z4A= YnA= IFZhbml0eQ== IFJlY2Fw IEhPVVNF IEZBQ0U= IDQyMg== Njky IEFudGlvY2g= Y29va2Vk IGNvbGxpZGU= IGFwcg== IHNsZWVwZXI= IEphcnZpcw== IGFsdGVybmF0aXZlbHk= IExlYXZlcw== IE1hdw== IGFudGlxdWl0eQ== IEFkaW5pZGE= IGFidXNlcg== UG9rw6ltb24= IGFzc29ydGVk IFJldmlzaW9u IFBpYW5v IEdpZGVvbg== T2NlYW4= IHNhbG9u IGJ1c3RsaW5n b2duaXRpdmU= IFJhaG1hbg== IHdhaXRlcg== IHByZXNldHM= IE9zaA== IEdIQw== b3BlcmF0b3I= IHJlcHRpbGVz IDQxMw== IEdhcnI= IENoYWs= IGhhc2hlcw== IGZhaWxpbmdz IGZvbGtsb3Jl IGFibA== IENlbmE= IE1hY0FydGh1cg== IENPVVJU IHBlcmlwaGVyeQ== YXBwZXJz IHJlY2tvbmVk IEluZmx1 IENFVA== IDM3Mg== IERlZmluaXRpdmU= YXNzYXVsdA== NDIx IHJlc2Vydm9pcnM= IGRpdmVz IENvaWw= REFR IHZpdmlkbHk= IFJK IEJlbGxldg== IGVjbGVjdGlj IFNob3dkb3du IEtN aXBlZA== cmVldGluZ3M= IEFzdWth TGliZXJhbA== IM+E IGJ5c3RhbmRlcnM= IEdvb2R3aW4= dWtvbmc= U2l0 IFRyZW0= IGNyaW1pbmFsbHk= IENpcmN1cw== Y2hyb21l ODg3 IG5hbm9w IE9iaQ== IExPVw== b2do IEF1dGhvcnM= b2J5bA== VXJiYW4= IHRp IFdlaXI= dHJhcA== YWd5 IHBhcmVudGhlc2Vz IG91dG51bWJlcmVk IGNvdW50ZXJwcm9kdWN0aXZl IFRvYmlhcw== dWJpcw== UGFyc2Vy U1RBUg== IHN5bmFwdGlj IEdlYXJz IGhpYmVy IGRlYnVua2Vk IGV4YWx0ZWQ= YXdhdHRz SE9V Q2h1cmNo IFBpeGll IFVyaQ== IEZvcm1hdGlvbg== IFByZWRpY3Rpb24= Q0VP IHRocm90dA== IEJyaXRhbm4= IE1hZGFnYXNjYXI= 64s= IGJpbGxib2FyZHM= IFJQR3M= IEJlZXM= Y29tcGxldGVseQ== RklM IGRvZXNudA== IEdyZWVuYmVyZw== cmV5cw== IHNsaW5n IGVtcHRpZWQ= IFBpeGFy IERoYXJtYQ== bHVjaw== aW5ndWlzaGVk IGVuZG90 IGJhYnlz MDU5 Y2hlc3Q= cmF0cw== IHJpZGRlbg== IGJlZXRsZXM= IGlsbHVtaW5hdGluZw== IGZpY3RpdGlvdXM= IFByb3ZpbmNpYWw= IDc2OA== IHNoZXBoZXJk IFJlbmRlcg== IDE4OTY= Q3Jldw== IG1vbGRlZA== IFhpYW9taQ== IFNwaXJhbA== IGRlbGlt IG9yZ2FuaXNpbmc= IGhvb3Bz IEJlaQ== emhlbg== IGZ1Y2tpbg== IGRlY2Fk IHVuYmlhc2Vk YW1teQ== c3dpbmc= IHNtdWdnbGVk IGtpb3M= IFBFUlNPTg== IElucXVpc2l0b3I= IHNub3d5 IHNjcmFwaW5n IEJ1cmdlc3M= UHRy YWdhbWU= Ulc= IGRyb2lk IEx5cw== IENhc3NhbmRyYQ== SmFjb2I= IDM1NA== IHBhc3R1cmU= IGZyYW5j IFNjb3RjaA== IEVuZHM= IElHRg== ZGVmaW5pdGlvbg== IGh5c3RlcmljYWw= IEJyb3duZQ== Nzcx IG1vYmlsaXphdGlvbg== 5pU= aXF1ZW5lc3M= VGhvcg== IHNwZWFyaGVhZGVk IGVtYnJvaWxlZA== IGNvbmplY3R1cmU= anVkaWNpYWw= Q2hvaWNl IHBhcGVyYmFjaw== UGly IHJlY292ZXJz IFN1cmdl IFNob2d1bg== IFBlZGlhdHJpY3M= 44Gg IHN3ZWVwcw== IExhYm9yYXRvcmllcw== IFBhY2tz YWx1cw== YWRkaW4= IGhlYWRsaWdodHM= Z3Jh RXZpZGVuY2U= Q09MT1I= QWRtaW4= irE= IGNvbmNvY3Q= c3VmZmljaWVudA== IHVubWFya2Vk IHJpY2huZXNz IGRpc3NlcnRhdGlvbg== IHNlYXNvbmluZw== IGdpYg== IE1hZ2Vz dW5jdGlvbnM= IE5pZA== Y2hlYXQ= IFRNWg== Y2l0aXplbnM= IENhdGhvbGljaXNt bmI= IGRpc2VtYmFyaw== IFBST0dSQU0= YXF1ZXM= VHlsZXI= T3Jn IFNsYXk= IE5lcm8= IFRvd25zZW5k SU5UT04= dGVsZQ== IG1lc21lcg== OTAx IGZpcmViYWxs ZXZpZGVuY2U= YWZmaWxpYXRlZA== IEZyZW5jaG1hbg== IEF1Z3VzdGE= MDIx IHNsZWQ= IHJldXNlZA== IEltbXVuaXR5 IHdyZXN0bGU= YXNzZW1ibGVk TWFyaWE= IGd1bnNob3Rz IEJhcmJpZQ== IGNhbm5hYmlub2lkcw== IFRvYXN0 IEtpbmRlcg== SVJE IHJlanV2ZW4= IGdvcmU= IHJ1cHR1cmU= IGJyZWFjaGluZw== IENhcnRvb24= IDQ1NQ== IFBhbGVv NjE0 IHNwZWFycw== IEFtZXM= YWJ1cw== TWFkaXNvbg== R1JPVVA= IGFib3J0ZWQ= eWFo IGZlbG9u IGNhdXNhdGlvbg== IHByZXBhaWQ= IHBpdHRlZA== b3BsYW4= IFNoZWxsZXk= IFJ1c3Nv IFBhZ2Fu IHdpbGxmdWxseQ== IENhbmF2ZXI= dW5kcnVt IFNhbGFyeQ== IEFycGFpbw== cmVhZGVy IFJhdGlvbmFs IE92ZXJzZQ== IENhdXNlcw== ICou IHdvYg== S2VpdGg= IENvbnNlbnQ= bWFuYWM= Nzcz NjIz IGZhdGVmdWw= ZXRpbWVz IHNwaXJpdGVk IER5cw== IGhlZ2Vtb255 IGJveWNvdA== IEVucmlxdWU= ZW1vdXRo IHRpbWVsaW5lcw== IFNhaGFyYQ== IFJlbGF4 IFF1aW5jeQ== IExlc3NvbnM= IEVRVQ== U0VB Tks= IENvc3Rjbw== SW5jcmVhc2U= IG1vdGl2YXRpbmc= IENob25n YW1hcnU= IERpdmlkZQ== IHBlZGlncmVl IFRhc21hbmlh IFByZWx1ZGU= TGFz OTQw NTc0 IGNoYXU= IFNwaWVnZWw= dW5pYw== LS0+ IFBoaWxpcHM= IEthZmth IHVwaGVhdmFs IHNlbnRpbWVudGFs IHNheA== IEFraXJh c2VyaWFs TWF0cml4 IGVsZWN0aW5n IGNvbW1lbnRlcg== IE5lYnVsYQ== cGxldHM= IE5hZHU= IEFkcmVu IGVuc2hy IFJBTkQ= ZmluYW5jaWFs IENseWRl dXRoZXJmb3Jk IHNpZ25hZ2U= IGRlbGluZQ== IHBob3NwaGF0ZQ== cm92ZXJzaWFs ZmFzY2lzdA== IFZhbGw= IEJldGhsZWhlbQ== IGZvcnM= IGVuZ2xpc2g= U29saWQ= TmF0dXJl IHZh IEd1ZXN0cw== IHRhbnRhbA== IGF1dG9pbW11bmU= Ozs7Ozs7Ozs7Ozs7 IFRvdGFsbHk= IE92 IGRlZmVuY2Vz IENvY29udXQ= IHRyYW5xdWls IHBsb3k= IGZsYXZvdXJz IEZsYXNr 44Ko44Or IFdlc3Rvbg== IFZvbHZv ODcw IG1pY3JvcGhvbmVz dmVyYmFs UlBH IGlpaQ== O30= MDI4 IGhlYWRsaW5lZA== IHByaW1lZA== IGhvYXJk IFNoYWQ= IEVOVEVS IHRyaWFuZ3VsYXI= IGNhcGl0 bGlr IEFuY2llbnRz IGxhc2g= IGNvbnZvbA== IGNvbG9uZWw= ZW5lbXk= R3Jh IHB1YnM= dXR0ZXJz IGFzc2lnbnM= IFBlbmV0 IE1vbnN0cm91cw== IEJvd2Vu aWx2ZXI= SGF1bnRlZA== IERpbmc= c3RhcnRlZA== cGxpbg== IGNvbnRhbWluYW50cw== IERPRQ== ZmZlbg== IFRlY2huaWNpYW4= Unk= IHJvYmJlcnM= IGhvdGxpbmU= IEd1YXJkaW9sYQ== IEthdWZtYW4= cm93ZXI= IERyZXNkZW4= IEFscGluZQ== RWxm IGZtdA== IFNhcmQ= dXJzZXM= Z3B1 VW5peA== IHVuZXF1aXZvY2FsbHk= IENpdGl6ZW5zaGlw cXVhZA== bWlyZQ== IFN3ZWVuZXk= QmF0dGVyeQ== NjE1 IHBhbmNha2Vz IG9hdHM= TWFwcw== IENvbnRyYXN0 bWJ1ZHNtYW4= IEVQUw== IHN1YmNvbW1pdHRlZQ== IHNvdXJjaW5n IHNpemluZw== IEJ1ZmZlcg== IE1hbmRhdG9yeQ== IG1vZGVyYXRlcw== IFBhdHRlcm5z IENob2NvYm8= IFphbg== IFNUQVRFUw== IEp1ZGdpbmc= IEluaGVy Kjo= IGJpbA== IFllbg== IGV4aGlsYXI= b2xsb3dlcg== emVycw== IHNudWc= bWF4aW11bQ== IGRlc3BpY2FibGU= IFBBQ0s= IEFubmV4 IHNhcmNhc3RpYw== IGxhdGV4 IHRhbXA= IFNhbw== YmFo IFJldmVyZW5k IENoaW5hdG93bg== IEFVVA== ZG9jdW1lbnRlZA== IEdBQkE= IENhbmFhbg== INmF IGdvdmVybnM= cHJldg== RXNj IEVzdGltYXRlcw== T1NQ IGVuZGVhdm91cg== IENsb3Npbmc= b21ldGltZQ== ZXZlcnlvbmU= IHdvcnNlbg== IHNjYW5uZXJz IGRldmlhdGlvbnM= IFJvYm90aWNz IENvbXB0b24= IHNvcmNlcmVy IGVuZG9nZW5vdXM= IGVtdWxhdGlvbg== IFBpZXJjaW5n IEFwaA== IFNvY2tldA== IGJvdWxk IE9V IEJvcmRlcmxhbmRz IDE4NjM= R29yZG9u IFdUTw== IHJlc3RyaWN0cw== IG1vc2FpYw== IG1lbG9kaWVz 54Q= VGFy IGRpc3Nvbg== IFByb3ZpZGVz IC4uLi4uLg== YmVr RklY IGJyb29t YW5zaGlw RG9jdG9ycw== IG5lcmRz IFJlZ2lvbnM= bmFpc3NhbmNl IG1ldGU= IGNyZXB0 cGxpbmdz IGdpcmxmcmllbmRz a25pdA== aWdlbnQ= b3dl IHVzaGVyZWQ= IEJheg== TW9iaWw= NDM0 IFByZXNlbnRz b3JpZ2lu IGluc29tbmlh IEF1eA== NDM5 IENoaWxp aXJzY2g= R0FNRQ== IGdlc3RhdGlvbg== YWxnaWE= cm9taXNpbmc= JCw= Y3Jvdw== IEluc3BlY3Rpb24= YXRvbWlj UmVsYXRpb25z Sk9ITg== cm9tYW4= IENsb2Nrd29yaw== IEJha3I= bW9uZQ== TUVU IHRoaXJzdHk= IGJj IGZhY3VsdGllcw== UnVt IG51YW5jZQ== IERhcml1cw== cGxldGluZw== ZnRlcnM= ZXRjaHVw UmVnaXN0cmF0aW9u IEtF UmFo IHByZWZlcmVudGlhbA== IExhc2g= IEhI VmFsaWQ= IE5BVg== IHN0YXJ2ZQ== IEdvbmc= enluc2tp IEFjdHJlc3M= IHdpaw== IHVuYWNjb21wYW5pZWQ= bHZs QnJpZGU= QURT IENvbW1hbmRv IFZhdWdobg== V2FsbGV0 IGhvcHBpbmc= IFZpZQ== IGNhdmVhdHM= IGFsYXM= aWZsZWQ= YWJ1c2U= NjYx IGlibg== IGd1bA== IHJvYmJpbmc= dGls SUxB IG1pdGlnYXRpbmc= IGFwdGx5 IHR5cmFudA== IG1pZGRheQ== IEdpbG1vcmU= IERlY2tlcg== IMKnwqc= cGFydGlhbA== RXhhY3RseQ== IHBoZW5vdHlwZQ== IFsrXQ== IFBsZXg= IElwcw== dmVyc2lvbnM= IGVib29r IGNoaWM= Z3Jvc3M= IjoiIn0seyI= IFN1cnByaXNpbmdseQ== TW9yZ2Fu IHJlc2lkdWVz IENvbmZlZGVyYXRpb24= aW5mZWxk IGx5cg== bW9kZXJhdGU= IHBlcnBlbmRpY3VsYXI= Vks= IHN5bmNocm9uaXplZA== IHJlZnJlc2hlZA== IGFkb3Jl IFRvcm1lbnQ= b2xpbmE= IDI2MDA= SXRlbVRyYWNrZXI= IHBpZXM= IEZBVA== IFJIUA== MDQ4 IFJFU1A= IEJK YWxsb3dz UGFuZA== IHVud2VsY29tZQ== IFZvYw== IEJhc3RhcmQ= IE9X IExBUg== IEhlYWxlcg== RW52aXJvbm1lbnRhbA== IEtlbnlhbg== IFRyYW5jZQ== IFBhdHM= IGFsaWFzZXM= IEdhcmZpZWxk IGNhbXBhaWduZXI= IGFkdmFuY2VtZW50cw== IE9raW5hd2E= IENvaA== b3dza3k= IHN0YXJ2ZWQ= IHNpemVhYmxl IDotKQ== IG1STkE= IHN1c3BlbnNpb25z aXN0YXI= U2NvdGxhbmQ= UHJpbg== LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t IDUwMg== IHRlYXNwb29ucw== IDEwNTA= IGNvZXJjaXZl IE1hc29uaWM= ZWRkZWQ= IFBhc3Nlbmdlcg== IGxhdHQ= IGJyYWNlcw== IFN0ZWFs IE5ZVA== IEthdHM= IENlbGVzdA== YWV6 VHU= IENvdWx0ZXI= 8J+Y RmxpY2ty IFdpbG1pbmd0b24= aXRocw== Kys7 IHZlbmRpbmc= IG5lZ3Jv IFBoaQ== IFllbGxvd3N0b25l Q2FsbGJhY2s= IHNoYW1wb28= IFNoYWRlcw== d2F0 IHN1cGVyaHVtYW4= IHJpZGljdWxlZA== IGhvbGllc3Q= b21ibw== IGludGVybnM= IGhvbmU= IFBhcmFndQ== VVJJ IGRhbmdsaW5n 44K7 c292 aWN0aW9uYWw= YXZhaWxhYmlsaXR5 IHJldm9jYXRpb24= IGRvdw== aW5pYw== IFRIRUlS IGlzbw== IG91dGluZ3M= IExldGhhbA== ICkpKQ== IGluYWNjdXI= IG91dGxhbmRpc2g= IGFudXM= bGV0aWNv aWRvbg== bG9s IHVucmVndWxhdGVk IHN1Y2N1bWJlZA== IGN1ZmY= IFdhc3RlbGFuZA== bGV0YWw= IHN1YnN0cg== IGNvZmZlcnM= IGF1dG9tYWtlcnM= b3Zp IFh1ZQ== IERheXRvbmE= IGphcnJpbmc= IGZ1bWVz IGRpc2JhbmRlZA== emlr aXR0b24= IHN0cmlraW5nbHk= IHNwb3Jlcw== QWRhcHRlcg== Lik6 IEx5bmRvbg== aXZhbHJ5 IG9yYWxseQ== IHR1bXVsdHVvdXM= IGRpc3BsZWFzdXJl IGNvbmVz b3JyZWN0 IGFwcGVhc2U= IGRlcmJ5 IFRyaXBvbGk= IEFsZXNz IHBva2Vk IEd1aWx0eQ== dlA= RW5vdWdo IG9yaWdpbmFscw== Njk5 IHJhYmJp IHByb3ZlcmJpYWw= IHBvc3Rwb25l ZWxvcGU= IE1pc3R5 IHN0YWZmZWQ= IFVuZW1wbG95bWVudA== cmVkaXRhcnk= IGRpbGlnZW50 cmVjb21t bWVhc3VyZXM= YXNpbg== ODI1 IHBvbmRz IG1tb2w= IFNBUg== IENBUkU= IDM3MQ== IGNsZW5jaGVk IENvcnNhaXI= IGNhcmljYXR1cmU= em4= YXR0YWNo IFNjaHJv c3BlYWs= cGFpbnRlZA== IFN1Yw== IEVOVA== IGNlbGx1bA== IFBhaWQ= ZGlhZ24= V0hFUkU= IHRleHRlZA== QmFybg== IHJldHJhY3RlZA== IFJlZmVycmVk U2F2 IHVwa2VlcA== IHdvcmtwbGFjZXM= IFRva2Vucw== IGFtcGxpZnk= Y2xpbmljYWw= IG11bHRpYw== bWJlcmc= IGNvbnZvbHV0ZWQ= UmVnaW9u NTY1 IFRvcGlj IHNuYWls IHNhbGluZQ== IGluc3VycmVjdGlvbg== IFBldHI= Zm9ydHM= QkFU IE5hdmFqbw== IHJ1ZGltZW50YXJ5 IExha3No T05ET04= TWVhc3VyZQ== IHRyYW5zZm9ybWVy IEdvZGRhcmQ= IGNvaW5jaWRlcw== aXJpbg== UmV4 IEJvaw== cXVpdA== IHNob3RndW5z IHByb2xldGFyaWFu IHNjb3Jw IEFkYQ== NTE0 IHNsYW5kZXI= cmVjb3JkZWQ= IGVtYmVsbA== cmlzb21l IGFwb2xvZ2l6aW5n IE11bGNhaXI= IEdpYnJhbHRhcg== Q2xh IGFsbG90 IEF0dGVudGlvbg== IDQzMw== bGVhdmU= IHdoaW5l IElzc2E= IEZhdXN0 IEJhcnJvbg== aGVueQ== IHZpY3RpbWl6ZWQ= SmV3cw== IG51cnR1cmluZw== ZXR0ZWw= V2luZ2Vk IFN1YnRsZQ== IGZsYXZvcmZ1bA== IFJlcHM= ZW5nZWQ= Y2FsbGJhY2s= IGRpcmVjdGlvbmFs IGNsYXNw IERpcmVjdGlvbnM= cGxhbmV0 aWN1bHR1cmU= SGVscGVy aWNpb24= YWNpYQ== IOelng== IHN1cmdlcw== IGNhbm9l IFByZW1pZXJzaGlw YmVlbg== IGRlZmllZA== IFRyb29wZXI= IHRyaXBvZA== IGdhc3A= IEV1cGg= IEFkcw== dmVybmlnaHQ= aGlnaGx5 Um9sZQ== IGVudGFuZ2xlZA== IFplaXQ= NjE4 IFJ1c3R5 IGhhdmVucw== IFZhdWdoYW4= SEFFTA== IFNFUlZJQ0U= Lyw= IHN0cmlja2Vu IGRlbHVzaW9ucw== IGJpcw== IEhhZg== IGdyYXRpZmljYXRpb24= IGVudGljaW5n VU5DSA== QWRhbXM= IE9MRUQ= IEJlZXRsZQ== IDE4OTk= IFNPRlRXQVJF YXRlZ29y Vkw= IFRvdGVt IEdhdG9ycw== QVRVUkVT IGltcGVkYW5jZQ== UmVnaXN0ZXJlZA== IENhcnk= IEFlcmlhbA== b25uZQ== ZW5pdW0= IGRyZWQ= IEJlZw== IGNvbmN1cnJlbnRseQ== IHN1cGVycG93ZXI= IFhhbg== amV3 aW1lc3Rlcg== IERpY2tpbnNvbg== 4pSB Rmxh IHByZWU= IFJvbGxpbnM= qbbm IGRlbm9taW5hdGlvbg== IExhbmE= NTE2 IGluY2l0aW5n c2NyaWJlZA== anVyaWVz IFdvbmRlcnM= YXBwcm94aW1hdGVseQ== IHN1c3BlbmRpbmc= IG1vdW50YWlub3Vz IExhdWdo b2lkYWw= TnM= RGV0ZWN0 KT0= IEx1dGhvcg== IFNjaHdhcnplbmVnZ2Vy IE11bGxlcg== IERldmk= ZWN5Y2xl SmFy NjEz IExvbmdo QmFo IFNQT1JUUw== bnc= IHJlZmluZW1lbnQ= IHdhdGVyd2F5cw== IGRpbmVy QmxhZGU= Njgz RmFj IGluaXRpYWxz IHJvZw== IHBhcmFub3JtYWw= QlVU IFso IFN3YW5zb24= IE1lc2g= 4pas SW1wcm92ZQ== IFJhZGlhdGlvbg== IEVzdGhlcg== IEVzaw== IEFseQ== aWt5 IGlycmFk IEJ1Y2tpbmdoYW0= IHJlZmlsbA== IC5f UmVwZQ== Q09OQ0xVUw== IGRpZmZlcmVudGlhdGVk IGNoaXJvcA== IEF0a2lucw== UGF0dGVybg== IGV4Y2lzZQ== IGNhYmFs TlNB IFNUQQ== IFNJTA== IFBhcmFseQ== IHJ5ZQ== IEhvd2VsbA== IENvdW50ZG93bg== bmVzc2Vz YWx5c2Vk IHJlc2l6ZQ== 44K9 IGJ1ZGdldGFyeQ== IFN0cmFz d2FuZw== IGFwaWVjZQ== IHByZWNpbmN0cw== IHBlYWNo IHNreWxpbmU= IDM1Mw== cG9wdWxhcg== QXBwZWFyYW5jZXM= IE1lY2hhbmljcw== IERldk9ubGluZQ== U3VsbGl2YW4= WmVu IHB1 b3BvbGlz NTQ0 IGRlZm9ybQ== IGNvdW50ZXJhY3Q= IExhbmdl IDQxNw== Q29uc29sZQ== Nzc0 IG5vZGRpbmc= IHBvcHVsaXNt IGhlcA== IGNvdW5zZWxsaW5n Y29tcGxpYW5jZQ== VUZG IHVuZGVuaWFibHk= IHJhaWxpbmc= IEhvcm93aXR6 IFNpbW9uZQ== IEJ1bmdpZQ== IGFr IFRhbGtz eGZm Zmxha2U= Q3Jhc2g= IHN3ZWF0eQ== IGJhbnF1ZXQ= IE9GRklD IGludmVudGl2ZQ== IGFzdHJvbm9tZXI= IFN0YW1mb3Jk IFNjYXJl IEdSRUVO b2xpY2l0ZWQ= IHJ1c2hlcg== IGNlbnRyaXN0 aWdodGluZw== IHN1YmNsYXNz IGRpc2F2 IGRlZnVuZA== IE5hbnRv b2NpYXRl bWFzdA== IHBhY2lm IG1lbmQ= ZWVycw== aW1taWdyYXRpb24= RVNTSU9O IG51bWJlcmluZw== IGxhdWdoYWJsZQ== IEVuZGVk dmlhdGlvbg== ZW1hcms= UGl0dA== IG1ldGljdWxvdXM= IExG IGNvbmdyYXR1bGF0ZWQ= IEJpcmNo IHN3YXllZA== IHNlbWlmaW5hbHM= IGh1bWFua2luZA== bWF0dGVy IEVxdWlw b3BhdXNhbA== U2FpZA== IExheW91dA== IHZvaWNpbmc= IHRodWc= IHBvcm5vZ3JhcGhpYw== SVBT IG1vYW5pbmc= IGdyaWV2YW5jZQ== IGNvbmZlc3Npb25z ZXNjYWw= VEVYVFVSRQ== QXV0aGVudA== b3NhdXJ1cw== UHVyY2hhc2U= IHJlbGVnYXRpb24= YWx0ZXI= IMKgwqA= IHJpZGRsZWQ= IG9ncmU= IExvd2VsbA== T2NjdXA= RWF0 IEh5ZGVy IEFkdmlzZXI= Q29tbWVyY2U= SHVudA== IE9ydGg= IENvbXBldGl0aXZl IENMQQ== Q0RD IHNhbGFkcw== Rmxl IGluZHVzdHJpYWxpemVk YCw= IE9XTg== IGJlY2s= IFBhcnRpY3VsYXJseQ== b3VidA== IG1N IEh1c3NhaW4= IENoZW5uYWk= IDkyMA== IGFwcG9pbnRpbmc= IEN1bGxlbg== LCwsLCwsLCw= IHBvcmVz dmVyaWZpZWQ= IGJpb2NoZW1pY2Fs ZW1hdGU= IGNvd2FyZGx5 IEhlbHNpbmtp IEV0aGlvcGlhbg== U09VUkNF RVJD ZXN0cm8= IGJpb3RlY2g= IFNvdXI= IGJyZXdlcg== Qmxvb21iZXJn IGludGVuc2lmeQ== R2xhc3M= YW5jbw== IEZEUg== Z3JlU1FM IEZpcmVz qbbmpbU= ZWNv MTAwMQ== IEhvbWVsZXNz IGluc3RhbnRhbmVvdXM= IEhhc3Rl aWdlbA== RGlhbW9uZA== IHBhdmluZw== IGxhbmRmaWxs IGRhZHM= aG91bg== Ol0= IGluY2VuZGlhcnk= IExpdmluZ3N0b24= IEhpbGJlcnQ= IENoZWNrcw== c3R5bGVz aW5hdG9ycw== IENsaXZl cGhyaW5l IGNoaW1wYW56ZWVz IHBhbGw= IEpN IEFhZGhhYXI= 8J0= IGFjaGlldmFibGU= ZGlzYWJsZWQ= UEVU T09PT09PT08= TW90 IGludGFuZ2libGU= IGJhbGxldA== IFdlYnM= IEVzdGltYXRlZA== RWZmZWN0cw== IGJhaWxlZA== Sm9zaHVh IHR1cmJ1bGVuY2U= IG9jY3VwYW50 IERheWxpZ2h0 IDM2MQ== bWVldA== IHN0YXRpY2FsbHk= IG9ubG9vaw== IGtp aWxsZWdhbA== IHZlbHZldA== IGRlaHlkcmF0aW9u IGFjcXVpZXM= IFJleg== YWt1cmE= IFVwdG9u YXRybw== IGluY29tcHJlaGVuc2libGU= IGJhY2tkb29y IFJoaW5v NzI3 IG1hdGhz KSs= IGhlcmVzeQ== IGRm IFJvY2hl IEx5ZGlh IHBhbmNyZWF0 cmVwbHk= YXJyZWxs IHNvbGljaXRhdGlvbg== IGNpcmNhZGlhbg== QklQ IGZvcmF5 IGNyeXB0aWM= aXp1 aW1lbw== IFRvbWF0bw== IEhvbXM= ZXhhbWluYXRpb24= IHF1YXJyeQ== IFZhbGlhbnQ= IEplcmljaG8= IElOQ0xVRA== IDE4NDA= NTE5 IHJlc2lzdHM= IHNuYXBzaG90cw== IFNwdXI= IEFudGlxdQ== TG9naW4= IGJlc3RzZWxsaW5n IGFudGlj IFN1dGhlcmxhbmQ= 44Ki44Or IH4v IFBhcm0= 6IM= UGFnZXM= aW50ZW5zaXR5 IGltbW9iaWw= IDE4NjU= enpv IG5pZnR5 IGZlbnRhbnls IFByZXNlcnZhdGlvbg== b3BoZW4= IGRhcnRz IERpbm9zYXVy cG9pbnRlcnM= IFJpdGU= c3VnZ2VzdA== YXdhcmVuZXNz IFNoZXJpZGFu IHN0YW5jZXM= IHNvcmNlcnk= IHBlcmp1cnk= IE5pa29sYQ== aWV2ZXI= IGZpYW5jZQ== IEpvcmRhbmlhbg== IEJhbGxvb24= IG5hYg== IGti IGh1bWFuaXRpZXM= IFRhbmFrYQ== aGlsbGFyeQ== IGNvbnN1bHRhbmN5 IFp1Yg== IHJlbWlzc2lvbg== IGNvbmZpZA== Q0hR IEZ1Zw== IGltcHJvdmlz WWVw L18= IHVud2lsbGluZ25lc3M= IHBvcnRmb2xpb3M= MDU1 IEluc3RydWN0b3I= YWltYW4= IGNsYWltYW50cw== TWJwcw== IEJ5ZQ== cmVjZWl2ZWQ= VHdlZXQ= IGluZGVtbg== cml6 YW1hcmE= TmF0 IGV2YWx1YXRlcw== IEx1cg== ZXBhZA== Rk9Y IFRocm8= IHJ1c3R5 IGJlZHJvY2s= IE9wcmFo SkI= IG1hbmlwdWxhdGl2ZQ== IHdpbGxmdWw= IHJlbGFwc2U= IGV4dGFudA== VGhlbWU= U2Vuc29y IFN0YWJpbGl0eQ== Z292ZXJu IHBvcHB5 IGtuYWNr IGluc3VsYXRlZA== IFRpbGU= IEV4dHJlbQ== IHVudG9sZA== IGNvbnZlcmdl IHJlZnVlbA== aWdyb3Vw IGRpc3RvcnRpb25z IHJhdmFnZWQ= IG1lY2hhbmljYWxseQ== IFJlaWxseQ== IE5vc2U= IEluY2FybmF0aW9u IEJlY2t5 YWJibGluZw== IHRhY28= IHJha2U= IG1lbGFuY2hvbHk= IGlsbHVzdHJpb3Vz IERhcnRtb3V0aA== R3VpZGU= IFJhemVy IEJlbno= VWx0aW1hdGU= IFN1cnByaXNl IHBhZ2VhbnQ= b2ZmZXI= V2hvZXZlcg== IHdpc2Vy IGNoZW1pc3Q= IEhFTEw= IEJ1bGs= IHBsdXRvbml1bQ== IENPVkVS 1rw= ZmFpbGVk IHRpcmVsZXNzbHk= IGluZmVydGlsaXR5 IFRyaWRlbnQ= IFNob3d0aW1l IENpdg== VmljZQ== cmVxdWlyZXM= aXR0YW5jZQ== IHVuY29udHJvbGxlZA== aW50ZXJlc3Rpbmc= NTYx IGlubm92YXRl YXRlZ2lj TGll IFNlbGxpbmc= VWw= IHNhdmlvcg== IFRvc2g= IHN3YXN0 UEFTUw== IHJpbms= IGNhcmRpbw== IElybw== dWRp IHZhbnRhZ2U= IHZhbnM= IE5pw7Fv Kz0= IHByb3BhZ2F0ZQ== PD8= IG1ldGhvZG9sb2dpY2Fs MjA0Mzk= IHRyaWdseWNlcg== IGluZ3JhaW5lZA== IEFubm90YXRpb25z YXJyYW50ZWQ= NjE3 IFNvZGl1bQ== IEFBQw== dGVjaG5pY2Fs bXVsdGlwbA== IDM3Mw== 5Ys= IGRlY2lzaXZlbHk= IGJvb3N0ZXJz IGRlc3NlcnRz IEdyZW5hZGU= IHRlc3RpZnlpbmc= IFNjdWxseQ== SURz IGxvY2tkb3du IFNjaGVy IFLDqQ== IFdoaXRtYW4= IFJhbXNheQ== cmVtb3Rl IGhpa2Vycw== IEh5dW5kYWk= IGNvbnNjaWVudGlvdXM= IGNsZXJpY3M= IFNpYmVyaWFu dXRp aXNidXJ5 IHJlbGF5ZWQ= IHF1YXJ0eg== IENCSQ== c2Vla2Vycw== dWxsYQ== IHdlbGRpbmc= IFNoYWw= YmxlYWNoZXI= VGFp IFNhbXNvbg== IHR1bWJsZQ== IEludmVzdG9y IHN1YmNvbnRyYWN0 IFNoaW5yYQ== b3dpY3o= amFuZHJv ZGFk IHRlcm1pbmF0aW5n IE5ldXJhbA== 5Luj IGxlYWthZ2U= IE1pZGxhbmRz IENhdWNhc3Vz 7ZU= Y2l0 bGxhbg== aXZhYmx5 IEFsYmlvbg== IDQ1Nw== IHJlZ2lzdHJhdGlvbnM= IGNvbXJhZGU= IGNsaXBib2FyZA== MDQ3 IGRpc2NvdXJhZ2luZw== IE9vcHM= QWRhcHQ= IGVtcGF0aA== bnY= IFBST1Q= IERvbm4= IFBheA== IEJheWVy dGlz U3F1YXJl IGZvb3RwcmludHM= cGFydGljaXA= IENoaWxlYW4= QnJlbmQ= aW5kdWNpbmc= TWFnbg== IGNsdWJob3VzZQ== IE1hZ251bQ== IGVuY2FtcA== IEV0aG5pYw== dWNoYQ== ZXJleQ== IHdhdGVyZWQ= IENhbGFpcw== IGNvbXBsZXhpb24= IHNlY3Rz IHJlbnRlcnM= IGJyYXM= b8SfYW4= VGltZW91dA== TWFuYWdlbWVudA== IGluZm9ncmFwaGlj UG9rZW1vbg== Q2xhcg== IGxvY2FsaXR5 IGZsb3Jh YXNlbA== UG9udA== IHBvcHVsYXRl IE9uZw== IHN1YnNpc3RlbmNl IGF1Y3Rpb25z IE1jQXVsaWZmZQ== IExPT0s= YnJpbmdlcg== IHRpdGFu IG1hbmlmb2xk IOKXjw== IGNhbGlicmF0ZWQ= IGNhbGlwaGF0ZQ== IFNIRQ== IENvbW1pc3Npb25lcnM= Y2VpdmFibGU= amM= V2lubmVy NTI0 IGNvbmRvbmU= T3RoZXJ3aXNl IHBpbGluZw== IGVtYm9keQ== IENyaW1lYW4= dXRpY3M= IEV4aGliaXRpb24= IDQyNg== ZWVyaW5n IHZ5aW5n IEhVR0U= Kj0t IHByaW5jaXBsZWQ= 4KY= IHF1aXJrcw== IEVkaXRvcnM= cHV0aW5n R0VT IEZUQQ== 4KS+ YWRkb24= IEhBTQ== IEZyaWV6YQ== V29tYW4= LiQ= IGNyaWI= IEhlcm9k IHRpbWVycw== IFNwYWNlcw== IE1hY2ludG9zaA== YXRha2E= IGdsaWRl IHNtZWxsaW5n IEJBTA== IHVuc3U= IGNvbmRvcw== IGJpY3ljbA== IFJldml2YWw= NTUz IGp1Z2dsaW5n SHVn IEthcmRhc2hpYW4= IEJhbGthbnM= bXVsdGlwbGU= IG51dHJpdGlvdXM= b2NyeQ== MTkwMA== IGludGVncmF0ZXM= IGFkam9pbmluZw== IEZvbGRlcg== cm9sbG1lbnQ= dmVuaWVudA== IHViZXI= eWk= IHdoaWZm IEp1dmVu IEJvcm91Z2g= bmV0dGU= IGJpbGluZ3VhbA== IFNwYXJrcw== cGh0aGFs bWFudWZhY3Q= IHRvdXRpbmc= IFBISQ== S2VlZmU= UmV3YXJk IGluZmFsbA== IFRlbXBlcg== dHlwaWNhbGx5 IE5pa29s IHJlZ3VsYXJz IHBzZXVkb255bQ== IGV4aGliaXRpb25z IGJsYXN0ZXI= IDQwOQ== d2FybWluZw== IHJldmVyYmVy IHJlY2lwcm9jYWw= IDY3MA== aXBpZW50 YmV0dA== IEJlZ2lucw== IGl0Y2hpbmc= IFBoYXI= QXNzdW1pbmc= IGVtaXR0aW5n IE1MRw== IGJpcnRocGxhY2U= IHRhdW50 IEx1ZmZ5 IEFtaXQ= IGNpcmNsZWQ= IE5vc3Q= ZW5uZXR0 IGRlZm9yZXN0YXRpb24= IEhpc3RvcmljYWxseQ== IEV2ZXJ5ZGF5 IG92ZXJ0YWtl Nzky IG51bg== IEx1Y2lh IGFjY29tcGFuaWVz IFNlZWtpbmc= IFRyYXNo YW5pc20= Um9ndWU= IG5vcnRod2VzdGVybg== IFN1cHBsZW1lbnRhbA== IE5ZVQ== IEZSSQ== IFNhdGlzZg== eGVz NTE3 IHJlYXNzdXJlZA== IHNwb3JhZGlj IDcwMQ== IG1lZGlhbA== IGNhbm5hYmlub2lk IGJhcmJhcmlj IGVwaXM= IEV4cGxvc2l2ZQ== IERvdWdo IHVuc29sdmVk U3VwcG9ydGVk IGFja25vd2xlZGdtZW50 c3Bhd24= IGtpdGNoZW5z IC09 dGFsa2luZw== aWNpc3Q= IFBlZ2FzdXM= IFBTVQ== IHBob3Rvbg== IEF1dGhlbnRpY2F0aW9u Ukc= QCMm NzYy IENsYWly IGRpYXBlcg== IGJyaXN0 IFByb3NlY3V0b3Jz IEplbQ== NjI4 IEV2ZXJ5d2hlcmU= IEplYW5uZQ== ZXF1YWxpdHk= 44Op44Oz b2JqZWN0cw== IFBlbGljYW5z IDM5Mg== IGJsdQ== Ynlz IEFnbw== IGluc3RydWN0aW9uYWw= IGRpc2NyaW1pbmF0aW5n IFRSQU4= IENvcm5lbA== YWdvcw== IHR5cmU= IGFzcGlyYXRpb24= IEJyaWRnZXdhdGVy Ijot ISIu IEVucw== IENvY28= UGll IGRldGFjaA== IENvdWNo IHBoeXNpcXVl IE9jY3VwYXRpb25z b3Njb3BpYw== ZW5vdWdo QnV6eg== QXBwZWFyYW5jZQ== WVA= IHJhY2Vy IGNvbXBsaWNpdHk= cnBt VG95 IGludGVycnVwdHM= IENhdGFseXN0 IHV0aWxpdGFyaWFu aW1wYWN0 IHNwYWdoZXR0aQ== IHBvcm91cw== IGVzdGVlbWVk IGluY2luZXI= IElPQw== NzQ4 IGVzcHJlc3Nv IFNtaWxl YWJpbGlh NjM1 IG1hdGhlbWF0aWNpYW4= IDQyNA== IEtM IEhJUA== IG92ZXJoZWFyZA== IFR1ZA== IFRlYw== IHF1aXp6 IGZsYXR0ZXJpbmc= IGNvbm4= 4oCO IGF0dGFjaGVz IFJPUw== IEFDUw== IHRjcA== IFNoYW1l c2tpcA== cmVzcGVjdGVk IFRyaW5pZGFk Z3JhaW4= IGZvb3Rob2xk IFVuY2hhcnRlZA== IEp1bGlv emw= YXZvcmVk IEFueGlldHk= ZXJyb3Jz IENlbnRhdXJp aXRzY2g= RGFkZHk= IGNsdXRjaGluZw== IEltcGxlbWVudA== IEd1dGllcnJleg== IDc2MA== IHRlbGVwb3J0YXRpb24= ZW5kcmE= IHJldmVyc2libGU= c3Ryb3M= QWR2ZW50dXJl MDgz IGxpYmVyYXRpbmc= IGFzcGhhbHQ= IFNwZW5k QVJEUw== aW1zeQ== UFJFUw== IEVtZXJnaW5n IHdpbGRmaXJlcw== IHRlY2hub2xvZ2ljYWxseQ== IGVtaXRz IEFSVElDTEU= IGlycmVndWxhcml0aWVz IGNoZXJpc2g= 54mI IHN0aW5r IFJvc3Q= RWNvbm9taWM= IGNvdWdoaW5n IE1jQ2Fubg== cHJvcGVydGllcw== aWxhbnRybw== IHJlbmVnb3Rp VHJhbnNsYXRpb24= IGlucXVlc3Q= IEdyYXBl b290ZXJz Z3Vp IFN3b3Jkc21hbg== YWNlYWU= aGl0dGluZw== IHJj IGV4ZXJ0ZWQ= IFNBUA== aXRlbnQ= IHBlcmlsb3Vz IG9ic2N1cml0eQ== IGFzc2Fzc2luYXRl IGFib3JpZ2luYWw= IHJlc2N1aW5n IFNoYXR0ZXJlZA== bG9ja2luZw== YWxsaW9u Q2hhbmdpbmc= IEhhcnJpbmd0b24= IEJvcmQ= IEFmZ2hhbnM= SmFtaWU= YXJldHo= IEF1Z3VzdHVz IDM4Ng== ODMw IGpvZw== b2tpbmdseQ== VHJpZ2dlcg== IEhPUg== U3RhdGlzdGljcw== IHZpZXdlcnNoaXA= IGFkZGl0aXZlcw== aHVy IG1heGltaXppbmc= IFJvdmU= IExvdWll IEJ1Y2tldA== IENIUklTVA== b3VzZWw= IHN0cmVha3M= aXJ0ZWQ= IHRlcnQ= IGNvbG9uaWFsaXNt IGJ1cnlpbmc= eWs= Q29uZGl0aW9u IERQUks= QnlJZA== NzUx 4pe8 IHdvcnJpc29tZQ== IHZvY2F0aW9uYWw= c2xpY2U= IHNhaWxz IENvcnJlY3Rpb25hbA== OTU0 IHR1bA== S2lk bHVzdGVy IGZhbWlsaWFs IFNwaXQ= IEVwaXNjb3BhbA== U3BlY2lmaWNhbGx5 IFZvbGNhbm8= cnVucw== cXM= IHZldHRlZA== IGNyYW1tZWQ= dHJvcA== aGVyZXI= VGhhbmtmdWxseQ== IHBlcmN1c3Npb24= IG9yYW5nZXM= IHJvdW5kdXA= IDQ5OQ== eGlvdXM= Q2hhcmFjdGVycw== IFppb25pc20= IFJhbw== w5vDmw== V0Y= IHVuaW50ZW50aW9uYWw= T05FWQ== R3JhYg== Q29tbWVyY2lhbA== IGdsdXRhbWF0ZQ== IE1jS2VubmE= cnVjaWF0aW5n bmluZ3Rvbg== aWh1 Q2hhbg== IFN3YXA= IGxlYWZsZXRz IGZ1bmN0aW9uYWxseQ== ZXJvdXM= RmFybQ== IGNhbG9yaWM= IExpdGVyYWxseQ== Y29uY2VydA== IHNoZW5hbg== IHJlcGFpZA== ZXllcw== IGJhc2hpbmc= IEdvcmdl IGNvbGxhYm9yYXRpb25z IHVuYWNjb3VudA== aXRjaGll IHRlYW13b3Jr cHBlbGlu IHBpcGluZw== IG1pbmNlZA== IGRpYW0= cmllZw== IG1hc2NhcmE= IHN1Y2tlcg== IE1vb25z QXBwcw== IFBlY2s= IHBlcnY= IEZsb2F0 b2xleQ== IE5pc2g= aW1pemU= IGFyb21hdGlj dWlu ZW5kaXNo IS8= IEJpY3ljbGU= IEFTSUM= aWxlZ2Vk IFF1YWRybw== aW9zeW4= IGxvY2tvdXQ= IFdpbms= U1BFQw== QXR0ZW1wdHM= IHNlZWRlZA== cmVkbw== aWFzaXM= IHNuYWc= 44OV44Kp 44K2 IGdyb3VuZGluZw== IHJlbGlldmVy IGZyaXZvbG91cw== IEdpZnRz IEZhY2Vz RXNwZWNpYWxseQ== IG1pY3JvYmlvbWU= aW1hZw== IFNjaGw= IFBsZXM= IEJsZWFjaA== IElyd2lu IEVhdG9u IERpc2NpcGxl IG11bHRpcGxpY2F0aW9u IGNvZXJjZWQ= IDQxOQ== c3Ro RXZpbA== Qm9tYg== IGV4b3Jj IHN0YWdnZXJlZA== TEVTUw== IGluZXJ0aWE= IEVESVQ= IGdvYg== VHJhZGl0aW9uYWw= IGNsYXNzeQ== TGVhcnk= IFBBR0U= eXJz IHRyYW5zcG9ydGVy IG1hdHVyZWQ= IGhpamFi IGJpb21l V2hlcmVhcw== IGV4dGVybWluYXRpb24= IFR1ZXM= IFRha2VydQ== IEF1ZHJleQ== ZXJpYWw= IEFkZW4= YWZmbGVz IG5hcmNpc3Npc3RpYw== IEJhaXJk VVRG SXJl IENvbm5pZQ== Q2hhbXA= IHdoaXNwZXJpbmc= IEhhdHQ= REs= IGRpc2luZmVjdA== IGRlZHVjdGVk IHBhcnRha2U= IGRvd25ncmFkZQ== IEVzcG9ydHM= IENvbnRpbnVpbmc= IGRlbW9jcmF0aWNhbGx5 aWNyb2JpYWw= aXR0YQ== IGxpbWVzdG9uZQ== IGV4ZW1wdGVk IEZyZW56eQ== SGVybQ== NzI4 IGZsZWRnbGluZw== TWV0YQ== NzY1NjE= Njkz JTo= d2FrZQ== NTI2 IERpc2NpcGxpbmU= IHZpcmdpbml0eQ== IExlZ2lvbnM= IEZyYW5raWU= aW50ZW50 IHJlc3Ryb29tcw== IFJvdXRlcg== ZGFx IG9iamVjdGlvbmFibGU= 4oaR d2Fyaw== IFJhaHVs Z2Fpbg== YWN0aXZhdGlvbg== YWJzb2x1dGU= IEFjY2Vzc2Vk IDI0MDA= b2dnbGVz IHNlY29uZGx5 IERFRkVOU0U= IHBvc3RhZ2U= d3JhcHBlcg== c2hhcnA= NzI5 IGNvbW11bmljYXRlcw== IGFkZG9u IE1pbGl0aWE= SG9uZw== IHNsdW1wZWQ= IEpQRUc= IEljYXI= YWRpc2g= Njgx IG1hamVzdHk= IFdvbGZnYW5n IEVsYXN0aWM= dXBlcg== IHZpeg== IHVuY29uc2Npb3VzbHk= IFNURA== IFNhc3M= IGZsb3dlcmluZw== IEhlbGlj IERyYXBlcg== IEFtYXRldXI= IG1hbnVyZQ== IGRpc2luZ2Vu IExlaQ== YnJpbmc= OTQ5 IGluaGliaXRlZA== IGhlYWRxdWFydGVyZWQ= IGVuaWdtYXRpYw== 77+977+977+9 IHJlZHJlc3M= Ukg= IHJhdHRsZWQ= IGRpY3Rpb24= bGlv IFRCQQ== IFNOQVA= Q2FsbGluZw== IGZhc2Npc3Rz IERvdmU= aWV3aWN6 MDM2 IGNvYXN0cw== IFJlY3Q= ICld TG90 NjI5 IFNFTQ== IFBldGVyc2Vu IEV4cGxhaW4= IEJvYXJkcw== IEJlem9z IEpvdXJuYWxz IDIwMjQ= cGFyc2Vy IG1pc3RydXN0 IGdyYXRl IExvY2tlZA== Ym9h U2FpbnQ= Z2FtaW5n IHZvd2Vs aW5hdGVseQ== Ymxvdw== QWxsYWg= IHVubWF0Y2hlZA== IGJvcmRlcmluZw== IEV4cGVuZA== bnI= T3JhY2xl cm91Y2g= IGNvbnRpZ3VvdXM= YWN1cw== IGRpc3RyYXVnaHQ= NTgx IGFuYXRvbWljYWw= T1g= YXBpeGVs ODMz IFBMVVM= IHJlc3VzYw== IGFiaWRpbmc= NTcz IHZhY2FuY2llcw== RW1pbHk= IGh5cG90aGFs IFdlcm5lcg== IFdlZQ== IERKcw== NTEz IHdpdGNoY3JhZnQ= IGFjdXB1bmN0dXJl ZW50YXJ5 YmVuZWZpdA== UHJvZHVjdHM= IFBTUA== IE1QRw== IEppbm4= IEphcnJldHQ= IDQ0NQ== IEltYWdpbmc= IFB5dGg= RmluaXNo IHRleA== IGp1dmVuaWxlcw== IGhlcm9pc20= IGRvdWJ0bGVzcw== IEFraQ== IFRlbmQ= IFBhdHJpYXJjaA== IGJpdHRlcnM= IFRlbGVjb21tdW5pY2F0aW9ucw== aXRhdGl2ZWx5 YWduYQ== IHJn IFNPTEQ= IGNvbXB1bHNpb24= IE5hc2E= IEthdGhyeW4= IG1pbGxpb25haXJlcw== IGludHJpbnNpY2FsbHk= IGJvbHN0ZXJlZA== dGltZW91dA== Zmxv IHR1dG9y cG91cg== U3RhdGVtZW50 IHsq IFJ1ZG9scGg= IEtpbWJlcmx5 cm9nZW5z YWRpcQ== XSs= IGluZGlnbmF0aW9u IGZyYWN0dXJpbmc= IFJlbGVhc2Vz IEdyYWlu cHJvdGVpbg== TGFnbw== IHZhY2F0aW9ucw== IGJvb3RlZA== IFRIUkVF IEhH b3Jlc2NlbmNl IHRm IHNvYXI= aW9zeW5jcg== IGdsYW5jZXM= IFNwb29u IEp1cnk= IENvd2JveQ== IGNyZWF0aXZlbHk= SGlnaGVy IHNvbGljaXRvcg== IGhhd2s= YWNpbw== ODk2 IHN1cGVyZmx1 IGJvbWJzaGVsbA== Y3R1cmU= IGJyb2tlcmFnZQ== IHJhaWRpbmc= IGZyZW5jaA== IGFuZ2xlZA== VHJhbnNhY3Rpb24= IEdlbm9jaWRl dXBl IEhhaXRpYW4= NTcy ITo= IHVud2l0dGluZ2x5 aXRlcmF0b3I= c2Nyb2xs IHRhbGxpZWQ= IGJpb21lZGljYWw= IENBUkQ= IGV1cGhlbQ== IGJyYWluc3Rvcm0= YXF1aW4= S28= TWljaGVsbGU= IFJ1bmVz IEJhbGxpc3RpYw== dWRlcnM= IG1vZGVzdHk= IGlQYWRz IEV6ZWtpZWw= WUU= IHN0YXJzaGlw IHBvd2VyZnVsbHk= IHBlcmw= IFNoYWRl IFF1YXJ0 IEVFRw== IGZpc2hlcm1hbg== T1NFRA== IFR5cGljYWw= ZGZ4 IG1lc2hlcw== IGV0Y2hlZA== d29ydGhpbmVzcw== IHRvcHBsZWQ= IDM5Ng== b3JpdXM= V2Vpc3M= IG15c3Fs IFZhbGhhbGxh 2ZI= bGVhc2luZw== IHJlY29tcA== cmFwbmVs U2Vs MDQz IGRlcmFpbGVk IEd1aWRlcw== SVJU IGRlaHVtYW4= IEJyaXR0YW55 Iikp IGV4Y2xhaW0= IGJhbGs= IDg0MA== Q0xBSU0= aW50ZWw= TEFC IHBlZ2dlZA== IGFzdHJvcGg= c21va2luZw== IHJpZ2dpbmc= IGZpeGF0aW9u IGNhdGFwdWx0 aW5zaWRl IENhc2NhZGU= IEJvbHNoZXZpaw== R2F6YQ== RGVwdGg= IGxvdWRzcGU= IGFsbW9uZHM= bWV5ZXI= bGVuZXNz amVu ZnJlc2g= IHVuYmVhdGVu IFNxdWlk IFByZXN1bWFibHk= VGltZXI= Qlc= IHJvc3RlcnM= IGVsbGlwdA== IEhhcnJpZXQ= ZGF0YWJhc2U= IE11dHVhbA== IENvbW1vZG9yZQ== dWtlZA== a25pZmU= IENPTU1VTg== aHlh IG1lbHRz YXJjaGl2ZXM= IHJhdGlmaWNhdGlvbg== IG11bHRpcGx5aW5n IGludGVyb3Blcg== IGFzY2VydA== d2luZ3M= dmVydGluZw== IFNjb3JwaW9u YXll IFBvcnRzbW91dGg= IE1UQQ== bml0 aWF6ZXA= IHF1YXJhbnRpbmU= IHNsaWRlc2hvdw== IGNlbnRpbWV0ZXJz IHN5bm9wc2lz IHNwYXRl dGhpcnN0 IG5vbWluYXRpbmc= IE1lbHZpbg== UHJldmlldw== IHRocm9i IGdlbmVyYXRpb25hbA== IFJhZGl1cw== cmVzdGxpbmc= cHV0YWJsZQ== YXdhcg== TkVDVA== IHVubGF3ZnVsbHk= IFJldmVsYXRpb25z V2lraXBlZGlh c3Vydg== IGV5ZWluZw== aWpu IEZX IGJydW50 IGludGVyc3RlbGxhcg== IGNsaXRvcg== IENyb2F0aWFu IENoaWM= ZXZh IERpc2FwcA== IEFraW4= aW5lcmllcw== ZHVzdA== SW50ZXJlc3RlZA== IGdlbmVzaXM= IEV1Y2w= w7Zu cGlja2luZw== IG11dGF0ZWQ= IGRpc2FwcHJvdmU= IEhETA== IDYyNQ== zLY= Y2FuY2Vy IHNxdWF0cw== IGxldmVycw== RGlzY3Vzcw== PV0= RGV4 IFZJREVPUw== QVVE IHRyYW5zYWN0 IEtpbmVjdA== IEt1YWxh IEN5cA== NzQ3 IHNoYXR0ZXJpbmc= IGFyc2VuaWM= IEludGFrZQ== IEFuZ2Vsbw== IFF1aXQ= IEtoZQ== IDE4OTM= TWFrZXI= MDI5 IFBhaW50aW5n RGlzYWJsZQ== OTE2 IGFuYWxnZXM= IHRhY3RpbGU= IHByb3BoZXM= IGRpY2Vk IFRyYXZlbHM= IEhlYWRlcg== IENsdWJz QXNzaXN0YW50 IGluY3JpbQ== IGRpcHM= IGNydWNpZml4 IFNoYW5haGFu IEludGVycHJldA== IDQwOTA= YWxvZ3k= YWJiYQ== IHNpbXVsYWM= aHVzYmFuZA== U0lN IHJlY3ljbGU= dWNlcg== ZWRnZWQ= IHJlbmFpc3NhbmNl IEJvbWJheQ== Q2F0aG9saWM= IExJTkU= IENsb3RoaW5n cmVwb3J0cw== IHBsYXVz IGRhZw== IE1hY2U= Wkk= IGludHJ1ZGVy IFZldGVyaW5hcnk= Z3J1 IHNuZWFreQ== IFNpZQ== IENpbm5hbW9u UE9TRQ== IGNvdXJpZXI= IENOUw== IGVtYW5jaXBhdGlvbg== c2l0 IHBsYXl0aHJvdWdo IEZhY2lsaXRpZXM= dmlydA== IEdhdW50bGV0 VGhvbXBzb24= IHVuYmVsaWV2YWJseQ== UGFyYW1ldGVycw== IHN0aXRjaGluZw== aWduZQ== IFRIRVNF UHJpdmFjeQ== IHNoZW5hbmlnYW5z IHZpdHJp IFZhbGlk NTkx rbc= IFByb3RvdHlwZQ== aW5rYQ== U0NQ IFRpZA== 6Ig= b2xkZWQ= IGluZGl2aWR1YWxpdHk= IGJhcmtpbmc= IG1hcnM= IFdE IDgyMA== IHRpcg== IHNsYXBwaW5n IGRpc2dydW50bGVk IEFuZ29sYQ== cml1cw== IFRvcm5hZG8= IFRodXJz IGNhcHRjaGE= IGFuZ3N0 IFBvZw== IEFzc2Fzc2lucw== IEFkaWRhcw== IGpveWZ1bA== IHdoaW5pbmc= RW1lcmdlbmN5 IHBob3NwaG9ydXM= IGF0dHJpdGlvbg== b3Bob24= IFRpbWJlcndvbHZlcw== IEphaA== IEJyaW5naW5n IFdhZA== IEVuc3VyZQ== b2hs IFhpZQ== b21tZWw= Y21w IHppcHBlcg== IHJlbGF0 IENvcnJpZG9y bWlsbw== VElORw== QXZn IGNyb3BwZWQ= XX0= IHJhZ2Vk IEx1bXB1cg== IEd1ZXJyZXJv b3Vya2U= TnV0 IG9mZnNldHM= b2dsdQ== ZHJt IG1vcnRhbHM= bGF0YWJsZQ== IGRpc21pc3NpdmU= 5LiJ IHRocm9hdHM= IGNoaXBzZXQ= IFNwb3RsaWdodA== Q2F0YWxvZw== YXJ0aXN0 R2I= IGNoaWxseQ== IHN0b2tlZA== IDM3NA== V2FyZA== TGF0aW4= IGZpYXNjbw== IGJsZWFjaA== IGJyYXY= RW5oYW5jZWQ= IGlub2M= IEZpb3JpbmE= Xz4= IGxldWtlbWlh IGVsdWM= IGFubm91bmNlcg== IExpdGh1YW4= IEFybWFnZWRkb24= 5Yc= TGVuaW4= IFJ1aw== IHBlcHA= IFJvbWFudGlj IFBJVA== IEludGVyc3RlbGxhcg== IEF0a2luc29u UmFpZA== SnM= R29hbA== Q291cnNl IHZhbmlzaGluZw== ZXNsZXk= IFJvdW5kcw== RWxzYQ== NTkz IHJlZHVuZGFuY3k= IFNUQU5E IHByb3BoZXRpYw== IGhhYml0YWJsZQ== cnl1 IGZhaW50bHk= TU9ERQ== IGZsYW5rZWQ= SVJD QXdlc29tZQ== IHNwdXJpb3Vz IFphaA== IE1TRw== IHNoYWRpbmc= IG1vdGl2YXRpb25hbA== IFNhbnRhbmE= IFNQUg== IGV4Y3J1Y2lhdGluZw== b21pYWw= IE1pa28= IExlb3BhcmQ= QWJ5c3M= IFt8 ZGlydHk= IGJhdGhz IGRlbW9yYWw= YW5kcmU= UEI= IHVuaWZpY2F0aW9u IHNhY3JhbWVudA== IFsm IHByaWNlbGVzcw== IGdlbGF0aW4= IGVtYW5hdGluZw== IEFsbGFhaA== OTg2 IG91dGJ1cnN0 IGVyYXM= IFhWSQ== IFNQSQ== T3R0 IExhemFydXM= UExJRUQ= Rmx5aW5n YmxvZ3M= V2lzY29uc2lu UmF2ZW4= IHJlYmF0ZQ== IGNyZWVwcw== IFNwYW4= IFBhaW50ZXI= IEtpcmE= IEFtb3M= IENvcnZldHRl Q29uc3VtZXI= IFJlY292ZXI= Y2tp IHBlc2t5 IEludmVudGlvbg== Q29tcGFuaWVz IGNoYWxsZW5nZXJz YWRlbWlj IFVrcmFpbmlhbnM= IE5ldXJvbG9n IEZvcnNha2Vu IGVudHJhbnRz IGVtYmF0dGxlZA== IGRlZnVuY3Q= IEdsYWNpZXI= IHBvaXNvbnM= IEhvcnNlcw== bWFrZXM= IERpcnQ= IDQyMw== aGho IFRyYW5zZm9ybWF0aW9u UVVJUkU= Li4uLi4uLi4uLi4uLi4uLi4u IHRyYXZlbGxlcg== IFNleHk= IEtlcm4= aXBvbGFy IHJhbnNvbXdhcmU= b29vb29vb29vb29vb29vbw== RWM= cnVieQ== UHJvZmVzc2lvbmFs IE91dGJyZWFr YXJndW1lbnQ= R3JleQ== IEZpZmE= IENITw== IEZPUk0= IEFtdHJhaw== LVs= IGNyYWRsZQ== IGFudGlveGlkYW50cw== 44Gu5a4= NzM2 IE5BU0w= IENvbnRyaWJ1dGlvbnM= SW5kaWFuYQ== IFNURVA= Q1NT IHNhbGllbnQ= IGFsbG9jYXRpb25z eXJpZ2h0cw== IG1hc2hlZA== IEN1dHRlcg== U2V4dWFs IHBvdW5kZWQ= IGZhbmJhc2U= IGNhc2M= IFRyYW5zcGFyZW5jeQ== IGFuYWx5dGlj IFN1bW1vbmVy 154= IEFEQw== ZGV0YWls IHZhbnF1aXNoZWQ= IGNyYWJz YXJpZQ== RGVzdHJveQ== IFNhY2s= IHRyYW5zaXN0b3I= QWxhYmFtYQ== IEtvZW4= IEZpc2hlcmllcw== Y29uZQ== IGFubmV4ZWQ= IE1HTQ== ZXNh IGZha2Vk IENvbmdyYXR1bGF0aW9ucw== IGhpbmRlcmVk IGNvcnJlY3Rpb25hbA== IElUVg== bGVldmU= IGluYXBwcm9wcmlhdGVseQ== bGlja3M= IHRyZXNwYXNz IHBhd3M= IG5lZ290aWF0b3I= IENocmlzdGVuc2Vu bGltaXRz IERpYW5uZQ== IGVsZWdhbmNl IENvbnRyYWN0cw== YW5rZQ== T2Jq IHZpZ2lsYW5jZQ== IGNhc3RsZXM= IE5BRA== IEhvbG8= IGVtcGhhdGljYWxseQ== IFRpdHVz IFNlcnZpbmc= IFJpY2hpZQ== IFBpZ3M= NTY4 IGFuaW1vc2l0eQ== IEF0dHJpYnV0ZXM= IFVyaWVs TVE= bXlyYQ== IEFwcGxpY2FudA== IHBzeWNoaWF0cmlzdHM= IFZpag== IEFiYnk= YWdyZWU= UHVzaA== IGtXaA== aGliYQ== IGluY2l0ZQ== IFdlYXNsZXk= IFRheGk= bWluaXN0aWM= aHlwZXI= IEZhcm4= IDYwMQ== IE5hdGlvbndpZGU= RmFrZQ== OTUy IG1haXpl IGludGVyYWN0ZWQ= IHRyYW5zaXRpb25lZA== IHBhcmFzaXRpYw== IGhhcm1vbmlj IGRlY2F5aW5n IGJhc2VsZXNz bnNpY3M= IHRyYW5zcGlyZWQ= IGFidW5kYW50bHk= IEZvcmVuc2lj IHRyZWFkbWlsbA== IEphdg== YWJhbmQ= IHNzaGQ= IGZyb250bWFu IEpha2FydGE= b2xsZXI= ZHJvcHM= IFNFUlZJQ0VT cm9tcHR1 b3BoaWNhbA== aG9zcGl0YWw= YmxlZG9u NjQ1 IG1pZHJhbmdl IEVWRU5U Y3VsYXRlZA== cmF3bGVk IHBlcmNoZWQ= IG92ZXJib2FyZA== IFBlZWw= IFB3cg== IENhcnRo IENPTVBMRQ== Y29l c2hhbGw= IGRldGVycmVuY2U= TUVUSE9E IEFic2VudA== TUVO IHNpbGw= IExFVkVM WW9yaw== IHNpbm5lcnM= IE9QRUM= IE51cg== IERlc2lnbnM= c2VsZWN0aW9u IHVud29ydGh5 Q0hB IHN0cmVuZ3RoZW5z ODgz ZWRseQ== IHNsaWNpbmc= IG1hbG51dHJpdGlvbg== IGZpbG1tYWtpbmc= IFBvbGs= dXJhdGVk IDQyMQ== YnJlYWtlcnM= ISci IHdldGxhbmRz IERpc2NyaW1pbmF0aW9u IGFsbG93YWJsZQ== IHN0ZWVyZWQ= IFNpY2lseQ== U0FN IG11c3RhY2hl IG1pZHM= IGNsaXBwZWQ= IGNpcmN1bGF0ZQ== IGJyaXR0bGU= IEJ1aWxkaW5ncw== cmFpc2Vk IFJvdW5kdXA= IHdlYWx0aGllcg== IG92ZXJ3cml0ZQ== IG92ZXJwb3dlcmVk IEdlcnJhcmQ= c2l0ZXM= UERBVEVE IGFjdXRlbHk= IEdhbWJsZQ== IHBpbQ== IEt1cw== VHlwaWNhbGx5 RGVwbG95 IE1vcm9jY2Fu cG90aW9u Y29tYmU= IHZpZ2lsYW50ZQ== IDM2Mw== U3Rldw== IEJhZ2c= IHJlc2lkZWQ= IFNwbw== IHJlbW5hbnQ= IGVtcHRpbmVzcw== YnJhaW5lcg== IG91dHBhdGllbnQ= cHJpb3JpdHk= IGxlcHRpbg== IFBheXRvbg== IEdsZWFtaW5n IFNoZWQ= IFBvbG8= IE1vcm1vbmlzbQ== cmVzdHJpY3RlZA== YXJsYW5l d3g= IGNyZWF0aW5l IEFub24= IFNUVUQ= IEpVTA== IFRlZQ== NTI4 MDg5 IGhhdGNoZWQ= RGlzcGF0Y2g= IENvbXBvc2l0ZQ== IDQ1MQ== cHVmZg== IFhDT00= IE9ybg== IFRIQU5L RU5ERUQ= IEFzaGV2aWxsZQ== IMOc IG1hbmdv IFNsaWdodGx5 d29ybGRseQ== IFdhbmRlcg== IEV4cGFuZA== IENocg== TWlzdA== IG9ydGhvZG94eQ== IFVORVNDTw== cmVnYXRl RWxzZXdoZXJl a2ll aXJsZWQ= IHRvcHBsZQ== IGFkb3B0aXZl IExlZ3M= ZHJlc3M= IFNhZ2Fu YmFyZQ== IEdsb3U= Q3J1bmNo IGhlbHBlcnM= IGNocm9uaWNhbGx5 IEh1bWE= MTAwMDA= IGFjY29tbW9kYXRpbmc= 5LqU IHdyaW5rbGVz IGRvZGdlZA== Zm91cnRo IHByZWNvbg== IGNvbXByZXNzb3I= IEthcmU= IGV2aWN0 IFdhcndpY2s= aW1hcg== IG1vZGVybml6YXRpb24= IGJhbmR3YWdvbg== IHJlZnV0ZWQ= IG5ldHRlZA== IE5hcGxlcw== IEdlbmll cGVyb3Jz IGZpZWxkZWQ= IGRlcmU= IFBhcmFibGVz bGVlcw== IHRyb3V0 YXNwZXJz IG5paGls IGhhcHBpZXN0 IGZsb3BweQ== IExvZnQ= IEhlYXJk IHVuaXNvbg== IGx1Zw== IFJlZG1vbmQ= Y2xhc3NpYw== U3VwcG9ydGVycw== U0hJUA== R01U IGZ1ZWxsZWQ= 55A= IGRk IEVtaW5lbQ== IDE4OTc= TllTRQ== IHNlY3JldGFyaWVz IEZJQQ== IENhbmF2ZXJhbA== RmF2b3JpdGU= IHBvbXA= IGRldGFpbmVl ZXJzaGlw YWltb24= aW91cg== IEFwZXg= IHBsYW50YXRpb25z YW1pYQ== YWNpb24= UnVzdA== IHRvd2Vk IFRydWx5 NTc3 IHNoZWx0ZXJlZA== cmlkZXI= V28= IGxhaXI= IEludGVsbGlnZW50 aW1wcm92ZQ== bWF0aWNhbGx5 IGV0aXF1ZXR0ZQ== YWRyYQ== YWxsbw== IEp1bm8= YW55dGhpbmc= IFN0cnVnZ2xl IFByZWRpY3Q= IEdyaW1lcw== IEFNRVJJQ0E= Y3R4 IFNpdHVhdGlvbg== V09PRA== IHNvbHVibGU= bWVpZXI= IGludG9sZXJhYmxl YW5nZXJpbmc= IHVuaW50ZXJydXB0ZWQ= IHRvb2x0aXA= IGludGVycm9nYXRlZA== IGd1bm5lZA== IFNuZWFr 5q2m IHRldGhlcg== IGNydW1ibGU= TGVucw== IGNsdXN0ZXJlZA== IFN5bA== IEhhc2Fu IGR5c3RvcGlhbg== d2FuYQ== IGpveXN0aWNr IFRoaWI= YW1tdQ== VG9tb3Jyb3c= NTQ2 IG92ZXJjYW1l IG1pbmltaXplZA== Y2VwdG9y UnVubmVy RU5HVEg= IEJyZW5kYQ== IEFjaGlldmVtZW50cw== IHRvcmNoZXM= IHJhcHBvcnQ= IEludmVzdGlnYXRvcg== IEhhbmRsaW5n cmVsYXRpb24= Z3JleQ== ODE1 IGtjYWw= IENvbW1hbmRz ZHE= IGN1cmxz IGJlYXJlcg== IGN5bmljaXNt aXRyaQ== IFVzZWZ1bA== QmVl RENT IGFicmFz UHJhY3Q= QklMSVRJRVM= NzEy IGRlYnVnZ2Vy IGRlYnRvcg== IExpYQ== IEtlcnM= IGV4YWNlcmJhdGU= IFN0YWN5 IEJsYW5k IFNjZW5lcw== IGJyYW5jaGluZw== 4paI4paI4paI4paI4paI4paI4paI4paI YXBlYWtl IHNhbHNh IG1pc2hhbmQ= IEtvbmFtaQ== IE5pYg== IGFuZWNkb3Rl IGFncmVlYWJsZQ== z4k= IE5hdGhhbmllbA== IEhlaXNtYW4= IEJld2FyZQ== IDE4ODY= c3BlY3RpdmU= Njkx NTIy IGluaGliaXRz IGhhc2hpbmc= IDE4ODk= 5bCG dmljaA== UHVyZQ== IHNvbGlkbHk= IGFzcGlyaW4= aW1hcnU= IHN0cmVldGNhcg== IFVDUw== IEp1ZGQ= IGZsYXNoYmFja3M= cGlucw== IDE0NDA= IFVOSENS IFN5bXB0b21z VElU NTM4 RnJh JSk7 IG9veg== IGN1cmZldw== IGNhbG1lZA== IHBhcnRpY2lwYXRlcw== VGVY IG5vbnNlbnNpY2Fs IGZ1bGxiYWNr IERlTA== bW9ua2V5 aGFyaQ== IG1ldGFib2xpdGVz IGxvb3RlZA== IEFMV0FZUw== IEJDQw== THQ= b2NoZXQ= Qm9uZQ== IHZldG9lZA== IGdjYw== IENMSUNL IDE4ODg= c2Fm IHN0aWZmbmVzcw== IGxvd2x5 IEdlaA== dmVyc29u b3JzZXQ= IHVuZm9yZXNlZW4= IGFuZXN0aGVzaWE= IE9wdGljYWw= IHJlY29uc3RydWN0ZWQ= IFR1cA== c2hvd3M= TkVXUw== IE5ld3NwYXBlcg== IEFTQQ== dGVyYQ== TnVtYmVycw== IGluZXhwbGljYWJsZQ== 15E= IGhhcmRuZXNz dW50YXJpbHk= IEFjZXI= Z3JhZGllbnQ= QVJESVM= IHdvb2RsYW5k IG1ldGFwaG9ycw== IFdlbWJsZXk= IFBhdmVs cGhpbGlz IHJld3JpdGluZw== IHBlcmNlcHR1YWw= IDEwNzA= d29ybXM= IERvd25z IHVuc3VycHJpc2luZ2x5 IHRhZ2dpbmc= ZmxhbWU= IGxpdHJlcw== IGJvdW5jZXM= IEJhYmU= c2h1dA== IG92ZXJkb3Nlcw== IFNoZWlsYQ== IENoYXU= IEJsZXNz Q2FwdHVyZQ== IFNpZ25pZmljYW50 IFNjaW9u IDM4OQ== IE1jSA== IFRpdGFuaXVt IE1lYWw= YW1lZGE= YWdlbnRz YWdncmVzc2l2ZQ== QmlsbHk= NzYz IFNheWluZw== REVSUg== aXRvbmU= Q29sbGlucw== Qm91bmQ= IGJvbHRlZA== IERNQ0E= OTUz IHVuaXF1ZW5lc3M= IGVwaWdlbg== dW5jaQ== YW50YW0= IHJlY2tvbmluZw== Y2hhaXJz T0dS IFNlbmVnYWw= IDE4NjI= cmVsZXZhbnQ= IMKv IHBoYXJtYWNpZXM= IEdlcmFs dmllcg== WWFu T1JQRw== IHJhYmlk YmVuZGluZw== IFVOSVRFRA== IDQ2NQ== QXNzZW1ibHk= IHdlZXA= IGJlaGVzdA== IE1vdGhlcnM= IEphY2U= aGlk IHdoaXJsd2luZA== IFVOSVZFUlM= IHV0b3BpYW4= IGtpZG5hcA== UGhpbGlwcA== S2lu ODkz IGxpdmVzdHJlYW0= IE1JU1M= IHN1YnZlcnNpdmU= IFRlY2huaXF1ZXM= IEpVU1RJQ0U= IEJBU0U= IDM4Nw== IGFzc2FpbGFudHM= IEhhcmRjb3Jl IHNwcmlua2xlZA== IFBzZQ== 6Zo= cHJpbnRlZA== IEhhdQ== T1JHRQ== IFRPVVI= IGxhY2Vk IGl0Y2g= R2l2aW5n IHBvcnRlZA== Nzgx Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8= YnJlZWRpbmc= IGxvZ2dlcg== IEhPTA== aW5uaWU= Rmlyc3RseQ== IGVtYnJ5b25pYw== IGRlbGVnYXRlZA== cGFp T0lM IGNlbnRyYWxseQ== IFJ4 IFNjb3V0aW5n RHV0Y2g= IGhlcmVkaXRhcnk= IENydWlzZXI= c2F0 NTI5 IE1hcnJpb3R0 b3RoZXJtYWw= IHByb2hpYml0aW9ucw== RWFybg== IFN0YWI= IENvbGxlZ2Vz IEJlbGllZg== c3RyZXRjaGVk IExI IEVudGl0eUl0ZW0= Q0lB IHVucmVt IGxhdXJlYXRl IGRlbm9taW5hdGlvbnM= c3VtbWFyeQ== aGxlcg== U3BlY3Q= IEtsYXVz IEJlYW5z IGluc3Vy IFBBWA== IGZpZWxkZXI= IFZldA== IFNwYXJyb3c= emll IFNR IE1vbmRheXM= IE9mZmxpbmU= IExlcm5lcg== IEV4dGVuc2lvbnM= SXJlbGFuZA== IHBhdHJvbmFnZQ== IGNvbnRyYXN0ZWQ= IE1hbmlh aGlydA== TW9zY293 IGNvbmRlbW5z IEFuZ2U= IGNvbXBvc2luZw== IFBlcGU= IFBhZGRvY2s= IGhldGVyb2dlbmVpdHk= IGlkZW9sb2dpY2FsbHk= IGZpc2hlcw== IGN1cnNpbmc= IFJ1dGhlcmZvcmQ= IEZsb2F0aW5n IEFtZWxpYQ== VGVh U3lub3BzaXM= IHN0dW50cw== IGJlYWQ= IHN0b2NraW5n IE1JTEw= b2Jvb2s= bWFzc2l2ZQ== XDw= IGh1bXA= IFByZWZlcmVuY2Vz RW5naW5lRGVidWc= Z2Vpc3Q= IE5pZXRv b21ldmVy aXNoeQ== ZXZhbHVhdGU= Y29sb25pYWw= QWx0ZXJuYXRpdmU= IEdvUHJv IFZvcnRleA== IE5FVFdPUks= YW5za3k= U2VjdXJl IFRocnVzdA== U25ha2U= IHBhcmNlbHM= IHNhbXVyYWk= IGFjdHJlc3Nlcw== TmFw TUY= aWZlcmF0aW9u QmVlcg== NTIz IElseQ== b2ludG1lbnQ= UGluZw== IHN0cmlwZWQ= IE1lbGxvbg== b3NzZXNzaW9u IG5ldXRyb24= ZW5kaXVt IGFwaA== IEZsYXZvcmluZw== IDM4Mw== IHJlc3BvbnNpdmVuZXNz IEppbmRhbA== IEhpdGNoY29jaw== RGVudmVy IERSQUdPTg== c21hbnNoaXA= IER1cGw= IHNseQ== IHdlYmNhbQ== IFR3YWlu IERhcmxpbmc= aWxpYXRl Y29uc3VtZXI= RElU IG5hbWVzYWtl IHVub3J0aG9kb3g= IGZ1bmVy IFBMb1M= IENPTlRST0w= b3p5Zw== b2dsb2Jpbg== RkFDRQ== RVJH IERpYQ== IEZpZXN0YQ== Y2VsZQ== MDM0 IGVuY2xhdmU= 4pas4pas b25lbWVudA== YWxpc3Q= TWFuZA== IGhvbWVncm93bg== IEZhbmN5 IGNvbmNlcHRpb25z IENvbnRhaW5z dXJlZW4= IHJlaXRlcmF0ZQ== IG1lYWdlcg== IGluc3RhbGxtZW50cw== U3Bhd24= NjI3 IHBob3RvYw== IENhYnJlcmE= IFJvc2VudGhhbA== IExhbnNpbmc= aXNuZXI= IGludmVzdHM= IFVGT3M= RVhQ SGFyZHdhcmU= IHRyYWdpY2FsbHk= IGNvbmNlZGVz aWVmdA== Y2hhbQ== Ym9yZ2g= IFNjaHI= IE1lbGFuaWU= IEhveQ== IHZpc2l0YXRpb24= IGlkaW9zeW5jcg== IGZyYWN0aW9ucw== IGZvcmVza2lu b2Jvcw== IHBvYWNoaW5n IFZJRVc= IHN0aW11bGF0ZXM= IEdvcms= Y2Fub24= TUlD IE5lbWVzaXM= IEluZHJh IERNVg== IDUyOQ== IGluc3BlY3Rpbmc= IGdyYW5kbWE= IFdoZWRvbg== IFNoYW50 IFB1cmc= aWthbg== IFRlZw== IENMUg== emFj VmljdG9yaWE= IFZlcmlmeQ== aW9uaWNz IHBhcnR5aW5n IE1vdQ== Y29sb3Vy IHRlc3RpbW9uaWVz bGF0aW9ucw== IHByZXNzdXJpbmc= aGlybw== YWNlcnM= IGZpZA== YW5nbGVy IENTSQ== IGhlcmVhZnRlcg== IGRpc3NpZGVudHM= cmVwb3J0aW5n aXBoYW55 Y2hldg== IHNvbGl0dWRl IGxvYmU= IGluZGlz IGNyZWRlbnRpYWw= cmVjZW50 YWR1bHQ= IE5pcnZhbmE= IEZyYW5jaGlzZQ== TGF5ZXI= SHlw IEJlcmtzaGlyZQ== IHdpbGxz dGlm IHRvdGVt IEp1ZGFo cmVwYWly SW5zdGFudA== NTQ4 IGVtYmFzc2llcw== IGJvdHRsZW5lY2s= IGJvdW50 IHR5cGV3 IEFsdmlu amluZw== aW1pbGFy UnVzaA== IGJyaW0= IEhFTFA= QWlt XSc= IHBhc3NpdmVseQ== IGJvdW5kZWQ= IFJhdGVk IGNyaW1pbmFsaXR5 IGJpb21hcms= IGRpc3BhdGNoZXI= IFRvd2FyZHM= ICsrKw== cmlnaHRlb3Vz ZnJvZw== IFBhbmM= Q2FydGVy MDMy 5qmf IHVsdHJhdmlvbGV0 IExpY2Vuc2Vk IFRhdGE= IEJsZXNzaW5n IEdBTQ== IGNoZW1pY2FsbHk= IFNlYWY= IFJFTEU= IE1lcmNlbmFyeQ== Y2FwaXRhbGlzdA== IGZvcm11bGF0aW9ucw== IGFubmloaWxhdGlvbg== IFZlcmI= IEFyZ29u IHVubG9hZGVk IG1vcnBoZWQ= IGNvbnF1ZXJpbmc= YmFja2Vy SUVMRA== IHRoZWZ0cw== IGZyb250cnVubmVy IFJveWFsZQ== IEZ1bmRhbWVudGFs ZWxpZ2h0 Q2hpcA== bmVjZXNzYXJ5 YXlu IFNsaXA= IDQ0OA== Y2VybmVk UGF1c2U= IHNob2NraW5nbHk= IEFCVg== IGNvbXBvc3VyZQ== NzMz IE1vdG9yc3BvcnQ= YWhpbWU= TXVycmF5 TWFjaA== IGdyaWRz IGRlYmlhbg== IGZ1cnRoZXJtb3Jl IGRleHRlcml0eQ== IENvbGxlY3Rpb25z b3Nsb3Y= aWxhZ2U= Ymo= IE1vbnRlbmVn IHN0cnV0Q29ubmVjdG9y IG1hc3NhY3Jlcw== IGJyaWVmcw== ZmV0Y2hlZA== dXZpYW4= b2xpdGlvbg== RmFpbHVyZQ== ZW1vbmlj IGZsYXJlZA== IGNsYWltYW50 IGN1cmVz IGdpdmVhd2F5cw== IFN1YnN0YW5jZQ== YWxpb25z IGNyaW5nZQ== IEt1bA== IGFyaXN0b2NyYWN5 IFVsc3Rlcg== b2xhdGVk aG91c2luZw== IE1JUw== IGdsYXJlZA== IFdpbGhlbG0= bmVlZHM= bGFtYmRh YnVpbGRlcnM= IFZJUw== IHJhZGlhdG9y IEdob3N0YnVzdGVycw== IDQzNg== YWN0dWFs IGhlcmRz w6dh d2F0Y2hpbmc= IGNvdW50ZXJpbmc= Q2hhcmdl IGNoYXJyZWQ= IHdhcmhlYWRz IGlvZGluZQ== IE1hY3k= MDQx IGRlcGFydHVyZXM= IFNpbnM= IGR5ZWQ= IENvbmNlcHRz Z2Fkbw== NzEz IHF1b3RhdGlvbnM= IGdpc3Q= IENocmlzdHk= IGFudGlnZW4= IEhlbXA= IERyYXdu IEJhcmc= ZXp2b3Vz IHBhdGVybml0eQ== IGFyZHU= IEFuY2hvcmFnZQ== IFJpaw== IG92ZXJsb2FkZWQ= IFVzZXJuYW1l IFRhbW15 IE5hdQ== IENlbGx1bGFy IHdhbmluZw== IHJvZGVudA== IFdvcmNlc3Rlcg== aWx0cw== IFRhZA== IGR3ZWxsaW5ncw== IGJ1bGxpc2g= NDMx IHJldGFsaWF0ZQ== IG1pZ3JhaW5l IENoZXZyb24= Q0hFQ0s= IGRvbmtleQ== Y3JpbQ== U1BB IEFuYWxvZw== IG1hcnF1ZWU= IEhhYXM= Qmly IEdERFI= IERvd25sb2Fkcw== IHdpbGxwb3dlcg== IEZvcnRo IFJlY29yZGVk IGltcG9zc2liaWxpdHk= IExvZ2dlZA== IEZyYW5rcw== IFJhdHQ= aW5pdGlvbnM= IGNsZWFuZXJz IHNvcmVseQ== IGZsaWNrZXJpbmc= IEV4YW1pbmF0aW9u Y2F0Y2hpbmc= YWxsb3dlZW4= TXNn IGR1bm5v RmE= IGR5c3Bo Y3Jhenk= LicnLg== IG1haW5saW5l IGNz IHB0cg== IFdhbGx5 aWd1bg== OTUx IEJpZ2Zvb3Q= ZmlnaHRz IHJldHJpZXZpbmc= SnI= IGR1cGxpY2F0aW9u IEV4cGxhbg== IHJlbGF0aW9uYWw= IHF1YWludA== IGJpc2N1aXRz IGFkbw== IHNodWRkZXI= IGFudGlkb3Rl Ymxvb2RlZA== a3No IHNhdWNlcw== IHJlaW52ZXN0 IGRpc3BlbnNhcnk= IERpdmVy IDkwMDA= c3R1ZGVudA== IGluc2VwYXI= ZXNjYXA= IHRvZGRsZXJz IEdQSU8= IEFzc2lnbm1lbnQ= aGVhZGVycw== IGxhY2tsdXN0ZXI= IGFiYWNr OTU2 IHRvb2xiYXI= NzQ1 IG91c3Q= IGNvbnRlbXBsYXRpb24= IFBSRVNJREVOVA== IDQ1OA== PT09PT09 IGd1YXJhbnRlZWluZw== IEhlaXN0 IENhbm5lcw== mb0= IGNvbGxhYm9yYXRvcg== IEFtcA== IGdvdQ== IFNIQUxM c3Rvcmllcw== Nzgz IG1vYmlsaXplZA== IGJyb29k IExV IPCfkQ== IHJlZmlu IEFudGhyb3BvbG9neQ== dmluZA== aWxsaQ== IHdhcnJhbnRpZXM= IEJhYmVs IHN3YXRo IGNhY2hlcw== IGFudGFnb25pc3Rz YXJ0aWZhY3Rz IGhvdGx5 IFN0YXJ0cw== IEfDtg== emFn ISEhISE= IHNjb3VyZ2U= IGNvbnNwaXJpbmc= cnVpdHM= cmV2ZXJzZQ== IFNoZWVu IEplc3VpdA== IEdpb3Zhbm5p YWRpZXM= IGJ1dHRvY2tz ZWFyY2hlcg== YWNhbg== IHZvbGxleWJhbGw= IHNocm91ZGVk IHNjb3JlYm9hcmQ= YmF0cw== IElQTQ== IGFzc2Vz IGRlcmVndWxhdGlvbg== IFRlbGVncmFt IFJlYm9vdA== IDcwMDA= IENhbmFyeQ== IGtlcm5lbHM= IEZyYW7Dp29pcw== IER1ZmY= IFBvbg== IExlaWNh IEdhcm1pbg== IG9ycGhhbnM= IENsYXVkaWE= IGNhbGVuZGFycw== IExlaWxhbg== ZW50bw== Um9ja2V0 IGJydW5jaA== IEhhd2tpbmc= YWluZXJz IHNlbnNpYmlsaXRpZXM= IGtX IEthbmQ= IHJlY2xhaW1lZA== IGludGVyZXN0aW5nbHk= 16k= cm9teQ== Sk0= IEVuaGFuY2VtZW50 YnVzaA== U2tpcA== IHJhcHBlcnM= IGdhemluZw== cGVkaWE= YXRobG9u UmV2b2x1dGlvbg== IHNuaXBlcnM= IHJldmVydGVk IGNvbmdsb21lcmF0ZQ== VGVycnk= Nzk0 IGhhcnNoZXI= IGRlc29sYXRl IEhpdG1hbg== Q29tbWlzc2lvbg== ICgv 4oCmLiI= Q29tcGFy IGFtcGxpZmljYXRpb24= b21pbmF0ZWQ= IHJlZ3Jlc3M= IENvbGxpZGVy IGluZm9ybWFudHM= IGdhemVk"},oVI={pat_str:"('s|'S|'t|'T|'re|'rE|'Re|'RE|'ve|'vE|'Ve|'VE|'m|'M|'ll|'lL|'Ll|'LL|'d|'D)|[^\\r\\n\\p{L}\\p{N}]?\\p{L}+|\\p{N}{1,3}| ?[^\\s\\p{L}\\p{N}]+[\\r\\n]*|\\s*[\\r\\n]+|\\s+(?!\\S)|\\s+",special_tokens:{"<|endoftext|>":100257,"<|fim_prefix|>":100258,"<|fim_middle|>":100259,"<|fim_suffix|>":100260,"<|endofprompt|>":100276},bpe_ranks:"! 0 IQ== Ig== Iw== JA== JQ== Jg== Jw== KA== KQ== Kg== Kw== LA== LQ== Lg== Lw== MA== MQ== Mg== Mw== NA== NQ== Ng== Nw== OA== OQ== Og== Ow== PA== PQ== Pg== Pw== QA== QQ== Qg== Qw== RA== RQ== Rg== Rw== SA== SQ== Sg== Sw== TA== TQ== Tg== Tw== UA== UQ== Ug== Uw== VA== VQ== Vg== Vw== WA== WQ== Wg== Ww== XA== XQ== Xg== Xw== YA== YQ== Yg== Yw== ZA== ZQ== Zg== Zw== aA== aQ== ag== aw== bA== bQ== bg== bw== cA== cQ== cg== cw== dA== dQ== dg== dw== eA== eQ== eg== ew== fA== fQ== fg== oQ== og== ow== pA== pQ== pg== pw== qA== qQ== qg== qw== rA== rg== rw== sA== sQ== sg== sw== tA== tQ== tg== tw== uA== uQ== ug== uw== vA== vQ== vg== vw== wA== wQ== wg== ww== xA== xQ== xg== xw== yA== yQ== yg== yw== zA== zQ== zg== zw== 0A== 0Q== 0g== 0w== 1A== 1Q== 1g== 1w== 2A== 2Q== 2g== 2w== 3A== 3Q== 3g== 3w== 4A== 4Q== 4g== 4w== 5A== 5Q== 5g== 5w== 6A== 6Q== 6g== 6w== 7A== 7Q== 7g== 7w== 8A== 8Q== 8g== 8w== 9A== 9Q== 9g== 9w== +A== +Q== +g== +w== /A== /Q== /g== /w== AA== AQ== Ag== Aw== BA== BQ== Bg== Bw== CA== CQ== Cg== Cw== DA== DQ== Dg== Dw== EA== EQ== Eg== Ew== FA== FQ== Fg== Fw== GA== GQ== Gg== Gw== HA== HQ== Hg== Hw== IA== fw== gA== gQ== gg== gw== hA== hQ== hg== hw== iA== iQ== ig== iw== jA== jQ== jg== jw== kA== kQ== kg== kw== lA== lQ== lg== lw== mA== mQ== mg== mw== nA== nQ== ng== nw== oA== rQ== ICA= ICAgIA== aW4= IHQ= ICAgICAgICA= ZXI= ICAg b24= IGE= cmU= YXQ= c3Q= ZW4= b3I= IHRo Cgo= IGM= bGU= IHM= aXQ= YW4= YXI= YWw= IHRoZQ== Owo= IHA= IGY= b3U= ID0= aXM= ICAgICAgIA== aW5n ZXM= IHc= aW9u ZWQ= aWM= IGI= IGQ= ZXQ= IG0= IG8= CQk= cm8= YXM= ZWw= Y3Q= bmQ= IGlu IGg= ZW50 aWQ= IG4= YW0= ICAgICAgICAgICA= IHRv IHJl LS0= IHs= IG9m b20= KTsK aW0= DQo= ICg= aWw= Ly8= IGFuZA== dXI= c2U= IGw= ZXg= IFM= YWQ= ICI= Y2g= dXQ= aWY= Kio= IH0= ZW0= b2w= ICAgICAgICAgICAgICAgIA== dGg= KQo= IHsK IGc= aWc= aXY= LAo= Y2U= b2Q= IHY= YXRl IFQ= YWc= YXk= ICo= b3Q= dXM= IEM= IHN0 IEk= dW4= dWw= dWU= IEE= b3c= ICc= ZXc= IDw= YXRpb24= KCk= IGZvcg== YWI= b3J0 dW0= YW1l IGlz cGU= dHI= Y2s= 4oA= IHk= aXN0 LS0tLQ== LgoK aGU= IGU= bG8= IE0= IGJl ZXJz IG9u IGNvbg== YXA= dWI= IFA= ICAgICAgICAgICAgICAg YXNz aW50 Pgo= bHk= dXJu ICQ= OwoK YXY= cG9ydA== aXI= LT4= bnQ= Y3Rpb24= ZW5k IGRl MDA= aXRo b3V0 dHVybg== b3Vy ICAgICA= bGlj cmVz cHQ= PT0= IHRoaXM= IHdo IGlm IEQ= dmVy YWdl IEI= aHQ= ZXh0 PSI= IHRoYXQ= KioqKg== IFI= IGl0 ZXNz IEY= IHI= b3M= YW5k IGFz ZWN0 a2U= cm9t IC8v Y29u IEw= KCI= cXU= bGFzcw== IHdpdGg= aXo= ZGU= IE4= IGFs b3A= dXA= Z2V0 IH0K aWxl IGFu YXRh b3Jl cmk= IHBybw== Ow0K CQkJCQ== dGVy YWlu IFc= IEU= IGNvbQ== IHJldHVybg== YXJ0 IEg= YWNr aW1wb3J0 dWJsaWM= IG9y ZXN0 bWVudA== IEc= YWJsZQ== IC0= aW5l aWxs aW5k ZXJl Ojo= aXR5 ICs= IHRy ZWxm aWdodA== KCc= b3Jt dWx0 c3Ry Li4= Iiw= IHlvdQ== eXBl cGw= IG5ldw== IGo= ICAgICAgICAgICAgICAgICAgIA== IGZyb20= IGV4 IE8= MjA= bGQ= IFs= b2M= Ogo= IHNl IGxl LS0tLS0tLS0= LnM= ewo= Jyw= YW50 IGF0 YXNl LmM= IGNo PC8= YXZl YW5n IGFyZQ== IGludA== 4oCZ X3Q= ZXJ0 aWFs YWN0 fQo= aXZl b2Rl b3N0 IGNsYXNz IG5vdA== b2c= b3Jk YWx1ZQ== YWxs ZmY= KCk7Cg== b250 aW1l YXJl IFU= IHBy IDo= aWVz aXpl dXJl IGJ5 aXJl IH0KCg== LnA= IHNo aWNl YXN0 cHRpb24= dHJpbmc= b2s= X18= Y2w= IyM= IGhl YXJk KS4= IEA= aWV3 CQkJ IHdhcw== aXA= dGhpcw== IHU= IFRoZQ== aWRl YWNl aWI= YWM= cm91 IHdl amVjdA== IHB1YmxpYw== YWs= dmU= YXRo b2lk ID0+ dXN0 cXVl IHJlcw== KSk= J3M= IGs= YW5z eXN0 dW5jdGlvbg== KioqKioqKio= IGk= IHVz cHA= MTA= b25l YWls PT09PQ== bmFtZQ== IHN0cg== IC8= ICY= YWNo ZGl2 eXN0ZW0= ZWxs IGhhdmU= ZXJy b3VsZA== dWxs cG9u IEo= X3A= ID09 aWdu U3Q= Lgo= IHBs KTsKCg== Zm9ybQ== cHV0 b3VudA== fQoK ZGQ= aXRl IGdldA== cnI= b21l IOKA YXJhbQ== Y2M= ICov RVI= SW4= bGVz X3M= b25n aWU= IGNhbg== IFY= ZXJ2 cHI= IHVu cm93 YmVy IGRv bGw= IGVs IHNlbGY= YXRlZA== YXJ5 IC4= J10= dWQ= IGVu IFRo ICAgICAgICAgICAgICAgICAgICAgICA= dGU= X2M= dWN0 IGFi b3Jr LmdldA== ICM= YXc= cmVzcw== b2I= TmFtZQ== MjAx YXBw Wyc= IGFsbA== b3J5 aXRpb24= YW5jZQ== ZWFy IGNvbnQ= dmVudA== aWE= IHdpbGw= SU4= ICAgICAgICAg cmV0dXJu IDwv ZGF0YQ== KQoK UmU= cGxl aWxk dGhlcg== IHlvdXI= Igo= KCQ= IG91dA== KSw= IGhhcw== U3RyaW5n c28= IHVw YXg= IGRlZg== IGJv Z2U= YWxzZQ== T04= cGVy MTI= aWNo IGJ1dA== IAo= IF8= X20= YWRk cXVlc3Q= b2RlbA== c2VsZg== ZXJ5 ZnQ= ZW5z Ly8vLw== YWtl LkM= IGdv IGZ1bmN0aW9u IEs= aXZhdGU= IGlt IGNvbnN0 LnQ= ICovCg== KTsNCg== IHZvaWQ= IHNldA== IFN5c3RlbQ== Y3Jp KCkK bGk= CWlm Lm0= YWxseQ== c2V0 ZXA= 4oCZcw== Ym8= ZGVm JywK IG1l ICE= YXRjaA== Ij4= IiwK ZWM= IElu cGg= IHw= X2Y= IHZhcg== ZW5jZQ== SWQ= cmVl aW5r bGVjdA== dWc= ZXRo IGVsc2U= LS0tLS0tLS0tLS0tLS0tLQ== MTk= Y29udA== IHNv YXRpYw== IGxv cHJv dG9u c3M= b3du YWJlbA== b2ludA== b3Vz ZWxk U1Q= VGhl ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA= UkU= Ijo= b2xvcg== dHA= ZWc= a2V5 dWRl IFN0 b3VuZA== IGFy Iik7Cg== ZW5lcg== c2Vy MTE= YmplY3Q= ZXNzYWdl ZmVy IG1vcmU= YXRpb25z ZW50cw== IGhpcw== IHRoZXk= LlM= IFk= dXNl bmU= aXNo b2xk X2Q= aW8= aWVsZA== IHBlcg== Q29udA== aW5ncw== IyMjIw== IGRhdGE= IHNh ZWY= Zm8= IG9uZQ== ZW5n IGRpcw== QVQ= IG5hbWU= IHRydWU= dmFs bGVk LmY= IG5l IGVuZA== MzI= LlQ= MTY= Y3Jl YXJr bG9n RXg= ZXJyb3I= X2lk dXJyZQ== YW5nZQ== IG51bGw= cnJheQ== IG15 cGFu aWN0 YXRvcg== Vmlldw== TGlzdA== CXJldHVybg== 4oCd IHByZQ== IHg= Y2x1ZGU= YXJn MTU= b3Y= Lmg= ID4= IHRoZWly Jyk= aXJzdA== aWNr Z2g= TEU= T1I= IHByaXZhdGU= dGVt DQoNCg== dXNlcg== ICk= Y29t LkE= IjsK IGlk cmVhZA== IHdobw== X2I= Ij4K IHRpbWU= IG1hbg== cnk= PT09PT09PT0= cm91cA== cm9w cHVibGlj dmVs dW1iZXI= Ymxl IHdoaWNo KioqKioqKioqKioqKioqKg== IGFueQ== IGZhbHNl d2U= IHZhbHVl IGxp Iik= bmRlcg== Z3I= IG5v cGFyYW0= MjU= Zmln LmNvbQ== IGFwcA== X2w= aW9ucw== LkQ= IENo IGFib3V0 IGFkZA== IHN1 IHN0cmluZw== SUQ= IG92ZXI= c3RyaW5n Lmw= b3VyY2U= MDAw X0M= XQo= IHF1 IFN0cmluZw== Y2E= U0U= IHJv c2g= dWFs VHlwZQ== c29u bmV3 ZXJu IGFn QVI= XTsK XS4= ID8= aWNhbA== IGRlcw== dXRo aXg= YXlz IHR5cGU= J3Q= YXVsdA== IGludGVy dmFy LmI= IHBhcnQ= LmQ= dXJyZW50 SVQ= RU4= MzA= ZW5j KGY= cmE= dmFsdWU= Y2hv MTg= dXR0b24= b3Nl MTQ= ICE9 YXRlcg== w6k= cmVhdGU= b2xs cG9z eWxl bmc= QUw= dXNpbmc= YW1lcw== IHsNCg== YXRlcw== ZWx5 IHdvcms= IGVt aW5hbA== IHNw IHdoZW4= LnNldA== ICAgICAg KToK dG8= cXVpcmU= aW5kb3c= bGVtZW50 cGVjdA== YXNo W2k= IHVzZQ== LkY= cGVj IGFk b3Zl Y2VwdGlvbg== ZW5ndGg= aW5jbHVkZQ== YWRlcg== ICAgICAgICAgICAgICAgICAgICAgICAgICAg YXR1cw== VGg= aXRsZQ== cml0 dm9pZA== KCku KAo= IG9mZg== IG90aGVy ICYm JzsK bXM= IGJlZW4= IHRl bWw= Y28= bmM= MTM= ZXJ2aWNl ICU= KioK YW5u YWRl CgoKCg== bG9jaw== Y29uc3Q= MTAw cG9uc2U= IHN1cA== Kys= ZGF0ZQ== IGFjYw== IGhhZA== IGJ1 MjAw IFJl IHdlcmU= IGZpbGU= IHdvdWxk IOKAnA== dmVu aXNz IG91cg== Y2xhc3M= cmF3 IHllYXI= RGF0YQ== IHZhbA== IHNvbWU= ZnRlcg== eXM= IC8vLw== cm91bmQ= dmlldw== IHBl IHRoZXJl IHNhaWQ= ZHU= b2Y= bGluZQ== Lyo= ZHVjdA== IGhlcg== ICAgICAgICAgICAgIA== UmVz IGNv IGNvbW0= aXNl bWlu ICAgIAo= I2luY2x1ZGU= ZXRob2Q= LlA= dXRl IGFzcw== SW50 YXNr bG9j IGxpa2U= b2R5 IGxldA== bG9hZA== IGFt cm9s IGdy eXA= IGFsc28= IEl0 dXJs aWZpYw== b3Jz X1A= X24= aWdo IHRoYW4= Q29t QU4= VUw= YXRpbmc= MTc= IFRoaXM= cmVm X1M= IHN0YXRpYw== cm9sbA== IGp1c3Q= IHJlc3VsdA== aWFu aWR0aA== IHRoZW0= KSk7Cg== ZGVy cmVhaw== Q29u Oi8v dWxl Li4u YXJjaA== ZW1lbnQ= IDw8 NTA= dXNo ZW5zZQ== YXJy IGludG8= Y2Vzcw== YW1w aWVk dW1lbnQ= IFw= XSw= d28= YWxz IHdoYXQ= YW5j VmFsdWU= PSc= b2x1bQ== IHBvcw== YWdlcw== YXllcg== IHNj dWVz IikK X1Q= IGxpc3Q= KHM= IGNhc2U= Q2g= CQkJCQk= Ly8vLy8vLy8= cG9uZW50 IHo= IGtu bGV0 REU= cmVk IGZl IH0sCg== ICw= KHQ= IGZpcnN0 Jyk7Cg== d29yZA== IGltcG9ydA== IGFjdA== IGNoYXI= Q1Q= IFRy b3BsZQ== PXs= CWY= MjQ= aWVudA== Y2VudA== Lmo= bGVjdGlvbg== KSkK IG9ubHk= IHByaW50 bWVy Llc= b2Nr IC0t VGV4dA== IG9w YW5r IGl0cw== IGJhY2s= WyI= IG5lZWQ= IGNs IHN1Yg== IGxh KCg= LiI= T2JqZWN0 IHN0YXJ0 ZmlsZQ== KHNlbGY= bmVy ZXk= IHVzZXI= IGVudA== IENvbQ== aXRz IENvbg== b3VibGU= b3dlcg== aXRlbQ== dmVyeQ== IFdl NjQ= bGljaw== IFE= cGhw dHRw Jzo= aWNz IHVuZGVy ICoK Lkw= KTs= aWNlcw== IHJlZw== KQ0K CXB1YmxpYw== U1M= IHRoZW4= cmVhdA== aW91cw== Lkc= ZWs= aXJlY3Q= aGVjaw== Y3JpcHQ= bmluZw== IFVu IG1heQ== IFdo Qm8= SXRlbQ== c3RydWN0 LnN0 cmVhbQ== aWJsZQ== bG9hdA== IG9yZw== dW5k c3Vt X2lu Li4v X00= IGhvdw== cml0ZQ== Jwo= VG8= NDA= d3c= IHBlb3BsZQ== aW5kZXg= Lm4= aHR0cA== KG0= ZWN0b3I= IGluZA== IGphdg== XSwK IEhl X3N0 ZnVs b2xl KXsK IHNob3VsZA== b3B5 ZWxw aWVy X25hbWU= ZXJzb24= SU9O b3Rl IHRlc3Q= IGJldA== cnJvcg== dWxhcg== 44A= INA= YnM= dGluZw== IG1ha2U= VHI= IGFmdGVy YXJnZXQ= Uk8= b2x1bW4= cmM= X3Jl ZGVmaW5l MjI= IHJpZ2h0 cmlnaHQ= ZGF5 IGxvbmc= W10= KHA= dGQ= Y29uZA== IFBybw== IHJlbQ== cHRpb25z dmlk Lmc= IGV4dA== IF9f JykK cGFjZQ== bXA= IG1pbg== c3RhbmNl YWly YWN0aW9u d2g= dHlwZQ== dXRpbA== YWl0 PD8= SUM= dGV4dA== IHBo IGZs Lk0= Y2Nlc3M= YnI= Zm9yZQ== ZXJzaW9u KSwK LnJl YXRlZw== IGxvYw== aW5z LXM= dHJpYg== IEludA== IGFycmF5 LCI= UHJv KGM= ZXNzaW9u PgoK IHNoZQ== Il0= YXBo IGV4cA== ZXJ0eQ== IFNl IHBhcg== dW5j RVQ= IHJlYWQ= cHJpbnQ= IHJlbA== IGZvcm0= IGRy RXhjZXB0aW9u aW5wdXQ= IHRyYW5z IyMjIyMjIyM= b3JkZXI= Qnk= IGF3 aXRpZXM= dWZm cGxheQ== LmFkZA== IOKAkw== IHdhbnQ= IGNvbXA= bWVudHM= IHx8 YXo= YmU= IG51bWJlcg== IHJlcXVpcmU= IEV4 NjA= IGNvbA== IGtleQ== ZW1iZXI= IHR3bw== IHNpemU= IHdoZXJl VVQ= cmVzdWx0 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA== b3VnaA== b3JsZA== b29k dWNo YXRpdmU= Z2Vy YXJlbnQ= IC8q IGFyZw== IHdoaWxl MjM= KHRoaXM= IHJlYw== IGRpZg== U3RhdGU= IHNwZWM= cmlkZQ== X0Y= IGxvb2s= QU0= aWxpdHk= ZXRlcg== 4oCZdA== CgoK YXlvdXQ= LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0= YWdlcg== IGNvdWxk IGJy ZW5kcw== dXJlcw== IGtub3c= ZXRz IElm IFNo Lnc= YmFjaw== IHNlcg== ICs9 IGZy KCkpOwo= IGhhbmQ= SW5k VUxM SW0= KCk7Cgo= IG1vc3Q= IHRyeQ== IG5vdw== cm91Z2g= Pg0K YWNrYWdl IGhpbQ== Ll8= aWZ5 IGJyZWFr ICk7Cg== cmVu I2RlZmluZQ== aXR0 IGFw CWM= KG4= IFlvdQ== OgoK LW0= IGV2ZXJ5 dXN0b20= bGllbnQ= b2N1bWVudA== Y3JpcHRpb24= RXJyb3I= LWI= 0L4= XVs= OTk= dHJhbnM= IHBvaW50 IHN0ZA== IGZpbA== VGltZQ== ODA= IG1vZA== IC0+ IGVycm9y YWg= IHRleHQ= cm9sbGVy bG9zZQ== cWw= IHBvbA== Pjwv IHNob3c= VXNlcg== YXNlZA== IHsKCg== IGZpbmQ= 0LA= RUQ= c3Bhbg== ZW51 IGN1cnJlbnQ= IHVzZWQ= Y2VwdA== Y2x1ZA== IHBsYXk= IGxvZw== dXRpb24= Zmw= IHNlZQ== aW5kb3dz IGhlbHA= IHRoZXNl IHBhc3M= IGRvd24= IGV2ZW4= YXNvbg== dWlsZA== ZnJvbQ== KGQ= IGJs bGFiZWw= ZWxzZQ== 0LU= ICgh aXplZA== KCks IG9i IGl0ZW0= dW1w VVI= b3Ju IGRvbg== U2U= bWFu Mjc= YW1wbGU= dG4= PT09PT09PT09PT09PT09PQ== SGU= Z3JhbQ== IGRpZA== d24= X2g= aXZlcg== IHNt IHRocm91Z2g= IEFu Y2hl IGludg== b3VzZQ== IGVz IE5ldw== ZXhwb3J0 bWFyeQ== dXRv bGVy IGxhc3Q= IGV2ZW50 dHJ5 77w= aWx5 aWduZWQ= aW5lcw== b2xsb3c= aWNlbnNl c29sZQ== bGVhcg== KGludA== IGFnYWlu IGhpZ2g= aHRtbA== SW5kZXg= dXRob3I= IC8qKgo= IGxpbmU= RXZlbnQ= X0Q= IGRvZXM= aXRpYWw= IGNy YXJz Mjg= IHRlbQ== Y2F1c2U= ZmFjZQ== IGA= X0E= QnV0dG9u YXR1cmU= ZWN0ZWQ= RVM= aXN0ZXI= CQo= IGJlZm9yZQ== YWxl b3RoZXI= IGJlY2F1c2U= cm9pZA== IGVk aWs= cmVn IERl IGRpc3Q= fSwK IHN0YXRl IGNvbnM= cmludA== YXR0 IGhlcmU= aW5lZA== IGZpbmFs ICIi S2V5 TE8= IGRlbA== cHR5 dGhpbmc= MjY= IEFuZA== IHJ1bg== IFg= eW0= LmFwcA== IHZlcnk= Y2Vz X04= YXJlZA== d2FyZA== bGlzdA== aXRlZA== b2xvZw== aXRjaA== Qm94 aWZl MzM= IGFj IG1vZGVs IG1vbg== IHdheQ== bGV0ZQ== IGNhbGw= IGF0dA== IGNhbA== dmVydA== IGRlYw== bGVhc2U= b3Vu IH0pOwo= ZnI= Zm9ybWF0aW9u ZXRhaWw= IG51bQ== YWo= cXVlcnk= IHdlbGw= IG9iamVjdA== IEFz IHllYXJz Q29sb3I= SVM= IGRlZmF1bHQ= V2g= IGlucw== YWludA== IGphdmE= IHNpbQ== IEFy bW9u dGls KCk7DQo= KTo= U2V0 Mjk= YXR0ZXI= IHZpZXc= IHByZXM= YXJyYXk= V2U= QXQ= IGJlbA== IG1hbnk= MjE= TWFu ZW5kZXI= IGJlaW5n IGdvb2Q= CQkJCQkJ YXRpb25hbA== d2FyZQ== LmxvZw== ew0K IHVzaW5n X0I= IDo9 X3c= aXN0cw== bGlzaA== IHN0dWQ= IEFs IGd1 Y29uZmln dXJpbmc= dGltZQ== b2tlbg== YW1lc3BhY2U= IHJlcXVlc3Q= IGNoaWxk IMM= bG9i IHBhcmFt IH0NCg== MDE= IGVjaG8= ZnVuY3Rpb24= KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKio= cHM= RWxlbWVudA== YWxr bGljYXRpb24= Ynk= U2l6ZQ== cmF3aW5n IHBlcnNvbg== ICAgICAgICAgICAgICAgICA= XG4= b2JqZWN0 aW5jZQ== RW4= RmlsZQ== dWY= ZmZlY3Q= QUM= IHN0eWxl c3VtbWFyeQ== IHF1ZQ== X3I= ICgk TW9kZWw= aWRlbnQ= IG1ldGhvZA== SUw= b3R0 bGVzcw== SU5H ICgp IGV4cGVjdA== eW5j cGFja2FnZQ== MzU= dXJz IHByb3Q= Li8= cHJl ICkK bWE= IHN1cg== IGZvdW5k SW5mbw== cGFy aW1lcw== LmU= YWlucw== IHBvc3Q= LWQ= NDU= b2xlYW4= IHNs UEU= IHN1Y2g= c2VsZWN0 YWluZXI= IHRoaW5r IGRpZmZlcg== LnI= LyoqCg== RkY= b29s cGxhdGU= cXVhbA== IEZvcg== IG11Y2g= dWM= KG5ldw== b2R1bGU= IHNvbQ== IGh0dHA= IExpc3Q= IGNvdW50 IGluc3Q= Y2hhcg== bWl0 Lmlk YWtpbmc= IGdlbmVy cHg= dmljZQ== Mzc= X2RhdGE= IE5VTEw= fQ0K aWRk 44CC IG1lZA== b3Jn aWRlcg== YWNoZQ== d29yaw== IGNoZWNr d2Vlbg== ICgo dGhl YW50cw== Pjw= LkI= LWM= IG9wZW4= IGVzdA== ICAgICAgICAK IG5leHQ= SU0= 0YI= T1Q= w7M= IGZvbGxvdw== Y29udGVudA== ICAgICAgICAgICAg IGluY2x1ZA== SEU= IFJlcw== IGhyZWY= 0Lg= IGNhcg== eXBlcw== aW1hZ2U= VW4= IGJvb2w= QUQ= IGdhbWU= LkZvcm0= cm93cw== Ki8= dmVsb3A= LkRyYXdpbmc= IHBhdGg= aXNpb24= IGVhY2g= IFBs X3R5cGU= UGF0aA== bmVjdGlvbg== IGF2 Jyku IHN1cHBvcnQ= RU5U cmVt Iiku IG93bg== IGNvcg== Y291bnQ= bWlzcw== dWFsbHk= IG1lbQ== c3Rk aWVuY2U= c2VhcmNo IgoK Rm9ybQ== IHNleA== ZW5hbWU= IHNpZ24= IGV0 ICAgICAgICAgIA== Jywn IEFwcA== IHRob3Nl b2Zm IGVycg== IHN5c3RlbQ== IGJlc3Q= Y29kZQ== IHNhbWU= IGRp dXNz IGNyZWF0ZQ== YXRoZXI= QXJyYXk= Lmlu ZmU= U2VydmljZQ== VU4= YXRz IFo= YWx0aA== IG1hZGU= dHJ1ZQ== QUI= IG1hcms= cmlk aWZpZWQ= LA0K eW4= cHJlc3M= IGdyb3Vw IGZpbg== IExpY2Vuc2U= RmllbGQ= ZWdlcg== IHdvcmxk aW5lc3M= dHk= IHByb2Nlc3M= KGI= IGNyZQ== YXJu aXZlcw== IG1haW4= aWRlbw== MzY= X2c= QUc= dmFsaWQ= aW1n UEk= IGNvbG9y IHJlcG9ydA== IHRha2U= cmli T00= IGRheQ== UmVxdWVzdA== IHNr YmVycw== CXM= LkFkZA== b290 SW1hZ2U= IGNvbXBsZQ== b2xsZWN0aW9u IHRvcA== IGZyZWU= QVM= RGU= IE9u SUc= OTA= ZXRh RGF0ZQ== IGFjdGlvbg== MzQ= T3Zlcg== aXRvcg== ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA= bm90 IGluZGV4 aGVy aWNvbg== T24= Ow0KDQo= aXZpdHk= bWFuZA== LldpbmRvd3M= T0w= IHJlYWw= IG1heA== bGFuZA== Li4uLg== cmFwaA== IGJ1aWxk bGVn YXNzd29yZA== PwoK 4oCm b29r dWNr IG1lc3NhZ2U= dGVzdA== aXZlcnM= Mzg= IGlucHV0 IGFydA== IGJldHdlZW4= R2V0 ZW50ZXI= Z3JvdW5k ZW5l w6E= Lmxlbmd0aA== Tm9kZQ== KGk= Q2xhc3M= Zm9y IOKAlA== dGVu b2lu IGtl dWk= IElO IHRhYmxl c3Vi IExl IGhlYWQ= IG11c3Q= Ly8vLy8vLy8vLy8vLy8vLw== LnV0aWw= Q29udGV4dA== IG9yZGVy IG1vdg== b3Zlcg== IGNvbnRpbg== IHNheQ== c3RhdGlj LlRleHQ= IGNsYXNzTmFtZQ== cGFueQ== IHRlcg== aGVhZA== cmc= IHByb2R1Y3Q= VGhpcw== LuKAnQ== IEJ1dA== NzA= bG95 IGRvdWJsZQ== c2c= IHBsYWNl Lng= bWVzc2FnZQ== IGluZm9ybWF0aW9u cHJpdmF0ZQ== IG9wZXI= Y2Vk ZGI= Ij48Lw== UGFyYW0= aWNsZQ== IHdlZWs= IHByb3A= dGFibGU= aWRnZXQ= cGxhY2U= UHJvcA== IEFsbA== ZWxz Ym94 LgoKCgo= LlI= IFRv aXRlcg== U2g= dXJhdGlvbg== b2xkZXI= X2xpc3Q= Y29tZQ== IHN3 aXphdGlvbg== CWZvcg== Ymw= IHByb2dyYW0= KGU= YXBl Y2hlY2s= LkZvcm1z IHVuZA== YXRlZ29yeQ== NzU= YWdz IHJlc3BvbnNl VVM= cmVxdWVzdA== IHN0cnVjdA== ZXNjcmlwdGlvbg== IGNvZGU= X0g= dWZmZXI= IHdpdGhvdXQ= bG9iYWw= TWFuYWdlcg== aWx0ZXI= UE8= CXRoaXM= b3B0aW9u IHNvbA== ID09PQ== YWtlcw== Q29udHJvbGxlcg== NDQ= TWVzc2FnZQ== IHJlZg== ZXZlcg== IFNv YWluaW5n LmFwcGVuZA== IHN0aWxs IHByb3ZpZA== IGFzc2VydA== bWVk IGNhcA== dXNpbmVzcw== IHJlcA== dGluZ3M= dmVk Lk4= YXBp T0Q= IGZpZWxk aXZlbg== b3Rv 4oCc Y29s KHg= Z2h0 UmVzdWx0 Q29kZQ== Lmlz bGluaw== IGNvdXI= QW4= IHRlYW0= CWludA== aWZ0 NTU= IHNlY29uZA== IGdvaW5n IHJhbmdl X0U= bmVzcw== Mzk= IGZhbQ== IG5pbA== IENvbnQ= YWlsYWJsZQ== dXRlcw== YXRhYg== IGZhY3Q= IHZpcw== KCY= IEFO MzE= QWw= dGl0bGU= IGFuZHJvaWQ= Q0U= XCI= aXJ0 IHdyaXQ= 0L0= CW0= ZnR3YXJl b25k IHJldA== b3NpdGlvbg== IGhvbWU= IGxlZnQ= YXJncw== bWVyaWM= NDg= IGRpcmVjdA== b2Np UGw= QXM= cmV0 YWRv T2Y= Y2hu IEdldA== ZWU= cm9zcw== KCk7 X19fXw== LnBo SXQ= b3V0ZQ== IGV4cGVy Y2hvb2w= d3d3 fSw= IGFsbG93 IMI= KCkp c2l6ZQ== aXNt YWk= dHJhY3Q= YW5l Li4uCgo= Y29udGV4dA== IGJlZw== Q0g= IHBhZ2U= aGlw bm8= Y29yZQ== c3A= IGRpZmZlcmVudA== aWFibGU= IE1l X0lO YnV0dG9u IElz ZXJ2aWNlcw== IGNh IGFyb3VuZA== QXBw cmF0aW9u IHJlY2U= IHJlYWxseQ== IGltYWdl IHRhcmdldA== IGRlcA== b3B5cmlnaHQ= dHJh aW5nbGU= aXRhbA== TGF5b3V0 IGJvdGg= T3ZlcnJpZGU= YXJt PT4= YXRlcmlhbA== aWxlZA== IHB1dA== UXU= 0YA= dW5n bWFw CQkJCQkJCQk= IGxldmVs Q29tcG9uZW50 Ym9vaw== Y3JlZW4= X1JF IGNvbmZpZw== 44E= T3I= LmRhdGE= IGRvY3VtZW50 Iiwi dHJpYnV0ZQ== dXg= TG9n ZmVyZW5jZQ== cG9zdA== X2U= IGxvY2Fs YW5kb20= YXNzZXJ0 VmFs bGVjdGVk aW5h YXRhYmFzZQ== QWRk IGNvbnRlbnQ= LnByaW50 c2lnbmVk cmlj LiIKCg== IGZh IQoK LWY= aXZlZA== IHF1ZXN0 LmV4 IGZsb2F0 IGRldmVsb3A= 0L7Q TWFw YWRpbmc= IHBvc3M= VUU= bmFtZXNwYWNl X08= CWI= LkdldA== Pig= anNvbg== ZXRhaWxz NjY= IHRvbw== IGV4dGVuZHM= IE5vbmU= IGZvcmU= KFN0cmluZw== Zm9ybWF0 IGdyZWF0 aW50ZXI= Y2FsZQ== 0YE= cm9u aXZpbmc= RW50 ZW5jeQ== eHQ= b3k= MDU= IG1vbnRo IGhhcHA= IHN1cGVy YmFy ZGVmYXVsdA== X2Rl b3Jkcw== bG4= KHsK IEluZA== YXNlcw== IHRpdGxl IGNvbnRleHQ= MDg= b2g= LXA= RW0= IG1ldA== VGVzdA== IGxpZmU= X3Y= IFVT VUk= b2NhdGlvbg== bWQ= IFsK IF0= c3c= IGluY3Jl c2NyaXB0 ZW50aWFs d2F5cw== LmRl IHNyYw== IGNhdGNo IEFtZXJpYw== Ly8K ICAgICAgICAgICAgICA= IHBheQ== cGxpdA== 4oCU IGNvdW4= b2Jq LnBocA== IGNoYW5nZQ== ZXRoaW5n J3Jl YXN0ZXI= bG9z bGF0aW9u ICAK TGU= w6Q= KHs= cmVhZHk= IE5v IHBvc2l0aW9u IG9sZA== IGJvb2s= YWJsZWQ= YnVn MjAy SGFuZA== fTsKCg== aXNwbGF5 YXZpbmc= MDQ= IGdvdmVy IHZlcnNpb24= U3lzdGVt bmVjdA== cmVzcG9uc2U= U3R5bGU= VXA= YW5ndQ== IHRocmVl aW5pdA== ZXJv IGxhdw== ZW5kaWY= IGJhc2U= ZW1haWw= KGw= X1Y= IGNvbmY= QVRF IGR1cmluZw== dGVz IGNvbnNvbGU= IFBy IHNwZQ== dmVz NjU= cGF0aA== aWFsb2c= ZGl0aW9u X3Rv YXJkcw== IGFnYWluc3Q= ZXR3b3Jr IFBo X0w= Y3Vy aW1pdA== V2l0aA== IHBvd2Vy aXVt JzsKCg== IHdvbQ== bGVmdA== b3VyY2Vz YXRyaQ== IElt IE1hbg== b3J0aA== JHs= ODg= cXVhbHM= ZXNl X3NpemU= IGlzcw== b3RhbA== LWc= aXF1ZQ== cmFtZQ== IHdpZHRo ZXJn KSg= aXR0bGU= VFI= IFRoZXk= ZW5jZXM= MDI= cmw= b25z IGxhYmVs Lnk= LXQ= dXBkYXRl YW5lbA== c2M= LnRv IHByb2plY3Q= w7w= IGVsZW1lbnQ= IHN1Y2Nlc3M= CQkK LnNo cmFt Y2hlZA== KCkpCg== ICgK IGRhdGU= IHRvdA== X1NU QWxs aWZpY2F0aW9u CXZhcg== IHRyaQ== Y2hlbQ== bXk= IGJpZw== IEFk IEF0 b3Rz bnVt QWN0 IG1hcA== ZXJh Y29wZQ== LiQ= LOKAnQ== IHBvcA== IGZldw== IGxlbg== dWlk ZXRlcnM= dWxlcw== w60= c291cmNl aHR0cHM= IGRlbQ== IGVhcg== IyMjIyMjIyMjIyMjIyMjIw== IG1hdGNo b3JpZXM= NDk= YWNlcw== IENs IG5vZGU= Nzg= aXJj bG9jYWw= dW5pdHk= fTsK IGFub3RoZXI= PDw= b2dsZQ== IHNpdA== ZXdvcms= VEU= Lkk= TlM= b2xvZ3k= b3VnaHQ= LkNvbnQ= Pj4= IGNhcmU= c3RhdGU= CXByaXZhdGU= IGVmZmVjdA== Kysp X2ZpbGU= ZW5kaW5n TGluZQ== Rm9y aW9y IFNj IGZ1bg== LlNpemU= CWVsc2U= XSk= c3RhcnQ= dmlvdXM= IH0s b3Vycw== IGxlZw== IHNlcnZpY2U= IHNpbmNl aXJvbg== TGFiZWw= IG5vbg== IGxvcw== aWN0aW9u IGZ1bGw= YWN0ZXI= Ym9hcmQ= Z3Jlc3M= IHR1cm4= aXRoZXI= MDk= LnNpemU= IGJvZHk= cmVzaA== ZXR1cm4= MTk5 KF8= eWxlcw== b3JtYWw= cGk= IHNvbWV0aGluZw== IS0t dWludA== IHByb2R1 IHN0YW5k IHByb2JsZQ== IGF2YWlsYWJsZQ== bXQ= IEJs IC4uLg== IGJsb2Nr SW5wdXQ= IGtlZXA= Q291bnQ= b3Blbg== IFsn IHRocm93 dWlsZGVy QWN0aW9u IHRoaW5ncw== VHJ1ZQ== IHVybA== IEJv cHJpbnRm IHJlZA== anM= LmNyZWF0ZQ== IE9y U3RhdHVz SW5zdGFuY2U= IGNvbnRyb2w= IGNvbWU= IGN1c3RvbQ== bG9jYXRpb24= MDc= bW9kZWw= IA0K IHNvdXJjZQ== IGVhcw== Lm91dA== XQoK b25leQ== IGF3YWl0 IHBhcnRpYw== QVA= dWJsaXNo b2Rlcw== X3Bybw== cGx5 cml0ZXI= IHByb3Y= IG1pbGw= SFQ= XSkK IGNoYW5n IGFzaw== ICAgICAgICAgICAgICAgICAgICAg IG91dHB1dA== IGVtYWls Njg= LnB1c2g= IH0NCg0K aW5hdGlvbg== NDc= YXRyaXg= VGFibGU= dWNjZXNz XSk7Cg== ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGRpc2M= KFs= IGJ1c2luZXNz aGVpZ2h0 Lmh0bWw= dGE= ZmllbGQ= IHJlcXVpcmVk X1I= IGdvdmVybg== fQ0KDQo= bGV4 NTAw Liw= IFNldA== dXJjaA== Ly8v dHM= YWY= IG1pZ2h0 aXN0b3J5 U3Ry IG5ldmVy UmVzcG9uc2U= YXJzZQ== YWRh IEhvdw== ICop IDs= IGhhcmQ= QWQ= IGludGVybg== dXNlZA== KGRhdGE= bW9k YW5uZWw= IG5w dWdn IC8+Cg== IGNhbGxlZA== Ym9keQ== IGNobw== KHI= X3NldA== aXJk ID49 IH07Cg== IG9wdGlvbnM= IEdlbmVy IGhlaWdodA== UG9pbnQ= WW91 ZXR5 Q2xpY2s= IHNtYWxs IGlkZQ== IGFjY2Vzcw== YW5ndWFnZQ== IHByb3RlY3RlZA== IGpvYg== IFRoZXJl RGVm IGFkZHJlc3M= IHVpbnQ= Tm90 b28= YXBz PGRpdg== YWluZWQ= YXR1cg== IHN1bQ== LXc= IERhdGU= IGxpdHRsZQ== IGZyaQ== WVBF IHBvcnQ= ZWg= cHJpbmc= X3BhdGg= IHN0YXR1cw== MDY= YWlt Ym9vbA== IGFwcGU= IG9z Lm5hbWU= ZW5zaW9u X0c= IHVwZGF0ZQ== Q29uZmln YWZm RVJS IDw9 YXRlbHk= I2lm dWN0aW9u OTU= IFRl IGxpbms= IFVzZXI= LmZpbmQ= Lm9yZw== bWU= IGdpdmVu T3V0 I2VuZGlm IGJldHRlcg== UGFnZQ== IGZlZWw= ZW5u TUw= IGFscmVhZHk= IGluY2x1ZGluZw== b29nbGU= cnU= aWNhbGx5 cHJvcA== bGVhbg== b3V0ZXI= IGFsd2F5cw== b3JkaW5n SWY= b3JhZ2U= IHBhcmVudA== dmlz CQkJCQkJCQ== IGdvdA== c3RhbmQ= IGxlc3M= L3M= IEFzcw== YXB0 aXJlZA== IEFkZA== IGFjY291bnQ= cGxveQ== IGRlcg== cmVzZW50 IGxvdA== IHZhbGlk CWQ= IGJpdA== cG9uZW50cw== IGZvbGxvd2luZw== X2V4 U09O IHN1cmU= b2NpYWw= IHByb20= ZXJ0aWVz aGVhZGVy LnBybw== IGJvb2xlYW4= IHNlYXJjaA== a2Vu IG9yaWc= IGVy RWQ= RU0= YXV0 bGluZw== YWxpdHk= QnlJZA== YmVk CWNhc2U= NDY= ZXRoZXI= cG9zaXQ= IGludmVzdA== IE9S IHNheXM= bWlzc2lvbg== QU1F IHRlbXA= b2Fk IHJlc3Q= aW5mbw== IGludGVyZXN0 QXJn IHBlcmZvcm0= cG9ucw== IFZpZXc= IHZlcg== bGli KGNvbnN0 VXRpbA== TGlzdGVuZXI= YXJnZQ== Nzc= IG11bHQ= IGRpZQ== IHNpdGU= Li4vLi4v RUw= IHZhbHVlcw== IH0pCg== cGVu Tm8= aWNybw== IGJlaA== ICcuLw== YWN5 cmVj KCktPg== CSAgIA== Iikp Q29udGVudA== X1c= cGxlbWVudA== IHdvbg== IHZpZGVv YWRp cG9pbnQ= JSU= MDM= IGds ZXJ2ZWQ= dmlyb24= SUY= dXRlZA== 44M= J20= IGNlcnQ= IHByb2Y= IGNlbGw= YXJp IHBsYXllcg== YWlz IGNvc3Q= IGh1bQ== KFI= IG9mZmlj a3M= LnRleHQ= YXR1cmVz IHRvdGFs ICovCgo= b3Bl IHN0YXQ= VU0= IGxvYWQ= aWdodHM= IGNsZWFy dXJv IHRlY2hu dXBwb3J0 SVI= IHJvdw== IHNlZW0= IHE= IHNob3J0 IE5vdA== aXBw R3JvdXA= c2VjdGlvbg== bWF4 aXJs IG92ZXJyaWRl IGNvbXBhbnk= IGRvbmU= Iik7DQo= IGdyZQ== LlJl IGJlbGll cmlzdA== IGhlYWx0aA== QU5U KCkKCg== IEJl LnZhbHVl IEdy b3R0b20= IGFyZ3M= UFQ= c3RhdHVz ZnVuYw== dW1lbnRz LWg= TnVtYmVy Og0K IExvZw== ZXJ2ZXI= ICksCg== YW1lbnQ= IG9iag== aW5j IGNoaWxkcmVu aWN5 SVo= YW5kcw== YWJseQ== IGRpc3RyaWI= IGN1cg== ZXJpYWw= IGRheXM= cmVhdGVk cmVjdA== LWw= aXJt aWRkZW4= b21i IGluaXRpYWw= Lmpz IOI= UXVlcnk= IG9ubGluZQ== aW1hbA== LmNvbg== YXU= VXJs Y29udHJvbA== aXJlY3Rpb24= IGluc3RhbmNl T1JU IEZy d2hlcmU= IGphdmF4 IG9yZ2Fu YXB0ZXI= IHJlYXNvbg== b3B0aW9ucw== NTk= IE1hcg== KGE= IHdpdGhpbg== LuKAnQoK T0RF X0RF YWRtaW4= ZW5kZWQ= IGRlc2lnbg== IERhdGE= dW5l IEZpbGU= cm9vdA== IGNlbnQ= IGFycg== X2FkZA== bGVu cGFnZQ== LCc= X3N0cg== IGJybw== YWJpbGl0eQ== b3V0aA== NTg= L2M= cG9zZQ== aXJ0dWFs ZWFyY2g= X3VybA== YXJnaW4= SHR0cA== IHNjaG9vbA== YXZh IGNvbnNpZGVy LmxhYmVs IEFycmF5 NDI= d2Vi b3B0 LnByaW50bG4= dWxhdGlvbg== IGZ1bmM= UEw= ICJc IFRleHQ= YWN0b3J5 KGZ1bmN0aW9u bnVsbA== IGVuZw== ZG93bg== IGluY2x1ZGU= IEVu IERy IGRi ISE= c2lkZQ== IGluaXQ= cXVpcmVk IFNoZQ== Q29sdW1u cmVhY3Q= IGFubg== IHN0b3A= IGxhdGVy IFRoYXQ= ZW50aW9u ZGY= VUc= SUxF IGNsaWVudA== cmFmdA== ZmZlcg== UE9TVA== ZWxwZXI= IGxvdmU= cXVvdGU= b3Vk IGpzb24= IGFibGU= IG1lbg== QVg= IENvcHlyaWdodA== w7Y= YXZpZw== cmVx Q2xpZW50 fSk7Cg== LkNvbQ== ZXJj aWx0 cGVjaWFs X2NvbQ== cm9vbQ== Lk5hbWU= IGdpdmU= YW1i aWtl IGNvbmRpdGlvbg== Y2xpZW50 YXRvcnM= OiI= IGNvcHk= dXR1cmU= aXZlcnNpdHk= ZXJuYWw= e3s= IENhbg== b3VuYw== ZG8= IG9jYw== IGFwcHJv dGhlcnM= emU= IGVpdGhlcg== IEZs IGltcG9ydGFudA== IGxlYWQ= YXR0cg== QVJU RXF1YWw= IGRh ZXRjaA== ZW50aXR5 IGZhbWlseQ== YWRkaW5n IG9wdGlvbg== IGV4aXN0 aWNh IE9iamVjdA== Njk= J3Zl dmVycw== aXRpb25hbA== Njc= b3V0cHV0 IFRydWU= IE9G X3RpbWU= IG9mZmVy IH0pOwoK SEVS ZWdpbg== IiI= IHdhdGVy IGNoZQ== IE15 b3JlZA== IHN0ZXA= YW5jZXM= Q0s= QVk= 4Lg= c3RydWN0aW9u KEM= MzAw b3VjaA== U3RyZWFt YWN0aXZl YW1h RW50aXR5 cHJvZHVjdA== KCl7Cg== IGdvdmVybm1lbnQ= IElE YWpvcg== QW5k IGRpc3BsYXk= 0Ls= IHRpbWVz IGZvdXI= IGZhcg== IHByZXNlbnQ= IE5T IFwK dWVzdA== IGJhcw== ZWNobw== Y2hpbGQ= aWZpZXI= SGFuZGxlcg== IGxpYg== UHJvcGVydHk= dHJhbnNsYXRpb24= IHJvb20= IG9uY2U= IFtd Y2VudGVy PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0= IHJlc3VsdHM= IGNvbnRpbnVl IHRhbGs= X2dldA== IGdyb3c= LnN3 ZWI= IFB1YmxpYw== T1A= ZWN1dGU= b2xz ICoq Iik7Cgo= IG1hc3M= dXJlZA== LmNsYXNz b21pYw== IG1lYW4= aXBz IGF1dA== KTsNCg0K IHVudGls IG1hcmtldA== IGFyZWE= dWl0 IGxlbmd0aA== IFdpdGg= c3RydWN0b3I= ZXZlbnQ= Ij48 IFNw SVY= IG11cw== aWZm IGtpbmQ= YXV0aG9y b3VuZHM= bWI= X2tleQ== NDE= d2lkdGg= cG9zaXRvcnk= IGxpZ2h0 dWs= Um93 b2hu YWxm dmlyb25tZW50 YXBwZXI= b2xsZWN0aW9ucw== IHNpZGU= X2luZm8= IGV4YW1wbGU= aW1hcnk= IHdy IGNhbXA= Y3JpYmU= MjU1 Ii8= IG1pc3M= d2F5 IGJhc2Vk IHBsYW4= Vmlz b21haW4= dW5r IGF3YXk= VVA= PFQ= T1M= aW9k IE1vbg== 4oCZcmU= IGxpaw== w6c= aXZlbHk= LnY= aW1lcg== aXplcg== U3Vi IGJ1dHRvbg== IFVw IGV4cGVyaWVuY2U= Q0w= IHJlbmRlcg== X3ZhbHVl IG5lYXI= VVJM YWx0 IGNvdW50cnk= aWJpbGl0eQ== NTc= KCksCg== ZWFk IGF1dGhvcg== IHNwZWNpZmlj YmFzZQ== KG5hbWU= b25lcw== IERv IGFsb25n eWVhcg== IGV4cHJlc3M= Lic= ZW52 IGJlZ2lu IHNvZnR3YXJl IGltcA== IHdpbg== w7Nu IHRoaW5n VHJhbnM= IFRIRQ== IDw/ IHdoeQ== IGRvZXNu aWo= Z2luZw== CWc= IHNpbmdsZQ== b2Zmc2V0 YXJuaW5n b2dyYXBo bGV5 X2NvdW50 IGFuYWw= Y3JlYXRl L20= IFJlZw== OTg= dW5jaA== PSQ= aXNr IHJpZ2h0cw== KE0= ICIiIgo= YXBlcg== Lm1vZGVs IHBv ZW1wdHk= YXJ0bWVudA== IGFudA== IFdoZW4= IHdvbWVu IEVk IHNlYXNvbg== IGRlc3Q= w6M= KGg= IHBvc3NpYmxl IHNldmVy IGJ0bg== IGRpZG4= IHNlbnQ= IGVuYw== IGNvbW1hbmQ= IF0sCg== X3g= IHJlY2VudA== b2x1dGlvbg== dmVjdG9y IEJ5 IE1heQ== IEFjdA== u78= IG1vbmV5 SU5U YnNpdGU= CXA= Lg0K 77u/ c2w= YXR0ZXJu IENsYXNz IHRvbGQ= dWRpbw== Y3VycmVudA== IGVxdQ== IGF1dG8= IFN0YXRl ZGE= bXNn KSk7Cgo= IHdvcmtpbmc= IHF1ZXJ5 IEJy IHdpbmRvdw== YXV0aA== b25seQ== CXQ= IGxlYXN0 YWdu IGV4cGw= aXR0ZXI= YXJpbmc= IGNvbHVtbg== IEdlbmVyYWw= Ijoi ZXJhbA== cmlvcg== IHJlY29yZA== SUI= RVg= IGRhdA== IG1ha2luZw== dWVk IENhcg== ZW1w Ii4= IE1lZA== IGNsb3Nl IHBlcmNlbnQ= IHBhc3Q= KGc= Oig= IHdyaXRl IG1vdmU= IHBhdA== Q29udHJvbA== LlRv IHZp Ki8K aW5hdGU= J2xs YWdlZA== TnVsbA== IHNwZWNpYWw= SVpF IGNpdHk= LyoK IEVuZw== aXhlZA== aW5hcnk= cHk= IGVmZg== YXJpbw== IHRlbGw= YXZvcg== IHNlbGVjdA== bGV2ZWw= aW11bQ== b3Blcg== QnVpbGRlcg== SVA= JyksCg== ZXNj IGZvbnQ= IjsKCg== IEFt aXNoZWQ= aWxscw== SW50ZXI= T1c= IGNvdXJzZQ== IGxhdGU= aWRkbGU= NDM= IGFtb3VudA== IGFzeW5j aW5v Y3Vs IOw= YW5kbGU= X3VzZXI= IGJlbg== IENhbA== ICRf IFJlcA== IGVub3VnaA== VG9rZW4= LnVzZXI= KGo= U2M= V2lkdGg= bm93 YXRmb3Jt IGxvb2tpbmc= IGhvbGQ= TW9kdWxl SVRZ dm8= aXNvbg== LkRhdGE= eWM= IHBvdA== IFRydW1w aWR1YWw= aWRlcw== cnQ= IHByb3BlcnR5 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA== YW1ld29yaw== Z28= IGxvdw== IHBhcmE= IHByaWNl dXJ5 IHRvZGF5 cm95 ICcv IHBvbGl0 ICcn eW1i UGg= IGFkdg== IGF0dGFjaw== IFN0ZQ== Uk9N NDAw YW5h IG1lYW5z IHN0b3J5 aWRz YWtlbg== IG1lZXQ= IG1vbQ== IOKAmA== ID8+ IGRlbg== b2JpbGU= Y2hhbmdl ICAgICAgICAgICAgCg== aWNp bmE= IEZvcm0= IHNvcnQ= U2VsZWN0 cGFyZQ== IHRob3VnaHQ= X2Nvbg== IHRhc2s= b2N1cw== IERF IE1pbg== IG9wdA== CWJyZWFr dW1lcg== S0U= dGhlbg== IGRldA== IFRlc3Q= cG9ydHM= IHJldmlldw== KCcv bW92ZQ== IHN3aXRjaA== RVJU cGF0Y2g= YW5ub3Q= 44I= IGFib3Zl aXRpdmU= NTY= IHF1ZXN0aW9u IFF1 44CCCgo= Z2xl IHdvcmQ= IHByb3ZpZGU= IFJldHVybg== IHJlc2VhcmNo w6Nv dXN0cg== IHB1Ymxpc2g= Y2hlbWE= fX0= IENPTg== LWlu YWxsYmFjaw== IGNvdmVy XFw= Y29sb3I= IElT IHdoZXRoZXI= aW1hdGU= aXNj QmFy IGRpdg== QmU= b3Vybg== IGhhdmluZw== bGVt cGxheWVy YWJz YW1lcmE= bmV5 IGV4Yw== Z2V0aGVy cGxpZWQ= YW8= WyQ= ICsr aXBl c2hvdw== L2Q= Wzo= YWdlbWVudA== bGV2 X0lE OTc= cmFyeQ== YWRlcw== X3Nl YXVzZQ== IGVtcGxveQ== ICovDQo= IGZyZQ== ICdA IGNvbXBsZXQ= IGxhcmdl cmFs XHg= IGZhYw== PFN0cmluZw== IGNyZWF0ZWQ= dXBlcg== LnN0YXRl IGhvc3Q= ZW5lcmlj L2I= KCE= d2hpbGU= aWFz QlVH ICk7Cgo= IHJvbGU= UmVn IENvbG9y U3RhcnQ= IHBvcm4= dG9w IHdlYg== IGRldg== IGRlYWw= KyspCg== SW50ZWdlcg== cG9zaXRpb24= Lm9u ICgi 5Lg= IHByb2JsZW0= c3Y= IHByZXNz QUJMRQ== QVRJT04= IFNlZQ== YW5jaA== IHRob3VnaA== bGVlcA== IDwhLS0= IHBvaW50cw== ICAgICAgICAgICAgICAgICAgICAgICAgIA== Lko= IDo6 cHRy REI= Kys7Cg== LnBuZw== bm9kZQ== c29mdA== cG9uZA== IGV2ZXI= LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ== TWVudQ== KCcj IHNlcnZpY2Vz cGc= fSkK cGFyYW1z IGFjdHVhbGx5 ICIv RW1wdHk= TWV0aG9k IGlkZW50 dW5pYw== IG1pbGxpb24= IGFmZg== c3R5bGU= IGNvbmM= aW9z aWdubWVudA== VUxU UHI= IjsNCg== IHVuZGVyc3RhbmQ= dWFyeQ== IGhhcHBlbg== IHNlcnZlcg== IENv U0M= IGxlcw== IGZpbGVz R3JpZA== c3Fs IG9mdGVu IGluZm8= X3Ry c3Jj b255 IHNwYWNl dW1i IHBhc3N3b3Jk IHN0b3Jl LAoK IFdoYXQ= Z2Vk IEZhbHNl VXM= c3dlcg== X2luZGV4 IGZvcm1hdA== bW9zdA== c20= TmV3 IGRldGFpbHM= IHByb2I= IEFORA== KCkNCg== aWxhcg== ICR7 cnlwdA== LkNvbGxlY3Rpb25z JHRoaXM= IEZyZWU= X29m KGZhbHNl ZGF0ZWQ= ID4+ IGZhY2U= Q1RJT04= IHNhdmU= IHR5cA== ZGV2 KCIj QUdF Y29udGFpbmVy ZWRpdA== UUw= IGl0ZW1z IHNvY2lhbA== aWVu IFJlYWN0 KS4KCg== IG1hcg== IHJlZHU= IFJF LnB1dA== IG1ham9y Q2VsbA== bmV4dA== IGV4cGVjdGVk IHlldA== IGluZGl2 dHJpYnV0ZXM= YXRpcw== YW1lZA== IGZvb2Q= U291cmNl KHN0cmluZw== ICsK aXRlcw== ZHI= IG1lbWJlcnM= IGNvbWI= aXRlbXM= IFBlcg== VEg= PVRydWU= IGJhcg== X1NF Y29tbQ== KHc= KQoKCg== IHNlbmQ= IGluYw== dW5zaWduZWQ= RkE= IHBhcmFtcw== YXBwaW5n cm9z dWdpbg== ZmE= IGNvbm5lY3Rpb24= IH07Cgo= IGJlY29tZQ== TW9kZQ== IGV2 IGRpZmY= IFVuaXRlZA== SGVpZ2h0 ZnVsbHk= aW1hZ2Vz IG1ha2Vz IGdsb2JhbA== IGNvbnRhY3Q= JzoK IGFicw== 0LDQ ZmxvYXQ= IGV4Y2VwdA== IFBvbA== Q2hpbGQ= dHlw IGNlcnRhaW4= acOzbg== T1VU IGltcHJv aWxlcw== IC0tPgo= IFBhcnQ= dmFsdWVz b3Nz Lyoq aWxpdA== IEV2ZW50 Y3VyaXR5 c3Rlcg== IGNoYXJhY3Rlcg== MTk4 IG5ld3M= ICIs IGRldmljZQ== Y2Vs bG9naW4= aGVldA== RGVmYXVsdA== QCI= CSA= Y2xpY2s= KHZhbHVl IEFi IHByZXZpb3Vz RVJST1I= b2NhbA== IG1hdGVyaWFs IGJlbG93 IENocmlzdA== IG1lZGlh Y292ZXI= IFVJ IGZhaWw= IGJsYWNr IGNvbXBvbmVudA== IEFtZXJpY2Fu IGFkZGVk IGJ1eQ== c3RpdA== IGNhbWU= IGRlbGV0ZQ== cHJvcGVydHk= b2Rpbmc= IGNhcmQ= cm9wcw== IGh0dHBz IHJvb3Q= IGhhbmRsZQ== Q0M= QmFjaw== ZW1wbGF0ZQ== IGdldHRpbmc= X2J5 bWFpbA== X3No LmFzc2VydA== IERlYw== KHRydWU= IGNvbXB1dA== IGNsYWlt Jz0+ IFN1Yg== IGFpcg== b3Bz bmF2 ZW1lbnRz KGlk IGVudGVy YW5nZWQ= RW5k IGxvY2F0aW9u IG5pZ2h0 IGRvaW5n IFJlZA== bGlu fQoKCg== dmlkZXI= IHBpY2s= IHdhdGNo ZXNzYWdlcw== IGh1bWFu IGRhbQ== cGVuZA== ZGly IHRheA== IGdpcmw= cmVldA== IGJveA== IHN0cm9uZw== KHY= cmVs IGludGVyZmFjZQ== IG1zZw== ZmVjdA== X2F0 IGhvdXNl IHRyYWNr Jyk7Cgo= amU= IEpvaG4= aXN0cg== KFM= dWJl IGNl aXR0ZWQ= VkVS Kik= cGFyZW50 IGFwcGxpY2F0aW9u YW55 LnN3aW5n IHBhY2s= XHU= IHByYWN0 IHNlY3Rpb24= Y3R4 IHVuc2lnbmVk LlBvaW50 IE9uZQ== xLE= aXBsZQ== YWlk 0YM= VmVjdG9y Ynl0ZQ== IHdhaXQ= IMOg w6U= IHRvZ2V0aGVy IHRocm93cw== Rk8= Jykp aG9zdA== aXNpbmc= LnZpZXc= IHRlcm1z ZnJhbWV3b3Jr LXI= IGFwcGx5 IHNlc3Npb24= T3B0aW9ucw== dWdnZXN0 IG90aGVycw== d2l0dGVy IGZ1bmQ= SW5pdA== X18o ZW5zb3I= R0VU IHNldmVyYWw= aWk= W2o= SU8= IHRlbXBsYXRl UG9zaXRpb24= IGVjb24= YWNoaW5l IGls LnNwcmluZw== bWFpbg== ZWx0 aW1lbnQ= UmVj bW0= IFVuaXZlcnNpdHk= dXJzb3I= ICAgICAgICAgICAgICAgICAgICA= R0w= aWN0dXJl aXRodWI= Y2Vy Y2FzdA== RnJvbQ== YWxlcw== IHN1YmplY3Q= cGFzc3dvcmQ= bnk= IGVzYw== LndyaXRl 77yM V2hhdA== Lkg= IGhpc3Rvcnk= IEZl IGluZGl2aWR1YWw= dW5pdA== IC0tPg== IGR1 SVNU IHVzZXJz ZnM= ZmFsc2U= dW50 VGl0bGU= IG1vdA== IGZ1dHVyZQ== YWNoZWQ= IHN0YXJ0ZWQ= IG1vZGU= ICc8 X2FycmF5 IGF4 J107Cg== aXJlcw== VGhlcmU= dWdodA== dG1s cG9zZWQ= aWN1bHQ= IHRvb2s= IGdhbWVz IH19 ID8+Cg== IHByb2R1Y3Rz SXM= IGJhZA== IERlcw== LnBhdGg= JwoK IFBvc3Q= YXZlbA== KDo= MTUw IG5lZWRz IGtub3du Rmw= IGV4ZWM= IHNlZW4= NTE= dW1l IGJvcmRlcg== IGxpdmU= dGVtcA== UGVy IHZhcmlhYmxl aWV0 IERlZg== IGdl ZW1l X2JhY2s= Zmlyc3Q= IHByb3ZpZGVk Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8= IGZpbGVuYW1l IGhvcGU= dWx5 YXV0bw== ZmluZA== X3N0cmluZw== YnRu aXR1ZGU= QXR0cmlidXRl IHlvdW5n LnR4dA== IHdlYnNpdGU= IFByb3A= IGV5 PigpOwo= aW9uYWw= QVJS aWN0aW9uYXJ5 dXJ0aGVy Ljwv QUxM IHN0dWR5 aWxp IG5ldHdvcms= eWw= aXN0YW5jZQ== T0s= TlU= cmVzdA== IFNU aWNyb3NvZnQ= IGxpbWl0 IGN1dA== KCk6Cg== IGNvdQ== b2du IHNpemVvZg== aXZhbA== IHdlbnQ= Lno= TGluaw== IGZpcmU= IGFjcm9zcw== IGNvbW11bml0eQ== cmVnaW9u TkU= UmVm IG9mZmljaWFs IHZpc2l0 b2x2ZQ== IHJlY2VpdmVk IHRva2Vu IG1vbnRocw== IGFuaW0= IHBhcnRpY3VsYXI= c3R5bGVz aWNv IGVzcw== ODc= LkNvbnRyb2w= IMOp YmFsbA== IGxlYXJu aW5kaW5n VmFy IGRlY2w= KGVycg== TEVDVA== T25l cGhh IH4= Zm9ydA== YXN1cmU= IG1pbmQ= IEVuZA== Q2hlY2s= IHF1aWNr Iiks QU5E dXRpb25z QmFzZQ== X19fX19fX18= IGNvbW1lbnQ= SU5F 4oCZdmU= QnV0 IEVs IFVz IGFkbWlu bWFyaw== IE5hbWU= YAo= IFR5cGU= YW1pYw== cGM= bG9vcg== RlQ= IG9wcA== Y2tldA== KS0+ dHg= IHB1cg== dWVs eW1ib2w= dWF0aW9u YW5nZXI= IGJhY2tncm91bmQ= ZWNlc3M= ZWZpbmVk Li4uLi4uLi4= IGRlc2NyaXB0aW9u IHJlcHJlc2VudA== IikpOwo= cHJlc3Npb24= cm93c2Vy IHNlcmllcw== d2FyZHM= NTI= KCRf YWlzZQ== IGhvdA== YWNpdHk= cmllcw== YWN0aW9ucw== Q3JlYXRl YWRpbw== YW1wbGVz IG9yaWdpbmFs ZW5zaXZl Zm9udA== c3RyZWFt 77u/dXNpbmc= LnNwcmluZ2ZyYW1ld29yaw== MDAx c2VydmVy IGJpbGw= QUNL aWxlbmFtZQ== IGZyYW1l ID0K RWRpdA== YWRpdXM= IGRyYXc= YW5rcw== IGRldGVy IGNvbWVz X2ludA== IGZvcmVhY2g= YW5nbGU= IGVsZWN0 cGVjdGVk SGVhZGVy aXN0cmF0aW9u RmFsc2U= IEdhbWU= IGZpbHRlcg== QWN0aXZpdHk= IGxhcmc= aW5pdGlvbg== ICI8 MjU2 aXNlZA== IHJlbW92ZQ== IFRyYW5z bWV0 c2Vl Rm9ybWF0 Q29tbWFuZA== IEVY Tm9uZQ== IGZyb250 QVNF IFJlYw== b3VuZGF0aW9u IHZv OTY= PVwi KCo= Q2hhbmdl LldyaXRl Z3JvdXA= aWVudHM= dXk= KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg== IGRpZw== aHI= KC0= IGdlbg== bnVtYmVy dmVj dXJvcGU= ZW50cnk= TEw= IHN0ZQ== VmFsaWQ= J10s X3BhcmFt IHNlbGVjdGVk IGFjY29yZGluZw== IERpcw== IHV0aWw= QnVmZmVy X2Vycm9y IGFzc29jaQ== X1NJWkU= IHdvcg== IHByaW50Zg== cmFn wqA= REQ= IFZhbA== IGFjdGl2 RW5n ZXRpbWU= IHZpcnR1YWw= YWlnbg== YXVy IFByZXM= IEV4Y2VwdGlvbg== IGFueXRoaW5n IE9mZg== IGhvdXJz IHdhcg== QXJncw== YWdpbmc= IG1vZGVscw== IFRpbWU= T2I= YW1z am95 IGVhcmx5 LnJlYWQ= ODY= IGNlbnRlcg== IEluaXRpYWw= IGxhbmd1YWdl bGVuZ3Ro eHk= IHNu IGluZg== UG9zdA== IGFnbw== IGVhc3k= X2NvZGU= IEFOWQ== X2No IGRvd25sb2Fk KFQ= YXZlZA== 4oCT IHN0dWRlbnRz IGZpZw== bGlnaHQ= eHg= IGJ1ZmZlcg== IERlcA== IE1hdGg= SVRI IHZhcmk= IGR1ZQ== RmFjdG9yeQ== IHBvcg== IGVw b3R5cGU= IGNhbm5vdA== IHdoaXRl PGludA== dGVybg== IHJlZ2lzdGVy IHByZWQ= Y2x1cw== X2RhdGU= IC8qKg== IGF1dGg= IFtdCg== IHBlcmlvZA== bm93bg== IHZvdA== IHNjcmVlbg== J2Q= VHlwZXM= IHRtcA== 0LXQ dXJhbA== IGJlbmVm X3k= IG5ldA== IFN0YXRlcw== J11bJw== IE5l IE5PVA== IG5lZw== MTAy IGNvbW1vbg== c2NvcGU= IGNyZWQ= Z2Vz X1RZUEU= IHN1Z2dlc3Q= b29t LgoKCg== IGFjY2VwdA== IHJhbmRvbQ== ZXJt IFZlY3Rvcg== d2l0aA== VEVS KHN0cg== IHJlc3BvbnM= IGhpdA== LlNldA== Z3JpZA== cmlh IGNsaWNr dW5kbGU= Q2FzZQ== aW5zZXJ0 VXRpbHM= ICIiIg== IGltcGxlbWVudA== YXRhbA== dGVtcHQ= dGVtcGxhdGU= b2Ny cmV0dXJucw== IHBsYXllcnM= dXNlcnM= ZWRlZg== IFRoZXNl IGFtb25n IGRlYg== aGE= LmdldEVsZW1lbnQ= IGNpcmM= IGFuc3dlcg== IHdhbGs= IHRyZWF0 IEdl IENyZWF0ZQ== IGFnZQ== IHJlcQ== T1NU YW5ndWxhcg== 0Y8= IGZpdmU= NTM= IGRpc3RyaWJ1dGVk IGZyaWVuZA== VFA= IGNsZWFu b3dz LkNvbnRyb2xz ZGlz IHdvcmRz Lmlv enk= IGhlYWRlcg== IENoZWNr 4oCZbQ== anVzdA== aG9sZGVy PSI8Pw== IEdOVQ== IENvbA== aW1lc3Q= ZW50aWM= ewoK IHRyZQ== bGFzdA== bGE= IFlvcms= TG8= IGRpc2N1c3M= IEdvZA== IGlzc3Vl cmV3 V2luZG93 IGxhbmQ= MTIw IHN0cmVhbQ== IFBhcg== IHF1YWxpdHk= UGFy X251bQ== NTQ= IHNhbA== ZWx2ZXM= T1JE KHVzZXI= IHdvcmtz IGhhbGY= ZW5zZXM= dmFz IHBvbGljZQ== KCIv dWE= IHNpbXBsZQ== QWRkcmVzcw== IGVtcHR5 ZXNo MTI4 VXBkYXRl IENyZWF0ZWQ= KCcu KS4K ICAgICAgICAgICAgICAgICAg IGFncmU= IEZST00= IGNvb2s= IGV2ZXJ5dGhpbmc= aWxpdGllcw== LnN0YXR1cw== IHJlbGF0aW9ucw== ZXh0ZXJu IG5vdGhpbmc= IHJ1bm5pbmc= CXZvaWQ= Ukk= X2E= X0NPTg== cG9y LnN1Yg== cmVxdWlyZQ== IENpdHk= IFdlc3Q= IG1vcg== c3RvcmU= RXF1YWxz b2Rlcg== IG5h IFtb ICgn IERvbg== RVJT L3A= Lmpzb24= YWJvcg== IHNvbWVvbmU= X3RleHQ= LmNzcw== LlRhYg== IFNvbWU= YXRv ZG91Ymxl IHNoYXJl KHZvaWQ= X2Rpcg== IHVy U3RhY2s= IFdvcmxk Llg= c3RyYWN0 SG93 LkdlbmVyaWM= aWNsZXM= IGVudHJ5 IGNoYW5nZXM= IHBlcnNvbmFs KEE= IG9mZnNldA== X3B0cg== IHBpZQ== IEphbg== LWdyb3Vw bW9kdWxl SXRlbXM= IEhvd2V2ZXI= dmVyYWdl LkZvbnQ= IGV2ZW50cw== Lm1pbg== IGludm9s emE= IHdob2xl IG5lZWRlZA== IGxpa2VseQ== cmllZg== T1JN dmVyc2lvbg== IGZpZ2h0 IGVpbg== RnJhbWU= MTk3 Z2Vu IE91dA== YXZpZ2F0aW9u TGVuZ3Ro aWxsZWQ= cXVlbmNl ICE9PQ== IFNvZnR3YXJl IHdyaXRpbmc= IHJhdGU= J10sCg== UGFuZWw= aW5uZXI= IFsi IHR3 Y2Q= IDsK X3N0YXRl IFNt IE1hcms= KSkKCg== cHJvdA== IE1y bWV0aG9k dXN0b21lcg== SWNvbg== IGNvcnJlY3Q= KG9iamVjdA== IE1vcmU= IGZhbGw= IHZvbA== IGRldmVsb3BtZW50 ZW50bHk= IHNp bWVkaQ== dmluZw== UFA= YWtlcg== IGluZHU= IGVsaWY= IHByZXQ= IGJlbGlldmU= bnM= b21ldA== MTIz IEludGVybg== UmVjdA== U28= LmVycm9y UmVhZA== IGZlYXR1cmVz IG1pbnV0ZXM= LS0t YXNpbmc= Y3JldA== Ij4NCg== LmFubm90 IGNvbGxlY3Rpb24= Jy4= IHNpbWlsYXI= IHRha2Vu KCIl T3JkZXI= J10K LW1k IFRI YWNlZA== IGlzbg== L2o= IHNvbg== Z3JhcGg= IEludGVnZXI= IG5lY2Vzcw== cmVlbg== IHVt IFw8 IG1vbWVudA== IGJyaW5n IGluZGlj eXNpcw== TGV2ZWw= dmVyc2U= dXJyZW5j X3Rlc3Q= IGVudGlyZQ== RG93bg== IH0KCgo= KHJlc3VsdA== IFJlYWQ= w6g= TW9k IHRyeWluZw== IiksCg== IG1lbWJlcg== IENvcg== T0RP LWNvbnRyb2w= dW50aW1l IFNpbQ== RGlhbG9n cGxvdA== X29u IHBoeXM= fS8= IG5hbWVzcGFjZQ== CQ0K YWNj UGxheWVy QVJF ODk= IGZvb3Q= IGJvYXJk cGFydA== IHN1cw== d2lzZQ== IE1j IHB1c2g= QVRB IHBsZWFzZQ== cmllZA== d2VldA== Yml0 aWRlZA== VkU= IFN3 VUI= IHR5cGVz ZWRpYQ== IGNsb3M= YWNlYm9vaw== V2hlbg== IGVkaXQ= aWdnZXI= IGVuZXJn Q29udGFpbmVy IHBob3Q= IENvdW50 IEV1cm9wZQ== Lklz IFJ1c3M= cGVlZA== IFN0cg== IHB5 IGN1bHQ= IGRlZmluZWQ= Y2NvdW50 IG9idA== LkxvY2F0aW9u IHRocmVhZA== aWxsZQ== IGluc3RlYWQ= c3Ryb25n IFNlYw== VVJF IGlkZWE= LnNl ZW15 c2VsZWN0ZWQ= Q29ubmVjdGlvbg== YWNpbmc= dGhyZWFk Lm5leHQ= IGNvbGw= IGZpbG0= aXN0aWM= IGNvbXBldA== IGNvbm4= dGhvdWdo IGNvbXBhbg== b2NrZXQ= IHRlYWNo PSg= IHBob25l IGFjdGl2ZQ== Nzk= ZGVsZXRl MTAx dHJpZXM= IG1v IGRlYXRo fSk7Cgo= b2NvbA== V2lkZ2V0 IGFydGljbGU= cm9kdQ== YW5kaWQ= 0Ys= IENy a2E= KCk6 bG9vZA== CQkJCg== IGFsbW9zdA== IHNlbGw= ZXJ2bGV0 cmlw VW5pdA== IGFwcGxpYw== IGNvbm5lY3Q= IGZlYXR1cmU= IHZpYQ== Jyks IGxpbQ== ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA= IEd1 RW5naW5l IGVucw== IGVudmlyb25tZW50 YmxvY2s= SEVSRQ== TlVMTA== Z3k= dGFn KSku ZXhw IGNvbXBs IGluc3RhbGw= IGNvbXBsZXRl cXVldWU= YXR1cmFs IGdlbmVyYWw= dGhvbg== IGFza2Vk b3Jlcw== KHJlcw== IHJlc2VydmVk U1A= IOKApg== xYI= IHNpZ25pZmlj T2Zm ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA= IEFn IEp1c3Q= IEVycm9y IGluZmw= YWRhdGE= IGljb24= YXNrcw== Jyc= X0xP Py4= YWNjb3VudA== ICgq JykKCg== cmFw X3Zhcg== IEZPUg== IHBhcnR5 IFlvdXI= Y2F0 c3RyeQ== Lm5ldw== Ym9vdA== IE5vdg== IHZlY3Rvcg== IG5vcm1hbA== IGZ1cnRoZXI= UmVwb3NpdG9yeQ== ODAw IGRhdGFiYXNl YXR0bGU= IG11c2lj IHNwZWVk IGRvYw== cHJvY2Vzcw== SUdIVA== LnBhcnNl IHRha2luZw== IHZpb2w= Y2VlZA== IEFmdGVy IGZvcndhcmQ= IGNyaXQ= Ii8+Cg== cm90 IGZhaWxlZA== ZWZvcmU= IGNvbmNlcm4= b2U= YmE= IHNlbmRlcg== IHRlcm0= aGFz PSIj IHBvdGVudGlhbA== TnVt IHB1Ymxpc2hlZA== LmNsb3Nl IEltYWdl c3RyYWludA== VUQ= IE9i IHByb2JhYmx5 bGlt IjoK b2x1bWU= IGNvbnN1bQ== NzY= YWd1ZQ== ZW5zaW9ucw== IGludmVzdGln LXllYXI= Jyk7 LXNt IGVuam95 b3JpZw== ZXJpbmc= Y3A= bGVhc2Vk cGxlbWVudHM= IHJldHVybnM= cGF0 Qk8= IEhvdXNl LkxhYmVs IHdlaWdodA== aWdoYg== IGNvbmRpdGlvbnM= IGV4Y2VwdGlvbg== ZGVzY3JpcHRpb24= IHRyYWQ= LXRv IHt9 IG1vZHVsZQ== RU5E LmFw LnByb3Bz IGNvbnN0cnVjdG9y YXZlcw== IGZhdm9y IE5vdw== O2k= IE1haW4= X2s= ZXJpZXM= 4oCZbGw= dHJhbnNmb3Jt aW1lc3RhbXA= UHJl IG1lcg== LnJlcw== c3RhbnQ= TG9jYXRpb24= X05BTUU= IGxvc3M= IAoK bmV0 IGVuZ2luZQ== QmxvY2s= IGlzc3Vlcw== IHBhcnNl IEJhcg== IHN0YXk= IEpTT04= IGRvbQ== YWlycw== d25lcg== IGxvd2Vy IiwNCg== IERlbQ== dWZhY3Q= IHBz IHBlcmZlY3Q= Ukw= IGVkdWM= bHM= ZW1vcnk= QVJSQU5U dWdl IGV4YWN0 LmtleQ== YWxsZWQ= ZWNo aWVm XC8= b2tl IGZvcm1lcg== YWxsb2M= IHNpeA== aWRh IG1hcmdpbg== IGhlYXJ0 YWxk cGFjaw== LmdldEVsZW1lbnRCeUlk IFdBUlJBTlQ= IHJhdGhlcg== IGJ1aWxkaW5n ZXJtYW4= bGljZQ== IHF1ZXN0aW9ucw== aXplcw== bGVnZQ== aXJlY3Rvcnk= IGpl IGNhcw== cHJvcHM= dXRm IHNlY3VyaXR5 IGhvd2V2ZXI= d2VpZ2h0 IGluc2lkZQ== IHByZXNpZGVudA== Q2hhcg== IFdJVEg= Lm1hcA== IGdyYXBo IHRhZw== X3N0YXR1cw== IGF0dGVtcHQ= b3Bw dXNlcw== CWNvbnN0 IHJvdW5k LCQ= IGZyaWVuZHM= RW1haWw= Pz4= UmVzb3VyY2U= S0VZ b3Nw LnF1ZXJ5 IE5vcnRo YWJsZXM= aXN0cmli X2NsYXNz ZWxsbw== VGhhdA== 0Lo= cGVjaWFsbHk= IFByZXNpZGVudA== IGNhbXBhaWdu IGFsdA== YXJlYQ== IGNoYWxs IG9wcG9ydA== LkNvbg== IGVuZXJneQ== bGlrZQ== LnN0cmluZw== aW5ndG9u KSo= eXk= IHByb2Zlc3Npb24= aXJ0aA== IHNlZw== 5pw= IGhvcg== aWVycw== Y2Fu IGJlaGluZA== UHJvZHVjdA== Zmc= IFNr LmpwZw== Pzo= XTsKCg== IGNhbGxiYWNr IEh0dHA= 0Yw= bG9uZw== TVM= QVRI IHJhaXNl IHdhbnRlZA== cm93bg== dXRvcg== bHQ= XT0= ZWxpbmU= TUE= IHNlcGFy Y3M= c2VtYg== RGlz YnNlcnY= IFdpbGw= IHBvbGljeQ== IHRoaXJk cGhvbmU= IGJlZA== L2c= Ll9f IEluYw== aXppbmc= LnJlbW92ZQ== aW5zdGFuY2U= LnR5cGU= IHNlcnY= RWFjaA== IGhhcg== IE1lc3NhZ2U= KGtleQ== U0VMRUNU UG9z KSk7DQo= IHJlY29tbQ== IHRyYWluaW5n IEVudA== IENoYXI= aWNodA== KGZpbGU= IHByaW9y R2FtZQ== IGV4aXQ= UGFyYW1z LmNvcmU= UEM= bmVz YW5jZWQ= KHJlcXVlc3Q= UGFzc3dvcmQ= fT4K IG1hZw== IHJlbGVhc2U= IHNoYWxs dWRlbnQ= IFNvdXRo YW5kbw== Oic= LlRhYkluZGV4 c2s= YW5uZXI= aXNzZXQ= IG91dHNpZGU= bGVkZ2U= IOU= IFJvYg== IGltbQ== IQo= IFdlYg== RGVz QkM= YW5jaWFs Um91dGU= RGVj ZmVyZW5jZXM= IHB1cmNo IE1vZGVs Y3Rvcg== Z24= X3N0YXJ0 X3Vu Lio= aXNlcw== IGdyb3VuZA== IHVuaXF1ZQ== IGJlYXV0 eyI= IHBvdXI= IE9jdA== IHRyZWU= c2V0cw== X3Jlcw== JyktPg== X3JlZw== KCJc IGJ5dGU= Qmw= IGRhdGluZw== IG1hdHRlcg== IFJlbQ== ICcuLi8= IEF1Zw== IExh ICQo b3VybmFs MTEx aWFt IHNob3dz d3JpdGU= IGJhbGw= IHNpbXBseQ== IGZhc3Q= IG1lbW9yeQ== QVNT IE9m b3ZlZA== YW50ZQ== YXVs aXN0cnk= KSkpOwo= IGZpdA== PHN0cmluZw== IHBvbGl0aWNhbA== YW5jZWw= Xy4= Y2FyZA== LmN1cnJlbnQ= b2No X2ltYWdl XHQ= Iwo= KEw= IGluZHVzdHJ5 Y29taW5n IGV4dHJh NjAw IHJlcG9ydGVk LnN0YXJ0 IHJlc291cmNlcw== IGltZw== Zmxvdw== X0VY KG51bGw= IFByZQ== IHdyb25n aW50ZXJmYWNl UGFyYW1ldGVy bmVycw== 4bs= dHVyZQ== ZXJzaXN0 b3VudHJ5 IHNlZW1z YWxhbmNl ZGVzdA== CVN0cmluZw== IG1haW50 IHVuaXQ= YWN0ZXJz IFRS aWZ1bA== ZXhwb3J0cw== cHJvamVjdA== QXBwbGljYXRpb24= bGVnYXRl IHRha2Vz dGVybQ== IGV0Yw== dXN0ZXI= IGFwcGVhcg== YWRkcmVzcw== IGZlbQ== aHM= IGhvbQ== LC0= IGRpZmZpY3VsdA== IGNvbWluZw== T3Blbg== IHNldHRpbmdz IFdhcg== IFRoZW4= IGF1dG9t IEZvdW5kYXRpb24= IHF1aXRl RGVzY3JpcHRpb24= IGJsb2c= aXF1 UFM= MTEw X2ZpZWxk SnNvbg== U1NJT04= IFNjaA== IExP IGRlc2NyaQ== IGV2ZXJ5b25l IHByZXR0eQ== IGxvbmdlcg== IG1lbnU= IGN1cnJlbnRseQ== c2Vj IHJlbGF0aW9uc2hpcA== IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyM= IE1hcA== YXNldA== IHBhcmFtZXRlcnM= IGNydXNo Ig0K SUxJVFk= aWdyYXRpb24= IGNvdXQ= dG90YWw= IG5hbWVz bmRlZg== Iik7 cmllbmQ= eW5hbWlj IGVmZm9ydA== IGFjdHVhbA== IGZpZWxkcw== T1VO dGVycw== MjUw IGZpeA== X21vZGVs IGNhc2Vz Q0E= TXk= SW50ZXJmYWNl IFNF MTk2 XV0= YWxsZQ== IE5hdGlvbmFs IEFycmF5TGlzdA== aW5saW5l LlY= YXJh cmVmaXg= YXNj UmVhZGVy INC/ YXN0aWM= KCgp Q2w= LmFubm90YXRpb24= IHBlcmZvcm1hbmNl YWlseQ== LnRvU3RyaW5n Lm5ldA== dmlld3M= LmVuZA== YXllcnM= bGF0ZQ== IEFwcg== ZWRlcmFs J10p LmJvZHk= IGhpZ2hlcg== X2Zs Y3I= YWxlcnQ= X25vZGU= IEdvb2dsZQ== IGl0c2VsZg== QXV0aA== dXJyZW5jeQ== IHNpZ25pZmljYW50 YXBwZW5k IHJlc3BlY3Q= c3RyYXA= IHVuYQ== cml0ZXJpYQ== UE9SVA== LmFwYWNoZQ== T3V0cHV0 IHByb2dyZXNz IG1pZA== IE1pY3Jvc29mdA== IHJlc291cmNl YWJsaXNo IGRpbQ== LmxvYWQ= LkFwcA== IGRpcmVjdGlvbg== IGFkZGl0aW9uYWw= ICAgICAgICAgICAgICAgICAgICAgICAg IG51bWJlcnM= IGNvbXBhbmllcw== LlRo IHNvdW5k dXNlcm5hbWU= IHN0YXRlbWVudA== IGFsZXJ0 IGNvbnRyYWN0 aG9tZQ== X2xlbmd0aA== LkNvbXBvbmVudA== ZXY= LkV4 77ya Ijs= IEhpZ2g= ICkKCg== IFBvaW50 b3Bo IGxpbmVz LT5f IikKCg== b3g= YXBwbGljYXRpb24= IF0K CgoKCgoK MTgw IHNvb24= Y3Rpb25z aW5nZXI= IGpvaW4= IFBl IOs= IGxhcw== LkU= Y3Nz L29y IFN0YXJ0 IFRP IHN1YnM= Y29ubg== Y29tcG9uZW50cw== REVCVUc= cXVhcmU= RnVuY3Rpb24= ZW5kYXI= LmluZGV4 IGZpbGw= xJk= IGNob29zZQ== aG93 IEFtZXJpY2E= YXNzZXRz LS0tLS0tLS0tLS0t IFZhbHVl IG9mZmljZQ== IHZlaA== IHRyYW5zZm9ybQ== IEFydA== IGluZGU= IGZu IGltcGxlbWVudHM= YW5nbw== cGxldGU= KyI= dG1w YW1pbHk= IGhhc2g= bWlzc2lvbnM= RVNU Z3Q= UHJvdmlkZXI= ICAgICAgICAgICAgICAgICAgICAgIA== IGZsYWc= IHBhcnRpY2lw ZGVu IFJldHVybnM= IG5vdGU= w7xy cG0= aWRlb3M= IHNwZWNpZmllZA== IEVO ZXN0ZXI= b2xpZA== IHVwb24= KHN0ZA== CXY= ICdc dXo= IHZlcnQ= IHZpY3Q= CXNlbGY= ICIk ODU= Lms= IGdyb3Vwcw== Z2l0aHVi bGFuZw== IG11dA== VE8= IHZl IFBsZWFzZQ== OwoKCg== YWNjZXNz IHsi cmVh IHJpc2s= aWNrZXI= b2dnbGU= CXdoaWxl QU5H LnNlbmQ= NzI= IHdvbWFu IGdldHM= IGlnbg== IElk X2xvZw== T05F IGV2aWQ= IEhhcg== X3N1Yg== IGVuZGw= IGluY2x1ZGVk KCkpOwoK IEFw aWdy IHNlbQ== IEJsYWNr ZG9j X3RhYmxl ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA== LXVw IGNhdXNl IC4u IHZhbg== X2RpY3Q= IGZvY3Vz SU5E Q0VTUw== LkxvZw== IG11bHRpcGxl aWRv IHJlZ2FyZA== LU0= YW5kbGVy b3Vyc2U= IGRlZw== LlU= IGFkZGl0aW9u IHZhcmlvdXM= IHJlY2VpdmU= 0LXQvQ== IEhU T2Jq REY= IGluY3JlYXNl IE9wZW4= XTs= IGNvbW1pdA== Pwo= YXRlZ29yaWVz YXRvcnk= c2hpcA== IE1pY2g= IGh0bWw= cm9taXNl IGxlYXZl IHN0cmF0ZWc= YXZlbg== IENvbnNvbGU= a25vd24= LW4= X0xF LmNvbXBvbmVudA== IGJyZQ== U2Vzc2lvbg== aWFuY2U= IGFsaWdu dHlwZWRlZg== X3Jlc3VsdA== IFdIRVJF LnNwbGl0 IHJlYWRpbmc= RkFVTFQ= IGNsbw== IG5vdGljZQ== X3By YXJ0ZXI= IGxvY2s= IHN0YW5kYXJk ZXRpYw== ZWxsb3c= IHBhZGRpbmc= IEhpcw== IHN0YXRlcw== X2Nhc3Q= KFA= YWE= IGludGVybmFs ZWFu IFBSTw== IEtleQ== IGVzcGVjaWFsbHk= bWluZw== IGNyb3Nz IG5hdGlvbmFs X29iamVjdA== ZmlsdGVy IHNjcmlwdA== LnVwZGF0ZQ== X2k= IEFzc2VydA== L2NvcmU= JSUlJQ== IHByb2JsZW1z aXN0b3I= IC49 IGFyY2g= IHdyaXR0ZW4= IG1pbGl0 TUVOVA== LmNo Y2FwZQ== IE11cw== X2NvbmZpZw== IEFQSQ== Zm9vdA== IGltYWdlcw== ZW5kbA== Lklu Rmlyc3Q= IHBsYXRmb3Jt LnByb3Q= T3B0aW9u c3Rl IFRPRE8= IGZvcmNl LmNvbnQ= CWVjaG8= IERhdg== UHRy KEI= UlQ= IEJhc2U= XVsn IGFubm91bmM= Y29uc29sZQ== IFB5 ZHM= LmFz IHByZXZlbnQ= YXBhbg== IHsn fTwv IFNlcnZpY2U= IFNlbg== YWRvcg== cHJvZmlsZQ== VG9w IGl0ZXI= cG8= SUVT SlNPTg== SUU= aWFudA== 44CB X2o= IFNlcHQ= X21hcA== YnVt KGNvbnRleHQ= IEhvbWU= aWFucw== R0I= NjM= IGxpdmluZw== IHBhdHRlcm4= KGlucHV0 aWNpZW50 OTk5 Q29yZQ== IGVudGl0eQ== IGludGVn Q2hhbmdlZA== IHVzZWZ1bA== LmluZm8= IHRvb2w= KGl0ZW0= IG9r IGZlZWQ= SVg= w6lz IE5ld3M= cmVtb3Zl ZXJyeQ== CQkJCQkJCQkJ aXBtZW50 YXJlcw== RG8= Q3VycmVudA== LmNvbnRlbnQ= Lkdyb3Vw dXN0cmFs INGB fSk= IHBvcHVsYXI= IHN0cmU= IG1ldGhvZHM= X0VSUk9S TGVmdA== Y2Fs YnNw LlRvU3RyaW5n IGRpcg== IGFsbG93ZWQ= IGltcGFjdA== IildCg== NjI= LmNvbmZpZw== IGVsZW1lbnRz IHByb3Rl IHRyYWlu LnRy cnM= IFJlcHVibGlj IFRhc2s= NjE= YXJpZXM= KEQ= KGdldA== 4oCmCgo= IHJlbGF0ZWQ= IHZlcnM= IHNpbA== ICIiOwo= IGNtZA== IHRlY2hub2xvZ3k= LndpZHRo RmxvYXQ= IFVzZQ== Qm9keQ== c2hvdWxk LmpvaW4= Rm9udA== bGx1bQ== eWNsZQ== IEJyaXQ= IG1pdA== IHNjYWxl IChf ZXJuZWw= IikpCg== IHNjb3Jl L3Y= IHN0dWRlbnQ= VUM= LnNob3c= IGF2ZXJhZ2U= RW5hYmxlZA== KGV4 Y29tbW9u aW1hdGlvbg== OkAi Y2hpZQ== IC4uLgoK cml2ZXI= IE1hcmNo Y2F0ZWdvcnk= Zmlu IGNvdXJ0 0LI= U2VydmVy IGNvbnRhaW5lcg== LXN0 X2Zvcg== IHBhcnRz IGRlY2lzaW9u b2Jz b3Vi bWl0dGVk ICQoJyM= IHNhdw== IGFwcHJvYWNo SUNF IHNheWluZw== IGFueW9uZQ== bWV0YQ== U0Q= IHNvbmc= ZGlzcGxheQ== T3Blcg== b3V0ZXM= IGNoYW5uZWw= IGNoYW5nZWQ= w6o= IGZpbmFsbHk= X251bWJlcg== UGxlYXNl 4KQ= b3Jpbmc= LXJl IGtpbGw= IGRydWc= d2luZG93 IGNvbnZlcnQ= b21icmU= IHdheXM= SGVscGVy IEZpcnN0 KF9f dXJpdHk= IFdpbmRvd3M= ZWVz IG1hdA== cmFwcGVy IHBsdXM= YW5nZXM= Il0u YXpvbg== L3Q= bGF0 YXN0ZQ== IHByb2ZpbGU= IHJlYWR5 I2lmbmRlZg== cm90ZQ== IHNlbnNl R2VuZXI= IENvbmZpZw== b215 IEp1bmU= IGxhdGVzdA== IHNhZg== IHJlZ2lvbg== IGRlZXA= d2l0Y2g= IFBhcms= fWA= IEZyb20= SUk= IGN2 IHJlYWNo IGNvdW50ZXI= IFdvcms= IFVSTA== IFVwZGF0ZQ== JywNCg== IGltbWVkaQ== Y2xvc2U= YWRvcw== ZmVycmVk IHdlZWtz dXJn IGRhbWFnZQ== IGxvc3Q= YW5p X2xv IGhpbXNlbGY= IGRvZw== KV0K 778= cGly dHQ= IHBhcGVy IHRoZW1z c2Vjb25k IHN0YWZm IElucHV0 Iis= IEZhY2Vib29r IGFsbG9j IHNjaGVk QUNF IHRoZW1zZWx2ZXM= IENvbXBvbmVudA== IGRyaXZlcg== amE= KHBhdGg= IGNhdGVnb3J5 YWxscw== cHU= bGx1bWluYXRl IEFjdGlvbg== LmJ1dHRvbg== IEdM aXN0aWNz IG9pbA== IHN0b2Nr Pic= IGRlYWQ= VkFM UVVF KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq IGNoYXJn UmV0dXJu IGZ1bA== ZG9t IHJ1bGVz IG1vZGlmeQ== IGV2YWw= aGFt YXRlbWVudA== XDw= dWxh PUZhbHNl UkE= IGNvbnRhaW5z NzQ= IHN0YWNr bWFy IHt9Cg== IHVuZGVmaW5lZA== QXNz IENoaW5h dmV5 Kgo= IHBsYXlpbmc= KS8= YWN0b3I= IGJvdHRvbQ== bGllcg== IE51bWJlcg== IGNvdXBsZQ== REM= IFNP Z29y LnNldFRleHQ= c3VjY2Vzcw== Y29tbWFuZA== RmlsdGVy IE91cg== X2l0ZW0= IGN0eA== IHJvYWQ= VmVyc2lvbg== Y2FzZQ== dXJ0 YXZpb3I= eWNo c2VtYmx5 IFByb2R1Y3Q= IGhlbGQ= YWZl IGluY2x1ZGVz PHF1b3Rl IGF2b2lk IEZpbg== IE1vZA== IHRhYg== YW5v w7E= aXBwaW5n LWU= IGluc2VydA== dGFyZ2V0 Y2hhbg== Lk1vZGVs SU1F XAo= IG1hY2hpbmU= YXZ5 IE5P IEludGVy IG9wZXJhdGlvbg== bW9kYWw= VGFn XTo= IHByb2R1Y3Rpb24= IGFyZWFz IHJlbg== X2Zyb20= bmJzcA== IG9wZXJhdG9y bWVu YXBwZWQ= X3Blcg== emVu KCIu LnNhdmU= PSJ7ew== IHRvcg== KHJlc3BvbnNl IGNhbmRpZA== IGNvbnY= YWlsZWQ= IExpYg== Y29tcA== dXJh 77+9 IEhlcmU= IGFyZ3VtZW50 aG9vZA== IGVzdGFibGlzaA== b2dyYXBoeQ== IG9uQ2xpY2s= YW1iZGE= IHNjaA== IG1vdmll IHNlYw== IGFjdGl2aXR5 2Kc= IHNxbA== X2FsbA== aW5jaXA= IHByb3ZpZGVz IHN5cw== YWNrZXQ= IHdhc24= IHVzZXM= IEZ1bmN0aW9u Lmdvb2dsZQ== IFJlc3VsdA== ODQ= VmlzaWJsZQ== YWdtYQ== ZWxjb21l IFN5 IENlbnQ= QUxTRQ== YWNpw7Nu RVhU IGxpY2Vuc2U= IExvbmc= IGFjY29t IGFiaWxpdHk= LmhlaWdodA== QWN0aXZl b2xvZ2ljYWw= b2x5 KSks LlNl IHBhcmFtZXRlcg== cHJpdGU= QUJJTElUWQ== LnNlcnZpY2U= IEdyb3Vw X3F1ZXJ5 IEl0ZW0= aW5pbmc= IGp1ZA== aW1z Zml4 aW5kZXI= YWdyYW0= IGZ1bmN0aW9ucw== IGV4cGVyaQ== IEVt IHJvdA== IHBlbg== LmJ0bg== IEFT I2lmZGVm IGNob2ljZQ== IFBhZ2U= X1BSTw== UVU= 5Y8= YW50aXR5 wq0= d29yZHM= IHJlYWRvbmx5 IGZsZXg= cHJvdGVjdGVk IEFueQ== IGNoYXJhY3RlcnM= ZW5jZWQ= IEp1bHk= aWxlcg== Q2FyZA== dXJhbmNl IHJldg== LmV2ZW50 YWx5 MTMw IHdvbmRlcg== IFBvcnQ= IGxlZ2Fs cm9sZQ== IHRlbg== IGdvZXM= TVA= d2hpdGU= KToNCg== KSkNCg== IHJlZmVyZW5jZQ== IG1pcw== IFByb2plY3Q= aWNrcw== PiY= Q09O IHJlcGw= IHJlZ3VsYXI= U3RvcmFnZQ== cmFtZXdvcms= IGdvYWw= IHRvdWNo LndpZGdldA== IGJ1aWx0 ZGVz UGFydA== KHJl IHdvcnRo aGli Z2FtZQ== OTE= MTky INCy YWNpb24= IFdoaXRl KHR5cGU= KGA= ODE= IG5hdHVyYWw= IGluag== IGNhbGN1bA== IEFwcmls Lkxpc3Q= IGFzc29jaWF0ZWQ= CVN5c3RlbQ== fn4= PVs= IHN0b3JhZ2U= IGJ5dGVz IHRyYXZlbA== IHNvdQ== IHBhc3NlZA== IT0= YXNjcmlwdA== Lm9wZW4= IGdyaWQ= IGJ1cw== IHJlY29nbg== QWI= IGhvbg== IENlbnRlcg== IHByZWM= YnVpbGQ= NzM= SFRNTA== IFNhbg== IGNvdW50cmllcw== YWxlZA== dG9rZW4= a3Q= IHF1YWw= TGFzdA== YWRvdw== IG1hbnVmYWN0 aWRhZA== amFuZ28= TmV4dA== eGY= LmE= IHBvcm5v IFBN ZXJ2ZQ== aXRpbmc= X3Ro Y2k= PU5vbmU= Z3M= IGxvZ2lu YXRpdmVz J10pOwo= xIU= IGlsbA== SUE= Y2hpbGRyZW4= RE8= IGxldmVscw== IHt7 IGxvb2tz ICIj VG9TdHJpbmc= IG5lY2Vzc2FyeQ== ICAgCg== Y2VsbA== RW50cnk= ICcj IGV4dHJlbQ== U2VsZWN0b3I= IHBsYWNlaG9sZGVy TG9hZA== IHJlbGVhc2Vk T1JF RW51bWVy IFRW U0VU aW5x UHJlc3M= IERlcGFydG1lbnQ= IHByb3BlcnRpZXM= IHJlc3BvbmQ= U2VhcmNo YWVs IHJlcXU= IEJvb2s= Lwo= KHN0 IGZpbmFuY2lhbA== aWNrZXQ= X2lucHV0 IHRocmVhdA== KGlu U3RyaXA= 7J0= w6fDo28= NzE= IGV2aWRlbmNl KSk7 IEJybw== IFtdOwo= IG91 YnVm U2NyaXB0 ZGF0 IHJ1bGU= I2ltcG9ydA== PSIv U2VyaWFs IHN0YXJ0aW5n W2luZGV4 YWU= IGNvbnRyaWI= c2Vzc2lvbg== X25ldw== dXRhYmxl b2Jlcg== ICIuLw== IGxvZ2dlcg== IHJlY2VudGx5 IHJldHVybmVk DQ0K KSkpCg== aXRpb25z IHNlZWs= IGNvbW11bmlj ICIu IHVzZXJuYW1l RUNU RFM= IG90aGVyd2lzZQ== IEdlcm1hbg== LmF3 QWRhcHRlcg== aXhlbA== IHN5c3RlbXM= IGRyb3A= ODM= IHN0cnVjdHVyZQ== ICQoIiM= ZW5jaWVz YW5uaW5n IExpbms= IFJlc3BvbnNl IHN0cmk= xbw= IERC 5pc= YW5kcm9pZA== c3VibWl0 b3Rpb24= OTI= KEA= LnRlc3Q= ODI= CgoKCgoKCgo= XTsNCg== IGRpcmVjdGx5 ICIl cmlz ZWx0YQ== QUlM KXsNCg== bWluZQ== ICAgICAgICAgICAgICAgICAgICAgICAgICA= KGs= Ym9u YXNpYw== cGl0ZQ== X19f TWF4 IGVycm9ycw== IFdoaWxl IGFyZ3VtZW50cw== IGVuc3VyZQ== UmlnaHQ= LWJhc2Vk V2Vi IC09 IGludHJvZHU= IEluc3Q= IFdhc2g= b3JkaW4= am9pbg== RGF0YWJhc2U= IGdyYWQ= IHVzdWFsbHk= SVRF UHJvcHM= Pz4K IEdv QE92ZXJyaWRl UkVG IGlw IEF1c3RyYWw= IGlzdA== Vmlld0J5SWQ= IHNlcmlvdXM= IGN1c3RvbWVy LnByb3RvdHlwZQ== b2Rv Y29y IGRvb3I= IFdJVEhPVVQ= IHBsYW50 IGJlZ2Fu IGRpc3RhbmNl KCkpLg== IGNoYW5jZQ== IG9yZA== Y2FtZQ== cHJhZ21h IHByb3RlY3Q= cmFnbWVudA== IE5vZGU= ZW5pbmc= 0Yc= IHJvdXRl IFNjaG9vbA== aGk= IG5laWdoYg== QWZ0ZXI= bGljaXQ= IGNvbnRy IHByaW1hcnk= QUE= LldyaXRlTGluZQ== dXRpbHM= IGJp UmVk LkxpbnE= Lm9iamVjdA== IGxlYWRlcnM= dW5pdGllcw== IGd1bg== b250aA== IERldg== RklMRQ== IGNvbW1lbnRz X2xlbg== YXJyb3c= YW1vdW50 UmFuZ2U= c2VydA== R3JpZFZpZXc= IHVwZGF0ZWQ= IE1v IGluZm9ybQ== b2NpZXR5 YWxh QWNjZXNz IGhhYg== IGNyZWF0 X2FyZw== IEphbnVhcnk= IERheQ== IikNCg== dXBsZQ== ZG9jdW1lbnQ= Z29yaXRo bWVudQ== IE92ZXI= YmI= LnRpdGxl X291dA== IGxlZA== dXJp ID8+PC8= Z2w= IGJhbms= YXltZW50 CXByaW50Zg== TUQ= IHNhbXBsZQ== IGhhbmRz IFZlcnNpb24= dWFyaW8= IG9mZmVycw== aXR5RW5naW5l IHNoYXBl IHNsZWVw X3BvaW50 U2V0dGluZ3M= IGFjaGll IHNvbGQ= b3Rh LmJpbmQ= QW0= IHNhZmU= U3RvcmU= IHNoYXJlZA== IHByaXY= X1ZBTA== IHNlbnM= KXs= IHJlbWVtYmVy c2hhcmVk ZWxlbWVudA== IHNob290 VmVydA== Y291dA== IGVudg== X2xhYmVs ID4K cnVu IHNjZW5l KGFycmF5 ZGV2aWNl X3RpdGxl YWdvbg== XQ0K YWJ5 IGJlY2FtZQ== Ym9vbGVhbg== IHBhcms= IENvZGU= dXBsb2Fk cmlkYXk= IFNlcHRlbWJlcg== RmU= IHNlbg== Y2luZw== Rkw= Q29s dXRz X3BhZ2U= aW5u IGltcGxpZWQ= YWxpbmc= IHlvdXJzZWxm LkNvdW50 Y29uZg== IGF1ZA== X2luaXQ= Lik= IHdyb3Rl MDAz Tkc= LkVycm9y 5Ls= LmZvcg== IGVxdWFs IFJlcXVlc3Q= IHNlcmlhbA== IGFsbG93cw== WFg= IG1pZGRsZQ== Y2hvcg== MTk1 OTQ= w7g= ZXJ2YWw= LkNvbHVtbg== cmVhZGluZw== IGVzY29ydA== IEF1Z3VzdA== IHF1aWNrbHk= IHdlYXA= IENH cm9wcmk= aG8= IGNvcA== KHN0cnVjdA== IEJpZw== IHZz IGZyZXF1 LlZhbHVl IGFjdGlvbnM= IHByb3Blcg== IGlubg== IG9iamVjdHM= IG1hdHJpeA== YXZhc2NyaXB0 IG9uZXM= Lmdyb3Vw IGdyZWVu IHBhaW50 b29scw== eWNs ZW5jb2Rl b2x0 Y29tbWVudA== LmFwaQ== RGly IHVuZQ== aXpvbnQ= LnBvc2l0aW9u IGRlc2lnbmVk X3ZhbA== YXZp aXJpbmc= dGFi IGxheWVy IHZpZXdz IHJldmU= cmFlbA== IE9O cmljcw== MTYw bnA= IGNvcmU= KCkpOw0K TWFpbg== IGV4cGVydA== CQkNCg== X2Vu IC8+ dXR0ZXI= SUFM YWlscw== IEtpbmc= Ki8KCg== IE1ldA== X2VuZA== YWRkcg== b3Jh IGly TWlu IHN1cnBy IHJlcGU= IGRpcmVjdG9yeQ== UFVU LVM= IGVsZWN0aW9u aGFwcw== LnByZQ== Y20= VmFsdWVz ICIK Y29sdW1u aXZpbA== TG9naW4= aW51ZQ== OTM= IGJlYXV0aWZ1bA== IHNlY3JldA== KGV2ZW50 IGNoYXQ= dW1z IG9yaWdpbg== IGVmZmVjdHM= IG1hbmFnZW1lbnQ= aWxsYQ== dGs= IHNldHRpbmc= IENvdXI= IG1hc3NhZ2U= CWVuZA== IGhhcHB5 IGZpbmlzaA== IGNhbWVyYQ== IFZlcg== IERlbW9jcg== IEhlcg== KFE= Y29ucw== aXRh ICcu e30= CUM= IHN0dWZm MTk0 IDoK IEFS VGFzaw== aGlkZGVu ZXJvcw== SUdO YXRpbw== IEhlYWx0aA== b2x1dGU= RW50ZXI= Jz4= IFR3aXR0ZXI= IENvdW50eQ== c2NyaWJl ID0+Cg== IGh5 Zml0 IG1pbGl0YXJ5 IHNhbGU= cmVxdWlyZWQ= bm9u Ym9vdHN0cmFw aG9sZA== cmlt LW9sZA== IERvd24= IG1lbnRpb24= Y29udGFjdA== X2dyb3Vw b2RheQ== IHRvd24= IHNvbHV0aW9u dWF0ZQ== ZWxsaW5n XS0+ b3Rlcw== ZW50YWw= b21lbg== b3NwaXRhbA== IFN1cA== X0VO IHNsb3c= U0VTU0lPTg== IGJsdWU= YWdv IGxpdmVz IF4= LnVu aW5zdA== ZW5nZQ== IGN1c3RvbWVycw== IGNhc3Q= dWRnZXQ= 77yB aWNlbnM= IGRldGVybWlu U2VsZWN0ZWQ= X3Bs dWV1ZQ== IGRhcms= Ly8KCg== c2k= dGhlcm4= IEphcGFu L3c= UFU= IEVhc3Q= b3ZpZQ== IHBhY2thZ2U= IG5vcg== IGFwaQ== Ym90 Il07Cg== X3Bvc3Q= dWxhdGU= IGNsdWI= JykpOwo= IGxvb3A= UElP aW9uZQ== c2hvdA== SW5pdGlhbA== IHBsYXllZA== cmVnaXN0ZXI= cm91Z2h0 X21heA== YWNlbWVudA== bWF0Y2g= cmFwaGljcw== QVNU IGV4aXN0aW5n IGNvbXBsZXg= REE= LkNo LmNvbW1vbg== bW8= ICcuLi8uLi8= aXRv IGFuYWx5c2lz IGRlbGl2ZXI= ICAgICAgICAgICAgICAgIAo= aWR4 w6A= b25nbw== IEVuZ2xpc2g= PCEtLQ== IGNvbXB1dGVy RU5TRQ== IHBhcw== IHJhaXM= SGFzaA== IG1vYmlsZQ== IG93bmVy RklH ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg dGhlcw== IGF0dHI= d2Q= LnRpbWU= YXdu IHRyZWF0bWVudA== IEFj LlZpZXc= aW1wbA== bW9yZQ== cGFzcw== IGhh LmZyb20= IGxlYWRpbmc= RkZGRg== KGVycm9y LnVp YXRhcg== YWRlcnM= ZGF0ZXM= IHp1 IGZsb3c= VGFyZ2V0 IGludm9sdmVk IGlv cGFyc2U= JF8= aGVzdA== LmludA== LWl0ZW0= YXN5 U3A= IHNoaWZ0 TlQ= IHRm X1RS LndlYg== Q1M= IH0p IGV5ZXM= MTI1 MTA1 X3o= Jyk7DQo= aWZvcm4= IHtA IG5pY2U= Lmxpc3Q= ICAgIA0K IGZsb29y IHJlZGlyZWN0 IFVL KFsn IHdpc2g= IGNhcHQ= bGVnYWw= IElP IHN0YWdl LlN0cmluZw== IEFmcg== aWdlbg== IFNI RGVsZXRl ZWxscw== IHNvbGlk IG1lZXRpbmc= IHdvcmtlZA== IGVkaXRvcg== aW55 0Lw= X3JlYWQ= Lklk ZWZm T2Zmc2V0 Y2hh VVNFUg== CQkgICA= aXBwZWQ= IGRpY3Q= IFJ1bg== LmhwcA== IGFuZw== eG1s aW1wbGU= IG1lZGljYWw= X3Rva2Vu Y29ubmVjdA== IGhvdXI= IGNvbnRyb2xsZXI= X21lc3NhZ2U= VUlE R3I= YW5kZWQ= X0NI IGJvb2tz IHNwZWFr YW1pbmc= IG1vdW50 UmVjb3Jk CXN0cnVjdA== LldlYg== b25kb24= IC8vCg== IGZlbHQ= LkF1dG8= aWRnZQ== X3Bvcw== UFI= IG1vZGVybg== Q29sbGVjdGlvbg== X21zZw== Q0Q= IExv IHNlY29uZHM= aWJseQ== LmVxdWFscw== IGludGVybmF0aW9uYWw= I3ByYWdtYQ== b290aA== V3JpdGVy aWF0ZQ== IGNlbGU= IEJpdA== aXZv aXZlcnk= cmQ= SEVDSw== IGNhY2hl LmNvdW50 IHJvbGw= LlJlYWQ= MTA4 UkVE IHNldHVw aXpvbnRhbA== bW9kZWxz YXJndg== IGNvbnNpZGVyZWQ= PSIuLi8= c2V0dGluZ3M= IFJlbA== IGdyb3d0aA== IG1peA== IFdhc2hpbmd0b24= IHBsdA== IElN 4bo= IHR1cm5lZA== IERhdGVUaW1l IFdlZA== KHVybA== ICIt IGxldHRlcg== QXN5bmM= ICAgICAgICAgICAgICAgICAgICAgICAgICAgIA== IE9jdG9iZXI= X2xpbmU= IGF0dGVudGlvbg== IGNvbGxlY3Q= IEhhc2g= IGltYWc= VHJlZQ== IHNpdHVhdGlvbg== ZXR0ZQ== X25v SVZF IHZvbg== LnRhcmdldA== IGtub3dsZWRnZQ== IGRyaXZl LnBvc3Q= IGJsb29k IGNpdA== cHJpbWFyeQ== IGNvbmZpZ3VyYXRpb24= dGVl IHBob3Rv aXNvZGU= VHJhY2U= IGdhdmU= IHNob3Q= IEFpcg== IG1vdGhlcg== cHJpY2U= IG1vcm5pbmc= KSl7Cg== LXg= IHRyYWRl IGRlc2M= ICYmCg== IHBhcmVudHM= QXBp 5Yg= dGVk d2Vy IOY= IHN5 IEtl UGFyc2Vy 5YU= YW5jeQ== IHBpZWNl aWZvcm5pYQ== dG9TdHJpbmc= cmFu aWRpbmc= UFRJT04= Y29tZXM= L2xpYw== LmNsaWVudA== RWw= TG9uZw== IHByb2Zlc3Npb25hbA== cnVwdA== dmE= IGNvbXBsZXRlbHk= IHByYWN0aWNl MDAy IHNlbGVjdGlvbg== UmVt aW5p IGNhbQ== UkVF IHNpdGVz cGE= QVRVUw== 0YHRgg== YXJyYW50 Kig= X0tFWQ== IEJ1dHRvbg== IEZyaWRheQ== c2VxdQ== IHJlYWRlcg== IG1lc3NhZ2Vz 6K8= IGJ1Zg== S2U= IG5vdg== SFA= TXNn YWxpZ24= YXJpbHk= ICcs X3dpdGg= IGRhcw== IGhlYXJk YXRvbWlj cmlhbA== KVs= IGRpc2U= QGVuZA== IGdvbGQ= IGZhaXI= IHNhbGVz LkJ1dHRvbg== c3RyaWN0 c2F2ZQ== IG1lYXN1cmU= ICIr ZWNhdXNl Vmlld0NvbnRyb2xsZXI= IFRhYmxl LnBhcmFt IGRlY2lkZWQ= KCgo SU5GTw== IG9wcG9ydHVuaXR5 VGU= SUNFTlNF Y2NvcmRpbmc= a2k= IFVO IGNvbnRhaW4= IG1hbmFnZXI= IHBhaW4= IEZpcmU= cm9tZQ== IHBsYW5z Rm91bmQ= bGF5 IERlY2VtYmVy IGluZmx1 w7o= cmVuY2g= ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg YXppbmc= YnJpZWY= Y2FsbA== d29vZA== IGxvYWRlZA== IGdyYW5k L2Y= aW1w X1U= MTI3 U1RS 4oCi IGNyZWRpdA== LkNvbG9y b3JnZQ== UVVFU1Q= IGRpZmZlcmVuY2U= IFBD d2FyZ3M= IHB1Yg== dW5kYXk= IGZyYQ== Lm1heA== IHRyaWVk YW5uZWxz c2VuZA== IHJlcG9ydHM= IGFkdWx0 5Lo= IGNvbnNpc3Q= IFN0cmVldA== IFByb2dyYW0= U1FM TWF0cml4 b3VuY2ls LUE= CXc= IHdob3Nl IHJlbGln IFNleA== IGdpdmVz bm9uZQ== Lm1lc3NhZ2U= KEc= LmF3dA== LXJpZ2h0 IE5vdmVtYmVy ZWxsaWc= MzYw dXRpdmU= xIM= b3Zlcm4= IGVhc2lseQ== IGlkZWFz MTA0 INC9 L2Nzcw== bHlpbmc= ZWxsZQ== Q2Fu X2NvbG9y 0L7Qsg== IHBhaXI= bmd0aA== IHNwbGl0 MTQw ZHJvcA== YXJ0eQ== b25h IGNhcGl0YWw= IGhlYXI= IGV4aXN0cw== CWxvZw== ZW1v UnVu b2k= IHBhcnNlcg== IE1ldGhvZA== IGVkdWNhdGlvbg== W2s= IGxpYnJhcnk= PiI7Cg== X1VO CXN0ZA== b2RlZA== IGNhbGxz aGVyZQ== UmVs IGJyYW5k YmFja2dyb3VuZA== Z2E= X2FkZHJlc3M= X3BhcmFtcw== Q2F0ZWdvcnk= MTAz IEluZGlh X2V2ZW50 IGluZw== UmVuZGVy LmNs dW1weQ== IHBldA== RkM= IEFudA== RXh0 IGNoYXJnZQ== ZW5lZA== Z3JhZA== RU8= IGRlcGVuZA== IC4KCg== ZnJhbWU= IGRm IGh1Z2U= IFBBUlQ= ZWRz Ozs= IEFN IGJhc2lj IExldA== bGljaA== IGFybQ== IHN0YXI= IGZlZGVyYWw= V29yaw== IGNhcnJ5 IElzcmFlbA== KG9iag== PXt7 IHNhdmVk IHN5bg== IGNvbnN0YW50 VkVOVA== IHBvc2l0aXZl IGNvbmR1Y3Q= IHNraW4= IGVhcmxpZXI= IGxheW91dA== IElQ T1VS IHRpbQ== c3R5bGVzaGVldA== X2Ns IENhcmQ= Kyspewo= IHRlbXBlcg== IERhdmlk CXRyeQ== LmRhcnQ= IHdhbnRz IHBpY3R1cmU= IHZpZGVvcw== IENvbW0= aXNpb25z X01BWA== TWFwcGluZw== LWNvbnRlbnQ= IEVhcg== LWRl IHByZW0= YnJ1YXJ5 IGNvbXBvbmVudHM= IHRocm91Z2hvdXQ= IHB1bGw= IHBhZ2Vz ZW50ZQ== cmVzcG9uZA== IGdhcw== Y3JpcHRvcg== IGVkZ2U= IGJvdW5k QUNU KioqKioq IGNyZWF0aW5n IENI IG51bGxwdHI= QnI= Kyc= LmNv Pjo6 IGxlYXJuaW5n Lkxlbmd0aA== X1NI IHBhdGllbnRz QUlO IGtpZHM= IGNvbWZvcnQ= IHNob3du dWdpbnM= IEJhY2s= ZWxsYQ== X0NM IGxhdA== IGRpc3BhdGNo IGNsYXNzZXM= LmF0 LmJlZ2lu IHN1Y2Nlc3NmdWw= YmFu IG9idGFpbg== IFNs IGxhY2s= aXRlcmF0b3I= VGhyZWFk KHNpemU= IG5vbmU= Lmhhcw== X1g= c29ydA== bmFw cGV0 Ymlu NzAw IENhbmFkYQ== VGhleQ== IGRhbnM= IE1hdA== PHRk IGhhaXI= ICcnLAo= IGN1 IGxhd3M= bGV0ZWQ= cGVk IHBvdw== IGtuZXc= X0NPTQ== Xyw= IE1hZw== aWRlbnRz KHJlcQ== ICks LWNlbnRlcg== MTkw IHdpZGU= IEF1dGhvcg== c3RhbnRz IGpvYnM= IG1hdGg= ZXRpbWVz Qm9vbGVhbg== IHNjb3Bl X2lz IG1lYXM= IGtleXM= ZWxheQ== IGV4YWN0bHk= Jz0+Jw== IFBhdWw= bWFz CXByaW50 KGxlbg== ZmQ= ICk7 LkV2ZW50 cWxp aXJpdA== aWVsZHM= b21hbg== IFRvcA== IHZvdGU= IG1hc2s= IHRoZW1l LQo= IHByb3Bz IGZpbmU= IHdyaXRlcg== X29mZnNldA== Y2Fy IGFsdGVybg== IGNvcHlyaWdodA== IGRlc3Ryb3k= cHBlcg== IGdlbmVyYXRl cHBlZA== 4oCZZA== ICAgICAgCg== bWFrZQ== IFNob3c= IGJyb3dzZXI= IGZhdm9yaXRl IGNhcmVlcg== IGhhcHBlbmVk KGNoYXI= IHJlY29tbWVuZA== IGxpdGVy LmZpbHRlcg== Z3JhZGU= IMKj UGhvbmU= b21z IG5hbWVk LWxhYmVs aXBv IE90aGVy IHBhbmVs IHJvY2s= U2NhbGU= CWFzc2VydA== 0LQ= IHRydXN0 ZnJvbnQ= IGRlbW9u QXI= TmV0 IGVjb25vbWlj Zm9vdGVy IHJhY2U= KG5vZGU= IE9wdGlvbg== c3BsaXQ= IHBoeXNpY2Fs aWZlc3Q= IHJlbW92ZWQ= Lmh0dHA= KSksCg== IGxvb2tlZA== Jzs= ZGluZw== Z2VzdA== YXR1cmRheQ== L2xpY2Vuc2Vz UHJpY2U= IGRybw== IHRvd2FyZHM= IHVucw== IENM CXN0YXRpYw== IHJvd3M= IGRlZmluZQ== LnJlcGxhY2U= IGZhdGhlcg== IERlc2lnbg== YXNzaWdu bXV0 RGV2aWNl RGlk JykpCg== b21ldHJ5 YXlsb2Fk IGhpc3Rvcg== IFBhcmFt IEJvb2xlYW4= IG5hdHVyZQ== IGpz IG5hdGlvbg== aWg= IGRpc2NvdmVy c2Vt SGFuZGxl CXI= IFRlY2hu IHdhbGw= eyQ= QHByb3BlcnR5 ICIuLi8= IGV4YW0= LmRyYXc= b3BwaW5n IG5lYXJseQ== IGNvb2w= IGluZGVwZW5k UkVT IGhhbmRsZXI= IE1vbmRheQ== IHN1bg== U3R5bGVz b3VzbHk= IAk= dmVzdA== RGlzcGxheQ== KHk= YXRpY2FsbHk= IHByZWRpY3Q= eWluZw== IHNvbWV0aW1lcw== Il0K IGRyaW5r IGJ1bA== aWZpY2F0aW9ucw== Lmluc2VydA== LnJlZw== IHRlc3Rz QWxpZ25tZW50 IGFsbGVn IGF0dHJpYnV0ZQ== IE5vdGU= IG15c2VsZg== YXJ0cw== Tm93 IGludGVyZXN0aW5n bGllbnRz IHBvcHVsYXRpb24= IENhbGlmb3JuaWE= Ikk= 5bk= IGdyZWF0ZXI= dWVzZGF5 IHRob3Vz IGNvc3Rz IGxhdW5jaA== XEh0dHA= a2Vy YmFuZA== IFBsYXk= IGJhbmQ= LnNoYXBl ZXNvbWU= YXJ0aWNsZQ== LnJm IHdlcg== w6Fz ZW1iZXJz dXNy QkE= aWNhbg== ZXR0 dmFsaWRhdGU= dWx0aQ== IGltbWVkaWF0ZWx5 emVy IGZpZ3VyZQ== b2Vz ZWxsZXI= aXJjbGU= IFNpZ24= LmRi IHJhbms= Qnl0ZXM= IHByb2plY3Rz X3JlYw== VUxBUg== QVBJ IExpbmU= UG9ydA== IHBvbGw= IGdpdmluZw== aWRlbmNl LS0K IHBsb3Q= aWNpYWw= IHdhcnJhbnQ= SVRJT04= IERvdWJsZQ== IGJpbGxpb24= Z29yaXRobQ== IGVxdWlwbWVudA== REFURQ== IEAi RUU= IHBsZQ== aWF0aW9u IGhlYWRlcnM= IHByb2NlZA== LkNvbXBvbmVudE1vZGVs IE9iYW1h IHBh IEJlc3Q= aW1hdGVseQ== LmdldFN0cmluZw== Llw= bXBsb3k= IHJhdw== X2Jsb2Nr dW5kcmVk In0sCg== MTEy Lkdyb3VwTGF5b3V0 IGJyb3VnaHQ= TlNTdHJpbmc= dGhyb3c= Y3JlYXRlZA== Lk5ldw== X3ZpZXc= Q1A= ZXBz T3A= IGdyYXRpcw== ICci IGludGVydmlldw== IiIiCg== IHBhcnRpYWw= IGFyaWE= YmluZw== QXV0aG9y Qm9vaw== IFBhdA== dW1hbg== VXNlcnM= cGx1cw== MTkz IERpcmVjdA== dmVudWU= YWxwaGE= VUNDRVNT IENhbGw= ICk7DQo= aW1hdGVk IHJlbWFpbg== IGFudGk= IExvbmRvbg== IHNhZmV0eQ== UE9TRQ== b2xlcw== Y29udHJvbGxlcg== Qnl0ZQ== IENvdXJ0 IFBoaWw= IEFzc29jaQ== ZW5h 5ZA= X1NUUg== Y29pbg== cmVzaG9sZA== IGJhdGNo X0NsaWNr ZW50aWNhdGlvbg== Pic7Cg== ZW50eQ== IGJlZ2lubmluZw== IHplcm8= IENvbnZlcnQ= IHRlcnI= IHBhaWQ= IGluY3JlYXNlZA== Y2F0Y2g= LXNpemU= MTE1 YWN0aXZpdHk= ZXF1YWxz IHF1ZXVl ICIn IEludGVybmF0aW9uYWw= IGbDvHI= dXJzZGF5 IHNjaWVudA== YWxsb3c= YXhpcw== IGFwcHJvcHJp ZWRnZQ== IGlkeA== U3VjY2Vzcw== ZW50aWZpZXI= Olw= eGlz IG1heGltdW0= YXJrcw== IGJpcnRo KGluZGV4 IG1heWJl LnB5 ZmlsZXM= IGxpbWl0ZWQ= X2NoZWNr bG9vaw== cGxpZXM= IG1vdmVtZW50 J10u IGJyb2Fk IEJF IFVuaXR5RW5naW5l LmNwcA== IEV2ZXJ5 QWRtaW4= IGZhbnM= cGFyZWQ= CiAgICAK IGZvcmVpZ24= IHBhbg== IHRvdXI= IE9yZGVy IG1vdmluZw== IGF1Zg== Q2FsbA== Y2I= xZ8= dmVudG9yeQ== IFNxbA== IGZ1bGx5 Q2xpY2tMaXN0ZW5lcg== V09SRA== IGFubm91bmNlZA== KQ0KDQo= IGFncmVlZA== cmll IGVhcm4= X2xpbms= LmFycmF5 KHRleHQ= IG1hdGVyaWFscw== LHA= ZmZmZg== dmc= IMKp IHVubGVzcw== YWpheA== TE9H IHNleHVhbA== IFwi LXRpbWU= IGNvYWNo IHN1cHBvcnRlZA== IHBob3Rvcw== aWZvcm0= LkNyZWF0ZQ== KV0= cmllcg== IGRpYWxvZw== YXZlcg== aWdl KSs= X2lkeA== Ols= X21pbg== IENvbmc= IHByZXNzdXJl IHRlYW1z U2lnbg== YmVnaW4= cmlhbg== TkVTUw== TFM= IGltcHJvdmU= IFN1bmRheQ== IGRlZmluaXRpb24= aWdlcg== cm9sbGVycw== IHRoaW5raW5n VGVtcGxhdGU= LUY= IGVtZXJn cGxhdGVz IFVTQQ== LnNldFN0YXRl IEFsc28= cmV2 IGVuYWJsZQ== IENP UEVDVA== IGNvbmNlcHQ= KS0= IOKAog== IHNldHM= IG1lYW5pbmc= ZW1vbg== IENvbnM= Y21w ZWRlcg== YW5uZWQ= aWNlbnNlZA== IFN1cGVy IGRhaWx5 IG11bHRp X3U= IGNoYWxsZW5n X21vZGU= IFByb21pc2U= IHN0cmljdA== am8= aW50b24= KGxpc3Q= T25seQ== Pns= IHZlaGljbGU= 7ZU= IFBsYXllcg== MTA2 IERlbA== IHBvb2w= LnVybA== bmVzZGF5 KCk7DQoNCg== OTAw ICIpOwo= TG9jYWw= LiIpOwo= IG9yZ2FuaXphdGlvbg== cmVuZGVy IEFwcGxpY2F0aW9u IHN1bW1lcg== ZXhwZWN0ZWQ= TkE= IHJhcA== X29iag== IHN1cmZhY2U= IFBVUg== IH0sCgo= IHZhcmlhYmxlcw== KG1lc3NhZ2U= IG9waW4= LmJhY2s= 0LDQvQ== IHdvcmtlcnM= dm0= Q28= dWdodGVy IG1hc3Rlcg== ICIiLA== IHN0b3JpZXM= LlVzZXI= IGNlbGVicg== aW5lc2U= QlM= IENvbW1hbmQ= YXNoYm9hcmQ= IG9n a2c= LmltYWdl LnN0eWxl IHN0ZXBz IEJlbg== KGFyZ3M= NDA0 IFBlcnNvbg== LHk= IG9mZmljaWFscw== fAo= IHNraWxscw== dmM= IGJ1aWxkZXI= IGdhcg== QWNjb3VudA== IEF1dGg= 55Q= J10pCg== IEFU bm4= LkludA== U1NFUlQ= IGVmZmVjdGl2ZQ== TEVURQ== IHRvb2xz QVJE IGRpZ2l0YWw= MTkx RG91Ymxl IEZpbmQ= UkM= IGlubGluZQ== L3I= QVJBTQ== QVNL IGludGVudA== YWlnaHQ= X2FkZHI= IHJlcXVlc3Rz LmZpcnN0 IGRlYnVn IHNwZW50 KCkpKTsK xZs= IHByaW5jaXA= TG9nZ2Vy Y2x1ZGVz LnVzZQ== IHN1cnY= bWVkaWE= IEZlYnJ1YXJ5 IE1hYw== IG1pc3Npbmc= IHdpZmU= IHRhbGtpbmc= IE1ha2U= IGNhcnQ= IGxvY2F0ZWQ= RW5j LWE= Y2hyb24= IGNhcmRz IGd1eQ== IHBlcnM= IFllcw== YXRldmVy IEFuZw== b2xhcg== IEV2ZW4= IGFjY3Vy IFBvd2Vy IEdvbGQ= Y2xlYXI= UHJvY2Vzcw== IHJlY29yZHM= IGtpbGxlZA== LmNsZWFy IFdBUlJBTlRJRVM= IHB1cnBvc2U= cGFuZWw= SkVDVA== w61h IGV4ZXJj V1M= L0w= LmV4cG9ydHM= IF9fXw== IHNpbg== U2VydmxldA== IGTDqQ== LmRlbGV0ZQ== cm9rZQ== U2w= dWdo ZWFycw== IHBvaW50ZXI= IGhvcA== YWxsZXJ5 IG9icw== Y292ZXJ5 CWNoYXI= CQkJCQkJCQkJCQ== CWRlZg== b2NpdHk= aXRjaGVu dWxhdGlvbnM= IEZJVA== ICku c3RyYWludHM= dmVudGlvbg== IHJlcXVpcmVz IE9wZXI= TUU= T1VOVA== YWxsZXQ= IG5vcm0= SVJF ZXhhcw== IHByb2dyYW1z IHdlYWs= Jy4k dWluZw== CSAgICAgICA= IG1pbA== IGZpcm0= aW5pdGVseQ== X1ZBTFVF YXBzZQ== YXRpc2Y= IGRlbWFuZA== X21vZA== IGRlc2NyaWJlZA== IHBsYWNlcw== VklE IGFsb25l IGV4cG9ydA== IHZlYw== IE1heA== IGFjdGl2aXRpZXM= aWN0dXJlcw== Z2VuZXI= IG1h gqw= IGV4cHJlc3Npb24= Q2FsbGJhY2s= X2NvbnRlbnQ= IE1vc3Q= IHRlc3Rpbmc= RUM= Q0hBTlQ= IGFkanVzdA== LlRocmVhZGluZw== KGN0eA== IGFncmVl aWdoZXN0 IHVp IExhdw== Llk= Pjw/ IHBvZA== LWxn 4oCdCgo= IGRlc2NyaWJl IEV1cm9wZWFu LXNo IFBVUlBPU0U= T1JZ IGNvbnZlcnM= IElsbHVtaW5hdGU= IEF2 KGNo PyI= Y2hlbg== aW1h RG9jdW1lbnQ= IG9wZXJhdGlvbnM= d2lu CWZ1bmN0aW9u LkltYWdl IHNjZW4= L2g= IFND IGV4cGxv OiU= LyoqDQo= TkFNRQ== 5og= KHZhcg== IGRpcmVjdG9y T05H IHlpZWxk IGZlZXQ= IFNlYXJjaA== IEls IHJlc3RhdXI= ZHVj IGludGVnZXI= MTA3 ICcnOwo= IGhpZ2hseQ== Y2hlY2tlZA== IFBBUlRJQw== RVJDSEFOVA== 77yJ IG9wdGlt UXVldWU= IExJ aXRhdGlvbg== IHRyYW5zcG9ydA== aXNzaW9u ZmlsbA== dXNpb24= ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg CWJvb2w= LXRo dXB0 IGVzc2VudGlhbA== YW50ZWQ= IGJlbmVmaXRz CVM= JzsNCg== aWtp IGdpcmxz aWNlZA== YnVmZmVy XSs= IHNvY2tldA== IHByaWNlcw== IEZyZQ== IHNhdA== IHdvb2Q= TWVudUl0ZW0= QVJH IEFkbWlu T1dO ZGs= IHJlc2V0 IGZvcm1z INC4 5pY= IFR1ZXNkYXk= MTA5 IEluaXRpYWxpemVk X3RyYWlu b3Jhcnk= YXRlZ29y IGR0 VG90YWw= Y29uc3RydWN0 aWxpZXM= IGd1eXM= 0LXRgA== IGluc3RydWN0aW9u MDEw eWxlZA== IGludGVybmV0 ZXRhZGF0YQ== YWR5 ZmFjZXM= amVjdGlvbg== IEphY2s= IHJlY3Q= Wy0= IExlZw== IGRldmljZXM= T0M= ICoNCg== b3JhdGlvbg== ZXJ0YWlu IGd1YXJk b3N0cmVhbQ== IGVudW0= LmxheW91dA== ICI7Cg== dm9rZQ== IE9r SG9tZQ== KHRy RVRI IGRlbGF5 IHB1cmNoYXNl ZGM= IGFyZW4= X29uY2U= CQkJCQo= cm9y ZHJhdw== LnJ1bg== KG1vZGVs VGltZW91dA== bGlr IEFyZw== LmVu IGZpc2g= Y3B5 X2Zl RVJDSEFOVEFCSUxJVFk= KFg= X291dHB1dA== Pz8= IGpv YW5kYXJk IGRvbGw= ZXJyb3Jz X2Jhc2U= IFBBUlRJQ1VMQVI= IGxlYWRlcg== IGNvbXBhcg== IGRvdWI= IFZpcw== U3RhY2tUcmFjZQ== LUM= IFN0dWQ= c3RpdHV0ZQ== TW9yZQ== IERlc2NyaXB0aW9u V0FSRQ== YWRz INC6 YmluZA== PXNlbGY= ZW1wbG95 W24= LmFsbA== LUI= JiY= YWxt IGN1bHR1cmU= aG91c2U= IHN1ZmZlcg== ICcl IHN0cmFpZ2h0 IFN0YXI= dWRv IGRlZA== IENPTQ== IGNvbmZpcm0= IEdvb2Q= LnNj X19fX19fX19fX19fX19fXw== RFI= Q29uZmlndXJhdGlvbg== RGF0ZVRpbWU= IGFkdmVydA== IGNvdWxkbg== YXN5bmM= c3RhY2s= JykNCg== S2l0 IGhvdXM= IG1lY2hhbg== cmF0ZQ== MjA0 IGF1ZGlv CWNvdXQ= Y29yZXM= IHNwb3Q= IGluY3JlYXNpbmc= ICMj KSkp cG9pbnRz IGNvbXBhcmVk bGln IGJlaGF2aW9y IEJZ IEF0dA== Y3JhZnQ= aGVhZGVycw== ZXRl ZW5kcmVnaW9u IGRldGFpbA== VUxF IENvbW1vbg== CXByb3RlY3RlZA== c3Rvbg== IEZJVE5FU1M= IGZyZXNo Ij4KCg== LmV4YW1wbGU= YmVyZw== IG1vdmVk CWU= IFNhdHVyZGF5 IHBheWxvYWQ= xIc= KToKCg== IGJleQ== dXJlcg== PHNjcmlwdA== IHN5bWJvbA== IGFzc3Vt IHB1bA== RWZmZWN0 IGh1bmRyZWQ= VG9vbA== YWtlZA== Y29ubmVjdGlvbg== IHZvaWNl IHBk IHRyYW5zYWN0aW9u IGxpbmtz RXJy IEluZGlhbg== VEM= YXRhbG9n bmk= c2lnbg== PDwi amk= eWE= IGRlbW9uc3Ry dWxhdGVk LlN0 IGluc3RpdA== IGJvb3N0 IGNlbGxz b2xpYw== LlBybw== Ojwv RXZlbnRMaXN0ZW5lcg== aWZ5aW5n IERp b3Jyb3c= LmV4ZWN1dGU= IGNvbGxlZ2U= WW91cg== IGxhcmdlc3Q= LmRpcw== IHF1aQ== IGluZGl2aWR1YWxz X2J1ZmZlcg== IG5n U0E= IENvbnRyb2w= IHNpbmc= IHN1aXQ= ICAgIAk= U0c= IGp1bXA= IHNtYXJ0 b21h IEV4cA== ICct IGFzc2lzdA== IHN1Y2Nlc3NmdWxseQ== c3lz IENyZQ== X3JlZg== IFRodXJzZGF5 IGJ1cg== INC0 IGJleW9uZA== IG5vZGVz RGV0YWlscw== aW5jdA== IEphbWVz IGFmZmVjdA== ZXhjZXB0aW9u IHR5cGVvZg== KA0K LXNl IGZldGNo YCw= IGNydXNoZXI= fS4= IEJP U2hvdw== IHJhdGVz IGJvbg== LWljb24= IE1lZGlh UkVTUw== IFZhbGlk 0L7Quw== IGZ1Y2s= YWNrcw== IHN0dWRpZXM= TWU= IG93bmVycw== fWVsc2U= IGdyb3dpbmc= VmFyaWFibGU= IEJlbA== LnJhbmRvbQ== dmVtZW50 b255bQ== KEY= IEZBTFNF IHRvcmNo KHJvdw== aWdv c3RydWN0dXJl MTIx IGNlcnRhaW5seQ== RGVw IEdyZWVu cXVlc3Rpb24= IGFkZGluZw== IERldmVsb3A= X2RlZg== IG1hY2g= PSU= CQkg Y29uZHM= UHJvamVjdA== IHJlamVjdA== IM4= IHBvb3I= IGF3YXJl MTE0 IEJ1aWxk IEJyaXRpc2g= IE5F IG51bWVy cmVlcw== Y2xhaW0= IG1vY2s= IG9t IHNjcmU= T0xE LnBs ZWxlcg== IGNvcnJlc3BvbmQ= X0hF IGJpbmFyeQ== MTE2 X29yZGVy IFNRTA== IGFkdmFudA== IHByZXY= Lls= LmFzc2VydEVxdWFs cGxpZXI= YXJw IGNsb3NlZA== IGVuY291cg== IFFTdHJpbmc= YXVk IGRldmVsb3BlZA== IHBlcm1pc3Npb24= LmRlYnVn b3BlcmF0b3I= ICcK IHN5bQ== YXRpdmVseQ== w6ll LWNvbG9y IEdFVA== a3k= IGFsdGhvdWdo X3JlcXVlc3Q= X2VsZW1lbnQ= Li4uLi4uLi4uLi4uLi4uLg== X0RBVEE= IGFtYXppbmc= IHNi IERlZmF1bHQ= RXZlbnRz IGZhaWx1cmU= YWNsZQ== UHJvcGVydGllcw== IGRyZWFt IGRpc3Ry IGF1 IGdlbmVyYXRlZA== 5pU= IFRlYW0= VVNF IGluY29tZQ== IGV5ZQ== X25vdA== Il0s X2Zvcm0= U3VwcG9ydA== b3JkZXJz LlByaW50 dmlsbGU= IFdlZG5lc2RheQ== b2x2ZXI= IG9wcG9z aXNhdGlvbg== b2xh Q2xvc2U= PHA= X3dpZHRo SW52YWxpZA== eGI= IHN0cnVnZw== X2FjdGlvbg== IHR4dA== IFBhdGg= YWxhcg== IE1FUkNIQU5UQUJJTElUWQ== c2VydmljZQ== IE1pY2hhZWw= YWJsZVZpZXc= RGVidWc= b2tlcw== U2hl IGd1ZXNz IEphdmE= X1BBVEg= IHBhcnRpY3VsYXJseQ== IElJ IGRvbWFpbg== 5bm0 IHJlZHVjZQ== LWxlZnQ= cmVhbA== IGFwcGVhcnM= IGNvbW8= IFVuaXQ= IEdvdmVybg== YWxp YWxsZWw= IEpldw== X0k= IGNvcw== LmNvbG9y IEdsb2JhbA== IHRlbGU= YmVu X3RyYW5z IHJlYXNvbnM= IGVtYg== ZW5zaXR5 bGluZXM= b21pbg== U2NyZWVu 0LDRgg== cGVjdHM= Y2xpcA== Zm9v cmVudA== IGFm IGRhbmdlcg== aWxpbmc= TmFtZXM= T3Vy IGRpc3RyaWJ1dGlvbg== V2hpbGU= U0w= V3JpdGU= IGdvdG8= IGNvbG9ycw== IHBvd2VyZnVs a2lu IGRlcHRo ZXJjaWFs IENvbmdyZXNz IE1hcmtldA== RGI= dW5kZXI= IExhc3Q= w58= Z3JlZw== IHBvc3Rz X1VSTA== b3Rvcw== RG9u IG1pY3Jv IGFycmVzdA== 0L8= IChA IEhvdA== IEluZGV4 OyY= IyE= IE5vcg== IENhcA== LSg= IGludGVyZXN0ZWQ= cGVhcg== IHJlbnQ= IGFsYnVt b2xpY3k= Lmxhbmc= LnRyYW5z LmZvcm1hdA== IHsNCg0K cGhlcmU= IGF4aXM= IEJ1c2luZXNz ZXJzaXN0ZW5jZQ== dXJy IG1pbmltdW0= ZW5kb3I= IFNE MTEz IEludGVybmV0 5aQ= RXhw aXZlcnNl TU0= IG9idmlvdXM= IGJhc2lz IHNjaWVuY2U= IGJ1ZGdldA== aXphdGlvbnM= UEE= IGZsYWdz cHJldA== TE9DSw== IHZhcmlldHk= IHRydXRo ZHQ= IGdvbmU= IGJhdHRsZQ== PHN0ZA== IFNpbA== cmY= dWRh IGVyb3Q= IENhbQ== IHN0YXRpb24= ICc8Lw== Y2hlbWU= IFN1bg== IGZpbmlzaGVk IHNob3A= IEtvcmU= IGVpZ2h0 X1JFRw== TkQ= Piw= Ij48Pw== KG51bQ== CWlubGluZQ== VHJhbnNhY3Rpb24= Lk9u IG1haWw= cmV5 cmVzdWx0cw== IG5hdg== SU1JVA== X2lkcw== TWFrZQ== 5Yo= TW9kYWw= IExPRw== IFN1cg== IGluc3RhbmNlb2Y= IG92ZXJhbGw= IEluZm9ybWF0aW9u IGNvbnN0cnVjdGlvbg== X0ZJTEU= YnV0 IG1lZGlj IGR1cmF0aW9u aXRuZXNz YWdlbnQ= QVY= IHNldmVu b2xm IH19Cg== Il0sCg== MTcw MTIy IGNhbGxpbmc= IGFucw== dGhyb3dz b3Jpem9udGFs IHVzZVN0YXRl LmZs IFN0YXR1cw== IE9ubGluZQ== UlI= IFJpY2g= IEhpbGw= IGJyYWlu IGZvbGxvd2Vk MjQw ZW1pYw== IHNsaWdodA== IGluc3VyYW5jZQ== LkFycmF5 IGFic3RyYWN0 IFN1bQ== cmVkaXJlY3Q= b3duZXI= KG1zZw== IENsaW50b24= Tm9u CWV4 IHZvbHVtZQ== IEV2ZW50QXJncw== LUw= IERpbQ== IE1hcnQ= IGN1cnNvcg== IGltcGxlbWVudGF0aW9u dXJyZWQ= IGxhcmdlcg== KTsKCgo= Jys= LnRyYW5zZm9ybQ== IHVwbG9hZA== ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA== RHJhdw== bmVs CWZsb2F0 cXJ0 IE5ldHdvcms= IHRpdA== QXhpcw== LmFuZHJvaWQ= IGNvbXBsZXRlZA== IG11cg== IGNvbHVtbnM= eGM= IHN1cHBseQ== aW1pbmFs IHNwcg== PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ== IHVuaXRz KHU= bWk= cmVwbGFjZQ== W2tleQ== 4Lk= YW50aWM= IHBheW1lbnQ= LEI= IEFwcGxl Z2lu UmVxdWlyZWQ= Iys= bGFuZHM= IHNxdQ== IGZhY3Rvcg== ZGVj IHN0cmVuZ3Ro IGJveQ== IGJhbGFuY2U= IHNvdXJjZXM= c2NyZWVu LXRvcA== IEFtYXpvbg== IGhpZGRlbg== 0LXRgg== X2NsaWVudA== IGVhdA== LmRpc3BsYXk= IMK7 IHRyaWdnZXI= YW5hZ2Vy IHRybw== IGNsYWltcw== Zm9yZA== IENvbXBhbnk= IGdpZnQ= LDo= X2FwcA== aGFuZGxl IHByb2R1Y2U= L2xpYg== NTEy IC0q CXNldA== J107 YXJj YW5kZXI= IEVuZ2luZQ== IGF0dHJpYnV0ZXM= dGFzaw== PD0= KE4= IHdhcm0= d2hpY2g= IEZvcmU= YWdub3N0 bXlz IHRhbA== IFNhbA== Z2k= IFByaW50 IFRSVUU= INC+ LlVJ IGZsYXNo cm9wZXJ0eQ== LmxvY2F0aW9u IE1pbGw= Ymk= Y29udHI= LnJlcXVlc3Q= IFNhbQ== IG5lZ2F0aXZl a2l0 IHNldHQ= LnByaW50U3RhY2tUcmFjZQ== YWJl CWk= IGJ1cm4= IHNvY2lldHk= Q2FjaGU= IFNlY3VyaXR5 Lm1vZGVscw== IFdBUlJBTlRZ X3Vw Y2VpdmU= IGNsaWVudHM= LlRy IHByb3ZpZGluZw== IHJvdXQ= bWF0ZXJpYWw= IHx8Cg== IFNlcg== IE9mZmljZQ== RlRXQVJF ICck IGZvYw== IGV4Y2VsbA== IGNhdA== bm9ybWFs IGRldGVybWluZQ== CXVpbnQ= UGFuZQ== IGVtcGxveWVlcw== IFRleGFz IHRyYWZm IFJlcG9ydA== YW50YQ== IEJveA== IGRqYW5nbw== IHBhcnRuZXI= RUI= TElORQ== IGZlZWxpbmc= IGNpdmls KGZsb2F0 U3Fs IHdvdWxkbg== LmluaXQ= LmxlZnQ= LXY= X2xldmVs J30= QUY= IGxvYWRpbmc= IE9ubHk= IGNvb2tpZXM= IEds Q08= IHN0cmF0ZWd5 KCcuLw== IHNoaXA= cG9zZXM= IHNpZ25hbA== IGFscGhh LnBvcA== UmFkaXVz IHJlcGxhY2U= X0RJUg== Y291bnRlcg== YnNlcnZhYmxl ZWxh V2VpZ2h0 aGFzaA== Ym9zZQ== Zng= IEVtYWls IHJlZmVy bG9jYWxob3N0 X1JP aXF1ZXM= U3RlcA== IGFoZWFk KFZpZXc= IFNlcnZpY2Vz IEpzb24= ZXNzb3I= IHB1bg== IGFwcHJvcHJpYXRl YWtlcnM= b3Nlbg== cG9zaW5n IGFnZW50 ZmM= IHRyYW5zZmVy IGludmFsaWQ= IFJlc2VhcmNo VmVydGV4 IGdheQ== IGpvdXJuYWw= W3g= ICIiLAo= IFdlbGw= LlRhc2tz U3BlYw== IG9s IHNwZW5k IEF1c3RyYWxpYQ== TWF0Y2g= Lmp1bml0 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA== IE1BWA== aXphYmxl Y2x1c2l2ZQ== X3ZhbGlk IHF1YXJ0ZXI= eWFu MDA1 IEVkaXQ= YXJkZW4= PW5ldw== IGZyYWc= Qml0 emk= YWluZQ== dWRk Lk9iamVjdA== ZGVidWc= IGNhc2g= X0lN IGVlbg== IGNvbW1lcmNpYWw= IFZpZGVv bG9hZGVy IGZpeGVk IGFwcGxpY2F0aW9ucw== IF8s IFJ1c3NpYQ== aXRlY3Q= Xyg= IEJsb2Nr IHNhbg== IFRvbQ== IHBlcmhhcHM= IHNpZw== bGV2YW50 IGNvcnBvcg== YXRhc2V0 cm9uaWM= eGU= IGV0aA== U29tZQ== cG9w X09L IHRlbmQ= LlJlcw== X2FuZA== IHJldmlld3M= IHdpbGQ= MTE3 IGRlZ3JlZQ== Lk8= Lm9iamVjdHM= X2FyZ3M= bmls IGRpc2FibGVk UGFyZW50 IG5vdGVz ICIiCg== KHN0YXRl aXN0cmljdA== IGxvZ2dpbmc= LklP IE1hbA== RE0= IHhtbA== IFJvYmVydA== ZWxlbg== bGF5b3V0 Zm9s J10pKQ== LGI= IEplcg== ZmlsZW5hbWU= IGZhbg== IEN1c3RvbQ== PSIi IERpZQ== QnVuZGxl LnV0aWxz IHRyaXA= TUI= IHNvZnQ= X01PREU= IGFwcGxpY2FibGU= IHVwcGVy RVJWRVI= X2Fs X0xPRw== SGVyZQ== d3A= IFNlcnZlcg== IENsaWVudA== IGNoZW0= U2Nyb2xs IGhpZ2hlc3Q= IFNlbGVjdA== ICJA IFdoeQ== U2Vj aGVlbA== T3BlcmF0aW9u IGNvbm5lY3RlZA== aXJtZWQ= IGNpdGl6 IENoZQ== IGZvcmNlcw== IHd3dw== Um9vdA== QU5DRQ== TWFueQ== aWNpcA== cmdhbg== MjIw IFRvcg== IFByZXNz IE1vcg== LWxpbmU= dWxlZA== Plw= IHRodXM= IFJlZ2lzdGVy aG9s IENoaW5lc2U= IHBvc3RlZA== IG1hZ24= YWJpbGl0aWVz IGRpc2Vhc2U= IHJlbWFpbnM= IFByb2Y= LWZvcm0= IGNpbg== b3JnYW4= aWNhdGU= IHN0cmVzcw== XSo= IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0= X2NvbnRleHQ= b3JyeQ== IGRpZWQ= bWF0 IHN0YXJ0cw== Lk1lc3NhZ2U= IHJ1bnM= IGd1aWRl IHdhcnJhbnR5 ZW50aWFscw== ZGljdA== IFNpemU= dWxlcg== IHJlc3BvbnNpYmxl X1NFVA== IGNvbnRhaW5pbmc= IFByaWNl fHw= MzUw RlM= IGVtcA== X2J1dHRvbg== KHVpbnQ= IHN1ZmY= cHRo IGRlZmluaXRlbHk= cHV0ZQ== IG1hcmtldGluZw== IFdI IFNpZQ== Kz0= T0xPUg== IGNvbnN1bHQ= IHNpZ25lZA== IHNlcXVlbmNl bGVl IHJlcXVpcmVtZW50cw== aHk= RXhwcmVzcw== TVQ= c2V5 IHVsdA== 5a4= ZWxsaWdlbmNl IGFuYWx5 IGRyZXNz ZW5naW5l IEdyZWF0 IEFuZHJvaWQ= IEFsZXg= bW9kZQ== RGljdGlvbmFyeQ== LkRhdGU= 5L0= VklDRQ== IGZhbWlsaWVz IFJ1c3NpYW4= IFRpbWVz LmNhbGw= JCg= UHJvZmlsZQ== IGZvbGRlcg== Y2hlcw== IGxlZ2lz X3Jvdw== dW5lcw== 2YQ= IH0pLg== QXNzZXJ0 YWdlbg== IEhhbmQ= SXRlcg== IGJpZ2dlc3Q= b3JlYWNo IHBvbGlj IHBlcm1pc3Npb25z IHNob3dlZA== IEVsZW1lbnQ= IHRvcGlj 4oCU4oCU cm9hZA== IEJhbms= cmVjb3Jk IHBhcnRuZXJz IFJlZg== ZXNzaW9ucw== IGFzc2Vzcw== VVNU IFBhcnR5 cHJvZHU= TEM= IHVs LmZvcm0= aGlkZQ== Y29weQ== VVRG IFNPRlRXQVJF DQoNCg0K IExpbg== dW5h dWdhcg== IGFkbWluaXN0cmF0aW9u IG9wZW5pbmc= IHNjYW4= IGNvbnRpbnVlZA== Y29tcG9uZW50 LnNw IGhhcHBlbnM= dW1teQ== IFBS LkZpbGU= IERvd25sb2Fk TG9hZGluZw== ZGk= IHdhaXRpbmc= X0FERA== VGFi LnF1ZXJ5U2VsZWN0b3I= IGVjb25vbXk= IEZyZW5jaA== dHh0 IGZhbnQ= XzsK SG9sZGVy U0g= MDA0 IG51bXB5 IHN0cmVldA== IG1hbGU= XE1vZGVs YW5naW5n MzMz IEJpbGw= IHByZXZpb3VzbHk= Qkk= IFNlY3JldA== IG1pc3Q= IEZpZWxk dXBz IFByb2Nlc3M= IGtlcHQ= IE9U IHRyYWRpdGlvbmFs Lmk= YW1pbg== IGhlbHBz QW55 b3JpZ2lu aWx0ZXJz anU= ZGVzYw== IEFjY291bnQ= ICkNCg== a3RvcA== b2xseQ== IGZz IOo= IHV0 IGNlbnRyYWw= KHRlc3Q= LkFu IHNhdGlzZg== R1I= IEZ1bGw= IGhlYXQ= aWJlcg== IG9udG8= bW9z U2NoZW1h IGZhY3Rvcnk= Ii4k YXdz U3RhdGVtZW50 KHRhcmdldA== CW5ldw== LmJl IGd1ZXN0 IG1hbA== QVJZ IHJlYWNoZWQ= IG1vdXNl IGNoYWxsZW5nZQ== CWRvdWJsZQ== IFRlbQ== IHRlcnJvcg== IGV4dHJhY3Q= X1RP IHNlcGFyYXRl IG1pcg== aGVscA== IGNhcGFjaXR5 IFByb3BlcnR5 a2Fu X2NyZWF0ZQ== IExpZ2h0 LnBhcmVudA== IHVuZGVyc3RhbmRpbmc= IGVhc2llcg== IHw9 IGVuaA== IGZhdA== IHByb3Rlc3Q= YW1t X0FU LW9m aWxz IE9o IHBzeWNo ICQu aW5kcw== IHJlbGF0aXZl c2hvcA== c2hvcnQ= IFNhbmQ= MjEw dWVzdGlvbg== IGZlYXI= LwoK LmNvbnRleHQ= IHNjaG9vbHM= IHNlcnZl em9uZQ== X2Ri IG1ham9yaXR5 ZXhhbXBsZQ== IGxhbmc= CSAg UmVnaXN0ZXI= ZW5kbw== IHByb2Nlc3Npbmc= X3RlbXBsYXRl LXVzZXI= IGVn Q09N IEJsdWU= aXJv IHJlbW90ZQ== IElU IyEv IHJlZGlzdHJpYg== MTI0 cmF6 IFNpbmNl IFR1cg== MTM1 QmFja2dyb3VuZA== PT09 IHJlZmxlY3Q= IHByb3M= Y21k IHdob20= Q29tcGF0 IEFyZQ== SWRlbnRpZmllcg== IFRob20= X3BvcnQ= Z3U= IG1vbml0b3I= cm0= IHBhdGllbnQ= dmVydGVy IGdhaW4= LXVp SW5zdA== IGRpZXM= MTE4 QXJlYQ== X2ZpbHRlcg== IGdyYXQ= IHJlYWxpdHk= b3JkaW5hdGU= b2x2ZWQ= Q29udGFjdA== IGNvbXBsaWFuY2U= X29y IFZhcg== ZGw= IGFwcGVuZA== R0VS KG1heA== LnJlbmRlcg== IGR5bmFtaWM= b3JkaW5hdGVz X29wdGlvbnM= X2NvbHVtbg== IGJhdHRlcg== c3BhY2U= TGE= IFNvdXJjZQ== L2Jpbg== IGRvcw== IEJvYXJk IFRocmVhZA== IEFM KGNvbmZpZw== MTQ0 IE1lcg== IG1pbGVz X2hlYWRlcg== RVRIT0Q= aXp6 IGJlbmVmaXQ= IGludGVncg== KGN1cnJlbnQ= dWxv LmRlZmF1bHQ= IERpdg== IHRvbg== b3Ro ZXJ2YXRpb24= ZWRvbQ== IGJhYnk= Y2VpdmVk LnRvcA== cmlvcml0eQ== IExvY2Fs cmlhZ2U= IGF0dGFja3M= IGhvc3BpdGFs MTY4 IGZlbWFsZQ== IExvZ2lu IEZsb3I= IGNoYWlu YXNoaW9u VGV4dHVyZQ== U2F2ZQ== IGZhcm0= LmNvbnRhaW5z LlRlc3Q= IGtub3dz IGdlbmVyYWxseQ== aXBlbGluZQ== IG1lYW50 ZW5jaWE= IG5pY2h0 IGNvbnRlbnRz UE0= Y2hlZHVsZQ== KGxpbmU= Q0c= am9i IFJlYWw= dWVy ZmlybQ== INg= ZXRybw== ImAK IHNwZWVjaA== IHRocg== Zm9yZWFjaA== IHdhcm4= CWw= IGhlYXZ5 PGxp TmU= IGludmVzdGlnYXRpb24= TWF0aA== LXRpdGxl IGNodXJjaA== IGRlc3BpdGU= Y2hhaW4= IHdoYXRldmVy YXJpYW4= Zm4= IG1ldGE= fSkKCg== VUZG IHJlZ2FyZGluZw== X1NVQ0NFU1M= bWVz IEludGVudA== IHJlc29sdmU= cG9zcw== aXJh Zm9yY2U= b2ljZQ== w6I= IHBt IHVwZGF0ZXM= QXJy INE= dGVzdGluZw== IHRvd2FyZA== bnRheA== 64s= IGxpc3Rlbg== IGdvYWxz SW5zdGFuY2VTdGF0ZQ== RHI= IHJhcmU= IHRyYWls S2V5cw== Q2Fs Q2Fy IFBlb3BsZQ== CWxvY2Fs Y2xhc3Nlcw== UmVmZXJlbmNl LmZvckVhY2g= ZW1i YWN0aXY= IHByaW0= cmVkaWN0 IHJhZA== 5pWw LkJhY2s= IHNwcmVhZA== IGNsb2Nr IHZpcg== ZWRpdG9y IGVmZm9ydHM= IGJyYW5jaA== IGluZHVzdA== IG1vdG9y IGFtYg== IGRhdGV0aW1l IHJlbmNvbnQ= IENocmlzdGlhbg== IEFtZXJpY2Fucw== ZnVsbA== IGZtdA== Lm1haW4= IGNhdXNlZA== X3VwZGF0ZQ== IENvbnRlbnQ= QVRDSA== IGJhdGg= IEVhY2g= IHJhZGlv YWNobWVudA== dXp6 U3VibWl0 IHJlc3RyaWN0 YWJpbg== IExvYWQ= IGV4dGVuc2lvbg== IGVzc2F5 IGhhdA== YXZpb3Vy dG9CZQ== Ijpb IG9mZmVyZWQ= IHZpbGw= KGRvdWJsZQ== MTE5 5pel YmM= X2ZyZWU= IE1pc3M= IEJlcg== IOg= IExpa2U= IGhlbHBlZA== LmdldE5hbWU= X0FM IHNwaXJpdA== IEFwYWNoZQ== d3M= IHRoZXJlZm9yZQ== KHBhcmFtcw== X2ltZw== IHBlYWNl IGluY29y IEVYUEVDVA== IG1pbm9y aXBlcw== CWRhdGE= c2VsZWN0b3I= Y2l0eQ== dHJpZQ== LmJhc2U= X2ZyYW1l IG9wZW5lZA== L2pzb24= TFk= bnU= LkRl dGY= bWFyZ2lu LlBhcnNl IHBp IGVx YmQ= RmllbGRz IFRyZWU= IGJhbg== aXN0YW4= CiAgICAgICAgCg== CWds IHByb2R1Y2Vk c3lzdGVt TWFyaw== X2hhc2g= IGJn IGNvbnN0aXQ= IExlYWd1ZQ== IG1pc3Npb24= X2Zvcm1hdA== KFsK Y2x1c2lvbg== ISI= 0Lc= YnJlYWs= CXN3aXRjaA== IHRoZXI= VHJhbnNmb3Jt IGZvb3RiYWxs LWxpbms= cm91dGU= LmF1dGg= IGJhZw== b3ZlcnM= IGVuYWJsZWQ= IHJhYw== KEk= Q1I= YW5jaW5n IG1hbmFnZWQ= X3E= TkdUSA== IG1hYw== IEF1dG8= YW1lbnRl ICcnLA== LkFwcGVuZA== IHBpbg== Lml0ZW0= YWNraW5n IG9jY2Fz cGVyc29u IHRp LlJlZw== IGhhdmVu IGdsYXNz ICI8Lw== IFNpbXBsZQ== UHJpbnQ= IHN1cnJvdW5k Tk8= 44CCCg== ICAgICAgICANCg== IE1hbnk= ICJf IHdlZWtlbmQ= IHNvbWV3 LnBhcmFtcw== c21hbGw= QVRFRA== IHBsdWdpbg== ZmllbGRz IEluaXRpYWxpemU= b29u YXRpbGU= eWU= IHZvdXM= TEFH IG9sZGVy IGdhbQ== IGV4dHJlbWVseQ== IGhldA== ZW51bQ== IFNFVA== eGZm IHRpbWVy L2luZGV4 IGNyaXRpY2Fs Um93cw== X2FyZ3VtZW50 IGV4ZWN1dGU= IHNob3dpbmc= LnhtbA== LWxpc3Q= Um9sZQ== dHlwZW5hbWU= X21ldGhvZA== dGhhdA== Y2hlcg== IOKG WFQ= IHRob3VzYW5kcw== CW4= IHJlc3A= X3ByaWNl b2x1dA== QWc= IFR3bw== IGJlY29tZXM= IGh1cw== LlVzZQ== dGhlbWU= dXJi IC8qCg== ZXJpYWxpemU= QVJO IGxvc2U= TG93ZXI= IHZlbA== IGRlZmVuc2U= Y29uZGl0aW9u IGJlcw== IGRyeQ== IHNjcm9sbA== LlNob3c= SUVM 0L7RgA== IFJlc3Q= V2hlcmU= b29kcw== IEplcw== IHdpcmU= X0lORk8= IHN0cmluZ3M= Z21lbnQ= IG1hdGNoZXM= IGVsZWN0cmlj IGV4Y2VsbGVudA== IENvdW5jaWw= aWRhZGU= IHd4 cHVzaA== X2VudHJ5 IHRhc2tz IHJpY2g= c2E= IFNtaXRo VU5DVElPTg== UG9pbnRlcg== cGVjdGl2ZQ== MTMx IHdpZGdldA== aXN0YQ== IGFnZW5jeQ== IHNpY2g= b2xvZ2llcw== IHRyaWFs YWx5c2lz LmNoZWNr QVJL IG9uQ2hhbmdl YWJvdXQ= Jywk KHZhbA== IHBsYWNlZA== X05P IGRhbg== LmVxdWFs CSAgICAg IHdlYXRoZXI= LmdhbWU= IGRlc3RpbmF0aW9u X1VTRVI= aWVjZQ== IHByb3ZpZGVy Lmxhc3Q= cGxleA== Tm90ZQ== L2pz IHDDpQ== IHBsYW5uaW5n YXR0cmlidXRl UFJP YXRjaGVz IDwt IHNlZWluZw== IGNhbmNlbA== X2luZA== LmtleXM= IHZpc3VhbA== IEN1cnJlbnQ= IENvbGxlZ2U= IFJvY2s= IGFncmVlbWVudA== IFN0b3Jl b3Zpbmc= IGNvcm5lcg== YW1waW9ucw== SVNF Rmlu IHByb3RlY3Rpb24= IGZp UGxheQ== cGx1Z2lu KX0= LmZyYW1l LXo= IHRyYW5zaXRpb24= aWdpbg== IGNhbmRpZGF0ZQ== IFVuaW9u X3ZhbHVlcw== KG1hcA== Y2xl IHRyZW5k d2lkZQ== YXJlbg== TG9j VVRI IEJheQ== IHNtYWxsZXI= aXVz MTQx d2VsbA== IGNyaW1pbmFs IGNvbmZsaWM= YmVydA== X0lOVA== IGludmVzdG1lbnQ= Y3VzdG9t IFNlc3Npb24= X3dyaXRl YW5pYQ== IE1hc3M= X0VR X05PVA== IHZpb2xlbmNl QXJndW1lbnQ= X2VtYWls IGJlbG9uZw== X2Z1bmN0aW9u IGVuZW15 ZW1h IEFkZHJlc3M= LmVtcHR5 IGlubmVy IENvbnRhY3Q= TG9hZGVy PGlucHV0 IENB bG90 IHBpY3R1cmVz IFN1cHBvcnQ= X25hbWVz MTg4 TGF5ZXI= IENsaWNr U3Vt w6Y= IExvb2s= dW91cw== TGli RmxhZ3M= dGVhbQ== RVA= MTg5 aGF0 b3ZlcnJpZGU= YXBzZWQ= IGxhYmVscw== cXVpcw== IFN0cmVhbQ== X2RldmljZQ== IENvbW1pdA== KHJvb3Q= In0= LmlzRW1wdHk= MTI2 CU0= IGFuZ2xl IEJlY2F1c2U= JSUlJSUlJSU= IGFpbQ== IHN0aWNr c3RtdA== YWdyYXBo YW5zd2Vy IGNsaW4= IElzbA== LmV4dA== IElOVA== IHN0eWxlcw== IGJvcm4= IHNjcg== IGV4cGFuZA== IHJhaXNlZA== VGV4dEJveA== SUxM LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t SFRUUA== MTMy Pik= X2NoYXI= cmVzb3VyY2U= IGVwaXNvZGU= ICdf IEVz IEVhcnRo wqDCoA== VVBEQVRF MTMz IFNvdQ== dWlz dHlwZXM= IG1hcw== IGZhdg== IGNvbnN0cnVjdA== X3JhdGU= ZXJhcw== IHwK cm9wZXJ0aWVz IGV4dGVybmFs IGFwcGxpZWQ= IHByZWZpeA== b3RlZA== bGVycw== IGNvbGQ= IFNQ IENodXJjaA== IE91dHB1dA== bG9zZWQ= 55o= aWZpY2F0ZQ== b3BlcmF0aW9u aGVyaXQ= eEZG LmVudg== X2Vycg== b3No RGlyZWN0aW9u Q2FuY2Vs IEZyYW5r IGZpbmRpbmc= LikKCg== IHJvdXRlcg== 44O7 c2Vz IGNyb3c= PT0n IHNhbmQ= IHJpZA== aXR1cmU= IGVudHJl IG9ic2Vydg== IHZhYw== 8J8= LVQ= QXJ0 bmlnaHQ= LnNlYXJjaA== IGV4Y2hhbmdl IGRpc3RyaWN0 Lm9z IGRlcGFydG1lbnQ= IGRvY3VtZW50cw== IGNlbnR1cnk= IE5leHQ= SG9zdA== IEtJTkQ= IHN1c3A= LVA= cmVuZA== LmVt dWl0ZQ== aXN0ZXJz KGpzb24= IEFubg== d3Q= YXRp IEhUTUw= d2hlbg== RGlyZWN0b3J5 IHNodXQ= PGE= ZWR5 IGhlYWx0aHk= IHRlbXBlcmF0dXJl IEdlbg== IG1ldGFs IHN1Ym1pdA== IERP IGF0dHJhY3Q= IHt9Owo= IFdvcmQ= IGxs IHNlZW1lZA== a28= SUVE IGxhYm9y LkNvbnRleHQ= IGFzc2V0 eW91 IGNhcnM= IENvbHVtbg== IHLDqQ== IHNxdWFyZQ== IE5TU3RyaW5n 4oCdLA== YXBlcw== Li4uCg== IHRoYW5rcw== KHByb3Bz IHRpY2s= IGV4cGVyaW1lbnQ= IHByaXNvbg== dHJlZQ== LXRleHQ= IElPRXhjZXB0aW9u LXdpZHRo X1NUQVRVUw== ZmFzdA== LWJvZHk= LWhlYWRlcg== IGd1YXI= Y3JldGU= IFRpbQ== IGNsZWFybHk= IFJlcHVibGljYW4= IGp1c3RpZnk= 0LjRgg== CSAgICA= Y2FjaGU= Oy8v IHByZXNlbmNl IGZhY3RvcnM= IGVtcGxveWVl XSkp TWVtYmVy IHNlbGVjdG9y Ym9y IE1leA== 55qE dXRleA== X3RhZw== YWlsdXJl IE5ldA== IHJlbGk= RUc= IGZwcmludGY= IHRlZW4= bG9zcw== IGxlYXZpbmc= MTM0 RGVsZWdhdGU= IGJlYXQ= IG1pbnV0ZQ== c3Vic2NyaWJl IHJlZGlzdHJpYnV0ZQ== Q29uc3RhbnRz IGNhbmNlcg== L3s= Qkw= IHNwYW4= IENoaWxk Q2VudGVy IGVhcnRo WVM= IExldmVs IHNlYQ== LnN1cHBvcnQ= LmlubmVy Lkl0ZW0= aWxsaW5n ICAgIAogICAgCg== IExhYmVs MzIw IEVzdA== KGFyZw== MTQ1 Ym9Cb3g= CWZvcmVhY2g= Y29z RmFpbGVk c3dlcnM= RWRpdG9y cm9udA== IE1Q ZXhwcg== IExpZmU= ID8/ w7Zy IGF0dGVuZA== IFF1ZQ== IHNwZWNpZXM= LUQ= IGF1cw== U3RydWN0 IGFkdmFudGFnZQ== b3N0b24= LWJsb2Nr aW5pdGlhbA== Q1JF IHRydWx5 IGNvbXBhcmU= b3JuZXk= IHNwZWN0 RnVsbA== YmVz IHZpc2libGU= IG1lc3M= c3RhbmNlcw== IGNsb3Vk X3ZlcnNpb24= IGZ1cm4= aWNhZ28= TE9X IHRyYWZmaWM= IGZvbA== cnlwdG8= IGRlY2xhcg== IHNsb3Q= IEV4dA== IEVuZ2xhbmQ= IFVuZGVy IHRh bGV0dGVy MjAz IG9mZmljZXI= IERvbmFsZA== WWVz X2pzb24= SVRhYmxlVmlldw== IFVTRQ== bXBsb3llZQ== IG9waW5pb24= IEF1dA== Ym9yZGVy IGFkdmljZQ== IGF1dG9tYXRpY2FsbHk= aXNjbw== IG1t LnZpcw== YW1s IGluaXRpYWxpemU= ICh7 IDsKCg== IGdlbmVyYXRpb24= IGJpdHM= Y2xpcHNl IHVuZg== dXRvcnM= cGx0 IGRlbHRh ZXN0cm95 aXNpcw== PGJy IGxpbWl0YXRpb25z IGVuZGVk IE1hZA== aWxt VGhlc2U= MTg3 IE1pbmlzdGVy IGNoYXJ0 RnJhZ21lbnQ= IGluZGVwZW5kZW50 WWVhcg== IGluc3Ry IHRhZ3M= QVZF IEFyY2g= c3RvcA== UHJvZ3Jlc3M= IG1p IGxlYXJuZWQ= R2U= IGhvdGVs MTUx U00= VFlQRQ== IGN5 RVJTSU9O dW5hdGVseQ== bGltaXQ= c2Vs IG1vdmllcw== IHN0ZWVs b3o= Z2I= IENhbXA= c2l0ZQ== IExvZ2dlcg== UExF 0L7QtA== LnJpZ2h0 IENvcmU= IG1peGVk c3RlcA== IHB1dHM= c3VwZXI= Um91dGVy MTg2 Lkh0dHA= MjIy bHlwaA== IENvbG9ycw== IGFuZHJvaWR4 LnN0cg== IGlubm92 IGRlY2s= Jz4K YXBlcnM= XSg= Y29udGludWU= c3BlYw== IFJvYWQ= QVNI aWxpYXI= IGNvbnRpbnVlcw== IGFwcG9pbnQ= ICMK IFZpcg== ID8+Ig== IGJpbg== fSIs Z29pbmc= ZWFjaA== QkQ= MTg1 IEFjY2Vzcw== RG9j IE1hbmFnZW1lbnQ= QkVS YXNrZXQ= LmdldEluc3RhbmNl MTI5 IGVzdGFibGlzaGVk c29ja2V0 SU5T CXZpcnR1YWw= CXJlc3VsdA== UkVBRA== X2hlaWdodA== MTUy IEZvbnQ= ICgpOwo= X2h0bWw= IG5laWdoYm9y bG9y IGdhdGhlcg== IH0pCgo= IGlkZW50aXR5 IGZhYg== cGFkZGluZw== IFJvdXRl RW51bWVyYWJsZQ== w7Q= IGZvcmNlZA== L2pxdWVyeQ== LgoKCgoKCg== cmVzZW50cw== X2xlZnQ= LlBhcmFt CXRocm93 IEhhbQ== IGV2ZW50dWFsbHk= YWNlcg== cHVi IHRyYQ== dW5pcXVl ZGVs IEZsb3JpZGE= IENsZWFu eGE= IMK3 IHZhbGlkYXRl VmlzdWFs RXhwcmVzc2lvbg== X2Z1bmM= bWVtYmVy CWg= dHJs MTM2 CUc= bmFwc2hvdA== IFByb3BUeXBlcw== dmlu MTUz XSkKCg== b3ds aWZpZXM= ICQoJy4= IENvbnRleHQ= IFRvYXN0 LktleQ== IG9mZmljZXJz L24= c24= dW5kZWZpbmVk Lml0ZW1z dXRvdw== YW1hZ2U= IGFjY291bnRz b29raWU= U2VjdGlvbg== aWNpYW5z IGFkdmlz KGlz Wzos IEZyYW5jZQ== RnVuYw== aWNpb3Vz IHRvaw== Q2hhbm5lbA== IEFE X05VTQ== IHRpbWVvdXQ= bGVtbWE= cmVtZQ== dWo= LkFs dWNsZWFy KG9z KCI8 Wwo= ZmV0Y2g= IGJhbA== IGd1aWQ= LWFsaWdu IFdyaXRl IE9uY2U= dXRvd2lyZWQ= T0RVTEU= IHBpdGNo Q0Y= Ynl0ZXM= IENvbW1pc3Npb24= IGluY3JlZA== UEVS X3Jlc3BvbnNl IExvcw== cGFyc2Vy IGFzc3VtZQ== LlJlcXVlc3Q= IFRva2Vu X3Bvc2l0aW9u IG5vbQ== LXRlcm0= IHJlbWFpbmluZw== aW9zdHJlYW0= IHBpZWNlcw== YXB5 IExlc3M= cmFuZ2U= dW1ibg== cHJpc2U= X29wdGlvbg== MjMw SW1wbA== a3dhcmdz IGJ1c2luZXNzZXM= QWxlcnQ= IHBhcnRpZXM= IENvbnRhaW5lcg== IFByaXZhdGU= IFBsYW4= IHJlZ2lzdGVyZWQ= IGpvdXI= YWNrZXI= 0LXQvdC4 Lz4= Y2hhdA== c2VjdA== IGNyZWF0aW9u b2x1dGVseQ== IGluc3RhbnQ= IGRlbGl2ZXJ5 aWNrZW4= eWVz MTYz IEZyYW5j Ymxpbmc= ZW5kYQ== Wyg= X3Jhbmdl ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA== IHNjaGVkdWxl Q29ubg== IHRoYW5r eGQ= IGhvb2s= IGRvY3VtZW50YXRpb24= UGFyYW1ldGVycw== SGVsbG8= dnQ= IGFydGljbGVz IHdlc3Q= ZGVmaW5lZA== LnNlbGVjdA== b2tlbnM= IFZBTA== LmZpbGU= cmVzZXQ= IG15cw== IE1B XSks IGNpdGllcw== cmVsYXRlZA== 5Zs= IGFwcGVhcmVk IHdpZA== LnBhbmVs IElucw== LmVudGl0eQ== IGRlY3Jl IExvdQ== KHRpbWU= IFRoYW5r LmNyZWF0ZUVsZW1lbnQ= IG1lbnRpb25lZA== b3VuY2U= IFRyeQ== IFdhbGw= L2ltYWdlcw== IE1lbnU= Jw0K IEVy IGNyaXRpYw== IFllYXI= KHBhcmFt IGZsbw== Tk4= b290ZXI= IF07Cg== IEFmZg== ImdpdGh1Yg== cm9vbXM= IGh5cA== Z2xvYmFs IGF2ZWM= 5pyI IGNvbXBsZXRpb24= IGNvbmQ= b255bW91cw== KHRlbXA= IHN0YXJz IHJlbGV2YW50 IGNvdmVyZWQ= IGVsaW0= X3R5cGVz KGJvb2w= IHR1 X2V4aXN0cw== IHNlY3VyZQ== IHN0b3JlZA== XS8= eEY= IENvbnRyb2xsZXI= IG1pZ3I= TUk= IERlbg== IGFubnVhbA== VUlM LWFuZA== IGNyaW1l YmVs IGtpdGNoZW4= QGc= X3Bo b3VybmFtZW50 IFNvY2lhbA== IFNwZWNpYWw= bG9nZ2Vy IHRhaWw= IHVua25vd24= ZGVk IGFwcHJlYw== KGRi Y2Y= MTU1 IGFzc2lnbg== LW91dA== IE1vbnQ= ZHA= d2lkZ2V0 IHN0b25l LXByaW1hcnk= LmdyaWQ= UmVzdWx0cw== YXp6 IGRhdWdodGVy IGN1cnI= MTc1 IGxpbg== IHNvdXRo Zm9ybXM= IE9VVA== bGV0dGU= YWtz aWd1cmU= IEVV dmFyaWFibGU= IGJyaWVm IFNjb3R0 IGNvbmZlcmVuY2U= YW5kYQ== X2xvY2s= b3JhbA== IGVpbmU= T1JT Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLw== ZXNzbw== IHJpcw== IGdlbmRlcg== ZXN0aWM= TGljZW5zZQ== KG91dA== IG1z U2Vl IHdpbGxpbmc= YXpl IHNwb3J0cw== IHllcw== bHU= IHB1cnM= L2phdmFzY3JpcHQ= LXBybw== bmF2YmFy X3Byb2R1Y3Q= L2Jvb3RzdHJhcA== IGRyaXZpbmc= IMQ= IHByb3Bvcw== dWx0aXA= dXBsaWM= LmVtYWls IGFwcHJveA== KGNs IHdlYXI= IHJlcGx5 YXNzZXQ= IGljZQ== IHR4 a3I= IEdlcm1hbnk= IEdlb3JnZQ== IGNi CWVycg== TW92ZQ== IHBvbHk= dm9pY2U= fSI= IGFuaW1hbA== QXY= IExvY2F0aW9u IG5hdGl2ZQ== XVsi PGRvdWJsZQ== IG1haXM= LGludA== IHByZXBhcg== IGludGVydmFs cGxlbWVudGF0aW9u X0VSUg== IGJ1Zw== PiI= c3RhdA== IH0sDQo= PHNwYW4= IGZhaXRo IHJvbQ== cHJldg== IEVsZWN0 RmluZA== IGdvZA== b3Rvcg== Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t b3JpZ2luYWw= Q3Bw IFNlbmF0ZQ== IHBvc2l0aW9ucw== IHdlYXBvbnM= IGNvZmY= IHB1cnBvc2Vz cG9s IGltcHJlc3M= IGFuaW1hbHM= LkVudGl0eQ== KG5w IG11cmRlcg== IGBg ZmxhZw== IHNvbHV0aW9ucw== IEFjdGl2ZQ== IGJyaWdodA== LmRhdGU= IHNpdHU= 77yI LklE IHNpZQ== KSwNCg== YWt0 U3BhY2U= LmRhdA== LmluZGV4T2Y= aGFu YXppbmU= IFpl IGNyYXNo KC8= Pj0= 0LE= MTM5 aXZh LkF1dG9TaXpl IExhdA== X2V4dA== SW5pdGlhbGl6ZQ== LnJlZ2lzdGVy MTU2 T1BZ IHJldmVyc2U= X2Rpcw== J11b IHByb21wdA== b250bw== IEpvdXJuYWw= cm91dGVy IG15c3FsaQ== I2Vsc2U= KSI= LXhz bGV0cw== cGhhbg== LkxF MTM3 V2lsbA== IGFmZm9yZA== IHNraWxs LXRvZ2dsZQ== TkM= QmluZA== VFM= SnVzdA== aXRlcmFs WVA= CXVuc2lnbmVk IHdpbmQ= MTQ5 KSk6Cg== IHdhcm5pbmc= IFdhdGVy IGRyYWZ0 IGNt IHNhbQ== IGhvbGRpbmc= emlw IFNjaWVuY2U= IHN1cHBvc2Vk R2Vu IGRpZXQ= PGg= IFBhc3M= dmk= IGh1c2JhbmQ= 77+977+9 bm90ZQ== IEFib3V0 IEluc3RpdHV0ZQ== IGNsaW1hdGU= LkZvcm1hdA== IG51dA== ZXN0ZWQ= IGFwcGFyZW50 IGhvbGRz Zmk= bmV3cw== Q00= dmlkZW8= Jzon RElUSU9O cGluZw== IHNlbmlvcg== d2E= LS0+Cg== X2RlZmF1bHQ= IERhdGFiYXNl cmVw RVNT bmVyZ3k= LkZpbmQ= X21hc2s= IHJpc2U= IGtlcm5lbA== Ojok LlE= IG9mZmVyaW5n ZGVjbA== IENT IGxpc3RlZA== IG1vc3RseQ== ZW5nZXI= IGJsb2Nrcw== b2xv IGdvdmVybmluZw== XEY= IGNvbmNlbnQ= LmdldFRleHQ= IG1i IG9jY3VycmVk IGNoYW5naW5n U2NlbmU= X0NPREU= QmVo IlRoZQ== IHRpbGU= IEFzc29jaWF0aW9u CVA= YWx0eQ== X2Fk b2RpZXM= aWF0ZWQ= IHByZXBhcmVk cG9zc2libGU= IG1vcnQ= VEVTVA== MTQy IGlnbm9yZQ== IGNhbGM= IHJz IGFzc2VydEVxdWFscw== IHN6 IFRISVM= LiIK IGNhbnZhcw== amF2YQ== IGR1dA== VkFMSUQ= LnNxbA== LmlucHV0 IGF1eA== U3Vw IGFydGlzdA== VmVj X1RJTUU= LnN0cmluZ2lmeQ== ZXR3ZWVu IENhdGVnb3J5 IFst IERldkV4cHJlc3M= IEp1bA== IHJpbmc= LmVk WVk= TGV0 VGV4dEZpZWxk IGZsYXQ= X3ByaW50 IE9USEVS YWRpYW4= IGNoZWNrZWQ= ZWxl QWxpZ24= c3RhbmRpbmc= IFtdLA== IGxhYg== dWNreQ== IENocmlzdG1hcw== KGltYWdl Lm1vZHVsZQ== IGxvdHM= IHNsaWdodGx5 KGZpbmFs ZXJnZQ== 6L8= MTQ3 IFBvbGljZQ== MTQz IFJpZ2h0 IGF3YXJk IE9T IHt9Cgo= IHB0cg== b3Zlcw== aWNhdGVk 0LXQvA== IG1hbmFnZQ== b2xpZGF5 QW1vdW50 b29sU3RyaXA= dGJvZHk= TmF2 d3JhcA== QkI= IHdhdGNoaW5n YXJpb3M= IG9wdGlvbmFs X0s= IExpY2Vuc2Vk Lk1hcA== VGltZXI= IEFQ IFJldg== KG8= LGM= dW1pbg== ZXRhaWxlZA== IEh5 IGJsYW5r YWdnZXI= IFNlbGY= KClb Lm1ha2U= ZWFybg== Y2hhbm5lbA== PHByZQ== YmxlbQ== X3Bhc3N3b3Jk X3Nw aWNpbmc= ZXo= IHRoZW9yeQ== IFRlcg== MTg0 LG4= bG9nbw== IEhUVFA= KCkpKQ== LmhhbmRsZQ== PjsK V29ybGQ= IHB5dGhvbg== IGxpZg== IHRyYXY= IGNvbnZlbg== Y29tcGFueQ== IENsdWI= MTM4 VmVy QnRu IHpvbmU= cHJvZHVjdHM= IEVkdWM= IHZlcmlmeQ== IE1pbA== b25v XSk7Cgo= RU5DRQ== IHBhY2tldA== IGNlcg== IGVudW1lcg== IHBhcnM= Zm9ybWVk IG9jY3Vw dHJl IGV4ZXJjaXNl RGF5 X3N1bQ== IGFza2luZw== YXB0aW9u IG9yZGVycw== IHNwZW5kaW5n IEVSUg== LkRpcw== IFV0aWw= 4oCcSQ== XCc= Pyk= Lz4K IGVtb3Q= IGluZmx1ZW5jZQ== IEFmcmljYQ== YXR0ZXJz 2YU= LnNlc3Npb24= IGNoaWVm CQkJCQkJCQkJCQk= IHRvbQ== Y2x1ZGVk c2VyaWFs X2hhbmRsZXI= LlR5cGU= YXBlZA== IHBvbGljaWVz LWV4 LXRy Ymxhbms= bWVyY2U= IGNvdmVyYWdl IHJj X21hdHJpeA== X2JveA== IGNoYXJnZXM= IEJvc3Rvbg== UGU= IGNpcmN1bQ== IGZpbGxlZA== MTQ4 IG5vcnRo aWN0dXJlQm94 CXJlcw== 6K4= IHRlcm1pbg== IFvigKY= SVJFQ1Q= IGJlcg== ICIuLi8uLi8= cmV0Y2g= LmNvZGU= X2NvbA== IEdvdmVybm1lbnQ= IGFyZ3Y= IExvcmQ= YXNp RXhlYw== CWxldA== dmVydGlz IGRpc2N1c3Npb24= ZW5hbmNl b3V0dWJl dHlwZW9m IHNlcnZlZA== IFB1dA== CXg= IHN3ZWV0 QmVmb3Jl YXRlZ3k= Lm9m IE1hdGVyaWFs U29ydA== T05U aWdpdGFs V2h5 IHN1c3Q= IOc= YWJldA== IHNlZ21lbnQ= IFtdLAo= IE11c2xpbQ== IGZpbmRWaWV3QnlJZA== Y3V0 X1RFWFQ= IE1hcnk= IGxvdmVk IGxpZQ== IEpP IGlzc2V0 bW9udGg= IHByaW1l dGk= IENhcm9s VXNl MTQ2 IFBvcA== IFNhdmU= SW50ZXJ2YWw= ZXhlY3V0ZQ== ZHk= IElyYW4= X2NvbnQ= CVQ= IHBoYXNl Y2hlY2tib3g= d2Vlaw== IGhpZGU= IHRpbA== IGp1 Q3VzdG9t YnVyZw== L00= VE9O IHF1YW50 IHJ1Yg== aXhlbHM= IGluc3RhbGxlZA== IGR1bXA= IHByb3Blcmx5 KExpc3Q= IGRlY2lkZQ== YXBwbHk= SGFz IGtlZXBpbmc= IGNpdGl6ZW5z IGpvaW50 cG9vbA== U29ja2V0 X29w IHdlYXBvbg== Z25vcmU= IEV4ZWM= b3R0ZW4= IE1T ICgt IFJldmlldw== IGV4YW1wbGVz IHRpZ2h0 ISg= RFA= IE1lc3NhZ2VCb3g= IHBob3RvZ3JhcGg= MTY0 VVJJ w6l0 bG93 IEdyYW5k LnBlcnNpc3RlbmNl IG1haW50YWlu IG51bXM= IHppcA== aWFscw== IEdldHM= cGVn IEJ1ZmZlcg== fn5+fg== cmFzdHJ1Y3R1cmU= IFBM dWVu b2JieQ== c2l6ZW9m IHBpYw== IHNlZWQ= IGV4cGVyaWVuY2Vk IG9kZA== IGtpY2s= IHByb2NlZHVyZQ== YXZpZ2F0b3I= LW9u LGo= IEFsdGhvdWdo IHVzZXJJZA== YWNjZXB0 Qmx1ZQ== SUNvbG9y bGF5ZXI= YXZhaWxhYmxl IGVuZHM= LnRhYmxl IGRhdGFzZXQ= YnVz IGV4cGxhaW4= KHBybw== IENvbW1pdHRlZQ== IG5vdGVk XToK RGlt c3RkaW8= MTU0 LiIsCg== X3NvdXJjZQ== MTgx IFdlZWs= IEVkZ2U= IG9wZXJhdGluZw== IGVzdGU= aXBs MzMw YWdpbmF0aW9u IHByb2NlZWQ= IGFuaW1hdGlvbg== Lk1vZGVscw== IFdhdGNo aWF0 IG9wcG9u L0E= UmVwb3J0 IHNvdW5kcw== X2J1Zg== SUVMRA== IGJ1bmQ= CWdldA== LnBy KHRtcA== IGtpZA== PgoKCg== IHlhbmc= Tm90Rm91bmQ= 0YY= bWF0aA== QGdtYWls IExJTUlU cmVkaWVudHM= IHZlbnQ= YXZpZ2F0ZQ== TG9vaw== IHJlbGlnaW91cw== IHJhbmQ= cmlv KEdM X2lw dWFu aWNpZW5jeQ== IENoYW5nZQ== Pg0KDQo= IEVudGl0eQ== IHJlbmNvbnRyZQ== IFJldA== cGxhbg== w6lu Qk9PTA== dXJpZXM= dHJhaW4= RGVmaW5pdGlvbg== PT09PT09PT09PT09 eno= NDUw QW5pbWF0aW9u IE9L X21lbnU= LmJs X3Njb3Jl IGFjYWQ= KFN5c3RlbQ== IHJlZnJlc2g= Jz0+JA== LkdyYXBoaWNz YW1lbnRv cGlk dGM= IHRpcHM= IGhvbWVz IGZ1ZWw= 4pY= X2hlbHBlcg== ICANCg== IFJvb20= LkNsb3Nl X2F0dHI= IE1vdW50 IEV2 YXJzZXI= X3RvcA== ZWFo IERlbGV0ZQ== 44CN dWtl IHVzYWdl YXJpYQ== X2Rldg== IHRleHR1cmU= IGNvbnZlcnNhdGlvbg== ZXBlcg== QmVhbg== ZG9uZQ== bm9uYXRvbWlj IFNlY29uZA== IHNob290aW5n X3ByZQ== Q29tcG9uZW50cw== IF0KCg== X18s c3RpdHV0aW9u LkNoYXI= PigpOwoK IHByZXNlbnRlZA== IHdh b2tlcg== LQoK aW5lcg== IGJlY29taW5n IGluY2lkZW50 QXR0 MTYy IHJldmVhbGVk Zm9yYw== IGJvb3Q= LnBhZ2U= RW51bWVyYXRvcg== MTY1 Xy0+ UGhvdG8= IHNwcmluZw== LiIs IERpY3Rpb25hcnk= QkpFQ1Q= IGxvY2F0aW9ucw== IHNhbXBsZXM= SW5wdXRTdHJlYW0= IEJyb3du IHN0YXRz cXVhbGl0eQ== 0YU= LWRpcw== IGhlbHBpbmc= IHBlZA== MjI0 KHNl IFdobw== YWxpYW4= aW50ZXJuYWw= IGZ0 PigpLg== LT57 IG1pbmU= IHNlY3Rvcg== IGdybw== IG9wcG9ydHVuaXRpZXM= IMO8 IG1w IGFsbGVnZWQ= IGRvdWJ0 TW91c2U= QWJvdXQ= X3BhcnQ= IGNoYWly IHN0b3BwZWQ= MTYx bG9vcA== ZW50aXRpZXM= IGFwcHM= YW5zaW9u IG1lbnRhbA== ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA= RlI= IGRlZmVuZA== Y2FyZQ== IGlkZWFs L2FwaQ== dXJmYWNl MDEx IGVsZQ== dWxhdG9y IFJpZ2h0cw== YW5ndWFnZXM= IGZ1bmRz IGFkYXB0 QXR0cmlidXRlcw== IGRlcGxveQ== b3B0cw== IHZhbGlkYXRpb24= IGNvbmNlcm5z dWNl Lm51bQ== dWx0dXJl aWxh IGN1cA== IHB1cmU= LkZvcmU= MTgz IEhhc2hNYXA= LnZhbHVlT2Y= YXNt TU8= IGNz IHN0b3Jlcw== ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg== IGNvbW11bmljYXRpb24= bWVt LkV2ZW50SGFuZGxlcg== LlN0YXR1cw== X3JpZ2h0 LnNldE9u U2hlZXQ= IGlkZW50aWZ5 ZW5lcmF0ZWQ= b3JkZXJlZA== ICJb IHN3ZQ== Q29uZGl0aW9u IEFjY29yZGluZw== IHByZXBhcmU= IHJvYg== UG9vbA== IHNwb3J0 cnY= IFJvdXRlcg== IGFsdGVybmF0aXZl KFtd IENoaWNhZ28= aXBoZXI= aXNjaGU= IERpcmVjdG9y a2w= IFdpbA== a2V5cw== IG15c3Fs IHdlbGNvbWU= a2luZw== IE1hbmFnZXI= IGNhdWdodA== KX0K U2NvcmU= X1BS IHN1cnZleQ== aGFi SGVhZGVycw== QURFUg== IGRlY29y IHR1cm5z IHJhZGl1cw== ZXJydXB0 Q29y IG1lbA== IGludHI= KHE= IEFD YW1vcw== TUFY IEdyaWQ= IEplc3Vz ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg LkRF IHRz IGxpbmtlZA== ZnJlZQ== IFF0 IC8qKg0K IGZhc3Rlcg== Y3Ry X0o= RFQ= LkNoZWNr IGNvbWJpbmF0aW9u IGludGVuZGVk LXRoZQ== LXR5cGU= MTgy ZWN0b3Jz YW1p dXRpbmc= IHVtYQ== WE1M VUNU QXA= IFJhbmRvbQ== IHJhbg== LnNvcnQ= IHNvcnRlZA== LlVu NDAx X1BFUg== aXRvcnk= IHByaW9yaXR5 IEdhbA== IE9sZA== aG90 IERpc3BsYXk= KHN1Yg== X1RI X1k= IENhcmU= bG9hZGluZw== S2luZA== X2hhbmRsZQ== LCw= cmFzZQ== X3JlcGxhY2U= LmFkZEV2ZW50TGlzdGVuZXI= IFJU MTcy IGVudGVyZWQ= Z2Vycw== IGljaA== KHN0YXJ0 MjA1 L2FwcA== IGJyb3RoZXI= TWVtb3J5 T3V0bGV0 IHV0Zg== cHJlYw== IG5hdmlnYXRpb24= T1JL IGRzdA== RGV0YWls IGF1ZGllbmNl IGR1cg== IGNsdXN0ZXI= dW5jaGVk IF0s IGNvbWZvcnRhYmxl LnZhbHVlcw== IFRvdGFs IHNuYXA= IHN0YW5kYXJkcw== IHBlcmZvcm1lZA== aGFuZA== KCJA 5a0= IHBoaWw= aWJy dHJpbQ== IGZvcmdldA== MTU3 IGRvY3Rvcg== LlRleHRCb3g= Mzc3 aWNvbnM= LHM= IE9w U20= U3RvcA== CUxpc3Q= CXU= Q29tbWVudA== X1ZFUlNJT04= Llh0cmE= UGVyc29u cmI= TE9C ICAgICAgICAgICAgICAgICAgICAK IENlbnRyYWw= Mjcw SUNL cmFx IHB1dHRpbmc= IG1k IExvdmU= UHJvZ3JhbQ== Qm9yZGVy b29y IGFsbG93aW5n YWZ0ZXI= IGVudHJpZXM= IE1heWJl XSku IFNob3J0 KVw= Lm5vdw== ZnJpZW5k IHByZWZlcg== IEdQSU8= b3Npcw== IEdhbWVPYmplY3Q= IHNraXA= IGNvbXBldGl0aW9u X21hdGNo bGljYXRpb25z X0NPTlQ= Lmdyb3VwQm94 IGFscw== NjY2 Ildl X2Vx bGFu X3NlYXJjaA== IE11c2lj YXNpcw== IGJpbmQ= IElzbGFuZA== cnVt KEU= IHNlYXQ= VmlkZW8= IGFjaw== cmVlaw== PXsoKQ== IHJhdGluZw== IHJlc3RhdXJhbnQ= NDU2 REVY KGJ1Zg== cHBpbmc= dWFsaXR5 IGxlYWd1ZQ== MTc2 IGZvY3VzZWQ= YXBvbg== JGRhdGE= Q0xVRA== Q0xVRElORw== IGFic29sdXRl KHF1ZXJ5 IHRlbGxz QW5n IGNvbW11bml0aWVz IGhvbmVzdA== b2tpbmc= IGFwYXJ0 YXJpdHk= LyQ= X21vZHVsZQ== IEVuYw== LmFu LkNvbmZpZw== Q3Jl IHNob2Nr IEFyYWI= SUVOVA== L3Jl IHJldHJpZQ== eWNsZXI= aXNh IE9yZ2Fu LmdyYXBo IO0= IEJBUw== RW51bQ== IHBvc3NpYmx5 0YDQsNA= IEphcGFuZXNl IGNyYWZ0 IFBsYWNl IHRhbGVudA== IGZ1bmRpbmc= IGNvbmZpcm1lZA== IGN5Y2xl L3g= R0U= IGhlYXJpbmc= IHBsYW50cw== IG1vdXRo cGFnZXM= b3JpYQ== IFJlbW92ZQ== X3RvdGFs IG9k b2xsYXBzZQ== ZG9vcg== IGJvdWdodA== IGFkZHI= QVJDSA== X2RpbQ== ZGRlbg== IGRlY2FkZXM= UkVRVUVTVA== IHZlcnNpb25z ZmlyZQ== MDA2 IG1vdmVz ZmI= IGNvZmZlZQ== LmNvbm5lY3Q= IFJvdw== IHNjaGVtYQ== U2NvcGU= LVR5cGU= IGZpZ2h0aW5n IHJldGFpbA== IG1vZGlmaWVk VEY= RmlsZXM= bmll X2NvbW1hbmQ= c3RvbmU= INGC X3RocmVhZA== IGJvbmQ= IERldmVsb3BtZW50 IHB0 Rk9STQ== cGxldA== IGlkZW50aWZpZWQ= Y3Bw MjA2 MjI1 IGNvZGluZw== b2tlZA== IE1hc3Rlcg== SURUSA== IHJlc2lkZW50cw== cmVkaXQ= IFBob3Rv PS0= dW50ZQ== YXRldXI= MTU5 X1NUQVRF IFNpbmc= IHNoZWV0 LnZhbA== b3JzZQ== IGhlcnM= IGRldGVybWluZWQ= Q29tbW9u IHdlZA== X3F1ZXVl UEg= IEF0bA== Y3JlZA== L0xJQ0VOU0U= IG1lcw== IGFkdmFuY2Vk LmphdmE= LlNo R28= a2lsbA== ZnA= X3NldHRpbmdz IHBhbA== IHRydWNr IGNvbWJpbmVk ICIkew== IENvcnBvcg== IGpvaW5lZA== IEpvc2U= IEN1cA== dW5z ZXN0aXZhbA== bGV2aXNpb24= IGJyb2tlbg== IG1hcnJpYWdl IFdlc3Rlcm4= IHJlcHJlc2VudHM= IFRpdGxl IHNz LkFzcw== b25nb29zZQ== aWVudG8= PD4oKTsK IGFic29sdXRlbHk= IHNtb290aA== VEVSTg== IFVubGVzcw== V29yZA== IG1lcmdl aWdhbg== IFZvbA== IG5u LmdldElk INC3 MTcx IHNleHk= IHNlZWtpbmc= U2luZ2xl LnRoaXM= MTc5 IGtvbQ== Ym91bmQ= OyI= IGZvbnRTaXpl X2Rm IGluanVyeQ== KEg= IGlzc3VlZA== X0VORA== OnNlbGY= MDIw IHBhdGNo IGxlYXZlcw== IGFkb3B0 RmlsZU5hbWU= 44CQ IGV4ZWN1dGl2ZQ== IEJ5dGU= XSkpCg== IG51 b3V0aW5n Y2x1ZGluZw== LVI= Lm9wdGlvbnM= IHN1YnN0YW50 YXZheA== IEJVVA== IHRlY2huaWNhbA== IHR3aWNl IG3DoXM= IHVuaXZlcnM= eXI= IGRyYWc= IERD IHNlZA== IGJvdA== IFBhbA== IEhhbGw= Zm9yY2VtZW50 IGF1Y2g= Lm1vZA== bm90YXRpb24= X2ZpbGVz LmxpbmU= X2ZsYWc= W25hbWU= IHJlc29sdXRpb24= IGJvdHQ= KCJb ZW5kZQ== KGFycg== RnJlZQ== KEAi IERpc3RyaWN0 UEVD Oi0= UGlja2Vy IEpv ICAgICAK IFJpdmVy X3Jvd3M= IGhlbHBmdWw= IG1hc3NpdmU= LS0tCg== IG1lYXN1cmVz MDA3 IFJ1bnRpbWU= IHdvcnJ5 IFNwZWM= CUQ= 44CR ICl7Cg== IHdvcnNl KGZpbGVuYW1l IGxheQ== IG1hZ2lj IFRoZWly b3Vs c3Ryb3k= IFdoZXJl Mjgw IHN1ZGRlbg== IGRlZmU= IGJpbmRpbmc= IGZsaWdodA== IE9uSW5pdA== IFdvbWVu IFBvbGljeQ== IGRydWdz aXNoaW5n KCcuLi8= IE1lbA== cGVhdA== dG9y IHByb3Bvc2Vk IHN0YXRlZA== X1JFUw== IGVhc3Q= MjEy IENPTkRJVElPTg== X2Rlc2M= IHdpbm5pbmc= Zm9saW8= TWFwcGVy IFBhbg== IEFuZ2U= LnNlcnZsZXQ= IGNvcGllcw== TE0= IHZt 5Y0= IGRpY3Rpb25hcnk= U2Vn MTc3 ZWxpbmVz IFNlbmQ= IGlyb24= IEZvcnQ= MTY2 LmRvbWFpbg== IGRlYmF0ZQ== Tm90TnVsbA== ZXE= YWNoZXI= bGY= CWZtdA== IGxhd3k= MTc4 xJ8= IE1lbg== IHRyaW0= KE5VTEw= ICEh IHBhZA== IGZvbGxvd3M= Il1bIg== cmVxdQ== IEVw LmdpdGh1Yg== KGltZw== ZXRv KCdc U2VydmljZXM= dW1ibmFpbA== X21haW4= cGxldGVk Zm9ydHVuYXRlbHk= IHdpbmRvd3M= IHBsYW5l IENvbm5lY3Rpb24= LmxvY2Fs dWFyZA== fVw= PT0i YW5kb24= IFJveQ== d2VzdA== MTU4 aWdpbmFs ZW1pZXM= aXR6 Jyk6Cg== IFBldGVy IHRvdWdo IHJlZHVjZWQ= IGNhbGN1bGF0ZQ== IHJhcGlk Y3VzdG9tZXI= IGVmZmljaWVudA== IG1lZGl1bQ== IGZlbGw= LnJlZg== IENhcw== IGZlZWRiYWNr U3BlZWQ= KG91dHB1dA== YWpl IGNhdGVnb3JpZXM= IGZlZQ== fTs= IGRlbGV0ZWQ= cmVo IHByb29m RGVzYw== QnVpbGQ= IHNpZGVz LkFycmF5TGlzdA== LSU= ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA= 2LE= Lm1hdGNo 0LvQuA== IGZlZWxz IGFjaGlldmU= IGNsaW0= X09O IENE IHRlYWNoZXI= X2N1cnJlbnQ= Ym4= X1BM aXN0aW5n RW5hYmxl R0VO IHR2 IHNvY2s= IHBsYXlz IGRpc2NvdW50 IEtF IERlYnVn Rm9yZQ== IElyYXE= IGFwcGVhcmFuY2U= TW9u IHN0eWxlZA== IEh1bWFu aW90 IEhpc3Rvcnk= IHNhYw== IENvbGxlY3Rpb24= IHJlY29tbWVuZGVk LlNlbGVjdGVk IG9yZ2FuaXphdGlvbnM= IGRpc2NvdmVyZWQ= Y29ob2w= YWRhcw== IFRob21hcw== TWF5 IGNvbnNlcnY= IGRvbWlu IEZvbGxvdw== IFNlY3Rpb24= IFRoYW5rcw== VXNlcm5hbWU= IHJlY2lwZQ== IHdvbmRlcmZ1bA== LnNsZWVw X2lm CQoJCg== b3Jubw== IHJ1 X3RhcmdldA== LiIi 4KY= RXZlbnRBcmdz IGlucHV0cw== IGZpZg== IHZpc2lvbg== Y3k= IFNlcmllcw== KSgoKA== IHRyYWRpbmc= IG1hcmtlcg== QmVnaW4= IHR5cGljYWxseQ== IGNhdXNlcw== ZHJvcGRvd24= X0RFQlVH MjYw IGRldGVjdA== Y291bnRyeQ== ISIpOwo= CVI= YXBweQ== IGNyZWY= KCc8 Ij0+ IExF cmVhZGVy IGFkbWluaXN0cg== w7U= dWNrZXQ= IGZhc2hpb24= LmNoYXI= aXphcg== IGRpc2FibGU= IHN1Yw== IExpdmU= aXNzdWU= IG1ldGFkYXRh ZmxhZ3M= IPCf IGNvbW1pdHRlZA== IHZh IHJvdWdo ICcnJwo= IGhpZ2hsaWdodA== X3ZhcnM= Vk8= IGVuY29kaW5n LVo= X3NpZ24= JCgiIw== IHJhaW4= cmVhdGVzdA== IEVORA== U2VsZWN0aW9u IGNhbmRpZGF0ZXM= IHNhdg== LkVtcHR5 IGRlY2lzaW9ucw== IGNvbGxhYm9y cmlkZ2U= ZmVlZA== cmVzc2lvbg== IHBlcnNvbnM= Vk0= MDA4 ZWdh X0JJVA== QWNjb3JkaW5n YWNrZWQ= IGRvbGxhcnM= X2xvc3M= IENvc3Q= fSIK Tm90aWZpY2F0aW9u IHByb3N0aXQ= IGF1dGhvcml0eQ== LnJlYw== IHNwb2tlcw== IFRvZGF5 aXN0YW50 IEhlYWQ= 4oCdLg== ZXJ0YWlubWVudA== Y2Vhbg== Y3VsYXRl IHZlbg== SG93ZXZlcg== X2Fycg== IHRva2Vucw== R3JhcGg= IEp1ZA== IFZpcmdpbg== IFNlcmlhbA== dW5uaW5n TXV0YWJsZQ== YWdlcnM= LmNzdg== IGRldmVsb3Bpbmc= IGluc3RydWN0aW9ucw== IHByb21pc2U= IHJlcXVlc3RlZA== X2VuY29kZQ== LyI= IEljb24= dWlsdA== LWRheQ== IGludGVsbGlnZW5jZQ== LklT IE9ic2VydmFibGU= IEhhcmQ= Qm9vbA== MjEx aWRlbnRpYWw= LkFuY2hvcg== IHNlbGxpbmc= Q0k= QUdFUw== dGxl YnVy VUZGRVI= Ulk= IGJpZ2dlcg== IHJhdA== IGZhbW91cw== IHR5cGVuYW1l IGV4cGxhaW5lZA== fX0K IG51Y2xlYXI= LU4= IGNyaXNpcw== IEVudGVy IGFuc3dlcnM= LyR7 L3Bs IHNlcXU= X25leHQ= bWFzaw== IHN0YW5kaW5n IHBsZW50eQ== IENyb3Nz CXJldA== ZHJv IENhc3Q= MTY3 PXRydWU= IENocmlz aWNpbw== IE1pa2U= RGVjaW1hbA== YWRkQ29tcG9uZW50 TGVu IGNvY2s= ICN7 VVJO PHRy IGF1dGhvcml0aWVz UmVzb3VyY2Vz LUg= Qm90dG9t MDEy X3F1 cHV0ZXI= ZXN0ZXJkYXk= RGlzcGF0Y2g= c2luY2U= IGZhbWlsaWFy LGk= VkM= IG1lbnQ= LEM= IGZyZWVkb20= IHJvdXRlcw== IEJ1eQ== IGNvbW1hbmRz IG1lc2g= L0M= IFNldHRpbmdz LXN0eWxl IHdpdG5lc3M= IGNsZQ== IHVuaW9u ZWZhdWx0 YXJldA== IHRob3VnaHRz IC0tLS0= X3Byb2Nlc3M= X3Vz aW5nbHk= VUVT VG91Y2g= INC8 X29wZW4= IFZlYw== IHJld2FyZA== LkNsaWNr Lzo= IG5pZQ== Q2hhbmdlcw== TW9udGg= 77yf IGV4ZWN1dGlvbg== IGJlYWNo KEludGVnZXI= CWE= Lyc= LkZvbnRTdHlsZQ== IGFib3J0 IFNpbmdsZQ== KGlzc2V0 IGRw IH19PC8= IE1h MjE0 LlJvd3M= IFBldA== JSk= cmFuZA== 6YA= UnVsZQ== IGhlbA== MDIx UklURQ== IHF1aWV0 IHJhdGlv IENPTkRJVElPTlM= b3NvcGg= IElM IGFkdmVudA== Y2Fw Ozwv IFVTQg== RHJpdmVy IG91cnM= IEpvaG5zb24= Lks= X2RlbGV0ZQ== LnE= CXN0cg== L2NvbW1vbg== CXN0cmluZw== IFBERg== YWN0cw== LkFjdGlvbg== IFF1ZXJ5 LnJlc3BvbnNl IEdpcmw= IHByb2Nlc3Nlcw== PEludGVnZXI= aW1v IGFkZHM= IGVudGlyZWx5 IHdhc2g= LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg== IGFuaW1hdGVk IHByb2ZpdA== ZW5jaW5n L1M= IFN5bQ== IG1hbnVhbA== RG93bmxvYWQ= ICghJA== IG1vdGlvbg== d2VicGFjaw== LWJvdHRvbQ== IGdyYXR1aXQ= UEc= KDos IGVyYQ== IGhv IEppbQ== cXVpcg== IEJBU0lT w6Fu REVS IGV4cGVuc2l2ZQ== X2Nv Qm91bmRz V2VsbA== IERlbW9jcmF0aWM= IOKGkg== LlJlbQ== X1NZ bmFtZXM= IFZp IGlzaW5zdGFuY2U= XCI+ ICo9 IFBT IGRhbmdlcm91cw== W3A= T01F T3RoZXI= IFN0cmluZ0J1aWxkZXI= UG9pbnRz aGVhZGluZw== IGN1cnJlbmN5 IHBlcmNlbnRhZ2U= X0FQSQ== IGNsYXNzaWM= dGhlYWQ= IE1P RkU= SWR4 YXdhaXQ= IMOo IGFjY2lkZW50 IHZhcmlhbnQ= IG15c3Q= IExhbmQ= IEJyZQ== IGhhcm0= IEFjYw== IGNoYXJnZWQ= aW9uZXM= VmlzaWJpbGl0eQ== YXJyeQ== IExhbmd1YWdl IHdhbGtpbmc= Ii4KCg== aWZlcg== IGxlYWRlcnNoaXA= LkZyb20= eW5hbQ== IHRpbWVzdGFtcA== aXB0 IEhhcw== UkVGRVI= IEl0cw== IGxpc3RlbmVy VVRF MjEz X2Rlc2NyaXB0aW9u IGV4cGVyaWVuY2Vz IGNyZWF0ZXM= UlM= Y2FydA== YmxhY2s= IGNob2ljZXM= d2Fy NzUw ICcnJw== IG9yZGVyZWQ= IGV2ZW5pbmc= IHBpbA== IHR1bg== IEJhZA== KGFwcA== cmFuZG9t IGV4cGxpY2l0 IGFycml2ZWQ= IGZseQ== IGVjb25vbQ== LW1haWw= IGxpc3Rz IGFyY2hpdGVjdA== MjM0 IFBheQ== IGRz IFNvbA== IHZlaGljbGVz SHo= LWNvbQ== IGtpbmc= X2VxdWFs IEhlbHA= IGFidXNl NDgw MTY5 LS07Cg== IGV4dHI= IGNoZW1pY2Fs 5L8= IG9yaWVudA== IGJyZWF0aA== IFNwYWNl KGVsZW1lbnQ= d2FpdA== REVE aWdtYQ== IGVudHI= IHNvYg== LW5hbWU= IGFmZmVjdGVk aWth IGNvYWw= X3dvcms= IGh1bmRyZWRz IHBvbGl0aWNz c3ViamVjdA== IGNvbnN1bWVy QU5HRQ== IHJlcGVhdGVk U2VuZA== ICNb IHByb3RvY29s IGxlYWRz dXNldW0= RXZlcnk= ODA4 MTc0 SW1wb3J0 KGNvdW50 IGNoYWxsZW5nZXM= IG5vdmVs IGRlcGFydA== Yml0cw== LkN1cnJlbnQ= IGAkew== b3Rpbmc= KFw= IGNyZWF0aXZl IGJ1ZmY= IGludHJvZHVjZWQ= dXNpYw== bW9kdWxlcw== QXJl LWRvYw== bGFuZ3VhZ2U= X2NhY2hl IHRvZA== Pz48Lw== b21ldGhpbmc= IGh1bg== 5bo= YXRlcnM= SW50ZW50 IGltcGxlbWVudGVk IENhc2U= Q2hpbGRyZW4= IG5vdGlmaWNhdGlvbg== UmVuZGVyZXI= V3JhcHBlcg== T2JqZWN0cw== dGw= LkNvbnRhaW5z UGx1Z2lu LnJvdw== IGZvcmc= IHBlcm1pdA== IHRhcmdldHM= IElG IHRpcA== c2V4 IHN1cHBvcnRz IGZvbGQ= cGhvdG8= fSwNCg== IGdvb2dsZQ== JCgnIw== IHNoYXJpbmc= IGdvb2Rz dnM= IERhbg== UmF0ZQ== IE1hcnRpbg== IG1hbm5lcg== bGll LlRoZQ== SW50ZXJuYWw= IENPTlRS TW9jaw== UklHSFQ= ICd7 IGNvbnRyb2xz TWF0 IG1hbmQ= IGV4dGVuZGVk T2s= IGVtYmVk IHBsYW5ldA== IE5vbg== LWNo KSIs ZXBhcg== IGJlbGlldmVk IEVudmlyb25tZW50 IEZyaWVuZA== LXJlcw== IGhhbmRsaW5n bmlj LWxldmVs c2NyaQ== WG1s QkU= dW5nZW4= IGFsdGVy W2lkeA== UG9w Y2Ft ICgoKA== IHNoaXBwaW5n IGJhdHRlcnk= aWRkbGV3YXJl TUM= IGltcGw= b3RhdGlvbg== IExhYg== PGZvcm0= CW5hbWU= IEdhbWVz cmF5 RXh0cmE= VHdv KHBsYXllcg== IExlcw== wrA= IGNoYXJzZXQ= IGpvdXJuZXk= ZXRpbmc= 5pg= 4pQ= 55So IGRpbg== IHBlcm1hbg== IHNvbHZl IGxhdW5jaGVk IG5pbmU= IHNlbmRpbmc= IHRlbGxpbmc= LnBhc3N3b3Jk IE1hdHJpeA== ZXJpYw== IGdyYWI= LnU= IExpYnJhcnk= IGRlYnQ= SU5L LmZpbmRWaWV3QnlJZA== IGZyZXF1ZW5jeQ== LmFk X1RFU1Q= IG5lZ290 IEFmcmljYW4= c2VuZGVy xaE= R2xvYmFs MTcz IGV4cGVydHM= KyspDQo= IGRlcGVuZGluZw== Z3JheQ== IGp1ZGdl IHNlbnRlbmNl bG9zdXJl QWM= IHRyYWNl RWRnZQ== IGZyaWVuZGx5 IGNvbmNlcm5lZA== YmxvZw== IGNsYWltZWQ= fSc= aW50ZWdlcg== X3RyZWU= CWNvbnRpbnVl eGk= IGFjY2VwdGVk X29uZQ== IEVkdWNhdGlvbg== dWJsaXNoZWQ= Z29u YXBwb2ludA== b3V0cw== IG1pbmluZw== IHNvbmdz IGhlcnNlbGY= IGdyYW50ZWQ= IHBhc3Npb24= IExha2U= IGxvYW4= dWVudA== Y2hhbnQ= IGRldGFpbGVk ZXhjZXB0 X2NtZA== IEhF UmVsYXRlZA== enQ= J30sCg== IHNwZWNpZmljYWxseQ== U3RhdGlj IGNhcnJpZWQ= QU5T XCI6 Q3JlYXRlZA== IGN1bA== XS0= X2FwaQ== RlA= IHNpdHRpbmc= ICIiKQ== CWdvdG8= IEVxdQ== IGFzc2F1bHQ= a2lucw== YW5jZXI= b2dlbg== IHZvdGVycw== IFByb3Q= RGVzY3JpcHRvcg== 44O8 LkFzc2VydA== YnNpdGVz b3N0ZXI= LW1lbnU= IGFybXM= LkNsaWVudA== LmJhY2tncm91bmQ= YXZpdHk= IHZ1bA== X01BU0s= IGhvdXNpbmc= IGJlYXI= X2l0ZXI= cGlyZWQ= IG1hcmtldHM= IFN0dWRlbnQ= IHRpY2tldA== IG1pbGxpb25z ZmxhdGVy KT0= IHJlY292ZXI= IEZvcmNl IEJvdGg= IHZpY3RpbQ== IERpc2M= cmVwb3J0 IGZvdXJ0aA== IEFzc2VtYmx5 L3VzZXI= TnVsbE9y dGV4dGFyZWE= IGF0aA== IChb IGNoYW5uZWxz IEp1c3RpY2U= Y2hvaWNl TE9CQUw= ZXhlYw== ZW1hbGU= IGVsZW0= X2xl IHJlc3BvbnNpYmlsaXR5 IFR3 SUNBVElPTg== IGVsc2VpZg== IGZv YXN0cw== IHRyZWF0ZWQ= c2Vu IFZpY3Q= c3VtZXI= X0JBU0U= IGFzdA== Pnt7 IFJlc291cmNl IFN0YW5kYXJk IFByZW0= dXBkYXRlZA== aXZhbGVudA== IGFzc2V0cw== X3RlbXA= IGludGVyZXN0cw== IGhhcmR3YXJl IFJvbQ== IFNoYXJl ICcnCg== ICos IFRha2U= IEltYWdlcw== X0NIRUNL KHR5cGVvZg== IEp1bg== XDxe IGxpcXU= IHdvcnN0 eW1ib2xz CQkJICAg IGRyaXZlcnM= IERvY3VtZW50 ZW5v IFRlY2hub2xvZ3k= IGFwcHJvdmVk dW1wcw== IHNub3c= Zm9ybWFuY2U= X0FTU0VSVA== dWl0cw== MjA3 2YY= IGRpZmZlcmVuY2Vz LlZpc2libGU= CQkJDQo= IFBz X2ZldGNo IHRvZG8= LicsCg== IHNlbA== dXJlcnM= aW52YWxpZA== IHR3ZWV0 VkVM IHJlc2VhcmNoZXJz IHNwcmludGY= IFJP IHBlbA== LlRyYW5z IGlsbGVnYWw= ZGlhbG9n c21hcnR5 bGc= X01JTg== IGhlcm8= ZmluYWw= IHBw Lkxl IGNp CVJU IHN1Z2dlc3RlZA== cGRm YWNoaW5n IFJv IFByb3BlcnRpZXM= IFNp IGJ1eWluZw== IG11 IGxhbmRz aWZpZXJz IEZJTEU= Uk9VUA== IGhvbGRlcg== IFNvbg== IHN5bXB0 LnJvdXRl KT8= IGFyZ2M= IGZvcnQ= IGNhc2lubw== X2NhdGVnb3J5 IGZvcnVt MjE1 cHJlZml4 YXB0dXJl VHViZQ== ZW1z aW1pemU= IG51ZQ== YXVz Y291cnNl QVRPUg== KCkpLA== QWR2ZXJ0aXM= SU5HUw== IGFja25vdw== IEtvcmVh cGxpbmc= IHdvcmtlcg== UExJRUQ= aGFs IFJpY2hhcmQ= RWxlbWVudHM= CQkJIA== c3Rhcg== IHJlbGF0aW9uc2hpcHM= IGNoZWFw QUNI IFhNTA== LCY= IExvdWlz IHJpZGU= X0ZBSUw= IGNodW5r W3M= X09VVA== IGNob3Nlbg== X1s= Lyg= IEplZmY= X3Ns cHJpdg== IENhbmFkaWFu IHVuYWJsZQ== X0ZMQUc= IG5vcw== aGlnaA== IGxpZnQ= ZnVu KCl7 ZWxseQ== eWNsZXJWaWV3 X2Fz X0xJU1Q= IHJhZGk= LmdldFZhbHVl MzA0 IEFuZ2VsZXM= IFNwYW4= X2luc3RhbmNl aXRvcnM= MjA4 IG1pZ3JhdGlvbg== QUs= T2g= wq4= LnNlbGVjdGVk IEdU IGFkdmFuY2U= IFN0eWxl LkRhdGFHcmlkVmlldw== ZWN0aW9u 0Y4= cGlv cm9n IHNob3BwaW5n IFJlY3Q= SWxsdW1pbmF0ZQ== T1U= CWFycmF5 IHN1YnN0YW50aWFs IHByZWdu IHByb21vdGU= SUVX LkxheW91dA== IHNpZ25z Ly4= IGxldHRlcnM= Qm9hcmQ= Y3RybA== Ilw= IEpvbmVz IHZlcnRleA== IGph IGFmZmlsaQ== IHdlYWx0aA== CWRlZmF1bHQ= IHNpZ25pZmljYW50bHk= IGVj IHhz YWN0dWFs LnBlcg== X3N0ZXA= YW52YXM= bWFj IHRyYW5zbA== ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA= SXRlcmF0b3I= IG9jaA== YWdub3N0aWM= IER1cmluZw== IERFRkFVTFQ= IHRpbGw= IHNpZ25hdHVyZQ== IGJpcmQ= IE9s MzEw IEly SFM= YXZhdGFy RVNTQUdF IGVsZXY= IG10 IE5hdg== IHJlbGF4 IHBsYXRl SVRFTQ== KGRhdGU= Lm5vdA== IGdyYWRl IH0pLAo= PyIKCg== aWVuY2Vz SGlnaA== IERJUw== MjMx ZGlzYWJsZWQ= UVVJ IG5vaXNl YXV4 IFVQ ODg4 b3Nh IHZvYw== ICkp b2NvbQ== X09GRg== IERi TG9jaw== LmVjbGlwc2U= LGQ= IERyYXc= ICIo IHZpc2l0ZWQ= IOKI IHN1Y2NlZWQ= IGltcG9zc2libGU= YWlyZQ== IFR1cm4= IGRpc2g= Rkc= IHNlbnNvcg== QU5O YWJh IHN1cmc= XSk7DQo= IGZw X2Fu LUo= LUc= IEpvYg== Q29udmVydA== IEtFWQ== IGF1dGhvcnM= X3NlcnZlcg== XHI= IC0qLQ== ZmxleA== IHNvYw== UmV0 IHNhbHQ= IOKApgoK IENsZWFy KHBhZ2U= LWRhbmdlcg== IHJvb21z Y29udg== I3s= Lm9w IEFyZWE= X1ND aGVu IGJlZ2lucw== LXk= IGV4Y2l0ZWQ= IGlnbm9yZWQ= IGJvbnVz c3R1ZGVudA== IE1lbWJlcg== IHJlbGF0aXZlbHk= IExvdw== IFByb2R1 YXRld2F5 cG9zdXJl IHRoaWNr YW5pZWw= KHZpZXc= IENydXNo RXh0ZW5zaW9u SWw= ZWVk TE9D Lmlt Lkl0ZW1z IGNvbmZsaWN0 LnByZXZlbnQ= MjUy IG9uQ3JlYXRl dXY= aXNlcg== IHdhdmU= TWFy IENvbW11bml0eQ== aWNoZQ== IE5vdGhpbmc= W20= IExlZQ== cmllbmRz MjMy w6hyZQ== ISEh YW56 LnJlc3VsdA== IFNL X1BBUkFN IGRlbW9jcg== QmFja0NvbG9y LmV4aXN0cw== Ikl0 KG9wdGlvbnM= cmF6eQ== YXNlcg== XERhdGFiYXNl YWxlbmRhcg== X2Fzcw== O30K dmVydGV4 aW5lY3JhZnQ= V2FybmluZw== YXJnbw== IGFjdG9y IEluc3RlYWQ= IFVzaW5n U2VsZg== QGludGVyZmFjZQ== IHNwZWFraW5n IFBhcmlz IExJQ0VOU0U= Lm5vZGU= IEZvb2Q= RUlG IEJp LlN0YXJ0 IElC IHVuaXZlcnNpdHk= MjU0 IEhlYWRlcg== LnByb2R1Y3Q= NDA5 Q29weQ== ZXRj cmljYWw= ID4+Pg== Ym9va3M= IGFsZ29yaXRobQ== ICdfXw== KGphdmF4 IG51bWVyb3Vz U2hhcmU= SGF2ZQ== IHJlY3J1 IHByb3Zl LnN1YnN0cmluZw== aGVhbHRo 0LXQuw== IGRlY2ltYWw= IGNvbW1pc3Npb24= c2NyaXB0aW9u eEM= IHN1bW1hcnk= YXR0ZWQ= IGNsb3Nlcg== ZmluaXNoZWQ= KCkpewo= IFdvb2Q= MzAx X2ZpZWxkcw== a3U= X2l0ZW1z RmxhZw== IGNvbmZpZGVuY2U= IEZlZGVyYWw= ZHV4 IGNvbXBhdA== IHZlcnRpY2Fs 0Lk= w6hz OyI+Cg== X21hbmFnZXI= KCkpKQo= SURF OiIs MjM1 X18K IFdheQ== MjIx 0Yg= VGVtcA== IFNUUg== cml0dGVu U3luYw== IEFW IENFTw== IEd1aWQ= IGVudmlyb25tZW50YWw= IGNvcnJlc3BvbmRpbmc= CWNvbnNvbGU= IGp1c3RpY2U= IEpT IGxpdmVk Z2Fy IEdyYXBo IFN0YXQ= IGlQaG9uZQ== LmFs IEhE IG9jY3Vy IHRocmVzaG9sZA== NTA5 IG9uY2xpY2s= UkVH LkdyYXBoaWNzVW5pdA== TWV0YQ== xb4= IGN1bQ== LmdudQ== w6s= IG9idGFpbmVk IGNvbXBsYWludA== IGVhdGluZw== IHRhcg== X3Rhc2s= IG9wdHM= MjE2 KHRv UGFzcw== IHBsYXN0aWM= dGlsaXR5 IFdpbg== LnByZXZlbnREZWZhdWx0 cGlsZQ== IEdhcg== IHF1YW50aXR5 X2xhc3Q= IGdyZWF0ZXN0 RGFv X0RJUw== IFVzZWQ= IEhQ cml0aW5n U0lPTg== Ymx1ZQ== ZG9tYWlu IHNjb3Jlcw== Tm9ybWFs X2FkbWlu IEFTU0VSVA== VGhlbg== Kioq ZGlzdA== bG9u IGhhdGU= c2hhbA== SW1hZ2VWaWV3 ZGF0YWJhc2U= IHBhbmQ= IGxvZ2lj PWZhbHNl Ymc= IENvbmZpZ3VyYXRpb24= IG51cg== T0c= IG1hcnJpZWQ= Ois= IGRyb3BwZWQ= MDQw IHJlZ2lzdHJhdGlvbg== 0L7QvA== dWx0aXBsZQ== aXplcnM= c2hhcGU= LmNvcHk= IHdlYXJpbmc= IENhdGg= IGRlZGljYXRlZA== IC4uLgo= IGFkdm9j IEZhbWlseQ== IHN0YXRlbWVudHM= ZW1hdGlj YW1waW9uc2hpcA== IG1vdGl2 IEhhdmU= IGJsb3c= Sm9i Y2VydA== X3ZlY3Rvcg== aW5zdGFsbA== IENPUFk= ZW1iZWQ= RElS IFNwcmluZw== IGV4aGli MjIz Y2Ru IENvbW1lbnQ= IE9wdGlvbmFs LnBsYXllcg== IERhcms= KHBvcw== IFNob3VsZA== IGNlbnRyZQ== IEd1YXJk w7N3 IHRyb3VibGU= RU5FUg== KHVuc2lnbmVk X3NlcnZpY2U= IG5z dWxpbmc= IE1leGljbw== IE5Z bXlzcWw= IGxpYw== 5Zw= TXI= LWZs IEN1c3RvbWVy aWRp ID8+Cgo= cmlibGU= INC/0YA= IHNpemVz X1NUUklORw== dmFsaWRhdGlvbg== IEpvbg== KEh0dHA= YWRkQ2xhc3M= Tm9kZXM= IGZyYWdtZW50 IHNwb2tl IHdhc3Rl Sm9pbg== IGlsbHVzdHI= ZWxp Y2llbnQ= IGFpZA== IHByb3NlYw== Jyl7Cg== IHBhc3Npbmc= IGZhY2Vz U2hhcGU= X1o= aXRp IGFsbGU= IHJvYm90 ICAgICAgIAo= IFNwZQ== IHJlY2VpdmluZw== IERldGFpbHM= ICIp bWc= X1JFRg== IGNvbXBhcmlzb24= Kiw= IEZvdW5k X3Nlc3Npb24= KFU= L0Y= IHh4eA== TmV0d29yaw== ZGVycw== IGNhcHR1cmU= IGNvcnJl IEx0ZA== IEFkdg== W0A= IGNsaXA= TWlsbA== IFByb2ZpbGU= IGVuZGlm IG9ibGln ZGVzY3JpYmU= LmVsZW1lbnQ= cml0ZXJpb24= TEQ= ZXJlZA== IGZhdm91cg== c2NvcmU= IEZpbHRlcg== YXR0cmlidXRlcw== IGNoZWNrcw== SW5mbGF0ZXI= IFBsdXM= IHNjaWVudGlmaWM= IHByaXZhY3k= SGVhZA== IGZlYXQ= IGRlZ3JlZXM= IFBhbGU= OyI+ IGZpbG1z IEF1ZGlv IFRhZw== IEVuZXJneQ== aXRhcg== cGFyYXRvcg== IGZlbGxvdw== IGV2dA== IFRyaQ== IERBTQ== Y2xvdWQ= IFBhc3N3b3Jk IERlbW9jcmF0cw== IEFjYWQ= JGxhbmc= IHJlYg== KCkpCgo= 0L3Riw== IEJ1cg== cmVhZGNy IGhleA== MjA5 Q29uc29sZQ== Y3Rs b3VzZWw= IFdpbGxpYW0= IGF6 X1BPUlQ= IHByYWN0aWNlcw== IGFueXdoZXJl IFBvc2l0aW9u IC0+Cg== aWFtcw== LnVzZXJuYW1l cGxhY2Vob2xkZXI= IG9kZXI= IFNlY3JldGFyeQ== IGlU bW9uZA== ZXZlbnRz P+KAnQ== LlN1Yg== IGF0dGFjaGVk IG7Do28= IGVzdGF0ZQ== MzY1 LmFjdGlvbg== IGZpZ3VyZXM= IH0pOw0K IHN1YnNjcmk= LnRhZw== bmFt LnBsb3Q= bm9vbg== bGlhbWVudA== Q2hhcmFjdGVy LnRhYg== IHdpbnRlcg== IFZhcmlhYmxl IHRyZWVz IHByb3Vk KFY= X2xvYWQ= IGhpZXI= IEVjb24= IGZk IHZpY3RpbXM= UmVzdA== aWFuYQ== IGZha2U= LlByaW50bG4= IHN0cmxlbg== IHNhZA== IGJsZQ== UHJvdA== IGJ1dHRvbnM= IHRlbGV2aXNpb24= IGxvZ28= ZXh0ZW5zaW9u CWo= c3RlaW4= YWNpb25lcw== ICIiIgoK IHNpbXA= IHJlY29yZGVk IGJyaW5ncw== IHByaW5jaXBhbA== IGZlZXM= KHNvdXJjZQ== a2Rpcg== IHV0aWxz IGNvcnJlY3RseQ== Zmls IHdlbA== UGFpcg== LWJ1dHRvbg== c2NhbGU= dmVyaWZ5 W2M= IC0tLQ== IGVzY2FwZQ== aWtlcw== TG93ZXJDYXNl aWNpYW4= IGNoYXB0ZXI= IFRZUEU= IHNoYWRvdw== IGF3ZXNvbWU= V0U= ZWxpZg== IGxhbWJkYQ== IGRpc3RpbmN0 IGJhcmU= LW9mZg== IGNvbG91cg== LmFwcGVuZENoaWxk b2xlYw== YWdh LmZpbGw= CXN1cGVy IGFkag== KHBvc2l0aW9u LmdldEl0ZW0= MjQy U2hvcnQ= IHRvdGFsbHk= VkQ= IFRyZQ== X2Vw dmVtZW50cw== IFNvbHV0aW9u IGZ1bmRhbWVudA== Rm9sbG93 IGZhY2lsaXR5 IGhhcHBlbmluZw== T0Y= LnRleHRCb3g= U3Bhbg== IMKr aWRlbg== IGV4Y2VlZA== KHBhcmVudA== IGNw 57s= IGhhc24= IHByaQ== IGNvbnNlcXU= bmVu IElOVE8= SWdub3Jl IEZ1dHVyZQ== IGNhcmJvbg== IFN0ZWVs Zm10 b2tpZQ== IHNwbA== KHRpdGxl LWluZm8= IGRlYWxz IGZpeHR1cmU= ZWE= RGl2 IHRlc3RlZA== X3JldHVybg== KQoKCgo= dXBwb3J0ZWQ= IENvb2s= IHBheWluZw== IElsbA== IGFycmVzdGVk IFByaW1l X2NhbGxiYWNr PiwK ZHJpdmVy T25jZQ== YWJi X2J5dGVz IFNldHM= KE9iamVjdA== IGNj IHNoZWxs YWxv KTsvLw== KGxvZw== MjY0 Y3RvcnM= KTwv IG5laWdoYm9yaG9vZA== NDIw YWlsYWJpbGl0eQ== dm9s IHlvdXRo IHRlY2huaXF1ZXM= IFNjaGVtYQ== dWg= bWVudGU= IHJlcG9zaXRvcnk= aW1t IGNvb2tpZQ== SlM= b3ZpZXM= Ons= Q29tcGxldGU= U2luY2U= IGxhdWdo X0JP ZW5hYmxl IERvZXM= IFdhbGs= d2hhdA== a2Vz IG11bHRpcA== aW1lbnRz ZXVy IHZpY3Rvcnk= R2VuZXJhdG9y IE1vcw== cm92ZXJz IGNvbXB1dGU= IHByb3ZpZGVycw== IE1lZGlj TFA= X0NPTkZJRw== IHZldGVy c3RlcnM= X3dpbmRvdw== dW1lcmlj CQkJCQkK LlJlc3BvbnNl IHJlcGxhY2Vk LnJvb3Q= LWZyZWU= LWNvbnRhaW5lcg== IG1hdGNoaW5n IEVkaXRvcg== PSR7 IFNhZg== IHNpbmQ= KGJ1ZmZlcg== 5Yc= LmVkdQ== KV07Cg== IE5GTA== YXlh IGRvZ3M= IGRlc2lyZQ== IE1pZGRsZQ== Q2FydA== MzA2 VGhlbWU= IG1vYg== IGRpc3BsYXllZA== aWdpdA== IGFkdWx0cw== IiIi IGRlbGl2ZXJlZA== dmlzaWJsZQ== Ijp7Cg== PDw8 IEdP c2Nyb2xs eEU= IGFzc2lnbmVk IEJvb2w= IHdw IGNvbWJhdA== IEhhdw== Li0= IHN1cHBvcnRpbmc= LkNvbnRlbnQ= MzQ1 aXJjcmFmdA== IHNwaW4= IENS Lm15 4KU= dHBs IHNwYWNlcw== Pyw= Mzg0 IFN5cmlh IHBhdHRlcm5z LWJveA== IGZyYW1ld29yaw== LyU= KGxvbmc= IHRlYWNoaW5n QVJOSU5H X2tleXM= IHRhYmxlcw== VU5D aW5hdGlvbnM= LXdlaWdodA== cmFkaW8= IFBhYw== LnNlcnZlcg== LkNoYXJGaWVsZA== cmluZw== IHF1b3Rl YW5uYQ== IHdlcmRlbg== IGNyZWFt IG1hY2hpbmVz LWs= Mzc1 IHN0aW0= IFN0b2Nr cmljaw== IGltcG9ydGFuY2U= cng= w7Vlcw== 2Yg= IHN0cm9rZQ== YWdyYQ== IHRhc3Rl IERFQlVH VGhhbmtz IFJlcXVpcmVk b3Zh TWVkaWE= IHNpxJk= KGJhc2U= cG9zdHM= IGZpbGVOYW1l Q2hlY2tlZA== IGludGVycnVwdA== ICgpCg== cHl0aG9u cGFpcg== IGNpcmNsZQ== IGluaXRp X3N0cmVhbQ== IGNvbXByZWg= bGVhcm4= UHVibGlj IGh1bWFucw== IGJyaW5naW5n b2dyYXBoaWM= X2xheWVy LWxpa2U= dXBwb3J0SW5pdGlhbGl6ZQ== aWRlYmFy IHZvdGVz IGRlc2lyZWQ= TWFzaw== IHJlbGF0aW9u Lkluc3RhbmNl SGVscA== IGluc3Bpcg== IE1vbm8= Vmlld01vZGVs b21ldGltZXM= IGJhY2tncm91bmRDb2xvcg== IHJvdGF0aW9u IG1hcmk= L3Rlc3Q= SU5TRVJU U3Rhcg== cGh5 SWRz X0dFVA== IGluY3JlYXNlcw== X2Nsb3Nl MjMz X0ZPUk0= IFvigKZdCgo= YXph VEVYVA== IMOk IFZhbg== IGxpZ2h0cw== IEd1aWRl IGRhdGVz LkNvbW1hbmQ= YW1hbg== IHBhdGhz LmVkaXQ= CWFkZA== ZHg= IHJlYWN0aW9u IEJlYWNo LmdldE1lc3NhZ2U= RW52aXJvbm1lbnQ= aW50ZXJlc3Q= IG1pbmlzdGVy IHJlYWRlcnM= CUY= IGRvbWVzdGlj IGZpbGVk Q2l0eQ== IG1hcHBpbmc= IERFUw== IHJlcGFpcg== dGljcw== aXh0dXJl IG5vbWJyZQ== LklTdXBwb3J0SW5pdGlhbGl6ZQ== em8= LklzTnVsbE9y IENhcm9saW5h IERlcg== IEVWRU5U IGdlc3Q= IGhpc3Q= cmVzb3VyY2Vz IG9ycGhhbg== LkFyZQ== IEludmVzdA== UkVGRVJSRUQ= LkxvZ2dlcg== IFJvbWFu IGN1bHR1cmFs ZmVhdHVyZQ== cHRz YnQ= IGRvdA== IGRpYW0= dXNwZW5k X2FjY2Vzcw== KCl7DQo= IHN1cnByaXNl YWJpbA== IHZpcnQ= IGJvbWI= YXJvbg== X0lT IHZhc3Q= UmVhbA== ZXBlbmQ= aWN0ZWQ= IHBpY2tlZA== IEZM IFJlcHVibGljYW5z Lnplcm9z UHJlc3NlZA== c3Vw LkNvcmU= TWljcm9zb2Z0 c2VydmljZXM= YWdpYw== aXZlbmVzcw== IHBkZg== IHJvbGVz NDAz cmFz IGluZHVzdHJpYWw= IGZhY2lsaXRpZXM= MjQ1 6KE= IG5p IGJh IGNscw== CUI= Q3VzdG9tZXI= IGltYWdpbmU= IGV4cG9ydHM= T3V0cHV0U3RyZWFt IG1hZA== KGRl KXsKCg== IGZybw== aHVz IGNvbW1pdHRlZQ== 7J20 LHg= IGRpdmlzaW9u KGNsaWVudA== KGphdmE= b3B0aW9uYWw= LkVxdWFs IFBoeXM= aW5ndQ== MDMz NzIw IHN5bmM= IE5h fX08Lw== T0xVTQ== aXTDqQ== IGlkZW50aWZpZXI= b3dlZA== IGV4dGVudA== IGh1cg== VkE= Y2xhcg== IGVkZ2Vz Q3JpdGVyaWE= IGluZGVlZA== aW5oZXJpdA== IE5pZ2h0 MzAy IHJlcG9ydGluZw== IGVuY291bnRlcg== IGtpbmRz X3ByZWQ= IGNvbnNpZGVyaW5n Lig= IHByb3RlaW4= VHlw Z3JpY3VsdA== IEJhbGw= QENvbXBvbmVudA== IEVzcw== IFJ1Yg== ODAy dWxw ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA== aXR1ZA== LmF0dHI= aWVudGU= IHNwZWxs IEpvZQ== RU5URVI= X2hvc3Q= aXRhbg== IG1hdHRlcnM= IGVtZXJnZW5jeQ== dWF0ZWQ= IENoYXQ= PXsn Y29udHJp YXJrZXI= 5oiQ aXBlcg== IHNjaGVtZQ== KHN0ZGVycg== ICoo Y2VpdmVy LmNvbHVtbg== IG1hcmtlZA== X0FUVFI= IGJvZGllcw== IElNUExJRUQ= R2Fw IFBPU1Q= IGNvcnBvcmF0ZQ== IGRpbWVuc2lvbg== IGNvbnRyYXN0 ZXJ2aWV3 IEVSUk9S IGNhcGFibGU= IGFkdmVydGlzaW5n dXJjaGFzZQ== IFBB IEZyYW5jaXNjbw== IGZhY2luZw== 44CM Z2l0 IGJlZXI= IHNreQ== ZG93bmxvYWQ= IEN1cg== bWM= YW5ueQ== LmZsb29y IGNyaXRlcmlh IHBhcnNlSW50 YCwK IGFzcGVjdA== IGJ1bmRsZQ== Q291bGQ= IHRhbms= LWlk IGh1cnQ= IGJyb2FkY2FzdA== T0tFTg== b3dudA== bnVsbGFibGU= Q2Fw IGFsY29ob2w= IENvbGw= IEhlbHBlcg== IEFm Lm1ldGhvZA== IHBsYW5uZWQ= cGxlcg== IFNpdGU= IHJlc2M= b21lbnQ= IEphdmFTY3JpcHQ= U0VSVkVS IHJocw== ZXJlcw== KCIs aWZp LmZpZWxkcw== IHBhcmtpbmc= IGlzbGFuZA== IHNpc3Rlcg== Xwo= Q29uc3RyYWludHM= IEF1c3Q= ZGlt X3BvaW50cw== IGdhcA== X2FjdGl2ZQ== IHZvb3I= IFBP QmFn LXNjYWxl bGFtYmRh LkRpc3Bvc2U= cnVsZQ== IG93bmVk IE1lZGljYWw= MzAz ZW50cmllcw== IHNvbGFy IHJlc3VsdGluZw== IGVzdGltYXRlZA== IGltcHJvdmVk RHVyYXRpb24= ZW1wbG95ZWU= JC4= QWN0aW9ucw== TGlrZQ== LCg= KFJlcXVlc3Q= JXM= Lk9wZW4= KSIK IHBpeGVs IGFkYXB0ZXI= IHJldmVudWU= b2dyYW0= IExB IE1hY2hpbmU= INin IGZsZQ== IGJpa2U= SW5zZXRz IGRpc3A= IGNvbnNpc3RlbnQ= YcOnw6Nv Z2VuZGVy IFRob3Nl cGVyaWVuY2U= LkJhY2tDb2xvcg== LnBsYXk= IHJ1c2g= IGF4aW9z IG5lY2s= X21lbQ== LlBSRUZFUlJFRA== X2ZpcnN0 Q0I= IFdpZGdldA== IHNlcQ== aGFy IGhpdHM= IOKCrA== IGNvbnRhaW5lZA== cmllbnQ= d2F0ZXI= TE9BRA== IFZpcmdpbmlh IEFybQ== IC4v wrs= X3Jvb3Q= IGFzc2lzdGFuY2U= W10s c3luYw== IHZlZ2V0 ZXNjYXBl aWNlcg== Ym9vc3Q= IEZsb2F0 LVc= Ki8NCg== Kj4= MjE4 ICQoIi4= LnBvcw== IGJveXM= IHdlZGRpbmc= IGFnZW50cw== PSJf IEFybXk= IGhpbnQ= dmlzaW9u IHRlY2g= IENvbm5lY3Q= IGxlZ2VuZA== IEJldA== LkJhc2U= U3ViamVjdA== IGxpdA== UmVtb3Zl ICI6 IEZpbmFs cGVhcmFuY2U= IGlUdW5lcw== IHBhcnRpY2lwYW50cw== IFB5dGhvbg== IGJ1c3k= aWVs dmVydGljZXM= IHRlbXBsYXRlVXJs IENsb3Nl SW1n IENvcnBvcmF0aW9u dGltZXN0YW1w IGV4dGVuZA== IHdlYnNpdGVz IHBvc3NpYmlsaXR5 0L7Rgg== IGvDtg== IG1lYXQ= IHJlcHJlc2VudGF0aW9u MjQx IAkJ X1NUQVJU LmFwcGx5 IFZhbGxleQ== IFN1Y2Nlc3M= SGk= IG5vYg== IElFbnVtZXJhYmxl X3NlbGVjdA== Z2Vv LiIpCg== IHR1cm5pbmc= IGZhYnJpYw== KCIiKTsK IHBlcnNwZWN0aXZl 6Zc= IFNu VGhhbms= O2o= LlBhcmFtZXRlcnM= CSAgICAgICAgICAg IGZhY3Rz MzA1 IHVudA== Lmluc3RhbmNl IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw== LWVuZA== IEpPSU4= IEhlbg== IHVyaQ== 5ZCN INC90LA= IEluZm8= IGNvbmR1Y3RlZA== IMOl T1VSQ0U= IHdpbmU= Sm9obg== LkVycm9yZg== IEFnZQ== b3VuZGVk IHJlYWxpemU= MzEy IF07 IHN1YnNlcXU= LG0= KFVzZXI= aWFubw== IGFjY29tcGw= aXNw LnN0ZA== 6Yc= IEJlZA== LnNldEF0dHJpYnV0ZQ== QlI= a2VlcA== IEFMTA== IGlzb2w= YW1tYQ== UGFja2FnZQ== IG9jY2FzaW9u LXN1Y2Nlc3M= 0LXQtA== IExJTUlURUQ= c3RyaXA= KCkKCgo= aXN0cmlidXRpb24= Q29sb3Jz ICs6Kw== RGlkTG9hZA== YWxlcg== IHRpZA== IExFRA== IExpbmtlZA== IENhcnQ= KCkpDQo= X1JFQUQ= IGtpbGxpbmc= IFBIUA== ZmVjdGlvbg== IGluc3RhbmNlcw== Y3Y= Ii8+ IHNm IHRheGVz X2xvY2F0aW9u IEJpdGNvaW4= dWFibGU= cmFuaw== aWdub3Jl dHJhY2s= 0LrQsA== IHNob3VsZG4= IE9Q PT57Cg== IGtt IGhlbHBlcg== X2hlYWQ= IFdoZXRoZXI= b2Nv X2Js IHN0YXRpc3RpY3M= IGJlYXV0eQ== IHRvZw== dGlw 64uk IGNzdg== KHNxbA== c3RkbGli d2Vhaw== IGxpa2Vz xI0= IHJlcGVhdA== IGFwYXJ0bWVudA== IGVtcGg= X2VkaXQ= IHZpdA== CXR5cGU= MjE3 RXZlbg== dXRlbg== IGNpcmN1bXN0YW5jZXM= Ymlhbg== IHN1Z2Fy V2luZG93cw== 7J4= IG9ic2VydmVk L2RhdGE= IGNhbGVuZGFy IHN0cmlrZQ== IFJFUw== X3Nj Zm9ueQ== b3JlbQ== KHo= cG93ZXI= ZXRlY3Q= IFNhdA== LmRlc2NyaXB0aW9u IGdhbmc= IFNwb3J0cw== b25ncw== IEJ1bmRsZQ== LnN1bQ== b25jZQ== IGFjY3VzZWQ= IGV4cGxvcmU= IGFwcHJveGltYXRlbHk= IGxvc2luZw== dGhlc2lz IEZ1bmQ= IGRpYWdu QXV0b3dpcmVk cHJvcGVydGllcw== IF8u IGNudA== Y2VkdXJl IHl5 IGdyYW50 c29jaw== LmlubmVySFRNTA== IF0pOwo= IENPTkZJRw== PSck NTUw XV07Cg== VU5E IGdsb2I= IGRpcmU= dWZmbGU= X01FTQ== IGF1dGhlbnRpYw== Pigi IGRlY2FkZQ== IEltcG9ydA== IG9yaWdpbmFsbHk= IGpRdWVyeQ== IGluZGljYXRl IG91cnNlbHZlcw== U3c= LmxibA== ZW5lcmF0ZQ== IGJhc2ljYWxseQ== IEhvbQ== ICsjKw== IEJyaXRhaW4= IEthcg== dG9FcXVhbA== LnN0b3A= IG1vZGFs aXNp IHN1Z2dlc3Rz IGR0eXBl IHR1cg== YmY= IGNvbm5lY3Rpb25z IEJlZm9yZQ== aXN0ZWQ= bW91c2U= IHB1bGxlZA== LmJ1aWxk IGxlZ2lzbGF0aW9u IGZvcnRo cGFk ZWdv Lk5vdw== IGV4Y2l0aW5n fQoKCgo= IGNvbXBy IHNoYXJlcw== IHJpZw== Z3JlZW4= X3ZlYw== IGVudW1lcmF0ZQ== QXV0bw== aWNhdG9y IFJheQ== YXNzZQ== IGhvbGlkYXk= IG51bGxhYmxl Z3Vu X2RldGFpbHM= IHdyYXBwZXI= c2Vx IFlvdW5n anVhbmE= ICJfXw== bGljZW5zZQ== c2VydmU= Xig= aWRlcnM= LlJlbW92ZQ== cm9wZG93bg== J1M= cGlu KHRva2Vu LkRlZmF1bHQ= IHJlYXNvbmFibGU= YW1waW9u IFNvY2lldHk= IGJlaQ== ZXJ2ZXM= cmFk IEZveA== X2ltYWdlcw== IHdoZWVs Jylb IGNmZw== KEJ5 Q29uc3RydWN0b3I= IHZhcnk= LnN3aWZ0 IHByb3h5 CUg= IEFub3RoZXI= IFBlbg== IGNoZWNraW5n IGplc3Q= bWFuYWdlcg== T3JpZ2lu dWdz b2ly PjwhLS0= IGV4cHJlc3NlZA== IG1vZGVy IGFnZW5jaWVz IGlo LWhpZGRlbg== aW91c2x5 IFJvZA== IHNvbGU= TWVk LkFueQ== IHBj YmFs RXhhbXBsZQ== IFNhbGU= IHN0cmlw IENvbXA= IHByZXNpZGVudGlhbA== TW9zdA== cHV0YXRpb24= KHJlZg== IEZvdXI= X2ZpbGVuYW1l IGVuZm9yY2VtZW50 2K8= IEdlb3Jn d2VpZ2h0cw== L2w= IGFnZ3Jlc3M= IGRyYXdpbmc= YW5keQ== PEk= LWo= YWth aHJlZg== IHRlYWNoZXJz X1E= KGl0 IE1C IHRlbXBvcmFyeQ== aXJlYmFzZQ== c3RyYQ== 5pe2 6LQ= KGxhYmVs b3Vw IHRvcGljcw== IHBvcnRpb24= aWRvcw== IEpld2lzaA== IHJlY292ZXJ5 NjUw IHN0YW5kcw== I1s= IGFmdGVybm9vbg== IEFydGljbGU= X2F0dA== IGV4cGxhbg== IFBhaw== LnNldE9uQ2xpY2tMaXN0ZW5lcg== LmNoaWxkcmVu IGlr Kyg= bGFn IGRpc2s= IGNvbnRyb3ZlcnM= Ij4m YXNw IHdpZQ== IEF1c3RyYWxpYW4= IFlvdVR1YmU= QXR0cg== Y29udGFpbnM= ZHVjZQ== IE1hdHQ= MzQw YXRlcm4= IHZvbHVudGU= IG5ld3Nw VlA= b2x0aXA= IGRlbGVnYXRl X21ldGE= IGFjY3VyYXRl IEV4YW1wbGU= JSw= IERhaWx5 IGNhYmlu IFNX IGxpbWl0cw== a2lw IGFybXk= IGVuZGluZw== IGJvc3M= IERpYWxvZw== QWxzbw== PSIjIg== b3JkYW4= cm93c2U= LW1pbg== ICIm X2xvYw== VVg= IGRldmVsb3BlcnM= IGFjY3VyYWN5 IG1haW50ZW5hbmNl IGhlYXY= IGZpbHRlcnM= LlRvb2xTdHJpcA== IG5hcnI= IEVtcA== T1JERVI= IE1vYmlsZQ== LlNlcmlhbA== Lm91dHB1dA== MjQ0 LmNvbA== TWF0ZXJpYWw= dW1h IGNvbnN1bWVycw== c2hpZnQ= IHB1ZWQ= IG1pbmk= Y29sbGVjdGlvbg== IGthbg== LmNlbnRlcg== SGlzdG9yeQ== IGJlbmNo KCkpOw== aXRvcmllcw== IGNyb3dk X2NhbGw= IHBvd2Vycw== LUU= IGRpc21pc3M= IHRhbGtz IENoYW5uZWw= Zm9yd2FyZA== X2NvbnRyb2w= L3NyYw== aWVzdA== KioqKioqKioqKioqKioqKioqKioqKioq IGJldGE= KGNvbG9y X09CSkVDVA== IEFwaQ== IGVmZmVjdGl2ZWx5 Q2FtZXJh c2Q= dXNzeQ== Mjkw RGljdA== IEVmZmVjdA== aWJpbGl0aWVz IHJldHVybmluZw== IEZhcg== ICcnKQ== IG1vZHVsZXM= MjE5 aWxhdGlvbg== ICgl VFJHTA== IHN0b3Jt b25uYQ== IEVYUA== IHNwb25z IGRpc3Bs ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ZmFsbA== 5Yw= aWduS2V5 X1VT ZXRyaWNz IGhhbmRsZXM= VEw= X2Ftb3VudA== b3dh YnJhbmQ= IFRvb2w= IHVzdWFs Llo= Y3JlbWVudA== YWRpdW0= c3RvY2s= IHNlcnZpbmc= IEJvbg== IGxpbmVhcg== IFRhcmdldA== IFJhZGlv SEw= U2hhZGVy b21hdGlj YWd1ZXM= aW5pdHk= ZGlmZg== X2l0ZXJhdG9y cXVvdA== ICwK Y2FsbGJhY2s= IHN5bXB0b21z W18= IEJ1bA== IEZlYg== dW5kbw== X2FjY291bnQ= IHR5cGVkZWY= 0LjRgQ== dHJhcw== VXNlcklk IFBlbm4= IFN1cHJlbWU= fT4= dXNlcklk MzI3 IEtpbQ== IGdh IGFydGlzdHM= 5bg= IEFic3RyYWN0 b2tlbW9u IGhhbQ== b3ZhbA== IGNoYQ== YXRlbg== 5YY= Rml4ZWQ= IHZ1bG5lcg== IFBhcmFtZXRlcnM= cXVhbnRpdHk= LkNsZWFy U2VydmxldFJlcXVlc3Q= IHlh IHNvdWw= MDgw dHJhbnNhY3Rpb24= IHNvbG8= IHBhaXJz 5pQ= IEdyZQ== X3dvcmQ= IEND IGdp emll IHNjaGVkdWxlZA== cm90YXRpb24= Z3lwdA== dWxvdXM= Ojpf IEVsbA== PCE= CQkgIA== bHA= YWhh Q29weXJpZ2h0 MDA5 IGRyYW0= MjUx IGRpYWdyYW0= IE1lbQ== IGdhcmRlbg== Q29tcA== IGF0dGVtcHRz dWZmaXg= Pigp IHBoaWxvc29waA== X3JlbA== 5bw= IHN2 LnNlY29uZA== YW50bw== Lkpzb24= IFRlbGU= X2xvY2Fs X3NlbmQ= IGFzcGVjdHM= 7Jc= SUJMRQ== IHJhaWw= IHdpZGVseQ== YXNoZWQ= aWFy aW5m dXBwZXI= ZGphbmdv X3Jlc3VsdHM= aXNzaW5n IGVxdWl2YWxlbnQ= T1VORA== IHR5 IHBvdGVudGlhbGx5 QWR2ZXJ0aXNlbWVudA== MjM4 IFJlY29yZA== Mzgw cmVzZW50YXRpb24= X3dpZGdldA== b3VuZGluZw== IHJlbGlnaW9u IGNvbnNj IExpbQ== LmFt SHRtbA== ICc6 UEFUSA== X3NwZWM= b3J0ZWQ= aWRhZGVz X3NoYXBl IGtlZXBz LlNhdmU= IExvYw== b3Jp IFRFU1Q= dW5pY2lw IHJlZ2lvbnM= IGJlbGlldmVz L2Vu cG9zaXRl eyc= cHJlcGFyZQ== X2NvbnN0 c2FtcGxl IFdpbGxpYW1z IHN0cnQ= X0dldA== IEFuZHJldw== LmFjdGl2ZQ== IGxheWVycw== VmlzdWFsU3R5bGU= YXp5 IEtu IGFjaWQ= IEFzaWE= IGV4Y2Vzcw== CW15 IGtleWJvYXJk ZW5zdXM= IGNyZXc= IG1pc3NlZA== bWFzdGVy IFdpbGQ= IG5ld2x5 IHdpbm5lcg== IHN0dWI= aWNvZGU= Lm1vdmU= RG9tYWlu IFNhcg== IGZvcmVzdA== TEVE Y2xhaW1lcg== LmV4aXQ= IFdpbmRvdw== IHJlc2lzdGFuY2U= IENIRUNL KCIt IFJ5YW4= IHBpcGU= IGNvYXN0 REVG Ly8h X29mZg== ZXhpdA== IHVsdGltYXRlbHk= aW1pdGl2ZQ== IEtlZXA= IGhpc3RvcmljYWw= IGFueXdheQ== IEphY2tzb24= b2NrZXI= RVJO IFVJTlQ= eW50YXg= RVJZ aXNtcw== IGNu IG9jY3Vycw== IDs7 VGV4dFZpZXc= QUU= L2ltZw== IHllc3RlcmRheQ== LWRlZmF1bHQ= IHRpbnk= IHByb2M= IGFsaXZl IFJFRw== LnRo ZWFyaW5n LmdldExvZ2dlcg== PGxpbms= X2xvZ2lu Rm9sZGVy YWJj bHlwaGljb24= 0L3Qvg== IG5vdGljZWQ= b2RpZ28= IGVkaXRpb24= aW1hdG9y LkVuYWJsZWQ= LnBhcnNlSW50 IHlhcmRz CQkJCQkJCQkJCQkJ IHZlcmJvc2U= 0LvRjw== X0JZ LmxvZ2lu Lio7Cg== IE1pZA== w6llcw== IGdsbw== IGJ1aWxkaW5ncw== IHpl IEl0ZXI= IHR1YmU= IFBvdA== XE0= MjUz PHRo YnJpZGdl IFNjcmlwdA== IE1vZHVsZQ== IHZhY2M= IGluc3RhbGxhdGlvbg== dnk= VmlzdWFsU3R5bGVCYWNrQ29sb3I= IFNN LnRvdGFs NjQw YmF0 IGZpbmRz IGF0bW9z U3Vidmlldw== aXphcmQ= IHJlcGxhY2VtZW50 bGljYXRlZA== YXBpcw== IGxvZ2dlZA== IExlZnQ= R3Vp X1R5cGU= dG0= UGFk IGhvdXNlaG9sZA== IHJlbGU= IHByb3Bvc2Fs X0NMQVNT MjQz Ojo6Og== IGluZnJhc3RydWN0dXJl SW5qZWN0 L2h0bWw= MjI2 IGFkcw== aXp6YQ== IG1n Y3RyaW5l JQo= PGh0bWw= LWltYWdl IGF0dG9ybmV5 PG0= KCcs IGNhbm4= IHByaW50bG4= b29zZQ== IHllbGxvdw== LmV4cA== cGF5bWVudA== IHRhYmxlVmlldw== YXdheQ== IG9wcG9zaXRpb24= IEFnYWlu IEhhbmRsZQ== IGV4Y2x1c2l2ZQ== aW5hcg== w6ly 0L7QsQ== IENPREU= ZW1wb3Jhcnk= IHJlYWN0 cGlwZQ== MjM2 Y3o= LmFjdGl2aXR5 IGxhcmdlbHk= IGRpc3M= YXh5 ZXNpcw== IFJlbg== IGNvcm4= LlVzZVZpc3VhbFN0eWxlQmFja0NvbG9y ZGF5cw== IGZydWl0 SW5zZXJ0 X2VuYw== RXN0 X2RlYw== IEx1Yw== IMO8YmVy cGFyYW1ldGVycw== UEVSVA== ZXhwcmVzcw== X3Byb2ZpbGU= VW5rbm93bg== IHJldm9sdXRpb24= LmFkZHJlc3M= X3JlcXVpcmU= IHVuaWZvcm0= IFBhY2s= bGFy IFVJVGFibGVWaWV3 IGRlcGVuZHM= VmFsaWRhdGlvbg== Y29uZmlybQ== T3duZXI= IHRyaWI= aGV0 IElkZQ== YW5zYXM= MjQ3 TGFuZ3VhZ2U= dWV0 IFBv IFN0ZXZl IGNvbnRlc3Q= X0RFRkFVTFQ= IGFwcGFyZW50bHk= UkVFTg== IGZyZXF1ZW50bHk= IHRyYWRpdGlvbg== b2NvbGF0ZQ== U0k= IEFyZ3VtZW50 Rm9jdXM= ZXJ0ZQ== IExheW91dA== IGR4 IGdlbmVyYXRvcg== IFdhaXQ= UG9saWN5 bGlnaHRz LkV4ZWN1dGU= NTU1 UHk= IGJlZHJvb20= ZWRh cmFpZA== CXNpemU= IGFuY2llbnQ= IHB1bXA= IGR3 ICghKA== IHNwZWNpZnk= KHN0YXR1cw== IEZCSQ== LmV4Y2VwdGlvbg== IHJlbWFyaw== bHltcA== YW50ZWU= VXBsb2Fk ZXJuZXQ= 6aE= aW5lbnQ= IFJlbmRlcg== ZG0= IE1lbW9yeQ== cmljaA== IFRvb2xz IGtuZQ== IHBlcm0= YmFk IGRpbm5lcg== LnJlc2V0 IGpMYWJlbA== RmVhdHVyZQ== LlNlcnZpY2U= ICh7Cg== IHJlZmVycmVk LmNsYXNzTGlzdA== MjQ4 IGluaXRXaXRo IFRleHRWaWV3 IG5laXRoZXI= IGNvdW50eQ== ICJ7 56c= IHRhY2s= Y2xhc3NOYW1l IFVTRVI= IHJlbmV3 YGA= Z2V0TmFtZQ== IGJyb3du RXJyb3Jz ZXJ0bw== IHN1c3RhaW4= U08= bGV0ZXM= IEludmFsaWQ= MjQ2 MjI3 IGVuZW1pZXM= dW5nZQ== IGV4aXN0ZW5jZQ== ZXJyYQ== CiAgCg== dXRvcmlhbA== I2E= cGF5 Y2hhcmdl IElyZQ== YXRlc3Q= IGV4cGxvcw== IGZpcmVk TkVS IFR5 aWNpb24= VXJp IG9idmlvdXNseQ== IENvbHVt ICcr IERldmljZQ== LXJlbGF0ZWQ= X0FSRw== IHZvcg== IExlc3Nlcg== X09Q U2VyaWFsaXplcg== IHVwZ3JhZGU= TGlnaHQ= IGNvZGVz Kys7DQo= IHdyaXRlcw== Zm9vZA== IMOpdA== QHNlY3Rpb24= IHRyYWNrcw== IHNlcmlvdXNseQ== Y2h0 NDMw KHNpemVvZg== IGltbWVkaWF0ZQ== IHNjaWVudGlzdHM= IHsk X25l LkFuY2hvclN0eWxlcw== IGFjY29tbW9k IEhhcnJ5 IHNpZ2h0 IFBhbGVzdA== ZXJzaXN0ZW50 INGD LWlucHV0 IGNvb3JkaW5hdGVz wrc= MjI4 V2VsY29tZQ== LmNvbmY= IGdyZXc= IGJvbGQ= IENQVQ== KG15 IHBlcmZlY3RseQ== IG1vbWVudHM= IE1vdmll LWRhdGE= eXN0YWw= X1dJRFRI MjYy IFNjcmVlbg== 5p0= IGRpc2Fw IHJlZHVjdGlvbg== LkdldENvbXBvbmVudA== X01PRFVMRQ== IGdlbmVyaWM= IGR5 YWxsZXI= IGN1cmw= IEJvZHk= IGJhbmtz LHQ= YXZn IGV2aWw= IG1hbnVmYWN0dXJlcg== IHJlY2VpdmVy Q29sdW1ucw== IGluZ3JlZGllbnRz CW91dA== cXVlcw== LkxvYWQ= IHNsb3dseQ== IFRvd24= IENlbGw= X25vcm1hbA== X3ByZWZpeA== IEFsZXJ0 KCJ7 w6Ry 4oCcVGhl IE1E IGNvdXJzZXM= YXRoYW4= 6Zk= b2Nj IFNFUg== ZXNpZ24= QWRkcg== PVsn KCIuLw== XX0= LmZvbnQ= IEluc3RhZ3JhbQ== IEJvcmRlcg== b2Rh IGhhbGw= IHJ1bQ== X2JpdA== IHNhdmluZw== X2Rvd24= UmFuZG9t X3JlZ2lzdGVy KENvbnRleHQ= IG9wcG9zaXRl Um9vbQ== WUVT 0LDQvdC4 IGVuam95ZWQ= X3J1bg== Q2xlYXI= 4oCY IEZvcmQ= b25pYw== b3N0ZW4= Il0p X2F1dGg= Ly8NCg== IHN1ZmZpY2llbnQ= TEVT IHBoZW4= IG9o X2Nzdg== IHJvdXRpbmU= LkFyZUVxdWFs YXlsb3I= IGJhc2tldA== X0NPTU0= cnlwdGVk U2lt IFNob3A= IHN0dWRpbw== YXRvcw== KFc= W3N0cmluZw== w6R0 b2dh IHNocg== IHNpY2s= QW5vdGhlcg== IGRvb3Jz X05F IFRIUkVF Lm9yZGVy cmF6aWw= IG1hcHM= X1RSVUU= dHJhbnNsYXRl IG5lYXJieQ== MjY1 IG5hY2g= TE9BVA== YmF0Y2g= MjI5 IGx1eA== YXNoZXM= YW5nZXJz 4oCm4oCm X0VWRU5U X1VQ IGFjdHM= aW52 X01FVEhPRA== Y2Npb24= IHJldGFpbg== dXRjaA== INCx IGtub3dpbmc= IHJlcHJlc2VudGluZw== Tk9U cG5n Q29udHJhY3Q= IHRyaWNr IEVkaXRpb24= dXBsaWNhdGU= IGNvbnRyb2xsZWQ= Y2Zn amF2YXNjcmlwdA== IG1pbGs= V2hpdGU= U2VxdWVuY2U= YXdh IGRpc2N1c3NlZA== NTAx IEJ1c2g= IFlFUw== LmZhY3Rvcnk= dGFncw== IHRhY3Q= IHNpZA== JCQ= IEVudW0= Mjc1 IGZyYW1lcw== fSk7 IHJlZ3Vs J107DQo= UmVnaW9u MzIx ZmZm IGNybw== KGNvbQ== PSIr U3R1ZGVudA== IGRpc2FwcG9pbnQ= UkVTVUxU Q291bnRlcg== IGJ1dHRlcg== IEhh IERpZ2l0YWw= IGJpZA== Ij57ew== aW5nZXJz IENvdW50cnk= X3RwbA== Il0pCg== L2s= ZGF0aW5n OiM= IERBVEE= eW5jaHJvbg== X2JvZHk= b2xseXdvb2Q= IHZhbG9y aXBpZW50 b2Z0 VUJM ZG9jcw== IHN5bmNocm9u IGZvcm1lZA== cnVwdGlvbg== IGxpc3Rh UmVxdWVzdE1hcHBpbmc= IHZpbGxhZ2U= IGtub2Nr b2Nz Ins= X2ZsYWdz IHRyYW5zYWN0aW9ucw== IGhhYml0 IEpl ZWRlbg== IGFpcmNyYWZ0 aXJr IEFC IGZhaXJseQ== LmludGVy LkFjdA== IGluc3RydW1lbnQ= cmVtb3ZlQ2xhc3M= LmNvbW1hbmQ= 0Yk= CW1lbQ== KG1pbg== IG90 IGNvbGxl PXM= dGltZW91dA== IGlkcw== IE1hdGNo aWpu emVybw== NDEw IG5ldHdvcmtz Lmdvdg== IGludGVs IHNlY3Rpb25z b3V0aW5l KGNtZA== KGRpcg== IExJQUJJTElUWQ== IEJsb2c= IGJyaWRnZQ== MzA4 IENW Y29udmVydA== ICIpCg== IEJlcm4= X1BP ZXZhbA== KHNldA== dG9vbA== IHBheW1lbnRz QmVoYXZpb3Vy IGNvbmNyZXRl IGVsaWc= IGFjY2VsZXI= IGhvbGU= X28= VEVHRVI= IGdyYXBoaWNz T3du Rm9ybWF0dGVy b25kZXI= IHBhY2thZ2Vz L2E= IEtub3c= T3JEZWZhdWx0 IGR1dHk= V2FpdA== 0L3QsA== X3JlY29yZA== W3Q= TWVzaA== IG9uZ29pbmc= LmJlYW5z IHRhbg== IGludGVycHJldA== YXN0ZXJz UVVBTA== IGxlZ3M= XFJlcXVlc3Q= LWZpbGU= X211dGV4 IFNhaW50 Ly8j IHByb2hpYg== KGluZm8= Oj0= bGludXg= IGJsbw== b3RpYw== CWZpbmFs X2V4cA== IFN0b3A= YXBpbmc= KHNhdmVk X3B1c2g= IGVhc2U= X0ZS cG9uc2l2ZQ== c3RyY21w OgoKCgo= 5Lu2 b2xp IGV4dHJlbWU= IHByb2Zlc3Nvcg== SW1hZ2Vz LklPRXhjZXB0aW9u IGFkZHJlc3Nlcw== cGxlbWVudGVk IGluY29ycG9y IHVzZUVmZmVjdA== X09G IERh bm9tYnJl SVJTVA== IGRpc2NyaW0= IGNvbXBlbnM= Z3JlZ2F0ZQ== YW5jZWxs YWNoZXM= IENyaXRlcmlh JHJlc3VsdA== RGVzdHJveQ== IHNlY29uZGFyeQ== V2F0Y2g= IFNlbQ== IE1jQw== IGFjYWRlbWlj VXBwZXI= Ojp+ dXRyYWw= IERvZw== YWRlZA== MjM3 VmFsaWRhdG9y IGRlcml2ZWQ= IHNldFRpbWVvdXQ= IEtlbg== IHR5cGljYWw= IEJvYg== IGJvdW5kcw== IFNlYXNvbg== IGNyYXp5 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg LXJvdXRlcg== aXR0ZXN0 IE1pcg== IGVtb3Rpb25hbA== LHY= Y24= L3N0 5b0= b25vbQ== IGRlY2xhcmVk Pi4= YWlsaW5n IC8qPDw8 IG5vcm1hbGx5 KE1l ZXZpbg== bGlrZWx5 IHBvaW50ZWQ= IFN0YWNr IHdhbGxz LlZlY3Rvcg== bWVhbg== XV0K IGxpc3RlbmluZw== YWR2 IHN3YXA= SUZU 2Ko= LmFyZ3Y= dWxz PG9wdGlvbg== bm90YXRpb25z IGVtYWlscw== IFVrcg== YXN0YQ== IFRodXM= IFN0b25l IGFwcGVhbA== LuKAmQ== IHJlZ3VsYXRpb25z UHJlZmVyZW5jZXM= IFBob25l dWxm IERS IHRlY2hub2xvZ2llcw== IHBhcmFncmFwaA== IG5lY2Vzc2FyaWx5 Mzcw MDMw LmVhY2g= PGZsb2F0 cmVzYQ== IHVuZGVyc3Q= IGZpbmdlcg== cHJlc3NlZA== LWJ5 aWZmZXI= d2F0Y2g= IEJh QUlN IHdlaWdodHM= IFJvbg== Jyl9fQ== W3NlbGY= LS0tLS0tLS0tLQo= cGVyaW1lbnQ= IHRvU3RyaW5n eGlj IENhbWVyYQ== IQoKCgo= YXVyYW50 UHJlZml4 IGluc3RpdHV0aW9ucw== OmludA== IGV4cG9zdXJl cGF0dGVybg== IExpbnV4 Lm51bWJlcg== cmVkaWVudA== QXJndW1lbnRFeGNlcHRpb24= IENoaWVm In0s IGVsZWN0cm9uaWM= cm9uZw== ZXJk c3BOZXQ= cmFpdA== Lycs IE9oaW8= Q29udHJvbGxlcnM= IGNvbnRpbnVpbmc= IFRlbXBsYXRl IEV0aA== c3o= L2Vudg== RW52 JS4= YXJ0ZXJz KSgo IFRBQkxF IMOu cGVyYXR1cmU= cHJvZ3Jlc3M= UHJlcw== 6rA= aW1wbGVtZW50YXRpb24= IGJpZW4= IHN0cmVldHM= X01TRw== TmV3cw== IyMj Oi8= IGN1dHRpbmc= eEI= cmVzc2Vk X0VOQUJMRQ== bGFi IGNhdXNpbmc= XSkpOwo= YnJh eEZGRkY= aWxseQ== cGxldGlvbg== d2lsbA== X2Jhcg== IHN0cnVjdHVyZXM= IEltcA== 24w= IDw+ IC0tLS0tLS0tLS0tLS0tLS0= X0JVRkZFUg== LmRpcg== IHBsYWlu IHBlZXI= MjQ5 Z2c= b2ludHM= IHNvbWV3aGF0 IHdldA== IGVtcGxveW1lbnQ= IHRpY2tldHM= aXJtcw== IHR1cGxl c2lz JHNxbA== cmln IGNvbnZlcnNpb24= IGdlcw== IGNvbmZpZ3VyZQ== ZWdy IENh IF9fKCc= b3VzdG9u LnRva2Vu QmxhY2s= IG1hZ2F6aW5l QVc= LklO b3Npbmc= IGJyb2tl IENydQ== REVMRVRF IGRlc3Ryb3llZA== KE1hdGg= IGFwcHJvdmFs LWRvbQ== IElJSQ== dGFibGVWaWV3 IGRlc2lnbnM= IGNydXNoaW5n IGNvbnNlbnQ= ZGlybmFtZQ== b21w IGNyeXB0 Pyg= b3JvdWdo MzA3 Lm8= CWxpc3Q= YW1zdW5n LiIiIgo= ZXJyaW5n R29vZ2xl X3BhaXI= X0lOSVQ= cmVtYXJrcw== IGdlYXI= RmlsbA== bGlmZQ== fSIpCg== IHN1aXRhYmxl IHN1cnByaXNlZA== X1JFUVVFU1Q= IG1hbmlmZXN0 YXR0ZW4= IGZydXN0cg== b3ZlbWVudA== LmNsaWNr IGlp IGV4cGFuc2lvbg== aWdz UGFyc2U= LlJlZ3VsYXI= Um9i X2xheW91dA== 7KA= IHRyYW5zbGF0aW9u IEJlYXV0 QmVzdA== X0NPTE9S PGxhYmVs IGxpcXVpZA== SVRT IHByb2Q= MjM5 IG9wZXJhdGU= VUlLaXQ= IG5hdHVy YXJndW1lbnQ= X2RldGFpbA== IENlbnRyZQ== ICItLQ== IH19Ig== bG9jYWxl LnR2 X3NlcQ== IHVwY29taW5n Q2hhcnQ= IERpdmlzaW9u IGNsaW5pY2Fs Q29tcGFueQ== U2VwYXI= bGFz IEh1bg== OnM= IGhlYWRpbmc= 0L7Qsw== ICIiKTsK W2lk Ymlh IHN0cmV0Y2g= aWNpZGU= IHJlcHJvZHU= LnByb2plY3Q= bGVnZW5k ZW5kZXJz IHJlc3BvbnNlcw== IG9udA== cml0aWNhbA== IHJlZnVnZQ== IExp IDoKCg== IFRocmVl LmNvbnRyb2xsZXI= X0lOREVY X0ZPUg== XE1vZGVscw== amF4 CWV4aXQ= IOKW IGNvdmVycw== CXk= LS4= SU5ET1c= IGZhaWxz aW5jbHVkZXM= IGZhdWx0 NDQw IGx5 NDQ0 w7Fv LnNsaWNl SUxFRA== IFB1cg== IEFzaWFu X2JhdGNo Lk1heA== dmw= IENPUFlSSUdIVA== IGdpYW50 IE1hbnVhbA== IENvcHk= Q2xhc3NOYW1l SGVhbHRo Q3Vyc29y SUJPdXRsZXQ= IHR3ZQ== 5rM= X2xhYmVscw== IGNvbGxlY3RlZA== IGZ1cm5pdHVyZQ== IGRlYWxpbmc= Q29udHJvbHM= IEhvdGVs Y2tz IGNob3Nl 4pSA b2Rk U1I= 2Yo= 7IQ= IGFjY29yZA== IE1vdmU= IE1vZGU= IE1vY2s= IHRocmVhZHM= KysrKw== IE9wdGlvbnM= UmVmcmVzaA== IERpZA== J10tPg== dWNj X2NoYW5uZWw= LmFicw== IHt9LAo= IFdhbA== ZXJpb3I= IG1haW5seQ== IERyaXZlcg== Tm90Rm91bmRFeGNlcHRpb24= IGNvdW50cw== ZWFt ICY9 UXVlc3Rpb24= IEFsaQ== IGFueW1vcmU= ZGV0YWls dGFpbA== IG1pbGU= IEZhaXI= IHNvcnJ5 IHN1cnJvdW5kaW5n IGFkbQ== RGV2 IG1hcmlqdWFuYQ== IFNvdW5k IEFzaA== RkQ= VGVhbQ== LnBvcnQ= IFtdCgo= dWJibGU= IGFzYw== IGludGVudGlvbg== QWNj Y2hp dXN0ZXJz IGluc3BpcmVk c2Vn Q0xV IG1hbmlw TWV0YWRhdGE= Q29ubmVjdA== IEJlaA== IGZpbmRpbmdz IGFzc2VtYmx5 d29ybGQ= IHJlbWFpbmVk IHVpZA== KC4= IG14 TG9vcA== CgoKCgo= IGZhbnRhc3RpYw== d2hv YWtp IEJhc2lj IFlldA== IFVzZXJz aWtpcA== IGhlYWRz IE1pY2hpZ2Fu X2l0 IFRvcm9udG8= IHJlY29yZGluZw== IHN1Ym1pdHRlZA== X3ZhcmlhYmxl bWVkaWF0ZQ== LmdyYXBoaWNz IHN0b29k IHJlYXI= dmVsb2NpdHk= X01FU1NBR0U= ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg cm9sZXM= IFRvdXI= X3llYXI= ZW5kbWVudA== YW1wcw== IElyZWxhbmQ= bWFs IHlvdW5nZXI= IHN0cnVnZ2xl IGNhYmxl IFNETA== KCct YW5lcw== IE5lZWQ= LlJvdw== UG9s IFBI X3NjcmlwdA== YWdlbQ== IEJhcw== X3NwYWNl LmxvYw== Omk= YWRy IGVuZ2luZWVyaW5n aXRlbg== KSY= IHVr IExpdHRsZQ== X0NPVU5U eEE= QXJyYXlMaXN0 5o0= ICIiKQo= QW5jaG9y IGhhbmc= dHdpdHRlcg== IGNvbXBldGl0aXZl LnNyYw== 44GX IHRyYW5zbGF0ZQ== IENyZWF0ZXM= b29rcw== IFJvbGw= JycnCg== L3No c29tZQ== RW5jb2Rpbmc= LnJlc29sdmU= IGRlc2lnbmVy IFN0b3JhZ2U= IHph IE5ldmVy IHNvbWV3aGVyZQ== IGJveGVz LnNvdXJjZQ== IHB5Z2FtZQ== IGdyb3du LnR3 KCkpLAo= JyxbJw== IG9wcG9uZW50 KHNyYw== LmxheWVy QVBQ IEFjdGl2 IGd1ZXN0cw== IFZBTFVFUw== fTsKCgo= Lm5hdGl2ZQ== IGFtb3VudHM= LlJF IGNsb25l IHdlcmVu ICI8PA== X2Fj IGJyZWFraW5n IHJlbGlhYmxl LlBPU1Q= IFNreQ== ICcm IHNhdmVkSW5zdGFuY2VTdGF0ZQ== YXN0aW5n aWxsaW9u Y29tbWVudHM= dWx0eQ== Lm1lbnU= L2NvbmZpZw== IAoKCg== VE9ETw== IHB1cmNoYXNlZA== X2Nvcg== CWF1dG8= Q29tcGF0QWN0aXZpdHk= Y29tcGxldGU= X2dyYXBo aXNvZGVz IHNpdHVhdGlvbnM= IEhvcg== UmVjZWl2ZQ== 4oCcV2U= IGVudGl0aWVz LmFzc2VydEVxdWFscw== 0L7Qug== IFNhbnM= dmluY2U= cm9tcHQ= PQo= IC8u LlNlbGVjdA== eWx2 IGJhdHQ= QXVkaW8= IGluY3JlYXNpbmdseQ== LkJ1bmRsZQ== IGV4cGxhaW5z MDYw dGhlYXN0 Lm9mZnNldA== IGhhbA== IHRlY2huaXF1ZQ== X2xpbWl0 IGRyYXdu QVlFUg== IGZlYXR1cmVk eXl5eQ== YXRpbg== cGhlbg== YWNoZWw= IVw= bG93ZXI= IEdS IHBhZw== IFBhcnNl IHRvdQ== 5LiA RGlzdGFuY2U= SW5kZXhQYXRo IGhlbGw= c2lt VVRUT04= VXNhZ2U= ZWxlbml1bQ== IEZhbGw= ICIuJA== IE11 IGNydWM= IHNvbnQ= UkVGSVg= MzEx IGludGVyaW9y IE9seW1w LkF1dG9TY2FsZQ== cGFyYQ== QXhpc0FsaWdubWVudA== IHJpdmVy RHRv IHdpdGhkcmF3 UmVhY3Q= LWNsYXNz YmVmb3Jl X2FsbG9j Q29udGVudHM= IFdhcw== SUNU IGZvcm11bGE= IGluZGljYXRlcw== ICAgIAoK X3N0b3Jl aXR0aW5n IEl0YWxpYW4= X1NldA== X3JlcG9ydA== IHBpZA== X1ZFUg== IHdpbnM= IENsb3Vk Iil7Cg== Y2hlc3Rlcg== IGRlbmllZA== IHdpcmQ= IFN0ZXA= IGludmVzdG9ycw== Ym9sZA== X2Rpc3BsYXk= b3V2ZXI= b3Jlcg== UmVzZXQ= IHN1cmdlcnk= IHN0cmF0ZWdpZXM= L21hdGVyaWFs X3VuaXQ= IGNvdW5jaWw= LlBlcg== IOKAng== IHJlZm9ybQ== RnJhbWV3b3Jr IGxpc3Rpbmc= X2J0bg== IGJpcw== JWQ= ZWdhcw== IHN1ZGRlbmx5 X1NFUg== MzE1 IGFv X2RpcmVjdG9yeQ== ZmFz IHByZW1pdW0= IHRyYWNraW5n IEJM IG1hdHVyZQ== IGJhdGhyb29t ICcvJw== IMSR UGVyZm9ybWVk IHNvbGRpZXJz YXJuaW5ncw== IHdhbGtlZA== LWNvbg== Ym90dG9t IHN1cnByaXNpbmc= IGdlbmU= VXN1YXJpbw== LkRFRkFVTFQ= IE1JVA== Q09ERQ== IEVneXB0 cGlja2Vy eXNxbA== QVRVUkU= ZGV0YWlscw== IENvbmZlcmVuY2U= SW5mb3JtYXRpb24= IE1haWw= LWRvd24= cmFyaWVz YnJv IHN1YmplY3Rz ICcq 6K+3 b3JpZW50 OkA= dmVyYm9zZQ== RUY= IHRvbGVy MzEz ZW5nZXJz IGVuZHBvaW50 IHN0cmFuZ2U= IGNvbG9u IHByZWZlcnJlZA== ZGVw IEVW QVJSQVk= IHdoZQ== IHB1cA== X25vZGVz IHRhbGtlZA== IGluc3RpdHV0aW9u ZGJj IGV4cG9zZWQ= dGVlbg== IEZyb250 VFQ= X05PTkU= XC9cLw== cHJvZ3JhbQ== IGVuY291cmFnZQ== LmA= c2hpcmU= IElzbGFt MzI1 ZWVu Tkk= JyI= LldpZHRo IGxpa2Vk IHsuLi4= IFN5c3RlbXM= IHZvdHJl IG1hbnVmYWN0dXJpbmc= Q29udmVydGVy IEluZg== 7Jo= RFRP IGluY2hlcw== IOCk w7k= IENoYXJsZXM= QlU= IikpOwoK IExhYm9y dW5u IGVzdGlt bW9iaWxl IExlYXJu Mjgx X0NBTEw= 4oQ= IGluZGljZXM= IHR1Yg== Mjg4 aWtpcGVkaWE= Q29zdA== cm93YWJsZQ== 66E= Z2FnZQ== IGZ1bmN0aW9uYWxpdHk= dXp6bGU= ZW1vcw== LmxpYg== IGRhc3M= 0LXQug== ZW5uYQ== IHNob3Rz IHJlc3RvcmU= L0Q= Rm9yS2V5 XSxb YWxpYXM= bGludA== LnN0cmVhbQ== 5qA= X0ZPUk1BVA== IHNpbHZlcg== LnJlcG9zaXRvcnk= IGxlZ2lzbA== LkJvcmRlcg== X2ZlYXR1cmVz UGVybWlzc2lvbg== IGhvdXNlcw== IFdhcnM= X0NPTVA= IGluanVyaWVz IGNvbnN0YW50bHk= Zmx1dHRlcg== RU5V IENvbmY= IHJlY29nbml6ZWQ= IHByYWN0aWNhbA== IGRlY2VudA== Qko= XSk7 YXN0eQ== IEFjdGl2aXR5 LW1vZGU= IHNsaWRl LklzTnVsbE9yRW1wdHk= IFlPVQ== UG93ZXI= aW5kaWNlcw== IHF1YWxpZmllZA== IHRocm93bg== aGVsbG8= MzE2 IE5pY2s= bGFo YXNzZW1ibHk= IFNtYWxs b2xkaW5n U2hvdWxk IFNpbHZlcg== KHNhdmVkSW5zdGFuY2VTdGF0ZQ== IHRvZ2dsZQ== Lk5vdA== Q3RybA== Om5pbA== IENvbnRpbnVl IEJvb3Q= 5ok= IE11cg== ZG9u IEZB U25hcHNob3Q= IGFzc29jaWF0aW9u Zm94 LGE= YXppb25l XSkNCg== Q1RZUEU= IGZhZGU= IERhcg== Lm5hdmlnYXRpb24= IGx1Y2s= U0NSSQ== IERlYWQ= IHRlcm1pbmFs X0xFTkdUSA== IGVmZmljaWVuY3k= IHVudw== IG5hcnJvdw== aW1lbnRv KENvbG9y IFNlYQ== X2FyZWE= LEE= X29wdA== IEhpbGxhcnk= LnRhc2s= IEphYw== YXN0ZWQ= IEFkYW0= IElsbGVnYWw= IHNlYXJjaGluZw== SW5zdGFuY2VPZg== SmF2YQ== IEZvcm1hdA== IHJlYWxpemVk IENoaWxkcmVu IGtpbA== KGZyYW1l 4oCdLgoK IHNjZW5hcmlv Il0pOwo= IGluY3JlZGlibGU= bGl4 SU9FeGNlcHRpb24= IFF1ZXN0 aWx0eQ== IHVubG9jaw== 4oKs IHJlZmVyZW5jZXM= IFZlcnQ= QmluZGluZw== ZWdhdGl2ZQ== IHdyYXA= LmRhdGFiYXNl KGNvbnRlbnQ= QnVm IFRyYWQ= IEF1ZA== dHJhY2U= Lm1vY2s= IHRoZXJhcHk= CUw= LlRvSW50 IEtpbmdkb20= QnVz aGF1c3Q= IiIiCgo= KGVuZA== LmRyYXdhYmxl W107Cg== IEhvc3BpdGFs IHBoYXJt LS0tLS0= IEFH w6lk PiIpOwo= IHdhbGxldA== YXRhYmxl KSQ= IG1vbnRobHk= IGRpYWdub3N0aWM= U3ltYm9s IGl0ZXJhdG9y dW5maW5pc2hlZA== IGltbWlncmF0aW9u c3I= Uk9X KGdhbWU= IGNsb3RoZXM= IFVudA== IGFjdGl2YXRpb24= X0Nvbg== Mjcz Lmhhc2g= IGluaXRpYWxseQ== Lkhhc2g= IGN1dHM= Zm91bmQ= IFN0b3J5 0YbQuA== YWNhbw== X1RZUA== cHJvdG8= ZXN0cg== LXBhZ2U= YWhy IGluY29ycmVjdA== IEpvc2VwaA== VGV4dEJveENvbHVtbg== X3N0eWxl IERhbmllbA== c2hlZXQ= IGxpdg== bGluZWQ= IHJh UnVudGltZQ== X2VtcHR5 c2x1Zw== X3N0cnVjdA== 64o= bXU= IHBlcm1pdHRlZA== IHJlZ2lvbmFs IHNvYnJl IFN1Y2g= IFtf IHJvb2Y= LkFsaWdubWVudA== dGltZXM= Lm1zZw== IGNoZXN0 IFRhYg== IGVzdGE= w6Ru IHN1YnNjcmlwdGlvbg== KGNvbW1hbmQ= c3BlY2lhbA== IG1lYWw= Iik6Cg== X2N0eA== IGNsb3NlbHk= MzA5 ZXRyeQ== LWJl YWRlbA== IFJhbQ== aWdlc3Q= IFNwYW5pc2g= IGNvbW1pdG1lbnQ= IHdha2U= Kj4o UEhQ X3s= Y2tlcg== PExpc3Q= X251bGw= Mzkw IFJlc2VydmVk IGluaGVy LkNvbHVtbnM= LkFzcE5ldA== X0lOVkFMSUQ= IFBhcmFtZXRlcg== IGV4cHI= fXs= Q2VsbFN0eWxl IHZhbHVhYmxl IGZ1bm55 SW52 IHN0YWJsZQ== KnQ= IHBpbGw= Mjk5 cGxpZXJz IENTUw== IENvbmRpdGlvbg== IFNwZWVk dWJsaXNoZXI= MjU5 IG9mZmVuc2l2ZQ== Y2VzdA== aWNhcw== IHNwYXJr IFByb3Rl c2V0dXA= SUZZ IFRheA== V2hv RmFtaWx5 LWZvcg== LnVr IGZhc2M= c3Zn IikpLg== IGJpcnRoZGF5 4paI dmVo ZWxsZWQ= IGltcG9ydHM= IElzbGFtaWM= VEE= IFN0YW4= d2VhdGhlcg== IHN1c3BlY3Q= ZWF0dXJl ZW5uZXM= V00= Lm1pbmVjcmFmdA== YXZpZA== 6L0= LnNlY3VyaXR5 aW5vcw== R29vZA== IG1hcmNo NjU1 MjU3 IHBvc3Nlc3M= dXN1YXJpbw== Q29ucw== YW1iZXI= Y2hlZHVsZXI= IGhvcnNl 570= KGJvZHk= IFRyYW5zZm9ybQ== X2RlY29kZQ== LnN2Zw== IGZvbw== IGRlbGxh ZXh0ZW5kcw== YW1lcg== IHByb2Nlc3NlZA== IEhhcnI= IEFJ IGtv Q0hBUg== KCU= IHRhcA== KHsn Y3JvbGw= RE9N IHRlYQ== IHJlaW4= MjYx IHdvcmxkd2lkZQ== X2Zu c2hh IGJpcg== w6fDtWVz PSIjIj4= IHJlcHJlc2VudGVk aWxsZXI= KGV4cGVjdGVk IGRhbmNl IHZpc2l0b3Jz LmNvbmNhdA== LWJpdA== VVJSRQ== IFJvZw== dnA= aXBo IExMQw== aXRsZWQ= aWFtaQ== Q29sbA== X3JlYWw= X3Nob3c= X2ZvbGRlcg== IGRhcg== ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGxhdHRlcg== YXJjaHk= IGJvdw== IG91dGNvbWU= NTEw IFBvc3RlZA== IHJpc2tz IFRoZXJlZm9yZQ== IG93bmVyc2hpcA== IHBhcmFsbGVs IHBlbmRpbmc= Z2VvbWV0cnk= IHJlY29nbml6ZQ== U1RFTQ== IENQ IGltbWlncg== SVRMRQ== ICAgIAkJ Y29ubmVjdGVk IHNtaWxl KGRvY3VtZW50 XENvbXBvbmVudA== dmVydGljYWw= IGNvbnN1bXB0aW9u IHNob2Vz LmltcGw= dW5rcw== LiI7Cg== IGZvb2Rz Xyk7Cg== LmFzc2VydFRydWU= IHBpcGVsaW5l IGNvbGxlY3Rpb25z IGVhcm5lZA== IENlcnQ= IHBhcnRuZXJzaGlw KGFjdGlvbg== MjYz IGNk IFZlcnk= T3B0aW9uYWw= IHNjcmVlbnM= IHRpdGxlcw== ZW5lcmF0b3I= IGFiYW5kb24= a2luZA== SUxURVI= IGNsb3Npbmc= bGljYQ== X2ludGVy IGNhbXB1cw== c2V0dGluZw== U3ByaXRl 44Gv X3JlcGx5 VG9MaXN0 OlwvXC8= ZWRl IGZvbGtz IGJvYXQ= KGFyZ3Y= IHBlcm1hbmVudA== IGNhcnJ5aW5n IGNvbnNlcnZhdGl2ZQ== aW1wb3J0YW50 LmltZw== IEltbQ== IGRpbWVuc2lvbnM= YWxhbmQ= c2luZ2xl RXhpdA== LS0tLS0tLS0tLQ== YXJpYW50 dGVybmFs U2Vjb25kcw== IEl0YWx5 b3RsaW4= LlJlc3VtZQ== PSci KT09 Y2VwdG9y IHNjYQ== L21haW4= U2VjdXJpdHk= X2RhdA== IGxldHM= IGFxdQ== IHdoZW5ldmVy YmVycnk= IGFjdGluZw== YW50aQ== cGQ= Jmd0 5q0= Wm9uZQ== VG9kYXk= IS4= MzIz VG9Qcm9wcw== YWJpcw== aXRhYmxl IGdhbA== XXs= aXpvbmE= IGluY29udHJp TkVU Ly8vCg== W2lu X3NhdmU= IGV4ZW0= IEtlbm4= IGV2b2x1dGlvbg== Mjcy dmFycw== X3N0YXRz LW9ubHk= IENvbG9yYWRv IHdhdGNoZWQ= Ym91cg== IHNldmVyZQ== IHByb2Zlc3Npb25hbHM= cG9ydGlvbg== IGd1YXJhbnRl 0LM= IHB1c2hlZA== IEdp 770= IHR1bQ== IEF6 IEVkZ2VJbnNldHM= IikpOw0K aXNzZQ== LmFj U2V0dGluZw== IGFwcHJlY2lhdGU= IFZhbHVlRXJyb3I= IHN1cnZl IFJvbGU= LkludGVy cGxvdGxpYg== amV0 ZGFt IHBsYXRmb3Jtcw== dGVsZQ== VVRP IEludGVybmFs Kzo= fTsNCg== R2VuZXJhbA== XEVudGl0eQ== IGxhd3llcg== cXVpdg== IFBvc3Rz aXNv IGFjY3Vt b2Jl IG1hcmtz IF07Cgo= CXRleHQ= LnN1Y2Nlc3M= Y3Vycg== YXNh ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA= IHRoaW4= X292ZXI= MDE2 YXJlc3Q= IE9z KGFkZHJlc3M= IHZlbG9jaXR5 IFtdOwoK PSIuLi8uLi8= IFByaXY= Ym93 IGd1YXJhbnRlZQ== JQoK MzIy IGV2YWx1YXRl LkxFTkdUSA== IGludmVudG9yeQ== cWE= X2RlYnVn Lk9uQ2xpY2tMaXN0ZW5lcg== IGxpZXM= IGFzc2Vzc21lbnQ= ZGF0ZXRpbWU= LmJhY2tncm91bmRDb2xvcg== ICovDQoNCg== cmFm dW53cmFw IEZvb3Q= IG5vdGlmeQ== IGxvd2VzdA== RE9DVFlQRQ== IGxhbmd1YWdlcw== ZXh0cmE= LWJhY2s= IGVpbmVu dGVtcGxhdGVz Mjcx X3Bhc3M= NTIw Nzc3 IE11c3Q= IGVzdMOh X2NvcmU= IFNjb3Q= QUk= IGJpYXM= YXRpb25zaGlw Q29uc3RhbnQ= IHByb2dyYW1taW5n SW5z dXNwZW5kTGF5b3V0 IFBST1ZJRA== YW50ZXM= IHNoaXJ0 aW5hdGVk Lk9L W2E= IHRoaW5rcw== PwoKCgo= IHJlZ2FyZGxlc3M= IE1hZ2lj dWxhdGluZw== CWNsYXNz YWRkR3JvdXA= UkVBVEU= IFNV IHNpbXBs Y29weXJpZ2h0 IGJ1bmNo IHVuaXZlcnNl OTUw IEVycg== IHByZXNlbnRhdGlvbg== Y2F0ZWdvcmllcw== IGF0dGFjaA== LnNpZ24= X0FD IGRpc2NpcGw= IHJlZ3VsYXJseQ== IHByaW1hcmlseQ== aW5rcw== W1s= LnJhbmQ= LnNob3VsZA== b3dudG93bg== PSIn IHNhbnM= IHN1cHBvcnRlcnM= c2VxdWVuY2U= R08= Li4KCg== IFNwcg== IGNhcmVmdWxseQ== VUlDb2xvcg== ZGVzdHJveQ== IHRvZG9z IE9SREVS b3R0ZWQ= IGRvbnQ= YXVkaQ== X3BsYXllcg== Z3Jl NjI1 IE9pbA== PGJvZHk= X3N0YWNr LlBhZGRpbmc= IFByb2R1Y3Rz IHByaXZpbGU= MDE0 IGluanVyZWQ= IEZ1cnRoZXI= IGFsaWFz LlJlc3VtZUxheW91dA== X0xFTg== IHNlcw== J107Cgo= Y3JlZW5z IGRpcmVjdGVk LlN1c3BlbmRMYXlvdXQ= b2RnZQ== LkF0 bWFya3M= IFVuaXZlcnM= ZXJ0cw== IEVzYw== IG5hdmJhcg== IHV0aWxpdHk= YWdub3N0aWNz IGluamVjdA== IEROQQ== ICIsIg== YW1hcg== IGV1 IHJlc3RhdXJhbnRz X3B1dA== dXRlcnM= VG9vbFN0cmlw dHc= aXN0cm8= IHpvb20= IGxlZ2l0 cGVjaWZpYw== Mjg1 IENvbWU= IGxvY2FsU3RvcmFnZQ== IGFic29y LlBhbmVs IERlc2lnbmVy IG93 SUNBTA== X3VyaQ== KGZpZWxk IHN1cGVydg== RXhpc3Rz IHJlc3BlY3RpdmVseQ== IFN0YW5k Q29uZg== dXNzaWFu MzY0 IGFyYw== IG5k dWNrcw== IHJlc3Ry IHNlYXNvbnM= IENoYXB0ZXI= IFN3aXRjaA== cGlj IGhp bG9hZGVk IGZsdWlk LWJ0bg== IHJ1bnRpbWU= Lml0 MjU4 Qk4= T3BhY2l0eQ== YXNhbnQ= cnlwdGlvbg== LW5hdGl2ZQ== IHRhdWdodA== 5a8= YWdtZW50 IG11bA== UmVnaXN0cnk= X2dyaWQ= IEJyb29r OlNldA== IG1vbmdvb3Nl QU1FUw== aW5uZXJIVE1M IHNvY2k= IEludGVs Z2V0SWQ= Q21k IGFjY2Vzc2libGU= cmFtZXM= bGV0b24= IF9fKA== CWRlbGV0ZQ== IFNxdWFyZQ== IgoKCg== IGJ1Y2tldA== YXZvcml0ZQ== IEJyZWFr Kytd IGJydXNo MjY2 IHRlbnNvcg== L2h0dHA= VGlsZQ== IGZ1bmN0aW9uYWw= ICIq d2hlbA== IHRlbnQ= IENoYXJhY3Rlcg== IHNlZXM= LlNU Qmln IGV4dGVybg== VXJscw== KSkpKSw= IEpy LkJ1aWxkZXI= Ljs= bmw= X0luaXQ= IEhFUg== xbxl bXlzcWxp X2ljb24= dmFu IGZlZWxpbmdz IGxlYW4= IGhvcGluZw== VFY= PSI8Pz0= IGN1cnZl X3N0ZA== X0xJTkU= ZHN0 IG1vcmFs ZW1lcw== b2d5 IHVyYmFu MDE1 IGFzaWRl IGVkaXRpbmc= QURE U2Vjb25k VHJhY2s= IHZvdGluZw== IGhvbm9y Lics ZWxsZW4= Q2hhdA== IGltcHJvdmVtZW50 J10KCg== oIE= IHBhcnNlZA== ICAgICAgICAgCg== IGxhenk= IGZhbGxpbmc= U2VyaWFsaXpl IFBh X2dy IGZvcmV2ZXI= LndoaXRl LlF1ZXJ5 QmVk IER1 IHJlc3VtZQ== IHBhcGVycw== IEluaXQ= IHN1ZmZlcmluZw== 4oCL IGRlY2xhcmF0aW9ucw== KCkt IGV4ZWN1dGVk IEhvbA== LmJsb2Nr 44Oz U0s= IHN0dWNr IExvY2s= aW5jaXBhbA== TnVsbGFibGU= IHNlc3Npb25z dW5p IGNvdXA= YXBwcm8= Z2hhbg== X3Bvb2w= Mjgz CWlk IHNsb3Rz IG1lZGljaW5l IGdsYWQ= IE1vbm9CZWhhdmlvdXI= YXRyZQ== ICQoJw== bWVyaWNhbg== YWdn IGthbm4= X2Nvbm5lY3Q= IGJyYW5kcw== IHNrZQ== IGRpZ2l0 PG4= IGJhY2t1cA== IHBlcnNvbmFsbHk= LlByb3BlcnR5 MzE0 LmNvbW1pdA== IGNyeQ== X2NvdW50ZXI= IG1hbGxvYw== IGdyYW4= IERyb3A= cGxhdGZvcm0= cmVkZW50aWFscw== aW5raW5n IFVJTA== dWJz IG1s bGVzc2x5 R2VuZXJhdGVk ZXJlb3R5cGU= IGJhdA== TGF5b3V0UGFuZWw= TE9U Iik7DQoNCg== IG11c2NsZQ== IGNlcnRpZmljYXRl QU5ETEU= IGhhcmRlcg== IHBpeGVscw== KSIsCg== LkhlYWRlcg== IGRldmVsb3Blcg== IExhcw== ZWdhbg== Ljw= IGV4cGxvZGU= IHBhcnRpY2lwYXRl UGF0dGVybg== KHRhYmxl IFRFWFQ= Y29uc3RhbnRz eEQ= dGhldw== fSwKCg== 44Gu X2Rlcw== IHN1YnN0cg== IFNtYXJ0 IHNjYWxh Z2VudA== LWJhcg== ZXNzaW9uYWw= dW1icw== LmV4ZWM= J1w= VEs= dW5pc3Q= cHJvb2Y= Y2lhbA== cHJvYw== PXsi LmhyZWY= PSQo IGx1bmNo aXNjYWw= IEVudHJ5 IG91dGRvb3I= c2VtYmxl IGVzc2VudGlhbGx5 L0c= W10p JSI= c3Rlbg== VVNFRA== IGR1c3Q= 5bA= CQoK IHJldGlyZQ== IGZpYg== QWx0aG91Z2g= IGxvdmVz IHJlYWRz eWNsZXM= IEhlbA== X3VpbnQ= ICcuJA== X2luaXRpYWw= TmFtZWQ= IGZ1bmRhbWVudGFs QURJTkc= IHRvdw== IEFERA== IEFjYWRlbXk= MDUw OlN0cmluZw== IGNvbXByZWhlbnNpdmU= LnNjYWw= IE1ldGE= TWVzc2FnZXM= LmFubm90YXRpb25z XFJlc3BvbnNl IGFja25vd2xlZA== IEFSRQ== XT09 IGNsZWFuaW5n 6L4= RW50aXRpZXM= IFNhbGVz IFdpcw== LmV4dGVuZA== YWxsZW5nZQ== IGdhbWluZw== JHF1ZXJ5 SUNFUw== RVRDSA== SG9yaXpvbnRhbA== cXVlbnRpYWw= ODUw QkFDSw== ZGV2ZWxvcA== aXNvcg== KGNvZGU= LUs= X1BJTg== cmVxdWVuY3k= IFF1ZXN0aW9u X2NvbnRhaW5lcg== X21vZHVsZXM= IEplcnNleQ== X2RpZmY= LmVs ICooKA== Y250 IFNh Q1BQ aW5pdGU= IHVudXM= LXdoaXRl ZXRhcnk= IGludm9sdmluZw== ID8+DQo= YmVzdA== YWxsYXM= ZW50ZWQ= ICAgICAgICAgICAgICAgICAgICAgICAgCg== X2Nvbm5lY3Rpb24= IHJlcG8= ZW5hYmxlZA== 0LDQug== IHNoYQ== IG1lbWJlcnNoaXA= U3RhdHVzQ29kZQ== aW5hdGluZw== X3Nt X2N1c3RvbQ== X3dlaWdodA== IGNzcw== U3RhdA== X2Vudg== bGlua3M= VFJM IEhpdA== LHI= dXBpZA== IG9wZW5z IGdlbnQ= X3Zpcw== IGpveQ== PHc= X2Nvc3Q= IFB5T2JqZWN0 cmVuY2U= IEdlb3JnaWE= IEJyb2Fk bW1h 4oI= cGY= ICJcIg== ICgm b21v IGxpdGVyYWxseQ== iJg= bWV0cmlj IGJhcnM= emVk KHdpbmRvdw== IElzcmFlbGk= IGZvcm1hbA== aWRlbnRpZmllcg== LmRhbw== IERlYXRo JTsK IGRlY2xhcmU= YXJtcw== UkVBTQ== UEVSVFk= IGNvbnNlcXVlbmNlcw== dG9vbHM= UGVvcGxl IFdoaWNo PigpOw0K LmRlY29kZQ== X0FDVA== QnV0dG9ucw== LmZsb2F0 LkZpcnN0 66U= IFBvbGl0 IFhDVA== VGFncw== IENHRmxvYXQ= PXN0cg== IGxlYWY= LWNoZWNr IElzcw== LnN5c3RlbQ== bG9nb3V0 YWNodA== QW5nbGU= c2lu Y2hhcnQ= SU5URVI= IE5VTQ== QmFzaWM= LlByb3BlcnRpZXM= 5Lit X2NoYW5nZQ== IEJyYXppbA== QWJzdHJhY3Q= IDorOg== X3VzZQ== 0LDQuw== MjY4 IEx5 SUJVVA== IG91dGVy IC0tPg0K IHJlbGllZg== bGFw cXVlcg== X3BhcmVudA== aGVhcA== TE9TRQ== IGNvbWJpbmU= IFJvc2U= b3dlcnM= IHByb2NlZHVyZXM= IFNvcnQ= YW5pbQ== dmFyaWFudA== ZWhpY2xl IHNpZ25pbmc= UHJpbWFyeQ== Y3VycmVuY3k= IHNleGU= b2Vu dGhldGE= ZW1hbg== IGltcHJlc3NpdmU= KCdf CVU= IFRleHRTdHlsZQ== X2NudA== IHNsaWNl KCc6 IHVuZGVyc3Rvb2Q= SGlz Mjc3 MDEz IGluZm9ybWVk IG5pY2s= NDI5 KFRBRw== aGQ= IGVsZWN0aW9ucw== ZXN0dXJl IFNhbnRh IENvYXN0 LnBkZg== aW5jaXBsZQ== LmNsb25l Ym9ybg== dXRh IGxpY2Vuc2Vk Q3I= IGJyZWFk IEhvdXN0b24= IG5vZA== IGhvcGVz IENHUmVjdA== IGd1aWx0eQ== LmdpZg== IHJvc2U= LkNvbW1vbg== VGlw QU5L IEZD RHVyaW5n IFN5bWZvbnk= IGRlZmVuc2l2ZQ== a20= KT4= YXJjaGl2ZQ== IFVSSQ== eWNsaW5n LW8= IFdlYnNpdGU= QU1Q NDA1 aXNobWVudA== IGRvY3RvcnM= RGlyZWN0 QVJJ IFJlZGlyZWN0 aWVyZW4= OTYw X2Rpc3Q= eW8= IFByb2dyZXNz IHp1bQ== IG1lbW9y IEVE IGp1cg== 5o2u X1RBQkxF IHV1aWQ= RXhwcg== LmhlYWQ= KCcl cG9pbnRlcg== IGVzdGltYXRl IEdyZWc= IGxvYWRlcg== IGlPUw== IG1lbnM= W3k= IHJlZnVzZWQ= IHByZWNpc2lvbg== aXNjaA== IEFDVElPTg== Q2xvdWQ= c1dpdGg= KHJldA== Mjky X0FERFI= X2NvbmY= KGRm IGxvY2tlZA== IHJpc2luZw== 44O744O7 IE1z IHNjZW5lcw== X0VYVA== X3Jhdw== X3RoZQ== cGVvcGxl IHJlY29u IEZ1bg== IGJsZXNz IFVwZGF0ZWQ= NDIy w7xu ICAgICAgICAgICAgDQo= cGVjdGlvbg== UmVsZWFzZQ== LmxvZ2dlcg== IFNZ IGNvdW5zZWw= dXJk X3RydWU= IGV2ZXJ5Ym9keQ== aXZvdA== IGhlbmNl IE5BUw== Nzg5 IG9wcG9zZWQ= dW5rbm93bg== IERFU0M= IENoYWly ZmFpbGVk IElOQ0xVRElORw== Mzg2 MzUy IHdyaXRlcnM= e30K w610 X2NvcHk= fTo= IEJhdA== IGNvbnZlcnRlZA== ZWRpbmc= cGxhY2VtZW50 IEhvc3Q= U291bmQ= 0LjQvA== IHNvdWdodA== NDAy bWlk IHNhbGFyeQ== b2dn 4oSi YnVs IHdpcg== dmFsaWRhdG9y X1NUQVQ= LnN0b3Jl IEJhdHRsZQ== xLFu IC0tPgoK VHJ1bXA= ZG90 IENPTlQ= LmZldGNo IGNvbnRpbnU= d2Fz IGZyYXVk X3RtcA== bWl0dGVy LnBpY3R1cmVCb3g= R0E= IHRvdXJuYW1lbnQ= LklucHV0 MzQz W3I= ZXhpb24= Y2VudGFnZQ== IEtvcmVhbg== dW5kZWY= IEF2YWlsYWJsZQ== cmVzaGFwZQ== IGtpdA== IFN0cnVjdA== IFNVQg== QW5zd2Vy X2xpYg== LnR3aXR0ZXI= IG9yZQ== IERyYWdvbg== LkV4dA== LGs= IGV4cGxhbmF0aW9u cmVmcw== IERyaXZl IFRyYWluaW5n Mjgy Lkhhcw== MzQx aW50YWdl Ymln b2xvZ2lzdA== ZW5uaXM= NDYw 2Yc= IGNoaWNrZW4= ICAgICAgICAgIAo= 55s= 44Gn IHBlYWs= IGRyaW5raW5n IGVuY29kZQ== IE5FVw== bWFsbG9j CWZwcmludGY= ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 aW5jbHVkaW5n IHByaW5jaXBsZXM= IE1haA== MjY3 c3RvcmFnZQ== LWtleQ== IGtleXdvcmQ= JTs= IHRyYWluZWQ= LmNvbnRyaWI= IGt2 X18nOgo= IEJveQ== cGFyYW1ldGVy IHN1aXRl IHRob3VzYW5k IGNvb3JkaW5hdGU= LWdlbmVyYXRlZA== 7ZWY Z2VuZXJhdGVk IGFkbWl0dGVk IHB1c3N5 I3c= IHN3aW0= dW5pb24= TmE= Mjc0 IFJveWFs LmNoYW5uZWw= VXBkYXRlZA== X1JPT1Q= IHZpdGFs MzM1 cmFjdGlvbg== IENydXNoZXI= IHByZWNlZA== IGhvcml6b250YWw= Qmx1ZXByaW50 IGF0dHJz IHNtb2tl 0JI= LkVxdWFscw== RkI= IFJlc291cmNlcw== cm9sbGluZw== IHBhc3Nlcw== IE51bQ== cm90YXRl ZXR5cGU= XCIs IHNlbnNpdGl2ZQ== IHRhbGw= P+KAnQoK UHJveHk= aXk= X3NlY3Rpb24= 4oCU4oCU4oCU4oCU YnJpZA== IGNpcmN1aXQ= YXRhbg== RU5D IGRyaXZlbg== IHZvdGVk IGVkdWNhdGlvbmFs IGludGVyYWN0aW9u YWJldGVz IHRvbmU= IEluaXRpYWxpemVDb21wb25lbnQ= IG1lcmVseQ== IOye Y29va2ll X2Rpdg== IFVJTGFiZWw= dmVseQ== fSk7DQo= X0VOVA== IysjKw== YXJ0aWNsZXM= IFNvdXRoZXJu IHN0cm9uZ2Vy IEdpdmVu IEVyaWM= IElS YWJzdHJhY3Q= VW5kZXI= bmFibGU= IGluY3JlbWVudA== b3Zlbg== IGNvaW4= X3RpbWVy IHN1ZmZlcmVk IEZSRUU= J10uIg== IFF1ZWVu c3RhdHM= IG1lZXRpbmdz Mjc2 IGVudGVyaW5n IGFsb25nc2lkZQ== KHNlc3Npb24= aXRhbHM= IGZvdW5kYXRpb24= IENyZWRpdA== LmRpdg== X0FMTA== cGNpb24= X3N0YXQ= aWNraW5n RGVmYXVsdHM= X3NyYw== IG91dHB1dHM= L0I= IGVudGh1cw== LWJs LkZvcmVDb2xvcg== CXRlbXA= RmFjZQ== IGludGVyYWN0 IHdlaXJk TW91bnQ= cmVsbA== dWRlbnRz IHJlcXVpcmVtZW50 IFN1cw== SUVS IGVsZWN0ZWQ= cmVmZXJlbmNl IE1F IHNlcnZlcnM= LndhaXQ= IHNuYXBzaG90 aWx0b24= IHRyaWVz IHRpcG8= LlRpbWU= Pnc= IG1vdW50YWlu IHBvdW5kcw== IFsuLi4= ZXhpc3Rz IG5nT24= X01BUA== IGZseWluZw== MzMx eGlldHk= CXZhbHVl X0RC dW5v IHNlYXRz VFVSTg== LmF1dGhvcg== ISk= b3JjZQ== IGluZGljYXRlZA== MzE3 LnNpbg== IGFzc2lnbm1lbnQ= aW1pZW50bw== IEZyYW1l MzI0 X2dlbg== aW5lcnk= Xyk= bWVzc2FnZXM= LnNldHRpbmdz IE1lYW4= IE11c2V1bQ== aXJx YXR0YWNo IFBhbGVzdGlu X1FV X3RhZ3M= IGNhc3VhbA== ZW1lbg== QVNTV09SRA== NDMy JHM= IENpcmM= 0L7QuQ== ZXRyaWM= L1A= MDE4 IGVwb2No PGhlYWQ= X0NNRA== IGdpdA== IHBlbmFsdHk= b3JwaA== X3VzZXJz b3Vyc2Vz LkRhdGVUaW1l YXRlcm5pb24= X3Byb2plY3Q= IHN1cGVyaW9y IERhbQ== IFNlYXR0bGU= WFk= PlRoZQ== IEFr IGdyYXNz LyoNCg== KGRpcw== IGd1bnM= IHRi IEtldmlu LmFyZ3M= IEFo b3BlZA== KEo= Y29sdW1ucw== YXJndW1lbnRz IFdpdGhFdmVudHM= X2Z1bGw= IERlZmVuc2U= U2ltcGxl IGRlYXRocw== Mjk1 IGV4dGVuc2l2ZQ== IFN0aWxs IEV4cHJlc3Npb24= IEFnZW5jeQ== IHBlcmZvcm1pbmc= Rlg= IHVzdWFyaW8= VUFM U2lkZQ== b2Rvcw== YXB0b3A= IGNyZWRlbnRpYWxz X2NhcA== YXRpZW50 IERpc25leQ== IGFp IGNoaXA= IHZvbHQ= Lm1ha2VUZXh0 JSUlJSUlJSUlJSUlJSUlJQ== IGJlbGllZg== X0xPQw== IENpdmls TmF2aWdhdGlvbg== IHJldmVhbA== IHZpb2xlbnQ= IEZpbA== IGNhdGFsb2c= ZW1lZA== c2Nhbg== LmNvbnRyb2w= IGNvbnN0aXR1dGlvbg== Q291bnRyeQ== U2VwYXJhdG9y X0FQUA== dG9waWM= dWV0b290aA== TUlO IGRlc2NyaXB0b3I= eXQ= RVRIRVI= IGRpc3RyaWJ1dGU= J30K LnRyaW0= LkxpbmU= IGxibA== YXNzZXJ0RXF1YWxz IERldA== b21ib2s= KHdpZHRo IHRvcnQ= IEVYUFJFU1M= YWNv VXNpbmc= IEJyYW5k d2FsbA== RU1FTlQ= IENvbW11bmlj PHVpbnQ= IEdVSQ== RUdJTg== IFJhbmdl L2k= IFRheWxvcg== Y29zdA== IHJlc3BvbmRlZA== IFRoZW1l bmNl SVNI IGZlYXR1cmluZw== UmV0dXJucw== IEty IC4K IG5hbQ== X2Ni VGVzdGluZw== IHt9LA== eWFs LmZpZWxk IC89 X1NIT1JU bWF0ZXM= VGVzdENhc2U= YWlubGVzcw== IGV2YWx1YXRpb24= X0lURU0= IFBhY2lmaWM= CWs= IGNhbnQ= IFJvcw== KXM= IGZldA== U1RSSU5H MzE5 IERpc3Bvc2U= Z2Fs IEpvaW4= IFBvcm4= IENhdGhvbGlj QVJHRVQ= Y3B1 56CB LnNjcm9sbA== MzI4 SVNJTkc= aWZlc3R5bGU= YW5jZW1lbnQ= IG1lcmM= IEJyb3dzZXI= ZXRlcm1pbg== IG92ZXJmbG93 QXZhaWxhYmxl IGJvdHRsZQ== OlVJ aWZpY2lhbA== IGNvb3Jk Y2xhcmF0aW9u IGNvbmo= R0xPQkFM b2t1 IGt3YXJncw== Y29uZGl0aW9ucw== dWx1bQ== IGdlbnU= IEhlcm8= 5Y4= IHVuZXhwZWN0ZWQ= IERBTUFHRVM= IGth IENvdWxk VVBQT1JU IFBob3Rvcw== IGNvbmZpZGVudA== IGRldGVjdGVk ZGVn cmdi IHN0cm9uZ2x5 IH07DQo= ICk6 IGxlY3Q= dXJzaXZl Uk9M IFdlaWdodA== IGVudGVydGFpbm1lbnQ= ICkpOwo= IGdvbm5h IGJi LmRv R1M= IG1pc3Rha2U= REw= IFBST1ZJREVE ZWFybmluZw== TGltaXQ= aXNzaW9ucw== W3Y= 5LiN aXJ0eQ== RGVs IHVuZGVybHlpbmc= cHJlbmU= IGphdw== IERJ cGVlcg== IG9iamVjdGl2ZQ== IGRlcG9zaXQ= IGtvbg== IGVzcA== Mjc4 LnNldFZpc2liaWxpdHk= L2xvZ2lu PHR5cGVuYW1l IGZyYW5jaA== L2U= MjY5 UGFyYWxsZWw= IHNjb3JlZA== IEhvbg== IFZpbGw= aWdh IGFudGljaXA= X2Fzc2VydA== IE9wdA== IGRlc2NyaWJlcw== d2Fu bW91bnQ= IG1vbml0b3Jpbmc= IHRvdXQ= 64qU fSx7 Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4= PWludA== IGN1c3Q= LS0tLS0t IGF0bW9zcGhlcmU= UEFS b3J0ZQ== SVNJQkxF IElyb24= IE5vdGlmaWNhdGlvbg== LmxvZ2dpbmc= IEJPT0w= LXBvaW50 IGFmcmFpZA== ZW50YQ== IHRvbW9ycm93 QGltcGxlbWVudGF0aW9u IGVuZ2FnZQ== IEFudGg= IEZsb29y IFVs VG9vbHM= IGJhYg== IGNhcmVmdWw= 44GE IGNydWNpYWw= IGNhbGN1bGF0ZWQ= IFNB IHd5 OTEx RFg= X1RBRw== aW5kZWQ= IGpldA== IEVuZ2luZWVyaW5n Lk1BWA== ZW56 dmQ= IHB1YmxpY2F0aW9u ICMjIw== IGZhY2Vk cmFoYW0= IENhcHQ= MzM2 QXNzZXQ= IENvbnN0YW50cw== IGxvYW5z X0lQ IEZpc2g= UmVkdWM= X21hdA== RGF0ZUZvcm1hdA== X21l W11bXQ== IGludGVncml0eQ== IENvdXJzZQ== bG9iYWxz IGZhY2lsaXQ= IGVtYnI= IE5n LlN5c3RlbQ== IG1hbnVmYWN0dXJlcnM= IHByb3Zlbg== Lm9uQ3JlYXRl IGFsYXJt IMKn IGNvbW1vbmx5 aWNvcw== 5paw IFN0YXRpb24= fSku IEZpbG0= d2k= 54k= IGVuZ2FnZWQ= U3RhdHM= IGdvdmVybm1lbnRz NTQw IGFmZm9yZGFibGU= X3Byb3BlcnR5 IGFnZXM= KCctLQ== IGbDtnI= IFByb2Zlc3Nvcg== IGh5ZHJv UHVzaA== IG9yZ2FuaXplZA== Mjg0 QWNjZXB0 w6lt X2NlbGw= IG5i cGI= QXJ0aWNsZQ== IHJlbW92YWw= IGF1dGhlbnRpY2F0aW9u IEZS bGlkZQ== IHBsZWFzdXJl YXBvbA== IHBhcnRpdGlvbg== IFNpZGU= IGNyaW1lcw== IGRlbW8= aG9sZGVycw== IFBha2lzdGFu SW5zdHJ1Y3Rpb24= IGV4cGVjdGF0aW9ucw== MzMy LnNjZW5l ICcp aGVz aW5vaXM= X1Bybw== IG1vbGVj YW5kYWw= X3Nob3J0 IGRlZmF1bHRz IG5hdGlvbnM= aW5lbg== IHJ0 T0NL UGFja2V0 U0I= IFNIQUxM X2NvbnRlbnRz aXNlY29uZHM= dmVydHk= w6F0 R3VpZA== bm9t IGNvbmNsdXNpb24= LlVwZGF0ZQ== IGxvdmVseQ== IGVtaXQ= YmVj CQkJCSA= IGludGVsbGVjdA== IGJyZXc= ZWN5Y2xl RmlyZQ== MzU4 IGFkbWl0 IGFyYml0 IGFycmFuZw== IE1JTg== TWFpbA== IE5hdGl2ZQ== Q3Vy IGNvbnZlbnQ= LlJ1bnRpbWU= In0K LlJ1bg== IHByaW50ZWQ= IGNvbnZlbmllbnQ= LmFy bW9jaw== IEFkbWluaXN0cmF0aW9u 44G+ IGVsZWN0cm9u ZmxhdGU= IGxvbWJvaw== IGphdmFmeA== bmg= IHN1cHBsaWVz IHZpc2l0aW5n YWhs IHBvd2Rlcg== IHVsdGltYXRl IG9yaWVudGF0aW9u dXRhcw== X3NjYWxl Q29uZmlybQ== cGhvbmVz IE9wZXJhdGlvbg== L1Q= NDQz X0lOVEVS IGFpcnBvcnQ= IG1ldHJpY3M= IHBoZW5vbWVu YXVkaW8= MzM0 IG1haQ== KEs= aHU= YWxsaW5n cm9kdWN0aW9u IFRyYW5zcG9ydA== IE5PVEU= 5paH IGZld2Vy X1RJTQ== 7Kc= 0LrQuA== QWdl RklO Mjk0 IOyd IEF0dHJpYnV0ZQ== Z3JvdXBz ZXJr YXR0bw== LmRlZmluZQ== LkFzcE5ldENvcmU= YXRlZ29yaWE= IFNpcg== KGZvcm0= PFVzZXI= LnJvdW5k X2RheQ== LkFsbA== U2VydmxldFJlc3BvbnNl Lk5v bGFyZ2U= SUdI cXVlbnQ= IHZpcnVz IHJldHJv IGltcGVy Qml0bWFw IHZpY2U= IG9mZmVuc2U= aXN0ZQ== IEFVVEg= IOqw VG9vbFN0cmlwTWVudUl0ZW0= R3U= IHJhcGU= IERhdmlz IG92ZXJ3aGVs OmZsdXR0ZXI= LXRhYmxl IENvbnN0cnVjdG9y UHJpdmF0ZQ== ZXZlbg== Y2hy IGFwcGxpZXM= X2F0dHJpYnV0ZQ== IGNvbnRyaWJ1dGU= RVZFUg== Mjg5 TGluZXM= IEFmZ2hhbg== VmlzaXRvcg== IFNM c2Vhc29u Q1U= IGludHJvZHVjdGlvbg== IG1hdHBsb3RsaWI= xZE= IG5ld3NwYXBlcg== 4oCUYW5k PHRhZw== IGluaQ== IGRpdmVyc2U= SWdub3JlQ2FzZQ== MzUz IFVy QWdlbnQ= IGJ1bGw= LmVtaXQ= KEV4Y2VwdGlvbg== YXJMYXlvdXQ= IGluY3JlZGlibHk= IFRydXN0 PXso LW5hdg== IGVxdWFscw== IGxhZHk= IFBvZA== ZGlzYw== YWxhbQ== IElW 4pk= aXZpZHVhbA== cGhp MDE3 YWRkZWQ= IGRpZmZpY3VsdHk= IGNvbXBhY3Q= NTMw IEFjdGlvblJlc3VsdA== Y2Vycw== X2NsYXNzZXM= Tm9uTnVsbA== IHF1aXQ= IHBvdQ== U3dpdGNo aXJz LXRlc3Q= IEtpbmQ= IENhbGVuZGFy NDA2 IHN0cmVhbWluZw== fScs Mjc5 U1c= IHN0ZWFk b2Nh IHByb3ZpbmNl OTc4 IGNvbHNwYW4= IHBlcnNvbm5lbA== IEVtcGxveWVl IHByb2R1Y2Vy IGV2ZXJ5d2hlcmU= b2Ri 0J8= YnNvbHV0ZQ== YWN0aXZhdGU= IGdyaW5kaW5n IEJ1aWxkaW5n IFNhbmRlcnM= KHNj IE9mZnNldA== Ly8vLy8vLy8vLy8v fTsNCg0K KHsi IHNjYW5m IFlZ CWRlZmVy IGpldw== IHJlc3RyaWN0aW9ucw== Lm1w W2w= 5LiL bGFiZWxz cmVkaWNhdGU= YXdlc29tZQ== IHdhdmVz IGNvbmZyb250 IG1lYXN1cmVk IGRhdGFz X2V4aXQ= MzU1 b3R0b24= IHNob3VsZGVy YXNrYQ== KyM= ICAgICAgICAKICAgICAgICAK IHRyb29wcw== Mjkz IFVuZA== X2NhcmQ= d2ljaA== IG5vdXM= ICIvIg== c2I= IGNvbW11bmljYXRpb25z RXhwb3J0 IGRlY29kZQ== dGhz aW50ZXJwcmV0 QnlOYW1l IFNwaXJpdA== ZWRnZXM= T0xF IEVN dGl0 IFRocm91Z2g= IGJpbw== IFBhY2thZ2U= b3JuZQ== Mjkx IH0u NDEx YDsK IG9rYXk= IFplYWxhbmQ= aWRlbnRpdHk= KG5leHQ= IEJhbmc= TGlicmFyeQ== IGhlYXZpbHk= aWxvbg== IGRpcGw= IHJvdGF0ZQ== cHV0cw== KScsCg== IERhdGFUYWJsZQ== IG1heW9y LnRvTG93ZXJDYXNl IHNvbWVob3c= IE5vcnRoZXJu YWxj IGNhcGFiaWxpdGllcw== IHZpYnI= Kwo= IFN1 Mjg2 IFJlc2V0 X21lYW4= IGNpZw== LmNsb3Vk IEJhbmQ= IEZhY3Rvcnk= IEFyaXpvbmE= X2lv b3BoZXI= IGNvbnNjaW91cw== IMO2 XENvbnRyb2xsZXJz X3NwZWVk IEZhYw== X0NvbQ== IEJpYmxl d2Vu RURJVA== IHVubg== IFN0YWZm IElubg== IG1lY2hhbmlzbQ== IE1lbWJlcnM= IG1pZ3JhdGlvbkJ1aWxkZXI= J10uJw== LmdldEludA== PHZvaWQ= CWZyZWU= b2lkcw== XFN1cHBvcnQ= IGF1dG9tYXRpYw== IGNoYW5jZXM= 0LY= IGNvbXBsaWNhdGVk W3Jvdw== YWhvbw== IH0KCgoK TW9kZWxz V2lu IHRhcGU= aXJ1cw== aXpvbg== b25vbXk= KCJf Oi4= LnN0ZXJlb3R5cGU= Mjk2 KGVudg== X3JlY3Q= KHdpdGg= IGFzc2VydFRoYXQ= IGNvbnN0cmFpbnRz cHV0eQ== RW1wbG95ZWU= NjIw VEQ= IGd1aXRhcg== ODc1 IEpld3M= LnByb2Nlc3M= IGZpY3Rpb24= IFNoYXJlZA== 4pSA4pSA IHByb3BhZw== Lk5ldA== IGFjaGlldmVk CVE= IG51cnM= U2hhcmVk X0ZBSUxVUkU= IGJlaGF2aW91cg== IGNvbHM= aXNtbw== IGZlbWlu IGNoYWxsZW5naW5n IHBvc3Rpbmc= ZW5jaWw= IGNhcHR1cmVk IERvdQ== KHdvcmQ= IFR1cmtleQ== cGFuaWVz IHJlcHV0YXRpb24= T1JNQUw= IGVsaWdpYmxl cHJvdG9jb2w= NDE0 aWRhcw== KGZyb20= MzQ0 IGZpbmFuY2U= LXBlcg== IGdvdHRlbg== SEE= ZHVyYXRpb24= IFBhcmVudA== Njc4 IGludmVudA== IHJlc3RhcnQ= 0L7Qu9GM cml0aW9u KHJz PGJvb2w= aWVydA== IG1vZGlmaWNhdGlvbg== IFRY cmVhZGNydW1i YmFuaw== MzI2 JC8= IE1pbGxlcg== XSksCg== LkNoZWNrZWQ= IHNhY3I= c2VjdXJpdHk= IHBvc2U= IEJyYWQ= IGZpdG5lc3M= IGFubm91bmNlbWVudA== YXRpb25Ub2tlbg== IHNlcnZlcw== bmVlZA== IGdlb21ldHJ5 QVJT 5oA= YW5kaWRhdGU= IHNwcml0ZQ== X3NwbGl0 V2Vlaw== YWRpZXM= PigK Pz4i IC8vLwo= IGVpbmVy IHdlZWtseQ== CWxvZ2dlcg== X3BvcA== X21hbg== IG1pZ3JhdGlvbnM= IGFza3M= IGJz IGZhbGxz LldoZXJl LWhlaWdodA== X2ZlYXR1cmU= Lk1pbg== IGh5cGVy IHZvbGF0aWxl IHR3ZW50eQ== VHlwb2dyYXBoeQ== VW5hYmxl RGV0 LGY= LW1vZA== IHNldHRsZW1lbnQ= IGNvbnRyYWN0cw== bm9tZQ== QmFk IEJyaWFu NzY4 KHVzZXJuYW1l ISEhIQ== IGhhY2s= LkZpZWxk SFI= IEpvcmRhbg== aXph IMKg IFNoZXI= LmhlYWRlcg== KG90aGVy IER1Yg== KG9w IFJvdW5k IHZpZQ== IGFwcGw= CUo= IEluc2VydA== IExQ cmVnb24= IE1QSQ== IGFuY2hvcg== YWNh w7hy IGFkZQ== YW5jaG9y cXVlZQ== IFRyZWVOb2Rl IHRhcmdldGVk IGxhaWQ= QUJFTA== dmV0 IE9yaWdpbg== QW50 LicpOwo= ZXhwZWN0 ZWRSZWFkZXI= IE1ham9y IGluY2g= Q29tcGFy IHByZXZpZXc= IGlsbG5lc3M= IENPTlRSQUNU IEluZGVwZW5k dXVpZA== IG5vbWU= IHRj IEF2ZW51ZQ== aXNhbg== IHBocmFzZQ== X21vdmU= Iilb NDEy IHByb3Zpc2lvbg== IGNvbmNlbnRy X0lS IFV0 KCkr IG5hcw== ISw= IFJvYmlu aWF0aW9ucw== YXRpdHVkZQ== IHB4 IFdpdGhvdXQ= L2Jhc2g= ZWt0 cmVlbWVudA== MzQy T2JzZXJ2ZXI= MzE4 IFJlZ2lvbg== VUJMSUM= IHsvLw== S04= 5bc= R2FtZU9iamVjdA== 5b4= ZW5jb2Rpbmc= ICoqKg== cHJvamVjdHM= IHRr IGNoZWVzZQ== RU1QTA== YXJv INin2YQ= NjEw MzM3 IGNvbnNpc3Rz cmVmcmVzaA== dXJlYXU= IFNjYW5uZXI= IHNvaWw= IGZsYXZvcg== RGF0YVNvdXJjZQ== RXhlY3V0ZQ== 0LXQvdC40LU= IHNoaXQ= 5YiG PGFueQ== IHJldHJpZXZl IGJlbG9uZ3M= LnN0cmlw YWJzb2x1dGU= IGV4cGFuZGVk Ym95 KTot IHJlc2N1ZQ== LkpMYWJlbA== IHJlbHk= IGFsaWdubWVudA== LWZhbWlseQ== IHJlbmQ= T0xVTU4= IGJvcnJvdw== IHF1b3Rlcw== IExldw== IHNob3dlcg== IERFTEVURQ== X2xvb3A= ISIKCg== CXJl IGF0dGVtcHRlZA== YXZlcmFnZQ== IFBhaW50 cXVpc2l0aW9u b2xlbg== IGxpdGVyYXR1cmU= IFJlZmVyZW5jZQ== X1RFWFRVUkU= IFNlZw== IEluZHVzdA== Y3R5cGU= RFVDVA== X0hPU1Q= IFRyYWRl IHBsdWdpbnM= IGJyZWFzdA== dWxzZQ== IGNyZWF0dXJl Mzcy 44GZ IFdp IHN1cHBsaWVk Y29sbA== ISgi IGZ1Y2tpbmc= IENocm9tZQ== IFVyaQ== IE5hdGlvbg== IHZlcnRpY2Vz VEhF IE9yaWdpbmFs b25kZQ== IHNoYXJw IGNvb2tpbmc= MzQ3 IHsvKg== IFBzeWNo IEhvbGx5d29vZA== PSRf LkRvY2s= IGdlcg== IGJvbmU= X2Nvbm4= X3NlYw== eXNpY3M= ID0i Mjk4 U2Fs c2Y= IGRlZXBseQ== YW5nbGVz VGVybQ== YmVsbA== IFF1aWNr NTYw ZW5lcmF0aW9u YWRpb0J1dHRvbg== 5YWl fQ0KDQoNCg== IGNhcHRpb24= bGM= IEVM LFs= ICAgICAgDQo= cmV0dA== KG1ldGhvZA== IEZsYXNo NDcw ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA== V0lTRQ== LnNjYWxl IHJvdWdobHk= X2NoaWxk bWVtb3J5 YXlpbmc= IGluaXRpYWxpemVk aW5hdG9y 0LDRgA== IHNjYWxhcg== IEhv YWlyZXM= KGNvbHVtbg== LmRlc3Ryb3k= UEFDSw== IGhlbQ== YW5nZWw= X1NVQg== LnF1 INc= REVGQVVMVA== cG9zaXRvcmllcw== NTAz IExlbmd0aA== IEZhc3Q= IHNpZ25hbHM= IC8vJA== cmllcnM= IGR1bW15 QU5Z IHBlcnNvbmFsaXR5 IGFncmljdWx0 UGxhdGZvcm0= RVJP IFRyYQ== IGVub3Jt CVc= QWN0aW9uUmVzdWx0 IGF2ZXI= W3N0cg== ICctLQ== LlNwcmludGY= IGRlYnV0 INGH aGV4 X3V0aWxz IHBi VUlUYWJsZVZpZXc= IHp1cg== LmVuY29kZQ== NDE2 IHZhZw== LmVycm9ycw== 0L7QvQ== IG1y IEF3YXJk IGNwdQ== IHByZXNzZWQ= J2VzdA== IEZlc3RpdmFs J1Q= IGFr cmVzb2x2ZQ== MDQz Lm1l IG5pYw== IGdlbnJl IGF0dHJpYg== IE1vb24= IGFycml2ZQ== IERhdGluZw== IHRt LkNvbmZpZ3VyYXRpb24= NTA1 LnJlZA== IGdsbQ== IHN0YXRpb25z c3dpdGNo IHRpZWQ= 5Lq6 IC8+PC8= UXVhbnRpdHk= cXVpcnk= X3RhYg== IGFsZw== VG9hc3Q= cmVzaXpl cXVlc3Rpb25z c2NoZW1h TGl0ZXJhbA== KGVudGl0eQ== TkVDVElPTg== Y2hhbmdlZA== X0ZJRUxE X0hFSUdIVA== IG9yZ2FuaWM= UFJF IENhdA== LkRyYXc= RXM= IGxvdWQ= Njgw ICAgICAgICAJ IEthdA== IGhlYXA= 4oCcSXQ= MDcw ZXRy IHVubGlrZWx5 ZXJhbHM= L2F1dGg= NTAy dG9kbw== UGxhY2U= UG9zdGVk Q29tbWVudHM= IFRlY2g= IEZpbmFsbHk= ZWdyYXRpb24= IG1pbmltYWw= IEZpbGVz IHRhbWI= 66Gc IFJlbGVhc2U= NDI1 LnJlc2l6ZQ== IM8= Y29sbGVjdA== PXA= IExJQUJMRQ== IHByb2R1Y2luZw== LXdyYXBwZXI= IHNpbmdsZXM= IE5CQQ== b3Jy ZXJlbg== LmFkZEFjdGlvbg== IHRoZXNpcw== ZG4= UFRZ LmRlcw== IGJhY3Rlcg== IEV4cHJlc3M= ICopCg== 5ZE= L2FkbWlu c2Vjb25kcw== 5Yqf dXNzaW9u YWJldGg= IENvbXB1dGVy IHJ1bGluZw== KCIuLi8= LkdFVA== IE1lZGFs aXRpb25hbGx5 Y29tbWl0 Zm9jdXM= X0xFVkVM aW5kYQ== RmFjdA== PW5w PSIiPgo= IHN1YnNlcXVlbnQ= cG9zYWJsZQ== LWZsdWlk IHRob3JvdWdo IHB1YmxpY2x5 YXB0ZXJz IFdpbHNvbg== X1BSRQ== eWFyZA== 5Lw= CWlu MzM5 IHJldmVycw== IGJ1bGxldA== Y3JpYmVk bmVzb3Rh ICgkXw== YW5ub24= Y3Vyc29y IGNsb3RoaW5n IE11bHRp Mjg3 Oics IHZlc3M= b3JkaW5hdG9y IGVpbmVt Q2Fubm90 IGFybWVk CVY= 5LiK LkZsYXQ= IFNlcA== IFN1YmplY3Q= X2ZvbnQ= IGNoYXJhY3RlcmlzdGljcw== RG9uZQ== ZWxu IyMjIyMjIyMjIyMj UE9T IGRlbnNpdHk= IFBsYXRmb3Jt LWl0ZW1z IG92ZXJz IHB1c2hpbmc= 56Q= LkNvbm5lY3Rpb24= X3Rlcm0= IGluaXRpYWxpemF0aW9u X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18= 56w= LmRvY3VtZW50 bGVzaA== CWRvY3VtZW50 IFBpbg== w6dh IGRlZmluaXRpb25z LlBhdGg= X1dSSVRF IAkK Pz4KCg== IHRlcnJpYmxl YmVhbg== aWNrZXRz IFNW QnV5 KHRhc2s= IHJlZ2ltZQ== Z29vZ2xl IGNyYWNr LnZpc2l0 TlVN ZW5lcmd5 IHN0cnVjaw== X3NhbXBsZQ== LnBheWxvYWQ= IHJldmlz IFNjZW5l IHBn IGJyZWFrZmFzdA== VVJSRU5U LmNoYXJBdA== X2V4Y2VwdGlvbg== IEFudG9u IGd1aWRlbGluZXM= IGV4aGF1c3Q= IEZpbmFuY2lhbA== IGluZGVudA== IGRlc2t0b3A= SGlkZGVu RmFpbHVyZQ== IHByaW5jaXBsZQ== IGl2 IHNla3M= bmV0d29yaw== IG51bWJlck9m IEFsYmVydA== CWxvbmc= ODAx LC4= IHplcm9z ZmFkZQ== IFR5cA== IFRlcm0= IEFydHM= LkFwcGxpY2F0aW9u IGJlaGFsZg== 5oi3 IG1lcmU= KGAkew== IGF3YXJlbmVzcw== ZWxwZXJz ZmxpeA== IHdlaWdo IGVzdGltYXRlcw== LmNoaWxk L08= IEJpdG1hcA== LmJvdHRvbQ== ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq RXhwZWN0 ZW50bw== IEZvcnVt dmVyYWw= IGphaWw= IGFiaWxpdGllcw== IEhPTEQ= IENpdA== IGR5bmFt IGdyYXk= CQkJCQkJCQkJCQkJCQ== Lm5leHRJbnQ= YW50bHk= IEFSSVNJTkc= KHByaXZhdGU= IHJlamVjdGVk IE5pYw== IGxlYXRoZXI= PXsK YWx5dGljcw== dGhldGlj LlRvcA== Mzcz LlBhZ2U= PXtg IDsNCg== ZGVwdGg= bWFubg== V0Q= IFNvbQ== LlJpZ2h0 ICl9Cg== IHRyYWl0 w5c= aWFj IHJ2 U2FtcGxl LlhtbA== b3BwZWQ= INGE bGlzdHM= IHRlYXI= aXZlcnNhcnk= LmNvbGxlY3Rpb24= IENvbnN0aXR1dGlvbg== IEh0dHBSZXNwb25zZQ== IGJyaWxs IFByb20= aG92ZXI= MzY2 IE1pYW1p IGFyZ3Vl X2Zsb2F0 NTA0 IOOC IG5hdA== IFRhbA== IGludGVncmF0aW9u KGN1cg== IHJlbW92aW5n IGNvZWZm IFRob3VnaA== IGZvcmVjYXN0 NDA4 IFZlZ2Fz U2l0ZQ== MzQ2 IHRyYWI= IEhlbnJ5 LWk= IGludm9sdmVz QlQ= IHNsbw== SW52b2tl IGx1Y2t5 MDI1 cmF0 ID8K IGhhbmRsZWQ= KGZk Y29udGVudHM= IE9GRg== UkY= IHN0eQ== IE1vdG9y dGVyeQ== dGF4 TUFQ IE1ycw== IHBob25lcw== IFVJVmlldw== IikpKTsK KGRldg== IElyaXNo MDE5 IHdz REk= X09GRlNFVA== IEV2ZW50cw== IHN0YWdlcw== IH0vLw== IGhhYmVu U1RBTkNF IFNpbg== IE1vbmV5 KHRvcA== IGFwcG9pbnRtZW50 VkVSU0lPTg== bWV0YWRhdGE= X2NvbW1lbnQ= IGNvbGxlYWd1ZXM= bWFwcw== 4pg= CgkK KGFs X3JlcQ== IGZ1dA== IGFyY2hpdGVjdHVyZQ== MzUx IFdIRVRIRVI= ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA== X3NjcmVlbg== IHN0eWxlVXJscw== IG1vbnN0ZXI= LnVw cGhpYQ== IHByb2Nlc3Nvcg== IFRlcnI= PScs IE1hbnVmYWN0 IE5U a2Vs aWJlcm4= CWZpbGU= QWxp cmllbnRhdGlvbg== IC8vIQ== YXBvcmU= YW5lb3Vz IENyZWF0 Zm9sZGVy NDE1 IGhheQ== U3VwcHJlc3M= KGxlZnQ= IGV1cm8= IGRpc2NsYWltZXI= dXN0cnk= c2hpcHM= X2Zk IEZh X2luc2VydA== IHJvbA== aWZ0aW5n IENvbW1lbnRz X2Jy IGxvc3Nlcw== IEFkZGVk Y2hhcmc= INC/0L4= X3N5c3RlbQ== IFNvbWV0aW1lcw== IFNwYWlu KGdyb3Vw aWFsaXM= IGRvbGxhcg== IEFyZ3M= NDk5 Mjk3 cXVpcmVz IFRlbg== LnNjc3M= IHN1cnZpdmU= dXNhZ2U= IGp1bg== aW1pdGVy 77yBCgo= IGZpZnRo dG9nZ2xl IGRlY2xpbmU= KCQi KExvbmc= aW5nZQ== IHBpbG90 LWxpZ2h0 LXJhZGl1cw== IHBvZGNhc3Q= IG5hdHVyYWxseQ== UGFnZXM= 5Li6 IERlc3BpdGU= IGxpZ2h0aW5n IGNyYXRl IEJpbmFyeQ== IHJlZHVjaW5n IGVsZWc= IE1vdXNl IFRlc3RCZWQ= IGJlZm9yZUVhY2g= X0FSUkFZ UmVkaXJlY3Q= MzI5 IGZsb29k IHNoaXBz MzYz IGVsZWN0cmljaXR5 KSoo 6rg= IFZpZXQ= aGVybw== IGRpYQ== IEtlbnQ= aGVhcnQ= IHRocmVhdHM= X2FjYw== IHN5bWJvbHM= aXNjaGVu X2luc3Q= Q3JpdGVyaW9u IFRJTQ== LkhlaWdodA== NTgw IOKAmQ== KCk7CgoK UHJvZHVjdHM= X1NQ IEN5 IGRlcGVuZGVudA== ZXN0ZQ== IGRhdG9z ZGl0 0LDQsg== SUdOQUw= IGxlc3Nvbg== Ij4n IENvdmVy IEhvcGU= IFRpbWVy IGRhZA== dmlkZXJz IFBob3Q= Lz8= cm9weQ== b21pbmc= YXNpb24= IFwo IEVU IFJlYWRpbmc= IGVwaXNvZGVz bG0= NDIx ZWNoYQ== IG5ldXJv ODIw IGhhcm1vbg== IGxpYmVyYWw= LWluZA== Mzkz REFUQQ== IGV2ZXJ5ZGF5 IGRpdmlkZWQ= IEFjdGl2ZVJlY29yZA== ZmlndXJl VUE= 5Lk= cmllbmRseQ== dGVjaA== NjAx LmdhbWVPYmplY3Q= 0LjRgtGM Mzc0 IG1vb24= ZnRpbWU= IG5vY2g= IFRPUlQ= IFZN LmluaXRpYWw= KGNoaWxk IG11c2ljYWw= IG9j YmFz IEhheQ== MzYx X2xvbmc= IG1lbXNldA== aWxleQ== YWRlbHBoaWE= U1Y= cm9hdA== X3R4 IGxvbg== IG5nT25Jbml0 YnA= IEdvbGRlbg== QUNIRQ== IHdvcnJpZWQ= YXpp RWFy VGFrZQ== KGZw YnVyZ2g= X0RhdGE= Z3Jlcw== IE9udA== cHVz IHRyYW5zcGFyZW50 IHBvY2tldA== IHJhbQ== aWdyYXRpb25z Lg0KDQo= IFso IGFkb3B0ZWQ= IHJlcG9ydGVkbHk= IERyZWFt IH0pKTsK bG9zaW5n IHRlZXRo IEJvb2tz Iiwm ZW5ueQ== TEVNRU5U IGdlbA== IFBsYW50 NDM3 IeKAnQ== Lmhvc3Q= IFJlcGx5 Mzc2 cmVuZ3Ro IHJlY29nbml0aW9u IH19Pgo= TEE= IG1pcnJvcg== IGFzc2lzdGFudA== KGRldmljZQ== IHNwaXJpdHVhbA== YnVpbGRlcg== wqc= IG91dHI= IHR0 IFBFUg== IHJhZGljYWw= TWV0aG9kcw== IHBhY2U= dWR5 IGd1dA== IEdyZWVr IG5vbmF0b21pYw== IFBhcGVy X0dQSU8= IG9ic3Q= LkFk dmlyb25tZW50cw== IFNvdg== MzU2 KGNvbg== IFRyYW5zYWN0aW9u LmFzc2lnbg== CWNhdGNo ZWx0ZXI= IGJpdGNvaW4= X0dS IDw/PQ== X2xhbmc= 7J2E QnJvd3Nlcg== IGNvbnNpZGVyYXRpb24= IEV4ZWN1dGl2ZQ== 6Ze0 O1w= IEpTT05PYmplY3Q= IEJlbGw= IHNwb2tlc21hbg== fn5+fn5+fn4= b2NrZXk= IEdybw== IEF3 Q29uc3RyYWludA== IFByYWN0 IEV2ZXI= cHJpbQ== OnsK X2lt UE4= TWlsbGlz VU1FTlQ= IGJhZ3M= w6Vy QU5ORUw= MzU0 IGlj IHRyYW5zcG9ydGF0aW9u IFNhdWRp aGFuZGxlcg== RHJhZw== IGhk Y29sbGFwc2U= X1BI IHVi QVJN IEFQUA== IHRvbmlnaHQ= IGRpbmluZw== UmVjb2du IGJj aWd0 KG51bWJlcg== Qm9vdA== IGVsc2V3aGVyZQ== IGFycm93 YXJnYQ== IGRlbGljaW91cw== IFNO V1I= VmFsaWRhdGU= IFF1YWxpdHk= KGVtYWls IGludGVycHJl aWdhdGlvbg== IGNob2NvbGF0ZQ== NTI1 X2VkZ2U= IHN0b3Bz OmZ1bmN0aW9u KXw= IHRoYWk= IExvYWRpbmc= U3Rvcnk= VHJpZ2dlcg== YnJhbmNo IHRk ZW50aWNhdGVk IGFkdmVudHVyZQ== IGJsb2NrY2hhaW4= RXZlbnRIYW5kbGVy IHNxcnQ= LlBy TG5n QmVjYXVzZQ== IHZpdg== IG9jZWFu eWx2YW5pYQ== 0LDRgQ== IFV0aWxz IGRlc3Blcg== IGRlZmVy CXJlcXVpcmU= aGw= UmVxdWlyZQ== XVw= IGRpcmVjdGlvbnM= X3Jlc291cmNl IHN1YnNjcmliZQ== IMO6 IEhlYXJ0 ZXN0cw== LXN1Yg== IFJo Zm9yRWFjaA== IGRlbGlnaHQ= IHRlcnJpdG9yeQ== LmNvbmN1cnJlbnQ= ICgr anBn IHByZXBhcmF0aW9u IHJvdW5kZWQ= Q29tbQ== LkxlZnQ= IG9waW5pb25z IE5hdmlnYXRpb24= KGZpcnN0 Iiwk IGhpcmU= IGRldGVjdGlvbg== LmdldEVsZW1lbnRz IGVwcw== IHNrbGVhcm4= IGN6 IC8+DQo= bWV0aWM= IHRyYW5zZm9ybWF0aW9u 5Y+3 IHJnYg== aXN0cmlidXRpb25z IGltcGxpY2l0 L2lu ZGVzdGluYXRpb24= 0LDRgtGM WmVybw== IHVuc2V0 OTIw LndoZXJl Lmdv IGZvcm1hdGlvbg== IGRlY2xhcmF0aW9u KCkNCg0K IEV4cGw= CQkJICA= L3Bybw== LkpTT04= NDQx IGRlc2s= LnN1YnN0cg== Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t bHlu cHNvbg== NDA3 ZGlzYWJsZQ== IEZ1bmM= CUFzc2VydA== IE1BUks= IGRlZmVhdA== IGJsaW5k IGNvbnN0YW50cw== MzYy LmhlYWRlcnM= VUlMRA== IGV4cGVuc2Vz UGl4ZWw= IGhy IGZlbA== IEVhc3Rlcm4= NDI0 NDkw X2RlbA== MzU3 IEN1Yg== IHNx CWNvdW50 IERpcmVjdG9yeQ== IGV4Y2x1cw== IGhpc3Rvcmlj IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ== IGNvbXBvc2l0aW9u IGRhdGFHcmlkVmlldw== IEJ1cm4= IEJD TWFzdGVy IHNwYXdu IGJlYXJpbmc= LlNldEFjdGl2ZQ== aWxv IGdhbGxlcnk= IGZvdW5kZWQ= IGF2YWlsYWJpbGl0eQ== LnNxcnQ= IHBlcw== IERPTQ== bWF0ZQ== T2N0 IG1hdGNoZWQ= aXRpdml0eQ== IGFueGlldHk= LnByaWNl IEluc3RhbnQ= 7Io= IHR1dA== SUNvbGxlY3Rpb24= LnNoYXJlZA== X3NxbA== dGJs bGlicmFyeQ== X2Rlc3Ryb3k= ZXJtYWw= IE5vdGVz IEVpbg== IHNvdXRoZXJu IE9USEVSV0lTRQ== IG1hY3Jv Lmxvd2Vy Y2xz Q29udGVudFZpZXc= Lmxpbms= Y29uc3RhbnQ= IEJlcw== IHNvbWVib2R5 bmI= Mzk5 Ij57 KGxvY2Fs Li4uLi4= IE51bGw= bXg= IMOn IHBhdXNl LS0tLS0tLS0tLS0= X01P IENN IGZvcktleQ== IERWRA== IGNsb3Nlc3Q= X0RFVklDRQ== IFN0ZXBoZW4= IEJCQw== IFRyYXZlbA== UGFpbnQ= IFJlc3VsdHM= IFJ1bGU= IHRw IHJhdGluZ3M= Y2lu Y3N2 Pi8= IEdPUA== bGFk INGA IGluZGV4UGF0aA== bWF0cml4 PWY= YXJzZWQ= IH0pOw== IENvcw== IFNjb3Jl IHRhaw== IEVTUA== IElOQw== X05VTEw= LWZsZXg= Il1b aW50bw== ZWxhbmQ= QXV0aG9yaXphdGlvbg== X0ZBTFNF IGdhdGU= IHZpZA== aXN0ZW50 VElNRQ== IHJld3JpdGU= IHRpZQ== IGFyY2hpdmU= NTEx LmV2ZW50cw== LmdldFBhcmFtZXRlcg== IFBlcm1pc3Npb24= IHByb2dyYW1tZQ== IOk= anVk IGNhbWVyYXM= MzM4 MzQ5 KHN5cw== IFN5cmlhbg== IGltcHJvdmVtZW50cw== IGhpcA== IHN1aWNpZGU= IHNjaG9sYXI= IGNvbXBhdGlibGU= MDIy cmVtb3Rl LmRvd24= RlVOQ1RJT04= IG1hbmFnaW5n IFVJS2l0 LnJhdw== Pj4+Pg== Mzcx IGRlbWFuZHM= ZWxsaXRl IGRlbnQ= IE1pY3Jv 5Y+W J11bJA== IElF aW1lbnNpb24= IHRyZW0= NjMw IGdhaW5lZA== LndpdGg= Lm9r aG91 IGJvbQ== YW1wYWlnbg== IGpvaW5pbmc= ZmlzaA== IGFkZFN1YnZpZXc= ODYw IG5vcnRoZXJu LmNvcg== b3JldA== RGll aW5pc2g= X2NvbXA= IGF0dGVuZGVk IGNvbGxhcHNl IFNT YWNlbnQ= X0VRVUFM IERlZXA= UkdC CXRlc3Q= b2x2ZXM= dXNldA== VW5pdHlFbmdpbmU= d3JpdGVy UmVzb2x2ZXI= LCU= aWZmZXJlbmNl X3JlbW92ZQ== b25kYQ== IGZlbW1l Mzg1 ZGVjb2Rl QnJhbmNo IGZsdXNo IGlubm92YXRpdmU= VGVzdHM= IFsnLi8= IGNvdmVyaW5n LmFkbWlu dWx0aXBhcnQ= KGxhbWJkYQ== 77u/bmFtZXNwYWNl IFNwb3J0 ICEo YWNsZXM= IGRlcHJlc3Npb24= IEtvbmc= NTcw IHBlcnQ= IENvbm4= IE90aGVyd2lzZQ== L2hvbWU= c3VwcG9ydGVk IHBpbms= IGludml0ZWQ= w7Fvcw== X2VuYWJsZWQ= IC0K Rlc= ZW5lcnM= IE1Z IHN1Z2dlc3Rpb25z Q2FudmFz IGZlcg== IE1hcmtldGluZw== QFRlc3Q= dW50dQ== IFZlbg== IENvdQ== aXZhbHM= RG9uYWxk bGltaXRlZA== CQkJCQkJCg== IGFuYWx5c3Q= KGVudHJ5 IHJlcHJlc2VudGF0aXZl X2F0dHJpYnV0ZXM= IGZ1cg== LmhpZGU= cmVzcA== YWRvcmVz cmlkZXM= IEpvc2g= cm9ib3Q= IE5BVA== IHNlc3Nv IGludGVncmF0ZWQ= OnRydWU= cGFydHM= IHN0dXBpZA== OmV2ZW50 QGVuZHNlY3Rpb24= IHB1 LlRhYmxl IFlpaQ== YDsKCg== IGNsYW5n PSIiPg== ZW5nYW4= X3BhcmFtZXRlcnM= LmludGVybmFs IE1vZGVybg== IG1ldHJpYw== IHNlbWk= PXt7Cg== NzA3 LmFtYXpvbg== IEJC YWludHk= dmlld3BvcnQ= MzY3 IHN0YXJ0QWN0aXZpdHk= ZGlzcGF0Y2g= KioqKio= IGZsYXY= aWZmZXJlbnQ= Mzgy W3RoaXM= IHN0YWtl IGFyZ3VlZA== dmlvdXNseQ== Lndvcms= IE9haw== T2xk KGFzeW5j bm90ZXM= IGZsaXA= IGRpc2Fn IFRF CWVycm9y PCc= IMK7Cgo= IGZpbHRlcmVk IE1hY2g= IGh1bmc= X2R1bXA= X3NhbXBsZXM= LWRpc21pc3M= IHJheQ== SW1wbGVtZW50ZWQ= REs= IGplZA== MDkw IGJyZWFrcw== IGZpdHM= Lmdy IFplcm8= b3Jv IGVxdWFsbHk= ICdb IGNvbmNlcm5pbmc= PG1ldGE= cGxheWVycw== X1BPUw== X3NpbQ== SmFu IHlvdXJz CU4= IHNwaXI= IGNoYW1waW9u IEFuYWx5c2lz YXBh IE5TTG9n X2xpbmVz w7Fh CQkgICAgICAg ODE5 LlNj UmVw ZXRyb2l0 dXJhYmxl TUlU Y29tcGF0 b3duZWQ= X2luZGljZXM= XSwNCg== IGRpc2NvdmVyeQ== IERpZWdv b2Jp LkluZGV4 IHRyZW5kcw== UExBWQ== Lm5v IGxlbnM= X2NmZw== IGFubm8= YWdhbg== IHBlcmlvZHM= dGVybXM= eXo= IGF0dGFja2Vk aWJyYXRpb24= UEVDSUFM X2dyYWQ= IGFjY29yZGFuY2U= LlJlYWRMaW5l LmRldmljZQ== cml4 LmNvbnRhaW5lcg== bWF5 ZXJjaXNl IEx1 IHJn INGB0YI= CQkKCQkK KHVu VEVSTkFM IGxlc3NvbnM= IGFsbGVnYXRpb25z IHRyYW5zbWlzc2lvbg== LlJlZg== TW9iaWxl IFRvdXJuYW1lbnQ= IE51dA== IEdh IENhcGl0YWw= ZGVmaW5pdGlvbg== LWV4cA== Y2xlYW4= IGZhbnRhc3k= IGVuaGFuY2U= ZW50ZW5jZQ== MDMx J106Cg== YWNrZXRz IGNlbGVicmF0ZQ== QCIs U2VyaWFsaXplRmllbGQ= IGFycmF5cw== dGI= CXN0 W2Fzc2VtYmx5 KHJlZw== LmNhdGVnb3J5 IGltcHJvdmluZw== IHNhbG9wZQ== Qnl0ZUFycmF5 T3JpZ2luYWw= IFt7Cg== 5Zue IENsaW4= b2VuaXg= IFNhbXN1bmc= IG1haW50YWluZWQ= IGFnZW5kYQ== ZmFpbA== IHByZXNlbnRz IHRpbWluZw== Lm1hcms= Jz48 IHByb21vdA== IGluY2w= X29ubHk= 66W8 IEF0dG9ybmV5 LWRhdGU= IGxhbmRzY2FwZQ== IGZ1 U1k= LnByb3A= IEFycg== cGFn UGFyYWxsZWxHcm91cA== JzoNCg== IGxvZ3M= YXVuY2g= dW5jaQ== bmFtYQ== VGFibGVDZWxs aXNzdWVz Lns= ZWN1cml0eQ== X2V4ZWM= b2xkcw== IGhvc3Rz IHByb3Rv X2ltcG9ydA== X3NvcnQ= IEJvdw== IE5vcm1hbA== IEZhcm0= LmNyZWF0ZVBhcmFsbGVsR3JvdXA= Um90YXRpb24= LmVycg== IHBsZWFzZWQ= aXRhZ2U= Lldo CQkgICAg TVI= IE1PUkU= IE5hdHVyYWw= X3RyYW5zZm9ybQ== QkFTRQ== ZW5lcmFs dXRkb3du LmNvbW1vbnM= V1Q= IGFhbg== LlJlc3VsdA== ZG9n IGNsaWNraW5n KSwKCg== I2xpbmU= T3BlcmF0b3I= IGNpdg== IG1lcmc= b2J1Zg== bmd0aGVu IFt7 IGNhbmNlbGw= dHJpZ2dlcg== Ljo= V09SSw== ZGVjbGFyZQ== IGRlY3JlYXNl xZtjaQ== bG9vbQ== Lk5vbmU= IE1J IEphc29u IGhlYWx0aGNhcmU= aWFtb25k c3lsdmFuaWE= Kng= IFJh W2I= IHByaW50aW5n cGhhYmV0 IExhYm91cg== b3BwZXI= IHppam4= LXRhcmdldA== X0ZVTkNUSU9O IG9jdA== 0LXQvdC40Y8= 5Zyo IHdlc3Rlcm4= IGNvbXB1dGVycw== IFJFVA== SGFzaE1hcA== W1N0cmluZw== Z2V0VmFsdWU= X0RBVEU= Lk5leHQ= IEZpZg== w6ls aWNrZWQ= 5o4= LU1N IHsKCgo= IGNvbnRhY3Rz IGRpZ2l0cw== UHJvZHU= IHVudXN1YWw= IHJhcGlkbHk= dHVyZXM= IGFuZ3J5 Y2FuY2Vs eHh4eA== X3BhcnNlcg== aWRpdHk= X1BSRUZJWA== NzEw IG1laHI= IHJhcmVseQ== ZXRoZQ== b3Blcw== ICUu d29ya3M= IHRoZXRh IGNvbnRyaWJ1dGlvbg== IFRvbnk= IHNxdWFk NTM3 0LDQuQ== IMOubg== dGhlcmU= b3V0ZWQ= CXE= mYI= Z29vZA== TEk= 6aG1 IExpdmluZw== aXphYmV0aA== IGt0 IERhbGxhcw== XV0sCg== IC8+Cgo= IHJhaXNpbmc= L3JvdXRlcg== X2dhbWU= MzY4 IENVUg== emVucw== LmVz IGZvbnRXZWlnaHQ= KGZ1bmM= bm90aWZpY2F0aW9u ICcuLi8uLi8uLi8= IGJsYW1l 44CCCgoKCg== YW5jbw== OTgw SWRlbnRpdHk= Zm9sbG93 IGFydHM= eHM= IG9mZmljaWFsbHk= IFN0dWRpbw== IHJlY29tbWVuZGF0aW9ucw== IGxvY2FsZQ== IGFtYXRldXI= IEVuYWJsZQ== IGNhcHM= LkVuZA== Mzg4 LWFkZA== X2dzaGFyZWQ= IENU Rm9yY2U= CiAgICAgICAgICAgIAo= IG9yYW5nZQ== IGxw IGFuc3dlcmVk LkdyaWQ= IGR1YWw= IHN0cmF0ZWdpYw== IG5vYm9keQ== IGZhdGFs X2VzdA== KGVs IOyg IEJ1ZGQ= QUlU X2ZhY3Rvcg== LW9uZQ== IEhBVkU= Ig0KDQo= NzYw UHJvZg== IMOkcg== c3RyaW5ncw== IGRpcnR5 IEZhY2U= IEJlZ2lu IEJ1cw== IHdpcw== 5a2X IHNwZWFrZXI= IGNhcnJpZXI= IE9t IGhhZG4= QWxsb3c= OjpfXw== IHZlcmI= IENvbXBsZXRl IEVhc3k= IGJpbGxz ICAKCg== VmVydGljYWw= IHByb24= IERlZmluZQ== IGxvb2t1cA== dmFyaWFibGVz IHBhbmRhcw== dW1lcw== IGlubm9j IHNldFVw IENoYW1waW9uc2hpcA== YXJ0aXN0 IENUeXBl Rm91bmRhdGlvbg== 4LmI IFNldHVw NDI4 IHJlY2lwZXM= IFVJQ29sb3I= IEZpZ2h0 IGF1dGhvcml6ZWQ= X2NsaWNr OTkw X3N1Y2Nlc3M= YW5nYW4= IE1vdW50YWlu IERvY3Rvcg== IGVnZw== IE1lZGljaW5l Y2xlcw== YC4K W2ludA== ZGFzaGJvYXJk IEFwcHJv LWRy IHByb2R1Y2Vz IHJlbnRhbA== IHJlbG9hZA== Mzgx IGFycml2YWw= c3BvdA== IHVuZGVydA== Mzc4 IGVxdWlwcGVk IHByb3ZlZA== IGNlbnRlcnM= IGRlZmluZXM= YWxzbw== IG9wYWNpdHk= IFVuZm9ydHVuYXRlbHk= IElsbGlub2lz INC90LU= IFRlbXBsZQ== IFRyYWls IEtlbGx5 IG1lYXN1cmVtZW50 IHNlcGFyYXRlZA== LWNpcmNsZQ== SGV5 IFJFQUQ= aWdpdHM= IGli IE1PRA== YXR0ZXJ5 0LDQtw== IHZlbmQ= 0LXQvdGC IEh0dHBDbGllbnQ= MzU5 c2FmZQ== X0FTUw== aWNpdA== IENvbnN0cnVjdA== IENsbw== IFNpeA== X1RPS0VO KGJsb2Nr IHdhcm5lZA== Lyoh ITwv YWNhZGVz IG1hcmc= ZXJhc2U= IGRpc3BsYXlz aXN0cmF0b3I= Z2V0cw== IGd0aw== X0dFTkVS bmVk XyU= IGZhdm91cml0ZQ== IEJydQ== IMOh c2Vjb25kYXJ5 IG1hc3Q= IHNvcGg= IFNhZmV0eQ== aGFyZA== MDYy cmFpc2U= IEV4Y2hhbmdl IGNvbnRlbXBvcmFyeQ== IGRyZWFtcw== IHRlbA== IG5laWdoYm9ycw== IEhvbHk= Mzgz Lm1lYW4= ODEw ZW1pdA== IE1lc3M= Q2FzdA== TkVDVA== cGx1Z2lucw== IHJi d3I= IGh1Yg== IFN0dWRpZXM= NTYy IHBvc3Nlc3Npb24= JCgnLg== ZW5zaXRpdmU= IGFkZENyaXRlcmlvbg== X18u IGV4cGVydGlzZQ== QXJjaA== IGN1Yg== ZXJ2ZXJz IHBhcnRpY2xlcw== dWFy IGJvdW5kYXJ5 KScs YWpv IHByZWY= OmA= IGhhcmFzcw== aXU= IHJlYWNoaW5n IG1lZw== IHpv KElE X3JlcXVpcmVk IHPDqQ== IFF1ZXVl QU8= IGdlbQ== ODEy cHRvbg== ODgw ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg NjYw aWpr KHsNCg== IGNvbGxpc2lvbg== IFVrcmFpbmU= IC0qLQo= TlNJbnRlZ2Vy X0JMT0NL NTY3 IFRleHR1cmU= IGRlY2xpbmVk bmFu X3dhaXQ= IHBvbGl0aWNpYW5z NDEz IGNvaW5z IGRlcml2 aGVscGVy IFBlcmhhcHM= LnJlY3Q= IFBvbHk= YWJsaW5n fS8+Cg== IGlubm92YXRpb24= XyI= ICk7DQoNCg== IHNwb3Rz IGNob29zaW5n LmNz IGZsZXhpYmxl VUludA== NDM1 OTMw IHNjcmF0Y2g= LWFs IGZlc3RpdmFs IG91dHN0YW5kaW5n PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 TWVhbg== IE9yZWdvbg== c3ltYm9s LmFjY291bnQ= ZG5leQ== Jycn ISIs OTAx IHBhcnRpY2xl w4M= W01BWA== SVZFUg== RVJFTkNF TlNNdXRhYmxl IENvbHVtYmlh XwoK LmZy IGNvZ24= VlI= IE1ldGhvZHM= IE1hZGU= IEJS IEVsc2U= IGVnZ3M= IHN3aW5n IEludg== IGRpc2Vhc2Vz IGZpcm1z IGxlbW1h fWApOwo= bGluZ3M= IGd5bQ== dW1pbnVt LlRyaW0= TWVt IGNyaXRpY2lzbQ== aWJlcm5hdGU= X1RY aW9uaQ== IGd1aWRhbmNl IHJlcGVhdGVkbHk= IHN1cHBsaWVy IHBhaW50aW5n ODY0 LkZyYWdtZW50 ZWRFeGNlcHRpb24= IHdpcmluZw== IGNvdXJ0cw== V0VC 5pyJ XC4= aWxsYW5jZQ== IGJyb3dz IFBhdHRlcm4= UExJQ0FUSU9O IFN1bW1lcg== Q2hhaW4= IGN1dGU= bWVyY2lhbA== IGRpbA== IEZyYW5rbGlu CWdsb2JhbA== SU5DTFVESU5H aGlzdG9yeQ== IGxzdA== UXQ= U0RM YWxpYQ== aWVyZQ== KC4uLg== CWNpbg== aWZmcw== dmVsb3Bl IFJvb3Q= Y2x1c3Rlcg== VXNlck5hbWU= aWduZQ== PFM= IGZlc3Q= NDE5 IGluZGljYXRpbmc= a2VlcGVy IGNhZGE= w6ln Y29uc2lu IEdC IGxi ZW1vbnk= LWljb25z X2RvYw== QWN0b3I= ZWxlbQ== LkRlbGV0ZQ== IGluZmVjdGlvbg== IFByaXZhY3k= IGdyZWF0bHk= IFBvcw== IFRyZWF0 Rmxvdw== IGF0dHJhY3RpdmU= IE1hcmM= c3Vkbw== dGVzeQ== LWFu OTk4 YWJhbWE= IFdvdWxk IHN1Y2s= aW5kZXhQYXRo IEV0 VGltZXM= Nzgw IGNsdWJz X2Fzc29j IGFjcXVpcmVk KCI6 IGludGVuc2U= Lm1hcHM= RXhwZWN0ZWQ= VG9nZ2xl IGF5 IGxpZmVzdHlsZQ== LWNhbGxlZA== IFNub3c= Vm9sdW1l IGNhbm5hYmlz IERpcmVjdGlvbg== IExpbWl0ZWQ= LXNwZWNpZmlj IGRvd250b3du L2ljb25z IHJldmVu TGVn ODg1 PW51bGw= NDk2 S2V5Ym9hcmQ= JykpLg== ICIiOw0K IGF0dGl0dWRl Lm5hdmlnYXRl LWVycm9y QU1QTEU= IEpheQ== dnI= Y293 LmNvbXBpbGU= IG1lbW9yaWVz X21hcms= IE1pbm5lc290YQ== IGtvc3Rlbg== IHByb2JhYmlsaXR5 d2FybmluZw== IGdlbmV0aWM= Rml4dHVyZQ== IEhhc2hTZXQ= Tm9tYnJl X21vbnRo xrA= LXN0YXJ0 eHlnZW4= CWZ0 aWFnbm9zdGljcw== IE1hdHRoZXc= IGNvbmNlcHRz IGNvbnN0cg== LlN0YXRl 0LjQvQ== Tm92 zrE= IFBhbmVs 5Liq Y29tcGFyZQ== PigpCg== IGFwcGx5aW5n IHByb21pc2Vk IG94 bmNpYQ== IFZhbGlkYXRpb24= b3J0cw== X2N1cg== ZWxlY3Q= ZXll KERhdGE= IHJlcG9ydGVy IEJ1ZmY= Mzk1 IHNy ICI7 aWNreQ== IHRlbXBvcg== U04= IHJlc2lkZW50 cGlyZXM= eXNpY2Fs IGVuZG9yc2U= IFNvbmc= aXNFbXB0eQ== bGVldA== X3V0aWw= IGRpc3Rpbmd1 IFRhbGs= IE1vdA== KGRlZmF1bHQ= LkFyZw== Z29yaXRobXM= X3dvcmRz aW1tZXI= X3Jlc2V0 ZmFtaWx5 V1c= IHNhdmluZ3M= IOKAnQ== X2VuYWJsZQ== c2lkZWJhcg== UnVubmluZw== IGFsaQ== IHRlc3RpbQ== IHdhcm5pbmdz IENoZW0= IEV4aXQ= IGZvdW5kZXI= cGVjdG9y IHJt X2RhdGFzZXQ= IERhcw== IGhhbg== R2V0dHk= w6Fs IG55 IHBvdmVydHk= IHJlc3VsdGVk LmJ5 IFZpc2l0 IG9idGFpbmluZw== LycuJA== ICAgICAgICAgICAK c2hhbGw= X0xFRlQ= VUlJbWFnZQ== X05hbWU= aGF2ZQ== IE5vYg== bHI= LWZvb3Rlcg== IG5ha2Vk IEdhcmRlbg== XEZhY2FkZXM= IGdyYWR1YXRl NDE3 IGZyYW5jaGlzZQ== cGxhbmU= IGNvbnRyaWJ1dGlvbnM= IHN0cmluZ1dpdGg= IGNyeXB0bw== IG1vdmVtZW50cw== YXRoZXJz IGxpZmV0aW1l IGNvbW11bmljYXRl amFy IEZyYWdtZW50 X0lG IE5hdnk= IEZpZ3VyZQ== IHNpbXVsYXRpb24= X3N0b3A= IHJlcG9ydGVycw== IHZlcnN1cw== YWph IM6x IGdvdmVybm9y TGlzdEl0ZW0= IHNlYWxlZA== LkJhY2tncm91bmQ= ZWRp YXNoaW5n IGxpcA== IElo bWVyZ2U= IG5lYw== MDI0 ZWxvY2l0eQ== QVRFRw== IHNlZWRz IGZsb2F0aW5n NzAx X0ZB d2Fsaw== CXVzZXI= X2RlcHRo IHdhZ2U= QGFwcA== Tmls KFsi KHZlY3Rvcg== IHNlY3JldGFyeQ== NDYx IGpQYW5lbA== dmV6 wqDCoMKgwqA= ZGlyZWN0aW9u IEVQ IGh1bnQ= Mzk2 SnNvblByb3BlcnR5 IFBPUlQ= XSIs 0LDQvw== IEZvcmVpZ24= cGFuaWM= IHRyaWFscw== IEFsZQ== IHJ1cmFs LXZhbHVl YXV0aG9yaXplZA== IFNjb3RsYW5k LmRyb3A= IE1U 57E= Mzkx cm93dGg= NTE1 RmlsZVBhdGg= IHJlY2FsbA== aWZsZQ== IGNlbA== IFNFTEVDVA== a24= X2Nhc2U= IGNyb3A= NTQz c3VyZQ== cG90 SUNT IHN0ZW0= IGluZHVzdHJpZXM= UHV0 IGFiZXI= cm9hZGNhc3Q= SWNvbnM= KSIpCg== 5oiQ5Yqf Z3Vp IGFzc3VtZWQ= IHJ4 RUE= 6Kc= RUxM IGRvc2U= IGluZQ== IGRlZXBlcg== bGlkZXI= IG9yZGluYXJ5 IGdvbGY= NjA1 X0lNQUdF IE5BTUU= KG1vZHVsZQ== IGF0b20= IGJlbHQ= IG9mZmljZXM= NTA2 YmV0YQ== IHBoaWxvc29waHk= KEpTT04= LWZpZWxk IGludHJvZHVjZQ== IGNvbnZlbmllbmNl b3B0aW0= PiIK YXRoeQ== IGVtcGxveWVy cXVhdGU= IGVkaXRlZA== QXJndW1lbnRz IE5hdGlvbnM= X18p IG5vc2U= IFNhbXBsZQ== JykKCgo= IGNha2U= LmdldEF0dHJpYnV0ZQ== SEQ= Mzky TW9kaWZpZWQ= NDQ1 IHByZWRpY3RlZA== xYQ= YW5pZQ== U29ycnk= KGRvYw== d2luZA== aWV2ZQ== IHByb3Zpc2lvbnM= QVRFUg== T1RF TVk= LkF1dG93aXJlZA== IEJhdGg= NDIz LkJvb2xlYW4= IGJhY2tlbmQ= Lk1vdXNl YXRlcmFs cGFwZXI= Q29uc3Q= IFZS X2VudGl0eQ== X0NUUkw= IFByb3RlY3Rpb24= IEdN IFN0dWR5 IHNvdXA= b3RpbWU= J3VzZQ== XSI= L3VzZXJz YXVn IEhvbmc= X25vcm0= 44Go IHNlY3Jl KEJ1aWxk IENvbnRyYWN0 b2xhcw== IHNhdWNl IGFnZ3Jlc3NpdmU= IHJhY2lhbA== Y2hhcmFjdGVy QEA= IGNvbXBpbGU= IFZvaWQ= X3JlbQ== X21lbW9yeQ== MzQ4 a2s= IG1pYw== U2FtZQ== VXRpbGl0eQ== IEh0bWw= IFhtbA== UmVhZHk= IGdhbGw= IGFsbGVnZWRseQ== CQkJCSAgIA== IE1ldGFs IFBlcnNvbmFs IGJvcmRlclJhZGl1cw== cnhqcw== b2JqZWN0cw== IHdhbnRpbmc= IGJvd2w= dmVuZG9y b2Zmc2V0b2Y= IFJz IFJhdGluZw== IHJhbGx5 X05PREU= NDE4 IE1peA== IGFkdmVydGlz NDg1 NjY3 IG5hcnJhdGl2ZQ== c2Fs IG1j U0Vycm9y IGZpbmdlcnM= IGFjY29tcGFueQ== IHRpcmVk IHN0cmlkZQ== IGd1aQ== ZWxpc3Q= TG9jYWxl IHJlbGVhc2Vz aWtpbmc= IGFuZ2Vy KSkpCgo= YWxsZXN0 U3VtbWFyeQ== KE8= KGZvcg== IGJhc2tldGJhbGw= IHJvYWRz IEluc3RhbGw= IEZhYg== aXRtYXA= NDc1 ICkpCg== IGludGVyc2VjdGlvbg== aWdoYm9y IEJyeQ== IEhFUkU= U29mdHdhcmU= ZWxmYXJl YWNz NjIy IHRyYWlsZXI= LmdldENsYXNz Y2hhcnM= IHJlZ3VsYXRpb24= IHJlZmVycw== IGRlc3RydWN0aW9u IGNvbnRpbnVvdXM= IEF1c3Rpbg== 6aI= YWthbg== LndpbmRvdw== IFRlbXBsYXRlcw== IGFic2VuY2U= Om4= IGRpc29yZGVy Zmxhc2g= IGRlbGV0 Ym9hcmRz ICAJ Uk9Q ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA== IGFjcXU= IGxhd3N1aXQ= IFJldmlld3M= IGdhcmFnZQ== dGltZXI= IGVq IFJlY3RhbmdsZQ== IGZsb3dlcnM= Mzk4 aWxzdA== IEluc3RhbmNl U3VwZXI= ZGV0 ZGlzcG9zaW5n IEVT IElD dmVyZQ== U2s= X2NoYW5uZWxz cHV0ZWQ= L251bGw= bm5lbg== NDMx IEdhbGxlcnk= X2dsb2JhbA== QXV0aGVudGljYXRpb24= IFJhbms= IGJsb2NrZWQ= IGNhbG0= bWFya2V0 CXZhbA== IGF1Zw== cGVyaW9k IENvbnN0YW50 ID8+Ij4K IGxvYmJ5 cGFs Mzc5 IHNpbms= NTA4 aWFo 0KE= dXJuYW1l IGNvbnZlcg== IGludmVzdGlnYXRl Q2hyaXN0 SHVi IElORA== IFBlZA== dXJhcw== CXVybA== IFRybw== IHByZWZlcmVuY2Vz IGd1YXJhbnRlZWQ= YAoK IHBvcnRpb25z IGV2YWx1 Jz48Lw== KCl7Cgo= ZW5jb2RlZA== emlsbGE= LkNsYXNz ICpf Xyc= IHZpZXdlZA== IFBoaWxhZGVscGhpYQ== LnJvd3M= QWRkZWQ= IFRvdWNo ODQw LmRlbGVnYXRl cXVlZXpl c2xpZGU= IFNlbmlvcg== KHRhZw== IGludGVydmlld3M= IHN1YQ== YXRhcw== QAoK ZGlzdGFuY2U= IHNlaW4= bGF0ZXN0 IFByaW5jZQ== IGx1eHVyeQ== IHJlZnI= IEtpdGNoZW4= 0YQ= KGF0 RmluYWw= w7xjaw== X3plcm8= IEFCQw== IE1hbmNoZXN0ZXI= IGNvdw== Q09M X05VTUJFUg== Y2hhbmdlcw== Z2VuZXJhdGU= LlByaW50Zg== MzY5 c2hhcmU= U3RvY2s= IFBU QW5pbQ== YW5nYQ== IGln dXBsb2Fkcw== IHBhY2tlZA== IH1dOwo= KHNlbmRlcg== IFdpcmU= aXNvbnM= IHBsYXlvZmY= XEU= NjA4 L1I= IGhlYWRlZA== QWxwaGE= KG9yZGVy IG9wcG9uZW50cw== YWNrc29u X21lbWJlcg== VHVybg== IFNvdmlldA== 7JeQ YXVnZQ== NDQ4 IGluY29taW5n IGphaw== LWdhbWU= IE1hbGU= IE1vbnRo U3RhZ2U= LmV4ZQ== T3duUHJvcGVydHk= LnNldEl0ZW0= IGRj 5L2c IGJydXQ= IGF0dGVtcHRpbmc= Lmxlbg== IGp1ZGdtZW50 IHNhYg== IGNhZA== IEl0ZW1z Y29tZm9ydA== ZWxpemU= L2xvZw== IGVudHJlcHJlbmU= IGNvbXBpbGVy X3ZhbGlkYXRpb24= cmV2aWV3 IHRleHRCb3g= IGZyYWN0aW9u IEJhbA== PjsKCg== LkF1dG9TY2FsZU1vZGU= IGNhdHM= NDY1 IHJlZ2lzdHJ5 dWx1cw== Rkk= cGF5bG9hZA== LXNlYXJjaA== IHN0YXlpbmc= YWNpb3Vz RGVjb3JhdGlvbg== UmV2aWV3 SW5m S2VlcA== aXRpcw== LFN0cmluZw== Q29vcmQ= IHBlcm8= U2V4 IEF0bGFudGE= dWVzdGE= QXJnYg== Pio= fV8= Rm9vdGVy IGVtcGxveWVk X2JvdW5k dmlkZQ== LmZ1bmM= JHNjb3Bl IHNwbw== IEFuYWw= b3VuY2Vk YXJvdW5k IHJlc3RyaWN0aW9u IHNob3Bz 5YA= IExhdGlu LWNvbA== IGJhcmVseQ== IEV1cm8= RXI= IGZhaXJl X2Rpc3RhbmNl X3VubG9jaw== UXVvdGU= SVZBVEU= IOWI IGFpbWVk IFJldHJpZQ== Lml0ZXI= IHdyYXBwZWQ= IGFncmVlbWVudHM= c3RydW1lbnQ= KHByb2R1Y3Q= IHN0dWRpZWQ= LnNldFZhbHVl IHll IENhY2hl TUJPTA== IHF1YXJ0ZXJiYWNr IHN5bnRheA== LmdldEVsZW1lbnRzQnk= LnZlcnNpb24= d2Vic2l0ZQ== UnVubmVy X3NpbmdsZQ== YXRpdg== IEFsdGVybg== IEJlYXV0aWZ1bA== cmlnaHRhcnJvdw== IGRpdmVyc2l0eQ== cGxhc2g= KGNv LkZpbGw= IHR5cGluZw== Mzg3 MDIz IGNsYXI= SGl0 T08= YWNjbw== NTA3 d29ydGg= IHNjcmlwdHM= IE11c2xpbXM= IExM ZXJ2aW5n KGJvb2xlYW4= IGJhc2ViYWxs IENBTg== Mzk0 MDQ0 TUFJTA== ZGVwZW5k IHJlc3BlY3RpdmU= IGNvbnN0ZXhwcg== Lio7Cgo= J10pKQo= IHlhcmQ= IGlkZW50aWNhbA== aWZlY3ljbGU= VVNI dXBpdGVy LnZhbGlkYXRl Y2xp SVNURVI= SW5kaWNhdG9y RmFpbA== IGRlbW9jcmFjeQ== LnZhcg== IHNhdGlzZmllZA== LS0tLS0tLS0tLS0tLQ== ZW5jZXI= aG9y IHJvdW5kcw== REFP b2E= IGZsYXNr PWM= W10K L2Rpc3Q= IHBhcnRl IGNvbmZpcm1hdGlvbg== ZXJvbg== YXdhcmU= PD8+ IGRlcGVuZGVuY2llcw== IFZpZGVvcw== LXJvdw== ICoqLwo= IG5vdQ== IGhvdmVy 5p4= IG5pbg== IFVTRA== TWFj X0xvYWQ= IG91dGNvbWVz X3NvY2tldA== IHF1ZXJpZXM= d20= NTky IGhpdHRpbmc= aW51eA== TWljaA== dWRnZQ== QVRBQg== IHZ1bG5lcmFibGU= 5L4= IHBvcnRmb2xpbw== OllFUw== CW1hcA== Qm91bmQ= IGl0ZXJhdGlvbg== aW5jZXNz IGFjdG9ycw== IFF1YWw= X2NsZWFu 44CR44CQ TVNH R3JlZW4= IE9mZmljZXI= IHNtb2tpbmc= Pics IEZsbw== Kys7 NDMz b2x5Z29u IGJ1bGs= IGRyYW1h IGV4Y2VwdGlvbnM= b3NlZA== ICsNCg== IGxlZ2FjeQ== Q1Y= IGNvbnRyaWJ1dGVk IFRlcm1z IGJ0 NDM0 IHVudHVr IGFsaWVu PT09Cg== CVZlY3Rvcg== IGxz T25saW5l LmZhY2Vib29r bnVtZXJpYw== b2NrZXRz QXV0 YnVyeQ== LXJlZHV4 IFJlZGlzdHJpYnV0aW9ucw== R0xPQkFMUw== dXJyZW5jaWVz IHRvbnM= 4oCZLA== IMOq KGNvbA== IFN5bWJvbA== IHN0YXllZA== IE1M IG11bmljaXA= IHNleG8= U2Vu bnI= IGdhaW5z IHNob3J0bHk= Lk1lbnU= w70= S05PV04= IG9wZXJhdG9ycw== LVY= IFBhdHJpY2s= L2FkZA== X0NP aXJhdGlvbg== KHBvc3Q= UG9zdHM= L18= IHBsdWc= IGludGVsbGVjdHVhbA== IG1ldGFi IHByZWduYW5jeQ== IFByZW1pZXI= bm0= IHByZWRpY3Rpb24= NjA2 IE1pbmlzdHJ5 VGhyZWU= dmFsdWF0ZQ== IE1pbmk= YnU= 0L7Qtw== PHVs IGRk b2x2aW5n IEN1dA== NjAy IHNjaGVt LnRyYWlu aXRhdGU= IHJpY2U= IGJpcmRz 44Gr bWlkZGxl c3RydWN0aW9ucw== IG5lcnY= YXF1ZQ== NDUz IGZsdQ== IHN1cnZpdmFs IEdhbGF4eQ== IEZhbnQ= Lk9yZGVy QXR0cmli aXJ0cw== w6lj TW92aWU= IGNvbmNl cXVhcnRlcnM= IG1vb2Q= LkFkZFJhbmdl OTQy IHJlc29sdmVk 44OI IGJ1cm5pbmc= NzAy CQkJCQ0K IFdF IGhvc3Rpbmc= TEFC IG1hbmFnZXJz IHN0cmVuZ3RoZW4= PGNvbnN0 IEZpcmViYXNl b25lZA== IEplYW4= Jzwv IDo9Cg== YWxnb3JpdGht IEFyYw== IGZyb3plbg== X2V2ZW50cw== IG92ZXJzZQ== Z29vZHM= IGZhaXQ= IHZpYWdyYQ== b3Nlcw== OTIy IGNvbXBpbGVk IEF0aA== IHN1YnN0YW5jZQ== YW5pbWF0ZWQ= UEY= cHJldmlvdXM= IHJvb3Rz KGZpbHRlcg== b2x1bWVz IGludHJv KGV2dA== IEJhZw== IERlZmluaXRpb24= IEZlYXR1cmVz QW5ub3RhdGlvbg== IGF2Zw== KHN1bQ== UVVJUkU= IHJlbmRlcmVy IEZpeA== LmRhdGV0aW1l PWRldmljZQ== U3Bl Z2V0SW5zdGFuY2U= IGV4dGVuc2lvbnM= X25ldA== IFBhcmxpYW1lbnQ= IGNvbWlj NDY4 IFBpY2s= YXJtYQ== CW1vZGVs IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t IG1lbmc= bWFudWFs YWRhcHRlcg== fS0= ZWRiYWNr IGVsZWN0cmljYWw= IENvdW50ZXI= QXBwbGljYXRpb25Db250ZXh0 X2J5dGU= KGJ5dGU= IEF1dG9t IHRlcnJvcmlzdA== 55A= dGhyb3VnaA== IGZpc2NhbA== b25pbmc= NDU1 IHNwZWN0cnVt IGJpdG1hcA== IHNsZQ== cHJvZA== IGFnZWQ= IGJlbmU= IFNwaQ== IGJyaWxsaWFudA== IHN0YWJpbGl0eQ== IGRpYWJldGVz IGNvbmZpZ3VyZWQ= Ym9uZQ== NzQ4 NDg0 b3VzZXM= Lmdvb2dsZWFwaXM= RkFDRQ== IGluc3BpcmF0aW9u IERldHJvaXQ= ZW5jaA== 0YDRgw== dmVoaWNsZQ== U3RhdGlvbg== IGhvbGVz IGR1cmNo Lk1lZGlh IENOTg== aW5uaW5n NjA0 IFBlbm5zeWx2YW5pYQ== IGVtb3Rpb24= U2VjcmV0 w6FyaW8= IFJhdGU= NDUx RGVwdGg= IG1vZGVz NDI2 KGlkeA== IGhlcw== IGdyZXk= U3RhbmRhcmQ= UXVlc3Q= YnV5 c3Vy IFRyYWNr b21t Lmds IChc dHdv X0lP b3NleA== X3JvbGU= 56S6 cm91dGVz U2hvcA== IEFTQw== IG1lbWNweQ== ZGlyZWN0 NDQ2 ICoKCg== IEJN IFBvcg== X2hpc3Rvcnk= IFJlc3BvbnNlRW50aXR5 LnNldEZvbnQ= IGVuZ2FnZW1lbnQ= LGg= IFdvcmRQcmVzcw== ZmVjaGE= IGVudHJhbmNl RGVzcGl0ZQ== SURFTlQ= IHNhbml0 IEdlbmVyYXRl KCIiLA== X3ZpZGVv U3RyYXRlZ3k= X29r IHRpZXM= IGxvZ2ljYWw= IEJyb24= KEZpbGU= IE1vaA== LlNwbGl0 LlRyeQ== IEhpbmQ= IHNjb3Jpbmc= IGFwcHJvYWNoZXM= IGZsb3Vy VlJU ODA0 VVNUT00= NDY3 c2NyaXB0cw== IEVwaXNvZGU= Mzg5 IEFtYg== X09S IGZyYXVlbg== IHVubGlrZQ== IHJpZGluZw== IHBpdA== IHRyYW5zZg== YXJ0ZQ== 4LmJ cmFwZQ== cmV0dmFs X2FmdGVy Ijw8 NzAz IEJlcmxpbg== IHRpc3N1ZQ== LkludGVudA== INC00LvRjw== IHN0dW5uaW5n IEhhbA== LkludGVnZXI= IHdoZXJlYXM= IGRlbGVn IHVzZXJOYW1l IGZvcm1hdHM= IGNvbXBlbnNhdGlvbg== IEh1bQ== YXJyaW5n IHVuc2FmZQ== UGlu Y2x1Yg== a2V5d29yZA== X3RoZW1l IGNhbGxlcg== IGdob3N0 IGVudGl0bGVk IE1hcw== NTYx IGRlbW9uc3RyYXRl IEhvd2FyZA== RHJvcA== I3VuZGVm NDI3 IGludm9rZQ== IEJyaWRnZQ== ZW5kZW4= aWJsaW5n U2xvdA== QVRBQkFTRQ== IHRlbXBlcmF0dXJlcw== c2VyaWVz IFJlbWVtYmVy Q2FsZW5kYXI= QkY= PT8= MDY0 IEFG KGh0dHA= bWFrZXJz ZmluaXR5 cHJlY2F0ZWQ= V0g= b2xpZGF5cw== LXVu aWFsZQ== XFVzZXI= cmVhc29u JywKCg== T1dFUg== IHByZWRpY3Rpb25z cHJvYg== Lm5u ICc7Cg== LkZyb21Bcmdi X0xPTkc= IHRyb3Vi IHVuaXR0ZXN0 ZWxpaG9vZA== CWlz NDQy IGNvbnNlYw== TEVBU0U= IGNsaWNrZWQ= IHRlbXBsYXRlcw== Qlk= cGVybQ== bWF0Y2hlcw== bGF3 KHRm X3JhdGlv aXRlbXB0eQ== IGNyZWF0b3I= Qml0cw== RW5jb2Rlcg== Ki4= IFVJVA== IE1hc2s= Y3VybA== LWdv IE9jYw== Y29ycmVjdA== IEdlcg== KGxheW91dA== dW5jdA== LmRpc3BhdGNo O2FtcA== LmlzUmVxdWlyZWQ= CWRv bWly IHB0aHJlYWQ= LWF1dG8= IEljZQ== IHZpb2xhdGlvbg== IGNvbmNsdWRlZA== IHZhcnM= Y2FudmFz IFRlbXA= IFBoaWxpcHA= iOuLpA== Y3JlYXNl IGZpc2hpbmc= YWJiaXQ= IGNvbmNlbnRyYXRpb24= aXJ0aGRheQ== IGdyb3Nz IGtp IEhhbmRsZXI= IGltbWlncmFudHM= 6IA= VW5k cG4= cmFj NDU0 IENvbnN1bHQ= Zm9sZA== IHN0cnVnZ2xpbmc= aGVhdA== R2VuZXJpYw== IHJpZGlj IENPVklE b21pdGVtcHR5 X09QVElPTg== 6rCA IGNyZWF0dXJlcw== X1BBR0U= ZWk= KGhvc3Q= X0hQUA== NTE2 IFhYWA== IGF3aw== YXNjYWRl IHByZWc= cHJvdmlkZXI= UGFs ZWdlbg== Y2xvbmU= LlJlZ2lzdGVy IGF0dGFjaG1lbnQ= YmVpdA== dGhlbGVzcw== KERhdGU= IEZvcmVzdA== Q0dSZWN0 IGNoaWxkaG9vZA== YW1pbmU= YXhlcw== J109 TmF2aWdhdG9y IHJlcGxpZWQ= X2ludg== LFQ= IEZlYXR1cmU= NDM4 ey0= TEFORw== IGNvbnZleQ== 55So5oi3 IFNlcmlm IEF1cw== bGljaGU= IHVudXNlZA== IG1vbnQ= bm9kZXM= IHNldQ== LmNsYXNzTmFtZQ== bm9ybQ== X1NFUlZFUg== IHdpbmc= aW54 UmF3 IEphbQ== NTkw IGluc2lnaHQ= NDcx NTM1 IE5H IEludGVyZmFjZQ== IHN0bXQ= IG5hbg== Y3VsYXRvcg== LWFwcA== KEJ1bmRsZQ== TWVzc2FnZUJveA== 4K4= IG1lZXRz dWJ5 T3B0aW9uUGFuZQ== aXRhcmlhbg== IGNvbGxhYm9yYXRpb24= bW92aWU= IGFybW9y X2JpdHM= IEhhdmluZw== IG51ZGU= IFNldHRpbmc= IHN1Y2M= RGVsYXk= LmNvbXBvbmVudHM= YWNodXNldA== IEFsZXhhbmRlcg== wqk= IG1ldGVycw== IHByZXBhcmluZw== IGluY2VudA== 5ZM= IGvDtm5uZW4= IENvbnNlcnY= IG51bWVybw== YWNodXNldHRz LWludA== IGVtcGhhcw== bGF5b3V0cw== RXhjZWw= SUJBY3Rpb24= IHJlc2lkZW50aWFs ZWxpbmc= IE5D IEFsbGVu IGNldHRl IG1pbmRz LnJlcXVpcmVk 2LM= IEdpcmxz IH07 IHN0cmluZ1dpdGhGb3JtYXQ= IGFkZHJlc3NlZA== dGhleQ== IEJsb29k cG9zZXI= IGphbQ== yJk= 5pWw5o2u IHN0ZG91dA== IFVURg== Q2xhc3Nlcw== PiI7DQo= IFNhdg== LkJvbGQ= IGVuYWJsZXM= CXRtcA== IG1hbnVhbGx5 IFNxdQ== dXNlcmlk LmZ1bmN0aW9u LmNhY2hl TE9QVA== LlNlcnZpY2Vz NTg4 ZGRpdA== dGlt PGltZw== IFRoaW5ncw== IEV2ZXJ5dGhpbmc= IGFwdA== Mzk3 ZW1hbmQ= IHJvbGxpbmc= 66Y= LmxldmVs IHN0b20= IFdpbnRlcg== IHZpZXdpbmc= KHZhbHVlcw== b2NvbXBsZXRl dmlh dXBv IGFib3J0aW9u NTMy acOocmU= 77yR X0JVVFRPTg== X2RvbWFpbg== IGJyYQ== IEFzdA== aW5hcw== IHN0YXRpc3Q= Y29k TFI= IGRyaXZlcw== IGZvbGxvd2Vycw== IGFsbGllcw== CWN1cnJlbnQ= ZWNlc3Nhcnk= IGRhbWFnZWQ= X3B0 YW5kbGVz b3VudHJpZXM= IHNpbXVsdA== ZXU= IGNvbnRyb3ZlcnNpYWw= X0dST1VQ IHJpYg== LkluZm8= Om1t Lm5vcm1hbA== X0FERFJFU1M= IO2V YWRkbGU= IER1cg== LkVsZW1lbnQ= NjU2 V2FybmluZ3M= IGNyZWRpdHM= IGluaGli IGVtaXNzaW9ucw== NTQ1 IGhheg== LnlvdXR1YmU= dWdnZWQ= IGJvdGhlcg== IEthbnNhcw== IEZpeGVk IFRlc3Rz IEZJWA== NTc2 VW5pZm9ybQ== IGtvbnQ= Pj4+ c3RhdGlvbg== bG9yZQ== YXR5cGU= aXNob3A= LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKio= NTIx Q29tYm9Cb3g= IHZhY2F0aW9u IGluaXRpYXRpdmU= IGRlZmF1bHRWYWx1ZQ== Nzcw Y29uY2F0 IEto NjMy IFdlbGNvbWU= aXplZE5hbWU= TWlncmF0aW9u IGdyYWRpZW50 SG90 IGhhcmRseQ== ZWxv IFN0dWRlbnRz IGxvb3Nl NzMw YXR6 LlNlbmQ= Jy8= IHVuaXZlcnNhbA== IGVudGVycHJpc2U= IHJlZ2V4 IHZpc2l0b3I= IEZseQ== U2Vx 4LiZ IFZpc3VhbA== IGxpYnJhcmllcw== YXRvZXM= UGF5bWVudA== NDQ3 IHBlbnQ= IGdhdGhlcmVk VlJUWA== IERN U3BsaXQ= IGxldHRpbmc= 0J0= X2Vycm9ycw== ZXBvY2g= UEFSQU0= Y3U= 0YHRgtCy b2x1dGlvbnM= RWRpdGluZw== Zm9udHM= IGFsbG9jYXRlZA== IEJhc2Vk KFk= IEp1ZGdl IGJyb3RoZXJz RklMRVM= w6dv NTMx d2I= X1BJ J14= IHN3b3Jk LnNlcnZpY2Vz IG5s VGlt aWdn IE1vb3Jl IGNyeXB0b2M= 5Ye6 X3Bvc3Rz b3RhdGU= Pyc= Li4uLgoK IGts PSIk IGRlY29yYXRpb24= 4bqh IERJUkVDVA== R1VJ KT0+ewo= IG5ld3NsZXR0ZXI= IHByZWNpcw== KHBvaW50 IEVxdWlwbWVudA== dXR5 IERhdmU= IHBhcnRpY2lwYXRpb24= dWFyaW9z eGl0 LkFz RVRFUg== b3JvdXM= IHNoaWVsZA== W10+ aWxpdGFyeQ== Lm9yaWdpbg== IHByb21vdGlvbg== VW50 IGN0 VFJB NTU2 Vmlld0hvbGRlcg== IHNpZ21h ZGVsdGE= YXJlaG91c2U= Y29udHJhY3Q= KFZlY3Rvcg== NzIx IGNvbXBldGU= L2Zvcm0= L2NvbXBvbmVudHM= IG5y IEluZG9uZXM= INC+0YI= IFZvbHVtZQ== LmZpbGVz KHJlc3A= L21vZGVscw== IHN1cmY= c3RhbmRhcmQ= L28= IFhDVEFzc2VydA== VklDRVM= LkNvZGU= U0VE IGFjdGl2YXRl RGVsdGE= IGxpbWl0YXRpb24= cmlq IHByZWduYW50 Ol4o IHNvdXI= cGll ODAz IGV4cGVuc2U= aWNhdGlvbg== IExhcmdl IMKx IEJvd2w= KG1vZGVscw== L04= ODU3 UGE= LnJlbG9hZA== IHdvbmRlcmluZw== NDYy RXhlY3V0aW9u CSAgICAgIA== IEdyYXBoaWNz IENvbnRpbg== X2pvYg== IGdldE5hbWU= IE1hZ24= IERXT1JE bWFk IG5o ZmVhdHVyZXM= fSIpOwo= aGVldHM= KHRyYWlu em4= IHJlY3J1aXQ= LmNvbm5lY3Rpb24= IGJhcnJlbA== IHN0ZWFt X3NldHRpbmc= IGFuZ3VsYXI= YW5lb3VzbHk= IGJpbA== IE5vcm0= NTIy KCEk aWJ0 JSg= IHBvc2l0 IEZhdGhlcg== aW50ZW5kbw== NTY1 TGl2ZQ== MDQx IHBvcnRz IG1lag== IGxhbmRpbmc= cG9uZGVy IGNvZA== X0hFQURFUg== Lk1hcmdpbg== IGJhbGxz IGRpc2N1c3Npb25z IGJsZW5k SGV4 IGZhcm1lcnM= IG1haW50YWluaW5n ICAgDQo= c3lu W1Q= cnVz NDM5 dWZmZXJz IGNvbnRyaWJ1dG9ycw== X3N5cw== LkRlYnVn IGNvbnN0cnVjdGVk b21lcw== P2lk c2xpZGVy IHN1cHBsaWVycw== NjEx c2NyaWJlcg== cGVz 0J4= IjoNCg== XENvbnRyb2xsZXI= KSkKCgo= IGx1YQ== TXVsdGk= RU5T U3Jj IHBldGl0aW9u IHNsYXZl bG9va2luZw== VkVSVA== CXZlY3Rvcg== U3BlY2lhbA== aGg= YW5uZQ== IE5pZ2Vy L3ZpZXdz emluZw== ZW5kYW50 PEM= c3BlZWQ= NTE0 IHt9OwoK QmVnaW5Jbml0 IGZvcGVu QFJlcXVlc3RNYXBwaW5n RW5kSW5pdA== IHB1bmNo U2VuZGVy NjAz 6ZQ= Z2V0TWVzc2FnZQ== L3R5cGVz LlBJ KCcnKTsK b2N1c2Vk KGFsbA== IGRyb3Bkb3du KS5fXw== IFZpbg== LkZvcmVpZ25LZXk= NjEy Y2FuZg== b3VyZWQ= IE9yZ2FuaXphdGlvbg== INCw IEN1bHR1cmU= KGNscw== LF8= OTAy cmdiYQ== 7J2Y LmRhdGFHcmlkVmlldw== IGRvemVu IEdlcw== ODA1 NDY0 X3NoYXJlZA== bmljaw== IGhvc3A= b21ldGVy NDk1 IGNsYWltaW5n MDMy aWJsZXM= cmlr 5piv ZW5hcmlv IGRlbmdhbg== b2Ji bW9udA== X3Jhbms= KCcvJyw= IGFwb2xvZw== UHM= X3Bvd2Vy IEdyZWU= IGZ1bGZpbGw= IGZpcmViYXNl OTEw IGZhcmU= IEhpbQ== IGJlYW4= 4oCmLg== IFNQSQ== X1JY IHBlcmNlcHRpb24= cmVsYXRpdmU= Y29tcGlsZQ== dXVt dXRvcw== YXVj IEFzaw== IGluZGljYXRvcg== L3Ro LnNldFN0cmluZw== IFdpc2NvbnNpbg== LkRvbWFpbg== IGFydGlmaWNpYWw= RGV2ZWxvcA== IFNhcmFo IGx5aW5n KHNlYXJjaA== IEVtcGlyZQ== dXJyaW5n 5pe26Ze0 PSIkew== IGdldElk IFBheW1lbnQ= dHJhbnNpdGlvbg== IF0u aXhpbg== VlQ= LXNlbGVjdA== IGRlbW9uc3RyYXRlZA== IGxhc3ROYW1l ZW1wbG95bWVudA== LmdldFByb3BlcnR5 IGZvdWdodA== ZmlsZU5hbWU= IFBlcnM= NDUy LWNhcmQ= YXN0cg== YXR0cnM= IHByb21pbmVudA== RGVzaWdu YW5jb3V2ZXI= 44GX44E= YXJkbw== c2VjcmV0 IHJhZw== IHBvaXNvbg== LW1hbg== LG9taXRlbXB0eQ== NzQw CXVu aXR6ZXI= IENhc2lubw== IFJvc3M= LWZvb3Q= KHJlc3VsdHM= UGxhbg== IGxhc2Vy 6riw X0RS NTIz RmFjZWJvb2s= NDQ5 IGJvYXJkcw== c3Rh XV0s Njc1 IHRpbGVz U0laRQ== ID1+ OTcw IHByZW1pZXI= b2NhYg== IGVuY29kZWQ= IHJlc2VydmU= NjA5 IEFmZ2hhbmlzdGFu IExpc3ROb2Rl dXJscw== IHN1Ym1pc3Npb24= IG5ldQ== NDc3 ICMrIw== X1BPU1Q= IG1vaXN0 ZWxsaQ== ZWxsaWdlbnQ= LmFsZXJ0 w7Nk YnJl IENvbGxlY3Q= IGdyYXBoaWM= IGxvbmdpdHVkZQ== IFByb3ZpZA== IENhbGN1bGF0ZQ== eGZmZmY= Y3JpdGVyaWE= IHdhdGVycw== cm9jaw== bG9xdWVudA== IFRyaWI= NTEz IGJ1cnN0 IHN1ZmZpeA== LkV4dGVuc2lvbnM= aXNoZXM= aXZlbA== IExJS0U= IEdldHR5 LkFjdGlvbkV2ZW50 LnNsZg== IEhBTA== dXBhbA== RUFS NTI0 dWRp X3RpbWVvdXQ= VUY= IFNpbmdhcG9yZQ== IEFkdmVudA== X2ludGVydmFs Y2hhZnQ= IEVtZXI= IHRlbGVwaG9uZQ== IFR1cms= X2ludGVyZmFjZQ== IE93bg== IGVuY291cmFnZWQ= PE9iamVjdA== X1RleHQ= IE9udGFyaW8= IEFwcGx5 LmZpcmViYXNl IGFudGli UHJpb3JpdHk= ZW5leg== RGF5cw== Y2lk dXJyZW5jZQ== Oy8= aW5uZWQ= 0YHRjw== IHZleg== Znc= Ly8k YXR0YWNr NDU4 IHN0YXJ0dXA= YWluZXJz LmZyYWdtZW50 b3BhY2l0eQ== KGNvbm4= aGVpbQ== Lm5ldHdvcms= KHN0cmVhbQ== Njcw IE5PTg== dG9s ODMw IFhib3g= IERT IGNhY2hlZA== IHByb3N0aXR1dGFz IEJhbHQ= KCdb NTc1 IG5vZXhjZXB0 Iic= IHNk LnZhbGlk X2Fn IHJhY2Vz NDgx IHJvZA== aXR1ZGVz PD4o NTQ0 LlByb2R1Y3Q= Rm9ybXM= TkVX UGF5 CWJvb2xlYW4= X2NvbnRhY3Q= IEVsZWN0cmlj c2tpcA== IHd1cg== IGNocm9uaWM= X2RyaXZlcg== OTQw IFNhYg== IFVsdA== IFJhZA== U1RBVFVT IExld2lz T0I= IGdpZnRz LlJlYw== VFJVRQ== IGludGVuc2l0eQ== TWFya2Vy LmNvbXBhcmU= ZmZpYw== Q29va2ll IEJhYnk= IEJpZ0RlY2ltYWw= aWxldA== IEhPTERFUlM= IExhZHk= IGx1bmc= IEFsYWJhbWE= IGRlc3M= YCk7Cg== IEJ1aWxkZXI= X3JlZ2lvbg== IG5ldXRyYWw= OTA5 Qm90aA== IGhw IGhvcm4= IHNlZ21lbnRz IEVD Ij0+Ig== KHJlYw== IFBp R00= IGxhcHRvcA== U2NhbGFy NDYz aXNk LWRpYWxvZw== IEFuZGVyc29u IG1pc3Rha2Vz NzA4 IEhhbg== amVz ZXN0aW5hdGlvbg== NDM2 IHByb21pc2Vz Ymlk IFNjaWVudA== R0lO IFBlcmZvcm1hbmNl YmFnZQ== LnVzZXJz bGVhZGluZw== IG9yYWw= R3JhcGhpY3M= NDg4 X1BUUg== NTE4 aGFuZw== IGluZXY= cHJvY2Vzc2luZw== RmFjdG9y IE5B JHN0cmluZw== IGdyb3VuZHM= LlNhdmVDaGFuZ2Vz Y2xvY2s= OTQx Y3JpcGNpb24= IE5ld3Rvbg== Z2M= LmluY2x1ZGVz IGJsYXN0 ICctJw== IHB1ZWRl NDY5 LlNlc3Npb24= IGdyZXA= X2ZpbmFs IEdheQ== IEdpdmU= aXJp LXN0YXI= IFVJSW1hZ2U= X2Vwb2No dWJi ZW50aA== IGVsaXRl IGNhbXBhaWducw== IFBvcm5v X2Fzc2lnbg== UHJvdG9jb2w= IEJlaW5n IEFpcnBvcnQ= IGNvbnZlbnRpb25hbA== IFdhdA== IENJ RVRB IEFudGhvbnk= IHRhYmxldA== KGZvcm1hdA== IGNvbnNpc3RlbnRseQ== IElvd2E= NDc0 IGF2YXRhcg== MDI3 LmN1cnNvcg== IVs= IGhhbmdpbmc= SGVy U3VjaA== JzsKCgo= b3JnZW91cw== KCk9PQ== IHZpZXdNb2RlbA== IOOD IGVscw== IEFnZW50 RmV0Y2g= YXBvcg== IGN4 cHJlYWQ= IFBpZXI= b2VmZg== NjE2 U24= ODkw IFZpcnR1YWw= QXBy LldoaXRl NjE1 X01PRA== IFBvaW50cw== 5aSx IGdlbmVz IHZlbmRvcg== IG1haW5zdHJlYW0= PHNyYw== IEVsaXphYmV0aA== RGVjb2Rlcg== LXN0YXRl IEdsYXNz bmN5 YWRpYW5z X21vbg== IFJlbW90ZQ== IHdpcmVsZXNz IE1p 5Yk= NDY2 6KGo c3RhZ2U= IFRpbGU= bGxpYg== VmFyaWFudA== PT0K IGdvbGRlbg== KFFTdHJpbmc= LnB1dEV4dHJh IERvbQ== IEFuaW1hdGlvbg== IGludGVyYWN0aXZl aWZhY3Q= 6Zmk TEVU IGZyZXF1ZW50 IDw+Cg== RmlsZW5hbWU= IHNuZQ== IEZvb3RiYWxs IHJpdmFs IGRpc2FzdGVy aW9uaWM= IERhbWFnZQ== LlJlc291cmNl LWVu IFR5cGVz Z2V0U3RyaW5n KGJvYXJk IGJvbA== cGxhaW4= enlt 4Liy IHNjYW5uZXI= aWxkZXI= X21zZ3M= 5o8= KGludGVudA== IGRlc3RydWN0 IGJ1c3Q= IEVtcGxveQ== b25p IFVJVmlld0NvbnRyb2xsZXI= IG9kZHM= ZWFyZXI= R2VvbWV0cnk= IHlpaQ== X0VYUE9SVA== IEF0dGFjaw== IG5pZXQ= IGltcHJlc3Npb24= IEdpbA== X3Byb2I= NTI4 IENG IEV4cGVyaWVuY2U= L3BsdWdpbnM= Lk1ldGhvZA== IGJlbGllZnM= TmF0aXZl X2J1aWxk IHZpZw== IHJhbmtz Y292ZXJlZA== NzA1 c3VjaA== R3VhcmQ= LnBhY2s= YWRkZXI= ODA5 aXZpYQ== bG5n INCy0Ys= NTUy VGltZXN0YW1w X25vdw== IHBva2Vy IHVuYw== IHNoYXBlcw== LXR5cGVz X3BlcmlvZA== cGs= IHZldGVyYW4= IHNvbm8= IGFwcG9pbnRlZA== b3ZlcmZsb3c= LmRyaXZlcg== X2NhdA== dXR0 cGxhbnQ= aW1i IEFjY2VwdA== IGNvbmNlcnQ= CW5vZGU= CXo= Pz4NCg== IGJhbm5lZA== CSAgICAgICAgICAgICAgIA== IHRveGlj IGRpc2FwcGU= NDcz yJs= IGdyYWNl YXRlZnVs UmVwbHk= IENydXo= NDg2 IHNjcmFw IGtleXdvcmRz c2ltcA== IG1vcnRnYWdl IGN5YmVy IEV4ZWN1dGU= IGxhdGl0dWRl aWZ1 LkNPTQ== ZGJv IHNvcnRz IEdhcw== b21pYWw= LkxvY2Fs Q2VsbHM= LlJlcGxhY2U= U3RyaW5ncw== LmZpdA== IFRoaXJk JSIsCg== IHt9Ii4= IFNvbnk= IFs6 NTg1 IGZhbGxlbg== LicpCg== aW5o IE1D IHJlZGlz Q29kZXM= IHByb2ZpbGVz aG9vaw== UmVkdWNlcg== X0ZVTkM= IG5hdmlnYXRl c3RybGVu IGhvcm0= 4Z4= IFNS LmJvb3Q= IGRpZ2VzdA== CWhlYWRlcg== LmZpbmRPbmU= 5oE= RGJUeXBl bmlh X21lcmdl IGRvbm5l L0dldHR5 X0NIQVI= IGJhbmRz LlVSTA== YXJ0aWFs IGZyZXE= IHNpc3Q= Tmc= IHJlbmRlcmluZw== XENvcmU= V2lkZ2V0cw== IFZB IGFjdGl2aXN0cw== U3Rl PV8= YWxsYQ== U3RhbXA= IGxvYWRz IHh4 IExlYXJuaW5n Lk12Yw== dWly KCIk IGNvbm5lY3Rpbmc= UmVhZE9ubHk= dXJ1 IEVhZw== QklU X0RFTA== 5ac= YXJyYXNz ZXh0ZXJuYWw= IFlPVVI= IEJyZXc= IEZpdmU= IHJlc2l6ZQ== aWdpZA== ZXJhdGlvbg== NjUz INGN NTM2 5Yqg MDM5 IENhdGNo 2YE= IExlb24= YW1pbA== LkJvZHk= Q2xpcA== L2xpc3Q= LmJy RWRpdFRleHQ= CWRi LkdhbWU= KEJ1aWxkQ29udGV4dA== YmFja2VuZA== LlJlZA== ZmFjZWJvb2s= NTI5 LnVybHM= bXI= cm9sbGVk LS0tLS0tLQ== IGludGVydmVudGlvbg== IHJldGlyZW1lbnQ= IEtpdA== IFBSRQ== VXBwZXJDYXNl IFNvY2tldA== IDot IHN0dWR5aW5n IE1ldHJv YXJkZWQ= IGNvbnZlcnNhdGlvbnM= Q2FsbGVk IGV4YW1pbmU= ZXJ0aWZpY2F0ZQ== Lmd6 LXJlc3BvbnNpdmU= IHJlZnVuZA== X25ldHdvcms= MDI2 YWxsb3dlZA== ZW1wdA== IG1lYWxz Q2F0ZWdvcmllcw== IHRyYXZlbGluZw== IGtn IHNoYW1l ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA= IGV4cGxpY2l0bHk= IG1hdGhlbWF0aWM= IFN1aXRl IFJHQg== KioqKioqLw== IG1peHR1cmU= bGVhcm5pbmc= LnRlbXBsYXRl YXR0cw== d3g= CWN0eA== LnByb3BlcnRpZXM= IGRyaW5rcw== IEVpdGhlcg== c2V0VGV4dA== LmdldERhdGE= LnppcA== IHJldmVhbHM= PHRhYmxl Lkhhc2hNYXA= IEh1cg== KSIpOwo= LmZyYW1ld29yaw== IFNUQVJU ZmVlZGJhY2s= NDU3 IHNhZmVseQ== Lmljb24= Y29uZmlndXJl LmxvY2s= LmxheWVycw== Lz4uCg== IHJhbmtlZA== X2ltcGw= IEhhbmRsZXM= IGhvc3RlZA== IHVwZGF0aW5n YWxidW0= 6Z0= IHNoYWRlcg== RWRpdG9ycw== LXJvdW5k W117 IHNlcA== IEhp VEVN bG9va3Vw Lm1hbg== X0lOUFVU IHRocmVhdGVuZWQ= X0lNUE9SVA== IGRyb3Bz cnVpdA== c2lk Ym90aA== IEV4Y2Vs IGplcg== b3JkaW5hcnk= 0LXQuQ== VklFVw== cmVwbHk= ICk6Cg== Y29sb3Jz dmVyaWZpZWQ= X1Ry X3BhcnNl IGNvbmdyZXNz NjE3 UHJvbWlzZQ== aW50cw== IE1vdGhlcg== LkFwaQ== IER1cmF0aW9u IGZpcnN0TmFtZQ== aW5oZXJpdGRvYw== IE1hcnM= IGFwcg== T0RZ IHZpc2l0cw== NjMx IGhlYWxpbmc= bGV0dGVycw== KSkpOw0K ZnV0dXJl LkZyYW1ld29yaw== IGtpc3M= IGludm9sdmU= IHNpbGVudA== YWRvd3M= IGFueWJvZHk= c2No Njkw IHNvbGVseQ== LWltZw== IHByb3ByaQ== IGluc3RydWN0 IGxpY2Vuc2Vz IG1ldGg= IGNvbmRlbQ== IERvbWFpbg== IEhhcnJpcw== IHPDpQ== Q0VQVA== QmF0Y2g= QGV4dGVuZHM= IENPTlRSSUJVVA== LkRhdGFGcmFtZQ== NDcy X3BhY2tldA== cmVjaXNpb24= IGZvY3VzaW5n Lmh0 X18iOgo= OkdldA== IEtD IHBhc3NhZ2U= U2VnbWVudA== X2NlbnRlcg== LXpB X0JM IGNvbnZpbg== IGNsYXNzaWZpZWQ= IE5TTXV0YWJsZQ== X2Fw dGlsZQ== UmVjdGFuZ2xl NDky KG51bXM= dmVucw== IFVJQnV0dG9u IEZlZGVy YW1v IG91dGxpbmU= IFBhcnNlcg== IOKJ IFdvcmtz LlNjaGVtYQ== IGVuZ2luZXM= NjM3 NTYz X2NvbW1vbg== NTQy X29sZA== IHNldENvbnRlbnRWaWV3 IC8vLzw= IEJU Zm0= IGRpdmVycw== X3dlaWdodHM= ZW1hcms= IEFDVA== IHByb3BvcnRpb24= b3ZlcmxheQ== LmRpcm5hbWU= IEdpdA== X1JFRkVSRU5DRQ== PD4= bGI= X3J1bGU= 6LSl IFB1dGlu IHNsZWVwaW5n KCk6DQo= IHByZXNlcnZl IHBhcmxpYW1lbnQ= IExvb2tpbmc= IHBpY2tpbmc= IERpc3BhdGNo IHNsaXA= 65M= IEx5bg== X3NpZ25hbA== Y29uZmlndXJhdGlvbg== IFBpdHQ= NDkx YWRlbg== cHJvY2VkdXJl IGVudGh1c2k= ZmlnaHQ= IENvbnNpZGVy IHRvcm4= Q29ubmVjdGVk LmNvcw== X2dyb3Vwcw== IFRoaW5r IGRlbGliZXI= IHJlc2lk d29ya2luZw== LmNvbHVtbnM= IENhbGxlZA== IGVzbGludA== PiIs X0RPV04= aGlzdA== IEFkdmFuY2Vk IHJld2FyZHM= YWN0b3Jz IHNpbGVuY2U= NDc5 IG15dGg= IG5ldXI= NTE5 IGF1Y3Rpb24= LkdldFN0cmluZw== ZWtz KHByb2plY3Q= NTk4 CW1zZw== CW91dHB1dA== IGNvbXBsYWludHM= NTUx LFM= IHRibA== ICwKCg== cmlvcnM= YWhyZW4= IGxhd3llcnM= cmVkdXg= X3N5bWJvbA== b2ZmZWU= X1JFU1VMVA== KE5hbWU= VVRD LmN1cnJlbnRUaW1l IG9yZ2FuaXM= LmFyZw== NTMz IG1pbmlt d2ljaw== IHJlY2VpdmVz QmFsYW5jZQ== IHNwZWFrcw== IERheXM= IEJlbG93 NDgz dGlwbw== UHJlc2VudA== IHJlc2Vydg== aHA= IHJpdA== X1JJR0hU LS0p IGNoYWlybWFu Nzgx RElT IEJPT1NU IGV4cGVyaW1lbnRz Njg3 X18pOwo= IHN0YW1w IGZlcnQ= IGZvbmQ= VGVy ZWx2ZQ== dXJlbg== K2k= ZW5kZW5jeQ== IHZpcnR1YWxseQ== Li4uIg== 772e OTI1 LWNlbnQ= X3VuaXF1ZQ== IHByaWNpbmc= bWlj UkVTSA== IDo6Og== IGFubm90YXRpb24= IENpcmNsZQ== b25nb2Ri aXRhcw== ICUo KGNvbXBvbmVudA== INC+0LE= KHBvcnQ= LWhvdXI= Lm9iag== TEJM IGp1cnk= R0JU IHNweQ== IFByb2Zlc3Npb25hbA== ICIiOwoK IHN0cmlraW5n IGRpc2NyaW1pbmF0aW9u IHBheXM= OTM3 bGljdA== ZW50ZXM= IHRocm93aW5n IFBsdWdpbg== KGRlZg== IFJ1bnRpbWVFeGNlcHRpb24= IE1pZ3JhdGlvbg== NTk5 IGRpYw== YmFn b25pYQ== IGNvcnJ1cHRpb24= NzA0 KE1hcA== IHByeg== LmR0bw== IGFjcXVpcmU= U3RhdGVUb1Byb3Bz IGxvdmluZw== 0L7Qtg== X3BhdHRlcm4= IGVtb3Rpb25z IHB1Ymxpc2hlcg== X2Jl IGNvdXBsZXM= NDk4 b2o= IENoYXJ0 IHRyb3A= LnRvb2w= IGVzdGFibGlzaG1lbnQ= IGRvbA== NjU0 IHRvd2Vy IGxhbmU= IFN5ZG5leQ== IGZpbGxpbmc= Y2xhaW1lZA== NjQ0 IGRpYWxvZ3Vl IGNvbnZlbnRpb24= Ym9va2luZw== cGFyZW5jeQ== 5rE= IEdlbmVyaWM= NzE4 XFNjaGVtYQ== NDgy NjE4 IHJhbmdlcw== L2No IHBhbmVscw== IHJ1bGVk 55Sf LnRz X3NldHM= IGNsZWFudXA= UHJldmlvdXM= IEFuaW1hbA== NjA3 KCQo IEF2ZQ== b2xsYXI= MDI4 X2V2YWw= CU5hbWU= KHRyZWU= ICJd NTcx IGR1dGllcw== PScv Q2xpY2tlZA== IGRpZmZlcmVudGx5 IENsYXJr IGRpdA== b2xvZ2lzdHM= IHN5bmQ= IHNlbmRz LWtub3du a2I= IE1vZGFs aXRhdGl2ZQ== IHJhY2luZw== IGhpZ2hsaWdodHM= IFNpbW9u IENhcHRhaW4= 5L+h IENC Y29udGlu YXJhbg== IHBoeXNpY3M= cmV0dHk= ZXRhbA== Lm1k YXhpb3M= IHNwZWFrZXJz IHByZXA= IGF3YXJkZWQ= 7KeA IENvcm4= IE5hdHVyZQ== VURJTw== NzM3 IHByb2o= LXByZQ== W3U= RmVhdHVyZXM= IGlzRXF1YWw= QmluYXJ5 c2ln IGNvbmZ1c2lvbg== NTQ2 NTY4 IEhhdA== IGt0w7M= LmNvbmZpZ3VyZQ== TU9O NDk0 L2VkaXQ= X0FkZA== LHRydWU= NTQx IGNsaQ== RXJyb3JNZXNzYWdl LWxvYWRlcg== RGltZW5zaW9ucw== dWx0aXBseQ== IHshIQ== IFNxbENvbW1hbmQ= IHNwb2tlbg== IHBpY3M= IHRveQ== KEtleQ== IExvb3A= 2Kg= RUFUVVJF aW5jdGlvbg== X3NldHVw d3JhcHBlcg== IHRvbmc= Y3VsYXI= T3B0 LlBs PSIs KGxlbmd0aA== dW1u IGNocm9t IHNldmVudA== IElsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbg== NDc4 CXN0YXJ0 IGJlZ3Vu Q0VQVElPTg== ZGF0YXNldA== ODI1 IEZhaWxlZA== Y29scw== NDU5 IGtuZWU= aW1vcmU= LnNwbGljZQ== c2hlbGw= aWdnZXJz IHRoZW1lcw== OTk1 IERK IEFzc2lzdGFudA== LSQ= TWF5YmU= IG9yZGVyaW5n IEludGVsbGlnZW5jZQ== IE1hc3NhY2h1c2V0dHM= IGZhaWxpbmc= ZWxzb24= R3JlYXQ= PWk= LnJlc3Q= IGludml0ZQ== LWRpc2FibGU= Lkdyb3VwQm94 4oCZZXN0 IHRhY2tsZQ== Z3Y= ZXR0ZXI= ICksDQo= X3J1bGVz Lndhcm4= ZnVuY3Rpb25z IENocmlzdGlhbnM= IGJhY2tlZA== IHNsaWRlcg== IGVuam95aW5n bmVzdA== IGhpag== X21z Ly8q QW5ub3RhdGlvbnM= IFZhcmlhYmxlcw== PFY= KHNlcnZlcg== IE9yYWNsZQ== ZWxlbWVudHM= IG9yZ2FuaXNhdGlvbg== X3BvaW50ZXI= IEhlYWRlcnM= W2Q= IGRlYWRsaW5l aXNzYQ== IGtuaWZl IE5BU0E= IEhlaWdodA== Nzg0 IEFzeW5j IHZlbnVl LmRvbQ== Ym91cm5l IEhhd2Fp IG1lbW8= aWN0aW9ucw== IHN1cnZlaWxsYW5jZQ== b21p L2Fzc2V0cw== NTg3 IGVkdQ== xJs= IHJvc3Rlcg== IGhpcmVk IFRvaw== IHBsYWNlbWVudA== dXJhdGlvbnM= IHNldFN0YXRl IE1hZ2F6aW5l IGhvcnJvcg== VHJ5 IGxhZw== IEV2ZXJ5b25l dGh1cg== KSk7DQoNCg== LnJldHVybg== IHN5bXA= 4paI4paI IG5pZ2h0cw== d29ya2Vy IGFsZQ== ZW5uZXNzZWU= LnN0ZXA= IHN5bmNocm9uaXplZA== NDg3 b3VyaQ== RG9lcw== LmNoYW5nZQ== Zm9u LnNldEJhY2tncm91bmQ= aXJjdWxhcg== NDc2 Ky0= IENJQQ== NzI5 IEphbmU= IFNpbWlsYXI= LUk= bGV2ZWxhbmQ= IHByb3NwZWN0 X2ZvdW5k CWNvbG9y LkRpYWdub3N0aWNz IGFubm91bmNl IGFzc3VtZXM= L3Ry IGJk OTg3 IENhcmJvbg== IGFuYWx5cw== NTY0 LmRlc3Q= bmlr IExpZQ== LWluZGV4 RHJhd2FibGU= IFRBRw== IHRyaWFuZ2xl X0ZMT0FU CQkgICAgIA== LmJsYWNr dnVl Y3VyYWN5 IGFmZmVjdHM= OTA2 IHN1cmVseQ== U2xpZGVy dWtp Y2VyeQ== IHVudGVy LnByb2ZpbGU= b3Jkb24= ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA= bGVhdmU= IHNtYXJ0cGhvbmU= Z2ll IGNvbnNwaXI= IHR1dG9yaWFs 57G7 IGNhYg== NzY1 IFN1bW1hcnk= KgoK w6Ro IlRoaXM= IHNsaWRlcw== Ijwv LmRldg== Jzw= IFJpbmc= xYJh IGtvdGxpbg== LmR1bXBz IGJhc3M= 7Is= UE9JTlQ= IHV0dGVy IMOpcw== LmZ1bGw= T0xM IGNlcmVtb255 c2xvdA== IGFpbXM= dG9vbHRpcA== LnNjb3Jl LWRk NjQy IHByb3g= UmVjb2duaXplcg== ZHluYW1pYw== w6RuZA== L3N0ZA== RFU= IE5vdEltcGxlbWVudGVk KCItLQ== UkFX NjM1 IGV0aG5pYw== YW5ubw== IGNoYW1waW9uc2hpcA== LHNlbGY= IGFjY2VwdGFibGU= IFNwcml0ZQ== W3R5cGU= w7xo IFZL KGpQYW5lbA== NTQ4 aXRy 66A= YXVyYQ== IGZhY3VsdHk= YXZlcnM= IFJlY29yZHM= LlNlY3VyaXR5 IGNvbnN0cmFpbnQ= LkJs VWludA== YmFsYW5jZQ== IGNvbW1l IE5paw== U3VwcHJlc3NXYXJuaW5ncw== IE9jZWFu NTU0 X0lk RGF0YVNldA== IGluc2VydGVk IjsNCg0K 4oCz aXBwZXQ= IGFubml2ZXJzYXJ5 IHJldGlyZWQ= b3JjaA== IHBlcnBldA== XEZvcm0= IGludm9sdmVtZW50 X3VzZXJuYW1l YWxlbQ== X1NFUlZJQ0U= IEluZGlhbmE= IGNpZ2FyZXQ= YXJ0eg== IFJD IG1lYXN1cmVtZW50cw== 572u IGFmZmlsaWF0ZQ== YWNpb25hbA== LXNlY3Rpb24= X2NvbnRyb2xsZXI= dmFyZA== X2Vs IFRveQ== PFA= TWFjaGluZQ== w7ptZXI= IFllYWg= IllvdQ== IG1vbA== LkNs Y29udHJvbGxlcnM= IHN1c3BlbmRlZA== Kys7Cgo= QVRU IHByb2plY3Rpb24= UGFkZGluZw== NTg2 Lm1hdGg= Njg2 ZmFjdG9yeQ== MDQy IGdhbW1h KCk+ Y3ljbGU= IEJ1bGw= cGF0aHM= IHVucA== IHZpZXdEaWRMb2Fk X01vZGVs IGFzc2VydFRydWU= IHJhdGVk RGVjbA== dmVydGVk IERhdA== YnJldw== IHBvaW50aW5n TXM= IFBvaW50ZXI= KSc= X25vbg== NTI3 IFNFQw== IHllYWg= Z2VuY3k= aW5pdGlhbGl6ZQ== Zmx5 NzEx W3Bvcw== LGc= VGVsZQ== MDM0 IGpva2U= IGNsYXVzZQ== LmZpbmRCeUlk ZW5lcw== KGluc3RhbmNl NjI2 wqM= OTE1 IHNsaWM= X2hvbWU= ICovfQo= X3BhZ2Vz KHNlcnZpY2U= OTA1 UlA= IEFtb25n LmdldEN1cnJlbnQ= ODA2 44K5 IHNsZWU= PTw/ X3Byb3A= Zmx1c2g= IE1N QmVs Tm90ZXM= ICovCgoK MDM1 IHJo VGFibGVz IEp1 IFwNCg== bGljaGVu IEluc3VyYW5jZQ== XQoKCg== IGNvb3Blcg== 4oCUdGhl Lm1hdA== NDg5 IGZvaQ== KGF1dG8= TWFyZ2lu NjM2 IHJlc2lkZW5jZQ== NTU5 IEhpc3Rvcg== IH49 RGk= ICcpCg== IGV4Y2x1ZGU= LkRyb3A= JyI7Cg== IGNvYw== X3VwbG9hZA== SGlkZQ== IFVua25vd24= IG5vcm1hbGl6ZQ== X3JldA== LicKCg== Lm5vZGVz ODcw LkRhdGFTb3VyY2U= YmxlbXM= IGdlbnRsZQ== OiQ= JykpOwoK LlJlc291cmNlcw== 4og= IFRhaQ== VkVE IEd1bg== bGVhbnM= IERvYw== LlZvaWQ= IEFtZW5kbWVudA== ODY2 ZXNzZWQ= NzA2 IHJlY2lwaWVudA== Lk5vZGU= b3Zv IGFsaWduSXRlbXM= IFVuaXR5 IFJvbWU= YnVybg== IHZvbHRhZ2U= IFNIQQ== NTM0 NTcy IEdPT0Q= aGVscGVycw== LyoqKi8= IGVsaW1pbmF0ZQ== d2Fw X2FuZ2xl IHJlZnVnZWVz CWFzc2VydEVxdWFscw== IHByb2Jl KCcuLi8uLi8= eW91cg== IG1lcmNo VUJMRQ== CXJlc3BvbnNl X0RFRg== IGVudmlyb25tZW50cw== b3VzaW5n IHJlc3RyaWN0ZWQ= IENPTlRSSUJVVE9SUw== NjIx IGNvbXBhbmlvbg== 4bqj cG93 dXJ0bGU= Ymll LlBlcmZvcm0= PW4= cmVkaXM= IGRpdmlkZQ== IGNvbGxlY3RpdmU= RGlmZg== RHluYW1pYw== aXNTZWxlY3RlZA== YXN0eXBl IExvdA== IFN0YXRlbWVudA== aWNpcGFudA== YWto NTE3 IHNlcmlhbGl6ZXI= X0NGRw== YXZhbA== IHZpZXdlcnM= IEZP T2Nj IHJvYnVzdA== IE1pdA== X0FORA== VHJhbnNpdGlvbg== dW5hdGU= IHByaWRl IGRyYW1hdGlj IFBhZ2Vz X3R1cGxl IGNvcGllZA== bW4= IG91Z2h0 IGVxdWFsaXR5 X2hhcw== X1dS NTcz ZW1p IHN1cmdl aWxsbw== KCl9 MDgx IHBlcmY= OTIx dWxr IGludmVzdG1lbnRz Nzg1 IGdlbmVyYXRpb25z IHJlc29ydA== IHRydXN0ZWQ= X2ZyZXE= IGZvcm1h QVRJT05T IEh1 IEdyYWQ= X2NwdQ== ICIsCg== cmVzc2U= KCoq IGhlcmVieQ== IGxha2U= X1NUQUNL IEJ1cmVhdQ== IHN1c3RhaW5hYmxl IFBF IGRlaQ== IEFuc3dlcg== UGx1cw== L3dlYg== IHN0ZXI= IG1vdW50ZWQ= X2NsZWFy Zm9ubw== aWFuY2Vz X2ZpbmQ= IGNvbmZ1c2Vk X2Jpbg== REVDTA== IGluc3RhbnRseQ== VUlU X0RP U2V0dXA= a2Vl X3ByaW50Zg== X3N0bXQ= IFN0ZWFt cHJvZg== bHY= IHNvbHZpbmc= bGF0b3I= b3R5cGVz QW5kcm9pZA== X2VzY2FwZQ== TGVhdmU= LmdldFRpbWU= ODEx aWZz IGNvdg== IENsYXNzaWM= LWRhcms= NTI2 RGlzcGF0Y2hlcg== LWdyYXk= IFBhbGVzdGluaWFu LmRlZXA= IEluamVjdA== IHJlZmxlY3Rpb24= NTM4 IGh5cG8= Y29uc3RydWN0b3I= LmFwcGxpY2F0aW9u eXN0ZXI= 4pU= c2Nob29s IENvdw== NTkz IGZvb3RhZ2U= LWlucw== IC8qKjw= YXRvbQ== IHByb2ZpdHM= OTIz IGJvb2tpbmc= X3RocmVzaG9sZA== IExpdmVy IGNpdGl6ZW4= Yng= IFN0b3Jt IENvcnA= IHdpZGVy Iikpewo= X0FDVElPTg== aW9ycw== YWlzZXM= Om5vbmU= IGNpdGVk ImZtdA== QXVn Y29tYg== IHdoaXRlcw== IHNlc3M= Xl4= aWdodGg= IHRhbmc= X0NBUA== NjE0 IGludGVyYWN0aW9ucw== NDk3 IGdhcmQ= NjQ2 IHByaXpl NjQ3 YWZrYQ== VHJp XEVsb3F1ZW50 IER5bmFtaWM= 55CG Z3A= IHJlYWxt IE5p IEVkd2FyZA== IGlkZW50aWZpY2F0aW9u IHBoeXNpY2FsbHk= 5pys IHBpY2tz LWZyaWVuZGx5 PGk= aWZpY2U= X0FQ TG9nZ2Vk NTUz fSIu L3V0aWxz IC4uLi4= RU5USUFM KEFjdGlvbg== J10pOwoK IHByb3Rlc3Rz b2xpbmU= X1JFVFVSTg== IHBvcHVsYXRpb25z IFJhaW4= ZHVw b3JpYWw= IEF1dGhvcml0eQ== X2V4cHI= MDc1 LnVz IGNvcnJ1cHQ= CWltcG9ydA== PGNoYXI= IExFRlQ= IGNhYmluZXQ= IG5laWdoYm91cg== IFNxbFBhcmFtZXRlcg== YXR0ZXJlZA== ZW1pYQ== IHJldmlld2Vk IEhlbGxv YmxvY2tz KHByb2Nlc3M= OTk3 IG9ic2VydmF0aW9u cmF0aW5n Lmdsb2JhbA== IHByZWZlcmVuY2U= LnByZXBhcmU= IGRvemVucw== V29ya2Vy IGNhbGN1bGF0aW9u IFRvd2Vy YWlyeQ== IElTTw== IGh1bWFuaXR5 LmFzSW5zdGFuY2VPZg== NzEy IGR5cw== IHBpZXI= aWd1ZQ== IGFzc29jaWF0ZQ== IGludGlt bm90aWZ5 KHt9LA== ODI4 IFJlcHJlc2VudA== cGhldA== c2V1ZG8= 64uI64uk LlBvc2l0aW9u IGNsb3N1cmU= KGNsYXNz CXRpbWU= IE9yYW5nZQ== X29wcw== IHBvcHVw IEltcHJv X3NlY3JldA== IEV1 LnNldExheW91dA== dWxseQ== IHNjcmV3 IFNpemVk IENPTVA= IG5vdGlmaWNhdGlvbnM= VHJhbnNmZXI= RW1pdHRlcg== KG9sZA== bGV0aWM= NDkz IC0KCg== IHBhbmlj NzE1 IExDRA== cnVsZXM= IGFmZmFpcnM= IEZpbGw= X0lSUQ== OTEy YXR0YWNobWVudA== IHZvbQ== PGJ1dHRvbg== NTk1 IHRleHRz IGFjdGl2YXRlZA== LmFjY2Vzcw== KHJlYWRlcg== VGVt IGNvcm9u cm9waA== RE1JTg== IGVtZXJnZWQ= IGluZmxhdGVy IEluZGVwZW5kZW50 b3Jpb3Vz IERlbGhp Njcy IGdseXBoaWNvbg== IENhcmw= U2k= IGV4cGVyaW1lbnRhbA== LmJhcg== SUFO IHNxbGl0ZQ== Y2Npw7Nu OTA0 X0JBQ0s= LG5hbWU= aG9ydA== IHRlbnM= NTQ5 6rM= dXNpdmU= IGdlbnVpbmU= IGJ1Y2s= L2Rpdg== LnJvb20= X05FVw== ZXN0YWRv IEFyaw== b2NvbHM= LmdlbmVyYXRl dG91Y2g= Zml4ZWQ= ICco IHJlZmVycmluZw== IG92ZXJ3aGVsbWluZw== KGxldA== IGZ1ZQ== NjIz X0VOVg== d29tYW4= RmlndXJl YW5pbWF0ZQ== IE1vcnQ= IGxvbmdlc3Q= Y29sbg== VE0= Ol8= cmllbA== LE4= IFJBTQ== IGp1c3RpZnlDb250ZW50 IGFjdGl2ZWx5 L3B1YmxpYw== IOuw R2l2ZW4= T1RBTA== 5aSx6LSl U2VxdWVudGlhbA== IHN1cHBsZW1lbnQ= LmFi IGNhdGVnb3I= fX0sCg== YWhhbg== J3Vu b3NpdHk= IGFjY29tcGxpc2g= VXRpbGl0aWVz LnZpZXdz LmNu Y2VpbA== IENCRA== IFJG UEVH IEdpZnQ= QVlT IFdJTg== cGFuaWVk IMWf IG9ic2VydmVy IHNtZWxs IHs6 TGlua2Vk PlsK b2xlcg== IGxpYmVydA== IGAK IHdlbm4= bGF0ZWQ= IGltbXVuZQ== KE5vZGU= IFByb2JsZW0= IEFicw== bG9ncw== IC4uLw== IEFEQw== IH19Ij4K PicpOwo= PWI= IFdpbmQ= bGFob21h IGFsbG9jYXRl b3JpYW4= IHByZXNjcmlwdGlvbg== LXF1YWxpdHk= IE1heW9y ODU1 aW5lbHk= ZW5kZm9yZWFjaA== IENvbXBsZXg= a29t NzA5 VFk= Nzkw XV0u LlN0eWxl X21hbnk= JywnJA== IGJhcnJpZXI= IEZldGNo IE1hcnZlbA== IHJlc2lzdA== 0L7Qs9C+ YmlkZGVu IFJ1bm5hYmxl OmZhbHNl ODk5 IGJ1aWxkcw== IFN0YWdl IGR1Yg== ZW1wbw== LnNpdGU= NTU4 OwoKCgo= OTk0 IERlbnZlcg== IHJldmVs IHRyaWdnZXJlZA== IGRpY2U= X2ZhaWw= IGdj ODMz NTg5 CVg= IFRocm93YWJsZQ== Nzc1 LnJvdXRlcg== IFJldm9sdXRpb24= 0YDQsA== X05PTg== MDU1 n6U= NTc4 IGVsZGVy IGFicm9hZA== INC1 IEFkdWx0 Ymxy Z2x5cGhpY29u NjEz IHByb21vdGluZw== IGl6 IFNvbGlk NjQ1 X2xvYWRlcg== ZWFybHk= LmVuYWJsZWQ= LWVkaXQ= IFVM X3BsYXk= IEludGVycnVwdA== IGFkdmFudGFnZXM= dWNsZQ== IG1lY2hhbmljYWw= LnRhYmxlTGF5b3V0UGFuZWw= IFdvcmtpbmc= IGFub255bW91cw== UmF0aW5n aWdpb3Vz X3Bob25l LmFkZEFjdGlvbkxpc3RlbmVy IGZyYW4= dW5kZW4= ICopJg== X2Jvb2w= dWxhdGl2ZQ== IGNvbmU= IE11bHQ= IG3Dtg== IEZvcndhcmQ= XSk6Cg== IGNvbnZpbmNlZA== YWN0ZWQ= NjQz 44GT IENvbmZpZ3VyZQ== IGNlaWxpbmc= RGVy IHBhc3NlbmdlcnM= R3JvdXBz IHNvY2Nlcg== L1c= YXZpb3Jz c3dpdGg= IFpvbmU= Lk9wdGlvbnM= IE1vbQ== aWVkZXI= QXJyYXlz IHRyZWF0bWVudHM= IHByb3RlY3Rpbmc= ZmFj IHBpY2tsZQ== QnV0dG9uSXRlbQ== NzEz IGJsb2NraW5n c3RyYXI= w7I= IEV4cG9ydA== IHRocmV3 b3R0YQ== IEJBU0U= Lndz LkxFQURJTkc= b3JkZXJCeQ== X2RlbGF5 IFB1 LmRsbA== IENob29zZQ== OTky UG9saWNl IEJFR0lO Ym94ZXM= IGRpYW1vbmQ= LGw= IAkJCQ== IGN1cmlvdXM= NjI0 dHY= IGVyb3Rpc2NoZQ== YWNrYWdlcw== CVNldA== VGljaw== LmJvcmRlcg== c3RhdGljbWV0aG9k IGNoZXI= aW52b2ljZQ== IGNydQ== IGRlZmVjdA== X21ldGFkYXRh cmVsYXRpb24= aWthbg== W04= KFF0 KEJhc2U= 5oGv YmVhdA== IEVtcHR5 CW8= X3NoaWZ0 IHJlZ3JldA== NzIy VGhvc2U= Q2VudA== IFBvcnR1Zw== IElzbGFuZHM= IFRJTUU= TWFuYWdlbWVudA== OTk2 LXNw NTM5 w6ptZQ== IG5vdGlvbg== dW5pZnU= UEs= ODI2 6KGM IENVUkxPUFQ= XCJc VVY= 57o= ZHJh Y291 PWA= IERlc3Ryb3k= cnA= LmNhbmNlbA== R0c= cnVudGltZQ== IFZ1ZQ== IHByb2dyZXNzaXZl L3NlcnZpY2Vz IHJ1bm5lcg== X0ZSQU1F LlRvb2xTdHJpcE1lbnVJdGVt ICcsJw== ZGVsYXk= PXV0Zg== IHNjcmVlbmluZw== IHB1bGxpbmc= b21hcw== IGFudGg= LW5ldw== L2xvY2Fs IGlQYWQ= IHR3aXR0ZXI= IGR5aW5n IGhlYXZlbg== IFVJbnQ= IFNlbmF0b3I= IHByZXN1bQ== IFdhbGtlcg== IG92ZXJjb21l ZXRlY3Rpb24= IGVtYmFycmFzcw== Q2hpbmE= NjM5 SW5jbHVkZQ== Uk9MTA== IGRhdGFUeXBl RGF2aWQ= 4Lij bG9w LW1vbnRo IHNjYXI= IFNhZmU= ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKio= IGFjY2Vzc29yaWVz IHJhbXA= X1VTRQ== IGNvbnRyYWQ= KSldCg== IHByZXN0 IEhS IFJhcA== IHVzaXpl IGNhcGFiaWxpdHk= IGNvcnQ= LW5leHQ= MDc3 NjI3 IGJ1cmRlbg== ODIy X3JlYWRlcg== IEBA cmVndWxhcg== IEth MDM2 TUFO IGFzdHI= ICcnKQo= IGZlZA== IHBhcnNpbmc= IFllYXJz IGJyb2tlcg== Ijp7Ig== IGFrdA== SW52ZW50b3J5 YWJlbGVk IGFyZ3BhcnNl KioqKioqKgo= dmVyc2F0aW9u IGNvcmQ= IFRp IGhvcGVmdWxseQ== IGFo dmVyYg== IHN0b2xlbg== LkVudHJ5 IGV4cGVjdGluZw== T3JpZW50YXRpb24= IHBvd2VyZWQ= IHBlcnNpc3Q= ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA= J10pOw== JykpLAo= IENhc2g= CWl0ZW0= ODE4 Z3JhZGVz cm9wb2w= YmFzaWM= ICIpOw0K IGF3YXJkcw== KHJhbmdl LWFsbA== IElCT3V0bGV0 IEluZGVlZA== LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ== IHN0b21hY2g= IGZsb3dlcg== IHNldw== X3RpbWVz YXZpcw== UVN0cmluZw== IFJvdXRlcw== X3Byb3Q= IGNvbWVkeQ== IGxvZ291dA== IHdvb2Rlbg== IHBvc3Rlcg== cGllY2U= LkpvaW4= IFBvaw== Y2Vsb25h bXV0ZXg= Ow0KDQoNCg== IHN0cmlrZXM= Nzg3 TG9hZGVk KWFyZw== ZXNh VW5pdGVk RXA= UEVMTA== ODA3 IEF0bGFudGlj dWxsZXQ= NjUy YXBwbGU= IHNldHRsZWQ= YWNvbg== IHByaW50ZXI= IEdD 5a6a IHJlbmRlcmVk LOKAmQ== aGVpdA== c29jaWFs Lmdl NzE0 IFJpY2s= IFV0YWg= Z290 b25pY2Fs IFNjcm9sbA== IFNjaWVuY2Vz IGp1Zw== IGFtcGw= ZW50aQ== TEVGVA== IHRhYnM= IGVub3Jtb3Vz LmdldEtleQ== bG9jYXRl LkVY LnN0b3JhZ2U= Lldl IHRvYXN0 IEFkZGl0aW9uYWxseQ== ODgy IE5PVw== NTQ3 X1VQREFURQ== IHRyYW5zZmVycmVk dGhh LkRpc3BsYXk= X3Vp SURFTw== IG1lYW5pbmdmdWw= IE1vc2Nvdw== LHRoaXM= IFZpY3Rvcmlh 5pS5 INCf LnN0YWNr IEJhcm4= cGFyZWRTdGF0ZW1lbnQ= OnN0cmluZw== IGJpag== IFNUQVRF IGVtcGxveWVycw== CWlucHV0 KHw= IGxleA== aW52b2tl CW51bQ== Kyss YXRpYWw= b3JzZXM= IGZvcms= X3R4dA== IEFudG9uaW8= ICg8 YXZlcnNl IGRldmFzdA== 44CA LkRlYw== IEdhcmQ= L3Vp LiU= dHJp IHJvbGxlZA== VmFsdWVQYWly aXR0ZW4= IFRoZXI= IHZyb3U= IEZsb3c= IEZpbmFuY2U= IENvbWI= SEM= LnNldFZpc2libGU= aXNs IHBr Nzcz IHVwc2V0 KHJhdw== IFZpY2U= ZWF0dXJlcw== IExhbmc= MDI5 TG9va2luZw== NzY3 IEFTVA== IHRyaXBz IEp1c3Rpbg== YnJvd3Nlcg== PSInLiQ= LnZlcnRpY2Vz ODIx LWNv fS97 ID8s IERvbWlu IEJlbGc= Ijw= IHN1cHBvc2U= YWRkeQ== IHdhbGtz Njg4 RVJSVQ== X2ZpbHRlcnM= UHJlZmVycmVk c2NlbmU= 0LXRgQ== IEFmZmFpcnM= ICIjew== IG9uU3VibWl0 IHN0b2Nrcw== L3ZpZXc= Z3JlZQ== LWdldA== OTAz aGl0 Sm8= LmdldEM= NzI1 SW5pdGlhbGl6ZWQ= 0YLQuA== Y3V0cw== KFR5cGU= IEFncmVlbWVudA== IFZpZXRuYW0= IC8qIQ== IHBpenph LXZpZXc= X2Vt IGxocw== IG11eQ== IElkZW50 IEZyaWVuZHM= MDYx IGFidW5k X0FE LnRpbWVzdGFtcA== LSc= IGR1cGxpY2F0ZQ== IGh1bnRpbmc= IHJlZ3VsYXRvcnk= aWFv YW1vdXM= IEVudGVydGFpbm1lbnQ= W0E= aWF0cmlj X0NMSUVOVA== IEtpZHM= L3BrZw== QnJlYWs= KSkpOwoK IFNoYXBl IHJlbGF0aW5n SW50ZXJydXB0 YWJsZU9wYWNpdHk= ZW1icmU= IG15c3Rlcnk= IGpvdXJuYWxpc3Rz cml0YWJsZQ== Lkxpbms= IHN0b3BwaW5n Q1JFVA== LkRC IHBvcHVsYXJpdHk= IGdldw== IGltcHI= c2V0VmFsdWU= RkxBRw== CW1heA== IGJha2U= d3k= IEVjb25vbWlj IGVuY29udHI= IGZuYW1l L2Rl UmFuaw== IGJ1Z3M= LnNt IG1lZGlhbg== RE9XTg== IFN1cmU= QXRJbmRleA== IERpY2s= IChfXw== LmRlbHRh RnI= IHN1Z2dlc3Rpbmc= IFJlY3ljbGVyVmlldw== LGU= U1RBUlQ= LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKio= eGZvcmQ= IHJlY2VpcHQ= Q0xBSU0= cmVhZG9ubHk= OTY4 IGVuZ2FnaW5n NjE5 Q2E= YXNtYQ== IGVuc3VyaW5n RW5nbGlzaA== IFZhbmNvdXZlcg== aHl0aA== IHB1cmNoYXNpbmc= IFBJ LndvcmQ= KHNw LmhvbWU= OmRlZg== IGdpZw== NTc0 Njcx IFZl Zm9ydW0= IE1pdGNo QmF5 X0ZM NjUx IHNvbGw= NTc3 X2NvbHVtbnM= IG1pbm9yaXR5 YmlyZA== IGhhbmRlZA== U1NM U1RBVA== IG5lcnZvdXM= g70= IGZpbGVQYXRo Q1JFQVRF QXc= IHBlbnM= ODM1 c2VlZA== IENvbXB1dGU= b2xr NTk0 IEFzc2V0 cmVhY2g= JyksDQo= bmF2aWdhdGlvbg== TEY= L3V0aWw= IFB1Yg== IOKU Y2lvbg== IyMK MDcy SUlJ VGFnTmFtZQ== IGFtaWQ= cGVybWlzc2lvbg== aWZpYWJsZQ== eEZGRkZGRkZG 0L3QuA== LkJ1ZmZlcg== X2lycQ== ZGFyaw== IHJldHZhbA== LmZpcmU= cHJvZHVjdGlvbg== Lmxpc3Rlbg== IFdlYXRoZXI= IGJ1eWVycw== Lm5l ZXJw IFBlbnQ= Njk5 IHdlbGZhcmU= IHBhZ2VTaXpl IFN0YWRpdW0= ZXJ0YQ== IGxldg== YW1wYQ== UGFnZXI= NjY1 IGNoYXJnaW5n IE5ldGZsaXg= fG51bGw= X3JhbmRvbQ== LnhwYXRo IHN0ZXJl IElTSVM= cG9uc2Vz KGxvYw== NTY2 ZXlvbmQ= IE9mZmljaWFs NjU3 IE1hcnlsYW5k RGF0YVR5cGU= X3Bhcg== e30s IEVuam95 NzI3 X1NISUZU IEF3YXJkcw== X0VOVFJZ IHNlZW1pbmdseQ== ZW50aWNhdGU= IGhlYXJ0cw== NTgz XzsKCg== IEhJVg== IGluZGl2aWQ= IEZsYWc= X2N0cmw= IENhbGxiYWNr LHo= IEdQVQ== CW9iag== IFBob2VuaXg= IEJVUw== OTA3 IHJ1YmJlcg== X0FVVEg= IFNvbHV0aW9ucw== KGxvY2F0aW9u VmFyaWFibGVz LnNldEVuYWJsZWQ= X2hpZ2g= V08= R2VzdHVyZQ== IHJldHJ5 IG9iamVjdEZvcktleQ== YWxsb3dlZW4= IG1vcw== IENlbGU= IGlra2U= KGNlbGw= IE1PREU= cmVuYQ== IGRlc2NyaWJpbmc= NjQx IHBoaQ== IHJk IGRlc2VydmU= IHdoZWVscw== 5biC IGNyaXRpY3M= NzU1 TmFtZXNwYWNl IEZyYQ== IAoKCgo= IGFsbGE= IHJlcXVpcmluZw== 5pyf dXRhdGlvbg== IGRlbGF5ZWQ= IGFkbWluaXN0cmF0aXZl IGJheQ== LmhpZGRlbg== VGV4 MDUx IGJvdW5kYXJpZXM= IF0pOwoK IEZvbGxvd2luZw== fi8= Rmk= X2NvbnY= X1RJVExF IGRlc2Rl SUNvbGxlY3Rpb25WaWV3 QWxpYXM= IGJpdGU= cGF0aWVudA== X0NPTU1BTkQ= Q29tcGxldGVk CWVsaWY= KDw= QnVzaW5lc3M= IFBvb2w= IHB1cnN1ZQ== IEJhbg== X3N0ZXBz X0RFQ0w= dW1ibGU= IGNvbWJv IExheWVy Lnhy IGR1cA== LS0tLS0tLS0t NjI4 IG1vZGlmaWVy cm9i cmV6 Njk2 IGF0aGxldGVz VXNlZA== d2Vhcg== ODE1 IGxlZ2l0aW1hdGU= ICIKCg== IGh2 U3Rk MDM3 IEhvbGQ= IHN1cnZpdg== IEFsbGlhbmNl IEVhcmx5 Nzc4 QmVoYXZpb3I= KGZvbnQ= L2xpYnM= IHJlY3RhbmdsZQ== IHNpbmdlcg== IGFtcA== RXF1YWxUbw== ICIuIg== IGdpcmxmcmllbmQ= 5bE= bGluZWFy b2JzZXJ2 IHBpw7k= IGNvbXBsZW1lbnQ= V2l0aFZhbHVl KHBhc3N3b3Jk dGFrZQ== Qmxhbms= IENvbXBhcg== JyIs X3BvbGljeQ== bW9uZ29vc2U= X0ZBSUxFRA== LnJlcG9ydA== UmF0aW8= LlBlcmZvcm1MYXlvdXQ= NzQ3 dXNhYmxl bWVycw== X3JlbmRlcg== UEVFRA== Nzcy IGxlc2I= CUU= X3Rvb2w= IGxhZGllcw== OTA4 0L7RgQ== KSkpKQo= Ozs7Ow== LmRvdA== IG5lc3Q= cGVhaw== dWtraXQ= ZWNh X1NX ICYo IE9rbGFob21h IGJhbmtpbmc= NTY5 IE5pbnRlbmRv NzUy IHJlcHJvZHVjZQ== X2VsZW1lbnRz X21hYw== cHJveHk= IHJlbWFya2FibGU= fS8kew== IG91dHM= Lmhhc05leHQ= TU9ERQ== NjU4 IGFuaW1l LmNvbm4= VW5pcXVl RG9t IGltcG9ydGFudGx5 aXR0eQ== IGp1aWNl VHc= IFBhcnRuZXJz IGF0dGFja2luZw== IHBvcnRhYmxl YW1pZW50bw== LlBpY3R1cmVCb3g= Lmdlbg== IG9wdGltYWw= NTgy IHJlY3Jl IGpvdXJuYWxpc3Q= IEV4dHJhY3Q= IE1vcmVvdmVy IG1hcmdpblRvcA== LkFw IGZpcmluZw== TmFO CXRlbXBsYXRl 0LDQtA== LkVu IGRlZmVuY2U= IFRlbA== aWxlbg== amFu PWRhdGE= IFVybA== IFJldXRlcnM= KHRvdGFs IEZpZnRo IGVzc2F5cw== IGludGVycHJldGF0aW9u IGNoYXJpdHk= IFJ1bGVz IHN1YnNlY3Rpb24= c3R5bGVk YXplcg== bGFncw== TElTVA== IHVwbG9hZGVk IHRyYXNo IHJlZ2lzdHI= IHNlbGxlcg== Pic7DQo= IHN0YXJ0VGltZQ== 55k= c3k= KEh0dHBTZXJ2bGV0UmVxdWVzdA== IHRyYXA= R0M= IGVtYmVkZGVk IHN1cnJvdW5kZWQ= ODE2 aW1pdHM= VFg= eWxpbmRlcg== Njg1 IEZhbA== IHNlbnRlbmNlcw== IEph SUZJQ0FUSU9O d2VhcG9u b3ZhdGlvbg== IGNvYXQ= IGludGVycG9s IGxpcHM= IEt5 IHZlY3RvcnM= X2Ft IGludGFrZQ== Lndvcmxk IGluYm94 IE1BQw== X2Fi KG5hbWVvZg== NjMz IGVudGVydA== IGdhdGhlcmluZw== IFNJTQ== Kysu bnlh J319 IFVQREFURQ== IHBhYw== KGh0bWw= IFNhbnQ= aWF0aW5n IElkZWFz IHNwcmF5 IEhhcnQ= IHZlcmlmaWNhdGlvbg== YWRlc2g= L21vZHVsZXM= IE1pbmQ= IFNpemVkQm94 IHNoZWx0ZXI= IGhlcm9lcw== YXR0eQ== IGNlcnRpZmllZA== c2o= IMOqdHJl xYJv IHB1Ymxpc2hpbmc= IE1hbGF5cw== LmdldFVzZXI= IFByb3ZpZGVy IExpbmtlZExpc3Q= IEJvcg== Uk9VTkQ= ZGlk dGFpbg== cGlyZQ== IEplbm4= dGVs YW5kZQ== NzU3 X2Zyb250 IE1jRw== VGVzdE1ldGhvZA== 4Lit IG9jY2FzaW9uYWxseQ== IFdhbGVz IGV4ZXJjaXNlcw== INCS MDQ1 LXBsdXM= IHZhbGlkYXRvcg== IHByYXllcg== TEFURUQ= X2F1dGhvcg== IGxhYm91cg== KysK LWVxdWl2 IEdQTA== IGZhY2Vib29r c2ltcGxl Z2x5 UHJvY2Vzc29y aXB5 NzQ0 ICo+ NjQ4 IGNsZWFyZWQ= IFB1c2g= ODU4 IHBlbmlz U3RydWN0dXJl bGlq IE1vcmdhbg== IGhhbmRmdWw= Ii4K OTg0 fFw= ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq IEFxdQ== NTg0 X0lD LmxvYWRz IG1ldGVy IE1hcmluZQ== Ojp7 IFRT Nzc2 IEFycmF5cw== LlRpdGxl R1JBTQ== dGVybWlu IGNvaW5j RWxzZQ== X3N0YXRlcw== LXJ1bg== bWVtYmVycw== Nzgy YXN0cm8= MDY2 IG9uUHJlc3M= IGJlaW5ncw== IGFiYW5kb25lZA== IHRheHA= b3duZXJz Lm1vZGU= IGRpYWdub3Npcw== IF8K IEtuaWdodA== CUE= IG9ic2VydmU= KSwn ODIz ISIpCg== IFBhcmE= IHZhcmlhdGlvbg== KEZhbHNl IEFudGk= IGdyaQ== IGhvbWVsZXNz P3Y= IGJleg== LlNlcnZlcg== cmVsZWFzZQ== IFBhdHJp IGNoYXJz IHJhbmtpbmc= YWN0aXZhdGlvbg== NTgx IHdpZGVz cXI= LlNxbA== YWN1bGFy IEJvdA== X3N5bmM= IGhhcHBpbmVzcw== IHZvbHVudGVlcnM= ODc3 IHNpdHM= Lzw= W2U= KGZpbGVOYW1l IGNhcGFj ODMy IE1hcmlh ZmF0aGVy IGdyYW0= Kmk= IGNhc28= X2RyYXc= IFJhdw== IEl0ZXJhdG9y NjY0 IFBhZGRpbmc= OTI0 UEQ= Qk9Y IFNQRUNJQUw= IGZlY2hh IHZpZGU= IExlYWRlcg== 5Lul JCgiLg== IGRpYW1ldGVy IG1pbGQ= NzQ1 IHJvY2tz YXBwaW5ncw== MDQ4 ZGlyZWN0b3J5 NTU3 LmZsdXNo IEplc3M= VU5JVA== IFBlYXI= IG1hbmRhdG9yeQ== U3Vy cXQ= IHN0cmVhbXM= IGNvb3BlcmF0aW9u IFNhYw== IGNoZWFwZXI= CWNo YW5pbWF0aW9u ZmFyZQ== KGhlaWdodA== KFRydWU= Tlk= IHdyZXN0 IHBvbGxz IGVuY291bnRlcmVk IE1hcmtldGFibGU= X1BBU1NXT1JE NzE2 X1NFTEVDVA== IEFyYWJpYQ== X2Nsb2Nr IHZveQ== INC40Lc= IHN0aXI= aXNpYmxl LWVmZmVjdA== LmNyZWF0ZWQ= IHRveXM= IFRyYWRhYmxl IHJ1c3Q= IHN0cmNweQ== X3RpbWVzdGFtcA== IHRhbGVudGVk LG51bGw= IEpvYnM= IFBvcnRsYW5k IHdlYWtuZXNz VGhyb3c= IEFuZ2Vs 5L+u NzU0 IHVuY2VydA== 77yJCg== IOydtA== V2hpY2g= IFstXTo= U29tZXRoaW5n IGNvbnZpY3RlZA== a2xl ZWRpdW0= IGJyYW5jaGVz IGJhc2Vz 564= IGNvbXBsZXhpdHk= IEZpZw== LnJlc2hhcGU= JGRi NzM2 X0NPTlNU IFRlcw== LnJ1bnRpbWU= IGRlbnk= IEJTRA== IGty aGF0dA== IFN0YXRpYw== IHVuaXZlcnNpdGllcw== UmVwbGFjZQ== IGRyb3Zl IGFkb2xlcw== X3BsdWdpbg== IExHQlQ= IHRleA== ZHVjdGlvbg== NzUx Nzk5 RURJ IFRlZA== X1VSSQ== IHJlY2VwdGlvbg== YXJ0ZW4= LlNpbmdsZQ== cmljZQ== c2Npb3Vz ODQz X2Jn IHdhZ2Vz IFNlcnZsZXQ= VUlMYXlvdXQ= IGZvcm1hdHRlZA== Lk1vZA== PGNsYXNz aXNlbg== IHJlcHJlc2VudGF0aXZlcw== Il09 IHBvcnRhbA== IEh1bnRlcg== IGhpcmluZw== X18pCg== cmljdWx1bQ== dW8= bGllc3Q= IHRlYXJz TGF0 IGxpdGVyYWw= Lkluc2VydA== IGN1cnM= IENvbXB1dA== IHRlcnJvcmlzbQ== IHN3ZWVw IFtdDQo= IHBhc3Nlbmdlcg== IGVhc3Rlcm4= IHR3ZWV0cw== IG9wZXJhdGVk d25k IFN5bg== LnRvb2xz IFdN dWxhdGVz IGJhY3Rlcmlh KGJ5dGVz LnNldERhdGE= IHZpc2liaWxpdHk= Ly89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 ZWxt IGdlbmVyYXRpbmc= IG12 IGto amVu L3NlYXJjaA== IGFjY291bnRpbmc= c2VnbWVudA== YWN0aWM= Lmlw IGRlcGxveW1lbnQ= IGZvb3Rlcg== PicsCg== IGV4cGFuZGluZw== IEhhbWlsdG9u IENvbnRyaWI= LlRhYmxlcw== NzI4 QWN0aXY= SEg= b2NvbW1lcmNl Xzs= IGFtb25nc3Q= b3dpbmc= ODU5 IENvbGQ= QVBI IHBzeWNob2xvZ2ljYWw= X3RlbnNvcg== IHBhY2thZ2luZw== IFN3ZWRlbg== IHBhcmU= IGFnZ3JlZ2F0ZQ== IG1vZGVyYXRl ODYy X2hhbmQ= IGRlc2lnbmF0ZWQ= IGRydW0= IGdldFVzZXI= IENyZWVr X3Njb3Bl IFRyYW5zZmVy IE1hcmc= IGZpZ2h0ZXJz V25k IFNlbA== IExhdW5jaA== IGVtZXJnaW5n aWZyYW1l IEFkZGl0aW9uYWw= IGZlYXJz IHNhdGVsbGl0ZQ== Xzo= IGRpc3Bvc2luZw== R2V0VmFsdWU= SHR0cFBvc3Q= QVRJVkU= dWxhcnk= Vmlld3M= IGF0dGVuZGluZw== IFRlbm5lc3NlZQ== IE1pc3Npb24= IG1lZGljYXRpb24= IFd5 IEFubmE= 2Lk= IFZlcnRleA== LnR5cGVz T3JnYW4= LkRhdGFHcmlkVmlld1RleHRCb3hDb2x1bW4= IFJT IHRlbXBv KEFwcA== ODky VmVyc2lvblVJRA== LnBvaW50 IER1dGNo SG91cnM= TFU= IHF1b3RlZA== LmJ1aWxkZXI= IFBlcmZlY3Q= IEFsd2F5cw== X3R3bw== IGV4Y2x1c2l2ZWx5 IENyYQ== aWZpY2Fy IEFXUw== aW5naGFt Y29tcGxleA== a2VybmVs IGdyYXZpdHk= IHdp MDUy IG92ZXJ2aWV3 NjYx IFdhbnQ= IFdQ KHNo LnJvdGF0aW9u U3RhdGVz IFRlZW4= X2NvbXBvbmVudHM= 7IiY UmVjZWl2ZWQ= IGx5cmljcw== cml0ZXM= CQkJCQkg LUFtZXJpY2Fu W251bQ== L3B5dGhvbg== IFVBUlQ= IGFwcGxl IEpvbmF0aGFu IG1vbWVudHVt 4Lix grk= IG1pY2g= YW5kcmE= IGJpb2xvZ2ljYWw= IE1lbnM= ICUl ZWxzZWE= IE1leGljYW4= LnJhbmRpbnQ= IHRhbGU= IFZhbGlkYXRl IGRlZmVhdGVk Lmh0bQ== IGNvcHBlcg== PS8= Y29zeXN0ZW0= IHJpcA== ZGVjaW1hbA== LlZJU0lCTEU= IFRh CQkJCQkJCQkJCQkJCQk= IGRvd25sb2FkZWQ= ZW52aXJvbm1lbnQ= IG5vbWluZQ== YnVpbGRpbmc= IFNwb3Q= aXBoZXJhbA== IGFsdG8= cXVldA== IEZU L2dldA== L21hc3Rlcg== V0lO 5YWD Njc2 V2VzdA== YXJnYw== IHByb2R1Y2Vycw== IE11Y2g= X3N0b3JhZ2U= Y3JlZGl0 Q09OVA== IHZldA== IHZvaWNlcw== KCcnLA== IGluc3RydW1lbnRz NjYy IE1TRw== ZXNzZQ== cmVwb3NpdG9yeQ== b21pY3M= IGRlYWxlcg== U3RpbGw= IGJhbm5lcg== YXNjaWk= IHJlbWFya3M= W2pz IHNob3J0ZXI= Z3VscA== IG15c3Rlcg== IGt1bg== IEJpcmQ= IHRpZW5l Nzg4 bnV0 IFVt IHdpc2U= WWVhaA== SU5FU1M= MDQ2 X2JlZ2lu LWhlYWRpbmc= Q291cnNl IA0KDQo= b21iaWU= Z3JhZGVk IEdQUw== IMW8ZQ== Rml0 Y2FwdGlvbg== w7Zu L2ltYWdl bGlh KG1vZA== IGxlYWs= ZW56YQ== NjI5 L0g= IEhhcHB5 OTkz RGlzdA== bng= IEdvdmVybm9y KGxhc3Q= dGVhY2hlcg== IFNlbnQ= c3VwcG9ydA== ODM4 amVjdG9yeQ== INmF UmVnaXN0cmF0aW9u MDYz IEdyYXk= LGZhbHNl IGFkanVzdGVk KHNldHRpbmdz PFI= IE1hZ2U= IHBsYWludA== XykK CWl0 b21ldHJpYw== LmJvb3RzdHJhcA== IGNhcnJpZXM= SXA= ICEk IHN3aW1taW5n IE1hcmlv IFF1ZXN0aW9ucw== UEFDRQ== 5pa5 ZW9y fX0i IG92ZW4= IEtvbg== IHdpc2RvbQ== IGFjcXVpc2l0aW9u ZXNzbWVudA== YWdpbmU= IGV4cHJlc3Npb25z U2VxdWVudGlhbEdyb3Vw RnJvbnQ= dWxwdA== YXdr J10pCgo= ODEz NzMy X0FS IGFuYWxvZw== dWxpbg== X1BSSU5U IExH IGJsb2I= IEZ1cnRoZXJtb3Jl X2NvbXBvbmVudA== IENvbGU= TEFO U0NSSVBUSU9O IGxhcA== aWNlbnNpbmc= X1RJTUVPVVQ= IEZybw== IGxpYWJpbGl0eQ== IGNvbXBvc2Vk NjM0 LmNyZWF0ZVNlcXVlbnRpYWxHcm91cA== X3BlcnNvbg== IGJlYW0= CSAgICAgICAg IE5vdEZvdW5k Njg0 LicK w61z LlRleHRWaWV3 UERG IGthcg== X18oJw== ICI6Ig== X21lc3NhZ2Vz IGhhcnZlc3Q= Lmhpc3Rvcnk= PicK LWZvbGQ= 5oo= IEJldHRlcg== ICJcPA== c3BhY2luZw== IGZ1cm5pc2hlZA== OTEz b3Nlcg== XX0K ICQi cHVsbA== LlBvc3Q= OTE5 KGlw l48= LmZyb250 bnRl IEZN Z3VpZA== ODQ0 IG5lZ290aWF0aW9ucw== YWdvbmFs OTM0 IHRyZW1lbmQ= dW5nZW9u QWR2 Y2Fyb3VzZWw= w59l X0RFU0M= IGhhbW1lcg== 4bqt ICAgICAgICAKCg== LWNvcmU= LXNlcnZpY2U= IGNvcm5lcnM= IFNG cHJlZA== PkE= IEpMYWJlbA== IHJvbWFudGlj IHRlc3RpbW9ueQ== b3Nj IEdlbmVyYXRpb24= YXN1cmVz X2ludGVybmFs IHByaW50cw== IF0pCg== IENsZXZlbGFuZA== cmVwbw== RGlzYw== Njc3 NzYy ICI+Cg== 77+977+977+977+9 IG5lYXJlc3Q= NTkx X3Ri KHJlcXVpcmU= RU9G LWNoaWxk IGJ1ZGQ= Llh0cmFFZGl0b3Jz YWx0aWVz NzIz XCI6XCI= V29yZHM= OTE3 IGxvY2FsbHk= IHB1cmNoYXNlcw== Njk1 RHJhd2Vy ZXh0cmFjdA== IGV4ZWN1dA== fScu dXNlcmRhdGE= IGZvY3VzZXM= LW1pbnV0ZQ== NzY0 IFB1Ymxpc2g= b2dv IG1vdW50YWlucw== Qm90 fT57 IHRlbnNpb24= cm9k bWVzaA== IHRyYW5zZm9ybWVk LFI= KCl9Cg== Lmxvbmc= IGdvcmdlb3Vz IFNjaGVkdWxl IG9sZGVzdA== IHN1YnByb2Nlc3M= KElO eWVjdA== IENvb3Blcg== YXJuZXNz IE1vbml0b3I= LnBhcnQ= OTcy IE5CQw== NjY4 IGNvdHRvbg== IGhvbA== NzI2 IHJnYmE= IEJpbw== Q29udGludWU= UG9k IHBhcnRpY2lwYXRpbmc= Y2x1c2lvbnM= KEJ5VmFs NzM0 w6w= IEhPVw== X3NldG9wdA== IGFjY29tcGFueWluZw== MDkx YXRvbg== IC9c IEF1dGhlbnRpY2F0aW9u acOpbg== IEJhcmFjaw== Lyou IGVhZ2Vy IENhbmNlbA== PGxlbW1h ZXBo CXdpbmRvdw== IGluY2lkZW50cw== NzU2 KSwo LkRlcw== aWJl IEZ1bmN0aW9ucw== IGhvc3BpdGFscw== MDM4 IG94eWdlbg== cm9vdFNjb3Bl IGRyZXc= CXJlcXVlc3Q= bm90aWNl YWt1 YW1lbnRz ZmFy OTcz Nzc0 IHByZWNpc2U= X3dyYXBwZXI= IGxpc3RlbmVycw== QVo= LmJvdW5kcw== IEF2ZXJhZ2U= ZmllbGRzZXQ= X2F4aXM= IGV4YW1pbmF0aW9u Jy4K bW9ucw== Kyspew0K IEZvcm1z 7ZWc OTE2 Q3BwTWV0aG9k X3RyYWNl IGVuZ2luZWVy NjYz IEZsYXQ= IHJldmlzaW9u IGhlYXRpbmc= NjM4 L3Byb2ZpbGU= LnJ1 cHJpb3JpdHk= IGluZmVy X1NUUkVBTQ== ICopKA== PiQ= T0xFQU4= T0tJRQ== SUJJTElUWQ== VUFHRQ== IFN1cnZleQ== MDcx IHJlc2lnbg== d2luZw== IHNlY3JldHM= IGNoaXBz SlNPTk9iamVjdA== RGVza3RvcA== NTk2 X1NZTUJPTA== KHJlc291cmNl IDwvPgo= IG5ld2VzdA== dWxp IGRlc2VydA== IGRpcA== IFBvdw== IGVxdWF0aW9u IHBvc3NpYmlsaXRpZXM= IEZlZA== b3NwaA== IFsl IGJ1YmJsZQ== ZXRoZXJsYW5kcw== Nzkz IGNlbWVudA== LmF1dG8= X0FO 4oCZLg== c2VsZWN0aW9u IEJvbmQ= OTg4 RGVu LU8= LmdldFR5cGU= ODk2 LldpbmRvdw== cHJlcw== IHN3aW5nZXI= In0pCg== IHBpcA== IG1pY2U= IGNvbXBvdW5k LXBsdWdpbg== aWtv IGNlbnR1cmllcw== aWN1bGFy LWlubGluZQ== CWtleQ== Plw8 RU5TSU9O IFsNCg== IHByZWNpc2VseQ== IMOpdMOp IFBhc3Q= IENhbWJyaWRnZQ== LWZ1bGw= IGFuYWx5emU= IFN0ZXZlbg== IG5lbQ== ZHVl b3Jlbg== IG11c2NsZXM= aWppbmc= ODUy Ly0= IEtlbm5lZHk= NTk3 Uk0= b3NzaWJsZQ== IGFjdHJlc3M= IGRvbG9y OTE0 5b2V TmVlZA== LnRvZ2dsZQ== IFJhY2U= d2Vycw== Lm1hdGVyaWFs IER1ZQ== IFBlbA== I3ByaW50 IGluZGVwZW5kZW5jZQ== ZXh1cw== U2hhZG93 IGVuY29kZXI= KGxldmVs IFN3aWZ0 LmRvYw== X3NlbGVjdGlvbg== OTUy IHNlcmlhbFZlcnNpb25VSUQ= OTQ1 TGFiZWxz IHBlcmZvcm1hbmNlcw== LlRhZw== IE5ITA== aXplbg== L1VJS2l0 OTkx X0NPTlRST0w= IGVhcm5pbmdz OTc1 IEFsdA== X0hBTkRMRQ== Q3R4 IHBlcnN1 IHRyYW4= 56g= X0NIQU5ORUw= IHNhdGlzZmFjdGlvbg== IEdQ NzY5 aW94 bWl0dA== bGFuZG8= IHBpZw== aW5hbHM= w6puY2lh NzMx U3VyZmFjZQ== IFVVSUQ= IGJlbmVmaWNpYWw= IHNlcXVlbmNlcw== CW1lbXNldA== IG1hZ2ljYWw= wqs= IHdvcm4= QVND cG9wdXA= Q09NUA== X2JlZm9yZQ== ZW5lc3M= VWk= TGVz LnJlcXVpcmU= LlNlcmlhbGl6YWJsZQ== YWRkR2Fw IGF1dGhvcml6YXRpb24= MDg1 LnB5cGxvdA== dXJyYXk= bGF0aXR1ZGU= ODQ1 ZnJhbWVz YWpz IGNvbXBhc3M= IG9ic2VydmF0aW9ucw== X3N1cA== LmVudmlyb24= IHRyaXBsZQ== IFJ1Ynk= IGRyYWlu X0ZJTFRFUg== U2Fu VU1Q TnVsbEV4Y2VwdGlvbg== IEdhYg== b3dl IFR1cmtpc2g= X3NlcXVlbmNl IEdyYW50 dWVsYQ== IHdv IGN1YmU= aXE= IGRpc29yZGVycw== IGV4dHJhb3JkaW5hcnk= IGN0cmw= IFNlcQ== ZW50cg== ODY1 IHNhbmN0aW9ucw== OTQ5 dXRzY2g= UmVwb3J0cw== IGluaGVyaXQ= UGVyaW9k IHBob3RvZ3JhcGh5 IEZyYW1ld29yaw== IHNwZWNpYWxpc3Q= ID8KCg== X3NlbGVjdGVk LlBsYXllcg== IGFsbG9jYXRpb24= KGFjY291bnQ= IHN0cnVjdHVyYWw= dmFibGU= LW9mZnNldA== LkFwcENvbXBhdEFjdGl2aXR5 0LDQvA== LkFkZFdpdGhWYWx1ZQ== IGljb25z IHNodXRkb3du X2xvdw== IENvbXBhcmU= IENl PWhlYWQ= bGFt LnByZWRpY3Q= X0RFQw== IFNsZWVw IEdyYXRpcw== IHN1Z2dlc3Rpb24= IERFTA== Y2FmZg== YXZpcnVz Tm90aGluZw== nos= IHdpZGVzcHJlYWQ= IG1lY2hhbmlzbXM= IHRleHRBbGlnbg== b2NjdXA= IFJhaWw= Ok5T IGZpYmVy IG1r IHZpbnRhZ2U= LWxvbmc= LnJlZHVjZQ== LkVudGl0aWVz KHJlY29yZA== IHBsZWFzYW50 RlJJTkc= LkNlbGxz T1RU CWVsc2VpZg== NjQ5 NzI0 X2NvbmZpcm0= IFZpZXdHcm91cA== c3lt IHByYXk= IHN1c3BlY3RlZA== Q29udGFpbnM= OTgz IGJvcmRlcnM= IGNvbXBvbmVudERpZA== QVNTRVJU IGluZmluaXRl LW9yZGVy IGhlbGxv IEdyYWRl LmN1cnJlbnRUaW1lTWlsbGlz YXBvbGlz emg= CU9iamVjdA== Olxc SE8= dmFsdWF0aW9u IHZvY2Fi NzE5 IGNvdXBvbg== YXRhYmFzZXM= LkdldFR5cGU= TGVhcm4= Nzky XT0i IEdhcnk= b3RpdmU= IGFzaA== IGJpYg== WFhYWA== IGJhbGFuY2Vk VkFMVUU= IE5hdA== X0Fk PEU= 5Yy6 IE1ldGhvZEluZm8= ODk3 TElC IGNvbnNpZGVyYWJsZQ== IEluZHVzdHJ5 dGVzdHM= LnNldFRpdGxl IEJsdWV0b290aA== IG1hcHBlZA== IEJydWNl IE1haW5XaW5kb3c= CXN0YXR1cw== IHJheg== IE1hbmQ= IGNsYXNzaWZpY2F0aW9u UGVybWlzc2lvbnM= OTY5 IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0= IGNvbnRhaW5lcnM= OnNldA== X3htbA== IHdoaWxzdA== VGhyb3VnaA== IHZhbGlnbg== IHdvcmxkcw== Q09SRA== RURJQQ== 0YDQvtCy IHNwYXJl IEhhZA== IERFRg== KHB0cg== IHdhcm1pbmc= ODk4 4KS+ IGNvbnNlbnN1cw== YWduZQ== Q1RM IOyV Lk1haW4= d2ViRWxlbWVudA== IHBpc3Q= Rmxhc2g= QXBwZW5k LnR3aW1n VGFw IHZlZ2V0YWJsZXM= YWxn MDU4 LnNhbXBsZQ== IGNvYWNoaW5n KGluZA== Q2VsbFZhbHVl Q2hlY2tCb3g= IEhlbGw= Uk9PVA== Nzk2 IHN0YWRpdW0= IGludmVzdGlnYXRpbmc= KSU= c3RlZA== OTY1 IFdyaXRpbmc= IOqy IHVubw== IHt7LS0= IGNvb3Jkcw== IHVuc2Vy b3JnYW5pemF0aW9u IENyaW1l IERlbW9jcmF0 NTc5 IHZpbg== L2ZpbGU= MDc4 LWFwaQ== IEF5 IGZ1bmRlZA== IEJyZXhpdA== IEdo ZW50aW5h Y2FzZXM= IGRhc2g= ICEhfQo= SEk= T2ZmaWNl IGNhcHRhaW4= IHdvcnNoaXA= XEM= NzMz ODUx IGdsb2Jl X2JvYXJk IGJhYmllcw== ODc2 IGNvbnNlY3V0aXZl IGVuaGFuY2Vk ZXJldW0= IEFkdmlz IGdyYWlu Nzcx IGNyYXc= YW5jZWxsYXRpb25Ub2tlbg== LmFscGhh X1dJVEg= IE90dA== IENvb2w= LmJhdGNo IHZlcmlmaWVk KGNhbGxiYWNr IHJlZ2FyZHM= Njgz IEludFB0cg== b3VjaGVy IGtpbg== IHRvdWNoZWQ= aXTDoA== YXRob24= IGFkamFjZW50 IGFjY29tcGFuaWVk TEVBUg== IGltcGxpZXM= IGhpbGw= IEJhbHRpbW9yZQ== PSIt RmluYWxseQ== ODgz U2Ft aWNvcHQ= IHNvZA== IG1hag== IFNoaXBwaW5n IGdldEFsbA== IGNvYWNoZXM= IGRvbmF0aW9ucw== aWxvdA== IFRhcg== Y2Vycg== IGJhZGdl IG1hcmtlcnM= IFJhbmQ= YWlzZWQ= aXNzYW5jZQ== IGV4cGxvcmluZw== ODI3 dWNlZA== IEluZG9uZXNpYQ== IGJlbmVhdGg= IG1hZ25ldGlj IG11c2V1bQ== bWF0Y2hDb25kaXRpb24= IGRpc3J1cHQ= IHJlbWluZA== IFRN IC8+PA== IGZvb2w= IGVzaw== Lk51bGw= IERpZXM= X09VVFBVVA== X1RZUEVE IHBhaW50ZWQ= Njcz NzM1 IHNvcGhpc3RpYw== IEJlYXI= Km4= X1BBQ0s= IGRlbGl2ZXJpbmc= IENPVU5U 5Y2V IGplZw== LWNhcg== Zm5hbWU= IHJhbmdpbmc= ODQ4 IE5lZw== LyoqKioqKi8= IENIQVI= IHVsdHJh R3JhZA== PXQ= IGp1ZGdlcw== IERpc2U= YW5uZXJz OTg1 ODkx ODYx IHNjYWw= X2NhbA== IENPTk5FQ1RJT04= X2VtYmVk KGZu IENyYWZ0 MDQ3 IFBhcw== IiktPg== LmNvbnZlcnQ= LnJlc291cmNl IFNUQVRVUw== w7RuZw== IFRpdA== IGNsYXNzcm9vbQ== IEFyY2hpdGVjdA== IEtpbmdz IHN0ZWFkeQ== LyohCg== IEdlbmU= KSI7Cg== aWNpYQ== c3Rhbg== IENvbnN0cnVjdGlvbg== dW1wZXI= OTUx d2M= IENCUw== aW5naW5n LXBhcnR5 KGRyaXZlcg== TUFSSw== MDgy IG5lc3RlZA== ZXdhcmQ= IGRlcGVuZGVuY3k= IG1hbGVz OTI4 IE9ORQ== IFByb2R1Y3Rpb24= XVsk 44O844M= X0xPQUQ= IEJvbA== ZWxyeQ== ODMx oOmZpA== IFJlcXVpcmU= IHBsYWNpbmc= eHh4 Q0FMRQ== IHRodW1i ODI0 Q2hvb3Nl IHByb3RvdHlwZQ== Vk9JRA== IGxlc2JpYW4= NzQx IHRyYWl0cw== U2hhcnA= IGNvbnN1bWU= VHJ1dGg= IGFjdGlvblBlcmZvcm1lZA== IEVudmlyb25tZW50YWw= IERlYW4= IGVzdGFkbw== c2FtZQ== IG51bWVyaWM= IHRyYW5zaXQ= LkVtYWls LXNpZGU= X1JVTg== IFZpbGxhZ2U= X09QRU4= 6KY= LnJlbQ== LXdhcm5pbmc= YW55YQ== UHJvcGVydHlDaGFuZ2Vk ICghXw== KGNoZWNr aWxpYQ== IFNvZnQ= c3RlcHM= IE1hZHJpZA== TWVtb3J5V2FybmluZw== IGhhbmRsZXJz IGV4cGVyaWVuY2luZw== IGluc3BlY3Q= YnV0dG9ucw== UmVjZWl2ZU1lbW9yeVdhcm5pbmc= Y2hlbXk= TGlua3M= IHVybGxpYg== LlN5c3RlbUNvbG9ycw== IEVpZ2Vu IHB1bmlzaG1lbnQ= OlVJQ29udHJvbA== YmFyYQ== LXNldA== IH0NCg0KDQo= IHRvbGVyYW5jZQ== IGludGVyZmFjZXM= LnJlZGlyZWN0 aWdoYm9ycw== Y3NyZg== X2JhY2tncm91bmQ= LlV0aWxz X0hU Njky IEludGVyZXN0 aW1vcw== IGdyYW50cw== MDgz IGV4YW1pbmVk 0JQ= IGNm Zm9yZ2U= YmFja3M= IE9iamVjdHM= X3NlbnQ= LmVudHJ5 IFRIRU4= ZWxsaWRv Y2lh LHJlcw== NjU5 Njgx L3N0ZGM= Lm5k KEludA== IEF1dGhvcnM= IEFwcENvbXBhdEFjdGl2aXR5 J3s= IG1lZGk= TXVzaWM= aWdt Y2VpcHQ= IGF1c3M= IHRhcmdldGluZw== IEtleXM= aG4= Ol0K IG1pbmVyYWw= w64= LmNh NzYx b21lZA== IHNoZWV0cw== IGNhbWI= IGRlYWRseQ== LmluamVjdA== KHVuaXQ= IFNlbGVjdGlvbg== Lmdtcw== KGNvbm5lY3Rpb24= ICQoIg== w6ltb24= IEN1cnJlbnRseQ== cHRl X3BhdGhz ODQ3 bGVhZg== IGltcGxpY2F0aW9ucw== cG9zYWw= 5L2N Wy8= YW5jaWE= 6Zs= bXVs Y2ll IGdlaWxl Njc5 aW1hbHM= VUlWaWV3 IHN1cnJl c2VyaWFsaXpl SVNP IGFyYml0cmFyeQ== IHNvY2thZGRy LmZu IE1lcmM= IGNhc3Rpbmc= S2V5RG93bg== IG5ld1ZhbHVl b3BlbnM= NzE3 VG9kbw== IGZsZXhpYmlsaXR5 CQkJCSAg VmVsb2NpdHk= w7pu cm93aW5n IGNvbXB1dGVk YCkK c3RhdGVtZW50 IHJp X2NhcnQ= TG93 dHJhbnNmZXI= Lm5hdg== IGdyYXZl IERvb3I= CWFsZXJ0 Njkx Njk4 LnN1YnNjcmliZQ== LXByb2ZpbGU= CWJhc2U= IOKIkg== X18KCg== IGVuZ2luZWVycw== IGV4cGxvc2lvbg== IGRhcmk= Njgy CUxvZw== b25hbA== IGlzb2xhdGVk e2k= IE1zZw== RnV0dXJl IHJhY2lzdA== LXdyYXA= IFZlcnM= Ym9yZw== SVNJT04= INGA0LDQ IFlhbg== ODM2 aW5pdFdpdGg= IG5vbWlu KGVtcHR5 w61u 44Kk CXdpZHRo IGNoYW1iZXI= L2FqYXg= RU1Q MDkz IG5lY2Vz aXZvcw== bG9naWM= Kikm Y3JpcHRz OTc2 Um93QXQ= MDUz aWJsaW5ncw== IGVhcnM= IGNvbXB1dGluZw== IG1ha2Vy IE5laXRoZXI= YnJlYWRjcnVtYg== IHNlcmlhbGl6ZQ== IFdpdGhpbg== IGRlbGw= X1RSQUNF MDky PWE= IHdpc2hlcw== LWluY2g= IERvcg== IGlubm9jZW50 IERvbA== IGludGVucw== Zm9yY2Vk MDU0 IEJJVA== IHBob3RvZ3JhcGhz IGNhc2E= IExlbg== XEZyYW1ld29yaw== LlNpbXBsZQ== IGRlYXI= ODk1 KS8o aXBwaQ== IG93bnM= UGxheWVycw== IHByb3Bvc2Fscw== LnBp dXNhbGVt RGFtYWdl IGNhbG9yaWVz IENyZWF0aXZl IFsk IC8vDQo= Nzg2 QW5kVmlldw== w6htZQ== LmN1c3RvbQ== X2ZhY3Rvcnk= Y29tbWFuZHM= X2xvb2s= IHN0cmNtcA== WU4= YWlyZWQ= IGF1ZGl0 0L7RgdGC IFJldmVyc2U= cm9wcmlhdGU= ZXRpY3M= PHZlY3Rvcg== LnNlbGVuaXVt Lm9y IHByZWRpY2F0ZQ== IGZpbmlzaGluZw== IGtsZQ== IFJlcG9z IEtoYW4= IE1ha2luZw== IEZT IHB1dGU= CXN0YXRl X1NVUFBPUlQ= Jy0= b3JpZW50YXRpb24= IGV4aXN0ZWQ= YXR1cmE= IGV4cGVjdHM= IFNoYWRvdw== OTY2 IG9yZ2FuaXo= 5Z6L IHN1c3BlbnNpb24= NjY5 IHVpdA== IHNpbXVsdGFuZW91c2x5 IEFmZmVybw== OiIpOwo= IHJvY2tldA== Y2Fz ZXRlcm1pbmU= YWNldXQ= Njkz eGw= IEFNRA== KGdyYXBo NzU4 ODcy YXNzb2Np X0NS LmFyYW5nZQ== MDQ5 KGpMYWJlbA== IGJlZWY= UXVpY2s= LmNhcmQ= XSk6 LWdy Nzk3 LkdPTkU= X0NMT1NF IE5ldg== w61hcw== IHN0ZXBwZWQ= IEZyZWVkb20= IFdS TlNBcnJheQ== X3J4 X2RpYWxvZw== IGhvdGVscw== OTUz IChcPA== IERpYW1vbmQ= IGFzc3VtcHRpb24= dW1p KGl0ZW1z DQ0NCg== 5rOV IG5lbA== Qm9va3M= 5Y6/ dXNi IEZJTg== ODgx 5qw= IGNvcnBvcmF0aW9ucw== VVNB ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA== OTI5 LnByb3BlcnR5 ZXdpc2U= X3Bsb3Q= Ij4nOwo= IHBlcHBlcg== OTg5 IHNoZWQ= IE1lZGl1bQ== IENvb2tpZQ== ODg5 IG92ZXJzZWFz ZWRvcg== YXN1cmVtZW50 NzY2 5a2Y ICcuJw== IHBocA== IFBST0M= IGV4Y2VwdGlvbmFs KHRo IEpldA== IG9jY3VwaWVk LnNldEltYWdl IFJlbGF0ZWQ= dWNrZXI= TWVtYmVycw== UFJJTlQ= IEdsbw== X1ZJRVc= fSIsCg== IGFkb3B0aW9u W10pCg== ODQy IE1pc3NvdXJp IExpbmNvbG4= ZXJhbGQ= UG9wdXA= IGZhdGU= LWJvb3RzdHJhcA== ZmVjdGlvbnM= IFBvbGw= X0FSR1M= aW5hbmNl Njk3 LWhvbWU= Liks X2RvbmU= Njk0 OgoKCg== IGRpc2N1c3Npbmc= IFNRTEV4Y2VwdGlvbg== IGVsZWN0cm8= CXJlcQ== IHp3 ODg2 IGx1aQ== OTMy IG92ZXJuaWdodA== JHVzZXI= IFdBWQ== IGFsbGVyZw== IGRpc2FwcG9pbnRlZA== IHJhZGlhdGlvbg== IGltcHJlc3NlZA== aWZpY2F0ZXM= IHRvYg== Q0xBU1M= IGN1ZGE= X2RldA== LXBvc3Q= dWx1 VHJhbnNsYXRpb24= LWhhbmQ= LnllYXI= IE1vbmdv IHVuY2xlYXI= LmVuZ2luZQ== V0VCUEFDSw== cmljZXM= X0FDQ0VTUw== IGhvbGlkYXlz cGVyY2VudA== LklkZW50aXR5 IEdvdg== IHBhc3Npb25hdGU= ISEu IEdyZWVjZQ== cGx1c3BsdXM= JykpOw== R1A= IGV4Y2l0 LnRhYlBhZ2U= X2NvbmQ= IHNwb25zb3I= TU9EVUxF X3Byb2M= ICQK IHJhdGlvbmFs LlRvb2w= IGlocg== Y2Nh 5ZOB IEVzdGF0ZQ== SUJVVEU= QWN0aW9uUGVyZm9ybWVk IFNvbGFy poI= IGVxdWl0eQ== dGlk OTM4 IHJlY2lw LnNpbXBsZQ== bWs= Njg5 IEx1a2U= IEd1YXJkaWFu IGVuY3J5cHRlZA== IGRvbWluYW50 LnBsYWNl IE5W ODM5 IHRvbmd1ZQ== KEdldA== IHN0YWlubGVzcw== LlBsYXk= IGVi YWNp LmJ1ZmZlcg== cmVhZGNydW1icw== IHZhY2NpbmU= cHJvbQ== OTc5 IHVzZXJJbmZv IHNsdWc= U2VyaWFsaXplZE5hbWU= LXdpZGU= IHJlYWN0aW9ucw== IFlhbmc= IEFkZHM= KHVzZXJJZA== IHBsYXRlcw== IE1FTQ== IGJhaWw= SW5zaWRl ZXRlZA== IGVsc2lm IHNha2U= IGN5Y2xlcw== IOyX CUk= LWNvbGxhcHNl ODQx IEdNVA== ODE0 RGVjbGFyYXRpb24= IGdyb3M= IHJlYWNoZXM= IGN1c3RvZHk= VW50aWw= NzUz ODU2 dHU= IENoZW4= IG54 KGFkZHI= IE9mZmVy IGNvbGxlZw== YXNzYWRvcg== Njc0 IG1hcHBlcg== ODU0 IFNJR05BTA== IEJsb29t IEhvbGw= IEltcGVy LWRlcw== X3NpdGU= UHJvYw== RXF1 IGF0b21pYw== IFdvbWFu c2VudA== NzM4 ODE3 c2Nhcg== IGludGVsbGlnZW50 IEdldHRpbmc= IFJlZ2lzdHJhdGlvbg== IFBoaWxs IGtpbGxlcg== dW5pY29kZQ== CgkJCg== IEphY29i IENvbnN0 IGxvY2F0ZQ== IGNhdXM= NzQ5 IFNjaG9sYXI= IGNvbnN0aXR1dGlvbmFs IGluZmxhdGlvbg== IEdvdA== PWFycmF5 ZW5kdW0= IHRyYW5zbGF0ZWQ= IGRpdm9yY2U= RW50cmllcw== IHNvcg== IFF1b3Rl aXJsaW5lcw== VUs= IGV4Y2Vs KG9wdA== IEFEVg== LDos IGNvbnRhY3RlZA== NzQy IERB IHJpbmdz IEluZHVzdHJpYWw= LmdldENvbnRleHQ= IGZvcmdvdHRlbg== IFRhbg== IHBhbnRz IG92 IGRlY29kZXI= IFBhcnRpYWw= IHZj IGJhdHRsZXM= QXJpYWw= RlJJTkdFTUVOVA== aXJhdGVz LHc= YWludGVuYW5jZQ== IE9k IFRlY2hub2xvZ2llcw== 5YmN IENhcnRlcg== LmZpbmRBbGw= Tm9tZQ== QmVu IFVzYWdl IFBpY3R1cmU= IGJhZGx5 X3BhbmVs IHBhdGVudA== IFByb3RvY29s bG90dGU= CXBsYXllcg== amVjdGlvbnM= NzQ2 IGRvdQ== X3JlbGVhc2U= dXJuaXR1cmU= X3RheA== IEZpZWxkcw== LmRhdGFzZXQ= X21hc3Rlcg== Q0xVREU= IFBoYXJt YnN0 IG9wZXJhdGlvbmFs LmNlbGw= IGlkZW50aWZ5aW5n IGp3dA== dHVwbGU= IFRD IENybw== OTM2 aXhtYXA= LWNvbXBvbmVudHM= Z2VuZXJhbA== IG96 X0Rl X2RvdWJsZQ== IFRvbw== MDg4 LlZpZXdHcm91cA== ODc5 Z2F0ZQ== ZGluZ3M= cGhvdG9z IGdyYW5kZQ== b2xsZWN0 X2xpbg== IGF3ZnVs ZmlsdGVycw== IGFsdGVybmF0ZQ== ZXNw IGNvbXByZXNz ZW8= IFNjYWxl IGluZGlyZWN0 IGludm9pY2U= CgoKCgoKCgoKCgoKCgoKCg== U3RhcnRpbmc= IFBsYXllcnM= aWVsZQ== LnRoZW4= OTgx T3Jk IFR1cGxl IGJvdXQ= IFN0YXRpc3RpY3M= UHJldmlldw== IHB1enpsZQ== IFdpZHRo U1RBVEU= IG92ZXJsYXk= CW9u IGluZnI= IHNtYWxsZXN0 bG9ja2Vk 0YLQvg== c3Ns Nzc5 IGRlZW1lZA== IHNjbw== cmVjaw== IGpCdXR0b24= IG1pc3Npb25z ODcx 56ew LlNlbGVjdGVkSW5kZXg= VEFCTEU= U2VwdA== IGFja25vd2xlZGdl IHN0cnRvdGltZQ== IFRlbGw= IERhaw== IGFsdW1pbnVt IGZlbmNl IFN0YXJz Q09ORklH IHJldHJvZml0 IGVtcGhhc2lz L2hlYWRlcg== IFNvbWV0aGluZw== aW5pc2hlZA== PSciLiQ= IFZhbGlkYXRvcnM= IHBvbGFy c2VjdGlvbnM= OTQ0 LmFzcHg= IGFzcGly Lk1vY2s= Q29kZUdlbg== IHBldXQ= OTcx IGFjY2VwdGluZw== IGJhY2tpbmc= UGljdHVyZQ== L2Fw 0LXQsw== X1NFQw== LXVzZQ== YW5ub3RhdGlvbg== IGNvZ25pdGl2ZQ== IGdyaXA= aG91cg== IExlZ2Fs IGVwaWM= LnRvb2xTdHJpcA== Lm5vdGlmeQ== Lkxhc3Q= T1JJWg== TWlkZGxld2FyZQ== Y3JpcHRpb25z bGFzaA== X0ZPVU5E IExpdmVycG9vbA== IHt9Iiw= OTMx SW5zdGFsbA== IG5pdA== IGZpZ3VyZWQ= W2xlbg== Lldpbg== LnBsYXRmb3Jt ODUz IGdhbWJsaW5n KGR0 YXZlcnk= CWluY2x1ZGU= V2hldGhlcg== Um91dGluZw== IHRoZXJhcA== UmVtb3Rl IExvc3M= eWxs IGFwcHJvYWNoZWQ= IFZlaGljbGU= IEFscGhh IHZvY8Oq YW5zd2Vycw== TlNEaWN0aW9uYXJ5 OTU0 Y29uc2lkZXI= dW51c2Vk IEZhbg== b3JhYmxl ZnJl ODcz IERJU0NMQUlN IEFjdG9y Ll0= dG9IYXZl LnVzZXJJZA== IHNwZWVkcw== ZXdheQ== IHJlY3Vycw== INCz X3ByaXY= IeKAnQoK Q2hvaWNl IHNldHRsZQ== IHBsYW5lcw== J30s VG9t SVRFUg== ISIK 5bs= YWNoZWxvcg== IHNlcGFyYXRpb24= IGRhbA== YWRq IHJlZ2lzdGVycw== cml6 IE5vdGljZQ== IGx1 IGNvdXJhZ2U= IGF4ZXM= Y2VsbGVudA== LmFzeW5j MDcz IGNvbXBhdGliaWxpdHk= 56s= ICEKCg== CXRpdGxl WUxF CW1lc3NhZ2U= VVVJRA== T0xERVI= IEhI IFN0eWxlU2hlZXQ= IGFjY2Vzc2Vk LnZhbGlkYXRpb24= dGFza3M= IHBvbGx1dGlvbg== LmNhbnZhcw== IGluZ3JlZGllbnQ= IENhYmlu QWg= b2xkb3du IE5PSQ== IMOX W2Y= ZWR1Yw== eWFsdHk= KG5vdA== X1N0YXRl OTMz YW1lbg== Nzk1 NzM5 IGRhbw== dWRhZA== ZWxsZXJz fSY= bGljaXR5 X1dJTkRPVw== IHRhdHRv dmFsb3I= LlJhbmdl IHJlZmVyZW5jZWQ= IFJlc2VydmU= TW9uZXk= ODc0 U0NSSVBU L3Byb2R1Y3Q= Y2hvaWNlcw== IHRpbg== 44KT OTE4 IHNlcGFyYXRvcg== IHBrZw== YW1tZWQ= IE1BVA== ISEKCg== IHJhaWQ= IG1vdGl2YXRpb24= IFhQ IEJhY2tncm91bmQ= IFF1YXRlcm5pb24= LmRlZmluZVByb3BlcnR5 aWtlcg== CXBhcmVudA== IE9yaWdpbmFsbHk= YW50YWdl IEhhbnM= IHRpbWVsaW5l LmN1cg== b3BpYw== IFNlcXU= bXVzdA== IENvYWw= IGZvcm1hdHRlcg== X1JHQg== IF8oIg== J30pLAo= ID09PT09PT09PT09PT09PT09 IEZVTkNUSU9O IGxuZw== aWNhdGVz bGl2ZQ== X2VuZ2luZQ== IHRvd25z ODY4 JykpCgo= IFBL KGFwaQ== CXNjYW5m MDg5 cGFja2V0 LnBob25l 4YA= IEFuZHk= X05BTUVT OTgy UExZ OTU1 IG1pbnM= aW1p IGJyaWNr IGJsYWRl LnN0ZG91dA== fWA7Cg== U2hpZnQ= CXNi IENoZWNrcw== IHBoZW5vbWVub24= QXZhdGFy IG1pbmlzdHJ5 cm9zZQ== CUZpbGU= ODc4 IHRpdGxlZA== KExPRw== IGdhbg== ZGVzaWdu KCksDQo= IGJvbmVz c3Rt xZvEhw== IElucHV0U3RyZWFt IHZvbHVudA== IFNlcmlhbGl6YWJsZQ== IGZpZ2h0ZXI= IERyYWc= VHdpdHRlcg== IHN1YnNpZA== 57w= IGZvcnVtcw== LmxvYWRpbmc= bG9nZ2Vk X3RoaXM= IHRlcnJhaW4= IGlycmU= IEluZw== IENO X29iamVjdHM= LnVpZA== IGNvbnNjaW91c25lc3M= VElOR1M= IEdhbGw= IHBvcnRyYXk= MDU2 IERldmVsb3Blcg== IHBhcnRpY2lwYW50 ICI7DQo= L21vZGVs Nzk0 IE9wZXJhdGlvbnM= Xlw= IExhdGVy IHJhaXNlcw== LW5vbmU= Lm1ldGE= PScuJA== RmluaXNoZWQ= IHJlcGxhY2luZw== IHNhbXBsaW5n IEplbg== IlRoZXJl UkVBTA== QUxF 7Iqk T3JkZXJz X3BhcmFtZXRlcg== IE9seW1waWM= IHRyw6hz IGFyZW5h aW9s Oz8+ IGltcGFjdHM= IFdT OmdldA== IGZsaWdodHM= IFJ1c3NlbGw= Y2FtZXJh Rm4= c2lnbWE= IGZvcmNpbmc= IGxvY2Fscw== IGRlcGFydHVyZQ== IGNlbGVicmF0aW9u IFNheQ== ODg0 77yS IEhpbGxz Lmhhc093blByb3BlcnR5 IHR5cGluZ3M= LkFQSQ== IGRvbmF0aW9u T3BlcmF0aW9uRXhjZXB0aW9u LkFjdGl2aXR5 Y3BsdXNwbHVz IENoYXJsaWU= IGltcG9ydGVk IGRhbm4= IG9jY2FzaW9ucw== IGltcGxlbWVudGluZw== IHB1cnBsZQ== LmRpYWxvZw== U1FMRXhjZXB0aW9u ZXJubw== IHdhcnM= IHBhc3Rl IGRlY3JlYXNlZA== IGhhcnNo IGVsYWJvcg== aW5wdXRz IFZpZXdz IGVycm9yTWVzc2FnZQ== X211bA== CXdyaXRl IENvcA== IEFubnVhbA== KGJ1dHRvbg== IHZpZGE= YmFycw== IEhhcnZhcmQ= CWV4cGVjdA== IGluZGV4ZXM= IGRvY3VtZW50YXJ5 IGZsZXNo T1JMRA== IERlbHRh TUFORA== QnJ1c2g= LWNvbHVtbg== IGRldmVsb3BtZW50cw== OTc0 Nzgz bWV0aG9kVmlzaXRvcg== c2xpY2U= IFBETw== IGludmVzdGluZw== ODY3 aXJhYmxl IHhtbG5z 77yb YXJ0YQ== IHRoZW9yaWVz X2NpdHk= ICRfXw== Q3JlYXRpbmc= KHBy RHJvcGRvd24= aXNtYXRjaA== IE5FVA== OTI2 J10pKXsK IFZhbHVlcw== IFNFTw== IFNUQVQ= IGVjb3N5c3RlbQ== IHRlbXB0 IFxc IC8vewo= IENocmlzdG9waGVy IEtlbnR1Y2t5 IEh0dHBTZXJ2bGV0UmVzcG9uc2U= IGh5YnJpZA== eW9u IGZlZWRpbmc= IEV4dHJh Tm9ybQ== SVRDSA== IFNlYW4= IFVwbG9hZA== bXVu cHVy IHBlcnNpc3RlbnQ= IElEQw== IFBlcmZvcm0= ODYz Lm1lcmdl X3Jvb20= TWVhbndoaWxl IT0n IFdlbA== QXJnc0NvbnN0cnVjdG9y ODg3 LkRhdGFiYXNl IGNvdW50aW5n KCkq lOWbng== IFRPUA== bWlsbA== IERU SUdORUQ= OTU2 IEtC IGNvbXBseQ== U291dGg= X2NvbGxlY3Rpb24= Q2hhcHRlcg== IGV4cGxhaW5pbmc= X0FN X3Rz Y2FyZHM= IHF1ZWw= IHBvbGU= IHRvdWNoZG93bg== IE90aGVycw== IHBlZXJz IFR5cGVFcnJvcg== NzYz IHNpeHRo IGNoZWVy IGRpc3B1dGU= OTYz ODkz dXNj KV0s dGh1bWI= IGhpZGluZw== IFNJRw== bGlrZXM= IFBBR0U= LlJlZmxlY3Rpb24= IGhlYWRxdWFydGVycw== VElORw== IEdob3N0 TUxF JAo= IGNvbnRyYXJ5 ZXh0ZW5k J10pLg== RkZFQ1Q= IFBpbnRlcmVzdA== w7ptZXJv cmljYW5l CXNlc3Npb24= IGNyeXN0YWw= LUNvbnRyb2w= b3Zlcm5tZW50 b2dyYWY= OTYx LWFjdGlvbg== dm9sdW1l ZnRlbg== IHVuY29u IGFuaW1hdGU= IGxlYXNl c2Ny IHJlZnVzZQ== 44CL ZnRw aW5mb3JtYXRpb24= IGV2YWx1YXRlZA== IGluamVjdGlvbg== IGphY2s= IHdvcmtzaG9w 5rOo UFRI IFRz b2ZmZXI= CW9z IGtpbmdkb20= TWlzc2luZw== IGxhd21ha2Vycw== ZXh0RmllbGQ= IHNpbmdpbmc= YWJp L2NsaWVudA== Lm1lZGlh QVRFR09SWQ== U2lnbmF0dXJl JScsCg== IEZ1Y2s= XVs6 IHNlbnNvcnM= L2NvbQ== IFByaW1hcnk= LlNRTA== X3Byb2dyYW0= IHBpbGxz IGludGVncmFs IGZsZWV0 IGRyb3BwaW5n LnNs QmVlbg== IHBldHM= IGFkdmlzZWQ= IGRyYWdvbg== X0VESVQ= KGlt OTM5 RkVS IERydWc= KHJhbmRvbQ== IGNvbXByZXNzaW9u b3VzdA== WyU= IGJ1eWVy aG9w Um9sZXM= bWFuYWdl IHBhaW5mdWw= IEJyYW5jaA== LW1vZGFs ZW5hbnQ= IE1lc2g= L2ZvbnQ= IEdyYWhhbQ== IOKY IG5j IEZyYW5jaXM= IHNwZWNpZmljYXRpb24= IGRhbWFnZXM= LWNvbmZpZw== IHRoZW9yZXQ= c2VjdXJl X211bHRp YWNldXRpY2Fs IGRlbWFuZGluZw== ZW5uZQ== SVNUUw== MDk0 KCkpKTsKCg== UmVhc29u UmVjZW50 cGhhc2U= IHBzeQ== X01BTg== IHZvbHVudGVlcg== 5b8= aXN0cmlidXRlZA== bGlv IHByb2R1Y3Rpdml0eQ== X2NvbW0= U3ByaW5n bmlz LndlaWdodA== IENhbmNlcg== QWxsb2M= IFR3ZWV0 IHNlcGFyYXRlbHk= CWNoZWNr X3Byb3BlcnRpZXM= LlVuaXQ= ODI5 X0NMSw== IGd0 ICgpOwoK IGhhbmR5 ODM0 IFRob21wc29u IHVubmVjZXNzYXJ5 IFJlYWRlcg== ODk0 R04= PXJlcXVlc3Q= IFV0aWxpdHk= LlJlcG9zaXRvcnk= IEF4 aHlkcg== Nzkx aWV1 IHRoeQ== IGx0 X21haWw= 5L+u5pS5 YWlsYW5k IFBoaWxpcA== IGJpdHRlcg== IGJldHRpbmc= ODM3 IHRpbWVk b2Nrcw== MDc2 J2E= IGFsZ29yaXRobXM= IHJlaW50ZXJwcmV0 IHRvc3M= cm9nZW4= IGhvcGVk KHNlbGVjdGVk IHZlbnR1cmU= VEVY IExlYXZl LlN1YnN0cmluZw== IGdyYXRlZnVs NzQz dWth IENvbnN1bWVy IGFnZ3JlZw== Q2lyY2xl 4LiB X2Jsb2Nrcw== IGxlZ2FsbHk= ICJ8 44OD LmJvYXJk LkFi RnVuY3Rpb25z cmVjaXBl 6Ic= IE94Zm9yZA== IHdob2xlcw== LkJ1aWxk X2NoYW5nZWQ= aGFp IGRlcGFydG1lbnRz OTY0 SW1w IGNvYWxpdGlvbg== SU5GUklOR0VNRU5U IGVtcG93ZXI= aXRjaGVz Tm9ydGg= IGluZmxhbW0= T05TRQ== IG1pc3NpbGU= IFJhag== IElzc3Vl IGF0b2k= Y2FsZWQ= LkNvbnRyb2xsZXJz IFdvbGY= IGNydXNoZXJz 4buH LkF1dGg= LmFkZEF0dHJpYnV0ZQ== aGlz IGJvb3Rz LmNsZWFu Y2FtcA== IHRlbmFudA== IHR1bmU= IHt9Jy4= IHdvcmtvdXQ= UmVwbw== IHBhcnRpYWxseQ== TUlTU0lPTg== amFtaW4= IFNC IGRldGVybWluYXRpb24= ICcnKTsK IEJlbmc= IHZvcw== IGluaGFi L2xhbmc= c2J1cmdo RXhlY3V0b3I= aG9uZQ== IENoYWxsZW5nZQ== X2xpbmtz LkxldmVs IHVuZGVyZ3JvdW5k LWNvZGU= OTU5 IG9wdGltaXphdGlvbg== bG9nZ2luZw== X2Rlc3Q= IHNuYWtl IGNoZW1pY2Fscw== X0lNUE9SVEVE YWRvb3A= IFRIQVQ= bWFuYWdlZA== IHJlZHVjZXM= IFJFQUw= IEd1eQ== X0dFTkVSSUM= LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq LmFtb3VudA== IGRlcmU= Z2V0VGltZQ== IHBhbnQ= YW5vbnltb3Vz IGhhcm1vbnk= IEFsYW4= IHNjZW5hcmlvcw== IGRpcnQ= aHRhZ3M= TWM= U2hlbGw= cmlu ew0KDQo= LnBvdw== CWNsaWVudA== IGNvbnNwaXJhY3k= IGFkbWlzc2lvbg== IFJlZ2lvbmFs IFZpZXdDb250cm9sbGVy IFBoaWxpcHBpbmVz IGRlcG9z IHBhcA== OTYy IFBhZA== UGF1bA== LkNvbWJvQm94 IHR1dG9y IFJlY2lwZQ== d3JpdGluZw== IGNvbnRyaWJ1dG9y T1RI U21hbGw= Vkk= IGhhY2Vy ZXF1 IEV4YW1wbGVz aHVtYW4= Lm1lc3NhZ2Vz CXR5cA== ICgNCg== IFNTTA== TEVO IFJvbW5leQ== KGdyaWQ= CW1pbg== ID4KCg== IGZydWl0cw== IHZvdGVy SW5saW5l cGFuZQ== IENvbGxlY3Rpb25z Y2hhcnNldA== IHNwYW0= emI= aXRlbWFw IHN1Y2NlZWRlZA== X0NPTA== IGVsYXBzZWQ= aW1ldGVy IHJlY292ZXJlZA== VGVuc29y aGF0dGFu LnNldHVw aXN0bw== KGhlYWQ= OTc3 IFNJWkU= IHRhY3RpY3M= IGRpc3R1cg== IHByZXZhbA== aWNpb3M= KFZhbHVl X2NvbHM= IEZhdA== IHNlYWw= IHNvbnM= IGVuc3VyZXM= MDk1 IHByZXNzaW5n PSY= aWdlbm91cw== IGhhcmFzc21lbnQ= X0pTT04= IGlnbm9y eW5vbWlhbA== b21lcg== X3N0YXRpYw== IHNpZ25pZmljYW5jZQ== IGNpcmNsZXM= X1N5c3RlbQ== IGRpc2NpcGxpbmU= IGRyZXNzZWQ= IHNwaGVyZQ== OTI3 IGNsaW1i NzU5 X2FjdGlvbnM= IEJhYg== ICc9Jyw= X3NjaGVtYQ== InVzZQ== IHVuZGVycw== IGN1cHM= LnNjcmVlbg== L25ldw== IGFwcGVhcmluZw== VE9Q dmlzZWQ= Y2xhbmc= IGludmVzdGlnYXRvcnM= IG15c3RlcmlvdXM= IHByb21pc2luZw== IHF1YWxpZnk= IGNhdmU= IGVxdWlw PXg= R1Q= KGxpbms= LnZlbG9jaXR5 LmVyYXNl b3Rlcg== KysrKysrKys= cHJvZml0 IHpvbmVz X3VpZA== LXNlcg== IG9iamVjdGl2ZXM= IG1pbGY= d2Via2l0 KG1hdGNo bmVo IEFzc29jaWF0ZWQ= IFRvZG8= PWQ= MDY1 Q2Ft IHZvY2Fs IHN1ZG8= KEVY IHRyb3U= QUJD LmJlYW4= IEdyb3VuZA== IFJFU1Q= d2VldHM= SW5n aW1vbg== OTQ2 X2J1cw== IENPTE9S dW50bw== IGZvc3M= IExpbmtz ODY5 w6RuZw== L2Zvcm1z cHJpc2Vz IGFjaGlldmVtZW50 Q0FMTA== 0LXQu9GM IFZlcmlmeQ== X1NPVVJDRQ== YXB0Y2hh SURE X3JlZmVyZW5jZQ== R29sZA== ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo= OTQ3 UmVjZWl2ZXI= MDk5 IGFq X2RpcmVjdGlvbg== fV0= IENvbXBldA== IGJhbmc= Nzk4 IENhc3M= LXVybA== dGVjaG4= IEplcnVzYWxlbQ== bG9uZ2l0dWRl Jyk7DQoNCg== IHdpbm5lcnM= VGFza3M= IERNQQ== IHRvb2x0aXA= jrc= IEJyYQ== X2R1cmF0aW9u Y3VyeQ== cGFyZW50cw== LS0tLTwv IHBhc3Nwb3J0 ODQ5 V0M= INC7 Y2Vzc2lvbg== IFllbGxvdw== IGVuY3J5cHRpb24= JwoKCg== IGxpc3Rpbmdz IENvbW11bmljYXRpb25z Ll8K ICIiIg0K IGZi IHN0cmljdGx5 IExpdGVy IEVudGVycHJpc2U= X2JvdHRvbQ== QUtF a2V0 IHRhbQ== QmV0d2Vlbg== X1RPUA== RGlzYWJsZQ== IGZpbGluZw== IENocm9u U0VRVQ== ICZfX18= ODQ2 IGZhbA== IFNMT1Q= RW1iZWQ= dXRoZXI= IFJlc3RhdXJhbnQ= IHJlYWxpc3RpYw== IScpOwo= IERFQUw= IFBlcmlvZA== LmdldFg= IHNlaHI= Il0nKS4= OTQz ZXNzYQ== CW1lbWNweQ== IGFja25vd2xlZGdlZA== c2VuYWw= IFVuaXZlcnNhbA== ICcnOwoK L3dpa2k= aWVubmU= IE5TQXJyYXk= IGFjY2VwdGFuY2U= IGxpdmVy IHRvb3Ro IGFjY3Vz CUxPRw== dmFsdQ== 5YC8 IHNlY3RvcnM= cGVyaW1lbnRhbA== L2NsYXNz X2dv TWljaGFlbA== b2xhdGlsZQ== IFBST0Y= IGNvbXByb20= c3BlY2lhbGNoYXJz IOKc IGlzRXF1YWxUb1N0cmluZw== IEh1bmc= LmFzTGlzdA== L2dv Pj4o IEtpcg== IGludHJvcw== IHNrZXRjaA== IHNraWxsZWQ= IGltbWVy IGFkZXF1YXRl X3JlcA== KGhlYWRlcg== X2xpa2U= IHBlcmNlaXZlZA== c3No IGFzc3VtaW5n IGZm X3V1aWQ= dWxhcw== IGRlbW9jcmF0aWM= LmVudGl0aWVz U2VyaWVz YXBob3Jl IG5ld2Vy fSg= U0VD YWlybw== IGNvbW1vZA== IHByaXZpbGVnZQ== IGRldXg= IEhvcA== Licv Y3RpYw== Lic7Cg== PD89 IFVU ZXRpZXM= X0NPTlRFTlQ= LnJlbGVhc2U= LmRpc21pc3M= IGZj b3VuZ2U= cHdk X3ByZXY= TWdy IEJ1ZmZlcmVkUmVhZGVy d3JpdHRlbg== IEVi ICkKCgo= dWl0bw== IGNvbnRyb3ZlcnN5 IGRpc3Bvc2Vk IGZvdG8= TGlzdFZpZXc= L2NyZWF0ZQ== IENPTA== Y29tbXVuaWM= MDY4 IGZyZWVseQ== dW5hbA== b3ZpZA== CXRy cGFnaW5hdGlvbg== IENvbW1vbnM= RWxlbQ== IFJFTQ== IGNvcnJlbGF0aW9u KCkrIg== IEhpZGU= YW5kaW5n KHZlYw== aXRvcw== IEN1bHQ= IG51dHJpdGlvbg== dmFscw== IGRldGVybWluaW5n bG9yZA== IHNjYW5kYWw= IHNoYWxsb3c= b2Rhc2g= X3NlcmlhbA== IFNsbw== IGRpc3Bvbg== UGxvdA== aWNrbGU= IGVsbA== IHVuZW1wbG95bWVudA== Rk0= cm9ucw== bMSx TW8= RXhpc3Q= SURT Q2hv IEtleWJvYXJk LnBhcnNlcg== LkdldE9iamVjdA== IHNwZWxscw== IGdlc2No IG1hZ25pdHVkZQ== X1NM aXNkaWN0aW9u ICcpOwo= aWxpYW5z IHNoYXI= IFByb2I= dWlsdGlu IHR1bm5lbA== PkM= IFdhcnJlbg== IG9wdGltaXplcg== IFNFUlZJQ0VT X29wZXI= Z2V0QXR0cmlidXRl IE1jSw== X3NlbGY= MDg0 LnJz IikKCgo= R2V0Q29tcG9uZW50 ZXJjZQ== IHRvdXM= dW5pdHM= J10pOw0K Wm9vbQ== L0U= IG9ic2M= IGZhc3Rlc3Q= b25saW5l IHBlYWNlZnVs ZmZlbg== IGNhcmdv CXBy IHNlZWtz enU= MDc0 VHJpbQ== IHdhcmQ= IHZlcmQ= IGJsb2dz LmV4Y2VwdGlvbnM= IFByZW1pdW0= IE5ldGhlcmxhbmRz U2FmZQ== RmluaXNo IEFsYnVt X0FDQw== PXRoaXM= dmlydHVhbA== XT4= X0xBQkVM IE5pY2g= X3dpbg== IEFhcm9u V1A= OyQ= YWltcw== IEltYWdlVmlldw== IGVuZGxlc3M= RVJB X0RJU0FCTEU= IGNhbmNlbGxlZA== LXVz IGluc3BlY3Rpb24= ZW1pbg== IEdyZXk= LW9wZW4= IGl0ZXJhdGlvbnM= Lm93bmVy IGtlcmFz LlBhc3N3b3Jk IFJ5 IElOUw== QWly IFNldmVyYWw= LlRhYlN0b3A= SU5HTEU= IEhhaXI= IENhbnZhcw== QUFBQQ== IGZsYXc= Y2VkZXM= LlJlcG9ydA== 7Yo= IFRpcHM= Y3JpcHRvcnM= LnRyYW5zYWN0aW9u LlNwcmluZw== IHZpZXdlcg== IGluc2lnaHRz 6L6T b3JkaW9u VUlOVA== c2Vlaw== IEF1Zg== 7J6Q IHN0cmFpbg== VG9vbHRpcA== IGR6 aWduYWw= YWR0 IHVj ZmluaXRl IG5t LmNtZA== IE15U3Fs W2RhdGE= LmphY2tzb24= LnRyZWU= UmVxdWVzdFBhcmFt X2FnZW50 IildDQo= IGFzc2Fzcw== KENvbnN0YW50cw== OnNz IE1BTg== Ky0rLQ== IEJvdHRvbQ== cHJpbnRz IFNhbWU= QEF1dG93aXJlZA== c3dhcA== aWNpw7Nu IHByb3Rlc3RlcnM= IGhvbmV5 IFZldGVy KENhbGVuZGFy LWFk IEJyb29rbHlu TGlmZQ== X1ZBUg== emVjaA== IENBTEw= X0NBU1Q= IEVsZWN0aW9u IHRoaWNrbmVzcw== VmVyeQ== X0lOVEVHRVI= LWRldg== KSkpKQ== YXBhdA== b29vbw== ZGVtbw== IHBhcnNlRmxvYXQ= IFJhdGhlcg== U1RJVA== bWFrZXI= W2N1cnJlbnQ= Y2hyb25v IGNocmlzdA== 44Gq IERldGFpbA== xrDhuw== ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHN1bA== aWRlbmN5 UXVl IGVsZWdhbnQ= YXBvbnM= IGRpc2hlcw== IGludGVnZXJz KHJlYWQ= MDU3 ZmluZFZpZXdCeUlk IEFtb3VudA== IFNraXA= IGhhYml0cw== Kiko IG1vbnN0ZXJz TUFD OmVuZA== IGZyYW5r QXNzZW1ibHk= IGRmcw== IG5ldXQ= X1RZUEVT ZXF1YWw= bG95ZA== KHVyaQ== IGNoaQ== IGRlZmVuZGFudA== IGNvbmZsaWN0cw== IHZpbA== LWpz IFBlYWNl IG11dGFibGU= KXNlbmRlcg== IEZvY3Vz 5bu6 IGFwcHJlY2lhdGVk c2xlZXA= IFJFRA== Q3VsdHVyZQ== IGRlc2lnbmVycw== X2dlbmVyYXRvcg== Y29kZXM= L2V4 LkdldFZhbHVl dW1ibGVk LnNjYWxhanM= cGVyb3I= IHZldGVyYW5z IH0pDQo= IHVuZm9ydHVuYXRlbHk= X0NSRUFURQ== TWFzcw== IENMQUlN IE1lZXQ= X3N1cHBvcnQ= QmFuaw== KCkuCg== RGFyaw== X0xPVw== IE1pbmluZw== IE93bmVy aWVyYQ== Q2xpZW50ZQ== IGVuY291cmFnaW5n PlM= IGJveWZyaWVuZA== IEhhbGY= IEFDQw== QWZm X2Fy LWxpZmU= Y3g= LkpCdXR0b24= aXphZG8= Lnplcm8= Lm9wZW5xYQ== b3Rvbg== LnRleHRDb250ZW50 IHRvbGw= YXRpZQ== IGJhbGxvdA== LW51bWJlcg== LkV4Y2VwdGlvbg== CXBhcmFtcw== Y2lyY2xl LW1hcA== IG5hcA== IFJvYm90 IEljaA== cmVnaXN0cmF0aW9u QW1hem9u cm9sbG1lbnQ= KGV4cA== IHRhbmtz IEdvcmRvbg== IG1hY2hpbmVyeQ== IGJhc2VsaW5l 5os= MDg2 2Kk= IENvbnZlbnRpb24= CWNvbmZpZw== b29raWVz bXVsdA== UmVjb3Jkcw== IEVTVA== IGdhcmJhZ2U= IGNvbmZvcm0= aWRhbA== IGJhcmc= IHN1cnZpdmVk IGludmVzdGlnYXRpb25z OTM1 LmNvbnRhaW5zS2V5 LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K b3J0aW9u IGhvcnI= X2h0dHA= IG1hbnQ= XTsNCg0K YmluYXJ5 OTQ4 ZW1wbA== IGlucXVpcnk= IE1lYW53aGlsZQ== MDk4 IGNvbGxlY3Rpbmc= LkVudGl0eUZyYW1ld29yaw== IiwKCg== IFBpYw== QEluamVjdA== aWNrbmVzcw== IEJpbmRpbmc= IGNvbnRyb2xsaW5n cmV2ZXJzZQ== IGNoYWlycw== c2VtYmxlZA== KGFkZA== RGlzYWJsZWQ= YW5hcw== LnRyYW5zbGF0ZQ== LS0tLS0tLS0tLS0K IHJlZmxlY3RlZA== Il0KCg== RXh0ZXJuYWw= QXJyb3c= U2luZ2xldG9u JXg= IMU= IGFuY2VzdA== IE9ybGVhbnM= CWNtZA== IHByb2hpYml0ZWQ= aXRobWV0aWM= KGNoYW5uZWw= X2Nzcw== Rm9yd2FyZA== LnNvY2tldA== IGx1Yw== 4oY= IEZpcmVmb3g= IE1vdmllcw== KV8= LmVuZHM= KHNoYXBl IGRlYWx0 IHNhdmVz IGdsb3J5 IG1lam9y IGJyZWF0aGluZw== IGVsbGVy Z2V0RGF0YQ== IGFuZ2xlcw== IHRvb2xiYXI= IHNwYWNpbmc= MDU5 SVBT IGZsb29ycw== X0FDVElWRQ== IHNodWZmbGU= L3NoYXJlZA== IEVsZQ== ZWRpc2g= IHdlYmNhbQ== LmV4cGVjdA== aWxvYw== IEluY2x1ZGVz IHR3ZWV0ZWQ= IDop IEVzc2F5 Rml4 LWJldHdlZW4= X3dlYg== LmNvbnY= IHJhY2lzbQ== IHJlZmxlY3Rz dW1t 0LjRgtC1 X2Zvb3Rlcg== L2RvY3M= IFBvdXI= TmdNb2R1bGU= LmluaXRpYWxpemU= cGF0dGVybnM= X0lu IEFiYg== Kg0K IHNlbnRpbWVudA== YnVmZg== X2NvdW50cw== IHJldXNl Y2h1bms= IGltcG9zZWQ= UHJpbWFyeUtleQ== Rm9yZWdyb3VuZA== IGNvbnN1bWVk PyE= IGRpY2s= IGNocm9u IEZlcm4= IHJlc3BvbnNpdmU= OTU4 IGluc2VjdA== aWN1bHR5 IHJ3 IGFsaWtl IHN1YnNldA== IENvb2tpZXM= IFBhaXI= IHRpZXI= SUZP YXZvdXI= IFFV LHNpemVvZg== IG1lcmdlZA== bXY= aXRvbA== eWxvbg== IGp1bXBlZA== LnJvbGU= ZW5zYWpl UnVsZXM= IGJyb3dzZQ== QW5pbWF0b3I= IHlvZ2E= IHZhcmlhbnRz IGNvdXJ0ZXN5 dXJhbg== cGJz ZWxzZWlm QWx0 IExhbmU= Q0xL SU1BUlk= X1BST1BFUlRZ 77yQ IGNoYW4= IGdyYWR1YWxseQ== IHNoYWtl IGJsb25kZQ== Li4uIik7Cg== LXNleA== IGdhbWVwbGF5 YWNpZXM= LnJlZnJlc2g= VVNC IFBsb3Q= V2Fz aXNzaXBwaQ== IFRlbnNvcg== IGNyeXB0b2N1cnJlbmN5 IGRpZmZpY3VsdGllcw== RGVsZXRlZA== V2l0aG91dA== X2FwcGVuZA== X3Zlcg== OTY3 IikpDQo= IGhvbmVzdGx5 IHBpdm90 IHRlbXBz X3Bz IFVubGlrZQ== Wzot VlM= X2luZg== IGp1bmlvcg== IGFuaW1hdGlvbnM= IGZpbGVwYXRo Pzwv W1w= IG9wZXJhdGVz X3JlZA== IEJvb3RzdHJhcA== bGVhZA== ZWZmZWN0 wr0= IFN0ZXI= IEJ1Y2s= ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGRlcHV0eQ== VGhhbg== 4bq/ T05FTlQ= IEhlYXQ= ZXRoZWxlc3M= XSl7Cg== IGtvc3Rlbmxvcw== KCk7Ly8= IGRlcGxveWVk Pnt7JA== IHVuaWNvZGU= cGxhY2Vz IENvZmZlZQ== LlNF IFBBUg== KHR4dA== Z2VicmE= IGZpcmVz TWFpbldpbmRvdw== bWVkaXVt ICjigJw= IGxn IGNtcA== L2Jhc2U= X2xheWVycw== X2VudHJpZXM= IGFkbWluaXN0ZXI= IFNVQ0g= QlA= IFNjb3R0aXNo CQ0KCQ0K Z3VhcmQ= IFN0cm9uZw== SW5zbg== IENBUA== YXN1cnk= IFNFRQ== Q2xvY2s= ZXJpZQ== XG1vZGVscw== ICQk IENhYg== IHd1cmRl IHNvbGRpZXI= IGNsaXBz IGFycmFuZ2VtZW50 IFdvbmRlcg== IEhvcm4= IHNjYXJlZA== IGN1cmU= bWtkaXI= IGFsaWduZWQ= IFBpbms= IGxhbmRlZA== RGltZW5zaW9u U2Nyb2xsUGFuZQ== LmNoYXQ= LldpdGg= IFRyYWlu XS4K IHRoaXJ0eQ== IGR1cmFibGU= IGxk IGxhdGVpbml0 IGNoYXJ0cw== IGluc3VsdA== LkZhdGFs X2N0 IG1hc2tz Q0xVREVE UHJlc2lkZW50 IGNvbG91cnM= Z21lbnRz LmF0dHJpYnV0ZXM= IEZsZXg= IENsb2Nr w61jdWw= aW1lbg== Sk8= IFJlZ2V4 X0xJTks= IGNvdWNo IElOUFVU IGJlYXRpbmc= YnVzaW5lc3M= cHJlY2Vk LnVuaXQ= IEZlbA== TmV2ZXI= b3NwZWw= LnN0YXJ0c3dpdGg= IEVQQQ== Lm9ubHk= IHByZXZlbnRpbmc= eWVy Q29sdW1uTmFtZQ== IGVsZXZhdGlvbg== Zmx1 aWN5Y2xl IG9mZmxpbmU= VG9vbGJhcg== IGNvbXBldGluZw== KV0u IG1vZw== IGlzVmFsaWQ= QXNr X2F2 X2xhdA== QU5D IEpvaA== a2Vycw== IGd1YXJkcw== IGNoYWlucw== IFNpbXBsZURhdGVGb3JtYXQ= LnN0YXRpYw== IHZlc3NlbA== IG11ZA== IHN0YWJpbA== IHN0cmV0 Z20= YW1hdGlvbg== 55w= LXdpdGg= IHJvcw== X1BB IHJlc3VsdGFkbw== IGNvbmZpZGVudGlhbA== IFRva3lv CXVzaW5n IE1hdGhm b21iaW5l IEVTUE4= IGRlYWxlcnM= IGRpc21pc3NlZA== VFJZ IHRlZW5z cmVjb3Jkcw== IHdpbmdz Z2FsbGVyeQ== YWNjb3VudHM= X0xJQg== IGphY2tldA== IE5TT2JqZWN0 IHN0b25lcw== IERlbGl2ZXJ5 IERpZXQ= L3dhdGNo IHRvaWxldA== IEd1ZXN0 LmRheQ== MDY3 IGludHZhbA== MDg3 VmlzaXQ= IGludmVzdGlnYXRlZA== IHBlbnRydQ== IFRoZWF0cmU= YW5kaWRhdGVz TGFuZw== IFNlcnY= IGNvbnRyb2xsZXJz IHNldFRpdGxl TlA= YW15 ZmxhdA== KHVp MDY5 X2RvY3VtZW50 6IO9 IENvaW4= IEFkYW1z cHRpYw== IHByb2R1Y3RpdmU= IGFjY29tcGxpc2hlZA== DQoNCg0KDQo= IGRlZmVycmVk aWVudGVz IHNpbmM= b2xhcnM= UmlnaHRhcnJvdw== IHZhcmlhdGlvbnM= KG9mZnNldA== OTU3 LkxheW91dEluZmxhdGVy IHN1c3BlbmQ= IHByZXZlbnRpb24= X3ByaXZhdGU= X2pz 4piF IHdpZWRlcg== YXR1bQ== kow= IGFwcGVhcmFuY2Vz LkRvY3VtZW50 IHZhbGlkYXRlcw== Y2FsZW5kYXI= fSI7Cg== LmRlbW8= Y29udXQ= IGNvcnJlY3Rpb24= IERlYWw= IGJhdHRlcmllcw== LmR1cmF0aW9u LFw= X21hcmtlcg== bXVsdGk= IGhhbHQ= IGNtcw== IHNoYXBlZA== QnJv cmVkdWNl ICMjIyM= Q1RPUg== IEJlbmVm IGljb25pYw== IHBpYW5v IGVmZmVjdGl2ZW5lc3M= fC4K IGFqYXg= IHZvbHVtZXM= 4Lih IGNsanM= ICAgICAgICAgICAgICAK YXRocw== cmFpdHM= 5aSn 0ZY= X211bHQ= IGZhc2NpbmF0aW5n QXZlcmFnZQ== IHByw6k= IENoYWlybWFu LmZpbmRFbGVtZW50 X3Bpbg== IGNvbXBhcmluZw== IGRhcmtuZXNz LUZp LXNlcnZlcg== IHNlbGVjdGluZw== c3RlcmRhbQ== IFBhcnRz Rk9STUFUSU9O IG5vdGluZw== IHBpbGU= b2dz IHBhbGV0dGU= X2Rv aXRpemU= MDc5 KCko IGRlZmluaW5n IHJlbWFpbmRlcg== VW5pdHM= X1RBU0s= SHR0cENsaWVudA== U29jaWFs IGZ1bmRyYQ== TlI= Y2hlc3Q= Q3VycmVuY3k= LmFkYXB0ZXI= IGRvcA== dW50aW5n QU5HVUFHRQ== Ikhl CWluZGV4 X3BhY2thZ2U= Lkljb24= IHJlcGV0 bWFzcw== PSIuJA== IFN1ZA== IGxpZA== cHJvdmluY2U= 7Jw= R1BJTw== 0Jo= IE15U1FM IGRvY3M= IEdB IGlwc3Vt S2VybmVs IGFjY2VwdHM= IGZpdHRpbmc= IGN1YW5kbw== IGR1cGxpYw== IEJyb3RoZXI= IEtsZQ== bnVtcw== IG1vcnBo ICMjIyMjIyMj IENHUG9pbnQ= PHVuc2lnbmVk 5L6L IER1a2U= LnNldEJvdW5kcw== cXM= b3JpYw== amVy IHJlZ2FyZGVk SHR0cFJlcXVlc3Q= IGJvbmRz IHRob3JvdWdobHk= ZW5jZW50 IGhpZ2hsaWdodGVk IGFjcmVz IHdvcmtwbGFjZQ== IEx1eA== IHF1b3Q= OTg2 LmluZmxhdGU= IGRvY3VtZW50ZWQ= IGFkZGljdGlvbg== IG11dGF0aW9u LmNpdHk= IGJvdHRsZXM= IFJlcG9zaXRvcnk= b25u ZXJybm8= QVJJQUJMRQ== 5bqm X0JFR0lO Z2xhcw== J30pCg== IE1hc3NhZ2U= IFdoaXQ= cmVnZXg= V0E= IG91dGxldA== LWhlYWQ= IGV4cGlyZWQ= IFRoYWk= L2luY2x1ZGU= Z3JhZGllbnQ= c2NhbmY= IHNlYW0= d2Fs CWJ1Zg== QmVhcmVy IHByZWNpb3Vz aWZhY3Rz Y29vcmQ= IGV4cGxvcmF0aW9u LmdldFk= KGhhbmRsZQ== VG9waWM= IFZlbnQ= cmhz LS0tLS0tCg== IEJyaWdodA== IGd1aWxk bW90aGVy c3Rvcm0= IG11bmljaXBhbA== IGluaw== LlRZUEU= d2w= Li4uPC8= X0RFVg== PSIuLw== X2Jvb2s= dGh5 aXR6ZXJsYW5k b3BsZXM= dHJhY3Rpb24= IENhbWVyb24= IEFuZHJl LnJlc3VsdHM= IGNocm9tZQ== IHNlY3VyZWQ= IHN1cmZhY2Vz KTw= IHRvYmFjY28= CXNwcmludGY= IGVzY2Fs IHN0ZGVycg== IE1lbGJvdXJuZQ== IGRpc3RyaWN0cw== IG1hdHQ= b2hlbg== IGRhdGFHcmlkVmlld0NlbGxTdHlsZQ== KE1vZGVs IHNlbnNpdGl2aXR5 S0E= dHJhbnNwb3J0 LmdldERhdGU= IHN1YnRsZQ== VUdJTg== Lm1vdXNl IGFsdGVybmF0aXZlcw== IGVsbGU= Y29yYXRpb24= cmVhdGlvbg== 5ps= X05PUk1BTA== RGlzcGxheU5hbWU= IGZhbmN5 SVNFRA== TU9E LlJlYWRPbmx5 IFVi IEN1 aWNvbA== IE5lbHNvbg== IENPUg== YW56YQ== IFNwYXJr ICJcXA== LS0KCg== d29vY29tbWVyY2U= IHJlbWVtYmVyZWQ= dmVyaXR5 IEV4dGVuc2lvbg== IFBE IHNlYXJjaGVz LnNv IEZvb3Rlcg== ID0n IFdBUk5JTkc= LWxv CXRhYmxl IGRyYXdlcg== cGljdHVyZQ== IEZhbnRhc3k= c3Rvcnk= IG3Dqm1l IwoK X3NsaWNl b2x0YWdl SGFy L3k= IEVS ZGll IFBPUw== LmFjdGlvbnM= KE1haW4= ZXdhcnQ= YXBldXQ= IFNURQ== aWRkaW5n LnJlYWRMaW5l IHNlYXJjaGVk V2Vk LmZpZ3VyZQ== dWdodGVycw== KCkuX18= IG9yYml0 c2hpcHBpbmc= IGZyaWVuZHNoaXA= IFNoaWZ0 LW9y cXVv V0hFUkU= IEVzcA== LmZvcndhcmQ= b2ZmaWNl IGnDpw== IENoZWxzZWE= SXRlbVNlbGVjdGVk YWNoZXJz ZGVsZXRlZA== cm91cw== ICItIg== IEdyYW4= IPCfmA== LXBvd2Vy ZXR0YQ== IHJlbWluZGVy ZW5zb3Jz IEFsbG93 xJlk X3RlYW0= IGNyb3du dGlja2V0 IGNvbGxlY3Rpb25WaWV3 bGFjZQ== IGZpeGVz IEh1Yg== Y2F0YWxvZw== IElkZW50aXR5 IGV4Y2Vzc2l2ZQ== IE5hdmlnYXRvcg== X0JS LXBsYXk= IENhbXBhaWdu ICAgICAgICAgICAgICAgCg== YXNpdmU= IHdj IEJlaWppbmc= L3d3dw== IG1ha2V1cA== IGRpc3RhbmNlcw== IHNhdGlzZnk= Q09ORA== IHdvdW5k KCld IHZpb2xhdGlvbnM= IHN0YXlz LyM= aWxpbmU= XEV4Y2VwdGlvbg== IE1vdGlvbg== IGhlYWw= X3BsYW4= cmFzZXM= KG1haW4= QXBwbGU= IGNvbXBsZXRpbmc= IGRldGVybWluZXM= U2Nhbg== IHN0ZWFs IFNvYw== QW5hbHlzaXM= IGZhdm9yaXRlcw== IGNhbXBv b25lcg== IEZsaWdodA== Li4uCgoKCg== KSkpKSk7Cg== LWNvdW50 IHB3 QXNTdHJpbmc= IHNleHVhbGx5 Rmlyc3ROYW1l IEVzY29ydA== Y2FsYw== IFdpa2lwZWRpYQ== IGRvY2tlcg== IFN3ZWV0 J2lk SW50bw== IEh1bnQ= LmVxdWFsVG8= IGxhYm9yYXRvcnk= IEJVU0lORVNT RmlsZURpYWxvZw== VHJlZU5vZGU= LkVuYw== IE1heGltdW0= IG1vdGhlcnM= 5rU= IGZyYWN0 LnN0YXJ0c1dpdGg= IGhhcmRjb3Jl Lm9i 5aeL ID48Lw== X3Jv KCgq Pz8/Pw== X3ZlcnRleA== a2VpdA== IEhhbGxvd2Vlbg== VEk= IFZh X2Nhcg== PSJ7eyQ= IHJhbmRvbWx5 0LDQvdC40LU= IHNob2NrZWQ= IFBva8OpbW9u c2lnbmFs IFNESw== bWlkZGxld2FyZQ== IHRyZWF0aW5n IGJ1cm5lZA== RGVwYXJ0bWVudA== IFNwZWN0 IGNsaWVudGU= IFJlZGRpdA== X2F2Zw== IGluc3RhbGxpbmc= X2FscGhh LGRhdGE= IHNldElk IExpc3RWaWV3 KHByb3BlcnR5 IGNyb3NzaW5n IE9iag== IFdhcmQ= IFJlZGlyZWN0VG8= IFByZXNlbnQ= IGRyYXdz Y2hlZHVsZWQ= IGxlZ2lzbGF0aXZl IHR3aXN0 IFN0cmE= IEFGUA== IENoYXA= LXBy OkNHUmVjdA== IGNlcw== Um91dGVz bm9m IHZpc2E= IFRDUA== IEVWRU4= aXZpYWw= IExldHRlcg== UkFZ IGltcGxvZGU= LmVx PScr IG1vdGl2YXRlZA== LnZpc2libGU= LnNob3J0 Pm1hbnVhbA== IFRlY2huaWNhbA== IGNvcnBvcmF0aW9u IEhX YW5rYQ== VEFJTA== aXN0YXM= IHBlcmZvcm1z IEJlaGF2aW9y LkZvcg== X09SREVS IEtpY2s= IGNhbGxiYWNrcw== X2Ry dWVnbw== aHVi dWZmaWNpZW50 c2t5 IGJw aHRhYmxl IE9OTFk= IEFVVEhPUlM= LkFyZ3VtZW50 In07Cg== IFRodW5kZXI= IEtvbQ== LlNob3VsZA== QVVUSA== YWh1 X3BheW1lbnQ= IHN0YXJ0ZXI= 7ISc 7Jqp QmxvZw== LnBhdGNo IGdvdmVybmVk YXNzeQ== LWZvdW5k IHRoZWF0ZXI= IEZvbnRXZWlnaHQ= IEJhdG1hbg== Iklm LlJhbmRvbQ== X2RlbHRh IENF QXV0aGVudGljYXRlZA== IGRyb25l IGNvdXM= cmFkaXVz TWVy KE5vbmU= IE5K X2hlYWRlcnM= IGFtZXI= cHl0ZXN0 IEFjdGlvbnM= CQkJICAgIA== IGV0dA== IGhvbHk= IHVuY29tZm9ydA== IE5pbg== IERlY2ltYWw= IE1lc3NhZ2Vz LnNlbmRlcg== XV0pCg== IGVtYnJhY2U= VGhvdWdo L3Nw IGN1bHR1cmVz IGhpZ2h3YXk= dGFy LmZhaWw= X2hpZGRlbg== IGNvbXBvbmVudERpZE1vdW50 IFdyaWdodA== IGphZw== X2ls Li4vLi4vLi4v aWd1 Rm9vZA== IGFjZQ== IGHDsW9z VVNE IG11dHVhbA== TG9naWM= IHRlbXBsZQ== IGJyaWVmbHk= IFRyaXA= Y2xhc3NtZXRob2Q= ZGVmYXVsdHM= IGNodW5rcw== LCwsLA== IFJlYXNvbg== JGlk LXVwcw== IGRhbW4= IHRydWNrcw== IHVubGltaXRlZA== IHNjdWxwdA== IENhcmRz IGF1dG9y IFRlc3Rpbmc= IGRpZXNl c2hvcHM= 57Q= KHBheWxvYWQ= IFBBVEg= IE1lbW9yaWFs IHJpZGljdWxvdXM= ZWdyZWU= LXdpbm5pbmc= IHJlaGFi IHNvcGhpc3RpY2F0ZWQ= d3BkYg== CXBhdGg= ISI7Cg== X1NZUw== LnNwZWVk IHNvYXA= c3VmZml4 V3JhcA== IGVuaGFuY2VtZW50 w4k= w7pi IHBsYXlsaXN0 IG1peGluZw== YW50aWRhZA== PSIiOwo= IFJldmlzaW9u IEJlYXQ= LmluYw== LXdheQ== ZW5jaWFz dWxlcnM= Q2F0 aWRlbA== IFNoaXA= LnNldENvbG9y IHRocmVhdGVuaW5n Lm1vZHVsZXM= IGFmdGVyd2FyZHM= IERhc2hib2FyZA== CiAK U2lnbmFs IHByaW1lcg== b3JuZXlz aWNpYXJ5 IGxpZ25l X3ByZWRpY3Q= IGFlc3Q= X2h0dHBz Pjo= IExleA== IHJlbmNvbnRyZXM= ZWdyYWw= c2NhbGE= X2ZhbWlseQ== w59lbg== X3N5bQ== IHVuY2VydGFpbnR5 IFZBTFVF IH07DQoNCg== IGJyb2FkZXI= IGhvcnNlcw== 44Gd IEthbA== b2Jh X0lORVQ= IEtpbGw= anF1ZXJ5 YW1pbmF0aW9u W0Ai IG11ag== IyMjCg== Rmlyc3RPckRlZmF1bHQ= dGhlblJldHVybg== Q2hl L2Zvb3Rlcg== IHBhcmtz YXNqZQ== IEd1bGY= IG1vZGVzdA== LkluaXQ= 77yfCgo= IHByb3NwZWN0cw== IHN2Zw== IOWP LkRpYWxvZw== X05FVA== ICgoJA== IGVr IFdhcm5pbmc= IE1L PExN ICcNCg== aWVt aGV0aWM= IGl4 dGhpbms= LXNoYWRvdw== IEVsZA== IE5ldmFkYQ== IExlYWY= IEdST1VQ IHByb21v ZW50aW5l CU1hcA== IE1vZGVscw== IEtyaXN0 X2tlcm5lbA== LW1hZGU= IGNlcnI= QXNzZXRz ZWxsYXI= IGludm9rZWQ= LnZ1ZQ== IGN1bHRpdg== Q2xvc2Vk IGdlbmVyYXRlcw== ZmZmZmZm dGhlc2l6ZQ== c3FydA== IENhc3RsZQ== LmNhcg== IGtlZW4= dW5kYQ== IENyb3c= IFNpbmdo eXRob24= IGJlYW5z bGFyZw== 5paH5Lu2 QXdlc29tZQ== dW5jYXRl UGF0aHM= b2pp KGN1cnI= Q09ORFM= IG1pbQ== IHNob3VsZGVycw== SGFyZA== YXN0ZXM= 0LDQtdGC IGNvbnZpbmNl ZGVjZXNz bWFkZQ== IENNRA== Lklt IGNoYW9z ZW5zaXZlbHk= IGNvb2xpbmc= IGJ1cmllZA== KCdA X1Nl CQkJCQkJCQkJCQkJCQkJCQ== LmNvbXBhbnk= LnN1Ym1pdA== cGhhbnQ= IGJvb3RzdHJhcA== X2hlbHA= 4Kc= LmR1bXA= IGRpZmVy X21hcHBpbmc= IGNpcmN1bGFy IGVzY29ydHM= IGJlcmU= IGdyYWR1 IExlZ2VuZA== aW1lZGlh IEJhcmNlbG9uYQ== IGJlZHM= 5Yiw 44CK X3ZvbHVtZQ== IHRyZW1lbmRvdXM= IHNjYWxpbmc= IHBpbnM= ZW5hcw== dHlwZXBhcmFt RGFzaGJvYXJk cmVuZGVyZXI= IHNwaQ== ICYk IFNraW4= YWxtYXJ0 IGhvY2tleQ== ICciLiQ= IGVycm5v IGJldw== Rm9sbG93aW5n Lk1vZHVsZQ== ZXJhYmxl IE1pbGl0YXJ5 IFJpbw== X2F2YWlsYWJsZQ== IFN1cmZhY2U= IHN0YWI= SUZJRVI= IExJU1Q= IGRhc2hib2FyZA== IGNsdXN0ZXJz LnBsdWdpbg== IGpvdQ== IERlY29y Rm91cg== IGRlbGxl KioqKioqLwo= aWF6 aW5kZQ== Y2hpbmc= IGdldEl0ZW0= LkFkZHJlc3M= bWVudGVk QW1lcmlj UGxhaW4= IHVzYg== IFByYWN0aWNl X21lbnQ= LmJsdWU= SGludA== 0YDQsNCy IGNvbm5lY3Rvcg== IGluaGVyaXRlZA== 0LjQsg== IGludGVydmFscw== IGNlcmU= IHVk IGluY29u LkV4aXN0cw== IE1pYw== Rks= KGNhcmQ= LlNldHRpbmdz IGV4aGliaXRpb24= IG9uUHJlc3NlZA== IHJlc3RvcmVk ZW5ndQ== LmRlZg== IHJlY3Y= LiIpOw0K ZW5jb2Rlcg== YXRoZXJpbmU= KGRlc3Q= YXplZA== I2VuZHJlZ2lvbg== c2VtYmw= LE0= b2J5 INC/0LXRgA== LkNhbGw= IGF0dGVuZGFuY2U= LWJvcmRlcg== IGFkZHJlc3Npbmc= w6pu IExldg== IGJhc2g= YmVuY2g= Q3JlZGVudGlhbHM= U3BhY2luZw== KG9m X1JFU0VU aWd1b3Vz IGNydWVs IGNyb3NzZWQ= IGxldXI= IEdvbGY= b3JyZWN0 IHBhY2tldHM= IERhdGFTZXQ= IHBhcnRseQ== U0VRVUVOVElBTA== IGluZGljYXRpb24= IFNhbHQ= YWNpYQ== ICopOwo= CWluZm8= IFZpZXdCYWc= b256 IGVkaXRvcmlhbA== IEFyZW5h IHNpcg== X1N0YXRpYw== KHNvY2tldA== c3U= Y2hvb3Nl Lm1vbnRo Lk15 MDk2 w6lyaQ== O2ZvbnQ= ZG9lcw== IGNvbnZlcnRlcg== IHNhbHY= IGxy IGluZmx1ZW5jZWQ= KGZlYXR1cmU= IFF1ZWVucw== bGV0dA== X01PTg== JmFtcA== VG91Y2hhYmxlT3BhY2l0eQ== T0ZG IG1ldGFib2w= KGl0ZXI= IHZpdGFtaW4= IElORElSRUNU YXV0b20= X3B1YmxpYw== IGFkanVzdG1lbnQ= IHNwZWNpYWxpemVk d2luZG93cw== LmFkZEFsbA== IGFjY29yZGluZ2x5 IEpPcHRpb25QYW5l IGNlbGxzcGFjaW5n IHF1YWQ= IGNyZWVw IG91dGxldHM= fWApCg== IHByaWVzdA== X1RIUkVBRA== IE1hcng= IEJ5VmFs IGN1YWw= 6Z2i IHRlbXBvcmFyaWx5 QW5u a2VsZXRvbg== 5aU= IExPQw== YXVlcg== ZGVyaXZl IGJlaGF2aW9ycw== YXNlbmFtZQ== IENlbnR1cnk= IGhvcnJpYmxl TUVTUw== X0xpc3Q= d2Vp UGF0 IENob2ljZQ== X0ZST00= CWxpbmU= Lmludm9rZQ== LkJvdHRvbQ== IG5vd2hlcmU= LiIKCgoK X2V4cG9ydA== IHN0cnVnZ2xlZA== LkFwcGVhcmFuY2U= IEpCdXR0b24= IEplcmVteQ== KFtb IGtpY2tlZA== bWFyc2hhbA== c3RhZmY= ZXNpdHk= IHF1aXo= X2VmZmVjdA== IH0pKTsKCg== bWVs YmFubmVy IFBJTg== IGludmVudGlvbg== IGNvbnNvbGlk IG9wcw== IEJldHdlZW4= amFjaw== ZXJuYXRpb25hbA== IHNhY3JpZmljZQ== YWdhdGlvbg== IEpveQ== IGFtZW5kbWVudA== IFNvbGQ= IHByaXNvbmVycw== 0LDQvdC90Ys= RG9jdW1lbnRz KV0pCg== dXN0ZWQ= IExpbmVhckxheW91dA== b3Nv X0VN LnNlbGY= Lk1pZGRsZQ== KS8v IFwn IGZ1Y2tlZA== IE11cnJheQ== IHByb2ZvdW5k X0VMRU1FTlQ= dWx0YQ== aWxlcnM= cG9ydGZvbGlv SnVuZQ== dGNw bW9kaWZpZWQ= IFRyYWNl IEtlbA== YWx5emVy KT0+ IFJlcGFpcg== X0JF QnJhbmQ= dWFydA== cHJldmlldw== IGluaXRpYXRpdmVz cnVubmluZw== YmFuZw== CXVwZGF0ZQ== IENvYWNo UmljaA== IHlvdXR1YmU= IHJpdHVhbA== YXBwYQ== IFJvYmluc29u cHJlY2lzaW9u Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLw== PVtdCg== IGNlbGVicmF0ZWQ= T1RP IGluY2x1c2lvbg== SlA= JzsNCg0K IG5vdGFibGU= KF8u TWFuYWdlZA== IGd1aWRlcw== Jm5ic3A= YXRlZFJvdXRl IEFkanVzdA== IGNvbG9yZWQ= X3Njb3Jlcw== IFRlc2xh X3Byb2dyZXNz Lmluc3Q= Wydf LmZsYWdz IGZjbG9zZQ== X09QRVI= xbx5 X25vdGU= IHRyYW5zZ2VuZGVy 5ZU= UklQVA== IGFic2VudA== IGFtZXQ= IG9wZXJhbmQ= 66k= IGhvb2Q= dG9Mb3dlckNhc2U= YXZv IENpcmN1aXQ= IExpbmQ= LS19fQo= PW0= IHN1cHByZXNz IE1BUA== aWFuZw== LWFkbWlu IHNpZGViYXI= IEJ1 IEhleA== LEY= IFNpZ25hbA== IHRyYW5zcGFyZW5jeQ== IEZlZGVyYXRpb24= L1Y= UmVx IHB1bHNl IHRlbmRz TnVtYmVycw== JSc= IGRlcG9ydA== ZGF0YXM= X1VJTlQ= X3RyYQ== b2tv ICI/ Y29tcGV0 c29sZXRl dW5kcnk= IG92ZXJsYXA= fWAsCg== Lmx5 X3N1bW1hcnk= IExvc3Q= LkNlbnRlcg== IGRpc2FiaWxpdHk= LlNlcmlhbGl6YXRpb24= IGdlb20= ID86 IFdv IHNoaXBwZWQ= guaVsA== IHVnbHk= IGV4Y2l0ZW1lbnQ= IGV4dGVyaW9y IGNoZWNrb3V0 IGt1cg== LEQ= IEFsYXNrYQ== IHN5bnRoZXRpYw== IEJ1ZGdldA== IFN1YnNjcmliZQ== ICYK yJlp IFl1 CXF1ZXJ5 fS4K IHRyYWdlZA== YXNzZW4= IGFjY29tbW9kYXRpb24= IHBoeXNpY2lhbg== IHJlbmFtZWQ= IHRpZGFr esSF IG1pbnVz bnljaA== MDk3 X0VYQ0VQVElPTg== dGhyZWFkcw== IHRpcmU= X2NyZWF0ZWQ= ZW5zdXJl IHdvcnRoeQ== IGV4Y3VzZQ== IGNsb3Ro LnBhcmVudE5vZGU= L3BsYXRmb3Jt IFVGQw== IEd0aw== dW5ueQ== IGdpYnQ= a2VsZXk= aHVt KHR4 CWRldg== IG91dGZpdA== ZG9vcnM= IGZvbg== aWN1dA== dm9sYXRpbGU= IGhvbW9zZXg= TWF4aW11bQ== IGV4cGVuZA== IH0pOwoKCg== RXE= b25kZXJz ZGVwYXJ0bWVudA== IFBoeXNpY3M= In0pOwo= IHBhcmFk LlN0cg== IHNlbGU= SUZJRUQ= IGRlbGl2ZXJz aXZhbg== IHJlc3BvbnNpYmlsaXRpZXM= IGFkdm9jYXRlcw== 6LU= IFJJRA== LnBhcmFtZXRlcnM= TWV0cmljcw== cm9uaWNz IFVJVGFibGVWaWV3Q2VsbA== QWJzb2x1dGU= aXBzZQ== eWx1bQ== TUxFbGVtZW50 X1ZBTElE PHRpdGxl RGxn cGFjZXM= IHN5bmRyb21l YmVhbnM= X2RhdGFiYXNl b3ppbGxh IE1lZw== REJH IGx1Yg== QmFnQ29uc3RyYWludHM= YWJhZA== IHByb2plY3RlZA== X0JZVEU= LlNpemVG c3RyZWV0 CgoKCgoKCgoKCg== IExPU1M= IGRpcmVjdG9ycw== L25ld3M= IG51cnNpbmc= IERvbmU= LkhUVFA= ZGlzY291bnQ= IFJvdA== VG9NYW55 IGVuYWJsaW5n IGF1c3Np b3N0YQ== ICAgICAgICAgICAgICAgIA0K 6L29 IGhlbGljb3B0 IEluc2lkZQ== 5L+h5oGv aXNwZXI= IEFsbGFo QVJDSEFS IHJvbGxz Q29tcGFyZQ== WFA= SW5kZXhPZg== U1VN IGFzc3VyZWQ= IFBoeXNpY2Fs RW5kcG9pbnQ= Lkdsb2JhbA== LmRldGFpbA== IHRoZWZ0 Lmp1cGl0ZXI= IGh1bW9y LlJlbmRlcg== QWxleA== LmNhcA== IGJ1ZmZlcnM= IGRpc3Bvc2U= dGlvbg== LnByZXNlbnQ= emVs LFA= IGRlc3BlcmF0ZQ== LmdldENvbHVtbg== IHR3aW4= 7JY= LmNhbg== IGZsZWU= IElyYW5pYW4= IHN0aWNreQ== IFVUQw== TFQ= Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v IGxpY2Vuc2luZw== X1BPSU5U IE1hcHM= IGxvbA== PW1vZGVscw== LXRhYg== IE5hc2g= X2xvZ2dlcg== dG9yY2g= IENPTlNFUVVFTlRJQUw= Tm90RW1wdHk= L3JlYWN0 IHBm IGFzc2VydGlvbg== IHN1YnNlcXVlbnRseQ== X2Nhbg== IHBhbmRlbWlj b2d1ZQ== IisK X2VudA== X1BhcmFt LgoKCgoKCgoK UmVzZWFyY2g= Q2FwdHVyZQ== IGJlbG92ZWQ= ZGVt IGV4dHJhY3RlZA== IGZpZ2h0cw== RVJD KGF1dGg= cG9zaXRpb25z IHJldmVyc2Vk KHN0YWNr IF8p dXRvZmY= X2Zsb3c= 54K5 KEdhbWU= IGV4Y2x1ZGVk IENTVg== Y2c= IFRpdGFu cGF1c2U= IGNlcmNh IGR1bXBzdGVy TGVzcw== IGtvdGxpbng= YXN0ZXJ4bWw= IHBvaW50ZXJz IGZsb3dz IFR1bg== IE1haW5BY3Rpdml0eQ== IGRpc2NyZXQ= IGNvbWJpbmF0aW9ucw== dmlzaXQ= X2JpbmQ= b290aW5n ZGF0ZXI= X2xvb2t1cA== Lm5pbw== IHN3ZWF0 IFJk IHNjaWVudGlzdA== IFBpeGVs QE5nTW9kdWxl UGxheWluZw== IHVuZm9sZA== VHJhbnNsYXRl IExhd3JlbmNl IEZJWE1F QmlsbA== IFJJR0hU IHdoZXJldmVy IG9vaw== dmlkZW5jZQ== IF1dOw== IFNraWxs dW5pc3Rk IPCfmYI= IGZlbWFsZXM= LS0pCg== jrflj5Y= IEZyZWQ= T3ZlcmFsbA== 2YI= IGVzc2VuY2U= IHRoZXJlYnk= IHdvdW5kZWQ= IERPV04= bGVzc29u dGV4dHVyZQ== Um91bmQ= IGF1dG9tYXRlZA== INCh IFVwZGF0ZXM= IHNoYWRl cHVibGlzaA== IEdlYXI= PWxhbWJkYQ== IGxldmVy KSsi aGlsbA== IHJhZGFy cnlpbmc= ICIpLg== ZmlsbGVk IGxpbmV1cA== IGRs IHdvcmtzcGFjZQ== Vm8= X2R0 67I= X0l0ZW0= TlNVUkw= LnZlcmlmeQ== IEhhd2FpaQ== R29k TWFyY2g= IFvigKZd IHBlbG8= dXJpb3Vz IFBpdHRzYnVyZ2g= Lkl0 Q2xlYW4= Plw8Xg== IGlvcw== c291bmQ= Il07 IGZyZWVk cm90dGxl IExvd2Vy W2NvdW50 5Z0= IHBhbGU= IFdheW5l ZWFydGg= X2NhdGVnb3JpZXM= VUNL Lm1ldGFkYXRh IHN1bW1vbg== SE9NRQ== 0L7Qu9GM0Lc= IG1hbnVmYWN0dXJlZA== IGRvY2s= IGNvbXBldGl0b3Jz X01PREVM b2tpYQ== IEhleQ== zr8= IGJhY2t3YXJk IFBPU1M= cm9wYQ== IGNyaQ== X09CSg== VHJhbnNwb3J0 LWhpZ2g= IGVyb3Rpaw== X3Nsb3Q= IGFydGlj X2ZyYW1ld29yaw== LXNlcmlm IFNxbERiVHlwZQ== Jyko KyIv IHdvcmU= U2ls IHN0b3Jpbmc= IFBoYXNl dWFudA== IGJ1bXA= aW5obw== IGRpZ24= IGJhY2tz cXE= KGhhc2g= IGdlbw== IHRlbmRlcg== TG9nbw== ISkK IE1Y IEFydGh1cg== ZXNzb2E= X0No IGJlZHJvb21z PSIjIj48 IHRocm9hdA== aW5zaWM= LmludGVnZXI= IHByaW1pdGl2ZQ== VHJ1dGh5 IGZhY2lsaXRhdGU= IGNyZWF0aXZpdHk= IEROUw== IGdyYQ== dWV6 IGNvdW50bGVzcw== IFBvbGFuZA== J00= IERpc3Q= IHZlc3Q= IGNlcnRpZmljYXRpb24= 4buR aGVsZA== ZXh0ZW5zaW9ucw== KHN0YXRpYw== IGdyYWRlcw== IFViZXI= 44Gf IFtdKQo= ZGF0b3M= IGdldERhdGE= IENoYXJn IEJT Lm1pY3Jvc29mdA== LnZpZGVv LmRpcmVjdGlvbg== LT57Jw== bHVh YXBlc3Q= IGJvaWxlcg== ZXJlaw== IGRlY2lkZXM= Lmphcg== SVND IFdvcmRz KENPTg== RU1QTEFURQ== cmVlemU= c2hvdHM= YXBwcw== dW50ZWQ= LnNldE5hbWU= Ojo8 LWJvbGQ= 6rI= 5a+G TG9uZ3JpZ2h0YXJyb3c= IHVuZmFpcg== IGVhcm5pbmc= IHNoZWxm VVJFTUVOVA== IGlkbGU= X01FTlU= LkN1c3RvbQ== QUdFUg== LSI= X3N3aXRjaA== YmVjYXVzZQ== KXZpZXc= bWFyZQ== X2NvbmRpdGlvbg== IFN0YXJ0aW5n TXZj KHByZQ== ZHVtcA== X0xPQ0s= YXRldGltZQ== LmNhbGxiYWNr IENlcg== b3BvbA== aWJyYXJ5 IHJlc2VydmF0aW9u CQkJCQkJCQo= bGVjdG9y Z3JhZHVhdGU= IGdlbmVyb3Vz IGlvbg== cmljYW8= bXE= X2NvbXBsZXRl KGN1cnNvcg== IEZvcm1Db250cm9s OmNlbnRlcg== IHN1YnN0aXR1dGU= IFBsYW5uaW5n IHBlbnNpb24= IHJlY29tbWVuZGF0aW9u IFRhZ3M= IGdlZg== IGFsYnVtcw== IHdhc2hpbmc= cm9j IHRyYWlucw== YXRpbmdz IGV4cG9uZW50 YWNrYmFy LWxu w6Fn LkRhdGFBbm5vdGF0aW9ucw== IEVJRg== IE1hbGF5c2lh CVBPUlQ= b251cw== IGNsZXZlcg== IHBldQ== PgoKCgo= IEFyZ3VtZW50cw== IGRlYnVnZ2luZw== KHJpZ2h0 J0Q= Y29tcHV0ZQ== IGZpbmVzdA== T1JBR0U= IHNwZWN0YWN1bGFy cGhyYXNl IGluZGlh IGxlZ2VuZGFyeQ== YmlydGg= IGNvbXBvc2l0ZQ== IGdyb3dz IFRE IGVwaWQ= IGxhdW5jaGluZw== XV1b TWludXRlcw== IENoYQ== IGNsZWFuZWQ= IHdpdG5lc3Nlcw== dWthbg== CVR5cGU= IGhhYmU= cGFyYWdyYXBo IEpQYW5lbA== IEhhbm4= IHZhcmllZA== IFBva2Vtb24= IE1VU1Q= 5Yqo LnZpc2liaWxpdHk= b3B1cA== Xls= LmV4cGFuZA== ICInLA== LmZhc3RlcnhtbA== X2F1dG8= IFNoZWV0 bWFya2Vy UGFyY2Vs ZXdz IFN0cmF0ZWd5 LW1ha2luZw== IHVudmU= IHRyYWlsaW5n IGNsaWNrcw== IEdldENvbXBvbmVudA== CWNvbnRlbnQ= SUdFTkNF RVJORUw= TlNNdXRhYmxlQXJyYXk= IGJyZWF0 IGhhcm1mdWw= tog= IGJlc2lkZXM= IGJvcmluZw== IGJydXRhbA== dmFuZw== KHBhcnNl cXVpY2s= IHB5dGVzdA== IHN3aXRjaGluZw== KCldCg== IOyE TEVS CWZvbnQ= IG5ldHQ= KV0KCg== KC9c 5p6c dG9BcnJheQ== IGJyZWVk IENBUg== IFdlYXBvbg== QWJz dG90 IHNldE5hbWU= YXB0aXZl IDos IGVzY2FwZWQ= b3JkZW4= IFByaQ== dGh1bWJuYWls IGRlc2NyaXB0aW9ucw== L3N0eWxlcw== IFBDSQ== IGFscGhhYmV0 YXN0aWNzZWFyY2g= Tk9URQ== IGNpYWxpcw== IEdyaWZm IHBvcnF1ZQ== IHByb3RlaW5z cGxheXM= IHN0YXRpbmc= IGltYWdpbmF0aW9u IGZhY2lhbA== IE1lY2hhbg== IGFycmFuZ2Vk X3VzZWQ= IGFycmFuZ2VtZW50cw== IFBpcGU= aG9zdG5hbWU= IHByb3ZpbmM= VGl0 LkZsYXRTdHlsZQ== IFNwbGl0 IExvYWRlcg== LmNj IGNsaW5pYw== LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ== IGJha2luZw== IEVOVA== bmVhdGg= 44CBCgo= QU5F LkVudGl0eUZyYW1ld29ya0NvcmU= YXBwZXJz Lmlj IE5nTW9kdWxl IEZPUk0= ICc7 LXByb2ZpdA== aHc= ZW5lbXk= IEV5ZQ== IGNhdXRpb24= dG93bg== IHVyZ2Vk IEppbW15 eW5jaHJvbm91cw== LXNpemVk bWFraW5n LHs= XScs X09iamVjdA== YWhvbWE= IGFjdGl2aXN0 SU5WQUw= IENvbW1lcmNpYWw= IE9ybGFuZG8= KHRhYg== INio QWxnb3JpdGht IGhlcml0YWdl R2V0TWFwcGluZw== IGZhaWx1cmVz cmlvcw== YXRpdmE= IHRldA== IGNhcnBldA== KFo= dGhyZWU= IGRpc2Nsb3N1cmU= LkVSUk9S X2NhbGxlZA== IGRpYWw= IG9jY2FzaW9uYWw= LkVycg== IGZ1bmNpb24= Y2FmZm9sZA== IHJlbGVhc2luZw== 77yJCgo= X1ZhbHVl IFZhcmk= eWVsbG93 IHN0cnVnZ2xlcw== LmNhbA== IERha290YQ== CWNsb3Nl IHNhbmR3aWNo IGFuYWx5dGljcw== ICoqKQ== JiM= IEpvcw== IHBhc3NpdmU= QVRUUg== VGhyb3dhYmxl IE11bg== IFVpbnQ= KGRpc3Bvc2luZw== YXJhaw== IExlYWRlcnM= IGFmZmVjdGluZw== IGl0ZW1WaWV3 IGVjb25vbWljcw== ZnY= 4LmA LnJi IE92ZXJhbGw= IHdlYWx0aHk= IGV2b2x2ZWQ= bmRh IEh1cw== cmVzdHJpY3Q= dW1lbg== IEFncmljdWx0 IQoKCg== IGV4cGlyZXM= IHNwb2tlc3BlcnNvbg== aW50ZXJ2YWw= IMOi IHF1ZWVu KG5pbA== aW5nbw== SGVhcA== 2Y4= IGNvbXBsYWlu U3lt IENsb25l IFJ1 IFdJTEw= IENyeXN0YWw= L2NvbnRlbnQ= aW5nZW4= b2ludG1lbnQ= TGFzdE5hbWU= YXZpY29u IElCTQ== IERpbWVuc2lvbg== YW5o aWNpcGFudHM= IEFubmU= LnByb2dyZXNz IGFsZ28= b2JpbA== IFZvaWNl IEZF IGdsaQ== IHZlZA== IHByZXZlbnRz XENvbHVtbg== IGZvbGs= ZXR0aQ== IG1u IENMQVNT IGRpc3BsYXlpbmc= IEts IEZlcnI= ZHV0bw== Lmli IGRhZG9z J25hbWU= LXNwYWNl IGl0YWxpYW4= IGludmVyc2U= IGRlbnNl dXRlcg== IElFbnVtZXJhdG9y LXNpZ24= IG5hdGlvbndpZGU= IHBlcnNvbmE= IHNvbHZlZA== IGRyYW1hdGljYWxseQ== TG9nb3V0 IGdyYXY= IGFuYWx5c2Vz b2xsbw== IGxhbXA= LnRlYW0= IEVyb3Q= PVsi IGRhbmNpbmc= ID8+Lw== IGNhdGVy ZmZl IFNoYQ== IEJvcw== IFJFUVVJUkU= IE1vbnN0ZXI= IFJC IElERQ== IHN1aXRz IGZvcm1EYXRh KHRoZXRh IHNwYXRpYWw= PU5VTEw= IFNxbENvbm5lY3Rpb24= IOA= IFZlbmV6 IE1vcm5pbmc= IHB1YmxpY2F0aW9ucw== IE5PTklORlJJTkdFTUVOVA== Zmlyc3ROYW1l dWRz V291bGQ= X0hFQUQ= IGludmVzdGVk c3RhYmxl ZnJlZA== IGNvbW1hbmRlcg== U0VT 4oCUYQ== YW5jaGU= IE1vdmVtZW50 67M= U3VpdGU= IGp1cmlzZGljdGlvbg== 66as IEJldGg= alF1ZXJ5 IElzYQ== IGRlbnRhbA== LCo= IExpbWl0 aWxpYXRpb24= PSJ7 YmFzdA== IHR1cmI= aXN5 T09L IGFkdm9jYXRl aW1hZw== TEVDVElPTg== 0LvRjA== KGNhdGVnb3J5 LmRlYw== IHVuaXF1 X3Nu IGF0dHJhY3RlZA== IMOJ IFJ1bm5pbmc= X2VkZ2Vz IERpc2FibGU= X0FT 5Zu+ IG5ldHdvcmtpbmc= X2JyYW5jaA== SGF2aW5n dG9CZVRydXRoeQ== R0k= IGNhbXBz c2Vw LXBhcnQ= ICkKCgoKCgoKCg== dXN0cmFsaWE= IFJlcG9ydHM= cml0bw== IHdhaXN0 X3BsdXM= IFdX LXBlcnNvbg== QXByaWw= IHNhcg== LnRhcg== IGFncmljdWx0dXJhbA== dGlj IHRjcA== IHNldFZhbHVl YWdlbnRv IEFwcGU= cGlsZXI= Q0FERQ== IGFuY2hl YXRjaGVy IGNvbWljcw== IGxicw== X3NlZ21lbnQ= J109JA== aXR0ZXJz aWNoZXI= R0lORQ== IHV0aWxpemU= IEN1cnNvcg== X2V4cHJlc3Npb24= IGRhZw== PGxvbmc= IHJoeXRo 5o+Q IGNvbnN1bHRhdGlvbg== WWV0 IikpCgo= X01BQw== Y291bGQ= ICdcXA== IFZv CWh0dHA= IGdz cGhlcg== LWdyaWQ= SmFtZXM= SnVs IHNjaG9u IHRlbnNvcmZsb3c= IExPR0dFUg== YW1hcw== IHNjaXB5 IGNvbnZpY3Rpb24= LmFn IGFkbWluaXN0cmF0b3I= KSl7DQo= IG51bg== Imdyb3Vw UG9y IG51cnNl ZXhwcmVzc2lvbg== YWt5 IEhlYXZ5 Lm9wdA== LmdldEFsbA== IG92ZXJs LyIs X2NvdW50cnk= 544= IEdFTkVS X3JvdXRl IERhbA== wrQ= b2xvYWQ= IHVuY29tZm9ydGFibGU= KG1lbnU= IGhvc3RuYW1l JyIpOwo= IGNhbGN1bGF0aW9ucw== LWNsaWNr IHByb3RlY3RpdmU= 44Kv X0Zvcm0= dW5ncw== QWN0dWFs bWY= IFByb2Nlc3Npbmc= IEludmVudG9yeQ== KG1hdHJpeA== YXBwcm9wcmlhdGU= d2Vn aWph IGNocg== IHJpZmxl LXdzag== a2Fy IGluZGVwZW5kZW50bHk= SU9T IGNvbnNpc3RlbmN5 dm4= L3N5c3RlbQ== IENoYW5nZXM= IGV4cG9zZQ== aWNpZW50cw== IHJlbGF0ZQ== CW5leHQ= 6Kg= dWRlcw== IGdsYXNzZXM= RlhNTA== Li4uLi4u IFBkZg== IGFwcHJvdmU= IHtc IGV4aXN0ZQ== KSko QVJFTlQ= 0L7Qvw== IExhdGVzdA== IE5pZ2VyaWE= LkludGVyZmFjZXM= IHJlbW92ZXM= RW5lbXk= IGVuZm9yY2U= dmVydHM= CXBvcw== X3RleHR1cmU= V0FSRA== IElOQ0lERU5U KGNvbnRhaW5lcg== IGRlZmVuZGluZw== IFJY IEhvb2s= YnJpcw== IEZsYXNr R3JheQ== LikK dmlzaWJpbGl0eQ== IFJlZGlyZWN0VG9BY3Rpb24= ZXJyYWw= X2VsZW0= IHJlc29u ZnJvbnRlbmQ= X3ZhcmlhYmxlcw== YXRlcmlh ICsi YXZlbGVk UklY IGRlZmljaXQ= X0NoZWNr WVlZWQ== VG9PbmU= c3B5 IHVuaXRlZA== ZW5kZW50 IHBvZGU= 44GM Q0FU KGZtdA== IEJvbnVz IHJlY2s= wro= TW9kdWxlcw== IHZhY3V1bQ== UmFkaW8= IERBTUFHRQ== UGVu IFBhcmtlcg== OzsK IFJlYWxseQ== X25lZw== cGVuZGluZw== IG5vbWluZWU= IENhdGVnb3JpZXM= IFVsdHJh V2VhcG9u IGRlZmVuZGVy SXNz IEdlbmRlcg== IERyZXNz IGltcHJpc29u IGJhbmtydXB0 aW1lbnNpb25hbA== UEhB IFN0cmF0ZWc= IFBST0ZJVFM= IHBhdHJp Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8= ZGVsZWdhdGU= IGZvclN0YXRl IGRldm90ZWQ= X21ha2U= IHRlcnJvcmlzdHM= IFNuYXA= X25hdg== IEFB IElhbg== CWFwcA== UGxhY2VtZW50 X2hkcg== PEs= IHNhbmc= c3Ryb2tl LVE= Pjw/PQ== LW1vZGVs YXZhbmE= IFdhbmc= ICAgICAgICAgICAgIAo= CWluaXQ= IGVudHJlcHJlbmV1cg== YXRpdm8= TG92ZQ== LW92ZXI= V2F0ZXI= IG1vZHM= Z2VuY2U= VGVjaG4= Png= LlRhc2s= bW9uZXk= aWJhYmE= J30pOwo= IFNwZWNpZmlj IExpbmVhcg== X09QVA== SGFzaENvZGU= KFBsYXllcg== LkNvbnRhaW5zS2V5 IGNvbGxhcHNlZA== dHJhbnNwYXJlbnQ= X1JBTkdF Vmlld2Vy KGNmZw== IHNvcnRpbmc= IGluZmVjdGVk IE5hY2g= IGFjY29tbW9kYXRl LmVsZW1lbnRz X1BBUlQ= IFNleHk= PWdldA== KHllYXI= IHhocg== Ol0= b3dza2k= IHN1bW1hcg== IMK/ IGludGU= IHdvcmtmbG93 IFRhaXdhbg== dmVyc2lvbnM= 5Y+R IHN1cnByaXNpbmdseQ== IG9wdGljYWw= IHByb2Nlcw== IGRpc2FncmVl IG51ZXZv IENBTQ== c29ydGVk bGVhc2Vz aXN0bGU= SWRlbnQ= CWV2ZW50 amVjdGVk Q2h1bms= VmFycw== LnByb3ZpZGVy IHByb2NlZWRpbmdz IGluY2x1c2l2ZQ== IGFydHdvcms= ZW5kYW50cw== 77yaCg== c2Vlbg== IGxpZw== IG1ha2Vycw== X2Z1bg== IGxlbmd0aHM= UGF0aFZhcmlhYmxl W2l0ZW0= 4Li1 RGVhZA== RkZGRkZG IFVyYmFu dXBsZXM= aWNoZW4= KG51bGxwdHI= LnNwZWM= LFN5c3RlbQ== VVJBVElPTg== KGpvYg== 5byP IHRyYWNrZXI= xZk= IE1S IFNRTGl0ZQ== IGR0bw== IDs7Cg== IG1pbnQ= IEludHJvZHVjdGlvbg== Y2Fv IHF1ZXN0aW9uZWQ= IGZpdHRlZA== cmV2aXNpb24= c3E= IG1pZw== X3VuaXRz X2FzeW5j IGZsaWNr fSk7CgoK IG5vdHJl fWAs RmlsdGVycw== IG11bmRv X2RheXM= IGZybQ== dXRj IHZhbHM= ZXdpZHRo IEdlbmVyYXRvcg== IEFydGlzdA== IElEcw== IEFydGljbGVz cmVhdGVy IENvbXBvbmVudEZpeHR1cmU= Lj0= IHJvdQ== LW5v LmJ1a2tpdA== ZWdn IERpZmY= YXRpY3M= 0YPRhw== 4oCUCgo= IENoYXJsb3R0ZQ== Ynll IH0pOw0KDQo= IFZpaw== IEJyb3c= IGx2 IEdpYg== LXdpbmc= R0xJR0VOQ0U= KEls IEVuZ2luZWVy LldhaXQ= IFBpY3R1cmVz IHJoZXQ= IHRoZXJtYWw= IHByYWlzZQ== PD4oKTsKCg== IFNwaWRlcg== UGF1c2U= IEJha2Vy IHNsb3dlcg== IH1dCg== X2VucXVldWU= IGRpc2FwcGVhcmVk IFRpY2tldA== SU5VWA== X0xPQ0FM 0LDRgdGB QEluamVjdGFibGU= Y29tbXVuaXR5 R2VzdHVyZVJlY29nbml6ZXI= 5Zu9 IHNjYWxlcw== IC0o Lycr IFNpdA== IGV4ZWN1dGl2ZXM= YXJkaW5n IGFkdmVycw== IGJhY2t3YXJkcw== CWNvbnRleHQ= IEhhbXA= IFBG IERlY2s= IENyYWln QW1lcmljYW4= IGJlbGw= IHByb2w= dWZlbg== IHJuZw== YXJzaGFs IFNpbXBseQ== Zmlyc3RuYW1l c2hvcmU= SnVseQ== IG1vcnRhbGl0eQ== IOKGkgoK SGVscGVycw== IGJlbmNobWFyaw== ZW1hZGU= IG9yZ2FuaXNhdGlvbnM= Lmdzb24= IFRleHRGaWVsZA== IGNpdmlsaWFucw== LkFycmF5cw== IE1pc3Npc3NpcHBp IGludGVybWVkaWF0ZQ== Z2V0VXNlcg== X2NsdXN0ZXI= UmVsYXRpdmU= Zm9yZWlnbg== LnF1ZXJ5U2VsZWN0b3JBbGw= Rm9yZWlnbktleQ== IHJlYXNvbmFibHk= LS0tLS0tLS0tCg== Q2FyZHM= IEthbQ== IFRob3I= IHJvbGxlcg== LWVsZW1lbnQ= IEN1cnJlbmN5 ZGRpZQ== QUxMWQ== IFJB IHBlcm1ldA== YWFhYQ== IGhvbWV3b3Jr IFZpdA== IG1vbGQ= IEZlcg== W3N0YXJ0 IHN0YXRpc3RpY2Fs IHNjYXJ5 X0hPTUU= LkJlZ2lu Q29uc3RydWN0 b2dlbmlj IERFQUxJTkdT IHRhbWJpw6lu aXhvbg== LmluZA== YWNyZQ== IHRyYW5zZm9ybXM= IE5hcA== LkJsb2Nr dXNzaWE= cGlyYXRpb24= dWxlbnQ= IGNlaWw= Q2xhdXNl bmFpcmU= VEVT IG5lYXQ= U1RE IFJlZ0V4cA== cGVyZm9ybQ== Oik= IHVuaW9ucw== IHN1YmxpYw== IHdpbmRz bG9hdGluZw== Z2xpY2g= IHBhZ2luYXRpb24= U2tpbGw= QXBwbHk= IE9wZXJhdG9y aXN0b2dyYW0= IHF1YWxpdGllcw== Q3Jvc3M= IGRlY29t XSwi IEp1YW4= Lm1vZGFs LkNoaWxk IFJvZ2Vy U1RJVFVURQ== OkNHUmVjdE1ha2U= YWxldHRl IHN0YQ== YXNpZGU= IGJsdXI= IFdh aWZldGltZQ== cmVlZA== Y29udHJvbHM= IGJpbnM= INC/0L7Quw== Ki8sCg== VUlT IFJvdQ== IERlbW8= LWF3ZXNvbWU= IENoYWlu IGhhc3Rh IEJhcnQ= LktFWQ== IHZlbmRvcnM= bm9mb2xsb3c= IERlc3Q= X2J1aWxkZXI= IGFyZ3Vlcw== X2Fuc3dlcg== Z290bw== IFJFU1VMVA== IE1PTg== IHBvZGVy b29ucw== X0NBU0U= IHJlcGxpYw== IGZpbmFuY2luZw== IERBVEU= Y2Vybg== X3RyYWNr dGllcw== L2xvZ28= IE5FR0xJR0VOQ0U= Z2V0VHlwZQ== PlQ= YmV0 Z2lybA== IElOQ0lERU5UQUw= LXNpdGU= LnRyaWdnZXI= IExpc2E= X2lucHV0cw== IHJlbGF0aXZlcw== TG9nZ2VkSW4= Q29uZmlndXJl SUs= LmFjY2VwdA== UmVzdW1l IERyYWZ0 ICo+KA== IFdB ZWRpYW4= ZXJuZXNz IExheW91dEluZmxhdGVy Ki8NCg0K b3RoeQ== IG9ibGlnYXRpb24= U3Vic2NyaWJl IHRodW1ibmFpbA== ZXhpc3Q= IGluc2lzdGVk IFVJQ29sbGVjdGlvblZpZXc= IEFuZ3VsYXI= IHRhYmxldHM= IEltcGFjdA== 44CNCgo= YWhv IGNoYXJhY3RlcmlzdGlj Z2Q= ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0= b3VydA== YC4= QXBwcm8= Q29vcmRpbmF0ZQ== UmVtZW1iZXI= IG1hcmluZQ== XT09Jw== IEFkbWluaXN0cmF0b3I= LmdldERlZmF1bHQ= IGZvcmdvdA== IFN0cnVjdHVyZQ== VnVl YXJzaW5n bW9tZW50 a3c= X2N1cnNvcg== QXR0YWNr IGF0aGxldGlj IGRpYWdub3NlZA== IGVuZGU= 5Yig6Zmk SG91c2U= IFBBUkFN IHdpa2k= IE9wcA== IGNvbnNlcnZhdGlvbg== IHNuZA== X3RlbQ== c3Vic3Ry IENhcGU= LnNpbQ== VVRJT04= YW5hbg== 4oCZdW4= IGd5 LXdvcms= IGNvbXBlbGxpbmc= PScj CXN1Yg== IGRpcmVjdG9yaWVz 7Yq4 IHRvdWNoZXM= b3V0aW5lcw== LkNvbGxlY3Rpb24= c2NoZWR1bGU= LmxhdA== IERvY3RyaW5l Q0FB IFJlZmVy IHNoaWZ0cw== IGxpa2VsaWhvb2Q= cHJldGVy IEZlbWFsZQ== IGludGVyY2VwdA== IGxvdQ== 55m7 IHJ1Zw== IENyb3du ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKio= LXByb2R1Y3Q= IHByb21wdGVk dW5nbGU= ZG9ja2Vy IFR1 IFVuaXF1ZQ== X0Vycm9y dWxvcw== IOKE IChg R2V0dGluZw== X3NjYWw= IEVuaA== w7x0 IHN1c3RhaW5lZA== IHBhdGNoZXM= IHByb3NwZXI= IEdhemE= X2xpZ2h0 IGluY29ucw== LS0tLS0tLS0K CQkgICAgICA= U0Y= Q04= OiI7Cg== IENvbGxpbnM= KCop IGNvbXBpbGF0aW9u J10NCg== IGNvbnNlcXVlbmNl LC4uLg== IGRt IEJMT0NL Q2x1c3Rlcg== IHNraQ== KGFyZ2M= VHVwbGU= IGpvaW5z IFNoZXJpZmY= V2Fy aW5kaQ== IGNvbW1lbnRlZA== SE9TVA== IGludml0YXRpb24= YXBhbmVzZQ== IHBlcm1pdHM= cHJlY2VkZW50ZWQ= X3pvbmU= IEFteQ== X1JE TWluaW11bQ== IGludm9jYXRpb24= LmVuYWJsZQ== aWNodGVu LW93bmVk Imlk X1BPSU5URVI= RmFj IHNwZWNpZmljYXRpb25z IG5vbWluYXRpb24= IGdw PCg= IHJvYm90cw== IEplcnJ5 IGhvbGRlcnM= IHdhbmQ= Y21z IH0pKQo= LlRvYXN0 IElMaXN0 QmFzZWQ= em9vbQ== L3N0eWxl IEJlY2s= TWVu IGNvbnRyaWJ1dGluZw== IHVuZG8= IE9I IGFkZE9iamVjdA== IGVpZ2Vu c2lnbnVw 6ZSZ IGRpc3RhbnQ= UEFSQVRPUg== IE1hcmk= IG3DoQ== RW1w w7Nz IOyImA== ZXZ0 K2o= cGFyaw== IFN0YXk= IER1bg== IHNveQ== PiU= YXppbmVz IHRpZW1wbw== KG1l cHJlc2VudA== LlRoaXM= IGVkaXRvcnM= RklFTEQ= Lldvcms= IFVuaXZlcnNl IGRydW5r LnRpbWVy IGFsdGVyZWQ= IE5hcg== 66Cl LkFjdGl2ZQ== aWRvcg== 560= LmRlbHRhVGltZQ== IGF3a3dhcmQ= JnF1b3Q= IFNhZmFyaQ== IHRyaWNrcw== TUVOVFM= ZGl2aXNpb24= IHZhcnlpbmc= IEhpZ2h3YXk= IHBob3RvZ3JhcGhlcg== IFN0ZXdhcnQ= IGxhc3Rpbmc= LlByZQ== LmFtYXpvbmF3cw== IEx1Y2s= LkRlc2NyaXB0aW9u IE5heg== bmVn IGPDsw== PDwiXA== IFN1cnY= IFVuYw== UmVjaXBl LkJvcmRlclN0eWxl IG1vZGlmaWNhdGlvbnM= LWF0 QVRGT1JN aGRy YWtv IHN1YmxpY2Vuc2U= IEp1bXA= IGJlaW0= IE1hbmhhdHRhbg== LmJvb2w= X2h3 0YLRjA== Qmlu IGdhdGV3YXk= IiI6 IFVJUw== OiIr LWRlZg== IFJlZ3VsYXI= L3Rlc3Rpbmc= ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA= c3RyaW5nc3RyZWFt IGRpc3Bhcg== IG1vYmls LXJlYWQ= IEFkYXB0ZXI= IENoYW1waW9ucw== IHNjaGVkdWxlcg== IGtpbGxz IE11bHRpcGxl aXJyb3I= IGdvZHM= QURP YWt0ZQ== IFVzdWFyaW8= LmNpcmN1bGFy IHJlY2VwdA== IEV4cHI= IGVsZGVybHk= IG5pY2VseQ== IGJlc3Rl V2FudA== IGNsYXNzaWNhbA== LnNwcml0ZQ== b2JqYw== IE1hc29u IHNpc3RlbWE= LkJsYWNr ZXNv IFplaXQ= IGRpdmlk IGVudGVycw== X3N1YmplY3Q= IFBsYW5ldA== Lndhcm5pbmc= IEdyYW0= X3Rva2Vucw== IGhvdXNlaG9sZHM= X2N1c3RvbWVy dXNlck5hbWU= Y3Jvc3M= IHBpb25l IGFzc2lzdHM= X1NN aWJv IGxveWFs IHVzZWxlc3M= I2VsaWY= IFVsdGltYXRl Q29tZQ== Z2Vs IGRpY2g= eHl6 aWtlbA== b2JyYQ== X3NjYW4= IEludGVyaW9y IE5pY2U= IHBsYWM= CXRhcmdldA== IHZpcmFs YXNzbw== KCkv dW5kZQ== IEFkb2Jl T3M= dmlzaXRlZA== IE9X IEZlZWQ= IFNlcXVlbmNl IG1hbmFnZXM= aW5zb24= IExvdWlzaWFuYQ== e30p IEhhYg== IExE IGJpcA== cHJpdGVz KGVsZW0= LmhpYmVybmF0ZQ== w6lsw6k= IG9obmU= X3RyYW5zYWN0aW9u IGFubnVuY2k= UHVibGlzaGVk IEhvbmRh IFRhbQ== IFBhY2tldA== X3NlbGVjdG9y IGNoYWxsZW5nZWQ= UHJvY2Vzc2luZw== LWhvdmVy IHRyYWluZXI= X2NhbmNlbA== IE5TRGljdGlvbmFyeQ== YWJyaWM= IE1MUw== X3NlbnNvcg== IHNocmluaw== IEZY dGhyZXNob2xk CUhY LW1hcms= YC5g U2NoZW1l KGZ1bGw= X3dyaXRlcg== IFN5cw== IGZsZWQ= IENpbg== LXdpZGdldA== IFByZXZpb3Vz R2VuZGVy X3F1ZXN0aW9u RmVlZA== IHNjcnV0 KHByZWZpeA== 44CC44CC IGluZmVjdGlvbnM= UGFydHM= IGhpZXJhcmNoeQ== X0RFTEVURQ== IFBhdGllbnQ= X3BheQ== IHByb21vdGVk IOyL IGNpdmlsaWFu IGFncmljdWx0dXJl IFBpZWNl IHN0YW5jZQ== dXRzY2hl QXNzaWdu LkFDVElPTg== Rmln X3JhZGl1cw== IFN5bmM= ZHVjZXI= ZmFpbHVyZQ== ZW5zZWQ= cHRpbWU= Qk0= X2RhdGV0aW1l cXVpdm8= UVVFVUU= 6ICF QXBwZWFy IHN1bW1pdA== OnZvaWQ= IHZpbmU= 6K6k b25uZQ== X1RSQU5T LmdyZWVu X2Nj IGh1bmdyeQ== ICI+ KCkpOw0KDQo= RXh0cmFjdA== aXplbnM= IHNvbHZlcg== Tm90aWZ5 IGVuZ2xpc2g= IFNob3BwaW5n aW50ZXJmYWNlcw== UkVR IGlsbGVn IFVJSW1hZ2VWaWV3 IGRpc2Nvbm5lY3Q= IFVudGls IENvbnNlcnZhdGl2ZQ== QENvbHVtbg== IHNoaWZ0ZWQ= IDoNCg== IGZpY2g= IGRsYQ== IHNob2U= IiksDQo= dWxhcml0eQ== X1JFU1A= V2VhdGhlcg== VUlBcHBsaWNhdGlvbg== Lml0ZXJhdG9y IGFnaW5n LlBhcmVudA== b3dpZQ== KGVxdWFs IENvbnY= L2RlZmF1bHQ= IG1lYXN1cmluZw== LnByZXY= LklzVmFsaWQ= LkZhdA== IHPEgw== a2V5d29yZHM= d2l0aG91dA== IHNvdmVyZQ== IGV4Y2hhbmdlcw== IG1lbHQ= IGlzbGFuZHM= IEludGVncg== IGp1bXBpbmc= IGdsZQ== IGpvdXJuYWxpc20= IGRhdGVk TG9jYWxpemVk IFJlZnJlc2g= UGFydGljbGU= IGFh IFNUUklDVA== IGJvZA== LlByb2Nlc3M= X0FVVE8= IFB1Ymxpc2hlZA== ZXZlcnk= IHRlY2hub2xvZ2ljYWw= bHN4 IGlycml0 QWRkaXRpb25hbA== IGRlbGltaXRlcg== X2xhbmd1YWdl LWFyZWE= Ym95cw== IFR1YmU= IHdhdA== IG1lY2hhbmljcw== X293bmVy U3BlbGw= IFN0b3JpZXM= LkFwcGVuZExpbmU= VGFibGVWaWV3 aGVt c3RpY2s= b2xsb3dlcg== SUZG IFVW b2xsaXNpb24= U1VC IGNvbXBhcmFibGU= IGRvbmRl c2FsZXM= bGx2bQ== IH1dLAo= T1RUT00= IFB1cnBvc2U= TGFi IGludGVydmlld2Vk b2lz YXNpbA== LnNldElk IEluc3RydWN0aW9u LS0+ IE1vZGlmaWVk YXRpb25hbGx5 IE1lZXRpbmc= 6K+v I3JlZ2lvbg== IHJvdXRpbmc= LmZvY3Vz IFlvdXRo PEQ= IE5hZw== Y29udGFjdHM= IGZvcm1pbmc= IG1pZQ== JyxbJy4uLw== IEJQ IGFwcGV0 IFRlYWNoZXI= IFRQ IGFubnVhbGx5 b3V0ZWRFdmVudEFyZ3M= IFNwZWFrZXI= IHJlbmFtZQ== Q0ZH KCIvLw== 5o6l L3BhZ2Vz IHByw6lz IFNwZWxs LkFsbG93 IElOVEVSUlU= ICgj 4oCZCgo= X0dlbmVyaWM= Lmltc2hvdw== X3RpbQ== LWZhY2U= KCYo YXRpbnVt IHJldm9sdXRpb25hcnk= IEhvdXJz cmFpbg== IGFueXRpbWU= IGFiYg== LmpzcA== U2Nyb2xsVmlldw== IFRydXRo IGFudGljaXBhdGVk IGFjY2VudA== LmNoZWNrZWQ= IHNwZWNpZmllcw== IGNhZg== IGNlbGxwYWRkaW5n IGNvb2tlZA== IEh1Z2g= cGVlaw== X1JBVEU= IGRvcm0= Lw0K SVZJVFk= LkNvbnRyb2xsZXI= KHBhcnQ= LmNvbnN0cmFpbnQ= IGludmFzaW9u TU9WRQ== IGdsdWM= bGVuYW1l IGFtZW4= ZW5nbGlzaA== IFN3aXR6ZXJsYW5k IjsKCgo= cGVzdA== LmNvbGxlY3Q= Tmli IERpY3Q= IEVtYg== KHN1YmplY3Q= IG91dHJhZ2U= IGRlY2lkaW5n IHNlbnRlbmNlZA== RmVjaGE= IkE= IHF1ZXI= IGZvbnRGYW1pbHk= IHF1YWRy LVk= X0NBQ0hF IGFuYWx5emVk IGdhaW5pbmc= IEFnYWluc3Q= IFNvdWw= dGF1 IGxpZ2h0d2VpZ2h0 IFRG IEVmZmVjdHM= LlR5cGVz LmFkZENsYXNz IHZlZ2Fu 6YE= Lici IEV4cGxvcmVy LmRldGVjdA== LnNoaWZ0 IG9ibGlnYXRpb25z bGFzdE5hbWU= IGFzc29jaWF0aW9ucw== IFRpbWVTcGFu dW50ZXI= IEZyZXNo Q29tcGF0aWJsZQ== UHVi aWRnZXM= Lm9wdGlvbg== dmFyaQ== Lmhhc2hDb2Rl IGdlYg== LnNlY3Rpb24= LW5vdA== IFN1Ym1pdA== VE4= cmVnaXN0cnk= X21lZGlh IG5hag== ZmZ0 IG1hdGU= LXRoaXJk IHBvY2tldHM= ZXN0YQ== IGJlbnQ= IE5vcmQ= IHJldGFpbGVycw== IE1vcnJpcw== LiIiIgoK V3Jvbmc= IMWb UmF5 LmVj IEJpbmQ= X0hBTkQ= KG5vbg== aXNWYWxpZA== IHNpbWlsYXJseQ== X0xJTUlU IGR5bmFtaWNz IGRpc3RpbmN0aW9u 44GG PE4= IG9ydGg= IFRveW90YQ== IEthdGU= IExT b3JpZQ== IFNwcmluZ3M= IGZyZWFr bGFzdG5hbWU= X01VTFQ= LXN0ZXA= Iig= QUREUg== IGVudGVydGFpbmluZw== X0NPTkY= IGRlY29kZWQ= IHN0cmVhaw== IHdhaXRlZA== IG5vdGlmaWVk cm9kdWNlZA== dmlzdWFs LkxheW91dFBhcmFtcw== 5rA= ZXNpYW4= Zml0cw== c3ByaW5n IEJlcm5pZQ== VXNlckRlZmF1bHRz IHBlZGVzdA== QXBwZWFyYW5jZQ== IFdpa2k= IE5PVElDRQ== IHNzaA== IGR1cmFudGU= IFppcA== xLFy IE5BVE8= IHR3ZWx2ZQ== IHJveWFs 77g= IG1lcmNoYW50 IEZ1cm5pdHVyZQ== J10pLAo= LFg= IGZvbGRlcnM= IEdhdGU= CWZ1bmM= cGljaw== X3VzdWFyaW8= IFZlcm0= bWVudGlvbg== dXJwb3Nl IGFsZXJ0cw== eGlvdXM= X3NpZw== IEZ1 ICg6 IGR1bWI= 5YWz IGFjY3VyYXRlbHk= 6YeN UkI= LXNjcmVlbg== IFZFUg== am91cg== IHJvbWFuY2U= dWNjZWVk LmNob2ljZQ== IGFkaXA= X2RpbXM= U2VyaWFsaXphYmxl 44KL LmpvYg== IHByb2c= dWNoYXI= IGdlbnRseQ== IFJTUw== aWN0dXJlZA== X0VOQUJMRUQ= CWxhYmVs YXdrcw== IEVuc3VyZQ== cmVtZW1iZXI= 7KCV IHRyYW5zbWl0 e3sk LlRyYW5zYWN0aW9u dXJzZQ== X3JlbGF0aXZl IHNpemVk IFhY IFByaW5jZXNz IExhcnJ5 IHByw7M= INGB0YLRgA== IHNpc3RlcnM= ZXN0cnVjdA== IGNoZWNrcG9pbnQ= Omxlbmd0aA== IENhcmxvcw== L2ljb24= X1RBUkdFVA== VG9rZW5z IHBhdGllbmNl IFNlbGVjdGVk cXR5 LnNob3dNZXNzYWdl IHdpbGRsaWZl IFByb3Bz Ym0= LWFycm93 IHBhcmNlbA== ZmlyZWJhc2U= IEJlbmphbWlu Y2Vzc28= LnRpbQ== IEdhcmM= LmFueQ== IEhPV0VWRVI= IEtv IGdyYWJiZWQ= X2ZyYW1lcw== IG9iamVjdEF0SW5kZXg= IEFEVklTRUQ= IHN1YnVy CUdM IH0pfQo= LWxlbmd0aA== 7Iuc IFBvdHRlcg== X2J1ZmY= Lmd1aQ== IEVuY29kaW5n RWxlY3Q= LW1lc3NhZ2U= IO+/vQ== IMiZaQ== IEFyZ3VtZW50TnVsbEV4Y2VwdGlvbg== 0LDRhtC4 IG1pbmltaXpl IHJlc3BvbmRpbmc= JF9bJw== IEluZGl2aWR1YWw= w6Fj IElOVEVS IG1hc3R1cmI= IEJpbg== KCck 65Oc IG9wZW5seQ== ID48 IHVudG8= b2xvZ2ljYWxseQ== IE11bA== VklESUE= IHNsaW0= IENvbW1pc3Npb25lcg== KG9u IHVuZGVybmVhdGg= L2Ri dm90ZQ== KE1lc3NhZ2U= IFBvcGU= RGVmaW5lZA== IHN3aWZ0 dXJm IGFkYXB0ZWQ= U0VM IHJldmVudWVz IGRpdmluZQ== PXk= R3JhZGllbnQ= X2FjdA== IC8qITw= IHBvbHlnb24= IEZEQQ== IENhcnI= YXRhYmxlcw== KHN0ZG91dA== IHJlZnJpZ2Vy IGNvb3JkaW4= YXZvcml0ZXM= 0YjQuA== IGNvbXBhc3Npb24= IFBPU1NJQklMSVRZ LXNlY29uZGFyeQ== dXJhY3k= IGNvbXByb21pc2U= X0FW X29z IGJlc2lkZQ== g50= IGxu LnBsdWdpbnM= Q2FwYWNpdHk= YWxhaA== LmJpbg== IENSQw== X2JhbGFuY2U= IGZsZXhEaXJlY3Rpb24= IGFtYml0 IG5pY2tuYW1l IEZvcmNlcw== Q0xF IFNoZWxs IHNhaWw= IFdyaXRlcg== IEFsaWNl ZHc= IEluZGlhbnM= IE1hcnNoYWxs X1NSQw== IG5vcm1hbGl6ZWQ= IEphZw== 44KS emVpdA== cnBj w61j LmlubGluZQ== IHRyYXZlcnM= X251bWVyaWM= IHV0aWxpdGllcw== IGV2YWM= SU5QVVQ= CXJlZ2lzdGVy TVg= IENhbXBiZWxs IGRhdGFzZXRz IGRlbWFuZGVk IGluaXRpYWxTdGF0ZQ== Z2Fu IGVp VW5leHBlY3RlZA== LXdlYg== dHJhaXQ= LFk= IFRvZGQ= IHNrZWxldG9u IG9wdGltaXpl 56ys IFVwb24= IFN0T2JqZWN0 IGFwbGlj Lic8Lw== QUND YWxvdXM= IGhhc2hDb2Rl IEJpYg== SU5BTA== IGludmlzaWJsZQ== IGhldGVy IHNhZmVy fS8v LnRoZW1l Lm5hdmlnYXRpb25Db250cm9sbGVy X21lc2g= c2tpbGw= IFZpb2w= wrI= IEVPRg== IEtp eW1tZXRyaWM= IG1heGxlbmd0aA== xaM= ZnJpZW5kcw== IEV2YW5z IGxlbW9u ICgu U2xpZGU= IFRoYWlsYW5k IENhbm4= IGFtZW5k IGNpcg== IHNpbGx5 ZXNpbWFs X3BpYw== cHJvY2Vzc29y SmF2YVNjcmlwdA== IGV2aWRlbnQ= X2Rp PlA= dnJvbg== LlVO IHBhaW50ZXI= aXphcnJl IGxhdg== IHBvbQ== cHJlZw== PWZ1bmN0aW9u KHNlcmlhbA== aWZpY2E= dW1pbmc= 5Zyw 44GC LW9w VUNI IEhlbmQ= LnByb3BUeXBlcw== IHlv IHJvdXRpbmVz IGNhcmluZw== U2Vt IHJlc2VydmVz IHByaW9yaXRpZXM= cmVkaXRz SVNUUg== Q29udGVudFR5cGU= IFNjaHc= L21lZGlh IGVzdHI= IGNsaW1iaW5n LXdlZWs= Y2hlcmNoZQ== c2Vuc29y VG9BcnJheQ== IE1vbnRyZWFs IGNsb3Vkcw== IEluamVjdGFibGU= IFJpY2U= IHByb3BhZ2FuZGE= X3Byb3ZpZGVy IGluZG9vcg== IGluYXVn IGRpcGxvbQ== IG1lc3NhZ2luZw== X211dA== 5aaC IGt3 T05T YXJpYW5z UlBD KV0NCg== LXJheQ== IFNvcg== bWFsbA== IG1hcmtldHBsYWNl IHZ0aw== TWE= b2dhbg== aWdp IHNwb25zb3JlZA== IERhbmk= LlNFVkVS PicuJA== bXVsdGlwYXJ0 IFdvbA== IHRhYmxlTmFtZQ== IFVzZXJuYW1l QmFja2dyb3VuZENvbG9y IGZyaWdodA== X0VNQUlM U2VwdGVtYmVy X3ZhbHM= b3BpYQ== IHNwb3R0ZWQ= LUNo IGRhdGFTb3VyY2U= LyIK 0LXQutGC IFJlcXVlc3RNZXRob2Q= IFJlcGxhY2U= LWRv YWhu IFBoRA== XS4KCg== Tk9O Z2VtZW50 IFRocg== IHF1aWV0bHk= IHRvcnR1cmU= IHRlYXM= IENZ IGF0cg== ZGV2ZWxvcG1lbnQ= LWRldGFpbA== IGxpZ2h0ZXI= IGFyZ3Vpbmc= IGRlc2VydmVz IGN1cnJpY3VsdW0= X0NPTlRFWFQ= xYJ5 SElURQ== CUlE L3VwbG9hZHM= IHRpdHM= cmVv X2Ryb3A= LlVURg== IHBpY2t1cA== IGdyb2Nlcnk= IFB1cmU= IGVhc2llc3Q= UGhpbA== LmZlYXR1cmU= KCIq IGludmVzdG9y dG9r IGphcg== TG9z 4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU LnF1ZXVl LXNwZWVk TWFs dW1ibHI= IENPTlNU IEhSRVNVTFQ= IERhbmNl KGZpbGVQYXRo IGF0dHJpYnV0ZWQ= 4KWN IEJ1bmQ= Y29pbnM= IHPDo28= IHBpcg== cGVyc29uYWw= IHByZWxpbQ== IHByb3Bvc2U= IFRM XV0p IFN1YnNjcmlwdGlvbg== IEtyZQ== LGxlbg== LkZpcnN0T3JEZWZhdWx0 KS0t X3Byb2R1Y3Rz LkdldEJ5dGVz U2hpcA== IGVuY3J5cHQ= IFNH IE15c3Q= aGly IGl0ZXJhdGU= IGludGVuZA== Lm1vY2tpdG8= IGNoYXB0ZXJz KGFuZ2xl IFZsYWQ= 6K6+ Jy4KCg== UmVzcG9uc2VCb2R5 IEFiZA== ZGVhbA== IGJhcnJpZXJz LW91dGxpbmU= YmlsbA== IEZhbGxz X3NlY29uZA== LmluY2x1ZGU= LmNlaWw= IG9jY3VwYXRpb24= cGhvbnk= Lm1vdmVUbw== IEplbm5pZmVy QVNURVI= OyI+PA== IEVuYWJsZWQ= IHRlcm1pbmF0ZQ== IElv bGF0aW9ucw== IFRIRU9SWQ== IGVhcmxpZXN0 IHJhY2s= IFNjYXI= c2hha2U= Y2hpcA== IHV2 IGFsbGlhbmNl 0L/QuNGB IEdPT0RT emlvbmU= IFZJ IHst IGZpbHRlcmluZw== IG1pc2Nvbg== LkRvY2tTdHlsZQ== IGJ1c2g= IGp1bms= 5ow= IFFVRQ== IGhvb2tz IGZpcm13YXJl IG1pZGRsZXdhcmU= ZGlj IE9ha2xhbmQ= IGFycml2ZXM= UGF5bG9hZA== cGl4ZWw= XXw= IHN0YXJ0RGF0ZQ== LlBSTw== X2F1ZGlv IG1pZGZpZWxk aWdpZGJvZHk= IFN3aXNz IENsaXA= IER1bXA= IFRleHRCb3g= IGdlaA== eWllbGQ= b2Rz IHJlZmVyZW5kdW0= QmFja2VuZA== IENyZWFt IGRvbWluYXRlZA== IEFyY2hpdmU= IHJpZGVycw== LnByZXBhcmVTdGF0ZW1lbnQ= IHF1YW5kbw== IGNoZWY= d2lraQ== aW5lbA== YW1wbGluZw== KCJcXA== IHNhZw== X3Byb3h5 44GV cGRv LmdldEVsZW1lbnRzQnlUYWdOYW1l IGRlbW9uc3RyYXRpb24= IE5QQw== IGFyY2hpdm8= ZW5kYW5jZQ== IGVmZmljaWVudGx5 KGFjdHVhbA== LnRhYmxlVmlldw== IG11c2g= IGJlYXJz X3RocmVhZHM= amFz YWh1bg== IG5ldXJhbA== IGRlc2lnbmluZw== IEdEUA== IGxpZnRlZA== 55uu IEpvaW50 IEluY2x1ZGU= IEdpYW50cw== IHdpdGhkcmF3YWw= IFJlbnQ= bmF0aXZl IFNlZWs= Z3Jlc3Npb24= X0NQVQ== XFM= IFNoaWVsZA== IHNvbGlj IGJvb20= eWVjdG8= IG1hbnVmYWN0dXJl IOKAiw== IGJib3g= IGVhcnRocXU= b2xsZWN0b3Jz OkAiJQ== IGxvb3Bz SmU= YWxraW5n IFdoYXRz IEJveXM= LmJvb2s= QVJHRQ== X3BpeGVs IHN1c3BlY3Rz zrk= dXNw IEJNVw== aWVjZXM= KHBlcnNvbg== 5byA 6bs= IFBvZGNhc3Q= IGJvdQ== KEl0ZW0= w7s= KElucHV0 SHR0cEdldA== IGJ1cmc= KV4= Qk9BUkQ= Ki8s IGd1bHA= IEJlbm4= IGRlY2tz LnN0YXR1c0NvZGU= IGFjdXRl IGh1Zw== dWd1 IHBsZWQ= LCIl aGFwZQ== INC30LDQvw== IE1haW5l LnJlYWw= IGRhbGFt IE1pbm9y LkZsb2F0 ZGlzcA== IHRs IGVuY291bnQ= PT4k IGZn dGVlcw== IFJlY29tbQ== w6Rs IGNoZW1pc3RyeQ== QmxvY2tz T0lE IGZvcmV4 IEFwcGVuZA== IHsq IFN1cHBseQ== Q0dGbG9hdA== KGJs IGF0ZQ== YWRvcmE= IGd1c3Q= QXNzb2Np Pi4K RkVUQ0g= LnNlcmlhbA== d2lkZ2V0cw== YXJkbGVzcw== aWVmcw== X0ZVTEw= ZXJuZXRlcw== IFByZWQ= 2K0= 5LqL dWJlcm5ldGVz IExhdXJh IGxhYmVsZWQ= SGlnaGxpZ2h0 IGFubm95aW5n L3VwZGF0ZQ== KGRlc2NyaXB0aW9u IGludGltaWQ= JGM= IikpKQo= LkFQ IFtdKg== IEVYSVQ= Lkhvc3Q= IE9QRU4= LnNlbmRNZXNzYWdl X2NhbWVyYQ== X3RpbGU= IHRoZXJt b25vbW91cw== IGRpc2Fkdg== IG5hYXI= aW5kZXhPZg== IFBQ LnByb3RvY29s QUZF IHRleHR1cmVz IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj dW1iYWk= LnN0YXRz IEdF IGll IFNURA== IE1hbm4= LnJlZmxlY3Q= S0I= IGRpdmU= Lndhdg== LyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t L3NldHRpbmdz LmxpZmVjeWNsZQ== IGRhdWdodGVycw== b3J1cw== dWJlcg== TklORw== c3RyaQ== IFRpcA== IHpu IHN3aXRjaGVk aW5ldA== dWZmeQ== IFRyYW5zcG9ydGF0aW9u KGNvbmY= ZnJpY2E= IFhM IExlYWQ= X3BlcmNlbnQ= PE1hcA== IHRocnVzdA== b3Ji aWtr IHRyYXVtYQ== QWNjZXNzb3I= IEZpdA== IFN0cmluZ0J1ZmZlcg== ZXhwbA== KHNjcmVlbg== IGF1ZGllbmNlcw== IE9QVElPTg== X3JvdW5k W25vZGU= YmVo LT5fXw== cGVybWlzc2lvbnM= IERldGVybWluZQ== Lk1hbg== IGFkdmFuY2Vz LklucHV0U3RyZWFt IHN0cm9uZ2VzdA== IGVCYXk= ICMt IGRpcm5hbWU= IFNNUw== IG1lZGljYXRpb25z IGFtZW5kZWQ= IGNodXJjaGVz IEltcGVyaWFs JHJvdw== IE1hZGlzb24= IEluc3A= IGFmZmFpcg== IHBzeWNob2xvZ3k= dmg= IHNldmVyaXR5 4oCQ IHN0cmlwcw== QUg= dmVydGlzaW5n IGNvbnNl SU1BR0U= IFN0YXRz CXNj LkN1cnNvcg== IGZyZWV6ZQ== c3Nvbg== KHhtbA== IFN1c2Fu LnRpbGU= ZWRlZA== ICAgIAkJCQ== dWVsbGU= IE1pdGNoZWxs YmFzZWQ= T3BlcmFuZA== veaVsA== IEZG CXN0cmNweQ== b3VuY2Vz aWxkbw== LmV4ZWN1dGVRdWVyeQ== IGFwcHJvYWNoaW5n IFNldmVu IG51dHM= IHJpYw== YXNzaWdubWVudA== IGNhbGN1bGF0b3I= IE11cnBoeQ== IEJvdQ== 7YQ= IGJ1dHQ= IHRpY2tz UHJvamVjdHM= aWxpYg== LnRleHRDb2xvcg== bW92 X2xvZ28= KHRlbXBsYXRl IElOSVQ= IGltYWdlVmlldw== c2NyaXB0aW9ucw== T1JJVFk= Q29uc3VtZXI= IHVucHJlY2VkZW50ZWQ= IHRvdXJpc3Q= IGJyb24= IGNvbnRyYWN0b3I= IGxpY2VuY2U= IE5hbQ== 5q8= KHRyYW5zZm9ybQ== X0FUVA== UHJlZg== IEdhbQ== IHZlc3NlbHM= IGhhdg== TGF0ZXI= LlRvTG93ZXI= IHVybHM= IGJyZWFrZG93bg== IHBlbmFsdGllcw== IGZvc3Rlcg== IFVF IGNsdWU= Y29tZWQ= 5ZCN56ew LW1haW4= IHB0cw== IGNvdW50ZWQ= aWN0cw== L3Bvc3Q= IGdldGF0dHI= IHBpbmc= QU5DRUw= IHBlYw== 0YXQvtC0 YW50b20= IEJsdWVwcmludA== IEV2ZW50RW1pdHRlcg== IGzDpA== 5rI= IHN0cmF3 KGNvbXA= J3VuZQ== Pk4= LWNsaWVudA== ZXNNb2R1bGU= LWJhc2U= IHJldHJlYXQ= X3NpbXBsZQ== CQkJCQkJIA== ZmVl JykNCg0K Q29udHJvbEl0ZW0= IHN1YnNjcmliZXJz cGxlYXNl IEVmZg== IHBvdW5k IEJ5dGVz IFRlYQ== X2FjdGl2aXR5 IG1heGlt IG9wY29kZQ== QlNE LmNvbnN0YW50 O30= b21icmVz IGNhcmVlcnM= KS4KCgoK IHNwcmVhZGluZw== LWV4cGFuZGVk IE9yZA== YW1hcmlu IG1vYmlsaXR5 VW5mb3J0dW5hdGVseQ== YWtr Tkw= X3JlZGlyZWN0 IFBH IFNlbnNvcg== Ym9s dGFw X01FTU9SWQ== IFVJQWxlcnQ= cGxpdHVkZQ== V2Vic2l0ZQ== IExvZ28= bG92ZQ== W2luZA== IGFsdG9nZXRoZXI= IHdvbmRlcmVk IGVzcGVy IExpYmVyYWw= IG9zcw== IGVsaXQ= IHN0aWZm b2RveA== X21lbnRpb25z IERvdWdsYXM= X3BpZA== IENL IGluaXRXaXRoRnJhbWU= LmJsb2c= cGtn YW5naGFp UVVJUkVE dXU= IG1rZGly QVRBTA== IHVuaA== aW5jZXM= c3Ro IGh5cG90aGVzaXM= IGNhdGE= IFRC IENsYXI= IHByZWRlY2Vzcw== IHNpdHVhdGVk LXdvcmxk KSkv IGhlYWRsaW5lcw== LnN0YXQ= IG91dGJyZWFr c3BhdGg= X0ZMQUdT IFNlcnZsZXRFeGNlcHRpb24= U3Vu RlJPTQ== IERpcg== 44O744O744O7 X2Nvb3Jk IE9wdGlt TW9uaXRvcg== LmJpdA== WFhY IHRvZGFz ZmVsZA== 0YDQuA== aW1pcg== IHBvbGl0aWNhbGx5 IG1vbGVjdWxhcg== IHRyYWRlZA== IHt7JA== IFN3ZWRpc2g= ICdALw== X1JFQUw= IHdhcmVob3VzZQ== dG9kYXk= LEw= b3Jw PHNlY3Rpb24= LWJy eW1l IFVzZXJTZXJ2aWNl IGxpYmVydHk= IG1vbWVudG8= KEltYWdl PHNpemU= U2No IGpvZw== aW9sb2d5 YXJlbnRseQ== IHF1YW50dW0= IEFidQ== IHJpbQ== IG1hbmE= Rm9udFNpemU= QnVpbGRpbmc= c3RhaXJz QUlMQUJMRQ== ICYn IHNlY3Q= IHNpZ2g= KGJhdGNo LklDb250YWluZXI= cG9sbA== IENvcnBz zrU= YXJ1 IEtheQ== LnJhbmdl X2NsaWNrZWQ= IFJvYmVydHM= Lk5ldHdvcms= ZmluaXNo LU1hbg== IGNvbGxlZ2Vz IEZpbmU= IikpLAo= ZmlsbQ== IHJlbWluZGVk IGdlc3R1cmU= b3V0aWw= IHRocmVhZGluZw== IG9iamV0 IHRvdXJz YWN0aXZhdGVk Lm1rZGly PXVzZXI= IHJlZGU= ZsO8 X1NZU1RFTQ== cHY= IGNvbmdy IG1hc3Nhc2pl IHByYWN0aXRpb24= VW5pdmVyc2l0eQ== IHRhYmluZGV4 0Jg= U2V0cw== IGNvdW50aWVz Z3Vlc3Q= ZmFu IHdvcmRlbg== LmRp 0L3QsNGH wr8= aWdEZWNpbWFs IHNob3Jl IGfDtg== IHJlcGFpcnM= IGhlbHBlcnM= IGNlbnRlcmVk T0xMT1c= IG1hcFN0YXRlVG9Qcm9wcw== IGNlbnRz PEE= IGV4cGVjdGF0aW9u T2N0b2Jlcg== IGJnY29sb3I= Y2FsZXM= LkNPTg== IFZlbA== IGNyeWluZw== LXNlYXNvbg== IGZ1bmN0aW9uaW5n X0xPQ0FUSU9O w7xzcw== YmVyeQ== UGFyYQ== b21pbmF0b3I= LWxl IGV0aGljYWw= aGFzaHRhZ3M= ZW1wbG8= IG7Dum1lcm8= KGFjdGl2aXR5 LlN0b3A= LnN0cmZ0aW1l SUxE IHRvZQ== CU5vZGU= IikNCg0K IFB1ZXJ0bw== IGV4ZWN1dGluZw== IEdVSUQ= IG9wcG9zaW5n YWxwaA== IGV4aGliaXQ= X2ZsYXNo IG1laWxsZQ== IGpzb25PYmplY3Q= SGVybw== YWludGVk X0RPTQ== IHdpbA== IHNsb3Bl IG3DpQ== IElyYXFp IG9yZ2FuaXpl CWpRdWVyeQ== SFVE c2hpbmU= Lndl IFNraWxscw== cG9uc29y IGNvbmNsdXNpb25z IHJlZm9ybXM= IHJlbHVjdA== bmFtZWQ= IE9saXZlcg== IC8vfQo= LWxvb2tpbmc= IGZvZw== IEhP IEZyaWVk IGluZXZpdGFibGU= IERhdGFHcmlkVmlldw== SG91cg== aWxsZXM= bG9naWNhbA== IGNvbm5lY3Rpdml0eQ== LnR3aWc= IEt5bGU= KGRzdA== LVNo IFN0dWRpb3M= KExldmVs LmpldA== X1BST1RP LWRlY29yYXRpb24= T1RIRVI= IHJlYWRpbHk= LlBhcmFtZXRlcg== IG11bHRpcGx5 IExJQg== YXJtZWQ= IHNvb25lcg== 5oQ= X0VT IGZvc3NpbA== IEFuYw== 4oCcVGhpcw== bG9kYXNo UHl0aG9u IGhpc3RvZ3JhbQ== d2VzdGVybg== IGluZmFudA== IGNvb3JkaW5hdG9y IG5pYg== Om0= IHJlc3BlY3RlZA== IGRlZmluaXQ= JlQ= X3BhZA== IFRyaWdnZXI= dGhhbA== IGltYWdlTmFtZWQ= IGJlYXRlbg== CXJj IFBhbGFjZQ== IGhhemFyZA== IGlzb2xhdGlvbg== X3Jj Y29udHJl T1VUUFVU IHJlaWdu IFBsYXRl QVRFUw== IGZsdXg= IHBhY2tz LmdldFNlbGVjdGVk IHBhcnRpY2lwYXRlZA== IG5lZWRsZQ== LWRlcHRo Ojo6Ojo6 LWxhdw== aW5zcGFjZQ== b25pdG9y PW5v IEF0b21pYw== IEJyYWlu RWRpdGFibGU= LXNj cmVkZW50aWFs IFBlcnJ5 a2ll IC0tLS0tLS0tLS0K LnN0cm9rZQ== KEludGVudA== IHVuaXR5 dW1sYWg= RnVydGhlcg== IHByemU= IHPDuA== 44KK IFBST0NVUkVNRU5U IEhvdXNpbmc= IGF0dG9ybmV5cw== IGNvbXBvc2U= YXR0ZXJpbmc= IldoYXQ= ZHJhdWw= IHN0cmFpZ2h0Zm9yd2FyZA== SW5zdGFudA== LkpUZXh0RmllbGQ= IHRyYWRlcw== 0LvQsA== IHsh IGxhdGVseQ== SU1H IEFsZA== IElOTkVS IGNhcnRvb24= LlNvdXJjZQ== RkFMU0U= IGRvdWdo ZmVu KHJlY3Q= RGF0YVRhYmxl Tmljaw== IEJ1dHRlcg== cmVhZHM= X2NvbW1lbnRz RU5W IENvbm5lY3RpY3V0 LUZJUlNU CQkJICAgICA= YWNoaQ== Lk1zZw== cmVjdGlvbg== IHJlbGF4ZWQ= IHNoYWZ0 IGVm IEFkZGluZw== IGJyZWFjaA== IO+8mg== cmFtYQ== IGNvbmR1Y3Rpbmc= ICg7 KGds IENBVVNFRA== YXNoaQ== IEZMQUc= IENvbW1lcmNl IElOVEVHRVI= aG91cnM= IFNjaG9vbHM= IG51Y2xl QWdhaW4= cHJvag== IHNldmVudGg= RU1QTEFSWQ== KG1vY2s= J10sDQo= X1NQRUVE PmZhbHNl IHNwYQ== IE5lYXI= 7JU= IGludHJpZw== X21lbWJlcnM= d2F2ZQ== IGFuYWx5c3Rz X09T ZWRpbg== IEZyaQ== IHJldHJpZXZlZA== UmVndWxhcg== X29icw== RVhQT1JU Jyl9fSI= ImNsYXNz X18oKA== YnVja2V0 IHN0cm8= IFBhdGNo eXN0aWNr ZnVsbmVzcw== YXBvcw== RGE= CQkJCQkgICA= IGVucmljaA== dW5vcmRlcmVk aG9sZQ== Q29uZw== PFByb2R1Y3Q= IEN1cnQ= KHRoZQ== X2xvd2Vy IGF2b2lkaW5n IGJ1eno= IHZpYWJsZQ== dWJh LWlz YXJlbA== IGFjdGVk LWRldGFpbHM= 4LiH IFRoZW9yeQ== IFB1bg== IEFub255bW91cw== Li4uIgo= w6hyZXM= 5Y+v IFZpc2lvbg== X3NlbQ== YXNoYQ== IGNlbGVicml0eQ== IGVuZERhdGU= IHBvcHVsYXRl IGN1aXM= cXVhbnQ= Zmxvb3I= IGdsb2JhbGx5 IGNydWlzZQ== IFN0YW5sZXk= IGJpa2Vz LmdldENvbm5lY3Rpb24= IHBvb3JseQ== X290aGVy YW1waW5n LiIpOwoK b2Rp X0FETUlO LmNvbG9ycw== IEdhbWluZw== Pic7Cgo= U1RSVUNU UVI= SURz KGFyZ3VtZW50cw== X2F1eA== KEV2ZW50 X1BSSVZBVEU= IFRyZWs= IGRvd25sb2Fkcw== bXV0YWJsZQ== X1NUUlVDVA== KHd4 IGRvbWFpbnM= anNweA== IFZpYWdyYQ== Q29tbWFuZHM= SnM= LmNmZw== Q29udGVudFBhbmU= IEVkaXRUZXh0 4KWN4KQ= QXR0YWNo IEFSTQ== cG9zaXRpdmU= IEdlbmVyYXRlZA== IHNlaXplZA== PTo= IGVsZWN0cm9uaWNz IEFwcENvbXBvbmVudA== LycsCg== LmVxdWFsc0lnbm9yZUNhc2U= RG9jdHJpbmU= ZGlzaw== IFBvbGl0aWNhbA== Q0hP PEY= CWhlaWdodA== IEJ1Zw== Lmxl aWto IG1pbGxpc2Vjb25kcw== IGNvbnN0aXR1 bWFn Lm5s LXJhbmdl YW5nZ2Fs Jyxb cm9wb2xpdGFu IMOc IFVD LmRlc2M= LUxBU1Q= ZnN0cmVhbQ== aWJpbA== IGZpZXI= VkVSWQ== IOuz SVJU X1VJ KGFicw== IGtuZWVz IHJvb2tpZQ== IFZhYw== YXJlbmE= Y29tbWVuZA== LVw= IFNVQlNUSVRVVEU= U29mdA== IHBhcnRpcg== d2VhbHRo 6KaB KGRhdGFzZXQ= IENsaW1hdGU= LXNob3c= IHJlbGlhYmlsaXR5 X2NodW5r 5Luj X3N0b2Nr IEVYRU1QTEFSWQ== 77iP IHbDrQ== IHNtaWxlZA== IGRyaWxs LkZ1bmN0aW9u IFNJ IHJlZ3Jlc3Npb24= LVg= IEphcg== cHJlZg== CXN1Y2Nlc3M= IEhpdGxlcg== IGluc3RpbmN0 IGZlbW1lcw== IGxvdmVy PAo= IG11bHRpcGxpZXI= cmls UmVzaXpl IEF1dGhvcml6YXRpb24= IEthbg== RGlzcGF0Y2hUb1Byb3Bz IGNyb3Bz dG9rZW5z ZWNu ZW50aWFsbHk= IElOVEVSUlVQVElPTg== ZmFrZQ== VW5kZWZpbmVk IEFL IFRlc3RDYXNl IHJhYg== IHRvcnJlbnQ= IE90 QmFycw== IGxlY3R1cmU= IGVuam8= IHJlc3BvbmRz IGluZGV4ZWQ= T2ZXb3Jr X2NoYWlu KSktPg== IEJlYXV0eQ== IGA8 IHRvdWNoaW5n IHwtLQ== CWZsYWc= bm9ybWFsaXpl IHRyYXBwZWQ= IGVzdGFibGlzaGluZw== L2J1aWxk QUo= Znk= LXJlYWN0 YXZu UklQVElPTg== IGt1dA== IEZhc2hpb24= IEluZm9ybQ== Y3VyaXRpZXM= PGJ5dGU= IFVrcmFpbg== IHN1Zw== IGNvbnNpc3Rpbmc= b29kbGU= LmN0eA== LlRvTGlzdA== IGNvbW1lbnRhcnk= IHRyYW5zZmVycw== IG5vc3Q= aWhhZA== IFVwcGVy IGNvbmZ1c2luZw== bWlzc2luZw== LWNs IGJvdW5kaW5n IGNvbmdyZXNzaW9uYWw= IHJldmVhbGluZw== ZGg= cnVw IHRyZXM= cmVwZWF0 LAoKCgo= X3RhYw== IGV4cGVk R2lybA== aG9yaXpvbnRhbA== ICIuLi8uLi8uLi8= KG9wdGlvbg== IHdlaXRlcg== CXNxbA== ID0+ewo= IGdhcmxpYw== IHJlcHI= IHJlcGxpZXM= KHByb3A= IHNwaXJpdHM= IGluc3BpcmU= IGJhc2VtZW50 LnJlamVjdA== IGhpbnRz IHBvbGxpbmc= CSAK X3JhdGluZw== IGNhdGg= YXZpZXI= IGNvbXByZXNzZWQ= IFZT XSc= IGp1ZGljaWFs IFRyZW5k dHJhaW5pbmc= RVNUQU1Q b2duaXRpb24= xIE= U0VOVA== dmVudGlvbnM= IGNvbnN1bHRhbnQ= dW1waA== IHVzZXJTZXJ2aWNl LE5VTEw= a2g= RGVhcg== X0JBRA== aXRhdGlvbnM= IG1ldGFwaA== J8Op YW5kaXNl LWZvbnQ= LmNoYXJ0 IHNn X0NvbnRyb2xsZXI= LmpwZWc= IFVMT05H CWdhbWU= KHNz IE1hag== CWdv IFNhZA== IEJlcmc= IE1pbmU= UGFjaw== IHJlc2lzdGFudA== IFJPTQ== IHBlZw== IFN0YW5mb3Jk IFlhaG9v IHNjYWxlZA== IGxhbg== PVtd Ii8+PC8= IHBsb3Rz LioK IHRyYXZlbGVk IE9zY2Fy Vkw= IGxpbmtpbmc= IHRpcmVz ICcqJw== IEJ1ZmZlcmVk ZXJp ICoqKio= IG92ZXJsb29r Lk5vbg== IHLDqXM= IGVneQ== 5bCP IGF0dGFja2Vy CQkJCQkJCQkJCQkJCQkJ LnN5bmM= QVNDQURF R3JvdW5k IGRlY2F5 IFRvbg== IGpld2Vscnk= IGJ5cGFzcw== IG1lbWJy Uk5B PFN5c3RlbQ== IE1lZGljYXJl KG5ldA== b3Np SEI= REVD e0VJRg== X2ZpbGw= IHRyYXZlbGxpbmc= b2JzZXJ2ZXI= IGNvbnN1bHRpbmc= UkVBVA== UGhhc2U= KGlp IFNVTQ== Pg0NCg== IHN1ZA== CWJhY2tncm91bmQ= IHNjaG9sYXJz LW11dGVk YXLDoQ== ID09PT09 IF9fX18= Q3JlYXQ= ZW5ldmVy L3dw IFZQTg== RXJyb3JDb2Rl KV0sCg== KGJ1aWxkZXI= IEVuZW15 U2Vuc29y dXNh IHRyaWdnZXJz IHBsYXlvZmZz X1JFUQ== ICh+ IEJhcnJ5 IHBlcm1hbmVudGx5 IFJVTg== IGJ1cmU= LkZhdGFsZg== IGNoaWNr CXBhbmlj cHNp b2th 6YCJ Pls= IHVuZGVyc3RhbmRz IEp1bmlvcg== IElORk8= PW15c3FsaQ== dXN0YWlu LXNvdXJjZQ== c2Vydg== IENSRUFURQ== LmF1 IHNlbGxz ICAKICAK RXVyb3Bl enc= cHJlaA== IE5TQQ== IHh5 4Li0 IEJleW9uZA== SW5zdGVhZA== Tm9uUXVlcnk= IGFyaXNl IGF2b2lkZWQ= LmVtcGxhY2U= X21vZGVscw== fSksCg== IGhpZA== ICZf LnBvaW50cw== LmdldFdpZHRo LkV4ZWM= IC8vLy8= IFNlc3Npb25z Li4uXA== IENvbG9tYg== IGFjY2VsZXJhdGlvbg== cmVzdG9yZQ== IGlsZQ== b2JpYw== PE5vZGU= IERY IEJlc2lkZXM= LmFnZQ== IENvbnRhaW5z TmF0aW9uYWw= IEltcGxlbWVudGF0aW9u IGVmZmlj IFJN SHk= IFdlZGRpbmc= b2tpZXM= IHJlY3Vyc2l2ZQ== IHByb3NlY3V0b3Jz LlNlbGVjdGlvbg== IEZvcm11bGE= QmVlbkNhbGxlZA== W2lp IEZyYW4= IHRyYWdlZHk= X0ZFQVRVUkU= mag= Y29tcGFzcw== IEJo PwoKCg== LndyaXRlcg== IEhvdXI= RGJDb250ZXh0 aW92 YW1vbg== cmVwcg== 6YM= CWZp J11d IERyeQ== LnJv IE9ic2Vydg== 5qCH Rm9ybWVy IEJhbGFuY2U= CWpzb24= IHByenk= SVNT KHNvY2s= IExJTkU= IGRlY2U= IGFsbHk= IHRlbmRlbmN5 RnVu IHNjaGVtZXM= IGludGVydmVu 5piO IGFkdmVyc2U= cXVvdGVsZXY= IHNhY3JpZmlj X3NpZGU= IG11dGV4 QUdJQw== IG9jY3VycmluZw== IENvbW11bmljYXRpb24= dW1hcg== 57yW IFRyZWF0bWVudA== LnBlcnNvbg== IExD IGVjaA== KCgi IERpc2Vhc2U= w6Rk IEFa LkFjY291bnQ= IGNvbnRpbnVvdXNseQ== RU5ESU5H IFJFVFVSTg== LXN0cmluZw== LmZpbGVuYW1l c3ludGhlc2l6ZQ== UmVzcG9uZGVy KG9wdHM= cmVncw== IG51ZXN0 UGVlcg== Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0= IGdhdWdl IEtpbg== LnNjaGVtYQ== IGFycmFuZ2U= IEJsYWtl X1R5cGVJbmZv Q292ZXI= IEhhbXBzaGlyZQ== UGFwZXI= LWlubmVy dXRpbGl0eQ== IGNyb3Nzb3JpZ2lu Rk9S IGlnbm9yaW5n IERE YXZhbg== IHRyYWRpdGlvbnM= IGdldFN0cmluZw== IGV0aGljcw== IE1hdGVyaWFscw== REVTQw== IGVuenlt aW9sZXQ= IENoaXA= IE1jRG9uYWxk IG5lcnZl 54Q= Iild 5rGC IFN1Z2Fy X1NJTQ== anBlZw== IGRpc2NyZXRpb24= IFRO Ym92ZQ== IE1pbmltdW0= IEZvcm1Hcm91cA== IHdvcmtmb3JjZQ== IEV4ZWN1dGlvbg== ZXJyZXI= CSAgICAJ IHByZXNjcmliZWQ= LlRleHRBbGlnbg== T1BFTg== IFBC aW1pdHk= IEV4dGVybmFs wrBD IEFwcGxpY2F0aW9uQ29udHJvbGxlcg== IGJhcnI= aW1wbGljaXQ= X2RvdA== IENvbG9u Q09MT1I= LlByb2plY3Q= Kjwv LXhs IG9zYw== KHBhdHRlcm4= Jyl9Cg== c3VjY2Vzc2Z1bA== YWxvZw== U3R1ZGVudHM= XXN0cmluZw== YW50b24= YXR0aQ== Y2hlbWljYWw= LmluZg== KGRy OlVJQ29udHJvbFN0YXRl dG9JbnQ= XTwv 0LDQtdC8 IMW+ LkFjdGlvbkxpc3RlbmVy LlNFVkVSRQ== IFNhbHY= X1RSQU4= L2ludGVybmFs IHdlbGNvbWVk LmNvbW1lbnQ= bXV0YXRpb24= IEZBUQ== Lm9uZQ== IExBQg== In19 IFJvbA== aWV2ZWQ= IGFkdmVudHVyZXM= IGZ1bmVyYWw= IHNwb3VzZQ== KG9wZW4= IFJlYWR5 IHRvdXJpc20= YWRpbg== X2ZhY2U= 4oKB IG1pZ3JhbnRz IFB1cmNoYXNl Y29yZA== IE9VVFBVVA== KSkNCg0K U2VndWU= dGFicw== IGRvdHM= IG5haWw= Ym9ybmU= IGRlc2lyZXM= IHByZXZlbnRlZA== J109PQ== IHRpbWVseQ== SUNB U2Nhbm5lcg== IEx1Y2Fz IGdpdGh1Yg== J11bXQ== ZGlh Y29ub21pYw== IGRpZXNlcg== dW5kZXJz LkhhbmRsZXI= PyIs LmRhdGFi IGFkdmlzZQ== LmFuaW1hdGlvbg== IG92ZXJoZWFk IG9ic3RhY2xlcw== X2pvaW4= IG3DqQ== RmxhdA== LmRpc3Bvc2U= IEV4cGVjdGVk IGZsZXc= IGVtYm9k X3NsdWc= IG5hbWVseQ== IHdpdG5lc3NlZA== c29saWQ= LmxlZ2VuZA== UXVhbA== X3N1cmZhY2U= 44Op QW1lcmljYQ== IGFmZmlsaWF0ZXM= IFByb3M= X2V4dGVuc2lvbg== YmluZGluZw== U1RBTEw= LnJlYWR5 IGNvcHlpbmc= IEhlbmNl IGRpc2NvcmQ= X3NoaXA= UHJvcGVydHlOYW1l CQkgICAgICAgICAgIA== IGFjaGlldmluZw== IEJlYw== Wmlw U29tZXRpbWVz 44GL IGNvbnRyYQ== IHB1bmlzaA== IGluc3VsaW4= IGRpc2FwcGVhcg== X2VudW0= LmF1dA== IGhhc2F0dHI= YWZmZWN0ZWQ= c2hl JHRhYmxl a3Np IGxhY2tpbmc= IGRpc2NvdW50cw== U3RtdA== IEFyZ2VudGluYQ== IHVucGFjaw== IFJvdXRlZEV2ZW50QXJncw== ICc/ aW50ZXJvcA== IHNvZmE= IGR5bg== IEdyYWNl IGludGVncmF0ZQ== 2YM= IGRlbGF5cw== IEltcGxlbWVudA== UHJvb2Y= IGFwcGxpY2FudHM= IExlYXRoZXI= 7Ja0 IGVuam95YWJsZQ== U3Bpbm5lcg== L3o= IGZvYW0= IExhYm9yYXRvcnk= IHJlc2VhcmNoZXI= IENocmlzdGlhbml0eQ== IGN1c3RvbWl6ZQ== IGNpcGhlcg== IGRvZA== IHPDsw== QEVudGl0eQ== T05MWQ== aW52ZW50b3J5 IGNvbmNsdWRl IGN1ZW50YQ== IENvaGVu LWluY29tZQ== bWJI bWVudGF0aW9u IHZlcnc= dWRw QU1M LmNvbWJvQm94 Zmg= am9icw== RmlsZVN5bmM= IEJhcmJhcmE= IFNjYW4= Y3JlZW5zaG90 IE9ydGg= LnZpZXdEaWRMb2Fk IEFSUkFZ LEA= L2ludA== R2VuZXJhdGU= IGRlbW9uc3RyYXRlcw== IFplbmQ= 5YiX CXZvbGF0aWxl PXI= IGZt CWJ1ZmZlcg== ZW5hdGU= LkNvbWJpbmU= IG1pc2M= Y2hlbWFz IHB1cmVseQ== IGdsVmVydGV4 LlJlc3Q= IHJlY2FsbGVk IGZyZWVs IHNxdWU= VHJhY2tlcg== IFBocA== IERpc3RhbmNl IGJlYXN0 Q29tcGxleA== IGNvbnNpZGVycw== 572R dHJpYnV0aW9u IGNvbXBsaW1lbnQ= X2xpbmVubw== IE11dGFibGU= IHVuZGVm IEdlbQ== IGNvbXBvdW5kcw== LnV1aWQ= IGFub255bQ== IHN0YWlycw== IERiU2V0 d29ydA== IFNlbnM= LkJlZm9yZQ== IGVuZGZvcmVhY2g= IFRvZ2V0aGVy YXRpbGl0eQ== IG1vaXN0dXJl LSR7 KFRlc3Q= VEI= bXVzaWM= IGluc2lzdA== IGhlYWRsaW5l LkFuZA== UEFUQ0g= IFByZXBhcmU= IHN3aXRjaGVz KnA= IFll X2Ficw== LmhhbmRsZXI= IGFzc2lnbm1lbnRz UHJlZmVyZW5jZQ== RU5USVRZ IHBpcGVz IEFsZXJ0RGlhbG9n b2dyYXBoaWNhbA== IHBhdGlv IHdlYnBhY2s= YnBz TmF2TGluaw== Lk51bWJlcg== IEFybW9y IFBldGVycw== IERlc2M= ZHVpbm8= IEljb25z LmdldEhlaWdodA== IHRleHRWaWV3 CU5VTEw= YWxsb2NhdGU= fSR7 IFByaXpl LW51bQ== Lk1vdmU= 6L6T5YWl LmNhbWVyYQ== UHJvYmxlbQ== CXR5cGVkZWY= KHN0b3Jl IERJU0NMQUlNRUQ= IHN1YnN0YW50aWFsbHk= RkZG IGVwc2lsb24= IGluZXF1YWxpdHk= X2NoaWxkcmVu 5LiH cmVsdQ== UGllY2U= YW50cnk= YmFiZWw= dmV0aWNh IHN1cnZleXM= IGRldGVjdG9y CWFyZ3M= LlNlbGVjdGVkVmFsdWU= IGludGVyZmVyZW5jZQ== Li4uKQo= LlNUUklORw== IFR5bGVy IENhdGFsb2c= VmVydGljZXM= IFByb2plY3Rz IExlYmFu LiIpCgo= Lmtlcm5lbA== IHJpZGVz IE11dA== YW50aA== 0L7RgNC8 ZW5uaWFs LnRhc2tz LnNldFByb3BlcnR5 YXRlZ29yaQ== 5pyA L2Nvbg== YnJhY2U= IE5TRXJyb3I= J10pKTsK bGlzdGVk IFByZXZpZXc= QWN0aXZhdGU= IGN5Y2w= LWFjdGl2ZQ== aGFk VG9v IHJlZ2lzdA== bGljYWw= IHBvZXRyeQ== SW1wb3J0cw== 77yB77yB Ojw= IGNoYXJt IENvdW4= b2xsaWRlcg== IGh3 fWAK PWFyZ3M= IE5ldXJv aXRpY2Fs aWVuZW4= IERvdA== X09OTFk= RE4= IFBsYXlTdGF0aW9u IHN0ZWVw IHByYWN0aWNhbGx5 IGFwcGxpY2FudA== IGFyb20= YW5pYw== CWRpc3BsYXk= IHRlcm1pbmF0ZWQ= IGNsYXJpdHk= IE1lbnVJdGVt IEt1cg== aWpl X3dlZWs= KGRpY3Q= X3JlY29yZHM= IENvc3Rh IGtldA== RXh0ZW5zaW9ucw== IG5ldWtlbg== aW5zaQ== X2luYw== IOaW IGVpbmY= IFJpc2s= IGVsZXZhdGVk cGVycw== VURB IEtO IGxpbmVk IE1vcm0= KTsKCgoK Pn0K cGxhaW50 Z2V0VGV4dA== IGluZGl2aWR1YWxseQ== IGNoZWNrYm94 VVk= IExhbWI= IGR5c2Z1bmN0aW9u IExhcg== 4LA= IENyZWF0aW5n Jyk7CgoK IlRoZXk= bG9jYXRpb25z X0NPUkU= SW50ZXJhY3Rpb24= dW1ibmFpbHM= IFBhcnRuZXI= YnJpdA== IGxlc3Nlcg== IFNsb3Q= c2V0QXR0cmlidXRl IFdhdmU= LnBv L3N0b3Jl IGJyb3dzaW5n X3Bk c3VtZQ== c2Vk Q3VydmU= IHBsYXNtYQ== IHN1c3BpY2lvdXM= 7J24 IEJhaA== IEV4cGxpY2l0 X0ND LkNsaWVudFNpemU= XFZpZXc= IHN1YnN0aXQ= bG9vbg== IEdBTUU= IEJyaWQ= m+W7ug== X1VzZXI= IHNxdWFyZXM= Zm9uZQ== IHNhY3JlZA== dWdocw== XWludGVyZmFjZQ== IFRocm93 IEtpcms= IGVtcGlyZQ== IGFzc2Vzc2Vk VGF4 IEhlYXZlbg== LWJ1ZmZlcg== X1NUQVRJQw== w6luw6k= LWJvcmRlcmVk IHB1bmN0 KG1vZGU= IGtlaW5l U2VudA== IENhbGN1bA== IEV2ZQ== IHN0eWxpc2g= IG9pbHM= LlRlc3RDYXNl IHRyYWRlbWFyaw== IGxpdGVyYXJ5 IGNvbmNlbnRyYXRpb25z IFJlbGF0aW9ucw== KENsYXNz IHN0ZGlu IHbDpg== YmFja3Vw LlZFUlNJT04= LkF1dG9TY2FsZURpbWVuc2lvbnM= c3RhcnRlcg== VHJhbnNhY3Rpb25hbA== LXBhbmVs U3R1ZGlv a2M= IENoYW1iZXI= IFNwaWVs IHJobw== 2KfZhA== ISc= LkF0dHJpYnV0ZXM= IG11cmRlcmVk YXBldXRpYw== IGludGltYXRl IHRleHRGaWVsZA== IEJ1ZmZhbG8= ZHVtbXk= IiU= IExpYmVydHk= b2Jhcg== IFRhbms= IFBvcHVsYXI= ZXJ2aXNvcg== IEluaXRp IE1hbGw= IFByaW9y Q0FQ IENsYXk= IENlcnRpZmljYXRl LkxvY2s= LXN0cmlw LWRyaXZlbg== L2FsbA== IE1lc3NhZ2VCb3hCdXR0b25z X1NFQ1JFVA== X3Bi IHJhdHM= 4KS+4KQ= IG50 LlJvdXRlcg== X3RvcGlj IHRlbm5pcw== IFBVQkxJQw== IEFjdGl2YXRlZFJvdXRl ICcsCg== IGNvc3R1bWU= IGpva2Vz LkhhbmRsZQ== CWJ5dGU= IGZsYXZvcnM= KGNj IHBlcnNvbmFz CWltYWdl IE5hemk= IGdyYW1tYXI= IMO6bHQ= IHZhbHZl IHZpYw== IFJhY2hlbA== X2ludmFsaWQ= UHJlZnM= c3RkaW50 KHJvdXRl IGh0bWxzcGVjaWFsY2hhcnM= IHBlb3BsZXM= cGxpbmU= IG52 IFF1YW50 b3BwZXJz IGN1cnJlbnRVc2Vy IENhdGFs IHJlY29uYw== IGNvbmp1bmN0aW9u bHg= YW1idXJn IGluZmx1ZW50aWFs ZGFuZ2Vy aW5kZXJz ICVAIiw= LmNvbmZpZ3VyYXRpb24= b3NvbWU= LmlkZW50aXR5 IHBpY2tlcg== bm9zdA== IERJWQ== QXVndXN0 YWJsbw== TGVhZg== IFJlY28= Y2tv RE9D IEhlcm0= OmFueQ== IEludGVydmlldw== IFRleA== eGZl KHdvcms= IGxlYXA= SGVhZGluZw== IHF1YXJ0ZXJz XEJ1bmRsZQ== cmVi UGVyaGFwcw== IEdtYkg= QmlydGg= CXN1bQ== IFdhdHNvbg== Lm5pbA== 56E= e30KCg== aWNhaWQ= R2V0dGVy Im5hbWU= ICINCg== X25vbmU= em0= YWN1dGU= dWVzdG8= IHNvdXM= IHJlYnVpbGQ= IG5ld3NwYXBlcnM= IEhheg== IGtpdHM= aWZv Qmx1cg== IHN1aXRlZA== LUlu 4K8= IEtlaXRo IE5vcndheQ== SU5JVA== aXJlY2Npb24= aWV0aWVz X3VzYWdl IERvdWc= cmlzZQ== IHRyaWxsaW9u aW1pdGVk IFJFTA== YWxpYw== IGNyaXRpY2l6ZWQ= dGhlb3JlbQ== IGNlYXNl IHNpZGV3 IFRlcnJ5 IHN1YnNpZGk= IGZpcm1seQ== IGF3cw== IGhvdHQ= IGRyZXNzaW5n YmFkZ2U= IEFwcGxpY2F0aW9ucw== 6L+U5Zue IGxhdWdoZWQ= IGhvYmJ5 IG11c2ljaWFucw== ICou LnBsYWNlaG9sZGVy IGNvdW50ZXJz IENhcGl0b2w= U0RL IGhlbG1ldA== YW5kYm94 cXVpdA== IGNyaW1pbmFscw== IHRlZW5hZ2Vy KHVwZGF0ZQ== R2w= LnNlbGVjdGlvbg== IGRpc2NoYXJnZQ== IHByZXNlbnRpbmc= dWZhY3R1cmVy X1VOS05PV04= IHN0cmVzc2Vk 5Zmo UHJvdG8= X2NvcnJlY3Q= aGF1cw== IHJlbm92 IGZpcmVhcm1z IHRlY2huaWNhbGx5 LWJyb3dzZXI= IGNhbmR5 U3Ryb2tl IGV4ZWN1dG9y IG9jY3VycmVuY2U= IElQdg== X0lOVEVSRkFDRQ== IFJldHJpZXZl LmJhZA== RXhjaGFuZ2U= TmF2YmFy IEtpZA== KGdldEFwcGxpY2F0aW9uQ29udGV4dA== X1NUT1A= IEJvc3M= TGlzdGVuZXJz IHNob290ZXI= IEFsYg== w6RjaA== IHBpeA== LmtleUNvZGU= YWxvbmU= IGFic3VyZA== IEN1bQ== IE5ld3RvbnNvZnQ= aWt0 IGxhdWdoaW5n IGNhcGl0YWxpc20= cmVlTm9kZQ== VHg= X1FVRVJZ LlNsZWVw KGxvZ2lu V2ViRWxlbWVudA== IGNlbGVicmF0aW5n IGRlcHJlY2F0ZWQ= IG1hYXI= IGFydGlzdGlj X0FTU09D IEJvcmRlclJhZGl1cw== CXdw IHN1cnZpdm9ycw== SW5uZXI= LXJlZA== IHByb3NlY3V0aW9u X3Bw KCI8Lw== IF49 IGxhbQ== IFRyYWRpbmc= ZmxhcmU= RGV0ZWN0b3I= TUY= IEVtZXJnZW5jeQ== IEVhZ2xlcw== cXVhZA== IEluY3Jl cGxpYW5jZQ== XE1pZ3JhdGlvbg== IHVwZ3JhZGVz Q1BV YWdnaQ== ZnByaW50Zg== aWdpb24= IGJlYXV0aWZ1bGx5 IGRyaWVk X0hJR0g= IGdwaW8= TVND IERlcHV0eQ== IERlY2w= IHRyZWFzdXJl c2dpdmluZw== X3NpZGViYXI= IGFwYXJ0bWVudHM= IFdy IGJvYXRz IGJvcg== Lmxhbmd1YWdl IFVp bGl0 ZnJt YW5jaWVz IG1hc3Nlcw== IEFzc2lnbg== IFBPTA== IG1hcERpc3BhdGNoVG9Qcm9wcw== IGJyYWNrZXQ= IFBhcA== IENp IEludG8= IHRlYW1tYXRlcw== IGZvcmFsbA== dWx1aQ== IENhcm4= X0lOUw== YXppb25p Y2Vw IHRvdXJpc3Rz LWJsdWU= IExlZA== IHBlbmV0 IEZv IGltYWdpbmc= cHJh IHNsYXZlcw== b2xlcmFuY2U= IGluY29ycG9yYXRlZA== Jiw= dWFibHk= IEthcA== WG1sRWxlbWVudA== IE11ZWxsZXI= Q2hhbmdlTGlzdGVuZXI= IEhvbGlkYXk= CSAgICAgICAgIA== RmxleA== CVVzZXI= Il0pKQ== X3N1Ym1pdA== LmJvbGQ= IGxvY2tz IEN1YmE= dWRzb24= SG9vaw== IFdhcm5lcg== X3N0YXI= Ij0+JA== IGNvbW1h dW5jaGVja2Vk Z3JhcGhpY3M= cm9ycw== R1JPVU5E KHB1YmxpYw== IGN1c3RvbWl6ZWQ= IEFya2Fuc2Fz IFJldw== IGV4cGlyYXRpb24= 15U= IEN1bA== IG5vbnM= LkZpbHRlcg== IHNlbmF0b3I= X2RlZmluaXRpb24= YXNoaW5ndG9u eW1waA== L0o= IGZ1c2U= cmFtaWQ= IFN1cHBsaWVy IGF1dG9jb21wbGV0ZQ== IH0pLA== LiIKCgo= X2Z1bmN0aW9ucw== CXRv LmV2YWw= IFRPYmplY3Q= UmVmZXJlbmNlcw== IGhlYXRlZA== SEFM ICkpfQo= fSQ= IEJhcnI= X1VOSVQ= KyQ= IGdldFZhbHVl aXBlZA== Y2hpZWQ= KHZt Y3Vl X2ludGVnZXI= X2NvdXJzZQ== dGhpcmQ= IHJldmlzZWQ= KiovCg== X0RJUkVDVA== T3V0T2Y= KCIo IEZlZWw= IHJlYXNz IHN1YnRpdGxl cGVyaQ== bmY= IGVuam95cw== IHRyZWF0cw== KXRoaXM= LXRhYnM= YW5jZXJz IGNvbnRpbmVudA== IGNhcmRpbw== U2Vy LnF1ZXN0aW9u IHBocmFzZXM= VmFsaWRhdG9ycw== IHBvcHVs IGzDrQ== c29uZw== X0lOVEVSTkFM IGFkdmlzZXI= IHB1eno= IGFtYml0aW91cw== IFRvYg== IERQ IHByZXNpZGVuY3k= IHN1cnJlbmRlcg== IHdhdGNoZXM= X2JpbmFyeQ== IFNvb24= IGNhbmFkYQ== KCIiKQo= XT0n IEJyYW5kb24= ZXBzaWxvbg== cnc= LmFkZENoaWxk LkNvcHk= UHJpbmNpcGFs UGhvdG9z IG1hcmdpbmFs IGJhc2ljcw== ZWluZw== TXVzdA== X1N0cmluZw== IG9sZQ== TWFnZW50bw== LmN1c3RvbWVy KHByZXY= 4Lil IGxveWFsdHk= Q29n IHByb3RvY29scw== IENvbXBhbmllcw== IHRoZW9yZXRpY2Fs IGFjY2Vzc2luZw== IFplbg== Lm9uZXM= YXR0aWNl X3dvcmxk emVz IHRhdHRvbw== IG1lbm9z IGludGVyc2VjdA== Il07Cgo= YmVsaWU= IGluYWN0aXZl LnJlYWRsaW5l LWxhYmVsbGVk LmRvbmU= bGlja3I= IFdPUks= IGRlcml2YXRpdmU= IGRhdGFiYXNlcw== 4oKC IHN4 LmlzQXJyYXk= IHlz IHBhZGE= IEJ1bGxldA== KGAv aXNBY3RpdmU= IENHU2l6ZQ== KGVxdWFsVG8= IENvbHVtYnVz IG1hcnJ5 REVW X2xpbWl0cw== cm9uZXM= SUFT IHRhdQ== bWlubw== X1dyaXRl IFdpbmU= IFtbJw== IFB1bGw= cml0ZXJz cmllbnRz IHNoaWZ0aW5n dXBw X1RJTUVS IENvbmRpdGlvbnM= 4bql IE9yZGVycw== IFN0cmVuZ3Ro 5omA IHZhbGlkaXR5 IGZvdA== ZXR1cg== IGJvbHQ= 5YaF IEFsb25n b3NoaQ== IGFzc3VtcHRpb25z IG1hZ2F6aW5lcw== X1NQSQ== IHB1bnQ= X1BST0RVQ1Q= IHJlbGF5 IEphdmFzY3JpcHQ= LnRl LWVz IHdpZGdldHM= KGZz PEl0ZW0= X2V4dHJh IHJlY3J1aXRpbmc= RXQ= IG5lY2Vzc2l0eQ== cHc= IG5vdmVscw== dXNzZWxz Q3JlYXRvcg== IE1WUA== IE9D dGhvb2Q= Y2xpZW50cw== KSkq IGNoYXJhY3Rlcml6ZWQ= X1NFTkQ= dXRp VHk= LmZyb21Kc29u QFNlcnZpY2U= 44KC Q2hyaXM= X0lz IEpvaG5ueQ== IGNsZWFuZXI= IEluaXRpYWxpemVz VU5L KGF4aXM= 0LXQtw== aWV2YWw= IFdhcnJpb3Jz fSko RE1J 4pmA IFRyZWFzdXJ5 IGZlYXM= IHNsYQ== X0VOVU0= bGhz IEluc3RpdA== aXBwZXJz TGluZWFy UmVhZGluZw== cXVpcmllcw== LWNlbGw= Y2hyb21l LlNlYXJjaA== SU5B 57G75Z6L IAogCg== IFNhbXVlbA== IG1pbGxz IGRvbmF0ZQ== IEdlbw== KHJvd3M= IHNoZWVw IMOpbA== 5L2T IGJlbQ== X1VOVVNFRA== IFJDQw== IGludHJvZHVjaW5n YXR0YQ== IFByaW9yaXR5 IEZC IFNlcmdl PiI7 YXRjaGluZw== IEtub3dsZWRnZQ== CVRoZQ== O21hcmdpbg== bGVzc25lc3M= b3BhcmQ= dW1hdGlj KCkpKTsNCg== IGZhbHM= KGNhY2hl VHlwZUlk 6YCa X2Nob2ljZQ== IEdvdGg= IFNpdGVz TUc= X2JvcmRlcg== SW5kaWNlcw== Q29tcGFyZXI= IFJlZGlzdHJpYnV0aW9u IGNsb3NldA== IHZlcnNhdGlsZQ== SW5wdXRz KioqKioqKioqKioqKioqKioqKio= IG9iZXNpdHk= cXVpeg== Z3Jh KGdsb2JhbA== 5Yqh IGNvbGxlY3Rvcg== IGtvcg== b3ZhYmxl QURD IEV2ZW50SGFuZGxlcg== Lm5j IHBsYXliYWNr aWVudG9z X3Blcm0= X1dBUk5JTkc= IE9seW1waWNz Lm5vcm0= IEJyb2FkY2FzdA== X3NtYWxs ZHJpdmU= Lmlsb2M= IHR5cGVk TUVN X2NvbnM= RE1FVEhPRA== IGx1bg== LmRpc3RhbmNl KHBhcg== cG9vbg== IGJhc3Q= YWN0aXZpdGllcw== ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA== Og0KDQo= U0VS KSYm X2xzdA== IFBvbGlzaA== IGtub2NrZWQ= IGZydXN0cmF0aW9u YXVrZWU= IHBob3NwaA== aXF1aWQ= X2NvZWZm 5q2k TGF0ZXN0 IER1c3Q= VGlwbw== IG1haW50YWlucw== IG1hcnNo aW5jaW5u bGJs Q2FyZQ== IG5laWdoYm9yaG9vZHM= X2dwaW8= IEFyc2VuYWw= RGVt IFdoZQ== X2hvb2s= IGxkYw== IEhhcnBlcg== IEJlcmtlbGV5 IGdyYWR1YXRlZA== UGVyY2VudA== IGFycml2aW5n IEFkdmVudHVyZQ== KHNjb3Bl KCcq cXVhcnRlcg== IE1hcmll U3BlYWtpbmc= X2NvZGVnZW4= IGltbXVu Y2FzdGVy 44KM 5ZWG IERpbWVuc2lvbnM= LnJlY29yZA== IHRleHRv IE1pY2hlbGxl UGVuZGluZw== KGJ5 X1BBUg== dWNodA== YmVl LlRocmVhZA== YW1waXJl a25vdw== IENsaW5pY2Fs IG1hcmdpbkJvdHRvbQ== IGRpc3Rpbmd1aXNo LkZ1bGw= LnVuZGVmaW5lZA== IFNlcXVlbGl6ZQ== IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw== IGVkdWNhdGVk X09WRVI= 5bqP IMKgIMKg X2VhY2g= IHVyZ2U= ZGVwYXJ0 IGRvbm9ycw== IEF1 IGJpbGxpb25z IGJlbG9uZ2luZw== X2FnZQ== X0ludA== IHN1YnN0YW5jZXM= bWFjaGluZQ== ISEhCgo= IGpzb25pZnk= aWJiZWFu IENhZA== IGVuZFRpbWU= IGN5Y2xpbmc= IFVJVGV4dEZpZWxk IGxldmVyYWdl IHZhbmlsbGE= ZWF0 TGF1bmNo KHB0 c3RhdGVz IENvbnRyb2xz IFJlc3BvbnM= IEpha2U= IGFzbGVlcA== Zm9ydHVuYXRl Lm5leHRMaW5l U2l6ZU1vZGU= 7J28 VGVzdGluZ01vZHVsZQ== R2VybWFu IEludmVzdGln LnJldmVyc2U= IEJBQ0s= KERhdGVUaW1l IG5vbnByb2ZpdA== IEV4cGVjdA== IHRhbnRv J10pLA== CXRoZQ== TXVsdGlwbGU= KGdldEFjdGl2aXR5 X1dBSVQ= IGrDoQ== ZGVjb3I= bGV2YW5jZQ== IEdpdEh1Yg== bWluYXRpb24= X3F1YW50aXR5 LlNjYW5uZXI= IExpb24= 6ZSZ6K+v IGRyZQ== IHRhbnRyYQ== IGNvbnRlbnRUeXBl IGZpZA== X2FsdA== TlNJbmRleFBhdGg= LXBs 5YyW IGFudGliaW90 dGFibGVz YWNpYWw= IFJlZ2lzdHJ5 IG9saXZl aWdlcnM= IHN1YnNjcmliZXI= X3ByZXM= IFN5bnRheA== IGxvdmVycw== LkJ5dGU= b2xkZXJz X2ZvcndhcmQ= YWx3YXlz Q2FwdGlvbg== UHJpdg== IFRhbXBh aXNhdGV1cg== LWxhYmVsbGVkYnk= IFRvU3RyaW5n IOyCrA== IGluaXRpYXRlZA== V0Y= IGluc3RpdHV0aW9uYWw= aW5qZWN0 IFNjcg== IGRvY3RyaW5l IHNwYWNpb3Vz aXN1cmU= IEFuYQ== InRpbWU= ZXNzYWdpbmc= IGNpZA== IE5hbg== IGluY29tcGxldGU= VEFH LWJ1aWxk RGVjZW1iZXI= IHJlc2lkdWFs KFBETw== IExpc3Rlbg== IGdseXBo IGdhcHM= bmVh LlJlY3Q= IHNhdQ== IFBob3RvZ3JhcGg= IGV4ZWN1dGFibGU= IEV4cGVydA== Q29yb3V0aW5l X3NpemVz IE5M LmlzVmFsaWQ= KTt9Cg== LXJlZw== IGNpdGluZw== Y3dk IE90dGF3YQ== IEJhdHQ= IHJlbmV3YWJsZQ== IHByZWxpbWluYXJ5 IGFzeWx1bQ== IHdyaXN0 IHV0aWxpeg== IGRldGVudGlvbg== RmFzdA== IGFuZ2U= aW5jaW5uYXRp IHN0ZWVyaW5n IE5hTg== aW9zaXR5 L3BhZ2U= IOi/ c3Rlcm9s IGRpc2c= KERC IERFU0NSSVBUSU9O IF8k IG9ic3RhY2xl IGJpemFycmU= IGV4dHJhY3Rpb24= X2V4cGVjdGVk IGxvc2Vz IENlbGVicg== IGh0bWxGb3I= IGV4cGxvaXQ= 0L7Qu9GM0LfQvtCy WFla IG1hZ25ldA== YW1wZWQ= IGF0b21z U291cmNlcw== cGVjdGl2ZXM= 0YHQu9C4 ID0NCg== IGRhcmU= IFdhbHRlcg== IGJyaWdodG5lc3M= IGFubm90YXRpb25z 648= aXNrZQ== U2NoZWR1bGU= LmltYWdlcw== cm9zc28= ICIuLg== Z2FtbWE= IGluc3RydWN0b3I= IG92ZXJ3cml0ZQ== LWFt IGRldmFzdGF0aW5n IFNhaW50cw== IGhz IGJvbnVzZXM= JG91dHB1dA== aWpk KEFjdGlvbkV2ZW50 bW9uaXRvcg== IG1hdHRyZXNz SmFudWFyeQ== Lmpw IGNhcmFjdGVy IGltcG9zZQ== X3Jlc3Q= IFNpZ25hdHVyZQ== IGNvcm9uYXZpcnVz 44GK X2NvbXBhcmU= TWVhc3VyZQ== aXRhdGVk ZWxpams= aWdvcw== ZXNhcg== IHJ1c2hlZA== bWV0cnk= X1NFUEFSQVRPUg== X1dF X0FUVFJJQlVURQ== IHlhbWw= IHNwZWNz IFJhaA== cGhlcmlj IEludmVzdG1lbnQ= w6RsbA== IGFwcGVhbGluZw== IHZpZXdwb3J0 56k= IG1hcmdpbkxlZnQ= IHN1YnRyYWN0 IEVESVQ= CUFycmF5TGlzdA== Z3JhZGluZw== IEZhaWx1cmU= YXNwZXI= RUVL KG5vdw== PG9iamVjdA== IEFsaWdubWVudA== cGxlYWRv cXR0 KEVSUk9S IElOVkFMSUQ= IHVzZXJpZA== cmFpc2Vz SURJ IHZhcmlhbmNl IE5pbA== L2RlbGV0ZQ== X01BSU4= LlRva2Vu LkNhdGVnb3J5 PikK Q29sbGlzaW9u IEdyZWF0ZXI= IFJhY2luZw== YWxhbg== IG1vbmV0YXJ5 LG5ldw== IFNvcnJ5 LkVuYWJsZQ== IEluc3RhbnRpYXRl b2xsZW4= 66m0 IENhbGxpbmc= X2hvdXI= QURB IHNoeQ== KSoq ID09Pg== IGVzcGVjaWFs IGludGVycHJldGVk IT0i IHBoYXJtYWN5 LnNpbmdsZQ== IENpYWxpcw== IHBhcmFz LnRvVXBwZXJDYXNl IERlbW9u UHJpbWU= IHJhbmtpbmdz QWRkaW5n X0hBU0g= IEV4YW0= 2qk= IFZpY3Rvcg== T2theQ== Il07DQo= IGZvcnR1bmU= IEZFVENI ZXhwYW5k LkludGVyb3A= IGJhcm4= 5raI dWV2bw== IHNwZWN1bGF0aW9u 4pSA4pSA4pSA4pSA IE51 IEJsdWVz KGZuYW1l IGluaGFiaXQ= IFwiJQ== Q0VT dWxhcmlv X2Ny IHZhbGlkYXRlZA== IG1pZG5pZ2h0 YW5raW5n IGluY29ycG9yYXRl IHB1cnN1aXQ= RVhQ cHJpbWU= UGlk LVVT IE51cnM= IFdoZWVs 6Zg= IGlucA== IHN1cHBvcnRpdmU= Lm1lbWJlcg== IFNob3Q= LkNoZWNrQm94 IGFmZmlybQ== VG9y RnVsbFllYXI= IGNvbnNpZGVyYWJseQ== Y3JlZGVudGlhbHM= X29wdHM= Um9sbA== KHJvdW5k IGNvbWVudA== X1VBUlQ= IGV4dGVuZGluZw== Ukc= cmVzdWx0YWRv aXR1 LmdldFNlc3Npb24= IGF0dHJhY3Rpb24= JkQ= JGh0bWw= IEplc3NpY2E= IEFzc29jaWF0ZQ== YcOx X2Vk IExhZw== IG9yaWdpbnM= KCkpLT4= YWRkRXZlbnRMaXN0ZW5lcg== SUFMT0c= 5ZCm LkNvbXBhcmU= QWxidW0= IEt1 PFE= YXJnZXN0 IHByb2xvbmc= IGNvbmZpZ3VyYXRpb25z IGFjY2lkZW50YWxseQ== X3Bob3Rv ICcnOw0K IHZlcnNl Qm9i IGZhcm1pbmc= ZGVsaXZlcnk= IE1hY2s= IHVzZVNlbGVjdG9y LmJvb3RzdHJhcGNkbg== a2VlcGluZw== ZW55 LnVwbG9hZA== IE1FVEhPRA== Y3JlYXRvcg== PF8= IEVhc3Rlcg== Li0t VUlCdXR0b24= 44KJ b21ldGVycw== IHNoaW5l IGhvZ3k= XHM= IGhhcm5lc3M= LkNlbGw= IGxpZnRpbmc= IGNvbWJpbmVz IE9jY3Vw ZXhjbHVkZQ== cGF0aWFs IHJlc3Bpcg== X2ZpdA== IGZpZnR5 IE1vbA== IHR1bmVk LWRpbWVuc2lvbmFs IHFz IHRvcHM= PiI7Cgo= cXVpc2l0ZQ== Y2hhbm5lbHM= L3Jlcw== IEFuYWx5dGljcw== LmFwcGNvbXBhdA== L3Rv IG9uRXJyb3I= KGF0dHI= SVJN IHJhZ2F6 LWFz LlNlY29uZA== b3JpZW50ZWQ= IGRvbm4= IGxpZ2h0bmluZw== Zmlk IFBsZQ== 44G+44GZ dHJv LlRydWU= T2JzZXJ2YWJsZQ== 15k= dW1iaW5n IHByb3NwZWN0aXZl LWZpbHRlcg== IHB1cnN1YW50 KHBvaW50cw== LkJpbmQ= IHBhbG0= Y2xlYXJmaXg= w7Zz IEdvbno= IHdlYWtlbg== RHJpdmU= ZW5pZG8= bGxk b2JveA== YW5lYW4= R290 5L+d UmVnZXg= 5oM= IHNhbGFk YXNzaXM= Im5ldA== aW5oZXJpdERvYw== IFJW cXVpZXI= IGNsYXp6 xLHFnw== b3N0ZXJvbmU= IGFpcmxpbmU= Lmxpc3RkaXI= IGRvd25sb2FkaW5n IFBhbG0= d2F1a2Vl Jmx0 LkJM X0lOTElORQ== b2Zmcw== PDwo X25ld3M= IGNoYXNl Lz48 IGV1cm9z IEVneXB0aWFu IFN0YWlubGVzcw== X0JPT0w= IEd1aWxk IER5bmFt W2luZGV4UGF0aA== IO8= IG1lbW9yYWJsZQ== IENoYW1waW9u UmVzb3VyY2VNYW5hZ2Vy LkxvZ2lu IEZvcm1lcg== eXBlZA== IGxsZWc= OyIs RFdPUkQ= IHRheGk= IGJvbWJz cmFo LnRhZ3M= X3Rlc3Rz c3RvbmVz 4oCdKQ== W2c= cnR5cGU= IHZ1 IGhvc3RpbGU= Q2hhcnM= IFBhdHJpb3Rz L3N0YXR1cw== PEI= IEluY29tZQ== IERhZA== IHBhdHJvbA== X0NIQU5HRQ== IHVwZ3JhZGVk IGNoaW5h c2V0cQ== U3RhcnRlZA== LlVuZGVm IGNoZWNrc3Vt IGZydXN0cmF0ZWQ= e28= IGVuZg== IHdvb2Rz IEFueW9uZQ== RW5jb2Rl IFF0V2lkZ2V0cw== YXJlYXM= IHNoZWVy c2tp ZW5kcG9pbnQ= X1Rlc3Q= U291cA== fn5+fn5+fn5+fn5+fn5+fg== KGZpbGVz CQkJCQkNCg== LnNwYXJr IHZhbHVlZA== ICUK LmNvbnRyb2xz IFhDVEFzc2VydEVxdWFs IGZhbWU= IFJpYw== RE9U IEFsYmVydGE= 5L2/ b3NhbA== LldlYkNvbnRyb2xz IC0tLS0tLS0tLS0tLQ== IE1pcw== IFNZUw== Tm9ubnVsbA== PWl0ZW0= IGV4cGlyZQ== RGVjb2Rl X29wZXJhdGlvbg== IFZhbGlkYXRvcg== LkNFTlRFUg== dWZmcw== Km0= IGF2YW50 5qyh 4oCcWW91 LnBlcm1pc3Npb24= Li4uKQ== IExpYw== X2Nvb3Jkcw== Lm5vbWJyZQ== Y2xv LkludGVybmFs IENobw== X3N3 CUls Y2xr IGNhc3RsZQ== KGxheWVy cGl0 IGd1aWRlZA== IOKWiA== IHN1cGVyYg== IHN1cHBsZW1lbnRz X2NlbnQ= IHBlZWs= SU5BUlk= LkNvbnRlbnRBbGlnbm1lbnQ= ZmFsbHM= IikpOw== V2FsbA== KS4NCg== IERhbm55 aXJtaW5naGFt SUFMSVo= KGNyZWF0ZQ== Iklu U2VydmljZVByb3ZpZGVy IHByaWNlZA== bWFjcm8= YW1hYw== LmJveA== LS0tLQo= 44Or IFN1aXQ= dXJzdA== YnJ1 b3VybmFscw== bnVtZXJv X18oKQo= RGFz IE1pdHQ= dWRlcg== P1w= ZnU= W0I= IDopCgo= KGludGVy YnJhaW5z IGF0dGl0dWRlcw== VmVyaWZ5 IHNpZ25hdHVyZXM= YWNrQmFy IGdk SmFjaw== LmNhdA== IHp6 d2FyZg== RlRFUg== Iik7CgoK QWxpdmU= SUNMRQ== IFdoYXRldmVy IG91dGxpbmVk c3ByaXRl 0LXQsg== X0FC X0RFUFRI IGNydXNoZWQ= YWFh KGV2 5py6 QW50aQ== SUNP aXNFcXVhbFRv LnN1bg== aWN1bG8= c2FsZQ== X2hleA== IFZr YXB0b3I= VW5pb24= IERpc2NvdW50 bGlzdGE= LlVuZGVmT3I= IGF1dG9tYXRpb24= Tm9y 5a+5 5Y+C5pWw IHJlZmxleA== IExhdXJl LnNob3dNZXNzYWdlRGlhbG9n LnRlbXA= IGFrYW4= IF9fX19fXw== LklzVHJ1ZQ== QVJFRA== YWdsZQ== RW5lcmd5 IHF1YW50aXRpZXM= 4oCZw6k= ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA== IGNpdGl6ZW5zaGlw bW91dGg= IGluYXBwcm9wcmlhdGU= IE91dGRvb3I= V2hpdGVTcGFjZQ== QW5vbnltb3Vz bG9hZHM= d2ViRWxlbWVudFByb3BlcnRpZXM= VGVu IGFjY2lkZW50cw== IGFkdmVydGlzZW1lbnQ= IFllbWVu KGNhbGw= IHNsYXZlcnk= 0YHQvw== IExhbQ== X0JJVFM= b21lZ2E= IE9sZQ== IGtpZG4= X0Fu IFJhaWQ= Q3JlYXRpb24= c2F2ZWQ= IHByb3BvcnQ= V0FSTklORw== XFA= IHB3ZA== RGF0YVJlYWRlcg== aXNjaGVy YWRlb24= IFByZWRpY3Q= IHJlYXNvbmluZw== IGRlc3Ryb3lpbmc= SGVs KmQ= IExlZ2lzbA== X1By CQkJICAgICAgIA== IHN5bXBhdGg= IGNoZXNz IG1hbQ== OmhvdmVy IGNvbnZlcnRz IHBlbGE= IHByb2dyZXNzaW9u ICJfIg== IEdpbGw= CXNob3c= IHN1cHBvc2VkbHk= YWNjdXJhY3k= ZWxpbg== IHVuZm9sZGluZw== IEh5cGVy IHdhbm5h IHVwcw== KCM= IENyaW1pbmFs KFBvaW50 YXRMbmc= YWN0bHk= IGNvbnRyYWN0b3Jz J119 ZHJhdWxpYw== w7NkaWdv IFRU IFdpZGU= IEFSRw== X2lj RkxBR1M= U2Nob29s IGNsZWFyaW5n LWJlaW5n PXtb LGNvbnN0 bWFuZW50 T3ZlcmxheQ== KCci 6YeP IFRpbWVzdGFtcA== IG1haWxpbmc= IENha2U= LlRoYXQ= IG1lZGl0YXRpb24= cXA= IGVtcHJlc2E= IExpb25z IHdlbGQ= IExpbmtlZElu IGN1c2g= IGdlbm9tZQ== LkluZGV4T2Y= YWdhaW4= IGZhbGxiYWNr IGNhbXBpbmc= cmVkZA== LXN0cmlwZWQ= IGR2 RmVicnVhcnk= IFByb3h5 dXNr IGRpZXNlbA== V1JJVEU= UkVBSw== TG9yZW0= Lkludm9rZQ== LWRpdg== SW50ZXJjZXB0b3I= IERI aWFsZXM= IHZpbGxhZ2Vz 2LQ= IEVOVg== U3lz LlhS IHBvZW0= w4I= Y2FkZQ== cGxvdHM= IHso LmdpdA== L3N2Zw== bmNtcA== IMSN YWluZXM= 5Ye95pWw ICgpCgo= b3BzaXM= IFJlbGF0aW9uc2hpcA== X2F1dA== IEJvbWI= CWNvbQ== KnNpemVvZg== b2ZmaWNpYWw= X3BheWxvYWQ= CQkJCQkgIA== Lm1hbmFnZXI= IEFyb3VuZA== CXNlbmQ= IEV4ZXJjaXNl IEJpbGx5 aXZp IG5lZWRpbmc= X3VybHM= X3Rhc2tz IEhlbQ== IHRlYXJEb3du ZW5jcnlwdA== LnRpZQ== IGFzbQ== SUNI IENHUmVjdE1ha2U= 7ISx dWxvbmc= IGl0cg== IEdTVA== IG9mZmVyaW5ncw== cm9iZQ== RUVF b3BlcmF0b3Jz X1BST1A= aW5kZW50 QURF b3Jm 65A= IGJsZXNzZWQ= dmFzY3VsYXI= IGNvbm9j SGFwcHk= QnJpZGdl aWxpdGF0aW9u am9pbnQ= IEFkbWluaXN0cg== LXRyYW5zZm9ybQ== IG1lYW50aW1l L0s= IEJlZHJvb20= IHJpZ2lk IGJyb3dzZXJz RU1QVFk= LlNlcmlhbGl6ZQ== X0VE IHN0aXRjaA== IGphbg== ZWxsdA== IGJyYWNl IHRyYWlscw== cHVibGlzaGVk 5a+G56CB fScpCg== IGFjaWRz ICEhIQ== X2RpcmVjdA== PigpKTsK YWrEhQ== X09DQw== IHBsYW5ldHM= 5p+l IER1Ymxpbg== IHNlcmll LnByaW50Zg== ZGVlcA== YCk= IFwk IM68 X1ZJREVP ZW5kb3Jz IENyeXB0bw== RmFy LlRyYW5zcGFyZW50 LlRS aWFzbQ== X3RyYWluaW5n IHRlYWNoZXM= IEJlbHQ= IGxpbWl0aW5n IEthdGg= IEluZGV4UGF0aA== IGFjaGlldmVtZW50cw== IHNlcsOh aW50ZXJvcFJlcXVpcmU= IGRpc3Nl Lklm YXJtaW5n dWxzaW9u UG8= X0RFVEFJTA== UHJvdG90eXBl IENBTA== IGFncmVlcw== LnZv LkV4ZWN1dGVOb25RdWVyeQ== IFRvcGlj ICd7fQ== QXJt IGVjYw== TWFn IHNlcmlhbGl6ZWQ= CWNvbm4= Y2FjaGVk PXRm IEJ5dGVBcnJheQ== cHJvdG9idWY= dmFyY2hhcg== CUFTU0VSVA== IGxpc3Rl X3RyaWdnZXI= t7g= RmVlbA== VGFob21h IExpaw== IHN0cnVjdHVyZWQ= ZXJndXM= LkluaXRpYWw= X2dl Y2xqcw== LmNvbnRhY3Q= IGFuZGVyZQ== JHN0bXQ= X0NVUlJFTlQ= IERpc2NvdmVy JHJlcw== Zm9ybWF0dGVy SGE= dmFuZ3N0 IGVtZXJnZQ== 44CC4oCd IENhYmluZXQ= LXNxdWFyZQ== 6YOo IHJhZ2U= IEFK IFZU c2hhZG93 IEZhaXRo ZW5hbWVz cHJldHR5 aGFzaWw= cGFydHk= IHZhcmNoYXI= IGZvdG9z IGFsdW0= IEJlbGdpdW0= LnlsYWJlbA== IGRlag== X251bWJlcnM= IGh1 LnNldEFkYXB0ZXI= IFVzdWFsbHk= KHNhbXBsZQ== LlNoYXJlZA== IGJvb2tlZA== ID4+PQ== IG1pbmVyYWxz Ij48Pz0= IGFkanVzdG1lbnRz IERM IHZpYnJhbnQ= IERlcGVuZGVuY3k= IHphcA== L1g= IGZvbnRz dHJpcA== 0LjRhw== IHR1YmVz Y2xhbWF0aW9u IOun IHByb3RhZ29u b3Vwb24= IEJydXNo KHByZWQ= b3VybmV5 J10pLT4= cHJvZw== Ym9v X21k X3BhY2s= KGV4cHJlc3M= dXR6 XEF1dGg= LGlk IENoaWxl YWN0aWNl IHJlY3J1aXRtZW50 IHBvc2Vz IHZ1bG5lcmFiaWxpdHk= aW5zdGFuYw== b3J1bQ== ZGVzcw== IHhs JSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSU= KGZpZw== IGRlbGV0aW5n LmRlbA== KScpCg== IFdlZWtseQ== Pz8/ KHN0cmNtcA== c21pdGg= IHB1cnN1aW5n LXNv IEFwcHM= LycK IGRlY2lz Rk9SRQ== RXZlcnlvbmU= IGxhbmVz VmlydHVhbA== LmF0dGFjaA== KExvZw== IE1lZGljYWlk KFBhdGg= IFR1cm5lcg== L2FwcGxpY2F0aW9u IHBvcnRyYWl0 IG9wcG9zZQ== Y2hlY2tvdXQ= IGZpbmlzaGVz X01F QmFycmllcg== U29uZw== VkFS RWFybGllcg== cmVsbGE= IGhhc3Q= YXphcg== IHB1bGxz bmd4 IGluc3BpcmluZw== 0YPRjg== LWRpcmVjdGlvbg== IGV4cGxvc2l2ZQ== IGNyZWF0ZWRBdA== c3Rv IHdoZWF0 IEJ1aWx0 J2Fp IHRyYWNrZWQ= aGFtbWFk Um93QXRJbmRleFBhdGg= X2hlYXA= RHVl IGNvbm5lY3Rz LnB1Ymxpc2g= ZW11 IGJ1bGxldHM= QkFS b2xhdGU= IGludGVybmFsbHk= IGNhdGNoaW5n LXBhc3N3b3Jk b3VjaGVk 5oCn ZW91cw== IHhyYW5nZQ== UXVhbGl0eQ== dnY= TWFuYWdl KCgk YWNlbWVudHM= IEJyb3RoZXJz IEhFQUQ= IFVuc3VwcG9ydGVk c2Fu ZXNp KioqCg== IGFkYXB0YXRpb24= IFdvcmtlcg== J10v LnNhdmVmaWc= KHRyYW5z 2Kw= bmVl Q29ycmVjdA== Li4uIikK IHN1Ym1pdHRpbmc= LXBhdGg= CWxhc3Q= aXNzYW4= LnhsYWJlbA== IFNlcGFy L25v X2Jlc3Q= IE1pbGxz X3NvY2s= KGZsYWc= IGRlc3RpbmF0aW9ucw== ZW1wdGlvbg== IEZBSUw= 5ZKM IHJw ZmFjdA== CWxlbg== REFZ IHNlaXo= X2RzdA== bGlw LkxpbmVhcg== IEJhc2tldA== JHQ= JGk= LWJyYW5k IE5laWw= IEVx IHRob3U= b2dlbmU= IHNjaG9sYXJzaGlw 5pu0 IHN3bw== YWdpbmF0b3I= ZW5p KGJvb2s= IGJsaW5r dGh1cw== IGNhbmNlbGxhdGlvblRva2Vu IFBhbGVzdGluaWFucw== IHByb2ZpdGFibGU= IGJhY2twYWNr ZW5zb24= PExvbmc= IHBvb2xz IHN0aWNrcw== IHNwb2tlc3dvbWFu QmVpbmc= IEhlcml0YWdl IE5pa2U= U0hB IE5vdEltcGxlbWVudGVkRXhjZXB0aW9u JGNvcmU= IFJpY28= L2xhdGVzdA== IEN6ZWNo bmVyUmFkaXVz KGxpbmVz IHNlbWVzdGVy IHdvdW5kcw== UHJvY2VkdXJl Lm1haWw= KCkpOgo= IGNvcnJpZA== dGVyZWQ= IE5DQUE= IGdhbGF4eQ== X2tpbmQ= aWxr IHRyYXM= X1BPTA== IEhldA== IHJlZnVnZWU= IHRlZW5hZ2U= LmJpbmRpbmc= cG9zdGFs IGnDp2lu IERhdGFUeXBl 6ZY= eWNsZXJ2aWV3 LHZhbHVl X2lkZW50aWZpZXI= PGI= IG91dGZpbGU= DQogICAgDQo= IGNyw6k= IHJlc3BvbmRlbnRz IEJlYXN0 Y2VsZWQ= IGludGVyZg== LXRoZW1l Z2lm IFJhbmdlcnM= SVRBTA== IGF1dGhlbnRpY2F0ZQ== Q29tcGxldGlvbg== dXJzb3Jz IGNpbmVtYQ== IGRpc2NvdXI= IEphdw== T0NLRVQ= IHByYXllcnM= IEx1aXM= ZnJhZw== PVsK IGJyYXZl X3Bvc2U= Q2VydGlmaWNhdGU= LWZl aWZlcmF5 IEZsYWdz Q29udGFpbmVyR2Fw IENyaXQ= UmVzdWx0U2V0 CWN1cg== IGNvcnJlc3BvbmRz U3RhZmY= Lkh0dHBTZXJ2bGV0UmVxdWVzdA== IG5ldXJvbnM= IE1haW5BeGlzQWxpZ25tZW50 ZWRhcg== IGdhZA== X3BhcnRz IM6y IGZ4 L2ZpbGVz IEJyb3M= aGlwcw== IGdsdWNvc2U= IGZhcm1z IG1lbnRhbGx5 cmVzdGF1cmFudA== VGFibGVOYW1l IE1lcmNlZGVz LlZpc3VhbA== IGFuY2g= aW5hbGc= X3J1bnRpbWU= IHByb3ByaWV0YXJ5 IGludGVudGlvbnM= aXpp U2xpY2U= OyI+PC8= X1dPUkQ= XE1pZ3JhdGlvbnM= IEVOQUJMRQ== X1BBUkFNRVRFUg== IEJpc2hvcA== LnN1YmplY3Q= aWxsYXM= Lm1hdHJpeA== dXJyZW5jZXM= Knk= IGNvc3RseQ== IENodWNr IGNsb3Nlcw== IE1pZ2h0 LXN0b3Jl IG1hbGw= aWV0ZW4= LkFicw== IGNvdXBsZWQ= LmJhc2lj IDo6Ojo6Ojo6 TWFrZXI= Y2Fubm90 IGFjaA== IEVsaQ== 4oiS b3JuYQ== IGNwcw== IHRoZXJlb2Y= IEB7 IE5TTXV0YWJsZUFycmF5 zr0= cHJvZHVjdGl2ZQ== U3F1YXJl dGVtcHRz IGVsaW1pbmF0ZWQ= PE0= IGNvbnNlcnZhdGl2ZXM= IFN1cmc= LnBhcg== IEJ1Y2g= KmI= Rm9ydA== Q29sb3Vy IENoaQ== ZWRpYw== PnRydWU= IE5ZQw== IGJvcmVk IERldGVjdA== IGFwcGFy IGplYW5z IFRhaw== SU9E IEhvcnNl KEZJTEU= KD8= cmlxdWU= b3B0aW1pemVy bmF0 bG95cw== CVRva2Vu b3VidGVk dWVzcw== b2NvYQ== RGF0YU1lbWJlcg== X1BPV0VS Y2xhc3NMaXN0 UHVzaEJ1dHRvbg== IFdpRmk= LlN0cmVhbQ== Lmd1aWxk IG5vZw== IFBvcnR1Z2Fs IFVudGVy UHJpbWl0aXZl Ym9zcw== IERldXRzY2g= IGVyb3RpYw== IHN0cmNvbnY= LlRyeVBhcnNl IGdyYW1z LlN1Y2Nlc3M= X3Br IEhhcnZleQ== LW1pbmRlZA== LmNvdW50cnk= W10i IGFuZ2Vs IGJlYXRz IFZvcg== aWxpbw== Lm1hc3Rlcg== c29tZXRoaW5n IFBBQ0s= KGlm UmVxdWVzdEJvZHk= IGFudGVz L3dpZGdldA== IG1vZG8= IEFX ZmluZGVy IG9wdGltaXplZA== IG1pc3NpbGVz TkI= CWludGVybmFs dGV4 IFNyaQ== IGRhbWFnaW5n IE1haXM= LUFsbG93 IFpo LWFsdA== ICkpOwoK 6Ik= IGluZmx1ZW5jZXM= IGNhdGFs X1JFR0lTVEVS IEFQSXM= LWNlbnR1cnk= IGJpb2xvZ3k= IEFjdHVhbA== IGhlZWxz VFJBQ0U= X0RJRw== RGF0YXNldA== IE1hdHRlcg== IGNsYXNzaWZpZXI= Lndpa2lwZWRpYQ== IFJvZ2Vycw== IGRvbmF0ZWQ= cmF3bGVy ZW5lbg== IGNhc2lub3M= b3J0YWw= IHByaXZl c3Bl ZHVjZXJz LmVw IGdyYXNw YWNqaQ== IGRhaXJ5 IGJ1c2Vz LmNvbW0= Lmlucw== IElSUw== IEJlZXI= YWRj b2FyZA== X01FVA== ICcrJw== cmFucw== IGtpbmRh IOKUgg== IE1hdXI= 0LDQsw== IGJhbmR3aWR0aA== aWJ1cw== IERpZmZlcmVudA== KG1hdA== IFJlc3VtZQ== X1VOUw== ZXN0YWJsaXNo IGZvbmN0aW9u U3Vic2NyaXB0aW9u X2NvbXBhbnk= IGxpZ2h0bHk= LmNvbmZpcm0= LnlhbWw= IEJvb3N0 Q29tbWVyY2U= LXRlbXBsYXRl X0RFTEFZ IEhJ IG5hdmln KFNlbmRlcg== IEhT XyIr IFJFUVVFU1Q= IHdpZmk= PSIiCg== XSktPg== IHJvcGU= IHZpb2xhdGVk IGdsYW5jZQ== IEt1cmQ= IOiu ZGVjaw== IElTQk4= IGluZmVjdA== IEZvbw== IGdldHRlcg== IHRlbmVy YXBwZQ== Lmho X2hvdA== PEFN cG9seQ== ISIsCg== IGNvbnZlcnRpbmc= IFdXRQ== Uk9T KCd7 Q29tbWl0 KUw= IE9yZQ== IHNwYXJzZQ== IGRpc3Bvc2Fs IGNhbmNlbGVk 5ZCO IGFlcg== IHZpbnls 4buD cmVjb2du YXJraW5n IHRyaWNreQ== KnM= IHByb2NlZWRz IGlzbw== IGNvY29udXQ= IGNyYWZ0ZWQ= SUVMRFM= IHF1ZXN0bw== IGNvbW11bg== X0NPTk5FQ1Q= IHRyYWZmaWNraW5n RGVlcA== YcOnw7Vlcw== Y29kaWdv dmVhdQ== IGJldHJheQ== aW50YQ== VEVE w6Zy bWFydA== X0JVUw== L3Nj aWFsbHk= IGNpZ2FyZXR0ZXM= 6K+B KG5u IG1vZGVsaW5n L3Byb2R1Y3Rz d2Fybg== IG1ldHJv IEl2 Jik= IENhYmxl zrs= Q29tcGFyaXNvbg== Z2FyeQ== IEJB UEFSVA== IHB2 X3VwZGF0ZWQ= Q3JlZGl0 b3J0aHk= b2JzZXJ2YWJsZQ== IHRoZWF0cmU= QkxF O30KCg== bGF1bmNo X3N0cmluZ3M= dWdv IFJQRw== LWF1dGg= 0KA= aG9sbQ== IFBhbmQ= VWlk IGltcGx5 7Jy8 J109Jw== L1VzZXI= IHN0cmNhdA== 0L3Ri9C5 RGF0YUFkYXB0ZXI= IGxhbmRzYw== IGRpcGxvbWF0aWM= 77yT KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg== IENoaWNrZW4= IGJjcnlwdA== LkluZg== W2NvbA== IFF1YW50aXR5 LXBvc2l0aW9u IGRpZXRhcnk= IGZpbG1t SXNyYWVs UHJldg== IE1pbGxpb24= IHJlbWVk IGJpbGxpbmc= IG91dGRvb3Jz LnRt IG5hZA== Rm9yZw== Wlo= IHNzbA== XSwn S1Q= ZnJlcQ== PWRvY3VtZW50 Ymx1cg== rLg= IEplZmZlcnNvbg== Q3M= KHNhdmU= IHN0cmFw SW5kaWE= IGlkZW9sb2d5 Qk9TRQ== IEZQ KGFucw== IGZldmVy IFlhbQ== S2luZw== 4LI= QVRJTkc= Ym9oeWRy cm9sbGJhY2s= IG5ld05vZGU= IE5WSURJQQ== IGhvbm91cg== IENvbmZpcm0= eGJk IHN1Y2Nlc3Nvcg== L3U= bGl2 b3VybmFtZW50cw== QXR0YWNobWVudA== IGdydXA= IHRyaWJl IGNhcmVz ZWZ0 X3NhbWU= J2xhYmVs IOOAkA== TW90b3I= IGluZXhw ICIoIg== X1BPU0lUSU9O IHZhbGxleQ== IFJlc3VsdFNldA== IHByZXNlcnZlZA== IG11dGF0aW9ucw== IHF1ZXN0aW9uaW5n bXVuaXRpb24= cGFyc2VJbnQ= IFNy IE1ldGFkYXRh 4oCd77yM dGltZXN0YW1wcw== IHRyYW5zaXRpb25z 7Zk= 0Yo= aW9t LkRv IHBpbmU= IGZ1bmc= IHRyYW5zbWl0dGVk Y3RpbWU= IEZhbQ== UmV2aXNpb24= QmFz VVBFUg== RGVzdGluYXRpb24= dG9IYXZlQmVlbkNhbGxlZA== IHVuZm9ydHVuYXRl SU5FUw== X3Byb2Y= QW1vbmc= IEN5YmVy IEJhdHRlcnk= Z2VucmU= IFZpZXdNb2RlbA== LT0= IHV0aWxpemVk cGFpbnQ= LkludGVnZXJGaWVsZA== ZXJuaXR5 Y29tcGlsZXI= 4oCLCgo= IE1hc3RlcnM= LlRvQXJyYXk= IHN0cnRvbA== IFVrcmFpbmlhbg== fSkpOwo= IHNoZW1hbGU= IlRoYXQ= Zm9yYWxs L2Rvd25sb2Fk IHJoZXRvcmlj LmxhdGl0dWRl IFdIRU4= IHNob2NraW5n SUZJQw== Lk5vcm1hbA== X0ZPTERFUg== IGRyaWZ0 IG1vdW50aW5n LWJvb2s= ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK IFdpcmVsZXNz PiIuJA== IHJlbGllcw== KENvbnNvbGU= SW50ZXJuYXRpb25hbA== LT57JA== TWlk IGRpc3NlcnQ= ZGRz IGRlcG9zaXRz CWRyaXZlcg== I2dh cHJpc2luZw== cHJpbnRsbg== IHByZXNlbnRlcg== IG1pbmVz Q1NT IER1YWw= KCEo IGthbQ== IGlzTG9hZGluZw== IFByb3RlY3Q= LnVwcGVy YXJpdW0= XToKCgo= WWlp LXNoaXJ0 IElNQUdF X2NvbG9ycw== IHVyZ2VudA== LkNvbnRhaW5lcg== ISgK U2F0dXJkYXk= IHNvY2lldGllcw== IFRoYW4= IENvZA== PUA= IGF0dGFjaG1lbnRz Lm1vYmlsZQ== IHNwaXRl IGJvdW5jZQ== cmF3bA== aW5zdGFuY2V0eXBl IFRydWNr IG1hbmlwdWxhdGlvbg== KENvbmZpZw== LWluc3Q= IHN0b3I= aXR1dGlvbg== UHJlZmVycmVkR2Fw IG1haW5BeGlzQWxpZ25tZW50 IGxpc3RlbmVk JycnCgo= b3R0YWdl LXByb2plY3Q= LkFQUExJQ0FUSU9O CXJvb3Q= IHdoaXQ= IGJpbGRlcg== IGtlcg== IGFwcGxpYW5jZXM= cm93YXZl 7J2A ZW1hdGljcw== IE9yZw== b3Bpbmc= X1NFQVJDSA== IGNoYW0= YWRkQ29udGFpbmVyR2Fw ICgpLg== IEFycm93 SWxsZWdhbA== Q3VycmVudGx5 IHVzYQ== IHBhc3N3b3Jkcw== IHJlbm93bg== YXZlcm4= IEV2aWw= IGNvbmNhdA== IGR1bw== IHZhbGU= IEJlYW4= IGluZGljYXRvcnM= Y21hdGg= IFB1bXA= Tm92ZW1iZXI= aWZpY2FudA== X0RPTUFJTg== cmVnYXI= IFBvcnRhbA== IiQ= IGZvcm1lcmx5 Il06Cg== IFZpc2liaWxpdHk= LmdldEVsZW1lbnRzQnlDbGFzc05hbWU= X1JFRA== IGNoYW1waW9ucw== 4LQ= VmFsb3I= X2Vz KmE= LXJlcGVhdA== QmFuZA== LnN0YWdl IGJ1cmVhdWM= Q250 ZXRlbg== LWZ1bmN0aW9u IG11aXRv UElE X2VkaXRvcg== IGNyYXNoZWQ= ZGVhZA== a2F0 YWdo IEVYVA== YXNzZXI= LXNtYWxs IHJlYWxpeg== KEVudGl0eQ== w7pz IEFjdHVhbGx5 IEVsaXRl IGhlbG0= KG5vbmF0b21pYw== YXNoZXI= Q29tbXVuaXR5 YWxsZW5n aXJ5 IEdyb3d0aA== IHN1ZQ== IGZyZXF1ZW5jaWVz X2Rlc2NyaXB0b3I= LkF0dHJpYnV0ZQ== IHJlY2lwaWVudHM= X05T LyIr aWJhbg== IGF0aGxldGU= IElnbg== X0RNQQ== KGRz IFJlcXVpcmVtZW50cw== QURJ ZXJleg== XEFkbWlu YnJhc2th IFJ1c3Q= UmVsYXRpb24= Q09E IFZFUlNJT04= ZW1tYQ== KSl7 LkR1cmF0aW9u IENhbWI= LWxvZ28= IHJlYWRhYmxl IGNyZWF0b3Jz KCldOwo= VXBEb3du LWhhbGY= LmdldE1vbnRo KHNm UGlj IGh1bmdlcg== LnR4 IGV4Y2VlZGVk X3NlZWQ= KF4= X3Nr LnBlcmZvcm0= ID46Og== IG1vbmdv PWZsb2F0 YmluZFBhcmFt U21hcnQ= aWZh IHNlY3VyaXRpZXM= IHByZWp1ZA== ICwi IGNvcnBz IHZyYQ== YW1hY2FyZQ== aXRlcnI= KE1lZGlh dWNoZQ== IGNvYg== IGxpYmVy Lmdlb21ldHJ5 TG9jYXRvcg== IHNsaWRpbmc= IHN1cmdpY2Fs X0NVUg== IGNvbnNlY3Q= Wyo= IFJlc29ydA== U3R1Yg== X0RPVUJMRQ== IFNvcGg= IGVsZWN0b3JhbA== X2Rpc2FibGU= INGB0L4= IExpZ2h0bmluZw== IG1lbnRpb25z b2N5 IGxlYWtlZA== IHJlbGF4aW5n UHJlc2VudGVy dnNw IGd1aWx0 PS09LQ== LnJlcGx5 IE1pcnJvcg== Q2FtcA== ICsjKyMrIys= ICsjKyMrIysjKyMr LkF1dGhvcg== IGRpcmVjdGl2ZQ== LWhvb2s= 7YSw fQoKCgoK QHB5dGVzdA== X3JhbmQ= bWlz IGNvbG9yZnVs dWpl bGFzc2Vz IENsYXNzZXM= LmhhdmU= JSks 6aKY IGRpc3R1cmJpbmc= c3Vic3RyaW5n IEtvaA== SW52ZXN0 cHVyY2hhc2U= IHJlY3ljbGluZw== IEFSVA== aWVyYXJjaHk= IGZwcw== LmNoZWNrQm94 7ZW0 X21hdGVyaWFs ZHVjYXRpb24= IGZ3 dWRpdA== IHJldmlld2luZw== IFNpZA== U3ludGF4 IFdyaXR0ZW4= YXJnYXI= VU1F L3E= Q2xhc3NpZmllcg== T2ZmaWNpYWw= IGpheno= IG9tZWdh UGh5c2ljcw== IGx1Z2Fy X2FjY2Vzc29y LmNvbW1hbmRz QWJpbGl0eQ== IEJhdGNo UkFN IGVuY291bnRlcnM= LlF1 QllURQ== IERpc3RyaWJ1dGlvbg== IHVzbw== IFJlY292ZXJ5 YXBwcm92ZWQ= IGRlbmlhbA== L3NoYXJl TGlua2VkTGlzdA== KQ0KDQoNCg== dWRkeQ== IGZpbmVz IHJ5 VW5pY29kZQ== CXJlbmRlcg== IHByZW1pc2Vz IHBvbg== YWxpYXNlcw== L0ZvdW5kYXRpb24= Y3VkYQ== IENvY2s= LDop KGZvbGRlcg== IG3DqWQ= ZHJhZw== IHRhbGVudHM= ICAgCgo= 0LXRgdGC0LI= bW9i LnltbA== IGFzdGVy IGRpc2NyZQ== Z29hbA== IEdUWA== IFNVQ0NFU1M= IExPTkc= KGZpbmQ= IHNpbmd1bGFy X3N6 IEV0aGVyZXVt Li4K IGlycmVz Jykpewo= IG1pbmlzdGVycw== U3RlcHM= aXZlcnNhbA== IE5ldmVydGhlbGVzcw== LWxlZA== ICglKQ== 56Gu IHRpbWV6b25l IHN0cmFuZ2Vy KHJlbmRlcg== IHNodXRpbA== IG1waA== IHRyaW8= cHB5 IHByZWRvbWlu IGVuZG9ycw== IFJ1c3NpYW5z CXJvdw== IHdpemFyZA== LnNlcmlhbGl6ZQ== IGNvbXBsYWluZWQ= IHNpZG8= IGRlbGlnaHRlZA== LW1l IFJhdg== SHVtYW4= YWRheXM= cmVjdg== V29ya2luZw== SnVtcA== IMOlcg== IEF1dG9tYXRpYw== X0Jhc2U= 5qC8 YXVyYW50cw== wq8= 5rg= KENUeXBl SUZJ KGFtb3VudA== IGJlbGlldmluZw== PW15c3Fs IGZpcg== IHJlc3RvcmF0aW9u ZXJlY28= 0KI= Xycr IGVib29r IGRlYnJpcw== KGlucHV0cw== QVlPVVQ= IHNjcmVhbWluZw== YXZpYQ== bGFuZGVy IGRpc3RyZXNz IGFzc2VtYmxlZA== IEF2b2lk KHRocmVhZA== IFJQQw== X0VYSVQ= KHF1ZXVl 0LjRgdGC RGxs IHNrdWxs X3B1Yg== Y2hleg== bWluYXRl ZW5zZW4= IGluc2FuZQ== Ym91bmRz IFJvc2Vu IGNvbmRpdGlvbmluZw== cHJvY2Vzc2Vk dmlkZW9z Zm91cg== LkNvbnY= fDsK UGVyc29uYWw= Y2VycHQ= OlVJQ29udHJvbFN0YXRlTm9ybWFs IGRvc2Vz IEthcmw= IEZyZXF1 LkJBU0U= IFZvdGU= IGNvbmN1cnJlbnQ= IE1lc3NhZ2VCb3hJY29u IMOW IER1YmFp IFJldGFpbA== Om51bWJlcg== IE9ic2VydmVy IEJpZ0ludGVnZXI= X29yaWdpbg== X1dPUks= RnJhbWVz IG5vdGFibHk= LuKAnA== IHRyb3BpY2Fs IG5pY2hl YW1pbmE= LnN5cw== KHRva2Vucw== bW9kaWZ5 b3NpdA== c3Ryb20= IENvbWljcw== T1BUSU9O VGlja2V0 IGZhY3Rvcmllcw== IGRpc3B1dA== X0ZpbGU= IEZpbm4= ZWVl IERpc2NvcmQ= X21vbmV5 LnRwbA== X3NhZmU= TEI= IGdsdXQ= Sks= LmZsb3c= LWNvbnQ= Z29z IGhvcml6b24= IFJ1c2g= Ojoq UGlwZQ== dWxsYQ== Ym9yb3VnaA== aGVpbWVy KG1vdmU= KFRleHQ= fSk7DQoNCg== d2VsY29tZQ== IENvbXBvbmVudHM= IGdvdmVybmFuY2U= Y2xvc2Vk CW1hcmdpbg== IGxhdW5kcnk= IFRlcm1pbmFs aXphcmRz LuKAlA== LnJlbW90ZQ== LnJhZGl1cw== IFF1ZWJlYw== IGRo VGVjaA== IE1pc3Q= c2VsbGVy X2xpdGVyYWw= IGdlbml1cw== IGJyYWlucw== Z2Vt IE1lYXN1cmU= IGNhdGFzdA== cmFuY2U= LlRleHRGaWVsZA== IGNvbnN1bWluZw== ICdcJyc= b3VidGVkbHk= IENlcnRhaW4= RXY= ZXJ0aQ== YmVpbmc= RXhwZXJpZW5jZQ== IC8vWw== IEFyYWJpYw== IENyaXN0 IEF6dXJl IGhvcmE= bGFkZXNo XEJsdWVwcmludA== ZGFy LnJlbA== IHN1cHJlbQ== IFJlYWdhbg== IEF0dHJpYnV0ZXM= LXNpZGViYXI= IHVzZVN0eWxlcw== IEFpcmxpbmVz IGhpbGxz L3hodG1s dmluYw== X21vY2s= CiAgICAgICAgICAgICAgICAK IFBpbGw= LkxheW91dFN0eWxl IENvbW1hbmRlcg== XTw= c2lnbmF0dXJl IHt9DQo= IGhhdHJlZA== IOuL b2xlc3Rlcm9s ICoqKioqKioq YW5jZWxsb3I= Y3JvcA== VElN CQkKCg== eXNxbGk= dWl0aXZl CXVuc2V0 X3NlbA== IG1lbnVz dGljaw== IGNvbnN0aXR1dGU= IEVsZW1lbnRz IFJlZGlz YWdnaW8= X2Zw X2RlcGVuZA== ZW1hcw== Q0FTVA== b3Jhbmdl am9u IEVtaWx5 IHBvdGF0b2Vz IHJlY2VwdG9y IEVsZWN0cm9uaWM= IExpZ2h0cw== IGNvbWJpbmluZw== IFNvbWVvbmU= ICMjIyMjIyMjLg== IFRPRA== L3Nob3c= WGQ= LiIn YWZ4 IHRyYWdpYw== U3R5bGVk IE1hcmNv R2FsbGVyeQ== ZGFsZQ== LuKAnQoKCgo= w6lyaWU= L3NlcnZpY2U= 5LqG IGFtYmllbnQ= X1NFVFRJTkdT LkFkYXB0ZXI= bGVuZQ== IHRyYXZlbHM= Tm90aWNl IGNsZWFucw== IEZlbQ== Y2hhaXI= 0YPQvQ== L215 X2JhZA== IEVjb25vbWljcw== SVNB X0NOVA== KE1lbnU= 5LqO IFJpZGdl IGxlbmd0aHk= RG90 IGp1bXBz IGhleQ== JHBkZg== IHdvcm0= IHN1dA== IHNoZXI= aWFtbw== IENhbGM= dHJpZXZl IGNvcHM= IENocm9t IHJlZ3VsYXRlZA== cmVhdG1lbnQ= IEhpZ2hlcg== b2tz IGRlemU= TE9DQVRJT04= b25nc1Rv IGZpbml0ZQ== IHZhcmllcw== IHBvc2l0aW9uZWQ= J2ls 6YeR IGhpa2U= KGRvbmU= cGxheWxpc3Q= IGFkYQ== IGNvYXN0YWw= IE5hbmN5 LkRhdGVUaW1lRmllbGQ= Q3BwQ29kZUdlbg== IFNpbWlsYXJseQ== cmV1cg== IENvbnRy IEhpZGRlbg== IEJldGE= YXRjaGVk X2luc3RhbGw= Lk91dHB1dA== TG9va3Vw IFJpY2htb25k cXVhcmVk IG1hbmdh LWNvbnRyb2xz IEJlcm5hcmQ= TGFyZ2U= IHNsaWNlcw== IG9mZmVuY2U= IE1lZ2E= IGVzdGFy IGpvaW50cw== IHN1bW0= X3BsYXRmb3Jt QnVmZg== LmFkZFN1YnZpZXc= IHJldGFpbmVk TGV0dGVy LmRpbQ== IGVzc2VyZQ== IFNjYWZmb2xk RVhQRUNU CVJF LmxvbmdpdHVkZQ== w7xuZA== IHN0YXR1ZQ== LmFkZFdpZGdldA== IENhcmliYmVhbg== YWRkUHJlZmVycmVkR2Fw aWxkZQ== VUlMYWJlbA== IE9wcG9ydA== IGltcGVyaWFs dXJzaW9u IG1hbmRhdGU= IHByb21vdGlvbmFs IHZr aWHFgg== IHB5bA== IENyZWF0aW9u 0L7Qt9C0 IHNpbXBsZXI= LndoYXQ= IFJlY2VudA== U3Rvcm0= LnF1YW50aXR5 IExvdg== Ii0= dWJibGVz X25vdGlmaWNhdGlvbg== KHdvcmxk dXJnZXI= Kigt OiIK aG0= YW5zaGlw IEFsbW9zdA== IG1vdG9yY3ljbGU= X2ZlZQ== IGFic29yYg== IFZpbmNlbnQ= IHNvdW5kZWQ= w61zdA== IHBoYXJtYWNldXRpY2Fs aHRhZw== IEtpbmRsZQ== aXRhbGl6ZQ== IEVtcGVyb3I= b3VzdGlj IHNwZWNpYWxpc3Rz 5YWs Qm9yZGVyU3R5bGU= L1w= UkVMQVRFRA== KCcsJyw= KGV4cHI= IGh0 5Y2I X0NyZWF0ZQ== IHNwZWNpYWxseQ== IFtdOw0K IGhlZWw= IHNlcHQ= X2FyY2g= KGluaXRpYWw= JS4KCg== XCIsXCI= IGRpc2N1c3Nlcw== IHVwdA== IFsm IG1hbnVz LmhhbmQ= IE1BSU4= IERlbm1hcms= IF0sDQo= IGNyeXN0 IG5hY2s= Q29vcmRz X2lubmVy IG1pZHN0 IGF3YWtl INCe LWJyZWFr w612ZWw= X1BBU1M= IFBhcmFtcw== IGRldHI= IHNwaWRlcg== IENvbmNlcHQ= IHByZW5k Q0hFRA== LkV4aXQ= IHBvcHVsYXRlZA== IHZpcnR1ZQ== X1NFU1NJT04= IG5vdXZlbA== b2F1dGg= INC00LDQvdC90Ys= cmluaw== LkhlYWRlclRleHQ= YXR1cmF0ZWQ= IGVyc3Q= IOWF 4KWH X3Zpc2libGU= ZXllcg== IGxpYWJsZQ== IGRlYmU= IGJ3 ey0j X1dJTg== ZGZz SG92ZXI= IFBVVA== LWFuZ2xl IG5vYmxl IHRyYWNlcw== ZW5jdg== IHVzZXJEYXRh X2lucw== IFN1eg== IG5ld3NsZXR0ZXJz IE1vZGk= IGVudHJlcHJlbmV1cnM= IHRyaWJ1dGU= IHJ1bW9ycw== IHJy IFF1YXJ0ZXI= 6rOg IGZlZWRz w7Nn IGVudmVsb3Bl IGxlYXI= IGvDuA== ZGV2ZWxvcGVy U2ltaWxhcg== OiIpCg== c3Vic2NyaXB0aW9u TW9kaWZpZXI= aXRhbGlj IG5hc3R5 IHRlcm1pbmF0aW9u IGNoYXJtaW5n IOKf dG9ucw== LnRyYWNl aG90cw== IFVS TW9udA== IGp1c3RpZmllZA== IEdhbmc= aW5lYQ== IGJvZw== KGFw XyQ= IGNvbnRhbWlu LkRvdA== CURlYnVn KGV4cG9ydHM= IHBhaXJlZA== IEFzc2lnbm1lbnQ= IGF1dG9tb2JpbGU= k40= IHBoYXNlcw== dnc= QFN1cHByZXNzV2FybmluZ3M= PVw= cmFudA== LWVk CWF3YWl0 IGNlcnRpZmljYXRlcw== Jz4i IGludGFjdA== Q1RSTA== TWlrZQ== Z3JlZ2F0aW9u QVRURVJO IHJlcHVibGlj X3VwcGVy aWxpYXJ5 IGNvbXB1dGF0aW9u aGlyZQ== IFNoaW4= X0FOWQ== IE1hbnVmYWN0dXJlcg== IENhcm0= IGJlYXJpbmdz X2NvbWI= Y2Fk dXJpc3RpYw== IHdob2xlc2FsZQ== IGRvbm9y LmludGVyZmFjZXM= cHJlc3Nv IEJydW4= LWNsb3Nl cHJvdmU= X1NL CWZyYW1l ZXRyb3M= IFBhaW4= X0VYUA== IExU X2Zz LmRhdGFz CXNz dm9pcg== IEF4aXM= TWFqb3I= PSI8 W2g= IHByb2Zlc3M= aWdyYXRl KHNjb3Jl S2V5d29yZA== Im9z ICAgIAkK YW5hbHlzaXM= IHJlcGxheQ== LnBhc3M= XGQ= dGxz IHNhbmN0 LmxpZ2h0 X21vYmlsZQ== 0YHRgtGM CXRvdGFs dWl0eQ== IHBhdXNlZA== TkFT IGVuY29yZQ== bG9l IC0qLQoK LmhpZ2g= YW1wbGVy IFNlY3VyZQ== IGZyYWdtZW50cw== X3ZlbA== aWxsYXJ5 IFN0ZWlu IERhd24= IG1heGltaXpl 4Lii IC9e IGNvbnRpbnVhbGx5 IHNoYWRvd3M= CSAgICAgICAgICAgICAgICAgICA= IElBY3Rpb25SZXN1bHQ= IGluZm9ybWFjacOzbg== Q0hFQ0s= LlNlbGVjdGVkSXRlbQ== YnVuZGxl b2xsZXk= PEludA== QUlORVI= IFdpbmc= dGl0bGVz b3VudGFpbg== Q1k= IExvY2FsZQ== Zm9ybWVy PGNvbnRleHQ= UmFkaW9CdXR0b24= X3NjaGVkdWxl IGZhYnVsb3Vz Um9iZXJ0 X1BST0ZJTEU= IGdhdGVz SU1Q IFBlbnRhZ29u Z29sZA== YmFjaA== ZW1wbG95ZWVz Um90YXRl IGNoYW1w IHNlbGJzdA== QWx0ZXJu IGNvbnZlcnRWaWV3 Lyw= IH4o U3RyZWV0 X3BsYWNl IHBlcnNvbmFsaXplZA== UHVibGlzaGVy IFNPQ0s= X05BTUVTUEFDRQ== IFN0YW5kYXJkcw== c29ldmVy X0NFTlRFUg== SW50ZXJlc3Q= w7R0 dGVtcGVyYXR1cmU= Vmlld3BvcnQ= Z2V0UmVzb3VyY2U= IGVhdGVu IHNlbXByZQ== IGFibm9ybWFs IGN5bGluZGVy IHRyb3VibGVz bm9k 0YvQsg== Z2FtZXM= X2ds UGxhbmU= Z3JleQ== X3RibA== LkNvbXBvbmVudFBsYWNlbWVudA== IENoYXNl TG9nZ2luZw== bWFueQ== 7IY= IGZsYW1l PSI8Pz0k IEdyb3Vwcw== LVU= 0YDQsNC9 CgoKCgoKCg== IHZhdWx0 b21vbg== cHJvYmxlbQ== IHRyYWRlcnM= IHBlcmlwaGVyYWw= IGhvbWVwYWdl KGRlcw== IFN1Y2Nlc3NmdWxseQ== IHJlYm9vdA== IGNlbGx1bGFy aWlp IFBsYW5z bGlzdGluZw== CWRpcw== IFJlZmxlY3Q= CWV4Y2VwdA== Iiko IHRhbWLDqW0= VmVoaWNsZQ== YWNjaQ== bHVzaA== T3JkZXJCeQ== IGltYWdpbmVk Y29kZWM= IGRhdGVUaW1l TWljcm8= IHJlbWluZHM= IGZydXN0cmF0aW5n IFZpc3Rh VHJhaW4= INCy0YE= IG1vbGVjdWxlcw== YXZpbg== IGRvdWJsZWQ= IGJyYWtl IGNhbGNpdW0= RnJpZGF5 IElkZW50aWZpZXI= 5Z8= 0YvQuQ== IEphaA== UmVu IHNjYW0= IERlbm5pcw== LnNldEludA== 4p8= IGFwcGVhbHM= IEF1cg== IHNwbGFzaA== ZXF1YWxzSWdub3JlQ2FzZQ== d2h5 IHNhcA== U3VwcG9ydGVk IHNlcmE= IDoi IFZlcm1vbnQ= IHJldW4= IE5vdmE= ICAgICAgICAgICAgCiAgICAgICAgICAgIAo= UmF0ZWQ= IGxheWluZw== IEthcmVu LkRlc2VyaWFsaXpl IGNvZGVj IHRheHBheWVycw== OyIpOwo= IGNydWRl IG1vbGU= IHVzZUNvbnRleHQ= CXJlc3A= IHBrdA== IENhbm5vdA== UGlwZWxpbmU= 5YaG dGljYWw= QWN0aW9uQmFy YWVkYQ== IENyaXRpY2Fs IE5hZA== IGJsZWVkaW5n IGxsdm0= L2N1c3RvbQ== IFNpbXBzb24= U3k= aXRhYmx5 IFN1bW1pdA== KCkpKS4= RUxMT1c= JCcs TWV0 SW52b2ljZQ== b2xpc3Q= IHNwaW5l YXV0aWZ1bA== cGFpZA== IGxvY2tlcg== X2FybQ== XCI+PA== IHRyYWplY3Rvcnk= X3Jpbmc= IGh5ZHJvZ2Vu dHJvbg== IHN0YXR1dGU= IGNvbmRpdGlvbmFs IHRyYXk= LXNjaG9vbA== KHdpZGdldA== JGNvbmZpZw== IHJlcXVlc3Rpbmc= LnVpbnQ= ZXRvbg== YnJpdGllcw== T2ZUeXBl QURNSU4= cHJlZGljdA== IGdlZ2Vu IEhhcHA= T0NVTUVOVA== IEFwYXJ0 IC0tLS0t cm9l dWlkZQ== anVzdGlmeQ== IFNxdWFk IHByb2Zlcw== LmJvdA== X2N1cnJlbmN5 aW5uZW4= IE11bWJhaQ== IE51bWJlcnM= YXZhbmF1Z2g= YWduaXR1ZGU= 4oCcVGhlcmU= PWh0dHA= 54mH IHZi Kyc8Lw== IG9yZ2FuaXppbmc= YW5pdW0= SW5TZWN0aW9u LmFuZA== IGV0ZXJuYWw= IHNvdWxz X09ORQ== X25z X2Jhc2lj IHJldFZhbA== LXNoYXBlZA== aWZkZWY= IE1vemlsbGE= IGVpZw== Y29tcGxldGVk Tm90aWZpY2F0aW9ucw== VEVDVA== cmllbg== Y29vcmRpbmF0ZXM= IHByZXRlbmQ= cG9uc29yZWQ= LnN0ZGVycg== IGdhbWVycw== IGRlZmVuZGVk VG9vbFRpcA== dWl0YXI= IGZyYW5jYQ== IFdvb2Rz IGlocmU= IHBzZXVkbw== IGNyb3dkcw== IFNZU1RFTQ== bGVj LmtlcmFz IGNpcmN1bGF0aW9u ZWVy LmNi dXp6eQ== 7Zg= LnJlYWRlcg== IHNlcXVlbA== U2V2ZXJhbA== LnBvcnRhbA== LS0tLS0K aXN0cmFy 77u/Ly8= UGk= IFwiIg== IGN1c3RvbXM= IGRpc3BsYXlOYW1l IG5vdGljZXM= IGNhcmI= Ll8KCg== IHByb2R1Y3Rv INGB0Ls= IG51bWVyaWNhbA== IHVuaW50 IGNvZGlnbw== T3JkaW5hbA== U3RyaW5nVXRpbHM= IGTDqWM= IExhbg== IHNob3djYXNl IGFyaXRobWV0aWM= LXNjcm9sbA== X1RFTVBMQVRF IFJvdXRlck1vZHVsZQ== IFNoYWRlcg== INCd cG9saWN5 UGVyZm9ybWFuY2U= CWJvcmRlcg== KGZpbGVwYXRo 56m6 X2VuZXJneQ== X0NT VGhlaXI= LnNwYWNpbmc= KGRw IExBTkdVQUdF IGhpc3RvcmljYWxseQ== Ij57eyQ= IGlub2Rl c2ls IGhhY2U= IHNldmVyZWx5 IE92ZXJ2aWV3 IHNwcmF3 IGJlYWNoZXM= OmxlZnQ= t7s= KCR7 IEZJUlNU IFNwYQ== LWFzcw== IGJhaXNl IE5PREU= IFBpenph UGV0 KHNlcQ== XCI+Cg== Q3BwTWV0aG9kUG9pbnRlcg== IHZw IGlh X3NlY29uZHM= ZW1ldA== L2Jsb2I= X1RIUkVTSA== Li4uDQo= RGVzdA== IE5I LmRhdGFTb3VyY2U= aXTDqXM= IEphaw== c2VsbA== IHdvcmtzaG9wcw== PHU= IHJpdmFscw== IEVYSVNUUw== aG9t LXRva2Vu Y29tcGF0aWJsZQ== LkpQYW5lbA== IHBoeXNpY2lhbnM= YXJ0aW4= IGRlc2lyYWJsZQ== IGRpc3RpbmN0aXZl LkRlcA== Z2lk aWxpYXRl LG1heA== IHByZW1pZXJl IHFEZWJ1Zw== IGFkdm9jYWN5 IHdoaXNwZXI= UHQ= IHVuY2hhbmdlZA== X3F0eQ== 6K+35rGC U2Vhc29u YXZlbGVuZ3Ro IFB1bA== IGTDrWE= J11dXSwK YWxpcw== KCIm Ym9ybw== IGJt IFJhZGk= d3Jvbmc= IEdvaW5n aW1lVHlwZQ== aWpp LWZlZWRiYWNr IE5hbWVz IEJhcHQ= IHByb2JhYmxl IEV0aGVy IFBvbGl0aWNz X3Byb3RvY29s bGluaW5n U2F0 IGNvcnJlbA== LlByaW1hcnk= KG51bGxhYmxl UklPUklUWQ== IGNvbG9yaW5n IHV0aWxpemluZw== ZGFz IGV4cG9ydGVk IGNhcnJpZXJz Q29udg== LmVkaXRvcg== acOz KGhhbmRsZXM= IGFwcHJlY2lhdGlvbg== LmltcG9ydA== IEF1c3RyaWE= IFN0cmlw aWxpZ2h0 IGFwcHJvcHJpYXRlbHk= IFByZXN0 IFdpcg== IFVJQXBwbGljYXRpb24= YWxjaGVteQ== IE1vYg== IERldGVybWlu ZXJndXNvbg== cmVnaXN0ZXJlZA== X2NvbnZlcnQ= IFZsYWRpbWly LlNob3dEaWFsb2c= cmVmbGVjdA== IHNob29r IGFzc3VyZQ== IE9mdGVu IGNpdmlsaXphdGlvbg== IHZvY2FidWxhcnk= Zm9yZWdyb3VuZA== IFNjb3Bl IHVud2FudGVk YWN0aW5n IChbXQ== IG1hcmtpbmc= Lm9yaWdpbmFs IE1PVkU= IHNwb3J0aW5n Y2VwdGlvbnM= TlNOdW1iZXI= U2l6ZXM= IHByb3ZpbmNpYWw= X1RyYW5z IHByb2JsZW1hdGlj ZGlnaXQ= IEVtbWE= bG9ja3M= IENyZXc= aWJh Jyk6 aXNoYQ== IG1hbW0= IG9jY3VyZWQ= d2Nz KHJ1bGU= IG1lcmNoYW5kaXNl ZXNwZWNpYWxseQ== IFR3aW4= IG5hbWluZw== IHNsb2c= IGltcHJvdmVz IGFkaGVy OnRleHQ= LmhhZG9vcA== X0hUVFA= LnRvTGlzdA== LmRpc2FibGVk IGxlbnNlcw== LmluaQ== IFJhcmU= IFVidW50dQ== IHNjcmFt b2xhdGlvbg== dGl0dWxv RXZlcnl0aGluZw== IG5vZGRlZA== aWNodGln X2NvbnN0YW50 emM= bGlmdA== IE5vdGlmeQ== b25kbw== IElORg== KCIr IEtheg== IGRyZWFk Lm1hcHBlcg== bGV1cg== IENvbWV5 IE5C aWNlcnM= LlB1c2g= IEhhY2s= IEJyYXppbGlhbg== X3Byb2Q= IC8vCgo= IGJpY3ljbGU= IHVuYXZhaWxhYmxl IGFkb2xlc2NlbnQ= Ymxr IG1pdGln X2JsdWU= 7Jg= ZmFkZUlu IFV0aWxpdGllcw== IE1O O2s= PHN0eWxl LXN0YXR1cw== aW5kbw== IGlubmluZ3M= IGdq IHx8PQ== LmV1 Ok51bWJlcg== IGN1aXNpbmU= IFVSTHM= aWVr IHdpcmVz CXBz aWVn Lm1r c29hcA== IHNvbWV0aW1l IHN0YXA= X3Nlcmllcw== LlRhcmdldA== 5ro= LmRlc3RpbmF0aW9u T1VOVEVS UmFpc2Vz JkE= IHNtYXJ0cGhvbmVz TklFbnY= LnNkaw== IGhlbGljb3B0ZXI= IGltcGU= IEJpcnRo QVU= YnJlYWRjcnVtYnM= Y29vcmRz IGV4cGxvcmVk IGxvZA== IElw Z2FibGU= aWFuZQ== IGFydGlmYWN0cw== Qm94TGF5b3V0 2KfYsQ== bGlzdGVuZXI= LmNhcnQ= IEh1ZmY= IEhpbmR1 IERhdGFUeXBlcw== IERydXBhbA== SUdOT1JF IG9mZnNldHM= IFJUQw== LWxvZ2lu 5q4= IFFPYmplY3Q= IHByb3NlY3V0b3I= Um9jaw== X2NoYXQ= V2F5 7LI= IG5lZ2xpZw== IGR1ZGU= Ozw= IGRlbGVnYXRlcw== X2ZhaWxlZA== L2Rldg== L3dvcms= KE5ldw== ZXRhYmxl KCki KEljb25z IHBvcms= IE1vZGVsQW5kVmlldw== IFZJUA== IEtvcg== bWl4 IG94aWQ= IFNDUkVFTg== IEZvdXJ0aA== LyIsCg== IHRlZQ== IFN0ZXZlbnM= dGlja3M= IHBsZWRnZQ== aWJib24= IExvYW4= IG5lbw== bnVtcHk= IFNoYXJlZFByZWZlcmVuY2Vz LW9yaWVudGVk IExvZ2dlckZhY3Rvcnk= IEdyYXBoUUw= emVuaWE= Il8= V29tZW4= LmNhc3Q= IGRlbGliZXJhdGVseQ== K2I= IEFybg== Zm9udFNpemU= IG1hemU= IGJsYW1lZA== Lm1hcw== fSkNCg== ZWxlcmlr IHNjYW5uaW5n IFdvcmtzaG9w IGZpbmRlbg== IGNhdXQ= VUlGb250 KHJldHVybg== YWxpbg== Y2FzdGxl Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v IGluY2VudGl2ZQ== b3BhdGg= YmxvYg== IGNpZ2FyZXR0ZQ== IGZlcnRpbA== Ki8KCgo= IFNoYXI= CiAgICAgIAo= IHVuY2VydGFpbg== IFN0b24= T3BlcmF0aW9ucw== IFNwZW5jZXI= IGRlZmlu IFNvbG8= b25lc3Q= t7vliqA= IHVvbW8= R2l2ZQ== IGRlbnRybw== O3BhZGRpbmc= ZW50YWk= IENhcnM= IGVudGh1c2lhc20= IE9wZXJhdGluZw== U2tpcA== cGFyYXRpb24= IHByb3RlY3Rz IHJldmVy ZGc= IENpbmNpbm5hdGk= IGNvbnNlY3RldHVy IG11c3M= ZW1wbG95ZWQ= YXVzZXM= aW5rbGU= LlZhbHVlcw== o7w= bG92 X1dBUk4= IGJvb2ttYXJr IEFwb2xsbw== LmF4aXM= IG3DqXQ= IG9wZW5lcg== IHR1bW9y ZGFu IGVsZW1lbnRhcnk= IHNraXBwZWQ= IEtlcg== YXNpYQ== X3Jlc3A= IGRlbW9s IENhbmFkaWFucw== IHRhc3Rlcw== VUludGVnZXI= ICckew== LmF3cw== Uk9JRA== cmlhbnM= TVE= b3JkYWJsZQ== IGNvdXNpbg== UHJvcGFnYXRpb24= KFNlc3Npb24= cGhhbHQ= VUxE IFNjYWxhcg== IGJsb29keQ== IOCm Lm1hc2s= LHE= IFVuaXRz IGNlbnRyZXM= IFByaW0= Ll0KCg== IFNoYXc= UHJvbQ== IFRob3VnaHQ= Q2hlY2tlcg== X291dHB1dHM= KGNoYW4= RUlOVkFM IGJvYg== X2NtcA== UGVk IG1hdHJpY2Vz IHZyb3V3ZW4= IGdlbnVpbmVseQ== aGlnaGxpZ2h0 KGRpc3BsYXk= KSE9 IGRlbGljYXRl IEx1dGhlcg== IE1pbGVz IHVzZXJJRA== JT0= YXRldXJz X0JVRg== LS0tLS0tLQo= aW1pdGl2ZXM= IHNoZWx2ZXM= c2xvdw== X2luZm9ybWF0aW9u TEVH V3I= LmZvcm1z Y2VsYW5k L3Vu OiY= LuKAmQoK PSIl IHByb3N0 IGZvbnRzaXpl dWNpw7Nu Z2V0aWM= YW10 PSIu RGVjb3I= QnJpdA== ICIiKS4= IGZvdW5kaW5n LkZpbGVOYW1l IFRpZXI= IGRpc2Nsb3Nl w6Ft LnN5bg== LlZpZXdIb2xkZXI= bGljYW50 X3N0YWdl TW9uZGF5 IGRlc2VyaWFsaXpl dGFsaw== IHRyYWRpdGlvbmFsbHk= 5oCB 2K4= TEVY IGVo CVJPTQ== IHt9KQo= UXVlc3Rpb25z bmNweQ== IGZpeGluZw== 0LrRgw== X0tleQ== Ong= IFNUUklORw== INGE0LDQuQ== CWxlZnQ= IEJlbmNo ZWxsaWo= VVJSRUQ= IERpYWdyYW0= fWNhdGNo L3RpbWU= IE1pc3Npbmc= ZGJuYW1l IHNvcmU= IFdhbHQ= dWdnaW5n cmVwcmVzZW50 IEdT bmV5cw== CXBhZ2U= IHZvbGNhbg== KGJ0bg== IGV4Y2VlZHM= IGVyZw== IHBpbG90cw== IFNlZA== ZXJzaW9ucw== IHBhdHJvbg== UlY= L3RvcA== LmFzc2V0 X2Nyb3Nz LkVkaXRvcg== LnRi IHdlbGNvbWluZw== U0NSRUVO KWZpbmRWaWV3QnlJZA== Q29kZXI= PElBY3Rpb25SZXN1bHQ= X1FVRVVF 4YM= IGhlaWdodHM= UmVxdWVzdHM= IHN5bWJvbGlj DQ0KDQ0K IGNvdXBvbnM= LWZpdmU= IERlc2t0b3A= IG1pc21hdGNo ICdfJw== X0RJVg== QVNPTg== LnRyYW5zcG9zZQ== KG1hc2s= IENlbHQ= LkhhbmQ= YXR1 asSZ IHt9KTsK TWlzcw== IHByaW1h bXVuZA== b2x2 IFByZXR0eQ== IHJlYmVs IEZE YXN0aWNhbGx5 T0xU LWF4aXM= dXhl IGVpbmZhY2g= IENoZW1pY2Fs X3NlZw== bGVldGNvZGU= bG9wZQ== X29yaWc= ICAJCQ== KERvdWJsZQ== IFBheVBhbA== LkJhY2tncm91bmRJbWFnZQ== IGhvbWVtYWRl Liku KHBhcnNlcg== YXRybw== YWNjb3JkaW9u RGVmaW5l IOyeiA== IEFVVE8= LnN1bW1hcnk= c2NhbGFy IEhvb2Q= cXVpbg== X2Rlcg== IEdlc2No LmNvbXB1dGU= RmVlZGJhY2s= IHBoYXJtYWM= IMWfaQ== IGdsb3Nz IEZJTFRFUg== SU5TVEFOQ0U= IGthbA== LlBM X0ZSRUU= R3JhZGU= IOKZ Lm1ldHJpY3M= IGNhZ2U= Llh0cmFHcmlk X2Rz emln aW50ZXJvcFJlcXVpcmVEZWZhdWx0 LnJlbW92ZUNsYXNz PT09PT09PT09PT09PQ== IG1hc3RlcnM= U3RhdGVFeGNlcHRpb24= aWxsZXJ5 IEJyYWR5 IGxpbmluZw== X2Nz aW5zdWxh IH06 W3Bvc2l0aW9u IFJ4 IEJZVEU= IFN0cmlrZQ== INCa IENsdXN0ZXI= LmRvd25sb2Fk QWxsb3dlZA== IGFtZW5pdGllcw== IG9uVGFw ZnVsV2lkZ2V0 IHN0cmVuZ3Rocw== dHdlZXQ= IGFzY2VuZGluZw== IGRpc2Nsb3NlZA== Z3Jhdg== ZGlzdHJpY3Q= KTw8 KSwi KGRlZnVu X3w= IGdhemU= 0LDRjw== IGZvcnR5 PT09PT09PT09PT0= U2NpZW5jZQ== c2VtYmxlcg== CWJvZHk= X3RyYW5zZmVy IGxvbmd0aW1l IGNvbXBsaWNhdGlvbnM= IGJvb3Ro VkVSUg== IHlpZWxkcw== IG5hdmlnYXRvcg== OjpfKCc= RUNUT1I= X0NvbmZpZw== IGxhc3RlZA== dXNhbA== 55m75b2V IGdsb3Zlcw== IGJlbGx5 U2FsZXM= KE1ldGhvZA== KG1lbWJlcg== IFJlZWQ= cGFzc2Vk U2lnbklu LG51bQ== VUxPTkc= IExFRw== bmVscw== IG1lbnRvcg== KHJj IE9idmlvdXNseQ== Lmlm IEZyZWRlcg== SEVBRA== QGF1dGhvcg== Q29uZGl0aW9ucw== IGdhcmRlbnM= IFJpcA== KHVzZXJz IE9rYXk= IHdyZXN0bGluZw== aW1lc3RvbmU= IENlcnRpZmllZA== IHZlcmRpY3Q= YWlkYQ== LmlubmVyVGV4dA== aWNhc3Q= CWF0 IHByZXN1bWFibHk= IEZVTg== YWplcw== 0Jc= PiIsCg== X1Bpbg== dWVzZQ== IG92ZXJyaWRlcw== X3JlYWR5 QWR2YW5jZWQ= IG9waQ== LWNhcnQ= KCIvIiw= IERlYg== Q1JZ IFZlcnRpY2Fs IE9WRVI= IENvcnBvcmF0ZQ== ICIiOw== IHN0ZXBwaW5n ZWo= IGFjY3VzYXRpb25z IG9yYXo= X3RhaWw= IGluZHVjZWQ= IGVsYXN0aWM= IGJsb3du LC8v IGJhY2tncm91bmRz 4oCZdW5l LXNkaw== IHNldEludGVydmFs IGluY2VudGl2ZXM= IHZlZ2V0YWJsZQ== X09u ZXhwYW5kZWQ= cGl4 X3NoYWRlcg== IFNQRFg= QGV4YW1wbGU= IFdyYXBwZXI= Llplcm8= UG9zaXRpdmU= IHNwaW5uZXI= IGludmVudGVk IEdhdGVz 0L7RgtC+0YA= IGNvbXBhcmlzb25z 6Lc= LnByaW1hcnk= ZGF0YVByb3ZpZGVy YWRkaXRpb25hbA== CW9wdGlvbnM= c25hcHNob3Q= LnNldEhvcml6b250YWw= ICJ7fQ== IEZpc2hlcg== aGFsdGVu PFR5cGU= IG1heExlbmd0aA== IE10 IOqwgA== LmpldGJyYWlucw== IGlkZW50aWZpZXM= IGZsb3dpbmc= IERpc2N1c3Npb24= YXRzYnk= IHNjaHc= dWdodHk= IHJpdmVycw== LnVuaXF1ZQ== X1BIWQ== ZWRyYWw= KGxs IGNzcmY= cHBlcnM= w7xs IEVzcGVjaWFsbHk= cG9ydGVk IEhhcnJpc29u KioqKioqKi8K VGV4dENvbG9y 7Iq1 d2lyZQ== IHN0YXR1c0NvZGU= IEZpbmlzaA== Y2VuY2U= IE1jQ2Fpbg== IFdvcg== KGF3YWl0 ICktPg== IFJlZ2lzdGVyZWQ= SU5FRA== a2Fs cGFyaXNvbg== IG9iamV0bw== Vmk= bWFuZGE= IHJlbmV3ZWQ= IFNvZg== ZXNzZWw= Lm5kYXJyYXk= IGNyYXA= 566h LmFic3BhdGg= KHVw IGNsZWFyYW5jZQ== IFRX X0NPUFk= ICAgICAgICAgICAgCQ== IGZvcmVzdHM= IGFyZ3VhYmx5 IEFTUw== aGV5 YW1lbA== X2ZvcmU= IFNvdXRoZWFzdA== IGFidXNlZA== IHByYWN0aWNpbmc= YWtlZGlycw== 5Li7 X3Jlc291cmNlcw== IHBvbmQ= LkZpeGVk TGFzdEVycm9y IFBzeWNob2xvZ3k= ICIvLw== ITo= UmV1c2FibGU= IG1lbnNhamU= IHJvc3B5 IGJvdXI= IHZhcmlldGllcw== IGVtcGF0aA== KCh7 X29yZw== IE1lcw== IE1hZ2VudG8= SVNUT1JZ VW5sZXNz IGhq IER1dHk= SnVu LHNpemU= IHBhaW50aW5ncw== IGRpc3BlbnM= ZGFydA== IGJlaGF2aW9yYWw= IHJwYw== Y2FsY3VsYXRl ZnJ1aXQ= X21t CXB0aHJlYWQ= TWF4TGVuZ3Ro IGN1cnJlbmNpZXM= X2NhcGFjaXR5 IE96 IGZpcmVhcm0= IGNvZWZmaWNpZW50 IGJhbmtydXB0Y3k= d2FydA== IGZhdGlndWU= QVZB IGVzcGE= X3Bj IFF1b3Rlcw== X0xJR0hU IFRpY2tldHM= IHJlbGF0ZXM= IHB1Ymxpc2hlcnM= IHVubG9ja2Vk IC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ== IEludGVycnVwdGVkRXhjZXB0aW9u IG91dGxvb2s= cm4= IHJlYmVscw== V3JpdHRlbg== IGFzaWFu b3R0bw== IAkJCQk= X2dwdQ== VHh0 LkltYWdlVmlldw== IHN1aXM= X3RhYmxlcw== LlJlY3ljbGVyVmlldw== IHdoYXRzb2V2ZXI= 6IE= XSsrOwo= YXNzZXJ0VHJ1ZQ== X3ZlcmlmeQ== IFJpdmVycw== IF1b SmV0 aWRpYW4= U2libGluZw== IGdlbnJlcw== LkFjY2Vzcw== T1BT IHRyaXZpYWw= 4Liq YWxlbg== 0LLQtdC0 IFN3b3Jk IHNjcnV0aW55 KGNi IGNvbW1lcmNl IGd1YXJhbnRlZXM= X2Fkdg== IExFVA== cmVjaW8= IGhpbGFy IGJhY2t5YXJk 44CP IGlsbHVzdHJhdGVk L3ZlbmRvcg== LlV0aWw= IHdvdw== TE9Z IE1hcnNoYWw= Ij4nLiQ= IEJhaw== IG1vZGlmaWVycw== ZGljdGlvbmFyeQ== IFN0cmU= bXVsdGlwbGU= IikpLA== IENvcnQ= J10iKS4= KGFkbWlu IENyZWF0b3I= SW50ZXJuZXQ= KG1z bG9neQ== REVDTEFSRQ== IE1hcmN1cw== PDw8PA== 44Gg X215 KGluc3Q= IHNjaWVuY2Vz TkRFUg== LmVudGVy IGl0dQ== IGJlaGF2ZQ== UGFu b21iaWVz PSc8 JykpOw0K IE1FTlU= IFdvcmtlcnM= Lk5vRXJyb3I= IGJpbmRpbmdz IGRpc2FiaWxpdGllcw== e1w= IE11bmljaXA= IGNvcmVz dXJwbGU= IE5va2lh dXNpb25z IEZpdG5lc3M= LmhhbmRsZUNoYW5nZQ== IGphdmFzY3JpcHQ= 7JqU KGRlYw== IHBhY2tpbmc= LWRlcGVuZA== IHRyYW5zY3JpcHQ= emVyb3M= X2FsZXJ0 PyIsCg== bGlicw== sdC+0YI= IHwKCg== dHJhaW5lZA== IEdlbnQ= IFJhYg== eHA= X2NvbmZpZ3VyYXRpb24= 5aSp X2FjY2VwdA== LnJlY3ljbGVydmlldw== OnVybA== IE11aGFtbWFk IHByaXZpbGVnZXM= X2Jhbms= dWt1 d2FsbGV0 IFJPT1Q= IGVuY3VlbnQ= P2ZhbWlseQ== CXBvc2l0aW9u IGNn IHByZWNpcA== bWV0aG9kcw== X2Zhc3Q= aW5jcmVtZW50 IFRpZ2Vy X09DQ1VSUkVE cXVpcA== IEhBUw== X2RvbQ== IHdyZWNr Ymo= IGRlcm4= IG9yZ2Fucw== LmVudHJpZXM= IF8oJw== cmFtZW50bw== IEphbWll IHB1bms= SVBQ IHByb2dyYW1h IGF0dGFpbg== IHByb3Zlcw== L3NpZ24= IGFuc3dlcmluZw== IGxhZGRlcg== KioqKioqKioqKioqKioqKioqKioqKioqKioqKg== IFdhbG1hcnQ= IENPTlRFTlQ= ZHVjdG9y IHZlcmJhbA== IFBJRA== Y3J5cHRv X0NBTExCQUNL ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ== IHBvdGVudA== IHNob3J0cw== LlVyaQ== LnVuaWZvcm0= O2JvcmRlcg== IFdlcg== IGhlcmVpbg== bGxh IElocg== UGl4bWFw bGl0ZXJhbA== ISkKCg== Z2VuZXJpYw== cnVzdA== X3NjcmlwdHM= b3N0bw== aXR1cw== IENvYWxpdGlvbg== IHJlbW90 ZGVwbG95 IEVhZ2xl 44CB44CM IGltcG9ydGFudGU= CW9iamVjdA== IHNlYXNvbmFs bmVq YWlkdQ== QmluZFZpZXc= IFNpZXJyYQ== LWJn IG1ha2VTdHlsZXM= W29mZnNldA== R2FtZXM= IGhvcm1vbmU= QVJJTw== aGVhZHM= KHNlbGVjdA== IFN0YXJ0ZWQ= QHBhcmFt X2RlY2w= X2Jsb2c= IGHDsW8= XEFwaQ== IE1pbHdhdWtlZQ== UHJvdmlk QW5pbWF0ZWQ= IGNvb2xlcg== IFNlZWQ= LkVkaXQ= z4Q= IFRha2luZw== IGJvcmRlckNvbG9y LWZvdW5kZXI= LkxvZ2dlckZhY3Rvcnk= ICIiCgo= QUxU IExhdGU= RURJQVRF ICk7CgoK YWZh IGNhbmNlbGxhdGlvbg== QXRvbQ== IEJpcm1pbmdoYW0= ZW1wcmVzYQ== SEVNQQ== YXNjYWw= IHVwc2lkZQ== LlZlcnNpb24= IEZvbGRlcg== IEVpZ2h0 IFZpbnRhZ2U= IEFwcERlbGVnYXRl IFByZXZlbnRpb24= LnNlcGFyYXRvcg== U1RN KHJvb20= Z2VuZXJhdG9y IGNhdHRsZQ== CVo= IFBhcnRpY2xl J307Cg== IG5laWdoYm91cnM= IFN0YXRlbGVzcw== IGFsdGl0dWRl IHNhaW50 0L7QsdCw0LI= IGNvbnZpbmM= IENvbnRlbnRz IGpldW5l KHRz U2VyaWFsaXphdGlvbg== KGNvbGxlY3Rpb24= IEpheno= IERvZA== IFJvY2g= YWNpbw== Y29tbWVuZGVk REVGSU5F Lm9ubG9hZA== IHNwZWNpYWx0eQ== UExBQ0U= X01PVkU= IGFjY291bnRhYmxl UmV1dGVycw== IGZpY2tlbg== IGRlcHI= V293 Vm9pZA== LnNwYWNl 4LiX IHRx IFBldHM= PCQ= KEN1cnJlbnQ= YmVycmllcw== cGxhbmF0aW9u IGxpc3RPZg== IFRodQ== IFBSSU5U IG1pc21v IGRvaQ== Y2hr IFVuaWNvZGU= KHJvbGU= IHZpcmdpbg== PFBvaW50 X1JFU1BPTlNF LWhvdXNl IFZlbmV6dWVsYQ== RU1BSUw= IHDDumI= X2V4aXN0 QmFsbA== LkNM cmVmZXJlbmNlcw== IEJlYXV0aWZ1bFNvdXA= CUV4cGVjdA== VEhJUw== 0YPQtA== YmFuZQ== IHRlbXBvcmFs RVJJQw== ZXRhcw== IHJlZnJlc2hpbmc= IHNlY3VsYXI= QHN5bnRoZXNpemU= YWNjdXI= IG5lbGxh IFNPTA== LnBpcGU= Q2hhbm5lbHM= 6Ieq IGluc2VydGlvbg== 4buL ZWxpYQ== IGFkanVzdGFibGU= Q2FuYWRh IElURU0= IGN1cnZlcw== IENoZWFw bGV0aW5n IG9wdGltaXN0aWM= YWxsbw== IHBvbGl0aWNpYW4= X2Rvd25sb2Fk PWVkZ2U= T1JUSA== IG1vZGVsbw== YXJ0bw== LnJvdGF0ZQ== IHNlbGVuaXVt 5oiR X2FsaWFz IHJlbm93bmVk Licu IGN6eQ== IGFsbGVz LkNvbXBpbGVy IEJhc3M= Q29ubmVjdG9y LlJvbGU= TElOSw== IGNyaXRlcmlvbg== bGVtZXRyeQ== U3VjY2Vzc2Z1bGx5 L3BuZw== IGV5ZWI= YXNwYmVycnk= KGdy IGRhbmdlcnM= IGNvcnJlY3RlZA== IGdsb3c= IGVsYWJvcmF0ZQ== IEJlYXJz YXdhaQ== PSInKw== IHByb21vdGlvbnM= IG1hdGhlbWF0aWNhbA== ICJg X0dlbmVyaWNDbGFzcw== IENoZWY= LlNvcnQ= dGFibGVOYW1l UklD IHZvbHVudGFyeQ== IEJsYWRl LWVsZWN0 IENvbWJhdA== IEFiaWxpdHk= IGFiZG9t IGR1Y2s= VG1w 5YWo IGVyYXNl LlBo IERlZmF1bHRz cGFydG1lbnQ= X1VTQg== w6p0ZQ== Oyc= IHBhZHM= IE9iYW1hY2FyZQ== LlRvdGFs IGRpdmVydA== IGNyaWNrZXQ= IHJlY3JlYXRpb25hbA== KHJlZA== IENsZQ== UlU= IG1pc3Rha2Vu IE1vbnRhbmE= IHN0cml2ZQ== X3NsaWRlcg== IFBsYXN0aWM= IGRlY29yYXRlZA== IFZQ bGljbw== CWZhbHNl IHByZWZz KFwi X2ZhbHNl aWVuZG8= IEAk QnVja2V0 YWN0aWNhbA== IFpoYW5n LmNvbHM= LkJpbmRpbmc= IHdheA== X1NUT1JBR0U= IGxhd24= IHJm LlNjZW5l IENhbGN1bGF0b3I= LmRlc2lnbg== IHJlc2ls 0LvQtdC8 RW1wbG95 IFByaWNlcw== IFBXTQ== YWdp LmV2YWx1YXRl CXBhcmFt IGJyYXNz YmJlbg== IGluZmxhbW1hdGlvbg== dWxsaXZhbg== IGFubm90 IHBI aWFtZXRlcg== IEJUQw== KGJveA== U3Rvcnlib2FyZA== IGNsYXk= LmFzc2VydFJhaXNlcw== fHN0cmluZw== LkFwcGx5 IG1hdGNoZXI= dW5kZWQ= IHNhdGlzZnlpbmc= IOyglQ== UmVuZGVyaW5n X2FwcHJv aW5kcm9tZQ== QU5FTA== X2ZpeA== YnJ1c2g= Lk1hdGNo IHNtaWxpbmc= b25hdXQ= U3VuZGF5 IGRlbGV0aW9u IGVuY291cmFnZXM= UHVsbA== IHJldmVuZ2U= IHF1YXJyeQ== dHJhZGU= IGNhYmxlcw== KGRlbHRh aXRlc3BhY2U= IGZo LmJ1bmlmdQ== IHZpZWw= X0lOQ0xVREVE IFRhaWw= YWRhcg== b2Zz IG1ldGFscw== Z29t X21ldGhvZHM= IG5q LlN0ZA== KHdpbg== JCgn IHR1cnRsZQ== dXJvbg== IGVucm9sbGVk IEh6 IEJveERlY29yYXRpb24= IHBvbnQ= cmVsYXRpb25zaGlw Qmk= s7s= IG1hc2N1bA== IHNoYWRlcw== IHZy IExvZ2lj IGFpbg== IERJU1Q= IGNvbGxhcg== InByb2ZpbGU= R2VuZXJhdGVkVmFsdWU= IFBvc3NpYmxl IGVpbmVz g4E= LnRpbWVvdXQ= IEVj IGplcnNleQ== LkRvdWJsZQ== IHF1YWxpZnlpbmc= dm9y Q1JFRU4= X0FwcA== X3JlY3Y= IGFsaWVucw== SXRz RXNj aWF0b3I= IEVjbGlwc2U= IGdo VmljdA== CWh0bWw= dG9v LmNvbnN0 IGFudGVyaW9y IFd1 KGtleXM= IHVsdHI= X3BvbHk= IFRhcA== IEJ1ZA== QVdT IGNyYXNoZXM= X3RvdA== Q29udGlu LWhhbmRlZA== YWx0aG91Z2g= 4Lia aWZpY2VudA== IGRldmU= dXRvcnk= IFdvcnRo X01T IGZsb29yaW5n IHNlbGxlcnM= IFRoYW5rc2dpdmluZw== IHBuZw== IHZhbG9yZXM= IHNsZWV2ZQ== IGZpbGxl 0JA= IGFwcG9pbnRtZW50cw== IHZpbQ== VXNlckluZm8= Qk9PU1Q= IHBvc2Vk aW5pdGlhbGl6ZWQ= LnByb2R1Y3Rz IExlYWRlcnNoaXA= bWFudWVs JyU= ZW1hcmtz UGVyY2VudGFnZQ== KGRpc3Q= LmF2YXRhcg== KGhPYmplY3Q= 5LuK X2lmZg== aWNvbmU= Oyk= X25pbA== IGFib2w= 0LXRgdGC IHZlbnVlcw== LkNvbnZlcnQ= IScpCg== LkJpdG1hcA== c2tpbg== X0NPTFVNTg== UmV2 R1JFU1M= Z293 IHdpc2hlZA== dHJhY3Rz LmFzc2VydEZhbHNl IHNjcmVlbnNob3Q= IGZvaXM= Q29tYg== TGluZVdpZHRo IEdyYWI= IGludGVuc2l2ZQ== CXNo Kyk= LmZpcnN0TmFtZQ== X1BST0NFU1M= IHRpbHQ= aXRvcmVk LkxPRw== IGJhaw== IGludGVudGlvbmFsbHk= LnBsYXllcnM= KGNhbnZhcw== KSkpDQo= LlByb3ZpZGVy X1BVQkxJQw== VGFsaw== IExpdg== Y2hlZHVsZXJz IGxj YWRpYw== ZmVhdHVyZWQ= LnJlc291cmNlcw== RnVsbE5hbWU= IG1lYW53aGlsZQ== QnVmZmVycw== IHJlc29sdmVy IFNBUA== X1RF R05V IEZvcm1zTW9kdWxl X3do IFN3ZQ== LndpZGdldHM= IGNhYmluZXRz IHN1c2NlcHQ= IEJvdHQ= YWN0aXZleA== YXZhcg== YW50aWNz ICI9Ig== X2t3YXJncw== IGdhbWVPYmplY3Q= IEFuZ2xl Lkl0ZXI= bWFyc2g= IEJpcnRoZGF5 IENNUw== cmVxdWVzdHM= IFBlYXJs X0VPTA== IGxpbnV4 KG9yZw== X01vdXNl LmNvbnN0cnVjdG9y IHpk IGtpY2tz YXJ0aXNhbg== IGVheA== S24= cG9uZ2U= IEZpbmxhbmQ= IG1ldHJlcw== IEFzc2Vzc21lbnQ= cGFydG5lcg== L3ByZQ== IScsCg== W0ludA== IG9zbG8= ZGF0ZXBpY2tlcg== L1N0cmluZw== b3BsYXk= IEhlYnJldw== LGRvdWJsZQ== IHRyYWJhbA== KyJc CUVJRg== L3RleHQ= X0ZJUlNU IFBldGU= IGVnbw== IGV4dHJhcw== UERP IHJlZ3VsYXRl IFFXaWRnZXQ= c3Rz IFNob3dz IE5IUw== LmNvdXJzZQ== cHRocmVhZA== IEZ1ZWw= LnRpbWVz IMKw IHN0cmlkZXM= KCQoJyM= KHdvcmRz IHJoeXRobQ== IHNwb250 IHNlbnNhdGlvbg== IHNwaWtl Q2xvc2luZw== 6aG16Z2i TnVtZXJpYw== IGJyZWF0aGU= IGZpbmFsZQ== X0ZBQ1Q= aW5pb24= IGNoaWxs IGZvcm1hbGx5 QU5HRUQ= ICc6Jw== INC/0YDQuA== YXE= IEZhYnJpYw== KGxhdA== IFByaW5jaXBhbA== IGVycm8= b2NhbGU= Tm9t IGZvc3Q= X0NVU1RPTQ== LmludGVsbGlq ZXJ0b29scw== IGNsYXNzZQ== YWRpZW50cw== IGZ1bmRyYWlzaW5n RU5F X09QVElPTlM= X29i Ly99Cg== IHByb3RlY3Rpb25z LnNlZWQ= TlY= dGVybWluYWw= Ozs7 UHJlZGljYXRl IOy2 IGJvbWJpbmc= R0Y= IGNoZXc= KSkpLg== cXVhbGlmaWVk XT17 bGlzdGVu Q0VOVA== ZGlnZXN0 RWFzdA== IGRpdmVy IGVuZHBvaW50cw== IGVl IGNvbGxlYWd1ZQ== IGRpc3NlcnRhdGlvbg== X2NvbW1pdA== X0RBVA== LnJj IGJyZWFzdHM= IFJ1Zw== IFBpbA== Q29udHJhY3Rz IEJyeWFu V2ViVmlldw== IGNvbmNlbnRyYXRl IElubmVy ICd8 c3Rkb3V0 X1N1Yg== Pi0tPgo= Vm9s IFNTRA== KSkpLA== Lk9wdGlvbmFs IG51cnNlcw== IG9yYg== X3Bl KTsNCg0KDQo= cGxhY2Vk ZXNzZXI= IHRoZXJhcGV1dGlj IHdoaXRlc3BhY2U= IGFzdG9u U3VjY2Vzc2Z1bA== IHByYWlzZWQ= IFdlcw== IGVpZ2h0aA== aXJhbA== IHZyb3V3 IGZhY3Rpb24= X2JpYXM= IHdpdGNo IG5wYw== KHNi IFJvZHJpZw== X2JpZw== RGVwZW5kZW5jeQ== IEFicmFoYW0= YXJkaQ== Q0FS bm9z IGFidW5kYW5jZQ== IG51dHJpZW50cw== aW5zdGVpbg== LlZlcnQ= IElTUw== PFU= IHN1bXM= X2hpc3Q= IGZhcm1lcg== IEFicg== U2hvdA== IEJhZFJlcXVlc3Q= IGhhc3M= IFJhaWxz IGFmZmlsaWF0ZWQ= 5p2l IGVyZg== SU5G IFZpZXdIb2xkZXI= bWluaQ== IFJvdGg= IGZhaXRoZnVs IFBoaWxsaXBz QU5ET00= XS5b X1BBWQ== IEFyY3RpYw== ZmFrZXI= RGlnaXQ= TWFsZQ== c3RkZXJy c2V5cw== IMWh X3JlbW90ZQ== bGlxdWU= IGluZGVm IEluZHVzdHJpZXM= aXRyYQ== X3BhaXJz PGlvc3RyZWFt IHNhbGFyaWVz aWtlbg== LkZyYW1l UExJQw== X1NQRUM= IE1lZGl0ZXJy IHN5c3RlbWF0aWM= IGludGVycm9n SWNvbkJ1dHRvbg== c2Vh aW50cm8= IElzc3Vlcw== ZW5jcnlwdGVk IGludGVybmF0aW9uYWxseQ== IHNucHJpbnRm IHBhc3Rh IEJyYWRsZXk= X1N0YXR1cw== QUxL X1BBRA== LmxhdW5jaA== PHNlbGVjdA== IGhhcmRlc3Q= IHBoeQ== ICgoKg== LXNsaWRl IE5vYm9keQ== U3U= IGFzw60= Y2xvc2VzdA== X2luaXRpYWxpemVy IHN1cHBvcnRlcg== LWdlbg== IHRhbGVz IGNvcnA= X2Z1 c2F0 bmVpZ2hib3I= Lk1pZ3JhdGlvbnM= IGFsZ3Vu IHNpbm9u LlNwZWM= PywK LkdM bWFsZQ== IG1vbml0b3Jz eWxhbg== LUxpY2Vuc2U= Lm1hdGNoZXM= IEFCUw== IE1hc3Q= IFdhbGxldA== KCQoIiM= RGlydHk= IGNvcGU= IGludGVycG9sYXRpb24= b3VzZWQ= IEpldHM= LkZMQUc= LkNhbmNlbA== LkV2ZW50cw== bmV2ZXI= IE1Ieg== PkQ= IHNlcnZsZXQ= YmFzdGlhbg== ID4m U0lE X2Nsaw== IGRpdmlzaW9ucw== fScsCg== IGRpbGRv IHBhcmFkZQ== bWFqb3I= IGFib2FyZA== Oysr IGZ1c2lvbg== In0seyI= IERpYWxvZ1Jlc3VsdA== CWFycg== LWVt X25y KGhhbmRsZXI= Lk5FVA== Llh0cmFSZXBvcnRz IFNoYWg= IEJyaWVm LSw= IHByZWNpbw== CQkJICAgICAg IHRhbnQ= IEdyYW5kZQ== L3htbA== X0lDT04= IFJldHJv dW5xdWU= IG5hZw== dG9GaXhlZA== WEw= IGRlY2xhcmluZw== IENvbmNyZXRl IEFtYXppbmc= CXByaW50aw== IGRlYmF0ZXM= REFURUQ= IGFlc3RoZXRpYw== ZW1ldGVyeQ== Um91dGluZ01vZHVsZQ== IE5hc2h2aWxsZQ== V0FZUw== IHdvbGY= IG9ic2VydmVycw== T1RB YW5zb24= IGVh IGdyZWVuaG91c2U= k43kvZw= IHN0YWly IGltbWlncmFudA== X2FwcGx5 cGVhcmU= IEJsb29tYmVyZw== X1BMQVlFUg== UmVzcA== 5q2j Q2hvb3Nlcg== IElDb2xsZWN0aW9u UGV0ZXI= RXJybw== LmRldGVjdENoYW5nZXM= TWFwcw== IHNxdWVlemU= IEhvbWVz d2VnaWFu IGZvcm1hdHRpbmc= IG5lZ290aWF0ZQ== dWxk IE5lcA== IFFC IGVjb25vbWllcw== ICovLA== IHJlZHVuZA== IEFiZXI= LklzTnVsbE9yV2hpdGVTcGFjZQ== eWNsZWQ= ICAgICAgICAgICAgICAgICAgCg== X1No IHNrZXB0 IHJlY3JlYXRlZA== IGdldFR5cGU= IG1hcmdpbnM= IGNvbG9uaWFs Y2hhcnRz Ly9A IHByb2Nlc3NvcnM= 6K+0 YmF0aXM= 5oSP YXRvcmlv bWVudGlvbmVk UGF0aWVudA== IHByZXk= Q2hlY2tib3g= X3hwYXRo LnNraXA= IE1vcm1vbg== IE1lbW9yeVN0cmVhbQ== Q1JFTUVOVA== IGt1 bWVsZA== XERhdGE= IEtlcm5lbA== aWx0cg== 6YCB KHByb2ZpbGU= Q2FyYm9u Uk9MRQ== KHBs XSoo Lm1lbW9yeQ== IG1lZGFs IGFkdmlzb3I= aXTDpHQ= IGhkcg== aWVydW5n IFByb3ZpZGVz KGFscGhh IHRlZW5hZ2Vycw== LXBhcnNlcg== LkxhdExuZw== XSgpCg== IGZlbG9ueQ== CQkJCgkJCQo= Qk9PSw== IHNsYXNo IGNsZWFyZml4 IFByb3BoZXQ= 5a65 cmlnaHRuZXNz LWZp LmtpbmQ= ZXJ0b24= Smlt IG1hbmlwdWxhdGU= IHdvcmtzaGVldA== b2xpbg== c3RhcnM= IGFydGlmYWN0 X0VNUFRZ CW1haW4= LS0tLS0tLS0tLS0tLTwv L3N0YXRpYw== SVRJRVM= IENvdW5zZWw= IFdD IEJMQUNL LXN5c3RlbQ== IFRyaXBsZQ== LmJ0 c29mdHdhcmU= XScpLg== SW5qZWN0aW9u X25vdGlmeQ== IGZpZnRlZW4= IGFtYmFzc2Fkb3I= YnJlYWtpbmc= VVJJQ29tcG9uZW50 IFByb3Rlc3Q= LlJlc2V0 IE1Qcw== dnJv LmdldFN0YXR1cw== X21vcmU= Y3Vw IEtlbnlh 5bey IGFtbXVuaXRpb24= 15XX IERhc2g= IHVuZGVyZ28= IGJ1ZGR5 0YLQvtGA ZXRpY2FsbHk= X091dA== IEJyb2Fkd2F5 qow= IEZpdHo= IHN0cmlwcGVk LWNhY2hl IHVtYg== IGFub20= IHNpYmxpbmdz b2N1bWVudGVk SW50ZXJydXB0ZWRFeGNlcHRpb24= IHBlbmc= bHN0 X0FMSUdO LWNhcA== UkQ= Y2VsbHM= IE1vdG9ycw== IHRyYW5zbGF0aW9ucw== dXN0ZXJpbmc= 6Zo= IGxlYWtz ZmlsZVBhdGg= IG91dGdvaW5n X2VuZHBvaW50 X0dM LmxpZmVyYXk= cmljaHQ= IE9wZW5HTA== LmpwYQ== IGFmZmVjdGlvbg== Zmx1eA== IGdseQ== IGJ1ZA== Pic7 IGV4cHJlc3Npbmc= IElR IEZhY3Q= LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioK X21hc3M= KSk6 IGNvbmRvbQ== IGNyZWF0ZVN0YXRl b21ldG93bg== IGlycg== ID4o PkI= aXRlcmF0aW9u 44Oq IHNoaXJ0cw== b3VudHk= LT4k X1NJR04= IERhbGU= IGpq RWFzeQ== RnJl IE55 IGNobG9y bWF0Y2hlZA== IEdlcm0= LVVB IE5hdGhhbg== ZWR1Y2F0aW9u LXlhcmQ= LWNoZQ== aG91c2Vz cml0aW9uYWw= IHByb3hpbWl0eQ== IGRpZXNlbQ== 4bqtcA== IGRyb3VnaHQ= LmF1ZGlv IExlbw== IGZhdm9yYWJsZQ== aW5jaA== IERhdw== cmlibHk= X3N0dWRlbnQ= aWRhYmxl T1ZF IGxhY2tz b3VuY2luZw== LmJ1c2luZXNz IHJlb3Blbg== bWF5YmU= X0dMT0JBTA== IGRyZXNzZXM= IEVkd2FyZHM= ZW5zaWJsZQ== IEhhcmR3YXJl IEV4Y2VsbGVudA== IFRpbWVVbml0 Q1RJT05T IHNjaGVkdWxlcw== IHNlZ3Vl T3BlbnM= YW1tZW4= LUlkZW50aWZpZXI= IHN0YXJpbmc= IGhhcHBpbHk= IEhvYg== J18= ICIpOw== YW1lbnRvcw== ZXRjaGVk IC8+fQo= LlVzZXJz IGludGVycnVwdGVk Q29udGFjdHM= IHJlZ2lzdHJv aW5idXJnaA== Q0hB X2ltcA== cGhpcw== c2F5 IHJldGFpbGVy Lk5PREU= L21hcHM= X0xBU1Q= IENoYXJnZQ== X2d1YXJk Q29sbGlkZXI= IFN0YXRlbGVzc1dpZGdldA== IjpbIg== KCIuLi8uLi8= aW94aWRl IFN1bmQ= ICcnOw== dW5zZXQ= YWRkV2lkZ2V0 0LvRjg== ZWxsZXM= YWxrZXI= QXJj IGRlZHVjdA== R1VJTGF5b3V0 IFZpbGxh IGZvcmJpZGRlbg== X3doZXJl IFwv IFRpYg== X0FY XQ0KDQo= IEJpcg== IGJlbmQ= IE1BS0U= IE1FVA== IGZ1dHVyZXM= IHdlaWdodGVk IiIiDQo= IGF1dGhvcml6ZQ== KHByb2dyYW0= fSx7Ig== IGNvZWZmaWNpZW50cw== w6pz UGVyUGFnZQ== IEJhdGhyb29t IFB1Ymxpc2hpbmc= R1BM IHN1Ym1pc3Npb25z IE5VTUJFUg== asSF IGFkZGl0aW9uYWxseQ== ZW1wcmU= IFNoZWw= b3R5cA== U29sdXRpb24= IHRodW5kZXI= X2Vj IAogICAgCg== IEZlbGxvdw== IGtheQ== IG5ld1N0YXRl T05UQUw= SW1wbGVtZW50YXRpb24= Lkxvb2s= IGVudHM= IGxvcnM= IEJJRw== ZmFi IGF2ZXJhZ2Vk IEZlZWRiYWNr IFdlbGxz IG1hcnRpYWw= IGluZHVs IENvbW11bmlzdA== IEZvcmV4 IEFncmljdWx0dXJl Ils= IHF1YXI= IEtvbnQ= CXZpZXc= LkJ5dGVz ZGVza3RvcA== IE1ha2Vz YWtlc3BlYXJl Lk51bGxhYmxl IHNwb3RsaWdodA== VkI= b3d5 KHRvcmNo dHJpZGdl X2JvdW5kcw== IGFwb2xvZ2l6ZQ== LmFkZEl0ZW0= YW50ZA== Kik7Cg== LHU= KGdlbg== 57uT cmVhdG9y IENvcmQ= b3VwcGVy Lm1ldHJv IGV3 IFdPUkQ= LkFmdGVy IGRldGFpbmVk IEhhbW1lcg== ZXhpc3Rpbmc= IG9zdA== IG1vbnVtZW50 LWN1c3RvbQ== VXNlcklE IE5vbQ== IHJlamVjdGlvbg== KGRpbQ== IHNpbmdsZXRvbg== CWRpZQ== YXJpYW5jZQ== cmVwb3J0cw== XSE9 ZWxkYQ== IHByZXZhbGVuY2U= X3JlZ3M= LiIu IGZlbWluaXN0 Q29kZWM= ICoqCg== KGxhYmVscw== X01BUks= RkFJTEVE IGFkbWluaXN0ZXJlZA== V04= ICAgICAgICAJCQ== IG5vdW4= d2ln IGdvdHRh IHJpZg== LWlt IFBhdWxv IENvbW1hbmRUeXBl XSkpCgo= LXplcm8= VHJhaW5pbmc= IGxvcmQ= X2FydA== cmVkZGl0 Q2VydA== IHBlc28= Um90 IGVuZGFuZ2Vy LmRy dXNlckluZm8= dW50cw== bnY= IFRyYWlsZXI= LWZpcnN0 KG1ha2U= IGJlbmVmaWNp LWJsYWNr acOf IHVuZG91YnRlZGx5 IG1leA== IEFuY2llbnQ= KGFz IGRlc2NlbnQ= UGljaw== IHJlcGxpY2E= JG9iag== w6Rocg== IGFycm93cw== ZnR5 IExpYnlh dWdh Y2hhcmdlZA== VHVy IGhvbWlj aXNzZW4= IEZha2U= IGJlZXJz IHNjYXR0ZXJlZA== KFRpbWU= VVRJTA== IGJ1cmVhdWNy L3BsYWlu IHN0aWNraW5n RkFJTA== IENvdmlk VGhpcmQ= X3ByZXNlbnQ= IFBpZXJyZQ== IOuq IFsuLi5dCgo= UHJvYg== IFRyYWZmaWM= aWNhbw== ZG9jdG9y ICksCgo= VGFicw== YWx1 77ya4oCc IGluaGVyZW50 X05v cml0aXM= IFByb29m LmJhc2VuYW1l 5Lya IGNoaW0= IFByb3RlY3RlZA== Y3JpdA== IHByb25l INC60L7QvQ== IEhlcm9lcw== IGFueGlvdXM= IGFub3M= IHdlZWtlbmRz IHNleHQ= IHJlZHVjZXI= PVVURg== aGFsZg== IFNhdw== Lm1t IG51ZXZh LmN1cnJlbnRUYXJnZXQ= Lmx1YQ== X0VYVEVOU0lPTg== CXJlZw== IEN0cmw= X2FsaWdu YWNjZXB0YWJsZQ== IHJ1c2hpbmc= ZnJhYw== IGJvYXN0cw== Rml2ZQ== wrE= IFRlbXBlcmF0dXJl Pik6 IGNoYXJ0ZXI= UkVBVEVE IHN1YmplY3RlZA== IG9wYw== aGVhbHRoeQ== 5L2/55So IFNjaWVudGlmaWM= IGZyYXU= cmlhZ2Vz 4LiU LmludmVudG9yeQ== YXRpb25hbGU= TWFk bWludXRlcw== Pj4oKTsK IEVudg== IHJlY29yZGluZ3M= IHN1c3BpY2lvbg== c3FsaXRl CXJlYWQ= 44Gm IHdvcnJpZXM= LnB1dFN0cmluZw== IFNoYW5naGFp KHVpZA== cmVy IHbDrWRl Iik6 IG1ldGhvZG9sb2d5 INC60L7RgtC+0YA= Y2Nj YXZhZA== IGluZHVjdGlvbg== CVRocmVhZA== LHN0cmluZw== 4bqhaQ== bmVobWVu dWl0aW9u ICpfXw== LmVtZg== IOyc L3RoZW1lcw== IE5pbmU= Lk9uZQ== IEVtYmVk IGZheg== dWF0aW9ucw== IHByaXZhdGVseQ== IGxpbmc= W0Y= dXNoaQ== IGxhdW5jaGVz KEtFWQ== R01U IGFpbWluZw== cGF0aWJsZQ== IEJpZGVu aXc= IERlZ3JlZQ== ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA= ICQoJzw= w6FyaW9z dG9VcHBlckNhc2U= 7KCc IEVVUg== IG92ZXJzaWdodA== IHRhYmxlc3A= VXBkYXRlcw== Lm1ha2VkaXJz IGh1bWlkaXR5 L3RlbXBsYXRl QWx3YXlz KElT X2NlcnQ= RGln IHVuZGVyd2F5 b3J0b24= IEh1cnJpY2FuZQ== IHNwZW5kcw== IFNlZ21lbnQ= IGZsaWVz IFRvZ2dsZQ== IEx5bmNo IHNlbnNlcw== IEtvcw== c2V0RW5hYmxlZA== aXN0aWNhbGx5 IHRlc3Rlcg== IGFkbWluaXN0cmF0b3Jz IHRhZ2dlZA== 0JM= IHNob3J0Y3V0 IFJlc29sdXRpb24= IHN1cGVydmlzaW9u IEFzaGxleQ== VHJhY2tpbmc= dWxhdG9yeQ== YW5kZWw= aXN0ZW4= IHVucmU= KGRpZmY= QU5UUw== IHJpZGVy IHPEhQ== LlNlcmllcw== X29yZGVycw== T1JJWk9OVEFM IHJldGVudGlvbg== 44CCPC8= LlRlc3Rz U3lu LnBhcnNlRG91Ymxl a29kZQ== emVudA== R2VuZXJhdGlvbg== IGFkbWl0cw== IExlYWs= IGFrYQ== Uk9XUw== IEFuZ2VsYQ== ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IG5vb24= IHN0YXJr IGRyYWdnZWQ= 44O844I= IHJlY3ljbGVyVmlldw== IFNpbGljb24= X3N1ZmZpeA== Sm9u Y29jaw== IFByb2JhYmx5 SW50cm9kdWN0aW9u IFRlcnJvcg== KFRoaXM= IEJhc2ViYWxs IGplbnRlcg== Y2hlc3RyYQ== Lm5hbg== PWc= IGNsYXJpZnk= eWlp cm9vdHM= IG5vdGVib29r IEV4Y2VwdA== IHJpc2Vz IEJydXNzZWxz YXRvcmllcw== LlVTRVI= cm9zc292ZXI= L3VwbG9hZA== IEV2ZW50dWFsbHk= Q29uc2lkZXI= IEJvdW5k LmlkZW50aWZpZXI= KHVuaXR0ZXN0 IGluZmVyaW9y IGNyYw== IGF1dGlzbQ== VUlBbGVydA== IEthdmFuYXVnaA== aW5lbWVudA== cXVldWVSZXVzYWJsZQ== U2tpbg== LmJhY2tlbmQ= LmdldFN0YXRl dW5kaW5n IHN1YmNsYXNz IHJlZmluZWQ= IGFubm95 IHJuZA== RGlyZWN0b3I= IOuC YmVjY2E= bW9uZ29kYg== IENvbW1vbndlYWx0aA== QXo= IFRoaW5n IHJlY29t dW5pbmc= CWNvbg== CSAgICAK ZW1pY3M= ZWNk IGhvcm55 QVRSSVg= IG1pc2xlYWRpbmc= IEJldw== L25vZGU= Y3N0ZGlv 4Lin IGFkZGl0aW9ucw== cmly X3JlcXVlc3Rz IHJlY2hlcmNoZQ== c3R1ZGVudHM= X3Bvc2l0aW9ucw== ZXJ0ZXh0 IEV2b2x1dGlvbg== YW5kZXo= IGRpc3R1cmI= a2V5dXA= IEJ1dGxlcg== LnJlYWRsaW5lcw== X3N0ZGlv IGJlZQ== IEFyY2hpdmVz IG5ldmVydGhlbGVzcw== VVJJVFk= IGRyb25lcw== dXJpdGllcw== IOKYhQ== Ij4NCg0K IGRpYWdvbmFs IENhbmNlbGxhdGlvblRva2Vu X0ludGVybmFs IHJ1aW4= LlF0 b2NyYXRpYw== VGVs IEFuc3dlcnM= bWF0aWM= IHhw YXRlbQ== X2pvYnM= X2FueQ== IHNlbmlvcnM= IGxhbmRtYXJr IFFMaXN0 IG1hbmV1 b3RpZnk= LyI7Cg== L3NlcnZlcg== IFBoaWxvc29waA== dXRlbmFudA== KGlv aHo= IGF1dGhlbnRpY2F0ZWQ= ZHY= LUNvbXBhdGlibGU= T3JpZ2luYWxseQ== LGZ1bmN0aW9u 44CCDQo= IFJlcHJlc2VudGF0aXZl YXNpbHk= aXJjdWl0 LmR0 KG1hdGg= Lk1hcnNoYWw= Wyw= IENpdGllcw== X3R1cm4= fCkK IGNhbnRpZGFk YWx0ZXI= CXVp IE5lYnJhc2th IHNraXJ0 LmJn U2hhcmVkUHJlZmVyZW5jZXM= KHN0eWxl IGdyaWVm Z2V3 IHNhZmVn b2xhbmc= X2xpc3Rz 7Js= IGdyYW5pdGU= IGhvdHRlc3Q= LmpkYmM= LkN1c3RvbWVy IOKJpA== IHdhYXI= X3NjZW5l Kycv IEpUZXh0RmllbGQ= IHNlYXRpbmc= IHdlYXJz IGAv Q2FzZXM= IFlvdXR1YmU= xLFt IGJhbGNvbg== LEc= TWV0YURhdGE= LXByaWNl U0NS VW5pdHk= IHRydW5r PXtgJHs= IGVhcnRocXVha2U= UGFydGlhbA== IHN1YnN0 IGVsaW1pbg== PSInLg== Ly8qW0A= IHN1cGVydmlzb3I= dnJvbGV0 X2FydGljbGU= IHBhbmU= Ymlv IG1vdG9ycw== Tk0= RnJhbms= IG9uaW9u LXdvcmQ= SXRlbUNsaWNrTGlzdGVuZXI= IGJyaXQ= ZW5kZW5jaWVz Q29tcHV0ZXI= X3J1bm5pbmc= KGRheQ== LWhl KG5hbWVk IFNhY2g= 0L7Rhw== Y2FtcGFpZ24= LkFic3RyYWN0 KHdyYXBwZXI= LnBheQ== IHV3 R2Vv cmFpbHM= L3NlbGVjdA== aWNodGU= c29ucw== RVZFTlQ= IGFsaW1lbnQ= UHJvdmlkZXJz QXdhaXQ= X0lOVEVSVkFM Lm9mZg== IGdsdXRlbg== X2Nsb3Vk IHdlbg== LmV4dHJhY3Q= CWJ1dHRvbg== L01N UGFydHk= IGRlbW9ncmFwaGlj X2Vycm5v IGhpa2luZw== KCcnKQo= IixAIg== IHdpdA== csOh b2xvZ2ll IFN0eWxlcw== IEJyb3dzZXJNb2R1bGU= LlJlcXVlc3RNYXBwaW5n aWNhbnM= UEFHRQ== Y3JlYXRpb24= IEZlcmd1c29u dWRlZA== bnVtYmVycw== IEdUSw== IHByZXNlbnRhdGlvbnM= IEJvYmJ5 X3NwYW4= ZXN0eWxl IGlsbGVnYWxseQ== YWJlbGE= IGJhdHRsZWZpZWxk Y2FwYWNpdHk= dGVycm9y XSIpOwo= IHdhcnJpb3I= bGVhZGVy IERCRw== IFJldmVudWU= IHZpZ2ls IGNvdW50ZXJwYXJ0cw== KEVycm9y QUNURVI= IGhlZWZ0 IHNlbGVjdGlvbnM= emV1Zw== dG9t LXR3bw== LjsK X3N0YXRlbWVudA== IEFpZA== IFZ1bA== X3JnYg== IHByaXplcw== IGVkaXRhYmxl CWZvcm0= xLFuxLE= LmRlY29y RGVtbw== bGljZXM= IGVuY3R5cGU= cmF0dWxhdGlvbnM= IFJPUw== X2NoYXJz IEphaHI= cGFydGlhbA== 0YPRgg== IFJlY2VpdmU= IExhbmRz QVBURVI= IGNob3BwZWQ= Li4i IEFuYWx5 IFVJRA== IFJhZGVvbg== IEJlZQ== IHVubQ== Pk0= LmZpbmRhbGw= VG9rZW5pemVy IFdIQVQ= IHNq RHJhd2luZw== RXNz T05E irY= KHBhY2tldA== 4oCUYnV0 SW52b2NhdGlvbg== IE51Y2xlYXI= PzsK IGdyYW5kZXM= IENyeXB0 cmVtYXJr ICcuLi8uLi8uLi8uLi8= IGluYWJpbGl0eQ== bWFnaWM= Y2F0cw== IHNpbXVsYXRl OiR7 aW5mbGF0ZQ== IGVuZXI= Ok5P aXBsZXM= IG1lcml0 IFJhdGVk IGdsdWU= L2Jsb2c= IGdyZW4= IHRocmlsbGVk LkNI dW5jYW4= IFBSSU1BUlk= IHBlcnNlYw== IGZlYXJlZA== Lk1JTg== IFRoZWF0ZXI= 6ZI= YXRlZ29yaWU= 5q61 IGFwcGV0aXRl c3F1YXJl IEFsZXhhbmQ= LlVzZXJJZA== X2d0 X2VudGVy IGdyYWR1YXRlcw== RnJhZ21lbnRNYW5hZ2Vy QXV0aG9yaXpl LU5MUw== KE15 IHRyaXVtcGg= dXN0aW5n X1BBUkFNUw== Q2hhcmFjdGVycw== KDosOiw= X0JVSUxE TUh6 IHdhc2hlZA== IHVuY2xl U3RldmU= YXJkb3du PHN0ZGlv X3Rlcm1z IE1BUg== IGhvc2U= dWN1cw== IENsYWlt IFJhbXM= IG1vZGVsQnVpbGRlcg== IG7DqQ== dXNlcklE PWpzb24= LlJlc3BvbnNlV3JpdGVy mOiupA== IGdydXBv LWl0 IEtP LU1haWw= IGNvbmZlcmVuY2Vz SUZB IEFzc2Fk IHByb25vdW5jZWQ= IGFuY2VzdG9ycw== IFRSQUNF IEdlRm9yY2U= IHByaXZhdA== cGVsbA== ZW1vamk= INmI R2VucmU= IGNvbmNlbnRyYXRlZA== amFuZw== TU9URQ== IFpvb20= dG9vbGJhcg== IHV0dGVybHk= IGVuY29tcGFzcw== IFNvY2Nlcg== IGV1cm9wZQ== LWFpcg== LmFuaW0= X0NUTA== aGVyZW50 cmV4 aW50ZXJhY3RpdmU= 44Gn44GZ IEthcw== IGRlc3BlcmF0ZWx5 KGFy IGJpaw== IHRyYXZlcnNl ZXVycw== UmVjeWNsZXJWaWV3 IE1hcmdhcmV0 IGhvcGVmdWw= IE1pZw== X01FTUJFUg== cmVjZWl2ZXI= TWF0Y2hlcg== ZGVwZW5kZW50 IGV4Y2VsbGVuY2U= 0LDQtg== TE9T QXNwZWN0 IGFkYWxhaA== IEVjb25vbXk= dWxvdXNseQ== IGV2YWx1YXRpbmc= IGRldmlhdGlvbg== ZXh0ZXI= L2RhdA== Q29scw== IFBva2Vy Ym9hcmRpbmc= LkNoaWxkcmVu QU5HTEU= w68= IFlvZ2E= IGhhdGVk QWRhbQ== IEZDQw== SU1BTA== IGZhaW50 X0RJU1BMQVk= IGV2b2x2ZQ== IGZyaWRnZQ== IHLDqWc= IGVtb3Rpb25hbGx5 4oCcSWY= YXdlaQ== ZXJlc2E= Jywi QkVHSU4= IFZBUkNIQVI= IHhp ZmFjdG9y dHo= X3BoYXNl U0VR KHJhbmQ= IG1hdGhlbWF0aWNz IGNvbnRleHRz LWFj IEZJRw== IENhcHRpb24= IFdhaXRGb3I= LXdlc3Q= IGZpcmVmaWdodA== X0xFRA== ZWN0aW9ucw== CXRocm93cw== IFRha2Vz b2JyZQ== IEF2YXRhcg== IElubm92YXRpb24= IGNhbGlicmF0aW9u OnRoaXM= X2VuY29kaW5n IGNhbGN1bGF0aW5n ICMjIyMjIyMjIyMjIyMjIyM= IFByb2dyYW1z IEhJR0g= LmNvbmZpZ3VyZVRlc3RpbmdNb2R1bGU= UG9seWdvbg== X0RCRw== Il0sDQo= 0LDQsQ== IHNpbWlsYXJpdHk= IHByemV6 IEZpcm0= IG1pc3VuZGVy IE1vdmluZw== IE1PVg== IHJlYWN0b3I= UmVxdWVzdGVk ZXhwZWN0cw== IGVyZWN0 bGljaHQ= b3VsZGVy SURHRVQ= IGRldmls IHByb2dyYW1tZXM= IENvbW1vbk1vZHVsZQ== ICInIg== KEF1dGg= 44CC77yM IFN0YXRlZnVsV2lkZ2V0 6K6h L29wZW4= aW5hbGx5 LlJvdW5k IFdpc2g= IGh1bWFuaXRhcmlhbg== QWNjZXNzVG9rZW4= IFNPQw== IHBva2Vtb24= IHZhcG9y X2FkZGVk CUdldA== c3BlbGw= IEluaXRpYXRpdmU= IEhFTA== YWlycm8= YmxlZA== INCx0Ys= IHNlbnNpYmxl IEx1YQ== fCgK IGZpeHR1cmVz IG9yZ2FzbQ== Q3V0 dWt0 Z3Vl IGNyZWRpYmlsaXR5 OmltYWdl IENQUA== LnNu KGRlc2M= IFJlaWQ= LWRlZ3JlZQ== X3NvdW5k Q2xvbmU= 4buZ YWtzaQ== PiR7 X2NvbmZpcm1hdGlvbg== IHRyb3BoeQ== V29ya3M= IEVsZWN0cm9uaWNz IE1lZGl0ZXJyYW5lYW4= X21ldHJpY3M= IGFubm91bmNpbmc= IERBWQ== X3Byb3Rv IHBlYXI= YmFzZVVybA== CQkJCQkJCQkK IGNvb3JkaW5hdGlvbg== Ok4= LmFuaW1hdGU= IENvdHRvbg== X2hpdA== 4pw= IGpldHp0 aWZ0ZXI= KGZpZWxkcw== b3dubG9hZA== aWZpY2FjaW9u LmN1ZGE= IExpdQ== PmVxdWFscw== IEFjZQ== 0YDQsNC8 IFN1cGVybWFu IEdhcmNpYQ== IGFycmVzdHM= YWdhcg== IHt9KQ== IG1hY3Jvcw== cm91cGU= w6p0cmU= IHR3aXN0ZWQ= c3RydW1lbnRz Xygi X3ZlcnRpY2Vz IFRyYW5zaXRpb24= 0LjQug== W21heA== bWluZA== IGFjY2Vzc1Rva2Vu IHVubGU= bXVz Y29w IEZhY3Rvcg== IGNvbmNlZA== IHJldHI= LmxpbmFsZw== LXNsaWRlcg== b2Js X1N0YXRpY0ZpZWxkcw== IHpvbWJpZQ== c2VsbGluZw== IGNoYXA= IHNoYWtpbmc= IFRyYW5zbGF0ZQ== IEFtc3RlcmRhbQ== IEVUSA== X0VYVEVSTg== a2Q= X2Rpc2M= IHByZWNlZGluZw== IHByaXg= T2JqZWN0TmFtZQ== X21vZGlmaWVk YXJkd2FyZQ== ID8+Ij4= IERX YCR7 ID8+Ij48Pw== dXllbg== IGRvbm5h IHhzaQ== ICQiew== IERyYXdpbmc= LG5pbA== IG9uZGVy Qkc= T2JzZXJ2 IGNvbnNpZGVyYXRpb25z Ym9hdA== IEJhbmtz IGluZGljdA== LEk= IEJsdQ== KHZlcnNpb24= Y2xpZW50ZQ== b2xhbg== TEVTUw== YXNzZXJ0U2FtZQ== X3ZvaWQ= IFdBUw== CWVudW0= IG1peGVy RVc= YWZmZQ== IGJsb3dqb2I= dGV4dEZpZWxk IGltbWVuc2U= X3JlcG8= IGdsb2JhbHM= YW50YWdlcw== LnRvZGF5 VGh1cnNkYXk= IEJyaWc= e30pCg== IEltYWdpbmU= KEdQSU8= IGVzdG8= IFByb3ZpbmNl IE1lbnRhbA== X2NlbGxz IEp1bGlhbg== LlNjcmVlbg== IGNhbmRsZQ== IG1vbmRl IHZlcmc= aXRlcmFscw== LWxheW91dA== R3Vlc3Q= IHZpbmQ= IEVjaG8= Jyl9 IG1hbm4= X0JPT0xFQU4= aGFw IG5pZ2h0bWFyZQ== VUdI IG5vbmV0aGVsZXNz IGF0aGU= IEhvbGxhbmQ= IEJvcm4= XE9STQ== YW51dA== X2xldmVscw== IHBldGl0ZQ== LWFydA== X1NIT1c= bnVtYmVyT2Y= X3RodW1ibmFpbA== YW1pbnM= IERlZmluZXM= ICI9 LlN0YXR1c0NvZGU= IGRpZ25pdHk= IEJpa2U= Lk5ld0xpbmU= IEdsYXM= KGxvZ2dlcg== IGNhdGNoZXM= dm90ZXM= IGV4YW1pbmluZw== L3JlZ2lzdGVy IHNwZWNpZnlpbmc= X2ZpeGVk IGRyYXdpbmdz VGhyZXNob2xk QXg= IEFyY2hpdGVjdHVyZQ== KHBpZA== V2lyZQ== KGNvbnQ= bGFuZQ== TGlzdHM= IHNwcmludA== IGdyYW5kZmF0aGVy X0FH IHNjaGVkdWxpbmc= Q0xVUw== YXR1cml0eQ== IGxvY2tpbmc= W3NpemU= X3N0eWxlcw== IHdi LS0+Cgo= IHNwaW5uaW5n X3BlbmRpbmc= TWF0Y2hlcnM= LktleXM= IFBW ZW51cw== YW50aXM= IGRpc2NhcmQ= IGhhdWw= IGVtcGly IHBhdGh3YXk= IG9haw== 0LzQtdC9 LWluZHVjZWQ= IGltcGFpcg== IENhbGdhcnk= LmlzSGlkZGVu ZHo= X2luY2x1ZGU= IGdt ICcoJw== UFk= dWdnZXN0aW9ucw== IGNvbW1vZGl0eQ== Y3Jv L3N1Yg== IGdldEluc3RhbmNl IExlZ2FjeQ== IEtpbA== QmFs KHNob3J0 SW5mb3Jt K3g= KnI= IEhvcGVmdWxseQ== b3JhdGU= IG1hY2hlbg== IHRyZWF0eQ== IE9yaQ== LnB1YmxpYw== LWhvcml6b250YWw= IHRhY3RpYw== IGJvcmQ= d2FyZXM= IGFtbW8= IExpc3Rz IGVxdWF0aW9ucw== L2hlcg== IE5TVw== Qm91bmRpbmc= X0NvbGxlY3Rpb25z IGF2YWls LkRyb3BEb3du 6LA= IGho IGzDoA== LnBi IG1lbW9yaWFs IEFUVFI= IGV4aGF1c3RlZA== IHRzcA== CXJlZGlyZWN0 IGxpa2V3aXNl U1RFUg== TGphdmE= IGNvbmRlbW5lZA== b2NhdXN0 KHN0cmljdA== IGV4ZW1wdA== IHNtcw== IGV4YWdnZXI= U1lT IGxvdW5nZQ== Ol4= IHRvZGQ= ZGVi YXRvcmlhbA== IFBvcnRlcg== IHR1aXRpb24= IGV4ZW1wbA== IHBhcmVu LmxpbmVUbw== IGtpZG5leQ== IMOnYQ== IGN1aQ== 77yM6K+3 WEM= IG1vxbw= IG5vbWluYXRlZA== bHVuZw== SW1HdWk= IEJ1eno= IHN0ZXJlbw== cG9ydGFs cmVzYXM= IGtsYXNz IGRyYWZ0ZWQ= IHByb2plY3RpbGU= L2dwbA== KHBhcmFtZXRlcnM= KikK IGFzc2lzdGVk IE5TSW50ZWdlcg== c2l0ZW1hcA== Om50aA== LlZpZXdz LkFyZ3VtZW50UGFyc2Vy IG1lZXI= emllcg== IERpZw== PD89JA== X3Blcm1pc3Npb24= CUFkZA== b2xvZ2lh IHNjaQ== IGZpbmFuY2lhbGx5 IHNjcm9sbGluZw== LmRpc3Q= X0hBUw== dWJ1bnR1 LnBhZ2Vz SW5jcmU= YnVyc2U= IEFtYXRldXI= 5rqQ QmxvYg== IGNob2xlc3Rlcm9s REVT bWluaW11bQ== IHJlZnVzaW5n dW5uZWQ= 0Jw= IFJE LlNlcnZsZXQ= ICovOwo= dWRkZW4= IHZpZXdCb3g= IG1ldGFib2xpc20= IHN0ZWFsaW5n IEJldmVy YWduZXRpYw== VkVSUklERQ== X0FVRElP 0YDRiw== IGFyY2hpdmVz LmxpbmVhcg== PXs8 dW5jYXRlZA== QWNjZXNzRXhjZXB0aW9u IHBpY3R1cmVCb3g= CXNlbGVjdA== TGF0aXR1ZGU= dmlzb3I= cmVpYg== IHBhaw== SG9wZQ== IEl0ZXJhYmxl LnJlc3BvbnNlVGV4dA== IFF1YWQ= IEJyb29rcw== IFRvdA== T1BU ZWxvbmc= IGNvY2FpbmU= IGFubw== RGFu IHBzaQ== 0LDQu9GM LmdldENoaWxk IFJFRg== LWFi IFRyaWFuZ2xl PFRleHQ= IENvbG9tYmlh aW5reQ== 6Imy KX0+Cg== IHBsYWc= cGluZQ== IGJsYW5rZXQ= IDo8Lw== IFRyYW5zbGF0aW9u bm92 IHBlcmZlY3Rpb24= IENvbmZlZGVy LnN0dWI= LkludGVyb3BTZXJ2aWNlcw== LlN0b3Jl IGVucm9sbG1lbnQ= IGRlZXI= TW92ZW1lbnQ= LWZyb20= aGM= IGV2YW5nZWw= IElsbHVzdHI= IHRydW1w X1N0YXJ0 cGxhbmVz IEJpbA== SW5mb3M= LXRyYW5z IHJhbmNo IExpbmRh X21hcg== UkVU L25ldA== TGF3 TkY= IFByZXZlbnQ= IGNyaWVk IGVkdWNhdGU= YXN0aWNz eWk= LkxpbmVhckxheW91dA== TUVUSE9E IEVn bWFwcGVy 5pmC LmFzYXJyYXk= z4E= acOnw6Nv UmV1c2U= X3Jldg== IFBST0RVQ1Q= X0NvZGU= ICAgICANCg== IFNFUlZJQ0U= X2NvdmVy LiwK LkV4ZWN1dGVSZWFkZXI= IERpbmluZw== LmFyY2g= IG90cm8= IERpc2NvdmVyeQ== IEtleUVycm9y IEJlbmVmaXRz X1NIQQ== LlVubWFyc2hhbA== SEVBREVS TXV0ZXg= QU1B IGluaXRpYXRl U3RheQ== TGl0dGxl ICgpLA== IGRlY2VudHJhbA== UmVzb2x1dGlvbg== LmhlYWx0aA== CWZjbG9zZQ== 5Lqk IHN0YWtlaG9sZGVycw== IGFyY2hhZQ== RGlnaXRhbA== bGVzY29wZQ== X3Blbg== IEl0ZW1TdGFjaw== IENhbm9u IEtlbmQ= IMO4 X2FqYXg= aW5ncmVkaWVudHM= RGVsaXZlcnk= U2VjdGlvbnM= IGRpc2FwcG9pbnRpbmc= IEdyZW4= LHJl IGRlY3J5cHQ= b2xvZ2lj X2ZtdA== IFNsaWRlcg== bmFo V2FzaGluZ3Rvbg== enVuZw== INGG eWN6 aWV2ZXM= LkRFQlVH IFRJ IGhhY2tpbmc= IGNlbnRy Zmxvd3M= IGRpZFJlY2VpdmVNZW1vcnlXYXJuaW5n IGFjY291bnRhYmlsaXR5 Q09VTlQ= 0LvQtdC80LXQvdGC Ymxv L2lk IFNsb3c= aXp6YXJk LnJlbW92ZUV2ZW50TGlzdGVuZXI= IOyehQ== L0k= aXNtYQ== IEh1ZHNvbg== fX0s dW1lZA== IHJlYWxpc2U= dW5zYWZl IHp1cw== IHNob3J0YWdl b2xpYQ== X3ByaW9yaXR5 IGZsb29kaW5n b3BlcmF0aW9ucw== UG9seQ== YWJhbg== W2N1cg== IGVza29ydGU= X0RFU0NSSVBUSU9O X25hdA== IG1hbGljaW91cw== ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA= IFBhcmtz IHRheHBheWVy IEZvc3Rlcg== IHNleHVhbGl0eQ== 57O7 67A= XA0K LnNlZWs= 0LDQvdC40Y8= L2FydGljbGU= 6L+H IFVocg== IGdyYW5kbW90aGVy IEJsZQ== ZnVydA== YW1iYWg= bm90aWZpY2F0aW9ucw== ZGVwcmVjYXRlZA== IHVpbnRwdHI= b2tp KEFycmF5 IGF1dG9ub21vdXM= IG9icg== wq/Crw== IGJhc2VuYW1l IHVudmVpbGVk c29s IE5vdEltcGxlbWVudGVkRXJyb3I= IGRlcHJlc3M= XycuJA== IFVOSVQ= JScs LXRhZw== Z3JlcA== IE1haW50ZW5hbmNl IHdhcmZhcmU= X1JFU09VUkNF KHNwZWM= KGN2 IG5hZGE= 55S1 IGNyb3dkZWQ= QmVsb3c= IFphY2g= RXN0YWRv X3ByaW1l IHRyYWJham8= IGluZm9ybWF0aXZl U2NvdHQ= IHNlcmlhbGl6ZXJz IE5hcw== VGh1bms= IG1lcmN5 LC4uLgoK IGFkZGljdA== LmNvbnN0YW50cw== IGRhdGFmcmFtZQ== X3JlYXNvbg== Z29tZXJ5 7Iq164uI64uk IG5lZ2xlY3Q= IExpbmVz IG1lbWI= X0VYRUM= YXNzYWdl IFlhcmQ= e30nLg== IGxvdHRlcnk= dGVpbg== X2NhbGM= aWt1 X1JFQ09SRA== V2Fybg== IGhlYWx0aGllcg== dXJlbWVudA== IHlhcm4= IENvcm5lcg== KHppcA== KGluaXQ= IExpdA== SFc= c3Vic2V0 IE1G RVRFUlM= X3JvdA== IGVyZQ== IE92ZXJyaWRl V2FsbGV0 X3Jld2FyZA== IHNhZ2U= c2V0VmlzaWJsZQ== IEpzb25SZXNwb25zZQ== SUNZ 6K+i VmFyQ2hhcg== YWF0 LWdyZWVu IGlycQ== YW5pdHk= IHdob2V2ZXI= X3NoYXJl IGZvdXQ= cm9sbHM= IHdpbGxpbmduZXNz LmNvbXBvbmVudEluc3RhbmNl IGhvbm9yZWQ= dXJ2ZXk= QmVy IHJ1bm5lcnM= IGxpZXU= b3Jwb3I= X3N0cnVjdHVyZQ== QmFyQnV0dG9uSXRlbQ== YWR4 IEJlbm5ldHQ= IGRpbGln IGZsdWN0 SURERU4= X1NlbGVjdGVk KGRpdg== IHF1aWNrZXI= YWxvbmc= Z3JhcGhxbA== aW5leg== IGNpdGU= IEluc3RydWN0aW9ucw== IGluc2VydGluZw== LmNsb3VkZmxhcmU= Y291cG9u ZWRMaXN0 IFN0b3Jlcw== X21hbGxvYw== 56ym IEF3ZXNvbWU= IGxhbWI= UkVTVA== IGludGVzdA== IE5hdmJhcg== LmZlYXR1cmVz SW5jcmVtZW50 IFBvbQ== IGluc3VmZmljaWVudA== X0xPR0lO UExFTUVOVA== IE9BdXRo LklORk8= IGV4b3RpYw== IENBU0U= CSAgCg== IEdhbmQ= dGhlc2Vz IG5vdm8= IERlbGw= 4oCm4oCm4oCm4oCm X3NvZnQ= IGFncmVlaW5n Y2VudHM= bG9hbg== JyIsCg== IFJhbg== REVM IG9yZ2FuaXNlZA== K24= IEhlYWx0aGNhcmU= IGRldGVyaW9y IGltcGxlbWVudGF0aW9ucw== IGNhcm4= ICwn IExPQUQ= IHBsYW50ZWQ= 5pyq Rm9ybUNvbnRyb2w= X21hdGNoZXM= IHBlcmlvZGlj X1Rv IEpvZWw= IGFua2xl IG1pbGl0YW50cw== IFdpdGNo dW5pZm9ybQ== dWVudGE= T2ZXZWVr IHBlcnBldHI= IGludGVydmVudGlvbnM= KHdyaXRlcg== YW50aW5l UHJvZ3Jlc3NCYXI= IGxlYWd1ZXM= Y29tcHJlc3M= aXppb25l IEVB Il09Ig== IFN0ZXBoYW4= bWludXM= c3N0cmVhbQ== X2xlZA== ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0= IldoZW4= QWxyZWFkeQ== IGNvbnRlbXBs IGF0YXU= IENvbmdyZXNzaW9uYWw= IHJhcHBvcnQ= IEJvdXI= aXNoaQ== IHR5bQ== IEFybWVu INGA0LDQtw== LWZvcm1hdA== X1JlYWQ= KGNvbHVtbnM= IG5ldWU= X2JveGVz IFNhbmR5 XywK IFdpemFyZA== IG9yZGVu IGZpbGVzeXN0ZW0= ZmxpZ2h0 IHdzeg== YW5jZWxlZA== IGRhd24= IEdzb24= X3dhcm5pbmc= IEljZWxhbmQ= IHNsdXQ= IHNldElz X2lkZW50 IG9mZnNob3Jl IFNrZXRjaA== OyU= IHRyaWJlcw== X1NQQUNF IG90cm9z Q29tcGlsZXI= CUVuZA== IF0pLAo= R3Jhdml0eQ== IHRlbnNpb25z IHNtb290aGx5 S25vdw== b290aGluZw== IFN0YXJ0dXA= IEh5cA== IGFtYXpvbg== IFJlY2VpdmVk emVuaWU= 654= IENob2NvbGF0ZQ== IMSw Ik5v IEFMUw== IFByb2dyYW1taW5n IERvZ3M= IGdvb2RuZXNz KGVycm5v L2Vz IHJlbW90ZWx5 IEhvb2tz VXVpZA== IG92ZXJseQ== IOWQ IGdwdQ== IHN0aW11bHVz KHN0ZXA= LllvdQ== IGJpb20= SU5D LmJpdHM= KG1Db250ZXh0 IGFtZXJpY2Fu IHRlcnJpdG9yaWVz IE5E XSIK IE1hcHBpbmc= IHByb2NlZWRpbmc= LmF4 IHN1YnN0cmluZw== QlVUVE9O IEln LXBhbmU= IEFucw== IGdyYWR1YXRpb24= IHBlcnNwZWN0aXZlcw== TWl4aW4= X21pbnVz CQkJCSAgICA= IikpKQ== bm9ybWFsaXplZA== Lmxhc3ROYW1l IGNsYW4= QXNpYQ== KE1vdXNl cGFnaW5hdGU= IGdpZg== ZWxpZw== IHBvc3RlcnM= bmluZ3M= IM+E IGFwb3N0 IElocmU= RGxsSW1wb3J0 IEVxdWFs IGRpc3Rpbmd1aXNoZWQ= bmVhcG9saXM= IGJhY2tkcm9w IEFsdGVybmF0aXZlbHk= L21vZA== IGxlbmQ= IFNIT1c= X2NvZGVz IGF0w6k= ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg LWNhc2U= Y2h0ZQ== IGRvbmM= OmFkZA== TmVnYXRpdmU= ZmF2b3JpdGU= IGF0dHJhY3Rpb25z aW50Q29sb3I= IFBpcg== Q29ubmVsbA== TWFuaWZlc3Q= dGVhbXM= IH07CgoK IHBsdXJhbA== IG92ZXJ0aW1l IEV1cm9wYQ== IEJhbmdsYWRlc2g= KGFu IGxpbmd1 aXRpbWU= aW5zdG9u LnNoYWRvdw== 56iL IFVTUw== U2VydmVyRXJyb3I= SVZFUlM= IEppbg== IGh1bWJsZQ== YXV0b2xvYWQ= YXJleg== 4oCy IEFzdHI= aWNvbG9u LlZpZXdNb2RlbHM= b2Jv IHN3aXBl IHJlY2Vzc2lvbg== 6ZU= IOyY bmVyZw== aW5ncmVkaWVudA== bWFpbHRv IEZhbWU= UHJpbnRpbmc= UGl4ZWxz IEJhc2g= cG9zdGE= X0pP IGluZmFtb3Vz IExhbmM= KGxvY2FsU3RvcmFnZQ== LmJsaXQ= IHlvdW5nZXN0 IGZpZWxkTmFtZQ== IGNvbnRpbmc= IHdvb2w= IEltR3Vp IE5TVA== LnByZWZpeA== VG9JbnQ= IFNveA== IGhhYml0YXQ= KCJ8 PSciKw== SU5HVE9O X3dyYXA= dWNrZXRz IFdSSVRF IG1lZGljaW5lcw== IG1lbWJyYW5l IEpUZXh0 IHJlcHJvZHVjdGlvbg== X3JlY2VpdmU= VGFibGVSb3c= cXVldWVSZXVzYWJsZUNlbGw= aG9va3M= IHJlbHlpbmc= IGRyaWxsaW5n X0ls KGV4Y2VwdGlvbg== IGR1cmFiaWxpdHk= IGhlc2l0YXRl IGNvbXBhcnQ= SUxJTkc= IEVsZGVy IGNhZmZl IGRldmVsb3Bz aXNoZXI= IHBseQ== IHRvbA== X1BMQVk= IGZyaWN0aW9u KGFsd2F5cw== IGluZGlnZW5vdXM= IE9wZXJh IENhbXB1cw== YW5jZW1lbnRz IGxpdHRlcg== LmxpbWl0 KFRva2Vu ZW5pcw== IGhpZ2hsaWdodGluZw== IEF1Yg== IHZhbGlkYXRvcnM= LWhvc3Q= d2hlZWw= PHs= KSkr IE5ld3NsZXR0ZXI= X2F2ZXJhZ2U= IHNvZGl1bQ== IEhpbA== IE1pbGU= IEF1dGhTZXJ2aWNl U3RhdGlzdGljcw== IE51dHJpdGlvbg== IHNwb25zb3Jz b3ZlbmFudA== PT09PT09PT09PT09PT0= LkFic29sdXRl IGbDpQ== SGFuZGxpbmc= IC0tLS0tLS0K KGRpcmVjdG9yeQ== IikuCg== YW5vbA== LmJyb3dzZXI= IEdyaW5kaW5n IGNr RnJlcXVlbmN5 KClbJw== QWRqdXN0 Y3Jldw== YWZldHk= IGdu IHdpdmVz b29v IHByb3N0aXR1 IG/DuQ== aWZ0eQ== IGxpdGlnYXRpb24= IEV6 SmVmZg== LnBr IFNob2Vz Y29ybg== eXl2c3A= IGFkYXA= PXU= Q09ORg== QU5EQVJE IGVsZXZhdG9y YmlsbGluZw== IGNhbmQ= IGNhcnA= W2ZpZWxk LWxpYg== c2VxdWVudGx5 Pi0= IGxjZA== LS0tLS0tLS0tLS0tLS0t KCIi IHRhY3RpY2Fs IFJvbmFsZA== ZXh0cg== IEZlc3Q= IGZ1ZXI= LW5hdmlnYXRpb24= IGti Z2hvc3Q= IGhhbmRsZUNoYW5nZQ== X2Nscw== KCkhPQ== Q29tcGFyYXRvcg== LnZt IENveA== X3Jldmlldw== L0A= X2Nvb2tpZQ== IHJlY29nbmlzZWQ= bGRhcA== VGhyZWFkcw== IFNleHVhbA== IEJlYXJpbmc= KFNRTA== IHhy IHRoaWdo VVJMQ29ubmVjdGlvbg== IFNVVg== IG1Db250ZXh0 IGluY2lkZW5jZQ== IEVzdGU= LnN1cA== X3Rl KEVYSVQ= Q01E LyI+ QWxtb3N0 IFVuZQ== IGFuZGVyZW4= IFNpbmdsZXRvbg== IGJvcmU= VGhpbms= IG5hcmM= XWluaXRXaXRo X3Nob3A= KHN0cmF0ZWd5 IScs aGVyaXRz IERlc2s= X21hY2hpbmU= Lm5ldHR5 xLFuZGE= PTw= IFFS IFNpZGViYXI= LnNwbGl0Q29udGFpbmVy IG9uU3VjY2Vzcw== IG1vbmtleQ== RW5qb3k= KG5vZGVz cGVjdHJ1bQ== ICgqKA== CVVJTlQ= LGhlaWdodA== IE5ldHdvcmtz LnRhaWw= LmxpbnNwYWNl ICIuLi4= TGlzdGVu xqE= LkNoYW5uZWw= LWRlZmluZWQ= UmVwZWF0 YWRqdXN0 RVJN X2FwcGxpY2F0aW9u LmFzc2VydE5vdE51bGw= LXN0cmVhbQ== IHJhYmJpdA== IHBvc2l0aW9uaW5n IHdva2U= IGZpbmc= IG11bHRpcGxheWVy IHJlZ2lzdGVyaW5n dW50aWw= w6Vu KDo6 dXNzaW9ucw== IHBvdGF0bw== IEVxdWFscw== LlN1cA== L2FwYWNoZQ== ICg9 LiIp LnB0cg== IFNwZWVjaA== LmNsaXA= IEdhYnJpZWw= IG11c2ljaWFu L2lzc3Vlcw== LnNob3A= IEhpZXI= X1JFVA== X2J1Y2tldA== 44Oh YXZz IHJveg== Zmxvd2Vy V3JpdGVCYXJyaWVy IE1pbGFu IGxlZ2lzbGF0dXJl IERvbGw= IHByb3Zpbmc= LmNvbmNhdGVuYXRl 4pWQ IGdjaGFy Y2RuanM= Ymxlcw== IExpc3Rpbmc= 0LvQvg== LnhyTGFiZWw= IFNhaw== anVzdGljZQ== IFZhbGVudGluZQ== dW5sZXNz IHBpZ2Vy KHJ1bg== IHRlc3RpZmllZA== QU5B IFJlbW92ZXM= KSkpKTsK cmVjYXRlZA== IFJ1bnRpbWVNZXRob2Q= IGNvbnF1 44Ki IHRpc3N1ZXM= YWlsZXI= w6l0w6k= LVN0YXI= IGZsYW1lcw== LnNldEljb24= IHN1cGVybg== IHZhZ2luYQ== LXZhcmlhYmxl IHdlbGxuZXNz Q1VS IGJlbGxl LmdldFJlcXVlc3Q= IHBvY28= YmVuaA== YWdlbnM= IHNwaWxs IEp1cg== IGRpc3BhdGNoZXI= 0L3QvtCz0L4= ZW1vbmlj KGRpcm5hbWU= INCU IHBhc3Nl IGdhbno= cmljaW5n RVU= IG11amVyZXM= ZXNzZW4= LmF0dHJpYnV0ZQ== amo= CQkgCg== W14= IHN0cnRvbG93ZXI= bGV4ZXI= ZWN0YXI= aG90ZWw= LnNxdWFyZQ== IHJhbGw= IGxvd2VyZWQ= aGFuZGxlZA== TWFya2V0 IFVzZXM= aXZhcw== LkJ1c2luZXNz 44GX44Gm RElW IHdhc3RlZA== IGF2b2ly w6pt X0FDQ09VTlQ= LmV0 CVNETA== a2Fw IGZveA== dXBwZXQ= e30sCg== Iiwn RmF2b3JpdGU= UEVORA== IEFFUw== fSks IGRlZHVjdGlvbg== IHBvbMOtdA== IGNvbXBvbmVudFdpbGw= IFRlbGVyaWs= X1NFTEY= IG11c2U= Q3JhZnQ= IGRlbnM= 4KS/ KHRw IHRhc3R5 IGJhbGFuY2Vz IGRlZGljYXRpb24= IFdhbGxhY2U= IHVubGF3 XCI+XA== IG11bQ== LXVwZGF0ZQ== ZW1lbnRl IHNvZGE= UmVwdWJsaWM= YXNtaW5l w6lyaWM= KFN0YXR1cw== IEpzb25Db252ZXJ0 IERpc2s= LlJlZGlyZWN0 IGZpbG1pbmc= L21vbA== Um8= IHZpbGxl IHRyYWJhag== IHN5bnRoZXNpcw== cmVnYQ== IHJs U2NoZWR1bGVy SVNIRUQ= Y3VycmVudFVzZXI= KGVycm9ycw== J2g= X2JvdA== eGltbw== IFVTQVJU X3N1cGVy X0RFQ1JFRg== 0L3QvtC5 X1JPVw== IHByb21vdGVz IFRB IGhvcmFz IFJlcHJlc2VudHM= IG5hbWVvZg== IEV4Yw== IEdhcmFnZQ== IHNlaW5l LCM= IGhlcmI= L3Jlc291cmNlcw== IHBsZWFkZWQ= LnJhZGlvQnV0dG9u IOaY T3Bz IE5lc3Q= Y3N0cmluZw== IERlZmVuY2U= IHJlZmVyZQ== X2xlYWY= IHJldmVsYXRpb24= 66c= LmV4ZWN1dGVVcGRhdGU= X1dPUkxE IGV4cGFucw== KCJcIg== amFi IGRvdWJ0cw== IEdlb21ldHJ5 IGludHJvZHVjZXM= IHNlbmF0b3Jz IGNhbmFs LmhlbHBlcg== IEJpb2xvZ3k= X1NFTlM= LnByZXZpb3Vz LXRvdWNo YWJpdA== IGltcGFjdGVk IGJyYWNrZXRz LmRpcmVjdA== YWNjdW0= IHRlc3Rvc3Rlcm9uZQ== CWFjdGlvbg== IENoYW5jZQ== IHBlYWtz Q3BwQ29kZUdlbldyaXRlQmFycmllcg== IHVuYmVsaWU= X3ByZXNz LlJlbA== YW5nbGVk L3RlbXBsYXRlcw== LS0+DQo= bGltZQ== IHN1ZmZpY2llbnRseQ== X250 RXhwYW5k LmlzZmlsZQ== IGlzRW1wdHk= IHF0 IG11bGhlcg== YWNvYg== R2Vvcmdl 5bi4 IGFzc2lt YXNv IGNvbXByaXNlZA== T1Y= KENPTkZJRw== CXdyaXRlcg== IGRlc3A= IHRlbnVyZQ== KGNy LnBvb2w= IEJyZW5k IGNlbnNvcg== KHRpbWVvdXQ= IHBsZWE= LldyYXA= IHRpZ2h0bHk= IFdlcmU= IElnbm9yZQ== YWJlaQ== IGJyaWRnZXM= IGNvbmRlbW4= IHNpbXBsaWNpdHk= IHJvdXRpbmVseQ== IGJsYWNrcw== amI= IFBpdA== VXRm IC8K cmVsb2Fk IHNldE9iamVjdA== L2dsb2JhbA== IGZhdHR5 IHNvY2tz Q291bGRu IGVyb3Rpc2s= 5p2h IFByZXNzdXJl IE1heg== bnBvcw== dG9sb3dlcg== IEVR dXRldXI= IE1vbWVudA== IGV0YQ== e3stLQ== IGdyYXBocw== IEd1YXI= cmluZQ== KC0t IEh0dHBTdGF0dXM= KHN0dWRlbnQ= Km5w IHJhaWx3YXk= IGFzeW5jaHJvbm91cw== X3Zt J10sJw== LHRleHQ= bWVyY2hhbnQ= KEd1aWQ= IEdyYQ== aXhlcg== ZmV0Y2hBbGw= LmFkZExpc3RlbmVy ZmxpcA== KiQ= PigpLA== IHN1bmxpZ2h0 YXNzaWduZWQ= IGFiYw== IENPTFVNTg== IPCfmYIKCg== KS4uLg== IGVuc2VtYmxl IG5ld2xpbmU= X1NJTkdMRQ== aWVkYWQ= IGRhcmtlcg== b3JtYXA= IGxpb24= cGxpdHM= IGlsbHVzdHJhdGlvbg== IElFRUU= IHZpc3Rh b3VzYW5kcw== KioqKioqKg== IFRvbW15 IGh1ZQ== U2Vs IGF1cmE= IFRoZXJhcHk= IGFuaW1hdG9y LmNvbnN0cmFpbnRz IHZhZ3Vl KCIiKQ== IHZpbGxhaW4= IGJsZXNzaW5n IHN0cmluZ0J1aWxkZXI= IE1pc2M= IERJUg== ZmF4 LW5vZGU= IFdhbGtpbmc= IEFV c2Vzcw== IGdyaWxs VkVSVElTRQ== IEZvb2Rz IHRvdXJuYW1lbnRz w5M= IE1hcnNo IHdvbmRlcnM= TG9uZ2l0dWRl LkNvbW1hbmRUZXh0 PWlucHV0 X2VuY29kZXI= cGFnZVNpemU= IGdldFN0YXRl Pj4K LmdyZXk= cG9k IHJlYWRpbmdz IHJlY29uc2lkZXI= U3RhcnR1cA== IGV4Y2Vy LmJhbGFuY2U= X2N5Y2xl X1RpbWU= TE9DQUw= IEVGSQ== IFJleW4= LnNldEZvcmVncm91bmQ= Ynlu IGRpc2Nvbm5lY3RlZA== QUNUSVZF IGVtYmVkZGluZw== aWNrZXJz IHN1cnJvdW5kaW5ncw== KmM= IGdhcmFudA== IGJm IHdpcGU= IOS4iw== X1RSQQ== YWRveA== 55U= IHN1Y2tz IFNvbmdz IEFzc29jaWF0ZXM= IEJhbGQ= IEJyZXR0 dmVuaWxl IHZ0 IGluYWRl IHJlc2lnbmVk IEdsZW5u LnBhdHRlcm4= LkRhdGFCaW5k 0YPQvA== TGF5b3V0SW5mbGF0ZXI= Y2hldA== IFRlc3RhbWVudA== Lm1z IHBhdg== IFJlYWN0RE9N dXJkeQ== QURBVEE= TXU= L2FjdGlvbnM= IEpz X2V4dHJhY3Q= IEJyaW5n Omlk c3RydA== aXZhdGlvbg== IG91dHJpZ2h0 YXp1 bG95bWVudA== 0LjRjw== YWxkbw== IFB1Ymxpc2hlcg== RWR1Y2F0aW9u UGFsZXR0ZQ== X2Rydg== ICgkKA== IEFuZGE= IHJlbWVkeQ== IGluY29uc2lzdGVudA== dGVjdGlvbg== IHJlZ3VsYXRvcnM= IHNob3J0ZXN0 KHBhaXI= IEluc3RhbGxhdGlvbg== IGRlZmVuZGFudHM= ICgpOw== LWxhcmdl TWVs IHRocmVhdGVu 0L3Rjw== IGZldGlzaA== b3RpbmU= X2RpYw== IDwk IHN0YWdnZXI= c3Bp JHJlc3BvbnNl U2Vydg== LWJvcm4= am9z CWltZw== CVdIRVJF X2x0 5b2T LmNvc3Q= IFR1ZQ== LmxhYmVscw== IExW d2Nzc3RvcmU= IEplc3Nl 4Lir VHJhZGU= IHByZWRlY2Vzc29y 64I= ZmluYWxseQ== X2dlbmVyYWw= b2dnbGVy X1JFR0lPTg== bmVtZW50 IGJsb2dnZXI= IEhhcmJvcg== IERhdGFzZXQ= W3c= IGF0dGVuZGVlcw== Lmljbw== bWF4aW11bQ== LlVubG9jaw== X1NZTkM= w6FnaW5h IGRvd25z IFdpaQ== XSkv IGtpY2tpbmc= dW5pY2F0aW9u IERBQw== IElEUw== IFJlbnRhbA== IGN1cnJlbnRUaW1l IHZhY2NpbmVz IERldmls IG5vcnM= X21vdXNl dXJyZWN0aW9u KG5v ID4NCg== IGFnZ3Jlc3Npb24= IGJyZWVkaW5n LnN5bWJvbA== aW1hbg== QWJzb2x1dGVQYXRo IFdITw== X2ZsdXNo LXJvb3Q= YXJuYQ== Jk0= IGZhdGhlcnM= IFJvY2tldA== aXZlYXU= IHdhbmRlcg== IGNvbXBvcw== IFdhcnJpb3I= IFNlYXQ= IENsaW5pYw== X2ludm9pY2U= KGRpc3BhdGNo UHJvZHVjdG8= YXR1cmluZw== b3NzaWVy IE1BWQ== IGRhZ2dlcg== IHNhbml0aXplZA== IFJGQw== IHByb3Bo IHVyaW5l IGdyaW5k IEV4cGFuZGVk ZGVzY3JpcGNpb24= LWZ3 IEtlcnJ5 PW5hbWU= IGNoaw== IG5hdGlvbmFsbHk= IHRoZWU= SW5j ID8+Pg== LlJhZGlvQnV0dG9u Lkh0dHBTZXJ2bGV0UmVzcG9uc2U= L1k= CWZpZWxk IGhvbW1l eXBlcg== UGh5c2ljYWw= PXY= IGRyaXY= IEVycm9ycw== IGPEgw== RGVhdGg= IFdJTkRPVw== IHBvZXQ= IFNoYXJw IEltbXV0YWJsZQ== CWNyZWF0ZQ== IGdlaHQ= IFJlZm9ybQ== YWlzZXI= IEluaXRpYWxpemF0aW9u IGltbXVuaXR5 LmNvbXBvc2U= IGxhdGVuY3k= IExlYmFub24= IFBhcmFk IGZ1ZWxz IEV4aGli Y29o JSI+Cg== IENMSQ== KWluaXRXaXRo LVph X0NMRUFS cmVnbg== IGZpbmFuY2Vz LnN0YW5kYXJk X0NBVEVHT1JZ LmxpYnJhcnk= IHRyYXZlbGVycw== X3dw IEV2YWx1YXRpb24= c3RhcnRpbmc= ICkpLAo= ZXBpc29kZQ== IFZhcmlhbnQ= IGRhZW1vbg== IEp1bGlh IE5S IGRvdWJsZXM= PHY= L3J1bnRpbWU= IGludGVycHJldGVy IElOREVY IEhvbG1lcw== X0RJTQ== IHBhZGRsZQ== X2V4YW1wbGU= IGZvcmVncm91bmQ= LnJvdXRlcw== IHNvd2ll U1VDQ0VTUw== IENEQw== IEJE Xy0= YXN1cmVk V3JpdGluZw== IGN1cnJlbnRQYWdl KGFuc3dlcg== IEFTQ0lJ 4Kg= IHNvY2lhbGx5 eXl5 IFNwZWNpYWxpc3Q= KGN1c3RvbWVy aXN0YW5p a2VzdA== IE1haw== IHRobw== LnB0 KGNvbW1lbnQ= IENvbnZlcnRlcg== Z2Ft Ymlucw== LnRlbGU= IFZldGVyYW5z X0FMTE9D 0L7Qu9GM0LfQvtCy0LDRgg== aW5uYW1vbg== O3dpZHRo b2hs IGZhbnRhcw== IHN1bmc= CUs= KEpzb24= IG5laWdoYm91cmhvb2Q= IHZvdw== IHNpbnM= b25hY2Np IGVwb2Nocw== aW1hZ2Vu LkNoYW5nZQ== Lm15YmF0aXM= U2Vlaw== V0VS 566h55CG IGludGVyZXNz X0V2ZW50 ZWRlcmxhbmQ= IHRlcnJpdG9y IGNpdWRhZA== dWNrZWQ= IHNuYWNr IHRyYW5zcG9ydGVk IE1hbmlmZXN0 IERBVA== X3RoZXRh IHdvbnQ= LgoKCgoKCgoKCgo= irbmgIE= IEVwaWM= RGVjaw== bHRyYQ== X1pFUk8= IFtdOw== L3NjcmlwdHM= IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t 5oOF IHdlZWQ= TkJD IHJhcGVk IEdhdGV3YXk= W00= IFRpbWVvdXQ= ZW5jaG1hcms= LlZpZXdNb2RlbA== IHBvcm5vcw== IFlh dGhyaXRpcw== IEZseW5u IG1lZ2E= YWNpbg== IHRyaWJhbA== LmFwcGxl IEJsbw== w6Ju aWJp cm92 IExpdmVz Xi4= Z2V0UmVxdWVzdA== IEVzdGFibGlzaA== Y29udGFpbmVycw== IHN0YXJyaW5n IGNlbGVicml0aWVz IFJlbGF0aXZl IEhlaWdodHM= IHRxZG0= IE5vcnRod2VzdA== aXZpYw== CWNs IGF1dG9tb3RpdmU= ZW50cmlj IGZvcnR1bmF0ZQ== IGZpcmVwbGFjZQ== c2V1ZA== bmlja25hbWU= O3M= X0NBTA== aGFsdA== KG5z X2RlbGV0ZWQ= RGV2ZWxvcG1lbnQ= bW92aWVz IGlkZW50aXRpZXM= IHByb21wdGx5 2KfZhg== IGFudGU= ICInLCc= 5Y+j aW1wc2U= IHlhcA== VHlwZU5hbWU= IGJpdGNo IGFzc29jaWF0ZXM= SEVNRQ== LWVtcHR5 INiq b2x2ZXJz IHBpc3RvbA== U2NvcGVk YWduZXI= J109PSc= IElNUA== ZXhj IG9taXR0ZWQ= IG1pbmRzZXQ= IFtdKA== IG9ybg== X0NBTQ== QXZn TG9jYWxpemVkU3RyaW5n IE5hdHVy IGNvbXBvc2Vy IFBsYXlpbmc= IG92ZXJk X3V0Zg== LnNr IEZvbA== JHBhZ2U= LE9iamVjdA== IGJlZXM= YWxhcnk= YnVsbGV0 X2xpYnJhcnk= T2ZmZXI= bG9jYXRlZA== IChfLA== 4oCcSGU= IE93bmVycw== KSkuCg== IGJyaQ== LkFkbWlu a3Rpb24= 0LvRjtGH IGVyb3RpY2k= Q2FuY2VsbGVk IGFncg== cmV2aWV3cw== X2RtYQ== UklDVA== IGdmeA== bXBp cHBv IC8vQA== IHVwcGVyY2FzZQ== IGNvbW1pdHRpbmc= ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA== VXNlckRhdGE= IHZhaQ== CXNvcnQ= IGNvbmdyYXQ= IGRpb3hpZGU= 0LTQsA== LmFyZWE= IEpvc2h1YQ== IEtvY2g= X2JyZWFr YXp1cmU= aXN0aWNhbA== X0FMUEhB X3ZpZXdz IGVsaW1pbmF0aW5n T01C ZW51bWVy IEh5ZHJv KCoo RVJUSUNBTA== IGluZXZpdGFibHk= IHN0b2xl LWVhc3Q= aWVyb24= IGxpbmdlcg== L2RvYw== xbo= IEFscmVhZHk= YXNpbw== IC0tCg== IGFiYnJldg== IEF0b20= aGlt IElOU0VSVA== c3Vu 4pmq Q09OTkVDVA== ZXJhdG9y IE1hbm5pbmc= IDoo Z2Fz PT4n IHF1ZXJ5c2V0 O30NCg== IFBvcHVsYXRpb24= dXRlZFN0cmluZw== cmVzaWRlbnQ= X0ZPTlQ= IFJlc3BvbmQ= IG9ic2N1cmU= IG9ic2VydmFibGU= IENvbnRyaWJ1dG9ycw== a29u IE11c2s= ZXhhbw== IFR1Yg== Qm9vdEFwcGxpY2F0aW9u U09S Lkhvcml6b250YWw= LmZpbmRCeQ== LnBvd2Vy IHBvc2l0aXZlbHk= dmVuaWVuY2U= IEpvbmc= IHdoaXN0bGU= INC30L3QsNGH IGxlbmRpbmc= IGRlc3RydWN0aXZl IG9uRGVsZXRl YXV0aG9yaXphdGlvbg== KCk7Pz4= X29yaWdpbmFs c2NpZW5jZQ== YXRyYQ== Pyw/LA== IEFzYw== IGNvbnZpbmNpbmc= JGE= b3JnZW4= X0RhdGU= IFByb3ZpZGU= IGxvbmVseQ== KScK ZXhjaGFuZ2U= Oz8+Cg== LmZhc3Q= U2FtcGxlcw== TG9uZG9u J10pDQo= IElvbmlj IHBlc3Nv IEtuaWdodHM= IFJhZg== X2F0dHJz IHJlcGVhbA== Pk1haW4= IE9yZGVyZWQ= X05ldw== PSIiPjwv dXJscGF0dGVybnM= QVRJT05BTA== cGVlY2g= IElkYWhv IHByaW5jZXNz IEN1c3RvbWVycw== YXdheXM= YWRi IEJyeWFudA== bm9uY2U= IGFkdWw= IGBgKA== IGFmdGVybWF0aA== PWRpY3Q= dGV4dEJveA== IHNwZXJt IGNvdWdo SG9y 4oCZUw== LkNvbXBvbmVudFJlc291cmNlTWFuYWdlcg== IHJlZ3VsYXRvcg== IHBhcnRuZXJzaGlwcw== L3Byb2plY3Rz dHJ5cw== IExhc2Vy 4p+p IEZ1bms= IHVuY29uc2Npb3Vz IGNydXN0 IFRlYW1z IEJhbm5lcg== IEhvbmV5 bGVtcw== IG1heFdpZHRo UG9pbnRlckV4Y2VwdGlvbg== ZmFkZU91dA== LVN0 IHN0cmFuZ2Vycw== X0dP V3JpdGFibGU= X0luZm8= Lk5vbk51bGw= YW5ub3RhdGlvbnM= IEdE IGVuZG9yc2Vk CVRva2VuTmFtZQ== IERlcGVuZGluZw== WU5BTQ== IE1ldGVvcg== IEluY3JlYXNl Lk1hbnk= PT0o LlVVSUQ= X0tFUk5FTA== IHZpZMOp IHBx IFF0R3Vp IFZhcmlvdXM= IGpvaG4= X3BhdGNo IHRvdXRlcw== IEZhaWw= IHN1cnZpdmluZw== KCIkew== ICAgICAgIA0K IGltYWdlVXJs LndvcmRwcmVzcw== c291cmNlcw== CWdsVmVydGV4 4oCZYQ== IGVzY29s UkFSWQ== IFNuYWtl IHF1aW50 IGxhc3Rz IEhhcm1vbg== IGNvaWw= IGV4cGxvaXRhdGlvbg== bGVlbg== Jz4iOwo= IFNFUlZFUg== IEhFQURFUg== X3ZlbG9jaXR5 IEludm9rZQ== LnRpbWVzdGFtcHM= IHN1bGY= SVFVRQ== IGluaGFiaXRhbnRz cGhpbnM= YXp6bw== IG1vbm8= TGVnZW5k IG5vbmNl SUZF OyI7Cg== LWNyZWF0ZQ== IiIsCg== cGVybWl0 IEltbWlncmF0aW9u IHBhdGhuYW1l ZmZlY3RpdmU= 4pmA4pmA IGV4YW1z LWV2ZW50 IFRpbGw= W21pZA== RklY O2NvbG9y KE9yZGVy X3RyYWl0cw== IG9yZGVyQnk= IHN1bnQ= IE5pY2hvbGFz 2LI= IHN1bm55 aW5lcnM= IGFjY2Vzc2liaWxpdHk= IEhC LmNvbXA= CW9w IG1pbm9yaXRpZXM= ZXRoZXVz IGNvbGxhYm9yYXRpdmU= cHJpdA== SElS IHdyYXBz CWRyYXc= Z29k IElY LmFwcHM= IE5N IGlycmVsZXZhbnQ= IFRpZ2Vycw== IGRpYWc= R1Y= IEFjY2Vzc29yaWVz a29udA== IHNpbXBsaWZ5 IEZhdm9yaXRl X3Rvb2xz KFtdKTsK IHRvd2Vycw== QmVz IGh1bnRlcg== IHNhbG9u KGJ1ZmY= CWRlYnVn IG1hbHdhcmU= TW92aW5n LW9wdGlvbnM= KSsn IExPVkU= X1NPQ0tFVA== X2Zpbg== IERlbGF3YXJl IHNoZXJpZmY= LWludmFsaWQ= IEZVTEw= INC/0L7QtA== ZWxhcw== InN0cmluZ3M= IFJlcHJlc2VudGF0aXZlcw== c3VyZmFjZQ== cmVzb2x2ZWQ= aHRkb2Nz KSk6DQo= IHByZXNzdXJlcw== IG5vcm1z IHBsYQ== IHN1cm5hbWU= IHBvc3RhbA== IERlcGFydA== IHNsYXVnaHRlcg== b3JpZGE= IGhlYmJlbg== IGRlc2Fy Y29tcGFjdA== X0xBTkc= 5ZCI b3BvbHk= X3JhZA== IFNURE1FVEhPRA== TGF6eQ== ICAgCQ== Li4uLA== KHdlYg== IFBvbnQ= IGV0d2Fz IHVwd2FyZA== X2hhdA== IF0sCgo= IGJhc2VVcmw= IHdvcnJ5aW5n LWFkZG9u KGdldENsYXNz U1BJ IGNhcHR1cmluZw== KX0sCg== RWZmZWN0cw== IGNvbXBldGVudA== IGZvdWw= IHN1YnNjcmliaW5n IE9CSkVDVA== SVhFTA== YnVja3M= KGVkZ2U= KHBhc3M= IFBldGVyc29u IGJvb2Jz IERlbGF5 X3NxdWFyZQ== ZWxpbQ== b3RlcnM= X1BD JUU= b25jbGljaw== IFNWRw== IHRvcHBlZA== IGZpc3Q= c21hcnQ= IFJhbHBo KG93bmVy am91cnM= IGJyb256ZQ== IEFyZ3VtZW50RXhjZXB0aW9u KG9yaWdpbmFs X1NDQUxF X2Nw IHJlY29tbWVuZHM= LnNldFN0eWxl U3VyZQ== TEFORA== IHJlcGVhdGluZw== TWF0dA== LlZpc2liaWxpdHk= IGVudGVycHJpc2Vz LlNldHVw KHNjZW5l IFJlYWN0aXZl dXJnZQ== Ync= LlB1dA== cGVyc2lzdA== LmNvb2tpZQ== IEF1ZGk= YHM= c3VwcGxpZXI= KEZvcm0= wqE= X3Nv jIA= IExlZ2lvbg== dHRl TmQ= TG9zcw== KGF0dHJz LnNjYXR0ZXI= IGdyb29t IGdsaW1wc2U= IG5haWxz IGN1bXVsYXRpdmU= IGZhemVy X3NlcnZpY2Vz Lk51bQ== aWJpbGl0 X3Jlc29sdXRpb24= IFR4 dW1pbml1bQ== b3Bh LnNjaGVkdWxl c210cA== 4LiV dXJyeQ== w7xr Z29vZw== X3NpZ25hdHVyZQ== LmludG8= IFN0ZXBz IGhvbWVvd25lcnM= IE5TVVJM IFBBQw== ICAgICAgICAgICAgCgo= PicpCg== ZW5o IGluY2Fw JE1FU1M= IG1vaW5z IEZp IG9mZnNlYXNvbg== cHJlc3Npb25z Pi48Lw== IE1hcmtlcg== IG9uQ2xvc2U= TEVWRUw= IGludGVyZmVyZQ== IENvbGlu IFJlc2lzdGFuY2U= RGlzY291bnQ= IFdlYkVsZW1lbnQ= IGJhdGhyb29tcw== bGVnYWN5 IENhcHR1cmU= IGFyaXNpbmc= ICIpOwoK 0YjQuNCx IEluZmluaXR5 QWR2ZXJ0aXNlbWVudHM= IENvbWluZw== IFBST0pFQ1Q= X1BST1RPQ09M IHVzZURpc3BhdGNo LmNoYW5uZWxz IENpdGl6ZW5z ZW50cmU= X21w LkNvbnN0YW50cw== IFNlcmlhbGl6ZQ== X0lOQw== KGx1YQ== IGNsYXNo X3dpdGhvdXQ= LmtleVNldA== IHJlY2VpdmVycw== 5pa55rOV KG1lbQ== IEhvcml6b250YWw= IGNvY2t0YWls IGNob29zZXM= LklubmVy IHJlbGllZA== b3VudGVy ICJe IHRlbmFudHM= ImA= X1BN ZXJzZWQ= IH19Ij48Lw== IHByb3ZpbmNlcw== X1JBVw== XEFwcA== IHByb3N0aXR1ZXI= X2dhaW4= LnRlbmNlbnQ= ZmZlY3Rz KHBr c2t1 IHVzYWJsZQ== RVJWRUQ= IGFudGVubmE= aGVh cGxpc3Q= X1BMVUdJTg== 0YHQuw== Lmxvb2t1cA== 4buB IGVubGFyZw== IHBpc3M= SGFt aW1hcA== IGludmFsaWRhdGU= IHNpbGs= PSIjIj4K IEdyYXNz IEdvYWw= X3BkZg== SGFuZGxlcnM= IHN0YWNrcw== LmdldEZ1bGxZZWFy PVtdOwo= 6L2m LFY= KHNwbGl0 0YPQvdC6 IGJha2VjYQ== IH4vLg== cGV6 dGFpbHM= IEdsZW4= IHNldEltYWdl IENvbWlj QkxPQ0s= CVRoaXM= b2FkZXI= IGNhcGl0YWxpc3Q= X1NURVA= KEJvb2xlYW4= IENvcnJlY3Q= cmluYQ== IGNvbmNhdGVu 5a6e KCk6Cgo= IHVuYW5pbQ== bGxp YWxhcnM= LW5l IGRpdm9y IEtpY2tzdGFydGVy XS5f PG51bWJlcg== L21lbnU= R1JBUEg= dmlzaXRvcg== IGltcHJvcGVy X05FWFQ= IGJpc2E= YmFja2dyb3VuZENvbG9y L2lucHV0 IG1vaQ== R29hbA== bGlxdQ== IG1pc2NvbmR1Y3Q= IGNvbXByaXNlcw== YXducw== IFBpZQ== cmFpcw== cm9sZXVt IGN1cnNl eXU= X3BvbGw= LmN1cnJlbnRVc2Vy RVNI XSlb IHN0b3J5dA== KT87Cg== Kj0= IEJ1cmc= L2xheW91dA== X2JhY2tlbmQ= Oz8+PC8= IFdoYXRzQXBw IE1vdW50YWlucw== dmlzaW9ucw== Zmx1ZW5jZQ== LmNyZWF0ZUNvbXBvbmVudA== IFBzeQ== Zm9yZ2V0 c3J2 X0NPTVBPTkVOVA== IE5leHVz ICl7 ZW5kaQ== SU1VTQ== IEdG 57uE 4oCUdGhhdA== Yms= TW96aWxsYQ== IGRlZmVuZGVycw== LXNldHRpbmdz aW1taW5n IE9QVA== IENX IHRoYXRz IE9wZW5pbmc= UmVsZWFzZWQ= bnBt IGhycw== IGdyb3VwZWQ= LyIuJA== IEhpc3RvcmljYWw= KCQiew== b3ZpYw== KHNpZ24= IFBob3RvZ3JhcGh5 IHNpZ251cA== X0FSQ0g= LnRlc3RuZw== L2FuZ3VsYXI= UmVzdENvbnRyb2xsZXI= c2hpdA== dWxsZQ== LnBhdXNl KFtdLA== KHF1ZXN0aW9u aWxvZ3k= IEV1Zw== LWxvY2Fs IGt2aW4= IHJlc2VydmF0aW9ucw== b2JpYQ== IHN1YnNpZGlhcnk= IGFjY3VtdWxhdGVk IFFWYXJpYW50 IEJKUA== IE5vcm1hbg== IEludGVncmF0aW9u LlZhcmlhYmxl KFJlc291cmNl KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg== RXhwb3Nl ICd9 LkNPTE9S INGH0LjRgQ== QWpheA== IHRocnU= TW92aWVz IHByb3Bvc2l0aW9u L3RoZW1l TW9kZWxQcm9wZXJ0eQ== IEF3cw== IEFuZHJlYQ== IE1lcmdl LmZpbmlzaA== KHJlcXVpcmVk IFByZWw= ZWxlZA== 5pON5L2c LlRSQQ== TUFT IHJlYWxpc2Vk cm9pZHM= CWZu cmg= LiI8Lw== dmlkaWE= IGRlcHVpcw== IEJW TG4= IGx1c3Q= QXNj CQkJCQkJCSA= aXNsZQ== LWNhcmU= X0lOVg== IERyZXc= IHdoYXRz IENhcGFjaXR5 UGFybQ== X21vbml0b3I= LnN0dWRlbnQ= IFJOQQ== LmVuZHN3aXRo Ymlo IE1MQg== L3Byb2plY3Q= IHJlc3Rpbmc= c2VwYXJhdG9y eWQ= ZXJ0aWE= IG1vbml0b3JlZA== Ij4qPC8= LkZD IE5FV1M= IENhbGxz IGFkZXF1 Q2hlY2tpbmc= ZXN0aW1hdGU= IHJlY2FsbHM= X2ZyZXF1ZW5jeQ== IHVzZVJlZg== IEdyb3Zl IFhpYQ== IMOt ZXNzZW5nZXI= LWNvc3Q= LmZj IEt1bWFy LkZvY3Vz ZWxsYW5lb3Vz LkFsZXJ0 ZWF4 IG9yY2g= LnBt IGxhbmRsb3Jk KHBvcA== X2FjdHVhbA== IExC R3JhbmQ= LnJlbmRlcmVy IGxvYg== Y3VzdG9tZXJz IGNhcHR1cmVz V0lORE9X IGRvY2g= IGFwb2xvZ3k= IEphbWE= QFs= LnRha2U= bm9vcA== IGx1bQ== IGRpZmZlcmVudGlhbA== IGVmZmljYWN5 CUlO X0JPWA== X3Nk X3J0 Y29kZXI= b3VuY2VtZW50 aGFzQ2xhc3M= IHJpc2t5 IEVzdGFkbw== LURE IENhcnNvbg== U3VmZml4 IHRvZGE= IFRyYWNrZXI= IERlbGVnYXRl YCxg IFBhcmtpbmc= IG5lcg== YXpv IEZpbGVJbnB1dFN0cmVhbQ== IHJlY291bnQ= cWk= Y2tlbg== IHNvY2lhbGlzdA== IEludm9pY2U= INC/0YDQvg== JSIs ZW5uZW4= IHZpdm8= IG9yZ2FuaXphdGlvbmFs IHVuY29tbW9u dXRhcg== IGh1bGw= VHVlc2RheQ== IGFzc2Vzc21lbnRz KGFwcGxpY2F0aW9u IHByZW1pc2U= U3RhcnRUaW1l IGRr IGludGVyZmVy IFF1ZWVuc2xhbmQ= IGNyZWRlbnRpYWw= IGxlaXN1cmU= WVo= IENtZA== QlVT dXNhbg== CXZlYw== aW9sb2dpY2Fs IExvdHM= IGVubGlnaHQ= IGZyZXNobWFu IENPTU1BTkQ= IEFjdGlvbkxpc3RlbmVy dXRt YXJpdXM= VHdpZw== IHN3ZXB0 LXRvb2w= xJA= Y2hhcHRlcg== LWdyYWRl IGN1cmlvc2l0eQ== IHN1c3RhaW5hYmlsaXR5 IE1pbmVjcmFmdA== d2VuZA== SWZFeGlzdHM= IEN1bHR1cmFs IFNhY3JhbWVudG8= TGF5ZXJz U3Vic2NyaWJlcg== LkdyYXBo IGxt ZXN0eQ== YWR2ZXJ0 JHA= IEhvY2tleQ== IERFVA== c2V0VGl0bGU= eWFuZw== IGJhYmU= ZWxzaXVz VHJhdmVs IG1lc21v KG1hcFN0YXRlVG9Qcm9wcw== X1NFTA== LXBvcA== IGVtaXNzaW9u 4oCZLgoK LnN3aXRjaA== b3Rpb25z LnBob3Rv TFY= YW1vZGVs IHdvcmR0 SUdHRVI= IFRPREFZ T0xT X0lERU5U IGNvbW1lbnRpbmc= RGF0b3M= IGhpbGFyaW91cw== KGFueQ== IGRhbXA= LWNvbnRyb2xsZWQ= ICI8Pw== X2JsYWNr TmV0QmFy LnNldFNlbGVjdGVk Q3Nz IHF1YXJ0 IG93bmluZw== IEZJRUxE LnJlbHU= IGxpcw== 7Jqw LlJFTEFURUQ= IGxvaw== IEZsaXA= IHByZXN0aWdpb3Vz IGRn IElucHV0U3RyZWFtUmVhZGVy IHVzdQ== IGdpcg== IGFuYQ== X3B5 dW5uZWw= CXN5c3RlbQ== IGNvYXRpbmc= IEdlbnJl ZXJybw== IENMSUVOVA== IHN0cmV0Y2hlZA== Lkhhc1ZhbHVl Ozs7Ozs7Ozs= 54mI IGZpbmFscw== LmdldENoaWxkcmVu IC0tfX0K IENvd2JveXM= IEVkaW5idXJnaA== IFBsYXph YWJlbg== QXJ0aXN0 VVJB IEh1Z2hlcw== b2JiaWVz X25vaXNl Lk9iamVjdHM= RXhwcmVzc2lvbnM= IGFudGhyb3A= JykpDQo= KS4i Y3JpcHRpdmU= IHNhbG1vbg== IHdhc3Q= cmhv LnRpY2s= IGV4cGxvcmVz IEFsZ29yaXRobQ== Q2hhckFycmF5 4LiE X1BBQ0tFVA== SkU= Il1dOwo= Lm5vdGU= QmFja2luZw== IEhvbGRlcg== cmVpY2g= IFppb24= L2dy ICAgICAgICAgICAgICAgICAgIAo= TW90aW9u IFRyaWJ1bmU= IGNyaXRpY2FsbHk= IENSTQ== IGJsb3dpbmc= IGNvbW1pc3Npb25lcg== Sm9l IFRlbGV2aXNpb24= CXByZQ== IFRSQU4= IFZpa2luZ3M= IEJFVA== d291bGQ= LkNhcHRpb24= IGJhY29u aG1h bWVyZ2Vk IHN1YnNjcmlwdGlvbnM= b2NjdXBpZWQ= TGl2ZURhdGE= IGFsbG93YW5jZQ== cmlnZXNpbWFs ZGRk LmxvZ291dA== IFRhbmc= IHdhcm10aA== TW9kZWxJbmRleA== IFByYQ== IHNjZW50 IGhhY2tlcnM= IGlsbHVzdHJhdGU= SWNo IGRpYXM= Q0FTRQ== IFNjaQ== JHVybA== IE1PRFVMRQ== dXNob3J0 bGllcnM= IERldmljZXM= bWluc3Rlcg== dW5hbWU= IHVucg== RXhhbXBsZXM= IHJpc2Vu LmFp Y2hyb20= X3dvcmtlcg== IGFsaWFzZXM= TW91c2VFdmVudA== IHNldHRlcg== IFB1cnBsZQ== Sm9pbkNvbHVtbg== PWU= VEhPT0s= IFRvdw== IENydXNoaW5n IEplZGk= IEdyaWZmaW4= IGtvcw== X0ZT aW5nZXM= c29sZXM= KG5hbWVz IEJpZA== LXBvd2VyZWQ= TXVsdA== YW1pbGlhcg== LmNsZWFuZWQ= IFppbW1lcg== CWNsZWFy IHVuc3VwcG9ydGVk Q2FsbGFibGU= IHJlcHM= YWx0ZXJu X1JFUE9SVA== LmdldENvbHVtbkluZGV4 X1NUT1JF IHN1Y2h0 c3VidGl0bGU= IHBlcmQ= q5g= Lk5PVA== fT48Lw== OmQ= bWRp YmluZFZhbHVl IERlY2lzaW9u UmV0dXJuVmFsdWU= LGluZGV4 eGZj IHNlcnVt Z2V0RmllbGQ= Q29ubmVjdGlvblN0cmluZw== LW9iamVjdA== LnJlY3Y= IHVuZGVyZ3JhZHVhdGU= LkluZnJhc3RydWN0dXJl IEthYg== IGFkdmlzb3J5 LXRyZWU= IG11ZQ== aW5mb3Jt LmVtYmVk IGVycm9yQ29kZQ== bWljcm8= IHNwYXJrZWQ= IGltYWdlcnk= Y29uYw== X21pc3Npbmc= IHN1cnBsdXM= S1M= CVJUSE9PSw== VGVsbA== cml1bQ== IFJhZGl1cw== cmlrYQ== bG9zaW9u IEhlcm4= R2FtbWE= IEZlZQ== IE5hbWVk IENhbnlvbg== IEpTT05BcnJheQ== IHp3ZWk= IFNTSA== IHNlcnZhbnQ= Y29hbA== IGRlbnlpbmc= IHNwbGl0cw== SW5jb3JyZWN0 IHRveA== IEFuYWx5c3Q= IGFjY3JlZA== dWJsZQ== IHd0 IFRyaWFs LmV4dGVuc2lvbg== IENhcmVlcg== IHNlY3VyaW5n IExpbA== IHByb2plY3Rpb25z IHllYXN0 TWFkZQ== IGZvdW5kYXRpb25z YWNpZmlj LnZvbHVtZQ== IG1pcnJvcnM= IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyM= IHZpb2xhdGU= YXJzZXJz IHNvY2lv IHRraW50ZXI= IExJTks= LmdldFNpemU= IFdob2xl KXZpZXdEaWRMb2Fk CWRvbmU= dWRlYXU= XCI+PC8= QW5kcmV3 ZXJi IGbDtg== LmNsdXN0ZXI= IGRpc2NvdXJzZQ== X0RFRklO IHB1ZWRlbg== IExPVw== LmF2 IHByZWNh IHF1bw== IHZlbG9j LCcn IHh5eg== CXBhZGRpbmc= IHRvbWF0b2Vz IEJlbnQ= X2N1cnI= TlNEYXRl IGdldEN1cnJlbnQ= IFtg V2VkbmVzZGF5 LkJhcg== IFZvdXM= aW56 IFF1aW5u ZXhjZWw= ZG9z IG91dGRhdGVk T1VUSA== IE1ha2Vy ZXBlbmRlbmN5 IGR1bGw= IFdpbm4= b2dl Y2xhdmU= IG5vdmE= IGF2YWw= Q2FwdA== IFNwb3RpZnk= IGp1bA== KXRhYmxlVmlldw== IGZpbGVuYW1lcw== IGVza29ydA== 5ZGo IHNrZXc= dGVyaW9y IGZpbmFuYw== IHRhYmxh IFVJQg== ICgpOg== IERvY2tlcg== cGVyY2VudGFnZQ== TWVldA== aWNoaQ== IGludGVyaW0= ICc9Jw== LkpTT05PYmplY3Q= KGZpZA== IGRvd250 IHRyYW5zaWVudA== IFN0ZXBo IGlnbm9yYW5jZQ== IENvZGVz PScnLA== IElDRQ== IHRyYW5xdQ== IEV4dGVuZGVk IG11bmQ= IEhPTUU= IGtpbG9tZXRlcnM= IGltYWdlbg== b3V4 KHN6 WW91bmc= dWZmZWQ= IFdha2U= IGFpZGU= UFJPQw== IFJhdA== IExpdGg= YmFydA== IEFycmFuZ2U= cHJvbXB0 0KM= KGN0 IEludGVydmFs ZGVwdA== RGFuaWVs IGZpbGxz LnRlbnNvcg== KHRyaW0= IGplYWxvdXM= RmVi XENvbW1vbg== IGFtZW5kbWVudHM= X29wZXJhdG9y X2N1c3RvbWl6ZQ== IF1d IGJu IGRpc2FwcG9pbnRtZW50 IG1pbGxlbm4= LndoZW4= IG9iZXk= IG9mZmVuZGVycw== V2lsZA== IGNlbGxGb3I= IGFwcGFyYXR1cw== LmFmdGVy IEVQUw== IGFkb3JhYmxl b3BlcmFuZA== KGxpc3RlbmVy dmVhbA== ICko IGNhcmRpb3Zhc2N1bGFy dXBsaWNhdGVz cmlzdG9s IHJlZnVzZXM= KFFXaWRnZXQ= IGVsZW1lbnRv TnVtYmVyT2Y= LmRlbGF5 Lmdyb3Vwcw== Ij4nKw== 5Z2A YWNlbmN5 KFVSTA== X2hhbGY= PWw= IGxpc3RWaWV3 KHNlY3Rpb24= LnRvQXJyYXk= Ky8= IFJvZHJpZ3Vleg== aXN0cmVhbQ== IGVsaWdpYmlsaXR5 Ojot Lm5ld0luc3RhbmNl UEI= IEFzc2V0cw== IENvbXBvc2l0ZQ== IExhYnM= IEhhbWFz KyspOwo= IGJsaw== IE5lbw== THVj QGxvZ2lu IHVuYXdhcmU= Lm1ldA== X1JFTEVBU0U= KFNU QU1JTA== cmlrZQ== ICgpewo= KHNwcmludGY= IEFjY291bnRz IFZJRVc= IEFq 44Kw IHdoaXNr IGlkaQ== IHJvZGU= IGlobg== IEVsZW1lbnRhcnk= UXR5 IGludHJpZ3Vpbmc= IOWk Sm9icw== CW9mZnNldA== IEFobWVk IFRhbGliYW4= IOiOt+WPlg== IGluamVjdGVk LkF1dGhlbnRpY2F0aW9u X2xpbmVhcg== LkRlY2ltYWw= IGFwcGxlcw== IHNoYXJlaG9sZGVycw== IGJha2Vk LmRpZmY= IEVkZGll b2tlcnM= IGNvbmZyb250ZWQ= dm9pY2Vz IHR1cw== IFNwaW4= Tk9ERQ== X1Vu Q1RY L2dvb2dsZQ== VGVtcGVyYXR1cmU= ICcnKS4= IG1hZ25pZmljZW50 IHN0YXJ0SW5kZXg= c2VtYmxlcw== QW55b25l ems= ZWhlbg== IERhbWU= LnN0cmljdA== IHJlcGxhY2Vz IGxpbmViYWNr IHB1c2hlcw== IGNoZWVr IFNoaQ== X0JZVEVT UkVB 4bqjbg== X0NPTk5FQ1RJT04= R2F0ZXdheQ== IFRyYXZpcw== IEFY IEJhc2ljYWxseQ== IFVwZ3JhZGU= 4Ko= dGhlbWVz ZXJtbw== a29y RmVtYWxl X2F0dGFjaA== IOyCrOyaqQ== IHBveg== PT09PT09PT09PT09PT0K KHN5bWJvbA== IFNlY3Rvcg== X18pCgo= X3BhZGRpbmc= 77yaIg== IGZhYnM= IHJhbmdlZA== c2V0TmFtZQ== IHBlcnJvcg== 4pc= IEZpbGVSZWFkZXI= IGZ1bGZpbGxlZA== X0N1cnJlbnQ= IGRvbWluYXRl IHNtdWdn UG9zdE1hcHBpbmc= X2ZvcmNl IGJsb2M= IEdpYW50 KHZpZGVv IENV U3lzdGVtU2VydmljZQ== IGVsZg== IGtvbnRha3Q= 66o= a2Vlcw== Z3Rr IHBhcmFtSW50 IG1hcmt1cA== dWFsZXM= IGFjY291bnRlZA== IGdhbmdiYW5n UllQVA== IFdyb25n IGNyZWRpdGVk IE1FU1NBR0U= IGZsYXdz IGJidw== IG1ldGFib2xpYw== IE9FTQ== L2V2ZW50 KENvbGxlY3RvcnM= bW9udG9u YXBwZWFy IG9wdGVk IGNoZWF0 IGRhdg== IFByb2NlZWQ= IOq4 YW5rZWQ= 0LjQtw== YW5zaw== IEhhbmc= IENsZXI= IGRpc2d1 IGNtYXA= LmNsanM= IGF1bWVudA== bGV6 IEpvaW5lZA== X3JlY2VpdmVk IGFlcmlhbA== b3RlbA== IGdyZWV0 InM= IEdlbmVzaXM= IENhbGlm cGFuaW9u IHRhaWxvcmVk bWFwcGluZw== YW5kRXhwZWN0 LnRyYWNr YXRvbXk= IE93 dWxsYWg= Llllcw== IFNpbXBsZU5hbWU= ZGJo J2Vu IG5vbnNlbnNl IHBoaWxvc29waGljYWw= KGdldENvbnRleHQ= IGlzc28= IEFDRQ== c3RhcnREYXRl IGLEmWQ= IEFVVEhPUg== IEdsb2Jl IGluc2VjdHM= X0Fs dXNoaW5n 6K6w L0hvbWU= IExvY2FsRGF0ZQ== bmVlZGVk aGVzaXZl IGlsbHVzaW9u 5LqM IHRyYXQ= eG8= L2RldGFpbA== X01BVENI IGJyb2FkYmFuZA== IHdhbA== IElsbGVnYWxTdGF0ZUV4Y2VwdGlvbg== SVJFQ1RJT04= IG5vcnRoZWFzdA== ZXNpdW0= IENsaWVudGU= dWxhbmNl bnR5 IHRlY24= RGV2aWNlcw== IGdyYWlucw== IE9n IFNFTA== dWRpYW50 ICsrOwo= IGV4cGxhbmF0aW9ucw== b2Njbw== IGRpZXRz IGNvaG9ydA== KGNvbnRyb2xsZXI= Lkl0ZXJhdG9y LXJpY2g= cm9jZXNz R0Q= IGNhcmJvaHlkcg== IGZyaWVk IEVtcGxveW1lbnQ= 7J6l IExlb25hcmQ= XyR7 cXVhcmVz IGNvbXBhbmlvbnM= IHBhcmlz IHN0aW11bGF0aW9u IFpvbw== IHJlbGV2YW5jZQ== IENvbG91cg== IHNwZWFy b3Rpb25hbA== IExpdGU= IEtvc3Rlbg== IMOz X2F0dGFjaG1lbnQ= b3JwaGlj IGRhbWl0 IGRsZw== IHRocml2ZQ== Q0hBTkdF IEFwcGFyZW50bHk= IGF0dWFs IHJvb3RlZA== KGltYWdlcw== YXdp YXJpYXQ= IGNoZXJyeQ== U1RBVElD bW50 IFVzZXJJZA== aWxsZXQ= IEhpc3Bhbmlj IG5haw== IGNlbnRybw== IGRpbXM= X2luaXRpYWxpemU= xLFr IENlbnRlcnM= UkVO IGV2b2x1dGlvbmFyeQ== IFRvcGljcw== X2RhbWFnZQ== ZW1lcg== IHJ1bmQ= IHB1bmlzaGVk IGN1Ymlj ZmFpcg== W107Cgo= IGluc3RhbnRpYXRl IG92ZXJzZWU= LWRlbGV0ZQ== dW50ZWVy c3RhcnRUaW1l IFBpcGVsaW5l X0dBTUU= IENpcg== CU51bGw= LkZvcm1hdHRpbmc= dWN1bWJlcg== IFJpZGU= IHpvbw== IGNoZWNrZXI= 5ZCM PUM= IGdyaXQ= Iik7Ly8= X3h5 IERlY2xhcmF0aW9u IGNhbGxhYmxl Rm9v IExpc3RJdGVt IGluYWNjdXI= bWxpbg== CURhdGE= IGV2b2x2aW5n YXdhbg== IGNhZmU= Zm9saw== X0lEWA== IEFueXRoaW5n IFBhbGVzdGluZQ== IEdyaWRWaWV3 IGNvbG9ueQ== IEdlcm1hbnM= KCs= LnBpZA== LmpzeA== IFN1cGVyaW9y Q2hyaXN0aWFu IExlY3Q= CUdhbWU= IGluc3RydW1lbnRhbA== QW5pbWF0aW9ucw== 0LTQsNC7 IE1vc2Vz CQkNCgkJDQo= enM= a3Rl 5Lia X0RJU1Q= Yml0bWFw ZEI= IHBlcnNpc3RlbmNl 0YDQvtGB JGw= QnJvbg== IHt8 X2NoYXJ0 IENvbnN1bQ== IGhlbXA= ICIpKQo= IGF0dGFja2Vycw== IGtub3dsZWRnZWFibGU= IGNldA== IHZpcnVzZXM= J0k= IHBpdGNoZXI= IHN3ZWVwaW5n PWxpc3Q= YXB0b3Bz LmRlcHRo IGluc3RydWN0ZWQ= IFJ1cw== YmVuaGF2bg== INC40L0= U3BvcnRz IG9uc2V0 5p2D LlJFRA== X3Np IFBTVA== Lm9uQ2hhbmdl PnRhZw== IFJvaA== X2NoYXJhY3Rlcg== IExhd3M= IEJhY2hlbG9y X3N3YXA= LnJlYWN0aXZleA== IHJld2FyZGluZw== TWVkaXVt LVs= IFJlY2VudGx5 Sm9pbnQ= cGFydGl0aW9u IE1pbnV0ZXM= IGluZG8= IGFic29yYmVk IEdO X0lORA== IHNhYmVy U3Bhd24= b3V0cHV0cw== IEplZmZyZXk= IG1lZGlldmFs aGVk R3VpZGU= IHBzeWNobw== IGdsYW0= RWxpbQ== w6RkY2hlbg== X3BsYWlu IFNhdQ== LWZvdXI= IGFuYWx5emluZw== UVVFUlk= IHRvbWF0bw== X2J1dHRvbnM= VkVO LnNldFN0YXR1cw== LlVybA== KwoK IGNvbXBsYWluaW5n ZGVncmVl Y29uZmlybWVk IHN1YnQ= cGFyc2Vk IHRvcnF1ZQ== IHRyb3VibGVk IFRBUkdFVA== IHRyYWRlbWFya3M= IENvb3JkaW5hdGU= IFZpdg== IC8vfQoK IGFwcsOocw== LmdldFBvc2l0aW9u KEtleUNvZGU= IFNpbHZh IG1ldGVvcg== IGVuZG9yc2VtZW50 T3ZlcnZpZXc= IFBvc3M= LkluamVjdA== IGV2ZW5seQ== IHZpc3VhbGl6YXRpb24= IHdjaGFy IEhETUk= IGZ1bmN0 aWNrbmFtZQ== JywnJywn IGZvcndhcmRz TWFuYWdlZE9iamVjdA== ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA= CXNlcnZlcg== IE91dGxvb2s= IENocm9uaWNsZQ== IGR1YmJlZA== IGRvaw== IFdlYXI= LkFM cGFyZW4= LkludGVyZmFjZQ== SW50ZXJmYWNlcw== LmNvZA== IGRpYg== Lkdsb2JhbGl6YXRpb24= IEFjYWRlbWlj IGFzc21z QXV0b20= IGx3 IE5X ICYmDQo= IHByb2JsZW1h IE1hbnVmYWN0dXJpbmc= bGltaXRz LW1vYmlsZQ== IGZpbG1l L21hcA== IGRvaXQ= IEluaw== IHN1ZWQ= LmFycg== IHVuZGVybWlu IFByb2M= Y3JvbGxWaWV3 X18k IHNpZGV3YWxr KHRoYXQ= 4Li3 W3E= Z3JhbW1hcg== IHTDqw== cXVpdG8= IHNwaXJhbA== ZXh0ZW5kZWQ= IGZvY2Fs IGRpZ2dpbmc= cGFz IFRhbGw= LnByb3h5 aXR1cmVz VFJBQ1Q= IFJlYWxt IGZlZGVy IG9yaWVudGVk IEFsdGVybmF0aXZl IG93ZQ== IHNvdXJjZWQ= aW5rZXI= LmRldA== U2Vw IFF1aQ== IFBhbG1lcg== KF8s c2FtcGxlcw== b3llcg== dWxsYW4= cXVleg== RWRnZXM= IHNob3V0 IEFjaGll IGhhYXI= X0NvbnN0cnVjdA== IHByZW1hdHVyZQ== IHJldmVydA== JykuCg== IHNjaG4= ZmlsdGVyZWQ= bnVsbHB0cg== U2F2ZWQ= aXRlY3R1cmU= Q0xB IHZs c3RlbGw= CU1l IExpcA== bmF0aW9uYWw= IHdob2xseQ== IHNwcmluZ3M= LlRpbWVy CXNyYw== ZWxzZW4= 5YW2 IGNvbW11bmljYXRpbmc= IFF1aXo= IHRlbmc= IGdleg== IE91dHNpZGU= LlNpZ24= KGNz IGRpc3B1dGVz IFdlaXNz YW5uZXM= Pk5v IEJhY2g= LnJlbW92ZUFsbA== cmVmZXI= L2Rhc2hib2FyZA== IEFqYXg= SW5kZXhDaGFuZ2Vk IFdlYWs= JyIK IHNpZ2h0cw== YWNjZXNzVG9rZW4= IEpvaQ== KGRvbWFpbg== CWN2 IGNvbnRpbnVhdGlvbg== IHBsdW0= YWRpcg== LnNldE1lc3NhZ2U= IO+8jA== IHN3YWxsb3c= IExhbXA= IHF3 IHV1 Q29pbg== dWJpYw== IERlYWxz cmFjZQ== IGRpY3RhdG9y IG1lbWU= dHVybmVk IEp1bGll LmdyaWRDb2x1bW4= IHB1cHB5 IHBhbQ== ICl7DQo= IGludml0aW5n IGZyZW5jaA== dmlt IHdyYXBwaW5n ICMtfQo= KFst RWFybHk= IHNoaW55 LmZhY2Vz IHJlYmVsbA== YWJjZGVm w6RsdA== IGVzdGltYXRpb24= cGh5cw== bG9zdXJlcw== X1JFTA== IGV4Y2x1c2lvbg== IFNreXBl d2Vpc2U= LXN0b3A= bm90aGluZw== IEVnZw== aXNvcnM= UmljaGFyZA== IGNvdW5zZWxpbmc= IGNvbW1lbQ== IFFNZXNzYWdlQm94 IFN5bmQ= IEZyb3N0 IENvbXBldGl0aW9u IEF3YWtl IHRlZA== aWNpb25lcw== IERldkNvbXBvbmVudHM= VkVSVElTRU1FTlQ= b3R0aQ== LnJ1bm5lcg== IHVuaXF1ZWx5 LmZsYWc= CXJz X2dlbmVyaWM= IGBgYAo= QUNISU5F IG1laW4= KEFwcGxpY2F0aW9u KGJy IHJhdGlvcw== Oiw= IFhDVGVzdA== dXN0YWluYWJsZQ== LXd3dw== aXRsZXM= X1RFTVA= IHN5c3Q= dW1lcmljVXBEb3du CWFzc2VydFRydWU= IHdm LnBlZWs= IEJ1bGc= IHRlcnJpZnlpbmc= Lk1PREU= IEdX w6Fy IGZpYw== IGNvbW1pdG1lbnRz LXRlY2g= IExpcXVpZA== b3Bleg== emhlaW1lcg== YcOxYQ== LW1lZGlh KGFuaW1hdGVk X2dvYWw= IGd1bQ== eXN0b25l LlNFVA== IFdlbmQ= c2V0Q2VsbFZhbHVl IG1zZ3M= Y2FzaA== QUxMT0M= L2F3cw== IG1pY3Jvd2F2ZQ== LlBvaW50ZXI= CUNvbnNvbGU= X3NvcnRlZA== IEZpbGlw UHJvZA== IC8vITw= aW5ncm91cA== IGtz X1RSSQ== IHRlYXNwb29u IEFUVA== IHJlY292ZXJpbmc= IEdMT0JBTA== LlBhcg== IC8+Owo= IG1hcmJsZQ== dWxhdG9ycw== IEN5Y2xl IGhlcmJz X21ldHJpYw== KSE= X0NMT0NL X0J1dHRvbg== SGFycnk= 6L+b IHN0cmFpbnM= IEFwcEJhcg== IENoYW4= L3ZpZGVv IGJhbQ== LlByb2dyZXNz JGY= bGVtZW4= IGlycmVndWxhcg== IER1bmNhbg== IE1pbnQ= LXZpZGVv 4Ka+ w7N3bg== IEVNUFRZ IHN0YWNrZWQ= IEhB X2N1dA== IHdoZXJlaW4= IFdheXM= KGNvdW50ZXI= 6K+V Rm9ybUdyb3Vw IGJsZXc= Y291cnNlcw== IHByb2R1Y3Rvcw== cnlz IFJlc3Ry IHN0eWxpbmc= PnM= IHBpdg== IGl0ZXJ0b29scw== Z2V0UmVwb3NpdG9yeQ== IElr X2RldmljZXM= bGF5dWk= IGhhbGZ3YXk= IGZyYW7Dpw== IHR1bmluZw== T0E= X05vZGU= YXJkZQ== IGZpZXJjZQ== bGljdGVk Iw0K IGJyZWFrdGhyb3VnaA== IEVyaWs= IGJyaWRl IC4i Y3VsdXM= aW5zaWRl IEluZGlhbmFwb2xpcw== IEVF IHlvZw== dXJyZXQ= LmZz LmdyYWQ= X2NhcmRz X2FjY3VyYWN5 X2VwaQ== cXVlZGE= L29yZw== 6aqM IGNvbXB0ZQ== KSlb T3V0c2lkZQ== R3JlYXRlcg== IFJlbmRlcmVy LmFjdG9y QWNjb3VudHM= SWRsZQ== X2hvdXJz ZXJuZXI= Sm9pbmVk IG1lbmo= cmVxdWlyZXM= IE9QRVI= LnJlbW92ZUNoaWxk CXNw IGVzc2U= cmlmdA== eEZF IFNoYWtlc3BlYXJl X19fX19fX19fX19f IGJ1ZGdldHM= TW9kZWxTdGF0ZQ== ZmlsbGFibGU= LWNvbXBvbmVudA== b2Nvcw== IEJVVFRPTg== L2lv LG91dA== c21z VGhvbWFz IEFybWVk cmVzdW1l IHJvdGF0aW5n IFZhdWx0 IHNldXM= Ligq IGFtaW5v IFtdKTsKCg== IHByb3ZvYw== bm94 LkdldEVudW1lcmF0b3I= PT09PT09PQo= 5paZ X3Njcm9sbA== IGZpbG1lZA== IFNvY2k= Z2Fw Z3Jv Vm90ZQ== IkJ1dA== X1JD QW5pbWFs woA= aWJpbGU= IGF3YWtlbg== b3Jlc3Q= aW5qYQ== IEl2YW4= KENvbW1hbmQ= ICoqKioq zrc= IGt2aW5kZXI= L2hlbHBlcnM= X2Nhc2Vz dGc= 7IS4 UmVnaXN0ZXJlZA== CXBhc3M= X2RpZ2l0cw== IGNvbnRvdXI= IGluZmFudHM= IGp1c3RpZmljYXRpb24= IEZvcnR1bmF0ZWx5 Q29udHI= IG9uQ3JlYXRlVmlldw== X1NBTVBMRQ== IGFsbG93TnVsbA== IG51ZA== IGZldGNoZWQ= X2VxdQ== IFVuYWJsZQ== PVwiIg== PnsK IGNvbW1pdHRlZXM= aXN0ZW1h KyIu w61hbg== bWFudA== IHNvdXRoZWFzdA== 77yMCg== ZGlhbG9ncw== UFJPSkVDVA== Y2hhcmdlcg== LXBvcnQ= KHV1aWQ= LmV4cG9ydA== U2l4 IFJQ UHJlbQ== IGNvbnNjaWVuY2U= IG1hcmdpblJpZ2h0 X2Rpc3RyaWJ1dGlvbg== eWFtbA== cmVzaXppbmc= RG9jaw== IExvY2F0aW9ucw== R1k= U2VlZA== QlVGRkVS b3NzaXA= dWxsZW4= VGhpbmdz LXNlbGY= LnBvbGw= UExBWUVS IOWu R1JPVVA= IEF3YXk= IGdvc3BlbA== eGZk TWFyeQ== IFBvcnRhYmxl VFVSRQ== IHV0aWxpcw== IHNlaXQ= IHN0cmFuZA== IHRyYW5zYw== IChe IEFsZnJlZA== Lm1lbQ== LmNpcmNsZQ== IH4v Zm9yY2luZw== IHJpb3Q= cHJveA== VEhPTg== aXphY2nDs24= IE5J cm9zdA== IGRpc3Bybw== X2luc3RhbmNlcw== 77yM4oCc b2dyYXBoZXI= ZW5kYXM= IElzYWFj IFBpbmU= L2Rpcw== IGNvbG9yV2l0aA== aXRlcmF0ZQ== X3N0cmlkZQ== IHB1bnRv LkV2ZW50QXJncw== KGNlbnRlcg== IG5laWdoYm9yaW5n IFByaXNvbg== IE1lc3Nlbmdlcg== IGVwaWRlbWlj ZGFv X2NvbXBsZXg= IGdyYXZlbA== X0RJUA== w6ltZW50 IEFyaQ== X2JpdG1hcA== LnF1aXQ= KHZhbGlk IHBlbmQ= IHJlc3BpcmF0b3J5 IHJlYm91bmQ= RGVmYXVsdFZhbHVl 44Ot IGNvbW1pdHM= LnRlc3Rz X2Zy aXRldA== LnNm IHNwYWNlY3JhZnQ= Y3JpdGljYWw= IGRlcHJlc3NlZA== IEFueU9iamVjdA== IHVuYg== IGRpc2Nlcm4= KG15c3Fs TGF0aW4= IEJvZw== IFdpbGRsaWZl VG9GaWxl aW94aWQ= QFJlc3RDb250cm9sbGVy ICIkKA== IDw8Ig== IGRlZmVjdHM= IGRhdHVt aGlu IHJlYWxpemFy YW55YWh1 IFNpZw== QERhdGE= YWRhcHRpdmU= IENhdGhlcmluZQ== LmNy IENPT0tJRQ== IHBpY3R1cmVk IEZpZ2h0ZXI= UXVlcnlhYmxl IEFueXdheQ== IEdMRlc= X25hbWVzcGFjZQ== X2Z0 IF0p T3JnYW5pemF0aW9u IGNvbnN0aXR1dGVz IHF1YW5k KGNodW5r Ii8+DQo= IExha2Vz bWFpbndpbmRvdw== Q2FydGh5 c3Bpbg== KGNzdg== OnJlZA== LWNvbW1lcmNl 4Li5 IGRpc2NvdmVyaW5n IGVjbw== X2ZhYw== aW5jZXRvbg== IEdyZWVucw== and0 2LU= IEJyb25jb3M= IEdvb2Rz KEdUSw== IHJldHVyblZhbHVl IHNpZW1wcmU= IG5ldXRy d2VudA== IE5hdGFs IGVudGh1c2lhc3RpYw== 4buN Rk4= L2RhdGFiYXNl Q2F0YWxvZw== IGJydW4= IEthc2g= X1Bs aXNjcmlt LHdpZHRo IGlubWF0ZXM= QXNzaWdubWVudA== IEhhdmVu IHBsYXlncm91bmQ= ZXhhbQ== QENvbnRyb2xsZXI= dWxpYXI= LmdldFBhcmVudA== ICI7Cgo= OnNpemU= aXNzb3Jz IGZpcw== IGFsYw== ZW5zYXRpb24= IE5peG9u IG1pZ2h0eQ== LXN0cg== X3NwZWNpYWw= X0FEQw== IFR3aWc= dW1ibGluZw== LWFkZHJlc3M= IGhlcm9pbg== WVRF ICAgICAgICAgICAgICAgICAK RnJpZW5k IGF2ZQ== IFBORw== IEt1cmRpc2g= RGF0YVNldENoYW5nZWQ= IGJsYWRlcw== YnJhbA== U3RlYW0= IHNpZ3U= SVJUVUFM YWNvcw== VURQ KGRhdGFiYXNl aGVj IFN0cmluZ3M= X3NjYWxhcg== CWRlc2M= IFRMUw== OyIK IENvcmJ5bg== U2ltcGxlTmFtZQ== dWVsbA== IEVudHJl ZWxsaXRlcw== LXBsYWNl IGZyYW5rbHk= IEVyZg== Q0VM IHBhw61z IGhlZGdl IGxhdGVudA== IElSUQ== IEhlcmFsZA== IFByZWM= 67O0 LlRFWFQ= U2FsYXJ5 IGF1dHVtbg== IHRyYXZhaWw= LlN1bQ== IGNhcmVk TW9y IGludHVpdGl2ZQ== IGpvdXJuYWxz X0lU IFRyb3U= 5Lyg SGFzQ29sdW1uTmFtZQ== Q29tcG9zaXRl IHNwaWNl X2Rpc2s= X0NPREVT IEludHJvZHVjZWQ= aW9uYQ== IG51ZXN0cmE= b2N0 ICAgIAogICAgCiAgICAK KHBhcmFtZXRlcg== IHN0dWRpb3M= IHByb2plY3RJZA== IGJkc20= LlNxbENsaWVudA== aW1pemVy IENBUkQ= K3Q= YWFu LnNvbA== X0FkanVzdA== IHJpZ2h0ZW91cw== IExvZ2dpbmc= LmZpbHRlcnM= X1RBQg== CXN5cw== cm9waGlj b3RoZXJhcHk= IEJyb3dzZQ== a2V5Ym9hcmQ= Uk9O K1w= cm9wcGVk IGV4dGVuc2l2ZWx5 Zms= IGxpbWU= eWVhcnM= RXhj IHNwaA== IGNoZWF0aW5n YW5kcm8= w61v IHByaW5jZQ== b2lyZQ== IERlc3RpbmF0aW9u IENvbnZlcnRz IHVwc3RyZWFt b2xlZA== IHNlcnZhbnRz IHNlbWFudGlj IGNydW5jaA== IGV2ZW50dWFs cnVubmVy L2Vycm9y U3Bpbg== IHNlY3JldGx5 IGFzc2VtYmxl LlBlcnNvbg== ZW5kZXJyb3I= Xzw= IHBlbmRhbnQ= U2xlZXA= IENoZW1pc3RyeQ== IGJvc3Nlcw== bGs= KSkpLAo= QmxvY2tseQ== REVWSUNF IHJlZmxlY3Rpbmc= IGFtcGxl TWlsbGlzZWNvbmRz IFByZXNpZGVudGlhbA== IHVzdWFyaW9z IE5a IFNhbGFyeQ== IEFtYW5kYQ== X25w anVyeQ== IGvDtm4= IHRoZXJhcGlzdA== IGhvbW9zZXh1YWw= IERyYWtl LXdpbmRvdw== IExvY2F0ZWQ= LkRyaXZlcg== IFZJREVP IG1lcmNoYW50cw== IENoZXN0 LWxvY2s= L3BocA== IG1pbGFubw== X1NUWUxF YXJnZXI= aWRlYQ== R1VJRA== YWR2YW5jZWQ= bWVhbA== T3B0aW9uc0l0ZW1TZWxlY3RlZA== PScl IENoYW0= OmRhdGE= KHN0YXQ= V2lsbEFwcGVhcg== IGluZm9ybWFs YWpp IHJlcHJvZHVjdGl2ZQ== IENBUw== 44Gj RlVOQw== IFJ1dGg= KSso Q09OU1Q= IEZhbnM= IGdyb3VwSWQ= eGZmZmZmZmZm IHNhbXBsZXI= IH19Ij4= LnRoZQ== IGhvbGxvdw== V0FZ IEZhY3VsdHk= QXR0cmlidXRlZFN0cmluZw== IExvb2tz IFJleA== ams= IE1JTA== IGJhcmQ= Lkxvbmc= IGxpdmVzdA== IHNrYWw= aWNpc20= TUFJTg== IG11Y2hv Qk9EWQ== IGVzZQ== CXVzZQ== Rm9vdA== LlNRTEV4Y2VwdGlvbg== IGluaGVyaXRhbmNl cmVjZWl2ZWQ= IHB1dGFz ZWRpcw== YWxzYQ== IEVycm9yTWVzc2FnZQ== Qm9va2luZw== IHRyYWN0 YWN6 IENhbnQ= X3JlZ2V4 IGlkZW9sb2dpY2Fs IGppaGFk aG9z L3N5cw== Y29sbQ== KHBvb2w= IGVzdMOhbg== IFBlbmRpbmc= ZW3DoXM= IGt0w7NyeQ== KSk7CgoK dHJhbnNhY3Rpb25z IHdpZWxk aXRlcmU= ZXJ0dXJl X3Nz IHN0cmV0Y2hpbmc= IHByaXNvbmVy LlJlYWRBbGw= IGJlc2No LS07DQo= IGNyaXNw X1NDQU4= IGFl U3RyaWN0 IE1pbm5lYXBvbGlz IEJvZWluZw== YXJpcw== cmVr X3BpcGU= IHByaWVzdHM= KEVJRg== ZWhpY2xlcw== IEludGVyYWN0aXZl YmV0d2Vlbg== CU51bGxDaGVjaw== IEJsYWly IEx0 X2lubGluZQ== ZXRoeWw= wrw= X3BhY2thZ2Vz IGJhcnJlbHM= X2hl IHJlZ2V4cA== X3B0cw== X0hhbmRsZXI= aW5ndWxhcg== IE5pc3Nhbg== IFJhbmNo IHBlcmNo VW5zdXBwb3J0ZWQ= U21pdGg= IExlZ2VuZHM= TWk= IGdm c3RlZGVy IGFjcXVpcmluZw== IHNpbXVsYXRvcg== KCksIg== cmVjZWl2ZQ== IGlucGxhY2U= QUNUSU9O IFdlYkRyaXZlcg== ZmlsZXN5c3RlbQ== PE9yZGVy bG9wZW4= IEhFSUdIVA== LnNldEJvcmRlcg== jbA= X19bIg== IGNsYW1w U2Vnb2U= YmFuZHM= dG9MaXN0 YW1iYQ== PicrCg== IGNyZWRpYmxl YW1hdA== cGxheWluZw== LnNldEltYWdlUmVzb3VyY2U= cXVlbA== IHBvZHI= Z2VvbQ== RWs= IFFhdGFy IGdlbGQ= PycsCg== IGN5bA== KGF4 IFdJ dXJhbGx5 IEJyYXNpbA== IHNlbnph YWxleQ== b25lbg== IGJhaA== IG1vbGVjdWxl UmFk 6L+w QU5DSA== LWJhY2tncm91bmQ= LWFnZW50 IHByb2xpZmVy OmJvb2xlYW4= IHRpZGU= ZXJpYWxpemVy XzsNCg== RmVl Kiop ZXJneQ== IEhvbm9y LkxvZ2dpbmc= aXJpcw== IHVuZGVybWluZQ== IER5 IHR5cg== IGRlcXVl IGRhbWVy KFtdKQo= LmxheW91dENvbnRyb2xJdGVt cGVhdGVk Q0FO cmFnbWVudHM= TGFuZA== KV0pOwo= IFNhaA== IERFQ0w= V2l0aGlu IE5hbWVzcGFjZQ== YW5vdGhlcg== c2VtYmxpbmc= LmRlc2NyaWJl Q29uc3Vt IEZlYXI= Z2l2ZW4= T3Jhbmdl PGJvb2xlYW4= IHN0ZWFkaWx5 cGFSZXBvc2l0b3J5 IHJlc3VsdFNldA== X0VOVEVS X3JlcGVhdA== IHRvbmVz IFBST1A= bmFs cGFydGljbGU= IHNpZ25hbGluZw== IGFjY2Vzc29yeQ== CQkJCQkJICA= IHZpZWxl IE5vYWg= LWFn IG11cmRlcnM= IGFpcmVk IFBMQVk= IFN1bGxpdmFu X0NvcmU= IHVsb25n IGJsb2dnaW5n PlRoaXM= IGRhdGFJbmRleA== IHByaW50YWJsZQ== IEV5ZXM= X3RhcmdldHM= KFB5 Lm92ZXI= IGJydQ== YW1wdG9u IHBsYWludGlmZg== PEtleQ== YnVsbA== IOKfqA== SXNzdWU= LmNvcm5lclJhZGl1cw== Q3JpdGljYWw= X3BoaQ== LmFuZ2xl IGR5bmFtaWNhbGx5 ISIpOw0K Pik7Cg== aW52ZXN0 LioKCg== IHTDqWzDqQ== IHN1cGVyZg== IGNhc2NhZGU= RFRE IHZpdmlk IHN1YnNpZGllcw== IEhhc3M= IGNvbGxhcHM= IGNlcmFtaWM= e30iLg== IExlYWthZ2U= LXRyYXNo Y29sbGFwc2Vk LXNvY2lhbA== IENoYWQ= IGluY2xpbmVk IHN0bw== IHN0b3J5Ym9hcmQ= LnBheW1lbnQ= c3RhY2tvdmVyZmxvdw== IFJhaWRlcnM= ICMn b2xpY2llcw== 7Jy866Gc ZW1hcA== IGtq IHF1b3Rh IEdhcmRlbnM= 67KI IEFuZ2Vscw== IG9mdA== IGxvd2VyY2FzZQ== IGlQYXJhbQ== IGNoZWFwZXN0 dW50YQ== X3BrdA== aWNhdG9ycw== IGxldXJz IGRlY3JlYXNlcw== CWRlZmluZQ== UFJFQw== YW1tZXJz IFByZXBhcmVkU3RhdGVtZW50 KGRpcmVjdGlvbg== IGNyZXdz YXJrZWQ= IE1lbXBoaXM= IFNlbGw= R1RL IG1haWQ= OmRpc2FibGU= 6ZuG IFBm IGFsYmVpdA== b3Blbmg= Pz4iPgo= LmdldFNvdXJjZQ== KHNjYWxl RHU= IFBJTA== X3JlZnJlc2g= IGJldHM= KGNhcg== IFZvbg== fC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCg== IEdyYXQ= TXVjaA== KERpYWxvZw== LnN0b3BQcm9wYWdhdGlvbg== IHRlaw== IGV4aXRz J10sJA== IHBob25lTnVtYmVy dWNz ZWNpbWFs LS0tLS0tLS0tLS0tLS0= aW5w LnBvam8= IGNvcnB1cw== IHByYWN0aXRpb25lcnM= LnBpYw== InRlc3Rpbmc= IHN0cmluZ0J5 Lk5vdE51bGw= IHJhbmc= LkR5bmFtaWM= X1JlbmRlcg== 0LDRgtCw V2FpdGluZw== IFdpaw== IG92ZXJ3aGVsbWVk JSI+ IEFF fX0+Cg== dXc= X3R5cA== IGJ1Y2tldHM= IGdyZWV0aW5n IGxhdWdodGVy IGFudGFnb24= dWdnZXN0aW9u LWVtYWls CXRvcA== IGVyb3M= X3RyaQ== IGlzc3Vpbmc= IGjDoQ== IGlzb2xhdGU= T3ZlcmZsb3c= LEU= IG51dHJpdGlvbmFs IEFiYm90dA== IG5m LnRvdWNo LmZldGNoYWxs X3ppcA== Iil9Cg== IGFtYXQ= IENpc2Nv IG7DpQ== UExFWA== IHNlaQ== Zm90bw== LnRvSnNvbg== 5aSa IEtsZWlu IGxpYmM= IG1pbmVycw== 5aI= LXByaW50 IFByaWRl VG9kb3M= IG1hc2tlZA== IHNldERhdGE= IHRlbGVmb24= IHVuaGFwcHk= IFRhYmxlcw== Z2Vi KGRlYnVn X2FsbG93ZWQ= LWFjY2Vzcw== IGxvZ2lzdGljcw== IGdlbXM= IE1hdHVyZQ== IHJzcA== IEFsbGU= LmdldEJ5dGVz XHdlYg== eW5jaHJvbml6ZWQ= UGFyYWdyYXBo IHRocm90dGxl LnNxbGl0ZQ== Y29uc3VsdGE= IFNlYWg= Q2U= IHN1Ym1hcg== RVJF Vm91cw== IHJlZGRpdA== IHNxbGFsY2hlbXk= LW1pbGU= b2NpZGU= UG91cg== fX0iPgo= c3RlYWQ= IEAo IFtdKQ== IEFkcw== IG92ZXJsb2Fk cmlkZGVu IERlc2VydA== IFdyYXA= IFBvcnR1Z3Vlc2U= ZXR6 CWZpcnN0 IG1pbGVzdG9uZQ== 5peg 0YPRiQ== KHN1Y2Nlc3M= PFZlY3Rvcg== Y29vbA== IFtdKTsK ZXJ2YWxz IGludmVydA== Imlv Y3Vyc28= ZnJhZ21lbnQ= IGZlYXNpYmxl LnNldFBvc2l0aW9u IGVsbQ== IGltYWdpbg== QFNwcmluZw== IGJhdHM= cHXDqXM= Z2FsZW1lbnQ= bnNpYw== Z2llbmU= ZWxsYXRpb24= IEJhaWxleQ== U2hhcg== IFR1bA== IEhL IGZyZWV6aW5n Z2xt Y2VhbnM= LWN1dA== X2NpcmNsZQ== 5ZGY bmVnYXRpdmU= IGluZGlhbg== c2FsdA== IHRpbmc= CW1vZA== IHNpbnQ= YWtpbg== dW1s IFRleHRJbnB1dA== IHBvcHBlZA== VE1Q IHBhcmtlZA== 15nX IEZ1c2lvbg== IGhlYXRlcg== RVRG cm96ZW4= aGFsbA== IE1paw== bGV2YXJk LWhlYXJ0 CW9yZGVy TWFraW5n IHBsZWRnZWQ= IGRpcnM= JHBvc3Q= IEhlcnI= c3RhbnRpYXRl LCIK LmdldENvbG9y IFNBVA== IHRpbWVkZWx0YQ== IE1haQ== CW1ldGhvZA== IGlkaW90 IFRyYXY= aWRlbnRpZmllZA== IERpdmluZQ== LmdldFBhdGg= RGFzaA== IGluZmlsdHI= IGhhbmRsZVN1Ym1pdA== YnJvb2s= LmdlbmVyaWM= LnNob3J0Y3V0cw== Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLg== IGRhdGluZ3M= IE1W 77u/Iw== fSIKCg== IGltcHJpc29ubWVudA== YXNvbmlj cm91ZA== dWNpb24= 5oql IGRpYWxlY3Q= IG9uTW91c2U= Y29uc3RleHBy LmxhYmVsQ29udHJvbA== IHdlYWtlcg== IG1hbmtpbmQ= IFJFQ0U= IGRpeg== IGFwcEJhcg== IHF1w6k= ZnJh X2RlZmF1bHRz IGFsaXF1 X2F0b20= OmluZGV4UGF0aA== IG1pc3Nlcw== IHZpc3VhbGx5 IEhhbmRz U1RSVQ== aWF0ZXM= X2Fzc2V0 RmluZGVy bWlkdA== IHNuYWNrcw== KF9fKCc= LnVyaQ== IEluc3RydW1lbnQ= dmVuaXI= KCRfXw== LkRvdE5ldEJhcg== IGNvbmZpZ3M= IGd1ZXNzZWQ= 4KS/4KQ= IGluaXRpYWxpemVy ID8iLA== IFZlcml6b24= bWFuaWZlc3Q= Z2ViZW4= LmRldGFpbHM= R2F0ZQ== cG9uc2libGU= IEVsaW0= LHN0cg== IHdyaXRpbmdz IERlcmVr IENvb3JkaW5hdG9y IHBpbGxvdw== IG5vdGljZWFibGU= UnM= IGR1cGxpY2F0ZXM= ZXJuZWxz a0o= Lnp6 b2xsYW5k IFNFQ1RJT04= X2ZuYW1l dWZmbGVk J10uJzwv X0NN IHly cGxhdA== b2JvZHk= bmRl KEVsZW1lbnQ= IEF0bGFz IO+8iA== IG5pdmVs IGluc2lzdHM= W1A= IGVudGh1c2lhc3Rz IOyeheugpQ== IGJldmVyYWdl e30iLA== OnJpZ2h0 IG5vdXZlYXU= IENvbXBsZQ== IFBhZw== b3ducw== IHJlbWVtYmVycw== IFByYWRlc2g= IGNoYWxr IExhdXJlbg== XFNlcnZpY2U= X0dFTg== PiIpCg== IERvbGxhcg== IGVtb2pp Q2Fyb3VzZWw= LXBsYXllcg== IGFkanVzdGluZw== IGp1Z2E= YWxsZW5nZXM= Z2VuZQ== KGJvZHlQYXJzZXI= bG9wZWRpYQ== IEJlaGluZA== IHNsZWV2ZXM= IGRyYWdnaW5n IENoZXZyb2xldA== IGJpeg== aXZpdGllcw== IEZyZXF1ZW5jeQ== LGNoYXI= LldISVRF X3ByZXZpZXc= KSc7Cg== X2F4 SU9OUw== LmNwdQ== LmlucHV0cw== VUJF X2ZlZWQ= IFN1cHBsZW1lbnQ= ISku ZXN1cw== IFVEUA== IG1pY3JvcGhvbmU= IGNvbmZpcm1z LmlzTm90RW1wdHk= IjoiIiwK X1NDUkVFTg== CWV4cGVjdGVk Ky0rLSstKy0= IEhhaXQ= ZmFzdGNhbGw= IGRlcGljdA== dmI= X3BpY3R1cmU= CWRlc2NyaXB0aW9u IFdpZmU= dWNp IHZpY2lvdXM= 5LuW dWViYQ== IHNldFVzZXI= 44Gh IGRpdmluZw== IG9wZXJh dXNlcmNvbnRlbnQ= YXJhaA== KX0s eXVu dmVsdA== IHVuY292ZXJlZA== IGhpcHM= IG9zY2lsbA== IGFzc2VydGluZw== IFhp LnJlc3RvcmU= a2Vh IHNwZWxsaW5n IGRlcml2ZQ== YWJ3ZQ== IERvdw== LnNldFR5cGU= X3Zz IGNvenk= LmNhdGVnb3JpZXM= T3Jn X21ncg== IGR1bmdlb24= Y29sbGVjdGlvblZpZXc= IEJsYW5r YWNpYXM= w6TDpA== X2NsZWFudXA= X0FDVElWSVRZ IHRyaWFuZ2xlcw== Lk1lbnVJdGVt IGlwaG9uZQ== IFdvbg== XV0KCg== IENvbXBhcmlzb24= LkRvYw== IGNhbm9uaWNhbA== IFN1ZGFu Jyl7 VXBJbnNpZGU= YnVpbHRpbg== RU5DWQ== eGJl IGNodWNr IGNvbnRyYWRpY3Q= IG51ZXN0cm8= IGFyY2hpdGVjdHVyYWw= IEZpYg== IGNvbXBhcmVz Kms= Q2Zn 54Sh bnRlbg== TWF0Y2hlcw== IERPV05MT0FE X0hBTkRMRVI= bWFuYWdlbWVudA== W1M= RU5H woDC ZmFuZw== IHNsaXBwZWQ= IExhbmth ZXNjYXBpbmc= IHRhY2tsZXM= IFBlZHJv LlByb3A= Licn LkdlbmVyYXRlZA== Lk5ld0d1aWQ= YXRyaWdlc2ltYWw= aWxsb24= IHN0YXRpc3RpYw== c3BlY2llcw== aG9sZGluZw== RHJ1cGFs IGZ1bmRhbWVudGFsbHk= IGJvbmRhZ2U= IHJlc29sdXRpb25z SW5saW5lRGF0YQ== XFR5cGU= ZXN0aW9u LndyYXA= IHdhcnJpb3Jz IExPQ0FM QXJjaGl2ZQ== IGVtYnJhY2Vk 4bun LlZlcg== IEFmZm9yZGFibGU= b2xlc2FsZQ== IEFwcGxpZWQ= IENvbnZlcnNpb24= bWVnYQ== X2NhbQ== IGNlcmVtb24= YXVydXM= IFZvbGs= Lm9wZW5z L2Fib3V0 IFN0ZA== am91cm5hbA== KCkpew0K LCJc KEFycmF5cw== IERlbnNl YXNlw7Fh w6RubmVy L3N0YXQ= dXNlckRhdGE= IGdlcm1hbg== IHR6 d29ydGh5 Rm9ybWF0RXhjZXB0aW9u cGhlcmQ= IHNtaWxlcw== IFdoZW5ldmVy KGFkYXB0ZXI= LmJhZGxvZ2lj IGJyaWVmaW5n LkdyaWRDb2x1bW4= LWNoYXI= ZGltZW5zaW9u IENvcHBlcg== IG5pbnRo ICd7ew== IHJhdg== X1RhYmxl IGRlcml2YXRpdmVz IFJhaXNl IEZ1dA== YXJtb3I= LXBhZGRpbmc= IHJlbWlu CXN0eWxl IE1lbWJlcnNoaXA= IHNwcmVhZHM= IGdhbGxlcmllcw== IENsYXJrZQ== IGNvbmNlcHRpb24= bWludXRl IGFidXNpdmU= X2Fkag== IHRlcnJpZmlj IG92ZXJ0 b3VyY2luZw== IGVudHJhZGE= bGV2ZWxz IGNyaXRpcXVl IHJlc3BlY3Rz IE1NQQ== aWVuZQ== IGVuY2Fwcw== IFJheW1vbmQ= RGl2aWRlcg== aXZhYmxl YmF6 IEBfOwo= IENsYWlyZQ== IHVyZ2luZw== Q0VF IHRyYW5zZm9ybWVy ZGlzY29yZA== IEpvdXJuZXk= dG9z IGNvbXBldGl0aW9ucw== IE9CSg== IEJpcw== IHJlbGF4YXRpb24= aWR5 X0lOU1RBTkNF IFByZWY= ZGFkb3M= aWNpZW5jaWVz IE1lZGlhUXVlcnk= IEN1YmU= IFN0cmFuZ2U= Z3B1 KGRheXM= X0luaXRTdHJ1Y3Q= IGZpbmdlcnByaW50 ZW1hdA== IEdlY2tv IHJhaWxz IEx1bQ== c3RyYWN0aW9u aWd1bmc= KG1vdmll X2RpY3Rpb25hcnk= X2ludGVycnVwdA== IFFD aWtlZA== YXBwZW5kQ2hpbGQ= cmVjaXBpZW50 csOp VmU= IHRvd2Vs Lmxhc3RJbmRleE9m IHBsYWNlYm8= IFdpZQ== LmVzcA== KERlYnVn b3BlcmF0aXZl IGRlY2Vhc2Vk Jmlk CW11dGV4 ZWxpYw== IGJhcHQ= CQ0KDQo= IGZhcnRoZXI= SGFsZg== LmRpc2FibGU= Lm1lbnVTdHJpcA== bGVjY2lvbg== IHJlc3VsdENvZGU= IGNhbnM= LWVsZWN0aW9u ZmVtYWxl X0ZJWA== YXVzaWJsZQ== IFBPV0VS IHJlY29uc3RydWN0aW9u IHNjYW5z Llh0cmFCYXJz 4oCYcw== UmVtb3ZlZA== IHBhcmFncmFwaHM= X21hcmdpbg== IGx5bXBo IGJvcw== bGluZ3Rvbg== IEJhcHRpc3Q= IGFkdmVydGlzZW1lbnRz IE1hbmFnZQ== L3l5eXk= SU9VUw== RU5DRVM= IEZpY3Rpb24= CW1lbnU= IEZpbGVPdXRwdXRTdHJlYW0= b3Zhbg== IEZlbmc= IHNraXBwaW5n Z2V0Q2xhc3M= YW5uaQ== IHJlYm91bmRz IHB1YmxpY2l0eQ== IGluZ3Jlcw== dXNlbWVudA== IHRob3VnaHRmdWw= LkNoYXJ0 IGhhdHRl cGFzc3BvcnQ= IGhvb2tlZA== IExlbnM= IGZsYWdzaGlw IHN0aXA= IEdFTg== IGNsdWVz aXB2 IFJpc2U= IEdldw== dGFibGVuYW1l IGZvcmVtb3N0 X3ZhbGlkYXRl X2FuYWx5c2lz b2xsYQ== IHF1YWxpZmljYXRpb25z IGRpc3RyaWJ1dGlvbnM= IEZsb3dlcg== IHRlbnNl IHRoYW5rZnVs IGNsdXRjaA== IHVuaWZpZWQ= cm9hZHM= IHNpdGk= IHN0YWxs X1BSSU9SSVRZ Y3N0ZGxpYg== X1VTRVJOQU1F LmJ5dGVz P3BhZ2U= ZXJtYWxpbms= IFZlZ2V0 L3ZuZA== LWF1dGhvcg== Lk5PTkU= IENvbmN1cnJlbnQ= IENyeQ== IHN0YXJ0ZXJz IEludGVyYWN0aW9u ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IExFVkVM RWxs IGNvbWJvQm94 IFRoZXJlc2E= dGVr X0hhbmRsZQ== IGFieQ== LmdkeA== LGVuZA== KExvY2Fs T2w= a25pZmU= YXJpYWw= IEhvZmY= IHByb3N0aXR1ZXJhZGU= RG9jdG9y SW5zdGFuY2Vz LlNldFZhbHVl CWZyb20= IGx1eHVyaW91cw== SW5kZW50 QWxsb2NhdG9y X0RSQVc= KCIsIiw= IEZyYW5jZXM= IGdyb3VwQm94 KHNjaGVtYQ== UHJpbnRm T1JJRVM= LWdyYWRpZW50 IHJlcHV0 YXJpbg== X0RPTkU= aW5jcmU= aWdudHk= IGV4ZXJ0 IC0u L0FwcA== LXRocm91Z2g= IGRlY2xpbmluZw== IGRlc3NlcnQ= IGluY3VtYg== IGRlc2lnbmF0aW9u LlBPUlQ= LHN0cm9uZw== IHNhbmRib3g= IHdpbmVz IFBhdg== JHN0cg== YXNrZWxs IGjDtg== IFBZ R2V0SW5zdGFuY2U= VGV4dElucHV0 Z2FtZU9iamVjdA== L2V2ZW50cw== Y3JlYXRlZEF0 IGxvY2FsVmFy IFdISVRF cGVyZWQ= aWxlZ2U= ZWZmaWNpZW50 LGNvbG9y Y2F0ZQ== IENhZmU= IHNpbWlsYXJpdGllcw== IHB1bXBz IEh1bmdhcnk= LlVzZXJuYW1l IHNrYXRl IHRvdWNoZG93bnM= IGFjY2VsZXJhdGU= IEhlbGVu T01FTQ== IEt1bg== X3ZvbA== IGZpbmRBbGw= IE1lbnNjaGVu YWhlYWQ= KTsi a29tbWVu IHBvc3Nlc3NlZA== LmFyZ21heA== LnRyYW5zaXRpb24= QVJQ T0xVTUU= KHNjcmlwdA== INCY IEZpbmRpbmc= b25jZXM= SW8= Qm9sZA== IHJlbmV3YWw= X0RJQUxPRw== IGRpc3JlZw== SU5URVJO IHRvdXRl IGVsZWN0cg== IEdyb3Nz CXRydWU= LkZpZWxkcw== IFdJRFRI IERlbnQ= IMOB TlNOb3RpZmljYXRpb24= IGFvcw== IG1lbGVl LlZhbGlkYXRpb24= IERFQw== LWRlcGVuZGVudA== IHN1aWM= VHJhaXRz JG1lc3NhZ2U= IERlYXI= CUZJTEU= bGFuZ3VhZ2Vz LlByb3Q= LmFkZHI= LWdlbmVyYXRpb24= SUNPTg== IHRyYW5zcGxhbnQ= LWRlc2NyaXB0aW9u IGNoYXNpbmc= IGNoZWVz IH0qLwo= VHJhZA== cXVlcmllcw== L3dpZGdldHM= c3VicGFja2FnZQ== IGVzcGVj IGNyYWNrZWQ= IGNvbXBldGl0b3I= UHVyY2hhc2U= LXRlYW0= b2xlY3VsYXI= b3JUaHVuaw== JlA= IHJlbGVudA== LyN7 IHByb2R1Y3RJZA== IOi+ IExhdg== IEFsdGVy Lk1vZGU= QURJTw== Z3Jw 5re75Yqg UXVpdA== IGRlcHRocw== LWNhdGVnb3J5 IERBVEFCQVNF U1BFTEw= IEZhbGNvbg== IFFTdHJpbmdMaXN0 ICcnLg== IEluc3RpdHV0aW9u ZGFtYWdl YXpvcg== YmVsb25nc1Rv dmVyYWdlcw== IE5PTkU= aXBwZXRz LFwK IGZvb3RwcmludA== X2FyY2hpdmU= bmFr LmdldEZpZWxk IFJlZmxlY3Rpb24= ICdd IEhCTw== X2Rpc2NvdW50 IGluY2VzdA== IERvZGdl IFdhZGU= Lk5P ImVuY29kaW5n IEJsb2NrY2hhaW4= IGxhd3N1aXRz IE1haW50 Y2h0ZW4= IMOpdGFpdA== IGt0w7NyZQ== X2N0bA== KHRpbWVy QmF0dGxl aXpv YXllZA== SU9S IEdsYXNnb3c= IHN5bnRo X2xvZ3M= LnBvc2U= X0FkanVzdG9yVGh1bms= KCgm IHVuc3VyZQ== eXN0YXRl 7ZWY64qU T1VMRA== Lm5n IGRlZmF1bHRkaWN0 d29ya3NwYWNl IHNlbGVjdGl2ZQ== UGlja2VyQ29udHJvbGxlcg== WU5BTUlD Lm1ldGhvZHM= IHBhdGh3YXlz IEZldw== S0c= Q1JZUFQ= Zm9sbG93aW5n IERMQw== IFNhcmE= IHByZXNldA== ZXN0cnVjdG9y IEt1cnQ= IGFpcnBsYW5l IG9tcA== IFBhcmVudHM= IE1hcnRpbmV6 LmNvbXBsZXRl IGJyb2FkbHk= IHNjYXJl IE3DqQ== IGVsaW1pbmF0aW9u IHBvdXJlZA== L3N3 IGNvbXVu IG1hc2M= IE9yZ2FuaWM= IFN0cmluZ1V0aWxz aWxhdGVyYWw= IHJlbHVjdGFudA== LWFnZQ== IG56 LiJc IHBhc3Rvcg== YWxleg== IGVmZWN0 cHJvdg== L2luaXQ= IHBlbm4= dW5kcw== IHNzaXpl IFByb2o= YmFzZW5hbWU= IHNoZWxscw== IE5lY2s= IEVuZm9yY2VtZW50 dmlkZWQ= c3Rvd24= U3BoZXJl JHI= dXNzZW4= YWZpbA== IFRlbGVncmFt IGFuYWx5dGljYWw= 0L3Ri9C1 dXN1YWxseQ== eG4= IGhpc3Rvcmlhbg== IEdyZWdvcnk= b2xwaA== IFVuYQ== IGNvbnRyaWJ1dGVz JS0= YW50aWFnbw== 0YDQtdC0 LnJlZ2lvbg== IGFicnVwdA== IFVuc3VwcG9ydGVkT3BlcmF0aW9uRXhjZXB0aW9u IFRBU0s= X2ZpbmlzaA== IG5vdG9yaW91cw== IFZz IE1R IHN1bnNldA== IHVuYWNjZXB0YWJsZQ== YXJjZXI= IGlsbHVtaW4= IE9yYg== IGJo RXN0ZQ== X2Rpc3BhdGNo IHJpcHBlZA== IHRvdWpvdXJz IFBhcmNlbA== X2xs LnVzZXJOYW1l LmNsYXNzZXM= U09VUkNF KE51bWJlcg== 0LXQu9GP IGhlYWRwaG9uZXM= KHNpZGU= Y29uc3RpdHV0aW9u YW5uYWg= DQogICAgICAgIA0K IGNsaWZm LXJlZg== IG1vc3RyYXI= IFBvd2VsbA== K3k= IEJH X2ZyYWdtZW50 LlBvcnQ= IHJlYWxpemluZw== cGFyYW1yZWY= IGhvbWV0b3du QFRhYmxl KyI8Lw== b21pZA== IGR1Zw== CWJ0bg== IHN1YmplY3RpdmU= L2Jyb3dzZXI= IHVzaG9ydA== IE1vbnRnb21lcnk= LXJhdGU= CXB1dHM= bGV0aWNz b3Jucw== 4oCcV2hhdA== ZWVwZXI= LkludmFyaWFudA== IGNvbmNlYWxlZA== X251bXB5 PT09PT09PT09 KHBz TG9jYXRpb25z LmFzdHlwZQ== IENIQU5HRQ== Lk9yZGVyQnk= O2hlaWdodA== IGdlbnRl IGdydW50 IFBsYW5l IHNhZGx5 IExvZ2Fu X3VzZWM= LmRndg== IHNpbmNlcg== IHBu CWd0aw== IGluc3RhbGxlcg== IGRpc3BsYWNlbWVudA== IGJ1cm5z 0YPRgQ== aXZlcmVk Ol0pCg== c2VhdA== YW5pbmc= fSkKCgo= X3JvbGVz YXRpY2Fu IGdlbmVyYXRvcnM= IGh1cnRz IHNuaXBwZXQ= IGdzb24= IHNlZ3JlZw== IGRpc3RyaWJ1dG9y IGFkdmFuY2luZw== cG9zdGdyZXM= IHVzcg== IExpcw== LmFzc2VydElz X2Nk IGh5ZHJhdWxpYw== LmNvdW50ZXI= IEluZGVwZW5kZW5jZQ== IGRpZmbDqQ== VW5saWtl IHRvbWI= dmlr cG9zdGVk d2Y= IGRlc2NlbmRpbmc= ZHlu YW1lbnRhbA== IEZydWl0 IFlv LmRvdWJsZQ== IElB aWV2 aWJyYXRl IFJlbGlnaW9u TWFueVRvT25l LVRh IGJhbmFuYQ== IEF2ZW5nZXJz IEhvbG9jYXVzdA== IGdldEM= IGNvbmRv IEdvdGhpYw== IHByb3NwZXJpdHk= VFJBTlM= IGRvZXNudA== IENoYW9z SVRU IENVUlJFTlQ= XGhlbHBlcnM= X1NBVkU= YXZpdA== Y29tcHV0ZXI= X3NoZWV0 IEJyZXdpbmc= IHJvYmJlcnk= IOqyvQ== INC60L7QvA== IG7DpA== LnJlZ2V4 IGRpc3J1cHRpb24= IFNpbXVsYXRpb24= YXBpZA== IHN1cHJlbWU= zrw= IGNvbW1pc3Npb25lZA== IGFic29ycHRpb24= IE5ld2Nhc3RsZQ== CWNvbnN0cnVjdG9y VGVybXM= IHJpdg== IHJlbGlnaW9ucw== V2l0aFRhZw== Lkh0bWw= bGlua2Vk Q29tcG91bmQ= IE1hbnM= IGxha2Vz aXp6bGU= LnNldFNpemU= YWJlcg== IE5lZWRz cGFja2FnZXM= LlRhYlBhZ2U= IHJlZnM= IGlvdXRpbA== IERvaW5n ICJcKA== IHBoZW5vbWVuYQ== LkdldEludA== QUxUSA== IHBhcmxpYW1lbnRhcnk= IHJlZnVzYWw= IGluZXhwZW5zaXZl IH0KCgoKCg== IHNvbGlkYXJpdHk= CXB1c2g= aGF1bA== IEJlcmU= U2l6ZXI= SW5kaXZpZHVhbA== IGFuY2U= IGRpbGU= IFBlYWs= KGhy RWRpdGluZ0NvbnRyb2xsZXI= SE4= X1BFUklPRA== RVRT QmFubmVy ZXJyb3JNZXNzYWdl LkNBU0NBREU= LWlnbm9yZQ== IFNJR04= IE9C X2Rk KERFRkFVTFQ= IHNvbw== IFZpY3Rvcmlhbg== IGN1cnQ= IGRpc2NyZXRl cnlsaWM= aW1iYWJ3ZQ== LnRvRml4ZWQ= bMOk LnN0ZGlu IHF0eQ== Uk9MTEVS bWVkaWF0ZWx5 IHBsdW1iaW5n IFByb3BlcnR5Q2hhbmdlZA== YXJyYW50eQ== IEJyZWFrZmFzdA== LnNldEhlYWRlcg== LnB5dGhvbg== Y29tbWVyY2U= b3BlbmN2 Pi0tfX0K RnJlbmNo RW50aXR5TWFuYWdlcg== IFBsYWlu Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8= wrM= KFJF Y2FwdA== IG9yZ2FuaXNtcw== IGpldHM= b2xvY2F0aW9u IEFwcFJvdXRpbmdNb2R1bGU= IGdsb3Jpb3Vz 5pyN IGRpc2NhcmRlZA== CQkJCSAgICAg IEFybm9sZA== bHVn IHBhcmw= IGhvcm1vbmVz IG1haA== IFNvbmlj IG9yZ2FuaXplcnM= X1BMQVRGT1JN Lmludg== IGNob3Jk dmVudGlvbmFs CW9m RXBpc29kZQ== LkVudW0= dW5rdA== IERo IEphcmVk IE5haw== IGludGVuZHM= RW5kaWFu IGF1c3RyYWxpYQ== X2N2 KHJlc29sdmU= IGNsaW5pY3M= bGlrZWQ= QVNISU5HVE9O aW5oYQ== Jyo= IE5Q X2JlaA== IGhm IHfDvHI= Y2F0ZWdvcmlh JGZvcm0= IHN1YndheQ== IGlzQWN0aXZl cG9wdWxhcg== Q291cg== IGNvb2xkb3du IGFpbnNp IEdMdWludA== ZXJlYWw= IGFycmF5T2Y= IGhhdGNo PT09PT09PT09PQ== cmVzc2Vz X1BQ Ll4= X2RlY2F5 IEJsZXNz bWV0cmljcw== IENPUFlJTkc= IER1bXBzdGVy IEpvc8Op IERlc2lnbnM= PFZvaWQ= 57q/ ID8+PA== ICJ9Cg== dGltZXpvbmU= IGVlcg== bWF4Y2Ru IEVTQw== aWdhcmV0 X2Nvbm5lY3RlZA== X3JldmVyc2U= IHF1ZXN0aW9uYWJsZQ== IFVTQw== IHR1dHRp IGRyb3BvdXQ= IEFjdGl2aXRpZXM= IFdpbmRz JykpKTsK IGNvbmdlc3Q= xJ/EsQ== IHByb2xvbmdlZA== 6L+Z IENyb3NzQXhpc0FsaWdubWVudA== TEVFUA== IFZBTElE IEdheg== IGRlcGVuZGVuY2U= IFByaXg= LkNvbXBpbGVyU2VydmljZXM= anVtcA== IHN0cmF0 Y2lyYw== IENVU1RPTQ== eGFh IGJtcA== IGJ1cmVhdQ== IHdhcmVu Tlg= KFdpbmRvdw== IENocmlzdGll X0ZF IHRu IE9tZWdh Y29tbXVuaWNhdGlvbnM= SG9tZVBhZ2U= Y29tcGxldGlvbg== IHN1cHBseWluZw== WVBFUw== w6F2ZWw= 5Yi2 KGNsaWNr XENvbnRyYWN0cw== L3F1ZXN0aW9ucw== IGV6 QU1T Lm1lc2g= ICc8Pw== asOg SW5p LiM= IENhcmRpbmFscw== cGNpw7Nu Q3ViZQ== IFBhdGllbnRz X3ByZWY= QWN0aW9uQnV0dG9u KGJ1aWxk IFZpc2E= b3ZlbA== KEFycmF5TGlzdA== SWdu IHJlaGFiaWxpdGF0aW9u IHBhbGFjZQ== IHNwZWVjaGVz fScK SHR0cFJlc3BvbnNl CWNvZGU= RHVtbXk= IGFjYWRlbXk= Lm1vdmll IGluY29ycmVjdGx5 IGN5Yw== KFVuaXR5RW5naW5l CWNhbGxiYWNr IFNhdGFu IEZVTkM= IGNoYW50 IEhlYWx0aHk= OicsCg== U2hpcHBpbmc= X21j IER5bGFu IFByb2R1Y2Vy IHJlc3B1ZXN0YQ== IHBvbGlzaGVk QnJvYWRjYXN0 IGJhbGFuY2luZw== IFNsaWRl IENhcHM= c3RpbGw= IGhhcHBpZXI= IEdvc3BlbA== dHJhbg== LnBhdGhuYW1l QWN0aXZlU2hlZXQ= IENoYW5n PlwK Um9ib3Q= SnNvbk9iamVjdA== IERG IFByb2Nlc3Nvcg== X3Nob3VsZA== LnByb3RvYnVm LXVzZXJz IGVtYnJ5 Rk9OVA== IHN0YXJ0dXBz IERhdGFTb3VyY2U= KSM= dXJvcw== X0NvbG9y IHN0YW5kYWxvbmU= fVs= amQ= IGZvcmdpdmU= IG5neA== IEdlbmVyYWxseQ== IGNvbmZpZ3VyYWJsZQ== L29yZGVy IHZhcw== JykiOwo= IFJS IFRyb3k= IGNvbXByb21pc2Vk IFN3YW4= aW50ZW5kZW50 Q2VudHJhbA== X2tlZXBlcg== IGFycXVpdm8= IFJlYWRPbmx5 X2N1cnZl a3Y= ZW50aW4= 6LE= IEV5 LmltcmVhZA== IFBhbQ== aWZmZQ== YXRpdml0eQ== eGJj IGdyaW0= LWZpbGxlZA== bmFtZXNl J106 IGF1cg== IEdpYnNvbg== Lk1vdXNlRXZlbnQ= IGxhZG8= YXZhZG9j IGZhbWls IE1vZGVy ZnBz 44CA44CA LWV4YW1wbGU= IEFsemhlaW1lcg== IFV0Zg== X2FyZ3VtZW50cw== Q29uY2x1c2lvbg== dGV4dENvbnRlbnQ= cmVtYWluaW5n IGludGVycnVwdHM= IEJhY2t1cA== IE1vbmc= IHJlY2VwdG9ycw== aGlzdG9y LmNvcm91dGluZXM= IHNob3V0ZWQ= QWxhcm0= IGNvbWJ1c3Q= IGdyb3Rl dWx0dXJhbA== KGlkcw== LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0= aXBsaW5hcnk= T3B0cw== IFlhbGU= bG9jYWxTdG9yYWdl IGVxdWl2YWw= IEZsZWV0 XGI= KnBp IFFMYWJlbA== 5qE= IHZ4 IEFDTA== IHN1Y2Vzc28= IHBlcmM= IE5vdHJl IGFuYXJjaA== UmluZw== c3Bi IHN0cnBvcw== c3RvcmVz IE1hcGxl KE1haW5BY3Rpdml0eQ== KCIiKSk= IHZpZXdIb2xkZXI= UXVhZA== IGlndWFs b3JzY2hl Lm1hcmdpbg== IGluZGll IGZyYW5j IEZvcm1CdWlsZGVy IFBhcnRpY2lw LmZsYXNo IHN0b3Jtcw== VWx0 IGZlbg== W25ldw== RXZlcg== PSIK IGxvY2FsaXplZA== X2ZvbGxvdw== IG5hdmU= IGRvbWluYW5jZQ== KHRpbGU= Sm91cm5hbA== IFZD IHBlbmV0cmF0aW9u 77yV IGNvbXBhcnRtZW50 IGJpZHM= Rm9ybWF0dGVk KioqKioqLwoK KGNpdHk= 4oCUaXQ= W0M= IHVzZUNhbGxiYWNr YXVi KT8u IFZBUg== IFNlYmFzdGlhbg== IE1vc3M= IGFidW5kYW50 R3JlZw== 0YLQsA== X2Np IGJpYmxp Q1JN IEF0dGVtcHQ= aXNtZQ== ZGFzaA== 44CO X211 LkZvcm1hdHRpbmdFbmFibGVk SW5kZWVk LWRpcmVjdA== IHN1Y2tpbmc= IHBuZQ== b2NhYnVsYXJ5 IFBhY2tlcnM= Lk5hdmlnYXRpb24= IHBpZWQ= Y3JpYmluZw== IFN0dWFydA== LlRvRG91Ymxl IFNlY29uZGFyeQ== U2F2aW5n IER1dA== IE1hZGQ= TWFnaWM= LEg= LmRvY3VtZW50RWxlbWVudA== IEJTVA== IGRpZmZlcnM= IG1vcmVvdmVy X25k U0VBUkNI 0L/RgNCw0LI= 5rQ= dG9NYXRjaA== IGRlY3JlYXNpbmc= LW1lbWJlcg== YW1wdXM= KGJvb3N0 RGFpbHk= RGF0YUdyaWRWaWV3 IEh0dHBDb250ZXh0 IGhpcHA= X3dvcmtlcnM= LWxhbmd1YWdl 6ZM= IGNvbnNpc3RlZA== YXRoaW5n IE1lcmN1cnk= JGNvbnRlbnQ= IHByYWN0aWNlZA== IE1vZHVsZXM= X0RBWQ== IHdlYWtuZXNzZXM= IExvZGdl IG5hcg== IE1hdGU= IGpw IEh0dHBIZWFkZXJz IHNtbw== IFRPS0VO XSko IGFxdWk= c3dhZ2Vu IHNydg== CWFucw== QXJvdW5k IE1hbnVlbA== IGZpY3Rpb25hbA== IElNRw== IC4n IEJlcnJ5 IHdhbGxwYXBlcg== c2V4dWFs aWVybw== IOeahA== 7IaM QmFja2luZ0ZpZWxk IEFkcmlhbg== QkFTRVBBVEg= IHJlcGVhdHM= IGJsdWVz IHVucHJlZGljdA== X2NvbGw= c3RhY2xl IFR1bWJscg== IEVsZg== IGFzc3VyYW5jZQ== IGNlbnN1cw== IElNUE9SVA== RU5ERVI= YW5vcw== ID0o IEVsbGlz IgoKCgo= Lndpbg== IEFib3Zl YWxvbg== X3RpY2s= IHJlcHJlc2VudGF0aW9ucw== IOaV d2lk IEFybXM= TGlzdGE= X2ZhaWx1cmU= X2Nt LkZsYXRBcHBlYXJhbmNl IHRocm9uZQ== UGF0Y2g= IFZveQ== ZW5nbA== IG5lZ290aWF0aW5n PmA= IHNob290cw== IEZQUw== LlllYXI= IEtpc3M= ZW5jacOzbg== cmVldGluZw== RnJvbUZpbGU= IHJlc2lnbmF0aW9u 2Lc= IHR3aW5z xrDhu6M= IGdlYnJ1 LmdldENvbnRlbnQ= LlRyZWU= IEVtcGxveWVlcw== IEZJRkE= IGNlcnRhaW50eQ== KENs IHRvdGFscw== ZWRpdGFibGU= 4KWA LlJlcG9ydGluZw== TWFz cXVpZXQ= LnJ1bGVz IFZP Y29uZXhpb24= LEs= IGFsbG9jYXRvcg== IFBvd2Rlcg== XFJlcG9zaXRvcnk= QmVhdA== X3RpcG8= IFsnJyw= X0lOVFI= IDw8PA== PGhy Iik9PQ== dWdnYWdl IENyYXc= IMOpZ2FsZW1lbnQ= IGdpbmdlcg== IHByaW1lcmE= IHByb2R1dG8= bHRr LlVzZXJOYW1l IHN0cmVycm9y bWl0aA== X25i IGRpc2NvbWZvcnQ= J107Pz48Lw== UVQ= IGVydXB0 IERhbmlzaA== XEFjdGl2ZQ== X2FkYXB0ZXI= IGJ1YmJsZXM= cm9sbG8= b3Jnb3Q= 0L3Ri9GF VkVDVE9S b2NvZGU= IEJ1bGxz IGJvaWw= PiIpOw0K ZHJvcElmRXhpc3Rz IEJlZw== X0hBTA== IGNyb3NzQXhpc0FsaWdubWVudA== IEV2aWRlbmNl IHBlY3VsaWFy IGluc3RpdHV0ZQ== dmVpcw== IGZmdA== w4E= IHpvZWt0 YW5hbHk= IEhvbWVsYW5k IHBlbmV0cg== dWRkZW5seQ== CWVsZW1lbnQ= IEJyZW4= IFRydWRlYXU= IEN1YmFu amFt dXNsaW0= X2V2 IHN0ZW1z fSU= neWniw== IGJyYW5kaW5n IGNvcnJlc3BvbmRlbmNl LmpxdWVyeQ== ouWNlQ== IFJlYWRz KEh0dHBTdGF0dXNDb2Rl YXNzaW4= KHNsb3Q= IEdyYWR1YXRl Ly8vPA== IGluZm9ybWF0aW9ucw== RU5BQkxF IHB1aXM= IGZpbmRlcg== IEJyaXM= IG5ldHRzdGVkZXI= X21pZA== IG9ncw== IFN0ZXJsaW5n IGFycm9n c3RyZnRpbWU= fAoK IHZveA== IFJlZ2FyZGxlc3M= IGVzbw== IENvbWZvcnQ= LkJvb2xlYW5GaWVsZA== IHVo QUNZ IHNxdWVleg== IFZpYw== Y29udHJv Lmxv IGlyZQ== IENvbWVkeQ== 67Y= IG9yaWdpbmF0ZWQ= IHNoaXBtZW50 fG1heA== X2d1aWQ= bGV2YXRpb24= 0L3QsNGP KHVuZGVmaW5lZA== IEREUg== IHNob290aW5ncw== IExhdGlubw== RU5ET1I= IGF2ZXJhZ2luZw== IGdyZWV0ZWQ= IHRoZWF0ZXJz 0L7QtQ== IGRC IGdzdA== IGRlZmluaXRl LlN0b3JhZ2U= Lmhlcg== IGFmb3Jl IFJlYWxpdHk= IEdvZHM= dmVyc2Vk IGhhbmRzb21l IGV4Y2x1ZGluZw== KGFk UXVvdGVz IFNjaGVtZQ== P3E= IFRhbWls VGlja3M= IHBlc3Q= J24= IHBvcm5vZ3JhcGh5 X21vZGFs IC0tLS0tLS0tLS0= IGRpc3Bvc2FibGU= RlJFRQ== IHNoYXJr Q0hF IGRlcGljdGVk IGRlbW9uc3RyYXRpb25z IEtpbGxlZA== IFJVTEU= IG9ic2Vzc2Vk IHNpbXBsaWZpZWQ= UG9zdGFs IGNvbmNlcHR1YWw= IHBzdA== TGFz X1BST0pFQ1Q= dWNjZWVkZWQ= b2x1 xJ9p IHBlcnNvbmFsaXRpZXM= IHJlc2hhcGU= IGVuY2xvc2Vk CXB0cg== IHR1dG9yaWFscw== IGV4cGxvZGVk X0RJUkVDVE9SWQ== 5YaF5a65 IGNhbm9u IHJlY29nbmlzZQ== UEFE IEFwcHJveA== IFJlc3RvcmU= IEltcG9ydGFudA== IGhlYXZpZXI= LlNlcXVlbnRpYWw= RWFydGg= IE1pbGs= LnNldFJlcXVlc3Q= LnRlbQ== IHJlY29uc3RydWN0 IHNrZXB0aWNhbA== X1ByaXZhdGU= QlVG cXVh OmE= IHNlaw== IGR3ZWxs b3NzYQ== IHJld2FyZGVk 0LjQuQ== KHRvcGlj X3BhcnRpdGlvbg== IF9fX19fX19fX19fX19fX19fXw== S2V5d29yZHM= IEZyYW5jbw== TGl0ZQ== IG5ha2Vu INC30LA= T0JKRUNU IGNyYWZ0cw== IFN3YXA= LlhuYQ== LkNvbm5lY3Q= IGJhbGNvbnk= KHJlYWw= IEJhcm5lcw== Ymly IFR3ZW50eQ== YXlhbg== YXRhcnM= IFByb3BlbA== IElobmVu VXBncmFkZQ== IGN1cmI= LXNlY29uZA== IG5lcGg= LnByZXM= 7J6F LnNlcQ== IHBhZGRlZA== Ij8= amw= 44Os Jyk8Lw== IGNpdmlj Z29ucw== PmE= Q29vcmRpbmF0ZXM= IGVuYWN0ZWQ= RU5UUw== IGxhYw== LmZpbmFs IFBocFN0b3Jt Y2FsbGVk IGlucXVpcmllcw== Lm1pZGRsZXdhcmU= IERvd250b3du Lyc7Cg== IGtpbG9tZXQ= YWNjZWw= IHF1aWVu d3N0cmluZw== c2V0RGF0YQ== IG1hbmVyYQ== IG1vZHVsYXI= cmltcA== IHRhcmlmZnM= 4oCZaWw= X1RIUk9X L2NvbG9y IEhUTUxFbGVtZW50 IGNhcnJv IHByZXJl IHBsb3R0aW5n IFBvc2l0aXZl IE1hY2hpbmVz T1RFUw== 4bub cGxlYXNhbnQ= IGFsdGU= IGFpbmRh dGhlc2U= IGNvcnM= aXBheQ== IEFkdmlzb3J5 IFJ1Ymlv anE= IGxpbWVzdG9uZQ== IGRldGFjaGVk 6K6+572u dGVuYW50 IERlcHRo YWxvcmU= INGB0YLRgNC+0Lo= IEZPUkU= IExheQ== cHJlc2VudGF0aW9u KScpOwo= LnN1YnBsb3Rz z4M= Tk9X R2Fy aGFuZGxlcw== YWJyYQ== cHV0aWVz IEVsZWN0cmljYWw= TWlkZGxl cm9waWM= IEpE IER5bg== IEJyaXN0b2w= IE1jQ2FydGh5 IHN0cmlrZXI= IGVudW1lcmFibGU= IEV2YW4= LmRlZmF1bHRz cXVlbmNlcw== KXx8 CXRva2Vu 4peP LWRyb3Bkb3du U1RPUkU= IEdyYXBoaWM= KHBw RXhwbA== IHVwd2FyZHM= IERpc3RyaWJ1dGVk IFdFQg== SmVy aXNOYU4= 55Sf5oiQ PlI= w7xzc2Vu ZWZz IHVuY292ZXI= IGx1ZA== LmNhbGN1bGF0ZQ== IGludHB0cg== IG1pZGZpZWxkZXI= LkhlYWRlcnM= IG1m ZXJlZg== Lk1ldHJv IFNwZWFraW5n OmI= IGNyeXB0b2N1cnJlbmNpZXM= IGRlbW9ucw== CUVYUEVDVA== IHdpY2tlZA== eW91dHViZQ== OkludA== IEhpbmRp IENBVA== INi5 cmFy b21vcmU= L3Blcg== L2xpY2Vuc2U= IHJlaW0= IGF3YWl0aW5n IGxldGhhbA== IEVG cm91bmRlZA== IFBsYXRpbnVt INCy0YHQtQ== LmNvb3Jkcw== LkRldmljZQ== L2l0ZW0= IFdlbm4= Y29tcGlsZUNvbXBvbmVudHM= IEtpbmRlcg== LnJlbW92ZUl0ZW0= IGFuZGE= Ym5i IHByYQ== KHRyYW5zYWN0aW9u IGVtYmFycmFzc2luZw== CUJPT0w= LmNvbnRlbnRWaWV3 IGV2ZW50ZGF0YQ== YXRvcmU= IHByb3ZpZGVkSW4= aXJtYQ== IHpvbmE= X0hX 5pk= IHN0b3Zl IGNvdW50ZXJwYXJ0 X1Byb2R1Y3Q= X01BTkFHRVI= IGluZnJpbmc= IEVSQQ== X3BhcnR5 0ZE= IGluaWNp X1JlcXVlc3Q= IG1pcmFjbGU= IGNhbmNlbEJ1dHRvbg== U3B5 YXTDsw== IHBvbGlzaA== IE5pY29sZQ== LmRpc3BsYXlOYW1l XFJlcXVlc3Rz IHVzZUhpc3Rvcnk= Um91dGVyTW9kdWxl IHN0YXJlZA== SURFUg== 0YPQvdC60YbQuA== IG5vdGE= JGFycg== cGVjaWZpZWQ= IHRvcHA= X0RSSVZFUg== L25n 5aA= X3Rt JXRpbWVvdXQ= PHM= ICgqKQ== IEh0dHBSZXF1ZXN0 X1RSQUNL KG5vdGU= IEV4cGxvcmU= X3NlcnY= IOe7 QmluZGVy KyIs LmF0dA== IEV0aGk= IGPDs2RpZ28= PSdc LmxpbmVz KE9m 5bCG bWlzc2libGU= IHbDqQ== IGFjb3VzdGlj IGNyYWZ0aW5n bml0 LmJh IEx1Y3k= IGlQb2Q= IHB1cGlscw== LW1heA== X3dy KGNw IFJFUE9SVA== IGRucw== IFJlZmVyZW5jZXM= IHVuZGVydGFrZW4= IGvDuGJlbmhhdm4= IGNoYWk= IENyb2F0 X0xvZw== cm93bmVk X21lZA== CWRhdGU= I19f IGNvc3R1bWVz IFJlcXVpcmVz YWZmbGU= 54q25oCB LVNlbWl0 ZWxhaWRl 0LXRgtC+0LQ= IHBlc3RpYw== IGRyYQ== RE9DVU1FTlQ= IC4uLg0K fWB9Cg== IEF1Y3Rpb24= IERvY2s= eHh4eHh4eHg= KGdldFN0cmluZw== hY0= IGJvcmRlcldpZHRo IE1hY2hpbmVyeQ== IHByZWRpY3RhYmxl LlNI IGFtcGxpdHVkZQ== LmZvclJvb3Q= SU5hdmlnYXRpb24= VGFibGVNb2RlbA== YXR0cmli IG1hbmV1dmVy IGV4Y2F2 QkVSUw== IGRhcGF0 IGluc3RhbGxhdGlvbnM= LkFzeW5j IHJheXM= PeKAnQ== Ow0NCg== LmNyeXB0bw== X2RiZw== IEVudW1lcmFibGU= T2ZTaXpl X2Vwb2Nocw== bXc= TUVOVQ== b3V0bGluZQ== IFBhcGVycw== PT09PT09PT09PT09Cg== IHVuaWZvcm1z IEdpZw== LXBhY2thZ2U= IEplbmtpbnM= IEhvbWVQYWdl LmlzU2VsZWN0ZWQ= IG1lY2hhbmlj TUs= IFNvdW5kcw== Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo= IHJlc2VhcmNoaW5n IGluZm9z b2dyYXBoaWNz ZXJzZXQ= KFsnLw== IFRpbWJlcg== LmFnZW50 LnRvSlNPTg== X2NvbW1hbmRz cGFyaW5n X2FkanVzdA== Lm5vbWU= KGdsbQ== U3RhdHVzQmFy ZmlsZXBhdGg= P+KAmQ== IGRldGVjdGl2ZQ== IHVuc2VyZXI= IFRpYmV0 RU5ERUQ= KHNlZWQ= IHNuZWFr IGFtb3I= PSIvLw== IFBhbnRoZXJz YWxsYXg= IExJVkU= CURXT1JE XT0t IHRvcm5hZG8= L21pbg== IGx1bmdz LWN1cnJlbnQ= IEJvb2tpbmc= 5YiX6KGo IGVuam95bWVudA== 4KSw SkE= dHlwZWQ= LkJ0bg== ZmF0 dWdhbA== IFNoYXJlcw== IGRpc2dy IEJBUg== IEZPWA== T3Bjb2Rl IFN6 a2V5ZG93bg== aWN0aW9uYXJpZXM= IGRldGFpbGluZw== fSkpCg== IHBvaw== IGRlbW9uc3RyYXRpbmc= IG5vdGF0aW9u bGF5ZXJz QGlm IE5QUg== LnN0cmljdEVxdWFs IFJlY2lwZXM= LlRlbnNvcg== IGxpcXVvcg== IGRlYnRz LmVuZHNXaXRo V2hlZWw= LlBvcw== Q1NW JGFyaXR5 IHVuc3RhYmxl KGxvc3M= RU5TT1I= IGVsZXZlbg== IExvcGV6 IEhvcGtpbnM= Y29ub20= IFNldGg= IHBvZW1z UXVhbnQ= IGdzbA== IHN5cnVw IHNpYmxpbmc= IGNhc3M= LXZvdXM= w7Z0 X1BBVFRFUk4= X1NFQ1RJT04= ZXN0aW1hdGVk dXBncmFkZQ== Lm1vbmdvZGI= IEJvYXQ= X0NUWA== IGZldGNoaW5n dXN0aW4= cGllbA== TWFyZw== UmVmbGVjdGlvbg== IGR1Y3Q= IE11bmljaXBhbA== IGJ4 LkdldEN1cnJlbnQ= bWxpbms= IEFjY291bnRpbmc= IEdlbmV2YQ== X1Bvcw== IHBhc3Nlcg== IGhlYXJpbmdz Y29tcGFu IGZyYWdpbGU= SW5pdGlhbGl6ZXI= d2Fsa2Vy Lk1hdGVyaWFs IEh1bnRpbmc= dHJ5c2lkZQ== IGthdA== IGNsZXJr 4Z8= ZG9pbmc= CWdyb3Vw IHNhbmN0aW9u Lmxi IExhenk= IENvbnN0cmFpbnQ= UGFnaW5hdGlvbg== IHBvdXZleg== IEluZGljYXRlcw== TUVS IGNvdXJz IHllYXJseQ== IGdyb3NzZQ== YWJicmV2 IERPTg== IHByb2NlZWRlZA== ZW50bGljaA== IHByb3BlcnR5TmFtZQ== IFRlYWNoaW5n c3RhZHQ= IGN1dG9mZg== b3JuZXJz IGFmcmljYQ== IHJlbmRlcnM= IFlhbmtlZXM= IFRvb2xiYXI= c3BhY2Vz LmZpbGxTdHlsZQ== IHNlZ3VuZG8= X3N0cmxlbg== LkZpcmViYXNl 5aSE IG1lbnRpb25pbmc= XCg= IFZhbHZl U2V0dGVy IHNwYW5z IEFsY29ob2w= IExldHRlcnM= XHhl IFRL X0JMRQ== LmdldFJlc3VsdA== PFBsYXllcg== IFBhdHQ= IGVhc2luZw== IHR1cmtleQ== IEZlbg== Jyki IGNvbmZpbmVk IGluY2x1cw== U3VwZXJ2aWV3 KHdpdGhJZGVudGlmaWVy ZW5jaWFs IHN0dWZmZWQ= VGhldGE= IGVjb25vbWlzdHM= fSkpOwoK Y29va2llcw== IFJvb3Nl IENoZWVzZQ== IGZpY2hpZXI= IGVuZm9yY2Vk QUJC bm/Fm2Np X0FMTE9X IHJlY3J1aXRlZA== IGV4cGVuZGl0dXJl LW5pZ2h0 IGFzc2VydE5vdE51bGw= X2V4ZWN1dGU= INiv SU5ERVg= X0ZNVA== IHJlc2N1ZWQ= IE1vbnRobHk= IENvbnNlcnZhdGlvbg== IEdlYg== T2JhbWE= RXBvY2g= aWNpZXM= IE9ydA== IHNvaXQ= KGljb24= RnJpZW5kcw== bW9s IGdyb3VuZGVk IENhdXNl YWRlbmE= V0VFTg== IEx1bg== SVRJVkU= Lmxvb3A= X3VudGls IGNvcnI= LmVkZ2Vz IGh5cG90aA== Y2hlZHVsaW5n dHJhbnNsYXRvcg== INCc Um9t 44CRCgo= IFhhbWFyaW4= IHZpb2xhdGluZw== LmFuY2hvcg== LS0tCgo= IHRyYWRlcg== QURWRVJUSVNFTUVOVA== IHVuc2VyZQ== IERBTw== IGJsb25k IFBBVA== Lmdsb2I= IOi+kw== IHNwbGl0dGluZw== IHVuc3Vic2NyaWJl IGF0bW9zcGhlcmlj IFRyaW0= IGNpdGF0aW9u IGluZmVyZW5jZQ== IEZ0 IERhcndpbg== ZmluZE9uZQ== IEdlbA== KENvbnZlcnQ= IGFjY2Vzc29y O3RleHQ= KHNvcnRlZA== IGp1ZGdlZA== KTtc OnA= IG1laW5l IFNsaW0= LkNvbW1hbmRz IHBlcmNlaXZl Y29ob2xpYw== PERhdGE= LmVudHJ5U2V0 IGFzc2VydEZhbHNl IFBhdHJvbA== ZW5zZW0= xYLEhQ== qKE= V0lEVEg= IFJlc2N1ZQ== IFVJRg== X1RIUkVTSE9MRA== IE1pY2hlbA== QVRFUklBTA== b3BlbnNvdXJjZQ== IERpYW5h IGludml0ZXM= X0JPRFk= IHJlc2Vydm9pcg== IHJvaQ== Y3VzdA== KHRj 77yBIik7Cg== IGZlc3RpdmFscw== IHBlcmZvcm1lcnM= IGNsaW1iZWQ= IGp1bmdsZQ== U3RyaW5nTGVuZ3Ro IHVubGF3ZnVs aWVycmU= dmVydGlzZW1lbnQ= IHN0YWtlcw== IGhhdHM= TW9kaWZ5 IExFVFRFUg== LkhpZGU= IHN0YXR1dG9yeQ== X3doaXRl IFBlcmw= dXRlbmJlcmc= ZW1wbGU= Lldvcmxk IG92ZXJsb29rZWQ= IGNvbmNsdWRlcw== Lyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 LXdpc2U= CXN0cmVhbQ== cG9wdWxhdGlvbg== IGV2ZW50bw== IGlsbHVzdHJhdGlvbnM= ZnRz IGF1dG9m IFByb2NlZHVyZQ== IGRlc2VydmVk LXRpbWVz IGdvbA== TlNFcnJvcg== Y3Jlc3Q= IFBha2lzdGFuaQ== YW55Y2g= Z2V0Q3VycmVudA== IGxhcg== bnRs IFJlYmVjY2E= IG1hdGVyaWE= IGZpbmRCeQ== L2Fk Q2FsbGJhY2tz IEFscw== IEthdGll IE9ic2VydmFibGVDb2xsZWN0aW9u IERvY3VtZW50YXRpb24= VHlwZWQ= IEN1bHR1cmVJbmZv IFRpbW90aHk= IGxhdGVyYWw= InR5cGU= IHVuYXV0aG9yaXplZA== IHRlYWNoaW5ncw== IGRlYnVnZ2Vy W3ZhbHVl IGFsb3Jz IHV6 IHNjYXR0ZXI= IGRvd253YXJk IG1pZ2xp c3RhdHVzQ29kZQ== ICgpKQ== IE1X INC80L7Qtg== Uk9TUw== LmJ1Zg== IGZhaXJ5 IEluZnJhc3RydWN0dXJl PT4i dGxlbWVudA== JCgi RnJvbVN0cmluZw== IEJpbGQ= IGNvbnZlbnRpb25z X25hdGl2ZQ== IEluc3BlY3Rvcg== IFBpc3Q= dWJhcg== IHJlZ3M= IFBpbG90 VGh1cw== Picr IGNlbGE= Lm5ld3M= KFByb2R1Y3Q= TGl2aW5n UnVzc2lh IGZhY2V0 ZXRpY2Fs IFsnJA== L1s= IERpcmU= IGdhc2Vz IElORk9STUFUSU9O IEVhdA== IEZvcnVtcw== IENoYXJhY3RlcnM= X21ldA== IOyLnA== IGtpbmdz YWNoaWU= IExhbWJkYQ== IHRpbWVycw== IExpZ2h0aW5n IENhc2V5 YWRkaXI= YW5kZXg= LmFuc3dlcg== IEhpcA== IFByaW5jaXA= U3RhcnREYXRl IOOAjA== dHJlcw== ICYj Lk1heFZhbHVl IFByb2JsZW1z IGxhdGV4 T2ZDbGFzcw== IEx5bm4= Ly8n IHZveWFnZQ== IHNodXR0bGU= IFJvbGxlcg== IFJ1bnRpbWVFcnJvcg== dXlh RGlj CWJ1aWxkZXI= IGJ1bGx5aW5n IHNpbXBsZXN0 LmNhbGxlZA== IExS IG1vcmFsaXR5 IHN0dXJkeQ== dHJhY2tpbmc= LnN3YWdnZXI= X0JJTkQ= SVRPUg== LXVybGVuY29kZWQ= INGF IFRyaW5pdHk= IHRyYXBz IHwt IHNldFRleHQ= IGJhcmdhaW4= IGJyYWtlcw== LmdldENvZGU= IG1pZ3JhdGU= IHJpYmJvbg== KXJldHVybg== IGNoYXJnZXI= YWNvbQ== QURJVVM= IEFtYmFzc2Fkb3I= LWFmdGVy IGFubmk= CXNwaW4= Q29uY2VwdA== IEhlbmRlcnNvbg== IEhPU1Q= LnJhbms= IE5vcnRoZWFzdA== IGJlcmxpbg== IHJlcXVpcw== LmZlZWQ= IHNvdXJjZU1hcHBpbmc= IFJlbmNvbnRyZQ== LmFqYXg= bmVzdGpz IHRyZWs= IE5hY2lvbmFs ICZb IHBheWFibGU= b3J0ZXg= IGRlcHQ= ZmllbGROYW1l IGNvbXBsZXRlcw== IFJWQQ== IG9uaW9ucw== YWxpZ25tZW50 Rm9ybWF0cw== ICd7JA== SGFzaFNldA== IEJvZA== LkludmFyaWFudEN1bHR1cmU= IHNldHRsZW1lbnRz IGh5ZHI= LnVwZGF0ZWQ= dmVudGg= KHNlY29uZHM= PSIvIg== IHdlYnBhZ2U= KAoK IHRpcg== IHRvZXM= IEJyaWNr IGFtYml0aW9u UG90 PW1heA== RVRJTUU= IGRlcG90 Y2FsbHM= IE5vcndlZ2lhbg== YDo= IGJ1cmdlcg== IHByb2Zlc3NvcnM= IEFsbG9jYXRl LXRoaXJkcw== LWNoYXJ0 IGZvcmQ= Kk4= LmtvdGxpbg== IHBhcGVyd29yaw== IERFVklDRQ== JUAiLA== cmVzcGVjdA== KG1w 6auY LWlm IGN1c2hpb24= b2JvdA== IHBhcmM= U1BBQ0U= IE5ldGFueWFodQ== IHNlbGZpc2g= ZmVhdA== IGNsaWVudGVz LXRvb2xz IHBvcmNo IGpx LnZlcmJvc2U= IGxpYmVyYWxz XSkKCgo= cGllcw== Tm90Qmxhbms= KHRlcm0= yJtp X1BhcmFtcw== Lm5vcm1hbGl6ZQ== QnVsbGV0 QVNJQw== KGhleA== X2NsaWVudGU= Kyw= X0RJ IGZvcnRoY29taW5n fSIpXQo= c2Vv VW0= Pk5hbWU= IGNvbWZvcnRhYmx5 aXJlY3Rpb25hbA== V0lUSA== L3By IFBvb3I= IFZpdGFtaW4= dmlj R0g= IHByaW9yaXQ= IE5O IENsb3NlZA== pO0= IGlzT3Blbg== XENvbnNvbGU= QW5kRmVlbA== LlNVQ0NFU1M= X09QRVJBVElPTg== cG9sYXRpb24= IFRhcw== cHN6 Picu Q1VSUkVOVA== VmVuZG9y aG9zdHM= IEVyZA== PnRhZ2dlcg== IHNvdXJjZU1hcHBpbmdVUkw= IG1hcmF0aG9u X2Nsb3NlZA== IGV4ZW1wdGlvbg== IHJlY29nbml6ZXM= aWRlc2hvdw== JyQ= KCcvJyk7Cg== bWl0cw== d2Fyeg== IENoZXJyeQ== taw= bm9y cG9ydGU= IHds X2JhY2t1cA== LmdldEJvb2xlYW4= LmdldFJlc291cmNl IGRlZmluaXRpdmU= LkVkaXRUZXh0 IHPDrQ== LkNPTlQ= IFBMQVlFUg== LmNhcmRz IFNob3Jl KCcvJykK Y2x1aXI= V2ViRHJpdmVy KG1vbnRo LXJlbGVhc2U= IGluc3BlY3Rvcg== 5aM= IE5G X2NsaXA= 5a2Q IGludGVyYWN0aW5n LnRtcA== ICcnJwoK IGRlZQ== IGZyb3N0 Il0pKQo= IFBsYWNlcw== VGhyb3dz Zm9yaw== L2RheQ== aVBob25l IE1JQw== IGZvbGRpbmc= IGNyb3Jl IENoaWVmcw== cGhlcmljYWw= KHByaWNl LldyaXRlU3RyaW5n IGV4aXRpbmc= XScsCg== aWdodGluZw== SW5ncmVkaWVudA== KHZlcnRleA== IHNjcm9sbFZpZXc= aGY= Om5ldw== U0VO c2VjdG9y IHNwaW5z IFNjaGVkdWxlcg== b3RlY2hu c2VtaWNvbG9u Rm9udE9mU2l6ZQ== IFNwZWNpZmljYWxseQ== ZmxhbW0= Lk9iamVjdElk IGNvbnRh X3Blcm1pc3Npb25z CUZST00= SUNPREU= L2tn IEhvdGVscw== LW1lZA== IERpbg== IG5hdnk= Z2V0UGFyYW0= IG1lbmQ= IHBvcnRyYXllZA== IE1ldHJvcG9saXRhbg== UGFpbnRlcg== IHJlZmVycmFs X2dvb2Q= IG1hcnZlbA== b3NhaWM= Pigm LnVy IGVzdG9z V2lsbGlhbQ== IHRpbWJlcg== IHF1ZWxxdWVz IERvY3VtZW50cw== LlhhbWw= IGJhdGNoZXM= 6YGT IFJlbGVhc2Vk VGFpbA== Q09PS0lF aGVpZA== X3N0YXRpb24= IFZpYQ== U2FsZQ== IFJlcGVhdA== IHByb21pbg== IFpv LWZvcndhcmQ= IElvbg== aXRhcnk= IGp1cw== LXJlcXVlc3Q= IHByb3VkbHk= IFN0cmVhbWluZw== KE1vdXNlRXZlbnQ= IFNwcmludA== X3JvdGF0aW9u UmVwb3NpdG9yaWVz IHRhcnQ= INGB0LI= IG1hcHBpbmdz 6Ko= Q3U= Q3ljbGU= IGJ1bg== CWx1YQ== 44OJ ICgoIQ== IGNvbGxlY3RpdmVseQ== IENvbmQ= IHdzenlzdA== KGxpYg== b3BlbmhhZ2Vu X3NraXA= LkNvbHVtbkhlYWRlcg== 6YI= cGVyaWVuY2Vk j+i/sA== X3Byb3Bz IGNvbnRyYWNl IG1hdGNodXA= YWJldGlj Lm1lbWJlcnM= UkVDVA== KGRhdA== IHNvZw== cmVub20= X01ldGhvZA== Q3VzdG9tZXJz ZnVsbG5hbWU= Wk4= cmV0cnk= IGthcA== IE5ldQ== 6Io= YWRkQ2hpbGQ= d2lsbFJldHVybg== X3Blcm1hbGluaw== IGVuZXJnZXRpYw== IFdldA== IE1vcnI= IGdjZA== Y291bnRz LHR5cGU= ZGln KExvZ2lu IGNyYWNrcw== IGJhY3RlcmlhbA== IE1lYXQ= IEFybXN0cm9uZw== IEJyb256ZQ== IGFwcHJveGltYXRl X2RpcnM= bGlnYQ== xYJhZA== IGtpbmRuZXNz IGNvbnRyZQ== IEVWRVJZ TUVU IGFubm91bmNlbWVudHM= Z3Bpbw== IFdhaXRGb3JTZWNvbmRz IFBob3Rvc2hvcA== IGRpc2NvbnRpbg== L2Rk IHRvcG9sb2d5 YW5pY2Fs LmludGVyZmFjZQ== YXVjb3Vw Lkhhc2hTZXQ= QVJJQU5U KHJvdXRlcw== IFRlaA== IGh5cGU= XSIpLg== IHNsYW0= IGJyb3Ro LWludGVy IFJpZA== LW1hbmFnZXI= Q2FuY2VsYXI= IFBhZ2luYXRpb24= IHNvdW5kdHJhY2s= IHBvc3Rlcmlvcg== IHNjcnVi Y3JlYXRpbmc= LSo= aXJ0ZWVu LmR5 LnN5bW1ldHJpYw== ICIiLg== PT09PT09PT09PT09PT09 IGNoYXNzaXM= IG51bWJlck9mUm93cw== RGV2ZWxvcGVy X2JpbnM= IE9VUg== cmllYg== UHJvcw== IHdpxJk= ImQ= IGFzeW5jaW8= emVpZ2Vu X3NwaQ== LkFMTA== IHNjcmV3cw== Q2hpbmVzZQ== IGFwaUtleQ== IHVuc3VjY2Vzc2Z1bA== IFNlYWhhd2tz T1JH 56ug IHByb2Zlc3Npb25hbGx5 IENvdXBvbg== 5a2X5q61 Q29udmVudGlvbg== IHBvbHlt 5omL IHNhbHZhdGlvbg== IGVuZ2luZWVyZWQ= IFdyZXN0 IEdDQw== IHdhcm1lcg== TGF5b3V0Q29uc3RyYWludA== IGFnZ3Jhdg== U2NyaXB0cw== dmVudHVyZQ== IHJlZnJpZ2VyYXRvcg== IGlubm92YXRpb25z IFJ1bm5lcg== TklD IFJvbGxpbmc= Q29udHJvbEV2ZW50cw== IGxvb3M= cGFj CXBhbmVs ZWZl IEJ1ZGRoYQ== LS0tLS0tLS0tLS0tLS0K 5bqT KGZvcktleQ== IGx1bWlu ICg/ IEFJRFM= LHVzZXI= aW1pZW50b3M= Y29udGVudFR5cGU= YW50bHI= 6aY= IFdlbHQ= UHJvZHVjdGlvbg== bWlnaHQ= IFZJSQ== Iiwo IG9ic2VydmluZw== IGRlbGliZXJhdGU= KGNvbnRyb2w= IHdpdGhk IHNlbWFuYQ== U1RBQ0s= dWNoZW4= TmljZQ== IERldXRzY2hsYW5k IFNwZWNpZmllcw== ZG1h aXppbw== IEZhY3Rz X3BvcHVw IERpcmVjdG9ycw== ezo= W1I= INGN0LvQtdC80LXQvdGC IHBsYXQ= IGRpcmVjdGluZw== 5LiJ IEdpbGJlcnQ= 4oCmLgoK LnFtbA== IHRoZXJlYWZ0ZXI= IGRpc3Bvc2l0aW9u ZHJhZnQ= IHN1cmdlb24= IEluc2lkZXI= QmxlbmQ= IFRyZXY= dHJpbnNpYw== VG9waWNz cmlldmU= X0ZJTEVOQU1F IGF1dHJlcw== Sm9zZQ== UHJvZHVjZXI= ZXJ1cw== IHBldGl0 IE5FWFQ= IEZpbHRlcnM= IHJlcGxpY2F0ZQ== Il0pLg== IGxlbmRlcnM= XSIsCg== O2NoYXJzZXQ= Q3BwT2JqZWN0 IGZsb3JhbA== IFRpcG8= IGNpcmN1aXRz ZWFzeQ== KCYk aXR0YQ== ZXJ5bA== X0NPTU1PTg== J319Pgo= LWJhY2tlZA== KHZhcmlhYmxl KEluZGV4 IHZvaXI= X2xvY2F0aW9ucw== Kyspew== IExvdWlzdmlsbGU= IGdyYXRpdHVkZQ== Lk1vY2tpdG8= IFBvd2Vycw== aWV1cnM= IGdlb2dyYXBoaWM= cmFsZQ== IGNyYQ== IFNwdXJz aXBoZXJ0ZXh0 QUNJT04= LWNvbW1vbg== IHZpY3Rvcmllcw== IEZpbmFscw== LnNodWZmbGU= LW1pbGxpb24= X1BST0M= YXNzdW1l IGlscw== REJD Qm9vdFRlc3Q= IGxhdm9y LnRlc3Rpbmc= LmFzdA== Il0v bW9pZA== IHF1YWxpZmljYXRpb24= Z2VzY2g= CXB1dA== IGFpcnBvcnRz Skk= VGVhY2hlcg== X3VuaWZvcm0= IG5hbWE= IEJhc3Q= ZXJ0eXBl Y2FwdHVyZQ== Z2V0QWxs IFJleW5vbGRz b29sZWQ= LmNvbW1lbnRz IGNoaW4= KS4q INC40LvQuA== dGds dWRvcw== IGTDrWFz Y2hhaQ== LnByb2dyYW0= IHBzeg== CWljb24= cGhpbA== ZW50cmFs X1dSQVA= b3Zp IG5vc3RhbGc= SW5maW5pdHk= CXlpZWxk IHZpdGFtaW5z UXVhdGVybmlvbg== U2luaw== X2dvb2Rz IC4uLi4uLi4u IFdpbmdz dXJpZGFk LXN0b3J5 Il0pCgo= aWRlbGl0eQ== VHlwZURlZg== R3Rr IO2M X01haW4= IGNoZXo= IFJhdmVu IHBheXJvbGw= IGZyZWVsYW5jZQ== TExV IE1lbmQ= ZWRheQ== QXBpTW9kZWxQcm9wZXJ0eQ== LkZvcm1Cb3JkZXJTdHlsZQ== IGVjb25vbWlzdA== c3RhbmJ1bA== IGZyZWlnaHQ= LUFnZW50 KG1ldGE= IHN5bW1ldHJ5 ICcuLg== LkNhbGVuZGFy LWF1dA== Z2Y= cGVudA== eWNsb3BlZGlh IHdpc2hpbmc= CgoKCgoKCgoKCgoK IGdlbnRsZW1hbg== IOqz PSM= IGxlY3R1cmVz 4oCcSW4= ICFf IGhi IFZlbmRvcg== UmVjZW50bHk= X25vdGVz 5o+Q56S6 Ik15 SGVhZGVyc0hlaWdodA== X1NP IHVud2lsbGluZw== IHN1cGVyaGVybw== Z2lv cHN5 IFBlZXI= amF2YXg= JmFwb3M= IENyaXNpcw== b3JkaW5hbA== TWVtY3B5 KysrKysrKysrKysrKysrKw== LXZhbA== IHdvcmtib29r LWFw PWs= IG1ldGFsbGlj X3BlZXI= QnlQcmltYXJ5S2V5 X1NE dWF0b3I= X1NIQURFUg== KU1hdGg= LlRyYW5zZm9ybQ== IGNvd3M= UGhp IENsZW0= KF8oIg== IEx1ZA== LWRlbGF5 IFNlY3VyaXRpZXM= IE9ydGhvZG94 U3ltZm9ueQ== KHJlcG9ydA== IGVudGVydGFpbg== RVBT aXpvcGg= ZXh1YWw= SVJE 5LuO IGxpdGg= IHNhbml0aXpl IGZlbWluaW5l SVNCTg== LmF1dGhlbnRpY2F0aW9u X3BpcGVsaW5l L2NvbnN0YW50cw== IENPTkY= IGx1Y3I= cmljaWE= LnR0Zg== LnNldENvbnRlbnQ= IHN0YW4= b3JlYW4= IExsb3lk LnJhd1ZhbHVl IGdvcg== IEJyb3ducw== UmVncmVzc2lvbg== IGxvd2VyaW5n bmFpc3NhbmNl IGJsb3dz IGFtYXplZA== IHVucmVsYXRlZA== UmV2aWV3cw== IHJ1Ynk= IE1vZGlmaWVy IGdpYW50cw== LnRocmVhZA== IGNvbnRhaW5tZW50 IFN0YXJ0Q29yb3V0aW5l dW1hdA== b3JlbGVhc2U= IFJhbmR5 QGVuZGlm RGlnZXN0 IHN1YnVyYmFu PSIpOwo= IGFubm9uY2U= LnZhcmlhYmxl XEZvdW5kYXRpb24= IGFjcmU= VmFu IHR1cGxlcw== ZG5z IFN0YW5kaW5n X2xhcmdl IGJveGluZw== U3VwcG9ydEFjdGlvbkJhcg== IEZvcnR1bmU= IFJ1bQ== X211bHRpcGxl YXJjaGljYWw= IGZ3cml0ZQ== X3F1b3Rl IGZvb2xpc2g= IGNvbXByaXNpbmc= INC+0L8= LXNlbGVjdGVk dmY= bWFpZA== TmFtYQ== KGRhdGV0aW1l IGluZGlyZWN0bHk= Z2FydA== Zml4dHVyZXM= Y2hvcw== IEhhbG8= IHJlY3VycmluZw== LW5ld3M= dmls IE51cnNpbmc= LXByb2R1 IEhR XEh0dHBGb3VuZGF0aW9u ZW5jaQ== YXVlbg== IHZ5 b2NyYWN5 IGRlbGVnYXRpb24= IGFzcGhhbHQ= IHNldFNlbGVjdGVk a29r L3Jlc3Q= bWV0aWNz IE5TRGF0ZQ== IHRyYXZlbGxlZA== IHJlY2li IG1pbWU= Q0xJRU5U IEdV IEhBTkRMRQ== L1E= W3o= IGJvdGhlcmVk IEJCUQ== w6dhcw== X2V4YW1wbGVz X0ZJTg== IHdoaXRlQ29sb3I= IGFzdHJvbm9t LWRpcg== IHNvdmVyZWlnbg== IGJyZWV6ZQ== IGlubmluZw== IEVkbW9udG9u Z2xp LmJsb2dzcG90 anN4 IHZlcnNh IE1vaGFtbWVk LkpvYg== LXRvZ2dsZXI= INC/0L7Qu9GM0LfQvtCy0LDRgg== YXJkb24= IG5ld2Jvcm4= IG5hdmFs bm90ZXE= IHR1bWJscg== IGhlbnRhaQ== IFR5cGljYWxseQ== IGxvb3Q= LlNwcml0ZQ== RmxpZ2h0 IHdhdmVsZW5ndGg= LXNr IEVsbGU= X2V4cG9ydHM= INGP IElI aXpvcGhyZW4= IO2B X3ByaW1hcnk= IG1vaXM= IEJO IHN5c3RlbWlj IGRpZmVyZW50ZXM= SU5DVA== ICcnCgo= JHE= V2lkZ2V0SXRlbQ== Y2xpZGU= JGZpbGU= TGVtbWE= L3RhYmxl YWdyaWQ= IE1vbmdvREI= aW50ZQ== IGFwcHJlbnQ= wq1pbmc= LkRi IMOC aGFtbWVy PScnOwo= IGJyb2tlcnM= aXRsZW1lbnQ= c2VtYmxpZXM= RWxl e3g= IGxhc3RuYW1l PC0= IGZsYXR0ZW4= X2JhbmQ= LlJvb3Q= LnJlYWRGaWxlU3luYw== PT09PT09 LnJ4 Pw0K IG1ldGFwaG9y VGk= Y29udGU= IGRlYml0 IGNvbnRlbXB0 Q3BwVHlwZQ== 5pSv Rm9ybUZpZWxk cmF0aW8= b3NvcGhlcg== IGltcGxhbnQ= UFVSRQ== IGFsdGE= X21hbmFnZW1lbnQ= IHJlZmluZQ== IENoZWNrQm94 IENoYXJs LXZlcnNpb24= Y29uZGl0aW9uYWw= dmVudWVz IHJpZmxlcw== IG9mZnNwcmluZw== IG1pbGxpbmc= IHNoYXJwbHk= IHVuZGVyd2F0ZXI= KG9yaWdpbg== X0NvbnRyb2w= IC4k UGx1Z2lucw== IGRyeWluZw== IGlsbHVzdHJhdGVz LXU= IHZlZ2V0YXJpYW4= bnBj SGVhcnQ= OycsCg== Y29tbWE= dGVlbnRo YXNhbg== L3NwZWM= X21vdmVz LW1hcmdpbg== IGluZ2Vu wqDCoMKg IHByb2pldA== IG90cmE= IGJyYXM= LnV0Yw== IHNsZXB0 PXN1Yg== YWJpbGl0 cG9zdGVy IHNkaw== b3VuY2lsbA== IHdk UHJlcGFyZWRTdGF0ZW1lbnQ= IERydW0= KGF0dHJpYnV0ZQ== IEV0aGVybmV0 CURC Q2FsaWZvcm5pYQ== Y3ViZQ== W0k= LkNyZWF0ZWQ= IEhN IHRyYWNpbmc= Rm9ybXNNb2R1bGU= LXlvdQ== LmN1cnJlbmN5 ZmVlZGluZw== IHRib2R5 TGk= YWNjaW9u bmFz IHRyb3V2ZXI= Tk9ORQ== In0sDQo= IGZ0cA== V2l0aElkZW50aWZpZXI= cG9sYXRl RmlsZUluZm8= IHB1cnN1ZWQ= ICAgIA0KICAgIA0K REVTQ1JJUFRJT04= fSovCg== RnJvbU5pYg== IGRlY29yYXRpdmU= X1NTTA== KGNoYXQ= VExT IHN1cnByaXNlcw== YWxjdWxhdGU= IFNwbGFzaA== KENvbmZpZ3VyYXRpb24= IFNFTQ== aW1zb24= L2xpYnJhcnk= PERvdWJsZQ== LnJvYm90 wqDCoMKgwqDCoMKgwqDCoA== IENQRg== IFVuZGVyc3RhbmRpbmc= IGNvc21ldGlj IFh0 dGlwcw== K2s= KCIn IFBEVA== V0FS LmdldE9iamVjdA== IFRyYWRpdGlvbmFs LnNsdWc= IERpcGw= PSIiLA== IEZpbG1z IEFuaW0= LmhlbHA= IGVtYmFzc3k= IEJvb3Rz IGJ1bms= LXJpc2s= IHBjaQ== IC9cLg== IElQVA== IGNyYXNoaW5n IGlwdg== X2tl IFJFU1A= LkxvZ0Vycm9y IGluYWRlcXVhdGU= SW9u IEbDvHI= cmljdWxh IHNob3VsZEJl YWxyZWFkeQ== J10uIjwv IFN0dWZm RGlnaXRl IHRyYW5zbGF0b3I= X3Nwcml0ZQ== bGV0YWw= IG1haW9y IFNleGU= dGhhbmtz IENvbXBsZXRlZA== IGdhc29saW5l LmF0dHJz YmFnYWk= IE9yaWc= Ol0s LmxvY2FsZQ== IFJvbWE= w61m IGZhdm9yZWQ= IHZhaW4= IHNwb29u IEphaHJlbg== IG5pbmc= V1dX LGZsb2F0 X0RBVEFCQVNF Qm9vdHN0cmFw IENCQw== IENodW5r X2ludG8= IEtvbA== IGRlZmVuc2Vz b3JlZFByb2NlZHVyZQ== YmFsbHM= VGV4dENoYW5nZWQ= IHNoYXBpbmc= IH19Pg== R0VE ZmFx IG9wdGlvbmFsbHk= X0Rpcw== IFN1Y2Nlc3NmdWw= IENlbnN1cw== IGluY2FyY2Vy X0NBUkQ= IGF2aWF0aW9u IEd5bQ== QXV0aG9yaXR5 LkJlYW4= c2hhZGVy Tm90RXhpc3Q= X1RleHRDaGFuZ2Vk IFNUT1A= KHRlYW0= Ikg= d2c= IGdyaW5kZXI= IHN0cmlwZQ== IHByZXNlcnZhdGlvbg== Q2xhaW0= YXZlcnNhbA== d2FyZWhvdXNl dGFyZ2V0cw== VHJ1c3Q= IGFsbGV2 LHd3dw== b3Vzc2U= X2NoYW4= X1NpemU= c3lzdGVtcw== IG9iamVjdGlvbg== IEthbmU= IGNvcnJvcw== IERTTA== IHVh IE1I IFN0cmF0ZWdpYw== X3RjcA== IOqwkg== IGJvcnJvd2Vk IEFjaA== CWNvbW1hbmQ= IGdwcw== bGVzdG9u aWNoZXZlcg== IFVB IGFzc2F1bHRlZA== IHNwZWNpYWxpemVz CXNlYXJjaA== SG90ZWw= ICAgICAgICAgICAgICAgICAgICANCg== IFBpdGNo INmB UkVBRFk= IHBhcmVudGFs IGfDqW7DqQ== IGRvbm7DqWVz IGRldGFpbg== VEFSR0VU IHByb3RhZ29uaXN0 IGNsZWFySW50ZXJ2YWw= IEljb25CdXR0b24= IEdldEFsbA== VHlwZUluZm8= RUg= 4oCcVGhleQ== IHtb IGdhZw== INqp IERyb3Bkb3du LmZyZWU= Z29uZQ== aW1lbnM= IGluc3RhbA== CWN1cmw= X0NBTg== IEJvbmU= 77yU b255bXM= LWdvdmVybm1lbnQ= LmJpbmRpbmdOYXZpZ2F0b3I= IERhbnM= IE1jTA== KGVu Pihf 0JLRiw== Lio7DQo= PWo= LWNvcg== U29u LlRvb2xTdHJpcEl0ZW0= LWFyb3VuZA== X1hNTA== ZW5kRGF0ZQ== IHNsYWNr IHJvdGF0ZWQ= IG5vcWE= IGNvdHRhZ2U= IGVuY29udHJhcg== X3NraWxs aG91ZXR0ZQ== IQ0K LndlYXRoZXI= IGVtcGhhc2l6ZWQ= 5a62 INGB0L/QuNGB IENvbXBpbGVy KGFuZHJvaWQ= IOKAug== LnR1cm4= IHN1cHByZXNzaW9u X2NhbGxz ICpA KHN0cmxlbg== LmhleA== IEJpbGxz IFJTQQ== z4I= IEVzY2FwZQ== ZW1lbnRpYQ== IGZyb250ZW5k IHBpbnQ= X2V4Yw== enpv W10sCg== ICInLCci LkVudmlyb25tZW50 IGFmb3JlbWVudGlvbmVk IGVuZHVyZQ== cHJvdG90eXBl dGhlcmFweQ== c3Np RGVn X3BsdWdpbnM= LnVzZXJJbmZv UHJpbnRlcg== IFBST0dSQU0= IHJ1aW5z IGVtcGlyaWNhbA== IGNyYXds IEJvaWxlcg== LWNvbW1lbnQ= LnN1YnBsb3Q= X2V0 ICcuJyw= bWlub3I= IEN1c3RvbXM= IHlhdw== dW5kZXJsaW5l IENvbW8= KCgn KG1lYW4= IGNoYXF1ZQ== IEJsb2Nrcw== LnJhZA== aWxpYnJpdW0= IHdlYmRyaXZlcg== IG1lbGhvcg== ZGFuYQ== IEFidXNl IFNvdXRod2VzdA== IFBhcmVu UEVSVElFUw== CUlM IHNjcmVhbQ== dnU= IGluY29tZXM= IG5pbQ== IGxhY2U= IGNvbXBlbnNhdGU= UmV2ZXJzZQ== RGF0 X2F0dGFjaw== IG5vdXI= YWNoZW4= Y2Vr PEZ1bmM= d2ll Y29tcHJlc3NlZA== LW1hdGNo KCIiKV0K aW1pemVk Lm9yaWVudGF0aW9u LmNvbXBhcmVUbw== IG1hc3NhZ2dp IOychA== IGVsYm93 IGFudGlveGlk dW5kcmVkcw== L3Rvb2xz IFJPVw== YW5tYXI= IFdvdw== X3RpY2tldA== UHJvZ3JhbW1pbmc= IHRoZW9y LXJldmlldw== KCkpKSk7Cg== IFJpY2hhcmRzb24= IFBvY2tldA== XVtd YW1wcA== X2hlYWx0aA== IFBPUA== IE5hdmFs R3Vlc3M= IGFuY2VzdG9y LkdldEFsbA== LmxvY2FsU2NhbGU= IE1hcHBlcg== IGFjY3VtdWxhdGlvbg== IHNpbXVsYXRlZA== IERyaXZlcnM= IGTDqXM= Y3VycmluZw== IGVsZXBoYW50 IGFkdmVydGlzZWQ= IG1haWxib3g= U0hJRlQ= IE1vbmljYQ== IGFuYw== IHdhcmRyb2Jl SW5ncmVkaWVudHM= IHx8DQo= aXBweQ== IGFudGliaW90aWNz YXZpbmdz KGN4 IEZlcnJhcmk= IEFuaW1hdG9y LmR0eXBl cmVtb3ZlZA== b3JkZXJieQ== IGNyZXM= b2PDqg== IHB5bQ== IENpcmN1bGFy QGluZGV4 IFdhcm0= U2F5 IEFzc2lzdGFuY2U= IGN1cnRhaW4= IE1vbnRl SUxFUg== IENWRQ== IER1Y2s= IEFsbG93cw== X2ZpcmU= IERlcmJ5 IHJlcG9z IGh0dHBDbGllbnQ= IHBzeWNoaWF0 IG5vd2FkYXlz IGNhdXRpb3Vz IENvbXB1dGluZw== IGNvbXBsZXRpb25IYW5kbGVy IFdlbHNo IEJFU1Q= IHN0cmVzc2Z1bA== X1BF 5pel5pyf IERhdGFGcmFtZQ== CUludGVnZXI= X1ByaW50 TW92ZXM= IHRyYW5zZm9ybWluZw== LkJhdGNo eWFob28= UG9zaXRpb25z emVq IG5vb2Q= aW9yZXM= Xyo= IGNsaw== IEZsb3lk IGhhcA== Zm9udHNpemU= IG5heg== Lm5vdGlmaWNhdGlvbg== IERlcHJlc3Npb24= IGFjbmU= KioqCgo= ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCg== LmNvbnRlbnRz eW50aA== IFN0cmFpZ2h0 Jyl9fSI+PC8= IGJ1bGI= Ulg= Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K IGNvbXVuaWM= IFJO LW1lZGl1bQ== TEVBTg== PWxlbg== UGhvbmVOdW1iZXI= ZXJ2YXRpb25z QWNjdXJhY3k= IEFubm90YXRpb24= X2tleXdvcmQ= X2hpbnQ= IEF0aGVucw== IGFzc2lzdGluZw== IEhD LkluaXRpYWxpemU= JykpKQo= dXBh IHN1aXY= IElQQw== PFRFbnRpdHk= IGJyYW5kZWQ= b29tbGE= bGFyxLE= IFhNTEh0dHBSZXF1ZXN0 IGTDqWrDoA== IHRyYW5zY3JpcHRpb24= IHByZXZhbGVudA== LnBsYW4= IHN0YXJl IHdvcmtvdXRz IEVkdWNhdGlvbmFs IG1lc3N5 IE1PVA== LkNvbW1hbmRUeXBl UWVk KGdjYQ== IExpbmVhckxheW91dE1hbmFnZXI= IEJsb3c= IEFsdW1pbnVt IHN3aW5nZXJjbHVi IFRyYW5zaXQ= IGV4cG9z dmly KHNlY29uZA== IGJlbG9uZ2Vk U3RvbmU= 6ZW/ IFN1bA== IGdpZA== IGFsbG95 ZXJ2YQ== aXNlY29uZA== X1JFTkRFUg== IGFuZ2Vscw== IFBoaWxvc29waHk= b3B1cw== IG1vbw== ZW5ndWlu X1ZBUklBQkxF X0RFU1Q= KGF1eA== IGhvZQ== IGRvYg== YXR0YWNobWVudHM= IGNvcnJpZG9y IGRpdmlkZW5k nbw= IFRocm91Z2hvdXQ= Lm9wdGlt JG5ldw== IGJlcmc= IHNwcmVhZHNoZWV0 LlRyeUdldFZhbHVl IHBheW91dA== IE9uRGVzdHJveQ== YXV0aGVudGljYXRpb24= IE1pZ3VlbA== cnRj IENocmlzdGluZQ== IEFJUg== IGp1cmlz IGRlc3BhaXI= IHBhdGVudHM= LWhhcw== JV4= 5LuY X3N0cmR1cA== IFJlYXI= ZXR0ZXM= KHByb3BlcnRpZXM= IHdyaXRhYmxl LmlzTnVsbA== b2xpY3M= X2Jsb2I= IGN1YWxxdWllcg== YWZp b3d5Y2g= 6I635Y+W w4c= IENhcmRpbmFs IHRlbWE= IkFuZA== UGFnZVNpemU= 56eS LlNpbXBsZURhdGVGb3JtYXQ= IFdpbm5lcg== IGNvcnJlbw== X3dl LmFkZE9iamVjdA== KGNvdXJzZQ== IGhvZw== b3Bybw== IHByb2JhdGlvbg== dW5hYmxl KGFjdGl2ZQ== 5Zu+54mH IHBlcnRhaW5pbmc= IGVtcGhhc2l6ZQ== IFByaW50ZXI= PS4= IHVwZ3JhZGluZw== L2NvbnRhY3Q= PVtb LXNhbg== CXZhbHVlcw== IGRvc2FnZQ== U29saWQ= IFJvb3NldmVsdA== 5ZWG5ZOB IHJlY3JlYXRpb24= IFRlcm1pbg== LkJhZA== IEJvbHQ= U2t5 X0ltYWdl IHNxdWly IENvYg== T1JO IGF1Yw== LkxFRlQ= J0I= LXJlc2lzdGFudA== PiIr IHRva2VuaXplcg== IHNvdmVyZWlnbnR5 IFBlbmNl KCkiKTsK IHBlc3NvYXM= Lkdl IEluY2x1ZGVk IHBhZ2luYQ== IGV4cG9zaW5n 0LXRiA== X1NDUklQVA== LyQnLA== VGh1bWJuYWls 15Q= d2ViRWxlbWVudFg= d2ViRWxlbWVudFhwYXRocw== cHJlc3N1cmU= IEN1cnJ5 X0NQ T0xVVElPTg== SUxFUw== cHJvdGVjdA== b29sYQ== V29ya3NwYWNl e307Cg== IFVOUw== IHN5bXBhdGh5 cm9rZXI= IHJlbW9kZWw= CWNlbGw= IGF0b3A= LkZ1bGxOYW1l IGZhdXQ= IEVhc2lseQ== X2R5bmFtaWM= IGZyYW1lZA== IG1vdGl2ZQ== 6Lev c2Ft IG1hcmNh IFRleHRFZGl0aW5nQ29udHJvbGxlcg== IGRlc3RydWN0b3I= Y3JlYW0= IHJ1ZGU= IEJvbGQ= IEluZGlnZW5vdXM= IGdlbnM= IHJlbGFjaW9u KHN5c3RlbQ== IFVJRm9udA== X2NoYXJnZQ== VVNURVI= RVY= Lk5hbWVzcGFjZQ== IG1lcmdlcg== IGNhbGxvYw== Z2FuZw== QmFkUmVxdWVzdA== IHNwZXI= LWRlc2lnbg== IOKH Q2hhbg== IG9yZ2FuaXNt LCk= PWlk X3BsYW5l IENhc2Vz ZWxmYXN0 IExlZ2lzbGF0dXJl IEZha2Vy IGludm9raW5n LXV0aWxz KCkuJw== LmZhY2U= IGd1YXJkaWFu bXlNb2RhbA== IGNsaXBib2FyZA== IEFUTQ== IHBlYXM= IFN5bHY= LmNhbGM= IENvbnRhY3Rz aW50VmFsdWU= IG1vZGlmeWluZw== IEJhcmI= Lmxvc3M= X3BlcmNlbnRhZ2U= QXNrZWQ= KGxzdA== YXRlZ29yaWNhbA== LWZpbGVz IFJvbWFuaWE= LkFj IGhhaQ== IEZseWluZw== IMW8 anA= IFRyYWluZXI= LmFyYw== X2RlZw== IHRyYWNlYmFjaw== T3JGYWls RkxPVw== Lm9sZA== b3lh Z210 aXNlbXB0eQ== IHZhY2NpbmF0aW9u IG9ic29sZXRl cmVjb2duaXplZA== IHJ1aW5lZA== IFJlaW4= IFRyYWNraW5n eGZi 2KfbjA== IHbDpnJl IGJyeXN0ZXI= IElUUw== IGRlc3Rpbnk= IHN3ZWFy IHJlZGVz IGNsZg== IGZsaXBwZWQ= CWhlYWQ= Qmx1ZXRvb3Ro IE92ZXJyaWRlcw== OkJvb2xlYW4= Xz0= X2xy c3Bhd24= OmluZGV4 VkFMVUVT aXNrZXk= PyIpOwo= LnN5bnRoZXRpYw== IENoZWNraW5n c3RydWN0dXJlcw== aXBpbmc= IHZvY2Fscw== LVVw IE1hbnVmYWN0dXJlcnM= IE1hcnJpYWdl 5Luj56CB IGdhcm5lcg== X0NsaWVudA== cGFyYWxsZWw= UklFTkQ= IHZpbmVnYXI= c2VndWU= SkI= IGNvbnRhY3Rpbmc= IENhcnJvbGw= IG91dHJlYWNo dGVuc29y X3ZhcmlhbnQ= IHRoZWF0 bGljYWJsZQ== e3w= dGlueQ== X2xldHRlcg== IHBlbmNpbA== SGVhZGVyc0hlaWdodFNpemVNb2Rl aWx0cm8= LmF1dG9jb25maWd1cmU= LmRyYWc= LnVzZVN0YXRl IEJNSQ== aGludA== Q29tcGlsZQ== Klw= ZW5hcnk= IGx2bA== LkNhY2hl Kz0i X3R2 cnVpdG1lbnQ= IGZyZWFk QXJ0aWNsZXM= ZmlsYQ== IHBhY2thZ2Vk 4piG QVRIRVI= IFBsYW5uZWQ= c2NoZW1l IGRpYXJ5 IG9mZmVuc2Vz Lzw/ ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA== UHJvZ3Jlc3NIVUQ= IEdvcg== LmdldFRpdGxl IG1vY2tlZA== IFRvcnk= ICIpIjsK I2c= IGxpZWQ= IHN2Yw== X2d1aQ== RU5UUlk= IHNlcnZpY2lv bW91c2VvdmVy U0FDVElPTg== 44Kz IHJlaWZl bGVjdHJpYw== X2NyZWF0aW9u UmVhbGl0eQ== KCcr cHJvZHVjdElk U3VwcGxpZXI= LUxl LnJlcG8= dWNraW5n X1N0cg== IFJlbGF5 0LjQuA== IHBlcnY= Q2hpY2Fnbw== IG1haXNvbg== IHN0aWNrZXI= X3ByZXNzZWQ= U3dhcA== IElH IHN1c2NlcHRpYmxl b2NhZG8= IGdpbg== ZXhl aWdoYm9yaG9vZA== KWA= IGRpYWdyYW1z IGluZmxhbW1hdG9yeQ== IHTDqQ== IFBvcHVw IGFwcHJlaA== IFBvcnRmb2xpbw== IHdvcnM= LmVudW1z 0LXQs9C+ L0J1dHRvbg== IFBoYW50b20= ICM6 IGRpaw== cGFnZXI= ZnRhcg== IG9yZ2FuaXplcg== KGNoaWxkcmVu IE11bmljaA== IHN0cmFuZw== IFJX 44K/ TWFo cHRpZGU= IGxlYXJucw== IHJlZHVjdGlvbnM= IFJlcGxhY2VtZW50 T1RT YWxjb24= KHBhcnRz YmFzaA== IENpdGl6ZW4= jbDsnbQ= IEh0dHBTZXJ2bGV0 X1NDSEVNQQ== bWVhbnM= IGhvcnJpZmlj VkVSSUZZ IERDSEVDSw== ICgv LmJlZm9yZQ== LnRleHR1cmU= Z2V0TW9jaw== IFNlbnNl SW5zcGVjdG9y VGV4dE5vZGU= KEFM LmdldE5vZGU= IGJveWM= IEJyaXNiYW5l IGJhdHRsaW5n CXR4 IGxvYmJ5aW5n YnVpbHQ= IFNFRUs= IHJhbmRvbWl6ZWQ= Z25p X2NsdXN0ZXJz X2lkZW50aXR5 IGNhcmRpYWM= IG5ld1VzZXI= LlZpZGVv ZHVpdA== XWluaXQ= QXRs KXZhbHVl VGV4dFV0aWxz INC10YHQu9C4 Q29tcHV0ZQ== PSgn CQkgICAgICAgICAgICAgICA= IGFydGVy IFRXTw== JykpLA== IERJVg== IHByaXZpbGVnZWQ= IFBhcnRuZXJzaGlw IEhlYXRoZXI= YmF5 YXRpc2ZpZWQ= aW5zdGFncmFt X1NlbmQ= IEFTRg== JG5hbWU= IGJvbw== IGTDqWY= X0ZpZWxk IEVkdQ== Y2FuZGlkYXRl cnVieQ== IGFjY3VtdWxhdGU= KEludFB0cg== IGJ1c2luZXNzbWFu IGVjb25vbWljYWxseQ== IFJpbmdz IElucHV0cw== uYQ= YWNpZQ== IEFsYXJt IExvZ291dA== LnNlcXVlbmNl IFZpZW5uYQ== b3By IGRydW1z PWNvbmZpZw== cXVp IGRhdG8= IHBvbHltZXI= IENoYW5nZWQ= V2ViUmVxdWVzdA== IEFkdmFuY2U= IHVuZGVyZ29pbmc= LkNvbnNvbGU= IGN1cnJlbnROb2Rl IFdvb2w= IHDDoWdpbmE= UkVHSVNURVI= IHNhZ2E= IFlPUks= YW1hbmhv 5a6M IEJ1bmRlcw== IERpYWxvZ0ludGVyZmFjZQ== Z2VvaXM= dW5jaWF0aW9u PyQ= LkFzc2VydGlvbnM= IHNlYXRlZA== IFNweQ== UG9zZQ== IkM= IGFob3Jh INGE0LDQudC7 IOuzgA== IHdhcnA= UHJvamVjdGlvbg== IFNpbmdsZXM= IEFkdmVydGlzaW5n TGludXg= dXN0eQ== IHBlbmFs VVNJQw== b2RpYQ== Lm5ldGJlYW5z IFVn IEJyZW50 LWxvZw== L2NhdGVnb3J5 IEN1c3RvbWl6ZQ== aXJlbg== 77yaPC8= aW5hcnM= ICgrKw== R29pbmc= RVhFQw== KG1lc2g= IHBlcmltZXRlcg== Q2xz Y2VpdmluZw== bWVuc2FqZQ== KCkpKXsK IHByb3N0YXRl X2J1eQ== IFJvb2Y= LlJldHVybg== IG1hcnJpYWdlcw== X3RodW1i 574= 4K+N VGV4dHVyZXM= KFRFWFQ= c2hvcnRjdXQ= VHJhbnNmb3JtZXI= QVRJQw== IFNub3dkZW4= c2NyaWJlcnM= bWFya2Vk IOKGkQ== aG9yYQ== T1BFUg== IEZZ IEF1dGhlbnRpYw== IGF1ZGk= cmFtZXI= IExpdGVyYXR1cmU= IGl0ZW1JZA== LkF0dA== KGNudA== IEtT LWxpbnV4 IFBhcnRpY2lwYW50 IENydWlzZQ== aXR1bG8= dXN0cmlhbA== IGNsYXNl ID0k X2RhdGVz Y3VycmVudFBhZ2U= aXhh ZXhhY3Q= IHRzbA== LlNv L2RvY3VtZW50 aGFydA== X0lETEU= e30u eWV0 SXJvbg== IFRocm9uZXM= c25k XHhh IGJldmVyYWdlcw== X3RyYW5zcG9ydA== IGZvaWw= IHRhc3Rpbmc= IGdvZWQ= TWVtbw== IG5pdHJvZ2Vu Lk1lbWJlcg== LmZsYXQ= IGlsbHVt bWluZW50 Lnpvb20= IFB0cg== b2Npbw== IENvbnN1bHRpbmc= IENvbmU= CWl0ZW1z IExN IG9hdXRo IFByb2dyYW1tZQ== b2Nob25k KHNlbGVjdG9y IHdhdGVycHJvb2Y= IE1lcmtlbA== IHN1ZmZlcnM= IG5wbQ== 6LGh IExhbmRpbmc= IExBTg== CQkJCQkJDQo= L2lz IHPDqXJpZQ== IEdVSUxheW91dA== Z2l2ZQ== X0NZ QnJvd3Nl Lm11bHRpcGx5 PSIkKA== dXNv LXBhcmVudA== Lk1hdGg= Lm51bWJlck9m IHRpZW5lbg== IHJlc2VudA== IHBpdGNoaW5n Il0pLAo= LlV0aWxpdGllcw== IG11bHRpcGxpY2F0aW9u OnR5cGU= IHBwcmludA== aWFuaQ== 5YiZ IGxhdW5jaGVy IHJ1Z2J5 546w CgkJCQo= aGlk QW5nbGVz IGdvb2RieWU= IGlucHV0U3RyZWFt LndhdGNo R29vZHM= IFNheXM= PkY= IFN0aWNr IGNlcmM= IFNsZWU= CQkgICAgICAgIA== PEltYWdl IOiuvg== LWVkaXRvcg== cGllY2Vz IERyYW1h IC8vLy8vLy8vLy8vLy8vLy8vLw== IFRhc2tz QVJD Z2F0ZXdheQ== LmdldGN3ZA== Lk1ldGFkYXRh IGd1ZXNzaW5n 5Zyw5Z2A IHNtYXJ0ZXI= IEdldEVudW1lcmF0b3I= IGVmdGVy L29wZXJhdG9ycw== IEdMZmxvYXQ= IGbDuHI= IG9wYXF1ZQ== 5L+d5a2Y U3ByZWFk U1lTVEVN IGludmVyc2lvbg== IEJhc2tldGJhbGw= IHNpbXVsYXRpb25z IGRlbmllcw== IGF2ZXo= X2xpc3RlbmVy IGVuaGFuY2luZw== IE15dGg= IExha2Vycw== X01E TmRFeA== REFUQUJBU0U= IHThuw== YXJ0aA== W2xlZnQ= IGNvbnRlc3Rz c3RpbGU= KEtFUk4= X2Zj X3Bt IHByZXNpZGVudHM= IGhvc3BpdGFsaXR5 IGZhZGVJbg== Uk9QRVJUWQ== X21hcHM= IERlZmluaXRpb25z IGFzc2Vzc2luZw== IHVzYXI= IHF1YW50aXRhdGl2ZQ== bW96 QmVhdXRpZnVs Wygo Ym9ucw== ZnJlcXVlbmN5 Q29udGFpbg== IHB1enpsZXM= IENhc3Rybw== IHZpbGxh IGtpbmRseQ== Rm9udEF3ZXNvbWU= ZXJuYQ== ZXBvY2hz X2RhdGFz CWlw LnBhZGRpbmc= IENvbnRlc3Q= IGVkaXRpb25z IGRpc3Byb3BvcnRpb24= IElDTw== IGNvbWViYWNr PXZhbHVl cmlhZA== LXNvcnQ= U3VibWl0dGVk KG5ldHdvcms= IENlbA== IGluc3RhbGxtZW50 bGFzaGVz Lkxpc3RWaWV3 IFZhdGljYW4= KE1lZGlhVHlwZQ== SVZFRA== cmVhY2hhYmxl Oklz IENJVFk= 5Lqs IEhlbHBmdWw= IGJhxZ8= JQ0K IHBzeWNoaWF0cmlj IHJlY3ljbGVk Rk9STUFU IEdyb3c= YmluZQ== R2l0 LnNz IFdlYXBvbnM= IFN0eQ== X2Fycm93 KnNlbGY= aXJlbWVudA== IGRlZ2xp QXBwRGVsZWdhdGU= X2Jhbm5lcg== IGNvb3JkaW5hdGVk IFdlYmNhbQ== IGNlbGVicmF0aW9ucw== LmFjdA== KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KHNob3c= IHdlZWtkYXk= IGNvbmNlcnRz 0L7Qu9C9 Y2xpbg== IGNyb24= IE5pbQ== LnNldFZlcnRpY2Fs IEVsbGVu 2LPYqg== IFNBTQ== RWZm Z3o= c3RlYW0= IGFudGlxdWU= cGh5c2ljYWw= IEZvcm1EYXRh LnNldHRlcg== IFBPSU5U Qm9u IGZsYXZvdXI= ZXJ2ZW50aW9u X0VOVElUWQ== CSAgICAgICAgICAgIA== IGludHJpbnNpYw== IOaO YXBwZW5kVG8= YXJhbWVs KV0p IFJlY29tbWVuZA== KW0= T3V0T2ZSYW5nZQ== IGtuaWdodA== IHNhdGVsbGl0ZXM= IFRpdGFucw== IHdlaWdoZWQ= IERhbmE= ZWFzZQ== IHNpcA== U0lN IERldmVsb3BlcnM= bWFsaW5r L2NoZWNr X1BMTA== bnVuZw== IGRyeWVy PUE= LmR3 X1NRTA== IHN1YnBsb3Q= RFJPUA== IHByb3RvdHlwZXM= IGhvdXJseQ== ZGlzcGxheU5hbWU= IGFzaQ== IFZpb2xlbmNl IGFzdHJvbmF1dA== IGRhdGF0eXBl IGluZm9ybWF0aW9uYWw= IGludmVzdGlnYXRpdmU= ZXRlcm1pbmVk cmVuYWw= Oyc+ CWNvbA== Vkc= X2Jvb2xlYW4= cmVjZW50 ICopCgo= IFJhaW5ib3c= b21tZW4= IGx1cg== IG9wcHJlc3Npb24= KCIsIik7Cg== IEZhY2lsaXR5 REVGSU5FRA== IG5lb24= IG9mZmVuZGVy QUZQ IENsZWFuaW5n W10pOg== IHVuZG9jdW1lbnRlZA== LlJlcG9zaXRvcmllcw== IEd1aXRhcg== 0LDRgdGB0LjQsg== U2tpbGxz IHRlc3RpbW9u cnlwdG9ncmFwaHk= IEFtYmVy IFN0YWxpbg== IGxvbmU= IGFwZW5hcw== IGRpZXNlcw== IEFyZHVpbm8= 6L2s PT0t X0FjdA== IGNvZGVk 4pag YW1idXJnZXI= LWxpbmtz IGFybW91cg== LkhpZ2g= Z2V0Q29udGVudA== c3RhZw== IGhlY2s= IOyXhg== IE1jQ29ubmVsbA== IENvbmNlcnQ= IEFsbG9j w6RyZQ== LnJlcGxhY2VBbGw= IHBhcnRpdGlvbnM= cm90dA== IEZsZQ== X1RSRUU= cmVhc29uYWJsZQ== IFJlcG9ydGluZw== IGJpbGxpb25haXJl c2NvcmVz bWlucw== LWV5ZQ== TU9SRQ== YWJvcnQ= IFNXVA== IGludmVydGVk IFRlYWNoZXJz O24= IGFzdHJv 0L3QvtCy 0LDQvdC40YY= cHJvZHVjdG8= Y291bnRyaWVz IE93ZW4= IGNvbnRhbWluYXRpb24= IHZpYmU= IEVsbGk= LnNjcmlwdA== IE9saXZl RE1B dmllcg== OnNlbWljb2xvbg== LW1vZHVsZQ== Z3Jlc3NpdmU= YWd1 X3BsYXllcnM= IHJlc3VsdGFkb3M= c3RhcnRlZA== c2Nyb2xsVG9w PT09PT0= IHdlaWdoaW5n IFtbWw== emFobA== KE5T IEFzc2VydGlvbg== bGVhZ3Vl LnNldFRleHRDb2xvcg== CU1lc3NhZ2U= IG1vbXM= X0FG Lndo QUxT IGF1dHJl XQoKCgo= Lm9wYWNpdHk= IEJ1ZGRoaXN0 IGRlYWY= IE9yZ2FuaXNhdGlvbg== KEdsb2JhbA== ZW5zY2g= IGhlYWRhY2hl IEFsaWVu X2lub2Rl IFN0YXJr IOaJ LWxuZA== b3JlZg== X2ZlYXQ= IHBlZGVzdHJpYW4= IG5vbWluYWw= IGJhbGxvb24= IHNwcml0ZXM= UHJvdG90eXBlT2Y= IEFwb3N0 IEZFQVRVUkU= T0g= IHJlY2Vzcw== IERvbm5h Y29uc3VtZXI= JEdMT0JBTFM= IEdJRg== LWZyYW1l SW5pY2lv IHBhc3NhZ2Vz RGF0ZVN0cmluZw== ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA== LmJ5dGU= QnVn aW5pdGlhbGl6ZXI= cGt0 b2RpdW0= IERFUg== Lm9wcw== bGVyaQ== IGdpZnRlZA== IGRldGFjaA== dGVycmFpbg== ZWx0ZXJz 44GP LmxvYWRlcg== IE5HTw== c3RybmNtcA== S2g= KGZvbnRTaXpl cm9ja2V0 IHByZWNlZGVudA== IEF1cm9yYQ== IEV4cGVyaW1lbnQ= aXNwaGVyZQ== RW5jb2RlZA== IOKAkwoK IHB5cmFtaWQ= IEFubml2ZXJzYXJ5 b2ZpbA== 658= KHBsdWdpbg== Q29lZmY= IGNvb3BlcmF0ZQ== IHByZWRvbWluYW50bHk= SVNN UGhyYXNl X0RFRklORQ== RmxpcA== QU1JTFk= IE1hcmtldHM= IFN0cmVhbVJlYWRlcg== IENvbWJpbmU= IG1hbnVzY3JpcHQ= enph LHRw V2hhdGV2ZXI= SVRJQ0FM aWdoYm91cg== RGF0YVByb3ZpZGVy LlRleHR1cmU= cHJpdmFjeQ== LlNESw== IHJlY2hhcmdl IGNwcA== IENGRw== KGhvbGRlcg== KHB5 bW90 IHNhdm9pcg== IFJvc2E= IFBDcw== IO2Z Lmhlcm9rdQ== IGZyZW4= IFJpbGV5 YWdhdGU= IHNvbmQ= Lnhsc3g= IGhhY2tlZA== c3RhZA== R2k= IHNhbml0eQ== IFNxbERhdGFBZGFwdGVy Li4uIiw= IFB1c3N5 ICoqKioqKioqKioqKioqKio= IGhhc3NsZQ== X1BBUkVOVA== IFVBRQ== IGJlZ2lubmVycw== KENsaWVudA== IHN0YXRpc3RpY2FsbHk= LmhvdXI= ZWRlbHRh IHRyYWN0aW9u dWVsdmU= YXJhdA== IHNhdW5h SU5WQUxJRA== IGluZGljdG1lbnQ= QUxMRQ== IGRpc3NlbnQ= IFR5cG9ncmFwaHk= IGludGVudGlvbmFs c2l0 IEFuaW1hbHM= IGNvdW50cnlzaWRl IHVhcnQ= fVwi IHNlYW1sZXNz vuekug== IGF1dG9z ICInIjsK Rmx1c2g= QU5OT1Q= IGFsZ2VicmE= YXNzb2M= IFdhdGVycw== IHByZXBhcmF0aW9ucw== cm9ueW0= Wyxd U2Fucw== IGFybWllcw== aXBlZw== IGNyZWFteQ== LmFydA== ZXRyZQ== IEFuaW1hdGVk IHVucGxlYXNhbnQ= ZW1lYW4= Z3JlYXQ= acSF IEVhcmxpZXI= IGNoaWM= IHByZXNlcnZpbmc= KGV4ZWM= IEludmVzdGlnYXRpb24= CUdQSU8= IHJpZ29yb3Vz aWpv PW51bQ== IHRvb2xTdHJpcA== KXNldA== KyIm IEFjY2VsZXI= IGRldmVsb3BtZW50YWw= aXNwb3NhYmxl IGZsYXdlZA== cmVuZQ== VXBkYXRpbmc= IHdhdGNoZG9n IGRlbm9taW5hdG9y IHN1YnVyYnM= IC4uLik= IGNvbnZpY3Rpb25z Y2xvc3VyZQ== LklQ IHRyYW5zbGF0ZXM= LnN3dA== LlRyYWNl IG1ldHRyZQ== LmlzRW5hYmxlZA== IEVmZmVjdGl2ZQ== LnRvSW50 IGVuY2hhbnQ= IHN0dW5uZWQ= IHBvaQ== L2NvZGU= YWRt LmRhdGFiaW5kaW5n IExvcmVt X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw== IGxlZGdlcg== IGNhcmE= IEdpcg== IHdhaXRz VW5v IGN3ZA== 6L6R IFRSZXN1bHQ= IHJlam8= IGVtaXR0ZWQ= IFdlc3RtaW5zdGVy 5LiA5Liq bmVr X1Rpcw== IGVuYWN0 CXdpdGg= b3JnaWE= IGp1ZQ== UGVyZm9ybQ== U1BBVEg= LnRvcGlj IERhdGVu 4bqn IHNpdGlv X01N IlNv YmlhbA== IHNjb3BlZA== UmVxdWlyZXM= IFRPVEFM IENoYW5jZWxsb3I= KGNvbnRlbnRz IHN0ZWFsdGg= ZGV2aWNlcw== LXBhc3M= aWxpaA== IE1hbGNvbG0= IERlcG90 IGNvbmZpZ3Vy YXVzc2lhbg== X2NvbnN0cmFpbnQ= 0LLQtdGC R1JB IFJhdGVz LmRhdGFHcmlkVmlld1RleHRCb3hDb2x1bW4= IE5vYmVs aXRpY3M= IGlnbm9yYW50 IFJlcG9ydGVy IEVib2xh IFNob2Nr X3JlbGF0aW9u IE5pbmph KWM= IHRpY2tlcg== LmlzQ2hlY2tlZA== IFN1cHBsaWVycw== IFJhcGlk TGV2ZWxz 4oKs4oSi CXF1ZXVl IGNob3A= IFVuaXg= cmVqZWN0 LWNhbGVuZGFy KHNvcnQ= w6huZQ== ZXJjaWNpbw== IGhlY3Q= Q0FMTFRZUEU= cm91cG9u IHJlbnRhbHM= YXV0aG9ycw== e25hbWU= IEZJRk8= IGxhc3Nlbg== IE5vdXM= IHNuYXBwZWQ= IGZlcnRpbGl0eQ== ImxvZw== Y2xpY2tlZA== IHBsYW50aW5n IGdi L291dHB1dA== UEVBVA== IGNhdGVnb3JpYQ== IGJhY2g= UHJvZmVzc29y aW50aA== Il0NCg== UmVjb3JkZXI= c2VyZGU= IFRyYW5zbWlzc2lvbg== dHJhZA== IHR1cmJv X1ZFUlRFWA== XEV2ZW50 aWx2ZXI= IGJvZGlseQ== IFNvdXJjZXM= IGtpbGxpbmdz LnhyVGFibGVDZWxs IGZvbGRlZA== L2xlZ2Fs dW5lcg== IFJpZmxl IE1JREk= X1NlbGVjdGVkSW5kZXhDaGFuZ2Vk LlNpemVUeXBl IFdlYlNvY2tldA== IHNlbGVjY2lvbg== U2FuZA== b3Ryb3M= IGVudmlzaW9u L2V0Yw== IE1lbGlzc2E= U3BvdA== 0L3QvtC1 X0FSTQ== QXR0ZW1wdA== IEJJ 44GU IERV IGJhY2tsYXNo c3RyaWRl L2NsYXNzZXM= IHRleHRDb2xvcg== X3N0YWZm b2JsaW4= YWdlbnRh LmNvbGxlY3Rpb25z aWxsYWdl Jw0KDQo= ZmxhdHRlbg== X3NhbGVz X01BU1RFUg== VFc= X2Rh UGl0Y2g= cGhpZXM= IHpvbWJpZXM= IFZFUlk= IFBoYXJtYWN5 IHByb2dyZXNzQmFy IGhhc2h0YWc= U2lkZWJhcg== QHN0b3A= KHBj 0L7Qu9C2 TUFLRQ== IENvcm9u IGt2aW5uZXI= IE1haWQ= Ym9i LnRpdGxlTGFiZWw= IHN1Y2Nlc3Nlcw== IERlbW9jcmFjeQ== IFN1cmdlcnk= IGNvdWdhcg== IGN1cnNv IGxvcm8= aXN0ZW5jeQ== U2VuaW9y w6Zr IEFBQQ== IEJPT0s= 0LrQvg== V1NUUg== ICovLAo= b3lhbA== LnZlY3Rvcg== IFNQRUM= U1NG IGNvbXB1bHM= IEFwcGVhbHM= IFdpbnN0b24= IE1vY2tpdG8= Y29udHJpYg== LmF2YWlsYWJsZQ== ZW50aXR5TWFuYWdlcg== YXJpYXM= X3NhbGU= X3Jz IGRlY29kaW5n IGxvY2F0b3I= b2xpdGg= IGtvbA== IGFzY2lp IFJ1dA== L2ludGVyZmFjZQ== CQkJCQkJICAg IE51bWVy LmZsaXA= LWRlbA== IGJvbHN0ZXI= b25vbWlj IHpt TEc= RmluZEJ5 IGFkYXB0aXZl bG9v IHZ1ZQ== KHJldmVyc2U= X2NhbnZhcw== LnJvbGVz aWZpY2Fkbw== dmVuaWVudA== IkFz IEVudHI= YWxpZ25lZA== IGJlcmVpdHM= Ly8vCgo= Lmd3dA== LmVtcGxveWVl X2NsaQ== IGFudGljaXBhdGU= 6ZmQ IHBpaw== IG11c2hyb29tcw== KHR0 IG9tYQ== IFNhbmNoZXo= X2dvb2dsZQ== LlZhbGlk IEZpbGVOYW1l aXZhdGl2ZQ== a2Vk LXdhcg== IG1hdHVyaXR5 0LjQtA== IG1pbmVy UmVkdWNlcnM= IExhdExuZw== X1NURA== RGlnaXRz Q2FsYw== LXVwbG9hZA== IGhhbmRpYw== 4Li14LmI ZWdyYXRlZA== IFNUTQ== Q2xpZW50cw== IFR1cmJv U1lOQw== IHBob3RvZ3JhcGhlcnM= Lk91dA== LmNoYXJhY3Rlcg== QlVJTEQ= LnVubG9jaw== IGFyaXNlcw== IENvbW1hbmRz KCIiKTsNCg== X0ZPUkU= Oycs KyIn LkltYWdlcw== Iil7 IE1leWVy IG5lZ2F0aXZlbHk= IERMTA== IGV4ZQ== IGRlZmljaWVuY3k= IHdpbGRseQ== LXN3aXRjaA== Y29uc3RydWN0aW9u IGV4Y2VwdGlvbmFsbHk= IExpeg== L2phdmE= IHRoZWlycw== IENvbnRlbXBvcmFyeQ== bGlz LmZpbGxSZWN0 IE5GQw== IHJlaGU= KG51bWJlcnM= IHJhc3Rlcg== IGZpZ3VyaW5n IHNob3dj IEppbGw= IGFyY2FkZQ== IENvbnN0cnVjdHM= bWRs KCd8 IGlkZW50aWZpZXJz IHN0ZWxsYXI= KENvbm5lY3Rpb24= ICJ7ew== eW9y KG15c3FsaQ== IGRvdmU= T2ZCaXJ0aA== LmRpc2Nvbm5lY3Q= X2hp IHp3aXNjaGVu IEdydW5k aXJvcw== X0FycmF5 Lm9uY2xpY2s= YW5zb20= QW5zd2Vycw== CXJlbW92ZQ== RmE= IGh1cnJ5 LWluZg== IGdldENsYXNz IFJlZ3VsYXRpb24= IEZMQUdT bWlzYw== S2Vu X2hlYWRpbmc= R0h6 LWVudHJ5 IGJpb2dyYXBoeQ== U2ln LW1m V2F0Y2hlcg== 4oCcQQ== fXB4 IHNwaWN5 X3Nx TG9zdA== KHRyYWNr 0LDQu9C4 RGVzY2VuZGluZw== PGJpdHM= cXVpbmU= IEFkdm9j X1NO IEhhbm5haA== UE9Q IGVtaXR0ZXI= IGN5bg== IENBRA== Pyku L3NldA== IFNpc3Rlcg== IEVuZHBvaW50 IG1lbm9y IGludGVycA== cms= aWRsZQ== IG91dGZpdHM= LnZlcnRleA== IGNsaWM= QVJFTg== IHBvc3R1cmU= IE9wcG9ydHVuaXR5 dng= IEZvcmJlcw== LkRpcmVjdGlvbg== IHJlc2lkZQ== IHJlbWVtYmVyaW5n bmVzdHk= QXV0b3Jlc2l6aW5n cHJvdmlkZXJz IEFI IGh1cnRpbmc= IExpbHk= ZXZhbHVhdGU= bGlqaw== cGFwZXJz IFNtYXNo IExBU1Q= IHdlbGxz d2FzaGVy X1JPTEU= IERhbmdlcg== Kigo X3JlcG9zaXRvcnk= IFJlc29sdmU= IFJvb21z X1JH IFFU b29w IEhlYXA= IHNsb3dpbmc= IGdyYXR1aXRl X2NhdGFsb2c= IHBvbHlub21pYWw= THk= cGNz Rm94 IEN5cg== IGRpbWlu L21vbnRo U2FsdA== IGhpbmQ= LlBFUg== Rm9ydW0= Y2Vu X3BvbA== 7Zi4 IGluc2Vy KH4= QHRlc3Q= IEdvbGRtYW4= IHVwbG9hZGluZw== RmM= IGtvbW1lcg== IG1pdHQ= X2xvZ2dlZA== IGJ1Y2tz LWxheWVy KX07Cg== IE9N IHZlZw== Y29sb3Vy INC+0LHRig== U3RkU3RyaW5n X3F1ZQ== IFRpYW4= IHNwZWNpYWxpemU= 0LjQvw== INC60Ls= dHJpYWw= LWVkZ2U= IG1hcnM= T0dMRQ== IGVtcGF0aHk= IEJvbQ== IGNvbGxpc2lvbnM= IGNhcnRl IFRlaWw= IE1QTA== IHBvcm7DtA== IGFpcmxpbmVz QXdz TnM= IFNwYXdu KHVzZQ== 6buY6K6k IHlhY2M= c3Rvcg== IGNvbmZlc3M= IHBlcXVl cmFnZQ== PyIK L2RhdGF0YWJsZXM= IFNob3dlcg== X18v IGNyeXN0YWxz IGJ1c2Nhcg== IEhhdXM= aXphw6fDo28= X2VudGl0aWVz lYw= mow= eGNj dmlydA== LWNoZXZyb24= KFJlc3VsdA== Y2FrZQ== Q09NRQ== IHByb2hpYml0 IENoZXNz IGJlYXVjb3Vw INGH0YLQvg== UlVO IElL w7PFgg== X1VwZGF0ZQ== IHNsZWVr IFNwZWNpZnk= X2NyZWRlbnRpYWxz xZ90 IFVzZXJOYW1l CVZhbHVl IGFycmF5TGlzdA== IGV4Y2hhbmdlZA== aXBzaXM= LnJlbGF0ZWQ= IFNlaXRl X0JBUg== IExlbQ== IFdBVENI IENsaWVudHM= IC4q IEVhcmw= LXJlcG9ydA== IGZvcmVpZ25lcnM= IHN0cmVuZ3RoZW5pbmc= CURlc2NyaXB0aW9u KGdv LnRvb2xiYXI= IGNhbGN1bGF0ZXM= CXNvdXJjZQ== IGN6YXM= IHJlY2w= YWJv IGxvY2FsaG9zdA== IF57Cg== LlBvcA== IERlc2lnbmVk XEFic3RyYWN0 SG9sZA== IEd1aWRlbGluZXM= aXBsaW5l IGNhY2hpbmc= LlJlYWRlcg== X2V4dGVybmFs LnN0cnB0aW1l IFdlZWtlbmQ= LU1hcg== IEJlaQ== IHsqfQ== IFJ1ZA== IGV4cGxvcg== IEJvdWxldmFyZA== Q2FzaA== IHByZXBhcmVz IHNlcmlhbGl6YXRpb24= ZXdhdGVy IGFkYw== OgoKCgoKCg== UmVmZXI= IHNjYW5uZWQ= fX0KCg== IEZ1bA== IHRvdXJpbmc= 44OD44Kv Pigo c3VydmV5 IO2Y Li4uJykK IERpdmlkZXI= b3Ns X0NBTkNFTA== X3ByZXBhcmU= c3Rpbg== IEhlYXRo LlByaW1hcnlLZXk= IOKGkA== IExvY2FsRGF0ZVRpbWU= IGNvb3BlcmF0aXZl TGVhcm5pbmc= LmVucXVldWU= IGdvb2c= IFJlZ3Jlc3Npb24= aW1hdGVz IHZveWV1cg== IERyaW5r cGx1Zw== IGxlbmRlcg== bWFuYQ== IHBlcnNvbm5lcw== eXBzZQ== IHVubGluaw== IFJhdmVucw== IGh1cmQ= IHBlcmlvZGljYWxseQ== QVJHUw== IEdI Y2hhcmFjdGVycw== Li4uIgoK LWVzdGFibGlzaA== IGRu KGNvbmRpdGlvbg== IEdyYXZpdHk= IGVzdGFz X2ZvY3Vz Q3JlYXR1cmU= KHNpdGU= IGNhcnI= IFJM IFJJ IE1vdG8= QVNG IEx1Y2tpbHk= CVJvdXRl IGVudHJvcHk= KCIsIg== Q29sbGVjdA== KGNvbnRhY3Q= IEZsb3JlbmNl IHByZW1pdW1z IGxpZmVjeWNsZQ== IGJhbnM= eGVm V2ViS2l0 IEZsb2F0aW5n IGNvc2E= U3BlY2lmaWM= IExvYW5z YnJlYWQ= IGRlc2NyaXB0b3Jz IHs6Lg== VEhSRUFE IFRyZW50 IHNjb3A= UUE= IEFudGFy cGVs X2RpZmZlcmVuY2U= X2NoYW5nZXM= KC4uLik= IFJvdGF0aW9u IExHUEw= IEpVU1Q= KFRhc2s= X3N1YnNldA== IFRSQU5T 5Yqb IFNjb3V0 LXBvcHVw IHNtb2tlZA== X0NsYXNz IHR1cm5vdmVy YnJha2s= IFJvY2t5 dGFz LlJlZ3VsYXJFeHByZXNzaW9ucw== IEVsbGlvdHQ= IFNwaW5uZXI= RFVDVElPTg== IGxpYnJl IG1vbHRv ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IEZUUA== bXBlZw== KGZlYXR1cmVz IGJhbGQ= IFZpZA== IHNob3V0aW5n TGludA== IHNvY2tldHM= IHByb3c= IG5vdXZlbGxl aXNjYXJk IFNwb25zb3I= IGNvbnN1bHRh KSkpOw== SW5kaWFu IFJhc3BiZXJyeQ== IHRlYW1tYXRl IEpXVA== IEdoYW5h IGNha2Vz cHJpbWVy Zm9ybWE= ZXJnYXJ0ZW4= X01hbmFnZXI= IHByZXNlYXNvbg== R0FNRQ== fCI= IEJyb2Nr IG9jY3VweQ== IGRlY29yYXRpb25z w6FuZA== IGNvdA== IHBhcmFu RGlzaw== cmVtYWlu Pj8= U3Ryb25n IGZyYW5jZQ== IEVyYQ== LWNy LkJ1ZmZlcmVkUmVhZGVy IFBhcmFkaXNl IFZBVA== IEFuZGVycw== IGxpbWI= YW1wb28= IGltcGVyYXRpdmU= VVRJTElUWQ== IFJlY29nbml0aW9u IHJhZ2F6emU= IHBvcHM= eXByZXNz IGVtYmFyZ28= Ly97Cg== IHN5bGw= UFRS 5a2Y5Zyo IGRpZG50 TWFpbGVy IGFjYWRlbWljcw== IEZyYXVlbg== bmVpZGVy LXJlbA== IHJhaW5ib3c= KElu IHNsaWNlZA== PT09PT09PT09PT09PQo= KHNlbmQ= TlNNdXRhYmxlRGljdGlvbmFyeQ== dm9z KHBhY2thZ2U= IG9yZGluYW5jZQ== dmlld2Vy IFNhbnRvcw== LXNlbGxpbmc= IGdvdg== ZXR0bGU= IGZvdW5kZXJz IHdha2luZw== c2xhc2hlcw== LXBvdW5k cmVjaHQ= 2KfYqg== Lm9uQ2xpY2s= IG5vcmQ= c3TDpG5k X3doZW4= VVRFUlM= aWNj IGNhcHN1bGU= IFdpZA== TWFyYw== 4Li4 cm9yZWQ= VUdF TE9VRA== IEF1ZGl0 aXBpZW50cw== b3BpYW4= IFN1ZQ== IHd1cmRlbg== LkhlbHBlcnM= IGZhY3Rpb25z W25w LXRoYW4= IHJlY28= IGthcw== IGNtZHM= L25ldHdvcms= eGJm Z2V0Q29sb3I= IGJpYXNlZA== IExhaw== RGF0YXM= dmVudHM= IOuy X1BT LlZhbGlkYXRl SW52b2tlcg== IG5ldWVu IGp1dmVuaWxl VklTSU9O IGRldm90ZQ== IGxpbmhh IGRpc2NvdW50ZWQ= XENvbmZpZw== IHdvcnRod2hpbGU= IHNraW5ueQ== IENvdXJzZXM= bGV5cw== IE1vcnRnYWdl S2V2aW4= IGFubm91bmNlcw== XSkq cmVzZXJ2YXRpb24= IOaVsA== IHByZWp1ZGljZQ== IFN0cmluZ0NvbXBhcmlzb24= IGJlYXJk LXdpbg== IFPDo28= CW1z amFs IEVhcm4= X3BvcnRz IE5vbWJyZQ== X0NPUg== IEJVSUxE LnNvdW5k WWVsbG93 IGxpbmViYWNrZXI= IGNoYXJpdGFibGU= anVn X05PTk5VTEw= IERlbnRhbA== Ij4kew== CW1hdGNo UnVzc2lhbg== IHZlcnNjaA== IHBpbm5lZA== IGFkb3B0aW5n T3B0aW9uc01lbnU= UGFn IHBhaXJpbmc= IHRyZWFk ZXJjaXNlcw== IFNwcmVhZA== KWk= IEJBRA== X3Rm VUlJbWFnZVZpZXc= cG9wdWxhdGU= YmFi IM+D Wysr IG9waW9pZA== ICMjCg== ZHR5cGU= IFN0YXJ0cw== KCcvJyk= IHBlcnNvbmFscw== LW1hcmtldA== IHJlZHVuZGFudA== IEVzc2VudGlhbA== IHNjcmFweQ== INC40Lw= YWNs IGNyZWFy IEJlbmQ= IHJlbGlldmU= LXJvb20= d2lmZQ== IHbDoA== IFFQb2ludA== IHF1YXNp IG1ldGhvZE5hbWU= XHhj IFBlcnU= L1RoZQ== Lm9ybQ== IHZpeg== L3BkZg== TG9jYXRlZA== IGNvbmZyb250YXRpb24= IENoYW1waW9uc2hpcHM= IGh5cGVydA== IGRq IFVzZXJJbmZv IOWIm+W7ug== XHhi KHNpbQ== ID09Cg== IHN0YWdpbmc= IGRyYXN0aWNhbGx5 5a2m bG9yZHM= Lmxlc3M= 0LLQtdC00LjRgtC1 IEJ1Y2tldA== IE1hbQ== LnRlcm0= X3Bp Y3p5 LnB1Yg== cHJlY2lv IFZpcnQ= IHJvbWFu aXRhdA== TGV4 X2luZm9z xLA= Lm90aGVy VkVMTw== IHBvbmRlcg== IGhhbm5v KFBhZ2U= ZG9p IHBvbGl0ZQ== IHByb2dyYW1tZXI= RGllcw== JGQ= IHJlcGxpY2F0aW9u YWRkQ29sdW1u ZnJpY2Fu IGxlbmc= YmVlcg== b2l0 IHdhc3Rpbmc= eWxpbQ== bWVhc3VyZQ== TmVn IHBhcnRpZQ== LmNvbnNvbGU= IEd1aW5lYQ== VEVM X2ZhY3Q= LmNodW5r IGxlbnQ= IGFsbGVy IOCklQ== X2lkbGU= IGFkbWlzc2lvbnM= SlNPTkFycmF5 IHZpYnJhdGlvbg== LmhlbHBlcnM= 5aSW IGhlbg== am9obg== IOyDnQ== IGp1ZGdlbWVudA== IGdlZW4= dGVycmE= Xns= IEl6 IGPDog== aW5zdGFuY2Vz IHRocmVhdGVucw== IG3DvHNzZW4= S2luZE9mQ2xhc3M= IHN0b3J5dGVsbGluZw== X2RlbW8= cmlhcw== UHJpdmFjeQ== aGlmdA== IFlp ZXNvcg== 7ZWg ZW5zaXRpdml0eQ== LldyaXRlcg== 4LiC RGlzdHJpY3Q= LmdldEpTT05PYmplY3Q= SW1wcm8= KGdldFJlc291cmNlcw== IFNQRUxM cm9kdWNl IHNsb3dlZA== IGxpbmV3aWR0aA== IGhvbmVzdHk= IENvb3Jk IEZvcms= IERpc3BhdGNoUXVldWU= IENsaWZm IFdpcmluZw== X1RJTUVTVEFNUA== b2xsYWg= YXZvaWQ= KytdOwo= c2VtYW50aWM= LWNzcw== IHZldG8= IE1lcnI= IGxlZ2lzbGF0b3Jz Q0VFREVE IHF1ZXN0aW9ubmFpcmU= IFBpbGxz Q2FsY3VsYXRl KGNvcmU= J2U= IGRpc2xpa2U= IFByZWZlcmVuY2Vz X0VYVEVSTkFM 6LCD IGRvZGdl 5pyN5Yqh Lm5hbWVz LmRyYXdJbWFnZQ== X3Byb20= dWNrbGFuZA== IDwkPg== xLF6 L3NpdGU= 6aG5 cm9waGU= IGNvbXBlbGxlZA== IGxhcHRvcHM= IHVuaQ== Q0xPU0U= IGNhc3VhbHRpZXM= IFVuaWZvcm0= VGVybWluYWw= LiIsIg== REFU KFRyZWVOb2Rl IEdhbmRoaQ== KHN0bXQ= QVhC Kk0= IHVtYnJlbGxh YW5pbWFs IGdycGM= IHdoZXJlYnk= IGZsb2F0cw== CWFyZw== IGRiZw== IGV4Y2VlZGluZw== RXZlbnRUeXBl LlNhdmVDaGFuZ2VzQXN5bmM= IHt7ew== IG93ZWQ= YWhyZW5oZWl0 IOyn IGVxdWlwbw== dXJhaQ== IGlkb2w= XSIpCg== X21ham9y IGVudGlyZXR5 aW5nZXJwcmludA== w6dvcw== L2FjY291bnQ= CXJpZ2h0 dXJzb3M= IEVEVA== X0lOU0VSVA== IHNoaW5pbmc= IDw6 RWRnZUluc2V0cw== IGNvbG9uaWVz LklN CSAJ Uk9BRA== Q0NDQw== cGxhY2luZw== IGdldEFjdGl2aXR5 ZW1hY3M= JyUo LmNsaWNrZWQ= IFRoZW0= aXNpYQ== QnVzY2Fy LnJlbmFtZQ== IG9hdGg= IGFmdGVyd2FyZA== IFVGTw== QVBT IEphY2tzb252aWxsZQ== LnNvbWU= Q29uZmlybWVk LnNjYW4= aWdJbnRlZ2Vy RGVjb3JhdG9y c2hpZWxk cmVzc2l2ZQ== LmRpZA== 6K+36L6T5YWl IHNodXR0ZXI= RGFt IHBhcmVudGluZw== ZXllZA== JGl0ZW0= LWRldmVsb3A= IGV4dHJhY3Rz IGRlY2VudHJhbGl6ZWQ= IEVsc2E= X3NwaW4= XSkr LWluaXRpYWw= IG11bHRpdHVkZQ== IHNlbnNvcnk= IE1PREVM IHNhZmVndWFyZA== 7Lk= IGh1bnRlcnM= IFRpbnk= SU5P ZGVjb3JhdGU= IE5vU3VjaA== SG8= KFJlc3BvbnNl IHJ1bGVy CXNob3J0 IGNhc3Rlcg== IGNsaWVudElk IHBkYg== 64+E aXRpYw== IEdhbWVTdGF0ZQ== IG5ld0l0ZW0= KQoKCgoKCg== b3Vpcw== bm9j LkJMQUNL X1ZFQ1RPUg== LS0tLS0tLS0tLTwv IGV4YW1pbmVz CWJsb2Nr IGFkZG9u IHN1cnZleWVk IExpc3RlbmVy IGZyb250aWVy IGxhY2tlZA== SlVTVA== INGN0YI= IHRpbnQ= IE15c3Rlcnk= ZGF0ZVRpbWU= IFR1dG9yaWFs IGZ1bGxOYW1l IERyYWdvbnM= X0ZJTEVT IFByaW50V3JpdGVy IGJlZXQ= IExhZGllcw== X3RpcA== IEphaHJl b3JhbWE= IGluc3VsYXRpb24= KEVudmlyb25tZW50 X2FzdA== YmVyZ2Vy bGVuYQ== b2dlbmVvdXM= X01PTlRI LXByZXNlbnQ= IGZyYW1ld29ya3M= UVE= UEhQRXhjZWw= IGNvdW50ZG93bg== IEZX KGNsdXN0ZXI= OmM= IG9raHR0cA== b2JzZXJ2ZQ== W3BsYXllcg== Lmhl IFBhbmFtYQ== QXVzdHJhbGlh IG91bmNlcw== IGFnZ3Jlc3NpdmVseQ== IHdhcm5z IGN1c3RvbWl6YXRpb24= X1F1ZXJ5 d2lz IGludmFs QUZG KGNhbWVyYQ== V2ly IG5lZ290aWF0aW9u CU8= IHJlc3BlY3RmdWw= IGRpYW1vbmRz J2F2 YXBwcm94 L2Ry IGdyYWJz IGFjY29tcGFuaWVz Y29uc3RyYWludA== IHJleg== KHJlZ2lvbg== IGJhaXQ= dGVybWluYXRl IEJlbGdpYW4= YXNzaXVt IF0NCg== U3lzdGVtcw== b3VzZWRvd24= LmJ1cw== U2V0VmFsdWU= IFByZXA= IGNvbnZlbmllbnRseQ== Lm1pZA== Y2FzZWNtcA== TnVtZXJv ZGFpbHk= IENvZGluZw== KGRlc3RpbmF0aW9u IyQ= dWrEhQ== IGVtZXJnZW5jZQ== X3BhcmE= X0lOQ0xVREU= Izo= IHJlY29nbml6aW5n IGZ1Zw== In19LAo= IGJ1aWxkZXJz IFRlcnJpdG9yeQ== IGluaGVyZW50bHk= IGRlcml2aW5n LmV0aA== IERpbm5lcg== LnNldE9iamVjdE5hbWU= IGNlbGVicmF0ZXM= IHF1ZXVlcw== IE1hcmtz QUxURVI= IERhcnQ= cG9rZQ== X0NIQU5HRUQ= IHBhYXI= bGllcw== LnZvbGxleQ== IE1lYW5pbmc= IE9GRlNFVA== ZW5zaW5n IGZyw6Vu LmxvY2FsU3RvcmFnZQ== IOup KHt9KTsK ZGVjb2Rlcg== IHJvdWxldHRl IGRpc21hbnQ= SXI= IGluc3VyZw== ICcnOgo= LuKAnQo= IGJydW5ldHRl LmFzc2V0cw== X05FVFdPUks= 4LiK bnlt X1NvdXJjZQ== XFRlc3Rz RXNjYXBl Y3J5cHQ= LlhNTA== IHNvdW5kaW5n b3Bjb2Rl IGNsYXNzaWZ5 IGVtYmFycmFzc2Vk IExPR0lO IHJlc2lkdWU= IE5FRUQ= LmRlZXBFcXVhbA== cGVyYw== LWNhbA== UmVkaXM= VHJh KF8p YXNrZXRz Z3JhZGF0aW9u IGVuenltZQ== IFN0ZXBoYW5pZQ== LkludmFsaWQ= J10/Pjwv IGRpc3BsYWNlZA== IGVsZW1lbnRvcw== KGR1cmF0aW9u cm93Q291bnQ= IEZTdGFy bGV0YQ== L3BvcHBlcg== IHN0YXRv IHBlcmZvcm1lcg== IGRpc2NpcGxpbmVz IEZ1bGx5 aWN1bGFybHk= IGVyc3Rlbg== IFBvbHlnb24= IGRpc2NpcGxlcw== LmlzZGly IHRlc3RpZnk= X1NS cHJpc2luZ2x5 IEdMaW50 IHdpcGVk IGNhcnZlZA== IERpc2g= Lmhlcm9rdWFwcA== c3RpdGlhbA== IE1BVENI Y2xhaXI= IERheXRvbg== LycpCg== SURETEU= IGluZnJh IGxpdmVseQ== IGRlcHM= IFsuLi5d CQkJCQkJCQkJCQkJCQkJCQk= IExvbg== RXh0cmFz VHJhbnNpZW50 0LLQtdGA L21vZHVsZQ== IGVuZHVyYW5jZQ== X3RleA== ICJ+Lw== X3lsYWJlbA== IG9iZWQ= L2dhbWU= b3BzeQ== IGZpcnN0bmFtZQ== LmZvcmNl IG1hcnQ= XENsaWVudA== IGxlZ2l0aW0= LmZsYXR0ZW4= Iics b3NleHVhbA== IGpvdXJz TUg= ZXhwaXJlcw== IHN0eWw= LmludGVydmFs S25vd24= IGZvbGxvd2Vy IGRhbGxh cGlyeQ== X3NzbA== aXNobGlzdA== IFJleQ== IHN1cGVybWFya2V0 T2J2aW91c2x5 LWVudGVy IHByb2JhYmlsaXRpZXM= IEhW IENpbmVtYQ== IGN0eXBlcw== IEJDTQ== X1RBQw== O2E= LmJ1dHRvbnM= IHJldHJpZXZpbmc= aWxhcml0eQ== IHVuZGVydGFraW5n CXN0YWNr IGtlbA== IFhlbg== KHBoaQ== IHRvdWdoZXI= IFNlbGxlcg== Y2Fwcw== IEVtYmVy IENoaW4= IGxhdWdocw== Q29udmVyc2lvbg== Lmxpc3RlbmVy JkI= IHBhcmFkaWdt IGp1bmN0aW9u JC8sCg== W28= IENvbnNlcnZhdGl2ZXM= z4A= bGF0ZXM= X0V4Y2VwdGlvbg== IG1laWxsZXVy IHN0cmFwcw== cXVpc2l0ZXM= CXNu IG1hc3NhY3Jl b3R0ZXM= X2dyZWVu VGl0bGVz Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ== IFJlZ3VsYXRpb25z YXJs X3Nob3J0Y29kZQ== IERyYXdlcg== IHBhcm9sZQ== IHdpbGRlcm5lc3M= aXNzb24= IEFGVEVS Q3JlZGVudGlhbA== QmxvY2tpbmc= IEhUQw== U2lu KGF1dGhvcg== IGNvcnRleA== Jyl7DQo= 77yJ77yM IGR1bXBlZA== IFNodXQ= IEtleUV2ZW50 CVBsYXllcg== LmdldFBsYXllcg== IGlnbm9yZXM= dG9nZ2xlQ2xhc3M= IEV4Y2x1c2l2ZQ== PigpOw== LmdldFA= YW55ZQ== IG5ldXJvbg== aWZvbGQ= IEtub3du Qml0Y29pbg== QW55d2F5 YXlldHRl ICdbJw== w6BuaA== bWdy IGNvcnJlbGF0ZWQ= IG5hdXNl IG1lbnRhbGl0eQ== aGFzTWFueQ== IEZH YW1waWU= SVRV RnM= LlNw X2JldHdlZW4= RGVwZW5kZW5jaWVz b3Vn UGxhY2Vob2xkZXI= PXRleHQ= IE1hbmFnaW5n b2NhbHlwc2U= 5YyX X21hZw== Zmxk 4pE= Q0FN IEhlbHBlcnM= IGRvc3Q= L291dA== IGFzc2Fzc2luYXRpb24= LmdldEltYWdl IEtlbm55 LicpCgo= KXsvLw== IFJhbmdlcg== IGdlaw== IHNpbmNlcmU= PFZhbHVl IERPVA== IFZpY3Rvcnk= IGxlZ2VuZHM= IHByaXNvbnM= KGV4cHJlc3Npb24= IFJhYmJpdA== X3NlbnRlbmNl IGJpdGVz IG9uRmFpbHVyZQ== IOKIiA== S2lt LmdlbmRlcg== IM67 IFsu Il0pOw== bGFuZGluZw== LWRpZ2l0 VEVNUA== CWVudHJ5 IHN0cnRvaw== IGRlc2NlbmRhbnRz dW1ubw== IGxlYW5pbmc= IHNwZWNpZmljcw== cW4= IFNwYXJ0 IHBvcnI= RURJQVRFSw== IHNlcGVy J2F1dA== IFNURVA= IEJvcmRlckxheW91dA== IHJldHJvcw== IFNhbHZhZG9y IEVOR0lORQ== eGRj VHdlZXQ= dms= IOyy XTw8 aGV0aWNz Y29kaW5n UmVhY2g= LnJlcQ== Z3VpZGU= LnNjb3Bl c2hpcnQ= cm9nYXRl U0VUVElORw== IFByb3RlaW4= IGVpbmc= LkVNUFRZ LmRm IGNsZWFyZXI= IGNyb3Nzb3Zlcg== IFRveXM= IGNvYXRlZA== Lk1vbnRo IEF0dGFjaA== L3J1bg== LnRhYnM= IG9nc8Ol QnJvd24= LkRBVEU= IGZvcw== 5a2X56ym V29vZA== LXRocmVl aGVyaXRlZA== IHJvcA== KGFj IGVtYm9kaW1lbnQ= IEtlbm5ldGg= IGNhbm5vbg== IGJpZGRpbmc= PElFbnVtZXJhYmxl CXNldFRpbWVvdXQ= X2RpZ2l0 IGVsaW1pbmFy KG5l YnVkZ2V0 Q1NJ IOyVhA== IEFTUA== R3JvdXBJZA== X0NPVU5URVI= Y29uc3VsdA== IGlmcmFtZQ== bGVnZW4= X0RFQ0xBUkU= U2hhcnBlcg== IEZyaWVuZGx5 dWxldA== LWNvbW1hbmQ= INCg Y3ljbGVz IFdhc3Rl IHRhcHBlZA== CUJ1ZmZlcg== 4oCUaW4= IAogIAo= IElkZWFs IENhbmR5 X1N5bnRheA== w6p0 7J2M YWJvdmU= IE5hemlz IGZzdA== c2Vpbg== IGt1bm5lbg== d2lr IFNhdmluZw== LmV4dGVuc2lvbnM= IERlc2VyaWFsaXpl b3VyZw== LmF0dHJpYg== 77yaCgo= IFdpbnM= LmVxbA== Unlhbg== X2Fjaw== T1VSQ0VT IG9ucw== Z3Jlc2U= YWZpYQ== TW9kZXJu IGFkaGVyZQ== IGJpb3M= KGFjYw== a2Jk VGhyb3du qeuLiOuLpA== CUh0dHA= CXhtbA== RW5kRGF0ZQ== KHBhcnNlZA== LmdldGVudg== cmVnaXN0cg== bmVsbA== aW9uYXJpbw== LmlubmVyV2lkdGg= cnRs UFY= X3BpZWNl IERlcG9zaXQ= eWVycw== IE5TTnVtYmVy IGdpbnQ= ZW5zZW1ibGU= IG5ld2NvbQ== IFZpZXRuYW1lc2U= X2hw IGFjY3VzaW5n IHF1aXM= IGludmVzdGlnYXRvcg== ZXNzZW50aWFs IENY LmZvck5hbWU= ZGVmcw== IGFuYWx5c2U= X2FuaW1hdGlvbg== IHRoYQ== dGFib29sYQ== IFRIQw== w61jdWxv IGdsb3dpbmc= IGhvbm9ycw== YnN0cmFjdA== a3A= SVRFUw== ICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyM= I2dldA== L0Rlc2t0b3A= CWdsbQ== IHppbmM= w6F0aWNh IDw8Cg== Vk1M IFVubGltaXRlZA== dnJl LWJlZA== X25vbmNl IEdJ dHJhdmVs IGlzS2luZE9mQ2xhc3M= IGFub255bWl0eQ== RmlyZXN0b3Jl IGVtYWlsZWQ= X0ZMQVNI IGbDpXI= 4piF4piF IDpd SHVt LnJlc2VydmU= w7xt IGtvc3Rlbmxvc2U= IFNDUA== dXRhbg== IEdvcmU= IGNoYXRz Lz4NCg== LmdldFJlc291cmNlcw== IGx1bXA= X2NvbnN0cw== KGV4dA== CWRpcg== 4p0= IHBhZGRpbmdUb3A= IG9ic2Vzc2lvbg== IGJhbm5pbmc= IEFwcE1vZHVsZQ== IHBhcnRpc2Fu IGNhdGFsb2d1ZQ== IG1pbm9ycw== IHBpdGNoZXM= d2VlcA== IHVuZGVydGFrZQ== IHRoZW1lZA== YXVkaXQ= LnNjcm9sbFRvcA== IHJlcg== IHN5bXB0b20= IG9wZW5pbmdz LmJsb2Nrcw== b3Blbmlk IGFzc2g= LXNhdmU= IFBpZw== IHJlZ2Fpbg== IGluaWNpYWw= L2Zhdmljb24= CWV4cA== IHNwaWNlcw== aXNrYQ== Y2xhaW1z bWFr ZGVmaW5pdGlvbnM= IGNvcnJlc3BvbmRlbnQ= IENhbm5hYmlz X18sCg== IEx1Y2t5 IEdhdXNzaWFu IE5lYXJseQ== Q0FE J11dCg== IGFkZXF1YXRlbHk= IFRJVExF Y29uc3RpdHV0aW9uYWw= LW1t X292ZXJyaWRl IGJsYXM= LnJlYWR5U3RhdGU= IHJlbWluaXM= IHJlaW5mb3JjZWQ= IENvbGxhYm9y IGRlY29yYXRpbmc= IGJhY2hlbG9y RVJSVVBU IHVwcmlnaHQ= aXBhdGlvbg== IE5vYmxl IHZhbHVlRm9yS2V5 IHNldExvYWRpbmc= Lklnbm9yZQ== 5YE= R2xvYmFscw== IE1lbnQ= QVNTRVM= IGxpbWJz IEhVRA== aW5jaQ== Lml2 IFFNb2RlbEluZGV4 RnVzZQ== IHBlZGFs X0ZSRVE= KHZlcmJvc2U= IGxvbmdpdHVk IENoYXJ0ZXI= 6re4 IGJ1bmRsZXM= Lmlnbm9yZQ== dW1ibw== RU1B Li4uLi4uLg== c3g= LkNhcmQ= IGhldXRl IHN0ZWVy anVtbGFo IHtf X0NoZWNrZWQ= IGZheA== IEd1c3Q= aXRjaGVucw== ICkpCgo= IHJlbWFya2FibHk= L1hNTA== LXJlbW92ZQ== X2J0 IGluY3Vi LnBhY2thZ2U= LmN1cnJlbnRUaHJlYWQ= IEhpZ2hsYW5kZXI= LnNpZGU= c3BsYXNo IGljaQ== PUQ= IHB1Y2s= IGJhbGxvdHM= IGh1Z2VseQ== Y29lZmY= IHBEYXRh LkNPTFVNTg== IEhlYWxpbmc= IG9yZGlu ISks ICcnLA0K KG1k IFNhc2s= PHN0cm9uZw== IHN1cnZpdm9y LnNlcmllcw== IGNhZmZlaW5l IGAo LlRSQUlMSU5H X0lucHV0 KCJe emQ= Jik7Cg== IFBpbmc= IHZvdWNoZXI= LnJhdGluZw== LXNoaXJ0cw== IFJldHJpZXZlcw== LmFsaWJhYmE= T3JhY2xl X01PVg== T2xkRGF0YQ== IC8qDQo= IGdib29sZWFu ID0+DQo= IHLDoQ== IGJsdW50 IEltYWdlSWNvbg== aWZpaw== UlRD IGZpYmVycw== IHRvaWxl LnNlbnQ= IFB5UXQ= JGFwcA== IG1lZGlv IGdyYW50aW5n IHRzbGludA== IE3Dtg== KGZpZ3NpemU= IGh1cnJpY2FuZQ== IGxpZmVz IMOE cm9jZXNzaW5n X3N0YW5kYXJk LW9wdGlvbg== JykpKQ== IHZhY2FudA== 5bel IEhvbGxvdw== aGFuZGxlQ2hhbmdl IGRpdmlkZXI= IEVuZ2luZWVycw== IHN2ZW5z IGNvbXBsaWFudA== dGFuZ2dhbA== IENyZWRpdHM= IEVtaXJhdGVz UnVsZUNvbnRleHQ= IHJlYWxpemF0aW9u IGRpc3RyYWN0ZWQ= XSs9 IGF1Z21lbnQ= IER3 b3Rw b3JyZW50 RWRpdGFy LnN0b2Nr U3R1ZHk= cGVjdGlvbnM= IEdhbWVNYW5hZ2Vy PWN1dA== IGZsb2Nr IFJvbWFucw== dGhlbQ== LWhvcA== IHNjcmVlbnNob3Rz IC8qIQo= IGNvbnZlcnNpb25z IG5vcm1hbGl6YXRpb24= KGNvbmZpZ3VyYXRpb24= IGFlcm9z X3NlY3VyaXR5 IScK Qm9udXM= IERSSVZFUg== CURhdGU= dGll IFd5b21pbmc= U3RhbmQ= aXRyZQ== IHNob3BwZXJz IGRpc2FkdmFudGFnZQ== IGxpa2luZw== 56yR IHVuZGVyc3RhbmRhYmxl U0VF IGhveQ== IG5pbmV0ZQ== IGNvbmZlcg== IG5vd3JhcA== IFZlcm4= LA0KDQo= aW1lc3RlcA== TGF5b3V0TWFuYWdlcg== 4Lc= CXdhaXQ= UExFVEVE SmFwYW4= IGluZHVjZQ== IOWv 0L7Qt9Cy X0VORFBPSU5U Lmhvcml6b250YWw= IGFjY2VsZXJhdGVk cmltb24= SVZFUw== VHJhbnNhY3Rpb25z TGVhbg== IFNPVVI= d2hldGhlcg== eWc= IG9pZA== IEVudGl0eU1hbmFnZXI= T1VOVFJZ IGZpbGE= T0xVTU5T SU5VRQ== IEFuY2hvcg== VFJBTg== d29v YmxvY2txdW90ZQ== IE51cnNl IENhcnA= IHJlZGVlbQ== LnRyeQ== IEpQ IHRpbWVzdGFtcHM= ID8+Ij48 IFJFTU9WRQ== IFN0YXJidWNrcw== UmVhbGx5 IGZsb29kZWQ= LkNhbGxiYWNr RHJvcERvd24= aXBybw== IHRlbmRlZA== bHRl IHByb3BvcnRpb25z LXRl IFJlbmE= bGljYXRl Zm9yY2Vz LmV4dHJh LmF1dGhlbnRpY2F0ZQ== 0LLQvtC0 obA= IGZvckNvbnRyb2xFdmVudHM= IHNlbmhh IGtlaW4= IG1pbmlzdA== IFByZWZlcmVuY2U= IFRlbGVncmFwaA== 0YPQvw== c3RycG9z IGlsbG5lc3Nlcw== IHBpZ3M= IGdldEludGVudA== U29s IMKh KGNwdQ== W3Byb3A= c2NyZWVucw== Jyk7Pz4= IEFjdHM= IHN0cmR1cA== IGF2ZXJhZ2Vz YW5hbA== IENhc3VhbA== R3JvdXBCb3g= IEhhbmRib29r L2NvbW1lbnRz IG51bWJlcmVk IGJyb2FkY2FzdGluZw== 55uR Lm5hdGl2ZUVsZW1lbnQ= Lm11 IHVwZGF0ZWRBdA== IERvZXNu LkFD LmNvbGw= IHJlY29yZGVy X3NoYQ== Qmc= Ymls IGJvbHRz IOes IGltcG9zaW5n IEluZm9ybWF0aW9uZW4= X2ZsYXNoZGF0YQ== ZWNvbm9taWM= UmVtYXJr dWNhcw== IE9mZmljZXJz IFRFUg== V2Fsaw== IG1lcmNhZG8= X2dlbmVyYXRl SFk= Q2FsbGluZw== c25hcA== c2NyaXB0SWQ= Lm9wZXJhdGlvbg== IEZsYW1l bGluZXNz IHJlbnRlZA== X3RvZ2dsZQ== LWNoYW5naW5n IFRZ J3V0aWw= RUVQ IGdyYXBocWw= IFVuaQ== IGltcHVsc2U= LkJhc2lj IGVuZXJnaWVz TUFSWQ== IE1hcmNlbA== IG1vcnRhbA== IGZyZXM= bWVucw== bW90aW9u IHNhbXBsZWQ= 4oCcVGhhdA== aWRheQ== cXVpcG1lbnQ= Z2V0SW50 IEFic29sdXRl LCci dW5lZA== LnNoYXJl IH0pKA== bW1t IFJpc2luZw== 5Lu7 IHVuZW1wbG95ZWQ= eGZh LmZvbGxvdw== CQkJCSAgICAgIA== c2x0 LlBob25l IGtuaXZlcw== IGV2ZQ== b25DbGljaw== XSkpDQo= IFdpdG5lc3M= CU5T IEVPUw== IFN0ZWZhbg== IFByaWVzdA== 4oCUd2hpY2g= R2V0U3RyaW5n LkJ5 IHVwc3RhaXJz IGRldHJpbWVudA== YnJva2Vu ZW1icm8= IG5pY290aW5l aWxpb24= IGFzdG9uaXNoaW5n X2FmZg== IExlc3Nvbg== IGFjY2lkZW50YWw= b2Rvcg== IGRlY2ly IG5ld05hbWU= Ky4= 55u4 aWdzbGlzdA== IEdpdGh1Yg== IHN1Y2Nlc3NpdmU= cmFjaWFs IGVudmlyb24= 6aqM6K+B IHJlZGlyZWN0ZWQ= VE9UQUw= IGdyYWJiaW5n IExhbmNl IGZvcmZl X0NC 5b6u RWxhcHNlZA== X3dheQ== KERpYWxvZ0ludGVyZmFjZQ== X21lYXN1cmU= eGJi RG9n RGVwYXJ0 LXNyYw== cmVzb2x2ZXI= d2l0aHN0YW5kaW5n X3NoZWxs IExhc3ROYW1l IEF2aWF0aW9u IGJlZ2lubmVy KCIlLg== KHRvb2w= INC90L7Qsg== OmluaXQ= KEFQSQ== IE1vcnJpc29u dnRDb2xvcg== IHN0YXBsZQ== L0lORk8= IHN1cGVybmF0dXJhbA== IHN0ZWFr dGltZWxpbmU= enpsZQ== ImAKCg== U2Vjb25kYXJ5 IE5lcGFs LlN0cmluZ1V0aWxz IGFkYW0= ICguLi4= IHN1YnN0aXR1dGlvbg== IGJvYXJkaW5n IEtleXdvcmQ= IEFzc2F1bHQ= ZGJjVGVtcGxhdGU= IG9yZGVySWQ= KGVuZ2luZQ== LmFzc2VydFRoYXQ= IFZlbnVz IGhvbWljaWRl IEF2YWw= IGd1dHRlcg== IFN1cHBvcnRlZA== L3BhcnQ= IGFjY2xhaW1lZA== SGlzdG9y IG1lc2Vz w7xiZXI= IFJlbmV3 IGdyYXM= IEVr IGluZmlsZQ== aW5keQ== Lm11c2lj LlNjcm9sbA== IEFnZXM= IE5hcnV0bw== IEdhdGhlcg== IGNvbmZpcm1pbmc= PSgi IHBpdGNoZWQ= b2xleQ== RnJhbmNl Kyci JHRvdGFs IG9uZGU= IGRpdGNo X3NpZ21h IGNvbnRpbnVpdHk= cmV3YXJk LWxvYWQ= IHByb2Nlc28= TG9ja2Vk c3Rhdw== IHNwaW5hbA== bGF6eQ== IT09 amVzdA== IGR1bg== IFJvZGdlcnM= CWdyaWQ= IGxvZ29z IEJlbmdhbA== LnN1cGVy UHJvdmlkZXM= IG51dHJpZW50 LlRpbWVzdGFtcA== SVpBVElPTg== 5YaM IGZhdHM= IFh4eA== Y3RpY2E= VGFyZ2V0cw== IGNvbnRvdXJz IHJlb3JkZXJlZA== OkFycmF5 IHRvbGVyYXRl Vmly IHRlcnJpYmx5 IGJyaWNrcw== KCZf aGI= UG9ydGFs IEJyZWFk LndoaWNo wq10 YXNJbnN0YW5jZU9m IGpvYmplY3Q= CWxlbmd0aA== X01U OyI+DQo= X0VYSVNU IG1hdGVybmFs UkVM IOqyveyasA== aGVl IGxheW91dHM= IExhcA== YWlzeQ== IHN0dW1ibGVk IFVJRw== IFNjbw== IGltcGFpcmVk UkVTU0VE IGFidXNlcw== VkY= QVJC Lk5BTUU= cmNo cHJpbWly X2NvbXBsZXRlZA== IHBlbm55 Q2hyb21l KGJlZ2lu ZXJuZW4= LWNoZWNrYm94 UGxhaW5PbGREYXRh IExQQw== cmFkZQ== c3Bpcg== IGNvbmNlaXZlZA== VGlwcw== IElvVA== IEdhbg== 6IGU IGJpYXNlcw== IGNvbnN1bHRhbnRz cGxlZA== X2h0 YXNzb2NpYXRlZA== XSwKCg== IGRlbGlnaHRmdWw= INGC0LXQug== SGVsdmV0aWNh KGxvYWQ= LWV4cGFuZA== X1dJREdFVA== dG9h IEFrdA== IG9tbg== IGNsYXVzZXM= SW50ZWw= Ki99Cg== X3JlZ2lzdHJhdGlvbg== IG9sZFZhbHVl IHJlc3RvcmluZw== IHVucmVhbA== T1ZFUg== CQoJCgkK QVRT X3Byb2Jl IGRpdmlzb3I= LnVwZGF0ZUR5bmFtaWM= 5bmz UHJvZHVjZXM= c3RhbXA= Lmpib3Nz CXRhc2s= ISg6 IHBzeWNoaWM= QGNsYXNz TWFydGlu IFBhc3NlZA== Y2xhcmF0aW9ucw== aGVs 0LDRhw== CWNvcHk= LWJpbg== emFu aWdyYW0= 4Ka+4KY= KHNpZw== IENhdmFs XyMj ICU9 b3V0bGluZWQ= IEFjaWQ= IHVucHJlZGljdGFibGU= LWRhc2hib2FyZA== SGV4U3RyaW5n K2M= LlB1YmxpYw== 4bqp IGNvbnZleW9y IEVC IHNlbGVjdHM= IGtub2NraW5n IENlYw== SUJVVEVT b3dhxIc= Z2F0c2J5 KnY= ZW50cm9weQ== IGRpc3BhdGNoZWQ= IGNhbWVs IFNhdHVybg== IG92ZXJ3ZWlnaHQ= KHBob25l cGFyYWJsZQ== JUI= X3ZlY3RvcnM= IGJyZXdpbmc= IFRr IERvd25sb2Fkcw== IFNhdmVk LlByaWNl IGN1cnZlZA== IFBhcmVudGhvb2Q= 6LY= LnBubA== cGxldGVseQ== LkRheQ== IGFkdmVydGlzZXJz IGVqZWM= IHByemVk 668= ISc7Cg== IEt1c2g= IFRBQg== IHF1ZXN0cw== IGNvaW5jaWRlbmNl dW1taWVz IEthc2htaXI= IEV0aGljcw== X2dyb3d0aA== IGFrdGl2 IGdyb3VwaW5n 5aKe X3RydXRo 5ZCs dG9kb3M= aXNldA== VGV4Q29vcmQ= w6R0dA== IFp1cg== cm95cw== X01BR0lD IGJyZXdlcnk= KFN0YXRl IFNNQUxM IFBsYW50cw== aXRiYXJ0 ZWFjaGVy IEFkZWxhaWRl THU= IGZpY2s= dW5kbGVz X2xvYWRlZA== 0LjQtQ== UG9sbA== cml0aWM= RUxZ ICsn IFByb2Zlc3Npb24= IHN0YW1wcw== IFNldw== c2Nyb2xsVmlldw== IGNvbW11bmlzdA== L3Byb2JsZW1z fQ0KDQoNCg0K LG8= IHVkcA== IG9iZXNl YXBwcm92ZQ== YW5jZWxsYXRpb24= X0dhbWU= IEhhc2h0YWJsZQ== YWRhcHRpdmVTdHlsZXM= IHBvc3Nlc3Nlcw== Lm1hdGNoZXI= ZnVuY3Rpb25hbA== TXJz CXNhdmU= IERiVHlwZQ== IGtlbg== Z2V0Q29udGV4dA== IG1hbnM= KHJlbA== IEJyb3RoZXJob29k KWAK 6Kej LkluZm9ybWF0aW9u T3V0T2ZSYW5nZUV4Y2VwdGlvbg== IFNlaw== Q2Fz IGJsb2dnZXJz RWl0aGVy KCIiIg== IHBpbmNo IGNvYXJzZQ== KXA= IFB1bHNl IGxlYXJudA== IGRlbnRpc3Q= IG9uY2hhbmdl IGRpcmVjdGl2ZXM= KGFjdGlvbnM= bnlkZXI= IFNoaXI= VHJhaXQ= X2RlcA== IFBFVA== IFJFUA== LkFwcFNldHRpbmdz Y3VhZG9y aWRlbmF2 IGVudmk= IHNsYW1tZWQ= IFNob290 IGRhdGVGb3JtYXQ= LmpvZGE= dmV5cw== ICkuCgo= IGNhcmVn IFBhcmFsbGVs X3RyYW5zbGF0aW9u LmZ1bmN0aW9ucw== Lm9icw== UnVudGltZUV4Y2VwdGlvbg== W109 b3ZlcnZpZXc= IFNjaGw= IG5vaXN5 IE9uUHJvcGVydHlDaGFuZ2Vk U2VuZGluZw== IHVuZmFtaWxpYXI= VXBvbg== IFByaW50cw== LnR5cA== IGZsZWVpbmc= CW1vdmU= KFVu IHFy 15w= X2JldGE= IHNraWVz CW1l V05E IHN0aWNrZXJz Ymxhcw== IGluc2VydHM= IHZlcnNlcw== IERldw== IHRhbmdpYmxl IGhlY2hv UE9M IHRlYXJkb3du b21uaWE= SUJF LmNvdmVy X3N0cmF0ZWd5 Xi0= c2V0UG9zaXRpb24= dWFsZQ== U2lnbmVk IGlmYWNl YXNlbGluZQ== LnNldFRpbWU= IE1pbmVyYWw= IEZpZ2h0aW5n c2tpbnM= IGRpc2NyaW1pbg== IGRhbnNr IFByaW5jZXRvbg== YWNpc3Q= ICgpKTsK dHJhY2tz aW1vbmlhbA== YWRlY2ltYWw= RVBST00= dWdnbGU= Lk5vdGlmaWNhdGlvbg== JG1haWw= Y2FudGlkYWQ= IEp1bmc= IHNlZWtlcnM= IHBsYXVzaWJsZQ== dGllcg== 0LXQtg== IHJhcHBlcg== IE1hbmE= IEh0dHBTdGF0dXNDb2Rl IGJ1cm50 bG9zZXM= IEZvdG8= IEpzb25PYmplY3Q= SW5zdGFncmFt IHN5c2NhbGw= IHJlYWxpdGllcw== IE1BVExBQg== Ol57Cg== VEVSTQ== IENiZA== IFBhcmFncmFwaA== IHRyYXbDqXM= IGNvbnN0cnVjdGluZw== IHN3YWw= IHBpZ2U= TExMTA== LWV4aXN0aW5n R2V0cw== IG1lbHRlZA== IG1pdGlnYXRl SGVu IGht aW1hcw== IEFv IFBlcmV6 IERBTA== IOuLpA== IGRpdmlz U3Rvcnlib2FyZFNlZ3Vl IE1vZGlmeQ== IMOcYmVy X09WRVJSSURF LnBlbQ== dW50b3M= IGVzcGHDsQ== IHs/ IFBBWQ== X2lwdg== IEZ1cnk= X18uX18= ZWxvdw== LWNlbnRlcmVk Y2hlY2tz X1JlZw== LUphdmFkb2M= CWxvYWQ= IExpa2V3aXNl 2KfZhQ== VU5F LnNlbQ== eGNi IENhdmU= X3NsZWVw IHNpbGVudGx5 IEV4dHJlbWU= LlRvVXBwZXI= CUNIRUNL IGN1ZQ== IFFCeXRlQXJyYXk= IGNvcnJ1cHRlZA== IETDqQ== IGltcGVk R2V0TmFtZQ== IGluYWNjdXJhdGU= IHNvYmVy 0LXQtQ== IGJhcmNvZGU= LS0pewo= aW5raQ== IMOpcA== IGRyaQ== IEFMVA== Pj4+Pj4+Pj4= b250YQ== W0w= IGludGVyZXM= dmVydGluZw== IGRpYWdub3N0aWNz cGRldg== 6Kk= IEludGVncmF0ZWQ= KS4n X2dj JHRleHQ= LmdhbWVz IFRlcnJh J1Jl LnRyYW5zZmVy X0ZJRk8= Z2V0TW9kZWw= IGJsYW5k IENvbGVtYW4= IHByaW1lcw== IOaI IGNyb3NzZXM= bms= R0lORw== ICde IEJsb2I= IGludGVyY291cnNl IEJsdmQ= IHdlaWdocw== X3JlZ3VsYXI= IFBlcnRo IHNlcGFyYXRpbmc= IGJpbGxlZA== LnRhYkNvbnRyb2w= IHB1cHBldA== IHV0aWxpemF0aW9u IOKWoA== IHN1Y2Nlcw== IGxhbXBz X3Byb2o= RXJpYw== IHJlbm92YXRpb24= IEZhbWlsaWVz IEJpdHM= cGFydGlhbHM= LU1lbg== c29sdXRpb24= IGR3YXJm LklOVEVHRVI= IExPQ0s= LmN0 IGV4Y2VycHQ= IFBpeA== IEZpcnN0TmFtZQ== QU5URUQ= IEFkbWly LWhlbHA= UHJpb3I= IEFsaWdu LklOU1RBTkNF TGluZUVkaXQ= KCcvOg== IGluZXQ= b2R1cw== LnBrbA== IEtZ dXBlcnQ= IG5lcnZlcw== X2dyYWRpZW50 fScsJw== X3VucmVm IHNhdHVyYXRlZA== IENvbm5lY3RlZA== IEZO RVhJVA== IHRlbGVwb3J0 IGF2YWl0 UGFnZVJvdXRl IGRpdm9yY2Vk KGxhbmc= ZnN0 IFR5cg== IG1lc3Nlbmdlcg== aWZzdHJlYW0= WFM= IEJhbmtpbmc= IGluZmVjdGlvdXM= IE1vbnM= X0xPT1A= IHp1csO8Y2s= IG9idGVuZXI= L3JlcG9z VmVs YWNybw== IHVzZXJSZXBvc2l0b3J5 c3R5bGVUeXBl IFNSQw== Vk1MSU5VWA== cmVjdXJzaXZl L2Jhcg== X2NoaXA= b21pbmF0ZWQ= IE5pdA== 4oCUdG8= IEJ1ZGRo 0L7QvNC10YA= IE1BRw== IENIRQ== X2Rlbg== LnJhaXNlcw== X2RlZ3JlZQ== IHB1bXBraW4= X3RlbXBsYXRlcw== X01FRElB IFRpbWVsaW5l IGJvdHM= T2JqZWN0VHlwZQ== IGJ1eXM= LnBvc3Rz Q0FM d2FpdGluZw== IERhbmllbHM= IGRhYmVp IFNpZ21h aWxvcg== aWdlbA== LFc= QURT KHBhbmVs 7LK0 aXRhdGluZw== LnBhbGV0dGU= IG1vc3F1aXRv IHRlZ28= KHBhcnNlSW50 IGRlc3B1w6lz cHJvbWlzZQ== IHdpag== dHlwZXNjcmlwdA== IFR2 X0lERU5USUZJRVI= KS4KCgo= X2ZsYXQ= aXRzdQ== VVNS ZXhwZXJpZW5jZQ== LWZpdA== cGhpbng= X3RocmVzaA== IGlkZWFsbHk= IEZyZWVtYW4= LERC X3J3 562J VWI= X3N0YXRpc3RpY3M= PSIiPjw= IGNob3Jl IHlvcms= aW5zdGFsbGVk QWRkaXRpb25hbGx5 IHBzdG10 eWxrbw== OjoK Rm9yZXN0 IGhlYWRzZXQ= IGdhbGxvbg== 0YDQtdC8 IHdpdGhkcmF3bg== IENhbmRpZGF0ZQ== IG1lbHRpbmc= IGZyZWV6ZXI= IGhs X0hFTFA= bWltZQ== KC8q IHRoaXJzdA== JHJldHVybg== bWVtYmVyb2Y= 0LXQsQ== IEh0dHBTZXJ2bGV0UmVxdWVzdA== KG9i X1Jlc3VsdA== IGFzc2VydGVk IGZ1bGZpbGxpbmc= IHN0cmV0Y2hlcw== cGFyYXRlZA== LWZ1bmRlZA== IOWb aW5nbGVz X2Nh LmNvbmRpdGlvbg== IERpc3BsYXlz IG9yYW5n IENSRQ== IGdsQmluZA== IFNlbGVjdG9y L3R5cGU= IEFsZXhh Y2hlZHVsZXM= IFBlbmluc3VsYQ== IHBhcml0eQ== CWRlc3Q= IERvb3Jz DQoJDQo= X2RpbWVuc2lvbg== IGFsb2Fk LlN0b3JlZFByb2NlZHVyZQ== KHBhcmVu IEJ1cmtl JyldCg== LWVuZ2luZQ== IHF1aXI= IEh5YnJpZA== IERvZQ== IG91dGxpbmVz IFRyZW5kcw== X05W cGVyaW1lbnRz IEhpbg== Pycs CVRleHQ= RlVM IHNtZWxscw== IHNsaWNr IG1pc2VyYWJsZQ== IEFycmF5QWRhcHRlcg== IHBhcmFtU3RyaW5n SG9t X2xpdGVyYWxz dXN1YXJpb3M= IHByb21wdGluZw== X2xhenk= IEFjdGl2YXRpb24= X29j V2Vhaw== IGFuZWNk IFVDTEE= PXJl aXNzZW1lbnQ= IEVzY29ydHM= RXhjZWxsZW50 IFBhdXNl IHJlcG9zaXRvcmllcw== VE9S YXJpYXRl X2lzbw== dXBkYXRlcw== aGFsYg== dWRpYW50ZQ== 66Gd IG5haXZl IFBlZw== IExvdW5nZQ== QVJHSU4= KGJpbg== T25DbGlja0xpc3RlbmVy IEZBSUxFRA== IGxpdGU= IGR6aWU= IExpdGVyYWw= aXZvcg== ZmNudGw= IGVhdHM= IHFlZA== VW5sb2Nr cmlkaW5n dW5kYWk= PU0= QVRURVI= Q29uZmlndXJlQXdhaXQ= aWNpYXM= dXN0b21lZA== IHN1Y2Nlc3Npb24= ZW5kVGltZQ== IEp1cGl0ZXI= IGp1ZGdpbmc= ZHJhdGlvbg== X2RvY3M= Lm1v IGVkdWNhdG9ycw== IFZpbmU= Q29uZA== W291dA== cWI= XFZhbGlkYXRvcg== IG1lYW5pbmdz IHByZXNlbnRseQ== IGRpdmlkaW5n b3R0ZW5oYW0= YXNjdWxhcg== IHRyYWlsZXJz IENMT1NF 0LDQvNC4 4oCZYWk= IEdhaW4= d29y IHBsYW5uZXI= IGRpc3RyaWJ1dGluZw== dmF0 bW9udGhz eGxhYmVs SEY= VmlvbA== LkJBU0VMSU5F 0LXRgtGB0Y8= IFJvdGF0ZQ== IHR4bg== OmJvbGQ= IGJsb3Nz Rm9yZ2VyeQ== KGVtYmVk IGpha28= c3ByaW50Zg== dGhlaXI= IGV4aGliaXRz LXN0YXRpYw== aGVjeQ== Z2V0QWN0aXZlU2hlZXQ= LmNsaWVudHM= 44GN X2hpZGU= W3dvcmQ= Q2I= YWRkSXRlbQ== YXhl X3JhZGlv YWxpb24= bW9kaWZpZXI= IHNhdHVyYXRpb24= IGRlbm9t X3BpeGVscw== bWVzcw== KGZs YXRpZg== IHNlY3M= IHByb3N0aXR1dGlvbg== IGdyYW5kY2hpbGRyZW4= IHBhcmFkaXNl IEZlbGQ= X0JJTkFSWQ== aXRvdXM= 4LmE IGZsYXNoaW5n LXNpZGVk IGNvbnRyYWRpY3Rpb24= LyoKCg== eWxhYmVs IFRldA== IGFkbWlyZQ== cmVzbw== IGxldHo= IFNFQVJDSA== c2xvdHM= IFJld2FyZHM= IEhvZw== IE5TRGF0YQ== c3Rhc2g= RmFsbA== IEFtZXI= TGluZWFyTGF5b3V0 L3Bob3Rvcw== IGZlYXRoZXI= IHwNCg== RG93bmxvYWRz LlN0YXJ0c1dpdGg= IC8vIw== aW5lVHJhbnNmb3Jt IGFmZmlk VnRibA== IFJvZ3Vl c2NyaWJlZA== IGZhdWM= IE1vbnJvZQ== IGRlY2xhcmVz bW9kZXJu cmVvbg== YXliZQ== UEFTUw== ZmVycw== X01VTFRJ IE1hdGhlbWF0aWNz IHN1ZGFo X0FUVEFDSA== IG51bWJlcldpdGg= IFNvbG9tb24= amlu b2dyYWZpYQ== w7Zs X2Rlc2lnbg== Y3VsYXRlZA== IEx1bmE= aWVzeg== ID0+Jw== IHJldmVsYXRpb25z QWxvbmc= KGVk IEZpbGVuYW1l IHlsYWJlbA== U2VjdXJl IGJ1c2Nh YWdub3Npcw== X1JFQ0U= IG92ZXJsYXBwaW5n RXh0ZW50 IGFudGljaXBhdGlvbg== Q2hlY2tz IEFMU08= b3Jj aWxpbmd1YWw= aXRhdGlvbmFs IGFkdmFuY2VtZW50 b3Vybw== IFByZWRpY2F0ZQ== 5b6X ZXJpYQ== IFBpZXJjZQ== b3Jpbw== IG1lcml0cw== IHBlYW51dA== LlBhY2thZ2U= IENvbmR1Y3Q= X1NFTlNPUg== IGJvaWxpbmc= IGludHJh IElHTg== IEZ1cg== LlJlZnJlc2g= IFJlYWNo X2RlY29kZXI= LkV4cA== INGC0LDQug== cGlsbA== LFE= IEdyaWxs IHBvcHBpbmc= LkFn IHByb3llY3Rv IG1pbGVhZ2U= IGVjb2xvZ2ljYWw= XV0pOwo= IMKt c3VicGxvdA== YWNhZA== IFRyeWluZw== cmVjaXBlcw== JGNyaXRlcmlh IFBlcnNpYW4= LWJvdW5k TUFTSw== IEdlc3R1cmU= IGtr IFBWQw== IHByb2hpYml0aW9u IGNvbWFuZG8= IExPT0s= U2hvcHBpbmc= IGRpc3RvcnRpb24= PEJvb2xlYW4= LkdldExlbmd0aA== dW1wdA== XFByb2R1Y3Q= ZWxsZXJ5 IGZpcmV3YWxs Zm9ybWF0dGVk LnJlZGlz IGVzYQ== IFJob2Rl U29t Lm5vbg== ICcpLg== IGdldFZpZXc= 4bqhbg== cHJ1cw== TWF0dGhldw== IHNpYQ== IEZvcnM= R1BV aWVudHJhcw== X0lOU1Q= IG9sYXJhaw== IGltcG9ydGluZw== VENQ LyIpOwo= ZWl0aGVy IGZyZXNobHk= Y2FzY2FkZQ== KGNoYXJhY3Rlcg== IEplZXA= b3RpY3M= X1VUSUw= Llh0cmFQcmludGluZw== LmZpcnN0Q2hpbGQ= IEV4Y2VsbA== IGR2ZA== IHRhbGxlcg== IHJhcw== eXBhc3M= IGFzc2lnbnM= IGdyaWV2 LW1vcmU= SkQ= IEJ1cm5z Jz4NCg== LkRlcGVuZGVuY3k= LlF1ZXJ5U3RyaW5n Lk93bmVy IGV4cGlyeQ== VGh1 KFZlYw== IGhhemFyZG91cw== IHJwbQ== QVBPTg== IGFkZFRhcmdldA== c3ZpbGxl cE5ldA== IEltZw== IFRJTUVS LkFuaW1hdGlvbg== IGJlaw== IGFzc29ydA== IGxlYmlo IGJvZHlQYXJzZXI= IHZpYnJhdGluZw== SURM IGJ1dHRlcmtuaWZl aW50ZXJz IHBlcnN1YWRl IExHQlRR 6Is= LnNvZnQ= IGJlYW1z X3N1cg== LkRlZg== IGxhYnM= CXBsdA== IHNraW5z IHRyYW5zZmVycmluZw== IGltYWdpbmFyeQ== X0VuZA== O2JhY2tncm91bmQ= IGxhcHM= X0NPTU1FTlQ= KFNETA== b25kcw== LlJlY29yZA== IEltcGxlbWVudHM= X3RpY2tz KCkpKQoK IGFyb3Nl XT8= IE1w IElDb21tYW5k IHNjdWxwdHVyZQ== IGNvbnRyYWN0ZWQ= PEhUTUw= IGNhbGVuZA== YXR5 L1N1Yg== IGt2aW5u X0lHTk9SRQ== IFNoYW5l TUxT IHN0aW11bGF0ZQ== UGFydGl0aW9u IG11bg== w7Nt ZXJhbGE= LWFjY291bnQ= LkJpbmFyeQ== Y8Op IHNlaXpl Y29ubmVjdGlvbnM= IAogICAgICAgIAo= IERpYWdub3N0aWM= VklTSUJMRQ== IFJ1bnM= IGltcHJlc3Npb25z c3VpdGU= b2JsZQ== fi0= YWt1a2Fu PFBlcnNvbg== IE5vcw== IEd1aQ== LndhaXRGb3I= UkVTRVQ= IHBvc3Rwb24= RGlzY292ZXI= YXJyaXNvbg== c2hhdw== Ymxvb2Q= QUpPUg== 5pu05paw IE11c2U= 5pS2 IHJldGFpbmluZw== b3R0ZQ== IG1vc3F1ZQ== IFNuZQ== IHN0YW5kYXJkaXplZA== IG1haW5sYW5k X3RocmVl dW5nZW9ucw== Z2V0RG9jdHJpbmU= IHdoYWxl IGFnZw== IFBvcnNjaGU= bm93bGVk bGF0ZW50 IFJlbGF0aW9u IC8vJw== IHNodXR0aW5n IFJlbWl4 X2Nvdg== IHNhaWxpbmc= IHZvd2Vk IHBvdHM= b3V0dQ== IGhhaXJ5 Y2FzdHM= UmVsb2Fk IHJlY29ubmVjdA== dGVyYQ== LmNoaWxkTm9kZXM= IFJhY2s= IGN1cnJlbnRJbmRleA== IGFsbGVu IOeUqOaItw== IEN1YnM= W1g= X1NFUQ== X1JFTU9WRQ== LmdldEFjdGlvbg== KC9e ZXJyYXI= IGV0aGVy Y3VydmU= IHNsYXA= IHVvbQ== T3RoZXJz IGVuZ3I= RGlzcG9zaXRpb24= IHN0YWdlZA== RXll IEF1eA== YXV0aGVudGljYXRl ICQ/ IEFuZHJlYXM= IHNldHc= LkFydA== IGZvcmVjYXN0cw== IGF1bnQ= LW1pZGRsZQ== IG1pc2Q= ZGVzaw== IGVzY29ydGU= IENhc2E= cm9waWNhbA== IGV4ZW1wbGU= cGxhbmV0 KFVJTlQ= IHdoaXA= IFBDQg== Y2xpZGVhbg== PSJc IG94aWRl IHN1Y2NlZWRz ZGVyaXZlZA== IEVjb25vbQ== X2Nvb3JkaW5hdGVz aXJhcw== RHJhZnQ= IHZpc3VhbGl6ZQ== QnJpYW4= X0FTU1VNRQ== IE9iamVjdElk IHRyYWluZXJz X0ZPUkNF IGNvbnNvbGVz LXByb2Nlc3M= bGljaGVy IFNpbW1vbnM= VGFraW5n IENsYWltcw== IGRpZmbDqXJlbnQ= QWN0aXZpdHlSZXN1bHQ= IHNucw== 6YCJ5os= IENydXM= IGxsYW0= cmFi IEpvYW4= QUFB CWZpbHRlcg== aXNob3Bz Z2V0dGluZw== 4LU= IHF1YW50bw== UGFzdA== b3ZpY2g= IGluanVzdGljZQ== IEZMT0FU IGFscmlnaHQ= XERC KEdhbWVPYmplY3Q= dWlzaA== KGJvdA== IGdhbGxvbnM= IFLDqQ== IFNhaWQ= IFNURE1FVEhPRENBTExUWVBF YWlzaW5n X3Byb2Nlc3Nvcg== ZWxsaWRvcw== dGVyZGFt IEJlYW0= VGV4dEFyZWE= IHJldG9ybm8= Lk1ha2U= ICQoIjw= IGxvY2tkb3du IHJlbWVkaWVz IHZlZWw= eGVl ZG9jdHlwZQ== Rmls IEV4cGFuZA== IGVtcGxveXM= IHNlc3Npb25TdG9yYWdl UGhw UHVibGlzaA== IHJldGFs ZmFicw== eW5hbWljcw== IHRvc3NlZA== IG51bWJlck9mUm93c0luU2VjdGlvbg== eHBhdGg= XG1vZHVsZXM= IGRpc2FzdHI= IE1VTFQ= Lk1lc2g= LXN0YWdl IHNkZg== aXR1bmc= dWdlcw== ID8+Ij48Lw== X2luZGV4ZXM= IHZhbHVhdGlvbg== IGxpZmVsb25n IGV4cGVkaXRpb24= KFlpaQ== IHBhaW5z IFBSSQ== IE1peGVk IENoYW5naW5n R2VybWFueQ== Y29tbXVuaWNhdGlvbg== Lm9yZ2Fu IE1hcmF0aG9u Z2V0UGF0aA== IEFjY3VyYWN5 IEdsb2JhbHM= Jyl9fTwv IE9XTkVS 4oCm4oCd IHN0YWJiZWQ= IHNjaGl6b3BocmVu IEZu IENPUkU= IERhdGFSb3c= IExURA== IG15dGhz IGZhbW91c2x5 fCwK IFNlb3Vs U2ly IEJlcms= UmVnRXhw LmdldFJvdw== IERlY29kZQ== Uk4= IG1hbmc= IGVtcGxveWluZw== X25vbWJyZQ== PFRhc2s= IEd1eXM= IEFydGlrZWw= QmVycnk= enVyZQ== IHZhbGV1cg== aGl0cw== IGx1Y3JhdGl2ZQ== IGluZm9ybWF0 Q2xpbnRvbg== IHRlcw== IENlcnRpZmljYXRpb24= X3dz IG9mZmVuY2Vz ZWJyYQ== IEF4aW9z cmVzdGFydA== TE4= LkVuY29kZQ== bWl1bQ== IEZlYXR1cmVk 0YjQuNCx0LrQsA== IERlcHQ= OyYj IE15ZXJz CXRyYW5zZm9ybQ== VGV4YXM= 16g= IFlvcmtzaGlyZQ== bG5hbWU= QnJl 44GT44Gu IHNjZW5lcnk= IGbDvGg= CQkJCSAgICAgICA= IERvb20= IEFETUlO KGVz INC80LDRgdGB0LjQsg== X2FzY2lp L0RhdGE= bGVzaG9vdGluZw== QmFu IG1lbW9pcg== INmG IEF1c3M= KXBhcmVu IGd1aWRpbmc= IGJheg== w7h5 QURN IGRtYQ== LlF1ZXVl IFN1cHBsaWVz IE1jRA== IEFnZW50cw== X2Ji c2xhc2g= IGhhc2hlcw== IGNyYW5r IFJhZw== IGF1dG9ub215 w610dWxv IHJlY3Vyc2lvbg== IENyYXp5 X3RyYWNrZXI= IE1i X3BoeQ== Zm9vYmFy CXNwZWVk IGNhbXBvcw== IG1vdWxk IGNoYXJpdGllcw== SEVJR0hU IGVhdXRv X3NvbHV0aW9u IERH bWFydmlu WWVzdGVyZGF5 IEJlY29tZQ== PGxs b3Jpcw== W25leHQ= IGluY3VtYmVudA== IER1cA== CW92ZXJyaWRl 5a6J CWNmZw== IHPDtg== IGRlc2U= LWRp IG9udHZhbmdzdA== IGRlY2lzaXZl 5Lu3 X2tlZXA= KERhdGFiYXNl Xy8= IENMTA== LW1ldGhvZA== CVBvaW50 IEJ5dGVCdWZmZXI= IHRyYWNlZA== YWRkVG8= 7IS47JqU YW55YWs= IGVtcHJlc2Fz KHJlcG9zaXRvcnk= LmNyZWF0ZVN0YXRlbWVudA== IGVsYQ== Rm9yZ2VyeVRva2Vu IGlzZW1wdHk= YXNpbg== IExvb2t1cA== 0LXQvdCw IHZpb2xhdGVz IFNtYXJ0eQ== IHphaw== KCQu U0hPVw== INCi YXJ1cw== KFRFU1Q= cGFja2Vk IGhpc3Rvcmlh IGNhbmNlcnM= IEtyZW1saW4= UmVkdWNl L2hvdw== IMSQ VElUTEU= LmxvY2FsUG9zaXRpb24= bGlhYmxl IOesrA== IGZyYW5jYWlz CWhhc2g= IGluaWNpbw== IENyYXNo IHsu IGNsb2Nrcw== ZHVjdG9yeQ== IFB2 6528 IGRvaXM= XC0= IGphYXI= IE1heWE= bW96aWxsYQ== CXJlc291cmNl ISEK YXlzY2FsZQ== ICctJyw= 5Y+W5raI IHN0YWxl Q29ybmVy w6hsZQ== aXRpdmVz emFz aWNvcm4= LkV4cHJlc3Npb24= w7N0 QXBwbGljYXRpb25z UmVzdHI= X0luZGV4 jbDsnbTthLA= IEpGcmFtZQ== c2l4 X0lNRw== 6JeP IE51bWVyaWM= IHdpcms= X1NVTQ== PERhdGVUaW1l IHB5bGludA== IGxhbWVudA== IFBvc2U= X2VudHJvcHk= IGVuY291cmFnZW1lbnQ= IGxhaW4= 5Yib5bu6 LWZy IGNvcnJlY3Rpb25z cGhhcw== dXVy YXRlZ29yaWFz IGNhdGFseXN0 LmFsdA== IEZlcm5hbmRv LkRhdGFHcmlkVmlld0NlbGxTdHlsZQ== IGhlcmJhbA== IFJH U1RFUA== SUZu IFRvbmc= xb5l IElOQ0xVREU= IGhj dHJhY2tlcg== CVN0cmluZ0J1aWxkZXI= IERlc3Rpbnk= IHNvcGhvbW9yZQ== IERlZA== IFBBUkE= aXpvbnRhbGx5 LWNoYW5nZQ== ZW5kaWQ= 6YCJ5oup aWprZQ== IEF0aGxldGlj YmFp Z2V0UG9zaXRpb24= Lm5hbWVzcGFjZQ== 6K6i5Y2V UkFDVA== IHJlbGlldmVk IHBvdXJpbmc= IGl5 cm92ZQ== IGFkb2xlc2NlbnRz IGF3ZQ== cmVhcw== QW50aUZvcmdlcnlUb2tlbg== cm93bmluZw== IFVuY2xl LkNvbm4= IE1lZGlhVHlwZQ== Lm9yYWNsZQ== SU5URVJOQUw= LGFuZA== IGZhdXg= aXBtYXA= JG1vZGVs IEdlb2Zm X0FYSVM= KCgpKQo= IG5lZ2xlY3RlZA== IHF1YXJ0ZXJseQ== IGRpZXNlbg== IGRyYWdvbnM= TmlnaHQ= L1dlYg== PFZlYw== CSAgICAgICAgICAgICAgICAgICAgICAg IE9icw== YmRk IGhlaXI= LWFuZ3VsYXI= TWVudVN0cmlw ICciPic= a2luc29u INC60L7Quw== b2duaXRpdmU= X2xp IGltbWluZW50 IGFmZmluaXR5 LnNpZ25hbA== IG5vdGNo IFN0ZWVsZXJz bWF4bGVuZ3Ro S0s= IEV1Z2VuZQ== X1BXTQ== cm9p IOKXjw== IEhhbWJ1cmc= Lk11c3Q= IGF4ZQ== ZW5lZg== IGFtYml0aW9ucw== IFNwZWNpZXM= IFN0cmVzcw== IGF3aGlsZQ== INCx0YPQtA== IHdpdGhzdGFuZA== IERlY29kZXI= X2ludmVudG9yeQ== IHsNDQo= IHRndA== IHJhaWxyb2Fk V0FTSElOR1RPTg== IG5lZ290aWF0ZWQ= TlNU LXBob25l LFU= IGV4ZXJjaXNpbmc= 4bul X1BJWEVM YXZvcnM= aXRlcmF0ZWQ= IHZhbXBpcmU= YWRhbA== SW5ncmVzZQ== IHVuZw== amVjdGl2ZQ== LmNlbGxz IG5hbm8= IG1hcmtkb3du X1JVTEU= KGV2ZW50cw== IGx1Z2dhZ2U= TUVTU0FHRQ== aWdrZWl0 JGNvdW50 QXR0cmlidXRlTmFtZQ== SUdJTkFM X0VudA== IEJG IENPTU1FTlQ= X2luaQ== IEV1cm9wZWFucw== IEJlbGxl 5ZG9 KVsn 5bqU IFVzZWZ1bA== LnJlZmVyZW5jZQ== KCkiLA== X2dyYWRl IEthdw== IHNlbnRlbmNpbmc= IHNvY2lhbGlzbQ== bW9uc3Rlcg== X0xBWUVS IGRlZXBlc3Q= d2s= IE5vaXNl IyMjCgo= IHByw6lj b3RsZQ== 0YLQtQ== YXVm aWJhbA== IGNvbnF1ZXI= PkVtYWls IGFtYnVsYW5jZQ== T0FE ICgiJQ== IEZJ LmZpeHR1cmU= IHRlcnNl ICAgIAkJCQk= IHNhbmN0dWFyeQ== dWdp IENvbXBhcmF0b3I= RGVmaW5pdGlvbnM= IGFzdGhtYQ== IGxhY3Q= IGhhcmR3b29k LmNsb2Nr IGF0dHJhY3Rpbmc= IE1vdXI= KGRpc3RhbmNl aWNpdHM= IGJvbm5l IEFDQ0VTUw== LkRlc2VyaWFsaXplT2JqZWN0 IFR5cGVk IGpldQ== IGFwcElk IENsYXJh IEhG IFJlaWNo aXBwbGVz Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ== X2RlbGl2ZXJ5 ZXJpYWxpemF0aW9u IHBsYWludGlmZnM= U2NpZW50 c2hvcHBpbmc= IER1bW15 IFdhbGQ= R3JvdXBOYW1l IGluc2NyaXB0aW9u ZWxvZw== Ojo6Ojo6Ojo= X2xk QmFja1ByZXNzZWQ= LlJhdw== IE9uVHJpZ2dlcg== IG11c2V1bXM= IEJlZW4= IEFkdmVudHVyZXM= IHNsYXRl IGxldHQ= IHN1bmQ= IEdpbg== IE1lY2hhbmljYWw= LnNoaXA= QXBwQ29tcG9uZW50 IGRlc3RpbmVk IGR3ZWxsaW5n UHJvZmlsZXI= UHJlcGFyZQ== emVpY2g= IHNpbGljb24= KGhhcw== ICMl VklERU8= IGNvbGxhYm9yYXRl TGlu IHNjb3Blcw== KGNsYXNzTmFtZQ== KHNk YW5kaW4= LmhhbQ== U2VydmljZUltcGw= LWRlc2NyaWJlZA== IGlyb255 c3RpYWw= IEh1YXdlaQ== KHJlcG8= IHVuZXhwZWN0ZWRseQ== IEthaQ== Lmluc3RhbGw= XHhm IGV4aGliaXRlZA== X1RDUA== IE94 X0NITw== IHByb3N0aXR1ZXJ0ZQ== IHbDpA== IHNpdG8= IGNvbnN0aXR1ZW50cw== IENvbnRpbnVlZA== IFNBVkU= cnNz L21lc3NhZ2U= dWJlcw== IG1pc2RlbWVhbg== IHRheGF0aW9u IHN0b3J5bGluZQ== aGFpcg== IEZpbmRz U0lH dmVyaWZpY2F0aW9u fj0= Lmhw SXRlcmFibGU= 0YvQtQ== YXRvcmk= IGN0cg== Ung= Xyk7Cgo= ZGFn LnBpbg== IHBzZXVk IGludm8= 0YHRgtGA X3BpeA== 5Li656m6 IHN3b3Ju 4oCUb3I= X3JlZ2lzdHJ5 IGRpc2FzdGVycw== IFJPSQ== IOKAlQ== YWt0dQ== Zm9yZXN0 YmVpdGVu 4oCUSQ== dWV2YQ== ZWd0 IHNwaWtlcw== VVJFUw== IFJlY29tbWVuZGVk IGV4cGxvaXRlZA== IEZyZWRlcmljaw== X0NPTVBMRVRF IERydWdz ISEhISEhISE= IFJpdg== U1RPUA== Uk9PTQ== IFBBU1NXT1JE Q29va2llcw== LkVs 4but IEJlcnQ= IGhhc2hlZA== aWNlc3Rlcg== IGRlY29yYXRvcg== IHF1ZXJ5U3RyaW5n OjsK ICJbIg== b3RvcGU= LUFtZXJpYw== IE1hdHRoZXdz VVJBTA== 4oCcLA== U3VtbWVy Zm9z X0NPTlRBSU5FUg== X0FDSw== IGZpbHRy X2Rpc3A= X1Jl IGZhY2lsZQ== 0LDRiA== IOyVig== IGViZW4= IHNwcmluaw== IFF1aW50 PlY= IGhpc3RvcmlhbnM= b3VybWV0 IE1vbml0b3Jpbmc= bGVkZ2Vy Y290dA== IHdhcmU= R0dMRQ== Y2Fycw== IE1FRElBVEVL IHZvbHVwdA== X1ZpZXc= SEVM KGNvcHk= KHN0YXRz IGNocm9tb3NvbWU= IEN1cnRpcw== LWNvbmY= KGFzc2V0 IGh2b3I= RmlsZVN5c3RlbQ== PD4oKTsNCg== b2NvZGVy IENhbm5vbg== KXg= IFNtb290aA== IFNBUw== X2Nl CXByZXY= X21vdmll RWM= X3dhbGw= PEJ1dHRvbg== IEZBU1Q= IG9uVmlldw== dWxhbg== IFNVUFBPUlQ= IGdlc2NoaWNodGVu IFNvbnM= SW1t JElGbg== IGZhaXJuZXNz IGRwaQ== YXRzdQ== Sm9zaA== RXF1YWxpdHk= IH0oKQo= X2xlc3M= IFJhdGlv IENhdHM= IFN0ZXJu TW9uc3Rlcg== IG1lcmN1cnk= w7xocg== IHBsdXNpZXVycw== LmRlc2VyaWFsaXpl c2NvcHk= LkZhbHNl KWFuaW1hdGVk IEV4cGVydHM= ICIiKXsK LldoZW4= c2VlYWxzbw== LnVucGFjaw== TEVN LnNlbGVjdEFsbA== IHBlcmNlcHRpb25z dWRpbmc= aXJsaW5n IFByaW50aW5n Z3JhbXM= IEZpbGVTdHJlYW0= ZXJ2aWxsZQ== aWxvZw== aWNtcA== X0NvdW50 IGxpdmVzdG9jaw== LWNh ZG9jdW1lbnRz IHBvbGVz CXdhbnQ= IGZsdW9yZXM= IHN0YW5kcG9pbnQ= IEh1Z2U= IHJhZGlhbnM= IFVJQmFy RURJVU0= IEhpc3Rvcmlj X2hvbGRlcg== IE1hcmluZXM= IHTDpA== LkxpZ2h0 cXVpcmVy YXNvbnJ5 ZGl2aWRlcg== IEZsdXR0ZXI= X2Zi cmVzdHJpY3RlZA== IEV2ZXJ5Ym9keQ== TsOjbw== IGtub3Q= IFR3aXRjaA== IGhhbGx3YXk= KENvbGxpZGVy SW5wdXRFbGVtZW50 PykK L29mZg== Lyk= cGxheWVk W09G IGJhdHRpbmc= X2Rs IGNvbWVkaWFu IMOpdg== IERFTQ== IEVkZW4= OndoaXRl Jycs Q29uc3RydWN0aW9u YWNlcmI= IHRhc2tlZA== Lm1hbmFnZQ== UmVsYXRpb25zaGlw IHBob24= bno= X0JHUg== VmFsaWRhdGVBbnRpRm9yZ2VyeVRva2Vu X2Fpcg== 4oCcV2hlbg== IGdsZnc= IENvbnZlcnNhdGlvbg== X1RPVEFM LFo= IGdyYXo= IGl0ZXJhYmxl IFBBU1M= IGFkdmVydGlzZQ== IG3DtmdsaWNo L3RyYWlu IFZvbGtzd2FnZW4= IGNyZWVweQ== ICIpDQo= UVVFTkNF IGFsdGFy IGVkaXRz Y29tcGlsZWQ= YXduaW5n IER1bmdlb24= IG9zZw== TmF2aWdhdGlvbkJhcg== IHRyZW5kaW5n IEVjbw== b2dnbGVz Y2RvdA== fC0= U2ll ZWNyZXQ= IE5lZ2F0aXZl IExpbmc= IERJTQ== IENXRQ== IENhcnJpZXI= IGNhcnRyaWRnZQ== X3VzYg== PW9z IEphY2tpZQ== IG90cmFz IGNvbW1vZGl0aWVz IFByZXNlbnRhdGlvbg== KSYmKA== IE1hcnRoYQ== IENhdGhvbGljcw== IE1vbmQ= 0L7QsdGL X2Fic29sdXRl IGFzaGFtZWQ= cG9uc29ycw== dGFs IHNhZG5lc3M= IHB1w7I= RmFkZQ== LXByZXZpZXc= IFJlcXVlc3Rz IENhbHZpbg== aG9ybg== UmV1c2VJZGVudGlmaWVy KHByb3ZpZGVy L2FwcHM= aW1lbw== CUNsYXNz U2Ftc3VuZw== IFdPUkxE IGNpbm5hbW9u ZG90ZW52 IElVc2Vy IERFVg== X0NoYXI= LmliYXRpcw== ZXRp L21l c3N0 LnN5bQ== IFJ1Z2J5 LW1hc3Rlcg== YWphcg== IFlFQVI= IG9kcA== IFJvbGVz IGJpcGFydGlzYW4= YWlsbGU= IGJsb2NrZXI= IGdyZWVucw== LlNFQ09ORFM= IGJlbGlldmVycw== IExpa2Vz RkxPQVQ= IG1haw== IGdjYw== 4pWQ4pWQ KCJ+Lw== U0NSSVBUT1I= IHRvbm5lcw== IFNhbmc= IHRyYW5zcG9zZQ== ZW5uYWk= UHJlZA== IHNvbGx0ZQ== LmdpdGh1YnVzZXJjb250ZW50 KHByaW50 IEhvbGU= 55yL YWRnZXQ= IHByb21wdHM= IGdlbmV0aWNhbGx5 IEhvZA== IHZlcnRpY2FsbHk= X2NvbnRyb2xz 0YHRgtCw0L0= Iil7DQo= JHRpdGxl IH0pLAoK IHN0YXRld2lkZQ== IENvcnJlc3BvbmQ= IEF0dHI= aXRhbnQ= RWxlbWVudFR5cGU= IG91dHdhcmQ= IGZhbWlsaWE= KGFydGljbGU= IGJsYXQ= wqAK IGdsR2V0 IFJlY2VpdmVy ICUt YWRhbQ== V2lubmVy IHRhaWxvcg== X3B3ZA== ZXJ0ZW4= U3Rhbg== CWFsbA== YWxpdmU= c3RydG90aW1l 77+9cw== c2Vzc2lvbnM= JGNvbm4= YXNzaXN0 IGNoYXR0aW5n IE1hbnQ= ICVA ICIiKTsKCg== IGRndg== IO2VqA== LnJlcGVhdA== X01lc3NhZ2U= IGFkdmlzZXJz L3BhdGg= IGtlcw== KX08Lw== TWlzYw== IGJzb24= IHRyaW1tZWQ= IEFjaw== VmVydGV4QXR0cmli 57Si dWF0ZXM= Lm15c3Fs IGRlc3Rpbg== IHByb2Js KENvbnN0YW50 YXNzZXM= LWltYWdlcw== X0FSRUE= X18qLw== W10o IHNpZ25Jbg== xJE= eHI= YWhpcg== LmZpcmVzdG9yZQ== IHNlcXVlbnRpYWw= IElkZWE= LWJhc2lj X3BhZw== IGluc3RhZ3JhbQ== b3Ryb24= X2FsaWdubWVudA== XFxcXA== LkZhY3Rvcnk= LnJ1bGU= LmNoZGly IGxpYnJv KGdhbWVPYmplY3Q= LlRvb2xTdHJpcEJ1dHRvbg== IGRpc2NvdmVycw== LkFyZ3M= ZG9i IHZu 4oaS IGTDvA== IFhN IGFsdW1uaQ== IGhvbmU= IHNlY3VyZWx5 X2Ryb3Bkb3du RGlzY2xhaW1lcg== IGR6aQ== KHRpbWVzdGFtcA== Jyld IGN1bHRpdmF0aW9u Li4uCgoK IFRyZWF0eQ== IERpc3M= IGNvbmZsaWN0aW5n LmdldFNlbGVjdGlvbg== IHBsYXlhYmxl IFNpbGs= IEVxdWFsaXR5 IG1veQ== IGZsYXR0 IG1vdGl2ZXM= UGVyZmVjdA== LmV4aXN0 IHR3ZWFr IG9taXQ= IFR3aWxpZ2h0 IGtpc3Npbmc= IGNocmlzdGlhbg== KFNF X2RlZmluZQ== IFBlbmc= U29ydGVk J2lu TG9ncw== 4buHbg== IG55bG9u RHVtcA== SW1hZ2luZQ== cmVuYW1l IGJlZm9yZWhhbmQ= cHlnYW1l IGJweQ== IERq IHRpdHVsbw== IG5sdGs= IFNjaG1pZHQ= IENhdg== KG9uZQ== ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA= LmdldE1vZGVs IFB0 YXRvaQ== LmxvY2Fscw== YnVyc2VtZW50 UHJvdmluY2U= IEFwcHJvdmVk KCk8PA== w7NyaWE= dXNjaA== IEplbm55 YXJyYW50cw== IExpYmVydA== TG9yZA== IFJlbW92ZWQ= X2NvZGVj LmJ1bmRsZQ== IEdvbnphbGV6 b3BlcnM= neWni+WMlg== ZXR0aW5n IGdvZGRlc3M= cmlwZQ== IG11c2N1bGFy CQkJCQkJCQkg IEh1Z28= IG1lam9yZXM= bG9pZA== cml0ZWxu Z2lz YWRkb24= ICgoKCg= YXBwb2ludG1lbnQ= cmVzZXJ2ZWQ= CWZyaWVuZA== X2F2YXRhcg== Qk9PTEU= YWhp LUVORA== IGlmZg== w7Ni IEJydW5v cm93c2FibGU= IFBvaXNvbg== KGZsYWdz dXJ0bGVz IEFuaW1l IG1pZ3JhbnQ= CXN0cmNhdA== KHJlcGx5 IFJlZnVnZQ== IEJX ZWZ1bA== JHZhbHVl ZmVk ICAgICAgICAgICAgICAgICAgICAgICAK 6LWE KGNt IHZ1bG5lcmFiaWxpdGllcw== IFsoJw== IHVuYmVsaWV2YWJsZQ== c3RyaWN0aW9u ZW50aWV0aA== IHByYXlpbmc= Q2xhaW1z IGthdWZlbg== bsOp IHBvaXNvbmluZw== Y29sbGVjdGlvbnM= IGluaXRTdGF0ZQ== IFNldmVyaXR5 IGNvbnRlbnRpb24= IAoJCg== LmNvbnRyb2xsZXJz c3RydWN0dXJlZA== aWN0aW0= IE9iZXI= IC8qI19f X09U IEFtZXJpY2Fz IEFkYQ== UHJvZHV0bw== Lm11bHRp IGdyYXBl YmVn 5p+l6K+i IHF1YXJ0eg== IFJvbWFuY2U= IE1pZHdlc3Q= IGhvdXNlZA== IGZ1cm5pc2g= aWNvbnQ= LnVuc2hpZnQ= b3RyZQ== IMO6bg== aXBwbGU= IHN1YnVyYg== dWFsaQ== Vm9pY2U= LklzQW55 LGNvbHVtbg== IFByb3NlYw== SURB CXBvc3Q= cHRvbXM= dsOp IEluZ3JlZGllbnRz w7ZmZg== Lm9wZXJhdG9y IDw8PQ== bGFzdGlj IHJlc2VtYmxl VW5hdXRob3JpemVk IHR1dHRv X1NXSVRDSA== X1JFQURZ fT0= bm93bGVkZ2U= IGFwcGVuZGVk dW5nYW4= 4oCZZW4= IExvcmVu cHVibGlzaGVy IE1H fSwi IFdhbHNo VGVtcGxhdGVz X3NvY2lhbA== IHBhcmlzaA== IFNwbA== bWluYXRlZA== KEZBTFNF IGZvcmVmcm9udA== bW9kaXR5 IGJpbGF0ZXJhbA== IGNvbXBldGl0 IGNhbmRsZXM= LmRw IGNvbGxlY3Rz dGVsZWZvbm8= IGF0dGVudA== IExlbW9u aXphZGE= IHRoZXJhcGllcw== IHBhcmFkb3g= IHRhcw== LXN1Ym1pdA== ZWtlcg== SU5hdmlnYXRpb25Db250cm9sbGVy IG1ldGF2YXI= IHNld2luZw== IFppbWJhYndl IGxhd2Z1bA== IGxvcmU= IExvYWRz INGB0L7Qt9C0 LnByb21pc2U= IEZhY2Vz LlBsYXRmb3Jt LmdldExvY2F0aW9u IHRyb3VibGluZw== IHbDrWRlbw== IEZlYXR1cmluZw== 5Lqn cWVk IG9uQmluZA== IHRvZGRsZXI= Q2xv RGl2aXNpb24= LWdhbGxlcnk= IEdlbGQ= c3BlY2lmaWM= RmllbGROYW1l X2V4Y2Vs XGh0ZG9jcw== IERW ICY6 IHR3aWc= IENvbmNlcm4= IHNob3RndW4= IG5pY2tlbA== IEx1eHVyeQ== X0tFWVM= Lm5weQ== xa8= IGZvcmVoZWFk zrI= IGVuZGFuZ2VyZWQ= L3RoZQ== cGlwZWxpbmU= xbE= bmVv RXhwbG9yZQ== U3BlY1dhcm4= IGludGVyY2hhbmdl KHBp YmlydGhkYXk= RGF0YVJvdw== IFNQUg== IG9zdGU= ICJ+ YXRpc2ZhY3Rpb24= Tkg= b3Jkbw== LWZvY3VzZWQ= J0E= lok= LmJlc3Q= IFNwZWNpZmljYXRpb24= Lz4uCgo= b2dlbmVzaXM= IE9QVElPTlM= dXB0b29scw== IG1pbGl0YW50 IGV4aXRlZA== aWdhcg== IENPTU0= IERpc3Bvc2FibGU= YXljYXN0 IHJvd3NwYW4= IHN5bnRoZXM= IHNvbmRlcm4= IDwhLS08 IEVuZGU= LnZhcmlhYmxlcw== IGNvbnNlcXVlbnRseQ== c2Rr U3VwcGx5 cmVzcG9uc2l2ZQ== T3BlbmluZw== cGhvdA== IH1c IGJ1bGxzaGl0 IGJlYWNvbg== X3NhdA== IHNuYXBz IEdIeg== TE9ORw== PHBhaXI= IFsKCg== IFZlcmc= IEVpbmU= L3Bvc3Rz IGFyYWI= IHN1bWE= 44Oz44OI IHNjYXJj IG9sZWg= ID8/Pw== IE9mZmVycw== eGVk IGZ1bGxXaWR0aA== LWFjdGlvbnM= T3V0ZXI= IEV4cG8= w6lyZXI= Lkhl REg= IGhpbA== IE1pbGxlbm4= 0LXQvdGM SWNl X2dyYXk= INC/0L7Qu9GD0Yc= IFB1bms= IHRpbWV2YWw= IGlzYQ== IENIdG1s LkRhdGFQcm9wZXJ0eU5hbWU= IGRpeQ== dG91cg== IGpUZXh0RmllbGQ= IGplbGx5 IGFra2E= LWVyYQ== RGVwcmVjYXRlZA== X0lNUEw= IE1vbnRocw== X0lURVI= IGFydGU= IEhlYWRpbmc= IEJvaA== IHByYWc= IGRvd25zdHJlYW0= IEJPQVJE X2tleXdvcmRz IE1ldHJvRnJhbWV3b3Jr KS0o PEV2ZW50 4bqldA== IFByZWNpc2lvbg== IE1SSQ== aGVyZW5jZQ== aXhv KSkpewo= KCk/Pg== IHNhYXQ= IFdhcmVob3VzZQ== X2F0b21pYw== IHZvaWNlZA== SXRlbUNsaWNr ICAgICAgCQ== LlJlc3VsdFNldA== L3BsdWdpbg== IGhhbGxz PWZvcm0= IFdhZ25lcg== ZW1haWxz JSUK VU5LTk9XTg== IFJpbQ== dWludHB0cg== IExpYmVyYWxz IHRlcnJpdG9yaWFs IE11cmRlcg== IExhZGVu IHByZXNpZGVudGU= KGNhcA== IH0sewo= YXZvdXJpdGU= ZmluZEFsbA== IGFwcGxhdWQ= IOuplA== L3Bob3Rv X3N5bg== LndhbGs= IHN1bnNoaW5l IHN0dWJib3Ju IGRvd25zaWRl IExURQ== LWJ1aWxkaW5n UXVlcnlCdWlsZGVy X2Rpc2FibGVk VGVycg== YWtyYQ== UmVmcmVzaGluZw== X3Byb2Jz IGZvbGw= PmI= IGNvbGxhdGVyYWw= JGVycm9y IGFjb21wYW4= X2l2 K2Q= YWp1 IOKd c3VybmFtZQ== LmFydGljbGU= IGJpY3k= IjoKCg== Pjw/PSQ= 0LrQu9GO0Yc= ZWNvbWU= RmluZGluZw== KHBk IHJlY3Rhbmd1bGFy ZXN0bw== aWhpbA== PScnKQo= IG1hbnNpb24= X2ZpbHRlcmVk YW5lZA== UFJPRFVDVA== TE9HWQ== X2ly LlJlbW90ZQ== IGV4ZWN1dGVz b3RlY2hub2xvZ3k= IFBST0NFU1M= IHJvd0luZGV4 Z2V0WA== TXV0 aW5za3k= KHN0cmluZ3M= IE1veg== Rmxvb3I= LlN0cnVjdA== X3ByZWRpY3Rpb24= IGNhcnJpYWdl IGNvbGxlY3RvcnM= IFdoZWVscw== IGJ1bmRsZWQ= YXhlZA== a29s X2Nyb3A= IGJsb29t QmVzaWRlcw== IG92ZXJyaWRkZW4= IHN1Ym5ldA== aWVuaWE= Kj46Og== IFByaW1pdGl2ZQ== IOag LkNoYXJhY3Rlcg== 6KGo56S6 IEFESEQ= Uk9Z SmFwYW5lc2U= T1VT OlVJQ29udHJvbEV2ZW50 IFBBTA== aXphY2lvbg== IGNoZXJjaGU= b3J0aW5n IG9yZ2Fz LlV0Yw== ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA= XERvbWFpbg== T1JB IHRlcnJhY2U= IHByaXM= CQkJCQkJCQkJCg== IHJhaWRz X2luY3JlbWVudA== IHVuanVzdA== JG9wdGlvbnM= b25DaGFuZ2U= Qmxvb2Q= RmlsbQ== IGhhbmRpbmc= IG11Zw== U09MRQ== 44OV aWNvbmR1Y3Rvcg== IElzbGFtaXN0 ICIiKTsNCg== LW92ZXJsYXk= LGNvbA== 6Zw= YXJyaW5ncw== X2NvbnRyYWN0 CWxs cGlw X2VtYmVkZGluZw== IHBlcm1pdGU= IG1vZGVt IHRyaWdnZXJpbmc= KGh3bmQ= LiIpXQo= IHNhbnQ= IGV4dGluY3Rpb24= IGNsYXNoZXM= LkF1ZGlv IHN1bw== Lm11bHQ= IHNlYXNvbmVk LlZhckNoYXI= cG93ZXJlZA== ImNvbnRleHQ= IG1lbmM= KEdyYXBoaWNz JHdoZXJl IHJlY3VwZXI= YWNrbGU= IG5ld0RhdGE= IEJyZWFraW5n ZXJnZWQ= IENQUFVOSVQ= IE11bGw= IGtvbW10 IExlZWRz JywnPQ== Lm5leHRUb2tlbg== IFJpZw== UkVUVVJO CXRpbWVy fV97 IE1hcmluYQ== IHNsb2dhbg== SVpFRA== T3BlbkdM X1BhZ2U= YXRpdmFz IGhhemFyZHM= J3ZhbHVl IGNvcnBzZQ== IEZsb3dlcnM= X29ubGluZQ== ZGFs IENvbGxpc2lvbg== w6BuZw== IGZlcnJ5 IHBva2U= IFRvdXJpc20= aW5lcmFyeQ== L1NldA== LkVtcGxveWVl PkA= LHZhbA== IE1pbGY= YXZleg== UmV0cnk= LiIv IHJvdW5kaW5n LXBsYWNlbWVudA== IGNlcnY= TWV4 IE1zZ0JveA== X3Npbms= bWFuaWE= X2NyZWRpdA== R3VhcmRhcg== IHZhbml0eQ== IGltbXV0YWJsZQ== IGNvbnRhbWluYXRlZA== 0LrQsNC3 5Liy YWNoYQ== IGhhdGg= IGVudW1lcmF0aW9u LmdldEJ5 4bq/dA== IERhbw== b2JpZXJubw== IEd1dA== X1BJUEU= LmFkdg== IEd1dGVuYmVyZw== YWRo 66y4 ZnVzYw== LlZL cHRh IEVNUA== LkZpcnN0TmFtZQ== IHJlYWxpemVz LmNn IHVuaXRl UExJVA== IEFiZHVs IE1FRA== UkFJTlQ= IHF1ZXN0YQ== c3RkaW4= IGNhbG9yaWU= CWdsQmluZA== IGFybWE= eWxsYW5k T01Q LXE= IEtoYWw= c2FsYXJ5 CUFORA== c2dp X3RoYW4= LWJ1aWx0 ICsvLQ== IG5hcmdz X2xhdW5jaA== IFNR em9u IEJlbmVk X3VuaW9u PigpOw0KDQo= IFNpbXM= IERhdGVz CUNvbm5lY3Rpb24= IFBlcmM= Z3JhbnQ= YW1waWw= IGFnZ3JlZ2F0aW9u ZXNlbGVjdA== X1NVUA== KHsKCg== Lm9t IHdt LmNvbnRyYWN0 LU9yaWdpbg== IGdlbWU= ZnJlZXpl TlVNQkVS LmN1cnI= IEdsYWQ= c2xh IFJlYg== 0LXRgdGC0LLQvg== YXJib24= L2NvbnRyb2xsZXJz U2xvdHM= LmRlZXBjb3B5 RlVMTA== dWlyZQ== QHN0dWRlbnQ= 4LmJ4Lit VHJhbnNsYXRvcg== IHByZWZlcmFibHk= Y2hlbWlzdHJ5 IEphY29icw== bmFy ICgiXA== bmVhcg== aWZpcXVl CWNvbHVtbg== IG1pbnV0b3M= aWdlcw== IGVzdGFibGU= LWRpc2M= KENoYXI= a292 ZXhhbXBsZXM= X18oIg== INC60LDQug== IEJvcmlz KGR4 c3By IG92ZXJoYXVs YXRvb24= IEhhcmxleQ== aWNhbWVudGU= 4paI4paI4paI4paI ZXZpdHk= dXNoZXI= LlZpc3VhbFN0dWRpbw== V2F2ZQ== IE5vcm1hbGx5 c3Rvb2Q= b3JuaW5ncw== IGhhbmRtYWRl KGxvZ2dpbmc= IGNhcmNpbg== YWNqYQ== IHN1cGVycw== IHNpZWdl CUlm IElMb2dnZXI= VUFSVA== QW5pbWF0aW9uRnJhbWU= IHRhcGVz IGFpZHM= IENvbG9uZWw= dmVlZG9y IG1kbA== cGhvbg== RGlzbWlzcw== QXZhaWxhYmlsaXR5 VW5pZm9ybUxvY2F0aW9u IGlkZWFscw== cXVldHRl a2VpdGVu IEVNQUlM IE5lYg== IHN1bW1vbmVk IGdvdmVybm1lbnRhbA== IEhvcnJvcg== Y2hhbmdpbmc= IEFjdGl2YXRl SWxs PHRib2R5 Y3JlYXRpdmU= IEJMRQ== IG1hZG5lc3M= T3JOaWw= IGhpbg== xZM= LkdldEtleQ== X2NvbnNvbGU= Ik91cg== IGd1aW50 IGFtaQ== IHJlZmxlY3RpdmU= IGNyYWNraW5n IFJp UkFM dXJzZWQ= cHVyZQ== IHJlcGFpcmVk IHRpZ2Vy IE5pY29sYXM= VnM= bnRo LmV4cHJlc3Npb24= IHNlYXM= X0FDQ0VQVA== IGZvcmM= IEZyYXU= IHRocmVzaA== IM+A KEJBU0U= X09wZW4= V3VudXNlZA== IERvbWVzdGlj KHByaXY= Z3Vlc3M= Ly8hCg== Z2V0SXRlbQ== KCkpCgoK bXV0YXRpb25z IHN0cw== IGRlbWVudGlh c3Bva2Vu JHBhcmFtcw== IHBhdHJvbnM= IHJ1bndheQ== IEJVWQ== Lldhcm5pbmc= IG5ldXRyYWxpdHk= emhvdQ== 0YDQsNGJ YWt0ZXI= IENvbnN0cnVjdG9ycw== w5NO IFByb2dyZXNzaXZl IEJ1cmdlcg== IGluY3VycmVk IGltcGxpY2l0bHk= X2Vudmlyb25tZW50 IGV4YWNlcmI= IGVuZHVyaW5n c2lj IFBhcnRpY2lwYW50cw== X0Jsb2Nr IGVucm9sbA== X2VtcGxveWVl IFBlcHBlcg== bGF1Z2h0ZXI= 44OW J107Pz4= PScu KHJlbmFtZQ== IHNoZWx0ZXJz IEFNQQ== X2dhcA== IFJFVVRFUlM= eGFtcHA= T01JQw== IHBlZGlkbw== IGTDqXZlbG9w X18oLyoh X29k d2VyZQ== X051bWJlcg== X211bHRpcGxpZXI= S0VFUA== IHNob3dlcnM= IG1hZ2U= IHNpbm8= Y3Jvdw== LmlkeA== X25vdGljZQ== dWVpbA== IG15cmlhZA== IEF2YWlsYWJpbGl0eQ== Y2VudHJhbA== IEFCT1VU IGluY29ycG9yYXRpbmc= IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCg== X3dpZGdldHM= IHN5c3RlbUZvbnRPZlNpemU= w7ZydA== L2pwZWc= IFNNVFA= KGJyb3dzZXI= Z3Vucw== c2V0dw== X0FWQUlMQUJMRQ== IGluY29ycG9yYXRlcw== L2FuZHJvaWQ= eXg= 5biD X2xhYg== IGxlYWtpbmc= IEhpbnQ= w7xuY2hlbg== LlNjYWxl IGZpcmV3b3Jrcw== IGxQYXJhbQ== YnNk YXhvbg== KHByZWRpY3Q= Q29uZ3JhdHVsYXRpb25z IFNwZWN0cnVt SVJD IEFkbWluaXN0cmF0aXZl IGltcHJpc29uZWQ= UlNwZWM= IHJldGFpbnM= IHNldHRsaW5n IGNpdGF0aW9ucw== IFdvcmxkcw== c3RyY29udg== b3VzYW5k IEJlZ2lubmluZw== IEFuZHJld3M= IFNoYXJvbg== RXhlY3V0aW5n Z3JvdXBJZA== YWRkRmllbGQ= IGV4cGFuZHM= IGtpbG9tZXRyZXM= bGlua3k= IGdycA== SU5BVElPTg== QnJpdGlzaA== IGNvbXBvcnQ= LkRhdGFHcmlkVmlld0NvbHVtbg== IFByb2R1Y3Rpb25z aWxkZW4= IHVuaXg= X2dhbGxlcnk= X1BST1ZJRA== b3JkZXJpbmc= X2Fubg== Ymg= LkRlc2lnbg== IHRyZWZmZW4= IHVuZGVybGluZQ== X251bXM= 7ZWc64uk KXY= dXNpemU= IGRpc2FwcGVhcmFuY2U= VG9Cb3VuZHM= IHBjbA== IFdpbm5pcGVn IFNoZXJtYW4= X2xhbWJkYQ== bmFudA== IHJvb3RWaWV3 LkZsYWdz IGNlbnNvcnNoaXA= c2VudGVuY2U= LnJlYWRJbnQ= X2Fzc2lnbm1lbnQ= IHZlcnNjaGllZA== IEZyYWN0aW9u IG5hdGlvbmFsaXN0 IGp1ZWdv IERlYWxlcg== IHByZWRpY3Rpbmc= YXVwdA== aGVsbQ== X1BSSUNF X0RT KCIjew== bGlmdGluZw== IHBvc2luZw== IE5TTXV0YWJsZURpY3Rpb25hcnk= IHNtYXNo IGFraW4= IGNhbXB1c2Vz IE91dGxpbmU= IEVsYXN0aWM= X0NoZWNrZWRDaGFuZ2Vk KElFbnVtZXJhYmxl c3F1ZWV6ZQ== cHR1bmU= X0ZST05U bWg= IOyDneyEsQ== UnVuV2l0aA== IHR1cm5vdXQ= c2libGluZ3M= KWU= X0FSR1VNRU5U IEdyaWRCYWdDb25zdHJhaW50cw== X1BPT0w= LlJJR0hU aWdnaW5z dGVsZXBob25l XEV4dGVuc2lvbg== IEFyaXN0 aXR1cg== IGZyaWVz X2R1cA== RXhwYW5kZWQ= LXJv IFdvcmxkd2lkZQ== IENvcms= w7Ns TGlt IGRlbm4= UHJldHR5 IGZ5 VHJpYW5nbGU= RmVhdHVyZWQ= KENvbW1vbg== X2VmZg== ICIiDQo= 4bubaQ== X0xJTkVBUg== IFJpY2E= IGNhZsOp IGFwcGVsbA== IG5pdmVhdQ== ICYs IGZhYnJpY3M= X1BsYXllcg== IGh5Z2llbmU= IGRpc2FzdHJvdXM= IHNoYXJlZEluc3RhbmNl X3BpdGNo cno= ZW5tZW50 TmVhcg== X1NUQVRT IHN0YWlu IEROQw== IGlzc3U= Xks= CXRyZWU= X2Jsaw== c2V6 bGFpbg== YW11 X293bmVk VVNBUlQ= Lmhhc0NsYXNz SVNPTg== IGZvZQ== dXNoZWQ= X1VOU0lHTkVE IGluZGV4aW5n IEZpcmViYXNlQXV0aA== IGxpdGVyYWN5 IFNVUg== IENvbHRz YmVjdWU= IEludHJv IGNoYW90aWM= IGFuaQ== IEFubmll xrDhu50= LmR4 ZGlzY29ubmVjdA== IGFyY2hpdmVk W0xpc3Q= PU4= LnByZXNlbnRhdGlvbg== UmVzdGF1cmFudA== IHJvY2tldHM= PWh0dHBz L29w IHB1cnNl IEtyaXM= IGNvcmFs c2V0UGFyYW1ldGVy IGlycmln UXVlZW4= TlNEYXRh IHZhc3RseQ== LkZpbGVz IGZlbWluaXNt KFN0cmVhbQ== IGF0cmli IGxpcXVpZGl0eQ== PEZpbGU= dHJhZw== W2NvbnRhaW5z IGhpbmRp CWNw aG9tZXBhZ2U= IHN1cnBhc3M= IGRheWxpZ2h0 YXV0aG9yaXpl IENvbnNlcXVlbnRseQ== QXN5bmNSZXN1bHQ= IERpYXJ5 LlBhdHRlcm4= LiovCg== ZW5zY2hhZnQ= IEp1ZGljaWFyeQ== QWR1bHQ= KCY6 IGplb3BhcmQ= IEJsaXp6YXJk IGdn IjsvLw== WEhS IHBhc3N3ZA== Pn0= JyksJw== IGNvbXBhcmF0b3I= LmNoYWlu IGluc3VyZWQ= X0VER0U= IHR5bGtv X01BSk9S d2F2 XEZpbGU= RW50cg== J2FwcA== IGZvcmdpdmVuZXNz CWRzdA== Ijot Lm1vbg== ICgKCg== IGNhcGl0YQ== IGluaXRDb21wb25lbnRz IHN3b3Jkcw== IE91dHB1dFN0cmVhbQ== IGhlYXJz IFNQQUNF LWluc3BpcmVk X2Jvb3Q= Lm5vbmU= LmdldElucHV0U3RyZWFt IGRldmlzZQ== IHBlZGlhdHJpYw== YW5zaQ== X3BhcnRpYWw= IHNoYXJk IGZ1cmlvdXM= IGRyYXdhYmxl JSku KGVt IEJha2U= CXBlcnJvcg== IFJlbGlnaW91cw== LSIr CQkJICAgICAgICAgICA= IFNlY3JldHM= KG5vcm1hbA== QUNFUw== IFN0b2NraG9sbQ== LW5vcm1hbA== IGFjY3VzdG9tZWQ= IGJvdXRpcXVl IFN3aW5n IGZpbQ== IFBV LlNvY2tldA== ICciJw== YW5q TWFudWFs IG11amVy IHBoeXNpb2xvZ2ljYWw= Y29udGFpbg== TWVyZ2U= IHN1YXM= ICd7Ig== bmVnbw== IHN1YnNjcmliZWQ= dG9hc3Q= X1ZFUkJPU0U= IGtuaXQ= IEFydGlzdHM= IGhlYXJ0YmVhdA== IGZpcmVmaWdodGVycw== c3Nh W3s= IHVuZGVyc2NvcmU= IGhpc3Rvcmllcw== aWdtb2lk RmllbGRWYWx1ZQ== VG9BZGQ= LkNv IEhhcm9sZA== QXZvaWQ= aWdoYm91cnM= b3JkZQ== IHRydXRocw== L2Fs IHdpcmVk IEl0YWxpYQ== IHNlcnZpY2lvcw== IEFVRElP ICciKw== IHB1bXBpbmc= IENsZW1lbnQ= w4NP 5Y6f Pm4= IHN0clNxbA== amRiYw== 4oE= CVNFVA== IEJVRkZFUg== Oi8vIg== IGNpcmN1bXN0YW5jZQ== VUlUYWJsZVZpZXdDZWxs LnZlcnRpY2Fs IEpvaG5z dG9saXN0 IGRyaXZld2F5 IGxlYXJuZXJz dG9iZXI= d2lubmVy LXlvdXI= LnN0YXRlcw== SE0= IGdyYWRpZW50cw== IHNlaXp1cmU= IG1hdGVy IGRldGFs IFJlZHVjZQ== KG1vdXNl IFJlU2hhcnBlcg== LXJvdXRpbmc= INi0 IGpvaW50bHk= IEZhbWls PE1lc3NhZ2U= ZXhwaXJl X3RyYWRl 4oCmLi4= IEZVTkNUSU9OUw== IHhlbg== IHt9Ow== RmFi IGZlYXN0 KERi Rmlyc3RSZXNwb25kZXI= xLFsxLE= IG1heFZhbHVl IC06 YXB0aWM= Lkdzb24= IFJvdmVy X2Nu bG91ZA== IGNoYW1iZXJz INC30LDQtA== LmZvcmVhY2g= LmdldEVtYWls 55+l Lk5vZGVz IFZX IFdhaXRpbmc= KFF0Q29yZQ== IHPDs2xv cnE= YW5ndWFyZA== IHJlc2VtYmxlcw== Oltb IGdlZA== X0VQ KEFjdGl2aXR5 IElzbg== IENydXNoZXJz X1JVTlRJTUU= CW9wZW4= IEhpZ2hsaWdodHM= w6lyYXRpb24= IHllbGxpbmc= IExJR0hU UGhvdA== dmVuZ2U= IFN1c3A= IENocg== LkRpc3RhbmNl YXJzaW1w bGljYXM= Lk1vbg== IHN1Y2tlZA== cHJpbnRlZA== bXV0ZQ== IHNldEVycm9y Lk9wdGlvbg== IGltcGFpcm1lbnQ= bm9pc2U= IHBhcnRuZXJlZA== w40= ZGVucw== aWN6 IHdhaXRGb3I= IG92ZXJsb29raW5n IEZPUk1BVA== IFRTdHJpbmc= IHJlbnRpbmc= CWNvbXBvbmVudA== LkZyZWU= IExhdW5jaGVy PWRhdGU= IFBvZHM= QUdNRU5U Q29kaWdv Qml0RmllbGRz IHViaXF1 LWNhcm91c2Vs IFNpbXVsYXRvcg== aW5vZGU= J10pewo= IEJhZ2hk IG5vcnRod2VzdA== aHRha2luZw== PCY= IHRyYW0= IGZvcndhcmRlZA== IGVycm9yTXNn X0FTU0lHTg== IEVudGl0aWVz LlBhcnQ= cmVhdHVyZQ== KFVyaQ== IERyaXZpbmc= IGludmFzaXZl aWdyYXRpb25CdWlsZGVy b3NhdXJz CXBvcnQ= IGJyYW4= aXR0aW5ncw== RG9vcg== IHsl KGxpbWl0 IHNxdWFyZWQ= IERJU1BMQVk= LkFjY2VwdA== LmJhc2VVcmw= LkVudGVy IC4uLikK IG93bA== IHNsYXRlZA== LmZlY2hh X1NFRw== PXsk IE9OTElORQ== T05Z INC00LDQvdC90YvRhQ== b250ZQ== X0NMSUNL U2E= SW1wb3J0YW50 IGNhcm91c2Vs IGFwcGVhbGVk IE5pZQ== L2Jvb2s= W10+KA== IHhtYXg= IGxhbmdl LlN1cHByZXNz IFRoaW5raW5n QWRkcmVzc2Vz IFNhbGx5 LVRW IENoYXJsZXN0b24= KSIKCg== IHRhbGx5 IHVsbA== IGxvY2FsZXM= ZXdhbg== IGluY3JlbWVudGFs 65Cc IGNhcmV0 anVyZQ== IGRvcg== IGxvY2FsaXphdGlvbg== IHNlYWZvb2Q= IFJ1YmJlcg== LlRoZXJl IEZpc2hpbmc= WVlZ bWFnZQ== IEZsZXhpYmxl IEdFTkVSQUw= ZWth IHRocml2aW5n IHNpcw== IGJvdXJnZW9pcw== RmFrZQ== LFwi INC+0LQ= Q09S LWVmZmVjdGl2ZQ== IHNrdQ== ZWRseQ== IyMKCg== IEhvbGx5 IEZMQVNI L1RS Lm5z cHJvYmU= Z2lmdA== b3dpdHo= LW5hdmJhcg== IHNhY2s= 57qn IFRocmVhdA== WkE= WE0= JyksCgo= IExMVk0= YXN6 RWRpdGVk V2l0aFN0cmluZw== U2lsdmVy eW5h X3JlbmRlcmVy CURFQlVH KG9wZXJhdGlvbg== IFNsb3Rz IEF1YnVybg== eGVj IGhvbW9zZXh1YWxpdHk= LlJlc3RDb250cm9sbGVy ZXJzaXZl IHByb2ZpbA== IE15YW5tYXI= cm9zc2U= X0lSUW4= IHNlbmRNZXNzYWdl IHRlY2huaWNpYW5z IG1hbmU= Y29tbW9ucw== IHNocmVkZA== Qm9vc3Q= IHN5bXBhdGhldGlj LWVmZg== IENlcnRhaW5seQ== IHfDpGg= IFJvY2hlc3Rlcg== dWNjaQ== dXJt ZW1wb3I= ICIiOgo= LXNwYWNpbmc= IHNpeHR5 IOKckw== X3JlcG9ydGluZw== V2ls b3lv IGRpZFNlbGVjdA== LmdldExvbmc= LnNldEVycm9y X25j IERvbmc= CWFzeW5j IEhpZ2hseQ== XToNCg== TGVha3M= LC4uLgo= dmFsdWF0b3I= ZGljdGlvbnM= b3hlbA== IGdlc3R1cmVz PSI/ YmFncw== IFJlbGllZg== c3Vic2V0ZXE= KG5hbWVzcGFjZQ== fXw= IG1pY3JvYmk= IHB1cml0eQ== Y2hpbw== fT8= X01VVA== X2FjdGl2YXRpb24= IFBpcmF0ZXM= ICUj aWZpY2FjacOzbg== 5Ys= IE5SQQ== w6dvbg== fSkoKTsK IENoZXN0ZXI= 4oCT4oCT Z2V0Q29ubmVjdGlvbg== LmFyZ3VtZW50cw== RmV0Y2hpbmc= IEZyeQ== IERpdA== IHppY2g= cGFzdA== LWxpYnJhcnk= IEhheWVz IGJvdW50eQ== IFNwcmluZ2ZpZWxk UE9S IEFQUg== IEVtYmFzc3k= UVVFU1RJT04= IFNvbGRpZXI= ZXJ0YXM= IE5PUk1BTA== IGR1cw== Ym9sdA== IGRvcnQ= IExpZnQ= IGdldFJhbmRvbQ== LlJ1bldpdGg= LCksCg== IHZhcmFyZ2lu IGhhbmRsZUNsaWNr XEh0bWw= IGhvbW1lcw== Y2lkYWRl KGVw SmE= L2RpYWxvZw== LnJhdGU= IFdlaQ== ZnVsbHNjcmVlbg== IE5Vbml0 Lm1lYXN1cmU= VmFscw== IFNpZ25lZA== IHJ1cw== IHJhZnQ= IEJsb25kZQ== IG5ldHM= IE1ldHJpYw== aWNoVGV4dEJveA== IHVyZQ== IGludGVycmFjaWFs ICd9Cg== KHN0b3JhZ2U= SW50ZWdyYXRpb24= IGJhbmNv QVNZ IGppbnQ= IGRlZ3JhZGF0aW9u IEhBTkQ= dWVyZG8= PScn IHN0cm9rZXM= cmV3cml0ZQ== KFNldA== IE1hdERpYWxvZw== IGRvc3NpZXI= CWFuZA== QURESU5H IG11dHVhbGx5 IHByZWNlZGVk fX07Cg== IHN1YnR5cGU= IHJlc29sdmluZw== IGdlb21ldHJpYw== W2NvbHVtbg== IENUUkw= IEhM IGRhaA== ICg7Ow== UmFpbHM= w5w= IEdlbmVyYXRlcw== LUxlbmd0aA== cGVkbw== b2dlbm91cw== IFJvYmVydHNvbg== LkJvb2w= b2RlcnM= X0FHRU5U cGFzc3dk IE5vZGVz LmJp IFdC IHByb3BoZXQ= c2xhdmU= IOW8 IHdlaWw= JTwv IGNhcmJz 5rC0 IGV4cHJlc3NseQ== XHhk LWV5ZWQ= IENyZWF0dXJl Y29udGFpbmVk KFNJRw== IEVuaGFuY2VtZW50 IENvcnM= R2Fs X1NJR05BTA== cmVpbnRlcnByZXQ= IFFQdXNoQnV0dG9u X05vbmU= IGdlbm9jaWRl IFNlYWw= 5LiK5Lyg KHBlcg== 0LvRjNGC IMOgcw== LlRlbXBsYXRl ICkNCg0K LnNpbmdsZXRvbg== CXNsZWVw IHNwYXduZWQ= IHBvc3Nlc3Npb25z Z2V0Q29uZmln IHRhaQ== bHVkZQ== IE1ldGVy IGJpYmxpY2Fs bWFyc2hhbGxlcg== LlRvb2xraXQ= IExlc2JpYW4= LnNtYXJ0 IGJveWNvdHQ= IGZyeQ== LWRlc2M= X1NlcnZpY2U= IG1hY2h0 IENhaXJv w6Bp X3ByZXZpb3Vz LnRyYW5zcG9ydA== TWVkaWNhbA== Q0dQb2ludA== UVVBUkU= IGJyaWdodGVy IGNoZWNrQm94 IEZPVU5E LmJyYW5jaA== IGJsYWg= IFByZWx1ZGU= T2ZmbGluZQ== TGlzdGluZw== LyoqLyou IEpS cGhhbnRz Z2V0WQ== LkZpbmRDb250cm9s Ii4uLg== 0LrQtQ== SFJFU1VMVA== IGNoZWNrbGlzdA== KGFzdA== IGJvcnJvd2luZw== 4oCmYW5k INCX IHByb2N1cmVtZW50 LXRhc2s= X2hhbA== UGxheWxpc3Q= LnN0YXI= X1NVUFBPUlRFRA== QVNN JUE= cmVzdHJpYWw= INC40YHQvw== IHBhZ2Vy IERpYWJldGVz IE1haGFy dGFu QWN0dWFsbHk= Pi8v IFhW 4KeN IHNlamE= LnZpc3VhbA== a2tlcg== XTsKCgo= IHR5cGVOYW1l LkJ1dA== Q2xpZW50UmVjdA== aWNhbHM= IERqYW5nbw== IFJhcGU= IHBheWRheQ== KHJlc291cmNlcw== LmJpeg== dG9p KFJ1bnRpbWU= IER5bmFtaWNz IEludmFsaWRPcGVyYXRpb25FeGNlcHRpb24= KHR5cGVz IFRhYnM= Lk1pZGRsZUxlZnQ= eGFi IF8o IERyZWFtcw== X0dyb3Vw KGNvcg== TGVhZGVy IGdyYWR1YWw= KEJpZ0RlY2ltYWw= IHRleHRhcmVh bGV0aW9u IEZpbmlzaGVk IFBvbGU= IHRhcHBpbmc= Jig= IGZsaXJ0 IHRlcnJpZmllZA== IHBhZHk= ZXJlZw== ZWxkb20= IHN0YXRpb25hcnk= IHBvbnk= IFJFR0lTVEVS X2FjY2Vs IEhlcno= IG1hdHJpeg== IENhZg== eGFj YXNjdXM= IGVubGFyZ2U= QUNIRUQ= eXl2YWw= IHNpYw== IENhbmFs OnY= PT8s IEltcHJvdmVtZW50 P30iLA== TlNPYmplY3Q= IGVzY2FwaW5n IE51bGxhYmxl IGjDpA== d2FudA== RWxpbWluYXI= IENMTG9jYXRpb24= IHJldXNlSWRlbnRpZmllcg== QnVmZmVyU2l6ZQ== w59lcg== IEFza2Vk J11dLAo= IHNoaWVsZHM= Z3JhbmQ= IFRvd25zaGlw IFB1Yk1lZA== ZWN0bA== Zml2ZQ== IFJlYWN0aXZlRm9ybXNNb2R1bGU= IEdMZW51bQ== RGFy aWZhY2U= LWluZGVudA== Rm9ybXVsYQ== LnNuYXBzaG90 Q09NUEFSRQ== IGJlbHRz CWNhY2hl bGRhdGE= IGVkYWQ= IEJPWA== KGNhcnQ= X0xBWU9VVA== IGZmbHVzaA== IExPUw== IFNvcnRlZA== LnNsaWRl IHRpamQ= IFRleGFucw== IFB1cmNo IExldmVscw== IHNlbWFudGljcw== IFRlaHJhbg== Ym1w LnVybGVuY29kZWQ= X3hsYWJlbA== KGd1bHA= IEJ1dHRvbnM= IEJyb2tlcg== 55uR5ZCs JGVtYWls 2ZA= IGNsYXNzaWNz Y29tcG9zZQ== KGJz IHVuaGVhbHRoeQ== RXhlcmNpc2U= Y3JldHM= IFBhcnM= IERldGVybWluZXM= YWZvcnQ= KG9icw== IG5hc3Q= IGlocmVu IHJveWFsdHk= c2VyaWFsaXplcg== aWV1eA== ICAgICAgICAgICAgICAgICAgICAgIAo= ZXhlY3V0aW9u IHZpZXdDb250cm9sbGVy IHJlcHJv LnBl IGNhcGl0YWxpemU= 5Ye7 IHR1bm5lbHM= LkRBVEE= cGlyaXQ= Q29sbGVjdGlvbnM= KX19 IE9E IGZ1enp5 SW1tZWRpYXRl bGo= Oz8+Ig== W3Zhcg== IHZvbGF0aWxpdHk= cmVnbG8= IHByb2xpZmVyYXRpb24= IG9yYWNsZQ== IEN2 IG51bmNh UFJJTlRG IGJyZWFrcG9pbnQ= LkVO IGJlc3Rlbg== IHJlYmVsbGlvbg== UGF1c2Vk IGZsb3du IHZpY2luaXR5 d3JpZ2h0 LGNw aXNjaW5n b3VjaGVycw== QXNo eWFy IEVq cmVwcmVzZW50ZWQ= b2RpYw== LmNyb3Nz IGNyZWF0aW9ucw== IFBhYmxv ZmVzdA== IEhpbHRvbg== UmVwb3J0ZXI= IERpbA== aWxlbmFtZXM= IGV4cGVuZGl0dXJlcw== X0VESVRPUg== IEFyaWFs IHBsdW5n IHVubmFtZWQ= T3JFbHNl IHJlY3JlYXRl IEhlYXJ0cw== PmFsZXJ0 LmdldFBhc3N3b3Jk IE11c3Rhbmc= Vks= IGFjY29tcGxpc2htZW50cw== QXBwZW5kaW5n IENheQ== IFVzZXJNb2RlbA== IHN1YnN5c3RlbQ== TGVnYWw= eW5jaHJvbml6ZQ== X1BFUk1JU1NJT04= IEFwYXJ0bWVudA== bGlnZQ== IGFmZmlsaWF0aW9u KERFQlVH VHM= IENvbG9yaW5n IFdvaG4= bmljZQ== KGxpc3Rh 4LE= cGxveW1lbnQ= 44G+44Gf 5aW9 c3Vic3Q= J11dWyc= YWJvbA== PSdf 4KeN4KY= b3JwaGlzbQ== LmxpdGVyYWw= IFBsdWc= IG13 b21hbA== ICInIiw= dXNp IHNpZ2hlZA== aWN1bHR1cmFs Lios IFByb3N0aXQ= KGNvbnNvbGU= SVBMRQ== IFRyYXA= WFI= IEVkaXRvckdVSUxheW91dA== X3ZvY2Fi IGluY29tcGF0aWJsZQ== IHVuY29uc3RpdHV0aW9uYWw= LWxh IGVyb3RpcXVl IGRlcHV0aWVz cXVpc2l0aW9ucw== bmV3VmFsdWU= YWRpYQ== IGh3bmQ= Z2luZ3M= IFZhcw== IEluY3JlbWVudA== IEZsaW50 YW1iaWE= X1BvaW50 LWRpc3BsYXk= IEZ1bm55 LnRvYXN0 LmRhcms= QmluZGluZ3M= IGRlc2NyaXB0aXZl YXJlbmQ= LlJldA== IHJlY3Vyc2l2ZWx5 IE1r IFRJTEU= LmNyZWF0ZVRleHROb2Rl IFJBVw== IGluZmx1eA== 54mp VG9r LWJvYXJk UmVjb3JkaW5n U3RyZW5ndGg= IHJhaW5mYWxs KGRk LmZ4bWw= bmV0cw== LkltYWdpbmc= IEJJT1M= XSsi T0U= IHJlc2lkZW5jeQ== WkU= V0I= LnNwYW4= X2RlZmluZWQ= Qk9U Pm51bGw= Zm9ybURhdGE= Q3BwTWV0aG9kSW5pdGlhbGl6ZWQ= X1VTRVJT IE5vdmVs aW5za2k= PntA ZXR0bw== bmF0dXJhbA== IFN0cmljdA== Onc= LnNhZmU= IHRvd2Vscw== 4bqtdA== LmdzdWI= 66M= aW5xdQ== IGFpZGVz IGluY29t Z2V0dGVy IHdhc2hlcg== YWN0b3JpZXM= IGdldHRlcnM= bWl0ZQ== X3NvdXJjZXM= IGhhcm1sZXNz IHVub3M= cHJlaGVuc2l2ZQ== IG5vZG8= IGdlb2dyYXBoaWNhbA== IFNlbGVjdExpc3Q= LlNjcmlwdA== LkVudW1z IEVOVEVS d2FsZA== IEJhcm9u IHBhcnRpY3Vs LmN1cnJlbnRQYWdl QFRyYW5zYWN0aW9uYWw= W2xpbmU= CWRlcw== SmFzb24= LmdldENvdW50 IFBlbm55 IFBheWxvYWQ= c2hhcnA= W3JpZ2h0 dmVudGE= IGFwbA== IHByb2R1aXRz IG90dA== VHJhY2tz LkFuZHJvaWQ= IHNpbGljb25l IEVMU0U= YW5pbWF0aW9ucw== dWx0dXJlSW5mbw== IGJsdWVwcmludA== b2ZzdHJlYW0= IFtdW10= IFNlcnZl IHRyaWc= CXNlcnZpY2U= IFN0cmF0 IFNhdmFnZQ== IG9ianM= IE5vdGlmaWNhdGlvbnM= LHBvcw== VGhpbmc= IFJCSQ== b3BhdGh5 IG5hdWdodHk= bGJz ZXByb20= PiIu IHBpb25lZXI= IGphcGFuZXNl QXVk IGFsbGV5 IFBldHNj J10/Pg== IEtpbGxlcg== LmdldEFic29sdXRlUGF0aA== X2NhcHM= xas= IHN1YnN0cmF0ZQ== LmFzc2VydElu 7JWE IHRoeXJvaWQ= IERlbHV4ZQ== IGZhY3RvcmlhbA== IHByZXNzZXM= IEFjY29t PW9wZW4= LmdldFM= IGV4cGxvcmVy IHJlc2lkZXM= QXNzb2NpYXRlZA== IHRyYW5zZm9ybWF0aW9ucw== VHU= IFJpY2hhcmRz X2JpcnRo PSN7 LXNwZQ== KG5k IHZpc3VhbHM= X3N0YW1w IHRlcm1pbmFscw== cm91dGluZQ== KioqLwo= IEphYg== S0w= Q29udHJpYg== IHNvdXRod2VzdA== IFBlcA== CWVudGl0eQ== IGxpbmVy LlN0YXR1c09L IFNjaHVs KENM IG1pam4= YXN0b3M= X2RpZ2VzdA== IHBlcnNpc3RlZA== LWNvbnRhY3Q= IG9kb3I= IGRpc2NvdmVyaWVz X0ZJRUxEUw== Rmx5 IHJ6 IExpc3Rh UmVzZXJ2ZWQ= dGF4b25vbXk= KXNlY3Rpb24= LyIpCg== L3JlcXVlc3Q= IHNvbWVkYXk= Y2l0aWVz L2ZpcmU= IG9iamVjdGlvbnM= CURFQ0xBUkU= Lm5hdmlnYXRpb25JdGVt LnNldGRlZmF1bHQ= cmV0dXJuVmFsdWU= VUNDRUVERUQ= IG9ibGlnZWQ= IFFhZWRh IGh5c3Rlcg== ZXN0aGVz ZGlzdGluY3Q= w6B5 IENvbWJv CXNm IOKK IGRpc2NyZXBhbg== IGluc2lnbg== IFJFU1VMVFM= IFZhbGlkYXRpb25FcnJvcg== IEh0dHBSZXNwb25zZVJlZGlyZWN0 CVFTdHJpbmc= IGF1dG9mb2N1cw== RHVy IFJFTEVBU0U= LWRvbGxhcg== LkNvbW1pdA== IGtow7RuZw== IGxhdW5kZXI= Lj0i IOaWhw== IGJ5ZQ== LkdldEtleURvd24= IGdpbw== X3NpZA== IGdxbA== LmNt X1NMT1Q= LkdldEluc3RhbmNl cmV1c2U= LnNodXRkb3du IGplcnNleXM= X01Q cGF0aWJpbGl0eQ== IOiuvue9rg== IHJlcGxhY2VtZW50cw== IHByZWNlZGVuY2U= IGJ1ZmZlcmVk LmJz X0dSRUVO YnJhaW4= w6FjaA== YXZhaWxhYmlsaXR5 IEVURg== IGZyZXQ= aXN0aW5l IGxpZnRz RXhpc3Rpbmc= IHN0ZXJlb3R5cGVz IGVtcHQ= bW9uZ28= LnRyYWluaW5n YWxpc3Q= LklzRW5hYmxlZA== ICIh PD8K dWlkbw== IGludFZhbHVl LmVsYXN0aWNzZWFyY2g= TE9HSU4= IHJlbGlhbmNl IHZpZXdUeXBl IGRpbWluaXNoZWQ= U2FyYWg= IEFwcHJvYWNo X1dFQg== IGRybQ== IGNvbHVtbmlzdA== TWFya3Vw IGFxdcOt IERpYW5l IGN3 IFRpY2s= Lm9ic2VydmU= SVJPTg== SW5CYWNrZ3JvdW5k IGVib255 IENvdXJ0ZXN5 Om51bGw= KioqKioqKi8KCg== L3Jlc291cmNl SXRlcmF0aW9u ZGVmYXVsdFZhbHVl YXR0ZW50aW9u INGA0LDQsdC+0YI= IHdhaXZlcg== IHByb2R1aXQ= IEdyYWRpZW50 IHBlcmNlbnRhZ2Vz IFNBTA== IE1k KHNuYXBzaG90 CWlv aWtlcnM= V2VicGFjaw== IHNldFBhc3N3b3Jk IGRlZmVhdGluZw== IEplZw== ZWxhcHNlZA== aG9sZHM= X3NoYWRvdw== IG9mZmVuZGVk IFBhbnQ= IENhbGxhYmxl X0lORk9STUFUSU9O ZmZlZQ== KGVtcGxveWVl IFlBTUw= cG9zc2libHk= IG1heGltYWw= ZWxsdWxhcg== IFNueWRlcg== ZGVzY3JpcHRvcg== IFBMRUFTRQ== RGxnSXRlbQ== IGFydGlsbGVyeQ== YH0K cG9zaXVt IGxlZXI= JWM= IGRpc3Bvcw== Lm11bA== IGdlb2dyYXBoeQ== IGdyYXBoaWNhbA== IGRyYW5r IG1vdGlvbnM= IHJ1dGg= KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKio= IHByb2R1Y3Rpb25z IGNyZWF0ZVRpbWU= IFNjcmlwdHVyZQ== YmJi dWNocw== 5LiN6IO9 LkJpZ0RlY2ltYWw= c2l6ZXM= X3NvbHZlcg== X0Zyb20= X2pvaW50 IHBhdGhsaWI= IGdlYXJz INGE0L7RgNC8 IGNvbmNlYWw= IGRpZmZlcmVudGlhdGU= PEdhbWVPYmplY3Q= IGplZGVu IGFsbw== Z2xvYmFscw== ZXJ2YXRpdmU= IHBhZGQ= IFBseQ== X3R5 IHByZXNlbnRl IHByb3ByaWV0 X2xz IFB1bmNo IENyYXdmb3Jk YmVsb3c= Q3BwR2VuZXJpYw== IENPTlRST0w= IG9jZWFucw== IFJPVVQ= IHJhbmRpbnQ= CWFkZHI= IEhvbmVzdA== IGVudmVsb3A= IHRyYXVtYXRpYw== IExBVA== IHRn 7Iqk7Yq4 RXh0ZW5kZWQ= IHVuY2hlY2tlZA== IG9ic3RydWN0 X3RpbWV6b25l UGVyc2lzdGVudA== IGxsZXY= LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgo= IEZsYQ== LnBoeXNpY3M= IGZvcmdlZA== IExhdXI= IG1vbm9wb2x5 IGNocmlzdG1hcw== Z292 IFNtb2tl W2Rm IGJpc2hvcA== bG9jYWxPYmplY3Q= b3JyaA== b250dmFuZ3N0 ZHJ5 IGVyZm9s LWNl IE9yZGVyZWREaWN0 IGh4 IFJFU0VU U3Vj IHJlY2tsZXNz YWxhbWF0 QmlnSW50ZWdlcg== IGJ1bGJz IG11dGU= 5pS+ LlVsdHJh TG9u IGNsZWFyVGltZW91dA== PFJpZ2lkYm9keQ== c3dpcGVy IENvbWVz XGRi CW1w IHJlc3Rz TW92ZWQ= IExvcmU= LkRpbWVuc2lvbg== IE1hbml0 Lmh4eA== PT09PT09PQ== cGl0Y2g= ZmZpZWxk c2tpbGxz X2FsYnVt dHJhbnNsYXRlZA== IFhJ IHZlaW4= IERhdmlkc29u IEF1Y2tsYW5k eXNzZXk= IGF1dGhlbnRpY2l0eQ== IEFzc2lzdA== IGNvbXByaXNl Q3JlYXRlVGltZQ== IHRyZW5jaA== LndlZWs= LS07 IFVJQWxlcnRDb250cm9sbGVy X3JlbGF0ZWQ= Q01T cmVtZWx5 IGxleGVy aXJtd2FyZQ== RWxlbWVudHNCeQ== LXVwcGVy IHN0YWdu LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ== X3NuYXBzaG90 L1hNTFNjaGVtYQ== X09yZGVy IGFubmV4 X0VOQ09E IEFsdG8= YXJpb3Vz REo= IGFib3J0aW9ucw== Q29tYmF0 IExpY2VuY2U= dWdnZXN0ZWQ= W0s= LCkpCg== KCcvLw== LkNhbg== c2Vjcw== cXVvdGVz X3RyeQ== IFNhZ2U= IE1vdg== J29u cmVnaXN0 IFdyaXRlcw== IERpZ2VzdA== CWNvbnRhaW5lcg== LXByb2dyZXNz IGdvYXQ= X3NjaGVtZQ== LkdldENoaWxk IGFzeW0= Lm15YmF0aXNwbHVz YXRpY2E= cGdzcWw= X2Fzc2V0cw== Pks= IGFmaW4= TlNT IE5BVg== KCcuJyw= IGAi IGF1ZGl0b3I= X01PVVNF IHdhbGxldHM= IG1vdQ== cnVucw== ZXRlcmFuZ2Fu IFJlc2VydmF0aW9u IGV4cGVyaWVuY2lh CXByb2Nlc3M= LWltcG9ydA== X1JldHVybg== IE1hY3Jv IFBlbmlz cGl4ZWxz IHNldEVtYWls KE1pZ3JhdGlvbkJ1aWxkZXI= KHhz IEVzdG9u IEJ1YmJsZQ== QUxMT1c= CWhhbmRsZXI= JHJldA== IGNvbXBsaW1lbnRhcnk= LWNpdHk= IGVsbG9z IFNPVVJDRQ== IEFkdmlzb3I= b2xvZ8OtYQ== IGZhZGVk LnBj X1JHQkE= QUZY IHJlcGF5 IEZhbGNvbnM= X2lzc3Vl b21pZG91 LmJhb21pZG91 IGluZnJpbmdlbWVudA== dXJuaW5n L3N0b3JhZ2U= X3F1YW50 IFF0Q29yZQ== IG1lbGw= X2RlbnNpdHk= IEtub3g= IFN1cnZpdmFs LmdldFVzZXJuYW1l IGNvbW1lcmNpYWxseQ== Z3Jhc3M= IG1laXM= 5Lq/ IFBlcm1pc3Npb25z X1FVT1RFUw== aXBob25l IExPVA== IHRocmlsbGVy IENoYXBlbA== IFJpcw== Pmk= LUlE IHJpZ2h0bHk= Q3J5cHQ= IElzdGFuYnVs cmVkcw== X3Jlc2l6ZQ== UG9wdWxhdGlvbg== KGZldGNo IEhPVA== OmZpcnN0 IGdhZGdldHM= UHlPYmplY3Q= IG1lcmdpbmc= ZHVjZWQ= bGVnYXRlcw== dWJlY3Rs JS8= YWxsZWU= IHp1c2FtbWVu LlByb3BUeXBlcw== YXN0bw== Oio= cmVjZQ== UmVzcG9uc2VUeXBl L2dyb3Vw IGJhcmJhcg== IENhcm9saW5l b3VyY2Vk 57uP IGx1YnJpYw== aW5zcGVjdGlvbg== YW1tYWQ= CUltYWdl IGllcnI= IGN1cnRhaW5z X0FSQg== IE9yYWw= IGFsbGllZA== IFN0YXR1c0NvZGU= IENsZWFybHk= UHJlZmVycmVkU2l6ZQ== cXVpbmE= IHNwb3M= IG9wdGltaXNt IGNvbXByYXI= IGx1Zw== IEJvb20= Y29uZmlybWF0aW9u X0RVUkFUSU9O X2Jyb3dzZXI= IHJlcGV0aXRpb24= IGtlZXBlcg== IGFkZFRv KGpz LlN0YXQ= LkNvbmQ= IEhlcm5hbmRleg== cGFxdWU= IHZvbHVudGFyaWx5 IGplcms= IExleQ== IGRvY3VtZW50bw== X2RlYWQ= IFRFQ0g= IGluY2VwdGlvbg== KCJ7fQ== IG9uTG9hZA== eGRk IElTUA== c3BlY2lmaWVk IOusuA== UFJPQ0VTUw== KGFsZXJ0 Lk1N IGNyZWF0ZVN0b3Jl KHVuaXF1ZQ== LmdldEJsb2Nr 656Y dW5vcw== IHRyb3BoaWVz X2hvdmVy IERhZGR5 Lk1l IENPVVI= T0JK YXRlbWFsYQ== IFBzaQ== IG5vcm1hbHM= YWNpZXI= IE1CQQ== IHBhd24= z4U= IHNwb250YW5lb3Vz IGF1eGlsaWFyeQ== IGluYXVndXJhbA== IGZhc3Rpbmc= IEZpbGVTeXN0ZW0= IHplbg== X0JMVUU= IHN1YnRyZWU= IHByZXByb2Nlc3M= LXRyYWNr Q2hhcmxlcw== IGRlcG9zaXRlZA== IHF1ZXJ5UGFyYW1z 0L7Qu9GM0LrQvg== aWVtYnJl IHByYXc= eEZD IHBhbmM= X25vbQ== aGVyb2Vz Lmphdg== OjokXw== INin2YTZhQ== U0dsb2JhbA== 5o+P6L+w PXRlbXA= ZXN0aQ== IGNvbnN0cnVjdGl2ZQ== IFNoaW0= IERpcmVjdGlvbnM= IEJpbmc= ZGlydHk= LXJ1bm5pbmc= X2ZpbGVwYXRo b3JkZXJJZA== Z2FyZA== X29yaWVudA== IHNjb3V0 IHBzeWNob2xvZ2lzdA== 7LY= IOWt ZGVxdWU= IEhlcm1pb25l IFBvd2VyUG9pbnQ= IGVsbGE= IFVJQmFyQnV0dG9uSXRlbQ== U3Vidmlld3M= QFJlcG9zaXRvcnk= IiIiCgoK IHJldG91cg== IGNpcmNh R3JhcGhpYw== IEdyYXR1aXQ= ZGR5 IHRlY2huaWNpYW4= IENsZWFudXA= IHBlcnNvbm5l IHJlc2lu Lk11bHQ= JG0= IE9yY2hlc3RyYQ== IHdoZWVsY2hhaXI= LlND CUdhbWVPYmplY3Q= IG1vxbxl T3BlbmVk IGNoaWNrZW5z b3Rhcw== X3RlbXBlcmF0dXJl IGRldGVjdGluZw== IGFjcXVhaW50 IDw/PSQ= Pl0= IG1lbnN0cg== IGR5ZQ== Um9ib3Rv LnVuaXRz IFZpbnls Y3VyYQ== cnlwdG9u ZWRk PXRlc3Q= IHRyb3Y= Q29uZmlybWF0aW9u IHRoZW9sb2d5 IEhvbGRpbmdz dWF0aW5n UHJlZGljdA== W3VzZXI= IDon IFNlc3Nv cGFyZW50SWQ= Q29kZUF0 YWJibw== IFRyZXZvcg== IFF1aXQ= X3NoaXBwaW5n X1JB IGtsZWluZQ== 56Y= X0xhYmVs IE9tYXI= IEdSRUVO LykK cm9r IHJvYXN0ZWQ= X1JU IOKAjg== QFJ1bldpdGg= Pk5O IHRhbmQ= Kycu Y3J1ZA== LmtleWJvYXJk YXN0ZXJ5 QkFE IENvbHVtbnM= LkNvbXBhbnk= IHNlbWluYXI= IGdldENvbnRlbnRQYW5l IGNhdGFzdHJvcGhpYw== IGVtYnJvaWQ= aWF0aXZl IGNydWVsdHk= Ymlz IGluc2U= IEJyb2tlbg== CWZz IG1WaWV3 0LDRhtC40Lg= LWZhY2Vib29r IGNhY2hlcw== 44CC44CCCgo= IE9STQ== IERpc3RyaWI= IFNjZW5lTWFuYWdlcg== X3RyYW5zaXRpb24= b21leg== IFNIRQ== IHdvcmtsb2Fk U3VwcG9ydGVkRXhjZXB0aW9u IHJpZXM= IOWc KGNhdA== SGFzTWF4TGVuZ3Ro QXBwcw== LlRBQkxF IEtleVZhbHVlUGFpcg== ZWRpZG8= LlJlbmRlcmluZw== IGVsZWN0cm9t IGFyYml0cmF0aW9u IHZhcmlhYmlsaXR5 YXBvbGxv IHV0bW9zdA== b3BlbnNzbA== IGjDpQ== KCcm LlN0YW5kYXJk IGRpc3RyYWN0aW9u aWZheA== IOuVjA== dGhvc2U= aXNwZW5z dmFr IFNVUA== IElzUGxhaW5PbGREYXRh LGtleQ== ZnJhZ2lzdGljcw== IEpveWNl IEZpYmVy LlNlcnZsZXRFeGNlcHRpb24= X0FsbA== IGJhY2tlcnM= IEF0dHJpYnV0ZUVycm9y ewoKCg== QHlhaG9v LWRpcmVjdG9yeQ== IHVuaW5zdGFsbA== IGZsdW9y bGlxdWlk IGzDoQ== IGZyaWdodGVuaW5n YWRhbg== IEFVVA== IHRhdHRvb3M= IHByb3BhZ2F0aW9u LnRyYW5zbGF0aW9u 0J/RgA== X3NjaGVkdWxlcg== 44CC4oCc IGNhaXJv IEh0dHBDbGllbnRNb2R1bGU= IE5EUA== IEhpdHM= IFRyYW5zZm9ybWF0aW9u IENhZXNhcg== c3RpbQ== IEJ1cnRvbg== d3lu IGNvbW1hbmRlZA== IENsb3RoaW5n IFJ1bnRpbWVPYmplY3Q= cmVhbGx5 Y2xh LnNh IFNoYW5ub24= IGNvbW1pc3Npb25z IEphbmV0 IGRpc2d1c3Rpbmc= IG9wdGltdW0= X3NvbA== dXJvbnM= IFNIQVJF QXR0cnM= IFNjaGU= IEJpZ051bWJlcg== IGNpZ2Fy KGRlcHRo IGZyYWM= IEN1cnZl TEFTVA== IFNDUklQVA== 6rO8 TWFsbG9j Lmdyb3VwYnk= IExlc2xpZQ== IHdoaWNoZXZlcg== U21hcnR5 L3dl IEFtcA== LGlu bG9wcw== ZGVwZW5kZW5jeQ== Y2VkdXJlcw== IGB7 eGljbw== Q29sbGVjdG9y IGhhYw== IERhcmtuZXNz ZmZmZmZmZmY= Jz0+Ig== IHBsZWFzaW5n Y29ubmVjdG9y em9z UENJ dmFj IEluY29ycG9y IG5lZA== X0ZBQ1RPUg== LmZi IG91bmNl X3NhdmVk INix IGRlZWRz IERvbHBoaW5z IGJ1ZW4= RVND LHRpbWU= X0FVVA== ZWNz IFNlbmF0b3Jz Lm91dGVy IFNlbGxpbmc= IHJpbg== PmAK Lm9ic2VydmFibGU= IGNvc3Rpbmc= REc= IHdpbmRpbmc= IHNrYQ== IGNpcmN1bGF0aW5n IGZvcm1pZGFibGU= YW1wbw== IFJhaXNlZA== IHZlZ2V0YXRpb24= VUZGSVg= S2lsbA== cHRpdmU= KHJ2 IENvdW50cmllcw== IE5ha2Vk IEpB KSkiCg== dWRhcw== IGJhcms= CWxldmVs IGZvZXM= PkFkZA== WW91VHViZQ== O3Q= TkNZ Q2x1Yg== RWlu LS0NCg== IGNvbnN0cmFpbmVk RVR3aXR0ZXI= WUc= RGVzY3JpcGNpb24= VU5DSA== IGVucXVldWU= IGRpc2tz IFdlbnQ= IG11aXQ= CWxvY2F0aW9u IHJldmlzaW9ucw== IEFDSw== LWZpeGVk dHJhc291bmQ= XFRlc3Q= U3RhcnRQb3NpdGlvbg== LWh0bWw= IHByb2JsZW1hcw== X0lOVEVSUlVQVA== IFNUT1JF 5qih aWxpYXRlZA== IFJQTQ== W3RlbXA= YWNodGVu IGNpYw== IEF1dG9tYXRpb24= IGhpZ2hz Lyg/ OicpCg== c3Bhcms= cmVscw== CW1vdg== VVRFUw== LkF1dGhvcml6YXRpb24= IFNjaG5laWRlcg== IGNoZWVrcw== YWRkcmVzc2Vz YXJkaW4= IHJlbW92YWJsZQ== LkJhZFJlcXVlc3Q= aWNpb25hcg== IERpZXNlbA== dGhhbg== L34= IGRhenU= UmVnaXN0cm8= ZmZp X0RMTA== IG5pZXU= IG1vaXN0dXI= LWV2ZW50cw== IHRocmlsbA== LmdldEVudGl0eQ== IHRvZ2c= IHdhdg== KWRpZA== YXRr KHN1YnN0cg== IEluamVjdGlvbg== X21i LkRpdg== IGVuZGVhdm9y ICjCow== IGNsdXR0ZXI= IHVyZ2VuY3k= IGluc3RydWN0b3Jz LScs LXN0YW5kYXJk Y2Vt CWhhbmRsZQ== LmZ0 U3RlcGhlbg== Um9u 44GZ44KL c2Np IEF0bW9z IGNhdGVyaW5n IGZpYXQ= LlBlcmNlbnQ= IENvbmdv eGRm Lm1vemlsbGE= IHNlaGVu LnNob3dUb2FzdA== T09U LXJlc3VsdA== zIE= IGdob3N0cw== IEJ1ZW4= IFJpZGVy IERvY3RvcnM= IHVyYW5pdW0= IGxvdWRseQ== IHBvaXNlZA== IGZhdm9ycw== KEFQ TEVZ IHNpY2tuZXNz IGNoYXR0ZQ== IGludGVncmF0aW5n IFl1cA== Q2xvc3VyZQ== IFRhbGVz IGxpbmVh IGV5ZWw= LkNyeXB0b2dyYXBoeQ== dW5leHBlY3RlZA== YWxlbWVudA== Y2l0 ZXRBZGRyZXNz TGVhZA== eGNk X25lZ2F0aXZl X2NvcnI= aWdyYXBo LWNoYW5uZWw= IGRpc2Nv U2VlZGVy YmVhbQ== X2Rw Q0ND IFByb3ZpZGVk IGpzb25EYXRh X1dI RklORQ== Qlg= LkRhdGFBY2Nlc3M= IHRlbXB0ZWQ= IGZpbmVk aXNDaGVja2Vk IGZyYXVkdWxlbnQ= RnJp IGRvbWlj UXVpeg== IFVuZGVyZ3JvdW5k YWJyYXM= IElEaXNwb3NhYmxl IFBlcnNvbmE= IHJvZ3Vl IEJleQ== Z2V0Q2xpZW50 ZWtlbg== ICcnJw0K V2lraQ== KEh0dHBTdGF0dXM= U3RyZXRjaA== IEdlc3Q= IO2VmA== IGVudGl0bGVtZW50 IGRvZW4= YmxvZ3M= IHZpdHJv Ik9o IFN1bW1vbg== IEJhY2tib25l IGfDvA== Z2V0Q29sdW1u IFdJTkFQSQ== CXZh X1JFUVVJUkVE LnRocm93 IHNldEN1cnJlbnQ= ZHVjdGVk KEZ1bmN0aW9u ZWxzaW5raQ== X1Blcg== ZmxpZXM= IGluY29tcGV0 IGp1xbw= KCkl IC0tLQo= dW1hcw== IE9sZGVy IGRpc3B1dGVk X1JFUVVJUkU= Lm1hdG11bA== dW5rZW4= 5LmL 44GL44KJ IHR0bA== dW5kZXJzY29yZQ== IFBhdHJpY2lh IHRhcGVy IHNlaW5lcg== IHNheWE= 5Y+w aWVyaQ== LnNlY3JldA== IHhvcg== IG1pdG9jaG9uZA== IGNhcmRib2FyZA== fWB9 LUJFR0lO IGRhdmlk b3Vsb3M= IFBldGVyc2J1cmc= ICIiLA0K c2hlbGY= LXdhdGVy LWJ5dGU= INC+0LHRitC10LrRgg== IHN0aXJyaW5n 7Je0 IGNvbXB0 IFBvdGVudGlhbA== UkFGVA== IGVhcHBseQ== IHN3aW5naW5n IGZlYw== QVJB IHdhbmRlcmluZw== IHByZWZlcnM= SmVzdXM= IHBpcmF0ZQ== IElzaXM= Lk1pbmltdW0= IFZhbGU= X0JU cmVuY2hlZA== Y29ycw== KGl0ZW1WaWV3 IGfDpQ== LkNvbnRhY3Q= Vmlld0NoaWxk aW5kc2F5 Y29uZmlncw== RHVwbGljYXRl 4oCmSQ== enlzdA== KHRvZG8= LlJlbW92ZUF0 X0RJRkY= IEJvdHRsZQ== IHZvbHRh dHJhZmZpYw== TGVl IOyk IHR1bmVz IEVjdWFkb3I= IFl1bg== IHVuZGVyd2VudA== aWNvbQ== ICcnKXsK LXBvbA== ZmxhbW1hdG9yeQ== TXV0YXRpb24= IHJlY2Fw X3ZlcnQ= T1RJT04= Q0RBVEE= aWNpbmU= X2JvdW5kYXJ5 U2NhbGFycw== IFVsdGltYXRlbHk= RVE= bWV0YWw= a3Nlcw== bXBs IGNvbnRlbg== U29sZA== RVNTQUdFUw== IGJpbmRlcg== IGxpbmVu IE15QXBw LW1ldGE= CXJhaXNl b3VsdHJ5 CW1vZHVsZQ== 5pi+56S6 bsOt IHlycw== IHBoeXNpYw== LXBsYXRmb3Jt IHN3aW5nZXJz KGhlYWRlcnM= Licp IEJV IEluY29udHJp U2NlbmFyaW8= QW1i IHByZW1pw6hyZQ== L2FydGljbGVz IE1ham9yaXR5 Q0xVU0lWRQ== b25vcg== IGhhYsOtYQ== 5bee IG1pZGk= IExhYw== LmZpbmRJbmRleA== IFBhaW50aW5n LmJvcmRlckNvbG9y Kmo= IGNvbmdlc3Rpb24= X0RJQ1Q= b2xsZQ== YXJuYXRpb24= KHRleHR1cmU= IHVm IEVpbnN0ZWlu KFRocmVhZA== IGluZG9vcnM= c2NyYXRjaA== IG1ha2Vu LlNUQVJU IEp1ZHk= Zm9ydW1z CgoKCgoKCgoK QklMRQ== IHZvdQ== TVlTUUw= IGdlcm5l IEltcG9ydEVycm9y IFN1cnJl PG5hdg== IERpZXNl ZXdhcmU= IOuqqA== aW1wbGVtZW50ZWQ= U0lHTg== ICd7QA== cnpl Lm1pbmVjcmFmdGZvcmdl LmlubmVySGVpZ2h0 YmVjaw== IGN1cnJ5 IGZvcm11bGFz YWdvZw== ZW5kZXQ= IFBhaWQ= IFJvYmVydG8= IHVucGFpZA== PWhlYWRlcnM= LlBvd2Vy IGJyZWQ= b3JFbHNl b3hpZGU= IGZpbmFsaXpl c2V0Q29sb3I= IFN0YWR0 KCdcXA== aXNtaWM= IGhlbGU= LlByb3RvY29s Lkhvc3Rpbmc= X01lbnU= X2NvbmRpdGlvbnM= IHB1cmdl LnhhbWw= YmFyZQ== RlJBTUU= IGN1YmVz IEpvaGFubmVz b2NyYXRz LkRpcmVjdG9yeQ== KWE= Pyk6 X0xJQlJBUlk= IGdldFRva2Vu IGVjaG9lZA== PWg= X3NvYw== IEV2YWx1YXRl IOq4sA== IERlbGV0ZWQ= RXU= IGNsb25lZA== c3RhdGlzdGljcw== LkNhbnZhcw== IGhhY2tlcg== IGdhbmdz LnJlc3VtZQ== cGVhY2U= 0JLQstC10LTQuNGC0LU= IFByb2NlZWRpbmdz 56U= IGphcGFu ID8+Pgo= ICR7KHs= LnJlY3RhbmdsZQ== Z3c= IE9yaWVudGF0aW9u JW0= LiIpKTsK IExpZXV0ZW5hbnQ= LnRydWU= IGVsdA== IERJUkVDVE9SWQ== zq8= LmRheXM= dXR0Z2FydA== IHVuZGVyd2Vhcg== LCkK Q0lE aW1lbGluZQ== IEJsZW5k cGhhc2lz IHBlcnNl IGdsaXR0ZXI= IHVuaXE= IENvbWJvQm94 IHNlc3Npb25JZA== dXN0ZXJpdHk= SURHRQ== 0L7QsdGJ 0KQ= cmVuZGVycw== X3Bvc2l0aXZl X3Nsb3Rz YnJvYWRjYXN0 IE1vbGQ= L0NvcmU= IEJhbm5vbg== VG9vbEJhcg== YWJlbGxl X2F3 b2xlY3VsZQ== IGRlbGV0ZXM= IMOhcmVh IHByb3BvcnRpb25hbA== TVc= IHdhcnk= IGludGVybWVkaQ== ICoqKioqKioqKioqKioqKioqKioqKioqKg== LlNUQVRVUw== X3R3 IGFyb21h IGFjdGl2aXNt LklzTm90TnVsbA== dWF0 IHBvc3REYXRh IHBlbQ== X2N0b3I= IFJhcGlkcw== LW9mZnNldG9m IGluZWZmZWN0aXZl IG9uRGVzdHJveQ== IE1ldHJpY3M= IHBhZGRpbmdMZWZ0 LWVuYWJsZWQ= IEdvYWxz eW5jaHJvbm91c2x5 IHllcg== SXRlbUF0 IE1ZU1FM Y2Vzbw== LktpbmQ= dGVj KGJ1bmRsZQ== IHJlZmVyZWU= LiI7DQo= IGNvbmV4 IGJpa2luaQ== X0FQUExJQ0FUSU9O IHN3ZWxsaW5n IGJlYWRz IGJhcmdhaW5pbmc= LS0tLS0tLS0tLS0KCg== IGtpdGE= KmZ0 TWluaQ== IFRvbmlnaHQ= IG1hbmlwdWxhdGVk TWlycm9y IFBvc3RhbA== IG1hcmU= RFc= IGNvbXBpbGluZw== IGZvcmVuc2lj LmdldFZpZXc= ZXBpbmc= Q29z IGFjY3JlZGl0ZWQ= IG9iamV0aXZv Y2FyZXQ= UGFpcnM= KT4+ IHNlw7E= IHF1b3RhdGlvbg== IEJyYW5kcw== dWJp eXB5 IElubGluZQ== aW1ldGVycw== V2ludmFsaWQ= CWxpbms= IEJlbGZhc3Q= IE1lYXN1cmVtZW50 X05PVElGSUNBVElPTg== IHJveQ== IENHQ29udGV4dA== IHdlZGRpbmdz VVJOUw== IHBvZGNhc3Rz IFNlcmc= IOuNsOydtO2EsA== IGVhcm5lc3Q= Y292ZXJhZ2U= aXRlRGF0YWJhc2U= RW1wbG95ZWVz IERlbWFuZA== IGNvbnRlbmlkbw== IFFWZWN0b3I= IiwiXA== IEdlcmFsZA== KClg IGdyaWRCYWdDb25zdHJhaW50cw== UkVTT1VSQ0U= IFNhZw== YWJpbGlkYWQ= IGNvZXJj b3VuY2VtZW50cw== IElzbGU= LmVkZ2U= IGV4dGVy KV1b IFBsYXlsaXN0 IEJsaW5k IFZpdGFs IGxhdHRpY2U= cmF0ZWQ= ZGVwZW5kZW5jaWVz IGBgYA== IEthbmc= bWFjaA== LmZhZGU= IEd1ZXNz Kls= TmF0dXJhbA== Lk9r IFJlbmFpc3NhbmNl IHRodWlz IGxpa2Vu Kmg= XCcs LWNsb2Nr IE9iamVjdGl2ZQ== ZmluZE9yRmFpbA== IERpcnR5 IHNjYW5k IFZBUklBQkxF IGNvbXBhcmF0aXZl eXBhZA== KFNvdXJjZQ== ZWNv IGp1c3F1 CWFwaQ== QnVpbHQ= ICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IGxhYmVsaW5n IGhlYWRhY2hlcw== IG11ZmY= IE9yY2g= IGhhdGVz LWJyZWFraW5n L2J1dHRvbg== IEJ1eWluZw== TWV0cmlj IHVuc3BlY2lmaWVk L2hlYWQ= IHN0aW5n IHJlaW5mb3JjZQ== IENvbVZpc2libGU= Ymxpbms= IEFobWFk ZGJn X2xibA== IGh0dA== 7JuQ cm9wb2xpcw== ICgoX18= IHBlcm1l IGFwcGFyZWw= U1RSRUFN Y2h0cw== IHNlaW5z ZmlsbFR5cGU= 7KO8 Uk9XU0VS dW1waW5n IE5pZ2VyaWFu 4oCUaXM= X2xvZ2lj Lk9yZGluYWw= bG9zdA== L3Vzcg== QWY= IEl0ZXJhdGU= aWJz YWFs IHN5bW1ldHJpYw== LGlucHV0 IFBMTA== dXppb25l Y2FwdGNoYQ== IFRhbGU= RXhwaXJlZA== IE9iamVjdE1hcHBlcg== Y2lkbw== LmdldE5leHQ= IG1lbmphZGk= OnNlbGVjdGVk IHJpZW4= X3NlbmRlcg== UHdk IEZsaWNrcg== LkphdmE= X3ZvdGU= X01vZGU= LiR7 IGZ1Y2tz IEFsaWJhYmE= IGluc2lkZXI= YWNpbWllbnRv IGZyYW7Dp2Fpcw== SlNPTkV4Y2VwdGlvbg== IEp3dA== TWl0 bGVpY2g= IHByYWN0aXRpb25lcg== L3NvdXJjZQ== IG9nbmk= IHBoaWxvc29waGVy U25hY2tCYXI= c3RlbGx1bmc= KGJpdG1hcA== IGFzdGVyb2lk IG1hcGxl dWNoYQ== aXRlbUlk IHN0ZWh0 T3JkZXJlZA== ZW5idXJn L3Rva2Vu 6YWN IFdlYmI= b3dhbmll IFdBSVQ= IEhEUg== IEV2YQ== QVRUTEU= KG1hc3Rlcg== IGVycw== YWxvYWQ= IHNtdHA= dW5pcQ== IGd1aXQ= IFJhZmFlbA== Imlu KFVJ KExheW91dEluZmxhdGVy b3Jhbg== IHNlcnZp bmV6 IFRvcnJlcw== Lk1pZGRsZUNlbnRlcg== IG1vbGw= IFRleHRBbGlnbg== X3VwbG9hZGVk IE1laHI= IGhvbW8= LWxpbmtlZA== dW5uZXI= X2xlbmd0aHM= IGRpZmZ1c2U= IEF1dG9tb3RpdmU= WWVhcnM= IGxpZW4= W2NvdW50ZXI= a2xhc3M= 0YHRgtC4 LkVuZ2luZQ== IG1lbnk= dWx0eg== IGluZmFudHJ5 Vmlh c2VjdHM= LmRhc2hib2FyZA== IHNwb25zb3JzaGlw Lk1vZGlmaWVk Oy0= IFZlbG9jaXR5 dHJhY3RlZA== KG1ldGFkYXRh IHBsYWd1ZQ== TlNVc2VyRGVmYXVsdHM= YXBwcm92YWw= cHJvYmFibHk= LXNpeA== X1ZJUw== OicnLAo= LmVuYw== Lk1lc3NhZ2Vz X1BST0dSRVNT IG5lY2tsYWNl IFRlbXBvcmFyeQ== X21hcmt1cA== IEZ1bmN0aW9uYWw= IEpp IHRlc3RDYXNl ICgpOw0K X0NlbGw= IFJlc2lkZW50aWFs IFJhaWx3YXk= KCgmX19f IGRlZmF1bHRzdGF0ZQ== IGVpbm1hbA== LmZhYw== KmY= IHBpY25pYw== KGV2YWw= IGZ1cm5hY2U= YXNzb2NpYXRpb24= eyEh IENvbXBpbGU= eGVi RXZhbA== gOyepQ== KGNhbA== IG1hcmtldGVycw== X2hlbHBlcnM= bG9jYWxjdHg= IHlvZ3VydA== IHZpdGE= LGxlbmd0aA== IElucHV0RGVjb3JhdGlvbg== IGludGVydmVuZQ== IGNvbXB1dGF0aW9uYWw= RGVuaWVk L2Vudmlyb25tZW50 aWlk LkJveA== LVRpbWU= IGV4Y3VzZXM= dHJhbnNwb3Nl IG91dHJhZ2VvdXM= KFNlcnZlcg== ZGltcw== Il0pOw0K kJw= IEVpc2Vu KE9w IGhhc2hsaWI= KGxp fiw= xLFuZA== IFNwaGVyZQ== IEJlbGxh LXRyYW5zaXRpb24= LnJlYWRTdHJpbmc= aGVhcmQ= IFp1Y2tlcg== IHdhbm4= IGphaWxlZA== IFRhbGVudA== b3Bob2JpYQ== wrY= IG9wZXJhbmRz U29tZW9uZQ== IExpYnJhcmllcw== cHJpbWFyeUtleQ== 16o= VXI= IG1hdGVz INGI LWR1dHk= cG91cg== PEVudGl0eQ== PllvdQ== Q3JlYXRvcnM= V2l0aE5hbWU= J2ludA== IFJhdGlvbmFs PUI= LkF1dG9GaWVsZA== IEZvdW5kZXI= IE1lZ2Fu LmltYWdlVmlldw== Ym93cw== IHdpdGhSb3V0ZXI= IGxpYmVyYXRpb24= IGZvcmFt IGNpdGFz b2NoZW4= LnN3YXA= IC4uCg== LmN2dENvbG9y IEF3YXJl IHF1ZWVy 5aSE55CG IEluZmluaXRl L3N0cmluZw== IGJsZW5kZWQ= LUNvbA== IHd5cw== IHNpY2hlcg== Lkxhc3ROYW1l X3dhdGVy X1JlbQ== IGFydGhyaXRpcw== LkFQUA== IEV4cGFuc2lvbg== eGRi ZXN0cm8= ZmF2aWNvbg== VmVyaWZpZWQ= IGRlbGl2ZXJpZXM= YXJrZXQ= IGdldEltYWdl IEpQRUc= IFRSSQ== IEVsZXY= ZnVzaW9u IGpwZWc= Y29sbGlzaW9u IGRlc2NlbmQ= LmZvcmU= IExvZ3M= IHBvbGljaW5n dW50YXM= Lmhvc3RuYW1l YWNjZXB0ZWQ= 4KWL IFdlbmR5 LnJlYWRGaWxl IFNhbnRpYWdv IEdvbA== cmliYm9u c3RyYXRpb24= IHB1ZGQ= IC8vXw== aXNMb2FkaW5n X1NFUklBTA== IGluc3RhbnRpYXRlZA== IHBvZHM= IHdhcnJhbnRz IGFkbWl0dGluZw== CWNvbm5lY3Rpb24= X2J1ZmZlcnM= IEluY2g= IFpFUk8= d2VydA== IENsYW4= CWls KHNoYWRlcg== IHBpbGdy IOWK RHN0 X2JhcmFuZw== Oicj QnV0dG9uVGV4dA== dGVyZQ== X2FtdA== IEZvcmV2ZXI= LkxpbmtlZExpc3Q= dWFyZHM= dXJvdXM= IFNlbmRlcg== dmFyaWFudHM= X21hZ2lj IGFjY29tbW9kYXRpb25z YXBHZXN0dXJlUmVjb2duaXplcg== UHJvbXB0 ID8+DQoNCg== IHJlcHJvZHVjZWQ= X3ByZWNpc2lvbg== IHJ1dA== bW9uZHM= O3g= IH0sDQoNCg== 55S7 IFZpdGE= IHByb3Bvc2Vz IFBhcnRpdGlvbg== SElORw== ICN7QA== IGVzc2E= KGJhcg== IFplbGRh LmNhdGNo X2V4Y2VwdA== IG92ZXJ3aGVsbWluZ2x5 CVRFU1Q= X0NPTlRBQ1Q= X187 IFNlbWk= IHRyYWJhbGhv cmFkb3Vybw== X3NxdWFyZWQ= 4LY= JUQ= IHByYXQ= aXRleg== KGVsZW1lbnRz UGxhbnQ= YWd1YQ== IGlocmVy LkNvbA== IE1jTg== IENvcmV5 T05FWQ== Q2VsZQ== cmVtZW50 IG1hbHQ= IEx1aw== 57uf UE1FTlQ= IGFuYWx5emVy IEhhbms= X3VuaWNvZGU= IGJ1cmlhbA== IENlbHRpYw== RUZG TG90 d29u IE51ZGU= IE5hdGU= IFNpbmdlcg== IFNJVEU= KGJpdA== Yml6 IGRldG9u UkVBRE1F OkFkZA== IEhvbGRpbmc= e3JldHVybg== bmNpYXM= Pg0KDQoNCg== cnVwdGlvbnM= LnJlYWN0 dXJzYWw= 4Lib IERPTkU= aXZhdGVk Lm5vdGVz IHN0cmlwZXM= cmlwcA== aXJhbg== IHNsYWI= IEJ1cm5pbmc= KGVudA== LnNlYw== R1U= X2dvbGQ= XSkpLg== ZWxpbmVzcw== 0L7QsdGA0LDQ IOKIgA== IGNvc21pYw== J10pOgo= Y2Npb25lcw== Y2lzaW9u Y29tcGFyaXNvbg== IEV2YW5nZWw= IFNoaXJ0 bGFnZW4= IGnFnw== IGZpbGxlcg== LnByb2Q= IAkJCQkJ INGE0YPQvdC60YbQuA== IFplcm9Db25zdHJ1Y3Rvcg== QXRB XSkNCg0K IGNvbnN0cnVjdG9ycw== X1NIQVJFRA== CWRldmljZQ== IEFkdmljZQ== OkAiJUA= Pn0n LklzRW1wdHk= IGludHM= bW9zdGF0 IFNpZ251cA== Z2Vhcg== KHBhdGhz LHsi L0RvY3VtZW50cw== PENhdGVnb3J5 VUVTVA== IGdldERlc2NyaXB0aW9u ICJ7XCI= IEpvZXk= b2Rlbg== X2d1ZXNz RVVS IGhlcnI= IHNlZGFu IHJlYWN0ZWQ= X2Nsb25l IFJldmVs IGZvcmI= UmVtYWluaW5n XFNlcnZpY2Vz IGF2aXM= YmF0aW0= emVwdA== IERCTnVsbA== Q29ubmVjdGlvbnM= IGRpc3BvbmlibGU= cGhpbg== IHN0dQ== IHNjaG9sYXJzaGlwcw== LXNoYXJpbmc= Zm9ybWluZw== IEJyaQ== VmFySW5zbg== L3Nlc3Npb24= IGFtYmlndW91cw== IGFwcmVzZW50 X3Jk c2l0ZXM= L2FjdGlvbg== dHJhY3Rvcg== IGRpbGVtbWE= IFNY XS0tPgo= IEphY2tldA== UkFUSU9O LmdldFNlbGVjdGVkSXRlbQ== LWluaXQ= IFJlZ2lzdGVycw== X3NlcA== IFRvb2xraXQ= LmRpY3Q= IHhsYWJlbA== XFRhYmxl dG9j X2NvbWJv IENvbXBhY3Q= IHJ1Z2dlZA== 4KWH4KQ= LW1hbmFnZW1lbnQ= Jyl9fSI+Cg== IFN0YW1w xLFs cm94 IGxhbmRzY2FwZXM= X05PVEU= bW9uYXJ5 Y2Fi IG1vZXQ= eGFm cmNvZGU= LWNsaQ== X2dhdGU= W2V2ZW50 U1BPUlQ= Z2lh IFNVUEVS L0xvZ2lu X3NodXRkb3du aW50ZXJydXB0 IHByZXRlbmRpbmc= IGZyaW5nZQ== IFJlZHM= IENVREE= IFVOSVg= dml0 IGJyaWc= ZHJ2 IENvbm5lY3Rvcg== VGhlcmVmb3Jl IGxpYQ== RGV0ZWN0aW9u X2FjdG9y IHRlbXBmaWxl IGVjY2VudHJpYw== LXJvbGU= IHBhZHg= ZGVudA== V2VzdGVybg== IOq3uA== IEFwcGxpY2F0aW9uUmVjb3Jk IGNhbXBhaWduaW5n X3J1bm5lcg== IENpdmlj YWxlaWdo IGRpcmVrdA== LnN1bA== ICAJCQk= YW50ZW4= IGlzc3Vlcg== IGFzc2VydGlvbnM= KG9yaWc= QVRJTw== IGxlYW5lZA== w6Rz LkRUTw== ZXhwbG9kZQ== Lk9ic2VydmFibGU= IHN0YWdnZXJpbmc= IGtpZG5hcHBlZA== IHByb2dyYW1tZXJz IElubm92 LnBhcmFtZXRlcg== IGRvbWluYXRpb24= IHNrZXB0aWM= IOaYrw== IGF2b2lkcw== LlZlcmlmeQ== dWJieQ== IEFTTg== IGZvcm1hdG8= IEJlYXRsZXM= X2JyYW5k IGluc2V0 eW91dHU= IHRvYw== LWZpbmFs U2hvd2luZw== IERvdWI= IE1lc2E= QWRq X21lZGl1bQ== Q3JlYXRlcw== KGVuZHBvaW50 CVVQ YmJpZQ== IHN0YWxr LmRhdGFiaW5k LlNjYW4= YWdlbnRz JCw= aW5kaXZpZHVhbA== Kykv CXZt KG5vdGlmaWNhdGlvbg== IGluZXg= IENsYXNzaWZpY2F0aW9u cmVubw== IG9saWc= LXJhdGVk IGZvcm11bGF0aW9u Jyx7 IGFjZXB0 X3VucGFjaw== X0NB LlBvdw== CWlt IGFsdW1pbml1bQ== QU5P IHhu IGPDs21v IEluZ3JlZGllbnQ= IHNlaXp1cmVz 5YWx aWZpY2Fkb3I= IHNpZ3VpZW50ZQ== IEluZnJhZ2lzdGljcw== IGR1cGxpY2F0ZWQ= IERlZQ== IG7DuA== IEFDQ0VQVA== KGNyYXRl 0LjRgtC10LvRjA== LWxlc3M= IGluZmluaXR5 QW5hbHl6ZXI= LURheQ== cml0dA== KGNpbg== IEd5 IG11bHRpcGxpZWQ= dWNoaQ== IEJhbGR3aW4= L2lw IHNob3J0Y3V0cw== LkFERA== IHZpZ29y X2luc3RydWN0aW9u KDs= X2V0YQ== 6L+e dXRvcmlhbHM= IGJvb3N0aW5n YnY= IGFja25vd2xlZGdlcw== TGlzdGVuaW5n RkFR O2I= KCgt IGFyY2hpdGVjdHM= IHp3ZQ== IHB1bHM= IGdldENvdW50 dmVyYnM= 44Cc KENvbGxlY3Rpb24= a3Jl IGp1cmlzZGljdGlvbnM= X2JyaWRnZQ== IENyYWNr IERpZmZpY3VsdHk= S08= UmVzZXJ2YXRpb24= X3JlcXVpcmVz VG91cg== 44GX44Gf LnNldEN1cnJlbnQ= IGt5 IEFsYmFueQ== IOin bGxlcg== YWduYQ== d29ya2Vycw== LmJsYW5r IFByYXllcg== TUlD IHJlc2lsaWVuY2U= VGVY IExhbmd1YWdlcw== c3R1ZHk= CWN1cnI= IGVuenltZXM= U2x1Zw== IO2MjA== c3RyYWw= IHR1bW9ycw== IHNlZ3VuZGE= PSd7 aW5zdHJ1Y3Rpb24= IExpc3A= L2luZm8= ICJ7JA== LDopLA== IGd2 KEVycm9yTWVzc2FnZQ== ICc9 fS0kew== LkRvY3VtZW50cw== IldlbGw= IHJlbWluaXNjZW50 IGdheg== aXJvcHI= ZWhy IHN1cHByZXNzZWQ= ZXJzaA== LnNjcm9sbFRv IGNhZGVuYQ== IGdhbWVTdGF0ZQ== w61t KGNvbnY= IFRvbW9ycm93 IENDVA== TW9uZ28= dWxn LkNhbWVyYQ== LmhhbmRsZXJz bXBo IHN0aw== IGdlbmV0aWNz QUNJTkc= VHJpdmlh IEJhbQ== KG1hcmtlcg== LlN0cmV0Y2g= IFN1bm5p IEJldHR5 LnRvbGlzdA== dW5saWtlbHk= LlJlY3RhbmdsZQ== b2Jzb2xldGU= SUxPTg== aW5uZXJUZXh0 ZW1ib3VyZw== YU4= IFZlaGljbGVz dW5sb2Nr OnV0Zg== bm9i IFNlZWluZw== IE5FVkVS IHRscw== IGZpbGxlcw== IGJlbmVmaXRlZA== IENsaW50 Ki8pLA== LmZvbGQ= IHBvc2libGU= QURFRA== dGhvdXNl LkRBTA== IE9kZA== cm9rZXM= IFN1bm55 IFBhcnRpYWxFcQ== X0J1ZmZlcg== IExldmk= bG9uZ3JpZ2h0YXJyb3c= ZWxkb24= Z2FnZXM= X3dhcm4= LkNyZWF0ZVRhYmxl IERpcA== X3F1ZXN0aW9ucw== LmxvZ2lj ICMi PXsoKT0+ IHRlcA== IGp1aWN5 7IKs ZW5rbw== aWFsZWN0 2Yk= IG9uYm9hcmQ= IOaP CXJ0 X1VURg== IFFBY3Rpb24= 4oCe KENvbXBvbmVudA== KGF1ZGlv LmhpdA== Z3Rl IHByb2dyYW1tZWQ= c3RhdGVQYXJhbXM= IHBvbHllc3Rlcg== ZmlyZXM= Ynlzcw== XT0o X3F1YWxpdHk= T2ZEYXk= IEZhaXJ5 IHllbGxlZA== b3Bs KHVzZXJOYW1l IERpZmZlcmVuY2U= IGV2YWx1YXRpb25z aWZmYW55 IGN5Y2xpc3Rz IGNpZGFkZQ== IHRleHRib29r IHByb2ZpbGluZw== X18pLA== ZGVh LmFjdGl2YXRl IGluZGljYXRpb25z 0JU= VG91Y2hVcEluc2lkZQ== IGludmFsdWFibGU= IE1BU0s= IGNvbnRlbmQ= RnJlcQ== IHJlY3J1aXRz KGludGVydmFs IFVzZXJQcm9maWxl ICcuLy4uLw== ZWR1 X0NhbGxiYWNr IGFuYWxvZ3k= IFRyb3BoeQ== YXBwaGlyZQ== VmlkZW9z IENoZXI= IEhhdg== 4oCmIg== LnZhbGlkYXRvcg== Z2Z4 IFVPYmplY3Q= Y2xhc3NuYW1lcw== dHJpYW5nbGU= IEVuY29kZXI= LnNweQ== IHByZWRhdG9ycw== PXN0YXR1cw== LXNhZmU= OiIsCg== IEluY2x1ZGluZw== IHt9Ow0K KmNvcw== IGVuZHVyZWQ= LnN1bGFrZQ== IG51cnNlcnk= IGZyYWdyYW5jZQ== IHJlYnVpbGRpbmc= IG50aA== IEZyYXNlcg== LnNldERhdGU= IFZpbmNl X1JFU1Q= IHZlbnRpbGF0aW9u 5rW3 Y3JpYmVz LmFzbQ== bHBWdGJs IEFiZQ== dWlzaW5l LGFycmF5 CWNsYXNzTmFtZQ== ZXJyYWxz ICcKCg== Q2hlY2tvdXQ= IHNvbGljaXQ= QXV4 X2NhcHR1cmU= IHJpYnM= cmFnb24= dmlvbA== dG9waWNz RnVuY3Rpb25GbGFncw== IE1hcnR5 YmlrZQ== IFR1Y2tlcg== KGtlcm5lbA== IE9wcw== Q2xvc2VPcGVyYXRpb24= L2RlbW8= aWxkYQ== IGzDrW5lYQ== QVBQSU5H IHN1aXRlcw== LnZpc2l0VmFySW5zbg== dXJ1cw== IE1pbnV0ZQ== KG1hbmFnZXI= IGJ1dHRlcmZseQ== IGFwYXJl IHdvbHZlcw== SldU IFNhbG9u CWRlbGF5 LWVzbGludA== aXNhdGlvbnM= LnJwYw== KXwo IFNuYXBjaGF0 L21t TU4= Y2VyaWVz LnRleHRBbGlnbm1lbnQ= IEZyYW5rZnVydA== IGFkbw== KG5ld1ZhbHVl KGFjY2Vzcw== KEV4cHJlc3Npb24= IFNpZ25Jbg== IEhhaXRp X3Rw LnNldFBhcmFtZXRlcg== TWludXRl IG1hbnVhbHM= cmljYW5lcw== IFBUUg== IE91dGVy IGdldGxpbmU= b2NhdGlvbnM= X0NE IEx5b24= L2d1aQ== X2xpdmU= aWRhbg== Lmdlb20= IGJvcmRlckJvdHRvbQ== aW11dGg= X2NoZWNrcG9pbnQ= IG1ldQ== IElydmluZw== IHBldXZlbnQ= KE1BWA== IEFSQ0g= IHBvdg== LnNvdXJjZWZvcmdl IGphbWFpcw== IGFyaw== IEJhZ2hkYWQ= IENMRUFS TWVudUJhcg== IHRyb2lz Q0hFRFVMRQ== ICMNCg== KENhbGw= JG9yZGVy KE1hdGVyaWFs IGVuY29udHJhZG8= JGxpc3Q= IE1FVEhPRFM= LmJlZ2luVHJhbnNhY3Rpb24= X01BRw== U3R5bGVTaGVldA== IG1ham9ycw== IGluZGVmaW5pdGVseQ== Y2xlYW51cA== IGhvbWVsYW5k KGR0bw== RGF0ZXM= UHJlc2VudGF0aW9u IERL PXtgLw== CUtleQ== KEJsb2Nr X2NoZWNrYm94 bmVlZHM= IG9uQ29tcGxldGU= cmljbw== IGdsZWljaA== IHht T09E QmV0dGVy IFNRTElURQ== LkJvb2s= eGFk IEdvbmU= CWRw IGRldm90aW9u IHN0bQ== IG9ic2Vzcw== IEJhY2tlbmQ= UXVlcmllcw== SWs= Ly8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq IGRpdmlkZW5kcw== LnBhcmVudEVsZW1lbnQ= fSIpCgo= IE1hdGVyaWFsUGFnZVJvdXRl Om51bQ== IGV4cGxpYw== IE9M bGVhc3Q= T29wcw== aW1lbnRvcw== IGluc3VyZXJz IGhlcm9pYw== CWZpZWxkcw== LmltZ3Vy LmJ0bkNhbmNlbA== IERldGVjdGl2ZQ== KHNt IE11dGFibGVMaXZlRGF0YQ== LmxhYg== KChb IGhhaXJzdA== IFRyYW5zYWN0aW9ucw== 5byA5aeL IHN0ZENsYXNz dWVudG8= R0lT X2NvZA== SW5zdHJ1Y3Rpb25z Q2FsbHM= UG9pbnRlclR5cGU= IFJ3 IGFzc29ydG1lbnQ= IERJRw== K3I= X0NFUlQ= IGluc3RhYmlsaXR5 IHZpYg== b25hcw== IHJva3U= YXBlbGxpZG8= IGFuZ2w= cHJlbmV1cg== IGZsdWlkcw== aXNlYXNl IGRlZWQ= cXVpc3Q= X0NPTlNUQU5U IGVxdWlsaWJyaXVt X2RlbGVnYXRl IFF1YW50dW0= cmVp Q2FwYWJpbGl0aWVz cmVjdGFuZ2xl Pz48 YWxpZW4= IEp1Zw== RE5B VGlja2V0cw== T2NjdXJz IEhhd2s= LnNldEhvcml6b250YWxHcm91cA== XENvbGxlY3Rpb24= ZmZpdGk= IHJlYXJy LnNldFZlcnRpY2FsR3JvdXA= IGNhdml0eQ== IGFkdWx0ZQ== RmFjYWRl LXdo IExPTA== 2LA= IGdyYW5kcGFyZW50cw== U3dpZnQ= CXd4 5omA5pyJ aWZlbg== ZmZzZXQ= QmV5b25k Ly99Cgo= IHdhZ2Vy IGJ1cnk= IGNvbW1lbmNl cmVnaXN0cm8= c2NpZW50 IFBlcmNlbnQ= INC00L7Qu9C2 KGlkZW50aWZpZXI= LnNldE1vZGVs IHNlbGRvbQ== bnRvbg== IGFwcGxpYW5jZQ== YW11cw== cnlzbGVy IHBhbnRpZXM= ZW5ndWlucw== IG1pbWlj IG9uQ2hhbmdlZA== IGFsY29ob2xpYw== LnJlbG9hZERhdGE= Q2hhcmdl IEZheA== IGpTY3JvbGxQYW5l RW1wcmVzYQ== IHNoYXR0ZXJlZA== eGJh Rm9udHM= P3M= IHBvc3RzZWFzb24= cmV0YWlu X3JhdGVz IHJlcXVlc3RDb2Rl LnRvZG8= wrRz Q0hL IEtlZXBpbmc= ZW5nZWFuY2U= IHZzY29kZQ== SVBQSU5H RGVmYXVsdENsb3NlT3BlcmF0aW9u X3JhaXNl IE9jdWx1cw== b2dyYW1z cmFq cGNp IGNvcnJvc2lvbg== LmhhbmRsZVN1Ym1pdA== QWNjZXNzaWJsZQ== IFBpYW5v bGl0dGxl QUNM xIdl LnVud3JhcA== IENvbnZlcnM= IExlYmVu aW9uZWVy IE1lcmNoYW50 IEpvcmdl IGVtYnJhY2luZw== IHZlbnRh w6FzdA== IHZpZW5l PFFTdHJpbmc= IGV4cGxvc2lvbnM= IGRpc3R1cmJlZA== LiI8 bWVtbw== IEFib3JpZ2luYWw= IGNvbXBsZXRv VGV4UGFyYW1ldGVy IHVvbWluaQ== KGFnZW50 0YPRgA== IFdob2xlc2FsZQ== L2Ft IEJvb2ttYXJr ZHJhZ29u IGdsb3Zl ICIiKSk7Cg== aXZhcmlhdGU= bm93cmFw SW5DaGlsZHJlbg== LkJy IGNvbmV4aW9u IGJhY2tib25l IGVjbGlwc2U= IHBlcnNlY3V0aW9u JzoKCg== L2xpbms= IFBlcm8= YW5kYXM= IFRlaw== LiIpOw== LWFuYWx5c2lz IGVyYWQ= TWFyc2hhbA== IGFuY2hvcnM= b2dlcg== IGNvbnZlcmdlbmNl c3RpY2t5 IG5hdmVn aW50ZXJu X0RFU0NSSVBUT1I= IENvbnN1bHRhbnQ= ICAgICAgICAgICAgICAgICAgICAgCg== IEF1Y2g= IGVycmU= xZtsaQ== IEhvcml6b24= Y29sYQ== SW5zdGFsbGF0aW9u aG90bWFpbA== Q05O LkNvbGxlY3RvcnM= Y2hz KHRyYWNl IEVuY3J5cHQ= IC0tLS0tLQ== IEJhc2VDb250cm9sbGVy IGFndWE= IHJlYWN0aXZl aWRs IGNsYXNzTmFtZXM= CVNlc3Npb24= IERvZGdlcnM= SGFk X2x2 SXNWYWxpZA== IEhFTFA= dXR0bw== IFZlcmlmaWNhdGlvbg== IGdldGVudg== X3Bh LmJtcA== OmY= IExvdWlzZQ== KCc7 L3NvY2tldA== R3JhbnRlZA== LmNhbGVuZGFy KElQ IFBY LlJvb20= IHByb2dyYW1t ZW5zaQ== IHRhYmxlc3Bvb25z IGxldmU= IG1vc3Ry LnRpcG8= L2Fu KGRp IGJpb2Q= IGRiQ29udGV4dA== IEpTWA== CXJlc3VsdHM= LkVORA== aHRl bGlmeQ== UHJlY2lzaW9u 6IqC QVJTRVI= KWRpZFJlY2VpdmVNZW1vcnlXYXJuaW5n YXR0ZW1wdA== SVNQ JmE= X1BPUA== IFRhYw== IHByZXBhcmVkU3RhdGVtZW50 INC30LDQv9C40YE= IG93aW5n LHN0YXJ0 IHJldmlld2Vy IHJzdA== IHByb3BUeXBlcw== IHJvY2t5 X2xvY2FsZQ== IFN0cmF0ZWdpZXM= IFdlYmVy LkNhc2NhZGU= X2VxdWFsVG8= IGNvc2Fz IERlbGV0ZXM= IE1heGlt IHNocmltcA== cmV0cmlldmU= LkluY2x1ZGU= SUdJTg== IE9F XSk7DQoNCg== LmVudW1lcg== IGNvZWY= X051bGw= UmE= dHlhcmQ= IFNoYXdu a2VlcGVycw== IHFx X3Ni b21lbnM= IEV4ZWN1dGVz IyI= VFRZ IFZhbHVlVHlwZQ== KTsqLwo= IEFic29sdXRlbHk= IFRvdHRlbmhhbQ== L2FydA== IGJsZXNzaW5ncw== IHN3aWZ0bHk= YnVzdGVy IGF2aWQ= Q09NTQ== LHRlbXA= IH0/Pgo= LWdyb3dpbmc= IGRlZXBjb3B5 QWNr ZWdnaWVz IF9fKCI= IG5vaXI= dGVycm9yaXNt IGFudGhlbQ== YWdlbmN5 X1BBQ0tBR0U= IENsb3N1cmU= LnJlZ2lzdHJ5 IG1hbW1hbHM= PEw= VUlDb2xsZWN0aW9uVmlldw== IExFRHM= IHZvbGxleQ== KEJ1ZmZlcg== X05BVElWRQ== bGliYw== aW1wbG9kZQ== U2Nyb2xsQmFy IE1hcmlvbg== LkNvbnRyYWN0cw== X0F0 IFdlaW5zdGVpbg== Y29tcGFyZVRv IEhvc2U= ZW5pdHk= LmNyZWF0ZVF1ZXJ5 X3JvdXRlcg== IHN0aW11bGk= ICsrKQ== IENoYW1w IEJheWVybg== YXNzYQ== LnZh IGRpc3RyaWJ1dG9ycw== IGZpbGVwcml2YXRl IGRlcGFydGVk Y2NjYw== QGNsaWNr IEx1bmNo Pkw= IGJsdWV0b290aA== LkRlZXA= LXN0YW5kaW5n w6FjaWw= IHJvb2Z0 IFBhdGhz X2l0ZXJhdGlvbnM= SW52YWxpZEFyZ3VtZW50RXhjZXB0aW9u LnNwaQ== IFVJQWxlcnRBY3Rpb24= dXll c2lnbmlu LnByaW9yaXR5 IEVzc2F5cw== PSd7JA== IOi/lOWbng== X3NpZ25lZA== LnBlcnNpc3Q= IHJlZGVzaWdu VG9Mb3dlcg== IE5ld21hbg== PXN0YXJ0 IElzcmFlbGlz YXNpc3dh U3BlZWNo IG51bWVyb3M= aGFuZGxlcnM= IFdvbmc= INC80LXRgtC+0LQ= V2VpZ2h0cw== IEd1amFy dGVpbA== IE5vbmV0aGVsZXNz X0VGRkVDVA== IHZlY3Q= IE9zYw== IGNvYXRz IFdoZWF0 IGdlZWs= IFBST1BFUlRZ d29ybQ== X2NvbnN0YW50cw== IEJvdWxkZXI= IFBhcm0= Y29sZQ== IGRlZmF1bHRDZW50ZXI= IFJvdWdl OkE= eGNm IFZlbmljZQ== bWVkaWFu IHJlZGVtcHRpb24= RnJlc2g= IGNvc20= IGZpZ3Vy IHJlZnVyYg== Q09QRQ== LmNk IGNob3Jkcw== IFNndA== xY0= VlBO IFNFTkQ= YWluZW4= X2FjY291bnRz IHRlbnRo IGRpc3NvbHZlZA== PEFwcA== IENvdmVyYWdl dXNlU3RhdGU= w6lybw== Li48 IOyjvA== IGRyZWFtaW5n IEZvcmVjYXN0 LkN1cnNvcnM= IHZpc2Fz L3NjcmlwdA== X3N0YXJ0ZWQ= IGdhc3Ry KFBSTw== XTsvLw== LlRpbGU= KnNpbg== KEFkYXB0ZXI= IFNhbmRyYQ== X1NJRw== YXJkYXNo IE92YWw= IGRlc2NyaXBjaW9u KHNs IERlc2NyaXB0b3I= IGAk L2ZyZWU= IEtleXdvcmRz IHR1ZG8= aW9uYWxl KGZvdW5k Lnh5eg== IEdlbmVyYXRpb25UeXBl X0RJU0FCTEVE KGFyZWE= IGVsaXRlcw== IGhvbWJyZQ== KG1lc3NhZ2Vz IFJhYw== IGV4dGluZ3U= IEVzdGE= b3Bv LnZlbA== bW91c2VvdXQ= IGNvbnZvbHV0aW9u IEhhbmRsaW5n IGNlaWxpbmdz VGVr IEFyZWFz LndyaXRlcm93 PFZpZXc= IENvcm5lbGw= X0JJTg== LmludmFsaWQ= JycnDQo= aWXFvA== X1Bvc2l0aW9u IGtpZGRpbmc= UENPREU= IHdhdGNoZXI= bG94 IOKX RGF2ZQ== X2FsbG93 IGJpc2V4dWFs IHVub3JkZXJlZA== IFNjaHdl X3NlZ21lbnRz IHRlYXJpbmc= SU5MSU5F IHVuZGVz Lmdvb2Rz LmNhbQ== IExX CXdoZXJl Q2FsY3VsYXRvcg== LXRocmVhdA== LWFsZXJ0 IFN1enVraQ== IElQQQ== IEF0dGFjaG1lbnQ= QUNDRVNT KGR0eXBl T3Bw X3N5bWJvbHM= IGRhbnNrZQ== bGFnZQ== b3JnZXQ= cmVzb2x1dGlvbg== 0LXRhw== IFFDb2xvcg== IEJhcnJldHQ= 0LDRhtC40Y8= PVwn IE5hdkNvbnRyb2xsZXI= L3JlZg== KGNvdW50cnk= X0hEUg== IHRlcnNlYnV0 cGV0aXRpb24= IHN1Zg== Y3JlZGl0cw== 4LmM eG0= IERhdmllcw== LnJlZGRpdA== IHdvdmVu IE9ibA== IEtN IENvbnNpZGVyaW5n ZW5zb3JlZA== LnBlcmlvZA== IGRkbA== JHdw IGV4dHJlbWlzdA== O1wK IGtpbQ== YWxlcnM= IHNwYW5uaW5n IGNvaGVyZW50 IGNvbnNlZ3U= LnRleHRMYWJlbA== LmdlbmVyYWw= X2Rhc2hib2FyZA== 0LvQtdC90LjQtQ== a2ljaw== X1BJRA== IEV4dGVuc2lvbnM= cmVnZXhw IENsYXVzZQ== X21vdg== ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA== IFJld2FyZA== IExFR08= QWs= PS09LT0tPS0= CXBhcnNlcg== IG9uemU= 6YCA 4oCd44CC X2JhbGw= KHJocw== IGNob3J1cw== PGNvdW50 YXN1cmFibGU= IHdpcmtsaWNo IEVyaW4= IE1TTkJD IGV0dGVy IENyb24= X0ZMT1c= ICwNCg== IGNhbGlkYWQ= IEZpbGVXcml0ZXI= CXN0bXQ= KEJ5dGU= X3BhdA== IHRlbGVzY29wZQ== IGdyZWVk IFRvcnQ= KHdyaXRl XGFwcGxpY2F0aW9u CVJUTFI= IENvbmZpZ3VyYXRpb25NYW5hZ2Vy VW5peA== RW5kVGltZQ== SW5jbHVkZXM= IEhhcnZlc3Q= ZW5iZXJn IEF1c3RyYWxpYW5z IOuT IHJu IHJlcHV0YWJsZQ== IGJsZW5kaW5n VUxBVElPTg== IEJyZW5kYW4= ZGFk IG3DuA== IFdvbw== X2Rj VW5l IHJ1ZQ== d2l0aGlu YW5nZXA= IHBvdWNo XCIiLA== IFNpYw== 4oCdKSw= YWx5emU= IEdlZg== Y292ZXJz IGRibw== cmVwbGFjZUFsbA== CUxvZ2dlcg== VHJ5aW5n W3N0YXRl LXBpZWNl 6ZaT YmVoYXZpb3I= YWxsb3dz bHJ0 X3B5dGhvbg== ZXJ0dXJh LWNvdW50cnk= IFRH LlVJTWFuYWdlcg== YmVucw== YWxleA== IEJyZWl0YmFydA== YmFj IHByZWRpY3Rz IGdhYg== IGNhcmRpbmFs LlRpbWVVbml0 IFZpc2l0b3I= IE1pbmc= IGxpdnJl IHBhcmVudElk cG9ydHVu IGRpbWVuc2lvbmFs IFZlc3Q= ZW5pYw== 4LM= INmH IEJMVUU= IGl0ZW1Db3VudA== IGZlYXRoZXJz CXBzdG10 IFBvbGFy ey8v dW5kaQ== 0YPQtg== emFy RXJyb3JSZXNwb25zZQ== 7IOB UmVwcmVzZW50YXRpb24= Kl8= K10= cHJlcGVuZA== ICc+ IGxlZ2l0aW1hY3k= IG9v U2xpbmt5 IG5hdGlvbmFscw== LndvcmRz O3A= dHJhcA== b21hbmlw IGN1ZXM= IGdyYWR1YXRpbmc= IHNlbWFwaG9yZQ== Il0pOwoK YWNleQ== UkVFVA== R3JhYg== IEZlbGl4 KElk X25laWdoYm9ycw== IG1lYW5pbmdsZXNz KGRlbA== IGplZGVy IENvbnRlbnRWYWx1ZXM= LmFic29sdXRl L2Ns IHhi ZGF0dW0= IHRvcnR1cmVk IHJ1YmJpbmc= U2NvcmVz IPCfmIk= IGF2b25z IGFtc3RlcmRhbQ== RU9T SGFs IHRydXN0d29ydGh5 Iz0= LkVYVFJB IG1hbm8= aXNpY2luZw== LXN1cHBvcnQ= CWN1cnNvcg== IFNwbw== YWltYXNzYWdl TWlzc2lvbg== W117Ig== IHByaW50ZXJz R1JFRU4= IHRlZw== IGFiZG9taW5hbA== IQoKCgoKCg== LlNob3J0 0LDQt9Cy IEdpZnRz fSIp KGJpbmRpbmc= eGNl 4oCR aW5mb3M= Rm9ybURhdGE= IGRhcnQ= IGVsZW1z KGludg== WUw= dGlu R0VORVI= 4buv IFRha2Vu dWNrbGU= OmU= IHNwZWN0cmFs LmJhaWR1 LycpOwo= IGdyZWVkeQ== ZXNpb24= LCwsLCwsLCw= IC8+LAo= SW50ZXJuYWxTZXJ2ZXJFcnJvcg== TlNOb3RpZmljYXRpb25DZW50ZXI= IEFp IHNwaXQ= IGF1Z21lbnRlZA== IHN0YW5kYXJkVXNlckRlZmF1bHRz RklOSVRZ UmFjZQ== OkM= IFJFQ09SRA== IEhpZ2hsaWdodA== ICdg IGRlZmljaXRz IG5laQ== IHJlc2VhcmNoZWQ= VGE= IGNvcHA= LkdldEhhc2hDb2Rl KToNCg0K T25DbGljaw== IFdlbGxpbmd0b24= IHJldml2YWw= 5q+U 6Zeu IE5TUw== IGZvcm4= IGludMOp IEt1d2FpdA== X2ZsaXA= X2Jv X1w= IG9jY3VycmVuY2Vz IFNjaWVudGlzdHM= U1JD b2dlbnM= aWdyYW50 UkVNT1RF IFNJRA== Lm9wdHM= dXZl KCldKQo= IGxpYmVydGFyaWFu IEdsaWRl bGVzZW4= IGZvcm1l b3dhbmlh IGFubm95ZWQ= RGVmcw== IEV4ZWN1dG9y IGNhc3Rz LnNldENoZWNrZWQ= IFNoYXJpbmc= LlNlcmlhbGl6ZU9iamVjdA== IHNlbGVjdG9ycw== X09USEVS 66+4 KHN1cGVy KE9T X1ZFUklGWQ== aWR1bnQ= PGhlYWRlcg== IC8+JzsK IHZpZMOpbw== IE5lZ3Jv IExvcmRz IFRvdXJz IHNvZnRseQ== LnJlY2VpdmU= IEVSQw== IGRhdGFTZXQ= QmFkZ2U= CUV2ZW50 IHBlcmw= IHt9XA== KHNlbnRlbmNl T3JVcGRhdGU= IGRpbWluaXNo UElO KGRyYXc= LlRvRGF0ZVRpbWU= LkVxdWFsVG8= KHBpbg== LXBlbmNpbA== bHVlbnQ= IENhbGxlcg== IHBsYXlmdWw= LScr eGNh c3dpY2s= KXt9Cg== fTokew== IE1ldGg= LmdldENlbGw= LmJyZWFr IHltYXg= PSc8Pw== LWpzb24= IHByaW1laXJv IGluZGljZQ== 44Kj IFVOSVRZ KGFi 0YbQuNC4 X0hBVkU= LXllYXJz IEVyZG9nYW4= LXN0YWNr IGRpc2NoYXJnZWQ= IGJyZWF0aHRha2luZw== IGdyYXNzcm9vdHM= IEFzaWRl aGVsbA== IHNuYWtlcw== L2xvZ291dA== IG1pbldpZHRo IEhlYXI= IFN0b25lcw== IFdpc2RvbQ== IEV2ZW5pbmc= X2JsYW5r IFByb21vdGlvbg== IE1NTQ== IEJhcnM= 44K3 bmo= X1RJ IFNvY2lhbGlzdA== IEVH LW9wdA== PVwiJA== KGRpYWxvZw== IGJlaG9sZA== IGludHJpY2F0ZQ== IGVyZWN0aWxl RXh0cmFjdG9y IHNjbA== IGNsYXM= KGhpc3Rvcnk= aWRlbnRhbGx5 IHBuZXVt UmFuZA== IExhcHRvcA== Y2FsbGVy IEZsb29k b3BlbmVk dWRkZXI= IEdldHRlcg== X3dhbGs= KHdlaWdodA== IEFsZXhhbmRyaWE= IHRhYmxlYXU= VmFyaQ== IC0tLS0tLS0t 6Iez ZXdvcnRoeQ== U3BlY2lmaWNhdGlvbg== IHRocmVzaG9sZHM= KCIiKTsKCg== X2ZvdXI= IFNhZGx5 IChfKQ== aXNtYXRpYw== IEphaWw= dG9IYXZlQmVlbkNhbGxlZFdpdGg= Lm1hcg== IHByZXZpZXdz IHNjYWZm aW5kaWNhdG9y IGNvZGVjcw== IGF1dG9j KHJ0 LmdldEhvdXJz IFJI IFN1cmdl aXZhbWVudGU= IGNvbnRlbmRlcg== Q3BwR2VuZXJpY0NsYXNz IDs7Xg== OjoqOwo= LXJlY29yZA== IG1hbWE= IGltZ3M= LmlzTG9hZGluZw== IG5lZWRsZXM= IGVuY3VlbnRyYQ== b2RhdGE= IEJ1ZmZlcmVkSW1hZ2U= CWphdmE= IFRvbWI= VU5JVFk= IGxpbmdlcmll IEphbWFpY2E= YnVncw== KioKCg== IE1hbw== LmJlZ2luUGF0aA== IHByb3N0aXR1dA== IFBoaWxpcHBpbmU= X3Nm X3Bvdw== IFNjaG8= eGRl J8OpdA== 4oCZYXV0 YWlzb24= IEZpbGVJbmZv dHVybnN0aWxl ZHJlYW0= IGlWYXI= c3ludGF4 aWxsaXNlY29uZHM= cHJvZmlsZXM= X1JFR0VY INC00L4= IENvbW11bg== QmV0 aXB6aWc= IE1lbW8= Lmlkcw== IHBob3RvZ3JhcGhlZA== IGFwcHJveGltYXRpb24= OnZhcmlhYmxlcw== IG1vZGlmaWNhcg== X1NNQUxM IEhlbXA= IGRpc3Jlc3BlY3Q= IGNvbnRlc3RlZA== IGlubm9jZW5jZQ== aWxsaXM= U3ltYm9scw== IGluc3BpcmF0aW9uYWw= IGRpc2NpcGxpbmFyeQ== IFBlcm1hbmVudA== IGRlc2Ny IFVOREVS 0YHRiw== cHJlc3Nvcg== SU1FUg== IG1vdW50cw== IG1vcmFsbHk= X1NFQ09ORA== LmZpbGVOYW1l 44OX IGNvbnN0cnVjdHM= IFNVTg== RVNQ RmluYW5jaWFs IE51cg== w7RsZQ== cmljdWxhcg== IFVzZXJNYW5hZ2Vy aWJpbGlkYWQ= IG9uUmVzcG9uc2U= IGZpbG1tYWtlcg== IGFsb3Q= X1RIUkVBRFM= IGVudmlyb25tZW50YWxseQ== Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u IHJhc2g= IEx5cmljcw== IGlwYWlycw== QmFja3Vw U2lnbnVw IEB7Cg== SlVuaXQ= d29ya2Zsb3c= IENvbXBsZXRpb24= IGludHVpdGlvbg== 8J0= IG1pYQ== IFNuYWNrYmFy IFRpbg== CWluc3RhbmNl IE11c2ljYWw= IHdlbGNvbWVz IHJlZHJhdw== X2NvbG91cg== X1JFQUxUWVBF X3NpbmNl IEJ5dGVBcnJheU91dHB1dFN0cmVhbQ== LWRlbWFuZA== YXJldGg= LnBhZA== c2Vr JywuLi4K LWZpcmU= Lnw= IG51bWI= IERPVUJMRQ== QU1BR0U= Y2htb2Q= LWls IGFsYXJtaW5n Q29w 5aSH aW52aXRl X0lURU1T IGxldWs= IHJlZWw= IGZ1bGZpbGxtZW50 UmVzdG9yZQ== X3Jy KGNsYXNzZXM= IHBhZ2luZw== eW1heA== cmFwcGVk 7ZmU fWB9Pgo= IEhpcm8= KFRSVUU= YXN1cmVy IGN1ZXI= VWJlcg== Lk9wZXJhdGlvbg== IG9sYW4= IHRocmlsbGluZw== PFJlc3BvbnNl IEZlbWlu IHRyYXZlcnNhbA== IHBvYw== IHNldFN0YXR1cw== ZGVjbGFy c3RkYWZ4 IGFkZGljdGl2ZQ== IEJ0bg== IGV4cGxvc2l2ZXM= IENvb2tpbmc= IFBsYWludA== IGFjY3VtdWxhdG9y IEFwcG9pbnRtZW50 LHBhc3N3b3Jk IEZBUg== bHVldA== RnVydGhlcm1vcmU= ZGVjbHNwZWM= X1N0YXRpY3M= LkRpY3Rpb25hcnk= Ij4nLg== CXZhbGlk IiIs SW5zdHJ1bWVudA== Pko= IG5vc3Ry IFJpZnQ= X1BvcnQ= IHZlY2Vz W1sn IHJhbGxpZXM= LXNlcmllcw== IHZ2 LnVj IHJ0bg== U3RhdGVDaGFuZ2Vk KGlucw== IENsYQ== LS0tLS0tLS0tLS0tCg== Y3Vz IFJlbG9hZA== Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0= LnNlY29uZHM= X2Rlc3RpbmF0aW9u IHNjcmV3ZWQ= PmM= VGhpY2tuZXNz RGVzaWduZXI= IGdyaWRz bsSF KGNvb2tpZQ== VHJpcA== LU1vYmlsZQ== IHZvbGw= IGdlbml0YWw= IGNvbmZpc2M= IENvbmZlZGVyYXRl IHdlYlZpZXc= IG1pc2U= IGNsZXI= KHNlbGVjdGlvbg== JGRhdGU= IHNoYXJwZW4= cmFnZW4= QW5kVXBkYXRl IHJlbWl4 IGh0b25z Ulc= TVBJ IHJldHJpZXZhbA== IHJpY2hlc3Q= LkRlY29kZQ== OmluaXRDb21wb25lbnRz IFRWYWx1ZQ== U2FpbnQ= QGluY2x1ZGU= IFBFUlNPTg== LnNlcA== IExEQVA= Z2Jh IGdyb8OfZQ== IHJlbGlhYmx5 IERGUw== LmdldEl0ZW1JZA== IHByw6lzZW50 LmdldFRva2Vu IGNoaW5lc2U= IE1lYWw= WU9V Ij48Pz0k KGNob2ljZQ== IHBoZW5vbWVuYWw= IFN0ZWVsZQ== wqI= IFBhY2thZ2VNYW5hZ2Vy IFN5bmRyb21l RGlyZWN0b3JpZXM= aXZhcg== LnVuc3Vic2NyaWJl bGllw58= bW9ubw== X2Nvbm5lY3Rpb25z X3ByZXNlbmNl eW55 S25pZmU= IGdyb292ZQ== IHNjb29w VEVNUEw= YXNha2k= LmhhbWNyZXN0 IGhhcmJvcg== Y292 Kno= IFh1 IHByb3Bvc2luZw== IEZSQU1F Q2hpcA== IEVlbg== IOyghA== IHNtYXNoZWQ= VW5zaWduZWQ= KC4u X2ZpbmlzaGVk IGdldFN0YXR1cw== IGZpYnJl QXhlcw== ICcvJyw= eWFyZHM= TURC LWJz aW50ZW50 IGJvb3N0ZXI= LmRzdA== LkRpYWxvZ1Jlc3VsdA== IE1ldHM= IGJlYXN0cw== aW5jcmVtZW50cw== LmthZmth VUlBbGVydEFjdGlvbg== LWV2ZXI= X2JhbA== IGhlbHQ= IGZyZW9wZW4= IFJlY3J1aXRtZW50 bGljdHM= Zm9yZ2V0dGFibGU= RGlzcGxheWVk X1ZFTkRPUg== Q29sbGVnZQ== QVNDSUk= IFNpbms= IE1hY2Vk IGN0b3I= IGVzdMOjbw== IFdpbmRzb3I= X2NoZWNrZWQ= X2RldGVjdA== YXR0ZW5k IHhtaW4= IGluZGlzcGVucw== L3BlcnNvbg== X0RFVEFJTFM= UkVESVQ= SGF5 YWJvbGlj IGZ1bmN0b29scw== aWFpcw== RlRQ X1JlY3Q= IEluZHk= LXB1YmxpYw== b2hhbg== X21hbmFnZQ== Q29tcHV0ZWQ= 7JeQ7ISc IFNsaWNl IGdheXM= IGFsZXg= YWl0cw== IHJlY2VpcHRz U1BFQw== IEJFRk9SRQ== IFByZWZpeA== X3Zpc2l0 IHNwdW4= TEVURUQ= IGRvdw== IGxlZ2FsaXphdGlvbg== YWJiYWdl IGNsYXc= IFRjbA== eGltYQ== IGNvdmVydA== Tmk= IHRoYW5rZWQ= IGFsbGVyZ2lj bG92ZXI= IEJyZWFzdA== LmlzQWN0aXZl IGdlYmVu VkVSU0U= Wk9ORQ== CVJlc3VsdA== JykuJw== IGdlZQ== IFNlcmlvdXNseQ== cHVycGxl IEVzcGHDsWE= aWZpZQ== LXBhY2s= UGFydGljbGVz ICcvLi4v IG11bHRpbWVkaWE= YXV0b2NvbXBsZXRl IFRIUkVBRA== IHJlZmVyZW5jaW5n cmVldGluZ3M= IHF1b3Rpbmc= IGFzc2lzdGFudHM= amVuaXM= aGFwcHk= IGxheXM= bGliZnQ= eGRh IGZvdQ== cGlhcg== UmVjb21tZW5kZWQ= IEJpcmRz IFdhcnJhbnR5 w7xybGljaA== LklOVklTSUJMRQ== X2FuY2hvcg== 4oCdOg== RmFudA== X2RlZnM= IGRyZWFtZWQ= IF9fX19fX18s cGxh w6RmdA== b2RrYQ== xLFz IGRhZGR5 c2NoZW1hcw== PXplcm9z IHJhdHQ= CQkgICAgCQ== aWVq IGRyaWxscw== LTw/ QUJB Lmxpbmtz IERlcGVuZGVuY3lQcm9wZXJ0eQ== Lmxvdw== aGVlZA== X0JMQUNL L0FkbWlu IGFtaWdvcw== aW5nZWQ= IE1pY2tleQ== LkdldEF4aXM= IE5lZWRlZA== IEVuY29kZQ== w6lyaWV1cg== IE1hbmlsYQ== IENvbGxlZw== YWRhc3Rybw== IGNoaWNhcw== 5L2g IG9uZXNlbGY= eGVh ZHVr IGd3 dXJnaWNhbA== IENlbnRybw== IGFlcw== ZmVlbA== IHRyb3Q= IGVsZWN0cm9ucw== IHJpdHVhbHM= IEJpbGRlcg== IGRlY29yYXRl IFRva2VuVHlwZQ== IGx1cmU= QXBpQ2xpZW50 Z3JwYw== IE9yYw== Q29udGV4dE1lbnU= UFJFRklY LXRoZW1lZA== X2ZpZm8= LklucHV0U3RyZWFtUmVhZGVy X3NwZWNpZmlj IERTUA== PXN1YnByb2Nlc3M= L3NoZQ== ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo= IGRhdW50aW5n IGNsZWFycw== IE1vdmVz IG15c3Rlcmllcw== LWJlc3Q= IFZ1 b2xpYg== IElzaA== IGNhcmFjdA== KExhYmVs IERlYmlhbg== IEV4cGVyaW1lbnRhbA== IGNhdg== LlRvRGVjaW1hbA== IFJob2Rlcw== IEhhd2tz IGZvdW50YWlu X1BFTkRJTkc= X1NV IHd4U3RyaW5n IFBldw== LmNsaQ== 0YTQvtGA0Lw= LndlYmtpdA== X0NO IDs7PQ== CW5hbWVzcGFjZQ== IHdQYXJhbQ== IHB1cHBpZXM= IHRlcm1pbm9sb2d5 IGFkZGljdGVk IGZvcmdl IEdhcmRuZXI= IHBlc3NvYQ== CVJlc3VsdFNldA== IGF0dGVudQ== YW5nZW1lbnQ= X2luZHM= Q2hp YXJpdGg= RW5jb2RpbmdFeGNlcHRpb24= bW91c2Vkb3du IEJFVFdFRU4= d2VpZ2g= IkZvcg== LmRk aXRlbA== WU8= IERpY2U= dW5peA== IE9idA== IENlZGFy IHNwZWNpbWVucw== cG9ybg== IHVub2ZmaWNpYWw= 6buR c29tZXRpbWVz IEJ1bGxk dHJ1c3Q= Z2V0UmVzdWx0 IHNtb2tlcnM= IHNhbmR3aWNoZXM= IGV4aA== IEZhZGU= X0RD IG1hc3R1cmJhdGlvbg== Zm9ydGF3ZXNvbWU= VEhJTkc= X2FuZHJvaWQ= IGRlZGlj LXNlbnNpdGl2ZQ== IG5hY2t0 TElCSU5U IGFnb24= IERJU0FCTEU= b25lc2lh Ymllcw== IFpJUA== IGhhdW50ZWQ= IGN1aWQ= L2NhcnQ= a29z CVJUTFU= IGhpbmRlcg== IGFkaXBpc2ljaW5n SUVOQ0U= LmJhbms= IEN5cHJ1cw== bWl4ZWQ= LmN5 LXNpbmdsZQ== PGxlbg== Q29taW5n IGZhdWx0cw== IGZvcmVzZWU= Z2V0bGluZQ== ImE= IGJyYWc= IGRpc2Nz IHJpcGU= IG7DpnI= IEdH U0hPVA== ZGVyYWJhZA== KGVkaXQ= VG9MZWZ0 W10pOwo= IGRvR2V0 dmF0dXJl TmVlZGVk IENoZW5n Y2Np RUZJ IGZldWQ= IGx1bmFy LlNoYXBl Tm9ib2R5 X1RSSUdHRVI= Q3k= Z3JvdW5kQ29sb3I= IFJlbW92YWw= KGJvdHRvbQ== JG1zZw== U0NJSQ== cml0eg== IGZyZW50ZQ== IGNvbXBvc3Q= YW5zd2VyZWQ= IFJvZHI= X0hUTUw= IHNpbGhvdWV0dGU= IFFVRVNU IENhdGhlZHJhbA== LkNvbW1lbnQ= IE1u LW5ldHdvcms= LmdldEZpbGU= LmdlbmVyYXRvcg== IENoZWNrb3V0 X3pvb20= IGVuY29kZVVSSUNvbXBvbmVudA== X1RD c29t IFNlcmll IGJhc2VVUkw= CXJ1bg== IGh1aA== LnNlbGVjdGVkSW5kZXg= IFNUQVI= fi1+LQ== YWJjZGVmZ2g= Lm1hcHBpbmc= PWRhdGV0aW1l Q29vbA== bmlt IERpcmVjdGl2ZQ== RmVkZXJhbA== IG1lbnVJdGVt INCQ QW5uYQ== IFJlY3JlYXRpb24= cnlhbg== LWFnZWQ= emVyYmFp 4oCm4oCdCgo= Y2FtcG8= IG1pbmlhdHVyZQ== ZGV0YWNo bWVhbmluZw== X2VtcA== UGVhaw== IGJjbQ== IEh1bmdhcmlhbg== IENhc2NhZGU= IHNhY2tz IHRydW5jYXRl IOKWiOKWiA== IHdoYWxlcw== IHNvcnRhYmxl IGFzc2VydHM= IHNlYWxz b2N5dGVz XSkpKQo= YWxhcm0= cmVzc2luZw== KHNpZ25hbA== IGVtcGVyb3I= CU9O Y29tbWl0dGVl IHRyaWxvZ3k= LlRyYW5zYWN0aW9uYWw= R3Jvdw== X3VhcnQ= IHN3aW5ncw== IHNwZWN0YWNsZQ== 4oCZYXY= IFNlbnRpbmVs INmE IFRvdQ== IHdpZG93 Z2VyYWxk LHVpbnQ= IHVudXN1YWxseQ== PENhcmQ= IFJlc3RhcnQ= bW9y 44GC44KK aXhlZFJlYWxpdHk= IGhhbmRndW4= 4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA IGxpdGhpdW0= UmVzb2x2ZQ== Z2V0Qnl0ZXM= L2Z1bmN0aW9ucw== IHRhY2tsaW5n T3V0bGluZWQ= IH08Lw== IFNleG8= IEFuaw== IHJhdGlvbmFsZQ== cmVtb3ZlQXR0cg== IG11bmljaXBhbGl0eQ== IGFzc2F1bHRz Q0hPT0w= IFJlZQ== IGJhdWQ= pqw= IGVuaGFuY2Vz INC/0YDQtdC0 IGNvbmNlc3M= Lmluc3RhZ3JhbQ== LmdldFJlc3BvbnNl c2VnbWVudHM= IHdlbGxiZWluZw== fTsKCgoK aHVuZw== 44OG IHJlbm92YXRlZA== LmV4cGVjdGVk IHJhZGlhbA== IGNvbW11bmFs dXNlck1hbmFnZXI= K2E= IGZ1bmRhbWVudGFscw== LlRI 6II= IHJhbnQ= IFN0cmF3 IE9sZURi YXppbw== IGhhbWJ1cmc= IHBhaW50cw== IHRodW1icw== IE51bGxQb2ludGVyRXhjZXB0aW9u IGdyb3VwZQ== IEhvbWVDb21wb25lbnQ= IGJhbGxv IElOSVRJQUw= X2FyZQ== IFBlcw== dXJzZXM= IGJhcmR6bw== LmdldExlbmd0aA== YW1vdG8= Lm5vdGlmeURhdGFTZXRDaGFuZ2Vk aWVuZXM= ZW56aWU= X2VtYg== dW1uaQ== c21vb3Ro IERybw== cGFzdGU= IE5hcnI= LS0tLQoK z4k= IEF1dG9y IG91dHJvcw== IExBQkVM LnBh LlN0dWRlbnQ= KFhtbA== IGV0aG5pY2l0eQ== IEl2eQ== 44KI X2Zha2U= Pyg6 dXBsb2FkZWQ= Z2V0TWFuYWdlcg== LVFhZWRh b2RpYWM= Q29ubm9y aWhhbg== TUFU KG1pZA== IEFsYmFu IHNvaXI= Q29tYm8= IFB1YmxpY2F0aW9u b3BvdWxvcw== cGlz IHRlbXBsZXM= b25neWFuZw== X2NsaWVudHM= IHJvZHM= IHhj aWprZW4= IHJlYXA= IOS4i+WNiA== CWNvbm5lY3Q= Rm9jdXNlZA== LGNvdW50 aWV0ZXQ= IGhhY2lh X2FsbG9jYXRvcg== IHRveGljaXR5 KHNlcXVlbmNl IG51ZXN0cm9z IFByaW5jaXBsZXM= IGxsZQ== YWxhcmlh LndyaXRlU3RyaW5n IEFGTA== aWZuZGVm IERvcw== xZtjaWU= IEFnZ3JlZ2F0ZQ== IHNhY3JpZmljZXM= X29mZnNldHM= bGRi IGxhdGNo IGZ1bGxzY3JlZW4= bWlzc2l2ZQ== T1BUSU9OUw== IFRlbGVwaG9uZQ== IGFyc2VuYWw= amVqZXI= IEhvc3A= IGZhdm91cml0ZXM= cml2ZQ== LmluY3JlbWVudA== IGJ2 IEZhbnRhc3RpYw== LnNheQ== ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA= IG1lZGljaW5hbA== IERST1A= IHBpdHk= bWV0aXM= IHdvbGxlbg== IGJlZg== X0Js ID4+Cgo= Ym93ZXI= IHN3YXBwZWQ= L2luc3RhbGw= IHNpbmtz ZXRyaXpl IGRlY2xpbmVz CW15c3Fs IENTdHJpbmc= IE1vdGlvbkV2ZW50 Lkxhbmd1YWdl Um9hZA== 0YLQtdGA YXNjaW1lbnRv JykpLT4= LmFib3V0 KGVkaXRvcg== IFJhdGluZ3M= aW5jb21l xaFl LmRlcXVldWVSZXVzYWJsZUNlbGw= IEF1c3RyaWFu IHN1bGxh IFRyaWJ1bmFs IERpZG4= 0L7QstCw0YA= IGluc3BlY3Rpb25z Qm9zcw== IGNvY2t0YWlscw== IGFwb2xvZ2l6ZWQ= X3N1YnBsb3Q= b3BhbA== Kz0o IHJlc29uYW5jZQ== aWJ1 IOumrA== cm9tYQ== cmVzZXJ2ZQ== cGxz IFRhaA== YXhpZXM= T1BMRQ== IERhcnJlbg== IFpvbWJpZQ== X01hcA== IF0pCgo= IFFp IFNhaWw= IHJlc3RyaWN0aXZl IGVyb3Npb24= LXBhcg== V0hJVEU= IG9sZHU= IGFwZXJ0dXJl IGJpdGNvaW5z dGV4dG8= IENvbWNhc3Q= IHRpbWVsZXNz ZW5raW5z IGZlZWRlcg== L3RtcA== cmVzZGVu Kydf LkRlc3Ryb3k= IMOnb2s= IERPQ1VNRU5U LmxuZw== LnRhZ05hbWU= IGt1bGxhbg== ZWdyYXRl ICgqLg== 57yW6L6R IGhhbmRzaGFrZQ== c29j X2dlb21ldHJ5 IERhbWFzY3Vz TWlub3I= IEthZmth 7Jes RmxvcmlkYQ== X2NvbXB1dGU= LmV4cHI= IHBhcmFsbGU= IERpYXo= Y2ly W3RhcmdldA== IGpva2luZw== IGdsb3I= KHNldHE= X2hhbmRsZXJz SGFuZw== IGZlcnI= cmltaW5hbA== CSAgICAJCQ== ZW50aWVz ZGVmaW5lcw== LXRheA== anNvbnA= IFVQUw== bWV0cm8= X187Cg== IFVnYW5kYQ== XSkpOgo= X3Rk eGFl bHc= Lk9T IExvZ2dlZA== YWNpZA== IE1heW8= YXNwZWN0 IHZhZ2luYWw= IGluaXRpYWxpemluZw== IHN0ZXJvaWRz ZmljdGlvbg== R1JF Z2VuZA== IGxpYWJpbGl0aWVz IExldHM= TWVjaA== KG5j KGNoYW5nZQ== IGNvbm5lY3RvcnM= Oms= IHRhc3Q= ISIpOwoK dGhpbmdz cm9waHk= bHVldG9vdGg= IFNpZ25VcA== LmN0cmw= IHRoZXJlaW4= b3JkYQ== LmVzY2FwZQ== aWdhdG9y IHBldHJvbA== IHNwZWNpbWVu IGRlYnV0ZWQ= LVBybw== IGNyaXNlcw== LmFkZFZpZXc= 64+Z LWRvb3I= IG1vbmV0 IG1pbGxpcw== IHZpZXI= SW50ZXJuYWxFbnVtZXJhdG9y IGFkbWlucw== IExhaXI= emlu Z2V0UXVlcnk= dW1ibGVz TElNSVQ= IFZpZw== X3Nvbmc= PENoYXJhY3Rlcg== Ojou X2hvbQ== X2Jw IFN1cGVydmlzb3I= c3VibWlzc2lvbg== YWJpbGU= IG5vaQ== T3JDcmVhdGU= IHBlZWw= IG9uU3RhcnQ= IHNlbnRpbWVudHM= dmVoaWNsZXM= IGNsYXNzcm9vbXM= IHN6ZXI= IGJlbmRpbmc= IGxvbmdldml0eQ== IGFjbA== IEFsZXBwbw== IFVN IFJpY2h0 IG11bHRpcHJvY2Vzc2luZw== RE9NQUlO IiwiKw== X1lFQVI= IHNjcmFwZQ== IHNvbGl0YXJ5 ICJdIjsK L2Vycm9ycw== 7J6s nOugpQ== YmV0dGVy CW51bWJlcg== IExG IEFjcm9zcw== UHViTWVk XCIi IEV4Y2VsbGVuY2U= IHVzYW5kbw== IFVJUA== QWN0aXZpdHlJbmRpY2F0b3I= X1ZPSUQ= IGJyZWVkcw== 772l dWVzdGFz IFRyZWFzdXJl dXN0cmFsaWFu KGZhY2U= IFRlbm5pcw== CUludA== IEhhbnNlbg== 57U= Okk= IOKclA== R1JBWQ== T1VTRQ== IGhlcGF0 oO0= QUlS w7PFvA== IHF1ZXVlZA== dmluY2lh IENocm9taXVt IGNvbXBldGVuY2U= dW5nYWw= aWxsaQ== IGdldEJ5 IEZpbmRlcg== IGluY2FwYWJsZQ== IHNhZGQ= IGNpdGVz IENodXJjaGlsbA== U2Rr TW9yZW92ZXI= QXNwTmV0 KEZsb2F0 JHBhc3N3b3Jk IENvbm5vcg== LXNlc3Npb24= X2Rt Kikp IGRldXRzY2g= IE5Y IHBlcmtz X1NPUlQ= X1RPT0w= X1ZJU0lCTEU= LmFzcA== 5oiW IEJyZWF0aA== RGV0ZWN0 IER1ZWw= LmNtYg== W2l0 LlNldEJvb2w= IG5hcmNpc3M= IGFiaWRl IGVqZW1wbG8= IOKElQ== IG1vcm5pbmdz IGNvbXB1dGVz LnNzbA== anQ= IG11Y2hvcw== X1NT W2VuZA== IGJhc2lu IGFsZ3Vub3M= IENyb2F0aWE= bGluZXdpZHRo KHRhZ3M= KGhpZGRlbg== w61jaW8= IGFwYXI= INC2 5LiO LmZvb2Q= IFJ1cmFs IGJyZWFkdGg= 5b2x KHNlc3M= KyIp IFBhc3Rl IHNlcnZpZG9y IEJpdFNldA== IFRyYW4= bGF1cw== dmV0dGU= ZXllcw== IENMSUNL IFZJSUk= IFR1cm5z IExlQnJvbg== IE11ag== IERlZw== IEFkdWx0cw== X3N1aXRl cHJvY2Vzc2FibGU= IFBIWQ== Z2hlc3Q= LkZhaWw= IFNsYWNr Y2Vq XENhcmJvbg== IHN1cGVyc3Rhcg== IGhvbGRpbmdz KGZvcm1z ICcjJw== TXVsdGlw KCJbJQ== LXNvbGlk L3VybA== LXRpZXI= W2xlbmd0aA== IFN0cmVhbVdyaXRlcg== IE1hcmtldHBsYWNl Z2V0dGV4dA== X1RJQ0s= IEZvcmdl IGJsYWNramFjaw== IERPRVM= IE1hdHRlcnM= d2F2ZXM= IHdoaXNwZXJlZA== IGx1c2g= 7Jik ZGlnaXRhbA== IHdyaW5r IEhvZ2Fu IHJ1c3RpYw== LkFwcGx5UmVzb3VyY2Vz IEhhcmR5 b3NvbWVz QVVU LlNUQVRF IG5hcnJhdGl2ZXM= CXN0b3Jl Ymli CVNjYW5uZXI= IENvZHk= XFJlcG9zaXRvcmllcw== IHJldW5pb24= YW5kdW0= 4oCZaA== IHNuaWZm TlNCdW5kbGU= IGNvbXByZWhlbmQ= X1VTQUdF X29jYw== VVJSRU5DWQ== Sk5J IHNwZWNpYWxpemluZw== IHZpc2lvbnM= IGRvbG9yZQ== IHbDoQ== IENoZXZ5 IFN0eWxlZA== aW1wYWN0 YWxsZW4= IGthcnQ= IFRhYmxldA== c3R1ZmY= cmVlc29tZQ== 0LDRgtC+0YA= Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K X0FkbWlu IGNlbGxwaG9uZQ== IGF1dG9wbGF5 IGNhbWJpbw== IG1hcml0aW1l X0JPT1Q= LXF1YXJ0ZXI= IGxhdGluYQ== IEFKQVg= ZXF1aXY= IEZyb250aWVy IFhZ fV0K IFJvdWdo LnByb3Rv IGNvcnJlY3RuZXNz IGZhY2ls IFJlYWNoZWQ= 44Gd44Gu VklT LnBz IHN0cm5jcHk= IGRpZmZ1c2lvbg== LnN0YXJ0QWN0aXZpdHk= 77+977+977+9 IGFjY29tcA== QU1FU1BBQ0U= aW1vbmlhbHM= IEJsYXN0 YWJ5cmlu IGRvbWU= IGV4dHJhdg== IHllbg== IGN1bGluYXJ5 UFJJ IENvbW11bml0aWVz bmlk X29wZXJhdGlvbnM= Lmhz IE1pbHRvbg== IG5vaXNlcw== QXV0b3Jlc2l6aW5nTWFzaw== KGNpZA== fQoKCgoKCg== XX0sCg== IERldGVjdGlvbg== dGFibGE= IGxpYmVydGllcw== X0RZTkFNSUM= d2dldA== IFTDvHI= IFBhc2NhbA== VHJhbnNwYXJlbnQ= RGVsYXllZA== XSgp IEhlcmJlcnQ= PEFjdGlvblJlc3VsdA== Y2hhbGxlbmdl IG11c2hyb29t Lmluc2VydEJlZm9yZQ== IFJpbg== IGh1bW91cg== IGbDuA== YXBpS2V5 YWxsb2NhdGVk IGNvbmZlc3Npb24= LiIsDQo= CWFzc2VydFRoYXQ= IFNPUlQ= IExPUkQ= IGV4cG9ydGVy LnNldExldmVs cG9rZW1vbg== YXNodHJh IGbDqQ== dXJhdG9y KE1TRw== IHR1cA== IEh1bGw= IHlpZWxkZWQ= LlN1YmplY3Q= XFJvdXRl IT8= INGD0LTQsNC7 XFNlY3VyaXR5 LWFy IGFsbGVnYXRpb24= KFNldHRpbmdz w6RuZGVy IGVsbGlwc2U= IFJldHJvZml0 IHJlZ3VsYXRpbmc= IE1vbGx5 IExvaw== X0N1c3RvbQ== IFByb21v aXNpbg== IHJlc3VtZWQ= IG1ldHJvcG9saXRhbg== LmVycm9yTWVzc2FnZQ== Oi0tLS0tLS0tLS0tLS08Lw== Lm1s c2NvcGlj LnJlZnM= YXB0b3Jz IEluc3RydW1lbnRz IHByb3BhZ2F0ZQ== fS0+ IHBhc2Fkbw== dGhhbms= X0RlbGV0ZQ== IEJyaWdodG9u LHVuc2lnbmVk 5L2c6ICF IGFzcGlyYXRpb25z LWhvdw== Um9zZQ== PSgo X25lZWRlZA== X3BsdXJhbA== PEFwcGxpY2F0aW9u IFdFRUs= IFVubG9jaw== IFRFTVA= U291 IHNjaGl6b3BocmVuaWE= IHRyb2xs IGNvbXBsZW1lbnRhcnk= IE5FVFdPUks= IGJsaXI= IHByb2dyZXNzRGlhbG9n IiUo IEF0dHJpYnV0ZVNldA== CXRz Lml0ZXJpdGVtcw== 6K+d IGVzY3JpdA== dm91cw== X3BsYWNlcw== SEs= IHNlZ3Vpcg== X2Z3 IFJvdW5kZWQ= IGRpc3Bvc2l0 6KeG cGFybQ== d293 U1RSVUNUSU9O LmFsbG93 IENoYXJTZXF1ZW5jZQ== CWV4dGVybg== IHByb3NlY3V0ZWQ= IG1vcnRhcg== IEp1ZGE= LW1zZw== IGVzdHVk LmdldERlc2NyaXB0aW9u IHNvdw== YW1icmU= IHJvbWE= RW5o Ym9udXM= IHNxdWF0 IGRpc3RyYQ== ZWRJbWFnZQ== IHBlcHBlcnM= LXBlcmZvcm1hbmNl LAoKCg== LGZpbGU= IE1JTUU= X2NvbmNhdA== QUJT LWZhc2hpb24= IHVuZGVyY292ZXI= T25lVG9NYW55 IHJlY2xhaW0= Q09QWQ== IGJpbmRz IFRhcGU= IGdvc3NpcA== IEVxdWl0eQ== L0NhcmQ= LmFjdGl2 J2Ft IGRyYWluYWdl PFNjYWxhcnM= IG9uQmluZFZpZXdIb2xkZXI= KCk/Lg== IHNvcnJvdw== IEli dXB5 X1VVSUQ= IENoYXJt IEVsZWN0aW9ucw== Lm9uRGVzdHJveQ== IEludGVyZXN0aW5nbHk= b3VuZGluZ0JveA== X2RldGVjdGlvbg== LWhlbGQ= X3Vua25vd24= IHJlZnJhaW4= IG3DqXRvZG8= IGVCb29r RU5PTUVN IGRhbmc= UHJvZmVzc2lvbmFs IGRpY3Rpb25hcmllcw== L215c3Fs IFNUVUQ= IG1hc3Nl c2NhcGU= IGRyZWk= Om5hbWU= LmxvZ28= U2lnblVw IHRhaHVu KHRoZW1l IEZlbW1l IGJvbWJlcg== IEphZGU= IFRheQ== IHN1Ym1hcmluZQ== X2NsYXVzZQ== enljaA== IHNpbXVsdGFuZW91cw== IGNhc29z LmJvb2xlYW4= KGxocw== IGNvbnRpbmVudGFs LXNhbGU= CWVudg== IEN1dGU= IEZhY3RvcnlHaXJs YWJ1cw== L3ZhbHVl IGphZHg= IHN0ZXJu Pj4KCg== IHN1cmZhY2Vk IOyggOyepQ== cGxhdHo= CWVtYWls Y2VwdG9ycw== Ij4o IGVwaWxl 6K+7 IERlYnQ= 5ZGK Tk9Q Imh0dHBz Omo= Rm9ybUl0ZW0= X0xJQ0VOU0U= LmdldERvdWJsZQ== IEFnZW5kYQ== CWZpbmFsbHk= KGZpbHRlcnM= KGF2 576O QVBFUg== IGxhdmE= 0LXRgNC2 KSkpKQoK IGZhdWx0eQ== X25t IHRyYXZh KEJpdG1hcA== IHNwZWVkaW5n PicpLg== IHNjcmVlbmVk X3JvbGw= IE1hY0Jvb2s= IEFVRA== IGRpYWdub3Nl LkdlbmVyYXRl IF5e IHN0cnM= W1Rlc3Q= IHJhbnNvbQ== IERIQ1A= ZWxkZW4= IGludGVycHJldGF0aW9ucw== KCldLg== ZmxhdE1hcA== IGxpbmVIZWlnaHQ= X21vdW50 IFdpemFyZHM= IHNsdXRz ZWhsZXI= b2RhbA== IG1pbGl0aWE= 5bI= ZWFybmVk IG1pc2VyeQ== aW50dmFs ZnVuZA== IGhpZGVz IGRpYXJy IFdlc2xleQ== IHhtbQ== IHF1ZW0= IEFyYWJz aWZ0aA== YXRlZ29yaXplZA== RGlzcG9zYWJsZQ== UHVyZQ== X05PVElGWQ== c25pcHBldA== IEdhcnJldHQ= LnJ1bm5pbmc= LndlaWdodHM= ICgtLQ== IGludmFyaWFudA== 5LqL5Lu2 IEFsbG93ZWQ= ZGlycw== IHBhc3Npb25z IGxhZA== IEZsdXNo bWVudXM= OmJsb2Nr IGNvbXByYQ== LmNob21w YWxsb2NhdG9y IGN1cmF0ZWQ= IEtub3dpbmc= IFBhdHRlcnNvbg== IHRlbGFo J2V4 IGRvb21lZA== IHBoaWxhbnRo b3R0eQ== LnN0eWxlcw== T3duZWQ= IGFsbGVyZ2llcw== PXBhcmFtcw== b2Nlc2U= aXRlbGlzdA== IFNlbmRpbmc= YmVm b3JyYXI= IE7Do28= IEZhcmdv IEx1Yg== IENvbWJpbmVk X2dpdmVu CQkJCQkgICAg IHJlY29uY2lsaWF0aW9u UGF0dGVybnM= YXphcmQ= IGJpb21hc3M= IEhvdXNlcw== cmVzcHVlc3Rh Y2Nv L3RvcGljcw== IFl1aw== IHdlYWtlbmVk X2NhbGVuZGFy IG11bGhlcmVz IE1hcmw= IHNpbmU= IFRpbA== IFNvdWxz IERldXRzY2hl IEZPTExPVw== IHBpcGVsaW5lcw== IEJldmVybHk= X0RJUFNFVFRJTkc= IiM= IFByb3Rv LmJpZw== IFNhdmluZ3M= IFRhbno= anVu IEdhbW1h IFNhZGQ= IGFkdmlzb3Jz IHJvYXN0 IHVudGVycw== dWRpZXM= X2xvbg== LXBvaW50ZXI= IEVsZW1lbnRSZWY= XEJ1aWxkZXI= ZXhhbXBsZUlucHV0 LndlYmRyaXZlcg== ZGF0YVR5cGU= IFF1aXRl IENlbHRpY3M= dWls LWRlZmVuc2U= YmlzaA== IFVJV2luZG93 IFN1ZGRlbmx5 LmhvdA== LnJlYXNvbg== IGfDtnI= QU1E Lk11bHRp YXV0aGVudGljYXRlZA== cmVnaW9ucw== Oyg= 0LDRgNCw0Lw= IEtpcmJ5 JHJvdXRl UFJFQ0FURUQ= IER1cmhhbQ== b3dv IFBlcmZvcm1z IGRpc3JlZ2FyZA== bnN0 IFBvbHM= IGdldFA= Il06 LWNvbG9yZWQ= KEtleXM= IEFsbGVn X21vZGlmeQ== X2xvYWRpbmc= c3RyYWluZWQ= IGF0cm9j X3Bocg== PFNwcml0ZQ== IHNhdGlzZmFjdG9yeQ== bWFuc2hpcA== LnBpcGVsaW5l VG9ueQ== IHRoaWVm cG9sYXRvcg== KGxvY2s= YnVyc3Q= IE9wdGltaXphdGlvbg== IHN1cmZpbmc= Illlcw== IGRlc2NlbmRlZA== 5pI= X0NsZWFy IGNyaWVz IEZyb3plbg== RElSRUNU LUNvbg== IExlaWNlc3Rlcg== 5aWz T09N PWRi IGdldE1lc3NhZ2U= PFN0dWRlbnQ= X2JhdGNoZXM= Lk1hc2s= X2V0aA== XCk= IHNvbWE= Q2F0Y2g= W2No T3duZXJz aW5kbGU= OmF1dG8= LnZlcnQ= aXZy LnNldExvY2F0aW9u IGZsdWVudA== X0VORElBTg== IENhcmxv Y2VwdHM= YWRkQWN0aW9u Lm9hdXRo PFVuaXR5RW5naW5l cmVlbWVudHM= LlNraXA= PykKCg== LmRlZmF1bHRQcm9wcw== IGNhYmU= IFNoZW4= ZXJvc2lz IFByb2ZpdA== IHBvaXM= X0NSRUFURUQ= IHJlbW92ZUZyb20= KHdz P2FjdGlvbg== KEZpZWxk IGVycm9uZQ== Lm1pbmltdW0= IFJldHJpZXZlZA== IGRhZG8= IFBSSVZBVEU= LXNwZWM= IGd6aXA= cGRhdGE= IHBvc1k= KGxvdw== IHF1YWxxdWVy L2Nsb3Vk 6rKM KGNvbW1vbg== IEFyYmVpdA== b3JnYW5pc2F0aW9u IHRpZHk= IFJvbGFuZA== KHBo LnpvbmU= IGdlbnRsZW1lbg== xrDhu6Nj 5bGx IGVuY2xvc3VyZQ== IE1hbmFmb3J0 CUNvbG9y U3RlbmNpbA== Tmlj IHRoZW9yZW0= IFZH IGNvbG91cmVk VkJveExheW91dA== dWxzaXZl RHJhZ29u Y2Zm ZXRlc3Q= ZW5zYQ== b2ZkYXk= LkF6dXJl OlVJQ29udHJvbEV2ZW50VG91Y2hVcEluc2lkZQ== X3VwZGF0ZXM= IHRyZW5keQ== dWdhcw== d2Vha1NlbGY= IHJpZGdl aWJyaQ== IOy2lA== KENH IE1vbmtleQ== LndyaXRlSW50 LnRpbWVkZWx0YQ== Vmlld0NvbnRyb2xsZXJBbmltYXRlZA== IFByb3ZpZGVuY2U= 44GI IGJsZW5kcw== L1N1YnRocmVzaG9sZA== IEFwcGw= IGF0YW4= IHJlbG9hZERhdGE= dW1ib3Ryb24= c3TDvHQ= T0F1dGg= IEdpdmluZw== IOyEpA== IEZpbm5pc2g= Y2hlY2tpbmc= LkVtYmVk c2VxdWVsaXpl IGluaXRpYWxpemVz IE9zbG8= 2LY= Z2V0RXh0ZW5zaW9u X0FMVA== KGJsYW5r IGZhdGFsRXJyb3I= IGRlbWlzZQ== KioqKioK IFhT KEFG IEVucw== YW50aGE= IFBPUg== IG5pY2g= Lk5hbWVk IGdpZ2FudGlj IE9ic2VydmF0b3J5 LlJlc29sdmU= IFBheW1lbnRz Z3VpbGQ= IGN1cnJlbnRTdGF0ZQ== PT09PT09PT09PT09PT09Cg== IFNleQ== cERhdGE= IGRlYWRsaW5lcw== IGNlbnRyYWxpemVk IFNjaG9sYXJzaGlw X3N1cHBvcnRlZA== LmNocm9tZQ== KCldKTsK IGN5YW4= IENhZ2U= QXV0aG9ycw== Xw0K L29z a2lt ZGVl LnRleA== IHlvdXJzZWx2ZXM= IG1ncg== IGFsaw== LWluc3RhbGw= IGRyYWZ0aW5n IHJ1bW9y IHN0YXR1ZXM= UG9vbGluZw== b2xpbmE= QUFBQUFBQUE= LyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t IGV4dHJlbWlzdHM= Q2FsY3Vs aWdodGhvdXNl SW5zZXQ= KElOUFVU IHN5bmNocm9uaXphdGlvbg== aXZpcnVz LmF4ZXM= IEdhcA== LUFu X1RlbXBsYXRl IGdhbWVy IENyaWNrZXQ= IGxpbnQ= IGF1dGhvcml0YXJpYW4= TlNVSW50ZWdlcg== IHJlZG8= IGFkaXBpc2Npbmc= X0ZFVENI Y2hlaWQ= IEZhbmc= LmluZGljZXM= dG9uZQ== 0LTQtdC7 IHt7LS08 YnJhaGlt IHNhbGE= Z2V0Q29kZQ== IGNvbW11bmljYXRlZA== c3RhcnRzV2l0aA== ZXJ0eg== UmVhZGFibGU= SXRlbUlk b3JlZmVycmVy Y3JlZGlibGU= w6FyaWE= IGNvbWJpbmVSZWR1Y2Vycw== KiovCgo= IGJsaXNz IGFkb3Ju ZGVwZW5kcw== IFJPT00= IGZyYW1pbmc= ID8nLA== YXV0eQ== X3BvdA== X3RhYnM= RXhhY3Q= LCIs ICd9JzsK IGFyYml0cg== YWhyYWlu LmdldFN0cmluZ0V4dHJh ICRc IG91dHB1dFN0cmVhbQ== IGNvbW1lbmM= YW51cw== Y2h5 PEVtcGxveWVl IGhleGF0cmlnZXNpbWFs IG5hY2lvbmFs KHNlcmlhbGl6ZXJz X3B1dGNoYXI= X1NBRkU= ZW50aWFsQWN0aW9u SXRlbVNlbGVjdGVkTGlzdGVuZXI= LkRpc3BhdGNo Q29uZmxpY3Q= X2Fib3V0 b3NhdXI= Qm91bmRhcnk= IGNsZWFyQ29sb3I= KExvY2F0aW9u IE1PTlRI IFRhc3Rl LUdlbmVyYWw= IFdBUg== IGVyaGFsdGVu LXNhdmluZw== IGNvdXBsaW5n LXRyaWdnZXI= bW90b3I= IHl5eXk= IFBhdGVudA== cHRv IG1pc2RlbWVhbm9y dmFzaW9u IEFkbWlyYWw= 4LmJ4Liy X1BXUg== IGRldmFzdGF0ZWQ= Zm9saW9z SVRVREU= dXJyZWN0 IHJvYm90aWM= IFNhbmN0 IEhhd2FpaWFu LlJvdXRl LWNvbmRpdGlvbg== IHJr LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioK Y3JlYXRlRWxlbWVudA== IEtvcA== aWduYW50 LnJvbGxiYWNr IHNhbHVk Xycs IEFOU0k= RXhjZXB0 IERyYXdhYmxl LlV0Y05vdw== Ijpbewo= IGtvbGU= THVh IEJlbGlldmU= Q29tcHV0 IGhhbGx1Yw== IFNpZ25z cnN0 Lmh1 IEtOT1c= V2k= IEJyYXNz IFJhcw== QGhvdG1haWw= IHNlZGltZW50 IGFwaw== IOyDgQ== X3JlZ2lvbnM= IHBvZGl1bQ== PEJvb2s= 0LbQtQ== IHNpeHRlZW4= IEFsaWFz IGluZnJhcmVk IFZhbmRlcg== IExlYWRpbmc= dWNpbmc= LDosOg== X2hvcg== d2F0 IGTDqWNvdQ== X1dpZGdldA== U291bmRz X25hdmlnYXRpb24= IHNjaG5lbGw= KGdlbmVyYXRvcg== dWNlbmU= IHJlbWFrZQ== SVB2 IHLDqWFs X0lOQ1JFTUVOVA== IGh5cG90aGV0aWNhbA== X2FuZw== IG9mcw== ICEK LmNvbXBsZXRlZA== R2V0VHlwZQ== IGtvbW1lbg== w6FsaWRv YWRkT24= IHrFgg== VUxB X2luZGljYXRvcg== J10KCgo= YXBhY2hl X1NlbGVjdA== IEdyZWVuZQ== V2hhdHM= X2FuaW0= IHJlcGV0aXRpdmU= bXVjaA== IFRocmVzaG9sZA== IGxm KENhdGVnb3J5 Y29uZQ== TWl4 X01FVEFEQVRB YXlzaWE= TmVpZ2hib3Jz CQoJCQo= SVBIRVI= IEZyYWc= IENlbGxz IG5hbWVzcGFjZXM= KGJhY2s= IFJlc3RhdXJhbnRz c3Zj INC70Lg= b3RlY2g= LXNs pb8= IFdU IFJlZHVjdGlvbg== IGRvdHRlZA== CWZvdW5k IFRFQU0= Qm9ybg== IE11c2g= IENvbXBhcmFibGU= IGhpdGNo QVRP IG1heEhlaWdodA== YmVnaW5UcmFuc2FjdGlvbg== w612 X2Ju IGhlcmQ= IHJldmVyc2Fs IEhvbmQ= ZGVsaW1pdGVy IGNvbmZ1c2U= IGhvcHM= IGNlbnRyb2lk IGNvdXJ0cm9vbQ== LmRlY29yYXRvcnM= IG1waQ== IEltcHJvdmVk SU5ORVI= IEJhbmdhbG9yZQ== IFRhbWI= IGJvYXN0 KCkpKQ0K IGlsbGljaXQ= IE1vcm9jY28= Z3JlZ2F0b3I= X3Jlc3VtZQ== IGNyYWNrZG93bg== IHBvcnRyYWl0cw== L2hpZ2g= KFwn IGF5dWQ= X2ZlZWRiYWNr IGNhdGU= L2F2YXRhcg== IGhlYg== UG9pbnRDbG91ZA== IOWSjA== IDwhWw== IGdldFJlc291cmNlcw== fTp7 T3BlcmF0aW5n IEZvZw== CXRhYg== IFJlc2VhcmNoZXJz IGZhYnJpY2F0aW9u LmRhdGFzZXRz IENhbXBv IEthdWY= IGRsbA== bGlndA== XSkpOwoK c3RlbGxlbg== QUNLRVQ= bHZs IEdsb3J5 LmRhdGVUaW1l IGNvbW11dGU= IG9uQ3JlYXRlVmlld0hvbGRlcg== IFhFbGVtZW50 IFRva2Vucw== PHRoZWFk X3BpY2s= 7KQ= dm9u ZGVwYXJ0dXJl KHJlbmRlcmVy cGhvbmVOdW1iZXI= KFBlcnNvbg== Z2VuZXM= IExhcnM= ICl7Cgo= IEpzb25SZXN1bHQ= IG1ldG9kbw== Vk9LRQ== LmdldFVzZXJJZA== QWNjZWxlcg== CXJlcXVpcmVk IGNoYW1waW9uc2hpcHM= QnVpbGRDb250ZXh0 L3Rhc2s= L3JlbGVhc2Vz Q2F0ZWdvcmlh X292ZXJsYXk= IHNjYXJjZQ== X2xpbQ== bmdy YWhsZW4= IEFydGlmaWNpYWw= c3ByZWFk IGJvd2xpbmc= LmFuYWx5c2lz U01UUA== CXBhc3N3b3Jk IGJhdGhz XSkpewo= Y3VycmVudGx5 YWNpZW50ZQ== X3NlcGFyYXRvcg== IGRlYmVy IERpc2FibGVk acOocmVz IOKV X3Byb2Nlc3Npbmc= IHByb3Rlc3Rpbmc= IFJPVA== Z3JhYg== INC30LDQug== IHByb2FjdGl2ZQ== d29yZHByZXNz IFNldmVy aW5kZW4= IHdpa2lwZWRpYQ== KXsNCg0K X3dpbmRvd3M= aXNsYXRpb24= IHVucmVzdA== IGRpc21pc3NhbA== Lk5VTQ== X0ZBU1Q= aXNzdWVk IEZBQ0U= X3VuZGVy IHBsdWdnZWQ= IOWw IGLEmWR6aWU= IElDQw== IGNvbWJ1c3Rpb24= IGtpc3NlZA== IHN0YXJyZWQ= IFdhdHRz IHNwaWVsZW4= LXB1cnBvc2U= IEV2YWw= YXJnZXM= LHJlc3VsdA== dGVjaG5vbG9neQ== IG5hdGlvbmFsaXR5 aWN1cw== IE51Zw== INGC0L4= CQkJCQkJCSAg Y29sbw== IGdhc3Rybw== YW50ZWVk T0xJRA== LmJpYXM= X3RlbGU= Lmluc3BlY3Q= IHZlaWw= LmZvb3Rlcg== IG5lZ2xpZ2VuY2U= IGp1ZGdtZW50cw== Um9vbXM= eW5u CWNvdW50ZXI= b2NjdXBhdGlvbg== IOeUnw== dW5hcw== ICheKSg= TGFtYmRh ZmVs LlBhcmFtcw== INC00L7QsdCw0LI= c2V0TGF5b3V0 IGRlcG9ydGF0aW9u IGxvY2FsT2JqZWN0 IFBoYXJtYWNldXRpY2Fs Y2VwdGl2ZQ== IE5vbWU= RXF1aXBtZW50 RmFu VW5pdmVyc2Fs CXNvY2tldA== IGdyaW4= IGV4cG9zZXM= IGhhYmVy IHNpbmNlcmVseQ== IGNhbXM= IG3DvA== ZW5pYQ== RW1lcg== Q3J5cHRv U2xvdw== KHhocg== IT0o LXNlcnZpY2Vz IFBX IHByZW5kcmU= IG3DpGRjaGVu ZW1vbnM= 0L7Qt9Cy0YDQsNGJ Lk1hbmFnZXI= 7Jk= IGdyYWY= LXJh bWV0cmljYWw= L2Zs IGNlbWV0ZXJ5 Z2Vucw== IHDFmQ== IE15U3FsQ29tbWFuZA== LVRv IHbDpQ== IGFpcnN0 b21lbnR1bQ== IHNlcnZv bWlsbGlvbg== IE1pcmFuZGE= IlNoZQ== IGFkdm9jYXRpbmc= LWNhcHRpb24= IEF0dHJpYnV0aW9u IHdlbGNoZQ== X3ZlbmRvcg== CVN0YXR1cw== YXJyaXM= IHByaW50aw== IiwiIw== IHJlbGF0aXY= aWZmZXJlbmNlcw== aXp6ZXM= IGRlY2ltYWxz IFByb3Y= Lm1heGltdW0= QXJu IGhlbGljb3B0ZXJz X0JPVFRPTQ== Y2h1cmU= b2Rpbmdz Jyg= IikpKTsNCg== KGJlYW4= LmZk RnVuZA== IGhhbmdz YXBwaWQ= L2tlcm5lbA== LnBvaQ== Lk1pblZhbHVl LXZhbGlkYXRpb24= THVrZQ== Y2Rm IEZ1bmVyYWw= IFNhbXBsZXM= CWRl IHRvYXN0cg== IHRheGFibGU= IGNsdXN0ZXJpbmc= ICdcJw== IHJlc3RyYWludA== ZWNlZA== Y2hhaW5z 44CC77yI X0dSQVBI IGZ1ZWxlZA== 6ZyA SHA= 5aSN VGlsZXM= IGF1bnF1ZQ== SkM= IGhvc3RhZ2U= IEVzaw== IG1hdg== IGdlc3Rpb24= IGJhbm5lcnM= fXsk LmludFZhbHVl LiciCgo= X01BVFJJWA== IGNlYXNlZA== IEdPRA== X0NBTUVSQQ== LkFsbG93VXNlcg== dHJhY2tlZA== Q29vaw== YmFpcnJv KGNvbXBhbnk= IHZpZXdwb2ludA== LmdldFdyaXRlcg== IE5ldHM= d2l2ZXM= ICgpKQo= ZXhhbXBsZU1vZGFs CWNoaWxk IG15dGhvbG9neQ== IC8vIg== X2F4ZXM= aWJvbGQ= LkRhcms= IE1heHdlbGw= IGdwb2ludGVy b2xpY2l0dWQ= QmF0 dWxuZXI= YmFsYW5jZWQ= bWFpbGVy IGNvbnRlbXBvcg== 5omL5py6 KCJfXw== ICIpIg== cmVhcg== IEh1YW5n XScpCg== 16k= RlRB IENhbGxpbmdDb252ZW50aW9u IE91dHB1dHM= UGs= LlJlZmVyZW5jZQ== bGVjdHVhbA== ICk6Cgo= IGJyYWNlbGV0 dWdlcg== CUVycm9y U3dlZXQ= KCIvIik7Cg== aHg= IHVucmVhc29uYWJsZQ== SW50ZXJwcmV0ZXI= IGxvZnQ= X3Byb2R1Y3Rv IHNvY2lldGFs LlBhcnNlcg== IEFkYXB0 LmZvbw== KHdoZXJl LkZlYXR1cmU= IFlhbWFoYQ== Z2xhc3M= Rm9yZ2U= IHByb2hpYml0cw== IGNhcGFjaXRpZXM= IO2VqOyImA== IHBlcm11dGF0aW9u IGlobQ== Rmxk ZWxpYWw= PT09PT09PT09PT0K QENvbmZpZ3VyYXRpb24= IGdlYXJlZA== aW9zbw== aWVzdGE= dHJhbnNsYXRpb25z SW5wdXRDaGFuZ2U= UG9wdWxhcg== IFBMVVM= IHZm X0ZyZWU= YmJveA== IGNhdXNhbA== UElMRQ== IHNjaMO2 IGlyb25pYw== TWly LkA= 5Y2X IOiH UmV3 dWxlbmNl Zmxlbg== IGNhbkFjdGl2YXRl LXJlc3BvbnNl IGFjY2VudHM= aWdub3JlZA== wrBG LkRlcGVuZGVuY3lJbmplY3Rpb24= CXBvaW50 IGNvbnRpbmdlbnQ= IHNxdWFzaA== IHBhcm1z IENlbWV0ZXJ5 IGRlbHRhVGltZQ== IERPUw== IHZhbmlzaGVk 0LDRgNCw0LzQtdGC IERQUw== dGZvb3Q= IFp1cw== X0lOU1RBTEw= R0FO IGFyYg== IG11bmljaXBhbGl0aWVz SW50b0NvbnN0cmFpbnRz QXV0b3Jlc2l6aW5nTWFza0ludG9Db25zdHJhaW50cw== LGltYWdl X2lnbm9yZQ== IGRhbmdlcm91c2x5 cXVpc2E= cGx1Y2s= IGhhcnVz dXBwZQ== SHR0cEV4Y2VwdGlvbg== QnJhY2tldA== LicnCgo= IFRvbA== IFZpZXdlcg== emJvbGxhaA== LkNvZGVBbmFseXNpcw== w6xuaA== IGNvcnJlY3RhbWVudGU= LmRh IEFsZ2Vy 15A= YmF1bQ== IFBhbnRoZXI= cGFydGljaXBhbnQ= 5b+F LXN1cA== IGVtdWxhdG9y IGZhZGluZw== IFdvbHZlcg== Y3JlYXRlcw== IGJvb2tpbmdz LlF1ZXN0aW9u p+ihjA== IHN0cmVzc2Vz IHJld3JpdHRlbg== LlBJUEU= ZWRlcw== IGNiZA== IjoiLw== IGVuaGFuY2VtZW50cw== X3N5 QklO IFNsaXA= SW5zcGVjdA== IFdlZw== IGNvbmdyZWdhdGlvbg== IF86 X3Jt RnJhbWVidWZmZXI= ICcmIw== IEZhbGxvdXQ= SXNSZXF1aXJlZA== IFBlYXJzb24= IEZBQ1Q= IHJlbGll CWJveA== IFNoZXBoZXJk IFdpa2lMZWFrcw== IENvbGxlY3Rvcg== IHJlc2l6ZWQ= bWV0aG9kTmFtZQ== IGV2ZW50VHlwZQ== IEF0aGVu RGVzY3JpcHRvcnM= IGJlcnM= LW9wZXI= IEluaXRpYWxseQ== 5aE= X0JUTg== ICAgICAgICAgDQo= w6Fi X2NhbXBhaWdu X3dhdGNo Rm9yZA== LWRhdGVwaWNrZXI= IHZpc2M= IHNhdHU= X3Ntcw== IGNvbnRhZG9y LXN2Zw== IERPSQ== JGFyZ3M= IGtub2I= LkJPTEQ= IGRlYmF0ZWQ= aW1ncw== c29ja29wdA== dHJ1dGg= IEZlZXM= IGhXbmQ= X2Zvb2Q= IGFicmFz IG5vdGlvbnM= IFRvZA== OmNyZWF0ZQ== IENvbmZsaWN0 VXN1YXJpb3M= T1RPUw== IG1zbQ== S0hUTUw= KFso ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA= IH1d d2l6YXJk IG1pZW50cmFz IGRhdGFMaXN0 IGVtZXJnZXM= xINuZw== LlJlYWRJbnQ= UEdB SUxMSVNF SUVudW1lcmF0b3I= KHR1cGxl Q2hyaXN0bWFz TG9va0FuZEZlZWw= b2dlbmVyYXRlZA== ICMKCg== Y29udHJvbGxlZA== IGV4cXVpc2l0ZQ== IGFjZXN0 UmVhZFdyaXRl R2Fpbg== 44CN44CM IGNvcHlyaWdodGVk IGRvb20= LlRhYmxlTGF5b3V0UGFuZWw= IERvcnQ= IGNoaWxp IHdlcms= IEVWRU5UUw== IEJlYWNvbg== IHNoaXBtZW50cw== IHNlYmFnYWk= dXBvbg== dXRvbQ== LmNvbnZlcnRlcg== LkRyb3BUYWJsZQ== PXt9Cg== Zmlj fgoK IGxlc2JpYW5z X25h Rm9yZWlnbg== CXRoZW4= L21z IG9yaQ== Z2V0UHJvcGVydHk= CXNucHJpbnRm aGVzaW9u 44Gk In0sIg== IGFjcnlsaWM= UGVycw== QEVuYWJsZQ== SXNs KENhcmQ= LlN0YWNr TGljZW5zZWQ= X0dVSUQ= OnRpdGxl IGh1c3Q= IHByaW5jaXBhbFRhYmxl YW5pdGl6ZQ== L2VtYmVk IGVuc3VyZWQ= IEVHTA== 2YjYsQ== IOWIhg== LywK IGZ1bmRyYWlzZXI= S2V5TmFtZQ== IG1hcmNoZWQ= X1ZBTFVFUw== IFNjZW5hcmlv IG1ldGlj X2Fzc29jaQ== IFBhc3Rvcg== CQkJCQkJCQkJCQkJCQkJCQkJ ZXJhdGU= IGludml0YXRpb25z cXVvaXNl IGJsYW1pbmc= IGRhcmluZw== VU1NWQ== IHJpY2hlcg== ZW1ha2Vy IElkZW50aWZpY2F0aW9u IOyduA== IEJpbmRpbmdGbGFncw== Y2hhcw== IHJlc2lsaWVudA== X3Bn IHJlbGVn IElSQQ== U1RF IHRyYWN0b3I= LWxvYWRpbmc= IFByZXZpb3VzbHk= IFZhY2M= L2Jl IG7DpXI= IHVybGVuY29kZQ== IE5vcmZvbGs= LlJlbGVhc2U= IE5ldXRyYWw= 5Lit5Zu9 IEFybGluZ3Rvbg== IGFsbGVnZXM= IFdyaXRlcnM= VGVzdGVy IFJhbGx5 IGPDoQ== CVByaW50 IOKHkg== IFVzZXJDb250cm9sbGVy IFNlZWtpbmc= LlZBTA== TGlzdE5vZGU= X2Zm IFBoaWxsaXA= RkFDVA== IGNhcmFtZWw= IE11bHRpcA== IENvbXBhcmVk IFNlcmJpYQ== n7M= IHJldml2ZQ== IEthbnll IHZlcmdl IEJ1bGdhcmlh Z2V0Qm9keQ== IHw+ Y2VwaA== LkRhdGVUaW1lUGlja2Vy LiI7Cgo= IFRpZQ== LGl0ZW0= IG1lbm4= R2Fz b2NoYQ== X3ZpcnR1YWw= IG1hc3RlcnBpZWNl X3NlcXVlbmNlcw== TFRF IFN1Ym1pc3Npb24= Q2FsbGVy JFw= U3BvcnQ= YWd1cw== Q29uc3RyYWludE1ha2Vy IGNvbG9j IHdpZw== INCj CUFycmF5 TG9va3M= IEdUQQ== LnN0ZXBz YXRjaGV3YW4= X3Jhbmdlcw== ZXh0QWxpZ25tZW50 IEJyZW5uYW4= IGFic3RyYWN0aW9u dWxlckFuZ2xlcw== Lm1pc2M= IGFudGlib2RpZXM= IGV4cG9uZW50aWFs IENIQU5ORUw= ZXhwZW5zZQ== J3k= IGRldGVjdGl2ZXM= IHB1cnBvcnRlZA== WVNURU0= IHJhZGlvYWN0aXZl IExhdGluYQ== LkVuY29kaW5n LlRBRw== eGlu RGVncmVl dXJhY2lvbg== cHJpY2Vz IFJlZmVyZW50aWFsQWN0aW9u IHJhcml0eQ== IHBpbGVz Z2VuZGU= X3Byb2plY3Rz X2dsb2JhbHM= LnN0YXJ0VGltZQ== IOq1rA== U0VDVElPTg== X3B1Ymxpc2g= RmF1bHQ= RERM X3ByaW9y TW9t IHRoaWNrZXI= IHNlcXVlbGl6ZQ== IGVzc2VudGlhbHM= c3RyYXM= aW50cg== PigoKQ== Lm1hbmFnZW1lbnQ= ZWls 6Zet QXdhcmU= LkNpdHk= IEFyYml0 X0RN X2tleWJvYXJk TE9iamVjdA== LXdlYnBhY2s= IE5ld3BvcnQ= IHByaW5jaXBhbENvbHVtbg== bGVnYW50 IHBhbGxldA== IGZyYWN0dXJl IGdtYWls Lk1ldGE= QWJvdmU= LktleUV2ZW50 aml0 X21hY3Jv X1BVU0g= 4bup L2NvbnRyb2xsZXI= 5Yqg6L29 IHN1cGVyZmljaWFs ZXh0ZXJpdHk= IG1lbnNhZ2Vt V2luZA== aXN0b24= Lm9wZW5hcGk= 0LjRgNC+0LI= IFNlcmlhbGl6ZXI= dWN0aXZl IHphcg== UGxhY2Vz LlN0YXRpYw== QmE= IGluYWR2ZXJ0 IEluZG9uZXNpYW4= X0lQVg== KGhvcml6b250YWw= IGdldFRpdGxl aWRlcHJlc3M= IENvbnNvbGVDb2xvcg== aXBlcnM= JG91dA== IGZlc3RpdmU= IGV2ZW5pbmdz LkdldERhdGE= dWl0a2E= IE1hbnVhbHM= dXNzZWQ= X01heA== LkNoYXQ= IEFpcmNyYWZ0 PWNvbQ== Rk9VTkQ= YXBybw== IHRyZWFzdXJlcw== X2FsaXZl IGdhZGdldA== ZWtpbmc= QnV0dG9uRG93bg== QnJvd3NhYmxl LlBFUk1JU1NJT04= UEFTU1dPUkQ= IEhBU0g= ZsOp XFRlc3RDYXNl TE9TUw== b3RoZXJz LEo= IGFzc2hvbGU= d2Vyaw== IG3Dow== Lmll ZXZpbA== a29udGFrdGU= Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8K PXN5cw== CWxvY2s= LS07Cgo= X0ZVTg== RmlsbENvbG9y w7Nh cHJlbmQ= IGNvbXByZXNzb3I= TW90aGVy IEFyY2hlcg== LmdvdG8= IHfDvHJkZQ== IGJhbWJvbw== 77yO IFRyZWVz IGJ1bXBlcg== IHNhdXNhZ2U= IEVsYXN0aWNzZWFyY2g= IGhvcml6b250YWxseQ== IEd1bA== SW1tdXRhYmxl IGxvc2Vy IGFib3J0ZWQ= LWRlbW8= IEhhdGNo IHVuZGU= IHByb2Nlc3Nv LWNhbGw= SW5jb21l 5YM= X3JldHVybnM= J10uIic= KHN3 Q0JT YW1pbGllcw== IFlvdXJzZWxm IEhvbHQ= Lk1PTg== 4KeH 0YjQtQ== YW5vbg== IEZvbnRBd2Vzb21l cHJvZHVjZXI= anI= IG1hdQ== CWludGVy IGRpc2hvbmVzdA== IG1hZ25h IENvbGxlY3RpdmU= IHZyYWltZW50 IGNob2l4 c3RheQ== IHdlbGRpbmc= cmlzaW5n LG1pbg== IEZhdGU= Z2xvYg== UkdCQQ== IGRldHRl VmVu IGVtYmFycmFzc21lbnQ= LkRFTEVURQ== Z3JlZ2Fy LXJlbmRlcg== KGJ1Y2tldA== Ij4KCgo= LndhaXRLZXk= QnVzeQ== IGRpZmZlcmVudGlhdGlvbg== IENTVA== LkNvbnN0YW50 IGxpbmVOdW1iZXI= KG1hdGNoZXM= IHdlYnNvY2tldA== IGJhcnJlZA== IHB1ZWRlcw== TW9ubw== Q09SRQ== SUlE ICAgIA0KDQo= IHDDumJsaWNv bGVhbmluZw== IGNsZWFuc2luZw== IGNyaXM= IERldmlscw== X1NFVFRJTkc= dW50YXJ5 Lik7Cg== CiAgIAo= W2N1cnI= dHN5 IEFsZXhpcw== cml0ZWw= IHBldHJvbGV1bQ== LnByZXByb2Nlc3Npbmc= bWF0dGVy Rm9yUmVzdWx0 LWxpY2Vuc2U= IHRyYXZlbGxlcnM= IERpc3BhdGNoZXI= ZW5uaWZlcg== IGRpZ2VzdGl2ZQ== UEVE aGliaXRpb24= TUFTQ29uc3RyYWludE1ha2Vy IFdhdHQ= QmVuZWY= LnNldFZpZXc= ZHRv VEVF IFBlbG9zaQ== X0VYVFJB IG1lZGFscw== eGhy Zm9yZWNhc3Q= IG5hcmdpbg== b3Vucw== LWZpbGw= X0NVUlNPUg== IHN1cGVydmlzZWQ= IHR1cmY= IEVkZ2Fy UE9TSVRJT04= IGNhdGVnb3J5SWQ= 4ok= X0VS 4bunYQ== U2hvd24= Lmxs X1BPTElDWQ== KCksJw== IFByZXY= IFN0cmluZ0ZpZWxk CUdsb2JhbA== YXNzZWQ= VGhyb3VnaG91dA== b3N0cmluZ3N0cmVhbQ== LmF3dGV4dHJh IHNsb3Blcw== IFNlcXVlbnRpYWw= IGdpb3Ju IHplbGY= IHZlcnNhdGlsaXR5 bGVuZWNr LmNnaQ== IGRvdWJsaW5n IEJhbmdrb2s= IGJ1dXJ0 IHVzdcOhcmlv c3R1ZGlv IGpldW5lcw== IG11dGVk IGlwcw== X2ZyYWN0aW9u JiYo IHN0dW50 Jyk7Pz48Lw== IExpZ2E= IHF1YWxpdMOp QXNzaWduYWJsZQ== IHdvcmthcm91bmQ= IHNwdXI= IHNsZXc= X0dF IEFncmljdWx0dXJhbA== IHJlbGVudGxlc3M= KFF1ZXJ5 IFNlY3Rpb25z IHJldmlld2Vycw== UmFpbg== ZGxn YXNzZXJ0RmFsc2U= IG5vbWluZWVz X18pLg== LmR5bmFtaWM= IFBCUw== Q2hhbmdpbmc= IHNsaWdodGVzdA== IE1hbmc= fT4NCg== IGV2YXBvcg== YmFibGU= IFBSSUNF IOaz bHVjZW50 IHZhbXA= IFRlY2huaWNpYW4= IHVuaXF1ZW5lc3M= TWVz dXJiYW4= LnBhcmFtZXRyaXpl IFJlcGxheQ== U2Vzc2lvbnM= ZW1icg== LUFtZXJpY2Fucw== X1BST1hZ IHBpYW4= IHRyaWU= IERlc3RydWN0b3I= R2FtZVN0YXRl IElNRg== Y2hpbg== IHBvcnRl IFN3YWw= 5Z+O U3Vic3RyaW5n aW1pbmc= L0xpYnJhcnk= IGZyaWdodGVuZWQ= d3JpdGVz IHJlY3Vyc29z YXJSZXN1bHQ= X0lOSVRJQUxJWg== IEJhZGdl X2NyYw== RWlnaHQ= IERJU1RJTkNU IHRocm8= QFhtbA== IExlZ2VuZGFyeQ== LXR3aXR0ZXI= X2Vhc3k= ICsrKw== KERBVEE= LkxvY2FsZQ== IGvDpA== IG51cnQ= IGNydWlz X2lvcw== IHNlbnNpbmc= X0xpbmU= CiAgICAgICAgICAgICAgICAgICAgCg== cG9uZw== b2xlb24= IHdpbGRjYXJk 55So5oi35ZCN IGJlZ2dpbmc= Um9k IMOO X0NFTEw= UmVzZWFyY2hlcnM= LnNlbGVjdG9y X2luZw== IGFzcGlyaW5n IGltbW9ydGFs IHltaW4= X3JvYm90 IHBsdXI= QlRD IERJRA== IHBpZXJjaW5n KnU= X0RFRklORUQ= IFRoaQ== aXRhaXJl KG1lZGlh LW9ucw== IGNoZWZz ICIqLg== L0FQ IHJhem9y IHNlYXJjaERhdGE= ID0m IOOAgg== IG1vdXJu dGluZ2hhbQ== IG9saQ== IFZlcm5vbg== X1JT nuaApw== IGbDoWNpbA== YW5nZW4= Y2VsYWlu IGFpbA== bGVzdA== IFFDT01QQVJF Z2Fpbg== IM61 IEtvYg== IEZhdWx0 X2NvbmZpZ3M= 57uT5p6c Lis= Y2FsYXI= KGNvbG9ycw== TXVs X0FSVA== IGV4cGVyaW1lbnRpbmc= ZXJtZW4= IEFuZ2xv LkZpeGVkU2luZ2xl U2Vh IGN0eHQ= LnNsaWRlcg== Q29sbGFwc2U= R3JleQ== IGZsZA== LXByb29m LmNhcGFjaXR5 Z2V0UGFyZW50 IENvbXBsaWFuY2U= IGJ1cmds LXJlYw== IG92ZXJ3cml0dGVu TVU= IHJvdXRlcnM= CU1vZGVs IGZhbnRhc2llcw== YXZpYW4= X3ByZWM= IFNjYW5kaW4= IC8vPA== L29jdA== IGNlcmVtb25pZXM= TW9udGhz dW5keQ== IHF1ZWQ= IE5vdQ== IFZpYnI= LnJnYg== IGNpdHJ1cw== IGJyYWNlcw== LXVwcGVyY2FzZQ== Z2V0VGFibGU= IGRvcG8= IEtlcnI= X0NISUxE LWNsb3Vk CU1hdHJpeA== IGdhcmRlbmluZw== U2luZw== YWxtb3N0 UmVxdWlyZW1lbnRz dWd1YXk= KFByb3BlcnR5 c3Vic2NyaWJlcg== RkFTVA== cmVhY3Rpb24= KGxw KX0pCg== YCku LndhbGxldA== X2V4Y2hhbmdl Lk1heGltdW0= IFZlcmI= 4pSB KCk8 77ybCg== Uk9U Q0FSRA== dWJpdA== e0A= X2tlbA== IFRvb2x0aXA= TXlTUUw= TWFpbkFjdGl2aXR5 YXJm IG1hbGlnbg== IHNlaW5lbg== YXBpc3Q= IDwl TWV0aG9kSW1wbA== TWls IE1pY2s= LmRlcGVuZA== PElE IHByZWRpY3RpdmU= IEFQUExJQ0FUSU9O bGVm ZGltZW5zaW9ucw== IGNvbm9jZXI= L2NvbmY= IFRyYWN5 Rm90bw== X3JlbWFpbmluZw== PWZpbGU= IHBhZ2VJbmRleA== IFBhcmlzaA== IHRleGFz IE1BR0lD IEhldw== ZGlmZmVyZW5jZQ== IGFsdHVyYQ== Y3Vt CWRhdGFUeXBl IGNhcmFjdGVyZXM= YXZpb3Vycw== IFZPSUQ= 6L+R UFVCTElD Qmlv IHN0cmluZ0J5QXBwZW5kaW5n UGFyc2VFeGNlcHRpb24= IFN1ZmY= IE5vcnRvbg== L2RldGFpbHM= Lm51bGw= Pj4m CW9r LWxvdw== LnVzdWFyaW8= bmVzdGVk WEI= T1VSUw== LkJvcmRlckNvbG9y IGJyb3c= INCV Y29ycg== IFJlZHNraW5z LmdldFRhZw== LmdldFRyYW5zYWN0aW9u IHN0aWdtYQ== aGFyZHQ= IFBsYXllclByZWZz YWxzeQ== dWNzb24= TGFuZ3VhZ2Vz IE9saXZpYQ== IHRhYw== IGJsaQ== IGNhdmFs IGNvbnNvbGlkYXRlZA== IHBlcmls IGRlbGU= IGZvcm11bGF0ZWQ= IGhpZ2h3YXlz LnNwYXdu PT0k IE5pZXQ= IHZlZ2dpZXM= eXBv LXJ1bGU= IFZpZQ== L2VwbA== IGVuZmFudHM= c3RyaW5nTGl0ZXJhbA== IHRvdWdoZXN0 YnV5ZXI= IGNvdmFyaWFuY2U= IGlsaQ== IFNvcGhpZQ== IEJBQg== ICIpLA== IFVr Y3VycmVudEluZGV4 X3VzZXJkYXRh LmNvZGVj IFB1bmphYg== IFNOUA== bG9s YWR2YW5jZQ== IGNvbWZ5 SnNvbklnbm9yZQ== IGZhc2hpb25hYmxl IElDT04= IG9yYQ== IFByaWNpbmc= PG51bQ== IElSQw== RVJW IE1laW4= IElEaWN0aW9uYXJ5 QURPVw== aXNOZXc= IERldm9u YXRs KHJlcXVlc3RDb2Rl CVByZXBhcmVkU3RhdGVtZW50 SU1QT1JU IG1hcml0YWw= X1NFTEVDVEVE Z2V0UmVzcG9uc2U= YXJEb3du QlY= aWJOYW1l IFBBVENI w6TDpG4= IGRhYXI= IEZpbGVNb2Rl IG1hcnR5 LlNwcmluZ0FwcGxpY2F0aW9u Y2VuZQ== YW1wb2xpbmU= Z2V0U2l6ZQ== UmVzdGFydA== 5pWI LnByb2plY3Rz IEV0aGlvcGlh IHN0YXR1c2Vz VElPTg== KGJn IFh1bml0 VGVtcG9yYXJ5 IEVuZ2FnZW1lbnQ= IHhm IHByb3hpZXM= IGdlbmVzaXM= UGFnZXJBZGFwdGVy IFNsYXZl IHN1bmdsYXNzZXM= IENobG9l IGtvamk= YWRlbQ== CUpTT05PYmplY3Q= zrM= IGhvcnM= Knc= w7Ny ZXNjaA== IGNyaXRpY2lzZWQ= emlhbA== IFNhbGVt LlZlcnRpY2Fs IFJhc2g= PkU= dGVyaW5n L3NjcmVlbnM= IGhlaWdodGVuZWQ= 0LDRgNGC QXV0aG9yaXRpZXM= X2Jib3g= w7xuc3Q= LmZvbnRTaXpl IEJPT0xFQU4= ZGl2aWRl IFNsb3Zlbg== dWNlcg== 2ZI= c3R1Yg== IG5hdmlnYXRpbmc= OmFuaW1hdGVk X05PVw== X3ZlY3Q= fXsK QCg= IHRlbGVjb20= IGNvbnRyYWN0aW5n IEFzc2FuZ2U= IGV4dHJhY3Rpbmc= IGdyw7Y= Y29icmE= LkRJUw== IGNyYWI= IHR3aXRjaA== IHZlcnRz IHJlamVjdHM= CWZvcm1hdA== IHJlZ2VuZXJhdGlvbg== LlN5cw== c29sdmU= CWRpYWxvZw== c2hp bWV0ZXI= KGJlc3Q= dmFsaWRhdG9ycw== IG9ud2FyZHM= IGd1cnU= IG1vZGVyYXRvcg== b3dpZWQ= ZXhwZXJpbWVudA== cnVi IG1xdHQ= IENhdWNhcw== IG5hdGlvbmFsaXNt IG1hbmdl CUltR3Vp L0VkaXQ= IGluaA== IGludGVsbGln ZXJva2Vl CWV4cG9ydA== IGRpc2NyaW1pbmF0ZQ== c3VidHJhY3Q= IE1vb2RsZQ== ZW5zZXI= IEd1aWRlcw== UkFQ LWhvdA== X2dycA== LnBpY3R1cmU= WEE= IGluaXRWaWV3 X0NvbW0= IG92ZXJkb3Nl ICsKCg== IFNpbGVudA== c2hvd3M= IGludGVycG9sYXRl Rm9ybWF0aW9u IGJpc2M= bWFya2V0cw== KFND WmU= IE5ldHdvcmtpbmc= IGFkcmVuYWw= IEd1bnM= ZXRlb3I= RGVjbGFyZWQ= b3JnZXRvd24= IGthcmVuYQ== L3Bhc3N3b3Jk X2FkZHJlc3Nlcw== SVRFUkFM QnV6eg== IENvbndheQ== KGNhc2U= UFdE aGVpcm8= KGFjdA== KioNCg== KCkpOwoKCg== IGFudg== IC4uCgo= KE1lbnVJdGVt KG1haWw= X3NlY3Rpb25z CW5ldA== IHBsdXQ= IHdyZW5jaA== L29iamVjdA== IElzdA== IFZJUw== L3B1Yg== YWx0ZW4= IGd1aXRhcnM= IGFudGliaW90aWM= 77yW wrk= ICIrIg== Zm9ybXVsYQ== IGJhYmVz IFByb21wdA== IGVuaW0= L3BsYXllcg== CXJlZg== IGJ5xIc= IGNvbnN1bWVz IEhhc3Q= IFRhbw== ICcpKQo= IGNsYW0= IHRoaWdocw== IG1vdGlm QXBpT3BlcmF0aW9u IFdM Z2V0Qw== CWZsYWdz b2ludG1lbnRz IGVjb25vbWljYWw= bmVlZGxl eGxz cHJhY3RpY2U= dXR6ZXI= dGltZW9mZGF5 LW91dHB1dA== IGZpbmRCeUlk IEJ1ZGR5 0J7Rgg== U2V2ZW4= IEJhcms= IGVudm95 X2FsZ29yaXRobQ== 5Yip IGJhbGxpc3RpYw== 56e7 cmFkZXM= CWRvYw== cm9kdWNpbmc= IEVhdGluZw== VW5tb3VudA== L2RhdGFUYWJsZXM= X2JvbnVz IGxpdHQ= cHBz KWxvY2FsT2JqZWN0 cGVyZg== IEhlbHZldGljYQ== c2h1dGRvd24= L21s LnRva2Vucw== IEhhcmRjb3Jl LHJvdw== L2Jn U2NhbGVy 4oCUYXM= X2xvZ2l0cw== 4oCZaW50 CUFwcA== SW1wbGljaXQ= LkZwcmludGY= RVRP IHRlcnJh IHBvc3Nlc3Npbmc= LnJzdHJpcA== LCks PXllcw== IFN0cmlwZQ== Pz0= bmV1dHJhbA== Lmdvb2Q= IGtlbm5lbg== IFN1bmc= ZmF1bHQ= eXN0YXRlY2hhbmdl Q2FuYWRpYW4= JywnIi4k IE1pdHM= w6ZuZA== IFNUUlVDVA== IFVSTFdpdGhTdHJpbmc= IENvbXBhc3M= IC0tCgo= IE5TTGF5b3V0Q29uc3RyYWludA== fG1pbg== LWFkanVzdA== IHJlYnVpbHQ= TElHSFQ= L3Nl LW1vdW50 dnBu dmFsaWRhdGVk KFFPYmplY3Q= IGlnbml0aW9u IENoYXJnZXJz UllQVE8= XWluaXRXaXRoRnJhbWU= IEZsdWlk IGNhZHJl IG5vbWluYXRpb25z TmVpbGw= IEhvdQ== IGN1cnJlbnRz X2dlbmU= KGlucA== UGFyaXM= esSZ YWdncmVnYXRl IGFzc29j d2VldGVk ZXJyYXQ= 4oCTCgo= ICcvJywK Zml4dHVyZQ== IEhpZ2hlc3Q= YW1iaWVudA== IGNobW9k IGNvbnRl IHNlbnN1YWw= IGdhcm1lbnQ= emVycw== IFBvd2VyZWQ= ZG9tYWlucw== UmV3YXJk aW9tYW5pcA== IGNvY2twaXQ= b3V0ZmlsZQ== IGJ1aWx0aW4= IGluc2lzdGluZw== LnZhcnM= emlwY29kZQ== IO+/ve+/ve+/ve+/vQ== ZmFpbHM= IGNvbnNvbGlkYXRpb24= X29pZA== UGxhbmV0 ID0iLA== CWVs VUlMVA== w6R0eg== YWZhcmk= IE1jQ2w= VGltZWxpbmU= RXN0YQ== IGZyYW0= WUU= IGNlcmVicmFs T2ZNb250aA== IFByZWdu INC60LvQsNGB0YE= ICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgCg== IEZyZXM= QXBwcm92ZWQ= LlNwZWNpYWw= IFByb3Rlc3RhbnQ= IGFsbGVyZ3k= X3BjbQ== CUNvcHlyaWdodA== IHN1cGVyQ2xhc3M= InN0cmNvbnY= IE1vaGFtZWQ= ICcvLw== Rm9yZUNvbG9y QXJ0aHVy IEp1bmdsZQ== IHZlaW5z U2Fk IGJhY2t1cHM= IE9waW5pb24= w7t0 IGludGVybWl0dA== b2R5bg== IENocmlzdGluYQ== IGFuZHJl IGV2YWN1YXRpb24= cGFsZXR0ZQ== aG9yc2U= IFJlc2lkZW50 IEhhc3Nhbg== Lk5pbA== IGFpc2xl IEdyb3dpbmc= IGJsb2dpbmZv L3NxbA== X2lvY3Rs U2NhbGluZw== IE1vbmFk X2NwcA== IEh1dGNo IEFwcGxlV2ViS2l0 RXhwZW5zZQ== X0pPQg== IHBvaW50bGVzcw== RnJvbUJvZHk= YW50YWw= IGRlcGljdGluZw== IENFTEw= IHJlZmlu IENOQw== 7LmY X2RpbWVuc2lvbnM= IFNBTg== IGFmdA== IGZvb3RzdGVwcw== Y2NvbGk= X1BIT05F L21hdGg= LWtpbmQ= IE1lYW5z aWNoYWVs Lmd1bmE= IGluYXVndXJhdGlvbg== LWRyaXZpbmc= KGRlbGV0ZQ== IHRvdGFsQ291bnQ= X01D LkV4dGVuc2lvbg== Q29tbWVyY2lhbA== IHpJbmRleA== PEN1c3RvbWVy Imc= LXNoYXJl IHBhY3Q= YWdhcmE= IFNJTA== X21vZGVz IE1vbGVjdWxhcg== IHN5c3RlbWF0aWNhbGx5 PEc= X3Njcg== IE9ybw== YXNlcnM= IGJpYw== IGRlc3Ryb3lz UElQRQ== LlN0YXJ0UG9zaXRpb24= IGPhu6dh aXJleg== LkJ1bmlmdQ== X0Z1bmN0aW9u IHPDvA== X2Z1dHVyZQ== IFdlYWx0aA== IE5hdHVyYWxseQ== 5oC7 X3llcw== IGFicnVwdGx5 U3RyaW5nRW5jb2Rpbmc= IENHUG9pbnRNYWtl IHpo IGltcGVyc29u IHBpdm90YWw= IFNvbWFsaWE= IHNlZ21lbnRhdGlvbg== X0FOQUw= IExvZ2luQ29tcG9uZW50 Q29uc3VsdA== IHRydW5jYXRlZA== XSI7Cg== LmdldENvbmZpZw== IGludGVybnNoaXA= QmFieQ== 6rCc IHN0cmVuZ3RoZW5lZA== X01J YmFza2V0 IG5pY2h0cw== IFRWcw== IFNoYW4= 44K1 cmFjdXNl LlJlTFU= L2ludGVyZmFjZXM= IGdldEl0ZW1Db3VudA== IHJldGlyaW5n IHNwZWNpYWxz IGVudGl0eU1hbmFnZXI= YmVsaWVm IHNvbGRlcg== ZGF1Z2h0ZXI= aWprbA== IHV0aWxpemVz LmZpeGVk U1U= IGRyYXN0aWM= IGhhY2tz Z3J1bmQ= IE1V IFN0YXJ0ZXI= LkNvbXBvbmVudHM= X21vdG9y R29sZGVu IGxvZGdl ICkpOw== IENvcmludGg= 0LjRh9C10YHRgtCy0L4= w7NuaWNv Z3JlU1FM IEZsdWVudA== IG1hcmM= LkxvYWRTY2VuZQ== Lkdyb3Vwcw== IGVyaA== IEF1dHVtbg== U3RvcHBlZA== IGl0YWxpYW5v IG1pbmlvbnM= IEFzc2VydGlvbnM= IG11eA== QnU= IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ== CXVw cmVhZHlzdGF0ZWNoYW5nZQ== X01ldGE= IGN1cnJlbnREYXRl IENoYXBtYW4= VW5kbw== U2Vhbg== YXBy IHBhcm0= X2ljb25z IFN0YQ== w6F6 IHN1YmRpdmlzaW9u IGFsdGVyaW5n UE5H cG9uZW50aWFs IHBvc3RncmVz IEJEUw== LWV4aXN0ZW50 IEJyYWRmb3Jk IE9NWA== X1dISVRF X1BST0dSQU0= cWM= IHR5cGluZ3NTbGlua3k= IFBpY3M= X01FVEE= SVRURVI= X3N1YnNjcmlwdGlvbg== SVJPTk1FTlQ= IEh5dW5kYWk= KCk7CgoKCg== INiz IGphYw== IGVsaW1pbmF0ZXM= KX0pOwo= IGNvbXByZW5k CWluc2VydA== X2ZhY2Vz Ij4k IGViYXk= IGNhcHRpdmU= cGxpYW50 IENhbGN1bGF0ZXM= b2x0YQ== ZXN0aW5n X3JldmlzaW9u IG3DunM= K20= IiwiIiwi V0hBVA== IGNvbXBhc3Npb25hdGU= aGFyZ2E= W3JhbmRvbQ== IG1vZHVsbw== KHNu IG9jY3VwYXRpb25z Ly8vLwo= CWJvYXJk IEJhbGs= d2nEhQ== IFdpZmk= LlByb2ZpbGU= Om1hag== CW1hdA== TE9DS1M= KGpCdXR0b24= ICgnJA== TXVy 5oyJ YmJsZQ== IGZyb2c= LWhpZGU= IGJyb2FkY2FzdGVy 4Lie aGFsZWQ= IGFtdXNpbmc= X3ByZWRpY3Rpb25z X2ludHI= IGVhZ2xl 0LDRgtC10LvRjA== IGdldExpc3Q= cHNpbG9u IGNoYXJhY3Rlcml6YXRpb24= QVJEUw== IHJlbG9jYXRpb24= IHJ1bGVycw== UEFZ IERlZmluaXRlbHk= X0FjdGlvbg== IGNsb3N1cmVz IGZhY3R1YWw= b2R5bmFtaWM= IHByZWNhdXRpb25z bmllag== IFBhcnRpZXM= IFN1YmFydQ== IGNvdXNpbnM= YXJiZWl0 Lm1vbmV5 Z3VudGE= KGFuZA== Z2V0aXRlbQ== LlN0eWxlUHJpb3JpdHk= IHNsaWQ= c2luZ2xldG9u IGdhcm4= IFBBUw== IGRheno= YcW8 IGJvZ3Vz IE1vZw== IHJpdmFscnk= aXNvbA== IGxhbmRtYXJrcw== w7Fhcw== QmVybg== IFNhY2hz ICIpCgo= IGhvc3RpbGl0eQ== X21leA== bWVyZQ== TW90 cGljdHVyZUJveA== RGVmZW5zZQ== IGFmZmlkYXZpdA== b3RoZXJ3aXNl LmRpcmVjdG9yeQ== X1VuaXR5RW5naW5l LWJsb2c= LnNraW4= cGhlbQ== QXBlbGxpZG8= ZXJjaGFudA== W2NsYXNz IHdhcnQ= LiJb YWxldXI= L2JhY2s= ICAgIAkgICA= IHByZWNpcGl0YXRpb24= IG9ic3RydWN0aW9u IHBPYmo= IHJ1cHQ= VUNLRVQ= YXll 5o6S Z3g= IGVjbA== IHNlY3JlY3k= L0hlYWRlcg== IExlc2I= IGxlaQ== IEJ1bGxldGlu IGdpdmVhd2F5 LkhvbWU= X1JPT00= Ilc= IGNvd29yaw== X3Jh IEN5Y2xpbmc= IFBhdw== IHB1cGls L2FyY2g= IEZpbGVVdGlscw== 6aaW cnNw IGZyZWVkb21z IExlYXI= fWApLg== IGJvd2xz L2Jsb2Nr X2xvZ2dpbmc= IG1ldGhhbmU= IGhvcm5z IHdvbmRlcmZ1bGx5 IGFsdGVyYXRpb25z IGV4aWxl bHNlbg== X3BhdXNl X0xBTkdVQUdF IFVTREE= X215c3Fs X0FNT1VOVA== IExJRkU= IHlvdW5nc3RlcnM= IHJpb3Rz W0U= IHVuZm9yZ2V0dGFibGU= LH0sCg== RGlzcG9zZWQ= IEFzc2Fzc2lu VU5H IE5ld3Nw VXNlclNlcnZpY2U= OmFsb2Fk Kycs IHNldHRsZXJz IHNjcmVhbXM= IGluY29udmVuaWVuY2U= LlJvdGF0ZQ== IGphcnM= IFB1enpsZQ== IG1lc3Q= YXJzaQ== IFNoYXJtYQ== fCg= LmRz IFNhY3JlZA== X2V2dA== IGV4cHJlc3Nlcw== IGhvY2g= IER1Y2g= LmNhbGxz dGhy IFNoZWZmaWVsZA== LkFsZXJ0RGlhbG9n IHJhZGljYWxseQ== IHRyb3Vz IHByZXZhaWxpbmc= IFdXSUk= 4oCZbg== ZW5zZWx5 IFllc3RlcmRheQ== IFNpcml1cw== IGtpbGxlcnM= IEZGVA== IG92YWw= Jyk6DQo= IOygleuztA== b3VyYWdl IENoZWNrYm94 V29ya2Jvb2s= LmRlZmVy X2Zsb29y IGNvdW5jaWxs IG5vcnNrZQ== bW9pbA== b3JlYQ== IG1hcmtldGVk X1NVUg== eEFB IHN0YWluZWQ= ZXV0 IE1lbmc= IGllZWU= LmV4dGVybg== ZWdpZQ== IHJhcHA= IFB5b25neWFuZw== J2NsYXNz TW9i IGluaXRpYWxWYWx1ZQ== X3dhdmU= IGphYg== IG1hc2N1bGluZQ== IGFtcGxpZmllcg== IHR0eQ== UGF0aENvbXBvbmVudA== X3h0 IEdGUA== L3NlYw== CWRpc3BhdGNo bWFya2Rvd24= IFNjaG4= Ym9sZQ== wrfCtw== bW91c2Vtb3Zl IGVyck1zZw== IGFzaWdu X21vbm8= VG9TZWxlY3Rvcg== IFp1 KFJlY3Q= IEVycm9yQ29kZQ== bGF0aW4= YW5naWJsZQ== dnRr Q0dTaXpl UG9rZW1vbg== IGNsYXNzbWF0ZXM= IGF0dHJhY3Rz IFRhdHRv dWx0YW4= b2zDs2c= IGhhbHRlZA== 4KSo IEthcnQ= IHVl X0luaXRTdHJ1Y3R1cmU= VGVzdENsYXNz IEFpcmJuYg== XyIs IGNoYXJjb2Fs IGlwYw== IFN0cmV0Y2g= LmdsaWRl bGF0ZXNBdXRvcmVzaXppbmdNYXNrSW50b0NvbnN0cmFpbnRz IHBvdGlvbg== SVRUTEU= IGNvdW50ZXJ0 X2hk cHJlcGFyZWQ= QWRz IFZhbXBpcmU= cm9ib3Rz LkNyZWF0ZUluZGV4 U3RhdHVzTGFiZWw= IHR1Y2tlZA== YWbDvHI= VXQ= IHN3ZWF0ZXI= X0ZO ICAgICAgICAgICAgICAgIAk= YXRha2E= IGV5ZWJyb3dz YWNvZXM= dWRlbg== LkxpbmVhckxheW91dE1hbmFnZXI= IHN3YXk= IG11bHRpbg== KCkpKSkK IE5TVUludGVnZXI= IE15QmFzZQ== UGFydG5lcg== dXRzY2hlbg== IENhdGVy LnNldEJhY2tncm91bmRDb2xvcg== IGFjY29tcGxpc2htZW50 X3Byb2JsZW0= LmR0ZA== IHBhZ2VOdW1iZXI= IGphY2tldHM= IGNyb3BwZWQ= dWVscw== IEhlcA== IGNhcHBlZA== Kk1hdGg= X2NhbGxiYWNrcw== IHB1YmI= IEJydW5zd2ljaw== LnJlc3BvbmQ= WyJf IGJlZGRpbmc= aHl0aG0= T1g= KHNwZWVk IHBlc3RpY2lkZXM= IC0tLS0tLS0= LkJsdWU= IG5vb2RsZXM= IEdvZXM= IHNhdmVy b3h5 X2NvbXBsZXRpb24= IFN3aW5nZXI= IGdldERhdGU= IG1pbmRlZA== aW50ZWdyYXRpb24= IExvdHVz KHN0b3A= KCcsJyk7Cg== IGZsb29kcw== IFdvcmtmbG93 IGVydXB0ZWQ= TWFjcm8= IFNhdWNl IGV2ZW50TmFtZQ== XElucHV0 QnJlYWtpbmc= CXdoZW4= X3B3 SU5ERVI= IFdlbGxuZXNz IHZveGVs IE1lbGw= IE1FRElB U0VOUw== IEZ1bmRz IE1pbGQ= PEFycmF5 LXRoaXM= dW1wZWQ= L2Z3 IERiQ29udGV4dA== V0k= Z2lybHM= SE9X Jyk7Pz4K IHRlbXB0aW5n IHRlc3RhbWVudA== IGJpYmxl IGNvbnN1bHRlZA== IEluZGV4RXJyb3I= 6KiY IGtleXBhZA== aXp6bw== KG9r IHdoYXRzYXBw IFJlbW90ZUV4Y2VwdGlvbg== IHRlYW1lZA== 4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU4oCU wrss IGdldFRpbWU= ZGlhZw== aXNzeQ== IGhlZA== IGtub3Rz am9t IGZ1bm5lbA== LW1haWxz IGV4cG9ydGluZw== IFZM IEthcm4= IEJ1ZGRoaXNt IEFsbGFu X1JBRElVUw== IHdvcmRpbmc= IEZvcmdldA== IENvcm9uYQ== aXBoeQ== IGxpbWJ1cmc= dWdneQ== IFVzZXJSZXBvc2l0b3J5 aW1pbg== KGVsZQ== IGxhYmVsbGVk 56S+ IEhlcm1hbg== LnFx ICIpKTsK aWViZXI= LlRyYW5zbGF0ZQ== cnlu IGRlc2Vudg== dW1k U2ltcGx5 CW1vZGU= UnBj IFZhbGVuY2lh IHN0YWZmZXJz IHNlbHY= IFNwaWtl IGRlbGlj IGVydQ== X0RU SnVkZ2U= 4buV IEJhc2lu Lm11dGFibGU= InVybA== IHRhcmlmZg== IFNsZWV2ZQ== IGZsYXJl LmRyb3BvdXQ= IGJyaWRlcw== KSksDQo= X2NvbnN0cmFpbnRz ZGVzdHJ1Y3Q= T3V0bGluZQ== IGRpc2FwcGVhcnM= X2xvY2tlZA== IE5TTG9jYWxpemVkU3RyaW5n Y2tl CW51bGw= YWRyZXNzZQ== IHRvcHBpbmc= IEpva2Vy YmlzaG9w 0L3QvtGB0YLRjA== YW5kZXJpbmc= X2FtcA== PXRpbWU= X1NwYWNl X1BVTEw= Jz0= IGFudGlxdQ== IGNhY2g= X19fCgo= T05FUw== 0L7Rjw== IHVucmVhZA== LnBvbGljeQ== b29vb29vb28= 65+s IHVzdGVk IFJlY2U= IGFsbGVt 44O844K5 IFRob3VnaHRz dmVpbGxhbmNl aXN0cmF0ZQ== X2xhbmU= IGZhbWVk LkdldE5hbWU= IHNtb290aGVy IFF1YWxpZmllZA== YXplcnM= X2dlbw== RmF4 IE1pbmRz IFJhaXNlcw== IHRyYW5zY3JpcHRz Q29udmVyc2F0aW9u IHJlbWFya2Vk 64KY ZGxpbmc= IGRlcGxveWluZw== IHNoYXJlZEFwcGxpY2F0aW9u IGtw Rm9udEF3ZXNvbWVJY29u X2R1bW15 cmVpYmVu IEphbmVpcm8= RGlyZWN0aW9ucw== LmdldEJlYW4= c2Fzcw== IGNvbW1hbmRlcnM= dmF0aW9u ZXJyb3JDb2Rl IEFsbG95 LmxvY2FsaXplZA== 0JE= IGRpc2h3YXNoZXI= IFNvdXA= TnU= X0RlZmF1bHQ= IHVuZXZlbg== IC8+IjsK LUJhc2Vk IHNlYW1sZXNzbHk= LW51bGw= IFhD IHN0ZXc= KGRlbGF5 QVRPUlM= IFdoZWVsZXI= Ijw/ IENoYW5kbGVy IHJldGFsaWF0aW9u IGJ1ZGRpZXM= LXNpemluZw== IEVpbnM= IC4uLiw= cXVldGU= IERPQw== IGZhbHNlbHk= IGZsYXRz TklDQUxM IGxpYnI= QmVOdWxs aW11bGF0aW9u CVF1ZXJ5 X3V0 IHBsYXF1ZQ== YmlsZA== IHNjcmVhbWVk Lm12Yw== LldpZGdldA== IGRpZmZlcmluZw== L3N1cHBvcnQ= X1ZPTFVNRQ== Lm5vZGVUeXBl CVdyaXRl IHLDs3du Ym9va21hcms= X0NPTk4= IENyZWVk IGluaGliaXRpb24= IFJlaGFi dXZyZQ== IGR1bXBz b3dlag== X3BsYWNlaG9sZGVy IEhXTkQ= IGRlcm1hdA== LmRldGFjaA== IGZpbmFsaXplZA== Z2VyaWVz aWRhaw== X3Byb2c= IHVwZGF0ZVVzZXI= bHlz Lkdvb2dsZQ== IGx1ZWdv IGFudHM= 5qCH6aKY IERSTQ== 0LvQtdC9 LWRi ZXJyaWNr X2xu Li5c aWtpdA== IERpZW4= IHBhcmFtZXRyb3M= a2V5cHJlc3M= IEtlcmFsYQ== IGRyYWluZWQ= ZsO8Zw== IGNhcGl0 X2F1Zw== dGFudA== TmF2QmFy IHJvbGxiYWNr IGxleQ== 4LiI IEJTUA== IFByZWRpY3Rvcg== IHdhZ29u ICJ8Ig== U2VydmU= LkRvbmU= IER1cmNo UHJvdmlkZQ== CXNjb3Jl X09E LndlYXBvbg== IHVuaXZlcnNhbGx5 IGluanVuY3Rpb24= X1NDUk9MTA== Lk1hdHJpeA== IE1vbmdvQ2xpZW50 YnVmZmVycw== IGJhZGdlcw== IHNoYXJrcw== IFNoYXJr TU9ERUw= LlJFQUQ= CXRhZw== IHN0cnRvdXBwZXI= RVJHWQ== Ymlhcw== IGFjY291bnRJZA== IEVtbWFudWVs IHJlc29ydHM= IHN2bg== d2FybmluZ3M= X0lF TEFT IG51bGxh CWFz IGRlbWVhbg== 4oCcQXM= QXV0aG9yaXplZA== IHRlbmRlbmNpZXM= LXNldHRpbmc= IHByZWxvYWQ= IGNubg== 4oCcTm8= JSkKCg== PVQ= dXN0bw== IEZJUkU= cmVzZWFyY2g= INCT IExlc3NvbnM= LkFwcGVuZEZvcm1hdA== IGluaXRpYXRpb24= IENvdXM= YXJlcg== cHJvamVjdGlvbg== IFNoZWV0cw== IEZvbGQ= UmVkZGl0 RGVsZXRpbmc= IHphbQ== IE5ldXJhbA== IEZlY2hh IMKu IHRhc3RlZA== IEVuZW1pZXM= IEpvaG5zdG9u IGRhbmNlcnM= IGRpc2FibGluZw== IHBldHR5 IFdlbGQ= Ly0t KHNwcml0ZQ== SUdP YXJnb3V0 IHF1YXJ0ZXJiYWNrcw== ZGlzcGF0Y2hlcg== IFN1c3RhaW5hYmxl ZW5hcmlvcw== IFNraQ== IGZhY3Rv aWxsaW4= X2V4dGVuc2lvbnM= ybU= Pkg= ZWFzdA== LmFpcg== 4oCcQnV0 T2JqZWN0Q29udGV4dA== c3VjY2Vzc2Z1bGx5 X2xhbmQ= IGZvbGRz X0NPT1JE IHN1YnBv LmdldEFkZHJlc3M= aW5zdHI= TWF0ZXJpYWxz 0YPRgdGC ZGVwb3NpdA== LWxhc3Q= X0dSQVk= PWZpbmQ= IG11dGFudA== IGxlc2JpZW5uZQ== bGV0Y2hlcg== Uk9VR0g= dXJla2E= LmNhcHR1cmU= IGVubg== IChbWw== IEZsdQ== IHRhc2tJZA== IEh1c3NlaW4= LmZvbGRlcg== IGF1c3Rlcml0eQ== SVNUUkFUSU9O X0ltcGw= 5rOo5oSP IGRlY3JlZQ== LWNoYXQ= IGltcGxpY2F0aW9u IGd1ZXNzZXM= dWxrYW4= QW5hbHl0aWNz LnBsdXM= Q09NTUFORA== 0LXQu9C4 wrsKCg== X1NJVEU= IGVxdWFsVG8= U3VwcG9ydEZyYWdtZW50TWFuYWdlcg== IFJlY29yZGluZw== 5a6M5oiQ IGJhZ2dhZ2U= IHBpdGNoZXJz IEVo b3F1ZQ== CWNudA== ID0+JA== L2Zvbw== SVJB IFNhdGVsbGl0ZQ== Ym9yYWg= IH19Igo= IEVuZHM= IFNwcmF5 LHBhcmFt LkNocm9tZQ== KnE= dGhvdWdodA== aWJyYXRlZA== IHRoaWV2ZXM= IGJlbmVmaWNpYXJpZXM= RW50ZXJlZA== b3R0ZXN2aWxsZQ== IHZldGVyaW4= QnlJRA== cXVpcGU= dW1wdGlvbg== LXVuaXQ= RXhlY3V0aW9uQ29udGV4dA== QHM= IEdpb3Y= LlRvb2xUaXA= X2ZyaWVuZA== KGF0dHJpYnV0ZXM= IGR1bXBpbmc= IEpD X0RPQ1VNRU5U IEFybW91cg== KGluc2VydA== Lkhvcml6b250YWxBbGlnbm1lbnQ= IFFlZA== 44GE44G+44GZ L2dpdA== IFlZWVk= IENhcmRpZmY= IGFwYQ== b3JnYW5pYw== IFdoZXJlYXM= IOad IE1pYQ== IGRlbW9saXRpb24= IHNjYXJz IHBhaQ== IHJldHJpZXM= IHJx IERlbmlz KFV0aWxz IGFsbGV2aWF0ZQ== IFBJQw== aWR1ZQ== IGFja25vd2xlZGdpbmc= IC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8= 56Gu5a6a xKs= XEpzb24= LmJpbmFyeQ== IHh0eXBl c2lnbmFscw== IEFwcGVhcmFuY2U= JnI= fXM= Q2k= IElsbHVt cG9yYXRl aG9n IGluZGV4T2Y= XENvbW1hbmQ= X3BhcmFsbGVs IFNoZXJsb2Nr 7YM= ICIiKQ0K Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v IGNyaXRpY2l6ZQ== IFNvYXA= IE1hdGNoZXI= IGdyaWxsZWQ= KlQ= IGFkb3Jl dWxsaW5n IGplZG9jaA== X3JlZnM= bGVhbnVw IEpBWEI= IHJvc2Vz IExpYW0= c2l6ZWk= IGdldGNoYXI= IHRhcmRl LXRvb2x0aXA= IHF1YWxpZmllcg== IEludGVybWVkaWF0ZQ== X1dpbmRvdw== IE1hbHRh RGlzY29ubmVjdA== ZXdoZXJl Q2FtcG8= IGlycmF0aW9uYWw= bGVkbw== IERO QVJHVg== IG91dHJv IHRoaXJ0ZWVu Sm9zZXBo TUFS L2ds SmVzcw== IFBzeWNoaWF0 IHBhZGRpbmdCb3R0b20= LWxvb3A= L2ZvbnRz X3NlZW4= VGVhbXM= UmVhY3RET00= KG1hbg== KHhwYXRo LmdldFNpbXBsZU5hbWU= Pigq IFB2dA== IGVsZGVycw== IHBpZXM= LnVzZXJBZ2VudA== LXJlZ2lvbg== IEdyZWVrcw== KGZyYWdtZW50 c3R1 IGNvdW5jaWxz IHN0YW1pbmE= IEdvZGRlc3M= 6KW/ IHBoaWxvc29waGVycw== IHBlcnNvbmU= IExvc2U= IENMUg== IERvY3M= IHNvYWs= IEhPTERFUg== IGJlbGxz aGFzaENvZGU= UkFURQ== X1dFSUdIVA== aW5vdXM= ZW5kcmE= b3Bob2JpYw== IHByb3Nl IGZpbmVseQ== L29hdXRo KHNwYWNl YWRnZQ== IE1hbWE= IHN0cmluZ0J1ZmZlcg== IHN0aW50 IG1pc21h IHZpbGxhaW5z IENyaW1lYQ== IGRpcGxvbWE= INC/0L7RgdC7 IEJlYQ== KGpvaW4= IO2VtA== Q0hBVA== cGVyaW5n IENyb3M= IG1vbmtleXM= IHByZWRz eWxh LCws IHZpYnJhdG9y IE5V 5YWI ZmFudA== emV0 IGJpZXRldA== dW5mdA== c3dvcnRo LkZsb3c= IHBzeWNoZWQ= IENvbnRpbmVudGFs PnQ= IHF1aWx0 LlVQ IGV4cGFuc2l2ZQ== RGlzcG9zZQ== KGxhbmd1YWdl Q2Fwcw== X1pPTkU= IHJlY3ljbGU= IE1hbmFnZWQ= Y3VycmVudENvbG9y LmJyb2FkY2FzdA== c2lnbklu LnByb20= bGx1 dWVibG8= IHB1bmNoZXM= IGF1dG9tYXQ= IGFzc2lnbmluZw== IGNyZWF0ZVVzZXI= IEFsbGllZA== IGNvbmR1Y3Rvcg== gqg= IHNhZGRsZQ== IGRuaQ== b21lZGljYWw= LVdlc3Q= UG9zaXRpdmVCdXR0b24= IGl0YWxpYw== P1s= KHRyaWdnZXI= IGVsZXBoYW50cw== IjoiIiwi IGNhbGliZXI= cmFmdGVk ZGlnaXRz IG1hcnNoYWw= bWlsbGlzZWNvbmRz bWFya2Vycw== bW9t L3BsYWNl IGhvbGlzdGlj OnQ= Iyw= IGJvdG8= IG5hdXNlYQ== IFNob290aW5n aXRlY2g= IHRleHRTdGF0dXM= PENsYXNz IERlc2NyaWJl IGJ1ZmZldA== Z2ls IGxvZ2l0cw== c3RkY2FsbA== bW9kcw== IFNrdWxs IEJhcmU= aG9wZQ== IEludHI= RmFpcg== CXB0 IGFjb21wYW5o IGZraw== X3JwYw== SW5zdGFsbGVk X2Fucw== LmdldE1pbnV0ZXM= 4oCmIgoK LXRocmVhZA== IHByZXNjaG9vbA== QUlMUw== IGRpZmZpYw== KGNvbnZlcnQ= IE5hdGg= IERPSg== IHJlZ2ltZXM= IGVudGh1c2lhc3Q= IHdhcnJhbnRpZXM= IGZhc2NpbmF0ZWQ= X2JpbmRpbmc= X05vdA== b2Z0ZW4= X1JX L21haWw= IHRpdGxlTGFiZWw= IHZpbGxhZ2Vycw== IEppYW5n IHN3YWdnZXI= LlJvd0luZGV4 X2ltZ3M= cmFweQ== VkVSQUdF LlVw IG5vb3A= Y2lv CVNU IGRlY3JlbWVudA== IG1hZ25lc2l1bQ== X3JvdGF0ZQ== U2l0 IG5pZXV3ZQ== IHRlcm1lZA== 7ZWp64uI64uk IHVyZw== X3RvdWNo IHN3YXJt IGNsYXZl dGhlc3Q= IExhZg== SFg= IEh1bGs= IHBsYWludGV4dA== IFNvZmE= Z2V0U2Vzc2lvbg== TGVk IGVjb3N5c3RlbXM= aGVp IEtpbGxz IGh1c2JhbmRz 0YXRgNCw0L0= KGRvbQ== X3RpbGVz TmliTmFtZQ== IGRvbmF0aW5n LmFjYw== IGxpZmVzcGFu LmJu X1JHQ1RY 5qU= YW5zZW4= IG1vZGVsbGluZw== TGF5b3V0UGFyYW1z IG9uQ2hhbmdlVGV4dA== cnNh LWxvY2F0aW9u LlBl KGJ1cw== KHNvbmc= IHByb2R1aw== IFNIT1VMRA== IENK IHNvcw== IEhvbWVDb250cm9sbGVy LmxvYWRlZA== KERvY3VtZW50 LnNvY2lhbA== dGlsZXM= IGxhbWU= PWRm LnBhcnNlTG9uZw== IHByYWM= IGRldG94 IFZF IHB1bnRvcw== IGRvY3Ry IGFuY29y Q0FQRQ== IGNtYg== 54S2 Kiki Oi8vLw== VmFsdWVUeXBl IG1vcnRnYWdlcw== O3E= IFJvY2tldHM= c3BvcnQ= VUdD Y3Rz 44KB aWV1cg== IEFwcGVhbA== KG5i Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8= SU1BVElPTg== IENyZXM= IE1hbmlw Q2F1c2U= YXR5cGVz bWFudWZhY3R1cmVy Iy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0= IHNwb3I= ZXNvbg== IHB1bmNoZWQ= IGJvb2ttYXJrcw== IEJ1bGs= Q29tcGxldGVMaXN0ZW5lcg== IFRhbGtpbmc= IEVybmVzdA== IHJ1YmJpc2g= a2lsbHM= IERFRklO IG5laWdoYm91cmluZw== YXJsbw== IFBDQQ== CW1hdHJpeA== bG9r IGF0bGFz IEd1cg== IHd5bg== LW5lZ2F0aXZl IHR1bA== IHJlbGlj IFZvbHRhZ2U= IFByZWlz IEpOSUNBTEw= IFBNSUQ= YWtldA== CWF0dHI= IGV0aXF1 IE1K IEdtYWls Y2xy X2V4ZWN1dGlvbg== 6ZSu cG9zaXRvcg== LmFm TnI= R2VvcmdpYQ== VG9wb2xvZ3k= IHBlcmNow6k= IG11c2xpbQ== IGVwaWRlbWk= IHNhYm90 YWN0dXM= IOuMgA== IElPRXJyb3I= LmVzdA== cHJlZnM= IEtyaXNo LlJlYWRLZXk= TkFTQQ== dcOnw6Nv X0Ri dW1lcmF0b3I= V2lkZQ== KHN0YXRlbWVudA== LmVuZHBvaW50 Li4uLi4uLi4u IFsq c3RyZWFtcw== bXRpbWU= UHg= YXRy IHRwbA== Um9tYW4= IHNjZW5pYw== Lm56 IFNlY29uZHM= c3VibWVudQ== IOyLpO0= X2J1bmRsZQ== IGRlxJ8= IFNpc3RlcnM= cHJlZmVyZW5jZXM= IHBvcnRh QWR2aXNvcg== bWF4TGVuZ3Ro IEdSRUFU X18oCg== b2xlc3Q= IExhYmVscw== IGVuZmVy ICAgICAgCgo= IFRoZWZ0 X0ZJTEw= IFdpc2U= KWFwcGxpY2F0aW9u dW5hbWk= PigpKQo= QUREUkVTUw== QlNU ZXR6dA== IFFncw== U2Vuc2U= RXhjZXB0aW9uSGFuZGxlcg== IENodQ== LmdldE93blByb3BlcnR5 IGV4ZXJjaXNlZA== aW90aWM= IFJlbGVhc2Vz IHBpbnRlcmVzdA== b2xpZQ== aXNvZnQ= IHNlcXVlbmNpbmc= IHBhZHJl XSkpOw0K KHJhZGl1cw== Lm1lZA== YWludGllcw== Lk9iamVjdE1vZGVs IGVtcGxl IHNlZ3Vybw== U3RhcnM= IHF1YWxpdGF0aXZl bGVtbg== 4bux PiIpLg== IGd4 LWNlcnQ= IEFTVE0= IGZ1bGxuYW1l IHRlbGVtZXRyeQ== IENhbWJvZGlh X3Vs IENsYXJl Q1VTVE9N UUM= IFVucw== IEhUVFBT IFBhcmtpbnNvbg== YW5jeWJveA== JywnLg== VHVl LmdldExhc3Q= IGFiaQ== xIVk QXN0 IEVkaXRpbmc= LlVuaXR5 am1w IG1hdHM= IHNoYXJlZFByZWZlcmVuY2Vz Q2FwdGFpbg== LnBhZ2VTaXpl IHJ0bA== IGFubWVsZA== UnVudGltZU9iamVjdA== IGRlbWFuZGU= KCI7 c2VpdGU= LWhlYWRlZA== IEtyYQ== IEZPTlQ= YFw= Q2xhc3NOb3RGb3VuZEV4Y2VwdGlvbg== LmF2Zw== YXRpY2Fs QWo= IHBlcm1pdHRpbmc= UHJvag== RVJSUQ== IGNyZWFtcGll IEJ1eWVy LW1vZHVsZXM= IFN1bmRheXM= fGAK IGRheXRpbWU= ICso IGdsaXRjaA== IE9wZXJhbmQ= IHRveGlucw== aW55YQ== RE5T IFNhcw== Q2FrZQ== IE5hdGlvbmFscw== LmFkZFRv IHNpbmtpbmc= IGNvbXByZWhlbnNpb24= IHNjb3I= YWdlbWVudHM= IHRhcmQ= IG1hcmNoaW5n IE1UVg== IHNhbmU= Q3JlYXRlSW5mbw== 4bqv IGVuZEluZGV4 CWxheW91dA== IOWQjQ== U0lURQ== IFRIRVJF IFt7Jw== b3BhdGhpYw== IHRyYW5zbWl0dGVy L2JvZHk= IHB1bmQ= IENsb3Npbmc= IHNldGF0dHI= IGJvdW5kZWQ= QXRsYXM= c3VtaW5n KHRpbWVz cGFyZXI= eW5vbQ== ZmVpdA== IGZyZW0= LWxlZw== IEJyYXM= PiM= IOy2nOugpQ== IElOU1RBTkNF IENvdWNo X2hvc3Rz bGlrZWxpaG9vZA== Lk1hcmtlcg== IE1hc2tz IGNlcmVhbA== dXRpbGl0aWVz IGVsZW1lbnRhbA== IGRpc3RvcnRlZA== aW5hY3RpdmU= Y3J5 V0w= VVBQT1JURUQ= LlRocm93cw== L3NjaGVtYQ== c2VyaWU= LiInLA== IEJlbmVkaWN0 LXBpY2tlcg== aWdncw== IFBpcmF0ZQ== 5ZGo5pyf IFRoZW1h IFNvdXRoYW1wdG9u IGFycmF5V2l0aA== IFBhdWxh IHByZWRpY3Rvcg== LUFzcw== LnVzZXJpZA== IHBlcmk= IGV4YWdnZXJhdGVk dXJhdGU= YXJzZWlsbGU= IENvbmNlbnQ= IFBpaw== IEBfOwoK IGZvcm1hdGlvbnM= IGRlbm9taW4= Ii8+Lgo= ZW5kZWRvcg== IHBhbmNyZQ== IGFtdA== IG9uUmVzdW1l b25EZWxldGU= IEJDSA== KSgi bW92ZW1lbnQ= IHBvdGFzc2l1bQ== PCEtLVs= IG1lbWVz X1NFVFVQ X2dhbW1h IGNvbG9yV2l0aFJlZA== IGdyYXZlcw== IHN0YXR1dGVz IGFxdWFyaXVt IExhbWFy IHhBeGlz V2VicGFja1BsdWdpbg== X2ZvbGQ= Lmdlbw== IEZlZXQ= LXNwZWFraW5n 6aKd X2Nvcw== IEF2ZWM= YW5zdA== IEVFUFJPTQ== IGRlYWxlcnNoaXA= IFVudGVybmVobWVu LEludGVnZXI= IMOqdGVz LmB8YAo= dmluZQ== IEtuaWZl X3ZlcnRpY2Fs LkRvd25sb2Fk IG92ZXJzaXplZA== bGlk IHBpbGxhcg== Y2F1Z2h0 IGZsYWdnZWQ= KHJvdXRlcg== KFJFRw== IGJhcmJlY3Vl YnJvd3Nl IEZpdHpnZXJhbGQ= INC/0YDQvtCy aXJpZQ== IGVyc3Rl ZWxpYg== X1BSRVNT IGhlYWxlZA== IGhhdXQ= PnhwYXRo IFdlbg== Z3J1bnQ= LktleXdvcmQ= LWhhc3BvcHVw bnc= U1o= Z2FiZQ== SW50ZXJhY3Rpb25FbmFibGVk cHJlY2g= IHByaW1v c3RyaXBl YWx0ZWQ= X0JPUkRFUg== ZmluZEJ5 X2Fubm90YXRpb24= V2ViU29ja2V0 QnVy IGRpcGxvbWFjeQ== KHRk IFNpbXBs ZGV0ZWN0 cGVyZm9ybWFuY2U= IGNhcmJvaHlkcmF0ZXM= L2lvdXRpbA== LS0tLS0tKw== X3Ny bWVldGluZw== IHwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo= X1Zhcg== IHJvdmVy IGNhc2k= IE1hdGNoZXM= cXJ5 X0JPT0s= IHByZXN1bWVk IE3DqXQ= L2l0ZW1z IENyZWRlbnRpYWxz XSkuCg== IEthcmRhc2g= QWRtaW5pc3Ry IFNsb3Zhaw== KCcsJykK IGNvbnF1ZXN0 UGVyc2lzdA== IERyYWlu Ymlq IGRvdg== IHPDuGdlcg== V29uZGVy QVNFVA== W21pbg== Z3VuYQ== Z3Jvd24= IH0pCgoK QVVE IGJlbGlldmVy aXNlcnM= KHNlbnQ= SmFja3Nvbg== IHBhaXM= IGN1ZGFNZW1jcHk= IGZsYXNoZXM= YmVyZQ== IG11bHRpZg== IENhcmdv RWxlbWVudHNCeVRhZ05hbWU= KGVwb2No IEt1bmRlbg== UmVjb2duaXRpb24= IFNldFZhbHVl IFN1bnNoaW5l QUNQ OnN0cg== IGFtYmlndQ== IO2VnA== LWxpbmVhcg== IFdPVw== KGN1c3RvbQ== IGlzRW5hYmxlZA== QkFU X2RpYWc= X0dVSQ== SGVhdA== IGFzc2VtYmxpZXM= IENldHRl L2NhcmQ= IERlY2xhcmU= IHVwaGVsZA== IENsYXVk LWZsb3c= IGhvb2t1cA== SVJR RmF0aGVy RGVsZXRlcw== KSk7Ly8= IFBUU0Q= KTsNDQo= ZWdhbA== LmFycm93 IE1QVQ== w7Nq IG1vdGl2YXRl IEthdGhlcmluZQ== LmZyYW1lcw== IHRoaQ== PFJlc3VsdA== LmdyYXk= IEt1c2huZXI= IENlbWVudA== IEJ1cmw= SW50ZXJ2aWV3 PSciLg== UE9XRVI= IENEcw== IFsmXSg= IGNoYW5nZXI= Pj4sCg== LXdl IENMSw== IEFkcmk= IGNpbA== PVg= IHNlbmRv IENlbHNpdXM= YmxvY2tlZA== T3V0T2ZCb3VuZHM= LiE= b3Byb2plY3Q= YW5kZXM= ZWRpdGluZw== IHB1bXBlZA== KCk7fQo= 4Ka/ X0VWRU5UUw== IEZyaWVkbWFu ID4v ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKio= IHRlbXB0YXRpb24= IElwc3Vt IENlcw== IG5vdGljaW5n X2VsZQ== QWNjZW50 IE52aWRpYQ== IGFtdXNlbWVudA== IGludHJvZHVjdG9yeQ== CXJldHZhbA== IGxpbA== aXJpbQ== ZW5xdWV1ZQ== LWhpc3Rvcnk= IGNvdW5zZWxvcg== VFJBTlNGRVI= X1ZlY3Rvcg== Y2F0ZWdvcnlJZA== cGVyeQ== RklMVEVS KHJlbW90ZQ== IHNlcGFyYXQ= IEVtYmVkZGVk IEJhY29u dGVycmFmb3Jt IHJlc3BlY3RhYmxl aWNoYQ== YWlj Kydc IHN0cmF5 0LXQvdC40Lk= IEF1ZGl0b3I= ZW50aWNhdG9y IGNsb2Fr IFVOS05PV04= IEFtZW4= dm94 YXN0cmVldA== Li4uXQ== IGAl LXByb3BlcnR5 IFF1YWxjb21t ZWRpdGVk IGRpc2NyZWV0 LU11c2xpbQ== LnJlY2lwZQ== IHZhbmRhbA== IHXFvHk= c2VuaGE= LGlz IFBvbXBl IEtuaWNrcw== KCknLA== KHRi IEhJRA== IHBldw== IGNhcnJvdHM= IHBvbGljeW0= Lmxp IHR3ZW50aWV0aA== X3Byb21wdA== c2NlbmFyaW8= LkpGcmFtZQ== IE1RVFQ= IEluZGl2aWR1YWxz dG9NYXRjaFNuYXBzaG90 w61zdGljYXM= IkQ= IGZvZA== IHJpY2h0 IFphcg== IHJlc3VycmVjdGlvbg== IG1pbGl0YXI= IE1hbmFnZXJz X0dSSUQ= bm9ubnVsbA== QkVSVA== T3V0cHV0cw== ICAgIAoKCg== IHByZWRlY2Vzc29ycw== IGlzU2VsZWN0ZWQ= IGN5YmVyc2VjdXJpdHk= 5YaZ Lm1j UXVp IGFsbGVnaW5n IHRpYw== TWFudWZhY3R1cmVy IEVuaGFuY2Vk IEJpeg== IHJlYWRPbmx5 w7Ru IGx1bWJlcg== YWVk IHJhaW5z cHJvdmlkZQ== TGF0ZQ== IHBlZGVzdHJpYW5z amF2 QWN0aXZhdGlvbg== J0JyaWVu IHZhY2FuY3k= Ly8t IGJsYWRkZXI= IGFnaWxl IHN0ZWFscw== IHJlZ2lzdHJhcg== IGVsZWN0b3JhdGU= R292ZXJubWVudA== J109Ig== YWxidW1z ZWxlY3Rpb24= YWJs IE9yaWVudA== IHBpcmF0ZXM= IGxvb3Bo CXJlYWRlcg== IMO6bHRpbW8= IFBldHJv INGB0YLRgNCw0L3QuNGG IHNhbXA= aW52ZXJzZQ== LmdyYWRsZQ== IERvbnQ= eG9u IGNyZWFk ZXJ0aWxpdHk= cmdjdHg= IHBvbMOtdGljYQ== VmFsdWVDaGFuZ2Vk QXBpUmVzcG9uc2U= Y29tYm8= IFVY IGRhaGE= J2Fu LW15 4oCcTXk= cGVl bGF0bG9uZw== XEJhc2U= Lndpaw== IFBPVA== IHB1bmN0dWF0aW9u cXVz aW55aW4= PW1pbg== IG51Y2xldXM= IGNvbmNlc3Npb25z LmF2ZXJhZ2U= dXNlcmluZm8= IHRhYmxlc3Bvb24= IE5laWdoYm9yaG9vZA== KFRocm93YWJsZQ== PnY= b3Z5 WFhYWFhYWFg= aXN0aQ== IGJhcnQ= 77u/Cg== RW5jcnlwdA== PWVuZA== IGluY3Vy IHBlcnRpbmVudA== X01JTk9S KSI+Cg== Y2hpZWY= IHZk KGAK dXJneQ== YWJ5cmludGg= IFNoYXBlcw== IHZhZ3k= LmRkcw== bWVtY21w CUl0 c2VtZXN0ZXI= IEVtaXQ= IGluc2Fu IGJydXNoZWQ= X0ZBVEFM ImVycm9ycw== IGRpc3J1cHRpdmU= JW4= IGNvbXBvc2l0aW9ucw== IGJhY2hlY2E= IGRpc2FncmVlbWVudA== UHJvdGVjdA== TElLRQ== LkZpbGVOb3RGb3VuZEV4Y2VwdGlvbg== IHdlaXRlcmU= IE1vbmFjbw== Xzw/ IG1vZGVsZWQ= c3RlZWw= ZWVudGg= IFtdKS4= KHJlZ2V4 ZW5pZQ== LkZsdXNo LnBvcHVw IE92ZXJz LkRlYnVnZ2Vy PmA7Cg== bml0ZQ== LnF1b3Rl IGNvZw== IHdha2Vz IFdyZXN0bGluZw== SW50cm8= IHNlcmRl IHJldXNhYmxl IENvbXBvdW5k SW1wbE9wdGlvbnM= CUl0ZW0= IG51bU9m IENIUg== IEJvbHRvbg== UExVUw== Ym91bmRpbmc= KCsr ICIsIjsK IEd1ZXN0cw== IGRlcHJpdmVk IG1lbG9keQ== WklQ Pj4oKQ== IGNvbmNlZGVk X2RpZQ== IGpveXN0aWNr IGFuYXRvbXk= IFRvb2xTdHJpcA== IEVub3VnaA== Iio= aW50b3No aGFiaQ== IFN5cmFjdXNl IEluY3JlYXNlZA== TXVz LnBhdGllbnQ= IGluY3JlbWVudHM= IFBJWA== IGJvb3R5 LnByaXZhdGU= ZXJ0b2lyZQ== IGN1dHRlcg== IGJla2Fu IGRyYXdlcnM= X0FMSUFT QW5pbWF0aW5n X2Fuc3dlcnM= LmF0dGFjaw== d3JpdGVycw== IGdhYW4= aWtvbg== CWNvbnRyb2xsZXI= IGZhY2FkZQ== k+WQjQ== LHN0YXR1cw== LmZl IHBvc3Rwb25lZA== IEZvbnRz IEJlbmNobWFyaw== aWRlbnRhbA== IGNoaWxsaW5n IEtpZXY= IGJydXNoZXM= LXdoZWVs IEhpcmU= KHByb2M= IGNoZW1vdGhlcmFweQ== INCx0YvRgtGM IE5vbGFu KGllcnI= IEp1ZGU= LUF1Zw== dW1ub3M= Y29udmVyc2F0aW9u IEJlaGF2aW9yU3ViamVjdA== YmF1Z2g= IGd1aXRhcmlzdA== Lm9mZmVy IGFjY3VzZQ== cGFyZA== cmVmZg== LlJlYWN0 IHVjaGFy IG9mZnNldG9m JHN0YXR1cw== L2VtYWls LmNvbm5lY3RlZA== Lys= QHFx YXJhdmVs IGZ2 LlBlcnNpc3RlbnQ= ZW5zdGVpbg== Li4uXQoK LmdyaWRWaWV3 IEpPQg== LScuJA== LmxheW91dENvbnRyb2w= IGNhcmc= IEtvdA== X2VxdWFscw== IHdpdGhkcmV3 QVRFU1Q= LWJ1dHRvbnM= CVVQUk9QRVJUWQ== IFVJR3JhcGhpY3M= IFB1YmxpY2F0aW9ucw== IElOVEVSTg== IGV0aGFub2w= w6RuZ2Vy U0VORA== CXNsb3Q= 0LvQtdC90LjRjw== IHBhc28= X2V4dGVuZGVk b3J0aGFuZA== KHNoZWV0 IHByb2NlZHVyYWw= IGtpZG5hcHBpbmc= Ly8tLS0tLS0tLS0tLS0tLS0t W21zZw== T2NjdXJyZWQ= QWxpY2U= IENBU1Q= IGthdGE= 5rOo5YaM Y2hlYXA= aWNpdHk= IHJlYWRpbmVzcw== KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKio= IFNZTg== IE1hZ2dpZQ== cmljYQ== IHlp IFR3ZQ== aWdub24= YW5kZW4= IGpxdWVyeQ== IHN0YXJ0WQ== IGF2ZW51ZQ== QW50aA== X2NhcHRpb24= IFJvd3M= wq/Cr8Kvwq8= c2VxdWVuY2Vz 0LjRhA== KCIvIikK Y3JhdGU= IFNhZ2E= SnVk IGZhY2V0cw== X3NjYWxlZA== UnVieQ== IFBR IGNydXM= SXJhbg== LnNxdWVlemU= CWZk IHBlcmNl IGRhdGFw Xl5eXg== X1NDT1BF IFNhbG1vbg== IHRhaWxsZQ== IFZhbG9y QUdFTUVOVA== UnA= IEd1YXJkaWFucw== IHJlYWRGaWxl IG5lZ3Jv IG9icmE= LlBhcmNlbA== Q0FDSEU= cmV0Y2hlZA== Y3Jt cXJzdA== b3VmbA== 7ZqM Lm5vbQ== c3NpZA== IHNhZmVzdA== LkVycm9ycw== X3BuZw== Q29udmVydGVyRmFjdG9yeQ== PFNlbGY= IHNlcGFyYXRlcw== X2pCdXR0b24= IG1pc3VzZQ== ZXhjZXB0aW9ucw== IFt7Ig== IFBBRA== 562+ a0h6 PWVu IGjDoG5n SFo= IFhhdmllcg== e2lk IHN0YWlyY2FzZQ== dGV4dGZpZWxk L2RvY2tlcg== KHRhYmxlTmFtZQ== IHRlbGVjb21tdW5pY2F0aW9ucw== b25zbw== b2Ns UGFyZW50cw== L3BhcnNlcg== LWRyb3A= KHN0eWxlcw== X21vZGlmaWVy UmVxdWVzdElk LmJyYW5k IENvaW5z IGt1bnQ= Lkdy IEhJU1RPUlk= KGRyb3A= QnJhZA== IHNla3Np X3Nkaw== IGluc3BlY3RlZA== cHJlZGljYXRl LmZp R09S IGNvY29h IElRdWVyeWFibGU= LS0tPC8= IGRlcm5pZXI= IFVzZXJEZWZhdWx0cw== X1RT IGVvcw== IGJsZW5kZXI= IGxvdWRlcg== U3BhbmlzaA== bGluZXI= XHdpZGdldHM= IHNjaGVtYXM= X0NBUFRVUkU= Lm1pY3Jv 44Kt IPCfkQ== IGFuZGVy YWx0dW5n ID09Jw== IGVuZm9yY2luZw== IEV4aXN0 dXZ3 aXJ0c2NoYWZ0 IEdyZWF0ZXN0 IE1vc3Vs X3Bv IHNpbW1lcg== IHByb2dyZXNzZWQ= IHJvdGFyeQ== IG50bw== Tm9pc2U= IGNoYXNlZA== IGluc3RpbmN0cw== UHVibGljS2V5 IHNuYXBzaG90cw== IFN1cGVydg== Lm1hYw== IEJpYmxp Li4uKQoK CW9sZA== S0VO IENsaW0= IFByb2dyZXNzRGlhbG9n bGljYW50cw== X3NsaWRl K2g= IGVtcG93ZXJlZA== SW5qZWN0b3I= IGluZmx1ZW56YQ== IHBsYW5ldGFyeQ== V2lsbGlhbXM= IG1vbmQ= ZW5hbg== LnJhbmRvbVVVSUQ= KFBvc2l0aW9u IGhvbWJyZXM= IGluc2VjdXJl IHZlcmJz X3JlY3RhbmdsZQ== SU5TVEFMTA== IFBhcnNlRXhjZXB0aW9u X1RB JGZpZWxk LkltYWdlSWNvbg== IEd1amFyYXQ= LWxpdmVk X3NvbWU= IGNsaXBwaW5n LmdldENvbXBvbmVudA== LmNsb3Nlc3Q= LmxpdmU= IGluY2lk DQoJCQ0K IHByb2R1dG9z X211c2lj U3FsQ29ubmVjdGlvbg== IFByZWRpY3Rpb24= IFhU LW5vdGVz IEpld2Vscnk= cmVtZW4= KHJlYXNvbg== U25hcA== QWZmaW5lVHJhbnNmb3Jt YW5nZWxvZw== IGRpY3RhdGU= IHpvc3Rh QmFyQ29udHJvbGxlcg== L3Nob3A= ZWlk LXN3 Q291cnNlcw== Zm9udFdlaWdodA== IEhvZmZtYW4= X051bQ== S1I= IFdpbGxpZQ== YXJrYW4= LXNjYWw= IGF1ZGl0aW9u LmRpc2M= IHR3aXN0cw== IGRlcGljdHM= IGJhbnlhaw== IEtpdHM= IEhlemJvbGxhaA== bm9ydGg= IEdSRQ== w7Zn cXVvaQ== LXRocmVhdGVuaW5n IHdvcm1z IFBO IHNleGRhdGU= IG1vbnVtZW50cw== TU1D Ym90cw== IFNETEs= ZGVhdGg= IHBpdHM= X2Nob2ljZXM= KHNvbHV0aW9u IHByb2NsYWltZWQ= IFFpbmc= IHNzY2FuZg== c3RyYXRlZ3k= ZGVhdXg= IEZpc2NoZXI= X0lW IGlud2FyZA== RGF0ZVBpY2tlcg== IHNld2Vy IGV1cm9w IGhvbWVsZXNzbmVzcw== LlNwcmluZ0Jvb3RBcHBsaWNhdGlvbg== IFNwYWNlWA== IGluZm9ybWluZw== ICch IHBsYXN0ZXI= SW5pdGlhbGl6YXRpb24= LmJldGE= IFBlcnNvbnM= dWdnbGluZw== IHNoYW1wb28= IEplaA== IHNlcnI= IG1heFNpemU= IHN0aXRjaGVz W3BhdGg= LnJldA== IFByZXQ= TmVpbA== Q29udmVydGVk IE1hemRh UE9TSVQ= VG9vbGtpdA== IFJFQURNRQ== Q3VzdG9tQXR0cmlidXRlcw== YXJjaGl2bw== LlBhaW50 Z2V0T2JqZWN0 SVE= LldlYkRyaXZlcg== IGFudGlib2R5 IExpbWE= aW5jb3JyZWN0 RnJhY3Rpb24= IERlYWRsaW5l c2VuZE1lc3NhZ2U= Lk9mZnNldA== ZWRpbw== INeQ IHNtb290aGluZw== LmJv IENFTlQ= ZWxhc3RpYw== LmNoYXJDb2RlQXQ= UmVmcmVzaExheW91dA== QUdFRA== KTtcCg== IFtdKQoK IHRhcHM= RFY= 4oCV IENveQ== IG91dHdlaWdo J2dj XEV4Y2VwdGlvbnM= IEdyYW1tYXI= IEd1YXRlbWFsYQ== IEd1cnU= IHRlag== IGZyaWVuZHNoaXBz IGNvcGluZw== KHVwZGF0ZWQ= X2R4 QW5hbA== LU1heQ== IG1hdGNobWFraW5n IGp1bnRv UEFDS0FHRQ== IHJlbnRz IOiHqg== Y2FrZXM= 44CCJywK cmVuZGluZw== X0ZyYW1ld29yaw== LSk= KHVwbG9hZA== IG9wb3J0dW4= IGNhdXNh IHByb2xpZmlj Um93Q291bnQ= IG5hY2t0ZQ== IFNveQ== U2h1dGRvd24= 6Ig= X0VYUEk= IEhhcmJvdXI= IHRvcmU= XE1lc3NhZ2U= L1U= T01CUkU= LnNlZ21lbnQ= IGNvbWVk cm9tYW4= IHNlZ8O6bg== U2lnbWE= IHNraWluZw== IFRlcnJhaW4= IGJlbmNobWFya3M= IEF0dGVudGlvbg== IH0qLwoK IGdlaWw= IGNhcnRvb25z IGF0dHJpYnV0aW9u IHJvdG9y ZW5oYQ== IM6z IHRyYWo= IGPDtG5n IHNoYWtlcw== IENsZW1zb24= IGJydXRhbGl0eQ== IDsNCg0K IGVpZ2h0ZWVu IEF3YXJlbmVzcw== KHJlc3Q= IHZpb2xpbg== X1JPVVRF LkZpZWxkTmFtZQ== IEFkZQ== aXppYQ== IEhlbG0= IHR5aW5n IFByb2dyZXNzQmFy YXV0b3I= IGxvbmRvbg== Jnc= Z29v SVNUUlk= L0NyZWF0ZQ== IFVTSU5H IEdY IEVGRkVDVA== RmNu IEVuY3J5cHRpb24= Q0VE ZmluZQ== LWFycmF5 IHB1c2hWaWV3Q29udHJvbGxlcg== QCQ= VXBsb2FkZWQ= LXdyaXRl LmdldFBhZ2U= X2VzdGFkbw== QU5UTFI= IFZpZXdEYXRh ICR7KA== IGFsbW9uZA== IExvZ2ljYWw= IHNob290ZXJz IOygnA== IHB1ZmY= IHVuY29tbWVudA== IGN1c3RvbWl6YWJsZQ== xINy RGlyZWN0aXZl CWlkeA== Q2hhbGxlbmdl IHN1bW1hcml6ZQ== IEF2Zw== LlVzZXJJRA== LmRpc3BhdGNoRXZlbnQ= IGNvb2tlcg== IGNvbm5lY3Rpb25TdHJpbmc= IHNocmlua2luZw== amFk IFRoZW1lcw== YW5kYXRvcnk= IGR1YmlvdXM= IGNlcA== c3Bpbm5lcg== IHN1YnJlZGRpdA== IGlpaQ== L2NhY2hl ZGVmZXI= IHN1YnN0aXR1dGVk IGd1bm1hbg== Y2xpbmc= IOyw KGN0cmw= T3JkZXJJZA== X2VuZw== IGZpbG1tYWtlcnM= IGZvcndhcmRpbmc= IHN0cmFuZGVk IExlYW4= IOunjA== KFVuaXQ= IGRpZFNldA== bGFrZQ== Z3JvdW5kcw== 5Zug IHVucmVnaXN0ZXI= IG1pbmhh IFZlZ2Fu CWlWYXI= LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo= b3R0bGU= SVBD IHByYWdtYQ== IElJRA== X01pbg== JTsiPgo= X3JhbQ== ZHJpdmVycw== IENoaWNr IGNscg== X0JVRkY= INCy0YvQsQ== TWVyYw== anV2ZW4= IHNoaW0= 0YvRhQ== IHRoZW9yZXRpY2FsbHk= L2ZvcnVt IHNwaWRlcnM= IGdvb3Nl IFBob3Rvbg== IHByb2ZpY2llbmN5 IENsZXJr X2ZpZw== Q29uY2Vybg== KGNvc3Q= IHJlZGQ= LmVudmlyb25tZW50 Q3JvcA== IOKJpQ== eWVjdG9z LkJhdGNoTm9ybQ== LWNvbXA= JGltYWdl IE5pa29u IGRtZw== Wzo6LQ== UExM dW5jaW9z Zm9jdXNlZA== IHR1bw== IGh2b3JkYW4= IGF0dGFpbmVk IHByb3RlY3Rvcg== IEthbnQ= IHNob3Jlcw== IEV0aGFu X3NjaG9vbA== IG5lYXRseQ== LlNoYXBlcw== IE5lbQ== aGNw LicvJy4k IE3DqXhpY28= c3RydWN0dXJpbmc= IGxha2g= IGFkcmVzc2U= JywnIw== IEhhc2tlbGw= X0VOR0lORQ== IHJlcGVudA== IGN1Y2s= LkZJRUxE IFNrZQ== QEBAQA== SGl0cw== IGltcGxhbnRz IENvbnN0aXR1dGlvbmFs IFBIUFVuaXQ= IHRvaWxldHM= LmFsYnVt 5LiL6L29 CXNldFN0YXRl KCItLS0tLS0tLS0tLS0tLS0t LkFtb3VudA== ZWN0dXJl IFRob3VzYW5kcw== TmVpdGhlcg== IHByZXNldHM= IEFzc3VtZQ== KGZhY3Rvcnk= IGxpY2s= IGdvYWxrZWVwZXI= PFN0YXRl LXNlY3VyaXR5 X2ll ZXNrdG9w IEx2 IFN5bXBob255 LnNhbXBsZXM= IGh5cGVydGVuc2lvbg== xYJ1 Lmp1c3Q= TWVuc2FqZQ== IT0t PFRLZXk= IHNweWluZw== LGRhdGU= b3JnYW5pemVk ICAgICAgICAgIA0K KGN1ZGE= X01ldGFkYXRh dWJpc2hp LUJlbno= X0Fzcw== IEVsc2VJZg== IGxlc2lvbnM= IFByZXN0b24= VGVjaG5pY2Fs IHBsYXRpbnVt L3Bp SW5kZXhlcw== IHBhcmFwaA== IG92ZXJ0aHJvdw== aXBhdGVk b250b2xvZ3k= IGRlbW9ncmFwaGljcw== IGNhbmU= IHByb2ZpdGFiaWxpdHk= IGVzdGFibGlzaG1lbnRz XSY= OmFic29sdXRl ZW50cmFkYQ== VHA= IHNoYXJlaG9sZGVy Lidf 5aaC5p6c bnBq dnJpcg== IEVYRUM= IFBvbGljaWVz IGZlbGxvd3NoaXA= IENHUmVjdEdldA== X3JlY2lwZQ== X1JFQw== dW51 IHJvYmJlZA== IHR1cm1vaWw= KTo6 LnN0YXJ0RGF0ZQ== IGV2YWN1YXRlZA== LWVxdQ== IGZvdXJ0ZWVu QFNwcmluZ0Jvb3RBcHBsaWNhdGlvbg== IOaVsOaNrg== bmFudHM= dGhyZW4= U29ueQ== REZT LWNpZ2FyZXQ= IGFnZ3JhdmF0ZWQ= IG5lZGVybGFuZA== IEZ1ag== dWNlcw== L3VzZQ== dW1tZXI= KFNURA== 6rCE Kj4m LnBlcmNlbnQ= aWFudHM= IEN0 VkFT X1RIRU1F IHNuaXBlcg== X0VM LXdvcmtlcnM= U25vdw== IEF1cmE= aWVnbw== IEdsb2I= TmFtZWRRdWVyeQ== X0JH IExpdmVEYXRh IFNlbmRNZXNzYWdl IHJlc3BvbmRzVG9TZWxlY3Rvcg== ZW5jZXJz aW5zdHJ1Y3Rpb25z KEl0 5ZG95ZGo5pyf IEdvbWV6 Y2hhcmdlcw== LkdlbmVyYXRlZFZhbHVl IE1hY3Jvbg== KFBPUlQ= IFByb2Nlc3Nlcw== Lm9uUmVzdW1l IGZpZQ== QnVpbGRlcnM= KWdldA== X3dhbGxldA== IGNhbmM= IE1vYmlsaXR5 IGFsYXJtcw== cm9zaXM= YW1hw7Fv IHBpcw== IOODuw== U2hh IGNvbmZlc3NlZA== KElORk8= KCcsJw== X1NlcnZlcg== IGJsYXN0ZWQ= IEZhcm1lcnM= cnV6 Y2tlZGl0b3I= X0lNUExFTUVOVA== IG1vdHRv IENBUkU= IHlkaw== Qm9uZQ== IGFkZW3DoXM= KyIvIis= UHJvcFR5cGVz X1Na LnBhaW50 LnBpeGVs IE1lc3NhZ2VUeXBl IHR3ZWFrcw== YC4KCg== VmVyaWZpY2F0aW9u bmVjaw== YmVycmE= IG1pbmRmdWw= U3Vydg== IDotCg== IGFueXdheXM= IEFkbWlzc2lvbg== YWNjZXNzaWJsZQ== RmxhdEJ1dHRvbg== ICInIik7Cg== IGhhaGE= VG9Qb2ludA== IGJ1cmdlcnM= Z2V0U3RhdGU= XEhlbHBlcg== IEZVTkNU IEVMRU1FTlQ= IENFUlQ= IEFDQ09VTlQ= Y2hhcmdpbmc= X2NhbmRpZGF0ZQ== X3JlY2VudA== IEluc3RydWN0b3I= IGRydW5rZW4= WVNRTA== b3JhdGl2ZQ== IjoiIg== IHRhZ05hbWU= X05FRw== IHFw IFVuZGVmaW5lZA== IGdyZWFzZQ== CSAgCQ== IGVhZ2VybHk= VGV4UGFyYW1ldGVyaQ== ZGlzdHJpYnV0ZWQ= QWRtaW5pc3RyYXRvcg== RGlzdHJpYnV0aW9u IERlY29tcA== IFRyYW5zZm9ybWVy LmJ0blNhdmU= IEdvcw== KEVudW0= Y2Fpcm8= LWNp L3JlcG9ydA== IFBvc3Rlcg== X2RlcGVuZGVuY3k= IGV4cGxvaXRz c2V0Rmxhc2g= IHh0 IGpld2VsbGVyeQ== IGRhaQ== X1JBTQ== IGJlcnJpZXM= IGdyYW5ueQ== RmF0YWw= w6lhbA== LW1vc3Q= LlZpc3VhbEJhc2lj IFBlbmQ= YmVp amFr OyovCg== Qm95 PlNlbGVjdA== aW5kcmljYWw= VGVjaG5vbG9neQ== IEFsbGlzb24= ZGF0YXR5cGU= J2Nsb2Nr IGtvc3Q= IGJham8= LkNvdW50cnk= WmVuZA== LndyYXBwZXI= 4L0= IEZpbGlwaW5v b2NyZQ== U1NI IFNBTVBMRQ== X2luaXRpYWxpemVk KTs/Pgo= IHBvcm5vc3Q= ZXNhbg== IEN1dHRpbmc= IG1peGVz X2FnYWlu IGZvcm11bGFyaW8= W1Y= IHRlbGVmb25v L3Vz IGxvYWREYXRh LnJlZmVyZW5jZXM= IG1hcFZpZXc= KyJf IFNRTGl0ZURhdGFiYXNl aXRvbg== Q29sdW1uVHlwZQ== IEV2ZXJ0b24= LlJlc3VsdHM= L25vdA== IGdldEZpbGU= aGVyaXRhbmNl IGdldEhlaWdodA== JHVzZXJuYW1l d2l0aGRyYXc= Xyk7DQo= LnV0 IFFBcHBsaWNhdGlvbg== dXJuYWw= LWRvd25sb2Fk YnVyZ2Vy cHJlY2k= IFRoYW5rZnVsbHk= LkVWRU5U IGdyZWF0bmVzcw== IGxvb3NlbHk= IG1hc2g= IGdlaGVu X2FudA== IGltcGVuZGluZw== LmlzUHJlc2VudA== IHN0YWlucw== SU1T LmJhY2tlbmRz IGlycmlnYXRpb24= IFRhdA== L3Rlc3Rz IEtpbmdzdG9u LnRyYW5zbGF0ZXNBdXRvcmVzaXppbmdNYXNrSW50b0NvbnN0cmFpbnRz IHZvbWl0aW5n LXJlcXVpcmVk IGJsYXpl IFN0YWZmb3Jk UklE L2Z3bGluaw== IGthbGU= c29sZA== KHByb2dyZXNz KGNoYXJ0 IGN5c3Q= IGRpbGlnZW5jZQ== L21w IGNsZXJneQ== IEJyb3dzZXJSb3V0ZXI= IEFQSw== IENPTlRBQ1Q= QmFySXRlbQ== LURpc3Bvc2l0aW9u IE1vdG9yb2xh X3NhbA== IFdvb2Rlbg== IFRIRVk= IGNvbW1lbnRhdG9ycw== IGNvbW1lcmNpYWxz PW1vZGVs LiIpLAo= IFBsdWdpbnM= ZGFpbg== aGVhZGVk IENvb3JkaW5hdGVz SmFuZQ== IFByZWZlcnJlZA== IHBvZGVtb3M= LmlzQmxhbms= IFN0YXA= IHdzcA== IENPTEw= X2JpZA== IHByb2Jlcw== dWFuaWE= KHN5bQ== IGN1ZXJwbw== IG1hbmlwdWxhdGluZw== IGFtYXppbmdseQ== LkRBWQ== dW1wdGVjaA== YWNvYmlhbg== VGVybWluYXRl IHN0YXRpb25lZA== U2V0QnJhbmNo U2NyZWVuc2hvdA== ZXN0aGVzaWE= IHdhbGtlcg== I2Zyb20= Y29vcmRpbmF0ZQ== X2ludGVyZXN0 IGhlbHBsZXNz CXB1Yg== bmdh X0V4 IG53 IHRleHR1YWw= IHBsdWdz IG1pbmlvbg== bWFyZXM= PD4K QUNB Q29tcGFueU5hbWU= KGVj IExhbmRzY2FwZQ== X1BST1ZJREVS Y3c= lIQ= QWNjb3VudElk JDo= IFBlcnNvbmFsbHk= cHJvcGVydHlOYW1l IEt1Yg== J2k= IEdpdWw= IHByaW9yaXRpemU= Rk9STUFOQ0U= IFBhcmFkZQ== KVwK c3RkYm9vbA== IGFsZXJ0RGlhbG9n IExlaA== LmNhdGFsb2c= IHdlYmluYXI= IGltcG9ydGVy cHJvamVjdElk VFlQTw== X18NCg== R1c= c3VtbWVy IHNpbmlzdGVy LmZhaWxlZA== IGJlc29pbg== aXNtYW4= REVTVA== IG5o4bqtcA== IG1vxbxuYQ== X2luc3Ry IHBhdmVk IHByZWZpeGVz IHJhbXBhbnQ= IHlBeGlz IOazqA== X21pZGRsZQ== IHNjaG9sYXJseQ== IHByb3N0aXR1dGVz IG1vcmFsZQ== LnBlcm1pc3Npb25z LmdldExpc3Q= IHJlamVjdGluZw== IGxvb3Bpbmc= IFNwZWNpZmljYXRpb25z IGltbWVuc2VseQ== IE1lZGlhbg== KGNoYWlu IGNsaWNo L2ZsdXR0ZXI= YWNm LnVybG9wZW4= dXR0ZXJzdG9jaw== IHNwZWN0cmE= IGFkbWly L21heA== LkVtaXQ= KHdlaWdodHM= acSZ SW5zdGFsbGluZw== SnU= IEZlbGw= IEZSRQ== LmRlbg== IEJpZ0ludA== Ij5A ICopOwoK IEJpb2xvZ2ljYWw= IHBhdGVudGVk LnBhZ2luYXRpb24= LnJvbGw= IER1bA== IGRlc2Fycm9sbG8= UmVnYXJkbGVzcw== mOydtA== IHJvYmU= 0J3QtQ== IEJveWQ= LyoqKioqKioqKioqKioqKioqKioqKioqKg== cmVjZWlwdA== IEFzc2lnbmVk YXR0ZW5kYW5jZQ== LWNob2ljZQ== ZXRzeQ== X2Vsc2U= LG5leHQ= X2V4aXN0aW5n ICcnKSwK IGxpYmVydGlu dHJhaXRz YXR0ZQ== Q29tcGFyYWJsZQ== IENvdg== IEFkb2xlcw== LHRoZQ== IExvYWRlZA== fHI= PWluZGV4 IEdhc3Q= IGluamVjdG9y CXN0b3A= LWdvb2dsZQ== IGZldGFs IGFsbG8= eWxlZnQ= Z2V0UGFyYW1ldGVy 4oCd4oCU X3NlY3Rvcg== LlV0aWxpdHk= b3Njb3Bl LmVhc2U= IE1hZ25ldGlj QXJyYXlPZg== IGZlYXJmdWw= IEluZmVy IEZ1aw== Sm9obnNvbg== JGFycmF5 IHNhaXM= X2NvbnRy RGVzY3Jp IERldGFpbGVk X2xlYXZl X1JPVA== IG7DpGNo IGthbWk= RENBTEw= OmVx IG1vbms= X29ianM= KFNlcnZpY2U= ZmluYW5jZQ== IHBvZGVt X3Jlc3RvcmU= IGRlY29yYXRvcnM= IGFkdmlzaW5n INC/0LDRgA== LnBlcm0= IEhhaQ== IGZr dW50ZWVycw== IFJUV0Y= X2l4 QUNT IGJyZWFrb3V0 ZGlyZWNjaW9u IFN1bnNldA== X2Z4 b2xrYXRh LXJhZGlv SGV0 LnV0aWxpdGllcw== X2Jhc2lz KGtpbmQ= IENvbmM= VGh1bWI= IE1pY2hl ZGVsaXZy IGd1dGU= IEZpbGVQYXRo IFRyaWJl XCIp X2N1ZGE= RGlmZmVyZW5jZQ== IE1vbnN0ZXJz IHNldFR5cGU= LkNvbnRlbnRUeXBl IGR1bQ== RW52ZWxvcGU= YWd0 IHVubG9hZA== X2NoZWNrZXI= IHJlc3Rv X3Blb3BsZQ== UHJpY2Vz UHJvZmlsZXM= KClc RlVO ICIjIg== IFBhdHRlcm5z IFNQRA== X1JPV1M= T3JpZw== YmxhZGU= IGzDqQ== JWk= Kysr TGlmZWN5Y2xl LS0tLS0tLS0tLS0tLS0tCg== VGFy VGhhbk9y JnE= IGNyaXRpY2lzbXM= LXBo RWxlbWVudEV4Y2VwdGlvbg== X2d1ZXN0 IOu2 X0Fz IENhcnJ5 X0JJRw== YWtldXA= X3JldHJ5 IG7DqWNlc3M= IE1JU1M= aXN1 IFNwaXJpdHVhbA== XyRf IHJlZmxlY3Rpb25z PHQ= IGZ1bsOnw6Nv IG1vbmFyY2g= IFBhdGVs X3ZvbHRhZ2U= IHJhaW55 Y291cnQ= IHVsdHJhc291bmQ= aU9T X0FMV0FZUw== V28= X0JMRU5E b2tzZW4= IHRyYXZlbGVy IGRhdGFUYWJsZQ== c2V0Q3VycmVudA== V29ya2Zsb3c= LnllbGxvdw== XSkt QUJTUEFUSA== X2l0ZXJhdGlvbg== 0LTRgA== IHViaWM= IG1lYXRz L2Vt IERpc29yZGVy IGVudmlhcg== U0VP IGhlYXZlbnM= X3N0dWI= IGFkcmVzcw== IFRyaWU= IExpbmRzYXk= bGVp IHBsYXRh LnNldHRpbmc= IGVsZWs= ICgkew== QXV0b21hdGlj IGRvd25zdGFpcnM= UElY aWNpb25hbA== YWJhbA== LXN0b3JhZ2U= aWNoaWVy IEFscGhhYmV0 LGxhYmVs QAo= IGludGVzdGluYWw= IHZhcmE= Lm1h IHByb2du IG5lcGhldw== VGltaW5n Y2xhc3NuYW1l IGxvY29t IFNhbWFudGhh IEFjY29yZGluZ2x5 IFhDVGVzdENhc2U= IFBsYWlucw== IExlbmlu bm9w IFR5c29u IHJlbmFs b2luZQ== KFRlc3RDYXNl IExvbWI= QmFuZw== IHZvbHVt X2dlbmRlcg== IGx1dA== IO+8 Q29uZmlndXJlcg== IHN0cm9rZVdpZHRo Lkh0dHBTZXJ2bGV0 fHg= LkpTY3JvbGxQYW5l IGNvbnNvcnQ= LmJ1bXB0ZWNo dHJpZGdlcw== IGJlbmVmaWNpYXJ5 PXJlcXVpcmU= cmVuYw== IE9V ZW50YXJpbw== IHVyZ2Vz 4oCUbm90 Q2FtcGFpZ24= ZHJl IFJpdmVyc2lkZQ== CXRi IG91dHB1dEZpbGU= IGFic3Q= IHN0cnVjdHM= IHJ2YWw= XCI+Ig== IGFjcXVpc2l0aW9ucw== QkxBQ0s= IHRydW5j IGFubm90YXRlZA== c2V0VXA= VE9LRU4= IENvY2E= RGlzYXBwZWFy OnZhbHVl IGFpZGVk dHRs bHV4 IGFjdWVyZG8= IEZpbmdlcg== Lkdlb21ldHJ5 XScpOwo= Lmdm VFhU IFNjb3RpYQ== YXZyYQ== IHZpcA== IHdob3BwaW5n LWdpcmw= IGN1cnNlZA== XVst IGNpcmN1bGF0ZWQ= dW5jdHVyZQ== b3JtYW4= IG1BZGFwdGVy IOKAlAoK RmlsZU1hbmFnZXI= KGlQYXJhbQ== SW1hZ2VCdXR0b24= REFR QXJtb3I= IHNwYXQ= LmpzZGVsaXZy IG1pc29n LmVjb3Jl J119Cg== aW1wb3J0cw== IGRpbm9zYXVy LUZyZWU= IGFubm9u IHRyaWJ1bmFs WWE= Lmd1aWQ= bW9zdGx5 PT09PQo= IGltYWdlbQ== U3VpdA== a2Fz IENoYW5uZWxz QnVkZ2V0 IERpdmlkZQ== amVt IEdyaQ== IGluZGljYXRpdmU= XEZhY3Rvcnk= LnJlcG9zaXRvcmllcw== IEFNUA== LnNucA== IGHDpw== Ims= IMK1 ZGVjb2RlZA== X2FyYw== LUNsYXVzZQ== IEFkag== IG5ld0FycmF5 KEdFVA== IGxhdGlu IHd6 OnVpbnQ= 5Yir Ii4u Q29ubmVjdGluZw== ZW5ub24= 5bm2 IFNlcw== IGJlbG9uZ2luZ3M= Kycm CXNldHRpbmdz SU5W IHDDqQ== IGFkdWx0aG9vZA== YW1ibGU= X21hc2tz LXJlc29sdXRpb24= cmF0cw== IO2BtA== IHZvZw== IFNobw== IENvdmVuYW50 IHJlbWluZGluZw== b3JuYWRv aWFk 5byC Q3JlYXRpdmU= IFNUWUxF IGFub21hbHk= XEFwcGxpY2F0aW9u IG1hbmlmZXN0YXRpb24= IE5hbm8= TWFwVmlldw== aWRlYWw= YWNoaW5lcnk= IFZhdWdo cHJpbnRlcg== VmVyZGFuYQ== L2NvbXBvbmVudA== IGFkZENoaWxk IGxlYXJuZXI= IGRlY3J5cHRlZA== IHRpZ2h0ZXI= 5p2f IGplag== IC4KCgoK IExvYmJ5 bGVw w6Rubg== bGVpZ2g= L3JvdXRlcw== IGNhbm9weQ== IEZpc2NhbA== Ojsi IGJ1cmRlbnM= L2Z1bGw= IENTUg== LlNoYXJlZFByZWZlcmVuY2Vz L3RyZWU= IGRyb2l0 SW1wbGVtZW50 R2V0Q3VycmVudA== KHB1c2g= JHg= 0Y/Qtw== QUNJVFk= PT09PT09PT09PQo= amM= X2hyZWY= LmdldFJvb3Q= IEtE KGxz W2NudA== IGRhbGw= KGJw IEVX S2V5RXZlbnQ= bG9iZQ== IGh0bWxlbnRpdGllcw== IGZhbHRh IHZhbHZlcw== IHNpemluZw== UG9ybg== IHNob3dFcnJvcg== IEZyaWQ= IMOH LnJhbmRu IHRhbnRy IHNheA== dXJvdmlzaW9u dGhlb24= X1JDQw== eEZE SW5pdFN0cnVjdA== IGNhbm5lZA== IHF1YW50aWRhZGU= LldBUk5JTkc= IEJyaXR0 LXJlZ2lzdGVy YWN0aXZlbHk= IE5hdGFsaWU= 44G/ IENPTk5FQ1Q= emVr IG1pbGxvbmVz XWludA== ICcsJyw= IHByaW4= IjpbLQ== IC8vLg== IGludGltaWRhdGluZw== cmF6aW9uZQ== LmlibQ== IEpha2FydGE= 0LzQtdGA IGxvYWRDaGlsZHJlbg== X1VQTE9BRA== IFdlZWtz IGdldFRleHQ= IPCfkg== IF1dCg== IENvc3Rz xJlw cGF5bWVudHM= Lk1vdmll bGg= tIg= X2NlcnRpZmljYXRl PXE= bGlicmFyaWVz IEFlcg== YXVzcw== CWZhaWw= T1VORFM= c2VuZEtleXM= IHNjYW1z d2FydHM= SGlzdA== IEVzc2V4 IGZ1cnk= IHRpdHJl IENvcGVuaGFnZW4= IHByZWRlZmluZWQ= c2Nw c2VycmF0 LmVuc3VyZQ== aWxlZQ== TWVyaXQ= X1VOTE9DSw== IENvcnJlY3Rpb24= Tm9ybWFsaXphdGlvbg== IOS/ruaUuQ== IHN0b29s IOWIoOmZpA== U2hvcnRjdXQ= Y2hvc2Vu IGJ1bGx5 IGZ1bmNpw7Nu 44O844Or IOeUn+WRveWRqOacnw== LmFsaWFz PlRvdGFs IFNURU0= cGVuZw== Y2FsZXI= cGVyZmVjdA== IGJvbmRpbmc= UGhvbmVz IHB1bHA= 67aA SUVXUw== IERlZXI= X0xDRA== IENvbmNvcmQ= V2l6YXJk IG9mcmVj IEVtZXJhbGQ= dGVuZXNz bmF2aWdhdG9y VGhlb3J5 IGd1YXJkYXI= IGZ1bGZpbA== IFVuYXV0aG9yaXplZA== IEJvdXQ= CWhvc3Q= IFJpYg== KGZ0 RG9jcw== LmdldEJvZHk= 5b+D IFJpdmVyYQ== IHdhdmluZw== IHBlcmZpbA== Qm91bmRpbmdDbGllbnRSZWN0 LmZh cGFnZWQ= IEFmZmlsaWF0ZQ== IHByb2xldA== fS0+ew== KHNjb3Jlcw== IHZpdGFl e05hbWU= c2NoZWR1bGVy X1NBTg== IE5lYw== IEJlZWY= X3Rj TElO IEV2ZW50VHlwZQ== IEJ1ZmZlcmVkV3JpdGVy IHNvZnRlcg== IFZvdGluZw== IEdlc3R1cmVEZXRlY3Rvcg== IHVuc2Vlbg== IFNDTw== IGVsbw== Y29tYmluZQ== X21ha2VDb25zdHJhaW50cw== IHVuZGVyZ29uZQ== IE9mZmljaWFscw== LG9wdA== IGxheWVyZWQ= ScOTTg== IGJhbmtlcnM= IHNlZ3JlZ2F0aW9u IHJ1c3NpYW4= IHZlbnRhbmE= Z2V0S2V5 U2FudGE= LlRvb2xTdHJpcFNlcGFyYXRvcg== IEFlcm9z LnB1dEludA== IGluZm9ybXM= X2JpbGw= 66aE LnNldE1heA== IH0+Cg== IElQUw== IEFsaWM= In0KCg== IHVzaGVy IE5ndXllbg== IGFic29sdXQ= IGd1YXJkZWQ= IFJlYmVs IFp3 IEFubnVuY2k= IHByw6E= YWJjZGVmZ2hpamts IFZlcmlmaWVk W2l4 IHRpZXJz w6J0 LiIpDQo= aWp1 bGl2aW5n R1BT LlRlc3RUb29scw== U2l6ZVBvbGljeQ== IG1hc3NhZ2Vz YXNzZXJ0SW5zdGFuY2VPZg== IHBvc3PDrXZlbA== IGJ1c2M= IEp1ZGFpc20= IGluZGlzcGVuc2FibGU= IE1vc3RseQ== SVRB IGdldENvbnRlbnQ= QnJvd3NlclJvdXRlcg== LWNvdW50ZXI= IG9idGVu IC8+KTsK 0LjQuw== aGVhZGxpbmU= KGhvbWU= YWxpY2U= bGRyZQ== X01vZHVsZQ== Q29tcGFuaWVz TlBD IHRvcnNv LmNvbnM= CWFkZHJlc3M= X3B1cmNoYXNl IEJhcmQ= Z3N0 LWFuaW1hdGlvbg== X3BhaWQ= LnNwZWNpYWw= IGRlbGlt IHRha2VvdmVy KGhhbmQ= ZW51aW5l LWdyZXk= IEFCSQ== U2Vzc2lvbkZhY3Rvcnk= aW5zdGFsbGVy X0RJU1RBTkNF IEZhdm9yaXRlcw== oIA= Jz57 IExhdXJlbnQ= 0YfQtdGC IHN0cmlwc2xhc2hlcw== IGVzdGFiYQ== JnQ= LnBhbg== IFBBUlRZ IEJhbGk= Y3Np KG1lbW9yeQ== IFRvZG9z IFNPQVA= YWduZXQ= CWJlZm9yZQ== T3B0aW9uc1Jlc29sdmVy aWJlbg== INmF2YY= IGFkZGl0aXZl IE1lbGVl IE1hbml0b2Jh IFBlcmNlbnRhZ2U= PSgt LmtpbGw= IGx4 YW5jYQ== IGZvdG9ncmFm IGJsYW5j IFJlc2lkZW50cw== cGluaw== SEJveExheW91dA== LnVuaW9u IEhZ IGNvbnRlbnRWaWV3 LWZhdA== CWhhcw== 66OM IHdoaXBwZWQ= dmVuZG9ycw== dWJyZQ== SVRIRVI= LmZ1bmN0aW9uYWw= INCy0LXRgA== Q2FuY2VsZWQ= LWNu SW5PdXQ= LlJvd1N0eWxlcw== IHRyYXRh IEluZG9vcg== LWZhc2hpb25lZA== IEJvb3Ro LkxhYmVsQ29udHJvbA== IHBvcGU= IENhcm5lZ2ll bmVyZ2ll IEJY 44CCIiwK IFdlYnN0ZXI= CWRpdg== TmFycg== IGNvbmp1Zw== a2lk IG1vZGVyYXRpb24= IGFteQ== IFNvbHZl VklD IEVa aWxsYWM= IENpcGhlcg== IEFjY2VwdGVk TEFCRUw= IHdyYXRo IG1pblZhbHVl IGthxbw= IERhdWdodGVy KS5e KGRj IHJlc29sdmVz c2Nzcw== YWJvdXRz dWx0aXBhcnRGaWxl IGZlYXRz IGxhdW5kZXJpbmc= IGNvbXBhw7E= IHNlZ3VyaWRhZA== IGhvYmJpZXM= LWZhY2luZw== InZhbHVl Z2V0SW1hZ2U= U3FsU2VydmVy IHdpdGhTdHlsZXM= PkRhdGU= IEV4cGVk JGpzb24= 6ZO+ IEFDVElPTlM= U2Vuc2l0aXZl Ymxhc3Q= IMO2ZmY= ZnRl Q1RTVFI= IExvZ0xldmVs Y29udHJhY3Rz LmRqYW5n Ij4NDQo= RVRZUEU= IG9iamM= X1NPVU5E X3NwYWNpbmc= X2NsYXNzaWZpZXI= IHJvYw== Q2xhc3NpYw== IOuztA== X2ludmVyc2U= LWFjcmU= IEZJTA== IERWRHM= IHN3YWxsb3dlZA== dmlsbGE= IFJlcGxpZXM= RmlyZWJhc2U= IHBoeXNpcXVl CXRoYXQ= IFJlc2l6ZQ== Pj4+Pj4+Pg== TmVhcmx5 LmFydGlzdA== LXs= Pz4NCg0K Lmxy Lmly KFsk aWFubmU= CW9i LCcl IGtuZXg= IGNvcnJv IE93ZW5z PW5pbA== bGF5cw== YXBn w5Y= RU5P SGVucnk= SnVzdGlu ZWxlY3RyaWM= IE5vcmRpYw== 5oyH IGV4Y2x1ZGVz RXVyb3BlYW4= IHRlbnRz KFN0cmluZ1V0aWxz KHBlZXI= eXN0b3Jl UG9ja2V0 ZnVlbA== ZXR1cw== IE1hcmlu 0YDRg9C6 6K+E IFBlbnM= IGluZWZmaWNpZW50 IGV0ZXJuaXR5 Licm IFBhY2thZ2Vz IEFwcENvbmZpZw== IG11bHRpZA== Y3Vsbw== IGJvcnJvd2Vycw== IERlYmJpZQ== IGZyb250cw== Sko= ICIuLi8uLi8uLi8uLi8= ICIrCg== PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0= IEdhdmlu IG1pc2g= 4pWR X0FUVEFDSw== SW5kZXBlbmQ= 4K+N4K4= w6Fm Z2Fycw== IFBhcnRpY2lwYXRpb24= VmVyYm9zZQ== U3By U3Zn KFZhbHVlRXJyb3I= IHJlY29uY2lsZQ== CURCRw== bWVldA== IExvZ2luUGFnZQ== LXVudXNlZA== IGpvbmc= IGFuY29yYQ== INij Plo= PXc= IFJlbm8= dmll b3Rpb25FdmVudA== IExpc3RUaWxl X1J1bnRpbWU= IHVwaG9sZA== IE9idGFpbg== cHJvdmlkZWQ= IERhdGVQaWNrZXI= IENHSQ== IEJsYWNrQmVycnk= YWNobw== IElzYWlhaA== 5pW0 IEFiZHVsbGFo IHVwcA== IHVybHBhdHRlcm5z CXNpemVvZg== IHBpc3NlZA== IHByZWZlcnJlZFN0eWxl QVBQRVI= IFZC IFRlcmVzYQ== b2duaXRv RU1Z IGVsZWdhbmNl IENsYXl0b24= YXRpdm9z IEFuYWxvZw== IGdhdXNzaWFu IEhpYmVybmF0ZQ== W11b IHN3ZWV0bmVzcw== IE5pZWxzZW4= IER1dGVydGU= KHNlbA== LCs= IGV4dHJhb3JkaW4= Zmxha2U= W0RvdWJsZQ== Ly8vDQo= IG11Y2hhcw== IEJyb2FkY2FzdGluZw== QXNzb2NpYXRpb24= ZXhlcmNpc2U= LlJlbGF0aXZl IHViaXF1aXRvdXM= U0JBVENI xLFuYQ== LWZvb2Q= IGNyeXN0YWxs 0YPQsQ== ICd+ INCR IGR1bms= IHpp IE11Zw== IGRlY2VwdGlvbg== IEVtYWNz CiAgICAKICAgIAo= IMSRxrDhu6Nj IFdvbHZlcw== YW1lbnRp ICcpWw== Zm9ybWF0cw== UmVjdg== RGV0YWlsZWQ= KEhXTkQ= X3RyaWFs YWdyYW50 T20= Y29uc2Npb3Vz IG9zcA== cXXDqQ== IGdvbg== IG1lcmVrYQ== YXJlbmRyYQ== TWluZQ== LmxpbmtlZGlu IGZpZm8= Lm1vbml0b3I= IHJ1bmU= bW5vcA== IHNwZWN1bGF0ZQ== ZWds IHZhc2N1bGFy LnRlY2g= IG1hZ21h IGxlc3Q= dW1hbm4= IERyaXZlck1hbmFnZXI= IG9ydA== IGxpbmdlcmluZw== IG9zdHJlYW0= IHNwYXJrbGluZw== LmNvbm5lY3Rvcg== IHRhaWxz IGtlcm5lbHM= VVNFUk5BTUU= CWNj IG9uU2VsZWN0 L01QTA== dGFwZQ== LmRqYW5nb3Byb2plY3Q= R2VuZQ== 4oCZaW4= L2ZpbHRlcg== LWVudmVsb3Bl IGFwcGxhdXNl IHJlZ2lzdHJvcw== IENvcnk= b2ZmbGluZQ== LXNob3Q= bGVzYw== b3RlbnQ= IG51bWVyYXRvcg== LmVmZmVjdA== cGxhY2VtZW50cw== IEFGQw== LlNlcXVlbmNl IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K eW50aGlh IEdyaWZmaXRo ZWxtYW4= c2V0RGVzY3JpcHRpb24= IE5pZ2h0cw== Lm9yZGVycw== IGAsCg== IFNhbGFk amlhbmc= IHJlY3Vy IFNUQVRJQw== LXNwb25zb3JlZA== eWxlbmU= LGVtYWls X18pKQ== KSIpLg== Q0VMTA== YW1tZW50 TEFZ LHN0ZA== LnByZWY= LkNvcg== cmVkbw== IEZ1Y2tlZA== IHJ1c3M= IGVzdGFibGlzaGVz bnZhcmNoYXI= LkdldEZpbGVOYW1l IHBlbWI= IFNhdWQ= X3BhY2tldHM= Lmludm9pY2U= LmdldFRvdGFs SG9tZUNvbnRyb2xsZXI= IHTDtg== YWdoZXI= LmVudA== LkFic29sdXRlQ29uc3RyYWludHM= IGdlbnVz IEJhYnlsb24= IC4uLy4uLw== IE1pZG5pZ2h0 IHdn IGRhbmNlcg== LWltbQ== ZGlyZQ== aGF6aQ== Y2VydGlmaWNhdGU= IG1EYXRh IGN1cmVk c3Zu IkI= aWJyZQ== IGRyYWZ0cw== Q2FwaXRhbA== IGNvbmNpc2U= IFBlYWNo IHxc IHBwbQ== X2NvbnRhaW5z QXV0b3I= QXV0b1NpemU= X2xi IHNvbGVtbg== IGZpbmdlcnQ= IEluZGljYXRvcg== IFN2 UGFyaw== JHR5cGU= X01JU1M= YW5udWFs UGFpZA== bWFzdGVycw== IFdE IHZ1ZWw= IGVqYWM= CWdsdXQ= IHVuZmluaXNoZWQ= ZXN0ZWVt Z3JvdXBCb3g= UmVtb3Zpbmc= IGVpbmlnZQ== IFNjcmlwdHM= Z2V0dG8= LkhhbmRsZUZ1bmM= Il0pLA== IGRpc2FkdmFudGFnZXM= LWZyb250 PnA= c2V0T25DbGlja0xpc3RlbmVy IGxhbmRsb3Jkcw== IE3DvA== IHByZXByb2Nlc3Npbmc= KX0+ LWNvbnRleHQ= LGJvb2w= UVVJVA== ICIpIik7Cg== IFdlYnNpdGVz IENoYXJsb3R0ZXN2aWxsZQ== TGF0Y2g= LmRpcmVjdGl2ZQ== IEh1ZmZpbmd0b24= X2RpcnR5 ZXhwaXJhdGlvbg== IFRQTQ== IGVkeA== IFdlYkRyaXZlcldhaXQ= IGFkbWlyZWQ= IGxpc3RlbnM= IFZpbA== ZGlmZmVyZW50 IGxpdmVsaWhvb2Q= IFdhcmNyYWZ0 IHBvc2ljaW9u IGltcGVhY2htZW50 SmF5 IHBvc2l0aXZlcw== IGp1bmdl IFNNQg== L2luY2x1ZGVz KCcuLi8uLi8uLi8= QXJndW1lbnROdWxsRXhjZXB0aW9u ZGVzY3JpY2Fv QUJDREU= LUFB IGludmFkZWQ= IGFtZXJpY2E= dWVkZQ== IFBoYXNlcg== IHNjb3Jlcg== IGRpc2NvdXJhZ2Vk dGhpbg== IGFiZG9tZW4= IElQUA== IEhhbXB0b24= L0RlbGV0ZQ== W3NyYw== Q1N0cmluZw== IE51bg== IGVwaXRo 4oC7 LnRhYmxlcw== IEhlaW4= IHdoaXJs IGNsYXJpZmljYXRpb24= IHdlZGdl IGjDpHI= IFRpbmE= IHRod2FydA== IENvc3R1bWU= aW9uYWdl Q29k X2FjbA== IHJlc2g= IE1lcmN5 IERpeG9u IGRlc2Fycm9sbA== VmlyZ2lu KiopJg== IExlbm92bw== IGVyYXNlZA== ZW50aW9ucw== IHNsaXBwaW5n 5Zub IGNyYXZpbmc= cGxhbnRz IGdldHRleHQ= IG1hc3NpdmVseQ== IFJlbmFtZQ== Lmhlcm8= 44K7 IHRvbWFy IENPU1Q= IFByYWN0aWNlcw== Lk1lZGlhVHlwZQ== IEZ1bmRpbmc= RmluZQ== aWdlcmlh VW5j IHN3YXBwaW5n PicuCg== aW50ZXJw YXJ0aWZhY3Q= IEJhZ3M= LnZpZXdNb2RlbA== cXVvdGVk CUxvbmc= X1NDT1JF IHNhdnZ5 bmVsbGU= a2zDpA== Q291bnRz 2q8= RmllbGRUeXBl b2thYmxl IFJUTA== I2luZGV4 ICV7 IGFyaXN0 LkdldE1hcHBpbmc= KEFkYXB0ZXJWaWV3 PSIiKQo= IGRpc2lu IFRvdWNoYWJsZU9wYWNpdHk= IE1PWg== IER1bm4= Q2FwYWJpbGl0eQ== YWtoc3Rhbg== VUlWaWV3Q29udHJvbGxlcg== KHNvY2tmZA== IEphY3F1ZXM= PXRr YXJQYXJhbXM= Y29uZGE= IGFkdm9jYXRlZA== IHBlbmV0cmF0ZQ== SkVDVElPTg== IOuwmA== IEZJTkQ= IGVhcm5z YXBwZW4= 6rE= IHRocm91Z2hwdXQ= IHBlbnNpb25z IGZ1c3M= SFRUUFJlcXVlc3Q= bnV0cw== b2NodA== LWVzdGFibGlzaGVk IEFMSUdO IGpzcGI= RGlzcA== X2VtYmVkZGluZ3M= IHJlcHQ= IFlvcmtlcg== w7JuZw== IGpvdXJuZXlz IEFwcHJvdmFs CVNFTEVDVA== KEdyYXBo 0LzQuA== IGRvbGxz IHNleGlzdA== IHBhbnM= IG1wbA== IG9wZXJhdGl2ZQ== IFRvcnJlbnQ= WU0= IFBhc3Npb24= 5pat LmNvbXBpbGVy CUNTdHJpbmc= PWNvbG9y b3JpYW5DYWxlbmRhcg== IEtub2Nr IGhhaWxlZA== L3N0YXRl IHNldHVwdG9vbHM= IE1hcmU= IHN5bmNocm9uaXpl IFN3aXBl IGdhbWJsZQ== LCcnXV1dLAo= IGRlZmVjdGl2ZQ== X09CSkM= IGRlbmlt IHRhZA== IEtpbWJlcg== IG5ldXJvbG9naWNhbA== w6puY2lhcw== CWNi LnNldFBhc3N3b3Jk IFBsZWFzYW50 IFBoaQ== LXRhZ3M= IGNvbnRhZw== IENvcmFs IGRpc3RyYWN0 aXRpemVy IHN1bnJpc2U= c2V0SWQ= IENoZW5uYWk= IE9ncmU= X0hJU1RPUlk= UFJFU1NJT04= X1NVRkZJWA== ZHVwbGljYXRl LmF1dGhTZXJ2aWNl IHNwYWNlZA== IEJlbmdhbHM= U29sdmVy IGJ1cmVhdWNyYWN5 X2hpdHM= INGC0LjQvw== IGPDqQ== IGRpc2dyYWNl 6KeS aXNPcGVu Q2hlbQ== X2xpY2Vuc2U= X2hvc3RuYW1l X0JSRUFL IGZpZXJ5 OkQ= L2xpbnV4 VGl0dWxv UmFkaWFucw== aXpvbnM= UmFt b2RpYW4= aWFuZ2xl IG5pbmph RXZlcnlib2R5 KCI+ IHRha8W8ZQ== IGdyb3VuZGJyZWFraW5n IGRpcmln SFRNTEVsZW1lbnQ= IFVuY29tbWVudA== Y2hlaW4= IOeUn+WRveWRqOacn+WHveaVsA== JSIK IHRpcG9z Q2hhckNvZGU= IFByb2R1Y3Rv ZmFpdA== J2w= LXRodW1ibmFpbA== dXN1 X2Zvcm11bGE= LlRPUA== LmJ1eQ== IG1pZXV4 Q2VudHVyeQ== cGVp IHRic3A= LVBhY2lmaWM= b2dp IGZhdHRv IGZhbnRhc3Q= IFNBTEU= LmFkcw== IHBpbGxhcnM= X3RyaXA= IHR1YQ== IGFwZWxsaWRv LnNldENlbGxWYWx1ZQ== ICgoXw== IE5pbmE= PGM= aW5pdW0= ZGZ1bmRpbmc= LXdvcmtpbmc= IEVzdGFkb3M= IE1hbGk= PGY= dXJhbmNlcw== cGFnaW5h X1BL IHVuYXJtZWQ= b2dnbGVk Q2FuZGlkYXRl UmF0aGVy IGZyYW5jaGlzZXM= IGNvdmVuYW50 wqo= aXBwaW5lcw== R3Vu LWZlaXJh IGxpbmVhZ2U= X0dSQU5URUQ= Z2VucmVz LkVsYXBzZWQ= IGxhcmdv 0Js= LXJlYWR5 X3Byb2Nlc3NlZA== bGFuZ3M= w7ptZXJvcw== ZnE= L25wbQ== X3Nydg== IGF0dGVuZGFudA== aXZpZA== ZXZpY2U= QUJJ KGJpbmFyeQ== X1ZBTElEQVRF IGFkZEl0ZW0= X2NvZWY= YWxlYg== b2dyYXBoaWNhbGx5 Qm9yZGVyQ29sb3I= IGFzc2F5 IGNhdGNoRXJyb3I= IENocnlzbGVy b2do IGtleVZhbHVl ZGVjaXNpb24= LW9mZnM= IGxpZWd0 KERhdGFUeXBl IGlyaXM= IGV1cA== cmlnZXI= b25pY2E= IHJvcGVz IG5hcnJvd2x5 IFF1YWRy IGVwdWI= ZXN0aW5hbA== LXR1cm4= IGxhbmdz 55uR5ZCs6aG16Z2i IHF1ZWxsbw== LGFyZ3M= aWdhdGU= IFNlZW1z IGZvcnRl Q0xJ X0xPQURJTkc= LlJ1bGU= IHlvdXRocw== KHh4 IEFzc3VtaW5n YWdoZXR0aQ== KQoKCgoK IG9uT3B0aW9uc0l0ZW1TZWxlY3RlZA== T2NjdXA= IGRldHJpbWVudGFs IGlubmF0ZQ== IEJhcnJlbA== dWVuY2lh IG9uQmx1cg== IGxpYnM= W2xhc3Q= IGNwZg== LlRpbWVvdXQ= ZXN0YXRpb24= IHdpZWw= IHV0aWxpemFy IGRpc2d1aXNl IER1bQ== T0NJ T05HTw== ICg/LA== IFBhdGlv VmVydGV4QXJyYXk= LmF1dGhvcml6YXRpb24= cm96 IEhvcw== LlNwYWNl IFZpcnVz KGtleXdvcmQ= VE9DT0w= X0NPTlRST0xMRVI= IEJsb2NrZWQ= IENob3A= d2nEmQ== XFJvdXRpbmc= L3BhY2thZ2U= IHBlcnN1YWRlZA== YmVpdHM= TENE IG11Yw== X0ZPUldBUkQ= IG91dGxhdw== IHphdw== X3ZlaGljbGU= IEplbnNlbg== LkdyZWVu IC8vLy8v SVJDTEU= LWJ1c2luZXNz LkhpZGRlbg== IGtvbm50ZQ== cHE= IHBhcmVjZQ== IGxhbmRzY2FwaW5n IERlY29yYXRpb24= IEdSQQ== X3Byb2ZpbGVz IEZsZW0= Q0xJQ0s= IEZBSUxVUkU= IGlvbnM= X1RpbWVy LkRvZXM= IGJvdW5jaW5n dXBweQ== dWxpcw== L2Fn IEdhcm4= IGh1ZA== IHJlc3BvbmRlcg== IHN0cmNocg== IGNob2tl IHN0YXNo X2NoZWNrc3Vt IHN0YW1wZWQ= QEdldE1hcHBpbmc= LkJ5dGVBcnJheQ== IER5cw== YXRlcm5pdHk= KHJi IGVkaXRUZXh0 IGVyZWN0aW9u IGNlc3M= X2V2ZXJ5 X2dhdGV3YXk= ICciLg== IHN0YWZmaW5n IGludm9pY2Vz aW5pY2lv fV0sCg== LHZhcg== eWNpbg== IERpb24= ICUlCg== Jywo LXNwYW4= IHRow6BuaA== IGJvcm5l IEthdGhsZWVu 6L+e5o6l X2N1YmU= IGluZm9ybWHDp8O1ZXM= bmdlcg== L0ZpbGU= IGRhcmE= IG1M KioqKioqCg== IG1hcmtpbmdz YmJl IHJlY3VycmVudA== IFJhbmtpbmc= X2ludGVncmFs XT4K IHVuYW5pbW91c2x5 IGRpcGxvbWF0cw== IElPUw== OyI+PD8= IE1hdHRl IFJhbGVpZ2g= IEltcHJvdmU= ZXhpc3RlbnQ= IGZha2Vy IEhpZ2hsYW5k c3RlbQ== LW1z TGlzdE9m Lkxpc3RlbmVy KHdhaXQ= X1JTVA== VW5h IG9jY3VwYXRpb25hbA== LW1lbW9yeQ== IFN1cmY= IGJydXRl X0VsZW1lbnQ= ZGRkZA== IERlY3Jl LnBzaQ== LWRldmVs IE9uVHJpZ2dlckVudGVy VG9EZWxldGU= IGhlcmFsZA== IHNvY2lhbGVz IGJvb3N0ZWQ= Lkl0b2E= KiI= IGFudGlkZXByZXNz IE1hdmVy X18pKQo= KER1cmF0aW9u ZXN0YXRl YnJhdGU= Q2xh IOS4ig== 65CY cmnDqHJl YnJlYWtlcg== X2xlZw== fWVsc2VpZg== X2Z1bmNz dcOt LnBhZ2VZ Y3JlYXR1cmU= IGNhbm5hYmlu IEFzdHJv bG9jYWxz IExBUw== X2NvbnZlcnNpb24= IENSVUQ= LnNraWxs IHN0cmF0ZWdpc3Q= LnBvbA== KHNlZ21lbnQ= IHBlZQ== fSIpOwoK LnByZXZpZXc= SmFt IGhlZnR5 aXZhdGluZw== R3JpZENvbHVtbg== IGN1ZGQ= IGluamVjdGlvbnM= IE5JTA== LW9sZHM= ZmxhdGlvbg== IExlYWZz IHNwaGVyaWNhbA== IGZhbGxvdXQ= YW1pbmVy IDo6PQ== LnBvaW50ZXI= LU1hcnQ= IG1hdHRl IGNvcXVpbmU= IGRpc2NvbnRpbnVlZA== IFJFR0lPTg== LlJpZ2h0VG9MZWZ0 IHNxdWVlemVk X1BPSU5UUw== YmVzdG9z LWxhc3Rpbmc= KHV0aWxz PEJhc2U= IHBhcmRvbg== U3RyaWRl Y2Ry IG5hcnJhdG9y dm9sdXRpb24= IHVzZXJJbnB1dA== X2NvbnRhY3Rz KGVuZW15 IENoYW1iZXJz emllbA== IGJsb2NrU2l6ZQ== QW5pbWF0aW9uc01vZHVsZQ== IGltbWVyc2l2ZQ== IG91dGluZw== dWVzdG9z VHdlZW4= IGtlcA== IHLDqXN1bHQ= IEJvbGx5d29vZA== RExM IFN1cmVseQ== LlJvd1N0eWxl KHRt X2dlbmVyYXRpb24= IFN0aXI= IGRhdGFTbmFwc2hvdA== Y2h1cmNo IGNvbmZpZGVudGlhbGl0eQ== X3N1c3BlbmQ= dmlw IEthdGh5 44Km IHZpb2xlbnRseQ== cGV0cw== IG1lc3NlZA== IHRleHRib29rcw== ICAgICAgICAJCQk= 5raI5oGv IExhcmF2ZWw= IEFyY2FkZQ== IGVudGg= IGJlbmlnbg== X0RST1A= LWVuYWJsZQ== 4oCdKS4= dXZ3eHl6 X2xpc3Rpbmc= IE5JQw== 44GV44GE KCIuIiw= LXJvdW5kZWQ= LXBhY2Vk cGF0cmljaw== U2VsZQ== LmdldEZpcnN0 LkVYSVQ= ZXRlcm1pbmF0ZQ== R3JhbQ== Ly8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq LmV4dGVybmFs IHdyb25nZG9pbmc= IEVsbQ== IHNhbms= VGVlbg== IFRob21zb24= cHJpb3I= amV0YQ== IEFEUw== IFBlcnNpc3RlbmNl IEZvbGs= e1wi Ym9uZA== X1NQRUNJQUw= X0xBVA== b25la3Np IG1vdGhlcmJvYXJk IHNoZWFy RnVsbFNjcmVlbg== Kks= KEJsdWVwcmludA== TWV0aG9kSW5mbw== QmVjb21l IGhhaWw= IERvYg== IGdlbmVyb3NpdHk= ID8iOwo= IHdoaXNrZXk= IHRoaW5uZXI= IENw IGludGVyc2VjdGlvbnM= Q3JpdA== cmFpc2Fs cmVmZmVu V2hlbmV2ZXI= IGNvbW1lbmNlZA== VHJhbnNmb3JtYXRpb24= L3dyaXRl PSIiIg== KGxk IG5vcnNr QU1FTlQ= LnNoYXJlZEluc3RhbmNl X2hvdXNl IGdsRW5hYmxl 6L2v IG5hbw== IGRlcG9zaXRpb24= IGRpbm9zYXVycw== IHRpbWVTdGFtcA== X18pOwoK LlJpYmJvbg== IExpbmRzZXk= OnVzZXI= IMOA X2Zvcm1z bWluYXRpbmc= IE9saXY= IGTDqWJ1dA== YmFyY29kZQ== c2ltaWxhcg== IHBsYXRlYXU= IGluZGVt UmVhbG0= IGZlcnRpbGl6ZXI= IGNhcGU= IGNoYW1wYWduZQ== IHNlbGZpZQ== IHBsYWlubHk= IGNhdGFzdHJvcGhl IGJldHJheWVk dmVyc2libGU= VXBkYXRlVGltZQ== Lk91dHB1dFN0cmVhbQ== Ymlhc2Vk Ym91bmNl IFNwb3J0aW5n Q29vcmRpbmF0b3I= ZGV2ZWxvcGVycw== IHRyYWNlcg== IG11c3RhcmQ= U1E= X3Rlcm1pbmFs IGNvb2xlZA== IGF2b2lkYW5jZQ== TG9naWNhbA== IHllbGw= X3JvdXRlcw== IGFydGVyeQ== IEJlYXJpbmdz Lm12cA== LkdVSQ== VUlTY3JlZW4= eW1t aXTDpA== KClbIg== IEF6ZXJiYWk= IGNvbmRpdGlvbmVy IHdhZw== IHNjYWxw dmluY2lhbA== b3dsZXI= LicpOwoK QkxVRQ== IMKnwqc= Qm9zdG9u IExpbmtlZEhhc2hNYXA= RG9jdW1lbnRhdGlvbg== LkxlcnA= IGRlbm5l IGhlc2l0YXRpb24= IENlbGVicml0eQ== IEh5ZGU= IGNvbW1hbmRpbmc= YWNlbGx1bGFy IHBhdmVtZW50 IEhhbW1vbmQ= YXNzaWM= UExVR0lO IHJldm9rZWQ= RG9jdW1lbnRv LnBob3Rvcw== IFdpbGxvdw== IFZpa2luZw== IHVwZnJvbnQ= IExpZmV0aW1l ICVb RHJlYW0= 5aS0 IGFjY2VsZXJhdG9y UGVyc29uYQ== X3RvcGljcw== 77yJ44CB IChfLg== IHPDqWN1cg== IEt3 X2Nhc2g= IHNvb3RoaW5n IExvdmVseQ== IEhlcnM= ZWxvbg== TElDRU5TRQ== X2NhY2hlZA== LnNoYQ== UkZD LkZpbGVJbnB1dFN0cmVhbQ== LUFs IHVzZXJMaXN0 IG7DpHI= SGlsbGFyeQ== IHBhZ28= LlBsdWdpbg== IENvdmU= X3lhbWw= X3JzcA== J3Bvc3Q= LWR1cmF0aW9u IHNlbnRpZG8= IG1pbkhlaWdodA== IHR1cnJldA== LWVuZXJneQ== IOeJ 0YDRg9Cz b3RlY2E= X3F1YWw= U2VsZWN0aXZl IEJFTE9X CWFkbWlu IH19LAo= J3VzZXI= U1ZH IGN1bG8= KFdvcmxk LWJpbmRpbmc= bmJy IFNlbmRz IHN1cHJlbWFjeQ== IHNrYXRpbmc= IGNyZWVr IGFjY3VzYXRpb24= YXBnb2xseQ== LklERU5USVRZ IG1hbmRhdGVk IGdvd24= IHdpZHRocw== IExTVQ== L3ZlcnNpb24= IFJlYWRlcnM= IFJvbmFsZG8= IGJhZmY= IGA7Cg== R0xJU0g= KGRvdA== IE9wZXJhdG9ycw== LlNjZW5lTWFuYWdlbWVudA== bWVyYw== X3JlcG9ydHM= LWNlbnRyaWM= IENlaWxpbmc= PXsh bW9ueQ== IEFERFJFU1M= 5a+56LGh TWF0Y2hpbmc= IHVuaw== IGtleUNvZGU= ICcvJyk= KWRhdGE= IFZvbHVudGVlcg== IGxheg== IEd1YW5n IENhbmRpZGF0ZXM= RW5zdXJl aWFnZQ== c3VjYw== Q2VydGFpbg== IGxlZnRvdmVy aW5pbg== LWVsZW1lbnRz cGlrZQ== IHNsaWRlc2hvdw== LnRvb2xTdHJpcFNlcGFyYXRvcg== LnBoYXNl IGVudGVydGFpbmVk IENhcnJpZQ== IE1vaGFtbWFk LmxvZ2dlZA== IHNjcm9sbFRvcA== IEFiYmV5 aW1vbnk= KHJlc3VsdFNldA== IGFkaGVzaXZl X0RBTUFHRQ== IGlvY3Rs YnJvd24= SU5TVA== LkNsb25l IGxvb21pbmc= RGVzZXJpYWxpemU= IGx1eg== cXJzdHV2d3h5eg== LmlkZW50 SGVhdnk= IGRpbw== 5piv5ZCm IEZ1cm4= 6YKu emltbWVy 44O844OJ c3BlYWtlcg== IEdlZA== IHVuaWRlbnRpZmllZA== SW50ZXJmYWNlT3JpZW50YXRpb24= IFN1cnZpdm9y ZGVlbg== IEJvcmc= dG9Eb3VibGU= X2J3 IHB1Ymxpc2hlcw== X0FMRVJU YW5ncw== aWVyZXM= IGhlaQ== IElDb25maWd1cmF0aW9u IGNvbnN0aXR1dGVk V0FUQ0g= cHJpdmF0aW9u IEdyYW5pdGU= LlRleHRBbGlnbm1lbnQ= X2t3 OyIsCg== Y290 IE5ld2Fyaw== cm9hY2g= KW9iag== Q29tcGlsYXRpb24= Q2F0ZWdvcnlJZA== LnNldFVzZXI= aXZ5 IEltYWdpbmc= aWdodGVk IHdnZXQ= IG1vdXRocw== Lmxpbg== IFJhZGlvQnV0dG9u LkNtZA== c3Nl IG1lc2hlcw== IFNvbGU= LnJlY29yZHM= IGFudGlz KG1vbg== INGH0LjRgdC70L4= gq0= IOyeiOuKlA== QWxsQXJnc0NvbnN0cnVjdG9y IHN1cnJlYWw= IE1hcnJpZWQ= IHhwYXRo XGY= QnJpbmc= IHlhaG9v IEV0c3k= X2RhaWx5 IHRocm93YWJsZQ== IFBsYXNtYQ== L1B1YmxpYw== aW1pemVCb3g= IHZlcw== IHRyb20= X3Jocw== LWFscGhh IEFyYm9y KSkt RmlzaA== ZmVlZHM= IGNhbGY= IFNlcmdlYW50 KGVudW0= IFJhbXNleQ== IElkZW50aWZ5 LmluaXRTdGF0ZQ== IGZsdWN0dWF0aW9ucw== X0FUVFJJQlVURVM= IHB3bQ== RVNB Y3Bm U2ltdWxhdGlvbg== IHlvdXRoZnVs IEluZmFudHJ5 IGdsYW5jZWQ= IFByb3Blcg== 5LmJ IEtyYWZ0 Q2l0 b29wcw== PXVybA== cG9zdGluZw== ZGVjbGFyaW5n IHBOb2Rl SmF2YXNjcmlwdA== CQkJCQoJCQkJCg== LmNvb3JkaW5hdGVz cmlldA== IFNx X0NBVA== IFBhcGE= YW5kaQ== Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v TWVldGluZw== IOyekA== SW1hZ2Vu w6lyaWVuY2U= QWdncmVnYXRl LnBvbHk= IHdhdmVk IGludmVycw== c2VhcmNoTW9kZWw= IHRyb2xscw== W2xldmVs IExvd2U= dWxsbw== KHBsYWNl IE5BU0NBUg== IG9yYml0YWw= LnN0b3J5 IGF1dGhvcml0YXRpdmU= LnRleHRWaWV3 IGFscGg= X3JlZHVjZQ== IEZyYW1lcw== IEJyb20= cmVkaQ== KE1ldGhvZEltcGxPcHRpb25z bWFjZW4= VG90 IG1pZGQ= 2Y8= IEJhc2VNb2RlbA== IFZlZ2E= ID8+Igo= IFJpZ2lkYm9keQ== LnNldENvbnRlbnRUeXBl YWFT QmFzZWxpbmU= IGJsYW5rZXRz c2Fw IGNhc3VhbGx5 VW5pdmVycw== IFRyYXk= IEFpcmVz IG1heFk= X1BST1BFUlRJRVM= IGhlbG1ldHM= wqY= X2Rlc2Ny c2hpbnQ= X0NQUA== dW1v YWRheQ== KHBsb3Q= ZW56eW1l IEV4Y2VwdGlvbnM= X3Zpc3VhbA== Ol0KCg== KHRhcmdldEVudGl0eQ== cGhlcmVz dW5hbg== IHNlbG9u d2ls IFJlbmRlcmluZw== S0M= IGNvbnN0aXR1ZW5jeQ== U0NSSUJF ZXN5 IEZlbGxvd3NoaXA= 5Y+4 IGZ1dHVybw== IGFybW9yZWQ= bGlzdGU= b3Jhcw== bXVsdGlwbHk= Z2VtZQ== Y29lZg== 0L7QsdGA0LDQtg== IERlbGl2ZXI= ZW5nbw== LnVzZXJTZXJ2aWNl T05VUw== Lm9ucmVhZHlzdGF0ZWNoYW5nZQ== ICIvIiw= YW1iaW8= X1Byb2plY3Q= Jyk/Pg== IGZsaXBwaW5n d29tZW4= LkNyb3Nz IGhvbGxhbmQ= IGNpbmVtYXRpYw== IHdoaXN0bGVibA== IGxpbmd1aXN0aWM= LkdldHRlcg== IG3DpG5uZXI= IExlZ28= IFNjaHVtZXI= YXNzZXNzbWVudA== X2Noaw== IHJlY29tbWVuZGluZw== LnNjYWxh IEd1YXJhbnRlZQ== IEBf LkFVVEg= IHlQb3M= bGF0ZXg= IEFsYmVydG8= 5q2l dGhvcmE= 4Li34LmI VVJMRXhjZXB0aW9u R2hvc3Q= LlRvb2xiYXI= IGVuZGlhbg== 6Zeo c3RyYWN0aW9ucw== RmlsZU5vdEZvdW5kRXhjZXB0aW9u IHN0aW11bGF0aW5n YnNlcnZpY2U= YXTDs3Jpbw== aXRpb3Vz IGF1dGhTZXJ2aWNl X1RSQU5TRkVS IHJlZGlyZWN0VG8= IG1lbnNlbg== IFNQTA== IMK7LA== IGFjZXQ= X0JhY2s= 4KSV YWFj IFJpb3Q= X0ZC IFph UGxhdGU= IGxhYmVsVGV4dA== INCy0YDQtdC8 aHRvbg== IE1jQQ== IEFwcGVuZGl4 IEtvaw== IGludGVydmlld2luZw== X3NwZWxs IFN1YmplY3Rz IGJ1cm5lcg== 5a+8 aWxsaWFu IGJ1bXBz UGFzc2Vk IENvbnRyaWJ1dG9y WW8= Ymxh IHNvdXQ= LmV4Yw== Tm90aWZpZXI= c2hpdg== LlVuaXRUZXN0aW5n dWVsbGVz X1NMRUVQ CW9wdHM= IHByZXNjcmlwdGlvbnM= IHJldmlzZQ== RURJVE9S IGFubsOpZXM= X3BrZw== IFRyYWNrcw== 4LmI4Liy PWZvcm1z LlJVTg== IGFzZWc= IHDDoQ== IGplcw== R3Jl YWNy T2ZmaWNpYWxz dWtlcw== Y29tcGFuaWVz XFF1ZXJ5 IFByaW50YWJsZQ== 5a6i X1ZP IGRlaXg= IGRldmljZUlk IGRpc3R1cmJhbmNl bmlzdA== Lmlzbw== cGFyYWxsZQ== LWRlc2NyaWJlZGJ5 IExpZg== IGJyZWFzdGZlZWRpbmc= IGZlbWluaXN0cw== bGVncm91bmQ= IGRhbWU= IGNvbXB1bHNvcnk= TUVSQ0hBTlRBQklMSVRZ LXJlc3VsdHM= Zm9ybWVkVVJMRXhjZXB0aW9u OlsK LWludGVyZXN0 IHPDpA== IG5vc3RhbGdpYQ== IGNsYXJpZmllZA== IFBIT1RP IHJldmlzaXQ= IGNhcHN1bGVz IHNoaW5lcw== IGNyYWZ0c20= c3ViamVjdHM= ICAgICAgICAgICANCg== 5LiN6IO95Li656m6 IFNjaHdhcnR6 cmV1 IG1hZHJpZA== LnBlbmRpbmc= IExJTg== IHVuc3Q= CW12 IHZpdmFzdHJlZXQ= IHNwb2ls w7hq 64u5 IGJ1ZW5h IGRpZ2l0YWxXcml0ZQ== c3Vicw== IFVOSVZFUlM= IFN1aWNpZGU= PEd1aWQ= LmVsZW0= X2NvbnN0cnVjdA== IGFtaWRzdA== IOuP LWVzdGVlbQ== IEludGVncml0eQ== LmZtbA== T3V0T2ZCb3VuZHNFeGNlcHRpb24= LVNlbWl0aXNt QmV0YQ== LWdvaW5n U2VnbWVudHM= IE1hZQ== IFBlcnNvbmFsaXR5 dXJiYXRpb24= 5Y+z IHNlcnZpY2luZw== IGJpcG9sYXI= X1NUQUdF LkpQRw== Jyl9fSI+ aXNobHk= SVZFUlk= IEluc3BpcmVk LnNlcnY= KGRhdGFz IGRpdmlkZXM= PFJlYWw= dmVydHVyZQ== IG1vdGl2YXRpb25z dmVydGU= RU5DSA== ZmRz IHJldm9sdA== d2VidG9rZW4= aW5zdGVhZA== CW9wdA== IE1hcmlqdWFuYQ== X2FkYw== YmFv W1NlcmlhbGl6ZUZpZWxk IGdyYWZmaXRp LWFvcw== ZW1pYWg= IGbDrXM= IGV0aGlj J2FsbA== OmtleQ== 65Ok IHJlc3RyaWN0aW5n IFhIVE1M ZXJlbw== dW5kb3M= CWVuZGlm WzosOiw= IHN0ZWhlbg== YWtoaXI= IGp1aWNlcw== ZGF0YVNvdXJjZQ== X21r LmRlbGV0ZWQ= Q29uZ3Jlc3M= aW1tZWw= RWxlY3RyaWM= YW9z IE92ZXJsYXk= IEFDTFU= cm5k ZXNzZXM= IEx1eGVtYm91cmc= cGFyc2VGbG9hdA== IGd1dHM= Y2xhc3NpZmllZA== IGRlZlN0eWxl IFRjcA== cGVhdGluZw== Q2hhcnRz X3Vy X2xhdGVzdA== KSEK Y2F0aW9u LkdldGVudg== KGxvb3A= IHVubA== X2R0eXBl emXFhA== KEpOSUVudg== LmZldGNob25l IHNpZ21vaWQ= IE9MRA== IE1pbmlzdA== 7YE= IEvDtg== IGZyYWN0aW9ucw== IHNpeg== PT09PT0K LlByaW50V3JpdGVy X0FkZHJlc3M= IEF1ZGllbmNl Q29tbw== IEJydWlucw== LmFjdGl2aXRpZXM= IGFuY2VzdHJ5 0YPQu9GM0YI= CVJldHVybg== cHVu IGdyYXBlcw== SUxvZw== IGRpam8= IFBlcmtpbnM= IFZNd2FyZQ== X2F1dGhlbnRpY2F0ZWQ= w650cmU= b3ZlcndyaXRl IEhk IGdhbGF4aWVz YWNodQ== SHJlZg== W0Q= IHBhcmNl TGF0TG5n X3BhdHRlcm5z IFNIT1JU IHJ1bW91cnM= Y291bnR5 IEdSSUQ= IFsv IFNreXJpbQ== RGF0YUdyaWRWaWV3VGV4dEJveENvbHVtbg== IGNlbg== IGN1Y3VtYmVy LklOVA== X0NPTkZJUk0= IGN0bA== cGVybA== aWxsb3M= IEFDQQ== IEdlb3JnZXRvd24= X2NhbGxhYmxl IENyYWZ0cw== L2Nv IGluYm91bmQ= IFRlY2huaXF1ZXM= c2V0Q2hlY2tlZA== IHBuYW1l Y29tcHV0 U3RlZWw= IGhhbmRoZWxk IEFsYW0= YWJzdHJhY3RtZXRob2Q= 6aKR SU5Z YmF0dGxl X0VWVA== IGNldXg= IGF0b2Y= IEFieXNz X3ZhbGlkYXRvcg== IGhhaXJz VmVydGV4QXR0cmliQXJyYXk= IGNvbW1vbnM= LWJpbmQ= TXVp IGNvc21ldGljcw== IG1pcmFj Lm1hcmtlcg== U0NBTEU= LldvcmQ= LXVs IERpdmVyc2l0eQ== IEREUw== LmN3ZA== X3h5eg== IENvbXB1dGVz KGNsaWNrZWQ= VEVNUExBVEU= IHpvbmluZw== IGZpbnM= IFBK ZXh0Vmlldw== Q2hhcmFjdGVyaXN0aWM= aWdhdG9ycw== IHByb2NsYWlt IHByaXN0aW5l IGRhdGFzdG9yZQ== IGRpc2NvdXJhZ2U= X25zZWM= IG5pbmV0ZWVudGg= IGNlbHVp Sm9uYXRoYW4= IGFtcGg= IENyb3NzaW5n IEh1bWFucw== IEJvb2tlcg== w6JjZQ== Z2V0UG9zdA== IE1vbnRlcg== IEZsYXZvcg== TWVkaWFUeXBl IuKAlA== IEFyY2hhZQ== QHJldHVybg== LWF3YXJl b3J1 LVRoZQ== YW1wbGVk S0Y= LlRlbXA= IERyZQ== KHtf cG9seWdvbg== IMOm IERlZmVuZGVy 77yY Xyks LlVuc3VwcG9ydGVk X14o KElEQw== JHY= IHdvcnRobGVzcw== IFNFRw== aWxpa2k= Tm9BcmdzQ29uc3RydWN0b3I= IE1lcmNo IG5vcA== IGZvcmdldHRpbmc= IGRvcGFtaW5l anVhbA== ZW9u IFJlYXNvbnM= c29ydEJ5 KCctJyw= LXN5bmM= ZWNlZG9y S1A= KGNvb3Jk KENoYXQ= XCQ= ZXN0cmluZw== Y2Vm LmhhbmRsZUVycm9y 24zYrw== 0YHQug== IGhhbmRj ZWxpamtl IFNwaXI= IEJ1Y2tz IFFSZWN0 U2V0Rm9udA== LmV4ZWNTUUw= OjoKCg== IHN1aWNpZGFs c2VlaW5n IGNpZGVy UHJvZ3Jlc3NEaWFsb2c= IG1vbGRpbmc= CXRyYWNl IGVtcGhhc2l6ZXM= IG11bHRpcGxlcw== X1BU X091dHB1dA== Y2FwaXRhbA== TmVlZHM= X0RJUkVDVElPTg== LmlzVmlzaWJsZQ== IHJlc3Rl IG92YXI= KHNoYXJlZA== LWNvbXBvc2U= LmJhY2t3YXJk CXJlY3Q= QW1hemluZw== LmRpZFJlY2VpdmVNZW1vcnlXYXJuaW5n U0VSVklDRQ== IEluanVyeQ== QnJhaW4= IGF1c2dl KHBl Ly8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKio= b3JwdGlvbg== X01BSUw= b2hh IHNubw== IGJvaWxlZA== aWxkZW5hZmls IFdlbGZhcmU= IFF1YXJ0eg== IGNhcHRjaGE= IFdFU1Q= IE1hemU= IGdyYXBoZW5l IHBlcms= IG1pc3RyZXNz LkZvcm1TdGFydFBvc2l0aW9u IGV4cGVyaW1lbnRhdGlvbg== KikoKA== IGJyb2FkY2FzdHM= IHJlbW92ZUFsbA== CUdVSQ== 5YOP YWJjZGVmZ2hpamtsbW5vcA== IHVuaW5z QVNQ K3c= bXVy IGRpbmU= IGFyb3U= IGVzY2FwZXM= IFRvYmFjY28= Lm5hbWVk IFBhdHJlb24= X0ZBQ0U= X3NwaW5uZXI= bW92aW5n X3ZvdGVz T2hpbw== LmVuY29kaW5n RGVncmVlcw== IlRv IHByZXN0aWdl b3NwaGVyZQ== IExhbmNhc3Rlcg== 77yX IG9uQ2FuY2Vs IEhJUw== 0J7RiNC40LHQutCw IG9yY2hlc3Ry IHJlZnJlc2hlZA== RGF0aW5n KG11 IEplZA== IEVkaXRvcmlhbA== U2V0QnJhbmNoQWRkcmVzcw== Q3BwVHlwZURlZmluaXRpb24= IEJyb254 IGdhdGhlcmluZ3M= ICcnDQo= cG9zdERhdGE= IEZyYW0= Q2xpcGJvYXJk IFhQYXRo cmF5cw== IGJha2VyeQ== IHJvd0NvdW50 IGxvd3M= YW5kV2hlcmU= X3ZlcnNpb25z IEd1bm4= IHdlZXI= IGNvbnRleHR1YWw= IEtleUNvZGU= IFNhc2thdGNoZXdhbg== IFBoaWxseQ== IE1vdXRo IGRvUG9zdA== IHBlcmNlbnRpbGU= IGJ1ZmZlclNpemU= KGZyZXE= JHNtYXJ0eQ== aWVydGU= aXNzYW50 X2Zwcw== IGludGltYWN5 X2Jvb2tpbmc= IGRlY29tcG9zaXRpb24= dW5pY2lwaW8= IE5TSW5kZXhQYXRo IEtS IHR1cmJpbmU= LXByb20= X0NBUlQ= KGNvb3Jkcw== ZWNvbQ== IGNvd2FyZA== IHdheXBvaW50 LUNvbGE= IHByb2ZvdW5kbHk= IEVSUA== Ym91bmRhcnk= IHBvb3Jlcg== L2V4YW1wbGU= IHJlbmNvbnRy IG5pY2Vy 54E= LWNoYWlu IEVudGl0eVN0YXRl IGdyYWRpbmc= QUxJR04= IFBpY2tz LmFr LXZlY3Rvcg== IEVudHJpZXM= IFNlcmdpbw== ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq T0RC IOW9 IGNvcm9uYXJ5 IHNoYXZlZA== IGFxdWU= ZW1wbG95ZXI= IHBhcmNo IG1lYXN1cmFibGU= IGJvaXM= am9pbmluZw== IHZvbGNhbm8= Ok0= LnRocmVzaG9sZA== IERveWxl dmVyYm9zaXR5 IOKWug== IHNwb3VzZXM= IHJlc3VtZXM= TmF0 ek0= X0VuYWJsZQ== IFVTRUQ= IENhcmV5 CWZw UGF0cmljaw== IE9zdw== UG9zc2libGU= LmxlYWRpbmc= YWhydW5n 4pmqCgo= CQkJCQkJCQkJIA== 44CC44CM LmFkZEVkZ2U= IGVjeA== J0xCTA== IFRDTA== IGJpcnRocw== IHRoZWF0cmljYWw= IHBpag== Z3JlYXRlcg== IEZTdHJpbmc= QkVE 7ZmY LkNhc3Q= Q1g= L01haW4= cGVhdGVy IHBlcnN1YXNpdmU= Y29udG8= eGxzeA== X0FCUw== IEJ1bg== bWFuYWdlZFR5cGU= 0LPQvg== IFNjYWxh cmFkb3I= IHJlY29nbml6YWJsZQ== dHJ1 IHRq XE1hcHBpbmc= X0JPQVJE IHRvSnNvbg== IGJvd2Vs KWQ= J30p KGhXbmQ= aHJz Y2FudA== X18oKQoK IGludGVycm9nYXRpb24= bGljYXRpdmU= CQkJCgo= IFR3aW5z IEFP QmlyZA== ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg cGVyaGFwcw== b2ZpbGU= IHBlbmM= IHRyZWVOb2Rl IHRvcGljYWw= LXByaXZhdGU= 54m5 IERpc2N1c3M= IGRlc24= UnVh LlZFUlRJQ0FM 44CN44Go SUZPUk0= IGNvdXJ0eWFyZA== INGB0LXRgA== ICMjIwo= IGVtcG93ZXJpbmc= IEZhY2lsaXRpZXM= XCIsXA== vZQ= Ok9iamVjdA== IFZvdGVz aXNlbA== IGV1Y2g= b3JzdA== KENsb25l LmNvb2tpZXM= JHRtcA== KGluZGljZXM= ZXJnZW5jeQ== IHBsYWd1ZWQ= IERpYQ== eWNsaWM= fSkp 6rK9 IGR1ZWw= IGhldGVyb3NleHVhbA== LmFkZENvbXBvbmVudA== U0VDUkVU bGVybw== Y29uc3RyYWludHM= IGdldENvbm5lY3Rpb24= IExlYmVucw== IFBvbg== IENocm9uaWNsZXM= ICAgICAgICAgICAgICAgICAgICAgICAgDQo= IE1vdXJpbmhv IG9jY3VwYW5jeQ== X3NsYXZl T1JJWkVE CVk= LmhpZ2hsaWdodA== X3NlbnNpdGl2ZQ== IHNwZWN0cm8= LmVuY3J5cHQ= IHNwb2lsZXJz LlNpemVNb2Rl IHByb2Zlc3Npb25hbGlzbQ== Pklu RXhwaXJlcw== QXU= IEhWQUM= cmVsYXRpb25z IEFUSw== X0dFTkVSQUw= IFNpZ2h0 IGtpdGNoZW5z OlJlZ2lzdGVy IGVkbQ== IHRvbGVyYXRlZA== IFNFU1NJT04= aWVyeg== IElOU1Q= LnBhdGhz IHBlcnBldHJhdG9ycw== ZWJw cGVjdGluZw== ZWR1Y2F0ZWQ= IFBpb25lZXI= X1JFVg== IGJ1c3R5 c3RhdHVzZXM= UmVzcG9uZA== c2h1ZmZsZQ== IFRpbmRlcg== RXhhY3RseQ== aWxsaXNlY29uZA== INC30L3QsNGH0LXQvdC40LU= KEFjY291bnQ= LiY= aXpy YXNzdW1pbmc= CU9wdGlvbmFs U2VuaGE= IGVucm9s dHVy IGFycm9nYW50 IEpPYmplY3Q= b2xpdGhpYw== bWFwcGVk IHRpcHBlZA== LlVQREFURQ== w6htZXM= R05VQw== V1g= IG1vbmtz LmJvcmRlcldpZHRo IFNodXRkb3du IEhhcm1vbnk= Y2xhc3NpZmljYXRpb24= IGRlcXVldWVSZXVzYWJsZUNlbGw= IF07DQo= Lkdlbg== IGxhdm9ybw== IExlb25hcmRv ICYp IGRlcG9pcw== IFZvbHQ= RXRo IExlb25l IE5lZGVybGFuZA== IEVYVFJB UmVzb2x2ZWQ= IHBlbmluc3VsYQ== X1ZN R2Vy 2KfYrw== LnByb21wdA== LmFsaWdu aW5nZ2E= ZmlsbXM= SEFORExF IGNhcnRz KFNvbWU= PEF1ZGlv IGVubGFyZ2VtZW50 IGdyb2Nlcmllcw== LWhvbGRlcg== IGlycml0YXRpb24= Q29tbXVuaWNhdGlvbg== IHByaW1hcmllcw== aHR1Yg== X2luaWNpbw== IGNvb3JkaW5hdGluZw== KHF1 IGZhaXM= IHZpc3Rv Z3VpZGVk IHZsYW4= IGVzcHJlc3Nv w6h0ZQ== c2VoZW4= X3Blbmc= IHJvb2Zpbmc= IEFsaXZl QXhpc1NpemU= IHN0dW4= IHJlc3RlZA== dWxsZXRz IE1hbGF5c2lhbg== LFVuaXR5RW5naW5l IGVudnk= J107DQoNCg== IE9zdA== X2p1bXA= IGNvbnRyYXNlw7Fh Ing= CVBhZ2U= KVsi IFNJUA== IEdlb2dyYXBoaWM= IGNhdWN1cw== X1RFUg== 4oCdOw== UG9zdEV4ZWN1dGU= aW1zaG93 IENPTVBBTlk= IE5lYWw= IEhlYXJpbmc= KGFjdG9y Qmlk LlBS LlByb2R1Y3Rz IEVtbQ== IOab IHB1bHNlcw== X0VW L2V4cA== X21vdGlvbg== IGdiYw== IG5hdmlnYXRpb25Db250cm9sbGVy IENvdXJ0cw== IEljb25EYXRh d3U= X3Jm IFJhZ2U= LWZsYXQ= IEhpbXNlbGY= X2NodW5rcw== IG92ZXJzaA== IGNpZg== KElz cGVha2Vy IENQVXM= aXJlY3Rvcg== LHRpdGxl LnNldERlc2NyaXB0aW9u IGVhcnRocXVha2Vz IHdu Z2x5cGg= dWx1bWk= IHNwZWVkeQ== IGVzcGFjaW8= IGVtdWxhdGU= IFwiJA== X0lORg== Y2FsbG9j LXF1ZXJ5 KHZhbHM= IHNlYWI= IGhhdm9j IEludGVyc3RhdGU= IHRyaWFuZ3VsYXI= YmluZGluZ3M= CQkJCQkgICAgIA== IAkg YmNyeXB0 IGNyZWRpdG9ycw== IHNlbWlm bGxl aWVuemE= IEtlbGxlcg== IG1vbnN0cg== IE1hcmNvcw== KHJlaW50ZXJwcmV0 IGhpdmU= U2Ny X2hyZXN1bHQ= IOyhsA== IFNxbERhdGFSZWFkZXI= YW5ub3VuY2U= X3ByZWZlcmVuY2Vz IHRydXN0cw== RXJvdA== LXdvcmtlcg== IHR3ZWVu IFN0cmVldHM= gq3soJw= IEZyYW56 IOKApi4= VUlUZXh0RmllbGQ= LmdldEl0ZW1z IHRvbHVh 4oCcT3Vy IHPhu5E= IHZpcnR1ZXM= IHBvdWx0cnk= PXJvdw== Y29kZWQ= Tm9TdWNo IGtvZA== bHNp IGtldG8= IGdyb3VwTmFtZQ== YXNu IHVuY29tcA== IHRleHRpbGU= dG9vbFN0cmlw LlBvcGVu IHByb3N0aXR1dGU= IHByb21vdGVy Ijt9Cg== IGNvbGxpZGVy QnJva2Vy ZGF0YXNldHM= CU5TU3RyaW5n YW5nbGVy UklFUw== YXRvbXM= IHJlbmRleg== YXBv IOuE Lmdj IFNPTUU= IGZnZXRz R0xF IHphbA== IE9wcG9zaXRpb24= aGFuZGxlU3VibWl0 X21hdGg= IHNwcmU= IHNob3J0ZW5lZA== IGNhdmVz U01T LWNvbnNjaW91cw== IFNhdmVz LkJhY2tncm91bmRJbWFnZUxheW91dA== IGVsZWN0cm9tYWduZXRpYw== KGl0ZXJhdG9y IHVuYmU= amVjdG9yaWVz IG1lZGlhbnRl IMOubnQ= Iiwt IEFTTQ== 6K6w5b2V IGNvbmZpbmVtZW50 4oCmCgoK RXhjZXB0aW9ucw== LW1ham9y IFZhbmlsbGE= IExPQ0FUSU9O IGVsdXNpdmU= VUFSSU8= IElOTElORQ== IHByb2R1Y3ROYW1l X3F1ZXJpZXM= Li4uIjsK IFhpYW8= V2luZG93VGl0bGU= bGV0dGVz IHBlcnBldHVhbA== U2V2ZXJpdHk= IEFjaGlldmVtZW50 w6JuY2lh IHJlbWluZGVycw== c29ydGFibGU= IGFmZm9yZGVk IGluZmx1ZW5jaW5n IFR1bm5lbA== LmxlYXJuaW5n IFF1w6k= cGhldGFtaW5l LkJBRA== Lm1ldGFtb2RlbA== LWRldmljZQ== IEtvbnRha3Q= 4pSB4pSB LXN1bW1hcnk= KCc8Pw== KTw9 IHdpc2VseQ== X290 Om1vZGVs IFVX IE9wZW5TU0w= IEpwYVJlcG9zaXRvcnk= Q29uZXhpb24= VE9U LmNyZWF0ZWRBdA== KHRyYWluaW5n IGJpc2hvcHM= IHZlbnR1cmVz LkVucXVldWU= IFRoZXJtYWw= IEJyZXdlcnk= b3Rlbg== IEZhdGFs X3N1cHBseQ== IGNvbmRpdGlvbmVk IHN1cGVyaW9yaXR5 IElicmFoaW0= IGNvcnBv dW91c2x5 IFByYWN0aWNhbA== Ly9b IEFmcmljYW5z IEJhaHJhaW4= IHN0ZXJpbA== IENsYXNzTm90Rm91bmRFeGNlcHRpb24= LlJlZ2lvbg== IHRyYW5zaXRpb25hbA== IGludGVycHJldGluZw== LlNvdW5k IGZyb250YWw= IGhhcnZlc3Rpbmc= fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4= YXRhaXJl Lkh0dHBTdGF0dXM= S00= IEVyb3Rpc2NoZQ== IGVyb3Rpc2tl RmlnaHQ= UGFja2FnZU5hbWU= IENBQ0hF d2luZ0NvbnN0YW50cw== IFppbW1lcm1hbg== L2Nhcg== IFF1cmFu TWV0YWw= IHVzZXJNYW5hZ2Vy IG1hc3Rlcnk= KFVVSUQ= IHZpZXdXaWxsQXBwZWFy IHN1bW1lZA== KC0o ICAgICAgIAoK VGFrZW4= IGNsb2Nrd2lzZQ== IENhZsOp KGxldHRlcg== IENyb3NzUmVm IEFzdG9u IEFzc2VtYmx5VmVyc2lvbg== 6Z2e bnRz ICQoJ1s= X1JBVElP aWNpZW50ZQ== IHJpY2h0aWc= IHBlZGln KGl4 0YHRi9C7 QXNzaWduYWJsZUZyb20= Ym91bmRlZA== IGFsa2Fs X3ByaWNlcw== IGfFgg== YW5jaGlzZQ== X3JlY2VpdmVy SUdBVElPTg== X3B1bGw= IFN0YXRpc3RpY2Fs X3Rvb2xiYXI= YW1pZGU= IEFzeW5jVGFzaw== cmV0YQ== IOyi IFJFQUxMWQ== IGJ1cnN0cw== IElucXVpcnk= IGJpZ290 c2FuaXRpemU= IEhvbWVy UXXDqQ== IFJvdXRpbmc= LmNvbGxlY3Rpb25WaWV3 IEJpbGxpb24= U1RSVUNUT1I= LmVqYg== IGVuY2g= LnNldFRpbWVvdXQ= UnVi LXJvYWQ= Lm91dHB1dHM= Y29udGVzdA== IHNwaGVyZXM= IHJlc3VycmVjdA== Ii4i IElyaXM= IOya IFhL IFJhcml0eQ== IElTZXJ2aWNl YXRoYQ== IOWH IHByZXZhaWw= CXBw Lkxv Z2V0V2lkdGg= IHd3 IHdpY2h0aWc= QEdldHRlcg== IEpheXM= IHNwZWN1bGF0aXZl KGF0dA== IHRlZGlvdXM= IHNjcmF0Y2hlcw== IHBlbMOtY3Vs IGJvcm91Z2g= IG3Dsw== UmVwcmVzZW50 YXRvcml1bQ== KENhbWVyYQ== IGNvbHVtbk5hbWU= IHJlaXRlcmF0ZWQ= IENhc3Rpbmc= LmdldEhlYWRlcg== IOKAnFs= IEp1aWNl Y2h1 LkhUTUw= IEFudHdvcnQ= R0x1aW50 CUl0ZXJhdG9y IEFOQUw= IHVucG9wdWxhcg== KExvY2FsZQ== IG1pdGlnYXRpb24= IGFkcmVz 4bq3 fSx7Cg== IFNjaHdhcg== X1BBSVI= PigpLAo= b3V2 IEFsZg== eEVG 55yB IGVzY3Jp TE9VUg== U0VMRg== IFRtYXg= VHJl bG90cw== ICguLi4p XSsk IGFtZXJpYw== L3JlZmVyZW5jZQ== IE9keXNzZXk= IE1pbmVz IGFnb3Jh IHByb3BoZWN5 IE9wcG9ydHVuaXRpZXM= cHJvZmVzc2lvbmFs KHByb3h5 cGhhbnVtZXJpYw== IEVkaXRlZA== b2xvZ25h LmlzT3Blbg== KHZlcnRpY2Vz IFJpY2t5 X292ZXJsYXA= Pjs= LkRPTQ== e31f IENPTVBVVA== cmVkaXJlY3RUbw== IHNoYWtlbg== IHJhdGlvbg== IG5lbGw= X2Jj IE5lcg== YW5kUmV0dXJu IGVyZWN0ZWQ= Q2hpZWY= IGRpbmVybw== IGphc21pbmU= LS0tLS0tLS0tLS0tLQo= ZmFybQ== IEhhdGU= VEFTSw== QU5ORVI= J11dXQo= IE5pZ2Vs aGliaXQ= IFFUZXh0 Lkxlbg== IHRlxbw= c2xpZGVz ZmVsdA== IFJFVg== X2hvbGQ= IENvdXBsZQ== ZXNjYXBlZA== LWV4cG9ydA== Pkk= ZXdpc2g= KEFwaQ== ICghWw== Tm91cw== T1RPUg== IHNlYWxpbmc= V2ll IGthbm5zdA== K3htbA== IG14QXJyYXk= IGFkbWlyYXRpb24= Lm5i IGpld2Vs LlRlYW0= IHByb3NlY3V0ZQ== LnhtbGJlYW5z Y2h3 KGJhY2tncm91bmQ= IEF2aXY= CWZpbGw= IGRpc3Bhcml0eQ== 4Lo= X0FQUEVORA== IFB2UA== 44OQ IFZpdmU= IGdyYW5kc29u LmFkZEVsZW1lbnQ= QXRvbWlj IHByaW1hcnlLZXk= IGNvbnRpbmVudHM= IEZ1Y2tpbmc= JScK QG1haWw= IGN1bHR1cmFsbHk= YW5nYW5lc2U= 7KCE Zm9sbG93ZXJz IHVybg== IHJhY2tz IFNBRkU= Ly8NCg0K KCIvew== X0lOSVRJQUw= X1Jlc3BvbnNl RXZlbnREYXRh Jz4k c3RhcnRz 4Kk= IHRoYWltYXNzYWdl IHNwZWNpYWxpemF0aW9u IOyEpOyglQ== ZWRv IGNvbXBlbnNhdGVk X2NoYXJzZXQ= fS57 L2VudGl0aWVz X2Zr LS0tLS0tCgo= YXNjYXI= IGNlbGxGb3JSb3dBdEluZGV4UGF0aA== IFByb3Bvc2Fs IE90dG8= IF9fX19f ICIqIg== IHRvb2xraXQ= IGV4cGVjdGFuY3k= RG93bkxpc3Q= LWRh IHByb3ZvY2F0aXZl IG1laW8= ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ== KCgpPT57Cg== JGxpbms= aW5jYXJl IGljeQ== IEhpc3Q= QWNjZXB0ZWQ= IGNsb25lcw== IFFB IGNvbmZvcnQ= IHByb3ByaW8= IFZvZw== KG1hcms= X1NlYXJjaA== IGVuZHdoaWxl ICQj 44GX44GL X0xU SW5zdGFuY2VJZA== YmFyZA== cm5l cmVnb3I= IG5vcmdl XDo= 0YDRg9C3 LmJ0bkFkZA== IHBpbGxvd3M= IFBhcmFtZXRlckRpcmVjdGlvbg== SGFuZGxlcw== IGRlYWxpbmdz IGNvbnZleA== IENoYXJpdHk= Lk51bWVyaWNVcERvd24= IFNrZWxldG9u IFp1Y2tlcmJlcmc= ZXNlbg== IEZBQQ== X3N0ZQ== IGh1bWlk am0= Y2hn LmdldExvY2Fs IHRhbmRlbQ== aXN0bGVz X210 LmFjY291bnRz IEluc3BlY3Rpb24= IEZyYXVk IGvDvA== IHN5bmNocm9ub3Vz IFJpY2FyZG8= IEh1ZQ== IENvbm5lY3Rpb25z SU1FTlQ= b2NoYXN0aWM= XGRhdGE= IEVudGVycHJpc2Vz LXNpbXBsZQ== IGltYWdlRGF0YQ== IFVtYg== LXNjcmlwdA== L2dlbmVyYWw= QVBU IFR1dA== aW1pemF0aW9u IGlkYWRl IEtlbQ== ZWxzaWY= LkFMSUdO IFRvcmllcw== IEJhc2ls b2dvbmFs aGFjaw== TnVsbE9yRW1wdHk= IiksCgo= 44OD44OI ICclJw== X1JG ZWdvdA== LmFzcGVjdA== KFByb2plY3Q= TEVOR1RI cGxlbWVudGFyeQ== X3ByZWRz IEhvbGRz Y2Fycmllcg== CWxheWVy QXR0YWNoZWQ= LXByZXNpZGVudA== aW5kaA== J10uJyI= LkFDQ0VTUw== IENFTlRFUg== UXVhbGlmaWVk IG9zdHI= LlN5bWJvbA== dGFodW4= IExBTkc= X2J1c2luZXNz CVN0YXJ0 ZXJyZQ== IGFzaGVz IEFkdmVydGlzZW1lbnQ= Lkhvdw== IC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t IG9ibGl2 IGJsZWVk IHN2bw== Lm5vZGVOYW1l IGl0ZW1OYW1l IEJBTks= w61jdWxvcw== IEVtbXk= IERvbWluaWNhbg== JylbJw== IHJlYWxsb2M= dWxzZXM= 6L6T5Ye6 IE9mZmVyaW5n 64ql LXByb2dyYW0= INGB0L7QvtCx0Yk= TU9W IG5vZGVJZA== 0LXQvw== Zmx1aWQ= IHRlYXNl w7hyZQ== IGNvbXJhZGVz IHVucmVsaWFibGU= IHBvc3RJZA== Z2V0SUQ= b2dyYXBocw== VGFuaw== IFFWRVJJRlk= IGZsb2F0ZWQ= X1RISVM= Y2ltaWVudG8= IE5pY2Fy c2hy Qm91bmRpbmdCb3g= IGlub3JkZXI= IEdsb3Nz V2l0aFRpdGxl dW5jaW8= IHBlcnNpc3Rz IGRpcmVjdHM= YWNjacOzbg== U2FtcGxlcg== IGJsYWNrbGlzdA== IGFEZWNvZGVy IGludm9rZXM= X3NraW4= Pklm dHJ1bmNhdGU= LlNpbg== c29vbg== IGRpc2Zy CVZlYw== IyNf LnNjaG9vbA== IGJsaW5kcw== IGFjYWI= IHBhdGhldGlj IHZvbGNhbmlj IHJkZg== IGN1bHRpdmF0ZWQ= IFVJTmF2aWdhdGlvbkNvbnRyb2xsZXI= IGlwdA== IGdsYW5k IGV2aWRlbnRseQ== UGh5cw== IHN3YW1w IGltYWdlTmFtZQ== LkxheWVy dWZl LFsn IENyaW1zb24= 6YCg PGZvb3Rlcg== IGJpa2luZw== INC00LDQvdC90YvQtQ== bW92ZXM= Y3Jj aWxsYXRpb24= IGxhdXJl 0YDQsNCx0L7Rgg== 0YPQug== IENhaW4= IHB5cw== IGNvbGxpZGU= IHxffA== KHNwYW4= IGdpbmc= IG9iZWRpZW5jZQ== b3V0ZXJz U29vbg== IFdoaXRuZXk= IEltcG9ydHM= OlVJVGFibGVWaWV3 KiY= IGJr V2l0aEVycm9y LWV4dA== X1JET05MWQ== X3RyYWNraW5n bm9vcGVuZXI= w7xucw== IEd0a1dpZGdldA== c2ti U0FWRQ== T2Jz KCcuJylb IGF1dGhvcmVk LS8= TG91aXM= LmdldE91dHB1dFN0cmVhbQ== IGdlbmVyYWxpemVk 7Yw= IGFydGlzYW4= KGNwcw== IERtaXQ= 0LvQuNGG LkltYWdlTGF5b3V0 IHN1Y2hlbg== XX0s LmNvbGxpZGVy VGFiUGFnZQ== XT1b aHlkcm8= X3N0cmlw IGxpY2tpbmc= IGJvb3N0cw== IHNrZXB0aWNpc20= IGpvZ28= IGNvbXBldGVk IOuCtA== Tm9kZVR5cGU= WEY= IHBvc3NpYmlsaXQ= LWNvcHk= IHRyaXR1cg== IEF0dGFja3M= IG7Dqw== SURBRA== b2dyYXBoaWVz VGltZVN0YW1w b3R5cGluZw== LUFwcg== INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjw== ICI7Ig== IEhhbGU= L2FwaXM= IDpdCg== X2hkbA== IERpYWw= CUNvbmZpZw== X0ZSQUdNRU5U X0VkaXQ= LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq IGNhbmRpZGFjeQ== IENvbXByZXNzaW9u X2xvc3Nlcw== Kj4oJg== SW50ZWdyYWw= IHBhcm9keQ== IGluaXRpYWxpc2U= ZmlsbHM= IGFsdHJp X0VMRU1FTlRT YWRhc3RyYXI= Y29ycmVv IHdhdHQ= X0RSVg== IEZvcmdvdA== IGdldENvbnRleHQ= IHNob3J0YWdlcw== IE9DVA== d2VldGFsZXJ0 IE9wZW5z Kmw= IEtpdHR5 4oCZw6l0 IFBpY2Fzc28= LnRvQnl0ZUFycmF5 0L7Qu9GD0Yc= IERFTg== 5aeT5ZCN V2ludGVy YW50YW4= X19b UHJpbQ== IHJvb2Z0b3A= IEJpbGxib2FyZA== dGVzdENhc2U= cHJvZHV0bw== LXRodW1i IHJlc2V0cw== Z2Vibg== PkVycm9y LmRlcGFydG1lbnQ= IGVhcnJpbmdz IENhcm91c2Vs KGV4YW1wbGU= CWVt XENvbnRhaW5lcg== IEVsdmlz IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0= RW5nbGFuZA== Y3JlZGl0ZWQ= X2NvbnN0cnVjdG9y IGxvcg== IERhd3Nvbg== QnVybg== IEJyaWdhZGU= IE11dGV4 IFRyYW5zaXRpb25hbA== IE1vdXNlRXZlbnQ= Z3Jvdw== Lm1pbnV0ZQ== IEdNTw== PVtdLA== IHN1c2hp IGFlc3RoZXRpY3M= T0NVUw== IFNFTEY= IEFzc2VydGlvbkVycm9y IE1DVQ== IGhpbnRUZXh0 IHNlYXc= bmdsZQ== IGV4cGVsbGVk UFJPUEVSVFk= KS48Lw== LW9wZXJhdGlvbg== IEltbXVu IGxpY2Vucw== aWJpYQ== IGJpZXRlbg== IGdyaXBz Q0hBTk5FTA== X0VSUk9SUw== X3JlY3Vyc2l2ZQ== VWx0aW1hdGVseQ== IE1hamVzdHk= IGRlYWN0aXZhdGU= IEVYQU1QTEU= dWNpb25lcw== IGN1cnJlbnRWYWx1ZQ== IGV2YWx1YXRlcw== L0dyYXBoaWNz InRleHQ= X3BhbGV0dGU= IFRNUA== IEJlZHM= LkNvcw== 4Lix4LiZ PXRvcmNo IFBBQ0tBR0U= aWxsYXJk LmNw leyduA== LWFwcHJvdmVk IE5vcnRod2VzdGVybg== PHRleHRhcmVh IENvbXBhdGlibGU= X1JEV1I= LlF1YW50aXR5 QElk X29yaWVudGF0aW9u Z2V0VXJs IHRyYW5zbGF0aW5n IFdlYXZlcg== IGpzb25BcnJheQ== IGVtYmxlbQ== LklzTnVsbA== IENoYXJ0cw== W119 Z2Fl X25lc3RlZA== dGVtcHM= cGF0aG5hbWU= Q1c= LXdyaXR0ZW4= IFBBUks= KGNvbmQ= X2FsYXJt IGdlcmU= IEdpeg== IE5nYg== IC5f YXBwaW5lc3M= IERlcGxveW1lbnQ= aVBhZA== Il1d IHN0cnN0cg== IHRvbnVtYmVy KGRs CXdvcmQ= W3Rv X0ZJWEVE RXhwaXJhdGlvbg== OnJldHVybg== T250 PlBsZWFzZQ== Z2V0VGl0bGU= LnNwbGl0ZXh0 Y29tYmluZWQ= T2Q= IG5vdmVsdHk= IlM= IHN2bQ== Q292ZXJhZ2U= IEh1dA== IHJlc2lzdGVk IGVsbG8= IG3DtmNodGU= S2F5 Lmxpa2U= Y2Npb25l IHJlc2VtYmw= RGVhdGhz IGVwaXQ= KHJnYg== LkNsYXNzZXM= INC00L7RgdGC Y2FwdHVyZXM= XStc YW1pZW50 IFBhc28= LlNlbmRNZXNzYWdl IFJlbmF1bHQ= IE5hcmVuZHJh dG91dA== IGhhZGRl IFR3ZWVu w6VkZQ== IG91dGZpZWxk Lz48Lw== QFw= IER1cmFudA== IGFicmU= X3N0b3J5 IHBlcmZ1bWU= Q3BwVHlwZURlZmluaXRpb25TaXplcw== INC/0LDRgNCw0LzQtdGC Y2hlbWVz IFNhZGRhbQ== cHJlbm9t dXNwZW5kZWQ= IEJlbmVmaXQ= IHNjZXB0 X01vdmU= IE5hag== LU9u cnVk SW1hZ2VQYXRo wq4s IGFuYWx5c2Vk IE9H ZWxsZWljaHQ= YmlyZHM= ZWt0ZQ== IEFsaXNvbg== IGF0aGVpc3Q= eyU= YWJo LXBob3Rv aW5zdHJ1bWVudA== IGhpbnRlZA== IE9mZmxpbmU= KSIpOwoK X1BSRUY= IHN0eWxpc3Q= IEt1YmVybmV0ZXM= IGZlcnY= CgoKCgoKCgoKCgoKCgo= KCI9Ig== LmdldE0= IG5vdGV3b3J0aHk= IHNjb3V0aW5n X3RyYW5zbGF0ZQ== IGJlZ2lubmluZ3M= IEx1bw== IHFs X2FsaWduZWQ= IGVydw== dWFycw== X1BhdGg= LicuJA== IGhvYw== IGRlcnA= bG9p IE1jS2lu 6K+05piO Lz0= TGlua0lk c3RkZGVm cmVkdWNlcnM= aXNhbnM= Lmhpc3Q= Jy8+Cg== IFRveGlj IGRpc2FwcGVhcmluZw== IGNpcw== KGRv IG1haW5TY3JlZW4= X0JBTks= IGRlbW9uc3RyYXRvcnM= IFBhbGV0dGU= dWVseQ== UmFyZQ== IHJlc2lkaW5n IGFtYmllbnRl IG1pc20= LXF1ZXN0aW9u IG9wcHJlc3NlZA== IGxldHJh PGR5bmFtaWM= IEZvdG9z LXBvbGljeQ== aXN0ZW0= LmV4Y2hhbmdl c3RyZQ== JC8s 7ZWY6riw JAoK IFJlbmU= IHRvdXRlZA== LUNvcmU= IENyYW4= IFRyYWRlcg== IGRldw== IGZsYXA= CWZpbGVuYW1l IGlubWF0ZQ== KE1vY2s= IFNvYg== aXNibg== IG5vZQ== IEZvcmJpZGRlbg== IGVsZXM= IGRpbmc= X3Nh KSovCg== YXJpZQ== IFN1cHBvcnRz IG1vZHVsYXRpb24= IGVuc2w= IFNoYWRvd3M= cHJpbmNpcGFs YW5nZW50 LUphbg== IFBhbnRz LHRy IGZpdHRl IGdhcm1lbnRz TWFyZ2lucw== TFRS IE1peQ== dmVudHVz IE3DtmdsaWNo W2F0dHI= L3Jlc3BvbmQ= IHR0aw== IG9sZHXEnw== IENvbnNl UHJlbWl1bQ== IGZyYW5jYWlzZQ== X2hvcml6b250YWw= X2li IEZhcmU= IGhhcnZlc3RlZA== ZW5kaXI= KGhpdA== PiovCg== IElSZXBvc2l0b3J5 eWxpZQ== IGRldGVjdHM= Om5v 4pi0 IGRpc2XDsQ== IHVuc2VyZW4= IG1vY2tpbmc= c291dGg= cmF0ZXM= IGh5cG9j IFNob3J0bHk= IEJsYWNrcw== 0YLQuNGA0L7Qsg== IEFTQVA= cmViYmU= aWVj LkFkZERheXM= IGVwaXM= LWluZmxhbW1hdG9yeQ== LW5ldA== IHBhbGw= 65Q= IGlzc3VhbmNl IGNvbnRlbnRpb3Vz LkFyZWFz 0LjQu9GM IGNvbnRpZ3VvdXM= W2FjdGlvbg== IGV4cHJlcw== ISIpCgo= VUxP IHdyZQ== IHN1YmRpdg== IHR1cm5hcm91bmQ= IGFjY2Vs IFVuaXY= IFVuaXZlcnNpZGFk c2V0dA== ZGVzY3I= LkdlbmVyYXRpb24= IHBhdHJpb3Q= IGZhcw== KioqKgo= UVA= IOWN b3BwZWw= IGp1ZWdvcw== LmRyYXdTdHJpbmc= LWNvbmZpcm0= CSAgICAgICAgICAgICA= PFByb3Bz IGZhbWlsbGU= IEhlbG1ldA== ZXJ0aWFyeQ== YXRoaQ== IGN1bHRpdmF0ZQ== IGR1cGxpY2F0aW9u IHNweU9u Ki8pCg== IEh1bmdlcg== T3J0aA== IHBpbnBvaW50 IEhhZw== IHRpbWV0YWJsZQ== bWFyZ2luVG9w IHJlY2lwcm8= ZmVsbA== IFBlcnNpc3RlbnQ= 44Gp cGx1cmFs cXVldWVk IGdyYWNpYXM= w6F0aWNv IGhhcmRzaGlw IEFwYXJ0bWVudHM= IEp1bms= IFJldmU= X01zaw== IHN1cHJh IEFUUA== IHNldFNob3c= 5a2X56ym5Liy IE5vdHRpbmdoYW0= U3RldmVu IE11bmQ= cmFuZ2Vz IHVwbG9hZHM= IGJmcw== cHo= dWx0aW1hdGU= IEVmZmljaWVuY3k= QU1J 5b6E X1JFUEVBVA== IGFjYWRlbWlh LnRvb2xTdHJpcEJ1dHRvbg== VG9FbmQ= cnZpbmU= IFRoeQ== IEVsZWN0b3JhbA== IFJFUVVJUkVE IHBsdW5nZQ== IFJldm9sdXRpb25hcnk= IFRlbnQ= IGdyZW5hZGU= IjpbeyI= IG1vdXI= UG93 IGV2YW5nZWxpY2Fs VEVDVEVE IG92ZXJ0dXJu CUlucHV0 cmVjb21tZW5k JUM= IHNsYWc= IEJoYXI= X2VuY3J5cHQ= IFdhcmZhcmU= KGFnZQ== QVRFR09SSUVT bWlsZQ== IGhlYXZlbmx5 YW1tZXI= KCkpWw== YWRlcmE= aGc= IExBVw== IHBhY2thZ2VOYW1l X3R5cGVEZWZpbml0aW9u KGJl REJOdWxs X3Rhcg== IGhldXJpc3RpYw== IFdhbnRlZA== IFN0dWI= IGtpdHQ= UkVD IHBhc2Fy Lm5ld0J1aWxkZXI= CWdyYXBo aW9zYQ== LmNvbHVtbkhlYWRlcg== IHNldE9wZW4= IFRoaXJ0eQ== ICIlLg== QWxiZXJ0 IHNhbWE= IHJvY2tpbmc= Q29tcGxl TVY= fCgpCg== X3JlYWRz KHZhcmFyZ2lu b3Vsb3VzZQ== IFNJTUQ= IGNhcmJvaHlkcmF0ZQ== d2hvbGU= LE5vbmU= i+ivlQ== IENoYW5k Y3phcw== X3F1ZXJ5c2V0 IGV4aXN0ZW50aWFs IGVkaWJsZQ== IGFnaWxpdHk= IFdpbGxpcw== IGh5bQ== IEJyaWxs 0LjRhQ== IE5vdEZvdW5kRXhjZXB0aW9u ICgoKQ== QVBTSE9U IHN1YnN0YW50aXZl X3R5cGVEZWZpbml0aW9uU2l6ZQ== IHZhY2FuY2llcw== RU5HSU5F IGFuZGVycw== IHN5bWI= IGV0cmVl KS5f IHRyYW5zcG9ydGluZw== aW1wcw== L2NvcA== YWN0YWJsZQ== X2ZsdXg= IG5ld0luc3RhbmNl YXRvaXJl IGNvbHVtbkluZGV4 IEdpbw== IHN1YnRpdGxlcw== LldpbkZvcm1z 0LvRj9C10Lw= IGFsZXJ0ZWQ= IHN0cmlwcGluZw== d2VuZHVuZw== IE1ldGhvZEludm9jYXRpb24= RXJyb3JIYW5kbGVy U2Nyb2xsYmFy UG9ydGZvbGlv Y29uc3Vt IENPTU1PTg== TGY= X2Jhc2Vk b2NhbHk= IGVmZmV0 dnZt cmlwc2k= IGZsb3VyaXNo Y2h0ZXI= PT09PT09PT09Cg== IHJlcXVlcg== LnF1ZXN0aW9ucw== KCI/ IHBvc1g= IFBDUg== IE9yZ2FuaXphdGlvbnM= cHLDvA== RXhhbQ== IEluY29ycG9yYXRlZA== X3BocmFzZQ== IHByYXllZA== IGhvbWVvd25lcg== IFRhag== eng= IElkZWFsbHk= X01BQ0hJTkU= IFJlbW92aW5n Q29lZmZpY2llbnQ= IGVkdWNhdGluZw== ID8+Jg== IHBvdXJz aXJhbQ== X3BlYWs= IG5lc3Rpbmc= YWJ5dGU= bmF0dXJl IGFmcw== IFJvbw== Y2FyZ28= b2JqZXQ= IGZyZWVpbmc= cXVha2U= RGVuc2l0eQ== IGRlc2NyaWNhbw== LyoqKioqKioq IGRhc2hlZA== IGdyb8Of b29reQ== IFBFT1BMRQ== X1Bvc3Q= IGNlcnZpY2Fs IEFkanVzdGFibGU= ZW5zdWFs IFJldmlzZWQ= KHJlZmVyZW5jZQ== CUJhc2U= ZXNzaW0= TWFpbnQ= IGdldFNpemU= IFNhbmR3aWNo cmFkaWVudA== c2luaw== Oi8vJw== X3R0 RlBT IEFybWVuaWFu cHJldlN0YXRl X0xJTkVT IHRpZ2h0ZW4= PFs= XTw8Ig== IFRyYWZm IGxpcXVpZHM= IGFyY3M= X0NvbW1hbmQ= QHByb3RvY29s LWlzaA== IHJ1YmJlZA== QkJD L2ZpcmViYXNl QXBwQmFy PFg= IFNJTkdMRQ== LlN0YXR1c0ludGVybmFsU2VydmVyRXJyb3I= IHZlcnRl L3F1ZXJ5 IGdldENvbmZpZw== IERpcmVjdFg= cGh5c2ljcw== eWNvcA== IGJyZWFrZXI= LXZvbHVtZQ== ZGF0YVRhYmxl 4oCZZQ== cmlvdHQ= IEV0ZXJuYWw= Z2V0SGVpZ2h0 IG9uSXRlbUNsaWNr IHF1YXRlcm5pb24= IGtpbmt5 ZGVzZXJpYWxpemU= KFNwcmluZw== IHBlYWNlZnVsbHk= X0RldmljZQ== KE1hdHJpeA== acOocmVtZW50 KHR5cA== LnZhYWRpbg== LmdldE1ldGhvZA== IOKAnQoK IHRocmVhZGVk IEZhbW91cw== IEdhbWI= IOyngA== INCk IGZha3Q= IGVjaHQ= X3Vi LkpwYVJlcG9zaXRvcnk= IHVuZ2U= LWVuZGluZw== IENBTUVSQQ== Y3JlZGVudGlhbA== IFBhc3Nwb3J0 CVJUREJH IGV4dHJhZA== LW9yaWdpbg== IHNhY3JpZmljZWQ= IFNjaHVsdHo= IFR1cnRsZQ== LmNlbnRlclg= IHNob3djYXNpbmc= IGJ6dw== eXJv aXNOdWxs LmlzRGlyZWN0b3J5 bWFpbnQ= X2Jp IFNwcmluZ2Vy fSgpCgo= aXNzdWVy LWFybQ== ZXNr bGluaGE= IGtvcnQ= YWphcw== YWxpbms= KEJ1dHRvbg== IFJlc3RvcmF0aW9u IGluY3I= IFpob3U= CSAgICAgICAgCQ== IERpc2NsYWltZXI= IGt2aW5ub3I= IERhcmU= IDwtPg== 6K+m CQkJCQkJCQkJCQo= LkNsYW1w CXNjb3Bl IE11bQ== PDw8PDw8PA== L3t7 X2FydGlzdA== IFJlYWN0aW9u IE5pY2tlbA== X1JlbW92ZQ== KCgoKA== 64yA IGR5bmFzdHk= IFRocm93cw== IENvdWw= X3JuZw== IERvaw== Lmxpc3RWaWV3 IFR1Y3Nvbg== KHRvaw== IFBoaWxpcHBl VG9TaG93 IGRpZXRh IFVsdHI= LlRpY2s= IEdldFR5cGU= aWV0ZQ== IExlYWg= SGFyZHdhcmU= IENvbXByZWhlbnNpdmU= Q09NTU9O IGluZHVzdHJp aXJpY2Fs LWJlZHJvb20= IGd5cm8= INC60L7RgA== IC0vCg== Y291cg== IEJydXNoZXM= TXVsdGlwbGllcg== IHVzZXJkYXRh IFJlY29nbg== IG9ibGlnYXRlZA== IExldmlu YW5jZXN0b3I= IG1lbmluZw== IFVk LGpzb24= KGFzc2lnbg== IG5kYXJyYXk= X2Nvcm5lcg== QEFsbEFyZ3NDb25zdHJ1Y3Rvcg== 6aqM6K+B56CB YWRvcnM= IHJlc3BvbmRlbnQ= R09SSVRI IHRlbmdv IHNldE1lc3NhZ2U= IElQTw== YXJyYXlz IEFHQUlO J1s= ICItLy8= w6Rt 44CCXA== Lm9uY2U= Y3VycmVudFRpbWU= R292 IGdldG9wdA== bWx4 IFRvbmU= J11dOwo= IHByZWRhdG9y V3k= L2VudGl0eQ== IG1hbnRyYQ== KT49 b2dyYWQ= IG1lbGFu IHNvcnRCeQ== IERFRklORQ== UHJvdGVjdGVk Y2RlY2w= Jz4iLiQ= PGN2 Y3JpcmU= LVRydW1w IHVjZmlyc3Q= Y2Fzc2VydA== IGFja25vd2xlZGdlbWVudA== IElOVg== IFVOVQ== LnNxdWFyZXVw IFNheA== cmV0dGU= KCkKCgoK IERhdGFCYXNl IFBhdHJpb3Q= X1Jvdw== IEV4aGliaXRpb24= IGRldGFpbmVlcw== IFN0cmluZ0lP X0RFTg== TW9kaWZpZXJz YXNhcg== aXJ0aW5n IHRyYW5xdWls KGVuYw== IOOCsw== bmNvZGVy X3VudXNlZA== IEJpYW4= VmVyYg== X2V4Y2VycHQ= L2V4cG9ydA== IFNleHQ= RHM= QU1QTA== T2ZTdHJpbmc= X3RyYWNrcw== d2o= b3Rvbmlu IElURQ== SVZFTg== LW9yaWdpbmFs IEZJTkFM X18pCgoK IGVuc2U= IFV0dA== Oioq IFN1cnJleQ== IEthaXNlcg== YWRtaW5pc3RyYXRvcg== LWxhcmdlc3Q= IGxldHp0ZW4= IGNoYWluZWQ= J0g= IGRvY3VtZW50aW5n IExlY3R1cmU= Ukg= b2xsYXBzZWQ= c2tpcnRz ZWxkZXI= IFNpeHRo IGFsbGVnaWFuY2U= SVNPU3RyaW5n VXNhZ2VJZA== LmhhcmR3YXJl IHBhcmk= IHfDpGhyZW5k IHJkcg== IGhqZW0= TE9PUg== IExQQVJBTQ== INC80L7QttC10YI= IGhvbWFnZQ== b3V0c2lkZQ== IENoYXJTZXQ= PEdhbWU= 77yZ X01VVEVY KSkvKA== X3Jlb3JkZXJlZA== dGV4dElucHV0 QU5DRUQ= IFRlZQ== IGNvcm5lcmJhY2s= UXVlcnlTdHJpbmc= IGxvbmdpdHVkaW5hbA== IEhvbGlkYXlz QUJDREVGRw== LktleVByZXNz LnVs eWRybw== IFRhdGU= CXJvdXRlcg== c3BvdHM= IHBhdWw= LXByZXY= IGtub3dpbmdseQ== IEt1cmRz IEV1cm9w LmNlcnQ= QklH KGNvZWZm IENsYXVz L2V4YW1wbGVz IEZhcm1z IC8vKA== U1BBTg== IGNpcmN1cw== IE1JUw== IFRyYWl0cw== LWNsZWFy IHJlZ2ltZW4= IGJhY2tncm91bmRJbWFnZQ== dXNhaGE= X01ldGFkYXRhVXNhZ2VJZA== IHJoZQ== Q2xpbg== IERvbWluaWM= Lm5leHREb3VibGU= KGRldGFpbA== VGhyZWFkUG9vbA== IENhcnBlbnRlcg== c29ydGluZw== IGdvdmVybm9ycw== IHNpbmdlcnM= dW5saW5r IHJpbmdpbmc= IHNjaGVtYXRpYw== IGVycm1zZw== IGJlYg== LiIr IEluY3JlYXNlcw== IkFsbA== IGFjb250ZQ== emlh LlRleHRDaGFuZ2Vk IFRvRG8= LDopOwo= bmFnZQ== Y2hs b3dlbA== IGdlcmFkZQ== X2ZmdA== IGVzdGFtb3M= U1RBUg== IGRpc2d1c3Q= Z3Jhbg== cG9ydHVuaXR5 IGF1dG9iaQ== e317Cg== IENvdXBvbnM= X0dBSU4= IFRDSEFS L3Bhc3M= 55Sx IGZvb3R3ZWFy KGJvdW5kcw== YXB1cw== Y2l0ZQ== Qk9PVA== IENvZGVj bG9ndWU= LXByb3BlcnRpZXM= YXV0b21hdGlvbg== IFNob2U= c3BlY3Q= KG1t IEtldA== W3BhcmFt IGJhc2ls IEFuZ3VsYXJGaXJl IGFkdmVudHVyb3Vz X1VDbGFzcw== IGluZHVsZ2U= CWN1ZGE= IGluc3VsdGluZw== LkV4cHJlc3Npb25z IG9uQ3JlYXRlT3B0aW9uc01lbnU= VUVM IGJpdGluZw== KCFf IEVuY3ljbG9wZWRpYQ== IGJlcnQ= IFZlcmE= IEJpYmxpY2Fs aW5zaWNz X1NJTVBMRQ== IHNhbGlkYQ== cmVxdWVzdGVk IENvbXBvc2l0aW9u LkF0b2k= KEtleUV2ZW50 ZXJlYQ== IGRlcG9ydGVk IFF1cg== IG5pcHBsZXM= aXNBcnJheQ== INGD0LrQsNC3 IGJyaW5r bWV0cm9z RW51bWVyYXRpb24= IEJ1aWxkcw== ZXJ0b3M= IHNhaW50cw== LmRlcGxveQ== ZXRoZXJldW0= IGtpbmRlcmdhcnRlbg== dmFuaXplZA== IGNvbWJpbg== IHBvdXZvaXI= S2lu YXLEsQ== IC4uLi4u 77y+ Lkdv IHF1aXJreQ== xLFuZGFu IGFjdGlvblR5cGVz IFFVRVJZ VGF5bG9y IFJL dGF0 LnBhY2tldA== IElNUE9SVEFOVA== IGN1c2hpb25z YnVsaw== ZHVjdGl2ZQ== YmVuZWY= b2NyaXN5 IGZ1ZXJvbg== IGN1cnNlcw== IGZpbGluZ3M= ZWxpZXI= KD86 X2RyaXZl IGNvbnRhY3Rv IFBhcmt3YXk= dmlkZXM= Z25l YXZhZ2U= XFwu ZnVsbE5hbWU= ZGxs IHNob2Nrcw== ICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw== X3B4 QFdlYg== LlBlcnNpc3RlbmNl IHN1bms= LnRvb2x0aXA= YXV0aWNhbA== TmV3c2xldHRlcg== IHdhaXRlcg== IGlucXVpcmU= 0LDQtdGC0YHRjw== KCdfXw== dG9n SUVOVEFUSU9O IGNvbXBhbnlJZA== IEJhc2ljcw== CUpMYWJlbA== IG1hY09T IE1hdHM= X3RlbA== LXByZWZpeA== IG11dGF0ZQ== fScp Y2hlbmc= IE1pbGl0 IiY= ZmluZGluZw== IERhdGFMb2FkZXI= LkdQSU8= IExldnk= IHNuZWFrZXJz IGNyw6lk YXduZXI= eGlh L3NpbXBsZQ== Q0hS IGZsb3RhdGlvbg== LnNlbnNvcg== QnJhemls IFNlYXNvbnM= IFNwZWFr LWJhbGw= IE11dGF0aW9u dWtrYW4= IE9tYWhh 4oCZb24= IEN1b21v IEp1ZGljaWFs IGNoZWNrcG9pbnRz IEZyZW0= CUlk ZWdyaXR5 X2Fm QE5vQXJnc0NvbnN0cnVjdG9y IHRhYmVsYQ== WyM= bm90YQ== IEZhY3RvcnM= KGdyb3Vwcw== aXN3YQ== SVZP IHNjcmk= YWNldA== IE1laA== KGNsYXp6 IFs8 cGVyaWFs IHN1cnBhc3NlZA== IGpva2Vk IHJ1ZA== IGltYmFsYW5jZQ== IEZyYWdl c3Nw IGluZGljdGVk Lm1hcmtldA== O20= IHJlcGFpcmluZw== LW5vdGU= RGVidWdnZXI= KFdlYg== IHNpbmdz IExveQ== IERFU0lHTg== LkNvbXA= LWNvbnRyb2xsZXI= IGF2b2NhZG8= IEJvd2ll Y29udGFkb3I= dWxpbmdz dWNob3M= c3BlY2lmaWVy IFZvbHZv IGRlbW9z IFByb2R1dG8= Lk5vdEZvdW5k IG5pw7Fvcw== IEJvbHM= X291dGVy U2hlcg== QVVUTw== IGpvdg== IEZyZWRkaWU= b3JpYXM= IGFmZWN0 IGZhY2lsaXRhdGluZw== IGRvbWluYXRpbmc= UGFyY2VsYWJsZQ== JywnLQ== bW9vbg== IG1ldGFzdA== IHNjYXJm IFRoZXJt Q2FsbEJhY2s= 0YHRgtCw0LI= LkltcG9ydA== IGJldHJheWFs aWN1bG9z IHdlacOf 5YyF X14= d2lmaQ== IFNFTlNPUg== X0JVU1k= JGI= X0ZJTkQ= IHBsYXN0aWNz IENPTlZFUlQ= CWNhbGw= IFByYWd1ZQ== IGdhcm5lcmVk X2xlYXJuaW5n c2hvb3Q= J10pKQ0K IEdpbmdlcg== PXBk LHRlc3Q= UHJvZml0 IGVzdGltYXRvcg== IGJyZWU= IC8vPC8= X2hhdmU= IEtvZA== X0lNTQ== aXp6YXM= bWlnaHR5 154= IE9uQ2xpY2tMaXN0ZW5lcg== 44OH IFNjaWVudGlzdA== RmlsdGVyZWQ= YXZs aGF5 X2dlbmVyYXRlZA== XScK IEF1dGhvcml0aWVz OnBhcmFt IHN0YXR0 LW1hdGVyaWFs IGxpZGVy IENyb3A= IEJ1bmlmdQ== IG5leHRQcm9wcw== b3J6 X29yZA== PHg= X0lPQ1RM IE11c2NsZQ== CWV4ZWM= RU5BTUU= X2xldHRlcnM= IyMjIyM= IENz J109PSI= ICInKQ== Q2xlYW51cA== LnN0cnVjdHVyZQ== zro= 6YCa6L+H J107Pz4i IExhdGl0dWRl YmJpbmc= IGJhbmFuYXM= cmVjdGlvbnM= IFJhbmRhbGw= TllTRQ== IGFwcmVuZA== LlJlc3BvbnNlRW50aXR5 IHRlc3REYXRh XGU= IFdL LkFkZENvbXBvbmVudA== X3J1bnM= w6dvaXM= LW1pbmk= Zm9sZGVycw== IGxvc2Vycw== IFRvd2Vycw== LUVuY29kaW5n OnI= Y2hvb3Nlcg== IGZsYXR0ZW5lZA== 0YHRgtCw0L3QvtCy CVB5 5Lic IGRhbW5lZA== RGVwdA== d2Vk IHBpc2M= Z2llcw== X2dhbWVz Lm1hc3M= KEVxdWFs IG5hdGl2ZXM= LnRodW1ibmFpbA== bHRy IGVxbA== X2luY29tZQ== CWhlYWRlcnM= LWhhaXJlZA== IG1lZGlvY3Jl IFdpdGhkcmF3 IGJpdHRl 2b4= PWlu b2NrZWQ= RnVsbHk= IFRFTVBMQVRF w7pkZQ== T2Rk aWxsZXo= VGVsZXBob25l IAoJCQo= KCInIg== X3NjaGVk ZXJuZQ== wr4= LnBpY2s= IE1TSQ== CWZm RGlzY292ZXJ5 IENPRA== IExhY2s= IHNlbnNhdGlvbmFs bW90aA== IExlZ2lzbGF0aXZl 0Y0= IHZpYWJpbGl0eQ== IGdldEVtYWls IHVuYW5pbW91cw== IHBlbGxldA== ICIoKQ== Y29hdA== YWdvb24= IEFMV0FZUw== XHVD X3N0ZG91dA== QW5keQ== IG5ld0xpc3Q= IE1haGFyYXNodHJh LF9f PXVzZXJuYW1l IHNjcmlwdGluZw== IFRtaW4= PEFjdGlvbg== PXt9LA== c3ltYm9scw== IGZlbmNpbmc= IHbDrWRlb3M= IE1hdXJpY2U= Y29ybGli IGtlbQ== In0pLAo= IENsYXNzaWNhbA== Y29sbGVnZQ== IEhvbWVwYWdl IH19Cgo= X01zcA== IENvbXBsYWludA== IHNhbmR5 QXNpYW4= X3NlcmlhbGl6ZXI= IExhaA== IGJ1ZHM= b2xvZ25l IHJlc3BvbnNlRGF0YQ== b3BoaWxl a2F0ZWdvcmk= RW5kZWQ= bGVjdGlj IGNsYXdz Li4uJyk7Cg== IHBsYW5uZXJz IFphaw== IEdsb3Zlcw== Iil9 IGZhc2hpb25lZA== YnJvbg== IG5ld2NvbWVycw== dmFuYQ== IHBpZXJ3cw== UmVjZWlwdA== LWVudg== IHJ1dGE= IEZhcm1lcg== b2RvcmU= bXVp IHJvbWFudA== IGluZmxpY3Q= IHNlbWluYXJz PWN2 KHN0b2Nr IGV4dHJhY3Rvcg== IFRpZmZhbnk= X3V2 LmNvbnRhY3Rz JyksKCc= IHNvbHZlcw== LkNvbm5lY3Rpb25TdHJpbmc= L2RlYnVn IEF2ZXJ5 44Oj IG1heFg= U3Bhcms= PHRoaXM= IGhpa2Vz S2V5VmFsdWVQYWly IFF1aWV0 c3RhYg== IEtvbW1lbnQ= bHljZXI= IE1TTQ== IExhbnRlcm4= IGNvbmp1bnRv aHNp TVVMVA== V2l0aER1cmF0aW9u YXR0YWNoZWQ= IEFzdGVy CXBvaW50cw== IFNpYmVy IE1ldGhvZGlzdA== L3NpdGVz IGZvcnR1bmVz UGFydGljaXBhbnQ= IGN1c3RvbWVySWQ= KWluaXQ= X3NlcnZlcnM= IHdlYXZl IFRSQUlO IGhhcmFzc2Vk 7J6R YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXo= X2Zhcg== QWxjaGVteQ== LmxpbmVXaWR0aA== IHRoZXJhcGlzdHM= IExvYg== ZXF1aXBtZW50 IHJlY2h0 Lm1pcG1hcA== Lm5pY2tuYW1l IHVudG91Y2hlZA== QUdPTg== IFNhdWw= IHdvcmtzaGVldHM= IFZldGVyYW4= b3VkZW4= YWNsYXNz X2FzbQ== IHRlbXBs IEV4cGVuc2U= ZWlnaHQ= I1NCQVRDSA== em9uZXM= LnBhcnRz YXRyaWNl bGF3cw== dG9CZURlZmluZWQ= RWZmZWN0aXZl IFBpZWNlcw== YXJ0aQ== IGluaGliaXRvcnM= CXBhcmFtZXRlcnM= IHRlbGVncmFt Ym91cmc= X25vdGlmaWNhdGlvbnM= IHBvc2l0aW9uYWw= LWRlYWxz IC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ== IHNoYWRlcnM= XT0k IGRlY28= ZXR5cGVz Y2xhcmU= IEdTTQ== LnV0aWxpdHk= VG9TdHI= YWZlbg== IFht X3BhcnRpY2xlcw== IGZsdWZmeQ== TWFya2V0aW5n IHN0YW5kaW5ncw== PwoKCgoKCg== VU1BTg== X1BBWU1FTlQ= CVRpbWU= cmF3bg== b3Jybw== IGVlcnN0ZQ== IHBhZ2VOdW0= IENPUA== IHBsYWdpYXI= VXBsb2FkZXI= JHNlbGY= bGF0ZXI= ZXJpYWxpemVk IGFsaWduU2VsZg== IOKZpQ== LmFycmF5Y29weQ== IG5vc290cm9z CWdwaW8= IHBsb3R0ZWQ= aXRlcmF0aW9ucw== IFJlbGF4 Y2lwaGVy R2lmdA== IEJldHQ= IFhS IHN0cmlwZWQ= KGVudmlyb25tZW50 ZWdlcnM= X1JFU0VSVkVE IGvDtm5udGU= IGluZmVycmVk UGRm c29ycnk= cGFyYXRl LkNvbmNhdA== IGxpcGlk LkJP IG9ybQ== IENvbnNvcnQ= IG92ZXJzZWVpbmc= IGFtYmVy IHBsZXRob3Jh CUFjdGlvbg== cXVlcnF1ZQ== IGh1aXM= ID1b IHByb2dyZXNzZXM= anVkdWw= IGNvbnZlcnRpYmxl LmVtYmVkZGluZw== IHs/Pgo= IHJlZHV4 W2xhYmVs OiIpOw0K Lm9ubGluZQ== cXVhcnRlcmVk IHNjaG9vbGluZw== ICJcIiI= W2xpc3Q= QWxhbg== J30KCg== eXBzdW0= IHN0cml2aW5n IFJlc3BvbnNpYmxl IO2MjOydvA== LkludFB0cg== cmlrZXM= ZW52aWxsZQ== LnNldExheW91dE1hbmFnZXI= IFBhc3Nlbmdlcg== IGRpc29i IGZlcm1lbnQ= LlBpeGVs Pign IGNvbnRlbmRlcnM= LWJldGE= IGFmZmlybWF0aXZl 0L3QvtGB0YLQuA== aWHDp8Ojbw== UmVjb21tZW5k aW1pdGVycw== X3lsaW0= IHN1YnNpZHk= IGVyYg== RmlsZVNpemU= KHNy IHBvb3Jlc3Q= IHZvaQ== U2lk IHNsaXBz X21pbnV0ZXM= IHVn xqFu IG5hdMO8cmxpY2g= 44Oe YmVhcg== fV8kew== IGZpc3Nl IGRpc2NyaW1pbmF0b3J5 CQkgIAo= IENvaWw= X2lmYWNl LnZlcg== IG1pbmVk IGFzc2Fzc2lu IHVuc2V0dA== LnJlcXVlc3Rz LlVT aW1hZ2VVcmw= IHN0cmF0ZWdpY2FsbHk= LWJhbmQ= IHRyb3VzZXJz WEQ= ey8= bGVjdGlvbnM= YCgp IlA= IHNrZXRjaGVz Y2xpZW50SWQ= IFNyYw== b3BlbmluZw== UHV0aW4= IFBvZXRyeQ== IFBST00= SUxMSVNFQ09ORFM= IGJvb21pbmc= U2ltaWxhcmx5 Omxhc3Q= Lndvcmtlcg== LmdldElE LlNQ c2VydmVycw== b2N1bGFy IHNwaW5hY2g= SVNL w7A= J10pWw== IGNoaWVmcw== IGdyb8OfZW4= cmlldmluZw== LmFzaw== LXN1cg== VlY= Lz4iOwo= KHJlbW92ZQ== IEtM IEhhbGV5 QFJlc3BvbnNlQm9keQ== LSY= U3dhZ2dlcg== IHpuYWo= Lm9uRXJyb3I= cmVnbw== ZWxpeA== IEFWQUlMQUJMRQ== IHNlcGVydGk= aWFw X21pc3M= IHN1cmdlcmllcw== IGltcGFydGlhbA== IENvdA== YWt0aW9u IHdoaXRlbGlzdA== INCw0LI= X21peA== IEJlZHJvb21z IHByaW1laXJh IHNpZ25pZmljYQ== L2J5 IHN0YXJ0bGluZw== IFNQRQ== dWNjacOzbg== TnVtZXI= SUJN LmZyYWdtZW50cw== UmVudA== IHLDs3duaWXFvA== LkFVVE8= LkZvckVhY2g= IFpodQ== IEN1bm5pbmc= IFdhcm4= IEJI X0RPV05MT0FE QnlLZXk= KeKAlA== IGNvbW1hbmRl X0FOUw== Q2hyb24= RklU X2F0b21z X1NLSVA= IHZhcA== KEJveA== IGxkYXA= dW5wcm9jZXNzYWJsZQ== SVRJT05T w6lyw6k= LG1zZw== IG91dHNldA== IGRyaWxsZWQ= IGTDqXZlbG9wcA== IENvYXQ= IEJlbmdoYXpp SG9va3M= IE1pc3NpbGU= X1Jlc2V0 Pi88 ICItIgo= KCk9PnsK IEhvY2g= LmF3YWl0 QWRyZXNzZQ== IGRpZ2l0YWxseQ== IlRoZXNl b3BsZXZlbA== IGFzeW5jaHJvbm91c2x5 IER1Y2tz UkVTUA== SVJP LmZpeA== IFJhZGFy dmVydGlzZQ== w61zZXM= SXRlcmF0aW9ucw== bW91c2V1cA== bWludA== RklSU1Q= IHBheXBhbA== X3VwZ3JhZGU= V3JhcHBlZA== Ow0NDQo= K3M= IGNhdGNoZXI= Lk9w X05PVElDRQ== cGFyYWxsZWxlZA== Q1ZF Zm9yZ290 IHBhbm9y IG9mZnJl IGVub3JtZQ== KCkNCg0KDQo= YWRpYXRvcg== YWRkQWxs W3RleHQ= KHV0aWw= LlByb21pc2U= YW5pc20= X29mZmVy RU5ESUY= ZG90cw== IEtybw== IHNwZWxsZWQ= IGFwcE5hbWU= QWN0aXZpdGllcw== IFNwaWNl ZWF0ZWQ= IHNrYg== IGvDtno= IHRvcmNodmlzaW9u Q2l2aWw= IGhvcw== X0hlbHBlcg== acSH X3Vuc2lnbmVk 6K66 4oCcQW5k CWtmcmVl LnJhaXNl IGNhbGxl IExhbnM= IGFudGln XCI+IjsK YnJhbmNoZXM= bG9ncmFkb3Vybw== IHN0YWxsZWQ= YWx5emVk RGVyaXZlZA== Om5vdA== IGdpYmk= IFR1cm5idWxs LnVzZXJEYXRh KFRhYmxl IERlcml2ZWQ= CWNvbmY= IGFsZ2Fl IGthZmth IG5ha25l IEhlYXRpbmc= IFRpcmU= YWR1bHQ= IERhdGVGb3JtYXQ= b3Bj ZW5zYWdlbQ== LlRvb2xz Lk1peGVkUmVhbGl0eQ== cmFp IFdvbmRlcmZ1bA== KV0pCgo= aWFyZA== VGhlbWVQcm92aWRlcg== IGV2ZW50RGF0YQ== I2Fk LmdldFVybA== IHRvb2xib3g= IG92ZXJyaWRpbmc= Q09OVEVOVA== LXByb2R1Y3Rz d2lsZA== X2V4cGFuZA== aW5haXJl QnJ1 b2xscw== INGN0YLQvg== Y3Rlc3Q= IHB1bmNoaW5n RFJW X3NwYWNlcw== IFN1cGVyaW50ZW5kZW50 IGxheXVp KGZlZWQ= dG9k IHZo IGluc3VsdHM= IFN1Yw== aWtz VG9ycmVudA== Lmty X2FjdGl2YXRl k5g= amVl aW1lcnM= cnVpdHM= IHByZWNpbmN0 LlJlcXVpcmVk IHNhdGlzZmllcw== IGNoZWVyaW5n IGFycml2 CXJlYw== IENvYmI= IGNvbmN1c3Npb24= dWpldA== Tm90Rm91bmRFcnJvcg== SmVhbg== IHBob3Rvbg== Pl8= IEJhcmNs YW1k ICV9Cg== PVwiIw== SW50ZXJu IENvbW1pdHRlZXM= LmJlbA== bnVtbWVy IGxldml0cmE= X3ZlcmJvc2U= KGNvZGVj IFN0aXRjaA== PSIiOw0K IHJlZ3JldHM= IG11bHRpbmF0aW9uYWw= IHJlc3RydWN0dXJpbmc= IE1FTg== eW5jaHJvbml6YXRpb24= IG1lZGlhdG9y a2ly UHJpbmNl IGluaGliaXQ= IGdvc3Q= IE1NQw== IHNpZGVk X2Rhcms= KGJsb2I= PkxvcmVt PiIpOwoK c2Nhbm5lcg== OmlubGluZQ== LmNhcm91c2Vs b3RpZGU= IFdXVw== IGRydW1tZXI= LmZhbWlseQ== IG9yZGluYWw= 5b2T5YmN IGRpcGxvbWF0 IHN1cHBsZW1lbnRhbA== IGRhZsO8cg== IEZBVA== IFlvbmc= aGFwdXM= IEp1bmN0aW9u emw= LlVzZUZvbnQ= IGhhc2hNYXA= LVJl ICIqKg== LnNldEJhY2tncm91bmRSZXNvdXJjZQ== IGltcGVyZmVjdA== LkZpbmRFbGVtZW50 IExMUA== IG11cmRlcmVy IHRleHRl aXPDqQ== YWN0aWNz VG95 R3JhbnQ= X2Rpc2Nvbm5lY3Q= IGJyYXNpbGU= IGVtZXJnZW5jaWVz X2x2bA== IEAiXA== fSovCgo= X1NPQw== Tk9STUFM L2dhbGxlcnk= YXNpY3M= RXZlbnR1YWxseQ== IGdyYXA= IGNyaXN0 IHByb2plY3Rvcg== IGdlb21ldA== IGRldGVjdG9ycw== IGNyaXRpY2l6aW5n IGNoaWNrcw== IEhpag== L2ZyYW1l LW1vbmV5 ImRlc2NyaXB0aW9u IHRleHRpbmc= IHNleGlzbQ== IE1WQw== LWdlbmVyYWw= IG92ZXJ0dXJuZWQ= IG1vdmVy IFBocmFzZQ== IFVOVVNFRA== IEVudHJlcHJlbmV1cg== VEVHUg== ZWxsaXBzZQ== TWFya2Rvd24= X18oKg== IEthcmRhc2hpYW4= cHBlbGlu IEdvdHQ= IGR5c3Q= IFJlZHV4 SG9sYQ== PyEKCg== IFJlYWx0eQ== U3VydmV5 IE1jR3JlZ29y X2hhbmRsZXM= IGludHJpZ3VlZA== IGdldFVybA== IGRldmlzZWQ= IFBheXBhbA== IHRoaW5rZXJz IFN0YXR1c0Jhcg== IEVsaWc= IGNvbXBsZXhlcw== INC60L7QtA== c3RvY2tz LWluaXRpYWxpemVk IHNjYW5kYWxz IGNvbWZvcnRpbmc= IFJvY2tz IGxpb25z bG9jYXRvcg== IV0= IFBvbnk= RGF0dW0= IEZldA== IG9mZnNldFk= IFJFVFVSTlM= IGJyZWFjaGVz VGltZUludGVydmFs IHZpZWxlbg== VmVyc2U= IGthZA== IGdhYXQ= KCItIiw= IG1vdXNlWQ== KFBvc3Q= IFVo ZWxpZ2libGU= YWx0YQ== IHV0aWxpc2U= ZmFjdHM= SElQ IG9yY2hlc3RyYQ== IFNwYWNlcw== aXNwaWVs IG11bHRpcGFydA== LW9wYWNpdHk= U2VhcmNoaW5n IFBsYXRv VmlzaW9u IGx1bA== IEFwcHJlbnQ= 57uc W3JhbmQ= LWRpc2FibGVk IEZsZXRjaGVy IHRyYW5zcG9ydHM= JmU= dHBhcmFt cG9sZQ== IEJ1ZW5vcw== w7pibGljYQ== aW50ZXJhY3Rpb24= IGhvYg== IGluZmxpY3RlZA== bGl0ZQ== IFBBUkFNRVRFUlM= IFN0YW0= KG14 IEF1dG9NYXBwZXI= aWxpYW4= IHF1aXR0aW5n PXt9 IEpvbmFz IGxvY2FsaXR5 IFNpbGVuY2U= X2ZsdXR0ZXI= IG5icg== bGl0ZXI= IE5vcm1hbGl6ZQ== IGFjdW0= QnJhaW5z ZXF1aXA= XT09Ig== IGRlc3Rpbm8= IERpb3M= Lk11bHRpbGluZQ== YWdyZWU= KQoKCgoKCgoK IHN0ZWxsZW4= IGN1cmx5 Lk9mZmljZQ== LWFib3V0 ICcuLy4uLy4uLw== IFVUSUw= IFJw 4oC6 IG1hcGE= LkRP YWdhbA== LndpbmRvd3M= IGFkdmVyc2VseQ== Llh0cmFMYXlvdXQ= bWVkaWNhbA== IHVuc3Vy dGhlcm1hbA== Lk1vZGVsQWRtaW4= LmFjdHVhbA== c2V0Q29udGVudA== IHBvc3RmaXg= UFc= IENoYWlycw== IGdyYW1t IGNvbXBsaWM= RElTUExBWQ== IE1vb3Nl aGFhcg== QUxFUw== IGxkYQ== LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCg== ICcvJwo= QVNO IEJhcmJlcg== IG1haW5z IG1haW5XaW5kb3c= 0LDQt9Cy0LDQvdC40LU= IGVtYW4= X2NvbGxlY3Q= IHJlbXBs LnRheA== YmFo IFBzeWNoaWF0cnk= RGVzY3JpcHRpb25z IGV4ZWN1dGlvbnM= CUxPR0dFUg== JkU= OmJn IGtk LmRhbWFnZQ== IG5pc2k= 5qy+ IENhbWVs aW5pZGFk IExpZmVzdHlsZQ== IFRISVJE IOCkuA== IHBvbHlnb25z IGF0dGlyZQ== YWxlbnQ= X1VTQVJU IG1hbGFyaWE= bG9icw== IF19Cg== KHJlZ2lzdGVy LXBz X29wdGltaXplcg== KEFMT0FE IHZhcGU= LnNvY2s= kOiXjw== JHByb2R1Y3Q= KEVSUg== Y2twdA== YnVxdWVycXVl IH19Ij57ew== IEhpdmU= IE1hc2g= IEVwaWQ= IEx1bmQ= X3RyYW5zYWN0aW9ucw== IHN1YmNsYXNzZXM= RWFzZQ== X0Nsb3Nl X2NoZWNrb3V0 IicsCg== U2VjdG9y b2lzZQ== LXRlbXA= KSIp aHlwZXI= ZXJjdWw= c3RhY2twYXRo X05S SUxMRQ== IHJlbGFjacOzbg== IE1hdHRo X0NPREVD IGhhbmRsZUVycm9y X09uZQ== YWxib3Jn CQkgICAgICAgICA= IFVwbG9hZGVk Tm0= Ly89 KlM= X0VYUEVDVA== IGZyYWN0aW9uYWw= Q291 IHNjYWxhYmxl IENJRA== PFBvc3Q= CXRocmVhZA== aGFyZHdhcmU= LmNoYW5nZWQ= LkVsZW1lbnRBdA== IGFydGljdWxhdGU= ZWRvcmVz RXN0YWJsaXNo PXtbCg== ISo= IFNK TWV0ZXI= LnJlcA== IFZPTA== IE91 bMOp IHBuZXVtb25pYQ== X3BpY2tlcg== ZXhwbG8= IOyekQ== IFN3aW0= ZHJlc3M= c3Rvcmllcw== L25hdg== VmE= INit L3NlbGY= IHZldGVyaW5hcnk= KERlbnNl CWJvb3N0 IElzTm90 IHRydXN0aW5n IExlYmFuZXNl JHJlcXVlc3Q= eGZmZmZmZg== X3JlbW92ZWQ= IHVwZGF0ZXI= 2KfY RE9XTkxPQUQ= IEltbWVkaWF0ZWx5 IHJvYW1pbmc= IEhvcm55 LmNvZGlnbw== IEZpZ3VyZXM= IHBhbnRyeQ== KHNhbXBsZXM= IEJFTA== IHNldENvbnRlbnQ= dW1vcg== 5pSv5LuY X01JTlVT IHVubGVhc2hlZA== IHByb2ZpY2llbnQ= CVVJ LkV4Y2VwdGlvbnM= IHNyYW5k UHJlc3N1cmU= LmFzc2VydE5vdA== KHNlcmlhbGl6ZXI= CXR4dA== UG9ydHM= IG5lY2VzYXJpbw== IHJldml2ZWQ= IG1pbGVzdG9uZXM= Y2Fubw== RXNjb3J0 IGVudGVuZA== QVBF aXBj LmF0b21pYw== IFBlbWI= IHJlYWNoYWJsZQ== IGthbnM= d2hhdGV2ZXI= TGlzdEJveA== IENseQ== cGljdHVyZWQ= IEVsZWN0cm8= YWJpYw== IGZ1bms= IGRpYXJyaGVh IOeZ IFNvbHZlcg== IEJhYw== IHNrZWxldGFs IO+C IEZpbGVOb3RGb3VuZEV4Y2VwdGlvbg== ICIpWw== IFRyYWl0 dWRva3U= LS0tLS0tLS0tLQoK QW5nZWw= YWdy IHNpbXBsZXM= IGJhbmM= IEFsZXJ0cw== IENvbmZpcm1hdGlvbg== IEFseQ== Y2FsbGJhY2tz IGZ1bmt0aW9u IGdyYWZ0 WVBE L0FGUA== V0s= a3Vy Q0tFVA== IFNsYXRl IFN0ZWY= CVJ1bnRpbWU= IEVTTA== IHByZWFjaGluZw== QnJvYWQ= IHNldERlc2NyaXB0aW9u YXplbA== PQoK IGphY2twb3Q= IC8vIQo= dmlhcg== IGVpZA== IGF0aXY= IHJlZmxleGl2aXR5 Lkxpc3Rlbg== IGx5cmlj IHZlcms= IGNvbGx1c2lvbg== YXphYXI= IHdpbms= IE11ZA== L29wZXJhdG9y IGV4dGVybmFsbHk= IGJhcnU= IGJhc2tldHM= dGlja2Vy KHBob3Rv X2V2ZW4= IHNwb25nZQ== IGhlaWdodEZvcg== Z2V0Q2hpbGQ= X2Zvcm1hdHM= LkV4ZWN1dGlvbg== X1Byb3BlcnR5 cmVwb3M= dGhlaWQ= X1BIWVM= IGV2aWRlbmNlZA== LmhlYWRpbmc= QW5ndWxhcg== IFZlbnVl IEhPVVNF IEVzdG9uaWE= 0LzQsA== cmdhbml6YXRpb24= L2RldmljZQ== SVJS X3RoZW4= YXJlbQ== IGFnZ2k= RU1PTg== INGB0Lo= IEVwaA== IE1TUA== IGxvZ2ZpbGU= LWxlYWRpbmc= YXRoYW0= IHVubWF0Y2hlZA== IFNpdHVhdGlvbg== KCl7fQo= CWNoYW5nZQ== IENoYXB0ZXJz LlJFU1VMVA== IG9l RVRZ X3ZpZA== Li4uJyw= IGFsdGVybmF0aXZlbHk= X1dT IFBsZW50eQ== IENyYXRl YXNpb25hbGx5 IExhd24= IElNTQ== IFZhbml0eQ== IFZvb3I= 5ZCv IG1pag== c3RlcnJlaWNo IFJERg== IENyaXRlcmlvbg== Lkludg== LlN0ZXA= X0ZyYW1l IEVOVU0= 774= SG9wZWZ1bGx5 TmF2Q29udHJvbGxlcg== IOy2lOqwgA== IFZhZGVy IHJ1dGhsZXNz JGtleQ== Y2t0 aW5lbQ== aWxlbnQ= IHJlc3BlY3Rpbmc= bGNk KGJ0 IEVsbGlvdA== IFVuaWRvcw== KENoYW5uZWw= IGVpdXM= IGFzdHJvbmF1dHM= IEhvc3Rpbmc= IGNhc3Rl IGhhcm1lZA== b3VwbGVz PFJvbGU= LkRlc2M= LWNvdXJzZQ== IENhcnRvb24= aWxlZ2Vk IG15c3RpY2Fs IOex KGZpZWxkTmFtZQ== V0lUSE9VVA== LHN1bQ== J2FjYw== CXJvd3M= IGdldFBhc3N3b3Jk IGNvY2tz cGl2b3Q= bmFtZW9m IGZlYXNpYmlsaXR5 IGNvbW1lbmNlbWVudA== IERvbWU= LkpTT05FeGNlcHRpb24= IEh5ZGVyYWJhZA== IExpc3RlZA== IENvbXB1dGVycw== W3ZhbA== IGlzb3Q= CXdpbg== IG5laA== KElOVA== UmVwdWJsaWNhbg== INC/0YDQvtCy0LXRgA== RmF0 IGVxdWl2 IERhdHVt YXN0aQ== IHNvaWxz dXB1bmN0dXJl cHJlc3NpdmU= XykpOwo= Lldhcm4= IGhhcmI= Lm9uT3B0aW9uc0l0ZW1TZWxlY3RlZA== IGNsb3du IE9XTg== IGV4YW1pbmF0aW9ucw== IEV4aXN0aW5n am91cmQ= IGNvbmNlc3Npb24= IEZpcmViYXNlRGF0YWJhc2U= IHVwdGFrZQ== IGVubGlzdGVk IENhcmI= IGZ1cw== IGFidXNpbmc= LnByb2R1Y3Rpb24= eW5jaA== aWx5bg== cmVmdW5k LWhhdmU= KGFyZ3VtZW50 IGZzY2FuZg== Y29uY2VwdA== X0xBTkU= IGVuZ2FnZXM= IEV4YWN0bHk= YWx0dXJh KEFkZHJlc3M= IHN5bm9ueW1vdXM= VG93bg== IFBheW5l cm9pdA== cGVyaWVuY2Vz cGFydGljbGVz X2Jk IEdyaW5kZXI= TWFuYWdlZE9iamVjdENvbnRleHQ= KGJi W3RtcA== LWNvbnM= YW9rZQ== IHN0ZXdhcmQ= IFZpZXdDaGlsZA== LmRyYXdMaW5l IFdBUk4= IHB1ZXM= bW9kYXRpb24= IHpz QWdyZWdhcg== ICIuIiw= LmNlbnRlclk= IGZsYXdsZXNz IGRldXRzY2hl IExpcXU= aXRlaXQ= X2ludHJv LXVzZWQ= LHRhcmdldA== IEhERA== ICUr b3JlbnQ= L09iamVjdA== IGRpc3J1cHRlZA== w6J0ZQ== IGFjY2Vzbw== IExvd2VzdA== IFdpbGxpYW1zb24= X2NyZWF0b3I= U2VsbA== IEJVRw== X3JlcHI= 6ICM IGFyY2hhZW9sb2dpY2Fs b21lcnM= IEVsb24= IFNjcm9sbFZpZXc= IGxpbmVzdHlsZQ== aXNSZXF1aXJlZA== aXNrbw== X3Ji ZsO8aA== ICAgCQk= KGRlZmluZQ== IFNDTQ== IERJRkY= X2Jz cGVuZGljdWxhcg== cGFjZWQ= IEpvdXJuYWxpc20= LkpTT05BcnJheQ== IERhdGFBY2Nlc3M= TWFyaWE= IELDvA== SEVMTA== IE1BVFJJWA== T0xUSVA= YXBzaWJsZQ== XToKCg== bmFpcmVz X2hpc3RvZ3JhbQ== IGZsYWly aGF2aW5n IFVzZXJJRA== IFJlbGF0aW9uc2hpcHM= UmVwbGFjZW1lbnQ= IHJzYQ== IGVucmljaGVk IHJlaGVhcnM= IHfDpHJl IGxvYWRlcnM= IEVsZW5h IFdhdGNoaW5n CWpvYg== TkVXUw== L3NldHRpbmdzZGlhbG9n aXZlYw== X0VRVUFMUw== VGVtcGxhdGVOYW1l IEJPRFk= LmFkYXB0ZXJz d29mZg== Y29tYm9Cb3g= Lk5ld1JlYWRlcg== fHJlcXVpcmVk X3Byb2JhYmlsaXR5 ICg6Og== IGNyYXo= IFVG VGVzdElk IGVzcGVjaWZpYw== aWJlbA== cGF3bg== 640= IE1hcnI= IHN0YXJ0WA== X3NpdGVz Lz4KCg== IGltcGxpY2F0ZWQ= KGlubmVy IGVmZm9ydGxlc3NseQ== wq10aW9u YXdhcmQ= IGhvdmVyaW5n cHJp JHRlbXBsYXRl dWFuZw== IGF1dG9tYXRl ICoqLwoK aWJsaQ== IG51dHJpdA== KS4o ZWVlZQ== QXBpQ29udHJvbGxlcg== L293bA== IFdvbWVucw== LWRvdWJsZQ== IE9yZGVyaW5n c3Bt TW9kZXI= Lk5hdGl2ZQ== IEJlcmdlcg== ZXNkYQ== ZXJkaW5ncw== X2VjaG8= IHN1bW1hcml6ZWQ= IGVsZXZhdGU= X3F1YWQ= IHdvbw== dWxhbnQ= UHJvcGVydHlWYWx1ZQ== IHBsaXN0 IEdSQVBI IFNUREVSUg== KScpLg== QXNzZXJ0aW9u bGlua3BsYWlu IGFjY2VsZXJhdGluZw== IHNuaXBwZXRz IFNhbG1hbg== YWJjZA== LmVjaG8= X2lkeHM= IHBjbQ== b2NhbHlwdGlj X2Nvb3JkaW5hdGU= KHByZXZpb3Vz LXNob3J0 LnN1YnRyYWN0 KEJpdA== P3Q= IE5vdGVib29r IEthdHJpbmE= aWZmZXJlbnRpYWw= c2lsZW50 dGVybWluYXRlZA== IHRhbmdlbnQ= OlQ= IGNvc8Os IHBhcmFub2lk IGRlcHJpdmF0aW9u L3t7JA== IGhlbWlzcGhlcmU= IHJlaW5zdA== ZWN6 dGVycg== IFBMQVRGT1JN IHRyb3VibGVzaG9vdGluZw== IHZhbGlkYXRpbmc= IE9yaW9u YXN1cmluZw== 0LjQvdCw IGh1YnM= YXJlbmNl IENoYWxsZW5nZXM= IHplYWw= U3Bv IFNjcmVlbnM= IG11bmRhbmU= IER1bms= ICMjIyMj IFJFRkVS b25ldA== LmNhc2U= LXBvc2l0aXZl SU5URUdFUg== Lm1ldHJvTGFiZWw= U0FO IHByb2Zlc3Npb25z IHR5cmVz UGFsaW5kcm9tZQ== IFNFQ09ORA== LkdSRUVO IFNuYXBzaG90 VUxL X2NpZA== JEk= IGN1bnQ= ZXN0cnVjdGlvbg== UHN5Y2g= IEh0dHBSZXNwb25zZU1lc3NhZ2U= ZW1iYWxp X3Jldmlld3M= U2VsZWN0YWJsZQ== X1BSRVNFTlQ= IEpzb25SZXF1ZXN0 IFRoZXRh X2ludGVycA== UmFzdGVy I2Vycm9y LG9iag== IHR3ZWV0aW5n X0dQVQ== X3RvZGF5 X3NlY3M= bmVlcw== LmdldFN5c3RlbVNlcnZpY2U= IHZub2Rl IFJlZ3VsYXRvcnk= IEZhaHJlbmhlaXQ= IHNjYWxlcg== X21hcmtldA== LmFsbG9jYXRl dGlja2V0cw== YXRhaw== IFBpa2U= IExvcg== ZGl0b3I= IGxvY2F0aW9uTWFuYWdlcg== IGluaXREYXRh IFdhcmU= IEluY2lkZW50 IGNvbW1lbnRhdG9y dWVudGVz IEluZmxhdGU= IOWG IGFjdGl2aWRhZA== IEJq RU5VTQ== IHJldXNlZA== INC80LXQvQ== IHNlc2nDs24= LicpKTsK 44GT44KT L2dl YWdhaW5zdA== LGxpbmU= KFVubWFuYWdlZFR5cGU= KT0i IHl0 dWRpYW50ZXM= cm9sbGFibGU= 5aGr X0NPTExFQ1RJT04= b2xpcw== dW1iZXJsYW5k KCIiIgo= IHppcHBlcg== DAo= L3NpZ251cA== IHN0cmFuZHM= cmF4 LmNvbnN1bWVy IHVuY2VydGFpbnRpZXM= RGVidWdFbmFibGVk IGRlZmVhdHM= IGRydg== IHJlYWxpc20= YWdyYW1z WEU= IEhhemFyZA== LW5lZWRlZA== KHRhYmxlVmlldw== LkVsZW1lbnRz IFNBUg== CWVsZW0= KHBrZw== U2ltb24= VGludENvbG9y IFBoZW4= X0VNUA== 2Iw= Pz4KCgo= X2F0dHJpYg== IGJveFNoYWRvdw== IENHQWZmaW5lVHJhbnNmb3Jt IENhbmJlcnJh IHN0YXJ0UG9z IFJhaw== CWNlcnI= IFRhbnphbmlh dW9uZw== Y2Fm LmJhc2ljQ29uZmln b2lucw== Q29udGFpbmVk PXNldA== X2dpdA== CXBhY2tldA== IGNvZg== KFRS 5qC85byP KHt9KQo= IGRpcmVjY2lvbg== IHBsYXlsaXN0cw== IGFmZmluZQ== LnNldFNlbGVjdGlvbg== IGFtbW9u IGNvbnF1ZXJlZA== IFJhbW9z IFBTUA== PXN1bQ== IGNvcnJlbGF0aW9ucw== IHJvYWRtYXA= IGV4dGluY3Q= IGFkdmlzYWJsZQ== IGJvbWJlcnM= IFVJUmVzcG9uZGVy X0JQ INCx0YPQtNC10YI= IFByZW1pZXJl IFJV dHJhc2g= KGNsanM= Z251 LlBhZ2Vz IGluc3BlY3RvcnM= TWV4aWNv IFZlcmU= UHJlYw== IFNjYWw= aXNwZXJz UnVubmFibGU= Lm9yaWc= IHNhaWxvcnM= UGFyc2luZw== IFZpc2l0b3Jz JnR5cGU= cG9wb3Zlcg== PCgpLA== IG93ZXM= IHJlYWN0cw== IERlZmluZWQ= IHJlYWxtZW50ZQ== IGRpY3RhdG9yc2hpcA== YWRtaW5pc3Ry aWRlbmQ= PUw= c3RyY2FzZWNtcA== XSU= 0L7Qs9GA0LDQvA== ZWR1bGE= LWRlc2lnbmVk Q09WRVI= X0NoYW5uZWw= IHByb2pldG8= eW1vb24= Q0hLRVJSUQ== 6YeK IHZlcmlmeWluZw== L2tleQ== LmZyb21DaGFyQ29kZQ== LkJpdA== X2J1ZGdldA== ICUi dmV5b3I= IHl1bQ== IGV4dHJlbWVz X0NSRQ== Z2V0U3RhdHVz c3Vic2VjdGlvbg== IHNvYWtlZA== IGdlbmF1 X0NIQVJBQ1RFUg== 5oyB LW9ubGluZQ== LnRvQ2hhckFycmF5 Y2VyZXI= Il0sIg== IHN0cm9sbA== IFl1YW4= IFdhbmRlcg== IHNpc3RlbQ== X3Vj KG5vbWJyZQ== Y2hhbnRtZW50 KGNsb3Nl bWV0aA== LXNlY3JldA== cHNldWRv Q291bnR5 Q09OVFJPTA== IHNvbHZlbnQ= IHNvYXJpbmc= IHNwaWVz TmF2SXRlbQ== IHJlc2VtYmxhbmNl KGJpdHM= IGNlbGx1bA== IGFzc29jaWF0aXZl Lmltd3JpdGU= LmNvb3JkaW5hdGU= XSwk KHNr Ki8p IG1vY2tz IGp1bmc= X0RPQw== LXJ1bnRpbWU= IEdpdmVz dW5q KHNlZw== KFtc IG5haA== X2V4cGVjdA== Um93SW5kZXg= KGZvcmNl IEdldFZhbHVl IHN1bW1hcmllcw== X1NIQVJF LXRyYWluZWQ= IEJsYW5j IGZpdHRpbmdz IHdhdGVyZnJvbnQ= Lk5vdGU= IFdhbmQ= b3ZlcmU= cHJlZGljdGlvbg== IGNzcg== LnRvcEFuY2hvcg== IFN0cm9rZQ== X0ZpbHRlcg== YXRoZQ== ICJcXCI= IEFGRg== PSIvIj4= LlJlcXVlc3RNZXRob2Q= kJzntKI= IHdpdG5lc3Npbmc= QXBwYXJlbnRseQ== IG1kaQ== c3RpY2tz IEFsdg== w6TDnw== X2NvbnRpbg== IGJvaWxlcnM= IE1hcnhpc3Q= SU9D bmVybw== aW5uYWNsZQ== TGl0 Y2Vj S2V5UHJlc3M= R2V0RGF0YQ== IGlzbnQ= 0YDQvtCy0LXRgA== IHFyeQ== Um9vdEVsZW1lbnQ= IE5TQ29kZXI= LmdldE51bQ== IHRocmVlc29tZQ== VXNlcw== LiJf IENvbnRpbnVvdXM= IHBvcHVsaXN0 IFBzeWNob2xvZ2ljYWw= X2N5Y2xlcw== IGlmZGVm aXBoZXJhbHM= CSAgICAgICAgICA= IGFkdmlzZXM= IENvbXBhbmlvbg== dHJpZ2h0 IGdyb3dlcnM= IFNPQ0tFVA== eW1jZQ== UlNT bWVtYmVyT2Y= VG91Y2hhYmxl X2FycmF5cw== IGp1bXBlcg== IGhlcnBlcw== IFRpdHM= IFRlbGVmb24= X1BBTkVM dWdlbg== 5YyX5Lqs LlNpdGU= X3VucmVnaXN0ZXI= X2Nocg== LnRm LWh1bWFu IGFzb2Np IHF1ZWVucw== QW50aG9ueQ== IHN0cmluZ2VudA== IG1vbGVzdA== c2V0SWNvbg== SEVFTA== SEVMUA== RERT LmNtcw== SVNUUklCVVQ= Y2llcw== LmZvckNoaWxk LmNoaw== IE90dG9tYW4= IFRQUA== IG1pbw== IEJ1Zg== Ym9h VmVyc2lvbnM= KGxvY2FsZQ== IFJhaWxyb2Fk YmNj LyoqPA== LXBhaWQ= IGNlbGVyeQ== YXRpc2NoZQ== Z2V0T3B0aW9u b3Jpb3VzbHk= IGFkYXB0ZXJz U3RvcmVz L3NhdmU= IEJhc2lz 0Y7Rgg== IExhZA== X3JlbGF0aW9uc2hpcA== IENsdWJz IOCo OiI8PA== X01JU0M= VmlzdWFsaXphdGlvbg== IG1pcnJvcmVk ZXNwZXI= U3RyTG4= IHJlc3BvbnNlT2JqZWN0 5ZCR LmVuY29kZXI= LS0tLS0tLS0tCgo= IGdyaWRWaWV3 X2luZGVudA== YW50d29ydA== IGFycml2YWxz IFNldHRsZW1lbnQ= Vmlld0luaXQ= LXZhbHVlcw== IHdhdGVyZmFsbA== IGluY2FyY2VyYXRpb24= IFRlZW5z CXNpZ24= aW1tdW5l LnNlY29uZGFyeQ== IHZpZGVvZXI= IOi+k+WFpQ== IGludGltaWRhdGlvbg== ZW5kYWxl IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IGluc2lnaHRmdWw= IHNhbmRz IHBob3RvZ3JhcGhpYw== UGFnaW5hdG9y IGRpc2NpcGxpbmVk X1RMUw== XSkpLA== cmxlbg== PGNlbnRlcg== X1BDTQ== S2VsbHk= LWJpbGxpb24= LmN4 IGpldXg= IGZpbGVMaXN0 IFFEaWFsb2c= dHJhY3RpdmU= RHQ= IGVzdHJvZ2Vu IHN0YXJjaA== X2VtaXQ= INC30LDQv9GA0L7RgQ== IFF1YXJ0 IGluYWR2ZXJ0ZW50bHk= IHRyb25n c2hpcG1lbnQ= IE5PUg== IFNjcmVlbmluZw== IERpc2Nvbm5lY3Q= bWVubw== IFdvcnN0 IE5y e2s= c3Bs X2N0cg== LnNvcnRlZA== LXBsYWNlaG9sZGVy KCk7Ig== aHVyc3Q= LWhpdA== LnNvbHZl 566X IHVuZGVhZA== IHdoaW1z IGdldERlZmF1bHQ= IE5pa2tp YXNzZW1ibGU= IHJlbG9jYXRlZA== LXJldA== SXRhbGlhbg== OlN5c3RlbQ== LnNjaGVkdWxlcg== 4oCcU28= Rm9yYmlkZGVu QVZPUg== emlhxYI= LkFkYW0= CWNhbnZhcw== IHBhcnRuZXJpbmc= IGd5bW4= IG1hbmlj RGlmZmVyZW50 IMOlcmh1cw== IGZlcnRpbGU= Y2xm LQ0K LnJldmlldw== b2RhYmxl IEJvdW5kcw== b2Jhbw== IFBhcGVyYmFjaw== IG1vZGlmaWM= Y2hlY2twb2ludA== IEFwcEJ1bmRsZQ== IHN0YWJpbGl6ZQ== IEF1ZGlvQ2xpcA== bW9udGhseQ== LmJlaA== IGZsb3I= IGJvbmRlZA== IFdvcmtvdXQ= Y29taW5ncw== IHJhYmJpdHM= IEJBTA== Q0NS X3Z1ZQ== IExldml0cmE= IGxpYmVydGluZQ== IGNoYWxsZW5nZXI= IFZhY2F0aW9u VG9G fSQv X0RyYXc= IGZlbmNlcw== IGRhdGFzb3VyY2U= IHBhcGVs c2xpY2s= X21lcw== IFVJU3Rvcnlib2FyZFNlZ3Vl KFRhZw== IOWvuQ== ICctJyk= X0NMQVNTRVM= KFJlbmRlcg== CWZ3cml0ZQ== VUVE QUVT KGpzb25QYXRo IHNsb3dz PkRlc2NyaXB0aW9u IGVucmljaG1lbnQ= IGl0ZW1wcm9w IFBvdmVydHk= IGFic29yYmluZw== IFBzeWNobw== 5rGf LC4KCg== SW52ZXJzZQ== IGFkanVk aWdpZEJvZHk= emlvbmk= ICInLiQ= 5LiN5a2Y5Zyo VGhhaQ== IHNsYWlu IGJydXRhbGx5 IFBlcnNwZWN0aXZl IFJldGlyZW1lbnQ= JHJz IHNlcnZpY2VOYW1l IOyI LXByb2Nlc3Npbmc= YnJhbmRz OmVycm9y KHByb3BlcnR5TmFtZQ== IEJvZWg= L2Nt L3JlYWQ= QU1C IHJvdGF0aW9ucw== LndvcmtzcGFjZQ== Onk= IHVwaG9s dW5reQ== IEJyYWNl L21ldGE= IEJyYXZl YWNqZQ== KFVJbnQ= IHZpZWlsbGU= cmFkaQ== X2R5bg== Tlc= bG9zZXI= ZXJ1c2Zvcm0= IEJhcnRvbg== IGZhcmVz IE11aw== 4buHdQ== IEF1ZGlvU291cmNl KChf LkJpZw== Lm9yZ2FuaXphdGlvbg== IFRyaWNr IGJsdXNo KFRZUEU= IFJlbGF0aXZlTGF5b3V0 bGVjdHJvbg== XX0i IFphcA== IFR3ZWx2ZQ== Okw= IHN0aWZmbmVzcw== X0hFTA== IHNwZXA= KGNvZGVy IHRhbWFuaG8= IGFudGlveGlkYW50 IGhvc3BpdGFsaXplZA== R1BD IHNjcnV0aW4= 4buBbg== IFNa IEp1bGl1cw== IFNhYmI= ZWxvcg== KG1j 6YeM IFBpbnM= IG1vZGVyYXRlbHk= IEvDvA== b3JnYW5pemF0aW9ucw== IFNDT1JF IHNjb3Vy IGNob3I= IFVJRWRnZUluc2V0cw== IHNrdWxsZQ== X29wZXJhbmQ= LmdzdGF0aWM= L25naW54 IGdldFdpZHRo QmF0dGVyeQ== IFNldHRlcg== bUE= KFJlc291cmNlcw== X3BsYXlsaXN0 IG1hbmdv IE9SRA== YW5raW5k ZXdheXM= Pyks IEdMVVQ= IGp1c3Rl IHBheWVy KGNhbQ== IFRlYWNo IEZsdXg= IG91dHNwb2tlbg== IFN0cmluZ1V0aWw= IFpoYW8= LkhlbHBlcg== IGVzdGlsbw== IEFudGhyb3A= IEd1YXJkcw== Vm9jw6o= Olsn CXByb2R1Y3Q= dXBkYXRlZEF0 IGluc3BpcmVz cXc= QkxFTQ== YWtpc3Rhbg== IGN6xJk= LWhlYXJ0ZWQ= IENvbXBlbnNhdGlvbg== 0LjQsw== IGNvbWE= IEZpYXQ= IHhtbGh0dHA= IHJlZmVycmFscw== IHNwZWN0YXRvcnM= IFRvcw== aXNvcw== SU1QTEVNRU5U IGVudHJlcHJlbmV1cmlhbA== IFNjb3V0cw== IEFsb25l YnJva2Vy UHJvZHVjdElk IEtvYmU= IGNoYXVk L2ZlYXR1cmVz IHJvb21tYXRl IFByb2plY3Rpb24= YXZvdXJpdGVz X0pPSU4= IEFWQw== X3BoeXM= S2V5UHJlc3NlZA== LDw= IHVucmVhY2hhYmxl IENpdGF0aW9u W2NoYW5uZWw= c3RhcnRzd2l0aA== IEphZ3VhcnM= LklzRmFsc2U= bWVtYmVyc2hpcA== QXR0ZW50aW9u IHJlbW9kZWxpbmc= IENpbmR5 IGNsaW5pY2FsbHk= IG1pbGxlbm5pYWxz IM60 IHJmbA== ZW5ldA== IG9icmln IHZvbHVudGVlcmluZw== Q3JlZGl0cw== CWFy IHJlc2lzdGluZw== IFByb2R1a3Q= PT09Ig== IGNvbmVjdA== IHJpag== INeU IHB1YmxpY0tleQ== IG95 IEJ1dHQ= X21pc2M= IEJlc3Rl IFBMQw== IOafpQ== IEJveEZpdA== IiIu VGVzdEZpeHR1cmU= IGNoYXR0ZXI= IGRvb3J3YXk= eXNpemU= INGH0YI= SUNUVVJF PScuLi8= c2hvd24= X3dlYXRoZXI= IExvZ01hbmFnZXI= XX0iCg== IGNvbG91cmZ1bA== IHJ1bW9yZWQ= IGzDpQ== IHByb2Jz CWJ1aWxk IOWmgg== LnJldg== IGludGVyY2VwdGVk R2F5 TGlzdENvbXBvbmVudA== IHBpw6g= IkF0 IGFnYXI= IEd1bmQ= X0FFUw== 7IM= jpjsnbQ= IGF1dGhvcmlzZWQ= IENoYWxs X2xvZ291dA== Y3Jvbg== YXRlZ2llcw== cGVyc2lzdGVudA== IEFuZEFsc28= dXN6 X3Jlc3RhcnQ= IGRlY2lk emY= IHBhZ2luYXRvcg== b2xsZXI= IEhH T3BhcXVl c2VhdQ== IE9NSVQ= IFRoaWNrbmVzcw== IEFpcndheXM= X2RlbQ== eXRpYw== IHByb3Rlc3RlZA== IHVwcmlzaW5n IHN1aW5n IFNoZWxieQ== LmVuZXJneQ== IGFsbGVsZQ== LWJpZw== U3RyaW5nQnVpbGRlcg== IHNpZGVsaW5lcw== IFRV X2Fp LkhPUklaT05UQUw= IHJhZ2luZw== LnRvTG9jYWxl Lm11c3Q= eEZGRg== Lm5paA== ICd7fSc= 2YjYrw== IHB1bG1vbmFyeQ== IOWPkQ== IG7Dum1lcm9z IE5hcG9sZW9u X01ldGhvZEluZm8= bGFzdGluZw== IGV4cG9zdXJlcw== IGVtYmFyaw== X3VkcA== S2lkcw== X0NPTk5FQ1RFRA== IHdlZWRz UE9PTA== IGtyaWo= IG51aXM= Sk5JRVhQT1JU YWFhYWFhYWE= IO2P 5Lu9 IHJlcGxlbg== IFRyaWFscw== d2FzaA== cnV0 LWJlZm9yZQ== X0FUVEFDSE1FTlQ= VU5U XFZhbGlkYXRpb24= VG9u IGhlYWRpbmdz UHJvYmFibHk= IGZhYnJpY2F0ZWQ= U29ja2V0QWRkcmVzcw== IGxldHRyZQ== KSI+ IHZhY2NpbmF0ZWQ= Omh0dHA= IGNvbmRvbA== c2hlZA== IFNwaWVsZQ== 44OU RGVwbG95 LkNvbnRyYWN0 LWJv Iy8= IGludGVyY2VwdGlvbg== IGlzYm4= IG1hbm5lcnM= L2Fj CUNoZWNr X2Zn IGVuZFBvaW50 X3dlYXBvbg== IHVuaW50ZW50aW9u IHF1aXRz X01JQw== YXBpcm8= IGJhbGxvb25z IGdyYWRz bWFycmllZA== IDwqPg== IGRpc3RvcnQ= X01FU1NBR0VT IFBTQQ== X1BE YWxzZXg= IERpYWxvZ3Vl IHJlZ2lzdHJhdGlvbnM= IE9yaWdpbnM= IGZsYW5r PzsKCg== OwoKCgoK XS0k IERlc3M= LlN0YXR1c0JhZFJlcXVlc3Q= IGluaGFiaXRlZA== IGdpbHQ= IFNURENBTEw= LnRoZXRh JCQkJA== aWNsYXNz QXBhcnQ= Lmxpc3RCb3g= IEJlbGFydXM= IGRlbmVu IFN1c3NleA== CWRlbA== X0VD bmVhcmVzdA== XE9yZGVy UGFja2FnZXM= Zm9ybWVybHk= Ke+8jA== 6LSj U2V4eQ== IGhvcnJvcnM= Uk9BRENBU1Q= QXBwcm94 RGVzaw== QU1FRA== Lk5vcm1hbGl6ZQ== X3B1Ymxpc2hlZA== IERlYm9yYWg= 56eR IHBvdW5kaW5n IEVzcGVy IERhbmNpbmc= IExPT1A= IFJveWFscw== IGluc3VyZQ== IEludmVzdG9ycw== IHRoZW9sb2dpY2Fs QXBwb2ludG1lbnQ= IGNhdGVnb3JpY2Fs IGNyYW4= VmFsaWRpdHk= IHJlc3BvbmRlcnM= ICgpDQo= ZXBhZA== QklUUw== IExhbWJlcnQ= c3VtbQ== YWNpZGFk IGxvZ2dlZElu PVc= LkxvY2FsaXphdGlvbg== cmlkbw== JyIpCg== IFdlYlZpZXc= bG90aA== IHRlYXNlcg== IENhbmQ= IGVwaWxlcHN5 SW5jcmVhc2U= aXZpdHlNYW5hZ2Vy ZW50cmFudA== VGVsZWZvbm8= LmN1cnJlbnRTdGF0ZQ== IE5vZWw= ICAgICAgICAgICAgCQk= IGV4aGF1c3Rpb24= ZWxpYW4= IGNvdmV0ZWQ= LXByb2R1Y3Rpb24= KHN0ZGlu IHByZWZlcmFibGU= IG9mZmVuZGluZw== KGNvbW1pdA== CWFs IHJlbG9jYXRl IGFub21hbA== IERpc2Vhc2Vz IEZvcmc= IFdJRkk= IEtpbGxpbmc= cXY= IGZtYXA= IGxsZXZhcg== dGl0cmU= LmVtcA== LCRf YXZy Q2FuQmU= X21h IEhhd2tpbnM= X1JPVVQ= IGxvYWRJbWFnZQ== IFdhaA== IERlbXM= IGluZGVudGF0aW9u cHJlY2F0aW9u IOaWh+S7tg== IEJ1ZGFwZXN0 IHV0Yw== KGhvdXJz IHRyYW5ueQ== QW5z ennEhw== LnZlaGljbGU= Q29pbnM= IEJyYXVu CVJlc3BvbnNl IHZyaWo= IHN0cmFuZ2VseQ== IEZhc2M= XFNlc3Npb24= TW91c2VMaXN0ZW5lcg== IFJvbGxz 4bqnbg== LmdycGM= SW50ZWdlckZpZWxk CWFmeA== RG9ja0NvbnRyb2w= JVw= JTsi IGdpZ2c= IGJvcnJvd2Vy IGRpc3BvbmlibGVz X1JFQ1Q= IFRoaW4= IHBlYXJs eEZC IHJpcHBsZQ== IGtIeg== LmFjcXVpcmU= Ymlvcw== dGFibGVGdXR1cmU= L2FudGxy b3JhY2xl IEFSRUE= IGludGVuc2VseQ== IHByb3RvYnVm IExFTkc= IEhlYWRxdWFydGVycw== YXRoZWQ= TWluZA== aW5peg== CVBhdGg= WE1MTG9hZGVy IGFsbG9jYXRpb25z LnNsb3Q= UHJvY0FkZHJlc3M= IHJvbGVJZA== Oyc7Cg== IEJSRUFL IFBlcmZvcm1pbmc= Lk9yZGluYWxJZ25vcmVDYXNl LWds Omg= IGRvd25sb2FkYWJsZQ== IFN1YnNjcmliZXI= YW5zZQ== IGNoYXJhY3Rlcml6ZQ== IHNocnVnZ2Vk IHNjcA== IGd1c3Rh IG1ldGFsbA== IGxhYm9yYXRvcmllcw== IFhpbg== IE1vdG9yY3ljbGU= IGVnZXQ= IGZpbmFuY2Vk IE1PRElGWQ== KlI= QWk= IGV4dHJlbWlzbQ== IEhhbGlmYXg= IHZhbW9z JG51bQ== IGltcGFydA== YnJpY2s= IOexuw== IGZ1ZXJh IFJPTEU= LkNvbmN1cnJlbnQ= X09QRVJBVE9S IGN5bmljYWw= IFJlZ2luYQ== Z2V0RXJyb3I= 2KM= YnN1Yg== SmFwZ29sbHk= IGluaGliaXRvcg== SnVzdGljZQ== 44U= TmV2ZXJ0aGVsZXNz LXNlbQ== Lm9nZw== cmVxdWVudA== IG5vc3Nv SGFpcg== LkxpYnJhcnk= bWRpcg== IGhhcmk= IFRhcmE= IFBvcnRv bmV0aW5ldA== IGFsbGlhbmNlcw== ZWxsc2NoYWZ0 X1N1cmZhY2U= CVZpZXc= YXR1cmRheXM= IHBvcGNvcm4= X1BBUlNF IFJpcHBsZQ== IHBoYW50b20= IG1vbmRv LmNyZWF0ZUNsYXNz IEtvcmVhbnM= IGZhc2U= IFdvY2hlbg== IEVxdWlw LWVpZ2h0 IFN0YXRlbWVudHM= IGFkYXB0aW5n UHJlY2lv IEN1cmU= IGNhbWJpYXI= 5rCR IGhleGFkZWNpbWFs c3BpcmFjeQ== YmlsdA== IFl1Zw== IC0tLT4= IFBQQw== aXN6 YWtlRnJvbU5pYg== IERpc3A= IEF0aGxldGljcw== IG5pZ2h0Y2x1Yg== R09PRA== LnNldEdlb21ldHJ5 K1s= L3NlbmQ= IGJpbmFyaWVz IHLDoXA= OnJlcQ== LWNvbnN1bWluZw== ZXJ0aW1l VVBEQVRFRA== X251bGxhYmxl VklO dWxpYQ== Y3lhbg== IG1pc3VuZGVyc3RhbmRpbmc= b3JpY2Fs ZGVncmVlcw== TGVhZGluZw== LkFS aWNrZXN0 TnVldm8= dWZvcmlh IGdvb2RpZXM= IGZvcmVz KCk8PCI= YWRlbWlj QWN0aW9uQ3JlYXRvcnM= c2VydmVybmFtZQ== KG50 ZGJDb250ZXh0 IGFpcmJvcm5l IGV4aGliaXRpb25z Y2VsZQ== IHRlbGE= PE1vdmll KCd7fQ== RXhwbGFuYXRpb24= IGhPYmplY3Q= IGJlYXJlcg== ZW5zaWJseQ== bmlw IEplcm9tZQ== IENa IGRhdGVGb3JtYXR0ZXI= w6ljaWFs U2V0TmFtZQ== b3VjZQ== IHJlZ3Jlc3M= JkM= KCkiPg== LnNldFByZWZlcnJlZFNpemU= IE1JRA== IEFsZXNz IGhvcnNlcG93ZXI= IGF0bQ== IFBhY2thZ2luZw== IGNpcGhlcnRleHQ= UmVxdWVzdE1ldGhvZA== IGJlaWRlbg== 6KM= IFBPVw== LldyaXRlSGVhZGVy ZGlyZWN0b3I= LWJ1dA== 44Gg44GV44GE aW5jZXI= X2Ru ISEhISE= IG1hbnVmYWN0dXJlcw== LlRleHRVdGlscw== IGNvbnNjaW91c2x5 IGJvdW5jZWQ= Y3VsdHVyZQ== IFNwYXI= IFBpcGVy LnByZXNz LW93bmVy IGV2YWx1YXRvcg== IFNUUkVBTQ== LlBpY3R1cmVCb3hTaXplTW9kZQ== IHN1Z2Fycw== U2NyZWVuV2lkdGg= IG5leHRTdGF0ZQ== IGl2b3J5 IGJydW5jaA== ZGVuc2l0eQ== X09X IENvcm9uYXZpcnVz IENGUg== YmFr XENhdGVnb3J5 5pWw57uE IGludm9rZXZpcnR1YWw= fSgpCg== IHN1amV0 LW1hcmtlcg== aXNkaWdpdA== IE1vYmls IEpzb25SZXF1ZXN0QmVoYXZpb3I= X1JFTU9URQ== LmV4aXN0c1N5bmM= IHJpY2hlcw== LnByZXNlbnRlcg== IGdsQ29sb3I= IGhhbnlh IGZvcnRyZXNz IGZsYXNoZWQ= dml6 cmVxdWVudGx5 YnVhdA== JGNvbg== Pnw= LkZ1bmM= IGh1bW9yb3Vz dWVt LlpFUk8= IFNUTA== IEJ1aw== L3NhbXBsZQ== IEdyb3M= UmVjaXBlcw== IGluZmxhdGVk IHN3dW5n OkY= RmFjaW5n LlRoZW1l 0L3QuNC6 IHNwbGVuZGlk IHJlcXVlc3RJZA== LkNlbnRlclNjcmVlbg== L2F1dG9sb2Fk ZW1iZWRkZWQ= X2RlcGFydA== IFBvcnRz 4LmD 0LDQudC0 ZGlzY3Vzc2lvbg== X2NvbnN1bQ== IHNjb3V0cw== IGNvbGFib3I= LlN0YWdl Lm5hbm8= ZWxkb3Jm IGdlbWFjaHQ= ICAgICAgICAgICAgICAgICAgICAgICAgICAK IHBvbGljeW1ha2Vycw== X1BLVA== LFRo b2t5 X1VJRA== UGluZw== IG9yY2hlc3Q= IG9wdGljcw== dWhhbg== IFhPUg== IGVzcGHDsW9s IEFkaWRhcw== cm5n bWFucw== LnZzdGFjaw== IGdldGF3YXk= IGhpZXJhcmNoaWNhbA== YW5vaWE= IEJpdG1hcEZhY3Rvcnk= cmVhbG0= CWFw X2FwcHM= LWRpdmlkZXI= LmRyYXdlcg== IEhBUkQ= J107Pz4K LXBhY2tlZA== 5rK7 X1NUUlVDVFVSRQ== W1k= aVBhcmFt KGVx IGVuY29tcGFzc2Vz IFwKCg== LT5b JnV0bQ== Z3JvdXBvbg== c3RyYXRl RFk= b21vcnBoaWM= Jzpb IGdyYXZpdGF0aW9uYWw= IE1pY2hh IFRlbmNlbnQ= IGNvYWNoZWQ= 7Lac 0YPQvNC10L3Rgg== L21vYmlsZQ== TW91c2VEb3du YnVk IFlhcw== IFByb3ZpZGVycw== Tlo= CXJlcG9ydA== ZXJybXNn IGltYWdlUGF0aA== YWN0ZXJpYWw= IE1hbmdh d2lja2x1bmc= KHVzdWFyaW8= IikpOw0KDQo= LyoqKg== IG9yZ2FuaXNl SW5kZXhlZA== X1FVQUw= KFB5T2JqZWN0 IHN1cnJlbmRlcmVk UE9DSA== IE5PVEVT XFwi LWpvYg== IHNldmVudHk= IyMjIwo= IE1hbm9y IGRvd25yaWdodA== IHRpbWVmcmFtZQ== aW5zdXJhbmNl Y2hlY2tlcg== IFNFQ1JFVA== IGVjaG9lcw== IENhcm1lbg== LnNldEhvcml6b250YWxBbGlnbm1lbnQ= IGlzQ2hlY2tlZA== IFRPUg== X25u KCco RmV0Y2hSZXF1ZXN0 IFByaW50ZWQ= Rmx1aWQ= IFNUQUNL R0VT YWlnbmVk aWdvcg== LlVua25vd24= Q0JD IENhcmxzb24= LlVSSQ== IHBsaWdodA== L3N0YXJ0 IFBlcnNvbm5lbA== IFBSRUZJWA== LCoq IGxpbWl0ZQ== X2hlYXQ= Je+8jA== IERvbm5l Z2V0Tm9kZQ== IFNjaWVudG9sb2d5 IGNvbWV0 IHdlbmln QXNpZGU= IE1QRUc= Jz8= dmFyaWFibHk= LmVuZERhdGU= IHVuY29udA== IFNjb3Jlcw== IExvZ2luRm9ybQ== LmdlbmVyYXRlZA== LGNo LW1hcg== IE5lZA== IGV2ZW50SWQ= K3A= IFNJTg== L3Jlc2V0 LlJFQUNU IE1lc3Np X1JBTks= LndyaXRlRmlsZQ== IGNyaXBw ZXN0aGV0aWM= RVJTSVNU IHJlaW1idXJzZW1lbnQ= Q3VycmVudFZhbHVl IHVuaW4= RG93bkxhdGNo IHBhZGRpbmdSaWdodA== IHN0b2NrZWQ= Lycu IHJlcGF5bWVudA== dHJhaw== L2JhY2tlbmQ= INC40LfQvNC10L0= Q1NS IHByZXZlbnRpdmU= IHBhbnRhbGxh X3RyaW0= UGVkaWRv aG9zcGl0YWw= IG1hbmFnZWFibGU= cm91dGVQYXJhbXM= dGV4dHVyZXM= Li4uLi4uCgo= IHPDqWxlY3Rpb24= TmFtZVZhbHVlUGFpcg== IHBvbGx1dA== TW9kZXM= IExhdWQ= amF5 IFVycw== IHNpZ25lcg== IEpK IENoZXJva2Vl X0VYSVNUUw== IGR3YXI= ICgkKCcj IHJlZWY= Pnsk IEJheWxvcg== IE1vZGVsU3RhdGU= LV8= IFN0cnVjdHVyZXM= IHNvdXZlbnQ= U3BlY2lmeQ== KHBpcGU= IGZyYWNraW5n IEdQQQ== IGJlbGU= CQkJCQkJCSAgIA== IE1pbm9yaXR5 IHR1ZA== IG9wZW5uZXNz IElsbHVzdHJhdGVk IG94aWRhdGlvbg== IE5L CVVwZGF0ZQ== IEVNUw== IFRlZGR5 IGdlbmVyYWxz CU1hdA== IHJhZGlvcw== IEFudGlxdWU= Y29ub215 IFNxdWFkcm9u KScsJw== 5aOw IHlvdXJl IE1haW5QYWdl IGJlaGF2aW91cnM= ZW5naHQ= KEAiJUAiLA== IHRlc3RjYXNl IENvbXBpbGF0aW9u IGZsYXZvdXJz IEV4dGVuZA== aWxsYXRvcg== IGNvaA== IHNwbGluZQ== IEtH LXBheQ== IGNvbW11bmlzbQ== IEJ1c2luZXNzZXM= b2NraW5n Lk1heExlbmd0aA== YXNzYW5kcmE= cXVpcmluZw== YWRkZW4= IEplYg== X2ZhdWx0 W2ZpbGU= IHByb21pbmVuY2U= ZGlzY2lwbGluYXJ5 4oCUdGhleQ== X2V4dGVudA== IFZJQw== IGVudGFpbHM= LnBhcnRuZXI= IGhpcHBvYw== TGVhZ3Vl 55S3 d2lwZQ== LXNwaW5uZXI= IHNhbHV0ZQ== IFN1cmdpY2Fs KG91dHB1dHM= d29ya2Vk W3N0cmxlbg== YXBwb2ludGVk IEhlZw== IEFDUEk= KFte dWFsYQ== X3RvbA== IFJpdA== LlBheW1lbnQ= a293c2tp IHdhbG1hcnQ= cmVxdWlyZW1lbnRz IEZJTlNFUQ== X0JBQ0tHUk9VTkQ= IE9zYm9ybmU= KGVycm9yTWVzc2FnZQ== UmVwb3J0aW5n IGF1Y3Rpb25z IGNvbWJvcw== IE5vdGljZWQ= X29jdA== IHByaW1lcm8= dGFpcmU= X2hy INC80L7QtA== IGNvbnRyYWRpY3Rvcnk= PSJA YWNoaW5lcw== KG9wdGFyZw== IFBlbmd1aW4= IEFiYmFz IHN1YmxpbWU= IHBhZ2VhYmxl IERlZmVuc2l2ZQ== IGRpc3RpbmN0bHk= IEF1dG9tYXRpY2FsbHk= VW5kZXJzdGFuZGluZw== RXF1YWxpdHlDb21wYXJlcg== Z290YQ== ICI6Og== IHB1bHZlcg== IEJhdHRsZXM= IHVucGFyYWxsZWxlZA== VENIQQ== IGNvbnN0cnVlZA== LWFmZg== IHByZWN1cnNvcg== LWxmcw== IG1hZHVyYXM= IERhaXN5 IEFyYmVpdHM= Lk1hbmFnZW1lbnQ= CUlu IHJvYmVz IHNww6lj 4oCcKA== IG1hdGVybml0eQ== ZXh0ZW50 IFNwYWNlcg== RGlkQXBwZWFy CXVz LmdldFJlcXVlc3REaXNwYXRjaGVy KGNvbHM= IHBsdW1tZXQ= 7IU= IHsKCgoK w6lyaWNh IFNpemVz LmVudW0= LkhpZ2hsaWdodA== ICEhfTwv QVRURVJZ IFNvcm9z R0xmbG9hdA== 44KE IEplbm5pbmdz Pz8KCg== IFJvbWVv ID8+CgoK V2Vubg== IGNsaW1heA== IGNyZW0= X3RoYXQ= W+KApg== X2RvbWFpbnM= X1JFUExZ IGNvbXBsZXRh VkVTVA== X3BhcnRpY2xl IHNvcA== IGZhdGFsaXRpZXM= aW1wbGlmeQ== IFNLRg== IGluZnVzaW9u IEphdmllcg== IGJhbGxldA== IGFtaWdv LndhbnQ= IGNvbGxhZ2Vu IExhd3llcg== LlN0YXRlbWVudA== LnJ0 YmFhcg== RW5kUG9pbnQ= IEJlaw== U0hJUA== IHBhdHJpYXJjaA== IEF1bnQ= X1RN IG3DrW4= IG1hc3RlcmVk V1hZWg== IGVzcG9z PWxvZ2dpbmc= IHJpZ2h0ZW91c25lc3M= dG9ycmVudA== IGJzdA== X0NIQUlO IG91dHNraXJ0cw== KHJvdGF0aW9u ICcuJyk= aWdyYW50cw== K2xzaQ== IENDVFY= X1BIQVNF LmF6dXJl X1Byb2Nlc3M= dmFl IFRyb3BpY2Fs IEFua2FyYQ== aW1hZ2VWaWV3 X1JVTk5JTkc= ICopX18= 4bq/bg== KGNsaQ== c2NhdHRlcg== IHNjaGU= UmVnaXN0cmFy IGFpcmluZw== IHB5cGxvdA== aXNpw7Nu L2N1c3RvbWVy IHNpbXBsZW1lbnQ= IGNsYXNzeQ== IERXQw== IEJhc2hhcg== IERFVkVMTw== IFZpY2s= YXZhaWw= IEjDtg== X2V4dGVuZA== ZHJGYw== LmlzTm90Qmxhbms= IHBsYWlz fH0K IHBvcm5vZmls bGFicw== IGhhdXM= IG9yaWdpbmF0aW5n IHN1cnJvdW5kcw== IFFVQUw= bWVn L2xvZ2dlcg== W29iag== IGlycmVzcG9uc2libGU= IFB1YmxpY0tleQ== SE9ORQ== Oicv aWJveA== IEZWZWN0b3I= fHsK YXRhbG9hZGVy aGF3a3M= SERS IGVzY2FsYXRpb24= IFBvZHNEdW1teQ== ZWxpdGU= IHByZXN1cA== Q2FjaGVk Pkc= Lm9wdGltaXplcg== IFZpc2libGU= tIA= IG5lbg== IHBjcw== IElkbGU= W0FueQ== IGtleWJvYXJkcw== IENPTVBPTkVOVA== IHRpdGFuaXVt KG11dA== IExlZGdlcg== IHByb3NwZXJvdXM= ZXRyb2ZpdA== X0xM X3BhdGllbnQ= IHBkYXRh IGtvbnRha3Rl U3dpcGU= IGNoZWVyZnVs IEhvbmR1cmFz Il1bJA== IGhlbW9ycmg= IjoiKw== IGxlYXNpbmc= IGluc3RhbGxz IFBheA== IExvZ2lzdGljcw== IGtpbmV0aWM= IFBob24= X21vdmVtZW50 CWJ5dGVz IGNpbmNv IE1hZG5lc3M= Iikr IEpF X2lq U2NlbmVNYW5hZ2Vy IEJ1c3Q= cHRlc3Q= YWVh IGJlc3Nlcg== w61n 0LTQuNC9 KHRhc2tz KCIoIg== c2V0VHlwZQ== KG91dGZpbGU= CXJlc2V0 IEFSQw== IG3DunNpY2E= IFNoZWxm IG1pblk= cGNo IHdlaWJlcg== aXNzb3I= IHRyb3V2ZQ== CUJ1dHRvbg== IHJlZ2VuZXJhdGVk xaNp aW1hY2hpbmVyeQ== YmxvY2tpbmc= LmRhdGFUYWJsZXM= X2ZyYWM= IEFkdmFudGFnZQ== LnZpc2l0TWV0aG9k 6YeN5paw IGV4dHJhcG9s IHRlYXNpbmc= IEhpdGNo IEdlZWs= RVNDTw== IHdpY2g= CWF4 X2RlY29y IHNjcmVlbldpZHRo IFNvcGhpYQ== Rm9yZ290 LnVuaQ== IFZlbnR1cmU= X2NvbGxpc2lvbg== IGxhd21ha2Vy KEVkaXQ= YmxlcnM= IGdldE5leHQ= 4oCUeW91 TWVkaWFQbGF5ZXI= IEhvcmRl IENvbmdyZXNzbWFu b2JzZXJ2YXRpb25z CXByb3BlcnR5 IDwtLQ== Q3JlYXRlZEF0 dWJ5dGU= IHF1YXJhbnRpbmU= IGRpc3RyZXNzZWQ= X0FQQg== IEdvb2RtYW4= 44Kr IHJlY29tZW5k X1BSSU5URg== RE9ORQ== QmluZGFibGU= cnN0cmlw Y2VudGFqZQ== IFVuZXhwZWN0ZWQ= IFNDSE9PTA== IFByb2Zlc3Npb25hbHM= IEdQVXM= TGVzc29u RXhjbHVzaXZl IGF0cmF2 IERhbms= IExhd3llcnM= IFdhbHRvbg== Pltd IGFsb3Vk PSIuLi8uLi8uLi8= IGRlYmF0aW5n IEFWRw== X1ZPTA== L2NnaQ== LmRlZw== Omc= LkluZm9m TWVhc3VyZVNwZWM= LnNvbmc= bXRyZWU= dWxscw== Sm9yZGFu IENvdmVycw== IGF0dHJpYnV0YWJsZQ== IGplZGlz aWF0cmljcw== IHJvdHRlcmRhbQ== IG1lbGQ= IENvbnRlbnRUeXBl IG1hbnRsZQ== IGFsaWNl X2R1cGxpY2F0ZQ== L0ludGVybmFs IGZpbGVzaXpl CWZpcmU= cmVzZQ== b25kZXJl IGZhbWlsaWFyaXR5 IENyZXN0 IGthcm1h IHRvcmlubw== IG1lc2E= L3RlbXA= IGNoaXI= IE92ZXJmbG93 IHRlbmVtb3M= dW5paw== TkVYVA== QWxsZQ== IG54dA== TWFydA== IGF0bA== IHBlcmlvZG8= X3lvdQ== IH0pKS4= aW50ZXN0aW5hbA== LkFkYXB0ZXJWaWV3 IGhlc2l0YW50 IGNvbXBhcmF0aXZlbHk= LlVJbnQ= KHZpZXdNb2RlbA== IHNhbmdhdA== IFJlc3BvbnNpdmU= IFphY2s= 4oU= SkFWQQ== IEZ1bGxlcg== IOKdpA== LkNvbnN1bWVy IGFuaw== IHJlYWN0b3Jz ZnVjaw== X3JhdA== IHNlc3Npb25GYWN0b3J5 X2JhY2t3YXJk IHNjcmFtYmxlZA== CXRo IGluc2Vuc2l0aXZl IGNoYW1wcw== IG5naW54 IGNvbmhlYw== IEphc3Blcg== LmZt U3RyaWN0RXF1YWw= YWNoc2Vu LU5vdg== bGFzc2Vu LmludGVncmF0aW9u KGxibA== Q29tcG9zZQ== IEZvbg== w5o= R3JhdGlz IExpbWU= IEFkYXB0ZXJWaWV3 IHBvaXNvbmVk YW5jaG9ycw== 6K6+6K6h J10/PiI= IHByb2N1cg== SXRhbHk= Lk1PTlRI IExVQQ== IExpdGh1YW5pYQ== IEhlYWRz X0NIVU5L IFBVU0g= QXNwZWN0UmF0aW8= IHdlZw== IHZpZHM= IFdlaW4= CUlOVA== c2Vzc2lvbklk SW5kdXN0cnk= IGRlbm91bmNlZA== SktMTQ== IFZhbmVzc2E= LklkZW50aWZpZXI= cHJvcHJp INC40LM= IHTDqWNu IG1vc2FpYw== U3RyZWFtUmVhZGVy LVRo Zm9ydGg= IGFkaGVyZW5jZQ== YmF0ZQ== IGtuaWdodHM= c291bmRz IHNhbGxl T01FVA== 44K544OI LXRt IFJoZQ== LkZpbGVPdXRwdXRTdHJlYW0= 5YiG57G7 IEVORw== aG9saWRheQ== IENvbmdyYXR1bGF0aW9ucw== KSgK IGFnZ3JlZ2F0ZXM= SE9PSw== ZXdpcmU= U2VuYXRvcg== IGVtYmVkZGluZ3M= ZXB5 KENPTQ== IHJvYmJlcg== w6R0ZXI= d2FuZw== X3RlYWNoZXI= IHJlc2VudG1lbnQ= IGxldHR1Y2U= ZXJyZXVy KGlj IFRhY3RpY2Fs IENvbnRyYWN0cw== IG3Dpm5k IHNpdGlvcw== IGJhc3RhbnRl IG51ZXZvcw== CU5kckZj IHByaXZhdGVLZXk= dWNjaA== TU1kZA== IOi+k+WHug== dW1iYQ== QGZvcmVhY2g= OiIpOwoK IHNsaXBwZXJ5 IEtleXN0b25l IHBpb25lZXJpbmc= X3RyaWFuZ2xl KCIK CQkJCQkJCQkgIA== IEludGVydmVudGlvbg== U0NJ IGNKU09O IHRlcm1pbmF0aW5n 67mE IGJhYnlz U3Vic2V0 IOuh IHNldWxlbWVudA== IG11ZXN0cmE= RW50cmU= 5Lul5LiK bmdv ImJ5dGVz UVJTVA== IHlwb3M= cGVyc29uYQ== IERlcGxveQ== Y2Vl IOCu LmdvYWw= IGhhYml0YXRz IGlzQWRtaW4= IGV4cGxvaXRpbmc= IHZlbnRpbA== IEJhbGxz 2KfYqA== IG1pbmRmdWxuZXNz KGt3YXJncw== IHJlc2VtYmxpbmc= IGNob2ly IG9uQmFja1ByZXNzZWQ= IFNFQ1VSSVRZ L2d0ZXN0 IGp1c3RpY2Vz IGludGVnZXJWYWx1ZQ== YmxhaA== IEFpbQ== X2ZpbmFsaXpl a2Vo IENvbXBsZXhpdHk= IGF1Z3VzdA== Z2V0RWxlbWVudHNCeVRhZ05hbWU= IHByZWFjaA== IHByb251bmNpYXRpb24= IFRyYXNo LXBlcmNlbnQ= X1BSSVY= IEh1bnRz IEN1cnNl dWVsbGVu IGhlYXZ5d2VpZ2h0 WGk= CXNlbGVjdGVk IE1jQ295 5byC5bi4 fD0K IEJhdHRsZWZpZWxk SXRlbUltYWdl IGRlZHVjdGlvbnM= IEVsZW1lbnRhbA== KCkpOy8v IEJ1cms= fSkNCg0K c3dpZnQ= L2Z1bmN0aW9u VXN1YWxseQ== X1N0 X2ZlYXRz IElzVmFsaWQ= IHphZA== SW1hZ2VDb250ZXh0 IGNsYXNzbmFtZQ== IGRvbm5lcg== IC0tPgoKCg== IG1vdG9yY3ljbGVz KycvJys= IHNldEJhY2tncm91bmQ= XENNUw== LkFsbEFyZ3NDb25zdHJ1Y3Rvcg== IExleGluZ3Rvbg== LmV4YW1wbGVz IFB1cnM= UHVzaE1hdHJpeA== ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 LmFkZFRhcmdldA== cG9yYQ== RnVsbHNjcmVlbg== IGdvb2Y= aGxlbg== w6RnZQ== IENVUkw= IEludGVyZXN0aW5n IHJldHJpZXZlcw== X09iag== aW5uZXNz LS0tLS0KCg== LnRzdg== KElN IEJyYXZlcw== X0lTUg== b3N0aQ== 4buT IEV4dGVyaW9y IENvdXJ0bmV5 IHJlc2lkdWVz VGllcg== Lio7DQoNCg== OmJsYWNr d2ViVmlldw== InBhdGg= IG1hc2E= XSE9Jw== IE1hdGNoaW5n ZHVy SnZt PWNvbnRleHQ= X1JJTkc= IHByb3BvbmVudHM= IFFTdHJpbmdMaXRlcmFs IGluZmxhdGU= PEZsb2F0 IERvbm92YW4= KElP SE9SVA== IGRpc2FncmVlZA== aXNreQ== YXNraW5n X1ZFQw== SEFTSA== IG1hdGhz IExhc3RseQ== IGRlcHJlc3Npbmc= LmVzdGFkbw== IGhhbG8= X2JsZQ== IEdhYnJp PFRSZXN1bHQ= IHRyb29w IGVudW1z IFNFUklBTA== bnVtZXJ1c2Zvcm0= IENoaWM= LWV4ZWM= IGJhY2tsb2c= IEJyYXZv UG9wTWF0cml4 IEJydXQ= IGJsb3F1ZQ== IGp1bml0 IFdoaWxzdA== 0YbQuNGP ZmV3 rIE= IFZhcmlldHk= IFBvbGl0aWNv ZXhlbXBsZQ== VXNlckNvbnRyb2xsZXI= IGhhcmRlbmVk YWtlbnM= IFNlZWRlcg== b3dhcmRz Y2hlY2tzdW0= IFNhaQ== VkVSVEVY UmVzcG9uc2Vz cGxvZGU= LWhhcmQ= U3BlY2llcw== UmVuZGVyVGFyZ2V0 X0NIQVQ= IHNob3djYXNlcw== aXRpbWF0ZQ== X0ZPUkVBQ0g= X0NPTkZJR1VSQVRJT04= ZWJh IEVzc2VudGlhbGx5 KHBvbHk= LWxlYXJuaW5n IGfDpXI= X3N1Y2M= KE1hdA== IGNvaWxz YnJhcw== IGFtYQ== X21hdGNoaW5n aW5kdXN0cnk= IE5vcnJpcw== IEV4cG9zdXJl IHBlcnZhc2l2ZQ== IGRleg== 5peP IGVsZWN0cm9uaWNhbGx5 RERS IFN0aW0= INGE0LDQudC70LA= IG1hZHJl bmVtb25pYw== a2ljaA== IEZyYWdlbg== IFJ1bmU= IG9uVG91Y2g= CXNjYWxl IFBoYXJtYWM= IE1hbmRhdG9yeQ== IFN0bw== IEJyYW0= X0xlZnQ= X1NUQVI= KX19Ig== c2Npb3VzbHk= 0LXQt9GD0LvRjNGC 56uZ Z3Jhdml0eQ== K0M= fTw= QU5HRVM= IGNvbnRyYWN0aW9u IFdhbGxwYXBlcg== LkZhY2U= IHByw7N4aW1v LmZpZw== bGFuZ2xl INC/0LXRgNC10Lw= X0NSRUFU QmFzaWNhbGx5 IGF3YWl0cw== IENIQVJBQ1RFUg== IHZwbg== SG9u IGV2aXRhcg== IFVuZG8= UVM= IEVkbXVuZA== IG1pcmFjbGVz IFRpbWluZw== IFZlbmV6dWVs LlNxcnQ= b2lkYWw= IGVycnM= LS0tLS0tLS0KCg== IERFQ0xBUkU= IHZpZ29yb3Vz YXJnb24= IGFnZ3JlZ2F0ZWQ= IFNoYXJrcw== IEN5cnVz IHJlcHLDqXM= bWF0Y2hlcg== IGd1aUFjdGl2ZQ== PyIpCg== IEpOSQ== LmNoYXJzZXQ= J3w= IGdvYXRz aW5kcmU= LmdldERheQ== IHBhcnNlcw== IElocmVu X18uJy8= aWxlZ2Vz bmF2aWdhdGU= IEJ1ZmZ5 UEhQVW5pdA== IG1hc3Nh YWx0YXI= JyldLAo= IG92ZXJzZWVz IHt9DQoNCg== IFdMQU4= Y2xpcGJvYXJk X0luc3RhbmNl IGdsYWRseQ== KHNlcmllcw== IHZhZA== IGdldFBhZ2U= W29m LkludGVydmFs aW51cw== Y2hhckF0 b2xlbQ== YWludGluZw== LkFG X21pbm9y X0lM O3k= IFRlbGVjb20= IFBvbmQ= IG1tYXA= L14= IFlhaw== IFJhYmJp ZW5vcw== CUNvbnRleHQ= LnZlYw== KEF0dHJpYnV0ZQ== IGNhdGVnb3JpemVk IGRpYWJldGlj KHJhbms= IHBhw61zZXM= IEAiIjsK IGppa2E= YXJzaXR5 IC8o LkhlbHA= LWJhbm5lcg== IEJ5cm9u IHVucmVhbGlzdGlj IHxf IFN0b3B3YXRjaA== IGV4ZW1wdGlvbnM= L2NhcmRz IHRvc3RyaW5n bmdpbmU= IHNwcmF3bGluZw== IGx0ZA== IFVuZGVyc3RhbmQ= INGC0LXQutGB0YI= ZXdpdG5lc3M= IGNhbGxCYWNr LVllYXI= RnVlbA== PSo= IGludmVudG9y IGJlc3RzZWxsaW5n IGhhcmRuZXNz IFR1cw== IGtleW5vdGU= IGJlYXU= X2Fib3J0 IHByb3Bvcg== IGNvbWVyYw== X1JFRkVS UGFz aGF2ZW4= LWZpeA== Q2Fub25pY2Fs IGxvb2tvdXQ= RXhwbG9yZXI= IGNlcmNv KHNlbnNvcg== IEpzb25TZXJpYWxpemVy IHZva3Nlbg== IGJyaWdodGVzdA== IHN0YWJiaW5n LkJl LmFkZFByb3BlcnR5 IEh1bXBo IGlzQXV0aGVudGljYXRlZA== 5rKh IHBvcmVz IGplZ28= IFNob3dpbmc= ID8+Ij4NCg== X0NPU1Q= aWxpbmVhcg== IFdvcmtzcGFjZQ== IHNwZWw= YWdvZ3Vl IE1pbGxlbm5pdW0= IFBvcHVsYXRl IG5pZA== LnBhcnNlQ29sb3I= U29sYXI= IEdhZA== IOykkQ== IEthbXA= CXJt IGJlbno= IEhvbmVzdGx5 IGVsZWN0cm9kZQ== IFByYWlyaWU= IFBST0ZJTEU= IE9yaWVudGFs IE9MRUQ= L2NvcHlsZWZ0 YXdhaWk= KHByb2R1Y3Rz KVw8 LWNyZWF0ZWQ= Lk1hbnlUb01hbnk= Ikhvdw== INCy0YvQvw== IG1pdG9jaG9uZHJpYWw= X3Rlc3Rpbmc= KGNyZWF0ZWQ= IGdldEZpZWxk X0VWQUw= XS4i IEZTTQ== IFJpdGE= IOWPguaVsA== IGPDtHQ= IEluc2lnaHQ= CW15c3FsaQ== X3RpbWluZw== SURP KSkpKSkK Q09WRVJZ LmltYWc= Q0RG bHVzdA== aWNrdA== X0ZQ LicsJw== Z2Nj IGt1cno= X3B3bQ== IG9kcG93aWVk IEJhcnJpZXI= LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgo= cGFr LUlzcmFlbA== IFJ1dGdlcnM= IHNlbGVjdGVkSXRlbQ== IFJhbWlyZXo= RmFybQ== IGNhbGVuZGFycw== Z3ppcA== IGJsb2NrYnVzdGVy IFBseW1vdXRo 55yM cmVzcG9uc2Vz LkRpYWxvZ0ludGVyZmFjZQ== LWdyYW5k IGdldFNvdXJjZQ== IGRlanRpbmdz IHRpZXRlbg== IGNvbmRlbW5hdGlvbg== IGNvbnRpbnVhcg== Lk1vY2tNdmM= L2VuZ2xpc2g= IE1lZGlhUGxheWVy Y29tcHV0ZWQ= IENsaXBwZXJz KGRlbGVnYXRl LlNsZg== IOuhnA== IFRpZGU= IGlocmVt IFdhbg== 0YPRjtGJ fT48 RGlzY3Vzc2lvbg== IHdhdHRz LW1pbnVz IEp1bGlldA== 6ZuF IGNvbmNsdWRpbmc= YW5kc2NhcGU= IMO6bHRpbWE= IERFUlA= IHNpZ25VcA== IFNlY29uZGx5 V0FJVA== bGRz LmNhbGxiYWNrcw== KGhvdXI= aW1hdG9ycw== dm9sZW50 QUFG ZWRyaXZlcg== IE1hdGhlbWF0aWM= PFR1cGxl IC8+Jw== e2o= X0FCT1JU RXRoZXI= IGVkdWNhdG9y IHByZWNhdXRpb24= IGZpbmdlcnRpcHM= Z2V0VmFy Y2FtYXRhbg== LWRlYnVn IFJBRg== W2FyZw== IHJhY2Vk IHRzdW5hbWk= LmZsaW5r IGdseWM= dWtv IE11bHRpcGx5 IHJlZGlzdHJpYnV0aW9u QUdP IFJvdXRpbmU= IG9wcg== KGxvd2Vy IEZ1bmt0aW9u LmRr IGVndA== X0JBU0lD c3lzY2FsbA== IExTRA== IER1cGxpY2F0ZQ== X3NlbGw= IGVycm9ySGFuZGxlcg== X2lwcw== IGVydg== YW5uaWU= KHJlc291cmNlTmFtZQ== IGJvdHRsZWQ= IGNyYXdsaW5n ZWdtZW50 LnNldFRhZw== IHJzcw== IFF1YXJyeQ== X2V4YWN0 Lmp3dA== IEJvYXJkcw== b3Bp IG5hc2Fs IFhZWg== LnVk Tm9ydGhlcm4= IGFjdGl2YXRpbmc= ZWR4 b3ZhaA== IGluZHg= QWxlcnREaWFsb2c= IHRpZW5lcw== YW5ueWE= X3Bhbg== KGRlY2ltYWw= LkRpY3Q= IHN1YnNpZGlhcmllcw== UHJvZHVjdE5hbWU= RmV3 ZGF0bw== b2RpZWQ= LXVuZGVy IOqygw== 54mI5pys YXRpc20= W01hdGg= Lic8 KGluZmlsZQ== IGRlbm90ZXM= JGNsYXNz X1NFQ1VSSVRZ IHNld2FnZQ== bWVsb24= KENoYXJhY3Rlcg== L2dpdGh1Yg== IGdsYXJpbmc= Lkd1aWQ= X3NwYXJzZQ== IE1hcmdpbg== X2Rucw== IG1laW5lcg== IGxlZnRpc3Q= CWxvYw== YWJ5dGVz IGVxdWlwbWVudHM= ZXhwbw== IFNvbWVyc2V0 RUs= 5o2i IGxlY3R1cmVy IG1lbWlsaWtp 5qC4 57Sg cHJvbg== OnBvaW50ZXI= Ym9ycm93 IFByb3RlY3RpdmU= X2Nm INCV0YHQu9C4 YnBw JzsKCgoK YXR1cmFsbHk= X05BVg== IHBlcHRpZGU= PmQ= IGlmc3RyZWFt X0ZBQ1RPUlk= Jyk7Ly8= am9pbmVk bW9uZw== IHRpbWVzcGVj IGRlc3RhYmls IGF1dG9w LWxpbWl0 cHVibGljYXRpb24= IERlbm4= Lk1lbW9yeQ== KHNrYg== IEFuYWhlaW0= X1JFVFVSTlRSQU5TRkVS b3VldXI= KF8oJw== bGVndA== aXN0aW5ndQ== CXByaXY= IHJlZGlyZWN0cw== TXQ= IGFsbGVlbg== IFBvaW50Rg== IG9taW4= IGNpdHQ= IFRhZ2U= IFdhbGxz 4buJ IG9jY3VweWluZw== eEJG cmFuZ2xl IHJlbGF0aW9uYWw= LW9yZw== IGpwZw== LWRlcml2ZWQ= IG1hbGZ1bmN0aW9u IEJlbnNvbg== KHNjcm9sbA== IFhE SG9seQ== KGNvbW1hbmRz IHRpcHBpbmc= IHByaW1pdGl2ZXM= IHNleGxl Q2FsbENoZWNr IE1BU1RFUg== X1RFQU0= LnNldFJlcXVlc3RIZWFkZXI= X3NwZWNz IHNlcmdl Lk1hc3Rlcg== IGltcw== LlNwcmluZ0Jvb3RUZXN0 cGF5cGFs IFdBTlQ= Lkluc3Q= IENhcnBldA== IHdyb25nbHk= KCQoJy4= IGJpbGQ= LlJvbGw= IFVyYg== LWNhbg== 44GP44Gg44GV44GE b2xpYmVyYWw= PCEtLTw= 4oCUZm9y IG5lZ2F0ZQ== KG5vcm0= YWVj X3NhbGFyeQ== cGxhaW50ZXh0 b2Rlc2s= IEJvc2No U2NpZW50aXN0cw== aW5kZXhlcw== IG1weg== IGdyb3VuZHdhdGVy fX0pOwo= 0LDQu9C40Lc= IGVybw== IHByZXNjcmliZQ== IEV4dHI= PEFycmF5TGlzdA== IGF0cm9jaXRpZXM= QXJlYXM= IFRJbnQ= KHBsYXllcnM= IGRhdGFi IHd5bQ== 44Gb IGR1YXM= X3Bvc3NpYmxl IGluc3RydWN0aW9uYWw= aXRpb25lcg== L2F1ZGlv ICAgICAgICAgICAgICAgIAoK c3RvcmVk T01QSQ== IGFwcHJlbnRpY2Vz VGVuYW50 IENvdXQ= IGNvbnRyYWNlcHRpb24= TG9hbg== X3Zpc2liaWxpdHk= J3x8 LlBhcnNlRXhjZXB0aW9u IGNvaW5jaWRl LmdldFdpbmRvdw== IE1hcnRpYWw= X3Rscw== L2Jvb2tz IG91dHJhZ2Vk ICh+KA== c3Ryc3Ry IEJveGVz 6YO9 44Ol Uk9J RnVuY3Rpb25hbA== IFByb2Q= PFRlc3Q= IHZpZGVvdA== IGFtb3Jl YWJicg== IE1vbnVtZW50 IHJlaW5mb3JjZW1lbnQ= IENvY29udXQ= LnNlbmRTdGF0dXM= Lmtl IExlYXA= X2FydGljbGVz UGll IElydmluZQ== QUJDREVGR0hJ IEV4cGxhbmF0aW9u Z3JvdXBCeQ== IG92ZXJoZQ== IGFuw6Fs IGNsYXNzaWZpZXJz IE1peGVy L2NvbG9ycw== IFVzZXJEYXRh X0FSUk9X X3ZsYW4= LkNyZWF0ZURpcmVjdG9yeQ== IEhhaw== IEJvbmVz IEFwaVJlc3BvbnNl IE1vb2R5 REFD Z2V0Yw== 6LaF LkZpcmU= 6aM= IGhpdHRlcg== ZnJlc2g= 4LmB IENoaWxkaG9vZA== eG9y LWh0dHA= IE1PUg== LnNlbmRLZXlz X3NoYXBlcw== IFVwcw== IEFycmVzdA== YXp6aQ== X29wY29kZQ== Lk5vbWJyZQ== IHByw7Nw IHp4 IHRyZW1lbmRvdXNseQ== U3BhY2Vz ZWNj IHZlbHZldA== IG1lbW9yaWE= IExBUA== LkRyYXdMaW5l IHRhcmdldFR5cGU= cmVzdHJpY3Rpb24= IERSVg== W3RvcA== IeKAmQ== L2NoYXQ= IHNvbmlj VG9yb250bw== b3dp LmRvY3M= IEluaXRpYWxpc2U= IDwh LnRibA== LlByZXBhcmVkU3RhdGVtZW50 L2RvbQ== LnJvdA== X1BST00= S2VlcGluZw== IGhhcmdh IGpvcm4= IGlkZW50aWZpYWJsZQ== W2lw UGluaw== X0hlYWRlcg== w5E= YWRsZQ== 572R57uc c2VxdWVudA== QWN0aXZhdGVk dG1wbA== IFBhbGw= IGZhdGFsbHk= fX0pCg== UG9wb3Zlcg== IE1jTGFyZW4= Q2hhbmdlZEV2ZW50QXJncw== IEZvcm1hdGlvbg== TmFt bmV3c2xldHRlcg== LmZyb21TdHJpbmc= X2ltbQ== QVBQRUQ= LG5vZGU= KGRldA== IHBhcmFsbGVscw== IGxhc2Vycw== IGNob2NvbA== L3BvcnQ= YWZmZW4= KGRldGFpbHM= IHJlcGxpY2F0ZWQ= QXNTdHJlYW0= YXJtYWM= XV09 YWxhY2g= X3Nlc3Npb25z QWxnb3JpdGhtRXhjZXB0aW9u IHZlcmJvc2l0eQ== LkNvbHVtblN0eWxlcw== KFVTRVI= IHNsZWVwcw== IGFxdWF0aWM= X2J1bGs= PScuLw== b3VybsOpZQ== IE1TRA== IEJsb2M= IEdsZQ== IHJlcHJlc3Npb24= IGVudG9uY2Vz CQkgICAgICAgICAgICAgICAgICAg WU5D LkFsbG93R2V0 IHR1cnRsZXM= ICd+Lw== ZXNzb24= IERJRQ== IEFxdWE= IFNFUQ== Ozs7Ozs7Ozs7Ozs7Ozs7Ow== LnB1dHM= IE1BSw== KEN1c3RvbWVy IGRlc3NlcnRz IGVtYmVsbA== IHRheGVk 5bqX IHNjaGw= cmVzY28= IEZyb2c= IFBlbmRpbmdJbnRlbnQ= X0xvY2Fs L3NlY3VyaXR5 IFJveA== IHNwb2lsZWQ= X1dJTkRPV1M= SmVubmlmZXI= IGRhdGk= VW5sb2Fk LmdyaWR4 KHN0YWdl 4buX U3FsQ29tbWFuZA== Lm14 IGJsaXR6 IEZvcnRyZXNz IEJyb3dzZXJBbmltYXRpb25zTW9kdWxl d2luZQ== TlNF LXJhbmtpbmc= eXJl IGxpbmthZ2U= w6Fr kZw= YXRzYXBw IEN5Y2w= IGVjb2xvZ3k= IGJsYXRhbnQ= IFBlcmY= IFhpYW9taQ== IERvcnRtdW5k cmVzdWx0U2V0 IGdpw6A= IGZhdWNldA== IERhbHRvbg== IGZyZWVz QlVGRg== LnBhcmFsbGVs IEFzdHJvcw== IFZFQ1RPUg== IHN0YW5kb3V0 w7Ntbw== IGZyYW1lYm9yZGVy X1BBUkFNRVRFUlM= IEZhbGs= IERpZ2l0 IGVsZWN0csOzbmljbw== IHZlcnI= VUlBbGVydFZpZXc= KFNxbA== LUlORg== IikpKTs= JycK KEVGRkVDVA== IFp1bQ== X0RQ KV07DQo= IGFudGVubg== IGFiYnJldmlhdGlvbg== IHNlaXNtaWM= X1RSQU5TTA== tZw= Lk1pbGxpc2Vjb25k LGxhdA== IEFuY2g= X01vZA== QWxyaWdodA== ZGRh IMKl VU5ETEU= INC30LDQsw== IHN1bGZ1cg== IFNpdGg= IE5pbWJ1cw== IEV4YW1pbmF0aW9u X3dpZmk= fWApOwoK IHNlbnNhdGlvbnM= YWZz X0NMUg== IGluZmluaXRlbHk= IHN5c3TDqG1l X2ZvbnRz SW1wYWN0 UG93ZXJlZA== IDw9Pg== X25lZWQ= REVDUkVG IC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v IFJlcG8= Z2V0U2VydmljZQ== JG4= X3BjdA== RXJyZXVy IE5HT3M= ICoKCgo= LmF0YW4= X1RNUA== IGNvbGxhcHNpbmc= IHNobw== X1BDSQ== Lm9wZXI= KGFkag== IGdpb3Y= Piku IGluY29udHJv YXJkYQ== IGFwZXg= IG1lZGlkYQ== IFNoZWlraA== IEFybWVuaWE= YXNzb2NpYXRl LXdvdw== IFR1cm5pbmc= IEZyZXVk IEZvb2w= IExEUw== LS0tLS0tLQoK b2xzb24= LkZJTEU= X2RldGVjdG9y RG9taW4= IGRlcGxveW1lbnRz IGZhcmV3ZWxs KGJpbmQ= IG5vdmljZQ== dGRvd24= IGdldEVsZW1lbnQ= IHZlbGl0 YXN0aGFu CWNoYW5uZWw= X0ZSQU1FQlVGRkVS LnRyYWlsaW5n LnNldEVkaXRhYmxl Oyw= IElERg== X1BC Z2V0TGFzdA== IENvYXN0YWw= IEhhbmR5 bGluZ2Vy 44Gn44KC UGVyc2lzdGVuY2U= LmdldFNlcnZpY2U= INC+0Lo= IG5vdHdpdGhzdGFuZGluZw== KFBS VU1C J10pKXsNCg== ZW1icmFuY2U= ZXhjZXJwdA== YXF1 X2Jsb2M= IFByb3Zpc2lvbg== IE1jRG9u IEdvbGRiZXJn IGNvbXBvbmVudFdpbGxVbm1vdW50 IGJhc2VQYXRo LWZpcmVk IGZvbGxhbmRv IFRpbGVz QGVuZGZvcmVhY2g= RU5DSUw= IEJveGluZw== aXF1ZXI= QWNoaWU= RW51bXM= QmFzZVVybA== KHNjYW4= IFBhc3NpdmU= YWJlbGxh L3Nu Lm51bWVyaWNVcERvd24= IHZlcm4= bG9jYWxpemVk IE1peg== IHJlc3VsdExpc3Q= L3Z1ZQ== RVJWSUNF Lm9k IGxpZ24= IFN0cmluZ1Rva2VuaXplcg== IHRyYWc= QWNjb3JkaW9u IG5vcmVmZXJyZXI= bXNjb3JsaWI= w6F0aXM= Ynl0ZXI= IHNob3dkb3du IHNlbWFpbmU= IC0tPg0KDQo= IE1haG0= fSI7Cgo= IGRx IFB1Ymxpc2hlcnM= IEFtcGw= IERhbmllbGxl IHRlcm4= 6LW3 bm/Fm8SH ZWlu IEFzeW5jU3RvcmFnZQ== dW5nZXI= cm91dw== IHNjaXNzb3Jz L2Fzc2VydA== LmJ1Y2tldA== L2FyY2hpdmU= X01hbg== IGludG9sZXI= ICgpPT4= INCS0Ys= IHNhaQ== Lnh5 LiINCg== IHVyaW5hcnk= ZXN1Yg== SVNUSUNT IM66 IGNvbXBsaW1lbnRz IHR5cGluZ3NKYXBnb2xseQ== aWhhcg== RXhwYW5zaW9u IFNlcnZpbmc= X3N0dWRlbnRz IFhCT09MRQ== KGls IOyymA== IGrDsw== KHRvbA== KEpT CUNH IERSQVc= dHdpZw== IG9hdA== X3Ntb290aA== IENTTA== IG9zb2I= IGVuc3Vpbmc= IGJhbmtlcg== IEJhY2twYWNr X3Bpbmc= IHdpc2hsaXN0 PWF4 CSAgIAo= RGlzbmV5 c3RlYWR5 Ij4l IHByb3BoZXRz IFpY IG1pbmltYWxpc3Q= LlBMQUlO U2VhdHRsZQ== Lm9yZGluYWw= IFBJUEU= IHJldG9ybmE= IGp1Z2Fkb3I= IEJyZXQ= IOKUnA== IHBsdXNo VUxBVE9S U29ydGluZw== LmdyaWR5 ZWN0b215 X2FjdGl2 cmFjaw== SW50ZXJhY3RpdmU= IEFudGFyY3RpY2E= IHZlbmdlYW5jZQ== ZW5zbw== X2tub3du dXBwbGllcg== Lk1vZHVsZXM= IENvbm5lY3Rpb25TdGF0ZQ== 6ZqQ6JeP QEZpbmRCeQ== IHBsYWNlcg== XG1vZGVs PCgpPg== LmlzU3VjY2Vzc2Z1bA== LWdvb2Q= Yno= IERyYWNv QXNzaXN0YW50 LWV4dHJh 0LDQsdC70LjRhg== IGh5cG9jcmlzeQ== IHRzdA== IEFncg== JHR4dA== IGxvZ2lzdGlj bGljZW5zZWQ= IEhvZg== IHRhdA== KGl2 IGludG94aWM= cG9zdElk X3N0cmlrZQ== IGh1bWlsaWF0aW9u cGNvZGVz InN5bmM= KHJlY2lwZQ== K04= cmVudGU= CUNsaWVudA== eWNvcGc= IFp1cmljaA== IFByb2ZpbGVz Q291bnRyaWVz IHBpY3Q= IHJvbGxvdXQ= cmVxdWVuY2llcw== IHBhdGNoZWQ= IGNhcnRyaWRnZXM= IHNoYWRpbmc= SmFy IHNhbHZhZ2U= IFRheGVz IHN0YW5kYnk= YXBvcmFu RWlnZW4= LmFuZ3VsYXI= IE5lc3RlZA== 5Lqr IGlzVmlzaWJsZQ== IER3aWdodA== X0JSQU5DSA== LkRlbGF5 IGtlbmQ= IGZhY2lsaXRhdGVk LmZsYXRNYXA= IHNhbnRh CVNlbmQ= L21lc3NhZ2Vz IG9mVHlwZQ== CXN3YXA= I3BsdA== IFR1cmtz TkVT IHByb2dyZXNzaXZlbHk= IFJlc2lkZW5jZQ== IFRSRUU= IG5vZW4= ZGlv IG5lbGxl IHNvZ2Fy aXR0aQ== d2Vla2x5 IGFtYmlndWl0eQ== X1NldHRpbmdz V2FyZQ== Lm5lbw== X0RTVA== IOaWuQ== cHJlcA== bG9iYnk= QGVtYWls L21vdmll IGZ1bmtj ICAgICAgICAgICAgICAgICAgICAgICAgICAgCg== wq1z IGd1YXJkaWFucw== LXBvcw== IGNvbmZpZ3VyaW5n IENQUw== IERldXM= IHZpZMOpb3M= X2VtcHJlc2E= IHNsYXBwZWQ= PE1vZGVs IHVuZGVyc2NvcmVz VWg= LmFjY2Vzc1Rva2Vu U0VUUw== IFNwYXJzZQ== IENhbGQ= OnBhdGg= IFNlcnZlcnM= PWJhdGNo IGtuaXR0aW5n IHhh IHNlYXJjaEJhcg== IHNuYWc= IGluZnVzZWQ= LmJhbQ== bGV2ZXI= IHRheG9ub215 w44= IGF0dGFjaGluZw== IGhlcm4= X05PUA== Q2xpY2thYmxl KFBhcnNl IER5bmFtbw== LWJ1aWxkZXI= IGRlcmVn IHNjYXR0ZXJpbmc= 6L+b6KGM YW56aQ== IFNoZXBhcmQ= Ij4nLAo= X1hERUNSRUY= IEJ1enpGZWVk X01BUkdJTg== UExPWQ== LnNtYWxs IG1pbWVUeXBl IGhvbG9n CWNhbWVyYQ== bGlhcw== IHN1c3BlbnNl b2R5bmFt YmF1 IGdyYXZleWFyZA== X25hbWVk IjoiJw== ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg== IGdhbWVPdmVy IExFTkdUSA== CXNjcmVlbg== IGRvSW5CYWNrZ3JvdW5k X2RlcGVuZGVuY2llcw== IHJ0Yw== L3Vw X1JPTQ== SGFsbA== IGRlZmljaWVuY2llcw== KHRl JyM= X2VxdWl2 IHByZW9yZGVy IEF4ZQ== 0L7QvNGD LnNlbmRGaWxl IGZpbHQ= IExpbWl0cw== IENhdmFsaWVycw== LmRpc2NvdW50 4oaQ IFdpdA== UVJTVFVW IGlq IHRlZ2Vu IDoiLA== ZGlmZmljdWx0eQ== cHVua3Q= IEVtYWlscw== Y2hsb3I= KGZ1bg== LlVpbnQ= IFN0YWxs X3ZlcmlmaWVk dUQ= RmlsZVR5cGU= IHBsZWFzdXJlcw== IGp1ZGljaWFyeQ== IHNoYW0= aXB1cg== X1BMVVM= b2ZmZXJz KGZvbw== X0dU CWNvcmU= RU5USU9O IExpYmVyYXRpb24= Q29tbWFuZExpbmU= X2RlcGFydG1lbnQ= LkFy X25laWdoYm9y IFN1Ym1pdHRlZA== IDwhLS1b IGxvY2F0aW5n Lk1hcHBlcg== X3N0cmVuZ3Ro Wy4uLiw= IEphbA== L2xvYWQ= IGJ1ZmZz IG1vdG9yaXN0cw== CWNz YXNjZW5kaW5n IFdoYXRzYXBw IE5hc3M= X0NPTFVNTlM= TGVvbg== cHBl ZWx0YXM= IHRqZWplcg== X0tFWVdPUkQ= cXVhbGlmaWNhdGlvbg== aHJh IHJpZGljdWxvdXNseQ== JGluZm8= RkVBVFVSRQ== ZG9lc24= IEtX IEVudW1lcmFibGVTdHJlYW0= X01BVA== IFN0cmVhbUxhenk= IHNjcmF0Y2hpbmc= LnRpY2tldA== IHNob3J0Y29taW5ncw== ZWxsaXBzaXM= PWN1cnJlbnQ= IGNyZXN0 IHdob3Jl IFBldHJvbGV1bQ== Y29udGV4dHM= IOat LXB5dGhvbg== KGpzb25PYmplY3Q= IFByaXNt IHlhY2h0 t6g= Zmxhc2hkYXRh IGxlaWNodA== IE1vcnRvbg== IHN0ZXJsaW5n X2l0cg== X3Vk RmFjZXM= IGhpcmVz ZmZh Jyx7Cg== LWNhbWVyYQ== X1JFQVNPTg== IEhlbGVuYQ== cnVn aWdodGx5 IHBlcm11dGF0aW9ucw== IFRvcmFo IOaYr+WQpg== CXJlY29yZA== w4A= LmdtYWls Rm9ydHVuYXRlbHk= KE1vZA== T2NjdXJyZW5jZXM= IGRlcHJlY2k= IHZhZ3VlbHk= L1o= Vk4= LnRw X2dlbmVy IHs6P30iLA== d2FobA== SUtF IExlZ2lzbGF0aW9u IGhpbnRlcg== IGFkZWw= KGhpZ2g= 5o+Q5Lqk L2RvbWFpbg== LnRpbGVz IFRpYmV0YW4= IFN0ZXJlbw== IGZpbGVTaXpl Z3J1cG8= aWFl U0NQ IHZvdWNoZXJz IFBhbmRvcmE= IGRpc21heQ== IGzDqWc= IEJlaGF2aW9yYWw= Y3Jhbg== TmVzdGVk YWNjb20= IE5haA== IEJhbHRpYw== IERFU1Q= IGtpc3Nlcw== Vmlu IHByb3Zva2U= X0NvbnRleHQ= IHdlZWtkYXlz dXJnZW5jZQ== TGlr IHBsYXph IGJsZXY= IHJlYWZm X1RpdGxl KEd0aw== IGNlbGxl Iz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0= IEpvb21sYQ== Ij4vLw== TW9udGhseQ== LnRvRG91Ymxl KGVudHJpZXM= IE5SRg== KGdjZg== IE1pZGRsZXdhcmU= fS17 X0hJREU= IGxvd2Vycw== KFNlbGY= 5Y+R6YCB IGlzTG9nZ2VkSW4= IGJpb2RpdmVyc2l0eQ== IG11c2NoaQ== KGNhbmRpZGF0ZQ== IEFuc2k= CXNt L2lt Kycp Y2Rj IGFsZ3VuYQ== IHNhY3JpZmljaW5n L3ZlbmRvcnM= L0FQSQ== QWR2ZXJ0aXNpbmc= IEdFTkVSQVRFRA== IERpc29yZGVycw== IFNlcmlhbGl6YXRpb24= IHNhdmFnZQ== IOm7 IEluc2lnaHRz IHJldm9rZQ== IGp1cm9ycw== c3VpdA== IENhbXBpbmc= X3Byb2ZpdA== YnVjaA== LkFjdGlvbnM= IElERUE= b2x1bHU= TGlrZXM= 67KI7Zi4 LkJMTA== dsOk IGNhcmRp IGRpc3Byb3BvcnRpb25hdGVseQ== IGluc2FuaXR5 LmVvZg== IFBsYXR6 LmZpcnN0bmFtZQ== IFNsYXNo X0NG amFuZHJv IEdhdWdl IFN1bmRlcg== IEJ1bm55 X3Vt 6IGU57O7 IGlQaG9uZXM= IEJJTw== IGtobw== eEZB IEZyaWVuZHNoaXA= IGNhbG1seQ== X3Rocg== X0FuaW0= IHJhaXNvbg== L3Jvb3Q= LmdldEJ5SWQ= IFNhdmFubmFo IEludGVycHJldA== a2lsbGVy CXdn XSld 0YPQtdGC S2V5VmFsdWU= W0c= c3RyZXRjaA== LXBsYXlpbmc= JTsNCg== IHBsYW5r IHBlYWNo IERlcnJpY2s= 0LTRgNC10YE= IFNoYW0= QVBQTElDQVRJT04= LnByb2dyZXNzQmFy IHRyYW5zaXRpb25pbmc= X2RyYWc= LlJlcXVlc3RCb2R5 Lk1vYmlsZQ== Sm9uZXM= LlBob3Rv IGF4bGU= enVn L29wdGlvbnM= XV0pCgo= CW5v W2hyZWY= IGFncmVnYXI= IFNlcnZpY2VFeGNlcHRpb24= bmluZ2Vu RGlmZmljdWx0eQ== Qk9PTEVBTg== QWRkcw== LWhhbmRsZXI= IEdhdA== IEVib255 4bqtbg== YnJpZ2h0 IGNvcnBzZXM= LkNoZWNrZWRDaGFuZ2Vk IG1hdGluZw== IEhhcnRmb3Jk IHpvdQ== IGR1ZGVz X2FsZw== IEp1bGk= b2N1cA== INC/0YDQsNCy IEthdHk= X0ludGVybmFsQXJyYXk= LkNvbHVtbkhlYWRlcnNIZWlnaHRTaXplTW9kZQ== TWV0aG9kTWFuYWdlcg== IFJlZGU= IGxpc3RJdGVt LkJvdW5kcw== IGF2ZW51ZXM= IENvZ25pdGl2ZQ== RXh0ZW5k dGVjaG5pY2Fs 4oCa c25ha2U= RnJvbUNsYXNz aWxlc3M= ID17 dXJldHRl L3RocmVhZA== RklFTERT SVZJTkc= IFBPU0lY X2Fr IC4uLy4uLy4uLw== TXA= IGFub255bW91c2x5 VGFyZ2V0RXhjZXB0aW9u YWZmZXI= YW55dGhpbmc= Imlz Z3Jlc28= IExhcmE= aXphZG9z IG1pbmc= LnRh X3Rocm93 Umg= IHNvbGlkaXR5 bmFobWU= aWNoYWdl IG1vdW5k b2xpbw== YXJ5YQ== QVNVUkU= IHdvaGw= IGZ1cm5pc2hpbmdz LnNlY3Rpb25z IGFwb2xvZ2llcw== YXBpa2V5 IFNjcmV3 IFdhcnNhdw== L2dyYXBo IFNBVEE= eXNlcw== L2J1dHRvbnM= 0LXQvdC+ VUdIVA== IHBvcm5zdGFy UGljdHVyZUJveA== X1RleHR1cmU= IGHDsQ== IG5lcmQ= LWNvbm5lY3RlZA== IG91dHNpZGVycw== IG9wZXJhdGl2ZXM= YWJibGU= L21hbg== IHBsZWFk XERi IENvdmVyZWQ= PVM= IEZsYW1lcw== 77+l X3RpdGxlcw== IHJldHJhY3Q= IGNvbGxhYm9yYXRpbmc= IGJlaGFuZA== LkRhdGFHcmlkVmlld0NvbHVtbkhlYWRlcnNIZWlnaHRTaXplTW9kZQ== IGxhYm9yZQ== IHRvdGFsUHJpY2U= IHNwb2lsZXI= IGRpcHBlZA== Iikpew0K X1NC IExlaQ== IGluY2x1c28= dmVsbA== CXBs SW5hY3RpdmU= IFVTU1I= b25kZW4= IHJvdXRlZA== LnN0cnVjdA== 4Ks= IE1hbGlr IEhFWA== IEN1c3Q= X1BFUkNFTlQ= X2VwaXNvZGU= 5ouJ VkVSUw== IGNydWlzaW5n Qm9va21hcms= 4oCmCgoKCg== Y2hlY2tCb3g= b3VmbGFnZQ== IG5vbnplcm8= IGFwcm94 IFB1cmR1ZQ== Y29vbg== bGVncw== IExvdHRlcnk= U2xm SEFW Pms= PkFu IHNsZW5kZXI= c2NoZWQ= VGVsZWdyYW0= Umljaw== X1N0cnVjdA== X0JD IGN1c3RvbWFyeQ== IERhbW9u dXJjaGFzZWQ= IGtvYg== IHRpb24= KHByb21wdA== IGltYg== eEND CVdlYkVsZW1lbnQ= IGhlbW9z 4Kaw IENOQkM= IEFMTE9X 57Gz IEVOQw== LnNjYWxhdGVzdA== IFRCRA== Z2V0UmVmZXJlbmNl IEltcG9ydGVk 4Liw IGl3 b2xvbg== bWls Oi8vJHs= Lk1hbmlmZXN0 IGxo IGl0ZW1MaXN0 X2Fkcw== SW5zcGVjdGFibGU= IFRvbGVkbw== IERpc2FzdGVy VXBkYXRlZEF0 KScpLA== IFBBTg== RmlsZUNob29zZXI= IHl1YW4= aXRt INC10LPQvg== IElibg== SGF0 X3Vsb25n YXBs IFVydWd1YXk= w6lueQ== IENyYWlnc2xpc3Q= ZG9jaA== IGJpbGU= IHByb2R1a3Q= IGVsZWN0cm9seQ== LkNvdXJzZQ== IG1x dW5jdHVhdGlvbg== LyoqKioqKioqKioqKioqKio= dWp1 TU1NTQ== X0xFRw== IG5ldXRyb24= IHBsdXJhbGl0eQ== ICsrJA== Zm91bmRhdGlvbg== LkNvbHVtblN0eWxl IEhvb3Zlcg== LkFDVA== IEJyYXo= bGVzc29ucw== ZsO8aHI= 4KSC IENsYXNzaWNz cmFpZw== IG1o IGtldHRsZQ== U3RyaWtl ZXJkYWxl RU5UQQ== IFRhYmxlQ29sdW1u IFNoYWtl IFdG IExpY2Vuc2luZw== dWHDp8Ojbw== IHNlY2FyYQ== IG5ld1ZhbA== U2VsZWNjaW9u UHJlZmFi ZmlnaHRlcg== TGF1bmNoaW5n JyI7DQo= Lmxvbg== LnV0Y25vdw== IEh1bmRyZWRz ZXN0ZWFk IE92ZXJ3YXRjaA== X0FGVEVS IHJlbW5hbnRz KS5c IGxvYmJ5aXN0cw== IHVuaW50ZW5kZWQ= IOuQ eXN6 IGxpYnJvcw== LXBhZ2Vz SU5URVJGQUNF IGRldGVybWluaXN0aWM= IFVOSVFVRQ== IGV0dMOk U2luZ2xlTm9kZQ== CQkJCQkJCQ0K LXN0YXQ= IGhhc2hpbmc= L2FjY2Vzcw== dGVsbA== CXVzZXJuYW1l IERhdG9z Qml0Q29udmVydGVy Omhvc3Q= IGFsdGVybmF0aW5n IOKAi+KAiw== IHdhdmVmb3Jt PEVsZW1lbnQ= IENhbnRvbg== IGRlc3RhYw== dGVudA== LmdldE1heA== IHN0ZW5jaWw= IEFjcXVpc2l0aW9u LkdlbmVyYXRpb25UeXBl IE1FUg== X2NvbWJpbmU= IFtdLg== X0JJVE1BUA== bGRy IGNhbnY= IEpWTQ== cGFycw== IGRvd25oaWxs RGV0YWlsc1NlcnZpY2U= KE5BTUU= IHJlanV2ZW4= X3dpdGhpbg== QWNjZXNzb3J5 IFPDqQ== L2luYw== IildCgo= UHVibGljYXRpb24= X3JvaQ== IG1vYnM= Lk5vQXJnc0NvbnN0cnVjdG9y IGV2ZW50b3M= LnZlbmRvcg== X1NFTEVDVE9S w6lmb25v PSJb IGxhYXQ= IGJsdXJyZWQ= IEJvcmRlclNpZGU= eEZGRkZGRg== X3dyaXR0ZW4= IGplbnRl L3Rpbnk= Lndw LnN0eWxlYWJsZQ== IENoYXJnZXI= IGJhdGhpbmc= IFBhbmRh w6lsaQ== IHBhY2llbnRl IGdpb2NoaQ== IFZpZXdTdGF0ZQ== Y2dp LmxvZ2ljYWw= RG9uYWxkVHJ1bXA= LGNvcHk= ZW1t X0xpbms= IGluc2lnbmlmaWNhbnQ= ZmZtcGVn L3BheQ== X3F1aXQ= SU9EZXZpY2U= IEV4aXN0cw== IGNvb2tz anVuY3Rpb24= IFRYVA== KGVndA== YW5pdQ== X3BhcnRuZXI= IGZhY3VsdA== IFVuaWZpZWQ= L3NiaW4= IE5laA== IEthemFraHN0YW4= cG9zdGNvZGU= IHZlZ2Fz IHNlaW5lbQ== fV0s dGV0 LXBheW1lbnQ= IENvbW1lbnRhcnk= IGd1aWRlbGluZQ== KTsk IENvbnNvcnRpdW0= 57O757uf dmlzbw== IEJpbGxpbmc= aWNpYXI= IFR5cGVJbmZv CXRyYW5z PFRleHR1cmU= YXRob20= bGF1Z2hz IGludGVyY2VwdGlvbnM= KEVWRU5U Rm9yZWNhc3Q= VHJhcA== dHJ4 IFdoaXRlcw== c3VibWl0dGVk YWxnbw== IHRyYW5zcG9ydGVy b3VuZGFyeQ== IEluaGVyaXRz IENvbmV4aW9u LmNsaWVudFg= CXByb2plY3Q= aGVhcnRiZWF0 LW90aGVy ICc7DQo= w6ty b3JwaW9u KGNvcnM= IEVMRUNU IFBlcmU= IHVzZU1lbW8= ZXdyaXRlcg== IHNxdWlydA== L2V4dGVuc2lvbnM= L2Fz LkNMSUVOVA== IGdvdXJtZXQ= IGF1dG9Db21wbGV0ZQ== UkVW IGJyYWtpbmc= X1NFTEVDVElPTg== 44Oh44Oz44OI X2xpZmU= X2dyb3VuZA== X3Rlcg== c25z IFNQT1JU kuGe 5rs= VW5pcXVlSWQ= IGRyaXA= X0JST1dTRVI= LW1ldGVy ZW5kZXo= IGV4aGF1c3RpdmU= KFNL IEJ1cmxpbmd0b24= d29vcmQ= KHBvdw== IHNlYXJjaFRleHQ= hYw= aGVlbHM= c3RlbGxlcg== LnNpZw== WU9VUg== LmFsaQ== IERhdGFDb2x1bW4= IHByb2plY3ROYW1l X2ZlY2hh IHJlZnVuZHM= IHRvcG8= IENISUxE IE1hcmJsZQ== IGZvckNlbGw= IHBlc3NpbQ== IGNyaXNweQ== aWZlc3R5bGVz IG92ZXJkdWU= b2xhcml0eQ== IGFtYXTDuHI= TWQ= UFJFU1M= IGluc3VyZXI= b2NyYXQ= IGZhY2lsaXRhdGVz Lw0KDQo= IGh1cmRsZXM= X0hJ TGV0dGVycw== bWluZWNyYWZ0 YXh0ZXI= eWs= IGVjb27Ds20= INC90LDRhw== IFNXSVRDSA== Q29uc3VsdGE= IE5vcmE= Q0tFUg== X0NU LmFwcHNwb3Q= IC8vLS0= CUJPT1NU X2NvdXJzZXM= IHdpbGxpbmdseQ== 66eM ZmZk ZmlsZXI= IE1lYXN1cmVz IGxlYXNlcw== IERvcm90aHk= Ol0u c3Vic2NyaXB0aW9ucw== IGNob2lz IGFsYW4= IGFicmly LlBvcHVw RXN0aW1hdGVk IFBMQU4= 4LWN IEVMRg== IGRpc3RhbmNpbmc= CWFuc3dlcg== IHJ1Z3M= S2k= 4Z+S4Z4= R3VpbGQ= ZXh0cmFz Y3Bz TW9ja3M= IHRla3N0 Kmc= LnJlcXVlc3RGb2N1cw== IGFsdGVyYXRpb24= IENhdGVnb3JpYQ== aW1tZXJz IERyb3Bib3g= IEFkZHI= 5byV ZGVwcw== Lk1lc3NhZ2VCb3g= ISwK LmdldEI= IG1pZ3JhdGVk IEhvYmJ5 IE1n LlZlcnRleA== IGZvcmdpdmVu IERlVg== IHdlcmQ= IEFyYWJpYW4= IFNtb2tpbmc= IHN0cmF3YmVycnk= IENNUA== ZGJs IERIUw== LWVycm9ycw== LnBhZw== IFJORw== IHNoYXZl IHR3ZWU= IGFzc2VydE51bGw= IERlbnNpdHk= ZG9qbw== YWlubWVudA== IHBq LllFQVI= ICopKTsK aWJyYXJpZXM= SmV0cw== RXhlY3V0aXZl X2RlbnNl LmdldENvbnRlbnRQYW5l Y2hhbmRsZQ== YWluYQ== LXJlZmVyZW5jZQ== IGxpYXI= IEhFQUxUSA== W3Rlc3Q= LmlzbmFu Q2hhcmxpZQ== IHB1cHBlcg== IGtpcg== OmhpZGRlbg== aXNWaXNpYmxl IGtvbXQ= IGFjcXVhaW50ZWQ= IERydWlk KENz Lmxhc3RuYW1l RFNB IGRpc3NvbHZl 57yW5Y+3 VmFyaW91cw== IERleA== X2FuZ2xlcw== L2FwaW1hY2hpbmVyeQ== IGV4cGxvZGluZw== KENoYXJTZXF1ZW5jZQ== IEhpc3Bhbg== KyspewoK Lk1vZGVsU2VyaWFsaXplcg== UVJTVFVWV1hZWg== 54K55Ye7 PXNldHRpbmdz 4KWB UENT IElOVEVSTkFM IEhVR0U= IG1pY3Jvc2NvcGU= aXNBZG1pbg== XHY= LnJlcXVpcmVOb25OdWxs 0L7Qu9C+0LI= aWNlcmNh X1NFTlQ= IGRlcGljdGlvbg== IFVzZXJDb250cm9s IE1lbW9y IEFsbG9jYXRpb24= IEJlZGZvcmQ= IOabtA== IHRvcm1lbnQ= YXplZXJh LlRvZGF5 IFJlZ2FyZGluZw== X0VOQw== X1JBTkRPTQ== TG9nTGV2ZWw= PVI= IEdyZWVubGFuZA== IHN0cmFpbmVk IG1hZ25ldHM= IGFsZXJ0Q29udHJvbGxlcg== IENocm9uaWM= X3JlZ2lzdGVyZWQ= IGxpag== IEVudHJ5UG9pbnQ= IFJlZ2ltZW50 dWNpZA== IENvdWxkbg== IEFjdGluZw== X3JheQ== IG5hYg== LXNlcGFyYXRlZA== IHBubA== Q29hY2g= QVRZUEU= IHN1cHBsZW1lbnRhdGlvbg== YWNlcnM= ZmxlZXQ= SW5wdXRCb3JkZXI= IFN0cnVjdHVyYWw= IGRlaW5l IGJyZXdlcmllcw== YW5vaQ== IHRyYW5zbGF0b3Jz IGVpZ2VuZW4= IGRhbmNlcw== dGFt IENvb3BlcmF0aW9u X3JlcXVlc3RlZA== IE1hZ2ljYWw= CUxFRlQ= ICIiKSwK Ky0rLSstKy0rLSstKy0rLQ== IE5vaXI= IEVzdGltYXRl IFRocmVhZFBvb2w= IEhlY2s= ICcqLg== VHVya2V5 IHN1Y2NlZWRpbmc= ZHJ1Zw== dmlv IHBvbmVy IEphZA== aXp6bHk= ZXZlcnl0aGluZw== IHt9KS4= IEluc3RpdHV0ZXM= IG51b3Zv IGluaXRXaXRoVGl0bGU= IGx1YUw= b3duaWs= IHRob3I= IGtsYXI= IG5vdG9yaW91c2x5 IGRvbmc= ZW1lbnM= X3Byb2plY3Rpb24= X0dSRQ== LmV5ZQ== IHdhdGVyaW5n IFRpaw== b1M= IFN0cmFuZ2Vy ICANCg0K cGFnaW5n X2ludGVyc2VjdA== IENvbG9uaWFs TGlzYQ== LnVubGluaw== IG1pcA== YW51dHM= YW1hem9u IElERU5U c3Rhc3k= Snd0 LS0tLS0tKy0tLS0tLSs= IEVWUA== Q29udGVudExvYWRlZA== CUJJVA== LnBhcmVudHM= IGFsbG9jYXRpbmc= IEdPTEQ= fWA7Cgo= QUxBUg== IHByZWNpc2E= RGlzdGluY3Q= c2Vp IHN1YnBvZW5h IHBvbXA= IFBvbG8= Y29l dmo= LndvcmtmbG93 ZXN0cmU= IGNvbm5leGlvbg== aW1ldHlwZQ== LlJvd0NvdW50 IERoYWJp IGVtaXRz LkJvcmRlclNpemU= KHBvbGljeQ== LG1lc3NhZ2U= T25Jbml0 KShf IGZpbmVy W251bWJlcg== IHNjcmlwdHVyZQ== UmVmbGVjdA== LXRvb2xiYXI= KFBBVEg= IEVOVFJZ KC4uLikK LWRvbWFpbg== KHN0cmlw KSgq IGNvbnZleWVk IGF0dGVudGl2ZQ== w6hnZQ== X0xE IEdyYW50cw== LWhpZ2hsaWdodA== IGJyZXRocmVu 2YjZhA== IGRlcXVldWVSZXVzYWJsZUNlbGxXaXRoSWRlbnRpZmllcg== YXB1bHQ= LmJvdHRvbUFuY2hvcg== IG9wY2lvbg== IG91dEZpbGU= cmVhdGluZw== ZGlu X3NhbXBsZXI= CWdsRW5hYmxl cHR5cGU= X0NPTkRJVElPTg== LWVmZmljaWVudA== Jm8= IGpj 0Kc= L0Zvcm0= KWZyYW1l IGJpbmdl X2Nsb3N1cmU= SU1B KG5leHRQcm9wcw== CWNk IGdldE1lbnU= IGdldFN1cHBvcnRBY3Rpb25CYXI= IG1hbmlmb2xk WlI= Y2hhbmdlcg== YXNzaW5n ZGlzaA== IE1vdQ== Lm5ldGZsaXg= IHBvc3Rjb2Rl IHdvbWI= IEFycw== 4oCmKQ== IGxpbmVXaWR0aA== RGVhbA== YXJhcw== IEdyYW50ZWQ= IGhvYXg= IGRpcmVjdGlvbmFs LktleUNoYXI= ID09Ig== IFZlcmRl X0tQ IHN1cnJvZ2F0ZQ== IERVSQ== dXB5dGVy IHBlbnNl IFJBTkQ= KGV4Yw== IG1pc3VuZGVyc3Rvb2Q= IENVVA== IOS4rQ== CXRp X2luc2lkZQ== IGJpY3ljbGVz IGRlYW4= ZGlyZWN0aXZl LnBlZXI= aWNpbmE= X2l0ZXJz IGltcGx5aW5n Lm9idGFpbg== IHBzeWNoaWF0cmlzdA== dXNlclNlcnZpY2U= ZWxpdmVyeQ== CXBhcnQ= IGh1cnJpZWQ= IGJ1bQ== IGhlcGF0aXRpcw== amlk J10+Owo= IHVuY29udmVudGlvbmFs IGZhc2Npc3Q= IFBleQ== 6K+t Jyl9PC8= LkNsdXN0ZXI= IEJpdENvbnZlcnRlcg== ZWRhdGE= zr/PhQ== 4pSC QXBwQnVuZGxl Lmh0dHBDbGllbnQ= IGFwbw== QUlOUw== IFZG X2dpZA== IG9kZQ== RVJSWQ== IFJlY2VpcHQ= IENhbmRsZQ== IG1pc3Npb25hcnk= IENyYW5l IFNUQVRFUw== Ym91dA== YXlhcmFu Li4uIiwK IGl0aW5lcmFyeQ== KGxhdGl0dWRl IENPTlM= L3NpZGViYXI= U3BpZGVy R1JJRA== LmRlYnVnTGluZQ== IGAn LXllbGxvdw== IHJlZmluZW1lbnQ= IE1ha2V1cA== IERhbm4= KCk7DQoNCg0K IG92ZXJjb21pbmc= IEJhdHRlcg== L3BhY2thZ2Vz INCy0LjQtA== IGFyeQ== 4oCdPw== cmVsbGFz IGdydXBvcw== IFR5cGljYWw= IE1vbnNhbnRv SW50ZXJzZWN0aW9u IHR5cmU= PT09PT09Cg== zq4= OzsKCg== IHRyaXZpYQ== X3Rha2Vu IHNtdWdnbGluZw== IG5hcnJvd2Vk 4bqpbQ== IHBhbGFicmE= Y2Vh cGFydGljdWxhcmx5 QWNjZXNzVHlwZQ== IGNvbGU= VG9GaXQ= IHZlcmU= IENPUw== L3ZpZGVvcw== ICgkKCIj IGNyYW5l Lmhhc01vcmU= JHBhdGg= aXZpc20= IHN1cGVydmlzb3Jz IEZsb3Jlcw== cHJvZ3JhbXM= LlppcA== IGltcGFjdGluZw== IG1vdG8= IFRK cGVnYXdhaQ== X0tJTkQ= X2ludGVyZmFjZXM= LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKio= IExlYXZpbmc= VGV4dFN0eWxl YmVpdGVy IFdpbm5pbmc= LXBhcmFt R2FyeQ== IFN1bnM= YWzEscWf ZHVjaw== IHRocmVhZElkeA== IHBvZXRz IHBsZWFkaW5n IENvcmludGhpYW5z ZmNj YXdhaXRlcg== Ki0= IHBlcnNldmVy IGFjdGl2aWRhZGVz X291dGxpbmU= LXBsYW4= LnNjcm9sbFZpZXc= cXVhdA== IHNhbXN1bmc= IGxldmVsaW5n IHNwbGl0dGVy X2dlb20= IHByb21pbmVudGx5 IFNlZWRz 5Zyf dWFpcw== ZWZ1bGx5 SUVudW1lcmFibGU= YWRkcw== dmVyc2F0aW9ucw== IGRpc2FibGVz QU5EUk9JRA== IFdlaXRlcg== X0Zvcm1hdA== X3NwbGl0cw== IEFjdGl2ZVN1cHBvcnQ= KGNzcw== X21pY3Jv c3RyaWtl IENhdXNlcw== IHZpc2libHk= Q2FuY2VsYWJsZQ== IFlvc2g= IGRyYWluaW5n IGNvbGk= YXNsZXk= IFJlc3BvbnNpYmlsaXRpZXM= IFN1dHRvbg== KnRoaXM= U2hhcmVz LWdyYXBo IGVubGFyZ2Vk Um91dGluZQ== IGZyYW1lYnVmZmVy IGFpcmZsb3c= IHRyeA== IExlaWdo IEtlbnM= KGhlYXA= IHNwaWxsZWQ= U0NBTEw= IFZlbHZldA== YWN0dWFsbHk= X0VOQ09ESU5H IFdvcm0= KSl9Cg== IERhbmdlcm91cw== IHN1cGVyaW50ZW5kZW50 Lmxvb2s= IHNoZWw= L2Zz U2FmZXR5 5a6L LkRFRklORQ== X2ZhY3RvcnM= IHBhcnRpZG8= IG9wdGltaXppbmc= RG91YmxlQ2xpY2s= LWNvbW1lcmNpYWw= IGxvZ2ljYWxseQ== Y3ljaA== dXJ2ZQ== wrU= QUlMWQ== IHJlYWN0aW5n X0VYUFI= a8O2 LmxvY2FsaXplZERlc2NyaXB0aW9u IGFzdG91bmRpbmc= IHBhc3RyeQ== IGdsb3NzeQ== IGJlaGF2ZXM= L2Vj IGNsaXBwZWQ= IHByb3dlc3M= IFVC LyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0= CWFscGhh IGV4dHJhdmFn IGZpbm5z KFNvY2tldA== IFVuc2FmZQ== IHF1aWVyZQ== X2VuY29kZWQ= b2x1bWJpYQ== IHphYg== c3RyaWN0ZWQ= IG1uaWU= IE1PUw== IGF0aGxldGljcw== IEtlbmRhbGw= IOyYpA== QVZBSUxBQkxF aW5veA== X09QQ09ERQ== IEl0ZW1UeXBl IGNlbnRyaWY= IGludGVyc3RhdGU= X2Jvb2tz LmRlbGl2ZXJ5 IExpc3Rl b3JzaQ== X3NlY3VyZQ== Z3Jvd3Ro IHZlbnRl IHBzeWNob2xvZ2lzdHM= IENDUw== dWRlbmNl IGNyYXdsZXI= L21hbnVhbA== IHRleHRTdHlsZQ== IHBhbGluZHJvbWU= IGNvbmR1Y3Rz dGFibA== V2l0aFVSTA== L3JpZ2h0 IERyYQ== Lk1haWw= KHNlYw== b2Z0d2FyZQ== IHNldWw= IHdyaW5rbGVz X0ZX QXk= IEVybnN0 dW5iaW5k IGNvbW1lbmQ= X2hvb2tz IE1vbmV0YXJ5 IFFR dW5pdE9mV29yaw== IEVudGl0eVR5cGU= IGhvcm1vbmFs LkZBSUw= QFNsZg== L2NoYW5uZWw= c29ubw== RGFucw== X1JlZ2lzdGVy SGFu T1JC SktMTU5PUA== dmVudGVk IGxvbmdzdGFuZGluZw== IGJnQ29sb3I= IDsp IFJvYmJpZQ== KCIuIg== IGFqdXN0 LmhhbmRsZUNsaWNr cmF0aW5ncw== cHRlcg== IGVyb3RpY28= IEplbGx5 KioqKioqDQo= LkRvZXNOb3RFeGlzdA== CWJl JHRlbXA= Ij4mIw== 55u0 CVB1YmxpYw== neyytA== IEJ1aWxkaW5ncw== LWFsb25l LCdc IHN3YXBz IHBlcnBsZXg= X3Byb2Nlc3NvcnM= INC00LI= IE5ZUEQ= UENS 5q+P IGhvamU= RWRpdE1vZGU= IHZ1bGdhcg== IHZlcmRl ICgpPT57Cg== L2Zyb250ZW5k IHRlbGVmb25l IGxhbnRlcm4= LnBhZ2VY IER1ZA== bGltaXRhdGlvbnM= IG5vdGlmaWVy IE1lc3NhZ2luZw== IWltcG9ydGFudA== IHN1cmdlb25z KT0o Rml4ZWRTaXpl Llpvb20= aW5hbg== IGNyZWRz IEJVRg== LlN0YWNrVHJhY2U= IHdhcnJhbnRlZA== IHNvdXJjaW5n IGNvbm5h X0ZSRQ== IHdvbGw= IHJlZmluaW5n X0FMTE9XRUQ= X212 IFdvcmNl IFNpbmNsYWly Q2hlY2tzdW0= IHVubG9ja3M= IE1hcmtkb3du IGZpc2hlcm1lbg== RHVi IEJvbm5pZQ== ICAgICAgICAJCg== IHZlcno= Piw8Lw== PjwhWw== Wyc8ew== amVj IEVyZw== cmF0aGVy IHBhbGFicmFz IFBBQ0tFVA== bWlzZQ== ZGFx IE9rdG9iZXI= KEdMRlc= IEhlbnJp IEZvdA== IER1bw== IE5FUw== IHNhbHNh IHVuYmlhc2Vk QFNwcmluZ0Jvb3RUZXN0 IG9mZnM= 5YWs5Y+4 IGFtb3VudGVk RnVsbFBhdGg= IHF1YXQ= IG1haWRlbg== IFN1YnNldA== IEFwcGxpY2F0aW9uRGJDb250ZXh0 bWlycm9y bmV4 LnN0cmVldA== c2V0UXVlcnk= JHJlc3VsdHM= YWRlcm8= Z3Jlc3Nvcg== X2J1Zw== aXNzZXI= IFNlYXJz IGZpbGxDb2xvcg== Lm1hc2tz IERpYWJsbw== X0FORFJPSUQ= 0J7QsQ== IGZyZWFraW5n IHJpbnNl KHBrdA== IGJvb2tsZXQ= IHNhbmN0aW9uZWQ= IHN0cmVhbWVk dGFicGFuZWw= IFJldHVybmluZw== UGxhaW5UZXh0 TE9ZRUU= YWxlc2Nl 0L7QutCw IEZpeHR1cmU= YXNzYWRvcnM= IGRpc2JlbGllZg== IEx1c3Q= IHJhZGljYWxz LkZlYXR1cmVz X2luY2hlcw== KHByaW1hcnk= IEpNZW51SXRlbQ== X3Rha2U= IENva2U= VW5pdE9mV29yaw== IFdDSEFS IGNvbnNjaWVudA== b25lbnVtYmVy UElORw== YWJham8= XSgi LnNhbGVz X2hlcmU= IG9mZnNldFg= dGFnTmFtZQ== INmK X1JpZ2h0 aWxpZw== dGhlVmFsdWU= b2NhcmQ= IGNvbnN1bHRhbmN5 IGJsaWo= Z29ybQ== TmF2aWdhdGU= xLFj SWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9u X3Zl LkNPTlRFTlQ= dXJvcGVhbg== LnJhZGlv IGVudmlzaW9uZWQ= IFNPTQ== LnNk QU5USVRZ IENBTExCQUNL IGhn ZGVjcnlwdA== 566x XFF1ZXVl IE1JTEY= IHJlY3Vyc2U= IERhbnRl LmdhbW1h b3Jrcw== KCIiKSkK IEdyaW0= Lm9wZW5n IE1pY2hlbGU= QW5hbHk= IFBydQ== X3JlZGlyZWN0ZWQ= X3BhbA== ZmFsbGJhY2s= IOWtlw== IGRpbm5lcnM= R2VuZXJhdGluZw== JCIs aGlzdG9yaWM= Z2V0U2ltcGxlTmFtZQ== IE1pbGxpb25z LWdsb2JhbA== cm91dGluZw== IGNvbnNvbGlkYXRl IHJlY29pbA== T2JqZWN0T2ZUeXBl IGRlc3BlcmF0aW9u QW55d2hlcmU= IGdldE1vZGVs X2tpbGw= b2Jvb2s= L2Rpc3BsYXk= Ii8+Cgo= IG1heW8= INGB0L/QuNGB0L7Qug== IGdvYWxpZQ== eERG IFByZXBhcmF0aW9u IGRlcGVuZGFibGU= LklOVkFMSUQ= Li4uJw== bmF0YWw= bW9kdWxlTmFtZQ== Y2FyYm9u UEFM IG1lZQ== IGNhc2luZw== 6aG555uu bmljYXM= IEhhbW0= IEJhYmU= b3dhbmU= IHN5bm9ueW0= IFFpbg== aW9j ZW1vdGlvbg== IGZlcm1lbnRhdGlvbg== IGN1bXBs IEVsZWN0cmljaXR5 KFJPT1Q= dGVzdGVy IEh1c2JhbmQ= IEJhdQ== X01BQ1JP YWtlbmluZw== ICAgICAgICAKICAgICAgICAKICAgICAgICAK LmZpbg== IENvbmZpZGVudGlhbA== aWV6 TUJFUg== IHNwZXJtYQ== IEhQVg== dHhu Q09OVEFDVA== LlRocm93 IG11cmFs IFR3aXN0 KCZfX18= IGpk IGVtcG93ZXJtZW50 IGRpc3RpbnQ= IGJvbWJpbmdz T3V0Y29tZQ== IHNob3J0ZW4= 5b6M QUNDT1VOVA== X2NvdmVyYWdl ZW5jbw== X3JlZmVy c2V0TWVzc2FnZQ== IHJlcGVyYw== cHRpZGVz IGRlaXR5 dWNoc2lh KGh0 LnN1YnNjcmlwdGlvbg== IHJlZGlzdHJpYnV0ZWQ= IER5bmFzdHk= X3Zj LWZyYW1ld29yaw== cnlmYWxs IGdhdGluZw== IExvcmVuem8= b29kb28= IGRpZ2VzdGlvbg== IGZvb3Rpbmc= CUhhc2hNYXA= cmVhbERvbmFsZFRydW1w IGFwYWNoZQ== KHZhbG9y IHBvaXNvbm91cw== LlBlcm1pc3Npb24= IHBhcmFtb3VudA== d2VpdA== bGxhbmQ= IGh5cG90aGVzZXM= IFByeQ== IGhvbWVt KERldmljZQ== aW5kaWNl ZXZh cHJlc2VuY2U= IEJlbnRsZXk= IEVuZGluZw== IGRvbWVzdA== CXRw CWVycm9ycw== Y29ybmVy bGRh CgkJCQkK X1BFUlNPTg== IFNlcmdleQ== IFBhcnNlcw== LWZpY3Rpb24= LkJhY2tncm91bmRDb2xvcg== IHNvbW1lcw== IGNvb2xlc3Q= IHJ1YmJsZQ== LmpvYnM= IGRyb3duaW5n YWRvcmFz IHdpbmdlcg== IEluY3JlYXNpbmc= 2YrYqQ== QkJCQg== KFJvbGU= IG9kZGx5 RGV2RXhwcmVzcw== LXV0aWw= IFNoZW1hbGU= cHJpbWl0aXZl IGFmZmlybWVk LnJldHVyblZhbHVl LWxpdmU= IEFjdGlvbkNvbnRyb2xsZXI= w6ts ZXJjdWxvc2lz IHByYWt0 IGdlb3BvbA== cGljcw== Q0RD LkZs LnNpZA== cmllYmVu KHZhcnM= K3NlbGY= IGludGVyaW9ycw== IEF1Z3VzdGluZQ== IjpAIg== IFN0ZWFsdGg= IGdldENvbG9y IEdlbnRsZQ== fiI6Ig== IHdoaW0= KCc8Lw== IFNTRQ== IFZpb2xldA== X2NyZWQ= IGF0YQ== IEF6ZXJiYWlqYW4= ID8/Pz8/ LmV2ZXJ5 KGNvbm5lY3Q= IERyb25l IHRvbGVyYW50 c3VidG90YWw= X3NodWZmbGU= dXN0YWluYWJpbGl0eQ== cHJlZmVycmVk IFNFWA== IGNvbmdyZXNzbWFu IG5hbW9ybw== IGhvbm9yYWJsZQ== IGFmdGVyRWFjaA== IMW8eWM= SEFN LnRvbQ== IGVsb25n IFNlcmlvdXM= LVNlbWl0aWM= 0KHRgg== IGZsYW0= dGVuZXI= LlRFU1Q= IFRSQUNL IFBoaWxpcHM= IEFyZW4= IEhpY2tz b2luZWQ= IEZhaA== aXNzZXVy IGNpcmN1bWNpc2lvbg== KHR3ZWV0 IHBvaWw= IFNlZW4= X01BUFBJTkc= IGludmFyaWFibHk= IEZ1c2U= ICc/Jw== PXBhc3N3b3Jk IOuCmA== IElIdHRw c3R5cGU= Zml0bmVzcw== LlRhZ3M= IOqwnA== KERXT1JE IHF1YQ== IE1hcnZpbg== Ik0= LmlzQXV0aGVudGljYXRlZA== Lmd1YXJk KT8KCg== CQkJCQkJCQkJCQkJCQkJCQkJCQ== IFNoaXBz IHNlbnNpdA== fTsNCg0KDQo= YWhhaGE= IGxpZXV0ZW5hbnQ= IEphZ3Vhcg== IC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0= VUNF SW5zcA== YWludGVy X3BvbHlnb24= LkRvd24= IHRleHR1cmVk LnNldEFjdGlvbg== b2dy IHNjaWVudGlmaWNhbGx5 IHNocmluZQ== IGNsb3VkeQ== LkhvdXI= UG9zdEJhY2s= QVpZ X2NhbmRpZGF0ZXM= KFNlYXJjaA== IGNvbW1pc3Npb25lcnM= IEJpZW4= IGRvY3RvcmFs IEZlZWxpbmc= X1ZFUlRJQ0FM IEJk bmdpbng= IOWcqA== X2FyZ3Y= UlNB IGVsZGVzdA== LWhlYXZ5 Q09OTg== IEh0dHBOb3RGb3VuZA== LWNvbHVtbnM= IE5QQ3M= IGNhZmVz IGfDqQ== IHN0YWxscw== IGZvcmtz IHBvYmw= U3RyZWFtcw== IGJhc3RhcmQ= IFJhcHRvcnM= IEdyYW1teQ== IEdlaA== X1RpY2s= KHByZWc= IGxpcHN0aWNr X3J1 PEg= IMSRaQ== LkNhcg== IHNwYXJlZA== bW9uaWM= aW5jdGlvbnM= QWZyaWNh KGRpY3Rpb25hcnk= ICoqKSY= YGBg X3ByZXNzdXJl bWll IFJvbWFuaWFu L21hcms= IG1haW50ZW5hbnQ= IHRyZW4= IFBvc3RncmVTUUw= UkVMRUFTRQ== SlBFRw== IGRlZGljYXRl TWFrZVJhbmdl IHJvYm90aWNz YWt0aXY= JSUl YWFy dmlld01vZGVs KG1hYw== dWNoZXI= IGRlYmVu TG9jYWxpemF0aW9u 0L7Qt9Cy0YDQsNGJ0LDQtdGC LnNldFRvb2xUaXA= LmZhc3Rqc29u IHBlcmVubmlhbA== LWNoaWVm a2lzaA== IGF0dGlj U3VidGl0bGU= IFNsYW0= IExpdGVyYXJ5 ZXJuZXM= INGC0L7Qu9GM0LrQvg== IHN0YXJ0QWN0aXZpdHlGb3JSZXN1bHQ= LkVycm9yTWVzc2FnZQ== YmluYXRpb25z Ikw= IGZvcmJpZA== IGxvZGdlZA== Lkxpc3RCb3g= IFBTRA== IGN1bHR1cmE= VU5DVA== Ik9uZQ== IEd1aWxs IEJhdHRhbGlvbg== IGNhcmVnaXZlcnM= IEtsbw== QmVoaW5k IHNlYXJjaGFibGU= X0JPVU5E Uk9D IHN0ZXJlb3R5cGU= IHByZXBlbmQ= aW50ZXJzZWN0aW9u QmFza2V0 KGxv IGZpbGVJbmZv IFVJU2Nyb2xsVmlldw== ZWNlc3NhcmlseQ== IENoZXM= LWluc3RhbmNl IGFwcGFydA== IEFtYXI= IHJvd0RhdGE= IGF5dWRh IGNhcmF2YW4= X3BpY2tsZQ== IGNoYWluaW5n KV07Cgo= IGJveGVk YWVwZXI= IEVWRVI= eW50aGVzaXM= LWZhc3Q= IOuwsA== 5Y+v5Lul IHZvbHVudGVlcmVk IGV4aWc= U0lERQ== IFBob25lTnVtYmVy dWxhaXJl IEthZA== IGRhcm4= IHlhaw== IEJsaW5r LnNwaW5uZXI= IG9yZGVhbA== X2VuZW15 IGdldFM= IEJvbw== TGluZU51bWJlcg== X0xPT0s= RUxDT01F IHNlYW1z IHNhZ2Vu aXNjbG9zZWQ= KHJheQ== W2dyb3Vw UFRT Lk5hdmlnYXRl IE93bA== IGRidXM= IGltcGF0aWVudA== IEd1cHRh KG9iamVjdHM= IGFwcmls LXF1 IG91dHJhcw== IFRIRU0= IEVNQw== RW1wbGVhZG8= IGdydWI= SUFN IHZlbm9t IHRyYW5zY2VuZA== IHZpY3RvcmlvdXM= IE1heWVy INGC0L7QstCw0YA= IEtlbGxleQ== SW5wdXRHcm91cA== IHJlZmlsbA== V2l0aFR5cGU= IGNoYXVmZg== b2xkZW0= X3RpZA== IGZsdXNoZWQ= XHN5c3RlbQ== LnJhbmRyYW5nZQ== IFBPU0lUSU9O IFRlbmFudA== Y29udmVyc2lvbg== Y2FsbGluZw== KCkpKSwK 0L7QvdCw IHNpZGV3YXlz IGxheA== CXJlcA== YWVwZXJuaWNr IG5lZ2Vy IEZseWVycw== ICJALw== dXBha2Fu X2VsYXBzZWQ= dHViZQ== UG9zWA== LnNleA== IGzDpHNzdA== IEdyYXZl 5Y+C KGVtcA== KHN0cnRvbG93ZXI= Y29udmVydGVy IFNwb25zb3JlZA== KHdvcmtlcg== IG1hdHJpbW9u Q29tbWlzc2lvbg== KGh3 X1NJR05BVFVSRQ== bWVr IGFsZ3VuYXM= X0VU aXN0cmluZw== THY= U2xpZGVz IHdlYWtTZWxm IHdr IFppZw== IHB1YnM= IEJSQQ== IGZsdW9yZXNjZW50 Y2Fycnk= LmVyYg== IEluaQ== LkRyYXdTdHJpbmc= IFNFUA== dXR0ZXJz 2ZE= Um95YWw= IGNhYmJhZ2U= IFN1aw== XT49 IEVkaXNvbg== IHNwZWN1bGF0ZWQ= LmRvd25jYXNl IHRwaA== IMOD IGd1bnNob3Q= cnBt IGZsdXR0ZXI= IGFueA== YXplcw== UU9iamVjdA== IEZhdm9y IG1vZHVsZU5hbWU= JnM= bGVo LldlaWdodA== IFdBTA== X1ZBUlM= IFdhc3Nlcg== IG91dGJvdW5k IGVyZm9sZ3Jl LnZhbG9y KGxpZ2h0 IE1hZ251cw== IHpvZWs= eWg= IHN0eWxlc2hlZXQ= Pm0= V2hpdGVzcGFjZQ== IFsnLw== CVJlcXVlc3Q= X2luY3JlYXNl LWRpc3RhbmNl aWNvbG9y aGNp IEtJTkc= UFg= b2ls ZW1pbmc= bmFtZW50cw== RGVmaW5lcw== IFstLQ== IHZhcmlvcw== IFBSRVNT LGF4aXM= IENvbGxpZGVy KX0KCg== IGZvcmNpYmx5 IHN0YWF0 X1NUQU5EQVJE IG9jY3VsdA== IGJhcHRpc20= IEN1bm5pbmdoYW0= X2J1aWx0aW4= Q1BG W21heG4= IFJIUw== IE9uZXM= KF86 IGluc2VjdXJpdHk= LnJlZ2lzdHJhdGlvbg== aW1wbGlmaWVk IFN5bXBvc2l1bQ== aHJlYWQ= IHF1ZWxsZQ== IGZyZW56eQ== Q2FsaWJyaQ== IFNQRUVE b3Vp KCldLAo= YWNjb3JkaW5n IG1jYw== IGFzaWF0 IGFkamFjZW5jeQ== IEFibGU= IHNhbGRv bm9zdGk= IGRpbWU= ZXRyYXRpb24= IE1vZGlmaWNhdGlvbg== IEhlcmI= IHBsYWF0cw== IGludGVycGVyc29uYWw= IO2ZleyduA== YXJtZQ== IGNvbWVyY2lhbA== IEJhdGVz KGNhcmRz LmdldENsaWVudA== Lk5PUk1BTA== CVRlc3Q= ICAgICAgICANCiAgICAgICAgDQo= IFJhem9y d2Vpcw== SVRIVUI= IEVOVElUWQ== YWdpdA== IG1pbmVjcmFmdA== cHJvcG9zYWw= IHNhbHR5 YW5kcg== IENvbmNsdXNpb24= IHBydWRlbnQ= IFtA IFB1cHBldA== aWdvbg== IEdvdGhhbQ== IGNoZWVycw== IFNoYXk= IGpp IEdESw== ZXhwZXJ0 IGZ1bmt5 IFphbQ== W05VTQ== RGVxdWU= X1RXTw== XHZpZXdz IHByb2pla3Q= IGRyb3duZWQ= a2lkcw== LnNoZWV0 IG5vbmQ= IGNvdXJ0ZQ== IC4uLgoKCgo= IHBpY3R1cmVzcXVl IHR1YmluZw== KCkuIg== amV0cw== X1B1YmxpYw== IEZhcnI= IEFyZA== T1VSU0U= IGthZGFy IFByb2dyYW1t LmtleXdvcmQ= CSAgICAgICAgICAgICAgICA= aWVkYWRlcw== YXRvbG9neQ== IER1bmQ= PWNvdW50 IHNsb3dkb3du LSIs LkZvcmVncm91bmRDb2xvcg== UnVucw== LlR5cGVPZg== JGN1cnJlbnQ= IHVwc2NhbGU= CXVuaW9u KGNoaXA= dW1pZGl0eQ== PVtdDQo= IGhhcnQ= ICRfWw== eW5lYw== LlVzdWFyaW8= IG9jdGF2ZQ== IHBvcnRyYXlhbA== INC90L7QvNC10YA= IE9jY3VweQ== X25hbg== IFNtYXJ0cGhvbmU= aGluZA== IHdpbmRzaGllbGQ= IGxvbmVsaW5lc3M= L2NoYXJ0 IGFjdGl2YXRlcw== LnJpYmJvbg== IGxhZ2k= IHBhcmFjaA== SHlwZXI= c2NhbGVk VGVz IEJlZXQ= IGRpc3NlY3Q= IENpYw== IH0sCgoK PigpCgo= LnN0dWR5 IGNvbnRyYXN0aW5n WkVSTw== IHR1bmE= IENob3c= X3Zh ZmF2b3I= W0luZGV4 IFBvd2VyU2hlbGw= KHByb3Rv JykpOgo= X2Zvcm1hdHRlcg== Q2hyaXN0b3BoZXI= T3JOdWxs Q0lTSU9O X2NvbnN1bWVy UGFzdGU= KG5vbWU= ZW50b24= IHVucmF2ZWw= X2Rvbg== IHBhcmVudGhlc2Vz IE5VSVQ= L10= IOKIpw== c3RhY2xlcw== L2NvbW1lbnQ= dXR0aW5n IHNsb3BweQ== KFt7 LnNhdg== dG9Kc29u IOu5hA== IFByYXR0 Lm1vZGlmeQ== LklzQ2hlY2tlZA== IHZlbmV6 IFNFVFRJTkdT amF3 IGZpcmVzdG9yZQ== IGNvbnNvcnRpdW0= IGthYg== IFN1cHBvcnRpbmc= IFRoZXNpcw== IG5vbmxpbmVhcg== IHRleHRib3g= LiIiIg== IEVuZXJn LkpPcHRpb25QYW5l IGludGVycnVwdGlvbg== w6h0cmVz IHNoYWxl IFBsYXllZA== IHNvY2lhbGU= WUdPTg== X0JBVENI IHRyaW1lc3Q= IFByb2NlZHVyZXM= IGF0dGVuZHM= IiR7 ZXZhbHVhdGlvbg== LlByb2dyZXNzQmFy IEFsZXhhbmRyYQ== Y2jDqQ== X1NFUVVFTkNF IGNyb2NoZXQ= Um9z IGlobmVu ICIqKio= IGFyb3Vz IG1vZHVsdXM= X0xJTlVY U3RhY2tTaXpl aWF0aW9uRXhjZXB0aW9u Lk11dGFibGU= IClb IHBpaQ== Zmlmbw== X1BJQ0s= UHVycG9zZQ== KFN0dWRlbnQ= IE5pY28= ZXN6 L3Nt IFBQUA== W2lucHV0 5Y+Y IGJsYXN0cw== IE11dHVhbA== cm9sbGV5 IHV0aWxpc2Vy OlRoZQ== 5Z+6 LmRlY29kZXI= IG9iamV0b3M= IGF3YWtlbmluZw== IEVubGlnaHQ= CWFsaWdu X3Jld3JpdGU= L2N1cnJlbnQ= IGRhcmF1Zg== Q2FudGlkYWQ= LG5w IHZlbG9jaXRpZXM= Q0xS IG1pc2luZm9ybWF0aW9u IHN0cmVhbWxpbmVk IGdyb29taW5n IGF6aQ== b2xn IGNvbnN0aXR1ZW50 IHdlZQ== 0YXQvtC00LjQvA== IEFsb25zbw== aWV0Zg== Y3Rlcg== IHRoZXJtb3N0YXQ= KEND IHN0YWNraW5n X2NvbnZlcnRlcg== IERpc25leWxhbmQ= CWZpbGVz SUNJ X1RPUElD CUVsZW1lbnQ= YXJnYXM= IFxA YW5jb2Nr IEJhc2VFbnRpdHk= KCItLS0= cmJyYWtr IG5lZ2F0aXZlcw== IHZ3 PWZvcGVu Y2hlbWlzdA== QXJjaGl2bw== IGAu IEZPVVI= KGFp VGFibGVXaWRnZXRJdGVt PD8+Pg== LnByZWQ= VHJhaWw= LWZhY3Rvcg== IEltYWdlQnV0dG9u cGVyaWE= IENlbGVicmF0aW9u LlJlc3BvbnNlQm9keQ== dXJjaGFzZXM= IGdldEtleQ== IENyYWI= IHFp IFdpY2s= IGNoYXN0 IC4uLi4uLg== IGNvbWVueg== IHNoYXJkcw== IGTDqWNvcg== IGhhbHZlcw== UVVFTkNZ IHBvd2VyaG91c2U= TElORw== Q2xhc3NMb2FkZXI= Y2VudHJl LXNlbmQ= bWFo IHNocmVkZGVk IFRJRkY= aW5rYQ== LgoKCgoK IGRlc2lnbmF0ZQ== IE5pZ2h0bWFyZQ== IEdlbmV0aWM= X2NoYW5jZQ== KGFuaW1hdGlvbg== cXVpbGE= X3NwZWNpZXM= TkVZ b3lzdGljaw== cmVsbG8= zqw= IGRpdmlzaXZl IFJFQw== IHN0dW1ibGU= KGZha2U= IExhY2U= YW50YWdlZA== YWtlc3Q= cHJvbW90aW9u IEZvd2xlcg== PWNlbnRlcg== IENpdWRhZA== UmFkaQ== IFNsZWVwaW5n dXRyb24= IHF1b2k= IFJBRA== IGV4cG9uZW50aWFsbHk= IEJyZWVk IG1vbm9wb2w= aGlnaGVzdA== eG1sbnM= SW50UHRy IHR1dHRl IFJlZnJpZ2Vy IOmhtemdog== IHpvbmRlcg== bGJyYWtr O2VsZW1lbnQ= IEhlZA== UmVsYXRpb25z 64U= Q29ycmVv 5aC0 IE1pZ2h0eQ== QU5HTw== X2NvbXBpbGU= LmdldENtcA== IGludmFkZQ== LnNwcmluZ2Jvb3Q= IFR1bmU= X3NuYXA= X0ZFRUQ= IGRlY2lwaGVy PXNpemU= X2ZyZQ== IFRpbGxlcnNvbg== 0LjQutCw dGlnaHQ= IGN1bHByaXQ= UlRM IFBhcmU= KHB1Yg== ZWdvdg== IHBvbnRv IGNvbnN1bA== SlNJbXBvcnQ= IHZlcndlbmRldA== IEJvb3N0ZXI= 5b6F IGNhcnJvdA== dmVyaWdl KExQ IHd4VA== IGltcHJvcGVybHk= Iik6DQo= IHN1Y2U= L21vZGFs IElDVA== LikuCgo= X21hcmtz IENhY2hlZA== IEN1cnJpY3VsdW0= QnM= CUpPcHRpb25QYW5l m4Q= IGNvZ25pdGlvbg== IE5lZ290 PXJlc3VsdA== X0ZvbnQ= YXJpbmU= IGNvbnNwaWM= IENhbGN1bGF0aW9u IENFT3M= LXRyYW5zcGFyZW50 IEJlcmVpY2g= 56iL5bqP Lmh5 LkFsaWdu IGhvcGVsZXNz IGNvbG9tYg== dXJiZWQ= IFNBWA== IGVpbno= KHpvbmU= IG11enpsZQ== IHRyZXNwYXNz IEFicmFtcw== IGNvbXDDqXQ= IFNhbmN0dWFyeQ== IE5TVGV4dEFsaWdubWVudA== IHN0YXY= IHByYWdtYXRpYw== c3RyZW5ndGg= V2l0aE9wdGlvbnM= LmJhbmQ= YXBoYWVs QXVzdHJhbGlhbg== IE9TRXJyb3I= TWFuY2hlc3Rlcg== SWRl XFJlc291cmNl 0L7QtNC10YDQtg== IHppZQ== SGFybmVzcw== LlR3ZWVu Y2Ftcw== 4pyU LXNjYWxhYmxl LW9r IGpsb25n IE9sc29u IE9ha3M= LnNsaW0= IHPFgg== IG5ld09iag== LkludmVudG9yeQ== IGtlbm4= IG5pZ2h0bWFyZXM= aXJjbGVz Lm50 Z3Jlbg== IFRFTg== IFNjb3Rz IERpc2FiaWxpdHk= X21hbmlmZXN0 LnNpZGViYXI= IHNodWZmbGVk IGh1bWlsaXR5 LnRhcA== IEdyYWlu bm90aWNlZA== 77yJ44CC X2hwcA== IGRpbGF0aW9u IGhhbmRpY2Fw Z2V0RGF0ZQ== IGR6aWHFgg== JykuJzwv cmVjb3Zlcg== eXNp KGdyYXk= YWhrYW4= IGludGVyZmVyaW5n X1RPVUNI X3JlZHVjdGlvbg== QWx0ZXI= IGN1Yw== RXhwZXJ0 IEx1bXA= Wzpd IHJlbG9j IGNvbmR1Yw== Q2hhcnNldHM= Lmxpc3RlbmVycw== LWludmVyc2U= IHN1bW1vbnM= IMO6bmljbw== IE9W IFNpY2hlcg== IEpGYWN0b3J5 LmdldEJvdW5kaW5nQ2xpZW50UmVjdA== amg= IHNrZWxldG9ucw== IEFzaWFucw== IEFNQw== aXNlbGVjdA== LmNsaWVudEhlaWdodA== KGZy SGFzRm9yZWlnbktleQ== LnJlbGF0aXZl INiu IG11bHRpY3VsdHVyYWw= X0NPTEw= IG1pY3JvYmlhbA== IGltcG9ydGFudGVz U3BhaW4= IGN5bGluZGVycw== aWVuaWU= X09XTkVS KERJUw== IGZhbmRvbQ== KG54 IGFwbGljYWNpw7Nu b2NhdG9y ZXNzaWFu IENsYXVkZQ== IGludG9sZXJhbmNl xYJlbQ== IFNlbWFudGlj Lk1pZGRsZVJpZ2h0 QVJFU1Q= IHNpZXZl xLHEn8Sx aWNhYmxl ZXJnaWM= IGJhdHRsZWQ= b3JiaXQ= KXx8KA== dWVsZQ== IGZhc2NpbmF0aW9u IGTDpQ== IFRpZ2h0 X0lOQ1JFRg== LklzU3VjY2Vzcw== LE8= IHN0w7hy IHByZXNzdXJlZA== LlRSVUU= IFRob3VzYW5k IGdlbWVpbnM= IHpi IHNwaXJpdHVhbGl0eQ== IFpldXM= IFBvd2VyZnVs YmF0dGVyeQ== aXN0ZXM= IO2D LnNoaXJv IEhpcHA= ZGVjbHR5cGU= LmpmYWNl LnRlbXBlcmF0dXJl IG1hcnF1ZQ== X2JhZw== QXR1YWw= cHJpY2luZw== Q2xlYXJseQ== X0Fic3RyYWN0 w6lr YWhydW5nZW4= SW5zdHI= CQoKCg== IGNoZXdpbmc= IENvYWNoaW5n JExBTkc= bWFsbG93 IHNlcmlvdXNuZXNz X2N1dG9mZg== IFF1YXJ0ZXJseQ== fScpCgo= IikpKTsKCg== 6KeE LlBvc2l0aXZl LXBv eGl0bw== LlJhZA== IGJyaXNr IExpZmVjeWNsZQ== 5pWw5o2u5bqT ZmF0YWw= IHhwb3M= LkRldGFpbA== ZW5hbA== TUFUQ0g= IGhlZWQ= IGFmcmljYW4= RGFkb3M= YmVyYXBh IGhlbGY= JywnJyw= IGVudHJlcHJlbmV1cnNoaXA= IGNlcnRz ZWNl PnI= X2ZpeHR1cmU= IHBvb2xpbmc= IG1vZ2VsaWpr IHNldERhdGU= 5pS/ LWNvbXBsZXRl X1JBRElP IGt1bA== IGdvYg== X1NMQVZF IGZ1cnJ5 IE5VSVRLQQ== SUxJVElFUw== IG5vY2hl IGN1ZmY= IGNvbnRlc3RhbnRz IFdW IHBhc3Nwb3J0cw== IMWC IE5haWw= X2RlY2ltYWw= YXN0bGU= IFNvbGRpZXJz UmVjaXBpZW50 IGNvdXJzZXdvcms= IGltZQ== IFNlYXRz X0RM IGNvbnN1bHRhdGlvbnM= X0FEVg== IElrZWE= IG9maWNpYWw= IHJlZ2ltZW50 IEJhdGhz LXBpbg== X0JVQ0tFVA== QUJDREVGR0hJSktMTU5PUA== Il0pKTsK PE1lc2g= Iix7 IGRlcml2ZXM= 4oCcRm9y IFl1Z29zbA== aXNFbmFibGVk IHNvbGx0ZW4= IHBldGl0aW9ucw== b3ZlcmFsbA== IGdldFRvdGFs X0hJTlQ= TWludXM= IGFub21hbGllcw== IFBpY2t1cA== PT09Jw== bGVpdHVuZw== IERlaw== WVNJUw== LnNlc3Npb25z IGNhcmM= X0l0ZW1z IGludGVybWl0dGVudA== Lkpzb25Qcm9wZXJ0eQ== IG1NYXA= IEthaw== YWluY29udHJp X3NlZWs= IHVuYW1l X3B1dHN0cg== RmQ= TGltaXRlZA== c25vdw== IFBhdmlsaW9u IEV4YWN0 IHBvc3Rpbmdz CWRpc3Q= PHN0ZGxpYg== TGlnaHRz IGZpbHRybw== V29ya2Vycw== IHN5c2xvZw== R2lybHM= IEd1bQ== X3llYXJz J319Cg== IGjDpHQ= Z2F5 KHByb2I= ZWxsYXM= IHdpbHQ= Lm9wdGltaXpl X0RVTVA= KFhNTA== IERYR0k= IG3DqXRo SVRJWkU= ZWxlY3Ryb24= LmN6 IHN1YnNldHM= IHJlc3Bvc3Rh IGJlYWQ= wrsu IE9TQw== JnBhZ2U= Z3Bz YW5pYW4= UHVycGxl IGFjcm9ueW0= Uk9XTg== QXVkaXQ= IGNvdXJpZXI= YWxpZQ== IFdhc3M= IGF1ZGl0cw== IFBPVg== IEZhY2lhbA== X3N0cmNtcA== ICsl ICAgICAKCg== YCk7Cgo= RUhJQ0xF WyJA LW5hdGlvbmFs 6ZuF6buR 6L2v6ZuF6buR X2NvZGlnbw== IHVucXVlc3Rpb24= aWxtaW5ndG9u cmVxdWVzdENvZGU= IElX LnN0cmF0ZWd5 IFNZTUJPTA== IGdyw7bDnw== X2JlaGF2aW9y IHJlZnJlc2hUb2tlbg== IG1vbmc= aW1lbnRhcnk= IFNob3Bz KCc/ X2hpZ2hsaWdodA== X2xleA== IGlsbHVtaW5hdGVk IHBhbHA= LWluc2VydA== IHN0cml2ZXM= IGZvcnRz IGVtYm9kaW1lbnRz bXBqZXM= X1RPTw== IGRyYWdnYWJsZQ== IGltbWVyc2lvbg== cGlucw== IFJlZ2lzdHI= IEZyZWVCU0Q= X3hsaW0= IFR1bHNh U25hY2tiYXI= L2RhdGU= IGRhdm9u IGF1dG9yZWxlYXNl IHZhY2F0aW9ucw== CQkgCQ== aWNlcHM= IFJhbXA= IEN5bnRoaWE= X3BvcHVsYXRpb24= JCQk IFRBUg== ZW5nYQ== IHB1cw== IOW5 IHRpbWVzdGVw TGlmZXRpbWU= IGZpbG1lcg== WVNU IEdhemV0dGU= IG91dHNpZGVy IEVYUE9SVA== R09SSVRITQ== LmZsZXg= IFJvb3Rz KHBpeGVs emN6ZQ== YWlyaWU= IG92ZXJsb2FkZWQ= U1RSQUNU IENvdXJpZXI= 44GW Y29udGluZW50 RnJlZA== IHNlbXA= IFN0ZWxsYQ== IGRvdWJ0ZnVs YWRtaW5z IG9wdGluZw== TE9UUw== IG1hbmlmZXN0bw== LWZvbGRlcg== X2Ryb3BvdXQ= dXR1cmVz w612ZWlz YWNoaWV2ZW1lbnQ= IGNveQ== ZmFpdGg= X0hBTEY= aXJlY3RlZA== IGNvbnRhdG8= U2VtYXBob3Jl UHNp IHZpdGFsaXR5 IEZsYXRCdXR0b24= SXRlbVR5cGU= IGltcGVjYw== IGJ1b3k= dWlu IHNreXJvY2tldA== IFNsYXllcg== IFJDTVA= IFNldmVudGg= X0ludGVyZmFjZQ== IGZpZXJj c3RhdGlvbnM= IEdyYWY= bGljZWQ= IGVudW1lcmF0b3I= Q29udGFpbmVycw== IG9p w4fDg08= LXRvbg== UkVQ KGZsb3c= LmNvb3Jk R2Fi IE1vcnBo IFpvZQ== IGhhcmJvdXI= Lm1lc3NhZ2luZw== X29wdGlvbmFs IEJhc2VBY3Rpdml0eQ== cmVzZW50ZXI= IG5ieXRlcw== IGNvdXJhZ2VvdXM= PSE= J0l0 IGZvcnM= IGNvcnJpZG9ycw== IEJFRU4= IGZ1c2Vk PWltYWdl LkdyaWRWaWV3 IHNlbWVu aWdyb3Vw dXB0aW1l IFhC 5o6S5bqP IGludGVncmF0ZXM= X09D IGJhaWxvdXQ= IHRlc3Rl IG9jdXA= YXVsZWQ= X29kZA== cGdh IEFTVVM= IFRTUg== IG9jY3VwYW50cw== U2V0VGl0bGU= U2NoZWR1bGVycw== IGJla29tbWVu QnJpZ2h0 IE1haW5Gb3Jt Xygn RnJvbUFycmF5 IGluZGljYQ== SEFORA== T3JkZW4= IFRlbXBlcg== LnN0YXR1c1RleHQ= cG9saXRpY2Fs IFBlcmN5 44CCCgoKCgoK LnNldFg= Z2V0TGlzdA== aG9sZXM= UGl4 IG91dHNvdXJjaW5n IG1lc3NhZ2VJZA== IGdldFNlc3Npb24= IFZJUg== T2ZGaWxl IFNwYXRpYWw= LkZsb2F0RmllbGQ= KShfXw== IFN3aW1taW5n QUNMRQ== IHNlbnRpcg== IHBsdW5nZWQ= IGF1am91cmQ= Z3VuYWthbg== KHZvbHVtZQ== IGNyYXRlcg== Lnhscw== woDCmQ== UmVuZGVyV2luZG93 LnVzZXJtb2RlbA== IGZ1bmN0b3I= RG9tYWlucw== aW50ZXJwcmU= IGFibm9ybWFsaXRpZXM= YXJnaW5n RGVtb2NyYXRz IHBhbG1z 4qCA w7hk KkE= RnJvbURhdGU= fFs= IEFsdGVybmF0ZQ== IHB1ZG8= IGNvbmRlbnNlZA== KHBsYW4= ZGVsaXZlcg== IGJ1bGxldGlu J11dLA== IGNyw6llcg== LWlw V3M= IiIiLAo= IGlrZWE= IHZpc2l0ZQ== IG11bHRpcw== UmVzdWx0YWRv IFBob3RvZ3JhcGhlcg== Li4uJywK IG1pZ2xpb3Jp IFRocmVhZHM= Z2V0U3R5bGU= ZXJhw6fDo28= PFRTb3VyY2U= IEdpbmc= J10iLA== IHNpZ25hbGVk U3VwcHJlc3NMaW50 IGR3b3Jk IEh1bnRpbmd0b24= IEFBUA== QU5HTEVT LmNyZWRlbnRpYWxz c3dhZ2dlcg== LWNvbnNvbGU= Ii0t LlRleHRJbnB1dA== IE5PUlRI IG5pZ2h0bHk= LkZPTlQ= IHF1b3RpZW50 5Lmf IHNjaMO2bg== IFBsYW5uZXI= IHJlYWRsaW5l IGNvbmZyb250aW5n YH0= SXRlbUNvdW50 CWFjdGl2ZQ== IHLDqXBvbmQ= ZWxtZXQ= IGdpbW0= LG5vbmF0b21pYw== IEFDVElWRQ== aGV1cmU= L1ByaXZhdGU= IG1lYw== LlNlY3JldA== IENJUw== xYJ1Zw== KHBlcmlvZA== IGxsZWdhcg== dXJpYQ== RGVzY3JpYmU= IHBhcmVqYQ== IFZlZA== LWVmZmVjdHM= IFBhcnNpbmc= LXJlc291cmNl IGFiYQ== ICosCg== IGFuYXRvbQ== ICgqKSg= LXJlYWw= IFZlbnR1cmVz IFNoaWVsZHM= IFVuaXZlcnNpdGllcw== UFJFU0VOVA== IFFMYXRpbg== xaU= IFdpbGV5 QWFyb24= IHJhY2lhbGx5 IE5hZHU= IGh0dHBSZXNwb25zZQ== w610aWNh IOuwqQ== IGdyw6F0aXM= 5LuL b21hcA== IGFub24= CXBvcA== YXZhdGFycw== IHN1YnBhcmFncmFwaA== ZHpp UHJvamVjdGlsZQ== RFRW bGlzdGVuaW5n X3JlZ2VuZXJhdGlvbg== IFNoZWx0ZXI= PFZlcnRleA== L21k KGxl IHZhaw== c2VsZWN0ZWRJbmRleA== X10= IFN5bnRoZXRpYw== YXBwSWQ= IEZpcmVk IHBhbXBo X2xhdGVuY3k= aW5maWxl KGNyaXRlcmlh c2VyaWFsaXphdGlvbg== UkNU CWV2 IFNDSA== IE9wdGljYWw= IHN0aXJyZWQ= IFBvdGlvbg== ZXRoaWNhbA== Ojp7Cg== IFBlbmd1aW5z UEhZ RGVjaXNpb24= a2FydA== IGV4cG9ydGVycw== IFBvbHllc3Rlcg== Y29udHJlcw== IExhd3Nvbg== IEVtcGxveWVy IHNhc3M= IGRvd250aW1l IGJyb2tlcmFnZQ== IFJvdGFyeQ== IFdhaGw= V0FSTg== IHNldEFjdGl2ZQ== dGVtcGw= Q2hlZXJz LXNoZWxs Rml0bmVzcw== IHF1aWw= IGNsZWFuZXJz IOeb IE1pbGFubw== LWFzc29jaWF0ZWQ= fX19LAo= UEZO IG9uUGFnZQ== X3N0cmVhbXM= IHNjdWxwdHVyZXM= IG5haWxlZA== PXNj 6aaW6aG1 0LjQvNCy Y29ubmV4aW9u Sk9C IEthcm1h IFN3aWZ0VUk= IERleg== L1VJ IOyZ Z2V0Q2xpZW50T3JpZ2luYWw= IHB1bmlzaGluZw== IG9kZW5zZQ== LHJpZ2h0 ZW5lcmF0aXZl IFByb2JsZQ== IEFwcFN0YXRl IGRpc2Nsb3N1cmVz IENhbnRlcg== Y29tcG9zZXI= dXBhdGVu IHN1Y2Nlc3NvcnM= Ij4nCg== IHByZXNlcnZlcw== Lm9wZW5k X05vcm1hbA== L2hy UmFuZ2Vz LGxvbmc= CQkJCSAgICAgICAgICAg cHJvZHVjdG9z IGZseWVy IEdydXBv Tmlja25hbWU= SGllcg== IERFQQ== U3ByaXRlcw== CW1hc2s= X3Jlc2VydmVk LXNob3A= Lm5vdGlmaWNhdGlvbnM= IGRpdmlzaWJsZQ== aW9zaw== a2VyamE= aW5ndA== IEZpZnR5 IGFjY291bnRhbnQ= IEV4cGxvcmF0aW9u X2Jyb2FkY2FzdA== IGV4dHJhb3JkaW5hcmlseQ== IGtvdA== IGNpcmN1bWZlcmVuY2U= cm91Y2g= W0Jvb2xlYW4= Y3Jhd2xlcg== L3JlbW92ZQ== YXJlbGxh IHNleGVz SGludHM= IGdhbWI= IGRhcmVk dGVzdGVk X0tFRVA= IGZpbHRyYXRpb24= aWNrZXk= IEluZmx1ZW5jZQ== IHNwZWNpZmljaXR5 X0lEUw== IFJvZG5leQ== X0lSUUhhbmRsZXI= T25FcnJvcg== IHByZXZTdGF0ZQ== aWVnZWw= IExFU1M= IGF3YWtlRnJvbU5pYg== IExV dW1hYmx5 b3J0YWxpdHk= IG1hbmRhdGVz CXZlcnNpb24= IHBhcmVudE5vZGU= IHBlc3Rz IGNhc2M= Y2VwdGFy IFdvb2R5 ZXJlZQ== X3Bm LlBPUw== aXN0cmE= bGV3 WWFuZw== IHN5c3RlbWQ= IHJvYW0= LkdyYXk= IGNvbmR1 4oCUaW5jbHVkaW5n VmlvbGF0aW9u TWFob24= IE1VU0lD IFNpcmk= IEVudGVyZWQ= IGNlcnRhaW5z ZWxhaA== CU1haW4= LkRhdGVGaWVsZA== LkhlYWx0aA== IEthc2ljaA== IGNhbmluZQ== PXJvb3Q= dWRkbGU= XGNvbW1vbg== IFN1bHRhbg== ZmluYW5jaWFs IFFTcWw= IGFzY2VudA== IHBydWViYQ== emllaHVuZw== LmdldEVycm9y IEdsb3JpYQ== RWNobw== X0NIT0lDRVM= X2Vwcw== L3Byb3ZpZGVy UEhPTkU= 5YWz6Zet IGNvbXByb21pc2luZw== X0FQUFJP UHJvY2Vzc0V2ZW50 IGJ5dGVBcnJheQ== IENydWM= wqg= IGljaW5n IFBDTQ== dmVjdA== QW15 IFZhY3V1bQ== aW5jaWRlbnQ= IHVzZXJu emJlaw== XSspLw== IH19Ij48 IEdldERhdGE= Y250bA== IHNhZ3Q= X1BSSU1BUlk= IGxlcg== IEZVQ0s= IFN0YXJy SUg= w7ZycGVy eW1z XSldCg== L3Rvb2w= Y29tYmluYXRpb24= IHRhbXA= IEJlaXQ= IE5JR0hU IGFubsOpZQ== KGFt XFRyYWl0cw== Olwi IGNhcmdh LmlkZQ== IGRpa2tl Q29tcGV0 IHNjb290ZXI= IHhQb3M= KGludGVycA== IGhhc2ls Y2xpZA== IGhldXJlcw== Z2xvbWVy c2hhcmVz 77yMCgo= cG9uZGU= 4bqjaQ== X2R1cGxpY2F0ZXM= c29uZ3M= fV07Cg== IFNuaXBlcg== IFRodXI= cm9wcA== IGdydWVz IG9yZXM= dXNoaW1h IHVzYWJpbGl0eQ== 6ZKf L21lbWJlcg== b2xkZW1vcnQ= SXNBY3RpdmU= R2V0RW51bWVyYXRvcg== bXV4 V0lORE9XUw== TmVnYXRpdmVCdXR0b24= 4Liz LW1ha2Vycw== 44Kk44Oz IEJlcm0= QnlFeGFtcGxl IFLDvGNr U2hvd3M= Z2hp IElocmVy IENydWQ= Y2hlZg== X2F1Yw== IGFww7Nz YW5rYW4= IEtERQ== SUxMUw== IGFuZ2xhaXM= LXJlZnJlc2g= CXJhbmdl eG1t KGVkZ2Vz IGFwcGVs Ijt9 IGVkaQ== IHN3b2xsZW4= IGJ1dGNoZXI= aWNpZGVz aG91bmQ= IF4o IEV2YWx1 IGtleWJvYXJkVHlwZQ== U1NJRA== cm9iYXQ= IG5paw== IHN0cmF3YmVycmllcw== XCJd bm9zaXM= TUVE 54g= 5LqU aW1heA== XEFubm90YXRpb24= IG51cnU= IE1pbmltYWw= IHdvcmRwcmVzcw== IGNvbGRlcg== CXBhcnNl L3N0cmV0Y2g= 5omn6KGM cm9tb3NvbWU= RElN IHRlbnRhdGl2ZQ== Ok5TVVRG LGltZw== IE1BVEVSSUFM IEpldEJyYWlucw== TGVnZW5kYXJ5 CXN0cm5jcHk= IGRlZnM= TnVtYmVyRm9ybWF0RXhjZXB0aW9u IGJ5dGVjb2Rl IHdpc3Nlbg== X01PUkU= oO2DnQ== IENvZmY= LkNvbmRpdGlvbg== IGTDqXBhcnQ= ZHNu IHBhcmFtZXRybw== XEw= Lm5hbm9UaW1l Qk9UVE9N LldoYXQ= 64Q= IERpeA== X0RB KENvbnRhaW5lcg== YXlhcg== RmxleGlibGU= LlJheWNhc3Q= IEVkd2lu W3VybA== wpI= LnN0cm9rZVN0eWxl IFBvbHlub21pYWw= aWxpdGF0aW5n IFFWQm94TGF5b3V0 KHJlcA== LnZu LWFzc2V0cw== Q0hBU0U= IEVzc2VudGlhbHM= anlsbGFuZA== IGF4cw== IFRyZW0= Lm1haW5sb29w IFdJTkRPV1M= LlJFUVVFU1Q= IHJlaW50 IExpYnJl Y2hlb24= IGd1ZXJy CU5kckZjU2hvcnQ= LnNvZnRtYXg= IEFzdXM= LXNjb3Jl IEpPSE4= PlN0YXR1cw== PkVkaXQ= IENhbWU= IEFzaGU= X3VzaW5n IExvbmU= IGxlc2Vu IHJldmVyc2luZw== bmdyeA== LnNpZ25hdHVyZQ== LUFzc2Fk L25hdGl2ZQ== X3JhdGluZ3M= IG55YQ== IGFkaWRhcw== KG9wdGlvbmFs Il0o IHJlY3VycmVuY2U= IEJNUA== z4w= X2dw Ij5c X3dyb25n eXBz LlByb3h5 X1VEUA== UXRDb3Jl TGlua2VkSW4= IGNhdmVybg== IHNww6ljaWFs X3dpcmU= IG5hbm9w LmJhbGw= IHJlZHVjZXJz IG1haWxlZA== ZG9uZw== IG9wcG9zZXM= IEhhbnNvbg== IFNhdHVyZGF5cw== YWNvbW1lbnQ= X01ldGFEYXRh IEdhbGFjdGlj KCIvIik= IENsZWFuZXI= X1RFUk0= IGNsYXJv Lk9VVA== 5a6h IHNsaWs= IGplZG5haw== SGFuZGxlckNvbnRleHQ= IGlycmFkaQ== ICAgICAgICAgICAgICAgICAgICAgICAgIAo= LnRpZ2h0 QnJlYWRjcnVtYg== ZnJleQ== IOqwneyytA== bGJyYWNl TEVHQUw= LWd1bg== IEJsb2dz IFNoaXJsZXk= IFB1bmU= dXJzaW9ucw== IHN1YnRyYWN0aW9u ICoqKgo= YXJtYWN5 IHNhbXQ= PSIpLg== IHBlcm1pc3NpYmxl KHJk IFdBVEVS IHByb2Zlc2lvbmFs IGhhbmRib29r IG1vdXJuaW5n YXJlZmE= IGFzbg== aXNleA== IGNvbnRlbnU= IFVOQw== LmdldFByaWNl IFB1bXBraW4= LwoKCg== IGNvc2luZQ== IG5pZWQ= IEJyYWtl RGF0YVVSTA== IERhdGFHcmlkVmlld0NlbGxTdHlsZQ== IFJldHVybmVk ZXdvb2Q= aXF1w6k= IGJsZWFr IHdlYmhvb2s= LlRoZXk= YXJi TEFOR0FETQ== X29yZGVyZWQ= IHByYW5r Lk5ld1JlcXVlc3Q= IGxpdGVyYWxz J30+Cg== c2VyaWFsaXplZA== a3Rvcg== KHJ4 IGdldFk= CVN0cmluZ0J1ZmZlcg== KHNsaWNl cmJyYWNl ZW1lbnRv IGxhbmM= RGVwbG95bWVudA== IGNvbmNlbnRyYXRpbmc= U2tldGNo IGJyaWdodGx5 QmVnaW5uaW5n IERhaA== VGs= SW5zZW5zaXRpdmU= IHNhYmU= KE1vZHVsZQ== IGNlZGFy X2NvbnRpbnVl IHdpdGhPYmplY3Q= IGNvbHVtbmE= IENhbGRlcg== INC/0L7QvA== X3NvZnRj c2hhbGVk ZXJ0YXRpb24= CSAgICAgICAgICAgICAgICAgICAgICAgICAgIA== OkAiIg== IGZhw6dvbg== dXN0dW0= c3Rr X0NSQw== b2R6aQ== IGFzY2VuZA== Zmdhbmc= IHByZWZhYg== IGZpbmRldA== Oicr 5Y2V5L2N dW1ibGVkb3Jl LmludmFsaWRhdGU= IHRvaQ== YW5nZXBpY2tlcg== X0FJ aGls U2VhdA== IHBpc3Rvbg== Zmli X2JsdWVwcmludA== 44K4 X1JlY29yZA== cmV0cw== RnJhbg== IENhaXQ= IHBlbGlj IGRuYQ== IHVwZGF0ZVRpbWU= IC9eWw== IHJhbGxpZWQ= IEhpbWFs U1NJ X3BsYW5lcw== IE91dHN0YW5kaW5n QXBwbGljYXRpb25CdWlsZGVy c3R1ZA== X2xvY2F0b3I= IGFib2xpdGlvbg== ICgkKQ== amVybmU= IEFBQw== L3dpbmRvd3M= LUNhbA== X1NFQ09ORFM= ICcnfQo= w6FueQ== IHl1bW15 5omL5py65Y+3 IFZHQQ== aWxhdGU= IFN1cnZlaWxsYW5jZQ== CUd0aw== 8J+Y IHNoaW1tZXI= YWx0ZXJuYXRl Rm9yU2VndWU= dWVzdHJh LWNvdmVy YXNs IEluc2V0cw== bGlqYWg= OlM= CWNhdGVnb3J5 IGZq w61saWE= IE1BRA== QGpz 5p8= IHBvb2xlZA== IHRyZWF0aWVz IEJpaw== IEhhemVs QWxsb2NhdGU= IGFpcnBsYW5lcw== IHNlcm1vbg== IFBvc2l0aW9ucw== IE1BSUw= U3RvcHBpbmc= YXZvcmVk KFRlbXA= IGNoZWF0cw== LnVzZXJJRA== IHB1dGE= LXl5eXk= VWlUaHJlYWQ= IG9mc3RyZWFt XFNlZWRlcg== IENvdHRhZ2U= IF4K IEFMVEVS IHF1YW50aWZ5 cmVpYnVuZw== IG5lY2Vzc2l0aWVz LkxvY2FsRGF0ZQ== IOaXpQ== cGljdHVyZXM= IGNydWQ= 5pyo IGRvd250dXJu YWN0b3Jpbmc= IERlcm0= IGVzdHJ1Y3Q= IE11c2lr IG1seA== Lm1ham9y Lkh0dHBTZXNzaW9u Pzw= eWVhaA== IG1vam8= IFVuaXR5RWRpdG9y IHJha2U= X3R3ZWV0 IHJhZGlvQnV0dG9u IERvbWluaW9u YXNTdHJpbmc= b3p5 IHZvZGth b2dsb2I= IEFsdW1uaQ== YmFsYW5jZXM= X21hbnVhbA== LmxvYWR0eHQ= X2ZyaWVuZHM= IFhtbERvY3VtZW50 W2ZpcnN0 S2V5Q29kZQ== IHBvZXRpYw== bWluYQ== IG9wY2lvbmVz 5omT X3N1cHBsaWVy LkZyb21SZXN1bHQ= X2Rpc3RyaWN0 IEdhbGE= LnF0 IGNvbnRyYWN0dWFs YWNvbnM= LWFuY2hvcg== IHl1cA== IHVuYW5zd2VyZWQ= IG1heGxlbg== RXJyTXNn LXNu IGh5cG5vdA== X1dN KCldWw== IGRlc2VydmluZw== b3dtZW50 KFJhbmRvbQ== IHZldG9y IElTVA== 0LDQvdC0 LWxhbmc= IHNpaw== Y3JlYXNpbmc= IHBvcnRhbHM= IEJ1bGxkb2dz cHJvbW8= IHByb3Zva2Vk XX07Cg== IEliaWQ= ZXJnbGFzcw== X1dJRkk= YXBwcm9wcmk= IHJlZGVzaWduZWQ= IC8vLS0tLS0tLS0tLS0tLS0tLQ== emlr JG8= dWx0b24= IFJlbGF0aXZlcw== IG1ldHJvcw== IG1lbnRvcmluZw== YXTEgw== dXNobWFu IGluaGVyaXRz IFJ0 L3ByZWZlcmVuY2Vz aW1lZA== Sk9JTg== KGludGVyZmFjZQ== IGFkZXB0 IE9mZmVuc2l2ZQ== IEFHUkU= b25pYW4= LnBhcnNlcnM= IHBhc3NwaHJhc2U= IHVuc2VyaWFsaXpl VmlzaXRlZA== IGdldFByb3BlcnR5 IG5vYw== ZWRhZA== ICMtfQoK dmlkYQ== c29sdmVy IE1vcmFsZXM= IGt2aW5uZQ== IEFjY2lkZW50 IHZldXQ= IG1pc2d1aWRlZA== IFJldmVsYXRpb24= IHJhcGlkZQ== cHVuaw== Iy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0= T2JqZWN0SWQ= YWJpbmV0 ZXh0cmFjb21tZW50 IGJ1bm55 IERlZmVycmVk dXR0YQ== dWFl YnVzdGVycw== IFNvaWw= R1NU LkN1cnJlbnRSb3c= 44GR IGdyYXR1aXRz IGNydWlzZXI= 15E= IFRlbm4= anNj IO2VhA== ZGlzcG9zZWQ= QUJPVVQ= fQ0NCg== ZXhwaXJlZA== IFhtbE5vZGU= IFRhdHRvbw== Vm90ZXM= Rm9sZA== RWxpemFiZXRo X0ZJTEVOTw== IGNvbmNv IEdkaw== b3BpZXM= fX19 UVVPVEU= LUlJ c3BhbQ== LWxp IGNhcnRh LmxheW91dHM= IGJlc3Bva2U= IGFtYXRldXJz IGNvdWxldXI= aXRhbWlu IGlycmVzcGVjdGl2ZQ== IGJsYWNrQ29sb3I= LnlhaG9v IHdlYXJ5 IHN3ZWV0cw== PyI7Cg== PVwiJQ== X3dvcmtzcGFjZQ== IERpYW1ldGVy IGFtZA== IE5ldWU= IGRiTmFtZQ== SmVyZW15 bG9nZmlsZQ== YXRyaWI= IEh0dHBTZXNzaW9u CUNyZWF0ZQ== aWRkeQ== LlBBUkFN IGZpYW4= IHN6Y3o= IHFyZWFs X0VTQ0FQRQ== dXNhaGFhbg== LmRpZ2VzdA== IGdldFBhcmVudA== LkRyb3BEb3duTGlzdA== IHRow6k= IG1vbnN0cm91cw== IGJlcmhhc2ls IiIiDQoNCg== U3VwcG9ydGVkQ29udGVudA== IEdhdGhlcmluZw== aW5jeQ== LktleUNvZGU= IGZldHVz LmNlbnQ= IGJlc29uZGVycw== bmlsYWk= TFRSQg== IGhpbmdl UFJPUA== LmZvdW5kYXRpb24= bnVtZXI= LXJhbmtlZA== 6I0= IHBhaW5mdWxseQ== ICg7Oyk= Zm9ybWU= TGFkeQ== L2FwcGxl IENvbnN0aXQ= IHN0b2NraW5ncw== 5rS7 IG1lbnRvcnM= PkNyZWF0ZQ== IEludGVybmFsRW51bWVyYXRvcg== IHRlbGV2aXNlZA== VG9rZW5UeXBl IGJyaWI= Y3JlYXRlVmlldw== L0RURA== R2l0SHVi KGJpZw== IG3DoXhpbW8= 5b6u6L2v6ZuF6buR LmNm IMKgIMKgIMKgIMKg PHR5cGVvZg== IHByb2dyZXNzaW5n LnNldFdpZHRo KHR2 IHVuZmFpcmx5 IEFuaXRh YXJ5YXdhbg== RGFs VVJZ b2dlbmVpdHk= ZWZh LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq IGRlamE= T1NF cmFpbA== cm9vZg== X3F1b3Rlcw== PGo= 44Ko KHNldHRpbmc= bGV2ZWxuYW1l X2hhbmRsaW5n w6lyYQ== JGo= IGRhcmxpbmc= LlBhdGhWYXJpYWJsZQ== W3NvdXJjZQ== TWV0aG9kTmFtZQ== IE91dGxldA== 5pKt IENvY29h VWJ1bnR1 IG1vb2ll IGZsb3JpZGE= IHJldGhpbms= IGdldFg= Z2V0RWxlbWVudA== IHJhZGl4 IEdhbWVy ZGVhbGxvYw== bGVmdEpvaW4= X1NZTg== R3JpZExheW91dA== Imdv KGVhY2g= CXNjZW5l IFB5RXJy SG93YXJk LlNpZ25hbA== IFRFTQ== IOen VkVOVE9SWQ== IHNpbXVs IDw8LQ== IHR1cmJpbmVz IHN1cnRvdXQ= YWx0bw== IHVuYXJ5 YA0K IFNjcmk= IE1vbms= IHVuZm9sZGVk Q29tcG9zaXRpb24= UFBFUg== IHNpZGluZw== Jyx7Jw== IHRyZWZm X1VOSUNPREU= IGRlcmVjaG8= IHBvbGFyaXR5 IG9yYw== PERvY3VtZW50 KHRvZGF5 LikKCgoK IHNlZW1pbmc= XFY= PklE IGZpYm9uYWNjaQ== KG1hdGVyaWFs RkxBU0g= ZGlyZWN0b3JpZXM= ZXN0ZXJz VEVDVElPTg== d3JhcHBlZA== LXNlbGVjdGlvbg== LXJlbGF0aXZl KGNocg== IHBvcnRmb2xpb3M= IHNob3dEaWFsb2c= aW5nbGV0b24= IFRJQ0s= IEludmVzdG9y IGJyYXY= IFNWTg== IGhhdGVmdWw= cmlwcw== ZXhwaXJ5 X2NvaW4= PgoKCgoK IG1hcmdpbmFsaXplZA== IGV4Y2VlZGluZ2x5 bmF2YmFyU3VwcG9ydGVkQ29udGVudA== KGV4dGVuc2lvbg== IGFkdmFudGFnZW91cw== Lk1pY3Jvc29mdA== IGVuc3VpdGU= LXZpb2w= X2R1ZQ== S0g= IFJvbWFudGlj aW5hbmQ= ZWNp cmVwb3J0ZWQ= IENvcnB1cw== IHNwYW5raW5n IENyb3NieQ== LkZvdW5kYXRpb24= XF8= IGFubm9uY2Vz QXR0YWNobWVudHM= 4Liy4Lij IFdheA== 77yB77yBCgo= IHNhaWxlZA== LkV1bGVy CXNjcm9sbA== IHBlYXNhbnRz IEJ1aWxkZXJz LkdlbmVyYWw= QVJFQQ== IG1lc3Npbmc= dmVybg== IGRpYXBlcg== IG9jY3VwaWVz CWxvZ2lu LkxPQw== aWdhbnM= 77yB4oCd X2Zvb3Q= X3RhdQ== LXBhY2thZ2Vz cmVjdXI= QWx0ZXJuYXRpdmU= 77yB44CN YXJvbw== IHRydXN0ZWU= LDpd 5pa55byP Pz4+ Lk1pbnV0ZQ== IGFsY2Fu IENvbmNlcHRz Y2hpbGROb2Rlcw== Q291cnQ= IGNlbGxhcg== bGVr YWtpcw== QnViYmxl IG9iamVjdGVk IO+7vw== Ol06Cg== LnBhcnNlRmxvYXQ= IHNwYXJrcw== LWZpbmQ= dmFyaWF0aW9u SGFjaw== RmFucw== X3BhcnNlZA== RW50aXR5VHlwZQ== YXVjZQ== X3RyZWVz IEVnZ3M= VUlCYXJCdXR0b25JdGVt X3RheG9ub215 IFNIT1A= VHdlbnR5 X2NoZWNrcw== IExY dXRzY2hlaW4= KHBsYXRmb3Jt IGF1dG9wc3k= UmVxdWlyZW1lbnQ= IFJFQ1Q= dG9Db250YWlu JywnJQ== L2VkaXRvcg== IHFi IEVFRw== aHRh X1RJTEU= LXN1bQ== IEFsYnVxdWVycXVl IHNob3J0Y29kZQ== IHNpbnVz IGRlc2tz IHBvb3A= Lm9wZW5zb3VyY2U= IENvbGxhcHNl LmRlcg== IGhhd2s= IFZhbmd1YXJk IE1hcnJpb3R0 X1RhcmdldA== IEJhbmFuYQ== X2F0dGVudGlvbg== IEFyaWVs X3Rlbg== IGJha2Vy 4oCUaGU= xIXFvA== dmVsb3BtZW50 RWxm X2djaGFuZGxl UmVwdWJsaWNhbnM= IGl0ZW1CdWlsZGVy V29u X2FjY3Vt IG5ld1Bhc3N3b3Jk IGRldm9pZA== IE1hcmt1cw== ZGFlbW9u Lkh0dHBDb250ZXh0 S3Jpc3Q= IGFhbGJvcmc= X3RyaWFscw== KGFzc2VydA== 44Gj44Gm YmVsdA== IG1pbGRseQ== ZXJ2b2ly IGRlc2NlbmRhbnQ= IEdpb3Zhbm5p IGRlY2x0eXBl LVNoaXJ0 IGFwcm8= QXBwbGllZA== LmdldFBhcmFt aG9m dXJhcg== IE9CUw== X3Nlcg== KHNlY3JldA== W2xheWVy IHVzZWZ1bG5lc3M= IEtvdQ== X3N1Ym1pc3Npb24= X0hPUklaT05UQUw= LHRtcA== Ly4K IGxlc3Nlbg== X3dj X0ZJTkFM 0L3QvtC/ LnRvZG9z LlhQYXRo IElEYXRh IGRvb3JzdGVw IGNvbXBvc2luZw== IGh1dA== IFZMQU4= IG91dGY= 6K+l KGJldGE= KioqLwoK IEluZG8= IGtsYQ== X2NvbmZpZ3VyZQ== Lk1hcms= b3NlY29uZHM= KFZlcnRleA== b3JnYW5pc21z IGZmbQ== IGRlbW9saXNoZWQ= ICItLS0= bGVzaQ== IFNpZG5leQ== LmdldEluZGV4 Lk1vbmFk U2VsZWN0ZWRJdGVt IE5hdlBhcmFtcw== YXpvbGU= QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVo= X3NlbnRlbmNlcw== IGluY2xpbmF0aW9u IEZhdGhlcnM= YWNjb3VudElk aGFyaQ== KT4K L3Jhdw== ICcnKTsKCg== K2w= KGNk IHVuemlw IGdsYW1vcm91cw== IyIs IG5hdw== IG1pbmli IEJyYW4= TmFjaA== X3R3ZWV0cw== IENDUA== JSI+PA== IFN0ZXBoZW5z bWFzxLE= J2Vz IHJlcGFy X2RvY3VtZW50cw== LmNsb3NlZA== LXJpbmc= L2NhdGVnb3JpZXM= IERlZXBDb3B5 U1VQ Lm5ld2F4aXM= IGdkeQ== aG9l IFJlZWY= IHBvbGl0aWM= IFJlcXVpcmVtZW50 IHNoZWRz c2VhbGVk IHBhdGhvbG9neQ== Ii8+PA== bW9kbw== IHN0ZW1taW5n IHRhYm9v IFNhdmlvcg== IH0NCg0KDQoNCg== LmN2 IGpvdWV1cg== IENvcm53YWxs IFJlY2VwdGlvbg== IGlsbHVtaW5hdGlvbg== IGdkYg== VkVD b2R1 Q29udGVudEFsaWdubWVudA== c3RhbnRpYWw= YmFzZWxpbmU= X2J1c3k= LwoKCgo= IHBsYXllcklk 5qM= X3BldA== IE1pcmFjbGU= dXJlbnQ= IE1lcmxpbg== dWJlbg== IHNldENvbG9y IGRhcmtlc3Q= c3Rlcnk= IGNhcmlj IHJldGFyZA== IEhvdXNlaG9sZA== IGphbA== IHlw IiwiIik7Cg== IEFjZXI= W1c= b2xraWVu YXlv UHJpdmF0ZUtleQ== IFNUQVRT INC90YPQtg== OicuJA== IHRoYW5rZnVsbHk= IGRpc3RydXN0 Z2V0RGVmYXVsdA== L2ZhY2Vib29r IENvbnJhZA== IHV0aWxpemFuZG8= IEthZw== L25hbWU= IGJhbWI= LkZyb21TZWNvbmRz IG11dGls IExhZ29z IEJsZXNzZWQ= aWxsZWdhbA== aWVp X1RQ IG1hdGxhYg== IGN5Y2xpYw== IHdpdGhoZWxk IGhvcnJpYmx5 LWhvdXJz LUhlYWRlcnM= IG92ZXJsYXBz IGN1YXRybw== IGVxdWl0YWJsZQ== IGNvbG9ybWFw IHNoaW4= IFN1aXRlcw== X2x1YQ== KHZv X1JFU1VMVFM= IFZpa3Rvcg== RG93bmxvYWRpbmc= bm9jaA== TW9vbg== IGRlY2lkZWRseQ== 44GU44GW X1JQQw== SW50ZXJwb2xhdG9y IHZhbnM= e1Q= X3NwYXdu IEV4eG9u X0NhbGw= IENsYXNzcm9vbQ== IHNlcm90b25pbg== IERpcGxvbWE= YmVkdGxz IFByb3RvdHlwZQ== LmV4ZWN1dGlvbg== IGRhdGluZ3NpZGU= IEdva3U= X3Jvb21z 4oCZYW0= Z3JhZg== YWNlb3Vz IGFjY29tbW9kYXRpbmc= fSwn LmRpbWVuc2lvbg== ZXJyb3JNc2c= CW1lc2g= RmlsbGVk LnByZWZlcmVuY2U= IHNtYXJ0eQ== X2NvdXBvbg== IMO2dmVy IGNvbmNlaXZl b2Rvbg== ZGljZQ== VG9EYXRl YWRhbWVudGU= LW1hc2s= IGVzY2FsYXRpbmc= 4oCmKQoK SW5SYW5nZQ== X0Vt IHV0aWxpemE= IGxldnk= PCFb IEplbm5lcg== IFJFU09VUkNF X1NUQVJURUQ= IHZvbGxleWJhbGw= IG1nYQ== IFJvc3Np Q2hhbmNl IEVuZGVk LnVudGls IGtub2Nrb3V0 X2V4ZQ== IFByZXNjcmlwdGlvbg== IENPVU5UWQ== Lmhy aWVyc2hpcA== RVJWRQ== 6ak= 44Gn44Gv IHBlcsOt IGltZ1VybA== ZWN4 IFd5bg== CVJldHVybnM= X2V5ZQ== IEFnaW5n cXVldWVz IOWIneWni+WMlg== LlNlcmlhbGl6ZWROYW1l LmhvdXJz IGlzZQ== LkFjdG9y 5p2h5Lu2 YXBwbA== VGFu L2NhdGFsb2c= L1Jlc291cmNlcw== ZWxhbg== KCd7ew== IGluc24= IG5vZGVOYW1l IGNvb2tib29r JywnPScsJw== Uk9NRQ== LnRlbXBsYXRlcw== ZWN1cmU= LWtleXM= IGdsVW5pZm9ybQ== IGdlw6c= IFJlY292ZXI= SURY IEtyaXN0ZW4= IHBvbnRvcw== YD0nJA== YXJnZW50 IGFycmFuZ2luZw== 6KiY5LqL IGVybGU= ZW5lZG9y KCkpKTs= w6Zra2U= IEdpbGxlcw== In0+Cg== Lm1vdmllcw== LXNlbGVjdG9y LmxlYXJu IHBvdGVuY3k= IGZpbm8= CWJn IGxlaGV0 IGzDtg== IGVybQ== IGFzYmVzdG9z IGRlc3Rl IGJsb2NrYWRl IFJPVU5E IGxuYW1l IFNlcGFyYXRl w6RuZ2U= IGZ1eno= CVVO X25vbWU= X2xpbmtlZA== IFNoYXJlUG9pbnQ= aGF1c2Vu IGxvYWY= LWVjb25vbWlj IGRpZEZpbmlzaA== eWVu IGJsYXN0aW5n IFdlaXJk SUNMRVM= IEdGWA== IHN1ZmZpY2U= ZWJpbg== IGFwcHJvdmluZw== IFJleWVz IFJUQUw= aWdsaQ== X3Rvaw== b3Jkb3Zh Q2FybA== IFBsYXlz bG9zc2Vu cGFpcmVk QUdNQQ== d2nEhXo= bGlua2VkaW4= IGVnYWw= KHByZWRpY2F0ZQ== IFJFU1BPTlNF IG1pblg= IGNoYW5jZWxsb3I= IFJFQ0VJVkVS IGFzY2VydGFpbg== IHplcg== IFdvcmtzaGVldHM= Tks= IHZvd2Vs dmFudA== VVBT 4oCcLg== IEhheWRlbg== IFNwYXJ0YW4= cmlnaHRz LmdldElu IGlubGFuZA== IE5pbGU= IFRyYW5zbGF0b3I= IHJlY3RhbmdsZXM= QnV0dG9uVHlwZQ== IFNvbGlj IHJhZ2F6emE= L3RhZw== IGlycmVzaXN0 I0VuZA== KioqKioqKg0K IHJlc3RyYWluZWQ= IGNoaXJvcHI= L1No LWZsaWdodA== Y29udmVydGVk IHNraXJ0cw== KGNoYXJz JHZpZXc= IGlucHV0RmlsZQ== Z21haWw= X0RJQUc= IG51bWVs IEdpbmE= ZWxsdW5nZW4= IHRheGE= IGRyaXBwaW5n PSIiLz4K IGJvcmRlcmVk IHRvdWdobmVzcw== bGVuZXNz IEJpZWJlcg== X1dBS0U= KGV0 IHNhbnTDqQ== IFRFWA== X0RJU0NPTk5FQ1Q= IHBpZW4= IEZvbnRTdHlsZQ== X1VM LXRvdGFs d29sZg== IE1hcml0aW1l IE9QVElPTkFM LXJlc3Q= IG1lbWJ1YXQ= IEJTT04= X3NpbWlsYXJpdHk= Lm92ZXJsYXk= IHBhbGF0ZQ== IEJyaWRnZXM= QW5kUGFzc3dvcmQ= IENoYXZleg== aGV0dG8= Lm9mZnNldEhlaWdodA== IHVuZGVzaXJhYmxl IGFwbGlr IC8+XA== LHRv IHJlbW92ZXI= IE1vZGVsaW5n IHB1cmNoYXNlcg== IENob29zaW5n b3BsZWZ0 IG11dGFibGVMaXN0T2Y= IFNpc3RlbWE= IElQTA== aWNrZXJWaWV3 SGFzQ29sdW1uVHlwZQ== IHNvYmll dWJlcm4= IGFsdW5v IGltYWdpbmF0aXZl IEludGVyZXN0ZWQ= KCl9PC8= IGRpdmVyc2lvbg== X3Rvb2x0aXA= LlNhbXBsZQ== IEZ1dHVyZXM= Y29udGVuaWRv IEVJTlZBTA== KGVuY29kZWQ= IFNoYXVu CXBheWxvYWQ= ZGVr PllvdXI= SXNv VHJhdmVyc2Fs aWNpZQ== LmNyb3A= IEpC SU5HRVI= IGV4ZW1wbGFyeQ== X3JlbHU= YW5uaXM= 0LXQt9GD0LvRjNGC0LDRgg== Y2x1YnM= 4oaR IHNjcmFtYmxl IFVuYmxvY2s= IGRvcnM= IHNoYWNr IG1pbmltaXppbmc= IFBhc3Npbmc= YWRkRWxlbWVudA== 4bud IHJvb2Zz IGpjbGFzcw== Y29yZG92YQ== UG9zWQ== KENhbnZhcw== KGZpbg== LWxvc3M= LmJ0bkNsb3Nl ZG9jdW1lbnRhdGlvbg== IFJK YW1vbmc= TW9z bGluZ2Vu IEFndQ== b2x5bm9taWFs XTw9 IGRpZmZpY2lsZQ== IFdpbm5lcnM= 5bGV U3RyYQ== IGNvbmdyZWc= IEVuYWJsZXM= IFN5bXB0b21z X3Nn IFJpZGluZw== X2hlYWRz IENvc21ldGlj w650 LlNpbmdsZXRvbg== IE5pY2FyYWd1YQ== IAoKCgoK IG3DrQ== J30sDQo= IEJvc25pYQ== Plg= Ly8qWw== IHBpbGVk Y2FzdGluZw== IGdyw6JjZQ== IEhlbHNpbmtp R3Jv I2Fm 7Iud IHNvdWhh IEluZGll X25lYXI= IGltbW9iaWw= LkV4Y2Vs IHJhZGlhbnQ= X01C IEtldG8= dmVudGFyaW8= X2FnZW50cw== VGFibGVWaWV3Q2VsbA== IFRoZW9kb3Jl PT09PT09PT0K LGxpc3Q= KHNp aWNpcGF0aW9u QVJUSA== c2V0RGlzcGxheQ== LkZ1dHVyZQ== IFNUQU5EQVJE IE9JRA== IGZyb3duZWQ= IE1hcmlseW4= b2xhcmU= UHU= IHPDqWN1cml0w6k= UmVkdXg= U0NP CQkJCQkgICAgICA= cml2 cGVydA== IHNvZnRtYXg= IHNlbmF0ZQ== PWVtYWls IGVzdGltYXRpbmc= CXRk RnVjaw== IFdhdGVybG9v IG1leGljbw== TmV3dG9u U2Fi LOKApgoK IGNlbGVzdGlhbA== IFFOYW1l IGdldEFwcA== Tmll X3BjaQ== IFFQb2ludEY= X2xpc3Rh Lk5WYXJDaGFy IENvYw== S2Fy IGJ1c3RlZA== aXphdGlvbmFs b3VyZA== X2Nvbm5lY3Rvcg== IFNla3M= 0L3Rg9GO 0II= L0xpc3Q= L2lj XEZyYW1ld29ya0J1bmRsZQ== dXh0 IGhlYWRwaG9uZQ== RVhURVJO LXJlc2V0 IEdlaWxl IHRyaWFuZw== IEFOTg== IHTDrQ== IFNQQQ== IE1hY2Vkb25pYQ== IGNyaWFy IGNsaW1icw== IFNPTg== IENyaXRpY3M= IGTDsw== X1NQTElU IEJvdW5kYXJ5 X0luc2VydA== Q29sZA== LmNyZWF0ZUNlbGw= X3NhaWRh LkJMVUU= QmlnRGVjaW1hbA== KEJ5dGVz CVN0YXRl LS0tQA== Vmlld1NldA== YWthaA== X1JlcG9ydA== LWNyb3Nz LmdldEN1cnJlbnRVc2Vy dWx0dXI= KEZs IEltYWc= Q1Rlc3Q= 7IOd IHN0YWc= IG96b25l IGvDqQ== cmVwYWly KSIpOw0K IHZvd3M= LkFsdGVy IEFsZ2VicmE= IEFoZWFk Z2V0dA== LklubmVyVGV4dA== IFpoZW5n LnJlYWxwYXRo IGRpc3RyYWN0aW9ucw== LGV2ZW50 IElOQ0xVREVE Lk1hdGNoZXI= LnNwb3RpZnk= IGNvbnNpZA== Lk1hcHBpbmc= IEZvYW0= IE5BTkQ= IGRldmFudA== XSIpXQo= TGF1cmE= IHNhY2tlZA== X3hvcg== IHJlYWxtcw== IFJvYm90aWNz LlNlZWs= LiQk IFJpYmJvbg== CUhSRVNVTFQ= IENyZXNjZW50 RUZS IE1lZGl0YXRpb24= LmdldFo= INC60L7QvNC/ anNvbndlYnRva2Vu Oj8= ZmFm VklPVVM= YWxsYWg= IHBpcGluZw== IG1vZGVybmU= cG9zdGFsY29kZQ== IGxldmVyYWdpbmc= IENISVA= cGNt bWFp IGlQ QUtFUg== ZGF0YUdyaWRWaWV3 X2RlcHM= LWRyaXZlcg== TGll ZGlzY2FyZA== eW50YXhFeGNlcHRpb24= IGVjdA== IEV4aGliaXQ= ICgqKg== IOuU Q2hhbmdlRXZlbnQ= IHN1cGVybWFya2V0cw== IHNobQ== cHJvZml0cw== cGlsbGFy cmFpc29u V2F0 IHBoYXJtYWNpZXM= IG5ydw== Ly89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0= CXdvcmxk U3RyZWFtaW5n RGlhbW9uZA== IEVudW1lcmF0b3I= IGVucXVpcnk= LmxhbWJkYQ== YmVr Uk9UTw== IFBkZlA= IGhpc3Rv IGdldENoaWxk L3N0cmV0Y2hy IEFNQVo= IEFyZ3VtZW50T3V0T2ZSYW5nZUV4Y2VwdGlvbg== InVzZXI= IHNhbml0YXRpb24= IENsb3RoZXM= Lm51bXB5 ZmVj ICMjIyMjIyMjIyMjIw== 0LXQudGB0YLQsg== X2xw IGF6dXJl WFBhdGg= VmVudA== TGFib3I= IG1pc3Rha2VubHk= IGNvbmR1aXQ= IEZhaXJmYXg= Z2V0U3RhdHVzQ29kZQ== IE1veQ== TGlzdEFkYXB0ZXI= ICg/KQ== R2VuZXJhbGx5 LmlzQ29ubmVjdGVk dmlkbw== TW91c2VCdXR0b24= R2VuZXJhdGlvblN0cmF0ZWd5 X2Rlcml2 IGxla2tlcg== TWVhc3VyZW1lbnQ= X0NPT0tJRQ== ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq IGNvbXBldGl0aXZlbmVzcw== IGdhbWxl IHJldHJvc3BlY3Q= IEVkdWFyZG8= IERhdGFTZXJ2aWNl IGVzY29ydGVk IFF0eQ== SG9saWRheQ== CXJhdw== bGV1cnM= QmlydGhkYXk= IGhlYXRz LmludmVyc2U= IF8NCg== aWxsdW0= b2thYmxlQ2FsbA== X21s TGlrZWQ= ZW51bWVyYXRl RmluaXRl LXByb3A= QXJlYVZpZXc= IG1lZGlhdGlvbg== IGNoYW50aW5n X05U X3VuYw== c21vdXRo IHBpZ21lbnQ= UGFzc3dvcmRFbmNvZGVy IHbDqXI= IHdhc3Rld2F0ZXI= LVBhY2s= IGpvdmVu YWVz S1k= UGludGVyZXN0 IG11c2ljYQ== bGFjZXM= IFdpY2g= KHJvdA== KGly IOyCreygnA== 44Gd44KM X1RIRQ== Z2V0RmlsZQ== W3Byb3BlcnR5 IGVuZGluZ3M= aXp6YXJl PXRyYWlu LWxvdmluZw== IG5vdXZl IGNvbW1hcw== IGNhbWJp IFp1c2FtbWVu CUV4dA== KG9ic2VydmVy Zm9ybWlr IHF1aW5kaQ== IEl2b3J5 IEJvbGl2aWE= YXNhZA== X2xlZ2VuZA== Q2l0aWVz X0ZJUkU= YXNkZg== LkRlcHRo VmFsdWVHZW5lcmF0aW9uU3RyYXRlZ3k= dXBk LkdldFJlc3BvbnNl IHVyZ2VudGx5 SW52YXJpYW50 R2V0WA== IHN0YXR1cmU= IGltYWdpbmluZw== YXRlYXU= TU9WRUQ= KFRyYW5zYWN0aW9u X3Bvcg== UmVmUHRy Lmdsb2JhbERhdGE= Z3JhdmU= aW1lc3RlcHM= Zm91bmRsYW5k U2FsaXI= YXJ0aXN0cw== IGNyZWF0ZUFjdGlvbg== IFNhbnRv INC90LXRgg== CQkJICAgICAgICAgICAgICAg LXNvbmc= IG51aXNhbmNl IGltcG92ZXI= XykNCg== IGNyb3dkZnVuZGluZw== IHRpbXA= UGljdHVyZXM= IGxvZGdpbmc= 6ZKu YXRhc2V0cw== 44Ot44Kw cGVyc29ucw== Y29uZHVjdA== IGV2YWRl IGhhdW50aW5n ICEhfQ== IExBUkdF IGtpdHRlbg== IHVwaGlsbA== KG1pbnV0ZXM= IEVtYW51ZWw= J0M= IFNreXdhbGtlcg== cHVycG9zZQ== X21hcHBlcg== IGFkYXB0YXRpb25z LmZpbGxUZXh0 cnVr IHJlcGVydG9pcmU= KHByaW9yaXR5 KG1hcHBlZA== Um9iaW4= IGVycm9uZW91cw== IGluaGFs Qk9WRQ== KCIsIikK dWVsbGVtZW50 IGZpbmdlcnByaW50cw== IFBZVEhPTg== LWRlbQ== bGVhbm9y esSFZA== IlBlb3BsZQ== YXNpZXI= IHBhdHJpb3RpYw== LmZyZWV6ZQ== SUo= IEJhbmNv IGlzU3VjY2Vzcw== KHZlaGljbGU= KExheW91dA== IGNhcnZpbmc= X2NpcGhlcg== IHZlemVz KCdfJyw= IEZpcnN0bHk= IGZ1bGxlc3Q= IExpc3RlbmluZw== X3NpZ25hbHM= ZXdvbGY= IFNDUg== IE1lcnJ5 L3Rlc3RpZnk= X1NBTklUSVpF aW9jdGw= SUVFRQ== PU1hdGg= IGVucXU= CWF1eA== 4pml IGRpc3BlcnNlZA== aGFyZQ== YmVybg== IEFtZW5k IGluc2lkZXJz IEFsdmFyZXo= IFp1Zw== L2NhbGVuZGFy IGhldXJl LXBhcGVy IHNvZm9ydA== IHNtaXRo IHBvYg== KHJhdGU= IHNvY2nDqXTDqQ== IHdvZXM= IGJydXNoaW5n cWQ= b2xvZ3Vl c29ja2V0cw== X1lFUw== LmFkZENvbHVtbg== IGV2YXNpb24= U09GVFdBUkU= YWJveA== LnlsaW0= IGVuZ3VsZg== Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwo= IG5nT25EZXN0cm95 IG5vc3Nh LmxzdA== KCl9Pgo= Lmt3YXJncw== IGNvbnRleHRv IFBVQg== RnU= IGJpZ290cnk= IGJyaWQ= IHN0ZXJvaWQ= IHZpZ29yb3VzbHk= IGJ1cnN0aW5n IHZlbmU= IHNhbGFkcw== IFZBUklBQkxFUw== IE9uYw== IGZpcmVFdmVudA== c2FuZGJveA== IHRvdWNoc2NyZWVu c2Fucw== L0luc3RydWN0aW9u IGVvZg== bGVjdHVyZQ== Py0= LmxvY2FsaXphdGlvbg== VkVT X3ZvaWNl aXR1cmE= LnJlcG9ydGluZw== IF0pOw== Tm92YQ== X0NPTVBBVA== IG91dGJyZWFrcw== LmNsaWVudFdpZHRo aWZsb3dlcg== X0dSQQ== SW5pdGlhbGl6aW5n X3BlcmY= KCl9LA== PVA= X0lNRVRIT0Q= IHRpZ2h0ZW5pbmc= IHRhYkJhcg== IEJL CURvdWJsZQ== L2hhc2g= IG1leg== VG9VcHBlcg== VEc= KGluZGVudA== IHNpbGljYQ== IC8vLy8vLw== w7Zr IGVsdmVz ZW1wbGF0ZXM= LkNvbXBhcmVUbw== IGd1bmZpcmU= YW5pbWFscw== IGtlcGFkYQ== IENQUg== X0xTQg== CXZlcnRleA== INC/0LXRgNCy LCE= IGR1bHk= X1BBVENI RU5B CUND Y29tcG9zaXRpb24= X3N2 TGJs amVq 0YHRgtGA0L7QuQ== LkVkaXRWYWx1ZQ== 5YW3 YW50YXM= IGJyZWFkY3J1bWI= IFRlc3Rlcg== IE1lYXN1cmVtZW50cw== L0lucHV0 IFJheg== X1BPTEw= SW5kZXBlbmRlbnQ= Lmx1Y2VuZQ== IE1lY2hhbmljcw== Y29sb24= LnN1cmZhY2U= IHVuYXM= cmFkbw== UExJQ0FURQ== Q1JU LnNldERlZmF1bHQ= JUg= IHJlc3BvbnNhYmxl IHBlcnBlbmRpY3VsYXI= IFJlc3Bpcg== IFR1bmlzaWE= XEFycmF5 6Lev5b6E IHBhdw== IGRlYm91bmNl KE1QSQ== INiv2LE= IGVsaw== IFJlbGF5Q29tbWFuZA== L2xpZ2h0 LnNlcmlhbGl6YXRpb24= QlNJVEU= KSgoKCg= IEJpb3M= X3N2Zw== KHN1cmZhY2U= RHVwbGljYXRlcw== ICg+ X0FTVA== Lm5pY2s= IldoeQ== IEludGVsbGVjdHVhbA== YWJicmV2aWF0aW9u ZWFyYWJsZQ== IGNvbnNlZ3Vpcg== KEJl X1BvZHM= PEFuaW1hdG9y X1VOREVGSU5FRA== QVJSWQ== IC8vfg== cGVyYXRvcg== LndyaXRlRmlsZVN5bmM= QWxz bGRlcg== IG1pZWpz IGZ1bmNz aW5jaWJsZQ== IGR1c3R5 IERyaWxs IGNvbnRpbnVhbA== IEVsZWN0cm9u LmVuZW15 KHBi IHJldW5pdGVk U21va2U= LWZhY2Vk SW50ZW5zaXR5 IFRyZWVNYXA= IEFyZ3VtZW50RXJyb3I= LndyaXRlSGVhZA== IFRSRQ== U3BsaXRPcHRpb25z LyoqKioqKi8K IFw8Xg== IEludmVzdG1lbnRz U1VNRVI= IGRhYw== QU5J Llllc05v KG9mU2l6ZQ== eXRo ZWxvYWQ= IGltcHJlcw== IGJsb2Jz LnJldHJpZXZl IHR5cmFubnk= IGNhbmNlbEJ1dHRvblRpdGxl IGhhY2k= IENhc2lub3M= IGRoZQ== UmV0YWls IFBvcm5odWI= IENyaW1lcw== T2ls KElTZXJ2aWNl UmVzaXphYmxl CVNv T2Z0ZW4= IGNvbW1vbnBsYWNl X0dD YWxkaQ== YXRobG9u KFZpZXdHcm91cA== KEVtcGxveWVl IHNhZmVndWFyZHM= 6YCA5Ye6 X0FVUkE= IHVubm90aWNlZA== IFRob3Ju bW9kZWxl IGFjb3Jkbw== IFdlbmdlcg== aW11cw== ZW5zYnVyZw== b21iYQ== Y2nDs24= Imh0dHA= X01hdHJpeA== fHx8fA== b3JuZWNlZG9y CUJ1ZmZlcmVkUmVhZGVy cmVnaXN0ZXJz cmVsZWFzZWQ= IGFkZE9ic2VydmVy IFZhbGVudA== KEN1bHR1cmVJbmZv IG1hbm5lbg== IGJ1cmdsYXJ5 X21pbnV0ZQ== IGludGVyY2VwdG9y b2NyYXRlcw== YXR0cm8= IFlF ZXNzbGVy bGlzdGVuZXJz L3Byb20= IOek dG91Y2hlcw== RXNw IEFib3J0 IGZmaQ== IGNsdW1z TklM X1ZJUlRVQUw= IGxvaW4= eW5vbWlhbHM= INec IGd6 IE5lb24= SVNJUw== YW1lcmF0ZQ== X2F2YWls IG1heGk= IGlzQXJyYXk= Q29sdW1uSW5mbw== aXppbg== IHBlcnNv IG91ZA== aWFsaXplZA== eW1p IGNvbmZpZGVudGx5 PSIvIj4K LmRhdGFzb3VyY2U= IHBheWNoZWNr IEJhdg== L0JyYW5jaA== IFRlYXI= IG1lcnVwYWthbg== IEJyYWg= INC60L7QvdGC 74I= LHBhdGg= IGRhenpsaW5n IFVDSEFS IHByb3Zpc2lvbmFs 0L/Qvw== IGxlZ2FsaXplZA== X2FsZ28= X1JTQQ== YWx0ZXJuYXRpdmU= IERFVEFJTFM= VG9Ebw== cmVmbGVjdGlvbg== X1dFRUs= IENMRUFO IHNsb2dhbnM= IOuTsQ== IFZldGVyaW5hcnk= aWRm LmRhdGVUaW1lUGlja2Vy aWNvbnRyb2w= KHBsYXk= IHVsbGFt ICcpDQo= IGNoZXF1ZQ== 5a6L5L2T IHVuc2VyZW0= IEFyY2hpdGVjdHM= YW1lbnRhbHM= IHZtYXg= IGplbWFuZA== Q0VFRA== IE9saXZpZXI= c2V2ZXJpdHk= Uks= RGlzY29ubmVjdGVk IHdlYXBvbnJ5 dWnDp8Ojbw== IGJpbmdv ZG9udA== X0NIQU5ORUxT IERhZw== IGTDpHI= w6lyaXF1ZQ== Z3JhZGFibGU= IENPTVBMRVRF IHNwYW5pc2g= IGluc3RydW1lbnRhdGlvbg== dmFzaXZl RFJBVw== IGZwdXRz IFNwZW5k IFJlc3BlY3Q= Q291cnRlc3k= IHNjaG8= IHBvc3RhZ2U= IE1lYWRvd3M= IHR1dG9yaW5n ZXJ2bw== QWJzb2x1dGVseQ== w6FuZGV6 vZTrk5w= IFNIUg== cGhvb24= IERlcG9z PScnCg== IHBoeXNpb2xvZ3k= KnRpbWU= IFRvdWdo ZG9jaw== L2hl KEhhdmU= IE1vaW5lcw== U1RZUEU= IEJyaWRl IHN0cm9u IHdvcmxkdmlldw== IGdyYXR1aXRv IGFlcm9zcGFjZQ== IElocmVt IHFj IG1hbmlmZXN0YXRpb25z c2xhdWdodA== PEFjY291bnQ= IEluZm9z YW1iaWw= X0ZpbmFs IGFkbWluaXN0cmF0aW9ucw== IGNvbGxhYm9yYXRlZA== LmpkZXNrdG9w b2x1Y2nDs24= YXNjdGltZQ== X2FsbG9jYXRl YXJyaXZhbA== Sk9S IHNoYWR5 IHBpbmVhcHBsZQ== 44KP IHNhdGlu YnJlcm8= IExpZXM= IHRlbnNvcnM= IEludGVsbGlnZW50 LlNlbGVjdGVkSW5kZXhDaGFuZ2Vk IHJhZGlhdG9y YXNzaXN0YW50 JGZpZWxkcw== CXN0ZXA= IE1pdGdsaQ== IEV2ZXJldHQ= IFNjaGVkdWxlZA== SG9yYQ== Il0tPg== IG1vdHM= IERTVA== Zm9udE5hbWU= IFdhcndpY2s= X1Rhc2s= KkM= 44On b2JlbA== X0RFVA== IHNvY2lvbG9neQ== IEthdHo= aWNpb25z b3RsYW5k YWRvbw== X3BhcnM= IHJpcHBpbmc= aWNobw== IG51dHJpdGlvdXM= CWRhbWFnZQ== S3k= IGFuY2hvcmVk IGFydGlmaWNpYWxseQ== IEp1dmVudHVz L3Blcmw= IGV4cHJlc3NpdmU= eEVF IEVudW1lcmF0aW9u Lk1FU1NBR0U= KGRlZw== 5b+X IyMjIyMj ICIiKSw= a2zDpHI= XE1haWw= RGVzaWduZWQ= IHN0YWZmZXI= IHNhbHRz KioqKioNCg== IOKB IHNldFRpdGxlQ29sb3I= RFZE LldyaXRlQWxs ZWxsYW50 IGNvZXJjaW9u IFNvcnRpbmc= 6KiA IHN0YXJ2YXRpb24= Ly97ew== LmhlYXA= IE1lZGlldmFs ICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t 77yR77yQ IHdhcmRz IEhlcmM= IEhvZ3dhcnRz LWNvbW1lbnRz IExhdWRlcmRhbGU= 5rw= IHJpZnQ= IHplaXQ= IHByb29mcw== LnZpZXdwb3J0 JHN0YXJ0 IEJvdWdodA== LnJpY2hUZXh0Qm94 IGNsaW5n ICcqKg== T3duZXJzaGlw IEJvZWhuZXI= KGR5bmFtaWM= IG1lZGljYWxseQ== IFdURg== IE1haW5NZW51 6LSt IGRpZmVyZW50ZQ== L3Jlc3VsdHM= ZW50aGFs IFdpZGdldHM= cnVzaA== IFJNUw== IFZvbGxleQ== IHJlbW92ZUZyb21TdXBlcnZpZXc= IExhZmF5ZXR0ZQ== IEZldGNoVHlwZQ== YWNhcw== IHBhdGhvZ2Vucw== IE1NTw== LkN1cnJlbmN5 b2Npb3Vz IHNwcml0ZUJhdGNo ZG9sbA== IHZhbXBpcmVz bGF1bmNoZXI= IHBlYWtlZA== IGRlYnVuaw== IEFTRA== IHVuZXF1YWw= IHNxdWFkcw== fS4kew== bWFuaQ== IkU= IEZhaHI= IElTSQ== IHVuYXZvaWQ= b3Bob25l WzpdCg== IERpcmVjdGVk IGJ1c2hlcw== LmZhaWx1cmU= IGltbWVyc2Vk ZXhv SGlzdG9ncmFt IEthbm4= IHBpcmFjeQ== IENydW5jaA== IGzDpg== Ly8i IG1vbm90 IFNhdW5kZXJz IFNldmVudA== KEFic3RyYWN0 IHNtb2tlcg== cm9uZQ== LmNsaWVudFk= ICItIiw= IEZvdW50YWlu IGlubmU= 7IOJ Q3Ry JGlucHV0 UFJPRklMRQ== IERvbmF0aW9u V2l0aEVtYWls IGZyYWN0dXJlcw== S2VlcGVy IG1laXNqZXM= IGFyY2hpdGVjdHVyZXM= IEx1bmc= J2ltYWdl aGFybWE= IGFiYW5kb25pbmc= QUxMRUQ= c3VidHlwZQ== cmVpcmE= IG1vc3M= IFBhcnNvbnM= YWtlZG93bg== PW9iag== IHN1Y2Vzcw== IHdlYXJhYmxl 44Kn IGFkdWx0aQ== LnVt IHZpYnJhdGlvbnM= IHN3ZWxs IERpc2Nsb3N1cmU= IFJERA== cGFpcnM= YW5nZ2Fu IG1haW5CdW5kbGU= IERJTg== IHJvY2tlZA== c2hvdWxkQmU= Lmdi IElNRA== IFdO LGFyZw== 4oCm4oCm4oCm4oCm4oCm4oCm4oCm4oCm W109JA== LlNN IGFsZ3Vucw== YWRkb25z X0NvbW1vbg== X1JFRlJFU0g= INmB2Yo= IFRZUE8= IEVjb2xvZ3k= IGdsdQ== LkRhdGFUeXBl IFByb2Jl THV4 b3dlZ28= IHJlaw== IFBsYWludGlmZg== YWNoYWJsZQ== Lm5hbWE= Km91dA== fX17ew== IENBUElUQUw= 5L2G SW1wb3J0ZXI= LmNyZWF0ZVNlcnZlcg== X3Jlc29sdmU= X0VQUw== c3RlbGxhcg== X1Byb2ZpbGU= CXN3 LW1vbg== dWRldg== XFBsdWdpbg== X01JWA== IERpc2NyaW0= LmZyb21MVFJC IFN0cmFuZA== QW55dGhpbmc= cG93ZXJz XV0NCg== LlRJTQ== IGFkZHNsYXNoZXM= IGVzaQ== QEJlZm9yZQ== IHNhaw== ICcvJzsK Y29j xZ/EsQ== ICkpOw0K X2Fib3Zl IEVDQw== L2NwdQ== IGNhZGU= LlN0ZGVycg== IHBlbGxldHM= IFBhbGlu IGfDqW4= X2phdmE= IHNhbGFo IGJlcmdlbg== X1NXQVA= IGdpYg== acOjbw== X2Rpc3RhbmNlcw== IENpbmRlcg== IGFuYXJjaGlzdA== aW1hdA== CW1vY2s= 44GX44G+44GZ T21lZ2E= IGJhaHdh X1BhcnNl LnBhcGVy CUludGVudA== cmVucw== L2dyaWQ= IGZpbHRoeQ== LmV2 IyMjIyMK IHNhcmU= IHNvYWtpbmc= IFJlZ2lvbnM= X1VTRUQ= IFNpaw== aWZpa2FzaQ== CUVkaXRvcg== THVjaw== IOyXsA== xINt LiI7 IFppZWw= IGdyYXlzY2FsZQ== KEZ1bmM= 44OB LkRlbnNl LWxlYW5pbmc= IGdyYWNlZnVs R3JhcGhOb2Rl X0NPTU1JVA== IENWUw== IHBsYWlucw== IHJlag== cGNpb25lcw== IHVuZGVybWluaW5n X2NhdHM= ZmVi Q29sbGVjdGlvblZpZXc= U0VNQg== IHRodQ== dGV4dGJveA== KEFuZHJvaWQ= IHJpZ29y IFlpZWxk LmlzUGxheWluZw== OnZpZXc= cmVtYWluZGVy IFBpcA== KWluZGV4 IEJlY2tlcg== dG9Mb2NhbGU= YXV0b3JlbGVhc2U= IFJvbWVybw== LkhhbmRsZWQ= IENhYmluZXRz KVY= IHJ0ZQ== IEh1bHU= aWNpZWw= L2FuaW1hdGlvbnM= IHByZXN1bWU= LnRyYW5zcGFyZW50 IHN1Ym1lbnU= cW0= aWVydGVu IHRleHRTaXpl IHN0YXJ2aW5n L2pvYg== QXBhY2hl IHlpZWxkaW5n LWFydGljbGU= Jz0+JF8= IOih PFNwcml0ZVJlbmRlcmVy IFNoaWE= KToo IHB1Ymxp emllag== IHRlbGVzYw== IHRlaWw= TGVnYWN5 IFBsYWNlbWVudA== KCkpew== IHRyb3VibGVzb21l 5pif IHBlcnPDtm4= X0FzcE5ldA== PX0= KHVzZXJJRA== U3Vz 44K6 LWF2ZXJhZ2U= IFFJbWFnZQ== LlN0cmljdA== dGVib3Jn LWZ1bmN0aW9ucw== UkVHSU9O Pk5ldw== X2Nob29zZQ== KGNp IHVubGVhc2g= IFJJR0hUUw== IFNwZWFy CW1ha2U= IHR5cw== YW5lbGE= IFdY X01BS0U= L3NldHVw IG9uU2F2ZQ== IGNsaW5pY2lhbnM= CWJhY2s= LkxpbmtlZA== IGNvbnNlcnZl IGJpdHRlbg== X3ZhcmlhbmNl IGxpcmU= IGluZXJ0aWE= dWZmbGVz X01QSQ== aWRkbGVz W2Fycg== LnZvY2Fi IHNoaXR0eQ== IG5lc3Rl c3NpemU= IEtU Ymxlcg== X2xpbnV4 IG1vbmdvZGI= IElURU1T S29u IEJ1cnN0 X3Bob3Rvcw== Q29sb3JhZG8= IGFja25vd2xlZGdtZW50 IG9pbHk= IG5mcw== IFppb25pc3Q= IGFkZGljdHM= IGFkZFVzZXI= IE1pc2g= IGtX IFdhbnRz KHJlY29yZHM= b2N1cnJlbmN5 SlNHbG9iYWw= LmVsYXBzZWQ= IE5i IHBwdA== XERlcGVuZGVuY3k= Um9s IMOnYWzEscWf IGV4cGFuc2lvbnM= YnViYmxl IG1pZHRlcm0= ICcjew== Y3R4dA== SVN5bnRheEV4Y2VwdGlvbg== IFZhbGxl IENhZGlsbGFj ICIifSwK IHNlbXVh cmljaFRleHQ= c29mdG1heA== b2JqUEhQRXhjZWw= LmhzdGFjaw== X2NyaXRpY2Fs KDw/ ZGo= IGNvbnNvbg== IHJvb21JZA== RE9NQ29udGVudExvYWRlZA== cGFybXM= IHplaWd0 VFBM LW5vdGNo IG9wcHJlc3NpdmU= Q29kaW5n IExlYXZlcw== KERpc3BsYXk= LnNpZ25Jbg== Ly8tLQ== IE9wcg== Y3Rh IG1ldGF2 U2VyaWFsaXplZA== IHVuYWZmZWN0ZWQ= IEFUTA== IEtQ QXRsYW50aWM= LHVybA== LHN0YXRl IGJpc3Q= ZW5lZw== IHNpbXBsaXN0aWM= IGJpZGRlcg== IHBlcmNlcHQ= IGNlbGli IFRIUk9X KC9b VGNw IGZ1cnRoZXJtb3Jl LkFjYw== b3BwYWJsZQ== 5Lik IFRhcnQ= IEJlbno= IGVtYm9kaWVk KENvbnN0 ICst UGFydGljaXBhbnRz IGh0dHBSZXF1ZXN0 YWNjZW50 IFPDvA== IGhvcnJpZnlpbmc= IC8+LA== IGVuYWN0bWVudA== IFVOSU9O L2xvZ3M= IHNjcmVlbkhlaWdodA== IGV0d2E= 5L6L5aaC IGHDum4= 5bem X3RpbWVsaW5l ICIiKSkK JzonJw== Qlc= IHJlbm92YXRpb25z IDwK UGFsZQ== Pjo8Lw== U2tlbGV0b24= IGdldFVzZXJz X2RhdGFmcmFtZQ== YWJy bWF0ZXJpYWxz JmVhY3V0ZQ== LkRpc3BsYXlOYW1l IGh2aXM= X2xhbmd1YWdlcw== LnN5 dG93ZXI= SUZJQ0FUSU9OUw== IGJhcnJpYw== IFBsdXRv YDs= 44OL Y2VudGU= I2Fi IGxleGljYWw= IEJSTw== IHJ1bGluZ3M= SEVZ LmlPUw== cmV0dXJuZWQ= LmJvb2tz IEh1YmI= ZW9m Pj46Og== IOyG IGdvVG8= 6ICD 44Go44GG PEZvcm0= Y29waWVz LnF1YW50 IFBvdGF0bw== IENvdXNpbnM= IHPDuw== R292ZXJu IGdhbGVy IEZJUg== X1dpZHRo IFNoZWxkb24= LkRldg== IFJlc3BvbnNpYmlsaXR5 c29uaWFu IHN1cGVyY2xhc3M= Yml0c2V0 ZWRkYXI= IExhYm9yYXRvcmllcw== IGNvaW5lZA== IFRlY2huaXF1ZQ== KENvcmU= IHNwcmF5ZWQ= IHBvbmc= KE5ldHdvcms= IHJvYXI= IEVBU1Q= c3RyYWlu IG1lbnN0cnVhbA== b21iYXQ= IGNhbG1pbmc= CURpbQ== X21vdmllcw== IFJBSUQ= LWRpc21pc3NpYmxl IGZyZXVuZA== LWNoYW4= IHJlc2lzdG9y X0NvcHk= b2NyaW5l IGVzcGlvbmFnZQ== Z2Fkbw== TkRBUg== IHBvcmNlbGFpbg== dGhhbG0= IGBb IGdyYWRv 0LjRgA== RE9VQkxF IGFjY2Vzc2Vz LkZsb29y IOKGlA== IHRva2VuaXpl YW5hbHl0aWNz LkNyZWF0ZUluc3RhbmNl IHN1Y2hl CWVudA== aWduZXI= INC/0LXRgNC10LQ= IGNvbmRpY2lvbmVz LmxpYnM= Iic7 UERPRXhjZXB0aW9u IG9uRGF0YQ== IEF1dGlzbQ== LWhlbHBlcg== IHJld2luZA== IGNvZmZpbg== 44O844K4 IHRyYW5zbWl0dGluZw== LnNldEFsaWdubWVudA== IGRlYWxsb2M= IGFuY2VzdHJhbA== b2dpZQ== LkNPTVA= OmZyYW1l bW1v Jzoi IFJlZ2VudHM= IGNoZWF0ZWQ= Lmdn IHBhY2Vk IGVzdGFk b2NlbmU= bHNh KGZj L2dyb3Vwcw== L21pc2M= IFNodXR0bGU= VVBJ w6Fv LWN5Y2xl CXByb3Bz IHJvdHRlbg== UmVqZWN0ZWQ= I2Fj LnVh IEFtbmVzdHk= IHBlbm5lZA== SU5DUkVNRU5U PGRpbQ== LnNldFVw IFR3ZWV0cw== IE1hZHVybw== INmC IENBY3RpdmU= CUJZVEU= KHNlcGFyYXRvcg== LlJlc2l6ZQ== dWZmbWFu c3VwcG9ydHM= IHVyYg== IEZvdW5kZWQ= X2hhcmQ= IGVjbGVjdGlj LkZpbHRlcnM= IFJvdW5kZWRSZWN0YW5nbGU= X3NhbXBsaW5n IEpldHp0 YW1lcmljYW4= Lmludm9rZUxhdGVy IEJ1dHRlcmZseQ== KGNvbm5lY3Rpb25TdHJpbmc= IE5hb21p IEphaW1l cnRz IG1hZ2ljYWxseQ== Lm1hY2hpbmU= IEFwcGFsYWNo Iisi dmFsZQ== LW1vdW50ZWQ= IGFjaGU= TUo= IFVJSW1hZ2VQaWNrZXJDb250cm9sbGVy LUp1bg== TWFuYQ== a3JhaW5l RENG L1Byb2R1Y3Q= IFJFU0VSVkVE IEZIQQ== OkAiJUAiLA== IFByb2pla3Q= IE5pcg== IENhcm5pdmFs ICom IFFT V0hP IHdlbHQ= IG1hcnJ5aW5n QWxleGFuZGVy IFJldmlld2Vk YWN0ZXJpYQ== IHdhbg== KHJvYm90 IFdpbmRvd01hbmFnZXI= IG1vbnVtZW50YWw= IERvbWluZw== L3dlYXRoZXI= X3NlY29uZGFyeQ== T3BlcmF0b3Jz X1NJREU= S2F0 LXpvbmU= IHNpZ25pZmllcw== IEh0dHBNZXRob2Q= L2NvbnRleHQ= Ig0KDQoNCg== IFJvZHJpZ28= IGJ1Yg== L211c2lj IHNlcm9udA== IG1STkE= X2VtYWlscw== ICc+Jw== IEdlbWU= INGA0LDRgQ== IH5+ IGR1Y2tz IEZyZXVuZA== RXhwZXJpbWVudA== IHJlb3BlbmVk IFwiew== IGVsbGlwdA== IGNvbmNhdGVuYXRl IHBvbG8= VGltZVpvbmU= ICAKICAgIAo= IGNhcHRpb25z cmlja3M= LmZyZXE= Lm1lbW8= IHNtYg== RHJ1Zw== XVsv X0JBQ0tFTkQ= IEVsbGE= IFBvcnRpb25z IGZldGNoRGF0YQ== IGNvcm91dGluZQ== IGVzdGF2YQ== IEdlbml1cw== OmB+ IFN3YW5zZWE= KHBheW1lbnQ= Vm90cmU= IFBydWl0dA== Lm9mZnNldFdpZHRo YXJ5bA== IHVuaWZvcm1seQ== IFdhcnA= IFNFQQ== IGRlZHVjdGlibGU= IGJ1bGxpZWQ= IEJlc2No IFByb3NwZWN0 T1NQ IlllYWg= IEFuZ3J5 LlZhbA== IGdpZ3M= IGJ1bGt5 ZXRlcmlh LmdldFN0YXJ0 IE1FVEg= IGNvaGVyZW5jZQ== IG1lZGlhdGVk 0LXQs9C40YHRgg== Li4uLgo= IHN0cm9rZUxpbmU= bWo= IFVuc3VyZQ== YXRocm9vbQ== KEJpbmFyeQ== X0tleVByZXNz 5p6E aW5oZXJpdHM= IHJlcHJlaA== CVNjaGVtYQ== IHVucmVzdHJpY3RlZA== LmRlZmluaXRpb24= XT8u IGl0aA== 5aCx IHNsaW1l bXNncw== X0pT CVZlcnNpb24= X1NFQ1VSRQ== IGNvc3Rv LlJlc3Ry Y3Ny X1RPT0xUSVA= cGNs IOKGkw== U2VsZlBlcm1pc3Npb24= LnJhdmVs IG1lbWJyZXM= QXNzZW1ibGVy cm9taXVt c3VyZg== IFVQREFURUQ= KGJyYW5jaA== KGluY2x1ZGU= IElkb2w= XE9iamVjdA== IGNsb25pbmc= IGlzTmFO IGFueg== xrDhu51uZw== IG9uYw== X0NMVVNURVI= IHt9KSwK aW1pbmFyeQ== CWNvbnRlbnRQYW5l dHJhaWw= IG5pbmV0eQ== IE5pYWdhcmE= IEFuZHI= w6lzeg== IGRpZmlj dXRyYQ== J319Pg== 44Kk44OI c3Bhcg== ICJcIiw= IG15ZmlsZQ== ZmZj IG5vdGljZWFibHk= ZXlh IFB1dHRpbmc= SlY= LmRpbWVuc2lvbnM= ZXJjYQ== Z2VuZXNpcw== ZWZmZWN0aXZl IHBlcmRlcg== Lk9S X0NPTVBBUkU= Omxlbg== L3JlZA== IEFyaXN0b3RsZQ== IHF1ZXJpZWQ= IGZvcmVzZWVhYmxl IFVJQ29udHJvbA== cmVtaW5kZXI= IGNlbmE= IGhpYw== ICIiOw0KDQo= L2Jhc2lj IGFmZm9yZGFiaWxpdHk= LGVycg== INGB0LjQvNCy IElTUg== bGljZW5zZXM= Vk9JQ0U= Lkxhbmc= LnJlbGF0aW9uc2hpcA== IGxlbmRz IG51dHplbg== IGVzcGVjw61m aWVuZGE= PFBhaXI= VHY= X1JFVFJZ IGhvbm9yaW5n X2RlY2xhcmF0aW9u KE5P IEhpY2s= IG1pbmxlbmd0aA== IEdlc2NoaWNodGU= YXBlc2g= QVRPTQ== JykiKTsK ZW50ZXJwcmlzZQ== Pn08Lw== IHBvbGl0aXF1ZQ== ZWRpdGlvbg== X0RlYnVn QW5uZQ== LlNjb3Bl Y3Rw Y2Fub25pY2Fs Pj47Cg== TWVudXM= IGZpZXJjZWx5 Lk9uY2U= IEJvcnJvdw== IHNvc3Q= IHNlcnZpbmdz LWZsYWc= IHZlc3RlZA== IGZyb24= 7ZWo IGZhbWluZQ== Il0pKXsK ZXJlw6dv IGtpamtlbg== IEZsb29yaW5n 55CD b2JzZXJ2YXRpb24= IHVzZXJEYW8= PSIiPg0K Q09WSUQ= YmFieQ== IHRyb3VnaA== IFNlYW0= IEZpZ2h0ZXJz b21pdA== IENoYXJnZXM= UnVzcw== IHF1ZWxxdWU= R2V0UG9zaXRpb24= IE1pbmlzdGVycw== X3JlY2VpcHQ= IHJvb3ROb2Rl bXVsdGlw JHNlYXJjaA== IikpKSkK dGFrZXM= ICghIQ== IEJBVA== Y2hhbmc= xJM= Lm9j IHNraWxsZXQ= IFNLVQ== IEdhbGxhZ2hlcg== IGNyZXNj d2Vla2RheQ== ZXJ2aXNlZA== Q2FyZENvbnRlbnQ= LmFjY2Vs ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK VGFp IENvbXBhdGliaWxpdHk= eENG X3Jld2FyZHM= cmRm QVBQTEU= LWZlZA== IGRlcGVuZGVk LWdlbmVyYXRvcg== KFByb2Nlc3M= 0LzQvtC2 IGRpc2NyZXBhbmN5 IHBob3NwaGF0ZQ== TmV0d29ya2luZw== 6K6+6K6h5Zmo KHJv IGNvbmN1cnJlbmN5 CWF1dGg= UGx1Zw== QVRBTE9H c3Viag== L3RlYW0= KGF2Zw== b2tpbg== IHBsZWRnZXM= IGNvbGxhYm9yYXRvcnM= IGVtYmFya2Vk IERvY2g= IERhaXJ5 Y29tcGV0aXRpb24= IE11dGFibGVMaXN0 LXNldmVu IGNvbmN1cnJlbnRseQ== IFZpag== IHJlc2V0dGluZw== ZHBp IHNsaXQ= IFBPSU5URVI= IENBUlQ= LmRleA== Y3Vsb3M= X3BlcnNvbmFs IGFuYWx5dGlj I2NyZWF0ZQ== X21lbWNweQ== KExpc3ROb2Rl X1RhZw== IElycg== Ij4nOw0K U2hvcnRseQ== LnRpcA== XFs= IFJlcHJlc2VudGF0aW9u X0xJVEVSQUw= LmNibw== IEthcm5hdGFrYQ== IENvbXBldGl0aXZl IFJ1ZQ== IHJ1bm9mZg== IFNwZWxscw== ZmNsb3Nl Y2lz RnJh IHJlbW9yc2U= IENvbG9nbmU= IHJhbmdlcg== IE1vcmc= ZmlnaHRlcnM= LlJlcXVlc3RQYXJhbQ== Q29ycw== IGRlbm90ZQ== IGNob3Nlcw== w6JuZA== LnJlY3ljbGU= IExvZ2lzdGlj IERFQUQ= LWxvYWRlZA== IENsZWFycw== IGtlbGw= cmFwaGlj IE1hbmU= RU1CRVI= IG1hc2tpbmc= CWVkaXRvcg== SGFsbG8= Omxpc3Q= IGV0aG4= LXNlYXQ= ICopWw== IEdseQ== IEFDUw== CXN0YXQ= L0NvbW1vbg== IGRpc2d1aXNlZA== RmluYW5jZQ== IEVsZXBoYW50 dGVtcG9yYXJ5 IENhcmx5 IGNvY29z IEp1ZGl0aA== IHdyYXBwZXJz IEx1bmFy IHLDqWN1cA== LXNldHVw IHNpemFibGU= ICAJIA== Y2xhc3NpZmllcg== IGZpZ3NpemU= IG1hc3R1cg== IOabtOaWsA== IFJ3YW5kYQ== KXQ= IEN1cHM= QXp1cmU= KCl9LAo= U1BBUkVOVA== KGRpYw== IFRleHRGb3JtRmllbGQ= IGRlZm9ybQ== IGRpcmVjY2nDs24= IHlheg== IGdsdWVk IGF0cmF2w6lz Y29mZmVl IFVwZGF0aW5n IENvbGxlZ2Vz w6RsbHQ= YW5kZWxpZXI= IHNhbGly IFNDQUxF cWU= 6rO1 KHJlY2VpdmVy bWRi Im1hdGg= aXNuYW4= dGVsZWZvbmU= UkVQT1JU LmFkZE1vdXNlTGlzdGVuZXI= ZHVlZA== e31d KCkpOg== IHdvcmtpbmdz fSk7CgoKCg== IGNvbXBvbmVudFdpbGxNb3VudA== U2VydmVycw== X0NMT1NFRA== SVpFUg== IGJvb2I= IENPTkNBVA== IEhhcHBpbmVzcw== IGNvbW11bmU= eEFC b3duZXJzaGlw X05FQVI= X0hBUkQ= IFlB bGlvbg== IHNwaWVs IHRhZ2dpbmc= IGltbW9yYWw= LWdyb3VuZA== IHRodW5r IGxvY3Vz IExhdHZpYQ== aXppb25p Y2xhcnNpbXA= IHBhdGllbnRseQ== XEhhcw== IHN1Ym9yZGluYXRl IFdISUNI ZW50aW9uUG9saWN5 IGRlcGxldGVk RlNJWkU= IFss IEJpb2dyYXBoeQ== IFNhbmRz U0hBUkU= Q2hhcnNldA== LndyaXQ= X1NVUw== IE1vcmVubw== IGJyb2Njb2xp IFZY YW1pY3M= LkdldFVzZXI= IENvbW1vZA== LnNjaGVtZQ== KHZz IGFuYWxvZ291cw== UHN5 PWxpbmU= LnB1Ymxpc2hlcg== IG9ud2FyZA== 0LXQutGB IERlYWxlcnM= IHRvQXJyYXk= IENob2ljZXM= 0JTQvtCx0LDQsg== IGRlZmF1bHRNZXNzYWdl IGFncmVn IENvbmNhdA== SFY= IENpcmN1bGFyUHJvZ3Jlc3M= X3N2Yw== VEFC X2ZpbA== Lk1hcFBhdGg= emJ1cmc= IGdldFByb2R1Y3Q= IFZFUklGWQ== Lk1vbmdv IHB1bmRpdHM= cHVsc2U= bGljdGluZw== Z2lhdGFu IC4uLiI= IGZpeg== IGFudGlt IENoYXR0 X1RZUEVERUY= R3V5 CXRlc3Rz IFNsb3Zlbmlh IENvbW1hbmRMaW5l IGJlbmVmaWNpYXRpb24= IGJpbmRBY3Rpb25DcmVhdG9ycw== TlRBWA== LUNz IGNoYXJpc21hdGlj LmFsbG9j X25m IGFzc2F1bHRpbmc= INGC0LDQsdC70LjRhg== IGPDoWM= IFNjcm9sbHM= SEFT eXl5eU1NZGQ= IEdhbGU= IFByb3plbnQ= IFRob3JudG9u ZGVhbGVy IGV2aWN0aW9u IGFuYWxl 4oCO PSIo IGVhZw== KCcnKTsKCg== IGNvbnRlbXBsYXRpbmc= aHlw YmVsdW0= IEZpdHM= IEV4YW1pbmVy IEJ1Y2M= IG1lbWJyYW5lcw== IGJyaWxsaWFudGx5 IENlcmFtaWM= w6h2ZQ== IFBvdW5k IHRyZWFzdXJ5 LicpOw0K CXRj ZWNha2U= Q3VycmVudFVzZXI= LmhhYmJv IHRyZWFzb24= IEZUQw== TVVY IG51bWJlcmluZw== UklB LS0pDQo= IGJlaWdl IEFydGVt YmFzZXM= X0JBTkQ= IFBhdmVs 0YHRgtGA0YPQug== dGhlZA== X25icg== INCx0LDQtw== c2xpZGVVcA== IFRheGk= IGFxdWVs IE1pc2NlbGxhbmVvdXM= ZWx1 IGluc3VsYXRlZA== IGFzc2V6 LkNvbmZpZ3VyZQ== IHF1ZWxsYQ== IHBhcmFzaXRlcw== QXdheQ== ZHVjaWJsZQ== KCc9Jw== IHZlcm8= IFdhdGtpbnM= IFNlcGFyYXRvcg== YXBzZXM= ZW52aXJvbm1lbnRz IGFwcHJhaXNhbA== cGF1c2Vk X2RlYXRo IHNpdHVhY2nDs24= IGZyYXRlcm5pdHk= IGluc2lzdGVuY2U= X2NyeXB0bw== QXR0cmliUG9pbnRlcg== Il1dLAo= IG94aWRhdGl2ZQ== IG5ldXJvbmFs IFFHcmFwaGljcw== Ij4nLA== IFNtaWxl T2JqZWN0aXZl IFNha3VyYQ== Wk8= YW1pZW50b3M= LkxvY2FsRGF0ZVRpbWU= L3VuaXQ= LWZyZXF1ZW5jeQ== LUNT In07Cgo= IHJlbGV2 QWxsb2NhdGlvbg== JU0= IER1c3Rpbg== IHN3aXBlcg== IE5hcmM= dGF0dXM= IGxvbmdpbmc= IHRodWlzb250dmFuZ3N0 IGNvbW1vZG8= IEFEQQ== aW11 X2ZvcnVt YW5naQ== CUFwcGxpY2F0aW9u W2Zyb20= IEJldGhlc2Rh b3Ryb3BpYw== IE1VQ0g= IHByZWRpYw== ZmlsbWU= KGdyYW1tYXI= KEFQUA== IEN1cmw= IHNob3J0aGFuZA== YWZmaWxpYXRl XSoq X250aA== aWFiaWxpdHk= Ym9tYg== WVQ= KCItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ== IEJpY3ljbGU= aW1hdGluZw== Lm5paQ== IEthcmE= YXNrYW4= cmVhY3RzdHJhcA== IHdsYW4= b2dyYXBoZXJz CSANCg== cGFnaW5hdG9y aWhhbm5h IG1hdGNodXBz X1BBRERJTkc= X3JlZ2lzdGVycw== eXRl IHByaWNleQ== IGZvb3Ro IEh1Y2s= UEFSVE1FTlQ= IHByb2hpYml0aW5n LmlzRGVidWdFbmFibGVk 4KS4 bGVpbg== PXJlcw== LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg== ZGRs bXBy IOqwmQ== IFdBTEw= IHJldm9sdmVz IFBFUkY= KTt9 IFRvYnk= Ly4uLw== IGthbw== IGZvcmVjYXN0aW5n X0NvbnRlbnQ= IH0pKSwK cG9ybm8= bGVhZGVycw== LWhvb2tz aXN0cmlidXRvcg== L3N0b3J5 CWxpbmVz LXJlcGx5 IGFkcmVuYWxpbmU= Rmxvd0xheW91dA== LnJvdXRpbmc= CXRpbWVvdXQ= IHJhaWRlZA== CURE IGRpc2RhaW4= Y29uc2lzdGVudA== Z2Vpc3Q= KCI6Lw== KHN0YXRlcw== IEhJVA== LVJheQ== LWhlYWx0aA== IC8vLQ== dGVtZW50 Lm5hdmlnYXRlVG8= IGJlbmNoZXM= ZXdpbmc= ZW56aGVu LXNwbGl0 UmVqZWN0 IHB5bGFi IGZsYXNobGlnaHQ= IGluaXRpYXRpbmc= IE9FQ0Q= IGVudHJlZ2E= TmF0dXJl Lm9yYW5nZQ== IMO6bHRpbW9z IGVjcw== LmhvdmVy IGRlbHV4ZQ== Um9nZXI= IFRpYw== IixfXw== IHBsYWNlaG9sZGVycw== IHNwYXduaW5n IG51cnR1cmU= IGV4Y2hhbmdpbmc= Q3JlYXRlRGF0ZQ== IGxhbWlu IFNlbWljb25kdWN0b3I= ICovCgoKCg== IGbDuHJzdGU= IGluaXRpYWxz IHByb3ZlcmI= IEFjdHJlc3M= Q29uY2F0 IE5pY29sYQ== LXNob3BwaW5n aXZpdMOg aXRpYW4= IFdlcnQ= LkFkZFNjb3BlZA== IHNhbGVzbWFu Ym9z IEZlcnJ5 Q0VOVEVS bW9kZWxv IFJvZQ== IElzbGFuZGVycw== dXBlcnRpbm8= RGVjbGFyZQ== IHZvd2Vscw== IGJveGVy KHRvb2xiYXI= IGhhbGZ0aW1l bmlu IEJyb29rZQ== IFZlcw== 0LvQsNGC IG1vdGl2bw== cHJvdGVpbg== a3Vz YnVzeQ== IHN0cmluZ1ZhbHVl CU15 TnV0 dXp6aQ== IHNleg== IG9sZHM= IG1ldGh5bA== IGLDvA== aGliYQ== IEluc3BpcmF0aW9u IGF3YWl0ZWQ= QnJ1Y2U= QkFMTA== IFRSWQ== LWxpdGU= IHVuZGVyZXN0aW1hdGU= CXJ2 Lm1vdg== IGhpc3TDsw== IEVyaWU= Y25hbWU= L2Nvbm5lY3Q= Y29uZmVyZW5jZQ== X3RyYWl0 IGt2aW5kZQ== IEludm9jYXRpb24= IERhdGVUaW1lT2Zmc2V0 d2VjaGF0 Q0VP IExpYnlhbg== LmNhcGl0YWxpemU= IGdyYWNlZnVsbHk= IHJlZWxz aW5jcmVhc2U= Lm1heGNkbg== ZmF2b3JpdGVz SVRFRA== PFNjYWxhcg== LkZldGNo IHN1c3BpY2lvbnM= W01BWE4= X1RSQU5TQUNUSU9O IGN5bGluZHJpY2Fs Lm5leHRFbGVtZW50 IG1vcnBob2xvZ3k= IENlZA== IGNuYW1l KHJhd1ZhbHVl V2Fsa2luZw== TG9hZHM= X0FMSUdOTUVOVA== X1JPVU5E IFJPQ0s= Y2x1c3RlcnM= Img= dWV1cg== cGxhbnM= IGF0aGVpc3Rz IHZhdA== PSJfXw== YXdhaA== ZXJ2YXRpdmVz IGZpbmRPbmU= IG5vdGVib29rcw== IFRUTA== LkdldEFzeW5j IG3DvG5jaGVu bUFo YnJ0Yw== X1BZ QnVpbGRlckludGVyZmFjZQ== CWdiYw== IGJsYW5rcw== IGTDqW0= UmVjdXJzaXZl Lk1hbnlUb01hbnlGaWVsZA== X1BBUlNFUg== IGVuZGVhdm9ycw== IGRyaWI= X3BocA== IGF1dG9tb2JpbGVz bG9pdA== IE9ydGl6 IFVE KGRBdEE= IE1pdHN1YmlzaGk= QXR0cmlidXRlVmFsdWU= IHBvYXRl 55u45YWz IGNhdmFscnk= Lk1hdGNoZXJz IGluZ3Jlc3M= IEplaG92YWg= CXNlcQ== X3N0cmVldA== IFNvZmlh IHNjcm9sbHM= dmluY2Vz ZWxlY3Ryb25pY3M= XHBhcmFt IHplbmQ= IHNraW0= LnBpeA== ZW5r X2FyZWFz IEJvaXNl LXZhbGlkYXRvcg== IHVuZWFydGg= b2ZpbG0= IEJDRQ== b3Zza3k= IExldmVy IHBvbGljZW1hbg== IG1pZXM= IFBvcnRyYWl0 IHBvdGlvbnM= X21vdA== bWFzc2FnZQ== 0LXQvdGL IGN1ZA== IG1hbnVzY3JpcHRz Y29udGludW91cw== LnRj w7x6 IEZyZWV6ZQ== Xzoq Lmht IENTUkY= IE3DpGRjaGVu LXBlZXI= IHB1dFN0ckxu IGltc2hvdw== IEB7JA== IEJhdWVy KHRvbHVh IHdyb3VnaHQ= IEdpYW4= IMO2bg== ZnVuZw== QnV0dG9uVGl0bGVz fSkiLA== IE11cmRvY2g= S1c= IFJlcG9ydGVk c2ll IG1laWxsZXVycw== IEthZXBlcm5pY2s= IGRzcA== IEV2ZXJ5ZGF5 cmVuZHM= IENvbmNl IGluY29udHI= LnJlbW92ZUF0dHJpYnV0ZQ== 44G+44GX44Gf IHJldw== IFByZXNlbmNl L2dpbg== LkNsYWltcw== CXNs RHJhZ2dpbmc= IHNwcmVl IGFjdHVhbGl6YXI= IG5vc3M= IGxpZmVzdHlsZXM= O2M= VURHRQ== SW5NaWxsaXM= IGl0aw== YWJieQ== KHBh aXNzZW50 IFByZXNpZGVudHM= IEhleGF0cmlnZXNpbWFs ZWNpZGVk KHRleA== IGNyb3duZWQ= UGhpbGlw IFNhcms= IEFkZGl0aW9u IENvbGJlcnQ= IEdMRVM= IFFMaW5lRWRpdA== IGRyYWlucw== IHNvcnRPcmRlcg== ZXNjb3J0 VGVk IG1hbmlmZXN0ZWQ= LnZhcmlhbnQ= IFJFRkVSRU5DRVM= KGdj L3sk b2N5dGU= IG9ybmFtZW50 IGJvb2tzdG9yZQ== SG9s IFZhbGw= Lycp YWNhaw== IE5hdkJhcg== IG55ZQ== X0RlYw== b2x2aW1lbnRv TVJJ IGhvb3A= ICAgCiAgICAK IFBvc3Rpbmc= IG91dGxpbmluZw== YWdhc2Nhcg== LmJyZWFrcG9pbnRz Y2F0aWQ= X3RyaWdnZXJlZA== IHJ1bm5hYmxl L3RydW5r LWNoYWly IGJhaXNlcg== ZmFjaWxpdHk= IHBvbGxlbg== 6Z+z IFtbIg== IENHU2l6ZU1ha2U= IGFzc2FpbA== IEF0aGVuYQ== IEFkZGljdGlvbg== aWxhbmQ= O2Jy LktleWJvYXJk X2Zt QWNl IFJFUQ== IE5ld2VzdA== Oy4= IE1BREU= c2V0VGltZW91dA== U2VydmxldENvbnRleHQ= CQkJCQkgICAgICAg IEx1cA== LXJldmlld2Vk IEFuYWx5emVy Lk5hTg== dXR1cmE= R2VvbQ== eW1lcw== X3Npbg== IHRydXN0ZWVz Ly89PT0= IGFkbWl0dGVkbHk= IGFrbw== IFVFRkE= X2hlcm8= R2l0aHVi X2VzdGltYXRl IGNvcnJvYm9y ZW50aWZ1bA== IFN0ZWVyaW5n IE1pdGFy IFBpcGVz IGvDpQ== X3NlYXNvbg== IEJDSFA= L3NvZnR3YXJl bmV0dGU= KiIs dW5kcmE= IGdldFJlcXVlc3Q= LkJ1ZmZlcmVk ZmVybg== TWFyaW8= IGRpc3BlcnM= X2NhdGVnb3JpYQ== IGVuZGxlc3NseQ== Z3VhcmRz CWF0b21pYw== c2NvcGVk IHVuZG9uZQ== U0hPUA== IFRvcmNo IEhhc3Rpbmdz IEZJTEVT X1NhdmU= V2l0aE1hbnk= V2lz IGludGVuc2lmaWVk LmFyZ3VtZW50 IEFwaVNlcnZpY2U= IEpTSW1wb3J0 ZWtp SW5zdXJhbmNl c3R5 LmRzbA== IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo= bHRyZQ== U0VH RFJBTQ== LWJsb2NraW5n 0L3QtQ== cGlyaW5n IFBSRVM= IEZhY2g= IHNhcmM= IFNNRQ== IEVsZW0= IENhbGlmb3Ju VW5zYWZl IENvbXBvc2Vy KGRlcA== IEF0dGVuZA== ICopKCg= IHRlYXNlZA== IEFUSQ== KHBt ICIoXDw= J10r IHNlY3Rhcmlhbg== IFBoYXJtYQ== RUk= CVRva2VuTmFtZUlkZW50aWZpZXI= w6d1 IGF1Z21lbnRhdGlvbg== IHNhamE= IGNvbG9yZQ== ZGVhZGxpbmU= LklURU0= IFJpeQ== bWFhbA== CWNsaWNr UGVybWFuZW50 SG91c3Rvbg== UmVzcG9uc2l2ZQ== IEVyZ2Vibg== ICIlIg== LnRvT2JqZWN0 CXBpZA== LlN1Ykl0ZW1z IFsr IGZ1bmd1cw== IGJyb2NodXJl IEFwcHJveGltYXRlbHk= IG1paw== dmVsb3Blcg== IHBhZ2FtZW50bw== 5Yqo55Sf5oiQ IGN5dA== IFRlbXBs ZW5pYWJsZQ== IENvbmFu IHNldGJhY2s= b2JsaW5z IE5UTg== b3NzYWw= VkVSQk9TRQ== LmJpbw== IMWe 4buf IEdyaXA= PCo= VFJJRVM= LmNob29zZQ== UGhvZW5peA== IHByb3ZpbmNpYQ== TUZMT0FU Q2Fycw== IHJldHJvc3BlY3RpdmU= IGFnb255 IGxsZW4= IGJ1bXBlZA== eWxhdGlvbg== IHdhcnRv IHRvZGRsZXJz bGF2 KHBhdGllbnQ= ICgpLT4= Y2xj IG9uQWN0aXZpdHlSZXN1bHQ= IGVtdWxhdGlvbg== IGJ1bGxk X0FVVEhPUg== Pk8= L3F1 IMK2 CWhy c3RkQ2xhc3M= IHNwYWNlcg== VHJhbnNsYXRlZg== LmFkag== Oml0ZW0= IGV4aGF1c3Rpbmc= cGx4 IHJldml0YWw= xZtuaWU= IGNhbGlmb3JuaWE= c2V0U3RhdGU= L3RhYg== aW5kc2lnaHQ= X0xldmVs aW1pbGFy Lm5hdmlnYXRvcg== IHRlbXBlcmFtZW50 IGRpZsOtYw== IGluZXhwZXJpZW5jZWQ= IGltcHJpbnQ= IFJlc2lzdA== X0ZPTExPVw== IFJldHJ5 IGVuZ2FnZW1lbnRz Q2FuQmVDb252ZXJ0ZWQ= IHNpbmdsZWQ= Lmljb25z IGNvbmRvbXM= IEZlYXRoZXI= bGVybmVu KWI= IE5wZ3NxbA== IENvbnNvbGlk cGVrdA== 56uv c3RyaW5nVmFsdWU= R2Ft IFNpbmFp IE9iamVjdFR5cGU= X2lucA== IHBhcnRp IFdhdGVycHJvb2Y= IGNvbGxpZGVk IGFpcnM= L3dvcmxk L1NlYXJjaA== X3N5bnRheA== xZ9p X2Fubm90YXRpb25z IFRhY28= TEFU IE9wY29kZQ== 44CC4oCdCgo= IGxlYXNo IEFsaWNpYQ== 77yM6buY6K6k IFRTQQ== IGhvdHRlcg== X0hhbmRsZVR5cGVEZWY= Z2luYXM= IGluZGlmZmVyZW50 Q3VzdG9tTGFiZWw= kZA= b2R5bmFtaWNz T25VaVRocmVhZA== IENhcmE= LmRldmljZXM= IEZvcmVpZ25LZXk= PicpOw0K LmJ1dA== LnRpZg== IOaWsA== IE9rSHR0cENsaWVudA== KFRleHR1cmU= LlNPQ0s= KGluc3Ry bWlzdA== VW5uYW1lZA== U3I= Km51bQ== KE5VTQ== KioqKioKCg== L2hlbHA= YmVlbGQ= LmFkanVzdA== X1Bhcm1z X0FOR0xF VFJFRQ== IGVzdHVkaW8= d29ya3NoZWV0 Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCg== QWR2aWNl w7bDn2U= bkVudGVy YcSH IGFnZWluZw== IEt1cmRpc3Rhbg== X1JUQw== YmFua3M= LlVS IGluY2FybmF0aW9u IGdsYW1vdXI= IOOCuQ== IGltcGVyaWFsaXNt 7J6F64uI64uk IHNpZGVsaW5l LkFycmF5QWRhcHRlcg== IyMjIyMjCg== IFN5cmlhbnM= IEF0dGVuZGFuY2U= LWVzcXVl IGdyZW5hZGVz X3Fvcw== T1ND X2Rvb3I= LkNhcA== REFM IGFtYnVzaA== CWVz VG9Kc29u TWFudWZhY3Q= RW1lcmdlbmN5 IFFGaWxl IOWV CUxQ 5pCc57Si IEdhcmxhbmQ= LmNvbm5lY3Rpb25z LlJlYWRGaWxl IEh3eQ== 4oCUZXZlbg== eERF IG5vdXZlbGxlcw== IEh1c3M= RGVwb3NpdA== X2ZvcmVpZ24= YWJhag== IFBveg== ZGJ1cw== IGlvZA== w5cKCg== IENoZWVycw== SmVzc2ljYQ== IHNhaXNvbg== IFB0eQ== Ij48IS0t aW5vYQ== ZXhjbHVkaW5n IGJpdHRlcm5lc3M= dWVsaW5n UHJvdGVjdGlvbg== IEJlcmdlbg== CQkJIAo= QkVM IFRvYmlhcw== IHVwZA== 67KE IGZvbGlhZ2U= X1BVUg== IEFkdm9jYXRl IG9uUmVxdWVzdA== LnBhcnRpdGlvbg== IERldmVsb3BlZA== IGNyaWI= 0YHQutC4 dm91Y2hlcg== IEludGVyc2VjdGlvbg== IG5pZWNl IGxr IENhdWN1cw== KFsNCg== IERldGVjdG9y L2xn IEhlZGdl IHNsdWdn YW5nc3Ryb20= IENvbnRyb2xsZXJCYXNl CXl5 LnBw IEtsaW5n IExUUw== 4oaT YXJyYQ== Z2V0SlNPTg== X3dlYnNpdGU= IGlkaW90cw== IE1lZ2hhbg== QnV0dG9uTW9kdWxl ICU+ IHByb2plY3RpbGVz c3dvcmQ= ICAgIAkJCQkJ IGFzc2Vz IFN1Y2hl IGtlZA== csOhZg== IHNhcsOg TEVuY29kZXI= UkFORA== IFNvbWVob3c= IFNhbGE= IG11bHRpbQ== IG51bVJvd3M= IFJvY2tpZXM= IHhk IGRpc3Byb3BvcnRpb25hdGU= CVJUTEk= CVVSTA== YWdsaQ== IFN1YkxPYmplY3Q= IEdyYXZlcw== X3JlZ3VsYXJpemVy X2NoYXJhY3RlcnM= LmFuYWx5dGljcw== Lm1vZHM= IGltcHJvdmlz IEJsb2NrUG9z X2luc3RhbGxlZA== X0NPTlRJTlVF L2Rvd24= U09D LmFwaVVybA== LlVzZXJTZXJ2aWNl VHJlZXM= 5oqV X292ZXJmbG93 YXVzYWw= Ym94ZWQ= Jgo= IEphY3F1 X3Vzcg== SU5UUg== IHNpZ25hZ2U= IGNvY2g= Tm9ybWFsaXplZA== CgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo= IHN1c3RhaW5pbmc= IFNjcmFw cHJhYWs= LWF2YXRhcg== LndlYnNpdGU= KGd1aQ== PXJlc3BvbnNl KG9wZXJhdG9y IGVmZm9ydGxlc3M= IEFjdGlvbkJhcg== RkZF 56uL CVJlZ2lzdGVy QVJTRQ== KW4= IE1PU1Q= X1NQUg== X0NISVA= YXNk IHRvcExlZnQ= IFR4dA== 0LDQttC0 LlZvbHVtZQ== IGlubGV0 IGZyYWN0dXJlZA== IExvbmdpdHVkZQ== IERyYW0= LkNvbm5lY3Rpb25TdHJpbmdz YWJlZQ== cGVyYXRl am5p YHQ= ZmluZ2Vy IEplc3NpZQ== LGxs IFJ1ZHk= IGdlbmVyb3VzbHk= X0NPTlZFUlQ= IGVpdXNtb2Q= IERhaQ== aW1hZ2lu IEdPYmplY3Q= IMSRw6M= aWRpb3Vz cmlkZ2Vk IHNvcHI= 0LvQsNC0 IHN0aXRjaGluZw== IGtyYg== CiAgICAgICAgCiAgICAgICAgCg== IGxhdmlzaA== IENpdg== U3RhcnRFbGVtZW50 IExvbA== CXV0aWw= J11dLg== IE1hbGF5 IC4NCg== 548= X0ludm9rZQ== aXZpc3Q= RGVwZW5kaW5n KSI7DQo= IHRvZnU= IE1DUA== IHN0b2NraW5n IGNhdGhlZHJhbA== IHF1YWRyYXRpYw== YWxlemE= Lm1vdmVUb0ZpcnN0 Q29sb3JCcnVzaA== IEVyZWN0 IFJDUw== OmJlZm9yZQ== PW5vZGU= IHByb2Jsw6htZQ== X3Jobw== IHN2ZW5zaw== Um95 YmFzZVBhdGg= IGtvbmQ= INC10YHRgtGM Z2V0U2luZ2xldG9u IERTTQ== SWFu IGh1bnRlZA== IFRlcnJhY2U= IGNoaWxkY2FyZQ== IGNvZWZmcw== IGdyYWRlZA== IEx1Y2lh IGpzb25PYmo= YWJsZU9iamVjdA== VmF1bHQ= w61zdGljYQ== X3BhZ28= X1BG YW5kcmU= IEFuYXRvbXk= LkpDb21ib0JveA== b3VyZQ== IGdlbm90eXBl YmVuY2htYXJr IGJhaWs= IFF1w6liZWM= KCkpDQoNCg== IGt1bm5l IFBvc3NpYmx5 IEJlaXNwaWVs IGNvbmRvbGVuY2Vz PXF1ZXJ5 IHbDtQ== IG51ZXZhcw== IEFwb2NhbHlwc2U= dmVjdGlvbg== CXNwcml0ZQ== bGV2YXRvcg== LiJdCg== Z2V0TmV4dA== KFJlZ2lzdGVy IHVuc3Vi dHJlZXZpZXc= Tm9kZUlk IOyK JikK Zmx0 IGhvdHNwb3Q= IGdhc3Ryb2ludGVzdGluYWw= ZmlnY2FwdGlvbg== b3dlcmVk IENzcw== X3Jvcw== X3NjYWxpbmc= IGVkaXRhcg== J11dKTsK Lm5lZw== IGZ1dHVyaXN0aWM= IHN0YXRh dWN0b3I= VUxBVEU= IHfFgg== LWNoYXJhY3Rlcg== ICAKCgo= IEJlYXU= IHBlcm1hbGluaw== Qnl0ZUJ1ZmZlcg== IGRpY3RhdGVz IE1MQQ== X0xvZ2lu Q29uZGl0aW9uYWw= U1lN QXJyYW5nZQ== IFN0b2Nrcw== IG1lYXNsZXM= 4KSk RW5jcnlwdGlvbg== IEVudGlyZQ== IG1pbk9jY3Vycw== IGh1Z3M= L3dpbmRvdw== CXByb3A= PSQoKA== IFVDUw== IEZpcg== LkNsb2Nr LWRlc2t0b3A= IG1hbGZvcm1lZA== IEFiZXJkZWVu IMOF IFJvYWRz IEJlaGF2aW91cg== KCkn 5bGe5oCn LkNvbXBhcmF0b3I= X21v X0lPUw== IE9yaW9sZXM= Lkxvb2t1cA== IGZzZWVr X0lC L3N0YXI= Kzwv X0Rlc3Ryb3k= LXRyYQ== KCcuJyk= IEZvckNhbkJlQ29udmVydGVk IEZvckNhbkJlQ29udmVydGVkVG9G IEZvckNhbkJlQ29udmVydGVkVG9Gb3JlYWNo IEFhZA== IGFpcnN0cmlrZXM= aXNPaw== IGZlZGVyYXRpb24= IExhYnJhZG9y X2xhdW5jaGVy YWxvZ3k= Pj4oKTsKCg== IEp1Yg== dXRy aXN0aW5ndWlzaGVk YWJhbnQ= UmVnaW9ucw== L2hlbHBlcg== X2xpc3Rlbg== CVRvYXN0 IEZpbGVNYW5hZ2Vy aXRvcmlz IGVsZWN0cm9kZXM= R1JBREU= IGJlZ2dlZA== IFBsYXRlcw== YWZvbmU= ISEhCg== IGVieA== IGRlZmF1bHRQcm9wcw== IGNvbXBhcmVUbw== IFNDQw== LmV4dGVudA== YXV0b3M= IOyW IFRvbGtpZW4= OjoqOwoK Kics LmRvY3VtZW50cw== c2luZw== PUJpdENvbnZlcnRlcg== IEtyaXNobmE= IHBsYWlzaXI= IGJ1Z2d5 IHJlZ3VsYXRlcw== IGZyaWRheQ== IGNvbXBsZXRlbmVzcw== IGF1ZGlibGU= IFJlY29nbml0aW9uRXhjZXB0aW9u IHNoZWRkaW5n W10pewo= KGJhbGw= IENoYXRDb2xvcg== KENvZGU= KCksCgo= IHRlcnRpYXJ5 IFNJREU= KEpTT05PYmplY3Q= pOaWrQ== UmVtYXJrcw== IGxpc3RCb3g= LmltYWdlVXJs IGRlbGF5aW5n IHNvY2lvZWNvbm9taWM= Lmxw PE15 Lm9uU3RhcnQ= IFNjb3I= Ynl0ZXJpYW4= LXJvY2s= X21ldGVy IHJlcG1hdA== IHByZWd1bnRh IE1FVEE= KGd0 IEZSSUVORA== IHNvcnRl IGhlcA== b25vbWllcw== IGF1dG9tw6F0 IEZvcm1hdHM= c3RhdGVQcm92aWRlcg== LWZsb29y X01VWA== KENvbnRlbnQ= IElOU1RBTEw= IFRpdGFuaXVt cnVj LkRhdGFzZXQ= YXNjbw== Lk1BVENI IGZlc3Rpdml0aWVz TVNO Lm90 IEdldExhc3RFcnJvcg== aWVucw== IF9fX19fX19fX19fX19fX19fXwoK X0dG X3BsYXRl IEZvcm1hbA== LWxldHRlcg== S2F0ZQ== YXBpYQ== ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8K L2dlbmVyYXRlZA== IERpbmc= IEZyaWVkcmljaA== ICcpJw== VUJMSVNI IEFiaWxpdGllcw== IHVubG9ja2luZw== Lnl5 IEludGVycg== bm90aHJvdw== aXBvcA== IENPUlBPUg== W2FycmF5 PFdlYkVsZW1lbnQ= X1NJRA== LnF1YWw= RGlhZ25vc3RpYw== OiIiLAo= KG1vbWVudA== anVyZWQ= IHRlcnJlc3RyaWFs ZXJ1bGU= ICYpOwo= IGJ1cmVhdWNyYXRpYw== b3BwaW5z IGphcG9u bGVvbg== X3JlbmFtZQ== X0RFU1RST1k= LkVuZHNXaXRo IGVydXB0aW9u KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8K UEVU X3JlbG9hZA== IHN1cHBsZW1lbnRhcnk= IHppZW4= Q0xMb2NhdGlvbg== IGtsZWlu X2Vm Ont9 IGNvbWVudGFyaW9z KHZhbGlkYXRpb24= Lnh0ZXh0 X0lNQUdFUw== LnNldElucHV0 IERlY29tcGlsZWQ= X1RCTA== Y29tcGxleFR5cGU= X2ZlYXR1cmVk ID8+PD8= LnZvdGU= IEZyaWRheXM= LmNvbnN1bWU= Lk1FRElB IHN5bmVyZw== jpjsnbTsp4A= X0hFQURFUlM= eEFD X252 zq0= IFNpbW9uZQ== Q2VycmFy YWRkb2Nr LnNlcmlhbGl6ZXI= IENsYXNzaWZpZWQ= Lkl0ZW1zU291cmNl IHByZWNvbmRpdGlvbg== 44Gd44GX44Gm RElTVA== SW1hZ2VVcmw= L3JhbmRvbQ== IGVyw7N0 W3Jvb3Q= QUxMRVJZ Y2o= eEFE IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwo= IGl0YWxpYW5p fCM= IHJlZ2VuZXJhdGU= IHN0cnI= KHx8 IEVtZXJzb24= IFBJRQ== Y2xpZmZl CWFu PlBhc3N3b3Jk dG9EYXRl Q2lwaGVy IGNvbnZveQ== IFhDVEFzc2VydFRydWU= L19f LWZvY3Vz IFJoaW5v IGdvbw== IGJvdG9u Lk5vU3VjaA== IFJlZHVjZWQ= TUlTUw== IFdpbmNoZXN0ZXI= dXJsZW5jb2Rl IG11ZGR5 aXlh IE1icHM= IHN0YWw= b2RhZm9uZQ== 5Lus IHBo4bqpbQ== ICIvIjsK IEFtbW8= TmV3UHJvcA== ID0KCg== INCf0YA= IHBheg== IGxpYmVybw== CVJlc291cmNl bmVpZ2hib3Jz LHJlc3BvbnNl X2F0dGVtcHRz IG5r IG1pbGl0aWFz X1BBWUxPQUQ= LkJ5dGVTdHJpbmc= INGB0L7QtNC10YDQtg== YXJ0b24= PkhlbGxv bGlnaHRseQ== b3dlbGw= IGd1YXJkaW5n IFRPSw== IHdoZXJlYWJvdXRz X2R3 IFJvdWxldHRl IGd5cg== IEZlZG9yYQ== LkJ1dHRvbnM= IGV4Y2xhaW1lZA== IFNvbW1lcg== QXV0aEd1YXJk LXJhdGluZw== TWV0aG9kQmVhdA== LnBvc2l0aW9ucw== TWVkaWFu LuKApgoK IGdsYWM= IHVuZGVybWluZWQ= JSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJSUlJQ== X3RoaXJk LmtlZXA= IGhheWE= IHRvSlNPTg== IExhdXJpZQ== IAkgICA= IEFjY3Vt IHBydW5l dXJ2ZWQ= IE5TRg== IEdyYXBl RkxJQ1Q= 6LI= IHByZWRpcw== X3B0cnM= IG11bHRpY2FzdA== KEdyb3Vw IGhlacOf IGZlZGVyYWxseQ== X1BBVVNF IG1hbGF5c2lh IFJlY2FsbA== IHJvZHo= IFNlbnRlbmNl aW50ZWw= X2RydmRhdGE= LXNjZW5lcw== PHk= IGZvb2xlZA== IExvdWQ= IGFudGl2aXJ1cw== LnBsaXN0 IHZlcndlbmRlbg== IFdvbGZl KWl0ZW0= IHR3aXN0aW5n IGVzcGFu YXRlcm5v IEFjY29yZA== KCldLA== UkVNT1ZF ZGVoeQ== X1ByZQ== IG1pc2Nhcg== dmxh IHNlbWJs IHRldGhlcg== IEJpag== LycKCg== IENvcGllcw== LXBhdHRlcm4= Lm9uVmlldw== LXRha2luZw== X3NpbXBz 44GX44GL44GX IERBQ0E= b3JuaW5n IFBlc3NvYQ== b3JueQ== X3Bhcw== IGVpZ2h0eQ== VGFj X1NUT0NL LmxvY2F0aW9ucw== Iil9LAo= IHTDoQ== LWZpZWxkcw== b2thbmU= L2t1YmVybmV0ZXM= IGNoaWNh IGFydMOtY3Vsbw== 7II= Q1JFQVNF QVNB IExvbmQ= IGV4ZW1wbG8= QWxsb3dz aHRtbHNwZWNpYWxjaGFycw== KHZpcw== IGpy 54Gr IEVDTQ== IGVtYmFy X0FEQVBURVI= IGRpbHV0ZWQ= X29mZmljZQ== IHNraW5jYXJl QUdJTkc= IMO+ IFNNQVJU L1RhYmxl IGJhc2Fs Q29uY3VycmVuY3k= IFZveA== IFVJQ29sbGVjdGlvblZpZXdDZWxs IHdvbA== IFNPVVRI IGZyb21EYXRl IGNvcmRz RU1T LndlaXhpbg== J2VsbGU= IOWx IGdvYWx0 dWli IE5lcHR1bmU= KG9yZA== xLFuxLFu IG1pY3JvYmVz V2VhcG9ucw== LURlYw== IFJvb25leQ== IFN3YWdnZXI= 66qF X2xh IGdlbmVyYWRv IEhpcg== Q29taWM= IGNhcnZl X3Jx aWN0ZXI= IGNhcnRlbA== YW5jaWFz IFBhbmFzb25pYw== IHJvYWRzaWRl IGZyZXNod2F0ZXI= IGRiYw== X3RleHRz X3NrdQ== IFN1bW1lcnM= IFBpY3R1cmVCb3g= Lmdyb3VwQ29udHJvbA== VkFSQ0hBUg== UmVMVQ== IHNhYm90YWdl DQogICAgICAgICAgICANCg== IHNjcm9sbGJhcg== IGJhdHRlcmVk Y2lw LXBpY3R1cmU= CXN0YXRz LmNyZWF0b3I= X0NMRUFO Lk1PRA== IGJpZ2ludA== IFRlcnJvcmlzbQ== X1Nob3c= IFNwaWNlcg== X0VUSA== IMSR4buD IHN1bW1lcnM= IFVyYW4= L21lbW9yeQ== UmV2aWV3ZWQ= IGR1ZXM= c2V0U2NhbGU= IFJheXM= IENTQw== aW5jb21pbmc= LWJ1eQ== IHByb2N1cmU= ZW50YXI= IGJ1bGxz IAkJCQkJCQ== IEZpYm9uYWNjaQ== LXNjaGVtYQ== bWFrZXM= RWY= X0Rlc2NyaXB0aW9u L2FsZXJ0 IGpzb25TdHJpbmc= dWZmbGluZw== IEtFUk5FTA== IEhveQ== IGdyYW50UmVzdWx0cw== b25hbGQ= IFByb3ZpbmNpYWw= c2VuZGluZw== cHRvbQ== INCe0LE= IGNvbnN0cmFpbg== IMWhdG8= IFJhaXNlZEJ1dHRvbg== VVRET1dO IEdMc2l6ZWk= IOekug== 44OR IEdvbg== UExJRVI= J119PC8= Y2xhc3NpYw== IGVuZ3JhdmVk IG1hc2N1bGluaXR5 TWFyc2g= c3NxbA== KEdyYXZpdHk= IGxvYnN0ZXI= 67aE X0ludGVy XGJhc2U= JzpbJw== IGRldGFsbGU= dHdlZXRz IGplYWxvdXN5 YWdlbmRh LGl0 c3dpcmU= K0I= IHRyb3V0 X2FsdGVybg== OiIj IER3YXJm IFNoYXBpcm8= ZXJvb24= IG5vaw== X2xvbmdpdHVkZQ== IFdlcm5lcg== IHZpb2xldA== dXJzaXZlbHk= LWF3YWl0 IH0KCgoKCgo= IExlbm5vbg== IEFudGFyY3RpYw== IGLDpWRl X3Nsb3Bl bWFuZG8= b3VuY2Vy LWlvbg== IERlc3RydWN0aW9u aXNzZW5zY2hhZnQ= UGl6emE= IEdlb2xvZ2ljYWw= Qk9VTkQ= IGNpbmU= RGVtb24= LnBlb3BsZQ== X1RPR0dMRQ== CW5vZGVz YnVzY2Fy LnByb2Nlc3Nvcg== Tmg= L3Nkaw== IG15Y2tldA== YXVjdGlvbg== TWVn R01FTQ== IGlyb25pY2FsbHk= 5riF IGNvbnZlcmdl IFVJVGFibGVWaWV3RGF0YVNvdXJjZQ== QXJkdWlubw== PmU= Sm95 IFNob3VsZGVy IER1Yw== UFJJTUFSWQ== Lioo LXByZXM= IGRpYWxvZ1JlZg== aW1hZ2VOYW1l X2ludm9rZQ== XFRlbXBsYXRl T0k= IHZyaWVuZA== IEd1ZXJy IHByZXJlcXVpc2l0ZQ== IFBHQQ== IFJlc3A= KSIsIg== bGxlbg== IHNuYXBwaW5n X0ZpcnN0 S0lU LnNldEZvY3Vz IEN5cHJlc3M= Y3JhZnRlZA== LzsK d2VpZ2h0ZWQ= dm95 X3RG X2luc24= IEluc3RhbGxpbmc= IEdhbGx1cA== QURPUg== IEFMT0c= Q29udGV4dEhvbGRlcg== IFRvdXQ= IEZvbGV5 IGNvbnRlbXBsYXRl IENvaW5iYXNl WMOj d2FuZA== LkNyZWF0ZUNvbW1hbmQ= U29jaw== IHVud3JhcA== Y2xhc3NwYXRo PFJlc291cmNl X0VTVA== PXJhbmRvbQ== IFNoYWRl IGRpY2k= 2K/Zig== IGtpdHR5 0LDRgtC10LM= 4buNbg== LkNvbXBsZXRlZA== cGxvcmVy IGJhYmVs Lk9uSXRlbUNsaWNrTGlzdGVuZXI= IE1jTWFob24= IHJlc3RUZW1wbGF0ZQ== IHRlc3M= U2V0VXA= L29jdGV0 IGNhbGFt IGhpbmdlcw== IGFydGVyaWFs IFRydW1hbg== IENoZXJ5bA== X0REUg== IHRtcGw= IExlcg== W2hhc2g= S0VS IHByb3BvcmNpb24= IGNvYXN0bGluZQ== YWNpb3M= Ij4tLX19Cg== IGRpc2FkdmFudGFnZWQ= VG91Y2hMaXN0ZW5lcg== IFNlZ2E= Y29lcw== SWxsZWdhbEFjY2Vzc0V4Y2VwdGlvbg== PEJveA== IEluY3JlZGlibGU= VXBkYXRlcg== RkxU aW5hbWU= IEludGVyZmFjZXM= Kylc ZW5kaW1lbnRv IHBhbmNha2Vz IGluY29uc2lzdA== LnBldA== IGtleW9m SW5uZXJUZXh0 Picp RGVhbg== IFDDqQ== KENvbnRyb2w= IHNwYXI= bGluaWs= ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA== IERhbmU= X1BBR0VT IHNldEJhY2tncm91bmRDb2xvcg== c3ViY2F0ZWdvcnk= IFN0cmluZ1NwbGl0T3B0aW9ucw== QWxsZW4= ISgie30iLA== hOyerA== IGJhYw== X1BST0RVQ1RT dXBwZXJjYXNl PSQoIiM= xJlr IFVJVGFwR2VzdHVyZVJlY29nbml6ZXI= TUVUQQ== IHNjYXJjZWx5 6aA= X21hbmFnZWQ= IGNvbnN1bW8= TW91c2VNb3Zl IFNwZWNz IFNlYXJjaGluZw== SGVhZGVyVmlldw== Oicp IG1pY3Jvc29mdA== IEtvc292bw== ZW1hbm4= LmZmdA== IEh1YmJhcmQ= IGRleA== X1RFUk1JTg== X0ZD IHBoaWxpcHBpbmVz XENvbGxlY3Rpb25z IHRlaA== IHF1YWxpZmllcw== IGlucHV0VmFsdWU= IEdPVA== KHNh SUxMRUQ= IHNsYW5n IGtlaW5lbg== IGZlbG9u IEVyaWNr YWJpbGlkYWRl LnNlcg== IHJ1bmVz IFVucmVhbA== KG9y IOusuOyekA== IGJpZGk= IGlyYw== CWl0ZXI= Im5pbA== L3VidW50dQ== IG11cmRlcmluZw== ID8u dW5rZXI= UmVjdFRyYW5zZm9ybQ== JykpCgoK IGFyaXR5 IEZyZWVs Lm1vdW50 Q09NTUVOVA== ICIqIiw= ZW5jcnlwdGlvbg== W21vZGVs In19Pgo= LlRvdWNo L3RodW1i IHByZXo= L2NvbXBhbnk= IHLDs8W8 IHNvZnRlbg== IHBvc3NpYmlsZQ== IEVDQg== X0Jvb2w= IC0tLS0tCg== IGludGVydHc= X3N0YQ== X0JBTA== Lm5hdmlnYXRpb25CYXI= IFJHQkE= Z3JpbHk= c3RvZmY= YWNreQ== UUI= QEFwaQ== cGVjaWE= IFJwYw== IGFtcHM= IEZlbmNl IGdlbm9taWM= KGFsaWFz Vmllbg== U3BpbkJveA== LmdldFNlY29uZHM= IGdsb2JhbGl6YXRpb24= IGN1cw== a3ViZWN0bA== IHRocm90dA== IGluZXJ0 IFNjcmF0Y2g= w5c8Lw== Lmlzc3Vl ZXNzYXk= LUlzbA== IG3DoXI= CWJpdA== IGFib2xpc2hlZA== LmluZmluaXR5 bGluZW5v LmFsZ29yaXRobQ== b3JzY2g= RW1haWxBZGRyZXNz IERBRw== YnJpbmdpbmc= Lm15YXBwbGljYXRpb24= LlN1cHBvcnQ= X2xlYWRlcg== IERldmlu IFtdDQoNCg== IHJtcw== IGJ1Y2tsZQ== aWdsaWE= L3Byb2JsZW0= IGhhdXRl IGluc3RpdHV0ZWQ= SVU= bGFtYQ== RVhQRUNURUQ= IEJlY2toYW0= IEh5ZHJhdWxpYw== U3RhdGljcw== X25vcm1hbGl6ZWQ= LmAsCg== IG1pbWV0eXBl IHNoYXZpbmc= T3ZlcnJpZGVz IE1lcmNlcg== dHJmcw== LXN0YXRz b3NwYWNl IGFudGlveGlkYW50cw== aW5maW5pdHk= Um9ja2V0 IEV1bGVy LXZhbHU= IGzDuA== LUlO SG1t LXJldHVybg== IFBBTkVM IHRlcm1pbmF0b3I= IHRla24= IHByZWRpY2F0ZXM= U3RhbXBlZA== IHN2ZQ== YW50ZXI= IGN5Y2xpc3Q= IEVwc3RlaW4= IGhpdHRlcnM= ZG9ncw== LkFkZExpc3RlbmVy X2V4Y2VwdGlvbnM= IEZPT1Q= aWNhcmU= W3RhZw== LWZldGNo VVBMT0FE LmRyb3Bkb3du IGNlbnRyb2lkcw== IGFyYmU= IGhpam8= IERhdGFiYXNlUmVmZXJlbmNl UG9saXRpY2Fs IEJBU0lD LWZvcmNl fCQ= IFJFVklFVw== LmRlY29yYXRl IEFzcGVjdA== IGNvbW1lbW9y IGNsZWFuc2U= IENsYXVkaWE= Z2VuZXJhdGlvbg== SExU dHlwZW9ybQ== cHJlZmVy b3ZlcmxhcA== YmlvbG9neQ== U3RyZWFtZXI= Y29tbWlzc2lvbg== IHRodW1ibmFpbHM= LkN1cnJlbnRDdWx0dXJl IHVybHBhcnNl IGdpb3Jubw== IGRldnM= X2FzcGVjdA== IGNoZXJpc2hlZA== IE5hY2hyaWNodA== IHJpZ2dlZA== L2xvZ2dpbmc= aHVudA== VHlwZUVycm9y PFNlbGVjdA== KHByb2c= IEdyaWRMYXlvdXQ= 6JA= IEVYUEVS CUtFWQ== LmRt CWNhcmQ= IFRhdQ== IG5vdGFtbWVudA== IGhlcm9pbmU= IGJhdGh0dWI= YXRyb24= IOaU 77yS77yQ Y29ub21pY3M= IHJldmVyc2libGU= 6YeR6aKd IGpzeA== IFNwZWFrZXJz RGVzZXJpYWxpemVy LnRvRmxvYXQ= INC/0LXRgNC10LzQtdC9 IFByb3ZpZGluZw== 6LSm W2VsZW1lbnQ= Kjo= PlJldHVybnM= IHRpdHVsYXI= IGhlYXJ0YnJlYWtpbmc= X05C LkFyZ3VtZW50cw== IG9wdGlj YXR0YWNrcw== IFZ1bG5lcg== CWtleXM= IGNvbnRyb2xl LlJHQg== IHN1Ymdyb3Vw bWFuZGF0b3J5 IENBQg== CWVuZ2luZQ== 44Gw TUVESUE= L3RyYW5z IGRhbms= IHNlcnZpY2Vk IGluY2FyY2VyYXRlZA== IEZyZWFr IHVwdG8= ZHJhd2Vy WyIr IGVudHdpY2s= Z0w= TW9kZWxFcnJvcg== IHJlYWRkaXI= aXN0cmlidXRl IGdsYXJl aXF1ZW1lbnQ= Y2hpbmE= IEthcGxhbg== IFN0YWJpbGl0eQ== cG9zaXRlcw== IEpBWEJFbGVtZW50 IHRvdGFsbWVudGU= KGNvbW0= X3Byb2Nlc3Nlcw== VGhvdXNhbmRz IElscw== ZXJ0YWludHk= IFNoYWRlcw== YWN0YWw= bG9nZ2VkSW4= IE5pY2hvbHM= IE1pZGxhbmRz ZGV2aWw= IHN0clNRTA== In0p IEpvcmQ= KGZm IEp1bmk= 5bCx YXJ0aXNhbmxpYg== IG1vb25z IHVucmVzb2x2ZWQ= IHdpdGNoZXM= IEfDvA== IEdvYmxpbg== YW5zc29u fCU= IGJ6 IGR1cGxleA== ICIpKQ== Lmxpa2Vz KHZlcnRpY2Fs IGNvd2JveQ== U2VsZWNjaW9uZQ== ICcqJyw= IFNhcA== IFNhYmJhdGg= U09SVA== 4Ka/4KY= X2NlbnRlcnM= XFBvc3Q= KFRyZWU= IHBhcnRlcw== X3lhdw== YXJlbW9z c2V2ZW4= IGhpYXR1cw== X2ludGVuc2l0eQ== LW1hbnk= IERvbGxhcnM= LXVuc3R5bGVk IGdyaXBwaW5n IG1hcnZlbG91cw== IHJlY2VwdGlvbnM= IG92ZXJjbG9jaw== YmVybWFu IGhlYWRxdWFydGVyZWQ= eEJC Y2xhc3NDYWxsQ2hlY2s= IG9ic2VydmVz U3VibWl0dGluZw== 0LjRh9C10YE= IEh0dHBTdGF0dXNDb2RlUmVzdWx0 IGhpZXJvbnRh cm9wcGluZw== Rk9SQ0U= CXV0aWxz IHZlbnRz YWRkZXJz IE1JWA== IEVsZWdhbnQ= IGFjb3M= KG1hY2hpbmU= IG1lZGRsaW5n IHZpbGU= LWNvbXBhdGlibGU= IGNyZWFtcw== IFRhYmxlUm93 IFJlaGFiaWxpdGF0aW9u QWJi KHVzZXJJbmZv X2V4cGlyZWQ= Lk9iamVjdE1ldGE= IGdvZHQ= dXN1YWw= LmJpbmRpbmdOYXZpZ2F0b3JNb3Zl IFJlZ2lzdHJhcg== bWlncmF0aW9u YXB0dXJlZA== LHBhcmFtcw== IGNlbnRlclk= b3dhbg== bG9jYWxlcw== SW5wdXRNb2R1bGU= IHZpZ2lsYW50 IG5jb2xz IGluZ3I= IGPDtHTDqQ== dmVydGltZQ== IHdpZGVzdA== IEhERg== IEFsZ2VyaWE= IGNoYXR0 JHNlbGVjdA== Il0pDQo= IG11bHRlcg== IENoZW5leQ== ZnVzY2F0ZWQ= PSciLiRf IERlbmlzZQ== IHJpZmY= QWJzZW50 IHRhbWHDsW8= IGplc3pjemU= LlByb2dyYW0= CWJy ZXJhaXM= IHNhbmRhbHM= ICws IGRpc3NvbHV0aW9u IHVudGVyc2NoaWVk UHJvdg== LnRyYW5zYWN0aW9ucw== IFRyb3VibGU= Lm1pZGRsZQ== LmdldERlY2xhcmVk IHN3ZWF0aW5n IEhhbmNvY2s= 6LS5 IHBvZw== IEtpYQ== IG1vZG5l IEFjY2Vzc2liaWxpdHk= IGxlYWthZ2U= IGRlY2VwdGl2ZQ== IFdPTQ== INC+0YE= IGNzYWs= YWNvY2s= LlN5bnRheA== ICxb LicpLAo= IGZvcmVjbG9zdXJl IHVuZmF2b3I= IGV4Y2w= Q1VEQQ== ZGVuc2U= PFVuaXQ= IHZhcGluZw== IG1hamVzdGlj aWF0b3Jz IGF1dGlzdGlj LmdhdGV3YXk= VXJsUGFyc2Vy SGVsbA== IENvc3Rjbw== IEhJUA== T2JzZXJ2ZXJz IFBlb3BsZXM= IFNwb3RsaWdodA== IFRhdmVybg== IFRPVVI= cGxpbmdz LldSQVA= IGFsZA== TkFM KCIqKio= c2V0UHJvcGVydHk= X1N0b3A= YW5ub3VuY2VtZW50 IEltbWVkaWF0ZQ== IEhTVg== X1RFU1RT IGNyYXZl X1VD LmRlY3J5cHQ= KFJvbGVz IHN1Ymo= X0ludGVnZXI= Lm5vdE51bGw= IEdzdA== IEJ5cm5l IEFxdWFyaXVt IENhbmM= X0NIQU4= IERUTw== Lmhs IG1lbmdndW5ha2Fu RnJhbmM= RGlhbG9nQ29udGVudA== Li4uJwo= IEt1bnN0 IEFsbG9jYXRvcg== VVNBR0U= S25vd2xlZGdl CWNwdQ== IG1vcmFscw== cGF0aWVudHM= IGlsaw== IGNyaXRlcg== IFZldA== IE1lc3NpYWg= X186 YXZlbm91cw== X3ZpZXdlcg== KERpY3Rpb25hcnk= IEJvZGllcw== aGFzT25l 0LjQvNC10YA= IHppcGNvZGU= U3Rlcg== IGLDoXM= X0Rpc3BsYXk= IGZpcm1h IFJhaWRlcg== IEtI V2l0aERhdGE= KEFSRw== IHByb3Ry IG1zZWM= IGxhdmVuZGVy KFV0aWw= INC/0YDQvtCz0YDQsNC8 X211eA== X2xhdGl0dWRl UG9ydHJhaXQ= IHNpdGNvbQ== IGFkaWNpb24= KGNvbnN0YW50cw== IEFueGlldHk= IFJvc2Vz IHN0aW11bGF0ZWQ= IGNocm9ubw== IGZvc3NpbHM= IEFpcmJ1cw== bGVmdHJpZ2h0 IE3DqXRvZG8= Inc= IGtsZWluZW4= IGNsaXF1ZQ== b21pbmF0aW9u IG1vdGVs L3ZlY3Rvcg== ZGVjbGFyYXRpb24= IG5ld1k= W0g= LnNjYWxhcg== b21ibw== aHVk O3NldA== ZnR5cGU= KCcnKS4= b3JkZXM= eW5vcw== J10sCgo= X0ZMVVNI aWRlbnRpZnk= L2RldmljZXM= IGRpY3RhdGVk IGRlamFy IEVtaW4= IFBlbmRhbnQ= IG9uVXBkYXRl XSkpKQ== IEJhcmtlcg== T3Jt 6K+36YCJ5oup X2d1aWRl w6FiYWRv b3BoZQ== ICIuCg== IEJyZXdlcnM= IGJyaWRhbA== IENFUw== X0NhdGVnb3J5 IEJUTg== IERhcnRo I2Zvcg== ZXRobmlj YXJjaGl0ZWN0dXJl IENvdXBl aWRvcmVz IGZhc2Npc20= IGNvbnRyYWRpY3Rpb25z ZWZmZWN0cw== SW5pdGlhbFN0YXRl IOekuuS+iw== bWF0cGxvdGxpYg== LmRlc2t0b3A= INCt IFFQaXhtYXA= CWJlZ2lu IHduZA== IGNvbnRpZW5l KGhlbHBlcg== Lk5vdGlmeQ== KEJvb2s= IEd1YXJhbnRlZWQ= cGxs aW9sYQ== IGZ1bmdp aXZlbnQ= IE9B 5rKh5pyJ IHdpxJljZWo= CQoJCgkKCQo= 77yaIis= IFRhbGtz LnN0YXJ0ZWQ= b2NpdGllcw== IGVzcG9ydHM= PElucHV0 IEVYQ0VQVElPTg== IGFjdHU= LmltcA== ICIvIgo= T3RoZXJ3aXNl IFBlbnNpb24= IFdhdmVz xrDGoQ== aWFyZHM= ICo8Lw== dXJnZW9u IFNDSQ== IExhdXJlbA== ZXRhZw== TmV0ZmxpeA== IFJlc3BvbnNlcw== IG5lb2xpYmVyYWw= aXNDb250YWluZWQ= PW15 IHJlcHJpbnQ= b25lc3RseQ== IGRlcGFydGluZw== UFdN ZXdoYXQ= PSI8PA== Lnlhbmc= IFRyYWRpdGlvbg== KyI6 ZGVwZW5kaW5n X1VuaXQ= IENvZGFibGU= IHdoaXNreQ== IGNvcnJlbGF0ZQ== IGRpcmV0 TGFzdGx5 CU91dHB1dA== KGlub2Rl XExvZw== IERlcGVuZGVuY2llcw== V2lsbERpc2FwcGVhcg== IFBhbmVscw== IOKUnOKUgOKUgA== IG9zdGVuc2libHk= fC0t QW5udWFs IGF1dG9sb2Fk VmFsdWVIYW5kbGluZw== LmNvaW4= ZWR1Y3Q= Wlk= IENhbnVja3M= IHNtZWFy IHJlYWxpZGFk IHt7Cg== aXZvbA== ZXRTb2NrZXRBZGRyZXNz IEtlbXA= L0ZyYW1ld29yaw== IHF1aWNrZXN0 XyIuJA== IHdpdGhob2xkaW5n IGludHJpZ3Vl IEFERFI= RGllc2U= V2Vla2x5 X19fX18= IEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbg== b2xhdGVk UnVuTG9vcA== IHBhc3PDqQ== LmZpcmViYXNlaW8= LmV1bGVyQW5nbGVz aXN0ZW5jZQ== IGZlYXJpbmc= IEVsZW1lbnRUeXBl L1Rlc3Q= IOafpeivog== IGZvbmRv IFBhcnI= IHplc3Q= IFRyYW5zZm9ybWVycw== TGluZVN0eWxl IGV0aGVybmV0 YWZmbGVz IG5hbWVkdHVwbGU= IFNjYWxhcnM= TlNVUkxTZXNzaW9u LWV4dGVuc2lvbg== KE1lc3NhZ2Vz IGF0ZW5jacOzbg== IEplcnNleXM= YmVkUGFuZQ== IFN0dW5kZW4= IHZvaXR1cmU= IOm7mOiupA== Lm9wZW5nbA== ICJ9 IFJldmVuZ2U= IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K SW5zdGFudGlhdGU= IGVucg== VmFsaWRhdGlvbkVycm9y X0FMUkVBRFk= TG90cw== b2Nl IHNjcmlt IGVtYm9keQ== 0YDQsNGC IGNvbmNlZGU= YXNzZWw= IEJSRQ== UExFQVNF CWRpZmY= 57uT5p2f LmZw YmFt TWVhbA== IE1hZG9ubmE= IHB1bmlzaGFibGU= aWZmaWVz X3VuaXg= 7JmA IEdhZ2E= InN0cnVjdA== VG9TZW5k IE9DUg== IHByYWlzaW5n Z2V0U3RvcmU= IGV1dGg= IGFycmVnbG8= IGZlcm0= ZmRm Q29vbGRvd24= IFJlY3ljbGluZw== QW5h aW5kcg== X0hQ IEdvdmVybmFuY2U= IGJhcnJhZ2U= L2Nh ICwo RsO8cg== IElTUHM= IG1lbmFjZQ== VmlyZ2luaWE= IGZhbmM= IG5vbWJyZXM= Lmluc3RydWN0aW9ucw== IGVzY2FsYXRlZA== YWdpbmE= IExldmluZQ== CWZpbmQ= X2Vy IGRlanRpbmdzYWo= c3Zw YWdvcw== KHNvbA== IExpZA== UFJJVkFURQ== IElNUExFTUVOVA== ZWZlbGxlcg== KFRhcmdldA== 4LmJ4Lit4Lih aG91c2luZw== LnNldEN1cnNvcg== IG5laG1lbg== LnJlY2VpdmVy IFR1dG9y IG1hdHRlcmVk bWRhdA== cmVndWxhdGVk IGdldEFkZHJlc3M= IE1pbnV0ZW4= IElV 0LvQsNCy IHR1cm5vdmVycw== IHN1aXRhYmlsaXR5 CWVzYw== Y2FsY3Vs X1N0cmVhbQ== X2ZpbGVuYW1lcw== LXZhcnM= Li4uLi4KCg== RGlh IHN3aW1z T3B0aW1pemVy PGJvb3N0 IFBlcm1pdA== J10pKXs= XE9wdGlvbnNSZXNvbHZlcg== 5qGI IGhlY3RhcmVz KHVz IERldmVsb3Bpbmc= X3hz IG5vdmVsaXN0 IENvbnZlbmllbmNl d2Fsa2luZw== IGNoYXJtcw== IExlYXNl CUhBTA== KFsm IHJlc3RhcnRlZA== TWFnZQ== SXB2 INGN0Lo= UkxG IGFzc2VtYmxpbmc= IEVjYw== dmluZm9z cGVkaWRv IHN5bm9wc2lz IFN0YW50b24= c3RhcnR1cA== LmdldHZhbHVl IEtpdHQ= cHJvcGVy IHByZXRyYWluZWQ= IFBFTg== LlRlcm0= IHBlcXU= ZXBoaXI= IEFsbGllcw== IG1vZGVsQW5kVmlldw== IGJ1dHRlcmZsaWVz IEtpcnN0 IENoZWNrZXI= IGN1bm5pbmc= LnNldFk= X01hc3Rlcg== SW5jcmVhc2luZw== IGh1cmRsZQ== IGZpc3Rz IFNsb3Zha2lh IG5vbWJyZXV4 IDo6Cg== dGFza0lk IGZvbGx5 PFRyZWVOb2Rl IFZvbGRlbW9ydA== IGJsaXN0ZXI= xYJl LkVudGl0eU1hbmFnZXI= LkRPV04= IEdyZWdn LWNvb3JkaW5hdGU= KHZj w6FiYg== LlRvZ2dsZQ== IExpc2Jvbg== 56I= INC/0L7Rgg== cGFyZW50Tm9kZQ== LnNldFNjYWxl X01JU1NJTkc= IG91dHJh IGt1cA== YF0= X3ZpYQ== ZWRpY3M= IEJvcmRlcnM= IGlwYWQ= IGVkdA== IENhcnRlc2lhbg== L21hYw== IGJhcmxleQ== IFNjYXJsZXQ= ICAgIAogICAgCiAgICAKICAgIAo= cXVlcnlQYXJhbXM= IHJoeXRobXM= IGdlYXJpbmc= Wlg= aHlkcmF0aW9u U1RT IHBsZW50aWZ1bA== Y29ycA== fUA= aW50ZWdy L2F0 LmRlYg== IHVuZGVuaWFibGU= IG9wZW5zc2w= LmRlYWQ= IFBpbGxvdw== IEJlYW5z LmFudA== X3Fz LWluZm9ybWF0aW9u IOuzgOyImA== JSIpLAo= INC00YDRg9Cz IFNwb25nZQ== IHNpZnQ= dGVzdGltb25pYWw= IHVubmF0dXJhbA== VUlTY3JvbGxWaWV3 dmVyZ2VuY2U= KHRleHRCb3g= LXBhZ2luYXRpb24= IERpc3F1cw== X3Byb2R1aw== YWduYXI= S2V5VXA= CQkJICAgICAgICA= 0LXQu9C1 PHNvdXJjZQ== Lmls LmF0b20= X0NvbXBvbmVudA== IHlu WydfXw== IHdlYWtlc3Q= X2RlY3J5cHQ= L21zZw== Y2Jj IHBvbGl0ZWx5 b21hdA== IGVubGlnaHRlbm1lbnQ= IGNyZWE= IGJydWs= X2FscmVhZHk= IHNvY2tmZA== dW5wYWNr b3JnZXM= IFVORVNDTw== aW5hbGl0eQ== IHNlbnRpbmVs IGFmZmx1ZW50 IHRocm93RXJyb3I= aWV0cw== QU5KSQ== IFN1ZmZvbGs= YmVybw== a2V0w7h5 RW5kcG9pbnRz ZXhlY3V0b3I= R2E= LkxB X3BvcnRmb2xpbw== dW5zY2g= ZWxhZ2U= IGdvYmllcm5v IEJpb2w= TW9kaWZpY2F0aW9u IERlY2ltYWxGb3JtYXQ= IFZvY8Oq IG1ldGhvZG9sb2dpZXM= W10u IEdW IHJlcGxpY2Fz 4oCUd2l0aA== KTspOwo= cG9zaXg= U3VjY2Vzc0xpc3RlbmVy cGhl X25vcm1hbGl6ZQ== IExhcmdlcg== IHJlcGVyY3Vzc2lvbnM= X1ZlcnQ= IGhvc3RlbA== IGluY29tcGV0ZW50 aGV2 X0RFTFRB IHB1ZWRv aW5zdGFsbGF0aW9u X2ZyYWc= KHJy IE1BVg== IExvY2FsaXphdGlvbg== KCIiKS4= IC0tLS0tLS0tLQ== DQoK IFB5VHVwbGU= IEp1bGlv CUdMdWludA== bWFya3Vw X0ZBTUlMWQ== UFJPR1JBTQ== IEZpcm13YXJl KnNpemU= V2lmaQ== IHZpc2l0YQ== IEVybA== RmluZE9iamVjdA== LlVOUkVMQVRFRA== cGh0aGFsbQ== IHBlcnNvbmFsaXpl IGNyw6lhdGlvbg== ICAgIAkg LnByZWNpc2lvbg== IHNldHRlcnM= IG5ld1NpemU= IENhdGFsYW4= CW9wdGlvbg== IHBpZWw= IGNhZ2Vz IFN0ZW0= ZHJhd2luZw== ZXhwbGFpbmVk IOaOpw== IGRyZWFkZnVs ZXJydXB0ZWQ= LmdldFZhbHVlQXQ= IGVsYXBzZWRUaW1l IGluZGVmaW5pdGU= IFRIQU5L X3N0YXJ0dXA= U1VSRQ== IGtpZG5leXM= IEN1aXNpbmU= fGFycmF5 U2VuZE1lc3NhZ2U= ZmF2 IEFlcm9zcGFjZQ== X21lYW5z IG5lYg== IE9UUA== IGNodXJu L2Zy IFJlaWdu X2NsYXNzaWZpY2F0aW9u IE1hY0RvbmFsZA== Ii4KCgoK IGNoaWxseQ== IOivt+axgg== aWhhdA== U1RB J2F1dHJlcw== IGxhc2M= Lm1peA== IGJsb3Q= IElERA== ZGF0YXRhYmxl c3BpZWw= IMOpeGl0bw== YXJ0aWM= LkF4aXM= LmFkdmFuY2U= IG1vdXNlWA== J8Og IHJlY2lldmVk IHBvc2k= IGZvdXJu IE1hZmlh IHBjYQ== YmVsb25ncw== YWJseXR5cGVk QVVUSE9SSVpFRA== LnNjYWxhYmx5dHlwZWQ= 7JyE LWRvdA== IGVtcGhhc2l6aW5n TWVtYmVyc2hpcA== KnBvdw== LXNwaW4= cnV0YQ== aGV2aWs= X0FTWU5D X2NvbXBpbGVy LkZsYWc= IGVsYm93cw== LkNSRUFURQ== TWV0cm8= LmxvZ3M= em1hbg== cG9uZQ== xJnFvA== IGludGVycw== IHdlYnM= X0hJRERFTg== CW5vdw== Q29tbXVuaWM= JHRwbA== c2NvcGVz IFppa2E= IHN0cmluZ3N0cmVhbQ== IFVuY2F0ZWdvcml6ZWQ= Rlk= L3N3YWdnZXI= UGVubg== aW1lSW50ZXJ2YWw= IGNvbnRlbmRz eGllcw== IFNhbGVzZm9yY2U= IHV0ZW5z IHVuZGlz Q3J5c3RhbA== Lm5kaW0= IGZvcm11bA== IEZhdg== 5bm/ cmlzaw== bmFk L3Rvcw== IFBFUkZPUk1BTkNF IHdyaXRlbG4= IGNvbGxv YW50aWNhbGx5 VURFTlQ= Umdi IG9mZXJl IG1lcmdlcw== ZmlkZg== IGt6 VmljdG9yaWE= IC9eXA== IGt1YmU= IEFwb3N0bGU= IGRlZmVuZHM= PD0o IE1FTU9SWQ== XElk IEFjdGl2ZUZvcm0= IE9uZVBsdXM= SHR0cFNlcnZsZXRSZXF1ZXN0 IFRlbXBEYXRh 7KCB LkFTQ0lJ 2YTYpw== S0k= IGZyYXQ= X0NJUEhFUg== LlN1cmZhY2U= IHBpdGZhbGxz LW1lZGlhdGVk eXBp LWFsaXN0 eEJD dGVhY2hlcnM= IEN5Yw== IHBzeWNoZWRlbGlj IER1bWJsZWRvcmU= IikuCgo= IFRoYXRjaGVy IFByaW5jaXBsZQ== VG9nZXRoZXI= IGZsb3Jh d2Vla3M= X2NyaXRlcmlh Ym9uZXM= LmludGVybmV0 IGJsb2NrRGlt LlNpbmdsZU9yRGVmYXVsdA== RGljZQ== IEV2ZWw= IFRMYWJlbA== IElnb3I= IENvcHA= IGluYXVndXI= L3ByaXZhdGU= IGFiZXJy bmRz O2lm LXJhbmdpbmc= YWNodHM= X21hcnNoYWxs IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18= LmVuZFRpbWU= IE1vZGVsUmVuZGVyZXI= KGZvb2Q= KCJ+ IHN1cHBs KCJcKA== U3E= VHJhbnNsYXRlZA== IENvbnRpbnVpbmc= IHBvc3Nvbm8= RklYTUU= IEFuZ2Vib3Q= aWV2ZXI= IEt5b3Rv Y2ls TmV3VXJsUGFyc2Vy LkRp IGh1bWFuZQ== RGVtYW5k IE1hcnRpYW4= d29vZHM= IEhlYWw= IFl1ZQ== IGNvdXJ0aG91c2U= IHZvbnQ= IGJvbnM= aW50ZWdyYWw= ICQoJyMn ZXRlcm1pbmF0aW9u Lm1vZGlmaWVk IHByaW5jaXBhbHM= IGFsYXJtZWQ= LmNyZWF0ZU9iamVjdA== Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo= L2NvdW50 IGVudHJlbmNoZWQ= XGE= IGludHJ1c2lvbg== IE54 CQkKCQkKCQkK Y2hlbWF0aWM= IHNsaWRlcnM= IHNlbGVjdGFibGU= X25s aWVzZQ== X2VzdGltYXRvcnM= IFN2Zw== IGRlbGV0ZVVzZXI= KG1hcHBpbmc= IOyymOumrA== IGFudGFnb25pc3Q= IGtpbmFzZQ== IHdlbGRlZA== IExlbmE= ZWRpdGg= aWFsaQ== KHBpYw== IGJyZWFjaGVk UElD IGNvYXN0ZXI= RkRB IGtyZQ== cGVyZmls IEdlbXM= X2ZlbmNl VVJMUmVxdWVzdA== 4oCZYXBw UkVGRVJFTkNF LkV4cG9ydA== IG1pbmltaXplZA== aXBlbA== aWRhdGE= KWRlYWxsb2M= ZXNjYWw= X2Z3ZA== bWVtY3B5 IExvcmk= X1JlZg== IGJhcmE= IFNlbGxlcnM= IGRldGVyaW9yYXRpb24= ZnJhY3Rpb24= KV07 L3BsYXk= wqU= LXRlc3Rz T2Zmc2V0cw== T2k= IEtsYXVz IHF1ZXJ5aW5n d2lzaA== YXBlbA== X3dvcmtpbmc= bXlNb2RhbExhYmVs IHRvRGF0ZQ== cGVybWFsaW5r IGZyZWM= b2xlY3VsZXM= IEdvb3Nl LXdpZGdldHM= dHVydGxl SW1wcm92ZWQ= IHJvYWR3YXk= a2Vocg== IGFzdHJvbm9teQ== Q29tYmluZQ== IGNpZ2Fycw== X0dBVEU= L21hbmFnZQ== IEdlcmFyZA== IFByb3RlY3Rvcg== U3Vic3lzdGVt L2ZpbmQ= L1lZWVk= IHRvdGFsaW5n 0LzQvtGC IE9tYW4= IGluZmluaXQ= LW9mZmljZQ== IGluc3RhbnRpYXRpb24= LsKn Y2V1 KGF0b20= IERyb3BvdXQ= 7YGs IGNvbmRlbW5pbmc= X2Jhc2VuYW1l XX08Lw== RGF0YUNvbnRleHQ= IFdhc2hpbmc= Lk9O IG1vbW15 KCl9Owo= IDspCgo= L2V4dA== Zm9yZWdyb3VuZENvbG9y dW5zdXBwb3J0ZWQ= IHNvbGxlbg== IGNvbWXDpw== RElTQUJMRQ== IG9uUGF1c2U= INGH0YLQvtCx0Ys= IEFpbg== R3M= CVRhc2s= aGF3aw== Ik5vdA== QUdS LmdldFRhYmxl IGRpdmVyZ2VuY2U= IG5lZ29jaQ== UmVwbGFjaW5n XX0pCg== aWxsdXNpb24= IM6U X0tFWUJPQVJE S3I= CW9y 56Gu6K6k CXByaW50bG4= IFNlYXJjaGVz IEZyZXNubw== IHZlcmRhZA== XE1pZGRsZXdhcmU= IOy1nA== fSkoKTs= dGV4dEFsaWdu aW5rZWw= LlR4dA== IG9wdGltaXphdGlvbnM= eW91bmc= IGxlYXNlZA== SlQ= IElvbmljTW9kdWxl ZXR0aW5ncw== ZXNlaGVu IGZhdm91cmFibGU= YW5leQ== IG90aGVyQnV0dG9uVGl0bGVz IFRoYW1lcw== CXVuaXQ= Q09MVU1O IGxvaQ== LHByb3Rv X1BSSQ== IHdhbmRlcmVk IHNhcGk= YmFja3dhcmQ= YXJhb2g= IEZI IEFsZw== CWFj YXJybw== 5Y6G IFNPUw== IERyZWFk VmVjdG9yWGQ= LnJtdHJlZQ== X2V4ZWN1dG9y IHByZWduYW5jaWVz IHByYWN5 IFd3dw== IEFyY2hiaXNob3A= IG1laW5lbg== RlU= LkVudg== IGVubGlnaHRlbmVk IG9yaWdpbmF0ZQ== 5Y+K IHpsaWI= X1NB IHdhc3Rlcw== ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg cHJhcw== IGhvcnJpZmllZA== IENhbGR3ZWxs dG95 X3Nob3Q= IGxlc2Jp IE1hZ25ldA== b3hpYw== U3VybmFtZQ== IHNob3dUb2FzdA== CURlc3Ryb3k= LmdldEV4dGVybmFs SUxJ IE5ldmlsbGU= dHNreQ== IG1lbGFrdWthbg== ICImIw== IGZsb3dlcmluZw== IHZldGVyaW5hcmlhbg== IGhhcm1vbmlj IENhc3NhbmRyYQ== KENyZWF0ZQ== cGVyc2U= UGVybQ== KU5TU3RyaW5n IGlzSW4= IEZsb2F0aW5nQWN0aW9uQnV0dG9u L05ldw== IPCd Y2FwYWJpbGl0eQ== IGN1Y2tvbGQ= IEJhaW4= KCl7DQoNCg== UEVBUg== IGphd3M= IGdvZGU= IGNhc3NldHRl LmZyZXF1ZW5jeQ== U0NPUkU= LmludGVudA== Olsi IOWmguaenA== 77yf4oCd L0ltYWdl IHNpZW5kbw== X2FsbG9jYXRpb24= OkI= L1JlZ2lzdGVy X2thdGVnb3Jp dW55YQ== Lmluc3RhbmNlcw== IFVOSVZFUlNJVFk= IHBsZWFzYW50bHk= IGdsYW5kcw== IFlFTExPVw== IFRoaWNr QW10 IHByeQ== IGx1aw== KHByb2JsZW0= IHByb2plY3Rpbmc= W25vdw== IGVzdG95 KCgpPT4= IHdheXBvaW50cw== IEJsaWNr LlJlcXVpcmU= TGFrZQ== IElHTk9SRQ== IFFIQm94TGF5b3V0 X3Jlc3BvbnNlcw== Lndy JmFjdGlvbg== LmNoYXJhY3RlcnM= SVc= cGFnZU51bQ== IGRpc3RyYWN0aW5n XS0n cGVlcw== b3VuY3k= IHNlZ3U= LmdldFNlbGVjdGlvbk1vZGVs SW5saW5pbmc= J2FmZg== IFByZXNlcnZl IGFjcXVhaW50YW5jZQ== IGFudXM= aW5zdGl0dXRpb24= IC8vKg== IFNpY2s= IEtvZGk= IEFWUg== IGJldHI= IEJlcm5zdGVpbg== LGN2 Y2Ni Q0FG CXNpZ25hbA== 6KiI UmVzdWx0c0NvbnRyb2xsZXI= IHNhbG9wZXM= IHBoZW5vdHlwZQ== dWJhaA== X2RhdGFzZXRz IGdyYWNpb3Vz IENsaXBib2FyZA== IGdlbmRlcnM= ZG93bmxvYWRz RXhwZXJpbWVudGFs IGJla2FubnQ= IG5pdmU= LkVk ZGlzbWlzcw== XFR3aWc= LkF2 L3Rhc2tz LnBpY2tsZQ== KkI= Y2VzdG9y Y2FwaXRhbGl6ZQ== LkdldFNlcnZpY2U= S2V5SWQ= LnBpdGNo IENvbnRyb2xsZWQ= LnNhdmVk IHphag== IENhdGh5 KENhbmNlbGxhdGlvblRva2Vu LWFuaW1hdGU= XFxc IEphc21pbmU= LkxJTkU= IGJvdGhlcnM= IGJ1ZmZhbG8= IEZPUkVJR04= IHRhY2tsZWQ= X0hFQVA= IHNlcnZpYw== Pj4s IEFjdG9ycw== LlR4 ZWJ4 X3Zpc2l0b3I= X21hcnNoYWxlZA== LG1hcA== IGhlYXRlcnM= IHVMb2NhbA== IEthcG9vcg== IG1pbnV0 LnJlYWRBcw== IC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u X1ZPTFQ= LmJ6 IGNvcnJlY3Rpbmc= U0VQ YnJpbmc= SHU= IEd1cw== QUFE aWVyYW4= ZnJhcmVk X3JvbQ== IHNjYXJjaXR5 IGFwb2xvZ2lzZQ== IHNvbGlkcw== IEZvcm1hdHRlcg== ICclJA== LXZpcw== IiwiIiw= VU5ERVI= ISEhIQoK IEVsZXZlbg== KSld IHNhdGlyZQ== XHVC IHNldmVudGVlbg== TEFOR1VBR0U= IGFkdmVyc2FyeQ== IHN0cmZ0aW1l IG5leHVz dWJpdHM= ICclIg== IFNLSVA= S0hS LmJhdA== IEplYW5z Lj8= IGltcG9zdA== LnF0eQ== Q29tcHJlc3Npb24= IHByaW5jaXBhbGVz b25pbw== IGJhcmNlbG9uYQ== IENoaWxp X21vc3Q= LnVm IGNvbnRlbnRWYWx1ZXM= IEZpc3Q= dWdhZG9y VGV4dFdyaXRlcg== QkFDS0dST1VORA== IGxpdnJv IERlc2lyZQ== bWVhc3VyZW1lbnQ= UHJvYmU= IHB1ZGRpbmc= LnNob3dFcnJvcg== IHVudGVyc3TDvHQ= 44CB44CB IMSHZQ== IHB1bml0aXZl 5q2i TGlzdEdyb3Vw LkFyZWE= IPCfmIkKCg== b29yZA== IHNjcmFwaW5n KHRpY2tldA== IFdvY2hl IGV4cGVjdGVkUmVzdWx0 IEtvc3Rlbmxvcw== Y29uZmlndXJlZA== X3N0cmVycm9y LmFkZEhhbmRsZXI= bW91c2VsZWF2ZQ== IEZlbGlwZQ== IENoaW0= X0NTUg== UENB aWZpY2HDp8Ojbw== KysKCg== eWFz IOaWueazlQ== IElETQ== IGFuaW1hdGVXaXRoRHVyYXRpb24= IHNhbWVu LnN1YnRpdGxl X0tleURvd24= IFRyZXk= IHRlbXBvcmFkYQ== IHNwZA== IFJj IE1hc3NpdmU= IGJvd3M= SG9zcGl0YWw= IGdyb290 IHBhdmluZw== IGNob3Jlcw== IEFsbHk= IGNlcnRpZmljYXRpb25z IHhib3g= c2VsZWN0QWxs R2FtZU92ZXI= IGNvcm5lcnN0b25l UmVjb3ZlcmVk IGRlZW0= VWx0cmE= IGdldExhc3Q= IGFsbWE= LnRleHRGaWVsZA== IHdhaXZlZA== Pih7Cg== IEVzdHI= aXNhYmxl IHByb3Rvbg== X2ZhY2Vib29r X1RSQUlO IGNvb3BlcmF0aW5n dW5naQ== QXJpem9uYQ== I2VjaG8= LWV4cHJlc3Npb24= Lm1pbnV0ZXM= IHByZWZpeGVk IGZpc2hlcmllcw== LmNvcnJlY3Q= IG7Dpg== KFNwcml0ZQ== TW9kcw== IFZpZGU= IGdldEJ5SWQ= IEtleW5lcw== IEVneXB0aWFucw== X0NPRA== Qmllbg== cmVvcGVu aWdoZXQ= UkVERU5USUFM IHVud2luZA== JA0K IHJhY2tldA== IGZsb2F0VmFsdWU= IFNwZWNpYWx0eQ== b2NhdGU= bW91bnRlZA== QXR0ZW1wdHM= T2ZmaWNlcnM= SGFzaFRhYmxl IGTDqXZlbG9wcGVtZW50 IGRhcA== IG10eA== TmFycmF0ZWQ= a0I= X1NUQQ== LUNsYXNz IGR1bA== IExlYWRz IHRyw6pz ZnJpZW5kbHk= IEZpbHRlcmluZw== LXByb3ZpZGVy INGD0YHQvw== IEtvbGthdGE= bWFza2Vk SURhdGE= IFt8 wqQ= IFJlZXNl IEhvbm9sdWx1 VG9PYmplY3Q= IHRocmlmdA== YXNzaQ== IGNvbmdyYXR1bGF0aW9ucw== U0tJ ZW50YXJpb3M= IEZST05U dWZpZw== aG9u CWdldGxpbmU= IGhlYXJ0eQ== Y2FsaW5n IMOpY29ub20= ICoqKi8K X0hFUkU= YCg= TWljaGlnYW4= QmVhbnM= LXJvdXRl IHByaW5j IEd1aWRhbmNl CWVtaXQ= Lk9Q dGhpYw== ZWxvcGU= IElSZXF1ZXN0 IGhhbmRsZUNsb3Nl ZGF0YUFycmF5 LkV4ZWN1dGVTY2FsYXI= RVBISVI= IENvbnZlcnNlbHk= KEZvbnQ= IG1ldHJl IFNwaWVsZXI= RWxsaXBzZQ== IFBWT0lE IERhdGFDb250ZXh0 Y29uc3RydWN0ZWQ= QU5ESU5H LS0tLS0tLS0tLS0qLwo= Qm9uam91cg== X1BIUA== cHJvZ3Jlc3NiYXI= Tm90U3VwcG9ydGVkRXhjZXB0aW9u IHZlcmRhZGU= L2NoYW5nZQ== b3Jzaw== IGFyb21hdGlj cmVzcG9ucw== cmVhbGxvYw== YXRpc2No LGV2 IFNpb3V4 dGVh IFBvZQ== 5LmI X2Ntb3M= IGFsYg== KGxy IEFwcGFyZWw= IGRlbGxv INGC0L7Rhw== IHN0cmVhbWxpbmU= d2NoYXI= QWRvYmU= LG1vZHVsZQ== IHVuaW5zdXJlZA== fSIpDQo= KCIvLypbQA== LXBoYXNl IGZldQ== X3RB em9law== IGZvbGxpYw== IHR1Zw== IGJlZmluZA== IHRhbGxlc3Q= KG10 aWVkeQ== X0xlbmd0aA== IHN0YXVuY2g= IHJlbW92ZU9iamVjdA== IGZsYWtlcw== Z3Jlc3Fs IGlua2w= IFNDU0k= IEtlZXBlcg== O2w= IEhpbmR1cw== X1BFRA== X0NPTkQ= IExhdW5kcnk= KytdPQ== X0FVWA== IGJ5xYI= IGF1bWVudG8= bWFyZ2luTGVmdA== ZXF1YWxpdHk= IEx1eg== IEVjaw== X21hcw== X2xlbnM= IHN0ZXJpbGU= Y2xpZW50ZXM= J30pCgo= IGdvb2R3aWxs IEVsbGlzb24= U3BhY2VJdGVt IHNob3dNZXNzYWdl 66Gc6re4 IGNvbnRyYXRv UG9zdGluZw== LmludGVycG9sYXRl KGZpbGw= IGJ1bGxwZW4= LmdlbmVy IGh1ZXM= IG1lbW9yYW5kdW0= dG9Qcm9taXNl IEJ5eg== KHB4 KFByb2dyYW0= UkVTU0lPTg== YmZk IHBsYW50YQ== Lm1vdXNlUG9zaXRpb24= IFNwYW0= 6LSn dGVsZWdyYW0= YWd5 IGdlZnVuZGVu LkRvbQ== IGxpbmVtYW4= LmJ0bkRlbGV0ZQ== IHNlbGVjdGl2ZWx5 65Og SUZT IEdldEhhc2hDb2Rl IHJldGly IHJlcXVpc2l0ZQ== QlRUYWc= cGxpYg== IGZpcmVmb3g= LnRyYWRl ICMk LmNvbXByZXNz IGxhZGVu IERpcmVjdG9yeUluZm8= IE1vZGVz IGtvbmU= IGRpdnVs CWhz Y3JvZnQ= IFdIWQ== eENF L0dyaWQ= X0FVRA== IFNjcmU= IGVycm9yVGhyb3du U2FkbHk= YXRpdGlz IG5lZ2xpZ2libGU= LlJlZ2lzdGVyVHlwZQ== IE1vaXN0 5rWL6K+V IEJNQw== bGVhZmxldA== eW5l cm9rZW4= IHZpbmM= dHR5 IGJldXJldHRl IEFscGluZQ== IE1jTQ== U3BvaWxlcg== ZGlzdHJpYnV0aW9u LXJheXM= IOuwlA== X3BhcmVudHM= IGNyYXRlcw== IGNvbW11dGVycw== IEFyZ2VudGluZQ== 77u/LyoK L2ZyYW1ld29yaw== IGNoYW5uZWxJZA== Z3JlZW5z LnNldFN0eWxlU2hlZXQ= IGluYWNjZXNzaWJsZQ== aXRhdGVz IHdhcm1lZA== RmFicmlj Z2V0YXR0cg== ZGlzcGxheVRleHQ= X01PTklUT1I= IHNpZGV3YWxrcw== SW50aWFsaXplZA== IGtvbWVu IGRpc2NyaW1pbmF0b3I= IE5hdmlnYXRl KERpcmVjdGlvbg== IFNwaXQ= X2FkZGl0aW9uYWw= IGh0b24= IGVzcGVyYQ== IGRlbHZl IGNvbXBhcnRpcg== IHByZWVtcHQ= cHJvY2Vzc29ycw== LWdpdA== YmVlbg== LlNVQg== IFJlZXZlcw== L2dlbg== O3RvcA== CU1QSQ== Wlc= R0VTVA== YWJpbGly IHByb2dyZXNzaXZlcw== aGFmdA== QXVm IEFjdGlvblR5cGU= bGVv IHV0YW4= SW5pY2lhbA== PlVzZXI= IH0pOwoKCgo= INio2Yc= IENoYWlucw== aXNzcGFjZQ== L3JlbQ== U1FMaXRl IGNlYXNlZmlyZQ== JGFy VFJT Oi8vew== IFNwaXJpdHM= 2Lo= KFNpemU= IG51Zw== IE9sc2Vu IGNobG9yaWRl IERpc3BsYXlOYW1l IFBlcnQ= IGdldE1heA== IEVkaXRvcnM= IFBhaXM= YXNtdXM= VmFj IFRhYmxlTmFtZQ== IG51YW5jZWQ= Rm9yTWVtYmVy IHNsZWVweQ== YWR2aXNvcg== IHN0YWxraW5n Lm1lZGlhbg== X0F0dA== IGdldE5vZGU= IEZhbmN5 5pWw6YeP LkF0dHJpYnV0ZVNldA== KGluc3RydWN0aW9u eEJE IGtvcA== QWZmZWN0ZWQ= L25hdmJhcg== IGFpbG1lbnRz IFJhbWFkYW4= IEFjY2VudA== IFBhcmFtb3VudA== IEdBTQ== 5L2N572u PSov LklOUFVU PFByb2plY3Q= TGVhc3Q= IEdlbm9tZQ== QWNjZXNzb3JUeXBl bGVmdHJpZ2h0YXJyb3c= dmVudGluZw== L3BheW1lbnQ= X1B0cg== IHRhbWU= IE1FTUJFUg== IEJpdGNvaW5z LmVwYW0= LlBsZWFzZQ== IHNjaHdhcg== Q3BwTWV0aG9kSW50aWFsaXplZA== IHVuaWNvcm4= IGJlZGV1dA== X0hT IGF1dG9nZW5lcmF0ZWQ= IExpbGx5 IEFzc2Vzcw== IEhlaWRp LnNvdXJjZXM= LnRlbGw= YXJnaW5z KCInIiw= 0LvQvtC2 IEVyb3RpYw== IGp1c3Rv IGVzYWM= Y29tYQ== IENvbG9ueQ== IHBjdA== CWVu IGVtcGV6 IERlbGV0aW5n TkVM IGVuYW0= UHJlc3NFdmVudA== IFJlc29sdmVy IFJURQ== Rng= IEluY29ycmVjdA== IHlj X3JlYWRpbmc= O2Jhc2U= IGhhc2h0YWdz IE1hcmluZXJz LlNldEZsb2F0 IHJlYXNzdXJpbmc= aXJzY2g= KHVzZXJpZA== ID09PT0= XSkpKTsK a2Y= IHRpbGVk ZWd1YXJk Q2xpZW50ZXM= 5pmC6ZaT ZHNs UmlnaHRz IFBzYWxt ZHVyaW5n Q2xlYXJDb2xvcg== dXN0YQ== PENvbW1lbnQ= IG5venpsZQ== IFBMQUNF L2hpc3Rvcnk= aWh1 aVZhcg== IGdlcm0= IHRyaW1taW5n IEh1bnRlcnM= IFJTVlA= SW50ZXJlc3RpbmdseQ== amlhbg== KSl7Cgo= LkV4cGVjdA== IFRvaWxldA== IHdhbGxwYXBlcnM= LldlYlNlcnZsZXQ= YXJwYQ== L21haW53aW5kb3c= aHE= IHV5 IGluZGlnbg== Q2hlY2tlZENoYW5nZUxpc3RlbmVy IGNhbGxlcnM= IE1vdXNlRXZlbnRBcmdz IEpTY3JvbGxQYW5l IHfFgmE= cmVwb3NpdG9yaWVz IMWbdw== IHJlZmVyZW5jaWE= IGlvdGE= IGNhcmdhcg== X29ic2VydmVy SENJ c2lsdmVy IGRldmFzdGF0aW9u LXNlbWlib2xk IEV4cGxhaW4= IEJsb2NrbHk= Llhy ZXN0dXJlUmVjb2duaXplcg== Q2FuY2VsQnV0dG9u IExvY2tl VHJpYWw= X1BMQUNF anVhbGFu IFJ1Ymlu U3RyaXBl IG1ldGFEYXRh Y29uZmlkZW5jZQ== X2JhdHRlcnk= IGlzbA== IGJvYQ== LnRhcmdldHM= bGlqa2U= IGFkb2xlc2NlbnRl YmV3 LEZhbHNl IHlPZmZzZXQ= UHJldmlvdXNseQ== PXBhdGg= X0FB iOadgw== IGJha2VrYQ== IGxlZQ== IEJsb2NraW5n L3RpdGxl IOW8gA== IFN0ZXZlbnNvbg== KW9iamVjdA== aXN0cm9z LmdldFNlcnZlcg== IHBsYW50YXRpb24= X0JveA== ICc7Jw== dGljYQ== KSldOwo= IGRpc3Bhcml0aWVz xrDhu5s= aWNyb2JpYWw= IHNwYXM= L0RE KHBvaW50ZXI= IG1pZHBvaW50 LmdldENsYXNzTmFtZQ== IFRvdGFsbHk= IGNvbmdlbg== IHTDqnRl LnhsaW0= Q09NUExFVEU= KGZp b3dhcmQ= 0LzRjw== LmFzYw== IHBhZ2luYXRl IGx1cmtpbmc= LnNpZ251cA== U1RZTEU= IHdvcnNo aHY= IGRlZmVuc2l2ZWx5 IEx1dGhlcmFu LmZ1bg== INC40L3RhNC+0YDQvA== cHNj IGFkbW9u IEVzdGltYXRlZA== IE15U3FsQ29ubmVjdGlvbg== LnN0YXR1c1N0cmlw IGFudGlnZW4= IGhlcnJhbWllbnQ= IENvbnN1bWVycw== IFlU Lm1hc2tzVG9Cb3VuZHM= Lnh0aWNrcw== OnJlcXVlc3Q= IE1vbw== LWF1 IHRvUmV0dXJu IFNhcHBoaXJl Y294 ZXhhbXBsZUlucHV0RW1haWw= IGNvcmF6 KHBpZWNl IHJlY29uc3RydWN0ZWQ= X3NpZ251cA== J10pPw== QmlsbGluZw== IENyb3dsZXk= c3Rvcm1z Zm9yY2Vy IHN1cHJlbWFjaXN0 X3doZWVs CXBj LmdldERvY3VtZW50 LnVuc3F1ZWV6ZQ== LmdyYWRl ZWxsdW5n LnNob3BwaW5n Y3VzdG9tZXJJZA== IG1lZGlkYXM= IE1vbWVudHM= ZW51b3Vz SUZJQ0FURQ== IyMjIyMjIwo= 5paH56ug 4buNYw== b3Jtc2c= YWxvbQ== LXRyYWRl CWJ0 L3N0dWRlbnQ= YnJpZw== YW5uZXNz KHJh IHJpY2VyY2E= U3BlYWtlcg== csOz Z3Rlc3Q= R2x5cGg= w7xnZW4= QEpzb24= KHN1bW1hcnk= S29t YmV0aA== L2VuZ2luZQ== Q2xpbWF0ZQ== c3VibWl0QnV0dG9u ZXZl ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cg== cGVkaWE= IHVzZXJuYW1lcw== IEpN IG1zZQ== aW5zcGVjdA== IFNuYXBkcmFnb24= IGRlZmVuc2VtYW4= IFVJVGFibGVWaWV3RGVsZWdhdGU= aW5kaG92ZW4= IEJveWxl IEFsdGE= YXJkdQ== IHdyZXN0bGVy IFN0cmFpdA== IGVncmVn X2Jhc2VsaW5l RW52aXJvbm1lbnRhbA== IGludml0 IEJUUw== IElTSUw= IGNvb3A= aG9yZXM= I0A= IGNvbXBlbA== KHNraXA= 6Ziz X0RFUFJFQ0FURUQ= aXBoZXJz ZG91YmxlVmFsdWU= IEFSUg== LlNjb3Jl IGNocm9tb3NvbWVz Y2xhdXNl IEx1aWdp IHN1bnNjcmVlbg== IGN5dG9r LnRvSlNPTlN0cmluZw== IHByb3ByZQ== cG9vbnM= bWl0dGVycw== IGtpdHRlbnM= IGNhdGhvbGlj Lmx0 wqw= X3F1aWNr IHZyYWk= IElSZWFkT25seQ== IEhpZ2dpbnM= IHNob3ZlZA== IGxpYWlzb24= X293bg== IG1vc3F1aXRvZXM= X25n LlNldEtleU5hbWU= X1JlbmRlcmVy X09zYw== LnVucmVnaXN0ZXI= TWVzc2FnZVR5cGU= LWZvdW5kZWQ= IHNvdXRoZWFzdGVybg== IGhhc2h0YWJsZQ== LmluZGVudA== IGpveWZ1bA== X3NleA== c2Fk LmRlYmlhbg== X2dhcw== IHBlcmlzaA== IGhldGU= X3NpbmdsZXRvbg== KGdyYWQ= IGt0w7NyYQ== IGR3aW5k aXR0YWw= U2VlaW5n IFJvb2tpZQ== CUxhYmVs c2hhbg== PDw8PDw8PDw= IHLDqA== aWVzZWw= YXJyZXJh Y2hyaXN0 IGN1cnZhdHVyZQ== IGVwaGVt Rm9ybWF0dGluZw== LmRpY3Rpb25hcnk= LlNldHRlcg== IEhpc3RvZ3JhbQ== IFN0dXR0Z2FydA== IHBhY2luZw== dXRhdGlvbnM= IE5TSw== IFBhbWVsYQ== IEJhaWw= IHBvbGFyaXphdGlvbg== IEfDtg== IEVsYWluZQ== IGtpY2tvZmY= IGNoYXBlbA== PXBvc3Q= IG1pZHdheQ== ZXdpcw== X01S aWVlZQ== LXRlc3Rpbmc= bWV6 Pi0t IGRvY3RyaW5lcw== IG1pbGlldQ== IFJBRElP dGFrZW4= UmVzcG9ucw== IGhhbmRzZXQ= IGNvbnRybw== IEFwcGxpZXM= 6Zif LkJpbmRpbmdTb3VyY2U= INis IGh1bWlsaQ== IE1lbGFuaWE= T3ZlcmxhcA== KFBhcmNlbA== IHdhcmVob3VzZXM= LkdldEJ5SWQ= IGZyYW5rZnVydA== IFdpdHQ= LnByb2o= IFNhc2hh IFJldmVy IGFydGljdWxhdGVk YW5jaGVz IFNlbWluYXI= IERhZ2dlcg== IEFnaWxl T1dM IEJz b2tseW4= RXRh IGFnb3N0bw== 7ZWY7Jes IG9wdGFyZw== CW9uQ2hhbmdl IFJPQUQ= R0JL IGVudGZlcg== LkF1dG9Db21wbGV0ZQ== IGhlbGZlbg== Q2hlYXA= IGFwcHJlbnRpY2U= aW90aWNz 5oqA T2ZZZWFy aW5kZXJlZA== Lk1TRw== IE1hcsOtYQ== KGlucGxhY2U= IGZpbmRl KERF LlNlcmlhbGl6ZXI= JHRpbWU= dW5uYWJsZQ== TWFpblRocmVhZA== ZGVwbG95bWVudA== IG1wZnI= cmljaFRleHRQYW5lbA== KTsKCgoKCg== IGRhbnljaA== X0JFRk9SRQ== X2FyeQ== IEJhdW0= IHR1cmJ1bGVudA== IE11bHRpbWVkaWE= IHBoeXNpY2lzdA== 5Zy6 QW5pbWF0ZQ== PUY= UGFnbw== L3R3aXR0ZXI= b3R0aWU= dWN1cnNhbA== X3BhZ2luYXRpb24= LmFyY2hpdmU= LWRvY3VtZW50 aW5pbmU= U2VsbGVy YWRyZXNz 6ZO+5o6l 0LDRgtC10LPQvtGA X2ZybQ== bm9EQg== aWdhdGVk IE9zYW1h cGV0dG8= Pnk= LVVu IGNvcHBpYQ== QWxtb3N0RXF1YWw= LmxleA== IGxldmVsZWQ= IFNDSVA= X0hPT0s= SUxvZ2dlcg== bmVhdQ== 77ye 24zZhg== aWtoYWls IHVwbG9hZGVy IENhcm9seW4= LmFkZFZhbHVl dGhpbmtpbmc= cHJpbnRTdGF0cw== IGNhbWJpb3M= cG9p IEJFRA== IHhibWM= Lu+/vQ== IHNhcmNhc3Q= IE5FQw== JGJvZHk= QWxsV2luZG93cw== IHlvdW5nc3Rlcg== IHVuZWFzeQ== KEFU IG5vc3RhbGdpYw== UFJJQ0U= IFNlaXRlbg== IG1ha2E= IGxpbXA= IGNvbnRyYXN0cw== Q29mZmVl CWdlbg== IHBlcm1z IE5lZWRsZXNz b3V2ZQ== YXJjaGluZw== X3BlbmFsdHk= cm93YWQ= b25nYW4= X2R1cg== IGlmbmRlZg== aWF1eA== IGNhcGFjaWRhZA== IE5vcnRl IC0qLQ0K aWZlcw== IE1hbnNpb24= I1JlZ2lvbg== Q2FuY2VsbGF0aW9u IG5lYXJpbmc= IGxhbmd1 ZXJlcXVpc2l0ZXM= X2V4cGVyaW1lbnQ= b25kaGVpbQ== XSwm IENvb2xpbmc= IHNhZmFyaQ== IHBpb25lZXJz IGZhcm1ob3VzZQ== IGRpc3RhbmNpYQ== IGRlc2VydGVk IE5hcnJvdw== LnNn IGVudHJhcg== LnJh IHJlZnVyYmlzaGVk IGludGVyY29ubmVjdGVk IHN1cnZpdmVz IHF1YWxpZmllcnM= X0NIQVJT LWFqYXg= IFJvcnk= IGtvbGVq L0dM X2xlZ2Fs IFRZUEVT IFZvaWNlcw== IEZlcmQ= dWplbXk= IHNjb3JlYm9hcmQ= IEJPVA== eERE IEl2YW5rYQ== IGhzdg== bm9kaXNjYXJk IFRIRVNF bW9qb20= IHRpY2tpbmc= cGVx IOa3u+WKoA== IE5pY29s CWFuZ2xl X2FsbG9jYXRlZA== IHN0cnV0 eERC RXZhbHVhdGU= IFZBUklBTlQ= IHJlZmVyZW5jZWRDb2x1bW5OYW1l bG9o IFJlcXVlc3RPcHRpb25z IGNvY28= IGJsZWFjaA== X29yZ2FuaXphdGlvbg== IENITw== SFRUUFM= X2JhcnJpZXI= LnZpc2l0TWV0aG9kSW5zbg== IHZpdGU= IC0k W2NlbGw= IGNlc3NhdGlvbg== CgoKCgoKCgoKCgo= INGB0LDQuQ== RXZhbHVhdGlvbg== IENJTQ== cXVhbGl0aWVz WG1sQXR0cmlidXRl IEVtb2pp ICIoJw== IFRVUk4= eHNk IEdJUw== IGNyZWF0ZVNlbGVjdG9y cmlwcGxl IHVubmVjZXNzYXJpbHk= IG5ld1Bvcw== IHN5bWJvbGlzbQ== b2J1dHRvbg== IHNhbW8= ICgqKCg= LnJld2FyZA== S0VSTkVM KGpTY3JvbGxQYW5l IGJ5c3RhbmQ= X2ljYWxs IGR1bmdlb25z IGNvbnN0ZWxsYXRpb24= IGVtYnJhY2Vz IEluZmFudA== QXVzdGlu LmFic3RyYWN0 IGNvbXBhZ24= IENvbmRpdGlvbmluZw== TWFpcw== VmVyaWZpZXI= IFB5cmFtaWQ= IG1MaXN0ZW5lcg== X2J1aWxkaW5n LlJlZGlz IFRvb3Ro TE9HR0VS LkFzeW5jVGFzaw== X3ByaW5jaXBhbA== ZXhhbXBsZU1vZGFsTGFiZWw= CUxvY2Fs TWFya2Vycw== IGRvbHBoaW5z LlRleHRFZGl0 J2Fs IG92ZXJzdA== LWRyaXZl IGluc29tbmlh IGFkYg== X3F1ZXVlcw== RWI= IERhbW4= aXN0cmluZ3N0cmVhbQ== CUR1ZWw= aWJibGU= IGltcmVhZA== LmZpbmlzaGVk IG1pc3JlcHJlc2VudGVk xYRzdA== aW9uYWxlcw== Ik5vdw== LlNlbGVjdFNpbmdsZU5vZGU= IHdlYWtlbmluZw== X2luc3RydWN0aW9ucw== LW9z IHN0YXJ0UG9pbnQ= IE1pbWU= IEhlbGQ= fHwo dW1taW5ncw== b2tpbm8= IHJlZmw= cmlkb3I= SW50ZWdyYXRlZA== RU9iamVjdA== cGVhdHM= Q2lyY3VsYXI= IFNvZGl1bQ== IHBvZHLDrWE= bWVkaWNpbmU= IHBhcmFub2lh L2JhY2tncm91bmQ= KGJvcmRlcg== X3Nsb3c= IHByZXNlbnRWaWV3Q29udHJvbGxlcg== IGNvbnRpbmdlbmN5 IFBhc2FkZW5h bG9vcHM= IE9j YXBwbGljYXRpb25z IG1wZw== IEFR LldpbkNvbnRyb2xz bGVkb24= IFJlcQ== IEFjcmVz aWJpcg== IGdldFdpbmRvdw== IFlhaA== IG5lZWR5 4pa6 IFRPTQ== KFsuLi4= IGZx IENhbWRlbg== b3JkaW5hdGVk CWNoaWxkcmVu dmVnZXQ= CWRpcmVjdGlvbg== PEZpZWxk X2NvcnJlY3Rpb24= KEVORA== SEVFVA== RmFsc3k= LmR5bGli X1JFUE8= IGJyaWxsaWFuY2U= b2dyw6Fm bG9k IHBvd2RlcmVk KEFydA== IE1JTEw= 0LXQtNCw0Lo= X3NpbXVsYXRpb24= IHNtYXNoaW5n IHVybFN0cmluZw== IGRyZWFkZWQ= cmllZw== L25z IEludGVycHJldGVy Om1heA== ZGVyaXY= IFBldHQ= IG1vZMOobGU= IGFtcGxpZmllZA== IFNpZ25hbHM= Lm5hdkN0cmw= 5ZY= IHNlcGFyYXRvcnM= IFNISUZU IGZpZGVsaXR5 LnNvbg== KGNh IFBMVUdJTg== IGxpZ2h0ZW4= UEJT ZmxvYXRpbmc= KGxvYWRlcg== IHBlZWxlZA== aGlj IHRhcGVk IG5vdmVtYnJl IHN0dWZmaW5n IEZpcmVhcm1z LkRyYXdhYmxl IGNvcnRpY2Fs IEdVSUNvbnRlbnQ= IFZlcm9uaWNh X3JzYQ== IGNvbW1lbW9yYXRl LlNZU1RFTQ== IGRhbXM= LmlzVHJ1ZQ== IFByZWduYW5jeQ== 7Iug IGF1ZGl0b3J5 KENlbGw= IGludmFkaW5n IGZvckVhY2g= CURyYXc= TWFyY3Vz UHJvY2Vzc2Vk IHNwcmF5aW5n IE91dGxpbmVJbnB1dEJvcmRlcg== ZXNzZXJhY3Q= IOacgA== UGc= LXF1YXJ0ZXJz IHNrbA== L3Byb3ZpZGVycw== dG9IYXZlQmVlbkNhbGxlZFRpbWVz IGNvc21vcw== IGZpbmFsaXN0cw== IHNsZWVwZXI= IE1hdGVyaWFsQXBw ZGFj IGJ1c2luZXNzbWVu xJ9lcg== Qmlhcw== ZGF0YWw= VXBFZGl0 IFRpcg== SVNUSUM= IEhlcmE= X2ludGVyc2VjdGlvbg== IExhbWE= CWFwcGVuZA== IHBvbGx1dGFudHM= IFNpa2g= IGNvbGxhYm9yYXRpb25z bnV0cml0aW9u IGhhbW0= IERpbGxvbg== X0RPVA== IGZpcnN0aGFuZA== U09BUA== PXo= LnByaXY= TWlzbWF0Y2g= LnNlbmRSZWRpcmVjdA== LmxpbmtMYWJlbA== IHdyZWFr TWFydmVs L3Ns IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw== IG1vdmFibGU= 0YPQuQ== IERyaW5raW5n YWNlYQ== IHRyb3ZhcmU= LkNTUw== IGtlcm4= dmZz 5pWw5a2X IHN0ZXNzbw== IEZPUkNF IGxpZWY= IGFjaGlldmVz IEVsaWphaA== R2V0UHJvcGVydHk= LypA IEh1bWFuaXR5 KFRoZQ== d2FybQ== PiIp IGNvbXB1dGF0aW9ucw== LnRpbnRDb2xvcg== IHVzbGVlcA== IEdQTHY= bmRhdGE= L2NsaQ== TW9o PiINCg== LmJyaWRnZQ== IGVuY3ljbG9wZWRpYQ== IEJJTg== IFN1cHBvc2U= INio2Kc= cmlldmVk cGFnZW4= aXJzZQ== UGFjaWZpYw== LmZ1bGxOYW1l IGFsbGVnZQ== aWxsdXN0cg== IOqysA== IGRldGVycmVudA== IE5hcGxlcw== aW5jbHVkZWQ= UmF0ZXM= IGhhc05leHQ= IEplcmVtaWFo IEZlcm5hbmRleg== IGdldE9yZGVy LlN1YnNjcmliZQ== UG9zcw== OikK IFdvcmtzaGVldA== YmxlbmQ= IHdpdHR5 IGNvdW50ZXJmZWl0 X2R5 L1J1bnRpbWU= IHNvZG9t L2Rv IDx8 IFJlY3J1 5aOw5piO IG1vZGVsb3M= IGJpdHJhdGU= LmNybQ== bHVz IGZpbGVUeXBl 5bCR IG1hcnJvdw== IFZlbmV6dWVsYW4= IHNjYXY= IFNUT0NL IEltcG9zc2libGU= bmF2aWdhdGlvbkJhcg== IHNpZ2h0aW5ncw== IGNlbGxGb3JSb3dBdA== IHJlY3Rz IGFpcmw= IExlc3Rlcg== IG5vZHM= QHJlZ2lzdGVy eENE cG5hbWU= IHBvdHRlcnk= IHp3YXI= IFN1bmRlcmxhbmQ= 4oCmYnV0 L2NvbnRyb2w= IGNhbGN1bHVz KGlzb2xhdGU= cGxhY2Vob2xkZXJz Kilf IH19DQo= IEtvaGFuYQ== Y29kaWxl b3Rlcmlj IHByZXBhaWQ= IGdyYW5kbWE= IHN1bHBo IEdhaW5lcw== XE1vZHVsZQ== IGNvdW5zZWxsaW5n LWdlbmVyaWM= IFR1ZXM= LkdyYWRpZW50 IFRodXJz IGVudHJh IGFkdmFuY2VtZW50cw== U1dFUA== X01BUktFUg== IGtsdWI= IG3DqWc= ZmZmZmZmZg== Il0pewo= L2NvbXBpbGVy YWRpZW5z U3RyaW5nVmFsdWU= IFNjdWxwdA== cGFuZWxz 5b2i 5Lqn5ZOB YXLDrWE= IGRlcmFpbA== IExvY2g= IHBlcHA= bXB6 IOKe S1Y= IERpZXRhcnk= QVJSSUVS IHBvbw== IFJBTkRPTQ== 6LM= IEhvbWV3b3Jr LlZhbGlkYXRpb25FcnJvcg== IE1hcnhpc20= 0YPRgtGM IGNvbWVudGFyaW8= X0JPVEg= IHBybQ== Y2FzdEhpdA== aXBsaW5h IFZvdGVycw== LmFzc2lnbm1lbnQ= bmV0dA== U0FNUExF amlz InRpdGxl LnZhbGlkYXRvcnM= ICI/Ig== dW5pZGFk X2ZpZ3VyZQ== IGFjY3J1 IFJlbWFyaw== Rm91bmRlcg== LmluaXRpYWxpemVBcHA= IFByZXNlbnRz IE1VTFRJ dmVzdGVy LnZpc2l0SW5zbg== IGdldFBhdGg= X2RpZmZlcmVudA== IGxvb3Nlbg== IGFycm9nYW5jZQ== IGp1bmk= IFphaGw= IEdDQk8= IG1vZGVyYXRvcnM= TGluZUNvbG9y IE5vZGVUeXBl X2JlbG93 b3JndA== IEhhcmxlbQ== IE9yd2VsbA== X1VOSVg= LnJlc3RhcnQ= aXRoZQ== IGdlbmll IGNsYWQ= Jzp7Jw== IHNob3djYXNlZA== IGxhcnZhZQ== TWljaGVsbGU= IExI LmdldExvZw== Q29uc3RydWN0ZWQ= IGh2YQ== X3N1YnM= IGRhYg== LmRvY3VtZW50YXRpb24= IG5pZw== IE1hbmRhcmlu 4oCUYXJl LXBpYw== X2Nvcm5lcnM= LkJvdA== XVso X18nOg0K LkVkaXRvckJ1dHRvbg== LXN5bnRheA== U2FuZGVycw== IFRhbmtz ZGVzaXJlZA== c3RhbnRpYXRlVmlld0NvbnRyb2xsZXI= R2Vhcg== IHVzZXJNb2RlbA== CWNvbnRyb2w= RGF0YUJhc2U= IERlYmF0ZQ== aW5lc2lz IHhl Lm1hZ25pdHVkZQ== IHlhbg== IEFwaUV4Y2VwdGlvbg== KHdoaWNo YXRoZXJpbmc= Q29uc2lkZXJpbmc= IEFMUEhB 568= IFJhbmtpbmdz LmxpZmU= 6rCS T0ZGU0VU LnRlbGVncmFt IGZhdmljb24= X3NzaA== IEVER0U= UmVmcw== YW5kYW4= IGFkb2xlc2NlbmNl IFNoYW5r IFN3YW1w X3BlcmM= IGNvbnRyYXJpbw== Lm55 LiIpLA== IHVudGVu X0VOU1VSRQ== L29yZGVycw== KGNm IHVudHJlYXRlZA== YXplbg== KElucHV0U3RyZWFt IGFwcHJvdmFscw== IGdlcm1hbnk= IGF2ZXJl VHJpcGxl LWJhcnM= IHNldFBhZ2U= SmFj IEZpcmVz IERBWVM= 56i/ IHNjcmF0Y2hlZA== IEJFTg== LXdpZmU= IGludGVsbGVjdHVhbHM= IHBvdWNv IHN0YWJpbGl6YXRpb24= IHBlbG9z IFNUT1JZ PGZpZWxkc2V0 IE1haWRlbg== LkNpcmNsZQ== IHNtw6U= Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLw== L2VuZA== 6Iux KG51bXB5 LnBhbmVsQ29udHJvbA== Y2hyaWZ0 Y29udGluZW50YWw= X3BlbA== RFNM PFwv IE9QUw== IE5vb24= IHVuZGlzY2xvc2Vk IFlpbg== c3Bv CWRlc2NyaWJl dG9ncm91cA== IGRpYXBlcnM= IG1IYW5kbGVy CUNsb3Nl IHJlbmRpdGlvbg== PXsoew== RW50ZXJpbmc= KERJUg== X09MRA== IFN0aW5n IFBhd24= dXNzZXM= IGdldENvZGU= SXRlbUxpc3Q= IGluZGlz ID4iLA== IGNvbmZs IGRvbWluYXRlcw== dGhlc2l6ZWQ= c3RlcmVk IGNhYw== IEdlbnVpbmU= PFBhdGg= IEhvZGc= LWZseQ== LmNpZA== IG9iamVjdElk KCMp Lm1vdmVUb05leHQ= RGlhbG9ndWU= PHBjbA== dGVhckRvd24= Jyl9fQo= 5ri4 TGl2ZXI= TWF0cml4WGQ= IGNyYXBweQ== X0RFQUQ= LnBhcnRpYWw= LkRyb3BEb3duU3R5bGU= ZnVy LkNvbGxhcHNlZA== LXRvd24= SUNJQUw= RGlyZWNjaW9u IHNldFJlc3VsdA== L3Jlc3VsdA== IFNoZWVw eXNjYWxl Y29udGk= IHJlY29ub2M= 6b4= W2Jsb2Nr Y2xheno= IGJlbmVmaXRpbmc= QUFQ LnJlcXVpcmVz LkNvb2tpZQ== IGNhcHRpdml0eQ== LlNlY3Rpb24= XSkpOw== LWNhcmV0 KHZh IHbDpGw= IEhpZ2hsYW5kcw== Tm90YQ== IEZNTA== d2ludGVy IGFnZW5kYXM= X18sX18= ZGVtYW5k IHR1dG9ycw== X1NZTQ== KENI IHVuZXF1aXY= LnRyYW5zaXRpb25z IENhbG9yaWVz IEVjb25vbWlzdA== LlBpbg== IGRlZmxlY3Q= RXhwb3NlZA== IGdlcA== LkxheW91dENvbnRyb2xJdGVt IHJhaw== ZmliZXI= IGFwb3B0 IEVudW1z aXRldXI= IG1vZGlmaWVz IHJlbHVjdGFuY2U= IHNwaWxscw== QXNjZW5kaW5n IHRlbXBlcmF0dXJh LWludGVyZmFjZQ== IGNvd29ya2Vycw== IDpc IFJvdW5kZWRSZWN0YW5nbGVCb3JkZXI= PEtleVZhbHVlUGFpcg== UGFyc2Vk IHdpdGhkcmF3aW5n KGhpc3Q= IHRoZW9yaXN0cw== LW5n IGNoaWZm 66W4 UEFJUg== IEJyZXdlcg== S2E= IEJvd2xpbmc= X3Rs J30pLg== IHByb2Jpbmc= QXJz LnJlYWxt IGVzdGF0ZXM= dmFyeQ== IEtlcw== ICIsIiw= fSwNCg0K UGxhbm5pbmc= IFJlY29u IGNvbmNsdXM= dmF1bHQ= IGluY2VudGl2 IGJpbm5lbg== IFBoaWxsaWVz LkxvYWRlcg== IEZhbGxlbg== X1R3bw== IEJpYXM= Um9sZUlk IFBhcmNlbGFibGU= IERvZGQ= ICQoIiMi 5Lq/5YWD LW1lYW4= KE91dHB1dA== QVRUUklCVVRF IHNlY3JldGl2ZQ== IFBlcmlwaGVyYWw= IEZpbGVk IOW3 X21lZGlhbg== LklD IEFycmF5QnVmZmVy KFRBQkxF IF0KCgo= IGFudGhvbG9neQ== IG9ic2NlbmU= b3BhdXNl IEVTVg== w6F2ZWlz b3NlbWl0ZQ== R3J1cG8= IE1PQ0s= IHVuYXZvaWRhYmxl IGNvdmlk aG93ZXI= Lk5ldmVy U2V0QWN0aXZl e3RleHQ= X3Byb2Jh XENvbmZpZ3VyYXRpb24= IEJyeWNl IGNvZXJjZQ== IFZhbmRlcmJpbHQ= Z2VtZW50cw== bGVnZw== IHJlYnV0 IFZJTg== 5YiG6ZKf IG9ic2Vzc2l2ZQ== L2NtZA== IGtvbW1lbnQ= IExhdWdo 64uI IHNlbHZlcw== b3JyYQ== LnJvb21z IGNvbXBsZXhpdGllcw== CW9wZXJhdG9y QWx0ZXJuYXRl IHNvcnRpZQ== Z2V0TnVt IHJlYWxpemFkbw== RG9pbmc= X0dyaWQ= IHNldFN1cHBvcnRBY3Rpb25CYXI= w6RobHQ= 5ZQ= OnsNCg== SW50ZXJlc3RlZA== IGRpbWluaXNoaW5n IExvb3Q= QWRhcHRlckZhY3Rvcnk= LXJ1bm5lcg== c2F2aW5n KHNlbQ== ZmFk RURVUkU= X2RvY3VtZW50bw== IENhbGVi IGd1aXNl IE1jR3U= KHVuaXRz IGJlemllcg== IHBhdHQ= IHBlbHZpYw== IGNvbm9zYw== YWN0aXZv IE1hbG9uZQ== LlRha2U= KHNxcnQ= c3Rhc2hvcA== LWVuZGVk IE1pZGk= IEJhbmM= IFBlcHNp X01BWQ== IHBsbA== L2luZXQ= LWVuaA== IEl0YWw= bW91cg== IHJlbHVjdGFudGx5 LnJjUGFyYW1z IHBhbHM= LnBrZw== IGZvcm1hcw== bGllw59saWNo LWJvb2tz b21hbHk= IHJlY29tbWFuZA== UExJQ0lU acSN LmNnQ29sb3I= KEJvYXJk 0LXQvdC40Lg= IExFTg== Xy1f IFVubw== IE5PVElGWQ== aGFuYQ== W3Nsb3Q= XGFkbWlu SW5JbnNwZWN0b3I= KWNvbnN0 IGZsYXR0ZXJpbmc= aWdyYW1z Y2Fj IGhlYXJ0ZmVsdA== SW5kdXN0cmlhbA== QWlycG9ydA== WEk= IHZhbGlkYXI= cmVwcmVzZW50YXRpb24= IFJlbnRhbHM= IG9taXNzaW9u IG15dGhpY2Fs IEVudHJhbmNl IHNlcmdlYW50 IHdyaXRlVG8= IE5vcndpY2g= IExpb25lbA== LWJhbA== IFp3ZQ== X3JlbnQ= IHJlbWFy IEJhaGFtYXM= IEJhbGU= OiIiLA== U3RhdGVNYW5hZ2Vy IGLDqW7DqQ== ICEqKio= IGJsb2NrZXJz LnNlbA== KExFRA== IGZzbQ== IHdpcGluZw== IHphbWFu IFJlaQ== YWd1YXk= Li4n IGxvdW5n ZXRjb2Rl IGxhbno= Y2l0YXRpb24= W2A= LWVs YXNib3VyZw== IFNPTEQ= IE9yY2hhcmQ= Q0hhbmRsZQ== IExvZnQ= LmRpdmlkZQ== LVdpdGg= L2Rlc2lnbg== LlNlcnZpY2VNb2RlbA== TWlz IHJhd0RhdGE= IGludGVyYWN0cw== IEVyb3Rpaw== IG9uUG9zdEV4ZWN1dGU= 6Jk= IHZleA== IHN0cmluZ2lmeQ== eW5lcw== X0VtYWls X09N cXVpdGU= X2VmZmVjdHM= QURY IGFkb3JuZWQ= c3Nm ZWRpdGFy IE1hZGFtZQ== IHJlZnV0ZQ== IEx1Y2E= IFdvbHZlcmluZQ== c2V4bw== QW5kcmU= PFJvdXRl IFNjZW5lcw== IHJlb3JkZXI= X214 Y3JlYXRlVGltZQ== IHN5bnQ= LG1vZGVs aWNyb3Vz IE1PVVNF 6rk= Y29tcHJlc3Npb24= IHByaW5jZXM= IHNoYW1lZnVs IHBhdQ== IFRFRA== KGNvZWZmcw== 4K+B L3VtZA== IGNhbnlvbg== L3JlbmRlcg== LnVzZWQ= IEFncmVl IEpld2Vs L2NvbW1hbmQ= QmFyY29kZQ== KGRlYWQ= d2Vic29ja2V0 dW11 R0xPU1M= IGZvcnRu IGJvYXN0ZWQ= ICJcIj4= aXN0dW5n LW1hY2hpbmU= IGluY2lkZW50YWw= IG1N LXJlYWRhYmxl LmZ4 IFBPTElU IHN5bWxpbms= KHVzaW5n eEVE ICIiIi4= LlN0ZG91dA== IOiL IGFsbWFjZW4= CXRyaWdnZXI= LXRpcA== IENPTU1JVA== LmluZ3JlZGllbnRz IG1hbmlmZXN0cw== IE9TUw== IEhhdXQ= L2xvYWRpbmc= LlR5cGVTdHJpbmc= KGNsZWFu IExJQw== IEJhcmJpZQ== T09TRQ== LuKApg== IEludml0YXRpb24= IHJlZGVlbWVk KS4nPC8= IGltZGI= IGJlbGFuZw== IHNjcmFwcGVk LW5pbA== IFByb3Vk 0LDRgdGC LlNJWkU= IHNldFZpc2libGU= IHJhaW5pbmc= IGxlbmdodA== IGFuYWs= X0NNUA== IHBhbm9yYW1pYw== IGdpbQ== c2FpZA== IHByb2dlbg== IEdCUA== 4oCg IGludmVzdGlnYXRlcw== IHByw6hz L25hdmlnYXRpb24= Lm1vdGlvbg== IExpZ2h0d2VpZ2h0 CQkgICAgICAgICAgICA= IG9udG9sb2d5 IE5JSA== KHNpbXA= LnB1bGw= IHByb3Bvc2l0aW9ucw== QFdlYlNlcnZsZXQ= IHJlZGVmaW5l IEVORVJHWQ== 7KC4 T1JJWkFUSU9O IFZlcmbDvGc= fX1dLAo= IHdlZ2Vu 4LmH Jm9hY3V0ZQ== LkJvYXJk IGN1bHBh IEdlbmV0aWNz IH0+ IGFkYW1hbnQ= 44GV44KM CWF1ZGlv 6riA IG51bWVyYWw= IHJlc3RyYWluaW5n LklOVEVSTkFM IE1vbXM= IElQQWRkcmVzcw== aW1lbnRp IGFscGhhYmV0aWNhbA== IEpGSw== IEF0dGVtcHRz ZnJhZ2U= IGRhcm0= IGJhc2VtYW4= PWxvZw== LGVycm9y IERJU0NMQUlNUw== CXRleHR1cmU= LWNvdmVyZWQ= IFBsdW0= IOWVhg== IHDDqXJp KHJldmlldw== IEZvcmNlZA== Rkg= IOy0iA== IGV5ZWJyb3c= X1JFR1M= IGNoZXN0cw== IExhcmdlc3Q= XV06Cg== VVRPUg== IGVucXVpcmllcw== IGNva2U= LWNhdGNoaW5n IEdlb2dyYXBoeQ== YXRlbA== KHByb2Q= b3JXaGVyZQ== TmluZQ== IFBpZWQ= IGFkanVzdHM= KHByb20= X21lbnVz X2V4YW0= IE5vdGlmaWNhdGlvbkNlbnRlcg== CWRz TElL X3R3aXR0ZXI= Q1JD IGV1eA== IFN0YWJsZQ== aXlvcg== IGNhcmJvbmF0ZQ== LnNhbA== TWFwcGVk aWV2aW5n KXk= eW5hbW9kYg== LkNvbXBhcmVUYWc= IHNldmVyZWQ= J2VtYWls IGZvcnNr bGV4cG9ydA== SU1JVEVS IEFwZXg= IGhtYWM= IE9kZHM= b3ZlcnJpZGVz OiI7DQo= IG9waW9pZHM= IG1lc21lcg== IEdBTA== LWxpbmVz IGFwcGx5TWlkZGxld2FyZQ== IHNlcmlh RVNJUw== IG5pbGFp IG1hbGxz IFBhb2xv IExlbnQ= LmJ1aWxkZXJz LyY= IENsaXBz IEp1cmFzc2lj 4pWd LWNvbmQ= 44O844OI fHd4 LmhvdXNl IGhlcmF1cw== IGhr IENvY28= IlwK IGFjY3JlZGl0YXRpb24= IFJhY2g= ZXJ0ZXN0 c2hvcnRjb2Rl IHZhbGlkYXRpb25z VUxTRQ== IGV4Y2VycHRz U2Vla0Jhcg== IGdldExvY2F0aW9u IGZlbmNlZA== KGdz IGx5cw== IGhhcm1z IEhvbW8= 4oCcU2hl IOKAuw== PXNlc3Npb24= X0NPTVBJTEU= TWVhbnM= IHBldGl0aW9uZXI= SU1P Il09Pg== ZGJl X2dwcw== IG1q X2V4cGlyZQ== IERBTg== IHh2 IGZ1bmNpb25lcw== IHNoYWt5 U3VnYXI= IGdldFJlc3VsdA== PFRva2Vu aHR0cENsaWVudA== Lm9uUGF1c2U= c3Rp U25ha2U= TWFwcGluZ3M= IFJlYXBlcg== IGZyZWk= IENvc21vcw== dWVycw== IEhhag== IEJsYXpl b2ppcw== Q3JMZg== LnByb2M= IG90cA== IERyYXdz CVJFRw== KCcnJw== IGdlbmVyYQ== IEF0dGFjaGVk UkVN JTsiPg== dXJuaXNoZWQ= X3Jw IHpvYWxz IGFzc29ydGVk aXRpemVk IGNhbWlubw== IGFiZHVjdGVk LnRvQmU= J10pOg== IE1vb3I= SW5jbHVkaW5n IGdyYXppbmc= c2V0U3RhdHVz YWlyb2Jp X0V4ZWN1dGU= aWZpYW50 ZWxkbw== YXV0b21hdGlj KCQp IGxlYXBz b25lZERhdGVUaW1l KGxheWVycw== LXByb2R1Y2Vk IFdvcmtib29r IGVub3Jtb3VzbHk= IGRlcHJlc3NpdmU= IGFhYQ== RW1iZWRkZWQ= QlVN IGVsbGVz IGJvYXJkZWQ= xZtteQ== IG1hc2lo X2dlbmVz CVRleHR1cmU= aXN0YXI= IEF1Z3VzdGE= IEFwcE1ldGhvZEJlYXQ= IGtvZGU= YWJleg== X3BpZWNlcw== Q3Vycg== IGxpYmVyYWxpc20= RGljaw== QWxl IHF1YWxl fSc7Cg== LmFuc3dlcnM= IEpBTg== IFBVUkU= IGNhbm9l IFNBTUU= UXVhbGlmaWVy IGRibmFtZQ== IElubm9j CVRSQUNF aXZyZQ== IG1lY2g= YXNlbA== Iixb IGFzaWE= IENhbnRlcmJ1cnk= LkRhdGFCaW5kaW5ncw== a2Fo KCkpKSk= IGR6aWV3 cmV0ZQ== IHNjcmVlbmluZ3M= Lk1PVVNF IGJ1c2llc3Q= CXJlbmRlcmVy IHRlc3RpbW9uaWFscw== IGFzcGlyZQ== Zm9ydHVuZQ== IE1TQw== IGRhbXBpbmc= XCIsCg== V2Vs V2lr IOyXrA== KHRpZA== IENhbm5lcw== b2NvcA== PiIrCg== ZmFjZXQ= IHNsYXNoZWQ= IExpYmVyaWE= U21vb3Ro X2NoZQ== TGFib3Vy IGVtaW5lbnQ= Olg= XEJhY2tlbmQ= ICsrKQo= IHRlYW13b3Jr X2FnZw== LlNlcnZl IFNORA== IFBJQ0s= IHdpcGVz L1R5cG9ncmFwaHk= IEFQQQ== aWtraQ== IGNvZGVy Z2FiZW4= IHVua25vdw== LkRlcGFydG1lbnQ= 4Lix4Lia IHBsYXllck5hbWU= KmU= PEJsb2Nr X3VwZA== IEdpYmJz bGVhc2luZw== IENvbG9tYmlhbg== KFBIUA== ICoqKiEK IOydvA== IEN1cnRhaW4= L2F5 2YTZiQ== c3BvcnRz IGRlc2Vh aXLDoQ== IHVuY29uZGl0aW9uYWw= IHRocm9t IENIUklTVA== IEhPUg== b3Njb3BpYw== IHlhxZ8= IG5vc3Rybw== Li4uIik7DQo= IHNsdXI= IGhhdHRlbg== IHBlc3RpY2lkZQ== IGZyZWV3YXk= IENvaA== IHdhbm5vbmNl IG1laWRlbg== X3N1YnN0cg== X0NTUw== IFN5bWJvbHM= 4Li34Lit REVU IE1hZGRlbg== IHJlcXVlc3Rlcg== LnZpcnR1YWw= IHd4RGVmYXVsdA== IGF1dG9tw6F0aWNhbWVudGU= YnJpZHM= aVQ= LlByaW9yaXR5 Jyk7PC8= YnVuZw== RGVhZGxpbmU= Q29uY3JldGU= IG5leHRQYWdl IOuwmw== IFN0b2tl a29w INCx0L7Qu9GM IFByb2R1aw== LW1ha2Vy IFByb2plY3RpbGU= YW5jZWxsYWJsZQ== IFRIRUlS VG9SZW1vdmU= RU1V Y29tbWVyY2lhbA== QVZFRA== IHdlYXZpbmc= IGJpb21l QFNldHRlcg== cW1s IGJyb2FkZW4= INGB0L8= SVNS IGRlYWN0aXZhdGVk IHNlbGVjdGVkSW5kZXg= cmlvdXM= ZWxwcw== LkVzY2FwZQ== IHBvbGxlZA== cXVpYQ== X3JlZmw= X21pbWU= PEF1ZGlvU291cmNl KFRyYW5zZm9ybQ== ZXZlbm9kZA== CXJhbmRvbQ== bG9jcw== IGRldXQ= cmVwbGFjZW1lbnQ= IGV4YW1pbmVy SGFzS2V5 IOumrOyKpO2KuA== IENsb3Ro IOCkqg== IFJlZ2lzdHJv IEVzdGhlcg== IFNoYXJlZE1vZHVsZQ== LmJvcnJvdw== IG9zY2lsbGF0b3I= IGZvb2xz uqs= IGJvYXN0aW5n X3B1bHNl c2hhcmluZw== IHBpc3RvbHM= X1BMQU4= IHNlcHRlbWJlcg== IG11c3Rlcg== IG1hcmNow6k= Q0hFTVk= IHN1aQ== IGdlYnJ1aWs= Lj0n ZXJyYXRlZA== IExpYQ== IGhhdW50 IEN1c2g= cm91dGVQcm92aWRlcg== Inw= ZW5kcGhw Il1dCg== IGF2YQ== 77yBIiw= 7Ke4 IGNvbGE= X1NQRUxM IGFsw6lt KExhbmd1YWdl KGR1bW15 IGJ1bmtlcg== IEVtcHJlc2E= IGNyZWF0ZUNvbnRleHQ= Om1pbg== IEJPT1Q= IE1lcmVkaXRo Wmg= IERvd25pbmc= d2pnbA== LmRj c2RhbGU= IGluY29udmVuaWVudA== IHJlYWRtZQ== TmF2aWdhdGlvblZpZXc= Q09ORElUSU9O LmRlcA== IHLDqXVzcw== IG9wY2nDs24= IEFjY291bnRhYmlsaXR5 Lk1hcg== LWd1aWQ= RURHRQ== RXZlbnRNYW5hZ2Vy IGRpc2NpcGxl dWNrbGVz fX0+ aW50ZXJlc3RlZA== RmlsdGVyV2hlcmU= IHB1c3M= LXByb3h5 X3N0YXR1c2Vz IFsj dW5mb2xk IFJvbm5pZQ== JiYh IGFjZXNzbw== dW9z X3lpZWxk KGNhbGVuZGFy KHNvdW5k IGRhdGFBcnJheQ== IFlhdGVz IHByb2Nlc3Npb24= RUZBVUxU IEdIQw== YW11cmE= IHN0cmljdGVy LkJPVFRPTQ== IGhhYml0dWFs eEFG QVZJTkc= IHNldHVwcw== ID17Cg== Kioo IHNvaw== IHJldGluYQ== IEZpcmVwbGFjZQ== aW52ZXJ0 IEZvcnJlc3Q= PGRhdGE= XEFjdGlvbg== T1VHSA== IGNhcmVsZXNz LmdldEFjdGl2ZQ== ZXNlcw== IHpkasSZ KSkqKA== U0VN IFBhbmlj VG91Y2hlcw== IHByZWNv L2FjY291bnRz 5L6b UG9zdGFsQ29kZXM= LXBsdWdpbnM= PG1lc3NhZ2U= KHBvd2Vy IHBlcmN1c3Npb24= IGPDqWw= 5o6o IGRhbmNlZA== X1NDQU5DT0RF IFNpdHRpbmc= IExva2k= U2hhcmluZw== LkRpcg== IHNjaHdlcg== X0xB Lk1lbnVTdHJpcA== X3plcm9z IGZpeGF0aW9u IEFtaXQ= IGNvbXBsaWVk LnNwYWNlQmV0d2Vlbg== IGFycmVzdGluZw== IFN1Zw== IHBlcmZvcg== IGtvbXBsZQ== IEVzc2VuY2U= IHBsZWlu c2ltdWxhdGlvbg== IGNyZWF0ZWRCeQ== IEV4cGVkaXRpb24= 77yBCgoKCg== dHJhaW5lcg== Il09JA== IHN1Y3Rpb24= bVBpZA== bm90aW4= IHByZWNpb3M= IEFzc3VyYW5jZQ== IExhbA== LiIm IG1pbkxlbmd0aA== IE1pbmVyYWxz dHJhamVjdG9yeQ== U0FGRQ== IG51YW5jZXM= KGV4dHJh X3ZpZGVvcw== W109ew== IGhvbmV5bW9vbg== X3ByZXA= CQkJCQkJCQkJCSA= IHB1cnBvcw== IGFuemVpZ2Vu LnN0cnV0cw== IHBhZ2Fy LkF1dG9TaXplTW9kZQ== IHdlbmlnZXI= IHBhZ2Fu IGFjaWRpYw== Z01hcHM= IGJld2FyZQ== X2lwYw== IG1lZHM= IGRpc2XDsW8= KSkpCgoK Q2h1cmNo IG51cnR1cmluZw== X21waQ== IHJlc3VsdGFudA== IFBpc3RvbA== c1BpZA== TXNw TW9tZW50 IFVQTE9BRA== TmFubw== YmxpY2s= IG1lc3VyZQ== IExheWVycw== X3RyYWo= IGJ1dHRvbldpdGhUeXBl CWNvbW1vbg== IE15Q2xhc3M= 2KjYsQ== eG9vcHM= X0hlaWdodA== X1dBUk5JTkdT U2V0VGV4dA== IEhpc3Bhbmljcw== TnVsbFBvaW50ZXJFeGNlcHRpb24= LmZhY3Rvcg== IHZpZWxsZWljaHQ= IHNob3V0cw== dHJ1c3RlZA== IG5ld1Jvdw== IEZyYW7Dpw== W2pq 4oCUd2hv IFFEaXI= X2FkdmFuY2Vk KEhhdmVPY2N1cnJlZA== IHVucGw= L3Jvcw== LmVhc3k= IEJBTEw= 550= L2xncGw= IHN1YmNvbnNjaW91cw== ICctJzsK ICcpOw== INGW IHNjYW50 X3Nlc3M= X3BsYXlpbmc= X0lTTw== IHNldFNpemU= X2RlY2s= X0xBUkdF IE1leQ== Q2hpY2tlbg== aWZmaW4= ZGlzcG9zZQ== SEVTVA== TGF1Z2g= IExDUw== IG9uc2l0ZQ== LmlzTG9nZ2VkSW4= IGlycml0YXRlZA== IGJyaWdhZGU= IGRlcXVldWU= Y2xhc3NOYW1lcw== IE3DoXM= IEF0YXJp KElPRXhjZXB0aW9u UmFjaGVs LXNhbXBsZQ== IGVpZ2VudGxpY2g= SUZERUY= Lm5laWdoYm9ycw== IHNlcGVyYXRl IExpc3Rpbmdz LmZm KGltcG9ydA== TW9kZWxBdHRyaWJ1dGU= IHNwZW5kZXI= IG1vdGlmcw== c3N1ZQ== IEFwcHJlbnRpY2U= LWNhdA== clBpZA== Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8K b2N6 aW5pb25z L2NvbnRhaW5lcg== IHBsYWdpYXJpc20= V3JpdGFibGVEYXRhYmFzZQ== Ly4KCg== IEZldmVy LVZlcnNpb24= YWNpamE= IHdlaQ== LWluZw== IHRlbWFz IHN1cmdlZA== IGNyaWE= IGFyZA== Yml0Y29pbg== LnRpbWV6b25l IG9iamVjdE1hcHBlcg== IAogICAgICAgICAgICAK IHlsaW0= IElDVQ== IERlcHJlY2F0ZWQ= KSgpOwo= QVJHRVI= dW5nYWxvdw== VGVzdERhdGE= KHB0cw== RklMRU5BTUU= dXBwbHk= IHBhY2llbnRlcw== LGxlZnQ= IFdyaXRlTGluZQ== IHBhcmNlbHM= X2ZvbGRlcnM= IERpcms= LmFzc2VydElzSW5zdGFuY2U= TWND X1ZhcmlhYmxl KGFh IFBvcms= LlB1Ymxpc2g= LWdheQ== IFBldHJh IENvbm5lY3Rpbmc= VGFiQ29udHJvbA== aXZlcmluZw== KFNjcmVlbg== IGNoaWxsZWQ= IGFpbw== VG91Y2hFdmVudA== IGFjY2Vzc2lvbg== IExvaXM= L21vbWVudA== IGFudsOkbmQ= IHN1aWNpZGVz KGhlbHA= YW5kZXJz IFZJRA== QmVp ZXZlbnRv IEFuZ3Vz VmVycw== IEJvcmRlYXV4 LnN0cmVhbWluZw== IHJvdWdl IGNyYWZ0c21hbnNoaXA= b3NzaWw= X0ZBTEw= QG1lZGlh aWxlYWtz RGF0YVNlcnZpY2U= IFRyaXBBZHZpc29y IE1hYXI= Q3Vyc28= UG9zdGFsQ29kZXNOTA== KCk7Kys= JFBvc3RhbENvZGVzTkw= IG9jb3I= IHRhaW50ZWQ= IGxlbQ== LW91dHM= IHh4eHg= IGlycml0YXRpbmc= b3hpZA== b2ludGVk IFRvcm8= X292 LmJpcnRo KyU= IENoYXJhY3RlcmlzdGljcw== IEJldHRpbmc= IG9mZmVuZA== IFBIWVM= IElDTVA= eERD IENk LmdldE1hcA== YXRjaGV0 LmN1cnJlbnRJbmRleA== RVJBTA== IGthcHBh aWRlbmNlcw== UGFyZW4= IFNlcmdlaQ== LWZpbg== J10sWyc= w6FtYXJh R3Jvd2luZw== R2xhc3M= CW1ldGE= dmVyYmF0aW0= L0dQTA== IEthaA== KHN2Zw== Y2xpc3Q= IEJsb3dqb2I= b2NjYW4= LmFib3J0 b2RlbGlzdA== IGRpZmbDqXJlbnRz X09QVFM= PXJlcQ== IGludG94 IGRpYWdvbg== IFsoIg== JlI= IG9iamVjdGl2ZWx5 IGJsaW5raW5n IExvdmVz cmluZ2U= Kik7Cgo= IEJvbmRz IExvdmVk ZWx0cw== IGRpc3BhcmF0ZQ== IEVucmlxdWU= IldpdGg= cmVtaXVt YWphcmFu dHJ5aW5n LVJ1c3NpYW4= bmV3SW5zdGFuY2U= LlRSQU4= IG9yYW5nZXM= L2xvY2FsZQ== IERJU1A= CW5z IFNodXR0ZXJzdG9jaw== IENMT0NL KHJhZA== IGFzc3VyYW5jZXM= IHJhc3A= VWJlcmdyYXBo RW1pbHk= IGludmVudGlvbnM= cmlvdA== IHRvc3Npbmc= IG1ha2VvdmVy IHVuaXRPZldvcms= YnV0dG9uU2hhcGU= 5Yid5aeL5YyW IHBhcnRlZA== 4paR LnNpZ21vaWQ= IHJlZGlyZWN0aW9u IGRpc3R1cmJhbmNlcw== IGludGltaWRhdGVk CUNyZWF0ZWQ= YWdldA== IGNvcnJlcw== IE5FRw== aXRvbmU= L2Zyb250 IFZlcnNl Z2FtYmFy IHByZW1pZXJlZA== IElNTw== IEdvYmllcm5v IGlmcw== YXlhaA== LkNPTA== IGZyZWRlcg== IHN1Ym1lcmdlZA== IE5lcm8= bW9kaWZpYWJsZQ== L0Zvb3Rlcg== LWNlbnRyYWw= IGdvdXZlcg== IFRyaWVk IGRpenp5 UXVlcnlQYXJhbQ== Ij4nKwo= X3ByaW1pdGl2ZQ== 56iO LmdwdQ== IHZveg== ZW56ZQ== IFdpbGRlcm5lc3M= IHByb2JhYmls L3JlYw== IGFjY2Vz IFRydXN0ZWVz R2I= IHBhZGRpbmdIb3Jpem9udGFs U2hpZWxk IE5hbWVu dWRkbGVk IFByaW9yaXR5UXVldWU= UG9vcg== IFNBRg== LS1bWw== IGNobG9yaW5l IHZlcmJhbGx5 IGFpcmU= PjsNCg== aWxoYQ== W2NvbG9y YW5kYWxvbmU= LmFkZFJvdw== IFNvaw== IENvbm9y IG1lam9yYXI= J2lscw== ZGV0YWxsZQ== ICIpLAo= JUA= Lmxhenk= Lmp1bXA= b3N0ZQ== K0Y= IGluZnVyaQ== IHNvbnJh aXRlbWlk JGxvZw== IG11cmRlcm91cw== TEVD CW5pbA== IE3DpHI= KHBn aWxlbw== QXNjaWk= IExvY2toZWVk IFRoZW8= QmVsbA== YWNpb25hbGVz LmNyZWF0ZU5ldw== IOW+ LWZvb3RiYWxs IGVjb21tZXJjZQ== CVNpbXBsZQ== Y2x5 LklubmVyRXhjZXB0aW9u IHBlc29z IHRyb3Bl IEFSR1M= TWlhbWk= IFBhbG8= IFN1emFubmU= X21hcHBpbmdz I3tA IE9jY3VwYXRpb25hbA== X2J1Y2tldHM= Z29hbHM= X1J1bg== LXByZXBlbmQ= c3Nz bWFyc2hhbGw= IGVxdWl2YWxlbmNl IFdlbGNo KE9wQ29kZXM= CWNsb2Nr IE1lZGluYQ== VEVSUw== b3Jhbmc= VGhvdWdodA== IG9hdHM= X1RFWA== UklDUw== IGluZGlmZmVyZW5jZQ== IGFsbG90 LlVzZVRleHQ= IFRyaWNrcw== YXdl LkZJTEw= LXBocA== LnZvaWNl IFBhdGhmaW5kZXI= X1RBR1M= IFRyaXQ= 5oyJ6ZKu YmJj IGFkZGl0aXZlcw== IHNjaGxl IEtleWJvYXJkSW50ZXJydXB0 IHVzZVBhcmFtcw== IEJ1Y2hhbmFu cmlhbmdsZQ== IG11bHRpcGx5aW5n IHNlbGJlcg== IFllcA== Q2hhaXI= LXJlcG9ydGVk X1NESw== LG5v IEZhbGxpbmc= 5rk= ICgpLAo= cGRi IEJvcm91Z2g= LnJlbW92ZUZyb20= IG92ZXJzaGFkb3c= aWdhaWw= IHR1bmc= IG1tYw== W3BhcmVudA== RXh0ZXJu YXZpb2xldA== JykiCg== IGNvdW50ZXJ0b3Bz IHVidW50dQ== 5rc= IM6T IHVucHVibGlzaGVk IEluZGllcw== VU5FVA== IG9mZXJ0YQ== IGRhbWVz IGFzdGVyb2lkcw== IG5vdmVtYmVy Y29udHJhc3Q= LkFkZE1vZGVsRXJyb3I= K1NhbnM= IHNjcmFtYmxpbmc= dGV4dFZpZXc= L2NyeXB0bw== VXNlUHJvZ3JhbQ== QHVwZGF0ZQ== RGVzZGU= U0FU IGRpc3BsZQ== YW5uw6ll XERlcGVuZGVuY3lJbmplY3Rpb24= IGl0bQ== IOe8 IGV0aG9z QVBP IEdhcmPDrWE= aWRpcw== IFN0ZWFr cmliYQ== X3ZlcmlmaWNhdGlvbg== IEZL IEVpbnNhdHo= IHBlcnNvbmFsaXNlZA== LW1vdGlvbg== IE1lbGFuaWU= w7Zo X1ZD IGRyaWZ0aW5n LmNvbnN0cnVjdA== IO2UhA== IGJhdGNoaW5n Li4vLi4vLi4vLi4v RVJQ X3V0Yw== IG11bHRpdA== IG1yYg== Y2Nhaw== Y2h1bmtz IHRyYW5zbHVjZW50 IHBheW9mZg== 4oCUYW4= IHNpbGw= IG9ybmFtZW50cw== Z3Vh VUJZ KHN0ZXBz IEJPUkRFUg== IFNPVU5E YGAK ZW5hcmllcw== IEJpdHRl IGdseXBocw== IG92ZXJydW4= IGJsb2NrSWR4 IE1TVA== IGdlbm9tZXM= dGVuc29yZmxvdw== RGlyZWN0b3J5TmFtZQ== X2xocw== IGZpbnQ= YWRkdG9ncm91cA== IHN0ZWFkZmFzdA== IGNsb3Zlcw== IFNvdmlldHM= IElTQQ== wqNv dXJnZXJ5 c292 INCy0YvQstC+0LQ= IHB1ZA== LXdhdGNo IEhvc3BpdGFscw== fXdoaWxl IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj 4buj IGFrdHVhbA== IGtpbG9ncmFtcw== IEZBQw== b3BoeXM= cHJz KkA= eWI= c2VjdXJlZA== IGFsZ8O6bg== IOCkuQ== cGhhbnM= QWRkb24= IGNlbnRyYWxseQ== X1NVSVRF SW50ZXJlc3Rpbmc= dWx0aW1v QWdhaW5zdA== IEV6cmE= IEhlYg== dWlkYQ== IHNreXM= T0xWRQ== QmVuZWZpdHM= IHByaXNl Lio/KQ== LmlzRGVmaW5lZA== IHN0YW5kb2Zm IHBsYW5v LmxhdGVzdA== ICgkLg== IEdvdWxk IGNhdXRpb25lZA== J10o IG51aXQ= IEhDSQ== Zm9vdGJhbGw= IHdpbGxlbg== UHJvY2VlZA== IGludGVuZGluZw== dGlm IHNwb25zb3Jpbmc= b2hhbmE= RG9z TW9ybmluZw== ICEiKTsK LnNoZWxs IFJFTEFURUQ= IHBpbXA= L2NvdXJzZQ== IHJhbWlmaWNhdGlvbnM= IHBpeG1hcA== IHBvd2VybGVzcw== IGRvdWNoZQ== Y3JpbWU= Y29udHJpYnV0b3Jz KHByb3RvY29s IGdldFBvc2l0aW9u U0VUVElOR1M= IHZpZXQ= aXNzZXM= V2l0aEVtYWlsQW5kUGFzc3dvcmQ= UmV0dXJuVHlwZQ== QXBwZQ== IElLRQ== LkNvb2tpZXM= Lm1lZGl1bQ== LmdldEpTT05BcnJheQ== X0Zvcg== L3Rpbnlvcw== IFRhYmxlQ2VsbA== IFJFUExBQ0U= Lk5ldHdvcmtpbmc= IGJvd2Vk CW1k PSJ7ISE= IGhvbmRh IEV1cg== IGluZG9uZXNpYQ== IGhlbmQ= LnZpZXdtb2RlbA== CWN0cmw= IFRhYmxldHM= LW9yYW5nZQ== ZXJyYXM= X2dyYXBoaWNz e3M= IFRpdGxlcw== IGRpYWdub3Nlcw== b3VwbGU= X0RvdWJsZQ== W3Jlc3VsdA== IGppdHRlcg== X05VTUVSSUM= PmY= X01Z 0LjRgdGC0LXQvA== c3RvcmVJZA== IHJlbGlucXU= ZW9z IHdpZGVuaW5n IHRhY29z LllFUw== XSsn IEluZGV4ZWQ= IHByb2Zlc3Npb25uZWw= IFN0cmFw QnVmZmVyRGF0YQ== ZWVh ZXJpbg== QU5DRVM= X1RYVA== IHt9Lg== KGNvbnRyYWN0 eXc= IGJsaW5kbmVzcw== Q0hBTg== CWdsQ29sb3I= IGN1cnJlbnRQb3NpdGlvbg== IENhdWNhc2lhbg== JGltZw== I2Fh IHNlYW4= TWVzcw== Kj0qPQ== IGNhcGFjaXRvcg== YWxmYQ== LlJlbW92ZUFsbA== IFdQQVJBTQ== dWxhZG8= bmljb3M= IG9yZ3k= R1g= X0RFVklDRVM= b3Vya2U= IGtC IHNvcGhpc3RpY2F0aW9u X2F1ZGl0 L0lQ IEx5ZnQ= L1N0 CWNhbmNlbA== IG92YXJpYW4= bWFyaW5l a8SZ IFlN IE1pbG8= IE1hdFRhYmxl IEFiYnk= bnpl IEx1ZHdpZw== X2FybW9y IHNjYWZmb2xk 4buXaQ== YXV0aG9yaXR5 4bqleQ== LmdldFByb2R1Y3Q= IE9yYml0 X1BhcmFtZXRlcg== LmRhdGVGb3JtYXQ= L3RhZ3M= LlNwZWVk KExpbmU= IHBvbGlzaGluZw== IGtvbWI= IHJ0cmlt J2ljb24= cmllcmU= IFByZWZlcg== c3RydG9sb3dlcg== UmVncw== Q0JE LT4K IHBhcmFzaXRl ZW5kc1dpdGg= IENvYnJh OnRlc3Q= IE51Z2dldHM= xaF0 Q29yZUFwcGxpY2F0aW9u L2JpbmQ= IE1jSW50 aXR1bmVz Wy0t IFN1cnByaXNl X0lORw== IEZhc3Rlcg== 0J3QsA== OkU= IGRpbnQ= bmdl LiInLCciLiQ= IGFkamVjdGl2ZQ== LmJj Y29uc3VtZQ== Qk9S KGFuY2hvcg== IGVzdGVlbQ== IGJyZWFrdXA= ZGVjYXk= ICQKCg== RWR3YXJk QVNJ IGF0dGFjaGVz X0RJU0s= IFdpbG1pbmd0b24= IEt1bA== IFtbXQ== IERlcGFydG1lbnRz IHJldHVyblR5cGU= IFVOSVRFRA== b2JqZWN0aXZl IGdpcmxmcmllbmRz X0dV QHN0b3Jl LU91dA== Lm1vdmVz KHN0YXJ0RGF0ZQ== CUpCdXR0b24= IFBhY2U= IEJlYXRz IGxpY3o= IGV0aGVyZXVt IGNoZWVyZWQ= IGF1Y3Vu UmVnYXJkaW5n IG1pZ3JhdGluZw== IGZ1dGlsZQ== IFRhY29tYQ== X0NoYXJhY3Rlcg== IHZn IENvcGE= 2Ks= IG5hbA== IGxhbmRmaWxs IHRhbWls IHBlcnBldHJhdG9y IFBhY2Vycw== LmdldE9yZGVy fA0K R2V0T2JqZWN0 IGJsYQ== IEhhcmFt cG9ydGxldA== IGxva2Fs TWVyY2hhbnQ= UGFzc3dvcmRz b25lbnQ= IGFydGVyaWVz IEludGVsbGk= XFN5c3RlbQ== PWxvY2FsaG9zdA== LmF2aQ== IFZlbmQ= KHRibA== Q29ycmVjdGlvbg== IHV0ZXJ1cw== IHNhbGl2YQ== Kys7DQoNCg== KCcqJyw= IHNuYXRjaA== IFNUUkVFVA== KVs6 54Sh44GX44E= U2VudGVuY2U= KCkuJy8= OnJlbGF0aXZl leOCkw== X3VzZXJpZA== b2xpbmc= IENsYXNo CXNldHVw KG1p IGppdA== IFNjYW5kaW5hdmlhbg== IFBob25lcw== Iic7Cg== IHR1bXVsdA== IEludGw= IFNpbm4= KG5ld3M= IGRicw== IFJlbWFya3M= S2l0Y2hlbg== IGFkbWlyYWJsZQ== X2Rhc2g= IERPTUFJTg== YWRkTGlzdGVuZXI= Il0uKA== CU1ldGhvZA== bWFya3Q= LGV4cG9ydHM= IG91dG51bWJlcg== X0FTQw== cHJlbWl1bQ== KU5VTEw= IEJvd21hbg== LnNldE9uSXRlbUNsaWNrTGlzdGVuZXI= IFJlZ2V4T3B0aW9ucw== S2Vs L21hdA== 44GT44KM IHdlYXJlcg== aW5pcw== W2RpbQ== IE51dHp1bmc= aXNidXJ5 5Yid IHJvb3RSZWR1Y2Vy ZXlK SW5jbHVkZWQ= LUxlYWd1ZQ== YW5heA== KGluZmxhdGVy IEZpZWxkVHlwZQ== IHNob3Zl IGZ1bGxmaWxl RGF0YU1hbmFnZXI= LmdldExlZnQ= IEZz ZHJvcG91dA== IOuyiA== IG1hbmnDqHJl IGZsYW1pbmc= IGNvbXBsZXRhbWVudGU= 4oCw fC4= RW5lbWllcw== b3NjaQ== IFNBWQ== IG1hcnk= KFJ1bnRpbWVPYmplY3Q= IH4+ IFNpbXBzb25z J10uJA== X21lbWJlcnNoaXA= KSI6 IGxheW91dE1hbmFnZXI= IFJvY2tlZmVsbGVy ICd8Jw== SVBI RE9O YWNodGU= UGVhY2U= aHRhcg== QCIK IHRyZWFkbWlsbA== IHNwdXJyZWQ= IEtW bWlkZA== IGZsb3dlZA== w6Nlc3Rl R2VuZXNpcw== PT0+ IFZlbnR1cmE= X2VsaW0= INC40LzRjw== IHNvbmd3cml0ZXI= Y3JlYXRlRm9ybQ== SUdITA== IG1vbGRlZA== IHJldmVyZWQ= VW5kZXJUZXN0 aW1ibGVkb24= X1Nlc3Npb24= IG1hc2NvdA== IGFsZg== 66mU PldlbGNvbWU= IGtub2Nrcw== IEVxdWF0aW9u LnRvdWNoZXM= X0xhc3Q= IHVwYmVhdA== YmlnaW50 IGVudmlz L2Jhbm5lcg== 44GC44KK44GM IERvd25z X1NG IHJ1bkFwcA== IHF1ZXN0aQ== VHJhZGl0aW9uYWw= X3dhaXRpbmc= cGlja3Vw KCdALw== CXNl IEtlcm4= IERlbGljaW91cw== IHNhdHVybg== IEpTT05FeGNlcHRpb24= 44KN SlI= fSgpKTsK IFNvbWFsaQ== dWFp aW1hZ2Vt YW5kRmlsdGVyV2hlcmU= w6hsZXM= aW5ib3g= IHlhcMSx IG1laXN0ZW4= YF0o U1dH LGNsYXNz 4LWN4LQ= dGFpZW50 IEZyYW7Dp29pcw== QXV0aFRva2Vu IHB1ZXN0bw== IGps IGdhdGVk IERlYXRocw== IFNpZGQ= IHByZXZhaWxlZA== LcOqdHJl KGFsYnVt IHFpbnQ= bWFyY2E= IE5BRlRB IHRpZ2h0ZW5lZA== X0dBUA== RU5TSU9OUw== IExpYmVydGFyaWFu X3N0eWxlc2hlZXQ= LlNldEludA== X3B1Ymxpc2hlcg== cGFnZU51bWJlcg== enNjaGU= IFNRTEFsY2hlbXk= IGhvb2Y= Z2V0VG9rZW4= IG5lYmVu bHVuZA== Lm1pdA== ZXJycw== LnNldE1pbmltdW0= LXByaWNlZA== KHBv ZW5nYWdl X0ZU Ly8KCgo= IHRvbWU= ICI+PC8= VmVjdG9ycw== IFRlc3RVdGlscw== ZmlsdHI= VXN1 IGRpY3Rpb25hcnlXaXRo IG9icmFz IEJEU00= LmdldFRhcmdldA== IGFsbG93YWJsZQ== IEluc2VydHM= CU5vbmU= IGxpYmVyYXRlZA== S2VudA== IFdpc2hsaXN0 IExhZ2Vy IGp1aW4= IG51ZXM= IG1vbmFzdGVyeQ== IG1pY3Jvc2Vjb25kcw== IEhhbm5h 0L7RgdGC0Lg= d2VhcG9ucw== X3Nwb3Q= b2RvbQ== Lk1vZGVsRm9ybQ== IG9yZGVybHk= RklOSVRF IHJlc2lkZW5jZXM= X3RD Q0dDb2xvcg== IMW+ZQ== IHNjcmVlbnBsYXk= IHB5bW9uZ28= IGTDqXQ= IGRlc3Rh IE5ldXJvc2NpZW5jZQ== bmllc3Q= QEdlbmVyYXRlZFZhbHVl RUxTRQ== PGw= IGRpc2pvaW50 LnB1Ymxpc2hlZA== ZWxsYW4= IFN0cmluZ1dyaXRlcg== LkJyb2FkY2FzdA== IEZlaW5zdGVpbg== YW1waGV0YW1pbmU= S2V5U3BlYw== IEdyaW1t ZXR0ZWw= 4Lic T3Q= aWJyYWx0YXI= Y2Vi IHRpbWluZ3M= aW5lZQ== IEFuZHLDqQ== RXNzYXk= Lmpk IEJ1bmRlc2xpZ2E= UmV0dXJuZWQ= IGFwcGFsbGluZw== LkJpZ0ludGVnZXI= IFNFTg== IEhvbWVtYWRl LmNoYXB0ZXI= LXZhbGlk IEFUVFJJQlVURQ== dXN0cmlh IGVudMOjbw== UmV0dXJuaW5n dmVydGlzZXI= LlBhY2thZ2VNYW5hZ2Vy Q2xhcms= IHF1b3Rhcw== IHNjYWxlRmFjdG9y IGNveg== X21pbmk= IG11dGF0ZWQ= LmFjdGl2YXRpb24= Km1hdGg= LnZlcnR4 PGFydGljbGU= IGVtYnJvaWRlcnk= L2J1c2luZXNz Y2tldHQ= c2NpZW50aWZpYw== IEdpbGVz IHJhY2Vy X3BlcmZvcm1hbmNl IGxhbWluYXRl IFBISQ== UsOp IEF0aGU= Y29sZXM= IHNhxJ8= IElua1dlbGw= CXNpZw== IHNwYWNlc2hpcA== IGluc29s IFVDbGFzcw== LmxlYWRpbmdBbmNob3I= dG90YWxz IHNwcmlua2xl IE1vZHVsYXI= ICdcIg== b3Jvbg== LlJlYWRBbGxUZXh0 ICAgIAkNCg== L2lvbg== REVQVEg= X21pbmltdW0= XENhY2hl IGRpdmVyc2lmaWVk aWduZXQ= IGRvam8= IFVJQWxlcnRWaWV3 L3R0eQ== IFNhc3M= IC9cLig= IElNQUdFUw== IGRhdGluZ3NpZGVy IEV4cGxvcw== LmdlbnJl XEV2ZW50cw== IGVudW1lcmF0ZWQ= Y3VycmVudFN0YXRl aXRydXN0 Q2FsbGFibGVXcmFwcGVy Rm91bmRlZA== IHJveWFsdGllcw== KFByb3BlcnRpZXM= IFVTUFM= LS0tLS0tLS0tLS0NCg== LlJlYWRUb0VuZA== IGNvc3k= IGFwZQ== X2RlZmluaXRpb25z IHBhZ2VObw== IGR6aWVjaQ== c3RhbmRlbg== IGJlc2Fy aXRpbg== IGNvbnNlcXVhdA== IHBydg== IHNwbGl0dGVk IGVzcG9zYQ== PWZpbmRWaWV3QnlJZA== V2Fsa2Vy IEhlYXJ0aA== aWJyYXRvcg== b3RvbXk= YWdnYWJsZQ== IOW9kw== 77yBJyk7Cg== aW9uYXRl L3llYXI= IHNldEM= IE1lZGlhVGVr LWJveQ== LnRvb2xTdHJpcE1lbnVJdGVt Q29uZmlncw== YXR0ZW5kZWQ= IGVtb2M= IEJhaQ== b3BvbGl0YW4= IGludHJ1c2l2ZQ== IHp1Zw== IGZmbXBlZw== X2Jvb3N0 IG1vemlsbGE= IHNsaWNpbmc= V0c= cGFnZXNpemU= UHJvcGVydHlEZXNjcmlwdG9y IEFsZWphbmRybw== VVNFUw== SG9zdGluZw== IHJpc2tpbmc= IEludml0ZQ== IEphemVlcmE= IHJlZ2FpbmVk IEhhZ3Vl IGd1ZXJyYQ== IGVuY2xvc2luZw== J10iKQo= PFRyYW5zZm9ybQ== Lk5PUlRI IGNyaW0= SU5V IGNsZW4= IE1vdGhlcnM= IE93bmVyc2hpcA== RHJpbms= IGJlYmVyYXBh Lm9uZXJyb3I= KSsK IHRhYkluZGV4 IERpbw== IEZvcnR5 KExpbms= IHNlZ21lbnRlZA== IGphbWVz IFRhcmdldHM= IFJUUw== INC60L3QvtC/ IHZhcmlhcw== IHTDrXR1bG8= IGTDvHI= L0dhbWU= cmFuc2l0aW9u IGRpc3Rpbmd1aXNoaW5n dWt0dXI= YW5qZQ== IE1jQ2FiZQ== cGFp KHRr RGVzdHJ1Y3Rvcg== R2FtZU9iamVjdFdpdGhUYWc= JGg= IGFmcg== LnNldEVtYWls IHJlcGV0aXRpb25z bGFuZGVycw== IFNoZWE= X2NsYWlt IGFjZXNz QmVuY2htYXJr LkVzdA== LlBP IE7DpA== IGl0Y2hpbmc= IGNvbmRvbWluaXVt X0ZXRA== IHJlYWx0aW1l IGNpdmlsaXplZA== X3BoeXNpY2Fs UmFs IHdpbnRlcnM= IFlhZA== IGZvcmE= IGNhbGlicmF0ZWQ= UGV0cw== IHN0b3JtZWQ= IGplbA== IFNTUA== ZGF0YWdyaWQ= IExhdQ== dW5hcg== dWxmaWxsZWQ= RVJJTkc= IFRyaW8= 2LHZiA== Rm9yZWdyb3VuZENvbG9y PW91dA== LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8K IHZpZW50 IEFETQ== X0Nvbm5lY3Rpb24= LWNhbmNlbA== KCcuJyk7Cg== IHNhaWxz IGVxdWl2YWxlbnRz TmI= IGZseWVycw== IEdJUg== a2VsaWc= LXdhbGw= LlJlcXVpcmVz IGNvc2U= IEFOQw== IGphZGU= IEFsZWM= IGVuZHJlZ2lvbg== IEVYVEk= ZWRlcmU= VGVycmFpbg== U3BlY2lmaWNhdGlvbnM= IFN3ZWVw c2V0SXRlbQ== IHNtaXJr IHNjcmlwdGVk W1N5c3RlbQ== 56eB IHN5bmNlZA== IHNxcg== Z2V3YXRlcg== IGpld2Vscw== IGhkYw== 4KWN4KSw z4Y= w7xzc2VsZG9yZg== bGllbg== Qm9yZGVycw== IEF0b21pY0ludGVnZXI= IHBhcmFseXNpcw== Q2xhc3NpZmljYXRpb24= IGdsaWRl IHVtcA== IC8+fQ== IHZlbmRpbmc= 4Li04LiZ bm90aWY= Jl8= IEVtZXJnaW5n YXRpY29u IHByb3BhZ2F0ZWQ= LW9yZGVycw== YWdhcw== dXJnZW50 KFRpbWVTcGFu QUxDSEVNWQ== L2Jvd2Vy 7IKw LmJvb3N0 LmRlcGVuZGVuY2llcw== LlN3aW5nQ29uc3RhbnRz dW50bGV0 LmNoYXJz LWNpZ2FyZXR0ZXM= IE1vZHM= ICAgICAJ IGJyYXZlcnk= IGNvdW50ZXJlZA== cmVsdWRl X21vYg== QUlORUQ= bmdvaW5n IHVuZGVyZ3JhZA== R2V0TWV0aG9k RHVhbA== X2pvdXJuYWw= LE5v IHNpZGVs IExhcnNvbg== KyIsIis= IG5hcnJhdGlvbg== IFN1YndheQ== IExleGVy IE5pbmc= aW5kaWM= dGhhbmU= LlNJRw== LWVhcnRo IGJlcnJ5 IFRldWNob3M= CUVudGl0eQ== ZXJzcGVjdGl2ZQ== Tm9z IE93bmVk QlVS IGxpbmVubw== IEZpamk= R2V0SW50 U3RyaW5nUmVm ICcmJw== dWFkYQ== LmNhcHRpb24= YXBwTmFtZQ== KG9mZg== IHZlcnN0 IHR5cG8= 6ZyA6KaB YXRlcmFuZ2VwaWNrZXI= IHFlbXU= IEdFTw== X0Ns LklU IE51bmVz W1o= IENvbXBsZXRlbHk= LkxpdmU= IEphcw== IHdlaXQ= Y29zaXR5 IHBvbGljZW1lbg== KHRhcmdldHM= aXRsZWRCb3JkZXI= IOinow== LkdsaWRl IGRlbW9uaWM= SW50ZXJpb3I= LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t IERvdGE= IG9yYml0cw== QU1Z IFRyaW5pZGFk aWN1bQ== Lnph IGdldEludA== QXRsYW50YQ== IGFtbmVzdHk= IFJhaHVs IF98 aGlybw== IFRBS0U= IGp1bWxhaA== IEF1dG9tb2JpbGU= 4buP d2hvc2U= X1NBTVBM UGF0aWVudHM= INGC0LXQutGD0Yk= LnN1YnNjcmlwdGlvbnM= IE1lbnRpb24= VG9Xb3JsZA== aXBh CU1lc3NhZ2VCb3g= PEFwcGxpY2F0aW9uVXNlcg== INil ZmFicmlj a2VsZXRhbA== QmFyQnV0dG9u IGFyY2hldHlwZQ== aW5zdGFudA== IGludGVybmFjaW9uYWw= IFZveWFnZXI= KHRvdWNo IFZhbGs= L01JVA== IGNhdWw= J0Nvbm5vcg== KCIh KE9Q ZmFjdWx0eQ== IEJhdG9u IFZvbHVudGVlcnM= dGFuaw== X0JJTkRJTkc= O2xpbmU= IFZlcnNpb25z WUxFUw== IGplZXA= KEVuY29kaW5n IGdlb2xvZ2ljYWw= TmljaA== KHBkZg== IGFuYWx5emVz IGNhcHRpdmF0aW5n IGhpem8= Lm1kbA== IGphcA== IGZsaXBz CWRm IFBpZXQ= IG5yb3dz IGthbXU= INCy0L7Qtw== IHBydW5pbmc= YWN1bGE= IHRyYXZlbGxlcg== U2hvb3Q= LmVwc2lsb24= IEZsZW1pbmc= aWJ1cg== b3BlcmF0ZQ== aWdodGVy IGJlZ3M= IFdhbG51dA== KFBhcnNlcg== IHdpdGhkcmF3YWxz aXNjb3BhbA== IGJpbGxib2FyZA== a2Vr LW9wZW5pbmc= IER1ZGU= Y29uaQ== eEVC IGNhbG9y YW1haGE= LlRYVA== RHJ5 IG1pc3Npb25hcmllcw== X1ZlcnNpb24= IG11bHRpbGluZQ== 4oCUd2U= IGNvbXBvbmVudERpZFVwZGF0ZQ== RmF2b3JpdGVz aWdoYW0= IGpvdXJuw6ll IGFtdXNlZA== IE9tbmk= dGd0 IHdhaA== ZXRpbmU= IHBoYXNlZA== IG9uU3RvcA== Y3JlYXRpdmVjb21tb25z U29waA== IHVuYm9ybg== PUU= IEZlZEV4 bm9ybWFsbHk= IGx5cg== TWF0cml4TW9kZQ== IHplaWdlbg== QXRo IEt1bQ== w6RobGVu LyI7Cgo= IGRhbGxl IGxhbmNl IFN1aXRhYmxl IGNvdW5zZWxvcnM= 5YWo6YOo IGZhc3Rh IGJsYXppbmc= 7KeE L3R1dG9yaWFs LnRjcA== 5pmv TWFuYWdlckludGVyZmFjZQ== IFNhbWFy CWdsVW5pZm9ybQ== IHByZXJlcXVpc2l0ZXM= IGFudGljaXBhdGluZw== cmFxdW8= a3Nlbg== TWFnbml0dWRl dXRvbWF0aW9u SGllcmFyY2h5 IGRldmlhdGlvbnM= aW1ldA== Q0NJ PSgK IGFudGxy CWluaXRpYWw= IFJlc29ydHM= aG9tZXM= CXBvb2w= IG1hdMOp P29wdGlvbg== Om15c3Fs KHV0Zg== LlRhYkNvbnRyb2w= PlRpdGxl IEFkb3B0 LklzTWF0Y2g= IGVudHJ1c3RlZA== U3VzYW4= c3dpbmc= aW1hZ2VuZXM= IHNlbGVjaW9u IGFpZGluZw== KFtdKg== IHNldEZyYW1l c3Bpcml0 L3Jzcw== SXRhbGlj IFByb3BlbEV4Y2VwdGlvbg== IFRvbGw= LkZpbmRHYW1lT2JqZWN0V2l0aFRhZw== aW5hbnQ= IHNlbGZpZXM= XXxb IGFwcGxpY2F0aW9uQ29udGV4dA== aXhl Y2Ri ZWJi IE92ZXJzZQ== IHNxbENvbW1hbmQ= SG9zdE5hbWU= LWxhdW5jaA== Umlzaw== O3I= LlNwYW4= X0NJVFk= X01B LyIKCg== UGF3bg== IFllbHA= QnVuZGxlT3JOaWw= IG1heW9yw61h U3RhY2tOYXZpZ2F0b3I= ITsK IHRodWdz IEJhcm5ldHQ= 44O744O744O7Cgo= IOqygA== X0NPTlY= IGJ1enppbmc= a2V0ZXJhbmdhbg== TWlsaXRhcnk= d2VlZA== IGRlbGltaXRlZA== 6LWE5rqQ INCw0Lo= X0hFTFBFUg== IFJFQURZ TG9vcGVy KioqKi8K IFRydWNrcw== 5Y67 X3BvZA== T01BVElD LWphdmE= IHVuaWZ5 L0FyZWE= ICcvJyk7Cg== IEdhbWJsaW5n LkhpdA== IEZhcnJlbGw= X2ZpdG5lc3M= cmVjb21tZW5kZWQ= emVuZA== b2RpZQ== X2JlYW0= IHBsYWdl bmRvbg== LmFzc2VydGo= IGdyYXRl TWVhc3VyZWQ= LmNlbnRyYWw= Z2VzdHVyZQ== IEdsb2JhbEtleQ== cHl4 IE5lY2tsYWNl 5Y2O LkFkZENvbHVtbg== IFJ1ZGQ= IFByZXNieXRlcmlhbg== dW5kbGVy IyFb X2xhaGly KCk9PSI= QWNjZXNzaWJpbGl0eQ== LXRyYWluaW5n IFRob3U= X1BJWA== X1RSWQ== PEo= xrDGoW5n bHVjaw== X01BWElNVU0= IHRoYXc= VW5pZmllZA== PkNvbnRhY3Q= LVByZXNpZGVudA== LXBhcnNl IFBpY2tlcg== TWFyY28= dHJz zrQ= LiQu X01FU0g= IHNhZ3Rl Kz0n 0K8= KHBhcmNlbA== aXZvcnM= IGRpdmVydGVk QUdBSU4= IG5lc3M= IHZhbGxleXM= IC4uLig= IEVRVUk= IE91dHM= IERlbW9uc3Ry RGV0YWxsZQ== IOu2gA== UG9pbnRYWVo= LmVwcw== IHN5bm9ueW1z ID09KA== 4oCcWWVz J3V0aWxpc2F0ZXVy TmFtaW5n TEVW cHJvdG9jb2xz IOyb IGdldFVzZXJuYW1l LXZhcg== X210eA== IHNwZWN1bGFy IG5vdGFz SG9yaXpvbnRhbEFsaWdubWVudA== IEJheWVy c3Vz ICAgIAkJCg== IFNoYWNr cmVzaGVy IGltbWF0dXJl YnJhY2h0 SVNDTw== LmNyZWRpdA== IHZpbmVz X0xQ RUVERUQ= IFNjYXJib3JvdWdo w6FudA== KT09Jw== CWRlbHRh X0NPTE9SUw== LkN1c3RvbUJ1dHRvbg== IGFmaXJt IEppbmc= UGFybXM= Y2VudGVycw== LT5fX18= IExETA== LWNvbnRyaWI= IERyZXNkZW4= IFBpeGVscw== ICIiIiIsCg== TEVUVEU= eEJF IEh1c3Q= IEV4ZWN1dGlvbkNvbnRleHQ= IEJ1ZmZldHQ= Y2xhbXA= LkFydGljbGU= IFJhdGg= IFBleXRvbg== IExPV0VS b29rZQ== IHRpZGFs IHVuaGVhcmQ= IFNoYWxs IGJvbWJhcmQ= YW5vdmE= W21hc2s= KGNyZWRlbnRpYWxz IEV1cm9z IGJyYW5jaGluZw== IHN0cm9uZ2hvbGQ= IGNpdmlsaXphdGlvbnM= LWNvbm5lY3Q= IExTVE0= LW1vdmluZw== IHV0ZW4= Y3Jhc3Q= X0RJU1A= IENvbnRyb2xsZXJz dXBl LnBlbg== IGRlc3Nh IGRpZsOtY2ls dWl0YWJsZQ== b2ZpcmU= W2NoaWxk UkVGRVJFTkNFUw== IGRlY2VpdA== IFVyZw== PEVkZ2U= IGRlc2k= IEJPVEg= ICcpJzsK dHlwZU5hbWU= Q29tbWFuZEV2ZW50 d2hlcmVJbg== KG9wdGltaXplcg== IHLDqWFsaXM= IG9taW5vdXM= IEJyYWNrZXQ= IGRhdGVTdHJpbmc= IHNpbmdseQ== KEpGcmFtZQ== 4oCZVA== ZXNsaW50 KGhlcm8= IE1hcmE= IGNhdGNoeQ== LGNhbGxiYWNr IGN0eXBl cHJlc2V0 CWdsZnc= 0LXRiQ== aGs= IHRpdGFu QWNlcHRhcg== 44Gh44Gv X2Fzc2lnbmVk X2VyYXNl IGluZmFuY3k= UmV2aWV3ZXI= IFJlY29yZGVy IHNjbQ== IEJpZ2dlc3Q= IEdvYQ== CVND X0xvY2F0aW9u X29yaQ== a2ls cmVuZGU= IG1hcnpv U3RyaW5nVXRpbA== 0YPRidC10YHRgtCy IEhvd2U= xrDhu51p Zm9pcw== WE1MRWxlbWVudA== IGRlcmVjaG9z IGR1bmc= IFdhaw== IEdhdw== fVxc ISIpOw== IEpvaGFubmVzYnVyZw== IHN1Ym1hcmluZXM= IGFjY29s IGZvc3RlcmluZw== LgoKCgoKCgoKCgoKCg== Lk9wZXJhdG9y IG51b3Zh IHRyYWplY3Rvcmllcw== LnNjaGVkdWxlcnM= IEZvbGxvd2Vycw== IEFuZGVyc2Vu IFBlZ2d5 LmZyZQ== xLFjxLE= IGt2cA== Y29i LWxlbg== IG1haWxz IGFjY3I= IEpBVkE= IGFkbWluaXN0ZXJpbmc= RGVmYXVsdENlbGxTdHlsZQ== IGNsaWNrYWJsZQ== IEphY2tldHM= O2Rpc3BsYXk= IGJyZWFkY3J1bWJz Y2hhbA== Oic7Cg== IEhvdmVy dWNjaGluaQ== IHRlYw== IHN0b3B3YXRjaA== X1JlbGVhc2U= TWF5b3I= 4Z62 IFlhbmtlZQ== Y2huZXI= QXJ0aWZhY3Q= LmJhbm5lcg== IGtm X3N0dWR5 Zm92 IE1lZXRpbmdz w7Zt IGluanVyaW5n L2RvY3VtZW50YXRpb24= QkNN c3R5bA== CXJi IG9yaWdpbmFscw== IGZsZXJl IFRlcnJhcmlh dG9rZW5pemVy LWxpdGVy Jyk7Ig== IHBldGl0cw== IEJidw== IFRoaWVm VUlMVElO Uk9VVA== IHNudWc= Pj4p LW5pbmU= IH1dOwoK IEJlbGxldg== IGVsw6k= IHl5bg== eW5hbW8= Z2xlcw== IHNwZWQ= LkJVVFRPTg== IGRpc3BlcnNpb24= b3VibGVz IG5vdmVsbGVy Il0uIg== IHByaWVzdGhvb2Q= ICIiKQoK CWd1aQ== LWluYw== WG1sTm9kZQ== IHN0dWRz LklzQWN0aXZl IHRyw6Q= IG9yZGFpbmVk IEJ5dGVBcnJheUlucHV0U3RyZWFt IHJlcXVlc3RCb2R5 IFJUUA== UkVTVUxUUw== KGNvbGw= IHJlbG9hZGluZw== Lk5hdmlnYXRvcg== X2NvdW50ZXJz IGJ1ZGRpbmc= IGxpY2Vuc2Vl b2xvZ2k= IHPhuqNu IEtpcw== IEZsYXR0ZW4= X3ByaQ== IGFwcHJvcHJpYXRpb24= 6K+E6K66 X1JTUA== Y29tYmF0 X1BH IGhpc3RvZ3JhbXM= ZHE= RW50ZXJwcmlzZQ== IE5PQUE= IFNwZWVkd2F5 IGJhZ2k= IEJld2VydA== RmxvYXRpbmc= IEtpbWJlcmx5 UHJvc2Vj SmltbXk= IEVsaWFz IGFyYml0cmFyaWx5 IOS9v+eUqA== IENvdW50cw== dXN0ZQ== Rmlyc3RDaGlsZA== IENsZWFucw== LnB1cmNoYXNl IGludGVycG9sYXRlZA== IGJ1aWxkdXA= X1NURU5DSUw= RWd5cHQ= IGF1cmU= LnRydXRo ZmVvZg== IEdpbQ== b2NhY2hl IFV0dGFy X0NPTVBMRVRFRA== U2Vlbg== IE5hcG9saQ== KGRt IGdyaXR0eQ== LmVudGVycHJpc2U= Y29uZXhhbw== IGdhdGhlcnM= IHNldFNlYXJjaA== IENsaWZmb3Jk IFNuYXBl IFNhbHZhdGlvbg== TG9naW5Gb3Jt Q3JpdGljYWxTZWN0aW9u LnVzZXJkZXRhaWxz IHJlcGFpbnQ= 44GC44KK44GM44Go44GG SHVudGVy WmVu VGlueQ== bWxhbmQ= ZXJ0aWw= CWJ1ZmY= X09mZnNldA== IHNtZWxsZWQ= Uml2ZXI= LXRvcGlj IGFjb21w IFJvdXRlU2VydmljZVByb3ZpZGVy IDwr b21icw== IENvb3BlcmF0aXZl IHNldWxl IGFpbWU= c2hvdWxkUmVjZWl2ZQ== SG9uZw== IG9hc2lz IEdlbWluaQ== cmFwaWQ= RHVw KFF0R3Vp b2RvbnQ= LWdudQ== IFNlbGVuaXVt Jyk/Pjwv IE5vcGU= R3JlYXRlclRoYW4= Lk9ic2VydmVy IEFwcHJvcHJp IExvbmVseQ== IGhhaXJjdXQ= IGFsbGVyZGluZ3M= w7NwZXo= esWR IHNsdW1w IEdpbnM= IGdpb3JuaQ== IHBhcGVyYmFjaw== LkZpbGVSZWFkZXI= ZGFm Y3JlZHM= dHlwaW5ncw== ZGVoeWRl Y29pbA== U291dGhlcm4= IG1vdXNlQ2xpY2tlZA== emVpY2huZXQ= dXNlclJlcG9zaXRvcnk= RGVzdHJveWVk aW50ZXJuZXQ= IEVpZA== IGxpbmtlcg== 4oCZQg== IHNsYXVnaHRlcmVk IFBlcnI= CVJ1bnRpbWVPYmplY3Q= c2FpZGE= IHBhZ2VDb3VudA== IFJhbmRvbHBo IEpOSUVudg== X3N1cGVydXNlcg== LWRpcmVjdGVk IElEYg== IEJlcm5hcmRpbm8= IE5pbnRo IEFsZ29yaXRobXM= YmRi QHRlc3RhYmxl LmFybQ== YmVsbGlvbg== KHNpZA== IGJyaWVmZWQ= 4pWX 6YWN572u IFVtYQ== IEluZGljZXM= IEJ1Y2NhbmU= IGF5YW50 RnJlZWRvbQ== IFl1cmk= ZXRzaw== X1Bo IGl0YWxpYQ== Y2xvc2luZw== IHdyaXN0cw== ICp9 c2VjdXRpdmU= RW52aWFy cmFpdGg= IEhhd3Ro 15M= ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgo= cGFnZVRpdGxl IGRoY3A= IOyLpO2WiQ== d2lzaGxpc3Q= IGJsYW1lcw== IHNpZGw= dWRkZWQ= IGNvbnRyb3ZlcnNpZXM= 6I8= KHVzZXJEYXRh IGxpbnNwYWNl IERpZmZlcmVuY2Vz X2RlcG9zaXQ= REVUQUlM LmRlY2s= IGNvbnRpbnV1bQ== IHNhY3JhbQ== b21pdGU= IG5mbA== Q3Vt IHNvZg== IGV2aWxz IGVudGlkYWQ= CXNvY2s= IExlbW1h LlNoaXA= IHppZw== VGVsZWZvbmU= SURFUw== IE51bWVyb3Vz Lm1ldHJpYw== aW5zbg== IGNvcHlyaWdodHM= IGNvbXBsaWNhdGlvbg== IFVSTFNlc3Npb24= IGRpcHBpbmc= IGNx IEJ1c3R5 cmVsYXRpb25zaGlwcw== IENvcnZldHRl U3VtbW9u ZXZlbnROYW1l SXNzdWVz IGlycmVzaXN0aWJsZQ== IGdyaXM= Q0FTQ0FERQ== IHBhdXNlcw== IGxlZGdl X0dQ LkltcA== IG9yZGVyYnk= IE9yZ2FuaXplcg== IEdyZWVud2ljaA== T2Fr LW1lbWJlcnM= IFdlYkdM IGdhbW0= bW9kdWxlSWQ= IGZ1bGxQYXRo bG9nZW4= KGV2ZW50TmFtZQ== KCIuIik7Cg== IGtyaXN0 IGNsaWZmcw== IFBlcmNlcHRpb24= RVRJTkc= IGzhuqFp IGludGVydg== IG9wcG9ydHVu IEp1ZGdlcw== IENvbWJpbmF0aW9u Y29udGludWVk Y29ubw== LmRyYXdSZWN0 LkNvbXBvc2U= IHNpZ3VpZW50ZXM= IER1ZmZ5 KGVuY29kaW5n IFZ1bGthbg== IEdlcnI= IHBhcmZhaXQ= KHl5 X1RIQU4= IGdldFNlcnZpY2U= X09SRA== LGVw Z3JhcGhpYw== IFF1ZXJpZXM= IHBhcnRpY3VsYXJz IEhhdmFuYQ== PW8= ZmFucw== IHVuaWxhdGVyYWw= IFJGSUQ= Q29tcGF0aWJpbGl0eQ== c3RyYW5k IHdha3R1 IHF1YWxpZGFkZQ== UHJvcGVydHlQYXJhbXM= cmV0ZW4= KGhvc3RuYW1l X0NBUg== IHdpZGVuZWQ= IFhwZXJpYQ== cG9sbG8= QWJvcnQ= ISEpCg== IFdhZw== LS0r INGC0YA= IFJlY3Vyc2l2ZQ== IGFubmU= IEdhbWVwbGF5 PENsaWVudA== LlVzYWdl IElTU1VF IGpkYmM= aXNvcnk= X21hY3Jvcw== cGlja2xl LmdhbWVzZXJ2ZXI= IHR2Yg== 0YLRiw== Lk9QRU4= IHByZWRldGVybWluZWQ= IHNpcmU= CQkJDQoJCQkNCg== aXNjcmltaW5hdGlvbg== IHJlcGVhbGVk IGNvbmplY3Q= IFByZWNvbmRpdGlvbnM= IHRpbHRlZA== IGlub2M= IGV1cm9wZWFu YWJk X0RFTEVURUQ= IC0s 4oCTYW5k QEZYTUw= ICldCg== UklORw== IGFsaXF1YQ== IGdydWVzb21l IEluY2hlcw== UGxheWVk KGNvbmZpcm0= IE5WSUM= X1RvdGFs aXNhcw== IE9uaW9u IHNlY29uZG8= IEdldFVzZXI= XFVybA== X2Fic3RyYWN0 IGRldmV6 IGN1cGJvYXJk dGV4dHM= IElzbGVz X01BVEg= U2tpcHBpbmc= X2Nvc3Rz PW91dHB1dA== aWJpbGk= IGtudWxs X2NvZWZmcw== X2F0dGVtcHQ= CVJ1bg== Z2VuZGVu cnVwdGVk IHNvYXJlZA== X2hz IGFkb3B0cw== X01PRElGSUVE XEZhY3Rvcmllcw== IFN3ZWF0 IGRva3VtZW50 IFRlbGVzY29wZQ== IEZpeGVz b3JxdWU= LkNoYXJ0aW5n X0RBQw== IHNlY3JldGlvbg== IHJoZXRvcmljYWw= UGVyZmls IG3DtmNodGVu LCcs IHZpZXdQYWdlcg== QlVZ IG9uRm9jdXM= b3NhbHM= IGJpc2N1aXRz IHZib3g= IGZvcmNlZnVsbHk= TmludGVuZG8= IHbDoWw= IGNsYW5z ZnJvZw== IGJvcmRlclRvcA== QnJpZWY= LkJvcmRlckZhY3Rvcnk= LXNlcnZpbmc= IHF1b3RhdGlvbnM= IEdhcm5lcg== IEFsbGV5 Ij8+Cg== KHNjYW5uZXI= IGVudGFpbA== IC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ== KGA8 LmRlc2NyaXBjaW9u X0J5 IOyalA== IHBha2lzdGFu ZWxobw== RW5naW5lZXJpbmc= IGJvb24= IExvb3Nl aWVyZ2U= U2VuYXRl IExZ cmVzcG9uc2VPYmplY3Q= aW9yZQ== w6FnZW5lcw== IOS4jQ== IGFkZEFjdGlvbg== IE1BQ0hJTkU= YW5na2Fu X21p X0FSUg== TGl0ZXI= T0xG IHN1cHBlcg== IHBhdGhNYXRjaA== IE9ycg== w61k KGZpbHRlcmVk IGF1dGhUb2tlbg== IOKEnQ== LTwv KHRlbnNvcg== IHJldm9sdmluZw== IGluaWNpYXI= IFNjaHdhcno= ZGVmZ3JvdXA= Y29sdW1uTmFtZQ== X3RyYWplY3Rvcnk= 4LmE4Lih ZWdhc3Vz IOydtOumhA== IGVhdGVy IHVuZGVyZXN0aW1hdGVk IGJ0Yw== IOyEoO2DnQ== ZW5hZGU= IFNFWFA= ZW1vdXRo T01FVFJZ ZW50ZXJlZA== LnBob25lTnVtYmVy IFZvYw== IGV4Y2Vzc2l2ZWx5 IENBVEVHT1JZ X1VQREFURUQ= IG1vbmFyY2h5 YXJjaHM= IGNhdmVhdA== d2lucw== IHBsYXlib29r c2hhZGU= IHNldFVzZXJuYW1l IGFjY3VzZXM= IG1vxbxsaQ== IGxvcnNxdWU= IGFqdWQ= aGVhcg== IHBzeWNvcGc= KEVD IG1lbGFuY2g= dGhyb2F0 bmlo V09PRA== IHZvbHRz X05FRUQ= X3doaWxl IFJpZGVycw== 16I= IC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4= TmV0TWVzc2FnZQ== TW9kaWZpY2Fy LnNlc3M= KCIiKSw= 6Kmx IHByYWlzZXM= IGxjbQ== IG1ha2VzaGlmdA== IE5PVEhJTkc= IEFydGlmYWN0 d2lq dHlwaWNhbGx5 KCde PGs= xJlraQ== INC+0YLQv9GA0LDQsg== IOE= IGRlZlN0eWxlQXR0cg== aW5jZXJlbHk= w6lzdA== SW5UaGU= c3RpbWU= IGZyYWdtZW50ZWQ= IGZyeWluZw== Z3JpbQ== ZmllbGRuYW1l IGNyb3NzaW5ncw== IGFtbw== X09wdGlvbnM= IGhhaXJlZA== L3dhaXQ= IHBhcmNobWVudA== IGNyZWF0ZUVsZW1lbnQ= SHR0cFN0YXR1cw== IGVya2zDpA== aXp6YXppb25l dGh1bWJuYWlscw== bG92YWs= IGJhbmdpbmc= IHVuaW1hZ2lu IE92ZW4= KEF1ZGlv YXBzdWxhdGlvbg== IHJhbXBz 55Wq IFdvb2R3YXJk 6Zeu6aKY cm9ncmFt 0YDRg9C/0L8= IFdvcnNoaXA= IHN0YWQ= IG5lZg== IEphdW5l YnV6eg== YWx1cw== T05ET04= LXN1 IG91dHBhdGllbnQ= amFj RVNQTg== w6ZsbGFuZA== bXlw IHNob3dyb29t TW9udHNlcnJhdA== LmdldERyYXdhYmxl w6l0aWNv IHbDoG8= SUJD RXhwZXJ0cw== TWJwcw== Ij4j IG5vcnRoZWFzdGVybg== IE1lag== KG1pbGxpc2Vjb25kcw== 4oCUYWxs LXJlYWNoaW5n CXJlcGx5 P3R5cGU= IGNydXo= ID48Pw== LkZpbmRBc3luYw== KGNpcmNsZQ== IFNoaW5l IE1hdmVyaWNrcw== IHNhZmV6b25l IExhemFy IGRpc3RpbmN0aW9ucw== LWZlZWQ= LnNldENvZGU= 4KSq IHTDqWM= IHNlcmFpdA== IE1JQ1JP IENvbnN1bXB0aW9u Xm4= LmZyb21GdW5jdGlvbg== IFJ1cGVydA== IGhhcmFzc2luZw== LUNv IHRpaw== IFN2ZW5z LkltYWdlQWxpZ24= X3doaXRlc3BhY2U= IGtpY2tlcg== IGNhZGFzdHI= Q2V0dGU= X25vdGlmaWVy IEZBRw== IHByaW1hbA== IGhvbW9nZW5lb3Vz IGFzdHJvbm9taWNhbA== IEJ1cnI= LkNvcHlUbw== Z3JhcGhz aXR0bw== T1NI IHNob3dBbGVydA== YW50cm8= ImRlZmF1bHQ= ZW1waGFzaXM= V2Vp b3V0Y29tZQ== IGFrdQ== IGNhbXBhaWduZWQ= KSI7Cgo= IHJlY2lwcm9jYWw= IFJveWFsZQ== ICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyM= LlRJTUU= IDwq T2Zmc2V0VGFibGU= Y29tcG91bmQ= d2FpdEZvcg== dWVnb3M= LnN0cmluZ1ZhbHVl X1NDSEVE IGZhdHQ= wqDCoMKgwqDCoMKgwqA= LmRpc2s= IHdhcnBlZA== IGNyaXRpcXVlcw== PycKCg== KHNraWxs IG1vZGVyYXRlZA== X2VsZW1z S2V5TGlzdGVuZXI= IHNlYXNvbmluZw== IHBvdXJxdW9p X0ZE cHJk aHlh Ij7Dlzwv IG5vdXZlYXV4 IGdpdmVhd2F5cw== 5oql6YGT TWFpbk1lbnU= Oy8q IEdyb24= cXVpdm9z Ow0KDQoNCg0K IGluZmx1ZW5jZXJz KFRJTQ== U2hhcmVkUHRy IGRpYWxvZ3M= KioqKiovCg== LkF0b21pYw== IE1vcnNl IHBjYg== IEFQQw== LkltbXV0YWJsZQ== IHJlc2l6aW5n IEx1bXB1cg== IEh1bWFuaXRpZXM= X3NvbHZl X2h1bWFu ZXR5bA== IEh1cnQ= IEVzdGFibGlzaGVk Y2xhcmVk IGNvbXBhcnRtZW50cw== QmVhbQ== X1JN LmZhbHNl KEdyaWQ= IFFTaXpl X2ZsZw== aXN0aWNh PkxvZ2lu OlVJQnV0dG9uVHlwZQ== IEV4aXRpbmc= Y2xhcw== IGFyc2Vu KG1ldHJpYw== cm93c2luZw== cXVlcnlTZWxlY3Rvcg== X0ZSSUVORA== LWlv IGNvbmZpc2NhdGVk IGRlZmlhbnQ= IE1PVE9S cmVndW50YQ== IE1vcnJvdw== IEJlcnM= Q3JhaWc= IENQQQ== IHNleGtvbnRha3Rl IHNhbW1lbg== L0F1dGg= LkxpYg== Y3JhcGVy aWNlbWFpbA== Y3JhdGNo IFdpcmVk IGFkdmVydGlzZXI= IGdldENsaWVudA== IHJlc3BvbnNpYmx5 CVVPYmplY3Q= LnNldFJvdGF0aW9u LkNvdW50ZXI= X0hPVVI= VGVzdENhdGVnb3J5 IGhpbmRzaWdodA== XGNvbnRyb2xsZXJz d2FsbHM= LnNldE1heGltdW0= IHB1YmVydHk= X3RlYW1z X01PREFM LkNP IGJhZGFzcw== KSddLAo= w7pzcXVlZGE= aXJ1dA== Q2hlbHNlYQ== LnRyYW5zZm9ybXM= IGNhcGl0YWxpc3Rz TWFyY2E= IEFyeQ== LWNvZGVk 546v VVJFRA== PFRyYW5zYWN0aW9u IFBhcmxpYW1lbnRhcnk= KSRf IHN1YnRseQ== IHNpbGt5 IERpcnQ= IHB1enpsZWQ= fScpOwo= cXVlc3Rz Rm9vdGJhbGw= IENvbmZpZGVuY2U= dXp1 YnVsYW4= IGh1bW1pbmc= bW91c2VlbnRlcg== UmV0ZW50aW9u IHNkbA== b2tlZGV4 JywnPScsJA== IEt1YWxh U0FN IHRyYW5zZm9ybWF0aXZl UEtH aWxsdXM= IHJvb3Rpbmc= IFdpdG5lc3Nlcw== IFJhamFzdGhhbg== 5byg LWFkZGVk IFRlcnJpdG9yaWVz KHNxdWFyZQ== cmFiYml0 X1Jlc291cmNl 6ZaL 4LiT IHdpbm5pbmdz IHNwbGU= IGTDqHM= IE1EQg== w6lydA== IE1hdHRpcw== YWlsbGVz X3dlYWs= L2phdg== IGNvbGxhcHNlcw== ICAgICAgCQk= IHN3aXJs IE5TU3RyaW5nRnJvbUNsYXNz IHZvbHZlcg== LlJlY2VpdmU= IERleHRlcg== IHRhYmxlbmFtZQ== cmVhdGl2ZQ== LkdldEZpbGVz dm9vcg== IEhvZQ== VkVSTg== IE9QQw== 7YOc cmFtaWRz 54Sh44GX44GV44KT U3Bpcml0 IE5PUA== IE1haW50YWlu KHNpZ21h b3Ry TW91c2VDbGlja2Vk cXVpZXJkYQ== X3dm 0L7QutCw0Lc= YXBwYWJsZQ== IEhvbGRlbg== IENvdW50ZG93bg== LnNpZ21h Y2hhbGs= YmlsZGVy IHZpc2lvbmFyeQ== CU9u JHVwZGF0ZQ== IEdpbmdyaWNo cm9vbUlk Pk5hbWE= IHl5dHlwZQ== LkRlY2ltYWxGaWVsZA== bWFjcm9z LnNldExheW91dFBhcmFtcw== IHJubg== IElNRGI= 56eN ZW1hbGVz IGluY2lkaWR1bnQ= UmVzdHJpY3RlZA== IHBlZGFscw== IEpvZw== IEFkYXB0aXZl IGZhZGVz LkV2ZW50U3lzdGVtcw== IFBhaWdl IHNlaXM= IGFwcHJvcHJpYXRlZA== RkZU Z29yaXQ= IGNvaGVzaXZl IE5pY2h0 X3dvcmtmbG93 bGl1cw== IEZvcnRuaXRl X0lX QXRQYXRo IGludG94aWNhdGVk bm9zdGlj QmluQ29udGVudA== LnJlZHVjZXI= KT8K J10q IE9ic2VydmF0aW9u X3ByZWZz LnJlc29sdXRpb24= LlBheWxvYWQ= TWl4ZWQ= IFJhaQ== KHBkZXY= KEAo aWNvdA== JGlz IGNyZWU= Pz0uKg== LlFMYWJlbA== IEdlb3JnaWFu eENB IGRlZmljaWVudA== dGhyb3du IHJhcGluZw== dXBvcw== CWNsaQ== Z2V0Vmlldw== SGlnaGxpZ2h0ZWQ= Q3BwR3VpZA== IHJlbGVnYXRlZA== IGxlYWRlcmJvYXJk UmVjZWl2ZVByb3Bz Lmhhcg== IGNvbmRp SU1JVElWRQ== IE1jQ2FydA== KXRocm93cw== YnVpZQ== YnVhaA== LmNvZWZm IEF1c3NpZQ== IFNhYmhh KGZhYnM= cmVsYW5k IEbDtnI= YmFyYW5n LHRvcA== CWVsc2lm U3RlcFRocm91Z2g= IHNrZXdlZA== IFVudXNlZA== Jyl9Pgo= WWU= Y2FsbGVl SGliZXJuYXRl IEV2ZXJlc3Q= aW1wb3J0RGVmYXVsdA== IHRhcm4= IE5vd2FkYXlz WUE= IENoYWxsZW5nZXI= X2xvZ2ljYWw= IGNyZWF0ZURhdGU= IEdsb3VjZQ== IGN1YW50bw== IEhBUg== IENoaWxs Il4= IGN1cnNvcw== LkVPRg== IG5pamU= IGFuZ2VyZWQ= b2N1c2luZw== PENvbnRhY3Q= IEF0bW9zcGhlcmlj IFdvbGZnYW5n IEJK Y2hpbGRz IEJ1Z3M= X0hFWA== KFNQ w6Vs X2V2YWx1YXRpb24= IFJBTkdF IFNPUA== X3Rva2VuaXpl bXNnaWQ= IHJleA== CXBt Q29weWluZw== Kkw= RGFsbGFz LVN0YXRl dWxmaWxs IGJ5xYJv IENvbnRyYWN0b3I= RGlkbg== QVNURQ== IFBJTw== LlRlbGU= LndhdGVy ZGV6 IGFuZ3JpbHk= IHV0aWxpc2F0ZXVy IHZvcnRleA== Q29ycG9yYXRl YXR1cmFz IHByaXplZA== J3VybA== dWdsaWZ5 IGltcHVsc2Vz IGNocm9ub2xvZ2ljYWw= cGxlbg== X25hbWE= L29u IE9mZmljZXM= IENQSQ== IEFmdGVyd2FyZHM= 44GT44KT44Gr X0JMT0NLUw== R3JhY2U= LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg== IEthYnVs IOaIkA== IExlaXB6aWc= 4Kao U2hvY2s= QXVz IG11cm0= X3N0YXJ0cw== IGLDpA== IFp5 IkY= LXJpZ2h0cw== IGJlaGF2aW5n KCc+ IG1vc3F1ZXM= KndpZHRo Ii8+Ljwv LnVuc3BsYXNo LmdldEFjdGl2aXR5 VVU= IFNoYWs= X3Jn X0VxdWFscw== J2h0dHBz IE94eWdlbg== IFBvcnRzbW91dGg= 4oCUb25l IHdhdGNoZXJz IENob2k= IHNpZGVy cGVjdHJhbA== bXF0dA== LmNyZWF0ZVVzZXI= amVjdGl2ZXM= dXJtYQ== UmVnaXN0cg== UGVyc29uYWxseQ== PWtleQ== IE5FTw== IEZBUXM= aWJpbGlkYWRl Y2tzw6U= IENvbGxhYm9yYXRpb24= CWxibA== LlNFUlZFUg== IGFib3VuZA== IEJlbmU= d2FudGVk LWhvbGU= IG11dHRlcmVk IHBlcA== bmVzYw== LlVwbG9hZA== c2VtaQ== eEVD Jz4iKw== IGVtYnJ5bw== IEZpeGVkVXBkYXRl Q2FzdGxl Lm1vZGVsbw== IHBscw== IGVudmVsb3Blcw== X3JlbWFpbg== UXVhcnRlcg== YWxlcnRWaWV3 X2Zvcm1hdHRlZA== IGxhc2hlcw== emVsZg== aG9tbWU= LmZsb3dMYXlvdXRQYW5lbA== YWlycG9ydA== IE1lbW9yaWVz IEhFUk8= IEFzaHRvbg== IGV4aGliaXRpbmc= KFNFTEVDVA== U3VibWlzc2lvbg== U3R1ZmY= X3N1bg== IHBlcsOtb2Rv IGRlc3ByZQ== CWVkaXQ= IER0eXBl Y2Vzc2l2ZQ== YWFk IGRlc2Nvbg== bmVsbHk= IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ== IHNjcmlwdHVyZXM= IG9uVmlld0NyZWF0ZWQ= IEVWRQ== IEJhbGxldA== O307Cg== VURP IFByb2JhYmlsaXR5 cXVpcnJlbA== Q29udGFpbmluZw== IFBsYXQ= 6KI= L2JpdA== IEpRdWVyeQ== IHRpZW5lcg== L2RyaXZlcnM= IFByZXNpZGVuY3k= XHVE IEl2ZQ== aWVuYQ== IGh5cGVycw== IFNwZW5kaW5n PFc= IFRIRU1F IHVzZXJQcm9maWxl IGFubnVt cmV0d2VldGVk IFwnJw== YnVuZGxlcw== KCk8Lw== IEN5bGluZGVy IG91dGxpZXJz IGRpc3NlbWluYXRpb24= L2FwdA== IE5hdGFzaGE= IHJlbmRlckl0ZW0= IENoaXBz IHJvdW5kdXA= IGltcHJvdg== IGNvbW11bmljYXRvcg== IHNreXBl TU1N cmlqaw== LlBsYWNl IHBhc2E= IFNZTkM= ZW5zaXM= IEF4ZWw= ZW7Dp2E= Z2V0U3RyaW5nRXh0cmE= YWJpbGl0w6k= IGVtYWNz LmdyYXZpdHk= IGNoZXJpc2g= IElTU04= CUpzb24= dXlv IHVwdGltZQ== IHJhbmRvbW5lc3M= IGxvZnR5 Qm93 Q3JlYXI= IHRvd2VyaW5n Y2F0ZWdvcmll L3Bvd2Vy L3dlbGNvbWU= fFI= IGJhcnJpbmc= aWRpYQ== cXVhbQ== w7pkbw== ZXhwZXJpbWVudGFs IGNsYQ== IGN1cmF0b3I= cmVhbWJsZQ== aW5keA== TExM IH0pOg== IGhpc3RvaXJl c2ltdWxhdGU= PEFueQ== IEdsYW0= IEJhcmc= VmFsdWVDb2xsZWN0aW9u IEluc3RpdHV0bw== QXNTdHJpbmdBc3luYw== IGFkZWM= IGZlbGxvd3M= cGlwZXM= IFBsYWNlaG9sZGVy IEtn IEFsYnVtcw== ICooKg== X0dPT0Q= KSIsDQo= LlFSZWN0 w6Jt IH0NDQo= TWFyc2hhbEFz QmFjaGVsb3I= IEJhcmNvZGU= IFRyYXZlcnNl IG9kaW8= LnNldFBhcmVudA== IHNlbWljb25kdWN0b3I= QUxMRUw= IGJhbnF1ZXQ= IE5ld3NwYXBlcg== RE9NTm9kZQ== IE5hdWdodHk= Rm9ybWF0dGVkTWVzc2FnZQ== IGRpc3J1cHRpbmc= 5piT IGxvb2thaGVhZA== IGdyYXR1aXRlcw== IGNoZWVzeQ== IFNQRg== blA= IGFyc29u IGFudGVubmFz X01JRERMRQ== X01BTExPQw== LmdvQmFjaw== IFByb3Bvc2l0aW9u IE1pY2hhZWxz X3Byb29m INC90LDQudC0 w6R0emxpY2g= LXJvbGw= RURB w6Fuw60= Z292ZXJubWVudA== w7Z0dA== IEVzdGFibGlzaG1lbnQ= ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA= X0hJVA== IEFJTQ== YWRvbA== ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCg== X1JFRkVSRVI= IGZvcm1hdERhdGU= dWN0b3Nl IGRvd25sb2FkZXI= VGV4dEVkaXQ= IGRpc2FybQ== IEhBUFA= 0L7QtNCw ISkuCgo= L3Byb2Nlc3M= IGJyYWluc3Rvcm0= IE9SSUdJTkFM LlRhYmxlTmFtZQ== IEtvc3Rlbmxvc2U= IGTDqXA= IElzYWJlbA== IGFzdHJvbm9tZXJz UVVJUkVT OiIt dXBsb2FkZXI= Oi8vJQ== IGFtaXM= RmlsZVZlcnNpb24= ICwk Y29vaw== LFNJR05BTA== JywvLw== IFN1cHByZXNz IExhdGlub3M= IHdpdGhob2xk IG1uZW1vbmlj X0NZQ0xF IGhvZA== IFdvcnNl ZXJkZQ== IHR5cGVpZA== CWV4cG9ydHM= IGFjaHRlcg== b3Nhcw== IGZvb3Rub3Rl aGFuaQ== KFBhcmFtZXRlcg== CVJlbmRlcg== IFlZU1RBQ0s= IFhJSQ== IHNpZGVu IGFyb3VzYWw= IE9P Qml0dGU= IG5lYXJlcg== IENpcmN1cw== IENPTE9SUw== IHdpZWxkaW5n LkZpbGVTeXN0ZW0= IGdyaWxsZQ== IERvdmVy CiAgICAgCg== KGdlb21ldHJ5 IHN0YXBsZXM= IEFubm91bmNlbWVudA== IOuyhA== IGZvcnR1bmF0ZWx5 LlNvbWU= IG1hbmdhbmVzZQ== IGludGVydmlld2Vy WVJP IGNyeXB0b2dyYXBoeQ== IGNoYW1icmU= LnJldHJ5 IGltaXRhdGlvbg== JGZkYXRh IGxvdGlvbg== KGlkZW50aXR5 LnBn IHByZXN1bXB0aW9u X1NVUEVS dm9jYWI= IFNlbWVzdGVy IEFiZWw= X2FwcHJvdmVk LmNvbXBhdA== IHdhcnRpbWU= XV07Cgo= bHV0 X0FjY291bnQ= Pygn Y29vcA== L3JlZw== LnNldFRv aXRlc3Nl IEh5ZHJh Qmlucw== Y2FkZW5h Pi8nLA== Llwi CWFjY291bnQ= IERhaGw= IGRyb3du IGdhdXNz IHRyYW5zZm9ybWVycw== IE1ldGFsbGlj IEhlcmJhbA== YWNocw== X2J1dA== IGl0ZXJhdGl2ZQ== IEZyZWVk anVy fE0= O2JyZWFr X0ZG KGRvd25sb2Fk 4buDbg== LmNoZWNrU2VsZlBlcm1pc3Npb24= TkVUV09SSw== OmZsZXg= IENUTA== IEFyYg== IFByb2R1Y2U= CXN5bmNocm9uaXplZA== 4oCcT2g= LmRhdGF0YWJsZXM= IGNvbmVz RMOp 0YbQsA== QWxn IGZ1bmNpb25h IFViaXNvZnQ= IGdlb3BvbGl0aWNhbA== IHNpZWh0 IGh5ZHJhdGlvbg== c3Rocm91Z2g= IER1ZGxleQ== YXrEgw== IHRheGluZw== INC30LDQutCw0Lc= X0FTTQ== TmV1dHJhbA== dHJhZGl0aW9uYWw= UGxheWFibGU= IHNwYWdoZXR0aQ== IGlDbG91ZA== IERheXRvbmE= IHdlcmRl IEFOVA== IFByb24= IFN0YXRpb25z IGF0dGVzdA== IGZ1bGxlcg== IG5vdmFtZW50ZQ== XVxc Y2Nl KGRlY2s= L2F5dXNobWFu aWdzYXc= IGFkdWx0ZXM= IHRlcnJl Lk9yZGVycw== CXByb3BlcnRpZXM= RElH IFRJTUVT ImluZGljZXM= ITw= TW9uYWQ= IG5vbmV4aXN0ZW50 IEF0bGFudGlz IGdyaWV2YW5jZXM= dXJlbmNl IElQUFJPVE8= 4pmA4pmA4pmA4pmA IGVtcGxlYWRv INmD Lk1vdmVOZXh0 IElzbw== YmVhdXRpZnVs IHNvbHVibGU= IHNsdWdnaXNo IGRpZmZz X09CUw== eG1pbg== IHR1bWJsZQ== IFVuYXJ5 IHppcGZpbGU= IHN2ZW5za2E= ZXJsYW5k L2N1cGVydGlubw== CXNjcmlwdA== aXNjaGVz TW9kaWZpZWREYXRl IHZleWE= IGRldGVybWluYW50 IEdvcmdlb3Vz Z2Jvb2xlYW4= IExPRA== ZGNj c2NlbmVz IFRTUk1MUw== KFR5cGVFcnJvcg== IGNhbW91ZmxhZ2U= IGJ1cmdl VGhlbQ== LkFzc2lnbg== IGxhc3RJbmRleA== X3NwaGVyZQ== X0FCSQ== w4Q= aWxhZ2U= XHhmZg== IGtheWFr IGZpeno= dWl0ZW4= LlNob3VsZEJl IGh0b25s IFBldGl0ZQ== IGhlYWxz IE9zYWth Tko= SW5QYXJhbWV0ZXI= IEJpcmNo IGNvbW1lbnRhaXJl IFNpZWdl IGtleWNvZGU= LWludGVuc2l2ZQ== cHJvcFR5cGVz RXhwb3J0cw== IGJ1dHRvblRleHQ= IEdvZHppbGxh LkV4Y2hhbmdl IHVuZGVyc3RhbmRhYmx5 IGFjY29yZGlvbg== IHLDqWdpb24= IG1hcmtlZGx5 YW5vb2dh IGNvbnRyYXQ= X2xpZnQ= W2RhdGU= IHNjb3Ju IERhdGFNYW5hZ2Vy 4oCm4oCmCgo= X0NPTVBJTEVS IENsYXc= b2RhdGU= IHVuZGVyYWdl IEltcGxlbWVudGVk Q2xp S2Fs UHJvZHVjdG9z IGVuZmVybWVk w6lpcw== IGRpc2NyZWRpdA== IFNhbW9h IFByZXNlbnRlZA== IGNpbmVtYXQ= XEFjdGl2ZUZvcm0= IGZlcm4= IFByaW1lcg== 5oKo Z2VyZQ== IGlsbHVzaW9ucw== bm90YXRlZA== IHBvag== IG1vZGVsTmFtZQ== IFBNQw== IGRlY2Fk IGZvcmVzdHJ5 dm9pZQ== Li4uCgoKCgoK IH19Owo= IHRva2VuSWQ= YW1tdQ== IFBlcnNvbmVu IFZFUkJPU0U= IHBhdHJvbHM= IGFudGlj X2RlZXA= ZWdlbmQ= IFNldFByb3BlcnR5 IEdhcmV0aA== IE1BUw== LnJlc3RhdXJhbnQ= IEhlYXZlbmx5 aWVkbw== X2xlYWQ= IEZ1amk= UU4= TWFzc2FnZQ== IHBhcmFtTWFw IGNpdGE= X1NwZWVk KGJib3g= IEpVTA== 4oCZYW4= IG1lbnRl IFNob3djYXNl IENTSQ== PlR5cGU= LlNu b3R5cGljYWw= IEZhbGxvbg== LlVUQw== IHByZWRhdG9yeQ== IG9yZ2FuaXNpbmc= Y29sZA== IHBhcnNlcnM= dWllbg== IGNvbXBpbGVycw== IFs9 IEV1cmFz TU9TVA== CiAgICAKCg== UkFS LlNjaGVkdWxl Lm9wZXJhdGlvbnM= dWZz w7FhbmE= IHByZW9jdXA= LXRyZWF0ZWQ= LmdldFdvcmxk Lic6 IEFUSA== OnN0YXJ0 IGF1dG9pbW11bmU= IEJsYWNramFjaw== X0ZJTklTSA== KGZsb29y IHdyZWNrYWdl VVJU LkJyYW5k cGFpcw== Y2ltYWw= Y2nDsw== TkZM LWVxdWlwcGVk LmNvbnRlbnRPZmZzZXQ= IG92ZXJjcm93 IFRa IG9kb20= IENlbGx1bGFy CXdyaXRlbA== KGlucHV0U3RyZWFt KHByZWY= LXN0b2Nr IERlbmllZA== LXN1cHBvcnRlZA== ICcoKA== YW5jb2Rl LmZpbHRlcmVk RGltcw== IGpi CXByaWNl IEBACg== bm9jaw== Lm9wZW5Db25uZWN0aW9u IGFudGljcw== cmVzdWx0Q29kZQ== UGxheWJhY2s= IGNlbHVsYXI= IEZPT0Q= IFBvZGVzdGE= PW1lc3NhZ2U= LnBlcmZvcm1hbmNl IERtaXRyeQ== YWx0aW1vcmU= IHBsYXRlZA== IHR1YmVyY3Vsb3Npcw== X2dlbQ== KEVkaXRvcg== VHBs IGNyaWFu IGJ1ZmZlcmluZw== 6KeG6aKR ICcpCgo= VnU= TWF0aGY= IHRpbWVsaW5lcw== IFRhdGE= L3Bw IHBsYXN0 IFRydWx5 IFN1YnN0aXR1dGU= a2llbQ== a2Fhcg== IFZpc2g= J2h1aQ== IE1hZ2ljaw== L0xheW91dA== dXJhbsOnYQ== X3R0bA== SGlkZUluSW5zcGVjdG9y LmtleXdvcmRz TGlzdE1vZGVs X1N1Y2Nlc3M= aWxpaGFu IGJsYWNrbWFpbA== IFNlcmJpYW4= cXVlbGxl IER5c2Z1bmN0aW9u IFByZXBhcmVk IGpNZW51SXRlbQ== IGxvZ2luVXNlcg== c2V0YXR0cg== LkNS X2xjZA== IGJ5dGVzUmVhZA== IGNkZWNs IHRvd25zaGlw cGVr aWprc3RyYQ== IG1heGltaXppbmc= LnByb3ZpZGVycw== SW52ZXN0aWdhdG9ycw== IHNob290b3V0 IGFpcnNwYWNl dG9vbGJveA== UVdpZGdldA== PXBr IHBvcnRlcg== IFByZWRhdG9y IFN1bnJpc2U= IGRldm91cg== CVVJbnQ= aXR0YW5jZQ== U1BB X2VuZGlhbg== IE5hZ2Fy dmVuaWRh L29wdA== QnlFbWFpbA== IFBoeXNpY2lhbg== XEQ= INC80Ys= WUVBUg== SUND L3BvcnRmb2xpbw== LmV4ZWN1dG9y dWRlbQ== RmFsbGJhY2s= dWR1 U2xpbQ== w7Nsbg== Xnst YW5za2U= IGh1c3RsZQ== IElyZW5l IGFieXNz IFJvYmJpbnM= IGluZGV4ZXI= U2F1ZGk= IHdob2xlc29tZQ== LXNsb3Q= IFRlY24= IHBhZ2VUaXRsZQ== IGNvbnRlc3RhbnQ= aWNvcHRlcg== IGNvdXJzZUlk Q2hy IEFYSVM= Zm9yZGVy X1RVTg== VHJhZmZpYw== IHR5cGVhbGlhcw== IGRhcmY= LXVyaQ== dHN4 LmRlc3Ryb3lBbGxXaW5kb3dz IGl0ZXJhdGluZw== UmVhY3Rpb24= CUFN IGN1ZW50 LWNvb2tpZQ== IGZsYXZvcmVk c3RvaQ== IGZsaXJ0aW5n 44CL77yM 4KSu X0NSWVBUTw== W3Rva2Vu IHByb2xldGFyaWF0 LuKAmeKAnQoK CWRj LlN0cmluZ1Zhcg== IGxlZ2l0aW1hdGVseQ== X2RlY29yYXRvcg== TG9ja2Vy IEplbm5h VVJJTkc= 5YaN X1ByaW50Zg== QVRPUlk= LWRpc3Q= ICIuIik7Cg== LnF1aXo= IGlyZ2VuZA== LWxlYWd1ZQ== Z2llbg== IFByb2R1Y2Vk SGVsbWV0 5Y+v6IO9 UGxhdGZvcm1z IFJlc291cmNlTWFuYWdlcg== IEh1bmRyZWQ= cm9tZXRlcg== ZW5na2Fw SG9w IHBvc3N1aQ== QmVmb3JlRWFjaA== IENISw== IElNUw== VGlja2Vy IGdyaW5uZWQ= LmdldEFz IGltcG9zZXM= XSIp Rm9yZ2V0 L2ltcG9ydA== IGluamVjdGluZw== TG92 IGFicmls X3NsaWNlcw== LWNvbW0= IFBST0RVQ1RT IE9hc2lz IMO4bnM= IFJlamVjdA== IHJlZ3VsYXJpemF0aW9u aW1wbGljaXRseQ== bmF6 U3BlY2lmaWVy IGltcG92ZXJpc2hlZA== 5po= IG5vbWluYXRl IE9WRVJSSURF IEJhbmRz ZXRoeXN0 IEppYW4= IG5ld2NvbWVy IE5hYg== IGVicA== IFBhZ2Vy IEh1bWI= L2Nj IGV4cMOpcmllbmNl dWRnaW5n TWI= ZGJ1Zg== Jy8+ IG9ja3PDpQ== IGpkYmNUZW1wbGF0ZQ== IFNISVBQSU5H IGludGVyZGlzY2lwbGluYXJ5 IENFVA== YXV0b3A= LXN5bWJvbA== YXZlYw== IGNvbXBvdW5kZWQ= IENodW5n X1NNUw== LWll IFByb3NlY3V0b3I= IExlaWE= IE1hbmRlbGE= U2luZ2xlT3JEZWZhdWx0 CVJFUVVJUkU= YXRvd24= dXJyZXRz 5paH5a2X IENPTlRFWFQ= RU5TSVRZ IGluc3VyZ2VudHM= IERpYXM= LnN0YXRpb24= IEtsYW4= X21lYXN1cmVtZW50 X1FNQVJL IHN0b2k= TU9PVEg= PicpOwoK IGluZ2VzdGlvbg== IEdsb3c= dXRjaGVz YmVhcmluZw== LnRvYXN0cg== IGZyYWdtZW50YXRpb24= aXBwbw== X1NFR01FTlQ= IHN0dW1ibGluZw== aW1hcg== c3Rpbmlhbg== XygpCg== IG1vdGl2YXRpb25hbA== TGlzdEl0ZW1UZXh0 IHdvbWVucw== T3BlbkhlbHBlcg== aWJhbmQ= IGJ0blNhdmU= IGluY29ycG9yYXRpb24= IGRvY3VtZW50YXJpZXM= aWNs IE5k IEFyYQ== IHF1YWtl IEN1bW1pbmdz aHRt YXN0ZXJlZA== LmR0cA== IGNvbmRvcw== IEd1bmRhbQ== L2Rpc2FibGU= aHlkcmF0ZQ== IEVwb2No IG5hdGlvbmFsaXN0cw== IGRldmVy LHJlcXVlc3Q= LmdldFZlcnNpb24= Q0VMRVI= IFNhbGFo IG1vdGU= IE1lbGxvbg== c3BvdGlmeQ== IG9yaWdlbg== IG5hbGU= IGFkdmVyc2FyaWVz LkpUYWJsZQ== Zm9yY2VtZW50cw== IFJldHJlYXQ= IGFyY2hpdm9z IHNsYXNoZXM= Lk1vdXNlRG93bg== PDo6 X3Rocm91Z2g= QWxhbWF0 LmJsdXI= X2ZpbmRlcg== IGFsbHVyZQ== UGVyaXBoZXJhbA== X3Bhc3NlZA== X2NoYWxsZW5nZQ== IFBhbGVv SU5J RGlyZQ== c3BoZXJl KENPTE9S YWNrZXJz IEdseXBo KGludGVnZXI= INC60L4= IFJlbGV2YW50 INm+ IGF0YXM= X3ByaW0= IE1VVA== bmluZ2Vy YXV0b3JlbGVhc2Vwb29s PV9f IFNpZ25pbmc= 7ZWY7KeA IHVjeg== RWRpdGluZ1N0eWxl IEhlYXRlcg== IEZhaXJmaWVsZA== IEJlYXJk LGVu dXNhdA== KCcuJw== L3N0cmVhbQ== IGdldFN1cHBvcnRGcmFnbWVudE1hbmFnZXI= IG1DdXJyZW50 X1NUQVRFUw== X3dpbmQ= Q0hBUFRFUg== cHJvYmFiaWxpdHk= KGFubm90YXRpb24= ICovDQoNCg0K LlVuaXF1ZQ== LkFkZEZpZWxk SGlnaGVy LmRpZ2l0YWw= LmV4cGVyaW1lbnRhbA== YXds IHdoZW5jZQ== ZXJub3Rl U0FNRQ== Lmlwdg== dG9CZUZhbHN5 YnJhbmU= X2NhdGVnb3JpY2Fs QXVyYQ== IFR5cGVTY3JpcHQ= IHNwb250YW5lb3VzbHk= bG9uZ2xlZnRyaWdodGFycm93 aWthbA== X1RPRE8= IFd5YXR0 IGZsdXJyeQ== ZGlm IHJlY2tvbg== IENvcm91dGluZQ== CWZmbHVzaA== IHdvcmtmbG93cw== IEZBTUlMWQ== c3ByaXRlcw== X1dvcms= LkdldFNpemU= IENvbnN0cmFpbnRz QmlnSW50 aXRpYQ== Z2V0Um93 IGR1aw== IGlzTmV3 IFByb2R1a3Rl eENC aXNpZXJ0 ZnVuY3M= IEFkZW3DoXM= QmluZGluZ1V0aWw= b21waWxlcg== LWludg== IGNoYW50cw== IGVudHNwcmVjaA== KHRp X0lB 0L7RgNC00LjQvQ== IEZBTEw= aW1k IGxvY2FsdGltZQ== PExpbms= 0L3QuNC60LA= IHByb2ZpbGVy IGdldFVzZXJJZA== IFBoeXNpY2lhbnM= UkFE IGhtbQ== IE5lc3M= IFRlbXBv IEpU IHJlY29ubmFpc3NhbmNl PHRyYW5zbGF0aW9u IGVudGljaW5n IHF1YWludA== IGNvdXBl X18nLA== TkFTREFR INC30L3QsNGH0LXQvdC40Y8= UEVSQVRVUkU= IFBhaQ== IHRldGFz Q0FT SVJST1I= IGtj IHRvdGU= IGRyYXdiYWNr IHBhcnNsZXk= CUZ1bmN0aW9u aXN0eQ== IERVUA== X0NJRA== X1VU IGtzaQ== IGrDpA== PXZhbA== LnRvSGV4U3RyaW5n 5p2/ LmNsaXBz IG9mZmVu IFRFQ0hOTw== IFNoYW1l IHN1c2NlcHRpYmlsaXR5 IHN0dXBpZGl0eQ== IFRyb3V0 IENoYW1wYWduZQ== ZXRoeWxlbmU= IGJlZ3I= X3JlZGlz WWVw IGhhbnM= IERlZmVuZGFudA== IGRhc2hlcw== IHVzZXJUeXBl X2RhdG9z IHVuaWM= a3JpdA== IHJlY2VwdGl2ZQ== IEdyZXQ= KG1i IEluZmx1 w6tu fS8+ aW50ZXJlc3Rpbmc= VVRVUkU= IGltYWdlU2l6ZQ== IGdyZA== IGFic29s L2Zh LmdyYWRpZW50 IHd5c3Q= XX0+Cg== bGVnYXRpb24= Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCg== IEJsZW5kZXI= X18pOw== IHVzZXJFbWFpbA== IFBoYXI= bGVoZW0= KSk/ KFJldHVybg== ZWdyYQ== dXRpdm8= IGFwcGVuZGl4 IFJUVkY= IFNFQUw= IGd5cHN1bQ== X0FyZw== IGlsbHVtaW5hdGU= IFNjaGlmZg== cXVpbA== LkNvbWJvQm94U3R5bGU= J10pKQoK IGFsdGVycw== IHByYWN0aXNl IHVzdA== IERpbWl0 LVJlZ3VsYXI= IGNyZWVwaW5n IENhbmFkaWVucw== IHJldG9ybg== LWNvcm5lcg== ICJdIg== KHJuZw== IGNhbmFkaWFu IHBvc3Rv LmFzc2VydEFsbW9zdEVxdWFs IEJlY2t5 L3Nz IGhvc3RhZ2Vz IGJpb2xvZ2lzdA== IEhvc3BpdGFsaXR5 IEVsaw== IEJhcmFuZw== 66qp YmJiYg== LnRlYWNoZXI= IHRlcm1pbmF0ZXM= IGlzRXJyb3I= IEtlbmRyaWNr ZW5kYXJz IFN1Z2dlc3Rpb25z Q2Vs IFNlcnZpY2VQcm92aWRlcg== IFdpY2hpdGE= XSkpLAo= IGhlYWRsaWdodHM= X3ZlbnRh QU5USQ== IHByb3BpZWRhZA== IGVubGlzdA== CW9yZw== TWVzc2VuZ2Vy LmxhbmQ= IicK YXNwZXJz IHRlcnM= ZmlsdA== IEZ1bmN0b3I= IHNsaW5n X0JMSw== LUV1cm9wZWFu IEFjaGlsbGVz XEVudGl0aWVz LkRpc3BsYXlNZW1iZXI= IHJlZGV2ZWxvcG1lbnQ= CWhlbHA= IFsnLQ== IEp1bGllbg== PUludGVnZXI= LmlzTnVsbE9yRW1wdHk= IFdvVw== UGF5bWVudHM= KGhkcg== IGJhamE= IEpDb21ib0JveA== RmlyZWZveA== IGNvbmdsb21lcg== X2N1c3Q= JCIpCg== IG11dGFudHM= TWFnbg== IE1QSA== e18= X3dhcm5pbmdz IGdhc3Q= THQ= IHRyYWluYWJsZQ== VHJhZGVtYXJr QkFTSA== IEVDUw== UmV0cmlldmU= J08= IGluaXRpYWxpc2Vk IGNoZW1pbg== LlRyYW5zcG9ydA== IFlpbmc= YXNpb25z IG1vYw== X0xPR0dFUg== R0VOQ1k= IEJsb2dnZXI= ICIpIgo= UEVuZA== IGFjY29tcGFnbg== LkNPREU= IG1MaXN0 LWVkdWNhdGVk LC8= IE1lcnJpbGw= L3Blb3BsZQ== LicnJwo= X3RvZG8= IGfDvG4= X0ZVTExTQ1JFRU4= LmNsZWFudXA= VW5tYXJzaGFsbGVy LlN1cHByZXNzTGludA== IG9uc2xhdWdodA== IE1hcnNlaWxsZQ== ZWRpYXRvcg== X0VOVFJJRVM= LGRlZmF1bHQ= bWVsZHVuZw== ZWxmdGg= IEdvdmVybm1lbnRz IHBsZWFz b3R0cw== IHBsdW5kZXI= cmVhZE9ubHk= IGR5c2Z1bmN0aW9uYWw= J05laWxs IHVubG9hZGVk IHNxdWVlemluZw== IGRvb2Q= LmFkZERhdGE= IEFzaQ== TUVT KHNjaGVkdWxl IGFkdmVudHVyZXJz ZXhwZWN0RXhjZXB0aW9u IH19Pns= Q0xT IHJlY2hlcg== IGRlcm5pw6hyZQ== LkRldGFpbHM= IHJhbmRvbU51bWJlcg== IGlhcg== IExhbmdl ZXdl IEVtaWw= IGFkdmVydHM= IGRyYW1hcw== IEtvbW0= ICAJCQkJ X1Rlc3RDYXNl IENsYXJlbmNl 0LXQvdGC0LA= dG91cHBlcg== Lm9uU3VibWl0 Y2Fh X0FMQVJN KikKCg== IOuzgOqyvQ== LlByaXZhdGU= IHNreWxpbmU= UkFJTg== KGN1cmw= b3NpdGU= SWdub3Jpbmc= IHZ6 IHZlZGVyZQ== IE9TWA== YmFuYW5h IG1ldGFt IHRyYW5zbGF0ZVk= IE1jR3I= 4oCZYWNj 5Lul5LiL IHNwaXJpdHVhbGx5 KGVuYWJsZWQ= IHJlc3RvcmVz IGJ0bkNhbmNlbA== dmFuaXNoZWQ= IE51ZXZv U2FsdmFy Y2FmZmU= IG1hc3RlcmluZw== aWRkbGVk LmlzZGlnaXQ= IGdyYXZ5 YWdlZExpc3Q= XFJlc291cmNlcw== IGRvd25mYWxs LlBhc3M= IGFsdGlqZA== IHBpenphcw== IH0pKQ== cGVybXM= aWdodG9u IHJlcGVsbA== ICcnKSw= Lm5vcm1hbGl6ZWQ= IG1hcmNoZXM= CXJlc29sdmU= Q2hpbGRTY3JvbGxWaWV3 IEluc3RpdHV0aW9ucw== QXR0ZW5kYW5jZQ== bHNl ZXJkZW0= LmdldElucHV0 SGFzQmVlbg== YXBldXRpY3M= ICpc IFJpdHVhbA== X0xT IHNwb3RpZnk= IHNww6R0ZXI= IFRodW1ibmFpbA== KGNlcnQ= IGdldFJlc291cmNl X3Bsb3Rz IHN0YWluaW5n YWRqdXN0ZWQ= INep RGl2RWxlbWVudA== IFRUQw== IGFwcm92ZQ== LnZpZXdlcg== fD0= Z2V0U291cmNl 55S16K+d X1RC X2JpbGxpbmc= LUxpZmU= IHBzeWNoZQ== IHRhYlBhZ2U= IEluZmVjdA== eGZmZg== X2hpZA== IGFwb2NhbHlwc2U= IE5GUw== IElURVI= V2luZG93U2l6ZQ== aGVpdHM= IGluY3JlbWVudGVk IEJyYXk= ZW5lZ3Jv IGFsbW9uZHM= WVBSRQ== Tm9ybWFsaXpl 4oCcV2VsbA== IEFwaUNvbnRyb2xsZXI= W1VuaXQ= R2VucmVz IE5leA== IExORw== IGZvcmVnb2luZw== IHRlbmRvbg== IEhw Q291bmNpbA== IFNhdWRpcw== IERlemU= IHNjcmFwZWQ= IGJvdHRsZW5lY2s= IE9ybg== IHVubWFubmVk IGludm9raW5nU3RhdGU= IEV4b2R1cw== X0FUT01JQw== U3ViTWVudQ== X2NvbXByZXNz Iy4= RHJ2 LnB1c2hCdXR0b24= IHN1aXRjYXNl b3NzZWQ= Yml0cmFyeQ== U25pcHBldA== IEVwaWRlbWk= RGlzYWxsb3c= X0NISw== IHZlcmlmaWVz IENhdGFseXN0 4oCUZnJvbQ== IGNvbnRhbWluYW50cw== Sm9obm55 KGZpbA== IGRlcmVu IG91dGNyeQ== IEpvaGFubg== PFRhZw== X3Nhbg== IHN0ZGRldg== IHBhcmFseXplZA== IExleHVz b3NhdGU= IENoYXJzZXQ= IFJlYWx0 PT8iLA== KERlZmF1bHQ= IFRyZWFzdXJlcg== RWluZQ== IHVudHJ1ZQ== IGZpbmFuemk= IGJlaGF2aW91cmFs IG5pcHBsZQ== IFJhZGljYWw= IFBheg== IE1haXNvbg== LWVtcGxveWVk IHdlcmVsZA== IGpvcw== IERpZWQ= ZW50cmVwcmlzZQ== JHJvd3M= IHNwb29m IMK7Lg== IGtleXBvaW50cw== IGN1cGNha2Vz IHt9KTsKCg== Y2hpbmU= 4oCL4oCL LExPQ0FUSU9O IHBseXdvb2Q= IG1hZ2c= IFJhbw== IERQUg== IGVib29rcw== KXNpemU= IHNwZWNpYWxpc2Vk I2Fl IG1pY2hhZWw= IFNURE9VVA== IFBlbGw= QU1FUkE= YW5nZWxv IGluZ2lu IG1BdXRo IGxlZ2FsaXpl IEN1YW5kbw== IGNlcnRv IGxpdHJlcw== IEV4dHJhcw== U0hPUlQ= IHByZW1hdHVyZWx5 IFNlbWFwaG9yZQ== SEVO IGFtcGhpYg== IGjDqQ== RXhpdGluZw== ZXVpbGxleg== IFRNUHJv LnByZWZlcmVuY2Vz LmdldEluZm8= w6l0aWNh IiIiLg== Lm5ld0FycmF5TGlzdA== IGtyb24= IEJMTA== Y2xpbmU= X2di IFRvbWFz cHJvYmFudGU= SVRJT05BTA== 4buRaQ== IExvZA== SXNu LHsK IGtvbW11bg== d2R4 Z2Vub21l 6YCj dG9IYXZlTGVuZ3Ro J0U= IHDDumJsaWNh IERldGVjdGVk IF8KCg== 0YzRjg== K1M= Y2xvdGg= Um90b3I= Lm51bWVybw== X3N0YW5k R0ND 6rU= X3Zw X0ZBUg== QWhlYWQ= e31c KGNvcnJlY3Q= ImNyeXB0bw== bW9kdWxv X1VUSUxT LlZhcg== LW1lbg== IHZlbmlhbQ== IE1jQ29ybQ== Z2V0TG9jYXRpb24= W2NvZGU= JWY= IGRpZmZlcmVk SVBBZGRyZXNz IFN0cmF3YmVycnk= IFNhaGFyYQ== Y3JlYXRlQ2xhc3M= IS8= IG1lbWJlcnNoaXBz IHByb25vdW5jZQ== LkNvbnN0cmFpbnQ= IEVucm9sbG1lbnQ= IHJlbmV3YWJsZXM= Lmd0 aXp6aWU= cnp5 ZXJzZW4= PD0k REVMQVk= IHNpZ25pbg== IFBTVQ== QXBwTmFtZQ== fVwuWw== RUdB IGNpZW50 IFN5bm9wc2lz IGxldHRlclNwYWNpbmc= IGNoaWxkcw== IFNjYWxpbmc= KXByZXBhcmU= IGNvbW11dGVy U2xhc2g= b3VzZXI= IHdhdGVybWFyaw== IFVJU2NyZWVu b2xpYW4= CXZlcnRpY2Vz PkFjdGlvbg== IGFwaA== aGFuZHM= IE9DQw== SFU= IHNlY2x1ZGVk IHZpc2NlcmFs IHZpZGVvZw== IFNhbXVyYWk= IFp1aw== IFdpZG93 YWNjaW5l IGxpbGxl IFJ5ZGVy IFByb2dyYW1tZXI= RXhwb3J0ZXI= IG1vdmltaWVudG8= YXBhcw== IGxlaWRlcg== dWxhcmVz aWVtZQ== LWRlbnNpdHk= ZGVzY2VuZGluZw== KElU IHNjcmFwZXI= IGljZWJlcmc= X0NSSVRJQ0FM IGF1dGU= X1N0eWxl IE1BTA== IEhlY3Rvcg== LUNocmlzdGlhbg== IGRpZmZlcmVudGlhdGVk IEJpc29u ICAgICAgIAk= LnBvcHVsYXRpb24= Umlv LVRy PVZhbHVl IEx1ZnQ= IEdpdWxpYW5p 55yf Q291cG9u IGhhY2llbmRv 44Od cG9uY2U= X3Jlc2lkdWFs IGxp4buHdQ== XHVmZg== 0L7QsdGF0L7QtNC40Lw= IHJlc3BlY3Rv IERlc2lyZWQ= RGF0YVN0cmVhbQ== LnNheA== IG1vcA== IEhhY2tlcg== QU5UQQ== QW5j VmVudGE= IFdvcmRwcmVzcw== CWVmZmVjdA== YWRhcHQ= IEludGVydmlld3M= IGRyYXdiYWNrcw== QUxMRU5H IGfDqW7DqXJhbA== LWJhZGdl UmVzaXN0YW5jZQ== IE9TSQ== dG91cm5hbWVudA== IFJlcHV0YXRpb24= IEVpc2VuaG93ZXI= RmlsZWQ= IGhlYnQ= I1w= Y3JlYXRlUXVlcnlCdWlsZGVy 5pyJ5pWI dmFuY2Vk Lkhhc0tleQ== ZGRl KHN0YXJ0VGltZQ== IEluc3RhbGxlcg== IEltcGw= Y29hY2g= IHByZWFjaGVk IGJyZXdlZA== SW5zdGFsbGVy b2x2YWJsZQ== IGFsYXM= KHNwZWxs IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw== IGRlZmFtYXRpb24= KEFyZw== IHVzZXJEZXRhaWxz IGxpY2Vuc29ycw== IEludmVzdGlnYXRpb25z IGRpbmVy IGZpY3Q= U3RpY2s= TmVpZ2hib3I= dG9UaHJvdw== LXNlY3Rvcg== IHJpc3VsdA== 4oCZOg== Sk5JRW52 eXBpY2Fs ZGVzaWduYXRpb24= KHdw IGNvbmZpcm1QYXNzd29yZA== LWlvcw== ICItIjsK CWFzc2VydE5vdE51bGw= YWRkRXJyb3I= YXZyYXM= Vm0= KGpRdWVyeQ== IFZpY3RpbXM= IHJlbGlhbnQ= IEJsaXR6 IG91dGFnZQ== IGZsdW9yaWRl IFROVA== LkRpc2NsYWltZXI= IFNOTVA= dmFibHk= IHBob3RvbnM= LlJlYWRBc1N0cmluZ0FzeW5j U2NoZWR1bGVk IGpld2lzaA== IEdlb2ZmcmV5 IEdyYW5ueQ== fgo= LW1lc3NhZ2Vz KGdvYWw= IGFyZ2VudA== IFBlc3Q= IGNvbmdyYXR1bGF0ZQ== aW5vc2F1cg== IHdoaXNwZXJz IHNpc3RlbWFz IEbDqQ== L0luZGV4 Lk1JTExJU0VDT05EUw== IGFjaGlldmFibGU= IEJyaXR0YW55 KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKys= IFJldHVyblR5cGU= IGluZml4 LmlzU3VjY2Vzcw== LkNhdGVnb3JpZXM= IG91dGxpZXI= LkFzc2V0 b3RlYw== IHdpemFyZHM= IGJvb3Rsb2FkZXI= X2Jlcg== IHJlaGFiaWxpdA== YW50b3I= IFZpdm8= IEdhcm1pbg== b2JqZWN0SWQ= QFBhdGg= IMO6bmljYQ== IFlvcmtlcnM= R3VpZElk JGVycm9ycw== ICs9Cg== IGF4aW9t IFBTSQ== IFN1Y2M= IFNwb2thbmU= ICciLiRf IExO Lm5ld0xpbmU= IGludGVyc2VjdHM= bGljaGtlaXQ= IElBTQ== LkRyb3BEb3duSXRlbXM= IGNvdXJ0ZW91cw== IFNtaXRoc29uaWFu IEhtbQ== UURlYnVn c3RyYWlnaHQ= X3NvbGQ= QnVsaw== VHJpU3RhdGU= IGFkZEJ1dHRvbg== IEhpcmluZw== VHJhbnNwb3Nl IFVJVGV4dFZpZXc= aXN0ZW5jaWE= L2NwcA== INC/0L7Qu9GP IENvb2tib29r L0FwcGxpY2F0aW9u Z2VuaWM= IFdvb0NvbW1lcmNl LHZlY3Rvcg== IEJpdGU= Lmh3 IGRvY2tpbmc= IFRhbnRyYQ== IFNWQw== IE1hdXJpdA== aWFsaWFz IEF1cmU= IGJvbHM= TE9DSVRZ IFdlc3Ricm9vaw== IEJQTQ== IEZleQ== IFNvdmVyZQ== IHBhbmRh IHF1aXp6ZXM= IGNyZW8= c3BlZWNo L2Rpcg== INC40YHQv9C+0LvRjNC30L7Qsg== IGZvdW5kYXRpb25hbA== LWFwcGVuZA== blRoZQ== IGFwaVVybA== LlhQQVRI IExpbmd1 IEV4aGF1c3Q= UGFraXN0YW4= IG9tYXA= IGZvbnRTdHlsZQ== 0LXRgdGC0Lg= IG1hbnNsYXVnaHRlcg== X0xvbmc= IGNhcnBldHM= Q2hlc3M= ZWxpZ2h0 RHJhd2VyVG9nZ2xl IFBhdHR5 X2Nyb3NzZW50cm9weQ== IHR3ZWFraW5n 0YLRgw== IENBTEM= c2lw IEpNUA== X19fX19fX19fX19fX19fX18KCg== VHJlZVZpZXc= LXdhdmU= IHBhc3R1cmU= ZWxpbWluYXI= IGVyeQ== IHJlc3RsZXNz 6rWs IG1hcmlhZ2U= IEVsbGll Xz0n IHZtaW4= S2ljaw== LnRvb2xib3g= IE1hcmlubw== eXBzeQ== c3RkYXJn cHRyZGlmZg== IFBlYWtz X1ZhbA== IGluZ2VzdA== IGNvbXBz RGViZQ== IERlY2xhcmF0aW9ucw== aXJjb24= PWFsbA== LkRlYnVnZg== UHJlZGljdGlvbg== IGRhdQ== KE1lbWJlcg== IGNoaWVmbHk= L2FuaW1hdGU= LkF0dGFjaA== IGdhc3RyaWM= IFVzZXJEZXRhaWxz w7ZyZW4= a29h LWJvb3Q= IHNwbGljZQ== bGVh b3Rp W29w U3F1YXJlZA== IHNjcm9sbFRv IE5ld2ZvdW5kbGFuZA== CUVSUk9S V2Fs RU1BTEU= R2V0WQ== IGNhYmlucw== IGFic2w= Lm1peGVy IGNkcg== Y29uY2VydA== IFN5bHZpYQ== Qks= 5LuK5bm0 X0NMQU1Q 0YHRgtGA0YPQutGC0L7RgA== L2dhbWVz xZN1cg== PGxvY2F0aW9u IGNsb3NlQnV0dG9u IEhhaXJzdA== 4bqhbw== IGNydW1ibGluZw== IHN1bGZhdGU= IGFsZ3VpZW4= IEpEQkM= IEt2 UElQ X3N1cmY= IHXFvHl0aw== IG1hbm5lZA== IE9jY2FzaW9uYWxseQ== b2Jqcw== TWluaW1hbA== LWRlc3M= IFdBVg== IEVycm9ySGFuZGxlcg== IHNldExvY2F0aW9u IGlldHM= IHN1YnJvdXRpbmU= IHRvbmd1ZXM= X3F1aXo= TWlsbGVy IEJhc2VUeXBl IFZ1ZXg= aXJhdGU= U2VyaW91c2x5 dHlwZWlk IGt1dGpl IHByZXNjcmliaW5n X3N1cnZleQ== LkN0 IGJsaW5kbHk= LmdldExhYmVs LCIpOwo= IHBvdHJ6ZQ== IFN3b3Jkcw== U29ydGFibGU= IEJsYWNrYnVybg== IE1hdGE= IHBvbmRz IHByb3Rlc3RvcnM= IEVuc2VtYmxl OmZvY3Vz IGl0YWxpYW5h IGRvcm1hbnQ= IE5lbA== SU5DTFVERQ== KENvbnY= IGJ1Zmxlbg== IENETg== LnhodG1s SGRy IGNhcmNpbm9tYQ== IFdvcmNlc3Rlcg== bmRs dXNlUmFs dXNlUmFsYXRpdmU= dXNlUmFsYXRpdmVJbWFnZVBhdGg= IHRha2Vhd2F5 ZWxlbWVudEd1aWRJZA== LmxhYmVsWA== W0lE QUxFUg== CXV2 PigpLT4= L2xp K2xlbg== IHByb3BlbA== IGNhYm8= XCIiKTsK IHZvY2F0aW9uYWw= LXBpbGw= Lm5sbQ== IGVyb3RpY2E= b3BvdA== bGFuZHNjYXBl aW5zaw== IHBsYWNlbWVudHM= LnNldEF1dG8= IGhvbWljaWRlcw== X0ZpZWxkT2Zmc2V0VGFibGU= Omw= IGFubm90YXRl LXJpc2U= LGFscGhh IGludGVydmVuaW5n YW1iaQ== Lj0nPA== IHBhcmxlcg== 772l772l IGNvbXBseWluZw== LWhhbmRsZQ== IGludGVycnVwdGlvbnM= cGxlcnM= cm91cHM= X0RlZg== IHBpY2tlclZpZXc= IHBpZXJjZWQ= IGVyYWRpY2F0ZQ== bW9ieA== W3RyYWlu RGVmZXJyZWQ= IHRvdGFsZWQ= Q2hpbGRJbmRleA== IFJlY29tbWVuZGF0aW9ucw== X1dPUkRT IHNpZ25pZnk= IEFlcm8= X2Jvb3RzdHJhcA== X1Vw cHJvZHVjdE5hbWU= LWFueQ== IHBwbA== X1BVVA== IGx5b24= X0lMaXN0 IMOpY3JpdA== KGd1aWQ= IGNvbnRhZ2lvdXM= X1NlbGVjdGlvbg== L2xhbmd1YWdl cXVhbg== IGFjdXB1bmN0dXJl IG9mcmVjZQ== CVJURQ== Lkd1bmE= IHNlbnNlZA== IEtyYWs= IHVubHVja3k= YXZpYw== dGl0bGVMYWJlbA== IGhheXN0YWNr LmJpdG1hcA== IENvdW5zZWxpbmc= UExBVEZPUk0= X1Rvb2w= VGFt V2VyZQ== 0YDQsNC3 X1NQRQ== IG9uQW5pbWF0aW9u PTw/PSQ= IFNsZQ== IEd1aW5uZXNz IHR3ZWFrZWQ= LXByZXNzdXJl X21vbnRocw== KW8= UHJvYmFiaWxpdHk= IENhbXBvcw== LkNPTkZJRw== VmludGFnZQ== PndpbmRvdw== IEZhY3RvcnlCb3Q= cG9zdGdyZXNxbA== IHRhYmxldG9w IENhdGE= aG9j X2FzYw== 4oKs4oCc QmFja1N0YWNr w6lv IFNvdXM= c2V0dGVy JyldKQo= dmVsbGU= IEFsdW1pbml1bQ== eEJB Lm1vbmdv IFZhcmlhdGlvbg== eXR1dA== bmVobWVy 4buDbQ== IGVmZmVjdGVk ICoqLw0K IHJlY291bnRlZA== UHJhY3RpY2U= Q0FOQ0VM Y3puaWU= TGFycnk= IHFh IEh1ZmZtYW4= Z2V0RHJhd2FibGU= IGVuZnJlbnQ= IG9uQ2FuY2VsbGVk IGxlbw== IFhTUw== IEh1cnJpY2FuZXM= IGpvbg== IFRlc3RlZA== IE1vcmFs IGJlZHRpbWU= IEpBRFg= IGVjaGFuZw== IG51ZXN0cmFz UENN KS4u IOyImOyglQ== IGJvcmRlcmxpbmU= IGFzc2lzdGly IEhlbHBz IERpdmU= X3NuZA== d2l0 X2JsZW5k IGlzRmlyc3Q= IGhlYXBx KCc9 IGFzc2VtYmxlcg== IE15c3RpYw== b3JnaA== IGhpam9z X0tIUg== KGRlY29kZWQ= IFFVSQ== INeR IGNvbnRyb2xJZA== U3BhY2Vy LmFnZ3JlZ2F0ZQ== IHNoYWx0 X3RyYXA= IEZhbWlsaWU= zrg= b3J0YQ== LlBvc3RNYXBwaW5n 7LA= ICcuLics esOh L2FybQ== LmdhbGxlcnk= IGltcGVjY2FibGU= IHdpbmRvd0hlaWdodA== c2xhY2s= ZmZi X3Fw bGFkZW4= IFRFUk0= c2V0TGFiZWw= IFNpbmdsZUNoaWxkU2Nyb2xsVmlldw== ecO8aw== IHB1bHVtaQ== LWdhcA== dW5pYWNpZA== CWhvbGRlcg== LmFkZEZpZWxk IHRyaXBsZXM= IEp1ZGdtZW50 IENlbmE= cGFyc2Vycw== LmRyYXdUZXh0 INC60LDQttC0 IGFjY3Q= aGl2ZQ== IG11c2lxdWU= IFlheg== LXBvc3Rz IGZpbHM= IC8vew0K X3B1dHM= IFN0YXR1ZQ== ZGlhbW9uZA== U3RvcmFnZVN5bmM= IHNodXRz IGdldHRpbWVvZmRheQ== IEFBQkI= aWNoZXJu Z2V0TG9jYWxl aW50cmVl IGZydWl0ZnVs QmVhcg== IHBsdW1iZXI= cWlk Q0hJUA== IG1vdGl2YXRpbmc= IGVzY2FsYXRl LmJ1bGs= IFBsYXlncm91bmQ= X21pcnJvcg== IFBlZWw= IGRhbmU= aW52b2ljZXM= SGFzQmVlblNldA== LXZlcnRpY2Fs IEZyYW5jZXNjbw== IEFTQQ== INC60L7Qu9C40YfQtdGB0YLQstC+ w6Bu Rm91cnRo IENyZWF0ZVRhYmxl Y2N0b3I= IGZyYW50aWM= YWFi IEthcmFjaGk= X2ltYWc= IG5hdHV1cg== RWF0 IHN0dW1w IHJvbGxlcnM= IHRyYWl0ZW1lbnQ= INC/0YDQvtC0 IHJlYWxpc3RpY2FsbHk= IGVQdWI= IFphZw== ZGFtbg== IEFubmV4 cGVjaWVz KGV4aXQ= IHNwZWN0YXRvcg== IEJ1bGdhcmlhbg== IG1lZ2V0 IG1hdHVyZXM= IGRldGVjdGlvbnM= IHphaGw= ZW5lZml0 YWtvdg== IGFkdWx0b3M= bWlkZGxld2FyZXM= aXNPYmplY3Q= S2Vubg== IHVuZXRoaWNhbA== c3VibmV0 R3JhcGhRTA== IEdhZWw= LkRyb3BvdXQ= IGJ1cmVhdWNyYXRz IFJlZGVtcHRpb24= LkR0bw== LkV2YWx1YXRl IG9nZ2k= IHRyYXRhbWllbnRv IHJlY2FsbGluZw== aXN0aW5ndWlzaA== L3JlbGVhc2U= X1dST05MWQ== CW1rZGly VHlwZUVudW0= IERBUks= 5rWB IFZhcG9y IGF0b2w= CWluc3Q= LmApOwo= L2Vs IHJlY2xhaW1lZA== w59lcmRlbQ== X2xvc3Q= IEFsYQ== INC+0YjQuNCx IEJhcnRo Q29sb24= b3Bvcg== X3Bhc3N3ZA== X2V4Y2x1ZGU= QVBB Zmxvd2Vycw== IEVib29r IFNUQQ== VU5T X0RJU1BBVENI QUNJw5NO dGVybWluYXRpb24= IG5lc3RsZWQ= YWRyYXRpYw== Um93QW5pbWF0aW9u X2tt IHJvbmQ= XV0+PC8= 5L2Z IGNvc3BsYXk= IG1pbGxlbm5pdW0= X3NlcmlhbGl6ZQ== IHZlcnNjaGllZGVuZW4= YW50dA== IEFtaWQ= Y3JldGlvbg== KT8k IHRvd2luZw== LmZpbA== LkZpbGVXcml0ZXI= IGFpcw== IGVTcG9ydHM= cHJ0 SVBB LkZBTFNF IHByaWNr RW5kaW5n IHByw6lzaWRlbnQ= X2dseXBo IHN1cHBsZW1lbnRlZA== IGNvbnRhcg== Ii4kXw== IEJ1eWVycw== dWph IFRpbWVab25l ZW5uZW50 SW5Qcm9ncmVzcw== IFN1c3RhaW5hYmlsaXR5 IFByb3NwZXI= Q29udG91cnM= IHN0YXJ0bGVk X2xlYXN0 IENvdmVudA== Y2huaXR0 IE1pbGt5 ICItPg== ZXRhaw== IHR1c3Nlbg== LXBheWluZw== X2FjY2Vzc2libGU= QmF0bWFu KGl0cg== SUFMSVpFRA== IFRleHRBcmVh YW5rZQ== X0pVTVA= IGJlaGF2ZWQ= LG9wdGlvbnM= eGl2 LlBMTA== cXg= Lm9uTmV4dA== IHZlcmlmaWVy IGR1xbw= IEZ1a3VzaGltYQ== IENPUlBPUkFUSU9O X3RE IE1lYWRvdw== IHByb3llY3Rvcw== ICgnXA== IEJhcmNsYXlz IGxlZ2FsaXR5 IGhhbWJ1cmdlcg== IGVpbnM= SW5kaWFuYQ== IFRLZXk= Y2xvYWs= PGFsZ29yaXRobQ== IHByZWFjaGVy e2xuZw== LmFydGljbGVz c2V0SW1hZ2U= UmVuYW1l IGJsb3Nzb20= IEJsb3Nz IHV1cg== IGRhZHM= IFRpdGFuaWM= ICAgICAgICANCg0K IG9yZGluYW5jZXM= IG3DpG5u IGVyaw== IGRpc3RpbGxlZA== IMOkbA== IHJ1cHR1cmU= IENhbWVyYXM= w7luZw== IGhhaXJzdHlsZXM= IGVtYnJ5b3M= 4oCdCg== Lk5hdg== IHN0cm0= CXVzYWdl LkFJ IFRPVUNI IElsbGVnYWxBY2Nlc3NFeGNlcHRpb24= 6rKw a29uZWtzaQ== ISIp IGVzY2Fw dWRpb3M= c3RhcnR0aW1l IG1laW5lbQ== IFNwaXJhbA== IEVyZWN0aWxl aXZhbGVuY2U= IGl0ZW1UeXBl IGFiYWl4bw== VmVydHM= dGFraW5n cHN0 IE9zY2Fycw== IER4 ZXR0eQ== TUFM IE5lZWRsZQ== IENPTVBVVEVS 5Lu75Yqh IG5ld1g= ICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAK cGxldmVs QUNFTUVOVA== IEpvaGFu UG9pbnRG IHJlc3Ryb29t dmVybw== IGVsxZE= cHJvZHVr IFlFQVJT CWFjdHVhbA== VVBMRQ== Q29udmVydGlibGU= IHBvcnJm SW5qZWN0ZWQ= X2JvdGg= L0dhdGU= Y2FsY3VsYXRvcg== ZW1haWxlcg== LlBvZA== IFpvdA== X3NtYXJ0 YmFzaXM= PENvbG9y IGNyYXZpbmdz RHJpdmVycw== KGNvcw== ZGF0YWJsZQ== LW1ldGFs IFBj LmNvcHlPZg== IG9yaWVudGF0aW9ucw== CWFzdA== IFpvbWJpZXM= IGJvbWJlZA== SG9zdG5hbWU= X3JhaXNlcw== bWVuc2FnZW0= IGNvcnRpc29s IEZpb25h bGljb3M= aGVhdnk= IOqwgOyguA== b21lbmNs IGN1bHR1cmVk IGFydGlrZWw= xaHDrQ== amRr IHZhbmRhbGlzbQ== IH1dKTsK U3RyYWlnaHQ= IHJlaGVhcnNhbA== RWRpdGlvbg== IEluc3Bpcg== CXdj IGZvcm11bGF0ZQ== YW56ZWlnZW4= IHBhdGhvbG9naWNhbA== IGtlbm5lbmxlcm5lbg== Pnsi IGRpY2Vk IGJyYWNlbGV0cw== CQkgICAgCg== Kj4q L3RhcmdldA== LkFnZW50 Lm1hZ2lj IGlkZW9sb2dpZXM= VFJBQ0s= X2luZGl2aWR1YWw= PGRlY2x0eXBl IFJFQ0VJVkU= L2Jvb3Q= OkB7 UU0= IE1hbmRhbA== TkFNRVNQQUNF IHRlcmNlcg== IFJlZ2dpZQ== IE5pY2hvbHNvbg== IEZ1bHRvbg== c3Rha2luZw== IHJlc29uYXRl bHBhcnI= IGNvbnZlcnRlcnM= ICgiLw== IE1hcmxpbnM= SW5mb3JtZQ== Jz0+Wyc= IHJvYmVydA== IEhJTQ== d2Vicw== LnRyYWlsaW5nQW5jaG9y LmFzY2lp IE1hc2M= IHRlY2hubw== ZXR4dA== CSAgICAgICAgCg== zrHOuQ== KFNlcQ== ID8+Ojwv IFBlYg== W3NlbGVjdGVk SkVDVEVE Q2FzdEV4Y2VwdGlvbg== P2Y= IGV5ZXdpdG5lc3M= IG1lbm8= IERhbWllbg== X0lFbnVtZXJhdG9y IC4uLi4uLi4uLi4uLi4uLi4= LlNFTEVDVA== IGNyYXk= X3BhcGVy LlJvbGxiYWNr SURFT1M= cnBhcnI= aW5lYXI= X1JlbA== IFdpbGRl IFdvbmRlcmxhbmQ= IFNodWZmbGU= IHN0cmlrZW91dHM= c2lnbW9pZA== ISgiew== ZXBhbQ== IHJpY2huZXNz IGVuZGVhdm91cg== bWVudUl0ZW0= INCf0L7Qu9GD0Yc= IGZydXN0cmF0aW9ucw== X3N1YnNjcmliZQ== IGJvb3pl IExpY2h0 IHBlYXNhbnQ= IHdlaWdodGluZw== IOW/ QWN0aW9uQ29kZQ== LnRyYWNrcw== IMOY IG1pbGxpb25haXJl KHVy J10pCgoK ICIuJF8= X0VERUZBVUxU IGN1cmxz X0NvbUNhbGxhYmxlV3JhcHBlcg== LnNldFZpZXdwb3J0 IGRlbmQ= IGF1dG91cg== IEZvdXJpZXI= IGJvaWxz IEpQRw== IGRpZ3M= IGNvbXBsYWlucw== LWxpbmVk IEJsYWRlcw== X2RpY3Rz IElwcw== cmVmZXJlcg== IGFueWhvdw== YW50YXI= LXNoZWV0 CXBsYXk= aWVyY2U= Lk1lc3NhZ2luZw== 6KeB CXByb2dyZXNz LkRhdGFWaXN1YWxpemF0aW9u IFN0b3Bz SW50ZXJ2YWxTaW5jZQ== QGJyaWVm LndpbmQ= IGdldElucHV0 IEtB IFJFU1BPTlM= IHRhcmc= dmlzdWFsaXphdGlvbg== IEVzcGHDsQ== bmllcg== IERvdmU= X2lzcg== IEFQUExZ YmVkbw== W117Cg== IGV2YWN1YXRl IG1pY3Jvc2NvcGlj 5q2j56Gu ZXJvdA== LW9wZXJhdGl2ZQ== aWt1dA== IGRibA== IGFqb3V0 Lml4 ICAgICAgICAKICAgIAo= dGVzdGU= bml2ZWw= LnNuYXA= dXR6dA== LmlzQWRtaW4= KElD IG9iZW4= IEVmZmljaWVudA== RERldmljZQ== IGluZGVtbg== IGZyb3pl LHJw IGRlY2VtYmVy 57uZ IG1lbG9kaWVz IEVUQQ== 44GT44KT44Gr44Gh44Gv IHF1YWxjaGU= IHNldERlZmF1bHRDbG9zZU9wZXJhdGlvbg== T1JJQQ== IHphZw== IGFsbG93YW5jZXM= L3Bo LVRva2Vu IFBvdQ== IG1pbmlzdHJpZXM= LkxPR0lO IHNlYXJjaFRlcm0= IGh1cnJpY2FuZXM= IEZsb3Vy IFNVUw== VGhlbWVz cmVlY2U= IGVudHJldg== RFhWRUNUT1I= IEJyZW5kYQ== RXJyb3JNc2c= OildOwo= IGRvbWluYQ== IEludmlzaWJsZQ== PD4oIg== cHV0Yw== SEFWRQ== RXZhbHVhdG9y bWF0Y2hpbmc= LW5hbWVz IGxhaA== X1lVVg== 5pyN5Yqh5Zmo LldSSVRF KTpc LWRlZmluaXRpb24= IGNoaW1uZXk= LmNscw== a25vd2xlZGdl IEFsZXhhbmRyZQ== IGNvbGVn b8WbY2k= LkNobw== IHNvZnRlbmVk IHJvdGF0ZXM= LXN0YXRlcw== 6rc= dmlvbGVudA== IDopCg== IGFjY2nDs24= bmlrYQ== IExhdHRlcg== X0Zsb2F0 IGVncmVnaW91cw== b2RpYWw= U3lub3BzaXM= KHhp IH0sew== Y3h4 RW1tYQ== IENvbmN1cnJlbnRIYXNoTWFw X0NhbWVyYQ== IHBlYW51dHM= 44Kz44Oh44Oz44OI X2JlZA== IGVycm9yQ2FsbGJhY2s= IFBhcHVh LFRydWU= tpo= IHN0YWRpdW1z IGtub2Jz aWZpY2FjaW9uZXM= IHB1cnBvc2VseQ== IFB1cmVDb21wb25lbnQ= INC60LvQuA== LlRyYWNr c3Nj KEpvYg== KEh0dHBDb250ZXh0 IGNob2lzaXI= IOy7 IGF1c3A= dXBwZW4= QWR2ZW50dXJl IEZMQUM= IGFwcGVsbGFudA== ICgoIg== z4c= IHRyaWY= IGR1cmF0aW9ucw== IE5HWA== LmJw YWN0aW9uRGF0ZQ== Lmluc3RhbnQ= LVJlcXVlc3RlZA== JyYm INGH0LXRgA== PWJvb2w= IGxvcmRz bGljaW5n IG1hcmlu IGJsaW5kZWQ= L2xheW91dHM= ZmVpdG8= aXp6bGluZw== RXZ0 IGJ1bGxpc2g= ZXhjbHVzaXZl 4oCZZXM= LmdldE93blByb3BlcnR5RGVzY3JpcHRvcg== IGJhcHRpemVk INGB0LvRg9GH IENlY2ls LmVmZmVjdHM= IGNyeXB0b2dyYXBoaWM= IFZpbGxl dWZ0 IEFudGhlbQ== IHNlZWtlcg== IG5pY2tuYW1lZA== IGNhbXBncm91bmQ= IGFjdGlvbkJhcg== IEVwaXNvZGVz IC0tLS0tLS0tCg== QnVpbGRlckZhY3Rvcnk= X1VOU1VQUE9SVEVE VklMTEU= LlJlZ2lzdHJ5 VG9uaWdodA== IG1ha3M= IGFkZG9ucw== IERlY3J5cHQ= LnNraWxscw== KGZo IGp1Z2c= IENvdXBsZXM= IEFtaXI= ID09PT09PT09PT0= IGVuZGVyZWNv LlN0cmluZ3M= IGhhcm1pbmc= IGJ1c3RsaW5n KGZpcnN0TmFtZQ== LnNwYXJzZQ== SVRP ICAgICAgICAgICAgICANCg== 5p2l5rqQ b2RlZ2E= YW5hZ2Fu LkhhbmRsZXJGdW5j IHRpbmRlcg== ICMo IGltYWdpbmFibGU= IGF1bg== UHJlc2VuY2U= UGFja2FnZU1hbmFnZXI= IGx1ZGljcm91cw== acOobWU= IGdldE9iamVjdA== Ym94aW5n IHNxdWlk w6p0ZXM= RGFlbW9u X2xpa2Vz hrU= Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Lnd3dw== c3NlbA== ZXRlY3Rpb25z ZGFl L2Rvd25sb2Fkcw== IENsYXNzaWZpZXI= X1NVQkpFQ1Q= emVnbw== X0dST1VQUw== YWN0aWNlcw== X2xpdGU= IGRhbm1hcms= L2Js YXB5cnVz VElNRVI= IFNjcmlwdHVyZXM= 0Y/Rgg== c3Bh Ikc= IHBlbmV0cmF0aW5n IGNvbmZvcm1pdHk= bmV3bGluZQ== IGx5bg== IE1NUA== IElOVEVSRkFDRQ== IEFjdGlvblR5cGVz LmNyaXRlcmlh 4buRbmc= IHJlc3RpdHV0aW9u CUZPUg== PHBhdGg= PT8iOwo= KHBlcmNlbnQ= bmRv IEFDTQ== CWN0 QGE= IHTDug== IHNwb3R0aW5n w7xybg== IEdFUg== LndyaXRlVmFsdWU= X2Jsb2NrZWQ= WW1k IGluZWZm IFJhZGlhdGlvbg== IE9pbGVycw== QmVlcg== cm90cw== IFRyb3Q= cm5h cG9ydGVy ZW5lcnk= IHBvcm5vZmlsbQ== 65SU X2Nr LkNvbXB1dGU= IFtdCgoK Z2l1bQ== IFRFTEU= IEluc3RhbmNlcw== Kkk= IHdpcmVUeXBl b25pdW0= ZXNoaXJl IHB1dGNoYXI= IGF3YWtlbmVk LmRlZ3JlZQ== aGVpdGVu LWF3YWl0ZWQ= IG5ldXJvdHJhbnM= LXRlc3RpZA== CgogICAgCg== IOe7kw== IGtpbm8= X0RBWVM= IFZhbGVyaWU= bnRpdHk= QEJlYW4= ZXRDb2Rl PFJlbmRlcmVy IiIK IGJlcm4= IHRvdGFsaXRhcmlhbg== Y2xpbmlj IE3DvG5jaGVu bm9pbnNwZWN0aW9u aXNjZQ== X3R1cGxlcw== LlBvaW50cw== IHBhc3RvcmFs SmFr a2VuaW5n L2NvbHVtbg== LXByb2R1Y2luZw== IGFib2xpc2g= ZmVhcw== cmVzcG9uc2VEYXRh cmVkaXJlY3RUb1JvdXRl IG9ic2VydmF0aW9uYWw= cE5leHQ= enRl Q2hvaWNlcw== CUxDRA== JlM= IGJpbGxpb25haXJlcw== X0VPRg== IGNvaG9ydHM= YW5rZW4= LmNvbWJpbmU= KE9wdGlvbmFs X0NPTlNPTEU= QWN0aXZpdHlJbmRpY2F0b3JWaWV3 IHBoYXJtYWNpc3Q= IERvdWdo IE9wZXJhdGlvbmFs 57I= IGphbXM= U29sbw== CWR1cmF0aW9u LnJt IFRvbmk= LmxlYXZl IHB1ZWRh IEZheQ== RGV0YWNo Lk1heGltaXplQm94 IG1hcnR5cg== IGhhemU= L25l IG1hbW1h c2VsZWN0b3JNZXRob2Q= IHBpbGdyaW1hZ2U= IEFzcGhhbHQ= IHZhbGlkbw== RW5kRWxlbWVudA== IGxhcHNl ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K aWxvcw== ZXJuYWxz Q29ubmVjdGlvbkZhY3Rvcnk= IExvdmluZw== LkNvbXBpbGU= IGNvcms= IEJ5ZQ== aWJOYW1lT3JOaWw= ZXN0YXI= XEdlbmVyYXRlZFZhbHVl KExM IFJhaXNlUHJvcGVydHlDaGFuZ2Vk IElyYW5pYW5z IGdldFByaWNl bWFyaWVz anVtYm90cm9u IFJlYmVscw== RElGRg== IE1vag== b3J0aWM= CWNvbnN0ZXhwcg== bnRw IG1hZ2ljaWFu IHBhdHJpb3Rpc20= LmNl LlNpbXBsZUJ1dHRvbg== IFBSSVY= aGlzdG9pcmU= aGlnaGVy cmVmaXhlcg== Q0pL IE9zd2FsZA== LnNwcml0ZXM= Lkls IGFyY2FuZQ== IENodW4= X09m IGV2ZXJ5dGltZQ== 0Y7RiQ== IGxldHJhcw== aWxhbg== YmFydQ== LWJvdA== IFNpZ25pZmljYW50 iOyKteuLiOuLpA== 4oCM LWlzc3Vl IGluc2FuZWx5 YXRlZ2lj X1ZF OkNHUG9pbnQ= TWFya3M= LnByb2JsZW0= J10uJy8= IHJlZHVuZGFuY3k= IGRlY3J5cHRpb24= SHVuZw== LXZhbGlkYXRl IEFuZ2Vsbw== Sk0= IHBvcG92ZXI= ZGViaXQ= Q29tcHV0ZWRTdHlsZQ== KV9f KHNpbg== ICcpLA== KGRlZnZhcg== w7R0ZQ== VGhhbk9yRXF1YWxUbw== Lnpo KE5vdGU= aWJCdW5kbGVPck5pbA== IFNvbmlh eW1vdXM= 44CCPA== IGZpbG15 IGVhcnRobHk= IExlYXJuZWQ= W3NlY3Rpb24= Lmpzb3Vw c3RydXA= IFBhdHJvbg== ICkq c2V0Rm9udA== IGhlZw== IGRlbHRhWQ== X1NDUg== LmN1dA== IHZiQ3JMZg== Lk9iamVjdE1hcHBlcg== IHLDqXBvbnNl WXU= KCl7fQoK LXBhcmFtZXRlcg== xLFzxLE= aWF6emE= SVpFUw== X1NVUFBMWQ== a2l0cw== IHJlaW5z KGRvY3M= JSE= IHN5c3RlbWN0bA== IFBzcg== IFdlcms= UGhpbGFkZWxwaGlh QlJFQUs= LmFwcGVuZFRv KGxvbg== QWJy L3JlbmRlcmVy IEVsZWFub3I= Q0VSVA== UGFyYW1ldGVyVmFsdWU= JGdldA== IOCy IEpM IGlnbml0ZQ== IGLhuqFu IENhdWw= IGhhc3Rl IGRvbWluZ28= VGVzbGE= L2NvbmZpZ3VyYXRpb24= KGV4cGVjdA== dXNyYQ== IHByZWZlY3Q= IGZyb2dz IGFzc2lnbmFibGU= IGludGVydmVuZWQ= LmNob2ljZXM= VUlTdG9yeWJvYXJkU2VndWU= IGLDqQ== IEzDtnM= YWxwaGFiZXQ= IHByZWFtYmxl ZGJh IGVtaXR0aW5n Lm1vcmU= IEJhc2Vs KGRhdGVUaW1l KCl9KTsK IG5vZGVMaXN0 IEZQR0E= d2Vs IGxvZGFzaA== X2F1dGhlbnRpY2F0aW9u w7NyaW8= KHJ1bnRpbWU= X1NDRU5F IGN1ZmZz IEFkcmVzc2U= Ojw/ X2NtZHM= VMOqbg== IGVqZWN0 CUVSUg== PE8= IEtyYW1lcg== 4oCmCg== c29tZW9uZQ== IENQTA== 77yN bG9ja2luZw== LkZvb3Rlcg== IGFsbQ== IEFkb2xm KS4v IE1hdHRoaWFz ICIsIgo= ZW51aXR5 IExvdmVy IGFsaW1lbnRvcw== cGxldHM= w6R0emU= KHJlY3Y= dXJhYQ== U1RET1VU YW50eg== LkZsb2F0VGVuc29y IFJhZQ== cGln IHRlcnVn IHRoZW9sb2c= IHRheGlz Y29tcG9zaXRl c2hlcg== bGVEYg== IFJhaG1lbg== IDst SW5kZW50ZWQ= IHRyb2xsaW5n RVJJQ0FO Z2V0RW1haWw= X0VOQ09ERQ== Z2V0Q2VsbA== IFdyYXRo KHN1aXRl bm90RW1wdHk= LmdldFJpZ2h0 IGJyZWF0aGFibGU= 44Gf44Gg IHNldFRpbWU= J29wdGlvbnM= IHBheWxvYWRz YXVnYQ== ZWRt KHdlYXRoZXI= CXNlbQ== KGZyb250 IHBheW91dHM= LnNldFRleHR1cmU= LFtdLA== IFBhY2tz IGNhenpv V2l0aFBhdGg= UHJvZw== bW1hcw== IGtvaw== LkNzcw== IGRlbGE= QXdhcmQ= w7xsdA== c291cA== KFsoJw== b2xsaXBvcA== LFNMT1Q= Y2hpYQ== IGJsYW5jbw== T0xVVEU= LXBsYW5l LExpc3Q= eGluZw== SU1BVEU= LW1vcnQ= IGdyYXZpZA== IEhhbmdpbmc= IHNjb2Zm Lml0ZW1JZA== VEhFTg== aW5mZXI= IG1pc3BsYWNlZA== CU1vbm8= d2F5bmU= IGVkZ2Vk X25pY2s= IE1BUlQ= CXN0YXRlbWVudA== IEV2ZW50QnVz PkFib3V0 IGJ1cmdlb25pbmc= IGNpY2xv TE9PUA== IGRlZnk= IGVsZW1lbnRUeXBl IGNvbnNlcnZhdGlzbQ== V2ViSG9zdA== LkRpc2FibGVk IGNsYXA= IEFsZWtz cm9yaW5n aXNzaW9uYWw= LUJvbGQ= SVJUSA== Lml0ZW1WaWV3 cWluZw== P2tleQ== IFZlbm9t IGFudGlk IEZvcm1hdHRpbmc= UVB1c2hCdXR0b24= IEFzc2VtYmx5VGl0bGU= X3Jlc2VydmU= LkRpcmVjdA== QW5pbWU= IG1hdGVyaWFsbHk= IGFkanVuY3Q= LnNldFRvb2xUaXBUZXh0 bGFzc2lhbg== KG5y IG5pbmfDum4= IG1pc3VuZGVyc3RhbmQ= IEFwcGx5aW5n X2NvbXBhdA== IG1peGlu IGplb3BhcmR5 0YvQstCw0LXQvA== IGNvY2luYQ== X1dST05H QVRBUg== S0Q= IGNhdGVnb3J5TmFtZQ== SHR0cENvbnRleHQ= IGJ1YmI= IGFua2xlcw== b3dlcmluZw== RnJhbWV3b3Jrcw== IHNlZ3VuZG9z LkFzc2VtYmx5 X0VudGl0eQ== SFE= IGZvdXJz IGZvcmZlaXR1cmU= dmxhbg== LWRvbWluYXRlZA== LWF3YXk= SUNJRU5U LlJlYWRCeXRl YW1heA== Lj0iPA== X3Nwcml0ZXM= IFJlbWFpbmluZw== TE9PRA== X3JlcXVpcmVtZW50cw== J2FydGljbGU= IFBvbXBlbw== IHTDqXI= IERyb3Bz SG9tZUFz SG9tZUFzVXA= w7ph Lm5hc2E= X2Jpbw== IFlvc2hp RWxlY3Ryb25pYw== IGpvc2U= IGludGVsaWc= ID8+Pjw/ PnshIQ== X3Byb3Y= PURC PCEtLQo= LWZsb2F0aW5n eXVt LkpNZW51SXRlbQ== IE5hdGlvbndpZGU= SW1wb3NzaWJsZQ== 6K+m5oOF SmVycnk= IGRlc2Nhcmdhcg== 7JW8 RGVjcnlwdA== IHRlbXBlcmVk IGVrcw== w61jaWE= Lmxhcmdl IHVuZm9sZHM= IGh2ZXI= IEFWTA== LnR0 4oKA PSUu IHRvcHBpbmdz IHN0b3V0 IHNlbWluYWw= eGVz IE9VVEVS YWRybw== IHlvaw== IERlcmU= CWZyZW9wZW4= X2xuZw== Q2h1bmtz LmdldE9yRWxzZQ== KGVsbQ== ICgpKTsKCg== Q2VsZWJy X2NhcGFiaWxpdHk= IHNvY2llZGFk IGludGltaWRhdGU= IEJsYXplcnM= aWd0aA== ZW5kY29kZQ== VUlMREVS IEhhbm5pdHk= IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K INC40YHQv9C+0LvRjNC3 IFRvb2s= IE1vdmVk IHByb250bw== IE1hcnRpbnM= RGF0YUV4Y2hhbmdl LlBvb2w= ZXVz IGpvYklk IEF4ZXM= IGhhbXN0cmluZw== LnJtaQ== RGF0YVRhc2s= IE1hZ2ljTW9jaw== IEdBUw== IE5hdw== IHNuZWw= X3NjZW5hcmlv IGVtYWlsQWRkcmVzcw== IE11c3M= IHBob2VuaXg= IGRlbnNpdGllcw== IE1hY09T cmVtYQ== IHRlc3RlcnM= KT87Cgo= IHB1cHM= bGFwcw== ZGRi L1BlYWs= IGJhY2tzdGFnZQ== IGJhY2tCdXR0b24= KG5hdg== eEFF c3RyY3B5 aWNodGV0 IFJpZg== 4LiB4Lij IGhvbm91cmVk IGdyYXBwbGluZw== VmVydGV4QnVmZmVy LmdldEFjY291bnQ= LU5ldw== IG9wcHJlc3M= IHV0dGVyZWQ= IFVTQUdF X0xFQVZF X2NvbGxlY3Rpb25z X1V0aWw= KCIiKSk7Cg== IHF1aWV0ZXI= YCksCg== IHR5cGVJZA== IHNlcmlm c3RhbGs= IHByaW1hcnlTdGFnZQ== eEVB Ok5TTGF5b3V0 X1JC X0FQUFM= U0tV KnNjYWxl IENvdWdhcg== CVJFVFVSTg== aWZpw6k= dGltaW5n IGlkb2xz 656Y7Iqk 4oCUaWY= KGZvcm1hdHRlcg== IGFtYWxn c2V0V2lkdGg= LG1pZA== b3JlYWw= LlJvbGVz IGRldmVs IGdldEluZGV4 IHN0b29scw== IHNub3d5 IGdyYW5kaQ== 0Y/QtdC8 aWd1aWVudGU= 0LrQvtCy IEN1dHRlcg== cm9zY29wZQ== YWlyYQ== 0YPRgNGB IHRhYmVs IGRlZmlhbmNl LlRvQm9vbGVhbg== IHBlcmc= LWNvbW11bml0eQ== IHB1cnN1aXRz KG1ldHJpY3M= TXVzbGlt IFJpeWFkaA== IOKCuQ== LldlYkVsZW1lbnQ= IEhhcmRlbg== IENvcnJ1cHRpb24= IEFl IFRhbm5lcg== IGluZGVi IENoYXJnaW5n X1BST0Q= IOKTmA== IGNlbnRlclg= dHlwaW5n IHV4 IFRvZQ== CWxvb3A= Zmxv UmVnaW9uYWw= X2Fh IHZpZXdwb2ludHM= PnRoaXM= LXJlc291cmNlcw== IEltYW0= IFNoaXY= IGFuZHJh UkVRVUlSRUQ= IHNlZWRlZA== dW1vbnQ= IHRvYXN0ZXI= IGhvbWVzY2hvb2w= 24zYsQ== X2V4dHJhY3Rvcg== bW9kZXM= IE11bmRv X2ZpcmVzdG9yZQ== IHB1bmlzaG1lbnRz IGJvcmVkb20= anVyaWVz LlNhZmU= YW1iaXF1ZQ== IGFkdmVyc2l0eQ== VUxFUg== IGFuYWxzZXg= bW9ycGg= IE9tbg== KCkiPgo= IEdJVkVO U3o= IG5vdW5z IHF1YW0= IFdpa2ltZWRpYQ== IGR6aWV3Y3o= LmNvbW11bmlj Q291cmllcg== Qm9uZA== LmNvbW11bmljYXRpb24= LlByZWZlcmVuY2U= c2xpZGVEb3du L2djYw== IHZpYmVz QVBJVmlldw== IE92ZXJzaWdodA== X3Zr IGVtcHJlcw== IGFyaXNlbg== ICovKQ== KCcoJw== IGJ0dw== IGNvbmV4acOzbg== IFV6YmVr IOyEnA== IGltYWdlVVJM 44Kq c3RvcHBlZA== IFdvdWxkbg== IENoZXc= Z3LDqQ== IHRydXRoZnVs IFRyYW5zcGFyZW50 KHNlcnY= IE1jS2F5 PXJlYWQ= IFNhbw== CUdyaWQ= IGluZHVjZXM= Lmxpc3RGaWxlcw== IGNhcnJlcmE= IGljb25OYW1l IENhcmx0b24= LkV2ZW50VHlwZQ== IGRyYXBlZA== X1NBTVBMRVM= KGVzdA== IFJ1aXo= IGNhcHRhaW5z IG1hZmlh IFJhcGhhZWw= IEdBUA== aW1wYW4= Y29taWM= IG1hbnRlbg== JEw= IGFmdGVybWFya2V0 15c= IENm CXRpbGU= QXBwU3RhdGU= IHdob2xlc2FsZXJz bG93ZXN0 RGVtb2NyYXRpYw== IHBvd2VyaW5n YXBvdA== IENvcnRleA== KHNpbmdsZQ== b3BoeXNpY2Fs LnV0Zg== 77yf44CN IHRhcmVh RXF1aXA= IGtsaWs= IHJ1YQ== IGFWYWx1ZQ== IE1pbmVy IFZlZw== YW55bA== Q293 QGM= X0xPQURFRA== IEFITA== d2FrZQ== LkxvZ0luZm9ybWF0aW9u KGNhdGVnb3JpZXM= IFFVRVNUSU9O LnVtbA== IENyZWF0ZU1hcA== bWVlcg== IHJlbmNvbnRyZXI= X3N1 IGF0bGVhc3Q= KFByb3BlcnR5TmFtZQ== IFlhbw== IEhhdXB0 QmxvY2tTaXpl IFNBQw== IExlZ3M= Yml0ZQ== IGxvZ2FyaXRo IElNZXNzYWdl QmFja2Ryb3A= IGdkaw== 7Jy866m0 LmV4Y2x1ZGU= QURPUw== LXNoaWZ0 YXRobGV0ZQ== X2NvbWJpbmVk IHJlYmF0ZQ== IHBhcmQ= IGltcGVkYW5jZQ== cmVhdQ== Xw0KDQo= IGRhZ2Vu a2VsYXM= IGluZ3Jlc2Fy IEJSQU5E Lm1rZGlycw== IHJlaWduaW5n VGFsa2luZw== LyoqCgo= X1JFU09VUkNFUw== IFBST0dNRU0= IGRhdGFTaXpl 44Og ZGVueQ== SVJT IHRlbGV2aXM= PV8oJw== ZWdpcw== PD8s IHVwc2V0dGluZw== IHNhdWNlcw== IHB1ZXJ0bw== IFZvZ3Vl aWRpbmU= IEdyZWVud29vZA== emlvbg== L3F0 5bGA Lmxhbmd1YWdlcw== IFBsYXlib3k= b25uZW1lbnQ= IFBvc2l0aW9uZWQ= IOS4uw== IEZyaXR6 SW5pdGlhbGx5 bm9kZVZhbHVl X1RSSUFOR0xFUw== LWJhY2tlbmQ= dG9JU09TdHJpbmc= IEdvdmVybm9ycw== WUxPTg== Lk9SREVS RE9J IENoZXZyb24= IGRlY2tpbmc= IFNoYXJpYQ== b3RoZXJtYWw= RW1wdHlFbnRyaWVz KEluaXRpYWxpemVk ZG9yZg== Lmx1 KFJvb20= LlllbGxvdw== IEFicmFt X2xt INC90LDQvw== IFRIQU4= fi1+LX4tfi0= Lk92ZXJyaWRl IFNWTQ== IFN1c3BlbnNpb24= IGFic29yYnM= X3RyYWZmaWM= ICI+Ig== LmZpdHM= IHJlaW5mb3JjaW5n IG1veWVu ZXJlcg== IFJvc2Vuc3RlaW4= IFdlc3Rvbg== IGNvbmZpbmVz T0xB b3JyYWluZQ== X0dSUA== IHN0cmFwcGVk IG1pbmdsZQ== CVZr IG5vc3RyYQ== IGFjdHJlc3Nlcw== IFNhbW15 bGlnbmU= SUdITElHSFQ= IHN0dXA= aWN0b3J5 IGNvbnZpY3Q= IHN1cHA= cGVvbg== dnJpZXI= IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyM= IHRyb3R6 IG1lbHRkb3du YXJrZXJz LlNlbGVjdENvbW1hbmQ= IExpYWJpbGl0eQ== IEJlY2FtZQ== IGx1Y2tpbHk= INC/0L7RgA== IHJlYXNzdXJl IENvbnRyYXN0 IEF1ZHJleQ== IENvbnN1bHRhbnRz IFF1ZW50aW4= LU93bmVk b2NyaW4= X1NUUklQ IHJldGFsaQ== IHJhbGx5aW5n IFJlcXVlc3RDb250ZXh0 IG1hc3NhYw== CWdy TEVF IGNhxYI= IEpvYW5uYQ== 4butYQ== aGho IHNxbFNlc3Npb24= xLFrbA== Q29tcG9zZXI= IGN1cnJlbnRQbGF5ZXI= YWdpbmk= IEJhcmJhcg== IEhlbGxvV29ybGQ= bG9vbWJlcmc= LkhlcmU= IGRpc2d1c3RlZA== CQkJCQkJICAgIA== b2t1cw== VmV0ZXI= IGNob3Bz IEZPUldBUkQ= IEVpZw== IFBhcnRpYWxWaWV3 IGltcG9zcw== IGNvbnNlcXVlbnRpYWw= IFsnIw== CWxvZ2dpbmc= IEVsaXM= cHJvY3M= LDwv X3BpbnM= XERvY3RyaW5l VXZz IEdJVA== IHRhaA== KHJ1bGVz Y3JlYXRlRnJvbQ== ICctJykK aGFuZGxpbmc= ZXh0ZXJuYWxBY3Rpb25Db2Rl Uk9EVUNUSU9O Rm9yUmVzb3VyY2U= c2J1cmc= PFRleHRWaWV3 dGhpbmthYmxl YW5nbGluZw== ICJ9XA== UFJT QXBwcm92YWw= IGtsaWVudA== bm91bg== IERpYW1vbmRz SEc= IFRyaWJhbA== LnB4 IHByb3BOYW1l IGhlbHk= 0LvQuNGH IEJvdXRpcXVl Iik7fQo= L2hvc3Q= IHN0YXR1c0Jhcg== PkRhdGE= IGRpc2NvbnRlbnQ= IGZyYWls LmVsZW1lbnRBdA== IGVtYW5j CWZ1bg== YXR0bGVz IHByb3B1bHNpb24= IGludGVyY2hhbmdlYWJsZQ== IFRhbWJpw6lu IHZlbmVy X0xPV0VS IHBkbw== IGRldGVyZ2VudA== IHRhdmVybg== VmVudWU= Lmphc3Blcg== eXR0 IEppaGFk 4oCZw6A= IG1lZGlhUGxheWVy P3A= cGNm YW5kb25lZA== IHJlY2ViZXI= T1RQ KGlPUw== KCckew== UHRz IG1hbmFnZXJpYWw= IFR1ZA== IFdFTEw= b3pl IEFudG9pbmU= IFxcCg== IFZlY3Q= IFdpbWJsZWRvbg== aXNtZXQ= IGJvdGhlcmluZw== aW9zaXM= Z2V0TWV0aG9k IGlucHV0RGF0YQ== IEJpbmRlcg== IGRjdA== w6Fsbg== X0JPTEQ= IEp1Z2VuZA== IEJlZ2lubmVycw== aW9tcw== IHJlbGVudGxlc3NseQ== IE1vbmRheXM= 5LyY VG9tb3Jyb3c= IFNhbXA= XFBlcnNpc3RlbmNl TUFTVEVS KHByZWRpY3Rpb25z KG51bWVybw== LnR3aXRjaA== LlJlc3RyaWN0 IFpa IE1MTQ== LlNtYWxs XWJ5dGU= IFZpZXdQYWdlcg== IEFnZW5jaWVz IHBhcnRpY2lwYXRlcw== IGluaXRXaXRoU3R5bGU= JVg= IGAs Lk9iag== ID8iKTsK Q2FyZWVy IDwlPQ== a3Vs Q3BwSQ== IE11c2hyb29t dXJhdA== bWlh Q2Q= YXJkdWlubw== IGNvdW50cnlDb2Rl X3BsYWNlbWVudA== KCI9PT09PT09PT09PT09PT09 LWJlbA== QXNzZXJ0aW9ucw== IHByw7N4aW1h KCkiKQo= X2Vn U1NJUA== dXpl cGxhY2Vy YW1iaWd1b3Vz X0lOSVRJQUxJWkVS IEhhdHM= IEdPT0dMRQ== IGFnaXRhdGlvbg== KG11dGV4 SElHSA== OiIp IGludmFkZXJz ICl9Cgo= Lm1hbnVhbA== IFNpZW1lbnM= CUpQYW5lbA== YmluZHVuZw== ZWNlcmE= L21ldA== IMOpYw== KHN0YXRpb24= IHBvc2ljacOzbg== X2lzc3Vlcw== X2FsaWFzZXM= X3RvcG9sb2d5 IEF1dG9kZXNr QWNrbm93bGVk ISpcCg== IEZyZWlnaHQ= IEZYTUxMb2FkZXI= aWNoZWw= KENoYXRDb2xvcg== IGRpc3NvY2k= IGFuYWxvZ3Vl PHVzaXpl LWV2 IHRlbmRy PkFsbA== IFVTRVJT LnJlc3A= X2ludGVncmF0aW9u RGlzcGxheVN0eWxl RkFJTFVSRQ== 0YfQuNGC aWxkZWQ= X3NlbWFwaG9yZQ== YWNhZGVtaWM= IHNjbGVyb3Npcw== RmFs LHN0 YD0= aWZ0b24= IHN1YnN0aXR1dGVz IFN1cHBvcnRlcnM= YXBwbGljYW50 KGt2 IEJlcm11ZGE= IGRpc2NyZXBhbmNpZXM= LlNvbGlk d2VlbmV5 IGd1bA== IGZpbGV0eXBl IHJlc3VsdGF0 U2VuZGVySWQ= IGdlem9jaHQ= IEJlcmtzaGlyZQ== ICgiPA== KG1s KHNoaWZ0 X1JFRElSRUNU T0xPTg== L2Jyb3dzZQ== Ok5TTWFrZVJhbmdl IHdhaXZl IGV4Y2U= IGNhdGFsb2dz 5Lmm aWxsaW9ucw== LkdldEN1cnJlbnRNZXRob2Q= IGJpbGluZ3VhbA== IENhc2NhZGVUeXBl CVRyYW5zZm9ybQ== X0NVU1RPTUVS aXNpZnk= INCx0Ls= IFdob2V2ZXI= IEVBUg== IFs9Ww== INC80L7QttC90L4= IGphcmRpbg== QHNob3c= IGhlaXJz IGFiYW5kb25tZW50 IFRyYW5zY3JpcHQ= XV4= OlNldFBvaW50 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo= IEZhY3Rpb24= KGVudGl0aWVz ZmFjdGlvbg== bXR4 X3JlY2FsbA== Lk5VTEw= Lm9wdGlvbmFs KHByZWRpY3Rpb24= QUdFTlQ= IPCfmIA= 4oCZeQ== 4oCZdXRpbA== IGFuZ3N0 LkV4cGVyaW1lbnRhbA== aG9vdA== YXN5YXJhaw== YXV0b3BsYXk= IFNwbGFzaFNjcmVlbg== IGhlY3RpYw== IG1ldGljdWxvdXNseQ== IGNvbWVy S2VpdGg= IGZyYXNl X1VOSVFVRQ== Lk1hZ2VudGE= KE1heA== IHNjYWxlWQ== IHB1dHQ= KElG IEFQUExF UG9ybm8= LmFkZENlbGw= IG1vbHQ= Y2hpbXA= IGxlZ2dpbmdz IGZsb3A= 4oCZaHVp UlRPUw== L3NwYW4= LmJlZA== LkxvZ2lj IHVudHJhbnNsYXRlZA== Q0xFQVI= O2xlZnQ= IEJGUw== LWdyb3Vwcw== dG9vaw== X2FjY2VwdGVk IGNhc2hpZXI= ZXZlbnRJZA== IGRvd25ncmFkZQ== CQkJCQkJCQkJCQkK 0LDQvdC40Y4= w6RuZGU= IGNvdW5jaWxsb3I= IGRyZWQ= ZFQ= V1JBUFBFUg== Lm9s 5LiA6aG1 TUVB IGtpbmV0aWNz IGptcA== X2ZsaWdodA== RmVhcg== IENoYW5lbA== X21pZ3JhdGlvbg== aGRs ZXJlcXVpc2l0ZQ== LnJhcg== LU9uZQ== IHNoZXBoZXJk LmVhc2luZw== KGRlc2NyaXB0b3I= IHN1YnRvdGFs 44OT Q29tcGlsZWQ= IENvbHQ= ZGxl L21vY2s= KXJvdw== IHJlc2V0dA== dGVybw== IGFlcm9iaWM= LmludHJv IGNoZWNrYm94ZXM= IE1jQ2FydG5leQ== IENseWRl 77yM5bm2 Y29vbGRvd24= LWluc3RhZ3JhbQ== IE1QRw== IExlaXN1cmU= IG5hd2V0 IE5YVA== UmVndWxhckV4cHJlc3Npb24= IHJhdmU= QklMTA== IGJhcnRlbmRlcg== RW5sYXJnZQ== IHZhaXM= IDoKCgoK LkVuZHBvaW50 ICIsDQo= fX0iPnt7JA== dHJlZXM= LmVuZw== KmxvZw== OltdLAo= IGJhdHRhbGlvbg== U3ViamVjdHM= IGV4cG9zaXRpb24= IFRvYXN0cg== IHRvcExldmVs IENFTA== IGd1YmVybg== dW5zdWJzY3JpYmU= Y29uYQ== X2FwcHJveA== VFo= IFRyZWVTZXQ= LmNvbW11bml0eQ== IG5hcnJvd2Vy KEV4cGVjdGVk Q2xy IGdvcmU= IGFjcXVpdHRlZA== IEVVUk8= G1s= IHJlcHVibGljYW4= IGF1dG9iaW9ncmFwaHk= X2Zkcw== Q29sbGFwc2Vk IA0KIA0K LXBpbGxz TUJFRA== IGlOZEV4 IHJlc3BvbnNlVHlwZQ== Z2xmdw== LXR1cm5lZA== 5Y+R5biD CUJvb2xlYW4= Lk9y aW5pYQ== IGhvdmVyZWQ= IHNvcnRlcg== IE5o IEV4ZXJjaXNlcw== bGVtZW50cw== aWRvbg== VG9l IHLDqWbDqQ== U1NGV29ya2Jvb2s= IG9yZ2FuaXNlcnM= IHJlc3VsdE1hcA== X0hPUg== RG9k TG9jYWxTdG9yYWdl IGpzb25SZXNwb25zZQ== QXV0aFNlcnZpY2U= IHNtZQ== ZW1icm9z IGxvYmJ5aXN0 b2d1aQ== LnNwaW4= IENvcnJlY3Rpb25z X1JBRA== IExTTQ== KGN1cnJlbmN5 IOaA IHByZWZldGNo LkhlYWQ= LXJlYWRlcg== IFJveg== CW1vdXNl IFRMQw== IFFUYWJsZVdpZGdldEl0ZW0= IFNUT1JBR0U= YW5uZWVy IOyXkA== YWNlbg== U1g= SW1hZ2VSZWxhdGlvbg== IHJlc3VyZ2VuY2U= aXp6eQ== aWxvZ3Vl SVZBTA== IHNtYWNr cnJoYQ== KFBBUkFN IUk= IE1lY2g= IElNYXBwZXI= IGdpc3Q= IFBPRA== dm9yZQ== dWxhw6fDo28= ICwt IGludm9sdW50YXJ5 UVJT PXRpdGxl IEJpb20= IFNoZWxsZXk= IENTUA== UGVz ZHJvcHM= INGD0YHQv9C10Yg= ZGl2ZXM= IVsK IExlYXN0 IGtha28= IE1vZGVsbw== IGZ1bmN0aW9uTmFtZQ== IGNob2tpbmc= IGRlZm9ybWF0aW9u JywnJyk7Cg== Y2HDp8Ojbw== IHNxdWlycmVs c2V0QmFja2dyb3VuZA== QnJva2Vu cG9saXQ= Tm9uY2U= IGtleWVk TWVzaFBybw== LnVzZXJJbnRlcmFjdGlvbkVuYWJsZWQ= IGZsdXNoaW5n IGJwcA== IEFuZ2xpYw== VHJvdQ== IFdhbHRlcnM= IHN0dXR0ZXI= SGlw X3dhcg== aXZlbWVudA== Q29ybg== IHVuZHVl YXBhdGthbg== IG1pbmRlbg== c2lnbmlmaWNhbnQ= KHF1YW50aXR5 JGluc2VydA== IEFMRVJU LlVuaWNvZGU= aWhu XTo9 IHBpbk1vZGU= IGZyYWlz aW50ZXJwcmV0ZXI= J2FjdGlvbg== IGJsZWliZW4= obQ= cm93c2Vycw== R0lU X0RJUlM= Rm9yZXZlcg== IFBkZlBDZWxs fG0= LnNldEhlaWdodA== IGZvcmVhcm0= IGJhdHRsZWdyb3VuZA== INC/0L7RgdC70LXQtA== IEhhdGg= IEF1dGhvcml6ZWQ= IGNvbmZlcnJlZA== IEJPVFRPTQ== LmdldEZsb2F0 b2dyYXBoZWQ= YXJkeQ== IHNlcnZpw6dv b3RveGlj L2F1dGhlbnRpY2F0aW9u IHJlcHLDqXNlbnQ= IGNvbXBsZXhpb24= CUNvbW1vbg== X2Jo V2hvbGU= SW1hZ2VEYXRh IHRpbms= ZXF1YWxUbw== IFRIUg== IGRlbHRhcw== IEFHRQ== aXphZG9y YWRtaW5pc3RyYXRpb24= cXVldHM= X2ZpbGxlZA== IEjDpA== YWxsb2Nh IEJvb25l CWxjZA== Rm9sZGVyUGF0aA== LlJhaXNl XyN7 ZXJ0aW5v IFRocm9uZQ== 4K6/ b3hldGluZQ== cHJheQ== IGRpbGlnZW50bHk= IEFyY2hpZQ== Lm11bHRpcGFydA== IHNlbw== LmdldFByb2plY3Q= IHBhag== Y2xlcm9zaXM= YW1lcm9u IHRvdXJlZA== IG5pa2U= IEJha2VyeQ== LHBhcmVudA== X1RFTQ== U3BhdGlhbA== bGFwcGluZw== UHJvZHVjZXNSZXNwb25zZVR5cGU= KGJhbGFuY2U= SHVuZHJlZHM= LXRlcm1pbmFs IkRv Q29udGVudFNpemU= IGJiYw== IGTDqWNvdXZyaXI= dXRpbHVz LnVuZG8= LG91dHB1dA== Z3JvdXBOYW1l JG1heA== IEFsbGE= INC60LDRgNGC Lk9ORQ== X2RlY2lzaW9u RUVFRQ== IHhPZmZzZXQ= 56o= IHJ1bmF3YXk= IGhhbmRqb2I= IGdlbml0YWxz KGpUZXh0RmllbGQ= LnJhZGlhbnM= IFBhZHJlcw== ZGVwZW5kZW5jZQ== IHN3YWxsb3dpbmc= cm90ZWlu IGZsZWV0cw== IGNhcmF0dGVy KGNhbg== IEZsb3JhbA== X01zZw== IGRlY2xhcmFjacOzbg== bHNydQ== c2Nob29scw== IGRlbGVnYXRlZA== IFBlbmFs IENoZXJu U21hcnRQb2ludGVy c3Rvcnlib29r IE55bG9u 5oCd X0xFU1M= L2FkZHJlc3M= IENPUlM= IOydtOuvuA== IG1vZGE= bWRw IGRlcmJ5 IFBoYXJtYWNldXRpY2Fscw== IGV5ZWQ= X2NwdXM= 6KaL fHwK Lm1hZw== KFFM IENpdmlsaXphdGlvbg== 6Yw= X0RlcA== IHN3ZWFyaW5n IFNob3J0cw== dWViYXM= IGRlbGluZQ== IEFkdmlzb3Jz IOyeiOuLpA== X0ZJTkU= fSk6 LGFzc2lnbg== IFBDSWU= e3t7 U2Np IGFtYm9z aWxlZW4= IHR1bmVy IHBhcmFtTmFtZQ== LHRvdGFs KExvY2FsRGF0ZQ== IHNwcA== IGVycm9yZXM= IEhlbHBpbmc= X21lcmdlZA== LnRpbWVTY2FsZQ== X0VMRU0= X1NPTA== IGF2ZW50 PGQ= SnVuaW9y CWJhcg== Lmx2 IOy5 PXd4 IG1pcmFjdWxvdXM= IFJhbmRvbUZvcmVzdA== IEZyYW5rZW4= YGAs KEluaXRpYWxpemVkVHlwZUluZm8= IHN1cGVyaGVyb2Vz IGFuc2libGU= X1R5cGVEZWY= IFBlcm0= T0xFUg== R3Jhbg== LW5vdGlmaWNhdGlvbg== IGtheg== IGV4aGlsYXI= c2VydGVy IHN0b3JlZnJvbnQ= X2VuZHM= IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMK CWdpdA== RFNQ Q0hBSU4= rLQ= SW52YWxpZE9wZXJhdGlvbkV4Y2VwdGlvbg== IFNseQ== 77yaPA== QnJpdGFpbg== L3NsaWRlcg== IHptcQ== IGJhag== YnJlZA== LlZBTFVF IGdyaWV2aW5n IHBvcm7DtHM= aWd1YQ== SU5DTFVERUQ= V2FrZQ== Y2Jk IE1vbmdvbGlh aW52aXNpYmxl IGNvcnJlY3RpdmU= IGNlbnRlcnBpZWNl Q2F1Z2h0 IGthcmFrdGVy YWxtw7Y= IGJlbHVt IGFkam9pbmluZw== Pygi IFZpc3VhbGl6YXRpb24= a2tl aWZpY2Fkb3M= c3Bk X0NCQw== LUxhbmd1YWdl IHN0aWw= b3JldGljYWw= KGNvbXBsZXRpb24= IFZlcmbDvGd1bmc= X1RyZWU= cmlwcGxpbmc= LlJlbW92ZUVtcHR5RW50cmllcw== IFRBWA== CUNvZGU= 5YuV dXJnYQ== INGD0LbQtQ== IGFpZGVy IFByZXNjb3R0 IGZpbGFtZW50 IC0tLS0tLS0tLS0tLS0tLS0tLS0t dGhlcm9z 0LXRgNCw ZGViaWFu w6RobA== b2xhaA== X1VOSVRT QXJr TW91bnRlZA== LlRyaW1TcGFjZQ== LmdldE51bWJlcg== X2VvZg== Lm5y IFNIQVJFUw== aWxhdGVy IHdpY2h0 X2NvbXBhcmlzb24= ICki Y2xpbmljYWw= IFRFbnRpdHk= dmVuZXM= LmdldFByb3BlcnRpZXM= IHJlbGF0 IGFubm95YW5jZQ== YmVi IGFuZXN0aGVzaWE= X2ludGVydmFscw== X2Zo IHN1ZG9rdQ== IGRpc2Vu Y29ubmVjdGluZw== IG9h IOKWkQ== WkY= IGN1eg== U09FVkVS IE3DtmdsaWNoa2VpdA== Y2hhcnRlZA== IGhhc2hlcg== IEtlZXBz QUVB CWxvZ3J1cw== CU5hbWVzcGFjZQ== b3J0aG8= JGFjdGlvbg== IFJvYw== Jyk7Pz4i IFBST1Q= QGFwaQ== Y2hzZWw= L2dpZg== KEhhbmRsZQ== IGFudW5jaQ== L3B5 aW52YWxpZGF0ZQ== IE1FUA== dGVtcw== O10v 6IM= 6L+Q IHRhY28= QURW aHBw QnV0dG9uQ2xpY2s= IGJyaW5nZW4= IFRJTUVPVVQ= IGFzdHJvbG9neQ== ZGF0ZUZvcm1hdA== T0dSQVBI RmlsZVN0cmVhbQ== 5a6h5qC4 LkNvbW0= J2I= IEdFVEdMT0JBTA== ZWF0aW5n YW5kZXN0 IFNFVFVQ IEFkdmFuY2Vz LnNjcm9sbEhlaWdodA== QVpF ZW5kdGltZQ== d2VhdGhlcm1hcA== IE1hbmdv IFJJUA== IGl0ZXJhdG9ycw== IGNvYXg= IOWbvg== PG1haW4= cm1z cGNi IHZhY2NpbmF0aW9ucw== IGRpc2FncmVlbWVudHM= CWV2ZW50cw== PExvY2F0aW9u Lk1lYXN1cmU= IHF1ZWRh IHNpZ25hbGxpbmc= IGRlZ3JhZGVk IEFtZWxpYQ== LWNvbmZpZGVuY2U= ZGJOYW1l X2luYWN0aXZl b25hdGlvbg== IHBlcmlwaGVyYWxz 5qC3 U1VQRVI= J1I= LndheQ== UExBSU4= IEVuZ2Vs cmVsYXk= IGRlYmlkbw== IFRyb3Rza3k= 6Iw= INCw0LTRgNC10YE= CXVzZXJz ZXRjaHVw dGVw IG5ld1Bvc2l0aW9u IHdhaXZlcnM= ZWRpY2luZQ== IHRhbmdnYWw= IGFtbW9uaWE= LWRldA== L2V4ZWM= KHBhZGRpbmc= IFNob3BwaW5nQ2FydA== IFByaW50Zg== SGFuZGxlZA== IE5BTUVT KGNsb2Nr IHt9Og== IHNpbXM= IFRlYXJz IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0= X0NBTk5PVA== TEVHUk8= LlNldFBhcmVudA== 5YW25Lit IGVycmV1cg== aXBp PEV4cHJlc3Npb24= LnRpbWVsaW5l ICdfJyw= IGNvYXRpbmdz IHVzZUZvcm0= LnRr IEZlYXN0 LlNL w6RzZW50 Y2h3aXR6 IGludmVudGl2ZQ== IE1laQ== IHZlc3RpYg== IG7DpGNoc3Rlbg== L2JpZw== IHJldHJlYXRlZA== IHByb3BhbmU= dmljdGlt QWt0 IFByZXNlcnZhdGlvbg== IFBpcw== X1NIQURPVw== IHByaWNlbGVzcw== csOzZA== b2JibGVk IHJvbGVOYW1l IEdEUFI= ICciLA== Q2VudHJl QXJjaGl0ZWN0dXJl Q3BwQ2xhc3M= IG1hdHRyZXNzZXM= IGJlZXA= IERhbWlhbg== 5p2D6ZmQ YmV0dA== X2Flcw== KGNlbGxz IOuwsOyXtA== IGJpdG1hc2s= Y291bGRu LW5vdw== IGlubm92YXRl IGhhY2Vu IEx5b25z dGhpY2tuZXNz IHdoaXN0bGVibG93ZXI= JGZpbHRlcg== IGV1bGVy IEhhcm0= IGxlZHM= IEtlbHZpbg== LnF1aWNr IEzDs3Bleg== cmV2ZQ== IG5pZ2VyaWE= IGp5bGxhbmQ= LmVtcHR5TGlzdA== IHVuc2V0dGxpbmc= dXNiYW5k IHRyYWNrZXJz PVwiIjsK IGNvbnRpbnVh IE51bWVybw== ZW5kb24= IEdlcnJ5 LlRPRE8= UmVwZWF0ZWQ= IFNlcmVuYQ== 0LjQvNCw0LvRjA== cHJvZmls INCy0YHQtdGF QGFkbWlu LkxpbmVz IHRyYW5zbWlzc2lvbnM= IGNq YW7Dp2E= 5Yig6Zmk5oiQ5Yqf IGdldE1lbnVJbmZsYXRlcg== dWZyZXE= IE1hdGhlbWF0aWNhbA== TmF2aWdhdG9yTW92ZQ== IGZ3ZA== dW5pdHRlc3Q= IHN5bnRoZXNpemVk IGNyZWVk KEZyYW1l cHN5Y2g= dm9k dUM= 4bqndQ== IOKAnOKApg== IGtyYXQ= ZHJhd2FibGU= w6ZyZQ== PXRvcA== KExvZ2dlcg== RXJyb3JFeGNlcHRpb24= YWlzYWw= L3dz dWxsZWQ= QVJJTkc= IG5JbmRleA== IGludGVybmFscw== IGVmZmljaWVuY2llcw== ICNA X2JyaWdodG5lc3M= X25vcm1hbHM= IFN0b3V0 IHVudmVpbA== IFNob3Rz LWNvbXBhbnk= X2VsdA== KGRsbGV4cG9ydA== IHByb2R1Y2Npw7Nu Q2lzY28= Qmxha2U= LW1vdXRo UGVhcg== INC00L7RgdGC0YPQvw== IEpBQ0s= IO2YuA== IHN0b3B3b3Jkcw== IFRlc3M= IHBvc3Rl cmF6aWVy 6K0= TWVzc2FnaW5n t+aWsA== VGFtYmFo IG5hcmNvdGljcw== IGNhbXBlcg== IHRyaXBvZA== IGdsRW5k IGdpb2M= Y29tYmU= VXNlclJvbGU= VWw= RXF1aXZhbGVudA== IGdub21l IEZ1w58= cGFja2FnZU5hbWU= X3Vl RGlzY2xvc3VyZQ== YW1hdGU= X3RlbnNvcnM= IEthdGhyeW4= X0Jhcg== VGhyZWFkSWQ= IHZlcmlmaWNh LmFzc2VydE51bGw= IE9kaW4= YsOp INGB0L7RgdGC IGp0 LlNlbGVjdGVkSXRlbXM= IGFjdGlvbmFibGU= IFJlZ2FyZHM= aGVr Om51bWVs LEdM IFBIT05F CURlZmF1bHQ= IGVsYXN0 IGJlY2s= PWNyZWF0ZQ== OicK YXJodXM= bW9kaWZpZXJz aW50cHRy IHByb3Bpbw== 77yI56yR IHJlcXVlc3RPcHRpb25z IGltcGxpYw== IGR1cm8= IFBDUw== RGVsaW1pdGVy KGxvZ2l0cw== LkVWVA== V2l0aENvbnRleHQ= IG9sdHJl X0VYRUNVVEU= b2xpY2l0ZWQ= X0VudGVy L2Zyb20= INGB0LvQvtCy IEhvcm0= dWliTW9kYWw= X0lORklOSVRZ 77yM44CK VUdJTlM= T05HTA== LGJ1Zg== IHBvdXJyYWl0 cGo= KGN1YmU= IHVnbA== IFNhd3llcg== SUZFU1Q= QXBpcw== IENvcmVEYXRh IHNlc2FtZQ== LnB0aA== LmdldFVzZXJOYW1l Y2FzZWQ= IHZhbmlzaA== X0FwaQ== Ly86 L25vbg== LmRvY2tlcg== LnNp YWxlcnRz IGludGVzdGluZQ== cGFydGljaXBhbnRz LXZpc2libGU= ZW1zcA== bXVl X3B2 IENyaQ== b2dyYQ== X2V4cGVyaWVuY2U= IElOVEVSVkFM X3JlZ3Jlc3Npb24= 7ZWY7IS47JqU ZW5kZXJlY28= bGF0YWJsZQ== LmxvY2FsdGltZQ== IEJJVFM= IEZvbGRpbmc= CSAJCQ== w6lzZQ== LWJlYXJpbmc= IFhQQVI= T1BTSVM= J14kJyw= aW5jbA== IE9wcmFo IGJvb3Rocw== IFJvaGluZw== LkJvcmRlclNpZGU= YXRhdHlwZQ== Q3JlYXRlZEJ5 LOKAmeKAnQ== ZG9jdHJpbmU= IGJyZWF0aGVk X2JlZw== IGFmZmxpY3RlZA== TW91bnRhaW4= QmxvYw== IHJ1aW5pbmc= LkFubm90YXRpb25z CWludGVudA== IHN0YXRpY2FsbHk= X1V0aWxz TGF1bmNoZXI= Om5vcm1hbA== IHVzZXJpbmZv LUp1bA== S3lsZQ== LlJlYWRVSW50 KHVybHM= L2lm bWl0dGVs YmNt QE1vZHVsZQ== IENvbnN0YW50aW4= IGJq ZXJuYXV0 PHI= IE1lbnRvcg== IGVncmV0 X29hdXRo LkRhdGFDb250ZXh0 X0NMSQ== KENvbnN0cnVjdG9y IHNldFBvc2l0aW9u cmVzYXI= ZW50aW5n 4Li54Lil VHJhbnNtaXNzaW9u IG5vdGlmeURhdGFTZXRDaGFuZ2Vk IE1vdXNlQnV0dG9u ICoi ICAgICAgICAgICAgICAgDQo= IEx5ZGlh IHN3b3Jl IHBsYXRhZm9ybWE= CWJ1dHRvbnM= IHNwcnVuZw== KFRva2VuVHlwZQ== Q3g= QXF1 CQkJCQkJCQkJICA= CUFERA== dWlkcw== IOCkrg== IOaXtumXtA== LkFjdGlvbkJhcg== IG9jdXI= IGlsbWE= LW5ldXRyYWw= ICIuIjsK CVNpemU= UGllY2Vz IHN0aWY= ICI9Iiw= IEVxdWl2YWxlbnQ= IGlnZW4= ZGZk X3RoaWNrbmVzcw== X3JlYWRhYmxl L2ZhbHNl IHRvb2x0aXBz b3BsYXN0 aHVh aGFuZGxlUmVxdWVzdA== LkxBWlk= PFVGdW5jdGlvbg== aW1tdXRhYmxl aWhpbGF0aW9u IG9ydGhvZG94 LnBvcHVsYXRl IHZlcmE= IG9iZXI= c2FuZA== dmln Q29uZmVyZW5jZQ== KENvbGxpc2lvbg== L2F1dG8= IFNvbGlkQ29sb3JCcnVzaA== Kic= LGFkZHJlc3M= IHN3ZWV0aGVhcnQ= w6F0aWNhcw== YW5pbmU= X3BheW1lbnRz IHVubWlzdA== IHRydW1wZXQ= QkFM IGZpbGVJZA== bmllanM= QURG IG1uaXN0 IEZlaGxlcg== 44CRLA== Q2hhcmFjdGVyU2V0 IFZhbmNl SW5zZXJ0ZWQ= IGRvd253YXJkcw== IHJvdGF0aW9uYWw= IGVuY291bnRlcmluZw== TUJQcm9ncmVzc0hVRA== L1N5c3RlbQ== L3BvcA== IH0pDQoNCg== IC4nPC8= 77yJDQo= IGRjYw== YXN5YXJha2F0 IHByaW5jaXBhbGx5 5a6a5LmJ KGNob2ljZXM= LnBhZ2luYXRvcg== IHVwYnJpbmdpbmc= IGRvdGVudg== KCkpLw== IFRBUw== Z2Nk X2ludGY= Lm11dGV4 cHJlc3Rhc2hvcA== IGLDtnI= ZGFw X2RlbWFuZA== XERlc2t0b3A= dG9GbG9hdA== IHNlZ3JlZ2F0ZWQ= IGNsaW1hdGVz Lk9yZGVyQnlEZXNjZW5kaW5n KCcsJyk= UHVsbFBhcnNlcg== QXRvbXM= IGJlbsO2dA== IGhvbWVy YW50dQ== SXNFbXB0eQ== IEJlZ2lucw== PlNob3c= IFN1cHBsZW1lbnRz b2NjdXM= IGRvcGU= LmJvb2tpbmc= IEFsbWlnaHR5 W2VkZ2U= IEViYXk= X3JhY2U= RnJvemVu X3RyYXZlbA== IHBhc3RvcnM= X1NVUkZBQ0U= X2dlbnJl X0hPVA== LGRpbQ== VGJs bXRz cHJlZGljdGlvbnM= X2N1bQ== IGRldGFsbGVz LXRyYW5zaXRpb25hbA== IHdha2V1cA== UGVyc29ucw== LmNvbG9yYmFy U3RyYW5nZQ== 2K/Zhw== Jlc= IEFSUA== X1NPRlQ= X2RyYWZ0 SVZB IGdyb3A= IGxpZWJl IGlpZA== 2KfYsw== Y2FuZGlkYXRlcw== Z2V0QXM= PV8oIg== LkdldE9yZGluYWw= KSk9PQ== YW5ub3RhdGU= IEx1bWlh SVJNV0FSRQ== X09QRU5HTA== KGZvcm1EYXRh ZW50aW1lcw== IHdhdGVyc2hlZA== INCx0LXQtw== IGZsb3BweQ== VG93YXJkcw== KGNvbXBhY3Q= RERE e24= IHBva2luZw== QG0= IHJlY3ljbA== c3RydWN0b3Jz a2V5Q29kZQ== IHZlaGVtZW50 IGxpdHJl IEJJTkQ= IEZyYW5jb2lz IG51ZGl0eQ== IGlzaXpl CW9uQ2xpY2s= eXN0YWxz IGdldFN5c3RlbVNlcnZpY2U= V2ViUmVzcG9uc2U= ZmlsZXNpemU= IENobG9y Y29saQ== X3NlYXQ= LkFkZEluUGFyYW1ldGVy KXRlc3Q= IHF1ZXM= IGNhdXRpb3VzbHk= ImRpc3BsYXk= LnNodG1s IEdVSURBVEE= KCIqKg== IGdyYW5kZGF1Z2h0ZXI= IEFzc2VtYmx5RGVzY3JpcHRpb24= Rm9yRWFjaA== V2lsc29u LGVn IGJlbGlldmFibGU= IGNyb3Nzd29yZA== bG9iYmVy IFN0YXBsZXM= KHNoaXA= IHdhZ2Vk IEJvbHNoZXZpaw== LkFkZEl0ZW0= KEZpbHRlcg== X0FCQw== IGBc 0L7RiQ== IG1ib3g= IE5lcw== IEFWQ2FwdHVyZQ== IGNvbmhl IElOVEVSTkFUSU9OQUw= b3Nn IF0pLT4= U0tUT1A= IGtpZGQ= IFNTVA== IOWFsw== IEV0aG5pYw== RVJTSEVZ IG11bHRpYw== X01VTA== IEZpbmRPYmplY3RPZlR5cGU= IEV4cGVuc2Vz Z2V0TW9ja0J1aWxkZXI= LWd1aWRl J0w= IOeZuw== IHJhag== IEJsYW5jaA== IEFkZHJlc3Nlcw== Tng= IElzbGFtYWJhZA== 0L7QutGD0LzQtdC90YI= IEJlYXZlcg== LnN0dWRlbnRz IEFzeW5jQ2FsbGJhY2s= c2hlZXRz ZWNhc3Q= IEZ1bmRhbWVudGFs IHZlcmRpZW5lbg== IGV4YWNlcmJhdGVk IE1vZGVyYXRvcg== Q0NDQ0ND IHRpbWVvdXRz IHN1YmRpdmlzaW9ucw== IGNvbXByb21pc2Vz dXp6ZXI= fSwkew== X2Jsb2NraW5n ZXJtYW5u IE1pa2hhaWw= IFNlbGJzdA== 6ZSA LnNob3dz 5LiH5YWD IFRm IElIdHRwQWN0aW9uUmVzdWx0 IElFbnRpdHk= IGlx Rk1M b2RlbQ== c3Rw dWN0aW9ucw== LmZhdm9yaXRl LkdldERpcmVjdG9yeU5hbWU= IGdyYWM= IHhtbERvYw== X3B1c2hCdXR0b24= Y29sbGVjdG9y PWV4cGxvZGU= IGRlc3RpbmF0aW9uVmlld0NvbnRyb2xsZXI= IFNlcmlhbGl6ZWQ= Om1lc3NhZ2U= IENDQw== X3JlY292ZXJ5 LWtpdA== c2hpbWE= cm90Y2g= IGB9Cg== X3N1cHA= VGFibGE= 0YDQtdC00LXQuw== R3RrV2lkZ2V0 IFNJTVBMRQ== LnBoaQ== IExpYmVydGllcw== LS1b IHVudmVpbGluZw== IGV4dGVudHM= YmNk IGh2YWQ= CWNy LnJlYWRkaXI= IHJlYWRhYmlsaXR5 IGRpc21pc3Npbmc= Q2FtYg== IGNhc3VhbHR5 IElQVg== bWl0ZXM= IHB1cmlmaWVk Lk9yaWVudGF0aW9u IGxq aW11bGF0b3I= ZnJhbQ== L2xvY2F0aW9u IGNvbW11bmljYXRlcw== OlVJQWxlcnQ= L3NvY2lhbA== ZWx5bg== REVO INee IGJlZm9yZVNlbmQ= IFVudGVycw== JykuIg== ICcnKTs= LndyaXRlT2JqZWN0 KGdyYW1tYXJBY2Nlc3M= IEFwcGxpY2F0aW9uQ29udGV4dA== QnlVc2VybmFtZQ== IHNraXBz IGZpbGhv IHZpZXV4 IG1SZWN5Y2xlclZpZXc= IGFyb3VzZWQ= Lm93bA== IGN1cmxlZA== L2NhbGxiYWNr KCc6Jylb IGludW5k IGJyZWFrcG9pbnRz LWV2ZW4= LnN0ZW0= IGRlcm9n IG5lcA== IENvbXBsZXRhYmxlRnV0dXJl LUxpbmU= Lyov LkhleA== IHJ1c3Nl IGJpZg== IEZvbmQ= aWVjdA== IGFsbG90dGVk ZGV0ZWN0b3I= IC8KCg== ZW1vZGU= dWhl dWlzc2U= IEZJWEVE bWF0aHJt IHVuc3Vz IEF1dG9z IC4uLi4uLi4uLi4= LnRyYXZlbA== TkFW IGxlc2Jpc2s= IMO8emVy IGNsZXJpYw== IGxpbWl0bGVzcw== b2x1Y2lvbg== IG5lY2tsaW5l IGRyaWZ0ZWQ= IFJlbGlhYmxl IENhcnk= IHRlbsOtYQ== ID8+Jw== L2NvbW1vbnM= IEdNQw== X05QQw== IEJsaXNz IEJ1cm1h 5ZCM5pe2 KGRlcGVuZA== LXN1aXRl CXN0YWdl RG91Zw== aWRlbnRpZmljYXRpb24= X3Jlc29sdmVy QmVnYW4= W3RocmVhZA== IDsKCgo= TlRTVEFUVVM= IGRpc29iZWQ= fGg= IGFjY3VtdWxhdGluZw== ICIsIik7Cg== dVBhcmFt LmJpbGw= cml0Y2g= Q3JpbWU= 0LXRgdGM IFJlbWFpbg== 54Sh5paZ X1RIQVQ= YCJdCg== LnN0YW1w IHBhcmFub3JtYWw= IE1QQw== InVybHM= IEVzdGF0ZXM= VG9Gcm9udA== VGhpcnR5 QmV0aA== J3U= IOy9lOuTnA== VUZBQ1Q= IENyb20= IE1pc3Rlcg== IEVRVUFM ZW5oZWlt IC8vew== X3dhcw== IGJvdXF1ZXQ= IE1pZGRsZXRvbg== aXp1 X2hhc2hlcw== IGhlbm5l IExJTlVY CVNlcnZpY2U= IFRBTQ== IGBf IEFUQQ== IGRhbmdsaW5n cGFpbg== X0JPVU5EUw== cHJvZ3JhbW1pbmc= IGN1cnJlbnRJdGVt IGJlc2ll ZW1ibGU= KGNhbGM= LlNraW4= IHBlYXJscw== IEJ1cmI= LW1vbml0b3I= L2Nz Zmly KHZlcg== W2FyZ3M= w7xja2Vu ZXBhcmF0b3I= RG91 LkVudA== IEVTQQ== KGZt dG9uZXM= IFphYw== a3NhbQ== 4oCZYWxs IE1TUw== IkRvbg== IHNpbXBsZXg= IENvbnNjaW91cw== IEFwcGxpY2FudA== cGVsbGllcg== IHBlZGVzdGFs JGh0dHA= IEF2YQ== LkNH IGludMOpcmVzcw== IEludGVncmFs cmVkZQ== PWZvcm1hdA== LlBhdGhz X1BBUlRJVElPTg== IHNlaA== IFF1YW5kbw== WW91dHViZQ== LnB1dFRleHQ= 7KO87IS47JqU LkFXUw== IENzdg== Q3Vyc29yUG9zaXRpb24= LWJlZ2lu X2NvdW50cmllcw== LXJhbmRvbQ== 5Y2z UGhpbGw= IHBhbm9yYW1h IHRoZXJlcw== 5Y+q IHNpbGVuY2Vk IEN1bWJlcmxhbmQ= LlZpc2libGVJbmRleA== LnN0YXRpc3RpY3M= IHByb3BlbGxlZA== QW1lcmljYW5z IHZhbGlkYQ== IEd1YW0= IEZFTUE= LnN5bnRheA== ZGdl IGRlZXBlbg== ICAgICAgICAJCQkJ IFNwZWNpYWxpc3Rz IFNhbnRhbmE= IEJlZXRsZQ== ICUKCg== VXNlclByb2ZpbGU= KCIkLg== IGVtcGxvaQ== IGVtYWlsaW5n Z2V0T3JFbHNl X1VQUEVS LmRyaXZl IHJlZGhlYWQ= Rk9VTkRBVElPTg== IG11bHRpcGxpYw== L2VmZmVjdHM= IGhhbmR3cml0aW5n X3Rh IEJheg== w7ZmZmVudA== cHJpeA== IGNoaXBzZXQ= IGlwQWRkcmVzcw== w61kYQ== IFVuZw== IFNjaGE= LkZMT0FU IHF1aWVybw== b2Nocm9tZQ== IHJlZWZz YnNvbg== IG3Dug== IHRyYXlz Qm9tYg== IG15TGlzdA== eGltaXR5 IERlbmc= VW5p LVNlcmllcw== b2dhbnk= bMSxaw== L2NhbA== IHJlYWxpemE= IEhpYg== CQoJCgo= IGh1bWlsaWF0aW5n WyR7 IHByZXRlbmRlZA== IERhdGVuc2No YW5zaWJsZQ== CXJlbG9hZA== IG1pZ2xpb3I= X2JldA== IHRvdGFsVGltZQ== IEJheHRlcg== IGVuYW1lbA== L0ltYWdlcw== IFNFUw== IFNwcmluZ0FwcGxpY2F0aW9u KWluaXRXaXRoRnJhbWU= CWNhbA== RUxFTUVOVA== IEd1dGg= KEJpZ0ludGVnZXI= IE1lZGk= Lk1lbWJlcnM= IHJlam9pY2U= IGRvZg== UEVuZFBvaW50 IGNsaXQ= X1JFVVNF TWFrZXM= IHN6eQ== IHNoYWRlZA== IGZhdm91cmVk aXN0b2w= ZGV4 IGZsZXhHcm93 hac= X3ByaW50ZXI= LmZuYW1l cGVyYXRpb24= IG7Ds3M= Z2dlcg== 6ICB INCy0YDQtdC80Y8= KGVmZmVjdA== QnlVcmw= IEFQUw== dHV0b3JpYWw= ZWpz U3FsUGFyYW1ldGVy IHNjcmFwcw== R3JlZXRpbmdz RmVk IFJFTkRFUg== IGJsb29tcw== IGRlYmlsaXRhdGluZw== b21ldHJpY3M= IHNpbWls LWhlcm8= IHJlYWxwYXRo ZGVwYXJ0bWVudHM= QklORA== IENhc3NpZHk= bGlhbg== U0tJUA== LWNsZWFu IHNpbGRlbmFmaWw= X211bHRpcA== anNvbkRhdGE= QWdlbnRz LmZoaXI= IHRyaXVt IGFzdG9yZQ== IG5leA== OnVwZGF0ZQ== INC00LA= 4KSy OyIpCg== LlRleHRJbWFnZVJlbGF0aW9u IG1pY3Jvc2NvcHk= U1VS YW5reQ== IFBldGl0 bWFya2V0aW5n IHZlcmlmaWNhcg== YW1hZ2Vk Y3Ro IGluY29uc2lzdGVuY2llcw== IG1hasSF IGdldEluZm8= IHBhc3Npb25hdGVseQ== IGljbXA= W10+Cg== U2luZ2Fwb3Jl IE5ld3Rvd24= IHJhaWxpbmc= IEVubGlnaHRlbm1lbnQ= dXRoZXJsYW5k bGVpbmU= X3JlZ2lzdHJv IEVyaWNh X3RpY2tldHM= L21ldGhvZA== aXp6YXRv R2F0dA== LWZlYXR1cmU= IDotKQ== IHNlcnBlbnQ= IEdyb3VwTGF5b3V0 TmlrZQ== dW5nYQ== IE1pbQ== IGluY2Vzcw== IGRlcGxldGlvbg== X2xvdA== IGJpcnRoZGF5cw== IHJlbnRlcnM= IGVxdWlwb3M= IExlaHI= X1BsYXk= IHNwaWVsZQ== IExBTkQ= IEVuY291bnRlcg== aXphbmRv IHBlcnU= IHNsYW1taW5n IHJlaW5zdGFsbA== IGFuZ2k= SW5UaGVEb2N1bWVudA== IHZlcnNjaGlsbA== IHZlcnNv LnN0YWZm KHZw KGFjY291bnRz Z2V0QXBwbGljYXRpb24= IG1hbnRlbmVy LlNP LkFE IE1vcm1vbnM= CXJlYWw= IGhvdGxpbmU= IENhcmRpbw== cGFnZUluZGV4 Ymplcmc= Rm8= IGNvbnNlaWxz IG1pZ3JhaW5l IGxhdGlubw== IHRvcnBlZG8= amFiaQ== L3Jz dWJiZXI= IENsYXNzZQ== 4Lw= KC9eXA== X2RlcGxveQ== R1JFUw== IFdIQVRTT0VWRVI= IGFyY3B5 IG1pZWpzYw== QXJteQ== IHNjaMO2bmU= IGJtaQ== IDoiOwo= IENydWlzZXI= cWg= LnByZXBlbmQ= IHZpdmU= b3JpYXNpcw== ICE9Cg== dGVnYQ== YW1lZGk= UHJvamVjdGVk LWJyZQ== LHJlYWRvbmx5 IHN1YlRpdGxl IG1pc3Ry IEluaGFs Y292ZXJpbmc= IHppag== IEFSVElDTEU= UlVMRQ== IGFsdHJv IHNldHRsZXM= aWRlbGJlcmc= OiIuJA== KGZl X2Jt IHByb3ByaWV0b3I= IGtlZXI= U2VwYXJhdGVk X05FQVJFU1Q= KHN0cnBvcw== IENvbXB1dGF0aW9uYWw= IGVybg== SW5WaWV3 QWNyb3Nz IGZydWl0eQ== X21hcHBlZA== IGdyYXR1aXRlbWVudA== IHt9CgoK cG90ZW50aWFs cGFudHM= IHNlbnRpbWVudGFs IExpbmtlZGlu KHBhdGNo IGFkYXB0b3I= IFVJU3Rvcnlib2FyZA== IHNsYXNoaW5n KCIvOg== IHRleHREZWNvcmF0aW9u LmRpYWc= XFJlZGlyZWN0 IG5ldXJvc2NpZW5jZQ== IEFkanVzdG1lbnQ= IFNjb3RjaA== IENvc2J5 U0VB PXZpZXc= IGV2b2x2ZXM= IFNhbGlzYnVyeQ== 44CB4oCc ZXZlcnlvbmU= KGFyYw== IGFwYXJ0aGVpZA== IGF6aW11dGg= IFNoYW1hbg== 2KU= w7NuaWNh OmNsYXNz IEluamVjdG9y YWhhcw== YWJsZXI= X2VzdGltYXRvcg== X0NVQkU= IEtyYW5r IHVuZmF2b3JhYmxl IHJlcHV0ZWQ= IENvbmRpdGlvbmFs IG1pbGZz IFJlc3RyaWN0aW9ucw== KGhyZWY= SnVhbg== PEVudHJ5 CXRlbXBsYXRlVXJs X3Byb2R1Y3Rpb24= VHlwZUlE IGJhbGs= IG5ld0Fycg== IGxpY2VuY2Vz LnNvbHV0aW9u LnNhbQ== IEh2 IHRyZW1ibGluZw== WWF3 IGZsZWVjZQ== IHNob3ZlbA== V2Vy IHBhdHRlcg== PVk= IEZybQ== U2NyZWVucw== JCI= IEJsb25k INGB0LjRgdGC0LXQvA== KG9k IG5vY3Q= b3VudGVycw== dXNlcHBl fGludA== LnJlbWFpbmluZw== IHVsdGltbw== IG1hc3R1cmJhdGluZw== bW1j PUc= Il19Cg== IGZlYXJsZXNz IGFsZ3VtYXM= Y3VsdA== QWx0ZXJuYXRpdmVseQ== 5bKB T0RFVg== IEFkb3B0aW9u IHdlYWx0aGllc3Q= IG1lbnRyZQ== L2dvdG8= IGluZm9ybWFudA== IFJvdXQ= b2Zp IGhhbW1lcmVk IEVzdG8= 4oCZQnJpZW4= IMWa IGRlbWk= INGB0LvQtdC0 IENsaW50b25z 7IWY 5aSn5bCP RUNI IGFuYXJjaGlzdHM= IEJldmVyYWdl IGdvdQ== IGJyaWJlcnk= IHBpY2t1cHM= IHViZXI= IHN5bmVyZ3k= ZmNu IEhlbnRhaQ== IEJhc2VtZW50 IG1vcmI= X2N1 amFkaQ== KHByb2o= IEJpbmdv X2NhdGU= W2VtYWls Klg= X1NFUA== IHByaW5jaXBpbw== dXBkYXRpbmc= Ly99fQ== Li4uKA== IERPRQ== IHpn c2hhcGVz PXRtcA== Q3J1ZA== IHdvcmtwbGFjZXM= IHN0YWJpbGl6ZWQ= IHRlbnRhbmc= LnByb2R1Y3RJZA== IFRyaWRlbnQ= IG9yY2hlc3RyYXRlZA== IEJ1Y2NhbmVlcnM= X3RvbGVyYW5jZQ== aWdyYXBoeQ== w7xsZXI= INi1 QVE= IGF0aGxldGljaXNt CVNlcnZlcg== ZXdlZA== RGlkRW50ZXI= UmVnaXN0ZXJz X2VtbHJ0 IGZ1bmN0aW9uYWxpdGllcw== KGhkYw== X21hcmtlcnM= T3JlZ29u KFN0cg== IEdldEJ5SWQ= IHp3YXJ0ZQ== IE9DSQ== IEphbWU= X2NyaXQ= IHN0b2NraG9sbQ== CURpY3Rpb25hcnk= X2NhcGFiaWxpdGllcw== Q1RS IG51bWE= X2ZpcnN0bmFtZQ== IE5TUmFuZ2U= IG1vc3RyYQ== IEFycml2YWw= KElTZXJ2aWNlQ29sbGVjdGlvbg== IHRlYXNwb29ucw== IFNldFVw CQkNCg0K KGd1aWxk LiJd IG3hu5tp YmZm REFURVM= KCldCgo= IGh1bWFub2lk dGhybw== KGtsYXNz IFZhZA== ZnNw LVNhaA== IFVTRVJOQU1F IFByb3BlcnR5Q2hhbmdlZEV2ZW50QXJncw== IGxlc2lvbg== X0RFTklFRA== IFRISU5L gqQ= bWVudGFs IHByZWNhcmlvdXM= IE5vc2U= IGNvbmNs IHdpbGRmaXJl IFRCcmFuY2g= IEJBTQ== L2Nzdg== IE5BTg== IENsZWFyYW5jZQ== XEJsb2Nr LmFubm90YXRl 5om+ IFdISUxF Z2VidW5n Pkxpc3Q= c2ht Um9zcw== YWZk W3RpZA== UGVyUGl4ZWw= Kyhc IEN5YW4= IEtub3Q= X3Zsb2c= L3Zhcg== W19f IGhhc2htYXA= KCk7DQ0K IGFtYXNzZWQ= IGRhdGVQaWNrZXI= IFNhdG9zaGk= X0NBUEFDSVRZ IGJ1eg== IE1pbmg= U2V0Q29sb3I= Kz0nPA== IEludmVudA== b3JjYQ== aWdudW0= IEFtcGg= IHJlZmx1eA== CiAgICAgICAgICAgICAgICAgICAgICAgIAo= dWhu KFRN YWxsZXk= IGxlZnRvdmVycw== ZmRj 4oCcVGhlc2U= IGNyYXdsZWQ= KFZvaWQ= aWd0ZQ== 8J+S c2V0RGVmYXVsdA== IEJlZ2lubmVy UG9r IEhMUw== IGdhbWVJZA== IEFtYmllbnQ= X1BSRUQ= LiJ9LAo= w7xocnVuZw== LlN5bmM= IGludmU= IE51cnNlcnk= IGdsYXplZA== q+yekA== X2ZhdGFs X2Rpc3BhdGNoZXI= W10pDQo= IGRldXRzY2hlbg== 6rGw U2hhcGVz IGlycmV2ZXJzaWJsZQ== X3Blcw== X2VzYw== IHRoZXJtb21ldGVy 44OU44O8 X3NxcnQ= Il09PSI= IGN1bG1pbmF0aW9u V29yZFByZXNz IGxldmVu VmVydGV4VXZz IEhheXdhcmQ= IEFzc2V0SW1hZ2U= IG1haXpl IGNoaWNhZ28= IHRhdg== ZXhwZW5zZXM= 0K0= K2Y= LiInIjsK LVNB IEtvdGE= TWFpbkZyYW1l LnNhbGU= X0JV IHN0cmVu X2ZpbHQ= L3ByaW50 KFBhY2tldA== INC30LDQsg== QWN0cw== 0LXQu9C10YQ= IHJlbWF0Y2g= IHJpZGRlbg== IH0pKCk7Cg== IGVuZG90aA== IGNlcnRpZnk= IFVJUGlja2VyVmlldw== XE5vdGlmaWNhdGlvbnM= CVRpdGxl IGluZXF1YWxpdGllcw== IE1vcmFu IERhZW1vbg== bGVzaWE= IGhvcHBpbmc= IGd1c3Rv IEZpcmViYXNlRmlyZXN0b3Jl IHBvbHlsaW5l IHNwaWtlZA== JSIpOwo= IExBVElO TGFiZWxUZXh0 IHN0cmFwb24= X2ZpZA== LXNwZWNpYWw= YXJnZWQ= IFNUSUxM UXVhbGlmaWVkTmFtZQ== LlJFUw== I2M= LndyaXRlbG4= IEltbXV0YWJsZUxpc3Q= IFRodW1i IHNpbWQ= RGVzY3JpY2Fv LlNldFRleHQ= IG5vbnByb2ZpdHM= V2l0aGRyYXc= LWVuY29kZWQ= c2Jpbg== IGFtb3J0 CWRk cmlm IHBhdGVybmFs Lk1hcEZyb20= X2Fzaw== IHJlY291cnNl IGJhY2tzdG9yeQ== CW1hbmFnZXI= X0RHUkFN IEJpaGFy aW50ZWxsaWdlbmNl IHNraW1hZ2U= KGVuY29kZXI= IHN3aXJsaW5n IEFwcGV0 X3NhbHQ= IGF0dGU= IFNRVUFSRQ== IE5ldHo= X3BhaW50 YXPEsQ== aXNjaQ== Rmxv LWdvYWw= LnNldFN0cm9rZQ== IEF1c2Nod2l0eg== IEFiZGVs IGFuZXc= IOWung== IHRvdGFsUGFnZXM= IHJlZmFjdG9y IGNyZWF0aXZlbHk= ZW1heA== b2RveHk= X3R4bg== LlNvY2tldHM= IFJpZGxleQ== 4buxYw== c2FtcA== TWluTWF4 IHdvcnNlbmluZw== b3VudGFpbnM= YXJ0bmVy LXByb2Y= c2luZ3VsYXI= PWlz IEZFQw== X0ZN IOaIlg== IENhdWdodA== X1NDTA== IGV4cG8= aW5mcmE= IE1FUw== Y2hhcA== YWx0ZQ== YXJraW4= L21M IHNlbmREYXRh IGZyYW7Dp2Fpc2U= IHPDpg== X0RFRklOSVRJT04= KioqKioqCgo= XEN1c3RvbWVy IOKWiOKWiOKWiOKWiOKWiA== IHBlcnBldHJhdGVk IEZ1cmlvdXM= IHRlbmdh bGVhcmVk VUxMRVQ= aW5pYw== ZWFyY2hCYXI= PENhcg== IFJlbmV3YWJsZQ== IGNvbnRlbXBsYXRlZA== L2Zvcm1hdA== IGZvcmdpdmluZw== LlN1YkVsZW1lbnQ= UFVURQ== LmNvbnRlbnRTaXpl IHJlc3BlY3RmdWxseQ== 4oCcCgo= IHBvaWduYW50 dXJpbGU= fSkiCg== c2VxdWVudGlhbA== L2Zhc3Q= cHJ1bmc= IFN0dW5uaW5n IEJZVQ== IGNvbXBhcmVy CXJk dW5pY29ybg== xrBh LkdldEl0ZW0= IHNlY3Rpb25hbA== anVkZ2U= dXh0YXA= IHN1bmRheQ== IHDDpA== TWlubmVzb3Rh Ik4= IGFwcGxpY2F0aW9uV2lsbA== QU5HRVI= IHJlYXNvbmVk IFpFTkQ= emFw PWJhY2s= b3NwaGF0ZQ== 6IqC54K5 IHRpdHRlbg== IEFzc29j QWN0aXZpdHlDcmVhdGVk KVst PyIKCgoK IGpvdA== 2Lg= IHVuY29tcHJlc3NlZA== LklzREJOdWxs IHZhc2U= IGxvcmVt IGVudHJlcHJpc2U= IENvbnNlbnQ= 44Op44Oz QnlWZXJzaW9u IHF1aWVuZXM= CWNvbnQ= IEJsYWNraGF3a3M= IEJsYXNpbw== IHRhbmtlcg== IHN0YXJ0dGltZQ== IFNlYXM= cGlvcw== LlNwbGl0Q29udGFpbmVy Y29tcGV0aXRpdmU= IHBCdWZmZXI= IGNvbnNlbnRpbmc= LmFkZE9ic2VydmVy aXRjaGVk IG1pc2NlbGxhbmVvdXM= IFRvcHM= CWxw Y21kcw== LmRlcGFydA== IGZOYW1l CWJlc3Q= OlA= IHN3YXRo IHZva3M= YWxsb24= IEh0bWxXZWJwYWNrUGx1Z2lu LmxvZ2dlZElu YnVja2V0cw== IGhvbW9waG9iaWM= IHN1YmR1ZWQ= IG1lc3NhZ2Vib3g= V2hhdHNBcHA= IGRpc3NpcA== IE1BTlVBTA== TElLRUxZ dGVzdGRhdGE= LU9jdA== RXhpdGVk IFRhc21hbmlh bGFj IHRow7RuZw== U3Rvcmllcw== IGJpb2NoZW1pY2Fs b3JyZQ== IGVjbGlwcw== IEFzc2VtYmx5UHJvZHVjdA== cnRsZQ== IFdpbGhlbG0= cGl6emE= X0RI Y29uag== IHB1ZWJsbw== IGxpcXVl IGN1cGlk IEFjdGl2aXR5Q29tcGF0 LlNt Il19 bWFpbGJveA== Lm9wdFN0cmluZw== LW9i IE1hdWk= YXRhaXJlcw== IG1lcnJ5 Um5k IGNhcmFjdGVyw61zdGljYXM= VHJv KGNu Lmxk LXBvaW50cw== LnNi IHZlag== IGNhcmVnaXZlcg== IG5hdQ== RElSRUNUT1JZ KGFuZw== KC4p IGV4cGxhbmF0b3J5 ZWxzZXk= IE92ZXJuaWdodA== IGxhaXNzZQ== IFJBVEU= IEdvdw== UmVjb2duaXRpb25FeGNlcHRpb24= aWNoZXJ0 IHJldm9sdXRpb25z JGNhdGVnb3J5 IHVuZGVmZWF0ZWQ= L2NvbW11bml0eQ== LXBhcnRz LWFwcGxpY2F0aW9u K0E= L3N3ZWV0YWxlcnQ= IEtt aWxhdGVk YXRhdA== UEFU xI1l IFRlYw== Lm9uQWN0aXZpdHlSZXN1bHQ= XFdlYg== IEx1Zw== b3ZvbHRh IGFsdHJ1 aWd5 IGLEmWTEhQ== IGFjdGl2YXRpb25z IGF1ZGl0aW5n RVJHRQ== IOiLpQ== Q2FybG9z IGtJbnN0cnVjdGlvbg== bWluZXI= IH19Lw== QW5kSGFzaENvZGU= IEJvdXJib24= LnByb2Y= IGltcHJpbWly IEZlcmRpbmFuZA== 0LzQtdC90YI= L3t9Lw== IENsYWly IE9uQ29sbGlzaW9u c2FsZG8= cmFpc2Vk IEFCT1ZF KCk9Pg== IGRldXRzY2hsYW5k aGliaXRlZA== RXh0cmVtZQ== L2hvb2tz IGRvdXQ= IFZPQw== ZXRob3Zlbg== UE1D IHJlc3RhcnRpbmc= IFNDTg== IEVP IERKcw== UGFzc3dvcmRGaWVsZA== LkFjY2Vzc2libGU= CWJ1cw== U1RSVUNUSU9OUw== IGxhdGVu IFNOQVA= X0hFUlNIRVk= IG9uc3RhZ2U= 5bCP5pe2 IHNhaWxvcg== IEN1cnNv IGltcHJvdmlzZWQ= IGdlbmVyYWxpemU= IGJ1ZW5v IGNlcmVtb25pYWw= IENOUw== IHBpZ2Vvbg== bXNw L0FJRFM= bGluZUVkaXQ= IEZpbmFuY2luZw== IGpUYWJsZQ== IGJvdHRvbXM= IFRleHRJbnB1dFR5cGU= IG1laXNqZQ== LXNpZ25lZA== IEdyZWVudmlsbGU= b3BoaWxpYQ== SWNvbk1vZHVsZQ== IGNsYW5kZXN0 ZW1haW4= U0NBTg== X1RJTUVT IGxlY2tlbg== KGNhbmNlbA== IGVjc3Rhc3k= Lk1VTFQ= IG1vZXRlbg== IGFwcHJvcHJpYXRpb25z IFFMRA== IEd1aWw= IHRyYXBwaW5n eERB IGvDtmxu ZW51bXM= 4oCcVG8= cG9ydG8= bmluZ2Fy IFRPTw== LVNU IE1hdGhz IGt1cnM= IFJFUEw= X2NvbnRyaWI= IFBoeQ== cmFuZw== Lm1hdmVu LWZvbGxvdw== IC0tLS0tLS0tLS0t xLHEnw== X3dpbm5lcg== LkNyaXRlcmlh KGRhdGFTb3VyY2U= IHNldElucHV0 IFRJTUVTVEFNUA== b3BlcmFuZHM= Z2V0V2luZG93 LmZhY2VWZXJ0ZXhVdnM= IEludmVzdGluZw== Vnk= IHBlcnNlY3V0ZWQ= 4bq/dQ== IFBsdW1iaW5n T05HT0RC RXZpZGVuY2U= IFN0cm9t cXVvdGE= TGl2ZXJwb29s CWF0dGFjaw== bWluaW1hbA== IG9uS2V5RG93bg== IG1vZHVsZUlk IFZlcmFuc3Q= bW9ydA== YWNpc3Rz IE1BU1M= X1VOREVS LmdldFJ1bnRpbWU= RU5USUNBVElPTg== Uk9LRQ== IHNjYWxlWA== IHNlcnRh IEZyZXF1ZW50bHk= X1RSQU5TRk9STQ== IHR3aWxpZ2h0 IE1jS2Vuemll bGVkZ2Vk IEB7QCI= X0FDVElW IGhvb2tlcnM= PWRlZmF1bHQ= IHdhbG51dA== IHVzZU5ld1VybFBhcnNlcg== IENoZWVy IHdyb25nZnVs bmlv YnRj LnN0cmlkZQ== IHN1Y2Nlc2Z1bGx5 IFRyb2xs aWZpY2lv LmNvbmQ= IGhlYXBz X1BIT1RP PEFkZHJlc3M= IFN0aWNreQ== IG5pZ2h0dGltZQ== IGRhbmRv IEJJTEw= INC+0YLQstC10YI= RGV0ZXJtaW4= IGZ6 KHNpZ25hdHVyZQ== IHZpbmRlbg== LkNPTk5FQ1Q= cnVpc2U= IHh1 cHJldmVudA== Rk9Y VUlBcHBsaWNhdGlvbkRlbGVnYXRl U3BsYXNo IGVtYnJvaWRlcmVk IEhpbGZl LnNoYWRlcg== IGRvdWJ0ZWQ= UmVzcG9uc2VTdGF0dXM= IHVuc3RvcHBhYmxl dW5sb2Fk KyJd ImxhYmVs IGZyZWVsYW5jZXI= RGlyZWN0ZWQ= IHZvcmhhbmQ= IFNubw== ZXhpc3RlbmNl b3JkaWFs emFn LkFnZQ== IHNwYXducw== IFBTRw== c3RpdHV0aW9ucw== IHNpZ2h0aW5n LXRhbGs= INGB0L7RhdGA0LDQvQ== ZW5lcmltYQ== IEJlbnRvbg== X1N0b3Jl VHJhbnNwYXJlbnRDb2xvcg== IEV4cGxvc2lvbg== X0lTUw== Q2hlY2twb2ludA== IGRlZmxhdGU= 0JLRi9Cx LXRyYW5zZmVy IEJhYmllcw== IGltYQ== LnVzYWdl IG5lZ2F0aXZpdHk= IEV4dHJlbWVseQ== a2o= RG93bmxvYWRlcg== CWFjdA== W2NoYXI= Tm9ybWFscw== X3JlZmVyZW5jZXM= IGRyYWNvbg== 4bulYw== X1RSTlM= Y29tcGFueUlk IFZlcmQ= YW5pbw== IE1hdGNoZXJz KHJlbGF0aXZl IHJlZWxlY3Rpb24= LkhF VGF1 INGB0YLRgNC+0LrQuA== IE1ldGFscw== IENvY2t0YWls IGFwcmVuZGVy X3ByZWZlcmVuY2U= LlNjaGVtZQ== IGdsR2V0VW5pZm9ybUxvY2F0aW9u VXNpbmdFbmNvZGluZw== 0YDQsw== ICJdIik7Cg== TGVhZGVycw== J8OqdHJl X0RlbGF5 UHJvY2Vzc2Vz aWN1bHR1cmU= XCI6e1wi 4oCUIg== RW1vamk= LWdyb3c= IENDRA== Y29tcG9zZWQ= TWFpbnRlbmFuY2U= IFJ5emVu KGFn LnByb2I= IFNpbmF0cmE= IGhvcnJlbmQ= IE1vdW50ZWQ= X1BFRVI= IGN1aw== IHPDuGtlcg== IFF1YXI= X1JFU09MVVRJT04= J2VhdQ== IGJvdXJib24= IGF0SW5kZXg= L3BvbA== IOq0gA== CXB3 fSl9Cg== LmZvcm1EYXRh IHVkZW4= IHJvYXJpbmc= Tm90aWZpY2F0aW9uQ2VudGVy IGNsdXN0ZXJlZA== IHBhaXJ3aXNl bXVsdGlsaW5l R2FtZURhdGE= Lkxhcmdl KSc6 INGB0LXRgNCy0LXRgA== IFVJTWFuYWdlcg== U3Zj IFBsYXlzdGF0aW9u Lk1vcmU= LnF1YWxpdHk= IGNvbmZpZ0ZpbGU= LWNvbnRhaW5pbmc= IEdvYXQ= ZW5jaW9u IGxpa2VuZXNz LXVzaW5n IHNlYXNpZGU= 4bqpdQ== YW50aWNpcGF0ZWQ= Rm9sZGVycw== LUxldmVs b3BjaW9u KXByZXBhcmVGb3JTZWd1ZQ== PigpKQ== PWFkZA== XGdyaWQ= IHln X0RSSVZF IEdldE5hbWU= LkRBTw== IGhhbm4= CWNhdA== IHZpZ24= IEhlbGxlcg== IENSRUFURUQ= YmVyb3M= YnV0dA== IGJlbmRz IExlZXI= 0KY= IFNNUA== VmVjdA== IG9iamVjdFR5cGU= OmFzeW5j IGNvbXBldGVuY3k= IFF0QXdz TG91 L2NhdA== UHJvc3RpdA== LXZlcw== CXR2 IEVJ QW5kV2FpdA== IFRPT0w= fSo= X1Jlcw== IGFsaWdubWVudHM= 7KGw IENsYW1w LXBhZA== IHdyaXRlRmlsZQ== IEFwcHJlYw== 4oCZYXV0cmVz dWRhZGVz IGx1Z2FyZXM= c3BlbmRlcg== W2ltYWdl RVhJU1Q= IGRlY2VpdmU= IGh1bnRz X1ZPSUNF X0RY Q0FD ICgoJw== aXNrcw== LGZpbGVuYW1l IGxlYW5z SW5wdXREaWFsb2c= RGF0YUNvbnRyYWN0 IHNtb290aGVk IHJlY3J1aXRlcnM= IHRhbmdsZWQ= X1RhYg== IEZpbGVBY2Nlc3M= WUM= IHZY PGR5bg== TGV4ZXI= IOKYhg== IGdsR2Vu VGVtcG9yYWw= IEFURg== YW5rbw== VXNlckNvZGU= IEtvdGxpbg== Li4KCgoK RU5DRUQ= LnVudHJhY2tlZA== X21y IHdhdmVsZW5ndGhz IGRpY2hv IGltdQ== X2NyZQ== W0o= X0RG IGF0dGFpbm1lbnQ= IGxpdGVycw== W2tleXM= IGxpc3Rhcg== SHR0cHM= IGJyZXdlcnM= IGFjb21wYcOx IHRvYXN0ZWQ= LmZyaWVuZA== IHJlbHU= IFBzeWNoaWM= TWFuaXA= ZG5h UHJp LWZsYXNo KGFydGlzdA== IEtvdg== cHJlc2VydmU= X3BlbWI= LnNldFByb2dyZXNz IGR1c2s= IGNhbm5hYmlub2lkcw== IEt1bmQ= IENvdW50aWVz IO2OmOydtOyngA== IHJlbmFtaW5n IFJ1c3Nv TlNTZXQ= KEVYUFI= 5YW25LuW RGlhZ3JhbQ== LGxhc3Q= KHdpdGhEdXJhdGlvbg== IGluZGVidGVk IERpY2tlbnM= IEFscHM= IERlZ3JlZXM= aWRhcg== LWJsb29k K29mZnNldA== IEh1ZA== b3VuZGVy dWxuZXJhYmxl IHByaW8= YmxpbmQ= KHBhY2s= IG5pZ2h0bGlmZQ== IGlsbHVzdHJhdGluZw== IG51dHNoZWxs IGJyb2FkY2FzdGVycw== IGNvbXBhbnlOYW1l aXRvcmU= LnJpZ2h0QmFyQnV0dG9uSXRlbQ== Ym90ZQ== IFBJVA== LXNjcm9sbGJhcg== IHdpbmR5 IFFNYWluV2luZG93 aHVl LmVwb2No IGNhbWVy IENMVUI= aWZhcg== VW5hdmFpbGFibGU= LXF1b3Rl IEdyYXo= IHZhbHU= X01BVEVSSUFM IHBlbnk= IHRyYXR0 IGxpY2tlZA== CWNhbg== IFRhaXdhbmVzZQ== UGFnZUluZGV4 LlRpcG8= X1JlZA== IHZmcw== X3RyYW1wb2xpbmU= IE1QUw== IFBlYW51dA== IExvY2tlZA== CUFU anNwYg== X05PREVT J1dl IENvbnZlbmllbnQ= X3N1Y2Nlc3NmdWw= K3o= WUxlYWY= IHBlZGlncmVl eHo= IHNhbHZhcg== X0Rlc2M= IG5lc3Rh IGhhcmRjb2RlZA== LmdvbGQ= LkltYWdlRmllbGQ= X0JT TEs= Q2hvY29sYXRl LlN0YXJ0dXA= IGFuZWNkb3Rlcw== Lk1h P10= L3RvcGlj LlNjcm9sbEJhcnM= 0YHRgtCy0LA= IE1PTQ== IHFvcw== YXJ5YW5h w6RjaHN0 IE1jR2lsbA== IEVEVUM= KHBvc3Rz IEVudHdpY2tsdW5n X3NraWxscw== LWd1YXJk IHRleHRpbGVz fHVuaXF1ZQ== IEFyaXRobWV0aWM= TG9hZElkZW50aXR5 KTt9Cgo= IGFzc3VyZXM= V2lsZGNhcmQ= IGRlZmF1bHRlZA== IE5vdFN1cHBvcnRlZEV4Y2VwdGlvbg== IFRvbWF0bw== LlN1bW1hcnk= ISIu dXRoZXJmb3Jk IGxvb3Bob2xl IGNtYWtl LWRhdA== IHJhZ2F6em8= IGNhcGl0YWxz IEltcG9ydGFuY2U= IER1bmdlb25z X3pvbmVz LnNhdA== ICAgICAgCiAgICAgIAo= Y2F0ZWdvcmlhcw== IGRhdGF0YWJsZQ== IG5hamxl KGdw LXJlbg== IHBhbmlja2Vk IFNreWw= IFFVSUNL dmFsdWVPZg== U3RhdGlzdGlj IGRlbWVhbm9y bmRlcm4= IEFwcGVhcnM= UHJhZ21h X3Bhc3Q= SGFzaHRhYmxl IHRoYW5raW5n LmNzcmY= IHBhdmU= IFZpY3RpbQ== IFDDpQ== Rmlyc3RuYW1l Q0FURUdPUlk= aWxlc3RvbmU= JyktPl9fKCc= IGluY2FwYWM= U3RyZWFtV3JpdGVy IGNvbW11bmlvbg== X3N0ZGVycg== 6Ieq5rK7 IGh1bWFuaXRpZXM= INC70Y4= IFBhcmFz bG9mZg== SGVhZGVyVGV4dA== Z3JlZ2F0ZWQ= LlhSVGFibGVDZWxs IGVudGl0eUlk IE1hc3Rlcnk= b2xkdA== JykpKTsKCg== aHVtaWRpdHk= Li4uIik7Cgo= RGVsdGFUaW1l IG1rdGltZQ== UGhvdG9u IHBlbnNhcg== c2NhbGluZw== X3llbGxvdw== X211bHRpcGx5 IFZ1bGNhbg== IFBlYXJjZQ== X2xj LWV4Y2x1c2l2ZQ== SXNVbmljb2Rl IHBhZHI= X1BDSUU= IGdsaW1wcw== IHJhbXBhZ2U= IFBhZ2luYXRvcg== IGNvbnZleWluZw== bm9yZQ== X2RldGFjaA== J10hPSc= IGJvbmE= CUNvbg== TmF6 IHNlZ3VpbnQ= IG1pZXN6 IGVzb3M= ICcvJykK IGZhaXRoZnVsbHk= IGJla29t 0LDQutGB d2hlbG1pbmc= LnR3bw== IFNDRQ== LW5h ICgpew== IERhbWVu X3RndA== YWRhbGFmaWw= IE1NSQ== VGhpbg== IGRlcHJlY2lhdGlvbg== IGFic2VudGVl IHNhbGFyaW8= IFNvbWVib2R5 IFNsb2Fu IGVyZm9sZ3JlaWNo Ok5TTG9jYWxpemVkU3RyaW5n IGdlaMO2cnQ= IGVtbw== IExhZ3VuYQ== w6FzYQ== aXN0cmF0ZXM= UmFpc2U= IEFzdHJvcGg= ICdcXCc= X3BlZA== IFRIUk9VR0g= IE5pZXR6c2NoZQ== ZW5lcmF0aW5n b3BsYXllcg== IHJvZGVudHM= w7xobA== R2FtZU1hbmFnZXI= IEhlYWRlckNvbXBvbmVudA== IG1pbGFu cXVlZW4= IFBPTEw= IEx5bWU= IEJyaWdncw== ZWNlcg== d2Fnb24= LkRFU0M= IGdsQmVnaW4= U3RhdGVtZW50cw== ZXRyaQ== IG1vY2tlcg== IEJsdWVwcmludFJlYWRPbmx5 L2NvbnRlbnRhc3Npc3Q= ZW1hYWt0 L2xvYWRlcg== X2xvd2VyY2FzZQ== Y2l2aWw= X3ZhbG9y X0dsb2JhbA== IGFkcg== aXRpemVu LlNpZGU= IEVtYmxlbQ== IHRoaXJkcw== X1NIQVBF UmVncmVzc29y UFlUSE9O IHBzeWNob3RpYw== IGN2cw== IEFwcGxpY2F0aW9uVXNlcg== IGFsdW5vcw== VG9nZ2xlQnV0dG9u IG5nYQ== IG3Do2U= YWR2ZXJ0aXNlbWVudA== 5YiG5Lqr Lm92 IEFPTA== UkVX INin2LPYqg== IEdpbm55 IC8vLy8vLy8vLy8= U29uZ3M= YWNpYw== Q01Q IHJlY29nbml6ZXI= IHDDq3I= RElD O1wiPg== IGNsb3Q= OkV2ZW50 LlRP IEN1cnNvcnM= XFN0b3JhZ2U= IElvbmljUGFnZQ== X2pldA== KEJpdENvbnZlcnRlcg== IGNoaWxkaXNo VHJhZGVy PEhUTUxJbnB1dEVsZW1lbnQ= X0ZSRVFVRU5DWQ== PSI7Cg== eXN0YWNr SnVy IOmU IHRjYg== IHJlY2liaXI= LnN6 IO2BtOuemOyKpA== UEVSU09O bm92YQ== IGNvZXI= IE1haG1vdWQ= IFdvcmtwbGFjZQ== IiIiKSwK LlBhZ2VTaXpl Z2V0Um9vdA== KGJhc2VVcmw= W1U= IE1DUw== IENsYXJrc29u LnZvbA== ICIifQo= IHBldXg= IFByb2R1Y3RTZXJ2aWNl IG1vbmRheQ== IFRlc3REYXRh IE1hdWw= IHN0cm5jbXA= IHNob3BwZXI= dGhlb3J5 IGV0aXF1ZXR0ZQ== bGljZW5jZQ== c2NhbA== LWNsdXN0ZXI= IGhpc3TDs3JpYQ== IFN1YnRyYWN0 IGZpYmVyZ2xhc3M= X2xhc3RuYW1l IFJld3JpdGU= L3RvZG8= IG92ZXJmbG93aW5n IEdhdXNz b2theQ== IGNsdW1zeQ== KHh5 IGV4ZW1w YW5hbHl6ZQ== LXRpY2tldA== bmluZQ== IERlYWRwb29s IGNvbHVt IEpL IFtdLA0K IEFzcGVu IG1hbGlnbmFudA== aMO1ZXM= U2NhbGE= aW5uZQ== IENPTlNUQU5UUw== X1ByaWNl IyUl IGFyc2No IE5TQXR0cmlidXRlZFN0cmluZw== IEZpbGVUeXBl YWxsb2NhdGlvbg== X3Npbmd1bGFy KFBvaW50ZXI= YW5uaWVz U3RvcmVk ICc7Cgo= 4oCZZXg= ZHJz QnJpZ2h0bmVzcw== L09S VGV4dGJveA== IGtuYWNr IGplbmlz IG9jYXM= ZGF0YXA= IGdhbWVUaW1l IOCw bmR4 IEVWVA== QnlUZXh0 IGF0dHJpYnV0ZU5hbWU= IGp1Z2Fy X3NlcXM= IEZFQVRVUkVT OmRhdGU= ZmJl cmlwcGVy 56iN LkV4cHI= VXJiYW4= aWRvdA== IG9ibGl2aW91cw== KERiQ29udGV4dA== Q2Fyb2w= KCcsJywk IEJyaWxsaWFudA== a2Fk Y2VudHJhdGlvbg== IGt1aw== IE1BTkFHRU1FTlQ= X1dFQVBPTg== IGppaGFkaXN0cw== IGVudHJlZw== IGRvxJ8= IGFwcGVuZGluZw== IFpp X2N0eHQ= IHF1YWRyYW50 ZWxlbWVudFR5cGU= PWltZw== YnJ1YXI= SUNBU1Q= IGludGVsbGVjdHVhbGx5 LkFubm90YXRpb24= IGNhbXBhaWduZXJz LkRhdGFHcmlkVmlld0F1dG9TaXpl IMWfZWs= IC9eKA== LkRhdGFUYWJsZQ== IHdlYmxvZw== KGxpYnJhcnk= IEZ1cw== IE9TVA== X1Bhc3N3b3Jk IEJ1Y2tsZXk= aG9mZg== QWxpZ25lZA== X1JlYWw= RU5USUM= L2dyYXBocWw= IFdlZWQ= IExTQg== b2NjYXNpb24= YWRkYWZp TGV0cw== KCJg IHdpZGVu KHZpc2l0b3I= ICJcCg== QU5URQ== LWNhbXB1cw== LUJhcg== Y2FtZWw= Rm10 OmRlc2NyaXB0aW9u LmFyZQ== IEFuYXN0 IExvbmdlcg== c2VyaW91cw== IGRhaGVy aXp6ZXI= TXVsdGlwbGljaXR5 IEhvbGxhbmRl IEFubm90YXRpb25z KCk/ IHByb3Rlc3Rlcg== IFVyZHU= IHNwZWNpYWx0aWVz X2x5 Q2Fk YW5udA== anNw IGpvZQ== KXI= IFBlcnNpc3Q= IG9ibA== IGRlYWRsb2Nr IHNlcmk= UmVsYXRpdmVUbw== IFl1cw== KFByaW50 YWJpbGlh IHVucHJvdGVjdGVk IEFTSUM= Lk5vbWU= IFdlYkNsaWVudA== IElUVg== w7xybmJlcmc= aXRvcmk= U2lnbmluZw== IFJlYWRvbmx5 IGVsZHJl IENoZWNrZWQ= YWxudW0= U291cmNlVHlwZQ== bGV4aWNhbA== IGlsbHVzdHJhdG9y IERpcmVjdG9yYXRl IFRyb20= bXBw bG9nZw== Lmluc3RydW1lbnQ= IHdvb2RlZA== IFVzZXJUeXBl IFJlbmNvbnRyZXM= bW9kZWxOYW1l QlRUYWdDb21wb3VuZA== PlRv IGZyZWV6ZXM= IENvbnRl IENyZWRlbnRpYWw= Y2FsYQ== L3dvcmtzcGFjZQ== IGxpYmlkbw== Y2hsdXNz b2xsZXlFcnJvcg== IGFjY2lvbmVz IEppbnBpbmc= YXTDqWc= SW50ZXJzdGl0aWFs KSkpKSk7DQo= eWJyaWQ= IFJvbGxlZA== TW9kZWxDcmVhdGluZw== IFJlZmxleA== IEx1Y2lmZXI= IGVoZXI= IGNhcm5pdmFs ISI7DQo= X0xPT0tVUA== IHN1Y2PDqHM= IHJlb3BlbmluZw== IGNyZWFkbw== IFNteQ== IEVudHM= LlNpbmNl IEZpc2hlcmllcw== L2Nvbm5lY3Rpb24= IENTQQ== INC/0YDQvtCz0YDQsNC80Lw= bHNydWhl CWFjdG9y IFN0cmF1c3M= SnNvblZhbHVl CWV2YWw= bG9ja2Vy IFhJVg== X2h5cGVy IFBvbGx5 4oCmdGhl IEdVUkw= 0LXRgdGB IGRpdmVz dWdlb3Q= aW5lbWE= YmVyc29tZQ== Q29tcHJh LWN1bHR1cmFs IGdyYW5kcw== U2Fj IEJhcm5leQ== X1FVRVNUSU9O IG1hbWFu IGhhc3RpbHk= IGNsdWJob3VzZQ== IGdydW5k X1dBTEw= IHB1cmlmaWNhdGlvbg== hOS7tg== 0LLQsA== dmVzdG1lbnQ= LkRpc3BsYXlTdHlsZQ== X2NvcmVz JVM= IG9zw7Ni IGRpc2I= IEZyYW5raWU= IGluZGlzY3JpbQ== X0JlZ2lu KGVy O28= 44Oz44Kw bm9kZU5hbWU= IHJlZnVuZGVk IGRpc21hbA== IEh1ZmZQb3N0 IHVuZGVjaWRlZA== d3JpdGVsbg== a8Ozdw== IEJvc2U= CWxpYg== b3BsYW4= aW50ZXJwcmV0ZWQ= IE1PTkVZ dXZv IG50b2hz aXNldW0= Pmo= IHVuZml0 IGh1Z2dlZA== IEplc3Q= bXBz IGJyb20= J28= IGZvdg== IFNocmluZQ== IEVJVEhFUg== eWNhc3RsZQ== IHNhdHVy cmVxdWVzdERhdGE= W2Rpcg== T1VDSA== X0Rv IHlvbA== IGluaXRpYWxWYWx1ZXM= W3ZlcnRleA== c2VydmljZU5hbWU= LnNhbGFyeQ== IEF1dGhlbnRpY2F0ZQ== 6L6+ X1ZMQU4= KFtdKTsKCg== IFNlcnVt UGF0aFBhcmFt Zm9ybXVsYXJpbw== IHN1bW1hcml6ZXM= T0NS b3JhbQ== TERBUA== Ymlj cGlja2Vk LXRoYXQ= IGNkcw== CWFuaW0= IGludHJpYw== IFdvcnQ= IFZMQw== IFNoaWl0ZQ== U3R1ZGllcw== LmRpc3BhdGNoZXI= KGVuYWJsZQ== Lm1peGlu IFNleW1vdXI= IGJpb21lZGljYWw= IFNwb29u IE5vcnNl IGludGVudHM= IMOpcXVpcA== IERyZXNzZXM= TFBBUkFN LnNldFJlc3VsdA== LmRlbGV0ZUJ5SWQ= IG5ld2ZvdW5k IE9TRA== b3VzeQ== IGVzdGFkb3M= W0J5dGU= Q2h1Y2s= Lm9uVmlld0NyZWF0ZWQ= IENvbnRyaWJ1dGlvbg== X0VuYw== SU5FVA== IGZsYXZvcmZ1bA== IOOCog== dmlzYQ== IEhlcmN1bGVz LmdldEFwcA== IFlvaw== Lk1haW5BY3Rpdml0eQ== KS5b IGxhdXQ= SW52aXRl IENodXJjaGVz LCcj 2YrYsQ== KFNT IHZlbmRh YXNqb24= LklOVEVS aXBoZXJ5 KFN5bnRheA== b25kcm91cw== CWNlbnRlcg== QnJhY2tldEFjY2Vzcw== IENhcGNvbQ== LmdldEZvbnQ= IFZhdWx0cw== IGRpc2XDsWFkb3I= Om8= KHNoZWxs IGVDb21tZXJjZQ== IGFsdHJl X2F0dGFjaGVk IGlzcg== IG9idGFpbnM= LkNvbnRleHRDb21wYXQ= IGF0dGVuZGVl IFR3aWNl IE1vb2Q= 6YKu566x bm9kb2M= IFBJWEk= c29mYXI= IEJsb29keQ== LkNvbXBsZXRl IEJFUg== IGdldENhdGVnb3J5 IGRpc3F1YWxpZmllZA== X1RydWU= J2Vy LXRvbw== IGh5cGVybGluaw== X21heGltdW0= TmVhbA== IHBJbmZv LmdldEVsZW1lbnRzQnlOYW1l c2NoZWR1bGVk cGF5ZXI= CXZlcmlmeQ== LWVudGl0eQ== bWV0YXRhYmxl YmlsZHVuZw== IGRlbHRhWA== ZW1wbGFjZQ== IHJldmVydGVk cmVwaWQ= bGVhcm5lcg== fSkpCgo= dWNvc2U= IHJpY28= IGJhbmdlZA== IEFmcm8= KGluZXJ0aWE= YW5zYQ== IMOkdmVu S2FyZW4= IHN1cGVyc3Q= IGZydWl0aW9u b3RjaA== IFBheXM= UmVzaWRlbnRz IHByaXNt Jik7Cgo= Lmptcw== IFNsdWc= PScnKQ== IGd1dGVu IFNwaWVsYmVyZw== IFRGb3Jt KGJlZm9yZQ== IEZpbml0ZQ== 5paw5aKe IG1laWxsZXVyZQ== 0L/QuNGB0LDQvdC40LU= X0Vycg== LWZ0 bmFubw== LkFkZHI= IC8vDQoNCg== IEpvbmFo IERpc2Nv IGx1bmNoZXM= IERGQQ== ZXhwbGljaXQ= XSc7Cg== IHJlZmluZXJ5 IFN0cmluZ1R5cGU= dW5zcXVlZXpl IExpa2VseQ== V3JpdGVz LmJwbQ== IHBJdGVt b3Vuc2Vs U3RhbmRpbmc= IGNob2tlZA== IGFuc2No dXBpbA== IERlYnVnZ2Vy 4qCA4qCA PEdyb3Vw IFNjYWxpYQ== IHN1YnN0aXR1dGlvbnM= IGNsaW1iZXJz ICopIg== IG5hbm9wYXJ0aWNsZXM= IEFQUFJP IHB1cmNoYXNlcnM= IFFUZXN0 IEF3YWtlbmluZw== CVNlcmlhbA== LnJlcGFpbnQ= IHNhdm9yeQ== IHBvcm91cw== IGFWYXI= IFN1YXJleg== LUVhc3Q= Qm94ZXM= IFdlaW5lcg== IENSQQ== IOqwkuydhA== IHhsaW0= Ij8KCg== IHdhc2hpbmd0b24= 7Jq0 IHRvdGFsZW1lbnQ= X210aW1l LnNldFNjZW5l IGxsYW1h IGNibw== ZWZk IHVuZGVycmF0ZWQ= cmFpc2luZw== IE5BVElPTkFM ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KCg== b3B0aWM= aWRlYXM= IOaPkA== IGxhaw== ISEs IGtvbW0= cGFyYWd1cw== U2l0ZXM= IHN0cmVzc2luZw== IE1hdEJ1dHRvbk1vZHVsZQ== IENvbnZlcnRlZA== YW5hbWU= X1JFQURPTkxZ XT0+ IGJvcmRlbA== IGJpYmxpb2dyYXBoeQ== IGdyaWRDb2x1bW4= IGpvdXJuYWxpc3RpYw== 7J6E IHJhc3BiZXJyeQ== c3RpY2U= IGFicmFzaXZl IERCSGVscGVy IGludGY= IFJUQlU= fSciLA== IEhhbw== c3dhbmE= IGphbnZpZXI= IGluc3RpdHV0ZXM= IFNlYmFzdA== X0NPTFM= IGZpZ3VyYQ== IFp1c3Q= Zm95 PigpKTsKCg== IExpZWJl QWdlbmN5 IOyLnOyekQ== IFRodW1ibmFpbHM= dGV4dFRoZW1l IGVjaG9pbmc= ZW1wZXJhdHVyZQ== IGZpcmVwb3dlcg== ZWRi OicpOwo= w6lnb3I= L2ZlZWQ= IGh1cmw= LWF2YWlsYWJsZQ== IFJlbmRlcnM= IGZkcw== IEpTR2xvYmFs IENpdGl6ZW5zaGlw a2llZ28= U3RhbmRhcmRJdGVt LnBsYWNlcw== IHNjYWxhYmlsaXR5 IFRyYWlscw== Zm9sbG93ZXI= IHNlcnZpw6dvcw== ID8+Ii8+Cg== W21ldGhvZA== KGli IHJpZGljdWxl IGFkYXB0YWJsZQ== ZmlsdHJv IGtldG9nZW5pYw== LkltYWdlVHJhbnNwYXJlbnRDb2xvcg== IENGTw== IFBFRA== ICIiKTs= b2dsb2Jpbg== W3NpemVvZg== QnJhbmRvbg== LlRvU2hvcnQ= IG5pxbw= IFRFUk1JTg== LmdldFN0YXR1c0NvZGU= IGRlYnRvcg== IENPTlNUUkFJTlQ= CXNpZGU= IERvbWlubw== 0YLQvtC8 IGdsYWNpZXI= IGdyb3U= enA= IENhcmxh LUZlYg== UGVs LnJlYWRWYWx1ZQ== Y2xpbWF0ZQ== IHRpbGVTaXpl LnRyaXA= RU5URQ== IGNodWJieQ== IGltcG9zaXRpb24= TE9XRVI= LmJ5SWQ= Lkxvb2tBbmRGZWVs YXJpaA== LmZpbmRCeUlkQW5kVXBkYXRl IFN0b3JlZA== IGJvdXJnZW9pc2ll SFRUUFJlcXVlc3RPcGVyYXRpb24= IHN1Y2tlcg== LmRlcXVldWU= bGlja2Vu IHN1YnJhbmdl X01FRElVTQ== SXNsYW0= IFNwYXJrcw== 77yaJQ== aW1wb3J0ZQ== IGAt IGpveXM= Z3JvdXBpZA== Rmx5aW5n CWJz Z3Jvc3M= IEZpZXN0YQ== IGNzdA== IGFmaWNpb24= b3Bob24= X0NJ am4= QmVhdXR5 IHNjZQ== IGNyYWNrZXJz YXBr IGdvcmQ= IHByZXRleHQ= IFtc IENhbmRpZA== R29hbHM= QWN0aW9uVHlwZXM= LG51bWJlcg== IHBvcHVsYWNl IGVudHJlbg== IEF1dG9m 6Zmi QmFzZUNvbnRleHQ= QmFsYW5jZXI= KEJvcmRlcg== IG1pbmNlZA== cmVjYWxs Y2Jh IGFwcHJvdmVz IEtsb3Bw ZXJtaW50 X2Zyb250ZW5k ZXNjbw== IG5pbmV0ZWVu RHJpdmluZw== IFhWSQ== IFRhY3RpY3M= IHByb2dyYW1hcw== aWVzZW4= TW92 ZGlldA== YXV0w6k= KCIuIik= IGdvdmVybm8= X0FuZA== L21pdA== IGNhZmV0ZXJpYQ== LXRyYWNraW5n IGNvbW11dGluZw== LnVua25vd24= X3R5cGVvZg== IFNTQQ== UFJPVE8= Lk1lcmdl IGZvckNlbGxSZXVzZUlkZW50aWZpZXI= IFNhdGlzZmFjdGlvbg== ICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw== SU1QTElFRA== IFJlc3RyaWN0ZWQ= IE1hZ251bQ== 0L3QvtC8 S2Fuc2Fz YXlsaWdodA== IFRvd2FyZHM= IFRvbWU= IFRlbmRlcg== X2RlcHQ= LmNydA== dHJlY2h0 U1RPTkU= IGVtcHRpZWQ= ICcpOwoK 4LiB4Liy4Lij 0Y/RgtGM bGVjaw== IFt+LA== LmV4cGlyZXM= IFRpZw== IElyb25pY2FsbHk= CUxM Lk5vdE5pbA== IOWKoA== IEdvdmVy IFBlcnNwZWN0aXZlcw== IERWUg== IGxva2FsZQ== IHJlc2VuZA== IGRvdWJseQ== IGNvbXVuaWRhZA== IEFzc2VtYmx5Q29tcGFueQ== KHR1cm4= IHN1Ymxpc3Q= IGVuZG9yc2VtZW50cw== X1JFR0lTVFJZ ISIpDQo= KTs7Cg== IGdhbnpl IEhhcm5lc3M= X21hdGNoZWQ= 5L6h 4oCiCgo= Q2hlZg== CUluaXRpYWxpemU= KTsiPgo= IEZhcmFnZQ== cmlzaA== YWx0ZXQ= RGVhbGVy LkxvZ1dhcm5pbmc= KGFmdGVy IEdhcnRlbg== IGV4cGxvZGVz LkNMQVNT IHVzZVJvdXRlcg== LUxh IHNhZGRlbmVk YXJvdg== VG9VcGRhdGU= IOae cGlp JwoKCgo= IFRSQU5TQUNUSU9O b25nYQ== bG9nYW4= Q3Jvdw== IGJyaXRpc2g= IENvbnRlbnRWaWV3 X0JC b2x2ZW5jeQ== bG9hZE1vZGVs VE9PTFM= aGV0ZW4= X25o QUJM LXZlcnM= QXJlbmE= LnNpbmdsZXRvbkxpc3Q= KHBhdA== CW5hbWVz KHNx IHZhbG9yZQ== JHJlcQ== IGFudGhyb3BvbG9neQ== VGhpbmtpbmc= IG1pc2NoaWVm IGFyY2hpdmFs 4KS5 LlNldFRvb2xUaXA= cHJhcg== YW5qYQ== IGZpcnN0bHk= CWxpZ2h0 LS0s IFNwZWFycw== IG9nbA== c3RlZW4= aW1wbGVtZW50cw== cmlzdHM= K0U= IEJhbnM= IGZhc3RiYWxs IEhlcm1lcw== dmVsZWQ= dHdlbnR5 IG5lY2VzaXRh IE1vcm9jY2Fu aXNMb2dnZWRJbg== Q0xPQ0tT LkFic3RyYWN0aW9ucw== LlBhY2tldA== IG1lbmFjaW5n LXZlc20= IExpdmluZ3N0b24= IG9jaQ== IGV4dHJhZGl0aW9u ICQoJA== IExvY2tlcg== IFJlYmVsbGlvbg== IG1peGlucw== Y3RhbA== L3JmYw== IFNHRA== LGlkeA== IGJsZWlidA== KFwk IHBldGVy IGJhcnJlbg== IHBob3NwaG9yeQ== IGdvZ2dsZXM= LmhvbQ== QGQ= PSct LmlzVXNlcg== YWthc2g= X2h1Yg== aXBlbGluZXM= IEB9 LnN1cm5hbWU= SW50ZXJvcA== IGluRmlsZQ== IGVzcGVjaWFsbWVudGU= IGF1dG9ub20= IFphbWJpYQ== X0NPVU5UUlk= PENvdXJzZQ== aWRlb2dyYXBoaWM= IENhbWVyb29u ZmluZEJ5SWQ= KSIu IERlcGVuZHM= cml0b3M= Lk91cg== IHN1YnNpZGl6ZWQ= JywnIis= IGdsZWFu IEFzc2VtYmx5Q29weXJpZ2h0 cGljYWJsZQ== IHVud2l0dGluZw== IG9tZGF0 IEVhc2U= IGVtYm9kaWVz KHBEWA== IFZvdGVy QXNzaWduZWQ= cmV2ZWFs IGZlbmQ= KHBhcnNlRmxvYXQ= IGRwcw== dHBsaWI= YXNzZXJ0Q291bnQ= eG1heA== VW51c2Vk KGZi IHN1Ym1pdHM= IFJlcGxpY2E= KGR5 IGJhbmRl LnNlbWFudGlj IHNlYXJjaFN0cmluZw== IFNhbmZvcmQ= CWZ1bGw= cHJt X3V0aWxpdGllcw== VU5VU0VE IHNjYW5uZXJz IGJmZA== Lk9yZ2FuaXphdGlvbg== LWN1cg== UmFpbA== IHhueHg= JSk7Cg== IG92ZXJwb3N0aW5n VmlldA== IHRhcGVyZWQ= IGNhbWVv IFZpZXdpbmc= IGRpc21hbnRsZQ== IGZpc3M= IFNlbnRyeQ== aGVhdG1hcA== IMOhcmVhcw== IEdyw7w= IGppZw== LmNsZWFyUmVjdA== ZXZlbnRUeXBl IHR1cmJ1bGVuY2U= Y2tpbGw= LkZvY3VzZWQ= IGludGVybWVkaWFyeQ== IE9iZXNpdHk= YXRlZ28= bW9udG8= IEFsYW1vZmlyZQ== IFNoZWlsYQ== IENPTExFQ1RJT04= Q2FyZEJvZHk= IEhhYml0 UExBTg== LnZpc3VhbGl6YXRpb24= JSkuCgo= IEludGVsbGlK IEdsb3Zlcg== LnNwYXRpYWw= IGdyZWV0aW5ncw== IE9wZW5GaWxlRGlhbG9n ey8q IFTDqWzDqQ== IEVm ICJbJQ== IG1hZ2lzdHJhdGU= IExpdGVjb2lu IFNlbGU= IGNvbW1lcmM= cHJpbnR3 bmV4dEludA== LmdldENoaWxkQXQ= IEdldEN1cnJlbnQ= IGV1cm9ww6k= IEFJUw== ZXR0ZW4= LkV2ZW50UXVldWU= YW5mb3Jk dW5ha2Fu LnNldE91dHB1dA== IGNtZGxpbmU= LGdldA== IEhlYXJk LmNvbnRlbnRUeXBl ZW1k IFJldG9ybmE= YWNk IFBsYXlvZmY= YWNtYW4= LndlYnNvY2tldA== Q2xpZW50SWQ= LmV4YW0= IGF0dGVudWF0aW9u LnNldENoYXJhY3Rlcg== CUNvbGxlY3Rpb24= 5rCX IHByZWRpY3RvcnM= IFNoZXJpZGFu cmltaW5hdG9y KFN0YWNr X1BLRw== PScnKToK KHBhZA== IE5vZG8= IGludGVyb3Blcg== IFRyYW5zcGFyZW5jeQ== CWR4 emVt IHByYXRpcXVl IGZpYnI= KCk/Owo= X01PQklMRQ== LlJFRw== X1lFTExPVw== VGl0YW4= JykKCgoK IGNvbXBvbmVudE5hbWU= IENvb2xlcg== aXNGdW5jdGlvbg== LmZlZWRiYWNr IHBlcmZlY3RlZA== IHBhZWQ= LXNjcmlwdHM= U3VzcA== PE9wdGlvbg== IER0 7YS0 J1JF IE5STA== IE1hbm55 IHJvZw== IEdhcnI= X2Nvb2tpZXM= U3Bs IHByb21vdGVycw== KmR0 XEFQSQ== IGV2b2tl X0VudHJ5 IGZpcmVmaWdodGVy aXZpZGFk SmFjb2I= IGxlZ2lvbg== KHBvbA== CWZsYXNo b29rZWVwZXI= LmNsaXBzVG9Cb3VuZHM= IGdyYXBoaXRl J2h0dHA= X1RSSUFOR0xF IERyb3BJbmRleA== LnNtdHA= IFVOU0lHTkVE X1BJQ1RVUkU= X09SSUVOVEFUSU9O IE9QUA== Iyc= w6FmaWNv Lmhpc3RvZ3JhbQ== IEJlbm55 Pldl IHJlcG9zdA== IGZpYW5jZQ== IEJvdW50eQ== c3RyZXNz RGF0ZXRpbWU= Okg= IFNwaGlueA== Tm9ybWFsbHk= YXBpeGVs IHVzZXJBZ2VudA== IE1vcmk= L2xhYg== Lk1PREVM IEVtb3Rpb25hbA== U2NhbGVk ZGV2aWNlSWQ= IOqzhA== Y2Vhc2Vk PElN Y2VlZGVk IGxpYnJhcmlhbg== KW51bGw= IG1pY3Jvbg== IEZvdQ== dWxlbg== L2xpdmU= cnNjaGVpbg== ZmVh IGhhYmls IE5hdkxpbms= bmVjZXNzYXJ5 LmNvZGVz LW1ha2U= IHBQYXJlbnQ= X3JlbGF0aW9ucw== IHJ1c2hlcw== IHByb3BlbnNpdHk= IFNraW5ueQ== V0VTVA== X2NvcnB1cw== KHJlb3JkZXJlZA== ZmRi IEdldE1lc3NhZ2U= QnJ1bg== LnZz IHDFgg== IGNydW5jaHk= Qm9vbQ== UEo= SmFrZQ== 57qm JGNsaWVudA== IH1dKQo= IGNvbnZlcnNl IEdSQVQ= IENSUw== Lkxvdw== KHZhbGlkYXRl X0NMSUNLRUQ= LmJsdWV0b290aA== CXh0eXBl IGNsb3NlTW9kYWw= X2ludGVudA== IHByb2dub3Npcw== c2F2 Q3Rs IGNob29zZXI= IFN1ZG9rdQ== PVVzZXI= LmNsZg== CWV4cGxpY2l0 IHBvdGVudGlhbHM= IEdlb3JnZXM= IGVsaWM= IHRzbGli IFJhZ25hcg== X3JlcHJlc2VudGF0aW9u LWxlZ2dlZA== aGFtc3Rlcg== IEZpcmVzdG9yZQ== Y29udmVydFZpZXc= Q29tYmluZWQ= INC00LXQuw== IGVzcGVjdA== IOOCkg== IFN0YW1pbmE= bG9va3M= RU5BUklP L2ZpeHR1cmVz LnNtcw== IHNlbWljbGFzcw== IHNlbWljbGFzc2ljYWw= LlBlZWs= XSQ= X0RTUA== X0xWTA== VklSVFVBTA== IENhcGl0YWxz IFNDVA== LldoaWxl IFN1YnN0YW5jZQ== LWRvbmU= IGVuc2xhdmVk Y2xhc3NpZnk= ZW50YW55bA== IFZlZ2V0YWJsZQ== X0RFUEVORA== RGFuaQ== IHF1aWVyZXM= IGFiYmlhbW8= IExpYmVy YWZj 6YCf cHJlZGljdGVk LlBORw== IFdoaXA= Ly89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ== IOKJoA== IOWM REVN Q0NB L2Nsb3Nl IC8vLzwv IG1lc21h IEJlaXJ1dA== IEluaXRpYWxpemluZw== 4buZdA== TU9OVEg= IO2bhA== UGFya2luZw== Q29tZm9ydA== IEVuZ2luZXM= d2VycA== QFJlcXVlc3RQYXJhbQ== LUtleQ== IGJhY2tsaWdodA== cGFzc2Vz Lm51bWJlck9mTGluZXM= L0xpbnV4 KEhUVFA= IEh0dHBVUkxDb25uZWN0aW9u b3Nvcw== Lnh4 IGZpbG1wamVz ID09PT4= b3B0aW1pemU= Q2Fub24= IC4uLiIK ICciJzsK IGPDqWxpYg== IHByaW5jaXBhbG1lbnRl IFByb3BlcnR5VmFsdWU= T1VOQ0U= IGV4Y3Vyc2lvbg== IEFjY2Vzc1Rva2Vu cmVxdWV0ZQ== Vm9sdGFnZQ== ZXhwbGFpbg== fSkoKTsKCg== VVJMT1BU IGZ1bmdhbA== R3JlZWs= LWJsaW5k IGZldWRhbA== IFNvbmF0YQ== IERpYWdub3Npcw== JHhtbA== ZWRpdGFyeQ== IHN0aW11bGF0ZXM= UG9udA== Lkhhc1ByZWZpeA== Ym9hdHM= IFNjYXR0ZXI= IEdFTkVSSUM= IGZpc2hlcw== PWxlbmd0aA== IG1lbGhvcmVz c3BlbnQ= w7Rt IEluZ3JhbQ== Pi4KCg== cGFyaXR5 LlZpZGVvQ2FwdHVyZQ== IFR1YmVz IGNvbWVkaWM= IHByb2Nlc3NEYXRh QURC KG5ld1N0YXRl 5YGc IFdlYnNlaXRl X09mZg== LGJvZHk= IHN1YmNvbnRyYWN0 IGNodXRl IGNhcnRlc2lhbg== dGhyZXNo LkNhcnQ= IG1ldG9k Y3VzdG9taXpl THRk CXNvdW5k V2ViU2VydmljZQ== IEhpbmRlcmVk W3Jlcw== KFRpbGU= Y2FwYWJpbGl0aWVz X09WRVJGTE9X INGB0YHRi9C7 IENvY2g= IHRlc3ROYW1l V09SRFM= XE1vZHVsZXM= P3VybA== X2NvbnRpbnVvdXM= IFFJY29u IHN0YXJlcw== IGVqZWN0ZWQ= IEludmFzaW9u ZmluYWxpemU= IGdldg== PGc= IEVkaXRvckdVSQ== QmVybGlu LmxpbmVFZGl0 LXJlZ2V4cA== IHNsZWQ= IEVBQ0g= dWNv IHNlZWRpbmc= IGxvY2FsaXpl ZXR1 X2FsbW9zdA== cGFuc2U= IFNlbnNvcnM= X1NJ KnNw IFByb3BlcnR5SW5mbw== IGFwcm94aW0= IGRhdGFHcmlkVmlld1RleHRCb3hDb2x1bW4= 16A= IGRpZmVyZW5jaWE= TE9PSw== IG9tbmlw IFR1cmluZw== IHVuaWRhZGVz 77yfCg== LlJvd0hlYWRlcnM= X0FDVElPTlM= IERhbHk= IGZvcnRpZmllZA== IFdhZ2U= LnNpbXBz KGlzc3Vl IGxlcHQ= T3duZXJJZA== J29yZGVy 5Y+N 56Wo IHJld3JpdGluZw== Lkl0YWxpYw== IEZvcmdvdHRlbg== KElM IE5vU3VjaEVsZW1lbnRFeGNlcHRpb24= ZXdu IHBvcHVsb3Vz IFNoZWQ= IyR7 IEFsbw== RGV2aWNlSW5mbw== KElOVk9LRQ== IHBlbmE= IEJCQg== LmJi IHRvcnM= IGNvbmR1Y2l2ZQ== LXB1cnBsZQ== IHNxdWFyZWx5 Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCg== 0LrRgNGL ZmFzdGE= IGNwdA== IEluZ2Vu IHs/fQ== 0YPQsw== UGVybA== LnNreQ== LWF1dG9tYXRpYw== aW1wbGVtZW50 b3JubWVudA== LklNQUdF LVNwZWVk CUZpZWxk IHBvdW5kZWQ= IExa IGF1dG9Gb2N1cw== IOC5gA== LkNvbXBhbmlvbg== IFZpbQ== dW5jaWE= X3NrYg== IHVubWFycmllZA== IFNvdXI= Z2FhcmQ= TGVvZA== IOCq LkNsb3Vk IHJlaW5mb3JjZXM= J10+ IGZlbGl6 IFVBVg== cmFuY2Vz 5Y2B VG9MaXN0QXN5bmM= LkV4ZWN1dG9y LXRz ICcuJzsK IEtpbmVjdA== 44GE44GG IGJldm9y IEV4dHJhY3Rpb24= X2RyYXdlcg== JHN1Yg== IHVwbGlmdGluZw== LmJ0bkV4aXQ= KCcvLypbQA== UkVESVM= c3RkZXhjZXB0 ZGVv IGdpdmVy X2JpbmRpbmdz VG9EZXZpY2U= Lm1p IEVzdGltYXRlcw== YWxsZWxl Pz8/Cgo= IFN0cmVhbXM= IGFmZmxpY3Q= LnNhcA== IHF1YWxp IEdhdWw= U3BlY2lmaWVz IHpr IHNhbml0YXJ5 IG5ld0luZGV4 c3BlY3M= IGZyYWdtZW50TWFuYWdlcg== IE5lY2Vzc2FyeQ== CVNwcmluZw== PX4= IE9NQVA= Y2FyZWVy KCItIik7Cg== IERhcmxpbmc= aXRhZw== OnBr IFN0ZWxsYXI= IGluZmVydGlsaXR5 bGV4aWJsZQ== VW5hcnk= IDpdLA== Lk5FVw== Z3N1Yg== X1VGdW5jdGlvbg== LnNsaWRlcw== IGRpdmVyc29z X2xvY2Fscw== XFwv IHBjYXA= IE9vaw== LkRhdGFHcmlkVmlld0NvbnRlbnRBbGlnbm1lbnQ= ZXJzb25pYw== IHRyZWJ1aWU= IHNlcXVlbnRpYWxseQ== YWJhcg== IElQQ0M= IGRldm91dA== XEhlbHBlcnM= RVR3ZWV0 IHRyYWJhamFy IFdpbGtpbnNvbg== IGRhw58= SHVtYW5z VGVhY2hlcnM= IERhdGFWaWV3 IFlvZw== IGplZGU= IGFtYmlhbmNl dHJhbmQ= IGVycmF0aWM= IHThu6s= LnJhYmJpdA== IG5ld2JpZQ== IGVudHJhbmNlcw== IG9ydGhvZ29uYWw= IERJU1BBVENI IFNjaHJv X1RVUk4= Omludm9rZQ== IHRhbnRhbA== IFpvbmVz c3RhdGVtZW50cw== TGltaXRz IEfDpA== aWHFgmE= LnByZWRpY2F0ZQ== LkZS IENocmlzdG9waA== LkNvbnM= IEhvcnRvbg== X0N1c3RvbWVy CU1E IGVsa2Fhcg== IE1TRQ== IElzQWN0aXZl XSop XFVuaXQ= IGVv Rm9yT2JqZWN0 ZWxpYWM= LWRldmVsb3BtZW50 IHRlYWw= IHN0aXRjaGVk IE91dGNvbWU= b25jw6k= ZW1iZWRkaW5n IG9uTmV4dA== IO2VtOuLuQ== KGV4aXN0aW5n LmJpZA== CWFzc2VydEZhbHNl e2w= TEVycm9y X2J1bGxldA== KEh0bWw= IGVCb29rcw== cGVyUGFnZQ== L3F1ZXN0aW9u LmZha2U= Lm1i X2RsbA== IGN1bXNob3Q= IE1hZGFnYXNjYXI= SE9MREVS IHBlc3F1aXNh X0RFQ0xT XSxbLQ== IEFsYmFuaWE= LXRvYXN0 IHByb3RhZ29uaXN0cw== IG15b2NhcmQ= IHdhbGtlcnM= ID09PT09PT0= L1BhZ2U= PTw/PQ== IGVucXVhbnRv X1RSVU5D IHNlcHRlbWJyZQ== IGxheW91dFBhcmFtcw== ICcuLi8uLi8uLi8uLi8uLi8= IFRyYWZmb3Jk IHBhbGF2cmE= IHJ1bmRvd24= IGJyaXR0bGU= w6RjaGU= LllFTExPVw== IENlcmVtb255 IG5ld1RleHQ= dmVjcw== IGVzc2Vu IE1ldG9kbw== IEdVSURF IHBvc3Rwb25l IFZTdGFjaw== WyIk IE1pY3Jvc3lzdGVtcw== XFBhZ2U= cG1hdA== X0ZBVUxU X21C U3RhdGVNYWNoaW5l RmFjdWx0eQ== Lnd4 IE1vemFydA== YW5pbWU= IHB5dA== IEJ1a2tpdA== LUlORlJJTkdFTUVOVA== IHNlYXJjaGVy LWJhc2tldA== IG9tYXM= IFR1bmlz IFBsYXR0 IHsNCg0KDQo= eWFo dG9sdWE= SW50cm9kdWNlZA== c3VwcGx5 IG1pc29neW4= IFdhaXN0 IEVI LW9wZXJhdG9y IGRhcmtlbg== IENvc21pYw== IGdsYWNpZXJz IA0NCg== XVtf Q29tcGFueUlk IFJlY29uc3RydWN0aW9u aXp6bGllcw== IGzDrWRlcg== IGNvbGxlZ2lhdGU= IFBldHR5 T1VSTkFM ZGVjb3JhdG9ycw== cmFtcw== KCgK IEFzdHJvbm9teQ== IHJpbw== IEN5cmls anVhbg== IHJlaW5j IFBpc3RvbnM= IEJ1c3k= cHRyb24= IHBvbW9j CVJUQ0s= QnV5aW5n Ly8qKgo= IFdyYXBwZWQ= IE1lZXI= IGltYXA= IGJlc3RpbW0= IEFnaWxpdHk= LlRvVGFibGU= c3RpbmVuY2U= XSkqKg== IEF1dG9tYXRlZA== ZHNw IEdhcmxpYw== aW9kZQ== ZXhlbHM= aW50cm9z IGJlc3Rvd2Vk KHZpc2libGU= IGh5ZHJhdGVk bm94aW91cw== IEF1dGhlbnRpY2F0aW9uU2VydmljZQ== IHNob3dNb2RhbA== IGNvbXBvc2Vycw== R0VORVJBTA== Q1RT IFNocg== Y3JlYXQ= IGNsb3NldHM= IGdyb3VuZGluZw== IENPTU1FTlRT ICsj IGdyb3VuZHdvcms= KGluZGV4UGF0aA== Z3JhdGlz dXBwaWVz IGt2bQ== IGN1YWxlcw== LkRlZXBFcXVhbA== IGFsbG95cw== LWJ1ZGdldA== KF9fXw== IGNvbmVjdGFy LXJhZA== IGl0Y2g= bGFtcA== LmdycA== LWFkZG9ucw== IHNlYWJvcm4= IG5lZ2xpZ2VudA== X0RldGFpbA== IHNlcmVuZQ== IGJhcnJhY2tz IGJx IFNlY3Q= KGRhdG9z IHRoZW1hdGlj IHBvbGx1dGVk CWFuaW1hdGlvbg== SHVnaA== RXhlY3V0YWJsZQ== KCcvJylb IGFwb3B0b3Npcw== IGFiYnJldmlhdGVk Zm9vbg== UmFua2Vk CWhpdA== CQkgICAgICAgICAgICAgICAgICAgICAgIA== Q29udGludW91cw== IG1vdmVUbw== REJPYmplY3Q= IGNvbmNlaXZhYmxl IEd3ZW4= IMOhbGw= X18oKQ== IExhbmE= IGVpbnplbA== IHJlY291bnRz eXN0ZW1z b3dhbnk= KTo/Pgo= IEFrcm9u b2xpbmk= Q29ycA== YXBocmFn ICInLg== IGNvbnZlbmVk IC4uLi4KCg== IGNhbGxlZQ== IENsb3Zlcg== LmRlc2NyaXB0b3I= Lkl0ZW1TdGFjaw== IHBlcnZlcnNl X0NF PUAi LS0tDQo= IGJldg== c3VtYQ== YWNjdW11bGF0b3I= IGxpemFyZA== INC+0Yc= Z2V0RGVzY3JpcHRpb24= IFNhcmFz Lm5leHRTaWJsaW5n IGVsYXN0aWNpdHk= IGNoYWM= bW92ZWQ= X1RvcA== dHJlcg== KGRvd24= ZWxlbXM= b2JpbGk= LnBvc3RNZXNzYWdl ICjiiA== Q3N2 IFlvc2VtaXRl c3dlZXQ= TUFUUklY aWdyYXRlZA== IGZvcmdpbmc= IFBhZ2VTaXpl dHJhbnNmb3Jtcw== PVlFUw== IGRpc2Nsb3Npbmc= IFBlZGlhdHJpYw== IERlYWRseQ== UmVzb3VyY2VJZA== LWJpbmFyeQ== IFJvd2U= IENhaXI= X2V4dHJhY3Rpb24= RGVjcmU= IE9ic3Q= cGxy IFBoeXNpb2xvZ3k= bXZj aHRp LlRl IGV4dHJhdmFnYW50 IEFudGli w7NzdA== b3V0ZGly IGNhcm5l Vmlld1BhZ2Vy IGltcGxhbnRlZA== U2VhcmNoUGFyYW1z w7xyZ2Vy Y29uZGU= YWNlbnRl X0NVREE= JHZhbA== IldoaWxl IHRlbXBMaXN0 IHN5bmFnb2d1ZQ== Y21j INGA0LDQsdC+0YLRiw== IHNlem5hbQ== IHNlc3N1YWxp IGNhYmV6YQ== ZXTDoA== IGZhw6c= Z2Vo Y2VkZQ== IlNvbWU= Om9u LWZvcm1lZA== YnluYW1l IOuwmO2ZmA== IG5hw68= IEFVRw== IGVhc2Vk XSl7 KHB0aHJlYWQ= IGplZGVt KGZpeHR1cmU= IFBhcmw= XX0pOwo= IGV4cHVsc2lvbg== IEluZXRBZGRyZXNz IE1MUA== LicpOw== IG9ybw== IFNldmlsbGE= IGZvcm11bGFpcmU= LXRlcnJvcmlzbQ== L1dlYkFQSQ== KmFuZ3N0cm9t Y3Jhd2w= X2xvYW4= X0RJR0VTVA== IEtub3h2aWxsZQ== LmdjYQ== IERpeQ== bnRhZw== YWJsZVZpZXdDb250cm9sbGVy LkZlZWQ= LXNoYXJlZA== IGNvY2Np X2ludml0ZQ== IEJ1Y2tpbmdoYW0= IEdsdXRlbg== IGVuZGVtaWM= UmFpc2Vk IHF1ZXJ5SW50ZXJmYWNl IG1hcnRpbg== QuG6oW4= IGhhcmU= IGRlaW4= cmFyaWFu bXlmaWxl IGFuZ3Vpc2g= VGV4dG8= IEJVRkY= KGxu bWFycw== X3N1YnRpdGxl X2dpZnQ= IGJvbGRseQ== IFNpbmd1bGFy KExvZ0xldmVs PEFydGljbGU= L3N0YXRz INC/0L7Qsg== IGl0ZW5z IGRlbm9taW5hdGlvbg== LkRhdGFHcmlkVmlld1RyaVN0YXRl X0xS IER1Y2hlc3M= CUJsb2Nr dHJhY2Vy LUNO XEFwcERhdGE= Lmxpc3Rz KFJvdXRl IEdPT0RNQU4= ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCg== IHRpbmhh IGV2ZXJsYXN0aW5n YURhdGE= KGNvbXBhcmU= IHJwdA== XFBocA== LkZJTEVT IHNwYXJpbmc= U2Nhcg== INin2YTYqg== IEJldGhsZWhlbQ== IGJhY2twYWdl c3BsaWNl ZsO2cg== QGR5bmFtaWM= 4bupYw== 7KY= LnBhZ2luZw== IEJlbG1vbnQ= LkVYUA== IGludGVybGU= IENoZWNrbGlzdA== IFVuaWNvcm4= QkVTVA== Z2V0UGxheWVy LmFyZ3NvcnQ= IHdpdGhTdHJpbmc= IE1vZGVyYXRl fSI+Cg== LnNldEltYWdlQml0bWFw IHRyZW5jaGVz IGdlbmVyYXI= IGZlcm1lbnRlZA== IGRlanRpbmc= Q3RybHM= IGRpc2FncmVlcw== UXVpZXQ= KFNRTEV4Y2VwdGlvbg== IFRlbnNvckZsb3c= T05B UG9ydGxhbmQ= LlB0cg== bGx4 YXN0b24= Q2x1c3RlcnM= IFVzdWFyaW9z IGtoaQ== IGdpYQ== IERvbHBoaW4= xZFz IGx1ZGVy IGRpc3Bvc2l0aXZv IFZ5 b21wc29u IO2VoA== IGtjYWw= IENhbGNpdW0= U2VjdGlvbnNJbg== IENhc2M= IGdyYXR1aXRp b3NvbWFs IHVuZGVyY3V0 IENhaA== OnBhcmFtcw== IHJldHVyblVybA== IEVyZQ== w6lyYw== IGludGw= fS8jew== IG91dHB1dFBhdGg= IGZhbHNlaG9vZA== IFVzZXJSb2xl PEhhc2hNYXA= IENyZWF0ZVVzZXI= IENvd2JveQ== CVVzZQ== XSgK IFNob3BpZnk= Vmlld1N0YXRl QWR2YW5jZQ== LXRhbms= IlQ= IEplbnM= PW9wdGlvbnM= KCIuLg== Lm1pbWU= IENSVA== IGjDpHR0ZQ== KHNv LlVOS05PV04= IGRhcsO8YmVy IENPVkVS R2Vt Q3Jv X1JFQ1Y= X2hpZXJhcmNoeQ== Q2hvb3Npbmc= SkVYRUM= IGRvcnNhbA== KyI8 IE5leQ== V29tYW4= QmV6aWVy IHJpZ3M= IG9udHZhbmc= 77yM5YiZ IEdhdXQ= Y21i TmhhcA== IG1vbm9j IGVuZXJnaWE= b2JzZXJ2ZU9u c3Rha2Vz LSot IE5hY2s= fX0iCg== ZXJ2YXM= IEhpbmRlcmVkUm90b3I= QWRqYWNlbnQ= IEludGVybmFjaW9uYWw= CWFyZWE= IPCflA== IHNwYXJrbGU= KCkuXw== LmlkZWE= IHV0cmVjaHQ= IG1hcHBlZEJ5 IENvbG8= CVRS UG9zdGVy IGNvbWJhdGluZw== IFllbGxvd3N0b25l aWVycmV6 YWNjdA== IHPDoWNo Lk5ld3M= IGZpZWxkVmFsdWU= IGNheg== IEZyZWVt CQkKCQo= IHVzdXI= IHNvbGE= IGN1bWJlcnNvbWU= IGNhdGFwdWx0 Ii4v IEV4ZWN1dG9ycw== IEFtZXM= ICc8JT0= ZmlsbG5h LOKAlA== OlNldFRleHQ= LWNhdGVnb3JpZXM= LWFyY2hpdmU= IFBvbGx1dGlvbg== Lk9m 4oCcQXQ= X0NIQVJTRVQ= KENvbHVtbg== 4oCZKQ== IHVubWlzdGFr IGVhcm0= IFBsYXRmb3Jtcw== IE1vbWVudHVt VmVjdG9yaXplcg== cmF3ZXI= KHBhc3Nwb3J0 KHBsYW5l IHJlcHJlc2VudGE= IHB1YmtleQ== IEphaW4= IG1lbm5lcw== IGluc3RhbnRhbmVvdXM= IGV0aGVycw== IG5lc3Rz IFBhdHRvbg== IEhBQ0s= cGFja2luZw== SVNlcnZpY2U= IHJvY2tlcg== IGZpY2E= IEdsYWRpYXRvcg== IFVQQw== IExvd2VsbA== YmVhcmVy IHZpcGVy X2dsb2I= IG1hc2hlZA== IGhhaXJzdHlsZQ== IHVuZGVybWluZXM= cmVzdGF1cmFudHM= IHJlYWN0aW9uYXJ5 IGJpbGxpZw== fSIpOw0K IHZpc3Rhcw== IG9wZW5kaXI= CWxhYmVscw== YWxsaXM= IFdvbGZm IENQQw== IHJhaWx3YXlz IFZhdWdoYW4= IEFza2luZw== Y2Fp IEdu X1BST0Y= LVNlcA== LmN1cnZl TXVsdGlwbHk= 0YDQsNC90LjRhg== IG1lZXR1cA== Z2V0RGI= KEdVSQ== IHJlaW1idXJzZQ== OnJlc3VsdA== VHVtYmxy LkNsb3NlZA== IGNvbmZvcm1z IEhvaw== aWVkYWRl TmV3TGFiZWw= IG5hdkN0cmw= RG9jdG9ycw== IOyViA== IGJvdXRz IGlzYw== Lyc7Cgo= dWhs LlVp LXNhbWE= IENhbm9uaWNhbA== IG1ldGljdWxvdXM= IGdyb3Rlcw== IC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8= ZXRlcw== IGxhbmd1ZQ== IGZDaGFpbg== IFR5cGVmYWNl IEJyaWdoYW0= aWFyZQ== J8OpdGFpdA== IEVGRg== IGRlc3Ryb3llcg== X21hdHJpY2Vz TsO6bWVybw== Y2FsbGFibGU= X3BlcmlvZHM= c3RydWs= bWFq LnJs LmxpZnQ= 2YrZhA== w5A= UmV0VmFs RGVudmVy IFRyaWJ1dGU= a2l5ZQ== emV3 IFNwYXJl IGxldWtlbWlh IHdhaXRyZXNz IHBsdXTDtHQ= QWxpYXNlcw== IExvY2F0ZQ== 5rY= SWRlbnRpZmljYXRpb24= LnRlbA== LWRheXM= dGVycml0 aW1idXM= IEJ1dHRlcktuaWZl 64K0 cnVwdGN5 IEdyYWRlcw== IHVuZGVyc2lkZQ== IGhhcmRzaGlwcw== dW5laQ== LWNvbnRhaW5lZA== IFsnLg== T2Jzb2xldGU= LlJldHJvZml0 IHVyYW51cw== X3JnYmE= IHJhcGVz IEthcmU= W+KApl0= IEZpbmNo LmJ1bmlmdUZsYXRCdXR0b24= cXVpc2Fy IE51cnNlcw== ZWdhZGU= IGhu RXhjbHVkZQ== IHN0b2NoYXN0aWM= IHNvdHRv IFBlbmFsdHk= IHNvbnN0 IHJvc2E= X0ZpbmQ= IEludmFsaWRhdGU= TGlzdEl0ZW1JY29u JywNDQo= X3BkdQ== IE1lYWxz YWrEhWM= IE9vcHM= IE5vdGljZXM= IGRlcml2YXRpb24= W10NCg== 6Lqr eXN0ZXJ5 X2ZpdmU= RWFybg== PWV2ZW50 IG9ncg== LVJFQUw= IExpcHM= c2VsZWN0b3Jz YWRpZXI= IHNldEJhY2tncm91bmRJbWFnZQ== KHRoaW5n IHNvZnRiYWxs XHhhYQ== KGlkZW50 IEp1cnk= IFZveWFnZQ== IFRBcnJheQ== KFBhaW50 V2FybQ== RVhURVJOQUw= YXN1 ICghKCg= LkZFVENI IHNraXJt T1JFRA== Y2FuY2VsbGVk aXR0ZWw= IHNlZWR1 bGljaGVz b2hv LHJldGFpbg== KFdlYkRyaXZlcg== aXB0YWJsZXM= RVJJQ0E= IGNsZWFubGluZXNz ZWxsb3dvcmxk IGNvaGVzaW9u Z2lzdA== XS4n ZXJnaW5n IGlzcA== Lm9mZnNldFRvcA== KGZhY3Rvcg== dW5pdmVyc2Fs IFBsYXliYWNr IEJ5dGVTdHJpbmc= IGRhbW5pbmc= IFNTUg== YWN1cw== IFN0YXRlbg== IOWVhuWTgQ== IFBlZQ== IFNhbXBsaW5n YXRvcmlh c3RhcnRJbmRleA== 5ZCr IOy0iOq4sA== IE9saXZlaXJh IEZsYWtl Ym9vbQ== X01TSw== IEZhY2luZw== b3JnaGluaQ== Zm9vZHM= VHJlZVdpZGdldEl0ZW0= IEhBTEY= IiIiKQo= IENIQVBURVI= IEV2ZWx5bg== Pis= IEhvcm5ldHM= d29rZQ== IC9b YXRob2xpYw== LnNlZ21lbnRz Lm5hdmlnYXRlQnlVcmw= IE1hbnVz IHBlcHRpZGVz IGZsZWV0aW5n IEFUVg== IFNoaWI= SW50QXJyYXk= IG1veg== cHJvYmxlbXM= b2duZQ== Lk90aGVy QWRtaW5pc3RyYXRpb24= JSUqLw== Il09PQ== IEFuZHJlcw== QWRh aGludHM= XCIiOwo= KHBuZw== IOqwgOuKpQ== 44OK cmVqZWN0ZWQ= IG1vdmVycw== 546H IHBhcmVudGhlc2lz KGFzc2lnbnM= RWxpdGU= UmVtaW5kZXI= IHN1ZmZlcmVycw== IFJlc291cmNlQnVuZGxl dGhhZw== PicNCg== YW50aW5v UGVyaXBo IFNoYXJk Q2hhcnREYXRh KGpq IG9zdGF0 aHVnZQ== LWF1dGhvcmVk LmNp IHB5bXlzcWw= IGxpbmVycw== IEFUUw== Pkxhc3Q= KSIpCgo= IGdldHBpZA== R2V0U2l6ZQ== IGV4dG9ydGlvbg== W2Zsb2F0 IEVJTkE= L0Jhc2U= LnNldE9uQWN0aW9u 0L7Qu9GP IEdsYWNpZXI= X2F6 IHRyYW5zcG9ydGU= IFNtcw== dGh1bWJz IHRyZWFzdXJlcg== IG16 aXN0aWs= UkVESUVOVA== IGlzaQ== X3N0dWZm UE9TSVRPUlk= c3RhcnRkYXRl IFppbmM= 5rG9 IGthaw== IGVyZmFocmVu X0NPTUJP IHVjd29yZHM= LlBheQ== IGtpbmdkb21z IGV4Y2VsZW50ZQ== aWduaXRl X3ZhcmlhdGlvbg== IG5hdmVnYWRvcg== 5LiT dmlld0NvbnRyb2xsZXI= cmlyZQ== SG9uZXN0bHk= Q2FzY2FkZQ== ZXRyYWlu QXJnZW50aW5h Y3E= IE1hcmlhbg== L2Fy IGludGVyZXNzZQ== dXJhaGFu KFBD IGZyaXZvbA== IFRydXN0ZWQ= KElDb25maWd1cmF0aW9u IFJpaGFubmE= ZW5kb3ph ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHByb2NsYW1hdGlvbg== IHByZWRvbWluYW50 IGNvbnN0cw== LW5lY2s= V29sZg== LmNoZWNrYm94 IHN0YW56YQ== IGVudGVuZGVy Ly8o SGFuZHM= IGJpbGxlZGVy IFRvc2hpYmE= YWJiaXg= RU5DSUVT IGppbQ== UFVS Lmxlc3Nvbg== IGJlcnRo bGFyxLFu Qmxv CWV4dA== ZWVs IGRlbWFzaQ== IGNvbG9uaXphdGlvbg== L2Rpc2M= 77yP Q2VydGFpbmx5 566h55CG5ZGY IGpvZ2Fkb3I= dcOp Q29sdW1uc01vZGU= IEpW IEluc3RpdHV0 X3NwZWN0cnVt LmRlbnNl IFNob3J0Y3V0 IHNlYnVhaA== IGZsYXNoeQ== UmVnYXJkcw== IHNoYXJwZXI= Y2FuY2VsbGF0aW9uVG9rZW4= X2RldGFsbGU= IFNjYXJsZXR0 INC80LDRgg== IG5lZ29jaW8= 4LiW IEpX d2ViZHJpdmVy LndhbGw= IHhhbWFyaW4= b3BhcXVl LkFkZFBhcmFtZXRlcg== KENvbnRyb2xsZXI= LWFib3J0aW9u X0ZVTkNUSU9OUw== Q3VzdG9tZXJJZA== IHZlbmly IEJ1c3Rlcg== X3ByZWRpY3RlZA== L3J1bGVz LU1ldGhvZHM= IGdkemll Il0nKTsK IFB4 Q09OUw== LlNsaWNl IHJldmFtcGVk IFRhYmxlVmlldw== IGRpY2tz IO2YuOy2nA== IEF1eGlsaWFyeQ== T3BlcmE= L3Jj IHVudGhpbmthYmxl IGRlZHVjdGVk bHo= IExhZ2U= IFJvd2xpbmc= cHJvdmVk T2ZmZXJz LHNldA== UkdCTw== IEZV IENlbnRPUw== b3pv IFRyb2phbg== IG1hw7FhbmE= IC8vPQ== Kio6 IHtcCg== IEJvd2Vu S25vd2luZw== IOW6 PS09LT0tPS09LT0tPS09LQ== IGViZW5mYWxscw== XT17Cg== Qk1J KCk7KQ== KHBlcm1pc3Npb24= QW5kZXJzb24= IGRlZ3JhZGU= U29hcA== dcWf IFB1cHB5 IEV0aGlvcGlhbg== IFRFU1RJTkc= ZW5zZXg= IGRyZXNzZXI= IENob3Jl VW5oYW5kbGVk QXNzb2NpYXRl LmFkZGl0aW9uYWw= IGRpZmbDqXJlbnRlcw== aXNxdWU= IG5lY2Vzc8Ohcmlv IGdlbmVyaWNz KHBm IFxg IE5lYXJieQ== YXBvcmF0aW9u IFRoZW1lRGF0YQ== V2lGaQ== LlJlYWw= YWN5ag== TGl2 IHBzeWNob2xvZ2ljYWxseQ== bWV0aG9kUG9pbnRlclR5cGU= IE5pa29s IERlZGljYXRlZA== X1BPUlRT IEphZQ== TlNBdHRyaWJ1dGVkU3RyaW5n IGFtYmFzc2Fkb3Jz IEhhbmRsZXJz IEFuYXQ= IHZvY2FsaXN0 IHJhcg== IGRldnVlbHZl Lmdz IHhjYg== IHN1Ym1vZHVsZQ== IEFTU0lHTg== dXJlZW4= IGNsYXNlcw== ZW1vdGg= X0NOVEw= X2p3dA== IOuniA== IG91dHBvc3Q= IEluYm94 CWZsZXg= IEdyb2Nlcnk= SUxJTkU= Lm1vYg== IENvbnN0cg== XT1d KHdhbGxldA== IHNlZGU= ZmFs IGltcGFzcw== PXtbJw== IHVuZm9yZQ== ZnVzZQ== X0xlYW4= IGF2YWxhbmNoZQ== PXJhbmQ= IGFkdWx0ZXJ5 IEdlZQ== CUlucHV0U3RyZWFt IGNhYmVs X01PVU5U IG5vdGljaWFz IFJhdW0= IGJ5dGVhcnJheQ== IG9uSGlkZQ== ICkuCg== JGluc3RhbmNl IGRpZFNlbGVjdFJvd0F0SW5kZXhQYXRo YWNhbQ== LWNvbGxlY3Rpb24= IHVwaGU= UG90ZW50aWFs IFNEUw== X2FwcHJvdmFs RGFtbg== OmNvbnZlcnQ= IE1vZGlmaWNhdGlvbnM= IOyYiA== IHVuYWI= IHNjcm9sbGVk KyIpOwo= IGdhdWNoZQ== IEhPTA== YW50YW5hbW8= IGNvbHVtbkhlYWRlcg== CVpFUEhJUg== emFj IG91dGluZ3M= IGFwcGxhdWRlZA== aG9yaWE= bW9keA== IG1pbGxlbm5pYQ== Jm0= Lkpzb25JZ25vcmU= IHBpb25lZXJlZA== IENhdnM= CWpz ZGVwYXJ0dXJlZGF5 X2ti LlBhdGllbnQ= IHBldGFscw== cG9ydHJhaXQ= In19Cg== SG9tZUFzVXBFbmFibGVk LnByZXR0eQ== LGNsanM= IG1lZGlvcw== aGFzaGVk ZW1vZGVs IE1vam8= LmZyb21SR0JP LXBl IGludGltYXRlbHk= IGVsZ2c= W107DQo= L09ic2VydmFibGU= IG9iZWRpZW50 IEphbWFs UmVxdWlyZWRNaXhpbg== IExpc3RWaWV3SXRlbQ== CXBsYWNlaG9sZGVy X3RyYW5zYWtzaQ== PFNlcnZpY2U= IGVuc3VlZA== IFJpY2Fu U2FnYQ== QVVESU8= IGpt LXNhbGVz LW11bHRp JSI7Cg== IGNsYXNzaWZpY2F0aW9ucw== IHTDo28= Q29hbA== OycpOwo= IGRlbGlnaHRz X2h6 X2JvbGQ= REVQRU5E INCh0L7Qt9C0 YXRlZQ== X3N1Ym5ldA== IFRvd25zZW5k IENhc3RpbGxv IHBydA== JC8p IGZpbGli KCcvJylbLQ== IHVwaG9sc3Rlcnk= IGNvbXBvbmVudGU= IFhG LlJldmVyc2U= X3R1bm5lbA== SW1tZWRpYXRlbHk= LW1vdmU= IGFsaXN0 V1ND c3RydWN0dXJhbA== aXN0b3JpY2Fs VGFuZ2dhbA== IENPVVJU IG9ic2N1cmVk IGxhbmRzbGlkZQ== IGJlZHNpZGU= IGJhcmFuZw== LWVsZWN0ZWQ= IGNlcmFtaWNz LS0qLwo= IFdhbm5h RHlu IHZlcnNjaGllZGVuZQ== IGluZHVjaW5n IGZsdXRl LkFwcGVuZFRleHQ= IFp1Yg== IFB1bGl0emVy OmJvdGg= Lm1heExlbmd0aA== LlByb3BlcnR5VHlwZQ== YXd5 aXRlbU5hbWU= IE5hcnJhdGl2ZQ== cmV2b2x1dGlvbg== IGhhbHRlbg== IEVycm9yUmVzcG9uc2U= Z2F0aGVy L3V0aWxpdHk= Oicn IEtlZQ== IE9seW1waWE= Q2xpbmljYWw= OmdyZWVu IFBsZXg= IEtlbnNpbmd0b24= IFBob25ldGlj IGRpc3RyaWJ1dGVz X2V4ZW1wdA== V2F0Y2hpbmc= Lk1pc2M= IGRvbWFpbmU= OiIu 44OV44I= X01PRFVMRVM= IGhhYmxhcg== IExhb3M= LnNldFRleHRTaXpl LnBhdXNlZA== X1RX IG92ZXJ3aGVsbQ== IGhlbWF0 THVja2lseQ== IFNFTlQ= IEludmVzdGlnYXRvcnM= Pih7 KGZvdXQ= IEFVWA== LnJhd1F1ZXJ5 LXN0cm9uZw== IHJlc2VtYmxlZA== IFNoYWZ0 IFhJSUk= c3VnZ2VzdA== IHNpbmdhcG9yZQ== X2FiaWxpdHk= JGs= CWlOZEV4 XEltYWdl Q2FkYXN0cm8= LnBpdm90 IG1hbnBvd2Vy X2F0dHM= LnNldEZpbGw= ZXdvcmxk Y29uc3Rz R2V0V2lkdGg= IGdyYXR1aXRh IFBldHI= LWFuc3dlcg== IEhlbWlzcGhlcmU= IENhag== IFRyYWRlcw== xIdp IEZyZWRkeQ== T25DaGFuZ2U= IHBvcm5vZ3JhZmlh IFNVTU1BUlk= X21lYXM= IERSSVZF IENyZWU= X21hbGU= IHN1aw== IG1hbmV1dmVycw== c2V0VmlzaWJpbGl0eQ== YWxsaQ== IGRpc2NyZXRpb25hcnk= cmVnYXRpb24= WVNUSUNL OmhyZWY= IHRhcmFm IGNodQ== IEBb RW5vdWdo LlRyYW5zZmVy SWZOZWVkZWQ= OildKQ== CSAgICAgICAgICAgICAg W2F4aXM= VHJhbnNsYXRpb25z LnNlcnZlcnM= IEtFRVA= JywpCg== c3BvbnNvcg== YXJjaGl2ZXM= LlVsdHJhV2lu IEhvbm91cg== J10pKTs= IGluZWxpZ2libGU= IEFudHdvcnRlbg== IEFwcGxpY2F0aW9uRXhjZXB0aW9u IGNhdGVnb3JpZQ== IFdFSUdIVA== IEJ1bmR5 IFBJWEVM IGR1a2U= VG93ZXI= U2NvdGxhbmQ= IHJlZmVyZWVz IEFzc2VtYmx5VHJhZGVtYXJr CXN0YXJ0QWN0aXZpdHk= Lk9uZVRvT25l IEF1c3dhaGw= IHN0cmVuZ3RoZW5z LlF1aXQ= IFVSTFJlcXVlc3Q= ZWVj IHJlZ2lzdHJhemlvbmU= IGhvc2Vz QWN0dWFsaXphcg== L2FycmF5 IGNvbnN0cnVjdGlvbnM= Y2Nk IEZpbGVOb3RGb3VuZEVycm9y VGjDqm0= KHJlc3VsdGFkbw== IFNFUklFUw== U3BlYWs= X0FIQg== QmxvY2tlZA== LWZvbnRhd2Vzb21l Ol0p b2JibGU= KGxpbmtz IENhdGFsb25pYQ== R2VW LkRhdGVGb3JtYXQ= IGZsZWE= LmVm IHNvbGljaXR1ZA== IERZ Y29kZWdlbg== eXRoZQ== IGVwb2xs X1RE IGFmZmlybWF0aW9u X2Zh SVNUQQ== IEVhdG9u Y3JlYXRlUXVlcnk= IGxvZ2lzdGljYWw= IFJheWNhc3RIaXQ= IGNhdWxpZmxvd2Vy IHVsY2Vy LkFscGhh aW5rZQ== Wy4u RVhBTVBMRQ== LXdhZ2U= IHN0YXRp ZWN0aXZl LmdldE1pbg== IFNVQkpFQ1Q= IEF1ZGlvTWFuYWdlcg== enphcmVsbGE= IFNlbGVjdExpc3RJdGVt ICQNCg== IG9oaW8= IFRhaG9l IGtXaA== cXVlcnlTdHJpbmc= IGRlcGFydGFtZW50bw== PWFkbWlu IHdvcmtzdGF0aW9u KSsrOwo= SGVhZGVySW5TZWN0aW9u IFRyaXVtcGg= Q2hhcmxvdHRl IFNNQQ== Q8OzbW8= IHZlcm0= IHRoZWFubw== Ymdjb2xvcg== XCIiLAo= IFJlbWluZGVy QmlsbHk= b3JhbFR5cGU= Z2ViZXI= KGNsb25l IEt1dA== Lz4u QXBvbGxv IHNobA== Wkg= VGh1bmRlcg== IGdpZnM= X2tlbGFz IFJvdGhz IH0o IEJyb2FkY29t IERlcHRocw== CUlOTkVS cGFyY2Vs IGVqZXJjaWNpbw== IGluZGVwZW5kZW50cw== aWxsb3c= ZXhlY3V0YWJsZQ== RXZlbnRv IHpvc3Q= IEhNQUM= W0RsbEltcG9ydA== YWxsZXM= X2Rlcml2YXRpdmU= QXBpS2V5 IHN0ZXBwZXI= PXBsdA== Z2V0SW5kZXg= IHZhbGV1cnM= UG9saXRpY3M= IElEWA== IFVzYQ== IExUQw== Lm1pbkxlbmd0aA== c3Rybw== X05D IHN0YWduYW50 IG1vbnRhZ2U= IGJsb3VzZQ== ZWxpZ2U= IHR1cnF1b2lzZQ== IFN1cGVybg== 5q2z dmFyYQ== TmV3SXRlbQ== X0VYVEVOREVE IHdvb2R3b3JraW5n IEVwaXNjb3BhbA== LnBhaXI= LlVzZXJJbmZv IGRpcmVudA== L3RjcA== IGZyYXVnaHQ= U2xhdmU= LmdldExhdGl0dWRl IFRvb2xib3g= IGVhcm5lcnM= IEhPVVI= 0LDQu9Cw cG9zYWJsZXM= Y29uZGl0aW9uYWxseQ== X3h4 IGxhbsOn KHJw Q2hh IGluY2Fybg== LkRhbw== Li8o 2KfZgQ== VGQ= Q0VG L3JhbmQ= LlZpcnR1YWw= IGRiSGVscGVy YW1pbmVz IGx6 IHN0b3M= IEF0a2lucw== X0RE aXRvcmlv IG1pbmltaXNl aGlwc3Rlcg== KHsuLi4= X1NSVg== W2ZyYW1l IFJva3U= R1JQ IGJhcmJlcg== LkZlY2hh IOuwnA== IGdyYW51bGFyaXR5 IFNheWluZw== X2xpa2VsaWhvb2Q= LmJhckRvY2tDb250cm9s IGZyb250bGluZQ== IFdoYWxl IHNtZWxsaW5n IENvbnRyaWJ1dGlvbnM= aXZhbnQ= IGNyaXBwbGluZw== cHJlbG9hZA== IEhlcnJlcmE= X1dBVENI LWV0 OmV4cHI= aW52ZXN0bWVudA== ZWRlcmF0aW9u X21nbXQ= IGhvb3Bz bW9ua2V5 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK aW50ZXJzZWN0 IGNyaW1zb24= IHN1b2k= IFtdOgo= WE9iamVjdA== U0ZNTA== RVFVQUw= KCd+ Y2VudHJvaWQ= CXJlc3RvcmU= IHByZW5hdGFs IE1pc3RyZXNz IHF4 dHBz IHJlc3Bhd24= IFtdKSwK IGtvbnRyb2w= 44GC44KK44GM44Go44GG44GU44GW TW9kdWxlTmFtZQ== IG5ld1BhdGg= IFBhZ2luZw== IHJpbnM= X21ha2Vy XGJyaWVm IGJpc2hlcg== CVJlYWQ= IGppaGFkaXN0 LnBlcnNpc3RlbnQ= IFJvYm90cw== L2dycGM= IEpvdQ== w6RyZW4= 77yM5Zyo LXB0 IHpkYXJtYQ== X05N IENvbm5lY3Rpdml0eQ== KGJj IEZsb3JpYW4= IFNvY2lvbG9neQ== X3dv QW5kU2VydmU= XygpOwo= IEZMVA== X0RFUg== IENvbm5pZQ== IEJyb2FkY2FzdFJlY2VpdmVy eyg= IGNvbW1lbnRlcg== IGRlbW9jcmF0 IGFtcGxpZnk= LS0tLS0tLS0tLQ0K IEhNUw== IHRyYWlsZWQ= IFNvZGE= LXRlc3RlZA== dWxpc3Q= KW5ldw== X1RocmVhZA== VG9kZA== IGRlYmlhbg== Vms= IHByZXNlbnRh IGNvbWZvcnRz IFdhc2hlcg== IGdhcmc= IEh1Y2thYmVl INGB0LDQvA== ICEi QWRhcHRlck1hbmFnZXI= IEVh IEFzc29jaWF0aW9ucw== CQkJCQkKCQkJCQkK LmdldFdyaXRhYmxlRGF0YWJhc2U= IG51Y2xlaQ== w6lnb3JpZQ== CSAgICAgICAgICAgICAgICAg QkFC IHVwa2VlcA== IFR1cA== LndpdGhPcGFjaXR5 bHlh IGx1eGU= dXBybw== LWVuZw== IHJlbGHDp8Ojbw== IGtleVByZXNzZWQ= IGh5YnJpZHM= bGZ3 T3BlcmF0aW9uQ29udHJhY3Q= IG5hbWVMYWJlbA== IEhvcnQ= X2dydXBv IGJhbmRh SXg= SGVhbHRoeQ== LmdldEVuZA== ZnJhdQ== KFNjZW5l KENvbGxlY3Rpb25z IFNraXBwaW5n dWJv IGbDvG4= Ij4tLT4K IGRyb2l0cw== IGhvbW9zZXh1YWxz IGFiZHVjdGlvbg== CXdpZGdldA== JGhlYWRlcnM= IERBUg== IGZsYQ== dGhyZWF0 IGxvdWlz LkdldFByb3BlcnR5 Ikp1c3Q= KGZyYW1lcw== cnlv cHJvZmVzc2lvbg== fGk= 7ZW07ISc KHN2 IHVucmVjb2duaXplZA== SW9uaWM= RmFzaGlvbg== U2NyZWVuU3RhdGU= IEluY29taW5n Tm90Tmls IHN5bmNpbmc= ZW1pZQ== IHRoZXJtbw== X3Byb2Nz IGluY29uc2lzdGVuY3k= cmVsaWdpb3Vz Lm1q IHBlcnNvbm4= IG1vbWVudG9z b3JhcmlseQ== IOaK X25ldXJvbnM= SWxsdXN0cg== aW1vdG8= aWxpaw== IFdvag== VHJhZGluZw== IGFwcGFyZQ== IGVudHJlcHJpc2Vz YWNoYXQ= IMKs IG5laWdo QlVUVE9ORE9XTg== IE1haGVy YWdoYW4= LWhhc2g= ImY= IGNsaWVudGVsZQ== LmFkZEJ1dHRvbg== CVNQ UWk= IGdyYXRlZA== UE9TSVRF Oj4= IEhvd2VsbA== IENvbXBhcmF0aXZl IElTQw== wq1p T2NlYW4= RGF2aXM= IEZpbG1l V2lucw== IEpJVA== b2NjZXI= IENvcm0= RU5DSE1BUks= cmNoaXZl aWNhw6fDo28= IG1hdGE= IGNoaWxkYmlydGg= IE9wdGlvbmFsbHk= RW5z IHhodHRw IGVsdWNpZA== X09zY0luaXRTdHJ1Y3Q= KSkpOgo= IGludHVpdA== IERvbmF0ZQ== IGNvcnJlbGF0ZXM= PkRlbGV0ZQ== IGVxdWlwZQ== IGJvY2E= IGluZmxhdGFibGU= ZXJhaA== IERhdGVUaW1lS2luZA== IGNhbHZlcw== XExpYg== IGVtbHJ0 IFRyaWxvZ3k= IFBhbmM= IER1aXM= IHBlbMOtY3VsYQ== V0FSRFM= X0RFVEVDVA== LXNlY3Rpb25hbA== ZGhjcA== Rm9yUm93 LWRlc3RydWN0 IFByZXNlbnRlcg== L3NsaWNr LG9u IENpdGFkZWw= bG9nZ2VkaW4= X3N1YnR5cGU= IHNpZ3Vl IGN1cmluZw== IEZpcmV3YWxs IGZsdW9yZXNjZW5jZQ== IEl0YWxpYW5z 0LjRgtGB0Y8= LmdldFN0eWxl SW5TZWNvbmRz amll LVNtaXRo IHhsaW5r IHN1Ym1pc3NpdmU= 0L7QvdGC YXJib25hdGU= IEZhdWw= X2dvYWxz IENvbW1pc3Npb25lcnM= Y2hhcnRJbnN0YW5jZQ== X1BPU1RGSUVMRFM= IG1lZGlhbA== IG1hbm9z IGRlbHQ= c3Zt LkFwaXM= ZXBoeQ== IGFzeW1wdA== IGFwcERlbGVnYXRl IGltcHJvYmFibGU= Y2th c2ltZA== L0Vycm9y LuKAkw== IFBUUw== ZGVlcg== IHNpbmE= bWFnbml0dWRl SURBREU= J119Jw== IG1heW9yZXM= CWNvbW1lbnQ= L2NvbnNvbGU= IkA= dm9sdA== LnNlbGw= IE1hY3k= IG1lbG9k IGltw6FnZW5lcw== X2NoZw== IGlub3V0 aWRlbnRl KScpLAo= ZG5p LmJsb2I= IHR5cG9ncmFwaHk= IGVlcmll X09JRA== cGVzYW4= YWphbg== IGNob3BwaW5n IGJsdWZm YWRm X2Jhc2Vz LkZvcm1hdHRlcg== IFwl IFBhZ2VJbmZv Q2Fycmllcg== IENhbGlicmF0aW9u Y29tbw== LWJvZGllZA== IGZpbmFuY2llcg== IElOQQ== LkVSUg== IGhvb2RpZQ== IFNhbml0eQ== Z3VhcmRlZA== Lm9wZW5kYXlsaWdodA== SVNNQVRDSA== SGlnaGxpZ2h0cw== w7xuaw== YW5pZW0= YW5nZXJlZA== YXNzaWdubWVudHM= IHJlZ2lzdHJhZG8= IFVQUEVS YW1waWxrYW4= YXNoaXJl IE5pa29sYQ== IENGTA== IEhEQw== IHBvaWRz IElQcw== IHByZXZlbnRhdGl2ZQ== aXBzb2lk aWZpeA== LmNhbWVs Lmdh Vm9sdW1lcw== LXN0ZQ== WWFob28= X3NpYmxpbmc= SGlnaGVzdA== b3B0Z3JvdXA= IGt2aW5uYQ== 4oCd44CCCgo= IEFwcGxpYW5jZXM= ICI+PA== JykiKQo= aHR0 IElkZW50aWZpZWQ= IHBlbmNpbHM= IG1lbWJlcklk IGFwcGVuZFN0cmluZw== LmxvYWREYXRh IG1vY2tNdmM= IGp1Yg== IFNsdXQ= IFRhaXBlaQ== c3RhdHQ= UG9saXQ= IHBhcnRhZ2Vy RGlkQ2hhbmdl SW5jcmVhc2Vz KX0u IEJhYmE= X0NMSVA= W3VuaXQ= INC60LvRjtGH IGFsY3VuaQ== IExvbGE= IGNsaW5naW5n QFBvc3RNYXBwaW5n KGNvbmNhdA== IHNzaWQ= IEZhdWM= b2tpdA== IFJlY29yZGVk w6FsZXo= KCQoJzw= LmFzc2VydElzTm90 IGthbGk= Vm9sdA== IHdhcm1seQ== IHNjYXJlcw== Z2V0dGk= ZsO8aHJ0 X2RvZXM= LkVNQUlM aW1hdGlvbnM= IHNwcmluZ2ZveA== IERlY29t YXJjeQ== IGdsaXRjaGVz IE1vZmY= IFZvbGw= LmJldHdlZW4= IGNvb3JkZW4= IFBhcnRpY3VsYXJseQ== R0JQ IHNlbWJsZQ== RWFzdGVybg== X01TQg== XSl7DQo= bW9yZ2Fu IEVWQUw= ZGVyZQ== SE9VU0U= bW9pcmU= aXN0aXF1ZQ== X2xzdG0= LWNvbW1pdA== eXN0ZXJpb3Vz IHR3aW5r LXRodW1ibmFpbHM= ZW7DrQ== OicnLA== IGJsYWNrb3V0 IEZsb29ycw== IHNvZmFz IG91aQ== bGVzaG9vdA== IFJhcQ== LWFicw== IGtyYQ== TWluaW5n c2hhZnQ= LnNldENvbHVtbnM= Q2xheno= UFJFVFRZ LnBsYXlsaXN0 6Zai LVNhaGFyYW4= TUlORw== CWJs 6K6u amY= RE9DS0VS aG9wZWZ1bGx5 KGlnbm9yZQ== IFVzZXJzQ29udHJvbGxlcg== IE1pdGFyYmVpdGVy IExFUw== SGFtaWx0b24= LW1ldGFkYXRh IEtL aWt0aWc= IHdvbGx0ZQ== ZWdyYXRvcg== XWJvb2w= LGN1cnJlbnQ= IHZhbHVlVHlwZQ== IGV4Y2F2YXRpb24= b2xhbmQ= IHZlcnY= L2ZpbGVwYXRo QXV0aFByb3ZpZGVy IHByb2NyYXN0 CVVMT05H X01FTUJFUlM= IHVwbGlmdA== IEF1dG9ub21vdXM= IGFydHdvcmtz IE91dHJlYWNo IHBvcmU= SG9tZXBhZ2U= RGlhbG9nVGl0bGU= IEdlbmVyYXRpbmc= UEFSU0U= IHNlbWFuYXM= IGh1bWFubw== SlNHbG9iYWxTY29wZQ== IHZvbHRl IGJlbGxh KGlzaW5zdGFuY2U= IHBsYw== XENhdGFsb2c= IGVzdGVlbWVk 6Zu3 KHN1ZmZpeA== IHN3ZWVwcw== CU9SREVS IGRvaXZlbnQ= IFN3YXJt IENvbXBpbGVk Z2V0UGFnZQ== QURS LlJpY2hUZXh0Qm94 IE5hbWluZw== YWdnZWQ= IEdBTkc= cmFzaW5n b2RlbGVk IGdhbGE= IEpTTmFtZQ== ZGRm IGlsbHVzdA== IExhbnNpbmc= W3BvcnQ= LWRlYXRo IGRpbmhlaXJv IEVpZ2h0aA== IGJpYW4= c3TDpQ== IHZlcnNpw7Nu IExpbmVhckdyYWRpZW50 IEhhcmRpbmc= Liop ZWN6eQ== JGhlYWRlcg== IHbDpXI= VW5jaGVja2Vk IGtvamU= IFBhbGFkaW4= KCkpKSw= R2l2aW5n KCl9KQo= IGRpcHM= RnJpZW5kbHk= IHBvcnRyYXlz IGhlbGl1bQ== IGluc3VyZ2VuY3k= X2V4cGlyeQ== IHN0cmluZ0J5QXBwZW5kaW5nU3RyaW5n IGFhbnRhbA== c2xvcGU= bWFzdA== LmdldEludGVnZXI= ICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw== X1BJUEVMSU5F IGRlbnNlbHk= IG11dGF0aW5n bWlkaQ== IFNlaXQ= YXluZQ== Tk9XTEVE IERlc21vbmQ= IEZOYW1l IE5haXJvYmk= XENvbnRleHQ= IGNhbGN1bGFy LWRlbg== IGNvdHQ= XSk6DQo= IFJlY29tbWVuZGF0aW9u IFJvbGV4 IHZhbGlkYXRpb25SZXN1bHQ= LnBhdA== IG7DoHk= IFJlc3RDbGllbnQ= IEdQSQ== IEFzaGV2aWxsZQ== IE9TUA== IFBFUk1JU1NJT04= 0JTQsNGC0LA= L25vdGlmaWNhdGlvbg== S25pZ2h0 X1dvcmQ= IEJlbmRlcg== cmFua2luZw== IHBhcnRpZGE= X3Jlc2VydmF0aW9u zIA= IG1OYW1l IGdldGNo IGJvcnI= IGRpbGlnZW50 RGlzY3Vzcw== 5q2j5Zyo YXBlYWtl aW9uZWQ= LU5hemk= LmN1bQ== IEtyb24= PSQoJyM= L3NpbmdsZQ== IGVyb3Rpc2No IFZpYg== IHJhdGlmaWVk IGNvbmNlcnRlZA== IFJFR0FSRA== IGRvYnI= LkRyaXZlck1hbmFnZXI= J3I= UG9ydGFibGU= CXN1aXRl IHJlbGFjaW9uZXM= IERvcA== ZW1wbG9p RE9C IGNydW1icw== IHhscw== X0FwcGxpY2F0aW9u KCc6Jyw= IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo= bXNl IGJlcms= IFJldHVyblZhbHVl IEJlbGx5 IGNhbWFy IFBlZWs= ZWxzaW5n IG5vdGlmaWVz IFRyaXN0YW4= IEdBUg== ZW1tZQ== IEVsZXZhdGVk X0NTVg== KGNoYWxr IHR3ZW50aWVz IFNlYXJjaFJlc3VsdA== PXNlYXJjaA== IE1peGluZw== w710 IHJlY3J1aXRlcg== IElERU9HUkFQSA== IEFnbw== KE9wZXJhdGlvbg== JHZhbHVlcw== IHdvcmxkbHk= IFJvc2VuYmVyZw== IENvbmZpZ3VyZVNlcnZpY2Vz Pio8Lw== S0FOSkk= IGNodWNrbGVk IHN0cmlmZQ== IEJvbWJheQ== IEJBQ0tHUk9VTkQ= ZXRhdA== ZW51bWVyYXRvcg== IHPDu3I= IOOBrg== X3BlZGlkbw== L0Rr IGplYW4= X0NvbHVtbg== IGhlYXRtYXA= LlBlbmRpbmc= IHVuc3VjY2Vzc2Z1bGx5 CWVw IHNpbmZ1bA== IEFudG9ueQ== X0ZPQ1VT VGV4dExhYmVs X3JlYWN0aW9u IElEaXJlY3Q= IGNhcm5pdg== V29ya3NoZWV0 IHN1ZWRl CVJUQ1Q= IHNldGJhY2tz LnVuYmluZA== IHNpw6g= TGlxdWlk X1JFTkRFUkVS TWF0ZQ== IE1pbGxlbm5pYWxz IGVwb3h5 aXp6aW5lc3M= IGJyYXppbA== 0L7RgdGC0Yw= JnZpZXc= L2dwaW8= SmFtaWU= LkdyYXZpdHk= PSIuJF8= IFZBTg== IElEUg== YXBwZWFyYW5jZQ== LlNlbGVuaXVt TGVhcA== LlJlbGF0aXZlTGF5b3V0 U2lnbmFscw== QWNjZWxlcmF0aW9u CUhBTkRMRQ== L09wZW4= IGdldExvZ2dlcg== U3Bp LXdyaXRpbmc= INCy0YvQtw== LXdvcnRoeQ== IHdjcw== IFFUaW1lcg== IFBvbHltZXI= IHZhbnQ= CURlbGV0ZQ== aXR0ZQ== V2hpbHN0 IGFsZ3Vt IHNoaWVsZGluZw== IGttcw== CSAgICAJCQk= TWV0ZW9y IGFnZ3JlZ2F0b3I= IFNpbmQ= SG9zdEV4Y2VwdGlvbg== PScnLAo= IEpTQnJhY2tldEFjY2Vzcw== T05P X0J1aWxk IHN0cmlwcGVy IExK PENvbXBvbmVudA== L3NvdXJjZXM= IGVyZ29ub21pYw== IEFjY3JlZA== dW5jZQ== b25pcw== emVpZ3Q= IFNrYXRl IFJlY3RUcmFuc2Zvcm0= SW5jb21wbGV0ZQ== IGluZ2VuaW91cw== IGNvaXNh IGNpdHlOYW1l aGFiaXQ= X1RW IEFOU1c= Li4uIj4K IHNub3Jr X29wYWNpdHk= IGluaXRXaXRoTmliTmFtZQ== aWFkbw== QUFD IF0pLg== O3o= X3BhcmFncmFwaA== IG5vc2Vz c3RhbmRz aWZy X21F SXJhcQ== LlByZWRpY2F0ZQ== ZW5haXJl XV1dOwo= IHVuaWRhZA== IHJldGlyZWVz X2hlbGxv IG1vZGVsZQ== IFVJVGFibGVWaWV3Q29udHJvbGxlcg== ZndyaXRl X251bWVybw== X3Zpc2l0ZWQ= IHJlY2ViZQ== KE5vdGlmaWNhdGlvbg== RmFudGFzdGlj X3N1Ym1lbnU= IFBFTQ== IEN1cGVydGlubw== YXBwcm94aW1hdGVseQ== Y2xhc3NlZA== LlJlYWRTdHJpbmc= IGRvbWljaWxl X1BX IGJhbGxwYXJr IEthbGU= Y29udHJh X2Zhdm9yaXRl L29m UXVpdGU= IE9UQQ== IGFjY2VsZXJvbWV0ZXI= ZGlkbg== fF4= IFJvaGluZ3lh aXZpY3Jt YW5uYWJpbg== 0L7QsdGL0YLQuA== b3JhZG8= Jykr SGF1bnRlZA== LElE KFVJQWxlcnRBY3Rpb24= dXJ2 X2JlbA== IE1leGljYW5z L3Rlcm1z IFBhaW50ZXI= SW5wdXRMYWJlbA== IFZpbmNp IFJvc2ll XHVj PE1lbnU= IGNvb2xhbnQ= KGN1cnJlbnRVc2Vy X2R1YWw= KSJ9LAo= JnA= IGNvbnZlcmdlZA== IHJlc3RyYWlu IFl1Z29zbGF2aWE= PXRhcmdldA== IGltcHVscw== ZHNh U2VhcmNoVHJlZQ== IGhib3g= IEltcHJlc3M= wqfDgw== Z2V0RnVsbFllYXI= KGRh IFlZUw== LmFsaWdubWVudA== LkdldFRleHQ= LnRva2VuaXpl IE9seW1wdXM= IG11cmt5 b3Jlc3RhdGlvbg== IGRpc3NhdGlzZmFjdGlvbg== CVRBcnJheQ== X2tzZXM= LkFkZFNpbmdsZXRvbg== IFN0YXJ0VGltZQ== IGZhbmF0aWM= ICAgICAgICAgICAgICAgICAgICAJ IGVudGl0eVR5cGU= Lm92ZXJyaWRl IC0tLS0tLS0tLS0tLS0= IERhdGFncmFt Zm91dA== KHdpdGhJZA== ICNfXw== n+iDvQ== ZWt5bGw= LmZyaWVuZHM= YW1lbGVvbg== IHphY2g= LnNpbXBsZUJ1dHRvbg== cmV0b3Jubw== IGtvbms= L3NtYWxs IFF1aWNrbHk= dW5yZWFk RG9uYXRl RGV0YWlsVmlldw== IGR1YQ== IHBlbmV0cmF0ZWQ= T01VWA== IG5pcg== X3BkYXRh Il0sWyI= IGxvd2Vz IGRvcGluZw== IGFzeW1tZXRyaWM= IG5lZWRsZXNz b3VyY2Vt IHVwcm8= IEd1enpsZQ== YWZi IHNleHRyZWZmZW4= LWNvbGxhcg== IGNvbG9zc2Fs TW9ua2V5 bmlzaA== IGhhbmRsZU1lc3NhZ2U= SW5jcmVhc2Vk KmR4 IENoYXR0YW5vb2dh Zm9yZw== IE9yZGVu IHNocmk= IFZhbmQ= ICJAIg== SW1hZ2VTaGFycA== IFdpbGRjYXRz cG9uaWJsZQ== LnNjZW5lcw== IHBhaW50ZXJz IFBmaXplcg== IFphaA== VG9Mb2NhbA== IEZsYW0= IMOpdGFpZW50 KSle IFNhbmRib3g= IFRSQURF IGNocm9taXVt IGFjY2xhaW0= IHBhY21hbg== wrR0 KXJlYWRlcg== TWFyaQ== LkRpc3BhdGNoZXI= LkFETUlO IFJlbWVk U3dlZGVu IG92ZXJsYXlz LmVy IHBhbmc= IGNsZWFubHk= YXZlbnBvcnQ= VG95b3Rh cGF0Y2hlcw== IHZ0eA== IEVpcw== Y2xhZG8= IFJpdGNo Uk9MUw== IGhhZGU= IGNvbnNwaWN1b3Vz IGRvY2tz KGpx IFByZW1pZXJzaGlw IEJleg== IOKElg== INGD0YHQuw== X3RvdGFscw== IHByb3Zh IEN1ZQ== IHNhw7pkZQ== IEdhbWVDb250cm9sbGVy SU1JWkU= LHBvcnQ= 44CCKA== LkNkZWNs SW5zdGFudGlhdGlvbkV4Y2VwdGlvbg== IGNvbGxhZ2U= IElPQw== IGJhaXM= IG9uRmluaXNo LXN0YXJz c2V0U2l6ZQ== IG1vZ3Vs IGRpc2lsbHVzaW9u IGNoZXZ5 KFNjaGVkdWxlcnM= KElS X2xvY3M= IGNhbm5vbnM= IGNhbmNlbGxpbmc= L2J1cw== IGJ1Zmlv IFlvdXJz IFBpa2FjaHU= IHRlcm1l csOl ZmFocmVu IG93bmVySWQ= IG9ibGlnYXRvcnk= IGN1bHA= IGFjaWRpdHk= LW11bHQ= IEJhbWJvbw== ICciPg== X2dz IGNvbXBpbA== bmFyZA== LWV4Yw== IHJoeW1l IGJ1dHRv c2F5cw== YW50YXN5 67g= IGNpdHTDoA== IGNoZWc= VGltZVN0cmluZw== IHBvc2l0aXZpdHk= IERhYmVp IHdhbmc= IGVzY3Jl ImM= CXZpZGVv IFJhbmtlZA== LnN0cmluZ3M= Pj4+KA== INC40L3RgtC10YA= IHJlc3Rh WzosOg== IHJlbmRyZQ== IGRlc2Vy Sm9z IGRpc3J1cHRpb25z INC+0L/QtdGA c2FtcGxpbmc= c3VwcHJlc3M= IGNvbnRhaW5lclZpZXc= IFNlYW1sZXNz IGFpcnk= IG9ubG9hZA== LldpbmRvd01hbmFnZXI= IFBMQQ== YnJhY28= LnNldFBvc2l0aXZlQnV0dG9u IHBkdQ== IGdzaQ== IENsaQ== X2dyYWRpZW50cw== 0Y/QtA== IFdoaXNwZXI= Y3N0ZGludA== IGzDpG5n IGZvcm11bGF0aW9ucw== w6lub20= b3VybmVtb3V0aA== WyRf IG9yZGluYXJpbHk= LnNldFVzZXJuYW1l IGZhY3VsdGllcw== TUlUVEVE L3ZhbHVlcw== IHdlaXI= IEFwdA== TVo= CWNm dWNrZW4= CQkJCQkJCQkJCQkJCQkJCQkJCQk= ZGVmZW5zZQ== W2lWYXI= IEJ1c2luZXNzRXhjZXB0aW9u U2VsZWN0b3Jz KGNvb3JkaW5hdGVz IFJlc2V0cw== IERyaW5rcw== b2xlYW5z KHN0eXB5 X0lPQw== Lnh4eA== IFNsYXRlcg== IEJlbGl6ZQ== IC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKio= YWRkaW4= X2VwaXNvZGVz IGlzY2hlbQ== bGVnYWxBcmd1bWVudEV4Y2VwdGlvbg== RGFubnk= IHBhcmVk LmNvZGVoYXVz IEFzc3k= CVJlY3Q= 4p4= Lmxpc3Rh INCy0LDRiA== IHZldHM= SFdORA== aXNvbmVy IHhv IG9yYWxseQ== IFN0bXQ= LnJubg== IERQSQ== IFN0cmlrZXM= LnNldFZpZXdwb3J0Vmlldw== IOiHquWKqOeUn+aIkA== WUVMTE9X R0xlbnVt cGFydG5lcnM= IEltcGxpY2l0 IHRha28= 4oCZZWxsZQ== IGVybcO2Zw== dG90YWxDb3VudA== R2ls CXdvcms= IHByYXRpYw== aW5hdGk= YWJpZXM= IFNraW5uZXI= IHNwaXJpdGVk IHBhbmNyZWF0aWM= IGhkZg== J2Vt IHBzeWNob3Npcw== b2xpY2l0 ICJ7Ig== X2F0dWFs IMOpbGVjdA== VEVBTQ== IGRhaw== IFNXQVQ= LkZyYWdtZW50TWFuYWdlcg== IHByb3Zpc2lvbmluZw== bGlmZXRpbWU= X0VYVEVOU0lPTlM= IENBU0NBREU= ICFb KEtQ IHZlbQ== IEludGVycmFjaWFs J119LAo= c3BhY2Vy X2t2 V2FyZWhvdXNl UkRE X2ZzbQ== LlN0cmV0Y2hJbWFnZQ== LFllcw== IFJlZnVnZWU= IEJyaW5naW5n IHbDoWxpZG8= LmludGVyc2VjdGlvbg== IHNwb29reQ== X3BvcnRhbA== IG1vdGg= IFpvZGlhYw== IFNPQ0lBTA== TWltZVR5cGU= J119fTwv IHJlc2l6YWJsZQ== 5Lqb KHBoYXNl KG1hcHBlZEJ5 IG11bmRpYWw= IGNvbnZv L2xlZnQ= L2RvY3VtZW50cw== d2FzaGluZw== IEFtw6lyaWNh X3F1b3Rh LnBvc3Rlcg== J10iKTsK IHN0ZWxsdA== IERJU0NMQUlNRVI= W29wdA== IGVkcw== IFJhY2Vz dmVudGFz IHB6 IENhcGFj IFVzZXJEYW8= aXRlc3Q= UHJvdmVlZG9y IFNob3RndW4= IHRoaXJzdHk= IEJhbGFuY2Vk aXF1ZXRh IGhlYWxlcg== LyIp LlNkaw== IHRlcnQ= ImRhdGE= X3Byb3ZpbmNl LkF1dG9tYXRpb24= IGZvbnRXaXRoTmFtZQ== X0FOVA== 55WM b29kbGVz IFJFUFJFU0VOVA== X0dQUw== IHBlcnN1YXNpb24= IERpc2N1c3Npb25z IGZyZWQ= TkVH OmJvcmRlcg== CWluaXRpYWxpemU= CWdsb2c= LWNhcGl0YWw= IEltVmVj IGRldmlz Q2FuZGlkYXRlcw== LmFuaW1hdGlvbnM= IHJhZ2F6emk= IFByb21ldGhldXM= IEtpZGQ= IHByb2dyYW1tYQ== Q2VydGlmaWNhdGVz Q29udGE= LmVzcHJlc3Nv IOuQmA== IGJlaWRl 6ZmG LmdldFJhdw== IEZ1bGxOYW1l IGlhbQ== KCopKA== bWFpZHM= Qkg= IENvbnNwaXJhY3k= X0RV IGJsYXRhbnRseQ== IFx8 IFdpZw== IENvbmo= UmVuZGVyaW5nQ29udGV4dA== TWl0Y2g= IGFsbGVsZXM= IOazqOaEjw== IHJpbXM= IE5laWdoYm9y IEt5bGll LnBhcnR5 dG9ycw== IOyhsO2ajA== IHdlcw== IENyYWZ0aW5n WyIu LnNwb25nZQ== IOqx SXNsYW1pYw== IHByb3NlY3V0aW5n IHdpaw== Lm9zZ2k= b25pbmdlbg== R3JhbW1hcg== J2lt IGF4aWFs Q2xlYW5pbmc= LmdldEV4dGVybmFsU3RvcmFnZQ== PS4v IGNocm9tYXQ= 0LXRhQ== YWJheQ== IGJvbGE= LkFnZ3Jlc3NpdmU= J10sJF8= aXphY2Fv UHJlcGFyaW5n OkFueQ== LkVOVEVS LXdpbmRvd3M= IGVucmFnZWQ= X2RpY2U= IGRldHRh ZWNhbA== X09SSUdJTg== IC0tLS0tLT4= X0JsdWU= IGJvdGFuaWNhbA== IGZyYWdz IGZhbWlsaWFs LWR1 IHNlaXppbmc= KGJsb2Nrcw== LnJk LmNoZWNrTm90TnVsbA== IG1pc2Vy IG1heHg= IEtuZWU= Vmlld0l0ZW0= SW5uZXJIVE1M RGFuZ2Vy KChfXw== IHByenlwYWQ= Y3JlYXRlVXJs Kios IERlY29yYXRpbmc= QVRFR1k= Pz4v LkRlc2lnbmVy aGV4ZGlnZXN0 IEV2ZXJ5d2hlcmU= YWxsZXJpZXM= LlRFWFRVUkU= LkJsb2Nrcw== emVsbA== IHByZcOnbw== U3VkZGVubHk= aW5wdXRFbWFpbA== KHN5bmM= LmJk Z29sZGVu PicpOw== IERpY2tpbnNvbg== Pj4oCg== IFFVRVVF IGdldENvbHVtbg== IFNBTkQ= LnBpZWNl bGljZXI= Rmx1dHRlcg== IGdldFZlcnNpb24= IHJlc291cmNlSWQ= b2ds xYJhdw== LkJyYW5jaA== CXdlYg== IGZyYW1lcmF0ZQ== UFBQ IGZyYXk= Q05U IGluZm9ybWF0aWU= J10NCg0K bmVhcw== SGVhZGVyQ29kZQ== IOa4 IHRyZw== cmF3dHlwZXM= SG9uZGE= IG1hcmtldGVy IHJlcXVlc3REYXRh IFBn CW5vdA== IHBhZ2VJbmZv IGFrdHVlbGxlbg== 44GV44KT IEFNUw== cHVzaFZpZXdDb250cm9sbGVy CUFM IHZlc3Rz cHJvZHVjZQ== LW3Dqm1l IFJhaG1hbg== RnVubnk= RVo= X1ZhbGlk IHNxdWFkcm9u IGxhc2g= IGlybQ== aWFzY28= IFBhcmFu IHBldGl0ZXM= IERlY2F5 IHVuaW5pdGlhbGl6ZWQ= cHJpdmlsZWdlZA== IG1iZWR0bHM= 5aSH5rOo IF4u IGVjc3RhdGlj RGV0cm9pdA== IHBhcnRlbg== IHNvdXZlbmly LmdldExvZ2lu 0LzQvtGC0YA= ZW7Dp8Ojbw== IG3DrW5pbW8= IEFjY2Vzc2Vk cmnDsw== TWlj IFZvY2Fs LlNldFN0cmluZw== IG1lbnNhamVz 5YCN IGF0dHJhdmVycw== IEFwaA== ICcpOw0K w7xuZGU= IGVuY2hhbnRlZA== IFJvb3RTdGF0ZQ== IENMT1NFRA== CQkJCQkJCQkNCg== IGNhbGllbnRl b3JyaXM= IHBoeXNpY2lzdHM= aHduZA== X3Zp IHLDoXBpZG8= IGNhcGl0YWxpemVk ZWRCeQ== IG1hY2hpbmluZw== IGh1YmJ5 IFN0YWN5 LkJ1cw== ZHJpbms= SHVy IHByb3BpYQ== VW5pdFRlc3Q= IG1pc2NvbmNlcHRpb24= X18pKTsK L2Rj IE1heXdlYXRoZXI= X21D LmNyZWF0ZUZyb20= IFFQYWludGVy cm9wc3ljaA== aW5uaXR1cw== YXlhcw== IGdlZw== KGR3 IHVzYWRv IHRyaWNrbGU= IGFubmloaWw= IFBhc3Rh ICsrCg== KEV4cGVjdGVkQ29uZGl0aW9ucw== LnBvc3RWYWx1ZQ== aWNhcA== IERvbmV0c2s= X3NvdXA= LXB1Ymxpc2g= IFBi bWVudGlvbnM= QUNDRVBU LlB1bGw= LOKAmeKAmQ== IHJldGFyZGVk X0FUT00= IFRlcm1pbmF0b3I= LWNvdXJ0 IENMTG9jYXRpb25Db29yZGluYXRl IHJldmVyZW5jZQ== IFNTQw== dXRlbHk= IFdPTg== IEdTTA== ZnJlaQ== LmdldExvbmdpdHVkZQ== IG9wZW5GaWxlRGlhbG9n LkJ1dHRlcg== LWltcG9ydGFudA== X01BTlk= IEdvbmc= 4oCcSG93 IGdvcmdl PW1zZw== IEV6ZWs= Y3JlYXRlQ29tbWFuZA== OmNoZWNrZWQ= IGluZm9ncmFwaGlj LldFU1Q= RGlycw== IGd1YXJkYQ== IGJlZXRsZQ== PHNtYWxs LWFuZHJvaWQ= IGNyZWRpdG9y IE3DqWQ= IGZpbmFsaXN0 IGFibA== bmV2 X2ludGVyYWN0aW9u IE1vbnRlcmV5 amFo IGNhbmRpZXM= IFF1aW5jeQ== 6Kqt IGJhdGNoU2l6ZQ== YWtpdA== IG9iZQ== KHBhcmE= IGV4cGVyaW1lbnRlZA== IGNvdW5jaWxsb3Jz IGNsYXNoZWQ= c3F1 LXN0cm9rZXM= IEdL IEV4cGlyZXM= IHByb3NlY3V0aW9ucw== IENyZWF0dXJlcw== IHnDtg== eGxpbQ== X0lNUA== RW50cnlQb2ludA== ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA= LkRlZmF1bHRDZWxsU3R5bGU= IGJyZXZl IEJyaXRhbm4= IHN3ZWF0eQ== IGxldGg= IGZsYXNoYmFjaw== cGVybWFuZW50 IEpESw== X0RldGFpbHM= RXVybw== cHB0 IHJpY2hUZXh0Qm94 L2JvYXJk IHRyYW5jZQ== LmN5Y2xl Jyk7Iik7Cg== IHRveGlu X2RlaW5pdA== IG92ZXJhcmNoaW5n IGNvbmZpZ3BhcnNlcg== IEthd2FzYWtp LnRodW1i IHBsYXlh IEpvc2Vm K18= IHplcm9lcw== IGF1cA== IEhhcmk= Y29tbWl0dGVk Tml0 LmZpbGVQYXRo IERpc2FiaWxpdGllcw== bWFudWZhY3Q= LWFsaWduZWQ= LlJFU0VU IHJ1c3R5 RXk= IG91c3RlZA== Y29zYQ== U3RydWN0dXJlZA== LmdldEQ= IHPDoWJhZG8= PkxvYWRpbmc= X21B LmdldFJhbmRvbQ== Ymxpbmdz IGNoZWVzZXM= dHRp LuKAog== IEJ1cmdlc3M= ZW5kZXJpdA== LicsDQo= KCIiKw== YWNi JXA= aW5kZXhlZA== X3ByZWRpY2F0ZQ== bmVzaWE= IGJpZWQ= IENJVA== KFBvcw== X3JhZGk= 5Lu35qC8 Qml6 IEFkb2xlc2NlbnQ= IHZpw6pu Y3ljbA== X0NhbmNlbA== IGNvbmNsdXNpdmU= IGFwcGVsbGF0ZQ== aW5mb3JtYXRpY3M= U0o= IGVsZWN0aXZl cm9sZUlk RmV0Y2hlcg== CUNvbW1hbmQ= KCIoJQ== IGZhcnQ= SUxB Z2V0QmxvY2s= QVVTRQ== INC00LDQvQ== IEFydGU= IG5vdGlmeWluZw== IGdlbGU= LnNhbWU= IFJlZ2Vs IEJhxZ8= LmNyZWF0aW9u IFZO X2NvbW11bml0eQ== IHVuc3VzdGFpbmFibGU= U0VY IGdyaWRTaXpl cmVzY2lh YXZlcnNhYmxl KCcsJylb IFBoZWxwcw== 4buVaQ== QU5DRUxFRA== LUlT LnJ1bm5lcnM= IFN0b2tlcw== LlByb2R1 IHdoaXBwaW5n X2FjcXVpcmU= IGludmVzdGlnYWNpw7Nu ZnJpZWQ= LmNvcHlXaXRo IEhhcmRjb3Zlcg== LVNl 4Z624Z4= aW52aXRhdGlvbg== bGVzYWk= IERvcm0= INGB0L/QuNGB0LrQsA== IGNvbmNhdGVuYXRlZA== b3BoaWw= IHRoaW5rZXI= L2ZvbnRhd2Vzb21l IExlb3BhcmQ= ICIvIik7Cg== IHJlc2lkdWFscw== IE1pY3Jvd2F2ZQ== IGNvbmZvcm1l dGhyb3A= IGRpc2VtYg== IE9NRw== IERpc2NpcGxpbmU= IEFjcm9iYXQ= L3JlcG9zaXRvcnk= ZGZh X01FRA== YnVmaW8= IG3DqXRob2Rl X0hPTEQ= aWFzaQ== X2xlZ2FjeQ== KQ0NCg== 5qOA R2V0UHJvY0FkZHJlc3M= IHlheQ== b3RlbmNl b3JkZXJpZA== LXR3 IGRlYXJseQ== SW5jb21pbmc= L2ls IG5ldXJvcA== dWN6 KTsNDQ0K IElubm92YXRpdmU= IHByb2Z1bmQ= aWdtYXQ= U2VsZWN0aW9uTW9kZQ== cmVsZXZhbnQ= LkdP IGJydWlzZXM= IHNhY2g= b2RlZg== IHJlaW1i L2Rlc2t0b3A= LXNwb3Q= dW5kYW5jZQ== RW50cm9weQ== XGNvcmU= IHN1Z2Vy IE12Yw== IEdOT01F X2luZHg= IFlZU1RZUEU= IE1hdGxhYg== IENJRg== ICopKQ== IHByb2R1Y3RMaXN0 IEFscmlnaHQ= YWNlbWFyaw== 0YLQuNCy bW9kaWZpY2F0aW9u aW50ZXJuYXRpb25hbA== IGhvbWVycw== IGRpY3Rz IFFGb250 LlNRTGl0ZQ== IHRyYW5zcGxhbnRhdGlvbg== IE1lc3NhZ2VCb3hCdXR0b24= IEVsdmVz J11dKQo= KFFJY29u IGNpbmVtYXM= Q09PUkQ= LUNoaW5h IGto4bqpdQ== 5oiR55qE IHNrdWxscw== IHBhaW5zdGFraW5n ZmNl LlhSTGFiZWw= IHNwZWNpZmllcg== IHByZWZlcnJpbmc= L2FjdGl2aXR5 KFBob3Rv w6FsdA== LmxvdA== Jycu YW5ub25jZQ== Lmdvb2dsZWNvZGU= LXBkZg== IFBva2U= X0FDTA== IGVuZG93ZWQ= ZGlzY292ZXI= Lm9tZw== IHdvb2RsYW5k Lk1hZ2lj IHZvbG9udA== Tm90QWxsb3dlZA== IGNoYXZl Qk1X JywnPScs IFNJWA== 5oiR5Lus IGtvc2hlcg== IGFzcGlyYXRpb24= aW50bA== X3JlZnB0cg== JysK bWVudG9y LmNsdWI= V2luZG93U3RhdGU= LkFSUg== IHp6YQ== IG1lc3NhZ2VUeXBl LmVxdQ== VGhvcg== IGluanVzdA== IGd1bXM= IGJvcmRlclNpZGU= Ly8vLy8= IFRyYW5zbWl0 IGJ1ZnNpemU= IGhhaw== IGVsbGFz UkFORE9N CW1j IHBlYQ== ZWtv ZG9jdW1lbnRv IGh5c3Rlcmlh IGFyZW5hcw== IGd1bm1lbg== IG1pa2U= IGltcHVuaXR5 YXRpc2F0aW9u X1plcm8= X0NPTVBBTlk= IEdvcnM= IHVzZUNsYXNz KHJlZGlz IFJVTk5JTkc= IEJhaXI= dmVsdGU= ICcsJy4= 0LDRgtGM0YHRjw== w7ZzdA== ZW5jb2RlVVJJQ29tcG9uZW50 X3Jlc3RyaWN0 IGRlY2Fscw== IFBlZGlkbw== IGFsdGVyY2F0aW9u RGlzcGxheXM= IEFwcGxpY2FudHM= Q1VT VGV4dGFyZWE= IEFuZ29sYQ== LmZ1dHVyZQ== IFVTSE9SVA== IHN1cHByZXNzaW5n IHNldHplbg== QVBvbHlub21pYWw= IHRvY2g= IGhhbGxtYXJr ICQkJA== IENIQVJTRVQ= LnJwbQ== IERpY2g= LS0tLS0tLS0tLS0tLS0tLS0tLS0= X3Bhcm0= 6L+Y YWNjaW9uZXM= aGFpdA== V0FSREVE X3JvdXRpbmc= IE5PTQ== IGVuY2xhdmU= IExvdHRv CWZy Y29tcGxleENvbnRlbnQ= IEJhbGxhcmQ= a3ViZQ== L3dpbg== LmdldENvbHVtbk1vZGVs X1JFUExBQ0U= SGVhZGVyVmFsdWU= IGVzdHVkaWFudGVz IGFwaXM= IGJwbQ== IFR5cGVOYW1l QW5kR2V0 cml0YQ== UGxhbnM= Pk5vdGU= IGZldGlzY2g= IHRvbmVk X2dvdG8= b25zZW5zZQ== IG1vbGRz IGluZmlsdHJhdGlvbg== IEd1ZXJyZXJv dWJibw== Y2tp KCQoIi4= X2FjdGl2aXRpZXM= KGNoYW5nZXM= IG9mQXBw IEtlcGxlcg== IERlbXA= IENvbnRpbmVudA== LlRpY2tz IFVuc2lnbmVk IEphaHJlcw== IGZyZXNobWVu IEFyY2hpdmVk INC60L7RgtC+0YDRi9C5 ICc6Og== VHV0b3JpYWw= Q2M= IHRhYmxlTGF5b3V0UGFuZWw= ZnJvbUpzb24= LmxldmVscw== X3RyYW5zaWVudA== IGVuZG9yc2luZw== IERJQw== bGF1Zg== IHNocmVk X0VNSVQ= aWZpY2FudGx5 QUxB L3Byb3Rv IG5hcnJvd2luZw== VXRj RmFjdG9ycw== IHNlbnRpZW50 5p6Q bGl4aXI= IENST1NT bWV0ZW9y IGdyb2lu IG1kYg== IFJvdHRlcmRhbQ== IGNvbWlkYQ== IE9wQ29kZQ== IERlZmF1bHRWYWx1ZQ== UGVybWlzc2lvbnNSZXN1bHQ= IGhldGVyb2dlbmVvdXM= IG1vb3Q= IGRlY2VpdmVk LWluZGVwZW5kZW50 IE9iamVjdE91dHB1dFN0cmVhbQ== IG92ZXJwb3dlcg== LmR1cA== IGxkYg== IGRvbWVzdGljYWxseQ== IGJlc3RlbGxlbg== IGxvdg== IENvbnRyYWN0b3Jz VHJpYW5nbGVz IGZvZGRlcg== IGZpbG1lcw== 5LyB IHJldm9sdmVy U3RhcnR1cFNjcmlwdA== L3ZhbGlkYXRpb24= IFJlc291cmNlVHlwZQ== acWf IExheg== ZmVm IGxzdG0= eyo= LmF0dGFjaG1lbnQ= LmhpdHM= ZXdpdGg= RE9H QWxhYmFtYQ== IG1lZGl1bXM= Lm1Db250ZXh0 LWNvbHM= 5Y+L Lm5vdGljZQ== IGF0dG4= IFBhY2tpbmc= IExu X0NPTVBMRVg= L1VzZXJz LnNhdmV0eHQ= IFJvdW5kcw== Pyw/LD8sPyw= IGluZ2w= IFJPQw== X2ZlbWFsZQ== IFN0YXJk XV07 IHdyZXN0bGVycw== IHRvcnJlbnRz IHNpbmg= 77u/Cgo= 67O1 c2Vuc2U= aG93ZXZlcg== LlBoeXNpY3M= SW5mcmFzdHJ1Y3R1cmU= IFNhY3I= RmVs IERJU1RSSUJVVA== w6ltZW50cw== IFZhbGlkYXRlcw== IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IHwv IGVzbA== IHLDqXNlYXU= IEJpcA== QllURVM= X1dBVEVS VHVybmluZw== RUxT IGp1eHRhcA== IGxlc2Jpc2NoZQ== w71jaA== KFVua25vd24= TmVv QEpzb25Qcm9wZXJ0eQ== IGFsdW1ub3M= IFJhcXFh aW1laQ== LmdldEJvdW5kcw== Lk1vdXNlRXZlbnRIYW5kbGVy IyMjIyMjIw== R2VuZXJpY1R5cGU= L2Ntcw== IHR1cm5v INC80LjQvQ== IGZvbGtsb3Jl IEV2bw== IGNvbmR1Y3Rpdml0eQ== IGxlYmVu IGdlYXJib3g= LXZz IM+G IGRyaW5rZXJz IGNvbmV4YW8= IFRlZXRo IGdldEFyZ3VtZW50cw== IFJBVA== ZW50aW91cw== RWR1Yw== K1c= IEluc3RpdHV0aW9uYWw= IEJvcmQ= aXNFcXVhbA== KHB3ZA== IGlnbml0ZWQ= IFJvdXNzZQ== IGltcGFjdGZ1bA== IE1hbGs= IGdlcmFs IFBpdm90 IGF6dA== IGNzdmZpbGU= IFJvcGU= IFNPTFVUSU9O IEFyYml0cmFyeQ== IGxldHRv Lk1vdXNlQWRhcHRlcg== IH19fQ== IFNhaWxvcg== ZGVyYQ== UHV0dGluZw== IGNvbmNlbnRyYXRlcw== IGF1dGhEb21haW4= 4oCd55qE LWZpbmFscw== LHN0cmxlbg== TXVvbg== IE9yZGluYXJ5 ZmlyZWZveA== IExhVGVY IEh1bmQ= ZW5naW5lZXJpbmc= L2JsdWU= ZWRUZXh0Qm94 KCIiKTs= IENEREw= a2VwdA== IEdldFN0cmluZw== S2ly KCk9Jw== IE9DRA== YW50aXVt JG1lbnU= IEFwcGFsYWNoaWFu U2VjcmV0YXJ5 66WY 4Li14Lii U2VtYW50aWM= ICpb ZXN0b25l dW5na2lu TWF4WQ== LXRvbmU= In07DQo= X1BhcnQ= PE1lbWJlcg== dHJhbQ== IHRyYW5zaXN0b3I= IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCg== IERlc2Rl IHJpZ2h0ZnVs IENvcm5lbA== 5pE= LkhPVVI= IHNpZGVsaW5lZA== cmVmZXJyZXI= bWF6ZQ== IGhvbHN0ZXI= IGNyaXBwbGVk IERhdGVGb3JtYXR0ZXI= b3BoYWdl X21E IGRlc2VsZWN0 cmF1ZA== IFBLSw== cm93RGF0YQ== IGxvY2tzbWl0aA== LnJlc3BvbnNlcw== KHByb2R1Y3RJZA== X1NUTVQ= S2V5VHlwZQ== LlRoZW4= emVl IGNydA== IEdyYW5kbWE= QFJlc291cmNl IGJpdHdpc2U= LWNtcHI= 44CCd3d3 emVpdGln JmRpc3BsYXk= Q2FydEl0ZW0= LU5v IG51bcOpcm8= IG1hdXI= IGluc3RhbmNpYQ== CWR0 X25wYw== IHNrYXRlYm9hcmQ= 4oCcQWxs IENyb3dk IMOkbg== IGJyYXo= Y2Fl eW5ldA== L3Bt L3NjcmVlbg== T1BUQVJH IFZCb3g= IGxlb3BhcmQ= X2dyZWF0ZXI= Y3B0 PGRk IG1lY2hhbmljYWxseQ== b3NwZWxz KWY= Lmx3amds LmdldFBvcnQ= IFBSRUY= LkFkZFRyYW5zaWVudA== cHBhcmQ= IO2ajA== RXRoZXJuZXQ= IHNhbGluZQ== KGxldmVscw== IHNlcnZpY2VQcm92aWRlcg== LkFuZ2xl YWx0aXR1ZGU= aWxsYXVtZQ== IHNjYXBl X0NBTEM= X3F1ZXN0 IERpc3NlcnRhdGlvbg== IEVETQ== LUNkcw== IGhvbm9yYXJ5 c3RvcHM= IHN1YmRpcg== IFZI IENoZWF0 IHJpZ2h0ZnVsbHk= UUU= LldyaXRlQnl0ZQ== ZmlndXJlcw== ZW5uaWU= KERCRw== IHZva3NuZQ== IGV4cGVuZGVk VU5JQ0FUSU9O aWxpbng= IFJlY2Fw X3ZlcnRz IHRyYXVtYXQ= IGdldFBsYXllcg== IHZlcmJlc3M= IGN1bHRpdmF0aW5n IGluaXRpYXRvcg== VGjDtG5n ZmluZEZpcnN0 X3Blcm1z IGJ1Yw== ICIiIg0KDQo= VFlQRVM= b2JqZWN0TWFuYWdlcg== KENvbmZpZ3VyYXRpb25NYW5hZ2Vy IHRpbWlk IHNuYXBjaGF0 IGNvbnNlZw== CWRpc3RhbmNl X3JpZ2h0cw== X0Rlcw== IEZsZXNo LXZlcg== IGFmbA== ZnJhdWVu IGJsYXNwaA== IFF1YWxpdMOkdA== bWFm TW9uaXRvcmluZw== LkRpZmY= IHNob3JlbGluZQ== IHJlc3BvbnNlQm9keQ== bWVtc2V0 PGRlY2ltYWw= U21hcnR5SGVhZGVyQ29kZQ== IGluc2V0cw== IEJpbmFyeVRyZWU= YW1lZGE= IG5paGls IE5heQ== eW1vbG9neQ== IFdH IHRhcGk= IEluc3RhbGxlZA== bWFpbnRlbmFuY2U= KX0iCg== IFhP LXBlcmlvZA== c2Fy IG5pbmd1bmE= T1JNQVQ= LnNldFByb3RvdHlwZU9m IEti IEhlbnJpaw== w6l0aXF1ZQ== IExhaG9yZQ== CUFkZHJlc3M= IG1lbHRz Tnk= X2FkdmFuY2U= IHZlbG9jaWRhZA== IGFsdW1ubw== IHNhbml0aXplcg== IHBoaXNoaW5n IENvbWV0 IGNoaWFy CXNwZWM= dHJpbW1lZA== KHN0YXRlYXJy b25uZW4= UmV2ZW51ZQ== TGVucw== IGNoYWlyZWQ= IEFzc3VtZXM= VHJhc2g= X3Vuc2V0 XEJyaWRnZQ== UG9pbnRTaXpl IFBvbGlj IHNleHVhbGVz CWRmcw== IFdpZGVTdHJpbmc= IGFjY3J1ZWQ= WVc= X1NDSEVEVUxF IGtpdGU= IHBhcmFjaHV0ZQ== W3RhYmxl IGFjdGl2ZUNsYXNzTmFtZQ== LlF1YWQ= SXNyYWVsaQ== IMWT IGhvb2c= IGNo4buJ ZXdlYXI= IHRpcmVsZXNzbHk= c2V0RXJyb3I= LmdldEFtb3VudA== LnNldEl0ZW1z IE1hbnNvbg== IEJheWVzaWFu X0ZsYWc= QUNIRVI= L29yaWdpbmFs IGltbWFj IExvc2luZw== Jz4KCg== TGlj IE1pcmFnZQ== IEFzc2VtYmx5RmlsZVZlcnNpb24= VGVW IFZhbHVlRXZlbnRMaXN0ZW5lcg== LXNvbHZpbmc= VGhv cm91bGV0dGU= X1dQ IHVuaW50ZXJydXB0ZWQ= IGZpZWxkVHlwZQ== LlR5cGVk IGFtb3Vy IG1vY2tlcnk= KHZvbA== IFN1YmNvbW1pdHRlZQ== IFJ1Zg== ZXJveA== OlVJQnV0dG9uVHlwZUN1c3RvbQ== IEJsdXI= IHd5a29u bmNlcw== QVNIQk9BUkQ= ISEiKTsK IG11cmRlcmVycw== LmRhaWx5 IERJQUc= amluZw== IGRvbHBoaW4= IGzDsm5n IGLDtg== IFZvY2FidWxhcnk= LlN0T2JqZWN0 JykiPg== IHp1bg== IHNjcmltbWFnZQ== dHLDqWFs IExpZw== W3Zp Q29sZQ== IGZyb3N0aW5n LlBsYXllcnM= LXRyYW5zbGF0ZQ== RmVlbHM= PVwiLw== LkJ1dHRlcktuaWZl ID8+Owo= IGF2aQ== aW5uaWU= LkZhaWx1cmU= IHNwaW5kbGU= Q29uZmlndXJhdGlvbkV4Y2VwdGlvbg== X2hvcA== IHBvc2nDp8Ojbw== IEF3YWl0 VUlJbWFnZVBpY2tlckNvbnRyb2xsZXI= CWRheQ== IGdlbm9t Q2Fi INGA0LXQt9GD0LvRjNGC0LDRgg== T1JJR0lOQUw= IGVqYWN1bGF0aW9u KHRjcA== U0VDT05E IHRvbmlj IExpc3RCb3g= IAkJCg== KCk+Cg== IHF1YXRyZQ== xrDhu6NuZw== d2l0aEVycm9ycw== Lk1heWJl LOKApg== dG9rZW5JZA== X1VOREVG IGZyZXNobmVzcw== IEFtZW5kbWVudHM= Lm1hcGJveA== LkNW KGJsb2c= X2dldHRpbWU= LnF1ZXN0 c3BhcnNl IHJlc2FsZQ== IGVudGh1c2lhc3RpY2FsbHk= IFByb3N0aXR1dGFz V2E= Q2FyZ28= LlBhcmNlbGFibGU= U0VOU09S IFJ5dQ== TGF1Z2hz X05hdGl2ZQ== L3Bn eXN0cw== IHBob3RvYw== 566A YWRvcHQ= LnNwZWNpZXM= Y29uY2lsaWF0aW9u QWRqdXN0ZWQ= LkZpcmViYXNlQXV0aA== dXR0bGU= b3JkaW5hdGlvbg== IG11bmNo IFN0YWtl LnBpbmc= YW5rZXI= KFFTdHJpbmdMaXRlcmFs IHN1YnNjcmlwdA== ICAJCg== IE1DQw== X0NtZA== c2V4eQ== aW91 IE1BTlk= IG5hbm55 VFJBSU4= IGZsb3VyaXNoaW5n IFdhdGNoZXM= IFFNYXA= IEZlcm0= IHdhc20= IEFiZWQ= X1VE IEdsYXNzZXM= K3Y= QXR0ZW5k LkNoYWlu IGRlY2VuY3k= IFN1cHBsZW1lbnRhcnk= aHVudGVy LXR4dA== ICJ9IjsK LnNldFdpbmRvd1RpdGxl KCI8Pw== IG51bWJlcldpdGhJbnQ= IGFmYXI= 56e75Yiw cml0dGU= L2xpc3Rz KeKAnQ== IGRpdmVyc2Fz IGVtYmVy LlJlYWN0Tm9kZQ== IGthbmc= IFN0YW1mb3Jk W2F0 LmNsb3NlUGF0aA== IGNvbnRyYWNlcHRpdmU= KGxvY2F0aW9ucw== IGF2YW56 IENvbnRhaW5lcnM= IFNjaG9sYXJz LmFjY3VyYWN5 INCy0YvQv9C+0LvQvQ== 5ZWP PSItLQ== IFdyZXN0bGU= IEd1YW50YW5hbW8= IG55bXBo KGd1ZXNz LnNldENvbHVtbg== X3RF LmNvbnRlbnRNb2Rl IGludmFsaWRhdGVk IFNob290ZXI= IE1hdGVy LlN1Ym1pdA== IGFuZ2xlZA== bmF2YmFyRHJvcGRvd24= QW8= IOa1 0LjRgdC6 IFNDQU4= CWNt IE1hcmt0 dHJ1Y2s= OycK Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCg== IGdoZXR0bw== IGJ1aXRlbg== IENsb3du OiE= IGNoaW1wYW4= J2ZpZWxk YW1tbw== IERlcGVuZA== KX0p KEZMQUdT IFJDQQ== IENob2ly TG9naW5QYWdl IEdvcmQ= Q29tcGFjdA== LXBvY2tldA== IGNvbnN1bHRhcg== IEludGVyY2VwdA== xZ90aXI= dWV0eXBl b25lbnRz IHN0YXJ0UG9zaXRpb24= IHBvc2l4 IFdvaG51bmc= X0VYUFJFU1NJT04= IExvZ2luQWN0aXZpdHk= KG9wY29kZQ== IFRhbmdv IE51bWJlck9m Lm92ZXJmbG93 IFdDUw== IE9jY3VwYXRpb24= X2Nn LlRvcGlj IENhcmVlcnM= QVJBVElPTg== LmdldExpbmU= IOyihQ== IE5hY2h0 IHRvSXRlbQ== aW5jbHVzaXZl YXZpZXN0 LWFwcG9pbnRlZA== KGludGVybmFs Q09OVEVYVA== KGRpZ2l0cw== PXsiLw== IHBsYXl3cmlnaHQ= IGRlYWRsaWVzdA== bGVhZHM= LlBVVA== ICp9Cgo= IFBhY3Q= IERpc2NvdW50cw== TG9jYWxpemVkTWVzc2FnZQ== IE3DpG5uZXI= Xz4= IG1hc2NhcmE= KFByb2ZpbGU= 5Yqf6IO9 aW1pdMOp IHdpbGRmaXJlcw== LVJPTQ== LmlzT24= KGdyb3VwSWQ= UmVwYWly YWNjdW11bGF0ZQ== IDwiLA== IGhhbmR3cml0dGVu IGFjaGV0ZXI= IE1HTQ== IElybWE= LT57Xw== Z2Vl Y3JpbWluYWw= IOiLpeimgQ== IG1vbWVudGFyaWx5 IikhPQ== X2xpdA== IGV4cGlyZXNJbg== LiIpLg== 6ZW/5bqm IGZyw6Zra2U= dmxj IG9yYnM= KSwk IHZlbnR1cmVk Lz5c Y2hhcm0= TnVpdGth ZWxkaWc= YXRvbmlu V2l0bmVzcw== LWxhdA== IHNldEhpZGRlbg== IHJlbGljcw== IGNvbnN1bGF0ZQ== LklHTk9SRQ== IkFmdGVy IHNldEFkZHJlc3M= IGJlc3RlaHQ= ICcnKQoK LnhheGlz IHNlcsOjbw== IG1pc2xlZA== X1VOSUZPUk0= IFZJQQ== aW5jcg== IHplbml0aA== IHZpc2Nvc2l0eQ== IHRoaW5seQ== LmdldFNoYXJlZFByZWZlcmVuY2Vz LkVycm9yQ29kZQ== IiksIg== IE1pbGxpb25lbg== IC8+KQo= U2Nyb2xsSW5kaWNhdG9y LXNlZWtpbmc= IFBPTElUSUNP YXNjYQ== X3Js TmF2aWc= KGZ1bGxmaWxl IHNvbGl0dWRl IGp1dmVu IGhhdWxpbmc= IE1hY3Jvcw== IEdyeQ== IGV4ZXJjaXRhdGlvbg== IEFUVEFDSw== VGlja0NvdW50 IHJpdGVz IGRvZQ== UGFydGljbGVTeXN0ZW0= IHNsdQ== V2luZG93VGV4dA== IENsYXNzTmFtZQ== IHNsYW5kZXI= CVBvcnQ= am9uZw== P2E= LkRpYWw= 4oCUYXQ= JG9ialBIUEV4Y2Vs IHNvYXI= RU5O YXBwZWFyZWQ= IHF1b3RpZA== ZW1hY2hpbmU= IG5pcA== IG1pY3JvdGltZQ== IEFsbWE= OyE= LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t IFBhc3NhZ2U= IGR1bXBzdGVycw== IEV4Y2x1ZGU= IHN1Z2dlc3RpdmU= IENpcmN1bGFyUHJvZ3Jlc3NJbmRpY2F0b3I= X2Nscg== QXJyYXlUeXBl SUxMQQ== RWxhcHNlZFRpbWU= RHJpdmVu IHJlc291cmNlTmFtZQ== IEdhcnJpc29u c2VyaXI= LWFoZWFk IHBpbm5hY2xl IEVzcHJlc3Nv U3BhcnNl IGFzc2F5cw== IEdpcmxmcmllbmQ= aW1pZA== XT0nXA== T05HTE9ORw== IHBvcnRyYXlpbmc= TGFuZQ== IGLDunNxdWVkYQ== IHJlaW5mb3JjZW1lbnRz IFNwcmVhZHNoZWV0 IEFycmF5Q29sbGVjdGlvbg== LGFycg== bGlnaHRib3g= aWNhbmE= PCI= YnVpbGRlcnM= S2lk IE1hdFNuYWNrQmFy RVhQUg== b2RjYXN0 IEZvdW5kYXRpb25z IGluZHM= PSckew== Rml6eg== LWZ1bmN0aW9uYWw= KHdvcmtzcGFjZQ== IHN0ZW1tZWQ= X3BhdGNoZXM= IEphcnZpcw== UkVBRElORw== IGRpc3Jlc3BlY3RmdWw= IFFEb20= ICR7Cg== ZXN0YXR1cw== UmVhY2hlZA== IS4KCg== SUxU IE5ERUJVRw== IENvdXJhZ2U= YmlydGhkYXRl IFRpbmc= IHV0aWxpemFkbw== w6FuY2hleg== T3V0ZG9vcg== IGhhbmRndW5z UmVmQ291bnQ= yZk= cm9tbw== IHR0cw== LlNoZQ== IFBhbmU= 44CRLOOAkA== IElPQ1RM L2JsYWNr aW5zY3JpcHRpb24= IGJpb3BzeQ== IFRpbWVJbnRlcnZhbA== LlRlc3RDaGVjaw== IEdVSVN0eWxl IENhcGFiaWxpdHk= IEJlaXRyYWc= ZG9ubmVlcw== VHJlYXRtZW50 LmJhY2t1cA== IHNpZ25pbmdz IEJvY2E= ZHJt Lk1BSU4= IGdvZWRl IE1hcmt1cA== R1JFRQ== IEJhc2VTZXJ2aWNl LkNyZWF0b3I= IGphaWxz IEthaG4= SXBBZGRyZXNz QUNISQ== IGluaGliaXRlZA== IEAkXw== IEFzc2Fzcw== IGVudmlhZG8= SGVyb2Vz 0J/QtdGA IE1hdmVu Lmxz IGl2ZQ== fFJG IHJlc2l6ZU1vZGU= IHJ1bXBl X2F0dGFjaG1lbnRz VFU= IHRhY3RpbGU= QXR0ZW1wdGluZw== IHJvYmlu eWF3 IG1lcmNlbmFyaWVz IEhhYml0YXQ= ZW5kZGF0ZQ== IG94eQ== CVJhbmRvbQ== b2hvbg== SXNOdWxs IFZhbGlkYXRpb25SZXN1bHQ= 44Oa dW1iZWQ= cHB2 IGFycA== aWNoaWNr X3Jubg== IFRGVA== VGV4SW1hZ2U= Ik9u IFNhbXBsZXI= dG9wbA== IGphbmU= eWxpbmc= IFVOSUNPREU= VGFiSW5kZXg= PHsK c3VzcGVuZA== dXZpYW4= LGFwcGxpY2F0aW9u 0L7Qu9C40YfQtdGB0YLQstC+ eWF0 ZXppZXI= IENIVU5L IEFkbGVy L0FkZA== IEtleVZhbHVl IHNwb3PDs2I= U2FtcGxpbmc= Y2hlcnM= X0FNRA== UnU= Lk11c3RDb21waWxl TmF0aW9u QXNzb2M= TWFuYWdpbmc= IEVuZ2w= X0dC IHN1Y2NpbmN0 IGRpc2xpa2Vk IElrZQ== QnVsbGV0aW4= X0FSQ0hJVkU= UHJvcG9zYWw= IGpvZ2dpbmc= LkNSRUFURUQ= IGNob2w= 6KOF jKg= LXB1c2g= IHJlc2VydmE= Y29yZXY= w6h0cmU= VEhS IGluY29tcGV0ZW5jZQ== IGNoYXJpc21h 5oSf ICI9PQ== QlRO IExvY2F0b3I= aXZldA== KCcuJykK IGZvckluZGV4UGF0aA== w7RtZQ== IGNhcGFjaXQ= d2F0ZXJz IFdST05H aG9h IE1JUFM= IGVtaXNz IEphY3F1ZWxpbmU= KGNtcA== IGVlbnM= TGVv LnRpbWluZw== Q0xVU0lPTg== ICgiLQ== 5ZOI LmtvZGU= IFVuZGVydA== IGJld2lsZA== IEVzc2Vu Lmhk IHJlbmVnb3Q= IG1vd2Vy IGxzcA== IHBlbmNoYW50 IG1hbm9l IGFnbGk= IHJlY2Fs IE9QRVJBVElPTg== KF4pKA== IM69 IFNjb3BlZA== IEAiCg== PWxhYmVs W2xvYw== SW50bA== IE56 dGFibGV0 LkNvbHVtbk5hbWU= IHNjcmVlblNpemU= REJ1cw== Y29va2Vk LXJlZ2lzdHJhdGlvbg== 4oCcT25l LW5vbg== IHdpxJlj IGNvc3Rh LmFkZFRhYg== LmNvbmRpdGlvbnM= IEhlc3M= TUVNT1JZ IEF2YWxhbmNoZQ== KCl9fQo= IHRyaXBsZXQ= IGxhYnlyaW50aA== IE5vZGVMaXN0 IE5ZVA== IHllbmk= ZGZm Lkh0bWxDb250cm9scw== QVZJUw== L01hdGg= IG1lbWNtcA== 2KfYoQ== 0L7RgdGM Y3JhcA== KHBhZ2Vz IGx4bWw= IFFEYXRlVGltZQ== X3RjYg== IG9wZW5pZA== IHN5bmFwdGlj IE1ETUE= KHNsdWc= aWdtYXRpYw== ZW5vcg== IGNyYW1wZWQ= R09Q rZA= LmlzRmlsZQ== IERpZmZlcmVudGlhbA== ID0iIjsK CQkJICAgIAk= IENvb2tl CVVGVU5DVElPTg== IHBlcnNldmVyYW5jZQ== UmVsYXRpdmVMYXlvdXQ= SU1QT1JUQU5U IGV4b24= INC+0L0= aWJhc2U= KENPTlQ= bm92YXRpb24= 5L2V W3N1Yg== QWRtaW5Db250cm9sbGVy SFRUUEhlYWRlcg== Y3JlYXI= IE5JUg== IERyb3BEb3duTGlzdA== IHZhbGlkZQ== IGRlaHlkcmF0aW9u Lidd KFdJTg== IC4uLlw= IHBob3Rvc2hvcA== CUluaXQ= X2NvdQ== IHRpbWVab25l ZGFyd2lu cm9tYXRpYw== TmF2aWdhdGlvbkl0ZW1TZWxlY3RlZExpc3RlbmVy YnJhdGVz XS0tOwo= IHRyYWdlZGllcw== IFBlZGlhdHJpY3M= U01BUlQ= LUFQSQ== IE1lc3NhZ2VMb29rdXA= CXZv IHByZWp1ZGljZXM= IG1B VXBz IE1JU1NJTkc= CWFk Q3JlYW0= IFRi IE1vbmE= X2dob3N0 CXR5cGVz RW1i IERvY3VtZW50YXJ5 Jyk7CgoKCg== IGx1cA== X1JlZmVyZW5jZQ== IEJBVENI IGludGVydHdpbmVk PENlbGw= IENhYnI= bmF0aW9u IGlzQ29ubmVjdGVk LnJlbW92ZUxpc3RlbmVy IGNvbmc= X3Rp IFNpbGljb25l IOqysOqzvA== IFdBTg== IEdpYnJhbHRhcg== L3Jlc3BvbnNl CXBlcnNvbg== Y2hhbnRz VklQ ZW1lcmdlbmN5 UGl4ZWxGb3JtYXQ= LUFt IHNvdXRod2VzdGVybg== X3BsbA== aWZlcnM= X09OQ0U= IEZheWV0dGU= Lm5jYmk= X1BhbmVs LlF1YWw= IHBvbHlz IGNyZWF0ZVN0YWNrTmF2aWdhdG9y 77+9dA== IGxheW9mZnM= IEJsYW5jbw== RmVhdA== IFZpbWVv X2NoaQ== X2xpZmV0aW1l UE9JTlRT LHByaXZhdGU= IHVuYmVhcmFibGU= cHJpbnRpbmc= IGNnaQ== LkJBQ0s= IGludGVybnM= IE5ld2x5 aW5mZWxk KElC IEthdGE= IERlZmVuZGFudHM= VGhy 6aKE X1ZG RkZGRkZGRkY= IGRhdmlkamw= IGJpdHRlcmx5 U3VnZ2VzdGlvbnM= LnNldENhbmNlbGFibGU= RklOQUw= YXNvbnM= X3J3bG9jaw== X1dSQVBQRVI= IGhhcHBpZXN0 KHJvd0luZGV4 w7NzaXRv VE9UWVBF QXV0b21hdGlvbg== TG9nRmlsZQ== IGNvbnNvbGF0aW9u 44OA IHTDqm0= IHByZXI= cmd5eg== IEdlZw== CWR0bw== LmRlZmF1bHRWYWx1ZQ== IEthbWk= IEFTRQ== b3B0aW1pemVk IO2PrA== IG9yaWdpbmF0ZXM= ZXJyTXNn IGVzcGHDp28= KFNZUw== IE1jQg== ZGFuY2U= X2RldGVjdGVk IGZyw7w= CQkgICAgCQk= PERhdGU= KGNvbWI= IERlY2lkZQ== XEZpZWxk IFByb3Bvc2Vk Umli IGRpc2xpa2Vz IFdpZW4= CURvY3VtZW50 IHRyYWY= IHN0b3JpYQ== IFRlbGxz Jyk9PQ== Q3Jp KFZBTFVF IEJ1cm5ldHQ= LHZvaWQ= IGRhbmg= IGNjcA== QmxvY2tjaGFpbg== OiItImAK SUNsaWVudA== SVNPREU= SXNzdWVy KX0NCg== LGJ1dA== IFVwaA== KFN1Yg== IHTDqWzDqXBob25l IG9uRGF0YUNoYW5nZQ== IG1hcnNoYWxsZXI= LWFuYWx5dGljcw== LGNvbnRlbnQ= IGRlYmFjbGU= X1ZhbHVlQ2hhbmdlZA== IGZhdW5h ICM9Pg== IGZveWVy J3V0aWxpc2F0aW9u IE3DvGxsZXI= IEZldGlzaA== IGRlZmF1bHRNYW5hZ2Vy IGJhY2t0cmFjaw== QmFo RXhwbGljaXQ= X0FTQ0lJ IG1BY3Rpdml0eQ== KE1zZw== IOqyjA== IFRFUk1T IEFuZ2ll SFNW IE1vc3F1ZQ== Lk5hbWVz 7Yq8 cmVzdGU= X3Bhcm1z IGdhcGluZw== IGNyb3BwaW5n RGF0YUZyYW1l IHJlc3BvbnNpdmVuZXNz X3VuZG8= X3RyYW4= LnRlcm1pbmF0ZQ== IGl0YWxpYW5l IHdhbGt0aHJvdWdo IGF0dHJhY3RpdmVuZXNz 0LTQtQ== X1NUUw== X2xlYXJu IGNob2NvbGF0ZXM= aWVyYXJjaGljYWw= LXRoaW5raW5n ICkpKQ== aXNobWVudHM= LkxvZ2Y= IFRNWg== IENhbmFyeQ== Zm9pbA== IFZhY2NpbmU= LnZ4 IFN1cnJvdW5k SW50ZXJtZWRpYXRl IGlvdg== dmFpcw== JzsiOwo= 772eCgo= 6YCB5paZ 4oCmaXQ= U2VhdHM= Q2xhcg== V2Fycw== IEh1dGNoaW5zb24= IEhhc2Fu IScpCgo= IFJpY2hpZQ== Y2hlaWRlbg== KCQoJw== WW9yaw== IGxpZHM= IGFscGhhbnVtZXJpYw== IEdsb2Nr LnNoYXBlcw== IHNwYXJraW5n X2Vwc2lsb24= dXBsaWNhdGVk LmRpcnR5 XSk9PQ== IOychOy5mA== IHNjbg== IC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq X1BSRVZJRVc= X0hD aWVsZGluZw== ZmdldHM= IEFkZGlzb24= IHByb2R1Y3RTZXJ2aWNl LWZpZ3VyZQ== KHJldHZhbA== emFubw== IGF1dG9i CXNk X251bWVy IFNldExhc3RFcnJvcg== IEZpb3I= aWZpY2FuY2U= VW50aXRsZWQ= IGluZmllbGQ= IHt9KSk7Cg== IHNwYWM= IHJvb2tpZXM= KGRlc2NyaWJpbmc= bmdlbg== 4K6/4K4= LnJkZg== Lk11dGV4 IGtuZWVsaW5n IFFF c2V0TWF4 UmVhZFN0cmVhbQ== IHZlbnRhcw== c3V0 Y21wZXE= LldyaXRlQWxsVGV4dA== IEV4cGVyaWVuY2Vk JF9f IGthdW0= IExJUw== IGRvY3VtZW50b3M= X0hFQUxUSA== aWNvbnRhaW5z IGFydGlzYW5z T1dORVI= IGJsaW5rZWQ= Z2V0RGlzcGxheQ== IHRvZW4= IHJvd051bQ== IGF2cmls IGludmlz IEtlYXI= dG9CZUluVGhlRG9jdW1lbnQ= YXB1cg== IHJhY2tlZA== IE1jTWFzdGVy X0FUVFJJQg== SGF6 IGZhY3R1cmE= L3Rz INGA0LDQt9C80LXRgA== IHpm IHNob3J0ZmFsbA== LmZhc3Rh IENPTlNUQU5U Lm1hbmFnZWQ= Z2Vtcw== U2hhcmVkUG9pbnRlcg== IGJsdXJyeQ== YnJpZ2h0bmVzcw== KGNvbXBvbmVudHM= IC4uLiIKCg== U0VMTA== IElsbHVzdHJhdG9y LmdldENoYW5uZWw= IHRyb3V2w6k= eXN0ZXJz IHZvaXM= IExpbmRlbg== IGVtb2ppcw== IGJyYXds IE1TUg== IEVsbw== IENyb2F0aWFu UG9wdXBNZW51 TGV3aXM= LkpXVA== IGFzdG9uaXNoZWQ= QnVzaA== KGl0ZW1JZA== IGRldGFjaG1lbnQ= IEVuY29yZQ== 5bCU IHJla2w= IGNyYW0= KSQv LmdldEhvc3Q= X3JlY29tbWVuZA== LUhU X2NhbGlicmF0aW9u QXV0aGVudGljYXRl LmZpcmViYXNlYXBw VU5JWA== CUNhbWVyYQ== IEhFQVA= SWRlYWw= Lm9mZmljZQ== IGdvb2Z5 KFN5bWJvbA== IGpvdWVy X3BhcnRpdGlvbnM= IHJhcGlkZW1lbnQ= IEdOVU5FVA== aWRVc2Vy IHN1cGVydmlzZQ== KENvbnRhY3Q= QVdO 44GY IG5hYW0= IGF1c3Q= 5Zyo57q/ X3NvZnRtYXg= QWxsb3dBbm9ueW1vdXM= YW1tYWJsZQ== Uk9VVEU= KkQ= IGFkZW4= IENyaXN0aW5h IENyaXN0aWFubw== IGJsb29kc3RyZWFt c3ViY2xhc3M= X3BlcnNvbmE= Q0hJTEQ= LWtub3c= IG5hdmlnYXRpb25PcHRpb25z IFp1a3VuZnQ= IFBpeGFy VHlsZXI= IHVuZGVyd29ybGQ= IHNpbmNlcml0eQ== IGRpc3BlbnNlcg== IGt0ZXI= aWRkZXJz LmFkZE5vZGU= LWNoZWNrZWQ= IGtleXN0 IFdUTw== LnNpZ25hbHM= IGFkdmVudHVyZXI= IFBhbmc= XFI= PXBvcw== IGRpc3BlbnNhcmllcw== IENsb3NldA== KCJ7XCI= aWRlb24= IG7DqWNlc3NhaXJl KCkiCg== X1JFQ0VJVkVE IHLDqXN1bHRhdHM= IG1vZGVu IEljZWxhbmRpYw== O2Q= LmFsbG93ZWQ= KG5ld1VzZXI= IG1lcmNpbGVzcw== LldhaXRGb3I= IGRheWNhcmU= IENvbnZleW9y"};function VVI(I,l){switch(I){case"gpt2":return new Lr(sVI,l);case"r50k_base":return new Lr(pVI,l);case"p50k_base":return new Lr(uVI,l);case"p50k_edit":return new Lr(hVI,l);case"cl100k_base":return new Lr(oVI,l);default:throw new Error("Unknown encoding")}}function iVI(I,l){return VVI(mVI(I),l)}const mG={};typeof window<"u"&&(window.llamaTokenizer=mG);const Cj=function(I){return atob(I)},Mj=function(I,l){return mG.vocabById[I]+" "+mG.vocabById[l]},FVI=function(I){const l=Cj(I),c=new Uint8Array(l.length);for(let d=0;dG.charCodeAt(0));return new TextDecoder("utf-8").decode(l).split(` -`)},Yk=I=>`<0x${I.toString(16).toUpperCase().padStart(2,"0")}>`,RVI=I=>{const l=I.replace(/<0x|>/g,"");return parseInt(l,16)},fj=new TextEncoder,YVI=new TextDecoder("utf-8");class XVI{constructor(l=(c,G)=>c>G){this._heap=[],this._comparator=l}size(){return this._heap.length}isEmpty(){return this.size()==0}peek(){return this._heap[0]}push(...l){return l.forEach(c=>{this._heap.push(c),this._siftUp()}),this.size()}pop(){const l=this.peek(),c=this.size()-1;return c>0&&this._swap(0,c),this._heap.pop(),this._siftDown(),l}replace(l){const c=this.peek();return this._heap[0]=l,this._siftDown(),c}_parent(l){return(l+1>>>1)-1}_left(l){return(l<<1)+1}_right(l){return l+1<<1}_greater(l,c){return this._comparator(this._heap[l],this._heap[c])}_swap(l,c){[this._heap[l],this._heap[c]]=[this._heap[c],this._heap[l]]}_siftUp(){let l=this.size()-1;for(;l>0&&this._greater(l,this._parent(l));)this._swap(l,this._parent(l)),l=this._parent(l)}_siftDown(){let l=0;for(;this._left(l){const G=[];l&&G.push(1),c&&(I=" "+I);const e=I.replaceAll(" ",mG.vocabById[29871]),d=Array.from(e);for(let t=0;t=0||(console.log("Encountered unknown character "+n+" (partial UTF-8 byte "+b[a]+" + hex + "+Yk(b[a])+")"),G[G.length-1]=0)}}}return G},Kj=(I,l=!0,c=!0,G=!1)=>{let e=null;if(G&&(e=performance.now()),!mG.vocabById||!mG.vocabByString||!mG.merges){console.log("Tokenizer not initialized properly!");return}if(I.length===0)return[];const d=HVI(I,l,c),t=new XVI((W,m)=>W.mergePrio")){const W=RVI(Z);G.push(W)}else fj.encode(Z).forEach(m=>G.push(m))}const d=new Uint8Array(G),n=YVI.decode(d).replaceAll(mG.vocabById[29871]," ");return c?n.slice(1):n};function QVI(){function I(c,G){return c.length===G.length&&c.every(function(e,d){return e===G[d]})}function l(c,G){const e=Kj(c,!0,!0,!0);if(!I(e,G))throw`Test failed. LLaMA Tokenizer Encoder returned unexpected result: expected tokenize(${c}) === ${G}, actual was: ${e}`;if(c!==Hw(e))throw`Test failed. LLaMA Tokenizer Decoder returned unexpected result: expected decode(${e}) === ${c}, actual was: ${Hw(e)}`}return l("grabbed",[1,2646,1327,287]),l(" grabbed",[1,29871,2646,1327,287]),l(" grabbed",[1,9651,2646,1327,287]),l(` -`,[1,29871,13]),l(` -`,[1,259,13]),l(" tabs out here",[1,29871,12,21175,12,12,12,12,449,1244]),l(`ax -#### -boo`,[1,4853,13,4136,13,833,29877]),l("镇",[1,29871,30411]),l("🦙",[1,29871,243,162,169,156]),l("🦙Ꙋ",[1,29871,243,162,169,156,237,156,141]),l("Ꙋ🦙",[1,29871,237,156,141,243,162,169,156]),l('The llama (/ˈlɑːmə/; 🦙Spanish pronunciation: [ˈʎama]) (Lama glama) is a domesticated South American camelid, widely used as a meat and pack animal by Andean cultures since the Pre-Columbian era. Llamas are social animals and live with others as a herd. Their wool is soft and contains only a small amount of lanolin.[2] Llamas can learn simple tasks after a few repetitions. When using a pack, they can carry about 25 to 30% of their body weight for 8 to 13 km (5–8 miles).[3] The name llama (in the past also spelled "lama" or "glama") was adopted by European settlers from native Peruvians.[4] The ancestors of llamas are thought to have originated from the Great Plains of North America about 40 million years ago, and subsequently migrated to South America about three million years ago during the Great American Interchange. By the end of the last ice age (10,000–12,000 years ago), camelids were extinct in North America.[3] As of 2007, there were over seven million llamas and alpacas in South America and over 158,000 llamas and 100,000Ꙋ🦙 alpacas, descended from progenitors imported late in the 20th century, in the United States and Canada.[5] In Aymara mythology, llamas are important beings. The Heavenly Llama is said to drink water from the ocean and urinates as it rains.[6] According to Aymara eschatology, llamas will return to the water springs and lagoons where they come from at the end of time.[6]',[1,450,11148,3304,20374,30176,29880,30426,30215,29885,30184,29914,29936,29871,243,162,169,156,15495,728,11504,11173,362,29901,518,30176,31743,3304,2314,313,29931,3304,3144,3304,29897,338,263,21849,630,4275,3082,3949,295,333,29892,17644,1304,408,263,27654,322,4870,13019,491,1126,29872,273,4185,1973,1951,278,4721,29899,1625,3774,713,3152,29889,365,5288,294,526,5264,15006,322,5735,411,4045,408,263,902,29881,29889,11275,281,1507,338,4964,322,3743,871,263,2319,5253,310,10906,22878,7226,29906,29962,365,5288,294,508,5110,2560,9595,1156,263,2846,21159,2187,29889,1932,773,263,4870,29892,896,508,8677,1048,29871,29906,29945,304,29871,29941,29900,29995,310,1009,3573,7688,363,29871,29947,304,29871,29896,29941,2383,313,29945,29994,29947,7800,467,29961,29941,29962,450,1024,11148,3304,313,262,278,4940,884,805,14356,376,29880,3304,29908,470,376,3820,3304,1159,471,16356,491,7824,3604,9306,515,7531,25493,1403,550,7226,29946,29962,450,19525,943,310,11829,294,526,2714,304,505,3978,630,515,278,7027,13494,1144,310,4644,6813,1048,29871,29946,29900,7284,2440,8020,29892,322,17602,9725,630,304,4275,6813,1048,2211,7284,2440,8020,2645,278,7027,3082,4124,3167,29889,2648,278,1095,310,278,1833,14890,5046,313,29896,29900,29892,29900,29900,29900,29994,29896,29906,29892,29900,29900,29900,2440,8020,511,3949,295,4841,892,1294,5562,297,4644,6813,7226,29941,29962,1094,310,29871,29906,29900,29900,29955,29892,727,892,975,9881,7284,11829,294,322,394,29886,562,294,297,4275,6813,322,975,29871,29896,29945,29947,29892,29900,29900,29900,11829,294,322,29871,29896,29900,29900,29892,29900,29900,29900,237,156,141,243,162,169,156,394,29886,562,294,29892,5153,2760,515,410,1885,17259,19673,5683,297,278,29871,29906,29900,386,6462,29892,297,278,3303,3900,322,7400,7226,29945,29962,512,319,962,2518,22082,3002,29892,11829,294,526,4100,367,886,29889,450,22977,368,365,29880,3304,338,1497,304,13748,4094,515,278,23474,322,5065,262,1078,408,372,1153,1144,7226,29953,29962,7579,304,319,962,2518,831,13496,3002,29892,11829,294,674,736,304,278,4094,7689,886,322,301,4425,787,988,896,2041,515,472,278,1095,310,931,7226,29953,29962]),console.log("LLaMA Tokenizer tests passed successfully."),!0}function wVI(){mG.encode=Kj,mG.decode=Hw,mG.runTests=QVI,mG.vocabById=NVI(EVI),mG.vocabByString=new Map,mG.vocabById.forEach((I,l)=>{mG.vocabByString.set(I,l)}),mG.merges=FVI(vVI)}const EVI="PHVuaz4KPHM+Cjwvcz4KPDB4MDA+CjwweDAxPgo8MHgwMj4KPDB4MDM+CjwweDA0Pgo8MHgwNT4KPDB4MDY+CjwweDA3Pgo8MHgwOD4KPDB4MDk+CjwweDBBPgo8MHgwQj4KPDB4MEM+CjwweDBEPgo8MHgwRT4KPDB4MEY+CjwweDEwPgo8MHgxMT4KPDB4MTI+CjwweDEzPgo8MHgxND4KPDB4MTU+CjwweDE2Pgo8MHgxNz4KPDB4MTg+CjwweDE5Pgo8MHgxQT4KPDB4MUI+CjwweDFDPgo8MHgxRD4KPDB4MUU+CjwweDFGPgo8MHgyMD4KPDB4MjE+CjwweDIyPgo8MHgyMz4KPDB4MjQ+CjwweDI1Pgo8MHgyNj4KPDB4Mjc+CjwweDI4Pgo8MHgyOT4KPDB4MkE+CjwweDJCPgo8MHgyQz4KPDB4MkQ+CjwweDJFPgo8MHgyRj4KPDB4MzA+CjwweDMxPgo8MHgzMj4KPDB4MzM+CjwweDM0Pgo8MHgzNT4KPDB4MzY+CjwweDM3Pgo8MHgzOD4KPDB4Mzk+CjwweDNBPgo8MHgzQj4KPDB4M0M+CjwweDNEPgo8MHgzRT4KPDB4M0Y+CjwweDQwPgo8MHg0MT4KPDB4NDI+CjwweDQzPgo8MHg0ND4KPDB4NDU+CjwweDQ2Pgo8MHg0Nz4KPDB4NDg+CjwweDQ5Pgo8MHg0QT4KPDB4NEI+CjwweDRDPgo8MHg0RD4KPDB4NEU+CjwweDRGPgo8MHg1MD4KPDB4NTE+CjwweDUyPgo8MHg1Mz4KPDB4NTQ+CjwweDU1Pgo8MHg1Nj4KPDB4NTc+CjwweDU4Pgo8MHg1OT4KPDB4NUE+CjwweDVCPgo8MHg1Qz4KPDB4NUQ+CjwweDVFPgo8MHg1Rj4KPDB4NjA+CjwweDYxPgo8MHg2Mj4KPDB4NjM+CjwweDY0Pgo8MHg2NT4KPDB4NjY+CjwweDY3Pgo8MHg2OD4KPDB4Njk+CjwweDZBPgo8MHg2Qj4KPDB4NkM+CjwweDZEPgo8MHg2RT4KPDB4NkY+CjwweDcwPgo8MHg3MT4KPDB4NzI+CjwweDczPgo8MHg3ND4KPDB4NzU+CjwweDc2Pgo8MHg3Nz4KPDB4Nzg+CjwweDc5Pgo8MHg3QT4KPDB4N0I+CjwweDdDPgo8MHg3RD4KPDB4N0U+CjwweDdGPgo8MHg4MD4KPDB4ODE+CjwweDgyPgo8MHg4Mz4KPDB4ODQ+CjwweDg1Pgo8MHg4Nj4KPDB4ODc+CjwweDg4Pgo8MHg4OT4KPDB4OEE+CjwweDhCPgo8MHg4Qz4KPDB4OEQ+CjwweDhFPgo8MHg4Rj4KPDB4OTA+CjwweDkxPgo8MHg5Mj4KPDB4OTM+CjwweDk0Pgo8MHg5NT4KPDB4OTY+CjwweDk3Pgo8MHg5OD4KPDB4OTk+CjwweDlBPgo8MHg5Qj4KPDB4OUM+CjwweDlEPgo8MHg5RT4KPDB4OUY+CjwweEEwPgo8MHhBMT4KPDB4QTI+CjwweEEzPgo8MHhBND4KPDB4QTU+CjwweEE2Pgo8MHhBNz4KPDB4QTg+CjwweEE5Pgo8MHhBQT4KPDB4QUI+CjwweEFDPgo8MHhBRD4KPDB4QUU+CjwweEFGPgo8MHhCMD4KPDB4QjE+CjwweEIyPgo8MHhCMz4KPDB4QjQ+CjwweEI1Pgo8MHhCNj4KPDB4Qjc+CjwweEI4Pgo8MHhCOT4KPDB4QkE+CjwweEJCPgo8MHhCQz4KPDB4QkQ+CjwweEJFPgo8MHhCRj4KPDB4QzA+CjwweEMxPgo8MHhDMj4KPDB4QzM+CjwweEM0Pgo8MHhDNT4KPDB4QzY+CjwweEM3Pgo8MHhDOD4KPDB4Qzk+CjwweENBPgo8MHhDQj4KPDB4Q0M+CjwweENEPgo8MHhDRT4KPDB4Q0Y+CjwweEQwPgo8MHhEMT4KPDB4RDI+CjwweEQzPgo8MHhEND4KPDB4RDU+CjwweEQ2Pgo8MHhENz4KPDB4RDg+CjwweEQ5Pgo8MHhEQT4KPDB4REI+CjwweERDPgo8MHhERD4KPDB4REU+CjwweERGPgo8MHhFMD4KPDB4RTE+CjwweEUyPgo8MHhFMz4KPDB4RTQ+CjwweEU1Pgo8MHhFNj4KPDB4RTc+CjwweEU4Pgo8MHhFOT4KPDB4RUE+CjwweEVCPgo8MHhFQz4KPDB4RUQ+CjwweEVFPgo8MHhFRj4KPDB4RjA+CjwweEYxPgo8MHhGMj4KPDB4RjM+CjwweEY0Pgo8MHhGNT4KPDB4RjY+CjwweEY3Pgo8MHhGOD4KPDB4Rjk+CjwweEZBPgo8MHhGQj4KPDB4RkM+CjwweEZEPgo8MHhGRT4KPDB4RkY+CuKWgeKWgQriloF0CmVyCmluCuKWgWEKZW4Kb24K4paBdGgKZXMK4paB4paB4paB4paBCuKWgXMK4paBZAphdApvcgphbgriloFjCmlzCnJlCml0CuKWgXRoZQphcgpsZQriloF3CuKWgXAKb3UKYWwK4paBZgriloFtCmVkCuKWgW8K4paBYgpvbQppb24KaW5nCmljCmFzCmVsCmVudAriloFpbgriloFoCm5kCmV0CuKWgWwK4paBbgpzdAriloF0bwpjaAriloFJCnJvCuKWgeKWgeKWgeKWgeKWgeKWgeKWgeKWgQppbAriloFvZgpkZQpjdAriloEoCmFtCuKWgUMK4paBZGUK4paBUwriloF1CuKWgUEK4paBXAriloFlCuKWgWFuZAriloFUCm9sCuKWgXYKaW0Kb3QKYWQKdXQK4paBZwplbQp1cgppZAriloEqCmlnCnJhCuKWgXJlCuKWgWlzCnF1Cm93CuKWgU0KZXN0CuKWgXkKc2UKdmUKY2UKaWUKdW4K4paBUAriloFCCmFnCnVsCuKWgT0KaGUKZW5kCm9kZQp0ZXIKbWVudApvcwriloFECmlmCmF0aW9uCuKWgWZvcgriloFyCuKWgUwK4paBeW91CuKWgWJlCmx5CnZlcgphYgp0ZQriloFpdAriloFvbgpyaQp1cwriloEiCuKWgXdoCuKWgWNvbgriloFICuKWgXN0CmlyCuKWgUUK4paBRgpjawriloFhbgp0aAplZwpheQppdGgK4paBUgppc3QKYW5kCuKWgXRoYXQK4paBYWwK4paBJAriloEjCm9kCnVtCuKWgVcKaHQKY29kZQriloFHCmF0ZQplc3MK4paBTgplcmUKcHAK4paBYXMK4paBc2UK4paBcHJvCuKWgXdpdGgKcGUK4paBawplcnMKcHQKKTsKbG8K4paB4paB4paB4paB4paBCuKWgWNvbQphbWUK4paBYAriloFDb20KaWEKYW50CuKWgWxhCuKWgXsK4paBZW4KY3Rpb24K4paBZXgKbGQKdWIK4paBagpsYQp1ZQriloFKCmljaAriloFkbwriloFPCuKWgXF1Cml2Cm9ydAphcnQK4paBdW4K4paBIyMK4paBdGhpcwprZQriloFoYQriloEtCm91dAriloFUaGUK4paBbm90CuKWgW5lCmlsbAriloFsZQpjaQpyb20KaW5lCi8vCm9wCmVnaW4K4paBQ29tbWVudAriloHiloHiloHiloHiloHiloHiloHiloHiloHiloHiloHiloHiloHiloHiloHiloEKYmVnaW4K0YHRggphc3MKaXoKKS4Kb2cK4paB0L8K4paBb3IK4paBd2FzCuKWgWF0Cm91cgriloFpCmFpbgriloFLCtC90LAK4paBVgpnZQriloFzdQphcAphZ2UKb3VsZApuZQphdgp4dApvcmUKaWxlCi0tCuKWgdCyCuKWgWJ5CmxpCmF0aArRgNCwCmJlcgphY2gKYWxsCuKWgVRoCnVsdAriloF9CuKWgVUK4paBdXMK4paBegp1c3QK4paBaGF2ZQpsaWMK0L3QuAriloFjYW4KdHIKY29tCiksCuKWgUluCmluZAplbGwK4paBZnJvbQrQvtCyCnRvCuKWgVsKYWJsZQpvc3QK4paBY2gKZWN0CmlnaHQKaW50CuKWgScK4paBYXJlCuKWgWltCuKWgXNoCuKWgTwK4paBQW4K4paB0YEKYXRhCmlyZQriloF0cgpjb24Kb3JkCml0eQphcmQK4paB4paB4paB4paB4paB4paBCuKWgWhlCuKWgWJ1dApvYwo9IgriloFwcgp1cmUKcGVyCmFjawpvcmsKb25nCmFucwrQutC+CnBsZQriloFkZXMKb2sKb3JtCndlcgphawpwcgphc2UK4paBZWwKcGgKYWMK4paBdW5kCuKWgWFyCuKWgWlmCnVkCnBzCml0ZQpibGUK0L3QvgpmZXIKcGwKaXZlCmFuZwplbnMK0YDQvgriloFzbwpzbwphc3QKKCkKc3dlcgpydQppZXMK4paBOgphdQpvdgrRgNC1CtCz0L4K4paBZGVyCuKWgW15CuKWgXdlCuKWgW1lCm50CuKWgWFkCnVybgriloF5b3VyCjovLwphcmUK4paBYWxsCmZmCmlvCmVzdGlvbgppbWUK4paBZXIKbGFzcwriloHQuAriloF3aGljaApvbWUKb250CuKWgXBhcgriloFtYQriloFZCiIsCuKWgdC+CmZ0CmlhbApjYwpvdW5kCuKWgWxpCuKWgXJlcwpldGgKamVjdAriloFhcHAK4paBU3QKaWNlCuKWgWFtCmFjdAriloFkZWwKZ3IKYXRlZAppZXIK4paB4paB4paB4paB4paB4paB4paB4paB4paB4paB4paB4paBCuKWgWFiCuKWgWV0CmFsbHkKLi4KcG9ydAppawriloFwZXIK4paBY29udArRgNC4CtC60LAKc2VyCtC70LgKbGwKaWV3CmlnbgpfewpwdXQKb25lCnVuY3Rpb24K4paBZGkKYXJ5Cml0aW9uCm1hCtC10L0KZ2V0CuKWgWxvCuKWgXZhbAriloFRCnJhbgriloHQtAplbmNlCuKWgXdvcmsK4paB0L3QsAppcAppdGVtCnlwZQriloEmCuKWgWhpcwriloF1c2UKZGVyCuKWgUFuc3dlcgriloF3aWxsCml6ZQrRgtCwCmxvdwriloFDaAriloFnZXQKaWRlCm91cwppbmsKcHRpb24K0LvQsAp0dXJuCnVuZwplYwp1Zwpmb3JtCnJlcwpodHQKb3VnCtC70YwK4paBbm8KY2wK4paBcm8K4paBb25lCnR0CmNyaQpkdQriloF1cArRgtC+CigiCuKWgW9iCndlCm9yeQriloFlc3QKZXJ5CmllbApzdHIKb2IK4paBcXVlCmlhbgriloFvdXQK4paBcGwK4paBbmV3CtC60LgK4paBKwpyeQpvdGgKdGhlcgriloF2YXIK4paBd291bGQK4paBc2VyCnRlcm4KdGV4dAriloF0aGVyZQppc2gKcm9yCtGC0LUK4paBc2V0CuKWgUAK4paB0L/QvgriloF0ZQpleAriloFyZXR1cm4KYWlsCuKWgWFueQriloFJdAriloFmdW5jdGlvbgp7XAonLArDqXMKYWxlCtCw0L0K4paBd2hlbgppYgriloFnbwphbmNlCuKWgWhhZAriloFRdQriloFjb21wCtC70LUK4paB0LcKbWF0aAriloFoYXMK4paB0LwK4paBcHJlCmVuZXIK4paBcGFydAplbGYK4paBZGllCuKWgWxpa2UKcmF5Cmlyc3QK4paBZGlzCuKWgW1hbgpyaXQK4paBdGhlbgriloFjbGFzcwpwcm8K4paBcG8K4paBdXNpbmcKZWIK4paBY29kZQpvd24K4paBc29tZQpjZXMK4paBJFwK0LXRgApsZWN0CuKWgWF1CmlzY2gK4paBY29sCuKWgeKAkwp1cApvbnMK4paBYWRkCmlsZAppc3MKdmFsCm91bnQKbGVzCnZlbnQK4paB4paB4paB4paB4paB4paB4paB4paB4paB4paB4paB4paB4paBCuKWgVoKSW4Kcm93CmVhcgphdGlvbnMKYWgKcXVlCnVibGljCmFuawriloFzcAriloFXaAotLS0tCnNrCmV3CmFncwrRgtC4CmFubgriloHigJQKZXJ0CmFjZQpzY2gK4paBbmVlZAriloHDoAppZW4Kb3VnaArQvdC1CuKWgWRlZgppagplcm4K4paBd2hhdAriloFBcgp3bwptbAo8LwriloFSZQriloFlcwriloFpbnN0CmJvCmF6CuKWgSMjIwriloHQsQplcm0K4paBQWwKbGVkCtC00LAKdGVuCnNldArQu9C+CuKWgWNvbW0Kc2gK0LLQsAriloEvCuKWgWRhdGEK4paBLy8KXSgK4paBc3RyCm9zZQriloFVbgp2ZW4KU3QKLi4uCuKWgdChCnlzdAriloHCqwppY2sKaXgKcGFyCuKWgdGDCuKWgXdhbnQKbmcKb3RlCuKWgWdyCuKWgWR1CuKWgS4KdW5kCuKWgW9ubHkK4paBc2EKZWx5CnZlcnMK4paBZW50CikpCignCuKWgW1vZAphdmEKdG9uCuKWgXNob3VsZAplbWVudAriloFmb3JtCuKWgWFsc28K4paBc2MKaW5ncwriloFZb3UKw7NuCuKWgWtuCigpOwriloF8CuKWgXdlcmUKc3MK4paBUXVlc3Rpb24KaXNlCuKWgXRoZXkK4paBRGUKb25kCuKWgXNvbAriloFmb2wK4paBbW9yZQriloFoZXIK4paBXwriloHDqQphdGNoCmZ0ZXIK4paBY3JlCmxvY2sKdHJpbmcK4paBVGhpcwp6ZQphZG8KdWxsCmdlcgpiZQriloFvdGhlcgriloFUYWdzCnV0aW9uCmljdAriloFob3cK4paBeAriloFTZQriloFjaGUKY3JpcHQK4paBanVzdAriloFwb3MKYW5nZQppZmljCnJlZQp9fQriloF0aW1lCmFwcArQvdGLCuKWgWZpbGUKYXJrCmljYWwK4paBZmlyc3QK4paBaW50CuKWgdCSCuKWgUhlCnRhCnVtZW50Cm9ycwpsZW1lbnQKcmFjCuKWgWFnCuKWgWRvZXMKeW4KcmVhZAp1YWwK4paBTGUKeXMK4paBZW0K4paBbnVtCnZlbArQtNC4Cm92ZXIK4paBZGlmCmV0aG9kCuKWgUlmCuKWgXNwZQp5bQriloF0aGVtCuKWgWludG8K4paB4paB4paB4paB4paB4paB4paB4paB4paB4paBCuKWgWxlcwriloFpdHMKZXNlCmllbGQK4paBcHVibGljCuKWgdCfCuKWgWRlbgp5c3RlbQpvZgriloFvdmVyCi0+CuKWgWZpbApuYW1lCmluYWwK4paBaWwKYW1wbGUK4paBd2F5CmljYQrQstC+CmNlc3MKaXR0CnVjaAriloF3aGVyZQrQvNC4Cm9yZwpodHRwcwriloF2bwppZW50Cm92ZQriloF2YWx1ZQplbmcK4paBTGEKXnsKcmVmCmllZApFUgriloFzdGF0CmZpZwptZQriloF2b24K4paBaW50ZXIKcm9pZAphdGVyCuKWgXRoZWlyCuKWgWJldAriloFlaW4KfVwKIj4K4paBc3ViCuKWgW9wCuKWgWRvbgp0eQriloF0cnkK4paBUHJvCuKWgXRyYQriloFzYW1lCmVwCuKWgXR3bwriloFuYW1lCm9sZApsZXQK4paBc2ltCnNwCuKWgWF2CmJyZQpibGVtCmV5CuKWgWNvdWxkCuKWgWNvcgriloFhY2MKYXlzCmNyZQp1cnIKc2kK4paBY29uc3QKdWVzCn0kClZpZXcK4paBYWN0CuKWgWJvCuKWgdC60L4K4paBc29tCuKWgWFib3V0CmxhbmQKbWVyCuKWgWxpc3QKY2FsCuKWgWltcG9ydApjb2wK4paBbmEKbmEKOjoK4paBd2hvCuKWgWVycm9yCuKWgVgKYXRvcgpleHQK4paBYmVlbgrDqXIK4paBcnVuCnBvcwriloFjbAoqKgriloHQmgp1bGFyCmF1c2UK4paBcmVnCuKWgWtub3cK4paBc2VlCuKWgWhpbQpuaW5nCuKWgdC30LAKYXRlcwpmb3JlCmlvbnMK4paBaGVsCnV0ZQriloFyZW0K4paB0LPQvgriloFNYXIK0YDRgwp2aWNlCmlyZWN0Cm5lcgriloF1bmRlcgpyaWIKaHIK0YfQtQriloFBcwriloFlbmQKZW1iZXIK4paB0LAK4paBYXR0CmluYQpzb24K4paBZm9sbG93CuKWgVNjaApwZWN0CuKWgXJlbAriloFTbwriloFsb29rCmFiZWwK4paBcHJvYmxlbQriloF2YW4Kc3Ryb25nCmNvCnBvbgpjYQphZGEKIjoKY29uZAphbWIKfSwKcXVlc3QK4paBYXV0CuKWgXJlc3VsdAriloFtYXkKUmUKaHR0cAopOgriloFBbmQKcmVkCuKWgUhvdwpwbwrRgdC60L4KYXR0Cm91cApjZWQK4paBdHlwZQriloF0aGFuCuKWgWNvbnMKdWYK0YbQuAriloFxdWVzdGlvbgpyYXBoCmlnaAriloHQnAriloFodHQKaW5zCmRlbgriloFkYQriloF2ZXIKb2gK4paBPT4Kcml2CnVkZQriloFGb3IK4paBcmEKZnJhYwrQvNCwCuKWgWFmdGVyCn17CuKWgW1ldGhvZAoiKQphbXAKYXNoCuKWgXJlYwriloFkaWZmZXIKT04KYXgKYW1lbnQKb3VyY2UKQ29uCml0cwpOYW1lCm1hbgriloFiZWMKY2hlCuKWgUVuCmFqCuKWgWdlbmVyCklOCuKWgWlkCmFnZXMK4paBbG9jCmZvCmJyCuKWgXNoZQpQcm8K4paBdW5hCuKWgdC6CmV0YQpsb2cKb2xvZwriloFzdXIKYXJnCuKWgS0tCmt0CihcCm1pbgriloFsaW5lCuKWgXZhcmkK0YHRjwppY3MK0L3Rjwp2ZXJ5CmFkZAriloFvYmplY3QKSWQK4paBQnV0CuKWgWNhc2UK4paBbWFrZQriloFjYWwK4paBcGFzcwrRgdGMCmVzc2lvbgpuZXQKLiIK4paB0LMKw6RyCtC00LUKbm8KYXRpbmcKYXRvCmxpbmUK0LLQuAriloFFeAriloFhc3MK4paBdmVycwrQu9GPCuKWgWVkCnVtbgpvdGhlcgrRgdGC0LAKYXRpdmUKU3RyaW5nCuKWgWxvcwp3bgriloFhbnN3ZXIK4paBbGV0CuKWgXBlCmVudHMK4paBZmUKaW5jZQpuaQppZGVyCm93cwriloF0ZXN0CuKWgWhlcmUKcm9sbAriloFjYWxsCnJ1Y3QK4paBcG9sCmFpdAriloFiYWNrCmhvCkV4CnJlc3MKU1QKcmllZApkYXRlCtC10YIK4paBZGlkCnRpbmcK4paBRWwK4paBZGVtCikkCtC+0LLQsAp1cnJlbnQKbGFjZQpyaWdodApyZW4K0L/QvgriloFlYWNoCmN5CmJsb2NrCmRhdGEK4paBJQriloFhYwriloE9PQrDvHIK4paBcG9yCmFzawphcmNoCmFtZXMK4paBQ29uCtGH0LAK4paBb2ZmCuKWgWZpbmQKY29udAriloFub3cKd29yawphdGlvbmFsCmRkCmNpw7NuCuKWgdCQCmF1bHQKTGlzdAriloFleHQKdXJzCmFrZQp1bGUK4paBcG9pbnQKQVQKYXV0CuKWgXRyYW5zCuKWgWNvCuKWgXJlYWQK4paBdXNlZArRgdC60LgKYXJpCkxFCmV0ZXIKb3VuCmV2ZXIKc2VsZgppbmVkCmlkdGgKdXgKanMK4paBc3VjaAriloFJcwrDqWUKZnVsCuKWgWRpc3QK4paBYnUKaXRlbWl6ZQpDb250CmplCtGB0LgK4paBcHJvdgpiYgp3YXJkCmVzZW50CmVyc29uCmFua3MKd2gKbm90CuKWgVdlCmthCnJvcAphdHVyCmFscwriloFiZWwKw7ZyCmZyCuKWgWV4YW1wbGUK4paBaW5jbAphbWlsCuKWgdGA0LAK4paB4oCcCuKWgXN0cmluZwriloF0aGluawpUaAriloF0ZW0KYXZlCuKWgUZyYW4K4paBbnVtYmVyCuKWgXNpCmltZXMKdGVtCm15Cmxlcgpsb2FkCj09CuKWgWhhbmQKemEK4paBYmVjYXVzZQriloFzY2gKdm8KdGhpcwpJRArDo28K4paBc3RhcnQK4paBd2FyCuKWgWhlbHAKdHMK4paBY2hhcgriloFwaAriloFtaW4KdGlsCnJpdGUKLS0tLS0tLS0KZWxzCuKWgW1pdAplZGlhCtC60YMK4paBU2gKYW55Cl07CuKWgdCRCmlxdWUKZGEKZWYKZGV4CuKWgXByb2R1CuKWgdCdCmdyYW0K4paBT3IK4paBZ3JlCnF1b3RlCmxlZwpvcm4K4paBaW5kCuKWgXBvc3QK4paBZGVwCl0sCnZpCuKWgXVzZXIK4paBPgpsaWNrCuKWgXZlcnkKZXRoaW5nCuKWgWFycmF5CuKWgWd1CuKWgWR1cgpgLgrRgtGMCmxpY2F0aW9uCtGB0YLQuAplawppY28K4paBZGF0CtC+0YAKaHRtbAppb25lCuKWgWRpZmZlcmVudAriloFjaGVjawriloFmcgriloFFcgriloF0ZXh0CtC90ZYKaWNodApzdGFjawpFTgpyYWcK4paBZXZlcnkKQXIK4paBYmVmb3JlCmFsc2UK4paBZmluCuKWgWTDqQriloF0aGVzZQriloFkZXQKVmFsCmNlcHRpb24K4paBYW5kcm9pZApibG9ja3F1b3RlCuKWgWplCmZpbGUKYXRzCuKWgdC00L4KZXNzYWdlCuKWgWFnYWluCmF3CkNoCndlZW4K4paB0JQKZm9yCmNpYWwKcGxheQpwcmUKaWRhCuKWgVBhcgpueQpyYWN0CuKWgXN1cHAKYXNlZApsZWN0aW9uCuKWgWRhbnMKYWlyCnJvbAriloF0aHIKRGF0YQpsaWNoCuKWgdC/0YDQvgriloFsb25nCuKWgXNlY29uZAp1YWxseQppbmVzCuKWgWZvdW5kCmVuZ3RoCnlwCmVhZAriloFsb2cKdWkKbmV3CuKWgdCgCmdvCmF1cwpvZHkK4paBc29uCtC80LUKZXJvCnZlZApzdWIK4paBcmlnaHQKdmlldwriloFmb2xsb3dpbmcKJykKIik7CuKWgXNhaWQK0LbQtQrRh9C4CtGC0YMKb3R0CtGB0LUKYXJzCiQuCmdnCuKWgWJyCm9vbAp5bGUKdXNlCuKWgXNob3cKbGVhc2UKY2lhCuKWgWRpcmVjdApkb2MK0LDRgAptcwriloFnaXYK4paBZXhwCnFsCtC00YMK0LLQtQriloFCZQpDb20KaXRlcgpSRQptcAptZW4K4paBUm8KTUEK4paBQ29sCmlzdGVyCuKWgXdlbGwK4paBPC8KYXlvdXQKYXR1cmUKaXZlcnMKenkK4paB0L3QtQriloFtZXQKdW5lCnl0aApUeXBlCuKWgWVsZW1lbnQK4paBbGluawptb2QK4paBYmV0d2VlbgpjZXB0CnF1aXJlCuKWgXRocm91Z2gK4paBd2hpbGUK4paBT24KdGhlCsOtYQriloFzb21ldGhpbmcKdm9sCuKWgW1vc3QKc2MKdXNzCuKWgWNhcgriloFzbQriloHRgNC+CmFubwpsZWZ0CnZhCuKWgXRydWUKKCQKZW1zCuKWgW11Y2gKw6FzCuKWgU5ldwriloFwcm9wZXIKZXJhCml0ZWQK4paBZG9jCmljZXMKVGhlCuKWgT8K0YHRgtC+CmZsCuKWgXNwZWMKZW5kZXIKd2F5CuKWgXNlbGYK4paBZXZlbgrRltCyCuKWgdGB0LUK0L3QuNGPCuKWgVByCuKWgWtlCmVtYgriloF0YWJsZQriloFlcXUKbGllbnQKdGQKcGFydAriloFwcmludAriloF1bmUKaWZ5CuKWgS0+CmVuZQriloFtb24K4paBZGVjCuKWgXN0aWxsCuKWgdC+0LEK4paBVHIK4paB0YQKaWZlCmlzbQpieQpyYXcKaW9yCuKWgW1lZApvcmxkCuKWgWNvbXBsZQp3dwriloFhcnQKcm9uCuKWgdCTCuKWgU15CuKWgWFscwpyZWN0CuKWgWF1ZgriloFkb3duCmF0aGVyCkNvbApUZXh0CmJhY2sKJCwK4paBeWVhcgrQvNC+CnBpCuKWgUdyCnJlYW0K4paBcmVwCmJmCnd3dwriloF3dXIK4paBb3JnCmludGVyCuKWgURpZQriloFiZWluZwoiLgpsYWJlbAriloFjZW50CmphdmEKYmFyCmFudGUKYW5hCl9fCuKWgXNvbHV0aW9uCuKWgdCeCuKWgWZsCuKWgWNyZWF0ZQppY2kKc3RlCnl0aG9uCnVudAphc29uCmZlcmVuY2UKU0UK4paBbm9uCmFuZQriloFpbnMKYWRlcgpfe1wKUmVzCuKWgW1haW4K0L/QuAriloHiloHiloHiloHiloHiloHiloHiloHiloHiloHiloHiloHiloHiloEK4paBVGhlcmUK4paBcG91cgpSTwpgLApsaXNoCmJqZWN0CmNjZXNzCuKWgW9yaWcK4paB4paB4paBCmlzY2hlbgpvd2VyCuKWgWhldAp1YwriloFlbHNlCsK7LgriloHQvtGCCmVxdQpzaWJsZQp0ZXN0CnN0YW5kCsOpbgpldHMKR0UKaWRlbnQK4paB0LUK4paB0L/RgNC4Ci4sCuKWgWRhcwpvY2sKLCIK4paBdm9sCuKWgWZvCuKWgXBhcmEK4paB0KIK4paBQ2FyCnJhbAriloFTcAp2YXIK4paBcGxheQpvdXNlCuKWgdGC0LAKaWNhbGx5CuKWgWNvbnRhaW4KcG9uc2UK4paBU3RyaW5nCsOhbgriloFib3RoCmtlbgpBUgrQtdGA0LUK4paBSWwK4paBaXNzCuKWgW9wZW4K4paBKQriloFXaGF0CmZlCnJpdmF0ZQpyZWcK4paBd2l0aG91dAriloF6dQp2aXMKZmxvdwriloFodHRwCmFiYXNlCuKWgXdvcmQK4paBY2hhbmdlCuKWgXdvcmtzCuKWgWdlCuKWgSEK4paBZWVuCml0bGUK4paBZXZlbnQKd29yZAphbmRvClNCCnJlbQriloFmaWVsZAp2aW5nClNlcgriloFvdXIK4paBcXVpCuKWgW9wZXIK4paBaXN0CmRlZgriloFtYWRlCtC90LjQtQpweAriloFtZW4Kcm0KYWlzCmNlbnQKbGlzdApUbwriloFUbwpqYQp2ZXJ0CuKWgW1hcgp2YWx1ZQriloHigJ4KIjsK4paBYXVzCuKWgUJyCm9sZQriloFtdWx0Cm91Z2h0CuKWgW1hdAriloF2aWV3CmZpbAriloHRgdC+CtCz0LAK4paBdm9pZAriloFnb29kCtCx0L4KQ1QK4paBbWFueQpiZW4K4paB0LLQvgriloHQutCwCuKWgXN5c3RlbQppbm8K4paBYW5vdGhlcgriloFyZXN0CnVzZXIKaWxpdHkKYWkK4paBbWlnaHQKdXN0b20K4paBb3JkZXIK4paBVmVyClNTCn0pCuKWgWVmZgrQtNC+CmV0dAriloFzaWduCtC80YMKSVQKc3RyaW5nCmVsbGUK4paBc2luZwpjdWwK4paBdHJ5aW5nCuKWgWJlZwriloFwYWdlCtGF0L4K4paBQ2FuCuKWgVNlcgorKwriloFtdXN0CuKWgXZhbHVlcwriloFrZXkKaWJsZQpdLgppcmQK4paBcHJvZ3JhbQpyb2xsZXIK4paBY29ubmUK4paBc2F5CuKWgXBhcmFtCmFjaGUKdmVsb3AK4paBc2VsZWN0CuKWgWZhbWlsCuKWgWxhc3QK4paBVGhhbmtzCuKWgXBvcAp9LgplcQriloFkb2VzbgpbJwriloF0ZXJtCuKWgXLDqQriloFkb2N1bWVudArQv9CwCtC70YMKYXRlZwouKQpsaW5nCmlvbmFsCmFibGVzCuKWgXRhawp1dHRvbgriloFhcmcKdHlwZQriloFzdXJlCuKWgXJlYWwK4paBd2ViCuKWgWN1cnJlbnQK4paBUGwKY2hvCm1lbnRzCuKWgUpvaApvdHMK4paBZXhpc3QK0L3RgwriloFmw7xyCuKWgdC40LcKZG8K0L3QvtCz0L4K4paBbGFzCuKWgW51bGwK4paBaW5mb3JtCuKWgdCbCuKWgXZlcnNpb24K4paBY2hhbmcKYWdlcgriloFDb21tCtC70ZYKdXNoCuKWgUdlCuKWgWhpZ2gK4paBaW5wdXQKb2dsZQpyb3MKYm94CmdlbgriloFzdGUK4paBbG9jYWwKSW0K4paBcHJvY2Vzcwp0ZXJuYWwKaXplZArQs9C4CsOpdAriloFJbmQK4paBb2NoCmx0CuKWgWNvbHVtbgriloF0cmllZAriloFjb21tYW5kCuKWgWJlc3QKYXN0ZXIK0LfQsAriloFwcmltCuKWgW1vZGVsCuKWgdGWCuKWgXRob3NlCml0aWVzCsOocmUK4paB0YDQtQrRmNC1CtGI0LgKcXVlcwriloFBbQriloFvd24KbGluCtC30LgKVmFsdWUKdGhpbmcK4paBLAriloFUZQriloFzdHVkCuKWgXVtCuKWgXNlcnZlcgppbGxlCuKWgXB1dAphdGl2Cmd5CtC+0LLQuApyYWYK0L7QstC+CuKWgXd1cmRlCuKWgVdoZW4K4paBZGl2CmFudHMK4paBdGVyCuKWgXBhcnRpYwriloHRggriloFEbwriloFObwpzZXJ0CmlkbwptYXRoY2FsCmFkZQriloFJSQpsZWFyCm9ncmFwaAplbnNlCuKWgXJvdwpudW0K4paBcG9zc2libGUK4paBc2luY2UK4paBQm8KY3Rpb25zCuKWgUltCk9SCtGG0ZYK4paBaWRlCm1hcAriloFjb3JyZWN0CnZlcwpwaHAK4paBb3V0cHV0CuKWgVBoCkFMCmFyZWQKXFwK4paBaW1hZ2UKZXNjaArQttC4CuKWgWNvbmYKcG9yCnF1ZXJ5CnVyZXMKaXVtCmVuZHMK4paBQWIKU0JOCtGW0LQKZXRoZXIKcHRpb25zCml0dQpsaWIKbnMKa2kK4paBd29ya2luZwriloFjb21vCuKWgVRoZW4KTUwKa2V5CmNsYXNzCm9wbGUKaXR0bGUK4paBbWF0Y2gKd2F5cwptYXRoYmIK4paBcmVxdWlyZQphbHQK4paBdmlzCuKWgWJsCuKWgWNhbGxlZApJdGVtCnVyYQp2ZWMKZW1lCuKWgWRlbGxhCmVtYnJlCnVyZwpTZQriloFyZXF1ZXN0CmlzY2hlCuKWgXBvcnQK4paBaW5zdGVhZAo9XAriloHQowpob3IKZW50ZQp1bWUKZXJkCtGB0LAK4paBd2h5CnJpc3QK4paBcGVyc29uCuKWgS4uLgriloFwcml2YXRlCuKWgXRvdApwaGEKaWZ0Cml0YQpsb2MK4paBb2xkCtC+0L0K4paBbmVsCiddCnRpCmlldApjaXRlCnBsZW1lbnQK4paBYWJvdmUKa3MKcmVhZHkK4paBY29tZQpzZWN0aW9uCuKWgVBvbAriloF3cml0CuKWgWh0dHBzCuKWgSQkCuKWgcK7CuKWgWJ1aWxkCml0bwriloFjb25zaWRlcgphZnQKQXBwCixcCmluZG93cwpjb21tCuKWgTsKZ3JvdW5kCuKWgXBsYWNlCkJ5CuKWgXByb2plY3QKT2JqZWN0CuKWgXJlcHIKZW5jZXMKaW5kb3cKenQK4paBZmlsZXMKY3oKaXZpdHkK4paBaW5pdAriloFwcm9iCuKWgXNrCm9ydGgKaW1lbnQKb3VibGUKYXRhbAppcmMK4paBw6gK4paBYnJlCmlzdGEKaW5wdXQK4paB0JgK0L3QvtC5CnN1bQpwYXRoCuKWgWNvdXIK4paBdG9vCuKWgUFkCuKWgUd1CuKWgWZhbHNlCuKWgWZ1bgriloHRgdGCCm9vZArDqHMK4paBZW5jCmJvbApybAphcmdldApvcmRlcgriloFtZWFuCtC/0LUKaWdlbgriloHQv9GA0LUKd2lkdGgKOw0KaXRvcgriloFzdGF0ZQriloFncmVhdAplbm4KYmluCkVyCk1vZApvegriloF3b24K4paBZmFjdAriloFqYXZhCuKWgVVuaXZlcnMK4paBY2FwCmlzdG9yCn0oCmt1Cml0aGVyCmFsZXMK4paBb3UKcm9zcwriloF0YWtlCnJpeApsb2IK4paBZWluZQphc2VzCuKWgWFjY2VzcwppdMOpCmlzdHIKaXphdGlvbgriloFhcHBybwpiYWxsCuKWgW1hawp9XgriloFDb25zCnByZXNzCnNlcnYKKCkuCmFmCuKWgXJlZgopXAriloFjb250aW4Kc3UKaXZlcgriloFjb25kCuKWgWV4cGVjdAriloFjaGFyYWN0CmJlcnQKZWx0CnRlcnMKc2NyaXB0CuKWgUVkCmFwdAonKTsKcHJpbnQK4paBc2l6ZQriloFzaWNoCmZhY2UKZW5kZW4K4paBQW1lcgppZmllZArDs3cK4paBU3UKdGVzCm1lZAriloFSZWcKc29sZQriloFpbmNsdWQKaW5pCmluY2kK4paBcGxhCuKWgWxlZnQKZGYKUGFyCuKWgUFsbAriloFvY2MK4paBQXQK4paBY3IKUXUK4paBZ2l2ZW4K4paBU3lzdGVtCmljYW4K4paBZmluYWwKaXRpb25zCuKWgdCx0YsK4paBcGVyZm9ybQpBTgriloFNZQp1cm8K4paBVGhhdArQs9GA0LAK4paB0J/QvgriloHQstC4CmFibHkK4paBcHJlc2VudApkdWN0CnJpYwriloFFbmcKdHJ5CuKWgWxhcgpibAppZGQK4paBw6RyCm9yYQpMTApvc3MK4paBSVNCTgriloF0aHJlZQpqbwpuw60KcmMK4paBZmFyCuKWgU5vdAriloFsaXR0bGUKZGlzCmF0aQpmdW5jdGlvbgriloFhYmxlCmxlc3MK0YHQvgriloFwYXRoCuKWgXByZXMKbG9zZQpQSQriloFpc3N1ZQphY2thZ2UKdGltZQppZ2UKYW1zCuKWgUNsCmFpbHMKYWxrCmlpCtGI0LUKcGVuClFMCuKWgWVhcwpSTApjZWwK4paBc2wK4paBYXNrCuKWgW5vbQriloF0b3AKaWRlcwppbmRleArDqW0K4paBaGFwcApveApjZAriloFiZXR0ZXIK4paBbG9hZAphZG9zCnplbgriloFjZQriloFmYQriloFKb2huCklNQQriloFCYXIKb3ZlcmZsb3cK4paB0LTQtQpuZXNzCmNlcgriloFIZXJlCnJldAriloFzegphbWJkYQpvcHkKdXJsCnB5CnJ0CuKWgXVuZGVyc3RhbmQKYcWCCmhlcgojIwriloFjaGlsZAriloFleGVjCuKWgWFwcGxpY2F0aW9uCuKWgXN0cnVjdAriloHRjwpGaWxlCuKWgWNlcnQKaXNvbgriloF2YXJpYWJsZQpERQpycwriloFyZWFsbHkKUG9ydApiYQriloFCZXIK4paBaW50ZQriloFzdGF0aWMK4paBY29uZmlnCuKWgVNoZQplc3Rpb25zCuKWgXBsdXMK4paBaGFiCm9wZQriloFtdXMK4paBY291bnQKTUUK4paBc3VwcG9ydAriloFwZW9wbGUK4paBYmVoCuKWgWFscmVhZHkKVHIK4paBZG9uZQpkZW0Kc2l6ZQphbHBoYQriloFkaXNjCl0pCuKWgU1hbgriloFtaWwK4paBc3RhbmQK4paBZ3JvdXAK4paBc21hbGwK4paBbWFnCtGB0YLRjAriloFkZWZhdWx0CuKWgXNpbmdsZQpsaW5rCmNsdWRlCuKWgWVhcgppbGFyCioqKioK4paBZml4CmxleQriloFwYXMK0L3QuNC5Cmlzc2lvbgriloFpbXBsZW1lbnQKaXRjaAriloHQs9C+0LTQsAriloFhbHdheXMK4paBSmFoCnByaW5nCsOnw6NvCnBsYXRlCuKWgWRlc2NyaQriloFoZWFkCmluaXQKb2dyYWYK4paBcXVlcnkKaXZlZAriloFpbmcKcHR5CmhhCuKWgW1vdgriloHRjQpldHRlCmlseQriloFnb3QKaWxlZAppY3JvCuKWgXdyCtGA0Y8K4paBbmV2ZXIKb3JlcwriloFiYXMKaW9zCmxhY2sKYWludAp2aW91cwriloFnaXZlCmlkYWQKRW4K0L3Ri9C5CnRhYmxlCuKWgdCd0LAK4paBcGF0CtGC0L7RgAphbmd1CmxveQriloFzZWcKYXJyYXkK4paBRmwK4paBaW5kZXgK4paBc3cKSU1BR0UK4paBa20K0LHQuApDbGFzcwplbmEK0LzQtdC9CmNvbXAKYXR1cwpyYXAK4paBTGlzdApFcnJvcgriloF0eXAK4paB0LzQsApjcwonOgpqaQriloFIb3dldmVyCuKWgdGC0LUK4paBYmVsb3cK4paBQXBwCtGJ0LUKfV8KYnVtCnZpcgrDqWVzCuKWgXJlY29yZAp0YWluCmxlbQppdGFsCuKWgWltcAplZ28K4paBb2QK4paBcmVjZQptaXQKZmZpYwpzdGFja292ZXJmbG93CmlldmUK4paB0JcK4paBbm92CtGG0LUK4paBSW50ZXJuCmJ1CuKWgXN1Z2cK4paBbG9vcApyaWRlCuKWgSQoCuKWgXN1cGVyCnJpZArQvdGL0YUK4paBUGVyCuKWgWRvbQo9Jwp1dHNjaApsZW4K4paBd3JpdGUK4paBaW52Cm91dGgK4paBSGVyCuKWgXllYXJzCuKWgW9yaWdpbmFsCmVnYQriloFTdGUK4paBc2VlbXMKw6lnCuKWgW5leHQKZWRlcgriloFOZQphdmFzCmlmaWNhdGlvbgpFeGNlcHRpb24K4paBRGVyCuKWgXZlCmF0aWMKaGF0CmJyYXJ5CnJldHVybgp1cmNoCmlzaW9uCm1pCm9pbnQK4paBZGF5CmljdGlvbgrDoWwK4paBw6lzCuKWgXRob3VnaAphY3Rpb24Kw610CnVuZ2VuCm91cnMK4paBc2NyaXB0CuKWgWluZm9ybWF0aW9uCuKWgW11bHRpCuKWgVxcCnN0ZXIK0LrQtQpBQwpjaWVzCuKWgWRpc3BsYXkKb21hbgpUaW1lCml1cwopKTsKdHJlCuKWgWxpbQphdGVseQrDqWQKaXN0ZQriloHRgdCwCnBvc3QKdWVsCmltZwriloHRhwrRgdC60LAKZWxkCnBwZXIKdWxhCuKWgWdlbmVyYWwKQWwKRm9ybQriloF1cG9uCnpvCmFtZW50ZQriloFwcm9tCuKWgcO8CmxleAriloF0dXJuCuKWgdC80LUKZW50aW9uCtC70LXQvQriloFhZgppY2xlCtGB0YLQsgriloFGaWwK4paB0KQKYXZhc2NyaXB0Ck1hbgphcmEKd2FyZQphbGlnbgphbmdsZQriloFTYwp1bmljCuKWgWZyYW4KVW4KemkKbWV0CkFkZAriloFwdWIK0LrQvtCyCuKWgWdlbgriloFwb2QK4paBc3VtCuKWgWhhdmluZwriloFhdmVjCnNsCuKWgWZpZwriloFSZXMKRGF0ZQp1bGVzCndpdGgK0YHQutC40LkKZ3UKRVQK4paBYnJvCnJpZQphcHMKZW5kaW5nCm1haWwKb29rCuKWgXN1Y2Nlc3MKYmVyZwriloFkZWIKZWx0YQooKWAKZW50aWFsCmZyYW1lCktleQppbm4K4paBc2ltcGxlCml2YWwK4paBY2FyZQriloFXZWIKIikuCj48LwriloFkYXRhYmFzZQriloFOb3cKSW5kCuKWgdC80L4KY2h0CmJhbgpyYW0KZXF1YXRpb24Kc2tpCmllZgpsaW0KR2V0CuKWgXRyZQphdGVuCmJlZAriloFKZQriloFyZXN1bHRzCtC70Y4K0YLQtdC70YwKZGIK4paBYml0CmJvZHkKQXJyYXkKbXUKcHJlc3Npb24K4paB0YHRgtCwCm9ueQppZmYK4paBYmFyCuKWgUFyY2gKYmVycwopewriloFNb24K4paBZG9pbmcK4paBcHJvZgriloFpbnN0YWxsCuKWgXBvc2l0aW9uCmVtYQriloF9KTsKUGF0aAphbGkK4paBJiYKbGV2CuKWgWNhbm5vdAriloFNYXkKaW5zdAotXAriloFjb3VuCuKWgWFuZwriloFhcHBlYXIKY29yCmNpw7MKaWRlZApxdWVzdGlvbnMKYXR0ZXIK4paBUGEKc2VsZWN0CuKWgXByaW5jaQpFdmVudAriloFzaWRlCuKWgW1lbQriloFKYW4KYXJpbwriloF3aXRoaW4K4paBVmFsCm9kZXMKaWRkbGUKdXJhdGlvbgpicmEK4paBZGF0ZQpbXQriloFlbnRyZQppbGkKUG9ydGFpbApkb2NzCtGB0LrQvtC5CkVsZW1lbnQK4paBbWVzc2FnZQriloFuYWNoCuKWgWR1cmluZwriloFncmEKZXR3b3JrCuKWgUJ5CuKWgXRlbGwKZXRlCn5cCuKWgWJpcwriloFwdQriloFyZWQK4paBdGhpbmcK4paBc29ydAp4aW0KaXJlcwpVc2VyCmlvZAriloFFc3QKb3NlZApvdXRlCuKWgUxlcwriloFzZW50CnJpYnV0ZQp1dGVzCmlzdG9yeQriloFzZXJ2aWNlCic7CmZpZWxkCuKWgUlOCmVuc2lvbgpyZWwK4paBZ29pbmcKd2ViCkNvbnRleHQK4paBbGF0ZXIKdWsKbGF5b3V0Cm9uYQrDoXQKLS0tLS0tLS0tLS0tLS0tLQriloFleGFjdAphbmRvbQriloFzaWUKSUkK4paBVGhleQptZW50ZQppYmxpCuKWgWZpbmUKVVQK4paBZGV2ZWxvcAriloFFaW4Kc29mdApvZmYKU2V0CuKWgWF6CmV0ZXJzCmlsZGVyCnBsZXMK4paBc3BlY2lmaWMK4paBb20KZXJyb3IKZW50bHkK4paBZmlsbQp1Y2sKYWlucwphY2nDs24KZ2VzCtC20LAK4paBdGhpbmdzClNoCuKWgXRob3VnaHQK4paBYWRkZWQKZGVwCtGB0LrQvtCz0L4K4paBTGkKaWxzCnluYwriloHRgtC+CnJpZXMK4paBY3UKY2hlbgpJT04K4paBRGVzCnVsdGFkbwppcnQK4paBYmFzZWQK4paBbW8K4paBZGVzdApwbmcKcmVlbgriloFydW5uaW5nCmFtbWEKb3VkCuKWgXJlZmVyCmlvdXMK4paBSnVsCuKWgXNlYXJjaAphbGQKZWRlCuKWgXdyb25nCkFuCuKWgXVudGlsCnNpdGUKYXllcgriloFvbmNlCmFycgriloFhZ2FpbnN0Cj09PT0K4paBc291cmNlCmFybgphcGkK4paBcmVwcmVzZW50CuKWgWFmZgriloFzZWluCuKWgWFsbG93Cm9ybWFsCmVuZGVkCuKWgWNvbnRyb2wKbWF0aGJmCmNvbWUKY3VyCmVuZG8Kd2EK4paBdXBkYXRlCuKWgWluc2lkZQriloFyZWFzb24Kb21lbgriloHQstGLCkRlCuKWgdGY0LUKc3cK4paBc2V2ZXIKT2YK4paBaW5zdGFuY2UK4paBbWVyCuKWgWVmZmVjdApjb2xvcgp1Z3VzdAppbHQKZGVzCml0egp1bGF0aW9uCm5pZQriloFXb3JsZAriloFzaW1pbGFyCnltYm9sCmhpbmcK4paBbWFyawpTdGF0ZQriloFjb250ZW50CuKWgW1lYW5zCmFtZWQK4paBRW5kCk5ECmNvdW50CuKWgUluc3QKcGVydHkKY3RvcgriloF7XAriloFMZXQK4paBIT0K4paBZ2V0dGluZwp1dGgKdW1iZXIK4paBQ29uc3VsdGFkbwpzY2hhZnQKbGV0ZQriloFXaWxsCuKWgUVtCmhlYWQK4paBbGVnCtC90L7QvApPcgphcm0KcG9uZAriloFDaHJpc3QK4paBYXJvdW5kCuKWgWNsZWFyCuKWgWhyZWYK4paBU2VlCicpLgriloFjcmVhdGVkCuKWgWJ1dHRvbgppbmluZwriloFjbGljawppYW0KcGxpdApGb3IK4paBcG9saXQK4paBc2VlbQriloFsaWZlCtC90L7QsgriloFpbnRlcm4K0YnQuApzZWwKc29jaQriloFzdG9yCmNsZQplYXJjaAphbmRyb2lkCn1eewriloFlaXRoZXIK4paBZmV3CuKWgWluaXRpYWwKbGVuZ3RoCnJpYQpzcWwKd2lrCuKWgcOpdAp1ZXIK4paBdmFsaWQKQW5kCmluY2x1ZGUKdXJ5CuKWgXN1cwppcmVkCuKWgUFmdGVyCuKWgWR1ZQriloFiZWkKb3VyY2VzCuKWgU5vdgpBY3QK4paBQ29udAriloFicmVhawplc3RlZAriloFhY3R1YWxseQplbHNlCnRtbApyZXIKb25lcwriloFkZXNpZ24K4paBcHJvcGVydHkKcGhpCmFsaXR5Cm9jaAppc3RzCuKWgcK3CnVkaW8KQUIKYWxhCmlvbmVzCtGE0LgKZmluZApBcwriloFjdXN0b20K4paBYW5uCkVTCk9UCmxhbWJkYQriloFpZGVudAriloFvcmdhbgriloFDZW50CuKWgUNoYXIK4paBb3MK4paBaGFyZArRgNC+0LIK4paBLz4Ka28K4paBZXhwZXIK4paBc2VwYXIKeWwKb3VybgriloFkZXYK4paBYXVjaAriloFibG9jawpib29rCuKWgW1hcAppbGxhCuKWgWNvbXB1dAriloFzcGFjZQpyZXN1bHQKKX0K4paBZWNobwpjb25maWcKaGkK4paBbGFyZ2UK4paBd2lkdGgK4paBR28KbWF0CuKWgWRpZmYK4paBa2luZAphbmNlcwp5bmFtCuKWgWNvbG9yCkludApzb2wK4paBcGkK4paBY2hhcmFjdGVyCm9tZW50CuKWgXJlc3BvbnNlCmlnbWEKd2FyZHMKYXJyb3cK0YHRgwp0aWVzCuKWgcO8YmVyCkltYWdlCnlkCuKWgdC/0LXRgNC1CuKWgW5vZGUK4paBaXRlbQphY2hpbmUKaW1hCuKWgXZhCuKWgWFwcHJvYWNoCuKWgXdlcgriloHRh9C1Ck9uCm9sbG93CtC+0L3QsApjdGVkCnVyZWQKQ29udHJvbGxlcgpsaWVkCuKWgWpvCuKWgWRhbAp1bmsK4paBw64Kc3RhcnQKb2xhCuKWgWNvbXBvbgpJQwpiaXQK4paBYmFzZQrQv9GDCuKWgWlkZWEK4paBZGlyZQriloFyYWQKZ3JvdXAK4paBV2l0aApzZXJ2ZXIKc2lkZQpzaW5nCuKWgWRpZXMK4paBbmVhcgriloF2b29yCuKWgWFyZ3VtZW50CuKWgX0sCuKWgWxhbmQK4paBbmFtZXMK4paBb3B0aW9uCml0aHViCnBwZWQKYXVnCuKWgWxpbmtzCuKWgWZ1bGwK4paBc2l0dQriloFjb25zb2xlCuKWgWV0YwphdXgK4paBQ29yCmljcm9zb2Z0CuKWgWNhbWUKbG9jYWwK4paBa25vd24K4paBbXVsdGlwbGUKYW5ndWFnZQriloF0b3RhbApvbG9neQrDpHQK4paB0KUK4paBZnJlCuKWgXRlbgppZGVvCuKWgWJlcwp0cnVlClF1ZXJ5Cm9tbQriloFBcnQK4paBa2VlcAriloFVbml2ZXJzaXR5CnJlYXRlCnBwb3J0CuKWgXB5dGhvbgp0cmEKZWN0b3IK0YDRlgpvcGgK4paBY29uYwriloFmb3VyCnZpcm9uCuKWgXZpYQo/IgppbWFnZQpvbGwK0L3Ri9C1CuKWgWNvbnRleHQK4paBc2VtCi5fCuKWgWVuZwptYXIKQUQK4paBbW9yCuKWgUNhbAriloFjZWxsCmltYWwKQVRFCuKWgWluZgrDtm4KdWZmZXIKc3EKLi4uLgriloF6dXIKV2l0aArRgNCw0L0KY2huCuKWgWRvb3IKY29udGVudAriloFtaXNzCuKWgXNpbXAKw6FyCmlyYQriloFoYXQKVGVzdAriloFjZXJ0YWluCk5TCuKWgWNobwriloFhZHYKd2hlcmUK4paBbG9va2luZwriloF0aW1lcwrQvdC40YUKdXRvCuKWgcOJCmNhbgpob3N0CuKWgSgqCmxvYXQK4paBbmljaHQKRmllbGQKYnVyZwpjb25zdAphZGVzCuKWgU11cwriloFub3RoaW5nCuKWgWluY3JlCuKWgU1pbgriloFwb3dlcgriloFBbWVyaWNhbgpsbgp2YWxpZAp1bmdzCuKWgU5hdGlvbmFsCuKWgVNhbgriloFZb3JrClJlcXVlc3QKY2hhcgriloFaZQpidXR0b24K4paBYWxnClNPTgriloFhcAp1ZmYKYWJpbGl0eQrQtdC8CuKWgWFueXRoaW5nCmVsYQooKSkK0LHQsAphbXBpb24K4paBcG90CuKWgWZ1dAphaWxhYmxlCuKWgXByb3AKIl0K4paBbGVzcwpsYWcK4paBQXVndXN0Ckl0CuKWgXBsZWFzZQriloFzdHlsZQriloFBbHNvCmJ0CuKWgXByb2JhYmx5CuKWgU9uZQriloFwb3NzClVJCnVpdAriloFXZXN0CmhuCitcCkJ1dHRvbgpqc29uCmVycgpyYW1lCmRvbQppbG9uCmFsZgriloFjbGllbnQK4paBY29udGludQp4bWwKcGVjCmFkb3IKbHMK4paBaG93ZXZlcgriloFBbnkKw6RuZAptYXRocm0K4paBdXJsCuKWgWJvb2sK4paBZ2wKaXZlcwpnaQriloF0cm8K4paBVVMKcG9pbnQKb3BlbgriloFjdXIK4paBZXJhCuKWgXBhcnRpY3VsYXIK4paBSFQKb290CmVsbG8KbG9iYWwK4paBYWN0aW9uCuKWgUludAriloFpbmNsdWRlCuKWgWVsZW1lbnRzCtC90LDRjwphcmRzCuKWgUJsCuKWgWh1bQpmcm9tCmNoYW5nZQriloFmdW5jdGlvbnMKaGVuClNlcnZpY2UK4paBaGVpZ2h0CuKWgUxhbmQKaWFzCmdzCmnDs24K0LvQvtCyCm5vZGUKLuKAnQpoYW5kCuKWgdCx0YMK4paBYW1iCuKWgUx1CuKWgXRocm93CuKWgW1vdAriloFBY3QK4paBd29ybGQKX1wKYmFzZQriloFDbwriloFhcmNoCuKWgSMjIyMKZ2VkCnByaWwKb2xkZXIKTW9kZWwK4paBc2V2ZXJhbApsaWUKY2hlY2sKXXsKY29ucwriloFUcmEKaGVjawriloFsZWFzdApkb3duCmVicnUKRGVmCnBhcmFtCmlzY2hlcgriloFjYXMKQ0gK4paBYWRkcmVzcwriloHRgNCw0LcKdWZlbgp1cm9wZQrQtdC5CuKWgWJvdW5kCkNPCuKWgUFuZwriloFNYQpJbmRleApjb3JlCm91Y2gKYXRhYmFzZQpyaWJ1dGlvbgpkb2N1bWVudApMZQp9X3sKdmVybgriloFzdGF0ZW1lbnQK4paBQnJpdApvbm8KcHNpbG9uCuKWgWxldmVsCuKWgXByb2R1Y3QKSVMK4paBY291cnNlCuKWgU1yCj4NCuKWgWJhY2tncm91bmQK4paBcmV0CmVyaW5nCm1vc3QK0YHRjNC60L4K4paBdGhyZWFkCml0aW9uYWwKaXRlcwpQbAriloFkb3MKZ2EKZGF5CuKWgUdlbmVyCuKWgXR3CkFkCiI+PAriloEoJAriloFtb21lbnQKdGl0bGUKY3JlYXRlCnZlcnNpb24KTWFuYWdlcgriloFmdXIKcHBpbmcKaWpuCtC+0YEK4paBcmF0aGVyCnB0ZW1iZXIKT1MK4paBc2l0ZQriloFjYXVzCmFuaQriloFob21lCtC80ZYK4paBc2hvcnQKcGEK4paBbGVhZAppc2hlZApjaW5nCm9yZGluZwriloFwcm90ZQrRgdC70LUKTEVDVAriloFkaWRuCnBvc2l0aW9uCiIsIgooKSwKdHJhbnMK4paBbG90CuKWgdC+0LQKQVMK4paBc2F0CuKWgXBvaW50cwpnaXRodWIKc3R5bGUK4paB0LPQvtC00YMK4paBRGlzCnBvbmVudApvbWV0CnplcgpVTEwK4paBcGEKQVAKYWNlcwriloFVbml0ZWQKYW1hCmV0eQpDb2xvcgriloFlbm91Z2gKVVMK4paBbGVuZ3RoCigpKTsKXntcCmZ0eQpCb3gKYXB0ZXIK4paBY29tcGxldArQvdC40LoKbWF4Cm9iamVjdAooewppbWd1cgppdGl2ZQp1bmNoCuKWgVN1YgplbmRlCtCz0YMKYXRlZ29yeQrRgtGLCmlhbm8K4paBdXBkCuKWgUF1c3QKfXtcCnRvcApsYXMKcGlzCmluZXNzCuKWgXsNCuKWgdCVCkdyCuKWgUFTCuKWgdCy0LUKdGhlcnMK4paBZGVmaW5lZAphemlvbmUK4paBb2ZmaWMK4paBYXV0b20Kw7xuCuKWgWJyb3cK4paBc2VydgriloFyZW1vdmUKaXJvCuKWgUJpYmxpCkVECuKWgXdob2xlCuKWgdGICuKWgUphdmEK4paBenVtCnVhCnBtCmRldgrQutGA0LAKb2xkcwriloFXYXIKw6RuCnBhc3MKdXoKWyIK4paBdHJpCmlzZWQK0YXQsAriloFtZW1vcnkK4paBUG9ydApvcGVyClVwCuKWgVRoYW5rCuKWgU1pY2gKeWNoCmJvYXJkCtCx0YMKSW5zdAriloFiZWdpbgppbmF0aW9uCuKWgU1vZApfLAriloFEZW4Kb3B0aW9uCuKWgWNvbnN0cnVjdAriloFKdXN0Ck1hcApydW4K4paBcmVzcGVjdApoYW0K0LzQsNC9CmltZWRpYQriloFhcHBseQpjcmlwdGlvbgptYWluCuKWgdCa0LAKb2lkCkNvZGUKfTsKSW5mbwriloFmb3JtYXQKTG9nCuKWgdGB0YMK4paBbGF0CnV0b3IK4paBcmVmZXJlbmNlCuKWgWNhbGN1bApvbm4KTG8KaW5mdHkK4paBYWxvbmcK4paBxI0K4paBdGFzawriloFldgp0aGV0YQpyYXMKam9yCuKWgdCx0L4K4paBcHJpbmNpcApNeQriloFlaW5lcgriloFFcwpvbWIKcXVhZApeey0KdW1wCuKWgXRpbGwK0LTRlgriloFsb29rcwriloFvawrRhtCwCm51CkZpbAriloFzb250CuKWgU1lZAphZ3VlCuKWgWNvc3QK4paBU2ltCuKWgWNvbW1lbnQK4paBKFwKZWdlbgriloFwYXJhbWV0ZXIK4paBRnJhbmNlCnJlcAriloFUSAriloF5ZXQK4paBYXdheQriloFjaXJjCuKWgUFQSQplbXAK0LLRlgpMYXlvdXQK4paBbGluZXMK4paBUGFydAplbXB0CuKWgUJpCuKWgW1pbmQKa3kKZ2luZwriloFyZXBvcnQK4paBQWRkCtGA0L7QtAriloFyYW5nZQpjaWFzCmxpcAriloFLYXIK4paBQ29tbW9ucwpnZXJ1ZmVuCmFmZgpzZWMK4paBaHRtbApsaWcK4paBd2luZG93CmluaXRpb24KY2lzCuKWgXV0CmVsbgriloFhdXgK4paBbmVnCkhhbmQK4paBKTsK4paBYW5hbAriloFmcmkK4paB0YHQuApldGNoCm1kCnBhZ2UK4paBbGlicmFyeQriloE6PQpST00KWW91CnNwYWNlCuKWgWR1cmNoCuKWgWhvc3QKYXZlbgriloFGaWxlCmFsbGUK0YLQuNCyCuKWgXBhcArRgdGC0LLQvgptYXJrCuKWgW1haXMKZXJtYW4KU2l6ZQrQtdC6CuKWgdCc0LAK4paBaXNuCuKWgWNvcHkKc3RlbgpyaXZlcgriloF3ZW50CuKWgWphdmFzY3JpcHQK4paBc2FtCuKWgWZyYW1lCuKWgXZpCuKWgXByZXZpb3VzCnJvZHUK4paBbWV0aG9kcwriloFuZWNlc3MKTkEKY2tldAriloFvcHQKTG9jCmhvdwriloHDrm4Kc2hpcAriloFpdHNlbGYK4paBUGxlYXNlCmllbmUK0LLQtdGACuKWgTw8CuKWgW1pbGwK4paBdHJhZApwYWNlCuKWgUhhcgppdGVuCndpc2UKd3JpdGUK0YbQuNC4CtGA0YsKTGluZQpvbG8K4paBYWNjZXB0CmhlaWdodAriloFlbGVjdAplbGxhCuKWgXDDpQpTZWxlY3QK4paB0LvQuAriloFcPAooKAriloFJRApvcHMK0LLQsNC9CmnDswpUUArCuywKbmVjdGlvbgpwYXJlbnQK4paBTWFnClRhYmxlCk92ZXIK4paBbmV0d29yawrRgdC/0L4K4paBYXNzaWduCmlnZ2VyCmlybQopYApvdHRvbQpiZXRhCuKWgWRlbGwK4paBYm9keQriloHQtNCwCuKWgVlvdXIK4paBZnVlCuKWgXBhY2thZ2UK4paBbGlnaHQK4paBKioKTVAK4paBY291Cnllcwo6XAriloHQpwriloFtZW50aW9uCmVuc2NoCuKWgWRlZwriloFjb252ZXJ0CuKWgURhdgphZHQKUmVzdWx0CnRob3VnaAriloFidXMKeHkK4paBc2VlbgpBbGwKcHVibGljCml2ZWx5CuKWgVJlYwriloFIaXMKc2ltCuKWgWbDtnIK4paBaGlzdG9yCuKWgXNldHQKcmF0CmFibGVkCuKWgcK7LApnb29nbGUKV2ViCsOpbAriloF0aXRsZQriloFKYW51CtGY0LAK4paBdG9vawppZGVuCnN6CuKWgUdldAriloFvYmplY3RzCuKWgWNvbW1vbgriloFjaGFuZ2VzCuKWgUxvbmQK4paBZXh0ZXJuCuKWgWp1CklzCuKWgWF2YWlsYWJsZQp0cmkK4paBbcOhcwpvc2EKQmUK4paBRGF0YQp1cmFsCuKWgWhvbQriloFhY2NvdW50Cm9vCuKWgXBlcm0KcmVzcG9uZAp5dAriloFzZW5kCuKWgXJldHVybnMKaXZpZAriloFleHBsYQrDrW4K4paBbm9yCklmCuKWgUZyb20K4paBdGFyZ2V0CmZlY3QK0LXQvdGCCuKWgXVpdAriloFKbwriloF2YXJpYWJsZXMK4paBc2VyaWVzCuKWgWZ1bmMK4paBaGltc2VsZgriloHRh9CwCmFudGkK4paBYWNoCmlhbG9nCuKWgXN0ZAphZQriloFmb290CuKWgXVudGVyCmdyZXNzCk5vdApyYWQKZsOpcgriloF1dGlsCm9yZW0K4paBc291Cm9wdAriloFvZwriloF1bWEKaXRhcgriloFPawrDvGNrCnNxcnQK4paBYW50CuKWgXdlcmRlbgrDpXIKfSk7CuKWgVBhcmlzCuKWgWV4Y2VwdGlvbgriloFkZXRlcm0K4paBVm9sCuKWgVNhbQriloFlc3MKbGllcwppb25pCm9kaW5nCmlkZ2V0CuKWgXByaQriloF3aGV0aGVyCuKWgdC/0L7QtAriloFudW1iZXJzCuKWgX4KZXZlbnQK4paBc2hvd3MKYXR1cmVzCuKWgWhvdXNlCuKWgWZhY2UK4paBc2nEmQp2aXJvbm1lbnQKdmFuCuKWgWluY2x1ZGluZwriloE8LQp0aW1lcwpub3cK4paBcHVyCmlmaWVyCuKWgWVtcAriloFjbGEKbW9uCuKWgURhcwphZHkK4paB0LLRltC0CuKWgdGGCmFib3IKT1NUCuKWgWJhbmQK4paBw7oK4paBZXhhY3RseQppZXJ0CmF2aWcK4paBcmVkdQriloFTRQpsaXNoZWQKQnUKTWVzc2FnZQpjZWxsCmZ1bGx5CuKWgXN2CuKWgW1ha2VzCnBvbAriloFyZXF1aXJlZApmZXJyZXIK4paBcGVycwriloFtaQpGSQriloFQYXVsCuKWgVVJCuKWgUJlbAppbmMK4paBY29udGFpbnMKT3V0CmFzdXJlCnB1Cm90bwriloFnYW1lCnpuCuKWgVdoeQpvcml0aApiaWcK0LrQuNC5CnNpZ21hCuKWgXF1aXRlCuKWgWplZApyZWMK4paBU1FMCtCx0LUK4paBTWFydAp5YQriloFzY2hvb2wK4paBc2ltcGx5CuKWgXZvcgriloFkb3VibGUK0YDQsNCyCuKWgVN0cgppZW0K4paBYWxidW0K4paBcmVzb2wK4paBZGVpCuKWgVdpawriloFhdwp1bWIKb2xzCuKWgSovCuKWgXplCuKWgWFuaW0KLz4KcmlzCnJlc2gKTm8KaXF1ZXMKY3VycmVudAriloFwZXJpb2QK4paBQXByaWwK4paBc3RvcmUKJywnCuKWgVNldAo9ewphY2hlZAriloFNYWwK4paBUGFsCmFudGVzCmF0ZXJpYWwK4paBd29ya2VkCmxlcQpvcmVmZXJyZXIK4paBaGFwcGVuCuKWgWJveApuZXkK4paBY2xvc2UK4paBZ3JhbgriloFsaWUK4paBaXIK4paBZXhwZWN0ZWQK4paB0LTQu9GPCmNsaWNrCsiZaQriloFwYXJ0ZQpvZ24K4paBRm9ybQriloFtZW1iCuKWgXBsYW4K4paBdGVhbQpdWwriloFjb21tdW4Kb3JyeQplbmN5CmdsCmluYXJ5CmNkb3QKXlwK4paBRmlyc3QKYW5kZXIK4paBRGVjCnJlcXVlc3QK0YHRgtCy0LAK4paBc3RydWN0dXJlCuKWgXx8CuKWgUNvbXAKYWN0b3J5CuKWgU1pbAriloFTb21lClN0cmVhbQriloFhc3N1bQp1ZW4K4paBd29yZHMK4paBU2VwdGVtYmVyCuKWgdCa0L4K4paBZGF5cwpvcmllcwrRgdGC0LDQsgpzbQp2aW4KcGFydGlhbAriloFwYXJlbnQKb2oK0L3QuNC4CiEiCnVnaW4K4paBV2luZG93cwpFZAo6fQriloFxCuKWgWJlbgppYW5hCuKWgWxhYmVsCnN0YXRlCnV0ZWQK4paBKCkK4paB0YHQstC+CuKWgWVkaXQKdXJpbmcK4paBTlMK4paBSmFocgriloFwcm92aWRlCkhlCuKWgVllcwphbmVsCmVuYW1lCuKWgURvbgppc2sKZ3JhCmVsaWoK4paBcm9vdAoqLwriloFGcmUK4paBTW9yCnVzZWQKcmFuZ2UK4paBdGFtYgriloFtb2R1bGUK4paBZGlyZWN0b3J5Cm91bmRzCkFjdGl2aXR5CuKWgW11CmluZm8K4paBZnJlZQpvcmdlCnRhYgopPQpsYW5nCuKWgdC+0YEK4paBRlJPTQriloFlbnRlcgriloFiZWNhbWUKaWRhZQrRhdC4CuKWgVN0YXRlcwp2ZXJzZQriloFleHBsCnludApVTgplZQplbmRlbnQK4paBbWFraW5nCuKWgSIkCnVuaQpxdWVuY2UK4paBbHVpCkhUCuKWgXVzZXMKemllCm5pYQpDb250ZW50CuKWgUNvdW50CuKWgXN0YW5kYXJkCkVOVAriloHQutC+0L0KZm9ydAphZGFzCtC30YMKU3lzdGVtCuKWgVN3CuKWgWV2ZXIKTE8K4paBY29ycmVzcG9uZAriloFQbwphcmdpbgrQutGCCtGW0LkK4paBcmVtYWluCmNpbwriloFhY3R1YWwK0YHRgtGDCuKWgXNpbmQK4paBUGUK4paBY2hhbmdlZAriloFOb3RlCnNraWUK4paBZmFtaWx5Cml0w6AKY29zCnR4dAprZXIKY2VlZAriloFhcnIK4paBY2FtCml6ZXIK4paBRGFuCmhlbAppY3VsdApIUAppbGVyCuKWgVNhbAriloFjb25uZWN0aW9uCnVzaW9uCmtuClJJCuKWgXZvbQpMaXN0ZW5lcgriloHDtgriloFkaW0K4paBcHJlc3MK4paBZXNjCuKWgVRyeQphdGFsb2cK4paBdGhhbmtzCkRPCuKWgXdyaXR0ZW4KZGlyCnJldwriloFmaXJlCuKWgU5hY2gK4paBw6EKZW5jCuKWgW9yaWdpbgriloFOb3ZlbWJlcgriloF9OwpDb3VudAriloHQl9CwCuKWgWdyYXBoCuKWgW1pcwriloFFeHRlcm5hbAriloHiloHiloHiloHiloHiloHiloHiloHiloEK4paBb3B0aW9ucwriloFVUkwK4paBcGhwCuKWgWludGVncgpDb25maWcK4paBVGV4dAppbm5lcgriloFjcml0CizigJ0K4paBdG9nCiQkCm5vZgriloFzZXMKw7xocgriloFTaW5jZQpEZXMKdWJlCuKWgXNlY3Rpb24K4paBZ2kKZm9yZAriloFBc3MKYWluZXIKdHRwCuKWgWJlaGF2CnBvcnRzCmRyYXcKVGhpcwpyYW5jaAppbmRpbmcK4paBZXN0YWIK4paBb2J0YWluCnJpY2gKbGljaXQK0LXQsgriloFxdWFsCuKWgXphCuKWgWhhcgriloFmYWMKYWFyCmpldAppY2xlcwriloFBdXMK4paBaG9yCuKWgXJlbW92CuKWgXdpZQpDbGllbnQK4paBbmF0dXIKaGlwClN1YgriloFyYW5kb20KREYK4paBYXJlYQp0YWcKUHIK4paBSXRhbAriloFyb2t1Cm5vZm9sbG93Cip9CuKWgW90aGVycwriloFsaW1pdAriloFzaWwK4paBc2F2CuKWgW9mdGVuCuKWgXJlbmRlcgpEQgriloFNYwriloF6aWpuCtC20LXQvQriloF0YWcKbWluZwpsaWNoZW4KcGFjawriloFBZwriloFzZW5zZQpwZwpNZXRob2QKYWdlZArDoWcKxYJhCuKWgWludGVyZXN0CuKWgWFzc29jaQp2b2x1dGlvbgriloFlbXB0eQppY2hlCuKWgWdybwriloF0eXBlcwriloFTaWUKSW50ZXIK4paBbm9yZWZlcnJlcgriloFnaXZlcwpoYWwK4paBc2F2ZQriloFmb250CnJ1Y3Rpb24KU2NyaXB0CuKWgWFsbGEK4paBc2F5cwriloFmdQphcGUK4paBbGFuZ3VhZ2UKaWdlcgriloFLaW5nCmJvcgp1dgriloFzaGFsbAriloFFdXJvcGUK4paBZWluZW0K4paBd2F0ZXIK4paBZ292ZXJuCmFuegphdG9ycwriloFtb250aAp5ZQriloFpbXBvcnRhbnQKYXR6CmZpcnN0CuKWgVRyYW5zCuKWgU1hZAriloFicmEKaWthCuKWgVNhaW50Cm9yaWEKa3JlCmVtZW50cwriloFCZW4KbGF2CuKWgWFkbWluCuKWgUhlbgpyaWwK4paBU20KY2F0CuKWgVJlZmVyCuKWgdCoCuKWgXByYWN0CuKWgVBhdAriloFHcmUK4paBeW91bmcK4paBSW50ZXIKb21hCnRlZ2VyCmliaWxpdHkK4paBcGFyYW1ldGVycwriloFldmVyeXRoaW5nCmRhdAp1cm9wCm9sZWFuCuKWgXJldHVybmVkCuKWgUNsYXNzCmFjeQojIyMjCuKWgXDFmQriloFmb2xkZXIK4paBa29uCuKWgWd1ZXNzCmd0Cmplbgphbm5lbAppY29uCuKWgWNvbWIKcmljdAriloFoaWoK4paBYXV0aG9yCnNlZQpoZXJlCnN0cmEK4paBZW50aXJlCuKWgWRpcmVjdGx5CnJhZnQKaGVldAplc3RlcgriloHQvNC4CuKWgW1hc3MKdW50dQriloF1c2VycwpjaGkKUEUK4paBY29tcG9uZW50CkNsaWNrCkF0dAriloFzb2JyZQphbmRzCuKWgUhvbAriloFTYW50Cm9yaQriloFzdWEKc3RkCmVudGljCkNDCuKWgWZpbHRlcgpTUUwK4paBR29kCkF0CuKWgdC80YMK4paBcGVyZm9ybWFuY2UKZGVsdGEKYW5kZQphbWVyCtC00YsK4paBY3VsdAriloFOb3IKYnV0CuKWgWxpawoqKioqKioqKgrRgdGC0LLQtdC9CuKWgWNvbW1lCuKWgWRyCmltZXIKb3JkaW4K4paBY29uZGl0aW9uCmVzdGUKKFsKRkYK0YLRjNGB0Y8KaW1vCnJhYgrRltC70YwK4paBaGFsZgplYWNoCkRpcwriloFyb3dzCuKWgWhvbgriloF0b2dldGhlcgriloHImWkKbWVkaQphZ24KYWxsZWQK4paBdmlsbApJTkcKaWRkZW4K4paBZHJhdwp5bnRheAriloFhdHRlbXB0ClVSTApwb3NlCuKWgWluZGljCtC90LjQutCwCuKWgUVuZ2xpc2gK4paBZMOpYwriloFuZWVkcwriloFub3JtYWwKdXJ0CuKWgdC90L4KfX1cCmxhc3QK4paBRmluCuKWgUZlYnJ1CmlsYQriloFjb3VudHJ5CuKWgWZpZWxkcwriloFtYXgKbMOpcwpvd2llCuKWgWRldXgK4paBYnVpbHQK4paBTWFpbgriloFjYW1wCml2bwppdmEKaWN5Cnppb25lCk5vZGUK4paBOikK4paBYW1vbmcK4paBT2IK4paBY2FzZXMKaGFwcwpzZXJzCmFydGVyCsWbY2kK4paBaXRlcgriloFuYW1lZApleGVjCuKWgXNlYXNvbgp0b3QKPT4KZ3JhcGgK4paBbmlsCmFjaW9uYWwK4paBTlVMTAriloFzcGVjaWFsCtGB0YLQtQpjc3MK4paBXCgKdnMKYWVsCuKWgWNpdHkKb3ZhCuKWgWFydGljbGUK4paBU291dGgKQWN0aW9uCsOnYQpzcHJpbmcKaXR1ZGUK4paBY29tcGxleAriloHRh9GC0L4KYnVpbGQKZ2FtbWEK4paBRW50CmllcnMKJy4KY2FyCmFwYWNoZQppbmdlbgpJbnB1dAo64oCJCuKWgWR5bmFtCmFsbHMKc2hvdwp8XAriloF3aXJkCkJhcgphbHRoCm1vZGVsClRyYW5zClJvdwphYmUK4paBbGliCm51bGwKcmFnbWVudAriloFTdGF0ZQriloFsYXcKRnJhbWUK4paBTG8KZ2ViCn0kLgriloFuZWVkZWQK4paBY29udHIKYXJpZXMK4paBc2NyZWVuCnlyCm1tCuKWgXNob3duCuKWgWJhZAriloFjYXN0CuKWgVRlc3QK4paBQXVmCuKWgXF1YW50CmlnYQriloFyZW4K4paBTWFjCuKWgXRyYW5zZm9ybQriloFkaWZmZXJlbmNlCuKWgXRpdApURQriloFzdGVwCuKWgWNhcHQK4paBY29sbGVjdGlvbgppY3Rpb25hcnkK4paBVG9tCnJpZXIK4paBbW92ZQpjb3BlCm9yZHMK4paBZnVydGhlcgriloFjb2x1bW5zCuKWgUxpbgriloFmaXhlZAriloFjaGlsZHJlbgpNUwptbwp1bmEK4paBaW5kaXZpZAp0dHkKYXN0ZQpzcmMKbWF0Y2gKd2kK4paB0YUK4paB0LTQuAriloFvcmQKaXZpbmcK4paBQnJvCuKWgWFsbW9zdAriloFQcmVzCnJlY2kKYXJpbmcK4paBLy8vCtC10YLRgdGPCuKWgXNpZwpsaWdodAriloFSZWQK4paBc3VnZ2VzdApvbGYK4paBw6l0w6kKaXNhdGlvbgrQt9C90LAKTmV3CtGB0YLQsNC9CkxBCnVuaWNpcAriloFmaWd1cmUKbXQKaWFsZQriloFjYXRjaApkZWZhdWx0CuKWgXRlbGUK4paBbWF0dGVyCmNhc3QK4paBUmljaAriloFoYW5kbGUKdmFsdQokLQrQvtCxCuKWgWpzb24KQ3JlYXRlCuKWgWV4YW0K0LDQu9GMCtGO0YIKb3JlZAppZG9zCmFwcGVuZAriloFBcnJheQrQutGBCn1bCnJpdmUK4paBY2x1YgptYW5uCuKWgWVzdGUKZXN0YQriloFHaQriloFKYXAK4paBTmFtZQpDb2x1bW4Kb3Vwcwppc21vCuKWgUNpdHkK4paBY2xhc3NlcwriloFpbmZsCmhsCtGA0L7QvAriloFhZGRpbmcK4paBZmFpbAp4eArDtWVzClNjCnV0aWwK4paBbG9jYXRpb24KbGVnZQphZ28K4paBcHJvcGVydGllcwphYmlsCnZhcwp9JCwKaXR0ZWQKw7NkCuKWgURlbQriloFhc2tlZAriloF0YWIKU291cmNlCuKWgWVycm9ycwpvZ3JhcGhpZQriloHQttC4CuKWgW1hbApzdHJhY3QK4paBZHJvCnJhawriloFub3RlCuKWgXNldHRpbmcK4paBZmVtCuKWgXNhdwppYXIKSEVSCtC10YEK4paBcHJlZAriloFPdXQK4paBaXRlbXMK0LvQsNC9CuKWgXdlcmQKZXJzaW9uCmxpYQriloFzaW4KaWNodGUK4paBZmVlbAriloHQv9GA0LAK4paBb2RlcgpVRQpvY3VtZW50CuKWgW1vZGUK4paBTmEK0LTQtdC9Cm1lcwpmcmFtZXdvcmsK4paBYXV0bwrQvdGL0LwKdWJ5CuKWgXRlbXBsYXRlCuKWgW1lc3MKaWVkZXIK4paBcmVsYXRlZApva2VuCuKWgWZvbGxvd3MKc2VhcmNoCmFtaQriloF3YWl0CmlncgriloFsb3cK0YHQutC40YUK0YHQutCw0Y8K4paBTWFyawriloFpbGwKYW1lbnRvClw8CuKWgWRmCm9zaXRpb24K4paB0JLQuAppc2YK4paBRGV1dHNjaAphaGwKd2FyCml0ZWN0CuKWgXNhbAplbGVuCkJ5SWQK4paBZ3J1CnN2CuKWgXBhc3NlZAriloFhw7EKU2NoCuKWgXNvbHZlCndlaXNlCmF0b3MK4paBbWVnCuKWgW1lbWJlcgplcm5hbWUK4paBY29ubmVjdAppcHMK4paBcm91bmQK4paBXQpuZXMK4paBZGlyCuKWgUxvbmRvbgpkeQpGQQriloFyZWNlaXZlZApyZWV0CuKWgUxvZwriloFTY2hvb2wKYW5nbwriloFUaGVzZQriloFNb250CuKWgWVuZXIKbGFkCuKWgWRlZmluZQpzaWduCuKWgWNsZQpmaWd1cmUK4paBVmlldwp0ZXh0YmYKJFwK0LfRiwpudW1iZXIK4paBZGluCmVsbGVyCm9yaXRobQpmYWxzZQpmb2wKZmZpY2llbnQK4paBSFRNTApsaWNoZQriloFNbwriloFpbnRyb2R1CmV4cAriloFzdHJvbmcK4paBdGh1cwovKQriloFlbGUK4paB0YLQsNC6CuKWgdC/0LAK4paBZG9udAriloFjYXVzZQpOdW1iZXIK4paBaW1hZ2VzCuKWgXNhbXBsZQriloFzY2kKbGlrZQriloFMb3UKZGl2CmFuYwriloFmcm9udApuZW4K4paBbWlzc2luZwphcmlhCnByZXMK4paB0L/RgNC10LQKREkKZmlsdGVyCuKWgU1pdApVUgriloFvcHAK4paBc3FsCuKWgdGA0L7QutGDCmVyZW4KZW1hdArDrXMK4paBSmVhbgrDqWMK4paBY2kKZW5uZQphdGZvcm0K4paBdGFrZW4K4paBT2YK4paB0L3QsNGB0LUK4paBZXJyCk9QCkZyb20KRGVmYXVsdAriloFHZW5lcmFsCndpa2kK4paBZ3JhbmQK4paBZWluZW4KUmVnCkhhbmRsZXIKY29ub20KYW5nZXIK4paB0LHRi9C7CuKWgUxvcwriloFleHByZXNzaW9uCtGI0LAKeWFsCuKWgSQoJwriloFzd2l0Y2gK4paBdmVjdG9yCuKWgVRob20K4paBdmlydApsZWFzZWQK4paBY292ZXIK4paBcmVzcApha28KcmVuY2gKb3RhCkNlbGwKYW5nZWQK4paBKz0KbGFjCnNrYQpuZXh0CuKWgUludGVybmF0aW9uYWwK4paBV2lsCuKWgW9udAppYnIKdXN0cgriloFibGFjawriloFzZWxlY3RlZApjaGVyCuKWgWxpdGVyCnJvb3QK0LvRgdGPCuKWgUxpZmUK4paBaW5zZXJ0CuKWgW1hdHJpeAppc2VzCildCuKWgXBlbApPdmVycmlkZQpyeXB0CuKWgWZvcm1lcgriloFGaWxtCuKWgU5vcnRoCmNsaWVudAriloFuaWdodArRhdC+0LTQuAriloFBdXN0cmFsCuKWgVJldApyaG8K4paB0L/QtdGACmlwZWRpYQriloFleHByZXNzCuKWgXRoaXJkCuKWgW1ham9yCuKWgWdyYWQKb3dlCuKWgWJlbGlldmUKb3VybmFsCuKWgXN0YXR1cwp1bmMK4paBZG91CuKWgUpTT04KdWlzCuKWgXBvcHVsYXRpb24KZW56CuKWgVdpbGxpYW0Kc2YK4paBT2JqZWN0CuKWgWNpbgriloFEaQpjdXJpdHkK4paBT3BlbgriloHQu9C1CmxhcgphZGRpbmcK4paBa29tCn0oXAriloFraWwKdW1lcgoiLz4K4paBZmVhdHVyZQriloFBcmUKY2tzCuKWgUludGVybmV0CuKWgWloCuKWgXN0YXJ0ZWQK4paBZWFybHkK4paBYmVnYW4KVEgKcHl0aG9uCmFzcAriloFGcgriloFjbG9zCmlzdGljCuKWgW11c2ljCuKWgWRpZwriloFpdGFsCuKWgURhdmlkCuKWgXdlYnNpdGUK4paBY29udHJvbGxlcgriloFNZXIKY29udGV4dApwcm9kdWN0Cm9zcAriloHiloHiloHiloHiloHiloHiloEK4paBanVuCnJvd24K4paBQXoKIjoiCuKWgWFhbgriloFEYXRlCm11bHQK4paBYnJvd3NlcgrRgNC10LQKd2hpY2gKUkEKcXVhcmUK4paBUnVzcwriloFzb29uCuKWgVByZQp0YXUK4paBd2VlawriloHQsdCwCuKWgW9jdAriloF0b3duCnJveQriloFlbHMKYmxpYwp1bmRsZQriloFIaXN0b3IK4paBZm9pCuKWgW1vZGVscwrQt9C+Cm9ueW0KUGFyYW0K4paBTWV0CmdlbmVyCmrEhQriloFlc3BlCkNFCuKWgWRldmljZQplbGxvdwriloFkZWJ1ZwrDqXJpZQp1c2luZwrQsNC90LMK4paBKikKdWRpCuKWgU1pc3MK0LrQvtC8CnBvc2VkCuKWgXp3ZQrRltC9CuKWgVJvYmVydAriloFPY3QKbG9wCmphcgriloFhdmVyCuKWgWhhYml0CuKWgTo6CsOkbmcKU3RhcnQK4paBcG93CuKWgXNyYwriloFwYXR0ZXJuCuKWgdCtCuKWgWJpCm90ZXMK4paBX18K4paBc2VucwriloFhdm9pZApleGFtcGxlCnV0dApMYWJlbAp0ZXgKYm9vdAplc3RvCuKWgU1hcmNoCuKWgWVhc3kKaWN0dXJlCkdyb3VwCuKWgWZhdGhlcgriloF1cGRhdGVkCuKWgVZvCuKWgUlJSQpvbWVnYQriloFhbGxlClJlYwp5ZwrQt9C1CuKWgURpbQpuZWN0CuKWgVRvcgriloFkZXV0c2NoCuKWgXdoaXRlCuKWgW5hdGlvbmFsCnBwZQriloFhaXIK4paBcGFzc3dvcmQKZGV0CuKWgWJpZwriloFVc2UKY2FsbAriloFleHRyYQpXZQphbmlhCuKWgWhvbGQKQ29udHJvbAriloFDTwriloHQvNGWCml0aQriloFLZQplbnUK4paBUGFyawrRgtC+0LwK4paBYXV0aAriloFjZW50ZXIKUGgK0YLQvtCyCmlkaW5nCuKWgWFjcm9zcwriloFzb25nCuKWgXBoeXMK4paBbnVtZXIK0YnQsAriloFBbGV4CuKWgXByb2JsZW1zCuKWgUVycm9yCmZvcm1hdAriloFBY2MK4paBc2l4CuKWgWRiCuKWgUNhc3QKb21zCnByb2plY3QK4paBdmVydApjcmV0CuKWgWhlYWRlcgriloFzdHJlYW0KaWRzCuKWgXRvcgriloFzZXB0CuKWgWVzdGltCuKWgWRlY2wK4paBZ2F2ZQriloFwbGF5ZXIKeXNpcwriloHQtNGA0YMKYW1tCtGJ0L4K4paBKCIK4paBYXgKUHJvcGVydHkKdXNyCuKWgXNvbWVvbmUK4paBaW1wcm8KYWRlbgpyb3RlCuKWgdCc0LgKaWgKKyspCuKWgXZpZGVvCuKWgWV4aXN0cwrQutC70LAK4paBY29tcGxldGUK4paBc2Vzc2lvbgriloFjb25zdGFudAppY29zCuKWgXBhY2sKcm9tZQplZ3IKQXBwbGljYXRpb24K4paBeWVzCuKWgWVsbGUK4paBZW1haWwKb3JmCmNhc2UK4paBcG9pbnRlcgriloFyZWdhcmQKc2VuCnN0YXR1cwriloFtZXMK4paBZGVsbGUKaW5ndG9uCuKWgUJhcwopXgpkZXZlbG9wCuKWgWZvcmNlCuKWgWNoYXJhY3RlcnMK4paBY3Jvc3MK4paBZGVhdGgK4paBdGFrZXMKw6lyaQppZ25lCtGH0LXQvQpVUAouOgpUaHJlYWQKanUKaW55CuKWgWRldGFpbHMK4paBeG1sCnRhaXQKb3V0cHV0Cm1lc3NhZ2UKJycK4paBQnJpdGlzaAp2aWxsZQriloFEaXYK4paBVXNlcgpjbQrRh9C90L4KY29sdW1uCmVxcmVmCsOzcgpvbm9tCuKWgVBvc3QKZWxsZW4KQWIKdWx0w6kK4paBcGVyZmVjdAooKXsKdmlzaW9uCmFjdGl2ZQpsaWVyCnJpagpzZAriloFrw7YK4paBbmllCuKWgXJlbGlnCuKWgW90CuKWgW1hY2hpbmUK4paBaGVsZAopJC4KPT09PT09PT0KY2tlcgrQstGLCmJvcm4K4paBcGFzdArRgNC40Y8K4paBRHIK4paBcmVndWxhcgriloFwcm92aWRlZApURVIK4paBdW5pdmVycwriloFnZXRzCuKWgW51CuKWgS8qCm9iZXIKZmluCuKWgW5lbGxhCuKWgWJlY29tZQriloFgYAriloFoaXN0b3J5CuKWgVNvbAriloFSYWQK4paBdGVybXMK4paBZXZlbnRzCmx5bXAKKSkpCtGA0L7QstCwCuKWgWFic29sCuKWgXNvZnQKbGlua3MK4paBaG9wZQriloFzdWJqZWN0CiIpLAriloFjcmVhdGluZwriloF9DQriloFTawriloFmbG93CuKWgdCg0LAK4paBYXNzZXJ0CnpldAriloFGcmFuawpzYQriloFkaXN0cmlidXRpb24KY3UKYmFuZAppenoK4paBam9iCmluZXIKc3RydWN0CsOhawpUTwphdWYK4paBZXh0ZW5kcwriloFHcmEKZGlzcGxheQriloFzaWduaWZpYwpvbmV5CnNvdXJjZQptaWNyb3NvZnQKaW5kZXIK4paBcXVpY2sK4paBd29uZGVyCkluc3RhbmNlCmVsbGVzCsOobWUK4paBY29tcGFueQp1w58KLn0K4paBc2VwYXJhdGUKVU0KSEVSRQriloF3cml0aW5nCml0dXRpb24K4paBR2VzY2gK0LzRjwriloFKYW1lcwriloFERQriloFTcGUKcHJvY2VzcwpTdHIK4paBc3ltCuKWgWFvCuKWgXd5CuKWgWFueW9uZQriloFVcAp1c2V1bQphcm9uCuKWgWRlZmluaXRpb24K4paBYCQK4paBZmF2CnJpYnV0ZXMK4paBUsOpCm9ncmFmaWEKZWxlbWVudApjYXAKcGF0CuKWgUJyYQopKAriloFhY2NvcmRpbmcK0LPQtQriloFwaWUKZWxpCn0iCuKWgWFjdGl2CuKWgXN0b3AKcGF0Y2gK0YLRlgriloFKb3NlCkVuZAriloFwcnplCuKWgWFnZQppdG9yeQriloFQSFAKYWdlbWVudAriloFgLgriloFwcmV0dHkK4paBcmVjb21tCuKWgXN1ZAriloFyZXF1CuKWgdC+0LHQu9CwCmF0aXZlcwriloFIaWdoCsOhegpvdWwKcmVzdAriloFUZXIKdW5kZXIKdGhlcm4KY2VudGVyCuKWgXVyCmxhdAriloFpbnRlcmZhY2UK4paB0LjQvQriloF3aG9zZQppY2FzCmFtZW4KRmlsdGVyCuKWgXN0YXRpb24KUGFnZQriloFhcm0K4paBZXllcwriloHRgNCw0LkK4paBc2V1Cm9saQp3aW4KbGlrCmdleApjaGFuCmlkZW5jZQphcmdzCmFraW5nCuKWgUdvb2dsZQriloFTdHVkCuKWgWhvCtGC0L7RgNGLClN1CuKWgWF1dG9tYXQKw6ptZQriloFjeQpsb3IK4paBc3RhY2sK4paBU0VMRUNUCkFGCuKWgT4+CuKWgWNvbXBldAriloFwYWlyCuKWgWluZ2zDqXMKUmVzcG9uc2UK4paBRmlnCmdyYWQK4paBZG9jdW1lbnRhdGlvbgriloFjYW50CuKWgWFwcHJlY2kKw6VuCuKWgWxlYXJuCuKWgWluZGVwCuKWgXBhbApwYWNrYWdlCmFyZXMK4paBQmVybGluCtCx0LvQuApyZWljaArRkdC9CuKWgXNhdGlzZgriloFyZWdpb24K4paBZnJpZW5kCuKWgUdlb3JnZQriloHQktC+CuKWgSIiCuKWgWRlc2RlCkZhY3RvcnkK4paBQ291bnR5Cm91dgriloHigJgK4paBaW5zdGFsbGVkCuKWgXdhbnRlZAriloFQeXRob24K4paBaW50ZXJwcmUK4paBaW5jbHVkZWQK4paBKCgK4paBYWx0ZXJuCmlzdG8KZ24K4paBYm9yZGVyCnBkZgriloFkdXAK4paBZG93bmxvYWQKanVzdAriloFtZW1iZXJzCmNoaWxkCuKWgXBheQriloFjZXIK4paBbG9va2VkCuKWgWNvcnJlY3RseQphdXRoCuKWgdGB0YLQsNC9CuKWgWVzcAriloFkZXNjCmViZW4K4paBcXVlc3Rpb25zCm1hbAriloFhYmdlcnVmZW4K4paBQmFuZAriloFbXQpCYXNlCuKWgXJpcwriloFmb3J0CuKWgUlkCuKWgXZhcmlvdXMK4paBTGVhZ3VlCuKWgUhhbmQK4paBVHlwZQppcmwK4paBRmUKacOpbgppdHRlcgriloFmYXN0CnN0YQriloFleGNlcHQKaWN6CuKWgUZyZW5jaAriloFlbnZpcm9ubWVudAriloFjb25zZQrRg9GACtC+0LPQvgriloFuZWNlc3NhcnkKdGFyZ2V0CuKWgXJlYWRpbmcKaG9tZQp6ZWljaAriloFlcXVhbAriloFwacO5CuKWgXByZW0K4paBZGlmZmljdWx0CuKWgXVuaXQK4paBcmVwbGFjZQriloFoZWFydAriloF0YWxrCkFNCuKWgVJFCuKWgVBlcnNvbgplbmRlbmN5CuKWgWltbQriloFodW1hbgpkbgriloFLaXIK4paBQXV0Cmtub3duCuKWgWZyZXF1CnN5c3RlbQrQu9Cw0LIK4paBU3oK4paBR2FsCtC90L7QtQpzZWx2ZXMKcmlnaHRhcnJvdwriloHQodCwCj0iQAriloFidWlsZGluZwppbXBvcnQK4paBZmFtCuKWgWRlbGV0ZQphaXJlCm1hcnkK4paBZnVuZAriloFwYXJ0aWNpcAriloFzeW4Kc2luCuKWgWxvd2VyCuKWgXplcm8K4paBc2VjCuKWgWZyYQpQb2ludAriloFmYWlsZWQKaWVudG8KY3VwCuKWgXNsb3cK4paBbmF0aW9uCsOkaHIK4paBaW5mbwriloFQdWJsaWMK4paBZGVjbGEK4paB0KLQsAriloFzb2xkCuKWgVJlbQriloFQaGlsCtGB0YLRgNCwCuKWgW1laHIK4paBV29yawriloFOb3JkCuKWgWZhaXQK4paBZ2V3CnByaW50bG4Kb2JpbGUK4paBS29uCuKWgWFzc3VtZQpsYW5kcwriloFhbW91bnQK4paBUHJlc3MKw71jaAriloFtYXhpbQriloFDaGFtcGlvbgpsaWJyYXJ5CmHDsQriloFXYWwKQ29tbQpdXQriloF6dwriloFzb2NpYWwKTEkK4paBVW50ZXIKdm9yCkRlbHRhCmVtYWlsCnJhaW50Cm9uaQriloFhbHQK4paBbsOpCtGG0LjRjwpvZ3JhcGh5CuKWgW1lbnRpb25lZAriloE8PQriloFjZXR0ZQriloFjdXJyZW50bHkKdmFyZQppemluZwriloFEZWYKaWNvbArDvG5kCuKWgWNvbmZpZ3VyYXRpb24KZXN0aWcKSUlJCmxhbQppw6hyZQriloFFYXIK4paBdHUKRW50CuKWgVVzaW5nCuKWgdC60L7QvApjaWUK4paBcHJvb2YK4paBaW52b2wK4paBSGlzdG9yeQo+PAriloFBTkQKYXZ5CuKWgXJlbGF0aW9ucwokewriloFjb21lcwriloFkaXJlY3Rpb24K4paBSnVuZQriloFXYXkKQ29tcG9uZW50CmVjaAriloFQZXRlcgpzZwriloFzdHJhCnVjdAriloFpbXBsZW1lbnRhdGlvbgphdHRsZQriloFjegpwbG90CuKWgXBsYXllZAoiPjwvCuKWgWZpdmUK4paBY29sbAriloFDaGFybGVzClRyYQriloFzdW8KZmlsZXMKZW50ZXMKcmVzcG9uc2UKSG93CuKWgVNvY2kK4paBaWduCuKWgWxlZAriloFHZXJtYW4KdWRvCuKWgUR1CuKWgXRpbQpvdW50ZXIK4paBYXR0YWNrCnVyaQriloHQsNGACmVzc2UKaXZpbAriloFKdQriloF2ZWwKbWF0cml4CuKWgU1hdApnaW8K4paBWmVpdApWRVIKaGFzCkNvbm5lY3Rpb24K4paBaWhyCuKWgWF0dHJpYnV0ZQriloFkaXNjdXNzCuKWgWRvbWFpbgpiaW5kCuKWgVNlYwpyaWsKY2xvc2UKZ2luCuKWgWxvdmUKYW50bwpnZW50CmFiYQpqYW5nbwpiaQriloFvYnNlcgppdHRpbmcK4paB0YDRgwp9PQphZ2VuCkJDCnNvbWUK4paBQnUK4paBc29jaQriloFpbmRpdmlkdWFsCuKWgWRlYWwK4paBb3V0c2lkZQpyaW8KRXhlYwphbmRpZAriloFidXNpbmVzcwriloF0ZW1wb3IK4paBVHVyCuKWgSghCnJpdGVyCuKWgWdvb2dsZQpdOgppdHRlCnhpCuKWgdCf0LAKaG9sCtC90YwKcmluZwriloFzdWwK0L3QvtGB0YLQuApfLgpnYXIKVGFzawriloFDaGVjawriloFtb2Rlcm4K4paBd2luCnVzdGVyCmhhbgpmb3JtYXRpb24Kdm9pZAriloHRhNC4CuKWgXVzZWZ1bAriloFFbmdsYW5kCmxvcwpldGltZQpldXIK4paBdW5pcXVlCuKWgdC60LDQugp5aW5nCm9iagp1aWQK4paBd2luZG93cwriloFkaXN0YW5jZQriloFub21icmUK0ZbRjwpvY3VzCmFobgppZXJ0ZQriloFkYXIKU0kKbG9uZwphc3RhCml2ZW4K4paBdG9sZAriloFHcnUKZm9vCuKWgWNhbGxpbmcKaWVtYnJlCuKWgWZ1dHVyZQpwcsOocwpsZWVwCmF2aWdhdGlvbgpQT1NUCuKWgWRlc2NyaWJlZAriloFub2NoCnVuaXQKYWxsZW4K4paBYnJhbmNoCmZhCuKWgWZpbGwK4paBb2JqCuKWgXRyZWUK4paBd3VyZGVuCuKWgUxpdGVyCnJvdApzcGxpdAplbWVpbgptb2R1bGUKQ0EK4paBb3BlcmF0b3IK4paBd3JvdGUK4paBSmFjawpvbG9naWUK4paBQW50CtGC0LXRgApzdHJlYW0K4paBUXVlCmVwc2lsb24Kbm9uCnN0ZWluCuKWgXNpbXBsCnB1YgriloFKdWx5CuKWgW5hdHVyZQriloFEYXRhYmFzZQrDs2wK0L3QuNC8CuKWgVZJCsOqdHJlCmlsZXMK4paBd2VsCicpLAriloFtdXQKbG9jYXRpb24K4paBdGhlcmVmb3JlCmVsbGkK4paB0IYKbsOpCuKWgdCw0LIKbGVkZ2UK4paBY29udmVyCsOtbQriloFYVgp2aWRlcgriloFKYW51YXJ5CuKWgXVzdWFsbHkK4paBcmVsZWFzZWQK4paBTWkKSGVhZAppbGxlcgriloFqYW4K4paBbGV0dGVyCnByb2R1CnJkCuKWgUNhbQosJwriloHQpgriloFwdXNoCnVwZGF0ZQriloFtYXliZQpIdHRwCkAiCtC80LXRgApzZXJ2aWNlCnBhcnNlCuKWgWRhc3MKw6puCikiCm1vcmUKLyoK4paBbWFzCuKWgWxpa2VseQriloFtYXRlcmlhbAriloFbWwriloFsb25nZXIKYmFsCuKWgUFyY2hpdgppZ3QK4paBZWd5CmlkZ2UKaWd1CmNvbmYK4paBaW5jCmNvbnN1bHTDqQriloFtYWkKV29yawriloHQs9GA0LAK4paBT2N0b2JlcgriloFnbG9iYWwK4paBc2VsCuKWgW11bmljaXAK4paBdmlvbAriloFEb2VzCuKWgVxbCtGB0LrQvtC8CuKWgWNvbXBvcwrQsdGA0Y8K0LLRjwriloFyZXNwb25zCuKWgWNvbnNpZGVyZWQK4paBSmFwYW4KcGVzCm9zdG8K4paBbWlsaXQKU1AK0YHRiwphdHRyCmNpbAppcmVjdG9yeQphdmluZwriloFEZWwK4paBcHJldmVudAppZGFkZQpnaXQKaWZvcm0Kb3V0ZXIKaW5jdApsZXZlbAphdGV2ZXIK4paBcmVwZQriloFleGMK0LTQsNGAClN0eWxlCuKWgVRob21hcwplbGluZQriloHQtgp1bnRpbWUK4paBbGFyZwpUcnVlCi4qCmNyZWVuCnlsZXMK4paBdHJhbnNsCuKWgdCh0L4KZW5zaW9ucwrDpGwKaXNzZQriloF2b2x0CmNpYWxseQpuaWsKLl0K4paBU3RhZHQK0LzRiwpmaWxsCmxvdgriloEiLwpTcAriloFBaXIKQ2FsbAriloFudXIKQ2hlY2sKaWVuY2UKZWZpbmVkCuKWgdCy0YDQtQrFgm8KZHoK4paB0L7RgAppa2VyCm93YQrQvtCy0LjRhwpyw6kKT0wK4paBbGluZWFyCuKWgWV4cG9ydAphaHIKaWNpYWwKUmVwCuKWgW5hdHVyYWwK4paBY29wCuKWgX0pCsOnw7Vlcwp6egpXaGF0CuKWgUhvdXNlClJlZgppbmdlcgriloF0YWtpbmcKbsSbCuKWgUVpbnoK4paBZGFtCuKWgWlzc3VlcwpCdWlsZGVyCmVkaXQK4paBcHJ6CnBhc3N3b3JkCkdlbmVyCnJpbQriloFwYXJ0cwotLS0KaWdpbmFsCuKWgVNjaQriloFtb3RoZXIKcmVhCuKWgWNvbnRhaW5lcgrQtNGPCuKWgUlQCuKWgW5vbmUK4paBZm9sbG93ZWQK4paBcGxlCuKWgW1lYXN1cmUK4paBdG91dApFeHQK4paBVFYK4paBZXhwbGFpbgriloFwYXBlcgrRgdGC0ZYKd3MKV2lrCuKWgW1tCuKWgU5vcm0K4paBU2VydmVyCmZvbnQKZWNhdXNlClRSCuKWgdCx0LgKTGEK4paBZW5zCuKWgXJldHIK4paBU2lsCuKWgXNlcXVlbmNlCmFyYwpJVgp6w6EK4paBQW5kcm9pZAriloFTdXBlcgriloFyb3oKb3ZpZQpPbQriloFXZWxsCm1ha2UKb3JwaAriloFKZXIK4paBUm9zCnJlZmVyZW5jZQriloFmZWF0dXJlcwriloFHZXIK4paBTGVnCuKWgWxhdGUK4paBYWRkaXRpb25hbAriloFmbG8K4paB0LXQs9C+CuKWgWFsZ29yaXRobQpCQQprYXIKSVAKXSk7CuKWgWFwcGVhcnMKeXcK4paBdGVtcAriloFhdXNzaQptZXRob2QK4paBcGV0CnN0cmFwCmFybmluZwriloFjdXQK4paBU2EK4paBdHJhY2sK4paBZW1wbG95CuKWgWluZGUKcmF2CuKWgWdlbmVyYXRlCmJlcwphcnRzClN0YXR1cwp1Z2UKYWxpcwriloFvdmVycmlkZQriloFmaQriloFsb3N0Cm90ZWQK4paBcm9vbQriloFjYWxscwriloFjb25zaXN0CtGA0LXQvQriloF2aWxsYWdlCmRpc3QK4paBdGVjaG4KZW56YQriloHRgNC+0LcK4paBQ2F0YWxvZwriloFiZWNvbQpyb3dzCuKWgU5lbApjb21wbGUK4paBcHJlbWkK4paBcm90CuKWgVdlYmxpbmtzCuKWgWZvb3RiYWxsCuKWgWNvbXBhcgriloFsaXZlCtC60LjRhQriloFlcXVpdmFsCmNhcGUK4paBR2VuCm5kZXIK4paBVmlzCuKWgWJlaGluZApnZXJzCnZva2UK4paBbWVkaWEKRVgKdGhhdAriloFzb25vCuKWgW15c3FsCmV2CuKWgXJ1bGUK0LTQvtCyCmFjYwriloFXSEVSRQrQtdC90LUKR3JpZAriloFqdWwK4paBbW9ydAriloFnZW5lcmF0ZWQKZW5jaWEKYWN0ZXIKY2x1ZAriloFzY2VuCuKWgWNsb3NlZAriloFNaWNoYWVsCuKWgW1vdW50CikkLAriloFkcm9wCuKWgWNvbWJpbgp0b2NvbAriloFnb2VzCuKWgWdlYgpNRAriloFBbnRvbgriloEkKCIKVGVtCuKWgWNhCuKWgWluc3RydQplZHMK4paBdG9vbApteXMK4paBcm91dGUKIikpCtC/0YDQtQriloFmbG9hdAriloFzZXJ2aWNlcwriloHRh9C4CtC60ZYKZW1ibHkKYWtlcgriloFTb24K4paBTWF0aAphc3NlCm91c2x5CmxpY2F0aW9ucwriloFydQriloHRidC+CuKWgUNvbnN0CuKWgWltbWVkaQpGTwpvcm8K4paBcHJvZHVjdGlvbgpyZWkK4paBanF1ZXJ5CmFubnQK4paBV2hpbGUK4paBc24K4paB0LPQvtC00LgKRm9ybWF0CuKWgXN0YXIK4paBU2VuCuKWgWtvCk5BTUUK4paBcHLDqXMKY2hhCndoYXQKb21pbgplbmRhbnQKaHkK4paBb2JzZXJ2CuKWgXByZWZlcgrRg9C9CuKWgWNvbnN0cnVjdG9yCmJzCuKWgW1hYwriloFCcmUK4paBSW5zdGl0CuKWgXN0b3J5CuKWgXN5bWJvbAplbGVzCsOfZQphc2luZwriloF3ZXN0CmlhbnMK4paBbWFzdGVyCtC10LcK4paBd2F5cwpibQriloFwaWNrCuKWgWRlcGFydApCYWNrCmVuawpsaXBzZQriloFtYXRoCuKWgUZyYW5jaXMK4paBRGVjZW1iZXIKZnMKcnVtCuKWgWRldmVsb3BtZW50CkxUCmVybmVsCuKWgVRydWUK4paBTW9yZQpyYW5nbGUK4paBY29uZGl0aW9ucwpPcHRpb25zCuKWgWdsaQriloFvcGVyYXRpb24Kw6lrCmFjaHQKaWdodHMK4paBbWlzdAphbmRhCuKWgWVuZXJneQriloHQttC1CuKWgXdvbWVuCmFrdAriloFDSApnZWJyYQriloFtZWV0Cml1CndlbGwKw7ZsCuKWgWdvdmVybm1lbnQK4paBSm9zCmllZwriloFzeW50YXgKZml4CuKWgVBldApqcXVlcnkK4paBY2FyZAriloFwcmluY2lwYWwK4paBZHJ1CuKWgXRlcnJpdAriloHQv9C+0LIK4paBU1MK0YDQuNC4CnRyZXMKYWduZQpseWluZwp0aWxkZQpiZXJuCmVudGVyClBlcgriloFzb21ldApMb2FkCmxpY2UK4paBc291cwriloFMb3VpcwriloFsb2dpYwriloFPdGhlcgriloFjaXIKw6l2CmNocm9uCuKWgWhhbgriloFtYXJnaW4KV2luZG93CsOocmVzCm55Y2gKcHVzaApib2xkcwriloFsYXlvdXQK4paBW2AKQ2hhcgriloFDYXAKYm9sZHN5bWJvbAriloFSb21hbgriloFNYXgKOigK4paBQ29kZQppc2luZwriloFzdGF0ZXMK4paBZXhpc3RpbmcKc3VwcG9ydAriloFyZXNlYXJjaApsaWNhdGUKdmFyaQriloFiaWoK4paBYXBwZQriloFoYXBwZW5zClwiCuKWgWNvbmNlcm4Kd2VzdAriloFzYXlpbmcKcGlkCuKWgXJlY29nbgriloFIZXQKQ2hpbGQK4paBY3MKXCwK4paBY2xlYW4KbGVjdGlvbnMKYWNjZXNzCtCy0YMK0L/RgNC+CmFjaXR5CuKWgU9mZgriloFlYXNpbHkKw6hxdWUK4paBamFrbwriloFpegriloFIYQriloFEZXQK4paBZm9ybWEKc2NoZQpzd2VycwriloFvZmZlcgpxdWlyZWQKVXNlcnMK4paBc3Vic3QKPigK4paBZ3JvdW5kCnVubgpyb2QKc3BlCnVyc29yCuKWgWxlYXZlCmVyawriloF0YWwK4paBYm90dG9tCklPCuKWgXBvcHVsYXIKaWdvCuKWgVRpbWUKdmFsdWVzCuKWgUxvYwriloFDbHViCuKWgWFuY2hlCmlhxYIK0ZbRlwpPbWVnYQriloFsb2NhdGVkClVybAriloFFc3AK0LvRiwrRhtGMCnVsYXRlCuKWgWpvaW4KYXZlcwp2ZXQKbGlvCnJlbW92ZQriloF0b2tlbgriloFvcHRpbQriloFjbGFpbQpvbG9naWNhbAriloFjc3MK4paBYWx0aG91Z2gK4paBcHJpdgriloFCYQrDvGwKZW50aWNhdGlvbgriloF2ZW4KU2VydmVyCuKWgUNvbmcKTkVUCkNPTgpkdApwZXJ0aWVzCuKWgWVwaXMKd2lraXBlZGlhCuKWgWVuZ2luZQriloFmZXIKZ2V0RWxlbWVudAriloFDbGEKxZnDrQriloFyb20KdmFyZXBzaWxvbgriloFwcmltZQppc3RyeQpwZWN0ZWQKb3JhZ2UK4paBdG91Y2gK4paBWycK4paBZGFuCkVtCmFjaW9uZXMKQ2FuCuKWgXdob20K4paBYmVoYXZpb3IK4paBc3RyaW5ncwriloFFdXJvcAriloFSb20KY2lyYwriloFwdW4K4paBcmVnaXN0ZXIKYnVudHUKcmFpbgpPYgpUQQriloFzb21ldGltZXMK4paBbWVudAriloFpbnRlZ2VyCuKWgUphYwpsZWdhdGUKb3RoaW5nCuKWgXNvdW5kCmxhY2VzCuKWgdCR0LAKcmIKZGkK0LvQtdC90LjRjwriloF0aGVtc2VsdmVzCuKWgUJsYWNrCuKWgXNldHRpbmdzCuKWgW5vcm0K4paBcnVucwriloFOT1QKS0UK4paBcGVyaGFwcwriloHQrwriloFtb2wK4paBYW5zCmF0cmUK4paBRGllcwpUb2tlbgphbmllCuKWgWFsbG93ZWQKUmFuZ2UK4paBR3JvCnZpYQp1dG9yaWFsCmVuc29yCmVzdGl2YWwKKTsNCtC60YDQsNGXCuKWgXR1cm5lZApzY29wZQriloFiaWVuCj0kCuKWgWV4dGVuc2lvbgphdG9yZQriloHQoNC+CuKWgXNwZWNpZnkKZWR1CkRhdG9zCuKWgXN0b3JlZAriloFwYXJzZQriloFhbnN3ZXJzCmlsbHMK4paBaGVhcmQKbHUK4paBVEhFCuKWgWfDqW4K4paBZnVsCmV6CuKWgVByZW0KdGhlbgpkcArRgdGM0LrQvtCz0L4K4paBU2kKw6dvCkVkaXQK0LrRltCyCuKWgdCb0LgK4paBU2luZwriloFjYXRlZwpFcXUK4paBZ3VlcgpXaWR0aAriloFDaHJpc3RpYW4Kc3RhdApXcml0ZQriloF3b21hbgp3b29kClZpcwrRgNCw0LcK4paBJCRcCm9kZXIK4paBYm9vbAriloFpbnRlcm5hdGlvbmFsCtC90L7RgdGC0YwK4paBUmljaGFyZAriloFhZGRpdGlvbgriloFNdXNpYwriloFhYmVyCnTDswriloFoaWVyCnVnaAriloFwb2IK4paBdGFibGVzCkRvCuKWgWhpZ2hlcgpwc2kKcsOhCuKWgWFjdGl2ZQriloFUYWJsZQrRmtC1CuKWgWRlc2NyaXB0aW9uCuKWgXNlZW1lZArDrXN0CuKWgW15c2VsZgriloFtZW51CmRlbAriloHFvgplbGUKQXV0CuKWgdCz0YDRgwptdXQKb29uCmFzYwpidWcK4paBbW92ZWQKQ0wK4paBZGF0YXMKU08K0L7Qu9C+CuKWgUdlb3JnCuKWgXJlYWNoCjoiCuKWgWV2YWx1CuKWgUhlbAriloFSaXZlcgriloHQkNGACi8vLy8K4paBc2V0cwriloFPbHltcApBZGFwdGVyCi4nCm92ZXJuCuKWgUxvcmQKIS0tCmpwZwppbWVudG8K4paBUHJvZgriloFhY2hpZXZlCn06CuKWgWluY29yCuKWgW9uZGVyCmVuZ2wKQUJMRQriloFNYXJ5CuKWgXdhcmVuCmxhZ2UKRGVjCtCw0L3Qs9C7CmVuY2lhcwrQu9C10LkK4paBTWFjaGluZQriloHQkNC9CnVkYQriloHFmwriloFYWApvbmx5CtC70LXQvdC40LUK4paBdGFtYmnDqW4KbmVqCuKWgXJlbGF0aXZlCuKWgWhvdXJzCuKWgWluZGVlZAp1bmRvCmluZ3UKYXJlYQriloFDcmVhdGUKYmVpdAriloFyZW1vdmVkCm1hc3RlcgpoYXVzCuKWgUJlcm4K4paBc3BlZWQK4paBQmF5CuKWgUF0dAriloFOb25lCmFwcGxpY2F0aW9uCsO8ZAriloFmaXQK4paBTWFyaWEK4paBbm9yZAriloFzcGxpdAriloFzdHJ1CuKWgW9mZmljaWFsCuKWgWV4ZWN1dGUKb3V2ZQp7ewriloFBcAriloHQutGDCklMCuKWgV4KZGltCuKWgXNldHVwCtGB0LoK4paBc2hhcmUK4paBbWludXRlcwpnbGUKb2NvCnN0ZWxsCuKWgUNvdW4K4paBdGVtcGVyCmtlaXQK0YHRjNC60LjQuQphbwriloFMb25nCigmCtC60LDQvQriloFkZW5zCkJ1dApYWApEQVRFCmdhbgouKS4K4paBZW50cnkKaW5zdGFsbAriloHQt9C90LAK4paBU29tCkNvbW1hbmQKw59lbgriloFzdGFydGluZwriloFzdG8KSUcK4paBbWluaW0K4paBZXhwbGljaXQK4paBYnl0ZXMK4paBcGFydHkKdG9iZXIK4paBR3JhbmQK4paBVm9yCuKWgWxldXIKRG9jdW1lbnQKZXJjCmVuc2l2ZQpDUAplbnYK4paBYXJndW1lbnRzCuKWgUdyYW4KYXJpbHkK4paBbGluCnRuCigtCmdlcQriloFGYW1pbAriloHQkdC+CuKWgXRvdXIK4paBbmF2CuKWgXByb3Blcmx5CuKWgU1ycwriloFNZWwK4paBc2NhbGUKYXN0aWMKZHMK4paBU2lyCuKWgUNodXJjaAp9XntcCnlvdQovLgpTbwriloFicm91Z2h0CuKWgXJvbGUK4paBU3VyCuKWgWZvbmQK4paBZ2VzCsW8ZQpldGVuCuKWgcOpdGFpdApTRVIK4paB0LrQvtGC0L7RgNGLCuKWgWVxdWF0aW9uCmFzcHgK4paBQWZyCuKWgWRpdAplbXB0eQphbGVtZW50CndyYXAK4paBQmV0CuKWgWNvbGxlY3QK4paBZ2l0CuKWgXZpZQriloEuLgrRgNC+0LkK4paBPD8K4paBZWR1YwprbAplbnNpcwriloFPUgriloFIaQriloFDb3VyCtCx0YsKY2VydAriloFHZXMKZXNzb3IKTWFpbgriloHQu9GOCmNhZGUKZG90CmF1Z2gKaGliCuKWgWF1dG9tYXRpY2FsbHkK4paBc3BpcgpwcmVzZW50CuKWgUZlYnJ1YXJ5CuKWgUVsbGUKY3VzdG9tCuKWgXByb2dldAriloFhZG1pbmlzdHIKQUEK4paBYm9ybgriloFDb2xsZWdlCmF0aG9sCmApCmllcnJlCuKWgXJhbgriloFwcm9mZXNzaW9uCm9nZW4KfV97XAriloFhY3Rpdml0eQriloFzY3JvbGwK4paBcHJvdmUKaWJyYXJ5CmVyaWVzClJlYWQKeWVhcgriloFsYW5nCkRldAriloFrbmV3CuKWgXByb3RlY3RlZAriloF3b3IK4paBZWZmaWMK4paBcsOpZwriloF0aGVvcnkK4paBcHVibGlzaGVkCnJlYWwK4paBVG91cgriloFkdXJhbnRlCsOkcwriloFwb3NpdGl2ZQriloFmb3J3YXJkCuKWgVJlbAp7IgpwYXJrCuKWgVVtCuKWgWVlcgplbnRhCuKWgWltYWcK0L3QvtGXCnBpZWwK4paBalF1ZXJ5CmlzbWUKY2huaQpvcmdhbgriloFhcmdzCm9pcgpoZWltCnJpYW4KZWxlc3MKdXNlcwrQtNC40L0KaWNpw7NuCuKWgWluZHVzdAriloF3aXNoCsOhbnkKb2NhCuKWgWFuZ3VsYXIKaWV2ZWQK4paBb2NjdXIKU0VMRUNUCm9uaWEKYWRtaW4K4paBQmVzdAriloHRjdGC0L4K0L7Qs9GA0LAK4paBbG9zcwriloFiYWwK4paB0KDQvtGBCuKWgWNhcmVlcgriloHQv9C1CklYCuKWgWZhbGwK4paBUm9iCuKWgU9QCmVuZWQKZ3JhcGhpY3MK4paBY29taW5nClVwZGF0ZQriloFkaWVkCmVkZW4K4paBYWJzCuKWgWlubmVyCuKWgXRyYXYK0YHRgtC+0Y8KesSFCsOpcAriloFHcm91cAriloFjZWwK4paBc3R1ZmYK4paBc2l0dWF0aW9uCuKWgSR7CmFjbGUK4paBcHVycG9zZQriloFGaXJlCuKWgU9oCuKWgVNlY29uZAriloF1cGxvYWQKb3N0YcWCCtGO0YnQuApBdXRoCuKWgXNob3dpbmcK4paBY29tcGxldGVseQphdmVsCmJkCuKWgXByb2NlZAriloHDlgpjb250cm9sCuKWgXRoYW5rCnVuZHJlZAriloF0b20K4paBZXhhbXBsZXMK4paBcmVtZW1iZXIK4paB0YDQsNCx0L4K4paBcG9zc2liCuKWgWRldGVjdAriloFwb29yCuKWgU9wCuKWgWNlbnR1cnkKdXR0ZXIK4paBbG9naW4KdW5zdApPdXRwdXQK4paBb3RoZXJ3aXNlCmxhbgrRgtGD0YAK4paB0YHQvtCyCuKWgWdyb3VwcwpyaXAK4paBc2hlbGwK4paBZGlzdHJpY3QK4paBcmVjb3JkcwriloFzacOoCmZvcnR1bgplbnR5CuKWgVRyZQriloFjaGFuZ2luZwrRgdC70LXQtAphdWdodAriloFkZWVwCnN1YnNldAphZ3kKZW5kYXIKamF4Ck9NCkVsCmltYXRlCmFyZG8K4paBcGxvdAriloF2aXNpdAriloFidWcK4paB0LLRgdC1CuKWgW9wZW5lZAriloFyZXBsYQriloFIZW5yeQriloFwcApiYXMK4paBZGFyawriloFNYXJ0aW4K4paBcmVzb3VyY2UKaWxpbmcK4paBd2F0Y2gKcmVwbGFjZQriloFyZWxlYXNlCkxvY2F0aW9uCuKWgWxlYXJuaW5nCm1lbnUK4paBYWxsb3dzCtGK0YAKTGVuZ3RoCuKWgXdoYXRldmVyCuKWgXBhZ2VzCuKWgWNvbXBpbGVyCuKWgdGC0LDQutC20LUK4paBUGFuCmNvbW1hbmQK4paBcm9hZAriloF1bmxlc3MKYD8K4paBZGlzY292ZXIK4paB0L7QvQp9XQpib3VyCuKWgUNvdWxkCuKWgXJlZ2V4CuKWgXBzCkNECtC40LcK4paBd2lmZQphbWVudGkK4paBZmFpcgriloFEQgriloFDdXAKZW5lbgphamF4Cm90aMOocXVlCuKWgXNlaW5lcgppY2tlcgrDoW0KZXhjaGFuZ2UKb2xlcwpJRgriloHQlNC+Cm9obgriloFncm93CuKWgVRodXMKc3BlYwriloFoYXR0ZQojLAphbGxlbAriloFyYXRlCuKWgWNlbnRyYWwK4paBVmFuCmlmb3JuClJ1bgriloFzdHVkeQriloFYTUwK4paBQ2hlCuKWgWJlYXV0Cm1pZAriloFhZHZhbmNlClZlcgrRgtGPCuKWgWhhbmRzCuKWgWxheQriloHFoQriloFPUwriloF7fQpQcmUK4paBSGFsbAppbXAK4paBc3VuCuKWgXN0ZXBzCuKWgWp1ZApxdWkK4paBYm9vdAriloElPgriloHQktCwCm5vc3QK4paBbmVtCuKWgXBlbgpPcGVuCuKWgWNodXJjaArQutC+0L0K4paBYXZlcmFnZQriloFjb21tZW50cwriloFjb3JyZXNwb25kaW5nCmxldmFudAriloFiZWQK4paBbWVhbmluZwpWZXJzaW9uCkxpbmsKYmVsCuKWgWV4dHJhY3QKxZvEhwriloFJVgriloFJcgriloFjb21wdXRlcgriloFhZmZlY3QK4paB0KHRgtCwCkFYCnNvcnQK4paBc3BlY2llcwriloFPcGVyCuKWgWhhc2gKY2hlcwriloFFaW56ZWxuCuKWgWtleXMK4paBbWFyem8K4paBaW50ZXJwcmV0Cmhvb2QK4paBY29vcmRpbgrDtnMKcmFnZQpldHoKaXphCtC00LXRgArDvHQKXioK4paBbW9kaWZ5CuKWgXRlcm1pbgriloFjcmVkCnpvbgrQvdGD0Y4K4paBbWllCuKWgScnCuKWgU1vcwriloFjb25uZWN0ZWQKTk8K4paBY29tcGlsZQriloEiXAriloFjYXQKZmlkZGxlCnV0YQpBY2Nlc3MK4paBU3RvCuKWgUJ1cgriloFub3J0aApHYW1tYQriloFhbGxvYwpJbml0CuKWgUxpbmsKaWFsaXplCkltcGwKb3VwZQpyb3ByaQriloFHb2xkCuKWgXNvbG8K4paBRGlzdAosLQpuYXYK4paBYWxlcnQKZXNpcwriloFPcwovLy8K4paBZmViCuKWgS0tPgpmb290CuKWgUZyaWVkCuKWgUVpbnplbG5hY2gK4paBcmV2CnplaXQK4paBU3RhdAriloFTZWcK4paBYmxvCndpY2sKRUwKY2FwdGlvbgpoZWFkZXIK4paBcHJlc2lkZW50CuKWgW11bHRpcAriloFFaW56ZWxuYWNod2Vpc2UK4paBc2VpbmUKP+KAnQpGdW5jdGlvbgriloFTdGFuZAriloFGdW5jdGlvbgriloE/PgriloFCaWxsCuKWgXNwZWN0CuKWgXJlZGlyZWN0CnJ1cHQK4paBd2FsawrQstGI0LgKc3ByaW5nZnJhbWV3b3JrCnBsYWNlCsOpaG8KRW50aXR5CuKWgVNlcnZpY2UKaW50ZQriloF0cmFpbmluZwriloEoYArRhNC+0YAK4paB0LrRgNCwCmF1cgriloFmZXRjaAriloHigKAK4paBbcOqbWUK4paBKCcKYXRpdmVseQriloFleGVjdXQKw6RjaAriloFDYXRhbG9ndWUKYmFzZWQKQXR0cmlidXRlCuKWgXNwcmluZwpwaG9uZQrRgtGA0LAK4paB0L/QuArRgtC10YDQsAriloFgXAriloFPZApPbmUKc2VuZApib24K4paBwrAKTU8K4paBYXNraW5nCuKWgW/DuQriloFpbmfDpXIK4paBdGVzdGluZwriloHRhNCwCuKWgUJvb2sKaW1tCuKWgXByb2dyZXNzCmJybwpGaXJzdAriloFwaG90CuKWgU9OClRlbXBsYXRlCmRldmVsb3Blcgphbm5vdAriloE+PQptaXNzaW9uCuKWgWt0w7MKcGMKYmFjaAp6ZW50CnVlZAriloFvbmVzCtGY0LgK4paBcm91dAriloHQmtC4ClBvc3QK0YbRltGXCuKWgVZpcgpuZWsKYWdpbmcK4paB0L7Qugppem9udAriloFhZ29zdG8K4paBY2hvb3NlCuKWgQ0K4paBc3lzdGVtcwpsb3NzCmllbnRlCuKWgUNyZQriloFjb250cmEKdW1zCuKWgWJlZ2lubmluZwplbXkKaXN0aWNzCuKWgXNlcnZlZApEb3duCm9wdGlvbnMK4paBR292ZXJuCuKWgUJZCuKWgWplc3QKdMOpCuKWgWNvbnRpbnVlCnBlcnMK4paBZWFzaWVyCuKWgWNvcwplc3NvCj4+Ck5ldAriloFCb3IK4paBQ3IK4paBdHJhbnNmZXIK4paBQ1NTCuKWgWZpbm5zCuKWgdGF0L4KdXNlcm5hbWUK4paBY29uc3RydQriloFwYWluCuKWgVRlbQriloFzcGVjaWZpZWQK4paBYnJpdArRgdC60LjQtQppcmsKcmFwcGVyCuKWgWNvdW50ZXIK4paBWyIKb2RlZArQtNCw0L0KcHJvcGVydHkKaGFyZAppc3RyaWN0CikvCuKWgVBvdXIK4paBV2hlcmUK4paBPT09CuKWgXNvd2llCuKWgdCf0YDQvgriloFkZXNzCuKWgXRyYXMK4paB0YPRh9CwCuKWgU92ZXIKbm90ZQriloFBbWVyaWNhCmNwCuKWgWdyYW5kZQpNZQopLQpNb2RlCuKWgXBhc3NpbmcK4paBZ2l2aW5nCkNsCn0vCk1lbnUKISEKYW5ndWxhcgriloFsYXVuY2gKdmFycGhpCuKWgUpvaGFubgriloFmb3JlYWNoCnLDswpzZXF1CmlmaQpBbQphcnAK4paBYnVmZmVyCuKWgW5pCuKWgW1peAriloFNdXNldW0K4paBbWVhbnQKYXNpCuKWgWthbgrQv9GA0LDQsgpDb21wCmlzdG9pcmUKaWZ1bApqZXIKaXNzaW9ucwpSZXNvdXJjZQriloHQstC+0LcK4paBU1QK4paBc29sdXRpb25zCuKWgWJlbG9uZwriloFBc3NvY2kKY2YK4paBTcOkcgriloFncmlkCk11bHQK4paBcmVxdWlyZXMKa2sK4paBdGVhY2gKZW1laW5kZQriloFzcXVhcmUK4paB0LrQvtC80LDQvQriloFFdmVudAriloFydWxlcwriloFidXIK4paBZWluZwriloFNYWkK4paBbmFtCuKWgXNsw6QKaMO2cgriloF0aXAK4paBTGl0ZXJhdHVyCuKWgXNjb3BlCm92ZXJsaW5lCuKWgWV4aXQKKT8KYmV0CuKWgXZpY3QKT2ZmCuKWgWFwcHJveGltCuKWgUdlYgprdG9wCmhlaXQK4paB0K4KdGVtcGxhdGUK0YDQvtC9CuKWgXVubwpTZXJ2CuKWgWZyYW1ld29yawpvcGVyYXRvcgriloFnZW5lcmFsbHkK4paBaHVuZHJlZAriloFkaXZlcnMKb3ZpCuKWgXLDqXMKYWJzCuKWgWdhbArDp2FpcwriloFmZWV0CuKWgXZpcnR1YWwKY3p5CtGB0LrRgwouLwpodQphbmN5CuKWgXJlY29tbWVuZAriloHQv9GW0LQK4paBbW9uZXkK4paBdmVyc2lvbnMK4paBaGVscHMK4paBSG9yCkl0ZW1zCmxvb2sKY29ubmVjdAphbmdlcwpWaWV3Q29udHJvbGxlcgplbGlqawriloFvY2N1cAriloFlZGl0b3IKYXV0bwrDtmcK4paBc2Vjb25kcwriloFvYnZpb3VzCnZtCmFrZXMK4paBZ2VnZW4K4paBdGlsCmplY3Rpb24K0LvQtdC90L3RjwriloFvcGVyYXRpb25zCuKWgUVhc3QKb2d5CuKWgVBvbGl0CnV0ZW4K4paBSm9zZXBoCiJgCuKWgUNvbXBhbnkK4paBY2FsbGJhY2sK4paBc2VuCmNjacOzbgriloFhc3NvY2lhdGVkCuKWgWNvbnRhaW5pbmcK4paBcHJhY3RpY2UKZWxpamtlCm9rZQrDqXJhCnVucwphbnRhCnZleQp6dQriloFCZXMK4paBRmxvcgptZW0KeWN6CuKWgWFyY2hpdGVjdAriloFhbm5pCuKWgWNvbnRhY3QKWVBFCuKWgUNhcwriloHQv9C+0LvRgwpvdm8K4paBYnJpbmcK4paBY29uY2VwdAriloFqcwriloFSZWZlcmVuY2lhcwplbWJsZQriloHQvQriloFzdXBwb3J0ZWQKQmlnCuKWgUhhbnMKZXJ2CuKWgU1hagriloFhcnJpdgriloFIYXZlCuKWgXByb2JhYmlsaXR5CuKWgVBvcAriloFQYXNzCnRva2VuClByb3ZpZGVyCuKWgVJhClJlYWRlcgpvb3RoCmxhcAriloFhc3Npc3QKYWRvdwriloF0ZXN0cwrRgdGB0LgK4paBa2luZwpsYW5nbGUK4paBU3VtCk9JTgriloFzZWN1cml0eQpuaXMKLi4vCuKWgWJhc2ljCnVuaXR5CmA6CuKWgdC60L7RgtC+CmtvdwriloFCaWJsaW90aMOocXVlCmFzaW9uCmFsbwppZmVzdAriloFub3ZlbWJyZQriloFwZXUK4paB0JYKZW5zY2hhZnQKY2x1cwrRmNGDCkhlaWdodArDum4K4paBdHVyCuKWgWlkZWFzCuKWgWNlcwpmcmFrCuKWgXByZW1pZXIKaXRhdGlvbgriloFzw6kKSFRNTAriloFSb3lhbArRgdGM0LrQvtGXCuKWgWJ5dGUKUFMK4paBc2VndQppbmVuCuKWgUdyZWF0CuKWgdCa0YMK4paBZXh0ZXJuYWwKVGl0bGUKVG9wClByb2Nlc3MKaXTDpHQK4paBYC8K4paBc2VjcmV0CnBvc2l0b3J5CuKWgXBvdGVudGlhbAriloFCdWQKbmFtZXMKYXNvbnMKc3RhY2tleGNoYW5nZQpiYWNrZ3JvdW5kCtC/0LXRgArRgdC+0LIKYWZ0ZXIK4paBcGVybwriloFzb2Z0d2FyZQriloFzZWQK4paBYXJyYXlzCnRtcAriloFhc3AKc2NhbGUK4paBTGF0CmFuYWwK4paBZ2VtClBVCuKWgUFsdHJpClRoYXQK4paB0J3QuAppZmFjdApBZGRyZXNzCuKWgXNvdXRoCuKWgWZvcm11bGEK4paBQ29sbGVnCuKWgdGW0L0Ka3Rpb24K4paBc2FjClNICmFqbwpldGMKdmMKYF0oCuKWgUR1cgriloHQnNC1CuKWgVNtaXRoCml0ZW1zCkNLCmVsbwriloFwbHVnaW4K4paBc2VyaWUKaWVubmUK4paB0LjQu9C4Ck1hcgriloFJbWFnZQpnb3QKYW5kYXMK4paBbWF0Y2hlcwriloF3b3J0aAriloFEZWIK4paBY2FjaGUK4paBZmVsdAplcnNjaAppemVzCk9wZXIK4paBSmFocmUK4paBY29tbXVuZQp0aHJlYWQK4paBbnkKZGVjCm91dwriloFzdXJmYWNlCuKWgVBvcgriloFTdHJlZXQK0L/RgNC4CuKWgWNhbmRpZAriloFSZXR1cm4K4paBS29tCmdydQriloHRgtC4CltcCuKWgWRlcGVuZHMK4paBaW5mbHUK4paBdG93YXJkcwphaW5lZAriloFyYW5rCuKWgUphbnVhcgriloFjb21wb25lbnRzCmdlc3QKZ2V0RWxlbWVudEJ5SWQK4paBY2hlY2tlZAphaXJzCmpvaW4K4paBZGVhZAriloFoaXQKw6lueQriloFlcXVpdmFsZW50CuKWgdCf0YDQtQriloFhcHByb3ByaQpQYXNzCuKWgXByaW1lcgplbmdsaXNjaAriloFhcHBhcgriloFEdXJpbmcK4paBa25vd2xlZGdlCuKWgXRyaWdnZXIK4paBY29yZQriloFPbAriloFQcm9kdQriloFGZXJuCuKWgdC90LDRh9CwClRlCuKWgU1vdAplcnZlCtGC0LLQvgriloFtaWQK4paBZmluYWxseQphaXJlcwriloFlc3BlY2lhbGx5CuKWgXR1dAriloFyZWNlaXZlCmFkcmUK4paBbmVpZ2gKa3RldAppbGRlCuKWgXJhZGlvCuKWgWRyaXZlcgrQu9C40YHRjAplbmRlbmNpZXMK4paBSUUK4paBc2F2ZWQKZmZlY3QK4paBV2F5YmFjawppYXQK4paBcGFkZGluZwp3aW5kb3cK0YLQuNGH0LUK4paBbXVyCmFjdG9yCuKWgUhhbgrQvtC90LDQu9GMCuKWgWdhcgriloFmYW1pbGplbgrDs3MK4paBbmF0aW9uYWxlCuKWgXByw6kKZGVkCm9uYWwK4paBUHJlc2lkZW50CuKWgVwsCuKWgXBsYWNlZAplcm5pCuKWgXNpZ25hbApuYWIKaG0KTW9uCuKWgXZzClNDCuKWgXByb2dldHRpCuKWgcOcCuKWgWZvcm1zCuKWgW1lc3NhZ2VzCmluZgp1c2VycwpHRVQK4paBZGVscwpDb2xsZWN0aW9uCuKWgUdvb2QK4paBTWF5YmUK4paBY29tcHIK4paBbGFyZ2VyCmdyZXMKYXBlcgriloHQn9GA0LgKdW5kZXMK4paBc2VhCuKWgVNwcmluZwp1bG8K4paBbWVjaGFuCuKWgXNhbnMKR0IKVmFsaWQK4paBY29tbXVuaWMK4paBcHJhCnZpZXIK4paB0KHQtQriloFhaW4K0YLRg9GA0LAKa29tCnNraWVnbwrQutC+0LLQvgphZGF0YQriloHQoNC1CuKWgWJvb2xlYW4Kc2V0cwriloFlZmZvcnQKLlsK4paBem9zdGHFggpQQQriloFWaWN0ClNECm93YcWCCuKWgWVtYgriloFwcmltYQriloFob3VyCnN1YnNlY3Rpb24K4paBRm9ydAptYXRoZnJhawppZ2luCkdMCikrCmZpCuKWgWFuY2kK4paBcGFuClwpCuKWgWx1ZwriloFkZXBsb3kKZG9tYWluCuKWgXNsaWdodApKU09OCuKWgW1vcm5pbmcK4paBaGkK4paBY29tcGFyZQppamUK4paBYmx1ZQriloFBYwriloFtaWRkbGUKYW5kZW4K4paBc2hhcmVkCuKWgUNhbXAK4paBw4EKb3VuZGVkCnV3CmllcnVuZwpTdGFjawriloFlaW5lcwriloFEYQpsaWoKZW50aQriloHQuQpVdGlsCuKWgWV4cGVyaWVuY2UK4paBYXdhaXQKdWxzCuKWgXJlcXVlc3RzCuKWgWltcG9zCuKWgWNvbnN0cmFpbnQKQ2hhbmdlCmVtcGgK0LHQtdGACuKWgUFub3RoZXIKQ3VzdG9tCuKWgXNpZ25pZmljYW50CmNyCuKWgW1pbGxpb24KcmVlawriloFkYWxsYQriloFHZXJtCm90YWwKYXRldXIKYnRuCuKWgXRoaW5raW5nCuKWgWludGVydmFsCm9ubmUK4paBbGl2CigpOgriloHQktC1Cm9lCuKWgUV2Cm1ldGEK4paBYnJvYWQKUmVtCmFwcGx5CuKWgWNvdXBsZQriloF0ZWNobmkKaWRhZGVzCuKWgWdvYWwK4paBQ0QKaGFiCuKWgWV4cGxhbgphbm5lcgriloFCZWNhdXNlCmJsb2cKaW5jbHVkZWdyYXBoaWNzCuKWgXZvaWNlCuKWgU1hcAp2ZW50aW9uClNlc3Npb24K4paBTGllbnMK4paBc29yCmNhdGVnb3J5CmFzaGluZ3RvbgriloFNw6Ryegpwb3AKaWxsZXQK4paBendlaQriloFMaWUKTnVsbAphZGRyZXNzCuKWgWZhY3RvcgriloFsaWduZQriloFIVFRQCuKWgXN1ZgriloFwZXJzb25hbApjaXAK4paBRGFyCuKWgWFkbQrQutC+0LkK4paBRXh0CuKWgWdvZAphYQpSaWdodArDqXTDqQriloFkeW5hbWljCuKWgW1haW50YWluCnRvcgojIyMjIyMjIwriloFGcmEK4paBY2hvaWNlCuKWgdGB0YLQvgrQodCgCuKWgUZlZGVyCnN0b24K4paBZmxhZwpraXQKTW9kdWxlCuKWgdGB0L/QvgriloFTdHJhCmlja3MK4paBaGF2ZW4K4paBTWFzcwriloFFbXAK4paBUGkK4paBUGVuClJlY3QK4paBS3IKaXRhdAplbGVyCtGP0LHRgNGPCml0ZXQK4paBU3RhcnQK4paBcHJvZHVjZWQK4paB0L/QvtC7CihfCuKWgWRlbGV0CuKWgWhvdAriloFHZXNjaGljaHRlCn5+CuKWgW1vbnRocwriloF0b2QK4paB0L3QuArDunMKdGVtcAriloFEZXoKeXBlcwriloFjdWkKb21tdW4KYWN0aW9ucwriloFlaWdlbgriloFpbW1lZGlhdGVseQpQTAriloHQk9C+CuKWgUJhbArRmdC1CnVsdWkK4paBb25saW5lCuKWgWHDsW9zCuKWgW5hbWVzcGFjZQriloFtb25kCuKWgUJhc2UK4paBQ2FuYWRhCmV0enQKfS0K4paBZGVmaW4K4paBZG91YnQK4paBaW52ZXN0aWcKdmlld3MK4paBTGluZQriloFzdGFnZQpldHRpbmdzCnVicmUKZmxvYXQK4paBUGxheQriloFMYXMKcHRyCuKWgWJlY29tZXMKZXN0YW1wCuKWgWluZGVwZW5kZW50CuKWgWFuYWx5c2lzCuKWgUxvb2sKbGFpbgriloHRgNCw0YEKUmVmZXJlbmNlCuKWgXNvcnJ5CuKWgXN1cHBvc2VkCsO7dAriloFkZWdyZWUKdXR6Ck1NCuKWgWRlc2lyZWQKxYJ5CuKWgWxlbgriloFhbG9uZQpzaWduZWQK4paBU3RhClBlcnNvbgriloFhcHBsaWVkCuKWgUJhY2sK4paBbWFycwpQYXJ0CuKWgURpZAriloFleHRlcm5lcwriloFucApvbmdvCuKWgWVzdGEKQmxvY2sK4paBcG91CmFkb3JlcwriloFTdHVkaW8KLiQK4paBcmVhY2hlZApib3QK4paBSnVuaQp0b25zCml0ZWwK4paBR2FyCuKWgWFydGljbGVzCuKWgURpc3RyaWN0CuKWgXRyb3VibGUKbGlkZQriloFGb3VuZArDoWQK4paBZXF1aXAK4paBaW50ZXJuYWwKJ10sCuKWgWFzeW5jClVCCmdlbAriloFhaQplbnN1cmUK4paBYXBwZWFyZWQK4paBJF8K4paBbWF4aW11bQriloHQodC4CtGA0YwK4paBYW5ub3VuCtC70LDRgdGMCuKWgWNtCtCz0LDQvQphdXB0CuKWgWxhdHRlcgriloFwbGF0Zm9ybQriloFkcmEK4paBY2FwaXRhbAriloFzb2x2ZWQKcml6CmVkaWMK4paBTXVyCuKWgVRvcArRgtGB0Y8KUGFuZWwKcnVsZQpldGljCuKWgVJlbgriloFXaWtpbWVkaWEK4paBVE8Kc2Vjb25kCmlzbAriloFoeQriloFuaWV0CuKWgWxvYWRlZApkaWcK4paBbWF5bwpbOgpBY2MK4paBYmVrCtC90LjRjgpsb2dpbgp0eAriloFGdXIK4paBU2FudGEKYXp6CuKWgWNvbmR1Y3QK4paBSW5kaWEKT3JkZXIKaXJ0aAp0dwp9KwriloF3aWVkZXIK4paBRWR1CkFWCuKWgWBgYAriloFtYW51YWxseQriloFSZWFkCmZvcnR1bmF0ZWx5CuKWgVJ1bgriloFBd2FyZAriloFGb290CiopCnBhcmFtcwrQv9GWCuKWgW5hdGl2ZQpyaWZ0CuKWgcOkCkFUSAriloF5b3Vyc2VsZgriloFwcmlvcgriloFjaXQKw6RoCuKWgXRyZWF0CuKWgW1lYXMKcmlidXRlZAriloFjbGFyCmNhcmQKUk9SCmlsbGVzCuKWgWxheWVyCmF1ZXIK4paBcmF0CmJlcm5hdGUK4paBc3RhdG8K4paBQ2hpbmEK4paBJCgnIwriloFuYWFyCnppcAriloEke1wK4paBYXBwcmVjaWF0ZWQK4paB0LjQvNC1CsW8eQriloFwcnplegriloFJbmRpYW4K4paBVG9kCuKWgVNvdXJjZQriloHQtNGA0YPQs9C4CmludGVybmFsCmlvbmFsZQpQcm9kdWN0CuKWgU1lbgriloF1cHBlcgriloFFdmVyeQp9LFwK4paBcHJpbnRmCuKWgWNvbnRpbnVlZAriloFub2RlcwrQu9C60LgK4paBbmljZQptb2R1bGVzCmVpZ24K4paBTWV4CuKWgUFjY29yZGluZwriloF1bmRlZmluZWQK4paBYmluYXJ5CmN1dApDdXJyZW50CmVkeQp9fXsKYmxlcwriloHQstC+0LkKc2NyaQplcW4KQ2hhbmdlZAriloFrw7Z6CuKWgXJlbW90ZQrQstC70Y8K4paBcXVlbAriloFhbGlnbgriloHQv9Cw0YAKU1YKeWVyCuKWgUNhbGlmb3JuCuKWgXBsYWNlcwriloFwcmltYXJ5CuKWgWNvbnYK4paBSnVsaQriloF2aXN1YWwK4paBU2VsZWN0CmF0b3J5Cj0oCmlzZXIK4paBaW50ZW50CnN1cgpjb250YWluZXIKaWNlZAriloFib2FyZAphc3RyCm9taWFsCtCy0LXRggrQt9Cy0LAK4paBY3J1CuKWgU9rdG9iZXIKc2F2ZQriloFncmVhdGVyCuKWgWlubgriloFwaWN0dXJlCuKWgdCi0L4K4paBb2J0YWluZWQKV2lraW1lZGlhCsO6YmxpYwriloFsb3JzCuKWgW1vbnQKb2JyZQriloFjaXZpbAriloFjb25zdHJ1Y3Rpb24K4paBV2VsdAriloFVbmRlcgp1bmRlcnQK4paBZWRnZQriloFMaXN0ZQpjc3YK4paBZXhwZXJpbWVudApsb2NhbGhvc3QK4paBRWRpdApncmVnCm92w6EK0ZnQsAptc2cK4paBR3JlZW4KRGlhbG9nCklkZW50CuKWgUpTCl57KAriloFzbMOka3RldApfX19fClByb2plY3QK4paBYmVza3JlCuKWgWJlcgriloF3b3VsZG4K4paBcmVhY3QKSGVsCnp3CuKWgVdhc2hpbmd0b24Kb3JpZQp0YXNrCuKWgWNhdGVnb3J5CuKWgWFydGlzdAphbm5vCuKWgW9vawphbW1lbgriloFNaW5pc3RlcgriloFkZWNsYXIK4paBS2V5CiwuCuKWgW1hY2gK4paBd3cKaXNlbgpGcmFuCuKWgdCg0L7RgdGB0LgK0LHQvtGACtGC0YDQuAriloFyb2NrCnF1aXMKbW9zCtC/0LXRgNCwCuKWgWVzdGVybmkK4paBZ29sZApXaW5kb3dzCiUlCuKWgXBhcnRpYWwK4paBd2VpZ2h0CuKWgXNwcgp9KS4K4paBZnJhbsOnYWlzCmZ1bgriloF0aG91cwpob2xkZXIK4paBZ29uZQriloHEjAriloFyZW5kCkRBCuKWgWFuc3dlcmVkCuKWgUZhbHNlCkJ1ZmZlcgriloFkYXVnaAouLS0K4paBU2hvdwriloFyZWN0CuKWgUtyZQpkcgpvc29waAriloF5aWVsZAp1cml0eQp0b1N0cmluZwphdmFsClBvbAriloFsb2NrCmltYXRpb24KYW50aWMKTG9jYWwK4paBYmVza3JldnMKaXTDqXMKZ3JpZArRg9GCCuKWgV97CtGB0ZYKRklMRQriloHQutC8CuKWgXNwZWFrCnN1bW1hcnkKcHJvcApqYXZhc2NyaXB0CnprCml6b250YWwK4paBdHJvaXMK4paBUm9kCnByaXNlCtGA0L7QstC+CuKWgW9kZAriloFnZXN0CuKWgXByb2R1Y2UK4paBd2FhcgriloFBdgpyaWJ1CtCy0LDQvdC90Y8K4paBZmluaXNoZWQK4paBYWRhcHQK4paBU2FyCnRleHRpdAriloFDZQriloFGYQpvc2VuCuKWgWRlcml2CuKWgXNoaXAK4paBb3BpbgriloFFdmVuCmdlc2NoCuKWgXN1cHBvc2UK4paBRmVyCtGB0LrQvtC1CuKWgXdvcmRlbgpzZXkKaGxpbmUK4paBVW5pb24K4paBLyoqCuKWgXZlegriloFDb2xsZWdhbWVudGkK4paBU29jaWV0eQriloFlY29ub20KxaHDrQpvaQriloFvcmllbnQK4paBVGVpbApyZW50CtC70LXQutGBCuKWgXNvbGlkCuKWgWNhcnQKKioqKioqKioqKioqKioqKgriloFjYWIK4paBTWVzc2FnZQpkb3RzCuKWgcOpZwriloF0d2UKYWdhCuKWgW5hegriloFNaWNyb3NvZnQK4paBdW5kZXJhcnRlcgpwcGVuCuKWgXJlY2VudAriloFuZXQK4paBcmVzb3VyY2VzClN0ZQouXAriloFTTwrQu9C+0LwK4paBY2VsZQriloFsaWMK4paBYmVuZWYKbGRvdHMK4paBc2VyaWFsCkludGVnZXIKY2xlcwriloFtaWxlcwriloFBbGUK4paBZW50ZXJlZAriloFUd28Kd2llCuKWgWluY2x1ZGVzCuKWgUVhY2gKZWxsaW5nCnF1ZXIK4paBRG9tCnBmCldTCuKWgXN0cmFpZ2h0CuKWgVN0YW4K4paBbm9zCsOtY3VsCmF0cm8K4paBQ2VudGVyCkZUCuKWgUluZ2EKaWxvCuKWgXd3dwpqc2ZpZGRsZQpuaWMK4paBRXVyb3BlYW4K4paBY29tbWVyCuKWgWdpcmwKdG90YWwK4paBU3RhcgriloFzdWdnZXN0ZWQKcGFsCuKWgXp3aXNjaGVuCtC/0LjRgdCwCklNCuKWgWhhbmRsZXIK4paBUHJvZ3JhbQp4c2wKw6FseQpCVQosLS0K4paBdmlkCuKWgWVzdGFibGlzaGVkCuKWgVNwaWVsCm9tZXRyeQp1bmVzCuKWgXNpdAriloFpbmhlcgriloFwdWlzCuKWgcOqdHJlCuKWgU1vc3QKSGVhZGVyCmluc2VydAriloFzaXN0CuKWgWZhdm9yCmRlc3QK4paBZW50aXR5CkNhbAriloFUaGVyZWZvcmUKREQKOzsK4paBRGV6ZW1iZXIK4paBUmgKaW1lbnRzCuKWgXJldHVybmluZwpzdG8K4paBVmFsdWUK4paBbGliZXIK4paBUmVzdWx0CuKWgWJpbmQKdm9pcgriloFUaW0K4paBTW92aWUKd2VnCmtldAriloHQuNGB0YLQvgriloFmcmllbmRzCuKWgWZuCuKWgcOpbAriloEmPQphcmRlbgpmZmljaWFsCuKWgWNvbW11bml0eQriloFhcGkKQXJncwppZXJlbgriloFkYW5uCm9tb3JwaAphZHIKbG9vcAp1bWFuCuKWgXZvdXMKYnN0CnN1Ym1pdApcfArRgtC40L0KQ29udGFpbmVyCmFza2V0Cj8pClNlYwriloFkcml2ZQpBc3MK4paBc3dlCuKWgWFtZXIK4paBbWluZQriloFIYW0K4paBYXZhaXQK4paBSG9uCuKWgWFwcsOocwriloFNYW5uCtGB0YzQutCwCuKWgWluY3JlYXNlCuKWgXR5CnNreQriloFhY2N1cgphcnRpY2xlCndlaWdodAriloFzZXgK4paBbGlzdGFkZQovKioK4paBZXN0w6EKfX0kCmFyZ28KZGVmaW5lCuKWgdGB0L7RgdGC0LDQsgpzZXNzaW9uCmFkcwrRgdGC0LLQuAriloFMYXcK4paBZGlhbG9nCuKWgWR1cGxpY2F0ZQriloHDqXAK4paBdm9jCmZyaQriloFncmVlbgriloFoaWRkZW4K4paBSXNsYW5kCuKWgWRpYWcKb3dlagpteXNxbAp0ZWlsCnLDpAppa2FuCuKWgUpvc8OpCmFsZWQKUnVudGltZQriloF0cmFpbgriloFEaXZpc2lvbgrQvdC40YYK4paBU3BhbgrQvdC40LzQsAopPVwK0YLQsNC9CuKWgXN0YXkK4paBZm9vCuKWgWFjY29tCuKWgWhlcnMK4paB0L3QsNGDCuKWgU3DvG4KaWRlb3MKc3RhdGljCuKWgXJlYWR5Cl1gCuKWgXZpc2libGUK4paBSG9wZQp1bGF0ZWQK4paBQ3VsdArRgdGC0YDQvgpDbwriloFzbWFsbGVyCmF0dXJhCuKWgXBlcmZlY3RseQpyZXEK4paBcHJvcG9zZWQK4paBZGVnbGkKU2VhcmNoCuKWgWljaApNYXgK4paBdm9sdW1lCmV4ZWN1dGUKZ3JlCuKWgXNwb3J0CnVkYWQKUFQK4paBUmVjb3JkcwriloFjb29rCuKWgWV4cGFuZArQsdGWCuKWgWFsdHJpCnBwZXQKYXJzZQriloF3ZXQK4paBQm9iCuKWgUZDCuKWgUFzc29jaWF0aW9uCnVqZQriloFmZWwK4paB0YHQu9GDCuKWgUJpZwovXApHZQp3aGlsZQp7KAriloFzdWZmaWNpZW50ClBvc2l0aW9uCuKWgXVuZGVyc3RhbmRpbmcK4paBbnVlCuKWgXJhegriloF5ZQpoZW0KTnVtCuKWgVByb2plY3QK4paBSXRzCuKWgWhhc3RhCmVuc28K4paBd2lyZQpSZXQKdWoKcHJvb2YK4paBcmVsZXZhbnQK4paBcGFydGlyCuKWgWFnbwppZmljYXRlCuKWgWRvbWluCuKWgWJveQriloFwbGFudAriloFlbmNvZGluZwriloF0aHJvd3MK4paBUm9jawp6b25lCmdhbmcKd2lkZ2V0CuKWgWludGVyZXN0aW5nCkRFUgriloFkZW1vbgriloFvZmZpY2UKYW10CsOkdGVyCuKWgVdoaXRlCuKWgXZlcnNjaAriloFkaWVzZXIK4paBTW91bnQK4paBc3R1ZGVudHMK4paBUHViCuKWgdCU0LUKaWphCuKWgUN5CuKWgUNhbGlmb3JuaWEK4paBYWJyaWwKw6RsbAriloHRh9C10LwKVFYK4paBbcOpcwriloFkZWNsYXJlZAriloHRjgrFkWwKYXBwYQriloHQkdC1CmVjaG8KbnVtZXIK4paBcG9zdGVkCuKWgdCy0LXRgAriloHQs9C+0LTQuNC90LUK4paBd2VhawriloFSZXB1YmxpYwriloFjaGFtcGlvbgplbnN1cmVtYXRoCnlvdXIK4paBT2JlcgriloFDZW50cmFsCmlzYQrQsNC90LQKeXkK4paBZnVsbHkK4paBU0QK4paBTGludXgK4paBU2NvdHQKcGFydG1lbnQKa29uCuKWgWNvbnRyYWN0CuKWgU9GCuKWgWFsZQriloFBbm4K4paB0L3QsNC0CmxhaAriloFOZXh0Cm9yZW4K4paBZGlzawriloFlZwphdHUK0LvQvtCz0LgK4paBZ2FtZXMKTGVmdAriloFsdQriloFmaW5pdGUK4paB0LrQuAriloFjcmFzaApwaGVyCmV4ZQpBVElPTgriloFicm90aGVyCkVuZwp0YXQK4paBSW50ZWdlcgrQvdC+0LzRgwriloFjb2xvbgppcXUKKSkuCml2aQriloFNZXRob2QKYXJ0ZW4KVW5pCnZlY3RvcgriloF3b29kCtGA0YIK4paB0JvQtQriloFzacOoY2xlCuKWgWdlbnQKfQ0K4paBY29udGVudHMK4paBY29tcGFuCkdvCuKWgWpvdQp1ZW50CkFzeW5jCnByaW50ZgriloFNb2RlbAriloFrZXB0CkFTRQriloFwcm92aWRlcwriloFBYmdlcnVmZW4K4paBR2FsbAriloFBbGYKU0EK4paBTWVtCuKWgWt0ZXIK4paBQnJ1CkFuZHJvaWQKKDoK4paB0KPQutGA0LDRlwpOZQpNaW4KYXRyCuKWgUhhbApkZWxldGUKb2RvCuKWgW7Do28Kw6huZQriloFjYWxjdWxhdGUKSnNvbgprZXlzCtC90LXQuQriloFoZW5jZQriloFvdwriloFMaWIKZW5vCuKWgUxvdmUKb3NpCndpZGUK4paBc2NvcmUKZnVsbArQstC+0LQK4paBZGV0ZXJtaW5lCuKWgXNwYWNlcwrQu9C+0LLQsAriloFwZXV0CsOpcmFsCsOzxYIK4paBYXBwb2ludAriloFUdwo8PwriloFPcmRlcgriloFob3AKcmFuZG9tCmNhY2hlCuKWgWRlc3Ryb3kK4paBcmFjZQpUYWcK4paBcmlkCuKWgW5lZ2F0aXZlCkNhcgplbnNpb25hbApkawriloFjcm8K4paBVEhFTgriloEkLgplbnNrCk5FCkhPCuKWgWtsZQpvc3BpdGFsCmt0ZQpmw6lyZW5jZXMKdWRlcwpJUgpvdGlvbgriloFSZWFsCuKWgUZlYnJ1YXIK0LjQvQriloFPbGQK0LrQvtCz0L4KbGVpY2gK4paB0YAKw61hbgriloHQs9CwCmNpZGUKbGFiCuKWgXB1bGwK4paBJy8KTG9uZwosJAriloFhcHByb3ByaWF0ZQriloHQsdGL0LvQsApmw7xocgriloFNZWRpYQriloFtYW5uZXIK4paB0JPQtQpkZXNjcmlwdGlvbgpCZWFuCuKWgUxhcgonXTsK4paBcmVsYXRpb24K4paBU29ycnkKaGFyCmNwcAriloFLbwriloFleGVjdXRpb24KaW5vcwriloFidWwKZ3JhZGUK4paBTXUK4paBcGlsCndyaXQKaWZpY2F0aW9ucwppbmVzZQriloFQaGlsaQpkeAriloFsZWFkaW5nCuKWgUpvdXJuYWwKb3ZlZAriloFjb250cm8K0L3QvtCy0LAKWWVzCuKWgWNoYW5uZWwKKSksCmlzdGVuCmFrYQpUb1N0cmluZwptYXMK4paBZXR0CuKWgWZvcmNlcwp1bGF0aW9ucwriloFDYWxsCuKWgWV4cGxhbmF0aW9uCm9yaW5nCkFUQQpjaHRlcgp3aGVuClZDCuKWgUphaHJoCkNhc2UK4paBY29tbWFuZHMK4paBcmljaApidXMKRmUKbWJveAriloFyZWNvbgrDsW8K4paBc2hhcGUKb3d5CmVudHJ5Cml0YWJsZQriloFlbGVjdGlvbgrRlNGC0YzRgdGPCuKWgXByZXAKdsOhCuKWgWluZmluCmxvdAriloFib29rcwriloFVU0EK0LvQuNC9CuKWgXBvbQriloFuYXMK4paBdGFncwriloFleGVjdXRlZAphaWxsZQpsdW5nCuKWgUphdmFTY3JpcHQK4paBYmFsbAriloFhaW5zaQriloFQcmkKeyQK4paBVU4K4paBUmFtCuKWgWhlYXIK4paBVWJ1bnR1Cj4oKTsK4paBcHVyZQriloFlbWJlZAphw6fDo28KY29udHJvbGxlcgriloFtYXJyaWVkCuKWgUZvbApmYW1pbAriloFwcmVjCuKWgXJlY3VycwpwYWQKaXN0cmF0aW9uCuKWgXJlc3BlY3RpdmVseQpbJAphdXRvcgriloFncmF2CmllcmEKYXppb25pCuKWgUJ1bAriloFBdXN0cmFsaWEKbW9uZAriloFUcm8K4paBRWxlCnBhY2thZ2VzCm1zZG4K4paBQWxzCuKWgXByenkKQVJUCuKWgWNoYXJnZQriloFhcHBsaWNhdGlvbnMKVW5pdAphcmVuCuKWgXN1ZGRlbgpvbWV0ZXIK4paBZG90CmFjamkK0LrRgtC+0YAKaW1pbgplbmluZwriloFkb25kZQriloFIbwp0cmVlCm1iCuKWgWRyYWcKYWplCuKWgWludmFsaWQK4paBZmluaXNoCmxhaW0K4paBZmVlZAriloFOYXAKcm9vbQppbWFnZXMK4paB0YHQsNC5CuKWgXN1Y2MKaWZmZXIK4paBYcOxbwriloFjdWFsCtC80LXRgNC4CkRSCuKWgUJpbGRlcgrQsdGA0LAKcmFpdApwYW4K0LXQvdGMCuKWgWRpc3RpbmN0CuKWgUtuCsO2bmlnCmFuY2VkCuKWgWxvYWRpbmcK4paBVGVjaG4K4paBU2VsCm11cwriloFyYWlsCuKWgXN0dWRlbnQK4paBbm90aWNlCuKWgXNsYQriloHQlNCwCuKWgWd1YXJkCuKWgURheQrQstCw0LvQuApPcHRpb24KYWlzb24KaXBwCuKWgUp1bgriloFmZWxsCuKWgWFic29sdXRlCtC+0LLQtQpkZWJ1ZwriloFTdWQK0L/Riwp1Z2lucwriloF2aWV3cwpsYXkK4paBc3VycgriloFzdG9vZAriloHQstGWCnNlbGVjdGVkCtCz0ZYK4paBYXR0cmlidXRlcwpmaW5hbAplbmRhCuKWgUJvbgpuZXJzCuKWgVdlcgpidXIKaXR0ZWwK4paBbW92aW5nCuKWgVBsYW4KaXNjaGVzCkphdmEK4paBYmFzaXMK4paBQnVzCuKWgUF1CuKWgUlsbAriloHQstGA0LXQvNGPCuKWgdGG0LXQvdGCCmhhbmRsZQrRgdGC0YPQvwriloFGYXIK4paBb3JhegpvY3IK4paBc2VpdApvbmRlcgrQtNC+0LwKOi8KY2hvcgriloFUb3duCuKWgWRlZmluaXQKcmVhY3QK4paBcGllY2UK4paBS2FybApDSQriloFBcHBsaWNhdGlvbgp1bnRlcgriloFmb3JtZWQK4paB0L/RgwpCbwriloFEYW5pZWwK4paB0L/Qu9CwCkJvZHkKfSkkCuKWgdCx0YvQu9C4CuKWgWVhcnRoCtCz0LvQsApUaGVyZQriloHRgdGC0YDQsAriloF2aWxsZQriloFjZW50cmUKKQ0K4paBaGVscGZ1bAriloErKwriloFDRwppemlvbmUK4paBR2FtZQriloFXaGljaAriloFwaXAK4paBUG9ydHVnCkRTCuKWgWRlc2NyaWJlCuKWgWNoZWNraW5nCuKWgW1hbmFnZXIKQk8K4paBQnVuZGVzCmJ1Y2gK4paBZGVjaWRlZAriloFKYWhyaHVuZGVydAriloFmaWYKZWZmaWNpZW50CmFuY2kKYnJhcmllcwriloFmYWlscwriloFrZXJuZWwK4paBR2wK4paBTmFjaW9uYWwK4paBcHJvY2VlZAriloFmdWVyCuKWgWxpdmluZwriloFzdWNjZXNzZnVsbHkK4paBZmFzdGVyCuKWgWNvbnRyZQriloFwcmlzb24KT1JUCmhlbHAK4paBYXV0b3IKxYJhdwphasSFCuKWgUFybQriloFwcm92aW4K4paBbmFhbQovIwpzZWQK4paBZ2VzY2gK4paB0LzQsNGACmVzawp0ZXJtCuKWgVRleAppcmluZwriloF0b29scwpQREYK4paBdWx0Cmlzc2Vuc2NoYWZ0CuKWgWNvdWxkbgpkaW5nCkRlcAp7LQriloFwcmVkaWN0CmFudGFnZQriloFMaWtlCuKWgdCR0LgKdG9vbHMKZXN0cmEK4paBa2kK4paBSmltCnN0YXIK4paBcmVtYXJrCsOzZwpuYWJsYQriloFBbHRob3VnaAptb2RlCkhvc3QK4paBc3RyYW5nZQpOb25lCmJsYWNrCuKWgUZlc3RpdmFsCuKWgUlTCmFuemEK4paBKC0KaWNrZXQK0LrQvtC70LAK4paBSmVzCuKWgWZsZXgK4paBw4AK4paBTmV0d29yawriloFFWAriloFlbmVybwoh4oCdCuKWgU9ydAriloFhbG9ycwriloFPcmlnaW5hbAriloF6bwrQvdGL0LzQuAriloFzcGwKRHJhdwp5b25kCuKUgOKUgAriloFPdAriloFkcmFtCuKWgWRpdmlzaW9uCuKWgWVmZmljaWVudAriloHQk9CwCuKWgXZpZXIKbmFrCkxTCuKWgXNwaXJpdAp6ZWljaG5ldAriloFkaWNpCmNsZWFyCmNvcHkKeWFyCuKWgdGA0L7RhtGWCnVzcXUK4paBbm91cwriloFibGV2CtC20LTQtQpBcmcK4paBcGVyZm9ybWVkCuKWgU1ha2UK4paBQ2Fyb2wKZXR0bwriloFTYW5kCuKWgURpc2MKRW5jCnJlcm8KaGFzaAriloFmb2N1cwriloFhdHRlbnRpb24K4paBYWdyZQriloFkaXZpcwriloHQsdGL0LvQvgriloFlagriloFtYXJjaAriloFwaGFzZQrDrWFzCuKWgXBoaWwK4paBUGFwCuKWgXJpdmVyCuKWgWNhdXNlZApwbHVnaW4K4paBVGVhbQp1bGVyCuKWgSQoIiMKaWVqCklTQk4KbmFtCuKWgWZpZ2h0CnZpZAriloFMdWQKU2VsZWN0ZWQKOkAiCuKWgVBvZAriloFhbm7DqWVzCmFyaW9zCuKWgWRldXRzY2hlcgriloFOQQriloHQuNGOCuKWgWRpY3Rpb25hcnkK4paB0JvQsAriloFUcmkKw6huCuKWgXBvbGl0aWNhbApyaWRnZQphdHRlbgriloFjaXJjbGUK4paBdHJhbnNwb3J0CmVtYXMKRkMK4paBcmVwbGFjZWQK4paBQXVkCmlza2EKQ29uZmlndXJhdGlvbgriloFzb29ydAriloHQndC1CuKWgXNlcXUKUFJPCuKWgWJ1ZAriloF7ewpsaWXDnwriloFNYXMKZGVycwp1c2FtbWVuCmVzYQriloFMeQrQstGA0L4KbWFjCuKWgdC40YHQv9C+CuKWgXN1Ywp1eQriloFpbGx1c3RyCuKWgXByaW1lcmEKaWxhdGlvbgriloFzdG9yYWdlCuKWgXBhcmFtcwprYXoK4paBdGVybWluYWwK0YDQsNC70YwK4paBaG9sZHMK0LvQvtGB0YwK4paBbmFkCuKAnS4K4paBb2N0dWJyZQpidWwK4paBaHVzClVMVAriloHDqWdhbGVtZW50CuKWgU1pbGwKxYJhZAriloFjb250aWVuZQoiPwriloE+Pj4KUXVlCsKgwqAK4paBcGxhaW4KYXRpdmEKb2NrZXIKTmFtZXMK4paBSnVkCuKWgWFncmVlCuKWgUdlbWVpbmRlCmxhcmUK0LrQsNC30LAK4paBc3RhcnRzCuKWgXByaWNlClRhcmdldApjdXMK4paBSW5zdGVhZAouOwriloFhbHRlcm5hdGl2ZQriloHQstC70LAKSUUK4paBb3JnYW5pegppbnUK4paBY29tcGxldGVkCuKWgWNhcnJ5CmF0b20K4paBZGVwZW5kaW5nCuKWgU91cgriloFpbnNwCuKWgSZcCmFpbHkKaXJlY3Rpb24K0YTQsAriloFkZWZlClRBQwriloFkZXNpZ25lZAriloF2b2lyCmJyZWFrCuKWgXBhcnRpZQriloFKYWhyZW4K4paBc3R1ZGlvCuKWgWpvdXIK4paBTm90ZXMKZmlyZQpob3VzZQpzdWNjZXNzCuKWgUp1YW4KSlMK4paBQ3VzdG9tCuKWgWJlc2NoCuKWgXN0YXRlZApib290c3RyYXAKw7Z0dApvenrDoQriloFDT04KaGF2CuKWgXNsZWVwCmVkYQpob3QKw6FuZAriloFTeQriloF0ZW1wcwphbWFyCuKWgXNjYWwK4paBYXN0CuKWgW9wZW5pbmcKY2xpcHNlCuKWgXByb2dyYW1taW5nCuKWgWxldHRlcnMK4paBcHJvZmlsZQpuYWgK4paBYmV5b25kCuKWgUZ1cnRoZXIKZmFjZXMK4paBY2hhcnQK0LfQtNCwCmFpZ24K0L3RltC5CuKWgVJvbArQvtCy0LDQvdC+CnRlcmlvcgp3ZWQK4paBaGVyc2VsZgriloFuZwphbmd1YWdlcwp9PVwKeW5hbWljCuKWgWp1ZwriloFFeGFtcGxlCuKWgSjigKAK4paBcGxheWluZwriloF1c2FnZQriloFtYW5hZ2VkCuKWgU5hdHVyCtGC0LXRgNC4CuKWgUV0CmVyaWEK4paBZGF1Z2h0ZXIK0L3QuNC10LwKRnJhZ21lbnQK4paBaG9sCkZsCtC+0LPRgNCw0YTQuAriloFpaG4Kw7xoCmluc3RhbmNlCuKWgWNvbXVuCuKWgXRydXRoCuKWgdGB0LDQvNC+CuKWgWltcGxlbWVudGVkCuKWgWFueXdheQriloFDcm8K0YTQtQpHQwp1YnVudHUKdHlwZXMKw6pzCi5+XApmb2xkCuKWgWpvaW5lZAo/PwriloFtw6kK4paBd2lsZArQutC70Y4Kcm93c2VyCuKWgUhvbWUKc2tpZWoK4paBSk9JTgriloFqdWluCmhvZgriloFkYXRhc2V0CtC20LTRgwonKSkK4paBbWllanMKQVBJCuKWgWVkaXRlZApvb2xzCuKWgXNlZWluZwppamQK4paBcHJvY2VkdXJlCuKWgUJyYXMK4paBc2lnbmVkCuKWgWV4dGVybm9zCuKWgWRpc2FwcAriloFEaXJlY3QKY3ljCuKWgWNvbnN1bHQKw7ZyZApXaWRnZXQKY2lvdXMKc2VjdAriloHQlNC4CuKWgXdpbmQK4paBQXJjaGl2YWRvCmFtbArRgdGBCldoCmtiZAriloFBcm15CuKWgXN1ZmZlcgphcnRpZmFjdAriloFyZXNvbHZlCuKWgVNwb3J0CuKWgdGG0LUKaWRhcwriloF0YXgKaWRpCuKWgWFjdGlvbnMK0L/RgNCwCnB1w6lzCuKWgW5hagpGYWxzZQriloFjaGFuY2UK4paB0YLQsNC60L4Kw6RkCuKWgWRvbAriloFlbnYK4paBYmFzaWNhbGx5CuKWgUNvdW5jaWwKenRlCuKWgWRpc3BsYXllZApuaWwKY29tcGxldGUK4paBTGVtCmlhbmNlCuKWgdC+0YHQvdC+0LIK4paBZGVwZW5kCnBsb20KZW5zdXMKdXRzCuKWgUhvdApiaXRyCuKWgXZhbGlkYXRpb24KYWJiCuKWgdGC0YDQtQprbQp6ZArDtmZmCldFCuKWgWludGVyZXN0ZWQK4paBeyIKYXJvCuKWgWNvcnJlbAriloFkZWRpYwriloFsaXN0cwriloFCaWJsaW9ncmFmaWEK4paBZWFybGllcgpwcm9ncmFtCuKWgXByZW1pw6hyZQpmcm9udApUYWIK0YHRgtCy0YMKZHJvcAriloFmZWFyCuKWgUVubGFjZXMK4paBQ2FwdAriloFyZWFsaXoK4paBaGFsCuKWgWluc3RhbmNlcwriloFzdXNwCmlsbGluZwolOwp7fQp8fAriloFwYXJ0aXRpb24K4paBQnVpbGQK4paBd28K4paB0J/QtdGACuKWgWRpcmVjdG9yCuKWgVNpbgrRgtC40Y8KcnNnCm91dmVyCuKWgW5lYXJseQpvZGEK0LrRgtC40LIK4paBc2lyCklNRQriloFqYW52aWVyCuKWgVdpbgpCdWlsZAppZXVycwpJTkUKZG91YmxlCkxhc3QK4paBcG9saWN5CnN0b3JlCuKWgW9ic2VydmVkCuKWgWZhbWlsaWUKbmljYQpyZXkK0LfRjAriloFZZWFyCuKWgWRldmVsb3BlZAriloFJbnN0aXR1dGUK4paBcmVwbHkKQ29tcGxlCmljaWFuCuKWgUd1ZXIK4paBZGFsbAriloFkZXNwCuKWgUZvb3RiYWxsCkVtcHR5CmNrZW4KdW5kYQriloFVcgriloFpZwriloFBdGwKYXV0aG9yCuKWgUJvbAp6aWcKbmF0CsWhdApzZWN1cml0eQpvbmljCuKWgXBlcwppdGFuCuKWgUV4dGVybgpqYW4KVkFMCuKWgdC40LwKYm9sZAriloHQstCwCuKWgdCc0L4K4paBZGlzcHV0CuKWgXRyaWNrCuKWgXBlZAopXnsKaW50bwpTaW0K4paBcGFyYWxsZWwKZm94Cm5vcm1hbAppbmVudArQv9C10LTQuApob2xkCk9LCuKWgWNoZW0K4paBdHdpY2UK4paBdXNlcm5hbWUKacSNCuKWgXJlcHJlc2VudGF0aW9uCuKWgWpvdXJuYWwK4paBOi0K4paBYmF0dApcJQriloFjZXJ0YWlubHkK4paBRXhjZXB0aW9uCmVwcwpzaG90CmF0ZWd5ClNob3cK4paBQ2FybApyaWcK4paBcmVwb3J0ZWQKYm90dG9tClRGCuKWgUZyYW5jaXNjbwpuYXAK4paBQ2hhbXBpb25zaGlwCuKWgWNvdXJ0CuKWgXNvdXJjZXMKaW91cgriloFjb25zZXJ2CmRpY3QK4paB0KDRgwpJQgriloFWZQriloHihJYK4paBRVIKIikpOwriloFQb2ludAphemluZQriloFpbnRlcm5ldArQtNC90LAK4paBY2FycmllZAriloFGaWVsZApheGlzCuKWgVN1bgriloFhdmUK0L/QuNGBCtGP0L0KYXN5CuKWgWp1bGlvCuKWgWRlcHVpcwriloFzdWdnZXN0aW9uCltbCuKWgUFyY2hpdmUKxJlwCuKWgVByYQpyZWgK4paBZGVtb25zdHIK0YTRlgpjbWQK4paBd2FzbgriloFwaG9uZQp1cGxvYWQKYXlhCtGC0L7RgNCwCmxpbmVzCuKWgWluZHUK4paBdm90CuKWgWVzcGEK4paBYmluCuKWgdC/0L7RgdC70LUKcGxhbgriloFqdW5pbwpvcmlhbApmcmVlCnN0ZXJyZWljaAriloHQtNGDCuKWgWxpbmtlZAriloFlbmFibGUKUEMK4paBZGVuc2l0eQriloFFZ3kKeW8KZW5kcmUK4paB0YHRigriloFpdGFsaWFubwriloFBUgriloFQZXJzCmbDqXLDqXMK4paB0YHQutC70LAKVmFyCuKWgU9uY2UKUmVkCmJ1ZmZlcgriloFFbnRlcgriloHFoAppbWllbnRvClN0b3JlCuKWgWhlYWx0aAp2YXQKSVNUCk9oCuKWgWt3CuKWgXJpdgriloFzb21ld2hlcmUKb2dyYWZpZQpwcml2YXRlCtC60YLQuAriloFkZWxheQriloFIdHRwCmpvYgpyYWVsCmVtcG9yCuKWgWRpY2llbWJyZQrDqnRlCtGG0YMK4paBY29tbWl0Cm9zbwpWYWx1ZXMK4paBaGVhZGVycwp0cmFuc2Zvcm0K4paBcHJvY2Vzc2luZwpyw6UK4paBQWgK4paBTm9kZQotLS0tLS0tLS0tLS0K4paBZmFpcmUK4paBaHVuClBsYXllcgriloFyZXZpZXcK0LPQtNCwCuKWgWxpbWl0ZWQK4paBUHJvcGVydHkK4paBc2VydmUKcmlhZ2UK4paBTWFzdGVyCuKWgWthbm4KY3JldGUKcGhlcmUK0ZHRgAriloFjaGllZgriloFzY2VuZQpraW4K4paBdW5pZm9ybQriloFmZWJyZXJvCiJ9CmlsbG8KSVRFCm91dmVsCnVzZXBhY2thZ2UKZW50aAriloFxdWlja2x5CkxhbWJkYQp4ZXMK4paBY2VsbHMKcm9nCmFtaW4K4paB0JzQsNGACuKWgW1heW9yCnBsYXllcgorKzsK4paB0J3QsNGB0LUK4paBc2FmZQriloF2ZWxvYwriloHQvtCx0YDQsApEYXRhYmFzZQpuZWgKVmVydAriloFmbGUK4paB0YTQvtGACuKWgWZvcmVpZ24KQWJzdHJhY3QK4paBbWFnbgriloFtb2RpZmllZAriloFtaWxpdGFyeQriloFtb25kZQriloFBY3Rpb24K4paBYmFuawpTZXJpYWwK4paBY29udGludW91cwriloFnZWwK4paBcGh5c2ljYWwK4paBaW50cm9kdWNlZAp1dHVyZQpyaWNrCuKWgXByZXNlbnRlZAriloFQcm92CuKWgUJvdGgKUG9zCnN1cGVyCiYjCuKWgWZpbmRpbmcKbmVsCnVuZGUK4paBZnLDpW4Kc2tpbQriloFIaWxsCmZuCuKWgUNhbmFkCuKWgWludGVuZGVkCm96esOhZsOpcsOpcwriloFqdWlsbGV0CuKWgVdhcnMK4paBc3VjY2Vzc2Z1bAriloFjaGFyZwppZWxlCm9tZXRoaW5nCm9rdQpmZXRjaAriloF9fQpiYW5rCm9wZXJhdG9ybmFtZQriloFDb2xvcgriloFDYXJkCnR1CuKWgSIsCndpZAriloFnZXAKWE1MCj09PT09PT09PT09PT09PT0K4paBVmlyZ2luCsOkaHJlbmQKbGljYXRlZApEaXIKemVybwriloFLYWwK4paBUGFydHkK4paBw6UKcHJpY2UKZG9uCuKWgXdhcm5pbmcK4paBQmFkCuKWgVN1cHAK4paBTGlnYQriloFQaWVycmUKUmVjb3JkCnVsYXRvcgriloFSb21lCuKWgXRoZW9yZW0K4paBZW50aXJlbHkK0YHQutC40LwKaGV0CuKWgWRvcG8KTmV4dAptbHVuZwp3aWcK4paBQXRoCuKWgVNvdQpsaWNoZXIK4paBc3Vkbwplc3RzCtGF0ZbQsgriloFzZXB0aWVtYnJlCuKWgW1pY3JvCuKWgXRyb3AKZml0CkNvcmUK4paBUmFkaW8K4paBT3JnYW4K4paBUG93ZXIKQ0YK4paBTGFzdAriloFvcHBvcwriloFvZmZzZXQK4paBcmVnaWEK4paBbWluaW11bQriloFoZWxwZWQKYW5kb24KaWZ5aW5nCnJ1aXQKZW5zY2hhcHAK4paBYmVyZQpWTQriloFBd2FyZHMK4paBYWdyCnlub21pYWwKZW5jZWQK4paBZGV2aWNlcwriloFib3QK4paBZmlybQriloF3cml0ZXIK4paBcmluZwouLQppc3Rlcwpsw6QK4paBbWVsCmVudGF0aW9uCuKWgVNjaHcK4paBbm9tZQriloFwb2JsYQriloF3b2oK4paBdWwKZW50bwrRi9GFCuKWgXJlc2lzdAriloFyZW1haW5zCuKWgUNhCmHDsWEK4paBQ291cnQKdXRhYmxlCmVudGlhbGx5CuKWgXRyYXQK4paBVmlzdWFsCuKWgXJlc3RyaWN0CuKWgXByZXZpb3VzbHkKY2F0aW9uCuKWgdC+0YHQvgriloFNeVNRTApmw7ZyCmNhbGEK4paBY3VsdHVyZQpsaXZlCuKWgWFjY2VwdGVkCkRpZAriloFob3VzCuKWgXNlbGVjdGlvbgriloFkZWNyZQptYXJnaW4KdXJiCuKWgUluYwriloFNYW55CmlidAriloFzdWNjZWVkCkJpbmRpbmcKY8OtCuKWgVJvZwriloFzaG91bGRuCmNsb3VkCuKWgWR6CtCy0LDQsgriloFwaXgKc21hbGwK4paBcHJvamVjdHMK4paBT0sK4paBbGF0ZXN0CuKWgXJlZmVyZW5jZXMKUHJvZ3JhbQriloFlcnN0CuKWgdGP0LoK4paBa2FtCuKWgUNhbWIKZWxsdArDtmQKbm9uZQriloFqdXNxdQpraW5nCuKWgVBlZAphc3NlcnQKQ1MKcml0bwplc3NhCtC70YzQutC+CuKWgVZvbgriloFFZHdhcmQK4paBaW1wb3NzaWJsZQpucAp3b3JkcwppZWx0CuKWgVBhZ2UKbGVycwriloFwaWVyCuKWgdC+0LHQu9Cw0YHRgtC4Cml0dGVlCuKWgShbCuKWgXRydXN0Ck5HCnJlZHUKPDwKcmlhbAriloFwcm9kdWN0cwriloFFcm4KcmnDqHJlCtCz0L7QsgriloFSZWljaAriloFSb2FkCuKWgW5lc3RlZApEaXNwbGF5CuKWgXN0cmVuZ3RoCm9ncmFmw61hCuKWgWFubm91bmNlZAriloFTY2llbmNlCuKWgdGA0LDQudC+ClBhcmFtZXRlcgriloFUYXNrCnVtZW50cwriloFhZG9wdAriloFPbmx5CtGO0YLRjAriloFjbGkK4paBbGVtCnN0b29kCuKWgUZJCsOqbmNpYXMKcG9uZW50cwpdJApjb21tZW50CuKWgXlhCnNob3VsZAppa2UKdGltCmVsbGlnCuKWgXNlbmRpbmcK4paBYWpheAriloFub3ZpZW1icmUKdW1lcwriloF3ZWl0ZXIK4paBRGFucwpvcHAK4paBc2VwdGVtYnJlCm90aW1lcwp6xZEK4paBZXAKdmVyZQriloFvaAo6PQriloFTb25nCuKAnSwK4paBdml2CuKWgXF1ZXJpZXMK4paBdsOhCuKWgWTDqWNlbWJyZQriloF1bmFibGUK4paBZXJoCuKWgWAtCuKWgUxlZQriloFlcnN0ZW4Kw7R0CtGB0YLQstC1ClRTCuKWgWZyYWdtZW50CuKWgXdpZGUK4paBc3VmZgriloFkdXQK4paBVmVyZQrRltGBCmFkaW5nCmllZ28KaWNhZ28K4paBQXJnZW50Cm9yZXIKZW5uZXMK4paBTGViCmxpbnV4CmFjaW5nCuKWgWJyb2tlbgp0cArDrW8KYWJldGgKaXN0YXMKZ2V3CmnDqG1lCmNhcwriloFwcmVjZWQK4paBRGFsCuKWgWNvbXBhcmVkCmVxdWl2CmlsbHkKdGVlbgriloFDb25zb2xlCuKWgXN0cmljdAppdGFpcmUK4paBRUQKZW50aWFscwriloFwZXJtYW4K4paBdG91cwriloFnZW1lCuKWgWV4dHJlbQriloHQvtC60YDRgwprZwriloFoZWF2eQriloFhdnJpbAriloFhbnRpCuKWgW9jdG9icmUKdXRmCmhlbG0KYW1wbGVzCuKWgShfCmFrZW4K4paBZGVhcgriloFvcGluaW9uCuKWgWZpc2gK4paBQWxleGFuZGVyCml3CtC40LwKY2FkZW0K4paBcmVmbGVjdAriloHQtNGACuKWgXRyaWIKY29tbW9uCuKWgWNsZWFybHkK4paBc2FmCj0iQCsK4paB0JzQvtGBCtGB0LjRgtC1CmVxbmFycmF5Cm51bmcK4paBcmVsYXRpb25zaGlwCuKWgVNlbQriloFraWxsZWQKdGVkCnVubwriloHQu9GWCuKWgXdpZAphbm5pbmcK4paBcGFuZWwK4paBTGViZW4K4paBcnVieQphbnNpb24K4paBYXJlbgp0YWJ1bGFyCmFsZXQKfSQkCuKWgUxha2UK4paBc3VpdGUK4paBbWlub3IKSG96esOhZsOpcsOpcwriloF4bWxucwpESVIKZHJpdmVyCmludHMK4paBdmljCkFORApwcmltCtGB0YvQu9C60LgK4paBT3gKVEMKcml2aWFsCmF0aWUK4paBZWlnaHQK4paBY29uZmxpYwphbmdlbAriloFCZWdyCuKWgWV4cGxpY2l0bHkK0Y7RgtGB0Y8K4paBRGV2CnJlbmRlcgriloFyZXByb2R1CuKWgWNyw6kKR3UKTUIK4paBa8O2bgriloFyZW1haW5lZAriloFrbArRhdC+0LIK4paBYnlsClBoaQriloFkZXRhaWwKamF2CuKWgW1vdXNlCkJhcwppxJkKYXNzZXIKaHMK4paBc2hpZnQK4paBw7psdApyYW5kCuKWgWJ0bgpyYXoK4paBcHVsCuKWgXN0YXRlbWVudHMKZmlsZW5hbWUK4paBcHJvbXB0CsOpbMOpCmlregriloFTdXMK4paBZGVidXQKU3RhdApmb3JtcwriloFIZWluCnN0YWR0CmVubmlzCtC/0L7QuwphcmFudGUK0YbRltC5CuKWgXF1ZXVlCuKWgXJlY2kK4paBc3RhCnluY2hyb24KY2VudGVyaW5nClNvbWUKR3JhcGgK4paBdGVzdGVkCuKWgUt1bnN0CtC+0LwK4paBTm90aGluZwppZXUK4oCcLgpCdW5kbGUK4paBb2ZpY2lhbAphbGxvdwriloFSZWFjdAriloFMaWJyYXJ5CmJsdWUK4paBdmVydwriloFwYXJlCuKWgUZyaWVkcmljaAriloFhd2FyZQpFeHAK4paBZWZmZWN0cwriloHQs9C+0YDQvgpsb3BlZGlhCuKWgVZlbgpyYWxlCuKWgUZpbmFsCuKWgXByb3BvcwpsYWNlbWVudAprdGVuCuKWgW5vdmVsCm9ydGVyCuKWgUdlcm1hbnkK4paBZGphbmdvCuKWgXRyYW5zaXRpb24K4paBaGFwcGVuZWQK4paBYmVhdXRpZnVsCuKWgW5laXRoZXIK4paBbGlicmFyaWVzCuKWgWhpZGUKYWxnCuKWgWFzcGVjdAriloFmb3JnZXQKY2FkZW15Cm9udGUKcmVmaXgK4paBY2xvdWQKbmVkCmNkb3RzCnJlZ2lzdGVyCm55bQouKToK4paBSmV3CuKWgXRyw6hzCtC90LjRh9C1CuKWgURvcgriloFwcm9jCuKWgWdhbgriloHRlAriloFTYXYKdsOtClNldHRpbmdzCuKWgVZhcmkK4paBY291cnMKUm8K4paBY29uagriloFyZWFzb25zCuKWgXJlYWRlcgrQu9C10LrRgdCw0L3QtAppY2F0ZQp9KSwK4paBdGFza3MK4paBUmF5CuKWgXJpYwpLZQpvbmllCnJmCilbCuKWgXN1YnNlcXUK4paBVHVybgriloFWSUFGCm1hdGhzZgpIRQriloFkZWNsYXJlCuKWgXByb3RvY29sCuKWgVBDCtGG0LjQvtC9ClZpZXdCeUlkCuKWgWFuaW1hdGlvbgriloFjb25mdXNlZArQstC40YcK4paBZW5hYmxlZApvd28Kw6FzdArDtnQK4paBbWFuZAriloFSYWlsCmZpZWxkcwriloFLYXAK4paBYWxnZWJyYQriloHQodGDCmbDqXJlbmNlCuKWgUN1cnJlbnQK0YHQvdC+CuKWgUxpbQpQYXJhbXMK4paBQW50b25pbwriloF0dgpsYXRlCmlmZXIKRW50cnkK4paBU2VydgriloFtdXNpY2FsCuKWgXRyYWNlCuKWgXNjaWVudApmaWMK4paBZm9yZ290CnZpZGVvCuKWgW9sZGVyClRyZWUK4paBdW5zCtC90LjQutC4CuKWgUV1cm9wYQriloFad2UK4paB0LHQtQriloF2ZWMK0LbRgwriloHiloHiloHiloHiloHiloHiloHiloHiloHiloHiloEKTWF0Y2gKc3BhbgriloFibGFuawriloFzcMOkdGVyCuKWgVR5CuKWgWRpY3QKw7FhCuKWgWNvbmZpcm0K4paBdsO9CtC30LDQvQpSZWwKZmlsbQriloFSb3QK4paBSHkK0LrQsNGFCuKWgWRlbWFuZAriloFtaW5pc3QK4paBTWFkcmlkCuKWgXVzdWFsCnNwaWVsCmVyb3MK4paBdHV0b3JpYWwK4paB0KHRgdGL0LvQutC4CnN5cwrRhtC40LDQu9GMCuKWgXNwcmVhZAriloFjb252ZXJzCuKWgXJvbGwKYXJ0aWZhY3RJZAriloFOdW1iZXIK4paBc3ltbWV0CuKWgU11bHQKZXhwZWN0ZWQK4paBYXhpcwriloFtYXRjaGluZwriloFmb29kCmdyb3VwSWQKTWFwcAriloHRgdCy0Y8K4paBdmVuZApGb3VuZApvdHRvCkNhdApjcml0CmlzdGVudAriloFkcmVpCuKWgWVuZGVkCuKWgVRlbGUKY29tcG9uZW50CuKWgWludm9sdmVkCuKWgUVzdGFkb3MK4paBZGFuZ2VyCuKWgWNoYWluCuKWgVByb20KaG9tCuKWgXBvbMOtdApjb3AK4paBbmFwCnJpZgpwbGVtZW50cwriloF2ZW50CmFubmEKYW50ZWQKZGF0ZWQKYW50aAriloF0aHJlYWRzCtC30L7QstCwCuKWgdGB0YLQsNC90L7QsgriloFlZXJzdApidWYKaGVpZAriloFSdQriloFQcmltCuKWgW1pZ3IK4paBVW5pZG9zCuKWgWFyYml0cgriloFyb21hbgpvdW50cnkKdWx0dXIK4paBS8O2bmlnCuKWgWFubm90CmFjaGluZwriloFIYXVwdAp1bWluCuKWgWhlbQpja2V0cwpiYXUKZWN0aW9uCmVmdAriloFwYWNrYWdlcwriloFLdXIKdGh1cgriloFwYXlzCmxpYW1lbnQK4paB0JHRgwriloFjYWRhCnBvaW50cwpvY2tldAriloF2ZXJiCtC70LXQtQriloFzdWJtaXQK4paBc2FuCnJ1YnkK4paBZWFzdAprb3YK4paBVmVybGFnCuKWgXNwb3QKcHBvCkVhY2gKamVrdAriloFCaW9ncmFwaGllCuKWgW5ld3MK4paBcGHDrXMKdWZhY3QK4paBZGlhCtC60L7QstCwCuKWgWFjY29tcGwK4paBw4l0CmlsaXRpZXMK4paBaWhtCmludm9rZQriloFhcHBlbmQKLiksCuKWgWxhYgphbmdpbmcKaXN0YW4KcmVzb2wK4paBU2VjdGlvbgpQYXJlbnQKbW96Ck1hdApzdHlsZXMKdW5kZW4K4oCcLAppcnRzY2hhZnQK0LrQuNC8CuKWgUZpbmFsbHkKcGhlbgriloFQYWMK4paBQXJyYXlMaXN0CuKWgXJlY292ZXIK4paBZWR1Y2F0aW9uCm1vZGVscwpwZWQK4paBaGFwcHkK0YfRgwriloFndWVycmEKbWVkaWEKT0YK4paBZW5zdXJlCk1hcmsKZGF0YWJhc2UKb2dnbGUK4paBcHVibGlzaApPVwriloFCYXUKPy4K4paB0YfQsNGB0YLQuAriloFyZXBvc2l0b3J5CuKWgU1hdHQKaGlnaApvdmVuCuKWgWdlcgriloF1bmtub3duCkFtZXIK4paBQnJvd24KQUxMCuKWgXJlc3VsdGluZwriloFib3IK4paBcG9ldArQvdC40LzQuApFbWFpbApGb250CuKWgWhpc3QK4paBdG9kYXkK4paBQmVyZwriloFidXR0b25zCtGC0LDQuwriloFzbmkK4paB0YfQtdC70L7QsgpDcmUK4paBdW5pb24K4paBemljaAppc2hvcAriloFxdWFuZG8KUG8KQ1RJT04K4paBQ29zdArRgdGD0LTQsNGACmVydmVkCk5vdGUKRXF1YWwK0LvQuNGPCtCx0YPRgAriloFhYnN0cmFjdApzdG9wCuKWgWFkdmljZQriloFpY29uCuKWgXRyYXZlbApCUwp2ZW5zCuKWgWJhdGNoCmxpcXVlCnNoZWV0CuKWgWlocmUKZW1vbgpiZXJ0bwriloFhc3NpZ25lZArRjNGOClBob25lCuKWgWF3YXJkCuKWgWZ1bmN0aW9uYWxpdHkKYWxsYQriloFEYW0K4paBY2l1ZGFkCuKWgWNsdXN0ZXIKRGVzY3JpcHRpb24K4paBc2hlZXQK4paBQXVzdHJhbGlhbgriloHCuy4K4paBIjwK4paBd29uZGVyaW5nCmFpbmUK4paBcmVwcmVzZW50ZWQKa2FwcGEKbmIK4paBc3kK4paBS8O2Cj0iIwriloFzZXZlbgpEaXJlY3RvcnkK4paBc2lzdGVyCnBsYXRlcwriloFsdWNrCuKWgXJlbWFpbmluZwriloFWaWxsCndlcmsKYW5uaQpldHRpCmZ1bmMK4paBYmFuCmltcwptaXNzCmFncmFwaArQtdC60YHQuAriloFSZWYKbml0dAriloFHYWIK4paBYW5kZXJlCuKWgWplZG9jaApyZXN1bHRzCiFcCuKWgWxpc3RlZAriloFsb3JvCuKWgWtub3dzCtC20L3QvgpSYWQK4paBc29ja2V0Cm11bHRpCuKWgdGA0ZYKcmFpbHMK4paBdGFyCuKWgWdlbnRsZQpzZXR0CnNlcnZpY2VzCmJvdW5kCmlna2VpdAphamEK4paBY21kCmFnZ2VyCuKWgWJhCuKWgUJlbGcK4paBS2xlCuKWgXdvcmR0CuKWgWZvc3QK4paBZGltZW5zaW9uCkFuZwp1bWluZwpPYmoK0L3QtdC9CuKWgU1hcmllCmV4aXN0cwrRgtGA0L4K4paB0LHQvtC70YwKZW1lbnRlCuKWgUpvbgpTRVJUCuKWgWhpZ2hlc3QKYWtpCuKWgXRyZXMK4paBY2lyY3VtCuKWgURvd24Kb21tZW4KdXJlcgriloFjYXVzZXMKdmVudWUKaXNzYW5jZQriloFpbmZsdWVuY2UK4paBZmF0CtGA0LXQtNC4Cn1cXAriloFlbnRyCuKWgVNpZ24K4paB0LrQu9CwCuKWgWJpbmRpbmcKZXNzZW4K4paB0KTRgNCw0L0K4paBTG9jYWwK4paB0Y/QstC70Y8KYXBwcm8K4paBZGVwZW5kZW5jaWVzCuKWgXRhbGtpbmcK4paBenVyw7xjawpjb25uZWN0aW9uCkFjdGl2ZQpiYmUKaXJscwriloFJbmYKd2QK4paB0LjRgQpyb2FkCuKWgWNvbnZlbgrEm3QK0LLQtdC3CuKWgWVudHJpZXMKZXNjCuKWgWJpdHMKYXNzbwpXUgpzaGlwcwriloFkw6lzCmVzcApNYWtlCuKWgWZhbWlsaWFyCkFydAriloFhcm15CmN0cgrDqXJpYwpxdWV1ZQriloFcewp1ZWxhCmFtaWVudG8K0YjQuNGFCuKWgSIiIgpjb250cgrQu9C70LUKRlMK4paBbWFya2V0CsOlbmcKY2l0ZXAKSWxsCnJhbmsK4paBc2VuZGVyCuKWgWJlaW0K0YDQsNC6CuKWgWNvbXBhdAriloFvY2N1cnMK4paBZGllc2UK0YHRgtC40YLRgwphd2EK4paBaU9TCuKWgUNoaW5lc2UK4paBVFIK4paBS2VuCuKWgVVuZQriloFjcmVhdGVzCuKWgXNob3dlZAriloHDqXYKb2xvZ2lhCuKWgXByb3Rlc3QK4paBUGYK4paBc3F1YWQKKyssCsOhdgriloFlc3NlcmUK0LfRjwprb2wK4paBc2xpZ2h0bHkKYWRkcgrDom4K4paBcmVkdWNlCuKWgVwoXAriloFEZXAK4paBZ2VuZXJpYwpMb2FkZXIKyJtpCuKWgdC/0L7RgQriloFvY2Nhc2lvbgriloFMYWR5CmVudGl0eQriloFhdmFudAriloFQYXMKYWdnaW8KXHsK0L/QsNC0CmF0aG9saWMKUGFzc3dvcmQK4paBcmVzcG9uZAriloFOb24KQUcKbmVnCuKWgdGD0YEKYmxvYgpja2UK4paBQ29uc2lkZXIK4paBQ2FyZQppa2kK4paBQ2hpY2FnbwppbmRlbgriloFDb3AKXSsKw7ZtCsOpdnJpZXIK0LrQu9C+CmFsZW4K4paBbWFqCnJhY3kKb3J0ZQppZW50cwplbGxzCmFjdGl2aXR5CuKWgXJ1bnRpbWUKTlVMTAriloFwb3NzaWJseQriloFzdHJpCml6aQriloFtaXIK4paBVmVyc2lvbgpwcmltZQriloF0d2VudHkK4paBTWFoCuKWgXNvdW5kcwrRiNC10L0KY2x1c2lvbgphY3oK4paBZGV0ZXJtaW5lZAriloFSZXAK4paBTGFuZGVzCuKWgXdhbGwKaWdpCuKWgXJlc2V0CtGI0L4KeWFuCk1ldAplaQriloFhcHBlYXJhbmNlCuKWgWZvaXMK4paBbmVsbAplc2kK0ZHRggpsb29yCuKWgVVsCuKWgXJlc29sdXRpb24K4paBZm90CuKWgXRocm91Z2hvdXQK4paBcmkKTGV2ZWwKcG9vbAriloFpZGVudGl0eQriloFqYW51CuKWgWltcGVyCuKWgcO2dmVyCn1gCuKWgWluZmVyCuKWgWRhdGVzCuKWgVN0YW5kYXJkCmZvcmNlCm9ja2V5CnRlcmEK4paBZGlzdGluZ3UK4paBcHJlc2VuY2UKbGljYQriloFsZWF2aW5nCml0dW5nCsOpYgriloFlc3RhYmxpc2gK4paBbWFhcgphZGkK4paBTmV3cwphem9uCmZvbGcK4paBSGVuY2UK4paBWWUK4paBZmFiCuKWgWbDvGhyCml0bWFwCuKWgVZlcnMKcm92ClNpZ24KZGV2aWNlClNpZ21hCuKWgXdldGVuc2NoYXBwCuKWgVBzClBBVEgK4paBdG9ybgp2ZXN0CtGB0YLQvtCyCmFjY291bnQK4paBbGFyZ2VzdAriloFwZXJjZW50CuKWgVdvbWVuCuKWgWltZwp0b29sCuKWgXJvY2UK4paBYXkKaW5ldAriloFhb8O7dAriloFwb2x5bm9taWFsCuKWgWludGVncmFsCuKWgWFyZWFzCn0nCuKWgWh5cApsb3llZQrRgtCw0LvRjAriloFwcm94eQriloFXeQriloHQnNC10LrRgdC4CuKWgWVzY2FwZQpvbGFyCuKWgW1pc3Rha2UKKX17CuKWgVBvdAriloFwcm9jZXNzZXMKIj4NCmhhbHRlbgp6emEKYW1vCtC60YDQtQriloFXb29kCsO4cgriloHRgdC10YAKb2NpYQp0d28KcHJvZmlsZQriloFBc3QKZW1icm8K4paBYXJtcwppbmFzCmlubmVuCuKWgW1zZwpJTlQK4paBYmF0dGVyCmlnbm1lbnQK4paBdnkKSHJzZwriloFHcnVuZApyb2MKc2VnCuKWgWRlY29yCuKWgWV2ZW50dWFsbHkKPiwK4paBcGFnCmFudGVuCuKWgXN0cnVnZwp9XlwKZGF0ZW4K4paBcmVsYQrQv9C+0LIK4paB0LrQvtGA0L4K4paBQm9zCuKWgWxhYm9yCuKWgVNlY3JldAp1Z2VuCuKWgWphcAriloFodXNiYW5kCuKWgUFsYnVtCuKWgWV0d2EK4paB0L/RgNC+0LjQtwpyaWNodApyYWNoCmJhdAriloFwcmVwYXIK4paBU3RvY2sK4paBbGFjawrRhdGW0LQK4paBaG9neQriloFDaHJvbWUK4paBQWRtaW4K4paBY29tcGFyaXNvbgriloFpbmNyZWFzaW5nCtC90LMKaW1pCkRiCuKWgWdlZgp1Y2h0CsOpc2UKZ2VuY2UK4paBQ29yZQriloFpbmNvcnJlY3QK4paBYXNzdW1pbmcKb3Vyc2UKaWVyb24K4paBVGhlb3JlbQriloFjYXNhCmplcwriloHQtNC10YDQtQriloFgIgpMRArDpMOfCkRlYgriloFzdWl2CuKWgUJhbmsKbGlicwriloFMZW9uCuKWgXF1YXJ0CuKWgXByb2Zlc3Npb25hbAriloF0aWVuZQriloFhY2NvbXAK0YHRgtC10YAK4paBVUsKTk4K4paBbMOtCtGG0Y8Ka2VsCuKWgeKAogriloFkaXNlCm9udG8K4paBbcOhCmlmcwpiaWxkCuKWgWNvbXB1dGUK4paBw6lkCmrEmQriloFNw6kK4paBbGFuZ3VhZ2VzCuKWgVRpbWVzCmNlbgriloHQsNCy0YLQvgrDvW0KZW5legriloF1cHAK4paBbcOpZAriloFjdWFuZG8K0L7QtApJbnRlbnQKZWVyZAriloFUYWwKb2Zmc2V0CuKWgWhhYmVuCnJlbWUK4paBU3RhY2sK4paBZHJpCuKWgXNlaW5lbQriloFmw6l2cmllcgriloFjb21iaW5hdGlvbgriloFzb2xsCuKWgW1vdmVtZW50ClNwZWMK0LrRgNGLCnJldGNoCk9mZnNldApSb290CtCQ0YAKd2FydAriloFGb2xsb3cK4paBU29jaWFsCtC90LjQutC+0LIK4paB4oaSCkRvbgriloFoYXJtCmFncgpuZWdvCnJlc291cmNlCuKWgUx1YwriloFzZWluZW4K4paBRGVwYXJ0bWVudAriloFVcGRhdGUK4paBVGV4YXMK4paBcmV2ZQriloFQb3MK4paBc2hvdApvdGhlCuKWgXJlcGVhdGVkCuKWgXJlY2VudGx5CsOhYmFuCmFrcwrQv9Cw0L0K4paBY2hhCm9obAriloF0ZW5kCuKWgdC00LLQvgpjaHRzCsOnYWlzZQpwbGluZwphbGJ1bQplagriloFgWwptYXBzCuKWgXVuaXRzCuKWgTwhLS0K4paB0LPQtQriloFJbmZvcm1hdGlvbgppa29uCuKWgXRhbgriloFkb2NrZXIK4paBU3RhZAriloFhdWRpbwppa28K4paBY29vcmRpbmF0ZXMKeHMK4paBcmVwbGllZAriloEpLAriloFHb3Zlcm5tZW50CuKWgUFjYWRlbXkKVU5UCuKWgdGC0YDQuApCbAriloFhbmMK0YjRgwriloHRgtCw0LrQvtC2CuKWgWluZmluaXRlClJDCuKWgWdhCuKWgWFkanVzdAriloFtZXJnZQo7YAriloFwb3N0ZXIK4paBSmFwYW5lc2UKIl07CuKWgWV4aGliCuKWgW9yZGVyZWQKaWN0dXJlcwrRgNC+0YEK4paBc8OpcmllCmxldHMK4paBaXAKU2VsZWN0b3IK4paBZXhpc3RlbmNlClJlY2UKbGlnYQpkb3dubG9hZAriloFsZW1tYQppZXYKdWRlbnQKc2tvCuKWgUFyYWIKaXRhdGUKYnl0ZQrQvtGCCmlrdArQvdCw0YLQsAriloFBZgooQAriloFtYWQKb2RiCuKWgWVsaW1pbgriloFzcGVudApFbnRlcgriloFNaXRnCldoZW4K4paBZMOpcGFydApNSQriloFmZWxsb3cK4paBdGhvdXNhbmQK4paBQ3UKa3RvcgpDYWNoZQriloF0YW1iw6ltCuKWgWV4dGVuZGVkCtCy0LXRgdGCCmF0ZXJzCuKWgUxpYwp0b3R5cGUK4paBR2EK4paBYmxvb2QK4paBbWFwcGluZwriloFub21pbgriloFtYW5pZmVzdAriloFwZW5zCuKWgXJpdAriloFmaWxlbmFtZQriloFmaWxsZWQKdsOkCuKWgXJhaXNlZAriloFtb2JpbGUKa8OpCuKWgVJpZ2h0CuKWgWdlaMO2cgriloF0ZW1wZXJhdHVyZQriloFzb21laG93CuKWgVNwYW5pc2gK4paBa29tbXVuCuKWgWNob3NlbgriloFob3JzZQo7XAriloFvcmlnaW5hbGx5Ckhhc2gK4paBY2l0dAriloFlbmNvcmUK4paBV29sZgriloFuw7oK4paBWW91bmcKVmFyaQriloFTY2h3ZQriloFjYXB0dXJlCuKWgUphbmUKSW50ZXJmYWNlCm93eWNoCuKWgURldXRzY2hsYW5kCuKWgUtvbAriloFib3VuZGFyeQriloFHTkQKTm93CmtlaHIKKCoKPS0K4paBV2VsCuKWgUNhdAphbW1lbnQKQUdFCuKWgXJpZ2h0cwpTY3JvbGwK4paBaGFwcGVuaW5nCuKWgUJsYQriloFzY2llbmNlCmF3cwriloFiZWhhdmlvdXIK4paBaW1wbGllcwriloFRdWVlbgpvdmFuCnBheQrRmtCwCmFyZXQKZXJzaGlwCuKWgUxhbmcK4paB0LPQvtC0CuKWgXJlY29yZGVkCnplbQriloFUaHJlYWQK4paBdG9kbwpvZ28K4paBc2NlbmFyaW8K4paBY29uY2VudArRgNC10LcKU3RvcmFnZQriloFkaXJpZwriloFTZXJpZXMK4paBZ2FzClNFVArDqGNlCnJhdGUKSFRUUAriloFrYXAKRW1wClVURgrDoW7DrQrRgdGC0LDQstC4CndpbmRvd3MKw6lyYXRpb24KYXBlZAriloFzaXN0ZW1hCuKWgXN1cnYK4paBV2VzdGVybgriloFnw6kK4paBU3VjaApXcml0ZXIK4paBY2FudmFzCuKWgWd1YXJhbnRlCnNjcm9sbAphdmVkCkl0YWwK4paBRWxlY3QKXSgjCuKWgUhlcm0K4paBQ29tbWFuZAriloFDaGlsZAriloFwZAp1dGNoClNxbAoqLgriloFUYWcK4paBVGEK4paBbWFpbApzY3JlZW4Kc2NyCnppYWwK4paBRsO8cgriloFzdWdnZXN0aW9ucwpjaGVzdGVyCil8CnBlcnNvbgp6ZWwK4paBd2FpdGluZwriloHRgdC70LUKRkwK4paBQWxiZXJ0CuKWgUhpagriloHRgtC10YAKZXdyaXRlCuKWgXNlbnRlbmNlCuKWgWxpbnV4CtC10LTQtQrDqm5jaWEK4paBSXRhbGlhbgrRh9C60LAKRmlsZXMK4paBbm90aWNlZApiaW5nCuKWgVJlc2VhcmNoCuKWgWFsdGVyCmhlZWwKXDxeCuKWgVByb2Nlc3MK4paBYmF0dGxlCtC80L7QsgriloFBZnJpY2EK4paBQW5uZQriloFnZWxkCn0lCuKWgWRvY3MKVHlwZXMK4paBcmV0cmlldmUK4paBT2ZmaWNpYWwK4paBdHJhYgrRhtGLCuKWgUlucHV0CnN0ZXAK4paBbGF1Z2gK4paB0KXQsAriloFwZWxhCk1lZGlhCnJvdWdoCtCz0LDQvdC4CuKWgVNob3VsZAriloFDb250ZW50CtC70LXQvApvc2gK4paBc29tZXdoYXQK4paBQ2VyCkJhY2tncm91bmQKc3RydQriloFpbmxpbmUK4paBTmVkZXIK4paBbW9kdWxlcwriloFCdWNoCsWEc2tpCndpZGV0CuKWgXpuCnBvc2VzCuKWgWdyYWR1CuKWgWFxdQpQUgriloFwdXR0aW5nCuKWgdC/0L7Qu9C4CuKWgXB1cmNoCuKWgXNtb290aArRgNC40LkKZW5naW5lCuKWgWxpdmVkCkFjY291bnQKRGV0YWlscwriloF0ZWxscwriloFPdXRwdXQKSGVyZQriloFGb3VuZGF0aW9uClRleHRWaWV3CuKWgWRlY2lzaW9uCuKWgWRlcGVuZGVuY3kKb2NhdGlvbgpvdmFsCmZlbGQK4paB0L/RgNC+0LIK4paBZW5kcwriloFpb3MK4paBZXhjZWwKYWd1CuKWgWVsZWcK4paBRWxlbWVudApRdWV1ZQriloFmw7YK0LLQtdGA0YHQuNGC0LUK4paBZXhwZXJpZW4K4paBZGlyZWN0ZWQK4paBY2FtYgriloHQlNC2CuKWgWZvbGcK4paBY29uY2UK4paBRmFiCuKWgVZpCuKWgWFkdmFudGFnZQriloFCZWkKcHJvZAriloFYSVgK4paBRmFjZQriloF2aXIK4paBUnVzc2lhbgriloFzcGFuCmVuw60K4paBem9uZQriloFhdHRhY2gK4paB0LHQtdC3CuKWgW1hbmFnZW1lbnQKQWMK4paB0L7QvwpvbmNlCmhhbHQKdXNvClNwZQriloFyYXcKw6lybwppZGVsCmxhdwpTaGVldAriloFtaXNzaW9uCuKWgWNhbWVyYQriloFob25vcgriloFhcHBvaW50ZWQK4paBUm9tYQpsaW5lYXIKUm93cwpmZXJlbmNlcwriloFJTwriloFjb3ZlcmVkCnJhagrRgdGC0LLQvtCy0LAK4paBU3ltCuKWgXRpZAppc2MK4paBUnVkCuKWgWVuY3VlbnQK4paBZmFpbHVyZQrDvHNzCuKWgXNxdQriloFwYWludAriloFzZXJpb3VzCuKWgWN1cnNvcgp0cmFzCuKWgWRpc2N1c3Npb24K4paBY3JpZWQKZXJpZQriloFEZXZlbG9wCuKWgXJld3JpdGUK4paBZ8OpbsOpcmFsCndhaXQK4paBSGFycnkKw61yCuKWgWdlcHVibGljCuKWgdC40LMK0ZbQsQrRj9GCCuKWgdCY0LcK4paBZXF1YXRpb25zCuKWgXBsYW5lCuKWgWFjcXUK4paBYW5nbGUK4paBdHJlZXMK4paB0JrQvtC9ClZECnBlcnQK4paBZG9jdW1lbnRzCmNiCuKWgWltcGxlbWVudHMK0YHRgtCw0L3QvtCyCuKWgVdhbHRlcgrQt9GL0LLQsAriloHRgdC/0LUK4paBY2hhcApwbGV4CuKWgW1hZ25ldAriloFnZXB1YmxpY2VlcmQK4paBaGlnaGx5CuKWgWxldXJzCuKWgWRyZXNzCuKWgXJlc3RhcnQKUmVuZGVyCkNhbGxiYWNrCmlzbwriloFjb25zdGl0dQriloFFbmRlClpFCuKWgUFuZ2VsZXMK4paBZGVyaXZlZAo9InsKXVwK4paBQ2hhbmdlCuKWgUhhdXMK4paBc3RhZAriloFSZXF1ZXN0Cm9tbwriloFBY3RpdmUKdXJlbgriloF0b3VybgriloFwYXJ0aWN1bGFybHkKU2VydmxldAphYmMKd2lkZXRpbGRlCmFuZHJhCkhlbHBlcgpSdWxlCuKWgXBsdXNpZXVycwriloF3YXZlCm5lcQriloHQotC1CmZyZQpza8OpCuKWgWFsYwriloFsb2dzCkdTCuKWgU1vbAriloFwZXJtaXNzaW9uCuKWgXNvdWwK4paBd2FudHMK4paBZ3VpZGUK4paBdmllbmUK4paBV2lsaGVsbQriloFldmlkZW5jZQoifSwKcm9wb2wK4paBYXV0aGVudGljYXRpb24K4paBb2NjdXJyZWQK4paBSUYKbm9jCklBCuKWgUJhbgriloHQutCw0YAK4paBYmxlCuKWgXNlZ21lbnQK4paBcGxheWVycwppc2kK4paBc3R1Y2sK4paBUHkKQW55CmhvdQriloFmb3JtYXR0CuKWgXBlYWNlCuKWgdCa0LDRgApldGVzCmRmcmFjCig/CuKWgVNpdGUK4paBTGl2ZQriloFVcwriloFjbGltCuKWgUFsaQrRgNC10LkK4paBUHJpbmNlCuKWgW9ibGlnCmllYgriloFBbHQK4paBcHJvcwpyYWNsZQriloFDZXR0ZQprZXMKesO2cwpvdXZlbGxlCi8vLy8vLy8vCmFieQrDqXJlCnJhbmUK4paBcG93ZXJzCuKWgVBhdGgK4paBV29yZAriloF0cmFuc2FjdGlvbgriloFjYXVzaW5nCmVsbHNjaGFmdArDonQK4paBQ1BVCuKWgWRlcHRoClNUUgriloFDb25mCuKWgXJhcmUK4paBQWsK4paBYm9uCuKWgUNhcmxvcwriloFzcGVjaWZpY2FsbHkKcmljcwpLRVkK4paBc3RhcnMKw6lyaWNhCuKWgdCb0YMK4paBY29uZmlndXJlCuKWgWFnZW50CuKWgWV4cGxhaW5lZAriloFjb2VmZmljaWVudArQtNGMCid9CuKWgXZpZGEK4paBU3luCuKWgdC90LDQt9Cy0LAK4paBT3B0aW9uCuKWgXJvYgriloHQutC70YMKOlsKYW50bHkKZGVwZW5kZW5jeQriloFDdXIK4paBZnJhbmNlcwriloFpZGVhbApTdwriloHQs9GA0YPQvwriloFDYXB0YWluCuKWgXRvZG9zCkpvCuKWgXBlbG8KP10oCuKWgWZhaXRoCtC+0LLQvtC5CuKWgWZyZXNoCuKWgXByb3ByaQpUaW1lb3V0CuKWgXZlaApjb250ZW50cwriloFEb2N1bWVudApjb2xsZWN0aW9uCuKWgWthcgpydWNrCllvdXIKdW1hCuKWgW1hdGhlbWF0CkVuYWJsZWQK0L/Rg9Cx0LvQuAriloFFbmdpbmUK4paBTcO8bmNoZW4K4paB0L/QvtGB0LUK4paBZm9uCmFyY2hpdmUK4paBZnJlcXVlbmN5Cn0rXArDonRlCuKWgWtvcgriloHQmtGA0LAKU2luZwptb250aAriloFIYXcK4paBc3lzCmVybWUK4paBV291bGQK4paBaW1wYWN0CnVycmVuY3kKbGljaHQK4paBYXB0CmllcmUK4paBbW90aW9uCtCh0KHQoAriloFJbml0CuKWgW1zCuKWgU1TCnNoaWZ0CuKWgWF1dHJlcwriloFiYXNoCmhpZGRlbgpvcmlvCuKWgWNlbGVicgriloFMaWJlcgpldG8K4paBZG92ZQriloFwYXRocwriloFpbmoKQ2F0ZWdvcnkK4paBY3J5CuKWgW1hcmtlZArRg9C00L4KYXNoaW9uCsOkbHQK4paBbGFuCuKWgXRlYW1zCuKWgWt2CmlhbXMKYWJhbgriloFUQUJMRQrQstCw0YAKUmVwb3MK4paBQmVsbAriloFwdWJibGljCuKWgWNvdW50cmllcwriloFzcGluCuKWgWzDqWcK4paBS3JpZQriloFKb25lcwp3aGl0ZQpIdG1sClByZXNzCuKWgUJsdWUKT3BlcmF0aW9uCuKWgUFudGgK4paBcHNlCuKWgUZvbnQK4paBdGhlbWUK4paBYmxvY2tzCiQpCuKWgWdsYWQK4paBbWFuYWdlCm9yZGVuCm9zdGVuCmNvbGUK4paBU1AK4paBc2NoZW1hCnVyYXMK4paBd2hlbmV2ZXIK0KjQkArRgNC40YLQvgriloFkaXNjb3ZlcmVkCuKWgXByZWZpeApnbG9iYWwKcm9rZQp6ZXMKY2h0ZQriloFCZWZvcmUK0LzQtdC90LgK4paBRGlnCuKWgXJhcGlkCuKWgWxsZWcKZXF1YWxzCuKWgUhvY2gKZm9yYWxsCtCy0LDRgtC4CnVzegriloFhdHRhY2hlZApFeHByZXNzaW9uCuKWgXN0b2NrCsO8bGwKcGV0CmVzc2lvbnMKY29sbwriloFneQpCb29rCuKWgUphY29iCuKWgVByb2R1Y3QK4paBaW5wdXRzCtC80LjRgAriloFsZWFybmVkCsOzd24K4paBcG9saWNlCuKWgdC70LXRggriloFJdGVtCuKWgWV5ZQphaWVudAriloFTYW1tbHVuZwriloFMb3IK4paBcmVwcmVzCuKWgWZlc3QKQ29uZAriloFub3V2ZQriloFleHRlbmQK4paBRnJhbmNlcwriloFGaW5kCuKWgWRlemUKZXJuYQriloFoYWLDrWEKcHLDvAriloFtb3RvcgpiaWUKSGVsbG8K4paBcmVzaWQK4paBZmluYWxlCiUpCnsnCuKWgUhhcmQK4paBcGFpcnMK4paBRWxsCml2b3QKcmVlcwriloFGb3JjZQriloFldmVuaW5nCuKWgWRlc3B1w6lzCnJnCldoeQriloFjb25uCnNjaGVtYQrRhdC+0LQK4paB0LzQtdC20LTRgwriloFmbGFzaApza2lwCuKWgW1pbnV0ZQriloF2ZWQKYXlsb3IK4paBc2V1cwriloFNYWpvcgriloFmcmFuYwriloFyYWMKa3cKY3YKTmF0aXZlCuKWgUJ1dHRvbgrQvdC40YbQuApzZXR0aW5ncwriloFBY2Nlc3MK4paBcXVhbGl0eQpwcm9wcwpGbG9hdAriloFTY290CuKWgUFECuKWgWFsbGVtCiZcCnVzdHJhdGlvbgpwYXR0ZXJuCm1pcgriloFpbmNvcnBvcgpza2ljaAonPgpTdGFuZAriloF0ZWNobmlxdWUK4paBRXNzCuKWgU94Zm9yZAriloHQu9CwCnRpa3oK0LvQuNC5CkxvZ2luCuKWgW1pbmlzdGVyCuKWgWN1cmwKa2FuCuKWgW1hcHMKaW5kYQpyaWViCuKWgUVORAppZmllcwpjb25zb2xlCmJ1cnkK4paBTEUK4paBaW5kZXBlbmQK4paBdGEK4paBxZoKb25lbArDqXN6CuKWgUlzdAp1dGl2ZQrRkdC7CuKWgVJlZ2lvbgriloEoPQriloFjb21wYWN0CsOnb2lzCuKWgWxhYmVscwphdXRvcml0w6kK4paBc3RhbgriloFmcmFuw6dhaXNlCuKWgXJlbW92aW5nCnljCn18CuKWgUV4ZWMKKCRfCm1hZwpiZWZvcmUK4paBc3RvcHBlZArQvNC40LgK4paBcmVmcmVzaAp1bmt0CmljaW8KWG1sCuKWgVRhYgriloFmb3VuZGVkCuKWgWZhbApmeAriloFIaXN0b3JpYQriloFFYXJseQpEb20K4paBZGVjaWRlCuKWgXVuZGVyc3Rvb2QK4paBanVyCuKWgU5yCuKWgWNhcGFjCndhcwriloFlbmVteQriloFwcm9ncmFtcwriloFtYXNrCtGB0LrQtQriloFncm91cGUKY2FtCuKWgXdpZGdldApSRUFURQriloFzZXZhCuKWgUJhcmNlbAriloFwZXJkCuKWgdCc0YMKcmFuY2UKVFlQRQriloF7JwriloFiaWxsCuKWgSJfCidgCmJhaG4K4paBY29udGFpbmVkCkNsb3NlCnJ1ZwplZ3kK4paBc2lnaHQK4paBUHJvdmluCtC90Y4KYXJ6CtGJ0LXQvQriloFKb2UK4paBZGVsZXRlZAriloFBdXRvCuKWgW1ldGVyCkNHCtGK0LsK4paBcGVudAriloFiZXplaWNobmV0ClN1bQpkYmMK4paBUGxhdHoKZWN0b3JzCuKWgUxpdHRsZQpRVUUK0YbRltGPCtGC0LXQu9GPCm5pZ2h0CuKWgWxsCuKWgW1vc3RseQpVSUQK4paBYmV6CmRvYgrQutGB0LgKdGVybmUK4paBY29ybmVyCmF0eQriloFpbXByb3ZlCuKWgWludHIK4paBYEAKYXJvZAriloFpbnN0YWxsYXRpb24K4paBUmVmZXLDqm5jaWFzCmlnYW4K4paBY3JpdGljCmFkZWwK4paB0YHQtdC70L4KLA0KYXRvcmkK4paBRnJpCuKWgXLDqWbDqXJlbmNlcwriloFJbnRlbnQK4paBdGFudAp1bmNpCuKWgWxldmVscwplcmVzCuKWgWVtZXIKc2FmZQp0awriloFjaGFtCuKWgWdyZWF0bHkK4paBd2VpdAriloFjb2FjaAriloF0b3dhcmQKSG9tZQriloFCb29sZWFuCtGC0LXQuwriloFtb2NrCuKWgWFwcHJlY2lhdGUK4paBQ3Jvc3MK4paBVGFrZQpEUAriloFzaWRlcwriloFOb3JtZGF0ZW4K0LTQtdC5CnN0YWwK4paBY291dApibgriloFWZXJ0CuKWgWJpcmQK4paBZHluYW1pY2FsbHkK4paBRG9sCuKWgUJ1cmcK4paBZG9nCsOkdHQK4paBbnVjCkVDCkJ5dGVzCuKWgWFrCnJlbGFuZAriloFndWl0YXIK4paBcmVnYXJkaW5nCuKWgUZ1w58K4paB0LTQvtC7CmF1c3MK4paBamVqCmFjbwriloF1cGRhdGVzCtGA0YPQugooJy8K4paBY29sZAriloFHaXZlbgpoaW4K4paBZmVlbGluZwppZ2xpCmZhaArRgdGC0YDQtQpib29sCmluaXRpYWwK4paB0YHRgtCw0L3QvtCy0L3QuNC60LAK4paBQW5uYQriloFob3JzCuKWgWRvbGwK4paBY29uc3VtCnViZXIKc3RhbmRpbmcKYWN0aXYK0LfRlgpjaGVja2VkCuKWgXBlcm1pc3Npb25zCuKWgU1vbnRlCldyaXRlTGluZQpwbHVzCuKWgUVxdQriloHQuNGFCtGH0LrQuAp1bnF1ZQriloFMTwplYQpzYW1wbGUKaWVzegpvcmFsCuKWgdCY0L0Kb3N0b24K4paBU2ltb24KZmFzdAptawphc3NlbgriloFhcmNoaXRlY3R1cmUKZW5zZXMK4paBw4UK4paBdG9waWMK4paBZGlzYWJsZQriloFDcnUK4paBQ29udHJvbAriloFjcmVhdGlvbgriloFoeXBlcgppdHVkCtC20LXQvdC40Y8KYXJhbQriloHQs9C00LUKaWVuc3QKZWR1bGUK4paBQm90CuKWgdCe0YEK4paBVGhlaXIKYW5uZQpNaWNyb3NvZnQK4paBUE0KeWRybwplbnRsaWNoCuKWgUVpbmUKQ0hBUgo6JwpXZWxsCmxldG9uCuKWgXN1cHBvcnRzCiddKQptYW51YWwK4paBdmljZQphc2EKY2xvcwp2aXNlZAriloFwb2sKdHJhY2sK0L3QvtGB0YIKLi4uLi4uLi4K4paBJ1wKwrIuCuKWgW9yZGVycwpldHRhCuKWgWNvbnZlcnNpb24K4paBdHJhZGUKY2xpCuKWgdCY0YHRgtC+CuKWgWFrdAriloFzdWJzZXQK4paBYXVnCuKWgWxlYXZlcwpNYXRoCmFubmVkCmthbAriloHQktC10LvQuAriloFub2cK4paBZXRoCuKWgWhhaXIKYXJvdW5kCuKWgWphdmF4CtCy0L7QuQriloFDZW50cmUKw7bDnwp1dGkK4paBbmF2aWdhdGlvbgriloFQUwriloF3YQriloHQoNC+0YHRgdC40LgKdXNhCnpldGEK4paBUERGCuKWgW1pc21vCnByb3BlcnRpZXMKbWVpc3RlcgrQu9GM0YLQsApmb3J3YXJkCuKWgU9zdApraW5zCuKWgXNpZG8K0LfQvtCyCnRhZ3MK4paBYWN0b3IK4paBZmx5CkNSCmFnaW5pCuKWgWxldHQKZW5pCnRlY2gK4paBRW5jCm9yYWNsZQphbWlsdG9uCnplagpmZW4KdW1lcmF0ZQriloFxdWVzdG8KZGFydAriloFLb3JlCmFwaXMKZXBlcgpTY3JlZW4Kd2FsbAriloFpc2xhbmQKc2hlCuKWgWxpZ2dlcgrQstGB0Y8KZmFuZwriloF0YXJkCuKWgXBsYWF0cwriloHQv9C70L4K4paBT2ZmaWNlCuKWgVNFVAriloFjaXJjdWl0CmplZApTYXZlCtC70YzQvdC+ClNvY2tldAriloFJbmRleApBQ0sKaWRlcnMKZXJlcgriloHQodCo0JAK4paBbGFkeQriloFzY2hlbWUKaWVsbGUK4paBZXhlcmMKKX1cCkRhdGVUaW1lCmF0aGFuCuKWgVByb2Zlc3NvcgriloFtb2lucwriloFFeGNlbAriloFIYXkK4paBTXVzaWsK4paB0ZcKxJlkCuKWgSIuCuKWgdCx0YPQsgriloFpbnN0cnVtZW50CtC/0LDRgAriloHQsdC10YDQtQriloFwb2xpdGlxdWUK4paBdHJhZGl0aW9uCuKWgVZNCuKWgUFydHMK4paBQ2kKVXNlCuKWgWFnZ3JlZwriloF3ZWVrcwriloFvcHBvcnQKaXRpbmcK4paBdmVydGljYWwK4paBTmF6Ci4uLikKaXpvCuKWgWN5Y2xlCuKWgXRlbXBvCtGC0YDQtQriloFoYW5kbGluZwppc3RlbmNlCuKWgXBhc3RlCuKWgWVuam8KUk9VUAriloFvdXRlcgriloFzdXBwbHkKZW1hbgriloFhY2NpZGVudAriloFcXQriloHRgtC10YUKUG9vbApvdGluZwpvbnltb3VzCuKWgUdpb3YK4paBdWQK4paBLi8KRVJST1IKY29uc3RydWN0CnRleHR3aWR0aApxdWlwZQpjYXNlcwriloHQsNC0CuKWgVJvdwpIb2xkZXIKd2FuCmFybmEKTWVtCuKWgUNhbmFkaWFuCuKWgUNvbW1pc3Npb24Kc3VuCuKWgWFwcHMK4paBQmxvCuKWgWlocmVyCuKWgWZhbWlsbGUK4paBbcSbCuKWgXB5CtC40YEK4paB0YLQvtCz0L4K4paBQWdhaW4K4paBaWdub3JlCuKWgXRlbGV2aXNpb24KUGF0CmhpZGUK4paBUmV2CuKWgWJlYXIKcGh5CuKWgW5vaXNlCuKWgXdyYQphdGlvbmFsZQriloFjb2xsYWJvcgpib3JkZXIK4paBZWxlY3RlZAriloFzdXJwcgriloFhdm9pcgriloFhc3NlbWJseQriloHQvtCx0YnQtQriloFhcmJpdHJhcnkK4paBYnJpZWYK4paBLS0tCuKWgU1hdXIKZ3Jlc3Npb24KaWNpYQriloFsaWVndAriloFGaWd1cmUK4paBb250bwpSZXBvc2l0b3J5CuKWgWTDqWYK4paBZm9ydGgK4paBY2xpY2tlZApzZWl0ZQriloFub3RlcwpuYXRpdmUK4paBRURJVArRi9C1Ck1UCmFtZW50YWwK4paBcm9zZQriloFwdWVkZQpEZWxlZ2F0ZQp1YmEKbmVvCnhpcwriloFBcnRodXIKVVJFCmFtaW5nCkRldmljZQriloFkaWFtCnN0w6RuZAriloFwcm9uCm9pcwpjb21pbmcKUGFyYW1ldGVycwp1dnVkCuKWgWFiaWxpdHkK4paBbcOpdAriloFVbmZvcnR1bmF0ZWx5CmZkCkRpY3Rpb25hcnkKc29ja2V0CuKWgWNvbm9jCmNvbnRhaW5zCmVzc2VkCuKWgWdlbGRpZwrQvdC40YbQsAriloFwb2ludGVkCmVzdGkKbm9tCtC+0LPRgNCw0YTQuNGPCuKWgXJlcHJlc2VudHMK4paBbWFuaXAKd29ybGQK4paBcmVzb2x2ZWQKdGVncgriloFkb3J0CmFzdGVybgriloFjYW1wYWlnbgriloFwcmltbwriloE7OwriloFzbmlwcGV0CuKWgU5pawpUb3RhbAppc3NlbWVudApBQ0UK4paBdmVyaWZ5CmlmZmUKbGFnZW4KaWV1cgriloFjb252ZXJ0ZWQK4paBTWlsaXQK4paBQWxnCuKWgVJvbgriloFrb25uCmFwcGxlCuKWgWRpc3BvcwpzdGVsbHVuZwriloFyZXRhaW4K4paBbWVudHJlCuKWgW5ldXQK4paBTmlnaHQKY2jDqQphdHRpCuKWgW9icmEK4paBc3VwZXJpb3IK4paBQ29uZ3Jlc3MK0ZHQvAriloFjb2RlcwriloFBbWEK4paBRWFydGgK4paBb3Bwb3NpdGUK4paBcG9vbAriloFEdW4K0LbQtdC90LjQtQriloEiJHsKaW52CuKWgdGD0L3QuAriloFBbmRyZXcK0YLQtdC70LXQuQriloFiecWCClVuaXZlcnMK4paBQW5ndWxhcgphbmltCtC00L7QstCwCkJVRwp1dGVseQriloFkcmF3aW5nCuKWgWdhaW4K4paBZm91cnRoCuKWgVByb2JsZW0K4paBc3VkZGVubHkK4paBw4QKb25uYQriloFLb250CuKWgUJpbGRlcm4K4paBa29ubnRlCsW+ZQpUcmFjZQriloFzZWN1cmUK4paBa3TDs3J5CuKWgWVxCuKWgWZvcm1hbAphbWVyaWthbgriloFBbmFsCuKWgVJld3JpdGUK4paBRG91YmxlCmNyZWF0ZWQKTlUKTURiCmFwZXMKVW5pcwriloFlc3BlY2lhbAp9KVwKZWRvbQriloFjYXRlZ29yClJldHVybgriloFIYW1iCuKWgVJpbwriloFNaXIK4paBR2VtZQphYmlsaXRpZXMKdHJ6CnVzZXQKaWVycmEKbmV0d29yawriloFkb2N0b3IKZXVycwriloFsaXN0ZW4K0LTQtgriloFIw7YK4paBY29uc2lzdHMKYXNtCkNocgphbGFuZAriloHQuNGB0L/QvtC70YwK4paBbHVnYXIK4paBZGVmaW5pdGVseQptb3ZlCsO6YmxpY2EK4paBbMOkbgppc211cwriloHQtNGA0LbQsAriloFkdAriloFQZXJoYXBzCuKWgUJyYXNpbApKb2huCuKWgXByb21pc2UKxYJ1CnJlZW5zCuKWgXBzeWNoCuKWgVdobwrRgNGP0LQK4paBSU5UTwriloFQZW9wbGUK4paBV2lsbGlhbXMK4paBTWFyZwriloHQtNCw0L0KcmVjb3JkCuKWgUV1cm8K4paBVmlyZ2luaWEK4paBUmVzdAriloFDb3JuCn19LAriloFHcmlkCuKWgWluamVjdArQvdCw0L0K4paBY3JvdwriloFQaHlzCuKWgURPCuKWgSItCuKWgWluY3JlYXNlZAphY2hlcgpwZWF0CkxpbgriloFEdWIKcmljZXMKYWdub3N0CmRsCuKWgWN1cnZlCsO8ZwpyaWNlCmxhbmd1YWdlCkNsaWNrTGlzdGVuZXIK4paBbXVuaWNpcGFsCuKWgU9yaQriloFCaWxkCuKWgUNhYgriloFWYXIK4paBbm90ZWQK4paBw44K4paBc3VicwppYXRpb24KV09SCmluZ2x5CuKWgVJ1cwppZW5zCklORk8K0LrQstCwCmF0aXZvCmdlbmRlCuKWgUZyYW56CuKWgWlzb2wKZWRlcwpuaWVyCuKWgU5PCuKWgUhhcwpiZWFucwriloFwYW5kYXMKKCIlCtCy0ZbRggrRg9GC0LHQvgriloFnYXRoZXIK4paBbGVnYWwKaW5jbHVkCuKWgWNpcmN1bXN0CmNyaXB0b3IKcmlibGUK4paBU8O8ZAriloFhcHJvCkFwaQriloHQvdCw0LkK4paBQWZyaWNhbgpvd3NraQriloFKb2huc29uCmllawriloF2b3RlCuKWgUthbgriloFiaWJsaQriloFoYWFyCuKWgXZyCl0pLApzdWJzZXRlcQpQYXJzZXIKaWFuaQppc8OpCmlkZWEKT25seQriloHDoWwK4paBQ2F0YWwK4paBQ2FzZQpzZWgK4paBZW5jb3VudGVyCuKWgXJlZm9ybQrQvNC40L3QuAriloFTdHJlCmV4Y2VwdGlvbgriloFUYXIK0YLQsNGACnRybAriloHQkNC70LXQutGB0LDQvdC0CtC70LXQutGCCmVxdWFsCk9wCuKWgWxpZgriloHQudC+0LPQvgriloF2b2x0YWdlCnNoaXJlCuKWgUdyb8OfCtCy0L3RjwpuaW5ncwrQvdGG0LgK4paBbGFnCuKWgWFuZGVyZW4K4paBdmFjCuKWgW1hY3JvCj1bClRoZW4K4paBY29udHJvbHMKc2VxCm9sb2dpZXMK4paBc2VsZWN0b3IK4paB0KPQutGA0LDRl9C90LgK0YXRltCy0L7QstCw0L3QvgrRi9C5CmFsbGVuZ2UK4paBSU1EYgp1bW15CnllbgriloFiZXN0ZQriloFCb3gK4paBY2hhaXIK4paBU2FiCmVyZGUK4paBbmFzdAppdmFtZW50ZQriloHQvtCx0YoK4paBcmVxdWlyZW1lbnRzCuKWgW1lZXRpbmcK4paBZmluYW4K4paBQWRhbQriloF0ZWxldmlzCuKWgWJyaWdodAriloFHaXQKRUcK4paBR2lsCnLDqHMK4paBQ29uZAriloFmdAriloHQsdGD0LvQvgotKwpFTkQKZXJuZQriloFDb21wdXQK4paBaWxzCuKWgWdhbGwK4paBY3N2CsWCdWcK4paBc3VtbWVyCmdhbWUK4paBcG9zdHMK0JDRgNGF0ZbQstC+0LLQsNC90L4K4paBemlqCuKWgWRldGVybWluCuKWgWFiYW5kb24KY291bnRlcgriloFyZXF1aXJlbWVudAriloFUaXQKaXJ0dWFsCuKWgVZpZGVvcwriloFxdWlldAriloFUZXJtCuKWgXRpbWVvdXQKUHJpbnQK4paBaW52ZW50CmxhaXMK4paBbW9uaXRvcgpoYWxiCuKWgVdpbGQK4paBbGVhZGVyCuKWgdGB0LXQu9GMCuKWgXV0aWxpegriloFwYXJlbnRzCuKWgWZvcmNlZAriloFwcm92ZWQK4paBZWZmZWN0aXZlCuKWgWxsYW0K4paB0KHQv9C+Cm9yYgpnZ2kK4paBYXNzdW1wdGlvbgriloFzdWJtCuKWgdCy0ZbQuQppbGlhCuKWgXJldmVyc2UKJyIK4paBcXVvdGVzCuKWgXNpdGVzCmlndW5nCuKWgUFyZwpEb3VibGUK4paBc2NyZWVucwriloFjbGF1c2UK4paBYnVuZGxlCuKWgXBoaWxvc29waAriloFOdW0K4paBZ2xlaWNoCnVseQpkaXJlY3QKYXNrZXRiYWxsCm93YW55Clx9JAriloFyYWRpdXMK4paBU2VhcmNoClByb3BlcnRpZXMK4paBZWxldgriloFwcm9kCuKWgSIlCmlzacOzbgpEZWJ1ZwpTZWNvbmQKKCEK4paBQ2F0aG9saWMK0YDQvtCy0LDQvQpsZXoKUGEKcHNvbgriloFlcnN0ZQriloFGdQriloFsaXQK4paBU2Fpc29uCuKWgUhhc2gK4paBZXhlbQriloHQv9GA0LXQtNGB0YLQsNCyCikqCuKWgWV1CuKWgeKUggriloFnYWIKZXRhaWxlZApDb3B5CuKWgdC00LLQsApldmVuCktpbmQK4paBSmFja3NvbgrQsNC7CuKWgWNvbnNlYwpVU0VSCuKWgVRvawooLgriloEkfAriloFUYW1iCuKWgUxlbW1hCmhhbmcK4paBY29udHJpYnV0aW9uCnJvbGxlcnMK4paBc3R1ZGllcwriloFwb2kKZ2VtcwriloFVUAriloFXb2wKPiIK4paBZmxvb3IK4paBaW5pdGlhbGl6ZQriloFMZXcKemVrCmFydGUK4paBcG9zaXRpb25zCuKWgXBvcnRpb24KY292ZXIKd3AK0L7QstC+0LPQvgriloFwaWFubwriloFtZXRhbAriloFzYW1wbGVzCuKWgdCh0LDQvQp2YXJpYWJsZQriloHRgdGC0LDRgtGMCuKWgWludGVnZXJzCldoZXJlCmZhbWlseQriloFudW4K4paBaW5jcmVtZW50Cml4ZWQK4paBaGVlZnQKZnRlCuKWgXZpbAriloFvdHJvcwpNdWx0aW1lZGlhCuKWgUhlbnJpCmFkZWQK0LPQtdC9CuKWgWNhcGl0CuKWgdC00YDRg9Cz0LjRhQppc3AKSVRZCuKWgWNvbnN0cmFpbnRzCuKWgUtpcmNoZQpmb3VuZArRiNC40LkK4paBcGljCuKWgXRvdQpjcmVkCtGA0L7QsQriloFNZXNzCkpvYgriloFNYWlzCuKWgXN0eWxlcwpmYWxsCuKWgVVrCuKWgXN0cmVldApvY2Nlcgplc2VuCuKWgWNvbG9ycwpjZWFuCtGO0YnQtQpjb25uZQriloFyYXRpbwphbnRvbgriloFGZWwK4paBY3VzdG9tZXIK4paBUHJpeApyw6FzCnByZWQK4paBZWxlY3Ryb24Kc3ltCuKWgdCy0LXQu9C4CuKWgW92ZXJmbG93CuKWgSRbCuKWgVBPU1QK4paBQ2luCnNjaGVpZAooIi8K4paBc2VhcmNoaW5nCuKWgXB1cnBvc2VzCuKWgWFycml2ZWQK4paBcHVudAriloFsYWQKUHl0aG9uCuKWgWxlYWRzCuKWgXNhbmQK0L/QsNC00LAK4paBY29tbXVuZXMK4paBQ0hBUAriloFjYXNvCnJ6CuKWgWR3CmFjYQriloFDb2x1bWIKY2hpbGRyZW4Kw6p0CnNjaGVtYXMK4paBaW5zdHJ1Y3Rpb25zCuKWgS1cCuKWgUlzcmFlbApub8WbY2kK4paB0L7QsdGA0LDQtwriloHRgdC+0LLQtdGCCuKWgWltbWFnaW5pCuKWgUZyZWQK4paBR2xvYmFsCuKWgXRoaWNrCuKWgWZ1ZXJvbgriloF0aHJvd24K4paBY2xvY2sKZW5hYmxlCicnJwriloFTdW5kCuKWgWNvbnRlbXBvcgphbnN3ZXIK4paBbWFudWZhY3QK4paBaW8KcXF1YWQKT1VUCuKWgUxhYgriloFadwpsZWdhbAriloFWZWwK4paBcmFpc2UK4paBZGVsaXZlcgriloFWb2lyCuKWgWFzc3VtZWQKTGV0CmllcnRlbgriloFLb25nCuKWgUV4cAriloFKdWcK4paBZGVjbGFyYXRpb24K4paBRmlzaAptw6kK4paBc3BlZWNoCuKWgXRlbnQK4paBUm91dGUKX18oCuKWgXLDqWFsaXMK4paBRGVzaWduCnNldFRleHQK4paBU3RhdGlvbgphcmNoeQriloHQutCw0YLQvgriloFkZW50CuKWgUtsCmnDnwriloFyaXNrCuKWgUJyb2FkCuKWgXZlY3RvcnMK4paBU3BlYwriloFyb3V0ZXMKeW1uCuKWgUdyZWcK4paB0L/QvtC70YPRh9C4CmdpZQpPUk0K0LLQtdC00LUKd2FsdAriloFlZnRlcgpQdHIK4paBc3VidAriloFiaXJ0aAriloFkcmF3bgptZXNzCtC80LXRgNC40LrQsNC9ClZFCuKWgVB1dAriloFhc2MK4paBZmVkZXIK0YHQu9C4CuKWgVByaW4K4paBc3RpY2sKcmVzZXQKeWsKc3R1ZGlvCuKWgVN0aWxsCkNvbnN0CmFjacOzCuKWgVBvcnR1Z2FsCuKWgXNjcmlwdHMKdW5kaWFsCuKWgWxpdmVzCuKWgXN6ZXIK4paBZXN0YWRvCmZvbGRlcgriloFjb21tdW5pY2F0aW9uClJvdXRlCuKWgXN3aWZ0CtGC0LXQvQriloFraWxsCuKWgVBSCmpvaW50CuKWgW9iamVjdGl2ZQriloFjb21wbGljYXRlZAriloHDnGJlcgplc2gKcGljdHVyZQpyYWluZQpjb21wdXQK4paBcHJvcG9ydApvZ3MKw7xsdAriloFxdWFudHVtCtC60YDQuAriloFzb3AK4paBbG9vcHMK4paBUmVmZXJlbmNlCuKWgW5laQpJQ0UK4paBdmVybQriloFhZGoK4paBcGVyw7IK4paBdHJvdQppc2lvbnMK4paBQXBwbGUKc2VydmFibGUK4paBQm9zdG9uCm9yZXQKb2tzCuKWgWtnCmRlZmluZWQKcGxhdGZvcm0KY2xlcgpvZ3JhcGhpYwpyaXR0CuKWgWRpYwriloFNb25kCuKWgUlyZWxhbmQK4paBVW5hCuKWgWNvbW1lcmNpYWwK4paBUHUKRGkK4paB0LXRkQriloFwcmVjaXMK0L3QsNGA0L7QtAriloFxdWF0cmUKdXN0cmFsCuKWgWRhZwppZ3VlCuKWgWJ1cm4K4paBb2ZmaWNlcgriloHQkNCyCuKWgWhpZ2hsaWdodAriloFTdXBwb3NlCm9kaQpzZXJ2bGV0CuKWgUVuY3ljCuKWgVJhbmdlCtGC0LjQuQpQbGVhc2UK4paB0YDQvtC60ZbQsgpxdWFudAriloFmbGF0CuKWgVLDqWbDqXJlbmNlCtGB0LvQtdC00L7QstCwCnJvbGUK4paBZGllc2VuCn19KAriloFJbmR1c3QK4paBbsO6bWVyCuKWgSI7Cmx1cwrDtGxlCuKWgXptCmRlZwriloFyb3VnaApJbnYK4paBaHVyCuKWgVJlc3MKY2hzCuKWgXR1cm5zCm5lcm8KZnVuY3Rpb25zCtCw0LvQuAriloFoYWJpdGFudHMK0LDRggppc3N1ZXMK4paBaHVnZQpVdGlscwriloFTYXQK4paB0LPQvtGB0YPQtNCw0YAK4paBY29hc3QKc2hhcGUKTEMK4paBbG9nZ2luZwplbmRvcgriloFsaWVzCuKWgWRpZmVyCuKWgWNyaXRpY2FsClhUCtC80LjQvdCwCmFuc2sKUmVzdWx0cwprYwppdmVyc2UKRVhUCkFMU0UK4paBdsOhbApQaQpjb21waWxlCmhlbGxvCuKWgdGH0LXQvNC/0LgK4paBSXRhbGlhCtC60L7Qu9C+CuKWgWVkaXRpb24KZ3J1bmQK4paBZGF0YWZyYW1lCuKWgUZvbGxvd2luZwpyZWliCuKWgUplZmYK4paBY2l0dMOgCklUYWJsZQriloEkKFwK4paBcmVkdWNlZApvYmlsCuKWgWFueXdoZXJlCicoCuKWgXBocgriloFLaAriloFGcmFtZQriloFtYW51YWwK4paBY3JhCuKWgVZTCiU9Ckluc3RhbmNlU3RhdGUK4paB0LHRgNCwCuKWgURyYWcK4paBSGVycgriloHQs9GDCuKWgW3DunMKVG9vbAriloFQcml2YXRlCuKWgXN5bmNocm9uCmlyYXRpb24K4paB0L7QsdC+CuKWgXR5cGljYWxseQriloFpbXBsaWNpdApvcmllbnQK4paBdGltZXIK4paBa8O2bm5lbgppZXN0CnJhaWQK4paBZXhwcmVzc2lvbnMK4paBYWltCuKWgXN0cmUK4paBd3JhcAriloFCYXJ0CuKWgWJyb24K4paBa2V5Ym9hcmQKcG93CuKWgWdydXBvCuKWgdGA0LXQt9GDCuKWgXByb2Zlc3NvcgriloFIZWFkCtC90L7RjgptaW51cwriloFNaWNoZWwKTk9UCm1vcgpdfQp3aWRlaGF0CmFyaXMK0YLQtdGA0LDRgtGD0YDQsApkZWZuCmlzdHJ6CuKWgXRhbnRvCuKWgVBvdwriloFpbmRpY2F0ZQriloFXaW50ZXIKcmVzaG9sZArRgNGW0LIK4paBYCgK4paBb3duZXIK4paBZGlzcAriloHQutGA0LgK0LzQtdGCCtC80LXQvdGCCnJlcG9ydApyZXF1aXJlCuKWgXZveQriloFBUAriloFFc3Bhw7FhCuKWgVPDo28KasOkcgpOb24KTGlicmFyeQppY2h0ZW4K4paBc3RydWN0dXJlcwriloFtdXkKw6FyaW8K4paBY2VydGlmaWNhdGUK0YfQvdC+0LPQvgriloFwcm92aW5jZQpwYWdlcwpkYWwK4paBRnJlZGVyCtGM0LUKRXhlY3V0ZQriloFhbmNpZW50CuKWgWZpbG1zCuKWgUFsZnJlZApBdXRvCuKWgWF0b20K4paBZWxsCuKWgUhhcnIK0LnQvQriloEiIwriloFuYWNpb25hbAriloFuZWlnaGJvcgrRgdGC0YPQv9CwCuKWgXdpdApQb3AK4paBR3JlZWsK4paBcmVwZWF0CmJhZAriloFTQwriloFEYXRlVGltZQrRiNGC0LgK4paBV0gK4paB0L/RgNCw0LLQuAriloHQotC4CuKWgXNhaXNvbgriloFIYXJ0CmRpcmVjdG9yeQp1YW4Kbm9ybQriloFQaGlsaXBwCuKWgXN1c3BlY3QK4paBYW5ubwpiYwrRgdC70LAKJCgK4paBYmVmaW5kCm9jcwpsYXRlc3QKOyI+CuKWgWFmdGVyd2FyZHMKUFVUCuKWgWphCuKWgUhpbAp5egriloFCb3VyCuKWgWxhaWQK4paB0JTQttC1CnBpZQp3YXRjaAriloFFcQpjb250YWN0CmliZXIKY2hlY2tib3gK4paBZXNwYcOxCmFuc2UK4paB0YjQutC+CmVmZgp4eHgK4paBR0VUCuKWgWxvdgppdHV0ZQp6ZWNoCnRlcmUK4paBcHVycwprZW5zCmlhbnRlCuKWgUZyZWUK4paB0L7RgNCz0LDQvdC4CmtyZWlzCuKWgXs6CnNoYXJlZAriloFHcmFwaAriloFjb25uZWN0aW9ucwriloFET00K4paBQ2FydApzc29uCuKWgUhhbWlsdG9uCtGC0LXQu9C4CuKWgXJlc3RhdXIKUmVzb2wKRHJpdmVyCuKWgWVuZgpFRElUCuKWgXByZXYK4paBaWsK4paBc8SDCmrDtgriloHQodCh0KHQoAriloFjb2xvdXIKY2h0ZW4K4paBZXN0YWQKaW5vaXMK4paBY29uZmlyCuKWgXbDqQriloFDZXMK4paBTmV2ZXIKb21lcgrQttC00LAK0YHQu9GDCtGH0LXQvdC40Y8KZGxsCuKWgXlvdXRoCmVtZW4K4paBc3R1ZGllZAriloFLaWwKY2lvbgriloFuYXZpZwpyZXF1aXJlZApvcml0aG1zCmlsb3IK4paBRGV1dHNjaGVuCuKWgXBlcnNvbnMK4paBQmFyY2Vsb25hCuKWgWZvcm1hdGlvbgphYmVpCuKWgdC/0YDQvtGC0LjQsgpFbmdpbmUKT05FCm9ncsOhCkNhcApyaXIK4paBZ2F0ZQpvcmF0aW9uCm1hdmVuCuKWgWNvbWJpbmVkCuKWgWF0dHIK4paBaG9vawriloHQutC+0YLQvtGA0YvQuQriloFzZXJ2ZXJzCnVjdHVyZQrQttC10L3QvdGPCnR2CuKWgXJlcQpqYWwK4paBbG9jYWxseQp9fXtcCkJyCuKWgUhpZXIK0LzQvtGACuKWgWFwYXJ0CiJdLAriloElPiUK4paBenVzYW1tZW4K4paBaWRlbnRpZnkK4paBQWx0ZXJuCuKWgdCx0YDQvgriloHRhtC4CmdoCuKWgVRlbgpSUwrRhNC+0YDQvNCwCuKWgW5lbGxlCuKWgUhpbgpvdW5kaW5nCuKWgXJlcHLDqXMKYXBoCuKWgVtcCuKWgVNwb3J0cwrRgNCw0LsK4paBdGhyZQriloFwcmluCuKWgUVsaXoK4paBRm91cgriloFzb2NpZXR5ClRyYW5zYWN0aW9uCuKWgXZlZwriloFzY2hvb2xzCuKWgW92ZXJhbGwK4paBdGFpbArDvGJlcgriloFTb3YK4paB0KHQtdGACuKWgXJhcHAK4paBdHJhZmZpYwpxdWVzdGlvbgriloFlbnZpcm9uCmF0ZWllbgppY3VzCuKWgW5hcnJvdwriloFwcmF5CuKWgUJvdQriloFDbGllbnQKYWJsCuKWgUF1ZGlvZAriloFucG0K4paBQ29sdW1uCuKWgUdhbWVzCmF2ZXIKb255bWVzCuKWgdCf0L7RgdC70LUKbsSFCuKWgU51CuKWgURpY2sK4paBdGVuc29yCuKWgUAiCnbDqQpJY29uCuKWgdC/0L7QtNCwCuKWgUdvbgovKS4KaXN0cmEK4paBQXVkaW9kYXRlaWVuCkRlbGV0ZQp9fX0K4paBanVtcAriloHQntCxCuKWgXByaW5jaXBsZQriloHDiXRhdHMKb2tlZAriloHQktC70LAKSW50ZXJ2YWwK4paBc2F1CmVuY29kZQriloFwb24KY2F0Y2gK4paBdGllbQriloFHdXN0Ck1DCmxpbWl0cwriloFrZWVwaW5nCuKWgXNvbmdzCuKWgdCw0LLQs9GDCuKWgdGA0LDQudC+0L0K4paBbm90aWZpY2F0aW9uCuKWgW9mZmVyZWQKQ29yCuKWgXNodXQKZXJyb3JzCuKWgUVOCuKWgWxhdGFjaAriloFzZWxic3QK4paBY2hlY2tib3gK4paBY29vbAriloFmYWN0b3J5CuKWgXBhaWQKZGltZW5zaW9uYWwKbmllagpwdG9uCuKWgXBpbgpha2VkCuKWgXJlbGkK4paBVGF5bG9yCuKWgVNvbWV0aGluZwppbXVtCuKWgVZpbgriloFpdGVyYXRpb24KRmluZArQutC+0LLQuAriloFib3lzCuKWgVNpbXBsZQriloFDcmlzdAriloFXYXMKw6JuZAriloFWYQriloHRgtGA0LAK4paBZGVzdGluYXRpb24KbGltcAriloFLYXQKd29ydGgK4paBS29yCmnDp8Ojbwo9YAriloFmYWlybHkKZmFsbHMK4paBcmVqZWN0CuKWgWRyZWFtCmJlbGwK4paBdG91dGUK4paBJFx7CuKWgXN0b25lCuKWgXByb3RlY3QK4paBZXhjZWxsCuKWgU1leGljbwriloFkYXNoCuKWgWZhdWx0CnBtYXRyaXgKYWxsZXIK4paBZ3VlcnJlCm9yaWdpbgpoaWJlcm5hdGUKw61saWEK4paBUmVnaXN0ZXIKdW50bwriloFCYXQK4paBYm93CtGB0YzQutC40YUKZXTDoAriloFMdWlzCuKWgWZvdQriloFDYW1icmlkZ2UK4paBb3R0CnN1cApyZWFzCuKWgXBvaW50ZXJzCuKWgUJvYXJkCuKWgdGA0LgK4paBZHJpdgrQvdC40L0K4paBQ2lyYwriloF0aG91CkRpdgpzcGFyawpsYW1lbnQK4paBVkFMClNlbmQK4paBSXJpc2gKb3kK4paBVHUK4paBdHJpdmlhbApGb3JtcwriloFhc8OtCuKWgUltcGVyCuKWgXNpZ25hdHVyZQp1bm9zCuKWgU5lZwriloFjYW5jZWwK4paBSGVpbnJpY2gKZWVkCklsbHVzdHJhdGlvbgriloFzdWxsYQriloFxdWFydGVyCmFzegriloFibG9nCmZpY2EKd29uCnF1ZXQKXSkpCuKWgWdlbmVyYXRpb24K4paBY2F1Z2h0CuKWgWxhbmRzCuKWgUtpbmdkb20Kc2NoYWZ0ZW4Kcm9ucwphbm5lbHMK4paBU3BlY2lhbAp0dXRvcmlhbAp0aXAK4paBIiIsCuKWgUF6dXJlCuKWgWJvdW5kZWQKU20KdGFyCtCy0LXQvQriloHQt9C10LwK4paBbm90YXRpb24K4paBYXBhY2hlCuKWgWdhegppZXJubwphbmdlbgpwZWN0aXZlCuKWgWVsZWN0cmljCuKWgXNlbWkKTUFYCmVkZXJiCm9iamVjdHMK4paBZGlmZmVyZW5jZXMKaXN0ZWQKaHJlZgppY2lwCuKWgW51bXB5CuKWgdGE0YPRgtCx0L4KbG9hZGVyCuKWgWRpY2gK0ZnRgwriloFEw6kKSHoK4paBUGFyYW0KZG9jdW1lbnRhdGlvbgppcmNyYWZ0CkVNCuKWgWluc3RpdHV0aW9uCmNvbXBhdAriloHQsNC70YwK0YHQu9Cw0LIK4paBTmV0CtGG0LjQvtC90LDQu9GMCuKWgWJyb2FkY2FzdApkYXRldGltZQphc3luYwp2cmUKbWVhbgriloFDaGVtCuKWgWVzdGltYXRlCmljYW5hCuKWgWdyZXAKdGVrCsOkbQpvcmlnCuKWgVZpY3Rvcgp1dGVuYW50CmFuZ2EKcGluCuKWgXZlcnRleAriloFDSEFQVEVSCmNpdHkKdWdieQpncmVlbgriloFLZXIK4paBZGlmZsOpcgriloFuZWNlc3NhcmlseQpEQwpMaW5lYXIKYWxlbQriloFMYXRlcgriloFtZXRhCmplbQpyYWdlbgpNYXkK4paBTWl0Z2xpZWQK4paBc29ydGVkCnVzc2VuCuKWgXNwb2tlCuKWgWRpc2FibGVkCuKWgWFjY29tcGxpc2gK4paBUnVzc2lhCnRoZXJlCmVlcwriloFoYWxsCuKWgW1ldHJpYwphdHRyaWJ1dGUK0YLQvtCz0L4KYWJvdXQK4paBTGFtCmNoYW5uZWwK4paBZXBpc29kZQriloEkKCcuCuKWgW91Z2h0CuKWgUVzdGUKT2JqZWN0cwriloF2YWxpZGF0ZQriloFyaW0K4paBbnVtZXJvdXMK4paBSmF2YXNjcmlwdAriloFHTAriloFJdGFseQplZGVyYsO2cmQKb25hdG8KYm9va3MKc3RvbmUK0YXRgwriloFqZWwKaXJpCuKWgUFTUApHQQriloFzdGF0YQriloFiYXoKRGF5CnRobQpkaAriloFGaWxlcwpBbmRyb2lkUnVudGltZQriloFjaGVja3MKa3IK4paBdmVubmUKU0wKYXZpYQprYXp5CuKWgVRocmVlCkFkbWluCuKWgWNvbGxlZ2UKR2xvYmFsCnRpb24K4paBY3VyaW91cwpzaG9ydAriloFiYXNzCtC00LXQu9CwCuKWgdC00LXRjwpTY2hlbWEKJ1wKZGlmZgriloFDQQriloFDb3Jwb3IK4paBb3BlcmF0b3JzCm9tcsOlCuKWgWVkZ2VzCik7YAppbmRzCuKWgWdpbmcKJiYKfS1cCnJhbm8K4paBc8OjbwriloFhZGRzCmVsb3IK4paBdW5zaWduZWQK4paB0L/RgAriloFDb25maWcK4paBRXNjCuKWgWNob3NlCuKWgXBpZWNlcwriloFyZWdpb25zCkVzdAriloFCYXR0bGUK4paBZm9jCuKWgUxpZ2h0CnBhZGRpbmcKYWJlbgriloFldXJvcAppbGxvbgriloHQtdGB0YLRjAriloFib3JkCuKWgdC+0YLQvdC+CuKWgUhvbmcK4paBdnVsCnBsdWdpbnMK4paBJzwK4paBa3VyCnJlZ2lvbgriloFSZXB1YgppY2hlcgp9X1wK4paBbWVkYWwK4paBTW9yZW92ZXIKQkkKQXYKdXRlcgriloFzY2FuCuKWgU11bmljaXAK4paBY29udHJhc3QK4paBSWcK4paB0LPQvtGA0L7QtApyZWxhdGVkCmFsaW5nCuKWgdC80LDRggrDvG5zdAriloFDaHJpcwp3eQriloFBY3R1YWxseQriloFVbml2ZXJzaWRhZApFdmVudExpc3RlbmVyCuKWgXRlbXBvcmFkYQriloFhc3NpZ25tZW50CuKWgU1pa2UK4paBd8OkaHJlbmQK4paBxZt3aQriloHRgdGA0LXQtArQutCw0LTQtQriloFjYWxjdWxhdGVkCuKWgWVsbGVyCuKWgUFzaApyaWVsCuKWgWhhcmR3YXJlCuKWgWludGVucwooJy4KaWxsaQphZ29uCuKWgUd5CuKWgWhldXRlCuKWgXNsZQriloFsaXRlcmF0dXJlCnNlbQptYW5hZ2VyCuKWgUdyYW5kZQriloFtaXhlZAriloHQktC10YAKw61jw60K4paBc29pdAriloF3ZWxjb21lCtGH0LXQvdC40LUK4paBVW5pdmVyc2l0w6R0CuKWgWJ1aWxkZXIKc2ltcGxlCmljb2RlCsWZZQppbmRlbnQKb3BvCuKWgWFkdmFuY2VkCnRlbXBlcgplZGdlCuKWgWRhdGV0aW1lCuKWgWRvbmMK0LvQsNC90L3RjwriloF2ZXJkCtC00L3QvgppdG9zCuKWgWhlYXQKdmlzaWJsZQptZWwK4paBR2lvdmFubmkK4paBdmFyaWV0eQriloFyb3V0ZXIKVmVjdG9yCuKWgVdhbGsK4paBb2J2aW91c2x5CmhlaW4KRmluCklUYWJsZVZpZXcKWWVhcgriloFFY29ub20K4paBdmVsb2NpdHkK4paBQ2l2aWwK4paB0ZgKYWxlcnQKSWRlbnRpZmllcgrDqG5jaWEK4paBbm9ybWFsbHkK4paBRWd5cHQK4paBY3R4CuKWgVZlcmVpbgriloFIdQp1bHR1cmUK0L3QuNGC0LUKbMOpCuKWgVdpZW4K4paBUHJ6CkJ5dGUK4paBbmFoCmlzbXMK4paBUHVibGlzaAriloFIZXJ6CmljdWwKcGlzb2RlCtGH0ZYK4paBZGllc2VtCmvDtgpWaXNpYmxlCuKWgXJpZwpgKS4KUGFyc2UK4paBSmFjcXVlcwpOSQriloFnbGFzcwotLS0rCuKWgWluaXRpYWxseQriloFrcgpDQ04KcGxheXMK4paBc2lndQpGb2xkZXIKc3RvcmFnZQriloFcfAppdm9zCtGB0LrRg9GOCuKWgU1vaAriloFDb21taXR0ZWUK4paBS2ltCmV1CtGC0LXQvAriloFvcmlnaW5hbGUKaXJzCuKWgVJlYgppdHV0Cm5sCuKWgVBpZXIK4paBXTsK4paBRmFsCuKWgSIiOwptdmMK4paBZmVtYWxlCuKWgWJyaWRnZQriloF0w610Cmt0cgo+KQriloFzZWF0CuKWgXZlc3MK4paBVVNCCuKWgUFydGljbGVzCuKWgURlc2NyaXB0aW9uCuKWgW9jCuKWgWhvdXNlcwriloHQn9C10YIKbG9uCk5vdGlmaWNhdGlvbgriloFwcmVzc3VyZQriloHQutGD0LvRjAppZ25lZAriloFyZWxpZ2lvdXMKZmFuCmlnbGlhCuKWgWNsYXNzaWZpY2F0aW9uCm9nZXRoZXIK4paBU0RLCuKWgUh1bWFuCuKWgWNvbW1pc3Npb24K4paB0J7RgAriloFhbnRlcwpEVArDqHRlCnByw6lzCi8iCuKWgSjCqwriloFow7YK4paB0YfQsNGBCuKWgWphawppZW5lbgp1Z2cKV0EK4paBcGxhY2Vob2xkZXIKV2lsbAosLAriloFLYW0K4paBd2VuCuKWgVNjaHVsCsibaWUK4paBYXVkCuKWgXN1ZQriloFyZWZlcnJlZArQstCw0YIK4paBUGFyYQriloFibGEKVUVTCuKWgXN0YXRpc3QK4paB0YLRgwriloFXYXJzemEKZ3VlCuKWgUlkZQptYXRoc2NyCuKWgWxpZXUK4paBYm9kCuKWgXJ1cwriloFib2F0CnhzcGFjZQriloFtb2RhbArQu9C10LoKdG9waWMKbWFueQpza8O9CuKWgW9yZ2FuaXphdGlvbgriloHQs9C10L3QtQriloFXaWxzb24K4paBY29tZm9ydAppYmlsCjotCuKWgWFuaW1hbApSZXBvcnQK0LrQsNC80LgKam9uCuKWgWtlcgriloHQutC90LgKbW96aWxsYQpQcmljZQphbnRpbgplbWVudG8KbWF5CuKWgWx1bmcK4paBYmxvdwplZGV1dAriloF0eXBlZAriloFkZWNlbWJlcgriloEuLi4uCmxpYW5jZQriloF2aWVsCuKWgdCk0LgKcHJlc2EK4paB0L7RgdGW0LEK4paBTmFtCuKWgUdyZW4K0YHQuNC70LDQvdC90Y8KVklECnN0cmUKd2VpcwriloFwcm90ZWN0aW9uCnRhaWVudAriloFvZmZpY2VycwrRgtC90L4K4paBQnJpZwriloFpbnRlbGxpZwrRj9GFCklUSAriloFzZXBhcmF0ZWQK4paBTENDTgpuw61tCmNsb2NrCuKWgWFwYXJlCtGP0LLQuAriloFFbGl6YWJldGgK4paBV2F0ZXIKZ2ViaWV0CuKWgWNvbnZlbnQKZnVydAriloFiZWlkZW4KYmFzaAriloHRh9C10YDQtdC3CuKWgXViCuKWgVN0YXRpc3QK4paBbGltaXRzClZvbApjdHgK4paB0L3QvtCyCmd1aWRlCm1pYwppZXNhCuKWgWh1dnVkClJUCkZpZwriloFsZWN0CmNvbm4KaW1pdArQs9Cw0YAK4paBYmFqbwpzY3JpYmUKcmVnZXgK4paBQ2FzcwriloFwcm9wYWcKJyQK4paBcHJvZmVzCnVuaXF1ZQriloFTcWwKdW5pb24KcmlvcwpwaXAKLS0rCmthZGVtCmNvbHVtbnMK4paBdmFyeQriloFiZXJlaXRzCuKWgWRvaQriloFDb21tb24K4paBUm9iaW4K4paBw5cK4paBc2VpCuKWgXN5c3QK4paBdsOkCuKWgURlZmF1bHQK4paBdHltCnBlbAriloFiZWxpZXZlZAriloFwcm92aWRlcgriloFtaW5pbWFsCtGC0LDQu9C4CmFpbmVzCktpdAppemlvCmlzc2VuCnByZXNzZWQK4paBc3RhZwriloF1aW50CmtvcgriloHRgNCw0YHQv9C+CuKWgWluaGVyaXQK4paBY29tcGlsZWQK4paBZmVicnUK4paBdG1wCndvcmtzCtGH0L3QsApkcmF3YWJsZQriloFOYXYK4paBdGhvdWdodHMKcm91dGUK4paBY29uY2VydAriloFvcHRpb25hbAriloFicmFzCuKWgXByb3ZpZGluZwrRgdC+0LwKaWR4CmVtcGxvCuKWgdC60L7Qu9C4CuKWgUJlcmUK4paBRWxzCtGA0LXQvNC10L0K4paB0LTQtdC60LAKY291dApsYXllcgriloFnbG9iCmZvcmVhY2gK4paBRWR1Y2F0aW9uClBPCuKWgWltcHJvdgriloFjbGllbnRzCmdyb3VwcwriloFrb250CkRlbApyZXR0CuKWgXN1cAriloFtb2cKdGFuCuKWgWNvbXBsCmlydHkK4paBbm91dmVhdQpvc3oK4paBTmF2eQpiZXJlCm1hc2sKb3bDqQp6aWwKUEVSCuKWgXBvYmxhY2nDs24K4paBZGV0YWlsZWQK0LvQtdGCCuKWgWZhbWlsaWVzCmFiZXQK0LXQstC40YcKw6RuZGVyCuKWgcOlcgriloFwZW5kYW50CuKWgWJpbAriloFoaW50Cm9kZW4K4paBZXhwYW5zaW9uCuKWgXBvbnQKYXNhbnQK4paBS2luZAppamkK4paBQXV0aApsYWltZWQKcmVmbGVjdApdPQpieXRlcwpob3ZlcgriloHRhtC10YAKZ3JhZGxlCkFyY2gKYXBlc3QKw6FzYQpDYXJkCuKWgXRlbXBvcmFyeQriloFkw6lwYXJ0ZW1lbnQKY2xhc3NlcwrQttC40LLQsAriloHRhdGD0LTQvgriloFtb2xlClJZCkxQCuKWgXBlYwpyb2R1Y3Rpb24K4paBR3VhcmQK4paBUGFybGlhbWVudAriloFpbnN0YW50aQriloFub3RhbW1lbnQK4paBRG91ZwriloFNYXJzaAoufgriloFcIgriloF0aMOpCuKWgWxpYnJlCmRvZXMK4paBZMOpYnV0CuKWgVVuaXQK4paB0YHRgtGDCuKWgWxlYWd1ZQriloFxdWFsZQriloHRgdC+0YHRgtCw0LLQu9GPClNlY3VyaXR5CuKWgWFwcGFyZW50bHkK4paBdHJvb3BzCmljYW5vCuKWgU1CCmVuemUKbG9hZGluZwriloFkaXN0cmlidXRlZAp3cml0ZXIKcmVzb3VyY2VzCmjDtgp1dGlscwriloFwcmVwYXJlZApjaWVyCm9wb2wK4paBbMOkbmthcgpoZXMK0L3QstCwCuKWgW9wZW5zCmFnb2cKaW50ZXJmYWNlCuKWgUZ1bmQK4paBcGVudHJ1Cm7DrWNoCuKWgWNvbmZpZ3VyZWQK4paBV2Vic2l0ZQriloFsaXN0ZW5lcgppdmVsCm7EmQptaW5hCuKWgWludmVzdAriloHQvNGW0YEK4paBZGF2CuKWgXBhdGNoCnBpZWxlcgriloFFeHRlcm5hCnRmCuKWgWVyZWQK4paBQXNzZW1ibHkK4paBc291dAriloF2ZXJrCm1lcnMKdG9nZ2xlCuKWgXVwZGF0aW5nCuKWgUtlbnQKZWNhCkZBVUxUCuKWgXRpdHJlCuKWgUtlbm4K4paB0JzQuNGF0LAK0YHRgtC+0YAK4paBcG9kZQriloFTZWIK0YbQtdCyCkVZCuKWgXNpbHZlcgriloFjYXBhY2l0eQriloFjb21wbGV0aW9uCuKWgVBlZHJvCmZlbAp2YW5vCnpldWcK4paBaW50ZXJpb3IK4paBUmVzcG9uc2UKw6lkaWEK4paBV29ybGRDYXQK4paBY8SDCnF1ZWwKU29sCtGW0YHQu9GPCuKWgURvbWluCuKWgWN1bQpjZXAK4paBTXVzZQriloFNYXLDrWEK4paBZnVuY3Rpb25hbAriloFhZGFwdGVyCmNvbmZpZ3VyYXRpb24K4paBdGlwbwriloFCcnkKdnkKVUwK4paBdHJhdmVycwohKAriloFhYnNvbHV0ZWx5CtC70YLQsArRgtGC0Y8K4paBSVQK4paB0LLQvtC10L0KeWNsZQpiZXN0CuKWgWNvbnN0cnVjdGVkCuKWgdGE0LjQu9GMCmNpZG8KZXhpdApnYXJ0CuKWgXByb3ZpbmNpYQp2ZXoKY2lwbAriloFGYWNlYm9vawriloF5ZWxsb3cK4paBU3VtbWVyCuKWgXBvaW50aW5nCuKWgXBvc3NpYmlsaXR5CuKWgWxlZ2lzbAriloHQvNC+0LYKZGVybgrQutC+0L3QvgriloFtZWNoYW5pc20K4paBQmVybmFyZApleHByCtC70L7QstC4CuKWgWRpZ2l0cwriloFkZWxlZ2F0ZQpvZ3JhbQriloFEaWN0aW9uYXJ5CmlzeQriloFzcG8KLyQKY2x1ZGVkCuKWgU1WQwriloF0w6ltCuKWgXByaW50ZWQK4paBR290dAriloFPbQphbnNhcwriloFEdXJjaAriloFJZGVudApRVQpodG0K4paBU3VsCiddLgriloFkdXR5CuKWgUF1dGhvcgriloFuxJsKb3dlZ28KcHVzCmVtYmwKRXhlY3V0b3IKQkwK4paBTWVucwpkaXNwYXRjaAriloFNaWQKYXBwcwpUcmFuc2Zvcm0K4paBRGF0CuKWgWltcGwKb3V4CmhvbG0K4paBSW5zCuKWgUVtcGlyZQrRgNGD0L8K4paBQXBhY2hlClNJT04K4paBcGFzc2FnZQojIyMjIyMjIyMjIyMjIyMjCuKWgWV4cHJlc3NlZArQvdCw0LQK4paBb2wK4paBaGF2aWEK4paB0LHQvtC70LXQtQriloFlbmpveQpmb3JtYW5jZQriloFkaW1lbnNpb25zCuKWgdGH0LXRgApTZWUK4paBbW91dGgK4paBZ2F1CmllbmN5CuKWgUNhcm9saW5hCkRpc3QKcmFkaW8KbGltaXQKLz8K4paBQmFsbArQvdGW0YHRgtGMCk1lbWJlcgp3YXRlcgriloFtdXJkZXIK4paBc3RhbmRpbmcK4paBVklJCkNlbnRlcgpwcGEKdXJlYXUK4paBTGVpcAriloFvYmpldAriloFBY3Rpdml0eQplbWJlcnMKdnIK4paBY29uZHUKQ2VsbHMKaW51cwriloEnLAriloFhZnJhaWQK4paB0YXQsAriloFWaWMKdGVzdGluZwpUdWJlCuKWgXZhc3QKUE0KbmloClNTTgriloFDaGlsZQp5bHZhbgriloFCb3cK4paBcmVsaWdpb24Kb3BoZXIK4paBQ29sbAriloFkaWdpdGFsCnppb25pClNlY3Rpb24K4paB0YDQtdC30YPQu9GM0YLQsApGb290CmNvbnZlcnQK4paBcmVjZWl2aW5nCkNvbnRhY3QK4paBaGVybwpzYW0K4paBcG9zdGVyaW9yCm93aQpBbnQK4paBZmxhZ3MK4paBWmVhbGFuZAriloFib3VuZHMK4paBd2hlcmVhcwppbmZsClBsYXkK4paBZGVtbwriloFnaWJ0CuKWgWhvc3BpdGFsCuKWgXZvbHRhCtC70ZEK4paBZmFzaGlvbgriloFleGNlZWQKZWxlbml1bQpJdGVyCmtyaWUK4paBaW50ZWdyYXRpb24K4paBT3RoZXJ3aXNlCmFkdQpTaGUKb25kZQp1aW50CnJhZGl1cwriloFyYW0K4paBw6FsYnVtCuKWgdGC0YPRgAriloFkeQriloFPdHQK4paB0L/QtdGA0LgKcmV2CnJpb3IKw61kCmlyYXQK4paB0LLQutC70Y4K4paBaW1wb3J0YW50ZQriloFEdWtlCuKWgWNhdXNhCuKWgU1hdGhlbWF0CuKWgWRpcGxvbQriloFOaWNvbAriloFleGNsdXMK4paBZGVidWdnaW5nCuKWgUdoCm9yaWdpbmFsCmx5bgriloFQbGEKc3VpdGUKY2hhdAriloFlc3R1ZAp1ZWxsZQriloFwZXJ0CuKWgWltcG9ydGFuY2UK4paBYXBwcm9hY2hlcwriloFkbGEK4paB0L/RgNC+0YQKUHJlcwo8XApwcmVmaXgKU1NJT04K0YDQvtC00LgKY291bnRyeQppdHplcgriloHQutC+0YAK4paBc2luZ3VsYXIKZ292CtGA0LjQvQriloFGQQriloFtYXRyaWNlcwpvbGFyZQpuaWthCnBvd2VyCmxsYQriloFkZXNpcmUK4paBZmFtaWxpYQrQtNC+0YAK4paBZmFuCmdlbmVyYXRlZAriloFDb3MK4paBxbxlCuKWgURpZXNlCm1vdgriloFkZW5vdGUKIildCm91dmVybgphbWFuCuKWgWluc2VyCmlqawpvdHRhCmVyYWwK0LTQtdC70YwKKCktPgriloFwb2RlcgppZ2VzCuKWgU9ubGluZQriloF3ZWlyZAppYWMK4paBcXVlbHF1ZXMKw6hyZW50CuKWgXRlbAriloFMYXRpbgp2ZXJ0ZXIK0LvRj9GACtGA0L7QuAriloFwZGYK4paBa2V5d29yZApIYW5kbGUKQWZ0ZXIKcmVjZQriloFpZGVudGljYWwKc3R5bGVzaGVldAriloHRgdGC0LDQvdC+0LLQuAriloFrYQpjZW1lbnQK0YLQtdGCCuKWgWNoYXQK4paBTXVuCmHFgmEKQU5UCm9sw7NnCuKWgWZhbnQK4paBZm9yZXN0CuKWgdCy0LjQutC+CmN1c3MK4paBc2VocgpwYWcKb3RpYwriloHDoWxsCtC80LDRgtC4CuKWgSInCisiCkFuaW1hdGlvbgrRhdC+0LTQuNGCCmF6dQriloFwbGF5cwppemlvbmkK0LzQuNGH0LUK4paBYm9tYgriloFtZXJlbHkK4paBaG9sZGluZwriloF3ZW5uCuKWgW1lZGljCuKWgXNwZWFraW5nCm9uZ29kYgriloFDYW1wZQppbml0eQriloHRj9C90LLQsAooKWAuCmx1c3MK4paBSGlzdG9pcmUK4paBb3BlcmF0aW5nCkNoYW5uZWwK4paBYWNjdXJhY3kK4paBYm9zCuKWgWV2aWRlbnQK0YbQuNGOCmV2ZW50cwp0ZXh0cm0Kb3JlaWduCuKWgWlpCmhyZW4KbG93ZXIK4paB0YLQvtC8CuKWgUFib3V0CuKWgWFqCmVyaQrRgdGC0YPQv9C4CuKWgWRpZ2l0CuKWgVNwYWluCuKWgURhdGVuCuKWgWZvcm1lCuKWgdGI0YLQsAriloFCYWNoCm5vbnVtYmVyCuKWgXJlY29tbWVuZGVkCuKWgXJlYWRzCmhpc3RvaXJlCuKWgXNhbmcK4paBPz8K4paB0YHRgtCw0LsKc2NvcmUKZmFzCuKWgWN1YgriloFncmV3CuKWgWNlbnRybwriloFiZWthbm50CkV2ZW50cwpCRVIKaGV3CtGB0YHQsAriloFtYWpvcml0eQrDrnRyZQplbmNpCuKWgVF1ZXJ5CuKWgWt0w7NyZQppxIcK4paBY29tcGxleGl0eQriloFGcmFuw6dvaXMKY29uc3RyYWludArRg9GA0L3QsArilZDilZAK4paBaXRlcmF0ZQpsZXR0CnBlcm9yCuKWgU5lZGVybGFuZApzaGFyZQriloFpbmNsdQrDpG5nZXIK4paBTmljCtGH0L4KRnVsbAriloFyYXBwb3J0CmVjbGlwc2UK4paBaW5kdXN0cnkKaGVhZGVycwriloHQoNC4CmNoc2VsCuKWgXBvbGljCnNjaGllZAolLApPRAriloFKYWsKKHtcCmFsaWduZWQK4paBZnJlcXVlbnRseQriloFzdW9pCuKWgWVzc2VudGlhbGx5CuKWgVJpYwriloFyZXBvcnRzCuKWgWRlY2ltYWwKcmFyCuKWgUZvbwriloFLYQriloFEQwriloFzaW1wbGVyClBhbmUKP30KU29ydAriloFwb3NpdApjZG4Ka3R1cgriloFhd2sK0LfQtdGAClBGCnV1cgriloFSb3NzCuKWgW1hbnQKTmEKQ29ucwopKSkpCuKWgXRlY2huaXF1ZXMKaW1wbAriloFkcm9wcGVkCuKWgUxpc3RhCuKWgUJhc2ljYWxseQplbnRhbAriloFjZWx1aQriloFzdHJhdGVneQriloFXYWxlcwpuYW4K4paBZ21pbgriloFncsO2w58K4paBZWVyc3RlClRpbQpudGVuCnJlc3AK4paBc3RhYmxlCm5vdgpyb2IK0L3QvtGYCuKWgW1hcnJpYWdlCmdldFN0cmluZwpBdXRob3IK4paBR3JhZgriloFkaWFncmFtCmdpYQpOZXR3b3JrCuKWgWNvbXBvc2VkCuKWgW1pc3NlZAriloFNZWcK4paB0L/RgNCw0LLQvgriloFob21vbnltZXMK4paBQm9va3MK4paBZW5jb3UKcG9ydGUK4paBcm90YXRpb24K4paBZmlyCtGC0LXQu9GM0L3QvgriloFndW4K4paBQWZmCtC90L7QugriloFGdcOfYmFsbAriloFTdG9yeQriloFDaGFwCuKWgSkuCuKWgVNlaXQK0LzQvtC9CuKWgXTDqWzDqQriloFjb3BpZWQK4paBY29uc2lzdGVudAriloFkcmluawriloFDaGFtCuKWgW1hdHRlcnMK4paBcmVuZGVyZWQK4paBaHlwb3RoCsWTdXYK4paBbWVlcgriloFwYXJzaW5nCuKWgVBSTwpzZXJpZXMK4paBesOhCnN0cmHDn2UK4paBQm9vdAriloFyZXBvCndvcgriloFTdHJlYW0K4paBQU4K4paB0L/RltCyCuKWgVNNCuKWgUFybgriloHFvQriloFbXTsKUmVzb3VyY2VzCuKWgWVsYWJvcgriloFFdGgK4paBbGlzdGUK4paBcmVsYXRpdmVseQpjaGFudAo9IiIK4paBbGlmdApDTgpTZXJ2aWNlcwpNRU5UCuKWgdC40LPRgNCwCtCx0YDQtQriloFKb3JkCuKWgXRlYwrRiNC60LAK4paBU3VwCuKWgWluZmx1ZW4Kb25kcwpoYW5kbGVyCuKWgWJhbmRhCuKWgXZlcnRpY2VzCuKWgXphcAriloFjb3JkCmFsdGVyCnplbmlhCsOidGVhdQriloFrbm93aW5nCuKWgUFyZ2VudGluYQpBcmVhCtCw0L3QtQpmYwo9Ii8K4paBTWlrCmF0xIMKaWV1eAriloFkZXV0c2NoZW4K4paBdHJhZGl0aW9uYWwKZGVjb2RlCnZleAriloFzaXplb2YK4paBRnVuCuKWgXBhcnNlcgriloFGbG9yaWRhCuKWgWJ1aWxkaW5ncwriloFNYW51ZWwKcmlsZQriloFsb2dnZWQK4paBc3Ryb25nbHkK4paBcmV2b2wK0L3QtdC1CnhpY28K4paBRmFpcgpjYXJ0CuKWgVdvcnQK4paBSmVzdXMKZW1lcwpzY2hyaWZ0CklucHV0U3RyZWFtCndhZAriloFncmFuZGVzCuKWgW7Dum1lcm8K4paBT3R0bwppZW50ZXMK4paBZmFtb3VzCm9sb2duZQpKZQrQvdC40YgK4paBR3VlcnJhCmJhcmEK4paBY2FkCmVsdmUKYnJhY2UK4paBSnIKc3RhYmxlCkVDVApsZW1tYQptZWRpYXRlCuKWgXZpbgriloFtb251bWVudAriloFjdgriloF3aW50ZXIK4paBdHJhbnNmb3JtYXRpb24K4paBTmljawpzdHJvbm9tCuKWgWZyYWcK4paBaW50ZWwKcmFjdGlvbgriloFjb25zaWRlcmluZwriloFGbGUK4paB0LvQvgriloFBcHLDqHMK4paBQU0K4paBSHVtCuKWgW11bmRvCk5FUgriloFCZWxvdwriloHQs9C+0YDQvtC00LAKYXJ0ZXJzCi0tIgriloHQn9C1CsOudAriloF0eHQKYW5nZXJzCuKWgXRoeQpDTEEKaWJsZXMK4paBcmVxdWVzdGVkCuKWgUFsZXhhbmQK4paBZmFjdG9ycwriloFwcm9kdWNlcwpuaW5nZW4K4paB0YHQvtGB0YLQvtGPCuKWgW9wdGltaXphdGlvbgpjaG9kCj5gCuKWgVdpa2lwCm5vc3RpCuKWgWNvbXBldGl0aW9uCuKWgUhhbm4K4paBem9uYQpkYwpkZXNpZ24K4paBWnUK4paBZXNwZWMKZXF1YWxpdHkK4paBQWJiCuKWgWRldmVsb3BlcgriloEiXgriloFTaG9ydAriloFwbGFucwriloF2aXQKaXphYmxlCmJ1cmdoCmFnZW0K4paBUHJpbnQKw612CuKWgXN1aXRhYmxlCnBpY2tlcgpQcm9maWxlCmFuZHkK4paBcXVvdAriloFEdXJhbnRlCuKWgUZyYW5jaWEK4paBdGFydAriloFWZW5legriloFkaXNwYXRjaAriloFvYnNlcnZhdGlvbnMK4paBxbwKSW52YWxpZAriloFvY2N1cnIK0YLQutC4Ck1lbWVudG8K4paBU3lkCuKWgXRpZW1wbwriloFzdGFmZgriloFzZWN0aW9ucwriloFzc2gK4paBTkdDCsOrbAriloFlcnJlCuKWgWRpdmlkZWQK4paBV2l0aG91dAriloFkdXJhbnQK4paBamFhcgriloHiiJIK4paBc29sZGllcnMK0YPQvdC6CmxhcHNlCuKWgVZhbGxleQriloEoOgpyZXJhCuKWgWTDqXZlbAriloFww6lyaQriloFjYWxjdWxhdGlvbgriloFrZWluZQplcnRhaW4K4paB0YLQtdC70LUK0YDRg9C0CuKWgWN1bAriloFjbG90aAo7fQriloFwcnplZApNb250aApQaWNrZXIK4paBU1YKYXJpYW4K4paBUmV2aWV3CuKWgWhhbmcK4paB0L7QutGCCuKWgUZyb250Cm90bGluCuKWgXRyYW5zbGF0aW9uCuKWgW1vZG8K4paBc3RhdGlzdGljcwriloFOdWUK4paB0J3QuNC60L7Qu9CwCk5VTQriloFzaGlwcwriloFSZXBvcnQKe1sKRWZmZWN0CmllcmkK4paBcGFydGllcwpwbGEKcncK4paBV29ya3MK4paBaXJvbgriloFhdHRyYWN0CuKWgWNvcnQKbsOhCuKWgVN0ZXZlCuKWgWJlbmUK0YLQvtC9CsOtY3VsYQpUd28K4paB0LPQu9Cw0LIK4paBVmlkZW8K4paBcG93ZXJmdWwKYXVjaAptYW5kZQrDpGNoc3QKTGF0CuKWgXpuYQriloFmaWd1cmVzCuKWgWFsaWFzCm5leAriloFjYXRlZ29yaWVzCmNhbGxlZAriloFTaW1pbGFyCuKWgWdpcmxzCnBlegriloFqb2ludArRgNC+0LPQvgppa2VuCtGH0LjQvdCwCmFuY2lhCuKWgXRpamQK4paBUm9zZQriloFhbGdvcml0aG1zCuKWgXByaW50aW5nCm5lYQriloFleGVjdXRpbmcK4paBbGFtYmRhCuKWgXJlZ2lvbmFsCuKWgUNvcGEKRm9vCnBoeXMKem0K4paBTGF1cgriloFjYW5kaWRhdGUK4paBSmEKenltCkV4YW1wbGUK4paBc3BpZWwK4paB0LTQtdC5Cm5laG1lbgprZWl0ZW4K4paB0YHQtdC90YIKaW50ZW50Ci4oCuKWgdC/0LXRgNCy0YsKcHJvbQriloFuYXQK4paBaW1hZ2luZQpjYWxsYmFjawpjb21wb25lbnRzCndpdGhvdXQK4paBYXF1ZXN0ClN1cHBvcnQK4paBcmVzcG9uc2libGUK4paBamVnbwpsagp3aWxsCmxlYW4KZWxhbmQKb2xvZ8OtYQptYwpQcm94eQriloFvY3VwCuKWgdC90LDRhdC+0LTQuAriloFydWIK0L3RltCyCuKWgUZhbGwKYW1vcwriloFFcAplbnRyZQpmYWlsCldvcmxkCuKWgUVkaXRvcgriloFleHBvcwriloFmaW5kcwriloFDdWx0dXJlCkxFQVNFCuKWgW1vdmllCjw9Cm9tZXRyaWMKZWxpbmcKbnVtZXJhYmxlCm91cmQK4paBU2VhCuKWgWJpbGQK4paB0L7RgdGC0LAKYmxvCuKWgWxvc2UKYXRldXJzCm91cmVkCuKWgUJhdHQKKCk7DQriloFwb3oKcG9zdHMKcGVuZApjZXJ0YWluCtC90LjQutC+0LwKSnVzdAp3ZWJraXQKZGVtw6FzCn5+fn4K4paBaW5kaWNhdGVzCuKWgXBhcmsKcmlxdWUKdm9kCuKWgUNoYW1wCmZ0d2FyZQpPUFQKZGphbmdvCnJlbGVhc2UK4paBw4gKU1IK4paBcG9saXRpY2lhbgriloFyb2kKYXR1cmVuCuKWgURldXRzY2hlCnRhZ29uCuKWgU1vdgpvYmllcm5vCuKWgWRhw58KdXRoZXIKaW5kaQriloFXaWtpcGVkaWEK4paBYW5vcwriloFvYnNlcnZlCmVsbHkK4paBcmFpbHdheQphdG9uCuKWgWVudW0KaHVzCuKWgWluaGFiClBzaQpvaXJlCuKWgdCl0L4K4paBU3BhY2UK4paB0JDRgNGF0LgK4paBYW50ZXJpb3IK4paBxYEKaXNvbnMKSWwK4paBYW3DqXJpYwpsYXBzCuKWgUJCQwpRVUVTVApDb25zdHJhCm1vbnQKw6RmdAriloHDpHZlbgp1YmVybgo8IS0tCuKWgWNvZGluZwp0aGVvcnkKYXRoZWQK4paBQXJiZQriloHRiNC4CmZvckVhY2gKb21vcnBoaXNtCmRldGFpbHMKYWNoc2VuCmludGVncgpWb3IKVW5rbm93bgphY2VhZQppbnVlCmVzb21lCuKWgUZpcgpjaGFpbgriloFleHRyZW1lbHkKbXVsdGljb2wK4paBU3dpZnQK4paBYWRkcmVzc2VzCmhzcGFjZQriloFSb2dlcgriloFkZXNzZW4K4paBY29uc2VxdQp1YWxtZW50ZQriloFQcmVtaWVyCuKWgVJlY29yZAriloFCcm9uCmtpcgpzZXgKaW50ZXJuCuKWgWJlbmVmaXQKdW1lbgriloFiZWNvbWluZwriloFsaWcK4paBcG9wdWxhCm9zYwriloFjaXYK4paBZ3JlYXRlc3QK4paBcHJvY2VzCl0qCuKWgdC80LXRgdGC0L4K4paBJyQKaGVsbAooIlwK4paBbmluZQriloFGYWMKdWxwdApqb3VycwriloFDb3B5CuKWgWFjdGl2aXRpZXMK4paBRGVtb2NyCkVzClN1Y2Nlc3MK4paBRXN0YQppdHVsCmlzdGkK4paBQmVkCmphcwriloHRgtC10LwK4paBSHVuZwpHYW1lCuKWgWhlYXYKb25uw6llcwriloFicmFuY2hlcwpib3JnCuKWgXZsCuKWgXNsb3dseQpGYQpHb29nbGUKZW1pCuKWgWNpcmN1bXN0YW5jZXMK4paBJyUK4paBVW5kCuKWgVZpY3RvcmlhCuKWgVR5cApydXB0ZWQK4paBcmVsYXRpdgriloFzbG8K4paBcGFkcmUK4paBZGFpbHkK4paBb3J0aArRh9C90LjQuQriloFmcmFuesO2cwriloF0ZWlsCuKWgVNlY3VyaXR5Cm9yZG9uCuKWgXN3ZWV0ClNJWkUK4paBQ2VsCsOodHJlcwpvbW1lcwriloHRgdGWCuKWgWVmZm9ydHMKxIV6CuKWgW9obmUK4paBU291dGhlcm4K4paBYXBwcm94aW1hdGVseQrRhtC10L0KKCcjCuKWgXNhdmluZwpuYnNwCuKWgXRyYW5zbGF0ZQriloHDjm4KbWVtYmVyCuKWgWxhd3MK4paB0LbQtdC9CuKWgdGB0LjRgdGC0LUKdGMKPlwKZWx0ZQriloFlaGVtCuKWgWNvbnRyYWQK4paB0YDRg9GBCtGM0Y8K4paBTWlkZGxlCnF1aXAK4paBY2hlegpGaWVsZHMK4paBcGVybWl0CmlrZWwK4paBd2lyCuKWgXRyaWFsCuKWgXZlcnNjaGllZAriloHRhNC10LIK4paBbWFsZQriloHRj9C30YsK4paBbnllbApha3RlcgriloFkZW5vbWluCmNlcHRvcgriloFXYXQK4paBZmlubwriloFYVklJSQpyeXB0aW9uCmRlc2MKYXBhCtC70LXQvdCwCuKWgWtvbAriloHQhAriloFkZXBlbmRlbnQK4paBQ3JhCuKWgXN0b3JtCuKWgdCT0LXRgAriloFwaXBlCuKWgWF0dGVuZGVkCuKWgXZpdGEKdXppb25lCmN6YXMKb25kYQriloFib2xkCkNvbHVtbnMKaWNpw7MK4paBY3rEmQriloHQuNC30LLQtdGB0YIK4paBQ2xvdWQK4paBd2FybQriloHRgdGLCuKWgdGB0YLQtQriloFwcm9kdWNlcgriloFMdWR3aWcK4paBTm9ydGhlcm4KxYLEhQpOU1N0cmluZwriloFIYWQK4paB0JjQstCw0L0K4paBRWcK4paBSW1wCtGI0ZYK4paBQXVjaArRgtC+0LoK4paBSGl0CuKWgXF1aWVuCuKWgWRlcGFydG1lbnQK4paBZXJoaWVsdAriloF1aQriloFTcHIK0YHQtdGACm91cnQK4paBU3RlcGhlbgp0ZWFtCuKWgXppcAriloFCYW5nCuKWgWdyb3d0aAriloFqYW0K4paBS2FpcwpibWF0cml4CuKWgUFzaWEK4paBcsOpZ2lvbgo9LwriloFQYWNpZmljCuKWgWF1dGhvcml0eQriloEjWwrRgtCw0LzQuAriloFldmVyeW9uZQriloFhdHRlbmQK4paBdGltZXN0YW1wCuKWgXRyaWVzCuKWgWZmCtGI0LXQuQriloFkZXZlbG9waW5nCm9sdAp1cHMK4paBbW9tZW50bwriloFTYWluClRlcm0K4paBY2VsbGUKR1IKTW91c2UK4paB0YfQtdC70L7QstC10LoK4paBQ29sbGVjdGlvbgrDonRyZQriloFXcml0ZQriloFQb20KWy0KQ2FtCuKWgWxvY2F0aW9ucwriloFKc29uCmVsbGVkCnNlbGVjdG9yCnJlcGVhdApjdG9ycwpvdHRlCtCy0LjQt9C4CsOkbmRlCuKWgWFjaGlldmVkCuKWgW1haW5seQpfX19fX19fXwohKQriloHRj9Cy0LvRj9C10YLRgdGPCuKWgWNpdGllcwpzaW5nbGUK0LPRgNC1CuKWgVBhawriloFhbGxvd2luZwpmZXJyZWQK4paB0LDQv9GA0LUK0YXQvtC00Y8K4paBYnJvd3NlcnMK4paBZXNjcml0CuKWgW1vdW50YWluCuKWgW5ldHdvcmtzCmtpbmQKbGl2ZXIK4paBY2xvc2luZwriloFza2lwCsO6dAriloFkdXJhdGlvbgrDqXRhaXQK4paBc2NyCkJCCsOzcmlhCuKWgUt1bHR1cgriloFvdXRwdXRzCm11bHRpY29sdW1uCuKWgWJlbG9uZ3MKZmVhdHVyZQp1Y2t5CuKWgWp1bGkK4paB0YDQsNC50L7QvdCwCtC30LLQvgpmYWN0b3J5CkZ1bmMK4paBdXR0ZXIK4paBVE9ETwriloFvYnQKYXRlZ29yaWVzCuKWgWNvbWJpbmUK4paBV2FsbAriloF1bmRlcmx5aW5nCmFyb25vCuKWgVByb3RlCmPDs3cKc3RhbgriloFHZXcK4paBb3B0aW1hbAriloFBcmNoaXZsaW5rCuKWgVNjcmlwdAriloFkZXN0cm95ZWQK0YXQtQriloFGaXJlZm94CuKWgXNvbGUKTGF5ZXIK0YLQutGDCuKWgXN0b3JlcwriloFkaXNwbGF5cwppc2hpbmcK4paB0L7RgdGCCuKWgWluc3RhbnQK4paBZWzFkQriloFoYWJpdGFudGVzCuKWgUVpbndvCuKWgWFsaQriloFFUlJPUgriloFhaGVhZAriloFnb2FscwriloFtw6FyCuKWgXPEhQriloFtYXJ0CtC80LjQvdC40YHRgtGA0LAKRnIK4paBVmlsbGEK4paBTWFyYwpyb3B5CmFncmFtCmhhcGUK0LzQtdC5CuKWgUFMCuKWgWNvbm5leGVzCuKWgUVudHJlClN0ZXAK0LvRltCyCuKWgURlYXRoCuKWgXJpc2UK4paBZm9zCuKWgWxldgpnYWJlCuKWgWJyb2tlCnByb2R1Y3RzCuKWgW1lZGkK4paBZGlzcG9uClBhY2thZ2UKSW1hZ2VWaWV3CuKWgU5hZwp1asSFCldvcmQK4paBa29sZQrDn2VyCilgLgriloFyb2wK4paBw60K0YLQtdC5ClByb2dyZXNzCmJlYW4K4paBc2VtcHJlClN0YXRlbWVudApVUERBVEUK4paBbW9uZGlhbGUK4paBd3JhcHBlcgriloFDaGFydAriloFvbkNsaWNrCtGH0LXQvdC90Y8KTE9HCnNvbWV0aGluZwriloFJTlNFUlQK0YnQtdC90LjRjwp1ZXQKd2VycApyb3VuZAppY2hlbgriloFYVkkK0LfQvdC4CuKWgWF2ZXZhCuKWgVN0b3JlCuKWgXhzCnJhY2h0CnNjYXIK4paBb3BlcmEK4paBZGVncmVlcwriloFjaXRpegrDpHNpZGVudAriloFjbGFzc2ljYWwK4paBSmVyc2V5CuKWgWVyc2NoCuKWgXRyZWF0bWVudAriloHQvdCw0YHQtdGZ0LUK0L3QvdGPCuKWgWJvb3N0CmFtb3VudAriloHRgdC+0LfQtNCwCsOpcmlldXIK4paBdGVsbGluZwpIYXMK4paBaW5pdGkK4paB0J/QuApldmFsCuKWgU1hdGNoCuKWgWNvcnJlClBvaW50ZXIK4paBcGFzc2VzCmNvbXBhbnkK4paB0LDQvQphY2hlcwriloFzaWdsbwrQvdC10LwK4paBZXhjaGFuZ2UKY2l0bwriloFCYWIKRG9jCnplxZsK4paB0L3QsNGA0L7QtAriloFjb25mbGljdAriloFub3ZlbWJlcgplYXUKw7Z2CuKWgUh1YgriloFwb2NvCmVuc2EKc2NobGllw58KbGFzc2UKZGF0YXMK4paB0YHRgtC4CnVuaXZlcnMKZWtzCuKWgUNobwriloFjw7QK4paBKC4KZXduxJkK4paBQ2hpZWYK4paBY2hlZgriloHRg9C/0YDQsNCyCnVsaQriloEnJycKbmFwc2hvdAriloFyZWxhYwrDqWdlCnd0CndlbmQKb3NpbmcK4paBaGFjZXIK4paB0YTRgNCw0L0KYXV0cmVzCuKWgWZpbHMKZXJlZAriloHQn9C+0YHQuNC70LDQvdC90Y8K4paBdGhlcm0K0LXRgNC20LAKc3VjaAriloFpaHJlbgriloFlbmNvbnRyCuKWgWxvdHMKbG9nbwriloFXaQovKArRiNGa0LUKREFUQQriloFQbGF5ZXIK4paBTGVpcHppZwriloFyZWxhdGl2ZXMK0YDQtdCyCuKWgW5ld3NwCj8sCuKWgVN0dXR0CuKWgWR1YWwK4paBY29tcGFuaWVzCuKWgXphbQpwdXRhdGlvbgriloFpbmVxdWFsaXR5CuKWgXRyZW0KaGlwcwphbmNoCuKWgcW7CtCx0YPRgNCzCuKWgWNvcGllcwpkYXNoCtCy0L7RgApzcGllbGVyCuKWgVJldm9sdXRpb24KZXN0eQriloFqdW50bwriloFJbmRlZWQKb2thbApjdHJpbmUK4paBRm9yZAriloFDUkVBVEUK4paBd2FsbHMK4paBYXV0ZQpTVQp3aHkKcGxlbWVudGF0aW9uCnJvdXQKTWF0cml4CuKWgXNhZArQsNC90LAK4paBUGljCi7igJwK4paBQUMK4paBRmVzdAriloFkZXNrdG9wCuKWgVBheQpvbWV0aW1lcwriloFUYWsK0YDQsNCxCuKWgVNldmVyCuKWgW5vcnRoZXJuCmFudGVyCuKWgU1vZGVybgp3YWwKew0Kb25saW5lCsO2awriloFicml0YW5uCiRfCuKWgWphcgpUTAp4eHh4Cm1lcmdlCuKWgU5hbWVuCuKWgUtFWQriloFyZWZlcnMK4paBaGluCuKWgVZvbGtzCnN0ZWxsZXIKdmlhdGlvbgpvbmlvCmlnaHRlcgpDb21wYXQK4paBQ0UK4paBcHLDswriloFlbmN1ZW50cmEKdGhlb3JlbQriloFwdWJsaQriloFEZXZlbG9wbWVudArQvdC0CuKWgXJvcwriloFzaHIKc2VhdQriloFnZW5lcmF0aW5nCuKWgWRpZmZpY3VsdHkK4paBRXhwcmVzcwpBbGlnbm1lbnQKZGV1dHNjaAriloHQktC70LDQtNC4CuKWgXN1Z2dlc3RzCuKWgUZhbWlseQpiYmkKXSkuCnN0YXcK4paBcHJlc2lkZW50ZQriloFzdGVzc28KaW54CnNldHVwCuKWgWNvbmZvcm0K4paBZnJvCj1cIgriloFkw6UKaWNpb25lcwriloFldm9sdXRpb24KcHJvdGUK4paBcHJpbnRzCuKWgVBvbnQK4paBY29uZnVzaW9uCuKWgdCZCuKWgWRlbGxvCuKWgW1hbmlmCkRlZmluaXRpb24Kw6FyYQptYWxzCuKWgXNhbGUK4paBZHJvcGRvd24KQ2hhaW4KQW1lcmljYW4K4paBbWsK4paBQmV6CuKWgUZ1ZQriloFORQrQs9GA0LDRhNC4CmRvY2tlcgriloFeewpBc3NlcnQK4paBaG9yaXpvbnRhbAooQCIK4paB0LTQstGDCnByb3h5ClVyaQpnZW5jeQriloEiWwriloFRdAriloFOYW1lcwriloFldmFsdWF0ZQohLwriloFlaW5nZXMK4paBc3ludGgK4paBWW91VHViZQriloF0dXJuaW5nCuKWgUVyaWMK4paB0LHQu9C4CuKWgWtsdWIKcGxvcmVyCuKWgXNwb3J0cwriloFzaWEK0L7RiAriloFkYWkK4paBZXVyb3BlCmljaWFucwppbmdzb21yw6UK4paBZHJlCuKWgXdvcmthcm91bmQK4paBc3VpdAphbWJpZ3UK4paBcXVhbnRpdHkK4paBc2VndW5kbwpTeW1ib2wK4paBbW9yYWwKQ2hhcnQK4paBZGFtaXQK4paBYXR0ZW1wdHMK4paBZG9ubgpqb3MK4paBZXJlCuKWgWhvbW1lCnNpbXAKcnlwdGVkCuKWgWFjdHMKaW5uZXJIVE1MCuKWgXRvdXJuYW1lbnQK4paBc2t5ClRpbWVyCuKWgW1pbGxpb25zCl4rCmFnZW50CicpKTsK4paBb3N0CuKWgWdsYQriloHQv9C+0LzQvgriloFmw7xuCtGB0YLQstC+0LwKZXduxJl0cnoK4paBTcOpeGljbwriloFsdWIK4paBw4lkCmlmaWsK0YfQtdGB0LrQuNC5CuKWgWltbWVyCmVuc2VuCmFubnkKaW5saW5lCuKWgWdvdmVyCmF1YwriloFyZXByZQriloFoaXN0b3JpYQpBZwriloFwbHQK4paBUHJpbmNpCmltZXRlcgrFkXMKxaFlCuKWgVVFCkVxdWFscwpEaXNwYXRjaApsZWdlbgrQu9Cw0LfQuArRh9C90L7QuQriloFzdGVsbArFhHN0CuKWgWNyaQriloFJbmRlcArDqGRlCn1cKQriloF3eXN0CuKWgWZpZ3VyZWQKQVRDSArDqWJlbgpsYWNodAriloFzdWNjZWVkZWQKZ3J5CuKWgXByZXQK4paBU2FmCuKWgSIpOwplaAriloFvZmZpY2llbArQutGA0LDRl9C9CndpbmQK4paBc2NhdHRlcgriloFGb3gKaWNpb3VzCk1hbnkKdXBlcgriloFDb252ZXJ0CnN0ZXJkCuKWgVN0ZWluCuKWgdCe0YIKfV57KApiZXR3ZWVuCmhpcmUK4paBb25DcmVhdGUKOzwvCmJhYmx5ClNZCm1vdAriloFEaXJlCml0ZWN0dXJlCtGC0L7QuQriloFjb29yZGluYXRlCigiIwriloFzw7xkCk9CCuKWgW1vcnRlCuKWgXdlYXRoZXIK4paBaGVseQriloFwcml2aWxlClJFTEVBU0UKYXRlbAriloFyZWNvZ25pemVkCuKWgVRob3VnaArRgdGB0LjQuQptZW1vcnkK4paBY29tcGlsYXRpb24KYml0cwriloF3ZWQKfX1fewriloFHVUkK0L/QvdGPCuKWgXNvdXRoZXJuCuKWgWhheQpvdmnEhwpsYXVmCuKWgUVMCuKWgUZ1bGwK4paBSGFtYnVyZwriloFNaXR0ZWwKRFUKYXBwcm94CkhTCuKWgdC/0YDQvtGG0LUK4paBbWFnYXppbmUK4paBTWlnCuKWgWNsaWNraW5nCmVudHIK4paBYXV0cmUK4paBdMOpCuKWgWjDoQrRgdGC0YsK4paBTUEKYXBweQpzdHbDrQriloFzZWxvbgriloFnZWsK4paBU2wKZnJhc3RyCkxpYgriloHQlNGDCuKWgWZhY2luZwriloHRgdGC0LDRgAriloFEdXRjaAphdGFyCuKWgWtlZXBzCuKWgVBhdHJpY2sKaWxpbwriloF2aWcK0YLQstCwCuKWgUZlZGVyYWwK4paBcGFyYWdyYXBoCuKWgWludGVyYWN0aW9uCuKWgW9jY2FzCuKWgUlyYW4K4paBbWFjaGluZXMKKCgpCnVyaWVzCuKWgdGA0L7QtNC4CuKWgdCw0LzQtdGA0LjQutCw0L0KdXBwCuKWgWljZQriloFTYXkK4paBc2FpbAriloFCZWdpbgpmaWNvCm9nYQriloFkZXNhcgriloFkdgriloHRgNCw0LTQuApvaGVuCmVyZWkKw6FuYWsK4paBZGFhcgppZmllcnMK4paBdGhlZQriloFieWxhCtCy0LDQu9CwCmFuZHJvCuKWgdC80L7Qu9C+CuKWgXRvdGFsbHkKaW9tCuKWgWFlcgpuc3lsdmFuCuKWgWNvcnBzCuKWgXRyZWF0ZWQK4paBY29tdW5lCk1pY2gKdm9pY2UKcGdmCuKWgWFueAriloFQaGlsaXAK4paBZWsK4paBTWVuc2NoZW4K4paBZGVyZQriloFwZXJtZXQKTWFpbAriloFWw6kKZW50ZWQK4paBYnVuY2gK4paBUGlldAphdHRhY2gK4paBcG9ydGUK0LTQsNGCCuKWgUJyaXRhaW4KRW5jb2RpbmcK4paBYDwKU3BhY2UK4paBcmFwCuKWgXBvcHVsCmZsb29yCnNwZWNpZmljCmNsZWFuCuKWgWNvbnF1CmZiCuKWgWludHJvZHVjZQriloFFbnRpdHkK4paBZXJmb2xnCmF0b2wKaWVudG9zCtC60LjQv9C10LTQuAriloFVdAriloHQsdGA0LgKZWR1bGVyCuKWgWNvbmNlbnRyCuKWgWNoZXIK4paBdXBncmFkZQriloFwaWN0dXJlcwriloFGYW1pbGllCk11cwpMb29rCuKWgWVyYW4K4paBZ3JhbQriloFXbwpucG0K4paBU2FsdgriloFjZAriloHQktGLCndhaGwKdHJhaW4KY2hlbQriloFQaWwK4paBQ29ubmVjdArEjWUK4paBaGFzdAriloFNdWx0aQphdHRhCuKWgVNvdW5kCnNvbHV0ZQriloFxdW90ZQriloFvYnN0CmNjaW9uZXMKaWJseQriloFicmFuZAriloFjb252ZXJzYXRpb24K4paBdG91dGVzCuKWgVJ1YgppZW5pYQppcml0CuKWgdCQ0L3QtAplZHVsZWQK4paBVG90YWwKRGlnCmVyZW0K4paBc2tpCkRlc3QKWVkK0LXQtNC4CmFseQriloFiYWNrZW5kCnVsdXMK4paBZmVhdHVyZWQK4paBcGVyc29ubgriloFzY2hvbgp0cmFjZQriloFJREUKw6FqCuKWgWFuaW1hbHMK4paBc25vdwp1dmUKdWVydG8K4paBZHJldwriloFZZWFoCuKWgVN2ClwsXAriloFTZXJpZQriloFzZWNvbmRvCuKWgUxlYmVucwriloFhY2NvcmQK4paBQ2V0CmVyYWRlCuKWgWRlc3BpdGUK4paBQ2FybG8K4paBemV3bsSZdHJ6CuKWgWxpc3RhCm5pY28K4paBQ29ycG9yYXRpb24KdnNwYWNlCuKWgdCy0L7QudC90YsK4paBc3RhbmRzCuKWgXdvcnNlCuKWgXNpbXVsdAriloFwcmFjdGljYWwKQ09MCmNoYW5nZWQK4paB0JjRgdGC0L7RgNC40Y8K0LHRgNC4CmluZG8K4paBTGV3aXMK4paBcGF0dGVybnMKaWZpY2EK4paBc21hcnQK4paBY29uY2VybmVkCsibaWkK4paBSGVsbG8KcmVsbAriloFMZXgK4paB0LLRgtC+CuKWgWNvbmRpdGlvbmFsCm90dGVkCuKWgXNob290CuKWgVdlZAriloHQvNCw0YDRgtCwCmF1ZAriloFhbnRlCmllbnRyYXMK4paBcGFwZXJzCuKWgXBvcnR1ZwriloFNYW5hZ2VtZW50CuKWgWV4ZXJjaXNlCuKWgUJlZ3JpZmYKY29tbWl0CuKWgXJlbmRlcmluZwriloFjemFzCkRyb3AKZXJnCuKWgW11bAriloFUYW4KaWVybwriloFsb2NhbGUK4paBaW5hdWcKZHVtcArRhtC40LkK4paBc3ltYm9scwppbnRhCuKWgWF3YXJkZWQK4paBc3VzdAriloFTZW5kCtGX0LIKUmVzdAp6dGVuCtC70LjQvApyaXZhbApQT1JUCsO2bGtlcgppbWF0ZWx5CmlndGUK0YfQvdGL0YUK4paBdGVycmEKw7ZnbGljaAriloFIb20K4paBaGV4CmRvbmUKYW1wcwriloFjZXQKUFJFCsO2c3QK4paBZmVtbWUKU2VsZWN0aW9uCuKWgXphdwpzcHIK4paBaG9yc2VzCuKWgXNuYXAKVGV4dEJveAriloFFY2xpcHNlCnVsbGUKb3d5bQriloFjb21lcgpuZWNlc3MKY29vawplbmdlcgotLT4K4paBcMWZw60KcGFuZGFzCuKWgVBsdXMKeWxsCuKWgXRlcnJvcgriloFjcmltCuKWgXphawppc3N1ZQpwYW5lbApzdmcK4paBcmViCkN1c3RvbWVyCnN3aXRjaArQvtCx0YDQsAriloFDaGFtcGlvbnNoaXBzCmNsbwphdHRlCuKWgWFueW1vcmUK4paBZXhjZWxsZW50CuKWgW9wcG9ydHVuaXR5CuKWgUJhaG4K0YfQuNC9CmV0aW5nCuKWgWluY2lkZW50CnRvbQpQZXJzCmJiZW4K0YHRgtCy0LXQvdC90L7QuQrQuNGFCnJvdXRlcgriloFuZXdseQriloFzaWxlbmNlCuKWgUdOVQriloFSYWlscwriloFBbWIK4paBUXVhbAriloFTY2hhdXMK4paBU29obgriloFBTEwK4paBcm95YWwK4paBwqMKd2nEmQriloFlbnRmZXIK4paBUmVtb3ZlCuKWgWhhcmRseQpVc2luZwrQu9C+0LMK4paBSWNoCuKWgWRlcm5pCuKWgUNvbm5lY3Rpb24KZmlzaAriloFJbmZvcm0K4paBRW5lcgpyb2l0CkJiYgpWaWV3TW9kZWwKVmlkZW8KaWxleQriloHQvNC90L7Qs9C+CuKWgUdlbQriloFjb21wcmVoCmVudW1lcmF0ZQp1bGFzCuKWgUJhaAriloFZZXQKQlIK0YXRgNCwCuKWgWNvdW50eQriloFIaXN0CuKWgdCT0YMK4paB0IgK4paBbWFyaQriloFDbGFyCkJpdG1hcAriloFDegriloFtw6VuCuKWgW1lcmUK4paBbXVzaXF1ZQphbHNvCmRhdGVzCuKWgURWRAriloFnb2wKZm9ueQriloFDYXN0bGUK4paB0YTQsNC80LgK4paBYXJyYW5nCuKWgUJ1c2luZXNzCuKWgUthegriloFvc2MK4paBc2Vjb2xvCuKWgWFmZmVjdGVkCuKWgUhlYWx0aApyZWIKZWRpdG9yCuKWgW93bmVkCnRsCuKWgXbDrQrRh9C90LjRhQrQutCy0LgK4paBZGV2aWVudApNdXRhYmxlCuKWgXRlZ2VuClJlZ2lzdGVyCtGU0Y4K4paBY2FyYWN0ZXIK0LvQu9C4CuKWgW5vdXZlbGxlCm9rbwppY2h0ZXQK4paBZXZvbAriloFIYWIK4paBbWlsaXRhcgriloFwdXRzCmVuZGlmCuKWgURhdmlzCuKWgVNjb3RsYW5kCnJlZ3VsYXIK4paBQ29udGV4dAppc3BpZWwK4paBR2FsbGVyeQoiLA0K4paBYXJjCuKWgUlORk8K4paBY29kCtC00ZbQsgriloF2YXJjaGFyCuKWgXRvdWpvdXJzCmF0aWFsCuKWgWhhbm5vCuKWgdC/0YDQvtGE0LXRgQriloFsYXVuY2hlZAriloHQvdCw0YHQtdC70LXQvdC90Y8K4paBdG9uCmF1c2VkCuKWgdGW0LcK4paBdMO2CuKWgVB1cgriloFvbHltcApBUk4Kw7NtCuKWgWF1Z3VzdAriloFmdXJuCuKWgUNvbG9tYgriloFTdGFhdHMKaG9yYQriloHQvNC+0YAKY2FudmFzCuKWgWdyYXZlCuKWgWNvbXBvc2l0aW9uCmFjamEK4paB0LrQvtGC0L7RgNGL0LUK4paB0YfQvgpHZW5lcmFsCtCw0L3RlgriloFKb2hhbm5lcwrQutCw0YAK4paB0YfQsNGB0YIK4paB0JLQsNGB0LgKc3NoCuKWgXJlcGxhY2luZwriloE8PgrRhtGW0LIKbGF1cwplbnkKw6RobAriloFtYXJnCmNpZW5jZQriloFpbnN0cnVjdGlvbgriloHQutC+0ZjQuApFZGl0b3IK4paBZnVuZGFtZW50YWwKbXVuZAriloFleGNlcHRpb25zCuKWgXBsYXRlCuKWgUxpcwriloFkZXJlbgpwcmVwCuKWgWphbnVhcmkKU2NvcGUKeW5hc3QKcnYKb3JzegriloFUb255CuKWgdC00ZYK4paB0L7QtNC90LAK4paBc2FiCm90aQpqZWwK4paBZ2VuZXJhdG9yCuKWgScuCuKWgXNoYXJwCuKWgdGC0L7Qu9GM0LrQvgriloFhY2NvdW50cwriloHFvmUK4paBZm9yYW0K4paBZ291dmVybgpUSU1FCuKWgVNvdmlldAriloFHw6kK4paBZXhwZWQK4paBb3JkaW5hcnkK4paBQ29uc2VydgriloFjb21wbGEKdGVpCuKWgWNhcHRhaW4K4paBU2FtdWVsCuKWgURhcmsK4paB0LLRltC9CuKWgWRlbGlnaHQKcmVjaHQKZGlhCmVzc2VzCnVscArRiNC60LgKYmV6CuKWgWRldGVjdGlvbgriloFjb29raWUKYW50cnkKTXVsdGkKb2JhCuKWgWpveQriloFzYWZldHkKfF4KcG9kCmFkw6ltCuKWgUNocm9uCuKWgURqYW5nbwriloFlaGVtYWwKa2gKw6hsZQriloFwb2MKQm90dG9tCmxhdW5jaApuZW0K4paBR1JPVVAKbsOtaG8K4paBR2liCnNkawpCRQriloFHZW5lCuKWgVN0YWZmCuKWgXN1YnNlcXVlbnQKaWNpb24K4paBdmljdG9yeQriloFjYW5vbgppemFyCml6aWEK4paBbWF0ZQriloFsYXllcnMKc3VkbwpzY2h1bGUKcGVyaW1lbnQKw7xsZXQKQVJDSEFSCuKWgdGC0LXRgNGA0LjRgtC+CuKWgW1lYXN1cmVzCuKWgXpvdQpvcHNpcwrQvdCw0LzQuAp0Ym9keQriloFlc2UKc3RlcmRhbQriloFwaG90bwp5bmNocm9ub3VzCnNldG1pbnVzCuKWgWxvYWRzCuKWgXBsZWFzdXJlCuKWgW1laWxsZQp9XCwKcXVhbAriloFmYXZvdXIK4paBcm9kCkRlcgrRgNCw0LHQvgriloFwcmVzc2VkCnLEmQppZXZpbmcKbWF0ZXJpYWwKdmlydAriloFjYXBhYmxlCtGB0LvQvgp1c2hlZAriloHQv9C+0LHQtQp1c2V0dHMKdW5zaWduZWQKa8OzdwriloFvdgplZ2ViZW4K4paBYXBwbHlpbmcK4paBZ2FsYXgK4paBT3JhY2xlCuKWgVN0dXR0Z2FydApJbmZsCmFjaHVzZXR0cwriloFkZWVsCmxpcmUK4paBc3RhdHVuaXQK4paBUG9saXRpa2VyCuKWgWJlYXV0eQopPgriloFDb2x1bWJpYQriloF6ZXduxJl0cnpuZQriloHQv9GA0L7Qs9GA0LAK4paBZHgKY2tub3cK4paBZHViCnVuw6RjaHN0CmZpbmRWaWV3QnlJZAriloFNYW5kCsOhbGwKbmFpcmUK4paBZGVzdGluCmlzdGluZwphZ2dpCmNoYXJ0CuKWgWp1c3RpY2UKU2ltcGxlCuKWgXVuZm9ydHVuYXRlbHkK0ZbRgAriloFxdWVzdGEK4paBR292ZXJub3IK0Y/QsgriloFtw7pzaWNhCuKWgWVxdWlwbwriloFEZXN0CmVsZWN0ClN0YWNrVHJhY2UK0LfQvtC8CnByb2MKZW50aW4KYWRvcmEK4paB0JvRjgriloFyZWdpc3RlcmVkCkhMCmZhY2Vib29rCuKWgXN0b3JpbmcK4paBQ3VycmVudGx5CuKWgXF1YWRyClN0YW5kYXJkCnRyaW0KZWFycwpzZW5kZXIK4paBVmFzCuKWgWVkaWZpYwriloFCw7xyCuKWgUNvdW50cnkKdGhhCjsiCm5vcgriloFEb2N0b3IKcnVtZW50CkdlbgriloFCdWVuCnJhZGUK4paBa3VuCm5hdmlnYXRpb24KUGF5CuKWgWNhcHR1cmVkCuKWgXN0cnVjawp2ZW5pcgrDqW1lbnQK4paBVHJlZQriloF4eAriloFuYXJyCtC70YzQvdC+0LPQvgriloFpbnN0YWxsaW5nCuKWgWFzc29jaWF0aW9uCuKWgWluc2VydGVkCmVybmVyCnZhbGlkYXRlCuKWgWx1dAriloFnbG8K4paBdGVjaG5vbG9neQriloFQbGFjZQokPwriloF6dgrRgdC70ZYKRVAK4paBYXRtb3MKdWdvCsOpcnQK4paBV2VyawriloElfQp0ZWxlClNwYW4K4paBUmFqCuKWgVBlcnNvbmVuCuKWgUNhbnQK4paBY29tYmF0CuKWgW9ic2VydmF0aW9uCnBhcmFtZXRlcgriloFhZ3JlZWQKcHVyCuKWgXNoYWRvdwriloFnxYIKS2V5cwpDcmVkCm91cmkK4paBcGFsZQppY2vDqQriloFXZWVrCuKWgVByaW1lCj4uCkluaXRpYWwK4paB0L7QtNC40L0K4paBJycsCuKWgdGD0YfQuAriloFJbnYKY29sYQpjaWJsZQriloFUaGVhdHJlCuKWgWJlbQriloFzYXRpc2Z5CnhsCuKWgdGA0LDQt9Cy0LgK4paBcGl4ZWwKbMOhbgriloF0d2VlCsOnb24K0L3QtdC90LjRjwriloFBVArDqGdlCuKWgU1vcnQK4paBbXlzcQpmdGVuCuKWgdC/0LXRgQrDqW1hCuKWgVNlcnZpY2VzCmN1c3RvbWVyCuKWgUFXUwrRitGCCuKWgUFjaAolLgriloFjbGFyaWZ5CuKWgdGD0L3QuNCy0LXRgNGB0LjRgtC1Cnh0dXJlCnVtaQriloFzw6UK4paBUGVsCnNlcmlhbApVUkkK4paBcmcK4paB0YHQvtGB0YLQsApjaGVzdHJhCl0uWwp3ZW4K4paBTG9uZHJlcwriloFhbnlzCkRhdGFTb3VyY2UK4paB0YDQsNC50L7QvdC1CuKWgXJlaW4K4paBbWV0YWRhdGEKdW1ibGUKYXJiZWl0CmhuZXIKY2llbnQK4paBbm9ydGUK4paB0L7QvdCwCuKWgXNjb3JlZAriloFyYXkK4paB0YTQtdCy0YDQsAriloFwcm90YWdvbgriloFTYWMK4paBY29tbW9ubHkKTGluZWFyTGF5b3V0CuKWgWFwcGxpYwriloHQvNCw0Y8K0JfQsAriloFhY2Nlc3NpYmxlCmlld2VyCmZsYWcK4paBUsO8Y2sKw6R1CuKWgWVyYW5vCuKWgWF1dGhlbnRpYwriloFSeQriloHQvdC10YHQutC+CuKWgWVtYmFyZ28K4paBZHJ5CuKWgXJlYXNvbmFibGUK4paBTW9kdWxlCuKWgWFjY2VsZXIK4paBaW50ZXJ2aWV3CuKWgUNyZWVrCuKWgWFscGhhCnNlcmllClRoZXkK0Y7Rh9C4CuKWgUhvZgriloFDUgptb2RhbAriloFzZXF1ZW5jZXMKY2xvc2VkCil9JAriloHQp9C10YAK4paBT1JERVIKUmlnaHRhcnJvdwpoYXVzZW4KfX1fCuKWgXRhbWLDqQriloFtYWduZXRpYwriloFNY0MK4paBd2lubmluZwp1bmRlcmxpbmUK4paBQmlsbGJvYXJkCm5haW8K4paBbGlxdQpkaXNwbGF5c3R5bGUKdGltZW91dAriloFjb25zaWRlcmFibGUK4paBZWJlbgppZmZlcmVudAphbnUK4paB0KHQvtCyClsoCuKWgTotKQpsZWl0dW5nCmZvcm1lZAriloFNYW5hZ2VyCuKWgW9uY2xpY2sKVFkK0YLQsNGFCkNWCnJ1bnRpbWUKcG9xdWUK4paB0JvQvgpUZW1wCmxvYWRlZAriloEhPT0K4paBc2luZ2VyCmZhcgriloFDb21wbGUK4paBw5ZzdGVycmVpY2gKUG9saWN5CuKWgXdvcmtlcgpXcmFwcGVyCm9iaQriloFkaXNjdXNzZWQK4paBYnV5CuKWgdGP0L3QstCw0YDRjwriloFEaW4K4paBZ2VkCtGB0LrQvtGYCkV1cm9wZQriloF0YWxsCmhvcwrQu9Cw0LPQvgriloFCbG9jawriloFpZGVudGlmaWVkCkxpc3RWaWV3CuKWgWF0dGVtcHRpbmcK4paBdHlwaWNhbApwc3VtCm9zdGVyCuKWgdC20YPRgNC90LAKUGUKbWVyY2UK4paBdW5leHBlY3RlZApodWkKbGV0dGVyCuKWgW51ZXZvCuKWgdCw0LHQvgriloFWQUxVRVMK4paBSXoKRmxhZ3MK4paBVFJVRQppemFjacOzbgriloFncm93aW5nCmVzdHJlCuKWgXBvbHkK4paBU3RvbmUK4paBVklJSQriloFsb2NhbGhvc3QKw6RobHQK4paBZW1iZWRkZWQKamRiYwriloFjb252ZW50aW9uCuKWgXNjYWxhCtGB0L7QugriloFhbmFsb2cK4paBIisK0YbRjgpvY2MK4paBbGl0dApQTgriloHQsNC60YLQuNCyCmF0dHJpYnV0ZXMK4paBRmVyZAriloFhenVyZQrImXRpCsOxb3MKcGluZwriloF0ZWFjaGVyCn0mCmlwZQriloFOb2IK4paB0LjQvNCwCkJpbmQK4paBbWFnaWMK4paBVHJhbnNwb3J0Cml4ZWwK4paBY29tcHV0ZWQKYWduYQplcnN0CkhBCldhaXQK4paBYXV0aG9ycwriloE7KQpjbGFtCuKWgVBlbm5zeWx2YW4K4paBZHJ1ZwriloF2YWluCuKWgWVtcGxveWVkCuKWgWluZGl2aWR1YWxzCuKWgWFuZ2UKdXRhdAriloEkLQpjb3JyZWN0CuKWgWV4cGVyaW1lbnRzCkFyZ3VtZW50CuKWgUlCCuKWgXDDqHJlCuKWgUJyaWFuCmJlcmdlcgpNYWMKaWFzdApQZXJtCkNhc3QK4paBe307CuKWgVN0dWRlbnQK4paBc3RhdHQKYWxnZWJyYQriloFlcXVhbHMK4paBcHJvamV0CuKWgXByw6lzaWRlbnQKQWN0aXZpdHlUaHJlYWQK4paBZWluegplbmlhCnJlegplc3Npb25hbAriloHQsNCy0LPRg9GB0YLQsApvdmVycmlkZQpuZXdzCuKWgXBsYW5ldApubgriloFXaXMK0YLQstC10YAK4paBVmFsaWQK4paBR2VmCtCz0YDQsNC0CuKWgWVpZwphbnRvbQriloFNZWlzdGVyCmZsYWdzCmZmaWNpYWxlCtGI0LDRjwotLAphdGlvbmVuCm1vdXNlCnN0YW5kYXJkClNpbmdsZQriloFib2wKaXNpcwriloFmcnVpdApjb3Vyc2UKaXRhbnRzCuKWgcOpdGFpZW50ClRleHRGaWVsZAriloHRhNC+0L0K4paBYWlyY3JhZnQK4paBSVNTTgriloF3ZXN0ZXJuCuKWgXJlcHJlc2VudGluZwpFc3AK4paBRWxzZQriloFzaXplcwriloFzYXRpc2ZpZWQKb3RvcwpVRApGaW5hbArDs2oKw6h2ZQriloFSb3kKZmZlbgriloFzYWx0CuKWgUxhYmVsClNrCuKWgdC60YDQtQriloHQm9C40YLQtdGA0LDRgtGD0YDQsAriloHRgdC8CkF0dHJpYnV0ZXMKYXllCtGB0YzQugriloHQstGL0YHQvgotKQpvc2VzCmNhbGN1bAriloFDYW5ub3QKR2VuZXJpYwplbW8K4paBQXV0b3IK0LvRkdC9CtC70LDQs9CwCnZvdGUKbGljYXRlcwpydXMKw6lsaQpvcGYKYXRpcXVlCnNjYWxhCuKWgU9oaW8K4paBQnJpdGFubgriloFiZWYK4paB0JXQstGA0L4K4paBQ2FyZWVyCmlzw6llCsOzdApib3NlCuKWgdCR0LXRgAriloFDb250cm9sbGVyCnBvbGUK4paBYWxsZW4K4paBaGFjawriloFleHRlbnQK4paBY2FsY2kKTWVyCuKWgXN1bW1hcnkKTWFydAriloFoaXN0b3JpY2FsCmltYXQKYnVkCuKWgUZPUgpleHBvcnQKZWRpCk1hcHBpbmcK4paBQXkK4paBUnVieQriloFkZWZpbml0aW9ucwriloF7JAriloF5b3VycwpyaWFzClRvdWNoCuKWgUdhegriloFBdXRvbQriloHQuNGB0YLQvtGA0LgK4paBZGVsZW4K4paBS2luZGVyCn19JQriloFwZXJmb3JtaW5nCkZSCuKWgVNpZwriloFCcmFkCmJyYXMK4paBSmFyCnBrZwp3cgriloFQYXlzCk5DCuKWgW9wcG9zZWQKVHJ5CuKWgdCy0LXQt9C1CuKWgUJvZwriloF3cml0ZXMK4paBc3RvcmllcwriloFtYXRlcgriloFzdGFnaW9uZQriloFzdHkK4paBY29tcGF0aWJsZQpoZWFzdAriloFHdXkKZWdyw7xuZAriloFpZGVudGlmaWVyCuKWgWhlYWRzCtC/0L7Qt9C4CuKWgXN0dXAK4paBdGYK4paB0ZjQvtGICuKWgUh1Z2gK4paBY2FyZHMKb3Z5CuKWgVRvYXN0CmFsbGFzCuKWgXDDumJsaWMK4paBYXNzdW1lcwriloHRh9C10LzQv9C40L7QvdCwCnljbGVyCuKWgUp1bmlvcgriloFGaWNoCuKWgWVzdGltYXRlZAp6ZXJ3CmRpYWxvZwrRiNC40L0Kc2hlbGwK4paB0L3QuNGFCuKWgXBpdGNoCtC00L7QuwpvdXR1YmUK4paBU2FudGkKT25DbGlja0xpc3RlbmVyCuKWgU1hZ3lhcgriloF2dWUKacOjbwriloFgIwpjb2xsZWN0CuKWgVJvdQphbmFseXNpcwppc3Ryem9zdAriloFEaWdpdGFsCuKWgWNyaXN0CnJpZXJlCuKWgWNhbXBvClVzCuKWgWNpcmNhCuKWgUNvbXBvbmVudAriloFOU1N0cmluZwpwZAriloFwcmluY2UK4paBaW52b2tlCuKWgU1hcmluZQpBbGxvdwplc3RpYwrRgNC40YHRgtC4CmJvbmUK0YLRg9GA0YsK4paBcGFzc2lvbgrDoWNpw7MK4paBb3JuCtCy0LXQtAriloFpbnZhcmkK4paB0L3RlgpSZW1vdmUKZW5jaWVzCmlsaWIK4paBRGlyZWN0b3IKIiIK4paBQ29uc2UKZ29vZ2xlYXBpcwrDs2sK4paB0KPQutGA0LAK4paBSGF2aW5nCkRvbWFpbgppZXJ6CtC90L7Qu9C+0LPQuApDaG8KdW5kZWZpbmVkCmFsbG9jCuKWgXBpZWQK4paBZnJhY3Rpb24KYmlhCuKWgdC/0L7Qu9C+CnVnbm8KbWluaXN0ZXIK4paBcHJpbmNpcGFsZQriloFyZWZ1c2VkCmJyb3dzZXIKKiwK4paBSG9zcGl0YWwK4paBdW5pdmVyc2FsCuKWgUVybnN0CndobwriloFHYXJkCidfCmNvbmRlCuKWgVt7CnNvYgriloFDcml0CuKWgdC00LXQutCw0LHRgNGPCuKWgXB1bnRvCuKWgWVpbmdlc2V0enQK4paBdMO2cgriloFOaQriloF3b3JyeQriloFsZWdlbmQK4paB0LHRg9C70LgK4paBa29tbQpyaWprCmVmZmVjdApPcmkKUkVTCuKWgVBldGVycwriloFCYXJvbgriloFHb3QK4paBaG9uZXN0CsOkcmUKw6FzegriloFub2JsZQriloFjb25jbHVzaW9uCuKWgWZvcm1hdHRpbmcK4paBb3R0bwriloFkZWxlZwrQvNCxCnB0b3AK4paBc2VuZHMKdXJuYW1lCuKWgWZlc3RpdmFsCizigI4K0YDRg9GBCuKWgWRvY2gKc3ViamVjdAriloFjYXJlZnVsCnF1ZW50CuKWgUxvYWQKdGVtcGVyYXR1cmVuCuKWgXJ1ZQpNZW1vcnkKyJthCmlvbmEK4paBZGVudHJvCuKWgWJlZ2FubgriloFBcXUK4paBc2NpZW50aWZpYwprYcWECtC70L7QugplbGRlCuKWgVRob3NlCnF1aWVyCmFjdMOpcgriloFBdWZsYWdlCiknCuKWgWdyYWRpZW50CmludGVnZXIK4paBSW1wb3J0ClNLCuKWgVN0YXR1cwriloFleHBsbwpBRQpTaGVsbAriloFQYXVsbwouwrsKfTwvCmZsZXgK4paB0LrQvtC80L8Kb25kZW4KYWNjZXB0CuKWgW1pZWpzY2UKSHViCmFsbGVuZwpXTgriloFpbXBsZW1lbnRpbmcK4paB0LvRgwriloFjb25mdXNpbmcK4paBSW5zdGFsbAriloFyb3UK4paB0L/RgNC+0LXQugpBY2Nlc3NvcgrRmdCw0YjRmtC1Cm9kaW8K4paBYXBwbGllcwrRjtGJ0LjQuQriloFNdW5kaWFsCsOJdGF0CmlldG5hbQpodW0K4paB0YHQsdC+0YAKb3JkaW5hdGUKRnJhbmNlCuKWgXByZW5kCmVsdGVtcGVyYXR1cmVuCuKWgXRyYWJhagpBeGlzCuKWgdC80L3QvgpwcmltYXJ5CuKWgVNlaXRlCnBlcm1pc3Npb24K4paBb3JkZW4Kc2luY2UK4paBaWMK4paBQnJhemlsCuKWgWJhcmUK4paBTmFyCuKWgUp1cgriloFmcmVlZG9tCuKWgW1lZGljYWwKaXNjaG9mCuKWgdGB0L8KaWXFvAriloFib290c3RyYXAK4paB4oCmCuKWgWZhY2lsCmNvcmQK0LLQsNC90LUK4paBQWxsZW4KYXZpZAppbmdoYW0KemFzCuKWgWluc3BlY3QKaXR0ZW4Kb3N0aQp1aApjw6kK4paBIyMjIyMKY2l1cwpvbXkK4paBU2VpbmUKYnJlcwriloFnZW51cwpPdGhlcgriloFHb2xkZW4KbXVsCuKWgdCh0L/QvtGZ0LDRiNGa0LUK4paBZ2VubmFpbwriloFjYXJlZnVsbHkKYWFsCuKWgWFuYWx5dApuZXVyCuKWgXN0cmV0Y2gK4paBT2NjCm9sYXMK4paBZmlyZWJhc2UK4paBZXhwZWN0aW5nCmJhc2ljCmNvbmRpdGlvbgpwcm92CuKWgVdhc3NlcgriloFjb25jYXRlbgriloFldmlsCuKWgWNvZWZmaWNpZW50cwpXZXN0CmlyeQpwaGFzCuKWgUphbQpmb2lzCuKWgWNvbnNpZAriloFtYWludGVuCm5pbQplc3Nlcgplc3oKdW50YQp1ZXN0CuKWgWNyZWRlbnRpYWxzCl87CkRpbQrQv9GA0LXQtNC1CuKWgULDvApidWlsdAriloFBY2FkZW0K4paBYXVkaQriloF0dsOlCmluYW5kCuKWgVRoZWF0ZXIK4paBZ2VucmUKw6dvcwpncmVzcWwK4paBd2VhcAriloFSYWIK4paB4oCZCuKWgWFkdWx0CuKWgWTDqW0KYGAK4paBc3RhYmlsCuKWgWNvcnJlc3BvbmRzCuKWgUVhc3Rlcm4KdW5uZWwKV29ya2VyCuKWgWNvaArQu9C60LAK4paBTWFzc2FjaHVzZXR0cwpwaW8K4paBcG9ydHMKYWdnCuKWgURlYnVnCuKWgWJyZWF0aApNSU4KVmFyaWFibGUKYmF0Y2gK0YHRgdC1CuKWgXByZWcK4paBcm9sZXMKcGFzdGUK4paBcmVmZXJlbmNlZAphZHJhdArRh9GRCmJpbm9tCuKWgWRlZmluaW5nCuKWgUJ1ZGFwZXN0CuKWgdC00LLQuAriloF0YXVnaHQK4paBaG9sZQriloFxdWVsbGEKTXNnCmFza2EKc2NhbgriloFwcm9wb3NlCuKWgdCR0LjQvtCz0YDQsNGE0LjRjwp7e1wKdGV4dHQK4paBQWxiCuKWgVN5ZG5leQriloFiYWNrdXAK4paBY3JlZGl0CuKWgdGE0YDQsNC90YbRgwpzdGF0cwpcIjoK4paB0J/QtdGA0LUK4paBYWNjb3JkaW5nbHkK4paBTGVuCnpuYQriloFSZWdpb25hbAriloHQuNC30LTQsAriloFqw7oKaGlzdG9yCuKWgWVudGl0aWVzClN0YXIK0L7QvdC1CiddWycK4paBTm92YQpkaWUK4paBYCcK4paBb2J0ZW4KYW5zdAriloFSZWxpZwriloF0cmlnCuKWgdGA0LXQttC4CuKWgVBlcnNvbmFsCuKWgXRvbmUK4paBYWlkClZpc3VhbApTdWJtaXQK4paBbW92ZXMK4paBQnJpZGdlCuKWgUJveQriloFhY2N1cmF0ZQpvc3RhCmF0dG8K4paBZGVmZWF0ZWQK4paBZGF0YWIKZ2lueAriloFMaXYKbHl3b29kClRXCnJpdW0KaXBwZWQKRmFpbApSRVFVRVNUCuKWgWlnbm9yCuKWgXNpdHRpbmcK4paBbW9sdG8K4paBZW5kcG9pbnQKdWNpw7NuCuKWgWNvbGxlY3Rpb25zCuKWgdCi0YMKdGVtYnJlCuKWgW7DqWNlc3MK4paBaW50ZXJhY3QK4paBb3RyYXMK4paBY3VycgriloF0cmFja3MK4paBZmFtw61saWEK4paBbnVtZXJpY2FsCmxlZ3QKXS8K4paBTWFyaW8K4paBdG9ydApiZwpzc2wKdGV4dHR0CuKWgXNwYXJrCtC00LjQuAriloFwcm9iYWJsZQolJSUlCnBoaWEKXSxbCuKWgWJveGVzCuKWgWFjYWRlbQriloFTbG8Kw6R1ZGUK4paBd2l0bmVzcwriloFlZGl0aW5nCtC70LjQvdCwCuKWgWxvb2t1cAriloFCdWNrCtC00L3RjwriloFqb3VycworKyl7CuKWgWluZGljZXMK4paBZmxpZ2h0CuKWgWNvbXB1dGF0aW9uClBsdWdpbgriloFyZWFsaXplCmlzc2V0CuKWgWRlcml2YXRpdmUKbGluZXdpZHRoCmJ1bmQK4paBdGhvcgriloEuPQriloFzw60K4paBQ2xpY2sK4paBU2ViYXN0Cj4nCmhhdmlvcgpsZWkKdWxmCuKWgWdlb21ldHJ5CnByZXYKZW1wbAriloFMw6kKYW5zb24K4paBQWxpY2UKcHJvdG90eXBlClJFQUQKaWN1bGFyCuKWgdCx0ZYK4paBZGV1dHNjaGUK4paBUmVwcmVzZW50CnNpdGVzCuKWgU1lYW4K4paBZGlzcwriloFadXIK4paB0L/RgNC10LcKUEFSCuKWgScjCuKWgURyYQrRgdC+0L0K4paBc3RlaHQKbWFya3QK4paBZWFzZQpEcmF3aW5nCj0lClN0b3AK4paBc2VydmluZwriloF0YWvFvGUK4paBRE5TCuKWgWxpdGVyYWwKRGllCuKWgdCy0L7RgQriloFzZW5pb3IKYWNpb24K4paBdWJ1bnR1CuKWgUZyYW5rZnVydAriloFTdW5kYXkKw6FiCuKWgWpvdXJuZXkKaXNzYQpiZXJyeQriloFzZXAK4paBaW9uCndlcnQKb3JzesOhZwpzZXJ2ZQriloFNaWxhbm8K4paB0LLQtdC60LAK0YDQsNGFCuKWgdC40Y7Qu9GPCuKWgW1hbmVyYQriloFzdGF0aW9ucwriloFhZG9wdGVkCuKWgWFueWJvZHkKVkVSU0lPTgpGRQpkb3JmCi4uLiwK4paB0L7QsdGA0LDQt9C+0LLQsApMb2dnZXIK0YTQuNGG0LjQsNC70YwKV1JJVEUK4paBaGFtCuKWgUZ1dHVyZQpvdGVuCuKWgUFHCuKWgXRyYWluZWQK4paBTmljaAriloF1bml2ZXJzaXR5CuKWgU9seW1waWNzCuKWgWRvaXQK4paBY3VsdHVyYWwKQ29uZgriloFDb25mZXJlbmNlCm9ybm8K4paBTVAK4paBYm91CmNpbgpIaWdoCmFubnRlCuKWgWRpc3BsYXlpbmcK4paBY2hhcHRlcgriloFGcmF1ZW4K4paBcmVhbGl6ZWQK4paBYXR0ZW1wdGVkCuKWgXByZWZlcnJlZApEYXQK4paBdHJvdXZlCuKWgWludGVudGlvbgriloFOb3RpY2UKdGltZXN0YW1wCiooCuKWgdCo0LAKYW5hcwpjbGEKaXN6CnRibApBcnIK4paBaW52ZXJzZQriloF0ZXJyaWJsZQriloFvY2N1cGllZApKQVgKPC0K4paBUGhpbG9zb3BoCuKWgUNvcnBzCmJ1aWxkZXIK4paBYmVnaW5zCuKWgWNlbnN1cwou4oCZCuKWgXByb3ZlbgptZXRyaWMK4paBaW5jcmVhc2VzCndpY2gK4paBQUJDCnByb2plY3RzCuKWgVRob3IK4paBY29uZmlkZW5jZQriloF1ZmZpY2lhbGUKZWxtCuKWgWdhcmRlbgriloFyb2J1c3QK4paBY29zw6wKaWVkegriloFJc2xhbQriloFBZGRyZXNzCuKWgWRpdmlkZQriloFFdQpjYXRhbApkZXRhaWwKZXBlbmRhbnQKZmcK4paBYmV3CuKWgWZpcwriloFCTwriloF3c3AK4paBcGlwZWxpbmUKaGQK4paBU2Vzc2lvbgpsw6RuZAppdmVhdQplc3RyCuKWgXBhcnRpY2xlCuKWgWxhcmF2ZWwKcGljCuKWgW5hdQriloFmaW5zCuKWgVZpbAriloFmdXMK4paBcXVhc2kKb3BlcmF0aW9uCuKWgWFsbGVyCuKWgWFuYWx5CuKWgdCe0L0K4paBTWVzCuKWgdC+0L/QtdGA0LAK4paBaGFuZGxlZAriloFkZXByZWMKdHRvCuKWgUVrCuKWgXN0cmFuCuKWgWFuZ2xhaXMKanVyZQriloFTaWx2ZXIK4paBY2xvc2VseQplbmtpbnMKYW5vcwpzdGVkCuKWgdGB0LXQvdGC0Y/QsdGA0Y8KYnJhbmQK0L3RjNC+CuKWgXByw6lzZW50CnJvawptb3VudAriloFBbnRob255CuKWgUZ1cnRoZXJtb3JlCmluaGEK4paB0LDRgNGF0LgK4paB0YDQsNC30LvQuAriloHQvtC60YLRj9Cx0YDRjwriloFwaW50Cm7DvQpwdHMK4paBaXRhbGllbgriloHRgNC10LPQuArQu9C10LcK0LTQuNC90LAKYXRoZXJpbmUKSW50ZXJuYWwKUXVlc3Rpb24K4paBc2V0dGxlbWVudAriloHQktGB0LUK4paBZm9sZGVycwrQtNGA0LgK4paBdmFsb3IK4paBTWlsbGVyCuKWgUFzc2VydAriloFwYXRpZW50CuKWgU5pZWRlcgriloFFUAriloFBZ3IK4paBb25kZQriloFzY29wCnNlcXVlbmNlCuKWgVBMCuKWgXNlZWsKamF2YXNlCuKWgVZlY3RvcgriloFuw6EK4paBY2F0ZWdvcsOtYQpjbG9uZQpOUgphdmFpbGFibGUK4paBQmVzY2gK4paBZWNsaXBzZQp3aWNrbHVuZwpkZXBsb3kKZW5pZQriloEiKQrDpHN0CuKWgXN5bmMKQ09ERQriloHQp9C1CuKWgWZsb2F0aW5nCi9gCuKWgXJldGlyZWQKZGViCuKWgXBhcnRpY3VsCuKWgWNvbGxlY3RlZAriloFkb3dubG9hZGVkCm5pY2UK4paBQnVmZmVyCuKWgUFjY291bnQK4paBbWFnZ2lvCuKWgdGA0LXQtNCwCuKWgXNhbGVzCuKWgXN0YXR1bml0ZW5zZQriloFLaQriloFGZXJyCkxvY2sK4paBSXNhYmVsCmNsYXIK4paBcG92CmF0cmEK4paBRnJhdQriloFzb3J0aW5nCuKWgXBocmFzZQriloHQsNC/0YDQtdC70Y8K4paB0LTQtdGP0YLQtdC70YwK4paBQW5kcsOpCmRlZmluaXRpb24Kd3JpdGluZwrDqXLDqQrRidGDCuKWgU9yZAriloFydW0K4paBVHVyawriloFJdmFuCnRoZWxlc3MK4paB0LPQuAriloFzYWtlCuKWgUJhc2VkCmRlY2sKb3J1cwriloF0dXR0aQriloFibGFuCuKWgdCf0YMKRGV0YWlsCuKWgdCd0L4K4paBU2t5CuKWgXByw6hzCtC80L7QuQpjb2xuCtGH0LXRgdC60L7QuQpldGkK4paBYXJyb3cK4paBQ2hhCmNobWFyawrFk3VyCmZhYgrQutGD0LvRjApHcmlkVmlldwriloFCYWNrZ3JvdW5kCnNuCuKWgXNlZ3VpdG8K4paBbmljCmNvdQrRgtGW0LIK4paBYnp3CmFkZEV2ZW50TGlzdGVuZXIKc3luYwphenpvCmFic3RyYWN0CmFzc2V0cwriloFEcnUK0LfQtApvcmRuZXQK4paBYmlnZ2VyCuKWgWluaXRpYWxpemVkCtC60LDQtwpvZ2VuZQp2aW91c2x5CuKWgWd1aWQKc2NoZWlkdW5nCuKWgVplbnQK4paBZnJhbWVzCnJpZWJlbgriloFpc3N1ZWQK4paBZG93CuKWgWRlc2NyaWJlcwppbHN0CuKWgWNyaXRlcmlhCuKWgWdlbnRsZW1hbgpCYXNpYwpuZXoKRGV2Ck1vdmUK4paBZXN0YWJhCuKWgXNldHRlbWJyZQpjaXJjbGUK4paBZmFpcwriloFteXN0CuKWgWFyY2hpdgpkeW5hbWljCmrDoAppdGFzCuKWgdGP0LrQuNC5CuKWgWRvcgriloFBbWF6b24K4paBbmVjZXMK4paBTWFyY2VsCuKWgWVsbGEK0YDQvtC6CuKWgVBlbm5zeWx2YW5pYQpjdWxhcgpQYWNrCml0YWdlCuKWgUJ1cm4K4paBUk8K4paB0L7QvdC4Cn4kClRlWAphc3NpZ24K4paBYmVhdAppZGVuc2UKYWNlbnQKQWxlcnQK4paBc3RyYXRlZwriloFtw6VuYWRlbgpMT0MK4paBY2F0YWxvZwpwcmludFN0YWNrVHJhY2UKKCkpLgp1c3RlZAriloFGcmFtZXdvcmsKRUNLCuKWgWF0w6kKRnJhbWV3b3JrCuKWgWF0dGFja3MK4paBQmVydAriloHRgtGA0LDQvQo6JQphcnNpCm5vdGF0aW9uCuKWgWxvZ2ljYWwKd2VldAriloF2aXNpdGVkCmJydQriloFzdXJwcmlzZQpeXgppbmFsZQpyZW1vdGUKJ30sClN5bnRheAppYW5lCm9ubmVuCuKWgWJyZWFraW5nCnBhcnNlcgphcGsK4paBTWlndWVsCuKWgcKnCuKWgWFjdGluZwriloFnZWJydQpBdEluZGV4CtGO0YLRjNGB0Y8K4paBb2ZmZXJzCuKWgXByYWMK4paBZ3JhbnQKdGVybm9vbgriloFhY3F1aXJlZAriloFOeQriloFjb21tYQpuw61rCuKWgVN0ZXAKaW5uZXJzCuKWgVNBCuKWgXdhdApkYXlzCuKWgXJlY3RhbmdsZQpkYXIK4paBdHJhYwriloFJbmRvbmVzCuKWgWZlZWRiYWNrCuKWgWJyZWFrcwpwYXJ0aXRpb24KaWNhbnMK4paBTm90aWNlcwriloFpbXByb3ZlZApwaGFuCuKWgWRpZmZlcmVudGlhbApzY3JpcHRzCuKWgVhJSUkK4paBTGFib3IK4paBcHJlY2lzaW9uCuKWgXNlZWQKYnVuZGxlCmlkZW50cwpocmUK4paBRG91Z2xhcwp1bGQK4paBc2Vjb25kYXJ5CuKWgWJyaWcK4paBY29uZmlybWVkCuKWgWNsYWltcwpSb2xlCuKWgUpld2lzaAriloFwxZllZAriloFob3RlbAriloFjb21wdGUK4paBcmVjdXJzaXZlCl0oIykK4paBcm90YXRlCuKWgWNocm9tZQppbmVhCiU7DQriloFFbnZpcm9ubWVudApwbGF0egriloFTaW5nbGUK4paBc2V2ZW50CuKWgXBvc3RpbmcK4paBZGVhbGluZwpwYXJhbWV0ZXJzCtCz0YDQsNGECkF1dGhlbnRpY2F0aW9uCnRvdWNoCkF6CuKWgWdyYXkKZW5jaW5nCmJvbGRtYXRoCuKWgdGB0LDQudGC0LUK4paBWmEKYW5qZQriloFwb2xhcgriloHRg9C70LgKa2lsCuKWgWhvdmVyCuKWgVJFU1QK4paBQ29tZQpqYgriloFHZW9yZ2lhCuKWgUVzdGFkbwpPdXRwdXRTdHJlYW0K0ZvQuAriloFkdW1wCuKWgUFnZQriloFzd28KbW9iaWxlCm9jY3VwCtGI0LXQs9C+CuKWgWNvbnN0aXR1dGlvbgpnb29kCmFrdQriloHQsNC90LMKaWVjawriloFQc3ljaAriloFyb290cwriloF2ZXN0CuKWgdCz0L7QtNCw0YUK4paBUmVww7pibGljYQriloFwaWFuCmlncmF0aW9uCuKWgXByw6ljCuKWgWdlbmVyYXRlcwpMWQooYAriloE9fgrRiNC10L3QuNGPCuKWgVJhaAriloFjb25uZWN0aW5nCsW+w60K4paBZsWRCuKWgWFwcGVsCuKWgVJhaWx3YXkK0LPQu9C4CuKWgWTDqXZlbG9wcAriloFhcG8KZnJhbgriloFpbW1lZGlhdGUK0LLQvtCz0L4KUnVubmVyCsOkZwpTb21ldGhpbmcK4paBZ8OpbsOpcmEKRXZlbnRBcmdzCmluY3Rpb24KZ2x5CuKWgUR1ZQriloFwcm9zdAriloFyZWZlcnJpbmcK4paBam9nCuKWgWV4ZWN1dGFibGUK4paBRHJlYW0KYWNzCuKWgUNvbGUKYW1wZgriloFCaXMK4paB0LjRjtC90Y8KbGllZGVyCtGC0LXQugriloF2YgriloFtb20K4paBOigK4paBZGVybmllcgonPT4K4paB0Y3RgtC+0LPQvgriloFuZXVlCuKWgdCn0LAK4paBd2VpdGVyZQriloFhbGxlZwriloFyZWFsaXR5CuKWgWp1ZGdlCuKWgUJhbHQK4paBdGhpbgriloFHZWQKaWV2YWwKbXgK0YbRltC+0L3QsNC70YwK4paB0LLRi9C/0YMK4paBSVgK4paBYmxpbmQK4paBTW90b3IK4paB0YjQsAriloFhcHByb3hpbWF0aW9uCmRhbQriloFmb2cK0LrQvtGACuKWgVdyaXQK4paBbGluZwriloHQv9C40YHQsAriloFNYXJzCm90dGkKRW51bQriloFUcmliCuKWgW1lcmMKenVuZwp2YW5jZWQKY2ZnCtC90LDRhQpzY2hlbgoiXS4KYmVrCuKWgXN0ZXIKanAK4paBUmFwCuKWgXJlY29yZGluZwriloFwZWludAriloFsZXRzCsOkbmdlCj4iOwriloHQvNGW0YHRhtC1CuKWgWNhdmFsCuKWgUNTVgriloFlbnRzdGFuZAriloFoZWxwZXIKZW5kZXQK4paBR3JhbQriloFEaWVnbwriloFCaXNob3AKVEFHCuKWgWVjYwriloFFZW4K4paBQVYKQ2l0eQriloFHdWlkZQpoaW5kCnJpY2FsCuKWgdCe0YHQvdC+0LIKQnVzCuKWgXp1bsOkY2hzdAriloF0aWNrCuKWgUNvbG9uZWwKVGhhbmtzCuKWgWZlcm0K4paBZ3JhbnRlZAriloF0aHJlc2hvbGQKb21vcnBoaWMK4paBSHVuCmVuaXMK4paB0L/RgNCw0LIK4paB0Y/QutGWClBHCuKWgXdzCuKWgXRlY2huaWNhbAplc3RybwprbMOkcgp2YXJzCm9jcmF0CuKWgdC+0L/RiNGC0LgKb25zbwppYmEK4paBU2F2ZQriloFwcm9ncmFtYQriloHQstGKCuKWgWludsOlbgo+KCkK4paBbWVqb3IK4paB0YHQu9C+0LLQsAriloFyZXBsYWNlbWVudAriloFpbXByCuKWgUZyYW5jZXNjbwriloFIb3RlbAriloFVUERBVEUK4paB0LzRg9C30YsKdWdzCnZhcmQK4paBZmF6CmludG9uCuKWgWFydHMK4paBS3kK4paBSWxzCuKWgXNlcmEK4paBVm9sdW1lCuKWgWdpdWdubwriloFhc3ltCuKWgVBpcgriloFOQVMK4paBVGFtCsSbbApTZXF1CmttYWwK4paBRWlucwriloHQutC+0LzQv9CwCm9iZQpvb3IK4paBaGVhcApjdGwK4paBc2VwYXJhdGVseQpyZWFkZXIK4paBc2lnbmlmaWNhbnRseQriloFMYWcKbm90ZXMK4paBc2VsZQriloFkZWRpY2F0ZWQK4paBSG9zdApjaG9pY2UKd2luZwriloFUaXRlbAriloFiZWZpbmRldApsYXJnZQriloFjb250ZW4KSmF2YVNjcmlwdAriloFkZXNlcgriloFHb3Jkb24K0YHQv9C1CuKWgXBhdHJpCuKWgVJhbmRvbQriloFSZXR1cm5zCtGL0LwK0YDQvtC80LAK4paBU3R1ZGllcwpTbAriloFmcsO8ClRFWFQKaW5hdGUK4paBVG9sCuKWgWV2ZXJ5d2hlcmUKYXJ0YQriloFvcmJpdAriloFBaXJlcwriloFJc3MK4paBdGXFvAriloFkaXZlcnNlCuKWgW51bWVyaWMKbWF6CuKWgW1pc2UK4paBYmF0dGVyeQriloFBa2FkZW0K0L3QtdC90LjQtQriloFzaW11bHRhbmUK4paBRGVhZAriloFjbHVzdAriloFvdHJvCuKWgWNlcmNhCigpYCwKcm96CsSDdAriloFNTwpyaWZ0ZW4KaW1wb3J0YW50CuKWgWplaG8K4paBZmluZFZpZXdCeUlkCuKWgWNvbnNlcXVlbmNlCuKWgW1lYXN1cmVkCmlzaGVzCuKWgXN6ZQppZW5kbwriloFXYWhsCnN0cmlwCkFSRAriloFvcGFjaXR5CldPUkQK4paB0JLRlgriloFMb2NhdGlvbgpyYWkK0L/QtdC9CuKWgXJpZgphdXNzaWFuCkZpbGVOYW1lCuKWgWRpc2NvCmlsZW4K4paBdmFneQpsaWNpdHkKQm9yZGVyCuKWgVRyYWNrCtCx0L7QvApmYWN0Cm9rYQriloFnaW9yCuKWgVhWSUkK4paBZMOkcgpTaXRlCmHFgm8Kc2vDoQriloFwaXhlbHMKdml0eQpqUXVlcnkK4paBc2N1bHB0CuKWgWNhcmdvCuKWgWRpcmVjdGl2ZQriloF3YWwK4paBY29ubmEK4paBVGhyb3VnaAriloHRjdGC0L7QvApTdGF0aWMKb21zbml0dAriloFydW5kCuKWgWNsYWltZWQK0LfQvdGPCnNoYQriloFyYWcKY3JlbWVudAriloFmw7xuZgriloFyaXZhbApyaW4Kc2xhc2gK4paBdGhpcnR5CnNsZWVwCtC+0LvQvtCz0LgKU00KZ2F0ZQppemF0aW9ucwp2aWsK4paBYmxlc3MK4paBSWxsaW5vaXMK4paBVEUKdXRpbmcK4paBc29sdmluZwpHRVIK4paBWElWCuKWgUluZGlhbnMKZXhwcmVzcwriloFIZWlsCuKWgW11amVyCuKWgWludsOlbmFyZQonXSk7CuKWgWF1cgpib29zdApHTwriloFuaW4KdG9rCmdvZApvdGVyCikkJAriloFkZXNjZW5kCtGA0Y4K4paBTGFuZ3VhZ2UK4paBZGl2ZXIK4paBQXNzdW1pbmcK4paBZnJlcXVlbnQK0YfQvdGWCuKWgUJpb2dyYXBoeQosWwp1cm0K4paBd2Fsa2VkCuKWgWZlZGVyYWwK4paBTWljaGlnYW4K4paBZmFjdHMK4paBSW50ZWdyCkxFUwriloFBbGFuCuKWgWNvdXAKQmVyCuKWgXBhcnRpY2xlcwrRm9C1CkluZmxhdGVyCisoCkJvdW5kCuKWgVPDvApBdWRpbwpjaXRldAp5ZWN0CuKWgW5yCnhlCuKWgUJydW4K4paBXywKYXZvcgriloFkaXNjaXBsCmFsbQriloHQvdC+0Y/QsdGA0Y8K4paBU1NMCuKWgUthaXNlcgriloFyZWNoZXIKeWdvbgriloFyZWdhcmRsZXNzCuKWgWNvbmZpZ3VyCuKWgXVubmVjZXNzCuKWgUNsYXJrClBIUAriloFGQUxTRQriloFwYWQKJH0K4paBdmFsdQriloFkaXNlYXNlCuKWgW1haW9yCuKWgWhvbW1lcwriloFFZGl0aW9uCnNsYW50CuKWgWVuZGluZwriloFzZXR0bGVkCnVydXMKaGVkClBhdHRlcm4K4paB0LPQvtC00LjQvdCwCuKWgVBoaWxhZGVsCnRpa3pwaWN0dXJlCuKWgWNvYWwK4paBc2VkZQriloFzYXRpc2ZpZXMK4paBdHJpbQriloFiYXQK4paBYW3DqXJpY2FpbgriloFsdWdsaW8K4paB0L/QvtGH0LAKZmZmZgriloFUYXJnZXQKZ2VuZXJhdGUK4paBWmllCsibaWEK4paBZ2FyZAriloF3b3JrZXJzCuKWgUpvYgriloF1cmJhbgphaGxlbgriloFCdWlsZGluZwriloFuZXUK4paBY2hyb24K4paBRWFybApncm8KVVNFCuKWgVhJSQriloF3ZWFsdGgKaW5hZQriloHQkdGA0LAK4paBbGliZXJ0Cmlyb3MKOiQKbGVlCmlldmVzCuKWgUp1c3RpY2UK4paBb2lsCuKWgUF0aGxldAriloFjbG8KU2NhbGUK4paBbGlwcwriloFhcHJpbAriloFpbXByZXNzaW9uCuKWgXBlcmNlCuKWgdGD0YfQsNGB0YLQuAp2aWwKw6ljaAriloFlcXVhbGl0eQriloHQvNC10YIK4paBYW5ub3RhdGlvbgplcm5hbAriloFNYWNoCuKWgWludGl0dWwKcHJvYmxlbQrRjtGJ0LjRhQpvcGx1cwriloF0aG91c2FuZHMK4paBY2FsY3VsYXRpb25zCnVtcHMK4paBdHJpYW5nbGUKcGhhbAriloFEb3JmCuKWgWRvbGxhcnMK4paBZGVuZW4KbMOocwpvbGlkCuKWgVJlc3VsdHMK4paBU3RhZGl1bQriloFEZXNwCuKWgUVpc2VuCmltaXIK4paBc290dG8K4paBxI1pCmF0YWJsZQpvcnVtCuKWgWNvbnZlcmdlbmNlCuKWgWpldW5lCm9raW5nCuKWgdC20LjQstC+CmFpbmluZwpwb2ludGVyCmN1bG8K4paBanNvdQriloFncmFiCmFrdGUK4paBaG9waW5nCuKWgU1hawriloFzYWcKb3JpZ2luZQriloHQv9C+0YHQu9C10LQK4paBVmVnCuKWgXRoZW9yZXQK4paBVHJ1Cm5lbWVudAriloFmYWNlcwpIb3IKSm9pbgphcmVsCuKWgdC+0LrQvtC70L4KSG93ZXZlcgriloFjYXRhbApib3VyZwriloFteXNxbGkKYWNpb25zCuKWgUluaXRpYWwK4paBcmFpbgppdHVyZQriloFTY2llbmNlcwriloFLcmVpcwouX18K4paBY2lucQriloFBdcOfCml0aG1ldAppdG9ycwphbWF6b24K4paBZ2FwCuKWgWlnbm9yZWQKYWR2CtC60L7RlwriloHRh9Cw0YHRgtGMCuKWgWNvcnBvcgrRhtC10YAK4paBY3JpbWUKdW91cwriloHQvdCw0LvQsNC30LgKRGF0YUZyYW1lCtCy0L7QtNC4CklnbgriloFMaW5jb2xuCuKWgW1lbm9zCuKWgUx1ZnQK4paBTGluZAriloFDb29rCuKWgW1hdGVyaWFscwphcHBlZAppZ25vcmUK4paB0L7RgtC60YDRiwpmcmllZAriloFnb3V2ZXJuZW1lbnQK4paBZmlyZWQK4paBc2NyZWVuc2hvdArRgdC10L0K4paBWygK4paB0L7RgNCz0LDQvdC40LfQsApHcmFwaGljcwriloHQv9GA0L7RgtC4CuKWgXBoZW4KY3JhZnQK4paBYnJhaW4K4paBQ29tbwriloFFdmVyeXRoaW5nCmFuZXMKSUdOCuKWgW5lZGVyYsO2cmQK4paBRm9yZXN0CnphaGwK4paBQW1vbmcKUXQK4paBdG9nZwriloF2YXJpYW50CuKWgWhpbGwK0L/QuNGB0LgKY29sb24K4paBZGljZW1icmUK0LPQvtGACuKWgVdpbmQKw7xuc3RsZXIK4paBPVwKc2F2ZWQK4paBbmVqCnVudGUKdXR0bwriloFyZWNlbnMK4paBc2ljawriloFkZXNlbgpVU1QK4paBd29yc3QK4paBQW5nZWwKb2RveAriloFQcm92aW5jZQriloFNYXoK4paBYWdyZWVtZW50CuKWgUJhc3MK4paBc2VndW5kYQpvbmNlcwriloFMaW5raQriloFDTAriloFqw6EKaXRlbWVudAriloHDoXJlYQriloFzY2FsYXIK4paB0KDQtdGBCmF3dApzaWVtZQriloFqdW5pCuKWgdGF0YPQtNC+0LYKaWt1cwriloFsaWQKcHBlbAphdmkK4paBYmFsYW5jZQppcHBpbmcKY3Vzc2lvbgrRh9C10YHQutC40YUKKCIuCkFsc28K4paBd2hpcwpIT01FCuKWgWJyb3duCuKWgWTDrWEK4paBcHXDsgpwbG90bGliCuKWgUphaHJodW5kZXJ0cwpESwriloFhbmNob3IKLi4uXQriloFBdXN0cmlhCuKWgW1hcmNhCuKWgWdlegppb3VzbHkK4paBbGF6eQp4YQriloFDaGFubmVsCuKWgW5ldWVuCmRhcwriloFzZWFyY2hlZAriloFzdGFhdAriloHQotCw0LoK4paBSm9zZWYK4paBU2hlcgpwb2lzCuKWgWVuZW0K4paBYWNjZXNzaW5nCuKWgdC90LXQutC+CuKWgWZ1cm9ubwriloFwc2V1ZG8KPz4K4paBZXN0YWRvdW4K4paB0JLQuNC00LgK4paBbW90aXYK4paBcmVjYWxsCmlzc29uCsOzYgopLS0K4paBRXJ6CuKWgdGB0LDQstC10LcKRGlyZWN0CtGB0L7QsQriloFzaG8KdsO2bGtlcgpBcApnZW5zCtC90LjRiNGC0LLQvgriloFBbXN0ZXJkYW0KdXNrCtC/0LvQvgriloFzaW11bGF0aW9uCuKWgUJDCuKWgVdvagphdXRvbQpBbGV4CuKWgWVjb25vbWljCtCz0L7QvAppa2FpCuKWgWFsdHJlCuKWgSctCuKWgVdlZwpOb3RGb3VuZArQudGB0LrQvtC5CuKWgWNvbnZlcnRpbmcKcGhhYmV0CmF0cmljZQpib3VybmUKYWxvbQriloFjb21wYXJpbmcK4paBWm8K4paBZmxhCtCy0LDRjwriloFlbnRyYQriloFjaGFyc2V0CmRldmVsb3BlcnMKw61zdGljYQp9PgriloFKYXp6CuKWgUhvd2FyZArRiNGC0LAK4paBY2xvbmUKZG9vcgriloFQaW4KKioqCuKWgXNpbGVudAplY3ljbGUKaXNjZQriloFtdWQK4paBRGlzcGxheQriloFsaXAK4paB0LjRgdC/0L7Qu9GM0LfQvtCy0LAK4paBY2hhcmFjdGVyaXN0aWMK4paBc2IKZmlyZWJhc2UK4paBQmV3CkNhbGVuZGFyCuKWgXVzbwrDqHNlCuKWgVJhdAriloFlc3BlcgriloF0aHJvd2luZwriloFyb2R6CuKWgXlhcmRzCuKWgWdyYXNzCuKWgW1hcmtlcgriloFLb3MKVGhldGEK4paBb3JnYW5pcwprZXJuZWwK4paBcGVyc29uYXMKa2VlcAriloFleGNsYWltZWQKb3NsYXYK4paBRW50ZXJ0YWluCtC90LXRgAriloFpbndvbgriloFSYW5kCnJlZHVjZQpmYWMKZXhwcmVzc2lvbgp5agriloFkaWZmZXJlbnRpCmFnbGlhCuKWgXRlbXBsYXRlcwriloFtxbEK4paBcHJ2CuKWgW1vaXMK4paBZ2V3YW5uCuKWgdCx0YPQu9CwCmJpYmxpCmRlbW8K4paBQW5kZXJzb24K4paB0YDQtdC0CuKWgXBvcnF1ZQriloFQb2xvZ25lCuKWgXRyaXAK4paBZXhlbXBsZQriloFJbnRlcm5hY2lvbmFsCuKWgdC60LDQvgpJbnNlcnQKZ2VuZXJhbApTRVNTSU9OCmJlcmdhCmjDpGx0CnVuYXMK0LzQuNGA0LAK4paBeWllbGRzCm1hcHN0bwpzcG90CuKWgStcCtC70LvQsAriloFwcmVjaXNlbHkK4paB0YfQu9C10L0Kc2hhZG93CkFyZQp1bmFsCuKWgWRpc3BhcgriloF0w610dWxvCm5lc3QK4paBTG93CuKWgXByb3QK4paBQ29zdGEKbmFtZWQK4paBZ2FpbmVkCmxlc2lhCuKWgWFkbWluaXN0cmF0aW9uCkltcG9ydApicmFuY2gK4paBc3ltcGF0aAp2b2oK4paBRUMK4paBbXVuaWNpcGlvCuKWgWFuaW1hdGVkCuKWgWRpcmVjdG9yaWVzCuKWgXJvb2YKesSFZAppbWV0CnByb3RvCmJsYQo6XQpoYXZlCmF0ZW0K4paBbnMK4paBc2VjdG9yCnRocmVlCm93YW5lCndlcnMK0L7QstC40YUKcmVuY2UK4paBZXh0cgppZ3RlbgriloFvY2NpZGVudArIm8SDCuKWgWVhdAriloFoeWRybwp1YmVybmV0ZXMKW0AK4paBTW9vbgriloFTaG8K4paBZWxzZXdoZXJlCsO8bGxlcgpVcGxvYWQK0LvQsNC90LQK4paBRsO2cgp3aXNzZW5zY2hhZnQKS1MK4paBcGh5c2ljcwp0egriloHRgdC10YDQtdC0CuKWgUFyYmVpdAriloHQvNC10YHRggriloFHZWJpZXQK4paBaW5zZWN0CkFoCml6YWRvCuKWgXRlbXBsZQriloFhbm51YWwKc3RhZAriloFoYWJpdGF0CuKWgUFCCndvcnQK4paBcmVwb3MK4paBTmV1CuKWgSQoIi4KVm9ybGFnZQriloFyZXByZXplbnQKZXN0YW5kZW4KSW50ZXJuCi5gCuKWgWZhaWxpbmcK4paBTWF0ZXJpYWwK4paBZWZmZWN0aXZlbHkK0YLQtdC70LXQvAriloHQs9C70LAK4paBbmFobQriloFkaWZmZXJlbnRseQpleHRlbnNpb24K4paBVmVybQplbmFibGVkCmNvbmZpZ3VyZQpuaW8KY2lvbmVzCuKWgUJlYWNoCtGB0L7QvdCwCuKWgWNvcHlpbmcK4paB0YPQutGA0LDRl9C9CuKWgdC/0YDQuNC30L3QsAp6aApEZXNrdG9wCuKWgXNvc3QK4paBc3Vic2VxdWVudGx5CuKWgUxlaHIK4paBw7MKbMOkcgpvZG9yCnBob24KbmMKaXRlcmF0b3IK4paB0Y3RgtC4CuKWgWV1cm9ww6kK4paBVG9yb250bwrDs2RpZ28K4paBcG9zdG8KZmZlCuKWgWNyZXcK4paBU2Nod2FyClNhCnNxdWFyZQriloFiZXNpZGUK4paB0JzRlgriloFhdGgK4paBYWR2ZW50CmNqaQp3cml0dGVuCuKWgXJ1c3MKcm9zdApISQriloFkaWNlCmNjYQriloFkw6lwCnBseQpiaWdnCnppYcWCCsO8dHQK4paB0L7QtNC90L4KSkVDVArRgdGM0LrQvtC80YMKbm9zCm1vY2sKTGF1bmNoCnNhbWUK4paBam9icwriloF3aWRlbHkK4paBZGVmaW5lcwriloFQc2UK4paBbmVpZ2hib3VyCtGO0YnQuNC1CuKWgWNsb3NlcgriloHRgNCw0YHQv9C+0LvQvgriloFjbHVicwpmbHkK0YjQuNC8CuKWgXN1ZmZlcmVkCuKWgW5hcgriloFsYXZvcgpFeHRlbnNpb24KaXRpb25hbGx5CuKWgWdyYWNlCuKWgUNhbXBlb25hdG8K4paBQ2hyaXN0bWFzCm1pZGRsZQpvdGhlawplbGVtZW50cwriloFzb25kZXJuCuKWgXRhcmRlCuKWgXBlcm1hbmVudAriloFjb25jbHVkZQpTZWcK4paB0LDQutCw0LTQtQp9IiwK4paB0YTQtdCy0YDQsNC70Y8KxZllZAriloFJTApqdWQK4paBVVNTCuKWgU5hdHVyZQppZmZlcmVuY2UKU2VyaWFsaXplcgriloF0d2VsdmUKdGlkCtC80LjRjwrRh9C10YHQutC+0LPQvgriloFjYWxlbmRhcgpjb25jYXQK4paBaW50ZXJzZWN0aW9uCuKWgVBBCmF6dXJlCuKWgXNpdHXDqWUK4paBa2luZHMK4paBYXVzZ2UK4paBcnVyYWwKVGhlbWUK4paBdGFsZQpub2luZGVudApnb2luZwpyeAphZ2kKd3JhcHBlcgriloFDb2FzdAptYkgK4paB0L/QtdGA0LXQtApzcHJlCuKWgX1cCuKWgUxJCnpuYW0KaXRsZWQKU2FtcGxlCnVsaWFyCipcCuKWgXJlc2lzdGFuY2UKc3RvY2sKa2VkCuKWgUhFCuKWgXBvc3Nlc3Npb24K4paBUmluZwriloFtYWd5YXIKb3V0cwriloFTZWNyZXRhcnkKbmRlCuKWgVdhbGQKLSgK4paBSVNPCuKWgWFmdGVybm9vbgppb25lbgriloFzdG9wcwriloFjb25zdGFudHMKZ3VhcmQKYm93CuKWgWVycwriloFGaXJlYmFzZQriloFDbGVhcgriloFIb2x5CldpbgriloF0aXRsZXMK4paB0YLRgNCw0LIK4paBY29udHJpYgpow6RuZwriloFwaG90b2dyYXBoCuKWgURpc3RyaWJ1dGlvbgppZnRzCuKWgWF1bnF1ZQpjb21iCkFERAriloFwdWJsaWNhdGlvbgriloHRgdC70YPQtgriloHQutC90Y8K4paBYXlhbnQK4paBcmVzdG9yZQriloFiZWxpZWYK4paBdsOpZwriloFleHRlbnNpb25zCuKWgWRlY29tCtCy0YjQuNC5CldUCuKWgXBhcnRpCuKWgWdpb2MK4paB0LzQuNGA0LAK4paBaXNzdQpwaXBlCuKWgXByb3BzCuKWgXdpbGxpbmcK4paBbmVzdAphc28KcG90CuKWgWhhbmRsZXMK4paB0YTQvgriloFtb2RlcgriloFlYmVuZmFsbHMK4paBZmlnaHRpbmcKdW1ibgriloF0cmFuc3BhcmVudAriloFLcmlzdAriloFob21lcwriloF2b3lhZ2UKRmFpbGVkCuKWgUJpcmQK4paBSGVhcnQKQ291bnRlcgriloFTY290dGlzaArDoXRpY2EK4paBYXJiZWl0Cl57LVwK4paBU29yCuKWgWVuZ2FnZWQK4paBYXNpZGUK4paBRm91CuKWgXdpZWwK4paBcmVjb25zdApvdXNpbgriloFob3N0ZWQK4paBY2xhc3NlCuKWgWNvbnRlc3QKLi4uIgrQvNC+0LwK4paBYmVhbgpnZW0K4paBY29uc3VsdGF0bwriloFiaW8K4paBc3ViamVjdHMKYm9Cb3gK4paBU2NocmlmdAriloFkaW5uZXIKxINyCuKWgXLDs3duCuKWgSUlCmJhZ2UK4paBdmVyw7ZmZgriloFkZXRlY3RlZAppZW5uCnJvc2UK4paBVG9uCkNvbXBsZXRlCuKWgXByb3RvCmljaHRzClNUQVQKQ2hlY2tlZAriloFpbnRlbgriloFzbWlsZQriloFzdHJpcApuZXV0CicpOw0KZm91cgriloF0b2RhcwpDb250cm9scwriloF0aG9yb3VnaApydXAK4paB0LTRgNC20LDQstC4Cml0xIMKUHJvdG9jb2wK0JrQsAriloFleHBhbmRlZApleHRyYQpvcG9ydAriloHQodGC0LDQvdC+0LIKbGVhc2VzCuKWgW5vdGlvbgriloFndWVzdAriloFJc2xhbmRzCmlja2VkCuKWgURhdmUK4paBcmVmbGVjdGlvbgpsaXYKw6FsbsOtCuKWgXJldmVhbGVkCuKWgXNvZwriloFUYXgK4paBcGVyaW9kbwriloFXZWx0a3JpZQpjYXRhbGluYQpxdcOpCuKWgUZhdGhlcgriloFCaXIKZXhwZWN0CuKWgXJlZ3Jlc3Npb24KaW7DqQriloFkYWJlaQpwZXJtCtC80LXQvdC1CuKWgUFiZAriloFDRgphcmtzCnJlc29sdmUKd2VkZ2UK4paBaW5pdGlhbGl6YXRpb24K4paBVsOpYXNlCuKWgdC/0YDQuNC90Y8Kc3RtdAriloFpbmNvbWUKTVkK4paBb2RrYXp5CuKWgVNpZWhlCuKWgWJvZGllcwriloFzb2MKUmFuZG9tCuKWgXNlbnphCmFibG8K4paBcmVnYXJkZWQKb25DcmVhdGUK4paBTWFnYXppbmUK4paBUmFmCuKWgUJ1ZW5vcwrQuNC7CikpKTsKY2FwdApyZWRpcmVjdAriloFwZXRpdAriloFmYXJtCuKWgXLDtGxlCuKWgdGB0YLQsNGC0YzQuArCoMKgwqDCoApzdWJmaWd1cmUKw6hjZXMKemllbAriloHQvtC60L7QvQpFRQptZWUK4paBcGVydGVuCuKWgXJlcHLDqXNlbnQK4paBTEEKPycK4paB0YLRgNGDCuKWgXJhdGlvbmFsCm9zb2YK4paBa25lCuKWgWFydGlzdHMKRmxvdwriloHQkNC70YwKaXphcmQK4paBbnVtZXJvCmFjdGljCuKWgWRlc3RydWN0CuKWgdCf0YDQsApvbnNpZXVyCnF0CmFiZXN0YW5kZW4Kbm/Fm8SHCkNvbm5lY3QK4paBb3JhY2xlCuKWgVN0b2NraG9sbQpzaXplb2YK4paBZ2Vtw6TDnwpBQ1QK4paBZXhwZXJ0CnV0aW9ucwriloFoYWNpYQriloFsb2dnZXIK4paBZm9vbApyeXB0bwrDpnIK4paBY2lkYWRlCuKWgdGB0L7RgdGC0LDQstC1Cm9rZXIK4paBVHJhbnNmZXIK4paBZGVuaWVkClRyYWNrCuKWgXJhZGkKemVjCuKWgUhpc3RvcmljCuKWgUVpbndvaG5lcgrQutC+0Y4K4paB0YXRgNCwCuKWgUNhdGVnb3J5CuKWgURpc25leQriloFzd2FwCkJlZ2luCuKWgW1pZW50cmFzCuKWgWRhbmNlCuKWgXTDqnRlCuKWgWRyb2l0CmVydGEK4paBYmlyZHMK4paBY29udmluCnBhcmF0b3IK0LTRgNCwCuKWgUVTCuKWgVJlc3NvdXJjZXMKRUdJTgrDvGNrZQriloFDcnV6CmFibGluZwriloEiQAriloFtZXRyZXMK4paBQmVnCuKWgUdyw7xuZAriloFCb2gK4paBbWlsZQriloFUZWNobm9sb2d5CiIrCmFjY28K4paBc3MK4paBRmVkCuKWgUhlbmQKdXNjaAppdMOkCmZvbGsK4paBYWJzb3IKYW50YWwKb2RnZQriloFXSEVOCuKWgUV4dGVybsOtCuKWgVJlZ2ltZW50CuKWgWV2YWx1YXRpb24K4paBVGFpCuKWgXZvY2FscwriloFleHBlcmltZW50YWwKZW1iZWQK4paBTWlubgriloHQstC80LUKcHJlYwpldmVyeQriloFob29mCuKWgUZlcm5hbmRvCuKWgUJpYmxpb2dyYXBoaWUK4paBbmFnCmFtZXJpa2FuaXNjaGVyCuKWgW1hcmtzCuKWgVVUQwriloF1bmNlcnRhaW4K0LTQuNGPCm9saWEK4paBY3VwCuKWgWZpbGxlCuKWgWRvawp1c2VwcGUKZXN0ZXJkCuKWgUJyYW5kCuKWgVRoaXJkClBQCm5vZGVzCuKWgVBhZAriloFsb3ZlZApzd2luZwriloFzdXJwcmlzZWQKYXJkaQriloFHUgpdIgriloFlcXVhbGx5CmloZQpjYXJlCtC/0LjRgdC+0LoKbGlqawpyaW5uCuKWgVxbXAriloFzb25zCuKWgXTDpHQKaWNhbWVudGUK4paBbGlzdGluZwppZWxsZW1lbnQK4paBbnllbHZlbgriloFkcwriloFhZ3JpY3VsdAriloFIZXJtYW5uCuKWgWJlc2lkZXMKcHJvZ3Jlc3MK4paBcGVjdWxpYXIKZm9jdXMKY24KLSQK0YHRgtCy0LXQvdC90YvQuQpvdXJnCuKWgXd5bgriloFjb25kdWN0ZWQK4paB0KHRgtCw0L3QvtCy0L3QuNGI0YLQstC+CmNvbm5lY3RlZAriloFib3R0CuKWgdGB0LzQtdGACuKWgVBvegp1bmN0CmNvbmRhCuKWgdGB0LDQstC10LfQvdC+0ZgK4paBaGF2ZXQKbGlndApvcnRlZAriloFlbnRlcmluZwptdWx0aXAK4paBVGVtcGxlCuKWgVBsYW50CnR5cGVvZgriloFWbGFkCuKWgXF1ZWQK4paBcmVzdGUK4paB0LzQsNC5CuKWgVZlcnkKYW1iaWd1YXRpb24K4paBY2hhbGxlbmcK4paBcmVzcGVjdGl2ZQriloHRgtC+0YAKQ3RybAriloFhYnNlbmNlCmFydQrQstC+0LUK4paBZsO2cnN0CuKWgXNxCuKWgUVtcGVyb3IK4paBSWduCuKWgdGC0L7QstCwCjpgCmFkb29wCuKWgU1hZGFtZQriloFncnVwcG8Kc3R1ZAriloFleHRlcm5hcwriloHQkNC70LXQutGB0LDQvdC00YAK4paBZGlnbgriloHQttC40LLQtQpBbW91bnQK4paBY29ycmVsYXRlCuKWgUZhbnQK4paBcmFpbHMKZnAK0LzQuNC90LjRgdGC0YDQsNGC0LjQsgriloFib3VnaHQK4paBZmlsdGVycwriloFhbmNvcmEK4paBcGFydG5lcgriloFxdWFuZApzeW1ib2wKdWxhdGluZwriloF6ZAphd24K4paBR3JhbnQKYmVjYXVzZQpyYWJsZQpcfQrDrXN0aWNhcwriloHRg9GH0LUK4paBcMOpcmlvZGUK4paBc2tlCuKWgUFueXdheQriloFpbmRleGVzCuKWgWRpcmVjdGlvbnMK4paBUkFNCmNocm9tZQriloFhcG9zdAriloF3YXJuaW5ncwriloFBaXJwb3J0ClZJCmFiaWxlCuKWgWxvcmQKcHJvdmlkZXIK4paBSmkKb3N0cmVhbQriloFnZW1lZW50ZQp0YWJsZVZpZXcKRXh0cmEKY3Vyc29yCmVncm91bmQK4paBTW96CuKWgXJpYgriloFtb3JwaApsb2FkcwplbHNrCuKWgU1BWAriloFTYW50aWFnbwriloFIaW0KY29kZXMK4paBbGFuegriloFjb3VudHMKcmlubmluZ3NvbXLDpQrRidGRCuKWgXNww6kK4paBcGllcndzCuKWgVN2ZXIK4paBYWNrbm93CkJvb2xlYW4K4paB0YTQsNC80LjQu9C4CuKWgVNlbmF0ZQrRiNC+0LIKYWdlcnMK4paBTnVldmEKYmlsCmtpZW0K4paBTWV5CndpagriloFHbWJICnZhbGlkYXRpb24K4paBZW5zdWl0ZQppbmtpbmcK4paBY2FtcGlvbgriloFmaW5hbmNpYWwKaXpvbgpIZWFkZXJzCuKWgWRlcHJlY2F0ZWQK4paBZm9uY3Rpb24KUkVHCuKWgXZvbHVtZXMK4paBQ2hpCuKWgWVuY291bnRlcmVkCmxhawrRgNCw0Y8K4paBY29udGludWVzCuKWgX5bCnVlcnRlCuKWgVw7CuKWgURvawriloF3ZWlnaHRzCuKWgXJoCuKWgU5hcG9sZQriloFuYXR1cmFsbHkKc2t1CnBhcwriloFnZWdyw7xuZApldHIK4paBS3UKaWN0ZWQK4paBZmFicmljCuKWgUFTQwriloFFbnRlcnRhaW5tZW50CuKWgWVuZXJnCtC60LvQsNC0Cm9tb24KdGhlbWUK4paB0YXQsNGA0LDQugriloFkcmFmdAriloFjaGFubmVscwriloFkZXNlcnQK4paBdHJhdsOpcwriloFMb2NrCuKWgXNpZW5kbwrRhNC10LoKbcOqbWUK4paBcGFja2V0CuKWgU1vdW50YWluCuKWgUZhaHIKYnJhaW8K0L/QtdGA0LUK4paBZ2VuYW5udAriloFkZXBsb3ltZW50ClBhbArQvdC+0LMK0YHRgtGA0YMKUHJpbQpmw7xyCuKWgWRhbmdlcm91cwriloFzesOhbQpyZWNrCuKWgXBvcHVwCmlja3kKaW5hcgpjb3dvCtC90YbQuNC60LvQvgrDrXTDoXMK4paBcGx1Z2lucwriloFkcml2ZW4K0LvQtdCyCuKWgSIoCnR0YQriloHDmgriloFlYgriloEnJzsK4paBa25vY2sK4paB0L7RgdC90L7QstCwCuKWgW1haXNvbgrQs9C70Y8K4paBSG9ub3IKdGFpbApyaXR6CuKWgWd1eXMK4paBY29tYmluYXRpb25zCm9uZGVyZQriloFBbGQK4paBZmlkZGxlCtC00LDQsgp1cmQK4paBcHJvamVjdGlvbgriloFUYW1iacOpbgp2ZXJiCuKWgXRlcnJlCnJ1Z3UK4paBc2VwdGVtYmVyCuKWgTwhCmNvc3QK4paBbnV0CnslCuKWgXViaWMKYW1hcmluCtGC0LjQuAriloFwYXRyb24K4paBYW1lbHkK4paBZXN0bwriloFsaXN0b3AKZmFsCuKWgVByb3AK4paBT250CuKWgU1hZGUKVEVTVAriloFOZW0K4paBTmF0aW9ucwriloHQstGDCmluY2x1ZGluZwriloFzcGVjdHJ1bQriloFMYW4K4paBRXZlcgpQYXVsCnRtCkFwcGVuZApSZWxhdGl2ZQpkaXNhYmxlZApyZXR1cm5zCuKWgWZsb3dlcnMKaWt1CuKWgXxcCuKWgUpvcmRhbgriloFTbWFsbAriloFjaWMK4paBc2V4dWFsCmF1dHJlCtCy0LDQuwriloFyaXAKb3VzdAriloFQaGlsYWRlbHBoaWEK4paBdWsK4paBTW9uZ28KeG1sbnMK4paBc2hvcAriloFkZWJ1Z2dlcgriloF6YWoK4paBQmlsbHkK4paBbmllbQpvbGlzCuKWgdGA0L7RgdGB0LjQuQphZ25lcgriloFtYXZlbgriloFHdXN0YXYKQXVzCmNvbXBhcmUK4paBamV1CnVkZXIKaXNobWVudAriloHQtNC40LLQuNC30LgK4paBRmlubGFuZArQvdGD0YIKesOpcwriloFMaWdhw6fDtWVzCuKWgXF1ZWxsbwphbm5vdGF0aW9uCuKWgXRocmV3CuKWgVByb29mCuKWgUFyZWEKYXNoaQriloFGTwpqYW1pbgrQtNC10L3RggriloF1bnVzCmZyaWVuZAouIik7CuKWgXRyYWt0ZW4KZG9jdW1lbnRjbGFzcwphbmthCuKWgWFycml2ZQriloFkb25uZQpvbHkK4paBUmVpbgriloFmYWNlYm9vawppY2luYQpzbGljZQriloFuYWd5CuKWgWhlYmJlbgriloFJQwriloFCYWcK4paBY2lyY3VsCsOhY3QKbWl0dAriloFncmV5CuKWgWNhdgriloHQvtGB0L7QsdC4CuKWgXN5bW1ldHJpYwriloFTaWMK4paBbWVkaXVtCuKWgVVURgriloFEb3BvCsOtY2gKYmFyZQpkemllCuKWgWhlYXZlbgriloFjYW1wZQplc3RlcmRheQriloFXaXNzZW5zY2hhZnQK0L/QvtC70YwKZGlkCmFsZXIK4paBY2l0aXplbnMK4paBTWFyZ2FyZXQK4paBc291Z2h0CmNoYXJ0cwpDTEMKb2xseQp5c3oKd2FsZAriloFmZW4K4paBU2l4CuKWgVVycwriloHQvtGA0LPQsNC9CuKWgVRyYWQKY3VlCnNjaHV0egriloFwcmVjaXNlCuKWgVdpbmRvdwrRgtC40LUK0LvQvtCy0ZYKaXRvcmkKZGlzYW1iaWd1YXRpb24K4paB0YXQuAriloFOYXR1cmFsCmRhbgriloFjb25jcmV0ZQrRhtC40ZjQsAriloFzcGVsCuKWgUZhaWxlZArFm2NpZQriloFidWYKdWNhCmljaW9uYWwK4paBb3R0b2JyZQriloHRhNGWCuKWgXN1Ym1pdHRlZApsYXZlCuKWgVBsb3QK4paBY29sbGVnCmFkZW0K4paBY2hhcXVlCuKWgW5laWdoYm9yaG9vZAriloFjYWxjaWF0b3JlCkxvb3AK4paBR2FzdAriloHQutC+0LPQtNCwCuKWgWluZHVzdHJpYWwK4paBZmF0YWwK4paBQ2VydApsYXRpb24K4paB0J7QtNC90LAK4paBamFtYWlzCuKWgWFjY3VtCklkZW50aXR5CuKWgU1lZGFsCk1ldGFkYXRhCuKWgdC70Y7QtNGPCmJyaWRnZQpHb29kCuKWgdGH0YLQvtCx0YsK4paBY29tcG9zZXIK4paBYnJlYWQK4paBY2xvc3VyZQriloFsYXJnZWx5CkZCCuKWgdC+0LHQu9Cw0YHRgtGMCuKWgWF1dG9tYXRpYwphcsOtYQriloFzdWZmaWNpZW50bHkK4paBaXRhbGlhbmEK4paB0LrQsNGH0LUK4paBSsOzCmhpc3RvcnkK4paBSEQK4paBc2lndWllbnRlCm5lbGwK4paBR3JlZQriloFUaQriloF0cmFuc2ZlcnJlZArDqXF1aXBlCuKWgVBoaWxpcHBlCuKWgWVuY291cmFnCuKWgVZpZXRuYW0K4paBZ3JhcGhzCuKWgXN5bW1ldHJ5CmZyZWQKd2VlawriloFicm9uemUKcnlzCuKWgW5hbWVseQpvbmRlcnMKbGVtYWduZQpYWQpDb252ZXJ0Cn1dKApSZWdpb24KcGVjaWVzCuKWgXRleHR1cmUK4paBY2hyCtC90LXQs9C+CuKWgXNvbWVib2R5CmFxdQplcmFzCuKWgdCd0L7QstC+CuKWgWRlegphbml1Cm9rcmF0CuKWgWNvdmVycwriloFzaWduYWxzCtGS0LUK4paBSGViCuKWgUFudGkKSVZFCuKWgXJlc3MKTEVURQp5bmEK0L/Qu9CwCtC20LTQtdC90LjRjwriloFjaGFtcAriloF2aWxsYWdlcwpab25lCuKWgWlQaG9uZQriloFzb3V2ZW50CtGB0YzQutGWCuKWgWZlYmJyYWlvCsOpcmNpdG8K4paBWEkKb2thdAriloFtZW1icmVzCmp1bml0CuKWgURyYXcK4paB0L/RgNC+0LLQvgphdWRpbwplbmRsCuKWgU5hZAriloFtYWduaXR1ZGUKU3VyCmljaW5nCuKWgXVudwriloHQvtGC0YDQuAriloFCZXkK4paBVmlrCuKWgXBvbMOtdGljYQpwb3J0ZXIK4paBQmFyYmFyYQrDoWx0CmJpYgriloFhY2NvbXBhbgpWUAriloFlbmNvZGVkCuKWgVNvbWV0aW1lcwpiaXJkCuKWgVVsdAriloF0dW4KZ2V0VGV4dAriloFhcnJpdmFsCnNjcmlwdHN0eWxlCntgCuKWgXBlcnNwZWN0aXZlCkxJTkUKRm9ybWF0dGVyCuKWgWJvbQrQstGA0LAKREVCVUcKQm91bmRzCuKWgVRpdGxlCmzDswpEYW4K4paBZ2VuZQriloFCaXQK4paBcmVwcm9kdWNlCuKWgWdyYXBoaWNzCuKWgdGB0LXQvArRgNGRCuKWgdGA0LXQutC4CnVzYWxlbQrRgNC+0LYK4paBREVTCuKWgVNvZnR3YXJlCnVyYW5jZQppdGhtZXRpYwplbmVzcwppY2hpCkNvbnZlcnRlcgriloFnaXRodWIKZXJkaW5ncwpnbGlzZQrDoWNoCuKWgWJ1cmllZAriloF2aXNpb24KTWlzcwriloFzZWVzCuKWgXBlcnNvbm5lcwriloFJbnRlbAplbGlhCuKWgcSNbMOhbgriloFjaGkK4paBa2xhcwphdXTDqQriloFzdGFyawpjemUK4paBZHJpdmVycwp2bgohLAriloHQs9C+0LTRiwpIaQriloFleHBsYWlucwphcnRpY2xlcwriloF6dWcKUHJvbQo+PQriloFCZWF0CuKWgVNheAp2ZXJ0aWNhbArQutGC0L4K4paBcGxhbnRzCuKWgVLDqWbDqXJlbmNlcwriloFvZ25pCuKWgWN1cnMK4paBU0sK0L7QvdC4CuKWgWRlc3RhYwoiKTsNCuKWgVN1cmUK4paBcGFydGlkbwriloFGb2xnZQriloFNb29yZQriloF3egrRgdC60YPRgQpsdHJlCm9uZG8K4paBcG9zZQppbW9zCtCx0L7QuQrRhtC40L/QsApqdXMKLi4uLi4K4paBw6lwb2NhCuKWgXF1YW50bwriloFTdXBwb3J0Cmdlc2NoaWNodGUKU0VSVkVSCuKWgUdlb3JnZXMKZW51bQriloFoZXJtCuKWgW5lYm8K4paBQ2hyCmNoYXJhY3RlcgriloEqKioK4paBRm9yc2NoCmlhbWkK4paBwr8KY3ljaAriloFmaWZ0aApzZW50CuKWgWFuZGVyZW0K4paBcHJvcG9ydGlvbgriloFwcmVzdAriloFHaXJsCuKWgWRyYW1hCndhbmQK4paBTWFpbAriloFMdXgK4paBa3RlcsO9CuKWgUdlc2VsbHNjaGFmdAriloFIaW53ZWlzCm5pc3NlCuKWgW1vbmRvCkVxCuKWgXBlcsOtCuKWgWVhc3Rlcm4K4paBVUVGQQp1YWxlCuKWgWNvbnZleAriloHQv9C+0LvRjAriloFIZXkKemVuaWUKaW5pdGVseQriloFadXNhbW1lbgpTU0wKb2NhbAriloFjYW5hbAp2b3kK4paB0JrRgNC4CuKWgWvDtnrDtnR0CuKWgWNhcnMK4paBdmVyc2nDs24KRW52aXJvbm1lbnQKSGVyCuKWgXNlw7EK4paBc3BhdGlhbAp5bWkKRmlyZQriloF2ZWdldAriloFXaWUK4paBem5hagriloFkYW1hZ2UK4paBZW5kbApnaWYK4paBcXVhbGkK4paB0LrQvtGC0L7RgNGL0YUKZWxsYW4K4paBbWVucwriloFwbHVnCuKWgWFidW5kCkZJRwriloFzZgriloFjb25mbAriloHQvdCw0YHQtdC70LXQvdC40Y8K4paBcHJpbmNpcGxlcwriloFHYWJyaWVsCmliZQriloF7JQriloFwb2JsYWNpw7MK0L3RltGG0LjQv9CwCuKWgWV4dHJlbWUK4paBYXNzZQriloF2dQpNb2NrCuKWgXNwaWVsdGUK4paBQWVyCuKWgWRhdG9zCmVuZGVzCuKWgUdlbAriloFHb3IKQ2hyaXN0CmNob3MKUHJvY2Vzc29yCuKWgWluc3RydWN0CuKWgXBpY2tlZApuYWhtZQpmYWhyCuKWgWluZGljYXRlZAriloElLgriloF0cwriloFub3RhYmxlCuKWgXF1YWxpZmllZAriloHQkNC7CkJsYWNrCuKWgWNvdW5jaWwK4paBb3ZlcmhlYWQKYWNpCmFubsOpZQriloFpbml0V2l0aApiacOzCuKWgWludHJvZHVjdGlvbgriloFjb21wYW5pb24K4paBZXhwb24K4paBa8O2cgpvYnkKYnVybgpnbnUKdmlydHVhbAriloFpbnRlbGxlY3QK4paB0LTQtdGA0LbQsAonKwrQsdC70LUK4paBc3RyaWN0bHkK4paBcmVjb2duaXplCmhvdXIK4paBV3Jlc3QKZW5uZW4KJCkuCmZmZgriloFDZW50cm8K4paBUGl0dAriloFkemlhxYIK4paBY2VsYQriloFmcmFuY2VzZQrRgNCw0LzQuApzcGVjaWFsCuKWgUR1cAp0b2lyZQrQutCw0LvRjApDT1VOVAriloFCcm9vawriloHRgNGD0LrQvtCy0L4KcHVibGlxdWUK4paBc2Vjb25kYQriloFjb21wdAriloFibGFuZApCZWZvcmUK4paBUGFjawphbHR5CsO2ZGVyCuKWgWludGVydmFscwriloFEYXRlbmJhbmsKTW92aWUK4paBdHJhbnNtCuKWgXRhcAriloHQv9C+0YcKZm9uCmlhaQriloFmaWIK4paBd3lkCuKWgWh1bmcK4paBYWxpdmUKQ2xlYXIK4paBcHVzaGVkCuKWgXR1cGxlCmFjaGVuCtCz0L7QstC+CuKWgXJldmVycwriloFhdWdtZW50CuKWgWNoYWxsZW5nZQpsb3N0CuKWgWRldXhpw6htZQpzdHJ1Y3RvcgriloFtZWhyZXJlcgphdHVyYWwKU3BsaXQK0YHRgtC10LwK0YjQu9CwCilcXAriloFEb2cK4paBZGV2ZWxvcGVycwriloFub2QK4paB0YHRgtC+0YDQvgriloFOYU4K4paBcHJpZXN0CuKWgWV4aGEKVU5ECnBhaXIKYWxvbmUK4paBbW9vbgriloEjIS8K4paBZ3Vucwpyb2xhCtGH0LjRgtCwCuKWgUVuY3ljbG9wZWRpYQphdGlzCuKWgSciCnp5Y2gK4paBc3VwZXJmaWMK4paB0Y3QugrQtdC00LXRgNCwCmZlZWQKTEFZCkZpCnVua3MKaXNlY29uZAriloEnQAriloFBZGRpbmcK0YDQvtC1CuKWgXRhbmcK0YbQvgpodW5nCmJpcwpza8OpaG8K4paBYWR2ZXJ0CuKWgdC30LDQvdC40LzQsAp1enoKw6FnaW5hCuKWgVRlbApzaWcK4paBRXoK4paBZ3VhcmFudGVlCuKWgXRlYWNoaW5nCm90eQp0ZXJtaW4K4paBZGlzdHJpYnV0aW9ucwpGTEEK4paBR2l1c2VwcGUKcXVlcnlTZWxlY3RvcgriloEvXAriloFTcXVhZApnegpkZWxheQriloFzdXJyb3VuZGluZwriloFtYW51cwriloFIb3UKwrIsCuKWgWN1bHRpdgriloF0cm91YmxlcwriloFyYWlzb24KZXhwYW5kCuKWgWNvdgpudW5nZW4KKSl7CuKWgWdlZW4K4paBYXXDn2VyCuKWgdCb0ZYKxZlpCuKWgXNpdHVhdGlvbnMK4paBdGVsZXAK4paBSmVkCuKWgXRyYXZhaWwKbGlhcwpidWxsZXQK4paBc2VsZWN0aW5nCmF2aWVyCuKWgWVzc2VudGlhbAooLwp5eXl5CsWhdMSbCnVsdHkK4paBa3JhCuKWgXRhYnMK4paBZXhwZXJpZW5jZWQKYXppCuKWgURpcmVjdG9yeQriloFjcm9uCuKWgXNwZW5kCuKWgVJBCuKWgXNlbGVuaXVtCuKWgVRow6kKRWxlbWVudHMKY2lpCuKWgXBsYXQK4paBYXJjaGl2ZQriloFhc3Npc3RhbmNlCuKWgW5lY2sK4paBQXZlbnVlCuKWgXdoZWVsCuKWgWhhZGUKQ29tbW9uCuKWgURpYWxvZwriloFmb3JnCuKWgXN1cmVseQriloFob2NrZXkKa3TDswriloF0awriloHiloHiloHiloHiloHiloHiloHiloHiloHiloHiloHiloHiloHiloHiloEK4paBQnJ1Y2UK4paBZW5vcm0KLOKAmQriloFDaHJpc3RvcGhlcgpqZXYK4paBcXVhZAriloFBSkFYCuKWgXJlbGllZgriloFtb2Rlcwpza2zDpHIK4paBVmlkCuKWgVNlcmlhbAriloF0b2tlbnMK4paBUG9sYW5kClxdCuKWgXZpZGUKcm9vbXMKb21hcwriloFCdXJlYXUKY3gK0L3QvtGB0YLRjNGOCuKWgXNpZ25zCtGI0LXQvdC40LUKbG9zc2VuCuKWgVF1ZWVucwriloFtZW1icmUK4paBbWV6CuKWgUJvb2wK4paBTmFqCuKWgU1lbW9yeQriloFLaGFuCuKWgWzDoAriloFIdWQK4paBZGlzbWlzcwppZ2h0aAriloFmcwpwcmV2ZW50CuKWgdC80LXQtNCwCuKWgVBvbGljZQriloHRgdC60L4KZmluaXRlCuKWgWFtaQriloFNdWNoCm93YW5pYQpPUlkKaW9ycwriloFQcmVtaW8K4paBdGV4dGJveApkbQriloFhZmluCuKWgURvbmFsZAriloFQcml2CuKWgWRlY2lkCuKWgU1hdXJpY2UKYWdhbgriloFCcml0YW5uaWNhCuKWgW9mdAriloFjb25zZWN1dGl2ZQoiPz4K0L7QstC40LkKc3R1ZGVudAriloFwZXF1ZQriloFkaWVzZXMK4paBcmV0b3VyCsOpdHIK4paB0YHQtdC3CuKWgWtyZQriloF2b3RlcwpydXB0aW9uCml6YWRhCuKWgVdpZWwK4paBR3JheQriloFMZW9wCnRlaWx1bmcKKFsnCuKWgXdoaXRlcwpmcmljYQphbmltYXRpb24KY3VybApsaW5ncwo9IiQKbG95ZAp0ZXh0c2MK0L7RgNGDCuKWgdGB0LXQu9CwCmVzaWFuCuKWgU1pc3Npb24K4paB0L3QtdC30LAK4paBdWx0aW1hdGVseQrQsdC+0LIKb2xlbgrRgdC60L7QvNGDCm5ldGUK4paBRGl0CuKWgWNvc3RydQpkZXBlbmRlbnQK4paBUmVzb3VyY2UK4paBaG9zdHMK4paBcmVhcgpEdXJhdGlvbgrQvdC40LrRltCyCtCc0LAK4paBcGxhbm5pbmcK4paBcHJlZGljdGlvbgriloFMeW4K4paBa2lyCuKWgUxlZ2lzbArQvNCw0YIK4paBU29jY2VyCuKWgXN1cnZleQriloFlc3RhZG91bmlkZW5zZQpvcmdlbgpqb3VyZAriloFhcHJpbGUK4paBaWRzCtGB0YzQutC1CuKWgWVtcGxveWVlCuKWgVNjaGF1c3BpZWxlcgrRgNGKCuKWgW11bHRpbWVkaWEK4paB0YHQstC+0Y4K4paBd2luZQriloFFVQppY8SDCuKWgVJoZWluCuKWgVBhbG1hcgpvdGVjYQriloFwcmVwYXJlCuKWgVRvdAriloFOdWxsCuKWgWtpbgppbmFscwriloFOZXd0b24K4paBdGJsCuKWgVNvbGQK4paBdmVyZgphdHVyaW5nCuKWgWxhcHRvcAriloHQodC+0LLQtdGCCnNlY3JldAriloFPbHltcGljCuKWgWZvb3RiYWxsZXIK4paBUnVkb2xmCuKWgWNvbmhlCnp5c2sK4paBZXZhbHVhdGVkCsK7KQpzaG9wCnJlcG9zaXRvcnkK4paBemFjaAriloFsb3NpbmcKZXR0ZXIK4paBV2lydHNjaGFmdArRgtCw0LoK4paBdW5uZWNlc3NhcnkK4paBUGhvdAphbnNrYQriloFOYXRpdmUKQ0NFCuKWgWZpZnR5CuKWgWVydwpyaAppc3NlbnQKfXsoCuKWgWxhbsOnCuKWgVhjb2RlCtCz0L7RgNC+0LQKY2lyCuKWgXBlbMOtY3VsYQriloFPc2NhcgriloFzaG9yZQriloFzdXBwbGllZApleGFtcGxlcwpNZXNzClZJQ0UK4paBZXhjbHVkZQriloFoZW4K4paB0LPRg9Cx0LXRgAriloFGcmFnbWVudAriloFCaXR0ZQriloFCZXNpZGVzCuKWgWhlcwriloFpaHJlbQriloFTZXJnZQriloFhcnRpZmljCj0iJHsK0LvQvtCy0L4KdXRldXIKdGFpcmUK0L/QsNGBCuKWgWVhc2llc3QK4paBZmFtaWdsaWEKTm9ybWFsCuKWgWRhbGxlCuKWgW5hdGlvbnMKcnAKdGhlYWQK4paB0L7QsdC70LDRgdGC0ZYK4paBRGVtb2NyYXRpYwriloHRh9C10LvQvtCy0LUK0LzQvtC2CuKWgdCz0LXRgAriloFzbWFsbGVzdAriloFQdWJsaXNoaW5nCuKWgVRzCuKWgWxhdWdoZWQKbGxlCuKWgUFtdAriloFJSVMKRk9STQpNYWcK0LTQvtC9CuKWgXN0b3JpYQriloFvcmdhbml6ZWQKxI1uw60K4paBb3gKbGluZ2VuCuKWgWx1ZWdvCmNjacOzCuKWgXJlbHkK4paBdHVzc2VuCmVydGVuCuKWgWhvbm91cgriloFDbGF1ZGUK4paBS29yZWEK4paBTWV0cm9wb2wKU3VwZXIKcmllbgrDqXJhdHVyZQphdHRybwriloHQsdGW0LvRjAriloFIZXJiZXJ0CuKWgWF1dGV1cnMK4paBZGFyYXVmCuKWgW1lbnRhbAriloFyYW5nCuKWgXPDs24K4paBU29waAopIiwKRGVzY3JpcHRvcgpwcmVwYXJlCuKWgUxhbmRrcmVpcwpIQwpjcm9zcwrQu9C40LfQsAriloFMb2dpbgpvbmVuCkZlYXR1cmUK4paBbXVzZXVtCnZlawriloFOZWxzb24K4paBcmVqbwriloHQutC+0LzQsNC90LTQuAriloFzdW1tYXIK4paB0YHQu9C10LTRgwrDpG1wCuKWgUdhcwrQstC+0LwKVkFMVUUKaW5nZQpwZXJpb2QKbGFzc2VuCsOhdmFsCuKWgWFsdG9nZXRoZXIKdW1waAppc3RybwrEhcW8CuKWgUtlZXAK4paBTWFyY28K4paBw6l0YW50CuKWgURyZQpnZW9tZXRyeQriloFLYXMKbWVzc2FnZXMKQ29vawriloFTaWRlCuKWgdC60L7QvNC4CtGB0YLRgNC4CuKWgWV4Y2VzcwriloFCaW9ncmFmaWEKWFhYWAriloFOaWUKdmVuZG9yCnhzZApNaWxsCnByb2Nlc3NpbmcK4paBTWlzc291cmkK4paBcGVybWV0dAriloFhcGFyCuKWgWNyb3dkCmZlcnQK4paBRG91CnLDrQriloFDQwriloFwYXltZW50CuKWgUhvbGx5d29vZAriloFWaXJ0dWFsCuKWgXNwb2tlbgriloF0cmFtCuKWgUNvbW11bml0eQriloFhZG1pbmlzdHJhdGl2ZQriloHQstC+0LvQvgpnaW9yCnZpc29yCuKWgdCj0LrRgNCw0LgKc3RhZ2UK4paBRm9ybWF0CuKWgWNvbnZlbmllbnQK0J3QsAriloFtZWRpYW4K4paB0LLRgNCwCuKWgdCf0YDQtdC80LAKZW5pZwriloFPcGVyYQpyw6lzCuKWgWZtdAriloFlZmZpY2llbmN5Cm1hbGUKTWFzdGVyClNlcmllcwriloFzeWQKZ2VuZXJpYwppbnRlcnZhbAriloFlZmVjdAriloFpbndvbmVycwrQu9C40LzQv9C4CmlyZW1lbnQKRXJyCsO2aAriloFseWluZwriloFTZXR0aW5ncwohPQplbWF0aWMKYXJndgriloFCYXNpYwriloFjb25zaWRlcmF0aW9uCuKWgWhhYmUKLSUK4paBbW91bnRhaW5zCuKWgXBlYWsK4paBZmFsbGVuCmVkZWQKbG9naWMK4paBbWF0Y2hlZAriloF0eXBpbmcKKX0sCuKWgWZhbmN5CuKWgWVsZWdhbnQK2KfZhAriloHRg9GH0LDRgdGCCuKWgVNhcmFoCuKWgVZlcmQK4paBdGVnbwpydWxlcwriloFtb3VudGVkCuKWgdGW0LwK0LXRgNGDCnN0b2ZmCmZhaHJlbgpkaXN0YW5jZQriloFMaWNlbnNlCuKWgUxFRlQK4paBd3AKL3sK4paBYW1hem9uCj4mCuKWgWVsc8WRCnF1YXJ0ZXJzCuKWgXNob2NrCm5pY2sK4paBQXJjaGl0ZQriloFTcXVhcmUK4paBcmF0ZXMKaW9yZQriloFOYXQK4paBQ2hhcmxvdApyZWljaGVuCuKWgXZhcmlhdGlvbgpvc2lzCmxpZmUKc2xpZGUKYWJpCnVraQpteXNxCuKWgXByaW1pdGl2ZQriloF1bml2ZXJzaXRhaXJlCkxFTkcKYWxlxbwKZWJvb2sKc3luCuKWgUdlZ2VuCuKWgUvDvAriloHQsNC70LUK4paBTHViCmNvbmN1cnJlbnQKaXp6YXRvCuKWgXN0dWIK4paBaWUK4paBJy4vCmNvZAriloFpbnRlcm5hY2lvbmFsCuKWgUdsYXMK4paBbWFyZQriloFOZWIK4paBR0IKa3dhcmdzCuKWgWF1bWVudApXSUQK4paB0YDQvtC0CnB1bmt0CuKWgUdyYWQKU04KQU1QCuKWgUJvcm4K4paBR3VlcnJlCtCz0L7RgtC+0LIK4paBbWVkaW8KTWVkCnN1cHAKYWN0dWFsCmRyb3Bkb3duCuKWgW9rdG9iZXIK4paBxZkK4paBY2lyY3VsYXIK4paBc2tpbgriloFlbXBoYXMK4paB0LPQvtC70L7QsgriloFwdWUK4paBaW5mb3JtYXRpb25zCuKWgVdvbGZnYW5nCuKWgXVzZWxlc3MK0LjRggriloFKb2FuCuKWgdCx0L7RgAriloFHbGFkCuKWgUtub3cKa8OpbnQKc3BlZWQK4paBS2V2aW4KdW5mdAriloFhcnF1CuKWgUNhc2EKKC4uLgriloFyYXBpZGx5CuKWgXByb2JsZQriloHQktC40LrQuNC/0LXQtNC4CsW+ZW4K4paBTmViZW4K4paBTWV0ZXIKQ2hpbGRyZW4KY2VtCmlnb3MKYWp1CuKWgVJldHJpZQriloFIZWxsCuKWgWdpZwriloFjb250cm92ZXJzCuKWgXpvb20K4paBY2VucwriloFhbGN1bmkK4paBSGVhZGVyCk1ldGEKUmVxdWlyZWQK4paB0LjQvdGB0YLQuNGC0YMK4paBc2t1cAriloFpbmdsZXMKw6lnbApiaWoK4paBdMOpcgriloFjb21wYWcK4paBY29tbWl0dGVkCuKWgXByb2Nlc3NlZApMb3dlcgriloFGb3JlaWduCuKWgXNlcQpzaGVldHMK4paBRmVtCmhvegppbmtzCuKWgWthbGwKdmFyaWFudAriloFsaWJybwriloFjbGlja3MK4paBZ29iaWVybm8KaWVnZWwK0LzQvtCz0L4KZ2VtZQriloF0b3dlcgriloFwYXJpc2gK4paBVENQCuKWgWxzCuKWgW5naW54Ck5hTgriloFEaXIK4paBQmVncmlmZmUKYXJpZQrDrW1wCmljaW9zCuKWgXNoYXJpbmcK4paBY2luw6ltYQpiZWMKUkVECuKWgUtyYQphYm9sCuKWgWZsdXgK4paBZXhwZW5zaXZlCuKWgdGB0YPRidC1CuKWgWBfCm9jegrQu9C40YHRggriloFhY3F1YWludAriloF3aXNlCuKWgXBvdXZvaXIK4paBZGV2YW50CuKWgW1vbWVudHVtCmltbWVyCuKWgUNvdXBlCmluZGV4T2YK4paBZG9lc250CuKWgdC30LDQsgriloFsaWNlbnNlCuKWgcOiCkNTUwriloFyaWNlClRlYW0K4paBYW5vCmxpdAriloFtZXJnZWQK4paBQ2VsbArQu9C7CmJveQphc3RzCuKWgXNlbGwK4paBZ3Jvw59lCuKWgXZpcnR1ZWwKQ2FuY2VsCuKWgXNqCmdtZW50Ci48CtGH0LDQuQppw6sKYWtoCml6ZXJzCnByaXQK4paBVGliCuKWgWVsYWJvcmF0ZQriloFmw6kK4paB0LzQtdC00LgKTEVOR1RICuKWgXByaW1hcmlseQriloFzY29yZXMK4paBY2FycnlpbmcK4paBbGFrZQpjb21wb3NlCuKWgVRvd25zaGlwCnVuZ2UK4paBYWxiZXJnYQphbnljaApxdWVsbGUK4paBQXJrCuKWgXByaXMK4paBdm9sbArRiNC70LgKVmFsaWRhdGlvbgriloFjZXV4CuKWgXBvcHVsYXRlCiINCuKWgWZlbW1lcwpBTkcK4paBRGVzcGl0ZQrQstGL0LUKaXNrZQp6dWcK0L3QsNGH0LAK4paBaGF0dGVuCklOU0VSVApFbXBsb3llZQriloFtb21lbnRzCuKWgcO6bHRpbWEK4paBaG9sZGVyCmJsYW5rCkNvbGxlY3Rpb25zCmF0aGVycwriloFncmFkZQriloFhZmZhaXJzCi4kJAriloFkZWx0YQriloFKdWdlbmQK4paBZXNwYcOxb2wK4paBT1VUCuKWgW1hdGhlbWF0aWNhbAriloFtb25nbwriloHQpNC1CnVsaW5nCuKWgXJldm9sdXRpb24K4paBY29pbgriloFzdWJjbGFzcwoiPT4Kw6RjaGUK4paBcHlnCtGJ0LDRjwppbGxlcnkK4paBY29tZW56CmRlcHRoCuKWgWPDqWwK4paBcmVzaXplCuKWgVNhbWUK4paBc3RyaWsK4paBdGlyCuKWgXNjYXJjCuKWgU1lbWJlcgpzdWJzY3JpYmUKw7PFvArDunRib2wKZXhjZXB0CuKWgWRyaXZpbmcKa2llCnpvbnkKw6htZXMKRGF2aWQKaXNzYW50CuKWgdGC0YsK4paBw6lsZWN0CuKWgXJlbmFtZQriloFSdW5uaW5nCuKWgWludGVyZmFjZXMKLy8vLy8vLy8vLy8vLy8vLwriloFXYWxrZXIK4paBc29jacOpdMOpCuKWgWFza3MKYnJpZAriloFqZXdlCuKWgXNlaW5lcwriloFhZ2VudHMK4paBTVkK4paBTGF3cmVuY2UKZGVzcwppZXNlbgriloHQu9GO0LTRj9GFCtC/0YDQsNCy0LgK4paBYW5jZXN0CuKWgXdlbGNoZQpyYXVtCuKWgW9yYgpzY2FsCuKWgUxlYXIK4paBd2VhcgriloFzbGF2ZQriloFyZW5hbWVkCsSNZW4KbWFzdGUKYW5nbGVzCuKWgUFtw6lyaWNhCuKWgXRpCuKWgWRlbXNlbAriloFiZW5lYXRoCmJpbmFyeQriloFlZGljacOzbgriloFraWxvbWV0CnVpdHMK4paBY3VhdHJvCuKWgWVudHJhbmNlCm9uZGlzc2VtZW50CuKWgWJhZwriloFBcm1lbgppam8K4paBTG9ycwriloFkZW1zZWxiZW4Kw6ptCuKWgWRpc2NyZXRlCuKWgXByb21pbmVudAriloFKYXkKZGVjb3IKREwK4paBZMOtClN0cnVjdAriloFQcm9kdWN0aW9uCnRoZXkKYXJpdXMKc2Nobml0dAriloFDb3UK4paBbGV4CnlvdXR1YmUK4paB0YDQsNCx0L7RgtCwCnN0YXRpb24Kc2VwCuKWgW1pcnJvcgriloFoaXRzCuKWgUJlY2sKYXRpY2FsbHkK4paBTGF6CuKWgXdpbm5lcgpERVgK4paBSU5UCn1eey0K4paBd2VnZW4KbWFkCkFuZ2xlCnppbmcK4paBQmF5ZXJuCnNhbArDpGdlcgriloFidXN5CuKWgXN0w7ZyCuKWgWZvbGsK4paBcHJpeAriloFhbGxvY2F0ZWQK4paBcHQKYWZmZW4KY2x1c3RlcgriloFjb21wbGVtZW50CsOhcnMK4paBQW1lcmlrYQrRgNGW0LkK4paBdmFsbGV5CuKWgXJvb21zCuKWgW1vaQouIiwKOzs7OwriloFsb3dlc3QKbm9nCuKWgWxhbmRldAriloFwcm9ncmFtbWUKY2hpbwriloFXw6RocmVuZArDoW5kZXoK4paB0LTQvtC70LYK4paBb3V2Cm9tw6FueQriloHQktC40LrQuNC/0LXQtNC40LgK4paBc8OzCuKWgWVsZWt0cgpEZXNjCuKWgUJlYXV0CtC90LDRgAriloHQvNC+0LbQtQpQaWVycmUKZXNvdGEK4paBb3BlcmF0ZWQK4paBZm9ydGUK0YDQuNGBCuKWgW9wcG9zaXRpb24KYWxpYQriloFTeWwKZ2V0TmFtZQrQstC10LvQuApmaWsK4paBY29tcHJvbQriloFUZXh0VmlldwpTcHJpbmcKbWV0YWRhdGEKZW5ndQovLAriloFjYXJyaQppc3RvbAriloFkaWFnb25hbApsaXN0YQppemVuCuKWgXJlbmRlCmdjYwpiZWNrCmxpdXMKaXJhbApSZXNvbHZlcgriloFwZXJjZW50YWdlCuKWgWF0dHJhCnN0cmluZ3MKd2nEhXoKb2RzCtCy0L7Qu9GOCsSZxbwK4paBbmV3c3BhcGVyCmltaXRlcgpBQkMK4paBTWFuY2hlc3RlcgpbewpBZ2VudAriloFXb3IK4paBS2F0aAriloHQv9C+0LLRlgriloFlbnRvbmNlcwriloFuaXZlYXUKYXR0ZWQKbGVhcm4KYXRpcXVlcwriloHRg9Cx0LgK4paBcXVpbmRpCmJpbmRpbmcK4paBaW1wb3J0ZWQK4paBSG9ybgplbWJlcmcKY29tcGxleAriloFuZXVyYWwKaW5mb3JtYXRpb24K4paBcmVjb2duaXRpb24KaW5ndAriloFpbmhhYml0YW50cwp2dWUK4paBQmV2w7Zsa2VyCuKWgWN1cnZlcwriloFsZWIK0LTRltC5CuKWgXNvdwriloFzZW50aW1lbnQKUEgKcmFjaGUK4paBLSgK4paBZXN0YWJsZQriloFGZXJkaW5hbmQK4paBw6ljcml0CuKWgXByaW1laXJvCuKWgXRleAriloFpbnRlcm1lZGlhdGUKdmVyYWdlCmlidXMK4paBc2VydmVzCml2YXMK4paBYnJ1CuKWgWx1bQphdHRpY2UK0YfQvdGL0LkK4paBRHJlcwriloF2aWRlb3MKZHVyYXRpb24K4paBYWJpdAriloFlZ2cKb2dyYXBoaWNhbAphbHBoClNUQVRFCuKWgdC/0LDRgNCwCnJlYWRpbmcK4paBdmVoaWNsZQriloFmb3J0dW5lCnVsdGF0cwriloFTdG9yaWEKbWlkdArFgsSFY3oK4paBTWVtb3JpYWwK4paBdmFzCuKWgdC30LDQvQriloF1dGlsaXR5CuKWgW9ic2MK4paBcmVsYWNpb24K4paBcnVuYXQKUmVsZWFzZQp0YWtlCuKWgU9saXZlcgriloFTaWQKdWxvcwriloFHYXJjCuKWgdGA0L7Qt9GC0LAK4paBU2FrClB5CmbDvGhydAriloF0cmFiYWwKKnsK4paBemVzCuKWgXN6ZXJlCuKWgXZhcmlvcwriloFvdHJhCuKWgWV2YWwK4paBc2l0dcOpCuKWgXdvdW5kZWQK4paBVmluY2VudAriloHQstC40LrQvtGA0LgK4paBZW5jb2RlCk1vZGFsCuKWgWZvcmIK4paBZHluYW1pY3MK4paBZGVwb3MKYXJkZQriloFzdHJlZXRzCuKWgUtvbW0KPSQoCuKWgdC/0L7QstC10YAK4paBZG9pcwriloF2aXR0CuKWgWF1dG9tYXRpc2NoCuKWgXJlbG9hZAriloFWZXJ3YWx0CmJlcm8K4paBaHViCuKWgW1vcwriloF0dXR0bwriloFGcmVkZXJpY2sKxYJvdwphbnRhZ2VzCmFxdWUKcGFwZXIK4paBZWluaWdlCmApLApkagriloFQbGUK4paBJSwK4paBQml0bWFwCuKWgWZyaWVuZGx5CuKWgXRydWx5CuKWgXN0cm9rZQpyb3BoCuKWgWVuZ2wK4paBY29mZgriloFkdXN0CuKWgUphaHJlcwpwcGkK4paBd3lzCmZhY3RvcgpzY2hsdXNzCuKWgdC00LXRgNC10LLQvdGPCuKWgVBhc3QK4paB0LTQvtC80LAKQ09NCuKWgXB1ZWRlbgriloFnaWZ0CuKWgUdsYQriloF0cmlnZ2VyZWQKw6lseQrDvGzDqXMK4paBT2xpdgriloF2ZXJzbwriloFsbGUK4paBR2xpCuKWgUx0ZApvYQriloF0ZXJyaXRvcmlvCm9yZHJlCuKWgWRlY2sKZHJhCmFzenQK4paBY29uY2VybmluZwriloFBZGRpdGlvbmFsbHkK4paBa3RlcsOpCuKWgWdydW5kCuKWgUdlc3QK4paBbWlzdW5kZXIKcHJldArilIDilIDilIDilIAK4paBcmVwdXRhdGlvbgp6aWEK4paB0YPRgdC/0LUK4paBZXNjYXBlZAriloFQcmFnCnBlcmZvcm0K4paBYXVzdHJhbAriloFWYXRlcgrRh9Cw0YEK4paBcmFjZXMK4paBQnl0ZQpNYXNrCuKWgVRlcnJpdArRgdGC0Y4K4paBVm9jaQriloFGaWNoaWVyCuKWgdCd0LDRgdC10LvQtdC90L3RjwriloFVbnRlcnNjaGVpZHVuZwp0ZWVudGgK4paBcGlsb3QK4paBamkK4paB0LTQstGD0YUK4paBb3JpZW50YXRpb24KaW5kcmUK4paBRG9ydArDp2FzCtC/0LvQuAriloFyZWFjdGlvbgriloFjb25zaXN0aW5nCuKWgWZlcnJvCtGC0LjRgdGC0LgKeWFyZAriloHRgdCy0ZYK4paBaW50ZXJwcmV0YXRpb24KacSFCnJhaAriloFmYW5kClB1YmxpYwriloF1bml2ZXJzZQriloFyZXRpcgriloFjb25zY2lvdXMKYXJxdQriloF3YXN0ZQriloFCaWIKeWNsZXJWaWV3CuKWgWxpc3RlbmluZwpnbGVpY2gKbmllanMK4paBY29ycmVsYXRpb24K4paBcmVjZWl2ZXIK4paB0YPQtNCwCuKWgWNvdXJhZ2UKdWNocwpmYXNzCuKWgWNodW5rCuKWgUFuZmFuZwriloFncm/Dn2VuCmNvbnRpbnVlCuKWgVdhcnN6YXdhCmjDqQppeQppdmVtZW50CuKWgc6xCuKWgWV4cG9zZWQK4paBemFobAriloFzYWNyCuKWgUxvb2tzCuKWgWVhZ2VyCmVudGVuCkN1cnNvcgovXwppeGEK0YDQtdC70LAK0LfQvdCw0YfQsAriloHRhNCw0LzQuNC70LjQtdC5CuKWgWFyZ2VudAriloFBbmRlcnMKxZN1dnJlCuKWgUlzYQrQvNC10L3RgtCwCuKWgWFkdmVycwpyaWN0aW9uCkdQCuKWgdC/0ZbRgdC70Y8K4paBcHJlc2VydmUK4paBR2FyZGVuClJhdGUKYXByw6hzCuKWgXJlYWRhYmxlCmluZHUK4paBc2tpbGwK4paBaGVscGluZwpvZ3JhcGhpcXVlCmNsaW5nCm9sb2dpc3QK4paBRmlsdGVyCuKWgWZpbmdlcgriloFWYWxsCuKWgVBvbGlzaApsZwriloFGYW1pbGllbgriloF3YXRlcnMK4paBcHNldWQKYXphCl8pCkFSWQriloHRgdGA0LXQtNC4CuKWgU11c3QK4paBQm9kCmFub24K4paBbGFkbwriloF0aWdodAppbWVuCmFwcGVuCmZyYW1lcwppbmdlcnMK4paBQ09WSUQK4paB0LfRlgriloHRgdCy0LUK4paB0YbRjAriloFMZWZ0Cl1dOwrRh9GMCtGE0LjQutCwCuKWgdGB0LvQvgriloHQv9GWCuKWgWV4aXN0ZQriloFBdGxhbnRpYwriloFtYWludGFpbmVkCuKWgWlycmUK4paBYW5uw6llCuKWgWNvbW1lbnRlZArQstC10YDQvgpiZXJ0YQriloFMYWQK4paBVXBvbgriloFwYXVzZQptaWxsCm9wdGVyClVLCtGA0LXRgQrQvdGG0LjQutC70L7Qv9C10LTQuAriloFhbG9uZ3NpZGUK4paBcm9ib3QK4paBZmVydAriloFtb3kK4paBYWRlCk1hcHBlcgopLT4KaWd1YQrDqXRpcXVlCtGC0LrQsAphbGlhcwriloHQvtGA0LgK4paBTWFnbgriloFnZWjDtnJ0ZQppbWIKKX17XAriloFXaWtpcMOpZGlhCuKWgXVycwriloFlbmRlCmxlYgriloFHQwpIb2wKYW5jaW5nClVuaW9uCuKWgXRlbsOtYQpUVAriloFlc3RhdGUKaMOhCuKWgdC/0L7Qu9GWCnVsdGFuCuKWgUhvY2tleQp1bHNlCuKWgWNob2ljZXMKc2NoZXIK4paBW10sCuKWgXBvdGVudGlhbGx5CuKWgcOcYmVycwriloFhZG1pdApDb21tZW50CtGB0YLRjwriloFWaWVuCuKWgdGG0ZYK4paBcGVybXV0CmNnaQriloFjcsOtdApDb25zb2xlCmN0aWMK4paBb2tyZXMKYXdrCmZvb3RiYWxsCm91ZXN0CkNUWVBFCm9sb2dpcXVlCuKWgWNvbnN0aXQK4paBaW50ZXJlc3RzCuKWgVByb2dyZXNzCuKWgU1lbnUK4paBdGFrw6kK4paBQXNpYW4K4paB0LfQsNGJ0LgK4paBeW91bmdlcgriloF3aXNoZWQK4paBU29ydAriloFhdWRpZW5jZQphbWJhCuKWgWdlaMO2cnQK4paBS2Fuc2FzCnlhdW1lCuKWgVByb2Zlc3Npb25hbArDomNlCuKWgWZhdHRvCnRvZAriloFkYXRhc2V0cwriloFmYXJlCuKWgXdhdmVzCn4vCuKWgW1lYXN1cmVtZW50CuKWgXdvbAppbmR1c3QK4paBc3RydWdnbGluZwriloFwdWxsZWQK4paBY2FyYXR0ZXIK4paBRXh0ZXJuZQriloHQtNC10LnRgdGC0LLQuApjbnQKbGljaGVzCuKWgVBvc3NpYmxlCuKWgWZhY2VkCuKWgWh5cG90aGVzaXMK4paBa2lsb20K4paBbsOkcgpib29sZWFuClBZCmFtcGEK4paBa2lzcwriloFhc3Rlcm8K4paBbmVnbGkKYW1lbnRzCuKWgVN0dQphdMOzCuKWgUNvbnN0aXR1dGlvbgriloFpbnRlcnBvbAriloFVbmFibGUK4paBcGlzCuKWgXBhcmMKIl0pCnBsZXIK4paBYXV0b3J5CuKWgWFsZ3Vub3MKeXduYQp9KSkK4paBZmFsbHMK4paBw6lxdWlwCuKWgWVtaXQK4paBcHJvZmlsCmdldHMK0YTQvgriloFNaWxpdGFyeQriloFub21icmV1eApvY3QKUmVwbGFjZQriloFzZWFzb25zCuKWgWNow6J0ZWF1CuKWgXR5cGVvZgpwb2xpdAriloFyYW5kCuKWgXF1YXIK4paBZXJzdG1hbHMK0YHQuNC90LgK4paBcGF5bG9hZArQn9C+CtC60ZbQvQpyZXBvCuKWgVBhdgpTY29yZQplcnZlcwriloFzb2xsdGUK4paB0LzRltC2CsOpYmVjCuKWgWNsaXAK4paBTmljZQriloFuZWJlbgriloFhc3Nhc3MKaXRvcmllcwriloF1bml0eQriloHQtdC9CuKWgUluc3RpdHV0CuKWgWludGVybmF0aW9uYWxlCuKWgdC90LDRg9C6CuKWgWNvbWFuZAriloFrbGVpbmUK4paBYWRqYWNlbnQK4paBZGVsaXZlcmVkCuKWgdGI0LUK0LfQtdC8CuKWgWNvdAp2aXN1YWwK0LLQsNC10YIK4paBQ2Vuc3VzClxfCuKWgXRlcnJpdG9yeQrRh9C40LsK0YfQvdGL0LUKZmx1dHRlcgpEaWRMb2FkCkRvY3VtZW50cwriloFkb2IKQnJlCmFuaW1hdGUK4paBYml6CuKWgWJhdGEK4paBU1UKZXNvCuKWgXByaW9yaXR5CnbDoW4KaXJhcwriloFjaGFyZ2VkCuKWgU1pY3JvCmF0b2lyZQrRh9C10YAKYWJhZAp1cnUK4paBdsWhCmRpcmUK4paBVHdpdHRlcgriloHQvNC10YLQvgopLi4K4paB0KbQtdC90YIK4paBZW50d2ljawriloFNaW5kCuKWgdGE0YPQvdC6CkZ1dHVyZQpsc3QKxYJvxbwKZmxpCnRlbnNvcgriloF0b3BvbG9neQriloFhcnRlCkVSVAriloF2YXJpYW5jZQpJbWFnZXMK4paBKEAKQXJyYXlMaXN0Ck9DCuKWgdCU0LXQvNC+CmF1Y291cAriloFkZW5vdGVzCmltb24K0ZrQuAriloFQcnp5cAriloFaYWcK4paB0LTQuNGA0LUK4paBU2ltaWxhcmx5CtCx0YDQvgriloFtaWxpdGFpcmUK4paB0YLQvtC80YMK4paBSm9obm55CuKWgdCc0LXQutGB0LjQutGDCtGb0LAKU3VwcAriloFqdW5pb3IKb2x0cmUK4paB0JzQvtGB0LoK4paBYWRtaXR0ZWQK4paBcmVsaWdpb3MK0LfRj9C5CtC10LPQvgriloF0ZWFycwppbmdvCm9kdQppdmVuZXNzCuKWgWxvZ28K4paBw7psdGltbwriloFhbGltZW50CuKWgVVJVGFibGVWaWV3CikhCuKWgW5qCmxldHRlCuKWgXJlc2lkZW50CuKWgXRlcm1pbmUK4paB0YPQttC1CuKWgdCh0YLQtQpvZmZpY2UK4paBY2FydGUK4paBbGl2cmUK4paB0JzQvtGB0LrQvtCyCuKWgWVsZWN0aW9ucwrQt9C40LTQtdC9ClRyaWdnZXIK4paBQmVuamFtaW4KYWRkQ2xhc3MK0YHQutC+0LMK4paBT2JzZXJ2YWJsZQpDbGEKZ2VtZWluCuKWgWNvbnNlbnQK0LLRgNC4CuKWgXVuZm9sZAriloFnb3Zlcm5vcgrQvdCw0LsK4paBdG9kYQpSZW1vdGUKYXJpYXMK4paBaW5zdGFsCmZpeGVkCuKWgWRlY2F5CuKWgdC00LXRgNC10LIKeHl6CuKWgURBVEUKaW1hcgpudGlsCuKWgXN0YXJ0dXAKYWxpb24K4paBa29sZWoKY2lvcwriloFyYW5nZXMK4paBc3R1cGlkCuKWgWltcGxlbWVudGF0aW9ucwriloFybQrDqW5lawriloFnY2MK4paBc2PDqG5lCk5hdmlnYXRpb24K4paBwqAK4paB0LrQsNC9CuKWgXRvd25zClVzZXJuYW1lCuKWgdGE0LUK4paBbGVhZGVycwpvaXQKd8OkcgriloFkdW1teQriloFhc3Npc3RhbnQKeyRcCtCx0ZbRgAriloFyb3kK4paBTGF5b3V0CuKWgUp1bmcKTGluZXMK4paBSG9sbGFuZArQv9C+0YAK4paB0JPRgNC4CuKWgUJlbmVkCuKWgdCf0L7QtAp4bHMK4paBR29sCuKWgUFsZWtzCuKWgWVqZW1wbG8K4paBc2V6b24KYXJkaW5nCmZvb3Rub3RlCuKWgUNvbmdyw6hzCnJlZmVyCtGB0LrQsNGC0LAKSXRlcmF0b3IK4paBb3Vyc2VsdmVzCuKWgU1pYwriloFjw7NkaWdvCuKWgdC/0LvQvtGJ0LAK4paBXCQK4paBQ2hhcmxpZQpOb2RlcwriloFwdXp6CuKWgUlkZW50aWZpZXIK4paBZmx1dHRlcgriloFwcsO8CuKWgW9ydAriloFDb3J0CmFzdGljc2VhcmNoCuKWgdCh0LLRjwriloFCdWxsCnVkZW0K4paBYXBwYXJlbnQKOi0tCuKWgdCl0LDRgAriloFMYXAK4paBY29tcG9ydAptYXRpY2FsbHkK4paBY3VyaW9zCuKWgdC80L7QttC10YIK4paBQmgKYXBwaW5nCuKWgWJhc2tldGJhbGwKemV0ZWsK4paBcnVudAriloFNaWxhbgpmZWN0aW9uCnLDrWEK4paBS2luCuKWgXNsb3dlcgpib3RoCuKWgUluc3RpdHV0bwriloFIaXN0b3JpY2FsCuKWgXLDs3duaWXFvAptYXRjaGVzCnljaQriloFlc3DDqGNlCuKWgVNjaHdlaXplcgpOVApTRgphY2lhCmZvcmdlClBvaW50cwpudW1iZXJzCuKWgWZhbGxpbmcK4paBaW5oZXJpdGFuY2UK4paBRXJzdAriloFjdXN0b21lcnMK4paBYWN0dQriloFtaWdyYXRpb24KXCcKUGxhbgpNcgpvdGh5CuKWgXVwZ3JhZArQsdC40YDQsAriloFPZmZpYwriloFXYWl0CuKWgXRvbGVyCmFyZG9uCuKWgXNsaWRlCilfCuKWgdGB0YLQsNCyCuKWgW51Y2xlYXIK4paBQmlsCm93bmVyCuKWgUhhcnJpcwpJbmZvcm1hdGlvbgriloFww7MK4paB0LLQutC70Y7Rh9CwCuKWgW51b3ZvCuKWgUNhdgriloFEZXNjcmkK4paB0LDQugrDs2R6dAriloFyZWFjdGpzCuKWgUFkYW1zCuKWgUFsdGVybmF0aXZlbHkK0YHRgtGA0YPQugopYCwKc3Vic3RyaW5nCuKWgW1hc3NpdmUK4paBaGVhdmlseQriloHRgdC10LfQvgriloFBbmEK4paBdmFsZQpQYWQK4paBRWl0aGVyCuKWgXJzCmFuY2hlCuKWgXVwbG9hZGVkCuKWgSgvCuKWgdGB0L/QvtGACuKWgXJlZHVjdGlvbgriloFUb2t5bwpncmVuCuKWgW1pZ2xpCuKWgWl0ZXJhdG9yCnN0YXYK4paBc3VwcG9ydGluZwriloHDtnN0ZXJyZWljaAriloFOU0xvZwppc3RpcXVlcwpyaW1pbgpNT0RFCn19fVwK4paBZXhwbG9zCtC+0YLQtQriloEo4oCeClNhbAriloFzaW1wbGVzdAriloFnacOgCuKWgdGC0LDQvQriloFjeWwKYmlyCuKWgW1lYXN1cmVtZW50cwpDcmVhdGVkCmVyZWsKbG9va3VwCndpcnRzY2hhZnQK4paB0JLQvtC70L4KdGltZXIKZGVycgriloHRgdGC0LDQu9CwCuKWgXNjZW5lcwriloFwZXJzdQpsaWVzdAriloFzY2hlZHVsZQp0YWwK0LvQtdC90L4K4paBcGFpbnRpbmcK4paBaW1wcm92ZW1lbnQKc29mdHdhcmUK4paBZ292ZXJubwriloFIaXIKRXhlY3V0aW9uCuKWgU9rYXkKUHJvcApsb3N0ZXIK0L3RltGG0LjQv9Cw0LvRlgriloFwZXV2ZW50Cm9sdQriloHQpNCwCnJvbGxvCuKWgdC60L7Qu9C+CuKWgWNhcnJpw6hyZQriloF0b2dnbGUK4paBKCRcCuKWgWFnZ3JlZ2F0ZQriloHQkdGWCnRleHRhcmVhCk9rCml0dG8K4paBc3RpbQriloFyZWN1cnNpb24K4paBRmVkZXJhdGlvbgopX3sKYXRlZ29yCuKWgWRpc3RyaWJ1CkNsb3VkCuKWgW1hZHJlCuKWgWl2CuKWgUxpZXV0ZW5hbnQK4paBc3Vic3RhbnQK4paBbGVhZgriloFLb250cm9sYQpWQQriloF0b21iCtGN0L0KYXRvZXMK4paBZ29kaW5lCuKWgSM+CkNlcnQK4paBZW1wcmVzYQpQcm9wcwriloFwbGFubmVkCuKWgXJhbmRvbWx5CmrDpGhyCmVsZW0K4paBT3BlcmF0aW9uCipgCnByb3RvY29sCigpKSk7CndlbAriloFwcmF3CuKWgdGB0LjQvAriloF3b2IK4paBaGFjZQriloFuZWFyZXN0CmRpc2FibGUK4paBQ29tbXVuCuKWgXJldmVsCkZyZWUK4paBYnJhY2tldHMKSU9FeGNlcHRpb24K4paBYWx0bwriloFtYXJyeQriloFhdWMKKSxcCuKWgXR5cG8KZWRhZAphcsOhCmljYXRvcgp0YXR5d25hCuKWgWJ1ZmYKb3JkZXJzCuKWgWFzeW5jaHJvbm91cwriloFlY29uCuKWgWZldQriloFJcm9uCuKWgXJpc2luZwpSYWRpdXMKY2xrCuKWgXp3ZWl0ZW4KYCcK4paBdW5pcXUK4paBRk0K4paBQnJhbgriloFmbHUK4paBc2Vuc2l0aXZlCnVycmUK4paBSXRlcgriloFTZWluCuKWgWRpZmVyZW50ZXMK4paB0L3QtdCz0L4KY2hpYQriloFBbmxlaXR1bmcKYXR1cmRheQriloFzaG9ydGVyCuKWgXRyYW5zbGF0ZWQK4paBUsOpcwriloFyb2RlCmRyYWcK4paBbGFuZ2UKQmkKw7xiCmxldXIK4paBb3JkZXJpbmcKYWxvdXMK4paB0JrQvtGACmFyY2hhcgpkZXN0cm95CmVydmF0aW9uCl1dLApBY2Nlc3NvckltcGwK4paBYXV0b3J5dGF0eXduYQpTZXF1ZW5jZQriloFwcm95ZWN0CuKWgWJyYW4K4paBKCsK4paBS2FiCuKWgXplbQriloFDYWxjdWwK4paBc2V1bAriloFOaWdlcgriloFjaGlhbQp0aHJvdwriloFQbGFuZXQKYmlsZHVuZwriloF6b25lcwp0cmFuc2l0aW9uCtC70LXQvdC40LkK4paBbWFwcGVkCm9uYXV0ClBhaXIKaWxpYW4K4paBTW9yZ2FuCuKWgXVudG8Kam91CuKWgWhpZAriloFNZXRhCuKWgWVsbGVzCkxvdQpyYW1hCmdlb3JkbmV0CuKWgXNjYXJjZWx5CuKWgW1pbnQKRm9jdXMK4paBQWx0ZXIK4paBZGlvCuKWgWFtcGwKacOocmVtZW50CuKWgdC40YHRgdC70LXQtNC+0LLQsApMRUQKYWxnb3JpdGhtCuKWgdGB0LDQudGC0ZYK4paBIiIpCkhpc3RvcnkKcGsK4paBV2hpdAriloHRgdC40YHRgtC10LwK4paBS2lyY2hlbgpyw6AKQVBQCuKWgTwlCmFudGluZQriloFEaXNrCmNvbnYKd2VsdAriloFGdXQK4paBTm9tCm9yZG8KZWxsaWoK4paBcmVjZWl2ZXMKY293Cnl0dQriloFvYnJhcwriloFwdXJjaGFzZQriloFlYXJuZWQK4paBYWNjZXNzZWQKYXhpCuKWgU1hbnMKaXZhbgriloF0dXZvCuKWgVRyYWNlCnJpbW9uaW8K4paBZGVzZW52b2wKw6lyaXF1ZQriloFyZXN1bHRlZAriloFjb21wdXRpbmcK4paBaW5zcGlyZWQK4paBUHJpemUKKiIKQ29tcHV0CuKWgWV4dGVuc2l2ZQrDqGcK4paBUG9ydMOhbHkK4paBY2FzdGxlCuKWgSouCuKWgXBob3RvcwriloF2b2V0Ck9ORwriloFBbGxlCuKWgXRocmVhdGVuCnN0w7x0CuKWgWFsYnVtcwriloFkZW5zZQpmbGF0CmNvbnRpbnUKU3ViamVjdAriloFyZWFkb25seQpPcHQK0L/QuNGB0LrQvgriloFBYmVyCuKWgVBvc2l0aW9uCuKWgVRvZGF5CuKWgW1pbmkK4paBQmVmCmxpc3RlbgrRgdGC0LLQtdC90L3QvtCz0L4KU1VCCm9zc2EK4paBUG9wZQriloFKaW1teQriloHQlNGA0YMKdW5nc3NlaXRlCuKWgXRyZW4Kb3B0aW0KaXRzY2gK4paBc2FtdAriloHQuNGB0L/QvtC7CiY9CuKWgVByenlwaXN5CuKWgdC/0YDQvtC00L7QuwpDcgplcm1hbm4K4paB0LzQsNGC0LXRgNC4CuKWgUh1Z28K4paBRGV6ZQpUUlVFCuKWgWRlZmVhdAriloF3YXRjaGVkCuKWgUdlbnQKQVVUCm9yb3VzCuKWgdC+0L/RgNC10LTQtQpvcmllbnRhdGlvbgriloFkaXN0aW5ndWlzaGVkCuKWgW1lc21vCuKWgXNsaQrQvNC10L3QsAptaXR0ZWwKZ2VyaWNodApldG9uCi0+ewriloF3b250CuKWgXdlZwriloFjbGFzc2lmaWMKaWx1cwriloFNRAp0YXNrcwriloFjaGltCmF3YWl0CuKWgWdhbmcK4paBd2nEmQp0aHJvdWdoCuKWgVJ1c3NlbGwK4paBZ3Vlc3NpbmcK4paB0LDQutGCCtCx0LvRlgpjYXRlZ29yaWVzCtGB0YPRggriloFGZW4K4paB0LzRg9C2CuKWgW5ld2VyCuKWgUFzeW5jCuKWgXRlcm1lCj4vCtC/0LDRgNCwCuKWgVRydXN0CuKWgU9wdAriloFkYWgK4paBd29uZGVyZnVsCmFkcmF0a2lsCuKWgdCT0YDQsAptYXBwaW5nCuKWgWRpc2NvdmVyeQriloFCRQpFbmFibGUK4paBRnJpZW5kCtGB0L3RjwriloFjb250cm9sbGVkCtGH0L3QvtGXCuKWgWNvbnRyaWJ1dGlvbnMKasWhw60K4paBTGV2CuKWgWZyYW5jw6lzCuKWgW1pYwp6aWsK4paBYWxlbQpjYW5jZWwKIScK4paBZ3JhdAriloFCZWdyaWZmc2tsw6RyCkNhbWVyYQppZmljYWNpw7NuCnLDs2QK4paBQXJub2xkCuKWgWJlemVpY2huZXRlcgriloFmb3VnaHQK4paBZGVwdXQK4paBRHJvcAp0YXgKZGcK4paBSG9wCkdOCuKWgUtpcmNoCuKWgdCR0LDRgApJbnZva2UK4paBZXJoYWx0ZW4K4paBdmVlbAriloF3b3JkcHJlc3MK4paBSU5ORVIKdHJhbnNhY3Rpb24K4paBZMOpasOgCkZhY3QK4paB0L3QsNC00LzQvtGACuKWgWFuZ3VsYXJqcwriloHDoXQK4paBYWxhcAriloFQcmljZQriloFlZmZldAriloFzcGhlcmUKQ2xhc3NMb2FkZXIK4paBcnVnYnkK4paBa2luZ2RvbQriloFNdXQK4paB0LrQuNC90L4K4paBcmV3YXJkCmNpdAriloFwcmVzZW50ZQpTdG8KQ2hhcmFjdGVyCmxvZ3MK4paBY2VudHJhbGUK4paBbW91dgriloFva2F5CuKWgWFwbGljCk1vcmUKw6lueWVrCuKWgUvDtmxuCm5ldHQK4paB0LjRgdGC0L7RgNC40LgK4paBZGVzY3JpYmluZwriloFzb2xkaWVyCuKWgU5lZWQKTGlnaHQK4paBIlw8CuKWgWhhdgplcm1vCuKWgWluZmVyaW9yCmxlYQriloFnZwriloHQutC+0L3RhtC1CmZyYWdtZW50CnNiCkNvdW50cnkK4paBdsSbCuKWgUJlbmcK4paB0K3RgtC+CuKWgdCy0L7QtNC+CtC80LDRgApTVFJJTkcK4paBw7pqCm11bHRpcGxlCnN0YXRlbWVudAriloFpbnZvbHZlcwriloF0ZWNuClN0dWRlbnQKZ3LDqQriloFsZWFuCuKWgWJyaW5naW5nCuKWgU1lZGljYWwK4paB0L/RgNC+0LPRgNCw0LwK4paBVm9nCuKWgdC20L7QsgriloFTcGlyaXQKbnRoCuKWgXN0YW5kYXJkcwriloFQcm9maWxlCuKWgWV6CuKWgdGC0LXRgNGA0LjRgtC+0YDQuNC4CuKWgXN0ZW0KdWlsCuKWgU9nCkJ0bgpuYWwK4paBbmVhcmJ5CuKWgXByb2R1Y2luZwpjcml2CuKWgWFzc3VtcHRpb25zCuKWgVNwYXJrCuKWgUxvdAppdHVkZXMKYWZrYQpmaXZlCmF0aW8K4paBZGlzdGluZ3Vpc2gKcm9jawrDqWdsaXNlCuKWgXJhcHByZXMKPlw8CtC70ZbQuQriloHQvNC40L3QuAriloFpbnRpdHVsw6kKfX0oXAriloFSb3V0CuKWgUJvcmRlcgriloFvdmVycmlkCkhPU1QKcml0dGVuCnNheQriloHQp9C4CmljaHR1bmcK4paBc3RyYWlnaHRmb3J3YXJkCm9iYgriloFUZXJyYQriloFbOgpCZW4K4paBY29tcG9zaXRlCikrXAriloFjcm93bgpkaXJlY3Rpb24K4paB0L3QtdGB0LrQvtC70YzQutC+CuKWgWF2YWlsCuKWgXB1cmNoYXNlZApob29rCmV0aWVzCuKWgWZhc2UK4paBUnVtCuKWgWdlbm9tCuKWgWTDqXQKb3fEhQptcGVnCuKWgdCG0L0KZGVza3RvcAriloFpbmplY3Rpb24KYWdsZQriloFFZGQKX3soCuKWgUhlbQp1dG9zCnByb2oK4paBc3VwZXJmaWNpZQpQbG90CuKWgURvY2tlcgrDpHR6CmtyZWljaAriloF1bmNsZWFyCuKWgVVuaXR5CuKWgXN0cmVhbXMK0LLQuNC0CuKWgXNpbXBsaWZpZWQKRmlsbAriloFzYW50CuKWgUtvbW11bgriloFkdWMK4paB0LTQstC1CuKWgW9icwrFvml0CuKWgUphbmVpcm8K0LHRjwriloFwcmVzc28K4paBTWluaXN0cnkK4paBYnVyc3QK4paBcmVhY2hpbmcKbGl0ZXIK4paBcmVzcG9uc2VzCuKWgUV1ZwriloFzb2QK4paBQ29yZAriloFQZXJtCnBhcnRzCtGG0LjQvNCwCnZhcmlhYmxlcwriloFmb3Jnb3R0ZW4KRmVybgpvc3TEmXAKdmwK4paB0KHQvApraW0KYWrEhWMK0L3QsNC70YwK0LPQu9C1CmhlbHBlcgpkdXAKZXV3CmZyYQplbGxpdGUKYW55YQriloFyZWlnbgpnZXNhbXQK0YHQtdC00LAK4paBUnlhbgriloFmb3JtYXR0ZWQK4paBQm9yZwp3YWxrCuKWgdCw0LsKYWdub3N0aWNzCuKWgUNhcGUK4paBRnJhbmNvCuKWgWZ1Zwo6KQrRjtC3CkZldGNoCuKWgXJvdWdobHkK4paBTWlzCnVldG9vdGgK4paBVmVuZXp1ZWxhCuKWgWFzdHJvbm9tCiIpYApvbWJyZXMK4paB0LrQvtGC0L7RgNC+0LkKw7NwCm93ZWQKSFIK4paBQ2FtZXIK0LrQuNC1CnBhcmlzb24K4paBQmlqCnRlbXBsYXRlcwplbnZpcm9ubWVudAppemHDp8OjbwriloHDqXIK4paBcGxlbnR5CuKWgVR5cGVFcnJvcgriloFmb3J0eQrQutC+0L3QvtC8CuKWgVNlZAriloF0aGF0cwriloFncmF2aXR5CuKWgXNwaXJpdHVhbAriloFkdXBsaWNhdGVzCuKWgWVuY3J5cHRpb24K4paBcmV2ZW4KZ2V0SW5zdGFuY2UKw6RsbG9yCmRpc2sK4paBdGhybwriloFOYWsK4paBcG/FggriloFoZXJhdXMKaW52YWxpZApzQnkKQm9vdAriloFidWNrZXQK4paBUGFyc2UKaGV4CkNvbm5lCuKWgUNvbXB1dGVyCnp5awriloFpbmR1Y2VkCuKWgUJydW5vCuKWgWFkZHJlc3NlZAptYW5pYQriloFpbmNsdXMKb3VuY2VkCnNjcmlwdHNpemUK4paBRXBpcwriloF2b2NhbAriloFKb25hdGhhbgrRg9C8CnN0YWRlbgriloFDaGlsZHJlbgrQv9C10LkKSXRhbGlhCnJlaWJ1bmcK4paBbm9zdAriloHQtdGJ0ZEK4paBV2Vya2UK4paBYWN0cmVzcwriloFNaW5uZXNvdGEKcmlrZQriloF0ZWsK4paBcHJpbWVpcmEK4paBZnJhdAriloFDb25maWd1cmF0aW9uCuKWgWJpZAp0cmlnZ2VyCkNvbnRlbnRzCuKWgWNvbnN0YW50bHkKISEhCuKWgWRyZWFkCuKWgWh1bmRyZWRzCmlzdGlzY2hlCuKWgWNhcmRpbmFsClRBQkxFCuKWgWVzdG9zCmFzc29jCmdyYXkK4paBU2NobG9zcwriloFzY2hlCmNvbmcK4paBa29qaQrDqHRlcwriloFFcmEKb21pCuKWgVNSCuKWgXdyYXBwZWQK4paBdHJ1bmMK4paBYWgKZWdvcwpva2kKbW91dGgKbG9nZ2luZwriloFmYXNjCuKWgVNhbXBsZQriloFjb250ZQriloF2aWxsYQpjb21tZW50cwriloFiYXRhbAriloFHYXJjw61hCuKWgU5vcnRlCuKWgXdlY2hzZWwK4paBTXVzZW8K4paBZW5mYW50cwriloF3aGlzcGVyCm5ha2UK4paBamVkbmFrCmzDqnMKZW5kZXJzCuKWgcOkbAriloFWQgriloFjb29raWVzCnpldGkKYXR1bQriloFkZWR1CuKWgWFycmFuZ2VkCmxhegriloFjdWVudGEKeW1sCuKWgWZsYXYKTVIKZW1ldArQsdGW0LvRjApjbXAKaXR1dG8KemV0dAriloFlbnZpCuKWgWtvdAokOgp1cHBlcgriloFBbGJlcnRvCmtiCkFuYWwKw7ZydAriloFbLQriloFmw7xocnRlCmlhaAriloFUdW4K4paB0LjRgdC60YPRgQp1d2UKaXNwZWNpZXMKUHViClN5bmMK4paBQ29sb21iaWEKYWtlcnMK4paBSW1wZXJpYWwKb3ZpbmcK4paBaW50ZWxsaWdlbmNlCuKWgWVxdWlwbWVudAplaW4KZGFnZ2VyCuKWgUVkZ2UK4paB0KDQtdGB0L/Rg9Cx0LvQuAphZHJhdGtpbG9tZXRlcgriloFBbnRvCuKWgWNoYXJnZXMK4paBT2NlYW4K4paBc2ltcGxpZnkK4paBbWllc3oKcnVubmluZwriloFMYWMKZ2Vub21tZW4K4paBcmVwcmVzZW50YXRpdmUKPS4K4paBUHJlZAriloFzcGl0ZQpjaWFsZQriloFuYXZlCuKWgWV4dGVucwriloFuZXV0cmFsCuKWgdC60L7RgtC+0YDQsNGPCi48LwriloFDUwp1a3kK4paBd2hpbHN0CuKWgWxpbmd1CmV4dHJhY3QKemVpY2hudW5nCuKWgUZlbGQK4paBdmFsdWFibGUKdXJhYmxlCuKWgUplbgriloFzdHJ1Z2dsZQriloFjb21taXR0ZWUK4paBV29obgriloFzcWxpdGUK4paBVGVtcAriloFDT1VOVApjb25zaW4K0LzRltC90ZYKdXNhZ2UK4paBcXVlc3QK0LTRj9C9CmVhcmVkCuKWgVNjaG5lCuKWgWRvZAriloFyZWNodAriloFrYW8KQ2FwdApsYWJlbHMK4paBZWxsb3MK4paBaW5kdXN0cmkK4paBQ29sb3JhZG8K4paBY29udHJhcnkK4paBRHVtCkJlbAriloFWZW50CuKWgWF1dGhvcml0aWVzCllFUwplbnNlZAp1bWJuYWlsCml6emF6aW9uZQprb3UKcmljYQriloFzZWN0CnRlc3RzCuKWgUtsZWluCuKWgWxlZ3MK4paBUGlldHJvCmZ1CnRoeQriloFiYXN0CuKWgXRlZGVzCmV0dGVzCuKWgXJlcGV0CmFjcmUKcmV0dG8K4paBcmVtYWluZGVyCuKWgUdlZwriloHQk9C+0YAK4paBUmVjaHRzCuKWgWZpbHRlcmluZwpvdXNzCuKWgWRlcGxveWVkCuKWgXByw7xmZQriloFiaXRtYXAK4paBc292aQriloE8JT0K4paBZW50ZmVybmUKa2lsbAp0YWJzCkV4cHIK0LrQvtC80YMK4paBUmVwdWJsaWNhbgriloFTaXplCuKWgXBvbGwK4paBcmllbgriloHQutC70YPQsQrDqW5kCuKWgUJpbwriloFwZXJsCuKWgUFuZHJlYXMK0LLQuNC9CuKWgWRpc3RhbnQK4paBRmlubgriloFNaXRjaAriloElewriloFjaGFybQriloFNdWwKcGVyYXRlCuKWgXNjaWVuY2VzCuKWgW1vbm90CuKWgWRlYmlkbwpyaXpvbmEKaWVjCuKWgWFsYXJtCuKWgXByb21vdGVkCuKWgWxldHp0ZW4KYXRpbgriloFjb25jbHVzCmhlcnIK4paBw6ljaAplZGlzaApnb3IK4paBc3R5Y3oK4paBaW1wcmVzcwpydWl0cwppZXJ1bmdzCuKWgXBhcnNlZAriloFyw61vCuKWgVBha2lzdGFuCmlnbmVyCuKWgXdhdGNoaW5nCuKWgWRhdGFiYXNlcwplZGluZwriloFTcGVjaWZpYwriloFnZW5lcmFsZQpsYXgK4paBTG9va2luZwriloFib25kCuKWgXZpc3RhCuKWgWVjCuKWgWdydWQK4paBZGVsZXRpbmcKdGFjCuKWgWphenoKam0K4paBcMOzxYIKTGFuZ3VhZ2UKZGVsZWdhdGUK4paBcmVnaXN0cnkK4paBU2hhcmVkCtGB0YLRgNC+0LkKTXVzaWMK4paBdmVzc2VsCi5ACuKWgVfDvHIK4paBZmVkCuKWgWVyZWRldAriloFHw7YKdXB0CuKWgXBsZWFzYW50CuKWgXRhYmxlVmlldwriloFjb3VudGluZwriloFLcmllZ3MK4paB0L/QvtC70YPRh9C40LsK4paBXSwK0LLQuNCwCuKWgWHFvgpUb0xpc3QK4paBQWR2ZW50CuKWgXNrZXRjaApwbgriloFzaWVyCuKWgdC90LDRhdC+0LTQuNGC0YHRjwppb3AK4paBbHkK4paBU2NobApDb250cmFjdAphc3NvY2kK4paBUGVhcgriloF3aGUK4paBRGVsZXRlCuKWgWVsZW0Kw6R0dGUK4paBxI1lc2sK4paBTUMK4paBc2hvdXQKYWtlc3BlCuKWgWRlZmF1bHRzCnBlbmFzCsOycmlhCuKWgWhpZXJhcmNoeQppcHQK4paBRWxpcwpsaWtlbHkKUm90CuKWgWNvdwriloFzdHJpa2UK4paB0LHQtdGA0LXQt9C90Y8K4paBZW5zZW1ibGUK4paBUHNldWQKVmlydHVhbAriloHRl9GXClJPT1QK0YHQuNGPCuKWgdGB0L7QsQriloFpbnZlcnQK4paBc3dpdGNoaW5nCmh0YWNjZXNzCuKWgdC90LDQs9GA0LAK4paBTm9ybWFuCuKWgWluZ2zDqnMKIVsKb3VzZWwKRE9DVFlQRQriloFzdXBwcmVzcwriloFhY2NvbXBhbmllZAriloFCw6kKaW1wbGllcwpudXQK4paBU3ludGF4CmluaG8K4paBdGFtCuKWgWZvY3VzZWQKYXZhbm8K4paBQmFkZW4KaGFkCuKWgSh7ClR5CuKWgdGA0L7RgQriloHRh9C+0LvQvtCy0ZYKb2dlCmpzcApCbHVlCuKWgXN1YXMKYXBlcnMKU2hvcnQKUmVuZGVyZXIK4paBc2VuZG8K4paBQ2VjCuKWgWBfXwriloFNdW5pY2lwYWwKZG90bmV0CuKWgWJldgriloFEQQpNZW51SXRlbQriloFhbXAK4paBdXJpCuKWgWZpZXIK0YHQu9C10L0KKSwoCmN1bGVzCmlsbGFzCkxPQ0sK4paBZGVyaXZlCnViZW4K4paBR1QK4paBTWFjawriloFzY2hvbGFyCil9fQrQt9C8Cj46OgrRiNGR0LsK4paBcHJpbmNpcGFsZXMK4paB0YbQsNGACuKWgXRpZWQK4paBYWx0YQriloFDaXQKbGluZWQKbWFqb3IK4paBcHVuawriloFjaW5jbwppY2vDvQriloFyYWdnaQp0eXBlbgrRgtC10LvRjNGB0YLQstC+CuKWgWNvbmZlcmVuY2UK4paB0YHRltC70YwK4paBaGV1dAppxaEK0LXRgtCwCnZlbG9wZQpoYm94Cm5vd24K4paBemFyCmt0aXYKaWXDnwriloHRgdGC0YDQtQriloFFdmVudEFyZ3MK4paBSXJhCuKWgVZCQQriloFTYW50bwriloFGYWNoCuKWgUZGCuKWgVJheW1vbmQK0LzQtdGGCmltcGxlbWVudGF0aW9uCuKWgWJyb3RoZXJzCuKWgWPDtHTDqQriloFjb250cm9sbGVycwriloFDbGUK4paBY2FibGUK4paBY29uZmVyCuKWgXstCuKWgWN6xYIK4paBRmlsaXAKYXRvcmlvCuKWgXdpY2h0CuKWgWJlYXVjb3VwCuKWgUxpdAriloFzZXNzaW9ucwriloFTdWNjZXNzCuKWgXJvdXRpbmcKbml1CuKWgVZpY2UK4paBa3JpdAp1cGRhdGVkCuKWgUludmFsaWQK4paBTWFubnNjaGFmdAriloFhb3MK4paBdHVkaQriloFkZXNwcsOpcwpxdWEKQ29udGFpbnMKQ29tcGFueQriloFwZXJzb25hCmFkYXB0ZXIK0YHQvdC4CuKWgXZvagriloFlc2NyaQphZ3QK4paB0YHRgtCy0L4K4paBZGlzdHJpdG8KYXBhbgriloFhc3BlY3RzCuKWgXphbAopXntcCuKWgXN5c3TDqG1lCuKWgdCw0L3QsAppdW1zCuKWgXByZW1pZXJzCuKWgdC/0L7RjQriloFtw6hyZQriloFHdW4KYXBpbmcK4paBUmFpbgriloFpZ3VhbAriloFwcm9jZXNzb3IKJylgCmJsaW5nCuKWgW1pc20KYnLDoXoK4paBY2xvc2VzdAriloFSZWFkaW5nCuKWgdC/0L7Qv9GDCmNvbm8K4paBa3VsdAriloEhIQriloFFeHByZXNzaW9uCuKWgWluZHVjdGlvbgphaHJlbgriloFjcAriloF2aW9sZW5jZQppZW50w60KY2VudGUK4paBRG9iCmphY2sKc29uZwpidWNrZXQK4paBZGVwb3J0CtC60LjQvNC4CmxtCuKWgWlubm9jCkNoYW5nZXMK4paBcHJvaGliCmFuZ29sCmlzZWNvbmRzCuKWgdC/0L7RgAriloFoaXAK4paBcMWvCmVuZG9yZgriloFzY2hlZHVsZWQK4paBRmx1ZwphY3lqCuKWgUZpbG1zCmF0aGVkcmFsClBvd2VyCmFyZGluCmthcAppY2tlbgpyZXNpemUKZXVzCnJyCtC70Y/QvQriloFIYXYK4paBb3JhCkZST00K0LvQvtGB0Y8K4paBdGVydWcK4paBV2lkdGgK4paBYWNjZXB0cwrQsdC10L0K4paBbWljaAriloFDemVjaAriloFCZWRldXQK4paB0LLQuNC0CsO0bWUK4paBTG9vcApzcGVjdArDvGsKZXN0b24K4paBc2xvdAriloF6b3N0YcWCYQriloFDaGFybG90dGUK4paB0YHQvtGB0YLQsNCy0LvRj9C10YIK4paBUHJvbWlzZQriloFlcG8K4paBZGljdGlvbgriloFGcmFua2xpbgriloFSaXYK0YDRg9CzCmNpZGEK4paBRXhwbG9yZXIKY29va2llCuKWgWZvcm1lcmx5CuKWgW11bmljaXBhbGl0eQriloFTdGVmYW4KbGlzdHMKQ09NUApMZW4K4paBU3RhYXQK4paBTkJBCmRlbnMK4paBb3NjaWxsCiEuCuKWgVBPCsO0bmUKZXNlcwriloHQvdCw0YbQuNC+0L3QsNC70YwKdm9vcgriloHQutC+0L/QuAriloHQv9C+0LfQuAp1bHUKQ29uc3RyYWludAriloHRgdCy0L7QtdC5CuKWgWFsZ2VicmFpYwrRh9C90Y8KRGljdAriloFhcHBlYXJpbmcK4paBcHJhdgriloFVbml2ZXJzYWwKQnJvd3NlcgriloFTaW5nYXAKZW5uZXNzZWUKXV8K4paBU29mCuKWgUNhZApvdW5jZQriloFjb3N0cwpde1wKLi4vLi4vCtGB0YzQutGW0LkKw7xobAppZXR5CtC/0YAK4paBaW50ZXJwcmV0ZWQKYWpuCmNvbG9nCllTCm1hbnMK4paBbWV0cmljcwriloFyZWdpc3RyCmlzdGFuY2UK4paB0J/QvtC70YwK4paBYW5vbnltb3VzCuKWgWluc3RpdHV0aW9ucwriloF6ZG9iCnByw7xuZwriloHQsNGA0YLQuAriloFlc3RhdAphY2NpCuKWgWFjYWRlbWljCuKWgWNoaWVzYQriloFHaWFuCmNvbnRyaWIKdW1lZAriloFHaXIK4paBYmFzZWJhbGwKbnVtZXJpYwpHZW5lcmF0b3IKR00K4paBdGlueQriloFkaXN0aW5jdGlvbgrQs9C10YAK4paBcnVzdAriloFGSUZBCuKWgVByb3BlcnRpZXMKXi0K4paB0Y3QutGBCuKWgVN0YW5pcwriloFBamF4CmVzY2FwZQriloFjb25zcAriloFDaGVuCuKWgU5hdmFsCkJpdAriloFiw6J0CtGB0LrQuNC80LgKZHJpdmUK4paBUm91bmQKcGhvdG8K4paBTGV2ZWwK4paBZ2VnClRvbQriloFNb2JpbGUK4paBVHJvcApEaXJlY3Rpb24KaXNhbgopXnstCuKWgVNldHRpbmcK4paBUHJvYmFibHkK0LvRjNGPCuKWgWFzc2V0cwriloFhdHRlCuKWgWJ1bGsKw6lzdAriloF3aW5nCm5pdXMK4paBd2lucwriloFsdWQKdXNoaW5nCuKWgWRldmVuCtC+0LPRgNCw0YQKYnVyZ2VyCuKWgWVtYmFyCkZpbHRlckNoYWluCuKWgXR1bQriloHDtnNzCuKWgW5vbW3DqQriloFwaXIK4paBbHVjCmRibwphZ3VlcwriloFhbGNhbgpvdXdlbgriloFTdGFubGV5CtGG0LjQsNC70LgK4paBZ3Jvd24K4paBcHJlc2VydmVkCuKWgXNvbGFyCuKWgdCd0LDRgdC10LvQtdC90LjQtQriloFwZXJmb3JtYW5jZXMK4paBQ293CuKWgWVuZ2luZWVyaW5nCuKWgXNjYWxpbmcKYXRvbWljCmVuZGFuY2UK4paBYWNlCsOkbmdlbgpBbmltCnBoYXNlCnpidXJnCk9sZAriloFzZXJ2YW50CuKWgWdlbWVpbnMK4paBT2JzZXJ2CnRyYW5zbGF0ZQriloFjb3ZlcmluZwriloFlc3TDoW4K4paBcHJvYmxlbWEK4paB0YPRgdGC0LDQvdC+0LIK4paBbGxldgriloFjemVydwrDqWFsCm1legpSRUUKRVJSCtGC0YPRgNC4CnNlZ3UK4paBcHJvZml0CuKWgW11bHRpcGxpY2F0aW9uCmtvbW1lbgriloFmYXV0CuKWgWNhbmRpZGF0ZXMK4paBVXJpCuKWgUxhdXJhCuKWgXNhcAriloHQstC40YHQuNC90LgK4paBQmV0d2VlbgpmYWRlCuKWgXJlc2VydmVkCuKWgWludm9sdmluZwriloFNYXJlCuKWgUNvbnRhaW5lcgriloHQvdCw0LfQvdCwCuKWgURFQlVHCuKWgWh1cnQK4paBUG9sc2tpCuKWgWx1eApDQgp3YWNoCuKWgdC/0LXRgNC40L7QtAriloFDYXRoZXJpbmUK4paBZ2Fuegp1Y2h0ZQriloFjb25zdW1lcgriloFjcm9zc2VkCm9yZGVyZWQKYXdheQp0ZWNobgriloFzdWJzY3JpCuKWgXNob3J0Y3V0CuKWgdC/0YDQvtC40LfQstC+0LQK4paBc2ltdWx0YW5lb3VzbHkK4paBcmF0aW5nCuKWgUtpbmdzCuKWgXJlbGF0aW9uc2hpcHMK4paBU2V4CuKWgVRvb2wKYWdoCmFjdGVycwpsb2dnZXIKaG9tbWUKZW5nZXJzCuKWgVJpCmVhcmFuY2UK4paBYXBwZWFyYW5jZXMKUmVhbAriloFwYXNzZQppY2xvcGVkaWEK0YfQutC+CnRlcnJlCuKWgU9udGFyaW8K4paB0L/QtdGA0LXQtNCwCmZvb3RlcgphcmNoaXZpCmlmaXoK4paBUHJvdGVzdAriloFMSU4KdW5uYWJsZQriloFjZW50dXJpZXMK4paBQmF5ZXIK0YbRltGOCtC+0LLQuNC9CuKWgUFuZHJlYQpzZWxlY3Rpb24K4paBY2FsbQriloFtb2RpZmljYXRpb24K4paBc2hvcnRseQppbmFpcmUK4paBZnVzaW9uCuKWgWZlZWxpbmdzClBLCuKWgVJvYmVydG8K0LPQvdC1ClNoYXJlZAriloFtZWhyZXJlCuKWgU5pZW0Kb21wCkVudgriloFBcnRpY2xlCuKWgVBvawriloFWQVJDSEFSCuKWgWRpbAriloFhZmZvcmQK4paBY29uZnJvbnQKb3dhbmllCuKWgW1pbmlzdHJlCmFkZXNoCuKWgVBvbHkK4paB0KDQsNGB0L/QvgriloFHcnVwcGUK4paBSGVsZW4K4paBY2MK4paBcG9ydHJhaXQKYmV3CuKWgWJldGEK4paBV2lyCuKWgUF1ZGlvCuKWgShcPApyaW9yaXR5CuKWgW5pdAriloHQv9GA0LXQtNGB0YLQsNCy0LgK4paBVmllCuKWgXfDvHIK4paBSG9sZAriloFTYWQK4paBVG9jaHRlcgriloFvbHRyZQriloFBY3RpdgriloFKYXNvbgriloF3aWVrdQriloFyZWdhcmRzCuKWgXRhc3RlCmFnbm9zdGljCtC70LDRgdGPCuKWgVNlbGYK4paBYXByCuKWgURlZXAKc2NvcApBY3RpdgriloF0eXBlZGVmCkNvbnRlbnRWaWV3CmNvbXBpbGVyCuKWgVJvdGgKeGMK0LfQuNC6CuKWgWxhcmdvCuKWgVJlbmEKaGVpdGVuCuKWgXBsYXRmb3Jtcwp1bGxhCuKWgWdsYW5jZQriloFtYXNjdWwK4paBbWV4CuKWgUpvcmdlCuKWgWZ1bmNpb24KY2hvb3NlCuKWgXJldmlld3MK4paBQWxiYW4K4paBR2xvCuKWgVNwZWNpZXMK4paBRmFtZQriloFSb2xsCuKWgVB1ZXJ0bwriloFcKQp5bW5hcwplbnZpcm9uCuKWgWlwaG9uZQriloFXcmVzdGxpbmcKYcWCeQriloFJbmRpYW5hClJhZGlvClZTCuKWgWluZGVwZW5kZW5jZQrRgtCw0LkK4paBZGVjb2RlCldoaXRlCuKWgWpvdXJuCsOtY3VsbwriloFCYXJiCuKWgUV2YW5nZWwK4paBQW5keQriloFXZWxjb21lCuKWgURldmljZQpnZWYK4paBcmVtZW1iZXJlZAriloF2YXJpYXRpb25zCuKWgUFkb2xmCml0YWluZQriloHQvdCw0LTQvNC+0YDRgdC60L7RmAriloFzdGVhbQriloFjb25jZXJucwriloFgfAriloHQsdC40L4K0YLQtdC70YzRgdGC0LLQsAriloFxdWF0dHJvCmV4dGVuZAriloF0cmFiYWpvCmVuYmVyZwriloFzY2VuYXJpb3MKw6JudAriloFrb21tdAriloFkb21lc3RpYwriloFCYXNrZXRiYWxsCuKWgUNvb3Blcgpzb2NrCtC00LXRgNC20LAKPXtcCuKWgWluaWNpCuKWgVBoaWxsCuKWgdCz0LXQvdC10YDQsNC7CmFyY2hpdmlhdG8K0YrQvQpSb2IK4paBdG9uZwriloFjaGFyYWN0ZXJpc3RpY3MK4paBYW1hegriloFNb2RlCuKWgWluYXVndXIKd2VocgpyYW50CmlvbmFsaQriloFNb3RoZXIKTWEKw6lxdQriloFLZWxseQpjaWxlCuKWgWJlc3RlaHQK4paBZXN0aW1hdGVzCnJ1Z3VheQriloFBbnMKTWFkCuKWgdC90LDQsgriloFkb25uw6llcwriloF0cm9waWNhbAriloFTZXZlcmFsCmVsdGVyCuKWgVBobwprZW0K4paBQ3VzdG9tZXIK4paB0YHQutC70LDQtNGWCuKWgWNvdXJzZXMKUGxhdGZvcm0KbmF2YmFyCmxlYXJuaW5nCuKWgVN3ZWRpc2gK4paBemFzdAriloFMaWcKbWFuYWdlbWVudAriloFsb2QKdWZmbGUKVGV4dHVyZQphcmdhCsOhdHVtCuKWgUREUgrQvdGW0ZcK4paBU29jacOpdMOpCuKWgWRvbWFpbnMK4paBcGVybWl0dGVkCuKWgWV4dGVybmUK4paBcXVlbHF1ZQp2dAp5bWFuCuKWgVdhcmQK4paBYWdsaQriloFhbmRyYQpTbmFwc2hvdAriloFtw6UK4paBeWVhaArQtNC10L3QsArEmXB1CmFza2VsbAriloFSw6lwdWJsaXF1ZQppbmplY3QK4paBJzsKw6RubgriloF6ZWxmCuKWgUVudHdpY2tsdW5nCsOhcmlhCm9ub215CuKWgXN2aWwKaWVzZQriloFjb25zZXIK4paBbmltCuKWgXLDqXN6CuKWgdCY0YLQsNC70LgK4paBcGFydGljaQriloFMaW9uCnNyCmFsd2F5cwriloHQktC70LDQtNC40LzQuNGACtGH0LXRgdC60LjQtQpbLAriloFEZWZpbml0aW9uCm5hbnQKb2VtCklkcwriloHQstC90LUK4paBWy4uLl0K4paB0L3QsNC/0YDQsNCyCuKWgUdPCuKWgcOlcnMK4paBdXTDoW4K4paBb3V0cm9zCuKWgXJlZ2nDs24K4paBTW9uZwriloFmaWxtZQriloF0cmlwbGUK4paBc3BvbnMKRGV2ZWxvcAriloFvdXRjb21lCuKWgUJpYmxlCuKWgdC40LzQtdC90LgKQ2FudmFzCtC/0YPRgtCwCmN1cnIKw6Fzb2sKKXtcCm5pbmdhcgpgOwriloFGbGFzaAo6IwptdXN0CmNwdQriloFmb3JtYXRzCkhhcgriloFlcGlzb2RpbwriloFSb3NhCuKWgWTDqHMKZW1pdApyaXRlcmlhCkFubm90YXRpb24KRmxhZwpnbWFpbAriloFOb3JtYWwKb2xsYXJ5CuKWgWZvc3MK4paBY29uY3VycmVudAriloFjcmFzaGVzCuKWgdCy0LjQtNC1CuKWgU1pbm9yCuKWgVNpdAriloFTTgriloFzY2FyCuKWgWZlbWluCuKWgXNwZWNpZmljYXRpb24Kc29hcAriloFvcGVyYXRlCuKWgXByaW5jaXBhbG1lbnRlCuKWgWF1c3QKaWJpbGUKaXRpbWUK0LvQtdC20LAKaWZyYW1lCuKWgWNvbmNlcHRzCuKWgXRhY2sK4paBdmlzcwriloFjYXJib24KdGVyeQriloFuYW1pbmcK4paBT3J0cwppZGVudGUK4paBQ2FwaXQK4paBZXhwcgriloHQvdCw0YHQtdGZ0YMK4paBU2VsZWN0ZWQK4paBaGludGVyCuKWgWlmcmFtZQriloF6YgppbmRleFBhdGgKY29sbAriloF3cnplxZsK4paBYWNodAriloFncmFkdWFsbHkK4paB0YfRgwrQt9C10LkKaGFmdAriloF0cmFuCuKWgWxhcXVlbGxlCnl0aWNzCklERQriloFweWdhbWUK4paBUGFja2FnZQriloFjbGFzc05hbWUKQmFsCnBlcmwK0YLQuNC90LAKT2NjCuKWgWluZnJhc3RyCuKWgUNoYW1waW9ucwriloFjbGFzc2ljCuKWgVJhdwriloFwYXJ0aWFsbHkK4paBVGVkCuKWgXN0b2xldApyYWluZWQKV0hFUkUK4paBdmFsbAriloFKdWxpYQp6YXQK4paBc3Vycm91bmRlZApTRUUK4paBd2Fsa2luZwpCYWQKRk9SCmNvbnRyZQriloFQYWxlc3QKw6F0aWNvCuKWgWVuZ2luZWVyCuKWgXBhcnRuZXJzCuKWgUpld3MKaWxlcnMK4paBY2VyZW0K4paBaW50ZXJhY3Rpb25zCmFjdQpzdHkK4paBUHJpbmNlc3MKc2hhcnAK4paBU2luZ2xlcwriloHRl9GFCmNoZXoKUmVjZWl2ZXIK4paBcGF0aWVudHMKc3RyaW5naWZ5CuKWgWNvbXBldGVkCmJleQokOwriloFCZApoYWRvb3AK4paBRGl2aXNpw7NuCsO2bGQK4paBcmVzdHJpY3RlZAriloFjb21tYW5kZXIK4paBSGlnaHdheQriloHEjGVzawriloFteXRoCtGH0LDQvQpyYWhhbQriloFlbnF1CuKWgXBvZwriloFjb211bmEK4paBcHJpbnRsbgriloHQutGA0YPQvwriloFkZXBvaXMK4paBc2VhdHMK4paBbmVpZ2hiCtGG0LjQvtC90LAKYWdpbmUK4paBY2xvdGhlcwriloFQcmlvcgpCcmFpbgpGRkZGCic6JwpmZWF0dXJlcwriloFmaWxlc3lzdGVtCuKWgXNpbmdsZXMK4paBTWVsYm91cm5lCuKWgWRlc3RydWN0aW9uCuKWgUx5b24K4paBSW5zZWwKTmF2CuKWgVJlcGxhY2UK4paBbMOpCldobwriloFFc3RhZAriloFkaW1lbnNpb25hbAriloHDtmZmCuKWgWdyYW5kcwrQtNC20LAKcGxhbmUK0L3QvtGB0YLRlgriloFPcmlnaW4KV0kKw6RubmVyCuKWgUNyeQpJVElPTgriloFmw7ZkZAriloFjdWx0dXJhCuKWgVJhbmsK4paBdnVlbAriloF6YWcK4paBTWF4aW0K0L7QvdGDCigpKSkKUmF3CmtpcmNoZQriloFhZGVtw6FzCuKWgXRpZQriloFTdHlsZQrRgdC60L7Qsgppc3RhbnQKb2xwaAriloFaw7xyCuKWgUluZm8KRE9NCnVzYwpuYWhtCuKWgdCk0LXQtNC10YDQsAriloFGb3QK4paBc3BlY2lmeWluZwriloF0aXRvbG8K4paBQm95cwppZWNoClBsYWNlCuKWgUhvZmYK4paBY2FjaGVkCtCy0LDQu9GMCmlzaGVyCnJvbGxpbmcKb3BlbnMK4paBaHIKLS0tLS0tCuKWgW1hZ2dpb3IK4paBdHJhbnNhY3Rpb25zCuKWgWNyaW1pbmFsCuKWgXJldHJlCuKWgUNhbXBiZWxsCikpOgriloFuZWQKUGFnZXIK4paBSGVybwooX18K4paBdW5jbGUK4paBcmVhY2hlcwphcnRvCuKWgWhlbGxvClByZWZlcmVuY2VzCuKWgdC30LDRgtC10LwKTmFtZWQK4paBcmVhZGVycwrRhdGWCmtlcm4K4paB0YPQv9C+CtC60LjQvQriloFsYXYK4paBbm9iCuKWgXNlY3JlCuKWgUxpc3RWaWV3CtCy0LDQvdC40Y8K4paBTWF5b3IKYm9yb3VnaAriloFmaWxvc29mCtC90LXQvdC90Y8K0YTRgNC4CuKWgXBhdHIKRk0K4paBYWNpZAriloFTYWx2YWRvcgriloFhYmIK4paBR3JhaGFtCnBvbGljeQpuZWdhdGl2ZQrFhHNraWVnbwriloFIZWltYXQK4paBZGF6dQriloFtZWx5CuKWgXJpZGUK4paBZHV0aWVzCm92ZXJ5CuKWgVByb3Bvc2l0aW9uCuKWgVBhb2xvCi8nCuKWgU1hdQppbWVudGkKU2FpbnQKZmF0aGVyCuKWgWVxdWlsaWIKcGhvbnkK4paBY2xhcwriloHQvtGC0LvQuAriloFCdWZmZXJlZApyZWsK4paBbWl0dAriloFIdXIK4paBSGFydmFyZAriloFkZW1vbnN0cmF0ZQp1YXJpbwriloFkb2xvcgriloFyZWplY3RlZAriloFNw7xsbGVyCuKWgW5hYwriloFCZWxsZQriloFnYXRoZXJlZApucgpmcmlrYQrDtmxsCuKWgWNoZW1pY2FsCm5pZwriloFjYWxjCuKWgURFRkFVTFQK4paBcGhpbG9zb3BoeQriloFMYXJhdmVsCuKWgWFsaWdubWVudApFVgplb3IK4paBZHppZQriloFtZXN0CuKWgUlvCkNSRQrQt9Cy0LgK4paBTWVkaWMK4paBbsOkCuKWgXphYgriloFTbG92CnV0bGljaAriloFhbXBsaXQK4paBRnJhbmtyZWljaAriloHQutGW0LvRjApJTkQKZXhlY3V0aW9uCuKWgUthcnJpZXJlCmRvc3TEmXAK4paBcsOpYWwKZW5nbwriloFzZXZlcmUK0LfQvNCwCuKWgdGC0YPRgNC90LgK4paBQ2FydGVyCuKWgVJvYmluc29uCmdldEVsZW1lbnRzQnkK4paBcHJvdG90eXBlCuKWgWphcG9uCmbDvGhydW5nCuKWgWNvbnNlZ3UK4paBc3R1ZGkK4paBbGlyZQriloFzY2hsaWXDnwriloFCdWZmCuKWgXJlZHVuZAriloFlcm4K4paBbXlzdGVyCuKWgXByb3ByaW8KYXRlZnVsCuKWgVBhcmVudAriloFsYWRpZXMKcmFjawrRgtC40LrQsAplbmJ1cmcK4paB0LrQsNGH0LXRgdGC0LLQtQriloFFRgriloFzdGFtCuKWgW51ZXZhCuKWgWZpbHRlcmVkCnJldGVuCuKWgUlhbgriloFNYXR0aGV3CmtpaAriloHFkQriloHQutC+0LzQv9C+0LfQuAriloFmb3JldmVyCm9pcmVzCjpcXAriloHDqXR1ZGVzCuKWgXNvdXAK4paBcGxlYXNlZAopfSgK4paBU3RvcApTZXR0ZXIK4paBSGVscAriloFiYXJzCuKWgUVSUgriloEoPwriloFwb2V0cnkK4paBVXRpbApBSwriloFmaWNrCuKWgUlNCuKWgXByb3VkCtC90L7RgdC4CuKWgW11ZXJ0ZQriloFQYWxtYXLDqHMK4paBTmFzCtGJ0LjRhQriloFxdWVyCuKWgWFwZW5hcwpdWycK4paBS29uc3QK0L/QvtC9CuKWgVNjaGlmZgriloFtcAriloHQsdC70LDQs9C+CmZyYW0K4paBaG91c2Vob2xkCuKWgXRyYWN0CmVuY29kaW5nCuKWgXVuZGVydAriloFBdWcK0L7QstCw0L0K4paBQXJ0ZW4K4paBaW52b2tlZAriloFkeW5hc3QK4paBZmxlZXQK0YfQtdGB0YLQstC+CuKWgU11cnJheQriloFndXQKZWxpaG9vZAriloFTU0gK0L7RgtCy0LXRggriloFwZXJzb25hbGx5CtC/0YDQuNGPCuKWgWZpbmFuY2kK4paBVGhvbXBzb24KYWx1CmlkZW50aXR5CuKWgUdyYWIKYWRkbGUKw4l0CuKWgVRvYgriloF2ZXJsb3IK4paBU2FpbnRlCuKWgWRvcAriloHQstC10YDQtQpfX18K4paBcHJvbW90aW9uCuKWgS09CuKWgdC+0YLQtNC1CuKWgWFtYmlndQpPUkRFUgriloFDb21tdW5pYwriloFpbXBseQpvbmVkCmNsdWRpbmcK4paBY29sbGlzaW9uCuKWgWZyYWdtZW50cwpzY3JpcHRpb24K4paBJ3sK0LvRj9GFCuKWgWhhbnMK0YPRgQp3aXJlCm5hbWVzcGFjZQriloFzd29yZApyZWZyZXNoCuKWgWt3YW0KenMKY29tbW9ucwriloFjb3NhCuKWgXJlZ2ltZQpncmVwCuKWgWRpb2MK4paBQ29udGFjdAriloFlc3RhcwriloFTdGV3YXJ0CuKWgXZpZWxlCtGC0L7QstCwCuKWgVJhbgphbm5lcwppZGF5CuKWgXNuYXBzaG90Cm9ycm93CuKWgXphxI0K4paB0YPRh9Cw0YHRgtC40LUK4paBcHJvbWlzZWQKQXNzZW1ibHkK4paBY2hhbXBpb25zaGlwCuKWgURlZmluZQriloFlcmVuCuKWgdC90L7QstC+CuKWgXRoaW5rcwpBZ2UK4paBZ2V2CnZhcmNoYXIKaXZpdMOgCmNvbXBvcwriloFNdXR0ZXIKQ09OVAphcm3DqWUKYWduZXQK4paBQnJvdwou4oCUCuKWgVRlbGV2aXNpb24K4paB0JTQu9GPCuKWgXZtCuKWgW9yZGluCuKWgdCc0LjRhdCw0LkK4paBYXByb3hpbQonKS0+CuKWgXpvbwppcHBpCuKWgXNpbm8K4paBUXXDqWJlYwpyYWdlcwrDpGNrCmVpbmcKYXJsbwpwaW9zCuKWgUNoYW4K4paBZWxsaQriloFpbmNvbnMKZ2VzdGVsbHQKcHBlcnMKSmVhbgphbnN0YWx0CuKWgURhbmNlCuKWgXRvZW4K4paBZGVjaXMK4paB0KDQtdC30YMK4paBb2ZmaWNpYWxseQrDpHR6ZQriloHQtNC+0YDQvgriloFlbnVtZXIK4paBdHJvaXNpw6htZQp0eXAKb2ZmcwrQsdC+0LvRjApvZG4K4paBWmFyCuKWgdC00YDRg9Cz0L4KcXVpYQriloFOaWNvbGFzCtC/0LjRgdGDCuKWgW1vYgpwYWNlcwrQvdGM0L7Qs9C+CkFsZwrDqXJvw68KRXJyb3JzCuKWgdCz0YDQtQriloHQttC10L3RidC4CmluY2gK4paBS29yZWFuCuKWgUFwb3N0CuKWgUxpdmVyCuKWgWVsZW1lbnRhcnkK4paBREkK0LLQuNGB0LgK4paBc29pbAriloFETEwK4paBcmlzcAriloFTaGFrZXNwZQriloFHYXVzc2lhbgriloFLdXJ0ClZlcnRleAplYm9sCm9yZ2FuaXNhdGlvbgrDpHJlbgriloFZRVMKQ1VSCuKWgdC90LDRh9Cw0LvRjAriloHQv9C+0YHRgtGA0L4K4paBTHVpZ2kK4paBY2FjaGluZwpwcmV2ZW50RGVmYXVsdAphbWQK4paBVml0CnN1YnN0CuKWgdGB0YLRgNC+0LgK4paBQ2FtcGlvbgpjaHIK0YTQtdGA0LUK4paB0KHQv9C40YHQvtC6Ck5GCuKWgWPDrW0K4paBaMOpCnJlYmJlCm9jeQpiZWxvdwriloFieWxvCuKWgdCj0LgK4paBXCh7XAriloFgOgpnaW9yZQpTYW4K4paBR2F0ZQriloHQstGBCuKWgW9saW1wCuKWgU1hdHJpeAriloFoZWFyaW5nCnJpaQp0ZnJhYwriloFhbGxlbWFuZAriloFWdWUK0LvQvQriloFjb21waWxpbmcK4paBRW5zCuKWgWludmVzdGlnYXRpb24K4paBQXgK4paBY2hhcnMK4paBdGFyZ2V0cwriloFsb3VkCnVzZW1lbnQK4paBTmV0aGVyCmNvbW1lcmNlCklHSFQKb2NvYQppZmVjeWNsZQriloFMZW8KcHJpdgriloFnb29kcwphZGFtZW50ZQpBdXN0cmFsCuKWgXJlYm9vdApHZXN0CuKWgXJlcHJlc2VudGF0aW9ucwpjZXUK4paBZG9jdHJpbmUKY2VycwriloFLcmFrCuKWgWFkdm9jCuKWgXNxdWFkcmEK4paBYXJiZWl0ZXRlCsO8c3QK4paBcGlsbApBbnN3ZXIK4paB0LrQstGW0YIK4paBV2EKdW1hbm4K4paBRHluYW0KRmFtaWwK4paBdGVubmlzCuKWgUVuZ2luZWVyaW5nCuKWgWNpcmNsZXMK4paBTWFyeWxhbmQK4paBYmVzdGEK4paBYmFzZXMK4paBem5hamR1CtC60YLQvtGA0LAK4paBYXJyZXN0CtC70LXRgAriloFHaWEK4paBcmVtYXJrYWJsZQriloHQvNC+0LPRgwriloFTdXByZW1lCuKWgWAlCmRvcgriloFhdWpvdXJkCuKWgXdpcwpXSURUSAriloFtaXNtYQriloFmbHVpZAriloFwZXRpdGUK4paBVG93ClJlZ2lzdHJ5CmVtZWQK4paBV2lzY29uc2luCuKWgVJhY2luZwriloFyZWdpc3RyYXRpb24KLyUKdGhpcmQK4paBbW9udW1lbnRzCtGH0LXQuQriloFqZXQK4paBVXJiYW4Kw6FsdmEK4paBbWlsaWV1CuKWgXBvc3Nlc3MK4paBZ2VybQpkZXBlbmRlbmNpZXMK4paBZW5lbWllcwriloFzYW1lbgriloFXZXJuZXIK4paBaGl6bwriloF0ZAriloF5ZXN0ZXJkYXkK4paB0JDQtAriloFoYXNuCmNlbGxhdGlvbgpvdsOhbsOtCmxpa2EKV2VlawriloFJbmcK4paBRW1haWwK4paBbcOodHJlcwriloFPQ0xDCuKWgWFtb25nc3QK4paBc3BsZW5kCmZ1cgphbnRpY3MK4paBWFhYCuKWgdCz0YDRg9C/0L/RiwpsYWNoCuKWgWNvdXNpbgriloFpbnZhcmlhbnQK0ZLRgwriloFCZWlzcGllbAriloFoYXJkZXIK4paBYmVsbAriloFvcmNoCnRiCkZvb3Rub3RlCnJlZ29uCk1hcnRpbgriloFpbmNvbgriloFhdHRhY2tlZApfey0K4paBVHJhcwpwYXJ0eQppdGVpdAriloFzYWludApyw6Fzb2sK4paBY29udGFpbmVycwpNbwriloFTbgpxdWFudGl0eQriloFyYXMK4paBQ2FuYWwKY2Npb24KdXZvCuKWgWlkeAp0eXBlbmFtZQriloFSdWdieQriloFTZWVtcwriloF0cmFuc21pdAriloFQcsOkc2lkZW50CtC30L3QtQriloFCYWtlcgppbnRoCuKWgXTDtmJiCnZlcmVpbgriloFlc3BlY2llCiwoCuKWgXTDqWMK4paBV0lUSAriloF1bm9zCuKWgXBvbGl0aWNzCmNyZWF0ZUVsZW1lbnQK4paBc3RhdHMK4paBVGVubmVzc2VlCuKWgUJlZGV1dHVuZwriloFTY3JlZW4K4paBU3RyYcOfZQphbnplCuKWgXBhcnRseQptYW51ZWwKb2xhdGlvbgpob3Jpem9udGFsCsOpcmlldXJlCmFtcGlvCuKWgdGB0YLRgNGD0LoKV2VpZ2h0CkxhbmQKcG9seQriloFEYWsK4paBQXNzdW1lCiIuJAriloFjYXNpCuKWgWdyb3NzCuKWgWVudGVydGFpbgriloFkw6ljYWRhCicuJAplbmNlcgriloFndWFyYW50ZWVkCl0kLgrQu9C40YHRjwriloFhY2NlcHRhYmxlCnJhaXNlCmlydXMKd2VpdAriloHQkNC90LAK4paBaGlsbHMKaXBhZ2UKQklUCuKWgW51Y2xlCuKWgXV0aWxpcwpDQUEKw6huZXMK4paBU2Nod2VpegriloFBQQpuaW5nZXIK4paBYmFuZHMK4paBdGVuZGVyCnNvbQpXYXJuaW5nCuKWgUJpc2Nob2YK4paBQXJjCuKWgVdvbWFuCuKWgXRyYW5zbWlzc2lvbgrRh9C90LgKaXN0cmUKQlkK4paBU0kK4paB0J/QsNGACuKWgX0pLgriloFwcmVzZW50YQriloFSZW7DqQriloFoYXBwaW5lc3MK4paBUHVuawpjb2xzCuKWgURlc2RlCtGA0ZHRhQriloHQvNC+0L3QsAriloFzY3JhdGNoCuKWgXRjcArDqnRlcwppdGF0ZWQK4paBZGlmZXJlbgpnZWgKbmFobWVuCtCf0LUKY2tpCuKWgVRlYXRybwriloFSZW1lbWJlcgriloFmcmlnaHQK4paBWWFtCndlc3Rlcm4KbGV0ZWQK4paB0LLRgdGC0YDQtQriloF0ZWxlcMO8bMOpcwrQt9C40L0K4paBUXVhbnQK4paBc3VwcmUKw6FqYQrQtNGW0Y8K4paBY2FycmVyYQprcmV0CnBhcmEK4paBU1VNCuKWgXBpdArFumR6CsOpbwrRgNC10L3QvdGPCuKWgUNob3IK4paBdm9peAriloFleGVjdXRpdmUK4paBYWxsZXJkaW5ncwpNYXliZQriloHQtNC10L3RjAriloFmbHlpbmcK4paBcGFybGlhbWVudArQttC00LDQvQriloFmcmFtCuKWgdC20L7QstGCCuKWgXVnbHkK4paB0LHRg9C00YMKaWdueQpcfF97CuKWgWJpdHRlcgpzY2UK4paBcG9sZQpWZXJsYWcK4paBdG90YWxpdMOpCuKWgWZvdW5kYXRpb24KanQK4paBc2xpY2UKaWZpcXVlCuKWgWludGVncmF0ZQpzdHJpagriloFhc3ltcHQK4paB0LXQvNGDCuKWgXBlcnR1cmIK4paBRmxvdwpqYm9zcwpSSUcK4paBQWxlc3MKWFhYCuKWgXN1bW0Kc3FsaXRlCuKWgWNoZWVyCnByb2IK4paBR1BVCnppxYIKKCopCuKWgWluZHVjdApSQVkKYmxhdHQKcXVlc3RhCm9ydQriloFJbnNpZGUK4paBTWNHCuKWgU5lcArQvNC/CuKWgWludmUK4paBQW5pbWFsCuKWgXNvYgrDrXRvdHQKbG95bWVudAriloFidW5kClN0YXRpb24K4paBQkVHSU4K4paBcGFydGllbGxlbWVudAppZ2cKZXN0b3JlCuKWgWNvaW5jCuKWgVNvbW1lcgriloFtZAriloFsb2NrZWQKbWF0aGNoYXIKYXJtYQpwZW50CmFyaXVtCuKWgWVhcnMK4paBU29uZ3MK4paBc2ltaWxhcmx5CuKWgWxpdGVyYWxseQriloFpbmNoZXMK4paBYWZmZWN0aW9uCmxwCuKWgWNvbmNsdWRlZAriloHQvNGD0L3RltGG0LjQv9Cw0LvRlgriloHQv9Cw0LzRjwplc3RhdXIK4paBSm9zaAriloFGcml0egpEQkMK0LTRkdC9CnBvc2EK4paBZ29sZGVuCuKWgXBjCuKWgWNvbXRlCuKWgVppZWwK4paBcHLDqXNlbnRlCm1hcmtzCmlnbmV1cgriloFEcml2ZQriloFuZWdsZWN0CuKWgXJvenAK4paBRml2ZQpzcGFjZXMK4paBTWVkaQriloFleGlzdGVkCuKWgWJ5xYJhCtC00LbQuAriloFmcmVudGUK0YLQvdC40LoKb2RkCuKWgWFuc3dlcmluZwpiaWFuCuKWgUV1Z2VuCuKWgVB1YmxpY2F0aW9ucwriloFEaWEKbMOhCuKWgSdfCuKWgXJlY3VwZXIK0L7QvNGDCuKWgUFwcGVuZApvYmFyCuKWgWVtcGxveWVlcwriloFjb21wZW5zCmVtZXRlcnkK4paB0Y3Qu9C10LrRggpNT04Kb2xpbgriloFoaXN0b3JpYwpoaXMKxIVkCm5tCuKWgUdvdGgK4paBc3RyZXNzCuKWgXBhcnRlY2lwCuKWgUF3CuKWgXNhcgriloFodQriloFtYXRwbG90bGliCuKWgU15c3QKKCk7YApzY2hlaW4KTG9uZ3JpZ2h0YXJyb3cK4paB0YDRjwriloFJc3JhClteCm5vdQriloFzeW5kCndvcmtpbmcK4paBTmF0aW9uCuKWgVBlbnQK4paBa2xhc3MK4paBYXBwbGljYWJsZQriloFEaWFtCuKWgWJyYXNpbGUK4paBcGFjCuKWgUhlaWdodApQdXQK4paBaW50cm8K4paBdW51c3VhbApuYXMK4paBR2Viw6R1ZGUK4paBYmVhbQriloFSZWN0CuKWgVByaW1lcmEK4paBaGF1dAriloF0cmFpdApwcsO8ZnQKaW5hY2nDs24K4paBY29uZmlndXJhdGlvbnMK4paBZ2lsdAriloF0ZXJyaXRvaXJlCmhlegriloFhbHRlCnJlbGF0aXZlCkV4Y2VsCuKWgVdyaWdodApHVgrQv9C+0LvQuApRdWFudAriloFnYXVnZQriloFtdWx0aXBseQpBU1MK0YHRgtCy0LXQvdC90L4K0LDQvdGDCuKWgWplZGVuCuKWgWxpdGVyYXJ5CuKWgURybwriloFhZHZpc2UKaXR6ZW4K4paBZGlzYWcKd2Vic2l0ZQriloHQtNGW0Y8K4paBb2JzZXJ2ZXIK4paBamFudcOhcgp2xJsKa3VwCuKWgVNlcwriloF3b2pldwriloFzdGFnZXMK4paB0LLRgNC10LzQtdC90LgKxYJ1xbwK0L3QvtGBCkRvd25sb2FkCmlwbwriloFncmFmCuKWgdGA0L7QsdC+CuKWgU5pa29sCuKWgWZpYwriloFqb2luaW5nCuKWgWRpdmVyc29zCuKWgUxJS0UK4paBRml0egriloFkaW1pbgriloFkaXN0cmliClNhbQprb3oK4paBYWxwaGFiZXQKb3NlcgpPVVIKdWthCtC60LDRjwriloFzdGVlbAriloFgLS0K4paBdGVuZXIKbWFya2VyCuKWgUhlYXZlbgpuZXdjb21tYW5kCuKWgXByaXNvbmVycwriloFLbmlnaHQK4paBcHJlc2VudHMK4paBcXVlc3RpCuKWgXRyYWlucwpvcGVyYQriloFMaW5lYXIK4paBTUUK4paBQnVjCkxlZwriloFhZ3VhCuKWgUdyaWZmCm9sZwpkc3QKLg0K4paBcGVyc29uZXMKTWFsCtCx0LXRgNC1CmZvbGdlCuKWgWFjYWIKY3R1CnB0aWMK4paBTmF2aWdhdGlvbgpSdXNzCtCz0LDQu9GMCuKWgUZ1bAriloHQvNCw0ZQK0YfQvdCw0Y8Kd25lcgpjb250cmEK4paBam91ZXVyCuKWgUplc3MK4paBcmVuZXcK4paBbGFwCuKWgWNhc3RpbmcKZ2FsCuKWgXTDqW1hdHUK4paB0L3QsNC30YvQstCwCtC30LDRhQrRh9C90LUKKS1cCuKWgdGH0LDRgdGC0L4KfSQtCuKWgWxpY3oK4paBZW1vdApoYXJtCuKWgW9jY2FzaW9uYWxseQriloFob3Jyb3IKZWFzdAriloFwcmludGVyCmFyYW4K4paBTWlzc2lzcwpmb2xsb3cK4paBQmFycnkK4paBaW52ZXN0aWdhdGUKZ293CuKWgUFtZXJpY2FucwpTaW5jZQriloHQstGW0LTQvgriloFyZXVuCm9zY2kK4paBQ2hhcHRlcgriloFiYXkK0YDQvtC80LUKZXRoZQrDqWRpZQpjb21vdAriloFtaWVqc2Nvd28K4paBc3R1ZGllcnRlCm91dmVydAriloHQutGD0YAK4paBREVTQwriloF0b3VjaGVkCuKWgUplcnJ5CnVlc2UK0LvQuNGJ0LUKYXV0aGVudGljYXRpb24K4paBY29sbGUKaGVhcnQK4paBcmVnaW1lbnQKY3JpYmVkCuKWgdCR0L7Qu9GMCuKWgdC/0YDQvtC40YEKY2VhZQriloFtYXNzZXMK4paBc2Nyb2xsaW5nCnVzdG8KU1cKb3ZhdAriloFncsOiY2UK4paB0JDRgNGF0LjQsgriloHQodC10LLQtdGACmF2YWl0CuKWgU1hcnNoYWxsCuKWgUhhc2hNYXAKYWNvbgrDvGNrZW4KW10pCuKWgWV2YW5nZWwKZXR6dW5nCnR0ZW1iZXJnCnN0ZXJzClRNCuKWgdC70LjRgtC10YDQsApxdW90ClByZWQK4paBd2VyawriloFoYWJlcgpsYXZhCnZvdXMK4paBTGF0ZQpjeWNsZQrRgtC40YDQvtCy0LAK4paB0L/RgNC+0LTRgwriloFwb3B1bGF0aW9ucwriloFZYW4KUHJlZml4CmFjdMOpcmlzdGlxdWVzCisnCigpYF0oCuKWgdCb0YwK0YTQuNC70YwK4paB0LbQuNC30L3QuApmdHAK4paB0LLRgdC10YUK4paBZ2R6aWUK4paBdmlkZWEKb2F1dGgK4paBcGlkCsWvbQriloFwZXNzbwriloF0cmFja2luZwppemluCuKWgU1vcnJpcwrRidC40LkK4paBUHJvdmluegriloFNaXR0ZQriloFhcnRpZmljaWFsCmJyw6F6a3kK4paB0LTQvtGB0YLQuAriloFyZXN0b3JlZAriloFjb21tdW5pY2F0ZQphZ2l0ClJlY29nbgriloFsb24K4paB0LfQsNC90Y8K4paBQXJndW1lbnQKZmx1c2gK0LzQsNC90LAKc2Vjb25kcwpVQwriloFSdXRoCuKWgXR1YgriloFCcmV0CuKWgVBlcmUK4paBcmVzcG9uc2liaWxpdHkKxYRjenkK4paBZW52aXJvbm1lbnRzCmtlZQriloFncm9vdAriloFwYWludGVkCuKWgcOJZGl0aW9ucwpjcHkKw6FydApsaWNoa2VpdAphcmRhCkJhdGNoCuKWgUxlb3BvbGQKcmVhc29uCm5vcmVmZXJyZXIKc2VucwriloFyb2NrcwriloFIaXRsZXIK0LvQsNGCCuKWgXF1b3RlZAriloHQutC+0LvQu9C1CuKWgdGD0YDQvtCyCmJhZwouIikK4paBTUwK4paBa29tdAriloFbXwriloFzcGVjdHJhbAplZG8K4paBaW5zaWVtZQriloFzdWZmZXJpbmcKc2xpZGVyCuKWgUtlbm5lZHkKb2xhdGUK4paBUGF0cmkK0LfQuNC4Ck9ICuKWgdGC0LXQsAriloHQv9GA0LDQstCwCtC80LDRhQpyZXdyaXRlCuKWgUVpbnNhdHoKZXh0ZXJuYWwKaG9sZHMK4paBUGxhY2VzCmF0eXBlCuKWgXZ1bG5lcgriloFhYmFuZG9uZWQKT3JpZ2luCuKWgW1heGltYWwKQUFBQQriloFCYXNlYmFsbAriloFDbG9zZQriloFwYWludGVyCuKWgWFzc2lnbmluZwpOQgpibGFzdAriloFLw7xuc3RsZXIKKV0oCmZhY2gK4paBQ29uc3RhbnRpbgpva2VzCuKWgW5vYm9keQriloFzdWJ0cmFjdAriloFmb3NzZQriloFjZXJ0aWZpYwriloFtdXNlCi8pLAriloFQcm9maWwK4paBcHJveGltCuKWgUplcnVzYWxlbQriloFzaW1wbGljaXR5CuKWgXdzegpOVU1CRVIKdXR0YXZpYQpVSVRhYmxlVmlldwppY2h0ZXIK0LbQsNC9CuKWgUxhdgppdGNoZW4K4paB0KfQtdC8ClR1CuKWgWdlb20K4paBenZ1a3kK4paBU3VydmV5CkFOQ0UK4paBZW5jcnlwdGVkCnByb2YK4paBZGFyZQriloFMb3JlbgrRgtCyCuKWgdCQ0LvQtdC6CuKWgWNvbXB1dGVycwriloFleHBlY3RhdGlvbgriloFzdWJzdGFudGlhbAriloHQlNC80LgK4paBYHsK4paB0LTRgNCwCnViYmxlCuKWgXBlcmZvcm1zCuKWgUtyaWVnCuKWgWluY29taW5nCuKWgUNsYXNzaWZpY2F0aW9uCldlYlZpZXcK4paBZXBpc29kZXMKYXBwZXIKw6R1ZmlnCuKWgWdpb3YK4paBRGVwYXJ0CtCx0L7RgNCwCmVkbHkKb3Nwb2QK4paBcHRyCuKWgWTDoXR1bQriloFlc3RpbWF0aW9uCmljb2xlCuKWgS0tLS0K4paBcHJpbmNlcwpIRUFECuKWgWRpZmZ1c2lvbgriloFkcmllCuKWgUFkYQrQvdC40YbQtQpuZ2lueApzaGFsCuKWgWZlYnJ1YXJpCuKWgVRhdApsb29raW5nCmt1bmQK4paBRGVhbgptb25nb2RiCtCy0YjQuNGFCuKWgUF1cgriloFGbG9yYQriloFTdHVkaW9zCtGG0LjRmNC1CmVpbApJbnN0YWxsCuKWgWZyYW5jaAriloFITVMK4paBcHJhY3RpY2VzCmxlagpkYWxlCuKWgXBvc3RlCuKWgUhlbHMK4paBcmVsaWFibGUKxbpkemllcgriloF2ZXJzZQplcm1laXN0ZXIK4paBcXVpdArDqXRpY28KaWxpcwplZG9yCuKWgUN1bHR1cmFsCtC00LbQtQriloFsaWtlZAriloFtb25nb2RiCuKWgUJyb2Fkd2F5CuKWgUlSCmVzenQKaG92CuKWgW3DrXN0CnJlaWNoZQriloFrQgrRgdGC0L7QvAriloFTUUxpdGUK4paBdG9ybmVvClwuCk9yZAriloFBZG1pbmlzdHJhdGlvbgriloHQt9C00LAK4paBSGludGVyCuKWgVZpYQpEZWNpbWFsCm9yaW91cwriloFuw6ljZXNzYWlyZQp3eAriloF0ZWoK4paBdGVtYQpPYnLDoXpreQrRgNC40YLQtQriloFidWlsZHMK4paBbGF0ZW4K4paB0LPQswpWaXNpYmlsaXR5CmzDpHUK4paBc2VjaHMK4paB0LvRg9GHCmNlcmEKQ291bGQK4paBdHJhamVjdAp9fV57CuKWgUphcG9uCmFub3RoZXIKSUsK4paBYmVsb25naW5nCuKWgWZhY2lsaXRpZXMK4paBRGFpbHkK4paBZGVjZQppbnRybwriloHRgdC70YPRh9CwCk5hbWVzcGFjZQriloFCYWsKbG9jYWxlClVHCj0kewriloFjb21wYcOxCmrEhWMK4paBYXJpdGhtZXRpYwpmb3J1bQriloFwb3J0YQpvbmsK4paBZ2VuZGVyCuKWgWV4cGVjdHMK0LHQutCwCuKWgW5hawriloFHcmFjZQriloFzdHJvCml2aWR1YWwK4paBQ09NCuKWgUZhcm0K4paBY2FudG9uCtGC0L7QvNGDCmphdmF4CtGB0LXQuQriloFicmllZmx5CkZhY2UKcm90YXRlCmNvbnN0YW50CuKWgWdhbGxlcnkKYXN0cm8KYWxsZXJ5CuKWgURKCmNoYXJnZQrRhdC+0LTQuNGC0YwKQ2VudApcIiwK4paBZG9ubmEKYXJjYQpsYWRlCnppbgriloFOZWQK4paBaG9zdGluZwppZG9yCml0YXRpdmUKaWdzCuKWgdC/0YDRjwriloF0aWNrZXQK4paBc3R1ZHlpbmcK4paBZGVzaWduZXIKbGFwc2VkCuKWgWxhYXQK4paBZGl4CuKWgWludGVncmF0ZWQK4paBaW5mb3JtZWQK4paBYmVoYXZlCuKWgWxhYm91cgplc3RlbGx0CmNhbGVuZGFyCuKWgWtpbGxpbmcK4paBdHdpdHRlcgppYWUK4paBaGlzdG9yaXF1ZQpERUZBVUxUCmlhxYJhCuKWgXRoZW9yZXRpY2FsCuKWgXVuZGVycwrQu9GP0LXRggphdGFuCuKWgXN1cm5hbWUK4paBaW50ZXJjZXB0CtCz0LvQsNGB0L3QvgriloHQvtC/0YjRgtC40L3QuAriloF0aXJlZAriloFCZXRoCuKWgdCw0LTQvNC40L3QuNGB0YLRgNCw0YLQuNCyCkxpCuKWgdCi0YPRgAriloFTY2FubmVyCuKWgVN0ZXJuCuKWgdCy0LzQtdGB0YLQtQriloFyZXBvcnRpbmcK4paBc3VsbArRhtC40LXQuQpiZXJ0cwpvZ29uYWwKxZFrCuKWgWlwc3VtCuKWgXNldWxlbWVudAriloFTZWl0ZW4Kd29yZHByZXNzCuKWgWZlYXR1cmluZwppc3Rpc2NoZW4KanViCuKWgcOpdHIK4paBdGVhCuKWgWFkYXB0ZWQK4paBc2NhbGVzCuKWgW5hbgpnZXRWYWx1ZQriloFCbHVlcwphY2xlcwriloFzdGF0aQriloFlbnRpdGxlZAriloFSYWxwaApncmF2aXR5CuKWgWVudHJlcHIKa3TDs2JlcgpsaW1hdApsaXMKRGVtbwpyZWxhdGlvbgriloFuZXAKcHJvd2FkCml0aXMK4paBcHVwCm5laG1lcgriloFkaXNhcHBvaW50CuKWgWV0d2FzCmFubm9uCuKWgWFwcHJvdmVkCuKWgWNsZXZlcgpMb2FkaW5nCuKWgXZlcnoKcmVzc2UK4paBaW5zcGlyCuKWgXNhbXBsaW5nCuKWgUJlawp9KSQuCuKWgdCz0YDQvtC80LAK4paBc3BlY2llCuKWgXJlcHViCuKWgWxvYWRlcgriloFlcmYK4paBc2hvdWxkZXIKcmFpcwriloHQvNCw0YLQtQriloFNb250aApTY2VuZQriloFibG9ja2luZwriloFvY2VhbgpnZWJlbgriloFLaWxvbWV0ZXIK4paBYmVkZXV0CuKWgU1peApmbXQK4paBTm9yd2VnCuKWgUlEcwpwYXJhbGxlbAriloFhbnRpY2lwCuKWgXJldmlzCtGF0LDQvQriloHRgdCy0LXRggpDQVNFCuKWgWbDvGhydAriloFhdG9taWMK4paBZGFya25lc3MK4paBRnXDn2JhbGxzcGllbGVyCuKWgdCW0LgKcXVpc2l0aW9uCuKWgVNpZWcKQ2lyYwriloFjaWVudMOtCm5lbGxlClNIQQriloF1cmIK4paBa3NpCmxlcXNsYW50CuKWgdGE0YDQvtC9CuKWgWRlZmVjdAriloFyw6EK4paBc3Ryb25nZXIK4paBcMWCCuKWgWNvbW11bml0aWVzCtC90LjQvdCwCmVuYXMKaWVubmVudAriloFzYWZlbHkK4paB0YLRjwriloFiZW5jaG1hcmsK4paBQnJhdW4KbWV0aG9kcwphcmd1bWVudAp2b3MKb2JveArRgNC+0LLQuAriloFyZWNoZXJjaGUKbW4K4paBYnJpbmdzCm1hY2hpbmUKQ0VTUwpob3N0cwriloFOWQpBdXRvdwriloHRgdC+0LLRgNC10LzQtdC9CuKWgUdhcnkK4paBc2Vuc29yCuKWgWRvY3VtZW50ZWQK4paBcHJlbmRyZQriloFwZWVyCmVuaXgKaGFpCmFyYmUK0YbQtdC90YIKXygK4paBVVJJCtC10LLQsAriloFSZWdpZQriloFNb251bWVudAriloFvbmRlcndlcnAKQmFnCnRpdAriloFzdGlyCuKWgW5lcnYK0YHRgtC+0YDRltGPCuKWgXNvdgriloF3cml0ZXJzCuKWgXNvcnRzCmFic29sdXRlCuKWgWRpZmZpY3VsdGllcwriloFwYXJsYW1lbnQK4paBSUVudW1lcmFibGUK4paBZGlzc29sCuKWgUNIRUNLCmFyaW5hCmluYnVyZ2gKRE0K4paBZWluZAriloFidWRnZXQK4paBY2VydGFpbnMK4paBZsO2cnN0YQphbmphCuKWgdCz0L7QtNC+0LIK4paB0YLQtdC6CuKWgUR1Y2gKZ3VpCuKWgVRlYW1zCuKWgdC80L3QvtCz0LgKTWFyaWUKSW50ZWdyClRocmVhZFBvb2wKcnVzdArDrWsKJSIKZW5mCnNwbAriloFiZWd1bgpsb3UK4paBUmV3cml0ZVJ1bGUKdHVwbGUKYW5lb3VzCuKWgW1hcmluZQphdHRhbgppa2FsCuKWgWdyYWR1YXRlZAppbGzDqQriloHQv9GA0L7QstC1CuKWgdCg0L7QtwonLA0K4paBUGZhcnIK4paBbml2ZWwK4paB0L/RgNCw0YbRjgptdXNpYwriloFzZXRUaW1lb3V0CkVSUwriloFFcmlrCnBpdAriloHQpdGA0L4K4paBcGnFggriloFwZXJpCtC00L7Qugp1c3p0CuKWgUJlYXIKQ2xhc3NOYW1lCuKWgVBhcmxhbWVudAriloFhaXgK4paBaW52aXRlZAriloFQQVRICnh0ZXIK4paBUmFjZQriloFoZWNobwriloFUb3dlcgriloF1dGYKYWN0bHkK4paB0LHRg9C00LUK4paBYW5nbGVzCtC90Y/RjwpvdXZlbGxlcwriloFjbGltYXRlCuKWgXNpbmdpbmcK4paBbmF2aWdhdGUKPic7CmFkb3dzCuKWgWxldGEK4paBU2l0egriloFwYXJ0aXRpb25zCuKWgWRvY2sK4paBxbx5CuKWgWFsbG9jYXRlCuKWgWJlbmVmaXRzCuKWgW5pZWRlcgp4cGF0aAptZWNrCsOkbGxlCuKWgWNvdXBsaW5nCtC20LjQuwpGb3JLZXkKYXJnZW50CmNsb3UK4paBaW5zdHJ1bWVudHMK4paBZW50aHVzCuKWgW3DqWcK4paB0J/QsNCyCuKWgVJhY2gKLS0tLS0K4paBQVBJcwriloFWaWVyCkNtZAppdG9yZQriloFDdWJhCuKWgWTDoXR1bW1hbAriloFlbWJlZGRpbmcKc3RkaW8K4paBR2lsYmVydAriloFnZXByw7xmdAriloFzdGF0aW5nCuKWgXRyaWdnZXJzCis9CuKWgXNww6ljaWFsCuKWgWRlbGliZXIK0LzQuNC9ClByb2R1CuKWgVN0YXRpCuKWgXp1cwprdGlvbmVuCkRpc3BhdGNoZXIKaWRhbAriloFMUApvcHRlcmEK4paBZXN0YXIK4paB0LfQvdCw0YfQuArRgdC80L4Kb3VzZXMKZW5nb25vCuKWgVdQRgpwdWJsaXNoCuKWgXRlb3IKZWxpZgriloFlcmcK4paBc2VwYXJhdGlvbgpQYW4K4paBT3JjaGVzdHJhClBldGVyCmJvdW5kcwriloFTaGFrZXNwZWFyZQriloFjYW50YW50ZQriloFkZW1pCuKWgVBvcHVsYXIK0YTRgAphcnJpbmcK0YbQuNC9CuKWgdCY0YEKdm9uCuKWgXN1YnN0aXR1dGlvbgriloFsw61uZWEKXH0kLgpjb21vCuKWgdCy0LDQtgp3YWdlbgriloFyYXJlbHkK4paBcGVyaW9kcwpnbG9iCuKWgUZyaWQK4paBVGVycgriloFSZWxlYXNlCkJyYWluegriloHQs9GA0LDRhApESVMKY29tcGF0aWJsZQriloFwb8SNCkxJTgriloFLw6RsbG9yCuKWgUFyaXpvbmEKcHB5ClNlcQriloFBaW4K4paBVG91cm4KYnJvdwriloFLw7ZyCuKWgWFzaApvZ2VuZW91cwriloFkaWFsZWN0CuKWgdC90LDRgdC10ZnQsApteXNxbGkK0YbQvtCyCuKWgWZsb3IK4paB0YTQu9C+CklBQgriloFXaXRoaW4KXigK4paBYm9pcwriloF0YW5rCuKWgWFmZmlsaQriloFoaWpvCuKWgUthdGUK4paBVmVybAriloFNaWFtaQriloF0eXBlc2NyaXB0CtGa0YMK4paBVmVybgriloHQstC40YHQvgppZW1hbm4K4paBY292ZXJhZ2UKYnJpZQriloFTdGFydGluZwpudW1weQriloFKZW5raW5zCuKWgWvDqXQK4paBZ3J1cAriloFTY2llbnQK4paBaW50ZXJydXB0CuKWgWJsb2IKdWdlbAriloFPcnRoCmFiYW1hCuKWgUJhcHQKb3duaWsK4paB0LHRi9GC0YwK4paBSnVsaXVzCuKWgdCf0YDQtdC3CuKWgXN1YnN0aXR1dGUKc3VwcG9ydGVkCmNoeQplZ3l6ZXRlawriloFQZXJmb3JtYW5jZQpsZXNzbHkKQ29uc3RydWN0b3IK4paBZXh0ZW5kaW5nCuKWgU11c2xpbQpPdmVyZmxvdwriloFKZW5uCuKWgXByb2R1egrQvNGW0ZcK4paBcGHDrXNlcwriloFldXgK4paBZmF0ZQpvbG9nZQrRg9C6CuKWgXdvYmVpCuKWgVNhY2hzZW4K4paB0YHQsNC50YIKTW9kZWxzCuKWgUZhc3QKYmVzb25kZXJlCuKWgUZSCuKWgWFjb24K4paBRGVua21hbAriloFhbmNoCuKWgXDDumJsaWNvCuKWgVRhcwriloFjYW5kCuKWgXBhxbpkemllcgriloHQnNC+0L0K4paBdmVyc3VzCnJ1dApHVAriloFpbnNlcnRpbmcK4paBY2FuYWQK0ZTQvAriloFNZXRybwriloFIZXJ6b2cKSWdub3JlCuKWgWRlY3JlYXNlCuKWgdC/0YPQvQriloFGaXNjaGVyCuKWgU1hbGwK4paBbsO2cmQKaW9zdHJlYW0K4paBTHV4ZW1iCnBheWxvYWQK4paBWmVpdHVuZwriloFtb2RpZnlpbmcK4paBQ2hlcgriloFMdWNpCm54CuKWgWxvb3NlCuKWgXRvcGljcwriloF2YXJpZWQK4paBcGcKYWplcwp1bW0KVmlld3MK4paBQmVhdQpNQVAKaXBlbGluZQriloFJbnRlcmVzdAphcml0aAriloFzZWfDum4K4paBR2VtZWlucwriloFBdHRyaWJ1dGUKY29tbXVuaXR5CuKWgdGG0LXQvdGC0YAK4paBa2lsb21ldGVyCuKWgcOpY29ub20KbGFyYXRpb24K4paB0LrRigriloFjYXJyaWFnZQriloFMYW5lCuKWgdC90LXQvtCxCmt1cgriloFBRgpJTlRFUgopKSQK4paBYmVpZGUKZGVzdGluYXRpb24K4paBZm9udHMKYXBwZW5kQ2hpbGQK4paBTUFSCuKWgWdheQptaWwKbGVzaArDqHQK4paBV2FuZwriloFZZWFycwriloFTeW1ib2wKTGl2ZQpxdWVuY3kK4paBVXNlcnMK4paBVW5pY29kZQriloFTYXUK4paBdG9ucwriloHQndGWCuKWgdC60YDQsNGXCkFYSQriloFQaWNrCkFJCuKWgWhhdGgK4paBYWluZGEK4paBcGFwYQriloFDZW5zbwriloFCYWxkCuKWgdCd0LDRgdC10ZnQtQriloFzaW11bGF0aW9ucwriloFqYXJlbgriloFpbmhlcml0ZWQK4paB0YLQvtC5CuKWgWZlZWxzCnJlc3Npb24K4paBb2t0w7NiZXIKYmlkCsOhc2kK4paBbXVzcwp2ZW50b3J5CuKWgW1laXN0CuKWgWJvcmUK4paBc2xpZGVyCtC00LXQu9C4Clw7CuKWgWV4dHJhY3RlZArQutGD0YAKRWRnZQriloFwZXJmCuKWgUJyaWdhZGUK4paB0LPRgNCw0LQKaWVuaWUK4paBTm9yZGVuCuKWgWNhbmNlcgoiLwpDdXIK4paB0KHQtdGA0LUK4paBbGlxdWlkCnN0cnVjdHVyZQriloFjaG9vc2luZwriloFQZXJsClNpZGUKw7xzCtGA0LjRgtC+0YAK4paBa29zdAriloFwYWNrZXRzCuKWgdC60L7RgtC+0YDQvtCz0L4K4paBQ29tdW4K4paBZmluZ2VycwpvZ3LDoWZpY2EKPjoK4paBY2hhbXBpb25uYXQK4paBYmxpZWIK4paBU2l0dQriloFzdWljCmFuZGlzCkZyZQriloFDb25jCuKWgXJlcHVibGljCuKWgWFybWVkCuKWgWhlbGwK4paBaMO2ZwpyYWdtYQriloFlbnNlCuKWgWFjcmVzCuKWgdCS0ZbQtAriloFSZWZvcm0KTWFpbkFjdGl2aXR5CmtlZXBlcgplcmIK4paBbW9uYXN0ZXIKc3Vic3Vic2VjdGlvbgriloHQlNC40LIK4paBY3JlYXR1cmUK4paBaW5kaWNhdGluZwriloF1cmxzCuKWgWtlaW4K0L7QsdGA0LDQtwpwaWNrCuKWgUFkbWlyCuKWgW9sZGVzdAriloFtdXoK4paBY29udHJhZGljdGlvbgriloFwcm9iYWJpbAppbGxpYW50CuKWgXBhdgriloFwYXBlbAp1YnMK4paB0LbQtdC90LAKQU1MCuKWgXJlY2lwCuKWgUNPTAphZGRlZAriloFjbHVlCuKWgVVrcmFpbmUK4paBamVsZW50CtGH0LXQvdGMCuKWgW1hdGhlbWF0aWNzCkFjY2VwdAriloHRgdC+0YIK4paB0YHQtdCy0LXRgAriloFpc29sYXRlZAriloHQv9C+0Y8Kd8O8cgpSb3V0ZXIKQ0FUCnJnYgriloFMb3YKbXV0YWJsZQriloFXZXMK4paBSXRhbGllbgpEcmFnCmVuaXVtCmF0dGluZwp0Y3AK4paBZXJmb2xndGUK4paBQmVpdArQs9Cw0YLQvgriloFTeXN0ZW1zCuKWgXJlc2VydmUKZXJlZQriloHQn9Cw0YDQuAriloHQt9Cw0LvQuAriloFyZW50CuKWgXN1bnQK4paBR2lybHMK4paBRXJuZXN0CuKWgWZpdHMK4paBb3Bwb24K4paB0LbQuNCy0LXQu9C+CuKWgWF2YWllbnQK4paBRmxvcmVuY2UK4paB0YfQuNGB0LvQtQriloFlbmdpbmVzCkR5bmFtaWMK4paBc3R5Y3puaWEK4paBYmlhcwriloFFeGNoYW5nZQrQtNC40LkK4paBaGlzdG9yaXF1ZXMK4paBSMOkCmhvZAriloF3xYIKc2NoYXAK4paBbGFjCuKWgUZvaQriloFkd2VsbAriloFVbnRlcm5laG1lbgpVUk4K4paBa2lsb21ldHJlcwriloHQntC00L3QsNC60L4K0LrQu9C4CuKWgVNyaQpHcm91cHMKbWluZApvc2xvdgpmZXJuCmVndQphYmVsZWQKRmlkZGxlCuKWgUNlbnR1cnkKLy0K4paBSmVneXpldGVrCkhlbgplbnNlbWJsZQriloFHdXQKX3t7XAriloFyYW5raW5nCiskCtCw0LvQsAriloEjewppbWllbnRvcwphY2hpbQpyaWRlcwriloFLbGF1cwriloFpbnRlbmQK4paBS2VudHVja3kKY2lwZQriloFEaWVuc3QK4paBc2l0dWF0ZWQK4paBcMOzxboK4paBc2NyaXQKY2xpcArQvdC10YIKdGFibGVzCuKWgU5pZWQK4paBTWNLCuKWgXBvd3N0CuKWgWt1bm5lbgriloFFdmFucwrQttC00YsK0LLQsNGC0YwKdWNoYXIK4paBcmVzaWRlbnRzCmlhawriloFSZXNvbAriloF2ZWNlcwriloFzYXRpc2Z5aW5nCklORgriloHRgdC40L0K4paBY3Jvc3NpbmcKaWJlbgriloHRiNC40YDQvgpwdG8KSUxMCuKWgdGA0L7Qu9GMCuKWgWFrdGl2CuKWgdC+0LHRgNCw0YnQtdC90LjRjwpXaWtpc3BlY2llcwriloFIw7ZoZQpjcm8K4pWQ4pWQ4pWQ4pWQCmFsdHJhCuKWgUZJTEUK4paBdXBzCuKWgWFsbG9jYXRpb24KTWljaGFlbAriloFhY2tub3dsZWQKTGludXgK4paBbWV0cm9zCnR0ZQphZmVuCuKWgXhjb2RlCuKWgdGC0YDQsNC00LgKc3BlY2llcwriloFpbmp1cnkK4paB0YHQsNC80YsK4paBbGF0dGljZQpNYXRlcmlhbAphbmRlbmJ1cmcK4paBaHV2dWRzdGFkZW4Kc3RvcnkK4paBdmFyeWluZwriloFrw7Z2ZXQK4paB0KDQvtGB0YHQuNC50YHQutC+0LkKaXJzZQriloFkcnVtClByZXNzZWQKTGFyCuKWgUFndQriloF3ZWlsCuKWgWNvbW1lbmNlCuKWgVNlZ8O6bgpHZXN0dXJlClNoYXBlCuKWgVZvcnMK4paBc3VjY8OocwriloFjb3JyZWN0ZWQKS2FyCuKWgWNydWVsCuKWgXBvbGl0aWNvCuKWgVNjaHJpZnRzdGVsbGVyCuKWgXJpc3VsdApldHUKYXJjaGl2CuKWgWfDqW5lcm8K4paBTMO8CuKWgXRyaXVtcGgKT1JTCkx1CuKWgXBlcnNvbm5lbAriloFIaWxscwphc3NldApkb21pbgpSZWNlaXZlCuKWgU9hawriloFLbm8K4paBVGhlb3J5CmlyaWUKb3dhbgriloFlc3RhdmEK4paBZXhlY3V0ZXMK0LnRggrDs3BlegrQv9C+0LvQvgrDqXRpY2EK4paB0L3QsNC30LLQsNC90LjQtQriloFjb252ZXJnZXMK4paBbm90cmUK4paBcG9wdWxhdGVkCuKWgW1vdmVtZW50cwriloFzdGF0aXN0aWNhbAriloFad2VpdGVuCnF1aW4K4paBaW1wb3J0YW50ZXMK4paBa2xlaW4K4paBU2VndW5kYQpzY2hsaWXDn2VuZApGYWlsdXJlCm5hcgpkYWcK4paBcnVvbG8K4paBZmljdGlvbgriloHQuNGB0L/QvtC70YzQt9GDCuKWgWNyaXNpcwriloFHZXR0aW5nCiwlCuKWgdCw0YDQvNC40LgK4paBY2FtcHVzCuKWgWZvb3RlcgriloFkw61hcwrQsdCw0L0K4paBbGliZXJ0eQriloFnaAriloFjaGFtYmVyCuKWgWRpc3RyaWN0cwriloFleGNpdGVkCuKWgWNhbmNpw7NuCnRlcm8K4paBV29ya2luZwriloFjesSZxZtjaQrQu9GM0L3Ri9C5CuKWgWZvcnVtCuKWgUVoZQriloHQutCw0YLQsAppdGF0aW9ucwpUb29scwphY2hpdgriloFjcmVzCmFzdG8K4paBcmV2ZXIK4paBbmF6aW9uYWxlCuKWgWRvb3JzCuKWgU5hbmN5CuKWgWlzbGFuZHMKSW1wCuKWgUNoYWlyCuKWgXZvcm0Kc2VpbgriloHQtNC+0LrRgwplcnNldAriloF0w6R0aWcK4paBS3JpdAriloHQv9GPCuKWgWNvbnNlcnZhdGlvbgriloFQYXJ0aWRvCm1pbmlwYWdlClZhbGlkYXRvcgriloFyZWNvdmVyeQriloFOQVNBCuKWgWJyZWFzdAppbHR5CmFuYWx5CmVsaW5lcwriloFTYXR1cmRheQplbWFyawpjZWoKWmVybwriloFUdXJuZXIKc2VjdXJlCkV4aXN0cwriloFSaWNrCmV2YWx1CmN0cmwK4paBY29tcHJlc3Npb24K4paBQ1VSTAp0ZXh0Y29sb3IKKVwsCmxvbmdyaWdodGFycm93CuKWgUZlcm5zZWgKaWNoYQriloFsb2kK4paB0J7RgtC1CuKWgWNhdmUK4paBZG96ZW4K4paBZXhwbGFpbmluZwriloFpbm5vdgriloFOaWNob2xhcwriloFkaWFtZXRlcgriloFNYXJpYW4K4paBZmlyZXMK4paBYXJ0aWZhY3QK4paBUGFya2VyCuKWgUJ1bmQK4paBdmVydGUK4paBdGFsZW50CuKWgUx1Y2FzCnJldmVyc2UK4paBZm9sZ2VuZGVuCuKWgVNhaApqZWN0aW9ucwriloFpbnZlY2UK4paBY29zdGl0dQriloFzc2wKfX1eCuKWgXZpb2xlbnQK4paBc3BvcwpSb3V0CmpkawriloHQt9Cw0LzQtQriloFmdXJlbnQKYW5kYWwKSG9tCuKWgVNlbmlvcgriloFwb3VuZHMK4paBRGlzY29ncwriloHQt9C1Cid9WwriloFOYXBvbGVvbgpvcmRpbmF0ZXMKw6BuCuKWgWt1cnoK4paBdmVyZQriloFyZXVzZQriloHQk9C10L0K4paBU3lzdAriloFkaXNhcHBlYXJlZAriloFXYXRjaApiaWJsaW90aGVrCuKWgdC60L7RgNC/0YMK4paBQ3MK4paBfWAK4paBcsO2cgriloHQtNC10LvQsApWQgriloFjYWxjdWx1cwrRgNC+0LTQsAriloFqdWRnbWVudAphdGlsZQriloFsb25ndWUK4paBSHVzCkphYwp9fSkKUklQVApJQUJvdAriloFhcMOzcwriloFhc3RvbgpXZWJhY2hpdgriloFVUkxzCuKWgWNvYXQK4paB0Y3QutC+0L3QvgriloFsZWFyCmV4dGVuc2lvbnMK4paBQ2xhc3NpYwpUSQriloFUYWdlCuKWgWzDoQriloFzZW1iCuKWgWTDqXZlbG9wcGVtZW50CklTVFMK4paBc29sdmVzCixcLAriloHRh9C10LzQv9GWCm9yZGluYXJ5CuKWgUJhdgriloFtdWNob3MKU2VsZgriloHQnNCw0LkK4paBRGlldAriloFuZWNlc3NpdHkK0LLRltC0CuKWgW1hbm8K4paB0KHRgAriloFjYXJyZQriloFDYW1lcmEK4paBTmFyb2QK4paBUGhvbmUK4paBcG9seW0KaW1vcmUKaXNFbXB0eQriloFIb3VzdG9uCuKWgVJlY2UK4paBcHJlc2VudGF0aW9uCtC90LjRhtC40L/QsAriloFEYgriloFjb25maWRlbnQK4paBfXsK4paBYnVsbGV0CuKWgXt9LApBTkdFCuKWgU5vdHJlCmNoaW4K4paBRHJhZ29uCmVyY2EKaWFsaQriloFhc3NldAriloFtdWl0bwriloFkZWVwbHkK4paBcmVzdHJpY3Rpb24K4paBY29tbWVyY2UK4paBQm9tYgpjYXVnaHQKcXEK4paBQXJhZwriloHQvdC10LzQtdGGCuKWgUFuYWx5c2lzCuKWgcSNbMOhbmt1CuKWgWJhYnkK4paBZWNodGVyCuKWgdC+0LTQvdC+0LPQvgrQttC10L3QsAriloF3aGl0ZXNwYWNlCsOndQpMSVNUCmZyaXF1ZQriloF2YXJpYXMK4paBV2l0CuKWgUxpY2VuY2lhCkV4aXQK4paBc2llcnAK4paBYXNzZW1iCuKWgXNwbGl0dGluZwriloFwYWxhY2UK4paBYmxvY2tlZAriloFib3VuZGFyaWVzCuKWgWl0ZXJhdGlvbnMK4paBUm90dGVuCuKWgVZlcmtlaHIK4paBd2VlcgpUZXN0cwppZnRpbmcK4paBcmVndWwK4paBcGVyc2lzdAriloFTb2x1dGlvbgpwYgriloFjb2xsYXBzZQriloFhcnJlc3RlZAriloFwcmVkaWNhdGUK4paBWm9uZQriloFpbmdlbgp6w6FsZXoK4paBYmFua3MKcGxhbnQK4paBTmVsbGEK4paB0LHQsNC9CuKWgVNub3cK4paBS3JldXoKw61jaW8K4paBZW50ZXJzCuKWgWV4cG9zZQrEjWkK0YjQuNC1ClF1YWwK4paBbGFuZHNjYXBlCuKWgdC/0L7QtNCw0YbQuNC80LAKbWFpCnN0YWcK0L7QstCw0L3QuNC5CkRFRgpbXXsK4paBZGVybmnDqHJlCmljdXQK4paBWG1sCuKWgXN1Ymdyb3VwCuKWgVBvbHNjZQriloFXYXJuaW5nCuKWgXZlaGljbGVzCmlvdAriloFkbGwKcm9udAriloFMb3Vpc2UK4paBYXJhCuKWgVNjYWxhCuKWgWNhbm9uaWNhbAriloFwbGFjaW5nCkVSWQriloFKYWcK4paBdmlydXMKZW11CuKWgX0pOw0K4paB0LzQvAriloFUcnlpbmcK4paBTGV4aWtvbgphYm9yZAriloFleHBlZGl0aW9uCuKWgWRlbWFuZGVkClp5ZwpsZWluCuKWgXZlcndlbmRldArRgNC40L3QsAp3b2wK4paBcGl2b3QK4paB0L7QtNC90LDQutC+CuKWgXByb3ByaWV0CuKWgWF3YXJkcwp0b3V0CuKWgWFzc2ltCuKWgVN0b3JtCkxpbWl0CmVsaW4Kd2VhbHRoCnVlegriloFyYXBwcmVzZW50CuKWgXJlc3RhCuKWgWdlZ3LDvG5kZXQK4paBam91cm5hbGlzdAppc2llCuKWgWZhY2lsaXR5CmlsbGVkCnVsawriloFQSwpBbmNob3IK4paBXykKVkYKTEFCCuKWgW7DpQpvZG9zCuKWgWJpbGxpb24KdmlydGkK4paBSmV1eArRjtC30LAKdG9tY2F0CuKWgWNoYXJ0cwriloFCdW5kbGUK4paBbHN0CuKWgWV4ZXIK4paBZmVtYWxlcwriloFvYmxpZ2VkCuKWgWFieQpyb2xsZWQKZHJpCuKWgVNjaGUK4paBdmVzc2VscwpJTUFSWQriloFyZWFzb25pbmcK4paB0L/RgNC+0YLQtQpGSUxFUwp2ZXJrCm9zb3MK4paB0LrQvtC80LzRgwrQtNGW0ZcK4paBZGQK4paB0YHQvtC+0YLQstC10YIK4paBSU9FeGNlcHRpb24Kc2vDvWNoCuKWgUNMSQriloHRmtC1CkNNClRECuKWgXBvc3NpYmlsaXRpZXMK4paBQ29tcG9zCmhhbGYK4paBd2VicGFnZQriloFzd2luZwriloF6YXMK4paBY3ljbApsZWlkCmlzdGljYQriloFJbnNlcnQK4paBU3dlZGVuCuKWgXdhbnRpbmcK4paB2KfZhAriloFlZXV3CuKWgUFkbWluaXN0cgriloFXYXJyZW4K4paBYnMK4paBcGFtCmFudXMKRHJhCmV4cGwK4paBS2FudAriloFBdXN0aW4K4paBY3NhawriloF0aGVhdHJlCuKWgWNvbXBhdGliaWxpdHkK0LzQsNGC0LjRh9C1CnNldFN0YXRlCtCx0Y4KfXt8CuKWgUR5CuKWgVp3aXNjaGVuCkFsdApDTEFSRQpzdGVwcwriloFMYWdlCuKWgU1pdHQK4paBRHVibGluCuKWgdGA0LDQsdC+0YLRiwpkZWVwCuKWgWZsb3dzCuKWgVBhbGFjZQp1bml4CnJlZnMKdW1hcgphc2V0CmNvdgriloFwaW5nCuKWgVNhZmFyaQpmbHVnCmNyZWVucwp7IwriloHRgNC10LAKYWRvcnMK4paBYW1vcgp1Y2UKZGVtaWMK4paBTmV0aGVybGFuZHMK4paBY2x1c3RlcnMK4paBZW5mb3IKbWFyaW5lCuKWgWJ1Z3MKaXp6YXRhCuKWgXNjcmEKTGVzCnF1aWNrCuKWgXR1cm5vCl8qCtC10YDQsApHZW5lcmF0ZWQKPlsK4paBZXN0cmUKb3JkZQriloF2ZXJnCtGA0L7QtwriloFwYXUKaW5jbHVkZXMKYXNzYQphZGVycwriloHQk9C10YDQvNCwCuKWgWVzdGF2ZW4K4paBZWFybGllc3QK4paBcmVzdWx0YWRvCm11bgriloFwbG90cwpkaW4Kc29ydGVkCuKWgXByZWZlcmVuY2UKcmnDswrRgtGD0YDQtQriloFMaWd1ZQriloHQt9Cw0LLQtdGACnBocgriloFwb2NrZXQK4paBcGFybAriloFsYWsK4paBcG93aWUK4paBYWx0cmVzCiR9OwpwbGFpbgriloFDcmVkCml0emEKcGVycApHcmVlbgriloFkZXZvdGVkCnByb2R1Y3Rpb24Kd29ya2VyCmVsc2VuCuKWgXZlcm4K4paBbcOhcmNpdXMK4paBQ29uZmVkZXIK4paBTGl2ZXJwb29sCuKWgdC80YPQt9C4CuKWgWVtYWlscwriloFkaXN0YW5jZXMK4paBc2VnbWVudHMK4paBYW50aAriloF3cmVzdAriloFob29nCuKWgWNpbmVtYQpycm9yCuKWgWdlYm9yZW4K4paBw6ljCk1hcmtlcgriloFDb21wZXQK4paB0LvQuNGB0YLQvgphbGxvd2VkCnZvbHVtZQpFc3BhZ25lClplCuKWgWZpeGVzCuKWgXJvbmQK4paBYXJyYW5nZW1lbnQKL34KLl0oCuKWgUZvcnLDoXNvawriloF3ZWl0ZXJlbgpleGNlbAriloHQt9C80ZYK4paBbW9kZXJuZQpFbmdsaXNoCuKWgVRyYW5zZmVybWFya3QK4paBYmVhcmluZwriloFjbGVhcmVkCuKWgdGB0LDQvAriloFkaXZzCsSHaQriloHRjdGC0L7QuQriloHQk9C10L7RgApzY2VuZQriloFhZ2VzCkdFTgpyw6RuCuKWgVRvdWwK4paBQWJzCmrDoXQK4paBbWVkaWFudGUK4paBZW1wcmVzCuKWgUVtcGxveWVlCuKWgXBvbHlub21pYWxzCuKWgW9wdGltaXplCuKWgdCy0YvRgdGC0YPQv9CwCmZhcmUK0LLQtdC5CnhmCnF1ZXoK4paBYm90YW4K4paBZGVmZW5kCuKWgVF1YXJ0Ck1vbnQKdmIKdGljawpXRAptaW5lCuKWgW1vZGlmaWMKbm90aWZpY2F0aW9uCuKWgWRlbm4K4paBYWxnbwriloFTcG8K4paBbWlzdHJ6b3N0Ci86CuKWgWFwcmVzZW50CuKWgdC/0YDQvtC0ClZvbHVtZQpza8SFCnByb3RlY3RlZAriloFUdXJraXNoCmF6eQriloFwb3V2CuKWgXBlcsOtb2RvCnNrb2cK4paBZW50cm9weQp6ZWQK0YLQvtGA0LgK4paBbGlqCmJvYXJkcwriloHRgdGC0LDRgtGDCkJvb2wK4paBcG9saXR5CkAiLAriloHRgNGW0LoKbsOpZQriloFadWcK4paBVW5pdGkKw6ltZXQKYXRpZW5jZQpkaW1lbgriloFTdGV2ZW4KSGEKQUNUSU9OCuKWgXdhbmQK4paBTmF2YXIK4paB0YHRltGH0L3RjwpXYXRjaAriloFTdHVhcnQK4paBemRlCuKWgdC60L7QvdGC0YDQvgpkYXRhc2V0CnnDswriloFCdXNoCuKWgdGB0LXQsdGPCuKWgXdvcnRoeQriloFCbGUK4paBcHJvcG9yCuKWgVZpbGxhZ2UK4paBcnkK4paBdm9pdAriloHQutC+0L/QuNGPCuKWgXpwCuKWgWN1cmEK4paBSHRtbAriloFEaWVzZXIK4paBRGF5cwpvbm5lcwriloFhbnRpZ3UK4paBU3RhYXRlbgriloFmYWludApvbmdzCuKWgcO2c3QKUmVkaXJlY3QK0LXQu9GMCmF0b3JpYWwK4paBYm90aGVyCkVkaXRUZXh0CuKWgUdpdWwK4paB0LfQsNCy0L4K4paBcHVlYmxvCuKWgU1pc3Npc3NpcHBpCmphawriloF3aW5ncwpvbmMKw612ZWwKaWVuY2lhCmVudGxpY2h0CuKWgUJUVwpvcm5hbAriloHQmtC+0YDQvgriloHQvtC00L3QuNC8CuKWgXNhbHYK4paBZmluZGVuCmdlbwriloHQsNCy0LjQsAphdHR1bmcKdml2CuKWgUx1dGhlcgriloHQvtCx0YnQuAriloFSb2xsZQriloFBYnJhaGFtCuKWgWNlbnRlcmVkCuKWgXNsYXNoCmlzYXQKZW1hbm4KT3MK0L/QsNGA0YLQsAriloFQYWJsbwriloFjb2xsYWJvcmF0aW9uCnBhdGhzCsOpZGl0aW9uCuKWgXZpZXdlZAriloFjb25zaXN0ZWQK4paBcmVjb3ZlcmVkCuKWgU1leGljYW4K4paBRml4CuKWgXNwZWxsClNwZWNpYWwK4paB0KHRggplc3NldXIK4paB0KPQutGA0LDQuNC90YsKZm9ybWVyCuKWgcWbdwriloF6ZXJvcwriloFTdHJhw59lbgriloFvcmdhbmlzYXRpb24Kw7xzc2VuCuKWgVNpZXJyYQriloFTZWFzb24K4paBdm9sb250CkJlYW5GYWN0b3J5CuKWgdC/0L7QvNC+0YkK4paBcHJlc3NpbmcK4paBZXF1aXZhbGVuY2UK4paBY2F0dAppY2l0eQriloFhY2NvbXBsaXNoZWQK4paBeW8K4paBc2ljCuKWgWltcG9ydHMK4paBYWNjb21tb2QK4paBUG9ydG8K4paB0Y/QutCwCuKWgWxvYW4K0YLQuNC60LgK4paBY2hlY2tvdXQK4paBYXNzZXNzCuKWgVBvcHVsYXRpb24KdXJlbnQKY2xvanVyZQriloFTYW50b3MK4paBaW5mb3Jtw6FjacOzClBPUwriloFnYXJlCuKWgWtpY2sK4paBcmFkaWNhbAriloFQZWFjZQriloFzdHJlYW1pbmcKY2FtcAp6xIV0CtCz0L7QstC+0YAK4paBUmVnaWVydW5nCuKWgXByb2NlZWRlZApmbQrQu9C10L3RiwriloFlYXJuZXN0CuKWgVBhcmFkCnJlcXVlc3RzCuKWgVJhdW0KxaHEjQriloFwb2xpY2llcwriloFUaWcK4paBc2l0dAriloFFbmVyZ3kK4paBcHVyZWx5CuKWgUhhdXQK4paBU3BlZWQKYmlvCuKWgW9yYW5nZQriloFiaWdnZXN0CuKWgWJyaXRhbm5pcXVlCuKWgU5vdGFibGUKdnUK0LvQtdC90LjQuArQsdC40L0K4paBTmFzaArRidC10L3QuNC1CuKWgWNpZWwKYWTDqW1pZQriloHQs9GA0YPQtNC90Y8K4paBam91ZQriloF2b3RlZApyaWNvCuKWgdCz0L7RgAriloHQutC+0LzQsNC90LTRgwppdGl2aXR5CuKWgdGJ0LUK4paBZGVmaW5pdGUKdXJvcGEKISIpOwpEZWZhdWx0cwriloHQvdC10LrQvtGC0L7RgNGLCsOpZMOpcmF0aW9uCuKWgXNpbGx5CuKWgXRhbGtlZApyZXUK4paBTG9tYgriloFzdGF0dWUK0LrRgtCwCtGO0YAKdW1hYmx5CuKWgdCz0L7RgNC+0LTQtQriloFSdW50aW1lCuKWgWRpYWduCuKWgXJldHJvCuKWgVN2ZXJpZ2UK4paBaW5pY2lhbAppZW56YQriloFmaWdsaW8K4paBem9nCuKWgXJleQriloFSdW5kCtGC0L3Ri9C5CuKWgWNlYXNlZAplcm5vCuKWgWVzYQriloF0cm91dgriloFHZW1laW5kZW4K4paBY29tZXJjaWFsCnNrYXAKZW5hcmlvCuKWgWp1cmlzClRCCtC90LDQu9CwCuKWgXZpagpWTwriloFjbGluCmrDtnIK0YHQsNC9Cm93YcWCYQpyaWJ1Y2nDs24K4paBdXJzcHLDvG5nCuKWgWNvbmRlbQriloFTdGFnZQriloFtaXhpbmcK4paB0YDRltC3CuKWgWZhbnMKaMOhegpzb2NpYWwKemFuCuKWgdGB0LLQvtC5CkNvb2tpZQriloFSb2xhbmQKYXppb25hbGUK4paBU2xvdmVuCuKWgUZpY2hlCuKWgVPDqQpow6QK4paBb2ZmaWNpYWxzCuKWgcOubnQKSW50ZXJjZXB0b3IKVGFibGVzCuKWgWRhdm9uCmluaXRpYWxpemUKXT0iCuKWgUJvZHkK4paBVXBwZXIK4paBQ29sbGVjdAriloFaw7xyaWNoCkhvcml6b250YWwKVHlwCuKWgXBvbMOtdGljbwriloFSZXdyaXRlQ29uZAriloFob3BlZAriloFhbnhpb3VzCkxpdGVyCmphaHIK4paBYXNzZW1ibGUK4paBY3J5cHQKbGFob21hCkFTSAriloHQkdGA0LgK4paBQ2ljCnR3aXR0ZXIKaHlwZXIK4paBVGVsbArRltC70YzQutC4CtCy0L7QsdC+CuKWgWJhemllCuKWgWNvbnRlbXBvcmFyeQriloFQYXJhbWV0ZXIKc3R3YQriloFiZWtlbmQKY29jawpwcmV2aW91cwplbnNrYQriloFjYWxsZXIKXV0pCuKWgVJhegriloFTZWxvbgriloFwcm9wb3NhbAriloFiw70K4paBU2llZAriloFBcmJlaXRzCuKWgXByaWRlCuKWgXNsb3BlCmlkw6kKZ3JhZGllbnQK4paB0JTQttC10YDQtdC70LAK4paBU0gK4paB0YDQsNC30YDQsNCx0L4KaXZlcnNpdHkK0YHQv9C+0LTQsNGAClx7XAriloHRgdGC0LDQu9C4CuKWgUVpbnplbAriloFyZ2JhCuKWgUFuaW0K4paBYWxsZXMK0LHQsNGACmVydGUK4paBcsOpYWxpc8OpCkluc3RpdHV0CuKWgW1hcmt1cAriloF2YXJzCuKWgWdhbQriloHQktCw0YHQuNC70YwKaXp6YQriloFDb2IK4paBTWV0YWwK4paBbGVhawriloFMYW5jClN3aXRjaApEZWxheQphdHV1cgriloHRh9C10YLRiwriloHQsNC90LPQu9C40LkK4paBbGVnYWN5CuKWgWRlc2Fycm9sbAriloF0b3BvbG9naWNhbAriloFqZXdlaWxzCuKWgU5lZGVybGFuZHNlCuKWgWF0bW9zcGhlcmUKdXJiYW4K4paBc2xvdgriloFsYXd5ZXIKcGVjaWFsbHkK4paBYWx0ZXJuYXRlCuKWgXBhcmFtZXQK4paBZXN0YWJsaXNobWVudAriloF3b29kcwpQRAriloHQvdCw0LgK4paBbWFuZwriloF3ZWNoc2VsdGUK0YHRjNC60YMKLj0K4paBZmlmdGVlbgpTVU0K4paBRnJvCuKWgUxFRApvd2FubwrRgdGC0LLQuNC1CuKWgURvbm7DqWVzCnRvbArFvHluCmNyZWYK0YHRgtCy0LjQuApob3JuCuKWgdGB0L7QvtCxCuKWgdC+0LHQvtGA0L4K4paBQ29tcGxldGUK4oCcKQriloFraW5kbHkK4paBQ2hhbWJlcgpzw6lnCldICuKWgWFtYmllbnQK0LrRgNC+CuKWgWNoZXZhbAriloHQvdCw0L/QuNGB0LAKZmx1CuKWgU9mZml6Cm1hdGUKbmF0dXJhbApzZXBhcgplbXByZQpWaWV3SG9sZGVyCmZ3CuKWgWxldGVjaAriloF0cmFpbGluZwphdHJpCuKWgUfDswriloFCb25uCuKWgXVubGlrZWx5ClJBTQplbnN0ClN0YXRzCuKWgdC/0L7Qu9C40YLQuNGH0LUKKS0tKAriloF0cm9tCiEuLi4K4paBTWVhbndoaWxlCtGB0YLQsNC90LAK4paBUmVpbm8K4paBQXJpc3QKJH19JQriloFzb2xlbQpjbG9zdXJlCmlnbmF0aW9uCsWCb2QK4paBZGl2b3IK4paB0LzQtdC20LTRg9C90LDRgNC+0LQKPSI8PwriloFtb2x0CuKWgXNraWxscwriloFDaXIK4paBRGVzcHXDqXMK4paBbHVuCuKWgWNvcm9uCuKWgUNvbWljcwrRgdGC0L7RgNC4CuKWgUl0ZW1zCuKWgVRoaW5rCtC40LPRgNCwCuKWgWdyb3dzCnBvcnRhbAriloFuaWNoCuKWgXJlc3RyaWN0aW9ucwriloFMYXUK0YjQtdC90L3RjwriloFTb3ppYWwK4paB0LrRlgptYW5hCuKWgWxpZXV0ZW5hbnQKQXR0cgp1bWVyaWMK4paBZHJpdmVzCmFzaXMK0LHQsNC5Ck5MClp5Z290ZQpwaHlzaWNzCuKWgWludGVybmFsbHkK0LLQsNC10YLRgdGPCkhpZGRlbgriloHQlNCw0YLQsAriloF1bnNhZmUK4paBUm9jCuKWgWluc3RhbnRpYXRlCnVkbmkK4paBUm9vbQriloHQn9GA0LXQtAriloFtYWphCmFjaG1lbnQKdXVpZApQcm9qZWN0cwpHcmUK4paB0LLQt9GPCuKWgUJsb29kCmljaWxlCuKWgU5vdXZlbGxlCkRvZXMK4paBbmlldXdlCsOhbGUKYW5ncwp3ZWFrCuKWgWFhbnRhbAriloHQldCyCuKWgURyZXNkZW4K4paBTG9zdArQutCw0YLQsAriloFpbnZvbHZlCuKWgWRlY2xhcmluZwriloFQb2xpdGljYWwKw6lyZXoKa29wCm5vdGlmeQriloFDdXJ0CuKWgXNjaGxpZcOfbGljaApnaGFuCtGG0LXQvdCwCuKWgWt3aWV0CsO8Z2VsCuKWgVNvYgriloFzdWJzdHIK4paBZWxsZW4KaW9uYXJpbwplbnNvbgpXSU4K0YHQv9C+0YDRggplbWVyCm5vbWUK4paBc21pbGVkCuKWgVNjaG1pZHQK4paBc21va2UK4paBVG9rZW4K4paBdmFndWUK4paBcHJvdmlzaW9uCnlhbWwK0L3QuNGC0LXQu9GMCm9uaWFsCsOpcG9xdWUK4paBTkMK4paBTkZMCnRlY2sK4paBYWxsbwriloFwcsOpY8OpZApjZW50cmFsCuKWgW1hamQK4paBY2hyb20K4paBWnVtCnZlcnNvCuKWgXZlcnNjaGllZGVuZW4K4paB0YHRgtCw0YDQvgriloFxdWVsbGUK4paBcsOpcApST1cK4paBaWhuZW4K4paBc2Vuc2libGUKfCQK4paBc2NodwriloFCUgriloFPcHRpb25zCuKWgXRlbnMK4paBY29ucXVpc3QK4paBbGllw58Kb3ZpcwriloHQvNGW0YHRgtCwCuKWgWVsYQpyaWZpY2UK4paBbG9rCuKWgVF1ZWVuc2xhbmQKQmluYXJ5CuKWgVJhaG1lbgriloFhYm9sCuKWgcSNw6FzdAriloFFZGluYnVyZ2gKaW5kZQriloFjYWxjdWxhdGluZwriloFPcmVnb24K4paBbGVnaXQK4paBTmFjaGRlbQphdGhvbgpQcml2YXRlCmlsbGF1bWUK4paBb2JzZXJ2YWJsZQpsZWFucwriloFyZW1hcmtlZAriloFoYWx0CtC90LjRhtGLCuKWgXN0YW1wCuKWgUFkdgpMb3VpcwppbW1pbmcKZ3J1cHBlCuKWgVBvbGljeQriloF2cmlqCmZ0cmFnCuKWgW9mZmljZXMK4paBcGFydGljaXBhdGVkCuKWgWVzY29sCuKWgSI8LwriloFub21icmV1c2VzCuKWgWRpdmlkCuKWgWFkdmlzCtC70YLQsNGC0LgK4paBPT0+Ck9yaWVudGF0aW9uCmNpZApDYXJ0CuKWgW11cm0K4paBYXNzZXoK4paBbGlua2luZwpidWlsZGluZwriloFyZWNvbm5hCuKWgXNob29rCm1hbmFnZWQKbGFuZGEK4paBTGXDs24K4paBY3LDqWF0aW9uCtC00L7QuQpvY2l0eQriloF3aWoK4paBd2llxZsKeHRhcnQK4paBTW92ZQpsdW5nZW4K0YHRgtCy0YPQtdGCCm9ybmV5Cm9wdGlvbmFsCm1hY3JvCkNvbmRpdGlvbgriloFzcXVhcmVzCuKWgW1pc3Rha2VuCsOhbnQK4paBUmlzCuKWgXNlbnRlbmNlcwplcmVhCuKWgW1pagpVbmQK4paBbm9tYnIKekEK4paBSW5kZXBlbmRlbnQK4paBcHJldmlldwppbWFzCuKWgW1hbGVzCmluZW50YWwKVGhhbmsK4paBcG9wb2wK4paBcG92ZXIK4paBZ3Jhc3AK4paBaW1wZWQK4paBY2FtcGlvbmF0bwriloFXZWkK4paBdGl0bGVkCuKWgUFkZW3DoXMK4paBUGFzc3dvcmQK4paBUGFtClVJTEQK4paB0LvQuNC/0L3Rjwp3ZXJiCi4uLi4uLi4uLi4uLi4uLi4K4paBUsOtbwriloF0ZWV0aApicAriloFTVwp1bGFpcmUK4paBc2VpemVkCuKWgVN0ZWYKw7psCuKWgXZpegppb255CuKWgWp1bnQK4paBa3RlcsOhCuKWgXdyemXFm25pYQo8PgriloFzdXJnCuKWgXR1dHRlCuKWgUhvYgrQv9C+0LLRltC0CuKWgXdvaGwK4paBdHJhZwriloFDcm93bgriloF0cm92YQrRgdGC0L7QstGDCuKWgVZpZW5uYQplc2VoZW4K4paBbWV0cm9wb2wK4paBcmVmbGVjdGVkCtGC0LXRgtCwCuKWgXRyYWR1YwriloFCYXN0CuKWgWVyc2NoaWVuCndvb3JkCigpIgp0YWxldAriloFyb2FkcwrQstC10LTQtdC90LjRjwrDvGhydW5nCuKWgWNvZ24K4paBVmFsbGUK4paBbGFuZGluZwriloFSZWdleAriloFJb3dhCmR6aWHFggriloFlcnJlaWNodGUKYXVtCuKWgWZvdW5kZXIKYXBvbGlzCkNvbXBpbGVyCuKWgWtvcAriloFtYXJjCuKWgdGC0LXRgNC40YLQvtGACikpYAriloFsZWkKZ2VvbgriloF3ZWFwb25zCuKWgWhvcm4K4paBZWxpZgriloFDYXBpdGFsCsSHZQriloFmb3JhbGwK4paB0Y3RgtCwCnByZXZpZXcK4paBRE5BCuKWgXNpZApvcmNoCuKWgVJhcwriloFhcmFiCkJlc3QK4paB0YHRh9C40YLQsAriloFMw7NwZXoKYW7Dp2EK4paBZnVua2MK4paBdGllbmVuCjsmCm11c2V1bQriloFFcnIK4paBcmVzb3J0Ck5vdgriloFrYWwKTVcK0YjRjAphbmNob3IK4paB0YDQvtC80LDQvQpsZWFkaW5nCuKWgW1hbnRlbgriloFTaWx2YQpkYWRlCuKWgWRlc2lnbmF0ZWQK4paBcmV2aXN0YQpPY3QKcGVyY2VudAriloHRg9C90ZYKaWRlbnRpZmllcgptYXNzCkBACnVsc2lvbgpnZXJtZWlzdGVyCuKWgXByZWRpY3RlZAriloHRgdCy0LgK0LbQvdC+0LkK4paBRXJnZWIK4paBY3VzdAriloFyZW1vdmVzCmNoYXJnCtC/0YDQuNC80LXRgAriloFmb3JtaW5nCmFzbWEKc3Rkb3V0CkZ1bgp5bWUKdGVyZWQKdXJzaXZlCmlnaGVkCuKWgdGB0LvQtdC0CnZlcmJhbmQK4paBTE9HCnJhbXMKw6lvbgplbmRyYQriloFCZXJlaWNoCuKWgXRlbXBvcmFsCuKWgWxhbmd1ZQriloFJbm4K4paBbW9yZW92ZXIK4paBdHV0b3JpYWxzCk1pZGRsZQriloHRgdC+0LLQtdGC0YHQutC40LkK4paBbWFpbnRlbmFuY2UKYXN1cmVzCuKWgXbDoWx0bwpCQVNFCuKWgWRpc2FwcGVhcgrRgdC60LjRjwriloFjb25vY2lkbwriloHQndCw0YMK4paBTGliZXJ0CuKWgUhhcm9sZAriloFsaWZldGltZQriloFUw7xyCuKWgXphd29kCm9taWMK4paBUmV0cmlldmVkCmFyY2hpdGVjdHVyZQrEjWthCmlmb3JtZXMKZGV2ZWxvcG1lbnQKb3JkbnVuZwpJbmYKbGViZW4K4paBU3RhcnMKc2lnbmFsCuKWgWdyYW1tYXIK4paBY29yc28K4paBV2FnbmVyCuKWgWdlaHQK4paBcm95YWxlCndhcm4KdW1ibGVkCuKWgWluc3RpdAriloHQqNC4CmhoCuKWgXJlZnVnZQriloFmYXZvcml0ZQppZXJ0bwriloFjb25kYWRvCuKWgVRoZXIK4paB0YfQtdC70L7QstC10LrQsAriloFGb29kCuKWgXNlaXpvCuKWgUluaXRpYWxpemUK4paBY29ubnUK4paBb3ZlcmxhcAriloFFbWlsCuKWgU1hcnTDrQriloHQttC+0LLRgtC90Y8KZXJ2YQriloFib2F0cwphw6fDtWVzCuKWgWRlcnJvdAriloFtYWxsb2MK4paBY29uamVjdApqawriloFzYXJlCtC70LXQvNC10L0K4paBc3VtcwpBdXRob3JpemF0aW9uCuKWgUt1bgpdJCwKZ2VtZWluZGUKb2RvdApkZWZpbgriloFlbWlzc2lvbgriloHQmtGA0LDRgQriloFhcHBhcnQK4paBc3RvcHBpbmcK4paB0KHRgNC10LQK4paBY29uanVnCuKWgWluc2lnaHQK4paBQnJvYWRjYXN0CuKWgVBNSUQK4paBYWR2YW50YWdlcwplbmVzCuKWgXJlc2lkZW5jZQpsamVuCmlzc2V1cgriloFwdWJibGljYXRvCuKWgUdpdEh1YgriloFQZXJ1CuKWgWdhbGF4aWVzCuKWgWFubm90YXRpb25zCmdhcwriloFyw6lwb25kCkpzCuKWgWluZGVwZW5kZW50bHkKTlAK4paBaW5xdQriloFncm91bmRzCkNvbXBvbmVudHMK4paBYW50ZW4K4paB0LLQtwriloFob3MK4paBc2ludAriloFoaWRpbmcK4paBd29qZXfDs2R6dApNZXNzYWdlcwriloHQv9C+0LrQsNC30LAKPT09CuKWgUFic3RyYWN0CuKWgWzDpG5nCuKWgUZvcm11bGEKZGF3bgriloFkZXNpZ25zCkltZwriloFQb3J0dWd1ZXNlCuKWgWluY2x1eQphdmlnYXRvcgriloFCcm90aGVycwriloFjb250aW5lbnQK4paBZXZpZGVudGx5CnJhY2UK0YbRjNC60L7Qs9C+CuKWgXJlY2sK4paB0YHQtdGA0L/QvdGPCuKWgUdyZXkK4paBYXBwZWFsCuKWgXVubGlrZQriloFwb3dlcnNoZWxsCuKWgXJhY2MKZmVycwriloFidXJuaW5nCmZhc3N0Cmluc3RhbGxlZAriloFHaXZlCuKWgWNvbG9uaWFsCuKWgeKCrAriloFSw7YK4paBY2hyaXN0Cm5laG0K0YLQsNC8CuKWgWNvcnBvCuKWgWNvbnZpcnRpCnl0ZXIKU3ltCuKWgUdyZWVjZQriloFtb3RoCuKWgUpvaGFuCuKWgW1vbmFyY2gK4paBRG93bmxvYWQK4paBY3JhZnQKdcW+CuKWgUx1a2UK4paBc3VmZml4ClwvCkhhdmUK4paB0LrQsNGA0YwK4paBY29tZm9ydGFibGUK4paBdGlwcwriloHQn9GW0YHQu9GPCuKWgdCx0YDQvtGY0LAK4paB0LjQvdGE0L7RgNC80LAKTVEK0LHRgNCw0L0K4paBdHgK4paBc2xhdmVzCuKWgWZpcmV3YWxsCuKWgUZvcmNlcwphdGlmCuKWgVF1ZWxsZW4K4paBdGjDqcOidHJlCtC70YzQvdGL0YUK4paB0YDQsNGB0L/QvtC70L7QttC10L0K4paBRGV0YWlscwprxIUK4paBbG9uZ2l0dWQKSU5TVAriloFuYXZhbApGZXJuc2VoCmVzc2VsCkdyYWQK4paBYmVsYW5nCuKWgWFnZ2kKWnlnb3RlSW5pdArFgsOzdwriloFTdWcKc2lsCuKWgWV4dGVyaW9yCtGJ0ZYKT1JECmVuc2VyCuKWgXJhcGlkZQriloHRgtC10LzQv9C10YDQsAppbmNpZQpTaQphdmFtCmFyZGVkCuKWgUFkZGVkCkVuZHBvaW50CmhhcmR0CtGB0YLRgNCw0L0K4paBZXN0aWxvCuKWgUhhegriloFtdXNzdGUKdW8KaWlpCuKWgcWZw60KYW56ZW4K0LbQtdC90LjQuQphaGEKQVJOSU5HCuKWgXJlbm92CuKWgWRpdmluZQriloFjb252aW5jZWQK4paBaHVtYW5zCuKWgWRlcGFydHVyZQriloFNZWRpdGVyCnFhCuKWgXBvc3Nlc3NlZAriloHRhtC10YDQutCy0LgKZ2l2CuKWgdGB0LLQvtGXCuKWgU9ydHN0ZQpSaWNoCnB1aXMKaW5jcmVtZW50CuKWgUhhbm5vdmVyCuKWgXVjegpEb25lCuKWgWFsZ3VucwpGSVgK4paBSGVyaXRhZ2UKcmVtb3ZlQ2xhc3MK0YTQtdGACuKWgWFiYwpEcgriloHRgdC10LzQtdC5Cns6CuKWgXNldWxlCnplaWNobnVuZ2VuCmFkZHkK4paBUGFyw61zCsO8c3NlbGQK4paBcmVjZXB0aW9uCmZvbGlvCnRpbnkK4paBcmVjZW5zZW1lbnQK4paBTnVyCuKWgWtpZXIK4paBZ21pbmEKc3RhYXQKw6FuZG9zZQrRh9C10YHQutCw0Y8K4paBc3BlYWtlcgriloFleHBvbmVudGlhbAriloFEaWV1CuKWgdC/0YDQuNC3CuKWgVJhZmFlbAriloFnZ3Bsb3QK4paBVGVtcGxhdGUKb3VyZQriloFJbm5lcgpvZ25lCmlnYXJlCuKWgUFydGUK4paBQ292CuKWgWF1ZmdydW5kCuKWgdCR0YsK4paBY2VyZW1vbnkK4paBU3BhcnQKamVjdGl2ZQp5aQriloFpbml6aQriloFsYXRpbgriloFOZXZlcnRoZWxlc3MK4paBRG9uZQrRgtGA0Y8K4paBQXJyCnNlYXNvbgriloHRgdC60LvQsNC00YMK4paBcG9kY3phcwriloFCZWF1dGlmdWwK4paBV2VsdGtyaWVnCuKWgdC30L4K4paBb3ZlcmNvbWUK4paBUHJhaGEK4paB0YDQsNC50L7QvdGDCuKWgXN1YnNjcmlwdGlvbgppZ2VudAriloHQv9C+0LrQsApsYXRleAriloFiZWFjaAriloHRgNC+0LrQsNGFCmdlZwriloFwcm9ibAphcmd1bWVudHMK4paBb3JnYW5pemF0aW9ucwriloFOYW4K4paBc3RvbmVzCuKWgUh1bnRlcgriloFyZWd1bGFybHkK0YjQvtCz0L4K4paBZmxleGlibGUKb3B0cwrDocWZCndpdHoK4paBJykKUEFTUwriloFrcmFqCuKWgWZha2UKaGVpdHMKb3NwaApwYXJzZUludApGQUxTRQriloFwcm9mZXNzCnBlb3BsZQriloFwcmVjaXAKZGlybmFtZQriloFwZXJwZXQK4paBVXBkYXRlZApyYXllZAriloFwcm92b2MK4paB0YLRgNCw0LLQvdGPCuKWgWNhdGVnb3JpZQriloHRgtC10L4K0YHQvdGDCm90cgriloHQktC10YDRhdC+0LIK4paBY29tcMOpdApDb3N0CuKWgXdpZGVyCuKWgU9idmlvdXNseQrQv9C40YHQsNC9CuKWgdC90LDRgdGC0L7RjwriloFzZWVraW5nCigpKSwK4paBw6lxdWlwZQriloFjb21taXRzCuKWgVN2ZW5zCtGP0LHRgNC1CmF0ZXJuCuKWgWhldGVyCuKWgUJvb3RzdHJhcArDqW7DqQriloFkZXJpdmF0aXZlcwriloFEZXRyb2l0CuKWgXByb3ZpbmNpYWwKb25vbWllCkVCCuKWgWN1ZXIK4paB0L7RgtC90L7RgdC4CuKWgdC90LXQuQopwrsuCuKWgUNpdWRhZApJQUwKenlzdAopIikK4paBQWxjCmJsb2dzCuKWgXBhcm1pCuKWgUFsYnVtcwriloFCb2xpdgriloFjbMOpcwpQcm9kdWN0cwp1ZXJkbwriloFnZWxhbmcKem5pawpoYWdlbgphbm9ueW1vdXMK4paBc3ZnCuKWgUNvbnNlaWwK4paBQXJpCmNvbGkK4paBY3p5CuKWgUNWCuKWgWZvcmQK4paBQXXDn2VyCuKWgUNJCuKWgXRlbXB0CuKWgU9yZ2FuaXNhdGlvbgrDocWhCuKWgWN5Y2xlcwriloFnZXNsYWNodAriloHQu9GO0LTQtdC5CsO9bWkK4paBU3BpZWxlcgplZmUK4paBTWFydmVsCuKWgXBvcnRhbAriloHQodC10YDQswriloFncmFkbwriloFoYW5kbGVycwriloFJbnRlcmZhY2UKQU1FCuKWgXNlcmlvdXNseQriloFCaW5kaW5nCuKWgVJhbmcK4paBbmFkYQpvY2UK4paBaW50ZWdyYQpvY3JhY3kK4paB0LDQu9GM0LHQvgriloFzdGFiaWxpdHkKVW5zCuKWgXZldGVyCi0tLS0tLSsK4paBc2VyYWl0CuKWgW9taXR0ZWQK4paBdW5jZXJ0YWludHkKb25pYW4K4paBcmVzdG8K4paB0LbQtdC70LXQtwriloHQvtC00L3QvtC5CuKWgUJldsO2bGtlcnVuZwriloFLcmFmdArRgdGC0YAK4paBTW9zY293CmxhbmUKYXJhYgriloFzcG9sZQriloHRgdCy0L7QtdCz0L4KPzoKU1RBUlQK4paB0LjQvdGC0LXRgAriloFzeW1wdAriloFMb3JlbnpvCuKWgWVqZWMK4paBcHJvc3BlcgpEQVQK0LvQuNC80L/QuNC5CuKWgXNoYXBlcwp2YWx1ZU9mCuKWgWFzc29jaWF0ZQriloFNZWRpZW4KRU5WCuKWgdGB0YDQtQriloHQtNGA0LbQsNCy0LUK4paBdGhlb3JpZXMKaGViCuKWgVdheW5lCuKWgVN0cmluZ0J1aWxkZXIKaXdlcnMK4paBTWFwcwpQaHlzClx9XAriloFQYXJ0ZQriloFIdWRzb24K0LvQvtC9CkxuZwriloHRgNGLCtGB0YLQtdC5CmxhdQphbmNlcgriloFDb3BwYQriloHQstGW0LnRgdGMCuKWgXVjYwriloFQYXR0ZXJuCuKWgWdhcmJhZ2UK4paBR29uesOhbGV6CuKWgUVuY3ljbG9wCmV0dGVuCkV4dGVybmFsClJFRgo+OwpsaWprZQriloFpbnRlcnNlY3QK4paBVW5sZXNzCuKWgWRlZXBlcgriloHQttGWCmRlbnQKbGVmCuKWgWNoYW5zb24K4paBZGlmZnVzCuKWgXByaW1pCuKWgVdpZWRlcgriloFhd3MKb3dhbmEK4paBc29jaWFsZQppa2sK0LvRjNC90L7QuQriloFkaXZpc2lvbnMK0LvQvtGB0L4K4paBQ2xhdWQK4paBWWEK4paBdm9jZQriloFCcmFuY2gK4paBZml0dGVkCm9ycgrDtHRlbApzdHJva2UKbGlzdGVuZXIKaW1hbgrQstC+0YHRgtC+CuKWgVNoYWgKSW50cm9kdWN0aW9uCuKWgW5ld2xpbmUK4paBdGlsZQonXSkpCuKWgXRyYXZhdXgKQ09ORklHCuKWgXF1YWRyYXRpYwpvbm5ldXIK4paBR2lvcmcK4paBaWRlbnRpZmljCsOpcmljYWluZQriloFVSVZpZXcK4paBTGliZXJhbAriloFLb2NoCuKWgUJlcmxpbmVyCuKWgW5vdGlmaWNhdGlvbnMK4paBU3VzYW4K4paBY2FkcmUK4paBS2xvc3RlcgriloFleGFtaW5lCuKWgdC10LTQuNC9CuKWgVVOSU9OCuKWgWFsdGVuCuKWgWZpbml0CuKWgXBlZGlnCmN5awriloFtb3V2ZW1lbnQKSU9TCuKWgdCx0YDQuNGC0LDQvQriloFib3V0CuKWgdCw0LLRgtC+0YAK0L3QuNGG0YLQstC+CtC10YLQvgpsZXJhCmNscwriloFMZXkKYW15CmFnZW5zCmFzaGVkCuKWgW9rcsSZCtCz0YDQvgplbGxldHQK4paBRmVsbG93CuKWgW1hbmlmb2xkCiQpLApsZGVyCuKWgXZvegriloFiZWdnCuKWgWJhcm9uCuKWgWZpZAriloFmaXJpbmcKaWxkYQpkZWsKQVUKaXRhcmUK4paBQXJhCuKWgUV4aXQK4paBY2luZW1hdAriloFpbnRyb3MK4paBY29udGFjdHMK0L/QtdC90LgK4paBbcO2Z2xpY2gK4paBU2luZ2Fwb3JlCnN0csO2bQriloFIZXJuCuKWgXNpeHRoCuKWgXB1YmxpY2F0aW9ucwp2aWUK4paBSGF0CuKWgWFjY2VwdGluZwrDoWMKc3R3bwriloFxdWlldGx5ClBob3RvCuKWgWJhc2tldAriloFlaWdlbnZhbHVlcwriloFtw6lkZWMK4paBT2xpbXAK4paB0YbQtdGA0LrQvtCyCmFsaW4KY29uc3VtCuKWgWxhc3NlbgriloHQsNC90YLQuAriloFTZXEKIjsNCnJhcmUK4paBJHxcCuKWgW5pY2sKZGZsYXJlClZlYwpiaW5kdW5nCuKWgWJnCmNoYW5nZXMKRGF5cwriloFNb3VzZQriloF3YWl0ZWQK4paBVG9tYXRvZXMK4paBZmFzCnZlcnRlCuKWgXN1Y2Nlc3Npb24K0YHQvtGACuKWgXNvbHMK4paBUmVuZGVyCuKWgWxlYWRlcnNoaXAK4paBc2lnbmlmaWNhbmNlCuKWgWdhdWNoZQpjYW5vCuKWgVBpZQplbnNvb3J0CuKWgWNhbWJpbwriloHRg9C3CuKWgWVuZGVhdgpDb21wbGV0ZWQK4paB0JDRgNGF0LjQstC90LDRjwpqZArDs3JpY28K4paBY2h1cmNoZXMK4paBYW5pbWF0ZQpTRwpjb21wdXRlCuKWgXVuaWZvcm1seQpJTklUCmxsZXMKSHR0cFJlcXVlc3QK0JrQvgpEaWZmCuKWgXNhaAphaXJvCm1heWJlClVURQriloFEb3cKaHVtYW4K4paBYXVyYWl0CmRhcmsK4paBcmVwYWlyCuKWgW5lcgriloFEYWJlaQriloFCb3RhbgpPcmlnaW5hbAphesSDCuKWgU5BVAppbXBlcgriloFZb3V0aAp0aGVzCuKWgdC+0LrRgNGD0LPQsAriloFGbG8K4paBYnJlYWtmYXN0CnVybHMK4paBw7xiZXJuYWhtCsOhcmlvcwriloFPcmFuZ2UK4paBQWZmYWlycwpza2UK4paBbm90aWZ5Cmltb2luZQriloFBcmVuYQriloFsaWJlcmFsCuKWgW9iZWMKaWZhCmd1ZXoKaW9ubwrQv9C10YDQsNGC0L7RgAriloFyZXRhaW5lZApmYWlsZWQKYmluZQrRgtC90YvRhQriloFDR1JlY3QKY2FtZXJhCmlkZW5vdGUKS0IK4paBbGlnaHRzCuKWgVBpY3R1cmVzCuKWgVNxdWFkcm9uCuKWgVZvbGsK4paBYnVyZwosXQpHaQrDqnF1ZQptYWtlVGV4dAriloFldmVyeWJvZHkK4paBSHlwZXIK4paBRGV1eAriloFnbG9yeQpwcmVzZW50YXRpb24Kb25pY2EK4paBZnLDqHJlCmFnZXQK4paBaGludHMK4paBdHVubmVsCuKWgUVqCsOhbGlzCuKWgVZpdgrRgdGC0LLQtdC90L3Ri9GFCuKWgWNhcHMKUEFSVApvY2kK4paBcHJpY2VzCmN1cnJlbmN5CuKWgWFjaHRlcgpyb21hZ25ldApnZW5kZXIK4paBc3Vpcwp2ZXJzaW9ucwriloFUcmFpbmluZwppbnNpZGUKZWdlCuKWgXRvdGFsZQriloFEYWFyCuKWgWdydWRuaWEK4paBSWVyCuKWgW9jY2FzaW9ucwriloFrZGUK4paBdGVuc29yZmxvdwriloHDs3IKTWV0aG9kcwriloFsb29waW5nCuKWgWRpcmVjdGV1cgprxJkK4paBaXNvbW9ycGhpc20K4paBSm/Do28K4paBYWxpZ25lZArQvtC90L7Qsgp1cmdlcgriloFub3ZhCm1vcnJvdwphbHRlcm4KSEQK4paBbWFycXUKYXRpdmFzCmdncmVnCuKWgWFuY2llbgpuaXQK4paBc2VjdXJlZAptaWVyCuKWgU9sZQriloHQuNC90YLQtQriloFtaW51cwriloFjbGVhcmVyCuKWgW5lbGxvCuKWgWluZm9ybcOhY2nDs2sK4paBcHJvcHJlCnsuCmlsb2cK4paBUXVpY2sK4paBYWNjdXMKZW1wbG95ZWUK4paB0LfRgwrRhtGM0LrQuNC5CtGE0ZbRhtGW0LkK4paB0L/Rg9Cx0LvQuAriloFiZW50CuKWgdC/0L7Qt9Cy0L4K4paB0J/QvtGACsOhesOtCsOhbmljbwplbXB0eXNldAriloFzdXJ0b3V0CnJlbm8KdW55YQriloHRg9C10LcK4paBTWlsbGlvbmVuCuKWgWxpc3RvcGFkYQriloFNYWluZQriloFncnVwb3MK4paBU3RvcmFnZQriloFhcHBsZQriloFMw7YKb3VzZWQK0LTRgNC+CnNjaQriloFoaWJlcm5hdGUKZG9nCuKWgdCy0L7RgdGC0L4K4paBaW50ZW5zaXR5CmxlZ2VuZAriloFXaWxsZQriloFzemVyaW50Cmdlc2VsbHNjaGFmdAriloFMaXZpbmcKYWxsbwriloFTcGxpdApkcnUKbmVlZAriloHQlNC20L7QvQriloFTd2lzcwriloFzcHJhdwriloFiZWhvCuKWgWZvdG9ncmFmCuKWgXJlbmNvbnRyZQriloFraXMK4paBc2lnbmluZwpha3VsdAriloFpbmRleGluZwphcG9yCuKWgWNvbmNlcHRpb24KYWdncmVnCuKWgdCh0LDQstC10LcK4paBYWZmYWlyCsSbbsOtCkF1Z3VzdAriloHRgdC10LrRgNC1CuKWgW1pZXN6a2HFhApVSUltYWdlCuKWgWJpc2hvcAriloFzZXJ2YW50cwriloF0cmFpbApkaWdpdAriloFqb2lucwriloFOZWFyCsO2ZmZlbnRsaWNoCj57CuKWgXNrxYJhZApnZWbDvGhydAriloFIb2x6CuKWgU1pbGl0w6RyCmFjaGkKVXBwZXIKcGluZQp1dHp0CuKWgW51b3ZhCmlicmF0aW9uCuKWgUJpZW4K4paB0L/QtdGA0LLRi9C5CuKWgUNyZWF0aW5nCk9uY2UK4paBZWlubWFsCuKWgWdlb21ldHJpYwpzdHZvCuKWgWtXCuKWgWRlY29tcG9zaXRpb24K4paBY29tZWR5CuKWgWFjdGl2YXRpb24K4paBYW5ncnkKaWxsZXVycwriloFpbnN0YW50bHkK4paBc3VnZ2VzdGluZwriloFDbGF5CmNvdAriloFHw6luCigkKAp1bndyYXAK4paBbGlmdGVkCuKWgUtpdAriloFsaW5lYQrQvtC6CmhhcnQKLT5fCuKWgW51aXQK4paBSXNzdWUK0LvQuNC4CuKWgXLDtm0KVGFza3MK4paBU3IK4paBc2Vpcwphc2lhCn19JC4KOnsKY29udHJvbHMK4paBU3RpbQriloFSZWNodApvY2lhY2nDs24K4paBTmF0YWwK4paBUGhpbGlwcGluZXMKdWxlbgpGaXhlZAriloFzd2l0Y2hlZApaaXAKb3NwZWwK4paB0L3QsNGH0LDQu9C1CuKWgUJsYW4KdXJzdAriloFhdXRvdXIKQ2EK4paBbGF0aXR1ZGUK4paBRnJlaQriloFNdXPDqWUK4paBS3VyegriloFyZWdpw6NvCnN3YXAK4paBaGF0ZQriloFtb2RpZmljYXRpb25zCuKWgdCa0L7QvAriloFBbnRvaW5lCnVnYQpSRUNUCsOpdGVyCkdST1VQCuKWgXNhY3JpZmljCuKWgVdoZQriloFTdGV2ZW5zCm9sb2dpc2NoZQpTdW1tYXJ5Cm9icwpobmVuCjwlPQpkaWVuc3QKcmVtYXJrCuKWgXZlcsO2ZmZlbnRsaWNodArQtdC7CuKWgU1vY2sK4paB0JvRjNCyCuKWgXRyw6pzCmdiCuKWgWNlbGVicmF0ZWQK4paBRWIK4paBY29zdGEK4paBR2VvZ3JhcGhpYwriloFhdHRhY2htZW50Cm1hbm5zY2hhZnQK4paBZGVwZW5kZW5jZQrvv73vv70K4paBYXR0aXR1ZGUKZXRhbAp2aWMKYmF1dAriloHQtNC+0LIK4paBaW50ZXJ2ZW4K4paBR8O8CsOzbmljYQriloFQb24K4paBZGlzcG9uaWJsZQriloFGZWIK4paBd29yc2hpcAriloFTcGVjaWZpY2FsbHkKSHkKaWp1CuKWgWNiCuKWgXNwYWMKbGV2ZWxhbmQK4paBbG9jYWxpZGFkCuKWgXByZWNlZGluZwriloFIZXNzZW4KeHAK4paBV2VpbgriloFSb23DogriloFnaW9ybm8K4paB0LrQstGW0YLQvdGPCmxsYcOnb3MK4paBQWNhZGVtaWEK4paBa8O8bAriloHDhXJzCuKWgdC90LDRmAp1Y2xpZGUKSW50ZXJuZXQKb3J0b24K4paBY29ybgrRj9C80LgK4paBIioK4paBRmVsaXgKYXBhdAriloHRgdCy0L7QuApNSVQKbWFkZQriloFsb2NvbW90CtGF0L7QtNCwCkZQCuKWgXBtCi4qOwriloFIYW1tCmB9CkxheW91dEluZmxhdGVyCj09IgriloFFdXIK4paBZG9ncwrQttC10L3QuNC4CuKWgWF6b24K4paBZW11bGF0b3IK4paBcmljb24KYmVlbGQK4paB0L3RgwriloFhcHByb3hpbWF0ZQpMTQriloFCb25kCuKWgWVuaArEmWR6CuKWgXNvbGl0ClJlbGF0aXZlTGF5b3V0CmV0ZW9yCmFtZW50b3MK4paBaW5kaXJlY3QKaWLFkWwK4paBZ3JvcwriloFPcmlnaW5hbHMKY29tbWFuZHMKRXhwb3J0CuKWgUF2ZWMK4paBc29sZW1uCuKWgWNvcnJlY3Rpb24K4paB0L/RgNC+0LLQvtC00LgK4paBTW9zawriloHQv9C+0LTQvgriloFnZWJpZWQK4paBbmFzdMSZcAriloFEcml2ZXIK4paBT29rCuKWgVZlYwriloFsdW5nbwpmaWNvcwriloFzdm9sCuKWgWtpZApuamEK4paBSHIK4paB0L/QvtC00LTQtdGACuKWgXZpc2liaWxpdHkK4paBTcOpZAriloFjcHUKZGlzY3Vzc2lvbgpBc3NldAriloFkZWZlbnNlCuKWgUFueW9uZQriloFKdXN0aW4KaXN6dAriloFDb2xsaW5zCuKWgVZhbGVudAriloFQYWxlCuKWgWZ1ZWwK4paBbm9zZQpyw61ndWV6CuKWgVNjaGxlcwriloFNYWxheXMK4paBY29tbXV0CmRybwp1aW5nCuKWgVJpY28K4paBRW1tYQpvcnAK4paBS2lyawriloFRdWFuZG8K4paBTmV1ZQriloFkZW1hbmRlCuKWgUNvdmVyCuKWgXJlc2N1ZQriloFnZXfDpGhsdAriloFDYWxlbmRhcgriloFNYWRvbm5hCldQCm9zaGkK4paBTWF2ZW4K4paBYmVsbGUK4paBd3gK4paBc3VnYXIK4paBQmV0cmllYgriloFlcXVpbGlicml1bQpFQVIK4paBdGV4dHMK0YHQu9C+0LIK4paBY3plcndjYQriloFEw7xzc2VsZAriloFFTFNFCuKWgWFtZXJ5CuKWgWFuaQriloFvYmV5CuKWgU5lbGwK4paBaW5uZQriloHRgtGA0L4KRkQKY2NvCuKWgVpvYgphbGV0dGUK4paBbcOhanVzCmVjdGVkCuKWgVR1cmtleQriloFXaGV0aGVyCnFpCuKWgdGI0YLQvgriloFoZWFkcXVhcnRlcnMKZW5kaQphcnVzCm9wdXMK4paB0LfQvtC70L4K4paBZGVzdHJ1CuKWgUxvawriloFzYXRpc2ZhY3Rpb24KKCkNCuKWgdCi0LXRgApKb3NlCuKWgWNvbnF1ZXIK4paBRWZmZWN0CkxheW91dFBhcmFtcwppZXoK4paBZXh0ZXJucwriloFnZWdlbsO8YmVyCuKWgUVTUApvbHRhCnByb2Nlc3NvcgriloFLdWx0CuKWgUF0bGFudGEK4paBdGllcgpPcGVyYXRvcgriloHQtNC40LAK4paB0L/QuNGB0YwK4paBZ3Jvw58K4paBaGVhcnRzCuKWgW1pbGxpbWV0ZXIKYWx0aG91Z2gKYWxsZXMK4paBTWFnaWMKdHJhaW5pbmcKb2xpbmUK4paB0L7RgNCz0LDQvdGWCj5cPF4K0YbRltCw0LvRjApleHBvcnRzCldvcmtib29rCuKWgdCy0LXRgNC10YHQvdGPCuKWgXRlbGVzCuKWgWVjb25vbXkK4paBdHJhcAriloFyZWZ1c2UK4paBc3RyYW5nZXIK4paBaW5zdGluY3QK0L/QvtC00LAKb2xhbgriloFuaW5nCmluZmxhdGUKaXRhdGVhCmFja3MK4paBSm95CkZMQUcKYWlsYW5kCuKWgXNvcnRpCuKWgdCy0L/QtdGACuKWgXDDqW4KTm90aGluZwriloFzesOhegriloHDgW5nCuKWgUFVVApBY3Rpb25zCkV2ZXJ5CuKWgdGH0LXRgNCy0L3RjwriloHQsNCy0YLQvtC80L4K4paBcm91dGluZQriloFlc3RydWN0CuKWgUdhbmcK4paBaG9sZXMKdGhlc2lzCuKWgWNvbmNsCuKWgXDDqQpyaWVycwrRgNC+0LLQvtC5CmFkaWMKU3BlZWQK4paBY29tbWFuZGVkCuKWgU5hemlvbmFsZQpNYW5hZ2VkCuKWgURFQ0xBUkUK4paBc2VkYW4KU3RyaW5ncwriloFzYWNyZWQKdGVyc3VjaAriloFhYml0YW50aQpicml0CuKWgU5DQUEK4paB0KHQnwriloFhZ2VkCuKWgUNoaWVzYQriloFyZXZpc2lvbgpvcHJvCuKWgW92ZXJ3cml0ZQplbWJyb3MK4paBc29ydGllCuKWgW90dGVuCnhpdgriloFkZWxpCuKWgUFzcAriloFiYWxscwprYWYK4paBYnJhdmUK4paB0LLRgdC10LPQvgplZ24KanBlZwriloFPc3RlbgpDb25zdGFudHMK4paBSW5mYW50cnkK4paBTmV2CuKWgdGP0LrQuNGFCuKWgdC80YPQvdC40YbQuNC/0LAKY2lqYQriloFwb2VtCuKWgW5lZ3JvCtGF0LDRgAriloFBc2sK4paBYXZvCuKWgU1leWVyCuKWgVdlc3RlbgriloFva28KYWdpbgriloFTw7xkZW4KZW50cmllcwriloFSZXB1YmxpawpDb2xsZWN0aW9uVmlldwotLS0tLS0tCuKWgWZpcmVmb3gK4paBYWxjdW5lCuKWgdGE0L7RgtC+CuKWgdC+0YLRgNC40LzQsAp+fn5+fn5+fgriloHQoNCw0LcK4paBQ29tcGxleAriloFwaWEK4paBcHVibGljYWRhCndlaQpjZWR1cmUKb2NjdXBhdGlvbgriloFtZWRpY2luZQriloFkcm92ZQpQcm9ibGVtCuKWgWJlZ2lubmVyCuKWgXRob3JvdWdobHkKdXJpYQphdmFudAp1Y2hhCuKWgWxldmVyCuKWgXRlYXRybwpBVkEKc3F1CnRyYXQKaXZhdGFsCuKWgWRpcnR5CuKWgXNlY29uZGUK4paBZ3Jhdml0CuKWgXByb3Bvc2l0aW9uCmhiYXIKb21pbmkK4paB4oCdCuKWgUNhbWlsCuKWgXF1ZWVuCm1vZGlmaWVyCkphbgriloFseXIKQ29tYm9Cb3gKaW9uaWMK4paBaG9seQriloFTZWJhc3RpYW4KfF97CuKWgXtACuKWgdC80L7QttC90L4K4paBQ3JlYXRpdmUK4paBaW50ZXJlc3MK4paBQ1QKacOnw7VlcwriloFjaGFudAriloF3c3DDs8WCCuKWgdCc0LXQutGB0LjQutCwCuKWgXJhbmtlZAriloFwYcW6ZHppZXJuaWthCuKWgWJydXQK4paBZmFydGhlcgriloFWZXJiCuKWgVNldmVuCmxibAriloFtZW50aW9ucwriloFGaWdodAppZmVuCuKWgWJvZwriloFyZWdyZXMK4paBc2NvcmluZwppY2FuZQriloFFbGxpCuKWgXBpZXJ3Cm1lYXN1cmUKxYRza2llagojewriloHQtNC10YHRjwriloF2YXJtYXN0ZQriloFVbml4CklaCml0acOpClByaW1hcnkK4paBU3ByaW5nZXIKw7xuZwriloFhbnYK4paBdmVyc2lvbmUK4paBc2hvdWxkZXJzCuKWgdCx0YDQuNCz0LAK4paBamF2Cmx0YWwK4paBa2FsbGFzdGUK4paBTWl0Y2hlbGwK4paBd2lyZWxlc3MK4paBw4FsCnJlc3BvbnMKY291bGQK4paBcmVsYXgKTG9uZArFhGN6CtGB0YLQstC+0LLQsNC7CuKWgXBvbHNraQplbsOnCnphcgriloFkdHlwZQpvd25lZAp1bmtub3duCuKWgW11dGFibGUK4paBc2llbXByZQriloFNb250cmVhbAriloFsb2NhdGUK4paBdHJhY2VzCuKWgWluc2dlc2FtdAriloFOaWwK4paB0L/RgNC+0LTQsAriloFXYXJuZXIK4paBTmF1CnRyaWFuZ2xlCuKWgWNvbmNlbnRyYXRpb24K4paBZ2VudGxlbWVuCsOkY2h0CmZpbHRlcnMKaW5jaXBhbApWQUxJRAriloHQtNC10L/Rg9GC0LAKYWTDswriloFrb25zdApnc8OlCmFnYXMK4paBbWVpbGxldXIK4paB0LTQsNC90L3Ri9C8CtGU0LTQvdCwCmVuY29kZWQKPCcK4paBc2hlZXRzCmN1YWRvcgriloHQstC40LrQvtGA0LjRgdGC0L7QstGDCuKWgURlcHV0CuKWgW1hbmnDqHJlCsSFZwpjc29sCikkLQpVSVZpZXcK4paBbWlsbG9uZXMK4paBRWhyZW4KU2lsCuKWgWF0YWMK4paBQ29sZAoiXAriloFhcHByb2FjaGVkCuKWgcOFcnNtZWQKV00K4paBRGVwb3J0Cm1pcwphbmRib3gKb2JzZXJ2CnNldHRpbmcKaGF0w7MK4paBc3RyYXQK4paBc3ByZQriloFwZXJzb25uZQriloFkaXJpZ2UKcHVsbApkYXRpbmcK4paBRmFjdAriloFtYW5pcHVsYXRlCuKWgU1BQwriloFkZWoKdWx0aW1vCkZYCkxpZmUK4paBY3JhY2sK4paBbcOtCuKWgdC/0L7QstC1CuKWgXdvcmUKdW5pdmVyc2l0w6kK4paBZm9ybXVsYXMK4paBRWxpc2FiZXRoCnBsb3RzCm1pbGUK4paBbWVub3IK0YLQuNC7CmtleXdvcmQK4paBQmFsdGltb3JlCmhyZXIK4paBQ2xlbWVudAp2aW0KcmFzcwpUYWtlCuKWgWPDrW3FsQriloFDb252ZW50aW9uCmF0Z2UKc2VlZAriloFEw60K4paBU3BpZGVyCmFob28K4paB0LjQvNC10LXRggrDvGhydAriloHQv9C+0L/QuNGB0LAK4paBQ290CuKWgW5vYmxlcwpSRVNTCuKWgWNoZW1pbgriloFnxYLDs3duCkdHCuKWgUdlcm1hbmlhCuKWgUFsZXhhbmRyZQpoZW5zCnN3aWZ0Cm9vcApTdWJ2aWV3CuKWgXJlcXVpcmluZwrEmWR6eQriloFmaWN0CuKWgdCa0L7QvdGB0YLQsNC9CuKWgWTDqXB1dAriloFzdXJwcmlzaW5nCuKWgWRlaXgK4paBdW50ZXJzY2hpZWQKaW5zb24K4paBQ2hhcmFjdGVyCuKWgWdlc3Rpb24KY2h1cwpjb21lcwriloFuZXVyCuKWgXlldXgKb2xsYXIK4paBcGFyYWQK4paBbWFnZ2lvcmUKVFJBTgriloF2b3RyZQriloFkZXNjZW50CuKWgUljb24K4paBSnVkZ2UK4paBb2NjdXBhdGlvbgplcGluZwriloF0b25ndWUK4paBRW5sbGHDp29zCnJ1ZgriloFwcm90ZWluCuKWgXZpc2l0b3JzCmF4eQplc3RlbgpibGljYQpodwriloFzcGlyaXRzCuKWgXJlZHVjZXMK4paB0LzQtdC9CuKWgUxhbWIK4paBTWluZQriloF2ZXJpZmllZAriloFCYWJ5CuKWgXByaXplCtCy0YrRgAriloFyYXRpbmdzCuKWgWZvcmUKYXNoYQp1cnJlbmNlCuKWgWludMOpcgriloFPbMOtbXAKY3JhCuKWgWNvbXB1dGF0aW9uYWwKaXJjaGUKLjrigIoK4paBaWxsdXN0cmF0ZWQK4paBU2hhcmUK4paBaG91c2Vob2xkcwriloFjb252b2x1dGlvbgpvZW1kCuKWgXpkb2J5CmNjYwriloFxdWFudGl0aWVzCkNoZQpTaG91bGQK4paBZ2VuaXVzCmFkagrRhdCy0LAK0J/QtdGC0LXRgApFTUEK4paBUmlnaHRzCuKWgUVsaQpWQVIK0YjQu9C+CuKWgdC30LHRltGACmlmdHVuZwriloFjb250cmlidXRlZAp6ZWYK4paBQ0hBUgriloFTaWIK4paBTWFudAriloHRgdCy0Y/Qt9C4CuKWgWphdmFmeAriloFjZXBlbmRhbnQK4paBaW50dQriloHRgtCy0L7RgAriloHDkwpndWVyCnJhZG8K4paBUmV2b2wK4paBZsOpbWluCuKWgU9ybGVhbnMK4paBcG9qCuKWgXByZXoKVGV4Cm91d2QKPygK4paBTElNCmlzdGlxdWUKZXNhcgriloFoZXVyZXMKaWNraQriloFkYm8Kc2tpaApjb25maXJtCuKWgXZpbMOhZwriloFjaXV0YXQK4paBRFIK4paBSGF3YWkKY2hlZAriloFzcGhlcgriloFBcnRpa2VsCuKWgU11bHRpcGxlCmNpdQriloHQvNGLCuKWgWxpcGNhCl0oLwpTdHJhdGVneQriloFBbGFiYW1hClNESwpVVEMKX18uCkFyZ3VtZW50cwriloFzZXRDb250ZW50VmlldwrDrmxlCkJ5VmFsCuKWgUpWTQrRjtGJ0LXQs9C+CuKWgUxlb25hcmQK4paBanVzdGlmeQrRhtC10LwK4paBbmFiCkNDRVNTCuKWgWhvcGVzCikmCnNlcm8K4paB0LfQsNC5CtGB0LvRltC0CuKWgVLDqWcK4paBU2FuZwriloFmdW5nCmJhYXIK4paBY29mZmVlCmFzc2VtYmx5CuKWgdCS0ZbQvQrRjdC5CuKWgWNvbXByZW5kCmZpbGxlZArRgNC0Cm9kaWEK4paBZ2VucwpmbHVzcwpEcmF3YWJsZQriloFzdXJ2ZQpTZXR1cAriloFuYWxlxbwK4paBY29uanVudG8K4paB0JXQs9C+CuKWgW9sZGFsCuKWgXZlcmJvc2UK4paBRWxlY3RyaWMK4paBSGFycmlzb24KZW5nZW4KcGFyYWdyYXBoCuKWgW5vdXZlbGxlcwriloHQstGA0LXQvNC1CuKWgW1lbW9yCuKWgW1heW9yw61hCtGB0LDQtAriloFiYXRhaWxsZQriloF0aGVybWFsCuKWgdCl0YDQvtC90L7Qu9C+0LPQuAriloFCZXR0ZXIKYnllCuKWgdGC0LXQsNGC0YDQsApyb2UK4paBc2VnbGUKcm90dAriloFvcGluaW9ucwopfSkKw7xobGUK4paBR8O8bgriloHQqQpiw7NsCuKWgUxhcnJ5CuKWgXNvbGljCuKWgXp3YXIK4paBQ2Fyb2xpbmUK4paBUmVpY2hzCkV4dGVuc2lvbnMKbWlncgo6QAriloFlbnVtZXJhdGUK4paBZWlnZW5lbgriloFleHBsb3JlCsOpbXUK4paBZ2F0CuKWgWltcGVyaWFsCuKWgVVzdWFsbHkK4paBdHVkCuKWgdGD0LrRgNCwCmhpbQriloFjb3JuZXJzCuKWgVNFUgriloFpbnRlcnByZXRlcgriloFJY2UK4paBYW1vdW50cwriloFQYWxhCuKWgXRpbmhhCnZvbGUK4paBZ2xlCnVjY2kK4paBc2llaGUKSmFjawriloF3b2xsCuKWgWVsZGVyCuKWgdC60L7RgNCw0LEK4paBZW5nYWcK4paBTGF1cmVudAriloFhY2hpZXYKaXN0aWsKYXJjdArRgtC90L7Qs9C+CuKWgWdpcgriloFTaW5naAptYXRob3AKVVNBCuKWgVByb2pla3QK4paBZGViZQpyaWNodHVuZwriloFUc2NoCnVtaW5hdGUK4paBc3rDswpseXBoCtC30LjQtNC10L3RggriloFsaW1pdGF0aW9ucwrRjtGJ0LXQuQriloFiaWxhClB1c2gK4paBb2ZmZXJpbmcKaWVubmVzCkZyaQriloFwb3N0Z3Jlc3FsCuKWgVRvbW15CuKWgXBhcnRpY29sYXJlCuKWgXN0b2xldMOtCuKWgWFycmliCuKWgUV2YQpzY2hvb2wK4paBdmVuZG9yCuKWgURhbGxhcwriloFwcm9sb25nCkNSRUFURQriloFzdWl2YW50ZQpTVEFUVVMKbMOgCmt2CuKWgWjDpHVmaWcK4paBQWdyaWN1bHQK4paBaHVpdAriloFpbm9sdHJlCuKWgUxsb3lkCuKWgdGE0YDQsNC90YbRg9C3CuKWgdCy0YvQv9C+0LsK4paBZmFpdGhmdWwK4paB0JLQsNGACuKWgXZlcmwK4paBanVlZ28K4paB0KDQtdC30YPQu9GC0LDRgtC4CiwuLi4sCuKWgWltcGxpY2l0bHkKaXJrcwpDYWxjdWwK4paBbWVzZXMKb21lZAriloFwYWsKaGVyaXQK4paBb3B0aWNhbAriloHQhtGB0YLQvtGA0ZbRjwp2ZWlzCuKWgWNhcGl0YWxlCnBsYWNlaG9sZGVyCmludHJhZwriloFBdGxhcwopXTsKaWNvbnMK4paBQmVudAriloFXaWRnZXQK4paBdm9sdW50CmF2bwrDqWdyCmxpZ2UK4paBTkFNRQriloFhYnN0cmEK4paBZsOtcwriloFCcm93c2VyCuKWgWJ1c2gKaGFsbAriloFjbG91ZHMK4paBU1VCCuKWgXRhbmRpcwriloFDb21tb253ZWFsdGgK0YLQsNGPCuKWgWV4aGF1c3QKX19fX19fX19fX19fX19fXwriloFTdGF0aXN0aWNzCuKWgVJlbGlnaW9uCuKWgU11aGFtCnVhbHMKZ290bwpEaWdpdGFsCkZhbWlseQriloFCdW4KbGV0aW4KTWFuYWdlbWVudAriloFjYXBhYmlsaXRpZXMKYW5udGVuCuKWgdGB0LXQsdC1CuKWgXN0YXlzCmt0ZXIK4paBZG9zdAriloHQotGA0LUK0LvQvtCy0LjRhwriloFkeWluZwpzZWN0aW9ucwrDoW5vcwriloFhcHBhcnRlbgriloF6b2FscwriloFkcmVzc2VkCuKWgWNvbXByZXNzCsWEc2thCuKWgXNpZXJwbmlhCuKWgdGC0LjRgtGDCmRpY3Rpb25hcnkK4paBcmFiYgriloF2w6lyaXQK0JLQvgriloFzaW5nbGV0b24K4paBdml0YWwKUmVmcmVzaArQvNC10LvRjAriloFaaAriloFBZmdoYW4KaW5rZWwKYWFhYQriloFwYXJ0aWNpcGFudHMKYXJpbgriloFNb2xkCuKWgXByaW1lcm9zCuKWgdGA0LDQvQriloHQkNC80LXRgNC4CuKWgXJlc3RhdXJhbnQKw6l2ZWwK4paBU0wK4paBUmV5CmNoYXMK4paBZWxlY3Ryb25zCuKWgVBpdHRzCuKWgUp1bGVzCtC80LDQuQplbmFudAotfQrQu9Cw0LQK4paB0JzQvtGB0LrQstCwCmdvbQriloFGZXJuw6FuZGV6CmZ1bmQKaW50ZXJubwriloFNYXJpCuKWgXJpdXMK4paBUHJvemVudArRgdGC0YDRlgriloHQstC90YPRggphbnRlcmllCuKWgdC/0YDQuNGBCuKWgdC+0LHRiwriloFNYXJpbmEK4paBb2NjdXJyZW5jZQpyaWt0CuKWgdGE0LjQt9C4CuKWgXNjaHdlcgriloHQk9GA0LUKUmVzZXQK4paBbXVjaG8KYW5kcgriloFXaWVzCuKWgUtlaXRoCuKWgUp1bGlhbgriloFjb2xlCmNpZW5kbwriloFDb250ZW1wb3IKZXRyeQplbGlhbgrQs9C40LgK4paB0LPQvtC70L4K4paBZMOpbAriloFkZWNlbnQK0KDQodCgCuKWgXN6ZXB0ZW1iZXIK0LzQtdGB0YIKY2FzdGxlCuKWgdC00LXRgNC20LDQsgp9IikK4paBQVNDSUkK4paBR2xlbgppdHplcmxhbmQKVG9nZ2xlCuKWgXRyYWRpY2lvbmFsCuKWgVBsYXQKdmVlCmFiZ2VydWZlbgoofApDTEkKfX0kLAriloFCb3dsCuKWgU1hbGUK4paBQnJlcwriloHQv9GB0LgK4paBQ2hhbGxlbmdlCnrDswriloFwcm9qZWt0CuKWgW5lZ290aQphYm92ZQriloHQv9C10YDQuNC+CuKWgWxvbmdlc3QKYXV0aGVudGljCuKWgXRyYWR1CuKWgW11amVyZXMK4paBQW5kcmUK4paBaGFkbgriloFTY2h1bGUKb2RlbApibGVkCuKWgVRyYWRlCuKWgW1vYmlsCuKWgWFsZ3VuYXMK4paBTGFrCuKWgUNvbm5lY3RpY3V0CuKWgWFsY28K4paBU2VsYnN0CmnFggriloFhbGIKb3V2ZXJuZXVyCuKWgXNyCuKWgXZiYQpsb3BlZAriloFQYXJ0ZWkKdWF0ZQriloFBdXRoZW50aWNhdGlvbgpiZWkKfX0uCuKWgWtvbm50ZW4K4paB0LTQvtC/0L4K4paBaHlkCk9mZmljZQpkb25uw6llcwriloFDbGV2ZWxhbmQKcml0YQrDrW9zCuKWgdCy0YvRiNC1CuKWgVJvYmVydHMK4paBw6lsZWN0aW9ucwriloEnJykK4paBcHVibGlzaGluZwriloFiYXB0Cjw+KCk7Cm1pc3NpbmcK0YDQvtCy0LDQvdC+CuKWgWhvdXNpbmcK4paBaW5mZXJlbmNlCuKWgVJlbmFpc3NhbmNlCuKWgXLDqGcK4paBU3RlcGgKQ0VTCkVSRQrQutC10YIKT1UK4paBZ3JvdXBpbmcKdmVya2VocgpqaWgKYWdsaQriloFtaWxrCmxhaXQKU3RhZ2UK4paBYnlseQriloF3b29kZW4Ka2VsZXkKZXRyYQriloFQZWcK4paBZG9ubsOpCmFkYWwKc2VxdWVudGx5CuKWgWluc2Jlc29uZGVyZQpFTEQK4paBTWFtCuKWgXZvbHRlCuKWgXByb3NwZWN0CtC90L7QstC1CuKWgWRlbm90ZWQK4paBb3ZlcmxheQpQZXJtaXNzaW9uCmVlbgriloFFTQriloF1egpNYwpvbGl0CuKWgXNlcnZpCuKWgUhlaWRlbAriloFXaWVuZXIK4paBaWxsZWdhbAriloFwcmVkaWN0aW9ucwriloFnb29nCmhvbgriloFDaW5lbWEK4paB0YDQtdCy0L7Qu9GOCuKWgVJ1bGUKd29kCuKWgXJhZGlhdGlvbgpvxYIK0L7QstC+0ZcK4paBUGVyZm9ybQriloFwcmlzb25lcgriloFhbWV0CuKWgWZpZ3VyYQriloFDb21tYW5kZXIK4paB0L7RhNC40YbQuNCw0LvRjAriloF0cm92CuKWgWFjdGVkCuKWgXdvcmtmbG93CuKWgdCg0LXRgdC/0YPQsdC70LjQutC4CuKWgWd1aWRhbmNlCuKWgdC80LXQvdC1Ck5hdGlvbmFsCuKWgUtlbAp3ZWJwYWNrCtC/0YDQvtGB0YLRgNCwCuKWgWxsYW1hZG8KYWxvZwp0ZXJyYQppeGVuCmxlZ3JhcGgKw6Rpc2NoZW4K4paBdGVhY2hlcnMKdWRlbgriloFvZ3PDpQpwb3NzaWJsZQriloFTb3VsCuKWgUdlb2dyYXBoeQriloHQt9Cw0LTQsApoaXQK4paBYW5nZXIK4paBcmVtcG9ydGUKUG9kCtGH0LrQtQriloFhcmlhCuKWgUFzdHJvbm9tCmNoYXB0ZXIK4paBZm9yawriloFDdWFuZG8KbWVuc2UK4paBQ2hyaXN0aWFucwpnYwriloEjKApPcmdhbgriloFzdGVhZHkKcHNlCtC20LjRgtGMCmlnbmVzCmF0ZXJyYQptb3ZpZQpwb3N0YQpyYXN0ZQriloFSZXNzb3VyY2UK4paBUGHDrXMK4paBKCk7CuKWgXBlbmFsdHkK0YLRggriloF0cmFzZmVyCmNlbnR1cnkK4paBY2xlYW5lcgpzZWxlbml1bQpvcnRoZWFzdAp4aWMK0LvRltGXCuKWgWluZ2xlc2UK4paBVGFuZwriloFnb2RzCmZyZW50CmNpZW50ZQpzdGFydHMK4paBbXVzaWNhCnltbmFzaXVtCi0tLS0rCuKWgXRlcnJlc3QK4paBcmV0cmlldmVkCmlhcmUKdW5uaW5nCuKWgU1hcmN1cwriloFwcm9tb3RlCndhcm5pbmcK0YLRi9C5Cn0pJCwKVHJhbnNwb3J0CuKWgXJlc29uCuKWgUNsbwriloFlcm0K4paBZWxpbWluYXRlCmhlaW1lcgriloFzYXZlcwriloFwcmF5ZXIKQ2xhc3NlcwpFeHByZXNzCuKWgUFrYWRlbWllCkVsc2UKVHVybgriloFpa2tlCuKWgXJlaQriloFkaXJldHQK4paBUm9zdAriloFQYXBhCuKWgWpzZgrQu9C10L3QuNC10LwK4paBVHVsCuKWgVphawriloFuaWVtaWVjawpUdwphbW91cgpuZXN0ZWQKcHBldHMK0YjQvwpkaXQK0LfQtdC9Cnp5bWEKaHJ0ZQpDb25zdHJhaW50cwriloFvd25lcnNoaXAKQXJtCuKWgWNvbnN1bXB0aW9uCuKWgWZldAppdmFyaQpjaHJvbQpzZXRBdHRyaWJ1dGUK4paBY29tcG9zZQriloFiYWNraW5nCuKWgVBhegriloFzY3JpCuKWgU1lY2hhbgriloFOb3J3YXkK4paBSnVwCuKWgW3DqXIK4paBYWRtaW5pc3RyYXRvcgriloFjYWJlCml2YWxlbnQK4paBdGhyb25lCuKWgWR1ZXMK4paBaHVtb3IK4paBQWRyaQriloFhYm9ydArDsWFzCuKWgdCa0LjRl9CyCmrDrWPDrQriloF6d2VpdGUK4paBZG91YgplcnNoZWxsCtGI0L7QuQriloFGYW0Kw6VrCuKWgXR3ZWVkZQriloFSaWIK4paBZsO4cgpwY2nDs24KaW5uZWQKcnZtCuKWgUFwcGFyCuKWgURqCuKWgVNoYW5nCkRpc3RhbmNlCuKWgWRhd24K4paBTWF0dGgK4paBZXJyaWNodGV0CnBoYW50b20K4paBcmVsZWFzZXMKUmVjb2duaXplcgriloFLb3AK4paBUHVsCnXDqQpuYXRzCnJlbGF4CuKWgWZsZWQK4paBZXhwZXJpZW5jZXMK0YnQtdC1CtC80LXQvdGPCuKWgdC/0LXRgNGB0L7QvdCwCuKWgUlkZW50aXR5CnJldHMKa3VuZnQKbGFyZwpMaXN0SXRlbQp2ZApydW5uZXIKbGFudAppcGFydApiYXkKaWVpCuKWgWxlbmd0aHMK4paBY2F0dGxlCmpldHMK4paBc2VoZW4KSnVsCmZhdHQK4paBc3VycmVuZGVyCuKWgVRydW1wCtC00L3QvtCz0L4K4paBRm91cmllcgppZWJlbgpfIgriloFmcsO8aGVyCuKWgWdhcmFudAp1Y2xpZGVhbgrDpGd0CuKWgdC/0ZbQstC00LXQvQpQYWdlcwriloFyaXZlcnMK4paBZG9ubmVyCnN2bgriloHFggpvdsSbCuKWgUxlaXN0CmFyaWFsCm92w71jaAriloFmaWxsaW5nCuKWgW11c2ljYWxlCm1heGltCuKWgWRhc2hlZAriloHQndC+0LIKRHJhd2VyCuKWgU1lZGljaW5lCuKWgWRva3VtZW50Cm93ZWwKdmnEhwpoZWx5CuKWgWVsZXQKU2Vjb25kcwriloFHb256CnJvdQriloFmaW5hbGVzCnJuCmbDuAriloFpbmRleGVkCmNsYXNzTmFtZQriloFvYmVyCuKWgWR1YXMK4paBb3B0aW1pemVkCuKWgWtkeQp2ZXJzYXJ5CmVuZXJneQriloHRhtC10L3RgtGA0LAK4paBY3VycmVuY3kKennFvApMaWtlCuKWgdCT0LgKc29ubwriloFwYWxhYgriloFwdXNoaW5nCnVibGlrCuKWgUhhc3MKfVwsXAp1bmtlcgriloFGYWN0b3J5CuKWgVJlc291cmNlcwpkYXRlaQriloFUb29scwriloFzdGVoZW4Kc2ltZQriloHQpdGDCuKWgWhvY2gK4paBUm9kcsOtZ3Vlegp6ZWl0aWcK4paBVGVycnkK4paB0L7QsdGDClVzYWdlCnVyY2hhc2UKbMO2CuKWgUludHJvZHVjdGlvbgriloFwYXJ0aWNpcGF0aW9uCs6/z4IKb2dsaQphcHkK4paBaG9wZWZ1bGx5CnBvbmRlcgriloFZYW5nCuKWgXByb21pc2VzCuKWgdCy0LXRgNC90YMK4paB0L7RgdGC0YDQvtCyCl57KwriloFtb3N0cmEK4paBQ1VSTE9QVApISAriloFzdGRvdXQK4paBYnJpbGxpYW50CuKWgW1hbnVzY3JpcHQK4paBZGVjaXIK4paBQm9sb2cK4paB0LzQtdGB0YLQsAriloFpbnZpc2libGUK4paBQ2hhbAriloFhbmFseXplCnByaWxpcwphdHRlbmQKTXZjCnRoYW4KY2tvCuKWgVF1ZWJlYwriloFwbGFudGEK4paBdMOpbMOpdmlzCuKWgXVuaW5zdGFsbArDqG5jaWVzCuKWgWdtaW5pZQriloFQcmVmCuKWgWxlcXVlbApJbnZvY2F0aW9uCuKWgcONCuKWgXRyYW5zZm9ybWVkCk1BTgpnZWJhdXQK4paB0YHQvtGF0YDQsAriloHQstGC0L7RgNC+0LkK4paBTGl0aAp3ZW5kdW5nCuKWgVBvbGl0aWsK4paBU2VuYXRvcgriloFMTArQttC00LXQvdC40LUK0YjRgtC1CuKWgUPDqXMK4paBYmFuZGUK4paBaGlzdG9yaWFuCuKWgXBhc3N3b3JkcwptYWxsb2MK4paBc2VtaWYK4paBcsOlCnVuaWPDrQpBdmFpbGFibGUKT3B0aW9uYWwK4paBVHdlCuKWgWtyw7MK4paBc3Vic2V0cwriloFEQVQK4paBZG91YmxlcwrQvdC40LrQsNC80LgK4paB0LfQsgpnZWdlYmVuCuKWgdCf0L7Qv9C40YEK4paBasO6bGl1cwriloFtZXRlb3IKTW91bnQKaXZlbnQK4paBTmF0aGFuCuKWgVNjaHV0egplZ292CuKWgWTDtmQK4paBbWVhdAriloHQv9GD0L3QutGCCuKWgW1pbmRzCmVsaXZlcnkK4paBVExTCtGA0LXQvApja3PDpQriloFzdGF5ZWQK4paBQmluCuKWgVBpYQriloHQuNC80LXQvQriloFCb2JieQriloFwcm9kdWl0CmVtcGlvCuKWgXJlZHVjaW5nCuKWgVl1CuKWgUdlc2Now6RmdAriloFwZXJjaMOpCuKWgWNvcnMK4paBaWNvbnMKQXBwRGF0YQriloFIb2cK4paB0YDRltCyCuKWgVNhbnMK4paBc2nDqGdlCnN0ZWxsZW4KQnJ1c2gKT0ZGCuKWgXZpc2l0b3IK4paBYmF0aAriloFmZWUKYXRpc2YK4paBY3VydgriloFmb2xnZW5kZXIK4paBY29uc2NpZW5jZQriloFTZWF0dGxlCuKWgW1lZGlldmFsCmRpc3RyaWJ1dGlvbgriloFETQriloHQvNGPCuKWgVJVTgpha292CmNlaWwK4paBbGV0dGluZwriloFkb3YK4paB0L7QsdC4CmtpZWoK4paBZGlyZWt0CuKWgXRtCmNvbG9ycwriloFhbHRybwriloF0aWpkZW5zCl17JwriloFCb20K4paBa3Vuc3QK4paBc2hlbHRlcgriloFyYXYKcHJlZGljdAriloFjb21lbnrDswriloHFm3dpYXQK4paBRHVyYW50CuKWgXNjaGVtZXMK4paBbWVzaAriloFpbmRpY2F0b3IK4paBRW1lcgriloFndWlsdHkK0L3QtdGGCuKWgWNvbnNlcXVlbmNlcwpjbHVkZXMK4paBTG93ZXIK4paB0L/QvtC80LUK4paBcGFjZQrQtNCw0LPQvgriloFhbWJvcwpsYgriloFlZHVjYXRlZAp1cmFsZQphbmgKZXNzw6lnCuKWgWFzc29jaWF0aW9ucwp0b3duCuKWgXRyaWYKc2FtcGxlcwpib3MK4paBU3BlY3QK4paB0KbQtQphbHR1bmcK4paBTG9iCuKWgWN1cmlvc2l0eQriloFXZWl0ZXIKZXN0b25lCuKWgWRlbW9sCuKWgWFwb2xvZwriloFEeW5hbWljCklubmVyCmVzcGVyCmVjegp1ZWxsZW1lbnQK4paBSGFtaWx0b25pYW4KQXRsYXMK4paBYXJndWUKRm9yZWlnbgpjb2xsYXBzZQriloF0w6lybWluCuKWgWVsZWN0cm9uaWMK4paBTlIK4paBY29ycgp0ZW1wcwpJbmRleFBhdGgK0Y/QtwriloF0YWzDoWwKdG9kYXkKd2F2ZQriloFzaWIK4paB0YHQv9C4CuKWgWNvbnZleQriloFHw6lvZ3JhcGhpZQriloHQndGM0Y4K4paBSGliZXJuYXRlCuKWgXRpbgpkaWMKcHBpbmdzCnN3ZWlzZQriloFyb2xsaW5nCuKWgXNlbGVjdHMKKVwpCuKWgXBvZXRhCuKWgdGB0YLQtdC/0LXQvdC4CuKWgUFicgriloFow7ZjaAriloFzdGVybgriloFmasOkcgriloFpbnN0YWxsZXIKZGVjbAriloFtaXNlcgpncm91cGJ5CnN1YnN0cgriloFwaGVub21lbgriloFXaW5nCuKWgWZpbGxzCuKWgcO6bmljbwpSdW5uaW5nCkNvbWUKaXJhYmxlCnNpbWVxCuKWgXJlbXAKa2VsZQpsaWVycwriloFrd2lldG5pYQriloFpbnRlcnJ1cHRlZAriloFKZXQKPVx7CsOtZG8K4paBVGFpd2FuCuKWgdCy0L7Qt9GA0LAK4paBYWx0ZXJuYXRpdmVzCuKWgVRpcgriloFSZXNlcnZlCuKWgdCa0YPRgAriloFOb2JlbAriloHRgNCw0LHQvtGC0LDQuwriloFheGVzCuKWgUNlcGVuZGFudAprw6EK4paBZXJuZXV0CuKWgURlbW8KY29tbXVuaWMKY29uc3RydWN0b3IK4paBTW9uZGF5Ck5pbApIYXNoTWFwCnBheW1lbnQK4paBZml4aW5nCuKWgUFERApyZXZpZXcK4paBcG9zc2liaWwK4paBZ3JvdGUK4paBZ3JvdXBlZAriloFMaW1hCuKWgUF1Z2VuCuKWgW9ja3PDpQpvbmFzCuKWgWRlYmF0ZQriloFJbmdsCkRhClNPVVIKZXR0YmUK4paBQmF0dGFsaW9uCuKWgUZsb2F0CuKWgWNvbmUKcmVhZHNoZWV0CmNvdXJ0CmxpZ2VuCuKWgUJlZ2lubgriloFMSU1JVAriloFlbmpveWVkCuKWgUpha29iCuKWgXRlbHQKYmFja2VuZAriloFHZW1laW5zYW1lCmxpbnQKYWxsaW5nCuKWgWLDtnIKZ3JhbmQK4paBZGl2ZXJzZXMK4paBendpxIV6CuKWgUtvbXBvbgriloFpbm5lcmhhbGIK4paBZGVzYXJyb2xsbwriloFNYXN0ZXJzCmlvc28KXWAuCuKWgWZyYW5jZXNhCkFmZgppbmVrCuKWgWRlc3NpbgpgLmAK4paBcmFua3MK0LHQtdGA0LMK4paBc2thbAriloFTdWx0YW4K0JDQnQriloHRgdC/0L7RgdC+0LEK4paBY29udHJhZGljdAriloFyZWNvbQriloFPa2xhaG9tYQriloFWbGFkaW1pcgriloFtZXRlcnMKdHJhbnNwb3J0CuKWgWNvbnN1bHTDqQriloFBVFAKZWJiCuKWgXZvbHVudGUK4paBb3V0bGluZQpMSUMK4paBZXVybwpDaGFyRmllbGQKbWVkaXVtCuKWgUJlbGdpcXVlClByb2MKcm91dGVzCuKWgWNvbnRyaWJ1CiF9CsWhw61tCuKWgUxlc3MK4paBS29zdAriloFlcmVkZXRpYsWRbApyZXZlbgp2ZXJpZnkK4paBU2FsdAriloFzaG9vdGluZwriloFkaXNwb3NlCnVqw60K4paBdGllcnJhCuKWgXBvaXNvbgpzYWsKcGVyaW1lbnRhbAriloFOw6kK4paBS2lkCmFneWFyCuKWgWFyY2hpdsOhbHZhCmJlcmVpY2gKw616CuKWgVJpdHRlcgriloHQpdGA0L7QvdC+0LvQvtCz0LjRmNCwCnpldW0K0LTQsNGFCuKWgWdyw7xuZAriloFwcm9ncmFtbWVyCuKWgWNvbnNlaWwK4paBZW5jcnlwdAppbnRlZ3JhdGlvbgpDdWx0dXJlCuKWgUNpcmNsZQpPYnNlcnZhYmxlCuKWgWdlbm9tc25pdHQK4paBU2VsZWN0aW9uCuKWgWlycmVndWxhcgpBdXRyZXMKUGVyY2VudApmYXVsdAriloF2aXJ0dWUKxIVwaQriloFzZXNzCuKWgdCi0LDQutC20LUKVGltZXN0YW1wCuKWgWxpdHTDqXJhdHVyZQriloFtb8W8CuKWgWJvcnJvdwriloFjb25jZWQK0YfQvdC40LoK4paBTHVuZApJT05TCnluaWUK4paBU2hpbgriloFvc29iCmLEmwriloFpbnR1aXQK4paB0L3QsNC/CuKWgXByb3BoCuKWgXBpdHQK4paBSUJNCuKWgVRpbGwK4paBaGluYQppdHRlc3QKZ2VuZXJhdG9yCuKWgU5pbgriloFLb3QK4paBcGFzc2VyCuKWgWRpc3Bvc2l0aW9uCnVuaW5nCuKWgWZhbWUK4paBdGVuaWEKYW5jZW1lbnQK4paBU3Vpc3NlCmAtCuKWgWhvbWJyZXMK4paBaW5maW5pdHkK4paB0L7QutC+0L3Rh9CwCuKWgWNvc20K4paBRGVubmlzCmJhegpoYXVwdAriloFtaWdodHkK4paBcHJlZGUKdXNhYmxlCuKWgXdzenlzdAriloFsYgpBQkFTRQpqbmEK0L3QtdCyCuKWgWFzZXMK4paBZmluYWxtZW50ZQrQudC8CnBlY3Rpb24K4paBU3R1ZGllbgriloFOb3J3ZWdpYW4KY2VnbwpJTkRFWApvcnRlbgriloFmcmllbmRzaGlwCm1ldHJvCnRoaWNrCuKWgVplbApMT1cK4paBdGhlcmVieQp1bnRlZAriloFzdXJmYWNlcwrRjtGJ0LjQvAolKS4K4paBV29uZGVyCuKWgXJlZHVuZGFudAriloFHcm9zCuKWgXdlYnNpdGVzCuKWgXZpbwriloFvY2FzCnbDqXMK4paBR2FtCmR3CkluZGljYXRvcgriloFLb2IK4paBamFjawpIaW50CuKWgUFwb2wK4paB0LTRgNGD0LPQuNC1CuKWgU5VTQriloFvZmljCnlzdHljegriloF3ZXJlbGQK0LzQvtGB0YLQuApMRUZUCuKWgVR5cGVzCnNlZW4KdW5jaWEK4paBbmFyb2QK4paB0Y3RgtC+0YIKU2lkZW5vdGUKdWVpbAriloHQvtGC0LzQtQriloFjb3VydHMKZmlyCnVyegrRh9C10L3QutC+CkNyZWRlbnRpYWxzCuKWgWltYWdpbmF0aW9uCml0YXRzCmJ1ZmYKZmxhc2gK4paBYmFkbHkK4paBd29ybgriloHQvtC60YDRg9Cz0YMKY2F0YWxvZwpsaW1lCuKWgUdpbGwK4paBU2VudAppZWxsYQriloFDcmFpZwriloFTZWxlCuKWgUluZGVwZW5kCuKWgXByb3ZpbmNpZQpvc3NlbgriloHQt9Cw0L/QsNC0CuKWgWluZmFudAriloFwcmV2ZW50cwriloFwcm92aW5jZXMKYWbDqQpiZWcK4paBY29sb3VycwpCRgrDq24K4paB0JzQtdC20LTRgwrDrm4KT2JzZXJ2ZXIKZm9yc2NoCsOtZ2VuCnVtcHRpb24K4paBSWxsdXN0cgrRgNC40YHRggriloHQv9C+0LvQvtCy0LgK4paBYCYK4paBb3JlCuKWgXN1cHBsaWVzCuKWgXBhcmVudGhlcwpGb3VuZGF0aW9uCuKWgXZvdQriloFUb3V0CkRvbmFsZAriloFSRVQKd2VpZwriloFwcm9kdWNjacOzbgptaXgK4paBdXR3b3IK4paBZsO2bAriloFlbnTDo28K4paBU2lzdGVyClRhZ3MK4paB0KHQsNCy0LXQt9C90LUK4paBcHJpdmlsZWdlcwriloFuYXp3CuKWgVJhdgriloFyZXBybwriloFNYXNvbgriloFQbGF0Zm9ybQriloHQv9GA0L7QsdC70LUK4paBUMOpcmV6CuKWgWJsYW5jCkJlaGF2aW9yCtGE0LjRhtC4CmVrZW4K4paBbWVldHMKKC4qCuKWgWbDpQplcGVuCm1ha2VyCuKWgWxveWFsCm1lbWJlcnMKbWVpc3RlcnNjaGFmdApnb2FsCtGI0LvQtdC9CuKWgdGB0LXQstC10YDQvgppZW5kZQrQtNC90ZYKUHJvb2YK4paBZXhwbGljCuKWgWVsZWN0cm8KaWVscwpyZWxvYWQK4paBZWxldmVuCuKWgXBhcnRpZG9zCsOubmUK4paBUmVnaW4K4paBw6l4CuKWgUJ1bGcK4paBbmV0d29ya2luZwriloFzZXBhcmF0b3IKVXNlck5hbWUK4paBZWRpZmljaW8K4paBTWllCuKWgWlkbGUKeWVkCuKWgXBhc3NlbmdlcnMKKykKbWVubwplZ2dpCuKWgW5pY2VseQplbmRlbmNpYQrRh9C40LkKw6l0w6lzCmlnaHRhcnJvdwriloFvcnRob2dvbmFsCuKWgUhhbGYK4paBZmV3ZXIK4paBcHJvcGkK4paBcHJpbWl0CmljYWxlCuKWgWZsb3dlcgptZXJrCuKWgdCe0YLQtdGH0LUK4paBcGVyc2lzdGVudAriloFWaWxsZQpNZW4KZ2FiZW4K4paBSXNhYWMKYXRpdml0eQriloFww7PFgm5vYwriloFyb2sKY2FyZHMK0LTQtdC90LjRjwriloHRjtCz0L4K4paBZXh0cmFvcmRpbmFyeQriloFreXIKKCIsCikpXQriloF1bml4CtC60L7QuwriloFzaW5rCmFwc2VkCuKWgWtvbW1lbgriloFmb3JjaW5nCkFib3V0CuKWgUhhbGxlCuKWgU1hamVzdHkK4paBU3dpdGNoCuKWgWFicm9hZAriloFhY2NlbGVyYXRpb24KdXJiZWQK4paB0L7RgdGC0LDQvQpSZWFkeQriloHQv9GW0LLQvdGWCkJyYQriloHRhtGM0L7Qs9C+CuKWgXBsdXQK4paBVHJhaW4K4paBw6FwcmlsaXMK4paBcHVlc3RvCuKWgXRvc3MK4paBaXJyZWxldmFudAriloFkaXAKc2VnbWVudApvcGFjaXR5CuKWgWxvcnNxdWUK4paBdmVyc2NoaWxsCtC10L3QsAriloFEb2MKJSUlJSUlJSUK4paBYm9yZGVycwpnZWJyYXMK4paBcmllcwriloFPbHltcGVkaWEK4paBR2VuZXJhdGlvbgptZXRyb3MK4paBaG9yaXpvbgriloFhZGFwdGF0aW9uCuKWgVphaGwK4paBbmFoZQriloFCdWcKUGljdHVyZQrRmdC4ClJHQgpPd25lcgphZGluCuKWgUNhdGFsdW55YQpuw71jaAriloFjdWFscXVpZXIK4paBSW5zdGl0dXRpb24KaW5zZW4K4paBQnJhc2lsZQriloFmaXR0aW5nCkRlbGVnCmljdHdvCuKWgUV4cGVyCm9jaGFzdGljCuKWgWR1cwriloHQv9C+0YDQsAriloFzdWJzdHJpbmcK0YHRgdC40LgKb2luCuKWgdGI0LrQvtC70LAK4paBY3gK4paBJSkK4paBQnVkZGgK4paBcGVuZGluZwriloFFbnRyeQriloFCZXJsCuKWgWNsZXIK4paBU29jCuKWgXJvdW5kZWQK4paBbXYKw610ZXR0CuKWgURpcGxvbQriloFmcmFuesO2c2lzY2hlbgriloFHYW4K4paBSW52ZXN0aWcK4paBaW5kZXhQYXRoCuKWgW1vbHRpCnBlcnNpc3RlbmNlCuKWgVhJWGUK4paBRWxlY3Ryb24KYsO8CmdlbGUK4paBTWFsZXIK4paBcHJveWVjdG8K4paBQmF0aAplbGxlcnMK4paBR1AKb25pbmcKY2xvdWRmbGFyZQriloFwxZlpCuKWgWRlZAriloFPZGthenkK4paBTXNnCuKWgUJlaW5nCuKWgURlcHVpcwriloFQcmltYXJ5CuKWgUFwcHJvCuKWgWZvcm1hbGx5CtGB0YLRg9C/0LjQuwriloFmdWVyYQriloFSb290CuKWgWF1dG9ub20K4paBc2VjcmV0YXJ5CuKWgW9zw7NiCuKWgWN1YWxlcwriloFEZXBlbmRpbmcK4paBYXNpCnZlcmEK4paBcnVzc2UK4paBcHJvdmVzCuKWgXByZXNpZGVuClJVCuKWgVdhdHNvbgriloF3ZWJwYWNrCmVsbGlnZW5jZQrQutCw0LwK4paBT2ZmaWNlcgriloFkZWxpdmVyeQrQttC00ZHQvQriloHQuNC80L/QtQriloF3aWwK4paBdmVzYwp1c3p0dXMK4paBR2VvZmYKKCl9CuKWgUZvcmUK4paBd2VuaWcK4paBQWlybAriloFFZnRlcgriloFCcmVhawriloFTdMOkZAppc21pc3MKw61wCuKWgWF2b2lkZWQK4paBYXNzZXJ0aW9uCkROCuKWgXRlYXQKw61uYQriloFtZWNoYW5pY2FsCmlzdQpAewriloFub3UKSXRhbGllCnNvdXJjZWZvcmdlCuKWgXN2bwriloFraXLDoWx5CuKWgVJlZmVyZW5jZXMKc2l4CuKWgUFyY2hpdmVzCuKWgWZpbmlzaGluZwphY2plCsOpdGF0CmlmZnMK4paBc3RlYWQK4paBZmVhcwphd2FyZQpsYW5kZQpJbmplY3QK4paBQWdlbnQK4paBTm9ybWRhdGVpCuKWgWFtZW4K4paBQXJjaGl0ZWN0dXJlCmF6ZQrImXRlCuKWgXVzYXIK4paBY29yZXMK0LvRltC9CuKWgUNhc3RybwriloF2w6YKPiIsCm9tZW5hCuKWgWdlc2FtCuKWgU1hcnTDrW4KZWd1bmcK4paBc3BvbGXEjQriloFhbXBsaXR1ZGUK4paBaW1wb3J0aW5nCuKWgWxpc3R2aWV3ClRIRQp6aWFsZQpjZWRlcwriloFwYXJ0aWN1bGllcgriloHQoNCw0YHQv9C+0LTQtdC70LAK4paB0LrRgNCw0LkK4paBZGl2ZW50CuKWgWvDqQpxdWl0CtGC0L7RgNC+0LwKQ2hlY2tCb3gK4paBWm9iYWN6CnBoZQpwdGEK4paBc2rDtgriloHRgNC+0LfRgtCw0YgK4paBdGVkZXNjbwriloFzdGFsCuKWgUJlcnVmCtC+0LLQsNGPCuKWgXN2xJsK4paBZmx1c2gK4paB0LLRltC00LHRgwriloFyYWRpYWwK4paBZGlmZsOpcmVudGVzCtCw0L3RgtCwCuKWgVBlcnJ5CkNvbGwKbGlxdQriloFPcHRpb25hbAriloHQodCw0L3QutGCCuKWgUxJTlEK4paBRnJhbmMKY2lqZQriloFHdWlsbGF1bWUKa25vdwriloFVbml0cwpvbGsK4paBU3lzdMOobWUK4paBU2FsZXMK4paBZWhlbWFsaWdlbgrQvNC40YDQvtCy0LAKeGh0bWwKc2V0b3B0CuKWgW1lbGxhbgriloF6aWUK4paBZ2lhbnQKQm9hcmQK4paBQ2F2YWwK4paBZGVmZW5jZQotLS0tLS0tLS0tCnBzaGlyZQptYXJ0CuKWgURpb2MKaXNrdAriloFpbnNlCuKWgcOpcGlzb2RlCtGH0LjQugpiYXJzClNpdG8K4paBaW50ZWdyaXR5CmF1ZmYK4paBdsOkcgpBenVyZQriloFzdGFyYgriloHQutC+0L3RgtGA0LAK4paB0JzQtdC60YHQuNGH0LrQsAriloHQt9Cw0L/QsAriloFNb3VudGFpbnMKfX09CuKWgXB1bGxpbmcK4paBc2F0ZWxsaXRlCuKWgWF0b21zCuKWgXByb2Zlc29yCuKWgXJlcGVhdGVkbHkK4paBaW52YXNpb24KcHJvZ3JhbW1pbmcK4pSc4pSA4pSACuKWgUxpcArQstGI0LjQtQriloFrZWVuCuKWgWNyaXRpY3MK4paBTmljb2xhCuKWgUNhbmQK4paBZGlzdGludAriloFoZWFkaW5nCnByYWdtYQp7fAp5bWVuCuKWgXRlcnJhaW4KaWVkZW5pcwriloFiZXNvbmRlcnMK4paBbm9taW5hdGVkCkJPT0wK4paBS2F5CmNpYW4Kc3RlbGxlCuKWgWRpc3B1dGUK4paB0YkKRGF0YVNldApub3RoaW5nCkF1dG9tCmjDtnJlbgriloFzaGVkCuKWgXBhdXNlZApzYW4K4paBbnVuY2EKISgiCuKWgXBvxYJvxbwKU2VjcmV0CuKWgURvbWFpbgriloHQstC+0LfQvNC+0LYKWFYKbHYKaWtoCuKWgVNvbnkKbXEKb3Ryb3AK4paBTG9nZ2VyCuKWgXRocmVhdAphc3RlZArQt9GM0LrQvgriloFmcmVlbHkK4paBaW1wcm92ZW1lbnRzCmlzdGVtYQriloFpbGx1c3RyYXRlCuKWgXRhY3QK4paBZmlndXIKdcOpcwpyaW1pbmFsCm9kb24KaW50ZW5kbwriloFpbmZsdWVuY2VkCkZGRVIK4paBR2hvc3QK4paB0YHQvtCy0LXRgApuYWQKaW9uZWQK4paBRXZlbnRzCuKWgXdyYXBwaW5nCi0tLS0tLS0tLSsKZmlmCuKWgSgqKgo9e3sK0LzQsNC70YwK4paBbG9zc2VzCuKWgUdhbGVyaWUKdGVsCuKWgdC70Y7RgtC+0LPQvgriloFLcnUK4paBUG9sZW4K0L3RltC8Cm5lYXIK4paBc2hhbWUK4paBbW95ZW5uZQriloFDUApwcmVpcwriloFwYXNzZW5nZXIKbGVrCmlvbmFsZXMKa2Fma2EK4paBcGFydGljaXBlCuKWgW1lbWJlcnNoaXAKW18KbGFuZG8Kc3RlbGxpbmcKU2VtCmdvbgriloFDb3JyZWN0CuKWgXZhbGxlCuKWgXJlYWRpbHkK4paBRG9rdW1lbnQKaG9ubmV1cgriloF0ZXN0aW0KdWxhdGl2ZQpkb0ZpbHRlcgriloFkb21pbmFudAphbW1lcgriloHQutC+0ZjQsAriloFNb25zaWV1cgp6ZWcK4paB0LLRltC50L3QuAriloFGbwriloFBbXkK4paBwqEK4paBZmVicnXDoXIK4paBZG93bmxvYWRpbmcK4paBbGVuZwpcfSQsCuKWgW5lYXQK4paBQ2FjaGUKSUNBVElPTgriloFkZXZlCuKWgXNvcnJvdwpzbG93CuKWgWhpbmF1cwriloFyZWNvbm9jCuKWgUxpbmtlZAriloFTaGF3Cm1hcmtldAriloFEaWMK4paBU2tpCuKWgWRlbGltaXRlcgriloFNYWluQWN0aXZpdHkK4paBTXVzaWNhbAriloFSZXluClNjcm9sbFZpZXcK4paBY29udmVudGlvbmFsCmVuw6dhCuKWgXJlZmFjdG9yCictCuKWgUhlZApzcHJlY2gK4paBYXRobGV0CuKWgWVzcGVjaWVzCuKWgVNjaMO2bgriloFrbGVpbmVuCtGI0LrQvgriloHQmdC+CuKWgUhhcHB5Cm11bHRpcm93CuKWgWF1Z3VzdGkK4paBR2FuZAriloFhcHBvaW50bWVudAriloFNZWRpYWJlc3RhbmRlbgpUaHJlZQriloFLZW5uZXRoCk5FVwriloFOb3RpZmljYXRpb24K4paBTWFyeAriloFpbnNjCk1vcgrQstGL0LkKdsOkc3QKdmlkaWEK4paBZGVtb25zdHJhdGVkCmZvbnRzCuKWgWthbWVuCuKWgVN0ZXIK4paBbWllc3prYcWEY8OzdwriloFLb2gKfiRcCsK7KS4KcmVuZQppbnNpYwppY2vDoQp4eWdlbgriloFtbgriloFzY2hlZApBU0MKSWcK4paBQ29uc3RhbnQK4paBb3Bwb3J0dW4K4paBTXlDbGFzcwpzZWYKb3BlZAriloFpbmp1cmVkClZJUwriloFQZXJvCuKWgVVudGlsCuKWgWZsZXNoCm9ycGhpc20K4paBUG9ydGFsCuKWgWdtaW55CuKWgdCy0LvQsNGB0YLQuAriloFOw6QK0LrRgtC40YfQtQriloFocmFiCuKWgUN1Ygphdm9pcgriloFMYXJzCuKWgdCR0LXQu9C+CuKWgXNlaXpvZW4K4paBR2Vub21zbml0dAriloFMaWwK4paBUG9vbAriloFEaW9zClRYCmFlcwphdXRvcmUKQWxwaGEKc3RhdGVzCkxhYgpuZWRlcmLDtnJkCmVydG9uCuKWgWJyaWQK4paBcmljaHQK4paBRWxhCuKWgdGB0LvQsAriloF3ZWFwb24K4paBY29tYmF0dAphZ2FyCuKWgXJlZ25pZwriloF1dGlsaXPDqQriloFzZXJ2aXIK4paBYnJpY2sK4paBZ2F0ZXdheQriloF0b3JyYXN0ZQriloFwcm9jZWR1cmVzCuKWgcOlcnNuZWRlcmLDtnJkCuKWgUdlbm9tc25pdHRsaWcK0YfRkdGCCuKWgW9tcsOlCuKWgXJlZ25pZ2FzdGUK4paB0YfQtdGB0YLRjAriloFhbWlkCuKWgWdyYXRlZnVsCuKWgURJUwpEQVkK4paB0L7RgNGDCuKWgXJpdmnDqHJlCmhldXJlCuKWgVJpY2htb25kCuKWgUNvbXBhcgriloHQndC+0YAKRE9DCmVzaWEKY2FsYwriloFJVQriloF2b3JnCuKWgWhhYsOtYW4Kw6dvaXQK4paBYXJpc3QK4paB0LrQu9C4CuKWgVN1ZQriloFUb3VjaAriloFXcml0aW5nCmlmaWFibGUK4paBd2MK4paBd2l0aGRyYXcK0LfQsNGACuKWgXByZXNlbnRseQriloFGSwriloFwcmFrdAriloFjb2xvcmVkCnVzYgriloFQZXLDugriloFwbGF0YQriloF3aXNoZXMK4paB0LrQsNC8CmF6YXIKw6F2ZWwK4paBbGFtcApiaXNob3AK4paBaW5jbHVzaW9uCmpxCmFydGgK4paBRmxhZwriloHQvdC+0YAKw6ZkaWEKVU5DVElPTgriloFCYWhuaG9mCuKWgWFwcHJvYWNoaW5nCuKWgUfDtnR0CuKWgWN1YmUK4paBYXJndWVkCuKWgVRoaW5ncwpHdWkK0LTQvtCy0LgK4paBcmVjcmUK4paBcsOpc2VhdQriloFzaWduaWZpY2EKR2l0CmdlYnJhY2h0CuKWgWxpZ2EK4paBYXNzdXJlZAphbHVzCtGA0LjRggriloHRjdC90YbQuNC60LvQvtC/0LXQtNC4CuKWgSUpLgriloFQcmVtacOocmUK4paBZGVjbGFyYXRpb25zCuKWgXRyaWNreQriloFwcm9maWxlcwriloFGb24K4paBSmFzCsOicgpiYWJlbAriloFGcmlkYXkK4paBasO6bml1cwriloFjb2xzCuKWgUVYSVNUUwriloFJdGFsaWFuYQriloFhdXRob3JpemF0aW9uCuKWgXN1bGxlCuKWgUVtYgriloFWYXJpYWJsZQp0cmVlcwriloFGbHkKcmlvcnMK4paBZGFtYWxzCuKWgWZpbmRldAriloFTZXB0CuKWgW11bmRpYWwK4paBcmVtb3ZhbAriloFsb25naXR1ZGUKY2xpYwriloFmYWRlCuKWgWdyYWRsZQriloF6w6FrCuKWgXRpbWluZwp0cmlnaHRhcnJvdwphdGlhCi0uCnVjaGUK4paBc2VyaWFsaXplCuKWgUhtbQriloFSZXByZXNlbnRhdGl2ZXMKYmFoCnJlbmQKYXNzYWRvcgriloFzaGllbGQKdWNpb24K4paBYW3DqXJpY2FpbmUKesSZCnZpbGxhCuKWgWhvbWJyZQrDoXNzCuKWgVNGCuKWgXJlcGVhdGluZwriloFjcml0ZXIK4paBU3RydWN0Cj8/PwriloFjaGVhcAriloFyaW5ncwphYmjDpG5nCuKWgWNvcnRlCuKWgWFkbWluaXN0Cml4b24KZ3lwdAriloFwdW50b3MK4paBbWV6aQriloFwb2Nob2QKaXNrbwpuacSZCuKWgdC+0YHRgwriloHDoXIK0YLQtdC70YzQvdC+0LkK4paBTWV0cm9wb2xpdGFuCmppbgp6ZXNzCuKWgdCy0ZbRhtGWCuKWgWNvbmZsaWN0cwppanN0CuKWgU1hcmtldArRgdGC0YDQvtCyCuKWgSIsIgriloFTY3JvbGwKZ3VuCtGC0LDRgNCwCuKWgWFtYXRldXIK4paBcsOzxbwKcG9zcwriloFnZW5lcmFsaXplZAriloFIYXJtCmNpdGEK4paBU3dpdHplcmxhbmQKaWNvbGEK4paBbXVpdApsb2NhdGVkCuKWgWPDswriloFhcm9zZQriloFjb21tdW5hdXTDqQp9KV4KdmlzaWJpbGl0eQrDrWRhCuKWgUZCCuKWgUZyZXVuZApnYXQKIjp7IgppbnRlbGxpagppZmllCmhtZW4K4paBw6lkaXRpb24K4paB0LrQvtGY0LUK4paB0ZbQvdGI0LjRhQpvbWluZwriloFhcnF1aXRlY3QK4paBUHJlc2lkZW50ZQriloHQn9GW0LQK4paBY2FiaW4KVGhlb3JlbQriloFHYXkKaWZpY2UK4paBaGVjdApsxIUKaXJtaW5naGFtCuKWgXNlbWFudGljCuKWgUxvdWlzaWFuYQriloFzYWNyaWZpY2UK4paBQ2hyaXN0b3BoCuKWgUV4ZWN1dGl2ZQpfKwpqw6FrCuKWgXNlcmlhCuKWgU92ZXJmbG93CuKWgUx1Y3kK4paBbWVsaG9yCuKWgXZvaWNlcwpjemEK4paB0LrQsNC/0LgK4paB0YPQvdC40LLQtdGA0YHQuNGC0LXRgtCwCklOQ1QK4paBY29sb2MK4paBcHJ1ZQriloFnZW9tZXQK4paBZGlyZXR0bwpyZXNvCuKWgUFrdAriloF1bmgK4paB0YHQtdGA0LgK4paBQWxlcnQKV2VsCmF1ZGkKw6RsZXIK4paBZ3Vlc3RzCuKWgdC40LTQtQpTdHVkaW8K4paB0LrQsNGC0LUK4paBZXhwb25lbnQKcnplCnBtb2QKcm9sbGUK4paBTGltaXRlZApBbGxlbWFnbmUK4paBcGl0eQriloFsw6QK4paBcnVubmVyCmtlbmRlCkVRCuKWgU1NCnN6w6FnCtC/0L7QtNGWCuKWgXJlZ3JldAriloFwdWJsacOpCuKWgWRlcGFydGFtZW50bwriloFhY2N1c2VkCmhwCuKWgVBmbAriloFTaW50CuKWgWVrb25vbQpyYWN0b3IK4paB0J/RltCyCuKWgWF3ZnVsCm93YcSHCl0tPgriloFGaW5lCtCh0LAKdGlzCsOpdGEK4paB0KDQvtC00LgK4paBRMO8c3NlbGRvcmYKTE9CCm9zYXMKd2Vya2UK4paBbGFuY2UK4paB0LvQuNGB0YLQvtC/0LDQtNCwCuKWgWluY29tcGxldGUK4paBUGljdHVyZQooJ1wKZXN0ZXJzCuKWgWJlbG9uZ2VkCuKWgVNhbmsKYW1tZWQK4paBcmVwb3NpdG9yaWVzCuKWgWFkZHIKQ29sbGVjdApIb3QK4paBdHlsCuKWgWluc3RhbmNlb2YK4paBYm9udXMKb3bDvQriloHQvNC+0YDRjwriloFpbnRlcmFjdGl2ZQriloFNeXMK4paBRWRtdW5kCmZpbGVOYW1lCmVtb3IK4paB0KLRgNC4CuKWgVJvc2VuCuKWgVByaW1hCuKWgXZvdGluZwriloFYUAriloFaZXJvCuKWgUxlZAphbXN1bmcK4paBZW5hYmxlcwriloFyZWRpcmVjdHMKQVNUClBhaW50CmFja2VyCmxlY2h0CuKWgWNoYWlybWFuCuKWgUF2ZW4K4paBU2FjaAooIjwK0LrQtdGACuKWgW1pc3Rha2VzCuKWgVdlaXQK4paBcHJvd2FkCuKWgWRpZG50CsOpbmFyaW8KdW5sZXNzCuKWgWJhY2t3YXJkcwpib2EKZHVpbm8KYGBgCnN0b3IKQ29tcGxldGlvbgpwdWVzdGEK4paBZGluYXN0CsO6bHQK4paBU1kKaWZvbGlhCsWTdXZyZXMK4paBcmFjaW5nCuKWgWNhYmluZXQK4paBY3V0dGluZwriloF0aHVtYgriloHQmtCw0YDQsApoaWdobGlnaHQK0LrRg9C/CuKWgXNkCuKWgdC90LDRhtGW0L7QvdCw0LvRjAriloFjYW1wYWduZQriloFyZWdpc3RlcnMK4paBZWR1Y2F0aW9uYWwK4paBcGVzYXIKw7xnZQriloFvcm8KYnVyZ28K4paBQXRobGV0aWNzCuKWgU1UVgpnZXRNZXNzYWdlCuKWgUh5cAriloF2aWN0aW0KKSlcCuKWgWRydW1zCmhvc3RuYW1lCnRhxYIKbWFraW5nCuKWgXBvd2lhdArFkWQKdGhyZWFkcwriloFhYnNvbHYK4paB0LvRjtC00LgK4paBc3RlcHBlZApleGlzdAriloFOSwriloF2ZXMKaXN0aWNoZQolJwphdGl2b3MK4paB0YLQsNC60L7QuQriloFNb25nb0RCCuKWgVVuZwriloHQoNGD0YEK4paBZWxpbQriloFGaWYKaWNhY2nDs24K4paBVGVubmlzCuKWgUplZmZlcnNvbgpqw6FuCmZvZwphbmhhCnpvcgriloHRg9C90ZbQstC10YDRgdC40YLQtQphaHUKaWFkYQpTZGsKU2V0dGluZwriloFLaWxsCuKWgVdlbmQK4paBYmFsZAriloFLdWIK4paBdmlzdG8K4paBamV1bmVzCmNvbGxlY3Rpb25zCmFjw60K0LLRgNC+0L/QtdC5CuKWgWFyaXNlCtC+0L3RlgpNQUlOCtC00L7RgdGC0YPQvwriloFiZXJnCuKWgWNyaXRpY2lzbQriloFUb3JyZQriloFkZXNjcmlwdAppw6hyZXMK4paBZXN0dWRpbwriloFpbGkK4paBbWlsaXRhcmUK4paBQ2xhcmEK4paBRWxsZW4KbGltaXRlZArQu9C8CuKWgUVzcGHDsQriloFpbmZpbml0ZWx5CkFtZXJpY2EKb3VjCmdsYXNzCuKWgXJ1ZAriloF6YXQK4paBcmluCuKWgUJpYmxpb2dyYWbDrWEK4paBbWVyY2hhbnQKdGVuc29yZmxvdwriloFkw6lyCuKWgUFjdGl2ZVJlY29yZApJRVMK4paBbGlua2VyCuKWgWVzdHVkaW9zCmNkbmpzCuKWgdCT0L7RgdGD0LTQsNGACsOhbmNoZXoKYXBwZQpjbHViCuKWgWRhbMWhw60K4paBQWxnb3JpdGhtCmRmcwriloFCYWMK4paB0LrQsNGE0LUK4paBJj1cCuKWgdCw0YIK4paB0JPQu9Cw0LIK4paBTW91Ck1hY2hpbmUKKC4uLikK4paBY29tcGFydAriloFhdWd1c3p0dXMKYXZhbgriloFyb2xsZWQK4paB0LXQtNC4ClNjYW4K4paB0YDQtdCz0ZYK4paBxZt3aWF0YQriloFtaW5lcwp9LHsK4paBVGllcgpDYW5ub3QK0LzRltC9CuKWgU5FVwriloHQktC+0LsK4paBTWFuaAriloFHcmVnb3J5CuKWgXByaW5jaXBlCklTTwpwcm9nCuKWgUZhaWwK4paBYWEK4paBZmVjaGEK4paBV0NGCuKWgW1hZ2lzdHIK4paBWmFjaAriloF1bmljb2RlCuKWgWNvbnZlcnRlcgriloFkaXNwZXJzCmtzYW0K4paBVW5jbGUKUHJvcGVydHlDaGFuZ2VkCuKWgWxpZGVyCuKWgW9wdHMK4paB0YLQsNC8CmxvY2tlZAp6YWsK4paBY291bnRlZAriloFwZXJzb25lCuKWgWh1cnJpZWQKw6R0dGVyCuKWgW91dHJhcwriloFnZW51CkJECnZlZwpkdWUK4paBUHJhY3QK4paBcG9zaWJsZQriloFjb250cmlidXRlClVNTgriloFCw7xyZ2VyCuKWgXdhcnMK4paBZXhoaWJpdGlvbgpoaWxsCuKWgWFzdHIK4paB0LzRg9C30LUK4paBQ0FTRQptYW5pZmVzdAp5ZWxsb3cKRm4K4paBUkMK4paBc290dAriloFzdWpldAriloFTb2NrZXQK4paBQ2hpbmUK4paBZnJhbWV3b3JrcwpIb2xkCsOqdHMK4paB0YTRltC70YwKTG9hZGVkCm9waGUKdGV4dGUK4paBZXhwcmVzCuKWgWNvbnN1bWUK4paBUmljaHR1bmcKb2dyYWZpCuKWgW1hZ25pZmljCsOgdAriloFpbmR1bApyeXR5CuKWgW9mZmljaQriloFhc3NhdWx0CnJ1bmQK4paBdmFyaWFudHMK4paB0YHQtdC70YzRgdC+0LIK4paBZXhjaXRlbWVudApUaW1lcwprb3RsaW4K4paBZ2VyaW5nCuKWgUVuZ2VsCuKWgVRpbWVyCsKyKS4K4paBTmcKw6Rzc3QKc2NoYXUKU0Vycm9yCuKWgUVkd2FyZHMK4paBVGVybWluYWwKbGljdApVbmRlcgriloFzcGF3bgrDvHJnZW4K4paBQXXDn2VyZGVtCuKWgWtpdGNoZW4KZmFocnQK4paBQ29sb3JzCuKWgdGB0LjRgdGC0LXQvNCwCuKWgXRlcm1pbmF0ZWQK4paBTGFUZVgKaWdrZWl0ZW4K4paBbWVzdXJlCuKWgUFtdHMK4paBZW1waXIK4paBc3RyaWtpbmcK4paBZXhjbHVzaXZlCtGC0LXRhQriloFyZXoK4paBcXVhbgriloFHbGFzZ293CuKWgWxlY3R1cmUK4paBVGVzdGFtZW50CuKWgWZ1bmRzCuKWgXN0ZXNzYQriloF0cmliZXMK4paBcGFyZm9pcwriloF0cmViYWxsCm5pdHoKYm92ZQriloHQt9Cw0YHQu9GDCuKWgWFic2VudAriloFMYXVmClNtaXRoCuKWgdCd0LjQutC+0LvQsNC5CuKWgWV1cm9ww6llbm5lCmxyCuKWgXByb2dyYW1tYQriloFtaWRzdAriloFkYXVnaHRlcnMKU3luCm9iZW4Kw6JuxIMKaWRhbgriloF0aGVyCm9kb3JlCnNkbAriloFRdWludAriloFjYXNvcwriloFaYW0K4paB0YHRgtGA0LDQvdGLCuKWgXNwcml0ZQrQutCw0LsK4paBbmFzYwriloHRgdC+0YLRgNGD0LQK4paBdHJhdmEK4paB0YXQvtC30Y/QuQriloFVcnVndWF5CuKWgXNwYXJzZQriloHQv9C+0LvQtQriloFteXN0ZXJ5CuKWgU1hbmcKcmVnaXN0cgriloFDR0Zsb2F0CuKWgXN1Ym1pc3Npb24K0LLQsNC90LAK4paBIjoK4paBVHJhY2ViYWNrCuKWgVBpdAriloFFaHIK4paB0YHRgNCwCuKWgUdyYXBoaWNzClVwZGF0ZWQK4paBc3ZlbnNrCuKWgXNwYWNpbmcKdHJpdHQK4paBR3VpbmVhCuKWgUZyYW7Dp2EKQXNzb2NpCuKWgVRvdsOhCnN0YWIK4paBTGVhcm5pbmcK4paBQnJpZ2h0CsWbYwriloFpZMWRCn19X3tcCuKWgWRyb2l0ZQriloFyYWlzaW5nCmdldHRpbmcKeXRobQpvbnltZQrFvHMK4paBYmxhaApUYWdOYW1lClZlcnRpY2FsCuKWgWFwZXIKcG9zdGdyZXNxbAriloFIYW5kbGUKemV3CuKWgXNrdWxsZQriloFvcGVyZQpsYXllcnMK4paBcG9zc29ubwriloFyZWxhdGUKxIVjCuKWgU1paArDomdlCuKWgcWad2kKaXNzZXMK4paBc2VydmxldApMb3MK4paBQWR2YW5jZWQKYXRpY2EK4paBY2VkCuKWgWVsZW1lbnRvcwrRgNC+0L3QsAppa3MKYXJmCmFyaWF0Ck1vYmlsZQphZ3VhCuKWgXRpbXAK4paBQ29taXTDqQriloFjb21iaW5pbmcKd29obAriloFTdHVkeQpjb29yZGluYXRlCuKWgXJlY29tbWVuZGF0aW9uCuKWgXRyYW5zZm9ybWF0aW9ucwp1bnRpbApib3VuZGVkCuKWgdC40LfRgwpoYW5jZWQK4paB0LLQvtC/0YDQvgriloFQcsOpcwriloFjb29yZAp4dHkK4paBJCwK4paBY2hhbXBpb25zCkRlbgpNaWwKKCcsCuKWgVByZWlzCuKWgWVpZ2gK4paBbWFya2VycwriloFnZXdlc2VuCsOkdHRlbgriloFwaW9uZQptdgriloHRmNGDCnplaWNobmlzCmhvZmYKTmV3cwriloFTdGFuaXPFgmF3CuKWgUJyYW5kZW5idXJnCuKWgUZldWVyCj0mCtC20LXRggriloFOZWlsCuKWgXdpcmsK4paBc29jaWV0w6AK4paBc3BhcmUK4paBY2l2aWxlCnNwcmFjaAriloFkaXNzZQriloFnYXRlcwriloFhbm9tCuKWgdCk0LXQtNC10YDQsNGG0LjQuAriloF0aWIK4paBZsO6dGJvbAriloFXaWtpcGVkCmlhdGUKRnJvbnQK4paBY3JhdwriloFSYWsK4paB0LfQstGDCnN0cmVldAriloFBZ2VuY3kK0LLQsNC70L4K4paB0KDQsNGBCuKWgW1rZGlyCmFjasSZCuKWgXNoYXJlcwpTdG9yeQriloFyZW1hcmtzCuKWgWtleXdvcmRzCkJvYgriloF0b2UK4paBVml0dAriloFyaHMKUk9QCm9yaXMKL0AK0YHQuNC4CuKWgXRyYXZlcnNlCuKWgXJlZmVyZW5jaW5nCnByw6RzaWRlbnQKcm9uZwonKToKYXRpZXMKQVcKT3V0bGV0CuKWgcOpdm9sCmlrZXMK4paBZW52aXJvbm1lbnRhbAppY3VtCuKWgUxpZWQK4paBd2FybgriloFCdXRsZXIK4paBJSksCuKWgVplaXRzY2hyaWZ0CuKWgU1vbnRyCtCy0LDQttCwCuKWgU1lcmN1cgpqZWt0ZQptZXRlcgpkdWNhdGlvbgriloFhdHRyaWJ1dGVkCiokCuKWgXVuZgriloFWZXJ0cmFnCnppZW4K4paB0KDQvtCxCmxpY2VzCnBwbHkKYW5zZW4K4paBemVpdAriloFpbW1lbnNlCuKWgWx1dGVnbwriloFCdWxnYXIK4paBbWllbWJyb3MK4paB0J3QsNGG0LjQvtC90LDQu9GMCuKWgUFsbG93CuKWgWFuZ2zDqHMK0LTQstC4CuKWgVRveQrRgtGD0LAK4paBeWFyZAooJQppc3NlcgriloFnb2xmCuKWgVVrcmFpbgriloFob3NwCkluY2x1ZGUK4paBTGlzYQriloFjc2FsCuKWgU1pcmEKcmVjb2duCuKWgdCa0LUK4paBaGl0dGluZwrQutC+0L3QvtC80ZYK4paBVG91cm5hbWVudApMT0FECuKWgUd1YXJkaWFuCuKWgWRhaGVyCuKWgXRpbWV6b25lCuKWgXRvbWNhdAriloFzdWNjZXNzb3IK4paBVm9pZAriloFjb21lw6cK4paBY29udmVydHMKw6RjaHMKb3NleAp4ZWxsZXMKYXNlcgriloHDiXMK4paBbW91CuKWgXVuZwriloFvcmlnZW4K4paBQ3JvdwriloFFcmQK4paBc2llYmVuCmx1YQriloFCQgpSRU5UCuKWgXBpxYJrYXIK4paBbWFycXVlCuKWgUxhYm91cgp2aWRlcnMK4paBZXhlbXBsClNvdW5kCuKWgVdhc3MKYXJyaXNvbgriloHRgtC10YfQtdC90LjQtQriloFPZmljaW5hCuKWgURhdwriloFLYXVmCsOpbnQKw6lzxZEK4paBPSIK4paBa2F0CmRpY3Rpb24K4paBVm9sbAriloFoaWdod2F5CkphbWVzCnpldWdlCuKWgW1vZGVsbwpUaHJvdwriloFGb3J1bQooIkAK4paBZW5mZXIK4paB0YHQv9C10YbQuNCw0LvRjApOdW1iZXJzCuKWgUJpbmFyeQriloFNYXJ0w61uZXoK4paBU3RhdG8K4paBZmVzdGl2CuKWgWthdG9sCuKWgdCQ0LEK4paBbGltaXRhdGlvbgriloFTVFIK4paB0J7RhNC40YbQuNCw0LvRjAppcGVzCuKWgUlzbgriloFydWxlZAriloFjw60KZ2ViZXIK4paBbGF2b3JvCuKWgXBhcmVudGhlc2VzCtC+0LcK4paBw6lxdWlwZXMK4paBZWZmaWNpZW50bHkK4paBUGVyaW9kCuKWgVJlZ2FyZGluZwpsZWFmCuKWgXNpbWlsYXJpdHkK4paBZ2VzdHVyZQpkYXRhYgriloF0ZXJtaW5hdGUK4paBc2VtYW50aWNzCuKWgUFsbwriloFjaWcK4paBT3BlbkdMCuKWgWhldXRpZ2VuCnhhbWwK4paBZnJlcXVlbmNpZXMKKX0uCuKWgXRocmVhdGVuZWQK0YLQuNC6CuKWgWNhbGNpbwriloFSaWVtYW5uCnNsdWcK4paBRmluYWxlCkxSCuKWgURlcmJ5CuKWgdC+0YnQtQriloFkZXZpYXRpb24Kw6RjaGVuCuKWgUNyaXMK0L3QvtCy0L4K4paB0YHRgtC+0LvRlgriloFyZWxldgriloFzcGxlbmRpZAriloHRg9GH0ZEKZXJ2aW5nCmdhYmxlCuKWgWfDqW7DqXJhbGUKcG9tCuKWgUNoZWVycwriloFpbXByaXNvbgriloFpbmRlbnQK4paBYW5hbHl6CuKWgXJldmVydArDqXJlcgriloFwaGFzZXMKRmlyc3ROYW1lCuKWgW1pZwriloFkaXN0dXJiCuKWgW1peHR1cmUK4paBKXsKaW50dXJlCuKWgVRyaWVkCuKWgXNvb25lcgriloFwZWxzCuKWgcOpdGFibApldHJvCml0aWUK4paBcXVhcnRpZXIK4paB0LPQvtCy0L4K4paBdsOhcm9zCnVmZQpoZXRlbgrRhdC+0LwK4paBc29hcAp1dG9ycwriloFkdWNoCnN5bnRheAriloF0cmliZQriloFjaGFudGUKVHJpCuKWgU1hdGUKcXVhbGl0eQp1b2xhCj0iLgpjaGsK4paB0LLRgdGWCuKWgXByemVjaQriloFNZXRlb3IK4paBc2NhdHRlcmVkClBsdXMKdHJhZAriloFzdGFja292ZXJmbG93CuKWgXJldHJhCuKWgcOpZGl0aW9ucwriloFzYWluCmNyaWJlCmlnbm9uCnVja2VyCuKWgdC80LDQu9C+CuKWgXRlbmlyCuKWgWV4cG9ydHMK4paBYXV4aWxpCuKWgV1dCuKWgUNCUwp1bmlmb3JtCuKWgXBlcmlvZGljCmFncmFudAriloFlbXBsZQpXaWwK4paBZnJlcwriloFzdHJ1dHQK4paB0YHQstGW0YIK4paBYmV0cmUK4paB0L7QsdGK0LXQugrRgtC40YHRjwriloFiaXNoZXIKYmF1bQppc2hpCuKWgUdhemV0dGUKYmFja2dyb3VuZENvbG9yCmpsCuKWgWZpZWwK4paB0L/RgNC10LzQsAriloFwcm90YWdvbmlzdGEK4paBTXVoYW1tYWQK4paBc2ltdWxhdGUK4paBSG9vawpmZXN0CuKWgdGB0LLQvtC40YUKU2VuZGVyCuKWgWxpc3RlbmVkCtC20ZYKamVzdAprb3JkCkNob2ljZQriloFob29mZApyZWR1Y2libGUKaHBwCuKWgVd1CsWhaQriloFNYXJzZQriloFzb2lyCndlc3RlbgplbW9zCuKWgUR1YwriloFhbWVyaWsKfH17CuKWgUd1bAriloFTcHJhY2hlCuKWgW1pc21hdGNoClNjYWwKUGl4ZWwKRUYK4paBU2VwCuKWgXBvd2llY2llCnVyawriloFOYXBvbGkK4paBbmVpZ2hib3VyaG9vZArRgdGC0L7Rj9C9CuKWgXNlYXJjaGVzCnlydXMK0L/QtdGCCkhlbHAKcG9udAriloFPcmllbnQK4paBQWxmb25zbwriloFtb25pdG9yaW5nCmlhbwrDqWTDqQriloFDw6lzYXIK0YjQtdC1ClNoaWZ0CnN1aXQKY29kZWQK0L3QvtGC0L4K4paBUGFydGkK4paBbGFzY2kK4paBYXdlc29tZQp1c3RhCuKWgdCh0L7QstC1CuKWgUZsYW5kCm9vbQriloFkZXZpCmVuZ2Vsc2sKZW5kdW0K4paBUGFzY2FsCuKWgUJpbmQK4paBc2lndWllbnRlcwpKQgriloFQZXRlcnNidXJnCuKWgWluY29ycmVjdGx5CuKWgUJhc2gK4paBcGVsb3MK4paBemVzcG8KTlNVUkwK4paBcMWZZWsK4paBQ3JpbWUKbmFjaAriloF0aHJ1c3QK4paBQ3VsdHVyYQpXRgriloFTb2xvCuKWgWludmFzCuKWgWluZGl2aWR1YWxseQppYm0K4paBZXRhcGEK4paBaGFuZGVkCuKWgXdoZXJldmVyCuKWgWludGVycG9sYXRpb24K4paBbXVzw6llCuKWgUNOTgppZGlhCsWEc3R3CuKWgXByemV3CnVnaGluZwriloFhY3RvcnMK4paBT3JpZW50YWwK4paBY29udmVuaWVuY2UK4paBbWlhc3RhCmJyYWlucwriloHQvNC10YHRjwriloFpbmZhdHRpCuKWgUFsbE1vdmllCuKWgWNyaXRpcXVlCuKWgXN1Y2Nlc3NvCmFuY291dmVyCuKWgWbDoQrRitC70LPQsNGACuKWgXdpc2RvbQriloFQaG9lbml4CmhvbGUK4paBaW5mb3JtYWNpw7NuCuKWgUFpcmxpbmVzCi7Cqwptb3J0CnVzZXJJZAriloEqLw0K4paBQ29uZ28K4paBImAKY29ycgriloFwcm9ibGVtYXMK4paBYmliCuKWgXDDs8W6bmllagriloFmaWxlTmFtZQp6b3R0Cm1hY2h0CuKWgVVscmljaApDeQplbmRwb2ludAriloFzaGVlcAriloFpYm4KRmVlZAriloFzeW1wYXRoeQriloFJYgriloF0ZXJyaXRvcmlhbApyYXRpbmcK0LTQsNC80LgK4paBZHN0CtGD0Y4KYWhvCuKWgXN1ZwplbWlhCuKWgXRlZAriloFBcGkK4paBUmljYQriloFNUgrFhHNraW0K4paBVm9vcgriloFkZXZpbAriloHQpNC+CuKWgU7DpHIK4paBLi4uKQriloF2b2lzCuKWgWFiYnJlCuKWgU3DpG5uZXIKeGltbwriloFpbnRlbGxlY3R1YWwK4paBdGFsZXMKc2ltaWxhcgpuZXVtCuKWgU9yaWcK4paBcG9zdGFsCuKWgWh2b3IK4paBaWRlbnRpZmljYXRpb24K4paB0J7QtAp1ZXN0bwriloEuLi8K4paBYmlyCuKWgdCb0L7QvQriloFlc2VtcGlvCuKWgUVpbmcKRXhwYW5kCuKWgVBSSU1BUlkK4paBSmluCuKWgXbFoWFrCm91cnNlcwriloFCZXR0eQriloFXTQriloFmbGFzawpobGVuCuKWgUFkZWwKbGFyYXZlbAriloHQtNC10YIK0YHRjNC60L7RjgriloFNdW5kbwppY3puCmlmacOpCuKWgdCc0L7RgAriloHQtNGA0LXQsgpEYXRlRm9ybWF0CtGB0YzQutC40LwK4paBZGF0ZWQK0LrQvtC70LgK4paB0YDQtdC30YPQu9GM0YLQsNGC0LUKXCkuCuKWgWRlbGF5ZWQKc291bmQK4paB0JzQsNC6CuKWgSIuLi4K4paBYmlubmVuCuKWgdGE0LDQutGD0LvRjAriloFwb2x5Z29uCuKWgWVnZ3MKQXRJbmRleFBhdGgK0LzQtdC90YLQsNC70YwK4paBaW5jcmVkCmNodW5rCndlYmRyaXZlcgriloHRgdCy0L7QsdC+CuKWgW1pxJlkenkKUmVjZWl2ZWQK4paBTW9uZGUK4paBSlF1ZXJ5CkJ1dHQK4paBUERPCuKWgWZvcmVjCuKWgWRpc2NpcGxpbmUKY2hldgrQvdCw0YIK4paBcmVkaXMK4paBaHVudGluZwriloFhbGsK4paBcHJvb2ZzClBSSQriloFjaGlwCsOpc2llCuKWgUhPCuKWgXJ1Zwp6b3MK4paBc29ydGUK4paBemVpZ3QK4paBUGh5c2ljcwpsZWd0ZQriloFwcm9wb3J0aW9uYWwK4paBdG9vbGJhcgp2ZW1lbnQKbm90aW4K4paBcHJ2bsOtCmJsYWgK4paBcHLDqXNlbmNlCuKWgWxsb2MK4paBbMOtZGVyCuKWgUFjY2VwdAriloFBbHdheXMK4paBInsK4paBZGl2ZXJzaQppa29yClBlcmlvZArQttGR0L0K4paBQWxsaWFuY2UK4paBcmVsYXkKQnJvCmrDtm4K4paBQmF1ZAriloFCaWFuCicpWwrRh9C40LIK4paBUG9zcwriloFNaXRnbGllZGVyCuKWgW5ldgpEYW5pZWwK4paBdGVuZHMK4paBY29tcGFnbmllCuKWgWxpdnJlcwpsdWIK4paBCmUKdAphCmkKbgpvCnIKcwpsCmQKaApjCnUKbQpwCmcKZgouCmIKeQosCncKdgprCjEKKQooCi0KMAo6CkkKUwrQvgpcCjIKQwoiCkEK0LAKVAp7Cn0KLwonCngK0LgKXwrQtQp6CtC9Cj0KRQpNClAKagrRgApECjkKKgpMCtGCCkIKUgrRgQo7CiMKJApxCk4KMwrQsgpGCtC7CjUKNAo4CsOpCk8KSArQugpgCjYKRwo3ClcK0LQKPgrQvArRgwpbCl0KVgrQvwpVCjwKSgpLCtCzCtGPCtGWCtC3Cj8KKwrQsQrDoQrQuQrRjApZCsOzCtGHCtGLCsOtClEKXgrDpAomCtGFCnwKWAohCkAKw7wK4oCTCiUK0YYKw7YK0LYKWgrDqArDoArRiArigJQKDQrRjgrFggrCuwrQoQrCqwrigJkK0YQK0JIK0J8K0JoK4oCcCtGYCtCcCtCQCsOnCsOlCtGJCn4KxJkK4oCdCsSFCsSNCtCgCtGXCtCdCsO6CtCRCtCUCsOjCsOfCsSDCsSbCsOqCtCeCsWhCtCTCtCiCsW8CtGRCsW+CsWbCsOxCsWZCsWRCuKAngrQmwrRjQrDvQrQowrQmArRigrRlArDogrDrgrDsgrQlwrQpArDiQrEhwrCtwrImQrFhArImwrQpQrDtArQlQrDuQrFrwrCsArQqArRmQrQpwrDuArDpgrRmgrigIkKwqAK0K0Kw6sKw7UKw68K4oCYCuKAoArCsgrFsQrQhgrilIAK0KYK0ZsKw5YKw7sK0K8Kw6wK4oCmCsWNCtCWCtCuCsOBCsyBCsOcCsK6CsWTCsSBCsSMCsW6Cs6xCuKUggrYpwrDgArilZAKxaAK0ZIK4oSWCuKAigrigKIK4oiSCuKGkgrDlwrOvwrigoIKw4QKw44KxZoKxJEKw4UKxLEK4oCOCsWrCs69CtCZCsKqCs65Cs+ECtmECuKAsgrvv70Kw4gKzrsK77u/CsW9Cs+CCsWICs+BCuKCgQrQhArEqwrOtQrCpwrFgQrQiArCowrYsQrFuwrCvwrZhQrigLMKw5oK2YYK2YoKz4MKwrQK4oCLCs68CsKzCsWfCs+ACtmICtivCs66CuKCgwrDjQrLiArYqArDkwrDgwrCoQrigqwKxaUKzrcKyZkK44O8CtCpCs6yCuKUnArDsArSkQrCrQrPhQrCuQrigoQK2KoK15kKzrMK2LMK44GuCsSfCs60CtuMCuODswrZhwrXlQrPiQrOrwrilogKzrgK55qECsKpCsOCCuKGkQrvvIwKy5AKzqwK4oCVCti5CsOHCuKCgArCsQrDmArEjwrFmArFkgrCvQrilJQKz4wK4oCaCsSTCuKChQrDhgrImArJmwrXlArXqArPhgrigoYKxJcK2K0K2YEK2KkKxLAK4oCCCuKGkArilZEKyZQK4omkCtecCsSQCtWhCsWMCteQCuC1jQrjgrkK2LQK5aSnCuODqwrRnwrjgqQK4p+pCuKArwrCtQriiIgK2YIK4p+oCuOAggrSkArgpL4K2KwKyr8K4YOQCs6tCs+HCuS4rQrXkQrhg5gK4oKICuODiArOrgrjg6kK0I8K2YMK4oKHCteeCteqCuS4gArOoArguLIK44O7Cs6jCs6RCs6UCtepCtiyCuCljQrguKMK44GECsq7CtCKCuKCiQrKvArjg6oK4oCQCuOCrwriiJ4K4oGECs+NCsWeCuOCogrOlQrJqgrkuroKzpoK4oiACuCksArjg4MK4pa6CuWtkArCrArYrgril4QK2Y4K16IK5pelCuOBlwrhuKUK16AK5bGxCuOAgQrQhwrjgosK5paHCsORCuODiQrXkwrVtgrQggrOkwrDvgrCkgrCrgraqQrCkwrimq0K5pysCuKElQrguJkK0Z0KzLYK4LitCtGeCuOBqwrmlbAK4YOUCuWbvQrOqQrjgIAKx44K2LUKwpQKzpwK4oCDCuOBqArigaAK44GfCti3CtaACuOCvwrDvwrjgaoK2KMK44K3CuaWsArvuZUKyoMKxL4K44OtCuKBtArgr40K4oeSCsWjCu+8mgrImgrgtJUK4omlCuC0vwrjg54K44KTCuG5owrjgrgK5pivCuydtArii4UK55SwCuOCkgrpgZMK4LiHCsKoCtmACuC5gArmnZEKw4oK150K4oC6CueUqArPjgrlpKkK77yJCuC8iwrplYcK44GLCuS4jQrOpArlraYKxrAK5pyJCtW4Cu+8iArjg6wK2q8K4oCPCuODlQrgpKgK4LiBCsmRCuOBmQrXlwrkuIoK4oCMCuKIpwrhua0K16cKzr4KwqQK4KS/CuS8mgrgtKgK44KrCsWzCuOBvgrgtYEKzaEK4KSVCuCmvgrlsI8K158K6KGMCuOBrwrKgQrFkArDngrjgooK44KtCs6bCuGDoArkuIkK44GMCuOCswrOtgrluIIK546LCuKEnQrFuQrjgYYK44GmCuWMugrgtL4KwoIK5bm0CtekCtWrCsW/CuKAuQrgpKQKxY8K4oCRCsyDCsSGCtmJCuOAjArjgI0K4YOhCsSACuCkrgrnlJ8K4omgCtCJCuCkuArihpQKzp8K4LinCuGDmgrmiJAK5a6aCuC4pQrCtgrXmwrjgacK1rwK4LihCuS4qgrlkowK16EK5ZyoCs6SCuC4tArOmQrigbUK4LixCsmhCuKUgQrjgokK44KqCsK8CtWlCuODkArWuArFiwrFrQrjgrAK4oG2CtCsCuKBsArmlrkK4LiaCsKXCumrmArhu4cKzp0K0aMK44KjCuWcsArmnIgKw5QK4oSiCuOCpgrjgY0K5YWsCuG6oQrhg50Kyb4K4LmICuWHugrms5UKzpgK4LiqCuWQjQrguKIK4LSkCs6mCuKGkwrjgowK15IK0IEKxqEK5LiLCtOZCs+ICuKUvArjg6MK4oiaCsKlCuekvgrhuYcK44GVCtmQCuOBjwrgpYcK0KsK4byQCuODhgrkuLoK5LmhCuW3nQrjg4oK5LmLCuWtlwrjg6AK4KWACua1twrjg5YK4omICu+8gQrZvgrCrwrhvIAKwoMK44GTCtawCuadsQrmmI4K4b22CuaXtgrguJcKyagK44OHCu+4jwrKigrjgqgK5Y2XCuilvwrgpLIK44OhCuODlwrlubMK5byPCuG/lgrSmwrgpLUK2LoKw5IK5a62CsqSCuOCtQriiaEK44OACuC4lQriiIMK4oK5CuCkqgrnrKwK4LSwCti2CuKWhArln44K44OfCsmQCsKmCue+jgrku7YK4YOcCsOQCta3CuODiwrpg6gKxYYKx5AK15gK4KSvCuOBggrCvgrhuqMK44GhCuODpQrDtwrlpbMK56WeCuKZpgrCogrku6UK4LmJCuCmsArlpKoK4KeNCuODgQrVtQrliY0K6YeRCtaCCumHjgrljJcK4LirCuKAsArjgaMK5YqgCuWOnwrKsgrnva4K5a6JCuOCrArmiJEK4bikCuC0rwrkuqwK4paACuGDmwrhg5UKyr4K4oioCta0CuWPrwrlj5YK5Y6/CuS6jArilpIK55CGCuiHqgrkv6EK5LujCuC4tQrXpgrhgLoK4KSmCuKBuArMrwrjgYoK6KaBCuG/pgrgrpUK4buFCuClgQrGkgrKsArljJYK4pyTCuC0qgrsnZgK64ukCuacqArZjwrMgArLjArgpLkK44ORCuawtArhur8K4LiUCuOCugrigbkK5bO2CuKAjQrjgoIK5q2jCuKWoArYogrguJ4K5YaFCsOMCseUCuKUrArkvZwK5ZCICuG9uArjgb8K4pa8CuG/tgriipkK772eCuG7iwrZkgrlm54K5LqGCuaJgArkuosK6KGoCuC4swrliIYK4oG3CtKvCsKACuWFpQrlhagK2KUK6YeMCs6nCuCkggrjg48K4LiECuKBuwrjg6IK6YOOCuaNrgril48K5beeCuKIqQrogIUK6YCaCumDvQrihKQK4pmtCuKVjArjgaQK4biNCuaxnwrXlgrDnQrTqQrguYwK5YiwCuCuvwrKggrlr7kK7IqkCuS9vwrgpr8K44KICuG8iArDjwriiJgK7IKsCuCmqArkuJYKyZUK1a8K4YOjCuC0nwrhg5EK4KWLCuC0tQrmnpwK5Y2BCuC4uArol6QK5p2lCumdogrjgZEKxJUK44OTCui/mQrsp4AK4LSCCuihlwrnn7MK6IO9CuepugrVvwrYpgrmraYKyrkKz5UK5ZCOCuC4sArlhYMKypQK66asCuq4sArmsrMK55S6CuiKsQrhvZAK57G7CuKWkQrniakKzpcKwrgK4K+BCuGDlwrYqwrgtYYK4pWgCuKKhgrjgIsK44OECueJiArliqgK5aaCCuecnwrJsgrlj7cK2LAK7KCVCuaelwrmm7gK5rCRCuWPowrZkQrnpLoK4LSuCuyVhArlm74K4oiqCuaIpgrmnY4K4LSyCuOAigrlhYkK55m9CuW/gwrgrqQK4KScCuiuvgrhvbcK6LevCuCklwriiKUK7ZWcCuacgArQiwrmiYsK1b0K77yfCuWeiwrhuqcK44K7CuW7ugrjgqcK5Li7CuyLnArrjIAK4b+GCuKAoQrpm4YK4YOTCuebrgrOoQrjgqEK5bqmCumVtwrmmJ8K44OOCuG7mQrqsIAK5LqUCtqGCuuhnArjg6cK6YeNCuS6jgrlj5EK5Y+yCti4CuC4igrjgYgK5ZyLCsStCuCuqgrsnbgK5L2gCumnhQrigJIK4pmlCuWkmgrEpwrSmgrhu5MK5aOrCuWbmwrilLQK4K6uCuWPuArgp4cK4b2wCuKIggrilawK5qyhCsS9CuKftgrnq4sK54K5CumfswrioIAK5ZmoCu2VmArkupUK5a2YCta5CuW9kwrDiwrimIUK5a+6CuaApwrkuZ8K44KBCuOBoArkvY0K4LSZCtuBCuWAvArlj6QK4YOSCuCmrArpmaIK4LWHCuKWtgrgrrAK55WMCuiqngrgtLgK7IiYCseSCuaEmwrinJQK5pmCCuG7jQrgtLEK1bQK44KxCuS4nArlkIwK7KO8CuS/nQrDlQrhu5EK4bywCumdkgrjgrQK5L2TCua4hQrnm7gK4LiICtihCuaDhQrwnZWcCuCmlQrhuKsK4budCuWwhgrml48K64+ZCs6lCuKUjArjg5wK5a6uCuOAjwrgpq4K44COCsS8CuCktgrguJsK1LEK4KSsCuyekArmlL8K4K6+CumXtArvrIEK5p2+CuG5gwrlp4sK5oGvCuWwkQrmlZkK6I63CuWIlwrlvIAK4YOiCuODrwrhg5kK56eRCuaYpQrmsrsK5ZCJCuC9pgrguKgKyZIK5Y+wCuODjQrhgLgKxKkK5belCuG9sQrnn6UK5YWrCuWgtArnlLsK55m+CuKYhgroqJgK5b6XCuOCvQrmsI8K4YCsCuyXkArgprIK4bmbCuWFswrEoQrhvbMK4oiRCuODmQrmoIcK64uICuG9tArWtQrlpJYK4pmgCuOCjwrplpMK4LigCuagoQrliLYK4LmBCuWKmwrploAK5aW9CtKTCsOZCuKEkwrWtgrripQK4pSQCuKIlwrmjIcK6ImyCui/lArppqwK6K+3CuKJqwrpoqgK4b25CuaOpQrshJwK4oazCuOBmwrlv5cKzLIK6a2UCtKjCuabtArnqIsK6rmACumDoQrgvbwKxakK4LSaCuWIqQrnnIwK5ZGoCuOBnQrjgoQK6LC3CummmQrima8K44GYCtiMCuacnwriiIUK4pSYCuWInQrnpo8K54mHCuOCtgrli5UK5Y+CCuyEsQrGjwrilaYK7Ja0CuGDrgrnvqkK4KSaCuixoQrlip8K4pmCCuuPhArqs6AK6L+HCtW+CueahwrnibkK4bqtCumVvwroi7EK4bqlCuC0owrQqgrgprgK5YW2CuCmpArmtYEK6ZmkCuydvArgp4EK4Z+SCuawuArnm7QK7IOBCuWNgwrhuq8K6aSoCsWkCuacnQrgrp8KyaMK5Y2VCsqACuagvArlvrcK7KCECuKYugrjg5QK5q2MCui/mwrpmZAK5aSrCu2KuAriiqIK5ZySCumHjwrlnJ8K5pS+CueggQrnrYkK57O7CuKIvAroj68K4oa1CuyGjArluLgK5ZCmCuimiwrmupAK14EK5a6eCuWNmgrrnbwK7JuQCuuztAriipUK6KejCuOAnArnlLcK4KamCuODnQrjgo0K64KYCuC9ggrnhKEKw5sKzKUK0rEK5p+lCsyjCuKVlwrilakK5p2hCuCmrwrhvYEK5b6MCuS7lgrnvZEK4K6yCuKJgwrtmZQK25UK6Zi/CuGAsQrmiLcK4oirCuq1rArgvaIK4YCZCuKWuArVrAril4sK5ZG9CuWwsQrpvo0K5ZCbCuWkjwrCgQroqIAK5YWICuKenArhg6gK4YOrCuCovgrgrrUK44GpCuODkgrguYQK4K6pCuOBsArjgq4K1aMK4byECuODpArlhbgK5bqcCsyECuyLoArnu4QK5pS5CuG9sgrljY4K5LiOCuiwgwrilZ0K44O0CuGDpQrnlLEK5L+uCuWtuArimaMK5raICuespgrKjArrtoAK4bubCuKAvgrilrIK5b2VCuC0swrsl7AK7J2ECuOBsgrsmIEK4pSkCuW3sgrpmb0K4YCECuq1rQrlrrkK5pyqCuWulwrhtIcK44GzCuyepQrpvpkK4LeKCuaPkArEnQrlha0K5b2iCuygnArVgArkvIoKz7UK4LiCCsWwCuOCgwrngasK4bmiCuS9kAriiqUKzKoK4bupCuKWoQrnu5MK5LmdCumbhArVqQrhnrYK6ICMCuC9lgrsmrAK5bygCuCknwrgpLcK5ZCRCuG/pQrpgIkK6rO1CuOCsgrKkArku4EK5aCCCteaCuGArwrhvJQK4LSFCuG7gQrgvZEK7ISgCuyYpArkuYUKwpwK5LmJCuCkhQrilZQK5pegCuKAqArsnYAKyrcK6YKjCue3mgrliqEK5Z+6CuWxngrphY0K66+4Cui7jQrguYIK5rSlCuWujArnoJQK5rOoCuWksQrlupQK4YCACuKVmgrlj4sK56ugCs6oCuaxggrgpKMK6rK9CuKArArgpK0K5LusCuaooQrpnIAK4K6aCumbuwrgpqoK1aQK44G4CuatpArlpJwK5oiWCuapiwrmoLkKxKoK546JCuC4uQrhuYUK5LqkCuWTgQroia8K4L2ECuOCqQrliJkK6ZaLCs6WCuusuArooqsK7KGwCuagqgrorrAK5pyDCue7jwrgpYIK44KHCui9rArltI4K66eICuKMmArmr5QK6YCgCtyQCuC4twrmsqEK546wCuS4gwrOhgrllYYK4K+ICuacugrpmLMKxIkK6KeSCuermQrVogrtlbQK5Y+KCuCkpwrooZMK6K6kCsKRCuWImwrnt6gK1bIK4bipCuS8nQrlsqEK4KShCuODmwrmuK8K5Lu7CueZuwrgvbIK4LmHCuW4gwrnqbYK5bidCuyXrArsgrAK4YCUCuKXpgrlr4YK5Y+YCuW6jwrimYAK4oijCuiuoQrmm7IKxIIK4b27CsqLCuS8oArjgJEK5YyFCuaEjwrljrsK5rKZCuK4rgrjgJAK5YaZCui2hQrgrq8K5LuKCuKUiArmo64K4LeSCuKKlwrruYQK1bAK4bioCserCum7hAriiJkK65OcCvCfjI0K5pmvCua5lgrWhArhgK0K4oG/CsyCCuODmgrkvZUK5a6HCuW8tQror60K6ICBCuS+iwrhuawK6YmECuWFiwrimIkKwpkKybkK4byxCuK0sArnhLYK66W8CsenCuWgsQrmnI0KxI4K5oOzCuKAlgrjg6YK5a6fCui9vQrsmpQK4oSaCuazogrpqawK54q2Cue6vwrsnKAK5rSLCuS4hwrsp4QK4KacCua3uwrnkIMK5qmfCuaUrwrmmL4K5ouJCuG9kQrpgIEK6ZqKCuC4mArlpIQK5birCuKKggrlg48K4Ka8Cum7kgrWgQrCnQrhu6cK5Y+qCui1twrmrrUK4YCQCuWNgArpgbgK7LKcCualrQrnrpcK5bm/CuGemgrop4YK56eLCuWboArrhYQK25IK6L6TCsyxCtWECuKIhgrlurcK7IS4CuaAnQrmrbsK6IGWCuuvvArvvI0K5aS0CuC1vAriiIkK6LuKCuKUgwrilocK5oyJCuKNtQrlpKIK5rGJCuS7jgrgp4AK6aKYCsuGCuG8oQrlsZUK55yBCuC9tArokYkK7Zi4CuCosArntKAK6ZaiCuq3uArvvJsK4LaxCumhtQrlhbEK5a6/CuaAgQrgvZMK5oqACuS5kArmjqcK56e7CuW9sQrhu6UK44KGCuOBlArgs40K566hCuC1vgrilaMK5oi4CuKHlArlh70K4bqTCuWwvgrlnLoK5LuLCu+/vArogrIK4La7CuaziQrgtb0K6K+0CuaNogrlv4UK57SACuC9mArgvboK4bujCuC1uwrlrp0K5rCXCumXqArku6QK5bemCua8ogroi6UK5bGLCuWxgArmiZMK55m6CumXrgrmgYsK5YW1CuWIpQrgqr4K1Y0K36wK4KaXCuW5tgrgpJYK4b21CuiKggrKkQrXpQrhuKoK4oSCCuW8lQrnu58K5pm6CsypCuCliArnlLUK7ZiECuKchQrotaQK5patCuOBrQrnp7AK4Ka2Cui6qwrpppYK5LuYCuKFkwrgqLgK6YCjCuGDlgrlrpgK5oyBCuWliArlvqEK6KaqCuq1sArlupMK56eACuWdgArlrogK5rS7CuC9owrjgbUK6JePCuGenwrnq7kK6I2JCue1kArgt48K5piMCuaouQrgrrMK66y0CuCmuQrjgrwKzIgK1bcK5YudCui2swrhgJsK7JyECsSvCuG8uAroiKoK6ZmzCuS4mgrlr4wK6ZuqCuCkhgrlho0K7JWICum7mArrsJUK7JqpCuKcvwrmpb0K5rKiCue+hQrElgrKjgrlv6AK6ZSZCuuLqArrqbQKxLcK5qGlCumbsgror6UK4bmvCuWyqQrrgqgK4bu5CuS4kwrliIcK5bqXCuacsQrXowrjgZoK5bm4CuavjQrJqwrjgIUK4oi3CuS4sgrlh7sK4byYCuiorQriiqQK4oKXCue2kwrqsJUK4YCVCuClpArRkArhvrYK4p6WCuW6pwrslKgK44G2CsWiCuS6kQrlkYoK5aSJCuivlQrpmoYK6rCcCtW6CuWIpArliokKy5wKy6AK57yWCuC4kwrhu68K6L6+CsSaCtydCuGAvArhuLcK5Y+zCuuTpArFnQrTjwrgsY0K4LSOCuCusQrlpI0K55yLCuipsQrlnYIK5bCUCuihmwrVpgrssKgK5Li4CuagtwrprLwK4KS8Cu2VmQrllpwK5pavCumKgArrp4wKzp4K4YOqCue+pArov5EK5aGUCs+KCuCuqArjgoAK56GuCue0ogriiIcK6Z2eCuacmwrina8K5biMCuG7swrnlLIK6LaKCumzpQrpursK6ZuFCuaLswrhnoAK5rqqCua1iwror50K5rGgCuiPnArpo58K7YSwCuCovwrmuKEK6YCfCtq+CuCysArpmYgK5YGlCuCniwrgtpoK4b26CuWGmwrluoQK57qiCsSmCuirlgrFuArOiArhu7EK5a2dCumgrQrpo5sKy5oK4paTCtmLCuKArQrkuYgK6YGUCtGrCuW3tArmtJ4K6LK0CumhuQrgtKYKybUKzI0K0qEK56eNCui/kArsi50K4L6xCuG4swrlvaYK4qWkCuS5pgrmnoQK57GzCui/ngrmk40K6KOFCuqzvArjgZAK5Y+NCsyMCuS7rgrlkZgK5pitCuC0tgrlhbQK5a6iCuWIoArgtrgK4LeACuGDngrEiwrgtLcK4YCeCuG1iQrlsYUK7YOACvCdk50K4KSlCuePvgrLhwrsooUK5YqpCuWUkArngKwK4Z6TCuW+rgrvvJEKxKAK44G7CuiIngrrgrQK7KSRCsSSCuWvvArmlYgK67CpCuG4jwrmt7EK5qKFCuaWmQrsm5QK5q+PCua0sgrtmowK6Iy2Cui0pQrgtJ4K4buDCuODqArkupsK5Y+MCuWYiQrrqqgK67CUCuC4qQrpgLIK7J2MCuC4jQrkuIEK5pWFCuioiArpgaAK6rWQCuyerArlgJkK5oi/CuuqhQrkuKQK4YOkCuaJjQrtlakK5q2iCueVqgrJrwrlpYcK5oCqCuiBlArsl60K5rOwCuuwsQrhvYAK44GSCuOBuQrovrkK6L+YCum7gwrsmZUK5pS2CuW8mArnu5k=",vVI="r3SxdLB0tnSzdLR0r3SydLB0tHS1dLR0BAG6dK90ggGwdLd0r3S3dK90uXSydLF0tXS2dLJ0tHSvdLt0s3S3dLZ0sHSzdLF0BAFiAQoBsHSvdBAGsnS2dLh0sHSvdMV0r3S+dLV0vHSydLh0r3TAdK90vXSwdLl0r3S1dK90wnS1dL10WQK0dLN0CQEGAb90s3RhA7N0u3SydLd0sHS4dAgBsXSwdFEC2gG0dK90BgGvdLp0tHS5dLB0sXSvdLh0r3S0dLd0sXQEAbV0r3QFArt0unSvdM50tnS1dLN0uHQgAcB0r3TOA7l0sHS7dLF0r3TKdLJ0vXSvdNN0DgGwdK90NwGvdM90r3S8dK901XSvdNF0r3SwdAcBKwGBAbl0r3SIAa9013S1dLh0r3TGdLN0vXS1dLF0snS5dLx0sXSvdL90sHS9dLx0tnSzdLl0r3TqdLN0v3S2dLJ0bAGwdK90FAHaAbd0r3QTAfN0vHS1dMV0r3TkdAsBsXSwdC8Br3TDdLd0sHTGdLB0u3SwdLN0sHS8dLR0r3TldK907XSydL90vHS4dK904nS6dLB0CAG5dLB0KwGNAbB0tXQ3AXMBtnSxdAUB7ANRAvcFsXS9dCgBtXS3dK906HSzdMB0DwEjAasICQFTUbR0snTVMR0BEAGlBrZ0r3SuBa90tnSvdOt0VwEbAeBgvHSvdJUYIQGwdK90kwO4dMN0WQG2dMZ0BQGydMJ0sXSwdNoBsXSvdBUBIAG0dK90CQG2dLN0vHS3dK901HQZAbp0r3Q0BRIBCQEWBbR0r3QXAq90/nQNAbF0r3QvAbN0tnSvdON0r3T3dLt0x3QHAbR0r3QRAbF0unSwdL90snTDdBUBunSzdIIBr3TudBMBsXSzdC8BEQG5dLJ0KwEEAZcJCgEPAa90cxYHAbh0r3QcAa908nSvdPF0tXS5dLx0vXSvdAR1unSxdFcENwFUS7B0u3RkAa90AnUPAbB0snRzAQsBt3SwdH0Dr3T0dAUBsHSwdBQBvnS+dAcBt3SvdCYBDQGwdK90WAEaATMBIAK1dK90AwMZAYUBFTC6dK907Qm+dLB0r3THdAUBt3SwdPAIvnSxdMl08HS4dLV0EgEiARYFvXSvdP4BOgGwdLJ07AOvdAB1OwEiAXUMvXSvdPMFs3SydBEBsXSydFECLQGydK90sQGvdNh0QQG0dK90CAE4ASMBu3TVMUEB3HSvdN8CuHS5dLx0wnSvdOZ0uHSydLx0sHSvdA91JQG6dLN0MQEOAbV0r3RLB690/XQPD7x0r3RTAbN0xnQQAbF0tXThCBcBsXSydOEIPgG0dK90XAGMAfF0r3TlCAQBYFkKARMBr3RWBcd0sHQqAbJ0r3QuCa90y3QbAbF0tXRJAUMBYgHyAbB0r3QoBi4BRwG2ArF0r3Q1BS4BsHSvdOQBNQG4dLN0hQItAbB0r3QYAbt0s3QzAb10tnQiAQYBsHSzdOQB2nTadLV0vnSDAQYBsHTvFKYBZgFUBygBr3QhTpMD7xScbQYBwnTMAe907HQmAbd0snR9A7N04HTJdMF0tXS/dK90DHUgAbZ0r3QQARkBJgE8LLd0r3ReKwcBsXSvdA8BGwG2dLV0TAGvdLN0Age0dLJ0BgGvdBB14XTWdK90C3W/dLB0DQG8dK90YgiydL50XwGwdLJ03wEbAa4BwxO5dLV0UkG0dLB0snTGdNx0sXQQAbB0tXQUATUBsHSzdBgBy3TLdK909nQhAcN0r3RJBrh0s3QPAbp0snSCAed01nSTA7Z0wnQFATICunSydDEBHAG4dLJ0hQJDAbp0r3RFBWABsXS8dGgHr3TZdK90DXU+Abd0r3R3Aa904HR3AbF0vHQvASoBRwW/AVkBI1GwdK90fETsAbt0uHQlAeF03XQSAREBkRa0dK90/AuxdLZ0VwS9dLt0IgHJdMR0MgG0dK90HQMGAbl0s3QrAScBuHSwdIUCHQHIAZAFIgFPOb10r3ReDNB09nSxdLV0r3QJdXIBGAG+MLB0snQ5AmcBsXS1dC8BEgG6dK90MQGvArF0sHQ4AU8BkAF1BLF0BgGxdLN0UQKvdNt0BwEUATQCsHSvdFYC2gG9dK90RgENAbp0r3RNA690DnU/AbR0r3S4Cq9073QPAbJ0snStA30BsHSzdBQBBAG2dK90/QFXBLR0u3QJARABuXS1dHsVFQHDdLN0+QMXAbl0snR7FSoBsHSvdGIBIQFJASkFsXSvdFsQtXS7dOJ01HQaAbZ0r3QuAkwBsHS8dBQBnAG2dL50BQEyAsd0snSAARABx3QJAb90tXRhAxEBt3SydL8H/3TQdDwCsHS+dBgBDgELATwBt3SvdN8KtXTHdBABvXS1dN4GwQK2dMV0BQGydMd0vnS2dCYBsHSydFgBQQG4dK90JwG+dLp0snS7dD4BKwG7Abl0r3RmAwcBtnSvdBcB2gHAdK90aQG8dLl0vnS3dBUBsHSzdHMBnAiwdMJ0GAHhdNB0vQa2dMB0BQG+dLh0uAGwdLN0WQERAb90snRhAwgBt3SwdL8H53TQdA0BtXSvdEICt3S1dCYBsXSydC8BynTJdNYKBQG3dCwCtnS8dFsBt3SzdAsBr3TNdLJ0vHS1dMZ053TfdBF10HQOAQUBPAG2dK90oAIeAcN0r3RNBRkBsHSvdMECHgGwdK907AO0dLF0BwG5dK90SAFMAbR0vHSTa1cB2QFuAbZ04GBMAa90gh/jINp0zXTKARcBsHSydBQBBwGFAooBuHSvdPEBwHTAdLN0tXQLAdUxVgEjAQEtCQFGAbB0s3TsA0EBtnSvdAUBsQF9AwUNt3S4dNEBr3TddHkBtAGvdGwSIgGwdLV07AMJAbF0tXRRAhoBFwHkDLZ0r3ReAx4BsnSvdI8Cr3QbddR0xHSvdNB0wHSxdKcBuHSzdBwBu3S7dBsBKwEdBbl0tXRmAy0Bs3SvdOwBUQG3dGwBCwGvdLICLAG6dLB0ggEsBTgB5nQKAgcBlwEXDL50r3SkAz0BsXSvdFcDJQGwdLN0WgEHAb10r3Q6ATICsXSydDgBDgEnATwBuHSvdAAYv3S2dA8BHwGTAbl0snTmJFsBtnSzdAUBBwHCdK90cgFBAbF0r3QsARwBcAHxAcN0wXTBdGkE4QizB7F0vnS5AbN0x3QaAQUB1AS2dK90IgISAWECegGxdBYFUQKvdAUF53TddP901nRYAbZ0t3QFAfh03XS4dLh0WwHFdLN0KQNPAbR0s3QSFN502HSiDrF0vnRJAQkBsHS1dOQBXAGsATUS1TGBRiMBDgGzdK90oxcXAcN0snTPAhUBIwHMEgkBs3TVMb10snTfdOF03wGxdL90LAEtAbV0r3ShAUUBHAGDC7h0r3QXA690IHVQAbR0tnQRAa90BXUIAVoBiQ+wdBkBJALdGMd0r3QHBTgb1nSvdN0Bs3S+dBUBSwE4Ar10s3RMBcYFsHTDdJwBr3QjdSoBEwFTHLd0r3RgWT4BWAH2AbB0r3TlBTcBtnS5dAUBEgJFAnVVLAKvdBZYGQHFAYRuuHSvdNs20gGwdLN0jwPsdNZ0oQHFdLh0VAE7Abp0r3SrBUoBLAHJBrF0r3SRAk0BsHSzdDcBGwG3dLV0dwEGAcd0nwEjAb501TH4dNZ0ySOTa7F0UwJcAb90vHRhA7B0u3S8dL90nQTeBq4FvXTAdCsCFAG3dLZ0CwGQAbF0unS6AhsBv3S1dLAC+HQadS4BtXSvdMEEu3S4dGwBtXSvdDMBIAHkAXUBsHSvdIoCsXSxdHMcs3S7dHYBuXS8dD4BvnSvdBID7HTQdMp01HQgAcJ0r3THAsV0sHQQAcN0tXTPAkEBLwE/A7F0r3RWAQUBw3SwdM8CWwG4dLN0JwEvAbZ0t3T9AbV0wnS3AbB0Dw+yAa90IgOnAbR0s3QRASABSQFLCLF0r3TBARoBuHSvdDwCLgEpA8QBxXSvdMoF/3TddK90FnW2dMN0RwG6dLV0ggGCAQUBEAa2dLF05AhFARcBgwu2dK90qwYZAeMBryJSQQ0BBQGZAbZ0r3SDAmUBtHRzAZNrsXQ4A3MB5gGoErF0sXQmBAQBNhAKAZYBFgEUASRysHSvdKcxEwG6dLN0TQMzAbZ0tnQQAex033QNASwBmQGxdK90SgOvdCh11QHQdK909AQEAbB0r3RzAbB03HRRAa0CqAxTAq90mQkCB7h0snQ1AQcBtAWBAcN0r3RoBTIBsXSvdCgMHQGLAioIrAFFDtUxr3SsCNh00XTbdMR0/HS3dBwBsHSydBgB1nThdBkBYQx5AQgBElO0dK90QCCzdMJ0SgG1dK90zAURAVoB1BGwdCoBSAG/Abl0r3RAU5QCvHSvdIYIEgHwVKMBvnQWBfYFr3RUCfh033SvdBR1jwKCAWoLunS9dO0BKgEmAb8Bt3SvdOUUr3QHdRoBFAEgArB0r3SxBQgBBQFABrZ0sHRBBBoBugFiArF05AzhCK90OwYnAcB0DgFbAYwCsHSvdFk/LQGBJGsCvgFcELB0r3TREVABw3S2dIQBfQEvAYcysXQOARMBjAK3dK90qggeAREBYwK0dK90kwR2AbF0tnQVAQQBYQwKAQgBFgG0dK900hcSAV0CKwTRAX8OfQPHVrd0r3TGBy4CtXS+dDMBGgG1dK90aQQ+AaAL9gEkAa90ihKwdMJ0EgFkARYFNwGCO7B0r3SRAVQBtHS1dNEEDQFgAkEC7AMXBLB0r3T8FFoBt3S7dAsBiwHRdK90txHfdOd0GAE4Abh0CgIHAbx0r3RJAhMBMQGtKbp0s3QwAxIBRAEWBbh0r3QeBK90KnW8dL50CQG3dLV0vwcHAQkFUgK5dK90sgQ1Abl0s3SuARMBt3SzdH0DHAa4dMZ0HAEbAVECHQWxdLV0eQYYAbd0uHQLAVkBUQJWA7F0xnQoAa90L3XOdLR0MwHFdLZ0VAHwK7Z0sHQXAQ8BOARqAbd0qwgTA1NRvweydLp0UwGwdPN0sgGvAfoBvHR5EhEBx3QNAb50r3QEBI8BunSvdGki6QHpAQIWy3TLdAIWt3THdLB0xXRfAbd0snRmDOx03XQRAbR0snSLPa90M3UFAbF0sHThCDICsHSydFoBFQa6dLd0MQEuAUUxxAEfAa90RGavdDF1WwG0dLN0CAEbAZswtAK6dLV08RfhdN90DgFtBTwBwHSvdNkGs3TmdAUBtHSwdJNrGQGXCXkBDwGvdLgWPwG2dK90mQXFdLV0vXS4dA512nSGAbB0r3RjBEEBt3SvdAsBKQEvAX8GsXSvdDMKwnS1dLJ04HSMAeUIvAHxdK90F3UFAb10sHTeBj8BuHSvdMMJGAG5dLh0HwEFddZ0cwG0dLF0CAFYAbF0t3QsAfh00HQSAcMLowG9dBYF3RCvdAcIt3S6dPZ01nSvdNp0DgEUAnoErQOKBbJ0r3T4BE8D2nSvdMoBCnXKdA0B/QF8AbZ0r3TGAmcBsHS1dFgB9QG0dK903QlZAbR0xnQIAc90sXR8AsF0wXR8Aq90OHW4A7F0w3QvAa90OXUlAcd0s3SAAbN03HTKDLZ0vnQXAa90CHUZAagBPCxRArR0v3RHAbB0tXRzAUoBtnSvdHUCDgG8dK90vAKvdMF0XAG5dLx0KwF1AXABr3QyGA0BsnSvdHETJwHDdLB0cAFZAfAIcQG3dMZ0ngFBAVECqwGxdK90KAHJdMl0ynTbdB4BjQGqCrl0r3QJBuUBsnSydBwGBQK0dLF0CQEQAuMB8kNSQa90gCRLASgB1AdRAm4wsXSwdGYBHQErAmsBvXSlBt4Gr3SxAooBQgJUBrV0r3RVOw0Bu3SvdBUGBgFmDCQBt3RkAhsBr3SkDRx1tHSdAbR0r3R3D0QC8HTKdKABr3QldRkBlgFPAhQBhQuwdLd0t3TvAloCr3RsQBMBsHSzdFgBCgEIBBYBw3SvdGpMaAGwdK901AoJAbl0tXQrAQ0BRAFBArh0r3RxCx0BRAGlBrh0r3S+ER4B5wGqChQB3AuwdK90ihUqAQUBHAK2dK905AivdN50r3T8dA8BMQFnAgUBly62dMB0ZQESARQBhQiwdK90DQShAYAB7QfHdLh0ogb9ASQBKg5hA7F0ERVDAWBZ8gETAa90rQ/gdLB0SAG1dLJ0SwdgAbh0vHSFAt8BtnS/dAUBwnSwdCAB0QJEE+QIr3TMBEMBKgMaKbd0GylmDK90uW1JASMBOSwJAbx01TElAbF0s3Q4ASoBVAHhE8V0r3TFDa903HQ9AbB0r3TYBxIBYgEJArB0r3SVBLsCnwFzHB5TsAH4AScOLwGvdBcUGgFnAQQDt3SvdCoEEQHfAT4CsHRpASUBsBq7dLN0pyUUAbB0tnRBD9l02XQEAVsC1xSwdFJM7AOvdLYI4QG+dLJ0lwHhdB51HQHoAdEDsHRRFhgBr3SlBRcBx3QlARwB1wO4dLN0HAQdAf0CpjUvAa90BhApAbF02gFRAq90DAKvdDx1ewGwdK90HA+xdLJ0jgEoAeEHUQJaN7F0vHRmARABt3S1dPAIGAFmAWkJKAG4dHIDUAG7dLZ0MgIHAb90r3RfAbUBCwGvdKUzw3S0dBQBSAEGFrl0tnTHBR0NuHS8dBwBbQGwdK90mgzDdLd0QQG9dK90SwEuAY4BVBO9dK90nQdZAbh0xnQnAQV13XRKAgUB4gO2dLV0cQEOAWkBjALAdCwByF1tAo0BMgHAdK90PA4NAZwBJQOwdK90TRfDdL10BAFIHwoBSwEWAb10KQEFAqoDtXSvdO0iLQELAcYBt3SvdBkDdAG3dNoBXAWvdJEECwGwdLB0WAFbAa4BxQK5dLN0vwkaASMD4Qn6AV0KeRI5Obt0r3QNDq90PXUOAQgBPAG0dK90eQRaA0sBuANMBbV0wHQgAXEBJTwFAa90vQPLdAZ1HQE1AVEWuHSvdPEGIATsA4whsHS0dKQBBgEcAUsEuHSzdElR2gG4dK90NQE6ASgCiAQYARkBhAE8LMN0r3QuBiUBsnSzdFkE9nTQdFoBfQMKA7d0u3SUARUBsXSzdLoCkga6dLx0MQEZATYQeQGWARJTFAGvdPYLB3XddBABv3S1dP8qswI3AmQEt3RFAbV0r3RVBVsBUQIzA7F0s3QoAUoCsHS1dFkBkwKyAe5CsHSvdOcGCAG/dLB0YQNtAbJ0r3QdFiF12HQUAcB0tnRtBVsBuXSzdB8B43TudA0BpR98AQ8BMyWxdK904BdJHL90wHRPAb10sHRFAQkB4AO0dK90kFwpAWUBqgMFAfUItnSvdGcGMwFNAbZ0Rg0PAQUBkwG2dLJ0ZQEWAX0BIQEsAW8BsXSvdN4aQQEGAa90XFLZdNF01HQGdQ0BrwHgAcJ0r3TTBSABvnSvdMsBDgEJAbUBtHSvdNgjsXTDdAQBzwIWAsN0r3SaCF0BMwE0BrV0r3SgBAQBUAEWArJ0r3TKCw0BpAFoA+wDug2wdK906kSwdL50BAE7A7QMtXSvdMgnLgGkAR8E7APVGrB0r3TSA0QBuXS1dK4BGAGxdLh0LAENAUYBSgW9dK90EQ63dL50BwHGdK905QGeBLB0wnQUATkCvXScCEsBwnRpCbB0w3QSAeMBFgVSQf0NrgGvdDhoEgEQARYFtnSvdDgKBwFpAvoEu3SvdHkWhAG3dLJ0uANzHLB0u3QUAUwBtnS8dOZTt3SzdHoBLwFwBLF0r3QDDLIBt3S8dAsB2XTydAt1hgIHATgB+gSxdK90cwIhAbV0r3RBA6IE0HSvdCcCDQEiAUECvXSvdLRYeQLBAa90rTGxASsBRBm5dLh0iAHsA7Z0vXQFAS0BhwFrAi8Br3ThBlkEuHS7dBwBDwJ9AmsJuQGvdF8UVwS4dLt0RAEuAbJ0r3QgBLR0snTNdM10GQHjBHkBtXSvdGI+QQEoYFwC2QLtERABr3SQCq90JnUPARABwwS2dLJ0sRzfArF0sHTmASEBnmpvAQgB/HS2dGwBXAGkFrR0r3Q9DWkEt3S+dGcBEgG4dK90twLqdOp0r3Q+dWABFwHBCbZ0vHRDEkkCWAHNBbB0snTlBVEBv3RsAYMBr3S/Bp0Bew55A1QBr3Thbg0BQQ+ZAbB0r3Q1ECoBRgFTHL10r3RyadgEYQO0dCQB8gLWdK90bgcPAQsBkwG3dLJ0dwidBBQBrgWwdMB05wEjAbd0WQK/B7N0EwMqAScBHAK4dK90cA9JAbB0vHRzAVEBvXRsAUsBr3TRBr4E0HSvdEwCVQEXAZMMtnSvdKsb53QIdXsFWgHHZrB0xnRxAn0BCgIVAjgBs3RVBuQBtnS0dAUBPgFsFrsBoAIzAgUBr3TGE3YBwnS2dOsCunS2dB1133Q/Abd0r3RHC0EBKwGrAbl0r3RjAUsB7wE2BgUBr3TWdAcBugLYAbF0r3RrBAYBsnSzdCAEQgK0dLd0CQEdAYgLhAOlAq9091k9ATEB2gm6dK90mBGcATgBPwyxdL50CgJRAbh0bAEnAa90cgo9AbV0r3SXGC0B9gmSAioCr3QCG3IBJwHOELh0snTEGZoBBwQWCGkJgUu9dGJkSwGvdC9DRQERAYMLtHSvdHcOLwG9csYCJQK7dLV0aQS0dL50CQG7dLJ0SAGydLJ0bAXUdM10FwK5dFcEKwG7dIIDOgHCdLJ0kSDZdMR0UwFWASIDLwF4B7F083QLPwcBSQEOA7F0r3QUBWwC8wGvdGILHgGEAWMCw3SvdOUy7nSwdJABsCSzAr50unSpD8l0zXQ/ASsBEgK5dK90JwsUAbl0tnQfAXsBVAGPIMV0r3TQFL50tXRXGNB073QnAg8BsXSydLoCGwG+dLV0EgNaAbl0u3QfAQQBnAJZCbB05x6cAa90PQcEARsVCgERAa9002sSARMDegG3dBYFvwevdIAMvHTAdCx13XS3AVoChlIjAcZZCQGvdLYwUAExAlYJunS2dKMwTwG6dLN0mzCvdEF1KgG6Aq90swIGAbd0s3S/BzcBtHS5dAgBDgGydK90bAVFAQUBlQm2dK90cQG1dLp0YQEGda90pRB2AcZ0tnS4ATYCsHS8dDcBfwEQAXRvtnSvdA8LbAGydK90UAE9BTICrlG7dMB0sQMHddZ0BwGKA88JZQGvdIUb2XTYdB4BvwMDBshdr3RAFtR0yXQ6Ab50snT2BSYBunSydE0DUQG7dGwBrwKvdK0ODgGdIL4DOwJrCwUB/XT0dLJ03HQ6ASgBpAFRAs8TsXSydGYB2QFaAR8ftHTTdAkBFQG3dLN0XAV/NewD9HSkAY8CtHS9dBEBIQGvAm8Bu3SvdLlLMQGwdLt0YgF+AbR0r3RBCbJ05nRKAfcCyQZBBOMJBQFiSLZ0r3SCEs509HTaAbl0r3RNAV8BCwHiAbd0snSWCi0BHgKSArt0r3TtB8B0tXTCdLZ0DQFiARACsHSvdGAsyA+1dOV0MwE+ASAEuwGydK90+xCvdP90LAGydLB0rQOhAb90uHTUAUQB1AHXDb90tXSkBA0BTAHgAbZ0r3S6HRcBv3SydP8qwAHLdK906QHHdLF0ynTRdJwJtHS9dAYBLQHJAWsC5AGEGLB0r3TEBEUBGgXSArN0gwt2Aa90JxfvdBJ1JQG3dLN0WwnhdBJ1WQHPAnEBw3TGdMQCSAG5dLJ0CQUgAYsGwAJuAkYVCgKvdPYMznS5dF4BSQH9FLF0r3RmGBIBLwKJDLB0kRZYAa90DhMeARAFYwK+AVgIsHSvdCsWEgEcAZEWuHSvdBwEGgHRARsJt3TkDH0Dr3QkDe90GnWUASMB5AGxdLR0LAHBdNR0r3QRdSJ1tnQFdd90tHS1dA8BJAGrCGED01K/dLJ06wQPAbV0snQFAuwB5AF7B7B0uHTJAfZ03XR+Adx0r3TkBAcBfQOYAbd0r3TRAUUBngF7BLd0lQnwCK90agP4dBJ1QQG5dK90HwGOAbR0vHThW0cB5AjQAgUBUyi2dLV00QLQAdZ073SkAg8BPQKGB7B0qwhZAVcDERWXEyQBz3SNAy0BZwGSArd0r3QhFcV0tHSBAUUCrxcsAq906y4tASwBxgGxdK90AgQaAbB0r3ScAQgBXAUoAbd0HQGwdK90vQYGAVoBng6wdLR0s3RNAQUBqAK2dLN0oAJUAbd0tXQUFgQBVgHeAi8Br3SYBioBlgEcAhQBhgOwdK90NhAzAYUCuwW4dLZ01AsSAfEBuAS4dJEWhQKvdMQSRgI4AbZ0wRQaAUQBBAO4dK90lQ4CB7F0snQVASEBIwLCJoABr3RbBrp0tXTjdNx0FAF9A7ICt3S2dJQBz3TXdHYBHwHyCbl0tnToA2wFcwEiELB0uXSTAd907HQOAU0BjAK5dK90uUfyB2EDsXQkAX4BuHSvdFkZDgFLATwBvXSvdAYJyXTydAQC1nTQdE4DTAFbHg4EKAEXUFECsQFaAQwSsHS4dC8DBiOQAbZ0CwIUAbR0tnQIAQx10HRBAfABr3RsELt0w3ScCKIG+TaAAcJ0jANsBa0DIhCydLl0FAKvdCt1BwG7dK90MgJhAeJ0r3RQBSl1tnQaARABBAO2dK90swcmAcd0snQoAxcBMQEiFrp0OgELAaQBt3SydHMROwEJAXUMtHSvdJAEHXXWdCABWAI2AcB0r3SICh0BAQKcBbl0URYrAa90RgsXArF0VwRRArt0YQIuAVQBtgLFdK90ew7CNcd0xXQkAg8BOAdqARwBqwgJHFNRSVG5dLl0xwF4AzkKtHS7dGcMr3RCdUkCaAeydPMBclsvAet0hwFBAeYBrQGxdK90JgRMAbd0vHTwCC0CsHSydL4BYAGwdLx0GAEaAZ0JBAMMAnsuUQKvdE0M1XTXdEkCsXSydEkBFgImAvwDvwcIVrd0r3TWDBIBtXSvdFcEUQFIAWwBxwWvdLUDPgElIfYBHwGfArl0r3QoD1cY3XTvdM0CFwGzdLJ0dgHrdON0LAEFAVoKtnSwdGUBGwG0dLV0XAF2FgUBsHRxARYLwHS3dPkCBgEfAckBuXSzdGMlTQGCAbx03HTmdLd0DQHbA+ABMQG2Ibp0r3TlODIBt3SvdCgO/HSwdKJSuHTAdGABDgGHAYwCLwH+ArF0r3RZFiEBvHSvdHcJmwKjApAEsXQfH1EC03RhAuZ0sHTvdN10GgGbJ5oBxnQgAkoCr3T7PsJ0wnTOCnsVjxG5dMV0GgILASgByANRArIusXSwdLhIBQFMBJ4BCQERAfcHJAO3dMV0unTBBLF0tHRHAY8BsHSvdMYSx3SydDMBvnS2dMsBDwFMAZgftnQcAbd0snRBDCEBJwFvAbh0r3TEGS11tnTAdLZ0rQHVAygRKAKvdKUSKQG3ApgVuHQ6ATUBfxG4dLJ0LV0JINZ0r3TuAa90P3UNAY0DfAERFVMDJAFcJ2EDr3QPBwoBqgLDQcd013S6dAQBSwHeAr10r3RMBeUBsHSydFkBfwGVAlUSEQGzHLR0r3T7HS4B9wq6A+8Br3S5EQ0Bs3SvdA8ERgELAVsCt3SzdHMRcwG9dLF0SwG9dMN0GAG2dLh0BQGhAUgB4nTidCoBiAG/ASsBERe5dK90awzgdLJ0IQEaFpQELwSvdLdGDQExAXUDunSvdDADxnS1dIIBEwGxdGBZznTodFF1tXR8AboBshaxdDMl4QivdJILGQEXATwstnSvdI8RHAIxWTkEvnSvdB0hsXS3dBIBHiAJAhcBWSi2dK90EgwaAbp0r3QxAh4BBgGZDrR0r3SrBPIHuHSxdDUBdgFzAQADsHS2dDgC6QGOVicDJwMCFmBcjlbpAWBcAhbdZ8t0y3TdZycBt3SwdEEMHgEVAZkOsXSvdG8JHwGnAeQ9snSwdNk7/3QIdT0BunSvdJkKEQHDdLJ0tAUKdfB0r3RPdakfsHSzdCIDuXSydLB0wHQ3Adx0uXTfAhoBvg2aAbwCIALgTlMuvHSvdHoVr3RNdXUCOgEiD710v3QMCrYBtnSvdAALSgEUAWMDsHSvdCsfUwFiAytasHQYAb90uHSDARABtHS1dJNrKQG5dNoBKwGvdAECGgEIAgQDLwGeA7F0r3S6CQ4B/gM8Ab50r3ScCgp1xHTGdLN0PgGDAvYBBQGfArZ0r3QAB690BnXsAYAB+gHHdLh0XANFAcQCewTDdJUJzwKvdLEELAHmCm0CJAGwdH4HNAL8AmwPhAGvdEoJSgG8dK907wkOAUwBZAO2dAB1wXTsdBp17AEkJPoBagGLJ9Ux0AHddO90KwOwdMd0JQG1dLN0VwQOAQ8BegSxdK90IhDQdOd0kAE8Ay00uHS6dDcLIwGwdFkC5AGzdIoCDgEGPYsEKAESAYIMmwOAAa90fgwdAbZ0r3Q9BX4BtnSvdD4IBAEmBN4C5gHwTLF0r3TWAuF0E3UlAZABtAGxdLN0CgovASMCNRSAAeN09HRQAb90tnRfAUEBsQRXDcQCVg/DdK90R0bVdLZ0bwE3BM895wGvdEsrHAFYAToFsHQdAQYBURa0dK90VxMOAfx0CgHIAxYBWAEOASwBPAGxdK90wRILdRwBWgGrAgsGIwH0M9UxQgHvA690Gwv3BHQFsAGwdK90LAXxBrB0SRwYAcB06AEPAbd0snRcBZYC0HSvdAoHlAHiAVEk3wGyA9sBsnTFdNN0unTBAggBxXSeaq90UHWdBLZ0wHQQAccBHAHoBbh0u3RoAjwChAGWNsN0vnTDIC4CsHS+dBQBTQGydLN0bAVdARcBPQq2dK90gQi0dMN0UAE4AbEDsXS2dHMCDQEpOuABlwFnM750r3RnSyYBHwEvArl0snQlIRgBrAENAyMBuHQLJg4BJgJ6BL8HiRe3dAIHtnSydH0BMwG4dLZ0RAEEAUQECgG2dAZAsnS+bK0D6HQUAuwBMQH6Abp0uHS0AdUBQALtMdB0r3Q5Fy0BJQKSAmEDU1q/dK90MhWZAVwEahSCA690SB22A3ABvHR7AgYBCwHJAbd0s3SjER0BagKlBmYDKDErAa90pC7kA4IBw3S+dPAruXSwdEgBLQHUAZICv3SvdKQEvHSzdOQBxXS0dCkDr3RLdb90tXRJArd0snR3AY0Bw3S1dKYRDQEJAUECtHSvdEwEB3XfdAUBtXSwdDMBWQG5dMZ0HwFiCMJ0t3SvAWwBCwJwMpABr3TyBHsFKQNtZcV0xnSGAk0EJAHbdMl0hwTwdNR0oAFoA00BLnXfdB113XTsdAh1RwGxdLV0ugLvdN90FwG3dLJ08AjydMF0v3S/dCEBtnSvdJ4EMg64dLV0RAFYC7B0w3QYAXcBsHS8dFgBDQHFDRACVAHyQ8V0r3TGEBgBLwImUVgBxwGydLt0pwEOAUAEjAJVBpoLOAGkEQoCr3RLLksHu3S5dB4C1nTndL10t3RKAbgBpQ/GdK90GGRBAdpmrQG+dK90xBHzdLh0BXUIdfZ033ReAbB0r3QtDh8fvXTTdCIBFQEFATgCtnSzdGUB7nTjdL10vnTsA7R0vXQIAYYBtXSvdHQl5HTVdDsBRAF1DLh0r3RZBhMBZQGHAQUBuAm2dLN0qwkZAQICTwKFAmQVuHSvdPAWEQLadK90PQOEAcEBDwEhAjkFsHSYHxQBuAGeAT0C8AhjCLd0s3RqA+B0w3Q4G990r3Q1Ax4BLAFQArF0r3TfCVwBsHS8dOQBNQ66dMN0ggFCU5wBZWGwdNd0nAJBAbADMAJyA8gRZgEUUygBr3SlEy0BqgKEGMd0r3QUCfoQuXS9dI0B8gOsBa902zlaAZ8B9DOxdFMBFQKyGRQBCgFNKbwFNAPhUfEXr3TGUHkB6AGvdEAftgG0dK90hwuCAbB0sXRiAR91snQNAcEjCQN+BxcEgAUHF+YKr3SROFUFuHTGdEQBHgEIAqoKLwE3TbF0r3SqDLd0u3R3Abd0vHR9AxIBFwGRFrZ0r3S/EA0BvXSvdAQPCSDQdK90QAIRAbV0snTBBBgBZwISZbF0uHQMJsZ0snQWArIBr3TBC8p08nRLAbd0sHTsBR4B2wMvDzEBGHW3dJUBKQOQCcV0r3QVEZoBIgIgAiwNIwwFAQUBsnSwdFABFQEfATgCuXSzdOYkDgEeArUBu3SvdOoFJQELAXECt3SzdAoDRQWwdNd0YgGvdBV10AHQdO90vgLAdLh0DQE/DCUDrwLBA7t0r3SWGQgBoAJjAQUB/Ay2dLB0bBbOCsN0xXSEAQ0B+QKfFcB0r3QfBUEBVgNXDQgBr3RsLhN19nQTAt90r3TeBfsBEnVdAbZ0r3TID50BsHSvdL4BSwHCdLB0kSAEAQcCUhEYATYrOQKvdEMJQQFTAUotvHSvdJYG7AEoAX0MUQK4dOEDsXS5dF4DsXTKDOEIvnS6ASACDAJrDlECqDCxdK90bgg+AeQBuwGwdK90BAZpAcN0wAEGda900AMIAbB0sHTkAR4BCQGqCrR0r3SADg4BrwI8Abt0r3S7G3wBxQFmAhd1r3QlEUMBtnSvdAQJr3Q7dWkBsHSzdL0GEwG9dLN0BA/CdMN0UAHFdLZ0qgVZArZ0s3QQAR4BHwFQArl0r3R4CBABrgGjASgC8AIYAWozsHSvdGEWxXTFdAcB4Qg0ArF0r3S6ATMBtHS2dAkBr3RYdVUBw3SvdF0NBwFBDIoBt3SvdDoFFAE4Aa0OsXS2dAoCBwFxBA4DwHSvdHsTDgEIA7UB0QTjQLR0r3SEDA8B5AjtAQUBsnTRAh8fuHTTdEQB5RvmAQdpsXTXdCYE8wiAAcJ0IwLydMR0VwEfA0cfFwGvdNgYB3XQdL50s3SSAbZ0r3QKDRQBOgEGFr10UQG+dGwB/gOvdHUNwnTAdE8GxXTFdE8GGQFMASAB/yrWAb90r3TeAwYBZQEMAgUBJRq2dGgBWwE/ErB0r3TOPyEBnldvASQBLgthA9R0wXSxAcQZDSAnAbh0UwQSASgB0QhRAq904AbkBhwGFiWydOZ0bwPzCLZ0wnQXAREBcwGoAbB0EQGydLJ0IATedN50gwOWA690VnUdAbh0r3QrBhIBxwuLA5MBr3S6DCUBs3SzdMcBLwGwdLd0cwEFBgkBNQ6palwBsXS8dFECJgEJAWRFtHSydEwEOwKXAr0GhETPdON0LgEJAbYCtHSvdFgVEQGwdLJ05AEpAbd02gG/B690eARIAQUBlwe2dLJ0oAKIAtF03nTlAmMEt3TudAsBHgHbAWMCBgGaFbR0r3REDQx13XRDATYQwgEUAfIBlgFrY7B0r3T3IBoB2QEEA0wBFh22dO50/XQAdcR07AFNA5NbunS4dNgCwnRuAmkClAG7dNkDIAEGI9YBTwGvdIsxEwGkCg8DCAHaB7R0rSlhDLN03UFUAQUBMRK2dLV0LAIqASwBHAKxdK905CO8dLt0MAJYAXgSsHSvdDYLN3XBdGYC7HSvdJYoLQe8dLB0UwEPBDkCt3QdB3MBLwF3CLF0sXRWAS8BiAE1FCsBSzi5dPx0tHQsAbd0sHRcBQJ143RNASgBqAJRAh8OsXSzdBFlr3TfdNUBgQLtMd10r3TAG8F0xHQOASYBegS3dK902kMeAsd0tXSAAcR01HRFAUQB4AO4dK90EwYdAbV0r3SdBBoB1gliArJ05AxQAa904FivdFl1OwEXARsktnSvdPMfUAG4dLZ0HAE9Ab50r3TYFRwGtnTGdBcBGgHDIMsChAF+CMN0r3SwBRsBWAGpArB0tXTlBZEH1nSvdKQCJQF7AqgDcAF6AWgJgALbAVgEWAE9AY0DcAIRFbcOJAGvdM8EGHW0dCEB0AIVBIIBCSS6dK90WU++AbR0x3QIAdV07nQMA99033RLAjIBuHSvdC43UgG3dNoBfQOvdBYDIAG+CPcDCAGvdE4Mr3TJdI8BlwkmAw8Br3TyFcB0sHR+BJMBFAG/dLZ0gwGbAcEBr3TVNvcBvHSvdCcbewW3dMZ0EwErBlQBwHSlAioBqQ93BL50r3RkBHIBLwLzFFgBsnR0DBkBGALdGLl0ryJ7Fa90zgYJAp8DUgewdK90XwyYArd03Rj3B690STNKAbB0r3TfAa90J3VBAQgBr3SeahUBGAFBARoDMAaxdFcNKAGvdHAOOwN7FcI1uXTFdBgCEQFLB4gBtXTPdO10FAG9dLZ0SwEdAckDURa/CadzuXSvdG8KewVhAwUPv3TGdCQB2Ae2dM90BQEgAUwBSwi2dK902QG3AbN0Dw/JBa90shkgASIC9wMFAa90LA1SAbF02gEvAa90hwE3AcB0uXRtBR4BlwdjAjcBmyiwdK907mb7Ad90vnTcdB4BCAFQArR0r3T3BbZ0vXQCB7d0snQTAVoBUQImKLF0u3QoAewBLwGTW7F0uHSHAdd0tXRDAbV0r3TiBuZ0snRZAeEIcQGxdMZ0LgMeARcBYwK2dK902gsXA7IBIxGwdK90YXXUdPB0BwF3AQ4Dt3SvdM0FXgG2dK90kDBEAbB0tXQYAR4B8wEvD2gH2TqxdK90aRK0ApABNAOxdB4BDwFjArF0r3RqC0UBhgK8DSkDrBjFdK901QVJHLh0wHQ1ARMC0HSvdK8IEXXWdEUBRg3gA00Br3QdFUoBLAjsAo0Br3SFQRd10HTTdNd0HgFoBWMCtAX/AsN0r3TTMpMDtHTCdAgB6gHQdK902AOiBNZ0r3SCAg0BzQN8KkwFMzNLAa90VRQGAbV0s3TBBIEBzATSS9ECr3QfW1EBLwFsAVYBbAKxdK90xBN3AQUB5QW2dLx0gwI1ARkCTgr5A7J0s3QeAQsCZnOQAXcBHzv4ASIBGVq9dNYBoAIEEQUB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WQK5dLN0jQF+AS8BXw2xdK908zFnAR8BVAO5dLV0JSEbAXMBwQGwdLV0OgRtAQsBtwO3dK908F8NASgBmQFRAhwbsXSvdLhIQwQ6BD0ecwFJAQsBOgS3dLx0dwiHAcICRgjDdBEUzwKzdCJe1AI/BBQNcQKjaloBr3SFFdt08HRJHL8JwHTJAzIB9HSvdJkEPwIjARQBuHS2dCcB7AIkAa90IEXBAsJ0xXQGA5AE1gIrBSYELQHwA6kBZQFNDQUBMxa2dLx0x3TDIMEBuHT+BQkBsnS1dCAEGHWxdCcDcCNiBWIFcCMnA45W8G7wbo5WrQFzAhEBOQyIASIBzwa9dA0BWwFKBbB0znTOdMIBw3TyAQgEr3TtPGYBsHT3BXMBvXTgB+sC7AEdAckBnAWwdFEW5AENddd0PAEmB35vlRKvdBgTfgEGAUICZwLOA8B0tXRYAtgHsXTPdCwBBwHgdK90QgMsAZ4BHAW3dFoK8AiwdGkINQGgAhUDBQHyG7Z0s3RXZSgCt3Q8AgsBvnQZAywGoAOvdFw6IAG9dK90IgEFAdkCNwwQAbB0KGAoAXAB0QO9dFEW0VOvdL8lkgbHdLx0gAHbAbd0Age/B7J0eAQyAmcMLC+0dA9JeAOydAoF3wG3dL90CwEuddZ0CgF2A18Kt3TDQWYMz3S6dAoB7gaiCbF0UgIIHBQDHwGvdJddNwG+dLl0/gNqBEwCVxg8FPZO0HTvdAcgbQGzdK90cls1Abd0s3RBDLQDu3TDdMhEkQfQdK90vgJ2AQsB8gm3dLZ0RwISAbx0r3RzEzEBCAGVBLR0u3RhDFMX9HTOdIwEaAELAYEDt3SvdKIP8wGQA30BsXSzdOEIIQG3BToJHwGXC7l0wiYlIa90MxoeAbV0r3T6EA4BVgE8AS8BKQKxdK90rh4JU790vnRhAxQBCAGhA7R0tnSeamwB/WopBDQEr3RmUjoBjwLyErJ0GwG5dLV0NgJRATsCXwgFAa90M09ZAncBs3SpArMBYAHeFLh0r3Rtaw0BGguZAf8Er3R+ERwBuXSydK4BHwGwdLB0NwEZAb1yNgklAtV0tHQ+AQlPuwFgBa90eXIPBHMBt3Q4AoQBBQG6PbZ0snSuHXUBWgGvdJYpFwG2dLJ05lOpBS8BUAVQBahj4nTidKhjDQGPBK90gRMXAbR0snSTa+EBs3SydF8G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";wVI();function Zb(I,l,c,G,e,d){return t=>{let n=e??"";for(;t.length>0&&t[0].role==="assistant";)t.shift();t.length>0&&t[0].role==="system"?n+=I(t.shift()):d&&(n+=d);for(let b=0;b0&&t[t.length-1].role==="user"&&(n+=G,n+=c),n}}function gVI(I){if(I.length===0)return"";I[0].role==="assistant"&&I.shift();let l="",c=I[0].role==="system";if(c&&Ne(I[0].content).trim()===""&&(c=!1,I=I.slice(1)),c){const G=`<> - ${I[0].content} -<> - -`;if(I.length>1)l+=`[INST] ${G} ${I[1].content} [/INST]`;else return l+=`[INST] ${G} [/INST]`,l}for(let G=c?2:0;G -`));return l}function AVI(I){const l=` - -Human:`,c=` - -Assistant:`;let G="";I.length>0&&I[0].role!=="user"&&I[0].role!=="system"&&(G+=`${l} Hello.`);for(const e of I)G+=`${e.role==="user"||e.role==="system"?l:c} ${e.content} `;return G+=c,G}const yVI=Zb(()=>"","USER: ","ASSISTANT: ",` -`,"A chat between a curious user and an artificial intelligence assistant. The assistant gives helpful, detailed, and polite answers to the user's questions."),JVI=Zb(I=>`<|system|>${I.content} -`,`<|user|> -`,`<|assistant|> -`,` -`,void 0,`<|system|> -`),BVI=Zb(I=>`<|im_start|>${I.role} -${I.content}<|im_end|> -`,`<|im_start|>user -`,`<|im_start|>assistant -`,`<|im_end|> -`),kVI=Zb(I=>`${I.content} - -`,`### Instruction: -`,`### Response: -`,` - -`,void 0,`Below is an instruction that describes a task. Write a response that appropriately completes the request. - -`);function xVI(I){let l="",c=null;l+=`You are an AI programming assistant, utilizing the DeepSeek Coder model, developed by DeepSeek Company, and you only answer questions related to computer science. For politically sensitive questions, security and privacy issues, and other non-computer science questions, you will refuse to answer. -`,I[0].role==="system"&&(c=Ne(I.shift().content));for(let G=0;G -`)}return I.length>0&&I[I.length-1].role==="user"&&(l+=` -`,l+=`### Response: -`),l}const zVI=Zb(I=>` - -Instruct: ${I.content} `,` - -Instruct: `,` - -Output: `," "),UVI=Zb(I=>`### System Prompt -${I.content} - -`,`### User Message -`,`### Assistant -`,` -`),CVI=Zb(()=>"","GPT4 Correct User: ","GPT4 Correct Assistant: ","<|end_of_turn|>"),MVI=Zb(I=>`: ${I.content}`,` -: `,` -: `,"",void 0,": You are an AI coding assistant that helps people with programming. Write a response that appropriately completes the user's request."),fVI=Zb(I=>`### System: -${I.content} -`,`### User: -`,`### Assistant: -`,` -`);function KVI(I){let l="";for(const c of I)l+=`Source: ${c.role} - - ${Ne(c.content).trim()}`,l+=" ";return l+=`Source: assistant -Destination: user - -`,l}const LVI=Zb(()=>"",`user -`,`model -`,` -`),SVI="Consider the following code:\n```{{{language}}}\n{{{codeToEdit}}}\n```\nEdit the code to perfectly satisfy the following user request:\n{{{userInput}}}\nOutput nothing except for the code. No code block, no English explanation, no start/end tags.",Lj=(I,l)=>{var G,e,d;if(((G=l==null?void 0:l.codeToEdit)==null?void 0:G.trim().length)===0)return`\`\`\`${l.language} -${l.prefix}[BLANK]${l.codeToEdit}${l.suffix} -\`\`\` - -Given the user's request: "${l.userInput}" - -Here is the code that should fill in the [BLANK]:`;const c=["The user has requested a section of code in a file to be rewritten."];return((e=l.prefix)==null?void 0:e.trim().length)>0&&c.push(`This is the prefix of the file: -\`\`\`${l.language} -${l.prefix} -\`\`\``),((d=l.suffix)==null?void 0:d.trim().length)>0&&c.push(`This is the suffix of the file: -\`\`\`${l.language} -${l.suffix} -\`\`\``),c.push(`This is the code to rewrite: -\`\`\`${l.language} -${l.codeToEdit} -\`\`\` - -The user's request is: "${l.userInput}" - -Here is the rewritten code:`),c.join(` - -`)},jY="",Xk=(I,l)=>{var t,n,b,a,Z,W;const c=(b=(n=(t=l.suffix)==null?void 0:t.split(` -`)[0])==null?void 0:n[0])==null?void 0:b.trim(),G=((a=l.suffix)==null?void 0:a.trim())!==""&&!c,e=G?"":"",d=G?' When you get to "", end your response.':"";return l.supportsCompletions!=="true"&&l.supportsPrefill!=="true"?Lj(I,l):((Z=l.prefix)==null?void 0:Z.trim())===""&&((W=l.suffix)==null?void 0:W.trim())===""?[{role:"user",content:`\`\`\`${l.language} -${l.codeToEdit} -${e} -\`\`\` - -Please rewrite the entire code block above in order to satisfy the following request: "${l.userInput}".${d}`},{role:"assistant",content:`Sure! Here's the entire rewritten code block: -\`\`\`${l.language} -`}]:[{role:"user",content:`\`\`\`${l.language} -${l.prefix}${jY} -${l.codeToEdit} -${e} -\`\`\` - -Please rewrite the entire code block above, editing the portion below "${jY}" in order to satisfy the following request: "${l.userInput}".${d} -`},{role:"assistant",content:`Sure! Here's the entire code block, including the rewritten portion: -\`\`\`${l.language} -${l.prefix}${jY} -`}]},TVI='[INST] You are a helpful code assistant. Your task is to rewrite the following code with these instructions: "{{{userInput}}}"\n```{{{language}}}\n{{{codeToEdit}}}\n```\n\nJust rewrite the code without explanations: [/INST]\n```{{{language}}}',jVI=`Below is an instruction that describes a task, paired with an input that provides further context. Write a response that appropriately completes the request. - -### Instruction: Rewrite the code to satisfy this request: "{{{userInput}}}" - -### Input: - -\`\`\`{{{language}}} -{{{codeToEdit}}} -\`\`\` + margin-top: 2px; +`,NCe=({indexingState:e})=>{const n=e||{status:"loading",progress:0,desc:""};let r=!1;E.useEffect(()=>{r||(a.post("index/indexingProgressBarInitialized",void 0),r=!0)},[]);const i=Math.min(100,Math.max(0,n.progress*100)),a=E.useContext(Zn),o=en(h=>h.state.config.embeddingsProvider),l=document.getElementById("tooltip-portal-div"),[s,u]=E.useState(void 0),[c,d]=E.useState(!1);E.useEffect(()=>{s!==void 0&&a.post("index/setPaused",s)},[s]);function g(h){return to()&&o==="all-MiniLM-L6-v2"?"The 'transformers.js' embeddingsProvider is currently unsupported in JetBrains. To enable codebase indexing, you can use any of the other providers described in the docs: https://docs.continue.dev/features/codebase-embeddings#embeddings-providers":h}return W.jsx("div",{onClick:()=>{n.status!=="failed"&&n.progress<1&&n.progress>=0?u(h=>!h):a.post("index/forceReIndex",void 0)},className:"cursor-pointer",children:n.status==="failed"?W.jsxs(l0,{"data-tooltip-id":"indexingFailed_dot",children:[W.jsx(Vd,{color:Yd.FAILED}),W.jsxs("div",{children:[W.jsx(Hg,{children:"Indexing error! Click to retry"}),W.jsx(oD,{children:g(n.desc)})]}),l&&Al.createPortal(W.jsx(pc,{id:"indexingFailed_dot",place:"top",children:g(n.desc)}),l)]}):n.status==="loading"?W.jsxs(l0,{children:[W.jsx(Vd,{shouldBlink:!0,color:Yd.LOADING}),W.jsx(Hg,{children:"Continue is initializing"})]}):n.status==="done"?W.jsxs(l0,{"data-tooltip-id":"indexingDone_dot",children:[W.jsx(Vd,{color:Yd.DONE}),W.jsx("div",{children:W.jsx(Hg,{children:"Index up to date"})}),l&&Al.createPortal(W.jsxs(pc,{id:"indexingDone_dot",place:"top",children:["Index up to date",W.jsx("br",{}),"Click to force re-indexing"]}),l)]}):n.status==="disabled"?W.jsxs(l0,{"data-tooltip-id":"indexingDisabled_dot",children:[W.jsx(Vd,{color:Yd.DISABLED}),l&&Al.createPortal(W.jsx(pc,{id:"indexingDisabled_dot",place:"top",children:n.desc}),l)]}):n.status==="paused"||s&&n.status==="indexing"?W.jsxs(l0,{children:[W.jsx(Vd,{color:Yd.PAUSED,onClick:h=>{a.post("index/setPaused",!1)}}),W.jsxs(Hg,{children:["Indexing paused (",Math.trunc(n.progress*100),"%)"]})]}):n.status==="indexing"?W.jsxs(l0,{onMouseEnter:()=>d(!0),onMouseLeave:()=>d(!1),onClick:h=>{a.post("index/setPaused",!0)},children:[W.jsx(Vd,{shouldBlink:!0,color:Yd.INDEXING}),W.jsxs("div",{children:[W.jsxs(l0,{children:[W.jsx(kCe,{children:W.jsx(DCe,{completed:i})}),W.jsx(Hg,{style:{fontSize:`${nr()-3}px`},children:`${Math.trunc(n.progress*100)}%`})]}),W.jsx(oD,{children:c?"Click to pause":n.desc})]})]}):null})};var im=e=>e.type==="checkbox",Ep=e=>e instanceof Date,zi=e=>e==null;const pU=e=>typeof e=="object";var $r=e=>!zi(e)&&!Array.isArray(e)&&pU(e)&&!Ep(e),ZCe=e=>$r(e)&&e.target?im(e.target)?e.target.checked:e.target.value:e,HCe=e=>e.substring(0,e.search(/\.\d+(\.|$)/))||e,XCe=(e,t)=>e.has(HCe(t)),LCe=e=>{const t=e.constructor&&e.constructor.prototype;return $r(t)&&t.hasOwnProperty("isPrototypeOf")},h9=typeof window<"u"&&typeof window.HTMLElement<"u"&&typeof document<"u";function Ko(e){let t;const n=Array.isArray(e);if(e instanceof Date)t=new Date(e);else if(e instanceof Set)t=new Set(e);else if(!(h9&&(e instanceof Blob||e instanceof FileList))&&(n||$r(e)))if(t=n?[]:{},!n&&!LCe(e))t=e;else for(const r in e)e.hasOwnProperty(r)&&(t[r]=Ko(e[r]));else return e;return t}var am=e=>Array.isArray(e)?e.filter(Boolean):[],kr=e=>e===void 0,Ft=(e,t,n)=>{if(!t||!$r(e))return n;const r=am(t.split(/[,[\].]+?/)).reduce((i,a)=>zi(i)?i:i[a],e);return kr(r)||r===e?kr(e[t])?n:e[t]:r},Uu=e=>typeof e=="boolean",f9=e=>/^\w*$/.test(e),gU=e=>am(e.replace(/["|']|\]/g,"").split(/\.|\[/)),sr=(e,t,n)=>{let r=-1;const i=f9(t)?[t]:gU(t),a=i.length,o=a-1;for(;++r{const{children:t,...n}=e;return ct.createElement(MCe.Provider,{value:n},t)};var TCe=(e,t,n,r=!0)=>{const i={defaultValues:t._defaultValues};for(const a in e)Object.defineProperty(i,a,{get:()=>{const o=a;return t._proxyFormState[o]!==pl.all&&(t._proxyFormState[o]=!r||pl.all),n&&(n[o]=!0),e[o]}});return i},Va=e=>$r(e)&&!Object.keys(e).length,VCe=(e,t,n,r)=>{n(e);const{name:i,...a}=e;return Va(a)||Object.keys(a).length>=Object.keys(t).length||Object.keys(a).find(o=>t[o]===(!r||pl.all))},nK=e=>Array.isArray(e)?e:[e];function YCe(e){const t=ct.useRef(e);t.current=e,ct.useEffect(()=>{const n=!e.disabled&&t.current.subject&&t.current.subject.subscribe({next:t.current.next});return()=>{n&&n.unsubscribe()}},[e.disabled])}var _l=e=>typeof e=="string",ICe=(e,t,n,r,i)=>_l(e)?(r&&t.watch.add(e),Ft(n,e,i)):Array.isArray(e)?e.map(a=>(r&&t.watch.add(a),Ft(n,a))):(r&&(t.watchAll=!0),n),UCe=(e,t,n,r,i)=>t?{...n[e],types:{...n[e]&&n[e].types?n[e].types:{},[r]:i||!0}}:{},sD=e=>({isOnSubmit:!e||e===pl.onSubmit,isOnBlur:e===pl.onBlur,isOnChange:e===pl.onChange,isOnAll:e===pl.all,isOnTouch:e===pl.onTouched}),uD=(e,t,n)=>!n&&(t.watchAll||t.watch.has(e)||[...t.watch].some(r=>e.startsWith(r)&&/^\.\w+/.test(e.slice(r.length))));const kh=(e,t,n,r)=>{for(const i of n||Object.keys(e)){const a=Ft(e,i);if(a){const{_f:o,...l}=a;if(o){if(o.refs&&o.refs[0]&&t(o.refs[0],i)&&!r)break;if(o.ref&&t(o.ref,o.name)&&!r)break;kh(l,t)}else $r(l)&&kh(l,t)}}};var OCe=(e,t,n)=>{const r=am(Ft(e,n));return sr(r,"root",t[n]),sr(e,n,r),e},A9=e=>e.type==="file",ju=e=>typeof e=="function",WB=e=>{if(!h9)return!1;const t=e?e.ownerDocument:0;return e instanceof(t&&t.defaultView?t.defaultView.HTMLElement:HTMLElement)},gC=e=>_l(e),C9=e=>e.type==="radio",yB=e=>e instanceof RegExp;const cD={value:!1,isValid:!1},dD={value:!0,isValid:!0};var hU=e=>{if(Array.isArray(e)){if(e.length>1){const t=e.filter(n=>n&&n.checked&&!n.disabled).map(n=>n.value);return{value:t,isValid:!!t.length}}return e[0].checked&&!e[0].disabled?e[0].attributes&&!kr(e[0].attributes.value)?kr(e[0].value)||e[0].value===""?dD:{value:e[0].value,isValid:!0}:dD:cD}return cD};const pD={isValid:!1,value:null};var fU=e=>Array.isArray(e)?e.reduce((t,n)=>n&&n.checked&&!n.disabled?{isValid:!0,value:n.value}:t,pD):pD;function gD(e,t,n="validate"){if(gC(e)||Array.isArray(e)&&e.every(gC)||Uu(e)&&!e)return{type:n,message:gC(e)?e:"",ref:t}}var Id=e=>$r(e)&&!yB(e)?e:{value:e,message:""},hD=async(e,t,n,r,i)=>{const{ref:a,refs:o,required:l,maxLength:s,minLength:u,min:c,max:d,pattern:g,validate:h,name:m,valueAsNumber:A,mount:B,disabled:C}=e._f,b=Ft(t,m);if(!B||C)return{};const Q=o?o[0]:a,F=D=>{r&&Q.reportValidity&&(Q.setCustomValidity(Uu(D)?"":D||""),Q.reportValidity())},K={},y=C9(a),G=im(a),X=y||G,H=(A||A9(a))&&kr(a.value)&&kr(b)||WB(a)&&a.value===""||b===""||Array.isArray(b)&&!b.length,v=UCe.bind(null,m,n,K),k=(D,V,z,j=xs.maxLength,te=xs.minLength)=>{const J=D?V:z;K[m]={type:D?j:te,message:J,ref:a,...v(D?j:te,J)}};if(i?!Array.isArray(b)||!b.length:l&&(!X&&(H||zi(b))||Uu(b)&&!b||G&&!hU(o).isValid||y&&!fU(o).isValid)){const{value:D,message:V}=gC(l)?{value:!!l,message:l}:Id(l);if(D&&(K[m]={type:xs.required,message:V,ref:Q,...v(xs.required,V)},!n))return F(V),K}if(!H&&(!zi(c)||!zi(d))){let D,V;const z=Id(d),j=Id(c);if(!zi(b)&&!isNaN(b)){const te=a.valueAsNumber||b&&+b;zi(z.value)||(D=te>z.value),zi(j.value)||(V=tenew Date(new Date().toDateString()+" "+Z),I=a.type=="time",se=a.type=="week";_l(z.value)&&b&&(D=I?J(b)>J(z.value):se?b>z.value:te>new Date(z.value)),_l(j.value)&&b&&(V=I?J(b)+D.value,j=!zi(V.value)&&b.length<+V.value;if((z||j)&&(k(z,D.message,V.message),!n))return F(K[m].message),K}if(g&&!H&&_l(b)){const{value:D,message:V}=Id(g);if(yB(D)&&!b.match(D)&&(K[m]={type:xs.pattern,message:V,ref:a,...v(xs.pattern,V)},!n))return F(V),K}if(h){if(ju(h)){const D=await h(b,t),V=gD(D,Q);if(V&&(K[m]={...V,...v(xs.validate,V.message)},!n))return F(V.message),K}else if($r(h)){let D={};for(const V in h){if(!Va(D)&&!n)break;const z=gD(await h[V](b,t),Q,V);z&&(D={...z,...v(V,z.message)},F(z.message),n&&(K[m]=D))}if(!Va(D)&&(K[m]={ref:Q,...D},!n))return K}}return F(!0),K};function JCe(e,t){const n=t.slice(0,-1).length;let r=0;for(;r{let e=[];return{get observers(){return e},next:i=>{for(const a of e)a.next&&a.next(i)},subscribe:i=>(e.push(i),{unsubscribe:()=>{e=e.filter(a=>a!==i)}}),unsubscribe:()=>{e=[]}}},FB=e=>zi(e)||!pU(e);function E0(e,t){if(FB(e)||FB(t))return e===t;if(Ep(e)&&Ep(t))return e.getTime()===t.getTime();const n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(const i of n){const a=e[i];if(!r.includes(i))return!1;if(i!=="ref"){const o=t[i];if(Ep(a)&&Ep(o)||$r(a)&&$r(o)||Array.isArray(a)&&Array.isArray(o)?!E0(a,o):a!==o)return!1}}return!0}var mU=e=>e.type==="select-multiple",PCe=e=>C9(e)||im(e),iK=e=>WB(e)&&e.isConnected,AU=e=>{for(const t in e)if(ju(e[t]))return!0;return!1};function EB(e,t={}){const n=Array.isArray(e);if($r(e)||n)for(const r in e)Array.isArray(e[r])||$r(e[r])&&!AU(e[r])?(t[r]=Array.isArray(e[r])?[]:{},EB(e[r],t[r])):zi(e[r])||(t[r]=!0);return t}function CU(e,t,n){const r=Array.isArray(e);if($r(e)||r)for(const i in e)Array.isArray(e[i])||$r(e[i])&&!AU(e[i])?kr(t)||FB(n[i])?n[i]=Array.isArray(e[i])?EB(e[i],[]):{...EB(e[i])}:CU(e[i],zi(t)?{}:t[i],n[i]):n[i]=!E0(e[i],t[i]);return n}var _A=(e,t)=>CU(e,t,EB(t)),BU=(e,{valueAsNumber:t,valueAsDate:n,setValueAs:r})=>kr(e)?e:t?e===""?NaN:e&&+e:n&&_l(e)?new Date(e):r?r(e):e;function aK(e){const t=e.ref;if(!(e.refs?e.refs.every(n=>n.disabled):t.disabled))return A9(t)?t.files:C9(t)?fU(e.refs).value:mU(t)?[...t.selectedOptions].map(({value:n})=>n):im(t)?hU(e.refs).value:BU(kr(t.value)?e.ref.value:t.value,e)}var jCe=(e,t,n,r)=>{const i={};for(const a of e){const o=Ft(t,a);o&&sr(i,a,o._f)}return{criteriaMode:n,names:[...e],fields:i,shouldUseNativeValidation:r}},Xg=e=>kr(e)?e:yB(e)?e.source:$r(e)?yB(e.value)?e.value.source:e.value:e,_Ce=e=>e.mount&&(e.required||e.min||e.max||e.maxLength||e.minLength||e.pattern||e.validate);function fD(e,t,n){const r=Ft(e,n);if(r||f9(n))return{error:r,name:n};const i=n.split(".");for(;i.length;){const a=i.join("."),o=Ft(t,a),l=Ft(e,a);if(o&&!Array.isArray(o)&&n!==a)return{name:n};if(l&&l.type)return{name:a,error:l};i.pop()}return{name:n}}var $Ce=(e,t,n,r,i)=>i.isOnAll?!1:!n&&i.isOnTouch?!(t||e):(n?r.isOnBlur:i.isOnBlur)?!e:(n?r.isOnChange:i.isOnChange)?e:!0,qCe=(e,t)=>!am(Ft(e,t)).length&&Jr(e,t);const eBe={mode:pl.onSubmit,reValidateMode:pl.onChange,shouldFocusError:!0};function tBe(e={}){let t={...eBe,...e},n={submitCount:0,isDirty:!1,isLoading:ju(t.defaultValues),isValidating:!1,isSubmitted:!1,isSubmitting:!1,isSubmitSuccessful:!1,isValid:!1,touchedFields:{},dirtyFields:{},validatingFields:{},errors:t.errors||{},disabled:t.disabled||!1},r={},i=$r(t.defaultValues)||$r(t.values)?Ko(t.defaultValues||t.values)||{}:{},a=t.shouldUnregister?{}:Ko(i),o={action:!1,mount:!1,watch:!1},l={mount:new Set,unMount:new Set,array:new Set,watch:new Set},s,u=0;const c={isDirty:!1,dirtyFields:!1,validatingFields:!1,touchedFields:!1,isValidating:!1,isValid:!1,errors:!1},d={values:rK(),array:rK(),state:rK()},g=sD(t.mode),h=sD(t.reValidateMode),m=t.criteriaMode===pl.all,A=P=>le=>{clearTimeout(u),u=setTimeout(P,le)},B=async P=>{if(c.isValid||P){const le=t.resolver?Va((await X()).errors):await v(r,!0);le!==n.isValid&&d.state.next({isValid:le})}},C=(P,le)=>{(c.isValidating||c.validatingFields)&&((P||Array.from(l.mount)).forEach(me=>{me&&(le?sr(n.validatingFields,me,le):Jr(n.validatingFields,me))}),d.state.next({validatingFields:n.validatingFields,isValidating:!Va(n.validatingFields)}))},b=(P,le=[],me,Re,Qe=!0,We=!0)=>{if(Re&&me){if(o.action=!0,We&&Array.isArray(Ft(r,P))){const Ee=me(Ft(r,P),Re.argA,Re.argB);Qe&&sr(r,P,Ee)}if(We&&Array.isArray(Ft(n.errors,P))){const Ee=me(Ft(n.errors,P),Re.argA,Re.argB);Qe&&sr(n.errors,P,Ee),qCe(n.errors,P)}if(c.touchedFields&&We&&Array.isArray(Ft(n.touchedFields,P))){const Ee=me(Ft(n.touchedFields,P),Re.argA,Re.argB);Qe&&sr(n.touchedFields,P,Ee)}c.dirtyFields&&(n.dirtyFields=_A(i,a)),d.state.next({name:P,isDirty:D(P,le),dirtyFields:n.dirtyFields,errors:n.errors,isValid:n.isValid})}else sr(a,P,le)},Q=(P,le)=>{sr(n.errors,P,le),d.state.next({errors:n.errors})},F=P=>{n.errors=P,d.state.next({errors:n.errors,isValid:!1})},K=(P,le,me,Re)=>{const Qe=Ft(r,P);if(Qe){const We=Ft(a,P,kr(me)?Ft(i,P):me);kr(We)||Re&&Re.defaultChecked||le?sr(a,P,le?We:aK(Qe._f)):j(P,We),o.mount&&B()}},y=(P,le,me,Re,Qe)=>{let We=!1,Ee=!1;const Ie={name:P},Ce=!!(Ft(r,P)&&Ft(r,P)._f.disabled);if(!me||Re){c.isDirty&&(Ee=n.isDirty,n.isDirty=Ie.isDirty=D(),We=Ee!==Ie.isDirty);const de=Ce||E0(Ft(i,P),le);Ee=!!(!Ce&&Ft(n.dirtyFields,P)),de||Ce?Jr(n.dirtyFields,P):sr(n.dirtyFields,P,!0),Ie.dirtyFields=n.dirtyFields,We=We||c.dirtyFields&&Ee!==!de}if(me){const de=Ft(n.touchedFields,P);de||(sr(n.touchedFields,P,me),Ie.touchedFields=n.touchedFields,We=We||c.touchedFields&&de!==me)}return We&&Qe&&d.state.next(Ie),We?Ie:{}},G=(P,le,me,Re)=>{const Qe=Ft(n.errors,P),We=c.isValid&&Uu(le)&&n.isValid!==le;if(e.delayError&&me?(s=A(()=>Q(P,me)),s(e.delayError)):(clearTimeout(u),s=null,me?sr(n.errors,P,me):Jr(n.errors,P)),(me?!E0(Qe,me):Qe)||!Va(Re)||We){const Ee={...Re,...We&&Uu(le)?{isValid:le}:{},errors:n.errors,name:P};n={...n,...Ee},d.state.next(Ee)}},X=async P=>{C(P,!0);const le=await t.resolver(a,t.context,jCe(P||l.mount,r,t.criteriaMode,t.shouldUseNativeValidation));return C(P),le},H=async P=>{const{errors:le}=await X(P);if(P)for(const me of P){const Re=Ft(le,me);Re?sr(n.errors,me,Re):Jr(n.errors,me)}else n.errors=le;return le},v=async(P,le,me={valid:!0})=>{for(const Re in P){const Qe=P[Re];if(Qe){const{_f:We,...Ee}=Qe;if(We){const Ie=l.array.has(We.name);C([Re],!0);const Ce=await hD(Qe,a,m,t.shouldUseNativeValidation&&!le,Ie);if(C([Re]),Ce[We.name]&&(me.valid=!1,le))break;!le&&(Ft(Ce,We.name)?Ie?OCe(n.errors,Ce,We.name):sr(n.errors,We.name,Ce[We.name]):Jr(n.errors,We.name))}Ee&&await v(Ee,le,me)}}return me.valid},k=()=>{for(const P of l.unMount){const le=Ft(r,P);le&&(le._f.refs?le._f.refs.every(me=>!iK(me)):!iK(le._f.ref))&&_(P)}l.unMount=new Set},D=(P,le)=>(P&&le&&sr(a,P,le),!E0(S(),i)),V=(P,le,me)=>ICe(P,l,{...o.mount?a:kr(le)?i:_l(P)?{[P]:le}:le},me,le),z=P=>am(Ft(o.mount?a:i,P,e.shouldUnregister?Ft(i,P,[]):[])),j=(P,le,me={})=>{const Re=Ft(r,P);let Qe=le;if(Re){const We=Re._f;We&&(!We.disabled&&sr(a,P,BU(le,We)),Qe=WB(We.ref)&&zi(le)?"":le,mU(We.ref)?[...We.ref.options].forEach(Ee=>Ee.selected=Qe.includes(Ee.value)):We.refs?im(We.ref)?We.refs.length>1?We.refs.forEach(Ee=>(!Ee.defaultChecked||!Ee.disabled)&&(Ee.checked=Array.isArray(Qe)?!!Qe.find(Ie=>Ie===Ee.value):Qe===Ee.value)):We.refs[0]&&(We.refs[0].checked=!!Qe):We.refs.forEach(Ee=>Ee.checked=Ee.value===Qe):A9(We.ref)?We.ref.value="":(We.ref.value=Qe,We.ref.type||d.values.next({name:P,values:{...a}})))}(me.shouldDirty||me.shouldTouch)&&y(P,Qe,me.shouldTouch,me.shouldDirty,!0),me.shouldValidate&&Z(P)},te=(P,le,me)=>{for(const Re in le){const Qe=le[Re],We=`${P}.${Re}`,Ee=Ft(r,We);(l.array.has(P)||!FB(Qe)||Ee&&!Ee._f)&&!Ep(Qe)?te(We,Qe,me):j(We,Qe,me)}},J=(P,le,me={})=>{const Re=Ft(r,P),Qe=l.array.has(P),We=Ko(le);sr(a,P,We),Qe?(d.array.next({name:P,values:{...a}}),(c.isDirty||c.dirtyFields)&&me.shouldDirty&&d.state.next({name:P,dirtyFields:_A(i,a),isDirty:D(P,We)})):Re&&!Re._f&&!zi(We)?te(P,We,me):j(P,We,me),uD(P,l)&&d.state.next({...n}),d.values.next({name:o.mount?P:void 0,values:{...a}})},I=async P=>{o.mount=!0;const le=P.target;let me=le.name,Re=!0;const Qe=Ft(r,me),We=()=>le.type?aK(Qe._f):ZCe(P),Ee=Ie=>{Re=Number.isNaN(Ie)||Ie===Ft(a,me,Ie)};if(Qe){let Ie,Ce;const de=We(),we=P.type===lD.BLUR||P.type===lD.FOCUS_OUT,ae=!_Ce(Qe._f)&&!t.resolver&&!Ft(n.errors,me)&&!Qe._f.deps||$Ce(we,Ft(n.touchedFields,me),n.isSubmitted,h,g),xe=uD(me,l,we);sr(a,me,de),we?(Qe._f.onBlur&&Qe._f.onBlur(P),s&&s(0)):Qe._f.onChange&&Qe._f.onChange(P);const nt=y(me,de,we,!1),ft=!Va(nt)||xe;if(!we&&d.values.next({name:me,type:P.type,values:{...a}}),ae)return c.isValid&&B(),ft&&d.state.next({name:me,...xe?{}:nt});if(!we&&xe&&d.state.next({...n}),t.resolver){const{errors:Bt}=await X([me]);if(Ee(de),Re){const $=fD(n.errors,r,me),Ke=fD(Bt,r,$.name||me);Ie=Ke.error,me=Ke.name,Ce=Va(Bt)}}else C([me],!0),Ie=(await hD(Qe,a,m,t.shouldUseNativeValidation))[me],C([me]),Ee(de),Re&&(Ie?Ce=!1:c.isValid&&(Ce=await v(r,!0)));Re&&(Qe._f.deps&&Z(Qe._f.deps),G(me,Ce,Ie,nt))}},se=(P,le)=>{if(Ft(n.errors,le)&&P.focus)return P.focus(),1},Z=async(P,le={})=>{let me,Re;const Qe=nK(P);if(t.resolver){const We=await H(kr(P)?P:Qe);me=Va(We),Re=P?!Qe.some(Ee=>Ft(We,Ee)):me}else P?(Re=(await Promise.all(Qe.map(async We=>{const Ee=Ft(r,We);return await v(Ee&&Ee._f?{[We]:Ee}:Ee)}))).every(Boolean),!(!Re&&!n.isValid)&&B()):Re=me=await v(r);return d.state.next({...!_l(P)||c.isValid&&me!==n.isValid?{}:{name:P},...t.resolver||!P?{isValid:me}:{},errors:n.errors}),le.shouldFocus&&!Re&&kh(r,se,P?Qe:l.mount),Re},S=P=>{const le={...o.mount?a:i};return kr(P)?le:_l(P)?Ft(le,P):P.map(me=>Ft(le,me))},q=(P,le)=>({invalid:!!Ft((le||n).errors,P),isDirty:!!Ft((le||n).dirtyFields,P),isTouched:!!Ft((le||n).touchedFields,P),isValidating:!!Ft((le||n).validatingFields,P),error:Ft((le||n).errors,P)}),T=P=>{P&&nK(P).forEach(le=>Jr(n.errors,le)),d.state.next({errors:P?n.errors:{}})},ue=(P,le,me)=>{const Re=(Ft(r,P,{_f:{}})._f||{}).ref,Qe=Ft(n.errors,P)||{},{ref:We,message:Ee,type:Ie,...Ce}=Qe;sr(n.errors,P,{...Ce,...le,ref:Re}),d.state.next({name:P,errors:n.errors,isValid:!1}),me&&me.shouldFocus&&Re&&Re.focus&&Re.focus()},fe=(P,le)=>ju(P)?d.values.subscribe({next:me=>P(V(void 0,le),me)}):V(P,le,!0),_=(P,le={})=>{for(const me of P?nK(P):l.mount)l.mount.delete(me),l.array.delete(me),le.keepValue||(Jr(r,me),Jr(a,me)),!le.keepError&&Jr(n.errors,me),!le.keepDirty&&Jr(n.dirtyFields,me),!le.keepTouched&&Jr(n.touchedFields,me),!le.keepIsValidating&&Jr(n.validatingFields,me),!t.shouldUnregister&&!le.keepDefaultValue&&Jr(i,me);d.values.next({values:{...a}}),d.state.next({...n,...le.keepDirty?{isDirty:D()}:{}}),!le.keepIsValid&&B()},Ze=({disabled:P,name:le,field:me,fields:Re,value:Qe})=>{if(Uu(P)&&o.mount||P){const We=P?void 0:kr(Qe)?aK(me?me._f:Ft(Re,le)._f):Qe;sr(a,le,We),y(le,We,!1,!1,!0)}},ve=(P,le={})=>{let me=Ft(r,P);const Re=Uu(le.disabled);return sr(r,P,{...me||{},_f:{...me&&me._f?me._f:{ref:{name:P}},name:P,mount:!0,...le}}),l.mount.add(P),me?Ze({field:me,disabled:le.disabled,name:P,value:le.value}):K(P,!0,le.value),{...Re?{disabled:le.disabled}:{},...t.progressive?{required:!!le.required,min:Xg(le.min),max:Xg(le.max),minLength:Xg(le.minLength),maxLength:Xg(le.maxLength),pattern:Xg(le.pattern)}:{},name:P,onChange:I,onBlur:I,ref:Qe=>{if(Qe){ve(P,le),me=Ft(r,P);const We=kr(Qe.value)&&Qe.querySelectorAll&&Qe.querySelectorAll("input,select,textarea")[0]||Qe,Ee=PCe(We),Ie=me._f.refs||[];if(Ee?Ie.find(Ce=>Ce===We):We===me._f.ref)return;sr(r,P,{_f:{...me._f,...Ee?{refs:[...Ie.filter(iK),We,...Array.isArray(Ft(i,P))?[{}]:[]],ref:{type:We.type,name:P}}:{ref:We}}}),K(P,!1,void 0,We)}else me=Ft(r,P,{}),me._f&&(me._f.mount=!1),(t.shouldUnregister||le.shouldUnregister)&&!(XCe(l.array,P)&&o.action)&&l.unMount.add(P)}}},it=()=>t.shouldFocusError&&kh(r,se,l.mount),et=P=>{Uu(P)&&(d.state.next({disabled:P}),kh(r,(le,me)=>{const Re=Ft(r,me);Re&&(le.disabled=Re._f.disabled||P,Array.isArray(Re._f.refs)&&Re._f.refs.forEach(Qe=>{Qe.disabled=Re._f.disabled||P}))},0,!1))},ot=(P,le)=>async me=>{let Re;me&&(me.preventDefault&&me.preventDefault(),me.persist&&me.persist());let Qe=Ko(a);if(d.state.next({isSubmitting:!0}),t.resolver){const{errors:We,values:Ee}=await X();n.errors=We,Qe=Ee}else await v(r);if(Jr(n.errors,"root"),Va(n.errors)){d.state.next({errors:{}});try{await P(Qe,me)}catch(We){Re=We}}else le&&await le({...n.errors},me),it(),setTimeout(it);if(d.state.next({isSubmitted:!0,isSubmitting:!1,isSubmitSuccessful:Va(n.errors)&&!Re,submitCount:n.submitCount+1,errors:n.errors}),Re)throw Re},Oe=(P,le={})=>{Ft(r,P)&&(kr(le.defaultValue)?J(P,Ko(Ft(i,P))):(J(P,le.defaultValue),sr(i,P,Ko(le.defaultValue))),le.keepTouched||Jr(n.touchedFields,P),le.keepDirty||(Jr(n.dirtyFields,P),n.isDirty=le.defaultValue?D(P,Ko(Ft(i,P))):D()),le.keepError||(Jr(n.errors,P),c.isValid&&B()),d.state.next({...n}))},tt=(P,le={})=>{const me=P?Ko(P):i,Re=Ko(me),Qe=Va(P),We=Qe?i:Re;if(le.keepDefaultValues||(i=me),!le.keepValues){if(le.keepDirtyValues)for(const Ee of l.mount)Ft(n.dirtyFields,Ee)?sr(We,Ee,Ft(a,Ee)):J(Ee,Ft(We,Ee));else{if(h9&&kr(P))for(const Ee of l.mount){const Ie=Ft(r,Ee);if(Ie&&Ie._f){const Ce=Array.isArray(Ie._f.refs)?Ie._f.refs[0]:Ie._f.ref;if(WB(Ce)){const de=Ce.closest("form");if(de){de.reset();break}}}}r={}}a=e.shouldUnregister?le.keepDefaultValues?Ko(i):{}:Ko(We),d.array.next({values:{...We}}),d.values.next({values:{...We}})}l={mount:le.keepDirtyValues?l.mount:new Set,unMount:new Set,array:new Set,watch:new Set,watchAll:!1,focus:""},o.mount=!c.isValid||!!le.keepIsValid||!!le.keepDirtyValues,o.watch=!!e.shouldUnregister,d.state.next({submitCount:le.keepSubmitCount?n.submitCount:0,isDirty:Qe?!1:le.keepDirty?n.isDirty:!!(le.keepDefaultValues&&!E0(P,i)),isSubmitted:le.keepIsSubmitted?n.isSubmitted:!1,dirtyFields:Qe?[]:le.keepDirtyValues?le.keepDefaultValues&&a?_A(i,a):n.dirtyFields:le.keepDefaultValues&&P?_A(i,P):{},touchedFields:le.keepTouched?n.touchedFields:{},errors:le.keepErrors?n.errors:{},isSubmitSuccessful:le.keepIsSubmitSuccessful?n.isSubmitSuccessful:!1,isSubmitting:!1})},st=(P,le)=>tt(ju(P)?P(a):P,le);return{control:{register:ve,unregister:_,getFieldState:q,handleSubmit:ot,setError:ue,_executeSchema:X,_getWatch:V,_getDirty:D,_updateValid:B,_removeUnmounted:k,_updateFieldArray:b,_updateDisabledField:Ze,_getFieldArray:z,_reset:tt,_resetDefaultValues:()=>ju(t.defaultValues)&&t.defaultValues().then(P=>{st(P,t.resetOptions),d.state.next({isLoading:!1})}),_updateFormState:P=>{n={...n,...P}},_disableForm:et,_subjects:d,_proxyFormState:c,_setErrors:F,get _fields(){return r},get _formValues(){return a},get _state(){return o},set _state(P){o=P},get _defaultValues(){return i},get _names(){return l},set _names(P){l=P},get _formState(){return n},set _formState(P){n=P},get _options(){return t},set _options(P){t={...t,...P}}},trigger:Z,register:ve,handleSubmit:ot,watch:fe,setValue:J,getValues:S,reset:st,resetField:Oe,clearErrors:T,unregister:_,setError:ue,setFocus:(P,le={})=>{const me=Ft(r,P),Re=me&&me._f;if(Re){const Qe=Re.refs?Re.refs[0]:Re.ref;Qe.focus&&(Qe.focus(),le.shouldSelect&&Qe.select())}},getFieldState:q}}function B9(e={}){const t=ct.useRef(),n=ct.useRef(),[r,i]=ct.useState({isDirty:!1,isValidating:!1,isLoading:ju(e.defaultValues),isSubmitted:!1,isSubmitting:!1,isSubmitSuccessful:!1,isValid:!1,submitCount:0,dirtyFields:{},touchedFields:{},validatingFields:{},errors:e.errors||{},disabled:e.disabled||!1,defaultValues:ju(e.defaultValues)?void 0:e.defaultValues});t.current||(t.current={...tBe(e),formState:r});const a=t.current.control;return a._options=e,YCe({subject:a._subjects.state,next:o=>{VCe(o,a._proxyFormState,a._updateFormState,!0)&&i({...a._formState})}}),ct.useEffect(()=>a._disableForm(e.disabled),[a,e.disabled]),ct.useEffect(()=>{if(a._proxyFormState.isDirty){const o=a._getDirty();o!==r.isDirty&&a._subjects.state.next({isDirty:o})}},[a,r.isDirty]),ct.useEffect(()=>{e.values&&!E0(e.values,n.current)?(a._reset(e.values,a._options.resetOptions),n.current=e.values,i(o=>({...o}))):a._resetDefaultValues()},[e.values,a]),ct.useEffect(()=>{e.errors&&a._setErrors(e.errors)},[e.errors,a]),ct.useEffect(()=>{a._state.mount||(a._updateValid(),a._state.mount=!0),a._state.watch&&(a._state.watch=!1,a._subjects.state.next({...a._formState})),a._removeUnmounted()}),ct.useEffect(()=>{e.shouldUnregister&&a._subjects.values.next({values:a._getWatch()})},[e.shouldUnregister,a]),t.current.formState=TCe(r,a),t.current}var lr=(e=>(e.RequiresApiKey="Requires API Key",e.Local="Local",e.Free="Free",e.OpenSource="Open-Source",e))(lr||{});const nBe={"Requires API Key":"#FF0000",Local:"#00bb00","Open-Source":"#0033FF",Free:"#ffff00"};function wU({tag:e}){return W.jsx("span",{style:{fontSize:"0.9em",backgroundColor:`${nBe[e]}55`,color:"white",padding:"2px 4px",borderRadius:jt,marginRight:"4px"},children:e})}const bU={contextLength:{inputType:"number",key:"contextLength",label:"Context Length",defaultValue:void 0,required:!1},temperature:{inputType:"number",key:"completionOptions.temperature",label:"Temperature",defaultValue:void 0,required:!1,min:0,max:1,step:.01},topP:{inputType:"number",key:"completionOptions.topP",label:"Top-P",defaultValue:void 0,required:!1,min:0,max:1,step:.01},topK:{inputType:"number",key:"completionOptions.topK",label:"Top-K",defaultValue:void 0,required:!1,min:0,step:1},presencePenalty:{inputType:"number",key:"completionOptions.presencePenalty",label:"Presence Penalty",defaultValue:void 0,required:!1,min:0,max:1,step:.01},frequencyPenalty:{inputType:"number",key:"completionOptions.frequencyPenalty",label:"Frequency Penalty",defaultValue:void 0,required:!1,min:0,max:1,step:.01}},Ct={codeLlamaInstruct:{title:"CodeLlama Instruct",description:"A model from Meta, fine-tuned for code generation and conversation",refUrl:"",params:{title:"CodeLlama-7b",model:"codellama-7b",contextLength:4096},icon:"meta.png",dimensions:[{name:"Parameter Count",description:"The number of parameters in the model",options:{"7b":{model:"codellama-7b",title:"CodeLlama-7b"},"13b":{model:"codellama-13b",title:"CodeLlama-13b"},"34b":{model:"codellama-34b",title:"CodeLlama-34b"},"70b":{model:"codellama-70b",title:"Codellama-70b"}}}],providerOptions:["ollama","lmstudio","together","llama.cpp","replicate"],isOpenSource:!0},codellama70bTrial:{title:"Codellama 70b (Free Trial)",description:"The best code model from Meta, fine-tuned for code generation and conversation",refUrl:"",params:{title:"CodeLlama-70b",model:"codellama-70b",contextLength:4096},icon:"meta.png",providerOptions:["free-trial"],isOpenSource:!1},mixtralTrial:{title:"Mixtral (Free Trial)",description:"Mixtral 8x7b is a mixture of experts model created by Mistral AI",refUrl:"",params:{title:"Mixtral",model:"mistral-8x7b",contextLength:4096},icon:"mistral.png",providerOptions:["free-trial","groq"],isOpenSource:!1},llama38bChat:{title:"Llama3 8b",description:"The latest Llama model from Meta, fine-tuned for chat",refUrl:"",params:{title:"Llama3-8b",model:"llama3-8b",contextLength:8192},icon:"meta.png",providerOptions:["groq"],isOpenSource:!1},llama370bChat:{title:"Llama3 70b Chat",description:"The latest Llama model from Meta, fine-tuned for chat",refUrl:"",params:{title:"Llama3-70b",model:"llama3-70b",contextLength:8192},icon:"meta.png",providerOptions:["groq"],isOpenSource:!1},llama270bChat:{title:"Llama2 70b Chat",description:"The latest Llama model from Meta, fine-tuned for chat",refUrl:"",params:{title:"Llama2-70b",model:"llama2-70b",contextLength:4096},icon:"meta.png",providerOptions:["groq"],isOpenSource:!1},llama3Chat:{title:"Llama3 Chat",description:"The latest model from Meta, fine-tuned for chat",refUrl:"",params:{title:"Llama3-8b",model:"llama3-8b",contextLength:8192},icon:"meta.png",dimensions:[{name:"Parameter Count",description:"The number of parameters in the model",options:{"8b":{model:"llama3-8b",title:"Llama3-8b"},"70b":{model:"llama3-70b",title:"Llama3-70b"}}}],providerOptions:["ollama","lmstudio","together","llama.cpp","replicate"],isOpenSource:!0},wizardCoder:{title:"WizardCoder",description:"A CodeLlama-based code generation model from WizardLM, focused on Python",refUrl:"",params:{title:"WizardCoder-7b",model:"wizardcoder-7b",contextLength:4096},icon:"wizardlm.png",dimensions:[{name:"Parameter Count",description:"The number of parameters in the model",options:{"7b":{model:"wizardcoder-7b",title:"WizardCoder-7b"},"13b":{model:"wizardcoder-13b",title:"WizardCoder-13b"},"34b":{model:"wizardcoder-34b",title:"WizardCoder-34b"}}}],providerOptions:["ollama","lmstudio","llama.cpp","replicate"],isOpenSource:!0},phindCodeLlama:{title:"Phind CodeLlama (34b)",description:"A finetune of CodeLlama by Phind",icon:"meta.png",params:{title:"Phind CodeLlama",model:"phind-codellama-34b",contextLength:4096},providerOptions:["ollama","lmstudio","llama.cpp","replicate","free-trial"],isOpenSource:!0},mistralOs:{title:"Mistral",description:"A series of open-weight models created by Mistral AI, highly competent for code generation and other tasks",params:{title:"Mistral",model:"mistral-7b",contextLength:4096},dimensions:[{name:"Parameter Count",description:"The number of parameters in the model",options:{"7b":{model:"mistral-7b",title:"Mistral-7b"},"8x7b (MoE)":{model:"mistral-8x7b",title:"Mixtral"}}}],icon:"mistral.png",providerOptions:["ollama","lmstudio","together","llama.cpp","replicate"],isOpenSource:!0},codestral:{title:"Codestral",description:"Codestral is an advanced generative model created by Mistral AI, tailored for coding tasks like fill-in-the-middle and code completion. Trained on more than 80 programming languages, Codestral demonstrates proficiency in both widely-used and less-common languages.",params:{title:"Codestral",model:"codestral-latest",contextLength:32e3},icon:"mistral.png",providerOptions:["mistral"],isOpenSource:!1},mistral7b:{title:"Mistral 7B",description:"The first dense model released by Mistral AI, perfect for experimentation, customization, and quick iteration. At the time of the release, it matched the capabilities of models up to 30B parameters.",params:{title:"Mistral 7B",model:"open-mistral-7b",contextLength:32e3},icon:"mistral.png",providerOptions:["mistral"],isOpenSource:!1},mistral8x7b:{title:"Mixtral 8x7B",description:"A sparse mixture of experts model. As such, it leverages up to 45B parameters but only uses about 12B during inference, leading to better inference throughput at the cost of more vRAM.",params:{title:"Mixtral 8x7B",model:"open-mixtral-8x7b",contextLength:32e3},icon:"mistral.png",providerOptions:["mistral"],isOpenSource:!1},mistral8x22b:{title:"Mistral 8x22B",description:"A bigger sparse mixture of experts model. As such, it leverages up to 141B parameters but only uses about 39B during inference, leading to better inference throughput at the cost of more vRAM.",params:{title:"Mistral 8x22B",model:"open-mixtral-8x22b",contextLength:64e3},icon:"mistral.png",providerOptions:["mistral"],isOpenSource:!1},mistralSmall:{title:"Mistral Small",description:"Suitable for simple tasks that one can do in bulk (Classification, Customer Support, or Text Generation)",params:{title:"Mistral Small",model:"mistral-small-latest",contextLength:32e3},icon:"mistral.png",providerOptions:["mistral"],isOpenSource:!1},mistralLarge:{title:"Mistral Large",description:"Mistral's flagship model that's ideal for complex tasks that require large reasoning capabilities or are highly specialized (Synthetic Text Generation, Code Generation, RAG, or Agents).",params:{title:"Mistral Large",model:"mistral-large-latest",contextLength:32e3},icon:"mistral.png",providerOptions:["mistral"],isOpenSource:!1},geminiPro:{title:"Gemini Pro",description:"A highly capable model created by Google DeepMind",params:{title:"Gemini Pro",model:"gemini-pro",contextLength:32e3,apiKey:""},icon:"gemini.png",providerOptions:["gemini"],isOpenSource:!1},gemini15Pro:{title:"Gemini 1.5 Pro",description:"A newer Gemini model with 1M token context length",params:{title:"Gemini 1.5 Pro",model:"gemini-1.5-pro-latest",contextLength:1e6,apiKey:""},icon:"gemini.png",providerOptions:["gemini","free-trial"],isOpenSource:!1},gemini15Flash:{title:"Gemini 1.5 Flash",description:"Fast and versatile multimodal model for scaling across diverse tasks",params:{title:"Gemini 1.5 Flash",model:"gemini-1.5-flash-latest",contextLength:1e6,apiKey:""},icon:"gemini.png",providerOptions:["gemini"],isOpenSource:!1},deepseek:{title:"DeepSeek-Coder",description:"A model pre-trained on 2 trillion tokens including 80+ programming languages and a repo-level corpus.",params:{title:"DeepSeek-7b",model:"deepseek-7b",contextLength:4096},icon:"deepseek.png",dimensions:[{name:"Parameter Count",description:"The number of parameters in the model",options:{"1b":{model:"deepseek-1b",title:"DeepSeek-1b"},"7b":{model:"deepseek-7b",title:"DeepSeek-7b"},"33b":{model:"deepseek-33b",title:"DeepSeek-33b"}}}],providerOptions:["ollama","lmstudio","llama.cpp"],isOpenSource:!0},commandR:{title:"Command R",description:"Command R is a scalable generative model targeting RAG and Tool Use to enable production-scale AI for enterprise.",params:{model:"command-r",contextLength:128e3,title:"Command R",apiKey:""},providerOptions:["cohere"],icon:"cohere.png",isOpenSource:!1},commandRPlus:{title:"Command R+",description:"Command R+ is a state-of-the-art RAG-optimized model designed to tackle enterprise-grade workloads",params:{model:"command-r-plus",contextLength:128e3,title:"Command R+",apiKey:""},providerOptions:["cohere"],icon:"cohere.png",isOpenSource:!1},gpt4turbo:{title:"GPT-4 Turbo",description:"A faster and more capable version of GPT-4 with longer context length and image support",params:{model:"gpt-4-turbo",contextLength:128e3,title:"GPT-4 Turbo"},providerOptions:["openai"],icon:"openai.png",isOpenSource:!1},gpt4o:{title:"GPT-4o",description:"An even faster version of GPT-4 with stronger multi-modal capabilities.",params:{model:"gpt-4o",contextLength:128e3,title:"GPT-4o",systemMessage:"You are an expert software developer. You give helpful and concise responses."},providerOptions:["openai","free-trial"],icon:"openai.png",isOpenSource:!1},gpt35turbo:{title:"GPT-3.5-Turbo",description:"A faster, cheaper OpenAI model with slightly lower capabilities",params:{model:"gpt-3.5-turbo",contextLength:8096,title:"GPT-3.5-Turbo"},providerOptions:["openai","free-trial"],icon:"openai.png",isOpenSource:!1},claude35Sonnet:{title:"Claude 3.5 Sonnet",description:"Anthropic's most intelligent model, but much less expensive than Claude 3 Opus",params:{model:"claude-3-5-sonnet-20240620",contextLength:2e5,title:"Claude 3.5 Sonnet",apiKey:""},providerOptions:["anthropic","free-trial"],icon:"anthropic.png",isOpenSource:!1},claude3Opus:{title:"Claude 3 Opus",description:"The most capable model in the Claude 3 series, beating GPT-4 on many benchmarks",params:{model:"claude-3-opus-20240229",contextLength:2e5,title:"Claude 3 Opus",apiKey:""},providerOptions:["anthropic"],icon:"anthropic.png",isOpenSource:!1},claude3Sonnet:{title:"Claude 3 Sonnet",description:"The second most capable model in the Claude 3 series: ideal balance of intelligence and speed",params:{model:"claude-3-sonnet-20240229",contextLength:2e5,title:"Claude 3 Sonnet",apiKey:""},providerOptions:["anthropic","free-trial"],icon:"anthropic.png",isOpenSource:!1},claude3Haiku:{title:"Claude 3 Haiku",description:"The third most capable model in the Claude 3 series: fastest and most compact model for near-instant responsiveness",params:{model:"claude-3-haiku-20240307",contextLength:2e5,title:"Claude 3 Haiku",apiKey:""},providerOptions:["anthropic","free-trial"],icon:"anthropic.png",isOpenSource:!1},AUTODETECT:{title:"Autodetect",description:"Automatically populate the model list by calling the /models endpoint of the server",params:{model:"AUTODETECT"},providerOptions:[],isOpenSource:!1}},La=Object.values(bU),Lg=Object.values(Ct).filter(({isOpenSource:e})=>e),oK={inputType:"text",key:"apiBase",label:"API Base",placeholder:"e.g. http://localhost:8080",required:!1},Ac={openai:{title:"OpenAI",provider:"openai",description:"Use gpt-4, gpt-3.5-turbo, or any other OpenAI model",longDescription:"Use gpt-4, gpt-3.5-turbo, or any other OpenAI model. See [here](https://openai.com/product#made-for-developers) to obtain an API key.",icon:"openai.png",tags:[lr.RequiresApiKey],packages:[Ct.gpt4o,Ct.gpt4turbo,Ct.gpt35turbo,{...Ct.AUTODETECT,params:{...Ct.AUTODETECT.params,title:"OpenAI"}}],collectInputFor:[{inputType:"text",key:"apiKey",label:"API Key",placeholder:"Enter your OpenAI API key",required:!0},...La],apiKeyUrl:"https://platform.openai.com/account/api-keys"},anthropic:{title:"Anthropic",provider:"anthropic",refPage:"anthropicllm",description:"Anthropic builds state-of-the-art models with large context length and high recall",icon:"anthropic.png",tags:[lr.RequiresApiKey],longDescription:"To get started with Anthropic models, you first need to sign up for the open beta [here](https://claude.ai/login) to obtain an API key.",collectInputFor:[{inputType:"text",key:"apiKey",label:"API Key",placeholder:"Enter your Anthropic API key",required:!0},...La,{...bU.contextLength,defaultValue:1e5}],packages:[Ct.claude35Sonnet,Ct.claude3Opus,Ct.claude3Sonnet,Ct.claude3Haiku],apiKeyUrl:"https://console.anthropic.com/account/keys"},azure:{title:"Azure OpenAI",provider:"azure",description:"Azure OpenAI Service offers industry-leading coding and language AI models that you can fine-tune to your specific needs for a variety of use cases.",longDescription:"[Visit our documentation](https://docs.continue.dev/reference/Model%20Providers/azure) for information on obtaining an API key.\n\nSelect the `GPT-4o` model below to complete your provider configuration, but note that this will not affect the specific model you need to select when creating your Azure deployment.",icon:"azure.png",tags:[lr.RequiresApiKey],refPage:"azure",apiKeyUrl:"https://azure.microsoft.com/en-us/products/ai-services/openai-service",packages:[Ct.gpt4o],params:{apiKey:"",engine:"",apiBase:"",apiVersion:"",apiType:"azure"},collectInputFor:[{inputType:"text",key:"apiKey",label:"API Key",placeholder:"Enter your Azure OpenAI API key",required:!0},{inputType:"text",key:"engine",label:"Engine",placeholder:"Enter the engine name",required:!0},{...oK,required:!0},{inputType:"text",key:"apiVersion",label:"API Version",placeholder:"Enter the API version",required:!1,defaultValue:"2023-07-01-preview"},...La]},mistral:{title:"Mistral API",provider:"mistral",description:"The Mistral API provides seamless access to their models, including Codestral, Mistral 8x22B, Mistral Large, and more.",icon:"mistral.png",longDescription:"To get access to the Mistral API, obtain your API key from [here](https://console.mistral.ai/codestral) for Codestral or the [Mistral platform](https://docs.mistral.ai/) for all other models.",tags:[lr.RequiresApiKey,lr.OpenSource],params:{apiKey:""},collectInputFor:[{inputType:"text",key:"apiKey",label:"API Key",placeholder:"Enter your Mistral API key",required:!0},...La],packages:[Ct.codestral,Ct.mistralLarge,Ct.mistralSmall,Ct.mistral8x22b,Ct.mistral8x7b,Ct.mistral7b],apiKeyUrl:"https://console.mistral.ai/codestral"},ollama:{title:"Ollama",provider:"ollama",description:"One of the fastest ways to get started with local models on Mac, Linux, or Windows",longDescription:'To get started with Ollama, follow these steps:\n1. Download from [ollama.ai](https://ollama.ai/) and open the application\n2. Open a terminal and run `ollama run `. Example model names are `codellama:7b-instruct` or `llama2:7b-text`. You can find the full list [here](https://ollama.ai/library).\n3. Make sure that the model name used in step 2 is the same as the one in config.json (e.g. `model="codellama:7b-instruct"`)\n4. Once the model has finished downloading, you can start asking questions through Continue.',icon:"ollama.png",tags:[lr.Local,lr.OpenSource],packages:[{...Ct.AUTODETECT,params:{...Ct.AUTODETECT.params,title:"Ollama"}},...Lg],collectInputFor:[...La,{...oK,defaultValue:"http://localhost:11434"}],downloadUrl:"https://ollama.ai/"},cohere:{title:"Cohere",provider:"cohere",refPage:"cohere",description:"Optimized for enterprise generative AI, search and discovery, and advanced retrieval.",icon:"cohere.png",tags:[lr.RequiresApiKey],longDescription:"To use Cohere, visit the [Cohere dashboard](https://dashboard.cohere.com/api-keys) to create an API key.",collectInputFor:[{inputType:"text",key:"apiKey",label:"API Key",placeholder:"Enter your Cohere API key",required:!0},...La],packages:[Ct.commandR,Ct.commandRPlus]},groq:{title:"Groq",provider:"groq",icon:"groq.png",description:"Groq is the fastest LLM provider by a wide margin, using 'LPUs' to serve open-source models at blazing speed.",longDescription:"To get started with Groq, obtain an API key from their website [here](https://wow.groq.com/).",tags:[lr.RequiresApiKey,lr.OpenSource],collectInputFor:[{inputType:"text",key:"apiKey",label:"API Key",placeholder:"Enter your Groq API key",required:!0}],packages:[Ct.llama370bChat,Ct.llama38bChat,{...Ct.mixtralTrial,title:"Mixtral"},Ct.llama270bChat,{...Ct.AUTODETECT,params:{...Ct.AUTODETECT.params,title:"Groq"}},,],apiKeyUrl:"https://console.groq.com/keys"},together:{title:"TogetherAI",provider:"together",refPage:"togetherllm",description:"Use the TogetherAI API for extremely fast streaming of open-source models",icon:"together.png",longDescription:`Together is a hosted service that provides extremely fast streaming of open-source language models. To get started with Together: +1. Obtain an API key from [here](https://together.ai) +2. Paste below +3. Select a model preset`,tags:[lr.RequiresApiKey,lr.OpenSource],params:{apiKey:""},collectInputFor:[{inputType:"text",key:"apiKey",label:"API Key",placeholder:"Enter your TogetherAI API key",required:!0},...La],packages:[Ct.llama3Chat,Ct.codeLlamaInstruct,Ct.mistralOs].map(e=>(e.params.contextLength=4096,e))},gemini:{title:"Google Gemini API",provider:"gemini",refPage:"geminiapi",description:"Try out Google's state-of-the-art Gemini model from their API.",longDescription:"To get started with Google Gemini API, obtain your API key from [here](https://ai.google.dev/tutorials/workspace_auth_quickstart) and paste it below.",icon:"gemini.png",tags:[lr.RequiresApiKey],collectInputFor:[{inputType:"text",key:"apiKey",label:"API Key",placeholder:"Enter your Gemini API key",required:!0}],packages:[Ct.gemini15Pro,Ct.geminiPro,Ct.gemini15Flash],apiKeyUrl:"https://aistudio.google.com/app/apikey"},lmstudio:{title:"LM Studio",provider:"lmstudio",description:"One of the fastest ways to get started with local models on Mac or Windows",longDescription:`LMStudio provides a professional and well-designed GUI for exploring, configuring, and serving LLMs. It is available on both Mac and Windows. To get started: +1. Download from [lmstudio.ai](https://lmstudio.ai/) and open the application +2. Search for and download the desired model from the home screen of LMStudio. +3. In the left-bar, click the '<->' icon to open the Local Inference Server and press 'Start Server'. +4. Once your model is loaded and the server has started, you can begin using Continue.`,icon:"lmstudio.png",tags:[lr.Local,lr.OpenSource],params:{apiBase:"http://localhost:1234/v1/"},packages:[{...Ct.AUTODETECT,params:{...Ct.AUTODETECT.params,title:"LM Studio"}},...Lg],collectInputFor:[...La],downloadUrl:"https://lmstudio.ai/"},llamafile:{title:"llamafile",provider:"llamafile",icon:"llamafile.png",description:"llamafiles are a self-contained binary to run an open-source LLM",longDescription:"To get started with llamafiles, find and download a binary on their [GitHub repo](https://github.com/Mozilla-Ocho/llamafile?tab=readme-ov-file#quickstart). Then run it with the following command:\n\n```shell\nchmod +x ./llamafile\n./llamafile\n```",tags:[lr.Local,lr.OpenSource],packages:Lg,collectInputFor:[...La],downloadUrl:"https://github.com/Mozilla-Ocho/llamafile?tab=readme-ov-file#quickstart"},replicate:{title:"Replicate",provider:"replicate",refPage:"replicatellm",description:"Use the Replicate API to run open-source models",longDescription:`Replicate is a hosted service that makes it easy to run ML models. To get started with Replicate: +1. Obtain an API key from [here](https://replicate.com) +2. Paste below +3. Select a model preset`,params:{apiKey:""},collectInputFor:[{inputType:"text",key:"apiKey",label:"API Key",placeholder:"Enter your Replicate API key",required:!0},...La],icon:"replicate.png",tags:[lr.RequiresApiKey,lr.OpenSource],packages:[Ct.llama3Chat,Ct.codeLlamaInstruct,Ct.wizardCoder,Ct.mistralOs],apiKeyUrl:"https://replicate.com/account/api-tokens"},"llama.cpp":{title:"llama.cpp",provider:"llama.cpp",refPage:"llamacpp",description:"If you are running the llama.cpp server from source",longDescription:"llama.cpp comes with a [built-in server](https://github.com/ggerganov/llama.cpp/tree/master/examples/server#llamacppexampleserver) that can be run from source. To do this:\n\n1. Clone the repository with `git clone https://github.com/ggerganov/llama.cpp`.\n2. `cd llama.cpp`\n3. Run `make` to build the server.\n4. Download the model you'd like to use and place it in the `llama.cpp/models` directory (the best place to find models is [The Bloke on HuggingFace](https://huggingface.co/TheBloke))\n5. Run the llama.cpp server with the command below (replacing with the model you downloaded):\n\n```shell\n.\\server.exe -c 4096 --host 0.0.0.0 -t 16 --mlock -m models/codellama-7b-instruct.Q8_0.gguf\n```\n\nAfter it's up and running, you can start using Continue.",icon:"llamacpp.png",tags:[lr.Local,lr.OpenSource],packages:Lg,collectInputFor:[...La],downloadUrl:"https://github.com/ggerganov/llama.cpp"},"openai-aiohttp":{title:"Other OpenAI-compatible API",provider:"openai",description:"If you are using any other OpenAI-compatible API, for example text-gen-webui, FastChat, LocalAI, or llama-cpp-python, you can simply enter your server URL",longDescription:`If you are using any other OpenAI-compatible API, you can simply enter your server URL. If you still need to set up your model server, you can follow a guide below: -### Response: +- [text-gen-webui](https://github.com/oobabooga/text-generation-webui/tree/main/extensions/openai#setup--installation) +- [LocalAI](https://localai.io/basics/getting_started/) +- [llama-cpp-python](https://github.com/continuedev/ggml-server-example) +- [FastChat](https://github.com/lm-sys/FastChat/blob/main/docs/openai_api.md)`,params:{apiBase:""},collectInputFor:[{...oK,defaultValue:"http://localhost:8000/v1/"},...La],icon:"openai.png",tags:[lr.Local,lr.OpenSource],packages:[{...Ct.AUTODETECT,params:{...Ct.AUTODETECT.params,title:"OpenAI"}},...Lg]},"free-trial":{title:"Continue limited free trial",provider:"free-trial",refPage:"freetrial",description:"New users can try out Continue for free using a proxy server that securely makes calls to OpenAI, Anthropic, or Together using our API key",longDescription:`New users can try out Continue for free using a proxy server that securely makes calls to OpenAI, Anthropic, or Together using our API key. If you are ready to set up a model for long-term use or have used all ${dd} free uses, you can enter your API key or use a local model.`,icon:"openai.png",tags:[lr.Free],packages:[Ct.codellama70bTrial,{...Ct.claude35Sonnet,title:"Claude 3.5 Sonnet (trial)"},{...Ct.gpt4o,title:"GPT-4o (trial)"},{...Ct.gpt35turbo,title:"GPT-3.5-Turbo (trial)"},{...Ct.claude3Haiku,title:"Claude 3 Haiku (trial)"},Ct.mixtralTrial,{...Ct.gemini15Pro,title:"Gemini 1.5 Pro (trial)"},{...Ct.AUTODETECT,params:{...Ct.AUTODETECT.params,title:"Free Trial"}}],collectInputFor:[...La]}};var g3={};g3.byteLength=aBe;g3.toByteArray=lBe;g3.fromByteArray=cBe;var Ol=[],Qo=[],rBe=typeof Uint8Array<"u"?Uint8Array:Array,lK="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(var Ud=0,iBe=lK.length;Ud0)throw new Error("Invalid string. Length must be a multiple of 4");var n=e.indexOf("=");n===-1&&(n=t);var r=n===t?0:4-n%4;return[n,r]}function aBe(e){var t=vU(e),n=t[0],r=t[1];return(n+r)*3/4-r}function oBe(e,t,n){return(t+n)*3/4-n}function lBe(e){var t,n=vU(e),r=n[0],i=n[1],a=new rBe(oBe(e,r,i)),o=0,l=i>0?r-4:r,s;for(s=0;s>16&255,a[o++]=t>>8&255,a[o++]=t&255;return i===2&&(t=Qo[e.charCodeAt(s)]<<2|Qo[e.charCodeAt(s+1)]>>4,a[o++]=t&255),i===1&&(t=Qo[e.charCodeAt(s)]<<10|Qo[e.charCodeAt(s+1)]<<4|Qo[e.charCodeAt(s+2)]>>2,a[o++]=t>>8&255,a[o++]=t&255),a}function sBe(e){return Ol[e>>18&63]+Ol[e>>12&63]+Ol[e>>6&63]+Ol[e&63]}function uBe(e,t,n){for(var r,i=[],a=t;al?l:o+a));return r===1?(t=e[n-1],i.push(Ol[t>>2]+Ol[t<<4&63]+"==")):r===2&&(t=(e[n-2]<<8)+e[n-1],i.push(Ol[t>>10]+Ol[t>>4&63]+Ol[t<<2&63]+"=")),i.join("")}var dBe=Object.defineProperty,pBe=(e,t,n)=>t in e?dBe(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,gBe=(e,t,n)=>(pBe(e,typeof t!="symbol"?t+"":t,n),n);function hBe(e,t){let n=Array.from({length:e.length},(r,i)=>({start:i,end:i+1}));for(;n.length>1;){let r=null;for(let i=0;it.get(e.slice(n.start,n.end).join(","))).filter(n=>n!=null)}function mBe(e){return e.replace(/[\\^$*+?.()|[\]{}]/g,"\\$&")}var qy=class{constructor(e,t){Vi(this,"specialTokens");Vi(this,"inverseSpecialTokens");Vi(this,"patStr");Vi(this,"textEncoder",new TextEncoder);Vi(this,"textDecoder",new TextDecoder("utf-8"));Vi(this,"rankMap",new Map);Vi(this,"textMap",new Map);this.patStr=e.pat_str;const n=e.bpe_ranks.split(` +`).filter(Boolean).reduce((r,i)=>{const[a,o,...l]=i.split(" "),s=Number.parseInt(o,10);return l.forEach((u,c)=>r[u]=s+c),r},{});for(const[r,i]of Object.entries(n)){const a=g3.toByteArray(r);this.rankMap.set(a.join(","),i),this.textMap.set(i,a)}this.specialTokens={...e.special_tokens,...t},this.inverseSpecialTokens=Object.entries(this.specialTokens).reduce((r,[i,a])=>(r[a]=this.textEncoder.encode(i),r),{})}encode(e,t=[],n="all"){const r=new RegExp(this.patStr,"ug"),i=qy.specialTokenRegex(Object.keys(this.specialTokens)),a=[],o=new Set(t==="all"?Object.keys(this.specialTokens):t),l=new Set(n==="all"?Object.keys(this.specialTokens).filter(u=>!o.has(u)):n);if(l.size>0){const u=qy.specialTokenRegex([...l]),c=e.match(u);if(c!=null)throw new Error(`The text contains a special token that is not allowed: ${c[0]}`)}let s=0;for(;;){let u=null,c=s;for(;i.lastIndex=c,u=i.exec(e),!(u==null||o.has(u[0]));)c=u.index+1;const d=(u==null?void 0:u.index)??e.length;for(const h of e.substring(s,d).matchAll(r)){const m=this.textEncoder.encode(h[0]),A=this.rankMap.get(m.join(","));if(A!=null){a.push(A);continue}a.push(...fBe(m,this.rankMap))}if(u==null)break;let g=this.specialTokens[u[0]];a.push(g),s=u.index+u[0].length}return a}decode(e){const t=[];let n=0;for(let a=0;anew RegExp(e.map(t=>mBe(t)).join("|"),"g"));const CBe=["openai","ollama","gemini","free-trial","msty","anthropic","bedrock","continue-proxy"],BBe=["llava","gpt-4-turbo","gpt-4o","gpt-4-vision","claude-3","gemini-ultra","gemini-1.5-pro","gemini-1.5-flash","sonnet","opus","haiku"];function eF(e,t,n){if(!CBe.includes(e))return!1;const r=t.toLowerCase();return!!BBe.some(i=>r.includes(i)||(n==null?void 0:n.includes(i)))}const mD=function(e){return atob(e)},AD=e=>`<0x${e.toString(16).toUpperCase().padStart(2,"0")}>`,wBe=e=>{const t=e.replace(/<0x|>/g,"");return parseInt(t,16)};class bBe{constructor(t=(n,r)=>n>r){this._heap=[],this._comparator=t}size(){return this._heap.length}isEmpty(){return this.size()==0}peek(){return this._heap[0]}push(...t){return t.forEach(n=>{this._heap.push(n),this._siftUp()}),this.size()}pop(){const t=this.peek(),n=this.size()-1;return n>0&&this._swap(0,n),this._heap.pop(),this._siftDown(),t}replace(t){const n=this.peek();return this._heap[0]=t,this._siftDown(),n}_parent(t){return(t+1>>>1)-1}_left(t){return(t<<1)+1}_right(t){return t+1<<1}_greater(t,n){return this._comparator(this._heap[t],this._heap[n])}_swap(t,n){[this._heap[t],this._heap[n]]=[this._heap[n],this._heap[t]]}_siftUp(){let t=this.size()-1;for(;t>0&&this._greater(t,this._parent(t));)this._swap(t,this._parent(t)),t=this._parent(t)}_siftDown(){let t=0;for(;this._left(t){this.vocabByString.set(r,i)}),this.merges=this.decompressMerges(n||QBe)}getMergeIdentifierString(t,n){return this.vocabById[t]+" "+this.vocabById[n]}decompressMerges(t){const n=mD(t),r=new Uint8Array(n.length);for(let o=0;oi.charCodeAt(0));return new TextDecoder("utf-8").decode(n).split(` +`)}mapCharactersToTokenIds(t,n,r){const i=[];n&&i.push(1),r&&(t=" "+t);const a=t.replaceAll(" ",this.vocabById[29871]),o=Array.from(a);for(let l=0;l=0||(console.log("Encountered unknown character "+s+" (partial UTF-8 byte "+u[c]+" + hex + "+AD(u[c])+")"),i[i.length-1]=0)}}}return i}encode(t,n=!0,r=!0,i=!1){let a=null;if(i&&(a=performance.now()),!this.vocabById||!this.vocabByString||!this.merges){console.log("Tokenizer not initialized properly!");return}if(t.length===0)return[];const o=this.mapCharactersToTokenIds(t,n,r),l=new bBe((g,h)=>g.mergePrio{const h=this.getMergeIdentifierString(g.tokenId,g.next.tokenId),m=this.merges.get(h)+g.origPos/t.length;m&&(g.mergePrio=m,g.mergeToString=h.replace(" ",""),l.push(g))};let u={origPos:0,tokenId:o[0],prev:null,next:null},c=u;for(let g=1;g")){const g=wBe(d);i.push(g)}else this.utf8Encoder.encode(d).forEach(h=>i.push(h))}const o=new Uint8Array(i),s=this.utf8Decoder.decode(o).replaceAll(this.vocabById[29871]," ");return r?s.slice(1):s}defaultTests(t){function n(i,a){return i.length===a.length&&i.every(function(o,l){return o===a[l]})}function r(i,a){const o=t.encode(i,!0,!0,!0);if(!n(o,a))throw`Test failed. LLaMA Tokenizer Encoder returned unexpected result: expected tokenize(${i}) === ${a}, actual was: ${o}`;if(i!==t.decode(o))throw`Test failed. LLaMA Tokenizer Decoder returned unexpected result: expected decode(${o}) === ${i}, actual was: ${decode(o)}`}return r("grabbed",[1,2646,1327,287]),r(" grabbed",[1,29871,2646,1327,287]),r(" grabbed",[1,9651,2646,1327,287]),r(` +`,[1,29871,13]),r(` +`,[1,259,13]),r(" tabs out here",[1,29871,12,21175,12,12,12,12,449,1244]),r(`ax +#### +boo`,[1,4853,13,4136,13,833,29877]),r("镇",[1,29871,30411]),r("🦙",[1,29871,243,162,169,156]),r("🦙Ꙋ",[1,29871,243,162,169,156,237,156,141]),r("Ꙋ🦙",[1,29871,237,156,141,243,162,169,156]),r('The llama (/ˈlɑːmə/; 🦙Spanish pronunciation: [ˈʎama]) (Lama glama) is a domesticated South American camelid, widely used as a meat and pack animal by Andean cultures since the Pre-Columbian era. Llamas are social animals and live with others as a herd. Their wool is soft and contains only a small amount of lanolin.[2] Llamas can learn simple tasks after a few repetitions. When using a pack, they can carry about 25 to 30% of their body weight for 8 to 13 km (5–8 miles).[3] The name llama (in the past also spelled "lama" or "glama") was adopted by European settlers from native Peruvians.[4] The ancestors of llamas are thought to have originated from the Great Plains of North America about 40 million years ago, and subsequently migrated to South America about three million years ago during the Great American Interchange. By the end of the last ice age (10,000–12,000 years ago), camelids were extinct in North America.[3] As of 2007, there were over seven million llamas and alpacas in South America and over 158,000 llamas and 100,000Ꙋ🦙 alpacas, descended from progenitors imported late in the 20th century, in the United States and Canada.[5] In Aymara mythology, llamas are important beings. The Heavenly Llama is said to drink water from the ocean and urinates as it rains.[6] According to Aymara eschatology, llamas will return to the water springs and lagoons where they come from at the end of time.[6]',[1,450,11148,3304,20374,30176,29880,30426,30215,29885,30184,29914,29936,29871,243,162,169,156,15495,728,11504,11173,362,29901,518,30176,31743,3304,2314,313,29931,3304,3144,3304,29897,338,263,21849,630,4275,3082,3949,295,333,29892,17644,1304,408,263,27654,322,4870,13019,491,1126,29872,273,4185,1973,1951,278,4721,29899,1625,3774,713,3152,29889,365,5288,294,526,5264,15006,322,5735,411,4045,408,263,902,29881,29889,11275,281,1507,338,4964,322,3743,871,263,2319,5253,310,10906,22878,7226,29906,29962,365,5288,294,508,5110,2560,9595,1156,263,2846,21159,2187,29889,1932,773,263,4870,29892,896,508,8677,1048,29871,29906,29945,304,29871,29941,29900,29995,310,1009,3573,7688,363,29871,29947,304,29871,29896,29941,2383,313,29945,29994,29947,7800,467,29961,29941,29962,450,1024,11148,3304,313,262,278,4940,884,805,14356,376,29880,3304,29908,470,376,3820,3304,1159,471,16356,491,7824,3604,9306,515,7531,25493,1403,550,7226,29946,29962,450,19525,943,310,11829,294,526,2714,304,505,3978,630,515,278,7027,13494,1144,310,4644,6813,1048,29871,29946,29900,7284,2440,8020,29892,322,17602,9725,630,304,4275,6813,1048,2211,7284,2440,8020,2645,278,7027,3082,4124,3167,29889,2648,278,1095,310,278,1833,14890,5046,313,29896,29900,29892,29900,29900,29900,29994,29896,29906,29892,29900,29900,29900,2440,8020,511,3949,295,4841,892,1294,5562,297,4644,6813,7226,29941,29962,1094,310,29871,29906,29900,29900,29955,29892,727,892,975,9881,7284,11829,294,322,394,29886,562,294,297,4275,6813,322,975,29871,29896,29945,29947,29892,29900,29900,29900,11829,294,322,29871,29896,29900,29900,29892,29900,29900,29900,237,156,141,243,162,169,156,394,29886,562,294,29892,5153,2760,515,410,1885,17259,19673,5683,297,278,29871,29906,29900,386,6462,29892,297,278,3303,3900,322,7400,7226,29945,29962,512,319,962,2518,22082,3002,29892,11829,294,526,4100,367,886,29889,450,22977,368,365,29880,3304,338,1497,304,13748,4094,515,278,23474,322,5065,262,1078,408,372,1153,1144,7226,29953,29962,7579,304,319,962,2518,831,13496,3002,29892,11829,294,674,736,304,278,4094,7689,886,322,301,4425,787,988,896,2041,515,472,278,1095,310,931,7226,29953,29962]),console.log("LLaMA Tokenizer tests passed successfully."),!0}runTests(t=this.defaultTests){t(this)}}const KBe="PHVuaz4KPHM+Cjwvcz4KPDB4MDA+CjwweDAxPgo8MHgwMj4KPDB4MDM+CjwweDA0Pgo8MHgwNT4KPDB4MDY+CjwweDA3Pgo8MHgwOD4KPDB4MDk+CjwweDBBPgo8MHgwQj4KPDB4MEM+CjwweDBEPgo8MHgwRT4KPDB4MEY+CjwweDEwPgo8MHgxMT4KPDB4MTI+CjwweDEzPgo8MHgxND4KPDB4MTU+CjwweDE2Pgo8MHgxNz4KPDB4MTg+CjwweDE5Pgo8MHgxQT4KPDB4MUI+CjwweDFDPgo8MHgxRD4KPDB4MUU+CjwweDFGPgo8MHgyMD4KPDB4MjE+CjwweDIyPgo8MHgyMz4KPDB4MjQ+CjwweDI1Pgo8MHgyNj4KPDB4Mjc+CjwweDI4Pgo8MHgyOT4KPDB4MkE+CjwweDJCPgo8MHgyQz4KPDB4MkQ+CjwweDJFPgo8MHgyRj4KPDB4MzA+CjwweDMxPgo8MHgzMj4KPDB4MzM+CjwweDM0Pgo8MHgzNT4KPDB4MzY+CjwweDM3Pgo8MHgzOD4KPDB4Mzk+CjwweDNBPgo8MHgzQj4KPDB4M0M+CjwweDNEPgo8MHgzRT4KPDB4M0Y+CjwweDQwPgo8MHg0MT4KPDB4NDI+CjwweDQzPgo8MHg0ND4KPDB4NDU+CjwweDQ2Pgo8MHg0Nz4KPDB4NDg+CjwweDQ5Pgo8MHg0QT4KPDB4NEI+CjwweDRDPgo8MHg0RD4KPDB4NEU+CjwweDRGPgo8MHg1MD4KPDB4NTE+CjwweDUyPgo8MHg1Mz4KPDB4NTQ+CjwweDU1Pgo8MHg1Nj4KPDB4NTc+CjwweDU4Pgo8MHg1OT4KPDB4NUE+CjwweDVCPgo8MHg1Qz4KPDB4NUQ+CjwweDVFPgo8MHg1Rj4KPDB4NjA+CjwweDYxPgo8MHg2Mj4KPDB4NjM+CjwweDY0Pgo8MHg2NT4KPDB4NjY+CjwweDY3Pgo8MHg2OD4KPDB4Njk+CjwweDZBPgo8MHg2Qj4KPDB4NkM+CjwweDZEPgo8MHg2RT4KPDB4NkY+CjwweDcwPgo8MHg3MT4KPDB4NzI+CjwweDczPgo8MHg3ND4KPDB4NzU+CjwweDc2Pgo8MHg3Nz4KPDB4Nzg+CjwweDc5Pgo8MHg3QT4KPDB4N0I+CjwweDdDPgo8MHg3RD4KPDB4N0U+CjwweDdGPgo8MHg4MD4KPDB4ODE+CjwweDgyPgo8MHg4Mz4KPDB4ODQ+CjwweDg1Pgo8MHg4Nj4KPDB4ODc+CjwweDg4Pgo8MHg4OT4KPDB4OEE+CjwweDhCPgo8MHg4Qz4KPDB4OEQ+CjwweDhFPgo8MHg4Rj4KPDB4OTA+CjwweDkxPgo8MHg5Mj4KPDB4OTM+CjwweDk0Pgo8MHg5NT4KPDB4OTY+CjwweDk3Pgo8MHg5OD4KPDB4OTk+CjwweDlBPgo8MHg5Qj4KPDB4OUM+CjwweDlEPgo8MHg5RT4KPDB4OUY+CjwweEEwPgo8MHhBMT4KPDB4QTI+CjwweEEzPgo8MHhBND4KPDB4QTU+CjwweEE2Pgo8MHhBNz4KPDB4QTg+CjwweEE5Pgo8MHhBQT4KPDB4QUI+CjwweEFDPgo8MHhBRD4KPDB4QUU+CjwweEFGPgo8MHhCMD4KPDB4QjE+CjwweEIyPgo8MHhCMz4KPDB4QjQ+CjwweEI1Pgo8MHhCNj4KPDB4Qjc+CjwweEI4Pgo8MHhCOT4KPDB4QkE+CjwweEJCPgo8MHhCQz4KPDB4QkQ+CjwweEJFPgo8MHhCRj4KPDB4QzA+CjwweEMxPgo8MHhDMj4KPDB4QzM+CjwweEM0Pgo8MHhDNT4KPDB4QzY+CjwweEM3Pgo8MHhDOD4KPDB4Qzk+CjwweENBPgo8MHhDQj4KPDB4Q0M+CjwweENEPgo8MHhDRT4KPDB4Q0Y+CjwweEQwPgo8MHhEMT4KPDB4RDI+CjwweEQzPgo8MHhEND4KPDB4RDU+CjwweEQ2Pgo8MHhENz4KPDB4RDg+CjwweEQ5Pgo8MHhEQT4KPDB4REI+CjwweERDPgo8MHhERD4KPDB4REU+CjwweERGPgo8MHhFMD4KPDB4RTE+CjwweEUyPgo8MHhFMz4KPDB4RTQ+CjwweEU1Pgo8MHhFNj4KPDB4RTc+CjwweEU4Pgo8MHhFOT4KPDB4RUE+CjwweEVCPgo8MHhFQz4KPDB4RUQ+CjwweEVFPgo8MHhFRj4KPDB4RjA+CjwweEYxPgo8MHhGMj4KPDB4RjM+CjwweEY0Pgo8MHhGNT4KPDB4RjY+CjwweEY3Pgo8MHhGOD4KPDB4Rjk+CjwweEZBPgo8MHhGQj4KPDB4RkM+CjwweEZEPgo8MHhGRT4KPDB4RkY+CuKWgeKWgQriloF0CmVyCmluCuKWgWEKZW4Kb24K4paBdGgKZXMK4paB4paB4paB4paBCuKWgXMK4paBZAphdApvcgphbgriloFjCmlzCnJlCml0CuKWgXRoZQphcgpsZQriloF3CuKWgXAKb3UKYWwK4paBZgriloFtCmVkCuKWgW8K4paBYgpvbQppb24KaW5nCmljCmFzCmVsCmVudAriloFpbgriloFoCm5kCmV0CuKWgWwK4paBbgpzdAriloF0bwpjaAriloFJCnJvCuKWgeKWgeKWgeKWgeKWgeKWgeKWgeKWgQppbAriloFvZgpkZQpjdAriloEoCmFtCuKWgUMK4paBZGUK4paBUwriloF1CuKWgUEK4paBXAriloFlCuKWgWFuZAriloFUCm9sCuKWgXYKaW0Kb3QKYWQKdXQK4paBZwplbQp1cgppZAriloEqCmlnCnJhCuKWgXJlCuKWgWlzCnF1Cm93CuKWgU0KZXN0CuKWgXkKc2UKdmUKY2UKaWUKdW4K4paBUAriloFCCmFnCnVsCuKWgT0KaGUKZW5kCm9kZQp0ZXIKbWVudApvcwriloFECmlmCmF0aW9uCuKWgWZvcgriloFyCuKWgUwK4paBeW91CuKWgWJlCmx5CnZlcgphYgp0ZQriloFpdAriloFvbgpyaQp1cwriloEiCuKWgXdoCuKWgWNvbgriloFICuKWgXN0CmlyCuKWgUUK4paBRgpjawriloFhbgp0aAplZwpheQppdGgK4paBUgppc3QKYW5kCuKWgXRoYXQK4paBYWwK4paBJAriloEjCm9kCnVtCuKWgVcKaHQKY29kZQriloFHCmF0ZQplc3MK4paBTgplcmUKcHAK4paBYXMK4paBc2UK4paBcHJvCuKWgXdpdGgKcGUK4paBawplcnMKcHQKKTsKbG8K4paB4paB4paB4paB4paBCuKWgWNvbQphbWUK4paBYAriloFDb20KaWEKYW50CuKWgWxhCuKWgXsK4paBZW4KY3Rpb24K4paBZXgKbGQKdWIK4paBagpsYQp1ZQriloFKCmljaAriloFkbwriloFPCuKWgXF1Cml2Cm9ydAphcnQK4paBdW4K4paBIyMK4paBdGhpcwprZQriloFoYQriloEtCm91dAriloFUaGUK4paBbm90CuKWgW5lCmlsbAriloFsZQpjaQpyb20KaW5lCi8vCm9wCmVnaW4K4paBQ29tbWVudAriloHiloHiloHiloHiloHiloHiloHiloHiloHiloHiloHiloHiloHiloHiloHiloEKYmVnaW4K0YHRggphc3MKaXoKKS4Kb2cK4paB0L8K4paBb3IK4paBd2FzCuKWgWF0Cm91cgriloFpCmFpbgriloFLCtC90LAK4paBVgpnZQriloFzdQphcAphZ2UKb3VsZApuZQphdgp4dApvcmUKaWxlCi0tCuKWgdCyCuKWgWJ5CmxpCmF0aArRgNCwCmJlcgphY2gKYWxsCuKWgVRoCnVsdAriloF9CuKWgVUK4paBdXMK4paBegp1c3QK4paBaGF2ZQpsaWMK0L3QuAriloFjYW4KdHIKY29tCiksCuKWgUluCmluZAplbGwK4paBZnJvbQrQvtCyCnRvCuKWgVsKYWJsZQpvc3QK4paBY2gKZWN0CmlnaHQKaW50CuKWgScK4paBYXJlCuKWgWltCuKWgXNoCuKWgTwK4paBQW4K4paB0YEKYXRhCmlyZQriloF0cgpjb24Kb3JkCml0eQphcmQK4paB4paB4paB4paB4paB4paBCuKWgWhlCuKWgWJ1dApvYwo9IgriloFwcgp1cmUKcGVyCmFjawpvcmsKb25nCmFucwrQutC+CnBsZQriloFkZXMKb2sKb3JtCndlcgphawpwcgphc2UK4paBZWwKcGgKYWMK4paBdW5kCuKWgWFyCuKWgWlmCnVkCnBzCml0ZQpibGUK0L3QvgpmZXIKcGwKaXZlCmFuZwplbnMK0YDQvgriloFzbwpzbwphc3QKKCkKc3dlcgpydQppZXMK4paBOgphdQpvdgrRgNC1CtCz0L4K4paBZGVyCuKWgW15CuKWgXdlCuKWgW1lCm50CuKWgWFkCnVybgriloF5b3VyCjovLwphcmUK4paBYWxsCmZmCmlvCmVzdGlvbgppbWUK4paBZXIKbGFzcwriloHQuAriloF3aGljaApvbWUKb250CuKWgXBhcgriloFtYQriloFZCiIsCuKWgdC+CmZ0CmlhbApjYwpvdW5kCuKWgWxpCuKWgXJlcwpldGgKamVjdAriloFhcHAK4paBU3QKaWNlCuKWgWFtCmFjdAriloFkZWwKZ3IKYXRlZAppZXIK4paB4paB4paB4paB4paB4paB4paB4paB4paB4paB4paB4paBCuKWgWFiCuKWgWV0CmFsbHkKLi4KcG9ydAppawriloFwZXIK4paBY29udArRgNC4CtC60LAKc2VyCtC70LgKbGwKaWV3CmlnbgpfewpwdXQKb25lCnVuY3Rpb24K4paBZGkKYXJ5Cml0aW9uCm1hCtC10L0KZ2V0CuKWgWxvCuKWgXZhbAriloFRCnJhbgriloHQtAplbmNlCuKWgXdvcmsK4paB0L3QsAppcAppdGVtCnlwZQriloEmCuKWgWhpcwriloF1c2UKZGVyCuKWgUFuc3dlcgriloF3aWxsCml6ZQrRgtCwCmxvdwriloFDaAriloFnZXQKaWRlCm91cwppbmsKcHRpb24K0LvQsAp0dXJuCnVuZwplYwp1Zwpmb3JtCnJlcwpodHQKb3VnCtC70YwK4paBbm8KY2wK4paBcm8K4paBb25lCnR0CmNyaQpkdQriloF1cArRgtC+CigiCuKWgW9iCndlCm9yeQriloFlc3QKZXJ5CmllbApzdHIKb2IK4paBcXVlCmlhbgriloFvdXQK4paBcGwK4paBbmV3CtC60LgK4paBKwpyeQpvdGgKdGhlcgriloF2YXIK4paBd291bGQK4paBc2VyCnRlcm4KdGV4dAriloF0aGVyZQppc2gKcm9yCtGC0LUK4paBc2V0CuKWgUAK4paB0L/QvgriloF0ZQpleAriloFyZXR1cm4KYWlsCuKWgWFueQriloFJdAriloFmdW5jdGlvbgp7XAonLArDqXMKYWxlCtCw0L0K4paBd2hlbgppYgriloFnbwphbmNlCuKWgWhhZAriloFRdQriloFjb21wCtC70LUK4paB0LcKbWF0aAriloFoYXMK4paB0LwK4paBcHJlCmVuZXIK4paBcGFydAplbGYK4paBZGllCuKWgWxpa2UKcmF5Cmlyc3QK4paBZGlzCuKWgW1hbgpyaXQK4paBdGhlbgriloFjbGFzcwpwcm8K4paBcG8K4paBdXNpbmcKZWIK4paBY29kZQpvd24K4paBc29tZQpjZXMK4paBJFwK0LXRgApsZWN0CuKWgWF1CmlzY2gK4paBY29sCuKWgeKAkwp1cApvbnMK4paBYWRkCmlsZAppc3MKdmFsCm91bnQKbGVzCnZlbnQK4paB4paB4paB4paB4paB4paB4paB4paB4paB4paB4paB4paB4paBCuKWgVoKSW4Kcm93CmVhcgphdGlvbnMKYWgKcXVlCnVibGljCmFuawriloFzcAriloFXaAotLS0tCnNrCmV3CmFncwrRgtC4CmFubgriloHigJQKZXJ0CmFjZQpzY2gK4paBbmVlZAriloHDoAppZW4Kb3VnaArQvdC1CuKWgWRlZgppagplcm4K4paBd2hhdAriloFBcgp3bwptbAo8LwriloFSZQriloFlcwriloFpbnN0CmJvCmF6CuKWgSMjIwriloHQsQplcm0K4paBQWwKbGVkCtC00LAKdGVuCnNldArQu9C+CuKWgWNvbW0Kc2gK0LLQsAriloEvCuKWgWRhdGEK4paBLy8KXSgK4paBc3RyCm9zZQriloFVbgp2ZW4KU3QKLi4uCuKWgdChCnlzdAriloHCqwppY2sKaXgKcGFyCuKWgdGDCuKWgXdhbnQKbmcKb3RlCuKWgWdyCuKWgWR1CuKWgS4KdW5kCuKWgW9ubHkK4paBc2EKZWx5CnZlcnMK4paBZW50CikpCignCuKWgW1vZAphdmEKdG9uCuKWgXNob3VsZAplbWVudAriloFmb3JtCuKWgWFsc28K4paBc2MKaW5ncwriloFZb3UKw7NuCuKWgWtuCigpOwriloF8CuKWgXdlcmUKc3MK4paBUXVlc3Rpb24KaXNlCuKWgXRoZXkK4paBRGUKb25kCuKWgXNvbAriloFmb2wK4paBbW9yZQriloFoZXIK4paBXwriloHDqQphdGNoCmZ0ZXIK4paBY3JlCmxvY2sKdHJpbmcK4paBVGhpcwp6ZQphZG8KdWxsCmdlcgpiZQriloFvdGhlcgriloFUYWdzCnV0aW9uCmljdAriloFob3cK4paBeAriloFTZQriloFjaGUKY3JpcHQK4paBanVzdAriloFwb3MKYW5nZQppZmljCnJlZQp9fQriloF0aW1lCmFwcArQvdGLCuKWgWZpbGUKYXJrCmljYWwK4paBZmlyc3QK4paBaW50CuKWgdCSCuKWgUhlCnRhCnVtZW50Cm9ycwpsZW1lbnQKcmFjCuKWgWFnCuKWgWRvZXMKeW4KcmVhZAp1YWwK4paBTGUKeXMK4paBZW0K4paBbnVtCnZlbArQtNC4Cm92ZXIK4paBZGlmCmV0aG9kCuKWgUlmCuKWgXNwZQp5bQriloF0aGVtCuKWgWludG8K4paB4paB4paB4paB4paB4paB4paB4paB4paB4paBCuKWgWxlcwriloFpdHMKZXNlCmllbGQK4paBcHVibGljCuKWgdCfCuKWgWRlbgp5c3RlbQpvZgriloFvdmVyCi0+CuKWgWZpbApuYW1lCmluYWwK4paBaWwKYW1wbGUK4paBd2F5CmljYQrQstC+CmNlc3MKaXR0CnVjaAriloF3aGVyZQrQvNC4Cm9yZwpodHRwcwriloF2bwppZW50Cm92ZQriloF2YWx1ZQplbmcK4paBTGEKXnsKcmVmCmllZApFUgriloFzdGF0CmZpZwptZQriloF2b24K4paBaW50ZXIKcm9pZAphdGVyCuKWgXRoZWlyCuKWgWJldAriloFlaW4KfVwKIj4K4paBc3ViCuKWgW9wCuKWgWRvbgp0eQriloF0cnkK4paBUHJvCuKWgXRyYQriloFzYW1lCmVwCuKWgXR3bwriloFuYW1lCm9sZApsZXQK4paBc2ltCnNwCuKWgWF2CmJyZQpibGVtCmV5CuKWgWNvdWxkCuKWgWNvcgriloFhY2MKYXlzCmNyZQp1cnIKc2kK4paBY29uc3QKdWVzCn0kClZpZXcK4paBYWN0CuKWgWJvCuKWgdC60L4K4paBc29tCuKWgWFib3V0CmxhbmQKbWVyCuKWgWxpc3QKY2FsCuKWgWltcG9ydApjb2wK4paBbmEKbmEKOjoK4paBd2hvCuKWgWVycm9yCuKWgVgKYXRvcgpleHQK4paBYmVlbgrDqXIK4paBcnVuCnBvcwriloFjbAoqKgriloHQmgp1bGFyCmF1c2UK4paBcmVnCuKWgWtub3cK4paBc2VlCuKWgWhpbQpuaW5nCuKWgdC30LAKYXRlcwpmb3JlCmlvbnMK4paBaGVsCnV0ZQriloFyZW0K4paB0LPQvgriloFNYXIK0YDRgwp2aWNlCmlyZWN0Cm5lcgriloF1bmRlcgpyaWIKaHIK0YfQtQriloFBcwriloFlbmQKZW1iZXIK4paB0LAK4paBYXR0CmluYQpzb24K4paBZm9sbG93CuKWgVNjaApwZWN0CuKWgXJlbAriloFTbwriloFsb29rCmFiZWwK4paBcHJvYmxlbQriloF2YW4Kc3Ryb25nCmNvCnBvbgpjYQphZGEKIjoKY29uZAphbWIKfSwKcXVlc3QK4paBYXV0CuKWgXJlc3VsdAriloFtYXkKUmUKaHR0cAopOgriloFBbmQKcmVkCuKWgUhvdwpwbwrRgdC60L4KYXR0Cm91cApjZWQK4paBdHlwZQriloF0aGFuCuKWgWNvbnMKdWYK0YbQuAriloFxdWVzdGlvbgpyYXBoCmlnaAriloHQnAriloFodHQKaW5zCmRlbgriloFkYQriloF2ZXIKb2gK4paBPT4Kcml2CnVkZQriloFGb3IK4paBcmEKZnJhYwrQvNCwCuKWgWFmdGVyCn17CuKWgW1ldGhvZAoiKQphbXAKYXNoCuKWgXJlYwriloFkaWZmZXIKT04KYXgKYW1lbnQKb3VyY2UKQ29uCml0cwpOYW1lCm1hbgriloFiZWMKY2hlCuKWgUVuCmFqCuKWgWdlbmVyCklOCuKWgWlkCmFnZXMK4paBbG9jCmZvCmJyCuKWgXNoZQpQcm8K4paBdW5hCuKWgdC6CmV0YQpsb2cKb2xvZwriloFzdXIKYXJnCuKWgS0tCmt0CihcCm1pbgriloFsaW5lCuKWgXZhcmkK0YHRjwppY3MK0L3Rjwp2ZXJ5CmFkZAriloFvYmplY3QKSWQK4paBQnV0CuKWgWNhc2UK4paBbWFrZQriloFjYWwK4paBcGFzcwrRgdGMCmVzc2lvbgpuZXQKLiIK4paB0LMKw6RyCtC00LUKbm8KYXRpbmcKYXRvCmxpbmUK0LLQuAriloFFeAriloFhc3MK4paBdmVycwrQu9GPCuKWgWVkCnVtbgpvdGhlcgrRgdGC0LAKYXRpdmUKU3RyaW5nCuKWgWxvcwp3bgriloFhbnN3ZXIK4paBbGV0CuKWgXBlCmVudHMK4paBZmUKaW5jZQpuaQppZGVyCm93cwriloF0ZXN0CuKWgWhlcmUKcm9sbAriloFjYWxsCnJ1Y3QK4paBcG9sCmFpdAriloFiYWNrCmhvCkV4CnJlc3MKU1QKcmllZApkYXRlCtC10YIK4paBZGlkCnRpbmcK4paBRWwK4paBZGVtCikkCtC+0LLQsAp1cnJlbnQKbGFjZQpyaWdodApyZW4K0L/QvgriloFlYWNoCmN5CmJsb2NrCmRhdGEK4paBJQriloFhYwriloE9PQrDvHIK4paBcG9yCmFzawphcmNoCmFtZXMK4paBQ29uCtGH0LAK4paBb2ZmCuKWgWZpbmQKY29udAriloFub3cKd29yawphdGlvbmFsCmRkCmNpw7NuCuKWgdCQCmF1bHQKTGlzdAriloFleHQKdXJzCmFrZQp1bGUK4paBcG9pbnQKQVQKYXV0CuKWgXRyYW5zCuKWgWNvCuKWgXJlYWQK4paBdXNlZArRgdC60LgKYXJpCkxFCmV0ZXIKb3VuCmV2ZXIKc2VsZgppbmVkCmlkdGgKdXgKanMK4paBc3VjaAriloFJcwrDqWUKZnVsCuKWgWRpc3QK4paBYnUKaXRlbWl6ZQpDb250CmplCtGB0LgK4paBcHJvdgpiYgp3YXJkCmVzZW50CmVyc29uCmFua3MKd2gKbm90CuKWgVdlCmthCnJvcAphdHVyCmFscwriloFiZWwKw7ZyCmZyCuKWgWV4YW1wbGUK4paBaW5jbAphbWlsCuKWgdGA0LAK4paB4oCcCuKWgXN0cmluZwriloF0aGluawpUaAriloF0ZW0KYXZlCuKWgUZyYW4K4paBbnVtYmVyCuKWgXNpCmltZXMKdGVtCm15Cmxlcgpsb2FkCj09CuKWgWhhbmQKemEK4paBYmVjYXVzZQriloFzY2gKdm8KdGhpcwpJRArDo28K4paBc3RhcnQK4paBd2FyCuKWgWhlbHAKdHMK4paBY2hhcgriloFwaAriloFtaW4KdGlsCnJpdGUKLS0tLS0tLS0KZWxzCuKWgW1pdAplZGlhCtC60YMK4paBU2gKYW55Cl07CuKWgdCRCmlxdWUKZGEKZWYKZGV4CuKWgXByb2R1CuKWgdCdCmdyYW0K4paBT3IK4paBZ3JlCnF1b3RlCmxlZwpvcm4K4paBaW5kCuKWgXBvc3QK4paBZGVwCl0sCnZpCuKWgXVzZXIK4paBPgpsaWNrCuKWgXZlcnkKZXRoaW5nCuKWgWFycmF5CuKWgWd1CuKWgWR1cgpgLgrRgtGMCmxpY2F0aW9uCtGB0YLQuAplawppY28K4paBZGF0CtC+0YAKaHRtbAppb25lCuKWgWRpZmZlcmVudAriloFjaGVjawriloFmcgriloFFcgriloF0ZXh0CtC90ZYKaWNodApzdGFjawpFTgpyYWcK4paBZXZlcnkKQXIK4paBYmVmb3JlCmFsc2UK4paBZmluCuKWgWTDqQriloF0aGVzZQriloFkZXQKVmFsCmNlcHRpb24K4paBYW5kcm9pZApibG9ja3F1b3RlCuKWgWplCmZpbGUKYXRzCuKWgdC00L4KZXNzYWdlCuKWgWFnYWluCmF3CkNoCndlZW4K4paB0JQKZm9yCmNpYWwKcGxheQpwcmUKaWRhCuKWgVBhcgpueQpyYWN0CuKWgXN1cHAKYXNlZApsZWN0aW9uCuKWgWRhbnMKYWlyCnJvbAriloF0aHIKRGF0YQpsaWNoCuKWgdC/0YDQvgriloFsb25nCuKWgXNlY29uZAp1YWxseQppbmVzCuKWgWZvdW5kCmVuZ3RoCnlwCmVhZAriloFsb2cKdWkKbmV3CuKWgdCgCmdvCmF1cwpvZHkK4paBc29uCtC80LUKZXJvCnZlZApzdWIK4paBcmlnaHQKdmlldwriloFmb2xsb3dpbmcKJykKIik7CuKWgXNhaWQK0LbQtQrRh9C4CtGC0YMKb3R0CtGB0LUKYXJzCiQuCmdnCuKWgWJyCm9vbAp5bGUKdXNlCuKWgXNob3cKbGVhc2UKY2lhCuKWgWRpcmVjdApkb2MK0LDRgAptcwriloFnaXYK4paBZXhwCnFsCtC00YMK0LLQtQriloFCZQpDb20KaXRlcgpSRQptcAptZW4K4paBUm8KTUEK4paBQ29sCmlzdGVyCuKWgXdlbGwK4paBPC8KYXlvdXQKYXR1cmUKaXZlcnMKenkK4paB0L3QtQriloFtZXQKdW5lCnl0aApUeXBlCuKWgWVsZW1lbnQK4paBbGluawptb2QK4paBYmV0d2VlbgpjZXB0CnF1aXJlCuKWgXRocm91Z2gK4paBd2hpbGUK4paBT24KdGhlCsOtYQriloFzb21ldGhpbmcKdm9sCuKWgW1vc3QKc2MKdXNzCuKWgWNhcgriloFzbQriloHRgNC+CmFubwpsZWZ0CnZhCuKWgXRydWUKKCQKZW1zCuKWgW11Y2gKw6FzCuKWgU5ldwriloFwcm9wZXIKZXJhCml0ZWQK4paBZG9jCmljZXMKVGhlCuKWgT8K0YHRgtC+CmZsCuKWgXNwZWMKZW5kZXIKd2F5CuKWgXNlbGYK4paBZXZlbgrRltCyCuKWgdGB0LUK0L3QuNGPCuKWgVByCuKWgWtlCmVtYgriloF0YWJsZQriloFlcXUKbGllbnQKdGQKcGFydAriloFwcmludAriloF1bmUKaWZ5CuKWgS0+CmVuZQriloFtb24K4paBZGVjCuKWgXN0aWxsCuKWgdC+0LEK4paBVHIK4paB0YQKaWZlCmlzbQpieQpyYXcKaW9yCuKWgW1lZApvcmxkCuKWgWNvbXBsZQp3dwriloFhcnQKcm9uCuKWgdCTCuKWgU15CuKWgWFscwpyZWN0CuKWgWF1ZgriloFkb3duCmF0aGVyCkNvbApUZXh0CmJhY2sKJCwK4paBeWVhcgrQvNC+CnBpCuKWgUdyCnJlYW0K4paBcmVwCmJmCnd3dwriloF3dXIK4paBb3JnCmludGVyCuKWgURpZQriloFiZWluZwoiLgpsYWJlbAriloFjZW50CmphdmEKYmFyCmFudGUKYW5hCl9fCuKWgXNvbHV0aW9uCuKWgdCeCuKWgWZsCuKWgWNyZWF0ZQppY2kKc3RlCnl0aG9uCnVudAphc29uCmZlcmVuY2UKU0UK4paBbm9uCmFuZQriloFpbnMKYWRlcgpfe1wKUmVzCuKWgW1haW4K0L/QuAriloHiloHiloHiloHiloHiloHiloHiloHiloHiloHiloHiloHiloHiloEK4paBVGhlcmUK4paBcG91cgpSTwpgLApsaXNoCmJqZWN0CmNjZXNzCuKWgW9yaWcK4paB4paB4paBCmlzY2hlbgpvd2VyCuKWgWhldAp1YwriloFlbHNlCsK7LgriloHQvtGCCmVxdQpzaWJsZQp0ZXN0CnN0YW5kCsOpbgpldHMKR0UKaWRlbnQK4paB0LUK4paB0L/RgNC4Ci4sCuKWgWRhcwpvY2sKLCIK4paBdm9sCuKWgWZvCuKWgXBhcmEK4paB0KIK4paBQ2FyCnJhbAriloFTcAp2YXIK4paBcGxheQpvdXNlCuKWgdGC0LAKaWNhbGx5CuKWgWNvbnRhaW4KcG9uc2UK4paBU3RyaW5nCsOhbgriloFib3RoCmtlbgpBUgrQtdGA0LUK4paBSWwK4paBaXNzCuKWgW9wZW4K4paBKQriloFXaGF0CmZlCnJpdmF0ZQpyZWcK4paBd2l0aG91dAriloF6dQp2aXMKZmxvdwriloFodHRwCmFiYXNlCuKWgXdvcmQK4paBY2hhbmdlCuKWgXdvcmtzCuKWgWdlCuKWgSEK4paBZWVuCml0bGUK4paBZXZlbnQKd29yZAphbmRvClNCCnJlbQriloFmaWVsZAp2aW5nClNlcgriloFvdXIK4paBcXVpCuKWgW9wZXIK4paBaXN0CmRlZgriloFtYWRlCtC90LjQtQpweAriloFtZW4Kcm0KYWlzCmNlbnQKbGlzdApUbwriloFUbwpqYQp2ZXJ0CuKWgW1hcgp2YWx1ZQriloHigJ4KIjsK4paBYXVzCuKWgUJyCm9sZQriloFtdWx0Cm91Z2h0CuKWgW1hdAriloF2aWV3CmZpbAriloHRgdC+CtCz0LAK4paBdm9pZAriloFnb29kCtCx0L4KQ1QK4paBbWFueQpiZW4K4paB0LLQvgriloHQutCwCuKWgXN5c3RlbQppbm8K4paBYW5vdGhlcgriloFyZXN0CnVzZXIKaWxpdHkKYWkK4paBbWlnaHQKdXN0b20K4paBb3JkZXIK4paBVmVyClNTCn0pCuKWgWVmZgrQtNC+CmV0dAriloFzaWduCtC80YMKSVQKc3RyaW5nCmVsbGUK4paBc2luZwpjdWwK4paBdHJ5aW5nCuKWgWJlZwriloFwYWdlCtGF0L4K4paBQ2FuCuKWgVNlcgorKwriloFtdXN0CuKWgXZhbHVlcwriloFrZXkKaWJsZQpdLgppcmQK4paBcHJvZ3JhbQpyb2xsZXIK4paBY29ubmUK4paBc2F5CuKWgXBhcmFtCmFjaGUKdmVsb3AK4paBc2VsZWN0CuKWgWZhbWlsCuKWgWxhc3QK4paBVGhhbmtzCuKWgXBvcAp9LgplcQriloFkb2VzbgpbJwriloF0ZXJtCuKWgXLDqQriloFkb2N1bWVudArQv9CwCtC70YMKYXRlZwouKQpsaW5nCmlvbmFsCmFibGVzCuKWgXRhawp1dHRvbgriloFhcmcKdHlwZQriloFzdXJlCuKWgXJlYWwK4paBd2ViCuKWgWN1cnJlbnQK4paBUGwKY2hvCm1lbnRzCuKWgUpvaApvdHMK4paBZXhpc3QK0L3RgwriloFmw7xyCuKWgdC40LcKZG8K0L3QvtCz0L4K4paBbGFzCuKWgW51bGwK4paBaW5mb3JtCuKWgdCbCuKWgXZlcnNpb24K4paBY2hhbmcKYWdlcgriloFDb21tCtC70ZYKdXNoCuKWgUdlCuKWgWhpZ2gK4paBaW5wdXQKb2dsZQpyb3MKYm94CmdlbgriloFzdGUK4paBbG9jYWwKSW0K4paBcHJvY2Vzcwp0ZXJuYWwKaXplZArQs9C4CsOpdAriloFJbmQK4paBb2NoCmx0CuKWgWNvbHVtbgriloF0cmllZAriloFjb21tYW5kCuKWgWJlc3QKYXN0ZXIK0LfQsAriloFwcmltCuKWgW1vZGVsCuKWgdGWCuKWgXRob3NlCml0aWVzCsOocmUK4paB0YDQtQrRmNC1CtGI0LgKcXVlcwriloFBbQriloFvd24KbGluCtC30LgKVmFsdWUKdGhpbmcK4paBLAriloFUZQriloFzdHVkCuKWgXVtCuKWgXNlcnZlcgppbGxlCuKWgXB1dAphdGl2Cmd5CtC+0LLQuApyYWYK0L7QstC+CuKWgXd1cmRlCuKWgVdoZW4K4paBZGl2CmFudHMK4paBdGVyCuKWgXBhcnRpYwriloHRggriloFEbwriloFObwpzZXJ0CmlkbwptYXRoY2FsCmFkZQriloFJSQpsZWFyCm9ncmFwaAplbnNlCuKWgXJvdwpudW0K4paBcG9zc2libGUK4paBc2luY2UK4paBQm8KY3Rpb25zCuKWgUltCk9SCtGG0ZYK4paBaWRlCm1hcAriloFjb3JyZWN0CnZlcwpwaHAK4paBb3V0cHV0CuKWgVBoCkFMCmFyZWQKXFwK4paBaW1hZ2UKZXNjaArQttC4CuKWgWNvbmYKcG9yCnF1ZXJ5CnVyZXMKaXVtCmVuZHMK4paBQWIKU0JOCtGW0LQKZXRoZXIKcHRpb25zCml0dQpsaWIKbnMKa2kK4paBd29ya2luZwriloFjb21vCuKWgVRoZW4KTUwKa2V5CmNsYXNzCm9wbGUKaXR0bGUK4paBbWF0Y2gKd2F5cwptYXRoYmIK4paBcmVxdWlyZQphbHQK4paBdmlzCuKWgWJsCuKWgWNhbGxlZApJdGVtCnVyYQp2ZWMKZW1lCuKWgWRlbGxhCmVtYnJlCnVyZwpTZQriloFyZXF1ZXN0CmlzY2hlCuKWgXBvcnQK4paBaW5zdGVhZAo9XAriloHQowpob3IKZW50ZQp1bWUKZXJkCtGB0LAK4paBd2h5CnJpc3QK4paBcGVyc29uCuKWgS4uLgriloFwcml2YXRlCuKWgXRvdApwaGEKaWZ0Cml0YQpsb2MK4paBb2xkCtC+0L0K4paBbmVsCiddCnRpCmlldApjaXRlCnBsZW1lbnQK4paBYWJvdmUKa3MKcmVhZHkK4paBY29tZQpzZWN0aW9uCuKWgVBvbAriloF3cml0CuKWgWh0dHBzCuKWgSQkCuKWgcK7CuKWgWJ1aWxkCml0bwriloFjb25zaWRlcgphZnQKQXBwCixcCmluZG93cwpjb21tCuKWgTsKZ3JvdW5kCuKWgXBsYWNlCkJ5CuKWgXByb2plY3QKT2JqZWN0CuKWgXJlcHIKZW5jZXMKaW5kb3cKenQK4paBZmlsZXMKY3oKaXZpdHkK4paBaW5pdAriloFwcm9iCuKWgXNrCm9ydGgKaW1lbnQKb3VibGUKYXRhbAppcmMK4paBw6gK4paBYnJlCmlzdGEKaW5wdXQK4paB0JgK0L3QvtC5CnN1bQpwYXRoCuKWgWNvdXIK4paBdG9vCuKWgUFkCuKWgUd1CuKWgWZhbHNlCuKWgWZ1bgriloHRgdGCCm9vZArDqHMK4paBZW5jCmJvbApybAphcmdldApvcmRlcgriloFtZWFuCtC/0LUKaWdlbgriloHQv9GA0LUKd2lkdGgKOw0KaXRvcgriloFzdGF0ZQriloFncmVhdAplbm4KYmluCkVyCk1vZApvegriloF3b24K4paBZmFjdAriloFqYXZhCuKWgVVuaXZlcnMK4paBY2FwCmlzdG9yCn0oCmt1Cml0aGVyCmFsZXMK4paBb3UKcm9zcwriloF0YWtlCnJpeApsb2IK4paBZWluZQphc2VzCuKWgWFjY2VzcwppdMOpCmlzdHIKaXphdGlvbgriloFhcHBybwpiYWxsCuKWgW1hawp9XgriloFDb25zCnByZXNzCnNlcnYKKCkuCmFmCuKWgXJlZgopXAriloFjb250aW4Kc3UKaXZlcgriloFjb25kCuKWgWV4cGVjdAriloFjaGFyYWN0CmJlcnQKZWx0CnRlcnMKc2NyaXB0CuKWgUVkCmFwdAonKTsKcHJpbnQK4paBc2l6ZQriloFzaWNoCmZhY2UKZW5kZW4K4paBQW1lcgppZmllZArDs3cK4paBU3UKdGVzCm1lZAriloFSZWcKc29sZQriloFpbmNsdWQKaW5pCmluY2kK4paBcGxhCuKWgWxlZnQKZGYKUGFyCuKWgUFsbAriloFvY2MK4paBQXQK4paBY3IKUXUK4paBZ2l2ZW4K4paBU3lzdGVtCmljYW4K4paBZmluYWwKaXRpb25zCuKWgdCx0YsK4paBcGVyZm9ybQpBTgriloFNZQp1cm8K4paBVGhhdArQs9GA0LAK4paB0J/QvgriloHQstC4CmFibHkK4paBcHJlc2VudApkdWN0CnJpYwriloFFbmcKdHJ5CuKWgWxhcgpibAppZGQK4paBw6RyCm9yYQpMTApvc3MK4paBSVNCTgriloF0aHJlZQpqbwpuw60KcmMK4paBZmFyCuKWgU5vdAriloFsaXR0bGUKZGlzCmF0aQpmdW5jdGlvbgriloFhYmxlCmxlc3MK0YHQvgriloFwYXRoCuKWgXByZXMKbG9zZQpQSQriloFpc3N1ZQphY2thZ2UKdGltZQppZ2UKYW1zCuKWgUNsCmFpbHMKYWxrCmlpCtGI0LUKcGVuClFMCuKWgWVhcwpSTApjZWwK4paBc2wK4paBYXNrCuKWgW5vbQriloF0b3AKaWRlcwppbmRleArDqW0K4paBaGFwcApveApjZAriloFiZXR0ZXIK4paBbG9hZAphZG9zCnplbgriloFjZQriloFmYQriloFKb2huCklNQQriloFCYXIKb3ZlcmZsb3cK4paB0LTQtQpuZXNzCmNlcgriloFIZXJlCnJldAriloFzegphbWJkYQpvcHkKdXJsCnB5CnJ0CuKWgXVuZGVyc3RhbmQKYcWCCmhlcgojIwriloFjaGlsZAriloFleGVjCuKWgWFwcGxpY2F0aW9uCuKWgXN0cnVjdAriloHRjwpGaWxlCuKWgWNlcnQKaXNvbgriloF2YXJpYWJsZQpERQpycwriloFyZWFsbHkKUG9ydApiYQriloFCZXIK4paBaW50ZQriloFzdGF0aWMK4paBY29uZmlnCuKWgVNoZQplc3Rpb25zCuKWgXBsdXMK4paBaGFiCm9wZQriloFtdXMK4paBY291bnQKTUUK4paBc3VwcG9ydAriloFwZW9wbGUK4paBYmVoCuKWgWFscmVhZHkKVHIK4paBZG9uZQpkZW0Kc2l6ZQphbHBoYQriloFkaXNjCl0pCuKWgU1hbgriloFtaWwK4paBc3RhbmQK4paBZ3JvdXAK4paBc21hbGwK4paBbWFnCtGB0YLRjAriloFkZWZhdWx0CuKWgXNpbmdsZQpsaW5rCmNsdWRlCuKWgWVhcgppbGFyCioqKioK4paBZml4CmxleQriloFwYXMK0L3QuNC5Cmlzc2lvbgriloFpbXBsZW1lbnQKaXRjaAriloHQs9C+0LTQsAriloFhbHdheXMK4paBSmFoCnByaW5nCsOnw6NvCnBsYXRlCuKWgWRlc2NyaQriloFoZWFkCmluaXQKb2dyYWYK4paBcXVlcnkKaXZlZAriloFpbmcKcHR5CmhhCuKWgW1vdgriloHRjQpldHRlCmlseQriloFnb3QKaWxlZAppY3JvCuKWgXdyCtGA0Y8K4paBbmV2ZXIKb3JlcwriloFiYXMKaW9zCmxhY2sKYWludAp2aW91cwriloFnaXZlCmlkYWQKRW4K0L3Ri9C5CnRhYmxlCuKWgdCd0LAK4paBcGF0CtGC0L7RgAphbmd1CmxveQriloFzZWcKYXJyYXkK4paBRmwK4paBaW5kZXgK4paBc3cKSU1BR0UK4paBa20K0LHQuApDbGFzcwplbmEK0LzQtdC9CmNvbXAKYXR1cwpyYXAK4paBTGlzdApFcnJvcgriloF0eXAK4paB0LzQsApjcwonOgpqaQriloFIb3dldmVyCuKWgdGC0LUK4paBYmVsb3cK4paBQXBwCtGJ0LUKfV8KYnVtCnZpcgrDqWVzCuKWgXJlY29yZAp0YWluCmxlbQppdGFsCuKWgWltcAplZ28K4paBb2QK4paBcmVjZQptaXQKZmZpYwpzdGFja292ZXJmbG93CmlldmUK4paB0JcK4paBbm92CtGG0LUK4paBSW50ZXJuCmJ1CuKWgXN1Z2cK4paBbG9vcApyaWRlCuKWgSQoCuKWgXN1cGVyCnJpZArQvdGL0YUK4paBUGVyCuKWgWRvbQo9Jwp1dHNjaApsZW4K4paBd3JpdGUK4paBaW52Cm91dGgK4paBSGVyCuKWgXllYXJzCuKWgW9yaWdpbmFsCmVnYQriloFTdGUK4paBc2VlbXMKw6lnCuKWgW5leHQKZWRlcgriloFOZQphdmFzCmlmaWNhdGlvbgpFeGNlcHRpb24K4paBRGVyCuKWgXZlCmF0aWMKaGF0CmJyYXJ5CnJldHVybgp1cmNoCmlzaW9uCm1pCm9pbnQK4paBZGF5CmljdGlvbgrDoWwK4paBw6lzCuKWgXRob3VnaAphY3Rpb24Kw610CnVuZ2VuCm91cnMK4paBc2NyaXB0CuKWgWluZm9ybWF0aW9uCuKWgW11bHRpCuKWgVxcCnN0ZXIK0LrQtQpBQwpjaWVzCuKWgWRpc3BsYXkKb21hbgpUaW1lCml1cwopKTsKdHJlCuKWgWxpbQphdGVseQrDqWQKaXN0ZQriloHRgdCwCnBvc3QKdWVsCmltZwriloHRhwrRgdC60LAKZWxkCnBwZXIKdWxhCuKWgWdlbmVyYWwKQWwKRm9ybQriloF1cG9uCnpvCmFtZW50ZQriloFwcm9tCuKWgcO8CmxleAriloF0dXJuCuKWgdC80LUKZW50aW9uCtC70LXQvQriloFhZgppY2xlCtGB0YLQsgriloFGaWwK4paB0KQKYXZhc2NyaXB0Ck1hbgphcmEKd2FyZQphbGlnbgphbmdsZQriloFTYwp1bmljCuKWgWZyYW4KVW4KemkKbWV0CkFkZAriloFwdWIK0LrQvtCyCuKWgWdlbgriloFwb2QK4paBc3VtCuKWgWhhdmluZwriloFhdmVjCnNsCuKWgWZpZwriloFSZXMKRGF0ZQp1bGVzCndpdGgK0YHQutC40LkKZ3UKRVQK4paBYnJvCnJpZQphcHMKZW5kaW5nCm1haWwKb29rCuKWgXN1Y2Nlc3MKYmVyZwriloFkZWIKZWx0YQooKWAKZW50aWFsCmZyYW1lCktleQppbm4K4paBc2ltcGxlCml2YWwK4paBY2FyZQriloFXZWIKIikuCj48LwriloFkYXRhYmFzZQriloFOb3cKSW5kCuKWgdC80L4KY2h0CmJhbgpyYW0KZXF1YXRpb24Kc2tpCmllZgpsaW0KR2V0CuKWgXRyZQphdGVuCmJlZAriloFKZQriloFyZXN1bHRzCtC70Y4K0YLQtdC70YwKZGIK4paBYml0CmJvZHkKQXJyYXkKbXUKcHJlc3Npb24K4paB0YHRgtCwCm9ueQppZmYK4paBYmFyCuKWgUFyY2gKYmVycwopewriloFNb24K4paBZG9pbmcK4paBcHJvZgriloFpbnN0YWxsCuKWgXBvc2l0aW9uCmVtYQriloF9KTsKUGF0aAphbGkK4paBJiYKbGV2CuKWgWNhbm5vdAriloFNYXkKaW5zdAotXAriloFjb3VuCuKWgWFuZwriloFhcHBlYXIKY29yCmNpw7MKaWRlZApxdWVzdGlvbnMKYXR0ZXIK4paBUGEKc2VsZWN0CuKWgXByaW5jaQpFdmVudAriloFzaWRlCuKWgW1lbQriloFKYW4KYXJpbwriloF3aXRoaW4K4paBVmFsCm9kZXMKaWRkbGUKdXJhdGlvbgpicmEK4paBZGF0ZQpbXQriloFlbnRyZQppbGkKUG9ydGFpbApkb2NzCtGB0LrQvtC5CkVsZW1lbnQK4paBbWVzc2FnZQriloFuYWNoCuKWgWR1cmluZwriloFncmEKZXR3b3JrCuKWgUJ5CuKWgXRlbGwKZXRlCn5cCuKWgWJpcwriloFwdQriloFyZWQK4paBdGhpbmcK4paBc29ydAp4aW0KaXJlcwpVc2VyCmlvZAriloFFc3QKb3NlZApvdXRlCuKWgUxlcwriloFzZW50CnJpYnV0ZQp1dGVzCmlzdG9yeQriloFzZXJ2aWNlCic7CmZpZWxkCuKWgUlOCmVuc2lvbgpyZWwK4paBZ29pbmcKd2ViCkNvbnRleHQK4paBbGF0ZXIKdWsKbGF5b3V0Cm9uYQrDoXQKLS0tLS0tLS0tLS0tLS0tLQriloFleGFjdAphbmRvbQriloFzaWUKSUkK4paBVGhleQptZW50ZQppYmxpCuKWgWZpbmUKVVQK4paBZGV2ZWxvcAriloFFaW4Kc29mdApvZmYKU2V0CuKWgWF6CmV0ZXJzCmlsZGVyCnBsZXMK4paBc3BlY2lmaWMK4paBb20KZXJyb3IKZW50bHkK4paBZmlsbQp1Y2sKYWlucwphY2nDs24KZ2VzCtC20LAK4paBdGhpbmdzClNoCuKWgXRob3VnaHQK4paBYWRkZWQKZGVwCtGB0LrQvtCz0L4K4paBTGkKaWxzCnluYwriloHRgtC+CnJpZXMK4paBY3UKY2hlbgpJT04K4paBRGVzCnVsdGFkbwppcnQK4paBYmFzZWQK4paBbW8K4paBZGVzdApwbmcKcmVlbgriloFydW5uaW5nCmFtbWEKb3VkCuKWgXJlZmVyCmlvdXMK4paBSnVsCuKWgXNlYXJjaAphbGQKZWRlCuKWgXdyb25nCkFuCuKWgXVudGlsCnNpdGUKYXllcgriloFvbmNlCmFycgriloFhZ2FpbnN0Cj09PT0K4paBc291cmNlCmFybgphcGkK4paBcmVwcmVzZW50CuKWgWFmZgriloFzZWluCuKWgWFsbG93Cm9ybWFsCmVuZGVkCuKWgWNvbnRyb2wKbWF0aGJmCmNvbWUKY3VyCmVuZG8Kd2EK4paBdXBkYXRlCuKWgWluc2lkZQriloFyZWFzb24Kb21lbgriloHQstGLCkRlCuKWgdGY0LUKc3cK4paBc2V2ZXIKT2YK4paBaW5zdGFuY2UK4paBbWVyCuKWgWVmZmVjdApjb2xvcgp1Z3VzdAppbHQKZGVzCml0egp1bGF0aW9uCm5pZQriloFXb3JsZAriloFzaW1pbGFyCnltYm9sCmhpbmcK4paBbWFyawpTdGF0ZQriloFjb250ZW50CuKWgW1lYW5zCmFtZWQK4paBRW5kCk5ECmNvdW50CuKWgUluc3QKcGVydHkKY3RvcgriloF7XAriloFMZXQK4paBIT0K4paBZ2V0dGluZwp1dGgKdW1iZXIK4paBQ29uc3VsdGFkbwpzY2hhZnQKbGV0ZQriloFXaWxsCuKWgUVtCmhlYWQK4paBbGVnCtC90L7QvApPcgphcm0KcG9uZAriloFDaHJpc3QK4paBYXJvdW5kCuKWgWNsZWFyCuKWgWhyZWYK4paBU2VlCicpLgriloFjcmVhdGVkCuKWgWJ1dHRvbgppbmluZwriloFjbGljawppYW0KcGxpdApGb3IK4paBcG9saXQK4paBc2VlbQriloFsaWZlCtC90L7QsgriloFpbnRlcm4K0YnQuApzZWwKc29jaQriloFzdG9yCmNsZQplYXJjaAphbmRyb2lkCn1eewriloFlaXRoZXIK4paBZmV3CuKWgWluaXRpYWwKbGVuZ3RoCnJpYQpzcWwKd2lrCuKWgcOpdAp1ZXIK4paBdmFsaWQKQW5kCmluY2x1ZGUKdXJ5CuKWgXN1cwppcmVkCuKWgUFmdGVyCuKWgWR1ZQriloFiZWkKb3VyY2VzCuKWgU5vdgpBY3QK4paBQ29udAriloFicmVhawplc3RlZAriloFhY3R1YWxseQplbHNlCnRtbApyZXIKb25lcwriloFkZXNpZ24K4paBcHJvcGVydHkKcGhpCmFsaXR5Cm9jaAppc3RzCuKWgcK3CnVkaW8KQUIKYWxhCmlvbmVzCtGE0LgKZmluZApBcwriloFjdXN0b20K4paBYW5uCkVTCk9UCmxhbWJkYQriloFpZGVudAriloFvcmdhbgriloFDZW50CuKWgUNoYXIK4paBb3MK4paBaGFyZArRgNC+0LIK4paBLz4Ka28K4paBZXhwZXIK4paBc2VwYXIKeWwKb3VybgriloFkZXYK4paBYXVjaAriloFibG9jawpib29rCuKWgW1hcAppbGxhCuKWgWNvbXB1dAriloFzcGFjZQpyZXN1bHQKKX0K4paBZWNobwpjb25maWcKaGkK4paBbGFyZ2UK4paBd2lkdGgK4paBR28KbWF0CuKWgWRpZmYK4paBa2luZAphbmNlcwp5bmFtCuKWgWNvbG9yCkludApzb2wK4paBcGkK4paBY2hhcmFjdGVyCm9tZW50CuKWgXJlc3BvbnNlCmlnbWEKd2FyZHMKYXJyb3cK0YHRgwp0aWVzCuKWgcO8YmVyCkltYWdlCnlkCuKWgdC/0LXRgNC1CuKWgW5vZGUK4paBaXRlbQphY2hpbmUKaW1hCuKWgXZhCuKWgWFwcHJvYWNoCuKWgXdlcgriloHRh9C1Ck9uCm9sbG93CtC+0L3QsApjdGVkCnVyZWQKQ29udHJvbGxlcgpsaWVkCuKWgWpvCuKWgWRhbAp1bmsK4paBw64Kc3RhcnQKb2xhCuKWgWNvbXBvbgpJQwpiaXQK4paBYmFzZQrQv9GDCuKWgWlkZWEK4paBZGlyZQriloFyYWQKZ3JvdXAK4paBV2l0aApzZXJ2ZXIKc2lkZQpzaW5nCuKWgWRpZXMK4paBbmVhcgriloF2b29yCuKWgWFyZ3VtZW50CuKWgX0sCuKWgWxhbmQK4paBbmFtZXMK4paBb3B0aW9uCml0aHViCnBwZWQKYXVnCuKWgWxpbmtzCuKWgWZ1bGwK4paBc2l0dQriloFjb25zb2xlCuKWgWV0YwphdXgK4paBQ29yCmljcm9zb2Z0CuKWgWNhbWUKbG9jYWwK4paBa25vd24K4paBbXVsdGlwbGUKYW5ndWFnZQriloF0b3RhbApvbG9neQrDpHQK4paB0KUK4paBZnJlCuKWgXRlbgppZGVvCuKWgWJlcwp0cnVlClF1ZXJ5Cm9tbQriloFBcnQK4paBa2VlcAriloFVbml2ZXJzaXR5CnJlYXRlCnBwb3J0CuKWgXB5dGhvbgp0cmEKZWN0b3IK0YDRlgpvcGgK4paBY29uYwriloFmb3VyCnZpcm9uCuKWgXZpYQo/IgppbWFnZQpvbGwK0L3Ri9C1CuKWgWNvbnRleHQK4paBc2VtCi5fCuKWgWVuZwptYXIKQUQK4paBbW9yCuKWgUNhbAriloFjZWxsCmltYWwKQVRFCuKWgWluZgrDtm4KdWZmZXIKc3EKLi4uLgriloF6dXIKV2l0aArRgNCw0L0KY2huCuKWgWRvb3IKY29udGVudAriloFtaXNzCuKWgXNpbXAKw6FyCmlyYQriloFoYXQKVGVzdAriloFjZXJ0YWluCk5TCuKWgWNobwriloFhZHYKd2hlcmUK4paBbG9va2luZwriloF0aW1lcwrQvdC40YUKdXRvCuKWgcOJCmNhbgpob3N0CuKWgSgqCmxvYXQK4paBbmljaHQKRmllbGQKYnVyZwpjb25zdAphZGVzCuKWgU11cwriloFub3RoaW5nCuKWgWluY3JlCuKWgU1pbgriloFwb3dlcgriloFBbWVyaWNhbgpsbgp2YWxpZAp1bmdzCuKWgU5hdGlvbmFsCuKWgVNhbgriloFZb3JrClJlcXVlc3QKY2hhcgriloFaZQpidXR0b24K4paBYWxnClNPTgriloFhcAp1ZmYKYWJpbGl0eQrQtdC8CuKWgWFueXRoaW5nCmVsYQooKSkK0LHQsAphbXBpb24K4paBcG90CuKWgWZ1dAphaWxhYmxlCuKWgXByb3AKIl0K4paBbGVzcwpsYWcK4paBQXVndXN0Ckl0CuKWgXBsZWFzZQriloFzdHlsZQriloFBbHNvCmJ0CuKWgXByb2JhYmx5CuKWgU9uZQriloFwb3NzClVJCnVpdAriloFXZXN0CmhuCitcCkJ1dHRvbgpqc29uCmVycgpyYW1lCmRvbQppbG9uCmFsZgriloFjbGllbnQK4paBY29udGludQp4bWwKcGVjCmFkb3IKbHMK4paBaG93ZXZlcgriloFBbnkKw6RuZAptYXRocm0K4paBdXJsCuKWgWJvb2sK4paBZ2wKaXZlcwpnaQriloF0cm8K4paBVVMKcG9pbnQKb3BlbgriloFjdXIK4paBZXJhCuKWgXBhcnRpY3VsYXIK4paBSFQKb290CmVsbG8KbG9iYWwK4paBYWN0aW9uCuKWgUludAriloFpbmNsdWRlCuKWgWVsZW1lbnRzCtC90LDRjwphcmRzCuKWgUJsCuKWgWh1bQpmcm9tCmNoYW5nZQriloFmdW5jdGlvbnMKaGVuClNlcnZpY2UK4paBaGVpZ2h0CuKWgUxhbmQKaWFzCmdzCmnDs24K0LvQvtCyCm5vZGUKLuKAnQpoYW5kCuKWgdCx0YMK4paBYW1iCuKWgUx1CuKWgXRocm93CuKWgW1vdAriloFBY3QK4paBd29ybGQKX1wKYmFzZQriloFDbwriloFhcmNoCuKWgSMjIyMKZ2VkCnByaWwKb2xkZXIKTW9kZWwK4paBc2V2ZXJhbApsaWUKY2hlY2sKXXsKY29ucwriloFUcmEKaGVjawriloFsZWFzdApkb3duCmVicnUKRGVmCnBhcmFtCmlzY2hlcgriloFjYXMKQ0gK4paBYWRkcmVzcwriloHRgNCw0LcKdWZlbgp1cm9wZQrQtdC5CuKWgWJvdW5kCkNPCuKWgUFuZwriloFNYQpJbmRleApjb3JlCm91Y2gKYXRhYmFzZQpyaWJ1dGlvbgpkb2N1bWVudApMZQp9X3sKdmVybgriloFzdGF0ZW1lbnQK4paBQnJpdApvbm8KcHNpbG9uCuKWgWxldmVsCuKWgXByb2R1Y3QKSVMK4paBY291cnNlCuKWgU1yCj4NCuKWgWJhY2tncm91bmQK4paBcmV0CmVyaW5nCm1vc3QK0YHRjNC60L4K4paBdGhyZWFkCml0aW9uYWwKaXRlcwpQbAriloFkb3MKZ2EKZGF5CuKWgUdlbmVyCuKWgXR3CkFkCiI+PAriloEoJAriloFtb21lbnQKdGl0bGUKY3JlYXRlCnZlcnNpb24KTWFuYWdlcgriloFmdXIKcHBpbmcKaWpuCtC+0YEK4paBcmF0aGVyCnB0ZW1iZXIKT1MK4paBc2l0ZQriloFjYXVzCmFuaQriloFob21lCtC80ZYK4paBc2hvcnQKcGEK4paBbGVhZAppc2hlZApjaW5nCm9yZGluZwriloFwcm90ZQrRgdC70LUKTEVDVAriloFkaWRuCnBvc2l0aW9uCiIsIgooKSwKdHJhbnMK4paBbG90CuKWgdC+0LQKQVMK4paBc2F0CuKWgXBvaW50cwpnaXRodWIKc3R5bGUK4paB0LPQvtC00YMK4paBRGlzCnBvbmVudApvbWV0CnplcgpVTEwK4paBcGEKQVAKYWNlcwriloFVbml0ZWQKYW1hCmV0eQpDb2xvcgriloFlbm91Z2gKVVMK4paBbGVuZ3RoCigpKTsKXntcCmZ0eQpCb3gKYXB0ZXIK4paBY29tcGxldArQvdC40LoKbWF4Cm9iamVjdAooewppbWd1cgppdGl2ZQp1bmNoCuKWgVN1YgplbmRlCtCz0YMKYXRlZ29yeQrRgtGLCmlhbm8K4paBdXBkCuKWgUF1c3QKfXtcCnRvcApsYXMKcGlzCmluZXNzCuKWgXsNCuKWgdCVCkdyCuKWgUFTCuKWgdCy0LUKdGhlcnMK4paBZGVmaW5lZAphemlvbmUK4paBb2ZmaWMK4paBYXV0b20Kw7xuCuKWgWJyb3cK4paBc2VydgriloFyZW1vdmUKaXJvCuKWgUJpYmxpCkVECuKWgXdob2xlCuKWgdGICuKWgUphdmEK4paBenVtCnVhCnBtCmRldgrQutGA0LAKb2xkcwriloFXYXIKw6RuCnBhc3MKdXoKWyIK4paBdHJpCmlzZWQK0YXQsAriloFtZW1vcnkK4paBUG9ydApvcGVyClVwCuKWgVRoYW5rCuKWgU1pY2gKeWNoCmJvYXJkCtCx0YMKSW5zdAriloFiZWdpbgppbmF0aW9uCuKWgU1vZApfLAriloFEZW4Kb3B0aW9uCuKWgWNvbnN0cnVjdAriloFKdXN0Ck1hcApydW4K4paBcmVzcGVjdApoYW0K0LzQsNC9CmltZWRpYQriloFhcHBseQpjcmlwdGlvbgptYWluCuKWgdCa0LAKb2lkCkNvZGUKfTsKSW5mbwriloFmb3JtYXQKTG9nCuKWgdGB0YMK4paBbGF0CnV0b3IK4paBcmVmZXJlbmNlCuKWgWNhbGN1bApvbm4KTG8KaW5mdHkK4paBYWxvbmcK4paBxI0K4paBdGFzawriloFldgp0aGV0YQpyYXMKam9yCuKWgdCx0L4K4paBcHJpbmNpcApNeQriloFlaW5lcgriloFFcwpvbWIKcXVhZApeey0KdW1wCuKWgXRpbGwK0LTRlgriloFsb29rcwriloFvawrRhtCwCm51CkZpbAriloFzb250CuKWgU1lZAphZ3VlCuKWgWNvc3QK4paBU2ltCuKWgWNvbW1lbnQK4paBKFwKZWdlbgriloFwYXJhbWV0ZXIK4paBRnJhbmNlCnJlcAriloFUSAriloF5ZXQK4paBYXdheQriloFjaXJjCuKWgUFQSQplbXAK0LLRlgpMYXlvdXQK4paBbGluZXMK4paBUGFydAplbXB0CuKWgUJpCuKWgW1pbmQKa3kKZ2luZwriloFyZXBvcnQK4paBQWRkCtGA0L7QtAriloFyYW5nZQpjaWFzCmxpcAriloFLYXIK4paBQ29tbW9ucwpnZXJ1ZmVuCmFmZgpzZWMK4paBaHRtbApsaWcK4paBd2luZG93CmluaXRpb24KY2lzCuKWgXV0CmVsbgriloFhdXgK4paBbmVnCkhhbmQK4paBKTsK4paBYW5hbAriloFmcmkK4paB0YHQuApldGNoCm1kCnBhZ2UK4paBbGlicmFyeQriloE6PQpST00KWW91CnNwYWNlCuKWgWR1cmNoCuKWgWhvc3QKYXZlbgriloFGaWxlCmFsbGUK0YLQuNCyCuKWgXBhcArRgdGC0LLQvgptYXJrCuKWgW1haXMKZXJtYW4KU2l6ZQrQtdC6CuKWgdCc0LAK4paBaXNuCuKWgWNvcHkKc3RlbgpyaXZlcgriloF3ZW50CuKWgWphdmFzY3JpcHQK4paBc2FtCuKWgWZyYW1lCuKWgXZpCuKWgXByZXZpb3VzCnJvZHUK4paBbWV0aG9kcwriloFuZWNlc3MKTkEKY2tldAriloFvcHQKTG9jCmhvdwriloHDrm4Kc2hpcAriloFpdHNlbGYK4paBUGxlYXNlCmllbmUK0LLQtdGACuKWgTw8CuKWgW1pbGwK4paBdHJhZApwYWNlCuKWgUhhcgppdGVuCndpc2UKd3JpdGUK0YbQuNC4CtGA0YsKTGluZQpvbG8K4paBYWNjZXB0CmhlaWdodAriloFlbGVjdAplbGxhCuKWgXDDpQpTZWxlY3QK4paB0LvQuAriloFcPAooKAriloFJRApvcHMK0LLQsNC9CmnDswpUUArCuywKbmVjdGlvbgpwYXJlbnQK4paBTWFnClRhYmxlCk92ZXIK4paBbmV0d29yawrRgdC/0L4K4paBYXNzaWduCmlnZ2VyCmlybQopYApvdHRvbQpiZXRhCuKWgWRlbGwK4paBYm9keQriloHQtNCwCuKWgVlvdXIK4paBZnVlCuKWgXBhY2thZ2UK4paBbGlnaHQK4paBKioKTVAK4paBY291Cnllcwo6XAriloHQpwriloFtZW50aW9uCmVuc2NoCuKWgWRlZwriloFjb252ZXJ0CuKWgURhdgphZHQKUmVzdWx0CnRob3VnaAriloFidXMKeHkK4paBc2VlbgpBbGwKcHVibGljCml2ZWx5CuKWgVJlYwriloFIaXMKc2ltCuKWgWbDtnIK4paBaGlzdG9yCuKWgXNldHQKcmF0CmFibGVkCuKWgcK7LApnb29nbGUKV2ViCsOpbAriloF0aXRsZQriloFKYW51CtGY0LAK4paBdG9vawppZGVuCnN6CuKWgUdldAriloFvYmplY3RzCuKWgWNvbW1vbgriloFjaGFuZ2VzCuKWgUxvbmQK4paBZXh0ZXJuCuKWgWp1CklzCuKWgWF2YWlsYWJsZQp0cmkK4paBbcOhcwpvc2EKQmUK4paBRGF0YQp1cmFsCuKWgWhvbQriloFhY2NvdW50Cm9vCuKWgXBlcm0KcmVzcG9uZAp5dAriloFzZW5kCuKWgXJldHVybnMKaXZpZAriloFleHBsYQrDrW4K4paBbm9yCklmCuKWgUZyb20K4paBdGFyZ2V0CmZlY3QK0LXQvdGCCuKWgXVpdAriloFKbwriloF2YXJpYWJsZXMK4paBc2VyaWVzCuKWgWZ1bmMK4paBaGltc2VsZgriloHRh9CwCmFudGkK4paBYWNoCmlhbG9nCuKWgXN0ZAphZQriloFmb290CuKWgXVudGVyCmdyZXNzCk5vdApyYWQKZsOpcgriloF1dGlsCm9yZW0K4paBc291Cm9wdAriloFvZwriloF1bWEKaXRhcgriloFPawrDvGNrCnNxcnQK4paBYW50CuKWgXdlcmRlbgrDpXIKfSk7CuKWgVBhcmlzCuKWgWV4Y2VwdGlvbgriloFkZXRlcm0K4paBVm9sCuKWgVNhbQriloFlc3MKbGllcwppb25pCm9kaW5nCmlkZ2V0CuKWgXByaQriloF3aGV0aGVyCuKWgdC/0L7QtAriloFudW1iZXJzCuKWgX4KZXZlbnQK4paBc2hvd3MKYXR1cmVzCuKWgWhvdXNlCuKWgWZhY2UK4paBc2nEmQp2aXJvbm1lbnQKdmFuCuKWgWluY2x1ZGluZwriloE8LQp0aW1lcwpub3cK4paBcHVyCmlmaWVyCuKWgWVtcAriloFjbGEKbW9uCuKWgURhcwphZHkK4paB0LLRltC0CuKWgdGGCmFib3IKT1NUCuKWgWJhbmQK4paBw7oK4paBZXhhY3RseQppZXJ0CmF2aWcK4paBcmVkdQriloFTRQpsaXNoZWQKQnUKTWVzc2FnZQpjZWxsCmZ1bGx5CuKWgXN2CuKWgW1ha2VzCnBvbAriloFyZXF1aXJlZApmZXJyZXIK4paBcGVycwriloFtaQpGSQriloFQYXVsCuKWgVVJCuKWgUJlbAppbmMK4paBY29udGFpbnMKT3V0CmFzdXJlCnB1Cm90bwriloFnYW1lCnpuCuKWgVdoeQpvcml0aApiaWcK0LrQuNC5CnNpZ21hCuKWgXF1aXRlCuKWgWplZApyZWMK4paBU1FMCtCx0LUK4paBTWFydAp5YQriloFzY2hvb2wK4paBc2ltcGx5CuKWgXZvcgriloFkb3VibGUK0YDQsNCyCuKWgVN0cgppZW0K4paBYWxidW0K4paBcmVzb2wK4paBZGVpCuKWgVdpawriloFhdwp1bWIKb2xzCuKWgSovCuKWgXplCuKWgWFuaW0KLz4KcmlzCnJlc2gKTm8KaXF1ZXMKY3VycmVudAriloFwZXJpb2QK4paBQXByaWwK4paBc3RvcmUKJywnCuKWgVNldAo9ewphY2hlZAriloFNYWwK4paBUGFsCmFudGVzCmF0ZXJpYWwK4paBd29ya2VkCmxlcQpvcmVmZXJyZXIK4paBaGFwcGVuCuKWgWJveApuZXkK4paBY2xvc2UK4paBZ3JhbgriloFsaWUK4paBaXIK4paBZXhwZWN0ZWQK4paB0LTQu9GPCmNsaWNrCsiZaQriloFwYXJ0ZQpvZ24K4paBRm9ybQriloFtZW1iCuKWgXBsYW4K4paBdGVhbQpdWwriloFjb21tdW4Kb3JyeQplbmN5CmdsCmluYXJ5CmNkb3QKXlwK4paBRmlyc3QKYW5kZXIK4paBRGVjCnJlcXVlc3QK0YHRgtCy0LAK4paBc3RydWN0dXJlCuKWgXx8CuKWgUNvbXAKYWN0b3J5CuKWgU1pbAriloFTb21lClN0cmVhbQriloFhc3N1bQp1ZW4K4paBd29yZHMK4paBU2VwdGVtYmVyCuKWgdCa0L4K4paBZGF5cwpvcmllcwrRgdGC0LDQsgpzbQp2aW4KcGFydGlhbAriloFwYXJlbnQKb2oK0L3QuNC4CiEiCnVnaW4K4paBV2luZG93cwpFZAo6fQriloFxCuKWgWJlbgppYW5hCuKWgWxhYmVsCnN0YXRlCnV0ZWQK4paBKCkK4paB0YHQstC+CuKWgWVkaXQKdXJpbmcK4paBTlMK4paBSmFocgriloFwcm92aWRlCkhlCuKWgVllcwphbmVsCmVuYW1lCuKWgURvbgppc2sKZ3JhCmVsaWoK4paBcm9vdAoqLwriloFGcmUK4paBTW9yCnVzZWQKcmFuZ2UK4paBdGFtYgriloFtb2R1bGUK4paBZGlyZWN0b3J5Cm91bmRzCkFjdGl2aXR5CuKWgW11CmluZm8K4paBZnJlZQpvcmdlCnRhYgopPQpsYW5nCuKWgdC+0YEK4paBRlJPTQriloFlbnRlcgriloFiZWNhbWUKaWRhZQrRhdC4CuKWgVN0YXRlcwp2ZXJzZQriloFleHBsCnludApVTgplZQplbmRlbnQK4paBbWFraW5nCuKWgSIkCnVuaQpxdWVuY2UK4paBbHVpCkhUCuKWgXVzZXMKemllCm5pYQpDb250ZW50CuKWgUNvdW50CuKWgXN0YW5kYXJkCkVOVAriloHQutC+0L0KZm9ydAphZGFzCtC30YMKU3lzdGVtCuKWgVN3CuKWgWV2ZXIKTE8K4paBY29ycmVzcG9uZAriloFQbwphcmdpbgrQutGCCtGW0LkK4paBcmVtYWluCmNpbwriloFhY3R1YWwK0YHRgtGDCuKWgXNpbmQK4paBUGUK4paBY2hhbmdlZAriloFOb3RlCnNraWUK4paBZmFtaWx5Cml0w6AKY29zCnR4dAprZXIKY2VlZAriloFhcnIK4paBY2FtCml6ZXIK4paBRGFuCmhlbAppY3VsdApIUAppbGVyCuKWgVNhbAriloFjb25uZWN0aW9uCnVzaW9uCmtuClJJCuKWgXZvbQpMaXN0ZW5lcgriloHDtgriloFkaW0K4paBcHJlc3MK4paBZXNjCuKWgVRyeQphdGFsb2cK4paBdGhhbmtzCkRPCuKWgXdyaXR0ZW4KZGlyCnJldwriloFmaXJlCuKWgU5hY2gK4paBw6EKZW5jCuKWgW9yaWdpbgriloFOb3ZlbWJlcgriloF9OwpDb3VudAriloHQl9CwCuKWgWdyYXBoCuKWgW1pcwriloFFeHRlcm5hbAriloHiloHiloHiloHiloHiloHiloHiloHiloEK4paBb3B0aW9ucwriloFVUkwK4paBcGhwCuKWgWludGVncgpDb25maWcK4paBVGV4dAppbm5lcgriloFjcml0CizigJ0K4paBdG9nCiQkCm5vZgriloFzZXMKw7xocgriloFTaW5jZQpEZXMKdWJlCuKWgXNlY3Rpb24K4paBZ2kKZm9yZAriloFBc3MKYWluZXIKdHRwCuKWgWJlaGF2CnBvcnRzCmRyYXcKVGhpcwpyYW5jaAppbmRpbmcK4paBZXN0YWIK4paBb2J0YWluCnJpY2gKbGljaXQK0LXQsgriloFxdWFsCuKWgXphCuKWgWhhcgriloFmYWMKYWFyCmpldAppY2xlcwriloFBdXMK4paBaG9yCuKWgXJlbW92CuKWgXdpZQpDbGllbnQK4paBbmF0dXIKaGlwClN1YgriloFyYW5kb20KREYK4paBYXJlYQp0YWcKUHIK4paBSXRhbAriloFyb2t1Cm5vZm9sbG93Cip9CuKWgW90aGVycwriloFsaW1pdAriloFzaWwK4paBc2F2CuKWgW9mdGVuCuKWgXJlbmRlcgpEQgriloFNYwriloF6aWpuCtC20LXQvQriloF0YWcKbWluZwpsaWNoZW4KcGFjawriloFBZwriloFzZW5zZQpwZwpNZXRob2QKYWdlZArDoWcKxYJhCuKWgWludGVyZXN0CuKWgWFzc29jaQp2b2x1dGlvbgriloFlbXB0eQppY2hlCuKWgWdybwriloF0eXBlcwriloFTaWUKSW50ZXIK4paBbm9yZWZlcnJlcgriloFnaXZlcwpoYWwK4paBc2F2ZQriloFmb250CnJ1Y3Rpb24KU2NyaXB0CuKWgWFsbGEK4paBc2F5cwriloFmdQphcGUK4paBbGFuZ3VhZ2UKaWdlcgriloFLaW5nCmJvcgp1dgriloFzaGFsbAriloFFdXJvcGUK4paBZWluZW0K4paBd2F0ZXIK4paBZ292ZXJuCmFuegphdG9ycwriloFtb250aAp5ZQriloFpbXBvcnRhbnQKYXR6CmZpcnN0CuKWgVRyYW5zCuKWgU1hZAriloFicmEKaWthCuKWgVNhaW50Cm9yaWEKa3JlCmVtZW50cwriloFCZW4KbGF2CuKWgWFkbWluCuKWgUhlbgpyaWwK4paBU20KY2F0CuKWgVJlZmVyCuKWgdCoCuKWgXByYWN0CuKWgVBhdAriloFHcmUK4paBeW91bmcK4paBSW50ZXIKb21hCnRlZ2VyCmliaWxpdHkK4paBcGFyYW1ldGVycwriloFldmVyeXRoaW5nCmRhdAp1cm9wCm9sZWFuCuKWgXJldHVybmVkCuKWgUNsYXNzCmFjeQojIyMjCuKWgXDFmQriloFmb2xkZXIK4paBa29uCuKWgWd1ZXNzCmd0Cmplbgphbm5lbAppY29uCuKWgWNvbWIKcmljdAriloFoaWoK4paBYXV0aG9yCnNlZQpoZXJlCnN0cmEK4paBZW50aXJlCuKWgWRpcmVjdGx5CnJhZnQKaGVldAplc3RlcgriloHQvNC4CuKWgW1hc3MKdW50dQriloF1c2VycwpjaGkKUEUK4paBY29tcG9uZW50CkNsaWNrCkF0dAriloFzb2JyZQphbmRzCuKWgUhvbAriloFTYW50Cm9yaQriloFzdWEKc3RkCmVudGljCkNDCuKWgWZpbHRlcgpTUUwK4paBR29kCkF0CuKWgdC80YMK4paBcGVyZm9ybWFuY2UKZGVsdGEKYW5kZQphbWVyCtC00YsK4paBY3VsdAriloFOb3IKYnV0CuKWgWxpawoqKioqKioqKgrRgdGC0LLQtdC9CuKWgWNvbW1lCuKWgWRyCmltZXIKb3JkaW4K4paBY29uZGl0aW9uCmVzdGUKKFsKRkYK0YLRjNGB0Y8KaW1vCnJhYgrRltC70YwK4paBaGFsZgplYWNoCkRpcwriloFyb3dzCuKWgWhvbgriloF0b2dldGhlcgriloHImWkKbWVkaQphZ24KYWxsZWQK4paBdmlsbApJTkcKaWRkZW4K4paBZHJhdwp5bnRheAriloFhdHRlbXB0ClVSTApwb3NlCuKWgWluZGljCtC90LjQutCwCuKWgUVuZ2xpc2gK4paBZMOpYwriloFuZWVkcwriloFub3JtYWwKdXJ0CuKWgdC90L4KfX1cCmxhc3QK4paBRmluCuKWgUZlYnJ1CmlsYQriloFjb3VudHJ5CuKWgWZpZWxkcwriloFtYXgKbMOpcwpvd2llCuKWgWRldXgK4paBYnVpbHQK4paBTWFpbgriloFjYW1wCml2bwppdmEKaWN5Cnppb25lCk5vZGUK4paBOikK4paBYW1vbmcK4paBT2IK4paBY2FzZXMKaGFwcwpzZXJzCmFydGVyCsWbY2kK4paBaXRlcgriloFuYW1lZApleGVjCuKWgXNlYXNvbgp0b3QKPT4KZ3JhcGgK4paBbmlsCmFjaW9uYWwK4paBTlVMTAriloFzcGVjaWFsCtGB0YLQtQpjc3MK4paBXCgKdnMKYWVsCuKWgWNpdHkKb3ZhCuKWgWFydGljbGUK4paBU291dGgKQWN0aW9uCsOnYQpzcHJpbmcKaXR1ZGUK4paBY29tcGxleAriloHRh9GC0L4KYnVpbGQKZ2FtbWEK4paBRW50CmllcnMKJy4KY2FyCmFwYWNoZQppbmdlbgpJbnB1dAo64oCJCuKWgWR5bmFtCmFsbHMKc2hvdwp8XAriloF3aXJkCkJhcgphbHRoCm1vZGVsClRyYW5zClJvdwphYmUK4paBbGliCm51bGwKcmFnbWVudAriloFTdGF0ZQriloFsYXcKRnJhbWUK4paBTG8KZ2ViCn0kLgriloFuZWVkZWQK4paBY29udHIKYXJpZXMK4paBc2NyZWVuCnlyCm1tCuKWgXNob3duCuKWgWJhZAriloFjYXN0CuKWgVRlc3QK4paBQXVmCuKWgXF1YW50CmlnYQriloFyZW4K4paBTWFjCuKWgXRyYW5zZm9ybQriloFkaWZmZXJlbmNlCuKWgXRpdApURQriloFzdGVwCuKWgWNhcHQK4paBY29sbGVjdGlvbgppY3Rpb25hcnkK4paBVG9tCnJpZXIK4paBbW92ZQpjb3BlCm9yZHMK4paBZnVydGhlcgriloFjb2x1bW5zCuKWgUxpbgriloFmaXhlZAriloFjaGlsZHJlbgpNUwptbwp1bmEK4paBaW5kaXZpZAp0dHkKYXN0ZQpzcmMKbWF0Y2gKd2kK4paB0YUK4paB0LTQuAriloFvcmQKaXZpbmcK4paBQnJvCuKWgWFsbW9zdAriloFQcmVzCnJlY2kKYXJpbmcK4paBLy8vCtC10YLRgdGPCuKWgXNpZwpsaWdodAriloFSZWQK4paBc3VnZ2VzdApvbGYK4paBw6l0w6kKaXNhdGlvbgrQt9C90LAKTmV3CtGB0YLQsNC9CkxBCnVuaWNpcAriloFmaWd1cmUKbXQKaWFsZQriloFjYXRjaApkZWZhdWx0CuKWgXRlbGUK4paBbWF0dGVyCmNhc3QK4paBUmljaAriloFoYW5kbGUKdmFsdQokLQrQvtCxCuKWgWpzb24KQ3JlYXRlCuKWgWV4YW0K0LDQu9GMCtGO0YIKb3JlZAppZG9zCmFwcGVuZAriloFBcnJheQrQutGBCn1bCnJpdmUK4paBY2x1YgptYW5uCuKWgWVzdGUKZXN0YQriloFHaQriloFKYXAK4paBTmFtZQpDb2x1bW4Kb3Vwcwppc21vCuKWgUNpdHkK4paBY2xhc3NlcwriloFpbmZsCmhsCtGA0L7QvAriloFhZGRpbmcK4paBZmFpbAp4eArDtWVzClNjCnV0aWwK4paBbG9jYXRpb24KbGVnZQphZ28K4paBcHJvcGVydGllcwphYmlsCnZhcwp9JCwKaXR0ZWQKw7NkCuKWgURlbQriloFhc2tlZAriloF0YWIKU291cmNlCuKWgWVycm9ycwpvZ3JhcGhpZQriloHQttC4CuKWgW1hbApzdHJhY3QK4paBZHJvCnJhawriloFub3RlCuKWgXNldHRpbmcK4paBZmVtCuKWgXNhdwppYXIKSEVSCtC10YEK4paBcHJlZAriloFPdXQK4paBaXRlbXMK0LvQsNC9CuKWgXdlcmQKZXJzaW9uCmxpYQriloFzaW4KaWNodGUK4paBZmVlbAriloHQv9GA0LAK4paBb2RlcgpVRQpvY3VtZW50CuKWgW1vZGUK4paBTmEK0LTQtdC9Cm1lcwpmcmFtZXdvcmsK4paBYXV0bwrQvdGL0LwKdWJ5CuKWgXRlbXBsYXRlCuKWgW1lc3MKaWVkZXIK4paBcmVsYXRlZApva2VuCuKWgWZvbGxvd3MKc2VhcmNoCmFtaQriloF3YWl0CmlncgriloFsb3cK0YHQutC40YUK0YHQutCw0Y8K4paBTWFyawriloFpbGwKYW1lbnRvClw8CuKWgWRmCm9zaXRpb24K4paB0JLQuAppc2YK4paBRGV1dHNjaAphaGwKd2FyCml0ZWN0CuKWgXNhbAplbGVuCkJ5SWQK4paBZ3J1CnN2CuKWgXBhc3NlZAriloFhw7EKU2NoCuKWgXNvbHZlCndlaXNlCmF0b3MK4paBbWVnCuKWgW1lbWJlcgplcm5hbWUK4paBY29ubmVjdAppcHMK4paBcm91bmQK4paBXQpuZXMK4paBZGlyCuKWgUxvbmRvbgpkeQpGQQriloFyZWNlaXZlZApyZWV0CuKWgUxvZwriloFTY2hvb2wKYW5nbwriloFUaGVzZQriloFNb250CuKWgWVuZXIKbGFkCuKWgWRlZmluZQpzaWduCuKWgWNsZQpmaWd1cmUK4paBVmlldwp0ZXh0YmYKJFwK0LfRiwpudW1iZXIK4paBZGluCmVsbGVyCm9yaXRobQpmYWxzZQpmb2wKZmZpY2llbnQK4paBSFRNTApsaWNoZQriloFNbwriloFpbnRyb2R1CmV4cAriloFzdHJvbmcK4paBdGh1cwovKQriloFlbGUK4paB0YLQsNC6CuKWgdC/0LAK4paBZG9udAriloFjYXVzZQpOdW1iZXIK4paBaW1hZ2VzCuKWgXNhbXBsZQriloFzY2kKbGlrZQriloFMb3UKZGl2CmFuYwriloFmcm9udApuZW4K4paBbWlzc2luZwphcmlhCnByZXMK4paB0L/RgNC10LQKREkKZmlsdGVyCuKWgU1pdApVUgriloFvcHAK4paBc3FsCuKWgdGA0L7QutGDCmVyZW4KZW1hdArDrXMK4paBSmVhbgrDqWMK4paBY2kKZW5uZQphdGZvcm0K4paBdGFrZW4K4paBT2YK4paB0L3QsNGB0LUK4paBZXJyCk9QCkZyb20KRGVmYXVsdAriloFHZW5lcmFsCndpa2kK4paBZ3JhbmQK4paBZWluZW4KUmVnCkhhbmRsZXIKY29ub20KYW5nZXIK4paB0LHRi9C7CuKWgUxvcwriloFleHByZXNzaW9uCtGI0LAKeWFsCuKWgSQoJwriloFzd2l0Y2gK4paBdmVjdG9yCuKWgVRob20K4paBdmlydApsZWFzZWQK4paBY292ZXIK4paBcmVzcApha28KcmVuY2gKb3RhCkNlbGwKYW5nZWQK4paBKz0KbGFjCnNrYQpuZXh0CuKWgUludGVybmF0aW9uYWwK4paBV2lsCuKWgW9udAppYnIKdXN0cgriloFibGFjawriloFzZWxlY3RlZApjaGVyCuKWgWxpdGVyCnJvb3QK0LvRgdGPCuKWgUxpZmUK4paBaW5zZXJ0CuKWgW1hdHJpeAppc2VzCildCuKWgXBlbApPdmVycmlkZQpyeXB0CuKWgWZvcm1lcgriloFGaWxtCuKWgU5vcnRoCmNsaWVudAriloFuaWdodArRhdC+0LTQuAriloFBdXN0cmFsCuKWgVJldApyaG8K4paB0L/QtdGACmlwZWRpYQriloFleHByZXNzCuKWgXRoaXJkCuKWgW1ham9yCuKWgWdyYWQKb3dlCuKWgWJlbGlldmUKb3VybmFsCuKWgXN0YXR1cwp1bmMK4paBZG91CuKWgUpTT04KdWlzCuKWgXBvcHVsYXRpb24KZW56CuKWgVdpbGxpYW0Kc2YK4paBT2JqZWN0CuKWgWNpbgriloFEaQpjdXJpdHkK4paBT3BlbgriloHQu9C1CmxhcgphZGRpbmcK4paBa29tCn0oXAriloFraWwKdW1lcgoiLz4K4paBZmVhdHVyZQriloFBcmUKY2tzCuKWgUludGVybmV0CuKWgWloCuKWgXN0YXJ0ZWQK4paBZWFybHkK4paBYmVnYW4KVEgKcHl0aG9uCmFzcAriloFGcgriloFjbG9zCmlzdGljCuKWgW11c2ljCuKWgWRpZwriloFpdGFsCuKWgURhdmlkCuKWgXdlYnNpdGUK4paBY29udHJvbGxlcgriloFNZXIKY29udGV4dApwcm9kdWN0Cm9zcAriloHiloHiloHiloHiloHiloHiloEK4paBanVuCnJvd24K4paBQXoKIjoiCuKWgWFhbgriloFEYXRlCm11bHQK4paBYnJvd3NlcgrRgNC10LQKd2hpY2gKUkEKcXVhcmUK4paBUnVzcwriloFzb29uCuKWgVByZQp0YXUK4paBd2VlawriloHQsdCwCuKWgW9jdAriloF0b3duCnJveQriloFlbHMKYmxpYwp1bmRsZQriloFIaXN0b3IK4paBZm9pCuKWgW1vZGVscwrQt9C+Cm9ueW0KUGFyYW0K4paBTWV0CmdlbmVyCmrEhQriloFlc3BlCkNFCuKWgWRldmljZQplbGxvdwriloFkZWJ1ZwrDqXJpZQp1c2luZwrQsNC90LMK4paBKikKdWRpCuKWgU1pc3MK0LrQvtC8CnBvc2VkCuKWgXp3ZQrRltC9CuKWgVJvYmVydAriloFPY3QKbG9wCmphcgriloFhdmVyCuKWgWhhYml0CuKWgTo6CsOkbmcKU3RhcnQK4paBcG93CuKWgXNyYwriloFwYXR0ZXJuCuKWgdCtCuKWgWJpCm90ZXMK4paBX18K4paBc2VucwriloFhdm9pZApleGFtcGxlCnV0dApMYWJlbAp0ZXgKYm9vdAplc3RvCuKWgU1hcmNoCuKWgWVhc3kKaWN0dXJlCkdyb3VwCuKWgWZhdGhlcgriloF1cGRhdGVkCuKWgVZvCuKWgUlJSQpvbWVnYQriloFhbGxlClJlYwp5ZwrQt9C1CuKWgURpbQpuZWN0CuKWgVRvcgriloFkZXV0c2NoCuKWgXdoaXRlCuKWgW5hdGlvbmFsCnBwZQriloFhaXIK4paBcGFzc3dvcmQKZGV0CuKWgWJpZwriloFVc2UKY2FsbAriloFleHRyYQpXZQphbmlhCuKWgWhvbGQKQ29udHJvbAriloFDTwriloHQvNGWCml0aQriloFLZQplbnUK4paBUGFyawrRgtC+0LwK4paBYXV0aAriloFjZW50ZXIKUGgK0YLQvtCyCmlkaW5nCuKWgWFjcm9zcwriloFzb25nCuKWgXBoeXMK4paBbnVtZXIK0YnQsAriloFBbGV4CuKWgXByb2JsZW1zCuKWgUVycm9yCmZvcm1hdAriloFBY2MK4paBc2l4CuKWgWRiCuKWgUNhc3QKb21zCnByb2plY3QK4paBdmVydApjcmV0CuKWgWhlYWRlcgriloFzdHJlYW0KaWRzCuKWgXRvcgriloFzZXB0CuKWgWVzdGltCuKWgWRlY2wK4paBZ2F2ZQriloFwbGF5ZXIKeXNpcwriloHQtNGA0YMKYW1tCtGJ0L4K4paBKCIK4paBYXgKUHJvcGVydHkKdXNyCuKWgXNvbWVvbmUK4paBaW1wcm8KYWRlbgpyb3RlCuKWgdCc0LgKaWgKKyspCuKWgXZpZGVvCuKWgWV4aXN0cwrQutC70LAK4paBY29tcGxldGUK4paBc2Vzc2lvbgriloFjb25zdGFudAppY29zCuKWgXBhY2sKcm9tZQplZ3IKQXBwbGljYXRpb24K4paBeWVzCuKWgWVsbGUK4paBZW1haWwKb3JmCmNhc2UK4paBcG9pbnRlcgriloFyZWdhcmQKc2VuCnN0YXR1cwriloFtZXMK4paBZGVsbGUKaW5ndG9uCuKWgUJhcwopXgpkZXZlbG9wCuKWgWZvcmNlCuKWgWNoYXJhY3RlcnMK4paBY3Jvc3MK4paBZGVhdGgK4paBdGFrZXMKw6lyaQppZ25lCtGH0LXQvQpVUAouOgpUaHJlYWQKanUKaW55CuKWgWRldGFpbHMK4paBeG1sCnRhaXQKb3V0cHV0Cm1lc3NhZ2UKJycK4paBQnJpdGlzaAp2aWxsZQriloFEaXYK4paBVXNlcgpjbQrRh9C90L4KY29sdW1uCmVxcmVmCsOzcgpvbm9tCuKWgVBvc3QKZWxsZW4KQWIKdWx0w6kK4paBcGVyZmVjdAooKXsKdmlzaW9uCmFjdGl2ZQpsaWVyCnJpagpzZAriloFrw7YK4paBbmllCuKWgXJlbGlnCuKWgW90CuKWgW1hY2hpbmUK4paBaGVsZAopJC4KPT09PT09PT0KY2tlcgrQstGLCmJvcm4K4paBcGFzdArRgNC40Y8K4paBRHIK4paBcmVndWxhcgriloFwcm92aWRlZApURVIK4paBdW5pdmVycwriloFnZXRzCuKWgW51CuKWgS8qCm9iZXIKZmluCuKWgW5lbGxhCuKWgWJlY29tZQriloFgYAriloFoaXN0b3J5CuKWgVNvbAriloFSYWQK4paBdGVybXMK4paBZXZlbnRzCmx5bXAKKSkpCtGA0L7QstCwCuKWgWFic29sCuKWgXNvZnQKbGlua3MK4paBaG9wZQriloFzdWJqZWN0CiIpLAriloFjcmVhdGluZwriloF9DQriloFTawriloFmbG93CuKWgdCg0LAK4paBYXNzZXJ0CnpldAriloFGcmFuawpzYQriloFkaXN0cmlidXRpb24KY3UKYmFuZAppenoK4paBam9iCmluZXIKc3RydWN0CsOhawpUTwphdWYK4paBZXh0ZW5kcwriloFHcmEKZGlzcGxheQriloFzaWduaWZpYwpvbmV5CnNvdXJjZQptaWNyb3NvZnQKaW5kZXIK4paBcXVpY2sK4paBd29uZGVyCkluc3RhbmNlCmVsbGVzCsOobWUK4paBY29tcGFueQp1w58KLn0K4paBc2VwYXJhdGUKVU0KSEVSRQriloF3cml0aW5nCml0dXRpb24K4paBR2VzY2gK0LzRjwriloFKYW1lcwriloFERQriloFTcGUKcHJvY2VzcwpTdHIK4paBc3ltCuKWgWFvCuKWgXd5CuKWgWFueW9uZQriloFVcAp1c2V1bQphcm9uCuKWgWRlZmluaXRpb24K4paBYCQK4paBZmF2CnJpYnV0ZXMK4paBUsOpCm9ncmFmaWEKZWxlbWVudApjYXAKcGF0CuKWgUJyYQopKAriloFhY2NvcmRpbmcK0LPQtQriloFwaWUKZWxpCn0iCuKWgWFjdGl2CuKWgXN0b3AKcGF0Y2gK0YLRlgriloFKb3NlCkVuZAriloFwcnplCuKWgWFnZQppdG9yeQriloFQSFAKYWdlbWVudAriloFgLgriloFwcmV0dHkK4paBcmVjb21tCuKWgXN1ZAriloFyZXF1CuKWgdC+0LHQu9CwCmF0aXZlcwriloFIaWdoCsOhegpvdWwKcmVzdAriloFUZXIKdW5kZXIKdGhlcm4KY2VudGVyCuKWgXVyCmxhdAriloFpbnRlcmZhY2UK4paB0LjQvQriloF3aG9zZQppY2FzCmFtZW4KRmlsdGVyCuKWgXN0YXRpb24KUGFnZQriloFhcm0K4paBZXllcwriloHRgNCw0LkK4paBc2V1Cm9saQp3aW4KbGlrCmdleApjaGFuCmlkZW5jZQphcmdzCmFraW5nCuKWgUdvb2dsZQriloFTdHVkCuKWgWhvCtGC0L7RgNGLClN1CuKWgWF1dG9tYXQKw6ptZQriloFjeQpsb3IK4paBc3RhY2sK4paBU0VMRUNUCkFGCuKWgT4+CuKWgWNvbXBldAriloFwYWlyCuKWgWluZ2zDqXMKUmVzcG9uc2UK4paBRmlnCmdyYWQK4paBZG9jdW1lbnRhdGlvbgriloFjYW50CuKWgWFwcHJlY2kKw6VuCuKWgWxlYXJuCuKWgWluZGVwCuKWgXBhbApwYWNrYWdlCmFyZXMK4paBQmVybGluCtCx0LvQuApyZWljaArRkdC9CuKWgXNhdGlzZgriloFyZWdpb24K4paBZnJpZW5kCuKWgUdlb3JnZQriloHQktC+CuKWgSIiCuKWgWRlc2RlCkZhY3RvcnkK4paBQ291bnR5Cm91dgriloHigJgK4paBaW5zdGFsbGVkCuKWgXdhbnRlZAriloFQeXRob24K4paBaW50ZXJwcmUK4paBaW5jbHVkZWQK4paBKCgK4paBYWx0ZXJuCmlzdG8KZ24K4paBYm9yZGVyCnBkZgriloFkdXAK4paBZG93bmxvYWQKanVzdAriloFtZW1iZXJzCmNoaWxkCuKWgXBheQriloFjZXIK4paBbG9va2VkCuKWgWNvcnJlY3RseQphdXRoCuKWgdGB0YLQsNC9CuKWgWVzcAriloFkZXNjCmViZW4K4paBcXVlc3Rpb25zCm1hbAriloFhYmdlcnVmZW4K4paBQmFuZAriloFbXQpCYXNlCuKWgXJpcwriloFmb3J0CuKWgUlkCuKWgXZhcmlvdXMK4paBTGVhZ3VlCuKWgUhhbmQK4paBVHlwZQppcmwK4paBRmUKacOpbgppdHRlcgriloFmYXN0CnN0YQriloFleGNlcHQKaWN6CuKWgUZyZW5jaAriloFlbnZpcm9ubWVudAriloFjb25zZQrRg9GACtC+0LPQvgriloFuZWNlc3NhcnkKdGFyZ2V0CuKWgXJlYWRpbmcKaG9tZQp6ZWljaAriloFlcXVhbAriloFwacO5CuKWgXByZW0K4paBZGlmZmljdWx0CuKWgXVuaXQK4paBcmVwbGFjZQriloFoZWFydAriloF0YWxrCkFNCuKWgVJFCuKWgVBlcnNvbgplbmRlbmN5CuKWgWltbQriloFodW1hbgpkbgriloFLaXIK4paBQXV0Cmtub3duCuKWgWZyZXF1CnN5c3RlbQrQu9Cw0LIK4paBU3oK4paBR2FsCtC90L7QtQpzZWx2ZXMKcmlnaHRhcnJvdwriloHQodCwCj0iQAriloFidWlsZGluZwppbXBvcnQK4paBZmFtCuKWgWRlbGV0ZQphaXJlCm1hcnkK4paBZnVuZAriloFwYXJ0aWNpcAriloFzeW4Kc2luCuKWgWxvd2VyCuKWgXplcm8K4paBc2VjCuKWgWZyYQpQb2ludAriloFmYWlsZWQKaWVudG8KY3VwCuKWgXNsb3cK4paBbmF0aW9uCsOkaHIK4paBaW5mbwriloFQdWJsaWMK4paBZGVjbGEK4paB0KLQsAriloFzb2xkCuKWgVJlbQriloFQaGlsCtGB0YLRgNCwCuKWgW1laHIK4paBV29yawriloFOb3JkCuKWgWZhaXQK4paBZ2V3CnByaW50bG4Kb2JpbGUK4paBS29uCuKWgWFzc3VtZQpsYW5kcwriloFhbW91bnQK4paBUHJlc3MKw71jaAriloFtYXhpbQriloFDaGFtcGlvbgpsaWJyYXJ5CmHDsQriloFXYWwKQ29tbQpdXQriloF6dwriloFzb2NpYWwKTEkK4paBVW50ZXIKdm9yCkRlbHRhCmVtYWlsCnJhaW50Cm9uaQriloFhbHQK4paBbsOpCtGG0LjRjwpvZ3JhcGh5CuKWgW1lbnRpb25lZAriloE8PQriloFjZXR0ZQriloFjdXJyZW50bHkKdmFyZQppemluZwriloFEZWYKaWNvbArDvG5kCuKWgWNvbmZpZ3VyYXRpb24KZXN0aWcKSUlJCmxhbQppw6hyZQriloFFYXIK4paBdHUKRW50CuKWgVVzaW5nCuKWgdC60L7QvApjaWUK4paBcHJvb2YK4paBaW52b2wK4paBSGlzdG9yeQo+PAriloFBTkQKYXZ5CuKWgXJlbGF0aW9ucwokewriloFjb21lcwriloFkaXJlY3Rpb24K4paBSnVuZQriloFXYXkKQ29tcG9uZW50CmVjaAriloFQZXRlcgpzZwriloFzdHJhCnVjdAriloFpbXBsZW1lbnRhdGlvbgphdHRsZQriloFjegpwbG90CuKWgXBsYXllZAoiPjwvCuKWgWZpdmUK4paBY29sbAriloFDaGFybGVzClRyYQriloFzdW8KZmlsZXMKZW50ZXMKcmVzcG9uc2UKSG93CuKWgVNvY2kK4paBaWduCuKWgWxlZAriloFHZXJtYW4KdWRvCuKWgUR1CuKWgXRpbQpvdW50ZXIK4paBYXR0YWNrCnVyaQriloHQsNGACmVzc2UKaXZpbAriloFKdQriloF2ZWwKbWF0cml4CuKWgU1hdApnaW8K4paBWmVpdApWRVIKaGFzCkNvbm5lY3Rpb24K4paBaWhyCuKWgWF0dHJpYnV0ZQriloFkaXNjdXNzCuKWgWRvbWFpbgpiaW5kCuKWgVNlYwpyaWsKY2xvc2UKZ2luCuKWgWxvdmUKYW50bwpnZW50CmFiYQpqYW5nbwpiaQriloFvYnNlcgppdHRpbmcK4paB0YDRgwp9PQphZ2VuCkJDCnNvbWUK4paBQnUK4paBc29jaQriloFpbmRpdmlkdWFsCuKWgWRlYWwK4paBb3V0c2lkZQpyaW8KRXhlYwphbmRpZAriloFidXNpbmVzcwriloF0ZW1wb3IK4paBVHVyCuKWgSghCnJpdGVyCuKWgWdvb2dsZQpdOgppdHRlCnhpCuKWgdCf0LAKaG9sCtC90YwKcmluZwriloFzdWwK0L3QvtGB0YLQuApfLgpnYXIKVGFzawriloFDaGVjawriloFtb2Rlcm4K4paBd2luCnVzdGVyCmhhbgpmb3JtYXRpb24Kdm9pZAriloHRhNC4CuKWgXVzZWZ1bAriloFFbmdsYW5kCmxvcwpldGltZQpldXIK4paBdW5pcXVlCuKWgdC60LDQugp5aW5nCm9iagp1aWQK4paBd2luZG93cwriloFkaXN0YW5jZQriloFub21icmUK0ZbRjwpvY3VzCmFobgppZXJ0ZQriloFkYXIKU0kKbG9uZwphc3RhCml2ZW4K4paBdG9sZAriloFHcnUKZm9vCuKWgWNhbGxpbmcKaWVtYnJlCuKWgWZ1dHVyZQpwcsOocwpsZWVwCmF2aWdhdGlvbgpQT1NUCuKWgWRlc2NyaWJlZAriloFub2NoCnVuaXQKYWxsZW4K4paBYnJhbmNoCmZhCuKWgWZpbGwK4paBb2JqCuKWgXRyZWUK4paBd3VyZGVuCuKWgUxpdGVyCnJvdApzcGxpdAplbWVpbgptb2R1bGUKQ0EK4paBb3BlcmF0b3IK4paBd3JvdGUK4paBSmFjawpvbG9naWUK4paBQW50CtGC0LXRgApzdHJlYW0K4paBUXVlCmVwc2lsb24Kbm9uCnN0ZWluCuKWgXNpbXBsCnB1YgriloFKdWx5CuKWgW5hdHVyZQriloFEYXRhYmFzZQrDs2wK0L3QuNC8CuKWgVZJCsOqdHJlCmlsZXMK4paBd2VsCicpLAriloFtdXQKbG9jYXRpb24K4paBdGhlcmVmb3JlCmVsbGkK4paB0IYKbsOpCuKWgdCw0LIKbGVkZ2UK4paBY29udmVyCsOtbQriloFYVgp2aWRlcgriloFKYW51YXJ5CuKWgXVzdWFsbHkK4paBcmVsZWFzZWQK4paBTWkKSGVhZAppbGxlcgriloFqYW4K4paBbGV0dGVyCnByb2R1CnJkCuKWgUNhbQosJwriloHQpgriloFwdXNoCnVwZGF0ZQriloFtYXliZQpIdHRwCkAiCtC80LXRgApzZXJ2aWNlCnBhcnNlCuKWgWRhc3MKw6puCikiCm1vcmUKLyoK4paBbWFzCuKWgWxpa2VseQriloFtYXRlcmlhbAriloFbWwriloFsb25nZXIKYmFsCuKWgUFyY2hpdgppZ3QK4paBZWd5CmlkZ2UKaWd1CmNvbmYK4paBaW5jCmNvbnN1bHTDqQriloFtYWkKV29yawriloHQs9GA0LAK4paBT2N0b2JlcgriloFnbG9iYWwK4paBc2VsCuKWgW11bmljaXAK4paBdmlvbAriloFEb2VzCuKWgVxbCtGB0LrQvtC8CuKWgWNvbXBvcwrQsdGA0Y8K0LLRjwriloFyZXNwb25zCuKWgWNvbnNpZGVyZWQK4paBSmFwYW4KcGVzCm9zdG8K4paBbWlsaXQKU1AK0YHRiwphdHRyCmNpbAppcmVjdG9yeQphdmluZwriloFEZWwK4paBcHJldmVudAppZGFkZQpnaXQKaWZvcm0Kb3V0ZXIKaW5jdApsZXZlbAphdGV2ZXIK4paBcmVwZQriloFleGMK0LTQsNGAClN0eWxlCuKWgVRob21hcwplbGluZQriloHQtgp1bnRpbWUK4paBbGFyZwpUcnVlCi4qCmNyZWVuCnlsZXMK4paBdHJhbnNsCuKWgdCh0L4KZW5zaW9ucwrDpGwKaXNzZQriloF2b2x0CmNpYWxseQpuaWsKLl0K4paBU3RhZHQK0LzRiwpmaWxsCmxvdgriloEiLwpTcAriloFBaXIKQ2FsbAriloFudXIKQ2hlY2sKaWVuY2UKZWZpbmVkCuKWgdCy0YDQtQrFgm8KZHoK4paB0L7RgAppa2VyCm93YQrQvtCy0LjRhwpyw6kKT0wK4paBbGluZWFyCuKWgWV4cG9ydAphaHIKaWNpYWwKUmVwCuKWgW5hdHVyYWwK4paBY29wCuKWgX0pCsOnw7Vlcwp6egpXaGF0CuKWgUhvdXNlClJlZgppbmdlcgriloF0YWtpbmcKbsSbCuKWgUVpbnoK4paBZGFtCuKWgWlzc3VlcwpCdWlsZGVyCmVkaXQK4paBcHJ6CnBhc3N3b3JkCkdlbmVyCnJpbQriloFwYXJ0cwotLS0KaWdpbmFsCuKWgVNjaQriloFtb3RoZXIKcmVhCuKWgWNvbnRhaW5lcgrQtNGPCuKWgUlQCuKWgW5vbmUK4paBZm9sbG93ZWQK4paBcGxlCuKWgW1lYXN1cmUK4paBdG91dApFeHQK4paBVFYK4paBZXhwbGFpbgriloFwYXBlcgrRgdGC0ZYKd3MKV2lrCuKWgW1tCuKWgU5vcm0K4paBU2VydmVyCmZvbnQKZWNhdXNlClRSCuKWgdCx0LgKTGEK4paBZW5zCuKWgXJldHIK4paBU2lsCuKWgXNlcXVlbmNlCmFyYwpJVgp6w6EK4paBQW5kcm9pZAriloFTdXBlcgriloFyb3oKb3ZpZQpPbQriloFXZWxsCm1ha2UKb3JwaAriloFKZXIK4paBUm9zCnJlZmVyZW5jZQriloFmZWF0dXJlcwriloFHZXIK4paBTGVnCuKWgWxhdGUK4paBYWRkaXRpb25hbAriloFmbG8K4paB0LXQs9C+CuKWgWFsZ29yaXRobQpCQQprYXIKSVAKXSk7CuKWgWFwcGVhcnMKeXcK4paBdGVtcAriloFhdXNzaQptZXRob2QK4paBcGV0CnN0cmFwCmFybmluZwriloFjdXQK4paBU2EK4paBdHJhY2sK4paBZW1wbG95CuKWgWluZGUKcmF2CuKWgWdlbmVyYXRlCmJlcwphcnRzClN0YXR1cwp1Z2UKYWxpcwriloFvdmVycmlkZQriloFmaQriloFsb3N0Cm90ZWQK4paBcm9vbQriloFjYWxscwriloFjb25zaXN0CtGA0LXQvQriloF2aWxsYWdlCmRpc3QK4paBdGVjaG4KZW56YQriloHRgNC+0LcK4paBQ2F0YWxvZwriloFiZWNvbQpyb3dzCuKWgU5lbApjb21wbGUK4paBcHJlbWkK4paBcm90CuKWgVdlYmxpbmtzCuKWgWZvb3RiYWxsCuKWgWNvbXBhcgriloFsaXZlCtC60LjRhQriloFlcXVpdmFsCmNhcGUK4paBR2VuCm5kZXIK4paBVmlzCuKWgWJlaGluZApnZXJzCnZva2UK4paBbWVkaWEKRVgKdGhhdAriloFzb25vCuKWgW15c3FsCmV2CuKWgXJ1bGUK0LTQvtCyCmFjYwriloFXSEVSRQrQtdC90LUKR3JpZAriloFqdWwK4paBbW9ydAriloFnZW5lcmF0ZWQKZW5jaWEKYWN0ZXIKY2x1ZAriloFzY2VuCuKWgWNsb3NlZAriloFNaWNoYWVsCuKWgW1vdW50CikkLAriloFkcm9wCuKWgWNvbWJpbgp0b2NvbAriloFnb2VzCuKWgWdlYgpNRAriloFBbnRvbgriloEkKCIKVGVtCuKWgWNhCuKWgWluc3RydQplZHMK4paBdG9vbApteXMK4paBcm91dGUKIikpCtC/0YDQtQriloFmbG9hdAriloFzZXJ2aWNlcwriloHRh9C4CtC60ZYKZW1ibHkKYWtlcgriloFTb24K4paBTWF0aAphc3NlCm91c2x5CmxpY2F0aW9ucwriloFydQriloHRidC+CuKWgUNvbnN0CuKWgWltbWVkaQpGTwpvcm8K4paBcHJvZHVjdGlvbgpyZWkK4paBanF1ZXJ5CmFubnQK4paBV2hpbGUK4paBc24K4paB0LPQvtC00LgKRm9ybWF0CuKWgXN0YXIK4paBU2VuCuKWgWtvCk5BTUUK4paBcHLDqXMKY2hhCndoYXQKb21pbgplbmRhbnQKaHkK4paBb2JzZXJ2CuKWgXByZWZlcgrRg9C9CuKWgWNvbnN0cnVjdG9yCmJzCuKWgW1hYwriloFCcmUK4paBSW5zdGl0CuKWgXN0b3J5CuKWgXN5bWJvbAplbGVzCsOfZQphc2luZwriloF3ZXN0CmlhbnMK4paBbWFzdGVyCtC10LcK4paBd2F5cwpibQriloFwaWNrCuKWgWRlcGFydApCYWNrCmVuawpsaXBzZQriloFtYXRoCuKWgUZyYW5jaXMK4paBRGVjZW1iZXIKZnMKcnVtCuKWgWRldmVsb3BtZW50CkxUCmVybmVsCuKWgVRydWUK4paBTW9yZQpyYW5nbGUK4paBY29uZGl0aW9ucwpPcHRpb25zCuKWgWdsaQriloFvcGVyYXRpb24Kw6lrCmFjaHQKaWdodHMK4paBbWlzdAphbmRhCuKWgWVuZXJneQriloHQttC1CuKWgXdvbWVuCmFrdAriloFDSApnZWJyYQriloFtZWV0Cml1CndlbGwKw7ZsCuKWgWdvdmVybm1lbnQK4paBSm9zCmllZwriloFzeW50YXgKZml4CuKWgVBldApqcXVlcnkK4paBY2FyZAriloFwcmluY2lwYWwK4paBZHJ1CuKWgXRlcnJpdAriloHQv9C+0LIK4paBU1MK0YDQuNC4CnRyZXMKYWduZQpseWluZwp0aWxkZQpiZXJuCmVudGVyClBlcgriloFzb21ldApMb2FkCmxpY2UK4paBc291cwriloFMb3VpcwriloFsb2dpYwriloFPdGhlcgriloFjaXIKw6l2CmNocm9uCuKWgWhhbgriloFtYXJnaW4KV2luZG93CsOocmVzCm55Y2gKcHVzaApib2xkcwriloFsYXlvdXQK4paBW2AKQ2hhcgriloFDYXAKYm9sZHN5bWJvbAriloFSb21hbgriloFNYXgKOigK4paBQ29kZQppc2luZwriloFzdGF0ZXMK4paBZXhpc3RpbmcKc3VwcG9ydAriloFyZXNlYXJjaApsaWNhdGUKdmFyaQriloFiaWoK4paBYXBwZQriloFoYXBwZW5zClwiCuKWgWNvbmNlcm4Kd2VzdAriloFzYXlpbmcKcGlkCuKWgXJlY29nbgriloFIZXQKQ2hpbGQK4paBY3MKXCwK4paBY2xlYW4KbGVjdGlvbnMKYWNjZXNzCtCy0YMK0L/RgNC+CmFjaXR5CuKWgU9mZgriloFlYXNpbHkKw6hxdWUK4paBamFrbwriloFpegriloFIYQriloFEZXQK4paBZm9ybWEKc2NoZQpzd2VycwriloFvZmZlcgpxdWlyZWQKVXNlcnMK4paBc3Vic3QKPigK4paBZ3JvdW5kCnVubgpyb2QKc3BlCnVyc29yCuKWgWxlYXZlCmVyawriloF0YWwK4paBYm90dG9tCklPCuKWgXBvcHVsYXIKaWdvCuKWgVRpbWUKdmFsdWVzCuKWgUxvYwriloFDbHViCuKWgWFuY2hlCmlhxYIK0ZbRlwpPbWVnYQriloFsb2NhdGVkClVybAriloFFc3AK0LvRiwrRhtGMCnVsYXRlCuKWgWpvaW4KYXZlcwp2ZXQKbGlvCnJlbW92ZQriloF0b2tlbgriloFvcHRpbQriloFjbGFpbQpvbG9naWNhbAriloFjc3MK4paBYWx0aG91Z2gK4paBcHJpdgriloFCYQrDvGwKZW50aWNhdGlvbgriloF2ZW4KU2VydmVyCuKWgUNvbmcKTkVUCkNPTgpkdApwZXJ0aWVzCuKWgWVwaXMKd2lraXBlZGlhCuKWgWVuZ2luZQriloFmZXIKZ2V0RWxlbWVudAriloFDbGEKxZnDrQriloFyb20KdmFyZXBzaWxvbgriloFwcmltZQppc3RyeQpwZWN0ZWQKb3JhZ2UK4paBdG91Y2gK4paBWycK4paBZGFuCkVtCmFjaW9uZXMKQ2FuCuKWgXdob20K4paBYmVoYXZpb3IK4paBc3RyaW5ncwriloFFdXJvcAriloFSb20KY2lyYwriloFwdW4K4paBcmVnaXN0ZXIKYnVudHUKcmFpbgpPYgpUQQriloFzb21ldGltZXMK4paBbWVudAriloFpbnRlZ2VyCuKWgUphYwpsZWdhdGUKb3RoaW5nCuKWgXNvdW5kCmxhY2VzCuKWgdCR0LAKcmIKZGkK0LvQtdC90LjRjwriloF0aGVtc2VsdmVzCuKWgUJsYWNrCuKWgXNldHRpbmdzCuKWgW5vcm0K4paBcnVucwriloFOT1QKS0UK4paBcGVyaGFwcwriloHQrwriloFtb2wK4paBYW5zCmF0cmUK4paBRGllcwpUb2tlbgphbmllCuKWgWFsbG93ZWQKUmFuZ2UK4paBR3JvCnZpYQp1dG9yaWFsCmVuc29yCmVzdGl2YWwKKTsNCtC60YDQsNGXCuKWgXR1cm5lZApzY29wZQriloFiaWVuCj0kCuKWgWV4dGVuc2lvbgphdG9yZQriloHQoNC+CuKWgXNwZWNpZnkKZWR1CkRhdG9zCuKWgXN0b3JlZAriloFwYXJzZQriloFhbnN3ZXJzCmlsbHMK4paBaGVhcmQKbHUK4paBVEhFCuKWgWfDqW4K4paBZnVsCmV6CuKWgVByZW0KdGhlbgpkcArRgdGM0LrQvtCz0L4K4paBU2kKw6dvCkVkaXQK0LrRltCyCuKWgdCb0LgK4paBU2luZwriloFjYXRlZwpFcXUK4paBZ3VlcgpXaWR0aAriloFDaHJpc3RpYW4Kc3RhdApXcml0ZQriloF3b21hbgp3b29kClZpcwrRgNCw0LcK4paBJCRcCm9kZXIK4paBYm9vbAriloFpbnRlcm5hdGlvbmFsCtC90L7RgdGC0YwK4paBUmljaGFyZAriloFhZGRpdGlvbgriloFNdXNpYwriloFhYmVyCnTDswriloFoaWVyCnVnaAriloFwb2IK4paBdGFibGVzCkRvCuKWgWhpZ2hlcgpwc2kKcsOhCuKWgWFjdGl2ZQriloFUYWJsZQrRmtC1CuKWgWRlc2NyaXB0aW9uCuKWgXNlZW1lZArDrXN0CuKWgW15c2VsZgriloFtZW51CmRlbAriloHFvgplbGUKQXV0CuKWgdCz0YDRgwptdXQKb29uCmFzYwpidWcK4paBbW92ZWQKQ0wK4paBZGF0YXMKU08K0L7Qu9C+CuKWgUdlb3JnCuKWgXJlYWNoCjoiCuKWgWV2YWx1CuKWgUhlbAriloFSaXZlcgriloHQkNGACi8vLy8K4paBc2V0cwriloFPbHltcApBZGFwdGVyCi4nCm92ZXJuCuKWgUxvcmQKIS0tCmpwZwppbWVudG8K4paBUHJvZgriloFhY2hpZXZlCn06CuKWgWluY29yCuKWgW9uZGVyCmVuZ2wKQUJMRQriloFNYXJ5CuKWgXdhcmVuCmxhZ2UKRGVjCtCw0L3Qs9C7CmVuY2lhcwrQu9C10LkK4paBTWFjaGluZQriloHQkNC9CnVkYQriloHFmwriloFYWApvbmx5CtC70LXQvdC40LUK4paBdGFtYmnDqW4KbmVqCuKWgXJlbGF0aXZlCuKWgWhvdXJzCuKWgWluZGVlZAp1bmRvCmluZ3UKYXJlYQriloFDcmVhdGUKYmVpdAriloFyZW1vdmVkCm1hc3RlcgpoYXVzCuKWgUJlcm4K4paBc3BlZWQK4paBQmF5CuKWgUF0dAriloFOb25lCmFwcGxpY2F0aW9uCsO8ZAriloFmaXQK4paBTWFyaWEK4paBbm9yZAriloFzcGxpdAriloFzdHJ1CuKWgW9mZmljaWFsCuKWgWV4ZWN1dGUKb3V2ZQp7ewriloFBcAriloHQutGDCklMCuKWgV4KZGltCuKWgXNldHVwCtGB0LoK4paBc2hhcmUK4paBbWludXRlcwpnbGUKb2NvCnN0ZWxsCuKWgUNvdW4K4paBdGVtcGVyCmtlaXQK0YHRjNC60LjQuQphbwriloFMb25nCigmCtC60LDQvQriloFkZW5zCkJ1dApYWApEQVRFCmdhbgouKS4K4paBZW50cnkKaW5zdGFsbAriloHQt9C90LAK4paBU29tCkNvbW1hbmQKw59lbgriloFzdGFydGluZwriloFzdG8KSUcK4paBbWluaW0K4paBZXhwbGljaXQK4paBYnl0ZXMK4paBcGFydHkKdG9iZXIK4paBR3JhbmQK4paBVm9yCuKWgWxldXIKRG9jdW1lbnQKZXJjCmVuc2l2ZQpDUAplbnYK4paBYXJndW1lbnRzCuKWgUdyYW4KYXJpbHkK4paBbGluCnRuCigtCmdlcQriloFGYW1pbAriloHQkdC+CuKWgXRvdXIK4paBbmF2CuKWgXByb3Blcmx5CuKWgU1ycwriloFNZWwK4paBc2NhbGUKYXN0aWMKZHMK4paBU2lyCuKWgUNodXJjaAp9XntcCnlvdQovLgpTbwriloFicm91Z2h0CuKWgXJvbGUK4paBU3VyCuKWgWZvbmQK4paBZ2VzCsW8ZQpldGVuCuKWgcOpdGFpdApTRVIK4paB0LrQvtGC0L7RgNGLCuKWgWVxdWF0aW9uCmFzcHgK4paBQWZyCuKWgWRpdAplbXB0eQphbGVtZW50CndyYXAK4paBQmV0CuKWgWNvbGxlY3QK4paBZ2l0CuKWgXZpZQriloEuLgrRgNC+0LkK4paBPD8K4paBZWR1YwprbAplbnNpcwriloFPUgriloFIaQriloFDb3VyCtCx0YsKY2VydAriloFHZXMKZXNzb3IKTWFpbgriloHQu9GOCmNhZGUKZG90CmF1Z2gKaGliCuKWgWF1dG9tYXRpY2FsbHkK4paBc3BpcgpwcmVzZW50CuKWgUZlYnJ1YXJ5CuKWgUVsbGUKY3VzdG9tCuKWgXByb2dldAriloFhZG1pbmlzdHIKQUEK4paBYm9ybgriloFDb2xsZWdlCmF0aG9sCmApCmllcnJlCuKWgXJhbgriloFwcm9mZXNzaW9uCm9nZW4KfV97XAriloFhY3Rpdml0eQriloFzY3JvbGwK4paBcHJvdmUKaWJyYXJ5CmVyaWVzClJlYWQKeWVhcgriloFsYW5nCkRldAriloFrbmV3CuKWgXByb3RlY3RlZAriloF3b3IK4paBZWZmaWMK4paBcsOpZwriloF0aGVvcnkK4paBcHVibGlzaGVkCnJlYWwK4paBVG91cgriloFkdXJhbnRlCsOkcwriloFwb3NpdGl2ZQriloFmb3J3YXJkCuKWgVJlbAp7IgpwYXJrCuKWgVVtCuKWgWVlcgplbnRhCuKWgWltYWcK0L3QvtGXCnBpZWwK4paBalF1ZXJ5CmlzbWUKY2huaQpvcmdhbgriloFhcmdzCm9pcgpoZWltCnJpYW4KZWxlc3MKdXNlcwrQtNC40L0KaWNpw7NuCuKWgWluZHVzdAriloF3aXNoCsOhbnkKb2NhCuKWgWFuZ3VsYXIKaWV2ZWQK4paBb2NjdXIKU0VMRUNUCm9uaWEKYWRtaW4K4paBQmVzdAriloHRjdGC0L4K0L7Qs9GA0LAK4paBbG9zcwriloFiYWwK4paB0KDQvtGBCuKWgWNhcmVlcgriloHQv9C1CklYCuKWgWZhbGwK4paBUm9iCuKWgU9QCmVuZWQKZ3JhcGhpY3MK4paBY29taW5nClVwZGF0ZQriloFkaWVkCmVkZW4K4paBYWJzCuKWgWlubmVyCuKWgXRyYXYK0YHRgtC+0Y8KesSFCsOpcAriloFHcm91cAriloFjZWwK4paBc3R1ZmYK4paBc2l0dWF0aW9uCuKWgSR7CmFjbGUK4paBcHVycG9zZQriloFGaXJlCuKWgU9oCuKWgVNlY29uZAriloF1cGxvYWQKb3N0YcWCCtGO0YnQuApBdXRoCuKWgXNob3dpbmcK4paBY29tcGxldGVseQphdmVsCmJkCuKWgXByb2NlZAriloHDlgpjb250cm9sCuKWgXRoYW5rCnVuZHJlZAriloF0b20K4paBZXhhbXBsZXMK4paBcmVtZW1iZXIK4paB0YDQsNCx0L4K4paBcG9zc2liCuKWgWRldGVjdAriloFwb29yCuKWgU9wCuKWgWNlbnR1cnkKdXR0ZXIK4paBbG9naW4KdW5zdApPdXRwdXQK4paBb3RoZXJ3aXNlCmxhbgrRgtGD0YAK4paB0YHQvtCyCuKWgWdyb3VwcwpyaXAK4paBc2hlbGwK4paBZGlzdHJpY3QK4paBcmVjb3JkcwriloFzacOoCmZvcnR1bgplbnR5CuKWgVRyZQriloFjaGFuZ2luZwrRgdC70LXQtAphdWdodAriloFkZWVwCnN1YnNldAphZ3kKZW5kYXIKamF4Ck9NCkVsCmltYXRlCmFyZG8K4paBcGxvdAriloF2aXNpdAriloFidWcK4paB0LLRgdC1CuKWgW9wZW5lZAriloFyZXBsYQriloFIZW5yeQriloFwcApiYXMK4paBZGFyawriloFNYXJ0aW4K4paBcmVzb3VyY2UKaWxpbmcK4paBd2F0Y2gKcmVwbGFjZQriloFyZWxlYXNlCkxvY2F0aW9uCuKWgWxlYXJuaW5nCm1lbnUK4paBYWxsb3dzCtGK0YAKTGVuZ3RoCuKWgXdoYXRldmVyCuKWgXBhZ2VzCuKWgWNvbXBpbGVyCuKWgdGC0LDQutC20LUK4paBUGFuCmNvbW1hbmQK4paBcm9hZAriloF1bmxlc3MKYD8K4paBZGlzY292ZXIK4paB0L7QvQp9XQpib3VyCuKWgUNvdWxkCuKWgXJlZ2V4CuKWgXBzCkNECtC40LcK4paBd2lmZQphbWVudGkK4paBZmFpcgriloFEQgriloFDdXAKZW5lbgphamF4Cm90aMOocXVlCuKWgXNlaW5lcgppY2tlcgrDoW0KZXhjaGFuZ2UKb2xlcwpJRgriloHQlNC+Cm9obgriloFncm93CuKWgVRodXMKc3BlYwriloFoYXR0ZQojLAphbGxlbAriloFyYXRlCuKWgWNlbnRyYWwK4paBVmFuCmlmb3JuClJ1bgriloFzdHVkeQriloFYTUwK4paBQ2hlCuKWgWJlYXV0Cm1pZAriloFhZHZhbmNlClZlcgrRgtGPCuKWgWhhbmRzCuKWgWxheQriloHFoQriloFPUwriloF7fQpQcmUK4paBSGFsbAppbXAK4paBc3VuCuKWgXN0ZXBzCuKWgWp1ZApxdWkK4paBYm9vdAriloElPgriloHQktCwCm5vc3QK4paBbmVtCuKWgXBlbgpPcGVuCuKWgWNodXJjaArQutC+0L0K4paBYXZlcmFnZQriloFjb21tZW50cwriloFjb3JyZXNwb25kaW5nCmxldmFudAriloFiZWQK4paBbWVhbmluZwpWZXJzaW9uCkxpbmsKYmVsCuKWgWV4dHJhY3QKxZvEhwriloFJVgriloFJcgriloFjb21wdXRlcgriloFhZmZlY3QK4paB0KHRgtCwCkFYCnNvcnQK4paBc3BlY2llcwriloFPcGVyCuKWgWhhc2gKY2hlcwriloFFaW56ZWxuCuKWgWtleXMK4paBbWFyem8K4paBaW50ZXJwcmV0Cmhvb2QK4paBY29vcmRpbgrDtnMKcmFnZQpldHoKaXphCtC00LXRgArDvHQKXioK4paBbW9kaWZ5CuKWgXRlcm1pbgriloFjcmVkCnpvbgrQvdGD0Y4K4paBbWllCuKWgScnCuKWgU1vcwriloFjb25uZWN0ZWQKTk8K4paBY29tcGlsZQriloEiXAriloFjYXQKZmlkZGxlCnV0YQpBY2Nlc3MK4paBU3RvCuKWgUJ1cgriloFub3J0aApHYW1tYQriloFhbGxvYwpJbml0CuKWgUxpbmsKaWFsaXplCkltcGwKb3VwZQpyb3ByaQriloFHb2xkCuKWgXNvbG8K4paBRGlzdAosLQpuYXYK4paBYWxlcnQKZXNpcwriloFPcwovLy8K4paBZmViCuKWgS0tPgpmb290CuKWgUZyaWVkCuKWgUVpbnplbG5hY2gK4paBcmV2CnplaXQK4paBU3RhdAriloFTZWcK4paBYmxvCndpY2sKRUwKY2FwdGlvbgpoZWFkZXIK4paBcHJlc2lkZW50CuKWgW11bHRpcAriloFFaW56ZWxuYWNod2Vpc2UK4paBc2VpbmUKP+KAnQpGdW5jdGlvbgriloFTdGFuZAriloFGdW5jdGlvbgriloE/PgriloFCaWxsCuKWgXNwZWN0CuKWgXJlZGlyZWN0CnJ1cHQK4paBd2FsawrQstGI0LgKc3ByaW5nZnJhbWV3b3JrCnBsYWNlCsOpaG8KRW50aXR5CuKWgVNlcnZpY2UKaW50ZQriloF0cmFpbmluZwriloEoYArRhNC+0YAK4paB0LrRgNCwCmF1cgriloFmZXRjaAriloHigKAK4paBbcOqbWUK4paBKCcKYXRpdmVseQriloFleGVjdXQKw6RjaAriloFDYXRhbG9ndWUKYmFzZWQKQXR0cmlidXRlCuKWgXNwcmluZwpwaG9uZQrRgtGA0LAK4paB0L/QuArRgtC10YDQsAriloFgXAriloFPZApPbmUKc2VuZApib24K4paBwrAKTU8K4paBYXNraW5nCuKWgW/DuQriloFpbmfDpXIK4paBdGVzdGluZwriloHRhNCwCuKWgUJvb2sKaW1tCuKWgXByb2dyZXNzCmJybwpGaXJzdAriloFwaG90CuKWgU9OClRlbXBsYXRlCmRldmVsb3Blcgphbm5vdAriloE+PQptaXNzaW9uCuKWgWt0w7MKcGMKYmFjaAp6ZW50CnVlZAriloFvbmVzCtGY0LgK4paBcm91dAriloHQmtC4ClBvc3QK0YbRltGXCuKWgVZpcgpuZWsKYWdpbmcK4paB0L7Qugppem9udAriloFhZ29zdG8K4paBY2hvb3NlCuKWgQ0K4paBc3lzdGVtcwpsb3NzCmllbnRlCuKWgUNyZQriloFjb250cmEKdW1zCuKWgWJlZ2lubmluZwplbXkKaXN0aWNzCuKWgXNlcnZlZApEb3duCm9wdGlvbnMK4paBR292ZXJuCuKWgUJZCuKWgWplc3QKdMOpCuKWgWNvbnRpbnVlCnBlcnMK4paBZWFzaWVyCuKWgWNvcwplc3NvCj4+Ck5ldAriloFCb3IK4paBQ3IK4paBdHJhbnNmZXIK4paBQ1NTCuKWgWZpbm5zCuKWgdGF0L4KdXNlcm5hbWUK4paBY29uc3RydQriloFwYWluCuKWgVRlbQriloFzcGVjaWZpZWQK4paBYnJpdArRgdC60LjQtQppcmsKcmFwcGVyCuKWgWNvdW50ZXIK4paBWyIKb2RlZArQtNCw0L0KcHJvcGVydHkKaGFyZAppc3RyaWN0CikvCuKWgVBvdXIK4paBV2hlcmUK4paBPT09CuKWgXNvd2llCuKWgdCf0YDQvgriloFkZXNzCuKWgXRyYXMK4paB0YPRh9CwCuKWgU92ZXIKbm90ZQriloFBbWVyaWNhCmNwCuKWgWdyYW5kZQpNZQopLQpNb2RlCuKWgXBhc3NpbmcK4paBZ2l2aW5nCkNsCn0vCk1lbnUKISEKYW5ndWxhcgriloFsYXVuY2gKdmFycGhpCuKWgUpvaGFubgriloFmb3JlYWNoCnLDswpzZXF1CmlmaQpBbQphcnAK4paBYnVmZmVyCuKWgW5pCuKWgW1peAriloFNdXNldW0K4paBbWVhbnQKYXNpCuKWgWthbgrQv9GA0LDQsgpDb21wCmlzdG9pcmUKaWZ1bApqZXIKaXNzaW9ucwpSZXNvdXJjZQriloHQstC+0LcK4paBU1QK4paBc29sdXRpb25zCuKWgWJlbG9uZwriloFBc3NvY2kKY2YK4paBTcOkcgriloFncmlkCk11bHQK4paBcmVxdWlyZXMKa2sK4paBdGVhY2gKZW1laW5kZQriloFzcXVhcmUK4paB0LrQvtC80LDQvQriloFFdmVudAriloFydWxlcwriloFidXIK4paBZWluZwriloFNYWkK4paBbmFtCuKWgXNsw6QKaMO2cgriloF0aXAK4paBTGl0ZXJhdHVyCuKWgXNjb3BlCm92ZXJsaW5lCuKWgWV4aXQKKT8KYmV0CuKWgXZpY3QKT2ZmCuKWgWFwcHJveGltCuKWgUdlYgprdG9wCmhlaXQK4paB0K4KdGVtcGxhdGUK0YDQvtC9CuKWgXVubwpTZXJ2CuKWgWZyYW1ld29yawpvcGVyYXRvcgriloFnZW5lcmFsbHkK4paBaHVuZHJlZAriloFkaXZlcnMKb3ZpCuKWgXLDqXMKYWJzCuKWgWdhbArDp2FpcwriloFmZWV0CuKWgXZpcnR1YWwKY3p5CtGB0LrRgwouLwpodQphbmN5CuKWgXJlY29tbWVuZAriloHQv9GW0LQK4paBbW9uZXkK4paBdmVyc2lvbnMK4paBaGVscHMK4paBSG9yCkl0ZW1zCmxvb2sKY29ubmVjdAphbmdlcwpWaWV3Q29udHJvbGxlcgplbGlqawriloFvY2N1cAriloFlZGl0b3IKYXV0bwrDtmcK4paBc2Vjb25kcwriloFvYnZpb3VzCnZtCmFrZXMK4paBZ2VnZW4K4paBdGlsCmplY3Rpb24K0LvQtdC90L3RjwriloFvcGVyYXRpb25zCuKWgUVhc3QKb2d5CuKWgVBvbGl0CnV0ZW4K4paBSm9zZXBoCiJgCuKWgUNvbXBhbnkK4paBY2FsbGJhY2sK4paBc2VuCmNjacOzbgriloFhc3NvY2lhdGVkCuKWgWNvbnRhaW5pbmcK4paBcHJhY3RpY2UKZWxpamtlCm9rZQrDqXJhCnVucwphbnRhCnZleQp6dQriloFCZXMK4paBRmxvcgptZW0KeWN6CuKWgWFyY2hpdGVjdAriloFhbm5pCuKWgWNvbnRhY3QKWVBFCuKWgUNhcwriloHQv9C+0LvRgwpvdm8K4paBYnJpbmcK4paBY29uY2VwdAriloFqcwriloFSZWZlcmVuY2lhcwplbWJsZQriloHQvQriloFzdXBwb3J0ZWQKQmlnCuKWgUhhbnMKZXJ2CuKWgU1hagriloFhcnJpdgriloFIYXZlCuKWgXByb2JhYmlsaXR5CuKWgVBvcAriloFQYXNzCnRva2VuClByb3ZpZGVyCuKWgVJhClJlYWRlcgpvb3RoCmxhcAriloFhc3Npc3QKYWRvdwriloF0ZXN0cwrRgdGB0LgK4paBa2luZwpsYW5nbGUK4paBU3VtCk9JTgriloFzZWN1cml0eQpuaXMKLi4vCuKWgWJhc2ljCnVuaXR5CmA6CuKWgdC60L7RgtC+CmtvdwriloFCaWJsaW90aMOocXVlCmFzaW9uCmFsbwppZmVzdAriloFub3ZlbWJyZQriloFwZXUK4paB0JYKZW5zY2hhZnQKY2x1cwrRmNGDCkhlaWdodArDum4K4paBdHVyCuKWgWlkZWFzCuKWgWNlcwpmcmFrCuKWgXByZW1pZXIKaXRhdGlvbgriloFzw6kKSFRNTAriloFSb3lhbArRgdGM0LrQvtGXCuKWgWJ5dGUKUFMK4paBc2VndQppbmVuCuKWgUdyZWF0CuKWgdCa0YMK4paBZXh0ZXJuYWwKVGl0bGUKVG9wClByb2Nlc3MKaXTDpHQK4paBYC8K4paBc2VjcmV0CnBvc2l0b3J5CuKWgXBvdGVudGlhbAriloFCdWQKbmFtZXMKYXNvbnMKc3RhY2tleGNoYW5nZQpiYWNrZ3JvdW5kCtC/0LXRgArRgdC+0LIKYWZ0ZXIK4paBcGVybwriloFzb2Z0d2FyZQriloFzZWQK4paBYXJyYXlzCnRtcAriloFhc3AKc2NhbGUK4paBTGF0CmFuYWwK4paBZ2VtClBVCuKWgUFsdHJpClRoYXQK4paB0J3QuAppZmFjdApBZGRyZXNzCuKWgXNvdXRoCuKWgWZvcm11bGEK4paBQ29sbGVnCuKWgdGW0L0Ka3Rpb24K4paBc2FjClNICmFqbwpldGMKdmMKYF0oCuKWgUR1cgriloHQnNC1CuKWgVNtaXRoCml0ZW1zCkNLCmVsbwriloFwbHVnaW4K4paBc2VyaWUKaWVubmUK4paB0LjQu9C4Ck1hcgriloFJbWFnZQpnb3QKYW5kYXMK4paBbWF0Y2hlcwriloF3b3J0aAriloFEZWIK4paBY2FjaGUK4paBZmVsdAplcnNjaAppemVzCk9wZXIK4paBSmFocmUK4paBY29tbXVuZQp0aHJlYWQK4paBbnkKZGVjCm91dwriloFzdXJmYWNlCuKWgVBvcgriloFTdHJlZXQK0L/RgNC4CuKWgWNhbmRpZAriloFSZXR1cm4K4paBS29tCmdydQriloHRgtC4CltcCuKWgWRlcGVuZHMK4paBaW5mbHUK4paBdG93YXJkcwphaW5lZAriloFyYW5rCuKWgUphbnVhcgriloFjb21wb25lbnRzCmdlc3QKZ2V0RWxlbWVudEJ5SWQK4paBY2hlY2tlZAphaXJzCmpvaW4K4paBZGVhZAriloFoaXQKw6lueQriloFlcXVpdmFsZW50CuKWgdCf0YDQtQriloFhcHByb3ByaQpQYXNzCuKWgXByaW1lcgplbmdsaXNjaAriloFhcHBhcgriloFEdXJpbmcK4paBa25vd2xlZGdlCuKWgXRyaWdnZXIK4paBY29yZQriloFPbAriloFQcm9kdQriloFGZXJuCuKWgdC90LDRh9CwClRlCuKWgU1vdAplcnZlCtGC0LLQvgriloFtaWQK4paBZmluYWxseQphaXJlcwriloFlc3BlY2lhbGx5CuKWgXR1dAriloFyZWNlaXZlCmFkcmUK4paBbmVpZ2gKa3RldAppbGRlCuKWgXJhZGlvCuKWgWRyaXZlcgrQu9C40YHRjAplbmRlbmNpZXMK4paBSUUK4paBc2F2ZWQKZmZlY3QK4paBV2F5YmFjawppYXQK4paBcGFkZGluZwp3aW5kb3cK0YLQuNGH0LUK4paBbXVyCmFjdG9yCuKWgUhhbgrQvtC90LDQu9GMCuKWgWdhcgriloFmYW1pbGplbgrDs3MK4paBbmF0aW9uYWxlCuKWgXByw6kKZGVkCm9uYWwK4paBUHJlc2lkZW50CuKWgVwsCuKWgXBsYWNlZAplcm5pCuKWgXNpZ25hbApuYWIKaG0KTW9uCuKWgXZzClNDCuKWgXByb2dldHRpCuKWgcOcCuKWgWZvcm1zCuKWgW1lc3NhZ2VzCmluZgp1c2VycwpHRVQK4paBZGVscwpDb2xsZWN0aW9uCuKWgUdvb2QK4paBTWF5YmUK4paBY29tcHIK4paBbGFyZ2VyCmdyZXMKYXBlcgriloHQn9GA0LgKdW5kZXMK4paBc2VhCuKWgVNwcmluZwp1bG8K4paBbWVjaGFuCuKWgXNhbnMKR0IKVmFsaWQK4paBY29tbXVuaWMK4paBcHJhCnZpZXIK4paB0KHQtQriloFhaW4K0YLRg9GA0LAKa29tCnNraWVnbwrQutC+0LLQvgphZGF0YQriloHQoNC1CuKWgWJvb2xlYW4Kc2V0cwriloFlZmZvcnQKLlsK4paBem9zdGHFggpQQQriloFWaWN0ClNECm93YcWCCuKWgWVtYgriloFwcmltYQriloFob3VyCnN1YnNlY3Rpb24K4paBRm9ydAptYXRoZnJhawppZ2luCkdMCikrCmZpCuKWgWFuY2kK4paBcGFuClwpCuKWgWx1ZwriloFkZXBsb3kKZG9tYWluCuKWgXNsaWdodApKU09OCuKWgW1vcm5pbmcK4paBaGkK4paBY29tcGFyZQppamUK4paBYmx1ZQriloFBYwriloFtaWRkbGUKYW5kZW4K4paBc2hhcmVkCuKWgUNhbXAK4paBw4EKb3VuZGVkCnV3CmllcnVuZwpTdGFjawriloFlaW5lcwriloFEYQpsaWoKZW50aQriloHQuQpVdGlsCuKWgWV4cGVyaWVuY2UK4paBYXdhaXQKdWxzCuKWgXJlcXVlc3RzCuKWgWltcG9zCuKWgWNvbnN0cmFpbnQKQ2hhbmdlCmVtcGgK0LHQtdGACuKWgUFub3RoZXIKQ3VzdG9tCuKWgXNpZ25pZmljYW50CmNyCuKWgW1pbGxpb24KcmVlawriloFkYWxsYQriloFHZXJtCm90YWwKYXRldXIKYnRuCuKWgXRoaW5raW5nCuKWgWludGVydmFsCm9ubmUK4paBbGl2CigpOgriloHQktC1Cm9lCuKWgUV2Cm1ldGEK4paBYnJvYWQKUmVtCmFwcGx5CuKWgWNvdXBsZQriloF0ZWNobmkKaWRhZGVzCuKWgWdvYWwK4paBQ0QKaGFiCuKWgWV4cGxhbgphbm5lcgriloFCZWNhdXNlCmJsb2cKaW5jbHVkZWdyYXBoaWNzCuKWgXZvaWNlCuKWgU1hcAp2ZW50aW9uClNlc3Npb24K4paBTGllbnMK4paBc29yCmNhdGVnb3J5CmFzaGluZ3RvbgriloFNw6Ryegpwb3AKaWxsZXQK4paBendlaQriloFMaWUKTnVsbAphZGRyZXNzCuKWgWZhY3RvcgriloFsaWduZQriloFIVFRQCuKWgXN1ZgriloFwZXJzb25hbApjaXAK4paBRGFyCuKWgWFkbQrQutC+0LkK4paBRXh0CuKWgWdvZAphYQpSaWdodArDqXTDqQriloFkeW5hbWljCuKWgW1haW50YWluCnRvcgojIyMjIyMjIwriloFGcmEK4paBY2hvaWNlCuKWgdGB0YLQvgrQodCgCuKWgUZlZGVyCnN0b24K4paBZmxhZwpraXQKTW9kdWxlCuKWgdGB0L/QvgriloFTdHJhCmlja3MK4paBaGF2ZW4K4paBTWFzcwriloFFbXAK4paBUGkK4paBUGVuClJlY3QK4paBS3IKaXRhdAplbGVyCtGP0LHRgNGPCml0ZXQK4paBU3RhcnQK4paBcHJvZHVjZWQK4paB0L/QvtC7CihfCuKWgWRlbGV0CuKWgWhvdAriloFHZXNjaGljaHRlCn5+CuKWgW1vbnRocwriloF0b2QK4paB0L3QuArDunMKdGVtcAriloFEZXoKeXBlcwriloFjdWkKb21tdW4KYWN0aW9ucwriloFlaWdlbgriloFpbW1lZGlhdGVseQpQTAriloHQk9C+CuKWgUJhbArRmdC1CnVsdWkK4paBb25saW5lCuKWgWHDsW9zCuKWgW5hbWVzcGFjZQriloFtb25kCuKWgUJhc2UK4paBQ2FuYWRhCmV0enQKfS0K4paBZGVmaW4K4paBZG91YnQK4paBaW52ZXN0aWcKdmlld3MK4paBTGluZQriloFzdGFnZQpldHRpbmdzCnVicmUKZmxvYXQK4paBUGxheQriloFMYXMKcHRyCuKWgWJlY29tZXMKZXN0YW1wCuKWgWluZGVwZW5kZW50CuKWgWFuYWx5c2lzCuKWgUxvb2sKbGFpbgriloHRgNCw0YEKUmVmZXJlbmNlCuKWgXNvcnJ5CuKWgXN1cHBvc2VkCsO7dAriloFkZWdyZWUKdXR6Ck1NCuKWgWRlc2lyZWQKxYJ5CuKWgWxlbgriloFhbG9uZQpzaWduZWQK4paBU3RhClBlcnNvbgriloFhcHBsaWVkCuKWgUJhY2sK4paBbWFycwpQYXJ0CuKWgURpZAriloFleHRlcm5lcwriloFucApvbmdvCuKWgWVzdGEKQmxvY2sK4paBcG91CmFkb3JlcwriloFTdHVkaW8KLiQK4paBcmVhY2hlZApib3QK4paBSnVuaQp0b25zCml0ZWwK4paBR2FyCuKWgWFydGljbGVzCuKWgURpc3RyaWN0CuKWgXRyb3VibGUKbGlkZQriloFGb3VuZArDoWQK4paBZXF1aXAK4paBaW50ZXJuYWwKJ10sCuKWgWFzeW5jClVCCmdlbAriloFhaQplbnN1cmUK4paBYXBwZWFyZWQK4paBJF8K4paBbWF4aW11bQriloHQodC4CtGA0YwK4paBYW5ub3VuCtC70LDRgdGMCuKWgWNtCtCz0LDQvQphdXB0CuKWgWxhdHRlcgriloFwbGF0Zm9ybQriloFkcmEK4paBY2FwaXRhbAriloFzb2x2ZWQKcml6CmVkaWMK4paBTXVyCuKWgVRvcArRgtGB0Y8KUGFuZWwKcnVsZQpldGljCuKWgVJlbgriloFXaWtpbWVkaWEK4paBVE8Kc2Vjb25kCmlzbAriloFoeQriloFuaWV0CuKWgWxvYWRlZApkaWcK4paBbWF5bwpbOgpBY2MK4paBYmVrCtC90LjRjgpsb2dpbgp0eAriloFGdXIK4paBU2FudGEKYXp6CuKWgWNvbmR1Y3QK4paBSW5kaWEKT3JkZXIKaXJ0aAp0dwp9KwriloF3aWVkZXIK4paBRWR1CkFWCuKWgWBgYAriloFtYW51YWxseQriloFSZWFkCmZvcnR1bmF0ZWx5CuKWgVJ1bgriloFBd2FyZAriloFGb290CiopCnBhcmFtcwrQv9GWCuKWgW5hdGl2ZQpyaWZ0CuKWgcOkCkFUSAriloF5b3Vyc2VsZgriloFwcmlvcgriloFjaXQKw6RoCuKWgXRyZWF0CuKWgW1lYXMKcmlidXRlZAriloFjbGFyCmNhcmQKUk9SCmlsbGVzCuKWgWxheWVyCmF1ZXIK4paBcmF0CmJlcm5hdGUK4paBc3RhdG8K4paBQ2hpbmEK4paBJCgnIwriloFuYWFyCnppcAriloEke1wK4paBYXBwcmVjaWF0ZWQK4paB0LjQvNC1CsW8eQriloFwcnplegriloFJbmRpYW4K4paBVG9kCuKWgVNvdXJjZQriloHQtNGA0YPQs9C4CmludGVybmFsCmlvbmFsZQpQcm9kdWN0CuKWgU1lbgriloF1cHBlcgriloFFdmVyeQp9LFwK4paBcHJpbnRmCuKWgWNvbnRpbnVlZAriloFub2RlcwrQu9C60LgK4paBbmljZQptb2R1bGVzCmVpZ24K4paBTWV4CuKWgUFjY29yZGluZwriloF1bmRlZmluZWQK4paBYmluYXJ5CmN1dApDdXJyZW50CmVkeQp9fXsKYmxlcwriloHQstC+0LkKc2NyaQplcW4KQ2hhbmdlZAriloFrw7Z6CuKWgXJlbW90ZQrQstC70Y8K4paBcXVlbAriloFhbGlnbgriloHQv9Cw0YAKU1YKeWVyCuKWgUNhbGlmb3JuCuKWgXBsYWNlcwriloFwcmltYXJ5CuKWgWNvbnYK4paBSnVsaQriloF2aXN1YWwK4paBU2VsZWN0CmF0b3J5Cj0oCmlzZXIK4paBaW50ZW50CnN1cgpjb250YWluZXIKaWNlZAriloFib2FyZAphc3RyCm9taWFsCtCy0LXRggrQt9Cy0LAK4paBY3J1CuKWgU9rdG9iZXIKc2F2ZQriloFncmVhdGVyCuKWgWlubgriloFwaWN0dXJlCuKWgdCi0L4K4paBb2J0YWluZWQKV2lraW1lZGlhCsO6YmxpYwriloFsb3JzCuKWgW1vbnQKb2JyZQriloFjaXZpbAriloFjb25zdHJ1Y3Rpb24K4paBV2VsdAriloFVbmRlcgp1bmRlcnQK4paBZWRnZQriloFMaXN0ZQpjc3YK4paBZXhwZXJpbWVudApsb2NhbGhvc3QK4paBRWRpdApncmVnCm92w6EK0ZnQsAptc2cK4paBR3JlZW4KRGlhbG9nCklkZW50CuKWgUpTCl57KAriloFzbMOka3RldApfX19fClByb2plY3QK4paBYmVza3JlCuKWgWJlcgriloF3b3VsZG4K4paBcmVhY3QKSGVsCnp3CuKWgVdhc2hpbmd0b24Kb3JpZQp0YXNrCuKWgWNhdGVnb3J5CuKWgWFydGlzdAphbm5vCuKWgW9vawphbW1lbgriloFNaW5pc3RlcgriloFkZWNsYXIK4paBS2V5CiwuCuKWgW1hY2gK4paBd3cKaXNlbgpGcmFuCuKWgdCg0L7RgdGB0LgK0LHQvtGACtGC0YDQuAriloFyb2NrCnF1aXMKbW9zCtC/0LXRgNCwCuKWgWVzdGVybmkK4paBZ29sZApXaW5kb3dzCiUlCuKWgXBhcnRpYWwK4paBd2VpZ2h0CuKWgXNwcgp9KS4K4paBZnJhbsOnYWlzCmZ1bgriloF0aG91cwpob2xkZXIK4paBZ29uZQriloHEjAriloFyZW5kCkRBCuKWgWFuc3dlcmVkCuKWgUZhbHNlCkJ1ZmZlcgriloFkYXVnaAouLS0K4paBU2hvdwriloFyZWN0CuKWgUtyZQpkcgpvc29waAriloF5aWVsZAp1cml0eQp0b1N0cmluZwphdmFsClBvbAriloFsb2NrCmltYXRpb24KYW50aWMKTG9jYWwK4paBYmVza3JldnMKaXTDqXMKZ3JpZArRg9GCCuKWgV97CtGB0ZYKRklMRQriloHQutC8CuKWgXNwZWFrCnN1bW1hcnkKcHJvcApqYXZhc2NyaXB0CnprCml6b250YWwK4paBdHJvaXMK4paBUm9kCnByaXNlCtGA0L7QstC+CuKWgW9kZAriloFnZXN0CuKWgXByb2R1Y2UK4paBd2FhcgriloFBdgpyaWJ1CtCy0LDQvdC90Y8K4paBZmluaXNoZWQK4paBYWRhcHQK4paBU2FyCnRleHRpdAriloFDZQriloFGYQpvc2VuCuKWgWRlcml2CuKWgXNoaXAK4paBb3BpbgriloFFdmVuCmdlc2NoCuKWgXN1cHBvc2UK4paBRmVyCtGB0LrQvtC1CuKWgXdvcmRlbgpzZXkKaGxpbmUK4paBVW5pb24K4paBLyoqCuKWgXZlegriloFDb2xsZWdhbWVudGkK4paBU29jaWV0eQriloFlY29ub20KxaHDrQpvaQriloFvcmllbnQK4paBVGVpbApyZW50CtC70LXQutGBCuKWgXNvbGlkCuKWgWNhcnQKKioqKioqKioqKioqKioqKgriloFjYWIK4paBTWVzc2FnZQpkb3RzCuKWgcOpZwriloF0d2UKYWdhCuKWgW5hegriloFNaWNyb3NvZnQK4paBdW5kZXJhcnRlcgpwcGVuCuKWgXJlY2VudAriloFuZXQK4paBcmVzb3VyY2VzClN0ZQouXAriloFTTwrQu9C+0LwK4paBY2VsZQriloFsaWMK4paBYmVuZWYKbGRvdHMK4paBc2VyaWFsCkludGVnZXIKY2xlcwriloFtaWxlcwriloFBbGUK4paBZW50ZXJlZAriloFUd28Kd2llCuKWgWluY2x1ZGVzCuKWgUVhY2gKZWxsaW5nCnF1ZXIK4paBRG9tCnBmCldTCuKWgXN0cmFpZ2h0CuKWgVN0YW4K4paBbm9zCsOtY3VsCmF0cm8K4paBQ2VudGVyCkZUCuKWgUluZ2EKaWxvCuKWgXd3dwpqc2ZpZGRsZQpuaWMK4paBRXVyb3BlYW4K4paBY29tbWVyCuKWgWdpcmwKdG90YWwK4paBU3RhcgriloFzdWdnZXN0ZWQKcGFsCuKWgXp3aXNjaGVuCtC/0LjRgdCwCklNCuKWgWhhbmRsZXIK4paBUHJvZ3JhbQp4c2wKw6FseQpCVQosLS0K4paBdmlkCuKWgWVzdGFibGlzaGVkCuKWgVNwaWVsCm9tZXRyeQp1bmVzCuKWgXNpdAriloFpbmhlcgriloFwdWlzCuKWgcOqdHJlCuKWgU1vc3QKSGVhZGVyCmluc2VydAriloFzaXN0CuKWgWZhdm9yCmRlc3QK4paBZW50aXR5CkNhbAriloFUaGVyZWZvcmUKREQKOzsK4paBRGV6ZW1iZXIK4paBUmgKaW1lbnRzCuKWgXJldHVybmluZwpzdG8K4paBVmFsdWUK4paBbGliZXIK4paBUmVzdWx0CuKWgWJpbmQKdm9pcgriloFUaW0K4paBTW92aWUKd2VnCmtldAriloHQuNGB0YLQvgriloFmcmllbmRzCuKWgWZuCuKWgcOpbAriloEmPQphcmRlbgpmZmljaWFsCuKWgWNvbW11bml0eQriloFhcGkKQXJncwppZXJlbgriloFkYW5uCm9tb3JwaAphZHIKbG9vcAp1bWFuCuKWgXZvdXMKYnN0CnN1Ym1pdApcfArRgtC40L0KQ29udGFpbmVyCmFza2V0Cj8pClNlYwriloFkcml2ZQpBc3MK4paBc3dlCuKWgWFtZXIK4paBbWluZQriloFIYW0K4paBYXZhaXQK4paBSG9uCuKWgWFwcsOocwriloFNYW5uCtGB0YzQutCwCuKWgWluY3JlYXNlCuKWgXR5CnNreQriloFhY2N1cgphcnRpY2xlCndlaWdodAriloFzZXgK4paBbGlzdGFkZQovKioK4paBZXN0w6EKfX0kCmFyZ28KZGVmaW5lCuKWgdGB0L7RgdGC0LDQsgpzZXNzaW9uCmFkcwrRgdGC0LLQuAriloFMYXcK4paBZGlhbG9nCuKWgWR1cGxpY2F0ZQriloHDqXAK4paBdm9jCmZyaQriloFncmVlbgriloFoaWRkZW4K4paBSXNsYW5kCuKWgWRpYWcKb3dlagpteXNxbAp0ZWlsCnLDpAppa2FuCuKWgUpvc8OpCmFsZWQKUnVudGltZQriloF0cmFpbgriloFEaXZpc2lvbgrQvdC40YYK4paBU3BhbgrQvdC40LzQsAopPVwK0YLQsNC9CuKWgXN0YXkK4paBZm9vCuKWgWFjY29tCuKWgWhlcnMK4paB0L3QsNGDCuKWgU3DvG4KaWRlb3MKc3RhdGljCuKWgXJlYWR5Cl1gCuKWgXZpc2libGUK4paBSG9wZQp1bGF0ZWQK4paBQ3VsdArRgdGC0YDQvgpDbwriloFzbWFsbGVyCmF0dXJhCuKWgXBlcmZlY3RseQpyZXEK4paBcHJvcG9zZWQK4paBZGVnbGkKU2VhcmNoCuKWgWljaApNYXgK4paBdm9sdW1lCmV4ZWN1dGUKZ3JlCuKWgXNwb3J0CnVkYWQKUFQK4paBUmVjb3JkcwriloFjb29rCuKWgWV4cGFuZArQsdGWCuKWgWFsdHJpCnBwZXQKYXJzZQriloF3ZXQK4paBQm9iCuKWgUZDCuKWgUFzc29jaWF0aW9uCnVqZQriloFmZWwK4paB0YHQu9GDCuKWgUJpZwovXApHZQp3aGlsZQp7KAriloFzdWZmaWNpZW50ClBvc2l0aW9uCuKWgXVuZGVyc3RhbmRpbmcK4paBbnVlCuKWgXJhegriloF5ZQpoZW0KTnVtCuKWgVByb2plY3QK4paBSXRzCuKWgWhhc3RhCmVuc28K4paBd2lyZQpSZXQKdWoKcHJvb2YK4paBcmVsZXZhbnQK4paBcGFydGlyCuKWgWFnbwppZmljYXRlCuKWgWRvbWluCuKWgWJveQriloFwbGFudAriloFlbmNvZGluZwriloF0aHJvd3MK4paBUm9jawp6b25lCmdhbmcKd2lkZ2V0CuKWgWludGVyZXN0aW5nCkRFUgriloFkZW1vbgriloFvZmZpY2UKYW10CsOkdGVyCuKWgVdoaXRlCuKWgXZlcnNjaAriloFkaWVzZXIK4paBTW91bnQK4paBc3R1ZGVudHMK4paBUHViCuKWgdCU0LUKaWphCuKWgUN5CuKWgUNhbGlmb3JuaWEK4paBYWJyaWwKw6RsbAriloHRh9C10LwKVFYK4paBbcOpcwriloFkZWNsYXJlZAriloHRjgrFkWwKYXBwYQriloHQkdC1CmVjaG8KbnVtZXIK4paBcG9zdGVkCuKWgdCy0LXRgAriloHQs9C+0LTQuNC90LUK4paBd2VhawriloFSZXB1YmxpYwriloFjaGFtcGlvbgplbnN1cmVtYXRoCnlvdXIK4paBT2JlcgriloFDZW50cmFsCmlzYQrQsNC90LQKeXkK4paBZnVsbHkK4paBU0QK4paBTGludXgK4paBU2NvdHQKcGFydG1lbnQKa29uCuKWgWNvbnRyYWN0CuKWgU9GCuKWgWFsZQriloFBbm4K4paB0L3QsNC0CmxhaAriloFOZXh0Cm9yZW4K4paBZGlzawriloFlZwphdHUK0LvQvtCz0LgK4paBZ2FtZXMKTGVmdAriloFsdQriloFmaW5pdGUK4paB0LrQuAriloFjcmFzaApwaGVyCmV4ZQpBVElPTgriloFicm90aGVyCkVuZwp0YXQK4paBSW50ZWdlcgrQvdC+0LzRgwriloFjb2xvbgppcXUKKSkuCml2aQriloFNZXRob2QKYXJ0ZW4KVW5pCnZlY3RvcgriloF3b29kCtGA0YIK4paB0JvQtQriloFzacOoY2xlCuKWgWdlbnQKfQ0K4paBY29udGVudHMK4paBY29tcGFuCkdvCuKWgWpvdQp1ZW50CkFzeW5jCnByaW50ZgriloFNb2RlbAriloFrZXB0CkFTRQriloFwcm92aWRlcwriloFBYmdlcnVmZW4K4paBR2FsbAriloFBbGYKU0EK4paBTWVtCuKWgWt0ZXIK4paBQnJ1CkFuZHJvaWQKKDoK4paB0KPQutGA0LDRlwpOZQpNaW4KYXRyCuKWgUhhbApkZWxldGUKb2RvCuKWgW7Do28Kw6huZQriloFjYWxjdWxhdGUKSnNvbgprZXlzCtC90LXQuQriloFoZW5jZQriloFvdwriloFMaWIKZW5vCuKWgUxvdmUKb3NpCndpZGUK4paBc2NvcmUKZnVsbArQstC+0LQK4paBZGV0ZXJtaW5lCuKWgXNwYWNlcwrQu9C+0LLQsAriloFwZXV0CsOpcmFsCsOzxYIK4paBYXBwb2ludAriloFUdwo8PwriloFPcmRlcgriloFob3AKcmFuZG9tCmNhY2hlCuKWgWRlc3Ryb3kK4paBcmFjZQpUYWcK4paBcmlkCuKWgW5lZ2F0aXZlCkNhcgplbnNpb25hbApkawriloFjcm8K4paBVEhFTgriloEkLgplbnNrCk5FCkhPCuKWgWtsZQpvc3BpdGFsCmt0ZQpmw6lyZW5jZXMKdWRlcwpJUgpvdGlvbgriloFSZWFsCuKWgUZlYnJ1YXIK0LjQvQriloFPbGQK0LrQvtCz0L4KbGVpY2gK4paB0YAKw61hbgriloHQs9CwCmNpZGUKbGFiCuKWgXB1bGwK4paBJy8KTG9uZwosJAriloFhcHByb3ByaWF0ZQriloHQsdGL0LvQsApmw7xocgriloFNZWRpYQriloFtYW5uZXIK4paB0JPQtQpkZXNjcmlwdGlvbgpCZWFuCuKWgUxhcgonXTsK4paBcmVsYXRpb24K4paBU29ycnkKaGFyCmNwcAriloFLbwriloFleGVjdXRpb24KaW5vcwriloFidWwKZ3JhZGUK4paBTXUK4paBcGlsCndyaXQKaWZpY2F0aW9ucwppbmVzZQriloFQaGlsaQpkeAriloFsZWFkaW5nCuKWgUpvdXJuYWwKb3ZlZAriloFjb250cm8K0L3QvtCy0LAKWWVzCuKWgWNoYW5uZWwKKSksCmlzdGVuCmFrYQpUb1N0cmluZwptYXMK4paBZXR0CuKWgWZvcmNlcwp1bGF0aW9ucwriloFDYWxsCuKWgWV4cGxhbmF0aW9uCm9yaW5nCkFUQQpjaHRlcgp3aGVuClZDCuKWgUphaHJoCkNhc2UK4paBY29tbWFuZHMK4paBcmljaApidXMKRmUKbWJveAriloFyZWNvbgrDsW8K4paBc2hhcGUKb3d5CmVudHJ5Cml0YWJsZQriloFlbGVjdGlvbgrRlNGC0YzRgdGPCuKWgXByZXAKdsOhCuKWgWluZmluCmxvdAriloFib29rcwriloFVU0EK0LvQuNC9CuKWgXBvbQriloFuYXMK4paBdGFncwriloFleGVjdXRlZAphaWxsZQpsdW5nCuKWgUphdmFTY3JpcHQK4paBYmFsbAriloFhaW5zaQriloFQcmkKeyQK4paBVU4K4paBUmFtCuKWgWhlYXIK4paBVWJ1bnR1Cj4oKTsK4paBcHVyZQriloFlbWJlZAphw6fDo28KY29udHJvbGxlcgriloFtYXJyaWVkCuKWgUZvbApmYW1pbAriloFwcmVjCuKWgXJlY3VycwpwYWQKaXN0cmF0aW9uCuKWgXJlc3BlY3RpdmVseQpbJAphdXRvcgriloFncmF2CmllcmEKYXppb25pCuKWgUJ1bAriloFBdXN0cmFsaWEKbW9uZAriloFUcm8K4paBRWxlCnBhY2thZ2VzCm1zZG4K4paBQWxzCuKWgXByenkKQVJUCuKWgWNoYXJnZQriloFhcHBsaWNhdGlvbnMKVW5pdAphcmVuCuKWgXN1ZGRlbgpvbWV0ZXIK4paBZG90CmFjamkK0LrRgtC+0YAKaW1pbgplbmluZwriloFkb25kZQriloFIbwp0cmVlCm1iCuKWgWRyYWcKYWplCuKWgWludmFsaWQK4paBZmluaXNoCmxhaW0K4paBZmVlZAriloFOYXAKcm9vbQppbWFnZXMK4paB0YHQsNC5CuKWgXN1Y2MKaWZmZXIK4paBYcOxbwriloFjdWFsCtC80LXRgNC4CkRSCuKWgUJpbGRlcgrQsdGA0LAKcmFpdApwYW4K0LXQvdGMCuKWgWRpc3RpbmN0CuKWgUtuCsO2bmlnCmFuY2VkCuKWgWxvYWRpbmcK4paBVGVjaG4K4paBU2VsCm11cwriloFyYWlsCuKWgXN0dWRlbnQK4paBbm90aWNlCuKWgXNsYQriloHQlNCwCuKWgWd1YXJkCuKWgURheQrQstCw0LvQuApPcHRpb24KYWlzb24KaXBwCuKWgUp1bgriloFmZWxsCuKWgWFic29sdXRlCtC+0LLQtQpkZWJ1ZwriloFTdWQK0L/Riwp1Z2lucwriloF2aWV3cwpsYXkK4paBc3VycgriloFzdG9vZAriloHQstGWCnNlbGVjdGVkCtCz0ZYK4paBYXR0cmlidXRlcwpmaW5hbAplbmRhCuKWgUJvbgpuZXJzCuKWgVdlcgpidXIKaXR0ZWwK4paBbW92aW5nCuKWgVBsYW4KaXNjaGVzCkphdmEK4paBYmFzaXMK4paBQnVzCuKWgUF1CuKWgUlsbAriloHQstGA0LXQvNGPCuKWgdGG0LXQvdGCCmhhbmRsZQrRgdGC0YPQvwriloFGYXIK4paBb3JhegpvY3IK4paBc2VpdApvbmRlcgrQtNC+0LwKOi8KY2hvcgriloFUb3duCuKWgWRlZmluaXQKcmVhY3QK4paBcGllY2UK4paBS2FybApDSQriloFBcHBsaWNhdGlvbgp1bnRlcgriloFmb3JtZWQK4paB0L/RgwpCbwriloFEYW5pZWwK4paB0L/Qu9CwCkJvZHkKfSkkCuKWgdCx0YvQu9C4CuKWgWVhcnRoCtCz0LvQsApUaGVyZQriloHRgdGC0YDQsAriloF2aWxsZQriloFjZW50cmUKKQ0K4paBaGVscGZ1bAriloErKwriloFDRwppemlvbmUK4paBR2FtZQriloFXaGljaAriloFwaXAK4paBUG9ydHVnCkRTCuKWgWRlc2NyaWJlCuKWgWNoZWNraW5nCuKWgW1hbmFnZXIKQk8K4paBQnVuZGVzCmJ1Y2gK4paBZGVjaWRlZAriloFKYWhyaHVuZGVydAriloFmaWYKZWZmaWNpZW50CmFuY2kKYnJhcmllcwriloFmYWlscwriloFrZXJuZWwK4paBR2wK4paBTmFjaW9uYWwK4paBcHJvY2VlZAriloFmdWVyCuKWgWxpdmluZwriloFzdWNjZXNzZnVsbHkK4paBZmFzdGVyCuKWgWNvbnRyZQriloFwcmlzb24KT1JUCmhlbHAK4paBYXV0b3IKxYJhdwphasSFCuKWgUFybQriloFwcm92aW4K4paBbmFhbQovIwpzZWQK4paBZ2VzY2gK4paB0LzQsNGACmVzawp0ZXJtCuKWgVRleAppcmluZwriloF0b29scwpQREYK4paBdWx0Cmlzc2Vuc2NoYWZ0CuKWgWNvdWxkbgpkaW5nCkRlcAp7LQriloFwcmVkaWN0CmFudGFnZQriloFMaWtlCuKWgdCR0LgKdG9vbHMKZXN0cmEK4paBa2kK4paBSmltCnN0YXIK4paBcmVtYXJrCsOzZwpuYWJsYQriloFBbHRob3VnaAptb2RlCkhvc3QK4paBc3RyYW5nZQpOb25lCmJsYWNrCuKWgUZlc3RpdmFsCuKWgUlTCmFuemEK4paBKC0KaWNrZXQK0LrQvtC70LAK4paBSmVzCuKWgWZsZXgK4paBw4AK4paBTmV0d29yawriloFFWAriloFlbmVybwoh4oCdCuKWgU9ydAriloFhbG9ycwriloFPcmlnaW5hbAriloF6bwrQvdGL0LzQuAriloFzcGwKRHJhdwp5b25kCuKUgOKUgAriloFPdAriloFkcmFtCuKWgWRpdmlzaW9uCuKWgWVmZmljaWVudAriloHQk9CwCuKWgXZpZXIKbmFrCkxTCuKWgXNwaXJpdAp6ZWljaG5ldAriloFkaWNpCmNsZWFyCmNvcHkKeWFyCuKWgdGA0L7RhtGWCnVzcXUK4paBbm91cwriloFibGV2CtC20LTQtQpBcmcK4paBcGVyZm9ybWVkCuKWgU1ha2UK4paBQ2Fyb2wKZXR0bwriloFTYW5kCuKWgURpc2MKRW5jCnJlcm8KaGFzaAriloFmb2N1cwriloFhdHRlbnRpb24K4paBYWdyZQriloFkaXZpcwriloHQsdGL0LvQvgriloFlagriloFtYXJjaAriloFwaGFzZQrDrWFzCuKWgXBoaWwK4paBUGFwCuKWgXJpdmVyCuKWgWNhdXNlZApwbHVnaW4K4paBVGVhbQp1bGVyCuKWgSQoIiMKaWVqCklTQk4KbmFtCuKWgWZpZ2h0CnZpZAriloFMdWQKU2VsZWN0ZWQKOkAiCuKWgVBvZAriloFhbm7DqWVzCmFyaW9zCuKWgWRldXRzY2hlcgriloFOQQriloHQuNGOCuKWgWRpY3Rpb25hcnkK4paB0JvQsAriloFUcmkKw6huCuKWgXBvbGl0aWNhbApyaWRnZQphdHRlbgriloFjaXJjbGUK4paBdHJhbnNwb3J0CmVtYXMKRkMK4paBcmVwbGFjZWQK4paBQXVkCmlza2EKQ29uZmlndXJhdGlvbgriloFzb29ydAriloHQndC1CuKWgXNlcXUKUFJPCuKWgWJ1ZAriloF7ewpsaWXDnwriloFNYXMKZGVycwp1c2FtbWVuCmVzYQriloFMeQrQstGA0L4KbWFjCuKWgdC40YHQv9C+CuKWgXN1Ywp1eQriloFpbGx1c3RyCuKWgXByaW1lcmEKaWxhdGlvbgriloFzdG9yYWdlCuKWgXBhcmFtcwprYXoK4paBdGVybWluYWwK0YDQsNC70YwK4paBaG9sZHMK0LvQvtGB0YwK4paBbmFkCuKAnS4K4paBb2N0dWJyZQpidWwK4paBaHVzClVMVAriloHDqWdhbGVtZW50CuKWgU1pbGwKxYJhZAriloFjb250aWVuZQoiPwriloE+Pj4KUXVlCsKgwqAK4paBcGxhaW4KYXRpdmEKb2NrZXIKTmFtZXMK4paBSnVkCuKWgWFncmVlCuKWgUdlbWVpbmRlCmxhcmUK0LrQsNC30LAK4paBc3RhcnRzCuKWgXByaWNlClRhcmdldApjdXMK4paBSW5zdGVhZAouOwriloFhbHRlcm5hdGl2ZQriloHQstC70LAKSUUK4paBb3JnYW5pegppbnUK4paBY29tcGxldGVkCuKWgWNhcnJ5CmF0b20K4paBZGVwZW5kaW5nCuKWgU91cgriloFpbnNwCuKWgSZcCmFpbHkKaXJlY3Rpb24K0YTQsAriloFkZWZlClRBQwriloFkZXNpZ25lZAriloF2b2lyCmJyZWFrCuKWgXBhcnRpZQriloFKYWhyZW4K4paBc3R1ZGlvCuKWgWpvdXIK4paBTm90ZXMKZmlyZQpob3VzZQpzdWNjZXNzCuKWgUp1YW4KSlMK4paBQ3VzdG9tCuKWgWJlc2NoCuKWgXN0YXRlZApib290c3RyYXAKw7Z0dApvenrDoQriloFDT04KaGF2CuKWgXNsZWVwCmVkYQpob3QKw6FuZAriloFTeQriloF0ZW1wcwphbWFyCuKWgXNjYWwK4paBYXN0CuKWgW9wZW5pbmcKY2xpcHNlCuKWgXByb2dyYW1taW5nCuKWgWxldHRlcnMK4paBcHJvZmlsZQpuYWgK4paBYmV5b25kCuKWgUZ1cnRoZXIKZmFjZXMK4paBY2hhcnQK0LfQtNCwCmFpZ24K0L3RltC5CuKWgVJvbArQvtCy0LDQvdC+CnRlcmlvcgp3ZWQK4paBaGVyc2VsZgriloFuZwphbmd1YWdlcwp9PVwKeW5hbWljCuKWgWp1ZwriloFFeGFtcGxlCuKWgSjigKAK4paBcGxheWluZwriloF1c2FnZQriloFtYW5hZ2VkCuKWgU5hdHVyCtGC0LXRgNC4CuKWgUV0CmVyaWEK4paBZGF1Z2h0ZXIK0L3QuNC10LwKRnJhZ21lbnQK4paBaG9sCkZsCtC+0LPRgNCw0YTQuAriloFpaG4Kw7xoCmluc3RhbmNlCuKWgWNvbXVuCuKWgXRydXRoCuKWgdGB0LDQvNC+CuKWgWltcGxlbWVudGVkCuKWgWFueXdheQriloFDcm8K0YTQtQpHQwp1YnVudHUKdHlwZXMKw6pzCi5+XApmb2xkCuKWgWpvaW5lZAo/PwriloFtw6kK4paBd2lsZArQutC70Y4Kcm93c2VyCuKWgUhvbWUKc2tpZWoK4paBSk9JTgriloFqdWluCmhvZgriloFkYXRhc2V0CtC20LTRgwonKSkK4paBbWllanMKQVBJCuKWgWVkaXRlZApvb2xzCuKWgXNlZWluZwppamQK4paBcHJvY2VkdXJlCuKWgUJyYXMK4paBc2lnbmVkCuKWgWV4dGVybm9zCuKWgWRpc2FwcAriloFEaXJlY3QKY3ljCuKWgWNvbnN1bHQKw7ZyZApXaWRnZXQKY2lvdXMKc2VjdAriloHQlNC4CuKWgXdpbmQK4paBQXJjaGl2YWRvCmFtbArRgdGBCldoCmtiZAriloFBcm15CuKWgXN1ZmZlcgphcnRpZmFjdAriloFyZXNvbHZlCuKWgVNwb3J0CuKWgdGG0LUKaWRhcwriloF0YXgKaWRpCuKWgWFjdGlvbnMK0L/RgNCwCnB1w6lzCuKWgW5hagpGYWxzZQriloFjaGFuY2UK4paB0YLQsNC60L4Kw6RkCuKWgWRvbAriloFlbnYK4paBYmFzaWNhbGx5CuKWgUNvdW5jaWwKenRlCuKWgWRpc3BsYXllZApuaWwKY29tcGxldGUK4paBTGVtCmlhbmNlCuKWgdC+0YHQvdC+0LIK4paBZGVwZW5kCnBsb20KZW5zdXMKdXRzCuKWgUhvdApiaXRyCuKWgXZhbGlkYXRpb24KYWJiCuKWgdGC0YDQtQprbQp6ZArDtmZmCldFCuKWgWludGVyZXN0ZWQK4paBeyIKYXJvCuKWgWNvcnJlbAriloFkZWRpYwriloFsaXN0cwriloFCaWJsaW9ncmFmaWEK4paBZWFybGllcgpwcm9ncmFtCuKWgXByZW1pw6hyZQpmcm9udApUYWIK0YHRgtCy0YMKZHJvcAriloFmZWFyCuKWgUVubGFjZXMK4paBQ2FwdAriloFyZWFsaXoK4paBaGFsCuKWgWluc3RhbmNlcwriloFzdXNwCmlsbGluZwolOwp7fQp8fAriloFwYXJ0aXRpb24K4paBQnVpbGQK4paBd28K4paB0J/QtdGACuKWgWRpcmVjdG9yCuKWgVNpbgrRgtC40Y8KcnNnCm91dmVyCuKWgW5lYXJseQpvZGEK0LrRgtC40LIK4paBc2lyCklNRQriloFqYW52aWVyCuKWgVdpbgpCdWlsZAppZXVycwpJTkUKZG91YmxlCkxhc3QK4paBcG9saWN5CnN0b3JlCuKWgW9ic2VydmVkCuKWgWZhbWlsaWUKbmljYQpyZXkK0LfRjAriloFZZWFyCuKWgWRldmVsb3BlZAriloFJbnN0aXR1dGUK4paBcmVwbHkKQ29tcGxlCmljaWFuCuKWgUd1ZXIK4paBZGFsbAriloFkZXNwCuKWgUZvb3RiYWxsCkVtcHR5CmNrZW4KdW5kYQriloFVcgriloFpZwriloFBdGwKYXV0aG9yCuKWgUJvbAp6aWcKbmF0CsWhdApzZWN1cml0eQpvbmljCuKWgXBlcwppdGFuCuKWgUV4dGVybgpqYW4KVkFMCuKWgdC40LwKYm9sZAriloHQstCwCuKWgdCc0L4K4paBZGlzcHV0CuKWgXRyaWNrCuKWgXBlZAopXnsKaW50bwpTaW0K4paBcGFyYWxsZWwKZm94Cm5vcm1hbAppbmVudArQv9C10LTQuApob2xkCk9LCuKWgWNoZW0K4paBdHdpY2UK4paBdXNlcm5hbWUKacSNCuKWgXJlcHJlc2VudGF0aW9uCuKWgWpvdXJuYWwK4paBOi0K4paBYmF0dApcJQriloFjZXJ0YWlubHkK4paBRXhjZXB0aW9uCmVwcwpzaG90CmF0ZWd5ClNob3cK4paBQ2FybApyaWcK4paBcmVwb3J0ZWQKYm90dG9tClRGCuKWgUZyYW5jaXNjbwpuYXAK4paBQ2hhbXBpb25zaGlwCuKWgWNvdXJ0CuKWgXNvdXJjZXMKaW91cgriloFjb25zZXJ2CmRpY3QK4paB0KDRgwpJQgriloFWZQriloHihJYK4paBRVIKIikpOwriloFQb2ludAphemluZQriloFpbnRlcm5ldArQtNC90LAK4paBY2FycmllZAriloFGaWVsZApheGlzCuKWgVN1bgriloFhdmUK0L/QuNGBCtGP0L0KYXN5CuKWgWp1bGlvCuKWgWRlcHVpcwriloFzdWdnZXN0aW9uCltbCuKWgUFyY2hpdmUKxJlwCuKWgVByYQpyZWgK4paBZGVtb25zdHIK0YTRlgpjbWQK4paBd2FzbgriloFwaG9uZQp1cGxvYWQKYXlhCtGC0L7RgNCwCmxpbmVzCuKWgWluZHUK4paBdm90CuKWgWVzcGEK4paBYmluCuKWgdC/0L7RgdC70LUKcGxhbgriloFqdW5pbwpvcmlhbApmcmVlCnN0ZXJyZWljaAriloHQtNGDCuKWgWxpbmtlZAriloFlbmFibGUKUEMK4paBZGVuc2l0eQriloFFZ3kKeW8KZW5kcmUK4paB0YHRigriloFpdGFsaWFubwriloFBUgriloFQZXJzCmbDqXLDqXMK4paB0YHQutC70LAKVmFyCuKWgU9uY2UKUmVkCmJ1ZmZlcgriloFFbnRlcgriloHFoAppbWllbnRvClN0b3JlCuKWgWhlYWx0aAp2YXQKSVNUCk9oCuKWgWt3CuKWgXJpdgriloFzb21ld2hlcmUKb2dyYWZpZQpwcml2YXRlCtC60YLQuAriloFkZWxheQriloFIdHRwCmpvYgpyYWVsCmVtcG9yCuKWgWRpY2llbWJyZQrDqnRlCtGG0YMK4paBY29tbWl0Cm9zbwpWYWx1ZXMK4paBaGVhZGVycwp0cmFuc2Zvcm0K4paBcHJvY2Vzc2luZwpyw6UK4paBQWgK4paBTm9kZQotLS0tLS0tLS0tLS0K4paBZmFpcmUK4paBaHVuClBsYXllcgriloFyZXZpZXcK0LPQtNCwCuKWgWxpbWl0ZWQK4paBUHJvcGVydHkK4paBc2VydmUKcmlhZ2UK4paBTWFzdGVyCuKWgWthbm4KY3JldGUKcGhlcmUK0ZHRgAriloFjaGllZgriloFzY2VuZQpraW4K4paBdW5pZm9ybQriloFmZWJyZXJvCiJ9CmlsbG8KSVRFCm91dmVsCnVzZXBhY2thZ2UKZW50aAriloFxdWlja2x5CkxhbWJkYQp4ZXMK4paBY2VsbHMKcm9nCmFtaW4K4paB0JzQsNGACuKWgW1heW9yCnBsYXllcgorKzsK4paB0J3QsNGB0LUK4paBc2FmZQriloF2ZWxvYwriloHQvtCx0YDQsApEYXRhYmFzZQpuZWgKVmVydAriloFmbGUK4paB0YTQvtGACuKWgWZvcmVpZ24KQWJzdHJhY3QK4paBbWFnbgriloFtb2RpZmllZAriloFtaWxpdGFyeQriloFtb25kZQriloFBY3Rpb24K4paBYmFuawpTZXJpYWwK4paBY29udGludW91cwriloFnZWwK4paBcGh5c2ljYWwK4paBaW50cm9kdWNlZAp1dHVyZQpyaWNrCuKWgXByZXNlbnRlZAriloFQcm92CuKWgUJvdGgKUG9zCnN1cGVyCiYjCuKWgWZpbmRpbmcKbmVsCnVuZGUK4paBZnLDpW4Kc2tpbQriloFIaWxsCmZuCuKWgUNhbmFkCuKWgWludGVuZGVkCm96esOhZsOpcsOpcwriloFqdWlsbGV0CuKWgVdhcnMK4paBc3VjY2Vzc2Z1bAriloFjaGFyZwppZWxlCm9tZXRoaW5nCm9rdQpmZXRjaAriloF9fQpiYW5rCm9wZXJhdG9ybmFtZQriloFDb2xvcgriloFDYXJkCnR1CuKWgSIsCndpZAriloFnZXAKWE1MCj09PT09PT09PT09PT09PT0K4paBVmlyZ2luCsOkaHJlbmQKbGljYXRlZApEaXIKemVybwriloFLYWwK4paBUGFydHkK4paBw6UKcHJpY2UKZG9uCuKWgXdhcm5pbmcK4paBQmFkCuKWgVN1cHAK4paBTGlnYQriloFQaWVycmUKUmVjb3JkCnVsYXRvcgriloFSb21lCuKWgXRoZW9yZW0K4paBZW50aXJlbHkK0YHQutC40LwKaGV0CuKWgWRvcG8KTmV4dAptbHVuZwp3aWcK4paBQXRoCuKWgVNvdQpsaWNoZXIK4paBc3Vkbwplc3RzCtGF0ZbQsgriloFzZXB0aWVtYnJlCuKWgW1pY3JvCuKWgXRyb3AKZml0CkNvcmUK4paBUmFkaW8K4paBT3JnYW4K4paBUG93ZXIKQ0YK4paBTGFzdAriloFvcHBvcwriloFvZmZzZXQK4paBcmVnaWEK4paBbWluaW11bQriloFoZWxwZWQKYW5kb24KaWZ5aW5nCnJ1aXQKZW5zY2hhcHAK4paBYmVyZQpWTQriloFBd2FyZHMK4paBYWdyCnlub21pYWwKZW5jZWQK4paBZGV2aWNlcwriloFib3QK4paBZmlybQriloF3cml0ZXIK4paBcmluZwouLQppc3Rlcwpsw6QK4paBbWVsCmVudGF0aW9uCuKWgVNjaHcK4paBbm9tZQriloFwb2JsYQriloF3b2oK4paBdWwKZW50bwrRi9GFCuKWgXJlc2lzdAriloFyZW1haW5zCuKWgUNhCmHDsWEK4paBQ291cnQKdXRhYmxlCmVudGlhbGx5CuKWgXRyYXQK4paBVmlzdWFsCuKWgXJlc3RyaWN0CuKWgXByZXZpb3VzbHkKY2F0aW9uCuKWgdC+0YHQvgriloFNeVNRTApmw7ZyCmNhbGEK4paBY3VsdHVyZQpsaXZlCuKWgWFjY2VwdGVkCkRpZAriloFob3VzCuKWgXNlbGVjdGlvbgriloFkZWNyZQptYXJnaW4KdXJiCuKWgUluYwriloFNYW55CmlidAriloFzdWNjZWVkCkJpbmRpbmcKY8OtCuKWgVJvZwriloFzaG91bGRuCmNsb3VkCuKWgWR6CtCy0LDQsgriloFwaXgKc21hbGwK4paBcHJvamVjdHMK4paBT0sK4paBbGF0ZXN0CuKWgXJlZmVyZW5jZXMKUHJvZ3JhbQriloFlcnN0CuKWgdGP0LoK4paBa2FtCuKWgUNhbWIKZWxsdArDtmQKbm9uZQriloFqdXNxdQpraW5nCuKWgVBlZAphc3NlcnQKQ1MKcml0bwplc3NhCtC70YzQutC+CuKWgVZvbgriloFFZHdhcmQK4paBaW1wb3NzaWJsZQpucAp3b3JkcwppZWx0CuKWgVBhZ2UKbGVycwriloFwaWVyCuKWgdC+0LHQu9Cw0YHRgtC4Cml0dGVlCuKWgShbCuKWgXRydXN0Ck5HCnJlZHUKPDwKcmlhbAriloFwcm9kdWN0cwriloFFcm4KcmnDqHJlCtCz0L7QsgriloFSZWljaAriloFSb2FkCuKWgW5lc3RlZApEaXNwbGF5CuKWgXN0cmVuZ3RoCm9ncmFmw61hCuKWgWFubm91bmNlZAriloFTY2llbmNlCuKWgdGA0LDQudC+ClBhcmFtZXRlcgriloFUYXNrCnVtZW50cwriloFhZG9wdAriloFPbmx5CtGO0YLRjAriloFjbGkK4paBbGVtCnN0b29kCuKWgUZJCsOqbmNpYXMKcG9uZW50cwpdJApjb21tZW50CuKWgXlhCnNob3VsZAppa2UKdGltCmVsbGlnCuKWgXNlbmRpbmcK4paBYWpheAriloFub3ZpZW1icmUKdW1lcwriloF3ZWl0ZXIK4paBRGFucwpvcHAK4paBc2VwdGVtYnJlCm90aW1lcwp6xZEK4paBZXAKdmVyZQriloFvaAo6PQriloFTb25nCuKAnSwK4paBdml2CuKWgXF1ZXJpZXMK4paBdsOhCuKWgWTDqWNlbWJyZQriloF1bmFibGUK4paBZXJoCuKWgWAtCuKWgUxlZQriloFlcnN0ZW4Kw7R0CtGB0YLQstC1ClRTCuKWgWZyYWdtZW50CuKWgXdpZGUK4paBc3VmZgriloFkdXQK4paBVmVyZQrRltGBCmFkaW5nCmllZ28KaWNhZ28K4paBQXJnZW50Cm9yZXIKZW5uZXMK4paBTGViCmxpbnV4CmFjaW5nCuKWgWJyb2tlbgp0cArDrW8KYWJldGgKaXN0YXMKZ2V3CmnDqG1lCmNhcwriloFwcmVjZWQK4paBRGFsCuKWgWNvbXBhcmVkCmVxdWl2CmlsbHkKdGVlbgriloFDb25zb2xlCuKWgXN0cmljdAppdGFpcmUK4paBRUQKZW50aWFscwriloFwZXJtYW4K4paBdG91cwriloFnZW1lCuKWgWV4dHJlbQriloHQvtC60YDRgwprZwriloFoZWF2eQriloFhdnJpbAriloFhbnRpCuKWgW9jdG9icmUKdXRmCmhlbG0KYW1wbGVzCuKWgShfCmFrZW4K4paBZGVhcgriloFvcGluaW9uCuKWgWZpc2gK4paBQWxleGFuZGVyCml3CtC40LwKY2FkZW0K4paBcmVmbGVjdAriloHQtNGACuKWgXRyaWIKY29tbW9uCuKWgWNsZWFybHkK4paBc2FmCj0iQCsK4paB0JzQvtGBCtGB0LjRgtC1CmVxbmFycmF5Cm51bmcK4paBcmVsYXRpb25zaGlwCuKWgVNlbQriloFraWxsZWQKdGVkCnVubwriloHQu9GWCuKWgXdpZAphbm5pbmcK4paBcGFuZWwK4paBTGViZW4K4paBcnVieQphbnNpb24K4paBYXJlbgp0YWJ1bGFyCmFsZXQKfSQkCuKWgUxha2UK4paBc3VpdGUK4paBbWlub3IKSG96esOhZsOpcsOpcwriloF4bWxucwpESVIKZHJpdmVyCmludHMK4paBdmljCkFORApwcmltCtGB0YvQu9C60LgK4paBT3gKVEMKcml2aWFsCmF0aWUK4paBZWlnaHQK4paBY29uZmxpYwphbmdlbAriloFCZWdyCuKWgWV4cGxpY2l0bHkK0Y7RgtGB0Y8K4paBRGV2CnJlbmRlcgriloFyZXByb2R1CuKWgWNyw6kKR3UKTUIK4paBa8O2bgriloFyZW1haW5lZAriloFrbArRhdC+0LIK4paBYnlsClBoaQriloFkZXRhaWwKamF2CuKWgW1vdXNlCkJhcwppxJkKYXNzZXIKaHMK4paBc2hpZnQK4paBw7psdApyYW5kCuKWgWJ0bgpyYXoK4paBcHVsCuKWgXN0YXRlbWVudHMKZmlsZW5hbWUK4paBcHJvbXB0CsOpbMOpCmlregriloFTdXMK4paBZGVidXQKU3RhdApmb3JtcwriloFIZWluCnN0YWR0CmVubmlzCtC/0L7QuwphcmFudGUK0YbRltC5CuKWgXF1ZXVlCuKWgXJlY2kK4paBc3RhCnluY2hyb24KY2VudGVyaW5nClNvbWUKR3JhcGgK4paBdGVzdGVkCuKWgUt1bnN0CtC+0LwK4paBTm90aGluZwppZXUK4oCcLgpCdW5kbGUK4paBb2ZpY2lhbAphbGxvdwriloFSZWFjdAriloFMaWJyYXJ5CmJsdWUK4paBdmVydwriloFwYXJlCuKWgUZyaWVkcmljaAriloFhd2FyZQpFeHAK4paBZWZmZWN0cwriloHQs9C+0YDQvgpsb3BlZGlhCuKWgVZlbgpyYWxlCuKWgUZpbmFsCuKWgXByb3BvcwpsYWNlbWVudAprdGVuCuKWgW5vdmVsCm9ydGVyCuKWgUdlcm1hbnkK4paBZGphbmdvCuKWgXRyYW5zaXRpb24K4paBaGFwcGVuZWQK4paBYmVhdXRpZnVsCuKWgW5laXRoZXIK4paBbGlicmFyaWVzCuKWgWhpZGUKYWxnCuKWgWFzcGVjdAriloFmb3JnZXQKY2FkZW15Cm9udGUKcmVmaXgK4paBY2xvdWQKbmVkCmNkb3RzCnJlZ2lzdGVyCm55bQouKToK4paBSmV3CuKWgXRyw6hzCtC90LjRh9C1CuKWgURvcgriloFwcm9jCuKWgWdhbgriloHRlAriloFTYXYKdsOtClNldHRpbmdzCuKWgVZhcmkK4paBY291cnMKUm8K4paBY29uagriloFyZWFzb25zCuKWgXJlYWRlcgrQu9C10LrRgdCw0L3QtAppY2F0ZQp9KSwK4paBdGFza3MK4paBUmF5CuKWgXJpYwpLZQpvbmllCnJmCilbCuKWgXN1YnNlcXUK4paBVHVybgriloFWSUFGCm1hdGhzZgpIRQriloFkZWNsYXJlCuKWgXByb3RvY29sCuKWgVBDCtGG0LjQvtC9ClZpZXdCeUlkCuKWgWFuaW1hdGlvbgriloFjb25mdXNlZArQstC40YcK4paBZW5hYmxlZApvd28Kw6FzdArDtnQK4paBbWFuZAriloFSYWlsCmZpZWxkcwriloFLYXAK4paBYWxnZWJyYQriloHQodGDCmbDqXJlbmNlCuKWgUN1cnJlbnQK0YHQvdC+CuKWgUxpbQpQYXJhbXMK4paBQW50b25pbwriloF0dgpsYXRlCmlmZXIKRW50cnkK4paBU2VydgriloFtdXNpY2FsCuKWgXRyYWNlCuKWgXNjaWVudApmaWMK4paBZm9yZ290CnZpZGVvCuKWgW9sZGVyClRyZWUK4paBdW5zCtC90LjQutC4CuKWgUV1cm9wYQriloFad2UK4paB0LHQtQriloF2ZWMK0LbRgwriloHiloHiloHiloHiloHiloHiloHiloHiloHiloHiloEKTWF0Y2gKc3BhbgriloFibGFuawriloFzcMOkdGVyCuKWgVR5CuKWgWRpY3QKw7FhCuKWgWNvbmZpcm0K4paBdsO9CtC30LDQvQpSZWwKZmlsbQriloFSb3QK4paBSHkK0LrQsNGFCuKWgWRlbWFuZAriloFtaW5pc3QK4paBTWFkcmlkCuKWgXVzdWFsCnNwaWVsCmVyb3MK4paBdHV0b3JpYWwK4paB0KHRgdGL0LvQutC4CnN5cwrRhtC40LDQu9GMCuKWgXNwcmVhZAriloFjb252ZXJzCuKWgXJvbGwKYXJ0aWZhY3RJZAriloFOdW1iZXIK4paBc3ltbWV0CuKWgU11bHQKZXhwZWN0ZWQK4paBYXhpcwriloFtYXRjaGluZwriloFmb29kCmdyb3VwSWQKTWFwcAriloHRgdCy0Y8K4paBdmVuZApGb3VuZApvdHRvCkNhdApjcml0CmlzdGVudAriloFkcmVpCuKWgWVuZGVkCuKWgVRlbGUKY29tcG9uZW50CuKWgWludm9sdmVkCuKWgUVzdGFkb3MK4paBZGFuZ2VyCuKWgWNoYWluCuKWgVByb20KaG9tCuKWgXBvbMOtdApjb3AK4paBbmFwCnJpZgpwbGVtZW50cwriloF2ZW50CmFubmEKYW50ZWQKZGF0ZWQKYW50aAriloF0aHJlYWRzCtC30L7QstCwCuKWgdGB0YLQsNC90L7QsgriloFlZXJzdApidWYKaGVpZAriloFSdQriloFQcmltCuKWgW1pZ3IK4paBVW5pZG9zCuKWgWFyYml0cgriloFyb21hbgpvdW50cnkKdWx0dXIK4paBS8O2bmlnCuKWgWFubm90CmFjaGluZwriloFIYXVwdAp1bWluCuKWgWhlbQpja2V0cwpiYXUKZWN0aW9uCmVmdAriloFwYWNrYWdlcwriloFLdXIKdGh1cgriloFwYXlzCmxpYW1lbnQK4paB0JHRgwriloFjYWRhCnBvaW50cwpvY2tldAriloF2ZXJiCtC70LXQtQriloFzdWJtaXQK4paBc2FuCnJ1YnkK4paBZWFzdAprb3YK4paBVmVybGFnCuKWgXNwb3QKcHBvCkVhY2gKamVrdAriloFCaW9ncmFwaGllCuKWgW5ld3MK4paBcGHDrXMKdWZhY3QK4paBZGlhCtC60L7QstCwCuKWgWFjY29tcGwK4paBw4l0CmlsaXRpZXMK4paBaWhtCmludm9rZQriloFhcHBlbmQKLiksCuKWgWxhYgphbmdpbmcKaXN0YW4KcmVzb2wK4paBU2VjdGlvbgpQYXJlbnQKbW96Ck1hdApzdHlsZXMKdW5kZW4K4oCcLAppcnRzY2hhZnQK0LrQuNC8CuKWgUZpbmFsbHkKcGhlbgriloFQYWMK4paBQXJyYXlMaXN0CuKWgXJlY292ZXIK4paBZWR1Y2F0aW9uCm1vZGVscwpwZWQK4paBaGFwcHkK0YfRgwriloFndWVycmEKbWVkaWEKT0YK4paBZW5zdXJlCk1hcmsKZGF0YWJhc2UKb2dnbGUK4paBcHVibGlzaApPVwriloFCYXUKPy4K4paB0YfQsNGB0YLQuAriloFyZXBvc2l0b3J5CuKWgU1hdHQKaGlnaApvdmVuCuKWgWdlcgriloF1bmtub3duCkFtZXIK4paBQnJvd24KQUxMCuKWgXJlc3VsdGluZwriloFib3IK4paBcG9ldArQvdC40LzQuApFbWFpbApGb250CuKWgWhpc3QK4paBdG9kYXkK4paBQmVyZwriloFidXR0b25zCtGC0LDQuwriloFzbmkK4paB0YfQtdC70L7QsgpDcmUK4paBdW5pb24K4paBemljaAppc2hvcAriloFxdWFuZG8KUG8KQ1RJT04K4paBQ29zdArRgdGD0LTQsNGACmVydmVkCk5vdGUKRXF1YWwK0LvQuNGPCtCx0YPRgAriloFhYnN0cmFjdApzdG9wCuKWgWFkdmljZQriloFpY29uCuKWgXRyYXZlbApCUwp2ZW5zCuKWgWJhdGNoCmxpcXVlCnNoZWV0CuKWgWlocmUKZW1vbgpiZXJ0bwriloFhc3NpZ25lZArRjNGOClBob25lCuKWgWF3YXJkCuKWgWZ1bmN0aW9uYWxpdHkKYWxsYQriloFEYW0K4paBY2l1ZGFkCuKWgWNsdXN0ZXIKRGVzY3JpcHRpb24K4paBc2hlZXQK4paBQXVzdHJhbGlhbgriloHCuy4K4paBIjwK4paBd29uZGVyaW5nCmFpbmUK4paBcmVwcmVzZW50ZWQKa2FwcGEKbmIK4paBc3kK4paBS8O2Cj0iIwriloFzZXZlbgpEaXJlY3RvcnkK4paBc2lzdGVyCnBsYXRlcwriloFsdWNrCuKWgXJlbWFpbmluZwriloFWaWxsCndlcmsKYW5uaQpldHRpCmZ1bmMK4paBYmFuCmltcwptaXNzCmFncmFwaArQtdC60YHQuAriloFSZWYKbml0dAriloFHYWIK4paBYW5kZXJlCuKWgWplZG9jaApyZXN1bHRzCiFcCuKWgWxpc3RlZAriloFsb3JvCuKWgWtub3dzCtC20L3QvgpSYWQK4paBc29ja2V0Cm11bHRpCuKWgdGA0ZYKcmFpbHMK4paBdGFyCuKWgWdlbnRsZQpzZXR0CnNlcnZpY2VzCmJvdW5kCmlna2VpdAphamEK4paBY21kCmFnZ2VyCuKWgWJhCuKWgUJlbGcK4paBS2xlCuKWgXdvcmR0CuKWgWZvc3QK4paBZGltZW5zaW9uCkFuZwp1bWluZwpPYmoK0L3QtdC9CuKWgU1hcmllCmV4aXN0cwrRgtGA0L4K4paB0LHQvtC70YwKZW1lbnRlCuKWgUpvbgpTRVJUCuKWgWhpZ2hlc3QKYWtpCuKWgXRyZXMK4paBY2lyY3VtCuKWgURvd24Kb21tZW4KdXJlcgriloFjYXVzZXMKdmVudWUKaXNzYW5jZQriloFpbmZsdWVuY2UK4paBZmF0CtGA0LXQtNC4Cn1cXAriloFlbnRyCuKWgVNpZ24K4paB0LrQu9CwCuKWgWJpbmRpbmcKZXNzZW4K4paB0KTRgNCw0L0K4paBTG9jYWwK4paB0Y/QstC70Y8KYXBwcm8K4paBZGVwZW5kZW5jaWVzCuKWgXRhbGtpbmcK4paBenVyw7xjawpjb25uZWN0aW9uCkFjdGl2ZQpiYmUKaXJscwriloFJbmYKd2QK4paB0LjRgQpyb2FkCuKWgWNvbnZlbgrEm3QK0LLQtdC3CuKWgWVudHJpZXMKZXNjCuKWgWJpdHMKYXNzbwpXUgpzaGlwcwriloFkw6lzCmVzcApNYWtlCuKWgWZhbWlsaWFyCkFydAriloFhcm15CmN0cgrDqXJpYwpxdWV1ZQriloFcewp1ZWxhCmFtaWVudG8K0YjQuNGFCuKWgSIiIgpjb250cgrQu9C70LUKRlMK4paBbWFya2V0CsOlbmcKY2l0ZXAKSWxsCnJhbmsK4paBc2VuZGVyCuKWgWJlaW0K0YDQsNC6CuKWgWNvbXBhdAriloFvY2N1cnMK4paBZGllc2UK0YHRgtC40YLRgwphd2EK4paBaU9TCuKWgUNoaW5lc2UK4paBVFIK4paBS2VuCuKWgVVuZQriloFjcmVhdGVzCuKWgXNob3dlZAriloHDqXYKb2xvZ2lhCuKWgXByb3Rlc3QK4paBUGYK4paBc3F1YWQKKyssCsOhdgriloFlc3NlcmUK0LfRjwprb2wK4paBc2xpZ2h0bHkKYWRkcgrDom4K4paBcmVkdWNlCuKWgVwoXAriloFEZXAK4paBZ2VuZXJpYwpMb2FkZXIKyJtpCuKWgdC/0L7RgQriloFvY2Nhc2lvbgriloFMYWR5CmVudGl0eQriloFhdmFudAriloFQYXMKYWdnaW8KXHsK0L/QsNC0CmF0aG9saWMKUGFzc3dvcmQK4paBcmVzcG9uZAriloFOb24KQUcKbmVnCuKWgdGD0YEKYmxvYgpja2UK4paBQ29uc2lkZXIK4paBQ2FyZQppa2kK4paBQ2hpY2FnbwppbmRlbgriloFDb3AKXSsKw7ZtCsOpdnJpZXIK0LrQu9C+CmFsZW4K4paBbWFqCnJhY3kKb3J0ZQppZW50cwplbGxzCmFjdGl2aXR5CuKWgXJ1bnRpbWUKTlVMTAriloFwb3NzaWJseQriloFzdHJpCml6aQriloFtaXIK4paBVmVyc2lvbgpwcmltZQriloF0d2VudHkK4paBTWFoCuKWgXNvdW5kcwrRiNC10L0KY2x1c2lvbgphY3oK4paBZGV0ZXJtaW5lZAriloFSZXAK4paBTGFuZGVzCuKWgXdhbGwKaWdpCuKWgXJlc2V0CtGI0L4KeWFuCk1ldAplaQriloFhcHBlYXJhbmNlCuKWgWZvaXMK4paBbmVsbAplc2kK0ZHRggpsb29yCuKWgVVsCuKWgXJlc29sdXRpb24K4paBZm90CuKWgXRocm91Z2hvdXQK4paBcmkKTGV2ZWwKcG9vbAriloFpZGVudGl0eQriloFqYW51CuKWgWltcGVyCuKWgcO2dmVyCn1gCuKWgWluZmVyCuKWgWRhdGVzCuKWgVN0YW5kYXJkCmZvcmNlCm9ja2V5CnRlcmEK4paBZGlzdGluZ3UK4paBcHJlc2VuY2UKbGljYQriloFsZWF2aW5nCml0dW5nCsOpYgriloFlc3RhYmxpc2gK4paBbWFhcgphZGkK4paBTmV3cwphem9uCmZvbGcK4paBSGVuY2UK4paBWWUK4paBZmFiCuKWgWbDvGhyCml0bWFwCuKWgVZlcnMKcm92ClNpZ24KZGV2aWNlClNpZ21hCuKWgXdldGVuc2NoYXBwCuKWgVBzClBBVEgK4paBdG9ybgp2ZXN0CtGB0YLQvtCyCmFjY291bnQK4paBbGFyZ2VzdAriloFwZXJjZW50CuKWgVdvbWVuCuKWgWltZwp0b29sCuKWgXJvY2UK4paBYXkKaW5ldAriloFhb8O7dAriloFwb2x5bm9taWFsCuKWgWludGVncmFsCuKWgWFyZWFzCn0nCuKWgWh5cApsb3llZQrRgtCw0LvRjAriloFwcm94eQriloFXeQriloHQnNC10LrRgdC4CuKWgWVzY2FwZQpvbGFyCuKWgW1pc3Rha2UKKX17CuKWgVBvdAriloFwcm9jZXNzZXMKIj4NCmhhbHRlbgp6emEKYW1vCtC60YDQtQriloFXb29kCsO4cgriloHRgdC10YAKb2NpYQp0d28KcHJvZmlsZQriloFBc3QKZW1icm8K4paBYXJtcwppbmFzCmlubmVuCuKWgW1zZwpJTlQK4paBYmF0dGVyCmlnbm1lbnQK4paBdnkKSHJzZwriloFHcnVuZApyb2MKc2VnCuKWgWRlY29yCuKWgWV2ZW50dWFsbHkKPiwK4paBcGFnCmFudGVuCuKWgXN0cnVnZwp9XlwKZGF0ZW4K4paBcmVsYQrQv9C+0LIK4paB0LrQvtGA0L4K4paBQm9zCuKWgWxhYm9yCuKWgVNlY3JldAp1Z2VuCuKWgWphcAriloFodXNiYW5kCuKWgUFsYnVtCuKWgWV0d2EK4paB0L/RgNC+0LjQtwpyaWNodApyYWNoCmJhdAriloFwcmVwYXIK4paBU3RvY2sK4paBbGFjawrRhdGW0LQK4paBaG9neQriloFDaHJvbWUK4paBQWRtaW4K4paBY29tcGFyaXNvbgriloFpbmNyZWFzaW5nCtC90LMKaW1pCkRiCuKWgWdlZgp1Y2h0CsOpc2UKZ2VuY2UK4paBQ29yZQriloFpbmNvcnJlY3QK4paBYXNzdW1pbmcKb3Vyc2UKaWVyb24K4paBVGhlb3JlbQriloFjYXNhCmplcwriloHQtNC10YDQtQriloFgIgpMRArDpMOfCkRlYgriloFzdWl2CuKWgUJhbmsKbGlicwriloFMZW9uCuKWgXF1YXJ0CuKWgXByb2Zlc3Npb25hbAriloF0aWVuZQriloFhY2NvbXAK0YHRgtC10YAK4paBVUsKTk4K4paBbMOtCtGG0Y8Ka2VsCuKWgeKAogriloFkaXNlCm9udG8K4paBbcOhCmlmcwpiaWxkCuKWgWNvbXB1dGUK4paBw6lkCmrEmQriloFNw6kK4paBbGFuZ3VhZ2VzCuKWgVRpbWVzCmNlbgriloHQsNCy0YLQvgrDvW0KZW5legriloF1cHAK4paBbcOpZAriloFjdWFuZG8K0L7QtApJbnRlbnQKZWVyZAriloFUYWwKb2Zmc2V0CuKWgWhhYmVuCnJlbWUK4paBU3RhY2sK4paBZHJpCuKWgXNlaW5lbQriloFmw6l2cmllcgriloFjb21iaW5hdGlvbgriloFzb2xsCuKWgW1vdmVtZW50ClNwZWMK0LrRgNGLCnJldGNoCk9mZnNldApSb290CtCQ0YAKd2FydAriloFGb2xsb3cK4paBU29jaWFsCtC90LjQutC+0LIK4paB4oaSCkRvbgriloFoYXJtCmFncgpuZWdvCnJlc291cmNlCuKWgUx1YwriloFzZWluZW4K4paBRGVwYXJ0bWVudAriloFVcGRhdGUK4paBVGV4YXMK4paBcmV2ZQriloFQb3MK4paBc2hvdApvdGhlCuKWgXJlcGVhdGVkCuKWgXJlY2VudGx5CsOhYmFuCmFrcwrQv9Cw0L0K4paBY2hhCm9obAriloF0ZW5kCuKWgdC00LLQvgpjaHRzCsOnYWlzZQpwbGluZwphbGJ1bQplagriloFgWwptYXBzCuKWgXVuaXRzCuKWgTwhLS0K4paB0LPQtQriloFJbmZvcm1hdGlvbgppa29uCuKWgXRhbgriloFkb2NrZXIK4paBU3RhZAriloFhdWRpbwppa28K4paBY29vcmRpbmF0ZXMKeHMK4paBcmVwbGllZAriloEpLAriloFHb3Zlcm5tZW50CuKWgUFjYWRlbXkKVU5UCuKWgdGC0YDQuApCbAriloFhbmMK0YjRgwriloHRgtCw0LrQvtC2CuKWgWluZmluaXRlClJDCuKWgWdhCuKWgWFkanVzdAriloFtZXJnZQo7YAriloFwb3N0ZXIK4paBSmFwYW5lc2UKIl07CuKWgWV4aGliCuKWgW9yZGVyZWQKaWN0dXJlcwrRgNC+0YEK4paBc8OpcmllCmxldHMK4paBaXAKU2VsZWN0b3IK4paBZXhpc3RlbmNlClJlY2UKbGlnYQpkb3dubG9hZAriloFsZW1tYQppZXYKdWRlbnQKc2tvCuKWgUFyYWIKaXRhdGUKYnl0ZQrQvtGCCmlrdArQvdCw0YLQsAriloFBZgooQAriloFtYWQKb2RiCuKWgWVsaW1pbgriloFzcGVudApFbnRlcgriloFNaXRnCldoZW4K4paBZMOpcGFydApNSQriloFmZWxsb3cK4paBdGhvdXNhbmQK4paBQ3UKa3RvcgpDYWNoZQriloF0YW1iw6ltCuKWgWV4dGVuZGVkCtCy0LXRgdGCCmF0ZXJzCuKWgUxpYwp0b3R5cGUK4paBR2EK4paBYmxvb2QK4paBbWFwcGluZwriloFub21pbgriloFtYW5pZmVzdAriloFwZW5zCuKWgXJpdAriloFmaWxlbmFtZQriloFmaWxsZWQKdsOkCuKWgXJhaXNlZAriloFtb2JpbGUKa8OpCuKWgVJpZ2h0CuKWgWdlaMO2cgriloF0ZW1wZXJhdHVyZQriloFzb21laG93CuKWgVNwYW5pc2gK4paBa29tbXVuCuKWgWNob3NlbgriloFob3JzZQo7XAriloFvcmlnaW5hbGx5Ckhhc2gK4paBY2l0dAriloFlbmNvcmUK4paBV29sZgriloFuw7oK4paBWW91bmcKVmFyaQriloFTY2h3ZQriloFjYXB0dXJlCuKWgUphbmUKSW50ZXJmYWNlCm93eWNoCuKWgURldXRzY2hsYW5kCuKWgUtvbAriloFib3VuZGFyeQriloFHTkQKTm93CmtlaHIKKCoKPS0K4paBV2VsCuKWgUNhdAphbW1lbnQKQUdFCuKWgXJpZ2h0cwpTY3JvbGwK4paBaGFwcGVuaW5nCuKWgUJsYQriloFzY2llbmNlCmF3cwriloFiZWhhdmlvdXIK4paBaW1wbGllcwriloFRdWVlbgpvdmFuCnBheQrRmtCwCmFyZXQKZXJzaGlwCuKWgUxhbmcK4paB0LPQvtC0CuKWgXJlY29yZGVkCnplbQriloFUaHJlYWQK4paBdG9kbwpvZ28K4paBc2NlbmFyaW8K4paBY29uY2VudArRgNC10LcKU3RvcmFnZQriloFkaXJpZwriloFTZXJpZXMK4paBZ2FzClNFVArDqGNlCnJhdGUKSFRUUAriloFrYXAKRW1wClVURgrDoW7DrQrRgdGC0LDQstC4CndpbmRvd3MKw6lyYXRpb24KYXBlZAriloFzaXN0ZW1hCuKWgXN1cnYK4paBV2VzdGVybgriloFnw6kK4paBU3VjaApXcml0ZXIK4paBY2FudmFzCuKWgWd1YXJhbnRlCnNjcm9sbAphdmVkCkl0YWwK4paBRWxlY3QKXSgjCuKWgUhlcm0K4paBQ29tbWFuZAriloFDaGlsZAriloFwZAp1dGNoClNxbAoqLgriloFUYWcK4paBVGEK4paBbWFpbApzY3JlZW4Kc2NyCnppYWwK4paBRsO8cgriloFzdWdnZXN0aW9ucwpjaGVzdGVyCil8CnBlcnNvbgp6ZWwK4paBd2FpdGluZwriloHRgdC70LUKRkwK4paBQWxiZXJ0CuKWgUhpagriloHRgtC10YAKZXdyaXRlCuKWgXNlbnRlbmNlCuKWgWxpbnV4CtC10LTQtQrDqm5jaWEK4paBSXRhbGlhbgrRh9C60LAKRmlsZXMK4paBbm90aWNlZApiaW5nCuKWgVJlc2VhcmNoCuKWgWFsdGVyCmhlZWwKXDxeCuKWgVByb2Nlc3MK4paBYmF0dGxlCtC80L7QsgriloFBZnJpY2EK4paBQW5uZQriloFnZWxkCn0lCuKWgWRvY3MKVHlwZXMK4paBcmV0cmlldmUK4paBT2ZmaWNpYWwK4paBdHJhYgrRhtGLCuKWgUlucHV0CnN0ZXAK4paBbGF1Z2gK4paB0KXQsAriloFwZWxhCk1lZGlhCnJvdWdoCtCz0LDQvdC4CuKWgVNob3VsZAriloFDb250ZW50CtC70LXQvApvc2gK4paBc29tZXdoYXQK4paBQ2VyCkJhY2tncm91bmQKc3RydQriloFpbmxpbmUK4paBTmVkZXIK4paBbW9kdWxlcwriloFCdWNoCsWEc2tpCndpZGV0CuKWgXpuCnBvc2VzCuKWgWdyYWR1CuKWgWFxdQpQUgriloFwdXR0aW5nCuKWgdC/0L7Qu9C4CuKWgXB1cmNoCuKWgXNtb290aArRgNC40LkKZW5naW5lCuKWgWxpdmVkCkFjY291bnQKRGV0YWlscwriloF0ZWxscwriloFPdXRwdXQKSGVyZQriloFGb3VuZGF0aW9uClRleHRWaWV3CuKWgWRlY2lzaW9uCuKWgWRlcGVuZGVuY3kKb2NhdGlvbgpvdmFsCmZlbGQK4paB0L/RgNC+0LIK4paBZW5kcwriloFpb3MK4paBZXhjZWwKYWd1CuKWgWVsZWcK4paBRWxlbWVudApRdWV1ZQriloFmw7YK0LLQtdGA0YHQuNGC0LUK4paBZXhwZXJpZW4K4paBZGlyZWN0ZWQK4paBY2FtYgriloHQlNC2CuKWgWZvbGcK4paBY29uY2UK4paBRmFiCuKWgVZpCuKWgWFkdmFudGFnZQriloFCZWkKcHJvZAriloFYSVgK4paBRmFjZQriloF2aXIK4paBUnVzc2lhbgriloFzcGFuCmVuw60K4paBem9uZQriloFhdHRhY2gK4paB0LHQtdC3CuKWgW1hbmFnZW1lbnQKQWMK4paB0L7QvwpvbmNlCmhhbHQKdXNvClNwZQriloFyYXcKw6lybwppZGVsCmxhdwpTaGVldAriloFtaXNzaW9uCuKWgWNhbWVyYQriloFob25vcgriloFhcHBvaW50ZWQK4paBUm9tYQpsaW5lYXIKUm93cwpmZXJlbmNlcwriloFJTwriloFjb3ZlcmVkCnJhagrRgdGC0LLQvtCy0LAK4paBU3ltCuKWgXRpZAppc2MK4paBUnVkCuKWgWVuY3VlbnQK4paBZmFpbHVyZQrDvHNzCuKWgXNxdQriloFwYWludAriloFzZXJpb3VzCuKWgWN1cnNvcgp0cmFzCuKWgWRpc2N1c3Npb24K4paBY3JpZWQKZXJpZQriloFEZXZlbG9wCuKWgXJld3JpdGUK4paBZ8OpbsOpcmFsCndhaXQK4paBSGFycnkKw61yCuKWgWdlcHVibGljCuKWgdC40LMK0ZbQsQrRj9GCCuKWgdCY0LcK4paBZXF1YXRpb25zCuKWgXBsYW5lCuKWgWFjcXUK4paBYW5nbGUK4paBdHJlZXMK4paB0JrQvtC9ClZECnBlcnQK4paBZG9jdW1lbnRzCmNiCuKWgWltcGxlbWVudHMK0YHRgtCw0L3QvtCyCuKWgVdhbHRlcgrQt9GL0LLQsAriloHRgdC/0LUK4paBY2hhcApwbGV4CuKWgW1hZ25ldAriloFnZXB1YmxpY2VlcmQK4paBaGlnaGx5CuKWgWxldXJzCuKWgWRyZXNzCuKWgXJlc3RhcnQKUmVuZGVyCkNhbGxiYWNrCmlzbwriloFjb25zdGl0dQriloFFbmRlClpFCuKWgUFuZ2VsZXMK4paBZGVyaXZlZAo9InsKXVwK4paBQ2hhbmdlCuKWgUhhdXMK4paBc3RhZAriloFSZXF1ZXN0Cm9tbwriloFBY3RpdmUKdXJlbgriloF0b3VybgriloFwYXJ0aWN1bGFybHkKU2VydmxldAphYmMKd2lkZXRpbGRlCmFuZHJhCkhlbHBlcgpSdWxlCuKWgXBsdXNpZXVycwriloF3YXZlCm5lcQriloHQotC1CmZyZQpza8OpCuKWgWFsYwriloFsb2dzCkdTCuKWgU1vbAriloFwZXJtaXNzaW9uCuKWgXNvdWwK4paBd2FudHMK4paBZ3VpZGUK4paBdmllbmUK4paBV2lsaGVsbQriloFldmlkZW5jZQoifSwKcm9wb2wK4paBYXV0aGVudGljYXRpb24K4paBb2NjdXJyZWQK4paBSUYKbm9jCklBCuKWgUJhbgriloHQutCw0YAK4paBYmxlCuKWgXNlZ21lbnQK4paBcGxheWVycwppc2kK4paBc3R1Y2sK4paBUHkKQW55CmhvdQriloFmb3JtYXR0CuKWgXBlYWNlCuKWgdCa0LDRgApldGVzCmRmcmFjCig/CuKWgVNpdGUK4paBTGl2ZQriloFVcwriloFjbGltCuKWgUFsaQrRgNC10LkK4paBUHJpbmNlCuKWgW9ibGlnCmllYgriloFBbHQK4paBcHJvcwpyYWNsZQriloFDZXR0ZQprZXMKesO2cwpvdXZlbGxlCi8vLy8vLy8vCmFieQrDqXJlCnJhbmUK4paBcG93ZXJzCuKWgVBhdGgK4paBV29yZAriloF0cmFuc2FjdGlvbgriloFjYXVzaW5nCmVsbHNjaGFmdArDonQK4paBQ1BVCuKWgWRlcHRoClNUUgriloFDb25mCuKWgXJhcmUK4paBQWsK4paBYm9uCuKWgUNhcmxvcwriloFzcGVjaWZpY2FsbHkKcmljcwpLRVkK4paBc3RhcnMKw6lyaWNhCuKWgdCb0YMK4paBY29uZmlndXJlCuKWgWFnZW50CuKWgWV4cGxhaW5lZAriloFjb2VmZmljaWVudArQtNGMCid9CuKWgXZpZGEK4paBU3luCuKWgdC90LDQt9Cy0LAK4paBT3B0aW9uCuKWgXJvYgriloHQutC70YMKOlsKYW50bHkKZGVwZW5kZW5jeQriloFDdXIK4paBZnJhbmNlcwriloFpZGVhbApTdwriloHQs9GA0YPQvwriloFDYXB0YWluCuKWgXRvZG9zCkpvCuKWgXBlbG8KP10oCuKWgWZhaXRoCtC+0LLQvtC5CuKWgWZyZXNoCuKWgXByb3ByaQpUaW1lb3V0CuKWgXZlaApjb250ZW50cwriloFEb2N1bWVudApjb2xsZWN0aW9uCuKWgWthcgpydWNrCllvdXIKdW1hCuKWgW1hdGhlbWF0CkVuYWJsZWQK0L/Rg9Cx0LvQuAriloFFbmdpbmUK4paBTcO8bmNoZW4K4paB0L/QvtGB0LUK4paBZm9uCmFyY2hpdmUK4paBZnJlcXVlbmN5Cn0rXArDonRlCuKWgWtvcgriloHQmtGA0LAKU2luZwptb250aAriloFIYXcK4paBc3lzCmVybWUK4paBV291bGQK4paBaW1wYWN0CnVycmVuY3kKbGljaHQK4paBYXB0CmllcmUK4paBbW90aW9uCtCh0KHQoAriloFJbml0CuKWgW1zCuKWgU1TCnNoaWZ0CuKWgWF1dHJlcwriloFiYXNoCmhpZGRlbgpvcmlvCuKWgWNlbGVicgriloFMaWJlcgpldG8K4paBZG92ZQriloFwYXRocwriloFpbmoKQ2F0ZWdvcnkK4paBY3J5CuKWgW1hcmtlZArRg9C00L4KYXNoaW9uCsOkbHQK4paBbGFuCuKWgXRlYW1zCuKWgWt2CmlhbXMKYWJhbgriloFUQUJMRQrQstCw0YAKUmVwb3MK4paBQmVsbAriloFwdWJibGljCuKWgWNvdW50cmllcwriloFzcGluCuKWgWzDqWcK4paBS3JpZQriloFKb25lcwp3aGl0ZQpIdG1sClByZXNzCuKWgUJsdWUKT3BlcmF0aW9uCuKWgUFudGgK4paBcHNlCuKWgUZvbnQK4paBdGhlbWUK4paBYmxvY2tzCiQpCuKWgWdsYWQK4paBbWFuYWdlCm9yZGVuCm9zdGVuCmNvbGUK4paBU1AK4paBc2NoZW1hCnVyYXMK4paBd2hlbmV2ZXIK0KjQkArRgNC40YLQvgriloFkaXNjb3ZlcmVkCuKWgXByZWZpeApnbG9iYWwKcm9rZQp6ZXMKY2h0ZQriloFCZWZvcmUK0LzQtdC90LgK4paBRGlnCuKWgXJhcGlkCuKWgWxsZWcKZXF1YWxzCuKWgUhvY2gKZm9yYWxsCtCy0LDRgtC4CnVzegriloFhdHRhY2hlZApFeHByZXNzaW9uCuKWgXN0b2NrCsO8bGwKcGV0CmVzc2lvbnMKY29sbwriloFneQpCb29rCuKWgUphY29iCuKWgVByb2R1Y3QK4paBaW5wdXRzCtC80LjRgAriloFsZWFybmVkCsOzd24K4paBcG9saWNlCuKWgdC70LXRggriloFJdGVtCuKWgWV5ZQphaWVudAriloFTYW1tbHVuZwriloFMb3IK4paBcmVwcmVzCuKWgWZlc3QKQ29uZAriloFub3V2ZQriloFleHRlbmQK4paBRnJhbmNlcwriloFGaW5kCuKWgWRlemUKZXJuYQriloFoYWLDrWEKcHLDvAriloFtb3RvcgpiaWUKSGVsbG8K4paBcmVzaWQK4paBZmluYWxlCiUpCnsnCuKWgUhhcmQK4paBcGFpcnMK4paBRWxsCml2b3QKcmVlcwriloFGb3JjZQriloFldmVuaW5nCuKWgWRlc3B1w6lzCnJnCldoeQriloFjb25uCnNjaGVtYQrRhdC+0LQK4paB0LzQtdC20LTRgwriloFmbGFzaApza2lwCuKWgW1pbnV0ZQriloF2ZWQKYXlsb3IK4paBc2V1cwriloFNYWpvcgriloFmcmFuYwriloFyYWMKa3cKY3YKTmF0aXZlCuKWgUJ1dHRvbgrQvdC40YbQuApzZXR0aW5ncwriloFBY2Nlc3MK4paBcXVhbGl0eQpwcm9wcwpGbG9hdAriloFTY290CuKWgUFECuKWgWFsbGVtCiZcCnVzdHJhdGlvbgpwYXR0ZXJuCm1pcgriloFpbmNvcnBvcgpza2ljaAonPgpTdGFuZAriloF0ZWNobmlxdWUK4paBRXNzCuKWgU94Zm9yZAriloHQu9CwCnRpa3oK0LvQuNC5CkxvZ2luCuKWgW1pbmlzdGVyCuKWgWN1cmwKa2FuCuKWgW1hcHMKaW5kYQpyaWViCuKWgUVORAppZmllcwpjb25zb2xlCmJ1cnkK4paBTEUK4paBaW5kZXBlbmQK4paBdGEK4paBxZoKb25lbArDqXN6CuKWgUlzdAp1dGl2ZQrRkdC7CuKWgVJlZ2lvbgriloEoPQriloFjb21wYWN0CsOnb2lzCuKWgWxhYmVscwphdXRvcml0w6kK4paBc3RhbgriloFmcmFuw6dhaXNlCuKWgXJlbW92aW5nCnljCn18CuKWgUV4ZWMKKCRfCm1hZwpiZWZvcmUK4paBc3RvcHBlZArQvNC40LgK4paBcmVmcmVzaAp1bmt0CmljaW8KWG1sCuKWgVRhYgriloFmb3VuZGVkCuKWgWZhbApmeAriloFIaXN0b3JpYQriloFFYXJseQpEb20K4paBZGVjaWRlCuKWgXVuZGVyc3Rvb2QK4paBanVyCuKWgU5yCuKWgWNhcGFjCndhcwriloFlbmVteQriloFwcm9ncmFtcwriloFtYXNrCtGB0LrQtQriloFncm91cGUKY2FtCuKWgXdpZGdldApSRUFURQriloFzZXZhCuKWgUJhcmNlbAriloFwZXJkCuKWgdCc0YMKcmFuY2UKVFlQRQriloF7JwriloFiaWxsCuKWgSJfCidgCmJhaG4K4paBY29udGFpbmVkCkNsb3NlCnJ1ZwplZ3kK4paBc2lnaHQK4paBUHJvdmluCtC90Y4KYXJ6CtGJ0LXQvQriloFKb2UK4paBZGVsZXRlZAriloFBdXRvCuKWgW1ldGVyCkNHCtGK0LsK4paBcGVudAriloFiZXplaWNobmV0ClN1bQpkYmMK4paBUGxhdHoKZWN0b3JzCuKWgUxpdHRsZQpRVUUK0YbRltGPCtGC0LXQu9GPCm5pZ2h0CuKWgWxsCuKWgW1vc3RseQpVSUQK4paBYmV6CmRvYgrQutGB0LgKdGVybmUK4paBY29ybmVyCmF0eQriloFpbXByb3ZlCuKWgWludHIK4paBYEAKYXJvZAriloFpbnN0YWxsYXRpb24K4paBUmVmZXLDqm5jaWFzCmlnYW4K4paBY3JpdGljCmFkZWwK4paB0YHQtdC70L4KLA0KYXRvcmkK4paBRnJpCuKWgXLDqWbDqXJlbmNlcwriloFJbnRlbnQK4paBdGFudAp1bmNpCuKWgWxldmVscwplcmVzCuKWgWVtZXIKc2FmZQp0awriloFjaGFtCuKWgWdyZWF0bHkK4paBd2VpdAriloFjb2FjaAriloF0b3dhcmQKSG9tZQriloFCb29sZWFuCtGC0LXQuwriloFtb2NrCuKWgWFwcHJlY2lhdGUK4paBQ3Jvc3MK4paBVGFrZQpEUAriloFzaWRlcwriloFOb3JtZGF0ZW4K0LTQtdC5CnN0YWwK4paBY291dApibgriloFWZXJ0CuKWgWJpcmQK4paBZHluYW1pY2FsbHkK4paBRG9sCuKWgUJ1cmcK4paBZG9nCsOkdHQK4paBbnVjCkVDCkJ5dGVzCuKWgWFrCnJlbGFuZAriloFndWl0YXIK4paBcmVnYXJkaW5nCuKWgUZ1w58K4paB0LTQvtC7CmF1c3MK4paBamVqCmFjbwriloF1cGRhdGVzCtGA0YPQugooJy8K4paBY29sZAriloFHaXZlbgpoaW4K4paBZmVlbGluZwppZ2xpCmZhaArRgdGC0YDQtQpib29sCmluaXRpYWwK4paB0YHRgtCw0L3QvtCy0L3QuNC60LAK4paBQW5uYQriloFob3JzCuKWgWRvbGwK4paBY29uc3VtCnViZXIKc3RhbmRpbmcKYWN0aXYK0LfRlgpjaGVja2VkCuKWgXBlcm1pc3Npb25zCuKWgU1vbnRlCldyaXRlTGluZQpwbHVzCuKWgUVxdQriloHQuNGFCtGH0LrQuAp1bnF1ZQriloFMTwplYQpzYW1wbGUKaWVzegpvcmFsCuKWgdCY0L0Kb3N0b24K4paBU2ltb24KZmFzdAptawphc3NlbgriloFhcmNoaXRlY3R1cmUKZW5zZXMK4paBw4UK4paBdG9waWMK4paBZGlzYWJsZQriloFDcnUK4paBQ29udHJvbAriloFjcmVhdGlvbgriloFoeXBlcgppdHVkCtC20LXQvdC40Y8KYXJhbQriloHQs9C00LUKaWVuc3QKZWR1bGUK4paBQm90CuKWgdCe0YEK4paBVGhlaXIKYW5uZQpNaWNyb3NvZnQK4paBUE0KeWRybwplbnRsaWNoCuKWgUVpbmUKQ0hBUgo6JwpXZWxsCmxldG9uCuKWgXN1cHBvcnRzCiddKQptYW51YWwK4paBdmljZQphc2EKY2xvcwp2aXNlZAriloFwb2sKdHJhY2sK0L3QvtGB0YIKLi4uLi4uLi4K4paBJ1wKwrIuCuKWgW9yZGVycwpldHRhCuKWgWNvbnZlcnNpb24K4paBdHJhZGUKY2xpCuKWgdCY0YHRgtC+CuKWgWFrdAriloFzdWJzZXQK4paBYXVnCuKWgWxlYXZlcwpNYXRoCmFubmVkCmthbAriloHQktC10LvQuAriloFub2cK4paBZXRoCuKWgWhhaXIKYXJvdW5kCuKWgWphdmF4CtCy0L7QuQriloFDZW50cmUKw7bDnwp1dGkK4paBbmF2aWdhdGlvbgriloFQUwriloF3YQriloHQoNC+0YHRgdC40LgKdXNhCnpldGEK4paBUERGCuKWgW1pc21vCnByb3BlcnRpZXMKbWVpc3RlcgrQu9GM0YLQsApmb3J3YXJkCuKWgU9zdApraW5zCuKWgXNpZG8K0LfQvtCyCnRhZ3MK4paBYWN0b3IK4paBZmx5CkNSCmFnaW5pCuKWgWxldHQKZW5pCnRlY2gK4paBRW5jCm9yYWNsZQphbWlsdG9uCnplagpmZW4KdW1lcmF0ZQriloFxdWVzdG8KZGFydAriloFLb3JlCmFwaXMKZXBlcgpTY3JlZW4Kd2FsbAriloFpc2xhbmQKc2hlCuKWgWxpZ2dlcgrQstGB0Y8KZmFuZwriloF0YXJkCuKWgXBsYWF0cwriloHQv9C70L4K4paBT2ZmaWNlCuKWgVNFVAriloFjaXJjdWl0CmplZApTYXZlCtC70YzQvdC+ClNvY2tldAriloFJbmRleApBQ0sKaWRlcnMKZXJlcgriloHQodCo0JAK4paBbGFkeQriloFzY2hlbWUKaWVsbGUK4paBZXhlcmMKKX1cCkRhdGVUaW1lCmF0aGFuCuKWgVByb2Zlc3NvcgriloFtb2lucwriloFFeGNlbAriloFIYXkK4paBTXVzaWsK4paB0ZcKxJlkCuKWgSIuCuKWgdCx0YPQsgriloFpbnN0cnVtZW50CtC/0LDRgAriloHQsdC10YDQtQriloFwb2xpdGlxdWUK4paBdHJhZGl0aW9uCuKWgVZNCuKWgUFydHMK4paBQ2kKVXNlCuKWgWFnZ3JlZwriloF3ZWVrcwriloFvcHBvcnQKaXRpbmcK4paBdmVydGljYWwK4paBTmF6Ci4uLikKaXpvCuKWgWN5Y2xlCuKWgXRlbXBvCtGC0YDQtQriloFoYW5kbGluZwppc3RlbmNlCuKWgXBhc3RlCuKWgWVuam8KUk9VUAriloFvdXRlcgriloFzdXBwbHkKZW1hbgriloFhY2NpZGVudAriloFcXQriloHRgtC10YUKUG9vbApvdGluZwpvbnltb3VzCuKWgUdpb3YK4paBdWQK4paBLi8KRVJST1IKY29uc3RydWN0CnRleHR3aWR0aApxdWlwZQpjYXNlcwriloHQsNC0CuKWgVJvdwpIb2xkZXIKd2FuCmFybmEKTWVtCuKWgUNhbmFkaWFuCuKWgUNvbW1pc3Npb24Kc3VuCuKWgWFwcHMK4paBQmxvCuKWgWlocmVyCuKWgWZhbWlsbGUK4paBbcSbCuKWgXB5CtC40YEK4paB0YLQvtCz0L4K4paBQWdhaW4K4paBaWdub3JlCuKWgXRlbGV2aXNpb24KUGF0CmhpZGUK4paBUmV2CuKWgWJlYXIKcGh5CuKWgW5vaXNlCuKWgXdyYQphdGlvbmFsZQriloFjb2xsYWJvcgpib3JkZXIK4paBZWxlY3RlZAriloFzdXJwcgriloFhdm9pcgriloFhc3NlbWJseQriloHQvtCx0YnQtQriloFhcmJpdHJhcnkK4paBYnJpZWYK4paBLS0tCuKWgU1hdXIKZ3Jlc3Npb24KaWNpYQriloFsaWVndAriloFGaWd1cmUK4paBb250bwpSZXBvc2l0b3J5CuKWgWTDqWYK4paBZm9ydGgK4paBY2xpY2tlZApzZWl0ZQriloFub3RlcwpuYXRpdmUK4paBRURJVArRi9C1Ck1UCmFtZW50YWwK4paBcm9zZQriloFwdWVkZQpEZWxlZ2F0ZQp1YmEKbmVvCnhpcwriloFBcnRodXIKVVJFCmFtaW5nCkRldmljZQriloFkaWFtCnN0w6RuZAriloFwcm9uCm9pcwpjb21pbmcKUGFyYW1ldGVycwp1dnVkCuKWgWFiaWxpdHkK4paBbcOpdAriloFVbmZvcnR1bmF0ZWx5CmZkCkRpY3Rpb25hcnkKc29ja2V0CuKWgWNvbm9jCmNvbnRhaW5zCmVzc2VkCuKWgWdlbGRpZwrQvdC40YbQsAriloFwb2ludGVkCmVzdGkKbm9tCtC+0LPRgNCw0YTQuNGPCuKWgXJlcHJlc2VudHMK4paBbWFuaXAKd29ybGQK4paBcmVzb2x2ZWQKdGVncgriloFkb3J0CmFzdGVybgriloFjYW1wYWlnbgriloFwcmltbwriloE7OwriloFzbmlwcGV0CuKWgU5pawpUb3RhbAppc3NlbWVudApBQ0UK4paBdmVyaWZ5CmlmZmUKbGFnZW4KaWV1cgriloFjb252ZXJ0ZWQK4paBTWlsaXQK4paBQWxnCuKWgVJvbgriloFrb25uCmFwcGxlCuKWgWRpc3BvcwpzdGVsbHVuZwriloFyZXRhaW4K4paBbWVudHJlCuKWgW5ldXQK4paBTmlnaHQKY2jDqQphdHRpCuKWgW9icmEK4paBc3VwZXJpb3IK4paBQ29uZ3Jlc3MK0ZHQvAriloFjb2RlcwriloFBbWEK4paBRWFydGgK4paBb3Bwb3NpdGUK4paBcG9vbAriloFEdW4K0LbQtdC90LjQtQriloEiJHsKaW52CuKWgdGD0L3QuAriloFBbmRyZXcK0YLQtdC70LXQuQriloFiecWCClVuaXZlcnMK4paBQW5ndWxhcgphbmltCtC00L7QstCwCkJVRwp1dGVseQriloFkcmF3aW5nCuKWgWdhaW4K4paBZm91cnRoCuKWgVByb2JsZW0K4paBc3VkZGVubHkK4paBw4QKb25uYQriloFLb250CuKWgUJpbGRlcm4K4paBa29ubnRlCsW+ZQpUcmFjZQriloFzZWN1cmUK4paBa3TDs3J5CuKWgWVxCuKWgWZvcm1hbAphbWVyaWthbgriloFBbmFsCuKWgVJld3JpdGUK4paBRG91YmxlCmNyZWF0ZWQKTlUKTURiCmFwZXMKVW5pcwriloFlc3BlY2lhbAp9KVwKZWRvbQriloFjYXRlZ29yClJldHVybgriloFIYW1iCuKWgVJpbwriloFNaXIK4paBR2VtZQphYmlsaXRpZXMKdHJ6CnVzZXQKaWVycmEKbmV0d29yawriloFkb2N0b3IKZXVycwriloFsaXN0ZW4K0LTQtgriloFIw7YK4paBY29uc2lzdHMKYXNtCkNocgphbGFuZAriloHQuNGB0L/QvtC70YwK4paBbHVnYXIK4paBZGVmaW5pdGVseQptb3ZlCsO6YmxpY2EK4paBbMOkbgppc211cwriloHQtNGA0LbQsAriloFkdAriloFQZXJoYXBzCuKWgUJyYXNpbApKb2huCuKWgXByb21pc2UKxYJ1CnJlZW5zCuKWgXBzeWNoCuKWgVdobwrRgNGP0LQK4paBSU5UTwriloFQZW9wbGUK4paBV2lsbGlhbXMK4paBTWFyZwriloHQtNCw0L0KcmVjb3JkCuKWgUV1cm8K4paBVmlyZ2luaWEK4paBUmVzdAriloFDb3JuCn19LAriloFHcmlkCuKWgWluamVjdArQvdCw0L0K4paBY3JvdwriloFQaHlzCuKWgURPCuKWgSItCuKWgWluY3JlYXNlZAphY2hlcgpwZWF0CkxpbgriloFEdWIKcmljZXMKYWdub3N0CmRsCuKWgWN1cnZlCsO8ZwpyaWNlCmxhbmd1YWdlCkNsaWNrTGlzdGVuZXIK4paBbXVuaWNpcGFsCuKWgU9yaQriloFCaWxkCuKWgUNhYgriloFWYXIK4paBbm90ZWQK4paBw44K4paBc3VicwppYXRpb24KV09SCmluZ2x5CuKWgVJ1cwppZW5zCklORk8K0LrQstCwCmF0aXZvCmdlbmRlCuKWgUZyYW56CuKWgWlzb2wKZWRlcwpuaWVyCuKWgU5PCuKWgUhhcwpiZWFucwriloFwYW5kYXMKKCIlCtCy0ZbRggrRg9GC0LHQvgriloFnYXRoZXIK4paBbGVnYWwKaW5jbHVkCuKWgWNpcmN1bXN0CmNyaXB0b3IKcmlibGUK4paBU8O8ZAriloFhcHJvCkFwaQriloHQvdCw0LkK4paBQWZyaWNhbgpvd3NraQriloFKb2huc29uCmllawriloF2b3RlCuKWgUthbgriloFiaWJsaQriloFoYWFyCuKWgXZyCl0pLApzdWJzZXRlcQpQYXJzZXIKaWFuaQppc8OpCmlkZWEKT25seQriloHDoWwK4paBQ2F0YWwK4paBQ2FzZQpzZWgK4paBZW5jb3VudGVyCuKWgXJlZm9ybQrQvNC40L3QuAriloFTdHJlCmV4Y2VwdGlvbgriloFUYXIK0YLQsNGACnRybAriloHQkNC70LXQutGB0LDQvdC0CtC70LXQutGCCmVxdWFsCk9wCuKWgWxpZgriloHQudC+0LPQvgriloF2b2x0YWdlCnNoaXJlCuKWgUdyb8OfCtCy0L3RjwpuaW5ncwrQvdGG0LgK4paBbGFnCuKWgWFuZGVyZW4K4paBdmFjCuKWgW1hY3JvCj1bClRoZW4K4paBY29udHJvbHMKc2VxCm9sb2dpZXMK4paBc2VsZWN0b3IK4paB0KPQutGA0LDRl9C90LgK0YXRltCy0L7QstCw0L3QvgrRi9C5CmFsbGVuZ2UK4paBSU1EYgp1bW15CnllbgriloFiZXN0ZQriloFCb3gK4paBY2hhaXIK4paBU2FiCmVyZGUK4paBbmFzdAppdmFtZW50ZQriloHQvtCx0YoK4paBcmVxdWlyZW1lbnRzCuKWgW1lZXRpbmcK4paBZmluYW4K4paBQWRhbQriloF0ZWxldmlzCuKWgWJyaWdodAriloFHaXQKRUcK4paBR2lsCnLDqHMK4paBQ29uZAriloFmdAriloHQsdGD0LvQvgotKwpFTkQKZXJuZQriloFDb21wdXQK4paBaWxzCuKWgWdhbGwK4paBY3N2CsWCdWcK4paBc3VtbWVyCmdhbWUK4paBcG9zdHMK0JDRgNGF0ZbQstC+0LLQsNC90L4K4paBemlqCuKWgWRldGVybWluCuKWgWFiYW5kb24KY291bnRlcgriloFyZXF1aXJlbWVudAriloFUaXQKaXJ0dWFsCuKWgVZpZGVvcwriloFxdWlldAriloFUZXJtCuKWgXRpbWVvdXQKUHJpbnQK4paBaW52ZW50CmxhaXMK4paBbW9uaXRvcgpoYWxiCuKWgVdpbGQK4paBbGVhZGVyCuKWgdGB0LXQu9GMCuKWgXV0aWxpegriloFwYXJlbnRzCuKWgWZvcmNlZAriloFwcm92ZWQK4paBZWZmZWN0aXZlCuKWgWxsYW0K4paB0KHQv9C+Cm9yYgpnZ2kK4paBYXNzdW1wdGlvbgriloFzdWJtCuKWgdCy0ZbQuQppbGlhCuKWgXJldmVyc2UKJyIK4paBcXVvdGVzCuKWgXNpdGVzCmlndW5nCuKWgUFyZwpEb3VibGUK4paBc2NyZWVucwriloFjbGF1c2UK4paBYnVuZGxlCuKWgXBoaWxvc29waAriloFOdW0K4paBZ2xlaWNoCnVseQpkaXJlY3QKYXNrZXRiYWxsCm93YW55Clx9JAriloFyYWRpdXMK4paBU2VhcmNoClByb3BlcnRpZXMK4paBZWxldgriloFwcm9kCuKWgSIlCmlzacOzbgpEZWJ1ZwpTZWNvbmQKKCEK4paBQ2F0aG9saWMK0YDQvtCy0LDQvQpsZXoKUGEKcHNvbgriloFlcnN0ZQriloFGdQriloFsaXQK4paBU2Fpc29uCuKWgUhhc2gK4paBZXhlbQriloHQv9GA0LXQtNGB0YLQsNCyCikqCuKWgWV1CuKWgeKUggriloFnYWIKZXRhaWxlZApDb3B5CuKWgdC00LLQsApldmVuCktpbmQK4paBSmFja3NvbgrQsNC7CuKWgWNvbnNlYwpVU0VSCuKWgVRvawooLgriloEkfAriloFUYW1iCuKWgUxlbW1hCmhhbmcK4paBY29udHJpYnV0aW9uCnJvbGxlcnMK4paBc3R1ZGllcwriloFwb2kKZ2VtcwriloFVUAriloFXb2wKPiIK4paBZmxvb3IK4paBaW5pdGlhbGl6ZQriloFMZXcKemVrCmFydGUK4paBcG9zaXRpb25zCuKWgXBvcnRpb24KY292ZXIKd3AK0L7QstC+0LPQvgriloFwaWFubwriloFtZXRhbAriloFzYW1wbGVzCuKWgdCh0LDQvQp2YXJpYWJsZQriloHRgdGC0LDRgtGMCuKWgWludGVnZXJzCldoZXJlCmZhbWlseQriloFudW4K4paBaW5jcmVtZW50Cml4ZWQK4paBaGVlZnQKZnRlCuKWgXZpbAriloFvdHJvcwpNdWx0aW1lZGlhCuKWgUhlbnJpCmFkZWQK0LPQtdC9CuKWgWNhcGl0CuKWgdC00YDRg9Cz0LjRhQppc3AKSVRZCuKWgWNvbnN0cmFpbnRzCuKWgUtpcmNoZQpmb3VuZArRiNC40LkK4paBcGljCuKWgXRvdQpjcmVkCtGA0L7QsQriloFNZXNzCkpvYgriloFNYWlzCuKWgXN0eWxlcwpmYWxsCuKWgVVrCuKWgXN0cmVldApvY2Nlcgplc2VuCuKWgWNvbG9ycwpjZWFuCtGO0YnQtQpjb25uZQriloFyYXRpbwphbnRvbgriloFGZWwK4paBY3VzdG9tZXIK4paBUHJpeApyw6FzCnByZWQK4paBZWxlY3Ryb24Kc3ltCuKWgdCy0LXQu9C4CuKWgW92ZXJmbG93CuKWgSRbCuKWgVBPU1QK4paBQ2luCnNjaGVpZAooIi8K4paBc2VhcmNoaW5nCuKWgXB1cnBvc2VzCuKWgWFycml2ZWQK4paBcHVudAriloFsYWQKUHl0aG9uCuKWgWxlYWRzCuKWgXNhbmQK0L/QsNC00LAK4paBY29tbXVuZXMK4paBQ0hBUAriloFjYXNvCnJ6CuKWgWR3CmFjYQriloFDb2x1bWIKY2hpbGRyZW4Kw6p0CnNjaGVtYXMK4paBaW5zdHJ1Y3Rpb25zCuKWgS1cCuKWgUlzcmFlbApub8WbY2kK4paB0L7QsdGA0LDQtwriloHRgdC+0LLQtdGCCuKWgWltbWFnaW5pCuKWgUZyZWQK4paBR2xvYmFsCuKWgXRoaWNrCuKWgWZ1ZXJvbgriloF0aHJvd24K4paBY2xvY2sKZW5hYmxlCicnJwriloFTdW5kCuKWgWNvbnRlbXBvcgphbnN3ZXIK4paBbWFudWZhY3QK4paBaW8KcXF1YWQKT1VUCuKWgUxhYgriloFadwpsZWdhbAriloFWZWwK4paBcmFpc2UK4paBZGVsaXZlcgriloFWb2lyCuKWgWFzc3VtZWQKTGV0CmllcnRlbgriloFLb25nCuKWgUV4cAriloFKdWcK4paBZGVjbGFyYXRpb24K4paBRmlzaAptw6kK4paBc3BlZWNoCuKWgXRlbnQK4paBUm91dGUKX18oCuKWgXLDqWFsaXMK4paBRGVzaWduCnNldFRleHQK4paBU3RhdGlvbgphcmNoeQriloHQutCw0YLQvgriloFkZW50CuKWgUtsCmnDnwriloFyaXNrCuKWgUJyb2FkCuKWgXZlY3RvcnMK4paBU3BlYwriloFyb3V0ZXMKeW1uCuKWgUdyZWcK4paB0L/QvtC70YPRh9C4CmdpZQpPUk0K0LLQtdC00LUKd2FsdAriloFlZnRlcgpQdHIK4paBc3VidAriloFiaXJ0aAriloFkcmF3bgptZXNzCtC80LXRgNC40LrQsNC9ClZFCuKWgVB1dAriloFhc2MK4paBZmVkZXIK0YHQu9C4CuKWgVByaW4K4paBc3RpY2sKcmVzZXQKeWsKc3R1ZGlvCuKWgVN0aWxsCkNvbnN0CmFjacOzCuKWgVBvcnR1Z2FsCuKWgXNjcmlwdHMKdW5kaWFsCuKWgWxpdmVzCuKWgXN6ZXIK4paBZXN0YWRvCmZvbGRlcgriloFjb21tdW5pY2F0aW9uClJvdXRlCuKWgXN3aWZ0CtGC0LXQvQriloFraWxsCuKWgVBSCmpvaW50CuKWgW9iamVjdGl2ZQriloFjb21wbGljYXRlZAriloHDnGJlcgplc2gKcGljdHVyZQpyYWluZQpjb21wdXQK4paBcHJvcG9ydApvZ3MKw7xsdAriloFxdWFudHVtCtC60YDQuAriloFzb3AK4paBbG9vcHMK4paBUmVmZXJlbmNlCuKWgW5laQpJQ0UK4paBdmVybQriloFhZGoK4paBcGVyw7IK4paBdHJvdQppc2lvbnMK4paBQXBwbGUKc2VydmFibGUK4paBQm9zdG9uCm9yZXQKb2tzCuKWgWtnCmRlZmluZWQKcGxhdGZvcm0KY2xlcgpvZ3JhcGhpYwpyaXR0CuKWgWRpYwriloFNb25kCuKWgUlyZWxhbmQK4paBVW5hCuKWgWNvbW1lcmNpYWwK4paBUHUKRGkK4paB0LXRkQriloFwcmVjaXMK0L3QsNGA0L7QtAriloFxdWF0cmUKdXN0cmFsCuKWgWRhZwppZ3VlCuKWgWJ1cm4K4paBb2ZmaWNlcgriloHQkNCyCuKWgWhpZ2hsaWdodAriloFTdXBwb3NlCm9kaQpzZXJ2bGV0CuKWgUVuY3ljCuKWgVJhbmdlCtGC0LjQuQpQbGVhc2UK4paB0YDQvtC60ZbQsgpxdWFudAriloFmbGF0CuKWgVLDqWbDqXJlbmNlCtGB0LvQtdC00L7QstCwCnJvbGUK4paBZGllc2VuCn19KAriloFJbmR1c3QK4paBbsO6bWVyCuKWgSI7Cmx1cwrDtGxlCuKWgXptCmRlZwriloFyb3VnaApJbnYK4paBaHVyCuKWgVJlc3MKY2hzCuKWgXR1cm5zCm5lcm8KZnVuY3Rpb25zCtCw0LvQuAriloFoYWJpdGFudHMK0LDRggppc3N1ZXMK4paBaHVnZQpVdGlscwriloFTYXQK4paB0LPQvtGB0YPQtNCw0YAK4paBY29hc3QKc2hhcGUKTEMK4paBbG9nZ2luZwplbmRvcgriloFsaWVzCuKWgWRpZmVyCuKWgWNyaXRpY2FsClhUCtC80LjQvdCwCmFuc2sKUmVzdWx0cwprYwppdmVyc2UKRVhUCkFMU0UK4paBdsOhbApQaQpjb21waWxlCmhlbGxvCuKWgdGH0LXQvNC/0LgK4paBSXRhbGlhCtC60L7Qu9C+CuKWgWVkaXRpb24KZ3J1bmQK4paBZGF0YWZyYW1lCuKWgUZvbGxvd2luZwpyZWliCuKWgUplZmYK4paBY2l0dMOgCklUYWJsZQriloEkKFwK4paBcmVkdWNlZApvYmlsCuKWgWFueXdoZXJlCicoCuKWgXBocgriloFLaAriloFGcmFtZQriloFtYW51YWwK4paBY3JhCuKWgVZTCiU9Ckluc3RhbmNlU3RhdGUK4paB0LHRgNCwCuKWgURyYWcK4paBSGVycgriloHQs9GDCuKWgW3DunMKVG9vbAriloFQcml2YXRlCuKWgXN5bmNocm9uCmlyYXRpb24K4paB0L7QsdC+CuKWgXR5cGljYWxseQriloFpbXBsaWNpdApvcmllbnQK4paBdGltZXIK4paBa8O2bm5lbgppZXN0CnJhaWQK4paBZXhwcmVzc2lvbnMK4paBYWltCuKWgXN0cmUK4paBd3JhcAriloFCYXJ0CuKWgWJyb24K4paBa2V5Ym9hcmQKcG93CuKWgWdydXBvCuKWgdGA0LXQt9GDCuKWgXByb2Zlc3NvcgriloFIZWFkCtC90L7RjgptaW51cwriloFNaWNoZWwKTk9UCm1vcgpdfQp3aWRlaGF0CmFyaXMK0YLQtdGA0LDRgtGD0YDQsApkZWZuCmlzdHJ6CuKWgXRhbnRvCuKWgVBvdwriloFpbmRpY2F0ZQriloFXaW50ZXIKcmVzaG9sZArRgNGW0LIK4paBYCgK4paBb3duZXIK4paBZGlzcAriloHQutGA0LgK0LzQtdGCCtC80LXQvdGCCnJlcG9ydApyZXF1aXJlCuKWgXZveQriloFBUAriloFFc3Bhw7FhCuKWgVPDo28KasOkcgpOb24KTGlicmFyeQppY2h0ZW4K4paBc3RydWN0dXJlcwriloFtdXkKw6FyaW8K4paBY2VydGlmaWNhdGUK0YfQvdC+0LPQvgriloFwcm92aW5jZQpwYWdlcwpkYWwK4paBRnJlZGVyCtGM0LUKRXhlY3V0ZQriloFhbmNpZW50CuKWgWZpbG1zCuKWgUFsZnJlZApBdXRvCuKWgWF0b20K4paBZWxsCuKWgUhhcnIK0LnQvQriloEiIwriloFuYWNpb25hbAriloFuZWlnaGJvcgrRgdGC0YPQv9CwCuKWgXdpdApQb3AK4paBR3JlZWsK4paBcmVwZWF0CmJhZAriloFTQwriloFEYXRlVGltZQrRiNGC0LgK4paBV0gK4paB0L/RgNCw0LLQuAriloHQotC4CuKWgXNhaXNvbgriloFIYXJ0CmRpcmVjdG9yeQp1YW4Kbm9ybQriloFQaGlsaXBwCuKWgXN1c3BlY3QK4paBYW5ubwpiYwrRgdC70LAKJCgK4paBYmVmaW5kCm9jcwpsYXRlc3QKOyI+CuKWgWFmdGVyd2FyZHMKUFVUCuKWgWphCuKWgUhpbAp5egriloFCb3VyCuKWgWxhaWQK4paB0JTQttC1CnBpZQp3YXRjaAriloFFcQpjb250YWN0CmliZXIKY2hlY2tib3gK4paBZXNwYcOxCmFuc2UK4paB0YjQutC+CmVmZgp4eHgK4paBR0VUCuKWgWxvdgppdHV0ZQp6ZWNoCnRlcmUK4paBcHVycwprZW5zCmlhbnRlCuKWgUZyZWUK4paB0L7RgNCz0LDQvdC4CmtyZWlzCuKWgXs6CnNoYXJlZAriloFHcmFwaAriloFjb25uZWN0aW9ucwriloFET00K4paBQ2FydApzc29uCuKWgUhhbWlsdG9uCtGC0LXQu9C4CuKWgXJlc3RhdXIKUmVzb2wKRHJpdmVyCuKWgWVuZgpFRElUCuKWgXByZXYK4paBaWsK4paBc8SDCmrDtgriloHQodCh0KHQoAriloFjb2xvdXIKY2h0ZW4K4paBZXN0YWQKaW5vaXMK4paBY29uZmlyCuKWgXbDqQriloFDZXMK4paBTmV2ZXIKb21lcgrQttC00LAK0YHQu9GDCtGH0LXQvdC40Y8KZGxsCuKWgXlvdXRoCmVtZW4K4paBc3R1ZGllZAriloFLaWwKY2lvbgriloFuYXZpZwpyZXF1aXJlZApvcml0aG1zCmlsb3IK4paBRGV1dHNjaGVuCuKWgXBlcnNvbnMK4paBQmFyY2Vsb25hCuKWgWZvcm1hdGlvbgphYmVpCuKWgdC/0YDQvtGC0LjQsgpFbmdpbmUKT05FCm9ncsOhCkNhcApyaXIK4paBZ2F0ZQpvcmF0aW9uCm1hdmVuCuKWgWNvbWJpbmVkCuKWgWF0dHIK4paBaG9vawriloHQutC+0YLQvtGA0YvQuQriloFzZXJ2ZXJzCnVjdHVyZQrQttC10L3QvdGPCnR2CuKWgXJlcQpqYWwK4paBbG9jYWxseQp9fXtcCkJyCuKWgUhpZXIK0LzQvtGACuKWgWFwYXJ0CiJdLAriloElPiUK4paBenVzYW1tZW4K4paBaWRlbnRpZnkK4paBQWx0ZXJuCuKWgdCx0YDQvgriloHRhtC4CmdoCuKWgVRlbgpSUwrRhNC+0YDQvNCwCuKWgW5lbGxlCuKWgUhpbgpvdW5kaW5nCuKWgXJlcHLDqXMKYXBoCuKWgVtcCuKWgVNwb3J0cwrRgNCw0LsK4paBdGhyZQriloFwcmluCuKWgUVsaXoK4paBRm91cgriloFzb2NpZXR5ClRyYW5zYWN0aW9uCuKWgXZlZwriloFzY2hvb2xzCuKWgW92ZXJhbGwK4paBdGFpbArDvGJlcgriloFTb3YK4paB0KHQtdGACuKWgXJhcHAK4paBdHJhZmZpYwpxdWVzdGlvbgriloFlbnZpcm9uCmF0ZWllbgppY3VzCuKWgW5hcnJvdwriloFwcmF5CuKWgUJvdQriloFDbGllbnQKYWJsCuKWgUF1ZGlvZAriloFucG0K4paBQ29sdW1uCuKWgUdhbWVzCmF2ZXIKb255bWVzCuKWgdCf0L7RgdC70LUKbsSFCuKWgU51CuKWgURpY2sK4paBdGVuc29yCuKWgUAiCnbDqQpJY29uCuKWgdC/0L7QtNCwCuKWgUdvbgovKS4KaXN0cmEK4paBQXVkaW9kYXRlaWVuCkRlbGV0ZQp9fX0K4paBanVtcAriloHQntCxCuKWgXByaW5jaXBsZQriloHDiXRhdHMKb2tlZAriloHQktC70LAKSW50ZXJ2YWwK4paBc2F1CmVuY29kZQriloFwb24KY2F0Y2gK4paBdGllbQriloFHdXN0Ck1DCmxpbWl0cwriloFrZWVwaW5nCuKWgXNvbmdzCuKWgdCw0LLQs9GDCuKWgdGA0LDQudC+0L0K4paBbm90aWZpY2F0aW9uCuKWgW9mZmVyZWQKQ29yCuKWgXNodXQKZXJyb3JzCuKWgUVOCuKWgWxhdGFjaAriloFzZWxic3QK4paBY2hlY2tib3gK4paBY29vbAriloFmYWN0b3J5CuKWgXBhaWQKZGltZW5zaW9uYWwKbmllagpwdG9uCuKWgXBpbgpha2VkCuKWgXJlbGkK4paBVGF5bG9yCuKWgVNvbWV0aGluZwppbXVtCuKWgVZpbgriloFpdGVyYXRpb24KRmluZArQutC+0LLQuAriloFib3lzCuKWgVNpbXBsZQriloFDcmlzdAriloFXYXMKw6JuZAriloFWYQriloHRgtGA0LAK4paBZGVzdGluYXRpb24KbGltcAriloFLYXQKd29ydGgK4paBS29yCmnDp8Ojbwo9YAriloFmYWlybHkKZmFsbHMK4paBcmVqZWN0CuKWgWRyZWFtCmJlbGwK4paBdG91dGUK4paBJFx7CuKWgXN0b25lCuKWgXByb3RlY3QK4paBZXhjZWxsCuKWgU1leGljbwriloFkYXNoCuKWgWZhdWx0CnBtYXRyaXgKYWxsZXIK4paBZ3VlcnJlCm9yaWdpbgpoaWJlcm5hdGUKw61saWEK4paBUmVnaXN0ZXIKdW50bwriloFCYXQK4paBYm93CtGB0YzQutC40YUKZXTDoAriloFMdWlzCuKWgWZvdQriloFDYW1icmlkZ2UK4paBb3R0CnN1cApyZWFzCuKWgXBvaW50ZXJzCuKWgUJvYXJkCuKWgdGA0LgK4paBZHJpdgrQvdC40L0K4paBQ2lyYwriloF0aG91CkRpdgpzcGFyawpsYW1lbnQK4paBVkFMClNlbmQK4paBSXJpc2gKb3kK4paBVHUK4paBdHJpdmlhbApGb3JtcwriloFhc8OtCuKWgUltcGVyCuKWgXNpZ25hdHVyZQp1bm9zCuKWgU5lZwriloFjYW5jZWwK4paBSGVpbnJpY2gKZWVkCklsbHVzdHJhdGlvbgriloFzdWxsYQriloFxdWFydGVyCmFzegriloFibG9nCmZpY2EKd29uCnF1ZXQKXSkpCuKWgWdlbmVyYXRpb24K4paBY2F1Z2h0CuKWgWxhbmRzCuKWgUtpbmdkb20Kc2NoYWZ0ZW4Kcm9ucwphbm5lbHMK4paBU3BlY2lhbAp0dXRvcmlhbAp0aXAK4paBIiIsCuKWgUF6dXJlCuKWgWJvdW5kZWQKU20KdGFyCtCy0LXQvQriloHQt9C10LwK4paBbm90YXRpb24K4paBYXBhY2hlCuKWgWdhegppZXJubwphbmdlbgpwZWN0aXZlCuKWgWVsZWN0cmljCuKWgXNlbWkKTUFYCmVkZXJiCm9iamVjdHMK4paBZGlmZmVyZW5jZXMKaXN0ZWQKaHJlZgppY2lwCuKWgW51bXB5CuKWgdGE0YPRgtCx0L4KbG9hZGVyCuKWgWRpY2gK0ZnRgwriloFEw6kKSHoK4paBUGFyYW0KZG9jdW1lbnRhdGlvbgppcmNyYWZ0CkVNCuKWgWluc3RpdHV0aW9uCmNvbXBhdAriloHQsNC70YwK0YHQu9Cw0LIK4paBTmV0CtGG0LjQvtC90LDQu9GMCuKWgWJyb2FkY2FzdApkYXRldGltZQphc3luYwp2cmUKbWVhbgriloFDaGVtCuKWgWVzdGltYXRlCmljYW5hCuKWgWdyZXAKdGVrCsOkbQpvcmlnCuKWgVZpY3Rvcgp1dGVuYW50CmFuZ2EKcGluCuKWgXZlcnRleAriloFDSEFQVEVSCmNpdHkKdWdieQpncmVlbgriloFLZXIK4paBZGlmZsOpcgriloFuZWNlc3NhcmlseQpEQwpMaW5lYXIKYWxlbQriloFMYXRlcgriloFtZXRhCmplbQpyYWdlbgpNYXkK4paBTWl0Z2xpZWQK4paBc29ydGVkCnVzc2VuCuKWgXNwb2tlCuKWgWRpc2FibGVkCuKWgWFjY29tcGxpc2gK4paBUnVzc2lhCnRoZXJlCmVlcwriloFoYWxsCuKWgW1ldHJpYwphdHRyaWJ1dGUK0YLQvtCz0L4KYWJvdXQK4paBTGFtCmNoYW5uZWwK4paBZXBpc29kZQriloEkKCcuCuKWgW91Z2h0CuKWgUVzdGUKT2JqZWN0cwriloF2YWxpZGF0ZQriloFyaW0K4paBbnVtZXJvdXMK4paBSmF2YXNjcmlwdAriloFHTAriloFJdGFseQplZGVyYsO2cmQKb25hdG8KYm9va3MKc3RvbmUK0YXRgwriloFqZWwKaXJpCuKWgUFTUApHQQriloFzdGF0YQriloFiYXoKRGF5CnRobQpkaAriloFGaWxlcwpBbmRyb2lkUnVudGltZQriloFjaGVja3MKa3IK4paBdmVubmUKU0wKYXZpYQprYXp5CuKWgVRocmVlCkFkbWluCuKWgWNvbGxlZ2UKR2xvYmFsCnRpb24K4paBY3VyaW91cwpzaG9ydAriloFiYXNzCtC00LXQu9CwCuKWgdC00LXRjwpTY2hlbWEKJ1wKZGlmZgriloFDQQriloFDb3Jwb3IK4paBb3BlcmF0b3JzCm9tcsOlCuKWgWVkZ2VzCik7YAppbmRzCuKWgWdpbmcKJiYKfS1cCnJhbm8K4paBc8OjbwriloFhZGRzCmVsb3IK4paBdW5zaWduZWQK4paB0L/RgAriloFDb25maWcK4paBRXNjCuKWgWNob3NlCuKWgXBpZWNlcwriloFyZWdpb25zCkVzdAriloFCYXR0bGUK4paBZm9jCuKWgUxpZ2h0CnBhZGRpbmcKYWJlbgriloFldXJvcAppbGxvbgriloHQtdGB0YLRjAriloFib3JkCuKWgdC+0YLQvdC+CuKWgUhvbmcK4paBdnVsCnBsdWdpbnMK4paBJzwK4paBa3VyCnJlZ2lvbgriloFSZXB1YgppY2hlcgp9X1wK4paBbWVkYWwK4paBTW9yZW92ZXIKQkkKQXYKdXRlcgriloFzY2FuCuKWgU11bmljaXAK4paBY29udHJhc3QK4paBSWcK4paB0LPQvtGA0L7QtApyZWxhdGVkCmFsaW5nCuKWgdC80LDRggrDvG5zdAriloFDaHJpcwp3eQriloFBY3R1YWxseQriloFVbml2ZXJzaWRhZApFdmVudExpc3RlbmVyCuKWgXRlbXBvcmFkYQriloFhc3NpZ25tZW50CuKWgU1pa2UK4paBd8OkaHJlbmQK4paBxZt3aQriloHRgdGA0LXQtArQutCw0LTQtQriloFjYWxjdWxhdGVkCuKWgWVsbGVyCuKWgUFzaApyaWVsCuKWgWhhcmR3YXJlCuKWgWludGVucwooJy4KaWxsaQphZ29uCuKWgUd5CuKWgWhldXRlCuKWgXNsZQriloFsaXRlcmF0dXJlCnNlbQptYW5hZ2VyCuKWgUdyYW5kZQriloFtaXhlZAriloHQktC10YAKw61jw60K4paBc29pdAriloF3ZWxjb21lCtGH0LXQvdC40LUK4paBVW5pdmVyc2l0w6R0CuKWgWJ1aWxkZXIKc2ltcGxlCmljb2RlCsWZZQppbmRlbnQKb3BvCuKWgWFkdmFuY2VkCnRlbXBlcgplZGdlCuKWgWRhdGV0aW1lCuKWgWRvbmMK0LvQsNC90L3RjwriloF2ZXJkCtC00L3QvgppdG9zCuKWgWhlYXQKdmlzaWJsZQptZWwK4paBR2lvdmFubmkK4paBdmFyaWV0eQriloFyb3V0ZXIKVmVjdG9yCuKWgVdhbGsK4paBb2J2aW91c2x5CmhlaW4KRmluCklUYWJsZVZpZXcKWWVhcgriloFFY29ub20K4paBdmVsb2NpdHkK4paBQ2l2aWwK4paB0ZgKYWxlcnQKSWRlbnRpZmllcgrDqG5jaWEK4paBbm9ybWFsbHkK4paBRWd5cHQK4paBY3R4CuKWgVZlcmVpbgriloFIdQp1bHR1cmUK0L3QuNGC0LUKbMOpCuKWgVdpZW4K4paBUHJ6CkJ5dGUK4paBbmFoCmlzbXMK4paBUHVibGlzaAriloFIZXJ6CmljdWwKcGlzb2RlCtGH0ZYK4paBZGllc2VtCmvDtgpWaXNpYmxlCuKWgXJpZwpgKS4KUGFyc2UK4paBSmFjcXVlcwpOSQriloFnbGFzcwotLS0rCuKWgWluaXRpYWxseQriloFrcgpDQ04KcGxheXMK4paBc2lndQpGb2xkZXIKc3RvcmFnZQriloFcfAppdm9zCtGB0LrRg9GOCuKWgU1vaAriloFDb21taXR0ZWUK4paBS2ltCmV1CtGC0LXQvAriloFvcmlnaW5hbGUKaXJzCuKWgVJlYgppdHV0Cm5sCuKWgVBpZXIK4paBXTsK4paBRmFsCuKWgSIiOwptdmMK4paBZmVtYWxlCuKWgWJyaWRnZQriloF0w610Cmt0cgo+KQriloFzZWF0CuKWgXZlc3MK4paBVVNCCuKWgUFydGljbGVzCuKWgURlc2NyaXB0aW9uCuKWgW9jCuKWgWhvdXNlcwriloHQn9C10YIKbG9uCk5vdGlmaWNhdGlvbgriloFwcmVzc3VyZQriloHQutGD0LvRjAppZ25lZAriloFyZWxpZ2lvdXMKZmFuCmlnbGlhCuKWgWNsYXNzaWZpY2F0aW9uCm9nZXRoZXIK4paBU0RLCuKWgUh1bWFuCuKWgWNvbW1pc3Npb24K4paB0J7RgAriloFhbnRlcwpEVArDqHRlCnByw6lzCi8iCuKWgSjCqwriloFow7YK4paB0YfQsNGBCuKWgWphawppZW5lbgp1Z2cKV0EK4paBcGxhY2Vob2xkZXIKV2lsbAosLAriloFLYW0K4paBd2VuCuKWgVNjaHVsCsibaWUK4paBYXVkCuKWgXN1ZQriloFyZWZlcnJlZArQstCw0YIK4paBUGFyYQriloFibGEKVUVTCuKWgXN0YXRpc3QK4paB0YLRgwriloFXYXJzemEKZ3VlCuKWgUlkZQptYXRoc2NyCuKWgWxpZXUK4paBYm9kCuKWgXJ1cwriloFib2F0CnhzcGFjZQriloFtb2RhbArQu9C10LoKdG9waWMKbWFueQpza8O9CuKWgW9yZ2FuaXphdGlvbgriloHQs9C10L3QtQriloFXaWxzb24K4paBY29tZm9ydAppYmlsCjotCuKWgWFuaW1hbApSZXBvcnQK0LrQsNC80LgKam9uCuKWgWtlcgriloHQutC90LgKbW96aWxsYQpQcmljZQphbnRpbgplbWVudG8KbWF5CuKWgWx1bmcK4paBYmxvdwplZGV1dAriloF0eXBlZAriloFkZWNlbWJlcgriloEuLi4uCmxpYW5jZQriloF2aWVsCuKWgdCk0LgKcHJlc2EK4paB0L7RgdGW0LEK4paBTmFtCuKWgUdyZW4K0YHQuNC70LDQvdC90Y8KVklECnN0cmUKd2VpcwriloFwcm90ZWN0aW9uCnRhaWVudAriloFvZmZpY2VycwrRgtC90L4K4paBQnJpZwriloFpbnRlbGxpZwrRj9GFCklUSAriloFzZXBhcmF0ZWQK4paBTENDTgpuw61tCmNsb2NrCuKWgWFwYXJlCtGP0LLQuAriloFFbGl6YWJldGgK4paBV2F0ZXIKZ2ViaWV0CuKWgWNvbnZlbnQKZnVydAriloFiZWlkZW4KYmFzaAriloHRh9C10YDQtdC3CuKWgXViCuKWgVN0YXRpc3QK4paBbGltaXRzClZvbApjdHgK4paB0L3QvtCyCmd1aWRlCm1pYwppZXNhCuKWgWh1dnVkClJUCkZpZwriloFsZWN0CmNvbm4KaW1pdArQs9Cw0YAK4paBYmFqbwpzY3JpYmUKcmVnZXgK4paBQ2FzcwriloFwcm9wYWcKJyQK4paBcHJvZmVzCnVuaXF1ZQriloFTcWwKdW5pb24KcmlvcwpwaXAKLS0rCmthZGVtCmNvbHVtbnMK4paBdmFyeQriloFiZXJlaXRzCuKWgWRvaQriloFDb21tb24K4paBUm9iaW4K4paBw5cK4paBc2VpCuKWgXN5c3QK4paBdsOkCuKWgURlZmF1bHQK4paBdHltCnBlbAriloFiZWxpZXZlZAriloFwcm92aWRlcgriloFtaW5pbWFsCtGC0LDQu9C4CmFpbmVzCktpdAppemlvCmlzc2VuCnByZXNzZWQK4paBc3RhZwriloF1aW50CmtvcgriloHRgNCw0YHQv9C+CuKWgWluaGVyaXQK4paBY29tcGlsZWQK4paBZmVicnUK4paBdG1wCndvcmtzCtGH0L3QsApkcmF3YWJsZQriloFOYXYK4paBdGhvdWdodHMKcm91dGUK4paBY29uY2VydAriloFvcHRpb25hbAriloFicmFzCuKWgXByb3ZpZGluZwrRgdC+0LwKaWR4CmVtcGxvCuKWgdC60L7Qu9C4CuKWgUJlcmUK4paBRWxzCtGA0LXQvNC10L0K4paB0LTQtdC60LAKY291dApsYXllcgriloFnbG9iCmZvcmVhY2gK4paBRWR1Y2F0aW9uClBPCuKWgWltcHJvdgriloFjbGllbnRzCmdyb3VwcwriloFrb250CkRlbApyZXR0CuKWgXN1cAriloFtb2cKdGFuCuKWgWNvbXBsCmlydHkK4paBbm91dmVhdQpvc3oK4paBTmF2eQpiZXJlCm1hc2sKb3bDqQp6aWwKUEVSCuKWgXBvYmxhY2nDs24K4paBZGV0YWlsZWQK0LvQtdGCCuKWgWZhbWlsaWVzCmFiZXQK0LXQstC40YcKw6RuZGVyCuKWgcOlcgriloFwZW5kYW50CuKWgWJpbAriloFoaW50Cm9kZW4K4paBZXhwYW5zaW9uCuKWgXBvbnQKYXNhbnQK4paBS2luZAppamkK4paBQXV0aApsYWltZWQKcmVmbGVjdApdPQpieXRlcwpob3ZlcgriloHRhtC10YAKZ3JhZGxlCkFyY2gKYXBlc3QKw6FzYQpDYXJkCuKWgXRlbXBvcmFyeQriloFkw6lwYXJ0ZW1lbnQKY2xhc3NlcwrQttC40LLQsAriloHRhdGD0LTQvgriloFtb2xlClJZCkxQCuKWgXBlYwpyb2R1Y3Rpb24K4paBR3VhcmQK4paBUGFybGlhbWVudAriloFpbnN0YW50aQriloFub3RhbW1lbnQK4paBRG91ZwriloFNYXJzaAoufgriloFcIgriloF0aMOpCuKWgWxpYnJlCmRvZXMK4paBZMOpYnV0CuKWgVVuaXQK4paB0YHRgtGDCuKWgWxlYWd1ZQriloFxdWFsZQriloHRgdC+0YHRgtCw0LLQu9GPClNlY3VyaXR5CuKWgWFwcGFyZW50bHkK4paBdHJvb3BzCmljYW5vCuKWgU1CCmVuemUKbG9hZGluZwriloFkaXN0cmlidXRlZAp3cml0ZXIKcmVzb3VyY2VzCmjDtgp1dGlscwriloFwcmVwYXJlZApjaWVyCm9wb2wK4paBbMOkbmthcgpoZXMK0L3QstCwCuKWgW9wZW5zCmFnb2cKaW50ZXJmYWNlCuKWgUZ1bmQK4paBcGVudHJ1Cm7DrWNoCuKWgWNvbmZpZ3VyZWQK4paBV2Vic2l0ZQriloFsaXN0ZW5lcgppdmVsCm7EmQptaW5hCuKWgWludmVzdAriloHQvNGW0YEK4paBZGF2CuKWgXBhdGNoCnBpZWxlcgriloFFeHRlcm5hCnRmCuKWgWVyZWQK4paBQXNzZW1ibHkK4paBc291dAriloF2ZXJrCm1lcnMKdG9nZ2xlCuKWgXVwZGF0aW5nCuKWgUtlbnQKZWNhCkZBVUxUCuKWgXRpdHJlCuKWgUtlbm4K4paB0JzQuNGF0LAK0YHRgtC+0YAK4paBcG9kZQriloFTZWIK0YbQtdCyCkVZCuKWgXNpbHZlcgriloFjYXBhY2l0eQriloFjb21wbGV0aW9uCuKWgVBlZHJvCmZlbAp2YW5vCnpldWcK4paBaW50ZXJpb3IK4paBUmVzcG9uc2UKw6lkaWEK4paBV29ybGRDYXQK4paBY8SDCnF1ZWwKU29sCtGW0YHQu9GPCuKWgURvbWluCuKWgWN1bQpjZXAK4paBTXVzZQriloFNYXLDrWEK4paBZnVuY3Rpb25hbAriloFhZGFwdGVyCmNvbmZpZ3VyYXRpb24K4paBdGlwbwriloFCcnkKdnkKVUwK4paBdHJhdmVycwohKAriloFhYnNvbHV0ZWx5CtC70YLQsArRgtGC0Y8K4paBSVQK4paB0LLQvtC10L0KeWNsZQpiZXN0CuKWgWNvbnN0cnVjdGVkCuKWgdGE0LjQu9GMCmNpZG8KZXhpdApnYXJ0CuKWgXByb3ZpbmNpYQp2ZXoKY2lwbAriloFGYWNlYm9vawriloF5ZWxsb3cK4paBU3VtbWVyCuKWgXBvaW50aW5nCuKWgXBvc3NpYmlsaXR5CuKWgWxlZ2lzbAriloHQvNC+0LYKZGVybgrQutC+0L3QvgriloFtZWNoYW5pc20K4paBQmVybmFyZApleHByCtC70L7QstC4CuKWgWRpZ2l0cwriloFkZWxlZ2F0ZQpvZ3JhbQriloFEaWN0aW9uYXJ5CmlzeQriloFzcG8KLyQKY2x1ZGVkCuKWgU1WQwriloF0w6ltCuKWgXByaW50ZWQK4paBR290dAriloFPbQphbnNhcwriloFEdXJjaAriloFJZGVudApRVQpodG0K4paBU3VsCiddLgriloFkdXR5CuKWgUF1dGhvcgriloFuxJsKb3dlZ28KcHVzCmVtYmwKRXhlY3V0b3IKQkwK4paBTWVucwpkaXNwYXRjaAriloFNaWQKYXBwcwpUcmFuc2Zvcm0K4paBRGF0CuKWgWltcGwKb3V4CmhvbG0K4paBSW5zCuKWgUVtcGlyZQrRgNGD0L8K4paBQXBhY2hlClNJT04K4paBcGFzc2FnZQojIyMjIyMjIyMjIyMjIyMjCuKWgWV4cHJlc3NlZArQvdCw0LQK4paBb2wK4paBaGF2aWEK4paB0LHQvtC70LXQtQriloFlbmpveQpmb3JtYW5jZQriloFkaW1lbnNpb25zCuKWgdGH0LXRgApTZWUK4paBbW91dGgK4paBZ2F1CmllbmN5CuKWgUNhcm9saW5hCkRpc3QKcmFkaW8KbGltaXQKLz8K4paBQmFsbArQvdGW0YHRgtGMCk1lbWJlcgp3YXRlcgriloFtdXJkZXIK4paBc3RhbmRpbmcK4paBVklJCkNlbnRlcgpwcGEKdXJlYXUK4paBTGVpcAriloFvYmpldAriloFBY3Rpdml0eQplbWJlcnMKdnIK4paBY29uZHUKQ2VsbHMKaW51cwriloEnLAriloFhZnJhaWQK4paB0YXQsAriloFWaWMKdGVzdGluZwpUdWJlCuKWgXZhc3QKUE0KbmloClNTTgriloFDaGlsZQp5bHZhbgriloFCb3cK4paBcmVsaWdpb24Kb3BoZXIK4paBQ29sbAriloFkaWdpdGFsCnppb25pClNlY3Rpb24K4paB0YDQtdC30YPQu9GM0YLQsApGb290CmNvbnZlcnQK4paBcmVjZWl2aW5nCkNvbnRhY3QK4paBaGVybwpzYW0K4paBcG9zdGVyaW9yCm93aQpBbnQK4paBZmxhZ3MK4paBWmVhbGFuZAriloFib3VuZHMK4paBd2hlcmVhcwppbmZsClBsYXkK4paBZGVtbwriloFnaWJ0CuKWgWhvc3BpdGFsCuKWgXZvbHRhCtC70ZEK4paBZmFzaGlvbgriloFleGNlZWQKZWxlbml1bQpJdGVyCmtyaWUK4paBaW50ZWdyYXRpb24K4paBT3RoZXJ3aXNlCmFkdQpTaGUKb25kZQp1aW50CnJhZGl1cwriloFyYW0K4paBw6FsYnVtCuKWgdGC0YPRgAriloFkeQriloFPdHQK4paB0L/QtdGA0LgKcmV2CnJpb3IKw61kCmlyYXQK4paB0LLQutC70Y4K4paBaW1wb3J0YW50ZQriloFEdWtlCuKWgWNhdXNhCuKWgU1hdGhlbWF0CuKWgWRpcGxvbQriloFOaWNvbAriloFleGNsdXMK4paBZGVidWdnaW5nCuKWgUdoCm9yaWdpbmFsCmx5bgriloFQbGEKc3VpdGUKY2hhdAriloFlc3R1ZAp1ZWxsZQriloFwZXJ0CuKWgWltcG9ydGFuY2UK4paBYXBwcm9hY2hlcwriloFkbGEK4paB0L/RgNC+0YQKUHJlcwo8XApwcmVmaXgKU1NJT04K0YDQvtC00LgKY291bnRyeQppdHplcgriloHQutC+0YAK4paBc2luZ3VsYXIKZ292CtGA0LjQvQriloFGQQriloFtYXRyaWNlcwpvbGFyZQpuaWthCnBvd2VyCmxsYQriloFkZXNpcmUK4paBZmFtaWxpYQrQtNC+0YAK4paBZmFuCmdlbmVyYXRlZAriloFDb3MK4paBxbxlCuKWgURpZXNlCm1vdgriloFkZW5vdGUKIildCm91dmVybgphbWFuCuKWgWluc2VyCmlqawpvdHRhCmVyYWwK0LTQtdC70YwKKCktPgriloFwb2RlcgppZ2VzCuKWgU9ubGluZQriloF3ZWlyZAppYWMK4paBcXVlbHF1ZXMKw6hyZW50CuKWgXRlbAriloFMYXRpbgp2ZXJ0ZXIK0LvRj9GACtGA0L7QuAriloFwZGYK4paBa2V5d29yZApIYW5kbGUKQWZ0ZXIKcmVjZQriloFpZGVudGljYWwKc3R5bGVzaGVldAriloHRgdGC0LDQvdC+0LLQuAriloFrYQpjZW1lbnQK0YLQtdGCCuKWgWNoYXQK4paBTXVuCmHFgmEKQU5UCm9sw7NnCuKWgWZhbnQK4paBZm9yZXN0CuKWgdCy0LjQutC+CmN1c3MK4paBc2VocgpwYWcKb3RpYwriloHDoWxsCtC80LDRgtC4CuKWgSInCisiCkFuaW1hdGlvbgrRhdC+0LTQuNGCCmF6dQriloFwbGF5cwppemlvbmkK0LzQuNGH0LUK4paBYm9tYgriloFtZXJlbHkK4paBaG9sZGluZwriloF3ZW5uCuKWgW1lZGljCuKWgXNwZWFraW5nCm9uZ29kYgriloFDYW1wZQppbml0eQriloHRj9C90LLQsAooKWAuCmx1c3MK4paBSGlzdG9pcmUK4paBb3BlcmF0aW5nCkNoYW5uZWwK4paBYWNjdXJhY3kK4paBYm9zCuKWgWV2aWRlbnQK0YbQuNGOCmV2ZW50cwp0ZXh0cm0Kb3JlaWduCuKWgWlpCmhyZW4KbG93ZXIK4paB0YLQvtC8CuKWgUFib3V0CuKWgWFqCmVyaQrRgdGC0YPQv9C4CuKWgWRpZ2l0CuKWgVNwYWluCuKWgURhdGVuCuKWgWZvcm1lCuKWgdGI0YLQsAriloFCYWNoCm5vbnVtYmVyCuKWgXJlY29tbWVuZGVkCuKWgXJlYWRzCmhpc3RvaXJlCuKWgXNhbmcK4paBPz8K4paB0YHRgtCw0LsKc2NvcmUKZmFzCuKWgWN1YgriloFncmV3CuKWgWNlbnRybwriloFiZWthbm50CkV2ZW50cwpCRVIKaGV3CtGB0YHQsAriloFtYWpvcml0eQrDrnRyZQplbmNpCuKWgVF1ZXJ5CuKWgWt0w7NyZQppxIcK4paBY29tcGxleGl0eQriloFGcmFuw6dvaXMKY29uc3RyYWludArRg9GA0L3QsArilZDilZAK4paBaXRlcmF0ZQpsZXR0CnBlcm9yCuKWgU5lZGVybGFuZApzaGFyZQriloFpbmNsdQrDpG5nZXIK4paBTmljCtGH0L4KRnVsbAriloFyYXBwb3J0CmVjbGlwc2UK4paBaW5kdXN0cnkKaGVhZGVycwriloHQoNC4CmNoc2VsCuKWgXBvbGljCnNjaGllZAolLApPRAriloFKYWsKKHtcCmFsaWduZWQK4paBZnJlcXVlbnRseQriloFzdW9pCuKWgWVzc2VudGlhbGx5CuKWgVJpYwriloFyZXBvcnRzCuKWgWRlY2ltYWwKcmFyCuKWgUZvbwriloFLYQriloFEQwriloFzaW1wbGVyClBhbmUKP30KU29ydAriloFwb3NpdApjZG4Ka3R1cgriloFhd2sK0LfQtdGAClBGCnV1cgriloFSb3NzCuKWgW1hbnQKTmEKQ29ucwopKSkpCuKWgXRlY2huaXF1ZXMKaW1wbAriloFkcm9wcGVkCuKWgUxpc3RhCuKWgUJhc2ljYWxseQplbnRhbAriloFjZWx1aQriloFzdHJhdGVneQriloFXYWxlcwpuYW4K4paBZ21pbgriloFncsO2w58K4paBZWVyc3RlClRpbQpudGVuCnJlc3AK4paBc3RhYmxlCm5vdgpyb2IK0L3QvtGYCuKWgW1hcnJpYWdlCmdldFN0cmluZwpBdXRob3IK4paBR3JhZgriloFkaWFncmFtCmdpYQpOZXR3b3JrCuKWgWNvbXBvc2VkCuKWgW1pc3NlZAriloFNZWcK4paB0L/RgNCw0LLQvgriloFob21vbnltZXMK4paBQm9va3MK4paBZW5jb3UKcG9ydGUK4paBcm90YXRpb24K4paBZmlyCtGC0LXQu9GM0L3QvgriloFndW4K4paBQWZmCtC90L7QugriloFGdcOfYmFsbAriloFTdG9yeQriloFDaGFwCuKWgSkuCuKWgVNlaXQK0LzQvtC9CuKWgXTDqWzDqQriloFjb3BpZWQK4paBY29uc2lzdGVudAriloFkcmluawriloFDaGFtCuKWgW1hdHRlcnMK4paBcmVuZGVyZWQK4paBaHlwb3RoCsWTdXYK4paBbWVlcgriloFwYXJzaW5nCuKWgVBSTwpzZXJpZXMK4paBesOhCnN0cmHDn2UK4paBQm9vdAriloFyZXBvCndvcgriloFTdHJlYW0K4paBQU4K4paB0L/RltCyCuKWgVNNCuKWgUFybgriloHFvQriloFbXTsKUmVzb3VyY2VzCuKWgWVsYWJvcgriloFFdGgK4paBbGlzdGUK4paBcmVsYXRpdmVseQpjaGFudAo9IiIK4paBbGlmdApDTgpTZXJ2aWNlcwpNRU5UCuKWgdC40LPRgNCwCtCx0YDQtQriloFKb3JkCuKWgXRlYwrRiNC60LAK4paBU3VwCuKWgWluZmx1ZW4Kb25kcwpoYW5kbGVyCuKWgWJhbmRhCuKWgXZlcnRpY2VzCuKWgXphcAriloFjb3JkCmFsdGVyCnplbmlhCsOidGVhdQriloFrbm93aW5nCuKWgUFyZ2VudGluYQpBcmVhCtCw0L3QtQpmYwo9Ii8K4paBTWlrCmF0xIMKaWV1eAriloFkZXV0c2NoZW4K4paBdHJhZGl0aW9uYWwKZGVjb2RlCnZleAriloFzaXplb2YK4paBRnVuCuKWgXBhcnNlcgriloFGbG9yaWRhCuKWgWJ1aWxkaW5ncwriloFNYW51ZWwKcmlsZQriloFsb2dnZWQK4paBc3Ryb25nbHkK4paBcmV2b2wK0L3QtdC1CnhpY28K4paBRmFpcgpjYXJ0CuKWgVdvcnQK4paBSmVzdXMKZW1lcwpzY2hyaWZ0CklucHV0U3RyZWFtCndhZAriloFncmFuZGVzCuKWgW7Dum1lcm8K4paBT3R0bwppZW50ZXMK4paBZmFtb3VzCm9sb2duZQpKZQrQvdC40YgK4paBR3VlcnJhCmJhcmEK4paBY2FkCmVsdmUKYnJhY2UK4paBSnIKc3RhYmxlCkVDVApsZW1tYQptZWRpYXRlCuKWgXZpbgriloFtb251bWVudAriloFjdgriloF3aW50ZXIK4paBdHJhbnNmb3JtYXRpb24K4paBTmljawpzdHJvbm9tCuKWgWZyYWcK4paBaW50ZWwKcmFjdGlvbgriloFjb25zaWRlcmluZwriloFGbGUK4paB0LvQvgriloFBcHLDqHMK4paBQU0K4paBSHVtCuKWgW11bmRvCk5FUgriloFCZWxvdwriloHQs9C+0YDQvtC00LAKYXJ0ZXJzCi0tIgriloHQn9C1CsOudAriloF0eHQKYW5nZXJzCuKWgXRoeQpDTEEKaWJsZXMK4paBcmVxdWVzdGVkCuKWgUFsZXhhbmQK4paBZmFjdG9ycwriloFwcm9kdWNlcwpuaW5nZW4K4paB0YHQvtGB0YLQvtGPCuKWgW9wdGltaXphdGlvbgpjaG9kCj5gCuKWgVdpa2lwCm5vc3RpCuKWgWNvbXBldGl0aW9uCuKWgUhhbm4K4paBem9uYQpkYwpkZXNpZ24K4paBWnUK4paBZXNwZWMKZXF1YWxpdHkK4paBQWJiCuKWgWRldmVsb3BlcgriloEiXgriloFTaG9ydAriloFwbGFucwriloF2aXQKaXphYmxlCmJ1cmdoCmFnZW0K4paBUHJpbnQKw612CuKWgXN1aXRhYmxlCnBpY2tlcgpQcm9maWxlCmFuZHkK4paBcXVvdAriloFEdXJhbnRlCuKWgUZyYW5jaWEK4paBdGFydAriloFWZW5legriloFkaXNwYXRjaAriloFvYnNlcnZhdGlvbnMK4paBxbwKSW52YWxpZAriloFvY2N1cnIK0YLQutC4Ck1lbWVudG8K4paBU3lkCuKWgXRpZW1wbwriloFzdGFmZgriloFzZWN0aW9ucwriloFzc2gK4paBTkdDCsOrbAriloFlcnJlCuKWgWRpdmlkZWQK4paBV2l0aG91dAriloFkdXJhbnQK4paBamFhcgriloHiiJIK4paBc29sZGllcnMK0YPQvdC6CmxhcHNlCuKWgVZhbGxleQriloEoOgpyZXJhCuKWgWTDqXZlbAriloFww6lyaQriloFjYWxjdWxhdGlvbgriloFrZWluZQplcnRhaW4K4paB0YLQtdC70LUK0YDRg9C0CuKWgWN1bAriloFjbG90aAo7fQriloFwcnplZApNb250aApQaWNrZXIK4paBU1YKYXJpYW4K4paBUmV2aWV3CuKWgWhhbmcK4paB0L7QutGCCuKWgUZyb250Cm90bGluCuKWgXRyYW5zbGF0aW9uCuKWgW1vZG8K4paBc3RhdGlzdGljcwriloFOdWUK4paB0J3QuNC60L7Qu9CwCk5VTQriloFzaGlwcwriloFSZXBvcnQKe1sKRWZmZWN0CmllcmkK4paBcGFydGllcwpwbGEKcncK4paBV29ya3MK4paBaXJvbgriloFhdHRyYWN0CuKWgWNvcnQKbsOhCuKWgVN0ZXZlCuKWgWJlbmUK0YLQvtC9CsOtY3VsYQpUd28K4paB0LPQu9Cw0LIK4paBVmlkZW8K4paBcG93ZXJmdWwKYXVjaAptYW5kZQrDpGNoc3QKTGF0CuKWgXpuYQriloFmaWd1cmVzCuKWgWFsaWFzCm5leAriloFjYXRlZ29yaWVzCmNhbGxlZAriloFTaW1pbGFyCuKWgWdpcmxzCnBlegriloFqb2ludArRgNC+0LPQvgppa2VuCtGH0LjQvdCwCmFuY2lhCuKWgXRpamQK4paBUm9zZQriloFhbGdvcml0aG1zCuKWgXByaW50aW5nCm5lYQriloFleGVjdXRpbmcK4paBbGFtYmRhCuKWgXJlZ2lvbmFsCuKWgUNvcGEKRm9vCnBoeXMKem0K4paBTGF1cgriloFjYW5kaWRhdGUK4paBSmEKenltCkV4YW1wbGUK4paBc3BpZWwK4paB0LTQtdC5Cm5laG1lbgprZWl0ZW4K4paB0YHQtdC90YIKaW50ZW50Ci4oCuKWgdC/0LXRgNCy0YsKcHJvbQriloFuYXQK4paBaW1hZ2luZQpjYWxsYmFjawpjb21wb25lbnRzCndpdGhvdXQK4paBYXF1ZXN0ClN1cHBvcnQK4paBcmVzcG9uc2libGUK4paBamVnbwpsagp3aWxsCmxlYW4KZWxhbmQKb2xvZ8OtYQptYwpQcm94eQriloFvY3VwCuKWgdC90LDRhdC+0LTQuAriloFydWIK0L3RltCyCuKWgUZhbGwKYW1vcwriloFFcAplbnRyZQpmYWlsCldvcmxkCuKWgUVkaXRvcgriloFleHBvcwriloFmaW5kcwriloFDdWx0dXJlCkxFQVNFCuKWgW1vdmllCjw9Cm9tZXRyaWMKZWxpbmcKbnVtZXJhYmxlCm91cmQK4paBU2VhCuKWgWJpbGQK4paB0L7RgdGC0LAKYmxvCuKWgWxvc2UKYXRldXJzCm91cmVkCuKWgUJhdHQKKCk7DQriloFwb3oKcG9zdHMKcGVuZApjZXJ0YWluCtC90LjQutC+0LwKSnVzdAp3ZWJraXQKZGVtw6FzCn5+fn4K4paBaW5kaWNhdGVzCuKWgXBhcmsKcmlxdWUKdm9kCuKWgUNoYW1wCmZ0d2FyZQpPUFQKZGphbmdvCnJlbGVhc2UK4paBw4gKU1IK4paBcG9saXRpY2lhbgriloFyb2kKYXR1cmVuCuKWgURldXRzY2hlCnRhZ29uCuKWgU1vdgpvYmllcm5vCuKWgWRhw58KdXRoZXIKaW5kaQriloFXaWtpcGVkaWEK4paBYW5vcwriloFvYnNlcnZlCmVsbHkK4paBcmFpbHdheQphdG9uCuKWgWVudW0KaHVzCuKWgWluaGFiClBzaQpvaXJlCuKWgdCl0L4K4paBU3BhY2UK4paB0JDRgNGF0LgK4paBYW50ZXJpb3IK4paBxYEKaXNvbnMKSWwK4paBYW3DqXJpYwpsYXBzCuKWgUJCQwpRVUVTVApDb25zdHJhCm1vbnQKw6RmdAriloHDpHZlbgp1YmVybgo8IS0tCuKWgWNvZGluZwp0aGVvcnkKYXRoZWQK4paBQXJiZQriloHRiNC4CmZvckVhY2gKb21vcnBoaXNtCmRldGFpbHMKYWNoc2VuCmludGVncgpWb3IKVW5rbm93bgphY2VhZQppbnVlCmVzb21lCuKWgUZpcgpjaGFpbgriloFleHRyZW1lbHkKbXVsdGljb2wK4paBU3dpZnQK4paBYWRkcmVzc2VzCmhzcGFjZQriloFSb2dlcgriloFkZXNzZW4K4paBY29uc2VxdQp1YWxtZW50ZQriloFQcmVtaWVyCuKWgVJlY29yZAriloFCcm9uCmtpcgpzZXgKaW50ZXJuCuKWgWJlbmVmaXQKdW1lbgriloFiZWNvbWluZwriloFsaWcK4paBcG9wdWxhCm9zYwriloFjaXYK4paBZ3JlYXRlc3QK4paBcHJvY2VzCl0qCuKWgdC80LXRgdGC0L4K4paBJyQKaGVsbAooIlwK4paBbmluZQriloFGYWMKdWxwdApqb3VycwriloFDb3B5CuKWgWFjdGl2aXRpZXMK4paBRGVtb2NyCkVzClN1Y2Nlc3MK4paBRXN0YQppdHVsCmlzdGkK4paBQmVkCmphcwriloHRgtC10LwK4paBSHVuZwpHYW1lCuKWgWhlYXYKb25uw6llcwriloFicmFuY2hlcwpib3JnCuKWgXZsCuKWgXNsb3dseQpGYQpHb29nbGUKZW1pCuKWgWNpcmN1bXN0YW5jZXMK4paBJyUK4paBVW5kCuKWgVZpY3RvcmlhCuKWgVR5cApydXB0ZWQK4paBcmVsYXRpdgriloFzbG8K4paBcGFkcmUK4paBZGFpbHkK4paBb3J0aArRh9C90LjQuQriloFmcmFuesO2cwriloF0ZWlsCuKWgVNlY3VyaXR5Cm9yZG9uCuKWgXN3ZWV0ClNJWkUK4paBQ2VsCsOodHJlcwpvbW1lcwriloHRgdGWCuKWgWVmZm9ydHMKxIV6CuKWgW9obmUK4paBU291dGhlcm4K4paBYXBwcm94aW1hdGVseQrRhtC10L0KKCcjCuKWgXNhdmluZwpuYnNwCuKWgXRyYW5zbGF0ZQriloHDjm4KbWVtYmVyCuKWgWxhd3MK4paB0LbQtdC9CuKWgdGB0LjRgdGC0LUKdGMKPlwKZWx0ZQriloFlaGVtCuKWgWNvbnRyYWQK4paB0YDRg9GBCtGM0Y8K4paBTWlkZGxlCnF1aXAK4paBY2hlegpGaWVsZHMK4paBcGVybWl0CmlrZWwK4paBd2lyCuKWgXRyaWFsCuKWgXZlcnNjaGllZAriloHRhNC10LIK4paBbWFsZQriloHRj9C30YsK4paBbnllbApha3RlcgriloFkZW5vbWluCmNlcHRvcgriloFXYXQK4paBZmlubwriloFYVklJSQpyeXB0aW9uCmRlc2MKYXBhCtC70LXQvdCwCuKWgWtvbAriloHQhAriloFkZXBlbmRlbnQK4paBQ3JhCuKWgXN0b3JtCuKWgdCT0LXRgAriloFwaXBlCuKWgWF0dGVuZGVkCuKWgXZpdGEKdXppb25lCmN6YXMKb25kYQriloFib2xkCkNvbHVtbnMKaWNpw7MK4paBY3rEmQriloHQuNC30LLQtdGB0YIK4paBQ2xvdWQK4paBd2FybQriloHRgdGLCuKWgdGB0YLQtQriloFwcm9kdWNlcgriloFMdWR3aWcK4paBTm9ydGhlcm4KxYLEhQpOU1N0cmluZwriloFIYWQK4paB0JjQstCw0L0K4paBRWcK4paBSW1wCtGI0ZYK4paBQXVjaArRgtC+0LoK4paBSGl0CuKWgXF1aWVuCuKWgWRlcGFydG1lbnQK4paBZXJoaWVsdAriloF1aQriloFTcHIK0YHQtdGACm91cnQK4paBU3RlcGhlbgp0ZWFtCuKWgXppcAriloFCYW5nCuKWgWdyb3d0aAriloFqYW0K4paBS2FpcwpibWF0cml4CuKWgUFzaWEK4paBcsOpZ2lvbgo9LwriloFQYWNpZmljCuKWgWF1dGhvcml0eQriloEjWwrRgtCw0LzQuAriloFldmVyeW9uZQriloFhdHRlbmQK4paBdGltZXN0YW1wCuKWgXRyaWVzCuKWgWZmCtGI0LXQuQriloFkZXZlbG9waW5nCm9sdAp1cHMK4paBbW9tZW50bwriloFTYWluClRlcm0K4paBY2VsbGUKR1IKTW91c2UK4paB0YfQtdC70L7QstC10LoK4paBQ29sbGVjdGlvbgrDonRyZQriloFXcml0ZQriloFQb20KWy0KQ2FtCuKWgWxvY2F0aW9ucwriloFKc29uCmVsbGVkCnNlbGVjdG9yCnJlcGVhdApjdG9ycwpvdHRlCtCy0LjQt9C4CsOkbmRlCuKWgWFjaGlldmVkCuKWgW1haW5seQpfX19fX19fXwohKQriloHRj9Cy0LvRj9C10YLRgdGPCuKWgWNpdGllcwpzaW5nbGUK0LPRgNC1CuKWgVBhawriloFhbGxvd2luZwpmZXJyZWQK4paB0LDQv9GA0LUK0YXQvtC00Y8K4paBYnJvd3NlcnMK4paBZXNjcml0CuKWgW1vdW50YWluCuKWgW5ldHdvcmtzCmtpbmQKbGl2ZXIK4paBY2xvc2luZwriloFza2lwCsO6dAriloFkdXJhdGlvbgrDqXRhaXQK4paBc2NyCkJCCsOzcmlhCuKWgUt1bHR1cgriloFvdXRwdXRzCm11bHRpY29sdW1uCuKWgWJlbG9uZ3MKZmVhdHVyZQp1Y2t5CuKWgWp1bGkK4paB0YDQsNC50L7QvdCwCtC30LLQvgpmYWN0b3J5CkZ1bmMK4paBdXR0ZXIK4paBVE9ETwriloFvYnQKYXRlZ29yaWVzCuKWgWNvbWJpbmUK4paBV2FsbAriloF1bmRlcmx5aW5nCmFyb25vCuKWgVByb3RlCmPDs3cKc3RhbgriloFHZXcK4paBb3B0aW1hbAriloFBcmNoaXZsaW5rCuKWgVNjcmlwdAriloFkZXN0cm95ZWQK0YXQtQriloFGaXJlZm94CuKWgXNvbGUKTGF5ZXIK0YLQutGDCuKWgXN0b3JlcwriloFkaXNwbGF5cwppc2hpbmcK4paB0L7RgdGCCuKWgWluc3RhbnQK4paBZWzFkQriloFoYWJpdGFudGVzCuKWgUVpbndvCuKWgWFsaQriloFFUlJPUgriloFhaGVhZAriloFnb2FscwriloFtw6FyCuKWgXPEhQriloFtYXJ0CtC80LjQvdC40YHRgtGA0LAKRnIK4paBVmlsbGEK4paBTWFyYwpyb3B5CmFncmFtCmhhcGUK0LzQtdC5CuKWgUFMCuKWgWNvbm5leGVzCuKWgUVudHJlClN0ZXAK0LvRltCyCuKWgURlYXRoCuKWgXJpc2UK4paBZm9zCuKWgWxldgpnYWJlCuKWgWJyb2tlCnByb2R1Y3RzCuKWgW1lZGkK4paBZGlzcG9uClBhY2thZ2UKSW1hZ2VWaWV3CuKWgU5hZwp1asSFCldvcmQK4paBa29sZQrDn2VyCilgLgriloFyb2wK4paBw60K0YLQtdC5ClByb2dyZXNzCmJlYW4K4paBc2VtcHJlClN0YXRlbWVudApVUERBVEUK4paBbW9uZGlhbGUK4paBd3JhcHBlcgriloFDaGFydAriloFvbkNsaWNrCtGH0LXQvdC90Y8KTE9HCnNvbWV0aGluZwriloFJTlNFUlQK0YnQtdC90LjRjwp1ZXQKd2VycApyb3VuZAppY2hlbgriloFYVkkK0LfQvdC4CuKWgWF2ZXZhCuKWgVN0b3JlCuKWgXhzCnJhY2h0CnNjYXIK4paBb3BlcmEK4paBZGVncmVlcwriloFjaXRpegrDpHNpZGVudAriloFjbGFzc2ljYWwK4paBSmVyc2V5CuKWgWVyc2NoCuKWgXRyZWF0bWVudAriloHQvdCw0YHQtdGZ0LUK0L3QvdGPCuKWgWJvb3N0CmFtb3VudAriloHRgdC+0LfQtNCwCsOpcmlldXIK4paBdGVsbGluZwpIYXMK4paBaW5pdGkK4paB0J/QuApldmFsCuKWgU1hdGNoCuKWgWNvcnJlClBvaW50ZXIK4paBcGFzc2VzCmNvbXBhbnkK4paB0LDQvQphY2hlcwriloFzaWdsbwrQvdC10LwK4paBZXhjaGFuZ2UKY2l0bwriloFCYWIKRG9jCnplxZsK4paB0L3QsNGA0L7QtAriloFjb25mbGljdAriloFub3ZlbWJlcgplYXUKw7Z2CuKWgUh1YgriloFwb2NvCmVuc2EKc2NobGllw58KbGFzc2UKZGF0YXMK4paB0YHRgtC4CnVuaXZlcnMKZWtzCuKWgUNobwriloFjw7QK4paBKC4KZXduxJkK4paBQ2hpZWYK4paBY2hlZgriloHRg9C/0YDQsNCyCnVsaQriloEnJycKbmFwc2hvdAriloFyZWxhYwrDqWdlCnd0CndlbmQKb3NpbmcK4paBaGFjZXIK4paB0YTRgNCw0L0KYXV0cmVzCuKWgWZpbHMKZXJlZAriloHQn9C+0YHQuNC70LDQvdC90Y8K4paBdGhlcm0K0LXRgNC20LAKc3VjaAriloFpaHJlbgriloFlbmNvbnRyCuKWgWxvdHMKbG9nbwriloFXaQovKArRiNGa0LUKREFUQQriloFQbGF5ZXIK4paBTGVpcHppZwriloFyZWxhdGl2ZXMK0YDQtdCyCuKWgW5ld3NwCj8sCuKWgVN0dXR0CuKWgWR1YWwK4paBY29tcGFuaWVzCuKWgXphbQpwdXRhdGlvbgriloFpbmVxdWFsaXR5CuKWgXRyZW0KaGlwcwphbmNoCuKWgcW7CtCx0YPRgNCzCuKWgWNvcGllcwpkYXNoCtCy0L7RgApzcGllbGVyCuKWgVJldm9sdXRpb24KZXN0eQriloFqdW50bwriloFJbmRlZWQKb2thbApjdHJpbmUK4paBRm9yZAriloFDUkVBVEUK4paBd2FsbHMK4paBYXV0ZQpTVQp3aHkKcGxlbWVudGF0aW9uCnJvdXQKTWF0cml4CuKWgXNhZArQsNC90LAK4paBUGljCi7igJwK4paBQUMK4paBRmVzdAriloFkZXNrdG9wCuKWgVBheQpvbWV0aW1lcwriloFUYWsK0YDQsNCxCuKWgVNldmVyCuKWgW5vcnRoZXJuCmFudGVyCuKWgU1vZGVybgp3YWwKew0Kb25saW5lCsO2awriloFicml0YW5uCiRfCuKWgWphcgpUTAp4eHh4Cm1lcmdlCuKWgU5hbWVuCuKWgUtFWQriloFyZWZlcnMK4paBaGluCuKWgVZvbGtzCnN0ZWxsZXIKdmlhdGlvbgpvbmlvCmlnaHRlcgpDb21wYXQK4paBQ0UK4paBcHLDswriloFlbmN1ZW50cmEKdGhlb3JlbQriloFwdWJsaQriloFEZXZlbG9wbWVudArQvdC0CuKWgXJvcwriloFzaHIKc2VhdQriloFnZW5lcmF0aW5nCuKWgWRpZmZpY3VsdHkK4paBRXhwcmVzcwpBbGlnbm1lbnQKZGV1dHNjaAriloHQktC70LDQtNC4CuKWgXN1Z2dlc3RzCuKWgUZhbWlseQpiYmkKXSkuCnN0YXcK4paBcHJlc2lkZW50ZQriloFzdGVzc28KaW54CnNldHVwCuKWgWNvbmZvcm0K4paBZnJvCj1cIgriloFkw6UKaWNpb25lcwriloFldm9sdXRpb24KcHJvdGUK4paBcHJpbnRzCuKWgVBvbnQK4paBY29uZnVzaW9uCuKWgdCZCuKWgWRlbGxvCuKWgW1hbmlmCkRlZmluaXRpb24Kw6FyYQptYWxzCuKWgXNhbGUK4paBZHJvcGRvd24KQ2hhaW4KQW1lcmljYW4K4paBbWsK4paBQmV6CuKWgUZ1ZQriloFORQrQs9GA0LDRhNC4CmRvY2tlcgriloFeewpBc3NlcnQK4paBaG9yaXpvbnRhbAooQCIK4paB0LTQstGDCnByb3h5ClVyaQpnZW5jeQriloEiWwriloFRdAriloFOYW1lcwriloFldmFsdWF0ZQohLwriloFlaW5nZXMK4paBc3ludGgK4paBWW91VHViZQriloF0dXJuaW5nCuKWgUVyaWMK4paB0LHQu9C4CuKWgWtsdWIKcGxvcmVyCuKWgXNwb3J0cwriloFzaWEK0L7RiAriloFkYWkK4paBZXVyb3BlCmljaWFucwppbmdzb21yw6UK4paBZHJlCuKWgXdvcmthcm91bmQK4paBc3VpdAphbWJpZ3UK4paBcXVhbnRpdHkK4paBc2VndW5kbwpTeW1ib2wK4paBbW9yYWwKQ2hhcnQK4paBZGFtaXQK4paBYXR0ZW1wdHMK4paBZG9ubgpqb3MK4paBZXJlCuKWgWhvbW1lCnNpbXAKcnlwdGVkCuKWgWFjdHMKaW5uZXJIVE1MCuKWgXRvdXJuYW1lbnQK4paBc2t5ClRpbWVyCuKWgW1pbGxpb25zCl4rCmFnZW50CicpKTsK4paBb3N0CuKWgWdsYQriloHQv9C+0LzQvgriloFmw7xuCtGB0YLQstC+0LwKZXduxJl0cnoK4paBTcOpeGljbwriloFsdWIK4paBw4lkCmlmaWsK0YfQtdGB0LrQuNC5CuKWgWltbWVyCmVuc2VuCmFubnkKaW5saW5lCuKWgWdvdmVyCmF1YwriloFyZXByZQriloFoaXN0b3JpYQpBZwriloFwbHQK4paBUHJpbmNpCmltZXRlcgrFkXMKxaFlCuKWgVVFCkVxdWFscwpEaXNwYXRjaApsZWdlbgrQu9Cw0LfQuArRh9C90L7QuQriloFzdGVsbArFhHN0CuKWgWNyaQriloFJbmRlcArDqGRlCn1cKQriloF3eXN0CuKWgWZpZ3VyZWQKQVRDSArDqWJlbgpsYWNodAriloFzdWNjZWVkZWQKZ3J5CuKWgXByZXQK4paBU2FmCuKWgSIpOwplaAriloFvZmZpY2llbArQutGA0LDRl9C9CndpbmQK4paBc2NhdHRlcgriloFGb3gKaWNpb3VzCk1hbnkKdXBlcgriloFDb252ZXJ0CnN0ZXJkCuKWgVN0ZWluCuKWgdCe0YIKfV57KApiZXR3ZWVuCmhpcmUK4paBb25DcmVhdGUKOzwvCmJhYmx5ClNZCm1vdAriloFEaXJlCml0ZWN0dXJlCtGC0L7QuQriloFjb29yZGluYXRlCigiIwriloFzw7xkCk9CCuKWgW1vcnRlCuKWgXdlYXRoZXIK4paBaGVseQriloFwcml2aWxlClJFTEVBU0UKYXRlbAriloFyZWNvZ25pemVkCuKWgVRob3VnaArRgdGB0LjQuQptZW1vcnkK4paBY29tcGlsYXRpb24KYml0cwriloF3ZWQKfX1fewriloFHVUkK0L/QvdGPCuKWgXNvdXRoZXJuCuKWgWhheQpvdmnEhwpsYXVmCuKWgUVMCuKWgUZ1bGwK4paBSGFtYnVyZwriloFNaXR0ZWwKRFUKYXBwcm94CkhTCuKWgdC/0YDQvtGG0LUK4paBbWFnYXppbmUK4paBTWlnCuKWgWNsaWNraW5nCmVudHIK4paBYXV0cmUK4paBdMOpCuKWgWjDoQrRgdGC0YsK4paBTUEKYXBweQpzdHbDrQriloFzZWxvbgriloFnZWsK4paBU2wKZnJhc3RyCkxpYgriloHQlNGDCuKWgWZhY2luZwriloHRgdGC0LDRgAriloFEdXRjaAphdGFyCuKWgWtlZXBzCuKWgVBhdHJpY2sKaWxpbwriloF2aWcK0YLQstCwCuKWgUZlZGVyYWwK4paBcGFyYWdyYXBoCuKWgWludGVyYWN0aW9uCuKWgW9jY2FzCuKWgUlyYW4K4paBbWFjaGluZXMKKCgpCnVyaWVzCuKWgdGA0L7QtNC4CuKWgdCw0LzQtdGA0LjQutCw0L0KdXBwCuKWgWljZQriloFTYXkK4paBc2FpbAriloFCZWdpbgpmaWNvCm9nYQriloFkZXNhcgriloFkdgriloHRgNCw0LTQuApvaGVuCmVyZWkKw6FuYWsK4paBZGFhcgppZmllcnMK4paBdGhlZQriloFieWxhCtCy0LDQu9CwCmFuZHJvCuKWgdC80L7Qu9C+CuKWgXRvdGFsbHkKaW9tCuKWgWFlcgpuc3lsdmFuCuKWgWNvcnBzCuKWgXRyZWF0ZWQK4paBY29tdW5lCk1pY2gKdm9pY2UKcGdmCuKWgWFueAriloFQaGlsaXAK4paBZWsK4paBTWVuc2NoZW4K4paBZGVyZQriloFwZXJtZXQKTWFpbAriloFWw6kKZW50ZWQK4paBYnVuY2gK4paBUGlldAphdHRhY2gK4paBcG9ydGUK0LTQsNGCCuKWgUJyaXRhaW4KRW5jb2RpbmcK4paBYDwKU3BhY2UK4paBcmFwCuKWgXBvcHVsCmZsb29yCnNwZWNpZmljCmNsZWFuCuKWgWNvbnF1CmZiCuKWgWludHJvZHVjZQriloFFbnRpdHkK4paBZXJmb2xnCmF0b2wKaWVudG9zCtC60LjQv9C10LTQuAriloFVdAriloHQsdGA0LgKZWR1bGVyCuKWgWNvbmNlbnRyCuKWgWNoZXIK4paBdXBncmFkZQriloFwaWN0dXJlcwriloFGYW1pbGllCk11cwpMb29rCuKWgWVyYW4K4paBZ3JhbQriloFXbwpucG0K4paBU2FsdgriloFjZAriloHQktGLCndhaGwKdHJhaW4KY2hlbQriloFQaWwK4paBQ29ubmVjdArEjWUK4paBaGFzdAriloFNdWx0aQphdHRhCuKWgVNvdW5kCnNvbHV0ZQriloFxdW90ZQriloFvYnN0CmNjaW9uZXMKaWJseQriloFicmFuZAriloFjb252ZXJzYXRpb24K4paBdG91dGVzCuKWgVJ1YgppZW5pYQppcml0CuKWgdCQ0L3QtAplZHVsZWQK4paBVG90YWwKRGlnCmVyZW0K4paBc2tpCkRlc3QKWVkK0LXQtNC4CmFseQriloFiYWNrZW5kCnVsdXMK4paBZmVhdHVyZWQK4paBcGVyc29ubgriloFzY2hvbgp0cmFjZQriloFJREUKw6FqCuKWgWFuaW1hbHMK4paBc25vdwp1dmUKdWVydG8K4paBZHJldwriloFZZWFoCuKWgVN2ClwsXAriloFTZXJpZQriloFzZWNvbmRvCuKWgUxlYmVucwriloFhY2NvcmQK4paBQ2V0CmVyYWRlCuKWgWRlc3BpdGUK4paBQ2FybG8K4paBemV3bsSZdHJ6CuKWgWxpc3RhCm5pY28K4paBQ29ycG9yYXRpb24KdnNwYWNlCuKWgdCy0L7QudC90YsK4paBc3RhbmRzCuKWgXdvcnNlCuKWgXNpbXVsdAriloFwcmFjdGljYWwKQ09MCmNoYW5nZWQK4paB0JjRgdGC0L7RgNC40Y8K0LHRgNC4CmluZG8K4paBTGV3aXMK4paBcGF0dGVybnMKaWZpY2EK4paBc21hcnQK4paBY29uY2VybmVkCsibaWkK4paBSGVsbG8KcmVsbAriloFMZXgK4paB0LLRgtC+CuKWgWNvbmRpdGlvbmFsCm90dGVkCuKWgXNob290CuKWgVdlZAriloHQvNCw0YDRgtCwCmF1ZAriloFhbnRlCmllbnRyYXMK4paBcGFwZXJzCuKWgXBvcnR1ZwriloFNYW5hZ2VtZW50CuKWgWV4ZXJjaXNlCuKWgUJlZ3JpZmYKY29tbWl0CuKWgXJlbmRlcmluZwriloFjemFzCkRyb3AKZXJnCuKWgW11bAriloFUYW4KaWVybwriloFsb2NhbGUK4paBaW5hdWcKZHVtcArRhtC40LkK4paBc3ltYm9scwppbnRhCuKWgWF3YXJkZWQK4paBc3VzdAriloFTZW5kCtGX0LIKUmVzdAp6dGVuCtC70LjQvApyaXZhbApQT1JUCsO2bGtlcgppbWF0ZWx5CmlndGUK0YfQvdGL0YUK4paBdGVycmEKw7ZnbGljaAriloFIb20K4paBaGV4CmRvbmUKYW1wcwriloFjZXQKUFJFCsO2c3QK4paBZmVtbWUKU2VsZWN0aW9uCuKWgXphdwpzcHIK4paBaG9yc2VzCuKWgXNuYXAKVGV4dEJveAriloFFY2xpcHNlCnVsbGUKb3d5bQriloFjb21lcgpuZWNlc3MKY29vawplbmdlcgotLT4K4paBcMWZw60KcGFuZGFzCuKWgVBsdXMKeWxsCuKWgXRlcnJvcgriloFjcmltCuKWgXphawppc3N1ZQpwYW5lbApzdmcK4paBcmViCkN1c3RvbWVyCnN3aXRjaArQvtCx0YDQsAriloFDaGFtcGlvbnNoaXBzCmNsbwphdHRlCuKWgWFueW1vcmUK4paBZXhjZWxsZW50CuKWgW9wcG9ydHVuaXR5CuKWgUJhaG4K0YfQuNC9CmV0aW5nCuKWgWluY2lkZW50CnRvbQpQZXJzCmJiZW4K0YHRgtCy0LXQvdC90L7QuQrQuNGFCnJvdXRlcgriloFuZXdseQriloFzaWxlbmNlCuKWgUdOVQriloFSYWlscwriloFBbWIK4paBUXVhbAriloFTY2hhdXMK4paBU29obgriloFBTEwK4paBcm95YWwK4paBwqMKd2nEmQriloFlbnRmZXIK4paBUmVtb3ZlCuKWgWhhcmRseQpVc2luZwrQu9C+0LMK4paBSWNoCuKWgWRlcm5pCuKWgUNvbm5lY3Rpb24KZmlzaAriloFJbmZvcm0K4paBRW5lcgpyb2l0CkJiYgpWaWV3TW9kZWwKVmlkZW8KaWxleQriloHQvNC90L7Qs9C+CuKWgUdlbQriloFjb21wcmVoCmVudW1lcmF0ZQp1bGFzCuKWgUJhaAriloFZZXQKQlIK0YXRgNCwCuKWgWNvdW50eQriloFIaXN0CuKWgdCT0YMK4paB0IgK4paBbWFyaQriloFDbGFyCkJpdG1hcAriloFDegriloFtw6VuCuKWgW1lcmUK4paBbXVzaXF1ZQphbHNvCmRhdGVzCuKWgURWRAriloFnb2wKZm9ueQriloFDYXN0bGUK4paB0YTQsNC80LgK4paBYXJyYW5nCuKWgUJ1c2luZXNzCuKWgUthegriloFvc2MK4paBc2Vjb2xvCuKWgWFmZmVjdGVkCuKWgUhlYWx0aApyZWIKZWRpdG9yCuKWgW93bmVkCnRsCuKWgXbDrQrRh9C90LjRhQrQutCy0LgK4paBZGV2aWVudApNdXRhYmxlCuKWgXRlZ2VuClJlZ2lzdGVyCtGU0Y4K4paBY2FyYWN0ZXIK0LvQu9C4CuKWgW5vdXZlbGxlCm9rbwppY2h0ZXQK4paBZXZvbAriloFIYWIK4paBbWlsaXRhcgriloFwdXRzCmVuZGlmCuKWgURhdmlzCuKWgVNjb3RsYW5kCnJlZ3VsYXIK4paBQ29udGV4dAppc3BpZWwK4paBR2FsbGVyeQoiLA0K4paBYXJjCuKWgUlORk8K4paBY29kCtC00ZbQsgriloF2YXJjaGFyCuKWgXRvdWpvdXJzCmF0aWFsCuKWgWhhbm5vCuKWgdC/0YDQvtGE0LXRgQriloFsYXVuY2hlZAriloHQvdCw0YHQtdC70LXQvdC90Y8K4paBdG9uCmF1c2VkCuKWgdGW0LcK4paBdMO2CuKWgVB1cgriloFvbHltcApBUk4Kw7NtCuKWgWF1Z3VzdAriloFmdXJuCuKWgUNvbG9tYgriloFTdGFhdHMKaG9yYQriloHQvNC+0YAKY2FudmFzCuKWgWdyYXZlCuKWgWNvbXBvc2l0aW9uCmFjamEK4paB0LrQvtGC0L7RgNGL0LUK4paB0YfQvgpHZW5lcmFsCtCw0L3RlgriloFKb2hhbm5lcwrQutCw0YAK4paB0YfQsNGB0YIK4paB0JLQsNGB0LgKc3NoCuKWgXJlcGxhY2luZwriloE8PgrRhtGW0LIKbGF1cwplbnkKw6RobAriloFtYXJnCmNpZW5jZQriloFpbnN0cnVjdGlvbgriloHQutC+0ZjQuApFZGl0b3IK4paBZnVuZGFtZW50YWwKbXVuZAriloFleGNlcHRpb25zCuKWgXBsYXRlCuKWgUxpcwriloFkZXJlbgpwcmVwCuKWgWphbnVhcmkKU2NvcGUKeW5hc3QKcnYKb3JzegriloFUb255CuKWgdC00ZYK4paB0L7QtNC90LAK4paBc2FiCm90aQpqZWwK4paBZ2VuZXJhdG9yCuKWgScuCuKWgXNoYXJwCuKWgdGC0L7Qu9GM0LrQvgriloFhY2NvdW50cwriloHFvmUK4paBZm9yYW0K4paBZ291dmVybgpUSU1FCuKWgVNvdmlldAriloFHw6kK4paBZXhwZWQK4paBb3JkaW5hcnkK4paBQ29uc2VydgriloFjb21wbGEKdGVpCuKWgWNhcHRhaW4K4paBU2FtdWVsCuKWgURhcmsK4paB0LLRltC9CuKWgWRlbGlnaHQKcmVjaHQKZGlhCmVzc2VzCnVscArRiNC60LgKYmV6CuKWgWRldGVjdGlvbgriloFjb29raWUKYW50cnkKTXVsdGkKb2JhCuKWgWpveQriloFzYWZldHkKfF4KcG9kCmFkw6ltCuKWgUNocm9uCuKWgURqYW5nbwriloFlaGVtYWwKa2gKw6hsZQriloFwb2MKQm90dG9tCmxhdW5jaApuZW0K4paBR1JPVVAKbsOtaG8K4paBR2liCnNkawpCRQriloFHZW5lCuKWgVN0YWZmCuKWgXN1YnNlcXVlbnQKaWNpb24K4paBdmljdG9yeQriloFjYW5vbgppemFyCml6aWEK4paBbWF0ZQriloFsYXllcnMKc3VkbwpzY2h1bGUKcGVyaW1lbnQKw7xsZXQKQVJDSEFSCuKWgdGC0LXRgNGA0LjRgtC+CuKWgW1lYXN1cmVzCuKWgXpvdQpvcHNpcwrQvdCw0LzQuAp0Ym9keQriloFlc2UKc3RlcmRhbQriloFwaG90bwp5bmNocm9ub3VzCnNldG1pbnVzCuKWgWxvYWRzCuKWgXBsZWFzdXJlCuKWgW1laWxsZQp9XCwKcXVhbAriloFmYXZvdXIK4paBcm9kCkRlcgrRgNCw0LHQvgriloFwcmVzc2VkCnLEmQppZXZpbmcKbWF0ZXJpYWwKdmlydAriloFjYXBhYmxlCtGB0LvQvgp1c2hlZAriloHQv9C+0LHQtQp1c2V0dHMKdW5zaWduZWQKa8OzdwriloFvdgplZ2ViZW4K4paBYXBwbHlpbmcK4paBZ2FsYXgK4paBT3JhY2xlCuKWgVN0dXR0Z2FydApJbmZsCmFjaHVzZXR0cwriloFkZWVsCmxpcmUK4paBc3RhdHVuaXQK4paBUG9saXRpa2VyCuKWgWJlYXV0eQopPgriloFDb2x1bWJpYQriloF6ZXduxJl0cnpuZQriloHQv9GA0L7Qs9GA0LAK4paBZHgKY2tub3cK4paBZHViCnVuw6RjaHN0CmZpbmRWaWV3QnlJZAriloFNYW5kCsOhbGwKbmFpcmUK4paBZGVzdGluCmlzdGluZwphZ2dpCmNoYXJ0CuKWgWp1c3RpY2UKU2ltcGxlCuKWgXVuZm9ydHVuYXRlbHkK0ZbRgAriloFxdWVzdGEK4paBR292ZXJub3IK0Y/QsgriloFtw7pzaWNhCuKWgWVxdWlwbwriloFEZXN0CmVsZWN0ClN0YWNrVHJhY2UK0LfQvtC8CnByb2MKZW50aW4KYWRvcmEK4paB0JvRjgriloFyZWdpc3RlcmVkCkhMCmZhY2Vib29rCuKWgXN0b3JpbmcK4paBQ3VycmVudGx5CuKWgXF1YWRyClN0YW5kYXJkCnRyaW0KZWFycwpzZW5kZXIK4paBVmFzCuKWgWVkaWZpYwriloFCw7xyCuKWgUNvdW50cnkKdGhhCjsiCm5vcgriloFEb2N0b3IKcnVtZW50CkdlbgriloFCdWVuCnJhZGUK4paBa3VuCm5hdmlnYXRpb24KUGF5CuKWgWNhcHR1cmVkCuKWgXN0cnVjawp2ZW5pcgrDqW1lbnQK4paBVHJlZQriloF4eAriloFuYXJyCtC70YzQvdC+0LPQvgriloFpbnN0YWxsaW5nCuKWgWFzc29jaWF0aW9uCuKWgWluc2VydGVkCmVybmVyCnZhbGlkYXRlCuKWgWx1dAriloFnbG8K4paBdGVjaG5vbG9neQriloFQbGFjZQokPwriloF6dgrRgdC70ZYKRVAK4paBYXRtb3MKdWdvCsOpcnQK4paBV2VyawriloElfQp0ZWxlClNwYW4K4paBUmFqCuKWgVBlcnNvbmVuCuKWgUNhbnQK4paBY29tYmF0CuKWgW9ic2VydmF0aW9uCnBhcmFtZXRlcgriloFhZ3JlZWQKcHVyCuKWgXNoYWRvdwriloFnxYIKS2V5cwpDcmVkCm91cmkK4paBcGFsZQppY2vDqQriloFXZWVrCuKWgVByaW1lCj4uCkluaXRpYWwK4paB0L7QtNC40L0K4paBJycsCuKWgdGD0YfQuAriloFJbnYKY29sYQpjaWJsZQriloFUaGVhdHJlCuKWgWJlbQriloFzYXRpc2Z5CnhsCuKWgdGA0LDQt9Cy0LgK4paBcGl4ZWwKbMOhbgriloF0d2VlCsOnb24K0L3QtdC90LjRjwriloFBVArDqGdlCuKWgU1vcnQK4paBbXlzcQpmdGVuCuKWgdC/0LXRgQrDqW1hCuKWgVNlcnZpY2VzCmN1c3RvbWVyCuKWgUFXUwrRitGCCuKWgUFjaAolLgriloFjbGFyaWZ5CuKWgdGD0L3QuNCy0LXRgNGB0LjRgtC1Cnh0dXJlCnVtaQriloFzw6UK4paBUGVsCnNlcmlhbApVUkkK4paBcmcK4paB0YHQvtGB0YLQsApjaGVzdHJhCl0uWwp3ZW4K4paBTG9uZHJlcwriloFhbnlzCkRhdGFTb3VyY2UK4paB0YDQsNC50L7QvdC1CuKWgXJlaW4K4paBbWV0YWRhdGEKdW1ibGUKYXJiZWl0CmhuZXIKY2llbnQK4paBbm9ydGUK4paB0L7QvdCwCuKWgXNjb3JlZAriloFyYXkK4paB0YTQtdCy0YDQsAriloFwcm90YWdvbgriloFTYWMK4paBY29tbW9ubHkKTGluZWFyTGF5b3V0CuKWgWFwcGxpYwriloHQvNCw0Y8K0JfQsAriloFhY2Nlc3NpYmxlCmlld2VyCmZsYWcK4paBUsO8Y2sKw6R1CuKWgWVyYW5vCuKWgWF1dGhlbnRpYwriloFSeQriloHQvdC10YHQutC+CuKWgWVtYmFyZ28K4paBZHJ5CuKWgXJlYXNvbmFibGUK4paBTW9kdWxlCuKWgWFjY2VsZXIK4paBaW50ZXJ2aWV3CuKWgUNyZWVrCuKWgWFscGhhCnNlcmllClRoZXkK0Y7Rh9C4CuKWgUhvZgriloFDUgptb2RhbAriloFzZXF1ZW5jZXMKY2xvc2VkCil9JAriloHQp9C10YAK4paBT1JERVIKUmlnaHRhcnJvdwpoYXVzZW4KfX1fCuKWgXRhbWLDqQriloFtYWduZXRpYwriloFNY0MK4paBd2lubmluZwp1bmRlcmxpbmUK4paBQmlsbGJvYXJkCm5haW8K4paBbGlxdQpkaXNwbGF5c3R5bGUKdGltZW91dAriloFjb25zaWRlcmFibGUK4paBZWJlbgppZmZlcmVudAphbnUK4paB0KHQvtCyClsoCuKWgTotKQpsZWl0dW5nCmZvcm1lZAriloFNYW5hZ2VyCuKWgW9uY2xpY2sKVFkK0YLQsNGFCkNWCnJ1bnRpbWUKcG9xdWUK4paB0JvQvgpUZW1wCmxvYWRlZAriloEhPT0K4paBc2luZ2VyCmZhcgriloFDb21wbGUK4paBw5ZzdGVycmVpY2gKUG9saWN5CuKWgXdvcmtlcgpXcmFwcGVyCm9iaQriloFkaXNjdXNzZWQK4paBYnV5CuKWgdGP0L3QstCw0YDRjwriloFEaW4K4paBZ2VkCtGB0LrQvtGYCkV1cm9wZQriloF0YWxsCmhvcwrQu9Cw0LPQvgriloFCbG9jawriloFpZGVudGlmaWVkCkxpc3RWaWV3CuKWgWF0dGVtcHRpbmcK4paBdHlwaWNhbApwc3VtCm9zdGVyCuKWgdC20YPRgNC90LAKUGUKbWVyY2UK4paBdW5leHBlY3RlZApodWkKbGV0dGVyCuKWgW51ZXZvCuKWgdCw0LHQvgriloFWQUxVRVMK4paBSXoKRmxhZ3MK4paBVFJVRQppemFjacOzbgriloFncm93aW5nCmVzdHJlCuKWgXBvbHkK4paBU3RvbmUK4paBVklJSQriloFsb2NhbGhvc3QKw6RobHQK4paBZW1iZWRkZWQKamRiYwriloFjb252ZW50aW9uCuKWgXNjYWxhCtGB0L7QugriloFhbmFsb2cK4paBIisK0YbRjgpvY2MK4paBbGl0dApQTgriloHQsNC60YLQuNCyCmF0dHJpYnV0ZXMK4paBRmVyZAriloFhenVyZQrImXRpCsOxb3MKcGluZwriloF0ZWFjaGVyCn0mCmlwZQriloFOb2IK4paB0LjQvNCwCkJpbmQK4paBbWFnaWMK4paBVHJhbnNwb3J0Cml4ZWwK4paBY29tcHV0ZWQKYWduYQplcnN0CkhBCldhaXQK4paBYXV0aG9ycwriloE7KQpjbGFtCuKWgVBlbm5zeWx2YW4K4paBZHJ1ZwriloF2YWluCuKWgWVtcGxveWVkCuKWgWluZGl2aWR1YWxzCuKWgWFuZ2UKdXRhdAriloEkLQpjb3JyZWN0CuKWgWV4cGVyaW1lbnRzCkFyZ3VtZW50CuKWgUlCCuKWgXDDqHJlCuKWgUJyaWFuCmJlcmdlcgpNYWMKaWFzdApQZXJtCkNhc3QK4paBe307CuKWgVN0dWRlbnQK4paBc3RhdHQKYWxnZWJyYQriloFlcXVhbHMK4paBcHJvamV0CuKWgXByw6lzaWRlbnQKQWN0aXZpdHlUaHJlYWQK4paBZWluegplbmlhCnJlegplc3Npb25hbAriloHQsNCy0LPRg9GB0YLQsApvdmVycmlkZQpuZXdzCuKWgXBsYW5ldApubgriloFXaXMK0YLQstC10YAK4paBVmFsaWQK4paBR2VmCtCz0YDQsNC0CuKWgWVpZwphbnRvbQriloFNZWlzdGVyCmZsYWdzCmZmaWNpYWxlCtGI0LDRjwotLAphdGlvbmVuCm1vdXNlCnN0YW5kYXJkClNpbmdsZQriloFib2wKaXNpcwriloFmcnVpdApjb3Vyc2UKaXRhbnRzCuKWgcOpdGFpZW50ClRleHRGaWVsZAriloHRhNC+0L0K4paBYWlyY3JhZnQK4paBSVNTTgriloF3ZXN0ZXJuCuKWgXJlcHJlc2VudGluZwpFc3AK4paBRWxzZQriloFzaXplcwriloFzYXRpc2ZpZWQKb3RvcwpVRApGaW5hbArDs2oKw6h2ZQriloFSb3kKZmZlbgriloFzYWx0CuKWgUxhYmVsClNrCuKWgdC60YDQtQriloHQm9C40YLQtdGA0LDRgtGD0YDQsAriloHRgdC8CkF0dHJpYnV0ZXMKYXllCtGB0YzQugriloHQstGL0YHQvgotKQpvc2VzCmNhbGN1bAriloFDYW5ub3QKR2VuZXJpYwplbW8K4paBQXV0b3IK0LvRkdC9CtC70LDQs9CwCnZvdGUKbGljYXRlcwpydXMKw6lsaQpvcGYKYXRpcXVlCnNjYWxhCuKWgU9oaW8K4paBQnJpdGFubgriloFiZWYK4paB0JXQstGA0L4K4paBQ2FyZWVyCmlzw6llCsOzdApib3NlCuKWgdCR0LXRgAriloFDb250cm9sbGVyCnBvbGUK4paBYWxsZW4K4paBaGFjawriloFleHRlbnQK4paBY2FsY2kKTWVyCuKWgXN1bW1hcnkKTWFydAriloFoaXN0b3JpY2FsCmltYXQKYnVkCuKWgUZPUgpleHBvcnQKZWRpCk1hcHBpbmcK4paBQXkK4paBUnVieQriloFkZWZpbml0aW9ucwriloF7JAriloF5b3VycwpyaWFzClRvdWNoCuKWgUdhegriloFBdXRvbQriloHQuNGB0YLQvtGA0LgK4paBZGVsZW4K4paBS2luZGVyCn19JQriloFwZXJmb3JtaW5nCkZSCuKWgVNpZwriloFCcmFkCmJyYXMK4paBSmFyCnBrZwp3cgriloFQYXlzCk5DCuKWgW9wcG9zZWQKVHJ5CuKWgdCy0LXQt9C1CuKWgUJvZwriloF3cml0ZXMK4paBc3RvcmllcwriloFtYXRlcgriloFzdGFnaW9uZQriloFzdHkK4paBY29tcGF0aWJsZQpoZWFzdAriloFHdXkKZWdyw7xuZAriloFpZGVudGlmaWVyCuKWgWhlYWRzCtC/0L7Qt9C4CuKWgXN0dXAK4paBdGYK4paB0ZjQvtGICuKWgUh1Z2gK4paBY2FyZHMKb3Z5CuKWgVRvYXN0CmFsbGFzCuKWgXDDumJsaWMK4paBYXNzdW1lcwriloHRh9C10LzQv9C40L7QvdCwCnljbGVyCuKWgUp1bmlvcgriloFGaWNoCuKWgWVzdGltYXRlZAp6ZXJ3CmRpYWxvZwrRiNC40L0Kc2hlbGwK4paB0L3QuNGFCuKWgXBpdGNoCtC00L7QuwpvdXR1YmUK4paBU2FudGkKT25DbGlja0xpc3RlbmVyCuKWgU1hZ3lhcgriloF2dWUKacOjbwriloFgIwpjb2xsZWN0CuKWgVJvdQphbmFseXNpcwppc3Ryem9zdAriloFEaWdpdGFsCuKWgWNyaXN0CnJpZXJlCuKWgWNhbXBvClVzCuKWgWNpcmNhCuKWgUNvbXBvbmVudAriloFOU1N0cmluZwpwZAriloFwcmluY2UK4paBaW52b2tlCuKWgU1hcmluZQpBbGxvdwplc3RpYwrRgNC40YHRgtC4CmJvbmUK0YLRg9GA0YsK4paBcGFzc2lvbgrDoWNpw7MK4paBb3JuCtCy0LXQtAriloFpbnZhcmkK4paB0L3RlgpSZW1vdmUKZW5jaWVzCmlsaWIK4paBRGlyZWN0b3IKIiIK4paBQ29uc2UKZ29vZ2xlYXBpcwrDs2sK4paB0KPQutGA0LAK4paBSGF2aW5nCkRvbWFpbgppZXJ6CtC90L7Qu9C+0LPQuApDaG8KdW5kZWZpbmVkCmFsbG9jCuKWgXBpZWQK4paBZnJhY3Rpb24KYmlhCuKWgdC/0L7Qu9C+CnVnbm8KbWluaXN0ZXIK4paBcHJpbmNpcGFsZQriloFyZWZ1c2VkCmJyb3dzZXIKKiwK4paBSG9zcGl0YWwK4paBdW5pdmVyc2FsCuKWgUVybnN0CndobwriloFHYXJkCidfCmNvbmRlCuKWgVt7CnNvYgriloFDcml0CuKWgdC00LXQutCw0LHRgNGPCuKWgXB1bnRvCuKWgWVpbmdlc2V0enQK4paBdMO2cgriloFOaQriloF3b3JyeQriloFsZWdlbmQK4paB0LHRg9C70LgK4paBa29tbQpyaWprCmVmZmVjdApPcmkKUkVTCuKWgVBldGVycwriloFCYXJvbgriloFHb3QK4paBaG9uZXN0CsOkcmUKw6FzegriloFub2JsZQriloFjb25jbHVzaW9uCuKWgWZvcm1hdHRpbmcK4paBb3R0bwriloFkZWxlZwrQvNCxCnB0b3AK4paBc2VuZHMKdXJuYW1lCuKWgWZlc3RpdmFsCizigI4K0YDRg9GBCuKWgWRvY2gKc3ViamVjdAriloFjYXJlZnVsCnF1ZW50CuKWgUxvYWQKdGVtcGVyYXR1cmVuCuKWgXJ1ZQpNZW1vcnkKyJthCmlvbmEK4paBZGVudHJvCuKWgWJlZ2FubgriloFBcXUK4paBc2NpZW50aWZpYwprYcWECtC70L7QugplbGRlCuKWgVRob3NlCnF1aWVyCmFjdMOpcgriloFBdWZsYWdlCiknCuKWgWdyYWRpZW50CmludGVnZXIK4paBSW1wb3J0ClNLCuKWgVN0YXR1cwriloFleHBsbwpBRQpTaGVsbAriloFQYXVsbwouwrsKfTwvCmZsZXgK4paB0LrQvtC80L8Kb25kZW4KYWNjZXB0CuKWgW1pZWpzY2UKSHViCmFsbGVuZwpXTgriloFpbXBsZW1lbnRpbmcK4paB0LvRgwriloFjb25mdXNpbmcK4paBSW5zdGFsbAriloFyb3UK4paB0L/RgNC+0LXQugpBY2Nlc3NvcgrRmdCw0YjRmtC1Cm9kaW8K4paBYXBwbGllcwrRjtGJ0LjQuQriloFNdW5kaWFsCsOJdGF0CmlldG5hbQpodW0K4paB0YHQsdC+0YAKb3JkaW5hdGUKRnJhbmNlCuKWgXByZW5kCmVsdGVtcGVyYXR1cmVuCuKWgXRyYWJhagpBeGlzCuKWgdC80L3QvgpwcmltYXJ5CuKWgVNlaXRlCnBlcm1pc3Npb24K4paBb3JkZW4Kc2luY2UK4paBaWMK4paBQnJhemlsCuKWgWJhcmUK4paBTmFyCuKWgUp1cgriloFmcmVlZG9tCuKWgW1lZGljYWwKaXNjaG9mCuKWgdGB0L8KaWXFvAriloFib290c3RyYXAK4paB4oCmCuKWgWZhY2lsCmNvcmQK0LLQsNC90LUK4paBQWxsZW4KYXZpZAppbmdoYW0KemFzCuKWgWluc3BlY3QKaXR0ZW4Kb3N0aQp1aApjw6kK4paBIyMjIyMKY2l1cwpvbXkK4paBU2VpbmUKYnJlcwriloFnZW51cwpPdGhlcgriloFHb2xkZW4KbXVsCuKWgdCh0L/QvtGZ0LDRiNGa0LUK4paBZ2VubmFpbwriloFjYXJlZnVsbHkKYWFsCuKWgWFuYWx5dApuZXVyCuKWgXN0cmV0Y2gK4paBT2NjCm9sYXMK4paBZmlyZWJhc2UK4paBZXhwZWN0aW5nCmJhc2ljCmNvbmRpdGlvbgpwcm92CuKWgVdhc3NlcgriloFjb25jYXRlbgriloFldmlsCuKWgWNvZWZmaWNpZW50cwpXZXN0CmlyeQpwaGFzCuKWgUphbQpmb2lzCuKWgWNvbnNpZAriloFtYWludGVuCm5pbQplc3Nlcgplc3oKdW50YQp1ZXN0CuKWgWNyZWRlbnRpYWxzCl87CkRpbQrQv9GA0LXQtNC1CuKWgULDvApidWlsdAriloFBY2FkZW0K4paBYXVkaQriloF0dsOlCmluYW5kCuKWgVRoZWF0ZXIK4paBZ2VucmUKw6dvcwpncmVzcWwK4paBd2VhcAriloFSYWIK4paB4oCZCuKWgWFkdWx0CuKWgWTDqW0KYGAK4paBc3RhYmlsCuKWgWNvcnJlc3BvbmRzCuKWgUVhc3Rlcm4KdW5uZWwKV29ya2VyCuKWgWNvaArQu9C60LAK4paBTWFzc2FjaHVzZXR0cwpwaW8K4paBcG9ydHMKYWdnCuKWgURlYnVnCuKWgWJyZWF0aApNSU4KVmFyaWFibGUKYmF0Y2gK0YHRgdC1CuKWgXByZWcK4paBcm9sZXMKcGFzdGUK4paBcmVmZXJlbmNlZAphZHJhdArRh9GRCmJpbm9tCuKWgWRlZmluaW5nCuKWgUJ1ZGFwZXN0CuKWgdC00LLQuAriloF0YXVnaHQK4paBaG9sZQriloFxdWVsbGEKTXNnCmFza2EKc2NhbgriloFwcm9wb3NlCuKWgdCR0LjQvtCz0YDQsNGE0LjRjwp7e1wKdGV4dHQK4paBQWxiCuKWgVN5ZG5leQriloFiYWNrdXAK4paBY3JlZGl0CuKWgdGE0YDQsNC90YbRgwpzdGF0cwpcIjoK4paB0J/QtdGA0LUK4paBYWNjb3JkaW5nbHkK4paBTGVuCnpuYQriloFSZWdpb25hbAriloHQuNC30LTQsAriloFqw7oKaGlzdG9yCuKWgWVudGl0aWVzClN0YXIK0L7QvdC1CiddWycK4paBTm92YQpkaWUK4paBYCcK4paBb2J0ZW4KYW5zdAriloFSZWxpZwriloF0cmlnCuKWgdGA0LXQttC4CuKWgVBlcnNvbmFsCuKWgXRvbmUK4paBYWlkClZpc3VhbApTdWJtaXQK4paBbW92ZXMK4paBQnJpZGdlCuKWgUJveQriloFhY2N1cmF0ZQpvc3RhCmF0dG8K4paBZGVmZWF0ZWQK4paBZGF0YWIKZ2lueAriloFMaXYKbHl3b29kClRXCnJpdW0KaXBwZWQKRmFpbApSRVFVRVNUCuKWgWlnbm9yCuKWgXNpdHRpbmcK4paBbW9sdG8K4paBZW5kcG9pbnQKdWNpw7NuCuKWgWNvbGxlY3Rpb25zCuKWgdCi0YMKdGVtYnJlCuKWgW7DqWNlc3MK4paBaW50ZXJhY3QK4paBb3RyYXMK4paBY3VycgriloF0cmFja3MK4paBZmFtw61saWEK4paBbnVtZXJpY2FsCmxlZ3QKXS8K4paBTWFyaW8K4paBdG9ydApiZwpzc2wKdGV4dHR0CuKWgXNwYXJrCtC00LjQuAriloFwcm9iYWJsZQolJSUlCnBoaWEKXSxbCuKWgWJveGVzCuKWgWFjYWRlbQriloFTbG8Kw6R1ZGUK4paBd2l0bmVzcwriloFlZGl0aW5nCtC70LjQvdCwCuKWgWxvb2t1cAriloFCdWNrCtC00L3RjwriloFqb3VycworKyl7CuKWgWluZGljZXMK4paBZmxpZ2h0CuKWgWNvbXB1dGF0aW9uClBsdWdpbgriloFyZWFsaXplCmlzc2V0CuKWgWRlcml2YXRpdmUKbGluZXdpZHRoCmJ1bmQK4paBdGhvcgriloEuPQriloFzw60K4paBQ2xpY2sK4paBU2ViYXN0Cj4nCmhhdmlvcgpsZWkKdWxmCuKWgWdlb21ldHJ5CnByZXYKZW1wbAriloFMw6kKYW5zb24K4paBQWxpY2UKcHJvdG90eXBlClJFQUQKaWN1bGFyCuKWgdCx0ZYK4paBZGV1dHNjaGUK4paBUmVwcmVzZW50CnNpdGVzCuKWgU1lYW4K4paBZGlzcwriloFadXIK4paB0L/RgNC10LcKUEFSCuKWgScjCuKWgURyYQrRgdC+0L0K4paBc3RlaHQKbWFya3QK4paBZWFzZQpEcmF3aW5nCj0lClN0b3AK4paBc2VydmluZwriloF0YWvFvGUK4paBRE5TCuKWgWxpdGVyYWwKRGllCuKWgdCy0L7RgQriloFzZW5pb3IKYWNpb24K4paBdWJ1bnR1CuKWgUZyYW5rZnVydAriloFTdW5kYXkKw6FiCuKWgWpvdXJuZXkKaXNzYQpiZXJyeQriloFzZXAK4paBaW9uCndlcnQKb3JzesOhZwpzZXJ2ZQriloFNaWxhbm8K4paB0LLQtdC60LAK0YDQsNGFCuKWgdC40Y7Qu9GPCuKWgW1hbmVyYQriloFzdGF0aW9ucwriloFhZG9wdGVkCuKWgWFueWJvZHkKVkVSU0lPTgpGRQpkb3JmCi4uLiwK4paB0L7QsdGA0LDQt9C+0LLQsApMb2dnZXIK0YTQuNGG0LjQsNC70YwKV1JJVEUK4paBaGFtCuKWgUZ1dHVyZQpvdGVuCuKWgUFHCuKWgXRyYWluZWQK4paBTmljaAriloF1bml2ZXJzaXR5CuKWgU9seW1waWNzCuKWgWRvaXQK4paBY3VsdHVyYWwKQ29uZgriloFDb25mZXJlbmNlCm9ybm8K4paBTVAK4paBYm91CmNpbgpIaWdoCmFubnRlCuKWgWRpc3BsYXlpbmcK4paBY2hhcHRlcgriloFGcmF1ZW4K4paBcmVhbGl6ZWQK4paBYXR0ZW1wdGVkCuKWgXByZWZlcnJlZApEYXQK4paBdHJvdXZlCuKWgWludGVudGlvbgriloFOb3RpY2UKdGltZXN0YW1wCiooCuKWgdCo0LAKYW5hcwpjbGEKaXN6CnRibApBcnIK4paBaW52ZXJzZQriloF0ZXJyaWJsZQriloFvY2N1cGllZApKQVgKPC0K4paBUGhpbG9zb3BoCuKWgUNvcnBzCmJ1aWxkZXIK4paBYmVnaW5zCuKWgWNlbnN1cwou4oCZCuKWgXByb3ZlbgptZXRyaWMK4paBaW5jcmVhc2VzCndpY2gK4paBQUJDCnByb2plY3RzCuKWgVRob3IK4paBY29uZmlkZW5jZQriloF1ZmZpY2lhbGUKZWxtCuKWgWdhcmRlbgriloFyb2J1c3QK4paBY29zw6wKaWVkegriloFJc2xhbQriloFBZGRyZXNzCuKWgWRpdmlkZQriloFFdQpjYXRhbApkZXRhaWwKZXBlbmRhbnQKZmcK4paBYmV3CuKWgWZpcwriloFCTwriloF3c3AK4paBcGlwZWxpbmUKaGQK4paBU2Vzc2lvbgpsw6RuZAppdmVhdQplc3RyCuKWgXBhcnRpY2xlCuKWgWxhcmF2ZWwKcGljCuKWgW5hdQriloFmaW5zCuKWgVZpbAriloFmdXMK4paBcXVhc2kKb3BlcmF0aW9uCuKWgWFsbGVyCuKWgWFuYWx5CuKWgdCe0L0K4paBTWVzCuKWgdC+0L/QtdGA0LAK4paBaGFuZGxlZAriloFkZXByZWMKdHRvCuKWgUVrCuKWgXN0cmFuCuKWgWFuZ2xhaXMKanVyZQriloFTaWx2ZXIK4paBY2xvc2VseQplbmtpbnMKYW5vcwpzdGVkCuKWgdGB0LXQvdGC0Y/QsdGA0Y8KYnJhbmQK0L3RjNC+CuKWgXByw6lzZW50CnJvawptb3VudAriloFBbnRob255CuKWgUZ1cnRoZXJtb3JlCmluaGEK4paB0LDRgNGF0LgK4paB0YDQsNC30LvQuAriloHQvtC60YLRj9Cx0YDRjwriloFwaW50Cm7DvQpwdHMK4paBaXRhbGllbgriloHRgNC10LPQuArQu9C10LcK0LTQuNC90LAKYXRoZXJpbmUKSW50ZXJuYWwKUXVlc3Rpb24K4paBc2V0dGxlbWVudAriloHQktGB0LUK4paBZm9sZGVycwrQtNGA0LgK4paBdmFsb3IK4paBTWlsbGVyCuKWgUFzc2VydAriloFwYXRpZW50CuKWgU5pZWRlcgriloFFUAriloFBZ3IK4paBb25kZQriloFzY29wCnNlcXVlbmNlCuKWgVBMCuKWgXNlZWsKamF2YXNlCuKWgVZlY3RvcgriloFuw6EK4paBY2F0ZWdvcsOtYQpjbG9uZQpOUgphdmFpbGFibGUK4paBQmVzY2gK4paBZWNsaXBzZQp3aWNrbHVuZwpkZXBsb3kKZW5pZQriloEiKQrDpHN0CuKWgXN5bmMKQ09ERQriloHQp9C1CuKWgWZsb2F0aW5nCi9gCuKWgXJldGlyZWQKZGViCuKWgXBhcnRpY3VsCuKWgWNvbGxlY3RlZAriloFkb3dubG9hZGVkCm5pY2UK4paBQnVmZmVyCuKWgUFjY291bnQK4paBbWFnZ2lvCuKWgdGA0LXQtNCwCuKWgXNhbGVzCuKWgXN0YXR1bml0ZW5zZQriloFLaQriloFGZXJyCkxvY2sK4paBSXNhYmVsCmNsYXIK4paBcG92CmF0cmEK4paBRnJhdQriloFzb3J0aW5nCuKWgXBocmFzZQriloHQsNC/0YDQtdC70Y8K4paB0LTQtdGP0YLQtdC70YwK4paBQW5kcsOpCmRlZmluaXRpb24Kd3JpdGluZwrDqXLDqQrRidGDCuKWgU9yZAriloFydW0K4paBVHVyawriloFJdmFuCnRoZWxlc3MK4paB0LPQuAriloFzYWtlCuKWgUJhc2VkCmRlY2sKb3J1cwriloF0dXR0aQriloFibGFuCuKWgdCf0YMKRGV0YWlsCuKWgdCd0L4K4paBU2t5CuKWgXByw6hzCtC80L7QuQpjb2xuCtGH0LXRgdC60L7QuQpldGkK4paBYXJyb3cK4paBQ2hhCmNobWFyawrFk3VyCmZhYgrQutGD0LvRjApHcmlkVmlldwriloFCYWNrZ3JvdW5kCnNuCuKWgXNlZ3VpdG8K4paBbmljCmNvdQrRgtGW0LIK4paBYnp3CmFkZEV2ZW50TGlzdGVuZXIKc3luYwphenpvCmFic3RyYWN0CmFzc2V0cwriloFEcnUK0LfQtApvcmRuZXQK4paBYmlnZ2VyCuKWgWluaXRpYWxpemVkCtC60LDQtwpvZ2VuZQp2aW91c2x5CuKWgWd1aWQKc2NoZWlkdW5nCuKWgVplbnQK4paBZnJhbWVzCnJpZWJlbgriloFpc3N1ZWQK4paBZG93CuKWgWRlc2NyaWJlcwppbHN0CuKWgWNyaXRlcmlhCuKWgWdlbnRsZW1hbgpCYXNpYwpuZXoKRGV2Ck1vdmUK4paBZXN0YWJhCuKWgXNldHRlbWJyZQpjaXJjbGUK4paBZmFpcwriloFteXN0CuKWgWFyY2hpdgpkeW5hbWljCmrDoAppdGFzCuKWgdGP0LrQuNC5CuKWgWRvcgriloFBbWF6b24K4paBbmVjZXMK4paBTWFyY2VsCuKWgWVsbGEK0YDQvtC6CuKWgVBlbm5zeWx2YW5pYQpjdWxhcgpQYWNrCml0YWdlCuKWgUJ1cm4K4paBUk8K4paB0L7QvdC4Cn4kClRlWAphc3NpZ24K4paBYmVhdAppZGVuc2UKYWNlbnQKQWxlcnQK4paBc3RyYXRlZwriloFtw6VuYWRlbgpMT0MK4paBY2F0YWxvZwpwcmludFN0YWNrVHJhY2UKKCkpLgp1c3RlZAriloFGcmFtZXdvcmsKRUNLCuKWgWF0w6kKRnJhbWV3b3JrCuKWgWF0dGFja3MK4paBQmVydAriloHRgtGA0LDQvQo6JQphcnNpCm5vdGF0aW9uCuKWgWxvZ2ljYWwKd2VldAriloF2aXNpdGVkCmJydQriloFzdXJwcmlzZQpeXgppbmFsZQpyZW1vdGUKJ30sClN5bnRheAppYW5lCm9ubmVuCuKWgWJyZWFraW5nCnBhcnNlcgphcGsK4paBTWlndWVsCuKWgcKnCuKWgWFjdGluZwriloFnZWJydQpBdEluZGV4CtGO0YLRjNGB0Y8K4paBb2ZmZXJzCuKWgXByYWMK4paBZ3JhbnQKdGVybm9vbgriloFhY3F1aXJlZAriloFOeQriloFjb21tYQpuw61rCuKWgVN0ZXAKaW5uZXJzCuKWgVNBCuKWgXdhdApkYXlzCuKWgXJlY3RhbmdsZQpkYXIK4paBdHJhYwriloFJbmRvbmVzCuKWgWZlZWRiYWNrCuKWgWJyZWFrcwpwYXJ0aXRpb24KaWNhbnMK4paBTm90aWNlcwriloFpbXByb3ZlZApwaGFuCuKWgWRpZmZlcmVudGlhbApzY3JpcHRzCuKWgVhJSUkK4paBTGFib3IK4paBcHJlY2lzaW9uCuKWgXNlZWQKYnVuZGxlCmlkZW50cwpocmUK4paBRG91Z2xhcwp1bGQK4paBc2Vjb25kYXJ5CuKWgWJyaWcK4paBY29uZmlybWVkCuKWgWNsYWltcwpSb2xlCuKWgUpld2lzaAriloFwxZllZAriloFob3RlbAriloFjb21wdGUK4paBcmVjdXJzaXZlCl0oIykK4paBcm90YXRlCuKWgWNocm9tZQppbmVhCiU7DQriloFFbnZpcm9ubWVudApwbGF0egriloFTaW5nbGUK4paBc2V2ZW50CuKWgXBvc3RpbmcK4paBZGVhbGluZwpwYXJhbWV0ZXJzCtCz0YDQsNGECkF1dGhlbnRpY2F0aW9uCnRvdWNoCkF6CuKWgWdyYXkKZW5jaW5nCmJvbGRtYXRoCuKWgdGB0LDQudGC0LUK4paBWmEKYW5qZQriloFwb2xhcgriloHRg9C70LgKa2lsCuKWgWhvdmVyCuKWgVJFU1QK4paBQ29tZQpqYgriloFHZW9yZ2lhCuKWgUVzdGFkbwpPdXRwdXRTdHJlYW0K0ZvQuAriloFkdW1wCuKWgUFnZQriloFzd28KbW9iaWxlCm9jY3VwCtGI0LXQs9C+CuKWgWNvbnN0aXR1dGlvbgpnb29kCmFrdQriloHQsNC90LMKaWVjawriloFQc3ljaAriloFyb290cwriloF2ZXN0CuKWgdCz0L7QtNCw0YUK4paBUmVww7pibGljYQriloFwaWFuCmlncmF0aW9uCuKWgXByw6ljCuKWgWdlbmVyYXRlcwpMWQooYAriloE9fgrRiNC10L3QuNGPCuKWgVJhaAriloFjb25uZWN0aW5nCsW+w60K4paBZsWRCuKWgWFwcGVsCuKWgVJhaWx3YXkK0LPQu9C4CuKWgWTDqXZlbG9wcAriloFhcG8KZnJhbgriloFpbW1lZGlhdGUK0LLQvtCz0L4KUnVubmVyCsOkZwpTb21ldGhpbmcK4paBZ8OpbsOpcmEKRXZlbnRBcmdzCmluY3Rpb24KZ2x5CuKWgUR1ZQriloFwcm9zdAriloFyZWZlcnJpbmcK4paBam9nCuKWgWV4ZWN1dGFibGUK4paBRHJlYW0KYWNzCuKWgUNvbGUKYW1wZgriloFCaXMK4paB0LjRjtC90Y8KbGllZGVyCtGC0LXQugriloF2YgriloFtb20K4paBOigK4paBZGVybmllcgonPT4K4paB0Y3RgtC+0LPQvgriloFuZXVlCuKWgdCn0LAK4paBd2VpdGVyZQriloFhbGxlZwriloFyZWFsaXR5CuKWgWp1ZGdlCuKWgUJhbHQK4paBdGhpbgriloFHZWQKaWV2YWwKbXgK0YbRltC+0L3QsNC70YwK4paB0LLRi9C/0YMK4paBSVgK4paBYmxpbmQK4paBTW90b3IK4paB0YjQsAriloFhcHByb3hpbWF0aW9uCmRhbQriloFmb2cK0LrQvtGACuKWgVdyaXQK4paBbGluZwriloHQv9C40YHQsAriloFNYXJzCm90dGkKRW51bQriloFUcmliCuKWgW1lcmMKenVuZwp2YW5jZWQKY2ZnCtC90LDRhQpzY2hlbgoiXS4KYmVrCuKWgXN0ZXIKanAK4paBUmFwCuKWgXJlY29yZGluZwriloFwZWludAriloFsZXRzCsOkbmdlCj4iOwriloHQvNGW0YHRhtC1CuKWgWNhdmFsCuKWgUNTVgriloFlbnRzdGFuZAriloFoZWxwZXIKZW5kZXQK4paBR3JhbQriloFEaWVnbwriloFCaXNob3AKVEFHCuKWgWVjYwriloFFZW4K4paBQVYKQ2l0eQriloFHdWlkZQpoaW5kCnJpY2FsCuKWgdCe0YHQvdC+0LIKQnVzCuKWgXp1bsOkY2hzdAriloF0aWNrCuKWgUNvbG9uZWwKVGhhbmtzCuKWgWZlcm0K4paBZ3JhbnRlZAriloF0aHJlc2hvbGQKb21vcnBoaWMK4paBSHVuCmVuaXMK4paB0L/RgNCw0LIK4paB0Y/QutGWClBHCuKWgXdzCuKWgXRlY2huaWNhbAplc3RybwprbMOkcgp2YXJzCm9jcmF0CuKWgdC+0L/RiNGC0LgKb25zbwppYmEK4paBU2F2ZQriloFwcm9ncmFtYQriloHQstGKCuKWgWludsOlbgo+KCkK4paBbWVqb3IK4paB0YHQu9C+0LLQsAriloFyZXBsYWNlbWVudAriloFpbXByCuKWgUZyYW5jZXNjbwriloFIb3RlbAriloFVUERBVEUK4paB0LzRg9C30YsKdWdzCnZhcmQK4paBZmF6CmludG9uCuKWgWFydHMK4paBS3kK4paBSWxzCuKWgXNlcmEK4paBVm9sdW1lCuKWgWdpdWdubwriloFhc3ltCuKWgVBpcgriloFOQVMK4paBVGFtCsSbbApTZXF1CmttYWwK4paBRWlucwriloHQutC+0LzQv9CwCm9iZQpvb3IK4paBaGVhcApjdGwK4paBc2VwYXJhdGVseQpyZWFkZXIK4paBc2lnbmlmaWNhbnRseQriloFMYWcKbm90ZXMK4paBc2VsZQriloFkZWRpY2F0ZWQK4paBSG9zdApjaG9pY2UKd2luZwriloFUaXRlbAriloFiZWZpbmRldApsYXJnZQriloFjb250ZW4KSmF2YVNjcmlwdAriloFkZXNlcgriloFHb3Jkb24K0YHQv9C1CuKWgXBhdHJpCuKWgVJhbmRvbQriloFSZXR1cm5zCtGL0LwK0YDQvtC80LAK4paBU3R1ZGllcwpTbAriloFmcsO8ClRFWFQKaW5hdGUK4paBVG9sCuKWgWV2ZXJ5d2hlcmUKYXJ0YQriloFvcmJpdAriloFBaXJlcwriloFJc3MK4paBdGXFvAriloFkaXZlcnNlCuKWgW51bWVyaWMKbWF6CuKWgW1pc2UK4paBYmF0dGVyeQriloFBa2FkZW0K0L3QtdC90LjQtQriloFzaW11bHRhbmUK4paBRGVhZAriloFjbHVzdAriloFvdHJvCuKWgWNlcmNhCigpYCwKcm96CsSDdAriloFNTwpyaWZ0ZW4KaW1wb3J0YW50CuKWgWplaG8K4paBZmluZFZpZXdCeUlkCuKWgWNvbnNlcXVlbmNlCuKWgW1lYXN1cmVkCmlzaGVzCuKWgXN6ZQppZW5kbwriloFXYWhsCnN0cmlwCkFSRAriloFvcGFjaXR5CldPUkQK4paB0JLRlgriloFMb2NhdGlvbgpyYWkK0L/QtdC9CuKWgXJpZgphdXNzaWFuCkZpbGVOYW1lCuKWgWRpc2NvCmlsZW4K4paBdmFneQpsaWNpdHkKQm9yZGVyCuKWgVRyYWNrCtCx0L7QvApmYWN0Cm9rYQriloFnaW9yCuKWgVhWSUkK4paBZMOkcgpTaXRlCmHFgm8Kc2vDoQriloFwaXhlbHMKdml0eQpqUXVlcnkK4paBc2N1bHB0CuKWgWNhcmdvCuKWgWRpcmVjdGl2ZQriloF3YWwK4paBY29ubmEK4paBVGhyb3VnaAriloHRjdGC0L7QvApTdGF0aWMKb21zbml0dAriloFydW5kCuKWgWNsYWltZWQK0LfQvdGPCnNoYQriloFyYWcKY3JlbWVudAriloFmw7xuZgriloFyaXZhbApyaW4Kc2xhc2gK4paBdGhpcnR5CnNsZWVwCtC+0LvQvtCz0LgKU00KZ2F0ZQppemF0aW9ucwp2aWsK4paBYmxlc3MK4paBSWxsaW5vaXMK4paBVEUKdXRpbmcK4paBc29sdmluZwpHRVIK4paBWElWCuKWgUluZGlhbnMKZXhwcmVzcwriloFIZWlsCuKWgW11amVyCuKWgWludsOlbmFyZQonXSk7CuKWgWF1cgpib29zdApHTwriloFuaW4KdG9rCmdvZApvdGVyCikkJAriloFkZXNjZW5kCtGA0Y4K4paBTGFuZ3VhZ2UK4paBZGl2ZXIK4paBQXNzdW1pbmcK4paBZnJlcXVlbnQK0YfQvdGWCuKWgUJpb2dyYXBoeQosWwp1cm0K4paBd2Fsa2VkCuKWgWZlZGVyYWwK4paBTWljaGlnYW4K4paBZmFjdHMK4paBSW50ZWdyCkxFUwriloFBbGFuCuKWgWNvdXAKQmVyCuKWgXBhcnRpY2xlcwrRm9C1CkluZmxhdGVyCisoCkJvdW5kCuKWgVPDvApBdWRpbwpjaXRldAp5ZWN0CuKWgW5yCnhlCuKWgUJydW4K4paBXywKYXZvcgriloFkaXNjaXBsCmFsbQriloHQvdC+0Y/QsdGA0Y8K4paBU1NMCuKWgUthaXNlcgriloFyZWNoZXIKeWdvbgriloFyZWdhcmRsZXNzCuKWgWNvbmZpZ3VyCuKWgXVubmVjZXNzCuKWgUNsYXJrClBIUAriloFGQUxTRQriloFwYWQKJH0K4paBdmFsdQriloFkaXNlYXNlCuKWgW1haW9yCuKWgWhvbW1lcwriloFFZGl0aW9uCnNsYW50CuKWgWVuZGluZwriloFzZXR0bGVkCnVydXMKaGVkClBhdHRlcm4K4paB0LPQvtC00LjQvdCwCuKWgVBoaWxhZGVsCnRpa3pwaWN0dXJlCuKWgWNvYWwK4paBc2VkZQriloFzYXRpc2ZpZXMK4paBdHJpbQriloFiYXQK4paBYW3DqXJpY2FpbgriloFsdWdsaW8K4paB0L/QvtGH0LAKZmZmZgriloFUYXJnZXQKZ2VuZXJhdGUK4paBWmllCsibaWEK4paBZ2FyZAriloF3b3JrZXJzCuKWgUpvYgriloF1cmJhbgphaGxlbgriloFCdWlsZGluZwriloFuZXUK4paBY2hyb24K4paBRWFybApncm8KVVNFCuKWgVhJSQriloF3ZWFsdGgKaW5hZQriloHQkdGA0LAK4paBbGliZXJ0Cmlyb3MKOiQKbGVlCmlldmVzCuKWgUp1c3RpY2UK4paBb2lsCuKWgUF0aGxldAriloFjbG8KU2NhbGUK4paBbGlwcwriloFhcHJpbAriloFpbXByZXNzaW9uCuKWgXBlcmNlCuKWgdGD0YfQsNGB0YLQuAp2aWwKw6ljaAriloFlcXVhbGl0eQriloHQvNC10YIK4paBYW5ub3RhdGlvbgplcm5hbAriloFNYWNoCuKWgWludGl0dWwKcHJvYmxlbQrRjtGJ0LjRhQpvcGx1cwriloF0aG91c2FuZHMK4paBY2FsY3VsYXRpb25zCnVtcHMK4paBdHJpYW5nbGUKcGhhbAriloFEb3JmCuKWgWRvbGxhcnMK4paBZGVuZW4KbMOocwpvbGlkCuKWgVJlc3VsdHMK4paBU3RhZGl1bQriloFEZXNwCuKWgUVpc2VuCmltaXIK4paBc290dG8K4paBxI1pCmF0YWJsZQpvcnVtCuKWgWNvbnZlcmdlbmNlCuKWgWpldW5lCm9raW5nCuKWgdC20LjQstC+CmFpbmluZwpwb2ludGVyCmN1bG8K4paBanNvdQriloFncmFiCmFrdGUK4paBaG9waW5nCuKWgU1hawriloFzYWcKb3JpZ2luZQriloHQv9C+0YHQu9C10LQK4paBVmVnCuKWgXRoZW9yZXQK4paBVHJ1Cm5lbWVudAriloFmYWNlcwpIb3IKSm9pbgphcmVsCuKWgdC+0LrQvtC70L4KSG93ZXZlcgriloFjYXRhbApib3VyZwriloFteXNxbGkKYWNpb25zCuKWgUluaXRpYWwK4paBcmFpbgppdHVyZQriloFTY2llbmNlcwriloFLcmVpcwouX18K4paBY2lucQriloFBdcOfCml0aG1ldAppdG9ycwphbWF6b24K4paBZ2FwCuKWgWlnbm9yZWQKYWR2CtC60L7RlwriloHRh9Cw0YHRgtGMCuKWgWNvcnBvcgrRhtC10YAK4paBY3JpbWUKdW91cwriloHQvdCw0LvQsNC30LgKRGF0YUZyYW1lCtCy0L7QtNC4CklnbgriloFMaW5jb2xuCuKWgW1lbm9zCuKWgUx1ZnQK4paBTGluZAriloFDb29rCuKWgW1hdGVyaWFscwphcHBlZAppZ25vcmUK4paB0L7RgtC60YDRiwpmcmllZAriloFnb3V2ZXJuZW1lbnQK4paBZmlyZWQK4paBc2NyZWVuc2hvdArRgdC10L0K4paBWygK4paB0L7RgNCz0LDQvdC40LfQsApHcmFwaGljcwriloHQv9GA0L7RgtC4CuKWgXBoZW4KY3JhZnQK4paBYnJhaW4K4paBQ29tbwriloFFdmVyeXRoaW5nCmFuZXMKSUdOCuKWgW5lZGVyYsO2cmQK4paBRm9yZXN0CnphaGwK4paBQW1vbmcKUXQK4paBdG9nZwriloF2YXJpYW50CuKWgWhpbGwK0L/QuNGB0LgKY29sb24K4paBZGljZW1icmUK0LPQvtGACuKWgVdpbmQKw7xuc3RsZXIK4paBPVwKc2F2ZWQK4paBbmVqCnVudGUKdXR0bwriloFyZWNlbnMK4paBc2ljawriloFkZXNlbgpVU1QK4paBd29yc3QK4paBQW5nZWwKb2RveAriloFQcm92aW5jZQriloFNYXoK4paBYWdyZWVtZW50CuKWgUJhc3MK4paBc2VndW5kYQpvbmNlcwriloFMaW5raQriloFDTAriloFqw6EKaXRlbWVudAriloHDoXJlYQriloFzY2FsYXIK4paB0KDQtdGBCmF3dApzaWVtZQriloFqdW5pCuKWgdGF0YPQtNC+0LYKaWt1cwriloFsaWQKcHBlbAphdmkK4paBYmFsYW5jZQppcHBpbmcKY3Vzc2lvbgrRh9C10YHQutC40YUKKCIuCkFsc28K4paBd2hpcwpIT01FCuKWgWJyb3duCuKWgWTDrWEK4paBcHXDsgpwbG90bGliCuKWgUphaHJodW5kZXJ0cwpESwriloFhbmNob3IKLi4uXQriloFBdXN0cmlhCuKWgW1hcmNhCuKWgWdlegppb3VzbHkK4paBbGF6eQp4YQriloFDaGFubmVsCuKWgW5ldWVuCmRhcwriloFzZWFyY2hlZAriloFzdGFhdAriloHQotCw0LoK4paBSm9zZWYK4paBU2hlcgpwb2lzCuKWgWVuZW0K4paBYWNjZXNzaW5nCuKWgdC90LXQutC+CuKWgWZ1cm9ubwriloFwc2V1ZG8KPz4K4paBZXN0YWRvdW4K4paB0JLQuNC00LgK4paBbW90aXYK4paBcmVjYWxsCmlzc29uCsOzYgopLS0K4paBRXJ6CuKWgdGB0LDQstC10LcKRGlyZWN0CtGB0L7QsQriloFzaG8KdsO2bGtlcgpBcApnZW5zCtC90LjRiNGC0LLQvgriloFBbXN0ZXJkYW0KdXNrCtC/0LvQvgriloFzaW11bGF0aW9uCuKWgUJDCuKWgVdvagphdXRvbQpBbGV4CuKWgWVjb25vbWljCtCz0L7QvAppa2FpCuKWgWFsdHJlCuKWgSctCuKWgVdlZwpOb3RGb3VuZArQudGB0LrQvtC5CuKWgWNvbnZlcnRpbmcKcGhhYmV0CmF0cmljZQpib3VybmUKYWxvbQriloFjb21wYXJpbmcK4paBWm8K4paBZmxhCtCy0LDRjwriloFlbnRyYQriloFjaGFyc2V0CmRldmVsb3BlcnMKw61zdGljYQp9PgriloFKYXp6CuKWgUhvd2FyZArRiNGC0LAK4paBY2xvbmUKZG9vcgriloFQaW4KKioqCuKWgXNpbGVudAplY3ljbGUKaXNjZQriloFtdWQK4paBRGlzcGxheQriloFsaXAK4paB0LjRgdC/0L7Qu9GM0LfQvtCy0LAK4paBY2hhcmFjdGVyaXN0aWMK4paBc2IKZmlyZWJhc2UK4paBQmV3CkNhbGVuZGFyCuKWgXVzbwrDqHNlCuKWgVJhdAriloFlc3BlcgriloF0aHJvd2luZwriloFyb2R6CuKWgXlhcmRzCuKWgWdyYXNzCuKWgW1hcmtlcgriloFLb3MKVGhldGEK4paBb3JnYW5pcwprZXJuZWwK4paBcGVyc29uYXMKa2VlcAriloFleGNsYWltZWQKb3NsYXYK4paBRW50ZXJ0YWluCtC90LXRgAriloFpbndvbgriloFSYW5kCnJlZHVjZQpmYWMKZXhwcmVzc2lvbgp5agriloFkaWZmZXJlbnRpCmFnbGlhCuKWgXRlbXBsYXRlcwriloFtxbEK4paBcHJ2CuKWgW1vaXMK4paBZ2V3YW5uCuKWgdCx0YPQu9CwCmJpYmxpCmRlbW8K4paBQW5kZXJzb24K4paB0YDQtdC0CuKWgXBvcnF1ZQriloFQb2xvZ25lCuKWgXRyaXAK4paBZXhlbXBsZQriloFJbnRlcm5hY2lvbmFsCuKWgdC60LDQvgpJbnNlcnQKZ2VuZXJhbApTRVNTSU9OCmJlcmdhCmjDpGx0CnVuYXMK0LzQuNGA0LAK4paBeWllbGRzCm1hcHN0bwpzcG90CuKWgStcCtC70LvQsAriloFwcmVjaXNlbHkK4paB0YfQu9C10L0Kc2hhZG93CkFyZQp1bmFsCuKWgWRpc3BhcgriloF0w610dWxvCm5lc3QK4paBTG93CuKWgXByb3QK4paBQ29zdGEKbmFtZWQK4paBZ2FpbmVkCmxlc2lhCuKWgWFkbWluaXN0cmF0aW9uCkltcG9ydApicmFuY2gK4paBc3ltcGF0aAp2b2oK4paBRUMK4paBbXVuaWNpcGlvCuKWgWFuaW1hdGVkCuKWgWRpcmVjdG9yaWVzCuKWgXJvb2YKesSFZAppbWV0CnByb3RvCmJsYQo6XQpoYXZlCmF0ZW0K4paBbnMK4paBc2VjdG9yCnRocmVlCm93YW5lCndlcnMK0L7QstC40YUKcmVuY2UK4paBZXh0cgppZ3RlbgriloFvY2NpZGVudArIm8SDCuKWgWVhdAriloFoeWRybwp1YmVybmV0ZXMKW0AK4paBTW9vbgriloFTaG8K4paBZWxzZXdoZXJlCsO8bGxlcgpVcGxvYWQK0LvQsNC90LQK4paBRsO2cgp3aXNzZW5zY2hhZnQKS1MK4paBcGh5c2ljcwp0egriloHRgdC10YDQtdC0CuKWgUFyYmVpdAriloHQvNC10YHRggriloFHZWJpZXQK4paBaW5zZWN0CkFoCml6YWRvCuKWgXRlbXBsZQriloFhbm51YWwKc3RhZAriloFoYWJpdGF0CuKWgUFCCndvcnQK4paBcmVwb3MK4paBTmV1CuKWgSQoIi4KVm9ybGFnZQriloFyZXByZXplbnQKZXN0YW5kZW4KSW50ZXJuCi5gCuKWgWZhaWxpbmcK4paBTWF0ZXJpYWwK4paBZWZmZWN0aXZlbHkK0YLQtdC70LXQvAriloHQs9C70LAK4paBbmFobQriloFkaWZmZXJlbnRseQpleHRlbnNpb24K4paBVmVybQplbmFibGVkCmNvbmZpZ3VyZQpuaW8KY2lvbmVzCuKWgUJlYWNoCtGB0L7QvdCwCuKWgWNvcHlpbmcK4paB0YPQutGA0LDRl9C9CuKWgdC/0YDQuNC30L3QsAp6aApEZXNrdG9wCuKWgXNvc3QK4paBc3Vic2VxdWVudGx5CuKWgUxlaHIK4paBw7MKbMOkcgpvZG9yCnBob24KbmMKaXRlcmF0b3IK4paB0Y3RgtC4CuKWgWV1cm9ww6kK4paBVG9yb250bwrDs2RpZ28K4paBcG9zdG8KZmZlCuKWgWNyZXcK4paBU2Nod2FyClNhCnNxdWFyZQriloFiZXNpZGUK4paB0JzRlgriloFhdGgK4paBYWR2ZW50CmNqaQp3cml0dGVuCuKWgXJ1c3MKcm9zdApISQriloFkaWNlCmNjYQriloFkw6lwCnBseQpiaWdnCnppYcWCCsO8dHQK4paB0L7QtNC90L4KSkVDVArRgdGM0LrQvtC80YMKbm9zCm1vY2sKTGF1bmNoCnNhbWUK4paBam9icwriloF3aWRlbHkK4paBZGVmaW5lcwriloFQc2UK4paBbmVpZ2hib3VyCtGO0YnQuNC1CuKWgWNsb3NlcgriloHRgNCw0YHQv9C+0LvQvgriloFjbHVicwpmbHkK0YjQuNC8CuKWgXN1ZmZlcmVkCuKWgW5hcgriloFsYXZvcgpFeHRlbnNpb24KaXRpb25hbGx5CuKWgWdyYWNlCuKWgUNhbXBlb25hdG8K4paBQ2hyaXN0bWFzCm1pZGRsZQpvdGhlawplbGVtZW50cwriloFzb25kZXJuCuKWgXRhcmRlCuKWgXBlcm1hbmVudAriloFjb25jbHVkZQpTZWcK4paB0LDQutCw0LTQtQp9IiwK4paB0YTQtdCy0YDQsNC70Y8KxZllZAriloFJTApqdWQK4paBVVNTCuKWgU5hdHVyZQppZmZlcmVuY2UKU2VyaWFsaXplcgriloF0d2VsdmUKdGlkCtC80LjRjwrRh9C10YHQutC+0LPQvgriloFjYWxlbmRhcgpjb25jYXQK4paBaW50ZXJzZWN0aW9uCuKWgVBBCmF6dXJlCuKWgXNpdHXDqWUK4paBa2luZHMK4paBYXVzZ2UK4paBcnVyYWwKVGhlbWUK4paBdGFsZQpub2luZGVudApnb2luZwpyeAphZ2kKd3JhcHBlcgriloFDb2FzdAptYkgK4paB0L/QtdGA0LXQtApzcHJlCuKWgX1cCuKWgUxJCnpuYW0KaXRsZWQKU2FtcGxlCnVsaWFyCipcCuKWgXJlc2lzdGFuY2UKc3RvY2sKa2VkCuKWgUhFCuKWgXBvc3Nlc3Npb24K4paBUmluZwriloFtYWd5YXIKb3V0cwriloFTZWNyZXRhcnkKbmRlCuKWgVdhbGQKLSgK4paBSVNPCuKWgWFmdGVybm9vbgppb25lbgriloFzdG9wcwriloFjb25zdGFudHMKZ3VhcmQKYm93CuKWgWVycwriloFGaXJlYmFzZQriloFDbGVhcgriloFIb2x5CldpbgriloF0aXRsZXMK4paB0YLRgNCw0LIK4paBY29udHJpYgpow6RuZwriloFwaG90b2dyYXBoCuKWgURpc3RyaWJ1dGlvbgppZnRzCuKWgWF1bnF1ZQpjb21iCkFERAriloFwdWJsaWNhdGlvbgriloHRgdC70YPQtgriloHQutC90Y8K4paBYXlhbnQK4paBcmVzdG9yZQriloFiZWxpZWYK4paBdsOpZwriloFleHRlbnNpb25zCuKWgWRlY29tCtCy0YjQuNC5CldUCuKWgXBhcnRpCuKWgWdpb2MK4paB0LzQuNGA0LAK4paBaXNzdQpwaXBlCuKWgXByb3BzCuKWgXdpbGxpbmcK4paBbmVzdAphc28KcG90CuKWgWhhbmRsZXMK4paB0YTQvgriloFtb2RlcgriloFlYmVuZmFsbHMK4paBZmlnaHRpbmcKdW1ibgriloF0cmFuc3BhcmVudAriloFLcmlzdAriloFob21lcwriloF2b3lhZ2UKRmFpbGVkCuKWgUJpcmQK4paBSGVhcnQKQ291bnRlcgriloFTY290dGlzaArDoXRpY2EK4paBYXJiZWl0Cl57LVwK4paBU29yCuKWgWVuZ2FnZWQK4paBYXNpZGUK4paBRm91CuKWgXdpZWwK4paBcmVjb25zdApvdXNpbgriloFob3N0ZWQK4paBY2xhc3NlCuKWgWNvbnRlc3QKLi4uIgrQvNC+0LwK4paBYmVhbgpnZW0K4paBY29uc3VsdGF0bwriloFiaW8K4paBc3ViamVjdHMKYm9Cb3gK4paBU2NocmlmdAriloFkaW5uZXIKxINyCuKWgXLDs3duCuKWgSUlCmJhZ2UK4paBdmVyw7ZmZgriloFkZXRlY3RlZAppZW5uCnJvc2UK4paBVG9uCkNvbXBsZXRlCuKWgXByb3RvCmljaHRzClNUQVQKQ2hlY2tlZAriloFpbnRlbgriloFzbWlsZQriloFzdHJpcApuZXV0CicpOw0KZm91cgriloF0b2RhcwpDb250cm9scwriloF0aG9yb3VnaApydXAK4paB0LTRgNC20LDQstC4Cml0xIMKUHJvdG9jb2wK0JrQsAriloFleHBhbmRlZApleHRyYQpvcG9ydAriloHQodGC0LDQvdC+0LIKbGVhc2VzCuKWgW5vdGlvbgriloFndWVzdAriloFJc2xhbmRzCmlja2VkCuKWgURhdmUK4paBcmVmbGVjdGlvbgpsaXYKw6FsbsOtCuKWgXJldmVhbGVkCuKWgXNvZwriloFUYXgK4paBcGVyaW9kbwriloFXZWx0a3JpZQpjYXRhbGluYQpxdcOpCuKWgUZhdGhlcgriloFCaXIKZXhwZWN0CuKWgXJlZ3Jlc3Npb24KaW7DqQriloFkYWJlaQpwZXJtCtC80LXQvdC1CuKWgUFiZAriloFDRgphcmtzCnJlc29sdmUKd2VkZ2UK4paBaW5pdGlhbGl6YXRpb24K4paBVsOpYXNlCuKWgdC/0YDQuNC90Y8Kc3RtdAriloFpbmNvbWUKTVkK4paBb2RrYXp5CuKWgVNpZWhlCuKWgWJvZGllcwriloFzb2MKUmFuZG9tCuKWgXNlbnphCmFibG8K4paBcmVnYXJkZWQKb25DcmVhdGUK4paBTWFnYXppbmUK4paBUmFmCuKWgUJ1ZW5vcwrQuNC7CikpKTsKY2FwdApyZWRpcmVjdAriloFwZXRpdAriloFmYXJtCuKWgXLDtGxlCuKWgdGB0YLQsNGC0YzQuArCoMKgwqDCoApzdWJmaWd1cmUKw6hjZXMKemllbAriloHQvtC60L7QvQpFRQptZWUK4paBcGVydGVuCuKWgXJlcHLDqXNlbnQK4paBTEEKPycK4paB0YLRgNGDCuKWgXJhdGlvbmFsCm9zb2YK4paBa25lCuKWgWFydGlzdHMKRmxvdwriloHQkNC70YwKaXphcmQK4paBbnVtZXJvCmFjdGljCuKWgWRlc3RydWN0CuKWgdCf0YDQsApvbnNpZXVyCnF0CmFiZXN0YW5kZW4Kbm/Fm8SHCkNvbm5lY3QK4paBb3JhY2xlCuKWgVN0b2NraG9sbQpzaXplb2YK4paBZ2Vtw6TDnwpBQ1QK4paBZXhwZXJ0CnV0aW9ucwriloFoYWNpYQriloFsb2dnZXIK4paBZm9vbApyeXB0bwrDpnIK4paBY2lkYWRlCuKWgdGB0L7RgdGC0LDQstC1Cm9rZXIK4paBVHJhbnNmZXIK4paBZGVuaWVkClRyYWNrCuKWgXJhZGkKemVjCuKWgUhpc3RvcmljCuKWgUVpbndvaG5lcgrQutC+0Y4K4paB0YXRgNCwCuKWgUNhdGVnb3J5CuKWgURpc25leQriloFzd2FwCkJlZ2luCuKWgW1pZW50cmFzCuKWgWRhbmNlCuKWgXTDqnRlCuKWgWRyb2l0CmVydGEK4paBYmlyZHMK4paBY29udmluCnBhcmF0b3IK0LTRgNCwCuKWgUVTCuKWgVJlc3NvdXJjZXMKRUdJTgrDvGNrZQriloFDcnV6CmFibGluZwriloEiQAriloFtZXRyZXMK4paBQmVnCuKWgUdyw7xuZAriloFCb2gK4paBbWlsZQriloFUZWNobm9sb2d5CiIrCmFjY28K4paBc3MK4paBRmVkCuKWgUhlbmQKdXNjaAppdMOkCmZvbGsK4paBYWJzb3IKYW50YWwKb2RnZQriloFXSEVOCuKWgUV4dGVybsOtCuKWgVJlZ2ltZW50CuKWgWV2YWx1YXRpb24K4paBVGFpCuKWgXZvY2FscwriloFleHBlcmltZW50YWwKZW1iZWQK4paBTWlubgriloHQstC80LUKcHJlYwpldmVyeQriloFob29mCuKWgUZlcm5hbmRvCuKWgUJpYmxpb2dyYXBoaWUK4paBbmFnCmFtZXJpa2FuaXNjaGVyCuKWgW1hcmtzCuKWgVVUQwriloF1bmNlcnRhaW4K0LTQuNGPCm9saWEK4paBY3VwCuKWgWZpbGxlCuKWgWRvawp1c2VwcGUKZXN0ZXJkCuKWgUJyYW5kCuKWgVRoaXJkClBQCm5vZGVzCuKWgVBhZAriloFsb3ZlZApzd2luZwriloFzdXJwcmlzZWQKYXJkaQriloFHUgpdIgriloFlcXVhbGx5CmloZQpjYXJlCtC/0LjRgdC+0LoKbGlqawpyaW5uCuKWgVxbXAriloFzb25zCuKWgXTDpHQKaWNhbWVudGUK4paBbGlzdGluZwppZWxsZW1lbnQK4paBbnllbHZlbgriloFkcwriloFhZ3JpY3VsdAriloFIZXJtYW5uCuKWgWJlc2lkZXMKcHJvZ3Jlc3MK4paBcGVjdWxpYXIKZm9jdXMKY24KLSQK0YHRgtCy0LXQvdC90YvQuQpvdXJnCuKWgXd5bgriloFjb25kdWN0ZWQK4paB0KHRgtCw0L3QvtCy0L3QuNGI0YLQstC+CmNvbm5lY3RlZAriloFib3R0CuKWgdGB0LzQtdGACuKWgVBvegp1bmN0CmNvbmRhCuKWgdGB0LDQstC10LfQvdC+0ZgK4paBaGF2ZXQKbGlndApvcnRlZAriloFlbnRlcmluZwptdWx0aXAK4paBVGVtcGxlCuKWgVBsYW50CnR5cGVvZgriloFWbGFkCuKWgXF1ZWQK4paBcmVzdGUK4paB0LzQsNC5CuKWgVZlcnkKYW1iaWd1YXRpb24K4paBY2hhbGxlbmcK4paBcmVzcGVjdGl2ZQriloHRgtC+0YAKQ3RybAriloFhYnNlbmNlCmFydQrQstC+0LUK4paBZsO2cnN0CuKWgXNxCuKWgUVtcGVyb3IK4paBSWduCuKWgdGC0L7QstCwCjpgCmFkb29wCuKWgU1hZGFtZQriloFncnVwcG8Kc3R1ZAriloFleHRlcm5hcwriloHQkNC70LXQutGB0LDQvdC00YAK4paBZGlnbgriloHQttC40LLQtQpBbW91bnQK4paBY29ycmVsYXRlCuKWgUZhbnQK4paBcmFpbHMKZnAK0LzQuNC90LjRgdGC0YDQsNGC0LjQsgriloFib3VnaHQK4paBZmlsdGVycwriloFhbmNvcmEK4paBcGFydG5lcgriloFxdWFuZApzeW1ib2wKdWxhdGluZwriloF6ZAphd24K4paBR3JhbnQKYmVjYXVzZQpyYWJsZQpcfQrDrXN0aWNhcwriloHRg9GH0LUK4paBcMOpcmlvZGUK4paBc2tlCuKWgUFueXdheQriloFpbmRleGVzCuKWgWRpcmVjdGlvbnMK4paBUkFNCmNocm9tZQriloFhcG9zdAriloF3YXJuaW5ncwriloFBaXJwb3J0ClZJCmFiaWxlCuKWgWxvcmQKcHJvdmlkZXIK4paBSmkKb3N0cmVhbQriloFnZW1lZW50ZQp0YWJsZVZpZXcKRXh0cmEKY3Vyc29yCmVncm91bmQK4paBTW96CuKWgXJpYgriloFtb3JwaApsb2FkcwplbHNrCuKWgU1BWAriloFTYW50aWFnbwriloFIaW0KY29kZXMK4paBbGFuegriloFjb3VudHMKcmlubmluZ3NvbXLDpQrRidGRCuKWgXNww6kK4paBcGllcndzCuKWgVN2ZXIK4paBYWNrbm93CkJvb2xlYW4K4paB0YTQsNC80LjQu9C4CuKWgVNlbmF0ZQrRiNC+0LIKYWdlcnMK4paBTnVldmEKYmlsCmtpZW0K4paBTWV5CndpagriloFHbWJICnZhbGlkYXRpb24K4paBZW5zdWl0ZQppbmtpbmcK4paBY2FtcGlvbgriloFmaW5hbmNpYWwKaXpvbgpIZWFkZXJzCuKWgWRlcHJlY2F0ZWQK4paBZm9uY3Rpb24KUkVHCuKWgXZvbHVtZXMK4paBQ2hpCuKWgWVuY291bnRlcmVkCmxhawrRgNCw0Y8K4paBY29udGludWVzCuKWgX5bCnVlcnRlCuKWgVw7CuKWgURvawriloF3ZWlnaHRzCuKWgXJoCuKWgU5hcG9sZQriloFuYXR1cmFsbHkKc2t1CnBhcwriloFnZWdyw7xuZApldHIK4paBS3UKaWN0ZWQK4paBZmFicmljCuKWgUFTQwriloFFbnRlcnRhaW5tZW50CuKWgWVuZXJnCtC60LvQsNC0Cm9tb24KdGhlbWUK4paB0YXQsNGA0LDQugriloFkcmFmdAriloFjaGFubmVscwriloFkZXNlcnQK4paBdHJhdsOpcwriloFMb2NrCuKWgXNpZW5kbwrRhNC10LoKbcOqbWUK4paBcGFja2V0CuKWgU1vdW50YWluCuKWgUZhaHIKYnJhaW8K0L/QtdGA0LUK4paBZ2VuYW5udAriloFkZXBsb3ltZW50ClBhbArQvdC+0LMK0YHRgtGA0YMKUHJpbQpmw7xyCuKWgWRhbmdlcm91cwriloFzesOhbQpyZWNrCuKWgXBvcHVwCmlja3kKaW5hcgpjb3dvCtC90YbQuNC60LvQvgrDrXTDoXMK4paBcGx1Z2lucwriloFkcml2ZW4K0LvQtdCyCuKWgSIoCnR0YQriloHDmgriloFlYgriloEnJzsK4paBa25vY2sK4paB0L7RgdC90L7QstCwCuKWgW1haXNvbgrQs9C70Y8K4paBSG9ub3IKdGFpbApyaXR6CuKWgWd1eXMK4paBY29tYmluYXRpb25zCm9uZGVyZQriloFBbGQK4paBZmlkZGxlCtC00LDQsgp1cmQK4paBcHJvamVjdGlvbgriloFUYW1iacOpbgp2ZXJiCuKWgXRlcnJlCnJ1Z3UK4paBc2VwdGVtYmVyCuKWgTwhCmNvc3QK4paBbnV0CnslCuKWgXViaWMKYW1hcmluCtGC0LjQuAriloFwYXRyb24K4paBYW1lbHkK4paBZXN0bwriloFsaXN0b3AKZmFsCuKWgVByb3AK4paBT250CuKWgU1hZGUKVEVTVAriloFOZW0K4paBTmF0aW9ucwriloHQstGDCmluY2x1ZGluZwriloFzcGVjdHJ1bQriloFMYW4K4paBRXZlcgpQYXVsCnRtCkFwcGVuZApSZWxhdGl2ZQpkaXNhYmxlZApyZXR1cm5zCuKWgWZsb3dlcnMKaWt1CuKWgXxcCuKWgUpvcmRhbgriloFTbWFsbAriloFjaWMK4paBc2V4dWFsCmF1dHJlCtCy0LDQuwriloFyaXAKb3VzdAriloFQaGlsYWRlbHBoaWEK4paBdWsK4paBTW9uZ28KeG1sbnMK4paBc2hvcAriloFkZWJ1Z2dlcgriloF6YWoK4paBQmlsbHkK4paBbmllbQpvbGlzCuKWgdGA0L7RgdGB0LjQuQphZ25lcgriloFtYXZlbgriloFHdXN0YXYKQXVzCmNvbXBhcmUK4paBamV1CnVkZXIKaXNobWVudAriloHQtNC40LLQuNC30LgK4paBRmlubGFuZArQvdGD0YIKesOpcwriloFMaWdhw6fDtWVzCuKWgXF1ZWxsbwphbm5vdGF0aW9uCuKWgXRocmV3CuKWgVByb29mCuKWgUFyZWEKYXNoaQriloFGTwpqYW1pbgrQtNC10L3RggriloF1bnVzCmZyaWVuZAouIik7CuKWgXRyYWt0ZW4KZG9jdW1lbnRjbGFzcwphbmthCuKWgWFycml2ZQriloFkb25uZQpvbHkK4paBUmVpbgriloFmYWNlYm9vawppY2luYQpzbGljZQriloFuYWd5CuKWgWhlYmJlbgriloFJQwriloFCYWcK4paBY2lyY3VsCsOhY3QKbWl0dAriloFncmV5CuKWgWNhdgriloHQvtGB0L7QsdC4CuKWgXN5bW1ldHJpYwriloFTaWMK4paBbWVkaXVtCuKWgVVURgriloFEb3BvCsOtY2gKYmFyZQpkemllCuKWgWhlYXZlbgriloFjYW1wZQplc3RlcmRheQriloFXaXNzZW5zY2hhZnQK0L/QvtC70YwKZGlkCmFsZXIK4paBY2l0aXplbnMK4paBTWFyZ2FyZXQK4paBc291Z2h0CmNoYXJ0cwpDTEMKb2xseQp5c3oKd2FsZAriloFmZW4K4paBU2l4CuKWgVVycwriloHQvtGA0LPQsNC9CuKWgVRyYWQKY3VlCnNjaHV0egriloFwcmVjaXNlCuKWgVdpbmRvdwrRgtC40LUK0LvQvtCy0ZYKaXRvcmkKZGlzYW1iaWd1YXRpb24K4paB0YXQuAriloFOYXR1cmFsCmRhbgriloFjb25jcmV0ZQrRhtC40ZjQsAriloFzcGVsCuKWgUZhaWxlZArFm2NpZQriloFidWYKdWNhCmljaW9uYWwK4paBb3R0b2JyZQriloHRhNGWCuKWgXN1Ym1pdHRlZApsYXZlCuKWgVBsb3QK4paBY29sbGVnCmFkZW0K4paBY2hhcXVlCuKWgW5laWdoYm9yaG9vZAriloFjYWxjaWF0b3JlCkxvb3AK4paBR2FzdAriloHQutC+0LPQtNCwCuKWgWluZHVzdHJpYWwK4paBZmF0YWwK4paBQ2VydApsYXRpb24K4paB0J7QtNC90LAK4paBamFtYWlzCuKWgWFjY3VtCklkZW50aXR5CuKWgU1lZGFsCk1ldGFkYXRhCuKWgdC70Y7QtNGPCmJyaWRnZQpHb29kCuKWgdGH0YLQvtCx0YsK4paBY29tcG9zZXIK4paBYnJlYWQK4paBY2xvc3VyZQriloFsYXJnZWx5CkZCCuKWgdC+0LHQu9Cw0YHRgtGMCuKWgWF1dG9tYXRpYwphcsOtYQriloFzdWZmaWNpZW50bHkK4paBaXRhbGlhbmEK4paB0LrQsNGH0LUK4paBSsOzCmhpc3RvcnkK4paBSEQK4paBc2lndWllbnRlCm5lbGwK4paBR3JlZQriloFUaQriloF0cmFuc2ZlcnJlZArDqXF1aXBlCuKWgVBoaWxpcHBlCuKWgWVuY291cmFnCuKWgVZpZXRuYW0K4paBZ3JhcGhzCuKWgXN5bW1ldHJ5CmZyZWQKd2VlawriloFicm9uemUKcnlzCuKWgW5hbWVseQpvbmRlcnMKbGVtYWduZQpYWQpDb252ZXJ0Cn1dKApSZWdpb24KcGVjaWVzCuKWgXRleHR1cmUK4paBY2hyCtC90LXQs9C+CuKWgXNvbWVib2R5CmFxdQplcmFzCuKWgdCd0L7QstC+CuKWgWRlegphbml1Cm9rcmF0CuKWgWNvdmVycwriloFzaWduYWxzCtGS0LUK4paBSGViCuKWgUFudGkKSVZFCuKWgXJlc3MKTEVURQp5bmEK0L/Qu9CwCtC20LTQtdC90LjRjwriloFjaGFtcAriloF2aWxsYWdlcwpab25lCuKWgWlQaG9uZQriloFzb3V2ZW50CtGB0YzQutGWCuKWgWZlYmJyYWlvCsOpcmNpdG8K4paBWEkKb2thdAriloFtZW1icmVzCmp1bml0CuKWgURyYXcK4paB0L/RgNC+0LLQvgphdWRpbwplbmRsCuKWgU5hZAriloFtYWduaXR1ZGUKU3VyCmljaW5nCuKWgXVudwriloHQvtGC0YDQuAriloFCZXkK4paBVmlrCuKWgXBvbMOtdGljYQpwb3J0ZXIK4paBQmFyYmFyYQrDoWx0CmJpYgriloFhY2NvbXBhbgpWUAriloFlbmNvZGVkCuKWgVNvbWV0aW1lcwpiaXJkCuKWgVVsdAriloF0dW4KZ2V0VGV4dAriloFhcnJpdmFsCnNjcmlwdHN0eWxlCntgCuKWgXBlcnNwZWN0aXZlCkxJTkUKRm9ybWF0dGVyCuKWgWJvbQrQstGA0LAKREVCVUcKQm91bmRzCuKWgVRpdGxlCmzDswpEYW4K4paBZ2VuZQriloFCaXQK4paBcmVwcm9kdWNlCuKWgWdyYXBoaWNzCuKWgdGB0LXQvArRgNGRCuKWgdGA0LXQutC4CnVzYWxlbQrRgNC+0LYK4paBREVTCuKWgVNvZnR3YXJlCnVyYW5jZQppdGhtZXRpYwplbmVzcwppY2hpCkNvbnZlcnRlcgriloFnaXRodWIKZXJkaW5ncwpnbGlzZQrDoWNoCuKWgWJ1cmllZAriloF2aXNpb24KTWlzcwriloFzZWVzCuKWgXBlcnNvbm5lcwriloFJbnRlbAplbGlhCuKWgcSNbMOhbgriloFjaGkK4paBa2xhcwphdXTDqQriloFzdGFyawpjemUK4paBZHJpdmVycwp2bgohLAriloHQs9C+0LTRiwpIaQriloFleHBsYWlucwphcnRpY2xlcwriloF6dWcKUHJvbQo+PQriloFCZWF0CuKWgVNheAp2ZXJ0aWNhbArQutGC0L4K4paBcGxhbnRzCuKWgVLDqWbDqXJlbmNlcwriloFvZ25pCuKWgWN1cnMK4paBU0sK0L7QvdC4CuKWgWRlc3RhYwoiKTsNCuKWgVN1cmUK4paBcGFydGlkbwriloFGb2xnZQriloFNb29yZQriloF3egrRgdC60YPRgQpsdHJlCm9uZG8K4paBcG9zZQppbW9zCtCx0L7QuQrRhtC40L/QsApqdXMKLi4uLi4K4paBw6lwb2NhCuKWgXF1YW50bwriloFTdXBwb3J0Cmdlc2NoaWNodGUKU0VSVkVSCuKWgUdlb3JnZXMKZW51bQriloFoZXJtCuKWgW5lYm8K4paBQ2hyCmNoYXJhY3RlcgriloEqKioK4paBRm9yc2NoCmlhbWkK4paBwr8KY3ljaAriloFmaWZ0aApzZW50CuKWgWFuZGVyZW0K4paBcHJvcG9ydGlvbgriloFwcmVzdAriloFHaXJsCuKWgWRyYW1hCndhbmQK4paBTWFpbAriloFMdXgK4paBa3RlcsO9CuKWgUdlc2VsbHNjaGFmdAriloFIaW53ZWlzCm5pc3NlCuKWgW1vbmRvCkVxCuKWgXBlcsOtCuKWgWVhc3Rlcm4K4paBVUVGQQp1YWxlCuKWgWNvbnZleAriloHQv9C+0LvRjAriloFIZXkKemVuaWUKaW5pdGVseQriloFadXNhbW1lbgpTU0wKb2NhbAriloFjYW5hbAp2b3kK4paB0JrRgNC4CuKWgWvDtnrDtnR0CuKWgWNhcnMK4paBdmVyc2nDs24KRW52aXJvbm1lbnQKSGVyCuKWgXNlw7EK4paBc3BhdGlhbAp5bWkKRmlyZQriloF2ZWdldAriloFXaWUK4paBem5hagriloFkYW1hZ2UK4paBZW5kbApnaWYK4paBcXVhbGkK4paB0LrQvtGC0L7RgNGL0YUKZWxsYW4K4paBbWVucwriloFwbHVnCuKWgWFidW5kCkZJRwriloFzZgriloFjb25mbAriloHQvdCw0YHQtdC70LXQvdC40Y8K4paBcHJpbmNpcGxlcwriloFHYWJyaWVsCmliZQriloF7JQriloFwb2JsYWNpw7MK0L3RltGG0LjQv9CwCuKWgWV4dHJlbWUK4paBYXNzZQriloF2dQpNb2NrCuKWgXNwaWVsdGUK4paBQWVyCuKWgWRhdG9zCmVuZGVzCuKWgUdlbAriloFHb3IKQ2hyaXN0CmNob3MKUHJvY2Vzc29yCuKWgWluc3RydWN0CuKWgXBpY2tlZApuYWhtZQpmYWhyCuKWgWluZGljYXRlZAriloElLgriloF0cwriloFub3RhYmxlCuKWgXF1YWxpZmllZAriloHQkNC7CkJsYWNrCuKWgWNvdW5jaWwK4paBb3ZlcmhlYWQKYWNpCmFubsOpZQriloFpbml0V2l0aApiacOzCuKWgWludHJvZHVjdGlvbgriloFjb21wYW5pb24K4paBZXhwb24K4paBa8O2cgpvYnkKYnVybgpnbnUKdmlydHVhbAriloFpbnRlbGxlY3QK4paB0LTQtdGA0LbQsAonKwrQsdC70LUK4paBc3RyaWN0bHkK4paBcmVjb2duaXplCmhvdXIK4paBV3Jlc3QKZW5uZW4KJCkuCmZmZgriloFDZW50cm8K4paBUGl0dAriloFkemlhxYIK4paBY2VsYQriloFmcmFuY2VzZQrRgNCw0LzQuApzcGVjaWFsCuKWgUR1cAp0b2lyZQrQutCw0LvRjApDT1VOVAriloFCcm9vawriloHRgNGD0LrQvtCy0L4KcHVibGlxdWUK4paBc2Vjb25kYQriloFjb21wdAriloFibGFuZApCZWZvcmUK4paBUGFjawphbHR5CsO2ZGVyCuKWgWludGVydmFscwriloFEYXRlbmJhbmsKTW92aWUK4paBdHJhbnNtCuKWgXRhcAriloHQv9C+0YcKZm9uCmlhaQriloFmaWIK4paBd3lkCuKWgWh1bmcK4paBYWxpdmUKQ2xlYXIK4paBcHVzaGVkCuKWgXR1cGxlCmFjaGVuCtCz0L7QstC+CuKWgXJldmVycwriloFhdWdtZW50CuKWgWNoYWxsZW5nZQpsb3N0CuKWgWRldXhpw6htZQpzdHJ1Y3RvcgriloFtZWhyZXJlcgphdHVyYWwKU3BsaXQK0YHRgtC10LwK0YjQu9CwCilcXAriloFEb2cK4paBZGV2ZWxvcGVycwriloFub2QK4paB0YHRgtC+0YDQvgriloFOYU4K4paBcHJpZXN0CuKWgWV4aGEKVU5ECnBhaXIKYWxvbmUK4paBbW9vbgriloEjIS8K4paBZ3Vucwpyb2xhCtGH0LjRgtCwCuKWgUVuY3ljbG9wZWRpYQphdGlzCuKWgSciCnp5Y2gK4paBc3VwZXJmaWMK4paB0Y3QugrQtdC00LXRgNCwCmZlZWQKTEFZCkZpCnVua3MKaXNlY29uZAriloEnQAriloFBZGRpbmcK0YDQvtC1CuKWgXRhbmcK0YbQvgpodW5nCmJpcwpza8OpaG8K4paBYWR2ZXJ0CuKWgdC30LDQvdC40LzQsAp1enoKw6FnaW5hCuKWgVRlbApzaWcK4paBRXoK4paBZ3VhcmFudGVlCuKWgXRlYWNoaW5nCm90eQp0ZXJtaW4K4paBZGlzdHJpYnV0aW9ucwpGTEEK4paBR2l1c2VwcGUKcXVlcnlTZWxlY3RvcgriloEvXAriloFTcXVhZApnegpkZWxheQriloFzdXJyb3VuZGluZwriloFtYW51cwriloFIb3UKwrIsCuKWgWN1bHRpdgriloF0cm91YmxlcwriloFyYWlzb24KZXhwYW5kCuKWgWNvdgpudW5nZW4KKSl7CuKWgWdlZW4K4paBYXXDn2VyCuKWgdCb0ZYKxZlpCuKWgXNpdHVhdGlvbnMK4paBdGVsZXAK4paBSmVkCuKWgXRyYXZhaWwKbGlhcwpidWxsZXQK4paBc2VsZWN0aW5nCmF2aWVyCuKWgWVzc2VudGlhbAooLwp5eXl5CsWhdMSbCnVsdHkK4paBa3JhCuKWgXRhYnMK4paBZXhwZXJpZW5jZWQKYXppCuKWgURpcmVjdG9yeQriloFjcm9uCuKWgXNwZW5kCuKWgVJBCuKWgXNlbGVuaXVtCuKWgVRow6kKRWxlbWVudHMKY2lpCuKWgXBsYXQK4paBYXJjaGl2ZQriloFhc3Npc3RhbmNlCuKWgW5lY2sK4paBQXZlbnVlCuKWgXdoZWVsCuKWgWhhZGUKQ29tbW9uCuKWgURpYWxvZwriloFmb3JnCuKWgXN1cmVseQriloFob2NrZXkKa3TDswriloF0awriloHiloHiloHiloHiloHiloHiloHiloHiloHiloHiloHiloHiloHiloHiloEK4paBQnJ1Y2UK4paBZW5vcm0KLOKAmQriloFDaHJpc3RvcGhlcgpqZXYK4paBcXVhZAriloFBSkFYCuKWgXJlbGllZgriloFtb2Rlcwpza2zDpHIK4paBVmlkCuKWgVNlcmlhbAriloF0b2tlbnMK4paBUG9sYW5kClxdCuKWgXZpZGUKcm9vbXMKb21hcwriloFCdXJlYXUKY3gK0L3QvtGB0YLRjNGOCuKWgXNpZ25zCtGI0LXQvdC40LUKbG9zc2VuCuKWgVF1ZWVucwriloFtZW1icmUK4paBbWV6CuKWgUJvb2wK4paBTmFqCuKWgU1lbW9yeQriloFLaGFuCuKWgWzDoAriloFIdWQK4paBZGlzbWlzcwppZ2h0aAriloFmcwpwcmV2ZW50CuKWgdC80LXQtNCwCuKWgVBvbGljZQriloHRgdC60L4KZmluaXRlCuKWgWFtaQriloFNdWNoCm93YW5pYQpPUlkKaW9ycwriloFQcmVtaW8K4paBdGV4dGJveApkbQriloFhZmluCuKWgURvbmFsZAriloFQcml2CuKWgWRlY2lkCuKWgU1hdXJpY2UKYWdhbgriloFCcml0YW5uaWNhCuKWgW9mdAriloFjb25zZWN1dGl2ZQoiPz4K0L7QstC40LkKc3R1ZGVudAriloFwZXF1ZQriloFkaWVzZXMK4paBcmV0b3VyCsOpdHIK4paB0YHQtdC3CuKWgWtyZQriloF2b3RlcwpydXB0aW9uCml6YWRhCuKWgVdpZWwK4paBR3JheQriloFMZW9wCnRlaWx1bmcKKFsnCuKWgXdoaXRlcwpmcmljYQphbmltYXRpb24KY3VybApsaW5ncwo9IiQKbG95ZAp0ZXh0c2MK0L7RgNGDCuKWgdGB0LXQu9CwCmVzaWFuCuKWgU1pc3Npb24K4paB0L3QtdC30LAK4paBdWx0aW1hdGVseQrQsdC+0LIKb2xlbgrRgdC60L7QvNGDCm5ldGUK4paBRGl0CuKWgWNvc3RydQpkZXBlbmRlbnQK4paBUmVzb3VyY2UK4paBaG9zdHMK4paBcmVhcgpEdXJhdGlvbgrQvdC40LrRltCyCtCc0LAK4paBcGxhbm5pbmcK4paBcHJlZGljdGlvbgriloFMeW4K4paBa2lyCuKWgUxlZ2lzbArQvNCw0YIK4paBU29jY2VyCuKWgXN1cnZleQriloFlc3RhZG91bmlkZW5zZQpvcmdlbgpqb3VyZAriloFhcHJpbGUK4paBaWRzCtGB0YzQutC1CuKWgWVtcGxveWVlCuKWgVNjaGF1c3BpZWxlcgrRgNGKCuKWgW11bHRpbWVkaWEK4paB0YHQstC+0Y4K4paBd2luZQriloFFVQppY8SDCuKWgVJoZWluCuKWgVBhbG1hcgpvdGVjYQriloFwcmVwYXJlCuKWgVRvdAriloFOdWxsCuKWgWtpbgppbmFscwriloFOZXd0b24K4paBdGJsCuKWgVNvbGQK4paBdmVyZgphdHVyaW5nCuKWgWxhcHRvcAriloHQodC+0LLQtdGCCnNlY3JldAriloFPbHltcGljCuKWgWZvb3RiYWxsZXIK4paBUnVkb2xmCuKWgWNvbmhlCnp5c2sK4paBZXZhbHVhdGVkCsK7KQpzaG9wCnJlcG9zaXRvcnkK4paBemFjaAriloFsb3NpbmcKZXR0ZXIK4paBV2lydHNjaGFmdArRgtCw0LoK4paBdW5uZWNlc3NhcnkK4paBUGhvdAphbnNrYQriloFOYXRpdmUKQ0NFCuKWgWZpZnR5CuKWgWVydwpyaAppc3NlbnQKfXsoCuKWgWxhbsOnCuKWgVhjb2RlCtCz0L7RgNC+0LQKY2lyCuKWgXBlbMOtY3VsYQriloFPc2NhcgriloFzaG9yZQriloFzdXBwbGllZApleGFtcGxlcwpNZXNzClZJQ0UK4paBZXhjbHVkZQriloFoZW4K4paB0LPRg9Cx0LXRgAriloFGcmFnbWVudAriloFCaXR0ZQriloFCZXNpZGVzCuKWgWhlcwriloFpaHJlbQriloFTZXJnZQriloFhcnRpZmljCj0iJHsK0LvQvtCy0L4KdXRldXIKdGFpcmUK0L/QsNGBCuKWgWVhc2llc3QK4paBZmFtaWdsaWEKTm9ybWFsCuKWgWRhbGxlCuKWgW5hdGlvbnMKcnAKdGhlYWQK4paB0L7QsdC70LDRgdGC0ZYK4paBRGVtb2NyYXRpYwriloHRh9C10LvQvtCy0LUK0LzQvtC2CuKWgdCz0LXRgAriloFzbWFsbGVzdAriloFQdWJsaXNoaW5nCuKWgVRzCuKWgWxhdWdoZWQKbGxlCuKWgUFtdAriloFJSVMKRk9STQpNYWcK0LTQvtC9CuKWgXN0b3JpYQriloFvcmdhbml6ZWQKxI1uw60K4paBb3gKbGluZ2VuCuKWgWx1ZWdvCmNjacOzCuKWgXJlbHkK4paBdHVzc2VuCmVydGVuCuKWgWhvbm91cgriloFDbGF1ZGUK4paBS29yZWEK4paBTWV0cm9wb2wKU3VwZXIKcmllbgrDqXJhdHVyZQphdHRybwriloHQsdGW0LvRjAriloFIZXJiZXJ0CuKWgWF1dGV1cnMK4paBZGFyYXVmCuKWgW1lbnRhbAriloFyYW5nCuKWgXPDs24K4paBU29waAopIiwKRGVzY3JpcHRvcgpwcmVwYXJlCuKWgUxhbmRrcmVpcwpIQwpjcm9zcwrQu9C40LfQsAriloFMb2dpbgpvbmVuCkZlYXR1cmUK4paBbXVzZXVtCnZlawriloFOZWxzb24K4paBcmVqbwriloHQutC+0LzQsNC90LTQuAriloFzdW1tYXIK4paB0YHQu9C10LTRgwrDpG1wCuKWgUdhcwrQstC+0LwKVkFMVUUKaW5nZQpwZXJpb2QKbGFzc2VuCsOhdmFsCuKWgWFsdG9nZXRoZXIKdW1waAppc3RybwrEhcW8CuKWgUtlZXAK4paBTWFyY28K4paBw6l0YW50CuKWgURyZQpnZW9tZXRyeQriloFLYXMKbWVzc2FnZXMKQ29vawriloFTaWRlCuKWgdC60L7QvNC4CtGB0YLRgNC4CuKWgWV4Y2VzcwriloFCaW9ncmFmaWEKWFhYWAriloFOaWUKdmVuZG9yCnhzZApNaWxsCnByb2Nlc3NpbmcK4paBTWlzc291cmkK4paBcGVybWV0dAriloFhcGFyCuKWgWNyb3dkCmZlcnQK4paBRG91CnLDrQriloFDQwriloFwYXltZW50CuKWgUhvbGx5d29vZAriloFWaXJ0dWFsCuKWgXNwb2tlbgriloF0cmFtCuKWgUNvbW11bml0eQriloFhZG1pbmlzdHJhdGl2ZQriloHQstC+0LvQvgpnaW9yCnZpc29yCuKWgdCj0LrRgNCw0LgKc3RhZ2UK4paBRm9ybWF0CuKWgWNvbnZlbmllbnQK0J3QsAriloFtZWRpYW4K4paB0LLRgNCwCuKWgdCf0YDQtdC80LAKZW5pZwriloFPcGVyYQpyw6lzCuKWgWZtdAriloFlZmZpY2llbmN5Cm1hbGUKTWFzdGVyClNlcmllcwriloFzeWQKZ2VuZXJpYwppbnRlcnZhbAriloFlZmVjdAriloFpbndvbmVycwrQu9C40LzQv9C4CmlyZW1lbnQKRXJyCsO2aAriloFseWluZwriloFTZXR0aW5ncwohPQplbWF0aWMKYXJndgriloFCYXNpYwriloFjb25zaWRlcmF0aW9uCuKWgWhhYmUKLSUK4paBbW91bnRhaW5zCuKWgXBlYWsK4paBZmFsbGVuCmVkZWQKbG9naWMK4paBbWF0Y2hlZAriloF0eXBpbmcKKX0sCuKWgWZhbmN5CuKWgWVsZWdhbnQK2KfZhAriloHRg9GH0LDRgdGCCuKWgVNhcmFoCuKWgVZlcmQK4paBdGVnbwpydWxlcwriloFtb3VudGVkCuKWgdGW0LwK0LXRgNGDCnN0b2ZmCmZhaHJlbgpkaXN0YW5jZQriloFMaWNlbnNlCuKWgUxFRlQK4paBd3AKL3sK4paBYW1hem9uCj4mCuKWgWVsc8WRCnF1YXJ0ZXJzCuKWgXNob2NrCm5pY2sK4paBQXJjaGl0ZQriloFTcXVhcmUK4paBcmF0ZXMKaW9yZQriloFOYXQK4paBQ2hhcmxvdApyZWljaGVuCuKWgXZhcmlhdGlvbgpvc2lzCmxpZmUKc2xpZGUKYWJpCnVraQpteXNxCuKWgXByaW1pdGl2ZQriloF1bml2ZXJzaXRhaXJlCkxFTkcKYWxlxbwKZWJvb2sKc3luCuKWgUdlZ2VuCuKWgUvDvAriloHQsNC70LUK4paBTHViCmNvbmN1cnJlbnQKaXp6YXRvCuKWgXN0dWIK4paBaWUK4paBJy4vCmNvZAriloFpbnRlcm5hY2lvbmFsCuKWgUdsYXMK4paBbWFyZQriloFOZWIK4paBR0IKa3dhcmdzCuKWgWF1bWVudApXSUQK4paB0YDQvtC0CnB1bmt0CuKWgUdyYWQKU04KQU1QCuKWgUJvcm4K4paBR3VlcnJlCtCz0L7RgtC+0LIK4paBbWVkaW8KTWVkCnN1cHAKYWN0dWFsCmRyb3Bkb3duCuKWgW9rdG9iZXIK4paBxZkK4paBY2lyY3VsYXIK4paBc2tpbgriloFlbXBoYXMK4paB0LPQvtC70L7QsgriloFwdWUK4paBaW5mb3JtYXRpb25zCuKWgVdvbGZnYW5nCuKWgXVzZWxlc3MK0LjRggriloFKb2FuCuKWgdCx0L7RgAriloFHbGFkCuKWgUtub3cKa8OpbnQKc3BlZWQK4paBS2V2aW4KdW5mdAriloFhcnF1CuKWgUNhc2EKKC4uLgriloFyYXBpZGx5CuKWgXByb2JsZQriloHQktC40LrQuNC/0LXQtNC4CsW+ZW4K4paBTmViZW4K4paBTWV0ZXIKQ2hpbGRyZW4KY2VtCmlnb3MKYWp1CuKWgVJldHJpZQriloFIZWxsCuKWgWdpZwriloFjb250cm92ZXJzCuKWgXpvb20K4paBY2VucwriloFhbGN1bmkK4paBSGVhZGVyCk1ldGEKUmVxdWlyZWQK4paB0LjQvdGB0YLQuNGC0YMK4paBc2t1cAriloFpbmdsZXMKw6lnbApiaWoK4paBdMOpcgriloFjb21wYWcK4paBY29tbWl0dGVkCuKWgXByb2Nlc3NlZApMb3dlcgriloFGb3JlaWduCuKWgXNlcQpzaGVldHMK4paBRmVtCmhvegppbmtzCuKWgWthbGwKdmFyaWFudAriloFsaWJybwriloFjbGlja3MK4paBZ29iaWVybm8KaWVnZWwK0LzQvtCz0L4KZ2VtZQriloF0b3dlcgriloFwYXJpc2gK4paBVENQCuKWgWxzCuKWgW5naW54Ck5hTgriloFEaXIK4paBQmVncmlmZmUKYXJpZQrDrW1wCmljaW9zCuKWgXNoYXJpbmcK4paBY2luw6ltYQpiZWMKUkVECuKWgUtyYQphYm9sCuKWgWZsdXgK4paBZXhwZW5zaXZlCuKWgdGB0YPRidC1CuKWgWBfCm9jegrQu9C40YHRggriloFhY3F1YWludAriloF3aXNlCuKWgXBvdXZvaXIK4paBZGV2YW50CuKWgW1vbWVudHVtCmltbWVyCuKWgUNvdXBlCmluZGV4T2YK4paBZG9lc250CuKWgdC30LDQsgriloFsaWNlbnNlCuKWgcOiCkNTUwriloFyaWNlClRlYW0K4paBYW5vCmxpdAriloFtZXJnZWQK4paBQ2VsbArQu9C7CmJveQphc3RzCuKWgXNlbGwK4paBZ3Jvw59lCuKWgXZpcnR1ZWwKQ2FuY2VsCuKWgXNqCmdtZW50Ci48CtGH0LDQuQppw6sKYWtoCml6ZXJzCnByaXQK4paBVGliCuKWgWVsYWJvcmF0ZQriloFmw6kK4paB0LzQtdC00LgKTEVOR1RICuKWgXByaW1hcmlseQriloFzY29yZXMK4paBY2FycnlpbmcK4paBbGFrZQpjb21wb3NlCuKWgVRvd25zaGlwCnVuZ2UK4paBYWxiZXJnYQphbnljaApxdWVsbGUK4paBQXJrCuKWgXByaXMK4paBdm9sbArRiNC70LgKVmFsaWRhdGlvbgriloFjZXV4CuKWgXBvcHVsYXRlCiINCuKWgWZlbW1lcwpBTkcK4paBRGVzcGl0ZQrQstGL0LUKaXNrZQp6dWcK0L3QsNGH0LAK4paBaGF0dGVuCklOU0VSVApFbXBsb3llZQriloFtb21lbnRzCuKWgcO6bHRpbWEK4paBaG9sZGVyCmJsYW5rCkNvbGxlY3Rpb25zCmF0aGVycwriloFncmFkZQriloFhZmZhaXJzCi4kJAriloFkZWx0YQriloFKdWdlbmQK4paBZXNwYcOxb2wK4paBT1VUCuKWgW1hdGhlbWF0aWNhbAriloFtb25nbwriloHQpNC1CnVsaW5nCuKWgXJldm9sdXRpb24K4paBY29pbgriloFzdWJjbGFzcwoiPT4Kw6RjaGUK4paBcHlnCtGJ0LDRjwppbGxlcnkK4paBY29tZW56CmRlcHRoCuKWgWPDqWwK4paBcmVzaXplCuKWgVNhbWUK4paBc3RyaWsK4paBdGlyCuKWgXNjYXJjCuKWgU1lbWJlcgpzdWJzY3JpYmUKw7PFvArDunRib2wKZXhjZXB0CuKWgWRyaXZpbmcKa2llCnpvbnkKw6htZXMKRGF2aWQKaXNzYW50CuKWgdGC0YsK4paBw6lsZWN0CuKWgXJlbmFtZQriloFSdW5uaW5nCuKWgWludGVyZmFjZXMKLy8vLy8vLy8vLy8vLy8vLwriloFXYWxrZXIK4paBc29jacOpdMOpCuKWgWFza3MKYnJpZAriloFqZXdlCuKWgXNlaW5lcwriloFhZ2VudHMK4paBTVkK4paBTGF3cmVuY2UKZGVzcwppZXNlbgriloHQu9GO0LTRj9GFCtC/0YDQsNCy0LgK4paBYW5jZXN0CuKWgXdlbGNoZQpyYXVtCuKWgW9yYgpzY2FsCuKWgUxlYXIK4paBd2VhcgriloFzbGF2ZQriloFyZW5hbWVkCsSNZW4KbWFzdGUKYW5nbGVzCuKWgUFtw6lyaWNhCuKWgXRpCuKWgWRlbXNlbAriloFiZW5lYXRoCmJpbmFyeQriloFlZGljacOzbgriloFraWxvbWV0CnVpdHMK4paBY3VhdHJvCuKWgWVudHJhbmNlCm9uZGlzc2VtZW50CuKWgWJhZwriloFBcm1lbgppam8K4paBTG9ycwriloFkZW1zZWxiZW4Kw6ptCuKWgWRpc2NyZXRlCuKWgXByb21pbmVudAriloFKYXkKZGVjb3IKREwK4paBZMOtClN0cnVjdAriloFQcm9kdWN0aW9uCnRoZXkKYXJpdXMKc2Nobml0dAriloFDb3UK4paBbGV4CnlvdXR1YmUK4paB0YDQsNCx0L7RgtCwCnN0YXRpb24Kc2VwCuKWgW1pcnJvcgriloFoaXRzCuKWgUJlY2sKYXRpY2FsbHkK4paBTGF6CuKWgXdpbm5lcgpERVgK4paBSU5UCn1eey0K4paBd2VnZW4KbWFkCkFuZ2xlCnppbmcK4paBQmF5ZXJuCnNhbArDpGdlcgriloFidXN5CuKWgXN0w7ZyCuKWgWZvbGsK4paBcHJpeAriloFhbGxvY2F0ZWQK4paBcHQKYWZmZW4KY2x1c3RlcgriloFjb21wbGVtZW50CsOhcnMK4paBQW1lcmlrYQrRgNGW0LkK4paBdmFsbGV5CuKWgXJvb21zCuKWgW1vaQouIiwKOzs7OwriloFsb3dlc3QKbm9nCuKWgWxhbmRldAriloFwcm9ncmFtbWUKY2hpbwriloFXw6RocmVuZArDoW5kZXoK4paB0LTQvtC70LYK4paBb3V2Cm9tw6FueQriloHQktC40LrQuNC/0LXQtNC40LgK4paBc8OzCuKWgWVsZWt0cgpEZXNjCuKWgUJlYXV0CtC90LDRgAriloHQvNC+0LbQtQpQaWVycmUKZXNvdGEK4paBb3BlcmF0ZWQK4paBZm9ydGUK0YDQuNGBCuKWgW9wcG9zaXRpb24KYWxpYQriloFTeWwKZ2V0TmFtZQrQstC10LvQuApmaWsK4paBY29tcHJvbQriloFUZXh0VmlldwpTcHJpbmcKbWV0YWRhdGEKZW5ndQovLAriloFjYXJyaQppc3RvbAriloFkaWFnb25hbApsaXN0YQppemVuCuKWgXJlbmRlCmdjYwpiZWNrCmxpdXMKaXJhbApSZXNvbHZlcgriloFwZXJjZW50YWdlCuKWgWF0dHJhCnN0cmluZ3MKd2nEhXoKb2RzCtCy0L7Qu9GOCsSZxbwK4paBbmV3c3BhcGVyCmltaXRlcgpBQkMK4paBTWFuY2hlc3RlcgpbewpBZ2VudAriloFXb3IK4paBS2F0aAriloHQv9C+0LLRlgriloFlbnRvbmNlcwriloFuaXZlYXUKYXR0ZWQKbGVhcm4KYXRpcXVlcwriloHRg9Cx0LgK4paBcXVpbmRpCmJpbmRpbmcK4paBaW1wb3J0ZWQK4paBSG9ybgplbWJlcmcKY29tcGxleAriloFuZXVyYWwKaW5mb3JtYXRpb24K4paBcmVjb2duaXRpb24KaW5ndAriloFpbmhhYml0YW50cwp2dWUK4paBQmV2w7Zsa2VyCuKWgWN1cnZlcwriloFsZWIK0LTRltC5CuKWgXNvdwriloFzZW50aW1lbnQKUEgKcmFjaGUK4paBLSgK4paBZXN0YWJsZQriloFGZXJkaW5hbmQK4paBw6ljcml0CuKWgXByaW1laXJvCuKWgXRleAriloFpbnRlcm1lZGlhdGUKdmVyYWdlCmlidXMK4paBc2VydmVzCml2YXMK4paBYnJ1CuKWgWx1bQphdHRpY2UK0YfQvdGL0LkK4paBRHJlcwriloF2aWRlb3MKZHVyYXRpb24K4paBYWJpdAriloFlZ2cKb2dyYXBoaWNhbAphbHBoClNUQVRFCuKWgdC/0LDRgNCwCnJlYWRpbmcK4paBdmVoaWNsZQriloFmb3J0dW5lCnVsdGF0cwriloFTdG9yaWEKbWlkdArFgsSFY3oK4paBTWVtb3JpYWwK4paBdmFzCuKWgdC30LDQvQriloF1dGlsaXR5CuKWgW9ic2MK4paBcmVsYWNpb24K4paBcnVuYXQKUmVsZWFzZQp0YWtlCuKWgU9saXZlcgriloFTaWQKdWxvcwriloFHYXJjCuKWgdGA0L7Qt9GC0LAK4paBU2FrClB5CmbDvGhydAriloF0cmFiYWwKKnsK4paBemVzCuKWgXN6ZXJlCuKWgXZhcmlvcwriloFvdHJhCuKWgWV2YWwK4paBc2l0dcOpCuKWgXdvdW5kZWQK4paBVmluY2VudAriloHQstC40LrQvtGA0LgK4paBZW5jb2RlCk1vZGFsCuKWgWZvcmIK4paBZHluYW1pY3MK4paBZGVwb3MKYXJkZQriloFzdHJlZXRzCuKWgUtvbW0KPSQoCuKWgdC/0L7QstC10YAK4paBZG9pcwriloF2aXR0CuKWgWF1dG9tYXRpc2NoCuKWgXJlbG9hZAriloFWZXJ3YWx0CmJlcm8K4paBaHViCuKWgW1vcwriloF0dXR0bwriloFGcmVkZXJpY2sKxYJvdwphbnRhZ2VzCmFxdWUKcGFwZXIK4paBZWluaWdlCmApLApkagriloFQbGUK4paBJSwK4paBQml0bWFwCuKWgWZyaWVuZGx5CuKWgXRydWx5CuKWgXN0cm9rZQpyb3BoCuKWgWVuZ2wK4paBY29mZgriloFkdXN0CuKWgUphaHJlcwpwcGkK4paBd3lzCmZhY3RvcgpzY2hsdXNzCuKWgdC00LXRgNC10LLQvdGPCuKWgVBhc3QK4paB0LTQvtC80LAKQ09NCuKWgXB1ZWRlbgriloFnaWZ0CuKWgUdsYQriloF0cmlnZ2VyZWQKw6lseQrDvGzDqXMK4paBT2xpdgriloF2ZXJzbwriloFsbGUK4paBR2xpCuKWgUx0ZApvYQriloF0ZXJyaXRvcmlvCm9yZHJlCuKWgWRlY2sKZHJhCmFzenQK4paBY29uY2VybmluZwriloFBZGRpdGlvbmFsbHkK4paBa3RlcsOpCuKWgWdydW5kCuKWgUdlc3QK4paBbWlzdW5kZXIKcHJldArilIDilIDilIDilIAK4paBcmVwdXRhdGlvbgp6aWEK4paB0YPRgdC/0LUK4paBZXNjYXBlZAriloFQcmFnCnBlcmZvcm0K4paBYXVzdHJhbAriloFWYXRlcgrRh9Cw0YEK4paBcmFjZXMK4paBQnl0ZQpNYXNrCuKWgVRlcnJpdArRgdGC0Y4K4paBVm9jaQriloFGaWNoaWVyCuKWgdCd0LDRgdC10LvQtdC90L3RjwriloFVbnRlcnNjaGVpZHVuZwp0ZWVudGgK4paBcGlsb3QK4paBamkK4paB0LTQstGD0YUK4paBb3JpZW50YXRpb24KaW5kcmUK4paBRG9ydArDp2FzCtC/0LvQuAriloFyZWFjdGlvbgriloFjb25zaXN0aW5nCuKWgWZlcnJvCtGC0LjRgdGC0LgKeWFyZAriloHRgdCy0ZYK4paBaW50ZXJwcmV0YXRpb24KacSFCnJhaAriloFmYW5kClB1YmxpYwriloF1bml2ZXJzZQriloFyZXRpcgriloFjb25zY2lvdXMKYXJxdQriloF3YXN0ZQriloFCaWIKeWNsZXJWaWV3CuKWgWxpc3RlbmluZwpnbGVpY2gKbmllanMK4paBY29ycmVsYXRpb24K4paBcmVjZWl2ZXIK4paB0YPQtNCwCuKWgWNvdXJhZ2UKdWNocwpmYXNzCuKWgWNodW5rCuKWgUFuZmFuZwriloFncm/Dn2VuCmNvbnRpbnVlCuKWgVdhcnN6YXdhCmjDqQppeQppdmVtZW50CuKWgc6xCuKWgWV4cG9zZWQK4paBemFobAriloFzYWNyCuKWgUxvb2tzCuKWgWVhZ2VyCmVudGVuCkN1cnNvcgovXwppeGEK0YDQtdC70LAK0LfQvdCw0YfQsAriloHRhNCw0LzQuNC70LjQtdC5CuKWgWFyZ2VudAriloFBbmRlcnMKxZN1dnJlCuKWgUlzYQrQvNC10L3RgtCwCuKWgWFkdmVycwpyaWN0aW9uCkdQCuKWgdC/0ZbRgdC70Y8K4paBcHJlc2VydmUK4paBR2FyZGVuClJhdGUKYXByw6hzCuKWgXJlYWRhYmxlCmluZHUK4paBc2tpbGwK4paBaGVscGluZwpvZ3JhcGhpcXVlCmNsaW5nCm9sb2dpc3QK4paBRmlsdGVyCuKWgWZpbmdlcgriloFWYWxsCuKWgVBvbGlzaApsZwriloFGYW1pbGllbgriloF3YXRlcnMK4paBcHNldWQKYXphCl8pCkFSWQriloHRgdGA0LXQtNC4CuKWgU11c3QK4paBQm9kCmFub24K4paBbGFkbwriloF0aWdodAppbWVuCmFwcGVuCmZyYW1lcwppbmdlcnMK4paBQ09WSUQK4paB0LfRlgriloHRgdCy0LUK4paB0YbRjAriloFMZWZ0Cl1dOwrRh9GMCtGE0LjQutCwCuKWgdGB0LvQvgriloHQv9GWCuKWgWV4aXN0ZQriloFBdGxhbnRpYwriloFtYWludGFpbmVkCuKWgWlycmUK4paBYW5uw6llCuKWgWNvbW1lbnRlZArQstC10YDQvgpiZXJ0YQriloFMYWQK4paBVXBvbgriloFwYXVzZQptaWxsCm9wdGVyClVLCtGA0LXRgQrQvdGG0LjQutC70L7Qv9C10LTQuAriloFhbG9uZ3NpZGUK4paBcm9ib3QK4paBZmVydAriloFtb3kK4paBYWRlCk1hcHBlcgopLT4KaWd1YQrDqXRpcXVlCtGC0LrQsAphbGlhcwriloHQvtGA0LgK4paBTWFnbgriloFnZWjDtnJ0ZQppbWIKKX17XAriloFXaWtpcMOpZGlhCuKWgXVycwriloFlbmRlCmxlYgriloFHQwpIb2wKYW5jaW5nClVuaW9uCuKWgXRlbsOtYQpUVAriloFlc3RhdGUKaMOhCuKWgdC/0L7Qu9GWCnVsdGFuCuKWgUhvY2tleQp1bHNlCuKWgWNob2ljZXMKc2NoZXIK4paBW10sCuKWgXBvdGVudGlhbGx5CuKWgcOcYmVycwriloFhZG1pdApDb21tZW50CtGB0YLRjwriloFWaWVuCuKWgdGG0ZYK4paBcGVybXV0CmNnaQriloFjcsOtdApDb25zb2xlCmN0aWMK4paBb2tyZXMKYXdrCmZvb3RiYWxsCm91ZXN0CkNUWVBFCm9sb2dpcXVlCuKWgWNvbnN0aXQK4paBaW50ZXJlc3RzCuKWgVByb2dyZXNzCuKWgU1lbnUK4paBdGFrw6kK4paBQXNpYW4K4paB0LfQsNGJ0LgK4paBeW91bmdlcgriloF3aXNoZWQK4paBU29ydAriloFhdWRpZW5jZQphbWJhCuKWgWdlaMO2cnQK4paBS2Fuc2FzCnlhdW1lCuKWgVByb2Zlc3Npb25hbArDomNlCuKWgWZhdHRvCnRvZAriloFkYXRhc2V0cwriloFmYXJlCuKWgXdhdmVzCn4vCuKWgW1lYXN1cmVtZW50CuKWgXdvbAppbmR1c3QK4paBc3RydWdnbGluZwriloFwdWxsZWQK4paBY2FyYXR0ZXIK4paBRXh0ZXJuZQriloHQtNC10LnRgdGC0LLQuApjbnQKbGljaGVzCuKWgVBvc3NpYmxlCuKWgWZhY2VkCuKWgWh5cG90aGVzaXMK4paBa2lsb20K4paBbsOkcgpib29sZWFuClBZCmFtcGEK4paBa2lzcwriloFhc3Rlcm8K4paBbmVnbGkKYW1lbnRzCuKWgVN0dQphdMOzCuKWgUNvbnN0aXR1dGlvbgriloFpbnRlcnBvbAriloFVbmFibGUK4paBcGlzCuKWgXBhcmMKIl0pCnBsZXIK4paBYXV0b3J5CuKWgWFsZ3Vub3MKeXduYQp9KSkK4paBZmFsbHMK4paBw6lxdWlwCuKWgWVtaXQK4paBcHJvZmlsCmdldHMK0YTQvgriloFNaWxpdGFyeQriloFub21icmV1eApvY3QKUmVwbGFjZQriloFzZWFzb25zCuKWgWNow6J0ZWF1CuKWgXR5cGVvZgpwb2xpdAriloFyYW5kCuKWgXF1YXIK4paBZXJzdG1hbHMK0YHQuNC90LgK4paBcGF5bG9hZArQn9C+CtC60ZbQvQpyZXBvCuKWgVBhdgpTY29yZQplcnZlcwriloFzb2xsdGUK4paB0LzRltC2CsOpYmVjCuKWgWNsaXAK4paBTmljZQriloFuZWJlbgriloFhc3Nhc3MKaXRvcmllcwriloF1bml0eQriloHQtdC9CuKWgUluc3RpdHV0CuKWgWludGVybmF0aW9uYWxlCuKWgdC90LDRg9C6CuKWgWNvbWFuZAriloFrbGVpbmUK4paBYWRqYWNlbnQK4paBZGVsaXZlcmVkCuKWgdGI0LUK0LfQtdC8CuKWgWNvdAp2aXN1YWwK0LLQsNC10YIK4paBQ2Vuc3VzClxfCuKWgXRlcnJpdG9yeQrRh9C40LsK0YfQvdGL0LUKZmx1dHRlcgpEaWRMb2FkCkRvY3VtZW50cwriloFkb2IKQnJlCmFuaW1hdGUK4paBYml6CuKWgWJhdGEK4paBU1UKZXNvCuKWgXByaW9yaXR5CnbDoW4KaXJhcwriloFjaGFyZ2VkCuKWgU1pY3JvCmF0b2lyZQrRh9C10YAKYWJhZAp1cnUK4paBdsWhCmRpcmUK4paBVHdpdHRlcgriloHQvNC10YLQvgopLi4K4paB0KbQtdC90YIK4paBZW50d2ljawriloFNaW5kCuKWgdGE0YPQvdC6CkZ1dHVyZQpsc3QKxYJvxbwKZmxpCnRlbnNvcgriloF0b3BvbG9neQriloFhcnRlCkVSVAriloF2YXJpYW5jZQpJbWFnZXMK4paBKEAKQXJyYXlMaXN0Ck9DCuKWgdCU0LXQvNC+CmF1Y291cAriloFkZW5vdGVzCmltb24K0ZrQuAriloFQcnp5cAriloFaYWcK4paB0LTQuNGA0LUK4paBU2ltaWxhcmx5CtCx0YDQvgriloFtaWxpdGFpcmUK4paB0YLQvtC80YMK4paBSm9obm55CuKWgdCc0LXQutGB0LjQutGDCtGb0LAKU3VwcAriloFqdW5pb3IKb2x0cmUK4paB0JzQvtGB0LoK4paBYWRtaXR0ZWQK4paBcmVsaWdpb3MK0LfRj9C5CtC10LPQvgriloF0ZWFycwppbmdvCm9kdQppdmVuZXNzCuKWgWxvZ28K4paBw7psdGltbwriloFhbGltZW50CuKWgVVJVGFibGVWaWV3CikhCuKWgW5qCmxldHRlCuKWgXJlc2lkZW50CuKWgXRlcm1pbmUK4paB0YPQttC1CuKWgdCh0YLQtQpvZmZpY2UK4paBY2FydGUK4paBbGl2cmUK4paB0JzQvtGB0LrQvtCyCuKWgWVsZWN0aW9ucwrQt9C40LTQtdC9ClRyaWdnZXIK4paBQmVuamFtaW4KYWRkQ2xhc3MK0YHQutC+0LMK4paBT2JzZXJ2YWJsZQpDbGEKZ2VtZWluCuKWgWNvbnNlbnQK0LLRgNC4CuKWgXVuZm9sZAriloFnb3Zlcm5vcgrQvdCw0LsK4paBdG9kYQpSZW1vdGUKYXJpYXMK4paBaW5zdGFsCmZpeGVkCuKWgWRlY2F5CuKWgdC00LXRgNC10LIKeHl6CuKWgURBVEUKaW1hcgpudGlsCuKWgXN0YXJ0dXAKYWxpb24K4paBa29sZWoKY2lvcwriloFyYW5nZXMK4paBc3R1cGlkCuKWgWltcGxlbWVudGF0aW9ucwriloFybQrDqW5lawriloFnY2MK4paBc2PDqG5lCk5hdmlnYXRpb24K4paBwqAK4paB0LrQsNC9CuKWgXRvd25zClVzZXJuYW1lCuKWgdGE0LUK4paBbGVhZGVycwpvaXQKd8OkcgriloFkdW1teQriloFhc3Npc3RhbnQKeyRcCtCx0ZbRgAriloFyb3kK4paBTGF5b3V0CuKWgUp1bmcKTGluZXMK4paBSG9sbGFuZArQv9C+0YAK4paB0JPRgNC4CuKWgUJlbmVkCuKWgdCf0L7QtAp4bHMK4paBR29sCuKWgUFsZWtzCuKWgWVqZW1wbG8K4paBc2V6b24KYXJkaW5nCmZvb3Rub3RlCuKWgUNvbmdyw6hzCnJlZmVyCtGB0LrQsNGC0LAKSXRlcmF0b3IK4paBb3Vyc2VsdmVzCuKWgU1pYwriloFjw7NkaWdvCuKWgdC/0LvQvtGJ0LAK4paBXCQK4paBQ2hhcmxpZQpOb2RlcwriloFwdXp6CuKWgUlkZW50aWZpZXIK4paBZmx1dHRlcgriloFwcsO8CuKWgW9ydAriloFDb3J0CmFzdGljc2VhcmNoCuKWgdCh0LLRjwriloFCdWxsCnVkZW0K4paBYXBwYXJlbnQKOi0tCuKWgdCl0LDRgAriloFMYXAK4paBY29tcG9ydAptYXRpY2FsbHkK4paBY3VyaW9zCuKWgdC80L7QttC10YIK4paBQmgKYXBwaW5nCuKWgWJhc2tldGJhbGwKemV0ZWsK4paBcnVudAriloFNaWxhbgpmZWN0aW9uCnLDrWEK4paBS2luCuKWgXNsb3dlcgpib3RoCuKWgUluc3RpdHV0bwriloFIaXN0b3JpY2FsCuKWgXLDs3duaWXFvAptYXRjaGVzCnljaQriloFlc3DDqGNlCuKWgVNjaHdlaXplcgpOVApTRgphY2lhCmZvcmdlClBvaW50cwpudW1iZXJzCuKWgWZhbGxpbmcK4paBaW5oZXJpdGFuY2UK4paBRXJzdAriloFjdXN0b21lcnMK4paBYWN0dQriloFtaWdyYXRpb24KXCcKUGxhbgpNcgpvdGh5CuKWgXVwZ3JhZArQsdC40YDQsAriloFPZmZpYwriloFXYWl0CuKWgXRvbGVyCmFyZG9uCuKWgXNsaWRlCilfCuKWgdGB0YLQsNCyCuKWgW51Y2xlYXIK4paBQmlsCm93bmVyCuKWgUhhcnJpcwpJbmZvcm1hdGlvbgriloFww7MK4paB0LLQutC70Y7Rh9CwCuKWgW51b3ZvCuKWgUNhdgriloFEZXNjcmkK4paB0LDQugrDs2R6dAriloFyZWFjdGpzCuKWgUFkYW1zCuKWgUFsdGVybmF0aXZlbHkK0YHRgtGA0YPQugopYCwKc3Vic3RyaW5nCuKWgW1hc3NpdmUK4paBaGVhdmlseQriloHRgdC10LfQvgriloFBbmEK4paBdmFsZQpQYWQK4paBRWl0aGVyCuKWgXJzCmFuY2hlCuKWgXVwbG9hZGVkCuKWgSgvCuKWgdGB0L/QvtGACuKWgXJlZHVjdGlvbgriloFUb2t5bwpncmVuCuKWgW1pZ2xpCuKWgWl0ZXJhdG9yCnN0YXYK4paBc3VwcG9ydGluZwriloHDtnN0ZXJyZWljaAriloFOU0xvZwppc3RpcXVlcwpyaW1pbgpNT0RFCn19fVwK4paBZXhwbG9zCtC+0YLQtQriloEo4oCeClNhbAriloFzaW1wbGVzdAriloFnacOgCuKWgdGC0LDQvQriloFjeWwKYmlyCuKWgW1lYXN1cmVtZW50cwpDcmVhdGVkCmVyZWsKbG9va3VwCndpcnRzY2hhZnQK4paB0JLQvtC70L4KdGltZXIKZGVycgriloHRgdGC0LDQu9CwCuKWgXNjZW5lcwriloFwZXJzdQpsaWVzdAriloFzY2hlZHVsZQp0YWwK0LvQtdC90L4K4paBcGFpbnRpbmcK4paBaW1wcm92ZW1lbnQKc29mdHdhcmUK4paBZ292ZXJubwriloFIaXIKRXhlY3V0aW9uCuKWgU9rYXkKUHJvcApsb3N0ZXIK0L3RltGG0LjQv9Cw0LvRlgriloFwZXV2ZW50Cm9sdQriloHQpNCwCnJvbGxvCuKWgdC60L7Qu9C+CuKWgWNhcnJpw6hyZQriloF0b2dnbGUK4paBKCRcCuKWgWFnZ3JlZ2F0ZQriloHQkdGWCnRleHRhcmVhCk9rCml0dG8K4paBc3RpbQriloFyZWN1cnNpb24K4paBRmVkZXJhdGlvbgopX3sKYXRlZ29yCuKWgWRpc3RyaWJ1CkNsb3VkCuKWgW1hZHJlCuKWgWl2CuKWgUxpZXV0ZW5hbnQK4paBc3Vic3RhbnQK4paBbGVhZgriloFLb250cm9sYQpWQQriloF0b21iCtGN0L0KYXRvZXMK4paBZ29kaW5lCuKWgSM+CkNlcnQK4paBZW1wcmVzYQpQcm9wcwriloFwbGFubmVkCuKWgXJhbmRvbWx5CmrDpGhyCmVsZW0K4paBT3BlcmF0aW9uCipgCnByb3RvY29sCigpKSk7CndlbAriloFwcmF3CuKWgdGB0LjQvAriloF3b2IK4paBaGFjZQriloFuZWFyZXN0CmRpc2FibGUK4paBQ29tbXVuCuKWgXJldmVsCkZyZWUK4paBYnJhY2tldHMKSU9FeGNlcHRpb24K4paBYWx0bwriloFtYXJyeQriloFhdWMKKSxcCuKWgXR5cG8KZWRhZAphcsOhCmljYXRvcgp0YXR5d25hCuKWgWJ1ZmYKb3JkZXJzCuKWgWFzeW5jaHJvbm91cwriloFlY29uCuKWgWZldQriloFJcm9uCuKWgXJpc2luZwpSYWRpdXMKY2xrCuKWgXp3ZWl0ZW4KYCcK4paBdW5pcXUK4paBRk0K4paBQnJhbgriloFmbHUK4paBc2Vuc2l0aXZlCnVycmUK4paBSXRlcgriloFTZWluCuKWgWRpZmVyZW50ZXMK4paB0L3QtdCz0L4KY2hpYQriloFBbmxlaXR1bmcKYXR1cmRheQriloFzaG9ydGVyCuKWgXRyYW5zbGF0ZWQK4paBUsOpcwriloFyb2RlCmRyYWcK4paBbGFuZ2UKQmkKw7xiCmxldXIK4paBb3JkZXJpbmcKYWxvdXMK4paB0JrQvtGACmFyY2hhcgpkZXN0cm95CmVydmF0aW9uCl1dLApBY2Nlc3NvckltcGwK4paBYXV0b3J5dGF0eXduYQpTZXF1ZW5jZQriloFwcm95ZWN0CuKWgWJyYW4K4paBKCsK4paBS2FiCuKWgXplbQriloFDYWxjdWwK4paBc2V1bAriloFOaWdlcgriloFjaGlhbQp0aHJvdwriloFQbGFuZXQKYmlsZHVuZwriloF6b25lcwp0cmFuc2l0aW9uCtC70LXQvdC40LkK4paBbWFwcGVkCm9uYXV0ClBhaXIKaWxpYW4K4paBTW9yZ2FuCuKWgXVudG8Kam91CuKWgWhpZAriloFNZXRhCuKWgWVsbGVzCkxvdQpyYW1hCmdlb3JkbmV0CuKWgXNjYXJjZWx5CuKWgW1pbnQKRm9jdXMK4paBQWx0ZXIK4paBZGlvCuKWgWFtcGwKacOocmVtZW50CuKWgdC40YHRgdC70LXQtNC+0LLQsApMRUQKYWxnb3JpdGhtCuKWgdGB0LDQudGC0ZYK4paBIiIpCkhpc3RvcnkKcGsK4paBV2hpdAriloHRgdC40YHRgtC10LwK4paBS2lyY2hlbgpyw6AKQVBQCuKWgTwlCmFudGluZQriloFEaXNrCmNvbnYKd2VsdAriloFGdXQK4paBTm9tCm9yZG8KZWxsaWoK4paBcmVjZWl2ZXMKY293Cnl0dQriloFvYnJhcwriloFwdXJjaGFzZQriloFlYXJuZWQK4paBYWNjZXNzZWQKYXhpCuKWgU1hbnMKaXZhbgriloF0dXZvCuKWgVRyYWNlCnJpbW9uaW8K4paBZGVzZW52b2wKw6lyaXF1ZQriloFyZXN1bHRlZAriloFjb21wdXRpbmcK4paBaW5zcGlyZWQK4paBUHJpemUKKiIKQ29tcHV0CuKWgWV4dGVuc2l2ZQrDqGcK4paBUG9ydMOhbHkK4paBY2FzdGxlCuKWgSouCuKWgXBob3RvcwriloF2b2V0Ck9ORwriloFBbGxlCuKWgXRocmVhdGVuCnN0w7x0CuKWgWFsYnVtcwriloFkZW5zZQpmbGF0CmNvbnRpbnUKU3ViamVjdAriloFyZWFkb25seQpPcHQK0L/QuNGB0LrQvgriloFBYmVyCuKWgVBvc2l0aW9uCuKWgVRvZGF5CuKWgW1pbmkK4paBQmVmCmxpc3RlbgrRgdGC0LLQtdC90L3QvtCz0L4KU1VCCm9zc2EK4paBUG9wZQriloFKaW1teQriloHQlNGA0YMKdW5nc3NlaXRlCuKWgXRyZW4Kb3B0aW0KaXRzY2gK4paBc2FtdAriloHQuNGB0L/QvtC7CiY9CuKWgVByenlwaXN5CuKWgdC/0YDQvtC00L7QuwpDcgplcm1hbm4K4paB0LzQsNGC0LXRgNC4CuKWgUh1Z28K4paBRGV6ZQpUUlVFCuKWgWRlZmVhdAriloF3YXRjaGVkCuKWgUdlbnQKQVVUCm9yb3VzCuKWgdC+0L/RgNC10LTQtQpvcmllbnRhdGlvbgriloFkaXN0aW5ndWlzaGVkCuKWgW1lc21vCuKWgXNsaQrQvNC10L3QsAptaXR0ZWwKZ2VyaWNodApldG9uCi0+ewriloF3b250CuKWgXdlZwriloFjbGFzc2lmaWMKaWx1cwriloFNRAp0YXNrcwriloFjaGltCmF3YWl0CuKWgWdhbmcK4paBd2nEmQp0aHJvdWdoCuKWgVJ1c3NlbGwK4paBZ3Vlc3NpbmcK4paB0LDQutGCCtCx0LvRlgpjYXRlZ29yaWVzCtGB0YPRggriloFGZW4K4paB0LzRg9C2CuKWgW5ld2VyCuKWgUFzeW5jCuKWgXRlcm1lCj4vCtC/0LDRgNCwCuKWgVRydXN0CuKWgU9wdAriloFkYWgK4paBd29uZGVyZnVsCmFkcmF0a2lsCuKWgdCT0YDQsAptYXBwaW5nCuKWgWRpc2NvdmVyeQriloFCRQpFbmFibGUK4paBRnJpZW5kCtGB0L3RjwriloFjb250cm9sbGVkCtGH0L3QvtGXCuKWgWNvbnRyaWJ1dGlvbnMKasWhw60K4paBTGV2CuKWgWZyYW5jw6lzCuKWgW1pYwp6aWsK4paBYWxlbQpjYW5jZWwKIScK4paBZ3JhdAriloFCZWdyaWZmc2tsw6RyCkNhbWVyYQppZmljYWNpw7NuCnLDs2QK4paBQXJub2xkCuKWgWJlemVpY2huZXRlcgriloFmb3VnaHQK4paBZGVwdXQK4paBRHJvcAp0YXgKZGcK4paBSG9wCkdOCuKWgUtpcmNoCuKWgdCR0LDRgApJbnZva2UK4paBZXJoYWx0ZW4K4paBdmVlbAriloF3b3JkcHJlc3MK4paBSU5ORVIKdHJhbnNhY3Rpb24K4paBZMOpasOgCkZhY3QK4paB0L3QsNC00LzQvtGACuKWgWFuZ3VsYXJqcwriloHDoXQK4paBYWxhcAriloFQcmljZQriloFlZmZldAriloFzcGhlcmUKQ2xhc3NMb2FkZXIK4paBcnVnYnkK4paBa2luZ2RvbQriloFNdXQK4paB0LrQuNC90L4K4paBcmV3YXJkCmNpdAriloFwcmVzZW50ZQpTdG8KQ2hhcmFjdGVyCmxvZ3MK4paBY2VudHJhbGUK4paBbW91dgriloFva2F5CuKWgWFwbGljCk1vcmUKw6lueWVrCuKWgUvDtmxuCm5ldHQK4paB0LjRgdGC0L7RgNC40LgK4paBZGVzY3JpYmluZwriloFzb2xkaWVyCuKWgU5lZWQKTGlnaHQK4paBIlw8CuKWgWhhdgplcm1vCuKWgWluZmVyaW9yCmxlYQriloFnZwriloHQutC+0L3RhtC1CmZyYWdtZW50CnNiCkNvdW50cnkK4paBdsSbCuKWgUJlbmcK4paB0K3RgtC+CuKWgdCy0L7QtNC+CtC80LDRgApTVFJJTkcK4paBw7pqCm11bHRpcGxlCnN0YXRlbWVudAriloFpbnZvbHZlcwriloF0ZWNuClN0dWRlbnQKZ3LDqQriloFsZWFuCuKWgWJyaW5naW5nCuKWgU1lZGljYWwK4paB0L/RgNC+0LPRgNCw0LwK4paBVm9nCuKWgdC20L7QsgriloFTcGlyaXQKbnRoCuKWgXN0YW5kYXJkcwriloFQcm9maWxlCuKWgWV6CuKWgdGC0LXRgNGA0LjRgtC+0YDQuNC4CuKWgXN0ZW0KdWlsCuKWgU9nCkJ0bgpuYWwK4paBbmVhcmJ5CuKWgXByb2R1Y2luZwpjcml2CuKWgWFzc3VtcHRpb25zCuKWgVNwYXJrCuKWgUxvdAppdHVkZXMKYWZrYQpmaXZlCmF0aW8K4paBZGlzdGluZ3Vpc2gKcm9jawrDqWdsaXNlCuKWgXJhcHByZXMKPlw8CtC70ZbQuQriloHQvNC40L3QuAriloFpbnRpdHVsw6kKfX0oXAriloFSb3V0CuKWgUJvcmRlcgriloFvdmVycmlkCkhPU1QKcml0dGVuCnNheQriloHQp9C4CmljaHR1bmcK4paBc3RyYWlnaHRmb3J3YXJkCm9iYgriloFUZXJyYQriloFbOgpCZW4K4paBY29tcG9zaXRlCikrXAriloFjcm93bgpkaXJlY3Rpb24K4paB0L3QtdGB0LrQvtC70YzQutC+CuKWgWF2YWlsCuKWgXB1cmNoYXNlZApob29rCmV0aWVzCuKWgWZhc2UK4paBUnVtCuKWgWdlbm9tCuKWgWTDqXQKb3fEhQptcGVnCuKWgdCG0L0KZGVza3RvcAriloFpbmplY3Rpb24KYWdsZQriloFFZGQKX3soCuKWgUhlbQp1dG9zCnByb2oK4paBc3VwZXJmaWNpZQpQbG90CuKWgURvY2tlcgrDpHR6CmtyZWljaAriloF1bmNsZWFyCuKWgVVuaXR5CuKWgXN0cmVhbXMK0LLQuNC0CuKWgXNpbXBsaWZpZWQKRmlsbAriloFzYW50CuKWgUtvbW11bgriloFkdWMK4paB0LTQstC1CuKWgW9icwrFvml0CuKWgUphbmVpcm8K0LHRjwriloFwcmVzc28K4paBTWluaXN0cnkK4paBYnVyc3QK4paBcmVhY2hpbmcKbGl0ZXIK4paBcmVzcG9uc2VzCuKWgUV1ZwriloFzb2QK4paBQ29yZAriloFQZXJtCnBhcnRzCtGG0LjQvNCwCnZhcmlhYmxlcwriloFmb3Jnb3R0ZW4KRmVybgpvc3TEmXAKdmwK4paB0KHQvApraW0KYWrEhWMK0L3QsNC70YwK0LPQu9C1CmhlbHBlcgpkdXAKZXV3CmZyYQplbGxpdGUKYW55YQriloFyZWlnbgpnZXNhbXQK0YHQtdC00LAK4paBUnlhbgriloFmb3JtYXR0ZWQK4paBQm9yZwp3YWxrCuKWgdCw0LsKYWdub3N0aWNzCuKWgUNhcGUK4paBRnJhbmNvCuKWgWZ1Zwo6KQrRjtC3CkZldGNoCuKWgXJvdWdobHkK4paBTWlzCnVldG9vdGgK4paBVmVuZXp1ZWxhCuKWgWFzdHJvbm9tCiIpYApvbWJyZXMK4paB0LrQvtGC0L7RgNC+0LkKw7NwCm93ZWQKSFIK4paBQ2FtZXIK0LrQuNC1CnBhcmlzb24K4paBQmlqCnRlbXBsYXRlcwplbnZpcm9ubWVudAppemHDp8OjbwriloHDqXIK4paBcGxlbnR5CuKWgVR5cGVFcnJvcgriloFmb3J0eQrQutC+0L3QvtC8CuKWgVNlZAriloF0aGF0cwriloFncmF2aXR5CuKWgXNwaXJpdHVhbAriloFkdXBsaWNhdGVzCuKWgWVuY3J5cHRpb24K4paBcmV2ZW4KZ2V0SW5zdGFuY2UKw6RsbG9yCmRpc2sK4paBdGhybwriloFOYWsK4paBcG/FggriloFoZXJhdXMKaW52YWxpZApzQnkKQm9vdAriloFidWNrZXQK4paBUGFyc2UKaGV4CkNvbm5lCuKWgUNvbXB1dGVyCnp5awriloFpbmR1Y2VkCuKWgUJydW5vCuKWgWFkZHJlc3NlZAptYW5pYQriloFpbmNsdXMKb3VuY2VkCnNjcmlwdHNpemUK4paBRXBpcwriloF2b2NhbAriloFKb25hdGhhbgrRg9C8CnN0YWRlbgriloFDaGlsZHJlbgrQv9C10LkKSXRhbGlhCnJlaWJ1bmcK4paBbm9zdAriloHQtdGJ0ZEK4paBV2Vya2UK4paBYWN0cmVzcwriloFNaW5uZXNvdGEKcmlrZQriloF0ZWsK4paBcHJpbWVpcmEK4paBZnJhdAriloFDb25maWd1cmF0aW9uCuKWgWJpZAp0cmlnZ2VyCkNvbnRlbnRzCuKWgWNvbnN0YW50bHkKISEhCuKWgWRyZWFkCuKWgWh1bmRyZWRzCmlzdGlzY2hlCuKWgWNhcmRpbmFsClRBQkxFCuKWgWVzdG9zCmFzc29jCmdyYXkK4paBU2NobG9zcwriloFzY2hlCmNvbmcK4paBa29qaQrDqHRlcwriloFFcmEKb21pCuKWgVNSCuKWgXdyYXBwZWQK4paBdHJ1bmMK4paBYWgKZWdvcwpva2kKbW91dGgKbG9nZ2luZwriloFmYXNjCuKWgVNhbXBsZQriloFjb250ZQriloF2aWxsYQpjb21tZW50cwriloFiYXRhbAriloFHYXJjw61hCuKWgU5vcnRlCuKWgXdlY2hzZWwK4paBTXVzZW8K4paBZW5mYW50cwriloF3aGlzcGVyCm5ha2UK4paBamVkbmFrCmzDqnMKZW5kZXJzCuKWgcOkbAriloFWQgriloFjb29raWVzCnpldGkKYXR1bQriloFkZWR1CuKWgWFycmFuZ2VkCmxhegriloFjdWVudGEKeW1sCuKWgWZsYXYKTVIKZW1ldArQsdGW0LvRjApjbXAKaXR1dG8KemV0dAriloFlbnZpCuKWgWtvdAokOgp1cHBlcgriloFBbGJlcnRvCmtiCkFuYWwKw7ZydAriloFbLQriloFmw7xocnRlCmlhaAriloFUdW4K4paB0LjRgdC60YPRgQp1d2UKaXNwZWNpZXMKUHViClN5bmMK4paBQ29sb21iaWEKYWtlcnMK4paBSW1wZXJpYWwKb3ZpbmcK4paBaW50ZWxsaWdlbmNlCuKWgWVxdWlwbWVudAplaW4KZGFnZ2VyCuKWgUVkZ2UK4paB0KDQtdGB0L/Rg9Cx0LvQuAphZHJhdGtpbG9tZXRlcgriloFBbnRvCuKWgWNoYXJnZXMK4paBT2NlYW4K4paBc2ltcGxpZnkK4paBbWllc3oKcnVubmluZwriloFMYWMKZ2Vub21tZW4K4paBcmVwcmVzZW50YXRpdmUKPS4K4paBUHJlZAriloFzcGl0ZQpjaWFsZQriloFuYXZlCuKWgWV4dGVucwriloFuZXV0cmFsCuKWgdC60L7RgtC+0YDQsNGPCi48LwriloFDUwp1a3kK4paBd2hpbHN0CuKWgWxpbmd1CmV4dHJhY3QKemVpY2hudW5nCuKWgUZlbGQK4paBdmFsdWFibGUKdXJhYmxlCuKWgUplbgriloFzdHJ1Z2dsZQriloFjb21taXR0ZWUK4paBV29obgriloFzcWxpdGUK4paBVGVtcAriloFDT1VOVApjb25zaW4K0LzRltC90ZYKdXNhZ2UK4paBcXVlc3QK0LTRj9C9CmVhcmVkCuKWgVNjaG5lCuKWgWRvZAriloFyZWNodAriloFrYW8KQ2FwdApsYWJlbHMK4paBZWxsb3MK4paBaW5kdXN0cmkK4paBQ29sb3JhZG8K4paBY29udHJhcnkK4paBRHVtCkJlbAriloFWZW50CuKWgWF1dGhvcml0aWVzCllFUwplbnNlZAp1bWJuYWlsCml6emF6aW9uZQprb3UKcmljYQriloFzZWN0CnRlc3RzCuKWgUtsZWluCuKWgWxlZ3MK4paBUGlldHJvCmZ1CnRoeQriloFiYXN0CuKWgXRlZGVzCmV0dGVzCuKWgXJlcGV0CmFjcmUKcmV0dG8K4paBcmVtYWluZGVyCuKWgUdlZwriloHQk9C+0YAK4paBUmVjaHRzCuKWgWZpbHRlcmluZwpvdXNzCuKWgWRlcGxveWVkCuKWgXByw7xmZQriloFiaXRtYXAK4paBc292aQriloE8JT0K4paBZW50ZmVybmUKa2lsbAp0YWJzCkV4cHIK0LrQvtC80YMK4paBUmVwdWJsaWNhbgriloFTaXplCuKWgXBvbGwK4paBcmllbgriloHQutC70YPQsQrDqW5kCuKWgUJpbwriloFwZXJsCuKWgUFuZHJlYXMK0LLQuNC9CuKWgWRpc3RhbnQK4paBRmlubgriloFNaXRjaAriloElewriloFjaGFybQriloFNdWwKcGVyYXRlCuKWgXNjaWVuY2VzCuKWgW1vbm90CuKWgWRlYmlkbwpyaXpvbmEKaWVjCuKWgWFsYXJtCuKWgXByb21vdGVkCuKWgWxldHp0ZW4KYXRpbgriloFjb25jbHVzCmhlcnIK4paBw6ljaAplZGlzaApnb3IK4paBc3R5Y3oK4paBaW1wcmVzcwpydWl0cwppZXJ1bmdzCuKWgXBhcnNlZAriloFyw61vCuKWgVBha2lzdGFuCmlnbmVyCuKWgXdhdGNoaW5nCuKWgWRhdGFiYXNlcwplZGluZwriloFTcGVjaWZpYwriloFnZW5lcmFsZQpsYXgK4paBTG9va2luZwriloFib25kCuKWgXZpc3RhCuKWgWVjCuKWgWdydWQK4paBZGVsZXRpbmcKdGFjCuKWgWphenoKam0K4paBcMOzxYIKTGFuZ3VhZ2UKZGVsZWdhdGUK4paBcmVnaXN0cnkK4paBU2hhcmVkCtGB0YLRgNC+0LkKTXVzaWMK4paBdmVzc2VsCi5ACuKWgVfDvHIK4paBZmVkCuKWgWVyZWRldAriloFHw7YKdXB0CuKWgXBsZWFzYW50CuKWgXRhYmxlVmlldwriloFjb3VudGluZwriloFLcmllZ3MK4paB0L/QvtC70YPRh9C40LsK4paBXSwK0LLQuNCwCuKWgWHFvgpUb0xpc3QK4paBQWR2ZW50CuKWgXNrZXRjaApwbgriloFzaWVyCuKWgdC90LDRhdC+0LTQuNGC0YHRjwppb3AK4paBbHkK4paBU2NobApDb250cmFjdAphc3NvY2kK4paBUGVhcgriloF3aGUK4paBRGVsZXRlCuKWgWVsZW0Kw6R0dGUK4paBxI1lc2sK4paBTUMK4paBc2hvdXQKYWtlc3BlCuKWgWRlZmF1bHRzCnBlbmFzCsOycmlhCuKWgWhpZXJhcmNoeQppcHQK4paBRWxpcwpsaWtlbHkKUm90CuKWgWNvdwriloFzdHJpa2UK4paB0LHQtdGA0LXQt9C90Y8K4paBZW5zZW1ibGUK4paBUHNldWQKVmlydHVhbAriloHRl9GXClJPT1QK0YHQuNGPCuKWgdGB0L7QsQriloFpbnZlcnQK4paBc3dpdGNoaW5nCmh0YWNjZXNzCuKWgdC90LDQs9GA0LAK4paBTm9ybWFuCuKWgWluZ2zDqnMKIVsKb3VzZWwKRE9DVFlQRQriloFzdXBwcmVzcwriloFhY2NvbXBhbmllZAriloFCw6kKaW1wbGllcwpudXQK4paBU3ludGF4CmluaG8K4paBdGFtCuKWgWZvY3VzZWQKYXZhbm8K4paBQmFkZW4KaGFkCuKWgSh7ClR5CuKWgdGA0L7RgQriloHRh9C+0LvQvtCy0ZYKb2dlCmpzcApCbHVlCuKWgXN1YXMKYXBlcnMKU2hvcnQKUmVuZGVyZXIK4paBc2VuZG8K4paBQ2VjCuKWgWBfXwriloFNdW5pY2lwYWwKZG90bmV0CuKWgWJldgriloFEQQpNZW51SXRlbQriloFhbXAK4paBdXJpCuKWgWZpZXIK0YHQu9C10L0KKSwoCmN1bGVzCmlsbGFzCkxPQ0sK4paBZGVyaXZlCnViZW4K4paBR1QK4paBTWFjawriloFzY2hvbGFyCil9fQrQt9C8Cj46OgrRiNGR0LsK4paBcHJpbmNpcGFsZXMK4paB0YbQsNGACuKWgXRpZWQK4paBYWx0YQriloFDaXQKbGluZWQKbWFqb3IK4paBcHVuawriloFjaW5jbwppY2vDvQriloFyYWdnaQp0eXBlbgrRgtC10LvRjNGB0YLQstC+CuKWgWNvbmZlcmVuY2UK4paB0YHRltC70YwK4paBaGV1dAppxaEK0LXRgtCwCnZlbG9wZQpoYm94Cm5vd24K4paBemFyCmt0aXYKaWXDnwriloHRgdGC0YDQtQriloFFdmVudEFyZ3MK4paBSXJhCuKWgVZCQQriloFTYW50bwriloFGYWNoCuKWgUZGCuKWgVJheW1vbmQK0LzQtdGGCmltcGxlbWVudGF0aW9uCuKWgWJyb3RoZXJzCuKWgWPDtHTDqQriloFjb250cm9sbGVycwriloFDbGUK4paBY2FibGUK4paBY29uZmVyCuKWgXstCuKWgWN6xYIK4paBRmlsaXAKYXRvcmlvCuKWgXdpY2h0CuKWgWJlYXVjb3VwCuKWgUxpdAriloFzZXNzaW9ucwriloFTdWNjZXNzCuKWgXJvdXRpbmcKbml1CuKWgVZpY2UK4paBa3JpdAp1cGRhdGVkCuKWgUludmFsaWQK4paBTWFubnNjaGFmdAriloFhb3MK4paBdHVkaQriloFkZXNwcsOpcwpxdWEKQ29udGFpbnMKQ29tcGFueQriloFwZXJzb25hCmFkYXB0ZXIK0YHQvdC4CuKWgXZvagriloFlc2NyaQphZ3QK4paB0YHRgtCy0L4K4paBZGlzdHJpdG8KYXBhbgriloFhc3BlY3RzCuKWgXphbAopXntcCuKWgXN5c3TDqG1lCuKWgdCw0L3QsAppdW1zCuKWgXByZW1pZXJzCuKWgdC/0L7RjQriloFtw6hyZQriloFHdW4KYXBpbmcK4paBUmFpbgriloFpZ3VhbAriloFwcm9jZXNzb3IKJylgCmJsaW5nCuKWgW1pc20KYnLDoXoK4paBY2xvc2VzdAriloFSZWFkaW5nCuKWgdC/0L7Qv9GDCmNvbm8K4paBa3VsdAriloEhIQriloFFeHByZXNzaW9uCuKWgWluZHVjdGlvbgphaHJlbgriloFjcAriloF2aW9sZW5jZQppZW50w60KY2VudGUK4paBRG9iCmphY2sKc29uZwpidWNrZXQK4paBZGVwb3J0CtC60LjQvNC4CmxtCuKWgWlubm9jCkNoYW5nZXMK4paBcHJvaGliCmFuZ29sCmlzZWNvbmRzCuKWgdC/0L7RgAriloFoaXAK4paBcMWvCmVuZG9yZgriloFzY2hlZHVsZWQK4paBRmx1ZwphY3lqCuKWgUZpbG1zCmF0aGVkcmFsClBvd2VyCmFyZGluCmthcAppY2tlbgpyZXNpemUKZXVzCnJyCtC70Y/QvQriloFIYXYK4paBb3JhCkZST00K0LvQvtGB0Y8K4paBdGVydWcK4paBV2lkdGgK4paBYWNjZXB0cwrQsdC10L0K4paBbWljaAriloFDemVjaAriloFCZWRldXQK4paB0LLQuNC0CsO0bWUK4paBTG9vcApzcGVjdArDvGsKZXN0b24K4paBc2xvdAriloF6b3N0YcWCYQriloFDaGFybG90dGUK4paB0YHQvtGB0YLQsNCy0LvRj9C10YIK4paBUHJvbWlzZQriloFlcG8K4paBZGljdGlvbgriloFGcmFua2xpbgriloFSaXYK0YDRg9CzCmNpZGEK4paBRXhwbG9yZXIKY29va2llCuKWgWZvcm1lcmx5CuKWgW11bmljaXBhbGl0eQriloFTdGVmYW4KbGlzdHMKQ09NUApMZW4K4paBU3RhYXQK4paBTkJBCmRlbnMK4paBb3NjaWxsCiEuCuKWgVBPCsO0bmUKZXNlcwriloHQvdCw0YbQuNC+0L3QsNC70YwKdm9vcgriloHQutC+0L/QuAriloHQv9C+0LfQuAp1bHUKQ29uc3RyYWludAriloHRgdCy0L7QtdC5CuKWgWFsZ2VicmFpYwrRh9C90Y8KRGljdAriloFhcHBlYXJpbmcK4paBcHJhdgriloFVbml2ZXJzYWwKQnJvd3NlcgriloFTaW5nYXAKZW5uZXNzZWUKXV8K4paBU29mCuKWgUNhZApvdW5jZQriloFjb3N0cwpde1wKLi4vLi4vCtGB0YzQutGW0LkKw7xobAppZXR5CtC/0YAK4paBaW50ZXJwcmV0ZWQKYWpuCmNvbG9nCllTCm1hbnMK4paBbWV0cmljcwriloFyZWdpc3RyCmlzdGFuY2UK4paB0J/QvtC70YwK4paBYW5vbnltb3VzCuKWgWluc3RpdHV0aW9ucwriloF6ZG9iCnByw7xuZwriloHQsNGA0YLQuAriloFlc3RhdAphY2NpCuKWgWFjYWRlbWljCuKWgWNoaWVzYQriloFHaWFuCmNvbnRyaWIKdW1lZAriloFHaXIK4paBYmFzZWJhbGwKbnVtZXJpYwpHZW5lcmF0b3IKR00K4paBdGlueQriloFkaXN0aW5jdGlvbgrQs9C10YAK4paBcnVzdAriloFGSUZBCuKWgVByb3BlcnRpZXMKXi0K4paB0Y3QutGBCuKWgVN0YW5pcwriloFBamF4CmVzY2FwZQriloFjb25zcAriloFDaGVuCuKWgU5hdmFsCkJpdAriloFiw6J0CtGB0LrQuNC80LgKZHJpdmUK4paBUm91bmQKcGhvdG8K4paBTGV2ZWwK4paBZ2VnClRvbQriloFNb2JpbGUK4paBVHJvcApEaXJlY3Rpb24KaXNhbgopXnstCuKWgVNldHRpbmcK4paBUHJvYmFibHkK0LvRjNGPCuKWgWFzc2V0cwriloFhdHRlCuKWgWJ1bGsKw6lzdAriloF3aW5nCm5pdXMK4paBd2lucwriloFsdWQKdXNoaW5nCuKWgWRldmVuCtC+0LPRgNCw0YQKYnVyZ2VyCuKWgWVtYmFyCkZpbHRlckNoYWluCuKWgXR1bQriloHDtnNzCuKWgW5vbW3DqQriloFwaXIK4paBbHVjCmRibwphZ3VlcwriloFhbGNhbgpvdXdlbgriloFTdGFubGV5CtGG0LjQsNC70LgK4paBZ3Jvd24K4paBcHJlc2VydmVkCuKWgXNvbGFyCuKWgdCd0LDRgdC10LvQtdC90LjQtQriloFwZXJmb3JtYW5jZXMK4paBQ293CuKWgWVuZ2luZWVyaW5nCuKWgXNjYWxpbmcKYXRvbWljCmVuZGFuY2UK4paBYWNlCsOkbmdlbgpBbmltCnBoYXNlCnpidXJnCk9sZAriloFzZXJ2YW50CuKWgWdlbWVpbnMK4paBT2JzZXJ2CnRyYW5zbGF0ZQriloFjb3ZlcmluZwriloFlc3TDoW4K4paBcHJvYmxlbWEK4paB0YPRgdGC0LDQvdC+0LIK4paBbGxldgriloFjemVydwrDqWFsCm1legpSRUUKRVJSCtGC0YPRgNC4CnNlZ3UK4paBcHJvZml0CuKWgW11bHRpcGxpY2F0aW9uCmtvbW1lbgriloFmYXV0CuKWgWNhbmRpZGF0ZXMK4paBVXJpCuKWgUxhdXJhCuKWgXNhcAriloHQstC40YHQuNC90LgK4paBQmV0d2VlbgpmYWRlCuKWgXJlc2VydmVkCuKWgWludm9sdmluZwriloFNYXJlCuKWgUNvbnRhaW5lcgriloHQvdCw0LfQvdCwCuKWgURFQlVHCuKWgWh1cnQK4paBUG9sc2tpCuKWgWx1eApDQgp3YWNoCuKWgdC/0LXRgNC40L7QtAriloFDYXRoZXJpbmUK4paBZ2Fuegp1Y2h0ZQriloFjb25zdW1lcgriloFjcm9zc2VkCm9yZGVyZWQKYXdheQp0ZWNobgriloFzdWJzY3JpCuKWgXNob3J0Y3V0CuKWgdC/0YDQvtC40LfQstC+0LQK4paBc2ltdWx0YW5lb3VzbHkK4paBcmF0aW5nCuKWgUtpbmdzCuKWgXJlbGF0aW9uc2hpcHMK4paBU2V4CuKWgVRvb2wKYWdoCmFjdGVycwpsb2dnZXIKaG9tbWUKZW5nZXJzCuKWgVJpCmVhcmFuY2UK4paBYXBwZWFyYW5jZXMKUmVhbAriloFwYXNzZQppY2xvcGVkaWEK0YfQutC+CnRlcnJlCuKWgU9udGFyaW8K4paB0L/QtdGA0LXQtNCwCmZvb3RlcgphcmNoaXZpCmlmaXoK4paBUHJvdGVzdAriloFMSU4KdW5uYWJsZQriloFjZW50dXJpZXMK4paBQmF5ZXIK0YbRltGOCtC+0LLQuNC9CuKWgUFuZHJlYQpzZWxlY3Rpb24K4paBY2FsbQriloFtb2RpZmljYXRpb24K4paBc2hvcnRseQppbmFpcmUK4paBZnVzaW9uCuKWgWZlZWxpbmdzClBLCuKWgVJvYmVydG8K0LPQvdC1ClNoYXJlZAriloFtZWhyZXJlCuKWgU5pZW0Kb21wCkVudgriloFBcnRpY2xlCuKWgVBvawriloFWQVJDSEFSCuKWgWRpbAriloFhZmZvcmQK4paBY29uZnJvbnQKb3dhbmllCuKWgW1pbmlzdHJlCmFkZXNoCuKWgVBvbHkK4paB0KDQsNGB0L/QvgriloFHcnVwcGUK4paBSGVsZW4K4paBY2MK4paBcG9ydHJhaXQKYmV3CuKWgWJldGEK4paBV2lyCuKWgUF1ZGlvCuKWgShcPApyaW9yaXR5CuKWgW5pdAriloHQv9GA0LXQtNGB0YLQsNCy0LgK4paBVmllCuKWgXfDvHIK4paBSG9sZAriloFTYWQK4paBVG9jaHRlcgriloFvbHRyZQriloFBY3RpdgriloFKYXNvbgriloF3aWVrdQriloFyZWdhcmRzCuKWgXRhc3RlCmFnbm9zdGljCtC70LDRgdGPCuKWgVNlbGYK4paBYXByCuKWgURlZXAKc2NvcApBY3RpdgriloF0eXBlZGVmCkNvbnRlbnRWaWV3CmNvbXBpbGVyCuKWgVJvdGgKeGMK0LfQuNC6CuKWgWxhcmdvCuKWgVJlbmEKaGVpdGVuCuKWgXBsYXRmb3Jtcwp1bGxhCuKWgWdsYW5jZQriloFtYXNjdWwK4paBbWV4CuKWgUpvcmdlCuKWgWZ1bmNpb24KY2hvb3NlCuKWgXJldmlld3MK4paBQWxiYW4K4paBR2xvCuKWgVNwZWNpZXMK4paBRmFtZQriloFSb2xsCuKWgVB1ZXJ0bwriloFcKQp5bW5hcwplbnZpcm9uCuKWgWlwaG9uZQriloFXcmVzdGxpbmcKYcWCeQriloFJbmRpYW5hClJhZGlvClZTCuKWgWluZGVwZW5kZW5jZQrRgtCw0LkK4paBZGVjb2RlCldoaXRlCuKWgWpvdXJuCsOtY3VsbwriloFCYXJiCuKWgUV2YW5nZWwK4paBQW5keQriloFXZWxjb21lCuKWgURldmljZQpnZWYK4paBcmVtZW1iZXJlZAriloF2YXJpYXRpb25zCuKWgUFkb2xmCml0YWluZQriloHQvdCw0LTQvNC+0YDRgdC60L7RmAriloFzdGVhbQriloFjb25jZXJucwriloFgfAriloHQsdC40L4K0YLQtdC70YzRgdGC0LLQsAriloFxdWF0dHJvCmV4dGVuZAriloF0cmFiYWpvCmVuYmVyZwriloFzY2VuYXJpb3MKw6JudAriloFrb21tdAriloFkb21lc3RpYwriloFCYXNrZXRiYWxsCuKWgUNvb3Blcgpzb2NrCtC00LXRgNC20LAKPXtcCuKWgWluaWNpCuKWgVBoaWxsCuKWgdCz0LXQvdC10YDQsNC7CmFyY2hpdmlhdG8K0YrQvQpSb2IK4paBdG9uZwriloFjaGFyYWN0ZXJpc3RpY3MK4paBYW1hegriloFNb2RlCuKWgWluYXVndXIKd2VocgpyYW50CmlvbmFsaQriloFNb3RoZXIKTWEKw6lxdQriloFLZWxseQpjaWxlCuKWgWJlc3RlaHQK4paBZXN0aW1hdGVzCnJ1Z3VheQriloFBbnMKTWFkCuKWgdC90LDQsgriloFkb25uw6llcwriloF0cm9waWNhbAriloFTZXZlcmFsCmVsdGVyCuKWgVBobwprZW0K4paBQ3VzdG9tZXIK4paB0YHQutC70LDQtNGWCuKWgWNvdXJzZXMKUGxhdGZvcm0KbmF2YmFyCmxlYXJuaW5nCuKWgVN3ZWRpc2gK4paBemFzdAriloFMaWcKbWFuYWdlbWVudAriloFsb2QKdWZmbGUKVGV4dHVyZQphcmdhCsOhdHVtCuKWgUREUgrQvdGW0ZcK4paBU29jacOpdMOpCuKWgWRvbWFpbnMK4paBcGVybWl0dGVkCuKWgWV4dGVybmUK4paBcXVlbHF1ZQp2dAp5bWFuCuKWgVdhcmQK4paBYWdsaQriloFhbmRyYQpTbmFwc2hvdAriloFtw6UK4paBeWVhaArQtNC10L3QsArEmXB1CmFza2VsbAriloFSw6lwdWJsaXF1ZQppbmplY3QK4paBJzsKw6RubgriloF6ZWxmCuKWgUVudHdpY2tsdW5nCsOhcmlhCm9ub215CuKWgXN2aWwKaWVzZQriloFjb25zZXIK4paBbmltCuKWgXLDqXN6CuKWgdCY0YLQsNC70LgK4paBcGFydGljaQriloFMaW9uCnNyCmFsd2F5cwriloHQktC70LDQtNC40LzQuNGACtGH0LXRgdC60LjQtQpbLAriloFEZWZpbml0aW9uCm5hbnQKb2VtCklkcwriloHQstC90LUK4paBWy4uLl0K4paB0L3QsNC/0YDQsNCyCuKWgUdPCuKWgcOlcnMK4paBdXTDoW4K4paBb3V0cm9zCuKWgXJlZ2nDs24K4paBTW9uZwriloFmaWxtZQriloF0cmlwbGUK4paBc3BvbnMKRGV2ZWxvcAriloFvdXRjb21lCuKWgUJpYmxlCuKWgdC40LzQtdC90LgKQ2FudmFzCtC/0YPRgtCwCmN1cnIKw6Fzb2sKKXtcCm5pbmdhcgpgOwriloFGbGFzaAo6IwptdXN0CmNwdQriloFmb3JtYXRzCkhhcgriloFlcGlzb2RpbwriloFSb3NhCuKWgWTDqHMKZW1pdApyaXRlcmlhCkFubm90YXRpb24KRmxhZwpnbWFpbAriloFOb3JtYWwKb2xsYXJ5CuKWgWZvc3MK4paBY29uY3VycmVudAriloFjcmFzaGVzCuKWgdCy0LjQtNC1CuKWgU1pbm9yCuKWgVNpdAriloFTTgriloFzY2FyCuKWgWZlbWluCuKWgXNwZWNpZmljYXRpb24Kc29hcAriloFvcGVyYXRlCuKWgXByaW5jaXBhbG1lbnRlCuKWgWF1c3QKaWJpbGUKaXRpbWUK0LvQtdC20LAKaWZyYW1lCuKWgWNvbmNlcHRzCuKWgXRhY2sK4paBdmlzcwriloFjYXJib24KdGVyeQriloFuYW1pbmcK4paBT3J0cwppZGVudGUK4paBQ2FwaXQK4paBZXhwcgriloHQvdCw0YHQtdGZ0YMK4paBU2VsZWN0ZWQK4paBaGludGVyCuKWgWlmcmFtZQriloF6YgppbmRleFBhdGgKY29sbAriloF3cnplxZsK4paBYWNodAriloFncmFkdWFsbHkK4paB0YfRgwrQt9C10LkKaGFmdAriloF0cmFuCuKWgWxhcXVlbGxlCnl0aWNzCklERQriloFweWdhbWUK4paBUGFja2FnZQriloFjbGFzc05hbWUKQmFsCnBlcmwK0YLQuNC90LAKT2NjCuKWgWluZnJhc3RyCuKWgUNoYW1waW9ucwriloFjbGFzc2ljCuKWgVJhdwriloFwYXJ0aWFsbHkK4paBVGVkCuKWgXN0b2xldApyYWluZWQKV0hFUkUK4paBdmFsbAriloFKdWxpYQp6YXQK4paBc3Vycm91bmRlZApTRUUK4paBd2Fsa2luZwpCYWQKRk9SCmNvbnRyZQriloFQYWxlc3QKw6F0aWNvCuKWgWVuZ2luZWVyCuKWgXBhcnRuZXJzCuKWgUpld3MKaWxlcnMK4paBY2VyZW0K4paBaW50ZXJhY3Rpb25zCmFjdQpzdHkK4paBUHJpbmNlc3MKc2hhcnAK4paBU2luZ2xlcwriloHRl9GFCmNoZXoKUmVjZWl2ZXIK4paBcGF0aWVudHMKc3RyaW5naWZ5CuKWgWNvbXBldGVkCmJleQokOwriloFCZApoYWRvb3AK4paBRGl2aXNpw7NuCsO2bGQK4paBcmVzdHJpY3RlZAriloFjb21tYW5kZXIK4paBSGlnaHdheQriloHEjGVzawriloFteXRoCtGH0LDQvQpyYWhhbQriloFlbnF1CuKWgXBvZwriloFjb211bmEK4paBcHJpbnRsbgriloHQutGA0YPQvwriloFkZXBvaXMK4paBc2VhdHMK4paBbmVpZ2hiCtGG0LjQvtC90LAKYWdpbmUK4paBY2xvdGhlcwriloFQcmlvcgpCcmFpbgpGRkZGCic6JwpmZWF0dXJlcwriloFmaWxlc3lzdGVtCuKWgXNpbmdsZXMK4paBTWVsYm91cm5lCuKWgWRlc3RydWN0aW9uCuKWgUx5b24K4paBSW5zZWwKTmF2CuKWgVJlcGxhY2UK4paBbMOpCldobwriloFFc3RhZAriloFkaW1lbnNpb25hbAriloHDtmZmCuKWgWdyYW5kcwrQtNC20LAKcGxhbmUK0L3QvtGB0YLRlgriloFPcmlnaW4KV0kKw6RubmVyCuKWgUNyeQpJVElPTgriloFmw7ZkZAriloFjdWx0dXJhCuKWgVJhbmsK4paBdnVlbAriloF6YWcK4paBTWF4aW0K0L7QvdGDCigpKSkKUmF3CmtpcmNoZQriloFhZGVtw6FzCuKWgXRpZQriloFTdHlsZQrRgdC60L7Qsgppc3RhbnQKb2xwaAriloFaw7xyCuKWgUluZm8KRE9NCnVzYwpuYWhtCuKWgdCk0LXQtNC10YDQsAriloFGb3QK4paBc3BlY2lmeWluZwriloF0aXRvbG8K4paBQm95cwppZWNoClBsYWNlCuKWgUhvZmYK4paBY2FjaGVkCtCy0LDQu9GMCmlzaGVyCnJvbGxpbmcKb3BlbnMK4paBaHIKLS0tLS0tCuKWgW1hZ2dpb3IK4paBdHJhbnNhY3Rpb25zCuKWgWNyaW1pbmFsCuKWgXJldHJlCuKWgUNhbXBiZWxsCikpOgriloFuZWQKUGFnZXIK4paBSGVybwooX18K4paBdW5jbGUK4paBcmVhY2hlcwphcnRvCuKWgWhlbGxvClByZWZlcmVuY2VzCuKWgdC30LDRgtC10LwKTmFtZWQK4paBcmVhZGVycwrRhdGWCmtlcm4K4paB0YPQv9C+CtC60LjQvQriloFsYXYK4paBbm9iCuKWgXNlY3JlCuKWgUxpc3RWaWV3CtCy0LDQvdC40Y8K4paBTWF5b3IKYm9yb3VnaAriloFmaWxvc29mCtC90LXQvdC90Y8K0YTRgNC4CuKWgXBhdHIKRk0K4paBYWNpZAriloFTYWx2YWRvcgriloFhYmIK4paBR3JhaGFtCnBvbGljeQpuZWdhdGl2ZQrFhHNraWVnbwriloFIZWltYXQK4paBZGF6dQriloFtZWx5CuKWgXJpZGUK4paBZHV0aWVzCm92ZXJ5CuKWgVByb3Bvc2l0aW9uCuKWgVBhb2xvCi8nCuKWgU1hdQppbWVudGkKU2FpbnQKZmF0aGVyCuKWgWVxdWlsaWIKcGhvbnkK4paBY2xhcwriloHQvtGC0LvQuAriloFCdWZmZXJlZApyZWsK4paBbWl0dAriloFIdXIK4paBSGFydmFyZAriloFkZW1vbnN0cmF0ZQp1YXJpbwriloFkb2xvcgriloFyZWplY3RlZAriloFNw7xsbGVyCuKWgW5hYwriloFCZWxsZQriloFnYXRoZXJlZApucgpmcmlrYQrDtmxsCuKWgWNoZW1pY2FsCm5pZwriloFjYWxjCuKWgURFRkFVTFQK4paBcGhpbG9zb3BoeQriloFMYXJhdmVsCuKWgWFsaWdubWVudApFVgplb3IK4paBZHppZQriloFtZXN0CuKWgUlvCkNSRQrQt9Cy0LgK4paBTWVkaWMK4paBbsOkCuKWgXphYgriloFTbG92CnV0bGljaAriloFhbXBsaXQK4paBRnJhbmtyZWljaAriloHQutGW0LvRjApJTkQKZXhlY3V0aW9uCuKWgUthcnJpZXJlCmRvc3TEmXAK4paBcsOpYWwKZW5nbwriloFzZXZlcmUK0LfQvNCwCuKWgdGC0YPRgNC90LgK4paBQ2FydGVyCuKWgVJvYmluc29uCmdldEVsZW1lbnRzQnkK4paBcHJvdG90eXBlCuKWgWphcG9uCmbDvGhydW5nCuKWgWNvbnNlZ3UK4paBc3R1ZGkK4paBbGlyZQriloFzY2hsaWXDnwriloFCdWZmCuKWgXJlZHVuZAriloFlcm4K4paBbXlzdGVyCuKWgXByb3ByaW8KYXRlZnVsCuKWgVBhcmVudAriloFsYWRpZXMKcmFjawrRgtC40LrQsAplbmJ1cmcK4paB0LrQsNGH0LXRgdGC0LLQtQriloFFRgriloFzdGFtCuKWgW51ZXZhCuKWgWZpbHRlcmVkCnJldGVuCuKWgUlhbgriloFNYXR0aGV3CmtpaAriloHFkQriloHQutC+0LzQv9C+0LfQuAriloFmb3JldmVyCm9pcmVzCjpcXAriloHDqXR1ZGVzCuKWgXNvdXAK4paBcGxlYXNlZAopfSgK4paBU3RvcApTZXR0ZXIK4paBSGVscAriloFiYXJzCuKWgUVSUgriloEoPwriloFwb2V0cnkK4paBVXRpbApBSwriloFmaWNrCuKWgUlNCuKWgXByb3VkCtC90L7RgdC4CuKWgW11ZXJ0ZQriloFQYWxtYXLDqHMK4paBTmFzCtGJ0LjRhQriloFxdWVyCuKWgWFwZW5hcwpdWycK4paBS29uc3QK0L/QvtC9CuKWgVNjaGlmZgriloFtcAriloHQsdC70LDQs9C+CmZyYW0K4paBaG91c2Vob2xkCuKWgXRyYWN0CmVuY29kaW5nCuKWgXVuZGVydAriloFBdWcK0L7QstCw0L0K4paBQXJ0ZW4K4paBaW52b2tlZAriloFkeW5hc3QK4paBZmxlZXQK0YfQtdGB0YLQstC+CuKWgU11cnJheQriloFndXQKZWxpaG9vZAriloFTU0gK0L7RgtCy0LXRggriloFwZXJzb25hbGx5CtC/0YDQuNGPCuKWgWZpbmFuY2kK4paBVGhvbXBzb24KYWx1CmlkZW50aXR5CuKWgUdyYWIKYWRkbGUKw4l0CuKWgVRvYgriloF2ZXJsb3IK4paBU2FpbnRlCuKWgWRvcAriloHQstC10YDQtQpfX18K4paBcHJvbW90aW9uCuKWgS09CuKWgdC+0YLQtNC1CuKWgWFtYmlndQpPUkRFUgriloFDb21tdW5pYwriloFpbXBseQpvbmVkCmNsdWRpbmcK4paBY29sbGlzaW9uCuKWgWZyYWdtZW50cwpzY3JpcHRpb24K4paBJ3sK0LvRj9GFCuKWgWhhbnMK0YPRgQp3aXJlCm5hbWVzcGFjZQriloFzd29yZApyZWZyZXNoCuKWgWt3YW0KenMKY29tbW9ucwriloFjb3NhCuKWgXJlZ2ltZQpncmVwCuKWgWRpb2MK4paBQ29udGFjdAriloFlc3RhcwriloFTdGV3YXJ0CuKWgXZpZWxlCtGC0L7QstCwCuKWgVJhbgphbm5lcwppZGF5CuKWgXNuYXBzaG90Cm9ycm93CuKWgXphxI0K4paB0YPRh9Cw0YHRgtC40LUK4paBcHJvbWlzZWQKQXNzZW1ibHkK4paBY2hhbXBpb25zaGlwCuKWgURlZmluZQriloFlcmVuCuKWgdC90L7QstC+CuKWgXRoaW5rcwpBZ2UK4paBZ2V2CnZhcmNoYXIKaXZpdMOgCmNvbXBvcwriloFNdXR0ZXIKQ09OVAphcm3DqWUKYWduZXQK4paBQnJvdwou4oCUCuKWgVRlbGV2aXNpb24K4paB0JTQu9GPCuKWgXZtCuKWgW9yZGluCuKWgdCc0LjRhdCw0LkK4paBYXByb3hpbQonKS0+CuKWgXpvbwppcHBpCuKWgXNpbm8K4paBUXXDqWJlYwpyYWdlcwrDpGNrCmVpbmcKYXJsbwpwaW9zCuKWgUNoYW4K4paBZWxsaQriloFpbmNvbnMKZ2VzdGVsbHQKcHBlcnMKSmVhbgphbnN0YWx0CuKWgURhbmNlCuKWgXRvZW4K4paBZGVjaXMK4paB0KDQtdC30YMK4paBb2ZmaWNpYWxseQrDpHR6ZQriloHQtNC+0YDQvgriloFlbnVtZXIK4paBdHJvaXNpw6htZQp0eXAKb2ZmcwrQsdC+0LvRjApvZG4K4paBWmFyCuKWgdC00YDRg9Cz0L4KcXVpYQriloFOaWNvbGFzCtC/0LjRgdGDCuKWgW1vYgpwYWNlcwrQvdGM0L7Qs9C+CkFsZwrDqXJvw68KRXJyb3JzCuKWgdCz0YDQtQriloHQttC10L3RidC4CmluY2gK4paBS29yZWFuCuKWgUFwb3N0CuKWgUxpdmVyCuKWgWVsZW1lbnRhcnkK4paBREkK0LLQuNGB0LgK4paBc29pbAriloFETEwK4paBcmlzcAriloFTaGFrZXNwZQriloFHYXVzc2lhbgriloFLdXJ0ClZlcnRleAplYm9sCm9yZ2FuaXNhdGlvbgrDpHJlbgriloFZRVMKQ1VSCuKWgdC90LDRh9Cw0LvRjAriloHQv9C+0YHRgtGA0L4K4paBTHVpZ2kK4paBY2FjaGluZwpwcmV2ZW50RGVmYXVsdAphbWQK4paBVml0CnN1YnN0CuKWgdGB0YLRgNC+0LgK4paBQ2FtcGlvbgpjaHIK0YTQtdGA0LUK4paB0KHQv9C40YHQvtC6Ck5GCuKWgWPDrW0K4paBaMOpCnJlYmJlCm9jeQpiZWxvdwriloFieWxvCuKWgdCj0LgK4paBXCh7XAriloFgOgpnaW9yZQpTYW4K4paBR2F0ZQriloHQstGBCuKWgW9saW1wCuKWgU1hdHJpeAriloFoZWFyaW5nCnJpaQp0ZnJhYwriloFhbGxlbWFuZAriloFWdWUK0LvQvQriloFjb21waWxpbmcK4paBRW5zCuKWgWludmVzdGlnYXRpb24K4paBQXgK4paBY2hhcnMK4paBdGFyZ2V0cwriloFsb3VkCnVzZW1lbnQK4paBTmV0aGVyCmNvbW1lcmNlCklHSFQKb2NvYQppZmVjeWNsZQriloFMZW8KcHJpdgriloFnb29kcwphZGFtZW50ZQpBdXN0cmFsCuKWgXJlYm9vdApHZXN0CuKWgXJlcHJlc2VudGF0aW9ucwpjZXUK4paBZG9jdHJpbmUKY2VycwriloFLcmFrCuKWgWFkdm9jCuKWgXNxdWFkcmEK4paBYXJiZWl0ZXRlCsO8c3QK4paBcGlsbApBbnN3ZXIK4paB0LrQstGW0YIK4paBV2EKdW1hbm4K4paBRHluYW0KRmFtaWwK4paBdGVubmlzCuKWgUVuZ2luZWVyaW5nCuKWgWNpcmNsZXMK4paBTWFyeWxhbmQK4paBYmVzdGEK4paBYmFzZXMK4paBem5hamR1CtC60YLQvtGA0LAK4paBYXJyZXN0CtC70LXRgAriloFHaWEK4paBcmVtYXJrYWJsZQriloHQvNC+0LPRgwriloFTdXByZW1lCuKWgWAlCmRvcgriloFhdWpvdXJkCuKWgXdpcwpXSURUSAriloFtaXNtYQriloFmbHVpZAriloFwZXRpdGUK4paBVG93ClJlZ2lzdHJ5CmVtZWQK4paBV2lzY29uc2luCuKWgVJhY2luZwriloFyZWdpc3RyYXRpb24KLyUKdGhpcmQK4paBbW9udW1lbnRzCtGH0LXQuQriloFqZXQK4paBVXJiYW4Kw6FsdmEK4paBbWlsaWV1CuKWgXBvc3Nlc3MK4paBZ2VybQpkZXBlbmRlbmNpZXMK4paBZW5lbWllcwriloFzYW1lbgriloFXZXJuZXIK4paBaGl6bwriloF0ZAriloF5ZXN0ZXJkYXkK4paB0JDQtAriloFoYXNuCmNlbGxhdGlvbgpvdsOhbsOtCmxpa2EKV2VlawriloFJbmcK4paBRW1haWwK4paBbcOodHJlcwriloFPQ0xDCuKWgWFtb25nc3QK4paBc3BsZW5kCmZ1cgphbnRpY3MK4paBWFhYCuKWgdCz0YDRg9C/0L/RiwpsYWNoCuKWgWNvdXNpbgriloFpbnZhcmlhbnQK0ZLRgwriloFCZWlzcGllbAriloFoYXJkZXIK4paBYmVsbAriloFvcmNoCnRiCkZvb3Rub3RlCnJlZ29uCk1hcnRpbgriloFpbmNvbgriloFhdHRhY2tlZApfey0K4paBVHJhcwpwYXJ0eQppdGVpdAriloFzYWludApyw6Fzb2sK4paBY29udGFpbmVycwpNbwriloFTbgpxdWFudGl0eQriloFyYXMK4paBQ2FuYWwKY2Npb24KdXZvCuKWgWlkeAp0eXBlbmFtZQriloFSdWdieQriloFTZWVtcwriloF0cmFuc21pdAriloFQcsOkc2lkZW50CtC30L3QtQriloFCYWtlcgppbnRoCuKWgXTDtmJiCnZlcmVpbgriloFlc3BlY2llCiwoCuKWgXTDqWMK4paBV0lUSAriloF1bm9zCuKWgXBvbGl0aWNzCmNyZWF0ZUVsZW1lbnQK4paBc3RhdHMK4paBVGVubmVzc2VlCuKWgUJlZGV1dHVuZwriloFTY3JlZW4K4paBU3RyYcOfZQphbnplCuKWgXBhcnRseQptYW51ZWwKb2xhdGlvbgpob3Jpem9udGFsCsOpcmlldXJlCmFtcGlvCuKWgdGB0YLRgNGD0LoKV2VpZ2h0CkxhbmQKcG9seQriloFEYWsK4paBQXNzdW1lCiIuJAriloFjYXNpCuKWgWdyb3NzCuKWgWVudGVydGFpbgriloFkw6ljYWRhCicuJAplbmNlcgriloFndWFyYW50ZWVkCl0kLgrQu9C40YHRjwriloFhY2NlcHRhYmxlCnJhaXNlCmlydXMKd2VpdAriloHQkNC90LAK4paBaGlsbHMKaXBhZ2UKQklUCuKWgW51Y2xlCuKWgXV0aWxpcwpDQUEKw6huZXMK4paBU2Nod2VpegriloFBQQpuaW5nZXIK4paBYmFuZHMK4paBdGVuZGVyCnNvbQpXYXJuaW5nCuKWgUJpc2Nob2YK4paBQXJjCuKWgVdvbWFuCuKWgXRyYW5zbWlzc2lvbgrRh9C90LgKaXN0cmUKQlkK4paBU0kK4paB0J/QsNGACuKWgX0pLgriloFwcmVzZW50YQriloFSZW7DqQriloFoYXBwaW5lc3MK4paBUHVuawpjb2xzCuKWgURlc2RlCtGA0ZHRhQriloHQvNC+0L3QsAriloFzY3JhdGNoCuKWgXRjcArDqnRlcwppdGF0ZWQK4paBZGlmZXJlbgpnZWgKbmFobWVuCtCf0LUKY2tpCuKWgVRlYXRybwriloFSZW1lbWJlcgriloFmcmlnaHQK4paBWWFtCndlc3Rlcm4KbGV0ZWQK4paB0LLRgdGC0YDQtQriloF0ZWxlcMO8bMOpcwrQt9C40L0K4paBUXVhbnQK4paBc3VwcmUKw6FqYQrQtNGW0Y8K4paBY2FycmVyYQprcmV0CnBhcmEK4paBU1VNCuKWgXBpdArFumR6CsOpbwrRgNC10L3QvdGPCuKWgUNob3IK4paBdm9peAriloFleGVjdXRpdmUK4paBYWxsZXJkaW5ncwpNYXliZQriloHQtNC10L3RjAriloFmbHlpbmcK4paBcGFybGlhbWVudArQttC00LDQvQriloFmcmFtCuKWgdC20L7QstGCCuKWgXVnbHkK4paB0LHRg9C00YMKaWdueQpcfF97CuKWgWJpdHRlcgpzY2UK4paBcG9sZQpWZXJsYWcK4paBdG90YWxpdMOpCuKWgWZvdW5kYXRpb24KanQK4paBc2xpY2UKaWZpcXVlCuKWgWludGVncmF0ZQpzdHJpagriloFhc3ltcHQK4paB0LXQvNGDCuKWgXBlcnR1cmIK4paBRmxvdwpqYm9zcwpSSUcK4paBQWxlc3MKWFhYCuKWgXN1bW0Kc3FsaXRlCuKWgWNoZWVyCnByb2IK4paBR1BVCnppxYIKKCopCuKWgWluZHVjdApSQVkKYmxhdHQKcXVlc3RhCm9ydQriloFJbnNpZGUK4paBTWNHCuKWgU5lcArQvNC/CuKWgWludmUK4paBQW5pbWFsCuKWgXNvYgrDrXRvdHQKbG95bWVudAriloFidW5kClN0YXRpb24K4paBQkVHSU4K4paBcGFydGllbGxlbWVudAppZ2cKZXN0b3JlCuKWgWNvaW5jCuKWgVNvbW1lcgriloFtZAriloFsb2NrZWQKbWF0aGNoYXIKYXJtYQpwZW50CmFyaXVtCuKWgWVhcnMK4paBU29uZ3MK4paBc2ltaWxhcmx5CuKWgWxpdGVyYWxseQriloFpbmNoZXMK4paBYWZmZWN0aW9uCmxwCuKWgWNvbmNsdWRlZAriloHQvNGD0L3RltGG0LjQv9Cw0LvRlgriloHQv9Cw0LzRjwplc3RhdXIK4paBSm9zaAriloFGcml0egpEQkMK0LTRkdC9CnBvc2EK4paBZ29sZGVuCuKWgXBjCuKWgWNvbXRlCuKWgVppZWwK4paBcHLDqXNlbnRlCm1hcmtzCmlnbmV1cgriloFEcml2ZQriloFuZWdsZWN0CuKWgXJvenAK4paBRml2ZQpzcGFjZXMK4paBTWVkaQriloFleGlzdGVkCuKWgWJ5xYJhCtC00LbQuAriloFmcmVudGUK0YLQvdC40LoKb2RkCuKWgWFuc3dlcmluZwpiaWFuCuKWgUV1Z2VuCuKWgVB1YmxpY2F0aW9ucwriloFEaWEKbMOhCuKWgSdfCuKWgXJlY3VwZXIK0L7QvNGDCuKWgUFwcGVuZApvYmFyCuKWgWVtcGxveWVlcwriloFjb21wZW5zCmVtZXRlcnkK4paB0Y3Qu9C10LrRggpNT04Kb2xpbgriloFoaXN0b3JpYwpoaXMKxIVkCm5tCuKWgUdvdGgK4paBc3RyZXNzCuKWgXBhcnRlY2lwCuKWgUF3CuKWgXNhcgriloFodQriloFtYXRwbG90bGliCuKWgU15c3QKKCk7YApzY2hlaW4KTG9uZ3JpZ2h0YXJyb3cK4paB0YDRjwriloFJc3JhClteCm5vdQriloFzeW5kCndvcmtpbmcK4paBTmF0aW9uCuKWgVBlbnQK4paBa2xhc3MK4paBYXBwbGljYWJsZQriloFEaWFtCuKWgWJyYXNpbGUK4paBcGFjCuKWgUhlaWdodApQdXQK4paBaW50cm8K4paBdW51c3VhbApuYXMK4paBR2Viw6R1ZGUK4paBYmVhbQriloFSZWN0CuKWgVByaW1lcmEK4paBaGF1dAriloF0cmFpdApwcsO8ZnQKaW5hY2nDs24K4paBY29uZmlndXJhdGlvbnMK4paBZ2lsdAriloF0ZXJyaXRvaXJlCmhlegriloFhbHRlCnJlbGF0aXZlCkV4Y2VsCuKWgVdyaWdodApHVgrQv9C+0LvQuApRdWFudAriloFnYXVnZQriloFtdWx0aXBseQpBU1MK0YHRgtCy0LXQvdC90L4K0LDQvdGDCuKWgWplZGVuCuKWgWxpdGVyYXJ5CuKWgURybwriloFhZHZpc2UKaXR6ZW4K4paBZGlzYWcKd2Vic2l0ZQriloHQtNGW0Y8K4paBb2JzZXJ2ZXIK4paBamFudcOhcgp2xJsKa3VwCuKWgVNlcwriloF3b2pldwriloFzdGFnZXMK4paB0LLRgNC10LzQtdC90LgKxYJ1xbwK0L3QvtGBCkRvd25sb2FkCmlwbwriloFncmFmCuKWgdGA0L7QsdC+CuKWgU5pa29sCuKWgWZpYwriloFqb2luaW5nCuKWgWRpdmVyc29zCuKWgUxJS0UK4paBRml0egriloFkaW1pbgriloFkaXN0cmliClNhbQprb3oK4paBYWxwaGFiZXQKb3NlcgpPVVIKdWthCtC60LDRjwriloFzdGVlbAriloFgLS0K4paBdGVuZXIKbWFya2VyCuKWgUhlYXZlbgpuZXdjb21tYW5kCuKWgXByaXNvbmVycwriloFLbmlnaHQK4paBcHJlc2VudHMK4paBcXVlc3RpCuKWgXRyYWlucwpvcGVyYQriloFMaW5lYXIK4paBTUUK4paBQnVjCkxlZwriloFhZ3VhCuKWgUdyaWZmCm9sZwpkc3QKLg0K4paBcGVyc29uZXMKTWFsCtCx0LXRgNC1CmZvbGdlCuKWgWFjYWIKY3R1CnB0aWMK4paBTmF2aWdhdGlvbgpSdXNzCtCz0LDQu9GMCuKWgUZ1bAriloHQvNCw0ZQK0YfQvdCw0Y8Kd25lcgpjb250cmEK4paBam91ZXVyCuKWgUplc3MK4paBcmVuZXcK4paBbGFwCuKWgWNhc3RpbmcKZ2FsCuKWgXTDqW1hdHUK4paB0L3QsNC30YvQstCwCtC30LDRhQrRh9C90LUKKS1cCuKWgdGH0LDRgdGC0L4KfSQtCuKWgWxpY3oK4paBZW1vdApoYXJtCuKWgW9jY2FzaW9uYWxseQriloFob3Jyb3IKZWFzdAriloFwcmludGVyCmFyYW4K4paBTWlzc2lzcwpmb2xsb3cK4paBQmFycnkK4paBaW52ZXN0aWdhdGUKZ293CuKWgUFtZXJpY2FucwpTaW5jZQriloHQstGW0LTQvgriloFyZXVuCm9zY2kK4paBQ2hhcHRlcgriloFiYXkK0YDQvtC80LUKZXRoZQrDqWRpZQpjb21vdAriloFtaWVqc2Nvd28K4paBc3R1ZGllcnRlCm91dmVydAriloHQutGD0YAK4paBREVTQwriloF0b3VjaGVkCuKWgUplcnJ5CnVlc2UK0LvQuNGJ0LUKYXV0aGVudGljYXRpb24K4paBY29sbGUKaGVhcnQK4paBcmVnaW1lbnQKY3JpYmVkCuKWgdCR0L7Qu9GMCuKWgdC/0YDQvtC40YEKY2VhZQriloFtYXNzZXMK4paBc2Nyb2xsaW5nCnVzdG8KU1cKb3ZhdAriloFncsOiY2UK4paB0JDRgNGF0LjQsgriloHQodC10LLQtdGACmF2YWl0CuKWgU1hcnNoYWxsCuKWgUhhc2hNYXAKYWNvbgrDvGNrZW4KW10pCuKWgWV2YW5nZWwKZXR6dW5nCnR0ZW1iZXJnCnN0ZXJzClRNCuKWgdC70LjRgtC10YDQsApxdW90ClByZWQK4paBd2VyawriloFoYWJlcgpsYXZhCnZvdXMK4paBTGF0ZQpjeWNsZQrRgtC40YDQvtCy0LAK4paB0L/RgNC+0LTRgwriloFwb3B1bGF0aW9ucwriloFZYW4KUHJlZml4CmFjdMOpcmlzdGlxdWVzCisnCigpYF0oCuKWgdCb0YwK0YTQuNC70YwK4paB0LbQuNC30L3QuApmdHAK4paB0LLRgdC10YUK4paBZ2R6aWUK4paBdmlkZWEKb2F1dGgK4paBcGlkCsWvbQriloFwZXNzbwriloF0cmFja2luZwppemluCuKWgU1vcnJpcwrRidC40LkK4paBUHJvdmluegriloFNaXR0ZQriloFhcnRpZmljaWFsCmJyw6F6a3kK4paB0LTQvtGB0YLQuAriloFyZXN0b3JlZAriloFjb21tdW5pY2F0ZQphZ2l0ClJlY29nbgriloFsb24K4paB0LfQsNC90Y8K4paBQXJndW1lbnQKZmx1c2gK0LzQsNC90LAKc2Vjb25kcwpVQwriloFSdXRoCuKWgXR1YgriloFCcmV0CuKWgVBlcmUK4paBcmVzcG9uc2liaWxpdHkKxYRjenkK4paBZW52aXJvbm1lbnRzCmtlZQriloFncm9vdAriloFwYWludGVkCuKWgcOJZGl0aW9ucwpjcHkKw6FydApsaWNoa2VpdAphcmRhCkJhdGNoCuKWgUxlb3BvbGQKcmVhc29uCm5vcmVmZXJyZXIKc2VucwriloFyb2NrcwriloFIaXRsZXIK0LvQsNGCCuKWgXF1b3RlZAriloHQutC+0LvQu9C1CuKWgdGD0YDQvtCyCmJhZwouIikK4paBTUwK4paBa29tdAriloFbXwriloFzcGVjdHJhbAplZG8K4paBaW5zaWVtZQriloFzdWZmZXJpbmcKc2xpZGVyCuKWgUtlbm5lZHkKb2xhdGUK4paBUGF0cmkK0LfQuNC4Ck9ICuKWgdGC0LXQsAriloHQv9GA0LDQstCwCtC80LDRhQpyZXdyaXRlCuKWgUVpbnNhdHoKZXh0ZXJuYWwKaG9sZHMK4paBUGxhY2VzCmF0eXBlCuKWgXZ1bG5lcgriloFhYmFuZG9uZWQKT3JpZ2luCuKWgW1heGltYWwKQUFBQQriloFCYXNlYmFsbAriloFDbG9zZQriloFwYWludGVyCuKWgWFzc2lnbmluZwpOQgpibGFzdAriloFLw7xuc3RsZXIKKV0oCmZhY2gK4paBQ29uc3RhbnRpbgpva2VzCuKWgW5vYm9keQriloFzdWJ0cmFjdAriloFmb3NzZQriloFjZXJ0aWZpYwriloFtdXNlCi8pLAriloFQcm9maWwK4paBcHJveGltCuKWgUplcnVzYWxlbQriloFzaW1wbGljaXR5CuKWgXdzegpOVU1CRVIKdXR0YXZpYQpVSVRhYmxlVmlldwppY2h0ZXIK0LbQsNC9CuKWgUxhdgppdGNoZW4K4paB0KfQtdC8ClR1CuKWgWdlb20K4paBenZ1a3kK4paBU3VydmV5CkFOQ0UK4paBZW5jcnlwdGVkCnByb2YK4paBZGFyZQriloFMb3JlbgrRgtCyCuKWgdCQ0LvQtdC6CuKWgWNvbXB1dGVycwriloFleHBlY3RhdGlvbgriloFzdWJzdGFudGlhbAriloHQlNC80LgK4paBYHsK4paB0LTRgNCwCnViYmxlCuKWgXBlcmZvcm1zCuKWgUtyaWVnCuKWgWluY29taW5nCuKWgUNsYXNzaWZpY2F0aW9uCldlYlZpZXcK4paBZXBpc29kZXMKYXBwZXIKw6R1ZmlnCuKWgWdpb3YK4paBRGVwYXJ0CtCx0L7RgNCwCmVkbHkKb3Nwb2QK4paBcHRyCuKWgWTDoXR1bQriloFlc3RpbWF0aW9uCmljb2xlCuKWgS0tLS0K4paBcHJpbmNlcwpIRUFECuKWgWRpZmZ1c2lvbgriloFkcmllCuKWgUFkYQrQvdC40YbQtQpuZ2lueApzaGFsCuKWgWZlYnJ1YXJpCuKWgVRhdApsb29raW5nCmt1bmQK4paBRGVhbgptb25nb2RiCtCy0YjQuNGFCuKWgUF1cgriloFGbG9yYQriloFTdHVkaW9zCtGG0LjRmNC1CmVpbApJbnN0YWxsCuKWgWZyYW5jaAriloFITVMK4paBcHJhY3RpY2VzCmxlagpkYWxlCuKWgXBvc3RlCuKWgUhlbHMK4paBcmVsaWFibGUKxbpkemllcgriloF2ZXJzZQplcm1laXN0ZXIK4paBcXVpdArDqXRpY28KaWxpcwplZG9yCuKWgUN1bHR1cmFsCtC00LbQtQriloFsaWtlZAriloFtb25nb2RiCuKWgUJyb2Fkd2F5CuKWgUlSCmVzenQKaG92CuKWgW3DrXN0CnJlaWNoZQriloFrQgrRgdGC0L7QvAriloFTUUxpdGUK4paBdG9ybmVvClwuCk9yZAriloFBZG1pbmlzdHJhdGlvbgriloHQt9C00LAK4paBSGludGVyCuKWgVZpYQpEZWNpbWFsCm9yaW91cwriloFuw6ljZXNzYWlyZQp3eAriloF0ZWoK4paBdGVtYQpPYnLDoXpreQrRgNC40YLQtQriloFidWlsZHMK4paBbGF0ZW4K4paB0LPQswpWaXNpYmlsaXR5CmzDpHUK4paBc2VjaHMK4paB0LvRg9GHCmNlcmEKQ291bGQK4paBdHJhamVjdAp9fV57CuKWgUphcG9uCmFub3RoZXIKSUsK4paBYmVsb25naW5nCuKWgWZhY2lsaXRpZXMK4paBRGFpbHkK4paBZGVjZQppbnRybwriloHRgdC70YPRh9CwCk5hbWVzcGFjZQriloFCYWsKbG9jYWxlClVHCj0kewriloFjb21wYcOxCmrEhWMK4paBYXJpdGhtZXRpYwpmb3J1bQriloFwb3J0YQpvbmsK4paBZ2VuZGVyCuKWgWV4cGVjdHMK0LHQutCwCuKWgW5hawriloFHcmFjZQriloFzdHJvCml2aWR1YWwK4paBQ09NCuKWgUZhcm0K4paBY2FudG9uCtGC0L7QvNGDCmphdmF4CtGB0LXQuQriloFicmllZmx5CkZhY2UKcm90YXRlCmNvbnN0YW50CuKWgWdhbGxlcnkKYXN0cm8KYWxsZXJ5CuKWgURKCmNoYXJnZQrRhdC+0LTQuNGC0YwKQ2VudApcIiwK4paBZG9ubmEKYXJjYQpsYWRlCnppbgriloFOZWQK4paBaG9zdGluZwppZG9yCml0YXRpdmUKaWdzCuKWgdC/0YDRjwriloF0aWNrZXQK4paBc3R1ZHlpbmcK4paBZGVzaWduZXIKbGFwc2VkCuKWgWxhYXQK4paBZGl4CuKWgWludGVncmF0ZWQK4paBaW5mb3JtZWQK4paBYmVoYXZlCuKWgWxhYm91cgplc3RlbGx0CmNhbGVuZGFyCuKWgWtpbGxpbmcK4paBdHdpdHRlcgppYWUK4paBaGlzdG9yaXF1ZQpERUZBVUxUCmlhxYJhCuKWgXRoZW9yZXRpY2FsCuKWgXVuZGVycwrQu9GP0LXRggphdGFuCuKWgXN1cm5hbWUK4paBaW50ZXJjZXB0CtCz0LvQsNGB0L3QvgriloHQvtC/0YjRgtC40L3QuAriloF0aXJlZAriloFCZXRoCuKWgdCw0LTQvNC40L3QuNGB0YLRgNCw0YLQuNCyCkxpCuKWgdCi0YPRgAriloFTY2FubmVyCuKWgVN0ZXJuCuKWgdCy0LzQtdGB0YLQtQriloFyZXBvcnRpbmcK4paBc3VsbArRhtC40LXQuQpiZXJ0cwpvZ29uYWwKxZFrCuKWgWlwc3VtCuKWgXNldWxlbWVudAriloFTZWl0ZW4Kd29yZHByZXNzCuKWgWZlYXR1cmluZwppc3Rpc2NoZW4KanViCuKWgcOpdHIK4paBdGVhCuKWgWFkYXB0ZWQK4paBc2NhbGVzCuKWgW5hbgpnZXRWYWx1ZQriloFCbHVlcwphY2xlcwriloFzdGF0aQriloFlbnRpdGxlZAriloFSYWxwaApncmF2aXR5CuKWgWVudHJlcHIKa3TDs2JlcgpsaW1hdApsaXMKRGVtbwpyZWxhdGlvbgriloFuZXAKcHJvd2FkCml0aXMK4paBcHVwCm5laG1lcgriloFkaXNhcHBvaW50CuKWgWV0d2FzCmFubm9uCuKWgWFwcHJvdmVkCuKWgWNsZXZlcgpMb2FkaW5nCuKWgXZlcnoKcmVzc2UK4paBaW5zcGlyCuKWgXNhbXBsaW5nCuKWgUJlawp9KSQuCuKWgdCz0YDQvtC80LAK4paBc3BlY2llCuKWgXJlcHViCuKWgWxvYWRlcgriloFlcmYK4paBc2hvdWxkZXIKcmFpcwriloHQvNCw0YLQtQriloFNb250aApTY2VuZQriloFibG9ja2luZwriloFvY2VhbgpnZWJlbgriloFLaWxvbWV0ZXIK4paBYmVkZXV0CuKWgU1peApmbXQK4paBTm9yd2VnCuKWgUlEcwpwYXJhbGxlbAriloFhbnRpY2lwCuKWgXJldmlzCtGF0LDQvQriloHRgdCy0LXRggpDQVNFCuKWgWbDvGhydAriloFhdG9taWMK4paBZGFya25lc3MK4paBRnXDn2JhbGxzcGllbGVyCuKWgdCW0LgKcXVpc2l0aW9uCuKWgVNpZWcKQ2lyYwriloFjaWVudMOtCm5lbGxlClNIQQriloF1cmIK4paBa3NpCmxlcXNsYW50CuKWgdGE0YDQvtC9CuKWgWRlZmVjdAriloFyw6EK4paBc3Ryb25nZXIK4paBcMWCCuKWgWNvbW11bml0aWVzCtC90LjQvdCwCmVuYXMKaWVubmVudAriloFzYWZlbHkK4paB0YLRjwriloFiZW5jaG1hcmsK4paBQnJhdW4KbWV0aG9kcwphcmd1bWVudAp2b3MKb2JveArRgNC+0LLQuAriloFyZWNoZXJjaGUKbW4K4paBYnJpbmdzCm1hY2hpbmUKQ0VTUwpob3N0cwriloFOWQpBdXRvdwriloHRgdC+0LLRgNC10LzQtdC9CuKWgUdhcnkK4paBc2Vuc29yCuKWgWRvY3VtZW50ZWQK4paBcHJlbmRyZQriloFwZWVyCmVuaXgKaGFpCmFyYmUK0YbQtdC90YIKXygK4paBVVJJCtC10LLQsAriloFSZWdpZQriloFNb251bWVudAriloFvbmRlcndlcnAKQmFnCnRpdAriloFzdGlyCuKWgW5lcnYK0YHRgtC+0YDRltGPCuKWgXNvdgriloF3cml0ZXJzCuKWgXNvcnRzCmFic29sdXRlCuKWgWRpZmZpY3VsdGllcwriloFwYXJsYW1lbnQK4paBSUVudW1lcmFibGUK4paBZGlzc29sCuKWgUNIRUNLCmFyaW5hCmluYnVyZ2gKRE0K4paBZWluZAriloFidWRnZXQK4paBY2VydGFpbnMK4paBZsO2cnN0YQphbmphCuKWgdCz0L7QtNC+0LIK4paB0YLQtdC6CuKWgUR1Y2gKZ3VpCuKWgVRlYW1zCuKWgdC80L3QvtCz0LgKTWFyaWUKSW50ZWdyClRocmVhZFBvb2wKcnVzdArDrWsKJSIKZW5mCnNwbAriloFiZWd1bgpsb3UK4paBUmV3cml0ZVJ1bGUKdHVwbGUKYW5lb3VzCuKWgW1hcmluZQphdHRhbgppa2FsCuKWgWdyYWR1YXRlZAppbGzDqQriloHQv9GA0L7QstC1CuKWgdCg0L7QtwonLA0K4paBUGZhcnIK4paBbml2ZWwK4paB0L/RgNCw0YbRjgptdXNpYwriloFzZXRUaW1lb3V0CkVSUwriloFFcmlrCnBpdAriloHQpdGA0L4K4paBcGnFggriloFwZXJpCtC00L7Qugp1c3p0CuKWgUJlYXIKQ2xhc3NOYW1lCuKWgVBhcmxhbWVudAriloFhaXgK4paBaW52aXRlZAriloFQQVRICnh0ZXIK4paBUmFjZQriloFoZWNobwriloFUb3dlcgriloF1dGYKYWN0bHkK4paB0LHRg9C00LUK4paBYW5nbGVzCtC90Y/RjwpvdXZlbGxlcwriloFjbGltYXRlCuKWgXNpbmdpbmcK4paBbmF2aWdhdGUKPic7CmFkb3dzCuKWgWxldGEK4paBU2l0egriloFwYXJ0aXRpb25zCuKWgWRvY2sK4paBxbx5CuKWgWFsbG9jYXRlCuKWgWJlbmVmaXRzCuKWgW5pZWRlcgp4cGF0aAptZWNrCsOkbGxlCuKWgWNvdXBsaW5nCtC20LjQuwpGb3JLZXkKYXJnZW50CmNsb3UK4paBaW5zdHJ1bWVudHMK4paBZW50aHVzCuKWgW3DqWcK4paB0J/QsNCyCuKWgVJhY2gKLS0tLS0K4paBQVBJcwriloFWaWVyCkNtZAppdG9yZQriloFDdWJhCuKWgWTDoXR1bW1hbAriloFlbWJlZGRpbmcKc3RkaW8K4paBR2lsYmVydAriloFnZXByw7xmdAriloFzdGF0aW5nCuKWgXRyaWdnZXJzCis9CuKWgXNww6ljaWFsCuKWgWRlbGliZXIK0LzQuNC9ClByb2R1CuKWgVN0YXRpCuKWgXp1cwprdGlvbmVuCkRpc3BhdGNoZXIKaWRhbAriloFMUApvcHRlcmEK4paBZXN0YXIK4paB0LfQvdCw0YfQuArRgdC80L4Kb3VzZXMKZW5nb25vCuKWgVdQRgpwdWJsaXNoCuKWgXRlb3IKZWxpZgriloFlcmcK4paBc2VwYXJhdGlvbgpQYW4K4paBT3JjaGVzdHJhClBldGVyCmJvdW5kcwriloFTaGFrZXNwZWFyZQriloFjYW50YW50ZQriloFkZW1pCuKWgVBvcHVsYXIK0YTRgAphcnJpbmcK0YbQuNC9CuKWgdCY0YEKdm9uCuKWgXN1YnN0aXR1dGlvbgriloFsw61uZWEKXH0kLgpjb21vCuKWgdCy0LDQtgp3YWdlbgriloFyYXJlbHkK4paBcGVyaW9kcwpnbG9iCuKWgUZyaWQK4paBVGVycgriloFSZWxlYXNlCkJyYWluegriloHQs9GA0LDRhApESVMKY29tcGF0aWJsZQriloFwb8SNCkxJTgriloFLw6RsbG9yCuKWgUFyaXpvbmEKcHB5ClNlcQriloFBaW4K4paBVG91cm4KYnJvdwriloFLw7ZyCuKWgWFzaApvZ2VuZW91cwriloFkaWFsZWN0CuKWgdC90LDRgdC10ZnQsApteXNxbGkK0YbQvtCyCuKWgWZsb3IK4paB0YTQu9C+CklBQgriloFXaXRoaW4KXigK4paBYm9pcwriloF0YW5rCuKWgWFmZmlsaQriloFoaWpvCuKWgUthdGUK4paBVmVybAriloFNaWFtaQriloF0eXBlc2NyaXB0CtGa0YMK4paBVmVybgriloHQstC40YHQvgppZW1hbm4K4paBY292ZXJhZ2UKYnJpZQriloFTdGFydGluZwpudW1weQriloFKZW5raW5zCuKWgWvDqXQK4paBZ3J1cAriloFTY2llbnQK4paBaW50ZXJydXB0CuKWgWJsb2IKdWdlbAriloFPcnRoCmFiYW1hCuKWgUJhcHQKb3duaWsK4paB0LHRi9GC0YwK4paBSnVsaXVzCuKWgdCf0YDQtdC3CuKWgXN1YnN0aXR1dGUKc3VwcG9ydGVkCmNoeQplZ3l6ZXRlawriloFQZXJmb3JtYW5jZQpsZXNzbHkKQ29uc3RydWN0b3IK4paBZXh0ZW5kaW5nCuKWgU11c2xpbQpPdmVyZmxvdwriloFKZW5uCuKWgXByb2R1egrQvNGW0ZcK4paBcGHDrXNlcwriloFldXgK4paBZmF0ZQpvbG9nZQrRg9C6CuKWgXdvYmVpCuKWgVNhY2hzZW4K4paB0YHQsNC50YIKTW9kZWxzCuKWgUZhc3QKYmVzb25kZXJlCuKWgUZSCuKWgWFjb24K4paBRGVua21hbAriloFhbmNoCuKWgXDDumJsaWNvCuKWgVRhcwriloFjYW5kCuKWgXBhxbpkemllcgriloHQnNC+0L0K4paBdmVyc3VzCnJ1dApHVAriloFpbnNlcnRpbmcK4paBY2FuYWQK0ZTQvAriloFNZXRybwriloFIZXJ6b2cKSWdub3JlCuKWgWRlY3JlYXNlCuKWgdC/0YPQvQriloFGaXNjaGVyCuKWgU1hbGwK4paBbsO2cmQKaW9zdHJlYW0K4paBTHV4ZW1iCnBheWxvYWQK4paBWmVpdHVuZwriloFtb2RpZnlpbmcK4paBQ2hlcgriloFMdWNpCm54CuKWgWxvb3NlCuKWgXRvcGljcwriloF2YXJpZWQK4paBcGcKYWplcwp1bW0KVmlld3MK4paBQmVhdQpNQVAKaXBlbGluZQriloFJbnRlcmVzdAphcml0aAriloFzZWfDum4K4paBR2VtZWlucwriloFBdHRyaWJ1dGUKY29tbXVuaXR5CuKWgdGG0LXQvdGC0YAK4paBa2lsb21ldGVyCuKWgcOpY29ub20KbGFyYXRpb24K4paB0LrRigriloFjYXJyaWFnZQriloFMYW5lCuKWgdC90LXQvtCxCmt1cgriloFBRgpJTlRFUgopKSQK4paBYmVpZGUKZGVzdGluYXRpb24K4paBZm9udHMKYXBwZW5kQ2hpbGQK4paBTUFSCuKWgWdheQptaWwKbGVzaArDqHQK4paBV2FuZwriloFZZWFycwriloFTeW1ib2wKTGl2ZQpxdWVuY3kK4paBVXNlcnMK4paBVW5pY29kZQriloFTYXUK4paBdG9ucwriloHQndGWCuKWgdC60YDQsNGXCkFYSQriloFQaWNrCkFJCuKWgWhhdGgK4paBYWluZGEK4paBcGFwYQriloFDZW5zbwriloFCYWxkCuKWgdCd0LDRgdC10ZnQtQriloFzaW11bGF0aW9ucwriloFqYXJlbgriloFpbmhlcml0ZWQK4paB0YLQvtC5CuKWgWZlZWxzCnJlc3Npb24K4paBb2t0w7NiZXIKYmlkCsOhc2kK4paBbXVzcwp2ZW50b3J5CuKWgW1laXN0CuKWgWJvcmUK4paBc2xpZGVyCtC00LXQu9C4Clw7CuKWgWV4dHJhY3RlZArQutGD0YAKRWRnZQriloFwZXJmCuKWgUJyaWdhZGUK4paB0LPRgNCw0LQKaWVuaWUK4paBTm9yZGVuCuKWgWNhbmNlcgoiLwpDdXIK4paB0KHQtdGA0LUK4paBbGlxdWlkCnN0cnVjdHVyZQriloFjaG9vc2luZwriloFQZXJsClNpZGUKw7xzCtGA0LjRgtC+0YAK4paBa29zdAriloFwYWNrZXRzCuKWgdC60L7RgtC+0YDQvtCz0L4K4paBQ29tdW4K4paBZmluZ2VycwpvZ3LDoWZpY2EKPjoK4paBY2hhbXBpb25uYXQK4paBYmxpZWIK4paBU2l0dQriloFzdWljCmFuZGlzCkZyZQriloFDb25jCuKWgXJlcHVibGljCuKWgWFybWVkCuKWgWhlbGwK4paBaMO2ZwpyYWdtYQriloFlbnNlCuKWgWFjcmVzCuKWgdCS0ZbQtAriloFSZWZvcm0KTWFpbkFjdGl2aXR5CmtlZXBlcgplcmIK4paBbW9uYXN0ZXIKc3Vic3Vic2VjdGlvbgriloHQlNC40LIK4paBY3JlYXR1cmUK4paBaW5kaWNhdGluZwriloF1cmxzCuKWgWtlaW4K0L7QsdGA0LDQtwpwaWNrCuKWgUFkbWlyCuKWgW9sZGVzdAriloFtdXoK4paBY29udHJhZGljdGlvbgriloFwcm9iYWJpbAppbGxpYW50CuKWgXBhdgriloFwYXBlbAp1YnMK4paB0LbQtdC90LAKQU1MCuKWgXJlY2lwCuKWgUNPTAphZGRlZAriloFjbHVlCuKWgVVrcmFpbmUK4paBamVsZW50CtGH0LXQvdGMCuKWgW1hdGhlbWF0aWNzCkFjY2VwdAriloHRgdC+0YIK4paB0YHQtdCy0LXRgAriloFpc29sYXRlZAriloHQv9C+0Y8Kd8O8cgpSb3V0ZXIKQ0FUCnJnYgriloFMb3YKbXV0YWJsZQriloFXZXMK4paBSXRhbGllbgpEcmFnCmVuaXVtCmF0dGluZwp0Y3AK4paBZXJmb2xndGUK4paBQmVpdArQs9Cw0YLQvgriloFTeXN0ZW1zCuKWgXJlc2VydmUKZXJlZQriloHQn9Cw0YDQuAriloHQt9Cw0LvQuAriloFyZW50CuKWgXN1bnQK4paBR2lybHMK4paBRXJuZXN0CuKWgWZpdHMK4paBb3Bwb24K4paB0LbQuNCy0LXQu9C+CuKWgWF2YWllbnQK4paBRmxvcmVuY2UK4paB0YfQuNGB0LvQtQriloFlbmdpbmVzCkR5bmFtaWMK4paBc3R5Y3puaWEK4paBYmlhcwriloFFeGNoYW5nZQrQtNC40LkK4paBaGlzdG9yaXF1ZXMK4paBSMOkCmhvZAriloF3xYIKc2NoYXAK4paBbGFjCuKWgUZvaQriloFkd2VsbAriloFVbnRlcm5laG1lbgpVUk4K4paBa2lsb21ldHJlcwriloHQntC00L3QsNC60L4K0LrQu9C4CuKWgVNyaQpHcm91cHMKbWluZApvc2xvdgpmZXJuCmVndQphYmVsZWQKRmlkZGxlCuKWgUNlbnR1cnkKLy0K4paBSmVneXpldGVrCkhlbgplbnNlbWJsZQriloFHdXQKX3t7XAriloFyYW5raW5nCiskCtCw0LvQsAriloEjewppbWllbnRvcwphY2hpbQpyaWRlcwriloFLbGF1cwriloFpbnRlbmQK4paBS2VudHVja3kKY2lwZQriloFEaWVuc3QK4paBc2l0dWF0ZWQK4paBcMOzxboK4paBc2NyaXQKY2xpcArQvdC10YIKdGFibGVzCuKWgU5pZWQK4paBTWNLCuKWgXBvd3N0CuKWgWt1bm5lbgriloFFdmFucwrQttC00YsK0LLQsNGC0YwKdWNoYXIK4paBcmVzaWRlbnRzCmlhawriloFSZXNvbAriloF2ZWNlcwriloFzYXRpc2Z5aW5nCklORgriloHRgdC40L0K4paBY3Jvc3NpbmcKaWJlbgriloHRiNC40YDQvgpwdG8KSUxMCuKWgdGA0L7Qu9GMCuKWgWFrdGl2CuKWgdC+0LHRgNCw0YnQtdC90LjRjwpXaWtpc3BlY2llcwriloFIw7ZoZQpjcm8K4pWQ4pWQ4pWQ4pWQCmFsdHJhCuKWgUZJTEUK4paBdXBzCuKWgWFsbG9jYXRpb24KTWljaGFlbAriloFhY2tub3dsZWQKTGludXgK4paBbWV0cm9zCnR0ZQphZmVuCuKWgXhjb2RlCuKWgdGC0YDQsNC00LgKc3BlY2llcwriloFpbmp1cnkK4paB0YHQsNC80YsK4paBbGF0dGljZQpNYXRlcmlhbAphbmRlbmJ1cmcK4paBaHV2dWRzdGFkZW4Kc3RvcnkK4paBdmFyeWluZwriloFrw7Z2ZXQK4paB0KDQvtGB0YHQuNC50YHQutC+0LkKaXJzZQriloFkcnVtClByZXNzZWQKTGFyCuKWgUFndQriloF3ZWlsCuKWgWNvbW1lbmNlCuKWgVNlZ8O6bgpHZXN0dXJlClNoYXBlCuKWgVZvcnMK4paBc3VjY8OocwriloFjb3JyZWN0ZWQKS2FyCuKWgWNydWVsCuKWgXBvbGl0aWNvCuKWgVNjaHJpZnRzdGVsbGVyCuKWgXJpc3VsdApldHUKYXJjaGl2CuKWgWfDqW5lcm8K4paBTMO8CuKWgXRyaXVtcGgKT1JTCkx1CuKWgXBlcnNvbm5lbAriloFIaWxscwphc3NldApkb21pbgpSZWNlaXZlCuKWgU9hawriloFLbm8K4paBVGhlb3J5CmlyaWUKb3dhbgriloFlc3RhdmEK4paBZXhlY3V0ZXMK0LnRggrDs3BlegrQv9C+0LvQvgrDqXRpY2EK4paB0L3QsNC30LLQsNC90LjQtQriloFjb252ZXJnZXMK4paBbm90cmUK4paBcG9wdWxhdGVkCuKWgW1vdmVtZW50cwriloFzdGF0aXN0aWNhbAriloFad2VpdGVuCnF1aW4K4paBaW1wb3J0YW50ZXMK4paBa2xlaW4K4paBU2VndW5kYQpzY2hsaWXDn2VuZApGYWlsdXJlCm5hcgpkYWcK4paBcnVvbG8K4paBZmljdGlvbgriloHQuNGB0L/QvtC70YzQt9GDCuKWgWNyaXNpcwriloFHZXR0aW5nCiwlCuKWgdCw0YDQvNC40LgK4paBY2FtcHVzCuKWgWZvb3RlcgriloFkw61hcwrQsdCw0L0K4paBbGliZXJ0eQriloFnaAriloFjaGFtYmVyCuKWgWRpc3RyaWN0cwriloFleGNpdGVkCuKWgWNhbmNpw7NuCnRlcm8K4paBV29ya2luZwriloFjesSZxZtjaQrQu9GM0L3Ri9C5CuKWgWZvcnVtCuKWgUVoZQriloHQutCw0YLQsAppdGF0aW9ucwpUb29scwphY2hpdgriloFjcmVzCmFzdG8K4paBcmV2ZXIK4paBbmF6aW9uYWxlCuKWgWRvb3JzCuKWgU5hbmN5CuKWgWlzbGFuZHMKSW1wCuKWgUNoYWlyCuKWgXZvcm0Kc2VpbgriloHQtNC+0LrRgwplcnNldAriloF0w6R0aWcK4paBS3JpdAriloHQv9GPCuKWgWNvbnNlcnZhdGlvbgriloFQYXJ0aWRvCm1pbmlwYWdlClZhbGlkYXRvcgriloFyZWNvdmVyeQriloFOQVNBCuKWgWJyZWFzdAppbHR5CmFuYWx5CmVsaW5lcwriloFTYXR1cmRheQplbWFyawpjZWoKWmVybwriloFUdXJuZXIKc2VjdXJlCkV4aXN0cwriloFSaWNrCmV2YWx1CmN0cmwK4paBY29tcHJlc3Npb24K4paBQ1VSTAp0ZXh0Y29sb3IKKVwsCmxvbmdyaWdodGFycm93CuKWgUZlcm5zZWgKaWNoYQriloFsb2kK4paB0J7RgtC1CuKWgWNhdmUK4paBZG96ZW4K4paBZXhwbGFpbmluZwriloFpbm5vdgriloFOaWNob2xhcwriloFkaWFtZXRlcgriloFNYXJpYW4K4paBZmlyZXMK4paBYXJ0aWZhY3QK4paBUGFya2VyCuKWgUJ1bmQK4paBdmVydGUK4paBdGFsZW50CuKWgUx1Y2FzCnJldmVyc2UK4paBZm9sZ2VuZGVuCuKWgVNhaApqZWN0aW9ucwriloFpbnZlY2UK4paBY29zdGl0dQriloFzc2wKfX1eCuKWgXZpb2xlbnQK4paBc3BvcwpSb3V0CmpkawriloHQt9Cw0LzQtQriloFmdXJlbnQKYW5kYWwKSG9tCuKWgVNlbmlvcgriloFwb3VuZHMK4paBRGlzY29ncwriloHQt9C1Cid9WwriloFOYXBvbGVvbgpvcmRpbmF0ZXMKw6BuCuKWgWt1cnoK4paBdmVyZQriloFyZXVzZQriloHQk9C10L0K4paBU3lzdAriloFkaXNhcHBlYXJlZAriloFXYXRjaApiaWJsaW90aGVrCuKWgdC60L7RgNC/0YMK4paBQ3MK4paBfWAK4paBcsO2cgriloHQtNC10LvQsApWQgriloFjYWxjdWx1cwrRgNC+0LTQsAriloFqdWRnbWVudAphdGlsZQriloFsb25ndWUK4paBSHVzCkphYwp9fSkKUklQVApJQUJvdAriloFhcMOzcwriloFhc3RvbgpXZWJhY2hpdgriloFVUkxzCuKWgWNvYXQK4paB0Y3QutC+0L3QvgriloFsZWFyCmV4dGVuc2lvbnMK4paBQ2xhc3NpYwpUSQriloFUYWdlCuKWgWzDoQriloFzZW1iCuKWgWTDqXZlbG9wcGVtZW50CklTVFMK4paBc29sdmVzCixcLAriloHRh9C10LzQv9GWCm9yZGluYXJ5CuKWgUJhdgriloFtdWNob3MKU2VsZgriloHQnNCw0LkK4paBRGlldAriloFuZWNlc3NpdHkK0LLRltC0CuKWgW1hbm8K4paB0KHRgAriloFjYXJyZQriloFDYW1lcmEK4paBTmFyb2QK4paBUGhvbmUK4paBcG9seW0KaW1vcmUKaXNFbXB0eQriloFIb3VzdG9uCuKWgVJlY2UK4paBcHJlc2VudGF0aW9uCtC90LjRhtC40L/QsAriloFEYgriloFjb25maWRlbnQK4paBfXsK4paBYnVsbGV0CuKWgXt9LApBTkdFCuKWgU5vdHJlCmNoaW4K4paBRHJhZ29uCmVyY2EKaWFsaQriloFhc3NldAriloFtdWl0bwriloFkZWVwbHkK4paBcmVzdHJpY3Rpb24K4paBY29tbWVyY2UK4paBQm9tYgpjYXVnaHQKcXEK4paBQXJhZwriloHQvdC10LzQtdGGCuKWgUFuYWx5c2lzCuKWgcSNbMOhbmt1CuKWgWJhYnkK4paBZWNodGVyCuKWgdC+0LTQvdC+0LPQvgrQttC10L3QsAriloF3aGl0ZXNwYWNlCsOndQpMSVNUCmZyaXF1ZQriloF2YXJpYXMK4paBV2l0CuKWgUxpY2VuY2lhCkV4aXQK4paBc2llcnAK4paBYXNzZW1iCuKWgXNwbGl0dGluZwriloFwYWxhY2UK4paBYmxvY2tlZAriloFib3VuZGFyaWVzCuKWgWl0ZXJhdGlvbnMK4paBUm90dGVuCuKWgVZlcmtlaHIK4paBd2VlcgpUZXN0cwppZnRpbmcK4paBcmVndWwK4paBcGVyc2lzdAriloFTb2x1dGlvbgpwYgriloFjb2xsYXBzZQriloFhcnJlc3RlZAriloFwcmVkaWNhdGUK4paBWm9uZQriloFpbmdlbgp6w6FsZXoK4paBYmFua3MKcGxhbnQK4paBTmVsbGEK4paB0LHQsNC9CuKWgVNub3cK4paBS3JldXoKw61jaW8K4paBZW50ZXJzCuKWgWV4cG9zZQrEjWkK0YjQuNC1ClF1YWwK4paBbGFuZHNjYXBlCuKWgdC/0L7QtNCw0YbQuNC80LAKbWFpCnN0YWcK0L7QstCw0L3QuNC5CkRFRgpbXXsK4paBZGVybmnDqHJlCmljdXQK4paBWG1sCuKWgXN1Ymdyb3VwCuKWgVBvbHNjZQriloFXYXJuaW5nCuKWgXZlaGljbGVzCmlvdAriloFkbGwKcm9udAriloFMb3Vpc2UK4paBYXJhCuKWgVNjYWxhCuKWgWNhbm9uaWNhbAriloFwbGFjaW5nCkVSWQriloFKYWcK4paBdmlydXMKZW11CuKWgX0pOw0K4paB0LzQvAriloFUcnlpbmcK4paBTGV4aWtvbgphYm9yZAriloFleHBlZGl0aW9uCuKWgWRlbWFuZGVkClp5ZwpsZWluCuKWgXZlcndlbmRldArRgNC40L3QsAp3b2wK4paBcGl2b3QK4paB0L7QtNC90LDQutC+CuKWgXByb3ByaWV0CuKWgWF3YXJkcwp0b3V0CuKWgWFzc2ltCuKWgVN0b3JtCkxpbWl0CmVsaW4Kd2VhbHRoCnVlegriloFyYXBwcmVzZW50CuKWgXJlc3RhCuKWgWdlZ3LDvG5kZXQK4paBam91cm5hbGlzdAppc2llCuKWgWZhY2lsaXR5CmlsbGVkCnVsawriloFQSwpBbmNob3IK4paBXykKVkYKTEFCCuKWgW7DpQpvZG9zCuKWgWJpbGxpb24KdmlydGkK4paBSmV1eArRjtC30LAKdG9tY2F0CuKWgWNoYXJ0cwriloFCdW5kbGUK4paBbHN0CuKWgWV4ZXIK4paBZmVtYWxlcwriloFvYmxpZ2VkCuKWgWFieQpyb2xsZWQKZHJpCuKWgVNjaGUK4paBdmVzc2VscwpJTUFSWQriloFyZWFzb25pbmcK4paB0L/RgNC+0YLQtQpGSUxFUwp2ZXJrCm9zb3MK4paB0LrQvtC80LzRgwrQtNGW0ZcK4paBZGQK4paB0YHQvtC+0YLQstC10YIK4paBSU9FeGNlcHRpb24Kc2vDvWNoCuKWgUNMSQriloHRmtC1CkNNClRECuKWgXBvc3NpYmlsaXRpZXMK4paBQ29tcG9zCmhhbGYK4paBd2VicGFnZQriloFzd2luZwriloF6YXMK4paBY3ljbApsZWlkCmlzdGljYQriloFJbnNlcnQK4paBU3dlZGVuCuKWgXdhbnRpbmcK4paB2KfZhAriloFlZXV3CuKWgUFkbWluaXN0cgriloFXYXJyZW4K4paBYnMK4paBcGFtCmFudXMKRHJhCmV4cGwK4paBS2FudAriloFBdXN0aW4K4paBY3NhawriloF0aGVhdHJlCuKWgWNvbXBhdGliaWxpdHkK0LzQsNGC0LjRh9C1CnNldFN0YXRlCtCx0Y4KfXt8CuKWgUR5CuKWgVp3aXNjaGVuCkFsdApDTEFSRQpzdGVwcwriloFMYWdlCuKWgU1pdHQK4paBRHVibGluCuKWgdGA0LDQsdC+0YLRiwpkZWVwCuKWgWZsb3dzCuKWgVBhbGFjZQp1bml4CnJlZnMKdW1hcgphc2V0CmNvdgriloFwaW5nCuKWgVNhZmFyaQpmbHVnCmNyZWVucwp7IwriloHRgNC10LAKYWRvcnMK4paBYW1vcgp1Y2UKZGVtaWMK4paBTmV0aGVybGFuZHMK4paBY2x1c3RlcnMK4paBZW5mb3IKbWFyaW5lCuKWgWJ1Z3MKaXp6YXRhCuKWgXNjcmEKTGVzCnF1aWNrCuKWgXR1cm5vCl8qCtC10YDQsApHZW5lcmF0ZWQKPlsK4paBZXN0cmUKb3JkZQriloF2ZXJnCtGA0L7QtwriloFwYXUKaW5jbHVkZXMKYXNzYQphZGVycwriloHQk9C10YDQvNCwCuKWgWVzdGF2ZW4K4paBZWFybGllc3QK4paBcmVzdWx0YWRvCm11bgriloFwbG90cwpkaW4Kc29ydGVkCuKWgXByZWZlcmVuY2UKcmnDswrRgtGD0YDQtQriloFMaWd1ZQriloHQt9Cw0LLQtdGACnBocgriloFwb2NrZXQK4paBcGFybAriloFsYWsK4paBcG93aWUK4paBYWx0cmVzCiR9OwpwbGFpbgriloFDcmVkCml0emEKcGVycApHcmVlbgriloFkZXZvdGVkCnByb2R1Y3Rpb24Kd29ya2VyCmVsc2VuCuKWgXZlcm4K4paBbcOhcmNpdXMK4paBQ29uZmVkZXIK4paBTGl2ZXJwb29sCuKWgdC80YPQt9C4CuKWgWVtYWlscwriloFkaXN0YW5jZXMK4paBc2VnbWVudHMK4paBYW50aAriloF3cmVzdAriloFob29nCuKWgWNpbmVtYQpycm9yCuKWgWdlYm9yZW4K4paBw6ljCk1hcmtlcgriloFDb21wZXQK4paB0LvQuNGB0YLQvgphbGxvd2VkCnZvbHVtZQpFc3BhZ25lClplCuKWgWZpeGVzCuKWgXJvbmQK4paBYXJyYW5nZW1lbnQKL34KLl0oCuKWgUZvcnLDoXNvawriloF3ZWl0ZXJlbgpleGNlbAriloHQt9C80ZYK4paBbW9kZXJuZQpFbmdsaXNoCuKWgVRyYW5zZmVybWFya3QK4paBYmVhcmluZwriloFjbGVhcmVkCuKWgdGB0LDQvAriloFkaXZzCsSHaQriloHRjdGC0L7QuQriloHQk9C10L7RgApzY2VuZQriloFhZ2VzCkdFTgpyw6RuCuKWgVRvdWwK4paBQWJzCmrDoXQK4paBbWVkaWFudGUK4paBZW1wcmVzCuKWgUVtcGxveWVlCuKWgXBvbHlub21pYWxzCuKWgW9wdGltaXplCuKWgdCy0YvRgdGC0YPQv9CwCmZhcmUK0LLQtdC5CnhmCnF1ZXoK4paBYm90YW4K4paBZGVmZW5kCuKWgVF1YXJ0Ck1vbnQKdmIKdGljawpXRAptaW5lCuKWgW1vZGlmaWMKbm90aWZpY2F0aW9uCuKWgWRlbm4K4paBYWxnbwriloFTcG8K4paBbWlzdHJ6b3N0Ci86CuKWgWFwcmVzZW50CuKWgdC/0YDQvtC0ClZvbHVtZQpza8SFCnByb3RlY3RlZAriloFUdXJraXNoCmF6eQriloFwb3V2CuKWgXBlcsOtb2RvCnNrb2cK4paBZW50cm9weQp6ZWQK0YLQvtGA0LgK4paBbGlqCmJvYXJkcwriloHRgdGC0LDRgtGDCkJvb2wK4paBcG9saXR5CkAiLAriloHRgNGW0LoKbsOpZQriloFadWcK4paBVW5pdGkKw6ltZXQKYXRpZW5jZQpkaW1lbgriloFTdGV2ZW4KSGEKQUNUSU9OCuKWgXdhbmQK4paBTmF2YXIK4paB0YHRltGH0L3RjwpXYXRjaAriloFTdHVhcnQK4paBemRlCuKWgdC60L7QvdGC0YDQvgpkYXRhc2V0CnnDswriloFCdXNoCuKWgdGB0LXQsdGPCuKWgXdvcnRoeQriloFCbGUK4paBcHJvcG9yCuKWgVZpbGxhZ2UK4paBcnkK4paBdm9pdAriloHQutC+0L/QuNGPCuKWgXpwCuKWgWN1cmEK4paBSHRtbAriloFEaWVzZXIK4paBRGF5cwpvbm5lcwriloFhbnRpZ3UK4paBU3RhYXRlbgriloFmYWludApvbmdzCuKWgcO2c3QKUmVkaXJlY3QK0LXQu9GMCmF0b3JpYWwK4paBYm90aGVyCkVkaXRUZXh0CuKWgUdpdWwK4paB0LfQsNCy0L4K4paBcHVlYmxvCuKWgU1pc3Npc3NpcHBpCmphawriloF3aW5ncwpvbmMKw612ZWwKaWVuY2lhCmVudGxpY2h0CuKWgUJUVwpvcm5hbAriloHQmtC+0YDQvgriloHQvtC00L3QuNC8CuKWgXNhbHYK4paBZmluZGVuCmdlbwriloHQsNCy0LjQsAphdHR1bmcKdml2CuKWgUx1dGhlcgriloHQvtCx0YnQuAriloFSb2xsZQriloFBYnJhaGFtCuKWgWNlbnRlcmVkCuKWgXNsYXNoCmlzYXQKZW1hbm4KT3MK0L/QsNGA0YLQsAriloFQYWJsbwriloFjb2xsYWJvcmF0aW9uCnBhdGhzCsOpZGl0aW9uCuKWgXZpZXdlZAriloFjb25zaXN0ZWQK4paBcmVjb3ZlcmVkCuKWgU1leGljYW4K4paBRml4CuKWgXNwZWxsClNwZWNpYWwK4paB0KHRggplc3NldXIK4paB0KPQutGA0LDQuNC90YsKZm9ybWVyCuKWgcWbdwriloF6ZXJvcwriloFTdHJhw59lbgriloFvcmdhbmlzYXRpb24Kw7xzc2VuCuKWgVNpZXJyYQriloFTZWFzb24K4paBdm9sb250CkJlYW5GYWN0b3J5CuKWgdC/0L7QvNC+0YkK4paBcHJlc3NpbmcK4paBZXF1aXZhbGVuY2UK4paBY2F0dAppY2l0eQriloFhY2NvbXBsaXNoZWQK4paBeW8K4paBc2ljCuKWgWltcG9ydHMK4paBYWNjb21tb2QK4paBUG9ydG8K4paB0Y/QutCwCuKWgWxvYW4K0YLQuNC60LgK4paBY2hlY2tvdXQK4paBYXNzZXNzCuKWgVBvcHVsYXRpb24KdXJlbnQKY2xvanVyZQriloFTYW50b3MK4paBaW5mb3Jtw6FjacOzClBPUwriloFnYXJlCuKWgWtpY2sK4paBcmFkaWNhbAriloFQZWFjZQriloFzdHJlYW1pbmcKY2FtcAp6xIV0CtCz0L7QstC+0YAK4paBUmVnaWVydW5nCuKWgXByb2NlZWRlZApmbQrQu9C10L3RiwriloFlYXJuZXN0CuKWgVBhcmFkCnJlcXVlc3RzCuKWgVJhdW0KxaHEjQriloFwb2xpY2llcwriloFUaWcK4paBc2l0dAriloFFbmVyZ3kK4paBcHVyZWx5CuKWgUhhdXQK4paBU3BlZWQKYmlvCuKWgW9yYW5nZQriloFiaWdnZXN0CuKWgWJyaXRhbm5pcXVlCuKWgU5vdGFibGUKdnUK0LvQtdC90LjQuArQsdC40L0K4paBTmFzaArRidC10L3QuNC1CuKWgWNpZWwKYWTDqW1pZQriloHQs9GA0YPQtNC90Y8K4paBam91ZQriloF2b3RlZApyaWNvCuKWgdCz0L7RgAriloHQutC+0LzQsNC90LTRgwppdGl2aXR5CuKWgdGJ0LUK4paBZGVmaW5pdGUKdXJvcGEKISIpOwpEZWZhdWx0cwriloHQvdC10LrQvtGC0L7RgNGLCsOpZMOpcmF0aW9uCuKWgXNpbGx5CuKWgXRhbGtlZApyZXUK4paBTG9tYgriloFzdGF0dWUK0LrRgtCwCtGO0YAKdW1hYmx5CuKWgdCz0L7RgNC+0LTQtQriloFSdW50aW1lCuKWgWRpYWduCuKWgXJldHJvCuKWgVN2ZXJpZ2UK4paBaW5pY2lhbAppZW56YQriloFmaWdsaW8K4paBem9nCuKWgXJleQriloFSdW5kCtGC0L3Ri9C5CuKWgWNlYXNlZAplcm5vCuKWgWVzYQriloF0cm91dgriloFHZW1laW5kZW4K4paBY29tZXJjaWFsCnNrYXAKZW5hcmlvCuKWgWp1cmlzClRCCtC90LDQu9CwCuKWgXZpagpWTwriloFjbGluCmrDtnIK0YHQsNC9Cm93YcWCYQpyaWJ1Y2nDs24K4paBdXJzcHLDvG5nCuKWgWNvbmRlbQriloFTdGFnZQriloFtaXhpbmcK4paB0YDRltC3CuKWgWZhbnMKaMOhegpzb2NpYWwKemFuCuKWgdGB0LLQvtC5CkNvb2tpZQriloFSb2xhbmQKYXppb25hbGUK4paBU2xvdmVuCuKWgUZpY2hlCuKWgVPDqQpow6QK4paBb2ZmaWNpYWxzCuKWgcOubnQKSW50ZXJjZXB0b3IKVGFibGVzCuKWgWRhdm9uCmluaXRpYWxpemUKXT0iCuKWgUJvZHkK4paBVXBwZXIK4paBQ29sbGVjdAriloFaw7xyaWNoCkhvcml6b250YWwKVHlwCuKWgXBvbMOtdGljbwriloFSZXdyaXRlQ29uZAriloFob3BlZAriloFhbnhpb3VzCkxpdGVyCmphaHIK4paBYXNzZW1ibGUK4paBY3J5cHQKbGFob21hCkFTSAriloHQkdGA0LgK4paBQ2ljCnR3aXR0ZXIKaHlwZXIK4paBVGVsbArRltC70YzQutC4CtCy0L7QsdC+CuKWgWJhemllCuKWgWNvbnRlbXBvcmFyeQriloFQYXJhbWV0ZXIKc3R3YQriloFiZWtlbmQKY29jawpwcmV2aW91cwplbnNrYQriloFjYWxsZXIKXV0pCuKWgVJhegriloFTZWxvbgriloFwcm9wb3NhbAriloFiw70K4paBU2llZAriloFBcmJlaXRzCuKWgXByaWRlCuKWgXNsb3BlCmlkw6kKZ3JhZGllbnQK4paB0JTQttC10YDQtdC70LAK4paBU0gK4paB0YDQsNC30YDQsNCx0L4KaXZlcnNpdHkK0YHQv9C+0LTQsNGAClx7XAriloHRgdGC0LDQu9C4CuKWgUVpbnplbAriloFyZ2JhCuKWgUFuaW0K4paBYWxsZXMK0LHQsNGACmVydGUK4paBcsOpYWxpc8OpCkluc3RpdHV0CuKWgW1hcmt1cAriloF2YXJzCuKWgWdhbQriloHQktCw0YHQuNC70YwKaXp6YQriloFDb2IK4paBTWV0YWwK4paBbGVhawriloFMYW5jClN3aXRjaApEZWxheQphdHV1cgriloHRh9C10YLRiwriloHQsNC90LPQu9C40LkK4paBbGVnYWN5CuKWgWRlc2Fycm9sbAriloF0b3BvbG9naWNhbAriloFqZXdlaWxzCuKWgU5lZGVybGFuZHNlCuKWgWF0bW9zcGhlcmUKdXJiYW4K4paBc2xvdgriloFsYXd5ZXIKcGVjaWFsbHkK4paBYWx0ZXJuYXRlCuKWgXBhcmFtZXQK4paBZXN0YWJsaXNobWVudAriloF3b29kcwpQRAriloHQvdCw0LgK4paBbWFuZwriloF3ZWNoc2VsdGUK0YHRjNC60YMKLj0K4paBZmlmdGVlbgpTVU0K4paBRnJvCuKWgUxFRApvd2FubwrRgdGC0LLQuNC1CuKWgURvbm7DqWVzCnRvbArFvHluCmNyZWYK0YHRgtCy0LjQuApob3JuCuKWgdGB0L7QvtCxCuKWgdC+0LHQvtGA0L4K4paBQ29tcGxldGUK4oCcKQriloFraW5kbHkK4paBQ2hhbWJlcgpzw6lnCldICuKWgWFtYmllbnQK0LrRgNC+CuKWgWNoZXZhbAriloHQvdCw0L/QuNGB0LAKZmx1CuKWgU9mZml6Cm1hdGUKbmF0dXJhbApzZXBhcgplbXByZQpWaWV3SG9sZGVyCmZ3CuKWgWxldGVjaAriloF0cmFpbGluZwphdHJpCuKWgUfDswriloFCb25uCuKWgXVubGlrZWx5ClJBTQplbnN0ClN0YXRzCuKWgdC/0L7Qu9C40YLQuNGH0LUKKS0tKAriloF0cm9tCiEuLi4K4paBTWVhbndoaWxlCtGB0YLQsNC90LAK4paBUmVpbm8K4paBQXJpc3QKJH19JQriloFzb2xlbQpjbG9zdXJlCmlnbmF0aW9uCsWCb2QK4paBZGl2b3IK4paB0LzQtdC20LTRg9C90LDRgNC+0LQKPSI8PwriloFtb2x0CuKWgXNraWxscwriloFDaXIK4paBRGVzcHXDqXMK4paBbHVuCuKWgWNvcm9uCuKWgUNvbWljcwrRgdGC0L7RgNC4CuKWgUl0ZW1zCuKWgVRoaW5rCtC40LPRgNCwCuKWgWdyb3dzCnBvcnRhbAriloFuaWNoCuKWgXJlc3RyaWN0aW9ucwriloFMYXUK0YjQtdC90L3RjwriloFTb3ppYWwK4paB0LrRlgptYW5hCuKWgWxpZXV0ZW5hbnQKQXR0cgp1bWVyaWMK4paBZHJpdmVzCmFzaXMK0LHQsNC5Ck5MClp5Z290ZQpwaHlzaWNzCuKWgWludGVybmFsbHkK0LLQsNC10YLRgdGPCkhpZGRlbgriloHQlNCw0YLQsAriloF1bnNhZmUK4paBUm9jCuKWgWluc3RhbnRpYXRlCnVkbmkK4paBUm9vbQriloHQn9GA0LXQtAriloFtYWphCmFjaG1lbnQKdXVpZApQcm9qZWN0cwpHcmUK4paB0LLQt9GPCuKWgUJsb29kCmljaWxlCuKWgU5vdXZlbGxlCkRvZXMK4paBbmlldXdlCsOhbGUKYW5ncwp3ZWFrCuKWgWFhbnRhbAriloHQldCyCuKWgURyZXNkZW4K4paBTG9zdArQutCw0YLQsAriloFpbnZvbHZlCuKWgWRlY2xhcmluZwriloFQb2xpdGljYWwKw6lyZXoKa29wCm5vdGlmeQriloFDdXJ0CuKWgXNjaGxpZcOfbGljaApnaGFuCtGG0LXQvdCwCuKWgWt3aWV0CsO8Z2VsCuKWgVNvYgriloFzdWJzdHIK4paBZWxsZW4KaW9uYXJpbwplbnNvbgpXSU4K0YHQv9C+0YDRggplbWVyCm5vbWUK4paBc21pbGVkCuKWgVNjaG1pZHQK4paBc21va2UK4paBVG9rZW4K4paBdmFndWUK4paBcHJvdmlzaW9uCnlhbWwK0L3QuNGC0LXQu9GMCm9uaWFsCsOpcG9xdWUK4paBTkMK4paBTkZMCnRlY2sK4paBYWxsbwriloFwcsOpY8OpZApjZW50cmFsCuKWgW1hamQK4paBY2hyb20K4paBWnVtCnZlcnNvCuKWgXZlcnNjaGllZGVuZW4K4paB0YHRgtCw0YDQvgriloFxdWVsbGUK4paBcsOpcApST1cK4paBaWhuZW4K4paBc2Vuc2libGUKfCQK4paBc2NodwriloFCUgriloFPcHRpb25zCuKWgXRlbnMK4paBY29ucXVpc3QK4paBbGllw58Kb3ZpcwriloHQvNGW0YHRgtCwCuKWgWVsYQpyaWZpY2UK4paBbG9rCuKWgVF1ZWVuc2xhbmQKQmluYXJ5CuKWgVJhaG1lbgriloFhYm9sCuKWgcSNw6FzdAriloFFZGluYnVyZ2gKaW5kZQriloFjYWxjdWxhdGluZwriloFPcmVnb24K4paBbGVnaXQK4paBTmFjaGRlbQphdGhvbgpQcml2YXRlCmlsbGF1bWUK4paBb2JzZXJ2YWJsZQpsZWFucwriloFyZW1hcmtlZAriloFoYWx0CtC90LjRhtGLCuKWgXN0YW1wCuKWgUFkdgpMb3VpcwppbW1pbmcKZ3J1cHBlCuKWgVBvbGljeQriloF2cmlqCmZ0cmFnCuKWgW9mZmljZXMK4paBcGFydGljaXBhdGVkCuKWgWVzY29sCuKWgSI8LwriloFub21icmV1c2VzCuKWgWRpdmlkCuKWgWFkdmlzCtC70YLQsNGC0LgK4paBPT0+Ck9yaWVudGF0aW9uCmNpZApDYXJ0CuKWgW11cm0K4paBYXNzZXoK4paBbGlua2luZwpidWlsZGluZwriloFyZWNvbm5hCuKWgXNob29rCm1hbmFnZWQKbGFuZGEK4paBTGXDs24K4paBY3LDqWF0aW9uCtC00L7QuQpvY2l0eQriloF3aWoK4paBd2llxZsKeHRhcnQK4paBTW92ZQpsdW5nZW4K0YHRgtCy0YPQtdGCCm9ybmV5Cm9wdGlvbmFsCm1hY3JvCkNvbmRpdGlvbgriloFzcXVhcmVzCuKWgW1pc3Rha2VuCsOhbnQK4paBUmlzCuKWgXNlbnRlbmNlcwplcmVhCuKWgW1pagpVbmQK4paBbm9tYnIKekEK4paBSW5kZXBlbmRlbnQK4paBcHJldmlldwppbWFzCuKWgW1hbGVzCmluZW50YWwKVGhhbmsK4paBcG9wb2wK4paBcG92ZXIK4paBZ3Jhc3AK4paBaW1wZWQK4paBY2FtcGlvbmF0bwriloFXZWkK4paBdGl0bGVkCuKWgUFkZW3DoXMK4paBUGFzc3dvcmQK4paBUGFtClVJTEQK4paB0LvQuNC/0L3Rjwp3ZXJiCi4uLi4uLi4uLi4uLi4uLi4K4paBUsOtbwriloF0ZWV0aApicAriloFTVwp1bGFpcmUK4paBc2VpemVkCuKWgVN0ZWYKw7psCuKWgXZpegppb255CuKWgWp1bnQK4paBa3RlcsOhCuKWgXdyemXFm25pYQo8PgriloFzdXJnCuKWgXR1dHRlCuKWgUhvYgrQv9C+0LLRltC0CuKWgXdvaGwK4paBdHJhZwriloFDcm93bgriloF0cm92YQrRgdGC0L7QstGDCuKWgVZpZW5uYQplc2VoZW4K4paBbWV0cm9wb2wK4paBcmVmbGVjdGVkCtGC0LXRgtCwCuKWgXRyYWR1YwriloFCYXN0CuKWgWVyc2NoaWVuCndvb3JkCigpIgp0YWxldAriloFyb2FkcwrQstC10LTQtdC90LjRjwrDvGhydW5nCuKWgWNvZ24K4paBVmFsbGUK4paBbGFuZGluZwriloFSZWdleAriloFJb3dhCmR6aWHFggriloFlcnJlaWNodGUKYXVtCuKWgWZvdW5kZXIKYXBvbGlzCkNvbXBpbGVyCuKWgWtvcAriloFtYXJjCuKWgdGC0LXRgNC40YLQvtGACikpYAriloFsZWkKZ2VvbgriloF3ZWFwb25zCuKWgWhvcm4K4paBZWxpZgriloFDYXBpdGFsCsSHZQriloFmb3JhbGwK4paB0Y3RgtCwCnByZXZpZXcK4paBRE5BCuKWgXNpZApvcmNoCuKWgVJhcwriloFhcmFiCkJlc3QK4paB0YHRh9C40YLQsAriloFMw7NwZXoKYW7Dp2EK4paBZnVua2MK4paBdGllbmVuCjsmCm11c2V1bQriloFFcnIK4paBcmVzb3J0Ck5vdgriloFrYWwKTVcK0YjRjAphbmNob3IK4paB0YDQvtC80LDQvQpsZWFkaW5nCuKWgW1hbnRlbgriloFTaWx2YQpkYWRlCuKWgWRlc2lnbmF0ZWQK4paBcmV2aXN0YQpPY3QKcGVyY2VudAriloHRg9C90ZYKaWRlbnRpZmllcgptYXNzCkBACnVsc2lvbgpnZXJtZWlzdGVyCuKWgXByZWRpY3RlZAriloHRgdCy0LgK0LbQvdC+0LkK4paBRXJnZWIK4paBY3VzdAriloFyZW1vdmVzCmNoYXJnCtC/0YDQuNC80LXRgAriloFmb3JtaW5nCmFzbWEKc3Rkb3V0CkZ1bgp5bWUKdGVyZWQKdXJzaXZlCmlnaGVkCuKWgdGB0LvQtdC0CnZlcmJhbmQK4paBTE9HCnJhbXMKw6lvbgplbmRyYQriloFCZXJlaWNoCuKWgXRlbXBvcmFsCuKWgWxhbmd1ZQriloFJbm4K4paBbW9yZW92ZXIK4paBdHV0b3JpYWxzCk1pZGRsZQriloHRgdC+0LLQtdGC0YHQutC40LkK4paBbWFpbnRlbmFuY2UKYXN1cmVzCuKWgXbDoWx0bwpCQVNFCuKWgWRpc2FwcGVhcgrRgdC60LjRjwriloFjb25vY2lkbwriloHQndCw0YMK4paBTGliZXJ0CuKWgUhhcm9sZAriloFsaWZldGltZQriloFUw7xyCuKWgXphd29kCm9taWMK4paBUmV0cmlldmVkCmFyY2hpdGVjdHVyZQrEjWthCmlmb3JtZXMKZGV2ZWxvcG1lbnQKb3JkbnVuZwpJbmYKbGViZW4K4paBU3RhcnMKc2lnbmFsCuKWgWdyYW1tYXIK4paBY29yc28K4paBV2FnbmVyCuKWgWdlaHQK4paBcm95YWxlCndhcm4KdW1ibGVkCuKWgWluc3RpdAriloHQqNC4CmhoCuKWgXJlZnVnZQriloFmYXZvcml0ZQppZXJ0bwriloFjb25kYWRvCuKWgVRoZXIK4paB0YfQtdC70L7QstC10LrQsAriloFGb29kCuKWgXNlaXpvCuKWgUluaXRpYWxpemUK4paBY29ubnUK4paBb3ZlcmxhcAriloFFbWlsCuKWgU1hcnTDrQriloHQttC+0LLRgtC90Y8KZXJ2YQriloFib2F0cwphw6fDtWVzCuKWgWRlcnJvdAriloFtYWxsb2MK4paBY29uamVjdApqawriloFzYXJlCtC70LXQvNC10L0K4paBc3VtcwpBdXRob3JpemF0aW9uCuKWgUt1bgpdJCwKZ2VtZWluZGUKb2RvdApkZWZpbgriloFlbWlzc2lvbgriloHQmtGA0LDRgQriloFhcHBhcnQK4paBc3RvcHBpbmcK4paB0KHRgNC10LQK4paBY29uanVnCuKWgWluc2lnaHQK4paBQnJvYWRjYXN0CuKWgVBNSUQK4paBYWR2YW50YWdlcwplbmVzCuKWgXJlc2lkZW5jZQpsamVuCmlzc2V1cgriloFwdWJibGljYXRvCuKWgUdpdEh1YgriloFQZXJ1CuKWgWdhbGF4aWVzCuKWgWFubm90YXRpb25zCmdhcwriloFyw6lwb25kCkpzCuKWgWluZGVwZW5kZW50bHkKTlAK4paBaW5xdQriloFncm91bmRzCkNvbXBvbmVudHMK4paBYW50ZW4K4paB0LLQtwriloFob3MK4paBc2ludAriloFoaWRpbmcK4paBd29qZXfDs2R6dApNZXNzYWdlcwriloHQv9C+0LrQsNC30LAKPT09CuKWgUFic3RyYWN0CuKWgWzDpG5nCuKWgUZvcm11bGEKZGF3bgriloFkZXNpZ25zCkltZwriloFQb3J0dWd1ZXNlCuKWgWluY2x1eQphdmlnYXRvcgriloFCcm90aGVycwriloFjb250aW5lbnQK4paBZXZpZGVudGx5CnJhY2UK0YbRjNC60L7Qs9C+CuKWgXJlY2sK4paB0YHQtdGA0L/QvdGPCuKWgUdyZXkK4paBYXBwZWFsCuKWgXVubGlrZQriloFwb3dlcnNoZWxsCuKWgXJhY2MKZmVycwriloFidXJuaW5nCmZhc3N0Cmluc3RhbGxlZAriloFHaXZlCuKWgWNvbG9uaWFsCuKWgeKCrAriloFSw7YK4paBY2hyaXN0Cm5laG0K0YLQsNC8CuKWgWNvcnBvCuKWgWNvbnZpcnRpCnl0ZXIKU3ltCuKWgUdyZWVjZQriloFtb3RoCuKWgUpvaGFuCuKWgW1vbmFyY2gK4paBRG93bmxvYWQK4paBY3JhZnQKdcW+CuKWgUx1a2UK4paBc3VmZml4ClwvCkhhdmUK4paB0LrQsNGA0YwK4paBY29tZm9ydGFibGUK4paBdGlwcwriloHQn9GW0YHQu9GPCuKWgdCx0YDQvtGY0LAK4paB0LjQvdGE0L7RgNC80LAKTVEK0LHRgNCw0L0K4paBdHgK4paBc2xhdmVzCuKWgWZpcmV3YWxsCuKWgUZvcmNlcwphdGlmCuKWgVF1ZWxsZW4K4paBdGjDqcOidHJlCtC70YzQvdGL0YUK4paB0YDQsNGB0L/QvtC70L7QttC10L0K4paBRGV0YWlscwprxIUK4paBbG9uZ2l0dWQKSU5TVAriloFuYXZhbApGZXJuc2VoCmVzc2VsCkdyYWQK4paBYmVsYW5nCuKWgWFnZ2kKWnlnb3RlSW5pdArFgsOzdwriloFTdWcKc2lsCuKWgWV4dGVyaW9yCtGJ0ZYKT1JECmVuc2VyCuKWgXJhcGlkZQriloHRgtC10LzQv9C10YDQsAppbmNpZQpTaQphdmFtCmFyZGVkCuKWgUFkZGVkCkVuZHBvaW50CmhhcmR0CtGB0YLRgNCw0L0K4paBZXN0aWxvCuKWgUhhegriloFtdXNzdGUKdW8KaWlpCuKWgcWZw60KYW56ZW4K0LbQtdC90LjQuQphaGEKQVJOSU5HCuKWgXJlbm92CuKWgWRpdmluZQriloFjb252aW5jZWQK4paBaHVtYW5zCuKWgWRlcGFydHVyZQriloFNZWRpdGVyCnFhCuKWgXBvc3Nlc3NlZAriloHRhtC10YDQutCy0LgKZ2l2CuKWgdGB0LLQvtGXCuKWgU9ydHN0ZQpSaWNoCnB1aXMKaW5jcmVtZW50CuKWgUhhbm5vdmVyCuKWgXVjegpEb25lCuKWgWFsZ3VucwpGSVgK4paBSGVyaXRhZ2UKcmVtb3ZlQ2xhc3MK0YTQtdGACuKWgWFiYwpEcgriloHRgdC10LzQtdC5Cns6CuKWgXNldWxlCnplaWNobnVuZ2VuCmFkZHkK4paBUGFyw61zCsO8c3NlbGQK4paBcmVjZXB0aW9uCmZvbGlvCnRpbnkK4paBcmVjZW5zZW1lbnQK4paBTnVyCuKWgWtpZXIK4paBZ21pbmEKc3RhYXQKw6FuZG9zZQrRh9C10YHQutCw0Y8K4paBc3BlYWtlcgriloFleHBvbmVudGlhbAriloFEaWV1CuKWgdC/0YDQuNC3CuKWgVJhZmFlbAriloFnZ3Bsb3QK4paBVGVtcGxhdGUKb3VyZQriloFJbm5lcgpvZ25lCmlnYXJlCuKWgUFydGUK4paBQ292CuKWgWF1ZmdydW5kCuKWgdCR0YsK4paBY2VyZW1vbnkK4paBU3BhcnQKamVjdGl2ZQp5aQriloFpbml6aQriloFsYXRpbgriloFOZXZlcnRoZWxlc3MK4paBRG9uZQrRgtGA0Y8K4paBQXJyCnNlYXNvbgriloHRgdC60LvQsNC00YMK4paBcG9kY3phcwriloFCZWF1dGlmdWwK4paBV2VsdGtyaWVnCuKWgdC30L4K4paBb3ZlcmNvbWUK4paBUHJhaGEK4paB0YDQsNC50L7QvdGDCuKWgXN1YnNjcmlwdGlvbgppZ2VudAriloHQv9C+0LrQsApsYXRleAriloFiZWFjaAriloHRgNC+0LrQsNGFCmdlZwriloFwcm9ibAphcmd1bWVudHMK4paBb3JnYW5pemF0aW9ucwriloFOYW4K4paBc3RvbmVzCuKWgUh1bnRlcgriloFyZWd1bGFybHkK0YjQvtCz0L4K4paBZmxleGlibGUKb3B0cwrDocWZCndpdHoK4paBJykKUEFTUwriloFrcmFqCuKWgWZha2UKaGVpdHMKb3NwaApwYXJzZUludApGQUxTRQriloFwcm9mZXNzCnBlb3BsZQriloFwcmVjaXAKZGlybmFtZQriloFwZXJwZXQK4paBVXBkYXRlZApyYXllZAriloFwcm92b2MK4paB0YLRgNCw0LLQvdGPCuKWgWNhdGVnb3JpZQriloHRgtC10L4K0YHQvdGDCm90cgriloHQktC10YDRhdC+0LIK4paBY29tcMOpdApDb3N0CuKWgXdpZGVyCuKWgU9idmlvdXNseQrQv9C40YHQsNC9CuKWgdC90LDRgdGC0L7RjwriloFzZWVraW5nCigpKSwK4paBw6lxdWlwZQriloFjb21taXRzCuKWgVN2ZW5zCtGP0LHRgNC1CmF0ZXJuCuKWgWhldGVyCuKWgUJvb3RzdHJhcArDqW7DqQriloFkZXJpdmF0aXZlcwriloFEZXRyb2l0CuKWgXByb3ZpbmNpYWwKb25vbWllCkVCCuKWgWN1ZXIK4paB0L7RgtC90L7RgdC4CuKWgdC90LXQuQopwrsuCuKWgUNpdWRhZApJQUwKenlzdAopIikK4paBQWxjCmJsb2dzCuKWgXBhcm1pCuKWgUFsYnVtcwriloFCb2xpdgriloFjbMOpcwpQcm9kdWN0cwp1ZXJkbwriloFnZWxhbmcKem5pawpoYWdlbgphbm9ueW1vdXMK4paBc3ZnCuKWgUNvbnNlaWwK4paBQXJpCmNvbGkK4paBY3p5CuKWgUNWCuKWgWZvcmQK4paBQXXDn2VyCuKWgUNJCuKWgXRlbXB0CuKWgU9yZ2FuaXNhdGlvbgrDocWhCuKWgWN5Y2xlcwriloFnZXNsYWNodAriloHQu9GO0LTQtdC5CsO9bWkK4paBU3BpZWxlcgplZmUK4paBTWFydmVsCuKWgXBvcnRhbAriloHQodC10YDQswriloFncmFkbwriloFoYW5kbGVycwriloFJbnRlcmZhY2UKQU1FCuKWgXNlcmlvdXNseQriloFCaW5kaW5nCuKWgVJhbmcK4paBbmFkYQpvY2UK4paBaW50ZWdyYQpvY3JhY3kK4paB0LDQu9GM0LHQvgriloFzdGFiaWxpdHkKVW5zCuKWgXZldGVyCi0tLS0tLSsK4paBc2VyYWl0CuKWgW9taXR0ZWQK4paBdW5jZXJ0YWludHkKb25pYW4K4paBcmVzdG8K4paB0LbQtdC70LXQtwriloHQvtC00L3QvtC5CuKWgUJldsO2bGtlcnVuZwriloFLcmFmdArRgdGC0YAK4paBTW9zY293CmxhbmUKYXJhYgriloFzcG9sZQriloHRgdCy0L7QtdCz0L4KPzoKU1RBUlQK4paB0LjQvdGC0LXRgAriloFzeW1wdAriloFMb3JlbnpvCuKWgWVqZWMK4paBcHJvc3BlcgpEQVQK0LvQuNC80L/QuNC5CuKWgXNoYXBlcwp2YWx1ZU9mCuKWgWFzc29jaWF0ZQriloFNZWRpZW4KRU5WCuKWgdGB0YDQtQriloHQtNGA0LbQsNCy0LUK4paBdGhlb3JpZXMKaGViCuKWgVdheW5lCuKWgVN0cmluZ0J1aWxkZXIKaXdlcnMK4paBTWFwcwpQaHlzClx9XAriloFQYXJ0ZQriloFIdWRzb24K0LvQvtC9CkxuZwriloHRgNGLCtGB0YLQtdC5CmxhdQphbmNlcgriloFDb3BwYQriloHQstGW0LnRgdGMCuKWgXVjYwriloFQYXR0ZXJuCuKWgWdhcmJhZ2UK4paBR29uesOhbGV6CuKWgUVuY3ljbG9wCmV0dGVuCkV4dGVybmFsClJFRgo+OwpsaWprZQriloFpbnRlcnNlY3QK4paBVW5sZXNzCuKWgWRlZXBlcgriloHQttGWCmRlbnQKbGVmCuKWgWNoYW5zb24K4paBZGlmZnVzCuKWgXByaW1pCuKWgVdpZWRlcgriloFhd3MKb3dhbmEK4paBc29jaWFsZQppa2sK0LvRjNC90L7QuQriloFkaXZpc2lvbnMK0LvQvtGB0L4K4paBQ2xhdWQK4paBWWEK4paBdm9jZQriloFCcmFuY2gK4paBZml0dGVkCm9ycgrDtHRlbApzdHJva2UKbGlzdGVuZXIKaW1hbgrQstC+0YHRgtC+CuKWgVNoYWgKSW50cm9kdWN0aW9uCuKWgW5ld2xpbmUK4paBdGlsZQonXSkpCuKWgXRyYXZhdXgKQ09ORklHCuKWgXF1YWRyYXRpYwpvbm5ldXIK4paBR2lvcmcK4paBaWRlbnRpZmljCsOpcmljYWluZQriloFVSVZpZXcK4paBTGliZXJhbAriloFLb2NoCuKWgUJlcmxpbmVyCuKWgW5vdGlmaWNhdGlvbnMK4paBU3VzYW4K4paBY2FkcmUK4paBS2xvc3RlcgriloFleGFtaW5lCuKWgdC10LTQuNC9CuKWgVVOSU9OCuKWgWFsdGVuCuKWgWZpbml0CuKWgXBlZGlnCmN5awriloFtb3V2ZW1lbnQKSU9TCuKWgdCx0YDQuNGC0LDQvQriloFib3V0CuKWgdCw0LLRgtC+0YAK0L3QuNGG0YLQstC+CtC10YLQvgpsZXJhCmNscwriloFMZXkKYW15CmFnZW5zCmFzaGVkCuKWgW9rcsSZCtCz0YDQvgplbGxldHQK4paBRmVsbG93CuKWgW1hbmlmb2xkCiQpLApsZGVyCuKWgXZvegriloFiZWdnCuKWgWJhcm9uCuKWgWZpZAriloFmaXJpbmcKaWxkYQpkZWsKQVUKaXRhcmUK4paBQXJhCuKWgUV4aXQK4paBY2luZW1hdAriloFpbnRyb3MK4paBY29udGFjdHMK0L/QtdC90LgK4paBbcO2Z2xpY2gK4paBU2luZ2Fwb3JlCnN0csO2bQriloFIZXJuCuKWgXNpeHRoCuKWgXB1YmxpY2F0aW9ucwp2aWUK4paBSGF0CuKWgWFjY2VwdGluZwrDoWMKc3R3bwriloFxdWlldGx5ClBob3RvCuKWgWJhc2tldAriloFlaWdlbnZhbHVlcwriloFtw6lkZWMK4paBT2xpbXAK4paB0YbQtdGA0LrQvtCyCmFsaW4KY29uc3VtCuKWgWxhc3NlbgriloHQsNC90YLQuAriloFTZXEKIjsNCnJhcmUK4paBJHxcCuKWgW5pY2sKZGZsYXJlClZlYwpiaW5kdW5nCuKWgWJnCmNoYW5nZXMKRGF5cwriloFNb3VzZQriloF3YWl0ZWQK4paBVG9tYXRvZXMK4paBZmFzCnZlcnRlCuKWgXN1Y2Nlc3Npb24K0YHQvtGACuKWgXNvbHMK4paBUmVuZGVyCuKWgWxlYWRlcnNoaXAK4paBc2lnbmlmaWNhbmNlCuKWgWdhdWNoZQpjYW5vCuKWgVBpZQplbnNvb3J0CuKWgWNhbWJpbwriloHRg9C3CuKWgWVuZGVhdgpDb21wbGV0ZWQK4paB0JDRgNGF0LjQstC90LDRjwpqZArDs3JpY28K4paBY2h1cmNoZXMK4paBYW5pbWF0ZQpTRwpjb21wdXRlCuKWgXVuaWZvcm1seQpJTklUCmxsZXMKSHR0cFJlcXVlc3QK0JrQvgpEaWZmCuKWgXNhaAphaXJvCm1heWJlClVURQriloFEb3cKaHVtYW4K4paBYXVyYWl0CmRhcmsK4paBcmVwYWlyCuKWgW5lcgriloFEYWJlaQriloFCb3RhbgpPcmlnaW5hbAphesSDCuKWgU5BVAppbXBlcgriloFZb3V0aAp0aGVzCuKWgdC+0LrRgNGD0LPQsAriloFGbG8K4paBYnJlYWtmYXN0CnVybHMK4paBw7xiZXJuYWhtCsOhcmlvcwriloFPcmFuZ2UK4paBQWZmYWlycwpza2UK4paBbm90aWZ5Cmltb2luZQriloFBcmVuYQriloFsaWJlcmFsCuKWgW9iZWMKaWZhCmd1ZXoKaW9ubwrQv9C10YDQsNGC0L7RgAriloFyZXRhaW5lZApmYWlsZWQKYmluZQrRgtC90YvRhQriloFDR1JlY3QKY2FtZXJhCmlkZW5vdGUKS0IK4paBbGlnaHRzCuKWgVBpY3R1cmVzCuKWgVNxdWFkcm9uCuKWgVZvbGsK4paBYnVyZwosXQpHaQrDqnF1ZQptYWtlVGV4dAriloFldmVyeWJvZHkK4paBSHlwZXIK4paBRGV1eAriloFnbG9yeQpwcmVzZW50YXRpb24Kb25pY2EK4paBZnLDqHJlCmFnZXQK4paBaGludHMK4paBdHVubmVsCuKWgUVqCsOhbGlzCuKWgVZpdgrRgdGC0LLQtdC90L3Ri9GFCuKWgWNhcHMKUEFSVApvY2kK4paBcHJpY2VzCmN1cnJlbmN5CuKWgWFjaHRlcgpyb21hZ25ldApnZW5kZXIK4paBc3Vpcwp2ZXJzaW9ucwriloFUcmFpbmluZwppbnNpZGUKZWdlCuKWgXRvdGFsZQriloFEYWFyCuKWgWdydWRuaWEK4paBSWVyCuKWgW9jY2FzaW9ucwriloFrZGUK4paBdGVuc29yZmxvdwriloHDs3IKTWV0aG9kcwriloFsb29waW5nCuKWgWRpcmVjdGV1cgprxJkK4paBaXNvbW9ycGhpc20K4paBSm/Do28K4paBYWxpZ25lZArQvtC90L7Qsgp1cmdlcgriloFub3ZhCm1vcnJvdwphbHRlcm4KSEQK4paBbWFycXUKYXRpdmFzCmdncmVnCuKWgWFuY2llbgpuaXQK4paBc2VjdXJlZAptaWVyCuKWgU9sZQriloHQuNC90YLQtQriloFtaW51cwriloFjbGVhcmVyCuKWgW5lbGxvCuKWgWluZm9ybcOhY2nDs2sK4paBcHJvcHJlCnsuCmlsb2cK4paBUXVpY2sK4paBYWNjdXMKZW1wbG95ZWUK4paB0LfRgwrRhtGM0LrQuNC5CtGE0ZbRhtGW0LkK4paB0L/Rg9Cx0LvQuAriloFiZW50CuKWgdC/0L7Qt9Cy0L4K4paB0J/QvtGACsOhesOtCsOhbmljbwplbXB0eXNldAriloFzdXJ0b3V0CnJlbm8KdW55YQriloHRg9C10LcK4paBTWlsbGlvbmVuCuKWgWxpc3RvcGFkYQriloFNYWluZQriloFncnVwb3MK4paBU3RvcmFnZQriloFhcHBsZQriloFMw7YKb3VzZWQK0LTRgNC+CnNjaQriloFoaWJlcm5hdGUKZG9nCuKWgdCy0L7RgdGC0L4K4paBaW50ZW5zaXR5CmxlZ2VuZAriloFXaWxsZQriloFzemVyaW50Cmdlc2VsbHNjaGFmdAriloFMaXZpbmcKYWxsbwriloFTcGxpdApkcnUKbmVlZAriloHQlNC20L7QvQriloFTd2lzcwriloFzcHJhdwriloFiZWhvCuKWgWZvdG9ncmFmCuKWgXJlbmNvbnRyZQriloFraXMK4paBc2lnbmluZwpha3VsdAriloFpbmRleGluZwphcG9yCuKWgWNvbmNlcHRpb24KYWdncmVnCuKWgdCh0LDQstC10LcK4paBYWZmYWlyCsSbbsOtCkF1Z3VzdAriloHRgdC10LrRgNC1CuKWgW1pZXN6a2HFhApVSUltYWdlCuKWgWJpc2hvcAriloFzZXJ2YW50cwriloF0cmFpbApkaWdpdAriloFqb2lucwriloFOZWFyCsO2ZmZlbnRsaWNoCj57CuKWgXNrxYJhZApnZWbDvGhydAriloFIb2x6CuKWgU1pbGl0w6RyCmFjaGkKVXBwZXIKcGluZQp1dHp0CuKWgW51b3ZhCmlicmF0aW9uCuKWgUJpZW4K4paB0L/QtdGA0LLRi9C5CuKWgUNyZWF0aW5nCk9uY2UK4paBZWlubWFsCuKWgWdlb21ldHJpYwpzdHZvCuKWgWtXCuKWgWRlY29tcG9zaXRpb24K4paBY29tZWR5CuKWgWFjdGl2YXRpb24K4paBYW5ncnkKaWxsZXVycwriloFpbnN0YW50bHkK4paBc3VnZ2VzdGluZwriloFDbGF5CmNvdAriloFHw6luCigkKAp1bndyYXAK4paBbGlmdGVkCuKWgUtpdAriloFsaW5lYQrQvtC6CmhhcnQKLT5fCuKWgW51aXQK4paBSXNzdWUK0LvQuNC4CuKWgXLDtm0KVGFza3MK4paBU3IK4paBc2Vpcwphc2lhCn19JC4KOnsKY29udHJvbHMK4paBU3RpbQriloFSZWNodApvY2lhY2nDs24K4paBTmF0YWwK4paBUGhpbGlwcGluZXMKdWxlbgpGaXhlZAriloFzd2l0Y2hlZApaaXAKb3NwZWwK4paB0L3QsNGH0LDQu9C1CuKWgUJsYW4KdXJzdAriloFhdXRvdXIKQ2EK4paBbGF0aXR1ZGUK4paBRnJlaQriloFNdXPDqWUK4paBS3VyegriloFyZWdpw6NvCnN3YXAK4paBaGF0ZQriloFtb2RpZmljYXRpb25zCuKWgdCa0L7QvAriloFBbnRvaW5lCnVnYQpSRUNUCsOpdGVyCkdST1VQCuKWgXNhY3JpZmljCuKWgVdoZQriloFTdGV2ZW5zCm9sb2dpc2NoZQpTdW1tYXJ5Cm9icwpobmVuCjwlPQpkaWVuc3QKcmVtYXJrCuKWgXZlcsO2ZmZlbnRsaWNodArQtdC7CuKWgU1vY2sK4paB0JvRjNCyCuKWgXRyw6pzCmdiCuKWgWNlbGVicmF0ZWQK4paBRWIK4paBY29zdGEK4paBR2VvZ3JhcGhpYwriloFhdHRhY2htZW50Cm1hbm5zY2hhZnQK4paBZGVwZW5kZW5jZQrvv73vv70K4paBYXR0aXR1ZGUKZXRhbAp2aWMKYmF1dAriloHQtNC+0LIK4paBaW50ZXJ2ZW4K4paBR8O8CsOzbmljYQriloFQb24K4paBZGlzcG9uaWJsZQriloFGZWIK4paBd29yc2hpcAriloFTcGVjaWZpY2FsbHkKSHkKaWp1CuKWgWNiCuKWgXNwYWMKbGV2ZWxhbmQK4paBbG9jYWxpZGFkCuKWgXByZWNlZGluZwriloFIZXNzZW4KeHAK4paBV2VpbgriloFSb23DogriloFnaW9ybm8K4paB0LrQstGW0YLQvdGPCmxsYcOnb3MK4paBQWNhZGVtaWEK4paBa8O8bAriloHDhXJzCuKWgdC90LDRmAp1Y2xpZGUKSW50ZXJuZXQKb3J0b24K4paBY29ybgrRj9C80LgK4paBIioK4paBRmVsaXgKYXBhdAriloHRgdCy0L7QuApNSVQKbWFkZQriloFsb2NvbW90CtGF0L7QtNCwCkZQCuKWgXBtCi4qOwriloFIYW1tCmB9CkxheW91dEluZmxhdGVyCj09IgriloFFdXIK4paBZG9ncwrQttC10L3QuNC4CuKWgWF6b24K4paBZW11bGF0b3IK4paBcmljb24KYmVlbGQK4paB0L3RgwriloFhcHByb3hpbWF0ZQpMTQriloFCb25kCuKWgWVuaArEmWR6CuKWgXNvbGl0ClJlbGF0aXZlTGF5b3V0CmV0ZW9yCmFtZW50b3MK4paBaW5kaXJlY3QKaWLFkWwK4paBZ3JvcwriloFPcmlnaW5hbHMKY29tbWFuZHMKRXhwb3J0CuKWgUF2ZWMK4paBc29sZW1uCuKWgWNvcnJlY3Rpb24K4paB0L/RgNC+0LLQvtC00LgK4paBTW9zawriloHQv9C+0LTQvgriloFnZWJpZWQK4paBbmFzdMSZcAriloFEcml2ZXIK4paBT29rCuKWgVZlYwriloFsdW5nbwpmaWNvcwriloFzdm9sCuKWgWtpZApuamEK4paBSHIK4paB0L/QvtC00LTQtdGACuKWgXZpc2liaWxpdHkK4paBTcOpZAriloFjcHUKZGlzY3Vzc2lvbgpBc3NldAriloFkZWZlbnNlCuKWgUFueW9uZQriloFKdXN0aW4KaXN6dAriloFDb2xsaW5zCuKWgVZhbGVudAriloFQYWxlCuKWgWZ1ZWwK4paBbm9zZQpyw61ndWV6CuKWgVNjaGxlcwriloFNYWxheXMK4paBY29tbXV0CmRybwp1aW5nCuKWgVJpY28K4paBRW1tYQpvcnAK4paBS2lyawriloFRdWFuZG8K4paBTmV1ZQriloFkZW1hbmRlCuKWgUNvdmVyCuKWgXJlc2N1ZQriloFnZXfDpGhsdAriloFDYWxlbmRhcgriloFNYWRvbm5hCldQCm9zaGkK4paBTWF2ZW4K4paBYmVsbGUK4paBd3gK4paBc3VnYXIK4paBQmV0cmllYgriloFlcXVpbGlicml1bQpFQVIK4paBdGV4dHMK0YHQu9C+0LIK4paBY3plcndjYQriloFEw7xzc2VsZAriloFFTFNFCuKWgWFtZXJ5CuKWgWFuaQriloFvYmV5CuKWgU5lbGwK4paBaW5uZQriloHRgtGA0L4KRkQKY2NvCuKWgVpvYgphbGV0dGUK4paBbcOhanVzCmVjdGVkCuKWgVR1cmtleQriloFXaGV0aGVyCnFpCuKWgdGI0YLQvgriloFoZWFkcXVhcnRlcnMKZW5kaQphcnVzCm9wdXMK4paB0LfQvtC70L4K4paBZGVzdHJ1CuKWgUxvawriloFzYXRpc2ZhY3Rpb24KKCkNCuKWgdCi0LXRgApKb3NlCuKWgWNvbnF1ZXIK4paBRWZmZWN0CkxheW91dFBhcmFtcwppZXoK4paBZXh0ZXJucwriloFnZWdlbsO8YmVyCuKWgUVTUApvbHRhCnByb2Nlc3NvcgriloFLdWx0CuKWgUF0bGFudGEK4paBdGllcgpPcGVyYXRvcgriloHQtNC40LAK4paB0L/QuNGB0YwK4paBZ3Jvw58K4paBaGVhcnRzCuKWgW1pbGxpbWV0ZXIKYWx0aG91Z2gKYWxsZXMK4paBTWFnaWMKdHJhaW5pbmcKb2xpbmUK4paB0L7RgNCz0LDQvdGWCj5cPF4K0YbRltCw0LvRjApleHBvcnRzCldvcmtib29rCuKWgdCy0LXRgNC10YHQvdGPCuKWgXRlbGVzCuKWgWVjb25vbXkK4paBdHJhcAriloFyZWZ1c2UK4paBc3RyYW5nZXIK4paBaW5zdGluY3QK0L/QvtC00LAKb2xhbgriloFuaW5nCmluZmxhdGUKaXRhdGVhCmFja3MK4paBSm95CkZMQUcKYWlsYW5kCuKWgXNvcnRpCuKWgdCy0L/QtdGACuKWgXDDqW4KTm90aGluZwriloFzesOhegriloHDgW5nCuKWgUFVVApBY3Rpb25zCkV2ZXJ5CuKWgdGH0LXRgNCy0L3RjwriloHQsNCy0YLQvtC80L4K4paBcm91dGluZQriloFlc3RydWN0CuKWgUdhbmcK4paBaG9sZXMKdGhlc2lzCuKWgWNvbmNsCuKWgXDDqQpyaWVycwrRgNC+0LLQvtC5CmFkaWMKU3BlZWQK4paBY29tbWFuZGVkCuKWgU5hemlvbmFsZQpNYW5hZ2VkCuKWgURFQ0xBUkUK4paBc2VkYW4KU3RyaW5ncwriloFzYWNyZWQKdGVyc3VjaAriloFhYml0YW50aQpicml0CuKWgU5DQUEK4paB0KHQnwriloFhZ2VkCuKWgUNoaWVzYQriloFyZXZpc2lvbgpvcHJvCuKWgW92ZXJ3cml0ZQplbWJyb3MK4paBc29ydGllCuKWgW90dGVuCnhpdgriloFkZWxpCuKWgUFzcAriloFiYWxscwprYWYK4paBYnJhdmUK4paB0LLRgdC10LPQvgplZ24KanBlZwriloFPc3RlbgpDb25zdGFudHMK4paBSW5mYW50cnkK4paBTmV2CuKWgdGP0LrQuNGFCuKWgdC80YPQvdC40YbQuNC/0LAKY2lqYQriloFwb2VtCuKWgW5lZ3JvCtGF0LDRgAriloFBc2sK4paBYXZvCuKWgU1leWVyCuKWgVdlc3RlbgriloFva28KYWdpbgriloFTw7xkZW4KZW50cmllcwriloFSZXB1YmxpawpDb2xsZWN0aW9uVmlldwotLS0tLS0tCuKWgWZpcmVmb3gK4paBYWxjdW5lCuKWgdGE0L7RgtC+CuKWgdC+0YLRgNC40LzQsAp+fn5+fn5+fgriloHQoNCw0LcK4paBQ29tcGxleAriloFwaWEK4paBcHVibGljYWRhCndlaQpjZWR1cmUKb2NjdXBhdGlvbgriloFtZWRpY2luZQriloFkcm92ZQpQcm9ibGVtCuKWgWJlZ2lubmVyCuKWgXRob3JvdWdobHkKdXJpYQphdmFudAp1Y2hhCuKWgWxldmVyCuKWgXRlYXRybwpBVkEKc3F1CnRyYXQKaXZhdGFsCuKWgWRpcnR5CuKWgXNlY29uZGUK4paBZ3Jhdml0CuKWgXByb3Bvc2l0aW9uCmhiYXIKb21pbmkK4paB4oCdCuKWgUNhbWlsCuKWgXF1ZWVuCm1vZGlmaWVyCkphbgriloFseXIKQ29tYm9Cb3gKaW9uaWMK4paBaG9seQriloFTZWJhc3RpYW4KfF97CuKWgXtACuKWgdC80L7QttC90L4K4paBQ3JlYXRpdmUK4paBaW50ZXJlc3MK4paBQ1QKacOnw7VlcwriloFjaGFudAriloF3c3DDs8WCCuKWgdCc0LXQutGB0LjQutCwCuKWgXJhbmtlZAriloFwYcW6ZHppZXJuaWthCuKWgWJydXQK4paBZmFydGhlcgriloFWZXJiCuKWgVNldmVuCmxibAriloFtZW50aW9ucwriloFGaWdodAppZmVuCuKWgWJvZwriloFyZWdyZXMK4paBc2NvcmluZwppY2FuZQriloFFbGxpCuKWgXBpZXJ3Cm1lYXN1cmUKxYRza2llagojewriloHQtNC10YHRjwriloF2YXJtYXN0ZQriloFVbml4CklaCml0acOpClByaW1hcnkK4paBU3ByaW5nZXIKw7xuZwriloFhbnYK4paBdmVyc2lvbmUK4paBc2hvdWxkZXJzCuKWgdCx0YDQuNCz0LAK4paBamF2Cmx0YWwK4paBa2FsbGFzdGUK4paBTWl0Y2hlbGwK4paBd2lyZWxlc3MK4paBw4FsCnJlc3BvbnMKY291bGQK4paBcmVsYXgKTG9uZArFhGN6CtGB0YLQstC+0LLQsNC7CuKWgXBvbHNraQplbsOnCnphcgriloFkdHlwZQpvd25lZAp1bmtub3duCuKWgW11dGFibGUK4paBc2llbXByZQriloFNb250cmVhbAriloFsb2NhdGUK4paBdHJhY2VzCuKWgWluc2dlc2FtdAriloFOaWwK4paB0L/RgNC+0LTQsAriloFXYXJuZXIK4paBTmF1CnRyaWFuZ2xlCuKWgWNvbmNlbnRyYXRpb24K4paBZ2VudGxlbWVuCsOkY2h0CmZpbHRlcnMKaW5jaXBhbApWQUxJRAriloHQtNC10L/Rg9GC0LAKYWTDswriloFrb25zdApnc8OlCmFnYXMK4paBbWVpbGxldXIK4paB0LTQsNC90L3Ri9C8CtGU0LTQvdCwCmVuY29kZWQKPCcK4paBc2hlZXRzCmN1YWRvcgriloHQstC40LrQvtGA0LjRgdGC0L7QstGDCuKWgURlcHV0CuKWgW1hbmnDqHJlCsSFZwpjc29sCikkLQpVSVZpZXcK4paBbWlsbG9uZXMK4paBRWhyZW4KU2lsCuKWgWF0YWMK4paBQ29sZAoiXAriloFhcHByb2FjaGVkCuKWgcOFcnNtZWQKV00K4paBRGVwb3J0Cm1pcwphbmRib3gKb2JzZXJ2CnNldHRpbmcKaGF0w7MK4paBc3RyYXQK4paBc3ByZQriloFwZXJzb25uZQriloFkaXJpZ2UKcHVsbApkYXRpbmcK4paBRmFjdAriloFtYW5pcHVsYXRlCuKWgU1BQwriloFkZWoKdWx0aW1vCkZYCkxpZmUK4paBY3JhY2sK4paBbcOtCuKWgdC/0L7QstC1CuKWgXdvcmUKdW5pdmVyc2l0w6kK4paBZm9ybXVsYXMK4paBRWxpc2FiZXRoCnBsb3RzCm1pbGUK4paBbWVub3IK0YLQuNC7CmtleXdvcmQK4paBQmFsdGltb3JlCmhyZXIK4paBQ2xlbWVudAp2aW0KcmFzcwpUYWtlCuKWgWPDrW3FsQriloFDb252ZW50aW9uCmF0Z2UKc2VlZAriloFEw60K4paBU3BpZGVyCmFob28K4paB0LjQvNC10LXRggrDvGhydAriloHQv9C+0L/QuNGB0LAK4paBQ290CuKWgW5vYmxlcwpSRVNTCuKWgWNoZW1pbgriloFnxYLDs3duCkdHCuKWgUdlcm1hbmlhCuKWgUFsZXhhbmRyZQpoZW5zCnN3aWZ0Cm9vcApTdWJ2aWV3CuKWgXJlcXVpcmluZwrEmWR6eQriloFmaWN0CuKWgdCa0L7QvdGB0YLQsNC9CuKWgWTDqXB1dAriloFzdXJwcmlzaW5nCuKWgWRlaXgK4paBdW50ZXJzY2hpZWQKaW5zb24K4paBQ2hhcmFjdGVyCuKWgWdlc3Rpb24KY2h1cwpjb21lcwriloFuZXVyCuKWgXlldXgKb2xsYXIK4paBcGFyYWQK4paBbWFnZ2lvcmUKVFJBTgriloF2b3RyZQriloFkZXNjZW50CuKWgUljb24K4paBSnVkZ2UK4paBb2NjdXBhdGlvbgplcGluZwriloF0b25ndWUK4paBRW5sbGHDp29zCnJ1ZgriloFwcm90ZWluCuKWgXZpc2l0b3JzCmF4eQplc3RlbgpibGljYQpodwriloFzcGlyaXRzCuKWgXJlZHVjZXMK4paB0LzQtdC9CuKWgUxhbWIK4paBTWluZQriloF2ZXJpZmllZAriloFCYWJ5CuKWgXByaXplCtCy0YrRgAriloFyYXRpbmdzCuKWgWZvcmUKYXNoYQp1cnJlbmNlCuKWgWludMOpcgriloFPbMOtbXAKY3JhCuKWgWNvbXB1dGF0aW9uYWwKaXJjaGUKLjrigIoK4paBaWxsdXN0cmF0ZWQK4paBU2hhcmUK4paBaG91c2Vob2xkcwriloFjb252b2x1dGlvbgpvZW1kCuKWgXpkb2J5CmNjYwriloFxdWFudGl0aWVzCkNoZQpTaG91bGQK4paBZ2VuaXVzCmFkagrRhdCy0LAK0J/QtdGC0LXRgApFTUEK4paBUmlnaHRzCuKWgUVsaQpWQVIK0YjQu9C+CuKWgdC30LHRltGACmlmdHVuZwriloFjb250cmlidXRlZAp6ZWYK4paBQ0hBUgriloFTaWIK4paBTWFudAriloHRgdCy0Y/Qt9C4CuKWgWphdmFmeAriloFjZXBlbmRhbnQK4paBaW50dQriloHRgtCy0L7RgAriloHDkwpndWVyCnJhZG8K4paBUmV2b2wK4paBZsOpbWluCuKWgU9ybGVhbnMK4paBcG9qCuKWgXByZXoKVGV4Cm91d2QKPygK4paBTElNCmlzdGlxdWUKZXNhcgriloFoZXVyZXMKaWNraQriloFkYm8Kc2tpaApjb25maXJtCuKWgXZpbMOhZwriloFjaXV0YXQK4paBRFIK4paBSGF3YWkKY2hlZAriloFzcGhlcgriloFBcnRpa2VsCuKWgU11bHRpcGxlCmNpdQriloHQvNGLCuKWgWxpcGNhCl0oLwpTdHJhdGVneQriloFBbGFiYW1hClNESwpVVEMKX18uCkFyZ3VtZW50cwriloFzZXRDb250ZW50VmlldwrDrmxlCkJ5VmFsCuKWgUpWTQrRjtGJ0LXQs9C+CuKWgUxlb25hcmQK4paBanVzdGlmeQrRhtC10LwK4paBbmFiCkNDRVNTCuKWgWhvcGVzCikmCnNlcm8K4paB0LfQsNC5CtGB0LvRltC0CuKWgVLDqWcK4paBU2FuZwriloFmdW5nCmJhYXIK4paBY29mZmVlCmFzc2VtYmx5CuKWgdCS0ZbQvQrRjdC5CuKWgWNvbXByZW5kCmZpbGxlZArRgNC0Cm9kaWEK4paBZ2VucwpmbHVzcwpEcmF3YWJsZQriloFzdXJ2ZQpTZXR1cAriloFuYWxlxbwK4paBY29uanVudG8K4paB0JXQs9C+CuKWgW9sZGFsCuKWgXZlcmJvc2UK4paBRWxlY3RyaWMK4paBSGFycmlzb24KZW5nZW4KcGFyYWdyYXBoCuKWgW5vdXZlbGxlcwriloHQstGA0LXQvNC1CuKWgW1lbW9yCuKWgW1heW9yw61hCtGB0LDQtAriloFiYXRhaWxsZQriloF0aGVybWFsCuKWgdCl0YDQvtC90L7Qu9C+0LPQuAriloFCZXR0ZXIKYnllCuKWgdGC0LXQsNGC0YDQsApyb2UK4paBc2VnbGUKcm90dAriloFvcGluaW9ucwopfSkKw7xobGUK4paBR8O8bgriloHQqQpiw7NsCuKWgUxhcnJ5CuKWgXNvbGljCuKWgXp3YXIK4paBQ2Fyb2xpbmUK4paBUmVpY2hzCkV4dGVuc2lvbnMKbWlncgo6QAriloFlbnVtZXJhdGUK4paBZWlnZW5lbgriloFleHBsb3JlCsOpbXUK4paBZ2F0CuKWgWltcGVyaWFsCuKWgVVzdWFsbHkK4paBdHVkCuKWgdGD0LrRgNCwCmhpbQriloFjb3JuZXJzCuKWgVNFUgriloFpbnRlcnByZXRlcgriloFJY2UK4paBYW1vdW50cwriloFQYWxhCuKWgXRpbmhhCnZvbGUK4paBZ2xlCnVjY2kK4paBc2llaGUKSmFjawriloF3b2xsCuKWgWVsZGVyCuKWgdC60L7RgNCw0LEK4paBZW5nYWcK4paBTGF1cmVudAriloFhY2hpZXYKaXN0aWsKYXJjdArRgtC90L7Qs9C+CuKWgWdpcgriloFTaW5naAptYXRob3AKVVNBCuKWgVByb2pla3QK4paBZGViZQpyaWNodHVuZwriloFUc2NoCnVtaW5hdGUK4paBc3rDswpseXBoCtC30LjQtNC10L3RggriloFsaW1pdGF0aW9ucwrRjtGJ0LXQuQriloFiaWxhClB1c2gK4paBb2ZmZXJpbmcKaWVubmVzCkZyaQriloFwb3N0Z3Jlc3FsCuKWgVRvbW15CuKWgXBhcnRpY29sYXJlCuKWgXN0b2xldMOtCuKWgWFycmliCuKWgUV2YQpzY2hvb2wK4paBdmVuZG9yCuKWgURhbGxhcwriloFwcm9sb25nCkNSRUFURQriloFzdWl2YW50ZQpTVEFUVVMKbMOgCmt2CuKWgWjDpHVmaWcK4paBQWdyaWN1bHQK4paBaHVpdAriloFpbm9sdHJlCuKWgUxsb3lkCuKWgdGE0YDQsNC90YbRg9C3CuKWgdCy0YvQv9C+0LsK4paBZmFpdGhmdWwK4paB0JLQsNGACuKWgXZlcmwK4paBanVlZ28K4paB0KDQtdC30YPQu9GC0LDRgtC4CiwuLi4sCuKWgWltcGxpY2l0bHkKaXJrcwpDYWxjdWwK4paBbWVzZXMKb21lZAriloFwYWsKaGVyaXQK4paBb3B0aWNhbAriloHQhtGB0YLQvtGA0ZbRjwp2ZWlzCuKWgWNhcGl0YWxlCnBsYWNlaG9sZGVyCmludHJhZwriloFBdGxhcwopXTsKaWNvbnMK4paBQmVudAriloFXaWRnZXQK4paBdm9sdW50CmF2bwrDqWdyCmxpZ2UK4paBTkFNRQriloFhYnN0cmEK4paBZsOtcwriloFCcm93c2VyCuKWgWJ1c2gKaGFsbAriloFjbG91ZHMK4paBU1VCCuKWgXRhbmRpcwriloFDb21tb253ZWFsdGgK0YLQsNGPCuKWgWV4aGF1c3QKX19fX19fX19fX19fX19fXwriloFTdGF0aXN0aWNzCuKWgVJlbGlnaW9uCuKWgU11aGFtCnVhbHMKZ290bwpEaWdpdGFsCkZhbWlseQriloFCdW4KbGV0aW4KTWFuYWdlbWVudAriloFjYXBhYmlsaXRpZXMKYW5udGVuCuKWgdGB0LXQsdC1CuKWgXN0YXlzCmt0ZXIK4paBZG9zdAriloHQotGA0LUK0LvQvtCy0LjRhwriloFkeWluZwpzZWN0aW9ucwrDoW5vcwriloFhcHBhcnRlbgriloF6b2FscwriloFkcmVzc2VkCuKWgWNvbXByZXNzCsWEc2thCuKWgXNpZXJwbmlhCuKWgdGC0LjRgtGDCmRpY3Rpb25hcnkK4paBcmFiYgriloF2w6lyaXQK0JLQvgriloFzaW5nbGV0b24K4paBdml0YWwKUmVmcmVzaArQvNC10LvRjAriloFaaAriloFBZmdoYW4KaW5rZWwKYWFhYQriloFwYXJ0aWNpcGFudHMKYXJpbgriloFNb2xkCuKWgXByaW1lcm9zCuKWgdGA0LDQvQriloHQkNC80LXRgNC4CuKWgXJlc3RhdXJhbnQKw6l2ZWwK4paBU0wK4paBUmV5CmNoYXMK4paBZWxlY3Ryb25zCuKWgVBpdHRzCuKWgUp1bGVzCtC80LDQuQplbmFudAotfQrQu9Cw0LQK4paB0JzQvtGB0LrQstCwCmdvbQriloFGZXJuw6FuZGV6CmZ1bmQKaW50ZXJubwriloFNYXJpCuKWgXJpdXMK4paBUHJvemVudArRgdGC0YDRlgriloHQstC90YPRggphbnRlcmllCuKWgdC/0YDQuNGBCuKWgdC+0LHRiwriloFNYXJpbmEK4paBb2NjdXJyZW5jZQpyaWt0CuKWgdGE0LjQt9C4CuKWgXNjaHdlcgriloHQk9GA0LUKUmVzZXQK4paBbXVjaG8KYW5kcgriloFXaWVzCuKWgUtlaXRoCuKWgUp1bGlhbgriloFjb2xlCmNpZW5kbwriloFDb250ZW1wb3IKZXRyeQplbGlhbgrQs9C40LgK4paB0LPQvtC70L4K4paBZMOpbAriloFkZWNlbnQK0KDQodCgCuKWgXN6ZXB0ZW1iZXIK0LzQtdGB0YIKY2FzdGxlCuKWgdC00LXRgNC20LDQsgp9IikK4paBQVNDSUkK4paBR2xlbgppdHplcmxhbmQKVG9nZ2xlCuKWgXRyYWRpY2lvbmFsCuKWgVBsYXQKdmVlCmFiZ2VydWZlbgoofApDTEkKfX0kLAriloFCb3dsCuKWgU1hbGUK4paBQnJlcwriloHQv9GB0LgK4paBQ2hhbGxlbmdlCnrDswriloFwcm9qZWt0CuKWgW5lZ290aQphYm92ZQriloHQv9C10YDQuNC+CuKWgWxvbmdlc3QKYXV0aGVudGljCuKWgXRyYWR1CuKWgW11amVyZXMK4paBQW5kcmUK4paBaGFkbgriloFTY2h1bGUKb2RlbApibGVkCuKWgVRyYWRlCuKWgW1vYmlsCuKWgWFsZ3VuYXMK4paBTGFrCuKWgUNvbm5lY3RpY3V0CuKWgWFsY28K4paBU2VsYnN0CmnFggriloFhbGIKb3V2ZXJuZXVyCuKWgXNyCuKWgXZiYQpsb3BlZAriloFQYXJ0ZWkKdWF0ZQriloFBdXRoZW50aWNhdGlvbgpiZWkKfX0uCuKWgWtvbm50ZW4K4paB0LTQvtC/0L4K4paBaHlkCk9mZmljZQpkb25uw6llcwriloFDbGV2ZWxhbmQKcml0YQrDrW9zCuKWgdCy0YvRiNC1CuKWgVJvYmVydHMK4paBw6lsZWN0aW9ucwriloEnJykK4paBcHVibGlzaGluZwriloFiYXB0Cjw+KCk7Cm1pc3NpbmcK0YDQvtCy0LDQvdC+CuKWgWhvdXNpbmcK4paBaW5mZXJlbmNlCuKWgVJlbmFpc3NhbmNlCuKWgXLDqGcK4paBU3RlcGgKQ0VTCkVSRQrQutC10YIKT1UK4paBZ3JvdXBpbmcKdmVya2VocgpqaWgKYWdsaQriloFtaWxrCmxhaXQKU3RhZ2UK4paBYnlseQriloF3b29kZW4Ka2VsZXkKZXRyYQriloFQZWcK4paBZG9ubsOpCmFkYWwKc2VxdWVudGx5CuKWgWluc2Jlc29uZGVyZQpFTEQK4paBTWFtCuKWgXZvbHRlCuKWgXByb3NwZWN0CtC90L7QstC1CuKWgWRlbm90ZWQK4paBb3ZlcmxheQpQZXJtaXNzaW9uCmVlbgriloFFTQriloF1egpNYwpvbGl0CuKWgXNlcnZpCuKWgUhlaWRlbAriloFXaWVuZXIK4paBaWxsZWdhbAriloFwcmVkaWN0aW9ucwriloFnb29nCmhvbgriloFDaW5lbWEK4paB0YDQtdCy0L7Qu9GOCuKWgVJ1bGUKd29kCuKWgXJhZGlhdGlvbgpvxYIK0L7QstC+0ZcK4paBUGVyZm9ybQriloFwcmlzb25lcgriloFhbWV0CuKWgWZpZ3VyYQriloFDb21tYW5kZXIK4paB0L7RhNC40YbQuNCw0LvRjAriloF0cm92CuKWgWFjdGVkCuKWgXdvcmtmbG93CuKWgdCg0LXRgdC/0YPQsdC70LjQutC4CuKWgWd1aWRhbmNlCuKWgdC80LXQvdC1Ck5hdGlvbmFsCuKWgUtlbAp3ZWJwYWNrCtC/0YDQvtGB0YLRgNCwCuKWgWxsYW1hZG8KYWxvZwp0ZXJyYQppeGVuCmxlZ3JhcGgKw6Rpc2NoZW4K4paBdGVhY2hlcnMKdWRlbgriloFvZ3PDpQpwb3NzaWJsZQriloFTb3VsCuKWgUdlb2dyYXBoeQriloHQt9Cw0LTQsApoaXQK4paBYW5nZXIK4paBcmVtcG9ydGUKUG9kCtGH0LrQtQriloFhcmlhCuKWgUFzdHJvbm9tCmNoYXB0ZXIK4paBZm9yawriloFDdWFuZG8KbWVuc2UK4paBQ2hyaXN0aWFucwpnYwriloEjKApPcmdhbgriloFzdGVhZHkKcHNlCtC20LjRgtGMCmlnbmVzCmF0ZXJyYQptb3ZpZQpwb3N0YQpyYXN0ZQriloFSZXNzb3VyY2UK4paBUGHDrXMK4paBKCk7CuKWgXBlbmFsdHkK0YLRggriloF0cmFzZmVyCmNlbnR1cnkK4paBY2xlYW5lcgpzZWxlbml1bQpvcnRoZWFzdAp4aWMK0LvRltGXCuKWgWluZ2xlc2UK4paBVGFuZwriloFnb2RzCmZyZW50CmNpZW50ZQpzdGFydHMK4paBbXVzaWNhCnltbmFzaXVtCi0tLS0rCuKWgXRlcnJlc3QK4paBcmV0cmlldmVkCmlhcmUKdW5uaW5nCuKWgU1hcmN1cwriloFwcm9tb3RlCndhcm5pbmcK0YLRi9C5Cn0pJCwKVHJhbnNwb3J0CuKWgXJlc29uCuKWgUNsbwriloFlcm0K4paBZWxpbWluYXRlCmhlaW1lcgriloFzYXZlcwriloFwcmF5ZXIKQ2xhc3NlcwpFeHByZXNzCuKWgUFrYWRlbWllCkVsc2UKVHVybgriloFpa2tlCuKWgXJlaQriloFkaXJldHQK4paBUm9zdAriloFQYXBhCuKWgWpzZgrQu9C10L3QuNC10LwK4paBVHVsCuKWgVphawriloFuaWVtaWVjawpUdwphbW91cgpuZXN0ZWQKcHBldHMK0YjQvwpkaXQK0LfQtdC9Cnp5bWEKaHJ0ZQpDb25zdHJhaW50cwriloFvd25lcnNoaXAKQXJtCuKWgWNvbnN1bXB0aW9uCuKWgWZldAppdmFyaQpjaHJvbQpzZXRBdHRyaWJ1dGUK4paBY29tcG9zZQriloFiYWNraW5nCuKWgVBhegriloFzY3JpCuKWgU1lY2hhbgriloFOb3J3YXkK4paBSnVwCuKWgW3DqXIK4paBYWRtaW5pc3RyYXRvcgriloFjYWJlCml2YWxlbnQK4paBdGhyb25lCuKWgWR1ZXMK4paBaHVtb3IK4paBQWRyaQriloFhYm9ydArDsWFzCuKWgdCa0LjRl9CyCmrDrWPDrQriloF6d2VpdGUK4paBZG91YgplcnNoZWxsCtGI0L7QuQriloFGYW0Kw6VrCuKWgXR3ZWVkZQriloFSaWIK4paBZsO4cgpwY2nDs24KaW5uZWQKcnZtCuKWgUFwcGFyCuKWgURqCuKWgVNoYW5nCkRpc3RhbmNlCuKWgWRhd24K4paBTWF0dGgK4paBZXJyaWNodGV0CnBoYW50b20K4paBcmVsZWFzZXMKUmVjb2duaXplcgriloFLb3AK4paBUHVsCnXDqQpuYXRzCnJlbGF4CuKWgWZsZWQK4paBZXhwZXJpZW5jZXMK0YnQtdC1CtC80LXQvdGPCuKWgdC/0LXRgNGB0L7QvdCwCuKWgUlkZW50aXR5CnJldHMKa3VuZnQKbGFyZwpMaXN0SXRlbQp2ZApydW5uZXIKbGFudAppcGFydApiYXkKaWVpCuKWgWxlbmd0aHMK4paBY2F0dGxlCmpldHMK4paBc2VoZW4KSnVsCmZhdHQK4paBc3VycmVuZGVyCuKWgVRydW1wCtC00L3QvtCz0L4K4paBRm91cmllcgppZWJlbgpfIgriloFmcsO8aGVyCuKWgWdhcmFudAp1Y2xpZGVhbgrDpGd0CuKWgdC/0ZbQstC00LXQvQpQYWdlcwriloFyaXZlcnMK4paBZG9ubmVyCnN2bgriloHFggpvdsSbCuKWgUxlaXN0CmFyaWFsCm92w71jaAriloFmaWxsaW5nCuKWgW11c2ljYWxlCm1heGltCuKWgWRhc2hlZAriloHQndC+0LIKRHJhd2VyCuKWgU1lZGljaW5lCuKWgWRva3VtZW50Cm93ZWwKdmnEhwpoZWx5CuKWgWVsZXQKU2Vjb25kcwriloFHb256CnJvdQriloFmaW5hbGVzCnJuCmbDuAriloFpbmRleGVkCmNsYXNzTmFtZQriloFvYmVyCuKWgWR1YXMK4paBb3B0aW1pemVkCuKWgWtkeQp2ZXJzYXJ5CmVuZXJneQriloHRhtC10L3RgtGA0LAK4paBY3VycmVuY3kKennFvApMaWtlCuKWgdCT0LgKc29ubwriloFwYWxhYgriloFwdXNoaW5nCnVibGlrCuKWgUhhc3MKfVwsXAp1bmtlcgriloFGYWN0b3J5CuKWgVJlc291cmNlcwpkYXRlaQriloFUb29scwriloFzdGVoZW4Kc2ltZQriloHQpdGDCuKWgWhvY2gK4paBUm9kcsOtZ3Vlegp6ZWl0aWcK4paBVGVycnkK4paB0L7QsdGDClVzYWdlCnVyY2hhc2UKbMO2CuKWgUludHJvZHVjdGlvbgriloFwYXJ0aWNpcGF0aW9uCs6/z4IKb2dsaQphcHkK4paBaG9wZWZ1bGx5CnBvbmRlcgriloFZYW5nCuKWgXByb21pc2VzCuKWgdCy0LXRgNC90YMK4paB0L7RgdGC0YDQvtCyCl57KwriloFtb3N0cmEK4paBQ1VSTE9QVApISAriloFzdGRvdXQK4paBYnJpbGxpYW50CuKWgW1hbnVzY3JpcHQK4paBZGVjaXIK4paBQm9sb2cK4paB0LzQtdGB0YLQsAriloFpbnZpc2libGUK4paBQ2hhbAriloFhbmFseXplCnByaWxpcwphdHRlbmQKTXZjCnRoYW4KY2tvCuKWgVF1ZWJlYwriloFwbGFudGEK4paBdMOpbMOpdmlzCuKWgXVuaW5zdGFsbArDqG5jaWVzCuKWgWdtaW5pZQriloFQcmVmCuKWgWxlcXVlbApJbnZvY2F0aW9uCuKWgcONCuKWgXRyYW5zZm9ybWVkCk1BTgpnZWJhdXQK4paB0YHQvtGF0YDQsAriloHQstGC0L7RgNC+0LkK4paBTGl0aAp3ZW5kdW5nCuKWgVBvbGl0aWsK4paBU2VuYXRvcgriloFMTArQttC00LXQvdC40LUK0YjRgtC1CuKWgUPDqXMK4paBYmFuZGUK4paBaGlzdG9yaWFuCuKWgXBhc3N3b3JkcwptYWxsb2MK4paBc2VtaWYK4paBcsOlCnVuaWPDrQpBdmFpbGFibGUKT3B0aW9uYWwK4paBVHdlCuKWgWtyw7MK4paBc3Vic2V0cwriloFEQVQK4paBZG91YmxlcwrQvdC40LrQsNC80LgK4paB0LfQsgpnZWdlYmVuCuKWgdCf0L7Qv9C40YEK4paBasO6bGl1cwriloFtZXRlb3IKTW91bnQKaXZlbnQK4paBTmF0aGFuCuKWgVNjaHV0egplZ292CuKWgWTDtmQK4paBbWVhdAriloHQv9GD0L3QutGCCuKWgW1pbmRzCmVsaXZlcnkK4paBVExTCtGA0LXQvApja3PDpQriloFzdGF5ZWQK4paBQmluCuKWgVBpYQriloHQuNC80LXQvQriloFCb2JieQriloFwcm9kdWl0CmVtcGlvCuKWgXJlZHVjaW5nCuKWgVl1CuKWgUdlc2Now6RmdAriloFwZXJjaMOpCuKWgWNvcnMK4paBaWNvbnMKQXBwRGF0YQriloFIb2cK4paB0YDRltCyCuKWgVNhbnMK4paBc2nDqGdlCnN0ZWxsZW4KQnJ1c2gKT0ZGCuKWgXZpc2l0b3IK4paBYmF0aAriloFmZWUKYXRpc2YK4paBY3VydgriloFmb2xnZW5kZXIK4paBY29uc2NpZW5jZQriloFTZWF0dGxlCuKWgW1lZGlldmFsCmRpc3RyaWJ1dGlvbgriloFETQriloHQvNGPCuKWgVJVTgpha292CmNlaWwK4paBbGV0dGluZwriloFkb3YK4paB0L7QsdC4CmtpZWoK4paBZGlyZWt0CuKWgXRtCmNvbG9ycwriloFhbHRybwriloF0aWpkZW5zCl17JwriloFCb20K4paBa3Vuc3QK4paBc2hlbHRlcgriloFyYXYKcHJlZGljdAriloFjb21lbnrDswriloHFm3dpYXQK4paBRHVyYW50CuKWgXNjaGVtZXMK4paBbWVzaAriloFpbmRpY2F0b3IK4paBRW1lcgriloFndWlsdHkK0L3QtdGGCuKWgWNvbnNlcXVlbmNlcwpjbHVkZXMK4paBTG93ZXIK4paB0L/QvtC80LUK4paBcGFjZQrQtNCw0LPQvgriloFhbWJvcwpsYgriloFlZHVjYXRlZAp1cmFsZQphbmgKZXNzw6lnCuKWgWFzc29jaWF0aW9ucwp0b3duCuKWgXRyaWYKc2FtcGxlcwpib3MK4paBU3BlY3QK4paB0KbQtQphbHR1bmcK4paBTG9iCuKWgWN1cmlvc2l0eQriloFXZWl0ZXIKZXN0b25lCuKWgWRlbW9sCuKWgWFwb2xvZwriloFEeW5hbWljCklubmVyCmVzcGVyCmVjegp1ZWxsZW1lbnQK4paBSGFtaWx0b25pYW4KQXRsYXMK4paBYXJndWUKRm9yZWlnbgpjb2xsYXBzZQriloF0w6lybWluCuKWgWVsZWN0cm9uaWMK4paBTlIK4paBY29ycgp0ZW1wcwpJbmRleFBhdGgK0Y/QtwriloF0YWzDoWwKdG9kYXkKd2F2ZQriloFzaWIK4paB0YHQv9C4CuKWgWNvbnZleQriloFHw6lvZ3JhcGhpZQriloHQndGM0Y4K4paBSGliZXJuYXRlCuKWgXRpbgpkaWMKcHBpbmdzCnN3ZWlzZQriloFyb2xsaW5nCuKWgXNlbGVjdHMKKVwpCuKWgXBvZXRhCuKWgdGB0YLQtdC/0LXQvdC4CuKWgUFicgriloFow7ZjaAriloFzdGVybgriloFmasOkcgriloFpbnN0YWxsZXIKZGVjbAriloFtaXNlcgpncm91cGJ5CnN1YnN0cgriloFwaGVub21lbgriloFXaW5nCuKWgWZpbGxzCuKWgcO6bmljbwpSdW5uaW5nCkNvbWUKaXJhYmxlCnNpbWVxCuKWgXJlbXAKa2VsZQpsaWVycwriloFrd2lldG5pYQriloFpbnRlcnJ1cHRlZAriloFKZXQKPVx7CsOtZG8K4paBVGFpd2FuCuKWgdCy0L7Qt9GA0LAK4paBYWx0ZXJuYXRpdmVzCuKWgVRpcgriloFSZXNlcnZlCuKWgdCa0YPRgAriloFOb2JlbAriloHRgNCw0LHQvtGC0LDQuwriloFheGVzCuKWgUNlcGVuZGFudAprw6EK4paBZXJuZXV0CuKWgURlbW8KY29tbXVuaWMKY29uc3RydWN0b3IK4paBTW9uZGF5Ck5pbApIYXNoTWFwCnBheW1lbnQK4paBZml4aW5nCuKWgUFERApyZXZpZXcK4paBcG9zc2liaWwK4paBZ3JvdGUK4paBZ3JvdXBlZAriloFMaW1hCuKWgUF1Z2VuCuKWgW9ja3PDpQpvbmFzCuKWgWRlYmF0ZQriloFJbmdsCkRhClNPVVIKZXR0YmUK4paBQmF0dGFsaW9uCuKWgUZsb2F0CuKWgWNvbmUKcmVhZHNoZWV0CmNvdXJ0CmxpZ2VuCuKWgUJlZ2lubgriloFMSU1JVAriloFlbmpveWVkCuKWgUpha29iCuKWgXRlbHQKYmFja2VuZAriloFHZW1laW5zYW1lCmxpbnQKYWxsaW5nCuKWgWLDtnIKZ3JhbmQK4paBZGl2ZXJzZXMK4paBendpxIV6CuKWgUtvbXBvbgriloFpbm5lcmhhbGIK4paBZGVzYXJyb2xsbwriloFNYXN0ZXJzCmlvc28KXWAuCuKWgWZyYW5jZXNhCkFmZgppbmVrCuKWgWRlc3NpbgpgLmAK4paBcmFua3MK0LHQtdGA0LMK4paBc2thbAriloFTdWx0YW4K0JDQnQriloHRgdC/0L7RgdC+0LEK4paBY29udHJhZGljdAriloFyZWNvbQriloFPa2xhaG9tYQriloFWbGFkaW1pcgriloFtZXRlcnMKdHJhbnNwb3J0CuKWgWNvbnN1bHTDqQriloFBVFAKZWJiCuKWgXZvbHVudGUK4paBb3V0bGluZQpMSUMK4paBZXVybwpDaGFyRmllbGQKbWVkaXVtCuKWgUJlbGdpcXVlClByb2MKcm91dGVzCuKWgWNvbnRyaWJ1CiF9CsWhw61tCuKWgUxlc3MK4paBS29zdAriloFlcmVkZXRpYsWRbApyZXZlbgp2ZXJpZnkK4paBU2FsdAriloFzaG9vdGluZwriloFkaXNwb3NlCnVqw60K4paBdGllcnJhCuKWgXBvaXNvbgpzYWsKcGVyaW1lbnRhbAriloFOw6kK4paBS2lkCmFneWFyCuKWgWFyY2hpdsOhbHZhCmJlcmVpY2gKw616CuKWgVJpdHRlcgriloHQpdGA0L7QvdC+0LvQvtCz0LjRmNCwCnpldW0K0LTQsNGFCuKWgWdyw7xuZAriloFwcm9ncmFtbWVyCuKWgWNvbnNlaWwK4paBZW5jcnlwdAppbnRlZ3JhdGlvbgpDdWx0dXJlCuKWgUNpcmNsZQpPYnNlcnZhYmxlCuKWgWdlbm9tc25pdHQK4paBU2VsZWN0aW9uCuKWgWlycmVndWxhcgpBdXRyZXMKUGVyY2VudApmYXVsdAriloF2aXJ0dWUKxIVwaQriloFzZXNzCuKWgdCi0LDQutC20LUKVGltZXN0YW1wCuKWgWxpdHTDqXJhdHVyZQriloFtb8W8CuKWgWJvcnJvdwriloFjb25jZWQK0YfQvdC40LoK4paBTHVuZApJT05TCnluaWUK4paBU2hpbgriloFvc29iCmLEmwriloFpbnR1aXQK4paB0L3QsNC/CuKWgXByb3BoCuKWgXBpdHQK4paBSUJNCuKWgVRpbGwK4paBaGluYQppdHRlc3QKZ2VuZXJhdG9yCuKWgU5pbgriloFLb3QK4paBcGFzc2VyCuKWgWRpc3Bvc2l0aW9uCnVuaW5nCuKWgWZhbWUK4paBdGVuaWEKYW5jZW1lbnQK4paBU3Vpc3NlCmAtCuKWgWhvbWJyZXMK4paBaW5maW5pdHkK4paB0L7QutC+0L3Rh9CwCuKWgWNvc20K4paBRGVubmlzCmJhegpoYXVwdAriloFtaWdodHkK4paBcHJlZGUKdXNhYmxlCuKWgXdzenlzdAriloFsYgpBQkFTRQpqbmEK0L3QtdCyCuKWgWFzZXMK4paBZmluYWxtZW50ZQrQudC8CnBlY3Rpb24K4paBU3R1ZGllbgriloFOb3J3ZWdpYW4KY2VnbwpJTkRFWApvcnRlbgriloFmcmllbmRzaGlwCm1ldHJvCnRoaWNrCuKWgVplbApMT1cK4paBdGhlcmVieQp1bnRlZAriloFzdXJmYWNlcwrRjtGJ0LjQvAolKS4K4paBV29uZGVyCuKWgXJlZHVuZGFudAriloFHcm9zCuKWgXdlYnNpdGVzCuKWgXZpbwriloFvY2FzCnbDqXMK4paBR2FtCmR3CkluZGljYXRvcgriloFLb2IK4paBamFjawpIaW50CuKWgUFwb2wK4paB0LTRgNGD0LPQuNC1CuKWgU5VTQriloFvZmljCnlzdHljegriloF3ZXJlbGQK0LzQvtGB0YLQuApMRUZUCuKWgVR5cGVzCnNlZW4KdW5jaWEK4paBbmFyb2QK4paB0Y3RgtC+0YIKU2lkZW5vdGUKdWVpbAriloHQvtGC0LzQtQriloFjb3VydHMKZmlyCnVyegrRh9C10L3QutC+CkNyZWRlbnRpYWxzCuKWgWltYWdpbmF0aW9uCml0YXRzCmJ1ZmYKZmxhc2gK4paBYmFkbHkK4paBd29ybgriloHQvtC60YDRg9Cz0YMKY2F0YWxvZwpsaW1lCuKWgUdpbGwK4paBU2VudAppZWxsYQriloFDcmFpZwriloFTZWxlCuKWgUluZGVwZW5kCuKWgXByb3ZpbmNpZQpvc3NlbgriloHQt9Cw0L/QsNC0CuKWgWluZmFudAriloFwcmV2ZW50cwriloFwcm92aW5jZXMKYWbDqQpiZWcK4paBY29sb3VycwpCRgrDq24K4paB0JzQtdC20LTRgwrDrm4KT2JzZXJ2ZXIKZm9yc2NoCsOtZ2VuCnVtcHRpb24K4paBSWxsdXN0cgrRgNC40YHRggriloHQv9C+0LvQvtCy0LgK4paBYCYK4paBb3JlCuKWgXN1cHBsaWVzCuKWgXBhcmVudGhlcwpGb3VuZGF0aW9uCuKWgXZvdQriloFUb3V0CkRvbmFsZAriloFSRVQKd2VpZwriloFwcm9kdWNjacOzbgptaXgK4paBdXR3b3IK4paBZsO2bAriloFlbnTDo28K4paBU2lzdGVyClRhZ3MK4paB0KHQsNCy0LXQt9C90LUK4paBcHJpdmlsZWdlcwriloFuYXp3CuKWgVJhdgriloFyZXBybwriloFNYXNvbgriloFQbGF0Zm9ybQriloHQv9GA0L7QsdC70LUK4paBUMOpcmV6CuKWgWJsYW5jCkJlaGF2aW9yCtGE0LjRhtC4CmVrZW4K4paBbWVldHMKKC4qCuKWgWbDpQplcGVuCm1ha2VyCuKWgWxveWFsCm1lbWJlcnMKbWVpc3RlcnNjaGFmdApnb2FsCtGI0LvQtdC9CuKWgdGB0LXQstC10YDQvgppZW5kZQrQtNC90ZYKUHJvb2YK4paBZXhwbGljCuKWgWVsZWN0cm8KaWVscwpyZWxvYWQK4paBZWxldmVuCuKWgXBhcnRpZG9zCsOubmUK4paBUmVnaW4K4paBw6l4CuKWgUJ1bGcK4paBbmV0d29ya2luZwriloFzZXBhcmF0b3IKVXNlck5hbWUK4paBZWRpZmljaW8K4paBTWllCuKWgWlkbGUKeWVkCuKWgXBhc3NlbmdlcnMKKykKbWVubwplZ2dpCuKWgW5pY2VseQplbmRlbmNpYQrRh9C40LkKw6l0w6lzCmlnaHRhcnJvdwriloFvcnRob2dvbmFsCuKWgUhhbGYK4paBZmV3ZXIK4paBcHJvcGkK4paBcHJpbWl0CmljYWxlCuKWgWZsb3dlcgptZXJrCuKWgdCe0YLQtdGH0LUK4paBcGVyc2lzdGVudAriloFWaWxsZQpNZW4KZ2FiZW4K4paBSXNhYWMKYXRpdml0eQriloFww7PFgm5vYwriloFyb2sKY2FyZHMK0LTQtdC90LjRjwriloHRjtCz0L4K4paBZXh0cmFvcmRpbmFyeQriloFreXIKKCIsCikpXQriloF1bml4CtC60L7QuwriloFzaW5rCmFwc2VkCuKWgWtvbW1lbgriloFmb3JjaW5nCkFib3V0CuKWgUhhbGxlCuKWgU1hamVzdHkK4paBU3dpdGNoCuKWgWFicm9hZAriloFhY2NlbGVyYXRpb24KdXJiZWQK4paB0L7RgdGC0LDQvQpSZWFkeQriloHQv9GW0LLQvdGWCkJyYQriloHRhtGM0L7Qs9C+CuKWgXBsdXQK4paBVHJhaW4K4paBw6FwcmlsaXMK4paBcHVlc3RvCuKWgXRvc3MK4paBaXJyZWxldmFudAriloFkaXAKc2VnbWVudApvcGFjaXR5CuKWgWxvcnNxdWUK4paBdmVyc2NoaWxsCtC10L3QsAriloFEb2MKJSUlJSUlJSUK4paBYm9yZGVycwpnZWJyYXMK4paBcmllcwriloFPbHltcGVkaWEK4paBR2VuZXJhdGlvbgptZXRyb3MK4paBaG9yaXpvbgriloFhZGFwdGF0aW9uCuKWgVphaGwK4paBbmFoZQriloFCdWcKUGljdHVyZQrRmdC4ClJHQgpPd25lcgphZGluCuKWgUNhdGFsdW55YQpuw71jaAriloFjdWFscXVpZXIK4paBSW5zdGl0dXRpb24KaW5zZW4K4paBQnJhc2lsZQriloFmaXR0aW5nCkRlbGVnCmljdHdvCuKWgUV4cGVyCm9jaGFzdGljCuKWgWR1cwriloHQv9C+0YDQsAriloFzdWJzdHJpbmcK0YHRgdC40LgKb2luCuKWgdGI0LrQvtC70LAK4paBY3gK4paBJSkK4paBQnVkZGgK4paBcGVuZGluZwriloFFbnRyeQriloFCZXJsCuKWgWNsZXIK4paBU29jCuKWgXJvdW5kZWQK4paBbXYKw610ZXR0CuKWgURpcGxvbQriloFmcmFuesO2c2lzY2hlbgriloFHYW4K4paBSW52ZXN0aWcK4paBaW5kZXhQYXRoCuKWgW1vbHRpCnBlcnNpc3RlbmNlCuKWgVhJWGUK4paBRWxlY3Ryb24KYsO8CmdlbGUK4paBTWFsZXIK4paBcHJveWVjdG8K4paBQmF0aAplbGxlcnMK4paBR1AKb25pbmcKY2xvdWRmbGFyZQriloFwxZlpCuKWgWRlZAriloFPZGthenkK4paBTXNnCuKWgUJlaW5nCuKWgURlcHVpcwriloFQcmltYXJ5CuKWgUFwcHJvCuKWgWZvcm1hbGx5CtGB0YLRg9C/0LjQuwriloFmdWVyYQriloFSb290CuKWgWF1dG9ub20K4paBc2VjcmV0YXJ5CuKWgW9zw7NiCuKWgWN1YWxlcwriloFEZXBlbmRpbmcK4paBYXNpCnZlcmEK4paBcnVzc2UK4paBcHJvdmVzCuKWgXByZXNpZGVuClJVCuKWgVdhdHNvbgriloF3ZWJwYWNrCmVsbGlnZW5jZQrQutCw0LwK4paBT2ZmaWNlcgriloFkZWxpdmVyeQrQttC00ZHQvQriloHQuNC80L/QtQriloF3aWwK4paBdmVzYwp1c3p0dXMK4paBR2VvZmYKKCl9CuKWgUZvcmUK4paBd2VuaWcK4paBQWlybAriloFFZnRlcgriloFCcmVhawriloFTdMOkZAppc21pc3MKw61wCuKWgWF2b2lkZWQK4paBYXNzZXJ0aW9uCkROCuKWgXRlYXQKw61uYQriloFtZWNoYW5pY2FsCmlzdQpAewriloFub3UKSXRhbGllCnNvdXJjZWZvcmdlCuKWgXN2bwriloFraXLDoWx5CuKWgVJlZmVyZW5jZXMKc2l4CuKWgUFyY2hpdmVzCuKWgWZpbmlzaGluZwphY2plCsOpdGF0CmlmZnMK4paBc3RlYWQK4paBZmVhcwphd2FyZQpsYW5kZQpJbmplY3QK4paBQWdlbnQK4paBTm9ybWRhdGVpCuKWgWFtZW4K4paBQXJjaGl0ZWN0dXJlCmF6ZQrImXRlCuKWgXVzYXIK4paBY29yZXMK0LvRltC9CuKWgUNhc3RybwriloF2w6YKPiIsCm9tZW5hCuKWgWdlc2FtCuKWgU1hcnTDrW4KZWd1bmcK4paBc3BvbGXEjQriloFhbXBsaXR1ZGUK4paBaW1wb3J0aW5nCuKWgWxpc3R2aWV3ClRIRQp6aWFsZQpjZWRlcwriloFwYXJ0aWN1bGllcgriloHQoNCw0YHQv9C+0LTQtdC70LAK4paB0LrRgNCw0LkK4paBZGl2ZW50CuKWgWvDqQpxdWl0CtGC0L7RgNC+0LwKQ2hlY2tCb3gK4paBWm9iYWN6CnBoZQpwdGEK4paBc2rDtgriloHRgNC+0LfRgtCw0YgK4paBdGVkZXNjbwriloFzdGFsCuKWgUJlcnVmCtC+0LLQsNGPCuKWgXN2xJsK4paBZmx1c2gK4paB0LLRltC00LHRgwriloFyYWRpYWwK4paBZGlmZsOpcmVudGVzCtCw0L3RgtCwCuKWgVBlcnJ5CkNvbGwKbGlxdQriloFPcHRpb25hbAriloHQodCw0L3QutGCCuKWgUxJTlEK4paBRnJhbmMKY2lqZQriloFHdWlsbGF1bWUKa25vdwriloFVbml0cwpvbGsK4paBU3lzdMOobWUK4paBU2FsZXMK4paBZWhlbWFsaWdlbgrQvNC40YDQvtCy0LAKeGh0bWwKc2V0b3B0CuKWgW1lbGxhbgriloF6aWUK4paBZ2lhbnQKQm9hcmQK4paBQ2F2YWwK4paBZGVmZW5jZQotLS0tLS0tLS0tCnBzaGlyZQptYXJ0CuKWgURpb2MKaXNrdAriloFpbnNlCuKWgcOpcGlzb2RlCtGH0LjQugpiYXJzClNpdG8K4paBaW50ZWdyaXR5CmF1ZmYK4paBdsOkcgpBenVyZQriloFzdGFyYgriloHQutC+0L3RgtGA0LAK4paB0JzQtdC60YHQuNGH0LrQsAriloHQt9Cw0L/QsAriloFNb3VudGFpbnMKfX09CuKWgXB1bGxpbmcK4paBc2F0ZWxsaXRlCuKWgWF0b21zCuKWgXByb2Zlc29yCuKWgXJlcGVhdGVkbHkK4paBaW52YXNpb24KcHJvZ3JhbW1pbmcK4pSc4pSA4pSACuKWgUxpcArQstGI0LjQtQriloFrZWVuCuKWgWNyaXRpY3MK4paBTmljb2xhCuKWgUNhbmQK4paBZGlzdGludAriloFoZWFkaW5nCnByYWdtYQp7fAp5bWVuCuKWgXRlcnJhaW4KaWVkZW5pcwriloFiZXNvbmRlcnMK4paBbm9taW5hdGVkCkJPT0wK4paBS2F5CmNpYW4Kc3RlbGxlCuKWgWRpc3B1dGUK4paB0YkKRGF0YVNldApub3RoaW5nCkF1dG9tCmjDtnJlbgriloFzaGVkCuKWgXBhdXNlZApzYW4K4paBbnVuY2EKISgiCuKWgXBvxYJvxbwKU2VjcmV0CuKWgURvbWFpbgriloHQstC+0LfQvNC+0LYKWFYKbHYKaWtoCuKWgVNvbnkKbXEKb3Ryb3AK4paBTG9nZ2VyCuKWgXRocmVhdAphc3RlZArQt9GM0LrQvgriloFmcmVlbHkK4paBaW1wcm92ZW1lbnRzCmlzdGVtYQriloFpbGx1c3RyYXRlCuKWgXRhY3QK4paBZmlndXIKdcOpcwpyaW1pbmFsCm9kb24KaW50ZW5kbwriloFpbmZsdWVuY2VkCkZGRVIK4paBR2hvc3QK4paB0YHQvtCy0LXRgApuYWQKaW9uZWQK4paBRXZlbnRzCuKWgXdyYXBwaW5nCi0tLS0tLS0tLSsKZmlmCuKWgSgqKgo9e3sK0LzQsNC70YwK4paBbG9zc2VzCuKWgUdhbGVyaWUKdGVsCuKWgdC70Y7RgtC+0LPQvgriloFLcnUK4paBUG9sZW4K0L3RltC8Cm5lYXIK4paBc2hhbWUK4paBbW95ZW5uZQriloFDUApwcmVpcwriloFwYXNzZW5nZXIKbGVrCmlvbmFsZXMKa2Fma2EK4paBcGFydGljaXBlCuKWgW1lbWJlcnNoaXAKW18KbGFuZG8Kc3RlbGxpbmcKU2VtCmdvbgriloFDb3JyZWN0CuKWgXZhbGxlCuKWgXJlYWRpbHkK4paBRG9rdW1lbnQKaG9ubmV1cgriloF0ZXN0aW0KdWxhdGl2ZQpkb0ZpbHRlcgriloFkb21pbmFudAphbW1lcgriloHQutC+0ZjQsAriloFNb25zaWV1cgp6ZWcK4paB0LLRltC50L3QuAriloFGbwriloFBbXkK4paBwqEK4paBZmVicnXDoXIK4paBZG93bmxvYWRpbmcK4paBbGVuZwpcfSQsCuKWgW5lYXQK4paBQ2FjaGUKSUNBVElPTgriloFkZXZlCuKWgXNvcnJvdwpzbG93CuKWgWhpbmF1cwriloFyZWNvbm9jCuKWgUxpbmtlZAriloFTaGF3Cm1hcmtldAriloFEaWMK4paBU2tpCuKWgWRlbGltaXRlcgriloFNYWluQWN0aXZpdHkK4paBTXVzaWNhbAriloFSZXluClNjcm9sbFZpZXcK4paBY29udmVudGlvbmFsCmVuw6dhCuKWgXJlZmFjdG9yCictCuKWgUhlZApzcHJlY2gK4paBYXRobGV0CuKWgWVzcGVjaWVzCuKWgVNjaMO2bgriloFrbGVpbmVuCtGI0LrQvgriloHQmdC+CuKWgUhhcHB5Cm11bHRpcm93CuKWgWF1Z3VzdGkK4paBR2FuZAriloFhcHBvaW50bWVudAriloFNZWRpYWJlc3RhbmRlbgpUaHJlZQriloFLZW5uZXRoCk5FVwriloFOb3RpZmljYXRpb24K4paBTWFyeAriloFpbnNjCk1vcgrQstGL0LkKdsOkc3QKdmlkaWEK4paBZGVtb25zdHJhdGVkCmZvbnRzCuKWgWthbWVuCuKWgVN0ZXIK4paBbWllc3prYcWEY8OzdwriloFLb2gKfiRcCsK7KS4KcmVuZQppbnNpYwppY2vDoQp4eWdlbgriloFtbgriloFzY2hlZApBU0MKSWcK4paBQ29uc3RhbnQK4paBb3Bwb3J0dW4K4paBTXlDbGFzcwpzZWYKb3BlZAriloFpbmp1cmVkClZJUwriloFQZXJvCuKWgVVudGlsCuKWgWZsZXNoCm9ycGhpc20K4paBUG9ydGFsCuKWgWdtaW55CuKWgdCy0LvQsNGB0YLQuAriloFOw6QK0LrRgtC40YfQtQriloFocmFiCuKWgUN1Ygphdm9pcgriloFMYXJzCuKWgdCR0LXQu9C+CuKWgXNlaXpvZW4K4paBR2Vub21zbml0dAriloFMaWwK4paBUG9vbAriloFEaW9zClRYCmFlcwphdXRvcmUKQWxwaGEKc3RhdGVzCkxhYgpuZWRlcmLDtnJkCmVydG9uCuKWgWJyaWQK4paBcmljaHQK4paBRWxhCuKWgdGB0LvQsAriloF3ZWFwb24K4paBY29tYmF0dAphZ2FyCuKWgXJlZ25pZwriloF1dGlsaXPDqQriloFzZXJ2aXIK4paBYnJpY2sK4paBZ2F0ZXdheQriloF0b3JyYXN0ZQriloFwcm9jZWR1cmVzCuKWgcOlcnNuZWRlcmLDtnJkCuKWgUdlbm9tc25pdHRsaWcK0YfRkdGCCuKWgW9tcsOlCuKWgXJlZ25pZ2FzdGUK4paB0YfQtdGB0YLRjAriloFhbWlkCuKWgWdyYXRlZnVsCuKWgURJUwpEQVkK4paB0L7RgNGDCuKWgXJpdmnDqHJlCmhldXJlCuKWgVJpY2htb25kCuKWgUNvbXBhcgriloHQndC+0YAKRE9DCmVzaWEKY2FsYwriloFJVQriloF2b3JnCuKWgWhhYsOtYW4Kw6dvaXQK4paBYXJpc3QK4paB0LrQu9C4CuKWgVN1ZQriloFUb3VjaAriloFXcml0aW5nCmlmaWFibGUK4paBd2MK4paBd2l0aGRyYXcK0LfQsNGACuKWgXByZXNlbnRseQriloFGSwriloFwcmFrdAriloFjb2xvcmVkCnVzYgriloFQZXLDugriloFwbGF0YQriloF3aXNoZXMK4paB0LrQsNC8CmF6YXIKw6F2ZWwK4paBbGFtcApiaXNob3AK4paBaW5jbHVzaW9uCmpxCmFydGgK4paBRmxhZwriloHQvdC+0YAKw6ZkaWEKVU5DVElPTgriloFCYWhuaG9mCuKWgWFwcHJvYWNoaW5nCuKWgUfDtnR0CuKWgWN1YmUK4paBYXJndWVkCuKWgVRoaW5ncwpHdWkK0LTQvtCy0LgK4paBcmVjcmUK4paBcsOpc2VhdQriloFzaWduaWZpY2EKR2l0CmdlYnJhY2h0CuKWgWxpZ2EK4paBYXNzdXJlZAphbHVzCtGA0LjRggriloHRjdC90YbQuNC60LvQvtC/0LXQtNC4CuKWgSUpLgriloFQcmVtacOocmUK4paBZGVjbGFyYXRpb25zCuKWgXRyaWNreQriloFwcm9maWxlcwriloFGb24K4paBSmFzCsOicgpiYWJlbAriloFGcmlkYXkK4paBasO6bml1cwriloFjb2xzCuKWgUVYSVNUUwriloFJdGFsaWFuYQriloFhdXRob3JpemF0aW9uCuKWgXN1bGxlCuKWgUVtYgriloFWYXJpYWJsZQp0cmVlcwriloFGbHkKcmlvcnMK4paBZGFtYWxzCuKWgWZpbmRldAriloFTZXB0CuKWgW11bmRpYWwK4paBcmVtb3ZhbAriloFsb25naXR1ZGUKY2xpYwriloFmYWRlCuKWgWdyYWRsZQriloF6w6FrCuKWgXRpbWluZwp0cmlnaHRhcnJvdwphdGlhCi0uCnVjaGUK4paBc2VyaWFsaXplCuKWgUhtbQriloFSZXByZXNlbnRhdGl2ZXMKYmFoCnJlbmQKYXNzYWRvcgriloFzaGllbGQKdWNpb24K4paBYW3DqXJpY2FpbmUKesSZCnZpbGxhCuKWgWhvbWJyZQrDoXNzCuKWgVNGCuKWgXJlcGVhdGluZwriloFjcml0ZXIK4paBU3RydWN0Cj8/PwriloFjaGVhcAriloFyaW5ncwphYmjDpG5nCuKWgWNvcnRlCuKWgWFkbWluaXN0Cml4b24KZ3lwdAriloFwdW50b3MK4paBbWV6aQriloFwb2Nob2QKaXNrbwpuacSZCuKWgdC+0YHRgwriloHDoXIK0YLQtdC70YzQvdC+0LkK4paBTWV0cm9wb2xpdGFuCmppbgp6ZXNzCuKWgdCy0ZbRhtGWCuKWgWNvbmZsaWN0cwppanN0CuKWgU1hcmtldArRgdGC0YDQvtCyCuKWgSIsIgriloFTY3JvbGwKZ3VuCtGC0LDRgNCwCuKWgWFtYXRldXIK4paBcsOzxbwKcG9zcwriloFnZW5lcmFsaXplZAriloFIYXJtCmNpdGEK4paBU3dpdHplcmxhbmQKaWNvbGEK4paBbXVpdApsb2NhdGVkCuKWgWPDswriloFhcm9zZQriloFjb21tdW5hdXTDqQp9KV4KdmlzaWJpbGl0eQrDrWRhCuKWgUZCCuKWgUZyZXVuZApnYXQKIjp7IgppbnRlbGxpagppZmllCmhtZW4K4paBw6lkaXRpb24K4paB0LrQvtGY0LUK4paB0ZbQvdGI0LjRhQpvbWluZwriloFhcnF1aXRlY3QK4paBUHJlc2lkZW50ZQriloHQn9GW0LQK4paBY2FiaW4KVGhlb3JlbQriloFHYXkKaWZpY2UK4paBaGVjdApsxIUKaXJtaW5naGFtCuKWgXNlbWFudGljCuKWgUxvdWlzaWFuYQriloFzYWNyaWZpY2UK4paBQ2hyaXN0b3BoCuKWgUV4ZWN1dGl2ZQpfKwpqw6FrCuKWgXNlcmlhCuKWgU92ZXJmbG93CuKWgUx1Y3kK4paBbWVsaG9yCuKWgXZvaWNlcwpjemEK4paB0LrQsNC/0LgK4paB0YPQvdC40LLQtdGA0YHQuNGC0LXRgtCwCklOQ1QK4paBY29sb2MK4paBcHJ1ZQriloFnZW9tZXQK4paBZGlyZXR0bwpyZXNvCuKWgUFrdAriloF1bmgK4paB0YHQtdGA0LgK4paBQWxlcnQKV2VsCmF1ZGkKw6RsZXIK4paBZ3Vlc3RzCuKWgdC40LTQtQpTdHVkaW8K4paB0LrQsNGC0LUK4paBZXhwb25lbnQKcnplCnBtb2QKcm9sbGUK4paBTGltaXRlZApBbGxlbWFnbmUK4paBcGl0eQriloFsw6QK4paBcnVubmVyCmtlbmRlCkVRCuKWgU1NCnN6w6FnCtC/0L7QtNGWCuKWgXJlZ3JldAriloFwdWJsacOpCuKWgWRlcGFydGFtZW50bwriloFhY2N1c2VkCmhwCuKWgVBmbAriloFTaW50CuKWgWVrb25vbQpyYWN0b3IK4paB0J/RltCyCuKWgWF3ZnVsCm93YcSHCl0tPgriloFGaW5lCtCh0LAKdGlzCsOpdGEK4paB0KDQvtC00LgK4paBRMO8c3NlbGRvcmYKTE9CCm9zYXMKd2Vya2UK4paBbGFuY2UK4paB0LvQuNGB0YLQvtC/0LDQtNCwCuKWgWluY29tcGxldGUK4paBUGljdHVyZQooJ1wKZXN0ZXJzCuKWgWJlbG9uZ2VkCuKWgVNhbmsKYW1tZWQK4paBcmVwb3NpdG9yaWVzCuKWgWFkZHIKQ29sbGVjdApIb3QK4paBdHlsCuKWgWluc3RhbmNlb2YK4paBYm9udXMKb3bDvQriloHQvNC+0YDRjwriloFpbnRlcmFjdGl2ZQriloFNeXMK4paBRWRtdW5kCmZpbGVOYW1lCmVtb3IK4paB0KLRgNC4CuKWgVJvc2VuCuKWgVByaW1hCuKWgXZvdGluZwriloFYUAriloFaZXJvCuKWgUxlZAphbXN1bmcK4paBZW5hYmxlcwriloFyZWRpcmVjdHMKQVNUClBhaW50CmFja2VyCmxlY2h0CuKWgWNoYWlybWFuCuKWgUF2ZW4K4paBU2FjaAooIjwK0LrQtdGACuKWgW1pc3Rha2VzCuKWgVdlaXQK4paBcHJvd2FkCuKWgWRpZG50CsOpbmFyaW8KdW5sZXNzCuKWgWJhY2t3YXJkcwpib2EKZHVpbm8KYGBgCnN0b3IKQ29tcGxldGlvbgpwdWVzdGEK4paBZGluYXN0CsO6bHQK4paBU1kKaWZvbGlhCsWTdXZyZXMK4paBcmFjaW5nCuKWgWNhYmluZXQK4paBY3V0dGluZwriloF0aHVtYgriloHQmtCw0YDQsApoaWdobGlnaHQK0LrRg9C/CuKWgXNkCuKWgdC90LDRhtGW0L7QvdCw0LvRjAriloFjYW1wYWduZQriloFyZWdpc3RlcnMK4paBZWR1Y2F0aW9uYWwK4paBcGVzYXIKw7xnZQriloFvcm8KYnVyZ28K4paBQXRobGV0aWNzCuKWgU1UVgpnZXRNZXNzYWdlCuKWgUh5cAriloF2aWN0aW0KKSlcCuKWgWRydW1zCmhvc3RuYW1lCnRhxYIKbWFraW5nCuKWgXBvd2lhdArFkWQKdGhyZWFkcwriloFhYnNvbHYK4paB0LvRjtC00LgK4paBc3RlcHBlZApleGlzdAriloFOSwriloF2ZXMKaXN0aWNoZQolJwphdGl2b3MK4paB0YLQsNC60L7QuQriloFNb25nb0RCCuKWgVVuZwriloHQoNGD0YEK4paBZWxpbQriloFGaWYKaWNhY2nDs24K4paBVGVubmlzCuKWgUplZmZlcnNvbgpqw6FuCmZvZwphbmhhCnpvcgriloHRg9C90ZbQstC10YDRgdC40YLQtQphaHUKaWFkYQpTZGsKU2V0dGluZwriloFLaWxsCuKWgVdlbmQK4paBYmFsZAriloFLdWIK4paBdmlzdG8K4paBamV1bmVzCmNvbGxlY3Rpb25zCmFjw60K0LLRgNC+0L/QtdC5CuKWgWFyaXNlCtC+0L3RlgpNQUlOCtC00L7RgdGC0YPQvwriloFiZXJnCuKWgWNyaXRpY2lzbQriloFUb3JyZQriloFkZXNjcmlwdAppw6hyZXMK4paBZXN0dWRpbwriloFpbGkK4paBbWlsaXRhcmUK4paBQ2xhcmEK4paBRWxsZW4KbGltaXRlZArQu9C8CuKWgUVzcGHDsQriloFpbmZpbml0ZWx5CkFtZXJpY2EKb3VjCmdsYXNzCuKWgXJ1ZAriloF6YXQK4paBcmluCuKWgUJpYmxpb2dyYWbDrWEK4paBbWVyY2hhbnQKdGVuc29yZmxvdwriloFkw6lyCuKWgUFjdGl2ZVJlY29yZApJRVMK4paBbGlua2VyCuKWgWVzdHVkaW9zCmNkbmpzCuKWgdCT0L7RgdGD0LTQsNGACsOhbmNoZXoKYXBwZQpjbHViCuKWgWRhbMWhw60K4paBQWxnb3JpdGhtCmRmcwriloFCYWMK4paB0LrQsNGE0LUK4paBJj1cCuKWgdCw0YIK4paB0JPQu9Cw0LIK4paBTW91Ck1hY2hpbmUKKC4uLikK4paBY29tcGFydAriloFhdWd1c3p0dXMKYXZhbgriloFyb2xsZWQK4paB0LXQtNC4ClNjYW4K4paB0YDQtdCz0ZYK4paBxZt3aWF0YQriloFtaW5lcwp9LHsK4paBVGllcgpDYW5ub3QK0LzRltC9CuKWgU5FVwriloHQktC+0LsK4paBTWFuaAriloFHcmVnb3J5CuKWgXByaW5jaXBlCklTTwpwcm9nCuKWgUZhaWwK4paBYWEK4paBZmVjaGEK4paBV0NGCuKWgW1hZ2lzdHIK4paBWmFjaAriloF1bmljb2RlCuKWgWNvbnZlcnRlcgriloFkaXNwZXJzCmtzYW0K4paBVW5jbGUKUHJvcGVydHlDaGFuZ2VkCuKWgWxpZGVyCuKWgW9wdHMK4paB0YLQsNC8CmxvY2tlZAp6YWsK4paBY291bnRlZAriloFwZXJzb25lCuKWgWh1cnJpZWQKw6R0dGVyCuKWgW91dHJhcwriloFnZW51CkJECnZlZwpkdWUK4paBUHJhY3QK4paBcG9zaWJsZQriloFjb250cmlidXRlClVNTgriloFCw7xyZ2VyCuKWgXdhcnMK4paBZXhoaWJpdGlvbgpoaWxsCuKWgWFzdHIK4paB0LzRg9C30LUK4paBQ0FTRQptYW5pZmVzdAp5ZWxsb3cKRm4K4paBUkMK4paBc290dAriloFzdWpldAriloFTb2NrZXQK4paBQ2hpbmUK4paBZnJhbWV3b3JrcwpIb2xkCsOqdHMK4paB0YTRltC70YwKTG9hZGVkCm9waGUKdGV4dGUK4paBZXhwcmVzCuKWgWNvbnN1bWUK4paBUmljaHR1bmcKb2dyYWZpCuKWgW1hZ25pZmljCsOgdAriloFpbmR1bApyeXR5CuKWgW9mZmljaQriloFhc3NhdWx0CnJ1bmQK4paBdmFyaWFudHMK4paB0YHQtdC70YzRgdC+0LIK4paBZXhjaXRlbWVudApUaW1lcwprb3RsaW4K4paBZ2VyaW5nCuKWgUVuZ2VsCuKWgVRpbWVyCsKyKS4K4paBTmcKw6Rzc3QKc2NoYXUKU0Vycm9yCuKWgUVkd2FyZHMK4paBVGVybWluYWwKbGljdApVbmRlcgriloFzcGF3bgrDvHJnZW4K4paBQXXDn2VyZGVtCuKWgWtpdGNoZW4KZmFocnQK4paBQ29sb3JzCuKWgdGB0LjRgdGC0LXQvNCwCuKWgXRlcm1pbmF0ZWQK4paBTGFUZVgKaWdrZWl0ZW4K4paBbWVzdXJlCuKWgUFtdHMK4paBZW1waXIK4paBc3RyaWtpbmcK4paBZXhjbHVzaXZlCtGC0LXRhQriloFyZXoK4paBcXVhbgriloFHbGFzZ293CuKWgWxlY3R1cmUK4paBVGVzdGFtZW50CuKWgWZ1bmRzCuKWgXN0ZXNzYQriloF0cmliZXMK4paBcGFyZm9pcwriloF0cmViYWxsCm5pdHoKYm92ZQriloHQt9Cw0YHQu9GDCuKWgWFic2VudAriloFMYXVmClNtaXRoCuKWgdCd0LjQutC+0LvQsNC5CuKWgWV1cm9ww6llbm5lCmxyCuKWgXByb2dyYW1tYQriloFtaWRzdAriloFkYXVnaHRlcnMKU3luCm9iZW4Kw6JuxIMKaWRhbgriloF0aGVyCm9kb3JlCnNkbAriloFRdWludAriloFjYXNvcwriloFaYW0K4paB0YHRgtGA0LDQvdGLCuKWgXNwcml0ZQrQutCw0LsK4paBbmFzYwriloHRgdC+0YLRgNGD0LQK4paBdHJhdmEK4paB0YXQvtC30Y/QuQriloFVcnVndWF5CuKWgXNwYXJzZQriloHQv9C+0LvQtQriloFteXN0ZXJ5CuKWgU1hbmcKcmVnaXN0cgriloFDR0Zsb2F0CuKWgXN1Ym1pc3Npb24K0LLQsNC90LAK4paBIjoK4paBVHJhY2ViYWNrCuKWgVBpdAriloFFaHIK4paB0YHRgNCwCuKWgUdyYXBoaWNzClVwZGF0ZWQK4paBc3ZlbnNrCuKWgXNwYWNpbmcKdHJpdHQK4paBR3VpbmVhCuKWgUZyYW7Dp2EKQXNzb2NpCuKWgVRvdsOhCnN0YWIK4paBTGVhcm5pbmcK4paBQnJpZ2h0CsWbYwriloFpZMWRCn19X3tcCuKWgWRyb2l0ZQriloFyYWlzaW5nCmdldHRpbmcKeXRobQpvbnltZQrFvHMK4paBYmxhaApUYWdOYW1lClZlcnRpY2FsCuKWgWFwZXIKcG9zdGdyZXNxbAriloFIYW5kbGUKemV3CuKWgXNrdWxsZQriloFvcGVyZQpsYXllcnMK4paBcG9zc29ubwriloFyZWxhdGUKxIVjCuKWgU1paArDomdlCuKWgcWad2kKaXNzZXMK4paBc2VydmxldApMb3MK4paBQWR2YW5jZWQKYXRpY2EK4paBY2VkCuKWgWVsZW1lbnRvcwrRgNC+0L3QsAppa3MKYXJmCmFyaWF0Ck1vYmlsZQphZ3VhCuKWgXRpbXAK4paBQ29taXTDqQriloFjb21iaW5pbmcKd29obAriloFTdHVkeQpjb29yZGluYXRlCuKWgXJlY29tbWVuZGF0aW9uCuKWgXRyYW5zZm9ybWF0aW9ucwp1bnRpbApib3VuZGVkCuKWgdC40LfRgwpoYW5jZWQK4paB0LLQvtC/0YDQvgriloFQcsOpcwriloFjb29yZAp4dHkK4paBJCwK4paBY2hhbXBpb25zCkRlbgpNaWwKKCcsCuKWgVByZWlzCuKWgWVpZ2gK4paBbWFya2VycwriloFnZXdlc2VuCsOkdHRlbgriloFwaW9uZQptdgriloHRmNGDCnplaWNobmlzCmhvZmYKTmV3cwriloFTdGFuaXPFgmF3CuKWgUJyYW5kZW5idXJnCuKWgUZldWVyCj0mCtC20LXRggriloFOZWlsCuKWgXdpcmsK4paBc29jaWV0w6AK4paBc3BhcmUK4paBY2l2aWxlCnNwcmFjaAriloFkaXNzZQriloFnYXRlcwriloFhbm9tCuKWgdCk0LXQtNC10YDQsNGG0LjQuAriloF0aWIK4paBZsO6dGJvbAriloFXaWtpcGVkCmlhdGUKRnJvbnQK4paBY3JhdwriloFSYWsK4paB0LfQstGDCnN0cmVldAriloFBZ2VuY3kK0LLQsNC70L4K4paB0KDQsNGBCuKWgW1rZGlyCmFjasSZCuKWgXNoYXJlcwpTdG9yeQriloFyZW1hcmtzCuKWgWtleXdvcmRzCkJvYgriloF0b2UK4paBVml0dAriloFyaHMKUk9QCm9yaXMKL0AK0YHQuNC4CuKWgXRyYXZlcnNlCuKWgXJlZmVyZW5jaW5nCnByw6RzaWRlbnQKcm9uZwonKToKYXRpZXMKQVcKT3V0bGV0CuKWgcOpdm9sCmlrZXMK4paBZW52aXJvbm1lbnRhbAppY3VtCuKWgUxpZWQK4paBd2FybgriloFCdXRsZXIK4paBJSksCuKWgVplaXRzY2hyaWZ0CuKWgU1vbnRyCtCy0LDQttCwCuKWgU1lcmN1cgpqZWt0ZQptZXRlcgpkdWNhdGlvbgriloFhdHRyaWJ1dGVkCiokCuKWgXVuZgriloFWZXJ0cmFnCnppZW4K4paB0KDQvtCxCmxpY2VzCnBwbHkKYW5zZW4K4paBemVpdAriloFpbW1lbnNlCuKWgWx1dGVnbwriloFCdWxnYXIK4paBbWllbWJyb3MK4paB0J3QsNGG0LjQvtC90LDQu9GMCuKWgUFsbG93CuKWgWFuZ2zDqHMK0LTQstC4CuKWgVRveQrRgtGD0LAK4paBeWFyZAooJQppc3NlcgriloFnb2xmCuKWgVVrcmFpbgriloFob3NwCkluY2x1ZGUK4paBTGlzYQriloFjc2FsCuKWgU1pcmEKcmVjb2duCuKWgdCa0LUK4paBaGl0dGluZwrQutC+0L3QvtC80ZYK4paBVG91cm5hbWVudApMT0FECuKWgUd1YXJkaWFuCuKWgWRhaGVyCuKWgXRpbWV6b25lCuKWgXRvbWNhdAriloFzdWNjZXNzb3IK4paBVm9pZAriloFjb21lw6cK4paBY29udmVydHMKw6RjaHMKb3NleAp4ZWxsZXMKYXNlcgriloHDiXMK4paBbW91CuKWgXVuZwriloFvcmlnZW4K4paBQ3JvdwriloFFcmQK4paBc2llYmVuCmx1YQriloFCQgpSRU5UCuKWgXBpxYJrYXIK4paBbWFycXVlCuKWgUxhYm91cgp2aWRlcnMK4paBZXhlbXBsClNvdW5kCuKWgVdhc3MKYXJyaXNvbgriloHRgtC10YfQtdC90LjQtQriloFPZmljaW5hCuKWgURhdwriloFLYXVmCsOpbnQKw6lzxZEK4paBPSIK4paBa2F0CmRpY3Rpb24K4paBVm9sbAriloFoaWdod2F5CkphbWVzCnpldWdlCuKWgW1vZGVsbwpUaHJvdwriloFGb3J1bQooIkAK4paBZW5mZXIK4paB0YHQv9C10YbQuNCw0LvRjApOdW1iZXJzCuKWgUJpbmFyeQriloFNYXJ0w61uZXoK4paBU3RhdG8K4paBZmVzdGl2CuKWgWthdG9sCuKWgdCQ0LEK4paBbGltaXRhdGlvbgriloFTVFIK4paB0J7RhNC40YbQuNCw0LvRjAppcGVzCuKWgUlzbgriloFydWxlZAriloFjw60KZ2ViZXIK4paBbGF2b3JvCuKWgXBhcmVudGhlc2VzCtC+0LcK4paBw6lxdWlwZXMK4paBZWZmaWNpZW50bHkK4paBUGVyaW9kCuKWgVJlZ2FyZGluZwpsZWFmCuKWgXNpbWlsYXJpdHkK4paBZ2VzdHVyZQpkYXRhYgriloF0ZXJtaW5hdGUK4paBc2VtYW50aWNzCuKWgUFsbwriloFjaWcK4paBT3BlbkdMCuKWgWhldXRpZ2VuCnhhbWwK4paBZnJlcXVlbmNpZXMKKX0uCuKWgXRocmVhdGVuZWQK0YLQuNC6CuKWgWNhbGNpbwriloFSaWVtYW5uCnNsdWcK4paBRmluYWxlCkxSCuKWgURlcmJ5CuKWgdC+0YnQtQriloFkZXZpYXRpb24Kw6RjaGVuCuKWgUNyaXMK0L3QvtCy0L4K4paB0YHRgtC+0LvRlgriloFyZWxldgriloFzcGxlbmRpZAriloHRg9GH0ZEKZXJ2aW5nCmdhYmxlCuKWgWfDqW7DqXJhbGUKcG9tCuKWgUNoZWVycwriloFpbXByaXNvbgriloFpbmRlbnQK4paBYW5hbHl6CuKWgXJldmVydArDqXJlcgriloFwaGFzZXMKRmlyc3ROYW1lCuKWgW1pZwriloFkaXN0dXJiCuKWgW1peHR1cmUK4paBKXsKaW50dXJlCuKWgVRyaWVkCuKWgXNvb25lcgriloFwZWxzCuKWgcOpdGFibApldHJvCml0aWUK4paBcXVhcnRpZXIK4paB0LPQvtCy0L4K4paBdsOhcm9zCnVmZQpoZXRlbgrRhdC+0LwK4paBc29hcAp1dG9ycwriloFkdWNoCnN5bnRheAriloF0cmliZQriloFjaGFudGUKVHJpCuKWgU1hdGUKcXVhbGl0eQp1b2xhCj0iLgpjaGsK4paB0LLRgdGWCuKWgXByemVjaQriloFNZXRlb3IK4paBc2NhdHRlcmVkClBsdXMKdHJhZAriloFzdGFja292ZXJmbG93CuKWgXJldHJhCuKWgcOpZGl0aW9ucwriloFzYWluCmNyaWJlCmlnbm9uCnVja2VyCuKWgdC80LDQu9C+CuKWgXRlbmlyCuKWgWV4cG9ydHMK4paBYXV4aWxpCuKWgV1dCuKWgUNCUwp1bmlmb3JtCuKWgXBlcmlvZGljCmFncmFudAriloFlbXBsZQpXaWwK4paBZnJlcwriloFzdHJ1dHQK4paB0YHQstGW0YIK4paBYmV0cmUK4paB0L7QsdGK0LXQugrRgtC40YHRjwriloFiaXNoZXIKYmF1bQppc2hpCuKWgUdhemV0dGUKYmFja2dyb3VuZENvbG9yCmpsCuKWgWZpZWwK4paB0L/RgNC10LzQsAriloFwcm90YWdvbmlzdGEK4paBTXVoYW1tYWQK4paBc2ltdWxhdGUK4paBSG9vawpmZXN0CuKWgdGB0LLQvtC40YUKU2VuZGVyCuKWgWxpc3RlbmVkCtC20ZYKamVzdAprb3JkCkNob2ljZQriloFob29mZApyZWR1Y2libGUKaHBwCuKWgVd1CsWhaQriloFNYXJzZQriloFzb2lyCndlc3RlbgplbW9zCuKWgUR1YwriloFhbWVyaWsKfH17CuKWgUd1bAriloFTcHJhY2hlCuKWgW1pc21hdGNoClNjYWwKUGl4ZWwKRUYK4paBU2VwCuKWgXBvd2llY2llCnVyawriloFOYXBvbGkK4paBbmVpZ2hib3VyaG9vZArRgdGC0L7Rj9C9CuKWgXNlYXJjaGVzCnlydXMK0L/QtdGCCkhlbHAKcG9udAriloFPcmllbnQK4paBQWxmb25zbwriloFtb25pdG9yaW5nCmlhbwrDqWTDqQriloFDw6lzYXIK0YjQtdC1ClNoaWZ0CnN1aXQKY29kZWQK0L3QvtGC0L4K4paBUGFydGkK4paBbGFzY2kK4paBYXdlc29tZQp1c3RhCuKWgdCh0L7QstC1CuKWgUZsYW5kCm9vbQriloFkZXZpCmVuZ2Vsc2sKZW5kdW0K4paBUGFzY2FsCuKWgUJpbmQK4paBc2lndWllbnRlcwpKQgriloFQZXRlcnNidXJnCuKWgWluY29ycmVjdGx5CuKWgUJhc2gK4paBcGVsb3MK4paBemVzcG8KTlNVUkwK4paBcMWZZWsK4paBQ3JpbWUKbmFjaAriloF0aHJ1c3QK4paBQ3VsdHVyYQpXRgriloFTb2xvCuKWgWludmFzCuKWgWluZGl2aWR1YWxseQppYm0K4paBZXRhcGEK4paBaGFuZGVkCuKWgXdoZXJldmVyCuKWgWludGVycG9sYXRpb24K4paBbXVzw6llCuKWgUNOTgppZGlhCsWEc3R3CuKWgXByemV3CnVnaGluZwriloFhY3RvcnMK4paBT3JpZW50YWwK4paBY29udmVuaWVuY2UK4paBbWlhc3RhCmJyYWlucwriloHQvNC10YHRjwriloFpbmZhdHRpCuKWgUFsbE1vdmllCuKWgWNyaXRpcXVlCuKWgXN1Y2Nlc3NvCmFuY291dmVyCuKWgWbDoQrRitC70LPQsNGACuKWgXdpc2RvbQriloFQaG9lbml4CmhvbGUK4paBaW5mb3JtYWNpw7NuCuKWgUFpcmxpbmVzCi7Cqwptb3J0CnVzZXJJZAriloEqLw0K4paBQ29uZ28K4paBImAKY29ycgriloFwcm9ibGVtYXMK4paBYmliCuKWgXDDs8W6bmllagriloFmaWxlTmFtZQp6b3R0Cm1hY2h0CuKWgVVscmljaApDeQplbmRwb2ludAriloFzaGVlcAriloFpYm4KRmVlZAriloFzeW1wYXRoeQriloFJYgriloF0ZXJyaXRvcmlhbApyYXRpbmcK0LTQsNC80LgK4paBZHN0CtGD0Y4KYWhvCuKWgXN1ZwplbWlhCuKWgXRlZAriloFBcGkK4paBUmljYQriloFNUgrFhHNraW0K4paBVm9vcgriloFkZXZpbAriloHQpNC+CuKWgU7DpHIK4paBLi4uKQriloF2b2lzCuKWgWFiYnJlCuKWgU3DpG5uZXIKeGltbwriloFpbnRlbGxlY3R1YWwK4paBdGFsZXMKc2ltaWxhcgpuZXVtCuKWgU9yaWcK4paBcG9zdGFsCuKWgWh2b3IK4paBaWRlbnRpZmljYXRpb24K4paB0J7QtAp1ZXN0bwriloEuLi8K4paBYmlyCuKWgdCb0L7QvQriloFlc2VtcGlvCuKWgUVpbmcKRXhwYW5kCuKWgVBSSU1BUlkK4paBSmluCuKWgXbFoWFrCm91cnNlcwriloFCZXR0eQriloFXTQriloFmbGFzawpobGVuCuKWgUFkZWwKbGFyYXZlbAriloHQtNC10YIK0YHRjNC60L7RjgriloFNdW5kbwppY3puCmlmacOpCuKWgdCc0L7RgAriloHQtNGA0LXQsgpEYXRlRm9ybWF0CtGB0YzQutC40LwK4paBZGF0ZWQK0LrQvtC70LgK4paB0YDQtdC30YPQu9GM0YLQsNGC0LUKXCkuCuKWgWRlbGF5ZWQKc291bmQK4paB0JzQsNC6CuKWgSIuLi4K4paBYmlubmVuCuKWgdGE0LDQutGD0LvRjAriloFwb2x5Z29uCuKWgWVnZ3MKQXRJbmRleFBhdGgK0LzQtdC90YLQsNC70YwK4paBaW5jcmVkCmNodW5rCndlYmRyaXZlcgriloHRgdCy0L7QsdC+CuKWgW1pxJlkenkKUmVjZWl2ZWQK4paBTW9uZGUK4paBSlF1ZXJ5CkJ1dHQK4paBUERPCuKWgWZvcmVjCuKWgWRpc2NpcGxpbmUKY2hldgrQvdCw0YIK4paBcmVkaXMK4paBaHVudGluZwriloFhbGsK4paBcHJvb2ZzClBSSQriloFjaGlwCsOpc2llCuKWgUhPCuKWgXJ1Zwp6b3MK4paBc29ydGUK4paBemVpZ3QK4paBUGh5c2ljcwpsZWd0ZQriloFwcm9wb3J0aW9uYWwK4paBdG9vbGJhcgp2ZW1lbnQKbm90aW4K4paBcHJ2bsOtCmJsYWgK4paBcHLDqXNlbmNlCuKWgWxsb2MK4paBbMOtZGVyCuKWgUFjY2VwdAriloFBbHdheXMK4paBInsK4paBZGl2ZXJzaQppa29yClBlcmlvZArQttGR0L0K4paBQWxsaWFuY2UK4paBcmVsYXkKQnJvCmrDtm4K4paBQmF1ZAriloFCaWFuCicpWwrRh9C40LIK4paBUG9zcwriloFNaXRnbGllZGVyCuKWgW5ldgpEYW5pZWwK4paBdGVuZHMK4paBY29tcGFnbmllCuKWgWxpdnJlcwpsdWIK4paBCmUKdAphCmkKbgpvCnIKcwpsCmQKaApjCnUKbQpwCmcKZgouCmIKeQosCncKdgprCjEKKQooCi0KMAo6CkkKUwrQvgpcCjIKQwoiCkEK0LAKVAp7Cn0KLwonCngK0LgKXwrQtQp6CtC9Cj0KRQpNClAKagrRgApECjkKKgpMCtGCCkIKUgrRgQo7CiMKJApxCk4KMwrQsgpGCtC7CjUKNAo4CsOpCk8KSArQugpgCjYKRwo3ClcK0LQKPgrQvArRgwpbCl0KVgrQvwpVCjwKSgpLCtCzCtGPCtGWCtC3Cj8KKwrQsQrDoQrQuQrRjApZCsOzCtGHCtGLCsOtClEKXgrDpAomCtGFCnwKWAohCkAKw7wK4oCTCiUK0YYKw7YK0LYKWgrDqArDoArRiArigJQKDQrRjgrFggrCuwrQoQrCqwrigJkK0YQK0JIK0J8K0JoK4oCcCtGYCtCcCtCQCsOnCsOlCtGJCn4KxJkK4oCdCsSFCsSNCtCgCtGXCtCdCsO6CtCRCtCUCsOjCsOfCsSDCsSbCsOqCtCeCsWhCtCTCtCiCsW8CtGRCsW+CsWbCsOxCsWZCsWRCuKAngrQmwrRjQrDvQrQowrQmArRigrRlArDogrDrgrDsgrQlwrQpArDiQrEhwrCtwrImQrFhArImwrQpQrDtArQlQrDuQrFrwrCsArQqArRmQrQpwrDuArDpgrRmgrigIkKwqAK0K0Kw6sKw7UKw68K4oCYCuKAoArCsgrFsQrQhgrilIAK0KYK0ZsKw5YKw7sK0K8Kw6wK4oCmCsWNCtCWCtCuCsOBCsyBCsOcCsK6CsWTCsSBCsSMCsW6Cs6xCuKUggrYpwrDgArilZAKxaAK0ZIK4oSWCuKAigrigKIK4oiSCuKGkgrDlwrOvwrigoIKw4QKw44KxZoKxJEKw4UKxLEK4oCOCsWrCs69CtCZCsKqCs65Cs+ECtmECuKAsgrvv70Kw4gKzrsK77u/CsW9Cs+CCsWICs+BCuKCgQrQhArEqwrOtQrCpwrFgQrQiArCowrYsQrFuwrCvwrZhQrigLMKw5oK2YYK2YoKz4MKwrQK4oCLCs68CsKzCsWfCs+ACtmICtivCs66CuKCgwrDjQrLiArYqArDkwrDgwrCoQrigqwKxaUKzrcKyZkK44O8CtCpCs6yCuKUnArDsArSkQrCrQrPhQrCuQrigoQK2KoK15kKzrMK2LMK44GuCsSfCs60CtuMCuODswrZhwrXlQrPiQrOrwrilogKzrgK55qECsKpCsOCCuKGkQrvvIwKy5AKzqwK4oCVCti5CsOHCuKCgArCsQrDmArEjwrFmArFkgrCvQrilJQKz4wK4oCaCsSTCuKChQrDhgrImArJmwrXlArXqArPhgrigoYKxJcK2K0K2YEK2KkKxLAK4oCCCuKGkArilZEKyZQK4omkCtecCsSQCtWhCsWMCteQCuC1jQrjgrkK2LQK5aSnCuODqwrRnwrjgqQK4p+pCuKArwrCtQriiIgK2YIK4p+oCuOAggrSkArgpL4K2KwKyr8K4YOQCs6tCs+HCuS4rQrXkQrhg5gK4oKICuODiArOrgrjg6kK0I8K2YMK4oKHCteeCteqCuS4gArOoArguLIK44O7Cs6jCs6RCs6UCtepCtiyCuCljQrguKMK44GECsq7CtCKCuKCiQrKvArjg6oK4oCQCuOCrwriiJ4K4oGECs+NCsWeCuOCogrOlQrJqgrkuroKzpoK4oiACuCksArjg4MK4pa6CuWtkArCrArYrgril4QK2Y4K16IK5pelCuOBlwrhuKUK16AK5bGxCuOAgQrQhwrjgosK5paHCsORCuODiQrXkwrVtgrQggrOkwrDvgrCkgrCrgraqQrCkwrimq0K5pysCuKElQrguJkK0Z0KzLYK4LitCtGeCuOBqwrmlbAK4YOUCuWbvQrOqQrjgIAKx44K2LUKwpQKzpwK4oCDCuOBqArigaAK44GfCti3CtaACuOCvwrDvwrjgaoK2KMK44K3CuaWsArvuZUKyoMKxL4K44OtCuKBtArgr40K4oeSCsWjCu+8mgrImgrgtJUK4omlCuC0vwrjg54K44KTCuG5owrjgrgK5pivCuydtArii4UK55SwCuOCkgrpgZMK4LiHCsKoCtmACuC5gArmnZEKw4oK150K4oC6CueUqArPjgrlpKkK77yJCuC8iwrplYcK44GLCuS4jQrOpArlraYKxrAK5pyJCtW4Cu+8iArjg6wK2q8K4oCPCuODlQrgpKgK4LiBCsmRCuOBmQrXlwrkuIoK4oCMCuKIpwrhua0K16cKzr4KwqQK4KS/CuS8mgrgtKgK44KrCsWzCuOBvgrgtYEKzaEK4KSVCuCmvgrlsI8K158K6KGMCuOBrwrKgQrFkArDngrjgooK44KtCs6bCuGDoArkuIkK44GMCuOCswrOtgrluIIK546LCuKEnQrFuQrjgYYK44GmCuWMugrgtL4KwoIK5bm0CtekCtWrCsW/CuKAuQrgpKQKxY8K4oCRCsyDCsSGCtmJCuOAjArjgI0K4YOhCsSACuCkrgrnlJ8K4omgCtCJCuCkuArihpQKzp8K4LinCuGDmgrmiJAK5a6aCuC4pQrCtgrXmwrjgacK1rwK4LihCuS4qgrlkowK16EK5ZyoCs6SCuC4tArOmQrigbUK4LixCsmhCuKUgQrjgokK44KqCsK8CtWlCuODkArWuArFiwrFrQrjgrAK4oG2CtCsCuKBsArmlrkK4LiaCsKXCumrmArhu4cKzp0K0aMK44KjCuWcsArmnIgKw5QK4oSiCuOCpgrjgY0K5YWsCuG6oQrhg50Kyb4K4LmICuWHugrms5UKzpgK4LiqCuWQjQrguKIK4LSkCs6mCuKGkwrjgowK15IK0IEKxqEK5LiLCtOZCs+ICuKUvArjg6MK4oiaCsKlCuekvgrhuYcK44GVCtmQCuOBjwrgpYcK0KsK4byQCuODhgrkuLoK5LmhCuW3nQrjg4oK5LmLCuWtlwrjg6AK4KWACua1twrjg5YK4omICu+8gQrZvgrCrwrhvIAKwoMK44GTCtawCuadsQrmmI4K4b22CuaXtgrguJcKyagK44OHCu+4jwrKigrjgqgK5Y2XCuilvwrgpLIK44OhCuODlwrlubMK5byPCuG/lgrSmwrgpLUK2LoKw5IK5a62CsqSCuOCtQriiaEK44OACuC4lQriiIMK4oK5CuCkqgrnrKwK4LSwCti2CuKWhArln44K44OfCsmQCsKmCue+jgrku7YK4YOcCsOQCta3CuODiwrpg6gKxYYKx5AK15gK4KSvCuOBggrCvgrhuqMK44GhCuODpQrDtwrlpbMK56WeCuKZpgrCogrku6UK4LmJCuCmsArlpKoK4KeNCuODgQrVtQrliY0K6YeRCtaCCumHjgrljJcK4LirCuKAsArjgaMK5YqgCuWOnwrKsgrnva4K5a6JCuOCrArmiJEK4bikCuC0rwrkuqwK4paACuGDmwrhg5UKyr4K4oioCta0CuWPrwrlj5YK5Y6/CuS6jArilpIK55CGCuiHqgrkv6EK5LujCuC4tQrXpgrhgLoK4KSmCuKBuArMrwrjgYoK6KaBCuG/pgrgrpUK4buFCuClgQrGkgrKsArljJYK4pyTCuC0qgrsnZgK64ukCuacqArZjwrMgArLjArgpLkK44ORCuawtArhur8K4LiUCuOCugrigbkK5bO2CuKAjQrjgoIK5q2jCuKWoArYogrguJ4K5YaFCsOMCseUCuKUrArkvZwK5ZCICuG9uArjgb8K4pa8CuG/tgriipkK772eCuG7iwrZkgrlm54K5LqGCuaJgArkuosK6KGoCuC4swrliIYK4oG3CtKvCsKACuWFpQrlhagK2KUK6YeMCs6nCuCkggrjg48K4LiECuKBuwrjg6IK6YOOCuaNrgril48K5beeCuKIqQrogIUK6YCaCumDvQrihKQK4pmtCuKVjArjgaQK4biNCuaxnwrXlgrDnQrTqQrguYwK5YiwCuCuvwrKggrlr7kK7IqkCuS9vwrgpr8K44KICuG8iArDjwriiJgK7IKsCuCmqArkuJYKyZUK1a8K4YOjCuC0nwrhg5EK4KWLCuC0tQrmnpwK5Y2BCuC4uArol6QK5p2lCumdogrjgZEKxJUK44OTCui/mQrsp4AK4LSCCuihlwrnn7MK6IO9CuepugrVvwrYpgrmraYKyrkKz5UK5ZCOCuC4sArlhYMKypQK66asCuq4sArmsrMK55S6CuiKsQrhvZAK57G7CuKWkQrniakKzpcKwrgK4K+BCuGDlwrYqwrgtYYK4pWgCuKKhgrjgIsK44OECueJiArliqgK5aaCCuecnwrJsgrlj7cK2LAK7KCVCuaelwrmm7gK5rCRCuWPowrZkQrnpLoK4LSuCuyVhArlm74K4oiqCuaIpgrmnY4K4LSyCuOAigrlhYkK55m9CuW/gwrgrqQK4KScCuiuvgrhvbcK6LevCuCklwriiKUK7ZWcCuacgArQiwrmiYsK1b0K77yfCuWeiwrhuqcK44K7CuW7ugrjgqcK5Li7CuyLnArrjIAK4b+GCuKAoQrpm4YK4YOTCuebrgrOoQrjgqEK5bqmCumVtwrmmJ8K44OOCuG7mQrqsIAK5LqUCtqGCuuhnArjg6cK6YeNCuS6jgrlj5EK5Y+yCti4CuC4igrjgYgK5ZyLCsStCuCuqgrsnbgK5L2gCumnhQrigJIK4pmlCuWkmgrEpwrSmgrhu5MK5aOrCuWbmwrilLQK4K6uCuWPuArgp4cK4b2wCuKIggrilawK5qyhCsS9CuKftgrnq4sK54K5CumfswrioIAK5ZmoCu2VmArkupUK5a2YCta5CuW9kwrDiwrimIUK5a+6CuaApwrkuZ8K44KBCuOBoArkvY0K4LSZCtuBCuWAvArlj6QK4YOSCuCmrArpmaIK4LWHCuKWtgrgrrAK55WMCuiqngrgtLgK7IiYCseSCuaEmwrinJQK5pmCCuG7jQrgtLEK1bQK44KxCuS4nArlkIwK7KO8CuS/nQrDlQrhu5EK4bywCumdkgrjgrQK5L2TCua4hQrnm7gK4LiICtihCuaDhQrwnZWcCuCmlQrhuKsK4budCuWwhgrml48K64+ZCs6lCuKUjArjg5wK5a6uCuOAjwrgpq4K44COCsS8CuCktgrguJsK1LEK4KSsCuyekArmlL8K4K6+CumXtArvrIEK5p2+CuG5gwrlp4sK5oGvCuWwkQrmlZkK6I63CuWIlwrlvIAK4YOiCuODrwrhg5kK56eRCuaYpQrmsrsK5ZCJCuC9pgrguKgKyZIK5Y+wCuODjQrhgLgKxKkK5belCuG9sQrnn6UK5YWrCuWgtArnlLsK55m+CuKYhgroqJgK5b6XCuOCvQrmsI8K4YCsCuyXkArgprIK4bmbCuWFswrEoQrhvbMK4oiRCuODmQrmoIcK64uICuG9tArWtQrlpJYK4pmgCuOCjwrplpMK4LigCuagoQrliLYK4LmBCuWKmwrploAK5aW9CtKTCsOZCuKEkwrWtgrripQK4pSQCuKIlwrmjIcK6ImyCui/lArppqwK6K+3CuKJqwrpoqgK4b25CuaOpQrshJwK4oazCuOBmwrlv5cKzLIK6a2UCtKjCuabtArnqIsK6rmACumDoQrgvbwKxakK4LSaCuWIqQrnnIwK5ZGoCuOBnQrjgoQK6LC3CummmQrima8K44GYCtiMCuacnwriiIUK4pSYCuWInQrnpo8K54mHCuOCtgrli5UK5Y+CCuyEsQrGjwrilaYK7Ja0CuGDrgrnvqkK4KSaCuixoQrlip8K4pmCCuuPhArqs6AK6L+HCtW+CueahwrnibkK4bqtCumVvwroi7EK4bqlCuC0owrQqgrgprgK5YW2CuCmpArmtYEK6ZmkCuydvArgp4EK4Z+SCuawuArnm7QK7IOBCuWNgwrhuq8K6aSoCsWkCuacnQrgrp8KyaMK5Y2VCsqACuagvArlvrcK7KCECuKYugrjg5QK5q2MCui/mwrpmZAK5aSrCu2KuAriiqIK5ZySCumHjwrlnJ8K5pS+CueggQrnrYkK57O7CuKIvAroj68K4oa1CuyGjArluLgK5ZCmCuimiwrmupAK14EK5a6eCuWNmgrrnbwK7JuQCuuztAriipUK6KejCuOAnArnlLcK4KamCuODnQrjgo0K64KYCuC9ggrnhKEKw5sKzKUK0rEK5p+lCsyjCuKVlwrilakK5p2hCuCmrwrhvYEK5b6MCuS7lgrnvZEK4K6yCuKJgwrtmZQK25UK6Zi/CuGAsQrmiLcK4oirCuq1rArgvaIK4YCZCuKWuArVrAril4sK5ZG9CuWwsQrpvo0K5ZCbCuWkjwrCgQroqIAK5YWICuKenArhg6gK4YOrCuCovgrgrrUK44GpCuODkgrguYQK4K6pCuOBsArjgq4K1aMK4byECuODpArlhbgK5bqcCsyECuyLoArnu4QK5pS5CuG9sgrljY4K5LiOCuiwgwrilZ0K44O0CuGDpQrnlLEK5L+uCuWtuArimaMK5raICuespgrKjArrtoAK4bubCuKAvgrilrIK5b2VCuC0swrsl7AK7J2ECuOBsgrsmIEK4pSkCuW3sgrpmb0K4YCECuq1rQrlrrkK5pyqCuWulwrhtIcK44GzCuyepQrpvpkK4LeKCuaPkArEnQrlha0K5b2iCuygnArVgArkvIoKz7UK4LiCCsWwCuOCgwrngasK4bmiCuS9kAriiqUKzKoK4bupCuKWoQrnu5MK5LmdCumbhArVqQrhnrYK6ICMCuC9lgrsmrAK5bygCuCknwrgpLcK5ZCRCuG/pQrpgIkK6rO1CuOCsgrKkArku4EK5aCCCteaCuGArwrhvJQK4LSFCuG7gQrgvZEK7ISgCuyYpArkuYUKwpwK5LmJCuCkhQrilZQK5pegCuKAqArsnYAKyrcK6YKjCue3mgrliqEK5Z+6CuWxngrphY0K66+4Cui7jQrguYIK5rSlCuWujArnoJQK5rOoCuWksQrlupQK4YCACuKVmgrlj4sK56ugCs6oCuaxggrgpKMK6rK9CuKArArgpK0K5LusCuaooQrpnIAK4K6aCumbuwrgpqoK1aQK44G4CuatpArlpJwK5oiWCuapiwrmoLkKxKoK546JCuC4uQrhuYUK5LqkCuWTgQroia8K4L2ECuOCqQrliJkK6ZaLCs6WCuusuArooqsK7KGwCuagqgrorrAK5pyDCue7jwrgpYIK44KHCui9rArltI4K66eICuKMmArmr5QK6YCgCtyQCuC4twrmsqEK546wCuS4gwrOhgrllYYK4K+ICuacugrpmLMKxIkK6KeSCuermQrVogrtlbQK5Y+KCuCkpwrooZMK6K6kCsKRCuWImwrnt6gK1bIK4bipCuS8nQrlsqEK4KShCuODmwrmuK8K5Lu7CueZuwrgvbIK4LmHCuW4gwrnqbYK5bidCuyXrArsgrAK4YCUCuKXpgrlr4YK5Y+YCuW6jwrimYAK4oijCuiuoQrmm7IKxIIK4b27CsqLCuS8oArjgJEK5YyFCuaEjwrljrsK5rKZCuK4rgrjgJAK5YaZCui2hQrgrq8K5LuKCuKUiArmo64K4LeSCuKKlwrruYQK1bAK4bioCserCum7hAriiJkK65OcCvCfjI0K5pmvCua5lgrWhArhgK0K4oG/CsyCCuODmgrkvZUK5a6HCuW8tQror60K6ICBCuS+iwrhuawK6YmECuWFiwrimIkKwpkKybkK4byxCuK0sArnhLYK66W8CsenCuWgsQrmnI0KxI4K5oOzCuKAlgrjg6YK5a6fCui9vQrsmpQK4oSaCuazogrpqawK54q2Cue6vwrsnKAK5rSLCuS4hwrsp4QK4KacCua3uwrnkIMK5qmfCuaUrwrmmL4K5ouJCuG9kQrpgIEK6ZqKCuC4mArlpIQK5birCuKKggrlg48K4Ka8Cum7kgrWgQrCnQrhu6cK5Y+qCui1twrmrrUK4YCQCuWNgArpgbgK7LKcCualrQrnrpcK5bm/CuGemgrop4YK56eLCuWboArrhYQK25IK6L6TCsyxCtWECuKIhgrlurcK7IS4CuaAnQrmrbsK6IGWCuuvvArvvI0K5aS0CuC1vAriiIkK6LuKCuKUgwrilocK5oyJCuKNtQrlpKIK5rGJCuS7jgrgp4AK6aKYCsuGCuG8oQrlsZUK55yBCuC9tArokYkK7Zi4CuCosArntKAK6ZaiCuq3uArvvJsK4LaxCumhtQrlhbEK5a6/CuaAgQrgvZMK5oqACuS5kArmjqcK56e7CuW9sQrhu6UK44KGCuOBlArgs40K566hCuC1vgrilaMK5oi4CuKHlArlh70K4bqTCuWwvgrlnLoK5LuLCu+/vArogrIK4La7CuaziQrgtb0K6K+0CuaNogrlv4UK57SACuC9mArgvboK4bujCuC1uwrlrp0K5rCXCumXqArku6QK5bemCua8ogroi6UK5bGLCuWxgArmiZMK55m6CumXrgrmgYsK5YW1CuWIpQrgqr4K1Y0K36wK4KaXCuW5tgrgpJYK4b21CuiKggrKkQrXpQrhuKoK4oSCCuW8lQrnu58K5pm6CsypCuCliArnlLUK7ZiECuKchQrotaQK5patCuOBrQrnp7AK4Ka2Cui6qwrpppYK5LuYCuKFkwrgqLgK6YCjCuGDlgrlrpgK5oyBCuWliArlvqEK6KaqCuq1sArlupMK56eACuWdgArlrogK5rS7CuC9owrjgbUK6JePCuGenwrnq7kK6I2JCue1kArgt48K5piMCuaouQrgrrMK66y0CuCmuQrjgrwKzIgK1bcK5YudCui2swrhgJsK7JyECsSvCuG8uAroiKoK6ZmzCuS4mgrlr4wK6ZuqCuCkhgrlho0K7JWICum7mArrsJUK7JqpCuKcvwrmpb0K5rKiCue+hQrElgrKjgrlv6AK6ZSZCuuLqArrqbQKxLcK5qGlCumbsgror6UK4bmvCuWyqQrrgqgK4bu5CuS4kwrliIcK5bqXCuacsQrXowrjgZoK5bm4CuavjQrJqwrjgIUK4oi3CuS4sgrlh7sK4byYCuiorQriiqQK4oKXCue2kwrqsJUK4YCVCuClpArRkArhvrYK4p6WCuW6pwrslKgK44G2CsWiCuS6kQrlkYoK5aSJCuivlQrpmoYK6rCcCtW6CuWIpArliokKy5wKy6AK57yWCuC4kwrhu68K6L6+CsSaCtydCuGAvArhuLcK5Y+zCuuTpArFnQrTjwrgsY0K4LSOCuCusQrlpI0K55yLCuipsQrlnYIK5bCUCuihmwrVpgrssKgK5Li4CuagtwrprLwK4KS8Cu2VmQrllpwK5pavCumKgArrp4wKzp4K4YOqCue+pArov5EK5aGUCs+KCuCuqArjgoAK56GuCue0ogriiIcK6Z2eCuacmwrina8K5biMCuG7swrnlLIK6LaKCumzpQrpursK6ZuFCuaLswrhnoAK5rqqCua1iwror50K5rGgCuiPnArpo58K7YSwCuCovwrmuKEK6YCfCtq+CuCysArpmYgK5YGlCuCniwrgtpoK4b26CuWGmwrluoQK57qiCsSmCuirlgrFuArOiArhu7EK5a2dCumgrQrpo5sKy5oK4paTCtmLCuKArQrkuYgK6YGUCtGrCuW3tArmtJ4K6LK0CumhuQrgtKYKybUKzI0K0qEK56eNCui/kArsi50K4L6xCuG4swrlvaYK4qWkCuS5pgrmnoQK57GzCui/ngrmk40K6KOFCuqzvArjgZAK5Y+NCsyMCuS7rgrlkZgK5pitCuC0tgrlhbQK5a6iCuWIoArgtrgK4LeACuGDngrEiwrgtLcK4YCeCuG1iQrlsYUK7YOACvCdk50K4KSlCuePvgrLhwrsooUK5YqpCuWUkArngKwK4Z6TCuW+rgrvvJEKxKAK44G7CuiIngrrgrQK7KSRCsSSCuWvvArmlYgK67CpCuG4jwrmt7EK5qKFCuaWmQrsm5QK5q+PCua0sgrtmowK6Iy2Cui0pQrgtJ4K4buDCuODqArkupsK5Y+MCuWYiQrrqqgK67CUCuC4qQrpgLIK7J2MCuC4jQrkuIEK5pWFCuioiArpgaAK6rWQCuyerArlgJkK5oi/CuuqhQrkuKQK4YOkCuaJjQrtlakK5q2iCueVqgrJrwrlpYcK5oCqCuiBlArsl60K5rOwCuuwsQrhvYAK44GSCuOBuQrovrkK6L+YCum7gwrsmZUK5pS2CuW8mArnu5k=",QBe="r3SxdLB0tnSzdLR0r3SydLB0tHS1dLR0BAG6dK90ggGwdLd0r3S3dK90uXSydLF0tXS2dLJ0tHSvdLt0s3S3dLZ0sHSzdLF0BAFiAQoBsHSvdBAGsnS2dLh0sHSvdMV0r3S+dLV0vHSydLh0r3TAdK90vXSwdLl0r3S1dK90wnS1dL10WQK0dLN0CQEGAb90s3RhA7N0u3SydLd0sHS4dAgBsXSwdFEC2gG0dK90BgGvdLp0tHS5dLB0sXSvdLh0r3S0dLd0sXQEAbV0r3QFArt0unSvdM50tnS1dLN0uHQgAcB0r3TOA7l0sHS7dLF0r3TKdLJ0vXSvdNN0DgGwdK90NwGvdM90r3S8dK901XSvdNF0r3SwdAcBKwGBAbl0r3SIAa9013S1dLh0r3TGdLN0vXS1dLF0snS5dLx0sXSvdL90sHS9dLx0tnSzdLl0r3TqdLN0v3S2dLJ0bAGwdK90FAHaAbd0r3QTAfN0vHS1dMV0r3TkdAsBsXSwdC8Br3TDdLd0sHTGdLB0u3SwdLN0sHS8dLR0r3TldK907XSydL90vHS4dK904nS6dLB0CAG5dLB0KwGNAbB0tXQ3AXMBtnSxdAUB7ANRAvcFsXS9dCgBtXS3dK906HSzdMB0DwEjAasICQFTUbR0snTVMR0BEAGlBrZ0r3SuBa90tnSvdOt0VwEbAeBgvHSvdJUYIQGwdK90kwO4dMN0WQG2dMZ0BQGydMJ0sXSwdNoBsXSvdBUBIAG0dK90CQG2dLN0vHS3dK901HQZAbp0r3Q0BRIBCQEWBbR0r3QXAq90/nQNAbF0r3QvAbN0tnSvdON0r3T3dLt0x3QHAbR0r3QRAbF0unSwdL90snTDdBUBunSzdIIBr3TudBMBsXSzdC8BEQG5dLJ0KwEEAZcJCgEPAa90cxYHAbh0r3QcAa908nSvdPF0tXS5dLx0vXSvdAR1unSxdFcENwFUS7B0u3RkAa90AnUPAbB0snRzAQsBt3SwdH0Dr3T0dAUBsHSwdBQBvnS+dAcBt3SvdCYBDQGwdK90WAEaATMBIAK1dK90AwMZAYUBFTC6dK907Qm+dLB0r3THdAUBt3SwdPAIvnSxdMl08HS4dLV0EgEiARYFvXSvdP4BOgGwdLJ07AOvdAB1OwEiAXUMvXSvdPMFs3SydBEBsXSydFECLQGydK90sQGvdNh0QQG0dK90CAE4ASMBu3TVMUEB3HSvdN8CuHS5dLx0wnSvdOZ0uHSydLx0sHSvdA91JQG6dLN0MQEOAbV0r3RLB690/XQPD7x0r3RTAbN0xnQQAbF0tXThCBcBsXSydOEIPgG0dK90XAGMAfF0r3TlCAQBYFkKARMBr3RWBcd0sHQqAbJ0r3QuCa90y3QbAbF0tXRJAUMBYgHyAbB0r3QoBi4BRwG2ArF0r3Q1BS4BsHSvdOQBNQG4dLN0hQItAbB0r3QYAbt0s3QzAb10tnQiAQYBsHSzdOQB2nTadLV0vnSDAQYBsHTvFKYBZgFUBygBr3QhTpMD7xScbQYBwnTMAe907HQmAbd0snR9A7N04HTJdMF0tXS/dK90DHUgAbZ0r3QQARkBJgE8LLd0r3ReKwcBsXSvdA8BGwG2dLV0TAGvdLN0Age0dLJ0BgGvdBB14XTWdK90C3W/dLB0DQG8dK90YgiydL50XwGwdLJ03wEbAa4BwxO5dLV0UkG0dLB0snTGdNx0sXQQAbB0tXQUATUBsHSzdBgBy3TLdK909nQhAcN0r3RJBrh0s3QPAbp0snSCAed01nSTA7Z0wnQFATICunSydDEBHAG4dLJ0hQJDAbp0r3RFBWABsXS8dGgHr3TZdK90DXU+Abd0r3R3Aa904HR3AbF0vHQvASoBRwW/AVkBI1GwdK90fETsAbt0uHQlAeF03XQSAREBkRa0dK90/AuxdLZ0VwS9dLt0IgHJdMR0MgG0dK90HQMGAbl0s3QrAScBuHSwdIUCHQHIAZAFIgFPOb10r3ReDNB09nSxdLV0r3QJdXIBGAG+MLB0snQ5AmcBsXS1dC8BEgG6dK90MQGvArF0sHQ4AU8BkAF1BLF0BgGxdLN0UQKvdNt0BwEUATQCsHSvdFYC2gG9dK90RgENAbp0r3RNA690DnU/AbR0r3S4Cq9073QPAbJ0snStA30BsHSzdBQBBAG2dK90/QFXBLR0u3QJARABuXS1dHsVFQHDdLN0+QMXAbl0snR7FSoBsHSvdGIBIQFJASkFsXSvdFsQtXS7dOJ01HQaAbZ0r3QuAkwBsHS8dBQBnAG2dL50BQEyAsd0snSAARABx3QJAb90tXRhAxEBt3SydL8H/3TQdDwCsHS+dBgBDgELATwBt3SvdN8KtXTHdBABvXS1dN4GwQK2dMV0BQGydMd0vnS2dCYBsHSydFgBQQG4dK90JwG+dLp0snS7dD4BKwG7Abl0r3RmAwcBtnSvdBcB2gHAdK90aQG8dLl0vnS3dBUBsHSzdHMBnAiwdMJ0GAHhdNB0vQa2dMB0BQG+dLh0uAGwdLN0WQERAb90snRhAwgBt3SwdL8H53TQdA0BtXSvdEICt3S1dCYBsXSydC8BynTJdNYKBQG3dCwCtnS8dFsBt3SzdAsBr3TNdLJ0vHS1dMZ053TfdBF10HQOAQUBPAG2dK90oAIeAcN0r3RNBRkBsHSvdMECHgGwdK907AO0dLF0BwG5dK90SAFMAbR0vHSTa1cB2QFuAbZ04GBMAa90gh/jINp0zXTKARcBsHSydBQBBwGFAooBuHSvdPEBwHTAdLN0tXQLAdUxVgEjAQEtCQFGAbB0s3TsA0EBtnSvdAUBsQF9AwUNt3S4dNEBr3TddHkBtAGvdGwSIgGwdLV07AMJAbF0tXRRAhoBFwHkDLZ0r3ReAx4BsnSvdI8Cr3QbddR0xHSvdNB0wHSxdKcBuHSzdBwBu3S7dBsBKwEdBbl0tXRmAy0Bs3SvdOwBUQG3dGwBCwGvdLICLAG6dLB0ggEsBTgB5nQKAgcBlwEXDL50r3SkAz0BsXSvdFcDJQGwdLN0WgEHAb10r3Q6ATICsXSydDgBDgEnATwBuHSvdAAYv3S2dA8BHwGTAbl0snTmJFsBtnSzdAUBBwHCdK90cgFBAbF0r3QsARwBcAHxAcN0wXTBdGkE4QizB7F0vnS5AbN0x3QaAQUB1AS2dK90IgISAWECegGxdBYFUQKvdAUF53TddP901nRYAbZ0t3QFAfh03XS4dLh0WwHFdLN0KQNPAbR0s3QSFN502HSiDrF0vnRJAQkBsHS1dOQBXAGsATUS1TGBRiMBDgGzdK90oxcXAcN0snTPAhUBIwHMEgkBs3TVMb10snTfdOF03wGxdL90LAEtAbV0r3ShAUUBHAGDC7h0r3QXA690IHVQAbR0tnQRAa90BXUIAVoBiQ+wdBkBJALdGMd0r3QHBTgb1nSvdN0Bs3S+dBUBSwE4Ar10s3RMBcYFsHTDdJwBr3QjdSoBEwFTHLd0r3RgWT4BWAH2AbB0r3TlBTcBtnS5dAUBEgJFAnVVLAKvdBZYGQHFAYRuuHSvdNs20gGwdLN0jwPsdNZ0oQHFdLh0VAE7Abp0r3SrBUoBLAHJBrF0r3SRAk0BsHSzdDcBGwG3dLV0dwEGAcd0nwEjAb501TH4dNZ0ySOTa7F0UwJcAb90vHRhA7B0u3S8dL90nQTeBq4FvXTAdCsCFAG3dLZ0CwGQAbF0unS6AhsBv3S1dLAC+HQadS4BtXSvdMEEu3S4dGwBtXSvdDMBIAHkAXUBsHSvdIoCsXSxdHMcs3S7dHYBuXS8dD4BvnSvdBID7HTQdMp01HQgAcJ0r3THAsV0sHQQAcN0tXTPAkEBLwE/A7F0r3RWAQUBw3SwdM8CWwG4dLN0JwEvAbZ0t3T9AbV0wnS3AbB0Dw+yAa90IgOnAbR0s3QRASABSQFLCLF0r3TBARoBuHSvdDwCLgEpA8QBxXSvdMoF/3TddK90FnW2dMN0RwG6dLV0ggGCAQUBEAa2dLF05AhFARcBgwu2dK90qwYZAeMBryJSQQ0BBQGZAbZ0r3SDAmUBtHRzAZNrsXQ4A3MB5gGoErF0sXQmBAQBNhAKAZYBFgEUASRysHSvdKcxEwG6dLN0TQMzAbZ0tnQQAex033QNASwBmQGxdK90SgOvdCh11QHQdK909AQEAbB0r3RzAbB03HRRAa0CqAxTAq90mQkCB7h0snQ1AQcBtAWBAcN0r3RoBTIBsXSvdCgMHQGLAioIrAFFDtUxr3SsCNh00XTbdMR0/HS3dBwBsHSydBgB1nThdBkBYQx5AQgBElO0dK90QCCzdMJ0SgG1dK90zAURAVoB1BGwdCoBSAG/Abl0r3RAU5QCvHSvdIYIEgHwVKMBvnQWBfYFr3RUCfh033SvdBR1jwKCAWoLunS9dO0BKgEmAb8Bt3SvdOUUr3QHdRoBFAEgArB0r3SxBQgBBQFABrZ0sHRBBBoBugFiArF05AzhCK90OwYnAcB0DgFbAYwCsHSvdFk/LQGBJGsCvgFcELB0r3TREVABw3S2dIQBfQEvAYcysXQOARMBjAK3dK90qggeAREBYwK0dK90kwR2AbF0tnQVAQQBYQwKAQgBFgG0dK900hcSAV0CKwTRAX8OfQPHVrd0r3TGBy4CtXS+dDMBGgG1dK90aQQ+AaAL9gEkAa90ihKwdMJ0EgFkARYFNwGCO7B0r3SRAVQBtHS1dNEEDQFgAkEC7AMXBLB0r3T8FFoBt3S7dAsBiwHRdK90txHfdOd0GAE4Abh0CgIHAbx0r3RJAhMBMQGtKbp0s3QwAxIBRAEWBbh0r3QeBK90KnW8dL50CQG3dLV0vwcHAQkFUgK5dK90sgQ1Abl0s3SuARMBt3SzdH0DHAa4dMZ0HAEbAVECHQWxdLV0eQYYAbd0uHQLAVkBUQJWA7F0xnQoAa90L3XOdLR0MwHFdLZ0VAHwK7Z0sHQXAQ8BOARqAbd0qwgTA1NRvweydLp0UwGwdPN0sgGvAfoBvHR5EhEBx3QNAb50r3QEBI8BunSvdGki6QHpAQIWy3TLdAIWt3THdLB0xXRfAbd0snRmDOx03XQRAbR0snSLPa90M3UFAbF0sHThCDICsHSydFoBFQa6dLd0MQEuAUUxxAEfAa90RGavdDF1WwG0dLN0CAEbAZswtAK6dLV08RfhdN90DgFtBTwBwHSvdNkGs3TmdAUBtHSwdJNrGQGXCXkBDwGvdLgWPwG2dK90mQXFdLV0vXS4dA512nSGAbB0r3RjBEEBt3SvdAsBKQEvAX8GsXSvdDMKwnS1dLJ04HSMAeUIvAHxdK90F3UFAb10sHTeBj8BuHSvdMMJGAG5dLh0HwEFddZ0cwG0dLF0CAFYAbF0t3QsAfh00HQSAcMLowG9dBYF3RCvdAcIt3S6dPZ01nSvdNp0DgEUAnoErQOKBbJ0r3T4BE8D2nSvdMoBCnXKdA0B/QF8AbZ0r3TGAmcBsHS1dFgB9QG0dK903QlZAbR0xnQIAc90sXR8AsF0wXR8Aq90OHW4A7F0w3QvAa90OXUlAcd0s3SAAbN03HTKDLZ0vnQXAa90CHUZAagBPCxRArR0v3RHAbB0tXRzAUoBtnSvdHUCDgG8dK90vAKvdMF0XAG5dLx0KwF1AXABr3QyGA0BsnSvdHETJwHDdLB0cAFZAfAIcQG3dMZ0ngFBAVECqwGxdK90KAHJdMl0ynTbdB4BjQGqCrl0r3QJBuUBsnSydBwGBQK0dLF0CQEQAuMB8kNSQa90gCRLASgB1AdRAm4wsXSwdGYBHQErAmsBvXSlBt4Gr3SxAooBQgJUBrV0r3RVOw0Bu3SvdBUGBgFmDCQBt3RkAhsBr3SkDRx1tHSdAbR0r3R3D0QC8HTKdKABr3QldRkBlgFPAhQBhQuwdLd0t3TvAloCr3RsQBMBsHSzdFgBCgEIBBYBw3SvdGpMaAGwdK901AoJAbl0tXQrAQ0BRAFBArh0r3RxCx0BRAGlBrh0r3S+ER4B5wGqChQB3AuwdK90ihUqAQUBHAK2dK905AivdN50r3T8dA8BMQFnAgUBly62dMB0ZQESARQBhQiwdK90DQShAYAB7QfHdLh0ogb9ASQBKg5hA7F0ERVDAWBZ8gETAa90rQ/gdLB0SAG1dLJ0SwdgAbh0vHSFAt8BtnS/dAUBwnSwdCAB0QJEE+QIr3TMBEMBKgMaKbd0GylmDK90uW1JASMBOSwJAbx01TElAbF0s3Q4ASoBVAHhE8V0r3TFDa903HQ9AbB0r3TYBxIBYgEJArB0r3SVBLsCnwFzHB5TsAH4AScOLwGvdBcUGgFnAQQDt3SvdCoEEQHfAT4CsHRpASUBsBq7dLN0pyUUAbB0tnRBD9l02XQEAVsC1xSwdFJM7AOvdLYI4QG+dLJ0lwHhdB51HQHoAdEDsHRRFhgBr3SlBRcBx3QlARwB1wO4dLN0HAQdAf0CpjUvAa90BhApAbF02gFRAq90DAKvdDx1ewGwdK90HA+xdLJ0jgEoAeEHUQJaN7F0vHRmARABt3S1dPAIGAFmAWkJKAG4dHIDUAG7dLZ0MgIHAb90r3RfAbUBCwGvdKUzw3S0dBQBSAEGFrl0tnTHBR0NuHS8dBwBbQGwdK90mgzDdLd0QQG9dK90SwEuAY4BVBO9dK90nQdZAbh0xnQnAQV13XRKAgUB4gO2dLV0cQEOAWkBjALAdCwByF1tAo0BMgHAdK90PA4NAZwBJQOwdK90TRfDdL10BAFIHwoBSwEWAb10KQEFAqoDtXSvdO0iLQELAcYBt3SvdBkDdAG3dNoBXAWvdJEECwGwdLB0WAFbAa4BxQK5dLN0vwkaASMD4Qn6AV0KeRI5Obt0r3QNDq90PXUOAQgBPAG0dK90eQRaA0sBuANMBbV0wHQgAXEBJTwFAa90vQPLdAZ1HQE1AVEWuHSvdPEGIATsA4whsHS0dKQBBgEcAUsEuHSzdElR2gG4dK90NQE6ASgCiAQYARkBhAE8LMN0r3QuBiUBsnSzdFkE9nTQdFoBfQMKA7d0u3SUARUBsXSzdLoCkga6dLx0MQEZATYQeQGWARJTFAGvdPYLB3XddBABv3S1dP8qswI3AmQEt3RFAbV0r3RVBVsBUQIzA7F0s3QoAUoCsHS1dFkBkwKyAe5CsHSvdOcGCAG/dLB0YQNtAbJ0r3QdFiF12HQUAcB0tnRtBVsBuXSzdB8B43TudA0BpR98AQ8BMyWxdK904BdJHL90wHRPAb10sHRFAQkB4AO0dK90kFwpAWUBqgMFAfUItnSvdGcGMwFNAbZ0Rg0PAQUBkwG2dLJ0ZQEWAX0BIQEsAW8BsXSvdN4aQQEGAa90XFLZdNF01HQGdQ0BrwHgAcJ0r3TTBSABvnSvdMsBDgEJAbUBtHSvdNgjsXTDdAQBzwIWAsN0r3SaCF0BMwE0BrV0r3SgBAQBUAEWArJ0r3TKCw0BpAFoA+wDug2wdK906kSwdL50BAE7A7QMtXSvdMgnLgGkAR8E7APVGrB0r3TSA0QBuXS1dK4BGAGxdLh0LAENAUYBSgW9dK90EQ63dL50BwHGdK905QGeBLB0wnQUATkCvXScCEsBwnRpCbB0w3QSAeMBFgVSQf0NrgGvdDhoEgEQARYFtnSvdDgKBwFpAvoEu3SvdHkWhAG3dLJ0uANzHLB0u3QUAUwBtnS8dOZTt3SzdHoBLwFwBLF0r3QDDLIBt3S8dAsB2XTydAt1hgIHATgB+gSxdK90cwIhAbV0r3RBA6IE0HSvdCcCDQEiAUECvXSvdLRYeQLBAa90rTGxASsBRBm5dLh0iAHsA7Z0vXQFAS0BhwFrAi8Br3ThBlkEuHS7dBwBDwJ9AmsJuQGvdF8UVwS4dLt0RAEuAbJ0r3QgBLR0snTNdM10GQHjBHkBtXSvdGI+QQEoYFwC2QLtERABr3SQCq90JnUPARABwwS2dLJ0sRzfArF0sHTmASEBnmpvAQgB/HS2dGwBXAGkFrR0r3Q9DWkEt3S+dGcBEgG4dK90twLqdOp0r3Q+dWABFwHBCbZ0vHRDEkkCWAHNBbB0snTlBVEBv3RsAYMBr3S/Bp0Bew55A1QBr3Thbg0BQQ+ZAbB0r3Q1ECoBRgFTHL10r3RyadgEYQO0dCQB8gLWdK90bgcPAQsBkwG3dLJ0dwidBBQBrgWwdMB05wEjAbd0WQK/B7N0EwMqAScBHAK4dK90cA9JAbB0vHRzAVEBvXRsAUsBr3TRBr4E0HSvdEwCVQEXAZMMtnSvdKsb53QIdXsFWgHHZrB0xnRxAn0BCgIVAjgBs3RVBuQBtnS0dAUBPgFsFrsBoAIzAgUBr3TGE3YBwnS2dOsCunS2dB1133Q/Abd0r3RHC0EBKwGrAbl0r3RjAUsB7wE2BgUBr3TWdAcBugLYAbF0r3RrBAYBsnSzdCAEQgK0dLd0CQEdAYgLhAOlAq9091k9ATEB2gm6dK90mBGcATgBPwyxdL50CgJRAbh0bAEnAa90cgo9AbV0r3SXGC0B9gmSAioCr3QCG3IBJwHOELh0snTEGZoBBwQWCGkJgUu9dGJkSwGvdC9DRQERAYMLtHSvdHcOLwG9csYCJQK7dLV0aQS0dL50CQG7dLJ0SAGydLJ0bAXUdM10FwK5dFcEKwG7dIIDOgHCdLJ0kSDZdMR0UwFWASIDLwF4B7F083QLPwcBSQEOA7F0r3QUBWwC8wGvdGILHgGEAWMCw3SvdOUy7nSwdJABsCSzAr50unSpD8l0zXQ/ASsBEgK5dK90JwsUAbl0tnQfAXsBVAGPIMV0r3TQFL50tXRXGNB073QnAg8BsXSydLoCGwG+dLV0EgNaAbl0u3QfAQQBnAJZCbB05x6cAa90PQcEARsVCgERAa9002sSARMDegG3dBYFvwevdIAMvHTAdCx13XS3AVoChlIjAcZZCQGvdLYwUAExAlYJunS2dKMwTwG6dLN0mzCvdEF1KgG6Aq90swIGAbd0s3S/BzcBtHS5dAgBDgGydK90bAVFAQUBlQm2dK90cQG1dLp0YQEGda90pRB2AcZ0tnS4ATYCsHS8dDcBfwEQAXRvtnSvdA8LbAGydK90UAE9BTICrlG7dMB0sQMHddZ0BwGKA88JZQGvdIUb2XTYdB4BvwMDBshdr3RAFtR0yXQ6Ab50snT2BSYBunSydE0DUQG7dGwBrwKvdK0ODgGdIL4DOwJrCwUB/XT0dLJ03HQ6ASgBpAFRAs8TsXSydGYB2QFaAR8ftHTTdAkBFQG3dLN0XAV/NewD9HSkAY8CtHS9dBEBIQGvAm8Bu3SvdLlLMQGwdLt0YgF+AbR0r3RBCbJ05nRKAfcCyQZBBOMJBQFiSLZ0r3SCEs509HTaAbl0r3RNAV8BCwHiAbd0snSWCi0BHgKSArt0r3TtB8B0tXTCdLZ0DQFiARACsHSvdGAsyA+1dOV0MwE+ASAEuwGydK90+xCvdP90LAGydLB0rQOhAb90uHTUAUQB1AHXDb90tXSkBA0BTAHgAbZ0r3S6HRcBv3SydP8qwAHLdK906QHHdLF0ynTRdJwJtHS9dAYBLQHJAWsC5AGEGLB0r3TEBEUBGgXSArN0gwt2Aa90JxfvdBJ1JQG3dLN0WwnhdBJ1WQHPAnEBw3TGdMQCSAG5dLJ0CQUgAYsGwAJuAkYVCgKvdPYMznS5dF4BSQH9FLF0r3RmGBIBLwKJDLB0kRZYAa90DhMeARAFYwK+AVgIsHSvdCsWEgEcAZEWuHSvdBwEGgHRARsJt3TkDH0Dr3QkDe90GnWUASMB5AGxdLR0LAHBdNR0r3QRdSJ1tnQFdd90tHS1dA8BJAGrCGED01K/dLJ06wQPAbV0snQFAuwB5AF7B7B0uHTJAfZ03XR+Adx0r3TkBAcBfQOYAbd0r3TRAUUBngF7BLd0lQnwCK90agP4dBJ1QQG5dK90HwGOAbR0vHThW0cB5AjQAgUBUyi2dLV00QLQAdZ073SkAg8BPQKGB7B0qwhZAVcDERWXEyQBz3SNAy0BZwGSArd0r3QhFcV0tHSBAUUCrxcsAq906y4tASwBxgGxdK90AgQaAbB0r3ScAQgBXAUoAbd0HQGwdK90vQYGAVoBng6wdLR0s3RNAQUBqAK2dLN0oAJUAbd0tXQUFgQBVgHeAi8Br3SYBioBlgEcAhQBhgOwdK90NhAzAYUCuwW4dLZ01AsSAfEBuAS4dJEWhQKvdMQSRgI4AbZ0wRQaAUQBBAO4dK90lQ4CB7F0snQVASEBIwLCJoABr3RbBrp0tXTjdNx0FAF9A7ICt3S2dJQBz3TXdHYBHwHyCbl0tnToA2wFcwEiELB0uXSTAd907HQOAU0BjAK5dK90uUfyB2EDsXQkAX4BuHSvdFkZDgFLATwBvXSvdAYJyXTydAQC1nTQdE4DTAFbHg4EKAEXUFECsQFaAQwSsHS4dC8DBiOQAbZ0CwIUAbR0tnQIAQx10HRBAfABr3RsELt0w3ScCKIG+TaAAcJ0jANsBa0DIhCydLl0FAKvdCt1BwG7dK90MgJhAeJ0r3RQBSl1tnQaARABBAO2dK90swcmAcd0snQoAxcBMQEiFrp0OgELAaQBt3SydHMROwEJAXUMtHSvdJAEHXXWdCABWAI2AcB0r3SICh0BAQKcBbl0URYrAa90RgsXArF0VwRRArt0YQIuAVQBtgLFdK90ew7CNcd0xXQkAg8BOAdqARwBqwgJHFNRSVG5dLl0xwF4AzkKtHS7dGcMr3RCdUkCaAeydPMBclsvAet0hwFBAeYBrQGxdK90JgRMAbd0vHTwCC0CsHSydL4BYAGwdLx0GAEaAZ0JBAMMAnsuUQKvdE0M1XTXdEkCsXSydEkBFgImAvwDvwcIVrd0r3TWDBIBtXSvdFcEUQFIAWwBxwWvdLUDPgElIfYBHwGfArl0r3QoD1cY3XTvdM0CFwGzdLJ0dgHrdON0LAEFAVoKtnSwdGUBGwG0dLV0XAF2FgUBsHRxARYLwHS3dPkCBgEfAckBuXSzdGMlTQGCAbx03HTmdLd0DQHbA+ABMQG2Ibp0r3TlODIBt3SvdCgO/HSwdKJSuHTAdGABDgGHAYwCLwH+ArF0r3RZFiEBvHSvdHcJmwKjApAEsXQfH1EC03RhAuZ0sHTvdN10GgGbJ5oBxnQgAkoCr3T7PsJ0wnTOCnsVjxG5dMV0GgILASgByANRArIusXSwdLhIBQFMBJ4BCQERAfcHJAO3dMV0unTBBLF0tHRHAY8BsHSvdMYSx3SydDMBvnS2dMsBDwFMAZgftnQcAbd0snRBDCEBJwFvAbh0r3TEGS11tnTAdLZ0rQHVAygRKAKvdKUSKQG3ApgVuHQ6ATUBfxG4dLJ0LV0JINZ0r3TuAa90P3UNAY0DfAERFVMDJAFcJ2EDr3QPBwoBqgLDQcd013S6dAQBSwHeAr10r3RMBeUBsHSydFkBfwGVAlUSEQGzHLR0r3T7HS4B9wq6A+8Br3S5EQ0Bs3SvdA8ERgELAVsCt3SzdHMRcwG9dLF0SwG9dMN0GAG2dLh0BQGhAUgB4nTidCoBiAG/ASsBERe5dK90awzgdLJ0IQEaFpQELwSvdLdGDQExAXUDunSvdDADxnS1dIIBEwGxdGBZznTodFF1tXR8AboBshaxdDMl4QivdJILGQEXATwstnSvdI8RHAIxWTkEvnSvdB0hsXS3dBIBHiAJAhcBWSi2dK90EgwaAbp0r3QxAh4BBgGZDrR0r3SrBPIHuHSxdDUBdgFzAQADsHS2dDgC6QGOVicDJwMCFmBcjlbpAWBcAhbdZ8t0y3TdZycBt3SwdEEMHgEVAZkOsXSvdG8JHwGnAeQ9snSwdNk7/3QIdT0BunSvdJkKEQHDdLJ0tAUKdfB0r3RPdakfsHSzdCIDuXSydLB0wHQ3Adx0uXTfAhoBvg2aAbwCIALgTlMuvHSvdHoVr3RNdXUCOgEiD710v3QMCrYBtnSvdAALSgEUAWMDsHSvdCsfUwFiAytasHQYAb90uHSDARABtHS1dJNrKQG5dNoBKwGvdAECGgEIAgQDLwGeA7F0r3S6CQ4B/gM8Ab50r3ScCgp1xHTGdLN0PgGDAvYBBQGfArZ0r3QAB690BnXsAYAB+gHHdLh0XANFAcQCewTDdJUJzwKvdLEELAHmCm0CJAGwdH4HNAL8AmwPhAGvdEoJSgG8dK907wkOAUwBZAO2dAB1wXTsdBp17AEkJPoBagGLJ9Ux0AHddO90KwOwdMd0JQG1dLN0VwQOAQ8BegSxdK90IhDQdOd0kAE8Ay00uHS6dDcLIwGwdFkC5AGzdIoCDgEGPYsEKAESAYIMmwOAAa90fgwdAbZ0r3Q9BX4BtnSvdD4IBAEmBN4C5gHwTLF0r3TWAuF0E3UlAZABtAGxdLN0CgovASMCNRSAAeN09HRQAb90tnRfAUEBsQRXDcQCVg/DdK90R0bVdLZ0bwE3BM895wGvdEsrHAFYAToFsHQdAQYBURa0dK90VxMOAfx0CgHIAxYBWAEOASwBPAGxdK90wRILdRwBWgGrAgsGIwH0M9UxQgHvA690Gwv3BHQFsAGwdK90LAXxBrB0SRwYAcB06AEPAbd0snRcBZYC0HSvdAoHlAHiAVEk3wGyA9sBsnTFdNN0unTBAggBxXSeaq90UHWdBLZ0wHQQAccBHAHoBbh0u3RoAjwChAGWNsN0vnTDIC4CsHS+dBQBTQGydLN0bAVdARcBPQq2dK90gQi0dMN0UAE4AbEDsXS2dHMCDQEpOuABlwFnM750r3RnSyYBHwEvArl0snQlIRgBrAENAyMBuHQLJg4BJgJ6BL8HiRe3dAIHtnSydH0BMwG4dLZ0RAEEAUQECgG2dAZAsnS+bK0D6HQUAuwBMQH6Abp0uHS0AdUBQALtMdB0r3Q5Fy0BJQKSAmEDU1q/dK90MhWZAVwEahSCA690SB22A3ABvHR7AgYBCwHJAbd0s3SjER0BagKlBmYDKDErAa90pC7kA4IBw3S+dPAruXSwdEgBLQHUAZICv3SvdKQEvHSzdOQBxXS0dCkDr3RLdb90tXRJArd0snR3AY0Bw3S1dKYRDQEJAUECtHSvdEwEB3XfdAUBtXSwdDMBWQG5dMZ0HwFiCMJ0t3SvAWwBCwJwMpABr3TyBHsFKQNtZcV0xnSGAk0EJAHbdMl0hwTwdNR0oAFoA00BLnXfdB113XTsdAh1RwGxdLV0ugLvdN90FwG3dLJ08AjydMF0v3S/dCEBtnSvdJ4EMg64dLV0RAFYC7B0w3QYAXcBsHS8dFgBDQHFDRACVAHyQ8V0r3TGEBgBLwImUVgBxwGydLt0pwEOAUAEjAJVBpoLOAGkEQoCr3RLLksHu3S5dB4C1nTndL10t3RKAbgBpQ/GdK90GGRBAdpmrQG+dK90xBHzdLh0BXUIdfZ033ReAbB0r3QtDh8fvXTTdCIBFQEFATgCtnSzdGUB7nTjdL10vnTsA7R0vXQIAYYBtXSvdHQl5HTVdDsBRAF1DLh0r3RZBhMBZQGHAQUBuAm2dLN0qwkZAQICTwKFAmQVuHSvdPAWEQLadK90PQOEAcEBDwEhAjkFsHSYHxQBuAGeAT0C8AhjCLd0s3RqA+B0w3Q4G990r3Q1Ax4BLAFQArF0r3TfCVwBsHS8dOQBNQ66dMN0ggFCU5wBZWGwdNd0nAJBAbADMAJyA8gRZgEUUygBr3SlEy0BqgKEGMd0r3QUCfoQuXS9dI0B8gOsBa902zlaAZ8B9DOxdFMBFQKyGRQBCgFNKbwFNAPhUfEXr3TGUHkB6AGvdEAftgG0dK90hwuCAbB0sXRiAR91snQNAcEjCQN+BxcEgAUHF+YKr3SROFUFuHTGdEQBHgEIAqoKLwE3TbF0r3SqDLd0u3R3Abd0vHR9AxIBFwGRFrZ0r3S/EA0BvXSvdAQPCSDQdK90QAIRAbV0snTBBBgBZwISZbF0uHQMJsZ0snQWArIBr3TBC8p08nRLAbd0sHTsBR4B2wMvDzEBGHW3dJUBKQOQCcV0r3QVEZoBIgIgAiwNIwwFAQUBsnSwdFABFQEfATgCuXSzdOYkDgEeArUBu3SvdOoFJQELAXECt3SzdAoDRQWwdNd0YgGvdBV10AHQdO90vgLAdLh0DQE/DCUDrwLBA7t0r3SWGQgBoAJjAQUB/Ay2dLB0bBbOCsN0xXSEAQ0B+QKfFcB0r3QfBUEBVgNXDQgBr3RsLhN19nQTAt90r3TeBfsBEnVdAbZ0r3TID50BsHSvdL4BSwHCdLB0kSAEAQcCUhEYATYrOQKvdEMJQQFTAUotvHSvdJYG7AEoAX0MUQK4dOEDsXS5dF4DsXTKDOEIvnS6ASACDAJrDlECqDCxdK90bgg+AeQBuwGwdK90BAZpAcN0wAEGda900AMIAbB0sHTkAR4BCQGqCrR0r3SADg4BrwI8Abt0r3S7G3wBxQFmAhd1r3QlEUMBtnSvdAQJr3Q7dWkBsHSzdL0GEwG9dLN0BA/CdMN0UAHFdLZ0qgVZArZ0s3QQAR4BHwFQArl0r3R4CBABrgGjASgC8AIYAWozsHSvdGEWxXTFdAcB4Qg0ArF0r3S6ATMBtHS2dAkBr3RYdVUBw3SvdF0NBwFBDIoBt3SvdDoFFAE4Aa0OsXS2dAoCBwFxBA4DwHSvdHsTDgEIA7UB0QTjQLR0r3SEDA8B5AjtAQUBsnTRAh8fuHTTdEQB5RvmAQdpsXTXdCYE8wiAAcJ0IwLydMR0VwEfA0cfFwGvdNgYB3XQdL50s3SSAbZ0r3QKDRQBOgEGFr10UQG+dGwB/gOvdHUNwnTAdE8GxXTFdE8GGQFMASAB/yrWAb90r3TeAwYBZQEMAgUBJRq2dGgBWwE/ErB0r3TOPyEBnldvASQBLgthA9R0wXSxAcQZDSAnAbh0UwQSASgB0QhRAq904AbkBhwGFiWydOZ0bwPzCLZ0wnQXAREBcwGoAbB0EQGydLJ0IATedN50gwOWA690VnUdAbh0r3QrBhIBxwuLA5MBr3S6DCUBs3SzdMcBLwGwdLd0cwEFBgkBNQ6palwBsXS8dFECJgEJAWRFtHSydEwEOwKXAr0GhETPdON0LgEJAbYCtHSvdFgVEQGwdLJ05AEpAbd02gG/B690eARIAQUBlwe2dLJ0oAKIAtF03nTlAmMEt3TudAsBHgHbAWMCBgGaFbR0r3REDQx13XRDATYQwgEUAfIBlgFrY7B0r3T3IBoB2QEEA0wBFh22dO50/XQAdcR07AFNA5NbunS4dNgCwnRuAmkClAG7dNkDIAEGI9YBTwGvdIsxEwGkCg8DCAHaB7R0rSlhDLN03UFUAQUBMRK2dLV0LAIqASwBHAKxdK905CO8dLt0MAJYAXgSsHSvdDYLN3XBdGYC7HSvdJYoLQe8dLB0UwEPBDkCt3QdB3MBLwF3CLF0sXRWAS8BiAE1FCsBSzi5dPx0tHQsAbd0sHRcBQJ143RNASgBqAJRAh8OsXSzdBFlr3TfdNUBgQLtMd10r3TAG8F0xHQOASYBegS3dK902kMeAsd0tXSAAcR01HRFAUQB4AO4dK90EwYdAbV0r3SdBBoB1gliArJ05AxQAa904FivdFl1OwEXARsktnSvdPMfUAG4dLZ0HAE9Ab50r3TYFRwGtnTGdBcBGgHDIMsChAF+CMN0r3SwBRsBWAGpArB0tXTlBZEH1nSvdKQCJQF7AqgDcAF6AWgJgALbAVgEWAE9AY0DcAIRFbcOJAGvdM8EGHW0dCEB0AIVBIIBCSS6dK90WU++AbR0x3QIAdV07nQMA99033RLAjIBuHSvdC43UgG3dNoBfQOvdBYDIAG+CPcDCAGvdE4Mr3TJdI8BlwkmAw8Br3TyFcB0sHR+BJMBFAG/dLZ0gwGbAcEBr3TVNvcBvHSvdCcbewW3dMZ0EwErBlQBwHSlAioBqQ93BL50r3RkBHIBLwLzFFgBsnR0DBkBGALdGLl0ryJ7Fa90zgYJAp8DUgewdK90XwyYArd03Rj3B690STNKAbB0r3TfAa90J3VBAQgBr3SeahUBGAFBARoDMAaxdFcNKAGvdHAOOwN7FcI1uXTFdBgCEQFLB4gBtXTPdO10FAG9dLZ0SwEdAckDURa/CadzuXSvdG8KewVhAwUPv3TGdCQB2Ae2dM90BQEgAUwBSwi2dK902QG3AbN0Dw/JBa90shkgASIC9wMFAa90LA1SAbF02gEvAa90hwE3AcB0uXRtBR4BlwdjAjcBmyiwdK907mb7Ad90vnTcdB4BCAFQArR0r3T3BbZ0vXQCB7d0snQTAVoBUQImKLF0u3QoAewBLwGTW7F0uHSHAdd0tXRDAbV0r3TiBuZ0snRZAeEIcQGxdMZ0LgMeARcBYwK2dK902gsXA7IBIxGwdK90YXXUdPB0BwF3AQ4Dt3SvdM0FXgG2dK90kDBEAbB0tXQYAR4B8wEvD2gH2TqxdK90aRK0ApABNAOxdB4BDwFjArF0r3RqC0UBhgK8DSkDrBjFdK901QVJHLh0wHQ1ARMC0HSvdK8IEXXWdEUBRg3gA00Br3QdFUoBLAjsAo0Br3SFQRd10HTTdNd0HgFoBWMCtAX/AsN0r3TTMpMDtHTCdAgB6gHQdK902AOiBNZ0r3SCAg0BzQN8KkwFMzNLAa90VRQGAbV0s3TBBIEBzATSS9ECr3QfW1EBLwFsAVYBbAKxdK90xBN3AQUB5QW2dLx0gwI1ARkCTgr5A7J0s3QeAQsCZnOQAXcBHzv4ASIBGVq9dNYBoAIEEQUB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WQK5dLN0jQF+AS8BXw2xdK908zFnAR8BVAO5dLV0JSEbAXMBwQGwdLV0OgRtAQsBtwO3dK908F8NASgBmQFRAhwbsXSvdLhIQwQ6BD0ecwFJAQsBOgS3dLx0dwiHAcICRgjDdBEUzwKzdCJe1AI/BBQNcQKjaloBr3SFFdt08HRJHL8JwHTJAzIB9HSvdJkEPwIjARQBuHS2dCcB7AIkAa90IEXBAsJ0xXQGA5AE1gIrBSYELQHwA6kBZQFNDQUBMxa2dLx0x3TDIMEBuHT+BQkBsnS1dCAEGHWxdCcDcCNiBWIFcCMnA45W8G7wbo5WrQFzAhEBOQyIASIBzwa9dA0BWwFKBbB0znTOdMIBw3TyAQgEr3TtPGYBsHT3BXMBvXTgB+sC7AEdAckBnAWwdFEW5AENddd0PAEmB35vlRKvdBgTfgEGAUICZwLOA8B0tXRYAtgHsXTPdCwBBwHgdK90QgMsAZ4BHAW3dFoK8AiwdGkINQGgAhUDBQHyG7Z0s3RXZSgCt3Q8AgsBvnQZAywGoAOvdFw6IAG9dK90IgEFAdkCNwwQAbB0KGAoAXAB0QO9dFEW0VOvdL8lkgbHdLx0gAHbAbd0Age/B7J0eAQyAmcMLC+0dA9JeAOydAoF3wG3dL90CwEuddZ0CgF2A18Kt3TDQWYMz3S6dAoB7gaiCbF0UgIIHBQDHwGvdJddNwG+dLl0/gNqBEwCVxg8FPZO0HTvdAcgbQGzdK90cls1Abd0s3RBDLQDu3TDdMhEkQfQdK90vgJ2AQsB8gm3dLZ0RwISAbx0r3RzEzEBCAGVBLR0u3RhDFMX9HTOdIwEaAELAYEDt3SvdKIP8wGQA30BsXSzdOEIIQG3BToJHwGXC7l0wiYlIa90MxoeAbV0r3T6EA4BVgE8AS8BKQKxdK90rh4JU790vnRhAxQBCAGhA7R0tnSeamwB/WopBDQEr3RmUjoBjwLyErJ0GwG5dLV0NgJRATsCXwgFAa90M09ZAncBs3SpArMBYAHeFLh0r3Rtaw0BGguZAf8Er3R+ERwBuXSydK4BHwGwdLB0NwEZAb1yNgklAtV0tHQ+AQlPuwFgBa90eXIPBHMBt3Q4AoQBBQG6PbZ0snSuHXUBWgGvdJYpFwG2dLJ05lOpBS8BUAVQBahj4nTidKhjDQGPBK90gRMXAbR0snSTa+EBs3SydF8G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",WBe=new vBe;typeof window<"u"&&(window.llamaTokenizer=WBe);function $l(e){return Array.isArray(e)?e.filter(t=>t.type==="text").map(t=>t.text).join(` +`):e}function yBe(e,t=`expected a function, instead received ${typeof e}`){if(typeof e!="function")throw new TypeError(t)}function FBe(e,t=`expected an object, instead received ${typeof e}`){if(typeof e!="object")throw new TypeError(t)}function EBe(e,t="expected all items to be functions, instead received the following types: "){if(!e.every(n=>typeof n=="function")){const n=e.map(r=>typeof r=="function"?`function ${r.name||"unnamed"}()`:typeof r).join(", ");throw new TypeError(`${t}[${n}]`)}}var CD=e=>Array.isArray(e)?e:[e];function RBe(e){const t=Array.isArray(e[0])?e[0]:e;return EBe(t,"createSelector expects all input-selectors to be functions, but received the following types: "),t}function SBe(e,t){const n=[],{length:r}=e;for(let i=0;i{n=$A(),o.resetResultsCount()},o.resultsCount=()=>a,o.resetResultsCount=()=>{a=0},o}function DBe(e,...t){const n=typeof e=="function"?{memoize:e,memoizeOptions:t}:e,r=(...i)=>{let a=0,o=0,l,s={},u=i.pop();typeof u=="object"&&(s=u,u=i.pop()),yBe(u,`createSelector expects an output function after the inputs, but received: [${typeof u}]`);const c={...n,...s},{memoize:d,memoizeOptions:g=[],argsMemoize:h=KU,argsMemoizeOptions:m=[],devModeChecks:A={}}=c,B=CD(g),C=CD(m),b=RBe(i),Q=d(function(){return a++,u.apply(null,arguments)},...B),F=h(function(){o++;const y=SBe(b,arguments);return l=Q.apply(null,y),l},...C);return Object.assign(F,{resultFunc:u,memoizedResultFunc:Q,dependencies:b,dependencyRecomputations:()=>o,resetDependencyRecomputations:()=>{o=0},lastResult:()=>l,recomputations:()=>a,resetRecomputations:()=>{a=0},memoize:d,argsMemoize:h})};return Object.assign(r,{withTypes:()=>r}),r}var QU=DBe(KU),NBe=Object.assign((e,t=QU)=>{FBe(e,`createStructuredSelector expects first argument to be an object where each property is a selector, instead received a ${typeof e}`);const n=Object.keys(e),r=n.map(a=>e[a]);return t(r,(...a)=>a.reduce((o,l,s)=>(o[n[s]]=l,o),{}))},{withTypes:()=>NBe});const ZBe=QU([e=>e.state.history],e=>e.reduce((t,n)=>(t.push(...n.contextItems),t),[])),HBe={history:[],contextItems:[],active:!1,config:{slashCommands:[{name:"edit",description:"Edit selected code"},{name:"comment",description:"Write comments for the selected code"},{name:"share",description:"Export the current chat session to markdown"},{name:"cmd",description:"Generate a shell command"}],contextProviders:[],models:[]},title:"New Session",sessionId:zl(),defaultModelTitle:"GPT-4"},WU=tm({name:"state",initialState:HBe,reducers:{setConfig:(e,{payload:t})=>{var r,i;const n=((r=t.models.find(a=>a.title===e.defaultModelTitle))==null?void 0:r.title)||((i=t.models[0])==null?void 0:i.title)||"";e.config=t,e.defaultModelTitle=n},addPromptCompletionPair:(e,{payload:t})=>{if(!e.history.length)return;const n=e.history[e.history.length-1];n.promptLogs=n.promptLogs?n.promptLogs.concat(t):t},setActive:e=>{e.active=!0},clearLastResponse:e=>{e.history.length<2||(e.mainEditorContent=e.history[e.history.length-2].editorState,e.history=e.history.slice(0,-2))},consumeMainEditorContent:e=>{e.mainEditorContent=void 0},setContextItemsAtIndex:(e,{payload:{index:t,contextItems:n}})=>{e.history[t]&&(e.history[t].contextItems=n)},setEditingContextItemAtIndex:(e,{payload:{index:t,item:n}})=>{var r;if(t===void 0){const i=((r=e.contextItems[0])==null?void 0:r.id.itemId)===n.id.itemId;e.contextItems=i?[]:[{...n,editing:!0}];return}},addContextItems:(e,t)=>{e.contextItems=e.contextItems.concat(t.payload)},resubmitAtIndex:(e,{payload:t})=>{const n=e.history[t.index];n&&(n.message.content="",n.editorState=t.editorState,e.history=e.history.slice(0,t.index+1).concat({message:{role:"assistant",content:""},contextItems:[]}),e.active=!0)},initNewActiveMessage:(e,{payload:t})=>{e.history.push({message:{role:"user",content:""},contextItems:e.contextItems,editorState:t.editorState}),e.history.push({message:{role:"assistant",content:""},contextItems:[]}),e.active=!0},setMessageAtIndex:(e,{payload:t})=>{if(t.index>=e.history.length){e.history.push({message:t.message,editorState:{type:"doc",content:$l(t.message.content).split(` +`).map(n=>({type:"paragraph",content:n===""?[]:[{type:"text",text:n}]}))},contextItems:[]});return}e.history[t.index].message=t.message,e.history[t.index].contextItems=t.contextItems||[]},addContextItemsAtIndex:(e,{payload:t})=>{const n=e.history[t.index];n&&n.contextItems.push(...t.contextItems)},setInactive:e=>{e.active=!1},streamUpdate:(e,t)=>{e.history.length&&(e.history[e.history.length-1].message.content+=t.payload)},newSession:(e,{payload:t})=>{t?(e.history=t.history,e.title=t.title,e.sessionId=t.sessionId):(e.history=[],e.contextItems=[],e.active=!1,e.title="New Session",e.sessionId=zl())},deleteContextWithIds:(e,{payload:t})=>{const n=i=>`${i.providerTitle}-${i.itemId}`,r=new Set(t.ids.map(n));t.index===void 0?e.contextItems=e.contextItems.filter(i=>!r.has(n(i.id))):e.history[t.index].contextItems=e.history[t.index].contextItems.filter(i=>!r.has(n(i.id)))},addHighlightedCode:(e,{payload:t})=>{let n=[...e.contextItems].map(a=>({...a,editing:!1}));const r=t.rangeInFileWithContents.filepath.split(/[\\/]/).pop();for(let a=0;aparseInt(h)-1);if(l>c||s{const n=t.ids.map(r=>r.itemId);return typeof t.index>"u"?{...e,contextItems:e.contextItems.map(r=>({...r,editing:n.includes(r.id.itemId)}))}:{...e,history:e.history.map((r,i)=>i===t.index?{...r,contextItems:r.contextItems.map(a=>({...a,editing:n.includes(a.id.itemId)}))}:r)}},setDefaultModel:(e,{payload:t})=>{if(!(!e.config.models.find(r=>r.title===t.title)&&!t.force))return{...e,defaultModelTitle:t.title}}}}),{setContextItemsAtIndex:Tlt,addContextItems:Vlt,addContextItemsAtIndex:XBe,setInactive:Kf,streamUpdate:wD,newSession:Qf,deleteContextWithIds:Ylt,resubmitAtIndex:LBe,addHighlightedCode:Ilt,setEditingAtIds:Ult,setDefaultModel:B1,setConfig:MBe,addPromptCompletionPair:TBe,setActive:Olt,setEditingContextItemAtIndex:yU,initNewActiveMessage:VBe,setMessageAtIndex:FU,clearLastResponse:EU,consumeMainEditorContent:YBe}=WU.actions,IBe=WU.reducer;var UBe=Object.defineProperty,OBe=(e,t,n)=>t in e?UBe(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,sK=(e,t,n)=>(OBe(e,typeof t!="symbol"?t+"":t,n),n);let JBe=class{constructor(){sK(this,"current",this.detect()),sK(this,"handoffState","pending"),sK(this,"currentId",0)}set(t){this.current!==t&&(this.handoffState="pending",this.currentId=0,this.current=t)}reset(){this.set(this.detect())}nextId(){return++this.currentId}get isServer(){return this.current==="server"}get isClient(){return this.current==="client"}detect(){return typeof window>"u"||typeof document>"u"?"server":"client"}handoff(){this.handoffState==="pending"&&(this.handoffState="complete")}get isHandoffComplete(){return this.handoffState==="complete"}},Z0=new JBe,ro=(e,t)=>{Z0.isServer?E.useEffect(e,t):E.useLayoutEffect(e,t)};function as(e){let t=E.useRef(e);return ro(()=>{t.current=e},[e]),t}function RU(e,t){let[n,r]=E.useState(e),i=as(e);return ro(()=>r(i.current),[i,r,...t]),n}let Rn=function(e){let t=as(e);return ct.useCallback((...n)=>t.current(...n),[t])};function zBe(e,t,n){let[r,i]=E.useState(n),a=e!==void 0,o=E.useRef(a),l=E.useRef(!1),s=E.useRef(!1);return a&&!o.current&&!l.current?(l.current=!0,o.current=a,console.error("A component is changing from uncontrolled to controlled. This may be caused by the value changing from undefined to a defined value, which should not happen.")):!a&&o.current&&!s.current&&(s.current=!0,o.current=a,console.error("A component is changing from controlled to uncontrolled. This may be caused by the value changing from a defined value to undefined, which should not happen.")),[a?e:r,Rn(u=>(a||i(u),t==null?void 0:t(u)))]}function PBe(e){typeof queueMicrotask=="function"?queueMicrotask(e):Promise.resolve().then(e).catch(t=>setTimeout(()=>{throw t}))}function Rc(){let e=[],t={addEventListener(n,r,i,a){return n.addEventListener(r,i,a),t.add(()=>n.removeEventListener(r,i,a))},requestAnimationFrame(...n){let r=requestAnimationFrame(...n);return t.add(()=>cancelAnimationFrame(r))},nextFrame(...n){return t.requestAnimationFrame(()=>t.requestAnimationFrame(...n))},setTimeout(...n){let r=setTimeout(...n);return t.add(()=>clearTimeout(r))},microTask(...n){let r={current:!0};return PBe(()=>{r.current&&n[0]()}),t.add(()=>{r.current=!1})},style(n,r,i){let a=n.style.getPropertyValue(r);return Object.assign(n.style,{[r]:i}),this.add(()=>{Object.assign(n.style,{[r]:a})})},group(n){let r=Rc();return n(r),this.add(()=>r.dispose())},add(n){return e.push(n),()=>{let r=e.indexOf(n);if(r>=0)for(let i of e.splice(r,1))i()}},dispose(){for(let n of e.splice(0))n()}};return t}function w1(){let[e]=E.useState(Rc);return E.useEffect(()=>()=>e.dispose(),[e]),e}function jBe(){let e=typeof document>"u";return"useSyncExternalStore"in rW?(t=>t.useSyncExternalStore)(rW)(()=>()=>{},()=>!1,()=>!e):!1}function w9(){let e=jBe(),[t,n]=E.useState(Z0.isHandoffComplete);return t&&Z0.isHandoffComplete===!1&&n(!1),E.useEffect(()=>{t!==!0&&n(!0)},[t]),E.useEffect(()=>Z0.handoff(),[]),e?!1:t}var bD;let h3=(bD=ct.useId)!=null?bD:function(){let e=w9(),[t,n]=ct.useState(e?()=>Z0.nextId():null);return ro(()=>{t===null&&n(Z0.nextId())},[t]),t!=null?""+t:void 0};function bi(e,t,...n){if(e in t){let i=t[e];return typeof i=="function"?i(...n):i}let r=new Error(`Tried to handle "${e}" but there is no handler defined. Only defined handlers are: ${Object.keys(t).map(i=>`"${i}"`).join(", ")}.`);throw Error.captureStackTrace&&Error.captureStackTrace(r,bi),r}function SU(e){return Z0.isServer?null:e instanceof Node?e.ownerDocument:e!=null&&e.hasOwnProperty("current")&&e.current instanceof Node?e.current.ownerDocument:document}let vD=["[contentEditable=true]","[tabindex]","a[href]","area[href]","button:not([disabled])","iframe","input:not([disabled])","select:not([disabled])","textarea:not([disabled])"].map(e=>`${e}:not([tabindex='-1'])`).join(",");var _Be=(e=>(e[e.First=1]="First",e[e.Previous=2]="Previous",e[e.Next=4]="Next",e[e.Last=8]="Last",e[e.WrapAround=16]="WrapAround",e[e.NoScroll=32]="NoScroll",e))(_Be||{}),$Be=(e=>(e[e.Error=0]="Error",e[e.Overflow=1]="Overflow",e[e.Success=2]="Success",e[e.Underflow=3]="Underflow",e))($Be||{}),qBe=(e=>(e[e.Previous=-1]="Previous",e[e.Next=1]="Next",e))(qBe||{}),b9=(e=>(e[e.Strict=0]="Strict",e[e.Loose=1]="Loose",e))(b9||{});function xU(e,t=0){var n;return e===((n=SU(e))==null?void 0:n.body)?!1:bi(t,{0(){return e.matches(vD)},1(){let r=e;for(;r!==null;){if(r.matches(vD))return!0;r=r.parentElement}return!1}})}var e4e=(e=>(e[e.Keyboard=0]="Keyboard",e[e.Mouse=1]="Mouse",e))(e4e||{});typeof window<"u"&&typeof document<"u"&&(document.addEventListener("keydown",e=>{e.metaKey||e.altKey||e.ctrlKey||(document.documentElement.dataset.headlessuiFocusVisible="")},!0),document.addEventListener("click",e=>{e.detail===1?delete document.documentElement.dataset.headlessuiFocusVisible:e.detail===0&&(document.documentElement.dataset.headlessuiFocusVisible="")},!0));function t4e(e,t=n=>n){return e.slice().sort((n,r)=>{let i=t(n),a=t(r);if(i===null||a===null)return 0;let o=i.compareDocumentPosition(a);return o&Node.DOCUMENT_POSITION_FOLLOWING?-1:o&Node.DOCUMENT_POSITION_PRECEDING?1:0})}function n4e(){return/iPhone/gi.test(window.navigator.platform)||/Mac/gi.test(window.navigator.platform)&&window.navigator.maxTouchPoints>0}function r4e(){return/Android/gi.test(window.navigator.userAgent)}function i4e(){return n4e()||r4e()}function qA(e,t,n){let r=as(t);E.useEffect(()=>{function i(a){r.current(a)}return document.addEventListener(e,i,n),()=>document.removeEventListener(e,i,n)},[e,n])}function a4e(e,t,n){let r=as(t);E.useEffect(()=>{function i(a){r.current(a)}return window.addEventListener(e,i,n),()=>window.removeEventListener(e,i,n)},[e,n])}function o4e(e,t,n=!0){let r=E.useRef(!1);E.useEffect(()=>{requestAnimationFrame(()=>{r.current=n})},[n]);function i(o,l){if(!r.current||o.defaultPrevented)return;let s=l(o);if(s===null||!s.getRootNode().contains(s)||!s.isConnected)return;let u=function c(d){return typeof d=="function"?c(d()):Array.isArray(d)||d instanceof Set?d:[d]}(e);for(let c of u){if(c===null)continue;let d=c instanceof HTMLElement?c:c.current;if(d!=null&&d.contains(s)||o.composed&&o.composedPath().includes(d))return}return!xU(s,b9.Loose)&&s.tabIndex!==-1&&o.preventDefault(),t(o,s)}let a=E.useRef(null);qA("pointerdown",o=>{var l,s;r.current&&(a.current=((s=(l=o.composedPath)==null?void 0:l.call(o))==null?void 0:s[0])||o.target)},!0),qA("mousedown",o=>{var l,s;r.current&&(a.current=((s=(l=o.composedPath)==null?void 0:l.call(o))==null?void 0:s[0])||o.target)},!0),qA("click",o=>{i4e()||a.current&&(i(o,()=>a.current),a.current=null)},!0),qA("touchend",o=>i(o,()=>o.target instanceof HTMLElement?o.target:null),!0),a4e("blur",o=>i(o,()=>window.document.activeElement instanceof HTMLIFrameElement?window.document.activeElement:null),!0)}function KD(e){var t;if(e.type)return e.type;let n=(t=e.as)!=null?t:"button";if(typeof n=="string"&&n.toLowerCase()==="button")return"button"}function l4e(e,t){let[n,r]=E.useState(()=>KD(e));return ro(()=>{r(KD(e))},[e.type,e.as]),ro(()=>{n||t.current&&t.current instanceof HTMLButtonElement&&!t.current.hasAttribute("type")&&r("button")},[n,t]),n}let s4e=Symbol();function gd(...e){let t=E.useRef(e);E.useEffect(()=>{t.current=e},[e]);let n=Rn(r=>{for(let i of t.current)i!=null&&(typeof i=="function"?i(r):i.current=r)});return e.every(r=>r==null||(r==null?void 0:r[s4e]))?void 0:n}function QD(e){return[e.screenX,e.screenY]}function u4e(){let e=E.useRef([-1,-1]);return{wasMoved(t){let n=QD(t);return e.current[0]===n[0]&&e.current[1]===n[1]?!1:(e.current=n,!0)},update(t){e.current=QD(t)}}}function RB(...e){return Array.from(new Set(e.flatMap(t=>typeof t=="string"?t.split(" "):[]))).filter(Boolean).join(" ")}var SB=(e=>(e[e.None=0]="None",e[e.RenderStrategy=1]="RenderStrategy",e[e.Static=2]="Static",e))(SB||{}),_u=(e=>(e[e.Unmount=0]="Unmount",e[e.Hidden=1]="Hidden",e))(_u||{});function Lc({ourProps:e,theirProps:t,slot:n,defaultTag:r,features:i,visible:a=!0,name:o,mergeRefs:l}){l=l??c4e;let s=GU(t,e);if(a)return e2(s,n,r,o,l);let u=i??0;if(u&2){let{static:c=!1,...d}=s;if(c)return e2(d,n,r,o,l)}if(u&1){let{unmount:c=!0,...d}=s;return bi(c?0:1,{0(){return null},1(){return e2({...d,hidden:!0,style:{display:"none"}},n,r,o,l)}})}return e2(s,n,r,o,l)}function e2(e,t={},n,r,i){let{as:a=n,children:o,refName:l="ref",...s}=uK(e,["unmount","static"]),u=e.ref!==void 0?{[l]:e.ref}:{},c=typeof o=="function"?o(t):o;"className"in s&&s.className&&typeof s.className=="function"&&(s.className=s.className(t));let d={};if(t){let g=!1,h=[];for(let[m,A]of Object.entries(t))typeof A=="boolean"&&(g=!0),A===!0&&h.push(m);g&&(d["data-headlessui-state"]=h.join(" "))}if(a===E.Fragment&&Object.keys(tF(s)).length>0){if(!E.isValidElement(c)||Array.isArray(c)&&c.length>1)throw new Error(['Passing props on "Fragment"!',"",`The current component <${r} /> is rendering a "Fragment".`,"However we need to passthrough the following props:",Object.keys(s).map(A=>` - ${A}`).join(` +`),"","You can apply a few solutions:",['Add an `as="..."` prop, to ensure that we render an actual element instead of a "Fragment".',"Render a single element as the child so that we can forward the props onto that element."].map(A=>` - ${A}`).join(` +`)].join(` +`));let g=c.props,h=typeof(g==null?void 0:g.className)=="function"?(...A)=>RB(g==null?void 0:g.className(...A),s.className):RB(g==null?void 0:g.className,s.className),m=h?{className:h}:{};return E.cloneElement(c,Object.assign({},GU(c.props,tF(uK(s,["ref"]))),d,u,{ref:i(c.ref,u.ref)},m))}return E.createElement(a,Object.assign({},uK(s,["ref"]),a!==E.Fragment&&u,a!==E.Fragment&&d),c)}function c4e(...e){return e.every(t=>t==null)?void 0:t=>{for(let n of e)n!=null&&(typeof n=="function"?n(t):n.current=t)}}function GU(...e){if(e.length===0)return{};if(e.length===1)return e[0];let t={},n={};for(let r of e)for(let i in r)i.startsWith("on")&&typeof r[i]=="function"?(n[i]!=null||(n[i]=[]),n[i].push(r[i])):t[i]=r[i];if(t.disabled||t["aria-disabled"])return Object.assign(t,Object.fromEntries(Object.keys(n).map(r=>[r,void 0])));for(let r in n)Object.assign(t,{[r](i,...a){let o=n[r];for(let l of o){if((i instanceof Event||(i==null?void 0:i.nativeEvent)instanceof Event)&&i.defaultPrevented)return;l(i,...a)}}});return t}function Au(e){var t;return Object.assign(E.forwardRef(e),{displayName:(t=e.displayName)!=null?t:e.name})}function tF(e){let t=Object.assign({},e);for(let n in t)t[n]===void 0&&delete t[n];return t}function uK(e,t=[]){let n=Object.assign({},e);for(let r of t)r in n&&delete n[r];return n}let d4e="div";var kU=(e=>(e[e.None=1]="None",e[e.Focusable=2]="Focusable",e[e.Hidden=4]="Hidden",e))(kU||{});function p4e(e,t){var n;let{features:r=1,...i}=e,a={ref:t,"aria-hidden":(r&2)===2?!0:(n=i["aria-hidden"])!=null?n:void 0,hidden:(r&4)===4?!0:void 0,style:{position:"fixed",top:1,left:1,width:1,height:0,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0",...(r&4)===4&&(r&2)!==2&&{display:"none"}}};return Lc({ourProps:a,theirProps:i,slot:{},defaultTag:d4e,name:"Hidden"})}let g4e=Au(p4e),v9=E.createContext(null);v9.displayName="OpenClosedContext";var Oa=(e=>(e[e.Open=1]="Open",e[e.Closed=2]="Closed",e[e.Closing=4]="Closing",e[e.Opening=8]="Opening",e))(Oa||{});function K9(){return E.useContext(v9)}function DU({value:e,children:t}){return ct.createElement(v9.Provider,{value:e},t)}function h4e(e){let t=e.parentElement,n=null;for(;t&&!(t instanceof HTMLFieldSetElement);)t instanceof HTMLLegendElement&&(n=t),t=t.parentElement;let r=(t==null?void 0:t.getAttribute("disabled"))==="";return r&&f4e(n)?!1:r}function f4e(e){if(!e)return!1;let t=e.previousElementSibling;for(;t!==null;){if(t instanceof HTMLLegendElement)return!1;t=t.previousElementSibling}return!0}function m4e(e){throw new Error("Unexpected object: "+e)}var wa=(e=>(e[e.First=0]="First",e[e.Previous=1]="Previous",e[e.Next=2]="Next",e[e.Last=3]="Last",e[e.Specific=4]="Specific",e[e.Nothing=5]="Nothing",e))(wa||{});function A4e(e,t){let n=t.resolveItems();if(n.length<=0)return null;let r=t.resolveActiveIndex(),i=r??-1;switch(e.focus){case 0:{for(let a=0;a=0;--a)if(!t.resolveDisabled(n[a],a,n))return a;return r}case 2:{for(let a=i+1;a=0;--a)if(!t.resolveDisabled(n[a],a,n))return a;return r}case 4:{for(let a=0;a(e.Space=" ",e.Enter="Enter",e.Escape="Escape",e.Backspace="Backspace",e.Delete="Delete",e.ArrowLeft="ArrowLeft",e.ArrowUp="ArrowUp",e.ArrowRight="ArrowRight",e.ArrowDown="ArrowDown",e.Home="Home",e.End="End",e.PageUp="PageUp",e.PageDown="PageDown",e.Tab="Tab",e))(ni||{});function Q9(){let e=E.useRef(!1);return ro(()=>(e.current=!0,()=>{e.current=!1}),[]),e}let WD=/([\u2700-\u27BF]|[\uE000-\uF8FF]|\uD83C[\uDC00-\uDFFF]|\uD83D[\uDC00-\uDFFF]|[\u2011-\u26FF]|\uD83E[\uDD10-\uDDFF])/g;function yD(e){var t,n;let r=(t=e.innerText)!=null?t:"",i=e.cloneNode(!0);if(!(i instanceof HTMLElement))return r;let a=!1;for(let l of i.querySelectorAll('[hidden],[aria-hidden],[role="img"]'))l.remove(),a=!0;let o=a?(n=i.innerText)!=null?n:"":r;return WD.test(o)&&(o=o.replace(WD,"")),o}function C4e(e){let t=e.getAttribute("aria-label");if(typeof t=="string")return t.trim();let n=e.getAttribute("aria-labelledby");if(n){let r=n.split(" ").map(i=>{let a=document.getElementById(i);if(a){let o=a.getAttribute("aria-label");return typeof o=="string"?o.trim():yD(a).trim()}return null}).filter(Boolean);if(r.length>0)return r.join(", ")}return yD(e).trim()}function B4e(e){let t=E.useRef(""),n=E.useRef("");return Rn(()=>{let r=e.current;if(!r)return"";let i=r.innerText;if(t.current===i)return n.current;let a=C4e(r).trim().toLowerCase();return t.current=i,n.current=a,a})}var w4e=(e=>(e[e.Open=0]="Open",e[e.Closed=1]="Closed",e))(w4e||{}),b4e=(e=>(e[e.Single=0]="Single",e[e.Multi=1]="Multi",e))(b4e||{}),v4e=(e=>(e[e.Pointer=0]="Pointer",e[e.Other=1]="Other",e))(v4e||{}),K4e=(e=>(e[e.OpenListbox=0]="OpenListbox",e[e.CloseListbox=1]="CloseListbox",e[e.GoToOption=2]="GoToOption",e[e.Search=3]="Search",e[e.ClearSearch=4]="ClearSearch",e[e.RegisterOption=5]="RegisterOption",e[e.UnregisterOption=6]="UnregisterOption",e[e.RegisterLabel=7]="RegisterLabel",e))(K4e||{});function cK(e,t=n=>n){let n=e.activeOptionIndex!==null?e.options[e.activeOptionIndex]:null,r=t4e(t(e.options.slice()),a=>a.dataRef.current.domRef.current),i=n?r.indexOf(n):null;return i===-1&&(i=null),{options:r,activeOptionIndex:i}}let Q4e={1(e){return e.dataRef.current.disabled||e.listboxState===1?e:{...e,activeOptionIndex:null,listboxState:1}},0(e){if(e.dataRef.current.disabled||e.listboxState===0)return e;let t=e.activeOptionIndex,{isSelected:n}=e.dataRef.current,r=e.options.findIndex(i=>n(i.dataRef.current.value));return r!==-1&&(t=r),{...e,listboxState:0,activeOptionIndex:t}},2(e,t){var n;if(e.dataRef.current.disabled||e.listboxState===1)return e;let r=cK(e),i=A4e(t,{resolveItems:()=>r.options,resolveActiveIndex:()=>r.activeOptionIndex,resolveId:a=>a.id,resolveDisabled:a=>a.dataRef.current.disabled});return{...e,...r,searchQuery:"",activeOptionIndex:i,activationTrigger:(n=t.trigger)!=null?n:1}},3:(e,t)=>{if(e.dataRef.current.disabled||e.listboxState===1)return e;let n=e.searchQuery!==""?0:1,r=e.searchQuery+t.value.toLowerCase(),i=(e.activeOptionIndex!==null?e.options.slice(e.activeOptionIndex+n).concat(e.options.slice(0,e.activeOptionIndex+n)):e.options).find(o=>{var l;return!o.dataRef.current.disabled&&((l=o.dataRef.current.textValue)==null?void 0:l.startsWith(r))}),a=i?e.options.indexOf(i):-1;return a===-1||a===e.activeOptionIndex?{...e,searchQuery:r}:{...e,searchQuery:r,activeOptionIndex:a,activationTrigger:1}},4(e){return e.dataRef.current.disabled||e.listboxState===1||e.searchQuery===""?e:{...e,searchQuery:""}},5:(e,t)=>{let n={id:t.id,dataRef:t.dataRef},r=cK(e,i=>[...i,n]);return e.activeOptionIndex===null&&e.dataRef.current.isSelected(t.dataRef.current.value)&&(r.activeOptionIndex=r.options.indexOf(n)),{...e,...r}},6:(e,t)=>{let n=cK(e,r=>{let i=r.findIndex(a=>a.id===t.id);return i!==-1&&r.splice(i,1),r});return{...e,...n,activationTrigger:1}},7:(e,t)=>({...e,labelId:t.id})},W9=E.createContext(null);W9.displayName="ListboxActionsContext";function om(e){let t=E.useContext(W9);if(t===null){let n=new Error(`<${e} /> is missing a parent component.`);throw Error.captureStackTrace&&Error.captureStackTrace(n,om),n}return t}let y9=E.createContext(null);y9.displayName="ListboxDataContext";function lm(e){let t=E.useContext(y9);if(t===null){let n=new Error(`<${e} /> is missing a parent component.`);throw Error.captureStackTrace&&Error.captureStackTrace(n,lm),n}return t}function W4e(e,t){return bi(t.type,Q4e,e,t)}let y4e=E.Fragment;function F4e(e,t){let{value:n,defaultValue:r,form:i,name:a,onChange:o,by:l=(ue,fe)=>ue===fe,disabled:s=!1,horizontal:u=!1,multiple:c=!1,...d}=e;const g=u?"horizontal":"vertical";let h=gd(t),[m=c?[]:void 0,A]=zBe(n,o,r),[B,C]=E.useReducer(W4e,{dataRef:E.createRef(),listboxState:1,options:[],searchQuery:"",labelId:null,activeOptionIndex:null,activationTrigger:1}),b=E.useRef({static:!1,hold:!1}),Q=E.useRef(null),F=E.useRef(null),K=E.useRef(null),y=Rn(typeof l=="string"?(ue,fe)=>{let _=l;return(ue==null?void 0:ue[_])===(fe==null?void 0:fe[_])}:l),G=E.useCallback(ue=>bi(X.mode,{1:()=>m.some(fe=>y(fe,ue)),0:()=>y(m,ue)}),[m]),X=E.useMemo(()=>({...B,value:m,disabled:s,mode:c?1:0,orientation:g,compare:y,isSelected:G,optionsPropsRef:b,labelRef:Q,buttonRef:F,optionsRef:K}),[m,s,c,B]);ro(()=>{B.dataRef.current=X},[X]),o4e([X.buttonRef,X.optionsRef],(ue,fe)=>{var _;C({type:1}),xU(fe,b9.Loose)||(ue.preventDefault(),(_=X.buttonRef.current)==null||_.focus())},X.listboxState===0);let H=E.useMemo(()=>({open:X.listboxState===0,disabled:s,value:m}),[X,s,m]),v=Rn(ue=>{let fe=X.options.find(_=>_.id===ue);fe&&J(fe.dataRef.current.value)}),k=Rn(()=>{if(X.activeOptionIndex!==null){let{dataRef:ue,id:fe}=X.options[X.activeOptionIndex];J(ue.current.value),C({type:2,focus:wa.Specific,id:fe})}}),D=Rn(()=>C({type:0})),V=Rn(()=>C({type:1})),z=Rn((ue,fe,_)=>ue===wa.Specific?C({type:2,focus:wa.Specific,id:fe,trigger:_}):C({type:2,focus:ue,trigger:_})),j=Rn((ue,fe)=>(C({type:5,id:ue,dataRef:fe}),()=>C({type:6,id:ue}))),te=Rn(ue=>(C({type:7,id:ue}),()=>C({type:7,id:null}))),J=Rn(ue=>bi(X.mode,{0(){return A==null?void 0:A(ue)},1(){let fe=X.value.slice(),_=fe.findIndex(Ze=>y(Ze,ue));return _===-1?fe.push(ue):fe.splice(_,1),A==null?void 0:A(fe)}})),I=Rn(ue=>C({type:3,value:ue})),se=Rn(()=>C({type:4})),Z=E.useMemo(()=>({onChange:J,registerOption:j,registerLabel:te,goToOption:z,closeListbox:V,openListbox:D,selectActiveOption:k,selectOption:v,search:I,clearSearch:se}),[]),S={ref:h},q=E.useRef(null),T=w1();return E.useEffect(()=>{q.current&&r!==void 0&&T.addEventListener(q.current,"reset",()=>{A==null||A(r)})},[q,A]),ct.createElement(W9.Provider,{value:Z},ct.createElement(y9.Provider,{value:X},ct.createElement(DU,{value:bi(X.listboxState,{0:Oa.Open,1:Oa.Closed})},a!=null&&m!=null&&NU({[a]:m}).map(([ue,fe],_)=>ct.createElement(g4e,{features:kU.Hidden,ref:_===0?Ze=>{var ve;q.current=(ve=Ze==null?void 0:Ze.closest("form"))!=null?ve:null}:void 0,...tF({key:ue,as:"input",type:"hidden",hidden:!0,readOnly:!0,form:i,disabled:s,name:ue,value:fe})})),Lc({ourProps:S,theirProps:d,slot:H,defaultTag:y4e,name:"Listbox"}))))}let E4e="button";function R4e(e,t){var n;let r=h3(),{id:i=`headlessui-listbox-button-${r}`,...a}=e,o=lm("Listbox.Button"),l=om("Listbox.Button"),s=gd(o.buttonRef,t),u=w1(),c=Rn(B=>{switch(B.key){case ni.Space:case ni.Enter:case ni.ArrowDown:B.preventDefault(),l.openListbox(),u.nextFrame(()=>{o.value||l.goToOption(wa.First)});break;case ni.ArrowUp:B.preventDefault(),l.openListbox(),u.nextFrame(()=>{o.value||l.goToOption(wa.Last)});break}}),d=Rn(B=>{switch(B.key){case ni.Space:B.preventDefault();break}}),g=Rn(B=>{if(h4e(B.currentTarget))return B.preventDefault();o.listboxState===0?(l.closeListbox(),u.nextFrame(()=>{var C;return(C=o.buttonRef.current)==null?void 0:C.focus({preventScroll:!0})})):(B.preventDefault(),l.openListbox())}),h=RU(()=>{if(o.labelId)return[o.labelId,i].join(" ")},[o.labelId,i]),m=E.useMemo(()=>({open:o.listboxState===0,disabled:o.disabled,value:o.value}),[o]),A={ref:s,id:i,type:l4e(e,o.buttonRef),"aria-haspopup":"listbox","aria-controls":(n=o.optionsRef.current)==null?void 0:n.id,"aria-expanded":o.listboxState===0,"aria-labelledby":h,disabled:o.disabled,onKeyDown:c,onKeyUp:d,onClick:g};return Lc({ourProps:A,theirProps:a,slot:m,defaultTag:E4e,name:"Listbox.Button"})}let S4e="label";function x4e(e,t){let n=h3(),{id:r=`headlessui-listbox-label-${n}`,...i}=e,a=lm("Listbox.Label"),o=om("Listbox.Label"),l=gd(a.labelRef,t);ro(()=>o.registerLabel(r),[r]);let s=Rn(()=>{var c;return(c=a.buttonRef.current)==null?void 0:c.focus({preventScroll:!0})}),u=E.useMemo(()=>({open:a.listboxState===0,disabled:a.disabled}),[a]);return Lc({ourProps:{ref:l,id:r,onClick:s},theirProps:i,slot:u,defaultTag:S4e,name:"Listbox.Label"})}let G4e="ul",k4e=SB.RenderStrategy|SB.Static;function D4e(e,t){var n;let r=h3(),{id:i=`headlessui-listbox-options-${r}`,...a}=e,o=lm("Listbox.Options"),l=om("Listbox.Options"),s=gd(o.optionsRef,t),u=w1(),c=w1(),d=K9(),g=(()=>d!==null?(d&Oa.Open)===Oa.Open:o.listboxState===0)();E.useEffect(()=>{var C;let b=o.optionsRef.current;b&&o.listboxState===0&&b!==((C=SU(b))==null?void 0:C.activeElement)&&b.focus({preventScroll:!0})},[o.listboxState,o.optionsRef]);let h=Rn(C=>{switch(c.dispose(),C.key){case ni.Space:if(o.searchQuery!=="")return C.preventDefault(),C.stopPropagation(),l.search(C.key);case ni.Enter:if(C.preventDefault(),C.stopPropagation(),o.activeOptionIndex!==null){let{dataRef:b}=o.options[o.activeOptionIndex];l.onChange(b.current.value)}o.mode===0&&(l.closeListbox(),Rc().nextFrame(()=>{var b;return(b=o.buttonRef.current)==null?void 0:b.focus({preventScroll:!0})}));break;case bi(o.orientation,{vertical:ni.ArrowDown,horizontal:ni.ArrowRight}):return C.preventDefault(),C.stopPropagation(),l.goToOption(wa.Next);case bi(o.orientation,{vertical:ni.ArrowUp,horizontal:ni.ArrowLeft}):return C.preventDefault(),C.stopPropagation(),l.goToOption(wa.Previous);case ni.Home:case ni.PageUp:return C.preventDefault(),C.stopPropagation(),l.goToOption(wa.First);case ni.End:case ni.PageDown:return C.preventDefault(),C.stopPropagation(),l.goToOption(wa.Last);case ni.Escape:return C.preventDefault(),C.stopPropagation(),l.closeListbox(),u.nextFrame(()=>{var b;return(b=o.buttonRef.current)==null?void 0:b.focus({preventScroll:!0})});case ni.Tab:C.preventDefault(),C.stopPropagation();break;default:C.key.length===1&&(l.search(C.key),c.setTimeout(()=>l.clearSearch(),350));break}}),m=RU(()=>{var C;return(C=o.buttonRef.current)==null?void 0:C.id},[o.buttonRef.current]),A=E.useMemo(()=>({open:o.listboxState===0}),[o]),B={"aria-activedescendant":o.activeOptionIndex===null||(n=o.options[o.activeOptionIndex])==null?void 0:n.id,"aria-multiselectable":o.mode===1?!0:void 0,"aria-labelledby":m,"aria-orientation":o.orientation,id:i,onKeyDown:h,role:"listbox",tabIndex:0,ref:s};return Lc({ourProps:B,theirProps:a,slot:A,defaultTag:G4e,features:k4e,visible:g,name:"Listbox.Options"})}let N4e="li";function Z4e(e,t){let n=h3(),{id:r=`headlessui-listbox-option-${n}`,disabled:i=!1,value:a,...o}=e,l=lm("Listbox.Option"),s=om("Listbox.Option"),u=l.activeOptionIndex!==null?l.options[l.activeOptionIndex].id===r:!1,c=l.isSelected(a),d=E.useRef(null),g=B4e(d),h=as({disabled:i,value:a,domRef:d,get textValue(){return g()}}),m=gd(t,d);ro(()=>{if(l.listboxState!==0||!u||l.activationTrigger===0)return;let y=Rc();return y.requestAnimationFrame(()=>{var G,X;(X=(G=d.current)==null?void 0:G.scrollIntoView)==null||X.call(G,{block:"nearest"})}),y.dispose},[d,u,l.listboxState,l.activationTrigger,l.activeOptionIndex]),ro(()=>s.registerOption(r,h),[h,r]);let A=Rn(y=>{if(i)return y.preventDefault();s.onChange(a),l.mode===0&&(s.closeListbox(),Rc().nextFrame(()=>{var G;return(G=l.buttonRef.current)==null?void 0:G.focus({preventScroll:!0})}))}),B=Rn(()=>{if(i)return s.goToOption(wa.Nothing);s.goToOption(wa.Specific,r)}),C=u4e(),b=Rn(y=>C.update(y)),Q=Rn(y=>{C.wasMoved(y)&&(i||u||s.goToOption(wa.Specific,r,0))}),F=Rn(y=>{C.wasMoved(y)&&(i||u&&s.goToOption(wa.Nothing))}),K=E.useMemo(()=>({active:u,selected:c,disabled:i}),[u,c,i]);return Lc({ourProps:{id:r,ref:m,role:"option",tabIndex:i===!0?void 0:-1,"aria-disabled":i===!0?!0:void 0,"aria-selected":c,disabled:void 0,onClick:A,onFocus:B,onPointerEnter:b,onMouseEnter:b,onPointerMove:Q,onMouseMove:Q,onPointerLeave:F,onMouseLeave:F},theirProps:o,slot:K,defaultTag:N4e,name:"Listbox.Option"})}let H4e=Au(F4e),X4e=Au(R4e),L4e=Au(x4e),M4e=Au(D4e),T4e=Au(Z4e),Mc=Object.assign(H4e,{Button:X4e,Label:L4e,Options:M4e,Option:T4e});function V4e(e=0){let[t,n]=E.useState(e),r=Q9(),i=E.useCallback(s=>{r.current&&n(u=>u|s)},[t,r]),a=E.useCallback(s=>!!(t&s),[t]),o=E.useCallback(s=>{r.current&&n(u=>u&~s)},[n,r]),l=E.useCallback(s=>{r.current&&n(u=>u^s)},[n]);return{flags:t,addFlag:i,hasFlag:a,removeFlag:o,toggleFlag:l}}function Y4e(e){let t={called:!1};return(...n)=>{if(!t.called)return t.called=!0,e(...n)}}function dK(e,...t){e&&t.length>0&&e.classList.add(...t)}function pK(e,...t){e&&t.length>0&&e.classList.remove(...t)}function I4e(e,t){let n=Rc();if(!e)return n.dispose;let{transitionDuration:r,transitionDelay:i}=getComputedStyle(e),[a,o]=[r,i].map(s=>{let[u=0]=s.split(",").filter(Boolean).map(c=>c.includes("ms")?parseFloat(c):parseFloat(c)*1e3).sort((c,d)=>d-c);return u}),l=a+o;if(l!==0){n.group(u=>{u.setTimeout(()=>{t(),u.dispose()},l),u.addEventListener(e,"transitionrun",c=>{c.target===c.currentTarget&&u.dispose()})});let s=n.addEventListener(e,"transitionend",u=>{u.target===u.currentTarget&&(t(),s())})}else t();return n.add(()=>t()),n.dispose}function U4e(e,t,n,r){let i=n?"enter":"leave",a=Rc(),o=r!==void 0?Y4e(r):()=>{};i==="enter"&&(e.removeAttribute("hidden"),e.style.display="");let l=bi(i,{enter:()=>t.enter,leave:()=>t.leave}),s=bi(i,{enter:()=>t.enterTo,leave:()=>t.leaveTo}),u=bi(i,{enter:()=>t.enterFrom,leave:()=>t.leaveFrom});return pK(e,...t.base,...t.enter,...t.enterTo,...t.enterFrom,...t.leave,...t.leaveFrom,...t.leaveTo,...t.entered),dK(e,...t.base,...l,...u),a.nextFrame(()=>{pK(e,...t.base,...l,...u),dK(e,...t.base,...l,...s),I4e(e,()=>(pK(e,...t.base,...l),dK(e,...t.base,...t.entered),o()))}),a.dispose}function O4e({immediate:e,container:t,direction:n,classes:r,onStart:i,onStop:a}){let o=Q9(),l=w1(),s=as(n);ro(()=>{e&&(s.current="enter")},[e]),ro(()=>{let u=Rc();l.add(u.dispose);let c=t.current;if(c&&s.current!=="idle"&&o.current)return u.dispose(),i.current(s.current),u.add(U4e(c,r.current,s.current==="enter",()=>{u.dispose(),a.current(s.current)})),u.dispose},[n])}function xu(e=""){return e.split(/\s+/).filter(t=>t.length>1)}let f3=E.createContext(null);f3.displayName="TransitionContext";var J4e=(e=>(e.Visible="visible",e.Hidden="hidden",e))(J4e||{});function z4e(){let e=E.useContext(f3);if(e===null)throw new Error("A is used but it is missing a parent or .");return e}function P4e(){let e=E.useContext(m3);if(e===null)throw new Error("A is used but it is missing a parent or .");return e}let m3=E.createContext(null);m3.displayName="NestingContext";function A3(e){return"children"in e?A3(e.children):e.current.filter(({el:t})=>t.current!==null).filter(({state:t})=>t==="visible").length>0}function XU(e,t){let n=as(e),r=E.useRef([]),i=Q9(),a=w1(),o=Rn((h,m=_u.Hidden)=>{let A=r.current.findIndex(({el:B})=>B===h);A!==-1&&(bi(m,{[_u.Unmount](){r.current.splice(A,1)},[_u.Hidden](){r.current[A].state="hidden"}}),a.microTask(()=>{var B;!A3(r)&&i.current&&((B=n.current)==null||B.call(n))}))}),l=Rn(h=>{let m=r.current.find(({el:A})=>A===h);return m?m.state!=="visible"&&(m.state="visible"):r.current.push({el:h,state:"visible"}),()=>o(h,_u.Unmount)}),s=E.useRef([]),u=E.useRef(Promise.resolve()),c=E.useRef({enter:[],leave:[],idle:[]}),d=Rn((h,m,A)=>{s.current.splice(0),t&&(t.chains.current[m]=t.chains.current[m].filter(([B])=>B!==h)),t==null||t.chains.current[m].push([h,new Promise(B=>{s.current.push(B)})]),t==null||t.chains.current[m].push([h,new Promise(B=>{Promise.all(c.current[m].map(([C,b])=>b)).then(()=>B())})]),m==="enter"?u.current=u.current.then(()=>t==null?void 0:t.wait.current).then(()=>A(m)):A(m)}),g=Rn((h,m,A)=>{Promise.all(c.current[m].splice(0).map(([B,C])=>C)).then(()=>{var B;(B=s.current.shift())==null||B()}).then(()=>A(m))});return E.useMemo(()=>({children:r,register:l,unregister:o,onStart:d,onStop:g,wait:u,chains:c}),[l,o,r,d,g,c,u])}function j4e(){}let _4e=["beforeEnter","afterEnter","beforeLeave","afterLeave"];function FD(e){var t;let n={};for(let r of _4e)n[r]=(t=e[r])!=null?t:j4e;return n}function $4e(e){let t=E.useRef(FD(e));return E.useEffect(()=>{t.current=FD(e)},[e]),t}let q4e="div",LU=SB.RenderStrategy;function e3e(e,t){var n,r;let{beforeEnter:i,afterEnter:a,beforeLeave:o,afterLeave:l,enter:s,enterFrom:u,enterTo:c,entered:d,leave:g,leaveFrom:h,leaveTo:m,...A}=e,B=E.useRef(null),C=gd(B,t),b=(n=A.unmount)==null||n?_u.Unmount:_u.Hidden,{show:Q,appear:F,initial:K}=z4e(),[y,G]=E.useState(Q?"visible":"hidden"),X=P4e(),{register:H,unregister:v}=X;E.useEffect(()=>H(B),[H,B]),E.useEffect(()=>{if(b===_u.Hidden&&B.current){if(Q&&y!=="visible"){G("visible");return}return bi(y,{hidden:()=>v(B),visible:()=>H(B)})}},[y,B,H,v,Q,b]);let k=as({base:xu(A.className),enter:xu(s),enterFrom:xu(u),enterTo:xu(c),entered:xu(d),leave:xu(g),leaveFrom:xu(h),leaveTo:xu(m)}),D=$4e({beforeEnter:i,afterEnter:a,beforeLeave:o,afterLeave:l}),V=w9();E.useEffect(()=>{if(V&&y==="visible"&&B.current===null)throw new Error("Did you forget to passthrough the `ref` to the actual DOM node?")},[B,y,V]);let z=K&&!F,j=F&&Q&&K,te=(()=>!V||z?"idle":Q?"enter":"leave")(),J=V4e(0),I=Rn(ue=>bi(ue,{enter:()=>{J.addFlag(Oa.Opening),D.current.beforeEnter()},leave:()=>{J.addFlag(Oa.Closing),D.current.beforeLeave()},idle:()=>{}})),se=Rn(ue=>bi(ue,{enter:()=>{J.removeFlag(Oa.Opening),D.current.afterEnter()},leave:()=>{J.removeFlag(Oa.Closing),D.current.afterLeave()},idle:()=>{}})),Z=XU(()=>{G("hidden"),v(B)},X),S=E.useRef(!1);O4e({immediate:j,container:B,classes:k,direction:te,onStart:as(ue=>{S.current=!0,Z.onStart(B,ue,I)}),onStop:as(ue=>{S.current=!1,Z.onStop(B,ue,se),ue==="leave"&&!A3(Z)&&(G("hidden"),v(B))})});let q=A,T={ref:C};return j?q={...q,className:RB(A.className,...k.current.enter,...k.current.enterFrom)}:S.current&&(q.className=RB(A.className,(r=B.current)==null?void 0:r.className),q.className===""&&delete q.className),ct.createElement(m3.Provider,{value:Z},ct.createElement(DU,{value:bi(y,{visible:Oa.Open,hidden:Oa.Closed})|J.flags},Lc({ourProps:T,theirProps:q,defaultTag:q4e,features:LU,visible:y==="visible",name:"Transition.Child"})))}function t3e(e,t){let{show:n,appear:r=!1,unmount:i=!0,...a}=e,o=E.useRef(null),l=gd(o,t);w9();let s=K9();if(n===void 0&&s!==null&&(n=(s&Oa.Open)===Oa.Open),![!0,!1].includes(n))throw new Error("A is used but it is missing a `show={true | false}` prop.");let[u,c]=E.useState(n?"visible":"hidden"),d=XU(()=>{c("hidden")}),[g,h]=E.useState(!0),m=E.useRef([n]);ro(()=>{g!==!1&&m.current[m.current.length-1]!==n&&(m.current.push(n),h(!1))},[m,n]);let A=E.useMemo(()=>({show:n,appear:r,initial:g}),[n,r,g]);E.useEffect(()=>{if(n)c("visible");else if(!A3(d))c("hidden");else{let Q=o.current;if(!Q)return;let F=Q.getBoundingClientRect();F.x===0&&F.y===0&&F.width===0&&F.height===0&&c("hidden")}},[n,d]);let B={unmount:i},C=Rn(()=>{var Q;g&&h(!1),(Q=e.beforeEnter)==null||Q.call(e)}),b=Rn(()=>{var Q;g&&h(!1),(Q=e.beforeLeave)==null||Q.call(e)});return ct.createElement(m3.Provider,{value:d},ct.createElement(f3.Provider,{value:A},Lc({ourProps:{...B,as:E.Fragment,children:ct.createElement(MU,{ref:l,...B,...a,beforeEnter:C,beforeLeave:b})},theirProps:{},defaultTag:E.Fragment,features:LU,visible:u==="visible",name:"Transition"})))}function n3e(e,t){let n=E.useContext(f3)!==null,r=K9()!==null;return ct.createElement(ct.Fragment,null,!n&&r?ct.createElement(nF,{ref:t,...e}):ct.createElement(MU,{ref:t,...e}))}let nF=Au(t3e),MU=Au(e3e),r3e=Au(n3e),F9=Object.assign(nF,{Child:r3e,Root:nF});const TU=Ve(Mc)` + background-color: ${Gn}; +`,VU=Ve(Mc.Button)` + cursor: pointer; + background-color: ${Gn}; + text-align: left; -Sure! Here's the code you requested: -\`\`\`{{{language}}} -`,DVI=`### System Prompt -You are an expert programmer and write code on the first attempt without any errors or fillers. + padding-left: 0.75rem; + padding-right: 2.5rem; + padding-top: 0.5rem; + padding-bottom: 0.5rem; -### User Message: -Rewrite the code to satisfy this request: "{{{userInput}}}" + border-radius: 0.5em; + border: 1px solid ${WY}; -\`\`\`{{{language}}} -{{{codeToEdit}}} -\`\`\` + margin: 0; + height: 100%; + width: 100%; -### Assistant: -Sure! Here's the code you requested: - -\`\`\`{{{language}}} -`,OVI=`### System Prompt -You are an AI programming assistant, utilizing the DeepSeek Coder model, developed by DeepSeek Company, and you only answer questions related to computer science. For politically sensitive questions, security and privacy issues, and other non-computer science questions, you will refuse to answer. -### Instruction: -Rewrite the code to satisfy this request: "{{{userInput}}}" - -\`\`\`{{{language}}} -{{{codeToEdit}}} -\`\`\`<|EOT|> -### Response: -Sure! Here's the code you requested: - -\`\`\`{{{language}}} -`,PVI=`<|system|> -You are an expert programmer and write code on the first attempt without any errors or fillers. -<|user|> -Rewrite the code to satisfy this request: "{{{userInput}}}" - -\`\`\`{{{language}}} -{{{codeToEdit}}} -\`\`\` -<|assistant|> -Sure! Here's the code you requested: - -\`\`\`{{{language}}} -`,_VI="GPT4 Correct User: You are an expert programmer and personal assistant. You are asked to rewrite the following code in order to {{{userInput}}}.\n```{{{language}}}\n{{{codeToEdit}}}\n```\nPlease only respond with code and put it inside of a markdown code block. Do not give any explanation, but your code should perfectly satisfy the user request.<|end_of_turn|>GPT4 Correct Assistant: Sure thing! Here is the rewritten code that you requested:\n```{{{language}}}\n",qVI=': You are an AI coding assistant that helps people with programming. Write a response that appropriately completes the user\'s request.\n: Please rewrite the following code with these instructions: "{{{userInput}}}"\n```{{{language}}}\n{{{codeToEdit}}}\n```\n\nJust rewrite the code without explanations:\n:\n```{{{language}}}',$VI=`### System: -You are an expert programmer and write code on the first attempt without any errors or fillers. -### User: -Rewrite the code to satisfy this request: "{{{userInput}}}" - -\`\`\`{{{language}}} -{{{codeToEdit}}} -\`\`\` -### Assistant: -Sure! Here's the code you requested: + position: relative; -\`\`\`{{{language}}} -`,IiI=`Source: system + display: grid; + grid-template-columns: 1fr auto; + align-items: center; - You are an expert programmer and write code on the first attempt without any errors or fillers. Source: user + color: ${rn}; - Rewrite the code to satisfy this request: "{{{userInput}}}" + &:focus { + outline: none; + } -\`\`\`{{{language}}} -{{{codeToEdit}}} -\`\`\` Source: assistant -Destination: user + &:hover { + background-color: ${yn}; + } +`,YU=Ve(Mc.Options)` + background-color: ${yn}; + padding: 0; - `,liI=(I,l)=>[{role:"user",content:`\`\`\`${l.language} -${l.codeToEdit} -\`\`\` + position: absolute; + top: 100%; + left: 0; + right: 0; -You are an expert programmer. You will rewrite the above code to do the following: + margin-top: 0.25rem; -${l.userInput} + max-height: 15rem; + overflow: auto; -Output only a code block with the rewritten code: -`},{role:"assistant",content:`Sure! Here is the rewritten code: -\`\`\`${l.language}`}],ciI=`user -You are an expert programmer and write code on the first attempt without any errors or fillers. Rewrite the code to satisfy this request: "{{{userInput}}}" + border-radius: ${jt}; + overflow-y: scroll; + z-index: 10; -\`\`\`{{{language}}} -{{{codeToEdit}}} -\`\`\` -model -Sure! Here's the code you requested: + &:focus { + outline: none; + } +`,IU=Ve(Mc.Option)` + background-color: ${({selected:e})=>e?g1:yn}; + cursor: pointer; + padding: 6px 8px; -\`\`\`{{{language}}} -`,GiI=["lmstudio","openai","ollama","together","anthropic","bedrock"],eiI=["openai","ollama","google-palm","free-trial","anthropic","bedrock"];function qV(I,l){return eiI.includes(I)?!!(l.includes("llava")||l.includes("claude-3")||["gpt-4-vision-preview"].includes(l)||l==="gemini-ultra"&&(I==="google-palm"||I==="free-trial")):!1}function qu(I){const l=I.toLowerCase();if(l.includes("codellama")&&l.includes("70b"))return"codellama-70b";if(!(l.includes("gpt")||l.includes("chat-bison")||l.includes("pplx")||l.includes("gemini")))return l.includes("llava")?"llava":l.includes("tinyllama")?"zephyr":l.includes("xwin")?"xwin-coder":l.includes("dolphin")?"chatml":l.includes("gemma")?"gemma":l.includes("phi2")?"phi2":l.includes("phind")?"phind":l.includes("llama")?"llama2":l.includes("zephyr")?"zephyr":l.includes("claude")?"none":l.includes("alpaca")||l.includes("wizard")?"alpaca":l.includes("mistral")||l.includes("mixtral")?"llama2":l.includes("deepseek")?"deepseek":l.includes("ninja")||l.includes("openchat")?"openchat":l.includes("neural-chat")?"neural-chat":"chatml"}function Hk(I,l,c=void 0){if(c===void 0&&GiI.includes(l))return null;const G=c??qu(I);return G?{llama2:gVI,alpaca:kVI,phi2:zVI,phind:UVI,zephyr:JVI,anthropic:AVI,chatml:BVI,deepseek:xVI,openchat:CVI,"xwin-coder":MVI,"neural-chat":fVI,llava:yVI,"codellama-70b":KVI,gemma:LVI,none:null}[G]:null}const diI=["alpaca","chatml","deepseek","gemma","llama2","llava","neural-chat","openchat","phi2","phind","xwin-coder","zephyr"];function tiI(I,l=void 0){const c=l??qu(I),G={};let e=null;return c&&diI.includes(c)?e=Xk:c==="phind"?e=DVI:c==="phi2"?e=SVI:c==="zephyr"?e=PVI:c==="llama2"?I.includes("mistral")?e=TVI:e=Xk:c==="alpaca"?e=jVI:c==="deepseek"?e=OVI:c==="openchat"?e=_VI:c==="xwin-coder"?e=qVI:c==="neural-chat"?e=$VI:c==="codellama-70b"?e=IiI:c==="anthropic"?e=liI:c==="gemma"?e=ciI:c&&(e=Lj),e!==null&&(G.edit=e),G}let DY=null;function Sj(I){const l=qu(I);return!l||l==="none"?(DY||(DY=iVI("gpt-4")),DY):mG}function niI(I){if(I.type==="imageUrl")return 85;throw new Error("Non-image content type")}function it(I,l="llama2"){const c=Sj(l);return Array.isArray(I)?I.reduce((G,e)=>G+e.type==="imageUrl"?niI(e):c.encode(e.text??"","all",[]).length,0):c.encode(I,"all",[]).length}function biI(I){const l=[];for(let c=0;c0&&l[l.length-1].role===G.role?l[l.length-1].content+=` + display: flex; + gap: 8px; + align-items: center; -`+(G.content||""):l.push(G)}return l}function Ne(I){return Array.isArray(I)?I.filter(l=>l.type==="text").map(l=>l.text).join(` -`):I}function aiI(I,l){return it(l.content,I)+4}function Tj(I,l,c){const G=Sj(I),e=G.encode(c,"all",[]);return e.length<=l?c:G.decode(e.slice(e.length-l))}function Qw(I,l,c,G){const e=l-G-bw;return Tj(I,e,c)}function wo(I){return Array.isArray(I)?Ne(I).substring(0,100)+"...":I.substring(0,100)+"..."}function ZiI(I,l,c,G){let e=G+l.reduce((a,Z)=>a+aiI(I,Z),0);const d=[...l];d.sort((a,Z)=>Z.content.length-a.content.length);const t=d.filter(a=>it(a.content,I)>c/3),n=t.map(a=>it(a.content,I)-c/3);for(let a=0;ac&&b5&&e>c&&l.length>0;){const a=l.shift();e-=it(a.content,I)}for(b=0;e>c&&l.length>0&&bc&&l.length>1;){const a=l.shift();e-=it(a.content,I)}if(e>c&&l.length>0){const a=l[0];a.content=Qw(I,c,Ne(a.content),G),e=c}return l}function WiI(I,l=void 0,c,G,e,d=void 0,t=void 0,n=void 0){const b=l?l.map(m=>({...m})).filter(m=>m.content!==""):[];if(d){const m={role:"user",content:d};b.push(m)}if(n&&n.trim()!==""){const m={role:"system",content:n};b.splice(-1,0,m)}let a=0;if(t)for(const m of t)a+=it(JSON.stringify(m),I);if(G+a+bw>=c)throw new Error(`maxTokens (${G}) is too close to contextLength (${c}), which doesn't leave room for response. Try increasing the contextLength parameter of the model in your config.json.`);if(!e){for(const m of b)if("content"in m&&Array.isArray(m.content)){const s=Ne(m.content);m.content=s}}const Z=ZiI(I,b,c,a+G+bw);if(n&&Z.length>=2&&Z[Z.length-2].role==="system"){const m=Z.splice(-2,1)[0];Z.unshift(m)}return biI(Z)}const riI={history:[],contextItems:[],active:!1,config:{slashCommands:[{name:"edit",description:"Edit selected code"},{name:"comment",description:"Write comments for the selected code"},{name:"share",description:"Download and share this session"},{name:"cmd",description:"Generate a shell command"}],contextProviders:[],models:[{title:"GPT-4 Vision (Free Trial)",provider:"free-trial",model:"gpt-4-vision-preview"},{title:"GPT-3.5-Turbo (Free Trial)",provider:"free-trial",model:"gpt-3.5-turbo"},{title:"Gemini Pro (Free Trial)",provider:"free-trial",model:"gemini-pro"},{title:"Codellama 70b (Free Trial)",provider:"free-trial",model:"codellama-70b"},{title:"Mixtral (Free Trial)",provider:"free-trial",model:"mistral-8x7b"},{title:"Claude 3 Sonnet (Free Trial)",provider:"free-trial",model:"claude-3-sonnet-20240229"}]},title:"New Session",sessionId:cb(),defaultModelTitle:"GPT-4"},jj=yh({name:"state",initialState:riI,reducers:{setConfig:(I,{payload:l})=>{var G;const c=((G=l.models.find(e=>e.title===I.defaultModelTitle))==null?void 0:G.title)||l.models[0].title;I.config=l,I.defaultModelTitle=c},addPromptCompletionPair:(I,{payload:l})=>{if(!I.history.length)return;const c=I.history[I.history.length-1];c.promptLogs=c.promptLogs?c.promptLogs.concat(l):l},setActive:I=>{I.active=!0},setContextItemsAtIndex:(I,{payload:{index:l,contextItems:c}})=>{I.history[l]&&(I.history[l].contextItems=c)},setEditingContextItemAtIndex:(I,{payload:{index:l,item:c}})=>{var G;if(l===void 0){const e=((G=I.contextItems[0])==null?void 0:G.id.itemId)===c.id.itemId;I.contextItems=e?[]:[{...c,editing:!0}];return}},addContextItems:(I,l)=>{I.contextItems=I.contextItems.concat(l.payload)},resubmitAtIndex:(I,{payload:l})=>{const c=I.history[l.index];c&&(c.message.content="",c.editorState=l.editorState,I.history=I.history.slice(0,l.index+1).concat({message:{role:"assistant",content:""},contextItems:[]}),I.active=!0)},initNewActiveMessage:(I,{payload:l})=>{I.history.push({message:{role:"user",content:""},contextItems:I.contextItems,editorState:l.editorState}),I.history.push({message:{role:"assistant",content:""},contextItems:[]}),I.active=!0},setMessageAtIndex:(I,{payload:l})=>{if(l.index>=I.history.length){I.history.push({message:l.message,editorState:{type:"doc",content:Ne(l.message.content).split(` -`).map(c=>({type:"paragraph",content:c===""?[]:[{type:"text",text:c}]}))},contextItems:[]});return}I.history[l.index].message=l.message,I.history[l.index].contextItems=l.contextItems||[]},addContextItemsAtIndex:(I,{payload:l})=>{const c=I.history[l.index];c&&c.contextItems.push(...l.contextItems)},setInactive:I=>{I.active=!1},streamUpdate:(I,l)=>{I.history.length&&(I.history[I.history.length-1].message.content+=l.payload)},newSession:(I,{payload:l})=>{l?(I.history=l.history,I.title=l.title,I.sessionId=l.sessionId):(I.history=[],I.contextItems=[],I.active=!1,I.title="New Session",I.sessionId=cb())},deleteContextWithIds:(I,{payload:l})=>{const c=e=>`${e.providerTitle}-${e.itemId}`,G=new Set(l.ids.map(c));l.index===void 0?I.contextItems=I.contextItems.filter(e=>!G.has(c(e.id))):I.history[l.index].contextItems=I.history[l.index].contextItems.filter(e=>!G.has(c(e.id)))},addHighlightedCode:(I,{payload:l})=>{let c=[...I.contextItems].map(d=>({...d,editing:!1}));const G=l.rangeInFileWithContents.filepath.split(/[\\/]/).pop();for(let d=0;dparseInt(s)-1);if(n>Z||b{const c=l.ids.map(G=>G.itemId);return typeof l.index>"u"?{...I,contextItems:I.contextItems.map(G=>({...G,editing:c.includes(G.id.itemId)}))}:{...I,history:I.history.map((G,e)=>e===l.index?{...G,contextItems:G.contextItems.map(d=>({...d,editing:c.includes(d.id.itemId)}))}:G)}},setDefaultModel:(I,{payload:l})=>{if(I.config.models.find(G=>G.title===l))return{...I,defaultModelTitle:l}}}}),{setContextItemsAtIndex:Qbl,addContextItems:wbl,addContextItemsAtIndex:miI,setInactive:$u,streamUpdate:Qk,newSession:zh,deleteContextWithIds:Ebl,resubmitAtIndex:siI,addHighlightedCode:vbl,setEditingAtIds:gbl,setDefaultModel:Ih,setConfig:uiI,addPromptCompletionPair:hiI,setActive:Abl,setEditingContextItemAtIndex:Dj,initNewActiveMessage:piI,setMessageAtIndex:Oj}=jj.actions,oiI=jj.reducer,ViI=LI.div` + &:hover { + background-color: ${g1}; + color: ${$f}; + } +`;function ED({selectedProvider:e,setSelectedProvider:t,options:n}){return W.jsx(TU,{value:e,onChange:t,children:W.jsxs("div",{className:"relative mt-1",children:[W.jsxs(VU,{children:[W.jsxs("span",{className:"flex items-center",children:[window.vscMediaUrl&&e.icon&&W.jsx("img",{src:`${window.vscMediaUrl}/logos/${e.icon}`,height:"24px",style:{marginRight:"10px"}}),W.jsx("span",{className:"text-md",children:e.title})]}),W.jsx("span",{className:"pointer-events-none absolute inset-y-0 right-0 flex items-center pr-2",children:W.jsx(BE,{className:"h-5 w-5 text-gray-400","aria-hidden":"true"})})]}),W.jsx(F9,{as:E.Fragment,leave:"transition ease-in duration-100",leaveFrom:"opacity-100",leaveTo:"opacity-0",children:W.jsx(YU,{children:n.map((r,i)=>W.jsx(IU,{selected:e.title===r.title,className:({active:a})=>`relative cursor-default select-none py-2 pl-10 pr-4 ${a?"bg-amber-100 text-amber-900":"text-gray-900"}`,value:r,children:({selected:a})=>W.jsxs(W.Fragment,{children:[window.vscMediaUrl&&r.icon&&W.jsx("img",{src:`${window.vscMediaUrl}/logos/${r.icon}`,height:"24px",style:{marginRight:"10px"}}),W.jsx("span",{className:"text-md",children:r.title}),a?W.jsx("span",{className:"inset-y-0 ml-auto flex items-center pl-3 text-amber-600",children:W.jsx(Z1,{className:"h-5 w-5","aria-hidden":"true"})}):null]})},i))})})]})})}function UU(e){var c;const[t,n]=E.useState(Ac.openai),[r,i]=E.useState(t.packages[0]),a=B9(),o=Zr(),l=E.useContext(Zn);E.useEffect(()=>{i(t.packages[0])},[t]);const[s,u]=E.useState(!1);return W.jsx(m9,{...a,children:W.jsxs("div",{className:"p-4",children:[!e.hideFreeTrialLimitMessage&&QI()&&W.jsxs("p",{className:"text-sm text-gray-500",children:["You've reached the free trial limit of ",dd," ","free inputs. To keep using Continue, you can either use your own API key, or use a local LLM. To read more about the options, see our"," ",W.jsx("a",{href:"https://docs.continue.dev/setup/overview",target:"_blank",onClick:()=>l.post("openUrl","https://docs.continue.dev/setup/overview"),children:"documentation"}),"."]}),W.jsx("h4",{children:"1. Select a provider"}),W.jsx(ED,{selectedProvider:t,setSelectedProvider:n,options:Object.entries(Ac).filter(([d])=>!["freetrial","openai-aiohttp"].includes(d)).map(([,d])=>d)}),W.jsx("h4",{children:"2. Select a model"}),W.jsx(ED,{selectedProvider:r,setSelectedProvider:i,options:(c=Object.entries(Ac).find(([,d])=>d.title===t.title))==null?void 0:c[1].packages}),t.apiKeyUrl&&W.jsxs(W.Fragment,{children:[W.jsx("h4",{children:"3. Paste your API key"}),r.params.model.startsWith("codestral")&&W.jsx("i",{children:"Note: Codestral requires a different API key from other Mistral models"}),W.jsx(h1,{className:"w-full border-2 border-solid",onClick:()=>{let d=t.apiKeyUrl;r.params.model.startsWith("codestral")&&(d="https://console.mistral.ai/codestral"),l.post("openUrl",d)},children:"Get API Key"}),W.jsx(Cl,{id:"apiKey",className:"w-full",placeholder:"Enter API Key",...a.register("apiKey",{required:!0})})]}),t.downloadUrl&&W.jsxs(W.Fragment,{children:[W.jsxs("h4",{children:["3. Download ",t.title]}),W.jsxs(h1,{className:"w-full border-2 border-solid",onClick:()=>{l.post("openUrl",t.downloadUrl)},children:["Download ",t.title]})]}),W.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[W.jsx(Ea,{disabled:t.apiKeyUrl&&!a.watch("apiKey"),onClick:()=>{const d={...t.params,...r.params,provider:t.provider,apiKey:a.watch("apiKey"),title:r.title};l.post("config/addModel",{model:d}),o(B1({title:d.title,force:!0})),u(!0)},className:"w-full",children:"Add Model"}),W.jsx(Ea,{onClick:e.onDone,className:"w-full",disabled:!s,children:"Done"})]})]})})}const i3e=Ve.div` + width: 100px; + height: 6px; + border-radius: 6px; + border: 0.5px solid ${rt}; + margin-top: 6px; +`,a3e=Ve.div` + height: 100%; + background-color: ${e=>e.color||rn}; + border-radius: inherit; + transition: width 0.2s ease-in-out; + width: ${e=>e.completed}%; +`,o3e=Ve.div` + display: grid; + grid-template-rows: 1fr auto; + align-items: center; + justify-items: center; + cursor: pointer; +`,l3e=Ve.p` + margin: 0; + margin-top: 2px; + font-size: ${nr()-2.5}px; + color: ${rt}; + text-align: center; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +`,s3e=({completed:e,total:t})=>{const n=Zr(),r=Hr(),i=Math.min(100,Math.max(0,e/t*100)),a=document.getElementById("tooltip-portal-div");return W.jsxs(W.Fragment,{children:[W.jsxs(o3e,{"data-tooltip-id":"usage_progress_bar",onClick:()=>{n(Ql(!0)),n(Ec(W.jsx(UU,{onDone:()=>{n(Ql(!1)),r("/")}})))},children:[W.jsx(i3e,{children:W.jsx(a3e,{completed:i,color:e/t>.75?e/t>.9?"#f00":"#fc0":void 0})}),W.jsxs(l3e,{children:["Free Uses: ",e," / ",t]})]}),a&&Al.createPortal(W.jsx(pc,{id:"usage_progress_bar",place:"top",children:`Click to use your own API key or local LLM (required after ${dd} inputs)`}),a)]})},u3e=Ve.div` display: grid; grid-template-columns: 1fr 1fr; grid-gap: 8px; align-items: center; -`;function iiI(I){const l=ne();return v.jsxs("div",{className:"p-4",children:[v.jsx("h3",{children:"Confirmation"}),v.jsx("p",{children:I.text}),v.jsxs(ViI,{children:[v.jsx(xt,{onClick:()=>{var c;(c=I.onCancel)==null||c.call(I),l(hn(!1)),l(RW(void 0))},children:"Cancel"}),v.jsx(xt,{onClick:()=>{I.onConfirm(),l(hn(!1)),l(RW(void 0))},children:"Confirm"})]})]})}const FiI=LI.div` +`;function OU(e){const t=Zr();return W.jsxs("div",{className:"p-4",children:[W.jsx("h3",{children:"Confirmation"}),W.jsx("p",{children:e.text}),W.jsxs(u3e,{children:[W.jsx(h1,{onClick:()=>{var n;(n=e.onCancel)==null||n.call(e),t(Ql(!1)),t(Ec(void 0))},children:"Cancel"}),W.jsx(Ea,{onClick:()=>{e.onConfirm(),t(Ql(!1)),t(Ec(void 0))},children:"Confirm"})]})]})}const c3e=Ve.div` display: grid; grid-template-columns: 1fr auto; align-items: center; - border: 0.5px solid ${ul}; - border-radius: ${Pl}; + border: 0.5px solid ${rt}; + border-radius: ${jt}; overflow: hidden; -`,NiI=LI(ug)` - background-color: ${fc}; +`,d3e=Ve(bE)` + background-color: ${Gn}; cursor: pointer; margin: 0px; padding-left: 4px; @@ -627,17 +560,17 @@ Sure! Here's the code you requested: height: 100%; &:hover { - background-color: ${Mc}; + background-color: ${yn}; } - border-left: 0.5px solid ${ul}; -`,RiI=LI(dN)` - background-color: ${fc}; + border-left: 0.5px solid ${rt}; +`,p3e=Ve(Mc)` + background-color: ${Gn}; padding: 0; min-width: 80px; -`,YiI=LI(dN.Button)` +`,g3e=Ve(Mc.Button)` position: relative; cursor: pointer; - background-color: ${fc}; + background-color: ${Gn}; text-align: left; border: none; margin: 0; @@ -651,7 +584,7 @@ Sure! Here's the code you requested: grid-template-columns: 1fr auto; align-items: center; - color: ${ec}; + color: ${rn}; padding: 4px 8px; @@ -660,10 +593,10 @@ Sure! Here's the code you requested: } &:hover { - background-color: ${Mc}; + background-color: ${yn}; } -`,XiI=LI(dN.Options)` - background-color: ${Mc}; +`,h3e=Ve(Mc.Options)` + background-color: ${yn}; padding: 0; position: absolute; @@ -671,53 +604,36 @@ Sure! Here's the code you requested: max-width: 100%; max-height: 80vh; - border-radius: ${Pl}; + border-radius: ${jt}; overflow-y: scroll; -`,HiI=LI(dN.Option)` - background-color: ${({selected:I})=>I?UV:Mc}; +`,f3e=Ve(Mc.Option)` + background-color: ${({selected:e})=>e?g1:yn}; cursor: pointer; padding: 6px 8px; &:hover { - background-color: ${UV}; - color: ${qF}; + background-color: ${g1}; + color: ${$f}; } -`;function QiI({option:I,idx:l,showDelete:c}){const G=ne(),[e,d]=E.useState(!1);return v.jsx(HiI,{selected:I.value===JSON.stringify({t:"default",idx:-1}),value:I.value,onMouseEnter:()=>{d(!0)},onMouseLeave:()=>{d(!1)},children:v.jsxs("div",{className:"flex items-center justify-between gap-3 h-5 relative",children:[v.jsx("span",{children:I.title}),e&&c&&v.jsx(le,{text:"Delete",onClick:t=>{G(hn(!0)),G(RW(v.jsx(iiI,{text:`Are you sure you want to delete this model? (${I.title})`,onConfirm:()=>{Yc("config/deleteModel",{title:I.title})}}))),t.stopPropagation(),t.preventDefault()},style:{backgroundColor:Mc},className:"absolute right-0 p-1",children:v.jsx(hg,{width:"1.2em",height:"1.2em"})})]})},l)}function wk(I){return I!=null&&I.title?I==null?void 0:I.title:(I==null?void 0:I.model)!==void 0&&(I==null?void 0:I.model.trim())!==""?I!=null&&I.class_name?`${I==null?void 0:I.class_name} - ${I==null?void 0:I.model}`:I==null?void 0:I.model:I==null?void 0:I.class_name}function wiI(I){const l=ne(),c=Nc(Ir),G=Nc(b=>b.state.config.models),e=Be(),[d,t]=E.useState([]);E.useEffect(()=>{t(G.map(b=>({value:b.title,title:wk(b)})))},[G]);const n=document.getElementById("model-select-top-div");return E.useEffect(()=>{const b=a=>{if(a.key==="'"&&gh(a)){const Z=a.shiftKey?-1:1;let m=(d.findIndex(s=>s.value===(c==null?void 0:c.title))+1*Z)%d.length;m<0&&(m=d.length-1),l(Ih(d[m].value))}};return window.addEventListener("keydown",b),()=>{window.removeEventListener("keydown",b)}},[d,c]),v.jsx(v.Fragment,{children:v.jsxs(FiI,{children:[v.jsx(RiI,{value:"GPT-4",onChange:b=>{b!==(c==null?void 0:c.title)&&l(Ih(b))},defaultValue:"GPT-4",children:v.jsxs("div",{className:"relative",children:[v.jsxs(YiI,{children:[v.jsx("div",{children:wk(c)}),v.jsx("div",{className:"pointer-events-none flex items-center",children:v.jsx(eWI,{className:"h-5 w-5 text-gray-400","aria-hidden":"true"})})]}),n&&fb.createPortal(v.jsx(q2I,{as:E.Fragment,leave:"transition ease-in duration-100",leaveFrom:"opacity-100",leaveTo:"opacity-0",children:v.jsxs(XiI,{children:[d.map((b,a)=>v.jsx(QiI,{option:b,idx:a,showDelete:d.length>1},a)),d.length===0&&v.jsx("i",{children:"No models found"}),v.jsxs("i",{className:"text-xs ml-2",style:{color:ul},children:[zV(),"' to toggle"]})]})}),n)]})}),v.jsx(NiI,{width:"1.3em",height:"1.3em",onClick:()=>{e("/models")}})]})})}const EiI="1.8em",viI=LI.div` +`;function m3e({option:e,idx:t,showDelete:n}){const r=E.useContext(Zn),i=Zr(),[a,o]=E.useState(!1);return W.jsx(f3e,{selected:e.value===JSON.stringify({t:"default",idx:-1}),value:e.value,onMouseEnter:()=>{o(!0)},onMouseLeave:()=>{o(!1)},children:W.jsxs("div",{className:"flex items-center justify-between gap-3 h-5 relative",children:[W.jsx("span",{children:e.title}),a&&n&&W.jsx(Vr,{text:void 0,onClick:l=>{i(Ql(!0)),i(Ec(W.jsx(OU,{text:`Are you sure you want to delete this model? (${e.title})`,onConfirm:()=>{r.post("config/deleteModel",{title:e.title})}}))),l.stopPropagation(),l.preventDefault()},backgroundColor:yn,hoverBackgroundColor:Gn,className:"absolute right-0 p-1",children:W.jsx($C,{width:"1.2em",height:"1.2em"})})]})},t)}function RD(e){return e!=null&&e.title?e==null?void 0:e.title:(e==null?void 0:e.model)!==void 0&&(e==null?void 0:e.model.trim())!==""?e!=null&&e.class_name?`${e==null?void 0:e.class_name} - ${e==null?void 0:e.model}`:e==null?void 0:e.model:e==null?void 0:e.class_name}function A3e(e){const t=Zr(),n=en(cd),r=en(s=>s.state.config.models),i=Hr(),[a,o]=E.useState([]);E.useEffect(()=>{o(r.map(s=>({value:s.title,title:RD(s)})))},[r]);const l=document.getElementById("model-select-top-div");return E.useEffect(()=>{const s=u=>{if(u.key==="'"&&_f(u)){const c=u.shiftKey?-1:1;let g=(a.findIndex(h=>h.value===(n==null?void 0:n.title))+1*c)%a.length;g<0&&(g=a.length-1),t(B1({title:a[g].value}))}};return window.addEventListener("keydown",s),()=>{window.removeEventListener("keydown",s)}},[a,n]),W.jsx(W.Fragment,{children:W.jsxs(c3e,{children:[W.jsx(p3e,{value:"GPT-4",onChange:s=>{s!==(n==null?void 0:n.title)&&t(B1({title:s}))},defaultValue:"GPT-4",children:W.jsxs("div",{className:"relative",children:[W.jsxs(g3e,{children:[W.jsx("div",{children:RD(n)}),W.jsx("div",{className:"pointer-events-none flex items-center",children:W.jsx(BE,{className:"h-5 w-5 text-gray-400","aria-hidden":"true"})})]}),l&&Al.createPortal(W.jsx(F9,{as:E.Fragment,leave:"transition ease-in duration-100",leaveFrom:"opacity-100",leaveTo:"opacity-0",children:W.jsxs(h3e,{children:[a.map((s,u)=>W.jsx(m3e,{option:s,idx:u,showDelete:a.length>1},u)),a.length===0&&W.jsx("i",{children:"No models found"}),W.jsxs("i",{className:"text-xs ml-2",style:{color:rt},children:[aB(),"' to toggle"]})]})}),l)]})}),W.jsx(d3e,{width:"1.3em",height:"1.3em",onClick:()=>{i("/addModel")}})]})})}function C3e(){const{pathname:e}=Hc(),[t]=Nce(),n=qf();return E.useEffect(()=>{if(e&&n){let r=window.origin+e;t.toString()&&(r=r+`?${t.toString()}`),n.capture("$pageview",{$current_url:r})}},[e,t,n]),null}const B3e="1.8em",w3e=Ve(w1e)` height: 100%; - border-radius: ${Pl}; - scrollbar-base-color: transparent; - scrollbar-width: thin; - background-color: ${fc}; - - & * { - ::-webkit-scrollbar { - width: 4px; - } - - ::-webkit-scrollbar:horizontal { - height: 4px; - } - - ::-webkit-scrollbar-thumb { - border-radius: 2px; - } - } -`,giI=LI.div` + border-radius: ${jt}; +`,b3e=Ve.div` position: fixed; - bottom: ${I=>I.displayOnBottom?"50px":void 0}; - top: ${I=>I.displayOnBottom?void 0:"50px"}; + bottom: ${e=>e.displayOnBottom?"50px":void 0}; + top: ${e=>e.displayOnBottom?void 0:"50px"}; left: 0; right: 0; margin: 8px; margin-top: 0; - background-color: ${Mc}; - color: ${ec}; - border-radius: ${Pl}; + background-color: ${yn}; + color: ${rn}; + border-radius: ${jt}; padding: 12px; z-index: 100; - box-shadow: 0px 0px 2px 0px ${ec}; + box-shadow: 0px 0px 2px 0px ${rn}; max-height: 35vh; -`,AiI=LI.footer` +`,v3e=Ve.footer` display: flex; flex-direction: row; gap: 8px; @@ -725,261 +641,184 @@ Sure! Here's the code you requested: padding: 8px; align-items: center; width: calc(100% - 16px); - height: ${EiI}; + height: ${B3e}; background-color: transparent; backdrop-filter: blur(12px); overflow: hidden; -`,yiI=LI.div` +`,K3e=Ve.div` display: grid; grid-template-rows: 1fr auto; height: 100vh; overflow-x: visible; -`,JiI=LI.div` - background-color: ${Mc}; +`,Q3e=Ve.div` + background-color: ${yn}; position: relative; margin-left: 8px; z-index: 200; - font-size: ${Fn()}; -`,BiI=()=>{const I=Be(),l=TF(),c=ne(),G=Nc(s=>s.uiState.dialogMessage),e=Nc(s=>s.uiState.showDialog),d=Nc(Ir),t=Nc(s=>s.uiState.bottomMessage),n=Nc(s=>s.uiState.displayBottomMessageOnBottom),b=Nc(s=>s.state.history);E.useEffect(()=>{const s=h=>{var p;if(gh(h)&&h.code==="KeyC"){const V=(p=window.getSelection())==null?void 0:p.toString();V&&setTimeout(()=>{navigator.clipboard.writeText(V)},100)}};return window.addEventListener("keydown",s),()=>{window.removeEventListener("keydown",s)}},[b]),sG("addModel",async()=>{I("/models")},[I]),sG("openSettings",async()=>{Yc("openConfigJson",void 0)}),sG("viewHistory",async()=>{l.pathname==="/history"?I("/"):I("/history")},[l,I]),sG("indexProgress",async s=>{Z(s.progress),m(s.desc)}),E.useEffect(()=>{!sw("onboardingComplete")&&!l.pathname.startsWith("/onboarding")&&!l.pathname.startsWith("/existingUserOnboarding")&&(sw("mainTextEntryCounter")?I("/existingUserOnboarding"):I("/onboarding"))},[l]);const[a,Z]=E.useState(1),[W,m]=E.useState("Indexing Codebase");return v.jsxs(viI,{children:[v.jsxs("div",{style:{scrollbarGutter:"stable both-edges",minHeight:"100%",display:"grid",gridTemplateRows:"1fr auto"},children:[v.jsx(woI,{showDialog:e,onEnter:()=>{c(hn(!1))},onClose:()=>{c(hn(!1))},message:G}),v.jsxs(yiI,{children:[v.jsx(aZI,{}),v.jsx(JiI,{id:"model-select-top-div"}),v.jsxs(AiI,{children:[v.jsxs("div",{className:"mr-auto flex gap-2 items-center",children:[v.jsx(wiI,{}),a>=1&&(d==null?void 0:d.provider)==="free-trial"&&(l.pathname==="/settings"||parseInt(localStorage.getItem("ftc")||"0")>=125)&&v.jsx(zoI,{completed:parseInt(localStorage.getItem("ftc")||"0"),total:250}),$W()||v.jsx(yoI,{currentlyIndexing:W,completed:a*100,total:100})]}),v.jsx(le,{text:"Help",onClick:()=>{I("/help")},children:v.jsx(lrI,{width:"1.4em",height:"1.4em"})}),v.jsx(le,{onClick:()=>{Yc("openConfigJson",void 0)},text:"Configure Continue",children:v.jsx(MS,{width:"1.4em",height:"1.4em"})})]})]}),v.jsx(giI,{displayOnBottom:n,onMouseEnter:()=>{c(IsI(void 0))},onMouseLeave:s=>{s.buttons||c($0I(void 0))},hidden:!t,children:t})]}),v.jsx("div",{className:"text-sm",id:"tooltip-portal-div"})]})},Pj=yh({name:"config",initialState:{vscMachineId:window.vscMachineId},reducers:{setVscMachineId:(I,l)=>{I.vscMachineId=l.payload}}}),{setVscMachineId:kiI}=Pj.actions,xiI=Pj.reducer;function ziI(I){const l=[];for(let c=0;c({type:"text",text:t.content+` -`})),...e],l.push({role:G.message.role,content:e})}return l}function Ek(I,l){var c=Object.keys(I);if(Object.getOwnPropertySymbols){var G=Object.getOwnPropertySymbols(I);l&&(G=G.filter(function(e){return Object.getOwnPropertyDescriptor(I,e).enumerable})),c.push.apply(c,G)}return c}function El(I){for(var l=1;l=0||(Z[b]=t[b]);return Z}(I,l);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(I);for(G=0;G=0||Object.prototype.propertyIsEnumerable.call(I,c)&&(e[c]=I[c])}return e}function Te(I,l){return function(c){if(Array.isArray(c))return c}(I)||function(c,G){var e=c==null?null:typeof Symbol<"u"&&c[Symbol.iterator]||c["@@iterator"];if(e!=null){var d,t,n=[],b=!0,a=!1;try{for(e=e.call(c);!(b=(d=e.next()).done)&&(n.push(d.value),!G||n.length!==G);b=!0);}catch(Z){a=!0,t=Z}finally{try{b||e.return==null||e.return()}finally{if(a)throw t}}return n}}(I,l)||dA(I,l)||function(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}()}function $m(I){return function(l){if(Array.isArray(l))return ww(l)}(I)||function(l){if(typeof Symbol<"u"&&l[Symbol.iterator]!=null||l["@@iterator"]!=null)return Array.from(l)}(I)||dA(I)||function(){throw new TypeError(`Invalid attempt to spread non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}()}function dA(I,l){if(I){if(typeof I=="string")return ww(I,l);var c=Object.prototype.toString.call(I).slice(8,-1);return c==="Object"&&I.constructor&&(c=I.constructor.name),c==="Map"||c==="Set"?Array.from(I):c==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(c)?ww(I,l):void 0}}function ww(I,l){(l==null||l>I.length)&&(l=I.length);for(var c=0,G=new Array(l);c=I.length?{done:!0}:{done:!1,value:I[G++]}},e:function(b){throw b},f:e}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var d,t=!0,n=!1;return{s:function(){c=c.call(I)},n:function(){var b=c.next();return t=b.done,b},e:function(b){n=!0,d=b},f:function(){try{t||c.return==null||c.return()}finally{if(n)throw d}}}}var WW={DEBUG:!1,LIB_VERSION:"1.116.6"},CiI=Array.isArray,_j=Object.prototype,qj=_j.hasOwnProperty,ZN=_j.toString,$G=CiI||function(I){return ZN.call(I)==="[object Array]"},mn=function(I){return typeof I=="function"},Kn=function(I){return I===Object(I)&&!$G(I)},Rc=function(I){return I===void 0},je=function(I){return ZN.call(I)=="[object String]"},eb=function(I){return I===null},GZ=function(I){return Rc(I)||eb(I)},Mn=function(I){return ZN.call(I)=="[object Number]"},Ew=function(I){return ZN.call(I)==="[object Boolean]"},MiI=function(I){return I instanceof FormData},vI=typeof window<"u"?window:void 0,od=typeof globalThis<"u"?globalThis:vI,$j=Array.prototype,gk=$j.forEach,Ak=$j.indexOf,ch=od==null?void 0:od.navigator,Rl=od==null?void 0:od.document,Qa=od==null?void 0:od.location,tA=od==null?void 0:od.fetch,nA=od!=null&&od.XMLHttpRequest&&"withCredentials"in new od.XMLHttpRequest?od.XMLHttpRequest:void 0,yk=od==null?void 0:od.AbortController,XG=ch==null?void 0:ch.userAgent,Bn=vI??{},Jk="[PostHog.js]",rl={_log:function(I){if(vI&&(WW.DEBUG||Bn.POSTHOG_DEBUG)&&!Rc(vI.console)&&vI.console){for(var l=("__rrweb_original__"in vI.console[I])?vI.console[I].__rrweb_original__:vI.console[I],c=arguments.length,G=new Array(c>1?c-1:0),e=1;e1?l-1:0),G=1;G0&&(l[G]=c)}),l};function fiI(I,l){return c=I,G=function(d){return je(d)&&!eb(l)?d.slice(0,l):d},e=new Set,function d(t,n){return t!==Object(t)?G?G(t,n):t:e.has(t)?void 0:(e.add(t),$G(t)?(b=[],Em(t,function(a){b.push(d(a))})):(b={},Bc(t,function(a,Z){e.has(a)||(b[Z]=d(a,Z))})),b);var b}(c);var c,G,e}var KiI=function(I){var l,c,G,e,d="";for(l=c=0,G=(I=(I+"").replace(/\r\n/g,` -`).replace(/\r/g,` -`)).length,e=0;e127&&t<2048?String.fromCharCode(t>>6|192,63&t|128):String.fromCharCode(t>>12|224,t>>6&63|128,63&t|128),eb(n)||(c>l&&(d+=I.substring(l,c)),d+=n,l=c=e+1)}return c>l&&(d+=I.substring(l,I.length)),d},cW=function(){function I(l){return l&&(l.preventDefault=I.preventDefault,l.stopPropagation=I.stopPropagation),l}return I.preventDefault=function(){this.returnValue=!1},I.stopPropagation=function(){this.cancelBubble=!0},function(l,c,G,e,d){if(l)if(l.addEventListener&&!e)l.addEventListener(c,G,!!d);else{var t="on"+c,n=l[t];l[t]=function(b,a,Z){return function(W){if(W=W||I(vI==null?void 0:vI.event)){var m,s=!0;mn(Z)&&(m=Z(W));var h=a.call(b,W);return m!==!1&&h!==!1||(s=!1),s}}}(l,G,n)}else rl.error("No valid element provided to register_event")}}();function bu(I,l){var c=function(){if(!Rl)return l("document not found");var G=Rl.createElement("script");G.type="text/javascript",G.src=I,G.onload=function(t){return l(void 0,t)},G.onerror=function(t){return l(t)};var e,d=Rl.querySelectorAll("body > script");d.length>0?(e=d[0].parentNode)===null||e===void 0||e.insertBefore(G,d[0]):Rl.body.appendChild(G)};Rl!=null&&Rl.body?c():Rl==null||Rl.addEventListener("DOMContentLoaded",c)}function bA(I){return I?WN(I).split(/\s+/):[]}function Ii(I){var l="";switch(lh(I.className)){case"string":l=I.className;break;case"object":l=("baseVal"in I.className?I.className.baseVal:null)||I.getAttribute("class")||"";break;default:l=""}return bA(l)}function cD(I){return GZ(I)?null:WN(I).split(/(\s+)/).filter(function(l){return rW(l)}).join("").replace(/[\r\n]/g," ").replace(/[ ]+/g," ").substring(0,255)}function li(I){var l="";return L2(I)&&!dD(I)&&I.childNodes&&I.childNodes.length&&Bc(I.childNodes,function(c){var G;GD(c)&&c.textContent&&(l+=(G=cD(c.textContent))!==null&&G!==void 0?G:"")}),WN(l)}function aA(I){return!!I&&I.nodeType===1}function XW(I,l){return!!I&&!!I.tagName&&I.tagName.toLowerCase()===l.toLowerCase()}function GD(I){return!!I&&I.nodeType===3}function eD(I){return!!I&&I.nodeType===11}var gw=["a","button","form","input","select","textarea","label"];function LiI(I){var l=I.parentNode;return!(!l||!aA(l))&&l}function SiI(I,l){var c=arguments.length>2&&arguments[2]!==void 0?arguments[2]:void 0,G=arguments.length>3?arguments[3]:void 0,e=arguments.length>4?arguments[4]:void 0;if(!vI||!I||XW(I,"html")||!aA(I))return!1;if(c!=null&&c.url_allowlist){var d=vI.location.href,t=c.url_allowlist;if(t&&!t.some(function(p){return d.match(p)}))return!1}if(c!=null&&c.dom_event_allowlist){var n=c.dom_event_allowlist;if(n&&!n.some(function(p){return l.type===p}))return!1}for(var b=!1,a=[I],Z=!0,W=I;W.parentNode&&!XW(W,"body");)if(eD(W.parentNode))a.push(W.parentNode.host),W=W.parentNode.host;else{if(!(Z=LiI(W)))break;if(G||gw.indexOf(Z.tagName.toLowerCase())>-1)b=!0;else{var m=vI.getComputedStyle(Z);m&&m.getPropertyValue("cursor")==="pointer"&&(b=!0)}a.push(Z),W=Z}if(!function(p,V){var o=V==null?void 0:V.element_allowlist;if(Rc(o))return!0;var F,X=qb(p);try{var H=function(){var R=F.value;if(o.some(function(B){return R.tagName.toLowerCase()===B}))return{v:!0}};for(X.s();!(F=X.n()).done;){var Y=H();if(lh(Y)==="object")return Y.v}}catch(R){X.e(R)}finally{X.f()}return!1}(a,c)||!function(p,V){var o=V==null?void 0:V.css_selector_allowlist;if(Rc(o))return!0;var F,X=qb(p);try{var H=function(){var R=F.value;if(o.some(function(B){return R.matches(B)}))return{v:!0}};for(X.s();!(F=X.n()).done;){var Y=H();if(lh(Y)==="object")return Y.v}}catch(R){X.e(R)}finally{X.f()}return!1}(a,c))return!1;var s=vI.getComputedStyle(I);if(s&&s.getPropertyValue("cursor")==="pointer"&&l.type==="click")return!0;var h=I.tagName.toLowerCase();switch(h){case"html":return!1;case"form":return(e||["submit"]).indexOf(l.type)>=0;case"input":case"select":case"textarea":return(e||["change","click"]).indexOf(l.type)>=0;default:return b?(e||["click"]).indexOf(l.type)>=0:(e||["click"]).indexOf(l.type)>=0&&(gw.indexOf(h)>-1||I.getAttribute("contenteditable")==="true")}}function L2(I){for(var l=I;l.parentNode&&!XW(l,"body");l=l.parentNode){var c=Ii(l);if(Xc(c,"ph-sensitive")||Xc(c,"ph-no-capture"))return!1}if(Xc(Ii(I),"ph-include"))return!0;var G=I.type||"";if(je(G))switch(G.toLowerCase()){case"hidden":case"password":return!1}var e=I.name||I.id||"";return!(je(e)&&/^cc|cardnum|ccnum|creditcard|csc|cvc|cvv|exp|pass|pwd|routing|seccode|securitycode|securitynum|socialsec|socsec|ssn/i.test(e.replace(/[^a-zA-Z0-9]/g,"")))}function dD(I){return!!(XW(I,"input")&&!["button","checkbox","submit","reset"].includes(I.type)||XW(I,"select")||XW(I,"textarea")||I.getAttribute("contenteditable")==="true")}var tD="(4[0-9]{12}(?:[0-9]{3})?)|(5[1-5][0-9]{14})|(6(?:011|5[0-9]{2})[0-9]{12})|(3[47][0-9]{13})|(3(?:0[0-5]|[68][0-9])[0-9]{11})|((?:2131|1800|35[0-9]{3})[0-9]{11})",TiI=new RegExp("^(?:".concat(tD,")$")),jiI=new RegExp(tD),nD="\\d{3}-?\\d{2}-?\\d{4}",DiI=new RegExp("^(".concat(nD,")$")),OiI=new RegExp("(".concat(nD,")"));function rW(I){var l=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1];return!(GZ(I)||je(I)&&(I=WN(I),(l?TiI:jiI).test((I||"").replace(/[- ]/g,""))||(l?DiI:OiI).test(I)))}function kk(I){var l=li(I);return rW(l="".concat(l," ").concat(bD(I)).trim())?l:""}function bD(I){var l="";return I&&I.childNodes&&I.childNodes.length&&Bc(I.childNodes,function(c){var G;if(c&&((G=c.tagName)===null||G===void 0?void 0:G.toLowerCase())==="span")try{var e=li(c);l="".concat(l," ").concat(e).trim(),c.childNodes&&c.childNodes.length&&(l="".concat(l," ").concat(bD(c)).trim())}catch(d){rl.error(d)}}),l}function PiI(I){return function(l){var c=l.map(function(G){var e,d,t="";if(G.tag_name&&(t+=G.tag_name),G.attr_class){G.attr_class.sort();var n,b=qb(G.attr_class);try{for(b.s();!(n=b.n()).done;){var a=n.value;t+=".".concat(a.replace(/"/g,""))}}catch(m){b.e(m)}finally{b.f()}}var Z=El(El(El(El({},G.text?{text:G.text}:{}),{},{"nth-child":(e=G.nth_child)!==null&&e!==void 0?e:0,"nth-of-type":(d=G.nth_of_type)!==null&&d!==void 0?d:0},G.href?{href:G.href}:{}),G.attr_id?{attr_id:G.attr_id}:{}),G.attributes),W={};return K2(Z).sort(function(m,s){var h=Te(m,1)[0],p=Te(s,1)[0];return h.localeCompare(p)}).forEach(function(m){var s=Te(m,2),h=s[0],p=s[1];return W[xk(h.toString())]=xk(p.toString())}),t+=":",t+=K2(Z).map(function(m){var s=Te(m,2),h=s[0],p=s[1];return"".concat(h,'="').concat(p,'"')}).join("")});return c.join(";")}(function(l){return l.map(function(c){var G,e,d={text:(G=c.$el_text)===null||G===void 0?void 0:G.slice(0,400),tag_name:c.tag_name,href:(e=c.attr__href)===null||e===void 0?void 0:e.slice(0,2048),attr_class:_iI(c),attr_id:c.attr__id,nth_child:c.nth_child,nth_of_type:c.nth_of_type,attributes:{}};return K2(c).filter(function(t){return Te(t,1)[0].indexOf("attr__")===0}).forEach(function(t){var n=Te(t,2),b=n[0],a=n[1];return d.attributes[b]=a}),d})}(I))}function xk(I){return I.replace(/"|\\"/g,'\\"')}function _iI(I){var l=I.attr__class;return l?$G(l)?l:bA(l):void 0}var qiI=function(){function I(l){gG(this,I),this.clicks=[],this.enabled=l}return AG(I,[{key:"isRageClick",value:function(l,c,G){if(!this.enabled)return!1;var e=this.clicks[this.clicks.length-1];if(e&&Math.abs(l-e.x)+Math.abs(c-e.y)<30&&G-e.timestamp<1e3){if(this.clicks.push({x:l,y:c,timestamp:G}),this.clicks.length===3)return!0}else this.clicks=[{x:l,y:c,timestamp:G}];return!1}}]),I}(),aD="$people_distinct_id",S2="__alias",Cs="__timers",zk="$autocapture_disabled_server_side",Aw="$session_recording_enabled_server_side",Uk="$console_log_recording_enabled_server_side",Ck="$session_recording_network_payload_capture",Mk="$session_recording_canvas_recording",ci="$sesid",T2="$session_is_sampled",rm="$enabled_feature_flags",yw="$early_access_features",mm="$stored_person_properties",wa="$stored_group_properties",Jw="$surveys",Gi="$flag_call_reported",Bw="$user_state",kw="$posthog_quota_limited",xw="$client_session_props",$iI=[aD,S2,"__cmpns",Cs,Aw,ci,rm,Bw,kw,yw,wa,mm,Jw,Gi,xw],OY="$copy_autocapture";function PY(I,l){return l.length>I?l.slice(0,I)+"...":l}var nn,Ja={_initializedTokens:[],_isDisabledServerSide:null,_isAutocaptureEnabled:!1,_setIsAutocaptureEnabled:function(I){var l,c=eb(this._isDisabledServerSide)?!((l=I.persistence)===null||l===void 0||!l.props[zk]):this._isDisabledServerSide,G=!!I.config.autocapture;this._isAutocaptureEnabled=G&&!c},_previousElementSibling:function(I){if(I.previousElementSibling)return I.previousElementSibling;var l=I;do l=l.previousSibling;while(l&&!aA(l));return l},_getAugmentPropertiesFromElement:function(I){if(!L2(I))return{};var l={};return Bc(I.attributes,function(c){if(c.name.indexOf("data-ph-capture-attribute")===0){var G=c.name.replace("data-ph-capture-attribute-",""),e=c.value;G&&e&&rW(e)&&(l[G]=e)}}),l},_getPropertiesFromElement:function(I,l,c){var G,e=I.tagName.toLowerCase(),d={tag_name:e};gw.indexOf(e)>-1&&!c&&(e.toLowerCase()==="a"||e.toLowerCase()==="button"?d.$el_text=PY(1024,kk(I)):d.$el_text=PY(1024,li(I)));var t=Ii(I);t.length>0&&(d.classes=t.filter(function(W){return W!==""}));var n=(G=this.config)===null||G===void 0?void 0:G.element_attribute_ignorelist;Bc(I.attributes,function(W){var m;if((!dD(I)||["name","id","class"].indexOf(W.name)!==-1)&&(n==null||!n.includes(W.name))&&!l&&rW(W.value)&&(m=W.name,!je(m)||m.substring(0,10)!=="_ngcontent"&&m.substring(0,7)!=="_nghost")){var s=W.value;W.name==="class"&&(s=bA(s).join(" ")),d["attr__"+W.name]=PY(1024,s)}});for(var b=1,a=1,Z=I;Z=this._previousElementSibling(Z);)b++,Z.tagName===I.tagName&&a++;return d.nth_child=b,d.nth_of_type=a,d},_getDefaultProperties:function(I){return{$event_type:I,$ce_version:1}},_extractCustomPropertyValue:function(I){var l=[];return Bc(Rl==null?void 0:Rl.querySelectorAll(I.css_selector),function(c){var G;["input","select"].indexOf(c.tagName.toLowerCase())>-1?G=c.value:c.textContent&&(G=c.textContent),rW(G)&&l.push(G)}),l.join(", ")},_getCustomProperties:function(I){var l=this,c={};return Bc(this._customProperties,function(G){Bc(G.event_selectors,function(e){Bc(Rl==null?void 0:Rl.querySelectorAll(e),function(d){Xc(I,d)&&L2(d)&&(c[G.name]=l._extractCustomPropertyValue(G))})})}),c},_getEventTarget:function(I){return Rc(I.target)?I.srcElement||null:(l=I.target)!==null&&l!==void 0&&l.shadowRoot?I.composedPath()[0]||null:I.target||null;var l},_captureEvent:function(I,l){var c,G=this,e=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"$autocapture",d=arguments.length>3?arguments[3]:void 0,t=this._getEventTarget(I);GD(t)&&(t=t.parentNode||null),e==="$autocapture"&&I.type==="click"&&I instanceof MouseEvent&&(c=this.rageclicks)!==null&&c!==void 0&&c.isRageClick(I.clientX,I.clientY,new Date().getTime())&&this._captureEvent(I,l,"$rageclick");var n=e===OY;if(t&&SiI(t,I,this.config,n,n?["copy","cut"]:void 0)){for(var b,a,Z=[t],W=t;W.parentNode&&!XW(W,"body");)eD(W.parentNode)?(Z.push(W.parentNode.host),W=W.parentNode.host):(Z.push(W.parentNode),W=W.parentNode);var m,s=[],h={},p=!1;if(Bc(Z,function(H){var Y=L2(H);H.tagName.toLowerCase()==="a"&&(m=H.getAttribute("href"),m=Y&&rW(m)&&m),Xc(Ii(H),"ph-no-capture")&&(p=!0),s.push(G._getPropertiesFromElement(H,l.config.mask_all_element_attributes,l.config.mask_all_text));var R=G._getAugmentPropertiesFromElement(H);Ae(h,R)}),l.config.mask_all_text||(t.tagName.toLowerCase()==="a"||t.tagName.toLowerCase()==="button"?s[0].$el_text=kk(t):s[0].$el_text=li(t)),m&&(s[0].attr__href=m),p)return!1;var V=Ae(this._getDefaultProperties(I.type),l.elementsChainAsString?{$elements_chain:PiI(s)}:{$elements:s},(b=s[0])!==null&&b!==void 0&&b.$el_text?{$el_text:(a=s[0])===null||a===void 0?void 0:a.$el_text}:{},this._getCustomProperties(Z),h,d||{});if(e===OY){var o,F=cD(vI==null||(o=vI.getSelection())===null||o===void 0?void 0:o.toString()),X=I.type||"clipboard";if(!F)return!1;V.$selected_content=F,V.$copy_type=X}return l.capture(e,V),!0}},_navigate:function(I){vI&&(vI.location.href=I)},_addDomEventHandlers:function(I){var l=this;if(vI&&Rl){var c=function(e){e=e||(vI==null?void 0:vI.event),l._captureEvent(e,I)},G=function(e){e=e||(vI==null?void 0:vI.event),l._captureEvent(e,I,OY)};cW(Rl,"submit",c,!1,!0),cW(Rl,"change",c,!1,!0),cW(Rl,"click",c,!1,!0),Kn(I.config.autocapture)&&I.config.autocapture.capture_copied_text&&(cW(Rl,"copy",G,!1,!0),cW(Rl,"cut",G,!1,!0))}},_customProperties:[],rageclicks:null,config:void 0,init:function(I){var l;Ew(I.__autocapture)||(this.config=I.__autocapture),(l=this.config)!==null&&l!==void 0&&l.url_allowlist&&(this.config.url_allowlist=this.config.url_allowlist.map(function(c){return new RegExp(c)})),this.rageclicks=new qiI(I.config.rageclick)},afterDecideResponse:function(I,l){var c=l.config.token;this._initializedTokens.indexOf(c)>-1?rl.info('autocapture already initialized for token "'+c+'"'):(l.persistence&&l.persistence.register($I({},zk,!!I.autocapture_opt_out)),this._isDisabledServerSide=!!I.autocapture_opt_out,this._setIsAutocaptureEnabled(l),this._initializedTokens.push(c),I&&I.config&&I.config.enable_collect_everything&&this._isAutocaptureEnabled?(I.custom_properties&&(this._customProperties=I.custom_properties),this._addDomEventHandlers(l)):l.__autocapture=!1)},enabledForProject:function(I,l,c){if(!I)return!0;l=Rc(l)?10:l,c=Rc(c)?10:c;for(var G=0,e=0;e1&&arguments[1]!==void 0?arguments[1]:{};if(this.instance.decideEndpointWasHit||this.getFlags()&&this.getFlags().length>0){var G,e=this.getFlagVariants()[l],d="".concat(e),t=this.instance.get_property(Gi)||{};return(c.send_event||!("send_event"in c))&&(!(l in t)||!t[l].includes(d))&&($G(t[l])?t[l].push(d):t[l]=[d],(G=this.instance.persistence)===null||G===void 0||G.register($I({},Gi,t)),this.instance.capture("$feature_flag_called",{$feature_flag:l,$feature_flag_response:e})),e}rl.warn('getFeatureFlag for key "'+l+`" failed. Feature flags didn't load in time.`)}},{key:"getFeatureFlagPayload",value:function(l){return this.getFlagPayloads()[l]}},{key:"isFeatureEnabled",value:function(l){var c=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(this.instance.decideEndpointWasHit||this.getFlags()&&this.getFlags().length>0)return!!this.getFeatureFlag(l,c);rl.warn('isFeatureEnabled for key "'+l+`" failed. Feature flags didn't load in time.`)}},{key:"addFeatureFlagsHandler",value:function(l){this.featureFlagEventHandlers.push(l)}},{key:"removeFeatureFlagsHandler",value:function(l){this.featureFlagEventHandlers=this.featureFlagEventHandlers.filter(function(c){return c!==l})}},{key:"receivedFeatureFlags",value:function(l,c){if(this.instance.persistence){this.instance.decideEndpointWasHit=!0;var G=this.getFlagVariants(),e=this.getFlagPayloads();(function(d,t){var n,b=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},Z=d.featureFlags,W=d.featureFlagPayloads;if(Z)if($G(Z)){var m,s={};if(Z)for(var h=0;h1&&arguments[1]!==void 0&&arguments[1],e=this.instance.get_property(yw);if(e&&!G)return l(e);this.instance._send_request({transport:"XHR",url:this.instance.requestRouter.endpointFor("api","/api/early_access_features/?token=".concat(this.instance.config.token)),method:"GET",callback:function(d){var t;if(d.json){var n=d.json.earlyAccessFeatures;return(t=c.instance.persistence)===null||t===void 0||t.register($I({},yw,n)),l(n)}}})}},{key:"_prepareFeatureFlagsForCallbacks",value:function(){var l=this.getFlags(),c=this.getFlagVariants();return{flags:l.filter(function(G){return c[G]}),flagVariants:Object.keys(c).filter(function(G){return c[G]}).reduce(function(G,e){return G[e]=c[e],G},{})}}},{key:"_fireFeatureFlagsCallbacks",value:function(l){var c=this._prepareFeatureFlagsForCallbacks(),G=c.flags,e=c.flagVariants;this.featureFlagEventHandlers.forEach(function(d){return d(G,e,{errorsLoading:l})})}},{key:"setPersonPropertiesForFlags",value:function(l){var c=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1],G=this.instance.get_property(mm)||{};this.instance.register($I({},mm,El(El({},G),l))),c&&this.instance.reloadFeatureFlags()}},{key:"resetPersonPropertiesForFlags",value:function(){this.instance.unregister(mm)}},{key:"setGroupPropertiesForFlags",value:function(l){var c=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1],G=this.instance.get_property(wa)||{};Object.keys(G).length!==0&&Object.keys(G).forEach(function(e){G[e]=El(El({},G[e]),l[e]),delete l[e]}),this.instance.register($I({},wa,El(El({},G),l))),c&&this.instance.reloadFeatureFlags()}},{key:"resetGroupPropertiesForFlags",value:function(l){if(l){var c=this.instance.get_property(wa)||{};this.instance.register($I({},wa,El(El({},c),{},$I({},l,{}))))}else this.instance.unregister(wa)}}]),I}();Math.trunc||(Math.trunc=function(I){return I<0?Math.ceil(I):Math.floor(I)}),Number.isInteger||(Number.isInteger=function(I){return Mn(I)&&isFinite(I)&&Math.floor(I)===I});var Lk="0123456789abcdef",lFI=function(){function I(l){if(gG(this,I),this.bytes=l,l.length!==16)throw new TypeError("not 128-bit length")}return AG(I,[{key:"toString",value:function(){for(var l="",c=0;c>>4)+Lk.charAt(15&this.bytes[c]),c!==3&&c!==5&&c!==7&&c!==9||(l+="-");if(l.length!==36)throw new Error("Invalid UUIDv7 was generated");return l}},{key:"clone",value:function(){return new I(this.bytes.slice(0))}},{key:"equals",value:function(l){return this.compareTo(l)===0}},{key:"compareTo",value:function(l){for(var c=0;c<16;c++){var G=this.bytes[c]-l.bytes[c];if(G!==0)return Math.sign(G)}return 0}}],[{key:"fromFieldsV7",value:function(l,c,G,e){if(!Number.isInteger(l)||!Number.isInteger(c)||!Number.isInteger(G)||!Number.isInteger(e)||l<0||c<0||G<0||e<0||l>0xffffffffffff||c>4095||G>1073741823||e>4294967295)throw new RangeError("invalid field value");var d=new Uint8Array(16);return d[0]=l/Math.pow(2,40),d[1]=l/Math.pow(2,32),d[2]=l/Math.pow(2,24),d[3]=l/Math.pow(2,16),d[4]=l/Math.pow(2,8),d[5]=l,d[6]=112|c>>>8,d[7]=c,d[8]=128|G>>>24,d[9]=G>>>16,d[10]=G>>>8,d[11]=G,d[12]=e>>>24,d[13]=e>>>16,d[14]=e>>>8,d[15]=e,new I(d)}}]),I}(),cFI=function(){function I(){gG(this,I),$I(this,"timestamp",0),$I(this,"counter",0),$I(this,"random",new GFI)}return AG(I,[{key:"generate",value:function(){var l=this.generateOrAbort();if(Rc(l)){this.timestamp=0;var c=this.generateOrAbort();if(Rc(c))throw new Error("Could not generate UUID after timestamp reset");return c}return l}},{key:"generateOrAbort",value:function(){var l=Date.now();if(l>this.timestamp)this.timestamp=l,this.resetCounter();else{if(!(l+1e4>this.timestamp))return;this.counter++,this.counter>4398046511103&&(this.timestamp++,this.resetCounter())}return lFI.fromFieldsV7(this.timestamp,Math.trunc(this.counter/Math.pow(2,30)),this.counter&Math.pow(2,30)-1,this.random.nextUint32())}},{key:"resetCounter",value:function(){this.counter=1024*this.random.nextUint32()+(1023&this.random.nextUint32())}}]),I}(),ZD=function(I){if(typeof UUIDV7_DENY_WEAK_RNG<"u"&&UUIDV7_DENY_WEAK_RNG)throw new Error("no cryptographically strong RNG available");for(var l=0;l=this.buffer.length&&(ZD(this.buffer),this.cursor=0),this.buffer[this.cursor++]}}]),I}(),mW=function(){return eFI().toString()},eFI=function(){return(Sk||(Sk=new cFI)).generate()},dFI="Thu, 01 Jan 1970 00:00:00 GMT",us="",tFI=/[a-z0-9][a-z0-9-]+\.[a-z]{2,}$/i;function nFI(I,l){if(l){var c=function(e){var d=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Rl;if(us)return us;if(!d||["localhost","127.0.0.1"].includes(e))return"";for(var t=e.split("."),n=Math.min(t.length,8),b="dmn_chk_"+mW(),a=new RegExp("(^|;)\\s*"+b+"=1");!us&&n--;){var Z=t.slice(n).join("."),W=b+"=1;domain=."+Z;d.cookie=W,a.test(d.cookie)&&(d.cookie=W+";expires="+dFI,us=Z)}return us}(I);if(!c){var G=function(e){var d=e.match(tFI);return d?d[0]:""}(I);G!==c&&rl.info("Warning: cookie subdomain discovery mismatch",G,c),c=G}return c?"; domain=."+c:""}return""}var We,$n={is_supported:function(){return!!Rl},error:function(I){rl.error("cookieStore error: "+I)},get:function(I){if(Rl){try{for(var l=I+"=",c=Rl.cookie.split(";").filter(function(d){return d.length}),G=0;G3686.4&&rl.warn("cookieStore warning: large cookie, len="+a.length),Rl.cookie=a,a}catch{return}},remove:function(I,l){try{$n.set(I,"",-1,l)}catch{return}}},qY=null,JG={is_supported:function(){if(!eb(qY))return qY;var I=!0;if(Rc(vI))I=!1;else try{var l="__mplssupport__";JG.set(l,"xyz"),JG.get(l)!=='"xyz"'&&(I=!1),JG.remove(l)}catch{I=!1}return I||rl.error("localStorage unsupported; falling back to cookie store"),qY=I,I},error:function(I){rl.error("localStorage error: "+I)},get:function(I){try{return vI==null?void 0:vI.localStorage.getItem(I)}catch(l){JG.error(l)}return null},parse:function(I){try{return JSON.parse(JG.get(I))||{}}catch{}return null},set:function(I,l){try{vI==null||vI.localStorage.setItem(I,JSON.stringify(l))}catch(c){JG.error(c)}},remove:function(I){try{vI==null||vI.localStorage.removeItem(I)}catch(l){JG.error(l)}}},bFI=["distinct_id",ci,T2],Ms=El(El({},JG),{},{parse:function(I){try{var l={};try{l=$n.parse(I)||{}}catch{}var c=Ae(l,JSON.parse(JG.get(I)||"{}"));return JG.set(I,c),c}catch{}return null},set:function(I,l,c,G,e){try{JG.set(I,l);var d={};bFI.forEach(function(t){l[t]&&(d[t]=l[t])}),Object.keys(d).length&&$n.set(I,d,c,G,e)}catch(t){JG.error(t)}},remove:function(I,l){try{vI==null||vI.localStorage.removeItem(I),$n.remove(I,l)}catch(c){JG.error(c)}}}),vo={},aFI={is_supported:function(){return!0},error:function(I){rl.error("memoryStorage error: "+I)},get:function(I){return vo[I]||null},parse:function(I){return vo[I]||null},set:function(I,l){vo[I]=l},remove:function(I){delete vo[I]}},LZ=null,he={is_supported:function(){if(!eb(LZ))return LZ;if(LZ=!0,Rc(vI))LZ=!1;else try{var I="__support__";he.set(I,"xyz"),he.get(I)!=='"xyz"'&&(LZ=!1),he.remove(I)}catch{LZ=!1}return LZ},error:function(I){rl.error("sessionStorage error: ",I)},get:function(I){try{return vI==null?void 0:vI.sessionStorage.getItem(I)}catch(l){he.error(l)}return null},parse:function(I){try{return JSON.parse(he.get(I))||null}catch{}return null},set:function(I,l){try{vI==null||vI.sessionStorage.setItem(I,JSON.stringify(l))}catch(c){he.error(c)}},remove:function(I){try{vI==null||vI.sessionStorage.removeItem(I)}catch(l){he.error(l)}}},ZFI=["localhost","127.0.0.1"],WD=function(I){var l=Rl==null?void 0:Rl.createElement("a");return Rc(l)?null:(l.href=I,l)},WFI=function(I,l){return!!function(c){try{new RegExp(c)}catch{return!1}return!0}(l)&&new RegExp(l).test(I)},rFI=function(I){var l,c,G=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"&",e=[];return Bc(I,function(d,t){Rc(d)||Rc(t)||t==="undefined"||(l=encodeURIComponent(function(n){return n instanceof File}(d)?d.name:d.toString()),c=encodeURIComponent(t),e[e.length]=c+"="+l)}),e.join(G)},Tk=function(I,l){for(var c,G=((I.split("#")[0]||"").split("?")[1]||"").split("&"),e=0;e=3&&(l=Rc(I[2])?I[3]:I[2]),["watchOS",l]}],[new RegExp("("+Ln+" (\\d+)\\.(\\d+)\\.?(\\d+)?|"+Ln+")","i"),function(I){if(I&&I[2]){var l=[I[2],I[3],I[4]||"0"];return[Ln,l.join(".")]}return[Ln,""]}],[/Mac OS X (\d+)[_.](\d+)[_.]?(\d+)?/i,function(I){var l=["Mac OS X",""];if(I&&I[1]){var c=[I[1],I[2],I[3]||"0"];l[1]=c.join(".")}return l}],[/Mac/i,["Mac OS X",""]],[/CrOS/,[mFI,""]],[/Linux|debian/i,["Linux",""]]],Pk=function(I){return oFI.test(I)?eh:pFI.test(I)?dh:hFI.test(I)?gm:new RegExp(Uw,"i").test(I)?Uw:new RegExp("("+zw+"|WPDesktop)","i").test(I)?zw:/iPad/.test(I)?mD:/iPod/.test(I)?"iPod Touch":/iPhone/.test(I)?"iPhone":/(watch)(?: ?os[,/]|\d,\d\/)[\d.]+/i.test(I)?uD:mA.test(I)?I0:/(kobo)\s(ereader|touch)/i.test(I)?"Kobo":new RegExp(jk,"i").test(I)?jk:/(kf[a-z]{2}wi|aeo[c-r]{2})( bui|\))/i.test(I)||/(kf[a-z]+)( bui|\)).+silk\//i.test(I)?"Kindle Fire":/(Android|ZTE)/i.test(I)?!new RegExp(vt).test(I)||/(9138B|TB782B|Nexus [97]|pixel c|HUAWEISHT|BTV|noble nook|smart ultra 6)/i.test(I)?/pixel[\daxl ]{1,6}/i.test(I)&&!/pixel c/i.test(I)||/(huaweimed-al00|tah-|APA|SM-G92|i980|zte|U304AA)/i.test(I)||/lmy47v/i.test(I)&&!/QTAQZ3/i.test(I)?Ln:rD:Ln:new RegExp("(pda|"+vt+")","i").test(I)?uFI:new RegExp(Gh,"i").test(I)&&!new RegExp(Gh+" pc","i").test(I)?HD:""},go="https?://(.*)",_G={campaignParams:function(I){var l=["utm_source","utm_medium","utm_campaign","utm_content","utm_term","gclid","gad_source","gclsrc","dclid","gbraid","wbraid","fbclid","msclkid","twclid","li_fat_id","mc_cid","igshid","ttclid"].concat(I||[]),c={};return Bc(l,function(G){var e=Rl?Tk(Rl.URL,G):"";e.length&&(c[G]=e)}),c},searchEngine:function(){var I=Rl==null?void 0:Rl.referrer;return I?I.search(go+"google.([^/?]*)")===0?"google":I.search(go+"bing.com")===0?"bing":I.search(go+"yahoo.com")===0?"yahoo":I.search(go+"duckduckgo.com")===0?"duckduckgo":null:null},searchInfo:function(){var I=_G.searchEngine(),l=I!="yahoo"?"q":"p",c={};if(!eb(I)){c.$search_engine=I;var G=Rl?Tk(Rl.referrer,l):"";G.length&&(c.ph_keyword=G)}return c},browser:Dk,browserVersion:function(I,l){var c=Dk(I,l),G=FFI[c];if(Rc(G))return null;for(var e=0;e1e3?XG.substring(0,997)+"...":XG,$browser_version:_G.browserVersion(XG,navigator.vendor),$browser_language:_G.browserLanguage(),$screen_height:vI==null?void 0:vI.screen.height,$screen_width:vI==null?void 0:vI.screen.width,$viewport_height:vI==null?void 0:vI.innerHeight,$viewport_width:vI==null?void 0:vI.innerWidth,$lib:"web",$lib_version:WW.LIB_VERSION,$insert_id:Math.random().toString(36).substring(2,10)+Math.random().toString(36).substring(2,10),$time:ID()/1e3})},people_properties:function(){if(!XG)return{};var I=Te(_G.os(XG),2),l=I[0],c=I[1];return Ae(vw({$os:l,$os_version:c,$browser:_G.browser(XG,navigator.vendor)}),{$browser_version:_G.browserVersion(XG,navigator.vendor)})}},NFI=["cookie","localstorage","localstorage+cookie","sessionstorage","memory"],IX=function(){function I(l){gG(this,I),this.config=l,this.props={},this.campaign_params_saved=!1,this.name=function(c){var G="";return c.token&&(G=c.token.replace(/\+/g,"PL").replace(/\//g,"SL").replace(/=/g,"EQ")),c.persistence_name?"ph_"+c.persistence_name:"ph_"+G+"_posthog"}(l),this.storage=this.buildStorage(l),this.load(),this.update_config(l,l),this.save()}return AG(I,[{key:"buildStorage",value:function(l){NFI.indexOf(l.persistence.toLowerCase())===-1&&(rl.critical("Unknown persistence type "+l.persistence+"; falling back to localStorage+cookie"),l.persistence="localStorage+cookie");var c=l.persistence.toLowerCase();return c==="localstorage"&&JG.is_supported()?JG:c==="localstorage+cookie"&&Ms.is_supported()?Ms:c==="sessionstorage"&&he.is_supported()?he:c==="memory"?aFI:c==="cookie"?$n:Ms.is_supported()?Ms:$n}},{key:"properties",value:function(){var l={};return Bc(this.props,function(c,G){if(G===rm&&Kn(c))for(var e=Object.keys(c),d=0;d1&&arguments[1]!==void 0?arguments[1]:{};gG(this,I),$I(this,"bucketSize",100),$I(this,"refillRate",10),$I(this,"mutationBuckets",{}),$I(this,"loggedTracker",{}),$I(this,"refillBuckets",function(){Object.keys(e.mutationBuckets).forEach(function(t){e.mutationBuckets[t]=e.mutationBuckets[t]+e.refillRate,e.mutationBuckets[t]>=e.bucketSize&&delete e.mutationBuckets[t]})}),$I(this,"getNodeOrRelevantParent",function(t){var n=e.rrweb.mirror.getNode(t);if((n==null?void 0:n.nodeName)!=="svg"&&n instanceof Element){var b=n.closest("svg");if(b)return[e.rrweb.mirror.getId(b),b]}return[t,n]}),$I(this,"numberOfChanges",function(t){var n,b,a,Z,W,m,s,h;return((n=(b=t.removes)===null||b===void 0?void 0:b.length)!==null&&n!==void 0?n:0)+((a=(Z=t.attributes)===null||Z===void 0?void 0:Z.length)!==null&&a!==void 0?a:0)+((W=(m=t.texts)===null||m===void 0?void 0:m.length)!==null&&W!==void 0?W:0)+((s=(h=t.adds)===null||h===void 0?void 0:h.length)!==null&&s!==void 0?s:0)}),$I(this,"throttleMutations",function(t){if(t.type!==3||t.data.source!==0)return t;var n=t.data,b=e.numberOfChanges(n);n.attributes&&(n.attributes=n.attributes.filter(function(Z){var W,m,s,h=Te(e.getNodeOrRelevantParent(Z.id),2),p=h[0],V=h[1];return e.mutationBuckets[p]===0?!1:(e.mutationBuckets[p]=(W=e.mutationBuckets[p])!==null&&W!==void 0?W:e.bucketSize,e.mutationBuckets[p]=Math.max(e.mutationBuckets[p]-1,0),e.mutationBuckets[p]===0&&(e.loggedTracker[p]||(e.loggedTracker[p]=!0,(m=(s=e.options).onBlockedNode)===null||m===void 0||m.call(s,p,V))),Z)}));var a=e.numberOfChanges(n);return a!==0||b===a?t:void 0}),this.rrweb=l,this.options=d,this.refillRate=(c=this.options.refillRate)!==null&&c!==void 0?c:this.refillRate,this.bucketSize=(G=this.options.bucketSize)!==null&&G!==void 0?G:this.bucketSize,setInterval(function(){e.refillBuckets()},1e3)}),j2=function(I){return I[I.DomContentLoaded=0]="DomContentLoaded",I[I.Load=1]="Load",I[I.FullSnapshot=2]="FullSnapshot",I[I.IncrementalSnapshot=3]="IncrementalSnapshot",I[I.Meta=4]="Meta",I[I.Custom=5]="Custom",I[I.Plugin=6]="Plugin",I}(j2||{}),Mw="[SessionRecording]",lX={initiatorTypes:["audio","beacon","body","css","early-hint","embed","fetch","frame","iframe","icon","image","img","input","link","navigation","object","ping","script","track","video","xmlhttprequest"],maskRequestFn:function(I){return I},recordHeaders:!1,recordBody:!1,recordInitialRequests:!1,recordPerformance:!1,performanceEntryTypeToObserve:["first-input","navigation","paint","resource"],payloadSizeLimitBytes:1e6},HFI=["authorization","x-forwarded-for","authorization","cookie","set-cookie","x-api-key","x-real-ip","remote-addr","forwarded","proxy-authorization","x-csrf-token","x-csrftoken","x-xsrf-token"],QFI=["password","secret","passwd","api_key","apikey","auth","credentials","mysql_pwd","privatekey","private_key","token"],wFI=["/s/","/e/","/i/"];function _k(I,l,c,G){if(GZ(I))return I;var e=(l==null?void 0:l["content-length"])||function(d){return new Blob([d]).size}(I);return je(e)&&(e=parseInt(e)),e>c?Mw+" ".concat(G," body too large to record (").concat(e," bytes)"):I}function qk(I,l){if(GZ(I))return I;var c=I;return rW(c,!1)||(c=Mw+" "+l+" body redacted"),Bc(QFI,function(G){var e,d;(e=c)!==null&&e!==void 0&&e.length&&((d=c)===null||d===void 0?void 0:d.indexOf(G))!==-1&&(c=Mw+" "+l+" body redacted as might contain: "+G)}),c}var EFI=function(I,l){var c,G,e,d={payloadSizeLimitBytes:lX.payloadSizeLimitBytes,performanceEntryTypeToObserve:$m(lX.performanceEntryTypeToObserve)},t=I.session_recording.recordHeaders!==!1&&l.recordHeaders,n=I.session_recording.recordBody!==!1&&l.recordBody,b=I.capture_performance!==!1&&l.recordPerformance,a=(c=d,e=Math.min(1e6,(G=c.payloadSizeLimitBytes)!==null&&G!==void 0?G:1e6),function(m){return m!=null&&m.requestBody&&(m.requestBody=_k(m.requestBody,m.requestHeaders,e,"Request")),m!=null&&m.responseBody&&(m.responseBody=_k(m.responseBody,m.responseHeaders,e,"Response")),m}),Z=function(m){return a(function(p){var V=WD(p.name);if(!(V&&V.pathname&&wFI.some(function(o){return V.pathname.indexOf(o)===0})))return p}((s=m,Bc(Object.keys((h=s.requestHeaders)!==null&&h!==void 0?h:{}),function(p){var V;HFI.includes(p.toLowerCase())&&((V=s.requestHeaders)===null||V===void 0||delete V[p])}),s)));var s,h},W=mn(I.session_recording.maskNetworkRequestFn);return W&&mn(I.session_recording.maskCapturedNetworkRequestFn)&&rl.warn("Both `maskNetworkRequestFn` and `maskCapturedNetworkRequestFn` are defined. `maskNetworkRequestFn` will be ignored."),W&&(I.session_recording.maskCapturedNetworkRequestFn=function(m){var s=I.session_recording.maskNetworkRequestFn({url:m.name});return El(El({},m),{},{name:s==null?void 0:s.url})}),d.maskRequestFn=mn(I.session_recording.maskCapturedNetworkRequestFn)?function(m){var s,h,p,V=Z(m);return V&&(s=(h=(p=I.session_recording).maskCapturedNetworkRequestFn)===null||h===void 0?void 0:h.call(p,V))!==null&&s!==void 0?s:void 0}:function(m){return function(s){if(!Rc(s))return s.requestBody=qk(s.requestBody,"Request"),s.responseBody=qk(s.responseBody,"Response"),s}(Z(m))},El(El(El({},lX),d),{},{recordHeaders:t,recordBody:n,recordPerformance:b,recordInitialRequests:b})},vFI="__ph_opt_in_out_";function gFI(I,l){ED(!0,I,l)}function AFI(I,l){ED(!1,I,l)}function yFI(I,l){return wD(I,l)==="1"}function QD(I,l){return!!function(c){if(c&&c.respectDnt){var G=c&&c.window||vI,e=G==null?void 0:G.navigator,d=!1;return Bc([e==null?void 0:e.doNotTrack,e.msDoNotTrack,G.doNotTrack],function(t){Xc([!0,1,"1","yes"],t)&&(d=!0)}),d}return!1}(l)||wD(I,l)==="0"}function JFI(I,l){sA(l=l||{}).remove(uA(I,l),!!l.crossSubdomainCookie)}function sA(I){return(I=I||{}).persistenceType==="localStorage"?JG:I.persistenceType==="localStorage+cookie"?Ms:$n}function uA(I,l){return((l=l||{}).persistencePrefix||vFI)+I}function wD(I,l){return sA(l).get(uA(I,l))}function ED(I,l,c){je(l)&&l.length?(sA(c=c||{}).set(uA(l,c),I?1:0,Mn(c.cookieExpiration)?c.cookieExpiration:null,c.crossSubdomainCookie,c.secureCookie),c.capture&&I&&c.capture(c.captureEventName||"$opt_in",c.captureProperties||{},{send_instantly:!0})):rl.error("gdpr."+(I?"optIn":"optOut")+" called with an invalid token")}function fw(I){var l=!1;try{var c=I.config.token,G=I.config.respect_dnt,e=I.config.opt_out_capturing_persistence_type,d=I.config.opt_out_capturing_cookie_prefix||void 0,t=I.config.window;c&&(l=QD(c,{respectDnt:G,persistenceType:e,persistencePrefix:d,window:t}))}catch(n){rl.error("Unexpected error when checking capturing opt-out status: "+n)}return l}var yn,vD=3e5,$k=vD;(function(I){I[I.Mutation=0]="Mutation",I[I.MouseMove=1]="MouseMove",I[I.MouseInteraction=2]="MouseInteraction",I[I.Scroll=3]="Scroll",I[I.ViewportResize=4]="ViewportResize",I[I.Input=5]="Input",I[I.TouchMove=6]="TouchMove",I[I.MediaInteraction=7]="MediaInteraction",I[I.StyleSheetRule=8]="StyleSheetRule",I[I.CanvasMutation=9]="CanvasMutation",I[I.Font=10]="Font",I[I.Log=11]="Log",I[I.Drag=12]="Drag",I[I.StyleDeclaration=13]="StyleDeclaration",I[I.Selection=14]="Selection",I[I.AdoptedStyleSheet=15]="AdoptedStyleSheet"})(yn||(yn={}));var BFI=[yn.MouseMove,yn.MouseInteraction,yn.Scroll,yn.ViewportResize,yn.Input,yn.TouchMove,yn.MediaInteraction,yn.Drag],Ix=function(I){return{rrwebMethod:I,enqueuedAt:Date.now(),attempt:1}},Jd="[SessionRecording]",kFI=function(){function I(l){var c=this;if(gG(this,I),$I(this,"queuedRRWebEvents",[]),$I(this,"isIdle",!1),$I(this,"_linkedFlagSeen",!1),$I(this,"_lastActivityTimestamp",Date.now()),$I(this,"windowId",null),$I(this,"sessionId",null),$I(this,"_linkedFlag",null),$I(this,"_sampleRate",null),$I(this,"_minimumDuration",null),$I(this,"_forceAllowLocalhostNetworkCapture",!1),this.instance=l,this._captureStarted=!1,this._endpoint="/s/",this.stopRrweb=void 0,this.receivedDecide=!1,vI==null||vI.addEventListener("beforeunload",function(){c._flushBuffer()}),vI==null||vI.addEventListener("offline",function(){c._tryAddCustomEvent("browser offline",{})}),vI==null||vI.addEventListener("online",function(){c._tryAddCustomEvent("browser online",{})}),vI==null||vI.addEventListener("visibilitychange",function(){if(Rl!=null&&Rl.visibilityState){var G="window "+Rl.visibilityState;c._tryAddCustomEvent(G,{})}}),!this.instance.sessionManager)throw rl.error(Jd+" started without valid sessionManager"),new Error(Jd+" started without valid sessionManager. This is a bug.");this.buffer=this.clearBuffer()}return AG(I,[{key:"rrwebRecord",get:function(){var l;return Bn==null||(l=Bn.rrweb)===null||l===void 0?void 0:l.record}},{key:"started",get:function(){return this._captureStarted}},{key:"sessionManager",get:function(){if(!this.instance.sessionManager)throw rl.error(Jd+" started without valid sessionManager"),new Error(Jd+" started without valid sessionManager. This is a bug.");return this.instance.sessionManager}},{key:"isSampled",get:function(){return Mn(this._sampleRate)?this.instance.get_property(T2):null}},{key:"sessionDuration",get:function(){var l,c,G=(l=this.buffer)===null||l===void 0?void 0:l.data[((c=this.buffer)===null||c===void 0?void 0:c.data.length)-1],e=this.sessionManager.checkAndGetSessionAndWindowId(!0).sessionStartTimestamp;return G?G.timestamp-e:null}},{key:"isRecordingEnabled",get:function(){var l=!!this.instance.get_property(Aw),c=!this.instance.config.disable_session_recording;return vI&&l&&c}},{key:"isConsoleLogCaptureEnabled",get:function(){var l=!!this.instance.get_property(Uk),c=this.instance.config.enable_recording_console_log;return c??l}},{key:"canvasRecording",get:function(){var l=this.instance.get_property(Mk);return l&&l.fps&&l.quality?{enabled:l.enabled,fps:l.fps,quality:l.quality}:void 0}},{key:"networkPayloadCapture",get:function(){var l,c,G=this.instance.get_property(Ck),e={recordHeaders:(l=this.instance.config.session_recording)===null||l===void 0?void 0:l.recordHeaders,recordBody:(c=this.instance.config.session_recording)===null||c===void 0?void 0:c.recordBody},d=(e==null?void 0:e.recordHeaders)||(G==null?void 0:G.recordHeaders),t=(e==null?void 0:e.recordBody)||(G==null?void 0:G.recordBody),n=this.instance.config.capture_performance||(G==null?void 0:G.capturePerformance);return d||t||n?{recordHeaders:d,recordBody:t,recordPerformance:n}:void 0}},{key:"status",get:function(){return this.receivedDecide?this.isRecordingEnabled?GZ(this._linkedFlag)||this._linkedFlagSeen?Ew(this.isSampled)?this.isSampled?"sampled":"disabled":"active":"buffering":"disabled":"buffering"}},{key:"startRecordingIfEnabled",value:function(){this.isRecordingEnabled?(this._startCapture(),rl.info(Jd+" started")):(this.stopRecording(),this.clearBuffer())}},{key:"stopRecording",value:function(){this._captureStarted&&this.stopRrweb&&(this.stopRrweb(),this.stopRrweb=void 0,this._captureStarted=!1,rl.info(Jd+" stopped"))}},{key:"makeSamplingDecision",value:function(l){var c,G=this.sessionId!==l,e=this._sampleRate;if(Mn(e)){var d,t=this.isSampled,n=G||!Ew(t);n?d=Math.random()1&&arguments[1]!==void 0?arguments[1]:"log";(c=this.instance.sessionRecording)===null||c===void 0||c.onRRwebEmit({type:6,data:{plugin:"rrweb/console@1",payload:{level:G,trace:[],payload:[JSON.stringify(l)]}},timestamp:ID()})}},{key:"_startCapture",value:function(){var l=this;Rc(Object.assign)||this._captureStarted||this.instance.config.disable_session_recording||fw(this.instance)||(this._captureStarted=!0,this.sessionManager.checkAndGetSessionAndWindowId(),this.rrwebRecord?this._onScriptLoaded():bu(this.instance.requestRouter.endpointFor("assets","/static/recorder.js?v=".concat(WW.LIB_VERSION)),function(c){if(c)return rl.error(Jd+" could not load recorder.js",c);l._onScriptLoaded()}))}},{key:"_isInteractiveEvent",value:function(l){var c;return l.type===3&&BFI.indexOf((c=l.data)===null||c===void 0?void 0:c.source)!==-1}},{key:"_updateWindowAndSessionIds",value:function(l){var c=this._isInteractiveEvent(l);c||this.isIdle||l.timestamp-this._lastActivityTimestamp>$k&&(this.isIdle=!0,this._tryAddCustomEvent("sessionIdle",{reason:"user inactivity",timeSinceLastActive:l.timestamp-this._lastActivityTimestamp,threshold:$k}));var G=!1;if(c&&(this._lastActivityTimestamp=l.timestamp,this.isIdle&&(this.isIdle=!1,this._tryAddCustomEvent("sessionNoLongerIdle",{reason:"user activity",type:l.type}),G=!0)),!this.isIdle){var e=this.sessionManager.checkAndGetSessionAndWindowId(!c,l.timestamp),d=e.windowId,t=e.sessionId,n=this.sessionId!==t,b=this.windowId!==d;this.windowId=d,this.sessionId=t,(G||[RFI,YFI].indexOf(l.type)===-1&&(b||n))&&this._tryTakeFullSnapshot()}}},{key:"_tryRRWebMethod",value:function(l){try{return l.rrwebMethod(),!0}catch(c){return this.queuedRRWebEvents.length<10?this.queuedRRWebEvents.push({enqueuedAt:l.enqueuedAt||Date.now(),attempt:l.attempt++,rrwebMethod:l.rrwebMethod}):rl.warn(Jd+" could not emit queued rrweb event.",c,l),!1}}},{key:"_tryAddCustomEvent",value:function(l,c){var G=this;return this._tryRRWebMethod(Ix(function(){return G.rrwebRecord.addCustomEvent(l,c)}))}},{key:"_tryTakeFullSnapshot",value:function(){var l=this;return this._tryRRWebMethod(Ix(function(){return l.rrwebRecord.takeFullSnapshot()}))}},{key:"_onScriptLoaded",value:function(){for(var l,c=this,G={blockClass:"ph-no-capture",blockSelector:void 0,ignoreClass:"ph-ignore-input",maskTextClass:"ph-mask",maskTextSelector:void 0,maskTextFn:void 0,maskAllInputs:!0,maskInputOptions:{},maskInputFn:void 0,slimDOMOptions:{},collectFonts:!1,inlineStylesheet:!0,recordCrossOriginIframes:!1},e=this.instance.config.session_recording,d=0,t=Object.entries(e||{});d10&&(b.data.payload.payload=b.data.payload.payload.slice(0,10),b.data.payload.payload.push("...[truncated]"));for(var a=[],Z=0;Z2e3?a.push(b.data.payload.payload[Z].slice(0,2e3)+"...[truncated]"):a.push(b.data.payload.payload[Z]);return b.data.payload.payload=a,n}return n}(G),d=JSON.stringify(e).length;if(this._updateWindowAndSessionIds(e),!this.isIdle||e.type===j2.Custom){var t={$snapshot_bytes:d,$snapshot_data:e,$session_id:this.sessionId,$window_id:this.windowId};this.status!=="disabled"?this._captureSnapshotBuffered(t):this.clearBuffer()}}}}},{key:"_pageViewFallBack",value:function(){if(!this.instance.config.capture_pageview&&vI){var l=this._maskUrl(vI.location.href);this._lastHref!==l&&(this._tryAddCustomEvent("$url_changed",{href:l}),this._lastHref=l)}}},{key:"_processQueuedEvents",value:function(){var l=this;if(this.queuedRRWebEvents.length){var c=$m(this.queuedRRWebEvents);this.queuedRRWebEvents=[],c.forEach(function(G){Date.now()-G.enqueuedAt>2e3?l._tryAddCustomEvent("rrwebQueueTimeout",{enqueuedAt:G.enqueuedAt,attempt:G.attempt,queueLength:c.length}):l._tryRRWebMethod(G)&&l._tryAddCustomEvent("rrwebQueueSuccess",{enqueuedAt:G.enqueuedAt,attempt:G.attempt,queueLength:c.length})})}}},{key:"_maskUrl",value:function(l){var c=this.instance.config.session_recording;if(c.maskNetworkRequestFn){var G,e={url:l};return(G=e=c.maskNetworkRequestFn(e))===null||G===void 0?void 0:G.url}return l}},{key:"clearBuffer",value:function(){return this.buffer=void 0,{size:0,data:[],sessionId:this.sessionId,windowId:this.windowId}}},{key:"_flushBuffer",value:function(){var l=this;this.flushBufferTimer&&(clearTimeout(this.flushBufferTimer),this.flushBufferTimer=void 0);var c=this._minimumDuration,G=this.sessionDuration,e=Mn(G)&&G>=0,d=Mn(c)&&e&&G943718.4||this.buffer.sessionId&&this.buffer.sessionId!==this.sessionId)&&(this.buffer=this._flushBuffer()),eb(this.buffer.sessionId)&&!eb(this.sessionId)&&(this.buffer.sessionId=this.sessionId,this.buffer.windowId=this.windowId),this.buffer.size+=l.$snapshot_bytes,this.buffer.data.push(l.$snapshot_data),this.flushBufferTimer||(this.flushBufferTimer=setTimeout(function(){G._flushBuffer()},2e3))}},{key:"_captureSnapshot",value:function(l){this.instance.capture("$snapshot",l,{_url:this.instance.requestRouter.endpointFor("api",this._endpoint),_noTruncate:!0,_batchKey:"recordings"})}}]),I}(),xFI=function(){function I(l){gG(this,I),this.instance=l,this.instance.decideEndpointWasHit=this.instance._hasBootstrappedFeatureFlags()}return AG(I,[{key:"call",value:function(){var l=this,c={token:this.instance.config.token,distinct_id:this.instance.get_distinct_id(),groups:this.instance.getGroups(),person_properties:this.instance.get_property(mm),group_properties:this.instance.get_property(wa),disable_flags:this.instance.config.advanced_disable_feature_flags||this.instance.config.advanced_disable_feature_flags_on_first_load||void 0};this.instance._send_request({method:"POST",url:this.instance.requestRouter.endpointFor("api","/decide/?v=3"),data:c,compression:nn.Base64,timeout:this.instance.config.feature_flag_request_timeout_ms,callback:function(G){return l.parseDecideResponse(G.json)}})}},{key:"parseDecideResponse",value:function(l){var c,G=this;this.instance.featureFlags.setReloadingPaused(!1),this.instance.featureFlags._startReloadTimer();var e=!l;if(this.instance.config.advanced_disable_feature_flags_on_first_load||this.instance.config.advanced_disable_feature_flags||this.instance.featureFlags.receivedFeatureFlags(l??{},e),e)rl.error("Failed to fetch feature flags from PostHog.");else{if(!Rl||!Rl.body)return rl.info("document not ready yet, trying again in 500 milliseconds..."),void setTimeout(function(){G.parseDecideResponse(l)},500);this.instance.toolbar.afterDecideResponse(l),(c=this.instance.sessionRecording)===null||c===void 0||c.afterDecideResponse(l),Ja.afterDecideResponse(l,this.instance),this.instance._afterDecideResponse(l);var d=vI==null?void 0:vI.extendPostHogWithSurveys;l.surveys&&!d&&bu(this.instance.requestRouter.endpointFor("assets","/static/surveys.js"),function(Z){if(Z)return rl.error("Could not load surveys script",Z);vI.extendPostHogWithSurveys(G.instance)});var t=vI==null?void 0:vI.extendPostHogWithExceptionAutoCapture;if(l.autocaptureExceptions&&l.autocaptureExceptions&&Rc(t)&&bu(this.instance.requestRouter.endpointFor("assets","/static/exception-autocapture.js"),function(Z){if(Z)return rl.error("Could not load exception autocapture script",Z);vI.extendPostHogWithExceptionAutocapture(G.instance,l)}),l.siteApps)if(this.instance.config.opt_in_site_apps){var n,b=qb(l.siteApps);try{var a=function(){var Z=n.value,W=Z.id,m=Z.url,s=G.instance.requestRouter.endpointFor("api",m);Bn["__$$ph_site_app_".concat(W)]=G.instance,bu(s,function(h){h&&rl.error("Error while initializing PostHog app with config id ".concat(W),h)})};for(b.s();!(n=b.n()).done;)a()}catch(Z){b.e(Z)}finally{b.f()}}else l.siteApps.length>0&&rl.error('PostHog site apps are disabled. Enable the "opt_in_site_apps" config to proceed.')}}}]),I}(),zFI=vI!=null&&vI.location?ei(vI.location.hash,"__posthog")||ei(location.hash,"state"):null,cX="_postHogToolbarParams",UFI=function(){function I(l){gG(this,I),$I(this,"_toolbarScriptLoaded",!1),this.instance=l}return AG(I,[{key:"afterDecideResponse",value:function(l){var c=l.toolbarParams||l.editorParams||(l.toolbarVersion?{toolbarVersion:l.toolbarVersion}:{});l.isAuthenticated&&c.toolbarVersion&&c.toolbarVersion.indexOf("toolbar")===0&&this.loadToolbar(El({},c))}},{key:"maybeLoadToolbar",value:function(){var l,c,G=arguments.length>0&&arguments[0]!==void 0?arguments[0]:void 0,e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:void 0,d=arguments.length>2&&arguments[2]!==void 0?arguments[2]:void 0;if(!vI||!Rl)return!1;G=(l=G)!==null&&l!==void 0?l:vI.location,d=(c=d)!==null&&c!==void 0?c:vI.history;try{if(!e){try{vI.localStorage.setItem("test","test"),vI.localStorage.removeItem("test")}catch{return!1}e=vI==null?void 0:vI.localStorage}var t,n=zFI||ei(G.hash,"__posthog")||ei(G.hash,"state"),b=n?Bk(function(){return JSON.parse(atob(decodeURIComponent(n)))})||Bk(function(){return JSON.parse(decodeURIComponent(n))}):null;return b&&b.action==="ph_authorize"?((t=b).source="url",t&&Object.keys(t).length>0&&(b.desiredHash?G.hash=b.desiredHash:d?d.replaceState("",Rl.title,G.pathname+G.search):G.hash="")):((t=JSON.parse(e.getItem(cX)||"{}")).source="localstorage",delete t.userIntent),!(!t.token||this.instance.config.token!==t.token)&&(this.loadToolbar(t),!0)}catch{return!1}}},{key:"_callLoadToolbar",value:function(l){(Bn.ph_load_toolbar||Bn.ph_load_editor)(l,this.instance)}},{key:"loadToolbar",value:function(l){var c=this;if(!vI||vI.localStorage.getItem(cX)&&this._toolbarScriptLoaded)return!1;var G=this.instance.requestRouter.region==="custom"&&this.instance.config.advanced_disable_toolbar_metrics,e=El(El({token:this.instance.config.token},l),{},{apiURL:this.instance.requestRouter.endpointFor("ui")},G?{instrument:!1}:{});if(vI.localStorage.setItem(cX,JSON.stringify(El(El({},e),{},{source:void 0}))),this._toolbarScriptLoaded)this._callLoadToolbar(e);else{this._toolbarScriptLoaded=!0;var d=3e5,t=Math.floor(Date.now()/d)*d;bu(this.instance.requestRouter.endpointFor("assets","/static/toolbar.js?t=".concat(t)),function(n){if(n)return rl.error("Failed to load toolbar",n),void(c._toolbarScriptLoaded=!1);c._callLoadToolbar(e)}),cW(vI,"turbolinks:load",function(){c._toolbarScriptLoaded=!1,c.loadToolbar(e)})}return!0}},{key:"_loadEditor",value:function(l){return this.loadToolbar(l)}},{key:"maybeLoadEditor",value:function(){var l=arguments.length>0&&arguments[0]!==void 0?arguments[0]:void 0,c=arguments.length>1&&arguments[1]!==void 0?arguments[1]:void 0,G=arguments.length>2&&arguments[2]!==void 0?arguments[2]:void 0;return this.maybeLoadToolbar(l,c,G)}}]),I}(),CFI=function(){function I(l){gG(this,I),$I(this,"isPaused",!0),$I(this,"queue",[]),$I(this,"flushTimeoutMs",3e3),this.sendRequest=l}return AG(I,[{key:"enqueue",value:function(l){this.queue.push(l),this.flushTimeout||this.setFlushTimeout()}},{key:"unload",value:function(){var l=this;this.clearFlushTimeout();var c=this.queue.length>0?this.formatQueue():{},G=Object.values(c);[].concat($m(G.filter(function(e){return e.url.indexOf("/e")===0})),$m(G.filter(function(e){return e.url.indexOf("/e")!==0}))).map(function(e){l.sendRequest(El(El({},e),{},{transport:"sendBeacon"}))})}},{key:"enable",value:function(){this.isPaused=!1,this.setFlushTimeout()}},{key:"setFlushTimeout",value:function(){var l=this;this.isPaused||(this.flushTimeout=setTimeout(function(){if(l.clearFlushTimeout(),l.queue.length>0){var c=l.formatQueue(),G=function(d){var t=c[d],n=new Date().getTime();t.data&&$G(t.data)&&Bc(t.data,function(b){b.offset=Math.abs(b.timestamp-n),delete b.timestamp}),l.sendRequest(t)};for(var e in c)G(e)}},this.flushTimeoutMs))}},{key:"clearFlushTimeout",value:function(){clearTimeout(this.flushTimeout),this.flushTimeout=void 0}},{key:"formatQueue",value:function(){var l={};return Bc(this.queue,function(c){var G,e=c,d=(e?e.batchKey:null)||e.url;Rc(l[d])&&(l[d]=El(El({},e),{},{data:[]})),(G=l[d].data)===null||G===void 0||G.push(e.data)}),this.queue=[],l}}]),I}(),Od=Uint8Array,De=Uint16Array,l0=Uint32Array,hA=new Od([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),pA=new Od([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),lx=new Od([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),gD=function(I,l){for(var c=new De(31),G=0;G<31;++G)c[G]=l+=1<>>1|(21845&GG)<<1;SZ=(61680&(SZ=(52428&SZ)>>>2|(13107&SZ)<<2))>>>4|(3855&SZ)<<4,Lw[GG]=((65280&SZ)>>>8|(255&SZ)<<8)>>>1}var au=function(I,l,c){for(var G=I.length,e=0,d=new De(l);e>>b]=a}else for(t=new De(G),e=0;e>>15-I[e];return t},TW=new Od(288);for(GG=0;GG<144;++GG)TW[GG]=8;for(GG=144;GG<256;++GG)TW[GG]=9;for(GG=256;GG<280;++GG)TW[GG]=7;for(GG=280;GG<288;++GG)TW[GG]=8;var ti=new Od(32);for(GG=0;GG<32;++GG)ti[GG]=5;var fFI=au(TW,9,0),KFI=au(ti,5,0),yD=function(I){return(I/8>>0)+(7&I&&1)},JD=function(I,l,c){(l==null||l<0)&&(l=0),(c==null||c>I.length)&&(c=I.length);var G=new(I instanceof De?De:I instanceof l0?l0:Od)(c-l);return G.set(I.subarray(l,c)),G},Hb=function(I,l,c){c<<=7&l;var G=l/8>>0;I[G]|=c,I[G+1]|=c>>>8},hs=function(I,l,c){c<<=7&l;var G=l/8>>0;I[G]|=c,I[G+1]|=c>>>8,I[G+2]|=c>>>16},GX=function(I,l){for(var c=[],G=0;Gm&&(m=d[G].s);var s=new De(m+1),h=LFI(c[Z-1],s,0);if(h>l){G=0;var p=0,V=h-l,o=1<l))break;p+=o-(1<>>=V;p>0;){var X=d[G].s;s[X]=0&&p;--G){var H=d[G].s;s[H]==l&&(--s[H],++p)}h=l}return[new Od(s),h]},LFI=function I(l,c,G){return l.s==-1?Math.max(I(l.l,c,G+1),I(l.r,c,G+1)):c[l.s]=G},Gx=function(I){for(var l=I.length;l&&!I[--l];);for(var c=new De(++l),G=0,e=I[0],d=1,t=function(b){c[G++]=b},n=1;n<=l;++n)if(I[n]==e&&n!=l)++d;else{if(!e&&d>2){for(;d>138;d-=138)t(32754);d>2&&(t(d>10?d-11<<5|28690:d-3<<5|12305),d=0)}else if(d>3){for(t(e),--d;d>6;d-=6)t(8304);d>2&&(t(d-3<<5|8208),d=0)}for(;d--;)t(e);d=1,e=I[n]}return[c.subarray(0,G),l]},ps=function(I,l){for(var c=0,G=0;G>>8,I[e+2]=255^I[e],I[e+3]=255^I[e+1];for(var d=0;d4&&!N[lx[A-1]];--A);var M,D,O,$,j=a+5<<3,S=ps(e,TW)+ps(d,ti)+t,tI=ps(e,m)+ps(d,p)+t+14+3*A+ps(B,N)+(2*B[16]+3*B[17]+7*B[18]);if(j<=S&&j<=tI)return D2(l,Z,I.subarray(b,b+a));if(Hb(l,Z,1+(tI15&&(Hb(l,Z,f[C]>>>5&127),Z+=f[C]>>>12)}}}else M=fFI,D=TW,O=KFI,$=ti;for(C=0;C255){nI=G[C]>>>18&31,hs(l,Z,M[nI+257]),Z+=D[nI+257],nI>7&&(Hb(l,Z,G[C]>>>23&31),Z+=hA[nI]);var VI=31&G[C];hs(l,Z,O[VI]),Z+=$[VI],VI>3&&(hs(l,Z,G[C]>>>5&8191),Z+=pA[VI])}else hs(l,Z,M[G[C]]),Z+=D[G[C]];return hs(l,Z,M[256]),Z+D[256]},SFI=new l0([65540,131080,131088,131104,262176,1048704,1048832,2114560,2117632]),TFI=new Od(0),jFI=function(){for(var I=new l0(256),l=0;l<256;++l){for(var c=l,G=9;--G;)c=(1&c&&3988292384)^c>>>1;I[l]=c}return I}(),DFI=function(I,l,c,G,e){return function(d,t,n,b,a,Z){var W=d.length,m=new Od(b+W+5*(1+Math.floor(W/7e3))+a),s=m.subarray(b,m.length-a),h=0;if(!t||W<8)for(var p=0;p<=W;p+=65535){var V=p+65535;V>>13,X=8191&o,H=(1<7e3||O>24576)&&g>423){h=ex(d,s,0,N,J,A,D,O,j,p-j,h),O=M=D=0,j=p;for(var GI=0;GI<286;++GI)J[GI]=0;for(GI=0;GI<30;++GI)A[GI]=0}var f=2,nI=0,VI=X,q=tI-z&32767;if(g>2&&S==k(p-q))for(var fI=Math.min(F,g)-1,RI=Math.min(32767,p),cl=Math.min(258,g);q<=RI&&--VI&&tI!=z;){if(d[p+f]==d[p+f-q]){for(var OI=0;OIf){if(f=OI,nI=q,OI>fI)break;var PI=Math.min(q,OI-2),_I=0;for(GI=0;GI_I&&(_I=bl,z=tl)}}}q+=(tI=z)-(z=Y[tI])+32768&32767}if(nI){N[O++]=268435456|Kw[f]<<18|cx[nI];var Il=31&Kw[f],Fl=31&cx[nI];D+=hA[Il]+pA[Fl],++J[257+Il],++A[Fl],$=p+f,++M}else N[O++]=d[p],++J[d[p]]}}h=ex(d,s,Z,N,J,A,D,O,j,p-j,h),Z||(h=D2(s,h,TFI))}return JD(m,0,b+yD(h)+a)}(I,l.level==null?6:l.level,l.mem==null?Math.ceil(1.5*Math.max(8,Math.min(13,Math.log(I.length)))):12+l.mem,c,G,!e)},eX=function(I,l,c){for(;c;++l)I[l]=c,c>>>=8};function OFI(I,l){l===void 0&&(l={});var c=function(){var n=4294967295;return{p:function(b){for(var a=n,Z=0;Z>>8;n=a},d:function(){return 4294967295^n}}}(),G=I.length;c.p(I);var e,d=DFI(I,l,10+((e=l).filename&&e.filename.length+1||0),8),t=d.length;return function(n,b){var a=b.filename;if(n[0]=31,n[1]=139,n[2]=8,n[8]=b.level<2?4:b.level==9?2:0,n[9]=3,b.mtime!=0&&eX(n,4,Math.floor(new Date(b.mtime||Date.now())/1e3)),a){n[3]=8;for(var Z=0;Z<=a.length;++Z)n[Z+10]=a.charCodeAt(Z)}}(d,l),eX(d,t-8,c.d()),eX(d,t-4,G),d}var PFI=!!nA||!!tA,dx="text/plain",ni=function(I,l){var c=Te(I.split("?"),2),G=c[0],e=c[1],d=El({},l);e==null||e.split("&").forEach(function(n){var b=Te(n.split("="),1)[0];delete d[b]});var t=rFI(d);return t=t?(e?e+"&":"")+t:e,"".concat(G,"?").concat(t)},_FI=function(I){return"data="+encodeURIComponent(typeof I=="string"?I:JSON.stringify(I))},oA=function(I){var l=I.data,c=I.compression;if(l){if(c===nn.GZipJS){var G=OFI(function(d,t){var n=d.length;if(!t&&typeof TextEncoder<"u")return new TextEncoder().encode(d);for(var b=new Od(d.length+(d.length>>>1)),a=0,Z=function(h){b[a++]=h},W=0;Wb.length){var m=new Od(a+8+(n-W<<1));m.set(b),b=m}var s=d.charCodeAt(W);s<128||t?Z(s):s<2048?(Z(192|s>>>6),Z(128|63&s)):s>55295&&s<57344?(Z(240|(s=65536+(1047552&s)|1023&d.charCodeAt(++W))>>>18),Z(128|s>>>12&63),Z(128|s>>>6&63),Z(128|63&s)):(Z(224|s>>>12),Z(128|s>>>6&63),Z(128|63&s))}return JD(b,0,a)}(JSON.stringify(l)),{mtime:0});return{contentType:dx,body:new Blob([G],{type:dx})}}if(c===nn.Base64){var e=function(d){var t,n,b,a,Z,W="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",m=0,s=0,h="",p=[];if(!d)return d;d=KiI(d);do t=(Z=d.charCodeAt(m++)<<16|d.charCodeAt(m++)<<8|d.charCodeAt(m++))>>18&63,n=Z>>12&63,b=Z>>6&63,a=63&Z,p[s++]=W.charAt(t)+W.charAt(n)+W.charAt(b)+W.charAt(a);while(m0&&(e.url=ni(e.url,{retry_count:G})),this.instance._send_request(El(El({},e),{},{callback:function(d){var t;d.statusCode!==200&&(d.statusCode<400||d.statusCode>=500)&&(G??0)<10?c.enqueue(El({},e)):(t=e.callback)===null||t===void 0||t.call(e,d)}}))}},{key:"enqueue",value:function(l){var c=l.retriesPerformedSoFar||0;l.retriesPerformedSoFar=c+1;var G=function(t){var n=3e3*Math.pow(2,t),b=n/2,a=Math.min(18e5,n),Z=(Math.random()-.5)*(a-b);return Math.ceil(a+Z)}(c),e=Date.now()+G;this.queue.push({retryAt:e,requestOptions:l});var d="Enqueued failed request for retry in ".concat(G);navigator.onLine||(d+=" (Browser is offline)"),rl.warn(d),this.isPolling||(this.isPolling=!0,this.poll())}},{key:"poll",value:function(){var l=this;this.poller&&clearTimeout(this.poller),this.poller=setTimeout(function(){l.areWeOnline&&l.queue.length>0&&l.flush(),l.poll()},this.pollIntervalMs)}},{key:"flush",value:function(){var l=Date.now(),c=[],G=this.queue.filter(function(n){return n.retryAt0){var e,d=qb(G);try{for(d.s();!(e=d.n()).done;){var t=e.value.requestOptions;this.retriableRequest(t)}}catch(n){d.e(n)}finally{d.f()}}}},{key:"unload",value:function(){this.poller&&(clearTimeout(this.poller),this.poller=void 0);var l,c=qb(this.queue);try{for(c.s();!(l=c.n()).done;){var G=l.value.requestOptions;try{this.instance._send_request(El(El({},G),{},{transport:"sendBeacon"}))}catch(e){rl.error(e)}}}catch(e){c.e(e)}finally{c.f()}this.queue=[]}}]),I}(),Ao=1800,eNI=function(){function I(l,c,G,e){gG(this,I),$I(this,"_sessionIdChangedHandlers",[]),this.config=l,this.persistence=c,this._windowId=void 0,this._sessionId=void 0,this._sessionStartTimestamp=null,this._sessionActivityTimestamp=null,this._sessionIdGenerator=G||mW,this._windowIdGenerator=e||mW;var d=l.persistence_name||l.token,t=l.session_idle_timeout_seconds||Ao;if(Mn(t)?t>Ao?rl.warn("session_idle_timeout_seconds cannot be greater than 30 minutes. Using 30 minutes instead."):t<60&&rl.warn("session_idle_timeout_seconds cannot be less than 60 seconds. Using 60 seconds instead."):(rl.warn("session_idle_timeout_seconds must be a number. Defaulting to 30 minutes."),t=Ao),this._sessionTimeoutMs=1e3*Math.min(Math.max(t,60),Ao),this._window_id_storage_key="ph_"+d+"_window_id",this._primary_window_exists_storage_key="ph_"+d+"_primary_window_exists",this._canUseSessionStorage()){var n=he.parse(this._window_id_storage_key),b=he.parse(this._primary_window_exists_storage_key);n&&!b?this._windowId=n:he.remove(this._window_id_storage_key),he.set(this._primary_window_exists_storage_key,!0)}this._listenToReloadWindow()}return AG(I,[{key:"onSessionId",value:function(l){var c=this;return Rc(this._sessionIdChangedHandlers)&&(this._sessionIdChangedHandlers=[]),this._sessionIdChangedHandlers.push(l),this._sessionId&&l(this._sessionId,this._windowId),function(){c._sessionIdChangedHandlers=c._sessionIdChangedHandlers.filter(function(G){return G!==l})}}},{key:"_canUseSessionStorage",value:function(){return this.config.persistence!=="memory"&&!this.persistence.disabled&&he.is_supported()}},{key:"_setWindowId",value:function(l){l!==this._windowId&&(this._windowId=l,this._canUseSessionStorage()&&he.set(this._window_id_storage_key,l))}},{key:"_getWindowId",value:function(){return this._windowId?this._windowId:this._canUseSessionStorage()?he.parse(this._window_id_storage_key):null}},{key:"_setSessionId",value:function(l,c,G){l===this._sessionId&&c===this._sessionActivityTimestamp&&G===this._sessionStartTimestamp||(this._sessionStartTimestamp=G,this._sessionActivityTimestamp=c,this._sessionId=l,this.persistence.register($I({},ci,[c,l,G])))}},{key:"_getSessionId",value:function(){if(this._sessionId&&this._sessionActivityTimestamp&&this._sessionStartTimestamp)return[this._sessionActivityTimestamp,this._sessionId,this._sessionStartTimestamp];var l=this.persistence.props[ci];return $G(l)&&l.length===2&&l.push(l[0]),l||[0,null,0]}},{key:"resetSessionId",value:function(){this._setSessionId(null,null,null)}},{key:"_listenToReloadWindow",value:function(){var l=this;vI==null||vI.addEventListener("beforeunload",function(){l._canUseSessionStorage()&&he.remove(l._primary_window_exists_storage_key)})}},{key:"checkAndGetSessionAndWindowId",value:function(){var l=arguments.length>0&&arguments[0]!==void 0&&arguments[0],c=(arguments.length>1&&arguments[1]!==void 0?arguments[1]:null)||new Date().getTime(),G=Te(this._getSessionId(),3),e=G[0],d=G[1],t=G[2],n=this._getWindowId(),b=t&&t>0&&Math.abs(c-t)>864e5,a=!1,Z=!d,W=!l&&Math.abs(c-e)>this._sessionTimeoutMs;Z||W||b?(d=this._sessionIdGenerator(),n=this._windowIdGenerator(),rl.info("[SessionId] new session ID generated",{sessionId:d,windowId:n,changeReason:{noSessionId:Z,activityTimeout:W,sessionPastMaximumLength:b}}),t=c,a=!0):n||(n=this._windowIdGenerator(),a=!0);var m=e===0||!l||b?c:e,s=t===0?new Date().getTime():t;return this._setWindowId(n),this._setSessionId(d,m,s),a&&this._sessionIdChangedHandlers.forEach(function(h){return h(d,n)}),{sessionId:d,windowId:n,sessionStartTimestamp:s}}}]),I}();(function(I){I.US="us",I.EU="eu",I.CUSTOM="custom"})(sW||(sW={}));var dNI=function(){function I(l){gG(this,I),$I(this,"_regionCache",{}),this.instance=l}return AG(I,[{key:"apiHost",get:function(){return this.instance.config.api_host.trim().replace(/\/$/,"")}},{key:"uiHost",get:function(){var l;return(l=this.instance.config.ui_host)===null||l===void 0?void 0:l.replace(/\/$/,"")}},{key:"region",get:function(){return this._regionCache[this.apiHost]||(/https:\/\/(app|us|us-assets)(\.i)?\.posthog\.com/i.test(this.apiHost)?this._regionCache[this.apiHost]=sW.US:/https:\/\/(eu|eu-assets)(\.i)?\.posthog\.com/i.test(this.apiHost)?this._regionCache[this.apiHost]=sW.EU:this._regionCache[this.apiHost]=sW.CUSTOM),this._regionCache[this.apiHost]}},{key:"endpointFor",value:function(l){var c=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"";if(c&&(c=c[0]==="/"?c:"/".concat(c)),l==="ui")return(this.uiHost||this.apiHost)+c;if(this.region===sW.CUSTOM)return this.apiHost+c;var G="i.posthog.com"+c;switch(l){case"assets":return"https://".concat(this.region,"-assets.").concat(G);case"api":return"https://".concat(this.region,".").concat(G)}}}]),I}(),tNI=AG(function I(l,c,G,e){gG(this,I),this.name="posthog-js",this.setupOnce=function(d){d(function(t){var n,b,a,Z,W;if(t.level!=="error"||!l.__loaded)return t;t.tags||(t.tags={});var m=l.requestRouter.endpointFor("ui","/person/"+l.get_distinct_id());t.tags["PostHog Person URL"]=m,l.sessionRecordingStarted()&&(t.tags["PostHog Recording URL"]=l.get_session_replay_url({withTimestamp:!0}));var s=((n=t.exception)===null||n===void 0?void 0:n.values)||[],h={$exception_message:(b=s[0])===null||b===void 0?void 0:b.value,$exception_type:(a=s[0])===null||a===void 0?void 0:a.type,$exception_personURL:m,$sentry_event_id:t.event_id,$sentry_exception:t.exception,$sentry_exception_message:(Z=s[0])===null||Z===void 0?void 0:Z.value,$sentry_exception_type:(W=s[0])===null||W===void 0?void 0:W.type,$sentry_tags:t.tags};return c&&G&&(h.$sentry_url=(e||"https://sentry.io/organizations/")+c+"/issues/?project="+G+"&query="+t.event_id),l.capture("$exception",h),t})}}),nNI=function(){function I(l){var c=this;gG(this,I),$I(this,"_hasSeenPageView",!1),$I(this,"_updateScrollData",function(){var G,e,d,t;c._pageViewData||(c._pageViewData=c._createPageViewData());var n=c._pageViewData,b=c._scrollY(),a=c._scrollHeight(),Z=c._contentY(),W=c._contentHeight();n.lastScrollY=b,n.maxScrollY=Math.max(b,(G=n.maxScrollY)!==null&&G!==void 0?G:0),n.maxScrollHeight=Math.max(a,(e=n.maxScrollHeight)!==null&&e!==void 0?e:0),n.lastContentY=Z,n.maxContentY=Math.max(Z,(d=n.maxContentY)!==null&&d!==void 0?d:0),n.maxContentHeight=Math.max(W,(t=n.maxContentHeight)!==null&&t!==void 0?t:0)}),this._instance=l}return AG(I,[{key:"_createPageViewData",value:function(){var l;return{pathname:(l=vI==null?void 0:vI.location.pathname)!==null&&l!==void 0?l:""}}},{key:"doPageView",value:function(){var l,c;return this._hasSeenPageView?(c=this._pageViewData,this._pageViewData=this._createPageViewData()):(this._hasSeenPageView=!0,c=void 0,this._pageViewData||(this._pageViewData=this._createPageViewData())),setTimeout(this._updateScrollData,0),El({$prev_pageview_pathname:(l=c)===null||l===void 0?void 0:l.pathname},this._calculatePrevPageScrollProperties(c))}},{key:"doPageLeave",value:function(){var l=this._pageViewData;return El({$prev_pageview_pathname:l==null?void 0:l.pathname},this._calculatePrevPageScrollProperties(l))}},{key:"_calculatePrevPageScrollProperties",value:function(l){if(!l||l.maxScrollHeight==null||l.lastScrollY==null||l.maxScrollY==null||l.maxContentHeight==null||l.lastContentY==null||l.maxContentY==null)return{};var c=l.maxScrollHeight,G=l.lastScrollY,e=l.maxScrollY,d=l.maxContentHeight,t=l.lastContentY,n=l.maxContentY;return c=Math.ceil(c),G=Math.ceil(G),e=Math.ceil(e),d=Math.ceil(d),t=Math.ceil(t),n=Math.ceil(n),{$prev_pageview_last_scroll:G,$prev_pageview_last_scroll_percentage:c<=1?1:yo(G/c,0,1),$prev_pageview_max_scroll:e,$prev_pageview_max_scroll_percentage:c<=1?1:yo(e/c,0,1),$prev_pageview_last_content:t,$prev_pageview_last_content_percentage:d<=1?1:yo(t/d,0,1),$prev_pageview_max_content:n,$prev_pageview_max_content_percentage:d<=1?1:yo(n/d,0,1)}}},{key:"startMeasuringScrollPosition",value:function(){vI==null||vI.addEventListener("scroll",this._updateScrollData,!0),vI==null||vI.addEventListener("scrollend",this._updateScrollData,!0),vI==null||vI.addEventListener("resize",this._updateScrollData)}},{key:"stopMeasuringScrollPosition",value:function(){vI==null||vI.removeEventListener("scroll",this._updateScrollData),vI==null||vI.removeEventListener("scrollend",this._updateScrollData),vI==null||vI.removeEventListener("resize",this._updateScrollData)}},{key:"_scrollElement",value:function(){if(!this._instance.config.scroll_root_selector)return vI==null?void 0:vI.document.documentElement;var l,c=qb($G(this._instance.config.scroll_root_selector)?this._instance.config.scroll_root_selector:[this._instance.config.scroll_root_selector]);try{for(c.s();!(l=c.n()).done;){var G=l.value,e=vI==null?void 0:vI.document.querySelector(G);if(e)return e}}catch(d){c.e(d)}finally{c.f()}}},{key:"_scrollHeight",value:function(){var l=this._scrollElement();return l?Math.max(0,l.scrollHeight-l.clientHeight):0}},{key:"_scrollY",value:function(){if(this._instance.config.scroll_root_selector){var l=this._scrollElement();return l&&l.scrollTop||0}return vI&&(vI.scrollY||vI.pageYOffset||vI.document.documentElement.scrollTop)||0}},{key:"_contentHeight",value:function(){var l=this._scrollElement();return(l==null?void 0:l.scrollHeight)||0}},{key:"_contentY",value:function(){var l=this._scrollElement(),c=(l==null?void 0:l.clientHeight)||0;return this._scrollY()+c}}]),I}();function yo(I,l,c){return Math.max(l,Math.min(I,c))}var bNI={icontains:function(I){return!!vI&&vI.location.href.toLowerCase().indexOf(I.toLowerCase())>-1},regex:function(I){return!!vI&&WFI(vI.location.href,I)},exact:function(I){return(vI==null?void 0:vI.location.href)===I}},aNI=function(){function I(l){gG(this,I),this.instance=l}return AG(I,[{key:"getSurveys",value:function(l){var c=this,G=arguments.length>1&&arguments[1]!==void 0&&arguments[1],e=this.instance.get_property(Jw);if(e&&!G)return l(e);this.instance._send_request({url:this.instance.requestRouter.endpointFor("api","/api/surveys/?token=".concat(this.instance.config.token)),method:"GET",transport:"XHR",callback:function(d){var t;if(d.statusCode!==200||!d.json)return l([]);var n=d.json.surveys||[];return(t=c.instance.persistence)===null||t===void 0||t.register($I({},Jw,n)),l(n)}})}},{key:"getActiveMatchingSurveys",value:function(l){var c=this,G=arguments.length>1&&arguments[1]!==void 0&&arguments[1];this.getSurveys(function(e){var d=e.filter(function(t){return!(!t.start_date||t.end_date)}).filter(function(t){var n,b,a,Z;if(!t.conditions)return!0;var W=(n=t.conditions)===null||n===void 0||!n.url||bNI[(b=(a=t.conditions)===null||a===void 0?void 0:a.urlMatchType)!==null&&b!==void 0?b:"icontains"](t.conditions.url),m=(Z=t.conditions)===null||Z===void 0||!Z.selector||(Rl==null?void 0:Rl.querySelector(t.conditions.selector));return W&&m}).filter(function(t){if(!t.linked_flag_key&&!t.targeting_flag_key)return!0;var n=!t.linked_flag_key||c.instance.featureFlags.isFeatureEnabled(t.linked_flag_key),b=!t.targeting_flag_key||c.instance.featureFlags.isFeatureEnabled(t.targeting_flag_key);return n&&b});return l(d)},G)}}]),I}(),ZNI=function(){function I(){var l=this;gG(this,I),$I(this,"limits",{}),$I(this,"checkForLimiting",function(c){var G=c.text;if(G&&G.length)try{(JSON.parse(G).quota_limited||[]).forEach(function(e){rl.info("[RateLimiter] ".concat(e||"events"," is quota limited.")),l.limits[e]=new Date().getTime()+6e4})}catch(e){return void rl.warn('[RateLimiter] could not rate limit - continuing. Error: "'.concat(e==null?void 0:e.message,'"'),{text:G})}})}return AG(I,[{key:"isRateLimited",value:function(l){var c=this.limits[l||"events"]||!1;return c!==!1&&new Date().getTime()1&&arguments[1]!==void 0?arguments[1]:{},t=arguments.length>2?arguments[2]:void 0;if(Rc(l)||function(V){return je(V)&&V.trim().length===0}(l))return rl.critical("PostHog was initialized without a token. This likely indicates a misconfiguration. Please check the first argument passed to posthog.init()"),this;if(this.__loaded)return rl.warn("You have already initialized PostHog! Re-initializing is a no-op"),this;if(this.__loaded=!0,this.config={},this._triggered_notifs=[],d.request_headers=d.request_headers||d.xhr_headers,this.set_config(Ae({},bx(),d,{name:t,token:l})),this.compression=d.disable_compression?void 0:nn.Base64,this.persistence=new IX(this.config),this.sessionPersistence=this.config.persistence==="sessionStorage"?this.persistence:new IX(El(El({},this.config),{},{persistence:"sessionStorage"})),this._requestQueue=new CFI(function(V){return e._send_request(V)}),this._retryQueue=new GNI(this),this.__captureHooks=[],this.__request_queue=[],this.sessionManager=new eNI(this.config,this.persistence),this.sessionPropsManager=new rNI(this.sessionManager,this.persistence),this.sessionRecording=new kFI(this),this.sessionRecording.startRecordingIfEnabled(),this.config.disable_scroll_properties||this.pageViewManager.startMeasuringScrollPosition(),this.__autocapture=this.config.autocapture,Ja._setIsAutocaptureEnabled(this),Ja._isAutocaptureEnabled&&(this.__autocapture=this.config.autocapture,Ja.enabledForProject(this.config.token,100,100)?Ja.isBrowserSupported()?Ja.init(this):(this.__autocapture=!1,rl.info("Disabling Automatic Event Collection because this browser is not supported")):(this.__autocapture=!1,rl.info("Not in active bucket: disabling Automatic Event Collection."))),WW.DEBUG=WW.DEBUG||this.config.debug,this._gdpr_init(),d.segment&&(this.config.get_device_id=function(){return d.segment.user().anonymousId()},d.segment.user().id()&&(this.register({distinct_id:d.segment.user().id()}),this.persistence.set_user_state("identified"))),((c=d.bootstrap)===null||c===void 0?void 0:c.distinctID)!==void 0){var n,b,a=this.config.get_device_id(mW()),Z=(n=d.bootstrap)!==null&&n!==void 0&&n.isIdentifiedID?a:d.bootstrap.distinctID;this.persistence.set_user_state((b=d.bootstrap)!==null&&b!==void 0&&b.isIdentifiedID?"identified":"anonymous"),this.register({distinct_id:d.bootstrap.distinctID,$device_id:Z})}if(this._hasBootstrappedFeatureFlags()){var W,m,s=Object.keys(((W=d.bootstrap)===null||W===void 0?void 0:W.featureFlags)||{}).filter(function(V){var o,F;return!((o=d.bootstrap)===null||o===void 0||(F=o.featureFlags)===null||F===void 0||!F[V])}).reduce(function(V,o){var F,X;return V[o]=((F=d.bootstrap)===null||F===void 0||(X=F.featureFlags)===null||X===void 0?void 0:X[o])||!1,V},{}),h=Object.keys(((m=d.bootstrap)===null||m===void 0?void 0:m.featureFlagPayloads)||{}).filter(function(V){return s[V]}).reduce(function(V,o){var F,X,H,Y;return(F=d.bootstrap)!==null&&F!==void 0&&(X=F.featureFlagPayloads)!==null&&X!==void 0&&X[o]&&(V[o]=(H=d.bootstrap)===null||H===void 0||(Y=H.featureFlagPayloads)===null||Y===void 0?void 0:Y[o]),V},{});this.featureFlags.receivedFeatureFlags({featureFlags:s,featureFlagPayloads:h})}if(!this.get_distinct_id()){var p=this.config.get_device_id(mW());this.register_once({distinct_id:p,$device_id:p},""),this.persistence.set_user_state("anonymous")}return vI==null||(G=vI.addEventListener)===null||G===void 0||G.call(vI,"onpagehide"in self?"pagehide":"unload",this._handle_unload.bind(this)),this.toolbar.maybeLoadToolbar(),d.segment?d.segment.register(this.segmentIntegration()).then(function(){e._loaded()}):this._loaded(),this}},{key:"_afterDecideResponse",value:function(l){var c;this.compression=void 0,l.supportedCompression&&!this.config.disable_compression&&(this.compression=Xc(l.supportedCompression,nn.GZipJS)?nn.GZipJS:Xc(l.supportedCompression,nn.Base64)?nn.Base64:void 0),(c=l.analytics)!==null&&c!==void 0&&c.endpoint&&(this.analyticsDefaultEndpoint=l.analytics.endpoint),l.elementsChainAsString&&(this.elementsChainAsString=l.elementsChainAsString)}},{key:"_loaded",value:function(){var l=this,c=this.config.advanced_disable_decide;c||this.featureFlags.setReloadingPaused(!0);try{this.config.loaded(this)}catch(G){rl.critical("`loaded` function failed",G)}this._start_queue_if_opted_in(),this.config.capture_pageview&&setTimeout(function(){Rl&&l.capture("$pageview",{title:Rl.title},{send_instantly:!0})},1),c||(new xFI(this).call(),this.featureFlags.resetRequestQueue())}},{key:"_start_queue_if_opted_in",value:function(){var l;this.has_opted_out_capturing()||this.config.request_batching&&((l=this._requestQueue)===null||l===void 0||l.enable())}},{key:"_dom_loaded",value:function(){var l=this;this.has_opted_out_capturing()||Em(this.__request_queue,function(c){return l._send_retriable_request(c)}),this.__request_queue=[],this._start_queue_if_opted_in()}},{key:"_handle_unload",value:function(){var l,c;this.config.request_batching?(this.config.capture_pageview&&this.config.capture_pageleave&&this.capture("$pageleave"),(l=this._requestQueue)===null||l===void 0||l.unload(),(c=this._retryQueue)===null||c===void 0||c.unload()):this.config.capture_pageview&&this.config.capture_pageleave&&this.capture("$pageleave",null,{transport:"sendBeacon"})}},{key:"_send_request",value:function(l){var c=this;this.__loaded&&(BD?this.__request_queue.push(l):this.rateLimiter.isRateLimited(l.batchKey)||(l.transport=l.transport||this.config.api_transport,l.url=ni(l.url,{ip:this.config.ip?1:0}),l.headers=this.config.request_headers,l.compression=l.compression==="best-available"?this.compression:l.compression,function(G){var e=El({},G);e.timeout=e.timeout||6e4,e.url=ni(e.url,{_:new Date().getTime().toString(),ver:WW.LIB_VERSION,compression:e.compression}),e.transport==="sendBeacon"&&ch!=null&&ch.sendBeacon?INI(e):e.transport==="fetch"&&tA?$FI(e):nA||!Rl?qFI(e):lNI(e)}(El(El({},l),{},{callback:function(G){var e,d,t;c.rateLimiter.checkForLimiting(G),G.statusCode>=400&&((d=(t=c.config).on_request_error)===null||d===void 0||d.call(t,G)),(e=l.callback)===null||e===void 0||e.call(l,G)}}))))}},{key:"_send_retriable_request",value:function(l){this._retryQueue?this._retryQueue.retriableRequest(l):this._send_request(l)}},{key:"_execute_array",value:function(l){var c,G=this,e=[],d=[],t=[];Em(l,function(b){b&&(c=b[0],$G(c)?t.push(b):mn(b)?b.call(G):$G(b)&&c==="alias"?e.push(b):$G(b)&&c.indexOf("capture")!==-1&&mn(G[c])?t.push(b):d.push(b))});var n=function(b,a){Em(b,function(Z){if($G(Z[0])){var W=a;Bc(Z,function(m){W=W[m[0]].apply(W,m.slice(1))})}else this[Z[0]].apply(this,Z.slice(1))},a)};n(e,this),n(d,this),n(t,this)}},{key:"_hasBootstrappedFeatureFlags",value:function(){var l,c;return((l=this.config.bootstrap)===null||l===void 0?void 0:l.featureFlags)&&Object.keys((c=this.config.bootstrap)===null||c===void 0?void 0:c.featureFlags).length>0||!1}},{key:"push",value:function(l){this._execute_array([l])}},{key:"capture",value:function(l,c,G){var e;if(!this.__loaded||!this.sessionPersistence||!this._requestQueue)return rl.uninitializedWarning("posthog.capture");if(!fw(this))if(!Rc(l)&&je(l)){if(!XG||this.config.opt_out_useragent_filter||!tx(XG,this.config.custom_blocked_useragents)){this.sessionPersistence.update_search_keyword(),this.config.store_google&&this.sessionPersistence.update_campaign_params(),this.config.save_referrer&&this.sessionPersistence.update_referrer_info();var d={uuid:mW(),event:l,properties:this._calculate_event_properties(l,c||{})};l==="$identify"&&(d.$set=G==null?void 0:G.$set,d.$set_once=G==null?void 0:G.$set_once),(d=fiI(d,G!=null&&G._noTruncate?null:this.config.properties_string_max_length)).timestamp=(G==null?void 0:G.timestamp)||new Date,Rc(G==null?void 0:G.timestamp)||(d.properties.$event_time_override_provided=!0,d.properties.$event_time_override_system_time=new Date);var t=El(El({},d.properties.$set),d.$set);(function(b){if(Kn(b)){for(var a in b)if(qj.call(b,a))return!1;return!0}return!1})(t)||this.setPersonPropertiesForFlags(t),rl.info("send",d);var n={method:"POST",url:(e=G==null?void 0:G._url)!==null&&e!==void 0?e:this.requestRouter.endpointFor("api",this.analyticsDefaultEndpoint),data:d,compression:"best-available",batchKey:G==null?void 0:G._batchKey};return!this.config.request_batching||G&&(G==null||!G._batchKey)||G!=null&&G.send_instantly?this._send_retriable_request(n):this._requestQueue.enqueue(n),this._invokeCaptureHooks(l,d),d}}else rl.error("No event name provided to posthog.capture")}},{key:"_addCaptureHook",value:function(l){this.__captureHooks.push(l)}},{key:"_invokeCaptureHooks",value:function(l,c){this.config._onCapture(l,c),Bc(this.__captureHooks,function(G){return G(l)})}},{key:"_calculate_event_properties",value:function(l,c){if(!this.persistence||!this.sessionPersistence)return c;var G=this.persistence.remove_event_timer(l),e=El({},c);if(e.token=this.config.token,l==="$snapshot"){var d=El(El({},this.persistence.properties()),this.sessionPersistence.properties());return e.distinct_id=d.distinct_id,e}var t=_G.properties();if(this.sessionManager){var n=this.sessionManager.checkAndGetSessionAndWindowId(),b=n.sessionId,a=n.windowId;e.$session_id=b,e.$window_id=a}if(this.requestRouter.region===sW.CUSTOM&&(e.$lib_custom_api_host=this.config.api_host),this.sessionPropsManager&&this.config.__preview_send_client_session_params&&(l==="$pageview"||l==="$pageleave"||l==="$autocapture")){var Z=this.sessionPropsManager.getSessionProps();e=Ae(e,Z)}if(!this.config.disable_scroll_properties){var W={};l==="$pageview"?W=this.pageViewManager.doPageView():l==="$pageleave"&&(W=this.pageViewManager.doPageLeave()),e=Ae(e,W)}if(l==="$pageview"&&Rl&&(e.title=Rl.title),l==="$performance_event"){var m=this.persistence.properties();return e.distinct_id=m.distinct_id,e.$current_url=t.$current_url,e}if(!Rc(G)){var s=new Date().getTime()-G;e.$duration=parseFloat((s/1e3).toFixed(3))}XG&&this.config.opt_out_useragent_filter&&(e.$browser_type=tx(XG,this.config.custom_blocked_useragents)?"bot":"browser"),e=Ae({},_G.properties(),this.persistence.properties(),this.sessionPersistence.properties(),e),$G(this.config.property_denylist)&&$G(this.config.property_blacklist)?Bc([].concat($m(this.config.property_blacklist),$m(this.config.property_denylist)),function(p){delete e[p]}):rl.error("Invalid value for property_denylist config: "+this.config.property_denylist+" or property_blacklist config: "+this.config.property_blacklist);var h=this.config.sanitize_properties;return h&&(e=h(e,l)),e}},{key:"register",value:function(l,c){var G;(G=this.persistence)===null||G===void 0||G.register(l,c)}},{key:"register_once",value:function(l,c,G){var e;(e=this.persistence)===null||e===void 0||e.register_once(l,c,G)}},{key:"register_for_session",value:function(l){var c;(c=this.sessionPersistence)===null||c===void 0||c.register(l)}},{key:"unregister",value:function(l){var c;(c=this.persistence)===null||c===void 0||c.unregister(l)}},{key:"unregister_for_session",value:function(l){var c;(c=this.sessionPersistence)===null||c===void 0||c.unregister(l)}},{key:"_register_single",value:function(l,c){this.register($I({},l,c))}},{key:"getFeatureFlag",value:function(l,c){return this.featureFlags.getFeatureFlag(l,c)}},{key:"getFeatureFlagPayload",value:function(l){var c=this.featureFlags.getFeatureFlagPayload(l);try{return JSON.parse(c)}catch{return c}}},{key:"isFeatureEnabled",value:function(l,c){return this.featureFlags.isFeatureEnabled(l,c)}},{key:"reloadFeatureFlags",value:function(){this.featureFlags.reloadFeatureFlags()}},{key:"updateEarlyAccessFeatureEnrollment",value:function(l,c){this.featureFlags.updateEarlyAccessFeatureEnrollment(l,c)}},{key:"getEarlyAccessFeatures",value:function(l){var c=arguments.length>1&&arguments[1]!==void 0&&arguments[1];return this.featureFlags.getEarlyAccessFeatures(l,c)}},{key:"onFeatureFlags",value:function(l){return this.featureFlags.onFeatureFlags(l)}},{key:"onSessionId",value:function(l){var c,G;return(c=(G=this.sessionManager)===null||G===void 0?void 0:G.onSessionId(l))!==null&&c!==void 0?c:function(){}}},{key:"getSurveys",value:function(l){var c=arguments.length>1&&arguments[1]!==void 0&&arguments[1];this.surveys.getSurveys(l,c)}},{key:"getActiveMatchingSurveys",value:function(l){var c=arguments.length>1&&arguments[1]!==void 0&&arguments[1];this.surveys.getActiveMatchingSurveys(l,c)}},{key:"identify",value:function(l,c,G){if(!this.__loaded||!this.persistence)return rl.uninitializedWarning("posthog.identify");if(Mn(l)&&(l=l.toString(),rl.warn("The first argument to posthog.identify was a number, but it should be a string. It has been converted to a string.")),l)if(["distinct_id","distinctid"].includes(l.toLowerCase()))rl.critical('The string "'.concat(l,'" was set in posthog.identify which indicates an error. This ID should be unique to the user and not a hardcoded string.'));else{var e=this.get_distinct_id();if(this.register({$user_id:l}),!this.get_property("$device_id")){var d=e;this.register_once({$had_persisted_distinct_id:!0,$device_id:d},"")}l!==e&&l!==this.get_property(S2)&&(this.unregister(S2),this.register({distinct_id:l}));var t=this.persistence.get_user_state()==="anonymous";l!==e&&t?(this.persistence.set_user_state("identified"),this.setPersonPropertiesForFlags(c||{},!1),this.capture("$identify",{distinct_id:l,$anon_distinct_id:e},{$set:c||{},$set_once:G||{}}),this.featureFlags.setAnonymousDistinctId(e)):(c||G)&&this.setPersonProperties(c,G),l!==e&&(this.reloadFeatureFlags(),this.unregister(Gi))}else rl.error("Unique user id has not been set in posthog.identify")}},{key:"setPersonProperties",value:function(l,c){(l||c)&&(this.setPersonPropertiesForFlags(l||{}),this.capture("$set",{$set:l||{},$set_once:c||{}}))}},{key:"group",value:function(l,c,G){if(l&&c){var e=this.getGroups();e[l]!==c&&this.resetGroupPropertiesForFlags(l),this.register({$groups:El(El({},e),{},$I({},l,c))}),G&&(this.capture("$groupidentify",{$group_type:l,$group_key:c,$group_set:G}),this.setGroupPropertiesForFlags($I({},l,G))),e[l]===c||G||this.reloadFeatureFlags()}else rl.error("posthog.group requires a group type and group key")}},{key:"resetGroups",value:function(){this.register({$groups:{}}),this.resetGroupPropertiesForFlags(),this.reloadFeatureFlags()}},{key:"setPersonPropertiesForFlags",value:function(l){var c=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1];this.featureFlags.setPersonPropertiesForFlags(l,c)}},{key:"resetPersonPropertiesForFlags",value:function(){this.featureFlags.resetPersonPropertiesForFlags()}},{key:"setGroupPropertiesForFlags",value:function(l){var c=!(arguments.length>1&&arguments[1]!==void 0)||arguments[1];this.featureFlags.setGroupPropertiesForFlags(l,c)}},{key:"resetGroupPropertiesForFlags",value:function(l){this.featureFlags.resetGroupPropertiesForFlags(l)}},{key:"reset",value:function(l){var c,G,e,d;if(!this.__loaded)return rl.uninitializedWarning("posthog.reset");var t=this.get_property("$device_id");(c=this.persistence)===null||c===void 0||c.clear(),(G=this.sessionPersistence)===null||G===void 0||G.clear(),(e=this.persistence)===null||e===void 0||e.set_user_state("anonymous"),(d=this.sessionManager)===null||d===void 0||d.resetSessionId();var n=this.config.get_device_id(mW());this.register_once({distinct_id:n,$device_id:l?n:t},"")}},{key:"get_distinct_id",value:function(){return this.get_property("distinct_id")}},{key:"getGroups",value:function(){return this.get_property("$groups")||{}}},{key:"get_session_id",value:function(){var l,c;return(l=(c=this.sessionManager)===null||c===void 0?void 0:c.checkAndGetSessionAndWindowId(!0).sessionId)!==null&&l!==void 0?l:""}},{key:"get_session_replay_url",value:function(l){if(!this.sessionManager)return"";var c=this.sessionManager.checkAndGetSessionAndWindowId(!0),G=c.sessionId,e=c.sessionStartTimestamp,d=this.requestRouter.endpointFor("ui","/replay/"+G);if(l!=null&&l.withTimestamp&&e){var t,n=(t=l.timestampLookBack)!==null&&t!==void 0?t:10;if(!e)return d;var b=Math.max(Math.floor((new Date().getTime()-e)/1e3)-n,0);d+="?t=".concat(b)}return d}},{key:"alias",value:function(l,c){return l===this.get_property(aD)?(rl.critical("Attempting to create alias for existing People user - aborting."),-2):(Rc(c)&&(c=this.get_distinct_id()),l!==c?(this._register_single(S2,l),this.capture("$create_alias",{alias:l,distinct_id:c})):(rl.warn("alias matches current distinct_id - skipping api call."),this.identify(l),-1))}},{key:"set_config",value:function(l){var c,G=El({},this.config);if(Kn(l)&&(Ae(this.config,l),this.config.persistence_name||(this.config.persistence_name=this.config.cookie_name),this.config.disable_persistence||(this.config.disable_persistence=this.config.disable_cookie),(c=this.persistence)===null||c===void 0||c.update_config(this.config,G),this.sessionPersistence=this.config.persistence==="sessionStorage"?this.persistence:new IX(El(El({},this.config),{},{persistence:"sessionStorage"})),JG.is_supported()&&JG.get("ph_debug")==="true"&&(this.config.debug=!0),this.config.debug&&(WW.DEBUG=!0),this.sessionRecording&&!Rc(l.disable_session_recording))){var e=G.disable_session_recording!==l.disable_session_recording,d=!fw(this)&&!l.disable_session_recording&&!this.sessionRecording.started;(e||d)&&(l.disable_session_recording?this.sessionRecording.stopRecording():this.sessionRecording.startRecordingIfEnabled())}}},{key:"startSessionRecording",value:function(){this.set_config({disable_session_recording:!1})}},{key:"stopSessionRecording",value:function(){this.set_config({disable_session_recording:!0})}},{key:"sessionRecordingStarted",value:function(){var l;return!((l=this.sessionRecording)===null||l===void 0||!l.started)}},{key:"loadToolbar",value:function(l){return this.toolbar.loadToolbar(l)}},{key:"get_property",value:function(l){var c;return(c=this.persistence)===null||c===void 0?void 0:c.props[l]}},{key:"getSessionProperty",value:function(l){var c;return(c=this.sessionPersistence)===null||c===void 0?void 0:c.props[l]}},{key:"toString",value:function(){var l,c=(l=this.config.name)!==null&&l!==void 0?l:Sr;return c!==Sr&&(c=Sr+"."+c),c}},{key:"_gdpr_init",value:function(){this.config.opt_out_capturing_persistence_type==="localStorage"&&JG.is_supported()&&(!this.has_opted_in_capturing()&&this.has_opted_in_capturing({persistence_type:"cookie"})&&this.opt_in_capturing({enable_persistence:!1}),!this.has_opted_out_capturing()&&this.has_opted_out_capturing({persistence_type:"cookie"})&&this.opt_out_capturing({clear_persistence:!1}),this.clear_opt_in_out_capturing({persistence_type:"cookie",enable_persistence:!1})),this.has_opted_out_capturing()?this._gdpr_update_persistence({clear_persistence:!0}):this.has_opted_in_capturing()||!this.config.opt_out_capturing_by_default&&!$n.get("ph_optout")||($n.remove("ph_optout"),this.opt_out_capturing({clear_persistence:this.config.opt_out_persistence_by_default}))}},{key:"_gdpr_update_persistence",value:function(l){var c,G,e,d,t;if(l&&l.clear_persistence)e=!0;else{if(!l||!l.enable_persistence)return;e=!1}this.config.disable_persistence||((c=this.persistence)===null||c===void 0?void 0:c.disabled)===e||(d=this.persistence)===null||d===void 0||d.set_disabled(e),this.config.disable_persistence||((G=this.sessionPersistence)===null||G===void 0?void 0:G.disabled)===e||(t=this.sessionPersistence)===null||t===void 0||t.set_disabled(e)}},{key:"_gdpr_call_func",value:function(l,c){return c=Ae({capture:this.capture.bind(this),persistence_type:this.config.opt_out_capturing_persistence_type,cookie_prefix:this.config.opt_out_capturing_cookie_prefix,cookie_expiration:this.config.cookie_expiration,cross_subdomain_cookie:this.config.cross_subdomain_cookie,secure_cookie:this.config.secure_cookie},c||{}),JG.is_supported()||c.persistence_type!=="localStorage"||(c.persistence_type="cookie"),l(this.config.token,{capture:c.capture,captureEventName:c.capture_event_name,captureProperties:c.capture_properties,persistenceType:c.persistence_type,persistencePrefix:c.cookie_prefix,cookieExpiration:c.cookie_expiration,crossSubdomainCookie:c.cross_subdomain_cookie,secureCookie:c.secure_cookie})}},{key:"opt_in_capturing",value:function(l){l=Ae({enable_persistence:!0},l||{}),this._gdpr_call_func(gFI,l),this._gdpr_update_persistence(l)}},{key:"opt_out_capturing",value:function(l){var c=Ae({clear_persistence:!0},l||{});this._gdpr_call_func(AFI,c),this._gdpr_update_persistence(c)}},{key:"has_opted_in_capturing",value:function(l){return this._gdpr_call_func(yFI,l)}},{key:"has_opted_out_capturing",value:function(l){return this._gdpr_call_func(QD,l)}},{key:"clear_opt_in_out_capturing",value:function(l){var c=Ae({enable_persistence:!0},l??{});this._gdpr_call_func(JFI,c),this._gdpr_update_persistence(c)}},{key:"debug",value:function(l){l===!1?(vI==null||vI.console.log("You've disabled debug mode."),localStorage&&localStorage.removeItem("ph_debug"),this.set_config({debug:!1})):(vI==null||vI.console.log("You're now in debug mode. All calls to PostHog will be logged in your console.\nYou can disable this with `posthog.debug(false)`."),localStorage&&localStorage.setItem("ph_debug","true"),this.set_config({debug:!0}))}}]),I}();(function(I,l){for(var c=0;c"u"&&(d=h),m==="")continue;((b=c[c.length-1])==null?void 0:b.type)==="text"?c[c.length-1].text+=` -`+m:c.push({type:"text",text:m}),G.push(...s)}else if(W.type==="codeBlock"){if(!W.attrs.item.editing){const V="```"+W.attrs.item.name+` -`+W.attrs.item.content+"\n```";((a=c[c.length-1])==null?void 0:a.type)==="text"?c[c.length-1].text+=` -`+V:c.push({type:"text",text:V})}const m=W.attrs.item.name;let s=m.substring(m.lastIndexOf("(")+1);s=s.substring(0,s.lastIndexOf(")"));const[h,p]=s.split("-");e.push({filepath:W.attrs.item.description,range:{start:{line:parseInt(h)-1,character:0},end:{line:parseInt(p)-1,character:0}}})}else W.type==="image"?c.push({type:"imageUrl",imageUrl:{url:W.attrs.src}}):console.warn("Unexpected content type",W.type);let t="",n=[];for(const W of G)if(W.itemType==="file"){const m=new QW,s=iA(W.id),h=await m.readFile(W.id),p=`\`\`\`title="${s}" -${h} + font-size: ${nr()}; +`,W3e=["/onboarding","/localOnboarding","/apiKeyOnboarding"],y3e=()=>{const e=Hr(),t=Hc(),n=Zr(),r=E.useContext(Zn),i=en(g=>g.uiState.dialogMessage),a=en(g=>g.uiState.showDialog),o=en(cd),l=en(g=>g.uiState.bottomMessage),s=en(g=>g.uiState.displayBottomMessageOnBottom),u=en(g=>g.state.history);E.useEffect(()=>{const g=h=>{var m;if(_f(h)&&h.code==="KeyC"){const A=(m=window.getSelection())==null?void 0:m.toString();A&&setTimeout(()=>{navigator.clipboard.writeText(A)},100)}};return window.addEventListener("keydown",g),()=>{window.removeEventListener("keydown",g)}},[u]),On("addModel",async()=>{e("/models")},[e]),On("openSettings",async()=>{r.post("openConfigJson",void 0)}),On("viewHistory",async()=>{t.pathname==="/history"?e("/"):e("/history")},[t,e]),On("indexProgress",async g=>{d(g)}),On("addApiKey",async()=>{e("/apiKeyOnboarding")},[e]),On("openOnboarding",async()=>{e("/onboarding")},[e]),On("incrementFtc",async()=>{const g=Vo("ftc");g?Di("ftc",g+1):Di("ftc",1)},[]),On("setupLocalModel",async()=>{r.post("completeOnboarding",{mode:"localAfterFreeTrial"}),e("/localOnboarding")},[e]),E.useEffect(()=>{gI()&&(t.pathname==="/"||t.pathname==="/index.html")&&e("/onboarding")},[t]);const[c,d]=E.useState({desc:"Loading indexing config",progress:0,status:"loading"});return W.jsxs(w3e,{children:[W.jsxs("div",{style:{scrollbarGutter:"stable both-edges",minHeight:"100%",display:"grid",gridTemplateRows:"1fr auto"},children:[W.jsx(SCe,{showDialog:a,onEnter:()=>{n(Ql(!1))},onClose:()=>{n(Ql(!1))},message:i}),W.jsxs(K3e,{children:[W.jsx(C3e,{}),W.jsx(gce,{}),W.jsx(Q3e,{id:"model-select-top-div"}),W3e.includes(t.pathname)||W.jsxs(v3e,{children:[W.jsxs("div",{className:"mr-auto flex flex-grow gap-2 items-center overflow-hidden",children:[W.jsx("div",{className:"flex-shrink-0",children:W.jsx(A3e,{})}),c.status!=="indexing"&&(o==null?void 0:o.provider)==="free-trial"&&W.jsx(s3e,{completed:parseInt(localStorage.getItem("ftc")||"0"),total:dd}),W.jsx(NCe,{indexingState:c})]}),W.jsx(Vr,{text:"Help",onClick:()=>{t.pathname==="/help"?e("/"):e("/help")},children:W.jsx(yde,{width:"1.4em",height:"1.4em"})}),W.jsx(Vr,{onClick:()=>{r.post("openConfigJson",void 0)},text:"Configure Continue",children:W.jsx(t3,{width:"1.4em",height:"1.4em"})})]})]}),W.jsx(b3e,{displayOnBottom:s,onMouseEnter:()=>{n(tfe(void 0))},onMouseLeave:g=>{g.buttons||n(efe(void 0))},hidden:!l,children:l})]}),W.jsx("div",{style:{fontSize:`${nr()-4}px`},id:"tooltip-portal-div"})]})},E9=E.createContext({getSubmenuContextItems:()=>[],addItem:()=>{}}),JU=E.createContext(void 0),zU=tm({name:"config",initialState:{vscMachineId:window.vscMachineId},reducers:{setVscMachineId:(e,t)=>{e.vscMachineId=t.payload}}}),{setVscMachineId:F3e}=zU.actions,E3e=zU.reducer;function R3e(e){const t=[];for(let n=0;n({type:"text",text:`${o.content} +`})),...i],t.push({role:r.message.role,content:i})}return t}const PU=/[\\/]/;function C3(e){return e.split(PU).pop()??""}function sh(e,t){return t<=0?"":e.split(PU).slice(-t).join("/")}function S3e(e,t){return e.reduce((n,r)=>{const i=sh(r,t);return n[i]||(n[i]=[]),n[i].push(r),n},{})}function x3e(e,t){const n=sh(e,2),r=t[n];let i=2;if(r.length>1)for(;r.some(a=>a!==e&&sh(a,i)===sh(e,i));)i++;return sh(e,i)}function hC(e,t){let n=e.includes("/")?e.split("/"):e.split("\\");if(t!==void 0){const r=hC(t);n=n.slice(r.length-1)}return n}function R9(e,t){for(const n of t){const r=hC(e),i=hC(n);if(r.slice(0,i.length).join("/")===i.join("/"))return r.slice(i.length).join("/")}return hC(e).pop()??""}function G3e(e){const t=e.split(".").pop();switch(t){case"py":return"python";case"js":return"javascript";case"jsx":return"jsx";case"tsx":return"tsx";case"ts":return"typescript";case"java":return"java";case"go":return"go";case"rb":return"ruby";case"rs":return"rust";case"c":return"c";case"cpp":return"cpp";case"cs":return"csharp";case"php":return"php";case"scala":return"scala";case"swift":return"swift";case"kt":return"kotlin";case"md":return"markdown";case"json":return"json";case"html":return"html";case"css":return"css";case"sh":return"shell";case"yaml":return"yaml";case"toml":return"toml";case"tex":return"latex";case"sql":return"sql";case"ps1":return"powershell";default:return t??""}}function k3e(e,t){const n=[];for(const r of e)n.some(i=>t(i,r))||n.push(r);return n}async function D3e(e,t,n){var u,c,d;let r=[],i=[];const a=[];let o;for(const g of e==null?void 0:e.content)if(g.type==="paragraph"){const[h,m,A]=Z3e(g);if(A&&typeof o>"u"&&(o=A),i.push(...m),h==="")continue;((u=r[r.length-1])==null?void 0:u.type)==="text"?r[r.length-1].text+=` +`+h:r.push({type:"text",text:h})}else if(g.type==="codeBlock"){if(!g.attrs.item.editing){const C="```"+g.attrs.item.description+` +`+g.attrs.item.content+"\n```";((c=r[r.length-1])==null?void 0:c.type)==="text"?r[r.length-1].text+=` +`+C:r.push({type:"text",text:C})}const h=g.attrs.item.name;let m=h.substring(h.lastIndexOf("(")+1);m=m.substring(0,m.lastIndexOf(")"));const[A,B]=m.split("-");a.push({filepath:g.attrs.item.description,range:{start:{line:parseInt(A)-1,character:0},end:{line:parseInt(B)-1,character:0}}})}else g.type==="image"?r.push({type:"imageUrl",imageUrl:{url:g.attrs.src}}):console.warn("Unexpected content type",g.type);let l="",s=[];for(const g of i)if(g.itemType==="file"){const h=C3(g.id),m=R9(g.id,await n.ide.getWorkspaceDirs()),A=await n.ide.readFile(g.id),B=`\`\`\`${m} +${A} \`\`\` -`;t+=p,n.push({name:s,description:W.id,content:p,id:{providerTitle:"file",itemId:W.id}})}else{const m={name:W.itemType==="contextProvider"?W.id:W.itemType,query:W.query,fullInput:Ne(c),selectedCode:e},s=await hd("context/getContextItems",m);n.push(...s);for(const h of s)t+=h.content+` +`;l+=B,s.push({name:h,description:g.id,content:B,id:{providerTitle:"file",itemId:g.id}})}else{const h={name:g.itemType==="contextProvider"?g.id:g.itemType,query:g.query,fullInput:$l(r),selectedCode:a},m=await n.request("context/getContextItems",h);s.push(...m);for(const A of m)l+=A.content+` -`}if(l.useCodebase){const W=await hd("context/getContextItems",{name:"codebase",query:"",fullInput:Ne(c),selectedCode:e});n.push(...W);for(const m of W)t+=m.content+` +`}if(t.useCodebase){const g=await n.request("context/getContextItems",{name:"codebase",query:"",fullInput:$l(r),selectedCode:a});s.push(...g);for(const h of g)l+=h.content+` -`}if(t!==""&&(t+=` -`),d){let W=FNI(c,s=>s.type==="text");const m=`${d} ${((Z=c[W])==null?void 0:Z.text)||""}`;c.length>0?c[W].text=m:c=[{type:"text",text:m}]}return[n,e,c]}function FNI(I,l){for(let c=I.length-1;c>=0;c--)if(l(I[c],c,I))return c;return-1}function NNI(I){let l="";const c=[];let G;for(const e of I.content||[])e.type==="text"?l+=l===""?e.text.trimStart():e.text:e.type==="mention"?(l+=typeof e.attrs.renderInlineAs=="string"?e.attrs.renderInlineAs:e.attrs.label,c.push(e.attrs)):e.type==="slashcommand"?typeof G>"u"?G=e.attrs.id:l+=e.attrs.label:console.warn("Unexpected child type",e.type);return[l,c,G]}function zD(I){const l=VA(),c=Nc(Ir),G=Nc(m=>m.state.config.slashCommands||[]),e=Nc(m=>m.state.contextItems),d=Nc(m=>m.state.history),t=Nc(m=>m.state.active),n=E.useRef(t);E.useEffect(()=>{n.current=t},[t]);async function b(m){const s=new AbortController,h=s.signal,p=SmI(c.title,h,m);let V=await p.next();for(;!V.done;){if(!n.current){s.abort();break}I(Qk(Ne(V.value.content))),V=await p.next()}let o=V.value;o&&I(hiI([[o==null?void 0:o.prompt,o==null?void 0:o.completion]]))}const a=m=>{var V;let s,h,p=typeof m=="string"?m:((V=m.filter(o=>o.type==="text").slice(-1)[0])==null?void 0:V.text)||"";if(p.startsWith("/")&&(h=p.split(" ")[0].substring(1),s=G.find(o=>o.name===h)),!(!s||!h))return[s,Ne(m)]};async function Z(m,s,h,p,V){const o=new AbortController,F=o.signal,X=c.title;for await(const H of hT("command/run",{input:h,history:m,modelTitle:X,slashCommandName:s.name,contextItems:e,params:s.params,historyIndex:p,selectedCode:V},F)){if(!n.current){o.abort();break}typeof H=="string"&&I(Qk(H))}}async function W(m,s,h){try{I(typeof h=="number"?siI({index:h,editorState:m}):piI({editorState:m}));const[p,V,o]=await iNI(m,s),F={role:"user",content:o},X={message:F,contextItems:p,editorState:m};let H=[...d.slice(0,h),X];const Y=h||H.length-1;I(Oj({message:F,index:Y,contextItems:p})),await new Promise(C=>setTimeout(C,0)),l.capture("step run",{step_name:"User Input",params:{}}),l.capture("userInput",{});const R=ziI(H);let B=a(o);if(!B)await b(R);else{const[C,k]=B;l.capture("step run",{step_name:C.name,params:{}}),await Z(R,C,k,Y,V)}}catch(p){console.log("Continue: error streaming response: ",p),Yc("errorPopup",{message:`Error streaming response: ${p.message}`})}finally{I($u())}}return{streamResponse:W}}function RNI(I){const[l,c]=E.useState(!1),G=async()=>{const t=await hd("config/getBrowserSerialized",void 0);I(uiI(t)),c(!0)};E.useEffect(()=>{G();const t=setInterval(()=>{if(l){clearInterval(t);return}G()},2e3);return()=>clearInterval(t)},[l]),E.useEffect(()=>{I($u()),hd("onLoad",void 0).then(t=>{window.windowId=t.windowId,window.serverUrl=t.serverUrl,window.workspacePaths=t.workspacePaths,window.vscMachineId=t.vscMachineId,window.vscMediaUrl=t.vscMediaUrl,I(kiI(t.vscMachineId))})},[]);const{streamResponse:e}=zD(I),d=Nc(t=>t.state.defaultModelTitle);sG("setInactive",async()=>{I($u())}),sG("setColors",async t=>{Object.keys(t).forEach(n=>{document.body.style.setProperty(n,t[n])})}),sG("configUpdate",async()=>{G()}),sG("submitMessage",async t=>{e(t.message,{useCodebase:!1})}),sG("addContextItem",async t=>{I(miI({index:t.historyIndex,contextItems:[t.item]}))}),sG("getDefaultModelTitle",async()=>d,[d]),E.useEffect(()=>{if($W())for(const t of QT)document.body.style.getPropertyValue(t)&&localStorage.setItem(t,document.body.style.getPropertyValue(t))},[])}const YNI=LI(xt)` - margin: auto; - margin-top: 8px; - margin-bottom: 16px; - display: grid; - width: 130px; - grid-template-columns: 22px 1fr; - align-items: center; - background-color: ${I=>`${I.color||"#be1b55"}${I.showStop?"33":""}`}; +`}if(l!==""&&(l+=` +`),o){let g=N3e(r,m=>m.type==="text");const h=`${o} ${((d=r[g])==null?void 0:d.text)||""}`;r.length>0?r[g].text=h:r=[{type:"text",text:h}]}return[s,a,r]}function N3e(e,t){for(let n=e.length-1;n>=0;n--)if(t(e[n],n,e))return n;return-1}function Z3e(e){let t="";const n=[];let r;for(const i of e.content||[])i.type==="text"?t+=t===""?i.text.trimStart():i.text:i.type==="mention"?(t+=typeof i.attrs.renderInlineAs=="string"?i.attrs.renderInlineAs:i.attrs.label,n.push(i.attrs)):i.type==="slashcommand"?typeof r>"u"?r=i.attrs.id:t+=i.attrs.label:console.warn("Unexpected child type",i.type);return[t,n,r]}function jU(e,t){const n=qf(),r=en(cd),i=en(h=>h.state.config.slashCommands||[]),a=en(h=>h.state.contextItems),o=en(h=>h.state.history),l=en(h=>h.state.active),s=E.useRef(l);E.useEffect(()=>{s.current=l},[l]);async function u(h){const m=new AbortController,A=m.signal;try{const B=t.llmStreamChat(r.title,A,h);let C=await B.next();for(;!C.done;){if(!s.current){m.abort();break}e(wD($l(C.value.content))),C=await B.next()}let b=C.value;b&&e(TBe([b]))}catch{e(EU())}}const c=h=>{var C;let m,A,B=typeof h=="string"?h:((C=h.filter(b=>b.type==="text").slice(-1)[0])==null?void 0:C.text)||"";if(B.startsWith("/")&&(A=B.split(" ")[0].substring(1),m=i.find(b=>b.name===A)),!(!m||!A))return[m,$l(h)]};async function d(h,m,A,B,C){const b=new AbortController,Q=b.signal,F=r.title,K=setInterval(()=>{s.current||(b.abort(),clearInterval(K))},100);for await(const y of t.streamRequest("command/run",{input:A,history:h,modelTitle:F,slashCommandName:m.name,contextItems:a,params:m.params,historyIndex:B,selectedCode:C},Q)){if(!s.current){b.abort();break}typeof y=="string"&&e(wD(y))}clearInterval(K)}async function g(h,m,A,B){try{e(typeof B=="number"?LBe({index:B,editorState:h}):VBe({editorState:h}));const[C,b,Q]=await D3e(h,m,A);if(!m.noContext&&(o.length===0||B===0)){const v=r.provider==="free-trial",k=await A.ide.getCurrentFile();if(typeof k=="string"){let D=await A.ide.readFile(k);v&&(D=D.split(` +`).slice(0,1e3).join(` +`)),C.unshift({content:`The following file is currently open. Don't reference it if it's not relevant to the user's message. - opacity: ${I=>I.isDisabled?.5:1}; +\`\`\`${R9(k,await A.ide.getWorkspaceDirs())} +${D} +\`\`\``,name:`Active file: ${C3(k)}`,description:k,id:{itemId:k,providerTitle:"file"}})}}const F={role:"user",content:Q},K={message:F,contextItems:C,editorState:h};let y=[...o.slice(0,B),K];const G=B||y.length-1;e(FU({message:F,index:G,contextItems:C})),await new Promise(v=>setTimeout(v,0)),n.capture("step run",{step_name:"User Input",params:{}}),n.capture("userInput",{});const X=R3e(y);let H=c(Q);if(!H)await u(X);else{const[v,k]=H;n.capture("step run",{step_name:v.name,params:{}}),await d(X,v,k,G,b)}}catch(C){console.log("Continue: error streaming response: ",C),A.post("errorPopup",{message:`Error streaming response: ${C.message}`})}finally{e(Kf())}}return{streamResponse:g}}function H3e(e){const[t,n]=E.useState(!1),r=E.useContext(Zn),i=async()=>{var s;const l=await r.request("config/getBrowserSerialized",void 0);e(MBe(l)),n(!0),(s=l.ui)!=null&&s.fontSize&&(Di("fontSize",l.ui.fontSize),document.body.style.fontSize=`${l.ui.fontSize}px`)};E.useEffect(()=>{i();const l=setInterval(()=>{if(t){clearInterval(l);return}i()},2e3);return()=>clearInterval(l)},[t]),E.useEffect(()=>{e(Kf()),r.request("onLoad",void 0).then(l=>{window.windowId=l.windowId,window.serverUrl=l.serverUrl,window.workspacePaths=l.workspacePaths,window.vscMachineId=l.vscMachineId,window.vscMediaUrl=l.vscMediaUrl,e(F3e(l.vscMachineId))})},[]);const{streamResponse:a}=jU(e,r),o=en(l=>l.state.defaultModelTitle);On("setInactive",async()=>{e(Kf())}),On("setColors",async l=>{Object.keys(l).forEach(s=>{document.body.style.setProperty(s,l[s]),document.documentElement.style.setProperty(s,l[s])})}),On("configUpdate",async()=>{i()}),On("submitMessage",async l=>{a(l.message,{useCodebase:!1,noContext:!0},r)}),On("addContextItem",async l=>{e(XBe({index:l.historyIndex,contextItems:[l.item]}))}),On("getDefaultModelTitle",async()=>o,[o]),E.useEffect(()=>{if(to())for(const l of QY)document.body.style.getPropertyValue(l)&&localStorage.setItem(l,document.body.style.getPropertyValue(l))},[])}var _n=function(){return _n=Object.assign||function(t){for(var n,r=1,i=arguments.length;r0&&a[a.length-1])&&(u[0]===6||u[0]===2)){n=0;continue}if(u[0]===3&&(!a||u[1]>a[0]&&u[1]=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function Gr(e,t){var n=typeof Symbol=="function"&&e[Symbol.iterator];if(!n)return e;var r=n.call(e),i,a=[],o;try{for(;(t===void 0||t-- >0)&&!(i=r.next()).done;)a.push(i.value)}catch(l){o={error:l}}finally{try{i&&!i.done&&(n=r.return)&&n.call(r)}finally{if(o)throw o.error}}return a}var M3e="ENTRIES",_U="KEYS",$U="VALUES",Ci="",gK=function(){function e(t,n){var r=t._tree,i=Array.from(r.keys());this.set=t,this._type=n,this._path=i.length>0?[{node:r,keys:i}]:[]}return e.prototype.next=function(){var t=this.dive();return this.backtrack(),t},e.prototype.dive=function(){if(this._path.length===0)return{done:!0,value:void 0};var t=Od(this._path),n=t.node,r=t.keys;if(Od(r)===Ci)return{done:!1,value:this.result()};var i=n.get(Od(r));return this._path.push({node:i,keys:Array.from(i.keys())}),this.dive()},e.prototype.backtrack=function(){if(this._path.length!==0){var t=Od(this._path).keys;t.pop(),!(t.length>0)&&(this._path.pop(),this.backtrack())}},e.prototype.key=function(){return this.set._prefix+this._path.map(function(t){var n=t.keys;return Od(n)}).filter(function(t){return t!==Ci}).join("")},e.prototype.value=function(){return Od(this._path).node.get(Ci)},e.prototype.result=function(){switch(this._type){case $U:return this.value();case _U:return this.key();default:return[this.key(),this.value()]}},e.prototype[Symbol.iterator]=function(){return this},e}(),Od=function(e){return e[e.length-1]},T3e=function(e,t,n){var r=new Map;if(t===void 0)return r;for(var i=t.length+1,a=i+n,o=new Uint8Array(a*i).fill(n+1),l=0;ln)continue e}qU(e.get(h),t,n,r,i,A,o,l+h)}}}catch(V){s={error:V}}finally{try{g&&!g.done&&(u=d.return)&&u.call(d)}finally{if(s)throw s.error}}},hK=function(){function e(t,n){t===void 0&&(t=new Map),n===void 0&&(n=""),this._size=void 0,this._tree=t,this._prefix=n}return e.prototype.atPrefix=function(t){var n,r;if(!t.startsWith(this._prefix))throw new Error("Mismatched prefix");var i=Gr(xB(this._tree,t.slice(this._prefix.length)),2),a=i[0],o=i[1];if(a===void 0){var l=Gr(S9(o),2),s=l[0],u=l[1];try{for(var c=sn(s.keys()),d=c.next();!d.done;d=c.next()){var g=d.value;if(g!==Ci&&g.startsWith(u)){var h=new Map;return h.set(g.slice(u.length),s.get(g)),new e(h,t)}}}catch(m){n={error:m}}finally{try{d&&!d.done&&(r=c.return)&&r.call(c)}finally{if(n)throw n.error}}}return new e(a,t)},e.prototype.clear=function(){this._size=void 0,this._tree.clear()},e.prototype.delete=function(t){return this._size=void 0,V3e(this._tree,t)},e.prototype.entries=function(){return new gK(this,M3e)},e.prototype.forEach=function(t){var n,r;try{for(var i=sn(this),a=i.next();!a.done;a=i.next()){var o=Gr(a.value,2),l=o[0],s=o[1];t(l,s,this)}}catch(u){n={error:u}}finally{try{a&&!a.done&&(r=i.return)&&r.call(i)}finally{if(n)throw n.error}}},e.prototype.fuzzyGet=function(t,n){return T3e(this._tree,t,n)},e.prototype.get=function(t){var n=rF(this._tree,t);return n!==void 0?n.get(Ci):void 0},e.prototype.has=function(t){var n=rF(this._tree,t);return n!==void 0&&n.has(Ci)},e.prototype.keys=function(){return new gK(this,_U)},e.prototype.set=function(t,n){if(typeof t!="string")throw new Error("key must be a string");this._size=void 0;var r=fK(this._tree,t);return r.set(Ci,n),this},Object.defineProperty(e.prototype,"size",{get:function(){if(this._size)return this._size;this._size=0;for(var t=this.entries();!t.next().done;)this._size+=1;return this._size},enumerable:!1,configurable:!0}),e.prototype.update=function(t,n){if(typeof t!="string")throw new Error("key must be a string");this._size=void 0;var r=fK(this._tree,t);return r.set(Ci,n(r.get(Ci))),this},e.prototype.fetch=function(t,n){if(typeof t!="string")throw new Error("key must be a string");this._size=void 0;var r=fK(this._tree,t),i=r.get(Ci);return i===void 0&&r.set(Ci,i=n()),i},e.prototype.values=function(){return new gK(this,$U)},e.prototype[Symbol.iterator]=function(){return this.entries()},e.from=function(t){var n,r,i=new e;try{for(var a=sn(t),o=a.next();!o.done;o=a.next()){var l=Gr(o.value,2),s=l[0],u=l[1];i.set(s,u)}}catch(c){n={error:c}}finally{try{o&&!o.done&&(r=a.return)&&r.call(a)}finally{if(n)throw n.error}}return i},e.fromObject=function(t){return e.from(Object.entries(t))},e}(),xB=function(e,t,n){var r,i;if(n===void 0&&(n=[]),t.length===0||e==null)return[e,n];try{for(var a=sn(e.keys()),o=a.next();!o.done;o=a.next()){var l=o.value;if(l!==Ci&&t.startsWith(l))return n.push([e,l]),xB(e.get(l),t.slice(l.length),n)}}catch(s){r={error:s}}finally{try{o&&!o.done&&(i=a.return)&&i.call(a)}finally{if(r)throw r.error}}return n.push([e,t]),xB(void 0,"",n)},rF=function(e,t){var n,r;if(t.length===0||e==null)return e;try{for(var i=sn(e.keys()),a=i.next();!a.done;a=i.next()){var o=a.value;if(o!==Ci&&t.startsWith(o))return rF(e.get(o),t.slice(o.length))}}catch(l){n={error:l}}finally{try{a&&!a.done&&(r=i.return)&&r.call(i)}finally{if(n)throw n.error}}},fK=function(e,t){var n,r,i=t.length;e:for(var a=0;e&&a0)throw new Error("Expected documents to be present. Omit the argument to remove all documents.");this._index=new hK,this._documentCount=0,this._documentIds=new Map,this._idToShortId=new Map,this._fieldLength=new Map,this._avgFieldLength=[],this._storedFields=new Map,this._nextId=0}},e.prototype.discard=function(t){var n=this,r=this._idToShortId.get(t);if(r==null)throw new Error("MiniSearch: cannot discard document with ID ".concat(t,": it is not in the index"));this._idToShortId.delete(t),this._documentIds.delete(r),this._storedFields.delete(r),(this._fieldLength.get(r)||[]).forEach(function(i,a){n.removeFieldLength(r,a,n._documentCount,i)}),this._fieldLength.delete(r),this._documentCount-=1,this._dirtCount+=1,this.maybeAutoVacuum()},e.prototype.maybeAutoVacuum=function(){if(this._options.autoVacuum!==!1){var t=this._options.autoVacuum,n=t.minDirtFactor,r=t.minDirtCount,i=t.batchSize,a=t.batchWait;this.conditionalVacuum({batchSize:i,batchWait:a},{minDirtCount:r,minDirtFactor:n})}},e.prototype.discardAll=function(t){var n,r,i=this._options.autoVacuum;try{this._options.autoVacuum=!1;try{for(var a=sn(t),o=a.next();!o.done;o=a.next()){var l=o.value;this.discard(l)}}catch(s){n={error:s}}finally{try{o&&!o.done&&(r=a.return)&&r.call(a)}finally{if(n)throw n.error}}}finally{this._options.autoVacuum=i}this.maybeAutoVacuum()},e.prototype.replace=function(t){var n=this._options,r=n.idField,i=n.extractField,a=i(t,r);this.discard(a),this.add(t)},e.prototype.vacuum=function(t){return t===void 0&&(t={}),this.conditionalVacuum(t)},e.prototype.conditionalVacuum=function(t,n){var r=this;return this._currentVacuum?(this._enqueuedVacuumConditions=this._enqueuedVacuumConditions&&n,this._enqueuedVacuum!=null?this._enqueuedVacuum:(this._enqueuedVacuum=this._currentVacuum.then(function(){var i=r._enqueuedVacuumConditions;return r._enqueuedVacuumConditions=oF,r.performVacuuming(t,i)}),this._enqueuedVacuum)):this.vacuumConditionsMet(n)===!1?Promise.resolve():(this._currentVacuum=this.performVacuuming(t),this._currentVacuum)},e.prototype.performVacuuming=function(t,n){return X3e(this,void 0,void 0,function(){var r,i,a,o,l,s,u,c,d,g,h,m,A,B,C,b,Q,F,K,y,G,X,H,v,k;return L3e(this,function(D){switch(D.label){case 0:if(r=this._dirtCount,!this.vacuumConditionsMet(n))return[3,10];i=t.batchSize||aF.batchSize,a=t.batchWait||aF.batchWait,o=1,D.label=1;case 1:D.trys.push([1,7,8,9]),l=sn(this._index),s=l.next(),D.label=2;case 2:if(s.done)return[3,6];u=Gr(s.value,2),c=u[0],d=u[1];try{for(g=(X=void 0,sn(d)),h=g.next();!h.done;h=g.next()){m=Gr(h.value,2),A=m[0],B=m[1];try{for(C=(v=void 0,sn(B)),b=C.next();!b.done;b=C.next())Q=Gr(b.value,1),F=Q[0],!this._documentIds.has(F)&&(B.size<=1?d.delete(A):B.delete(F))}catch(V){v={error:V}}finally{try{b&&!b.done&&(k=C.return)&&k.call(C)}finally{if(v)throw v.error}}}}catch(V){X={error:V}}finally{try{h&&!h.done&&(H=g.return)&&H.call(g)}finally{if(X)throw X.error}}return this._index.get(c).size===0&&this._index.delete(c),o%i!==0?[3,4]:[4,new Promise(function(V){return setTimeout(V,a)})];case 3:D.sent(),D.label=4;case 4:o+=1,D.label=5;case 5:return s=l.next(),[3,2];case 6:return[3,9];case 7:return K=D.sent(),y={error:K},[3,9];case 8:try{s&&!s.done&&(G=l.return)&&G.call(l)}finally{if(y)throw y.error}return[7];case 9:this._dirtCount-=r,D.label=10;case 10:return[4,null];case 11:return D.sent(),this._currentVacuum=this._enqueuedVacuum,this._enqueuedVacuum=null,[2]}})})},e.prototype.vacuumConditionsMet=function(t){if(t==null)return!0;var n=t.minDirtCount,r=t.minDirtFactor;return n=n||CK.minDirtCount,r=r||CK.minDirtFactor,this.dirtCount>=n&&this.dirtFactor>=r},Object.defineProperty(e.prototype,"isVacuuming",{get:function(){return this._currentVacuum!=null},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"dirtCount",{get:function(){return this._dirtCount},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"dirtFactor",{get:function(){return this._dirtCount/(1+this._documentCount+this._dirtCount)},enumerable:!1,configurable:!0}),e.prototype.has=function(t){return this._idToShortId.has(t)},e.prototype.getStoredFields=function(t){var n=this._idToShortId.get(t);if(n!=null)return this._storedFields.get(n)},e.prototype.search=function(t,n){var r,i;n===void 0&&(n={});var a=this.executeQuery(t,n),o=[];try{for(var l=sn(a),s=l.next();!s.done;s=l.next()){var u=Gr(s.value,2),c=u[0],d=u[1],g=d.score,h=d.terms,m=d.match,A=h.length||1,B={id:this._documentIds.get(c),score:g*A,terms:Object.keys(m),queryTerms:h,match:m};Object.assign(B,this._storedFields.get(c)),(n.filter==null||n.filter(B))&&o.push(B)}}catch(C){r={error:C}}finally{try{s&&!s.done&&(i=l.return)&&i.call(l)}finally{if(r)throw r.error}}return t===e.wildcard&&n.boostDocument==null&&this._options.searchOptions.boostDocument==null||o.sort(GD),o},e.prototype.autoSuggest=function(t,n){var r,i,a,o;n===void 0&&(n={}),n=_n(_n({},this._options.autoSuggestOptions),n);var l=new Map;try{for(var s=sn(this.search(t,n)),u=s.next();!u.done;u=s.next()){var c=u.value,d=c.score,g=c.terms,h=g.join(" "),m=l.get(h);m!=null?(m.score+=d,m.count+=1):l.set(h,{score:d,terms:g,count:1})}}catch(K){r={error:K}}finally{try{u&&!u.done&&(i=s.return)&&i.call(s)}finally{if(r)throw r.error}}var A=[];try{for(var B=sn(l),C=B.next();!C.done;C=B.next()){var b=Gr(C.value,2),m=b[0],Q=b[1],d=Q.score,g=Q.terms,F=Q.count;A.push({suggestion:m,terms:g,score:d/F})}}catch(K){a={error:K}}finally{try{C&&!C.done&&(o=B.return)&&o.call(B)}finally{if(a)throw a.error}}return A.sort(GD),A},Object.defineProperty(e.prototype,"documentCount",{get:function(){return this._documentCount},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"termCount",{get:function(){return this._index.size},enumerable:!1,configurable:!0}),e.loadJSON=function(t,n){if(n==null)throw new Error("MiniSearch: loadJSON should be given the same options used when serializing the index");return this.loadJS(JSON.parse(t),n)},e.getDefault=function(t){if(AK.hasOwnProperty(t))return mK(AK,t);throw new Error('MiniSearch: unknown option "'.concat(t,'"'))},e.loadJS=function(t,n){var r,i,a,o,l,s,u=t.index,c=t.documentCount,d=t.nextId,g=t.documentIds,h=t.fieldIds,m=t.fieldLength,A=t.averageFieldLength,B=t.storedFields,C=t.dirtCount,b=t.serializationVersion;if(b!==1&&b!==2)throw new Error("MiniSearch: cannot deserialize an index created with an incompatible version");var Q=new e(n);Q._documentCount=c,Q._nextId=d,Q._documentIds=t2(g),Q._idToShortId=new Map,Q._fieldIds=h,Q._fieldLength=t2(m),Q._avgFieldLength=A,Q._storedFields=t2(B),Q._dirtCount=C||0,Q._index=new hK;try{for(var F=sn(Q._documentIds),K=F.next();!K.done;K=F.next()){var y=Gr(K.value,2),G=y[0],X=y[1];Q._idToShortId.set(X,G)}}catch(se){r={error:se}}finally{try{K&&!K.done&&(i=F.return)&&i.call(F)}finally{if(r)throw r.error}}try{for(var H=sn(u),v=H.next();!v.done;v=H.next()){var k=Gr(v.value,2),D=k[0],V=k[1],z=new Map;try{for(var j=(l=void 0,sn(Object.keys(V))),te=j.next();!te.done;te=j.next()){var J=te.value,I=V[J];b===1&&(I=I.ds),z.set(parseInt(J,10),t2(I))}}catch(se){l={error:se}}finally{try{te&&!te.done&&(s=j.return)&&s.call(j)}finally{if(l)throw l.error}}Q._index.set(D,z)}}catch(se){a={error:se}}finally{try{v&&!v.done&&(o=H.return)&&o.call(H)}finally{if(a)throw a.error}}return Q},e.prototype.executeQuery=function(t,n){var r=this;if(n===void 0&&(n={}),t===e.wildcard)return this.executeWildcardQuery(n);if(typeof t!="string"){var i=_n(_n(_n({},n),t),{queries:void 0}),a=t.queries.map(function(B){return r.executeQuery(B,i)});return this.combineResults(a,i.combineWith)}var o=this._options,l=o.tokenize,s=o.processTerm,u=o.searchOptions,c=_n(_n({tokenize:l,processTerm:s},u),n),d=c.tokenize,g=c.processTerm,h=d(t).flatMap(function(B){return g(B)}).filter(function(B){return!!B}),m=h.map(J3e(c)),A=m.map(function(B){return r.executeQuerySpec(B,c)});return this.combineResults(A,c.combineWith)},e.prototype.executeQuerySpec=function(t,n){var r,i,a,o,l=_n(_n({},this._options.searchOptions),n),s=(l.fields||this._options.fields).reduce(function(J,I){var se;return _n(_n({},J),(se={},se[I]=mK(l.boost,I)||1,se))},{}),u=l.boostDocument,c=l.weights,d=l.maxFuzzy,g=l.bm25,h=_n(_n({},SD.weights),c),m=h.fuzzy,A=h.prefix,B=this._index.get(t.term),C=this.termResults(t.term,t.term,1,B,s,u,g),b,Q;if(t.prefix&&(b=this._index.atPrefix(t.term)),t.fuzzy){var F=t.fuzzy===!0?.2:t.fuzzy,K=F<1?Math.min(d,Math.round(t.term.length*F)):F;K&&(Q=this._index.fuzzyGet(t.term,K))}if(b)try{for(var y=sn(b),G=y.next();!G.done;G=y.next()){var X=Gr(G.value,2),H=X[0],v=X[1],k=H.length-t.term.length;if(k){Q==null||Q.delete(H);var D=A*H.length/(H.length+.3*k);this.termResults(t.term,H,D,v,s,u,g,C)}}}catch(J){r={error:J}}finally{try{G&&!G.done&&(i=y.return)&&i.call(y)}finally{if(r)throw r.error}}if(Q)try{for(var V=sn(Q.keys()),z=V.next();!z.done;z=V.next()){var H=z.value,j=Gr(Q.get(H),2),te=j[0],k=j[1];if(k){var D=m*H.length/(H.length+k);this.termResults(t.term,H,D,te,s,u,g,C)}}}catch(J){a={error:J}}finally{try{z&&!z.done&&(o=V.return)&&o.call(V)}finally{if(a)throw a.error}}return C},e.prototype.executeWildcardQuery=function(t){var n,r,i=new Map,a=_n(_n({},this._options.searchOptions),t);try{for(var o=sn(this._documentIds),l=o.next();!l.done;l=o.next()){var s=Gr(l.value,2),u=s[0],c=s[1],d=a.boostDocument?a.boostDocument(c,"",this._storedFields.get(u)):1;i.set(u,{score:d,terms:[],match:{}})}}catch(g){n={error:g}}finally{try{l&&!l.done&&(r=o.return)&&r.call(o)}finally{if(n)throw n.error}}return i},e.prototype.combineResults=function(t,n){if(n===void 0&&(n=x9),t.length===0)return new Map;var r=n.toLowerCase();return t.reduce(I3e[r])||new Map},e.prototype.toJSON=function(){var t,n,r,i,a=[];try{for(var o=sn(this._index),l=o.next();!l.done;l=o.next()){var s=Gr(l.value,2),u=s[0],c=s[1],d={};try{for(var g=(r=void 0,sn(c)),h=g.next();!h.done;h=g.next()){var m=Gr(h.value,2),A=m[0],B=m[1];d[A]=Object.fromEntries(B)}}catch(C){r={error:C}}finally{try{h&&!h.done&&(i=g.return)&&i.call(g)}finally{if(r)throw r.error}}a.push([u,d])}}catch(C){t={error:C}}finally{try{l&&!l.done&&(n=o.return)&&n.call(o)}finally{if(t)throw t.error}}return{documentCount:this._documentCount,nextId:this._nextId,documentIds:Object.fromEntries(this._documentIds),fieldIds:this._fieldIds,fieldLength:Object.fromEntries(this._fieldLength),averageFieldLength:this._avgFieldLength,storedFields:Object.fromEntries(this._storedFields),dirtCount:this._dirtCount,index:a,serializationVersion:2}},e.prototype.termResults=function(t,n,r,i,a,o,l,s){var u,c,d,g,h;if(s===void 0&&(s=new Map),i==null)return s;try{for(var m=sn(Object.keys(a)),A=m.next();!A.done;A=m.next()){var B=A.value,C=a[B],b=this._fieldIds[B],Q=i.get(b);if(Q!=null){var F=Q.size,K=this._avgFieldLength[b];try{for(var y=(d=void 0,sn(Q.keys())),G=y.next();!G.done;G=y.next()){var X=G.value;if(!this._documentIds.has(X)){this.removeTerm(b,X,n),F-=1;continue}var H=o?o(this._documentIds.get(X),n,this._storedFields.get(X)):1;if(H){var v=Q.get(X),k=this._fieldLength.get(X)[b],D=O3e(v,F,this._documentCount,k,K,l),V=r*C*H*D,z=s.get(X);if(z){z.score+=V,P3e(z.terms,t);var j=mK(z.match,n);j?j.push(B):z.match[n]=[B]}else s.set(X,{score:V,terms:[t],match:(h={},h[n]=[B],h)})}}}catch(te){d={error:te}}finally{try{G&&!G.done&&(g=y.return)&&g.call(y)}finally{if(d)throw d.error}}}}}catch(te){u={error:te}}finally{try{A&&!A.done&&(c=m.return)&&c.call(m)}finally{if(u)throw u.error}}return s},e.prototype.addTerm=function(t,n,r){var i=this._index.fetch(r,kD),a=i.get(t);if(a==null)a=new Map,a.set(n,1),i.set(t,a);else{var o=a.get(n);a.set(n,(o||0)+1)}},e.prototype.removeTerm=function(t,n,r){if(!this._index.has(r)){this.warnDocumentChanged(n,t,r);return}var i=this._index.fetch(r,kD),a=i.get(t);a==null||a.get(n)==null?this.warnDocumentChanged(n,t,r):a.get(n)<=1?a.size<=1?i.delete(t):a.delete(n):a.set(n,a.get(n)-1),this._index.get(r).size===0&&this._index.delete(r)},e.prototype.warnDocumentChanged=function(t,n,r){var i,a;try{for(var o=sn(Object.keys(this._fieldIds)),l=o.next();!l.done;l=o.next()){var s=l.value;if(this._fieldIds[s]===n){this._options.logger("warn","MiniSearch: document with ID ".concat(this._documentIds.get(t),' has changed before removal: term "').concat(r,'" was not present in field "').concat(s,'". Removing a document after it has changed can corrupt the index!'),"version_conflict");return}}}catch(u){i={error:u}}finally{try{l&&!l.done&&(a=o.return)&&a.call(o)}finally{if(i)throw i.error}}},e.prototype.addDocumentId=function(t){var n=this._nextId;return this._idToShortId.set(t,n),this._documentIds.set(n,t),this._documentCount+=1,this._nextId+=1,n},e.prototype.addFields=function(t){for(var n=0;ne.state.config.slashCommands],e=>(e==null?void 0:e.map(t=>({title:`/${t.name}`,description:t.description,type:"slashCommand"})))||[]),$3e=$E([e=>e.state.config.contextProviders],e=>e.filter(t=>t.type==="submenu")||[]),rO=$E([e=>{var t;return(t=e.state.config.experimental)==null?void 0:t.defaultContext}],e=>e==null?void 0:e.includes("activeFile")),DD={prefix:!0,fuzzy:2},Tg=70;function q3e(){const[e,t]=E.useState({}),[n,r]=E.useState({}),i=en($3e),[a,o]=E.useState(!1),l=E.useContext(Zn);async function s(){const g=await l.ide.getOpenFiles(),h=S3e(g,2);return g.map(m=>({id:m,title:C3(m),description:x3e(m,h),providerTitle:"file"}))}On("refreshSubmenuItems",async g=>{o(!1)}),On("updateSubmenuItems",async g=>{const h=new iF({fields:["title","description"],storeFields:["id","title","description"]});if(h.addAll(g.submenuItems),t(m=>({...m,[g.provider]:h})),g.provider==="file"){const m=await s();r(A=>({...A,file:[...m,...g.submenuItems.slice(0,Tg-m.length)]}))}else r(m=>({...m,[g.provider]:g.submenuItems.slice(0,Tg)}))});function u(g,h){e[g]&&e[g].add(h)}E.useEffect(()=>{const g=setInterval(async()=>{const h=await s();r(m=>({...m,file:k3e([...h,...Array.isArray(m.file)?m.file:[]],(A,B)=>A.id===B.id)}))},2e3);return()=>{clearInterval(g)}},[]),E.useEffect(()=>{i.length===0||a||(o(!0),i.forEach(async g=>{const h=new iF({fields:["title","description"],storeFields:["id","title","description"]}),m=await l.request("context/loadSubmenuItems",{title:g.title});if(h.addAll(m),t(A=>({...A,[g.title]:h})),g.title==="file"){const A=await s();r(B=>({...B,file:[...A,...m.slice(0,Tg-A.length)]}))}else r(A=>({...A,[g.title]:m.slice(0,Tg)}))}))},[i,a]);function c(g,h){return g===void 0?Object.keys(e).map(A=>e[A].search(h,DD).map(C=>({...C,providerTitle:A}))).flat().sort((A,B)=>B.score-A.score):e[g]?e[g].search(h,DD).map(m=>({...m,providerTitle:g})):[]}function d(g,h,m=Tg){const A=c(g,h);return A.length===0?(n[g]??[]).slice(0,m).map(B=>({...B,providerTitle:g})):A.slice(0,m).map(B=>({id:B.id,title:B.title,description:B.description,providerTitle:B.providerTitle}))}return{getSubmenuContextItems:d,addItem:u}}const ND={".hljs-comment":["comment"],".hljs-tag":["tag"],".hljs-doctag":["keyword"],".hljs-keyword":["keyword"],".hljs-meta .hljs-keyword":["keyword"],".hljs-template-tag":["keyword"],".hljs-template-variable":["keyword"],".hljs-type":["keyword"],".hljs-variable.language_":["keyword"],".hljs-title":["title","function","class"],".hljs-title.class_":["title","function","class","variable"],".hljs-title.class_.inherited__":["title","function","class","variable"],".hljs-title.function_":["support.function","entity.name.function","title","function","class"],".hljs-built_in":["support.function","entity.name.function","title","function","class"],".hljs-name":["constant"],".hljs-attr":["variable","operator","number"],".hljs-attribute":["attribute","variable","operator","number"],".hljs-literal":["variable","operator","number"],".hljs-meta":["variable","operator","number"],".hljs-number":["constant.numeric","number","variable","operator"],".hljs-operator":["variable","operator","number"],".hljs-variable":["variable","operator","number"],".hljs-selector-attr":["variable","operator","number"],".hljs-selector-class":["variable","operator","number"],".hljs-selector-id":["variable","operator","number"],".hljs-regexp":["string"],".hljs-string":["string"],".hljs-meta .hljs-string":["string"],".hljs-params":["variable","operator","number"]};function ZD(e){const t=e.rules||[],n={};t.forEach(({token:i,foreground:a})=>{!a||!i||(n[i]=a)});const r={};return Object.keys(ND).forEach(i=>{const a=ND[i];for(const o of a)if(n[o]){r[i]=n[o];break}}),Object.keys(r).length===0?ewe():r}function ewe(){const t=getComputedStyle(document.body).getPropertyValue("--vscode-editor-background"),{r:n,g:r,b:i}=C1e(t);return(n+r+i)/3>=128?{".hljs-comment":"#008000",".hljs-doctag":"#0000ff",".hljs-keyword":"#0000ff",".hljs-meta .hljs-keyword":"#0000ff",".hljs-template-tag":"#0000ff",".hljs-template-variable":"#0000ff",".hljs-type":"#0000ff",".hljs-variable.language_":"#0000ff",".hljs-title.class_":"#001080",".hljs-title.class_.inherited__":"#001080",".hljs-title.function_":"#795E26",".hljs-built_in":"#795E26",".hljs-attr":"#001080",".hljs-attribute":"#001080",".hljs-literal":"#001080",".hljs-meta":"#001080",".hljs-number":"#098658",".hljs-operator":"#001080",".hljs-variable":"#001080",".hljs-selector-attr":"#001080",".hljs-selector-class":"#001080",".hljs-selector-id":"#001080",".hljs-regexp":"#a31515",".hljs-string":"#a31515",".hljs-meta .hljs-string":"#a31515",".hljs-params":"#001080"}:{".hljs-comment":"#6A9955",".hljs-doctag":"#569cd6",".hljs-keyword":"#569cd6",".hljs-meta .hljs-keyword":"#569cd6",".hljs-template-tag":"#569cd6",".hljs-template-variable":"#569cd6",".hljs-type":"#569cd6",".hljs-variable.language_":"#569cd6",".hljs-title.class_":"#9CDCFE",".hljs-title.class_.inherited__":"#9CDCFE",".hljs-title.function_":"#DCDCAA",".hljs-built_in":"#DCDCAA",".hljs-attr":"#9CDCFE",".hljs-attribute":"#9CDCFE",".hljs-literal":"#9CDCFE",".hljs-meta":"#9CDCFE",".hljs-number":"#b5cea8",".hljs-operator":"#9CDCFE",".hljs-variable":"#9CDCFE",".hljs-selector-attr":"#9CDCFE",".hljs-selector-class":"#9CDCFE",".hljs-selector-id":"#9CDCFE",".hljs-regexp":"#ce9178",".hljs-string":"#ce9178",".hljs-meta .hljs-string":"#ce9178",".hljs-params":"#9CDCFE"}}function twe(){const[e,t]=E.useState(ZD(window.fullColorTheme||{}));return On("setTheme",async n=>{window.fullColorTheme=n.theme,t(ZD(n.theme))}),e}const GB=({msg:e})=>{const t=`info-hover-${encodeURIComponent(e)}`,n=document.getElementById("tooltip-portal-div");return W.jsxs(W.Fragment,{children:[W.jsx(sde,{"data-tooltip-id":t,className:"h-5 w-5 text-gray-500 cursor-help"}),n&&Al.createPortal(W.jsx(pc,{id:t,place:"bottom",children:e}),n)]})},nwe=Ve.div` + border: 1px solid ${rt}; + border-radius: ${jt}; + position: relative; + width: 100%; + transition: all 0.5s; - border: 1px solid - ${I=>I.showStop?I.color||"#be1b55":"transparent"}; + ${e=>e.disabled?` + opacity: 0.5; + `:e.hovered?` + border: 1px solid ${e.color}; + background-color: ${e.color}22; + cursor: pointer;`:""} +`,rwe=Ve.div` + display: flex; + justify-content: flex-end; + margin-left: auto; + padding: 4px; + /* width: fit-content; */ - cursor: ${I=>I.isDisabled?"default":"pointer"}; + flex-wrap: wrap; + row-gap: 12px; - &:hover:enabled { - background-color: ${I=>`${I.color||"#be1b55"}${I.showStop?"33":""}`}; - ${I=>I.isDisabled?"cursor: default;":` - opacity: 0.7; - `} - } -`;function UD(I){const[l,c]=E.useState(localStorage.getItem("continueButtonColor"));return E.useEffect(()=>{const G=e=>{e.key==="continueButtonColor"&&c(e.newValue)};return window.addEventListener("storage",G),()=>window.removeEventListener("storage",G)},[]),v.jsx(YNI,{showStop:I.showStop,color:l,hidden:I.hidden,style:{fontSize:"10px"},className:"m-auto",onClick:I.disabled?void 0:I.onClick,isDisabled:I.disabled,children:I.showStop?v.jsxs(v.Fragment,{children:[v.jsx(trI,{width:"18px",height:"18px"}),"STOP"]}):v.jsxs(v.Fragment,{children:[window.vscMediaUrl?v.jsx("img",{src:`${window.vscMediaUrl}/play_button.png`,height:"18px"}):v.jsx(sg,{width:"18px",height:"18px"}),"CONTINUE"]})})}function XNI(){const I=kS();console.error(I);const l=ne(),c=Be();return v.jsxs("div",{id:"error-page",className:"text-center",style:{backgroundColor:fc},children:[v.jsx("h1",{children:"Error in Continue React App"}),v.jsx("p",{children:v.jsx("i",{children:I.statusText||I.message})}),v.jsx("br",{}),v.jsx("p",{children:"Click below to Continue"}),v.jsx("br",{}),v.jsx(UD,{disabled:!1,showStop:!1,onClick:()=>{l(zh()),localStorage.removeItem("persist:root"),c("/")}})]})}const HNI=LI.div` - display: grid; - grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); - grid-gap: 2rem; - padding: 1rem; - justify-items: center; + border-top: 1px solid ${rt}; +`,iwe=Ve.div` + display: flex; + flex-direction: column; align-items: center; - - border-top: 0.5px solid ${ul}; -`,QNI=LI.div` - border: 0.5px solid ${ul}; - border-radius: ${Pl}; + margin-right: 8px; + background-color: ${rt}; padding: 4px; - color: ${ec}; + border-radius: ${jt}; + outline: 0.5px solid ${rt}; - width: 16px; - height: 16px; + ${e=>e.selected&&` + background-color: ${my}; + color: white; + `} - display: flex; - justify-content: center; - align-items: center; -`,wNI={"⌘":"Cmd","⌃":"Ctrl","⇧":"Shift","⏎":"Enter","⌫":"Backspace","⌥":"Option","⎇":"Alt"};function ENI({text:I}){const l=document.getElementById("tooltip-portal-div");return v.jsxs(v.Fragment,{children:[v.jsx(QNI,{"data-tooltip-id":`header_button_${I}`,children:I}),l&&fb.createPortal(v.jsx(NW,{id:`header_button_${I}`,place:"bottom",children:wNI[I]}),l)]})}function vNI(I){const l=PF()==="mac"?I.mac:I.windows;return v.jsxs("div",{className:"flex justify-between w-full items-center",children:[v.jsx("span",{style:{color:ec},children:I.description}),v.jsx("div",{className:"flex gap-2 float-right",children:l.split(" ").map(c=>v.jsx(ENI,{text:c}))})]})}const gNI=[{mac:"⌘ L",windows:"⌃ L",description:"Select Code + New Session"},{mac:"⌘ I",windows:"⌃ I",description:"Edit highlighted code"},{mac:"⌘ ⇧ L",windows:"⌃ ⇧ L",description:"Select Code"},{mac:"⌘ ⇧ ⏎",windows:"⌃ ⇧ ⏎",description:"Accept Diff"},{mac:"⌘ ⇧ ⌫",windows:"⌃ ⇧ ⌫",description:"Reject Diff"},{mac:"⌥ ⌘ Y",windows:"⎇ ⌃ Y",description:"Accept Top Change in Diff"},{mac:"⌥ ⌘ N",windows:"⎇ ⌃ N",description:"Reject Top Change in Diff"},{mac:"⌥ ⌘ L",windows:"⎇ ⌃ L",description:"Toggle Auxiliary Bar"},{mac:"⌘ ⇧ R",windows:"⌃ ⇧ R",description:"Debug Terminal"},{mac:"⌘ ⌫",windows:"⌃ ⌫",description:"Cancel response"},{mac:"⌘ K ⌘ M",windows:"⌃ K ⌃ M",description:"Toggle Full Screen"},{mac:"⌘ '",windows:"⌃ '",description:"Toggle Selected Model"}],ANI=[{mac:"⌘ J",windows:"⌃ J",description:"Select Code + New Session"},{mac:"⌘ ⇧ J",windows:"⌃ ⇧ J",description:"Select Code"},{mac:"⌘ I",windows:"⌃ I",description:"Edit highlighted code"},{mac:"⌘ ⇧ I",windows:"⌃ ⇧ I",description:"Toggle inline edit focus"},{mac:"⌘ ⇧ ⏎",windows:"⌃ ⇧ ⏎",description:"Accept Diff"},{mac:"⌘ ⇧ ⌫",windows:"⌃ ⇧ ⌫",description:"Reject Diff"},{mac:"⌥ ⇧ J",windows:"⎇ ⇧ J",description:"Quick Input"},{mac:"⌥ ⌘ J",windows:"⎇ ⌃ J",description:"Toggle Sidebar"},{mac:"⌘ ⌫",windows:"⌃ ⌫",description:"Cancel response"},{mac:"⌘ '",windows:"⌃ '",description:"Toggle Selected Model"}];function yNI(){return v.jsxs("div",{className:"p-2",children:[v.jsx("h3",{className:"my-3 mx-auto text-center",children:"Keyboard Shortcuts"}),v.jsx(HNI,{children:(localStorage.getItem("ide")==="jetbrains"?ANI:gNI).map(I=>v.jsx(vNI,{mac:I.mac,windows:I.windows,description:I.description}))})]})}const JNI=["highlightedCode","newSessionWithPrompt","focusContinueInput","focusContinueInputWithoutClear","newSession"],Uh=()=>{const I=Be(),l=TF();for(const c of JNI)sG(c,async G=>{I("/"),setTimeout(()=>{window.postMessage({messageType:c,data:G,messageId:cb()},"*")},200)},[I]);sG("viewHistory",async()=>{l.pathname==="/history"?I("/"):I("/history")},[l,I])},BNI=LI.div` - margin: 4px; - border-top: 0.5px solid ${ul}; - border-bottom: 0.5px solid ${ul}; -`,Jo=LI.div` + &:hover { + cursor: pointer; + outline: 1px solid ${kE}; + } +`;function lF(e){var l,s,u,c,d,g,h;const[t,n]=E.useState(((l=e.dimensions)==null?void 0:l.map(m=>Object.keys(m.options)[0]))||[]),[r,i]=E.useState(!1),[a,o]=E.useState(void 0);return E.useEffect(()=>{var m;(m=e.providerOptions)!=null&&m.length&&o(e.providerOptions[0])},[e.providerOptions]),W.jsxs(nwe,{disabled:e.disabled||!1,color:my,hovered:r,children:[W.jsxs("div",{onMouseEnter:()=>i(!0),onMouseLeave:()=>i(!1),className:"px-2 py-1",onClick:e.disabled?void 0:m=>{m.target.closest("a")||e.onClick(m,t,a)},children:[W.jsxs("div",{className:"mb-2",style:{display:"flex",alignItems:"center"},children:[window.vscMediaUrl&&e.icon&&W.jsx("img",{src:`${window.vscMediaUrl}/logos/${e.icon}`,width:"24px",height:"24px",style:{borderRadius:"2px",padding:"4px",marginRight:"10px",objectFit:"contain"}}),W.jsx("h3",{children:e.title})]}),(s=e.tags)==null?void 0:s.map((m,A)=>W.jsx(wU,{tag:m},A)),W.jsx("p",{children:e.description}),e.refUrl&&W.jsx("a",{style:{position:"absolute",right:"8px",top:"8px"},href:e.refUrl,target:"_blank",children:W.jsx(Vr,{text:"Read the docs",children:W.jsx(LV,{width:"1.6em",height:"1.6em"})})})]}),(((u=e.dimensions)==null?void 0:u.length)||((c=e.providerOptions)==null?void 0:c.length))&&W.jsxs(rwe,{children:[(d=e.dimensions)==null?void 0:d.map((m,A)=>W.jsxs(W.Fragment,{children:[W.jsxs("div",{className:"flex items-center justify-between",children:[W.jsxs("div",{className:"flex items-center",children:[W.jsx(GB,{msg:m.description}),W.jsx("p",{className:"mx-2 text-sm my-0 py-0",children:m.name})]}),W.jsx("div",{className:"flex items-center",children:Object.keys(m.options).map(B=>W.jsx(iwe,{onClick:C=>{C.stopPropagation();const b=[...t];b[A]=B,n(b)},selected:t[A]===B,children:B}))})]}),W.jsx("br",{})]})),((g=e.providerOptions)==null?void 0:g.length)&&W.jsxs("div",{className:"flex items-center flex-wrap justify-end rtl",children:[W.jsx("div",{className:"flex items-center",children:W.jsx(GB,{msg:"Select the provider through which you will access the model"})}),W.jsx("div",{className:"flex items-center flex-wrap justify-end rtl",children:(h=e.providerOptions)==null?void 0:h.map((m,A)=>{const B=Ac[m];return B?W.jsx(Vr,{text:B.title,className:"p-2 text-center mx-1 items-center",style:{backgroundColor:A===0&&typeof a>"u"||a===m?my+"aa":void 0},onClick:()=>{o(m)},children:window.vscMediaUrl&&B.icon&&W.jsx("img",{src:`${window.vscMediaUrl}/logos/${B.icon}`,height:"24px"})}):null})})]})]})]})}const awe=Ve.div` display: flex; align-items: center; - justify-content: center; + text-align: center; + margin: auto; + width: fit-content; cursor: pointer; - padding: 12px; + border: 1px solid ${rt}; - & > a { - color: ${ec}; - text-decoration: none; - display: flex; - align-items: center; - width: 100%; - justify-content: center; - } + background-color: ${yn}; + border-radius: ${jt}; &:hover { - background-color: ${I=>I.backgroundColor||ul}; - } -`,kNI=LI(xt)` - padding: 2px 4px; - margin-left: auto; - margin-right: 12px; - background-color: transparent; - color: ${ec}; - border: 1px solid ${ul}; - &:hover { - background-color: ${ul}; - } -`;function rx(){Uh();const I=Be();return v.jsxs("div",{className:"overflow-y-scroll overflow-x-hidden",children:[v.jsxs("div",{className:"items-center flex m-0 p-0 sticky top-0",style:{borderBottom:`0.5px solid ${ul}`,backgroundColor:fc},children:[v.jsx(h0,{width:"1.2em",height:"1.2em",onClick:()=>I("/"),className:"inline-block ml-4 cursor-pointer"}),v.jsx("h3",{className:"text-lg font-bold m-2 inline-block",children:"Help Center"}),v.jsx(kNI,{onClick:()=>{Yc("showTutorial",void 0)},children:"Open tutorial"})]}),v.jsx("h3",{className:"my-0 py-3 mx-auto text-center cursor-pointer",onClick:()=>{I("/stats")},children:"View My Usage"}),v.jsx(nw,{className:"my-0"}),v.jsx("h3",{className:"my-3 mx-auto text-center",children:"Resources"}),v.jsxs(BNI,{className:"border",children:[v.jsx(Jo,{backgroundColor:"rgb(234, 51, 35)",children:v.jsxs("a",{href:"https://youtu.be/3Ocrc-WX4iQ?si=eDLYtkc6CXQoHsEc",target:"_blank",children:[v.jsx("svg",{width:"42px",height:"42px",xmlns:"http://www.w3.org/2000/svg",viewBox:"-5.2 -4.5 60 60",fill:ec,children:v.jsx("path",{d:"M 44.898438 14.5 C 44.5 12.300781 42.601563 10.699219 40.398438 10.199219 C 37.101563 9.5 31 9 24.398438 9 C 17.800781 9 11.601563 9.5 8.300781 10.199219 C 6.101563 10.699219 4.199219 12.199219 3.800781 14.5 C 3.398438 17 3 20.5 3 25 C 3 29.5 3.398438 33 3.898438 35.5 C 4.300781 37.699219 6.199219 39.300781 8.398438 39.800781 C 11.898438 40.5 17.898438 41 24.5 41 C 31.101563 41 37.101563 40.5 40.601563 39.800781 C 42.800781 39.300781 44.699219 37.800781 45.101563 35.5 C 45.5 33 46 29.398438 46.101563 25 C 45.898438 20.5 45.398438 17 44.898438 14.5 Z M 19 32 L 19 18 L 31.199219 25 Z"})}),"Demo Video"]})}),v.jsx(Jo,{backgroundColor:"#1bbe84a8",children:v.jsxs("a",{href:"https://continue.dev/docs/how-to-use-continue",target:"_blank",children:[v.jsx("svg",{width:"42px",height:"42px",xmlns:"http://www.w3.org/2000/svg",viewBox:"-2.2 -2 28 28",fill:ec,children:v.jsx("path",{d:"M11.25 4.533A9.707 9.707 0 006 3a9.735 9.735 0 00-3.25.555.75.75 0 00-.5.707v14.25a.75.75 0 001 .707A8.237 8.237 0 016 18.75c1.995 0 3.823.707 5.25 1.886V4.533zM12.75 20.636A8.214 8.214 0 0118 18.75c.966 0 1.89.166 2.75.47a.75.75 0 001-.708V4.262a.75.75 0 00-.5-.707A9.735 9.735 0 0018 3a9.707 9.707 0 00-5.25 1.533v16.103z"})}),"Documentation"]})}),v.jsx(Jo,{backgroundColor:"rgb(88, 98, 227)",children:v.jsxs("a",{href:"https://discord.gg/vapESyrFmJ",target:"_blank",children:[v.jsx("svg",{width:"42px",height:"42px",xmlns:"http://www.w3.org/2000/svg",viewBox:"-5 -5.5 60 60",fill:ec,children:v.jsx("path",{d:"M 41.625 10.769531 C 37.644531 7.566406 31.347656 7.023438 31.078125 7.003906 C 30.660156 6.96875 30.261719 7.203125 30.089844 7.589844 C 30.074219 7.613281 29.9375 7.929688 29.785156 8.421875 C 32.417969 8.867188 35.652344 9.761719 38.578125 11.578125 C 39.046875 11.867188 39.191406 12.484375 38.902344 12.953125 C 38.710938 13.261719 38.386719 13.429688 38.050781 13.429688 C 37.871094 13.429688 37.6875 13.378906 37.523438 13.277344 C 32.492188 10.15625 26.210938 10 25 10 C 23.789063 10 17.503906 10.15625 12.476563 13.277344 C 12.007813 13.570313 11.390625 13.425781 11.101563 12.957031 C 10.808594 12.484375 10.953125 11.871094 11.421875 11.578125 C 14.347656 9.765625 17.582031 8.867188 20.214844 8.425781 C 20.0625 7.929688 19.925781 7.617188 19.914063 7.589844 C 19.738281 7.203125 19.34375 6.960938 18.921875 7.003906 C 18.652344 7.023438 12.355469 7.566406 8.320313 10.8125 C 6.214844 12.761719 2 24.152344 2 34 C 2 34.175781 2.046875 34.34375 2.132813 34.496094 C 5.039063 39.605469 12.972656 40.941406 14.78125 41 C 14.789063 41 14.800781 41 14.8125 41 C 15.132813 41 15.433594 40.847656 15.621094 40.589844 L 17.449219 38.074219 C 12.515625 36.800781 9.996094 34.636719 9.851563 34.507813 C 9.4375 34.144531 9.398438 33.511719 9.765625 33.097656 C 10.128906 32.683594 10.761719 32.644531 11.175781 33.007813 C 11.234375 33.0625 15.875 37 25 37 C 34.140625 37 38.78125 33.046875 38.828125 33.007813 C 39.242188 32.648438 39.871094 32.683594 40.238281 33.101563 C 40.601563 33.515625 40.5625 34.144531 40.148438 34.507813 C 40.003906 34.636719 37.484375 36.800781 32.550781 38.074219 L 34.378906 40.589844 C 34.566406 40.847656 34.867188 41 35.1875 41 C 35.199219 41 35.210938 41 35.21875 41 C 37.027344 40.941406 44.960938 39.605469 47.867188 34.496094 C 47.953125 34.34375 48 34.175781 48 34 C 48 24.152344 43.785156 12.761719 41.625 10.769531 Z M 18.5 30 C 16.566406 30 15 28.210938 15 26 C 15 23.789063 16.566406 22 18.5 22 C 20.433594 22 22 23.789063 22 26 C 22 28.210938 20.433594 30 18.5 30 Z M 31.5 30 C 29.566406 30 28 28.210938 28 26 C 28 23.789063 29.566406 22 31.5 22 C 33.433594 22 35 23.789063 35 26 C 35 28.210938 33.433594 30 31.5 30 Z"})}),"Continue Discord"]})}),v.jsx(Jo,{children:v.jsxs("a",{href:"https://github.com/continuedev/continue/issues/new/choose",target:"_blank",children:[v.jsx("svg",{width:"42px",height:"42px",xmlns:"http://www.w3.org/2000/svg",viewBox:"-1.2 -1.2 32 32",fill:ec,children:v.jsx("path",{d:"M15,3C8.373,3,3,8.373,3,15c0,5.623,3.872,10.328,9.092,11.63C12.036,26.468,12,26.28,12,26.047v-2.051 c-0.487,0-1.303,0-1.508,0c-0.821,0-1.551-0.353-1.905-1.009c-0.393-0.729-0.461-1.844-1.435-2.526 c-0.289-0.227-0.069-0.486,0.264-0.451c0.615,0.174,1.125,0.596,1.605,1.222c0.478,0.627,0.703,0.769,1.596,0.769 c0.433,0,1.081-0.025,1.691-0.121c0.328-0.833,0.895-1.6,1.588-1.962c-3.996-0.411-5.903-2.399-5.903-5.098 c0-1.162,0.495-2.286,1.336-3.233C9.053,10.647,8.706,8.73,9.435,8c1.798,0,2.885,1.166,3.146,1.481C13.477,9.174,14.461,9,15.495,9 c1.036,0,2.024,0.174,2.922,0.483C18.675,9.17,19.763,8,21.565,8c0.732,0.731,0.381,2.656,0.102,3.594 c0.836,0.945,1.328,2.066,1.328,3.226c0,2.697-1.904,4.684-5.894,5.097C18.199,20.49,19,22.1,19,23.313v2.734 c0,0.104-0.023,0.179-0.035,0.268C23.641,24.676,27,20.236,27,15C27,8.373,21.627,3,15,3z"})}),"GitHub Issues"]})})]}),v.jsx(yNI,{})]})}var jc=function(){return jc=Object.assign||function(l){for(var c,G=1,e=arguments.length;G0&&d[d.length-1])&&(a[0]===6||a[0]===2)){c=0;continue}if(a[0]===3&&(!d||a[1]>d[0]&&a[1]=I.length&&(I=void 0),{value:I&&I[G++],done:!I}}};throw new TypeError(l?"Object is not iterable.":"Symbol.iterator is not defined.")}function HG(I,l){var c=typeof Symbol=="function"&&I[Symbol.iterator];if(!c)return I;var G=c.call(I),e,d=[],t;try{for(;(l===void 0||l-- >0)&&!(e=G.next()).done;)d.push(e.value)}catch(n){t={error:n}}finally{try{e&&!e.done&&(c=G.return)&&c.call(G)}finally{if(t)throw t.error}}return d}var UNI="ENTRIES",CD="KEYS",MD="VALUES",pe="",dX=function(){function I(l,c){var G=l._tree,e=Array.from(G.keys());this.set=l,this._type=c,this._path=e.length>0?[{node:G,keys:e}]:[]}return I.prototype.next=function(){var l=this.dive();return this.backtrack(),l},I.prototype.dive=function(){if(this._path.length===0)return{done:!0,value:void 0};var l=gr(this._path),c=l.node,G=l.keys;if(gr(G)===pe)return{done:!1,value:this.result()};var e=c.get(gr(G));return this._path.push({node:e,keys:Array.from(e.keys())}),this.dive()},I.prototype.backtrack=function(){if(this._path.length!==0){var l=gr(this._path).keys;l.pop(),!(l.length>0)&&(this._path.pop(),this.backtrack())}},I.prototype.key=function(){return this.set._prefix+this._path.map(function(l){var c=l.keys;return gr(c)}).filter(function(l){return l!==pe}).join("")},I.prototype.value=function(){return gr(this._path).node.get(pe)},I.prototype.result=function(){switch(this._type){case MD:return this.value();case CD:return this.key();default:return[this.key(),this.value()]}},I.prototype[Symbol.iterator]=function(){return this},I}(),gr=function(I){return I[I.length-1]},CNI=function(I,l,c){var G=new Map;if(l===void 0)return G;for(var e=l.length+1,d=e+c,t=new Uint8Array(d*e).fill(c+1),n=0;nc)continue I}fD(I.get(s),l,c,G,e,p,t,n+s)}}}catch(M){b={error:M}}finally{try{m&&!m.done&&(a=W.return)&&a.call(W)}finally{if(b)throw b.error}}},tX=function(){function I(l,c){l===void 0&&(l=new Map),c===void 0&&(c=""),this._size=void 0,this._tree=l,this._prefix=c}return I.prototype.atPrefix=function(l){var c,G;if(!l.startsWith(this._prefix))throw new Error("Mismatched prefix");var e=HG(bi(this._tree,l.slice(this._prefix.length)),2),d=e[0],t=e[1];if(d===void 0){var n=HG(FA(t),2),b=n[0],a=n[1];try{for(var Z=nc(b.keys()),W=Z.next();!W.done;W=Z.next()){var m=W.value;if(m!==pe&&m.startsWith(a)){var s=new Map;return s.set(m.slice(a.length),b.get(m)),new I(s,l)}}}catch(h){c={error:h}}finally{try{W&&!W.done&&(G=Z.return)&&G.call(Z)}finally{if(c)throw c.error}}}return new I(d,l)},I.prototype.clear=function(){this._size=void 0,this._tree.clear()},I.prototype.delete=function(l){return this._size=void 0,MNI(this._tree,l)},I.prototype.entries=function(){return new dX(this,UNI)},I.prototype.forEach=function(l){var c,G;try{for(var e=nc(this),d=e.next();!d.done;d=e.next()){var t=HG(d.value,2),n=t[0],b=t[1];l(n,b,this)}}catch(a){c={error:a}}finally{try{d&&!d.done&&(G=e.return)&&G.call(e)}finally{if(c)throw c.error}}},I.prototype.fuzzyGet=function(l,c){return CNI(this._tree,l,c)},I.prototype.get=function(l){var c=Sw(this._tree,l);return c!==void 0?c.get(pe):void 0},I.prototype.has=function(l){var c=Sw(this._tree,l);return c!==void 0&&c.has(pe)},I.prototype.keys=function(){return new dX(this,CD)},I.prototype.set=function(l,c){if(typeof l!="string")throw new Error("key must be a string");this._size=void 0;var G=nX(this._tree,l);return G.set(pe,c),this},Object.defineProperty(I.prototype,"size",{get:function(){if(this._size)return this._size;this._size=0;for(var l=this.entries();!l.next().done;)this._size+=1;return this._size},enumerable:!1,configurable:!0}),I.prototype.update=function(l,c){if(typeof l!="string")throw new Error("key must be a string");this._size=void 0;var G=nX(this._tree,l);return G.set(pe,c(G.get(pe))),this},I.prototype.fetch=function(l,c){if(typeof l!="string")throw new Error("key must be a string");this._size=void 0;var G=nX(this._tree,l),e=G.get(pe);return e===void 0&&G.set(pe,e=c()),e},I.prototype.values=function(){return new dX(this,MD)},I.prototype[Symbol.iterator]=function(){return this.entries()},I.from=function(l){var c,G,e=new I;try{for(var d=nc(l),t=d.next();!t.done;t=d.next()){var n=HG(t.value,2),b=n[0],a=n[1];e.set(b,a)}}catch(Z){c={error:Z}}finally{try{t&&!t.done&&(G=d.return)&&G.call(d)}finally{if(c)throw c.error}}return e},I.fromObject=function(l){return I.from(Object.entries(l))},I}(),bi=function(I,l,c){var G,e;if(c===void 0&&(c=[]),l.length===0||I==null)return[I,c];try{for(var d=nc(I.keys()),t=d.next();!t.done;t=d.next()){var n=t.value;if(n!==pe&&l.startsWith(n))return c.push([I,n]),bi(I.get(n),l.slice(n.length),c)}}catch(b){G={error:b}}finally{try{t&&!t.done&&(e=d.return)&&e.call(d)}finally{if(G)throw G.error}}return c.push([I,l]),bi(void 0,"",c)},Sw=function(I,l){var c,G;if(l.length===0||I==null)return I;try{for(var e=nc(I.keys()),d=e.next();!d.done;d=e.next()){var t=d.value;if(t!==pe&&l.startsWith(t))return Sw(I.get(t),l.slice(t.length))}}catch(n){c={error:n}}finally{try{d&&!d.done&&(G=e.return)&&G.call(e)}finally{if(c)throw c.error}}},nX=function(I,l){var c,G,e=l.length;I:for(var d=0;I&&d0)throw new Error("Expected documents to be present. Omit the argument to remove all documents.");this._index=new tX,this._documentCount=0,this._documentIds=new Map,this._idToShortId=new Map,this._fieldLength=new Map,this._avgFieldLength=[],this._storedFields=new Map,this._nextId=0}},I.prototype.discard=function(l){var c=this,G=this._idToShortId.get(l);if(G==null)throw new Error("MiniSearch: cannot discard document with ID ".concat(l,": it is not in the index"));this._idToShortId.delete(l),this._documentIds.delete(G),this._storedFields.delete(G),(this._fieldLength.get(G)||[]).forEach(function(e,d){c.removeFieldLength(G,d,c._documentCount,e)}),this._fieldLength.delete(G),this._documentCount-=1,this._dirtCount+=1,this.maybeAutoVacuum()},I.prototype.maybeAutoVacuum=function(){if(this._options.autoVacuum!==!1){var l=this._options.autoVacuum,c=l.minDirtFactor,G=l.minDirtCount,e=l.batchSize,d=l.batchWait;this.conditionalVacuum({batchSize:e,batchWait:d},{minDirtCount:G,minDirtFactor:c})}},I.prototype.discardAll=function(l){var c,G,e=this._options.autoVacuum;try{this._options.autoVacuum=!1;try{for(var d=nc(l),t=d.next();!t.done;t=d.next()){var n=t.value;this.discard(n)}}catch(b){c={error:b}}finally{try{t&&!t.done&&(G=d.return)&&G.call(d)}finally{if(c)throw c.error}}}finally{this._options.autoVacuum=e}this.maybeAutoVacuum()},I.prototype.replace=function(l){var c=this._options,G=c.idField,e=c.extractField,d=e(l,G);this.discard(d),this.add(l)},I.prototype.vacuum=function(l){return l===void 0&&(l={}),this.conditionalVacuum(l)},I.prototype.conditionalVacuum=function(l,c){var G=this;return this._currentVacuum?(this._enqueuedVacuumConditions=this._enqueuedVacuumConditions&&c,this._enqueuedVacuum!=null?this._enqueuedVacuum:(this._enqueuedVacuum=this._currentVacuum.then(function(){var e=G._enqueuedVacuumConditions;return G._enqueuedVacuumConditions=Dw,G.performVacuuming(l,e)}),this._enqueuedVacuum)):this.vacuumConditionsMet(c)===!1?Promise.resolve():(this._currentVacuum=this.performVacuuming(l),this._currentVacuum)},I.prototype.performVacuuming=function(l,c){return xNI(this,void 0,void 0,function(){var G,e,d,t,n,b,a,Z,W,m,s,h,p,V,o,F,X,H,Y,R,B,C,k,N,J;return zNI(this,function(A){switch(A.label){case 0:if(G=this._dirtCount,!this.vacuumConditionsMet(c))return[3,10];e=l.batchSize||jw.batchSize,d=l.batchWait||jw.batchWait,t=1,A.label=1;case 1:A.trys.push([1,7,8,9]),n=nc(this._index),b=n.next(),A.label=2;case 2:if(b.done)return[3,6];a=HG(b.value,2),Z=a[0],W=a[1];try{for(m=(C=void 0,nc(W)),s=m.next();!s.done;s=m.next()){h=HG(s.value,2),p=h[0],V=h[1];try{for(o=(N=void 0,nc(V)),F=o.next();!F.done;F=o.next())X=HG(F.value,1),H=X[0],!this._documentIds.has(H)&&(V.size<=1?W.delete(p):V.delete(H))}catch(M){N={error:M}}finally{try{F&&!F.done&&(J=o.return)&&J.call(o)}finally{if(N)throw N.error}}}}catch(M){C={error:M}}finally{try{s&&!s.done&&(k=m.return)&&k.call(m)}finally{if(C)throw C.error}}return this._index.get(Z).size===0&&this._index.delete(Z),t%e!==0?[3,4]:[4,new Promise(function(M){return setTimeout(M,d)})];case 3:A.sent(),A.label=4;case 4:t+=1,A.label=5;case 5:return b=n.next(),[3,2];case 6:return[3,9];case 7:return Y=A.sent(),R={error:Y},[3,9];case 8:try{b&&!b.done&&(B=n.return)&&B.call(n)}finally{if(R)throw R.error}return[7];case 9:this._dirtCount-=G,A.label=10;case 10:return[4,null];case 11:return A.sent(),this._currentVacuum=this._enqueuedVacuum,this._enqueuedVacuum=null,[2]}})})},I.prototype.vacuumConditionsMet=function(l){if(l==null)return!0;var c=l.minDirtCount,G=l.minDirtFactor;return c=c||ZX.minDirtCount,G=G||ZX.minDirtFactor,this.dirtCount>=c&&this.dirtFactor>=G},Object.defineProperty(I.prototype,"isVacuuming",{get:function(){return this._currentVacuum!=null},enumerable:!1,configurable:!0}),Object.defineProperty(I.prototype,"dirtCount",{get:function(){return this._dirtCount},enumerable:!1,configurable:!0}),Object.defineProperty(I.prototype,"dirtFactor",{get:function(){return this._dirtCount/(1+this._documentCount+this._dirtCount)},enumerable:!1,configurable:!0}),I.prototype.has=function(l){return this._idToShortId.has(l)},I.prototype.getStoredFields=function(l){var c=this._idToShortId.get(l);if(c!=null)return this._storedFields.get(c)},I.prototype.search=function(l,c){var G,e;c===void 0&&(c={});var d=this.executeQuery(l,c),t=[];try{for(var n=nc(d),b=n.next();!b.done;b=n.next()){var a=HG(b.value,2),Z=a[0],W=a[1],m=W.score,s=W.terms,h=W.match,p=s.length||1,V={id:this._documentIds.get(Z),score:m*p,terms:Object.keys(h),queryTerms:s,match:h};Object.assign(V,this._storedFields.get(Z)),(c.filter==null||c.filter(V))&&t.push(V)}}catch(o){G={error:o}}finally{try{b&&!b.done&&(e=n.return)&&e.call(n)}finally{if(G)throw G.error}}return l===I.wildcard&&c.boostDocument==null&&this._options.searchOptions.boostDocument==null||t.sort(ux),t},I.prototype.autoSuggest=function(l,c){var G,e,d,t;c===void 0&&(c={}),c=jc(jc({},this._options.autoSuggestOptions),c);var n=new Map;try{for(var b=nc(this.search(l,c)),a=b.next();!a.done;a=b.next()){var Z=a.value,W=Z.score,m=Z.terms,s=m.join(" "),h=n.get(s);h!=null?(h.score+=W,h.count+=1):n.set(s,{score:W,terms:m,count:1})}}catch(Y){G={error:Y}}finally{try{a&&!a.done&&(e=b.return)&&e.call(b)}finally{if(G)throw G.error}}var p=[];try{for(var V=nc(n),o=V.next();!o.done;o=V.next()){var F=HG(o.value,2),h=F[0],X=F[1],W=X.score,m=X.terms,H=X.count;p.push({suggestion:h,terms:m,score:W/H})}}catch(Y){d={error:Y}}finally{try{o&&!o.done&&(t=V.return)&&t.call(V)}finally{if(d)throw d.error}}return p.sort(ux),p},Object.defineProperty(I.prototype,"documentCount",{get:function(){return this._documentCount},enumerable:!1,configurable:!0}),Object.defineProperty(I.prototype,"termCount",{get:function(){return this._index.size},enumerable:!1,configurable:!0}),I.loadJSON=function(l,c){if(c==null)throw new Error("MiniSearch: loadJSON should be given the same options used when serializing the index");return this.loadJS(JSON.parse(l),c)},I.getDefault=function(l){if(aX.hasOwnProperty(l))return bX(aX,l);throw new Error('MiniSearch: unknown option "'.concat(l,'"'))},I.loadJS=function(l,c){var G,e,d,t,n,b,a=l.index,Z=l.documentCount,W=l.nextId,m=l.documentIds,s=l.fieldIds,h=l.fieldLength,p=l.averageFieldLength,V=l.storedFields,o=l.dirtCount,F=l.serializationVersion;if(F!==1&&F!==2)throw new Error("MiniSearch: cannot deserialize an index created with an incompatible version");var X=new I(c);X._documentCount=Z,X._nextId=W,X._documentIds=Bo(m),X._idToShortId=new Map,X._fieldIds=s,X._fieldLength=Bo(h),X._avgFieldLength=p,X._storedFields=Bo(V),X._dirtCount=o||0,X._index=new tX;try{for(var H=nc(X._documentIds),Y=H.next();!Y.done;Y=H.next()){var R=HG(Y.value,2),B=R[0],C=R[1];X._idToShortId.set(C,B)}}catch(tI){G={error:tI}}finally{try{Y&&!Y.done&&(e=H.return)&&e.call(H)}finally{if(G)throw G.error}}try{for(var k=nc(a),N=k.next();!N.done;N=k.next()){var J=HG(N.value,2),A=J[0],M=J[1],D=new Map;try{for(var O=(n=void 0,nc(Object.keys(M))),$=O.next();!$.done;$=O.next()){var j=$.value,S=M[j];F===1&&(S=S.ds),D.set(parseInt(j,10),Bo(S))}}catch(tI){n={error:tI}}finally{try{$&&!$.done&&(b=O.return)&&b.call(O)}finally{if(n)throw n.error}}X._index.set(A,D)}}catch(tI){d={error:tI}}finally{try{N&&!N.done&&(t=k.return)&&t.call(k)}finally{if(d)throw d.error}}return X},I.prototype.executeQuery=function(l,c){var G=this;if(c===void 0&&(c={}),l===I.wildcard)return this.executeWildcardQuery(c);if(typeof l!="string"){var e=jc(jc(jc({},c),l),{queries:void 0}),d=l.queries.map(function(V){return G.executeQuery(V,e)});return this.combineResults(d,e.combineWith)}var t=this._options,n=t.tokenize,b=t.processTerm,a=t.searchOptions,Z=jc(jc({tokenize:n,processTerm:b},a),c),W=Z.tokenize,m=Z.processTerm,s=W(l).flatMap(function(V){return m(V)}).filter(function(V){return!!V}),h=s.map(TNI(Z)),p=h.map(function(V){return G.executeQuerySpec(V,Z)});return this.combineResults(p,Z.combineWith)},I.prototype.executeQuerySpec=function(l,c){var G,e,d,t,n=jc(jc({},this._options.searchOptions),c),b=(n.fields||this._options.fields).reduce(function(j,S){var tI;return jc(jc({},j),(tI={},tI[S]=bX(n.boost,S)||1,tI))},{}),a=n.boostDocument,Z=n.weights,W=n.maxFuzzy,m=n.bm25,s=jc(jc({},mx.weights),Z),h=s.fuzzy,p=s.prefix,V=this._index.get(l.term),o=this.termResults(l.term,l.term,1,V,b,a,m),F,X;if(l.prefix&&(F=this._index.atPrefix(l.term)),l.fuzzy){var H=l.fuzzy===!0?.2:l.fuzzy,Y=H<1?Math.min(W,Math.round(l.term.length*H)):H;Y&&(X=this._index.fuzzyGet(l.term,Y))}if(F)try{for(var R=nc(F),B=R.next();!B.done;B=R.next()){var C=HG(B.value,2),k=C[0],N=C[1],J=k.length-l.term.length;if(J){X==null||X.delete(k);var A=p*k.length/(k.length+.3*J);this.termResults(l.term,k,A,N,b,a,m,o)}}}catch(j){G={error:j}}finally{try{B&&!B.done&&(e=R.return)&&e.call(R)}finally{if(G)throw G.error}}if(X)try{for(var M=nc(X.keys()),D=M.next();!D.done;D=M.next()){var k=D.value,O=HG(X.get(k),2),$=O[0],J=O[1];if(J){var A=h*k.length/(k.length+J);this.termResults(l.term,k,A,$,b,a,m,o)}}}catch(j){d={error:j}}finally{try{D&&!D.done&&(t=M.return)&&t.call(M)}finally{if(d)throw d.error}}return o},I.prototype.executeWildcardQuery=function(l){var c,G,e=new Map,d=jc(jc({},this._options.searchOptions),l);try{for(var t=nc(this._documentIds),n=t.next();!n.done;n=t.next()){var b=HG(n.value,2),a=b[0],Z=b[1],W=d.boostDocument?d.boostDocument(Z,"",this._storedFields.get(a)):1;e.set(a,{score:W,terms:[],match:{}})}}catch(m){c={error:m}}finally{try{n&&!n.done&&(G=t.return)&&G.call(t)}finally{if(c)throw c.error}}return e},I.prototype.combineResults=function(l,c){if(c===void 0&&(c=NA),l.length===0)return new Map;var G=c.toLowerCase();return l.reduce(KNI[G])||new Map},I.prototype.toJSON=function(){var l,c,G,e,d=[];try{for(var t=nc(this._index),n=t.next();!n.done;n=t.next()){var b=HG(n.value,2),a=b[0],Z=b[1],W={};try{for(var m=(G=void 0,nc(Z)),s=m.next();!s.done;s=m.next()){var h=HG(s.value,2),p=h[0],V=h[1];W[p]=Object.fromEntries(V)}}catch(o){G={error:o}}finally{try{s&&!s.done&&(e=m.return)&&e.call(m)}finally{if(G)throw G.error}}d.push([a,W])}}catch(o){l={error:o}}finally{try{n&&!n.done&&(c=t.return)&&c.call(t)}finally{if(l)throw l.error}}return{documentCount:this._documentCount,nextId:this._nextId,documentIds:Object.fromEntries(this._documentIds),fieldIds:this._fieldIds,fieldLength:Object.fromEntries(this._fieldLength),averageFieldLength:this._avgFieldLength,storedFields:Object.fromEntries(this._storedFields),dirtCount:this._dirtCount,index:d,serializationVersion:2}},I.prototype.termResults=function(l,c,G,e,d,t,n,b){var a,Z,W,m,s;if(b===void 0&&(b=new Map),e==null)return b;try{for(var h=nc(Object.keys(d)),p=h.next();!p.done;p=h.next()){var V=p.value,o=d[V],F=this._fieldIds[V],X=e.get(F);if(X!=null){var H=X.size,Y=this._avgFieldLength[F];try{for(var R=(W=void 0,nc(X.keys())),B=R.next();!B.done;B=R.next()){var C=B.value;if(!this._documentIds.has(C)){this.removeTerm(F,C,c),H-=1;continue}var k=t?t(this._documentIds.get(C),c,this._storedFields.get(C)):1;if(k){var N=X.get(C),J=this._fieldLength.get(C)[F],A=SNI(N,H,this._documentCount,J,Y,n),M=G*o*k*A,D=b.get(C);if(D){D.score+=M,DNI(D.terms,l);var O=bX(D.match,c);O?O.push(V):D.match[c]=[V]}else b.set(C,{score:M,terms:[l],match:(s={},s[c]=[V],s)})}}}catch($){W={error:$}}finally{try{B&&!B.done&&(m=R.return)&&m.call(R)}finally{if(W)throw W.error}}}}}catch($){a={error:$}}finally{try{p&&!p.done&&(Z=h.return)&&Z.call(h)}finally{if(a)throw a.error}}return b},I.prototype.addTerm=function(l,c,G){var e=this._index.fetch(G,hx),d=e.get(l);if(d==null)d=new Map,d.set(c,1),e.set(l,d);else{var t=d.get(c);d.set(c,(t||0)+1)}},I.prototype.removeTerm=function(l,c,G){if(!this._index.has(G)){this.warnDocumentChanged(c,l,G);return}var e=this._index.fetch(G,hx),d=e.get(l);d==null||d.get(c)==null?this.warnDocumentChanged(c,l,G):d.get(c)<=1?d.size<=1?e.delete(l):d.delete(c):d.set(c,d.get(c)-1),this._index.get(G).size===0&&this._index.delete(G)},I.prototype.warnDocumentChanged=function(l,c,G){var e,d;try{for(var t=nc(Object.keys(this._fieldIds)),n=t.next();!n.done;n=t.next()){var b=n.value;if(this._fieldIds[b]===c){this._options.logger("warn","MiniSearch: document with ID ".concat(this._documentIds.get(l),' has changed before removal: term "').concat(G,'" was not present in field "').concat(b,'". Removing a document after it has changed can corrupt the index!'),"version_conflict");return}}}catch(a){e={error:a}}finally{try{n&&!n.done&&(d=t.return)&&d.call(t)}finally{if(e)throw e.error}}},I.prototype.addDocumentId=function(l){var c=this._nextId;return this._idToShortId.set(l,c),this._documentIds.set(c,l),this._documentCount+=1,this._nextId+=1,c},I.prototype.addFields=function(l){for(var c=0;cl?I.slice(0,l-3)+"...":I}function mN(I){const l=Nc(t=>t.state);Nc(Ir),Nc(t=>t.state.config.disableSessionTitles);async function c(){return await hd("history/list",void 0)}async function G(){var a;if(l.history.length===0)return;const t={...l};I(zh()),await new Promise(Z=>setTimeout(Z,10));let n=PNI(Ne(t.history[0].message.content).split(` -`).filter(Z=>Z.trim()!=="").slice(-1)[0]||"",50);const b={history:t.history,title:n,sessionId:t.sessionId,workspaceDirectory:((a=window.workspacePaths)==null?void 0:a[0])||""};return await hd("history/save",b)}async function e(t){return await hd("history/delete",{id:t})}async function d(t){return await hd("history/load",{id:t})}return{getHistory:c,saveSession:G,deleteSession:e,loadSession:d}}const _NI=LI.input` - padding: 4px 8px; - border-radius: ${Pl}; - border: 0.5px solid #888; - outline: none; - width: 90vw; - max-width: 500px; - margin: 8px auto; - display: block; - background-color: ${Mc}; - color: ${ec}; - &:focus { - border: 0.5px solid ${Ah}; - outline: none; - } -`,qNI=LI.tr` - &:hover { - background-color: ${Mc}; + background-color: ${rt}55; } +`,HD=Ve.div` + text-align: center; + padding: 8px 12px; + border-radius: ${jt}; - overflow-wrap: anywhere; + transition: all 0.2s ease-in-out; - border-bottom: 1px solid ${Mc}; - border-top: 1px solid ${Mc}; -`,ko=I=>{let l=new Date(I);return isNaN(l.getTime())&&(l=new Date(parseInt(I))),l},WX=LI.tr` - padding: 4px; - padding-left: 16px; - padding-right: 16px; - background-color: ${Mc}; - width: 100%; - font-weight: bold; - text-align: center; - align-items: center; - margin: 0; - position: sticky; - height: 1.5em; -`,$NI=LI.div` - cursor: pointer; - flex-grow: 1; - padding-left: 1rem; - padding-right: 1rem; - padding-top: 0.5rem; - padding-bottom: 0.5rem; -`;function I1I({session:I,date:l,onDelete:c}){const G=ne(),e=Be(),[d,t]=E.useState(!1),{saveSession:n,deleteSession:b,loadSession:a}=mN(G);return v.jsx("td",{onMouseEnter:()=>t(!0),onMouseLeave:()=>t(!1),children:v.jsxs("div",{className:"flex justify-between items-center w-full",children:[v.jsxs($NI,{onClick:async()=>{n();const Z=await a(I.sessionId);G(zh(Z)),e("/")},children:[v.jsx("div",{className:"text-md",children:JSON.stringify(I.title).slice(1,-1)}),v.jsxs("div",{className:"text-gray-400",children:[l.toLocaleString("en-US",{year:"2-digit",month:"2-digit",day:"2-digit",hour:"numeric",minute:"2-digit",hour12:!0})," | ",l1I(I.workspaceDirectory||""),"/"]})]}),d&&v.jsx(le,{className:"mr-2",text:"Delete",onClick:async()=>{b(I.sessionId),c(I.sessionId)},children:v.jsx(hg,{width:"1.3em",height:"1.3em"})})]})})}function l1I(I){const l=I.includes("/")?"/":"\\";return I.split(l).pop()||I}function c1I(){Uh();const I=Be(),[l,c]=E.useState([]),[G,e]=E.useState([]),d=window.workspacePaths||[],t=async R=>{c(B=>B.filter(C=>C.sessionId!==R))},[n,b]=E.useState(!1),a=Gl.useRef(null),[Z,W]=E.useState(0),m=ne(),{getHistory:s}=mN(m),[h,p]=E.useState(new Tw({fields:["title"],storeFields:["title","sessionId","id"]})),[V,o]=E.useState("");E.useEffect(()=>{(async()=>{const B=await s();c(B),h.addAll(B.map(C=>({title:C.title,sessionId:C.sessionId,id:C.sessionId})))})()},[]),E.useEffect(()=>{const R=h.search(V,{fuzzy:.1}).map(B=>B.id);e(l.filter(B=>!n||typeof d>"u"||typeof B.workspaceDirectory>"u"?!0:d.includes(B.workspaceDirectory)).filter(B=>V===""||R.includes(B.sessionId)).sort((B,C)=>ko(C.dateCreated).getTime()-ko(B.dateCreated).getTime()))},[n,l,V,h]),E.useEffect(()=>{var R;W(((R=a.current)==null?void 0:R.clientHeight)||100)},[a.current]);const F=new Date(Date.now()-1e3*60*60*24),X=new Date(Date.now()-1e3*60*60*24*7),H=new Date(Date.now()-1e3*60*60*24*30),Y=new Date(0);return v.jsxs("div",{className:"overflow-y-scroll",style:{fontSize:Fn()},children:[v.jsx("div",{ref:a,className:"sticky top-0",style:{backgroundColor:fc},children:v.jsxs("div",{className:"items-center flex m-0 p-0",style:{borderBottom:`0.5px solid ${ul}`},children:[v.jsx(h0,{width:"1.2em",height:"1.2em",onClick:()=>I("/"),className:"inline-block ml-4 cursor-pointer"}),v.jsx("h3",{className:"text-lg font-bold m-2 inline-block",children:"History"})]})}),v.jsxs("div",{children:[v.jsx(_NI,{placeholder:"Search past sessions",type:"text",onChange:R=>o(R.target.value)}),G.length===0&&v.jsxs("div",{className:"text-center m-4",children:['No past sessions found. To start a new session, either click the "+" button or use the keyboard shortcut: ',v.jsx("b",{children:"Option + Command + N"})]}),v.jsx("table",{className:"w-full border-spacing-0 border-collapse",children:v.jsx("tbody",{children:G.map((R,B)=>{const C=B>0?ko(G[B-1].dateCreated):Y,k=ko(R.dateCreated);return v.jsxs(E.Fragment,{children:[B===0&&k>F&&v.jsx(WX,{style:{top:`${Z-1}px`},children:"Today"}),kX&&C>F&&v.jsx(WX,{style:{top:`${Z-1}px`},children:"This Week"}),kH&&C>X&&v.jsx(WX,{style:{top:`${Z-1}px`},children:"This Month"}),v.jsx(qNI,{children:v.jsx(I1I,{session:R,date:k,onDelete:()=>t(R.sessionId)})},B)]},B)})})}),v.jsx("br",{}),v.jsx("i",{className:"text-sm ml-4",children:"All session data is saved in ~/.continue/sessions"})]})]})}function G1I(){const I=Be();return v.jsxs("div",{className:"p-8",children:[v.jsxs("h1",{children:["Migration to ",v.jsx("code",{children:"config.json"})]}),v.jsx("p",{children:"Continue now uses a .json config file. We hope that this takes the guesswork out of setting up."}),v.jsx("p",{children:"Your configuration should have been automatically migrated, but we recommend double-checking that everything looks correct."}),v.jsxs("p",{children:["For a summary of what changed and examples of ",v.jsx("code",{children:"config.json"}),", please see the"," ",v.jsx("a",{href:"https://continue.dev/docs/walkthroughs/config-file-migration",children:"migration walkthrough"}),", and if you have any questions please reach out to us on"," ",v.jsx("a",{href:"https://discord.gg/Y83xkG3uUW",children:"Discord"}),"."]}),v.jsx("i",{children:"Note: If you are running the server manually and have not updated the server, this message does not apply."}),v.jsx(UD,{showStop:!1,onClick:()=>{I("/")},disabled:!1})]})}var ai={exports:{}};/** - * @license - * Lodash - * Copyright OpenJS Foundation and other contributors - * Released under MIT license - * Based on Underscore.js 1.8.3 - * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - */ai.exports;(function(I,l){(function(){var c,G="4.17.21",e=200,d="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",t="Expected a function",n="Invalid `variable` option passed into `_.template`",b="__lodash_hash_undefined__",a=500,Z="__lodash_placeholder__",W=1,m=2,s=4,h=1,p=2,V=1,o=2,F=4,X=8,H=16,Y=32,R=64,B=128,C=256,k=512,N=30,J="...",A=800,M=16,D=1,O=2,$=3,j=1/0,S=9007199254740991,tI=17976931348623157e292,z=0/0,g=4294967295,GI=g-1,f=g>>>1,nI=[["ary",B],["bind",V],["bindKey",o],["curry",X],["curryRight",H],["flip",k],["partial",Y],["partialRight",R],["rearg",C]],VI="[object Arguments]",q="[object Array]",fI="[object AsyncFunction]",RI="[object Boolean]",cl="[object Date]",OI="[object DOMException]",PI="[object Error]",_I="[object Function]",tl="[object GeneratorFunction]",bl="[object Map]",Il="[object Number]",Fl="[object Null]",al="[object Object]",P="[object Promise]",eI="[object Proxy]",uI="[object RegExp]",wI="[object Set]",YI="[object String]",HI="[object Symbol]",NI="[object Undefined]",bI="[object WeakMap]",gI="[object WeakSet]",oI="[object ArrayBuffer]",QI="[object DataView]",dI="[object Float32Array]",xI="[object Float64Array]",Wl="[object Int8Array]",nl="[object Int16Array]",Hl="[object Int32Array]",_="[object Uint8Array]",FI="[object Uint8ClampedArray]",CI="[object Uint16Array]",ll="[object Uint32Array]",Zl=/\b__p \+= '';/g,vl=/\b(__p \+=) '' \+/g,kl=/(__e\(.*?\)|\b__t\)) \+\n'';/g,ql=/&(?:amp|lt|gt|quot|#39);/g,dG=/[&<>"']/g,ZI=RegExp(ql.source),pI=RegExp(dG.source),sI=/<%-([\s\S]+?)%>/g,EI=/<%([\s\S]+?)%>/g,dl=/<%=([\s\S]+?)%>/g,Al=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,AI=/^\w*$/,KI=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,zI=/[\\^$.*+?()[\]{}|]/g,Ql=RegExp(zI.source),_l=/^\s+/,gl=/\s/,$l=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,bc=/\{\n\/\* \[wrapped with (.+)\] \*/,ac=/,? & /,Sl=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,be=/[()=,{}\[\]\/\s]/,Xn=/\\(\\)?/g,dd=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,Xe=/\w*$/,pl=/^[-+]0x[0-9a-f]+$/i,rI=/^0b[01]+$/i,JI=/^\[object .+?Constructor\]$/,ml=/^0o[0-7]+$/i,dc=/^(?:0|[1-9]\d*)$/,yc=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,yl=/($^)/,Ll=/['\n\r\u2028\u2029\\]/g,Kc="\\ud800-\\udfff",dt="\\u0300-\\u036f",DG="\\ufe20-\\ufe2f",sp="\\u20d0-\\u20ff",U0=dt+DG+sp,g3="\\u2700-\\u27bf",A3="a-z\\xdf-\\xf6\\xf8-\\xff",Qq="\\xac\\xb1\\xd7\\xf7",wq="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",Eq="\\u2000-\\u206f",vq=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",y3="A-Z\\xc0-\\xd6\\xd8-\\xde",J3="\\ufe0e\\ufe0f",B3=Qq+wq+Eq+vq,y1="['’]",gq="["+Kc+"]",k3="["+B3+"]",up="["+U0+"]",x3="\\d+",Aq="["+g3+"]",z3="["+A3+"]",U3="[^"+Kc+B3+x3+g3+A3+y3+"]",J1="\\ud83c[\\udffb-\\udfff]",yq="(?:"+up+"|"+J1+")",C3="[^"+Kc+"]",B1="(?:\\ud83c[\\udde6-\\uddff]){2}",k1="[\\ud800-\\udbff][\\udc00-\\udfff]",mr="["+y3+"]",M3="\\u200d",f3="(?:"+z3+"|"+U3+")",Jq="(?:"+mr+"|"+U3+")",K3="(?:"+y1+"(?:d|ll|m|re|s|t|ve))?",L3="(?:"+y1+"(?:D|LL|M|RE|S|T|VE))?",S3=yq+"?",T3="["+J3+"]?",Bq="(?:"+M3+"(?:"+[C3,B1,k1].join("|")+")"+T3+S3+")*",kq="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",xq="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",j3=T3+S3+Bq,zq="(?:"+[Aq,B1,k1].join("|")+")"+j3,Uq="(?:"+[C3+up+"?",up,B1,k1,gq].join("|")+")",Cq=RegExp(y1,"g"),Mq=RegExp(up,"g"),x1=RegExp(J1+"(?="+J1+")|"+Uq+j3,"g"),fq=RegExp([mr+"?"+z3+"+"+K3+"(?="+[k3,mr,"$"].join("|")+")",Jq+"+"+L3+"(?="+[k3,mr+f3,"$"].join("|")+")",mr+"?"+f3+"+"+K3,mr+"+"+L3,xq,kq,x3,zq].join("|"),"g"),Kq=RegExp("["+M3+Kc+U0+J3+"]"),Lq=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Sq=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],Tq=-1,qc={};qc[dI]=qc[xI]=qc[Wl]=qc[nl]=qc[Hl]=qc[_]=qc[FI]=qc[CI]=qc[ll]=!0,qc[VI]=qc[q]=qc[oI]=qc[RI]=qc[QI]=qc[cl]=qc[PI]=qc[_I]=qc[bl]=qc[Il]=qc[al]=qc[uI]=qc[wI]=qc[YI]=qc[bI]=!1;var Tc={};Tc[VI]=Tc[q]=Tc[oI]=Tc[QI]=Tc[RI]=Tc[cl]=Tc[dI]=Tc[xI]=Tc[Wl]=Tc[nl]=Tc[Hl]=Tc[bl]=Tc[Il]=Tc[al]=Tc[uI]=Tc[wI]=Tc[YI]=Tc[HI]=Tc[_]=Tc[FI]=Tc[CI]=Tc[ll]=!0,Tc[PI]=Tc[_I]=Tc[bI]=!1;var jq={À:"A",Á:"A",Â:"A",Ã:"A",Ä:"A",Å:"A",à:"a",á:"a",â:"a",ã:"a",ä:"a",å:"a",Ç:"C",ç:"c",Ð:"D",ð:"d",È:"E",É:"E",Ê:"E",Ë:"E",è:"e",é:"e",ê:"e",ë:"e",Ì:"I",Í:"I",Î:"I",Ï:"I",ì:"i",í:"i",î:"i",ï:"i",Ñ:"N",ñ:"n",Ò:"O",Ó:"O",Ô:"O",Õ:"O",Ö:"O",Ø:"O",ò:"o",ó:"o",ô:"o",õ:"o",ö:"o",ø:"o",Ù:"U",Ú:"U",Û:"U",Ü:"U",ù:"u",ú:"u",û:"u",ü:"u",Ý:"Y",ý:"y",ÿ:"y",Æ:"Ae",æ:"ae",Þ:"Th",þ:"th",ß:"ss",Ā:"A",Ă:"A",Ą:"A",ā:"a",ă:"a",ą:"a",Ć:"C",Ĉ:"C",Ċ:"C",Č:"C",ć:"c",ĉ:"c",ċ:"c",č:"c",Ď:"D",Đ:"D",ď:"d",đ:"d",Ē:"E",Ĕ:"E",Ė:"E",Ę:"E",Ě:"E",ē:"e",ĕ:"e",ė:"e",ę:"e",ě:"e",Ĝ:"G",Ğ:"G",Ġ:"G",Ģ:"G",ĝ:"g",ğ:"g",ġ:"g",ģ:"g",Ĥ:"H",Ħ:"H",ĥ:"h",ħ:"h",Ĩ:"I",Ī:"I",Ĭ:"I",Į:"I",İ:"I",ĩ:"i",ī:"i",ĭ:"i",į:"i",ı:"i",Ĵ:"J",ĵ:"j",Ķ:"K",ķ:"k",ĸ:"k",Ĺ:"L",Ļ:"L",Ľ:"L",Ŀ:"L",Ł:"L",ĺ:"l",ļ:"l",ľ:"l",ŀ:"l",ł:"l",Ń:"N",Ņ:"N",Ň:"N",Ŋ:"N",ń:"n",ņ:"n",ň:"n",ŋ:"n",Ō:"O",Ŏ:"O",Ő:"O",ō:"o",ŏ:"o",ő:"o",Ŕ:"R",Ŗ:"R",Ř:"R",ŕ:"r",ŗ:"r",ř:"r",Ś:"S",Ŝ:"S",Ş:"S",Š:"S",ś:"s",ŝ:"s",ş:"s",š:"s",Ţ:"T",Ť:"T",Ŧ:"T",ţ:"t",ť:"t",ŧ:"t",Ũ:"U",Ū:"U",Ŭ:"U",Ů:"U",Ű:"U",Ų:"U",ũ:"u",ū:"u",ŭ:"u",ů:"u",ű:"u",ų:"u",Ŵ:"W",ŵ:"w",Ŷ:"Y",ŷ:"y",Ÿ:"Y",Ź:"Z",Ż:"Z",Ž:"Z",ź:"z",ż:"z",ž:"z",IJ:"IJ",ij:"ij",Œ:"Oe",œ:"oe",ʼn:"'n",ſ:"s"},Dq={"&":"&","<":"<",">":">",'"':""","'":"'"},Oq={"&":"&","<":"<",">":">",""":'"',"'":"'"},Pq={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},_q=parseFloat,qq=parseInt,D3=typeof sc=="object"&&sc&&sc.Object===Object&&sc,$q=typeof self=="object"&&self&&self.Object===Object&&self,ae=D3||$q||Function("return this")(),z1=l&&!l.nodeType&&l,BZ=z1&&!0&&I&&!I.nodeType&&I,O3=BZ&&BZ.exports===z1,U1=O3&&D3.process,tt=function(){try{var mI=BZ&&BZ.require&&BZ.require("util").types;return mI||U1&&U1.binding&&U1.binding("util")}catch{}}(),P3=tt&&tt.isArrayBuffer,_3=tt&&tt.isDate,q3=tt&&tt.isMap,$3=tt&&tt.isRegExp,IJ=tt&&tt.isSet,lJ=tt&&tt.isTypedArray;function wd(mI,yI,XI){switch(XI.length){case 0:return mI.call(yI);case 1:return mI.call(yI,XI[0]);case 2:return mI.call(yI,XI[0],XI[1]);case 3:return mI.call(yI,XI[0],XI[1],XI[2])}return mI.apply(yI,XI)}function I$(mI,yI,XI,il){for(var jl=-1,Ec=mI==null?0:mI.length;++jl-1}function C1(mI,yI,XI){for(var il=-1,jl=mI==null?0:mI.length;++il-1;);return XI}function aJ(mI,yI){for(var XI=mI.length;XI--&&sr(yI,mI[XI],0)>-1;);return XI}function a$(mI,yI){for(var XI=mI.length,il=0;XI--;)mI[XI]===yI&&++il;return il}var Z$=L1(jq),W$=L1(Dq);function r$(mI){return"\\"+Pq[mI]}function m$(mI,yI){return mI==null?c:mI[yI]}function ur(mI){return Kq.test(mI)}function s$(mI){return Lq.test(mI)}function u$(mI){for(var yI,XI=[];!(yI=mI.next()).done;)XI.push(yI.value);return XI}function D1(mI){var yI=-1,XI=Array(mI.size);return mI.forEach(function(il,jl){XI[++yI]=[jl,il]}),XI}function ZJ(mI,yI){return function(XI){return mI(yI(XI))}}function Wa(mI,yI){for(var XI=-1,il=mI.length,jl=0,Ec=[];++XI-1}function cII(r,u){var i=this.__data__,w=yp(i,r);return w<0?(++this.size,i.push([r,u])):i[w][1]=u,this}pb.prototype.clear=q$,pb.prototype.delete=$$,pb.prototype.get=III,pb.prototype.has=lII,pb.prototype.set=cII;function ob(r){var u=-1,i=r==null?0:r.length;for(this.clear();++u=u?r:u)),r}function Zt(r,u,i,w,x,T){var lI,aI=u&W,hI=u&m,BI=u&s;if(i&&(lI=x?i(r,w,x,T):i(r)),lI!==c)return lI;if(!ZG(r))return r;var kI=Ol(r);if(kI){if(lI=tlI(r),!aI)return td(r,lI)}else{var UI=Qe(r),sl=UI==_I||UI==tl;if(pa(r))return TJ(r,aI);if(UI==al||UI==VI||sl&&!x){if(lI=hI||sl?{}:W5(r),!aI)return hI?OII(r,oII(lI,r)):DII(r,NJ(lI,r))}else{if(!Tc[UI])return x?r:{};lI=nlI(r,UI,aI)}}T||(T=new Dt);var wl=T.get(r);if(wl)return wl;T.set(r,lI),C5(r)?r.forEach(function(fl){lI.add(Zt(fl,u,i,fl,r,T))}):z5(r)&&r.forEach(function(fl,rc){lI.set(rc,Zt(fl,u,i,rc,r,T))});var Ml=BI?hI?iR:VR:hI?bd:OG,Gc=kI?c:Ml(r);return nt(Gc||r,function(fl,rc){Gc&&(rc=fl,fl=r[rc]),T0(lI,rc,Zt(fl,u,i,rc,r,T))}),lI}function VII(r){var u=OG(r);return function(i){return RJ(i,r,u)}}function RJ(r,u,i){var w=i.length;if(r==null)return!w;for(r=Lc(r);w--;){var x=i[w],T=u[x],lI=r[x];if(lI===c&&!(x in r)||!T(lI))return!1}return!0}function YJ(r,u,i){if(typeof r!="function")throw new bt(t);return $0(function(){r.apply(c,i)},u)}function j0(r,u,i,w){var x=-1,T=hp,lI=!0,aI=r.length,hI=[],BI=u.length;if(!aI)return hI;i&&(u=tG(u,Ed(i))),w?(T=C1,lI=!1):u.length>=e&&(T=C0,lI=!1,u=new zZ(u));I:for(;++xx?0:x+i),w=w===c||w>x?x:Ic(w),w<0&&(w+=x),w=i>w?0:f5(w);i0&&i(aI)?u>1?Ze(aI,u-1,i,w,x):Za(x,aI):w||(x[x.length]=aI)}return x}var lR=qJ(),QJ=qJ(!0);function Hn(r,u){return r&&lR(r,u,OG)}function cR(r,u){return r&&QJ(r,u,OG)}function Bp(r,u){return aa(u,function(i){return Rb(r[i])})}function CZ(r,u){u=ua(u,r);for(var i=0,w=u.length;r!=null&&iu}function NII(r,u){return r!=null&&Jc.call(r,u)}function RII(r,u){return r!=null&&u in Lc(r)}function YII(r,u,i){return r>=He(u,i)&&r=120&&kI.length>=120)?new zZ(lI&&kI):c}kI=r[0];var UI=-1,sl=aI[0];I:for(;++UI-1;)aI!==r&&Hp.call(aI,hI,1),Hp.call(r,hI,1);return r}function zJ(r,u){for(var i=r?u.length:0,w=i-1;i--;){var x=u[i];if(i==w||x!==T){var T=x;Nb(x)?Hp.call(r,x,1):rR(r,x)}}return r}function aR(r,u){return r+Ep(oJ()*(u-r+1))}function xII(r,u,i,w){for(var x=-1,T=CG(wp((u-r)/(i||1)),0),lI=XI(T);T--;)lI[w?T:++x]=r,r+=i;return lI}function ZR(r,u){var i="";if(!r||u<1||u>S)return i;do u%2&&(i+=r),u=Ep(u/2),u&&(r+=r);while(u);return i}function tc(r,u){return QR(s5(r,u,ad),r+"")}function zII(r){return FJ(Hr(r))}function UII(r,u){var i=Hr(r);return Tp(i,UZ(u,0,i.length))}function P0(r,u,i,w){if(!ZG(r))return r;u=ua(u,r);for(var x=-1,T=u.length,lI=T-1,aI=r;aI!=null&&++xx?0:x+u),i=i>x?x:i,i<0&&(i+=x),x=u>i?0:i-u>>>0,u>>>=0;for(var T=XI(x);++w>>1,lI=r[T];lI!==null&&!gd(lI)&&(i?lI<=u:lI=e){var BI=u?null:$II(r);if(BI)return op(BI);lI=!1,x=C0,hI=new zZ}else hI=u?[]:aI;I:for(;++w=w?r:Wt(r,u,i)}var SJ=v$||function(r){return ae.clearTimeout(r)};function TJ(r,u){if(u)return r.slice();var i=r.length,w=mJ?mJ(i):new r.constructor(i);return r.copy(w),w}function hR(r){var u=new r.constructor(r.byteLength);return new Yp(u).set(new Yp(r)),u}function LII(r,u){var i=u?hR(r.buffer):r.buffer;return new r.constructor(i,r.byteOffset,r.byteLength)}function SII(r){var u=new r.constructor(r.source,Xe.exec(r));return u.lastIndex=r.lastIndex,u}function TII(r){return S0?Lc(S0.call(r)):{}}function jJ(r,u){var i=u?hR(r.buffer):r.buffer;return new r.constructor(i,r.byteOffset,r.length)}function DJ(r,u){if(r!==u){var i=r!==c,w=r===null,x=r===r,T=gd(r),lI=u!==c,aI=u===null,hI=u===u,BI=gd(u);if(!aI&&!BI&&!T&&r>u||T&&lI&&hI&&!aI&&!BI||w&&lI&&hI||!i&&hI||!x)return 1;if(!w&&!T&&!BI&&r=aI)return hI;var BI=i[w];return hI*(BI=="desc"?-1:1)}}return r.index-u.index}function OJ(r,u,i,w){for(var x=-1,T=r.length,lI=i.length,aI=-1,hI=u.length,BI=CG(T-lI,0),kI=XI(hI+BI),UI=!w;++aI1?i[x-1]:c,lI=x>2?i[2]:c;for(T=r.length>3&&typeof T=="function"?(x--,T):c,lI&&Ue(i[0],i[1],lI)&&(T=x<3?c:T,x=1),u=Lc(u);++w-1?x[T?u[lI]:lI]:c}}function l5(r){return Fb(function(u){var i=u.length,w=i,x=at.prototype.thru;for(r&&u.reverse();w--;){var T=u[w];if(typeof T!="function")throw new bt(t);if(x&&!lI&&Lp(T)=="wrapper")var lI=new at([],!0)}for(w=lI?w:i;++w1&&Vc.reverse(),kI&&hIaI))return!1;var BI=T.get(r),kI=T.get(u);if(BI&&kI)return BI==u&&kI==r;var UI=-1,sl=!0,wl=i&p?new zZ:c;for(T.set(r,u),T.set(u,r);++UI1?"& ":"")+u[w],u=u.join(i>2?", ":" "),r.replace($l,`{ -/* [wrapped with `+u+`] */ -`)}function alI(r){return Ol(r)||KZ(r)||!!(hJ&&r&&r[hJ])}function Nb(r,u){var i=typeof r;return u=u??S,!!u&&(i=="number"||i!="symbol"&&dc.test(r))&&r>-1&&r%1==0&&r0){if(++u>=A)return arguments[0]}else u=0;return r.apply(c,arguments)}}function Tp(r,u){var i=-1,w=r.length,x=w-1;for(u=u===c?w:u;++i1?r[u-1]:c;return i=typeof i=="function"?(r.pop(),i):c,H5(r,i)});function Q5(r){var u=K(r);return u.__chain__=!0,u}function icI(r,u){return u(r),r}function jp(r,u){return u(r)}var FcI=Fb(function(r){var u=r.length,i=u?r[0]:0,w=this.__wrapped__,x=function(T){return IR(T,r)};return u>1||this.__actions__.length||!(w instanceof hc)||!Nb(i)?this.thru(x):(w=w.slice(i,+i+(u?1:0)),w.__actions__.push({func:jp,args:[x],thisArg:c}),new at(w,this.__chain__).thru(function(T){return u&&!T.length&&T.push(c),T}))});function NcI(){return Q5(this)}function RcI(){return new at(this.value(),this.__chain__)}function YcI(){this.__values__===c&&(this.__values__=M5(this.value()));var r=this.__index__>=this.__values__.length,u=r?c:this.__values__[this.__index__++];return{done:r,value:u}}function XcI(){return this}function HcI(r){for(var u,i=this;i instanceof Ap;){var w=i5(i);w.__index__=0,w.__values__=c,u?x.__wrapped__=w:u=w;var x=w;i=i.__wrapped__}return x.__wrapped__=r,u}function QcI(){var r=this.__wrapped__;if(r instanceof hc){var u=r;return this.__actions__.length&&(u=new hc(this)),u=u.reverse(),u.__actions__.push({func:jp,args:[wR],thisArg:c}),new at(u,this.__chain__)}return this.thru(wR)}function wcI(){return KJ(this.__wrapped__,this.__actions__)}var EcI=Up(function(r,u,i){Jc.call(r,i)?++r[i]:Vb(r,i,1)});function vcI(r,u,i){var w=Ol(r)?cJ:iII;return i&&Ue(r,u,i)&&(u=c),w(r,Cl(u,3))}function gcI(r,u){var i=Ol(r)?aa:HJ;return i(r,Cl(u,3))}var AcI=I5(F5),ycI=I5(N5);function JcI(r,u){return Ze(Dp(r,u),1)}function BcI(r,u){return Ze(Dp(r,u),j)}function kcI(r,u,i){return i=i===c?1:Ic(i),Ze(Dp(r,u),i)}function w5(r,u){var i=Ol(r)?nt:ma;return i(r,Cl(u,3))}function E5(r,u){var i=Ol(r)?l$:XJ;return i(r,Cl(u,3))}var xcI=Up(function(r,u,i){Jc.call(r,i)?r[i].push(u):Vb(r,i,[u])});function zcI(r,u,i,w){r=nd(r)?r:Hr(r),i=i&&!w?Ic(i):0;var x=r.length;return i<0&&(i=CG(x+i,0)),$p(r)?i<=x&&r.indexOf(u,i)>-1:!!x&&sr(r,u,i)>-1}var UcI=tc(function(r,u,i){var w=-1,x=typeof u=="function",T=nd(r)?XI(r.length):[];return ma(r,function(lI){T[++w]=x?wd(u,lI,i):D0(lI,u,i)}),T}),CcI=Up(function(r,u,i){Vb(r,i,u)});function Dp(r,u){var i=Ol(r)?tG:AJ;return i(r,Cl(u,3))}function McI(r,u,i,w){return r==null?[]:(Ol(u)||(u=u==null?[]:[u]),i=w?c:i,Ol(i)||(i=i==null?[]:[i]),kJ(r,u,i))}var fcI=Up(function(r,u,i){r[i?0:1].push(u)},function(){return[[],[]]});function KcI(r,u,i){var w=Ol(r)?M1:tJ,x=arguments.length<3;return w(r,Cl(u,4),i,x,ma)}function LcI(r,u,i){var w=Ol(r)?c$:tJ,x=arguments.length<3;return w(r,Cl(u,4),i,x,XJ)}function ScI(r,u){var i=Ol(r)?aa:HJ;return i(r,_p(Cl(u,3)))}function TcI(r){var u=Ol(r)?FJ:zII;return u(r)}function jcI(r,u,i){(i?Ue(r,u,i):u===c)?u=1:u=Ic(u);var w=Ol(r)?uII:UII;return w(r,u)}function DcI(r){var u=Ol(r)?hII:MII;return u(r)}function OcI(r){if(r==null)return 0;if(nd(r))return $p(r)?hr(r):r.length;var u=Qe(r);return u==bl||u==wI?r.size:tR(r).length}function PcI(r,u,i){var w=Ol(r)?f1:fII;return i&&Ue(r,u,i)&&(u=c),w(r,Cl(u,3))}var _cI=tc(function(r,u){if(r==null)return[];var i=u.length;return i>1&&Ue(r,u[0],u[1])?u=[]:i>2&&Ue(u[0],u[1],u[2])&&(u=[u[0]]),kJ(r,Ze(u,1),[])}),Op=g$||function(){return ae.Date.now()};function qcI(r,u){if(typeof u!="function")throw new bt(t);return r=Ic(r),function(){if(--r<1)return u.apply(this,arguments)}}function v5(r,u,i){return u=i?c:u,u=r&&u==null?r.length:u,ib(r,B,c,c,c,c,u)}function g5(r,u){var i;if(typeof u!="function")throw new bt(t);return r=Ic(r),function(){return--r>0&&(i=u.apply(this,arguments)),r<=1&&(u=c),i}}var vR=tc(function(r,u,i){var w=V;if(i.length){var x=Wa(i,Yr(vR));w|=Y}return ib(r,w,u,i,x)}),A5=tc(function(r,u,i){var w=V|o;if(i.length){var x=Wa(i,Yr(A5));w|=Y}return ib(u,w,r,i,x)});function y5(r,u,i){u=i?c:u;var w=ib(r,X,c,c,c,c,c,u);return w.placeholder=y5.placeholder,w}function J5(r,u,i){u=i?c:u;var w=ib(r,H,c,c,c,c,c,u);return w.placeholder=J5.placeholder,w}function B5(r,u,i){var w,x,T,lI,aI,hI,BI=0,kI=!1,UI=!1,sl=!0;if(typeof r!="function")throw new bt(t);u=mt(u)||0,ZG(i)&&(kI=!!i.leading,UI="maxWait"in i,T=UI?CG(mt(i.maxWait)||0,u):T,sl="trailing"in i?!!i.trailing:sl);function wl(RG){var Pt=w,Xb=x;return w=x=c,BI=RG,lI=r.apply(Xb,Pt),lI}function Ml(RG){return BI=RG,aI=$0(rc,u),kI?wl(RG):lI}function Gc(RG){var Pt=RG-hI,Xb=RG-BI,IB=u-Pt;return UI?He(IB,T-Xb):IB}function fl(RG){var Pt=RG-hI,Xb=RG-BI;return hI===c||Pt>=u||Pt<0||UI&&Xb>=T}function rc(){var RG=Op();if(fl(RG))return Vc(RG);aI=$0(rc,Gc(RG))}function Vc(RG){return aI=c,sl&&w?wl(RG):(w=x=c,lI)}function Ad(){aI!==c&&SJ(aI),BI=0,w=hI=x=aI=c}function Ce(){return aI===c?lI:Vc(Op())}function yd(){var RG=Op(),Pt=fl(RG);if(w=arguments,x=this,hI=RG,Pt){if(aI===c)return Ml(hI);if(UI)return SJ(aI),aI=$0(rc,u),wl(hI)}return aI===c&&(aI=$0(rc,u)),lI}return yd.cancel=Ad,yd.flush=Ce,yd}var $cI=tc(function(r,u){return YJ(r,1,u)}),IGI=tc(function(r,u,i){return YJ(r,mt(u)||0,i)});function lGI(r){return ib(r,k)}function Pp(r,u){if(typeof r!="function"||u!=null&&typeof u!="function")throw new bt(t);var i=function(){var w=arguments,x=u?u.apply(this,w):w[0],T=i.cache;if(T.has(x))return T.get(x);var lI=r.apply(this,w);return i.cache=T.set(x,lI)||T,lI};return i.cache=new(Pp.Cache||ob),i}Pp.Cache=ob;function _p(r){if(typeof r!="function")throw new bt(t);return function(){var u=arguments;switch(u.length){case 0:return!r.call(this);case 1:return!r.call(this,u[0]);case 2:return!r.call(this,u[0],u[1]);case 3:return!r.call(this,u[0],u[1],u[2])}return!r.apply(this,u)}}function cGI(r){return g5(2,r)}var GGI=KII(function(r,u){u=u.length==1&&Ol(u[0])?tG(u[0],Ed(Cl())):tG(Ze(u,1),Ed(Cl()));var i=u.length;return tc(function(w){for(var x=-1,T=He(w.length,i);++x=u}),KZ=EJ(function(){return arguments}())?EJ:function(r){return oG(r)&&Jc.call(r,"callee")&&!uJ.call(r,"callee")},Ol=XI.isArray,oGI=P3?Ed(P3):HII;function nd(r){return r!=null&&qp(r.length)&&!Rb(r)}function NG(r){return oG(r)&&nd(r)}function VGI(r){return r===!0||r===!1||oG(r)&&ze(r)==RI}var pa=y$||fR,iGI=_3?Ed(_3):QII;function FGI(r){return oG(r)&&r.nodeType===1&&!Is(r)}function NGI(r){if(r==null)return!0;if(nd(r)&&(Ol(r)||typeof r=="string"||typeof r.splice=="function"||pa(r)||Xr(r)||KZ(r)))return!r.length;var u=Qe(r);if(u==bl||u==wI)return!r.size;if(q0(r))return!tR(r).length;for(var i in r)if(Jc.call(r,i))return!1;return!0}function RGI(r,u){return O0(r,u)}function YGI(r,u,i){i=typeof i=="function"?i:c;var w=i?i(r,u):c;return w===c?O0(r,u,c,i):!!w}function AR(r){if(!oG(r))return!1;var u=ze(r);return u==PI||u==OI||typeof r.message=="string"&&typeof r.name=="string"&&!Is(r)}function XGI(r){return typeof r=="number"&&pJ(r)}function Rb(r){if(!ZG(r))return!1;var u=ze(r);return u==_I||u==tl||u==fI||u==eI}function x5(r){return typeof r=="number"&&r==Ic(r)}function qp(r){return typeof r=="number"&&r>-1&&r%1==0&&r<=S}function ZG(r){var u=typeof r;return r!=null&&(u=="object"||u=="function")}function oG(r){return r!=null&&typeof r=="object"}var z5=q3?Ed(q3):EII;function HGI(r,u){return r===u||dR(r,u,NR(u))}function QGI(r,u,i){return i=typeof i=="function"?i:c,dR(r,u,NR(u),i)}function wGI(r){return U5(r)&&r!=+r}function EGI(r){if(rlI(r))throw new jl(d);return vJ(r)}function vGI(r){return r===null}function gGI(r){return r==null}function U5(r){return typeof r=="number"||oG(r)&&ze(r)==Il}function Is(r){if(!oG(r)||ze(r)!=al)return!1;var u=Xp(r);if(u===null)return!0;var i=Jc.call(u,"constructor")&&u.constructor;return typeof i=="function"&&i instanceof i&&Fp.call(i)==Q$}var yR=$3?Ed($3):vII;function AGI(r){return x5(r)&&r>=-S&&r<=S}var C5=IJ?Ed(IJ):gII;function $p(r){return typeof r=="string"||!Ol(r)&&oG(r)&&ze(r)==YI}function gd(r){return typeof r=="symbol"||oG(r)&&ze(r)==HI}var Xr=lJ?Ed(lJ):AII;function yGI(r){return r===c}function JGI(r){return oG(r)&&Qe(r)==bI}function BGI(r){return oG(r)&&ze(r)==gI}var kGI=Kp(nR),xGI=Kp(function(r,u){return r<=u});function M5(r){if(!r)return[];if(nd(r))return $p(r)?jt(r):td(r);if(M0&&r[M0])return u$(r[M0]());var u=Qe(r),i=u==bl?D1:u==wI?op:Hr;return i(r)}function Yb(r){if(!r)return r===0?r:0;if(r=mt(r),r===j||r===-j){var u=r<0?-1:1;return u*tI}return r===r?r:0}function Ic(r){var u=Yb(r),i=u%1;return u===u?i?u-i:u:0}function f5(r){return r?UZ(Ic(r),0,g):0}function mt(r){if(typeof r=="number")return r;if(gd(r))return z;if(ZG(r)){var u=typeof r.valueOf=="function"?r.valueOf():r;r=ZG(u)?u+"":u}if(typeof r!="string")return r===0?r:+r;r=nJ(r);var i=rI.test(r);return i||ml.test(r)?qq(r.slice(2),i?2:8):pl.test(r)?z:+r}function K5(r){return Qn(r,bd(r))}function zGI(r){return r?UZ(Ic(r),-S,S):r===0?r:0}function gc(r){return r==null?"":vd(r)}var UGI=Nr(function(r,u){if(q0(u)||nd(u)){Qn(u,OG(u),r);return}for(var i in u)Jc.call(u,i)&&T0(r,i,u[i])}),L5=Nr(function(r,u){Qn(u,bd(u),r)}),Io=Nr(function(r,u,i,w){Qn(u,bd(u),r,w)}),CGI=Nr(function(r,u,i,w){Qn(u,OG(u),r,w)}),MGI=Fb(IR);function fGI(r,u){var i=Fr(r);return u==null?i:NJ(i,u)}var KGI=tc(function(r,u){r=Lc(r);var i=-1,w=u.length,x=w>2?u[2]:c;for(x&&Ue(u[0],u[1],x)&&(w=1);++i1),T}),Qn(r,iR(r),i),w&&(i=Zt(i,W|m|s,IlI));for(var x=u.length;x--;)rR(i,u[x]);return i});function neI(r,u){return T5(r,_p(Cl(u)))}var beI=Fb(function(r,u){return r==null?{}:BII(r,u)});function T5(r,u){if(r==null)return{};var i=tG(iR(r),function(w){return[w]});return u=Cl(u),xJ(r,i,function(w,x){return u(w,x[0])})}function aeI(r,u,i){u=ua(u,r);var w=-1,x=u.length;for(x||(x=1,r=c);++wu){var w=r;r=u,u=w}if(i||r%1||u%1){var x=oJ();return He(r+x*(u-r+_q("1e-"+((x+"").length-1))),u)}return aR(r,u)}var ieI=Rr(function(r,u,i){return u=u.toLowerCase(),r+(i?O5(u):u)});function O5(r){return kR(gc(r).toLowerCase())}function P5(r){return r=gc(r),r&&r.replace(yc,Z$).replace(Mq,"")}function FeI(r,u,i){r=gc(r),u=vd(u);var w=r.length;i=i===c?w:UZ(Ic(i),0,w);var x=i;return i-=u.length,i>=0&&r.slice(i,x)==u}function NeI(r){return r=gc(r),r&&pI.test(r)?r.replace(dG,W$):r}function ReI(r){return r=gc(r),r&&Ql.test(r)?r.replace(zI,"\\$&"):r}var YeI=Rr(function(r,u,i){return r+(i?"-":"")+u.toLowerCase()}),XeI=Rr(function(r,u,i){return r+(i?" ":"")+u.toLowerCase()}),HeI=$J("toLowerCase");function QeI(r,u,i){r=gc(r),u=Ic(u);var w=u?hr(r):0;if(!u||w>=u)return r;var x=(u-w)/2;return fp(Ep(x),i)+r+fp(wp(x),i)}function weI(r,u,i){r=gc(r),u=Ic(u);var w=u?hr(r):0;return u&&w>>0,i?(r=gc(r),r&&(typeof u=="string"||u!=null&&!yR(u))&&(u=vd(u),!u&&ur(r))?ha(jt(r),0,i):r.split(u,i)):[]}var BeI=Rr(function(r,u,i){return r+(i?" ":"")+kR(u)});function keI(r,u,i){return r=gc(r),i=i==null?0:UZ(Ic(i),0,r.length),u=vd(u),r.slice(i,i+u.length)==u}function xeI(r,u,i){var w=K.templateSettings;i&&Ue(r,u,i)&&(u=c),r=gc(r),u=Io({},u,w,t5);var x=Io({},u.imports,w.imports,t5),T=OG(x),lI=j1(x,T),aI,hI,BI=0,kI=u.interpolate||yl,UI="__p += '",sl=O1((u.escape||yl).source+"|"+kI.source+"|"+(kI===dl?dd:yl).source+"|"+(u.evaluate||yl).source+"|$","g"),wl="//# sourceURL="+(Jc.call(u,"sourceURL")?(u.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++Tq+"]")+` -`;r.replace(sl,function(fl,rc,Vc,Ad,Ce,yd){return Vc||(Vc=Ad),UI+=r.slice(BI,yd).replace(Ll,r$),rc&&(aI=!0,UI+=`' + -__e(`+rc+`) + -'`),Ce&&(hI=!0,UI+=`'; -`+Ce+`; -__p += '`),Vc&&(UI+=`' + -((__t = (`+Vc+`)) == null ? '' : __t) + -'`),BI=yd+fl.length,fl}),UI+=`'; -`;var Ml=Jc.call(u,"variable")&&u.variable;if(!Ml)UI=`with (obj) { -`+UI+` -} -`;else if(be.test(Ml))throw new jl(n);UI=(hI?UI.replace(Zl,""):UI).replace(vl,"$1").replace(kl,"$1;"),UI="function("+(Ml||"obj")+`) { -`+(Ml?"":`obj || (obj = {}); -`)+"var __t, __p = ''"+(aI?", __e = _.escape":"")+(hI?`, __j = Array.prototype.join; -function print() { __p += __j.call(arguments, '') } -`:`; -`)+UI+`return __p -}`;var Gc=q5(function(){return Ec(T,wl+"return "+UI).apply(c,lI)});if(Gc.source=UI,AR(Gc))throw Gc;return Gc}function zeI(r){return gc(r).toLowerCase()}function UeI(r){return gc(r).toUpperCase()}function CeI(r,u,i){if(r=gc(r),r&&(i||u===c))return nJ(r);if(!r||!(u=vd(u)))return r;var w=jt(r),x=jt(u),T=bJ(w,x),lI=aJ(w,x)+1;return ha(w,T,lI).join("")}function MeI(r,u,i){if(r=gc(r),r&&(i||u===c))return r.slice(0,WJ(r)+1);if(!r||!(u=vd(u)))return r;var w=jt(r),x=aJ(w,jt(u))+1;return ha(w,0,x).join("")}function feI(r,u,i){if(r=gc(r),r&&(i||u===c))return r.replace(_l,"");if(!r||!(u=vd(u)))return r;var w=jt(r),x=bJ(w,jt(u));return ha(w,x).join("")}function KeI(r,u){var i=N,w=J;if(ZG(u)){var x="separator"in u?u.separator:x;i="length"in u?Ic(u.length):i,w="omission"in u?vd(u.omission):w}r=gc(r);var T=r.length;if(ur(r)){var lI=jt(r);T=lI.length}if(i>=T)return r;var aI=i-hr(w);if(aI<1)return w;var hI=lI?ha(lI,0,aI).join(""):r.slice(0,aI);if(x===c)return hI+w;if(lI&&(aI+=hI.length-aI),yR(x)){if(r.slice(aI).search(x)){var BI,kI=hI;for(x.global||(x=O1(x.source,gc(Xe.exec(x))+"g")),x.lastIndex=0;BI=x.exec(kI);)var UI=BI.index;hI=hI.slice(0,UI===c?aI:UI)}}else if(r.indexOf(vd(x),aI)!=aI){var sl=hI.lastIndexOf(x);sl>-1&&(hI=hI.slice(0,sl))}return hI+w}function LeI(r){return r=gc(r),r&&ZI.test(r)?r.replace(ql,V$):r}var SeI=Rr(function(r,u,i){return r+(i?" ":"")+u.toUpperCase()}),kR=$J("toUpperCase");function _5(r,u,i){return r=gc(r),u=i?c:u,u===c?s$(r)?N$(r):d$(r):r.match(u)||[]}var q5=tc(function(r,u){try{return wd(r,c,u)}catch(i){return AR(i)?i:new jl(i)}}),TeI=Fb(function(r,u){return nt(u,function(i){i=wn(i),Vb(r,i,vR(r[i],r))}),r});function jeI(r){var u=r==null?0:r.length,i=Cl();return r=u?tG(r,function(w){if(typeof w[1]!="function")throw new bt(t);return[i(w[0]),w[1]]}):[],tc(function(w){for(var x=-1;++xS)return[];var i=g,w=He(r,g);u=Cl(u),r-=g;for(var x=T1(w,u);++i0||u<0)?new hc(i):(r<0?i=i.takeRight(-r):r&&(i=i.drop(r)),u!==c&&(u=Ic(u),i=u<0?i.dropRight(-u):i.take(u-r)),i)},hc.prototype.takeRightWhile=function(r){return this.reverse().takeWhile(r).reverse()},hc.prototype.toArray=function(){return this.take(g)},Hn(hc.prototype,function(r,u){var i=/^(?:filter|find|map|reject)|While$/.test(u),w=/^(?:head|last)$/.test(u),x=K[w?"take"+(u=="last"?"Right":""):u],T=w||/^find/.test(u);x&&(K.prototype[u]=function(){var lI=this.__wrapped__,aI=w?[1]:arguments,hI=lI instanceof hc,BI=aI[0],kI=hI||Ol(lI),UI=function(rc){var Vc=x.apply(K,Za([rc],aI));return w&&sl?Vc[0]:Vc};kI&&i&&typeof BI=="function"&&BI.length!=1&&(hI=kI=!1);var sl=this.__chain__,wl=!!this.__actions__.length,Ml=T&&!sl,Gc=hI&&!wl;if(!T&&kI){lI=Gc?lI:new hc(this);var fl=r.apply(lI,aI);return fl.__actions__.push({func:jp,args:[UI],thisArg:c}),new at(fl,sl)}return Ml&&Gc?r.apply(this,aI):(fl=this.thru(UI),Ml?w?fl.value()[0]:fl.value():fl)})}),nt(["pop","push","shift","sort","splice","unshift"],function(r){var u=Vp[r],i=/^(?:push|sort|unshift)$/.test(r)?"tap":"thru",w=/^(?:pop|shift)$/.test(r);K.prototype[r]=function(){var x=arguments;if(w&&!this.__chain__){var T=this.value();return u.apply(Ol(T)?T:[],x)}return this[i](function(lI){return u.apply(Ol(lI)?lI:[],x)})}}),Hn(hc.prototype,function(r,u){var i=K[u];if(i){var w=i.name+"";Jc.call(ir,w)||(ir[w]=[]),ir[w].push({name:u,func:i})}}),ir[Cp(c,o).name]=[{name:"wrapper",func:c}],hc.prototype.clone=L$,hc.prototype.reverse=S$,hc.prototype.value=T$,K.prototype.at=FcI,K.prototype.chain=NcI,K.prototype.commit=RcI,K.prototype.next=YcI,K.prototype.plant=HcI,K.prototype.reverse=QcI,K.prototype.toJSON=K.prototype.valueOf=K.prototype.value=wcI,K.prototype.first=K.prototype.head,M0&&(K.prototype[M0]=XcI),K},pr=R$();BZ?((BZ.exports=pr)._=pr,z1._=pr):ae._=pr}).call(sc)})(ai,ai.exports);var TD=ai.exports;const Wu=Vn(TD);var Ch=I=>I.type==="checkbox",sm=I=>I instanceof Date,Se=I=>I==null;const jD=I=>typeof I=="object";var SG=I=>!Se(I)&&!Array.isArray(I)&&jD(I)&&!sm(I),e1I=I=>SG(I)&&I.target?Ch(I.target)?I.target.checked:I.target.value:I,d1I=I=>I.substring(0,I.search(/\.\d+(\.|$)/))||I,t1I=(I,l)=>I.has(d1I(l)),n1I=I=>{const l=I.constructor&&I.constructor.prototype;return SG(l)&&l.hasOwnProperty("isPrototypeOf")},RA=typeof window<"u"&&typeof window.HTMLElement<"u"&&typeof document<"u";function pt(I){let l;const c=Array.isArray(I);if(I instanceof Date)l=new Date(I);else if(I instanceof Set)l=new Set(I);else if(!(RA&&(I instanceof Blob||I instanceof FileList))&&(c||SG(I)))if(l=c?[]:{},!c&&!n1I(I))l=I;else for(const G in I)I.hasOwnProperty(G)&&(l[G]=pt(I[G]));else return I;return l}var Mh=I=>Array.isArray(I)?I.filter(Boolean):[],wG=I=>I===void 0,Yl=(I,l,c)=>{if(!l||!SG(I))return c;const G=Mh(l.split(/[,[\].]+?/)).reduce((e,d)=>Se(e)?e:e[d],I);return wG(G)||G===I?wG(I[l])?c:I[l]:G},kb=I=>typeof I=="boolean";const px={BLUR:"blur",FOCUS_OUT:"focusout",CHANGE:"change"},bn={onBlur:"onBlur",onChange:"onChange",onSubmit:"onSubmit",onTouched:"onTouched",all:"all"},Qb={max:"max",min:"min",maxLength:"maxLength",minLength:"minLength",pattern:"pattern",required:"required",validate:"validate"},b1I=Gl.createContext(null),DD=I=>{const{children:l,...c}=I;return Gl.createElement(b1I.Provider,{value:c},l)};var a1I=(I,l,c,G=!0)=>{const e={defaultValues:l._defaultValues};for(const d in I)Object.defineProperty(e,d,{get:()=>{const t=d;return l._proxyFormState[t]!==bn.all&&(l._proxyFormState[t]=!G||bn.all),c&&(c[t]=!0),I[t]}});return e},zd=I=>SG(I)&&!Object.keys(I).length,Z1I=(I,l,c,G)=>{c(I);const{name:e,...d}=I;return zd(d)||Object.keys(d).length>=Object.keys(l).length||Object.keys(d).find(t=>l[t]===(!G||bn.all))},rX=I=>Array.isArray(I)?I:[I];function W1I(I){const l=Gl.useRef(I);l.current=I,Gl.useEffect(()=>{const c=!I.disabled&&l.current.subject&&l.current.subject.subscribe({next:l.current.next});return()=>{c&&c.unsubscribe()}},[I.disabled])}var Sn=I=>typeof I=="string",r1I=(I,l,c,G,e)=>Sn(I)?(G&&l.watch.add(I),Yl(c,I,e)):Array.isArray(I)?I.map(d=>(G&&l.watch.add(d),Yl(c,d))):(G&&(l.watchAll=!0),c),YA=I=>/^\w*$/.test(I),OD=I=>Mh(I.replace(/["|']|\]/g,"").split(/\.|\[/)),lG=(I,l,c)=>{let G=-1;const e=YA(l)?[l]:OD(l),d=e.length,t=d-1;for(;++Gl?{...c[I],types:{...c[I]&&c[I].types?c[I].types:{},[G]:e||!0}}:{},ox=I=>({isOnSubmit:!I||I===bn.onSubmit,isOnBlur:I===bn.onBlur,isOnChange:I===bn.onChange,isOnAll:I===bn.all,isOnTouch:I===bn.onTouched}),Vx=(I,l,c)=>!c&&(l.watchAll||l.watch.has(I)||[...l.watch].some(G=>I.startsWith(G)&&/^\.\w+/.test(I.slice(G.length))));const ru=(I,l,c,G)=>{for(const e of c||Object.keys(I)){const d=Yl(I,e);if(d){const{_f:t,...n}=d;if(t){if(t.refs&&t.refs[0]&&l(t.refs[0],e)&&!G)break;if(t.ref&&l(t.ref,t.name)&&!G)break;ru(n,l)}else SG(n)&&ru(n,l)}}};var s1I=(I,l,c)=>{const G=Mh(Yl(I,c));return lG(G,"root",l[c]),lG(I,c,G),I},XA=I=>I.type==="file",Ua=I=>typeof I=="function",Zi=I=>{if(!RA)return!1;const l=I?I.ownerDocument:0;return I instanceof(l&&l.defaultView?l.defaultView.HTMLElement:HTMLElement)},O2=I=>Sn(I),HA=I=>I.type==="radio",Wi=I=>I instanceof RegExp;const ix={value:!1,isValid:!1},Fx={value:!0,isValid:!0};var PD=I=>{if(Array.isArray(I)){if(I.length>1){const l=I.filter(c=>c&&c.checked&&!c.disabled).map(c=>c.value);return{value:l,isValid:!!l.length}}return I[0].checked&&!I[0].disabled?I[0].attributes&&!wG(I[0].attributes.value)?wG(I[0].value)||I[0].value===""?Fx:{value:I[0].value,isValid:!0}:Fx:ix}return ix};const Nx={isValid:!1,value:null};var _D=I=>Array.isArray(I)?I.reduce((l,c)=>c&&c.checked&&!c.disabled?{isValid:!0,value:c.value}:l,Nx):Nx;function Rx(I,l,c="validate"){if(O2(I)||Array.isArray(I)&&I.every(O2)||kb(I)&&!I)return{type:c,message:O2(I)?I:"",ref:l}}var Ar=I=>SG(I)&&!Wi(I)?I:{value:I,message:""},Yx=async(I,l,c,G,e)=>{const{ref:d,refs:t,required:n,maxLength:b,minLength:a,min:Z,max:W,pattern:m,validate:s,name:h,valueAsNumber:p,mount:V,disabled:o}=I._f,F=Yl(l,h);if(!V||o)return{};const X=t?t[0]:d,H=A=>{G&&X.reportValidity&&(X.setCustomValidity(kb(A)?"":A||""),X.reportValidity())},Y={},R=HA(d),B=Ch(d),C=R||B,k=(p||XA(d))&&wG(d.value)&&wG(F)||Zi(d)&&d.value===""||F===""||Array.isArray(F)&&!F.length,N=m1I.bind(null,h,c,Y),J=(A,M,D,O=Qb.maxLength,$=Qb.minLength)=>{const j=A?M:D;Y[h]={type:A?O:$,message:j,ref:d,...N(A?O:$,j)}};if(e?!Array.isArray(F)||!F.length:n&&(!C&&(k||Se(F))||kb(F)&&!F||B&&!PD(t).isValid||R&&!_D(t).isValid)){const{value:A,message:M}=O2(n)?{value:!!n,message:n}:Ar(n);if(A&&(Y[h]={type:Qb.required,message:M,ref:X,...N(Qb.required,M)},!c))return H(M),Y}if(!k&&(!Se(Z)||!Se(W))){let A,M;const D=Ar(W),O=Ar(Z);if(!Se(F)&&!isNaN(F)){const $=d.valueAsNumber||F&&+F;Se(D.value)||(A=$>D.value),Se(O.value)||(M=$new Date(new Date().toDateString()+" "+z),S=d.type=="time",tI=d.type=="week";Sn(D.value)&&F&&(A=S?j(F)>j(D.value):tI?F>D.value:$>new Date(D.value)),Sn(O.value)&&F&&(M=S?j(F)+A.value,O=!Se(M.value)&&F.length<+M.value;if((D||O)&&(J(D,A.message,M.message),!c))return H(Y[h].message),Y}if(m&&!k&&Sn(F)){const{value:A,message:M}=Ar(m);if(Wi(A)&&!F.match(A)&&(Y[h]={type:Qb.pattern,message:M,ref:d,...N(Qb.pattern,M)},!c))return H(M),Y}if(s){if(Ua(s)){const A=await s(F,l),M=Rx(A,X);if(M&&(Y[h]={...M,...N(Qb.validate,M.message)},!c))return H(M.message),Y}else if(SG(s)){let A={};for(const M in s){if(!zd(A)&&!c)break;const D=Rx(await s[M](F,l),X,M);D&&(A={...D,...N(M,D.message)},H(D.message),c&&(Y[h]=A))}if(!zd(A)&&(Y[h]={ref:X,...A},!c))return Y}}return H(!0),Y};function u1I(I,l){const c=l.slice(0,-1).length;let G=0;for(;G{let I=[];return{get observers(){return I},next:e=>{for(const d of I)d.next&&d.next(e)},subscribe:e=>(I.push(e),{unsubscribe:()=>{I=I.filter(d=>d!==e)}}),unsubscribe:()=>{I=[]}}},ri=I=>Se(I)||!jD(I);function uW(I,l){if(ri(I)||ri(l))return I===l;if(sm(I)&&sm(l))return I.getTime()===l.getTime();const c=Object.keys(I),G=Object.keys(l);if(c.length!==G.length)return!1;for(const e of c){const d=I[e];if(!G.includes(e))return!1;if(e!=="ref"){const t=l[e];if(sm(d)&&sm(t)||SG(d)&&SG(t)||Array.isArray(d)&&Array.isArray(t)?!uW(d,t):d!==t)return!1}}return!0}var qD=I=>I.type==="select-multiple",p1I=I=>HA(I)||Ch(I),sX=I=>Zi(I)&&I.isConnected,$D=I=>{for(const l in I)if(Ua(I[l]))return!0;return!1};function mi(I,l={}){const c=Array.isArray(I);if(SG(I)||c)for(const G in I)Array.isArray(I[G])||SG(I[G])&&!$D(I[G])?(l[G]=Array.isArray(I[G])?[]:{},mi(I[G],l[G])):Se(I[G])||(l[G]=!0);return l}function I8(I,l,c){const G=Array.isArray(I);if(SG(I)||G)for(const e in I)Array.isArray(I[e])||SG(I[e])&&!$D(I[e])?wG(l)||ri(c[e])?c[e]=Array.isArray(I[e])?mi(I[e],[]):{...mi(I[e])}:I8(I[e],Se(l)?{}:l[e],c[e]):c[e]=!uW(I[e],l[e]);return c}var xo=(I,l)=>I8(I,l,mi(l)),l8=(I,{valueAsNumber:l,valueAsDate:c,setValueAs:G})=>wG(I)?I:l?I===""?NaN:I&&+I:c&&Sn(I)?new Date(I):G?G(I):I;function uX(I){const l=I.ref;if(!(I.refs?I.refs.every(c=>c.disabled):l.disabled))return XA(l)?l.files:HA(l)?_D(I.refs).value:qD(l)?[...l.selectedOptions].map(({value:c})=>c):Ch(l)?PD(I.refs).value:l8(wG(l.value)?I.ref.value:l.value,I)}var o1I=(I,l,c,G)=>{const e={};for(const d of I){const t=Yl(l,d);t&&lG(e,d,t._f)}return{criteriaMode:c,names:[...I],fields:e,shouldUseNativeValidation:G}},is=I=>wG(I)?I:Wi(I)?I.source:SG(I)?Wi(I.value)?I.value.source:I.value:I,V1I=I=>I.mount&&(I.required||I.min||I.max||I.maxLength||I.minLength||I.pattern||I.validate);function Xx(I,l,c){const G=Yl(I,c);if(G||YA(c))return{error:G,name:c};const e=c.split(".");for(;e.length;){const d=e.join("."),t=Yl(l,d),n=Yl(I,d);if(t&&!Array.isArray(t)&&c!==d)return{name:c};if(n&&n.type)return{name:d,error:n};e.pop()}return{name:c}}var i1I=(I,l,c,G,e)=>e.isOnAll?!1:!c&&e.isOnTouch?!(l||I):(c?G.isOnBlur:e.isOnBlur)?!I:(c?G.isOnChange:e.isOnChange)?I:!0,F1I=(I,l)=>!Mh(Yl(I,l)).length&&MG(I,l);const N1I={mode:bn.onSubmit,reValidateMode:bn.onChange,shouldFocusError:!0};function R1I(I={}){let l={...N1I,...I},c={submitCount:0,isDirty:!1,isLoading:Ua(l.defaultValues),isValidating:!1,isSubmitted:!1,isSubmitting:!1,isSubmitSuccessful:!1,isValid:!1,touchedFields:{},dirtyFields:{},validatingFields:{},errors:l.errors||{},disabled:l.disabled||!1},G={},e=SG(l.defaultValues)||SG(l.values)?pt(l.defaultValues||l.values)||{}:{},d=l.shouldUnregister?{}:pt(e),t={action:!1,mount:!1,watch:!1},n={mount:new Set,unMount:new Set,array:new Set,watch:new Set},b,a=0;const Z={isDirty:!1,dirtyFields:!1,validatingFields:!1,touchedFields:!1,isValidating:!1,isValid:!1,errors:!1},W={values:mX(),array:mX(),state:mX()},m=ox(l.mode),s=ox(l.reValidateMode),h=l.criteriaMode===bn.all,p=P=>eI=>{clearTimeout(a),a=setTimeout(P,eI)},V=async P=>{if(Z.isValid||P){const eI=l.resolver?zd((await C()).errors):await N(G,!0);eI!==c.isValid&&W.state.next({isValid:eI})}},o=(P,eI)=>{(Z.isValidating||Z.validatingFields)&&((P||Array.from(n.mount)).forEach(uI=>{uI&&(eI?lG(c.validatingFields,uI,eI):MG(c.validatingFields,uI))}),W.state.next({validatingFields:c.validatingFields,isValidating:!zd(c.validatingFields)}))},F=(P,eI=[],uI,wI,YI=!0,HI=!0)=>{if(wI&&uI){if(t.action=!0,HI&&Array.isArray(Yl(G,P))){const NI=uI(Yl(G,P),wI.argA,wI.argB);YI&&lG(G,P,NI)}if(HI&&Array.isArray(Yl(c.errors,P))){const NI=uI(Yl(c.errors,P),wI.argA,wI.argB);YI&&lG(c.errors,P,NI),F1I(c.errors,P)}if(Z.touchedFields&&HI&&Array.isArray(Yl(c.touchedFields,P))){const NI=uI(Yl(c.touchedFields,P),wI.argA,wI.argB);YI&&lG(c.touchedFields,P,NI)}Z.dirtyFields&&(c.dirtyFields=xo(e,d)),W.state.next({name:P,isDirty:A(P,eI),dirtyFields:c.dirtyFields,errors:c.errors,isValid:c.isValid})}else lG(d,P,eI)},X=(P,eI)=>{lG(c.errors,P,eI),W.state.next({errors:c.errors})},H=P=>{c.errors=P,W.state.next({errors:c.errors,isValid:!1})},Y=(P,eI,uI,wI)=>{const YI=Yl(G,P);if(YI){const HI=Yl(d,P,wG(uI)?Yl(e,P):uI);wG(HI)||wI&&wI.defaultChecked||eI?lG(d,P,eI?HI:uX(YI._f)):O(P,HI),t.mount&&V()}},R=(P,eI,uI,wI,YI)=>{let HI=!1,NI=!1;const bI={name:P},gI=!!(Yl(G,P)&&Yl(G,P)._f.disabled);if(!uI||wI){Z.isDirty&&(NI=c.isDirty,c.isDirty=bI.isDirty=A(),HI=NI!==bI.isDirty);const oI=gI||uW(Yl(e,P),eI);NI=!!(!gI&&Yl(c.dirtyFields,P)),oI||gI?MG(c.dirtyFields,P):lG(c.dirtyFields,P,!0),bI.dirtyFields=c.dirtyFields,HI=HI||Z.dirtyFields&&NI!==!oI}if(uI){const oI=Yl(c.touchedFields,P);oI||(lG(c.touchedFields,P,uI),bI.touchedFields=c.touchedFields,HI=HI||Z.touchedFields&&oI!==uI)}return HI&&YI&&W.state.next(bI),HI?bI:{}},B=(P,eI,uI,wI)=>{const YI=Yl(c.errors,P),HI=Z.isValid&&kb(eI)&&c.isValid!==eI;if(I.delayError&&uI?(b=p(()=>X(P,uI)),b(I.delayError)):(clearTimeout(a),b=null,uI?lG(c.errors,P,uI):MG(c.errors,P)),(uI?!uW(YI,uI):YI)||!zd(wI)||HI){const NI={...wI,...HI&&kb(eI)?{isValid:eI}:{},errors:c.errors,name:P};c={...c,...NI},W.state.next(NI)}},C=async P=>{o(P,!0);const eI=await l.resolver(d,l.context,o1I(P||n.mount,G,l.criteriaMode,l.shouldUseNativeValidation));return o(P),eI},k=async P=>{const{errors:eI}=await C(P);if(P)for(const uI of P){const wI=Yl(eI,uI);wI?lG(c.errors,uI,wI):MG(c.errors,uI)}else c.errors=eI;return eI},N=async(P,eI,uI={valid:!0})=>{for(const wI in P){const YI=P[wI];if(YI){const{_f:HI,...NI}=YI;if(HI){const bI=n.array.has(HI.name);o([wI],!0);const gI=await Yx(YI,d,h,l.shouldUseNativeValidation&&!eI,bI);if(o([wI]),gI[HI.name]&&(uI.valid=!1,eI))break;!eI&&(Yl(gI,HI.name)?bI?s1I(c.errors,gI,HI.name):lG(c.errors,HI.name,gI[HI.name]):MG(c.errors,HI.name))}NI&&await N(NI,eI,uI)}}return uI.valid},J=()=>{for(const P of n.unMount){const eI=Yl(G,P);eI&&(eI._f.refs?eI._f.refs.every(uI=>!sX(uI)):!sX(eI._f.ref))&&q(P)}n.unMount=new Set},A=(P,eI)=>(P&&eI&&lG(d,P,eI),!uW(g(),e)),M=(P,eI,uI)=>r1I(P,n,{...t.mount?d:wG(eI)?e:Sn(P)?{[P]:eI}:eI},uI,eI),D=P=>Mh(Yl(t.mount?d:e,P,I.shouldUnregister?Yl(e,P,[]):[])),O=(P,eI,uI={})=>{const wI=Yl(G,P);let YI=eI;if(wI){const HI=wI._f;HI&&(!HI.disabled&&lG(d,P,l8(eI,HI)),YI=Zi(HI.ref)&&Se(eI)?"":eI,qD(HI.ref)?[...HI.ref.options].forEach(NI=>NI.selected=YI.includes(NI.value)):HI.refs?Ch(HI.ref)?HI.refs.length>1?HI.refs.forEach(NI=>(!NI.defaultChecked||!NI.disabled)&&(NI.checked=Array.isArray(YI)?!!YI.find(bI=>bI===NI.value):YI===NI.value)):HI.refs[0]&&(HI.refs[0].checked=!!YI):HI.refs.forEach(NI=>NI.checked=NI.value===YI):XA(HI.ref)?HI.ref.value="":(HI.ref.value=YI,HI.ref.type||W.values.next({name:P,values:{...d}})))}(uI.shouldDirty||uI.shouldTouch)&&R(P,YI,uI.shouldTouch,uI.shouldDirty,!0),uI.shouldValidate&&z(P)},$=(P,eI,uI)=>{for(const wI in eI){const YI=eI[wI],HI=`${P}.${wI}`,NI=Yl(G,HI);(n.array.has(P)||!ri(YI)||NI&&!NI._f)&&!sm(YI)?$(HI,YI,uI):O(HI,YI,uI)}},j=(P,eI,uI={})=>{const wI=Yl(G,P),YI=n.array.has(P),HI=pt(eI);lG(d,P,HI),YI?(W.array.next({name:P,values:{...d}}),(Z.isDirty||Z.dirtyFields)&&uI.shouldDirty&&W.state.next({name:P,dirtyFields:xo(e,d),isDirty:A(P,HI)})):wI&&!wI._f&&!Se(HI)?$(P,HI,uI):O(P,HI,uI),Vx(P,n)&&W.state.next({...c}),W.values.next({name:t.mount?P:void 0,values:{...d}})},S=async P=>{const eI=P.target;let uI=eI.name,wI=!0;const YI=Yl(G,uI),HI=()=>eI.type?uX(YI._f):e1I(P),NI=bI=>{wI=Number.isNaN(bI)||bI===Yl(d,uI,bI)};if(YI){let bI,gI;const oI=HI(),QI=P.type===px.BLUR||P.type===px.FOCUS_OUT,dI=!V1I(YI._f)&&!l.resolver&&!Yl(c.errors,uI)&&!YI._f.deps||i1I(QI,Yl(c.touchedFields,uI),c.isSubmitted,s,m),xI=Vx(uI,n,QI);lG(d,uI,oI),QI?(YI._f.onBlur&&YI._f.onBlur(P),b&&b(0)):YI._f.onChange&&YI._f.onChange(P);const Wl=R(uI,oI,QI,!1),nl=!zd(Wl)||xI;if(!QI&&W.values.next({name:uI,type:P.type,values:{...d}}),dI)return Z.isValid&&V(),nl&&W.state.next({name:uI,...xI?{}:Wl});if(!QI&&xI&&W.state.next({...c}),l.resolver){const{errors:Hl}=await C([uI]);if(NI(oI),wI){const _=Xx(c.errors,G,uI),FI=Xx(Hl,G,_.name||uI);bI=FI.error,uI=FI.name,gI=zd(Hl)}}else o([uI],!0),bI=(await Yx(YI,d,h,l.shouldUseNativeValidation))[uI],o([uI]),NI(oI),wI&&(bI?gI=!1:Z.isValid&&(gI=await N(G,!0)));wI&&(YI._f.deps&&z(YI._f.deps),B(uI,gI,bI,Wl))}},tI=(P,eI)=>{if(Yl(c.errors,eI)&&P.focus)return P.focus(),1},z=async(P,eI={})=>{let uI,wI;const YI=rX(P);if(l.resolver){const HI=await k(wG(P)?P:YI);uI=zd(HI),wI=P?!YI.some(NI=>Yl(HI,NI)):uI}else P?(wI=(await Promise.all(YI.map(async HI=>{const NI=Yl(G,HI);return await N(NI&&NI._f?{[HI]:NI}:NI)}))).every(Boolean),!(!wI&&!c.isValid)&&V()):wI=uI=await N(G);return W.state.next({...!Sn(P)||Z.isValid&&uI!==c.isValid?{}:{name:P},...l.resolver||!P?{isValid:uI}:{},errors:c.errors}),eI.shouldFocus&&!wI&&ru(G,tI,P?YI:n.mount),wI},g=P=>{const eI={...e,...t.mount?d:{}};return wG(P)?eI:Sn(P)?Yl(eI,P):P.map(uI=>Yl(eI,uI))},GI=(P,eI)=>({invalid:!!Yl((eI||c).errors,P),isDirty:!!Yl((eI||c).dirtyFields,P),isTouched:!!Yl((eI||c).touchedFields,P),isValidating:!!Yl((eI||c).validatingFields,P),error:Yl((eI||c).errors,P)}),f=P=>{P&&rX(P).forEach(eI=>MG(c.errors,eI)),W.state.next({errors:P?c.errors:{}})},nI=(P,eI,uI)=>{const wI=(Yl(G,P,{_f:{}})._f||{}).ref;lG(c.errors,P,{...eI,ref:wI}),W.state.next({name:P,errors:c.errors,isValid:!1}),uI&&uI.shouldFocus&&wI&&wI.focus&&wI.focus()},VI=(P,eI)=>Ua(P)?W.values.subscribe({next:uI=>P(M(void 0,eI),uI)}):M(P,eI,!0),q=(P,eI={})=>{for(const uI of P?rX(P):n.mount)n.mount.delete(uI),n.array.delete(uI),eI.keepValue||(MG(G,uI),MG(d,uI)),!eI.keepError&&MG(c.errors,uI),!eI.keepDirty&&MG(c.dirtyFields,uI),!eI.keepTouched&&MG(c.touchedFields,uI),!eI.keepIsValidating&&MG(c.validatingFields,uI),!l.shouldUnregister&&!eI.keepDefaultValue&&MG(e,uI);W.values.next({values:{...d}}),W.state.next({...c,...eI.keepDirty?{isDirty:A()}:{}}),!eI.keepIsValid&&V()},fI=({disabled:P,name:eI,field:uI,fields:wI,value:YI})=>{if(kb(P)){const HI=P?void 0:wG(YI)?uX(uI?uI._f:Yl(wI,eI)._f):YI;lG(d,eI,HI),R(eI,HI,!1,!1,!0)}},RI=(P,eI={})=>{let uI=Yl(G,P);const wI=kb(eI.disabled);return lG(G,P,{...uI||{},_f:{...uI&&uI._f?uI._f:{ref:{name:P}},name:P,mount:!0,...eI}}),n.mount.add(P),uI?fI({field:uI,disabled:eI.disabled,name:P,value:eI.value}):Y(P,!0,eI.value),{...wI?{disabled:eI.disabled}:{},...l.progressive?{required:!!eI.required,min:is(eI.min),max:is(eI.max),minLength:is(eI.minLength),maxLength:is(eI.maxLength),pattern:is(eI.pattern)}:{},name:P,onChange:S,onBlur:S,ref:YI=>{if(YI){RI(P,eI),uI=Yl(G,P);const HI=wG(YI.value)&&YI.querySelectorAll&&YI.querySelectorAll("input,select,textarea")[0]||YI,NI=p1I(HI),bI=uI._f.refs||[];if(NI?bI.find(gI=>gI===HI):HI===uI._f.ref)return;lG(G,P,{_f:{...uI._f,...NI?{refs:[...bI.filter(sX),HI,...Array.isArray(Yl(e,P))?[{}]:[]],ref:{type:HI.type,name:P}}:{ref:HI}}}),Y(P,!1,void 0,HI)}else uI=Yl(G,P,{}),uI._f&&(uI._f.mount=!1),(l.shouldUnregister||eI.shouldUnregister)&&!(t1I(n.array,P)&&t.action)&&n.unMount.add(P)}}},cl=()=>l.shouldFocusError&&ru(G,tI,n.mount),OI=P=>{kb(P)&&(W.state.next({disabled:P}),ru(G,(eI,uI)=>{let wI=P;const YI=Yl(G,uI);YI&&kb(YI._f.disabled)&&(wI||(wI=YI._f.disabled)),eI.disabled=wI},0,!1))},PI=(P,eI)=>async uI=>{let wI;uI&&(uI.preventDefault&&uI.preventDefault(),uI.persist&&uI.persist());let YI=pt(d);if(W.state.next({isSubmitting:!0}),l.resolver){const{errors:HI,values:NI}=await C();c.errors=HI,YI=NI}else await N(G);if(MG(c.errors,"root"),zd(c.errors)){W.state.next({errors:{}});try{await P(YI,uI)}catch(HI){wI=HI}}else eI&&await eI({...c.errors},uI),cl(),setTimeout(cl);if(W.state.next({isSubmitted:!0,isSubmitting:!1,isSubmitSuccessful:zd(c.errors)&&!wI,submitCount:c.submitCount+1,errors:c.errors}),wI)throw wI},_I=(P,eI={})=>{Yl(G,P)&&(wG(eI.defaultValue)?j(P,pt(Yl(e,P))):(j(P,eI.defaultValue),lG(e,P,pt(eI.defaultValue))),eI.keepTouched||MG(c.touchedFields,P),eI.keepDirty||(MG(c.dirtyFields,P),c.isDirty=eI.defaultValue?A(P,pt(Yl(e,P))):A()),eI.keepError||(MG(c.errors,P),Z.isValid&&V()),W.state.next({...c}))},tl=(P,eI={})=>{const uI=P?pt(P):e,wI=pt(uI),YI=zd(P),HI=YI?e:wI;if(eI.keepDefaultValues||(e=uI),!eI.keepValues){if(eI.keepDirtyValues)for(const NI of n.mount)Yl(c.dirtyFields,NI)?lG(HI,NI,Yl(d,NI)):j(NI,Yl(HI,NI));else{if(RA&&wG(P))for(const NI of n.mount){const bI=Yl(G,NI);if(bI&&bI._f){const gI=Array.isArray(bI._f.refs)?bI._f.refs[0]:bI._f.ref;if(Zi(gI)){const oI=gI.closest("form");if(oI){oI.reset();break}}}}G={}}d=I.shouldUnregister?eI.keepDefaultValues?pt(e):{}:pt(HI),W.array.next({values:{...HI}}),W.values.next({values:{...HI}})}n={mount:eI.keepDirtyValues?n.mount:new Set,unMount:new Set,array:new Set,watch:new Set,watchAll:!1,focus:""},t.mount=!Z.isValid||!!eI.keepIsValid||!!eI.keepDirtyValues,t.watch=!!I.shouldUnregister,W.state.next({submitCount:eI.keepSubmitCount?c.submitCount:0,isDirty:YI?!1:eI.keepDirty?c.isDirty:!!(eI.keepDefaultValues&&!uW(P,e)),isSubmitted:eI.keepIsSubmitted?c.isSubmitted:!1,dirtyFields:YI?[]:eI.keepDirtyValues?eI.keepDefaultValues&&d?xo(e,d):c.dirtyFields:eI.keepDefaultValues&&P?xo(e,P):{},touchedFields:eI.keepTouched?c.touchedFields:{},errors:eI.keepErrors?c.errors:{},isSubmitSuccessful:eI.keepIsSubmitSuccessful?c.isSubmitSuccessful:!1,isSubmitting:!1})},bl=(P,eI)=>tl(Ua(P)?P(d):P,eI);return{control:{register:RI,unregister:q,getFieldState:GI,handleSubmit:PI,setError:nI,_executeSchema:C,_getWatch:M,_getDirty:A,_updateValid:V,_removeUnmounted:J,_updateFieldArray:F,_updateDisabledField:fI,_getFieldArray:D,_reset:tl,_resetDefaultValues:()=>Ua(l.defaultValues)&&l.defaultValues().then(P=>{bl(P,l.resetOptions),W.state.next({isLoading:!1})}),_updateFormState:P=>{c={...c,...P}},_disableForm:OI,_subjects:W,_proxyFormState:Z,_setErrors:H,get _fields(){return G},get _formValues(){return d},get _state(){return t},set _state(P){t=P},get _defaultValues(){return e},get _names(){return n},set _names(P){n=P},get _formState(){return c},set _formState(P){c=P},get _options(){return l},set _options(P){l={...l,...P}}},trigger:z,register:RI,handleSubmit:PI,watch:VI,setValue:j,getValues:g,reset:bl,resetField:_I,clearErrors:f,unregister:q,setError:nI,setFocus:(P,eI={})=>{const uI=Yl(G,P),wI=uI&&uI._f;if(wI){const YI=wI.refs?wI.refs[0]:wI.ref;YI.focus&&(YI.focus(),eI.shouldSelect&&YI.select())}},getFieldState:GI}}function c8(I={}){const l=Gl.useRef(),c=Gl.useRef(),[G,e]=Gl.useState({isDirty:!1,isValidating:!1,isLoading:Ua(I.defaultValues),isSubmitted:!1,isSubmitting:!1,isSubmitSuccessful:!1,isValid:!1,submitCount:0,dirtyFields:{},touchedFields:{},validatingFields:{},errors:I.errors||{},disabled:I.disabled||!1,defaultValues:Ua(I.defaultValues)?void 0:I.defaultValues});l.current||(l.current={...R1I(I),formState:G});const d=l.current.control;return d._options=I,W1I({subject:d._subjects.state,next:t=>{Z1I(t,d._proxyFormState,d._updateFormState,!0)&&e({...d._formState})}}),Gl.useEffect(()=>d._disableForm(I.disabled),[d,I.disabled]),Gl.useEffect(()=>{if(d._proxyFormState.isDirty){const t=d._getDirty();t!==G.isDirty&&d._subjects.state.next({isDirty:t})}},[d,G.isDirty]),Gl.useEffect(()=>{I.values&&!uW(I.values,c.current)?(d._reset(I.values,d._options.resetOptions),c.current=I.values,e(t=>({...t}))):d._resetDefaultValues()},[I.values,d]),Gl.useEffect(()=>{I.errors&&d._setErrors(I.errors)},[I.errors,d]),Gl.useEffect(()=>{d._state.mount||(d._updateValid(),d._state.mount=!0),d._state.watch&&(d._state.watch=!1,d._subjects.state.next({...d._formState})),d._removeUnmounted()}),Gl.useEffect(()=>{I.shouldUnregister&&d._subjects.values.next({values:d._getWatch()})},[I.shouldUnregister,d]),l.current.formState=a1I(G,d),l.current}var Y1I=X1I;function X1I(I){if(I)throw I}/*! + ${e=>e.selected&&` + background-color: ${g1}; + color: ${$f}; + `} +`;function iO(e){return W.jsxs(awe,{onClick:e.onClick,children:[W.jsx(HD,{selected:e.selected,children:e.optionOne}),W.jsx(HD,{selected:!e.selected,children:e.optionTwo})]})}const owe=["highlightedCode","newSessionWithPrompt","focusContinueInput","focusContinueInputWithoutClear","newSession"],sm=()=>{const e=Hr(),t=Hc();for(const n of owe)On(n,async r=>{e("/"),setTimeout(()=>{window.postMessage({messageType:n,data:r,messageId:zl()},"*")},200)},[e]);On("viewHistory",async()=>{t.pathname==="/history"?e("/"):e("/history")},[t,e])};var lwe=swe;function swe(e){if(e)throw e}/*! * Determine if an object is a Buffer * * @author Feross Aboukhadijeh * @license MIT - */var G8=function(l){return l!=null&&l.constructor!=null&&typeof l.constructor.isBuffer=="function"&&l.constructor.isBuffer(l)},H1I=I=>{if(Object.prototype.toString.call(I)!=="[object Object]")return!1;const l=Object.getPrototypeOf(I);return l===null||l===Object.prototype},Q1I=[].slice,w1I=E1I;function E1I(I,l){var c;return G;function G(){var t=Q1I.call(arguments,0),n=I.length>t.length,b;n&&t.push(e);try{b=I.apply(null,t)}catch(a){if(n&&c)throw a;return e(a)}n||(b&&typeof b.then=="function"?b.then(d,e):b instanceof Error?e(b):d(b))}function e(){c||(c=!0,l.apply(null,arguments))}function d(t){e(null,t)}}var e8=w1I,v1I=d8;d8.wrap=e8;var Hx=[].slice;function d8(){var I=[],l={};return l.run=c,l.use=G,l;function c(){var e=-1,d=Hx.call(arguments,0,-1),t=arguments[arguments.length-1];if(typeof t!="function")throw new Error("Expected function as last argument, not "+t);n.apply(null,[null].concat(d));function n(b){var a=I[++e],Z=Hx.call(arguments,0),W=Z.slice(1),m=d.length,s=-1;if(b){t(b);return}for(;++sI.length){for(;e--;)if(I.charCodeAt(e)===47){if(t){c=e+1;break}}else G<0&&(t=!0,G=e+1);return G<0?"":I.slice(c,G)}if(l===I)return"";for(d=-1,n=l.length-1;e--;)if(I.charCodeAt(e)===47){if(t){c=e+1;break}}else d<0&&(t=!0,d=e+1),n>-1&&(I.charCodeAt(e)===l.charCodeAt(n--)?n<0&&(G=e):(n=-1,G=d));return c===G?G=d:G<0&&(G=I.length),I.slice(c,G)}function k1I(I){var l,c,G;if(fh(I),!I.length)return".";for(l=-1,G=I.length;--G;)if(I.charCodeAt(G)===47){if(c){l=G;break}}else c||(c=!0);return l<0?I.charCodeAt(0)===47?"/":".":l===1&&I.charCodeAt(0)===47?"//":I.slice(0,l)}function x1I(I){var l=-1,c=0,G=-1,e=0,d,t,n;for(fh(I),n=I.length;n--;){if(t=I.charCodeAt(n),t===47){if(d){c=n+1;break}continue}G<0&&(d=!0,G=n+1),t===46?l<0?l=n:e!==1&&(e=1):l>-1&&(e=-1)}return l<0||G<0||e===0||e===1&&l===G-1&&l===c+1?"":I.slice(l,G)}function z1I(){for(var I=-1,l;++I2){if(b=c.lastIndexOf("/"),b!==c.length-1){b<0?(c="",G=0):(c=c.slice(0,b),G=c.length-1-c.lastIndexOf("/")),e=t,d=0;continue}}else if(c.length){c="",G=0,e=t,d=0;continue}}l&&(c=c.length?c+"/..":"..",G=2)}else c.length?c+="/"+I.slice(e+1,t):c=I.slice(e+1,t),G=t-e-1;e=t,d=0}else n===46&&d>-1?d++:d=-1}return c}function fh(I){if(typeof I!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(I))}var b8={};b8.cwd=M1I;function M1I(){return"/"}var db=i0,f1I=b8,K1I=G8,L1I=$b,S1I={}.hasOwnProperty,hX=["history","path","basename","stem","extname","dirname"];$b.prototype.toString=cRI;Object.defineProperty($b.prototype,"path",{get:T1I,set:j1I});Object.defineProperty($b.prototype,"dirname",{get:D1I,set:O1I});Object.defineProperty($b.prototype,"basename",{get:P1I,set:_1I});Object.defineProperty($b.prototype,"extname",{get:q1I,set:$1I});Object.defineProperty($b.prototype,"stem",{get:IRI,set:lRI});function $b(I){var l,c;if(!I)I={};else if(typeof I=="string"||K1I(I))I={contents:I};else if("message"in I&&"messages"in I)return I;if(!(this instanceof $b))return new $b(I);for(this.data={},this.messages=[],this.history=[],this.cwd=f1I.cwd(),c=-1;++c-1)throw new Error("`extname` cannot contain multiple dots")}this.path=db.join(this.dirname,this.stem+(I||""))}function IRI(){return typeof this.path=="string"?db.basename(this.path,this.extname):void 0}function lRI(I){EA(I,"stem"),wA(I,"stem"),this.path=db.join(this.dirname||"",I+(this.extname||""))}function cRI(I){return(this.contents||"").toString(I)}function wA(I,l){if(I&&I.indexOf(db.sep)>-1)throw new Error("`"+l+"` cannot be a path: did not expect `"+db.sep+"`")}function EA(I,l){if(!I)throw new Error("`"+l+"` cannot be empty")}function a8(I,l){if(!I)throw new Error("Setting `"+l+"` requires `path` to be set too")}var GRI=y1I,sN=L1I,eRI=sN;sN.prototype.message=dRI;sN.prototype.info=nRI;sN.prototype.fail=tRI;function dRI(I,l,c){var G=new GRI(I,l,c);return this.path&&(G.name=this.path+":"+G.name,G.file=this.path),G.fatal=!1,this.messages.push(G),G}function tRI(){var I=this.message.apply(this,arguments);throw I.fatal=!0,I}function nRI(){var I=this.message.apply(this,arguments);return I.fatal=null,I}var bRI=eRI,Ex=Y1I,aRI=G8,zo=Xj,vx=H1I,Z8=v1I,Fs=bRI,ZRI=W8().freeze(),WRI=[].slice,rRI={}.hasOwnProperty,mRI=Z8().use(sRI).use(uRI).use(hRI);function sRI(I,l){l.tree=I.parse(l.file)}function uRI(I,l,c){I.run(l.tree,l.file,G);function G(e,d,t){e?c(e):(l.tree=d,l.file=t,c())}}function hRI(I,l){var c=I.stringify(l.tree,l.file);c==null||(typeof c=="string"||aRI(c)?("value"in l.file&&(l.file.value=c),l.file.contents=c):l.file.result=c)}function W8(){var I=[],l=Z8(),c={},G=-1,e;return d.data=n,d.freeze=t,d.attachers=I,d.use=b,d.parse=Z,d.stringify=s,d.run=W,d.runSync=m,d.process=h,d.processSync=p,d;function d(){for(var V=W8(),o=-1;++o13&&c<32||c>126&&c<160||c>55295&&c<57344||c>64975&&c<65008||(c&65535)===65535||(c&65535)===65534||c>1114111?"�":YRI(c)}var HRI=XRI,gA={};function QRI(I){return I<-2}var jG=QRI;function wRI(I){return I===-2||I===-1||I===32}var na=wRI,Bx=na;function ERI(I,l,c,G){var e=G?G-1:1/0,d=0;return t;function t(b){return Bx(b)?(I.enter(c),n(b)):l(b)}function n(b){return Bx(b)&&d++F;)l.containerState=c[H][1],c[H][0].exit.call(l,I);c.length=F}function o(F,X){var H=0;return d={},Y;function Y(J){return H-1?void 0:4)}function LRI(I,l,c){return s8(I,I.lazy(this.parser.constructs.flow,l,c),"linePrefix",this.parser.constructs.disable.null.indexOf("codeIndented")>-1?void 0:4)}AA.tokenize=CRI;var yA={};function SRI(I){for(var l=-1,c=0;++le?0:e+l:l=l>e?e:l,c=c>0?c:0,G.length<1e4)t=Array.from(G),t.unshift(l,c),FX.apply(I,t);else for(c&&FX.apply(I,[l,c]);d-1||GYI(G.events,"linePrefix")<4?I.interrupt(G.parser.constructs.flow,c,l)(t):l(t)}}var WYI=tYI;Object.defineProperty(yA,"__esModule",{value:!0});var rYI=WYI,mYI=Ye,sYI=hN,uYI=hYI;function hYI(I){var l=this,c=I.attempt(sYI,G,I.attempt(this.parser.constructs.flowInitial,e,mYI(I,I.attempt(this.parser.constructs.flow,e,I.attempt(rYI,e)),"linePrefix")));return c;function G(d){if(d===null){I.consume(d);return}return I.enter("lineEndingBlank"),I.consume(d),I.exit("lineEndingBlank"),l.currentConstruct=void 0,c}function e(d){if(d===null){I.consume(d);return}return I.enter("lineEnding"),I.consume(d),I.exit("lineEnding"),l.currentConstruct=void 0,c}}yA.tokenize=uYI;var N0={};Object.defineProperty(N0,"__esModule",{value:!0});var pYI=Kh,kx=F0,oYI=V8("text"),VYI=V8("string"),iYI={resolveAll:i8()};function V8(I){return{tokenize:l,resolveAll:i8(I==="text"?FYI:void 0)};function l(c){var G=this,e=this.parser.constructs[I],d=c.attempt(e,t,n);return t;function t(Z){return a(Z)?d(Z):n(Z)}function n(Z){if(Z===null){c.consume(Z);return}return c.enter("data"),c.consume(Z),b}function b(Z){return a(Z)?(c.exit("data"),d(Z)):(c.consume(Z),b)}function a(Z){var W=e[Z],m=-1;if(Z===null)return!0;if(W){for(;++m-1&&(t[0]=t[0].slice(G)),d>0&&t.push(I[e].slice(0,d))),t}var kYI=BYI,xYI=Kh,zYI=jG,UYI=BA,CYI=QZ,NX=JA,MYI=kA,fYI=JYI,zx=F0,KYI=kYI;function LYI(I,l,c){var G=c?zx(c):{line:1,column:1,offset:0},e={},d=[],t=[],n=[],b={consume:F,enter:X,exit:H,attempt:B(Y),check:B(R),interrupt:B(R,{interrupt:!0}),lazy:B(R,{lazy:!0})},a={previous:null,events:[],parser:I,sliceStream:s,sliceSerialize:m,now:h,defineSkip:p,write:W},Z=l.tokenize.call(a,b);return l.resolveAll&&d.push(l),G._index=0,G._bufferIndex=-1,a;function W(J){return t=UYI(t,J),V(),t[t.length-1]!==null?[]:(C(l,0),a.events=MYI(d,a.events,a),a.events)}function m(J){return fYI(s(J))}function s(J){return KYI(t,J)}function h(){return zx(G)}function p(J){e[J.line]=J.column,N()}function V(){for(var J,A;G._index-1?VI():q.tokenize.call(A?xYI({},a,A):a,b,nI,VI)(RI)}}function nI(q){return J(tI,z),O}function VI(q){return z.restore(),++S1&&I[c][1].end.offset-I[c][1].start.offset>1?2:1,t={type:b>1?"strongSequence":"emphasisSequence",start:Cx(vn(I[G][1].end),-b),end:vn(I[G][1].end)},n={type:b>1?"strongSequence":"emphasisSequence",start:vn(I[c][1].start),end:Cx(vn(I[c][1].start),b)},d={type:b>1?"strongText":"emphasisText",start:vn(I[G][1].end),end:vn(I[c][1].start)},e={type:b>1?"strong":"emphasis",start:vn(t.start),end:vn(n.end)},I[G][1].end=vn(t.start),I[c][1].start=vn(n.end),a=[],I[G][1].end.offset-I[G][1].start.offset&&(a=Ns(a,[["enter",I[G][1],l],["exit",I[G][1],l]])),a=Ns(a,[["enter",e,l],["enter",t,l],["exit",t,l],["enter",d,l]]),a=Ns(a,rXI(l.parser.constructs.insideSpan.null,I.slice(G+1,c),l)),a=Ns(a,[["exit",d,l],["enter",n,l],["exit",n,l],["exit",e,l]]),I[c][1].end.offset-I[c][1].start.offset?(Z=2,a=Ns(a,[["enter",I[c][1],l],["exit",I[c][1],l]])):Z=0,WXI(I,G-1,c-G+3,a),c=G+a.length-Z-2;break}}for(c=-1;++c-1?void 0:4)}function JXI(I){I.exit("blockQuote")}var BXI=N8,kXI=EZ,xXI=kXI(/[!-/:-@[-`{-~]/),zXI=xXI,UXI=zXI,CXI={name:"characterEscape",tokenize:MXI};function MXI(I,l,c){return G;function G(d){return I.enter("characterEscape"),I.enter("escapeMarker"),I.consume(d),I.exit("escapeMarker"),e}function e(d){return UXI(d)?(I.enter("characterEscapeValue"),I.consume(d),I.exit("characterEscapeValue"),I.exit("characterEscape"),l):c(d)}}var fXI=CXI,Co,KXI=59,R8=LXI;function LXI(I){var l="&"+I+";",c;return Co=Co||document.createElement("i"),Co.innerHTML=l,c=Co.textContent,c.charCodeAt(c.length-1)===KXI&&I!=="semi"||c===l?!1:c}var SXI=EZ,TXI=SXI(/\d/),Y8=TXI,jXI=EZ,DXI=jXI(/[\dA-Fa-f]/),OXI=DXI,PXI=R8,fx=oN,_XI=Y8,qXI=OXI;function $XI(I){return I&&typeof I=="object"&&"default"in I?I:{default:I}}var IHI=$XI(PXI),lHI={name:"characterReference",tokenize:cHI};function cHI(I,l,c){var G=this,e=0,d,t;return n;function n(W){return I.enter("characterReference"),I.enter("characterReferenceMarker"),I.consume(W),I.exit("characterReferenceMarker"),b}function b(W){return W===35?(I.enter("characterReferenceMarkerNumeric"),I.consume(W),I.exit("characterReferenceMarkerNumeric"),a):(I.enter("characterReferenceValue"),d=31,t=fx,Z(W))}function a(W){return W===88||W===120?(I.enter("characterReferenceMarkerHexadecimal"),I.consume(W),I.exit("characterReferenceMarkerHexadecimal"),I.enter("characterReferenceValue"),d=6,t=qXI,Z):(I.enter("characterReferenceValue"),d=7,t=_XI,Z(W))}function Z(W){var m;return W===59&&e?(m=I.exit("characterReferenceValue"),t===fx&&!IHI.default(G.sliceSerialize(m))?c(W):(I.enter("characterReferenceMarker"),I.consume(W),I.exit("characterReferenceMarker"),I.exit("characterReference"),l)):t(W)&&e++-1?void 0:4);function B(N){return X.enter("codeFencedFence"),X.enter("codeFencedFenceSequence"),C(N)}function C(N){return N===n?(X.consume(N),R++,C):Ra?c(o):(I.consume(o),p):o===41?Z--?(I.consume(o),p):(I.exit("chunkString"),I.exit(n),I.exit(t),I.exit(G),l(o)):o===null||iHI(o)?Z?c(o):(I.exit("chunkString"),I.exit(n),I.exit(t),I.exit(G),l(o)):jx(o)?c(o):(I.consume(o),o===92?V:p)}function V(o){return o===40||o===41||o===92?(I.consume(o),p):p(o)}}var X8=NHI,Dx=jG,RHI=na;function YHI(I,l,c,G,e,d){var t=this,n=0,b;return a;function a(s){return I.enter(G),I.enter(e),I.consume(s),I.exit(e),I.enter(d),Z}function Z(s){return s===null||s===91||s===93&&!b||s===94&&!n&&"_hiddenFootnoteSupport"in t.parser.constructs||n>999?c(s):s===93?(I.exit(d),I.enter(e),I.consume(s),I.exit(e),I.exit(G),l):Dx(s)?(I.enter("lineEnding"),I.consume(s),I.exit("lineEnding"),Z):(I.enter("chunkString",{contentType:"string"}),W(s))}function W(s){return s===null||s===91||s===93||Dx(s)||n++>999?(I.exit("chunkString"),Z(s)):(I.consume(s),b=b||!RHI(s),s===92?m:W)}function m(s){return s===91||s===92||s===93?(I.consume(s),n++,W):W(s)}}var H8=YHI,XHI=jG,HHI=na,QHI=Ye;function wHI(I,l){var c;return G;function G(e){return XHI(e)?(I.enter("lineEnding"),I.consume(e),I.exit("lineEnding"),c=!0,G):HHI(e)?QHI(I,G,c?"linePrefix":"lineSuffix")(e):l(e)}}var Q8=wHI,Ox=jG,EHI=Ye;function vHI(I,l,c,G,e,d){var t;return n;function n(m){return I.enter(G),I.enter(e),I.consume(m),I.exit(e),t=m===40?41:m,b}function b(m){return m===t?(I.enter(e),I.consume(m),I.exit(e),I.exit(G),l):(I.enter(d),a(m))}function a(m){return m===t?(I.exit(d),b(t)):m===null?c(m):Ox(m)?(I.enter("lineEnding"),I.consume(m),I.exit("lineEnding"),EHI(I,a,"linePrefix")):(I.enter("chunkString",{contentType:"string"}),Z(m))}function Z(m){return m===t||m===null||Ox(m)?(I.exit("chunkString"),a(m)):(I.consume(m),m===92?W:Z)}function W(m){return m===t||m===92?(I.consume(m),Z):Z(m)}}var w8=vHI,E8=jG,gHI=wZ,AHI=vA,yHI=X8,JHI=H8,_w=Ye,v8=Q8,BHI=w8,kHI={name:"definition",tokenize:zHI},xHI={tokenize:UHI,partial:!0};function zHI(I,l,c){var G=this,e;return d;function d(b){return I.enter("definition"),JHI.call(G,I,t,c,"definitionLabel","definitionLabelMarker","definitionLabelString")(b)}function t(b){return e=AHI(G.sliceSerialize(G.events[G.events.length-1][1]).slice(1,-1)),b===58?(I.enter("definitionMarker"),I.consume(b),I.exit("definitionMarker"),v8(I,yHI(I,I.attempt(xHI,_w(I,n,"whitespace"),_w(I,n,"whitespace")),c,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString"))):c(b)}function n(b){return b===null||E8(b)?(I.exit("definition"),G.parser.defined.indexOf(e)<0&&G.parser.defined.push(e),l(b)):c(b)}}function UHI(I,l,c){return G;function G(t){return gHI(t)?v8(I,e)(t):c(t)}function e(t){return t===34||t===39||t===40?BHI(I,_w(I,d,"whitespace"),c,"definitionTitle","definitionTitleMarker","definitionTitleString")(t):c(t)}function d(t){return t===null||E8(t)?l(t):c(t)}}var CHI=kHI,MHI=jG,fHI={name:"hardBreakEscape",tokenize:KHI};function KHI(I,l,c){return G;function G(d){return I.enter("hardBreakEscape"),I.enter("escapeMarker"),I.consume(d),e}function e(d){return MHI(d)?(I.exit("escapeMarker"),I.exit("hardBreakEscape"),l(d)):c(d)}}var LHI=fHI,SHI=jG,Px=wZ,THI=na,jHI=QZ,DHI=Ye,OHI={name:"headingAtx",tokenize:_HI,resolve:PHI};function PHI(I,l){var c=I.length-2,G=3,e,d;return I[G][1].type==="whitespace"&&(G+=2),c-2>G&&I[c][1].type==="whitespace"&&(c-=2),I[c][1].type==="atxHeadingSequence"&&(G===c-1||c-4>G&&I[c-2][1].type==="whitespace")&&(c-=G+1===c?2:4),c>G&&(e={type:"atxHeadingText",start:I[G][1].start,end:I[c][1].end},d={type:"chunkText",start:I[G][1].start,end:I[c][1].end,contentType:"text"},jHI(I,G,c-G+1,[["enter",e,l],["enter",d,l],["exit",d,l],["exit",e,l]])),I}function _HI(I,l,c){var G=this,e=0;return d;function d(Z){return I.enter("atxHeading"),I.enter("atxHeadingSequence"),t(Z)}function t(Z){return Z===35&&e++<6?(I.consume(Z),t):Z===null||Px(Z)?(I.exit("atxHeadingSequence"),G.interrupt?l(Z):n(Z)):c(Z)}function n(Z){return Z===35?(I.enter("atxHeadingSequence"),b(Z)):Z===null||SHI(Z)?(I.exit("atxHeading"),l(Z)):THI(Z)?DHI(I,n,"whitespace")(Z):(I.enter("atxHeadingText"),a(Z))}function b(Z){return Z===35?(I.consume(Z),b):(I.exit("atxHeadingSequence"),n(Z))}function a(Z){return Z===null||Z===35||Px(Z)?(I.exit("atxHeadingText"),n(Z)):(I.consume(Z),a)}}var qHI=OHI,$HI=["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","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","section","source","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],IQI=$HI,lQI=["pre","script","style","textarea"],cQI=lQI,Ys=xA,_x=oN,Br=jG,qx=wZ,kr=na,Mo=uN,GQI=IQI,$x=cQI,eQI=hN,dQI={name:"htmlFlow",tokenize:bQI,resolveTo:nQI,concrete:!0},tQI={tokenize:aQI,partial:!0};function nQI(I){for(var l=I.length;l--&&!(I[l][0]==="enter"&&I[l][1].type==="htmlFlow"););return l>1&&I[l-2][1].type==="linePrefix"&&(I[l][1].start=I[l-2][1].start,I[l+1][1].start=I[l-2][1].start,I.splice(l-2,2)),I}function bQI(I,l,c){var G=this,e,d,t,n,b;return a;function a(g){return I.enter("htmlFlow"),I.enter("htmlFlowData"),I.consume(g),Z}function Z(g){return g===33?(I.consume(g),W):g===47?(I.consume(g),h):g===63?(I.consume(g),e=3,G.interrupt?l:S):Ys(g)?(I.consume(g),t=Mo(g),d=!0,p):c(g)}function W(g){return g===45?(I.consume(g),e=2,m):g===91?(I.consume(g),e=5,t="CDATA[",n=0,s):Ys(g)?(I.consume(g),e=4,G.interrupt?l:S):c(g)}function m(g){return g===45?(I.consume(g),G.interrupt?l:S):c(g)}function s(g){return g===t.charCodeAt(n++)?(I.consume(g),n===t.length?G.interrupt?l:J:s):c(g)}function h(g){return Ys(g)?(I.consume(g),t=Mo(g),p):c(g)}function p(g){return g===null||g===47||g===62||qx(g)?g!==47&&d&&$x.indexOf(t.toLowerCase())>-1?(e=1,G.interrupt?l(g):J(g)):GQI.indexOf(t.toLowerCase())>-1?(e=6,g===47?(I.consume(g),V):G.interrupt?l(g):J(g)):(e=7,G.interrupt?c(g):d?F(g):o(g)):g===45||_x(g)?(I.consume(g),t+=Mo(g),p):c(g)}function V(g){return g===62?(I.consume(g),G.interrupt?l:J):c(g)}function o(g){return kr(g)?(I.consume(g),o):k(g)}function F(g){return g===47?(I.consume(g),k):g===58||g===95||Ys(g)?(I.consume(g),X):kr(g)?(I.consume(g),F):k(g)}function X(g){return g===45||g===46||g===58||g===95||_x(g)?(I.consume(g),X):H(g)}function H(g){return g===61?(I.consume(g),Y):kr(g)?(I.consume(g),H):F(g)}function Y(g){return g===null||g===60||g===61||g===62||g===96?c(g):g===34||g===39?(I.consume(g),b=g,R):kr(g)?(I.consume(g),Y):(b=void 0,B(g))}function R(g){return g===b?(I.consume(g),C):g===null||Br(g)?c(g):(I.consume(g),R)}function B(g){return g===null||g===34||g===39||g===60||g===61||g===62||g===96||qx(g)?H(g):(I.consume(g),B)}function C(g){return g===47||g===62||kr(g)?F(g):c(g)}function k(g){return g===62?(I.consume(g),N):c(g)}function N(g){return kr(g)?(I.consume(g),N):g===null||Br(g)?J(g):c(g)}function J(g){return g===45&&e===2?(I.consume(g),D):g===60&&e===1?(I.consume(g),O):g===62&&e===4?(I.consume(g),tI):g===63&&e===3?(I.consume(g),S):g===93&&e===5?(I.consume(g),j):Br(g)&&(e===6||e===7)?I.check(tQI,tI,A)(g):g===null||Br(g)?A(g):(I.consume(g),J)}function A(g){return I.exit("htmlFlowData"),M(g)}function M(g){return g===null?z(g):Br(g)?(I.enter("lineEnding"),I.consume(g),I.exit("lineEnding"),M):(I.enter("htmlFlowData"),J(g))}function D(g){return g===45?(I.consume(g),S):J(g)}function O(g){return g===47?(I.consume(g),t="",$):J(g)}function $(g){return g===62&&$x.indexOf(t.toLowerCase())>-1?(I.consume(g),tI):Ys(g)&&t.length<8?(I.consume(g),t+=Mo(g),$):J(g)}function j(g){return g===93?(I.consume(g),S):J(g)}function S(g){return g===62?(I.consume(g),tI):J(g)}function tI(g){return g===null||Br(g)?(I.exit("htmlFlowData"),z(g)):(I.consume(g),tI)}function z(g){return I.exit("htmlFlow"),l(g)}}function aQI(I,l,c){return G;function G(e){return I.exit("htmlFlowData"),I.enter("lineEndingBlank"),I.consume(e),I.exit("lineEndingBlank"),I.attempt(eQI,l,c)}}var ZQI=dQI,fo=xA,RX=oN,wb=jG,YX=wZ,Ko=na,WQI=Ye,rQI={name:"htmlText",tokenize:mQI};function mQI(I,l,c){var G=this,e,d,t,n;return b;function b(g){return I.enter("htmlText"),I.enter("htmlTextData"),I.consume(g),a}function a(g){return g===33?(I.consume(g),Z):g===47?(I.consume(g),B):g===63?(I.consume(g),Y):fo(g)?(I.consume(g),N):c(g)}function Z(g){return g===45?(I.consume(g),W):g===91?(I.consume(g),d="CDATA[",t=0,V):fo(g)?(I.consume(g),H):c(g)}function W(g){return g===45?(I.consume(g),m):c(g)}function m(g){return g===null||g===62?c(g):g===45?(I.consume(g),s):h(g)}function s(g){return g===null||g===62?c(g):h(g)}function h(g){return g===null?c(g):g===45?(I.consume(g),p):wb(g)?(n=h,S(g)):(I.consume(g),h)}function p(g){return g===45?(I.consume(g),z):h(g)}function V(g){return g===d.charCodeAt(t++)?(I.consume(g),t===d.length?o:V):c(g)}function o(g){return g===null?c(g):g===93?(I.consume(g),F):wb(g)?(n=o,S(g)):(I.consume(g),o)}function F(g){return g===93?(I.consume(g),X):o(g)}function X(g){return g===62?z(g):g===93?(I.consume(g),X):o(g)}function H(g){return g===null||g===62?z(g):wb(g)?(n=H,S(g)):(I.consume(g),H)}function Y(g){return g===null?c(g):g===63?(I.consume(g),R):wb(g)?(n=Y,S(g)):(I.consume(g),Y)}function R(g){return g===62?z(g):Y(g)}function B(g){return fo(g)?(I.consume(g),C):c(g)}function C(g){return g===45||RX(g)?(I.consume(g),C):k(g)}function k(g){return wb(g)?(n=k,S(g)):Ko(g)?(I.consume(g),k):z(g)}function N(g){return g===45||RX(g)?(I.consume(g),N):g===47||g===62||YX(g)?J(g):c(g)}function J(g){return g===47?(I.consume(g),z):g===58||g===95||fo(g)?(I.consume(g),A):wb(g)?(n=J,S(g)):Ko(g)?(I.consume(g),J):z(g)}function A(g){return g===45||g===46||g===58||g===95||RX(g)?(I.consume(g),A):M(g)}function M(g){return g===61?(I.consume(g),D):wb(g)?(n=M,S(g)):Ko(g)?(I.consume(g),M):J(g)}function D(g){return g===null||g===60||g===61||g===62||g===96?c(g):g===34||g===39?(I.consume(g),e=g,O):wb(g)?(n=D,S(g)):Ko(g)?(I.consume(g),D):(I.consume(g),e=void 0,j)}function O(g){return g===e?(I.consume(g),$):g===null?c(g):wb(g)?(n=O,S(g)):(I.consume(g),O)}function $(g){return g===62||g===47||YX(g)?J(g):c(g)}function j(g){return g===null||g===34||g===39||g===60||g===61||g===96?c(g):g===62||YX(g)?J(g):(I.consume(g),j)}function S(g){return I.exit("htmlTextData"),I.enter("lineEnding"),I.consume(g),I.exit("lineEnding"),WQI(I,tI,"linePrefix",G.parser.constructs.disable.null.indexOf("codeIndented")>-1?void 0:4)}function tI(g){return I.enter("htmlTextData"),n(g)}function z(g){return g===62?(I.consume(g),I.exit("htmlTextData"),I.exit("htmlText"),l):c(g)}}var sQI=rQI,uQI=wZ,xr=BA,hQI=QZ,g8=vA,pQI=kA,zr=F0,oQI=X8,VQI=H8,iQI=w8,XX=Q8,FQI={name:"labelEnd",tokenize:QQI,resolveTo:HQI,resolveAll:XQI},NQI={tokenize:wQI},RQI={tokenize:EQI},YQI={tokenize:vQI};function XQI(I){for(var l=-1,c;++l-1,I.enter("labelEnd"),I.enter("labelMarker"),I.consume(Z),I.exit("labelMarker"),I.exit("labelEnd"),b):c(Z)}function b(Z){return Z===40?I.attempt(NQI,l,t?l:a)(Z):Z===91?I.attempt(RQI,l,t?I.attempt(YQI,l,a):a)(Z):t?l(Z):a(Z)}function a(Z){return d._balanced=!0,c(Z)}}function wQI(I,l,c){return G;function G(b){return I.enter("resource"),I.enter("resourceMarker"),I.consume(b),I.exit("resourceMarker"),XX(I,e)}function e(b){return b===41?n(b):oQI(I,d,c,"resourceDestination","resourceDestinationLiteral","resourceDestinationLiteralMarker","resourceDestinationRaw","resourceDestinationString",3)(b)}function d(b){return uQI(b)?XX(I,t)(b):n(b)}function t(b){return b===34||b===39||b===40?iQI(I,XX(I,n),c,"resourceTitle","resourceTitleMarker","resourceTitleString")(b):n(b)}function n(b){return b===41?(I.enter("resourceMarker"),I.consume(b),I.exit("resourceMarker"),I.exit("resource"),l):c(b)}}function EQI(I,l,c){var G=this;return e;function e(t){return VQI.call(G,I,d,c,"reference","referenceMarker","referenceString")(t)}function d(t){return G.parser.defined.indexOf(g8(G.sliceSerialize(G.events[G.events.length-1][1]).slice(1,-1)))<0?c(t):l(t)}}function vQI(I,l,c){return G;function G(d){return I.enter("reference"),I.enter("referenceMarker"),I.consume(d),I.exit("referenceMarker"),e}function e(d){return d===93?(I.enter("referenceMarker"),I.consume(d),I.exit("referenceMarker"),I.exit("reference"),l):c(d)}}var zA=FQI,gQI=zA,AQI={name:"labelStartImage",tokenize:yQI,resolveAll:gQI.resolveAll};function yQI(I,l,c){var G=this;return e;function e(n){return I.enter("labelImage"),I.enter("labelImageMarker"),I.consume(n),I.exit("labelImageMarker"),d}function d(n){return n===91?(I.enter("labelMarker"),I.consume(n),I.exit("labelMarker"),I.exit("labelImage"),t):c(n)}function t(n){return n===94&&"_hiddenFootnoteSupport"in G.parser.constructs?c(n):l(n)}}var JQI=AQI,BQI=zA,kQI={name:"labelStartLink",tokenize:xQI,resolveAll:BQI.resolveAll};function xQI(I,l,c){var G=this;return e;function e(t){return I.enter("labelLink"),I.enter("labelMarker"),I.consume(t),I.exit("labelMarker"),I.exit("labelLink"),d}function d(t){return t===94&&"_hiddenFootnoteSupport"in G.parser.constructs?c(t):l(t)}}var zQI=kQI,UQI=Ye,CQI={name:"lineEnding",tokenize:MQI};function MQI(I,l){return c;function c(G){return I.enter("lineEnding"),I.consume(G),I.exit("lineEnding"),UQI(I,l,"linePrefix")}}var fQI=CQI,KQI=jG,LQI=na,SQI=Ye,TQI={name:"thematicBreak",tokenize:jQI};function jQI(I,l,c){var G=0,e;return d;function d(b){return I.enter("thematicBreak"),e=b,t(b)}function t(b){return b===e?(I.enter("thematicBreakSequence"),n(b)):LQI(b)?SQI(I,t,"whitespace")(b):G<3||b!==null&&!KQI(b)?c(b):(I.exit("thematicBreak"),l(b))}function n(b){return b===e?(I.consume(b),G++,n):(I.exit("thematicBreakSequence"),t(b))}}var A8=TQI,Iz=Y8,UA=na,CA=pN,DQI=u8,si=Ye,y8=hN,OQI=A8,J8={name:"list",tokenize:qQI,continuation:{tokenize:$QI},exit:lwI},PQI={tokenize:cwI,partial:!0},_QI={tokenize:IwI,partial:!0};function qQI(I,l,c){var G=this,e=CA(G.events,"linePrefix"),d=0;return t;function t(m){var s=G.containerState.type||(m===42||m===43||m===45?"listUnordered":"listOrdered");if(s==="listUnordered"?!G.containerState.marker||m===G.containerState.marker:Iz(m)){if(G.containerState.type||(G.containerState.type=s,I.enter(s,{_container:!0})),s==="listUnordered")return I.enter("listItemPrefix"),m===42||m===45?I.check(OQI,c,b)(m):b(m);if(!G.interrupt||m===49)return I.enter("listItemPrefix"),I.enter("listItemValue"),n(m)}return c(m)}function n(m){return Iz(m)&&++d<10?(I.consume(m),n):(!G.interrupt||d<2)&&(G.containerState.marker?m===G.containerState.marker:m===41||m===46)?(I.exit("listItemValue"),b(m)):c(m)}function b(m){return I.enter("listItemMarker"),I.consume(m),I.exit("listItemMarker"),G.containerState.marker=G.containerState.marker||m,I.check(y8,G.interrupt?c:a,I.attempt(PQI,W,Z))}function a(m){return G.containerState.initialBlankLine=!0,e++,W(m)}function Z(m){return UA(m)?(I.enter("listItemPrefixWhitespace"),I.consume(m),I.exit("listItemPrefixWhitespace"),W):c(m)}function W(m){return G.containerState.size=e+DQI(G.sliceStream(I.exit("listItemPrefix"))),l(m)}}function $QI(I,l,c){var G=this;return G.containerState._closeFlow=void 0,I.check(y8,e,d);function e(n){return G.containerState.furtherBlankLines=G.containerState.furtherBlankLines||G.containerState.initialBlankLine,si(I,l,"listItemIndent",G.containerState.size+1)(n)}function d(n){return G.containerState.furtherBlankLines||!UA(n)?(G.containerState.furtherBlankLines=G.containerState.initialBlankLine=void 0,t(n)):(G.containerState.furtherBlankLines=G.containerState.initialBlankLine=void 0,I.attempt(_QI,l,t)(n))}function t(n){return G.containerState._closeFlow=!0,G.interrupt=void 0,si(I,I.attempt(J8,l,c),"linePrefix",G.parser.constructs.disable.null.indexOf("codeIndented")>-1?void 0:4)(n)}}function IwI(I,l,c){var G=this;return si(I,e,"listItemIndent",G.containerState.size+1);function e(d){return CA(G.events,"listItemIndent")===G.containerState.size?l(d):c(d)}}function lwI(I){I.exit(this.containerState.type)}function cwI(I,l,c){var G=this;return si(I,e,"listItemPrefixWhitespace",G.parser.constructs.disable.null.indexOf("codeIndented")>-1?void 0:4+1);function e(d){return UA(d)||!CA(G.events,"listItemPrefixWhitespace")?c(d):l(d)}}var GwI=J8,ewI=jG,HX=F0,dwI=Ye,twI={name:"setextUnderline",tokenize:bwI,resolveTo:nwI};function nwI(I,l){for(var c=I.length,G,e,d,t;c--;)if(I[c][0]==="enter"){if(I[c][1].type==="content"){G=c;break}I[c][1].type==="paragraph"&&(e=c)}else I[c][1].type==="content"&&I.splice(c,1),!d&&I[c][1].type==="definition"&&(d=c);return t={type:"setextHeading",start:HX(I[e][1].start),end:HX(I[I.length-1][1].end)},I[e][1].type="setextHeadingText",d?(I.splice(e,0,["enter",t,l]),I.splice(d+1,0,["exit",I[G][1],l]),I[G][1].end=HX(I[d][1].end)):I[G][1]=t,I.push(["exit",t,l]),I}function bwI(I,l,c){for(var G=this,e=G.events.length,d,t;e--;)if(G.events[e][1].type!=="lineEnding"&&G.events[e][1].type!=="linePrefix"&&G.events[e][1].type!=="content"){t=G.events[e][1].type==="paragraph";break}return n;function n(Z){return!G.lazy&&(G.interrupt||t)?(I.enter("setextHeadingLine"),I.enter("setextHeadingLineSequence"),d=Z,b(Z)):c(Z)}function b(Z){return Z===d?(I.consume(Z),b):(I.exit("setextHeadingLineSequence"),dwI(I,a,"lineSuffix")(Z))}function a(Z){return Z===null||ewI(Z)?(I.exit("setextHeadingLine"),l(Z)):c(Z)}}var awI=twI;Object.defineProperty(Wb,"__esModule",{value:!0});var ZwI=N0,qw=hXI,WwI=EXI,rwI=BXI,B8=fXI,k8=GHI,lz=bHI,QX=sHI,mwI=VHI,swI=CHI,uwI=LHI,hwI=qHI,pwI=ZQI,owI=sQI,VwI=zA,iwI=JQI,FwI=zQI,wX=fQI,Bd=GwI,cz=awI,EX=A8,NwI={42:Bd,43:Bd,45:Bd,48:Bd,49:Bd,50:Bd,51:Bd,52:Bd,53:Bd,54:Bd,55:Bd,56:Bd,57:Bd,62:rwI},RwI={91:swI},YwI={"-2":QX,"-1":QX,32:QX},XwI={35:hwI,42:EX,45:[cz,EX],60:pwI,61:cz,95:EX,96:lz,126:lz},HwI={38:k8,92:B8},QwI={"-5":wX,"-4":wX,"-3":wX,33:iwI,38:k8,42:qw,60:[WwI,owI],91:FwI,92:[uwI,B8],93:VwI,95:qw,96:mwI},wwI={null:[qw,ZwI.resolver]},EwI={null:[]};Wb.contentInitial=RwI;Wb.disable=EwI;Wb.document=NwI;Wb.flow=XwI;Wb.flowInitial=YwI;Wb.insideSpan=wwI;Wb.string=HwI;Wb.text=QwI;var vwI=gA,gwI=AA,AwI=yA,Gz=N0,ywI=wYI,JwI=SYI,BwI=JA,kwI=Wb;function xwI(I){var l=I||{},c={defined:[],constructs:ywI([kwI].concat(BwI(l.extensions))),content:G(vwI),document:G(gwI),flow:G(AwI),string:G(Gz.string),text:G(Gz.text)};return c;function G(e){return d;function d(t){return JwI(c,e,t)}}}var zwI=xwI,ez=/[\0\t\n\r]/g;function UwI(){var I=!0,l=1,c="",G;return e;function e(d,t,n){var b=[],a,Z,W,m,s;for(d=c+d.toString(t),W=0,c="",I&&(d.charCodeAt(0)===65279&&W++,I=void 0);W-1&&(M.call(this,dI),D.call(this,dI))}function $(){t("atHardBreak",!0)}function j(){var dI=this.resume();this.stack[this.stack.length-1].value=dI}function S(){var dI=this.resume();this.stack[this.stack.length-1].value=dI}function tI(){var dI=this.resume();this.stack[this.stack.length-1].value=dI}function z(){var dI=this.stack[this.stack.length-1];n("inReference")?(dI.type+="Reference",dI.referenceType=n("referenceType")||"shortcut",delete dI.url,delete dI.title):(delete dI.identifier,delete dI.label,delete dI.referenceType),t("referenceType")}function g(){var dI=this.stack[this.stack.length-1];n("inReference")?(dI.type+="Reference",dI.referenceType=n("referenceType")||"shortcut",delete dI.url,delete dI.title):(delete dI.identifier,delete dI.label,delete dI.referenceType),t("referenceType")}function GI(dI){this.stack[this.stack.length-2].identifier=vX(this.sliceSerialize(dI)).toLowerCase()}function f(){var dI=this.stack[this.stack.length-1],xI=this.resume();this.stack[this.stack.length-1].label=xI,t("inReference",!0),this.stack[this.stack.length-1].type==="link"?this.stack[this.stack.length-1].children=dI.children:this.stack[this.stack.length-1].alt=xI}function nI(){var dI=this.resume();this.stack[this.stack.length-1].url=dI}function VI(){var dI=this.resume();this.stack[this.stack.length-1].title=dI}function q(){t("inReference")}function fI(){t("referenceType","collapsed")}function RI(dI){var xI=this.resume();this.stack[this.stack.length-1].label=xI,this.stack[this.stack.length-1].identifier=vX(this.sliceSerialize(dI)).toLowerCase(),t("referenceType","full")}function cl(dI){t("characterReferenceType",dI.type)}function OI(dI){var xI=this.sliceSerialize(dI),Wl=n("characterReferenceType"),nl,Hl;Wl?(nl=jwI(xI,Wl==="characterReferenceMarkerNumeric"?10:16),t("characterReferenceType")):nl=_wI(xI),Hl=this.stack.pop(),Hl.value+=nl,Hl.position.end=b(dI.end)}function PI(dI){D.call(this,dI),this.stack[this.stack.length-1].url=this.sliceSerialize(dI)}function _I(dI){D.call(this,dI),this.stack[this.stack.length-1].url="mailto:"+this.sliceSerialize(dI)}function tl(){return{type:"blockquote",children:[]}}function bl(){return{type:"code",lang:null,meta:null,value:""}}function Il(){return{type:"inlineCode",value:""}}function Fl(){return{type:"definition",identifier:"",label:null,title:null,url:""}}function al(){return{type:"emphasis",children:[]}}function P(){return{type:"heading",depth:void 0,children:[]}}function eI(){return{type:"break"}}function uI(){return{type:"html",value:""}}function wI(){return{type:"image",title:null,url:"",alt:null}}function YI(){return{type:"link",title:null,url:"",children:[]}}function HI(dI){return{type:"list",ordered:dI.type==="listOrdered",start:null,spread:dI._spread,children:[]}}function NI(dI){return{type:"listItem",spread:dI._spread,checked:null,children:[]}}function bI(){return{type:"paragraph",children:[]}}function gI(){return{type:"strong",children:[]}}function oI(){return{type:"text",value:""}}function QI(){return{type:"thematicBreak"}}}function IEI(I,l){for(var c=-1;++c":""))+")"),m;function m(){var s=a.concat(n),h=[],p,V;if((!l||d(n,b,a[a.length-1]||null))&&(h=oEI(c(n,a)),h[0]===$w))return h;if(n.children&&h[0]!==C8)for(V=(G?n.children.length:-1)+e;V>-1&&V":""))+")"),m;function m(){var s=a.concat(n),h=[],p,V;if((!l||d(n,b,a[a.length-1]||null))&&(h=BEI(c(n,a)),h[0]===IE))return h;if(n.children&&h[0]!==j8)for(V=(G?n.children.length:-1)+e;V>-1&&V-1?W=t:W=n.unknownHandler,(typeof W=="function"?W:G)(n,b,a)}function d(n){var b=n.data||{};return c.call(b,"hName")||c.call(b,"hProperties")||c.call(b,"hChildren")?!1:"value"in n}function t(n,b){var a;return b.children?(a=Object.assign({},b),a.children=l(n,b),a):b}return AX}var _8=SEI;function SEI(I,l){return I(l,"hr")}var Lh=TEI,yX=St;function TEI(I,l){var c=[],G=-1,e=I.length;for(l&&c.push(yX("text",` -`));++G0&&c.push(yX("text",` -`)),c}var q8=OEI,jEI=Lh,DEI=Hd();function OEI(I,l){var c={},G=l.ordered?"ol":"ul",e,d=-1,t;for(typeof l.start=="number"&&l.start!==1&&(c.start=l.start),e=DEI(I,l),t=e.length;++d"u"&&(c=!0),n=wvI(l),G=0,e=I.length;G=55296&&d<=57343){if(d>=55296&&d<=56319&&G+1=56320&&t<=57343)){b+=encodeURIComponent(I[G]+I[G+1]),G++;continue}b+="%EF%BF%BD";continue}b+=encodeURIComponent(I[G])}return b}XN.defaultChars=";/?:@&=+$,-_.!~*'()#";XN.componentChars="-_.!~*'()";var HN=XN,I6=vvI,JX=St,EvI=Hd();function vvI(I,l){var c=l.referenceType,G="]",e,d,t;return c==="collapsed"?G+="[]":c==="full"&&(G+="["+(l.label||l.identifier)+"]"),l.type==="imageReference"?JX("text","!["+l.alt+G):(e=EvI(I,l),d=e[0],d&&d.type==="text"?d.value="["+d.value:e.unshift(JX("text","[")),t=e[e.length-1],t&&t.type==="text"?t.value+=G:e.push(JX("text",G)),e)}var gvI=JvI,AvI=HN,yvI=I6;function JvI(I,l){var c=I.definition(l.identifier),G;return c?(G={src:AvI(c.url||""),alt:l.alt},c.title!==null&&c.title!==void 0&&(G.title=c.title),I(l,"img",G)):yvI(I,l)}var BvI=HN,kvI=xvI;function xvI(I,l){var c={src:BvI(l.url),alt:l.alt};return l.title!==null&&l.title!==void 0&&(c.title=l.title),I(l,"img",c)}var zvI=CvI,UvI=St;function CvI(I,l){var c=l.value.replace(/\r?\n|\r/g," ");return I(l,"code",[UvI("text",c)])}var MvI=SvI,fvI=HN,KvI=I6,LvI=Hd();function SvI(I,l){var c=I.definition(l.identifier),G;return c?(G={href:fvI(c.url||"")},c.title!==null&&c.title!==void 0&&(G.title=c.title),I(l,"a",G,LvI(I,l))):KvI(I,l)}var TvI=HN,jvI=Hd(),DvI=OvI;function OvI(I,l){var c={href:TvI(l.url)};return l.title!==null&&l.title!==void 0&&(c.title=l.title),I(l,"a",c,jvI(I,l))}var PvI=qvI,BX=St,_vI=Hd();function qvI(I,l,c){var G=_vI(I,l),e=G[0],d=c?$vI(c):l6(l),t={},n=[],b,a,Z;for(typeof l.checked=="boolean"&&((!e||e.tagName!=="p")&&(e=I(null,"p",[]),G.unshift(e)),e.children.length>0&&e.children.unshift(BX("text"," ")),e.children.unshift(I(null,"input",{type:"checkbox",checked:l.checked,disabled:!0})),t.className=["task-list-item"]),b=G.length,a=-1;++a1}var IgI=cgI,lgI=Hd();function cgI(I,l){return I(l,"p",lgI(I,l))}var GgI=ngI,egI=St,dgI=Lh,tgI=Hd();function ngI(I,l){return I.augment(l,egI("root",dgI(tgI(I,l))))}var bgI=ZgI,agI=Hd();function ZgI(I,l){return I(l,"strong",agI(I,l))}var WgI=mgI,bz=K8,So=Lh,rgI=Hd();function mgI(I,l){for(var c=l.children,G=c.length,e=l.align||[],d=e.length,t=[],n,b,a,Z,W;G--;){for(b=c[G].children,Z=G===0?"th":"td",n=d||b.length,a=[];n--;)W=b[n],a[n]=I(W,Z,{align:e[n]},W?rgI(I,W):[]);t[G]=I(c[G],"tr",So(a,!0))}return I(l,"table",So([I(t[0].position,"thead",So([t[0]],!0))].concat(t[1]?I({start:bz.start(t[1]),end:bz.end(t[t.length-1])},"tbody",So(t.slice(1),!0)):[]),!0))}var sgI=hgI,ugI=St;function hgI(I,l){return I.augment(l,ugI("text",String(l.value).replace(/[ \t]*(\r?\n|\r)[ \t]*/g,"$1")))}var pgI={blockquote:lvI,break:dvI,code:bvI,delete:WvI,emphasis:svI,footnoteReference:$8,footnote:VvI,heading:NvI,html:XvI,imageReference:gvI,image:kvI,inlineCode:zvI,linkReference:MvI,link:DvI,listItem:PvI,list:q8,paragraph:IgI,root:GgI,strong:bgI,table:WgI,text:sgI,thematicBreak:_8,toml:To,yaml:To,definition:To,footnoteDefinition:To};function To(){return null}var ogI=wgI,VgI=St,igI=VEI,az=K8,FgI=REI,NgI=MEI,RgI=P8(),YgI=PEI,XgI=pgI,HgI={}.hasOwnProperty,Zz=!1;function QgI(I,l){var c=l||{};c.allowDangerousHTML!==void 0&&!Zz&&(Zz=!0,console.warn("mdast-util-to-hast: deprecation: `allowDangerousHTML` is nonstandard, use `allowDangerousHtml` instead"));var G=c.allowDangerousHtml||c.allowDangerousHTML,e={};return t.dangerous=G,t.definition=NgI(I),t.footnoteById=e,t.footnoteOrder=[],t.augment=d,t.handlers=Object.assign({},XgI,c.handlers),t.unknownHandler=c.unknownHandler,t.passThrough=c.passThrough,igI(I,"footnoteDefinition",n),t;function d(b,a){var Z,W;return b&&b.data&&(Z=b.data,Z.hName&&(a.type!=="element"&&(a={type:"element",tagName:"",properties:{},children:[]}),a.tagName=Z.hName),a.type==="element"&&Z.hProperties&&(a.properties=Object.assign({},a.properties,Z.hProperties)),a.children&&Z.hChildren&&(a.children=Z.hChildren)),W=b&&b.position?b:{position:b},FgI(W)||(a.position={start:az.start(W),end:az.end(W)}),a}function t(b,a,Z,W){return W==null&&typeof Z=="object"&&"length"in Z&&(W=Z,Z={}),d(b,{type:"element",tagName:a,properties:Z||{},children:W||[]})}function n(b){var a=String(b.identifier).toUpperCase();HgI.call(e,a)||(e[a]=b)}}function wgI(I,l){var c=QgI(I,l),G=RgI(c,I),e=YgI(c);return e&&(G.children=G.children.concat(VgI("text",` -`),e)),G}var EgI=ogI,c6=EgI,vgI=ggI;function ggI(I,l){return I&&!I.process&&(l=I,I=null),I?AgI(I,l):ygI(l)}function AgI(I,l){return c;function c(G,e,d){I.run(c6(G,l),e,t);function t(n){d(n)}}}function ygI(I){return l;function l(c){return c6(c,I)}}const JgI=Vn(vgI);var BgI=xgI,kgI=Object.prototype.hasOwnProperty;function xgI(){for(var I={},l=0;l4&&c.slice(0,4)===SA&&EAI.test(l)&&(l.charAt(4)==="-"?G=AAI(l):l=yAI(l),e=HAI),new e(G,l))}function AAI(I){var l=I.slice(5).replace(o6,BAI);return SA+l.charAt(0).toUpperCase()+l.slice(1)}function yAI(I){var l=I.slice(4);return o6.test(l)?I:(l=l.replace(vAI,JAI),l.charAt(0)!=="-"&&(l="-"+l),SA+l)}function JAI(I){return"-"+I.toLowerCase()}function BAI(I){return I.charAt(1).toUpperCase()}const kAI="classID",xAI="datatype",zAI="itemID",UAI="strokeDasharray",CAI="strokeDashoffset",MAI="strokeLinecap",fAI="strokeLinejoin",KAI="strokeMiterlimit",LAI="typeof",SAI="xlinkActuate",TAI="xlinkArcrole",jAI="xlinkHref",DAI="xlinkRole",OAI="xlinkShow",PAI="xlinkTitle",_AI="xlinkType",qAI="xmlnsXlink",$AI={classId:kAI,dataType:xAI,itemId:zAI,strokeDashArray:UAI,strokeDashOffset:CAI,strokeLineCap:MAI,strokeLineJoin:fAI,strokeMiterLimit:KAI,typeOf:LAI,xLinkActuate:SAI,xLinkArcRole:TAI,xLinkHref:jAI,xLinkRole:DAI,xLinkShow:OAI,xLinkTitle:PAI,xLinkType:_AI,xmlnsXLink:qAI};var TA={};TA.parse=cyI;TA.stringify=GyI;var hz="",IyI=" ",lyI=/[ \t\n\r\f]+/g;function cyI(I){var l=String(I||hz).trim();return l===hz?[]:l.split(lyI)}function GyI(I){return I.join(IyI).trim()}var jA={};jA.parse=eyI;jA.stringify=dyI;var lE=",",pz=" ",Ks="";function eyI(I){for(var l=[],c=String(I||Ks),G=c.indexOf(lE),e=0,d=!1,t;!d;)G===-1&&(G=c.length,d=!0),t=c.slice(e,G).trim(),(t||!d)&&l.push(t),e=G+1,G=c.indexOf(lE,e);return l}function dyI(I,l){var c=l||{},G=c.padLeft===!1?Ks:pz,e=c.padRight?pz:Ks;return I[I.length-1]===Ks&&(I=I.concat(Ks)),I.join(e+lE+G).trim()}var oz=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,tyI=/\n/g,nyI=/^\s*/,byI=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,ayI=/^:\s*/,ZyI=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,WyI=/^[;\s]*/,ryI=/^\s+|\s+$/g,myI=` -`,Vz="/",iz="*",GW="",syI="comment",uyI="declaration",hyI=function(I,l){if(typeof I!="string")throw new TypeError("First argument must be a string");if(!I)return[];l=l||{};var c=1,G=1;function e(h){var p=h.match(tyI);p&&(c+=p.length);var V=h.lastIndexOf(myI);G=~V?h.length-V:G+h.length}function d(){var h={line:c,column:G};return function(p){return p.position=new t(h),a(),p}}function t(h){this.start=h,this.end={line:c,column:G},this.source=l.source}t.prototype.content=I;function n(h){var p=new Error(l.source+":"+c+":"+G+": "+h);if(p.reason=h,p.filename=l.source,p.line=c,p.column=G,p.source=I,!l.silent)throw p}function b(h){var p=h.exec(I);if(p){var V=p[0];return e(V),I=I.slice(V.length),p}}function a(){b(nyI)}function Z(h){var p;for(h=h||[];p=W();)p!==!1&&h.push(p);return h}function W(){var h=d();if(!(Vz!=I.charAt(0)||iz!=I.charAt(1))){for(var p=2;GW!=I.charAt(p)&&(iz!=I.charAt(p)||Vz!=I.charAt(p+1));)++p;if(p+=2,GW===I.charAt(p-1))return n("End of comment missing");var V=I.slice(2,p-2);return G+=2,e(V),I=I.slice(p),G+=2,h({type:syI,comment:V})}}function m(){var h=d(),p=b(byI);if(p){if(W(),!b(ayI))return n("property missing ':'");var V=b(ZyI),o=h({type:uyI,property:Fz(p[0].replace(oz,GW)),value:V?Fz(V[0].replace(oz,GW)):GW});return b(WyI),o}}function s(){var h=[];Z(h);for(var p;p=m();)p!==!1&&(h.push(p),Z(h));return h}return a(),s()};function Fz(I){return I?I.replace(ryI,GW):GW}var pyI=hyI;function oyI(I,l){var c=null;if(!I||typeof I!="string")return c;for(var G,e=pyI(I),d=typeof l=="function",t,n,b=0,a=e.length;ba&&Wb&&(b=a):a&&(b!==void 0&&b>-1&&n.push(` -`.repeat(b)||" "),b=-1,n.push(a))}return n.join("")}function H6(I,l,c){return I.type==="element"?Q3I(I,l,c):I.type==="text"?c.whitespace==="normal"?Q6(I,c):w3I(I):[]}function Q3I(I,l,c){const G=w6(I,c),e=I.children||[];let d=-1,t=[];if(H3I(I))return t;let n,b;for(eE(I)||Qz(I)&&Rz(l,I,Qz)?b=` -`:X3I(I)?(n=2,b=2):X6(I)&&(n=1,b=1);++d]+>",t="(?!struct)("+G+"|"+l.optional(e)+"[a-zA-Z_]\\w*"+l.optional(d)+")",n={className:"type",begin:"\\b[a-z\\d_]*_t\\b"},b="\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)",a={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[I.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'("+b+"|.)",end:"'",illegal:"."},I.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},Z={className:"number",variants:[{begin:"\\b(0b[01']+)"},{begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)"},{begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"}],relevance:0},W={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},I.inherit(a,{className:"string"}),{className:"string",begin:/<.*?>/},c,I.C_BLOCK_COMMENT_MODE]},m={className:"title",begin:l.optional(e)+I.IDENT_RE,relevance:0},s=l.optional(e)+I.IDENT_RE+"\\s*\\(",h=["alignas","alignof","and","and_eq","asm","atomic_cancel","atomic_commit","atomic_noexcept","auto","bitand","bitor","break","case","catch","class","co_await","co_return","co_yield","compl","concept","const_cast|10","consteval","constexpr","constinit","continue","decltype","default","delete","do","dynamic_cast|10","else","enum","explicit","export","extern","false","final","for","friend","goto","if","import","inline","module","mutable","namespace","new","noexcept","not","not_eq","nullptr","operator","or","or_eq","override","private","protected","public","reflexpr","register","reinterpret_cast|10","requires","return","sizeof","static_assert","static_cast|10","struct","switch","synchronized","template","this","thread_local","throw","transaction_safe","transaction_safe_dynamic","true","try","typedef","typeid","typename","union","using","virtual","volatile","while","xor","xor_eq"],p=["bool","char","char16_t","char32_t","char8_t","double","float","int","long","short","void","wchar_t","unsigned","signed","const","static"],V=["any","auto_ptr","barrier","binary_semaphore","bitset","complex","condition_variable","condition_variable_any","counting_semaphore","deque","false_type","future","imaginary","initializer_list","istringstream","jthread","latch","lock_guard","multimap","multiset","mutex","optional","ostringstream","packaged_task","pair","promise","priority_queue","queue","recursive_mutex","recursive_timed_mutex","scoped_lock","set","shared_future","shared_lock","shared_mutex","shared_timed_mutex","shared_ptr","stack","string_view","stringstream","timed_mutex","thread","true_type","tuple","unique_lock","unique_ptr","unordered_map","unordered_multimap","unordered_multiset","unordered_set","variant","vector","weak_ptr","wstring","wstring_view"],o=["abort","abs","acos","apply","as_const","asin","atan","atan2","calloc","ceil","cerr","cin","clog","cos","cosh","cout","declval","endl","exchange","exit","exp","fabs","floor","fmod","forward","fprintf","fputs","free","frexp","fscanf","future","invoke","isalnum","isalpha","iscntrl","isdigit","isgraph","islower","isprint","ispunct","isspace","isupper","isxdigit","labs","launder","ldexp","log","log10","make_pair","make_shared","make_shared_for_overwrite","make_tuple","make_unique","malloc","memchr","memcmp","memcpy","memset","modf","move","pow","printf","putchar","puts","realloc","scanf","sin","sinh","snprintf","sprintf","sqrt","sscanf","std","stderr","stdin","stdout","strcat","strchr","strcmp","strcpy","strcspn","strlen","strncat","strncmp","strncpy","strpbrk","strrchr","strspn","strstr","swap","tan","tanh","terminate","to_underlying","tolower","toupper","vfprintf","visit","vprintf","vsprintf"],H={type:p,keyword:h,literal:["NULL","false","nullopt","nullptr","true"],built_in:["_Pragma"],_type_hints:V},Y={className:"function.dispatch",relevance:0,keywords:{_hint:o},begin:l.concat(/\b/,/(?!decltype)/,/(?!if)/,/(?!for)/,/(?!switch)/,/(?!while)/,I.IDENT_RE,l.lookahead(/(<[^<>]+>|)\s*\(/))},R=[Y,W,n,c,I.C_BLOCK_COMMENT_MODE,Z,a],B={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:H,contains:R.concat([{begin:/\(/,end:/\)/,keywords:H,contains:R.concat(["self"]),relevance:0}]),relevance:0},C={className:"function",begin:"("+t+"[\\*&\\s]+)+"+s,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:H,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:G,keywords:H,relevance:0},{begin:s,returnBegin:!0,contains:[m],relevance:0},{begin:/::/,relevance:0},{begin:/:/,endsWithParent:!0,contains:[a,Z]},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:H,relevance:0,contains:[c,I.C_BLOCK_COMMENT_MODE,a,Z,n,{begin:/\(/,end:/\)/,keywords:H,relevance:0,contains:["self",c,I.C_BLOCK_COMMENT_MODE,a,Z,n]}]},n,c,I.C_BLOCK_COMMENT_MODE,W]};return{name:"C++",aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:H,illegal:"",keywords:H,contains:["self",n]},{begin:I.IDENT_RE+"::",keywords:H},{match:[/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/],className:{1:"keyword",3:"title.class"}}])}}function J3I(I){const l={type:["boolean","byte","word","String"],built_in:["KeyboardController","MouseController","SoftwareSerial","EthernetServer","EthernetClient","LiquidCrystal","RobotControl","GSMVoiceCall","EthernetUDP","EsploraTFT","HttpClient","RobotMotor","WiFiClient","GSMScanner","FileSystem","Scheduler","GSMServer","YunClient","YunServer","IPAddress","GSMClient","GSMModem","Keyboard","Ethernet","Console","GSMBand","Esplora","Stepper","Process","WiFiUDP","GSM_SMS","Mailbox","USBHost","Firmata","PImage","Client","Server","GSMPIN","FileIO","Bridge","Serial","EEPROM","Stream","Mouse","Audio","Servo","File","Task","GPRS","WiFi","Wire","TFT","GSM","SPI","SD"],_hints:["setup","loop","runShellCommandAsynchronously","analogWriteResolution","retrieveCallingNumber","printFirmwareVersion","analogReadResolution","sendDigitalPortPair","noListenOnLocalhost","readJoystickButton","setFirmwareVersion","readJoystickSwitch","scrollDisplayRight","getVoiceCallStatus","scrollDisplayLeft","writeMicroseconds","delayMicroseconds","beginTransmission","getSignalStrength","runAsynchronously","getAsynchronously","listenOnLocalhost","getCurrentCarrier","readAccelerometer","messageAvailable","sendDigitalPorts","lineFollowConfig","countryNameWrite","runShellCommand","readStringUntil","rewindDirectory","readTemperature","setClockDivider","readLightSensor","endTransmission","analogReference","detachInterrupt","countryNameRead","attachInterrupt","encryptionType","readBytesUntil","robotNameWrite","readMicrophone","robotNameRead","cityNameWrite","userNameWrite","readJoystickY","readJoystickX","mouseReleased","openNextFile","scanNetworks","noInterrupts","digitalWrite","beginSpeaker","mousePressed","isActionDone","mouseDragged","displayLogos","noAutoscroll","addParameter","remoteNumber","getModifiers","keyboardRead","userNameRead","waitContinue","processInput","parseCommand","printVersion","readNetworks","writeMessage","blinkVersion","cityNameRead","readMessage","setDataMode","parsePacket","isListening","setBitOrder","beginPacket","isDirectory","motorsWrite","drawCompass","digitalRead","clearScreen","serialEvent","rightToLeft","setTextSize","leftToRight","requestFrom","keyReleased","compassRead","analogWrite","interrupts","WiFiServer","disconnect","playMelody","parseFloat","autoscroll","getPINUsed","setPINUsed","setTimeout","sendAnalog","readSlider","analogRead","beginWrite","createChar","motorsStop","keyPressed","tempoWrite","readButton","subnetMask","debugPrint","macAddress","writeGreen","randomSeed","attachGPRS","readString","sendString","remotePort","releaseAll","mouseMoved","background","getXChange","getYChange","answerCall","getResult","voiceCall","endPacket","constrain","getSocket","writeJSON","getButton","available","connected","findUntil","readBytes","exitValue","readGreen","writeBlue","startLoop","IPAddress","isPressed","sendSysex","pauseMode","gatewayIP","setCursor","getOemKey","tuneWrite","noDisplay","loadImage","switchPIN","onRequest","onReceive","changePIN","playFile","noBuffer","parseInt","overflow","checkPIN","knobRead","beginTFT","bitClear","updateIR","bitWrite","position","writeRGB","highByte","writeRed","setSpeed","readBlue","noStroke","remoteIP","transfer","shutdown","hangCall","beginSMS","endWrite","attached","maintain","noCursor","checkReg","checkPUK","shiftOut","isValid","shiftIn","pulseIn","connect","println","localIP","pinMode","getIMEI","display","noBlink","process","getBand","running","beginSD","drawBMP","lowByte","setBand","release","bitRead","prepare","pointTo","readRed","setMode","noFill","remove","listen","stroke","detach","attach","noTone","exists","buffer","height","bitSet","circle","config","cursor","random","IRread","setDNS","endSMS","getKey","micros","millis","begin","print","write","ready","flush","width","isPIN","blink","clear","press","mkdir","rmdir","close","point","yield","image","BSSID","click","delay","read","text","move","peek","beep","rect","line","open","seek","fill","size","turn","stop","home","find","step","tone","sqrt","RSSI","SSID","end","bit","tan","cos","sin","pow","map","abs","max","min","get","run","put"],literal:["DIGITAL_MESSAGE","FIRMATA_STRING","ANALOG_MESSAGE","REPORT_DIGITAL","REPORT_ANALOG","INPUT_PULLUP","SET_PIN_MODE","INTERNAL2V56","SYSTEM_RESET","LED_BUILTIN","INTERNAL1V1","SYSEX_START","INTERNAL","EXTERNAL","DEFAULT","OUTPUT","INPUT","HIGH","LOW"]},c=y3I(I),G=c.keywords;return G.type=[...G.type,...l.type],G.literal=[...G.literal,...l.literal],G.built_in=[...G.built_in,...l.built_in],G._hints=l._hints,c.name="Arduino",c.aliases=["ino"],c.supersetOf="cpp",c}function B3I(I){const l=I.regex,c={},G={begin:/\$\{/,end:/\}/,contains:["self",{begin:/:-/,contains:[c]}]};Object.assign(c,{className:"variable",variants:[{begin:l.concat(/\$[\w\d#@][\w\d_]*/,"(?![\\w\\d])(?![$])")},G]});const e={className:"subst",begin:/\$\(/,end:/\)/,contains:[I.BACKSLASH_ESCAPE]},d={begin:/<<-?\s*(?=\w+)/,starts:{contains:[I.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,className:"string"})]}},t={className:"string",begin:/"/,end:/"/,contains:[I.BACKSLASH_ESCAPE,c,e]};e.contains.push(t);const n={match:/\\"/},b={className:"string",begin:/'/,end:/'/},a={match:/\\'/},Z={begin:/\$?\(\(/,end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},I.NUMBER_MODE,c]},W=["fish","bash","zsh","sh","csh","ksh","tcsh","dash","scsh"],m=I.SHEBANG({binary:`(${W.join("|")})`,relevance:10}),s={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,contains:[I.inherit(I.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0},h=["if","then","else","elif","fi","for","while","until","in","do","done","case","esac","function","select"],p=["true","false"],V={match:/(\/[a-z._-]+)+/},o=["break","cd","continue","eval","exec","exit","export","getopts","hash","pwd","readonly","return","shift","test","times","trap","umask","unset"],F=["alias","bind","builtin","caller","command","declare","echo","enable","help","let","local","logout","mapfile","printf","read","readarray","source","type","typeset","ulimit","unalias"],X=["autoload","bg","bindkey","bye","cap","chdir","clone","comparguments","compcall","compctl","compdescribe","compfiles","compgroups","compquote","comptags","comptry","compvalues","dirs","disable","disown","echotc","echoti","emulate","fc","fg","float","functions","getcap","getln","history","integer","jobs","kill","limit","log","noglob","popd","print","pushd","pushln","rehash","sched","setcap","setopt","stat","suspend","ttyctl","unfunction","unhash","unlimit","unsetopt","vared","wait","whence","where","which","zcompile","zformat","zftp","zle","zmodload","zparseopts","zprof","zpty","zregexparse","zsocket","zstyle","ztcp"],H=["chcon","chgrp","chown","chmod","cp","dd","df","dir","dircolors","ln","ls","mkdir","mkfifo","mknod","mktemp","mv","realpath","rm","rmdir","shred","sync","touch","truncate","vdir","b2sum","base32","base64","cat","cksum","comm","csplit","cut","expand","fmt","fold","head","join","md5sum","nl","numfmt","od","paste","ptx","pr","sha1sum","sha224sum","sha256sum","sha384sum","sha512sum","shuf","sort","split","sum","tac","tail","tr","tsort","unexpand","uniq","wc","arch","basename","chroot","date","dirname","du","echo","env","expr","factor","groups","hostid","id","link","logname","nice","nohup","nproc","pathchk","pinky","printenv","printf","pwd","readlink","runcon","seq","sleep","stat","stdbuf","stty","tee","test","timeout","tty","uname","unlink","uptime","users","who","whoami","yes"];return{name:"Bash",aliases:["sh"],keywords:{$pattern:/\b[a-z][a-z0-9._-]+\b/,keyword:h,literal:p,built_in:[...o,...F,"set","shopt",...X,...H]},contains:[m,I.SHEBANG(),s,Z,I.HASH_COMMENT_MODE,d,V,t,n,b,a,c]}}function k3I(I){const l=I.regex,c=I.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),G="decltype\\(auto\\)",e="[a-zA-Z_]\\w*::",d="<[^<>]+>",t="("+G+"|"+l.optional(e)+"[a-zA-Z_]\\w*"+l.optional(d)+")",n={className:"type",variants:[{begin:"\\b[a-z\\d_]*_t\\b"},{match:/\batomic_[a-z]{3,6}\b/}]},b="\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)",a={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[I.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'("+b+"|.)",end:"'",illegal:"."},I.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},Z={className:"number",variants:[{begin:"\\b(0b[01']+)"},{begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)"},{begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"}],relevance:0},W={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},I.inherit(a,{className:"string"}),{className:"string",begin:/<.*?>/},c,I.C_BLOCK_COMMENT_MODE]},m={className:"title",begin:l.optional(e)+I.IDENT_RE,relevance:0},s=l.optional(e)+I.IDENT_RE+"\\s*\\(",V={keyword:["asm","auto","break","case","continue","default","do","else","enum","extern","for","fortran","goto","if","inline","register","restrict","return","sizeof","struct","switch","typedef","union","volatile","while","_Alignas","_Alignof","_Atomic","_Generic","_Noreturn","_Static_assert","_Thread_local","alignas","alignof","noreturn","static_assert","thread_local","_Pragma"],type:["float","double","signed","unsigned","int","short","long","char","void","_Bool","_Complex","_Imaginary","_Decimal32","_Decimal64","_Decimal128","const","static","complex","bool","imaginary"],literal:"true false NULL",built_in:"std string wstring cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set pair bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap priority_queue make_pair array shared_ptr abort terminate abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf future isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf endl initializer_list unique_ptr"},o=[W,n,c,I.C_BLOCK_COMMENT_MODE,Z,a],F={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:V,contains:o.concat([{begin:/\(/,end:/\)/,keywords:V,contains:o.concat(["self"]),relevance:0}]),relevance:0},X={begin:"("+t+"[\\*&\\s]+)+"+s,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:V,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:G,keywords:V,relevance:0},{begin:s,returnBegin:!0,contains:[I.inherit(m,{className:"title.function"})],relevance:0},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:V,relevance:0,contains:[c,I.C_BLOCK_COMMENT_MODE,a,Z,n,{begin:/\(/,end:/\)/,keywords:V,relevance:0,contains:["self",c,I.C_BLOCK_COMMENT_MODE,a,Z,n]}]},n,c,I.C_BLOCK_COMMENT_MODE,W]};return{name:"C",aliases:["h"],keywords:V,disableAutodetect:!0,illegal:"=]/,contains:[{beginKeywords:"final class struct"},I.TITLE_MODE]}]),exports:{preprocessor:W,strings:a,keywords:V}}}function x3I(I){const l=I.regex,c=I.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),G="decltype\\(auto\\)",e="[a-zA-Z_]\\w*::",d="<[^<>]+>",t="(?!struct)("+G+"|"+l.optional(e)+"[a-zA-Z_]\\w*"+l.optional(d)+")",n={className:"type",begin:"\\b[a-z\\d_]*_t\\b"},b="\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)",a={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[I.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'("+b+"|.)",end:"'",illegal:"."},I.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},Z={className:"number",variants:[{begin:"\\b(0b[01']+)"},{begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)"},{begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"}],relevance:0},W={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},I.inherit(a,{className:"string"}),{className:"string",begin:/<.*?>/},c,I.C_BLOCK_COMMENT_MODE]},m={className:"title",begin:l.optional(e)+I.IDENT_RE,relevance:0},s=l.optional(e)+I.IDENT_RE+"\\s*\\(",h=["alignas","alignof","and","and_eq","asm","atomic_cancel","atomic_commit","atomic_noexcept","auto","bitand","bitor","break","case","catch","class","co_await","co_return","co_yield","compl","concept","const_cast|10","consteval","constexpr","constinit","continue","decltype","default","delete","do","dynamic_cast|10","else","enum","explicit","export","extern","false","final","for","friend","goto","if","import","inline","module","mutable","namespace","new","noexcept","not","not_eq","nullptr","operator","or","or_eq","override","private","protected","public","reflexpr","register","reinterpret_cast|10","requires","return","sizeof","static_assert","static_cast|10","struct","switch","synchronized","template","this","thread_local","throw","transaction_safe","transaction_safe_dynamic","true","try","typedef","typeid","typename","union","using","virtual","volatile","while","xor","xor_eq"],p=["bool","char","char16_t","char32_t","char8_t","double","float","int","long","short","void","wchar_t","unsigned","signed","const","static"],V=["any","auto_ptr","barrier","binary_semaphore","bitset","complex","condition_variable","condition_variable_any","counting_semaphore","deque","false_type","future","imaginary","initializer_list","istringstream","jthread","latch","lock_guard","multimap","multiset","mutex","optional","ostringstream","packaged_task","pair","promise","priority_queue","queue","recursive_mutex","recursive_timed_mutex","scoped_lock","set","shared_future","shared_lock","shared_mutex","shared_timed_mutex","shared_ptr","stack","string_view","stringstream","timed_mutex","thread","true_type","tuple","unique_lock","unique_ptr","unordered_map","unordered_multimap","unordered_multiset","unordered_set","variant","vector","weak_ptr","wstring","wstring_view"],o=["abort","abs","acos","apply","as_const","asin","atan","atan2","calloc","ceil","cerr","cin","clog","cos","cosh","cout","declval","endl","exchange","exit","exp","fabs","floor","fmod","forward","fprintf","fputs","free","frexp","fscanf","future","invoke","isalnum","isalpha","iscntrl","isdigit","isgraph","islower","isprint","ispunct","isspace","isupper","isxdigit","labs","launder","ldexp","log","log10","make_pair","make_shared","make_shared_for_overwrite","make_tuple","make_unique","malloc","memchr","memcmp","memcpy","memset","modf","move","pow","printf","putchar","puts","realloc","scanf","sin","sinh","snprintf","sprintf","sqrt","sscanf","std","stderr","stdin","stdout","strcat","strchr","strcmp","strcpy","strcspn","strlen","strncat","strncmp","strncpy","strpbrk","strrchr","strspn","strstr","swap","tan","tanh","terminate","to_underlying","tolower","toupper","vfprintf","visit","vprintf","vsprintf"],H={type:p,keyword:h,literal:["NULL","false","nullopt","nullptr","true"],built_in:["_Pragma"],_type_hints:V},Y={className:"function.dispatch",relevance:0,keywords:{_hint:o},begin:l.concat(/\b/,/(?!decltype)/,/(?!if)/,/(?!for)/,/(?!switch)/,/(?!while)/,I.IDENT_RE,l.lookahead(/(<[^<>]+>|)\s*\(/))},R=[Y,W,n,c,I.C_BLOCK_COMMENT_MODE,Z,a],B={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:H,contains:R.concat([{begin:/\(/,end:/\)/,keywords:H,contains:R.concat(["self"]),relevance:0}]),relevance:0},C={className:"function",begin:"("+t+"[\\*&\\s]+)+"+s,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:H,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:G,keywords:H,relevance:0},{begin:s,returnBegin:!0,contains:[m],relevance:0},{begin:/::/,relevance:0},{begin:/:/,endsWithParent:!0,contains:[a,Z]},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:H,relevance:0,contains:[c,I.C_BLOCK_COMMENT_MODE,a,Z,n,{begin:/\(/,end:/\)/,keywords:H,relevance:0,contains:["self",c,I.C_BLOCK_COMMENT_MODE,a,Z,n]}]},n,c,I.C_BLOCK_COMMENT_MODE,W]};return{name:"C++",aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:H,illegal:"",keywords:H,contains:["self",n]},{begin:I.IDENT_RE+"::",keywords:H},{match:[/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/],className:{1:"keyword",3:"title.class"}}])}}function z3I(I){const l=["bool","byte","char","decimal","delegate","double","dynamic","enum","float","int","long","nint","nuint","object","sbyte","short","string","ulong","uint","ushort"],c=["public","private","protected","static","internal","protected","abstract","async","extern","override","unsafe","virtual","new","sealed","partial"],G=["default","false","null","true"],e=["abstract","as","base","break","case","catch","class","const","continue","do","else","event","explicit","extern","finally","fixed","for","foreach","goto","if","implicit","in","interface","internal","is","lock","namespace","new","operator","out","override","params","private","protected","public","readonly","record","ref","return","scoped","sealed","sizeof","stackalloc","static","struct","switch","this","throw","try","typeof","unchecked","unsafe","using","virtual","void","volatile","while"],d=["add","alias","and","ascending","async","await","by","descending","equals","from","get","global","group","init","into","join","let","nameof","not","notnull","on","or","orderby","partial","remove","select","set","unmanaged","value|0","var","when","where","with","yield"],t={keyword:e.concat(d),built_in:l,literal:G},n=I.inherit(I.TITLE_MODE,{begin:"[a-zA-Z](\\.?\\w)*"}),b={className:"number",variants:[{begin:"\\b(0b[01']+)"},{begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)(u|U|l|L|ul|UL|f|F|b|B)"},{begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"}],relevance:0},a={className:"string",begin:'@"',end:'"',contains:[{begin:'""'}]},Z=I.inherit(a,{illegal:/\n/}),W={className:"subst",begin:/\{/,end:/\}/,keywords:t},m=I.inherit(W,{illegal:/\n/}),s={className:"string",begin:/\$"/,end:'"',illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/},I.BACKSLASH_ESCAPE,m]},h={className:"string",begin:/\$@"/,end:'"',contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},W]},p=I.inherit(h,{illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},m]});W.contains=[h,s,a,I.APOS_STRING_MODE,I.QUOTE_STRING_MODE,b,I.C_BLOCK_COMMENT_MODE],m.contains=[p,s,Z,I.APOS_STRING_MODE,I.QUOTE_STRING_MODE,b,I.inherit(I.C_BLOCK_COMMENT_MODE,{illegal:/\n/})];const V={variants:[h,s,a,I.APOS_STRING_MODE,I.QUOTE_STRING_MODE]},o={begin:"<",end:">",contains:[{beginKeywords:"in out"},n]},F=I.IDENT_RE+"(<"+I.IDENT_RE+"(\\s*,\\s*"+I.IDENT_RE+")*>)?(\\[\\])?",X={begin:"@"+I.IDENT_RE,relevance:0};return{name:"C#",aliases:["cs","c#"],keywords:t,illegal:/::/,contains:[I.COMMENT("///","$",{returnBegin:!0,contains:[{className:"doctag",variants:[{begin:"///",relevance:0},{begin:""},{begin:""}]}]}),I.C_LINE_COMMENT_MODE,I.C_BLOCK_COMMENT_MODE,{className:"meta",begin:"#",end:"$",keywords:{keyword:"if else elif endif define undef warning error line region endregion pragma checksum"}},V,b,{beginKeywords:"class interface",relevance:0,end:/[{;=]/,illegal:/[^\s:,]/,contains:[{beginKeywords:"where class"},n,o,I.C_LINE_COMMENT_MODE,I.C_BLOCK_COMMENT_MODE]},{beginKeywords:"namespace",relevance:0,end:/[{;=]/,illegal:/[^\s:]/,contains:[n,I.C_LINE_COMMENT_MODE,I.C_BLOCK_COMMENT_MODE]},{beginKeywords:"record",relevance:0,end:/[{;=]/,illegal:/[^\s:]/,contains:[n,o,I.C_LINE_COMMENT_MODE,I.C_BLOCK_COMMENT_MODE]},{className:"meta",begin:"^\\s*\\[(?=[\\w])",excludeBegin:!0,end:"\\]",excludeEnd:!0,contains:[{className:"string",begin:/"/,end:/"/}]},{beginKeywords:"new return throw await else",relevance:0},{className:"function",begin:"("+F+"\\s+)+"+I.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0,end:/\s*[{;=]/,excludeEnd:!0,keywords:t,contains:[{beginKeywords:c.join(" "),relevance:0},{begin:I.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0,contains:[I.TITLE_MODE,o],relevance:0},{match:/\(\)/},{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:t,relevance:0,contains:[V,b,I.C_BLOCK_COMMENT_MODE]},I.C_LINE_COMMENT_MODE,I.C_BLOCK_COMMENT_MODE]},X]}}const U3I=I=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:I.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[I.APOS_STRING_MODE,I.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:I.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}),C3I=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],M3I=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"],f3I=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"],K3I=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"],L3I=["align-content","align-items","align-self","all","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","content","content-visibility","counter-increment","counter-reset","cue","cue-after","cue-before","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-smoothing","font-stretch","font-style","font-synthesis","font-variant","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","gap","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","inline-size","isolation","justify-content","left","letter-spacing","line-break","line-height","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-wrap","overflow-x","overflow-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","pause","pause-after","pause-before","perspective","perspective-origin","pointer-events","position","quotes","resize","rest","rest-after","rest-before","right","row-gap","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","speak","speak-as","src","tab-size","table-layout","text-align","text-align-all","text-align-last","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-transform","text-underline-position","top","transform","transform-box","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","z-index"].reverse();function S3I(I){const l=I.regex,c=U3I(I),G={begin:/-(webkit|moz|ms|o)-(?=[a-z])/},e="and or not only",d=/@-?\w[\w]*(-\w+)*/,t="[a-zA-Z-][a-zA-Z0-9_-]*",n=[I.APOS_STRING_MODE,I.QUOTE_STRING_MODE];return{name:"CSS",case_insensitive:!0,illegal:/[=|'\$]/,keywords:{keyframePosition:"from to"},classNameAliases:{keyframePosition:"selector-tag"},contains:[c.BLOCK_COMMENT,G,c.CSS_NUMBER_MODE,{className:"selector-id",begin:/#[A-Za-z0-9_-]+/,relevance:0},{className:"selector-class",begin:"\\."+t,relevance:0},c.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",variants:[{begin:":("+f3I.join("|")+")"},{begin:":(:)?("+K3I.join("|")+")"}]},c.CSS_VARIABLE,{className:"attribute",begin:"\\b("+L3I.join("|")+")\\b"},{begin:/:/,end:/[;}{]/,contains:[c.BLOCK_COMMENT,c.HEXCOLOR,c.IMPORTANT,c.CSS_NUMBER_MODE,...n,{begin:/(url|data-uri)\(/,end:/\)/,relevance:0,keywords:{built_in:"url data-uri"},contains:[...n,{className:"string",begin:/[^)]/,endsWithParent:!0,excludeEnd:!0}]},c.FUNCTION_DISPATCH]},{begin:l.lookahead(/@/),end:"[{;]",relevance:0,illegal:/:/,contains:[{className:"keyword",begin:d},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,keywords:{$pattern:/[a-z-]+/,keyword:e,attribute:M3I.join(" ")},contains:[{begin:/[a-z-]+(?=:)/,className:"attribute"},...n,c.CSS_NUMBER_MODE]}]},{className:"selector-tag",begin:"\\b("+C3I.join("|")+")\\b"}]}}function T3I(I){const l=I.regex;return{name:"Diff",aliases:["patch"],contains:[{className:"meta",relevance:10,match:l.either(/^@@ +-\d+,\d+ +\+\d+,\d+ +@@/,/^\*\*\* +\d+,\d+ +\*\*\*\*$/,/^--- +\d+,\d+ +----$/)},{className:"comment",variants:[{begin:l.either(/Index: /,/^index/,/={3,}/,/^-{3}/,/^\*{3} /,/^\+{3}/,/^diff --git/),end:/$/},{match:/^\*{15}$/}]},{className:"addition",begin:/^\+/,end:/$/},{className:"deletion",begin:/^-/,end:/$/},{className:"addition",begin:/^!/,end:/$/}]}}function j3I(I){const d={keyword:["break","case","chan","const","continue","default","defer","else","fallthrough","for","func","go","goto","if","import","interface","map","package","range","return","select","struct","switch","type","var"],type:["bool","byte","complex64","complex128","error","float32","float64","int8","int16","int32","int64","string","uint8","uint16","uint32","uint64","int","uint","uintptr","rune"],literal:["true","false","iota","nil"],built_in:["append","cap","close","complex","copy","imag","len","make","new","panic","print","println","real","recover","delete"]};return{name:"Go",aliases:["golang"],keywords:d,illegal:"E6(I,l,c-1))}function P3I(I){const l=I.regex,c="[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*",G=c+E6("(?:<"+c+"~~~(?:\\s*,\\s*"+c+"~~~)*>)?",/~~~/g,2),b={keyword:["synchronized","abstract","private","var","static","if","const ","for","while","strictfp","finally","protected","import","native","final","void","enum","else","break","transient","catch","instanceof","volatile","case","assert","package","default","public","try","switch","continue","throws","protected","public","private","module","requires","exports","do","sealed","yield","permits"],literal:["false","true","null"],type:["char","boolean","long","float","int","byte","short","double"],built_in:["super","this"]},a={className:"meta",begin:"@"+c,contains:[{begin:/\(/,end:/\)/,contains:["self"]}]},Z={className:"params",begin:/\(/,end:/\)/,keywords:b,relevance:0,contains:[I.C_BLOCK_COMMENT_MODE],endsParent:!0};return{name:"Java",aliases:["jsp"],keywords:b,illegal:/<\/|#/,contains:[I.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/,relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]}),{begin:/import java\.[a-z]+\./,keywords:"import",relevance:2},I.C_LINE_COMMENT_MODE,I.C_BLOCK_COMMENT_MODE,{begin:/"""/,end:/"""/,className:"string",contains:[I.BACKSLASH_ESCAPE]},I.APOS_STRING_MODE,I.QUOTE_STRING_MODE,{match:[/\b(?:class|interface|enum|extends|implements|new)/,/\s+/,c],className:{1:"keyword",3:"title.class"}},{match:/non-sealed/,scope:"keyword"},{begin:[l.concat(/(?!else)/,c),/\s+/,c,/\s+/,/=(?!=)/],className:{1:"type",3:"variable",5:"operator"}},{begin:[/record/,/\s+/,c],className:{1:"keyword",3:"title.class"},contains:[Z,I.C_LINE_COMMENT_MODE,I.C_BLOCK_COMMENT_MODE]},{beginKeywords:"new throw return else",relevance:0},{begin:["(?:"+G+"\\s+)",I.UNDERSCORE_IDENT_RE,/\s*(?=\()/],className:{2:"title.function"},keywords:b,contains:[{className:"params",begin:/\(/,end:/\)/,keywords:b,relevance:0,contains:[a,I.APOS_STRING_MODE,I.QUOTE_STRING_MODE,wz,I.C_BLOCK_COMMENT_MODE]},I.C_LINE_COMMENT_MODE,I.C_BLOCK_COMMENT_MODE]},wz,a]}}const Ez="[A-Za-z$_][0-9A-Za-z$_]*",_3I=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],q3I=["true","false","null","undefined","NaN","Infinity"],v6=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],g6=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],A6=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],$3I=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],IJI=[].concat(A6,v6,g6);function lJI(I){const l=I.regex,c=(S,{after:tI})=>{const z="",end:""},d=/<[A-Za-z0-9\\._:-]+\s*\/>/,t={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(S,tI)=>{const z=S[0].length+S.index,g=S.input[z];if(g==="<"||g===","){tI.ignoreMatch();return}g===">"&&(c(S,{after:z})||tI.ignoreMatch());let GI;const f=S.input.substring(z);if(GI=f.match(/^\s*=/)){tI.ignoreMatch();return}if((GI=f.match(/^\s+extends\s+/))&&GI.index===0){tI.ignoreMatch();return}}},n={$pattern:Ez,keyword:_3I,literal:q3I,built_in:IJI,"variable.language":$3I},b="[0-9](_?[0-9])*",a=`\\.(${b})`,Z="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",W={className:"number",variants:[{begin:`(\\b(${Z})((${a})|\\.)?|(${a}))[eE][+-]?(${b})\\b`},{begin:`\\b(${Z})\\b((${a})\\b|\\.)?|(${a})\\b`},{begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{begin:"\\b0[0-7]+n?\\b"}],relevance:0},m={className:"subst",begin:"\\$\\{",end:"\\}",keywords:n,contains:[]},s={begin:"html`",end:"",starts:{end:"`",returnEnd:!1,contains:[I.BACKSLASH_ESCAPE,m],subLanguage:"xml"}},h={begin:"css`",end:"",starts:{end:"`",returnEnd:!1,contains:[I.BACKSLASH_ESCAPE,m],subLanguage:"css"}},p={begin:"gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[I.BACKSLASH_ESCAPE,m],subLanguage:"graphql"}},V={className:"string",begin:"`",end:"`",contains:[I.BACKSLASH_ESCAPE,m]},F={className:"comment",variants:[I.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{begin:"(?=@[A-Za-z]+)",relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"},{className:"type",begin:"\\{",end:"\\}",excludeEnd:!0,excludeBegin:!0,relevance:0},{className:"variable",begin:G+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),I.C_BLOCK_COMMENT_MODE,I.C_LINE_COMMENT_MODE]},X=[I.APOS_STRING_MODE,I.QUOTE_STRING_MODE,s,h,p,V,{match:/\$\d+/},W];m.contains=X.concat({begin:/\{/,end:/\}/,keywords:n,contains:["self"].concat(X)});const H=[].concat(F,m.contains),Y=H.concat([{begin:/\(/,end:/\)/,keywords:n,contains:["self"].concat(H)}]),R={className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:n,contains:Y},B={variants:[{match:[/class/,/\s+/,G,/\s+/,/extends/,/\s+/,l.concat(G,"(",l.concat(/\./,G),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,G],scope:{1:"keyword",3:"title.class"}}]},C={relevance:0,match:l.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),className:"title.class",keywords:{_:[...v6,...g6]}},k={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},N={variants:[{match:[/function/,/\s+/,G,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[R],illegal:/%/},J={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function A(S){return l.concat("(?!",S.join("|"),")")}const M={match:l.concat(/\b/,A([...A6,"super","import"]),G,l.lookahead(/\(/)),className:"title.function",relevance:0},D={begin:l.concat(/\./,l.lookahead(l.concat(G,/(?![0-9A-Za-z$_(])/))),end:G,excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},O={match:[/get|set/,/\s+/,G,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},R]},$="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+I.UNDERSCORE_IDENT_RE+")\\s*=>",j={match:[/const|var|let/,/\s+/,G,/\s*/,/=\s*/,/(async\s*)?/,l.lookahead($)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[R]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:n,exports:{PARAMS_CONTAINS:Y,CLASS_REFERENCE:C},illegal:/#(?![$_A-z])/,contains:[I.SHEBANG({label:"shebang",binary:"node",relevance:5}),k,I.APOS_STRING_MODE,I.QUOTE_STRING_MODE,s,h,p,V,F,{match:/\$\d+/},W,C,{className:"attr",begin:G+l.lookahead(":"),relevance:0},j,{begin:"("+I.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[F,I.REGEXP_MODE,{className:"function",begin:$,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:I.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:n,contains:Y}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:e.begin,end:e.end},{match:d},{begin:t.begin,"on:begin":t.isTrulyOpeningTag,end:t.end}],subLanguage:"xml",contains:[{begin:t.begin,end:t.end,skip:!0,contains:["self"]}]}]},N,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+I.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[R,I.inherit(I.TITLE_MODE,{begin:G,className:"title.function"})]},{match:/\.\.\./,relevance:0},D,{match:"\\$"+G,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[R]},M,J,B,O,{match:/\$[(.]/}]}}function cJI(I){const l={className:"attr",begin:/"(\\.|[^\\"\r\n])*"(?=\s*:)/,relevance:1.01},c={match:/[{}[\],:]/,className:"punctuation",relevance:0},G=["true","false","null"],e={scope:"literal",beginKeywords:G.join(" ")};return{name:"JSON",keywords:{literal:G},contains:[l,c,I.QUOTE_STRING_MODE,e,I.C_NUMBER_MODE,I.C_LINE_COMMENT_MODE,I.C_BLOCK_COMMENT_MODE],illegal:"\\S"}}var jr="[0-9](_*[0-9])*",Po=`\\.(${jr})`,_o="[0-9a-fA-F](_*[0-9a-fA-F])*",GJI={className:"number",variants:[{begin:`(\\b(${jr})((${Po})|\\.)?|(${Po}))[eE][+-]?(${jr})[fFdD]?\\b`},{begin:`\\b(${jr})((${Po})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{begin:`(${Po})[fFdD]?\\b`},{begin:`\\b(${jr})[fFdD]\\b`},{begin:`\\b0[xX]((${_o})\\.?|(${_o})?\\.(${_o}))[pP][+-]?(${jr})[fFdD]?\\b`},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${_o})[lL]?\\b`},{begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}],relevance:0};function eJI(I){const l={keyword:"abstract as val var vararg get set class object open private protected public noinline crossinline dynamic final enum if else do while for when throw try catch finally import package is in fun override companion reified inline lateinit init interface annotation data sealed internal infix operator out by constructor super tailrec where const inner suspend typealias external expect actual",built_in:"Byte Short Char Int Long Boolean Float Double Void Unit Nothing",literal:"true false null"},c={className:"keyword",begin:/\b(break|continue|return|this)\b/,starts:{contains:[{className:"symbol",begin:/@\w+/}]}},G={className:"symbol",begin:I.UNDERSCORE_IDENT_RE+"@"},e={className:"subst",begin:/\$\{/,end:/\}/,contains:[I.C_NUMBER_MODE]},d={className:"variable",begin:"\\$"+I.UNDERSCORE_IDENT_RE},t={className:"string",variants:[{begin:'"""',end:'"""(?=[^"])',contains:[d,e]},{begin:"'",end:"'",illegal:/\n/,contains:[I.BACKSLASH_ESCAPE]},{begin:'"',end:'"',illegal:/\n/,contains:[I.BACKSLASH_ESCAPE,d,e]}]};e.contains.push(t);const n={className:"meta",begin:"@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\s*:(?:\\s*"+I.UNDERSCORE_IDENT_RE+")?"},b={className:"meta",begin:"@"+I.UNDERSCORE_IDENT_RE,contains:[{begin:/\(/,end:/\)/,contains:[I.inherit(t,{className:"string"}),"self"]}]},a=GJI,Z=I.COMMENT("/\\*","\\*/",{contains:[I.C_BLOCK_COMMENT_MODE]}),W={variants:[{className:"type",begin:I.UNDERSCORE_IDENT_RE},{begin:/\(/,end:/\)/,contains:[]}]},m=W;return m.variants[1].contains=[W],W.variants[1].contains=[m],{name:"Kotlin",aliases:["kt","kts"],keywords:l,contains:[I.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"}]}),I.C_LINE_COMMENT_MODE,Z,c,G,n,b,{className:"function",beginKeywords:"fun",end:"[(]|$",returnBegin:!0,excludeEnd:!0,keywords:l,relevance:5,contains:[{begin:I.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,contains:[I.UNDERSCORE_TITLE_MODE]},{className:"type",begin://,keywords:"reified",relevance:0},{className:"params",begin:/\(/,end:/\)/,endsParent:!0,keywords:l,relevance:0,contains:[{begin:/:/,end:/[=,\/]/,endsWithParent:!0,contains:[W,I.C_LINE_COMMENT_MODE,Z],relevance:0},I.C_LINE_COMMENT_MODE,Z,n,b,t,I.C_NUMBER_MODE]},Z]},{begin:[/class|interface|trait/,/\s+/,I.UNDERSCORE_IDENT_RE],beginScope:{3:"title.class"},keywords:"class interface trait",end:/[:\{(]|$/,excludeEnd:!0,illegal:"extends implements",contains:[{beginKeywords:"public protected internal private constructor"},I.UNDERSCORE_TITLE_MODE,{className:"type",begin://,excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:/[,:]\s*/,end:/[<\(,){\s]|$/,excludeBegin:!0,returnEnd:!0},n,b]},t,{className:"meta",begin:"^#!/usr/bin/env",end:"$",illegal:` -`},a]}}const dJI=I=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:I.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[I.APOS_STRING_MODE,I.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:I.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}),tJI=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],nJI=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"],y6=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"],J6=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"],bJI=["align-content","align-items","align-self","all","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","content","content-visibility","counter-increment","counter-reset","cue","cue-after","cue-before","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-smoothing","font-stretch","font-style","font-synthesis","font-variant","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","gap","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","inline-size","isolation","justify-content","left","letter-spacing","line-break","line-height","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-wrap","overflow-x","overflow-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","pause","pause-after","pause-before","perspective","perspective-origin","pointer-events","position","quotes","resize","rest","rest-after","rest-before","right","row-gap","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","speak","speak-as","src","tab-size","table-layout","text-align","text-align-all","text-align-last","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-transform","text-underline-position","top","transform","transform-box","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","z-index"].reverse(),aJI=y6.concat(J6);function ZJI(I){const l=dJI(I),c=aJI,G="and or not only",e="[\\w-]+",d="("+e+"|@\\{"+e+"\\})",t=[],n=[],b=function(X){return{className:"string",begin:"~?"+X+".*?"+X}},a=function(X,H,Y){return{className:X,begin:H,relevance:Y}},Z={$pattern:/[a-z-]+/,keyword:G,attribute:nJI.join(" ")},W={begin:"\\(",end:"\\)",contains:n,keywords:Z,relevance:0};n.push(I.C_LINE_COMMENT_MODE,I.C_BLOCK_COMMENT_MODE,b("'"),b('"'),l.CSS_NUMBER_MODE,{begin:"(url|data-uri)\\(",starts:{className:"string",end:"[\\)\\n]",excludeEnd:!0}},l.HEXCOLOR,W,a("variable","@@?"+e,10),a("variable","@\\{"+e+"\\}"),a("built_in","~?`[^`]*?`"),{className:"attribute",begin:e+"\\s*:",end:":",returnBegin:!0,excludeEnd:!0},l.IMPORTANT,{beginKeywords:"and not"},l.FUNCTION_DISPATCH);const m=n.concat({begin:/\{/,end:/\}/,contains:t}),s={beginKeywords:"when",endsWithParent:!0,contains:[{beginKeywords:"and not"}].concat(n)},h={begin:d+"\\s*:",returnBegin:!0,end:/[;}]/,relevance:0,contains:[{begin:/-(webkit|moz|ms|o)-/},l.CSS_VARIABLE,{className:"attribute",begin:"\\b("+bJI.join("|")+")\\b",end:/(?=:)/,starts:{endsWithParent:!0,illegal:"[<=$]",relevance:0,contains:n}}]},p={className:"keyword",begin:"@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\b",starts:{end:"[;{}]",keywords:Z,returnEnd:!0,contains:n,relevance:0}},V={className:"variable",variants:[{begin:"@"+e+"\\s*:",relevance:15},{begin:"@"+e}],starts:{end:"[;}]",returnEnd:!0,contains:m}},o={variants:[{begin:"[\\.#:&\\[>]",end:"[;{}]"},{begin:d,end:/\{/}],returnBegin:!0,returnEnd:!0,illegal:`[<='$"]`,relevance:0,contains:[I.C_LINE_COMMENT_MODE,I.C_BLOCK_COMMENT_MODE,s,a("keyword","all\\b"),a("variable","@\\{"+e+"\\}"),{begin:"\\b("+tJI.join("|")+")\\b",className:"selector-tag"},l.CSS_NUMBER_MODE,a("selector-tag",d,0),a("selector-id","#"+d),a("selector-class","\\."+d,0),a("selector-tag","&",0),l.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",begin:":("+y6.join("|")+")"},{className:"selector-pseudo",begin:":(:)?("+J6.join("|")+")"},{begin:/\(/,end:/\)/,relevance:0,contains:m},{begin:"!important"},l.FUNCTION_DISPATCH]},F={begin:e+`:(:)?(${c.join("|")})`,returnBegin:!0,contains:[o]};return t.push(I.C_LINE_COMMENT_MODE,I.C_BLOCK_COMMENT_MODE,p,V,F,h,o,s,l.FUNCTION_DISPATCH),{name:"Less",case_insensitive:!0,illegal:`[=>'/<($"]`,contains:t}}function WJI(I){const l="\\[=*\\[",c="\\]=*\\]",G={begin:l,end:c,contains:["self"]},e=[I.COMMENT("--(?!"+l+")","$"),I.COMMENT("--"+l,c,{contains:[G],relevance:10})];return{name:"Lua",keywords:{$pattern:I.UNDERSCORE_IDENT_RE,literal:"true false nil",keyword:"and break do else elseif end for goto if in local not or repeat return then until while",built_in:"_G _ENV _VERSION __index __newindex __mode __call __metatable __tostring __len __gc __add __sub __mul __div __mod __pow __concat __unm __eq __lt __le assert collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring module next pairs pcall print rawequal rawget rawset require select setfenv setmetatable tonumber tostring type unpack xpcall arg self coroutine resume yield status wrap create running debug getupvalue debug sethook getmetatable gethook setmetatable setlocal traceback setfenv getinfo setupvalue getlocal getregistry getfenv io lines write close flush open output type read stderr stdin input stdout popen tmpfile math log max acos huge ldexp pi cos tanh pow deg tan cosh sinh random randomseed frexp ceil floor rad abs sqrt modf asin min mod fmod log10 atan2 exp sin atan os exit setlocale date getenv difftime remove time clock tmpname rename execute package preload loadlib loaded loaders cpath config path seeall string sub upper len gfind rep find match char dump gmatch reverse byte format gsub lower table setn insert getn foreachi maxn foreach concat sort remove"},contains:e.concat([{className:"function",beginKeywords:"function",end:"\\)",contains:[I.inherit(I.TITLE_MODE,{begin:"([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*"}),{className:"params",begin:"\\(",endsWithParent:!0,contains:e}].concat(e)},I.C_NUMBER_MODE,I.APOS_STRING_MODE,I.QUOTE_STRING_MODE,{className:"string",begin:l,end:c,contains:[G],relevance:5}])}}function rJI(I){const l={className:"variable",variants:[{begin:"\\$\\("+I.UNDERSCORE_IDENT_RE+"\\)",contains:[I.BACKSLASH_ESCAPE]},{begin:/\$[@%",subLanguage:"xml",relevance:0},G={begin:"^[-\\*]{3,}",end:"$"},e={className:"code",variants:[{begin:"(`{3,})[^`](.|\\n)*?\\1`*[ ]*"},{begin:"(~{3,})[^~](.|\\n)*?\\1~*[ ]*"},{begin:"```",end:"```+[ ]*$"},{begin:"~~~",end:"~~~+[ ]*$"},{begin:"`.+?`"},{begin:"(?=^( {4}|\\t))",contains:[{begin:"^( {4}|\\t)",end:"(\\n)$"}],relevance:0}]},d={className:"bullet",begin:"^[ ]*([*+-]|(\\d+\\.))(?=\\s+)",end:"\\s+",excludeEnd:!0},t={begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]},n=/[A-Za-z][A-Za-z0-9+.-]*/,b={variants:[{begin:/\[.+?\]\[.*?\]/,relevance:0},{begin:/\[.+?\]\(((data|javascript|mailto):|(?:http|ftp)s?:\/\/).*?\)/,relevance:2},{begin:l.concat(/\[.+?\]\(/,n,/:\/\/.*?\)/),relevance:2},{begin:/\[.+?\]\([./?&#].*?\)/,relevance:1},{begin:/\[.*?\]\(.*?\)/,relevance:0}],returnBegin:!0,contains:[{match:/\[(?=\])/},{className:"string",relevance:0,begin:"\\[",end:"\\]",excludeBegin:!0,returnEnd:!0},{className:"link",relevance:0,begin:"\\]\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0},{className:"symbol",relevance:0,begin:"\\]\\[",end:"\\]",excludeBegin:!0,excludeEnd:!0}]},a={className:"strong",contains:[],variants:[{begin:/_{2}(?!\s)/,end:/_{2}/},{begin:/\*{2}(?!\s)/,end:/\*{2}/}]},Z={className:"emphasis",contains:[],variants:[{begin:/\*(?![*\s])/,end:/\*/},{begin:/_(?![_\s])/,end:/_/,relevance:0}]},W=I.inherit(a,{contains:[]}),m=I.inherit(Z,{contains:[]});a.contains.push(m),Z.contains.push(W);let s=[c,b];return[a,Z,W,m].forEach(V=>{V.contains=V.contains.concat(s)}),s=s.concat(a,Z),{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[{className:"section",variants:[{begin:"^#{1,6}",end:"$",contains:s},{begin:"(?=^.+?\\n[=-]{2,}$)",contains:[{begin:"^[=-]*$"},{begin:"^",end:"\\n",contains:s}]}]},c,d,a,Z,{className:"quote",begin:"^>\\s+",contains:s,end:"$"},e,G,b,t]}}function sJI(I){const l={className:"built_in",begin:"\\b(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)\\w+"},c=/[a-zA-Z@][a-zA-Z0-9_]*/,n={"variable.language":["this","super"],$pattern:c,keyword:["while","export","sizeof","typedef","const","struct","for","union","volatile","static","mutable","if","do","return","goto","enum","else","break","extern","asm","case","default","register","explicit","typename","switch","continue","inline","readonly","assign","readwrite","self","@synchronized","id","typeof","nonatomic","IBOutlet","IBAction","strong","weak","copy","in","out","inout","bycopy","byref","oneway","__strong","__weak","__block","__autoreleasing","@private","@protected","@public","@try","@property","@end","@throw","@catch","@finally","@autoreleasepool","@synthesize","@dynamic","@selector","@optional","@required","@encode","@package","@import","@defs","@compatibility_alias","__bridge","__bridge_transfer","__bridge_retained","__bridge_retain","__covariant","__contravariant","__kindof","_Nonnull","_Nullable","_Null_unspecified","__FUNCTION__","__PRETTY_FUNCTION__","__attribute__","getter","setter","retain","unsafe_unretained","nonnull","nullable","null_unspecified","null_resettable","class","instancetype","NS_DESIGNATED_INITIALIZER","NS_UNAVAILABLE","NS_REQUIRES_SUPER","NS_RETURNS_INNER_POINTER","NS_INLINE","NS_AVAILABLE","NS_DEPRECATED","NS_ENUM","NS_OPTIONS","NS_SWIFT_UNAVAILABLE","NS_ASSUME_NONNULL_BEGIN","NS_ASSUME_NONNULL_END","NS_REFINED_FOR_SWIFT","NS_SWIFT_NAME","NS_SWIFT_NOTHROW","NS_DURING","NS_HANDLER","NS_ENDHANDLER","NS_VALUERETURN","NS_VOIDRETURN"],literal:["false","true","FALSE","TRUE","nil","YES","NO","NULL"],built_in:["dispatch_once_t","dispatch_queue_t","dispatch_sync","dispatch_async","dispatch_once"],type:["int","float","char","unsigned","signed","short","long","double","wchar_t","unichar","void","bool","BOOL","id|0","_Bool"]},b={$pattern:c,keyword:["@interface","@class","@protocol","@implementation"]};return{name:"Objective-C",aliases:["mm","objc","obj-c","obj-c++","objective-c++"],keywords:n,illegal:"/,end:/$/,illegal:"\\n"},I.C_LINE_COMMENT_MODE,I.C_BLOCK_COMMENT_MODE]},{className:"class",begin:"("+b.keyword.join("|")+")\\b",end:/(\{|$)/,excludeEnd:!0,keywords:b,contains:[I.UNDERSCORE_TITLE_MODE]},{begin:"\\."+I.UNDERSCORE_IDENT_RE,relevance:0}]}}function uJI(I){const l=I.regex,c=["abs","accept","alarm","and","atan2","bind","binmode","bless","break","caller","chdir","chmod","chomp","chop","chown","chr","chroot","close","closedir","connect","continue","cos","crypt","dbmclose","dbmopen","defined","delete","die","do","dump","each","else","elsif","endgrent","endhostent","endnetent","endprotoent","endpwent","endservent","eof","eval","exec","exists","exit","exp","fcntl","fileno","flock","for","foreach","fork","format","formline","getc","getgrent","getgrgid","getgrnam","gethostbyaddr","gethostbyname","gethostent","getlogin","getnetbyaddr","getnetbyname","getnetent","getpeername","getpgrp","getpriority","getprotobyname","getprotobynumber","getprotoent","getpwent","getpwnam","getpwuid","getservbyname","getservbyport","getservent","getsockname","getsockopt","given","glob","gmtime","goto","grep","gt","hex","if","index","int","ioctl","join","keys","kill","last","lc","lcfirst","length","link","listen","local","localtime","log","lstat","lt","ma","map","mkdir","msgctl","msgget","msgrcv","msgsnd","my","ne","next","no","not","oct","open","opendir","or","ord","our","pack","package","pipe","pop","pos","print","printf","prototype","push","q|0","qq","quotemeta","qw","qx","rand","read","readdir","readline","readlink","readpipe","recv","redo","ref","rename","require","reset","return","reverse","rewinddir","rindex","rmdir","say","scalar","seek","seekdir","select","semctl","semget","semop","send","setgrent","sethostent","setnetent","setpgrp","setpriority","setprotoent","setpwent","setservent","setsockopt","shift","shmctl","shmget","shmread","shmwrite","shutdown","sin","sleep","socket","socketpair","sort","splice","split","sprintf","sqrt","srand","stat","state","study","sub","substr","symlink","syscall","sysopen","sysread","sysseek","system","syswrite","tell","telldir","tie","tied","time","times","tr","truncate","uc","ucfirst","umask","undef","unless","unlink","unpack","unshift","untie","until","use","utime","values","vec","wait","waitpid","wantarray","warn","when","while","write","x|0","xor","y|0"],G=/[dualxmsipngr]{0,12}/,e={$pattern:/[\w.]+/,keyword:c.join(" ")},d={className:"subst",begin:"[$@]\\{",end:"\\}",keywords:e},t={begin:/->\{/,end:/\}/},n={variants:[{begin:/\$\d/},{begin:l.concat(/[$%@](\^\w\b|#\w+(::\w+)*|\{\w+\}|\w+(::\w*)*)/,"(?![A-Za-z])(?![@$%])")},{begin:/[$%@][^\s\w{]/,relevance:0}]},b=[I.BACKSLASH_ESCAPE,d,n],a=[/!/,/\//,/\|/,/\?/,/'/,/"/,/#/],Z=(s,h,p="\\1")=>{const V=p==="\\1"?p:l.concat(p,h);return l.concat(l.concat("(?:",s,")"),h,/(?:\\.|[^\\\/])*?/,V,/(?:\\.|[^\\\/])*?/,p,G)},W=(s,h,p)=>l.concat(l.concat("(?:",s,")"),h,/(?:\\.|[^\\\/])*?/,p,G),m=[n,I.HASH_COMMENT_MODE,I.COMMENT(/^=\w/,/=cut/,{endsWithParent:!0}),t,{className:"string",contains:b,variants:[{begin:"q[qwxr]?\\s*\\(",end:"\\)",relevance:5},{begin:"q[qwxr]?\\s*\\[",end:"\\]",relevance:5},{begin:"q[qwxr]?\\s*\\{",end:"\\}",relevance:5},{begin:"q[qwxr]?\\s*\\|",end:"\\|",relevance:5},{begin:"q[qwxr]?\\s*<",end:">",relevance:5},{begin:"qw\\s+q",end:"q",relevance:5},{begin:"'",end:"'",contains:[I.BACKSLASH_ESCAPE]},{begin:'"',end:'"'},{begin:"`",end:"`",contains:[I.BACKSLASH_ESCAPE]},{begin:/\{\w+\}/,relevance:0},{begin:"-?\\w+\\s*=>",relevance:0}]},{className:"number",begin:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",relevance:0},{begin:"(\\/\\/|"+I.RE_STARTERS_RE+"|\\b(split|return|print|reverse|grep)\\b)\\s*",keywords:"split return print reverse grep",relevance:0,contains:[I.HASH_COMMENT_MODE,{className:"regexp",variants:[{begin:Z("s|tr|y",l.either(...a,{capture:!0}))},{begin:Z("s|tr|y","\\(","\\)")},{begin:Z("s|tr|y","\\[","\\]")},{begin:Z("s|tr|y","\\{","\\}")}],relevance:2},{className:"regexp",variants:[{begin:/(m|qr)\/\//,relevance:0},{begin:W("(?:m|qr)?",/\//,/\//)},{begin:W("m|qr",l.either(...a,{capture:!0}),/\1/)},{begin:W("m|qr",/\(/,/\)/)},{begin:W("m|qr",/\[/,/\]/)},{begin:W("m|qr",/\{/,/\}/)}]}]},{className:"function",beginKeywords:"sub",end:"(\\s*\\(.*?\\))?[;{]",excludeEnd:!0,relevance:5,contains:[I.TITLE_MODE]},{begin:"-\\w\\b",relevance:0},{begin:"^__DATA__$",end:"^__END__$",subLanguage:"mojolicious",contains:[{begin:"^@@.*",end:"$",className:"comment"}]}];return d.contains=m,t.contains=m,{name:"Perl",aliases:["pl","pm"],keywords:e,contains:m}}function hJI(I){const l=I.regex,c=/(?![A-Za-z0-9])(?![$])/,G=l.concat(/[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/,c),e=l.concat(/(\\?[A-Z][a-z0-9_\x7f-\xff]+|\\?[A-Z]+(?=[A-Z][a-z0-9_\x7f-\xff])){1,}/,c),d={scope:"variable",match:"\\$+"+G},t={scope:"meta",variants:[{begin:/<\?php/,relevance:10},{begin:/<\?=/},{begin:/<\?/,relevance:.1},{begin:/\?>/}]},n={scope:"subst",variants:[{begin:/\$\w+/},{begin:/\{\$/,end:/\}/}]},b=I.inherit(I.APOS_STRING_MODE,{illegal:null}),a=I.inherit(I.QUOTE_STRING_MODE,{illegal:null,contains:I.QUOTE_STRING_MODE.contains.concat(n)}),Z={begin:/<<<[ \t]*(?:(\w+)|"(\w+)")\n/,end:/[ \t]*(\w+)\b/,contains:I.QUOTE_STRING_MODE.contains.concat(n),"on:begin":(M,D)=>{D.data._beginMatch=M[1]||M[2]},"on:end":(M,D)=>{D.data._beginMatch!==M[1]&&D.ignoreMatch()}},W=I.END_SAME_AS_BEGIN({begin:/<<<[ \t]*'(\w+)'\n/,end:/[ \t]*(\w+)\b/}),m=`[ -]`,s={scope:"string",variants:[a,b,Z,W]},h={scope:"number",variants:[{begin:"\\b0[bB][01]+(?:_[01]+)*\\b"},{begin:"\\b0[oO][0-7]+(?:_[0-7]+)*\\b"},{begin:"\\b0[xX][\\da-fA-F]+(?:_[\\da-fA-F]+)*\\b"},{begin:"(?:\\b\\d+(?:_\\d+)*(\\.(?:\\d+(?:_\\d+)*))?|\\B\\.\\d+)(?:[eE][+-]?\\d+)?"}],relevance:0},p=["false","null","true"],V=["__CLASS__","__DIR__","__FILE__","__FUNCTION__","__COMPILER_HALT_OFFSET__","__LINE__","__METHOD__","__NAMESPACE__","__TRAIT__","die","echo","exit","include","include_once","print","require","require_once","array","abstract","and","as","binary","bool","boolean","break","callable","case","catch","class","clone","const","continue","declare","default","do","double","else","elseif","empty","enddeclare","endfor","endforeach","endif","endswitch","endwhile","enum","eval","extends","final","finally","float","for","foreach","from","global","goto","if","implements","instanceof","insteadof","int","integer","interface","isset","iterable","list","match|0","mixed","new","never","object","or","private","protected","public","readonly","real","return","string","switch","throw","trait","try","unset","use","var","void","while","xor","yield"],o=["Error|0","AppendIterator","ArgumentCountError","ArithmeticError","ArrayIterator","ArrayObject","AssertionError","BadFunctionCallException","BadMethodCallException","CachingIterator","CallbackFilterIterator","CompileError","Countable","DirectoryIterator","DivisionByZeroError","DomainException","EmptyIterator","ErrorException","Exception","FilesystemIterator","FilterIterator","GlobIterator","InfiniteIterator","InvalidArgumentException","IteratorIterator","LengthException","LimitIterator","LogicException","MultipleIterator","NoRewindIterator","OutOfBoundsException","OutOfRangeException","OuterIterator","OverflowException","ParentIterator","ParseError","RangeException","RecursiveArrayIterator","RecursiveCachingIterator","RecursiveCallbackFilterIterator","RecursiveDirectoryIterator","RecursiveFilterIterator","RecursiveIterator","RecursiveIteratorIterator","RecursiveRegexIterator","RecursiveTreeIterator","RegexIterator","RuntimeException","SeekableIterator","SplDoublyLinkedList","SplFileInfo","SplFileObject","SplFixedArray","SplHeap","SplMaxHeap","SplMinHeap","SplObjectStorage","SplObserver","SplPriorityQueue","SplQueue","SplStack","SplSubject","SplTempFileObject","TypeError","UnderflowException","UnexpectedValueException","UnhandledMatchError","ArrayAccess","BackedEnum","Closure","Fiber","Generator","Iterator","IteratorAggregate","Serializable","Stringable","Throwable","Traversable","UnitEnum","WeakReference","WeakMap","Directory","__PHP_Incomplete_Class","parent","php_user_filter","self","static","stdClass"],X={keyword:V,literal:(M=>{const D=[];return M.forEach(O=>{D.push(O),O.toLowerCase()===O?D.push(O.toUpperCase()):D.push(O.toLowerCase())}),D})(p),built_in:o},H=M=>M.map(D=>D.replace(/\|\d+$/,"")),Y={variants:[{match:[/new/,l.concat(m,"+"),l.concat("(?!",H(o).join("\\b|"),"\\b)"),e],scope:{1:"keyword",4:"title.class"}}]},R=l.concat(G,"\\b(?!\\()"),B={variants:[{match:[l.concat(/::/,l.lookahead(/(?!class\b)/)),R],scope:{2:"variable.constant"}},{match:[/::/,/class/],scope:{2:"variable.language"}},{match:[e,l.concat(/::/,l.lookahead(/(?!class\b)/)),R],scope:{1:"title.class",3:"variable.constant"}},{match:[e,l.concat("::",l.lookahead(/(?!class\b)/))],scope:{1:"title.class"}},{match:[e,/::/,/class/],scope:{1:"title.class",3:"variable.language"}}]},C={scope:"attr",match:l.concat(G,l.lookahead(":"),l.lookahead(/(?!::)/))},k={relevance:0,begin:/\(/,end:/\)/,keywords:X,contains:[C,d,B,I.C_BLOCK_COMMENT_MODE,s,h,Y]},N={relevance:0,match:[/\b/,l.concat("(?!fn\\b|function\\b|",H(V).join("\\b|"),"|",H(o).join("\\b|"),"\\b)"),G,l.concat(m,"*"),l.lookahead(/(?=\()/)],scope:{3:"title.function.invoke"},contains:[k]};k.contains.push(N);const J=[C,B,I.C_BLOCK_COMMENT_MODE,s,h,Y],A={begin:l.concat(/#\[\s*/,e),beginScope:"meta",end:/]/,endScope:"meta",keywords:{literal:p,keyword:["new","array"]},contains:[{begin:/\[/,end:/]/,keywords:{literal:p,keyword:["new","array"]},contains:["self",...J]},...J,{scope:"meta",match:e}]};return{case_insensitive:!1,keywords:X,contains:[A,I.HASH_COMMENT_MODE,I.COMMENT("//","$"),I.COMMENT("/\\*","\\*/",{contains:[{scope:"doctag",match:"@[A-Za-z]+"}]}),{match:/__halt_compiler\(\);/,keywords:"__halt_compiler",starts:{scope:"comment",end:I.MATCH_NOTHING_RE,contains:[{match:/\?>/,scope:"meta",endsParent:!0}]}},t,{scope:"variable.language",match:/\$this\b/},d,N,B,{match:[/const/,/\s/,G],scope:{1:"keyword",3:"variable.constant"}},Y,{scope:"function",relevance:0,beginKeywords:"fn function",end:/[;{]/,excludeEnd:!0,illegal:"[$%\\[]",contains:[{beginKeywords:"use"},I.UNDERSCORE_TITLE_MODE,{begin:"=>",endsParent:!0},{scope:"params",begin:"\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0,keywords:X,contains:["self",d,B,I.C_BLOCK_COMMENT_MODE,s,h]}]},{scope:"class",variants:[{beginKeywords:"enum",illegal:/[($"]/},{beginKeywords:"class interface trait",illegal:/[:($"]/}],relevance:0,end:/\{/,excludeEnd:!0,contains:[{beginKeywords:"extends implements"},I.UNDERSCORE_TITLE_MODE]},{beginKeywords:"namespace",relevance:0,end:";",illegal:/[.']/,contains:[I.inherit(I.UNDERSCORE_TITLE_MODE,{scope:"title.class"})]},{beginKeywords:"use",relevance:0,end:";",contains:[{match:/\b(as|const|function)\b/,scope:"keyword"},I.UNDERSCORE_TITLE_MODE]},s,h]}}function pJI(I){return{name:"PHP template",subLanguage:"xml",contains:[{begin:/<\?(php|=)?/,end:/\?>/,subLanguage:"php",contains:[{begin:"/\\*",end:"\\*/",skip:!0},{begin:'b"',end:'"',skip:!0},{begin:"b'",end:"'",skip:!0},I.inherit(I.APOS_STRING_MODE,{illegal:null,className:null,contains:null,skip:!0}),I.inherit(I.QUOTE_STRING_MODE,{illegal:null,className:null,contains:null,skip:!0})]}]}}function oJI(I){return{name:"Plain text",aliases:["text","txt"],disableAutodetect:!0}}function VJI(I){const l=I.regex,c=/[\p{XID_Start}_]\p{XID_Continue}*/u,G=["and","as","assert","async","await","break","case","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","in","is","lambda","match","nonlocal|10","not","or","pass","raise","return","try","while","with","yield"],n={$pattern:/[A-Za-z]\w+|__\w+__/,keyword:G,built_in:["__import__","abs","all","any","ascii","bin","bool","breakpoint","bytearray","bytes","callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate","eval","exec","filter","float","format","frozenset","getattr","globals","hasattr","hash","help","hex","id","input","int","isinstance","issubclass","iter","len","list","locals","map","max","memoryview","min","next","object","oct","open","ord","pow","print","property","range","repr","reversed","round","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","vars","zip"],literal:["__debug__","Ellipsis","False","None","NotImplemented","True"],type:["Any","Callable","Coroutine","Dict","List","Literal","Generic","Optional","Sequence","Set","Tuple","Type","Union"]},b={className:"meta",begin:/^(>>>|\.\.\.) /},a={className:"subst",begin:/\{/,end:/\}/,keywords:n,illegal:/#/},Z={begin:/\{\{/,relevance:0},W={className:"string",contains:[I.BACKSLASH_ESCAPE],variants:[{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/,contains:[I.BACKSLASH_ESCAPE,b],relevance:10},{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/,contains:[I.BACKSLASH_ESCAPE,b],relevance:10},{begin:/([fF][rR]|[rR][fF]|[fF])'''/,end:/'''/,contains:[I.BACKSLASH_ESCAPE,b,Z,a]},{begin:/([fF][rR]|[rR][fF]|[fF])"""/,end:/"""/,contains:[I.BACKSLASH_ESCAPE,b,Z,a]},{begin:/([uU]|[rR])'/,end:/'/,relevance:10},{begin:/([uU]|[rR])"/,end:/"/,relevance:10},{begin:/([bB]|[bB][rR]|[rR][bB])'/,end:/'/},{begin:/([bB]|[bB][rR]|[rR][bB])"/,end:/"/},{begin:/([fF][rR]|[rR][fF]|[fF])'/,end:/'/,contains:[I.BACKSLASH_ESCAPE,Z,a]},{begin:/([fF][rR]|[rR][fF]|[fF])"/,end:/"/,contains:[I.BACKSLASH_ESCAPE,Z,a]},I.APOS_STRING_MODE,I.QUOTE_STRING_MODE]},m="[0-9](_?[0-9])*",s=`(\\b(${m}))?\\.(${m})|\\b(${m})\\.`,h=`\\b|${G.join("|")}`,p={className:"number",relevance:0,variants:[{begin:`(\\b(${m})|(${s}))[eE][+-]?(${m})[jJ]?(?=${h})`},{begin:`(${s})[jJ]?`},{begin:`\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=${h})`},{begin:`\\b0[bB](_?[01])+[lL]?(?=${h})`},{begin:`\\b0[oO](_?[0-7])+[lL]?(?=${h})`},{begin:`\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=${h})`},{begin:`\\b(${m})[jJ](?=${h})`}]},V={className:"comment",begin:l.lookahead(/# type:/),end:/$/,keywords:n,contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,endsWithParent:!0}]},o={className:"params",variants:[{className:"",begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:n,contains:["self",b,p,W,I.HASH_COMMENT_MODE]}]};return a.contains=[W,p,b],{name:"Python",aliases:["py","gyp","ipython"],unicodeRegex:!0,keywords:n,illegal:/(<\/|\?)|=>/,contains:[b,p,{begin:/\bself\b/},{beginKeywords:"if",relevance:0},W,V,I.HASH_COMMENT_MODE,{match:[/\bdef/,/\s+/,c],scope:{1:"keyword",3:"title.function"},contains:[o]},{variants:[{match:[/\bclass/,/\s+/,c,/\s*/,/\(\s*/,c,/\s*\)/]},{match:[/\bclass/,/\s+/,c]}],scope:{1:"keyword",3:"title.class",6:"title.class.inherited"}},{className:"meta",begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[p,o,W]}]}}function iJI(I){return{aliases:["pycon"],contains:[{className:"meta.prompt",starts:{end:/ |$/,starts:{end:"$",subLanguage:"python"}},variants:[{begin:/^>>>(?=[ ]|$)/},{begin:/^\.\.\.(?=[ ]|$)/}]}]}}function FJI(I){const l=I.regex,c=/(?:(?:[a-zA-Z]|\.[._a-zA-Z])[._a-zA-Z0-9]*)|\.(?!\d)/,G=l.either(/0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*[pP][+-]?\d+i?/,/0[xX][0-9a-fA-F]+(?:[pP][+-]?\d+)?[Li]?/,/(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?[Li]?/),e=/[=!<>:]=|\|\||&&|:::?|<-|<<-|->>|->|\|>|[-+*\/?!$&|:<=>@^~]|\*\*/,d=l.either(/[()]/,/[{}]/,/\[\[/,/[[\]]/,/\\/,/,/);return{name:"R",keywords:{$pattern:c,keyword:"function if in break next repeat else for while",literal:"NULL NA TRUE FALSE Inf NaN NA_integer_|10 NA_real_|10 NA_character_|10 NA_complex_|10",built_in:"LETTERS letters month.abb month.name pi T F abs acos acosh all any anyNA Arg as.call as.character as.complex as.double as.environment as.integer as.logical as.null.default as.numeric as.raw asin asinh atan atanh attr attributes baseenv browser c call ceiling class Conj cos cosh cospi cummax cummin cumprod cumsum digamma dim dimnames emptyenv exp expression floor forceAndCall gamma gc.time globalenv Im interactive invisible is.array is.atomic is.call is.character is.complex is.double is.environment is.expression is.finite is.function is.infinite is.integer is.language is.list is.logical is.matrix is.na is.name is.nan is.null is.numeric is.object is.pairlist is.raw is.recursive is.single is.symbol lazyLoadDBfetch length lgamma list log max min missing Mod names nargs nzchar oldClass on.exit pos.to.env proc.time prod quote range Re rep retracemem return round seq_along seq_len seq.int sign signif sin sinh sinpi sqrt standardGeneric substitute sum switch tan tanh tanpi tracemem trigamma trunc unclass untracemem UseMethod xtfrm"},contains:[I.COMMENT(/#'/,/$/,{contains:[{scope:"doctag",match:/@examples/,starts:{end:l.lookahead(l.either(/\n^#'\s*(?=@[a-zA-Z]+)/,/\n^(?!#')/)),endsParent:!0}},{scope:"doctag",begin:"@param",end:/$/,contains:[{scope:"variable",variants:[{match:c},{match:/`(?:\\.|[^`\\])+`/}],endsParent:!0}]},{scope:"doctag",match:/@[a-zA-Z]+/},{scope:"keyword",match:/\\[a-zA-Z]+/}]}),I.HASH_COMMENT_MODE,{scope:"string",contains:[I.BACKSLASH_ESCAPE],variants:[I.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\(/,end:/\)(-*)"/}),I.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\{/,end:/\}(-*)"/}),I.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\[/,end:/\](-*)"/}),I.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\(/,end:/\)(-*)'/}),I.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\{/,end:/\}(-*)'/}),I.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\[/,end:/\](-*)'/}),{begin:'"',end:'"',relevance:0},{begin:"'",end:"'",relevance:0}]},{relevance:0,variants:[{scope:{1:"operator",2:"number"},match:[e,G]},{scope:{1:"operator",2:"number"},match:[/%[^%]*%/,G]},{scope:{1:"punctuation",2:"number"},match:[d,G]},{scope:{2:"number"},match:[/[^a-zA-Z0-9._]|^/,G]}]},{scope:{3:"operator"},match:[c,/\s+/,/<-/,/\s+/]},{scope:"operator",relevance:0,variants:[{match:e},{match:/%[^%]*%/}]},{scope:"punctuation",relevance:0,match:d},{begin:"`",end:"`",contains:[{begin:/\\./}]}]}}function NJI(I){const l=I.regex,c="([a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?)",G=l.either(/\b([A-Z]+[a-z0-9]+)+/,/\b([A-Z]+[a-z0-9]+)+[A-Z]+/),e=l.concat(G,/(::\w+)*/),t={"variable.constant":["__FILE__","__LINE__","__ENCODING__"],"variable.language":["self","super"],keyword:["alias","and","begin","BEGIN","break","case","class","defined","do","else","elsif","end","END","ensure","for","if","in","module","next","not","or","redo","require","rescue","retry","return","then","undef","unless","until","when","while","yield",...["include","extend","prepend","public","private","protected","raise","throw"]],built_in:["proc","lambda","attr_accessor","attr_reader","attr_writer","define_method","private_constant","module_function"],literal:["true","false","nil"]},n={className:"doctag",begin:"@[A-Za-z]+"},b={begin:"#<",end:">"},a=[I.COMMENT("#","$",{contains:[n]}),I.COMMENT("^=begin","^=end",{contains:[n],relevance:10}),I.COMMENT("^__END__",I.MATCH_NOTHING_RE)],Z={className:"subst",begin:/#\{/,end:/\}/,keywords:t},W={className:"string",contains:[I.BACKSLASH_ESCAPE,Z],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/`/,end:/`/},{begin:/%[qQwWx]?\(/,end:/\)/},{begin:/%[qQwWx]?\[/,end:/\]/},{begin:/%[qQwWx]?\{/,end:/\}/},{begin:/%[qQwWx]?/},{begin:/%[qQwWx]?\//,end:/\//},{begin:/%[qQwWx]?%/,end:/%/},{begin:/%[qQwWx]?-/,end:/-/},{begin:/%[qQwWx]?\|/,end:/\|/},{begin:/\B\?(\\\d{1,3})/},{begin:/\B\?(\\x[A-Fa-f0-9]{1,2})/},{begin:/\B\?(\\u\{?[A-Fa-f0-9]{1,6}\}?)/},{begin:/\B\?(\\M-\\C-|\\M-\\c|\\c\\M-|\\M-|\\C-\\M-)[\x20-\x7e]/},{begin:/\B\?\\(c|C-)[\x20-\x7e]/},{begin:/\B\?\\?\S/},{begin:l.concat(/<<[-~]?'?/,l.lookahead(/(\w+)(?=\W)[^\n]*\n(?:[^\n]*\n)*?\s*\1\b/)),contains:[I.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,contains:[I.BACKSLASH_ESCAPE,Z]})]}]},m="[1-9](_?[0-9])*|0",s="[0-9](_?[0-9])*",h={className:"number",relevance:0,variants:[{begin:`\\b(${m})(\\.(${s}))?([eE][+-]?(${s})|r)?i?\\b`},{begin:"\\b0[dD][0-9](_?[0-9])*r?i?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*r?i?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*r?i?\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*r?i?\\b"},{begin:"\\b0(_?[0-7])+r?i?\\b"}]},p={variants:[{match:/\(\)/},{className:"params",begin:/\(/,end:/(?=\))/,excludeBegin:!0,endsParent:!0,keywords:t}]},R=[W,{variants:[{match:[/class\s+/,e,/\s+<\s+/,e]},{match:[/\b(class|module)\s+/,e]}],scope:{2:"title.class",4:"title.class.inherited"},keywords:t},{match:[/(include|extend)\s+/,e],scope:{2:"title.class"},keywords:t},{relevance:0,match:[e,/\.new[. (]/],scope:{1:"title.class"}},{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"},{relevance:0,match:G,scope:"title.class"},{match:[/def/,/\s+/,c],scope:{1:"keyword",3:"title.function"},contains:[p]},{begin:I.IDENT_RE+"::"},{className:"symbol",begin:I.UNDERSCORE_IDENT_RE+"(!|\\?)?:",relevance:0},{className:"symbol",begin:":(?!\\s)",contains:[W,{begin:c}],relevance:0},h,{className:"variable",begin:"(\\$\\W)|((\\$|@@?)(\\w+))(?=[^@$?])(?![A-Za-z])(?![@$?'])"},{className:"params",begin:/\|/,end:/\|/,excludeBegin:!0,excludeEnd:!0,relevance:0,keywords:t},{begin:"("+I.RE_STARTERS_RE+"|unless)\\s*",keywords:"unless",contains:[{className:"regexp",contains:[I.BACKSLASH_ESCAPE,Z],illegal:/\n/,variants:[{begin:"/",end:"/[a-z]*"},{begin:/%r\{/,end:/\}[a-z]*/},{begin:"%r\\(",end:"\\)[a-z]*"},{begin:"%r!",end:"![a-z]*"},{begin:"%r\\[",end:"\\][a-z]*"}]}].concat(b,a),relevance:0}].concat(b,a);Z.contains=R,p.contains=R;const B="[>?]>",C="[\\w#]+\\(\\w+\\):\\d+:\\d+[>*]",k="(\\w+-)?\\d+\\.\\d+\\.\\d+(p\\d+)?[^\\d][^>]+>",N=[{begin:/^\s*=>/,starts:{end:"$",contains:R}},{className:"meta.prompt",begin:"^("+B+"|"+C+"|"+k+")(?=[ ])",starts:{end:"$",keywords:t,contains:R}}];return a.unshift(b),{name:"Ruby",aliases:["rb","gemspec","podspec","thor","irb"],keywords:t,illegal:/\/\*/,contains:[I.SHEBANG({binary:"ruby"})].concat(N).concat(a).concat(R)}}function RJI(I){const l=I.regex,c={className:"title.function.invoke",relevance:0,begin:l.concat(/\b/,/(?!let|for|while|if|else|match\b)/,I.IDENT_RE,l.lookahead(/\s*\(/))},G="([ui](8|16|32|64|128|size)|f(32|64))?",e=["abstract","as","async","await","become","box","break","const","continue","crate","do","dyn","else","enum","extern","false","final","fn","for","if","impl","in","let","loop","macro","match","mod","move","mut","override","priv","pub","ref","return","self","Self","static","struct","super","trait","true","try","type","typeof","unsafe","unsized","use","virtual","where","while","yield"],d=["true","false","Some","None","Ok","Err"],t=["drop ","Copy","Send","Sized","Sync","Drop","Fn","FnMut","FnOnce","ToOwned","Clone","Debug","PartialEq","PartialOrd","Eq","Ord","AsRef","AsMut","Into","From","Default","Iterator","Extend","IntoIterator","DoubleEndedIterator","ExactSizeIterator","SliceConcatExt","ToString","assert!","assert_eq!","bitflags!","bytes!","cfg!","col!","concat!","concat_idents!","debug_assert!","debug_assert_eq!","env!","eprintln!","panic!","file!","format!","format_args!","include_bytes!","include_str!","line!","local_data_key!","module_path!","option_env!","print!","println!","select!","stringify!","try!","unimplemented!","unreachable!","vec!","write!","writeln!","macro_rules!","assert_ne!","debug_assert_ne!"],n=["i8","i16","i32","i64","i128","isize","u8","u16","u32","u64","u128","usize","f32","f64","str","char","bool","Box","Option","Result","String","Vec"];return{name:"Rust",aliases:["rs"],keywords:{$pattern:I.IDENT_RE+"!?",type:n,keyword:e,literal:d,built_in:t},illegal:""},c]}}const YJI=I=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:I.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[I.APOS_STRING_MODE,I.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:I.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}),XJI=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],HJI=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"],QJI=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"],wJI=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"],EJI=["align-content","align-items","align-self","all","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","content","content-visibility","counter-increment","counter-reset","cue","cue-after","cue-before","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-smoothing","font-stretch","font-style","font-synthesis","font-variant","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","gap","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","inline-size","isolation","justify-content","left","letter-spacing","line-break","line-height","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-wrap","overflow-x","overflow-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","pause","pause-after","pause-before","perspective","perspective-origin","pointer-events","position","quotes","resize","rest","rest-after","rest-before","right","row-gap","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","speak","speak-as","src","tab-size","table-layout","text-align","text-align-all","text-align-last","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-transform","text-underline-position","top","transform","transform-box","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","z-index"].reverse();function vJI(I){const l=YJI(I),c=wJI,G=QJI,e="@[a-z-]+",d="and or not only",n={className:"variable",begin:"(\\$"+"[a-zA-Z-][a-zA-Z0-9_-]*"+")\\b",relevance:0};return{name:"SCSS",case_insensitive:!0,illegal:"[=/|']",contains:[I.C_LINE_COMMENT_MODE,I.C_BLOCK_COMMENT_MODE,l.CSS_NUMBER_MODE,{className:"selector-id",begin:"#[A-Za-z0-9_-]+",relevance:0},{className:"selector-class",begin:"\\.[A-Za-z0-9_-]+",relevance:0},l.ATTRIBUTE_SELECTOR_MODE,{className:"selector-tag",begin:"\\b("+XJI.join("|")+")\\b",relevance:0},{className:"selector-pseudo",begin:":("+G.join("|")+")"},{className:"selector-pseudo",begin:":(:)?("+c.join("|")+")"},n,{begin:/\(/,end:/\)/,contains:[l.CSS_NUMBER_MODE]},l.CSS_VARIABLE,{className:"attribute",begin:"\\b("+EJI.join("|")+")\\b"},{begin:"\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\b"},{begin:/:/,end:/[;}{]/,relevance:0,contains:[l.BLOCK_COMMENT,n,l.HEXCOLOR,l.CSS_NUMBER_MODE,I.QUOTE_STRING_MODE,I.APOS_STRING_MODE,l.IMPORTANT,l.FUNCTION_DISPATCH]},{begin:"@(page|font-face)",keywords:{$pattern:e,keyword:"@page @font-face"}},{begin:"@",end:"[{;]",returnBegin:!0,keywords:{$pattern:/[a-z-]+/,keyword:d,attribute:HJI.join(" ")},contains:[{begin:e,className:"keyword"},{begin:/[a-z-]+(?=:)/,className:"attribute"},n,I.QUOTE_STRING_MODE,I.APOS_STRING_MODE,l.HEXCOLOR,l.CSS_NUMBER_MODE]},l.FUNCTION_DISPATCH]}}function gJI(I){return{name:"Shell Session",aliases:["console","shellsession"],contains:[{className:"meta.prompt",begin:/^\s{0,3}[/~\w\d[\]()@-]*[>%$#][ ]?/,starts:{end:/[^\\](?=\s*$)/,subLanguage:"bash"}}]}}function AJI(I){const l=I.regex,c=I.COMMENT("--","$"),G={className:"string",variants:[{begin:/'/,end:/'/,contains:[{begin:/''/}]}]},e={begin:/"/,end:/"/,contains:[{begin:/""/}]},d=["true","false","unknown"],t=["double precision","large object","with timezone","without timezone"],n=["bigint","binary","blob","boolean","char","character","clob","date","dec","decfloat","decimal","float","int","integer","interval","nchar","nclob","national","numeric","real","row","smallint","time","timestamp","varchar","varying","varbinary"],b=["add","asc","collation","desc","final","first","last","view"],a=["abs","acos","all","allocate","alter","and","any","are","array","array_agg","array_max_cardinality","as","asensitive","asin","asymmetric","at","atan","atomic","authorization","avg","begin","begin_frame","begin_partition","between","bigint","binary","blob","boolean","both","by","call","called","cardinality","cascaded","case","cast","ceil","ceiling","char","char_length","character","character_length","check","classifier","clob","close","coalesce","collate","collect","column","commit","condition","connect","constraint","contains","convert","copy","corr","corresponding","cos","cosh","count","covar_pop","covar_samp","create","cross","cube","cume_dist","current","current_catalog","current_date","current_default_transform_group","current_path","current_role","current_row","current_schema","current_time","current_timestamp","current_path","current_role","current_transform_group_for_type","current_user","cursor","cycle","date","day","deallocate","dec","decimal","decfloat","declare","default","define","delete","dense_rank","deref","describe","deterministic","disconnect","distinct","double","drop","dynamic","each","element","else","empty","end","end_frame","end_partition","end-exec","equals","escape","every","except","exec","execute","exists","exp","external","extract","false","fetch","filter","first_value","float","floor","for","foreign","frame_row","free","from","full","function","fusion","get","global","grant","group","grouping","groups","having","hold","hour","identity","in","indicator","initial","inner","inout","insensitive","insert","int","integer","intersect","intersection","interval","into","is","join","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","language","large","last_value","lateral","lead","leading","left","like","like_regex","listagg","ln","local","localtime","localtimestamp","log","log10","lower","match","match_number","match_recognize","matches","max","member","merge","method","min","minute","mod","modifies","module","month","multiset","national","natural","nchar","nclob","new","no","none","normalize","not","nth_value","ntile","null","nullif","numeric","octet_length","occurrences_regex","of","offset","old","omit","on","one","only","open","or","order","out","outer","over","overlaps","overlay","parameter","partition","pattern","per","percent","percent_rank","percentile_cont","percentile_disc","period","portion","position","position_regex","power","precedes","precision","prepare","primary","procedure","ptf","range","rank","reads","real","recursive","ref","references","referencing","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","release","result","return","returns","revoke","right","rollback","rollup","row","row_number","rows","running","savepoint","scope","scroll","search","second","seek","select","sensitive","session_user","set","show","similar","sin","sinh","skip","smallint","some","specific","specifictype","sql","sqlexception","sqlstate","sqlwarning","sqrt","start","static","stddev_pop","stddev_samp","submultiset","subset","substring","substring_regex","succeeds","sum","symmetric","system","system_time","system_user","table","tablesample","tan","tanh","then","time","timestamp","timezone_hour","timezone_minute","to","trailing","translate","translate_regex","translation","treat","trigger","trim","trim_array","true","truncate","uescape","union","unique","unknown","unnest","update","upper","user","using","value","values","value_of","var_pop","var_samp","varbinary","varchar","varying","versioning","when","whenever","where","width_bucket","window","with","within","without","year"],Z=["abs","acos","array_agg","asin","atan","avg","cast","ceil","ceiling","coalesce","corr","cos","cosh","count","covar_pop","covar_samp","cume_dist","dense_rank","deref","element","exp","extract","first_value","floor","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","last_value","lead","listagg","ln","log","log10","lower","max","min","mod","nth_value","ntile","nullif","percent_rank","percentile_cont","percentile_disc","position","position_regex","power","rank","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","row_number","sin","sinh","sqrt","stddev_pop","stddev_samp","substring","substring_regex","sum","tan","tanh","translate","translate_regex","treat","trim","trim_array","unnest","upper","value_of","var_pop","var_samp","width_bucket"],W=["current_catalog","current_date","current_default_transform_group","current_path","current_role","current_schema","current_transform_group_for_type","current_user","session_user","system_time","system_user","current_time","localtime","current_timestamp","localtimestamp"],m=["create table","insert into","primary key","foreign key","not null","alter table","add constraint","grouping sets","on overflow","character set","respect nulls","ignore nulls","nulls first","nulls last","depth first","breadth first"],s=Z,h=[...a,...b].filter(X=>!Z.includes(X)),p={className:"variable",begin:/@[a-z0-9][a-z0-9_]*/},V={className:"operator",begin:/[-+*/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?/,relevance:0},o={begin:l.concat(/\b/,l.either(...s),/\s*\(/),relevance:0,keywords:{built_in:s}};function F(X,{exceptions:H,when:Y}={}){const R=Y;return H=H||[],X.map(B=>B.match(/\|\d+$/)||H.includes(B)?B:R(B)?`${B}|0`:B)}return{name:"SQL",case_insensitive:!0,illegal:/[{}]|<\//,keywords:{$pattern:/\b[\w\.]+/,keyword:F(h,{when:X=>X.length<3}),literal:d,type:n,built_in:W},contains:[{begin:l.either(...m),relevance:0,keywords:{$pattern:/[\w\.]+/,keyword:h.concat(m),literal:d,type:n}},{className:"type",begin:l.either(...t)},o,p,G,e,I.C_NUMBER_MODE,I.C_BLOCK_COMMENT_MODE,c,V]}}function B6(I){return I?typeof I=="string"?I:I.source:null}function qo(I){return Uc("(?=",I,")")}function Uc(...I){return I.map(c=>B6(c)).join("")}function yJI(I){const l=I[I.length-1];return typeof l=="object"&&l.constructor===Object?(I.splice(I.length-1,1),l):{}}function md(...I){return"("+(yJI(I).capture?"":"?:")+I.map(G=>B6(G)).join("|")+")"}const PA=I=>Uc(/\b/,I,/\w$/.test(I)?/\b/:/\B/),JJI=["Protocol","Type"].map(PA),vz=["init","self"].map(PA),BJI=["Any","Self"],zX=["actor","any","associatedtype","async","await",/as\?/,/as!/,"as","borrowing","break","case","catch","class","consume","consuming","continue","convenience","copy","default","defer","deinit","didSet","distributed","do","dynamic","each","else","enum","extension","fallthrough",/fileprivate\(set\)/,"fileprivate","final","for","func","get","guard","if","import","indirect","infix",/init\?/,/init!/,"inout",/internal\(set\)/,"internal","in","is","isolated","nonisolated","lazy","let","macro","mutating","nonmutating",/open\(set\)/,"open","operator","optional","override","postfix","precedencegroup","prefix",/private\(set\)/,"private","protocol",/public\(set\)/,"public","repeat","required","rethrows","return","set","some","static","struct","subscript","super","switch","throws","throw",/try\?/,/try!/,"try","typealias",/unowned\(safe\)/,/unowned\(unsafe\)/,"unowned","var","weak","where","while","willSet"],gz=["false","nil","true"],kJI=["assignment","associativity","higherThan","left","lowerThan","none","right"],xJI=["#colorLiteral","#column","#dsohandle","#else","#elseif","#endif","#error","#file","#fileID","#fileLiteral","#filePath","#function","#if","#imageLiteral","#keyPath","#line","#selector","#sourceLocation","#warning"],Az=["abs","all","any","assert","assertionFailure","debugPrint","dump","fatalError","getVaList","isKnownUniquelyReferenced","max","min","numericCast","pointwiseMax","pointwiseMin","precondition","preconditionFailure","print","readLine","repeatElement","sequence","stride","swap","swift_unboxFromSwiftValueWithType","transcode","type","unsafeBitCast","unsafeDowncast","withExtendedLifetime","withUnsafeMutablePointer","withUnsafePointer","withVaList","withoutActuallyEscaping","zip"],k6=md(/[/=\-+!*%<>&|^~?]/,/[\u00A1-\u00A7]/,/[\u00A9\u00AB]/,/[\u00AC\u00AE]/,/[\u00B0\u00B1]/,/[\u00B6\u00BB\u00BF\u00D7\u00F7]/,/[\u2016-\u2017]/,/[\u2020-\u2027]/,/[\u2030-\u203E]/,/[\u2041-\u2053]/,/[\u2055-\u205E]/,/[\u2190-\u23FF]/,/[\u2500-\u2775]/,/[\u2794-\u2BFF]/,/[\u2E00-\u2E7F]/,/[\u3001-\u3003]/,/[\u3008-\u3020]/,/[\u3030]/),x6=md(k6,/[\u0300-\u036F]/,/[\u1DC0-\u1DFF]/,/[\u20D0-\u20FF]/,/[\uFE00-\uFE0F]/,/[\uFE20-\uFE2F]/),UX=Uc(k6,x6,"*"),z6=md(/[a-zA-Z_]/,/[\u00A8\u00AA\u00AD\u00AF\u00B2-\u00B5\u00B7-\u00BA]/,/[\u00BC-\u00BE\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]/,/[\u0100-\u02FF\u0370-\u167F\u1681-\u180D\u180F-\u1DBF]/,/[\u1E00-\u1FFF]/,/[\u200B-\u200D\u202A-\u202E\u203F-\u2040\u2054\u2060-\u206F]/,/[\u2070-\u20CF\u2100-\u218F\u2460-\u24FF\u2776-\u2793]/,/[\u2C00-\u2DFF\u2E80-\u2FFF]/,/[\u3004-\u3007\u3021-\u302F\u3031-\u303F\u3040-\uD7FF]/,/[\uF900-\uFD3D\uFD40-\uFDCF\uFDF0-\uFE1F\uFE30-\uFE44]/,/[\uFE47-\uFEFE\uFF00-\uFFFD]/),ui=md(z6,/\d/,/[\u0300-\u036F\u1DC0-\u1DFF\u20D0-\u20FF\uFE20-\uFE2F]/),Ab=Uc(z6,ui,"*"),CX=Uc(/[A-Z]/,ui,"*"),zJI=["attached","autoclosure",Uc(/convention\(/,md("swift","block","c"),/\)/),"discardableResult","dynamicCallable","dynamicMemberLookup","escaping","freestanding","frozen","GKInspectable","IBAction","IBDesignable","IBInspectable","IBOutlet","IBSegueAction","inlinable","main","nonobjc","NSApplicationMain","NSCopying","NSManaged",Uc(/objc\(/,Ab,/\)/),"objc","objcMembers","propertyWrapper","requires_stored_property_inits","resultBuilder","Sendable","testable","UIApplicationMain","unchecked","unknown","usableFromInline","warn_unqualified_access"],UJI=["iOS","iOSApplicationExtension","macOS","macOSApplicationExtension","macCatalyst","macCatalystApplicationExtension","watchOS","watchOSApplicationExtension","tvOS","tvOSApplicationExtension","swift"];function CJI(I){const l={match:/\s+/,relevance:0},c=I.COMMENT("/\\*","\\*/",{contains:["self"]}),G=[I.C_LINE_COMMENT_MODE,c],e={match:[/\./,md(...JJI,...vz)],className:{2:"keyword"}},d={match:Uc(/\./,md(...zX)),relevance:0},t=zX.filter(tl=>typeof tl=="string").concat(["_|0"]),n=zX.filter(tl=>typeof tl!="string").concat(BJI).map(PA),b={variants:[{className:"keyword",match:md(...n,...vz)}]},a={$pattern:md(/\b\w+/,/#\w+/),keyword:t.concat(xJI),literal:gz},Z=[e,d,b],W={match:Uc(/\./,md(...Az)),relevance:0},m={className:"built_in",match:Uc(/\b/,md(...Az),/(?=\()/)},s=[W,m],h={match:/->/,relevance:0},p={className:"operator",relevance:0,variants:[{match:UX},{match:`\\.(\\.|${x6})+`}]},V=[h,p],o="([0-9]_*)+",F="([0-9a-fA-F]_*)+",X={className:"number",relevance:0,variants:[{match:`\\b(${o})(\\.(${o}))?([eE][+-]?(${o}))?\\b`},{match:`\\b0x(${F})(\\.(${F}))?([pP][+-]?(${o}))?\\b`},{match:/\b0o([0-7]_*)+\b/},{match:/\b0b([01]_*)+\b/}]},H=(tl="")=>({className:"subst",variants:[{match:Uc(/\\/,tl,/[0\\tnr"']/)},{match:Uc(/\\/,tl,/u\{[0-9a-fA-F]{1,8}\}/)}]}),Y=(tl="")=>({className:"subst",match:Uc(/\\/,tl,/[\t ]*(?:[\r\n]|\r\n)/)}),R=(tl="")=>({className:"subst",label:"interpol",begin:Uc(/\\/,tl,/\(/),end:/\)/}),B=(tl="")=>({begin:Uc(tl,/"""/),end:Uc(/"""/,tl),contains:[H(tl),Y(tl),R(tl)]}),C=(tl="")=>({begin:Uc(tl,/"/),end:Uc(/"/,tl),contains:[H(tl),R(tl)]}),k={className:"string",variants:[B(),B("#"),B("##"),B("###"),C(),C("#"),C("##"),C("###")]},N=[I.BACKSLASH_ESCAPE,{begin:/\[/,end:/\]/,relevance:0,contains:[I.BACKSLASH_ESCAPE]}],J={begin:/\/[^\s](?=[^/\n]*\/)/,end:/\//,contains:N},A=tl=>{const bl=Uc(tl,/\//),Il=Uc(/\//,tl);return{begin:bl,end:Il,contains:[...N,{scope:"comment",begin:`#(?!.*${Il})`,end:/$/}]}},M={scope:"regexp",variants:[A("###"),A("##"),A("#"),J]},D={match:Uc(/`/,Ab,/`/)},O={className:"variable",match:/\$\d+/},$={className:"variable",match:`\\$${ui}+`},j=[D,O,$],S={match:/(@|#(un)?)available/,scope:"keyword",starts:{contains:[{begin:/\(/,end:/\)/,keywords:UJI,contains:[...V,X,k]}]}},tI={scope:"keyword",match:Uc(/@/,md(...zJI))},z={scope:"meta",match:Uc(/@/,Ab)},g=[S,tI,z],GI={match:qo(/\b[A-Z]/),relevance:0,contains:[{className:"type",match:Uc(/(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)/,ui,"+")},{className:"type",match:CX,relevance:0},{match:/[?!]+/,relevance:0},{match:/\.\.\./,relevance:0},{match:Uc(/\s+&\s+/,qo(CX)),relevance:0}]},f={begin://,keywords:a,contains:[...G,...Z,...g,h,GI]};GI.contains.push(f);const nI={match:Uc(Ab,/\s*:/),keywords:"_|0",relevance:0},VI={begin:/\(/,end:/\)/,relevance:0,keywords:a,contains:["self",nI,...G,M,...Z,...s,...V,X,k,...j,...g,GI]},q={begin://,keywords:"repeat each",contains:[...G,GI]},fI={begin:md(qo(Uc(Ab,/\s*:/)),qo(Uc(Ab,/\s+/,Ab,/\s*:/))),end:/:/,relevance:0,contains:[{className:"keyword",match:/\b_\b/},{className:"params",match:Ab}]},RI={begin:/\(/,end:/\)/,keywords:a,contains:[fI,...G,...Z,...V,X,k,...g,GI,VI],endsParent:!0,illegal:/["']/},cl={match:[/(func|macro)/,/\s+/,md(D.match,Ab,UX)],className:{1:"keyword",3:"title.function"},contains:[q,RI,l],illegal:[/\[/,/%/]},OI={match:[/\b(?:subscript|init[?!]?)/,/\s*(?=[<(])/],className:{1:"keyword"},contains:[q,RI,l],illegal:/\[|%/},PI={match:[/operator/,/\s+/,UX],className:{1:"keyword",3:"title"}},_I={begin:[/precedencegroup/,/\s+/,CX],className:{1:"keyword",3:"title"},contains:[GI],keywords:[...kJI,...gz],end:/}/};for(const tl of k.variants){const bl=tl.contains.find(Fl=>Fl.label==="interpol");bl.keywords=a;const Il=[...Z,...s,...V,X,k,...j];bl.contains=[...Il,{begin:/\(/,end:/\)/,contains:["self",...Il]}]}return{name:"Swift",keywords:a,contains:[...G,cl,OI,{beginKeywords:"struct protocol class extension enum actor",end:"\\{",excludeEnd:!0,keywords:a,contains:[I.inherit(I.TITLE_MODE,{className:"title.class",begin:/[A-Za-z$_][\u00C0-\u02B80-9A-Za-z$_]*/}),...Z]},PI,_I,{beginKeywords:"import",end:/$/,contains:[...G],relevance:0},M,...Z,...s,...V,X,k,...j,...g,GI,VI]}}const hi="[A-Za-z$_][0-9A-Za-z$_]*",U6=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],C6=["true","false","null","undefined","NaN","Infinity"],M6=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],f6=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],K6=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],L6=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],S6=[].concat(K6,M6,f6);function MJI(I){const l=I.regex,c=(S,{after:tI})=>{const z="",end:""},d=/<[A-Za-z0-9\\._:-]+\s*\/>/,t={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(S,tI)=>{const z=S[0].length+S.index,g=S.input[z];if(g==="<"||g===","){tI.ignoreMatch();return}g===">"&&(c(S,{after:z})||tI.ignoreMatch());let GI;const f=S.input.substring(z);if(GI=f.match(/^\s*=/)){tI.ignoreMatch();return}if((GI=f.match(/^\s+extends\s+/))&&GI.index===0){tI.ignoreMatch();return}}},n={$pattern:hi,keyword:U6,literal:C6,built_in:S6,"variable.language":L6},b="[0-9](_?[0-9])*",a=`\\.(${b})`,Z="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",W={className:"number",variants:[{begin:`(\\b(${Z})((${a})|\\.)?|(${a}))[eE][+-]?(${b})\\b`},{begin:`\\b(${Z})\\b((${a})\\b|\\.)?|(${a})\\b`},{begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{begin:"\\b0[0-7]+n?\\b"}],relevance:0},m={className:"subst",begin:"\\$\\{",end:"\\}",keywords:n,contains:[]},s={begin:"html`",end:"",starts:{end:"`",returnEnd:!1,contains:[I.BACKSLASH_ESCAPE,m],subLanguage:"xml"}},h={begin:"css`",end:"",starts:{end:"`",returnEnd:!1,contains:[I.BACKSLASH_ESCAPE,m],subLanguage:"css"}},p={begin:"gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[I.BACKSLASH_ESCAPE,m],subLanguage:"graphql"}},V={className:"string",begin:"`",end:"`",contains:[I.BACKSLASH_ESCAPE,m]},F={className:"comment",variants:[I.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{begin:"(?=@[A-Za-z]+)",relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"},{className:"type",begin:"\\{",end:"\\}",excludeEnd:!0,excludeBegin:!0,relevance:0},{className:"variable",begin:G+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),I.C_BLOCK_COMMENT_MODE,I.C_LINE_COMMENT_MODE]},X=[I.APOS_STRING_MODE,I.QUOTE_STRING_MODE,s,h,p,V,{match:/\$\d+/},W];m.contains=X.concat({begin:/\{/,end:/\}/,keywords:n,contains:["self"].concat(X)});const H=[].concat(F,m.contains),Y=H.concat([{begin:/\(/,end:/\)/,keywords:n,contains:["self"].concat(H)}]),R={className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:n,contains:Y},B={variants:[{match:[/class/,/\s+/,G,/\s+/,/extends/,/\s+/,l.concat(G,"(",l.concat(/\./,G),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,G],scope:{1:"keyword",3:"title.class"}}]},C={relevance:0,match:l.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),className:"title.class",keywords:{_:[...M6,...f6]}},k={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},N={variants:[{match:[/function/,/\s+/,G,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[R],illegal:/%/},J={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function A(S){return l.concat("(?!",S.join("|"),")")}const M={match:l.concat(/\b/,A([...K6,"super","import"]),G,l.lookahead(/\(/)),className:"title.function",relevance:0},D={begin:l.concat(/\./,l.lookahead(l.concat(G,/(?![0-9A-Za-z$_(])/))),end:G,excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},O={match:[/get|set/,/\s+/,G,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},R]},$="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+I.UNDERSCORE_IDENT_RE+")\\s*=>",j={match:[/const|var|let/,/\s+/,G,/\s*/,/=\s*/,/(async\s*)?/,l.lookahead($)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[R]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:n,exports:{PARAMS_CONTAINS:Y,CLASS_REFERENCE:C},illegal:/#(?![$_A-z])/,contains:[I.SHEBANG({label:"shebang",binary:"node",relevance:5}),k,I.APOS_STRING_MODE,I.QUOTE_STRING_MODE,s,h,p,V,F,{match:/\$\d+/},W,C,{className:"attr",begin:G+l.lookahead(":"),relevance:0},j,{begin:"("+I.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[F,I.REGEXP_MODE,{className:"function",begin:$,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:I.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:n,contains:Y}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:e.begin,end:e.end},{match:d},{begin:t.begin,"on:begin":t.isTrulyOpeningTag,end:t.end}],subLanguage:"xml",contains:[{begin:t.begin,end:t.end,skip:!0,contains:["self"]}]}]},N,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+I.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[R,I.inherit(I.TITLE_MODE,{begin:G,className:"title.function"})]},{match:/\.\.\./,relevance:0},D,{match:"\\$"+G,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[R]},M,J,B,O,{match:/\$[(.]/}]}}function fJI(I){const l=MJI(I),c=hi,G=["any","void","number","boolean","string","object","never","symbol","bigint","unknown"],e={beginKeywords:"namespace",end:/\{/,excludeEnd:!0,contains:[l.exports.CLASS_REFERENCE]},d={beginKeywords:"interface",end:/\{/,excludeEnd:!0,keywords:{keyword:"interface extends",built_in:G},contains:[l.exports.CLASS_REFERENCE]},t={className:"meta",relevance:10,begin:/^\s*['"]use strict['"]/},n=["type","namespace","interface","public","private","protected","implements","declare","abstract","readonly","enum","override"],b={$pattern:hi,keyword:U6.concat(n),literal:C6,built_in:S6.concat(G),"variable.language":L6},a={className:"meta",begin:"@"+c},Z=(m,s,h)=>{const p=m.contains.findIndex(V=>V.label===s);if(p===-1)throw new Error("can not find mode to replace");m.contains.splice(p,1,h)};Object.assign(l.keywords,b),l.exports.PARAMS_CONTAINS.push(a),l.contains=l.contains.concat([a,e,d]),Z(l,"shebang",I.SHEBANG()),Z(l,"use_strict",t);const W=l.contains.find(m=>m.label==="func.def");return W.relevance=0,Object.assign(l,{name:"TypeScript",aliases:["ts","tsx","mts","cts"]}),l}function KJI(I){const l=I.regex,c={className:"string",begin:/"(""|[^/n])"C\b/},G={className:"string",begin:/"/,end:/"/,illegal:/\n/,contains:[{begin:/""/}]},e=/\d{1,2}\/\d{1,2}\/\d{4}/,d=/\d{4}-\d{1,2}-\d{1,2}/,t=/(\d|1[012])(:\d+){0,2} *(AM|PM)/,n=/\d{1,2}(:\d{1,2}){1,2}/,b={className:"literal",variants:[{begin:l.concat(/# */,l.either(d,e),/ *#/)},{begin:l.concat(/# */,n,/ *#/)},{begin:l.concat(/# */,t,/ *#/)},{begin:l.concat(/# */,l.either(d,e),/ +/,l.either(t,n),/ *#/)}]},a={className:"number",relevance:0,variants:[{begin:/\b\d[\d_]*((\.[\d_]+(E[+-]?[\d_]+)?)|(E[+-]?[\d_]+))[RFD@!#]?/},{begin:/\b\d[\d_]*((U?[SIL])|[%&])?/},{begin:/&H[\dA-F_]+((U?[SIL])|[%&])?/},{begin:/&O[0-7_]+((U?[SIL])|[%&])?/},{begin:/&B[01_]+((U?[SIL])|[%&])?/}]},Z={className:"label",begin:/^\w+:/},W=I.COMMENT(/'''/,/$/,{contains:[{className:"doctag",begin:/<\/?/,end:/>/}]}),m=I.COMMENT(null,/$/,{variants:[{begin:/'/},{begin:/([\t ]|^)REM(?=\s)/}]});return{name:"Visual Basic .NET",aliases:["vb"],case_insensitive:!0,classNameAliases:{label:"symbol"},keywords:{keyword:"addhandler alias aggregate ansi as async assembly auto binary by byref byval call case catch class compare const continue custom declare default delegate dim distinct do each equals else elseif end enum erase error event exit explicit finally for friend from function get global goto group handles if implements imports in inherits interface into iterator join key let lib loop me mid module mustinherit mustoverride mybase myclass namespace narrowing new next notinheritable notoverridable of off on operator option optional order overloads overridable overrides paramarray partial preserve private property protected public raiseevent readonly redim removehandler resume return select set shadows shared skip static step stop structure strict sub synclock take text then throw to try unicode until using when where while widening with withevents writeonly yield",built_in:"addressof and andalso await directcast gettype getxmlnamespace is isfalse isnot istrue like mod nameof new not or orelse trycast typeof xor cbool cbyte cchar cdate cdbl cdec cint clng cobj csbyte cshort csng cstr cuint culng cushort",type:"boolean byte char date decimal double integer long object sbyte short single string uinteger ulong ushort",literal:"true false nothing"},illegal:"//|\\{|\\}|endif|gosub|variant|wend|^\\$ ",contains:[c,G,b,a,Z,W,m,{className:"meta",begin:/[\t ]*#(const|disable|else|elseif|enable|end|externalsource|if|region)\b/,end:/$/,keywords:{keyword:"const disable else elseif enable end externalsource if region then"},contains:[m]}]}}function LJI(I){I.regex;const l=I.COMMENT(/\(;/,/;\)/);l.contains.push("self");const c=I.COMMENT(/;;/,/$/),G=["anyfunc","block","br","br_if","br_table","call","call_indirect","data","drop","elem","else","end","export","func","global.get","global.set","local.get","local.set","local.tee","get_global","get_local","global","if","import","local","loop","memory","memory.grow","memory.size","module","mut","nop","offset","param","result","return","select","set_global","set_local","start","table","tee_local","then","type","unreachable"],e={begin:[/(?:func|call|call_indirect)/,/\s+/,/\$[^\s)]+/],className:{1:"keyword",3:"title.function"}},d={className:"variable",begin:/\$[\w_]+/},t={match:/(\((?!;)|\))+/,className:"punctuation",relevance:0},n={className:"number",relevance:0,match:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/},b={match:/(i32|i64|f32|f64)(?!\.)/,className:"type"},a={className:"keyword",match:/\b(f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|nearest|neg?|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|store(?:8|16|32)?|sqrt|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))\b/};return{name:"WebAssembly",keywords:{$pattern:/[\w.]+/,keyword:G},contains:[c,l,{match:[/(?:offset|align)/,/\s*/,/=/],className:{1:"keyword",3:"operator"}},d,t,e,I.QUOTE_STRING_MODE,b,a,n]}}function SJI(I){const l=I.regex,c=l.concat(/[\p{L}_]/u,l.optional(/[\p{L}0-9_.-]*:/u),/[\p{L}0-9_.-]*/u),G=/[\p{L}0-9._:-]+/u,e={className:"symbol",begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},d={begin:/\s/,contains:[{className:"keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}]},t=I.inherit(d,{begin:/\(/,end:/\)/}),n=I.inherit(I.APOS_STRING_MODE,{className:"string"}),b=I.inherit(I.QUOTE_STRING_MODE,{className:"string"}),a={endsWithParent:!0,illegal:/`]+/}]}]}]};return{name:"HTML, XML",aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"],case_insensitive:!0,unicodeRegex:!0,contains:[{className:"meta",begin://,relevance:10,contains:[d,b,n,t,{begin:/\[/,end:/\]/,contains:[{className:"meta",begin://,contains:[d,t,b,n]}]}]},I.COMMENT(//,{relevance:10}),{begin://,relevance:10},e,{className:"meta",end:/\?>/,variants:[{begin:/<\?xml/,relevance:10,contains:[b]},{begin:/<\?[a-z][a-z0-9]+/}]},{className:"tag",begin:/)/,end:/>/,keywords:{name:"style"},contains:[a],starts:{end:/<\/style>/,returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag",begin:/)/,end:/>/,keywords:{name:"script"},contains:[a],starts:{end:/<\/script>/,returnEnd:!0,subLanguage:["javascript","handlebars","xml"]}},{className:"tag",begin:/<>|<\/>/},{className:"tag",begin:l.concat(//,/>/,/\s/)))),end:/\/?>/,contains:[{className:"name",begin:c,relevance:0,starts:a}]},{className:"tag",begin:l.concat(/<\//,l.lookahead(l.concat(c,/>/))),contains:[{className:"name",begin:c,relevance:0},{begin:/>/,relevance:0,endsParent:!0}]}]}}function TJI(I){const l="true false yes no null",c="[\\w#;/?:@&=+$,.~*'()[\\]]+",G={className:"attr",variants:[{begin:"\\w[\\w :\\/.-]*:(?=[ ]|$)"},{begin:'"\\w[\\w :\\/.-]*":(?=[ ]|$)'},{begin:"'\\w[\\w :\\/.-]*':(?=[ ]|$)"}]},e={className:"template-variable",variants:[{begin:/\{\{/,end:/\}\}/},{begin:/%\{/,end:/\}/}]},d={className:"string",relevance:0,variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/\S+/}],contains:[I.BACKSLASH_ESCAPE,e]},t=I.inherit(d,{variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/[^\s,{}[\]]+/}]}),n="[0-9]{4}(-[0-9][0-9]){0,2}",b="([Tt \\t][0-9][0-9]?(:[0-9][0-9]){2})?",a="(\\.[0-9]*)?",Z="([ \\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?",W={className:"number",begin:"\\b"+n+b+a+Z+"\\b"},m={end:",",endsWithParent:!0,excludeEnd:!0,keywords:l,relevance:0},s={begin:/\{/,end:/\}/,contains:[m],illegal:"\\n",relevance:0},h={begin:"\\[",end:"\\]",contains:[m],illegal:"\\n",relevance:0},p=[G,{className:"meta",begin:"^---\\s*$",relevance:10},{className:"string",begin:"[\\|>]([1-9]?[+-])?[ ]*\\n( +)[^ ][^\\n]*\\n(\\2[^\\n]+\\n?)*"},{begin:"<%[%=-]?",end:"[%-]?%>",subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:"!\\w+!"+c},{className:"type",begin:"!<"+c+">"},{className:"type",begin:"!"+c},{className:"type",begin:"!!"+c},{className:"meta",begin:"&"+I.UNDERSCORE_IDENT_RE+"$"},{className:"meta",begin:"\\*"+I.UNDERSCORE_IDENT_RE+"$"},{className:"bullet",begin:"-(?=[ ]|$)",relevance:0},I.HASH_COMMENT_MODE,{beginKeywords:l,keywords:{literal:l}},W,{className:"number",begin:I.C_NUMBER_RE+"\\b",relevance:0},s,h,d],V=[...p];return V.pop(),V.push(t),m.contains=V,{name:"YAML",case_insensitive:!0,aliases:["yml"],contains:p}}const jJI={arduino:J3I,bash:B3I,c:k3I,cpp:x3I,csharp:z3I,css:S3I,diff:T3I,go:j3I,graphql:D3I,ini:O3I,java:P3I,javascript:lJI,json:cJI,kotlin:eJI,less:ZJI,lua:WJI,makefile:rJI,markdown:mJI,objectivec:sJI,perl:uJI,php:hJI,"php-template":pJI,plaintext:oJI,python:VJI,"python-repl":iJI,r:FJI,ruby:NJI,rust:RJI,scss:vJI,shell:gJI,sql:AJI,swift:CJI,typescript:fJI,vbnet:KJI,wasm:LJI,xml:SJI,yaml:TJI};function T6(I){return I instanceof Map?I.clear=I.delete=I.set=function(){throw new Error("map is read-only")}:I instanceof Set&&(I.add=I.clear=I.delete=function(){throw new Error("set is read-only")}),Object.freeze(I),Object.getOwnPropertyNames(I).forEach(l=>{const c=I[l],G=typeof c;(G==="object"||G==="function")&&!Object.isFrozen(c)&&T6(c)}),I}class yz{constructor(l){l.data===void 0&&(l.data={}),this.data=l.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}}function j6(I){return I.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}function Ca(I,...l){const c=Object.create(null);for(const G in I)c[G]=I[G];return l.forEach(function(G){for(const e in G)c[e]=G[e]}),c}const DJI="",Jz=I=>!!I.scope,OJI=(I,{prefix:l})=>{if(I.startsWith("language:"))return I.replace("language:","language-");if(I.includes(".")){const c=I.split(".");return[`${l}${c.shift()}`,...c.map((G,e)=>`${G}${"_".repeat(e+1)}`)].join(" ")}return`${l}${I}`};class PJI{constructor(l,c){this.buffer="",this.classPrefix=c.classPrefix,l.walk(this)}addText(l){this.buffer+=j6(l)}openNode(l){if(!Jz(l))return;const c=OJI(l.scope,{prefix:this.classPrefix});this.span(c)}closeNode(l){Jz(l)&&(this.buffer+=DJI)}value(){return this.buffer}span(l){this.buffer+=``}}const Bz=(I={})=>{const l={children:[]};return Object.assign(l,I),l};class _A{constructor(){this.rootNode=Bz(),this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(l){this.top.children.push(l)}openNode(l){const c=Bz({scope:l});this.add(c),this.stack.push(c)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(l){return this.constructor._walk(l,this.rootNode)}static _walk(l,c){return typeof c=="string"?l.addText(c):c.children&&(l.openNode(c),c.children.forEach(G=>this._walk(l,G)),l.closeNode(c)),l}static _collapse(l){typeof l!="string"&&l.children&&(l.children.every(c=>typeof c=="string")?l.children=[l.children.join("")]:l.children.forEach(c=>{_A._collapse(c)}))}}class _JI extends _A{constructor(l){super(),this.options=l}addText(l){l!==""&&this.add(l)}startScope(l){this.openNode(l)}endScope(){this.closeNode()}__addSublanguage(l,c){const G=l.root;c&&(G.scope=`language:${c}`),this.add(G)}toHTML(){return new PJI(this,this.options).value()}finalize(){return this.closeAllNodes(),!0}}function th(I){return I?typeof I=="string"?I:I.source:null}function D6(I){return dr("(?=",I,")")}function qJI(I){return dr("(?:",I,")*")}function $JI(I){return dr("(?:",I,")?")}function dr(...I){return I.map(c=>th(c)).join("")}function I5I(I){const l=I[I.length-1];return typeof l=="object"&&l.constructor===Object?(I.splice(I.length-1,1),l):{}}function qA(...I){return"("+(I5I(I).capture?"":"?:")+I.map(G=>th(G)).join("|")+")"}function O6(I){return new RegExp(I.toString()+"|").exec("").length-1}function l5I(I,l){const c=I&&I.exec(l);return c&&c.index===0}const c5I=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function $A(I,{joinWith:l}){let c=0;return I.map(G=>{c+=1;const e=c;let d=th(G),t="";for(;d.length>0;){const n=c5I.exec(d);if(!n){t+=d;break}t+=d.substring(0,n.index),d=d.substring(n.index+n[0].length),n[0][0]==="\\"&&n[1]?t+="\\"+String(Number(n[1])+e):(t+=n[0],n[0]==="("&&c++)}return t}).map(G=>`(${G})`).join(l)}const G5I=/\b\B/,P6="[a-zA-Z]\\w*",Iy="[a-zA-Z_]\\w*",_6="\\b\\d+(\\.\\d+)?",q6="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",$6="\\b(0b[01]+)",e5I="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",d5I=(I={})=>{const l=/^#![ ]*\//;return I.binary&&(I.begin=dr(l,/.*\b/,I.binary,/\b.*/)),Ca({scope:"meta",begin:l,end:/$/,relevance:0,"on:begin":(c,G)=>{c.index!==0&&G.ignoreMatch()}},I)},nh={begin:"\\\\[\\s\\S]",relevance:0},t5I={scope:"string",begin:"'",end:"'",illegal:"\\n",contains:[nh]},n5I={scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[nh]},b5I={begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},vN=function(I,l,c={}){const G=Ca({scope:"comment",begin:I,end:l,contains:[]},c);G.contains.push({scope:"doctag",begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0});const e=qA("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/);return G.contains.push({begin:dr(/[ ]+/,"(",e,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),G},a5I=vN("//","$"),Z5I=vN("/\\*","\\*/"),W5I=vN("#","$"),r5I={scope:"number",begin:_6,relevance:0},m5I={scope:"number",begin:q6,relevance:0},s5I={scope:"number",begin:$6,relevance:0},u5I={scope:"regexp",begin:/\/(?=[^/\n]*\/)/,end:/\/[gimuy]*/,contains:[nh,{begin:/\[/,end:/\]/,relevance:0,contains:[nh]}]},h5I={scope:"title",begin:P6,relevance:0},p5I={scope:"title",begin:Iy,relevance:0},o5I={begin:"\\.\\s*"+Iy,relevance:0},V5I=function(I){return Object.assign(I,{"on:begin":(l,c)=>{c.data._beginMatch=l[1]},"on:end":(l,c)=>{c.data._beginMatch!==l[1]&&c.ignoreMatch()}})};var $o=Object.freeze({__proto__:null,APOS_STRING_MODE:t5I,BACKSLASH_ESCAPE:nh,BINARY_NUMBER_MODE:s5I,BINARY_NUMBER_RE:$6,COMMENT:vN,C_BLOCK_COMMENT_MODE:Z5I,C_LINE_COMMENT_MODE:a5I,C_NUMBER_MODE:m5I,C_NUMBER_RE:q6,END_SAME_AS_BEGIN:V5I,HASH_COMMENT_MODE:W5I,IDENT_RE:P6,MATCH_NOTHING_RE:G5I,METHOD_GUARD:o5I,NUMBER_MODE:r5I,NUMBER_RE:_6,PHRASAL_WORDS_MODE:b5I,QUOTE_STRING_MODE:n5I,REGEXP_MODE:u5I,RE_STARTERS_RE:e5I,SHEBANG:d5I,TITLE_MODE:h5I,UNDERSCORE_IDENT_RE:Iy,UNDERSCORE_TITLE_MODE:p5I});function i5I(I,l){I.input[I.index-1]==="."&&l.ignoreMatch()}function F5I(I,l){I.className!==void 0&&(I.scope=I.className,delete I.className)}function N5I(I,l){l&&I.beginKeywords&&(I.begin="\\b("+I.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",I.__beforeBegin=i5I,I.keywords=I.keywords||I.beginKeywords,delete I.beginKeywords,I.relevance===void 0&&(I.relevance=0))}function R5I(I,l){Array.isArray(I.illegal)&&(I.illegal=qA(...I.illegal))}function Y5I(I,l){if(I.match){if(I.begin||I.end)throw new Error("begin & end are not supported with match");I.begin=I.match,delete I.match}}function X5I(I,l){I.relevance===void 0&&(I.relevance=1)}const H5I=(I,l)=>{if(!I.beforeMatch)return;if(I.starts)throw new Error("beforeMatch cannot be used with starts");const c=Object.assign({},I);Object.keys(I).forEach(G=>{delete I[G]}),I.keywords=c.keywords,I.begin=dr(c.beforeMatch,D6(c.begin)),I.starts={relevance:0,contains:[Object.assign(c,{endsParent:!0})]},I.relevance=0,delete c.beforeMatch},Q5I=["of","and","for","in","not","or","if","then","parent","list","value"],w5I="keyword";function I7(I,l,c=w5I){const G=Object.create(null);return typeof I=="string"?e(c,I.split(" ")):Array.isArray(I)?e(c,I):Object.keys(I).forEach(function(d){Object.assign(G,I7(I[d],l,d))}),G;function e(d,t){l&&(t=t.map(n=>n.toLowerCase())),t.forEach(function(n){const b=n.split("|");G[b[0]]=[d,E5I(b[0],b[1])]})}}function E5I(I,l){return l?Number(l):v5I(I)?0:1}function v5I(I){return Q5I.includes(I.toLowerCase())}const kz={},wW=I=>{console.error(I)},xz=(I,...l)=>{console.log(`WARN: ${I}`,...l)},Ur=(I,l)=>{kz[`${I}/${l}`]||(console.log(`Deprecated as of ${I}. ${l}`),kz[`${I}/${l}`]=!0)},pi=new Error;function l7(I,l,{key:c}){let G=0;const e=I[c],d={},t={};for(let n=1;n<=l.length;n++)t[n+G]=e[n],d[n+G]=!0,G+=O6(l[n-1]);I[c]=t,I[c]._emit=d,I[c]._multi=!0}function g5I(I){if(Array.isArray(I.begin)){if(I.skip||I.excludeBegin||I.returnBegin)throw wW("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),pi;if(typeof I.beginScope!="object"||I.beginScope===null)throw wW("beginScope must be object"),pi;l7(I,I.begin,{key:"beginScope"}),I.begin=$A(I.begin,{joinWith:""})}}function A5I(I){if(Array.isArray(I.end)){if(I.skip||I.excludeEnd||I.returnEnd)throw wW("skip, excludeEnd, returnEnd not compatible with endScope: {}"),pi;if(typeof I.endScope!="object"||I.endScope===null)throw wW("endScope must be object"),pi;l7(I,I.end,{key:"endScope"}),I.end=$A(I.end,{joinWith:""})}}function y5I(I){I.scope&&typeof I.scope=="object"&&I.scope!==null&&(I.beginScope=I.scope,delete I.scope)}function J5I(I){y5I(I),typeof I.beginScope=="string"&&(I.beginScope={_wrap:I.beginScope}),typeof I.endScope=="string"&&(I.endScope={_wrap:I.endScope}),g5I(I),A5I(I)}function B5I(I){function l(t,n){return new RegExp(th(t),"m"+(I.case_insensitive?"i":"")+(I.unicodeRegex?"u":"")+(n?"g":""))}class c{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(n,b){b.position=this.position++,this.matchIndexes[this.matchAt]=b,this.regexes.push([b,n]),this.matchAt+=O6(n)+1}compile(){this.regexes.length===0&&(this.exec=()=>null);const n=this.regexes.map(b=>b[1]);this.matcherRe=l($A(n,{joinWith:"|"}),!0),this.lastIndex=0}exec(n){this.matcherRe.lastIndex=this.lastIndex;const b=this.matcherRe.exec(n);if(!b)return null;const a=b.findIndex((W,m)=>m>0&&W!==void 0),Z=this.matchIndexes[a];return b.splice(0,a),Object.assign(b,Z)}}class G{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(n){if(this.multiRegexes[n])return this.multiRegexes[n];const b=new c;return this.rules.slice(n).forEach(([a,Z])=>b.addRule(a,Z)),b.compile(),this.multiRegexes[n]=b,b}resumingScanAtSamePosition(){return this.regexIndex!==0}considerAll(){this.regexIndex=0}addRule(n,b){this.rules.push([n,b]),b.type==="begin"&&this.count++}exec(n){const b=this.getMatcher(this.regexIndex);b.lastIndex=this.lastIndex;let a=b.exec(n);if(this.resumingScanAtSamePosition()&&!(a&&a.index===this.lastIndex)){const Z=this.getMatcher(0);Z.lastIndex=this.lastIndex+1,a=Z.exec(n)}return a&&(this.regexIndex+=a.position+1,this.regexIndex===this.count&&this.considerAll()),a}}function e(t){const n=new G;return t.contains.forEach(b=>n.addRule(b.begin,{rule:b,type:"begin"})),t.terminatorEnd&&n.addRule(t.terminatorEnd,{type:"end"}),t.illegal&&n.addRule(t.illegal,{type:"illegal"}),n}function d(t,n){const b=t;if(t.isCompiled)return b;[F5I,Y5I,J5I,H5I].forEach(Z=>Z(t,n)),I.compilerExtensions.forEach(Z=>Z(t,n)),t.__beforeBegin=null,[N5I,R5I,X5I].forEach(Z=>Z(t,n)),t.isCompiled=!0;let a=null;return typeof t.keywords=="object"&&t.keywords.$pattern&&(t.keywords=Object.assign({},t.keywords),a=t.keywords.$pattern,delete t.keywords.$pattern),a=a||/\w+/,t.keywords&&(t.keywords=I7(t.keywords,I.case_insensitive)),b.keywordPatternRe=l(a,!0),n&&(t.begin||(t.begin=/\B|\b/),b.beginRe=l(b.begin),!t.end&&!t.endsWithParent&&(t.end=/\B|\b/),t.end&&(b.endRe=l(b.end)),b.terminatorEnd=th(b.end)||"",t.endsWithParent&&n.terminatorEnd&&(b.terminatorEnd+=(t.end?"|":"")+n.terminatorEnd)),t.illegal&&(b.illegalRe=l(t.illegal)),t.contains||(t.contains=[]),t.contains=[].concat(...t.contains.map(function(Z){return k5I(Z==="self"?t:Z)})),t.contains.forEach(function(Z){d(Z,b)}),t.starts&&d(t.starts,n),b.matcher=e(b),b}if(I.compilerExtensions||(I.compilerExtensions=[]),I.contains&&I.contains.includes("self"))throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return I.classNameAliases=Ca(I.classNameAliases||{}),d(I)}function c7(I){return I?I.endsWithParent||c7(I.starts):!1}function k5I(I){return I.variants&&!I.cachedVariants&&(I.cachedVariants=I.variants.map(function(l){return Ca(I,{variants:null},l)})),I.cachedVariants?I.cachedVariants:c7(I)?Ca(I,{starts:I.starts?Ca(I.starts):null}):Object.isFrozen(I)?Ca(I):I}var x5I="11.9.0";class z5I extends Error{constructor(l,c){super(l),this.name="HTMLInjectionError",this.html=c}}const MX=j6,zz=Ca,Uz=Symbol("nomatch"),U5I=7,G7=function(I){const l=Object.create(null),c=Object.create(null),G=[];let e=!0;const d="Could not find the language '{}', did you forget to load/include a language module?",t={disableAutodetect:!0,name:"Plain text",contains:[]};let n={ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",cssSelector:"pre code",languages:null,__emitter:_JI};function b(j){return n.noHighlightRe.test(j)}function a(j){let S=j.className+" ";S+=j.parentNode?j.parentNode.className:"";const tI=n.languageDetectRe.exec(S);if(tI){const z=k(tI[1]);return z||(xz(d.replace("{}",tI[1])),xz("Falling back to no-highlight mode for this block.",j)),z?tI[1]:"no-highlight"}return S.split(/\s+/).find(z=>b(z)||k(z))}function Z(j,S,tI){let z="",g="";typeof S=="object"?(z=j,tI=S.ignoreIllegals,g=S.language):(Ur("10.7.0","highlight(lang, code, ...args) has been deprecated."),Ur("10.7.0",`Please use highlight(code, options) instead. -https://github.com/highlightjs/highlight.js/issues/2277`),g=j,z=S),tI===void 0&&(tI=!0);const GI={code:z,language:g};O("before:highlight",GI);const f=GI.result?GI.result:W(GI.language,GI.code,tI);return f.code=GI.code,O("after:highlight",f),f}function W(j,S,tI,z){const g=Object.create(null);function GI(oI,QI){return oI.keywords[QI]}function f(){if(!eI.keywords){wI.addText(YI);return}let oI=0;eI.keywordPatternRe.lastIndex=0;let QI=eI.keywordPatternRe.exec(YI),dI="";for(;QI;){dI+=YI.substring(oI,QI.index);const xI=Fl.case_insensitive?QI[0].toLowerCase():QI[0],Wl=GI(eI,xI);if(Wl){const[nl,Hl]=Wl;if(wI.addText(dI),dI="",g[xI]=(g[xI]||0)+1,g[xI]<=U5I&&(HI+=Hl),nl.startsWith("_"))dI+=QI[0];else{const _=Fl.classNameAliases[nl]||nl;q(QI[0],_)}}else dI+=QI[0];oI=eI.keywordPatternRe.lastIndex,QI=eI.keywordPatternRe.exec(YI)}dI+=YI.substring(oI),wI.addText(dI)}function nI(){if(YI==="")return;let oI=null;if(typeof eI.subLanguage=="string"){if(!l[eI.subLanguage]){wI.addText(YI);return}oI=W(eI.subLanguage,YI,!0,uI[eI.subLanguage]),uI[eI.subLanguage]=oI._top}else oI=s(YI,eI.subLanguage.length?eI.subLanguage:null);eI.relevance>0&&(HI+=oI.relevance),wI.__addSublanguage(oI._emitter,oI.language)}function VI(){eI.subLanguage!=null?nI():f(),YI=""}function q(oI,QI){oI!==""&&(wI.startScope(QI),wI.addText(oI),wI.endScope())}function fI(oI,QI){let dI=1;const xI=QI.length-1;for(;dI<=xI;){if(!oI._emit[dI]){dI++;continue}const Wl=Fl.classNameAliases[oI[dI]]||oI[dI],nl=QI[dI];Wl?q(nl,Wl):(YI=nl,f(),YI=""),dI++}}function RI(oI,QI){return oI.scope&&typeof oI.scope=="string"&&wI.openNode(Fl.classNameAliases[oI.scope]||oI.scope),oI.beginScope&&(oI.beginScope._wrap?(q(YI,Fl.classNameAliases[oI.beginScope._wrap]||oI.beginScope._wrap),YI=""):oI.beginScope._multi&&(fI(oI.beginScope,QI),YI="")),eI=Object.create(oI,{parent:{value:eI}}),eI}function cl(oI,QI,dI){let xI=l5I(oI.endRe,dI);if(xI){if(oI["on:end"]){const Wl=new yz(oI);oI["on:end"](QI,Wl),Wl.isMatchIgnored&&(xI=!1)}if(xI){for(;oI.endsParent&&oI.parent;)oI=oI.parent;return oI}}if(oI.endsWithParent)return cl(oI.parent,QI,dI)}function OI(oI){return eI.matcher.regexIndex===0?(YI+=oI[0],1):(gI=!0,0)}function PI(oI){const QI=oI[0],dI=oI.rule,xI=new yz(dI),Wl=[dI.__beforeBegin,dI["on:begin"]];for(const nl of Wl)if(nl&&(nl(oI,xI),xI.isMatchIgnored))return OI(QI);return dI.skip?YI+=QI:(dI.excludeBegin&&(YI+=QI),VI(),!dI.returnBegin&&!dI.excludeBegin&&(YI=QI)),RI(dI,oI),dI.returnBegin?0:QI.length}function _I(oI){const QI=oI[0],dI=S.substring(oI.index),xI=cl(eI,oI,dI);if(!xI)return Uz;const Wl=eI;eI.endScope&&eI.endScope._wrap?(VI(),q(QI,eI.endScope._wrap)):eI.endScope&&eI.endScope._multi?(VI(),fI(eI.endScope,oI)):Wl.skip?YI+=QI:(Wl.returnEnd||Wl.excludeEnd||(YI+=QI),VI(),Wl.excludeEnd&&(YI=QI));do eI.scope&&wI.closeNode(),!eI.skip&&!eI.subLanguage&&(HI+=eI.relevance),eI=eI.parent;while(eI!==xI.parent);return xI.starts&&RI(xI.starts,oI),Wl.returnEnd?0:QI.length}function tl(){const oI=[];for(let QI=eI;QI!==Fl;QI=QI.parent)QI.scope&&oI.unshift(QI.scope);oI.forEach(QI=>wI.openNode(QI))}let bl={};function Il(oI,QI){const dI=QI&&QI[0];if(YI+=oI,dI==null)return VI(),0;if(bl.type==="begin"&&QI.type==="end"&&bl.index===QI.index&&dI===""){if(YI+=S.slice(QI.index,QI.index+1),!e){const xI=new Error(`0 width match regex (${j})`);throw xI.languageName=j,xI.badRule=bl.rule,xI}return 1}if(bl=QI,QI.type==="begin")return PI(QI);if(QI.type==="illegal"&&!tI){const xI=new Error('Illegal lexeme "'+dI+'" for mode "'+(eI.scope||"")+'"');throw xI.mode=eI,xI}else if(QI.type==="end"){const xI=_I(QI);if(xI!==Uz)return xI}if(QI.type==="illegal"&&dI==="")return 1;if(bI>1e5&&bI>QI.index*3)throw new Error("potential infinite loop, way more iterations than matches");return YI+=dI,dI.length}const Fl=k(j);if(!Fl)throw wW(d.replace("{}",j)),new Error('Unknown language: "'+j+'"');const al=B5I(Fl);let P="",eI=z||al;const uI={},wI=new n.__emitter(n);tl();let YI="",HI=0,NI=0,bI=0,gI=!1;try{if(Fl.__emitTokens)Fl.__emitTokens(S,wI);else{for(eI.matcher.considerAll();;){bI++,gI?gI=!1:eI.matcher.considerAll(),eI.matcher.lastIndex=NI;const oI=eI.matcher.exec(S);if(!oI)break;const QI=S.substring(NI,oI.index),dI=Il(QI,oI);NI=oI.index+dI}Il(S.substring(NI))}return wI.finalize(),P=wI.toHTML(),{language:j,value:P,relevance:HI,illegal:!1,_emitter:wI,_top:eI}}catch(oI){if(oI.message&&oI.message.includes("Illegal"))return{language:j,value:MX(S),illegal:!0,relevance:0,_illegalBy:{message:oI.message,index:NI,context:S.slice(NI-100,NI+100),mode:oI.mode,resultSoFar:P},_emitter:wI};if(e)return{language:j,value:MX(S),illegal:!1,relevance:0,errorRaised:oI,_emitter:wI,_top:eI};throw oI}}function m(j){const S={value:MX(j),illegal:!1,relevance:0,_top:t,_emitter:new n.__emitter(n)};return S._emitter.addText(j),S}function s(j,S){S=S||n.languages||Object.keys(l);const tI=m(j),z=S.filter(k).filter(J).map(VI=>W(VI,j,!1));z.unshift(tI);const g=z.sort((VI,q)=>{if(VI.relevance!==q.relevance)return q.relevance-VI.relevance;if(VI.language&&q.language){if(k(VI.language).supersetOf===q.language)return 1;if(k(q.language).supersetOf===VI.language)return-1}return 0}),[GI,f]=g,nI=GI;return nI.secondBest=f,nI}function h(j,S,tI){const z=S&&c[S]||tI;j.classList.add("hljs"),j.classList.add(`language-${z}`)}function p(j){let S=null;const tI=a(j);if(b(tI))return;if(O("before:highlightElement",{el:j,language:tI}),j.dataset.highlighted){console.log("Element previously highlighted. To highlight again, first unset `dataset.highlighted`.",j);return}if(j.children.length>0&&(n.ignoreUnescapedHTML||(console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."),console.warn("https://github.com/highlightjs/highlight.js/wiki/security"),console.warn("The element with unescaped HTML:"),console.warn(j)),n.throwUnescapedHTML))throw new z5I("One of your code blocks includes unescaped HTML.",j.innerHTML);S=j;const z=S.textContent,g=tI?Z(z,{language:tI,ignoreIllegals:!0}):s(z);j.innerHTML=g.value,j.dataset.highlighted="yes",h(j,tI,g.language),j.result={language:g.language,re:g.relevance,relevance:g.relevance},g.secondBest&&(j.secondBest={language:g.secondBest.language,relevance:g.secondBest.relevance}),O("after:highlightElement",{el:j,result:g,text:z})}function V(j){n=zz(n,j)}const o=()=>{H(),Ur("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")};function F(){H(),Ur("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.")}let X=!1;function H(){if(document.readyState==="loading"){X=!0;return}document.querySelectorAll(n.cssSelector).forEach(p)}function Y(){X&&H()}typeof window<"u"&&window.addEventListener&&window.addEventListener("DOMContentLoaded",Y,!1);function R(j,S){let tI=null;try{tI=S(I)}catch(z){if(wW("Language definition for '{}' could not be registered.".replace("{}",j)),e)wW(z);else throw z;tI=t}tI.name||(tI.name=j),l[j]=tI,tI.rawDefinition=S.bind(null,I),tI.aliases&&N(tI.aliases,{languageName:j})}function B(j){delete l[j];for(const S of Object.keys(c))c[S]===j&&delete c[S]}function C(){return Object.keys(l)}function k(j){return j=(j||"").toLowerCase(),l[j]||l[c[j]]}function N(j,{languageName:S}){typeof j=="string"&&(j=[j]),j.forEach(tI=>{c[tI.toLowerCase()]=S})}function J(j){const S=k(j);return S&&!S.disableAutodetect}function A(j){j["before:highlightBlock"]&&!j["before:highlightElement"]&&(j["before:highlightElement"]=S=>{j["before:highlightBlock"](Object.assign({block:S.el},S))}),j["after:highlightBlock"]&&!j["after:highlightElement"]&&(j["after:highlightElement"]=S=>{j["after:highlightBlock"](Object.assign({block:S.el},S))})}function M(j){A(j),G.push(j)}function D(j){const S=G.indexOf(j);S!==-1&&G.splice(S,1)}function O(j,S){const tI=j;G.forEach(function(z){z[tI]&&z[tI](S)})}function $(j){return Ur("10.7.0","highlightBlock will be removed entirely in v12.0"),Ur("10.7.0","Please use highlightElement now."),p(j)}Object.assign(I,{highlight:Z,highlightAuto:s,highlightAll:H,highlightElement:p,highlightBlock:$,configure:V,initHighlighting:o,initHighlightingOnLoad:F,registerLanguage:R,unregisterLanguage:B,listLanguages:C,getLanguage:k,registerAliases:N,autoDetection:J,inherit:zz,addPlugin:M,removePlugin:D}),I.debugMode=function(){e=!1},I.safeMode=function(){e=!0},I.versionString=x5I,I.regex={concat:dr,lookahead:D6,either:qA,optional:$JI,anyNumberOfTimes:qJI};for(const j in $o)typeof $o[j]=="object"&&T6($o[j]);return Object.assign(I,$o),I},c0=G7({});c0.newInstance=()=>G7({});var C5I=c0;c0.HighlightJS=c0;c0.default=c0;const M5I=Vn(C5I),Cz={},f5I="hljs-";function K5I(I){const l=M5I.newInstance();return I&&d(I),{highlight:c,highlightAuto:G,listLanguages:e,register:d,registerAlias:t,registered:n};function c(b,a,Z){const W=Z||Cz,m=typeof W.prefix=="string"?W.prefix:f5I;if(!l.getLanguage(b))throw new Error("Unknown language: `"+b+"` is not registered");l.configure({__emitter:L5I,classPrefix:m});const s=l.highlight(a,{ignoreIllegals:!0,language:b});if(s.errorRaised)throw new Error("Could not highlight with `Highlight.js`",{cause:s.errorRaised});const h=s._emitter.root,p=h.data;return p.language=s.language,p.relevance=s.relevance,h}function G(b,a){const W=(a||Cz).subset||e();let m=-1,s=0,h;for(;++ms&&(s=V.data.relevance,h=V)}return h||{type:"root",children:[],data:{language:void 0,relevance:s}}}function e(){return l.listLanguages()}function d(b,a){if(typeof b=="string")l.registerLanguage(b,a);else{let Z;for(Z in b)Object.hasOwn(b,Z)&&l.registerLanguage(Z,b[Z])}}function t(b,a){if(typeof b=="string")l.registerAliases(typeof a=="string"?a:[...a],{languageName:b});else{let Z;for(Z in b)if(Object.hasOwn(b,Z)){const W=b[Z];l.registerAliases(typeof W=="string"?W:[...W],{languageName:Z})}}}function n(b){return!!l.getLanguage(b)}}class L5I{constructor(l){this.options=l,this.root={type:"root",children:[],data:{language:void 0,relevance:0}},this.stack=[this.root]}addText(l){if(l==="")return;const c=this.stack[this.stack.length-1],G=c.children[c.children.length-1];G&&G.type==="text"?G.value+=l:c.children.push({type:"text",value:l})}startScope(l){this.openNode(String(l))}endScope(){this.closeNode()}__addSublanguage(l,c){const G=this.stack[this.stack.length-1],e=l.root.children;c?G.children.push({type:"element",tagName:"span",properties:{className:[c]},children:e}):G.children.push(...e)}openNode(l){const c=this,G=l.split(".").map(function(t,n){return n?t+"_".repeat(n):c.options.classPrefix+t}),e=this.stack[this.stack.length-1],d={type:"element",tagName:"span",properties:{className:G},children:[]};e.children.push(d),this.stack.push(d)}closeNode(){this.stack.pop()}finalize(){}toHTML(){return""}}const S5I={};function T5I(I){const l=I||S5I,c=l.aliases,G=l.detect||!1,e=l.languages||jJI,d=l.plainText,t=l.prefix,n=l.subset;let b="hljs";const a=K5I(e);if(c&&a.registerAlias(c),t){const Z=t.indexOf("-");b=Z>-1?t.slice(0,Z):t}return function(Z,W){GN(Z,"element",function(m,s,h){if(m.tagName!=="code"||!h||h.type!=="element"||h.tagName!=="pre")return;const p=j5I(m);if(p===!1||!p&&!G||p&&d&&d.includes(p))return;Array.isArray(m.properties.className)||(m.properties.className=[]),m.properties.className.includes(b)||m.properties.className.unshift(b);let V;try{V=p?a.highlight(p,dE(h),{prefix:t}):a.highlightAuto(dE(h),{prefix:t,subset:n})}catch(o){const F=o;if(p&&/Unknown language/.test(F.message)){W.message("Cannot highlight as `"+p+"`, it’s not registered",{ancestors:[h,m],cause:F,place:m.position,ruleId:"missing-language",source:"rehype-highlight"});return}throw F}!p&&V.data&&V.data.language&&m.properties.className.push("language-"+V.data.language),V.children.length>0&&(m.children=V.children)})}}function j5I(I){const l=I.properties.className;let c=-1;if(Array.isArray(l))for(;++c15?a="…"+n.slice(e-15,e):a=n.slice(0,e);var Z;d+15":">","<":"<",'"':""","'":"'"},pBI=/[&><"']/g;function oBI(I){return String(I).replace(pBI,l=>hBI[l])}var n7=function I(l){return l.type==="ordgroup"||l.type==="color"?l.body.length===1?I(l.body[0]):l:l.type==="font"?I(l.body):l},VBI=function(l){var c=n7(l);return c.type==="mathord"||c.type==="textord"||c.type==="atom"},iBI=function(l){if(!l)throw new Error("Expected non-null, but got "+String(l));return l},FBI=function(l){var c=/^[\x00-\x20]*([^\\/#?]*?)(:|�*58|�*3a|&colon)/i.exec(l);return c?c[2]!==":"||!/^[a-zA-Z][a-zA-Z0-9+\-.]*$/.test(c[1])?null:c[1].toLowerCase():"_relative"},Bl={contains:rBI,deflt:mBI,escape:oBI,hyphenate:uBI,getBaseElem:n7,isCharacterBox:VBI,protocolFromUrl:FBI},_2={displayMode:{type:"boolean",description:"Render math in display mode, which puts the math in display style (so \\int and \\sum are large, for example), and centers the math on the page on its own line.",cli:"-d, --display-mode"},output:{type:{enum:["htmlAndMathml","html","mathml"]},description:"Determines the markup language of the output.",cli:"-F, --format "},leqno:{type:"boolean",description:"Render display math in leqno style (left-justified tags)."},fleqn:{type:"boolean",description:"Render display math flush left."},throwOnError:{type:"boolean",default:!0,cli:"-t, --no-throw-on-error",cliDescription:"Render errors (in the color given by --error-color) instead of throwing a ParseError exception when encountering an error."},errorColor:{type:"string",default:"#cc0000",cli:"-c, --error-color ",cliDescription:"A color string given in the format 'rgb' or 'rrggbb' (no #). This option determines the color of errors rendered by the -t option.",cliProcessor:I=>"#"+I},macros:{type:"object",cli:"-m, --macro ",cliDescription:"Define custom macro of the form '\\foo:expansion' (use multiple -m arguments for multiple macros).",cliDefault:[],cliProcessor:(I,l)=>(l.push(I),l)},minRuleThickness:{type:"number",description:"Specifies a minimum thickness, in ems, for fraction lines, `\\sqrt` top lines, `{array}` vertical lines, `\\hline`, `\\hdashline`, `\\underline`, `\\overline`, and the borders of `\\fbox`, `\\boxed`, and `\\fcolorbox`.",processor:I=>Math.max(0,I),cli:"--min-rule-thickness ",cliProcessor:parseFloat},colorIsTextColor:{type:"boolean",description:"Makes \\color behave like LaTeX's 2-argument \\textcolor, instead of LaTeX's one-argument \\color mode change.",cli:"-b, --color-is-text-color"},strict:{type:[{enum:["warn","ignore","error"]},"boolean","function"],description:"Turn on strict / LaTeX faithfulness mode, which throws an error if the input uses features that are not supported by LaTeX.",cli:"-S, --strict",cliDefault:!1},trust:{type:["boolean","function"],description:"Trust the input, enabling all HTML features such as \\url.",cli:"-T, --trust"},maxSize:{type:"number",default:1/0,description:"If non-zero, all user-specified sizes, e.g. in \\rule{500em}{500em}, will be capped to maxSize ems. Otherwise, elements and spaces can be arbitrarily large",processor:I=>Math.max(0,I),cli:"-s, --max-size ",cliProcessor:parseInt},maxExpand:{type:"number",default:1e3,description:"Limit the number of macro expansions to the specified number, to prevent e.g. infinite macro loops. If set to Infinity, the macro expander will try to fully expand as in LaTeX.",processor:I=>Math.max(0,I),cli:"-e, --max-expand ",cliProcessor:I=>I==="Infinity"?1/0:parseInt(I)},globalGroup:{type:"boolean",cli:!1}};function NBI(I){if(I.default)return I.default;var l=I.type,c=Array.isArray(l)?l[0]:l;if(typeof c!="string")return c.enum[0];switch(c){case"boolean":return!1;case"string":return"";case"number":return 0;case"object":return{}}}let ly=class{constructor(l){this.displayMode=void 0,this.output=void 0,this.leqno=void 0,this.fleqn=void 0,this.throwOnError=void 0,this.errorColor=void 0,this.macros=void 0,this.minRuleThickness=void 0,this.colorIsTextColor=void 0,this.strict=void 0,this.trust=void 0,this.maxSize=void 0,this.maxExpand=void 0,this.globalGroup=void 0,l=l||{};for(var c in _2)if(_2.hasOwnProperty(c)){var G=_2[c];this[c]=l[c]!==void 0?G.processor?G.processor(l[c]):l[c]:NBI(G)}}reportNonstrict(l,c,G){var e=this.strict;if(typeof e=="function"&&(e=e(l,c,G)),!(!e||e==="ignore")){if(e===!0||e==="error")throw new DI("LaTeX-incompatible input and strict mode is set to 'error': "+(c+" ["+l+"]"),G);e==="warn"?typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to 'warn': "+(c+" ["+l+"]")):typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to "+("unrecognized '"+e+"': "+c+" ["+l+"]"))}}useStrictBehavior(l,c,G){var e=this.strict;if(typeof e=="function")try{e=e(l,c,G)}catch{e="error"}return!e||e==="ignore"?!1:e===!0||e==="error"?!0:e==="warn"?(typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to 'warn': "+(c+" ["+l+"]")),!1):(typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to "+("unrecognized '"+e+"': "+c+" ["+l+"]")),!1)}isTrusted(l){if(l.url&&!l.protocol){var c=Bl.protocolFromUrl(l.url);if(c==null)return!1;l.protocol=c}var G=typeof this.trust=="function"?this.trust(l):this.trust;return!!G}};class Fa{constructor(l,c,G){this.id=void 0,this.size=void 0,this.cramped=void 0,this.id=l,this.size=c,this.cramped=G}sup(){return kn[RBI[this.id]]}sub(){return kn[YBI[this.id]]}fracNum(){return kn[XBI[this.id]]}fracDen(){return kn[HBI[this.id]]}cramp(){return kn[QBI[this.id]]}text(){return kn[wBI[this.id]]}isTight(){return this.size>=2}}var cy=0,oi=1,Am=2,Kb=3,bh=4,wt=5,G0=6,Oe=7,kn=[new Fa(cy,0,!1),new Fa(oi,0,!0),new Fa(Am,1,!1),new Fa(Kb,1,!0),new Fa(bh,2,!1),new Fa(wt,2,!0),new Fa(G0,3,!1),new Fa(Oe,3,!0)],RBI=[bh,wt,bh,wt,G0,Oe,G0,Oe],YBI=[wt,wt,wt,wt,Oe,Oe,Oe,Oe],XBI=[Am,Kb,bh,wt,G0,Oe,G0,Oe],HBI=[Kb,Kb,wt,wt,Oe,Oe,Oe,Oe],QBI=[oi,oi,Kb,Kb,wt,wt,Oe,Oe],wBI=[cy,oi,Am,Kb,Am,Kb,Am,Kb],Ul={DISPLAY:kn[cy],TEXT:kn[Am],SCRIPT:kn[bh],SCRIPTSCRIPT:kn[G0]},bE=[{name:"latin",blocks:[[256,591],[768,879]]},{name:"cyrillic",blocks:[[1024,1279]]},{name:"armenian",blocks:[[1328,1423]]},{name:"brahmic",blocks:[[2304,4255]]},{name:"georgian",blocks:[[4256,4351]]},{name:"cjk",blocks:[[12288,12543],[19968,40879],[65280,65376]]},{name:"hangul",blocks:[[44032,55215]]}];function EBI(I){for(var l=0;l=e[0]&&I<=e[1])return c.name}return null}var q2=[];bE.forEach(I=>I.blocks.forEach(l=>q2.push(...l)));function b7(I){for(var l=0;l=q2[l]&&I<=q2[l+1])return!0;return!1}var Cr=80,vBI=function(l,c){return"M95,"+(622+l+c)+` + */var aO=function(t){return t!=null&&t.constructor!=null&&typeof t.constructor.isBuffer=="function"&&t.constructor.isBuffer(t)},uwe=e=>{if(Object.prototype.toString.call(e)!=="[object Object]")return!1;const t=Object.getPrototypeOf(e);return t===null||t===Object.prototype},cwe=[].slice,dwe=pwe;function pwe(e,t){var n;return r;function r(){var o=cwe.call(arguments,0),l=e.length>o.length,s;l&&o.push(i);try{s=e.apply(null,o)}catch(u){if(l&&n)throw u;return i(u)}l||(s&&typeof s.then=="function"?s.then(a,i):s instanceof Error?i(s):a(s))}function i(){n||(n=!0,t.apply(null,arguments))}function a(o){i(null,o)}}var oO=dwe,gwe=lO;lO.wrap=oO;var XD=[].slice;function lO(){var e=[],t={};return t.run=n,t.use=r,t;function n(){var i=-1,a=XD.call(arguments,0,-1),o=arguments[arguments.length-1];if(typeof o!="function")throw new Error("Expected function as last argument, not "+o);l.apply(null,[null].concat(a));function l(s){var u=e[++i],c=XD.call(arguments,0),d=c.slice(1),g=a.length,h=-1;if(s){o(s);return}for(;++he.length){for(;i--;)if(e.charCodeAt(i)===47){if(o){n=i+1;break}}else r<0&&(o=!0,r=i+1);return r<0?"":e.slice(n,r)}if(t===e)return"";for(a=-1,l=t.length-1;i--;)if(e.charCodeAt(i)===47){if(o){n=i+1;break}}else a<0&&(o=!0,a=i+1),l>-1&&(e.charCodeAt(i)===t.charCodeAt(l--)?l<0&&(r=i):(l=-1,r=a));return n===r?r=a:r<0&&(r=e.length),e.slice(n,r)}function Bwe(e){var t,n,r;if(um(e),!e.length)return".";for(t=-1,r=e.length;--r;)if(e.charCodeAt(r)===47){if(n){t=r;break}}else n||(n=!0);return t<0?e.charCodeAt(0)===47?"/":".":t===1&&e.charCodeAt(0)===47?"//":e.slice(0,t)}function wwe(e){var t=-1,n=0,r=-1,i=0,a,o,l;for(um(e),l=e.length;l--;){if(o=e.charCodeAt(l),o===47){if(a){n=l+1;break}continue}r<0&&(a=!0,r=l+1),o===46?t<0?t=l:i!==1&&(i=1):t>-1&&(i=-1)}return t<0||r<0||i===0||i===1&&t===r-1&&t===n+1?"":e.slice(t,r)}function bwe(){for(var e=-1,t;++e2){if(s=n.lastIndexOf("/"),s!==n.length-1){s<0?(n="",r=0):(n=n.slice(0,s),r=n.length-1-n.lastIndexOf("/")),i=o,a=0;continue}}else if(n.length){n="",r=0,i=o,a=0;continue}}t&&(n=n.length?n+"/..":"..",r=2)}else n.length?n+="/"+e.slice(i+1,o):n=e.slice(i+1,o),r=o-i-1;i=o,a=0}else l===46&&a>-1?a++:a=-1}return n}function um(e){if(typeof e!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}var cO={};cO.cwd=Qwe;function Qwe(){return"/"}var cs=T1,Wwe=cO,ywe=aO,Fwe=lu,Ewe={}.hasOwnProperty,BK=["history","path","basename","stem","extname","dirname"];lu.prototype.toString=Lwe;Object.defineProperty(lu.prototype,"path",{get:Rwe,set:Swe});Object.defineProperty(lu.prototype,"dirname",{get:xwe,set:Gwe});Object.defineProperty(lu.prototype,"basename",{get:kwe,set:Dwe});Object.defineProperty(lu.prototype,"extname",{get:Nwe,set:Zwe});Object.defineProperty(lu.prototype,"stem",{get:Hwe,set:Xwe});function lu(e){var t,n;if(!e)e={};else if(typeof e=="string"||ywe(e))e={contents:e};else if("message"in e&&"messages"in e)return e;if(!(this instanceof lu))return new lu(e);for(this.data={},this.messages=[],this.history=[],this.cwd=Wwe.cwd(),n=-1;++n-1)throw new Error("`extname` cannot contain multiple dots")}this.path=cs.join(this.dirname,this.stem+(e||""))}function Hwe(){return typeof this.path=="string"?cs.basename(this.path,this.extname):void 0}function Xwe(e){D9(e,"stem"),k9(e,"stem"),this.path=cs.join(this.dirname||"",e+(this.extname||""))}function Lwe(e){return(this.contents||"").toString(e)}function k9(e,t){if(e&&e.indexOf(cs.sep)>-1)throw new Error("`"+t+"` cannot be a path: did not expect `"+cs.sep+"`")}function D9(e,t){if(!e)throw new Error("`"+t+"` cannot be empty")}function dO(e,t){if(!e)throw new Error("Setting `"+t+"` requires `path` to be set too")}var Mwe=mwe,B3=Fwe,Twe=B3;B3.prototype.message=Vwe;B3.prototype.info=Iwe;B3.prototype.fail=Ywe;function Vwe(e,t,n){var r=new Mwe(e,t,n);return this.path&&(r.name=this.path+":"+r.name,r.file=this.path),r.fatal=!1,this.messages.push(r),r}function Ywe(){var e=this.message.apply(this,arguments);throw e.fatal=!0,e}function Iwe(){var e=this.message.apply(this,arguments);return e.fatal=null,e}var Uwe=Twe,TD=lwe,Owe=aO,n2=cU,VD=uwe,pO=gwe,Vg=Uwe,Jwe=gO().freeze(),zwe=[].slice,Pwe={}.hasOwnProperty,jwe=pO().use(_we).use($we).use(qwe);function _we(e,t){t.tree=e.parse(t.file)}function $we(e,t,n){e.run(t.tree,t.file,r);function r(i,a,o){i?n(i):(t.tree=a,t.file=o,n())}}function qwe(e,t){var n=e.stringify(t.tree,t.file);n==null||(typeof n=="string"||Owe(n)?("value"in t.file&&(t.file.value=n),t.file.contents=n):t.file.result=n)}function gO(){var e=[],t=pO(),n={},r=-1,i;return a.data=l,a.freeze=o,a.attachers=e,a.use=s,a.parse=c,a.stringify=h,a.run=d,a.runSync=g,a.process=m,a.processSync=A,a;function a(){for(var B=gO(),C=-1;++C13&&n<32||n>126&&n<160||n>55295&&n<57344||n>64975&&n<65008||(n&65535)===65535||(n&65535)===65534||n>1114111?"�":lbe(n)}var ube=sbe,Z9={};function cbe(e){return e<-2}var ei=cbe;function dbe(e){return e===-2||e===-1||e===32}var Cu=dbe,JD=Cu;function pbe(e,t,n,r){var i=r?r-1:1/0,a=0;return o;function o(s){return JD(s)?(e.enter(n),l(s)):t(s)}function l(s){return JD(s)&&a++b;)t.containerState=n[F][1],n[F][0].exit.call(t,e);n.length=b}function C(b,Q){var F=0;return a={},K;function K(k){return F-1?void 0:4)}function Fbe(e,t,n){return mO(e,e.lazy(this.parser.constructs.flow,t,n),"linePrefix",this.parser.constructs.disable.null.indexOf("codeIndented")>-1?void 0:4)}H9.tokenize=Kbe;var X9={};function Ebe(e){for(var t=-1,n=0;++ti?0:i+t:t=t>i?i:t,n=n>0?n:0,r.length<1e4)o=Array.from(r),o.unshift(t,n),QK.apply(e,o);else for(n&&QK.apply(e,[t,n]);a-1||Mbe(r.events,"linePrefix")<4?e.interrupt(r.parser.constructs.flow,n,t)(o):t(o)}}var zbe=Ybe;Object.defineProperty(X9,"__esModule",{value:!0});var Pbe=zbe,jbe=Qi,_be=b3,$be=qbe;function qbe(e){var t=this,n=e.attempt(_be,r,e.attempt(this.parser.constructs.flowInitial,i,jbe(e,e.attempt(this.parser.constructs.flow,i,e.attempt(Pbe,i)),"linePrefix")));return n;function r(a){if(a===null){e.consume(a);return}return e.enter("lineEndingBlank"),e.consume(a),e.exit("lineEndingBlank"),t.currentConstruct=void 0,n}function i(a){if(a===null){e.consume(a);return}return e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),t.currentConstruct=void 0,n}}X9.tokenize=$be;var Y1={};Object.defineProperty(Y1,"__esModule",{value:!0});var eve=cm,zD=V1,tve=bO("text"),nve=bO("string"),rve={resolveAll:vO()};function bO(e){return{tokenize:t,resolveAll:vO(e==="text"?ive:void 0)};function t(n){var r=this,i=this.parser.constructs[e],a=n.attempt(i,o,l);return o;function o(c){return u(c)?a(c):l(c)}function l(c){if(c===null){n.consume(c);return}return n.enter("data"),n.consume(c),s}function s(c){return u(c)?(n.exit("data"),a(c)):(n.consume(c),s)}function u(c){var d=i[c],g=-1;if(c===null)return!0;if(d){for(;++g-1&&(o[0]=o[0].slice(r)),a>0&&o.push(e[i].slice(0,a))),o}var Bve=Cve,wve=cm,bve=ei,vve=M9,Kve=Vc,WK=L9,Qve=T9,Wve=Ave,jD=V1,yve=Bve;function Fve(e,t,n){var r=n?jD(n):{line:1,column:1,offset:0},i={},a=[],o=[],l=[],s={consume:b,enter:Q,exit:F,attempt:G(K),check:G(y),interrupt:G(y,{interrupt:!0}),lazy:G(y,{lazy:!0})},u={previous:null,events:[],parser:e,sliceStream:h,sliceSerialize:g,now:m,defineSkip:A,write:d},c=t.tokenize.call(u,s);return t.resolveAll&&a.push(t),r._index=0,r._bufferIndex=-1,u;function d(k){return o=vve(o,k),B(),o[o.length-1]!==null?[]:(X(t,0),u.events=Qve(a,u.events,u),u.events)}function g(k){return Wve(h(k))}function h(k){return yve(o,k)}function m(){return jD(r)}function A(k){i[k.line]=k.column,v()}function B(){for(var k,D;r._index-1?fe():_.tokenize.call(D?wve({},u,D):u,s,ue,fe)(ve)}}function ue(_){return k(se,Z),j}function fe(_){return Z.restore(),++I1&&e[n][1].end.offset-e[n][1].start.offset>1?2:1,o={type:s>1?"strongSequence":"emphasisSequence",start:$D(Nl(e[r][1].end),-s),end:Nl(e[r][1].end)},l={type:s>1?"strongSequence":"emphasisSequence",start:Nl(e[n][1].start),end:$D(Nl(e[n][1].start),s)},a={type:s>1?"strongText":"emphasisText",start:Nl(e[r][1].end),end:Nl(e[n][1].start)},i={type:s>1?"strong":"emphasis",start:Nl(o.start),end:Nl(l.end)},e[r][1].end=Nl(o.start),e[n][1].start=Nl(l.end),u=[],e[r][1].end.offset-e[r][1].start.offset&&(u=Yg(u,[["enter",e[r][1],t],["exit",e[r][1],t]])),u=Yg(u,[["enter",i,t],["enter",o,t],["exit",o,t],["enter",a,t]]),u=Yg(u,Pve(t.parser.constructs.insideSpan.null,e.slice(r+1,n),t)),u=Yg(u,[["exit",a,t],["enter",l,t],["exit",l,t],["exit",i,t]]),e[n][1].end.offset-e[n][1].start.offset?(c=2,u=Yg(u,[["enter",e[n][1],t],["exit",e[n][1],t]])):c=0,zve(e,r-1,n-r+3,u),n=r+u.length-c-2;break}}for(n=-1;++n-1?void 0:4)}function AKe(e){e.exit("blockQuote")}var CKe=QO,BKe=Ic,wKe=BKe(/[!-/:-@[-`{-~]/),bKe=wKe,vKe=bKe,KKe={name:"characterEscape",tokenize:QKe};function QKe(e,t,n){return r;function r(a){return e.enter("characterEscape"),e.enter("escapeMarker"),e.consume(a),e.exit("escapeMarker"),i}function i(a){return vKe(a)?(e.enter("characterEscapeValue"),e.consume(a),e.exit("characterEscapeValue"),e.exit("characterEscape"),t):n(a)}}var WKe=KKe,i2,yKe=59,WO=FKe;function FKe(e){var t="&"+e+";",n;return i2=i2||document.createElement("i"),i2.innerHTML=t,n=i2.textContent,n.charCodeAt(n.length-1)===yKe&&e!=="semi"||n===t?!1:n}var EKe=Ic,RKe=EKe(/\d/),yO=RKe,SKe=Ic,xKe=SKe(/[\dA-Fa-f]/),GKe=xKe,kKe=WO,eN=K3,DKe=yO,NKe=GKe;function ZKe(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var HKe=ZKe(kKe),XKe={name:"characterReference",tokenize:LKe};function LKe(e,t,n){var r=this,i=0,a,o;return l;function l(d){return e.enter("characterReference"),e.enter("characterReferenceMarker"),e.consume(d),e.exit("characterReferenceMarker"),s}function s(d){return d===35?(e.enter("characterReferenceMarkerNumeric"),e.consume(d),e.exit("characterReferenceMarkerNumeric"),u):(e.enter("characterReferenceValue"),a=31,o=eN,c(d))}function u(d){return d===88||d===120?(e.enter("characterReferenceMarkerHexadecimal"),e.consume(d),e.exit("characterReferenceMarkerHexadecimal"),e.enter("characterReferenceValue"),a=6,o=NKe,c):(e.enter("characterReferenceValue"),a=7,o=DKe,c(d))}function c(d){var g;return d===59&&i?(g=e.exit("characterReferenceValue"),o===eN&&!HKe.default(r.sliceSerialize(g))?n(d):(e.enter("characterReferenceMarker"),e.consume(d),e.exit("characterReferenceMarker"),e.exit("characterReference"),t)):o(d)&&i++-1?void 0:4);function G(v){return Q.enter("codeFencedFence"),Q.enter("codeFencedFenceSequence"),X(v)}function X(v){return v===l?(Q.consume(v),y++,X):yu?n(C):(e.consume(C),A):C===41?c--?(e.consume(C),A):(e.exit("chunkString"),e.exit(l),e.exit(o),e.exit(r),t(C)):C===null||rQe(C)?c?n(C):(e.exit("chunkString"),e.exit(l),e.exit(o),e.exit(r),t(C)):aN(C)?n(C):(e.consume(C),C===92?B:A)}function B(C){return C===40||C===41||C===92?(e.consume(C),A):A(C)}}var FO=aQe,oN=ei,oQe=Cu;function lQe(e,t,n,r,i,a){var o=this,l=0,s;return u;function u(h){return e.enter(r),e.enter(i),e.consume(h),e.exit(i),e.enter(a),c}function c(h){return h===null||h===91||h===93&&!s||h===94&&!l&&"_hiddenFootnoteSupport"in o.parser.constructs||l>999?n(h):h===93?(e.exit(a),e.enter(i),e.consume(h),e.exit(i),e.exit(r),t):oN(h)?(e.enter("lineEnding"),e.consume(h),e.exit("lineEnding"),c):(e.enter("chunkString",{contentType:"string"}),d(h))}function d(h){return h===null||h===91||h===93||oN(h)||l++>999?(e.exit("chunkString"),c(h)):(e.consume(h),s=s||!oQe(h),h===92?g:d)}function g(h){return h===91||h===92||h===93?(e.consume(h),l++,d):d(h)}}var EO=lQe,sQe=ei,uQe=Cu,cQe=Qi;function dQe(e,t){var n;return r;function r(i){return sQe(i)?(e.enter("lineEnding"),e.consume(i),e.exit("lineEnding"),n=!0,r):uQe(i)?cQe(e,r,n?"linePrefix":"lineSuffix")(i):t(i)}}var RO=dQe,lN=ei,pQe=Qi;function gQe(e,t,n,r,i,a){var o;return l;function l(g){return e.enter(r),e.enter(i),e.consume(g),e.exit(i),o=g===40?41:g,s}function s(g){return g===o?(e.enter(i),e.consume(g),e.exit(i),e.exit(r),t):(e.enter(a),u(g))}function u(g){return g===o?(e.exit(a),s(o)):g===null?n(g):lN(g)?(e.enter("lineEnding"),e.consume(g),e.exit("lineEnding"),pQe(e,u,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),c(g))}function c(g){return g===o||g===null||lN(g)?(e.exit("chunkString"),u(g)):(e.consume(g),g===92?d:c)}function d(g){return g===o||g===92?(e.consume(g),c):c(g)}}var SO=gQe,xO=ei,hQe=Yc,fQe=N9,mQe=FO,AQe=EO,cF=Qi,GO=RO,CQe=SO,BQe={name:"definition",tokenize:bQe},wQe={tokenize:vQe,partial:!0};function bQe(e,t,n){var r=this,i;return a;function a(s){return e.enter("definition"),AQe.call(r,e,o,n,"definitionLabel","definitionLabelMarker","definitionLabelString")(s)}function o(s){return i=fQe(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)),s===58?(e.enter("definitionMarker"),e.consume(s),e.exit("definitionMarker"),GO(e,mQe(e,e.attempt(wQe,cF(e,l,"whitespace"),cF(e,l,"whitespace")),n,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString"))):n(s)}function l(s){return s===null||xO(s)?(e.exit("definition"),r.parser.defined.indexOf(i)<0&&r.parser.defined.push(i),t(s)):n(s)}}function vQe(e,t,n){return r;function r(o){return hQe(o)?GO(e,i)(o):n(o)}function i(o){return o===34||o===39||o===40?CQe(e,cF(e,a,"whitespace"),n,"definitionTitle","definitionTitleMarker","definitionTitleString")(o):n(o)}function a(o){return o===null||xO(o)?t(o):n(o)}}var KQe=BQe,QQe=ei,WQe={name:"hardBreakEscape",tokenize:yQe};function yQe(e,t,n){return r;function r(a){return e.enter("hardBreakEscape"),e.enter("escapeMarker"),e.consume(a),i}function i(a){return QQe(a)?(e.exit("escapeMarker"),e.exit("hardBreakEscape"),t(a)):n(a)}}var FQe=WQe,EQe=ei,sN=Yc,RQe=Cu,SQe=Vc,xQe=Qi,GQe={name:"headingAtx",tokenize:DQe,resolve:kQe};function kQe(e,t){var n=e.length-2,r=3,i,a;return e[r][1].type==="whitespace"&&(r+=2),n-2>r&&e[n][1].type==="whitespace"&&(n-=2),e[n][1].type==="atxHeadingSequence"&&(r===n-1||n-4>r&&e[n-2][1].type==="whitespace")&&(n-=r+1===n?2:4),n>r&&(i={type:"atxHeadingText",start:e[r][1].start,end:e[n][1].end},a={type:"chunkText",start:e[r][1].start,end:e[n][1].end,contentType:"text"},SQe(e,r,n-r+1,[["enter",i,t],["enter",a,t],["exit",a,t],["exit",i,t]])),e}function DQe(e,t,n){var r=this,i=0;return a;function a(c){return e.enter("atxHeading"),e.enter("atxHeadingSequence"),o(c)}function o(c){return c===35&&i++<6?(e.consume(c),o):c===null||sN(c)?(e.exit("atxHeadingSequence"),r.interrupt?t(c):l(c)):n(c)}function l(c){return c===35?(e.enter("atxHeadingSequence"),s(c)):c===null||EQe(c)?(e.exit("atxHeading"),t(c)):RQe(c)?xQe(e,l,"whitespace")(c):(e.enter("atxHeadingText"),u(c))}function s(c){return c===35?(e.consume(c),s):(e.exit("atxHeadingSequence"),l(c))}function u(c){return c===null||c===35||sN(c)?(e.exit("atxHeadingText"),l(c)):(e.consume(c),u)}}var NQe=GQe,ZQe=["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","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","section","source","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],HQe=ZQe,XQe=["pre","script","style","textarea"],LQe=XQe,Ug=V9,uN=K3,Pd=ei,cN=Yc,jd=Cu,a2=w3,MQe=HQe,dN=LQe,TQe=b3,VQe={name:"htmlFlow",tokenize:UQe,resolveTo:IQe,concrete:!0},YQe={tokenize:OQe,partial:!0};function IQe(e){for(var t=e.length;t--&&!(e[t][0]==="enter"&&e[t][1].type==="htmlFlow"););return t>1&&e[t-2][1].type==="linePrefix"&&(e[t][1].start=e[t-2][1].start,e[t+1][1].start=e[t-2][1].start,e.splice(t-2,2)),e}function UQe(e,t,n){var r=this,i,a,o,l,s;return u;function u(S){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(S),c}function c(S){return S===33?(e.consume(S),d):S===47?(e.consume(S),m):S===63?(e.consume(S),i=3,r.interrupt?t:I):Ug(S)?(e.consume(S),o=a2(S),a=!0,A):n(S)}function d(S){return S===45?(e.consume(S),i=2,g):S===91?(e.consume(S),i=5,o="CDATA[",l=0,h):Ug(S)?(e.consume(S),i=4,r.interrupt?t:I):n(S)}function g(S){return S===45?(e.consume(S),r.interrupt?t:I):n(S)}function h(S){return S===o.charCodeAt(l++)?(e.consume(S),l===o.length?r.interrupt?t:k:h):n(S)}function m(S){return Ug(S)?(e.consume(S),o=a2(S),A):n(S)}function A(S){return S===null||S===47||S===62||cN(S)?S!==47&&a&&dN.indexOf(o.toLowerCase())>-1?(i=1,r.interrupt?t(S):k(S)):MQe.indexOf(o.toLowerCase())>-1?(i=6,S===47?(e.consume(S),B):r.interrupt?t(S):k(S)):(i=7,r.interrupt?n(S):a?b(S):C(S)):S===45||uN(S)?(e.consume(S),o+=a2(S),A):n(S)}function B(S){return S===62?(e.consume(S),r.interrupt?t:k):n(S)}function C(S){return jd(S)?(e.consume(S),C):H(S)}function b(S){return S===47?(e.consume(S),H):S===58||S===95||Ug(S)?(e.consume(S),Q):jd(S)?(e.consume(S),b):H(S)}function Q(S){return S===45||S===46||S===58||S===95||uN(S)?(e.consume(S),Q):F(S)}function F(S){return S===61?(e.consume(S),K):jd(S)?(e.consume(S),F):b(S)}function K(S){return S===null||S===60||S===61||S===62||S===96?n(S):S===34||S===39?(e.consume(S),s=S,y):jd(S)?(e.consume(S),K):(s=void 0,G(S))}function y(S){return S===s?(e.consume(S),X):S===null||Pd(S)?n(S):(e.consume(S),y)}function G(S){return S===null||S===34||S===39||S===60||S===61||S===62||S===96||cN(S)?F(S):(e.consume(S),G)}function X(S){return S===47||S===62||jd(S)?b(S):n(S)}function H(S){return S===62?(e.consume(S),v):n(S)}function v(S){return jd(S)?(e.consume(S),v):S===null||Pd(S)?k(S):n(S)}function k(S){return S===45&&i===2?(e.consume(S),z):S===60&&i===1?(e.consume(S),j):S===62&&i===4?(e.consume(S),se):S===63&&i===3?(e.consume(S),I):S===93&&i===5?(e.consume(S),J):Pd(S)&&(i===6||i===7)?e.check(YQe,se,D)(S):S===null||Pd(S)?D(S):(e.consume(S),k)}function D(S){return e.exit("htmlFlowData"),V(S)}function V(S){return S===null?Z(S):Pd(S)?(e.enter("lineEnding"),e.consume(S),e.exit("lineEnding"),V):(e.enter("htmlFlowData"),k(S))}function z(S){return S===45?(e.consume(S),I):k(S)}function j(S){return S===47?(e.consume(S),o="",te):k(S)}function te(S){return S===62&&dN.indexOf(o.toLowerCase())>-1?(e.consume(S),se):Ug(S)&&o.length<8?(e.consume(S),o+=a2(S),te):k(S)}function J(S){return S===93?(e.consume(S),I):k(S)}function I(S){return S===62?(e.consume(S),se):k(S)}function se(S){return S===null||Pd(S)?(e.exit("htmlFlowData"),Z(S)):(e.consume(S),se)}function Z(S){return e.exit("htmlFlow"),t(S)}}function OQe(e,t,n){return r;function r(i){return e.exit("htmlFlowData"),e.enter("lineEndingBlank"),e.consume(i),e.exit("lineEndingBlank"),e.attempt(TQe,t,n)}}var JQe=VQe,o2=V9,yK=K3,Gs=ei,FK=Yc,l2=Cu,zQe=Qi,PQe={name:"htmlText",tokenize:jQe};function jQe(e,t,n){var r=this,i,a,o,l;return s;function s(S){return e.enter("htmlText"),e.enter("htmlTextData"),e.consume(S),u}function u(S){return S===33?(e.consume(S),c):S===47?(e.consume(S),G):S===63?(e.consume(S),K):o2(S)?(e.consume(S),v):n(S)}function c(S){return S===45?(e.consume(S),d):S===91?(e.consume(S),a="CDATA[",o=0,B):o2(S)?(e.consume(S),F):n(S)}function d(S){return S===45?(e.consume(S),g):n(S)}function g(S){return S===null||S===62?n(S):S===45?(e.consume(S),h):m(S)}function h(S){return S===null||S===62?n(S):m(S)}function m(S){return S===null?n(S):S===45?(e.consume(S),A):Gs(S)?(l=m,I(S)):(e.consume(S),m)}function A(S){return S===45?(e.consume(S),Z):m(S)}function B(S){return S===a.charCodeAt(o++)?(e.consume(S),o===a.length?C:B):n(S)}function C(S){return S===null?n(S):S===93?(e.consume(S),b):Gs(S)?(l=C,I(S)):(e.consume(S),C)}function b(S){return S===93?(e.consume(S),Q):C(S)}function Q(S){return S===62?Z(S):S===93?(e.consume(S),Q):C(S)}function F(S){return S===null||S===62?Z(S):Gs(S)?(l=F,I(S)):(e.consume(S),F)}function K(S){return S===null?n(S):S===63?(e.consume(S),y):Gs(S)?(l=K,I(S)):(e.consume(S),K)}function y(S){return S===62?Z(S):K(S)}function G(S){return o2(S)?(e.consume(S),X):n(S)}function X(S){return S===45||yK(S)?(e.consume(S),X):H(S)}function H(S){return Gs(S)?(l=H,I(S)):l2(S)?(e.consume(S),H):Z(S)}function v(S){return S===45||yK(S)?(e.consume(S),v):S===47||S===62||FK(S)?k(S):n(S)}function k(S){return S===47?(e.consume(S),Z):S===58||S===95||o2(S)?(e.consume(S),D):Gs(S)?(l=k,I(S)):l2(S)?(e.consume(S),k):Z(S)}function D(S){return S===45||S===46||S===58||S===95||yK(S)?(e.consume(S),D):V(S)}function V(S){return S===61?(e.consume(S),z):Gs(S)?(l=V,I(S)):l2(S)?(e.consume(S),V):k(S)}function z(S){return S===null||S===60||S===61||S===62||S===96?n(S):S===34||S===39?(e.consume(S),i=S,j):Gs(S)?(l=z,I(S)):l2(S)?(e.consume(S),z):(e.consume(S),i=void 0,J)}function j(S){return S===i?(e.consume(S),te):S===null?n(S):Gs(S)?(l=j,I(S)):(e.consume(S),j)}function te(S){return S===62||S===47||FK(S)?k(S):n(S)}function J(S){return S===null||S===34||S===39||S===60||S===61||S===96?n(S):S===62||FK(S)?k(S):(e.consume(S),J)}function I(S){return e.exit("htmlTextData"),e.enter("lineEnding"),e.consume(S),e.exit("lineEnding"),zQe(e,se,"linePrefix",r.parser.constructs.disable.null.indexOf("codeIndented")>-1?void 0:4)}function se(S){return e.enter("htmlTextData"),l(S)}function Z(S){return S===62?(e.consume(S),e.exit("htmlTextData"),e.exit("htmlText"),t):n(S)}}var _Qe=PQe,$Qe=Yc,_d=M9,qQe=Vc,kO=N9,eWe=T9,$d=V1,tWe=FO,nWe=EO,rWe=SO,EK=RO,iWe={name:"labelEnd",tokenize:cWe,resolveTo:uWe,resolveAll:sWe},aWe={tokenize:dWe},oWe={tokenize:pWe},lWe={tokenize:gWe};function sWe(e){for(var t=-1,n;++t-1,e.enter("labelEnd"),e.enter("labelMarker"),e.consume(c),e.exit("labelMarker"),e.exit("labelEnd"),s):n(c)}function s(c){return c===40?e.attempt(aWe,t,o?t:u)(c):c===91?e.attempt(oWe,t,o?e.attempt(lWe,t,u):u)(c):o?t(c):u(c)}function u(c){return a._balanced=!0,n(c)}}function dWe(e,t,n){return r;function r(s){return e.enter("resource"),e.enter("resourceMarker"),e.consume(s),e.exit("resourceMarker"),EK(e,i)}function i(s){return s===41?l(s):tWe(e,a,n,"resourceDestination","resourceDestinationLiteral","resourceDestinationLiteralMarker","resourceDestinationRaw","resourceDestinationString",3)(s)}function a(s){return $Qe(s)?EK(e,o)(s):l(s)}function o(s){return s===34||s===39||s===40?rWe(e,EK(e,l),n,"resourceTitle","resourceTitleMarker","resourceTitleString")(s):l(s)}function l(s){return s===41?(e.enter("resourceMarker"),e.consume(s),e.exit("resourceMarker"),e.exit("resource"),t):n(s)}}function pWe(e,t,n){var r=this;return i;function i(o){return nWe.call(r,e,a,n,"reference","referenceMarker","referenceString")(o)}function a(o){return r.parser.defined.indexOf(kO(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)))<0?n(o):t(o)}}function gWe(e,t,n){return r;function r(a){return e.enter("reference"),e.enter("referenceMarker"),e.consume(a),e.exit("referenceMarker"),i}function i(a){return a===93?(e.enter("referenceMarker"),e.consume(a),e.exit("referenceMarker"),e.exit("reference"),t):n(a)}}var Y9=iWe,hWe=Y9,fWe={name:"labelStartImage",tokenize:mWe,resolveAll:hWe.resolveAll};function mWe(e,t,n){var r=this;return i;function i(l){return e.enter("labelImage"),e.enter("labelImageMarker"),e.consume(l),e.exit("labelImageMarker"),a}function a(l){return l===91?(e.enter("labelMarker"),e.consume(l),e.exit("labelMarker"),e.exit("labelImage"),o):n(l)}function o(l){return l===94&&"_hiddenFootnoteSupport"in r.parser.constructs?n(l):t(l)}}var AWe=fWe,CWe=Y9,BWe={name:"labelStartLink",tokenize:wWe,resolveAll:CWe.resolveAll};function wWe(e,t,n){var r=this;return i;function i(o){return e.enter("labelLink"),e.enter("labelMarker"),e.consume(o),e.exit("labelMarker"),e.exit("labelLink"),a}function a(o){return o===94&&"_hiddenFootnoteSupport"in r.parser.constructs?n(o):t(o)}}var bWe=BWe,vWe=Qi,KWe={name:"lineEnding",tokenize:QWe};function QWe(e,t){return n;function n(r){return e.enter("lineEnding"),e.consume(r),e.exit("lineEnding"),vWe(e,t,"linePrefix")}}var WWe=KWe,yWe=ei,FWe=Cu,EWe=Qi,RWe={name:"thematicBreak",tokenize:SWe};function SWe(e,t,n){var r=0,i;return a;function a(s){return e.enter("thematicBreak"),i=s,o(s)}function o(s){return s===i?(e.enter("thematicBreakSequence"),l(s)):FWe(s)?EWe(e,o,"whitespace")(s):r<3||s!==null&&!yWe(s)?n(s):(e.exit("thematicBreak"),t(s))}function l(s){return s===i?(e.consume(s),r++,l):(e.exit("thematicBreakSequence"),o(s))}}var DO=RWe,pN=yO,I9=Cu,U9=v3,xWe=AO,kB=Qi,NO=b3,GWe=DO,ZO={name:"list",tokenize:NWe,continuation:{tokenize:ZWe},exit:XWe},kWe={tokenize:LWe,partial:!0},DWe={tokenize:HWe,partial:!0};function NWe(e,t,n){var r=this,i=U9(r.events,"linePrefix"),a=0;return o;function o(g){var h=r.containerState.type||(g===42||g===43||g===45?"listUnordered":"listOrdered");if(h==="listUnordered"?!r.containerState.marker||g===r.containerState.marker:pN(g)){if(r.containerState.type||(r.containerState.type=h,e.enter(h,{_container:!0})),h==="listUnordered")return e.enter("listItemPrefix"),g===42||g===45?e.check(GWe,n,s)(g):s(g);if(!r.interrupt||g===49)return e.enter("listItemPrefix"),e.enter("listItemValue"),l(g)}return n(g)}function l(g){return pN(g)&&++a<10?(e.consume(g),l):(!r.interrupt||a<2)&&(r.containerState.marker?g===r.containerState.marker:g===41||g===46)?(e.exit("listItemValue"),s(g)):n(g)}function s(g){return e.enter("listItemMarker"),e.consume(g),e.exit("listItemMarker"),r.containerState.marker=r.containerState.marker||g,e.check(NO,r.interrupt?n:u,e.attempt(kWe,d,c))}function u(g){return r.containerState.initialBlankLine=!0,i++,d(g)}function c(g){return I9(g)?(e.enter("listItemPrefixWhitespace"),e.consume(g),e.exit("listItemPrefixWhitespace"),d):n(g)}function d(g){return r.containerState.size=i+xWe(r.sliceStream(e.exit("listItemPrefix"))),t(g)}}function ZWe(e,t,n){var r=this;return r.containerState._closeFlow=void 0,e.check(NO,i,a);function i(l){return r.containerState.furtherBlankLines=r.containerState.furtherBlankLines||r.containerState.initialBlankLine,kB(e,t,"listItemIndent",r.containerState.size+1)(l)}function a(l){return r.containerState.furtherBlankLines||!I9(l)?(r.containerState.furtherBlankLines=r.containerState.initialBlankLine=void 0,o(l)):(r.containerState.furtherBlankLines=r.containerState.initialBlankLine=void 0,e.attempt(DWe,t,o)(l))}function o(l){return r.containerState._closeFlow=!0,r.interrupt=void 0,kB(e,e.attempt(ZO,t,n),"linePrefix",r.parser.constructs.disable.null.indexOf("codeIndented")>-1?void 0:4)(l)}}function HWe(e,t,n){var r=this;return kB(e,i,"listItemIndent",r.containerState.size+1);function i(a){return U9(r.events,"listItemIndent")===r.containerState.size?t(a):n(a)}}function XWe(e){e.exit(this.containerState.type)}function LWe(e,t,n){var r=this;return kB(e,i,"listItemPrefixWhitespace",r.parser.constructs.disable.null.indexOf("codeIndented")>-1?void 0:4+1);function i(a){return I9(a)||!U9(r.events,"listItemPrefixWhitespace")?n(a):t(a)}}var MWe=ZO,TWe=ei,RK=V1,VWe=Qi,YWe={name:"setextUnderline",tokenize:UWe,resolveTo:IWe};function IWe(e,t){for(var n=e.length,r,i,a,o;n--;)if(e[n][0]==="enter"){if(e[n][1].type==="content"){r=n;break}e[n][1].type==="paragraph"&&(i=n)}else e[n][1].type==="content"&&e.splice(n,1),!a&&e[n][1].type==="definition"&&(a=n);return o={type:"setextHeading",start:RK(e[i][1].start),end:RK(e[e.length-1][1].end)},e[i][1].type="setextHeadingText",a?(e.splice(i,0,["enter",o,t]),e.splice(a+1,0,["exit",e[r][1],t]),e[r][1].end=RK(e[a][1].end)):e[r][1]=o,e.push(["exit",o,t]),e}function UWe(e,t,n){for(var r=this,i=r.events.length,a,o;i--;)if(r.events[i][1].type!=="lineEnding"&&r.events[i][1].type!=="linePrefix"&&r.events[i][1].type!=="content"){o=r.events[i][1].type==="paragraph";break}return l;function l(c){return!r.lazy&&(r.interrupt||o)?(e.enter("setextHeadingLine"),e.enter("setextHeadingLineSequence"),a=c,s(c)):n(c)}function s(c){return c===a?(e.consume(c),s):(e.exit("setextHeadingLineSequence"),VWe(e,u,"lineSuffix")(c))}function u(c){return c===null||TWe(c)?(e.exit("setextHeadingLine"),t(c)):n(c)}}var OWe=YWe;Object.defineProperty(fs,"__esModule",{value:!0});var JWe=Y1,dF=qve,zWe=pKe,PWe=CKe,HO=WKe,XO=MKe,gN=UKe,SK=_Ke,jWe=nQe,_We=KQe,$We=FQe,qWe=NQe,eye=JQe,tye=_Qe,nye=Y9,rye=AWe,iye=bWe,xK=WWe,Ma=MWe,hN=OWe,GK=DO,aye={42:Ma,43:Ma,45:Ma,48:Ma,49:Ma,50:Ma,51:Ma,52:Ma,53:Ma,54:Ma,55:Ma,56:Ma,57:Ma,62:PWe},oye={91:_We},lye={"-2":SK,"-1":SK,32:SK},sye={35:qWe,42:GK,45:[hN,GK],60:eye,61:hN,95:GK,96:gN,126:gN},uye={38:XO,92:HO},cye={"-5":xK,"-4":xK,"-3":xK,33:rye,38:XO,42:dF,60:[zWe,tye],91:iye,92:[$We,HO],93:nye,95:dF,96:jWe},dye={null:[dF,JWe.resolver]},pye={null:[]};fs.contentInitial=oye;fs.disable=pye;fs.document=aye;fs.flow=sye;fs.flowInitial=lye;fs.insideSpan=dye;fs.string=uye;fs.text=cye;var gye=Z9,hye=H9,fye=X9,fN=Y1,mye=dve,Aye=Eve,Cye=L9,Bye=fs;function wye(e){var t=e||{},n={defined:[],constructs:mye([Bye].concat(Cye(t.extensions))),content:r(gye),document:r(hye),flow:r(fye),string:r(fN.string),text:r(fN.text)};return n;function r(i){return a;function a(o){return Aye(n,i,o)}}}var bye=wye,mN=/[\0\t\n\r]/g;function vye(){var e=!0,t=1,n="",r;return i;function i(a,o,l){var s=[],u,c,d,g,h;for(a=n+a.toString(o),d=0,n="",e&&(a.charCodeAt(0)===65279&&d++,e=void 0);d-1&&(V.call(this,ae),z.call(this,ae))}function te(){o("atHardBreak",!0)}function J(){var ae=this.resume();this.stack[this.stack.length-1].value=ae}function I(){var ae=this.resume();this.stack[this.stack.length-1].value=ae}function se(){var ae=this.resume();this.stack[this.stack.length-1].value=ae}function Z(){var ae=this.stack[this.stack.length-1];l("inReference")?(ae.type+="Reference",ae.referenceType=l("referenceType")||"shortcut",delete ae.url,delete ae.title):(delete ae.identifier,delete ae.label,delete ae.referenceType),o("referenceType")}function S(){var ae=this.stack[this.stack.length-1];l("inReference")?(ae.type+="Reference",ae.referenceType=l("referenceType")||"shortcut",delete ae.url,delete ae.title):(delete ae.identifier,delete ae.label,delete ae.referenceType),o("referenceType")}function q(ae){this.stack[this.stack.length-2].identifier=kK(this.sliceSerialize(ae)).toLowerCase()}function T(){var ae=this.stack[this.stack.length-1],xe=this.resume();this.stack[this.stack.length-1].label=xe,o("inReference",!0),this.stack[this.stack.length-1].type==="link"?this.stack[this.stack.length-1].children=ae.children:this.stack[this.stack.length-1].alt=xe}function ue(){var ae=this.resume();this.stack[this.stack.length-1].url=ae}function fe(){var ae=this.resume();this.stack[this.stack.length-1].title=ae}function _(){o("inReference")}function Ze(){o("referenceType","collapsed")}function ve(ae){var xe=this.resume();this.stack[this.stack.length-1].label=xe,this.stack[this.stack.length-1].identifier=kK(this.sliceSerialize(ae)).toLowerCase(),o("referenceType","full")}function it(ae){o("characterReferenceType",ae.type)}function et(ae){var xe=this.sliceSerialize(ae),nt=l("characterReferenceType"),ft,Bt;nt?(ft=Sye(xe,nt==="characterReferenceMarkerNumeric"?10:16),o("characterReferenceType")):ft=Dye(xe),Bt=this.stack.pop(),Bt.value+=ft,Bt.position.end=s(ae.end)}function ot(ae){z.call(this,ae),this.stack[this.stack.length-1].url=this.sliceSerialize(ae)}function Oe(ae){z.call(this,ae),this.stack[this.stack.length-1].url="mailto:"+this.sliceSerialize(ae)}function tt(){return{type:"blockquote",children:[]}}function st(){return{type:"code",lang:null,meta:null,value:""}}function pt(){return{type:"inlineCode",value:""}}function ht(){return{type:"definition",identifier:"",label:null,title:null,url:""}}function lt(){return{type:"emphasis",children:[]}}function P(){return{type:"heading",depth:void 0,children:[]}}function le(){return{type:"break"}}function me(){return{type:"html",value:""}}function Re(){return{type:"image",title:null,url:"",alt:null}}function Qe(){return{type:"link",title:null,url:"",children:[]}}function We(ae){return{type:"list",ordered:ae.type==="listOrdered",start:null,spread:ae._spread,children:[]}}function Ee(ae){return{type:"listItem",spread:ae._spread,checked:null,children:[]}}function Ie(){return{type:"paragraph",children:[]}}function Ce(){return{type:"strong",children:[]}}function de(){return{type:"text",value:""}}function we(){return{type:"thematicBreak"}}}function Hye(e,t){for(var n=-1;++n":""))+")"),g;function g(){var h=u.concat(l),m=[],A,B;if((!t||a(l,s,u[u.length-1]||null))&&(m=tFe(n(l,u)),m[0]===pF))return m;if(l.children&&m[0]!==VO)for(B=(r?l.children.length:-1)+i;B>-1&&B":""))+")"),g;function g(){var h=u.concat(l),m=[],A,B;if((!t||a(l,s,u[u.length-1]||null))&&(m=CFe(n(l,u)),m[0]===gF))return m;if(l.children&&m[0]!==PO)for(B=(r?l.children.length:-1)+i;B>-1&&B-1?d=o:d=l.unknownHandler,(typeof d=="function"?d:r)(l,s,u)}function a(l){var s=l.data||{};return n.call(s,"hName")||n.call(s,"hProperties")||n.call(s,"hChildren")?!1:"value"in l}function o(l,s){var u;return s.children?(u=Object.assign({},s),u.children=t(l,s),u):s}return NK}var qO=EFe;function EFe(e,t){return e(t,"hr")}var dm=RFe,ZK=jo;function RFe(e,t){var n=[],r=-1,i=e.length;for(t&&n.push(ZK("text",` +`));++r0&&n.push(ZK("text",` +`)),n}var eJ=GFe,SFe=dm,xFe=Ra();function GFe(e,t){var n={},r=t.ordered?"ol":"ul",i,a=-1,o;for(typeof t.start=="number"&&t.start!==1&&(n.start=t.start),i=xFe(e,t),o=i.length;++a"u"&&(n=!0),l=d5e(t),r=0,i=e.length;r=55296&&a<=57343){if(a>=55296&&a<=56319&&r+1=56320&&o<=57343)){s+=encodeURIComponent(e[r]+e[r+1]),r++;continue}s+="%EF%BF%BD";continue}s+=encodeURIComponent(e[r])}return s}S3.defaultChars=";/?:@&=+$,-_.!~*'()#";S3.componentChars="-_.!~*'()";var x3=S3,nJ=g5e,HK=jo,p5e=Ra();function g5e(e,t){var n=t.referenceType,r="]",i,a,o;return n==="collapsed"?r+="[]":n==="full"&&(r+="["+(t.label||t.identifier)+"]"),t.type==="imageReference"?HK("text","!["+t.alt+r):(i=p5e(e,t),a=i[0],a&&a.type==="text"?a.value="["+a.value:i.unshift(HK("text","[")),o=i[i.length-1],o&&o.type==="text"?o.value+=r:i.push(HK("text",r)),i)}var h5e=A5e,f5e=x3,m5e=nJ;function A5e(e,t){var n=e.definition(t.identifier),r;return n?(r={src:f5e(n.url||""),alt:t.alt},n.title!==null&&n.title!==void 0&&(r.title=n.title),e(t,"img",r)):m5e(e,t)}var C5e=x3,B5e=w5e;function w5e(e,t){var n={src:C5e(t.url),alt:t.alt};return t.title!==null&&t.title!==void 0&&(n.title=t.title),e(t,"img",n)}var b5e=K5e,v5e=jo;function K5e(e,t){var n=t.value.replace(/\r?\n|\r/g," ");return e(t,"code",[v5e("text",n)])}var Q5e=E5e,W5e=x3,y5e=nJ,F5e=Ra();function E5e(e,t){var n=e.definition(t.identifier),r;return n?(r={href:W5e(n.url||"")},n.title!==null&&n.title!==void 0&&(r.title=n.title),e(t,"a",r,F5e(e,t))):y5e(e,t)}var R5e=x3,S5e=Ra(),x5e=G5e;function G5e(e,t){var n={href:R5e(t.url)};return t.title!==null&&t.title!==void 0&&(n.title=t.title),e(t,"a",n,S5e(e,t))}var k5e=N5e,XK=jo,D5e=Ra();function N5e(e,t,n){var r=D5e(e,t),i=r[0],a=n?Z5e(n):rJ(t),o={},l=[],s,u,c;for(typeof t.checked=="boolean"&&((!i||i.tagName!=="p")&&(i=e(null,"p",[]),r.unshift(i)),i.children.length>0&&i.children.unshift(XK("text"," ")),i.children.unshift(e(null,"input",{type:"checkbox",checked:t.checked,disabled:!0})),o.className=["task-list-item"]),s=r.length,u=-1;++u1}var H5e=L5e,X5e=Ra();function L5e(e,t){return e(t,"p",X5e(e,t))}var M5e=I5e,T5e=jo,V5e=dm,Y5e=Ra();function I5e(e,t){return e.augment(t,T5e("root",V5e(Y5e(e,t))))}var U5e=J5e,O5e=Ra();function J5e(e,t){return e(t,"strong",O5e(e,t))}var z5e=j5e,wN=UO,u2=dm,P5e=Ra();function j5e(e,t){for(var n=t.children,r=n.length,i=t.align||[],a=i.length,o=[],l,s,u,c,d;r--;){for(s=n[r].children,c=r===0?"th":"td",l=a||s.length,u=[];l--;)d=s[l],u[l]=e(d,c,{align:i[l]},d?P5e(e,d):[]);o[r]=e(n[r],"tr",u2(u,!0))}return e(t,"table",u2([e(o[0].position,"thead",u2([o[0]],!0))].concat(o[1]?e({start:wN.start(o[1]),end:wN.end(o[o.length-1])},"tbody",u2(o.slice(1),!0)):[]),!0))}var _5e=q5e,$5e=jo;function q5e(e,t){return e.augment(t,$5e("text",String(t.value).replace(/[ \t]*(\r?\n|\r)[ \t]*/g,"$1")))}var eEe={blockquote:XFe,break:VFe,code:UFe,delete:zFe,emphasis:_Fe,footnoteReference:tJ,footnote:n5e,heading:a5e,html:s5e,imageReference:h5e,image:B5e,inlineCode:b5e,linkReference:Q5e,link:x5e,listItem:k5e,list:eJ,paragraph:H5e,root:M5e,strong:U5e,table:z5e,text:_5e,thematicBreak:qO,toml:c2,yaml:c2,definition:c2,footnoteDefinition:c2};function c2(){return null}var tEe=dEe,nEe=jo,rEe=nFe,bN=UO,iEe=oFe,aEe=QFe,oEe=$O(),lEe=kFe,sEe=eEe,uEe={}.hasOwnProperty,vN=!1;function cEe(e,t){var n=t||{};n.allowDangerousHTML!==void 0&&!vN&&(vN=!0,console.warn("mdast-util-to-hast: deprecation: `allowDangerousHTML` is nonstandard, use `allowDangerousHtml` instead"));var r=n.allowDangerousHtml||n.allowDangerousHTML,i={};return o.dangerous=r,o.definition=aEe(e),o.footnoteById=i,o.footnoteOrder=[],o.augment=a,o.handlers=Object.assign({},sEe,n.handlers),o.unknownHandler=n.unknownHandler,o.passThrough=n.passThrough,rEe(e,"footnoteDefinition",l),o;function a(s,u){var c,d;return s&&s.data&&(c=s.data,c.hName&&(u.type!=="element"&&(u={type:"element",tagName:"",properties:{},children:[]}),u.tagName=c.hName),u.type==="element"&&c.hProperties&&(u.properties=Object.assign({},u.properties,c.hProperties)),u.children&&c.hChildren&&(u.children=c.hChildren)),d=s&&s.position?s:{position:s},iEe(d)||(u.position={start:bN.start(d),end:bN.end(d)}),u}function o(s,u,c,d){return d==null&&typeof c=="object"&&"length"in c&&(d=c,c={}),a(s,{type:"element",tagName:u,properties:c||{},children:d||[]})}function l(s){var u=String(s.identifier).toUpperCase();uEe.call(i,u)||(i[u]=s)}}function dEe(e,t){var n=cEe(e,t),r=oEe(n,e),i=lEe(n);return i&&(r.children=r.children.concat(nEe("text",` +`),i)),r}var pEe=tEe,iJ=pEe,gEe=hEe;function hEe(e,t){return e&&!e.process&&(t=e,e=null),e?fEe(e,t):mEe(t)}function fEe(e,t){return n;function n(r,i,a){e.run(iJ(r,t),i,o);function o(l){a(l)}}}function mEe(e){return t;function t(n){return iJ(n,e)}}const AEe=Fl(gEe);var CEe=wEe,BEe=Object.prototype.hasOwnProperty;function wEe(){for(var e={},t=0;t4&&n.slice(0,4)===j9&&p9e.test(t)&&(t.charAt(4)==="-"?r=f9e(t):t=m9e(t),i=u9e),new i(r,t))}function f9e(e){var t=e.slice(5).replace(wJ,C9e);return j9+t.charAt(0).toUpperCase()+t.slice(1)}function m9e(e){var t=e.slice(4);return wJ.test(t)?e:(t=t.replace(g9e,A9e),t.charAt(0)!=="-"&&(t="-"+t),j9+t)}function A9e(e){return"-"+e.toLowerCase()}function C9e(e){return e.charAt(1).toUpperCase()}const B9e="classID",w9e="datatype",b9e="itemID",v9e="strokeDasharray",K9e="strokeDashoffset",Q9e="strokeLinecap",W9e="strokeLinejoin",y9e="strokeMiterlimit",F9e="typeof",E9e="xlinkActuate",R9e="xlinkArcrole",S9e="xlinkHref",x9e="xlinkRole",G9e="xlinkShow",k9e="xlinkTitle",D9e="xlinkType",N9e="xmlnsXlink",Z9e={classId:B9e,dataType:w9e,itemId:b9e,strokeDashArray:v9e,strokeDashOffset:K9e,strokeLineCap:Q9e,strokeLineJoin:W9e,strokeMiterLimit:y9e,typeOf:F9e,xLinkActuate:E9e,xLinkArcRole:R9e,xLinkHref:S9e,xLinkRole:x9e,xLinkShow:G9e,xLinkTitle:k9e,xLinkType:D9e,xmlnsXLink:N9e};var _9={};_9.parse=L9e;_9.stringify=M9e;var EN="",H9e=" ",X9e=/[ \t\n\r\f]+/g;function L9e(e){var t=String(e||EN).trim();return t===EN?[]:t.split(X9e)}function M9e(e){return e.join(H9e).trim()}var $9={};$9.parse=T9e;$9.stringify=V9e;var hF=",",RN=" ",uh="";function T9e(e){for(var t=[],n=String(e||uh),r=n.indexOf(hF),i=0,a=!1,o;!a;)r===-1&&(r=n.length,a=!0),o=n.slice(i,r).trim(),(o||!a)&&t.push(o),i=r+1,r=n.indexOf(hF,i);return t}function V9e(e,t){var n=t||{},r=n.padLeft===!1?uh:RN,i=n.padRight?RN:uh;return e[e.length-1]===uh&&(e=e.concat(uh)),e.join(i+hF+r).trim()}var SN=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,Y9e=/\n/g,I9e=/^\s*/,U9e=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,O9e=/^:\s*/,J9e=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,z9e=/^[;\s]*/,P9e=/^\s+|\s+$/g,j9e=` +`,xN="/",GN="*",C0="",_9e="comment",$9e="declaration",q9e=function(e,t){if(typeof e!="string")throw new TypeError("First argument must be a string");if(!e)return[];t=t||{};var n=1,r=1;function i(m){var A=m.match(Y9e);A&&(n+=A.length);var B=m.lastIndexOf(j9e);r=~B?m.length-B:r+m.length}function a(){var m={line:n,column:r};return function(A){return A.position=new o(m),u(),A}}function o(m){this.start=m,this.end={line:n,column:r},this.source=t.source}o.prototype.content=e;function l(m){var A=new Error(t.source+":"+n+":"+r+": "+m);if(A.reason=m,A.filename=t.source,A.line=n,A.column=r,A.source=e,!t.silent)throw A}function s(m){var A=m.exec(e);if(A){var B=A[0];return i(B),e=e.slice(B.length),A}}function u(){s(I9e)}function c(m){var A;for(m=m||[];A=d();)A!==!1&&m.push(A);return m}function d(){var m=a();if(!(xN!=e.charAt(0)||GN!=e.charAt(1))){for(var A=2;C0!=e.charAt(A)&&(GN!=e.charAt(A)||xN!=e.charAt(A+1));)++A;if(A+=2,C0===e.charAt(A-1))return l("End of comment missing");var B=e.slice(2,A-2);return r+=2,i(B),e=e.slice(A),r+=2,m({type:_9e,comment:B})}}function g(){var m=a(),A=s(U9e);if(A){if(d(),!s(O9e))return l("property missing ':'");var B=s(J9e),C=m({type:$9e,property:kN(A[0].replace(SN,C0)),value:B?kN(B[0].replace(SN,C0)):C0});return s(z9e),C}}function h(){var m=[];c(m);for(var A;A=g();)A!==!1&&(m.push(A),c(m));return m}return u(),h()};function kN(e){return e?e.replace(P9e,C0):C0}var eRe=q9e;function tRe(e,t){var n=null;if(!e||typeof e!="string")return n;for(var r,i=eRe(e),a=typeof t=="function",o,l,s=0,u=i.length;su&&du&&(u=c):c&&(u!==void 0&&u>-1&&s.push(` +`.repeat(u)||" "),u=-1,s.push(c))}return s.join("")}function EJ(e,t,n){return e.type==="element"?c8e(e,t,n):e.type==="text"?n.whitespace==="normal"?RJ(e,n):d8e(e):[]}function c8e(e,t,n){const r=SJ(e,n),i=e.children||[];let a=-1,o=[];if(u8e(e))return o;let l,s;for(AF(e)||LN(e)&&NN(t,e,LN)?s=` +`:s8e(e)?(l=2,s=2):FJ(e)&&(l=1,s=1);++a]+>",o="(?!struct)("+r+"|"+t.optional(i)+"[a-zA-Z_]\\w*"+t.optional(a)+")",l={className:"type",begin:"\\b[a-z\\d_]*_t\\b"},s="\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)",u={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'("+s+"|.)",end:"'",illegal:"."},e.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},c={className:"number",variants:[{begin:"\\b(0b[01']+)"},{begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)"},{begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"}],relevance:0},d={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},e.inherit(u,{className:"string"}),{className:"string",begin:/<.*?>/},n,e.C_BLOCK_COMMENT_MODE]},g={className:"title",begin:t.optional(i)+e.IDENT_RE,relevance:0},h=t.optional(i)+e.IDENT_RE+"\\s*\\(",m=["alignas","alignof","and","and_eq","asm","atomic_cancel","atomic_commit","atomic_noexcept","auto","bitand","bitor","break","case","catch","class","co_await","co_return","co_yield","compl","concept","const_cast|10","consteval","constexpr","constinit","continue","decltype","default","delete","do","dynamic_cast|10","else","enum","explicit","export","extern","false","final","for","friend","goto","if","import","inline","module","mutable","namespace","new","noexcept","not","not_eq","nullptr","operator","or","or_eq","override","private","protected","public","reflexpr","register","reinterpret_cast|10","requires","return","sizeof","static_assert","static_cast|10","struct","switch","synchronized","template","this","thread_local","throw","transaction_safe","transaction_safe_dynamic","true","try","typedef","typeid","typename","union","using","virtual","volatile","while","xor","xor_eq"],A=["bool","char","char16_t","char32_t","char8_t","double","float","int","long","short","void","wchar_t","unsigned","signed","const","static"],B=["any","auto_ptr","barrier","binary_semaphore","bitset","complex","condition_variable","condition_variable_any","counting_semaphore","deque","false_type","future","imaginary","initializer_list","istringstream","jthread","latch","lock_guard","multimap","multiset","mutex","optional","ostringstream","packaged_task","pair","promise","priority_queue","queue","recursive_mutex","recursive_timed_mutex","scoped_lock","set","shared_future","shared_lock","shared_mutex","shared_timed_mutex","shared_ptr","stack","string_view","stringstream","timed_mutex","thread","true_type","tuple","unique_lock","unique_ptr","unordered_map","unordered_multimap","unordered_multiset","unordered_set","variant","vector","weak_ptr","wstring","wstring_view"],C=["abort","abs","acos","apply","as_const","asin","atan","atan2","calloc","ceil","cerr","cin","clog","cos","cosh","cout","declval","endl","exchange","exit","exp","fabs","floor","fmod","forward","fprintf","fputs","free","frexp","fscanf","future","invoke","isalnum","isalpha","iscntrl","isdigit","isgraph","islower","isprint","ispunct","isspace","isupper","isxdigit","labs","launder","ldexp","log","log10","make_pair","make_shared","make_shared_for_overwrite","make_tuple","make_unique","malloc","memchr","memcmp","memcpy","memset","modf","move","pow","printf","putchar","puts","realloc","scanf","sin","sinh","snprintf","sprintf","sqrt","sscanf","std","stderr","stdin","stdout","strcat","strchr","strcmp","strcpy","strcspn","strlen","strncat","strncmp","strncpy","strpbrk","strrchr","strspn","strstr","swap","tan","tanh","terminate","to_underlying","tolower","toupper","vfprintf","visit","vprintf","vsprintf"],F={type:A,keyword:m,literal:["NULL","false","nullopt","nullptr","true"],built_in:["_Pragma"],_type_hints:B},K={className:"function.dispatch",relevance:0,keywords:{_hint:C},begin:t.concat(/\b/,/(?!decltype)/,/(?!if)/,/(?!for)/,/(?!switch)/,/(?!while)/,e.IDENT_RE,t.lookahead(/(<[^<>]+>|)\s*\(/))},y=[K,d,l,n,e.C_BLOCK_COMMENT_MODE,c,u],G={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:F,contains:y.concat([{begin:/\(/,end:/\)/,keywords:F,contains:y.concat(["self"]),relevance:0}]),relevance:0},X={className:"function",begin:"("+o+"[\\*&\\s]+)+"+h,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:F,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:r,keywords:F,relevance:0},{begin:h,returnBegin:!0,contains:[g],relevance:0},{begin:/::/,relevance:0},{begin:/:/,endsWithParent:!0,contains:[u,c]},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:F,relevance:0,contains:[n,e.C_BLOCK_COMMENT_MODE,u,c,l,{begin:/\(/,end:/\)/,keywords:F,relevance:0,contains:["self",n,e.C_BLOCK_COMMENT_MODE,u,c,l]}]},l,n,e.C_BLOCK_COMMENT_MODE,d]};return{name:"C++",aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:F,illegal:"",keywords:F,contains:["self",l]},{begin:e.IDENT_RE+"::",keywords:F},{match:[/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/],className:{1:"keyword",3:"title.class"}}])}}function A8e(e){const t={type:["boolean","byte","word","String"],built_in:["KeyboardController","MouseController","SoftwareSerial","EthernetServer","EthernetClient","LiquidCrystal","RobotControl","GSMVoiceCall","EthernetUDP","EsploraTFT","HttpClient","RobotMotor","WiFiClient","GSMScanner","FileSystem","Scheduler","GSMServer","YunClient","YunServer","IPAddress","GSMClient","GSMModem","Keyboard","Ethernet","Console","GSMBand","Esplora","Stepper","Process","WiFiUDP","GSM_SMS","Mailbox","USBHost","Firmata","PImage","Client","Server","GSMPIN","FileIO","Bridge","Serial","EEPROM","Stream","Mouse","Audio","Servo","File","Task","GPRS","WiFi","Wire","TFT","GSM","SPI","SD"],_hints:["setup","loop","runShellCommandAsynchronously","analogWriteResolution","retrieveCallingNumber","printFirmwareVersion","analogReadResolution","sendDigitalPortPair","noListenOnLocalhost","readJoystickButton","setFirmwareVersion","readJoystickSwitch","scrollDisplayRight","getVoiceCallStatus","scrollDisplayLeft","writeMicroseconds","delayMicroseconds","beginTransmission","getSignalStrength","runAsynchronously","getAsynchronously","listenOnLocalhost","getCurrentCarrier","readAccelerometer","messageAvailable","sendDigitalPorts","lineFollowConfig","countryNameWrite","runShellCommand","readStringUntil","rewindDirectory","readTemperature","setClockDivider","readLightSensor","endTransmission","analogReference","detachInterrupt","countryNameRead","attachInterrupt","encryptionType","readBytesUntil","robotNameWrite","readMicrophone","robotNameRead","cityNameWrite","userNameWrite","readJoystickY","readJoystickX","mouseReleased","openNextFile","scanNetworks","noInterrupts","digitalWrite","beginSpeaker","mousePressed","isActionDone","mouseDragged","displayLogos","noAutoscroll","addParameter","remoteNumber","getModifiers","keyboardRead","userNameRead","waitContinue","processInput","parseCommand","printVersion","readNetworks","writeMessage","blinkVersion","cityNameRead","readMessage","setDataMode","parsePacket","isListening","setBitOrder","beginPacket","isDirectory","motorsWrite","drawCompass","digitalRead","clearScreen","serialEvent","rightToLeft","setTextSize","leftToRight","requestFrom","keyReleased","compassRead","analogWrite","interrupts","WiFiServer","disconnect","playMelody","parseFloat","autoscroll","getPINUsed","setPINUsed","setTimeout","sendAnalog","readSlider","analogRead","beginWrite","createChar","motorsStop","keyPressed","tempoWrite","readButton","subnetMask","debugPrint","macAddress","writeGreen","randomSeed","attachGPRS","readString","sendString","remotePort","releaseAll","mouseMoved","background","getXChange","getYChange","answerCall","getResult","voiceCall","endPacket","constrain","getSocket","writeJSON","getButton","available","connected","findUntil","readBytes","exitValue","readGreen","writeBlue","startLoop","IPAddress","isPressed","sendSysex","pauseMode","gatewayIP","setCursor","getOemKey","tuneWrite","noDisplay","loadImage","switchPIN","onRequest","onReceive","changePIN","playFile","noBuffer","parseInt","overflow","checkPIN","knobRead","beginTFT","bitClear","updateIR","bitWrite","position","writeRGB","highByte","writeRed","setSpeed","readBlue","noStroke","remoteIP","transfer","shutdown","hangCall","beginSMS","endWrite","attached","maintain","noCursor","checkReg","checkPUK","shiftOut","isValid","shiftIn","pulseIn","connect","println","localIP","pinMode","getIMEI","display","noBlink","process","getBand","running","beginSD","drawBMP","lowByte","setBand","release","bitRead","prepare","pointTo","readRed","setMode","noFill","remove","listen","stroke","detach","attach","noTone","exists","buffer","height","bitSet","circle","config","cursor","random","IRread","setDNS","endSMS","getKey","micros","millis","begin","print","write","ready","flush","width","isPIN","blink","clear","press","mkdir","rmdir","close","point","yield","image","BSSID","click","delay","read","text","move","peek","beep","rect","line","open","seek","fill","size","turn","stop","home","find","step","tone","sqrt","RSSI","SSID","end","bit","tan","cos","sin","pow","map","abs","max","min","get","run","put"],literal:["DIGITAL_MESSAGE","FIRMATA_STRING","ANALOG_MESSAGE","REPORT_DIGITAL","REPORT_ANALOG","INPUT_PULLUP","SET_PIN_MODE","INTERNAL2V56","SYSTEM_RESET","LED_BUILTIN","INTERNAL1V1","SYSEX_START","INTERNAL","EXTERNAL","DEFAULT","OUTPUT","INPUT","HIGH","LOW"]},n=m8e(e),r=n.keywords;return r.type=[...r.type,...t.type],r.literal=[...r.literal,...t.literal],r.built_in=[...r.built_in,...t.built_in],r._hints=t._hints,n.name="Arduino",n.aliases=["ino"],n.supersetOf="cpp",n}function C8e(e){const t=e.regex,n={},r={begin:/\$\{/,end:/\}/,contains:["self",{begin:/:-/,contains:[n]}]};Object.assign(n,{className:"variable",variants:[{begin:t.concat(/\$[\w\d#@][\w\d_]*/,"(?![\\w\\d])(?![$])")},r]});const i={className:"subst",begin:/\$\(/,end:/\)/,contains:[e.BACKSLASH_ESCAPE]},a={begin:/<<-?\s*(?=\w+)/,starts:{contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,className:"string"})]}},o={className:"string",begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,n,i]};i.contains.push(o);const l={match:/\\"/},s={className:"string",begin:/'/,end:/'/},u={match:/\\'/},c={begin:/\$?\(\(/,end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},e.NUMBER_MODE,n]},d=["fish","bash","zsh","sh","csh","ksh","tcsh","dash","scsh"],g=e.SHEBANG({binary:`(${d.join("|")})`,relevance:10}),h={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0},m=["if","then","else","elif","fi","for","while","until","in","do","done","case","esac","function","select"],A=["true","false"],B={match:/(\/[a-z._-]+)+/},C=["break","cd","continue","eval","exec","exit","export","getopts","hash","pwd","readonly","return","shift","test","times","trap","umask","unset"],b=["alias","bind","builtin","caller","command","declare","echo","enable","help","let","local","logout","mapfile","printf","read","readarray","source","type","typeset","ulimit","unalias"],Q=["autoload","bg","bindkey","bye","cap","chdir","clone","comparguments","compcall","compctl","compdescribe","compfiles","compgroups","compquote","comptags","comptry","compvalues","dirs","disable","disown","echotc","echoti","emulate","fc","fg","float","functions","getcap","getln","history","integer","jobs","kill","limit","log","noglob","popd","print","pushd","pushln","rehash","sched","setcap","setopt","stat","suspend","ttyctl","unfunction","unhash","unlimit","unsetopt","vared","wait","whence","where","which","zcompile","zformat","zftp","zle","zmodload","zparseopts","zprof","zpty","zregexparse","zsocket","zstyle","ztcp"],F=["chcon","chgrp","chown","chmod","cp","dd","df","dir","dircolors","ln","ls","mkdir","mkfifo","mknod","mktemp","mv","realpath","rm","rmdir","shred","sync","touch","truncate","vdir","b2sum","base32","base64","cat","cksum","comm","csplit","cut","expand","fmt","fold","head","join","md5sum","nl","numfmt","od","paste","ptx","pr","sha1sum","sha224sum","sha256sum","sha384sum","sha512sum","shuf","sort","split","sum","tac","tail","tr","tsort","unexpand","uniq","wc","arch","basename","chroot","date","dirname","du","echo","env","expr","factor","groups","hostid","id","link","logname","nice","nohup","nproc","pathchk","pinky","printenv","printf","pwd","readlink","runcon","seq","sleep","stat","stdbuf","stty","tee","test","timeout","tty","uname","unlink","uptime","users","who","whoami","yes"];return{name:"Bash",aliases:["sh"],keywords:{$pattern:/\b[a-z][a-z0-9._-]+\b/,keyword:m,literal:A,built_in:[...C,...b,"set","shopt",...Q,...F]},contains:[g,e.SHEBANG(),h,c,e.HASH_COMMENT_MODE,a,B,o,l,s,u,n]}}function B8e(e){const t=e.regex,n=e.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),r="decltype\\(auto\\)",i="[a-zA-Z_]\\w*::",a="<[^<>]+>",o="("+r+"|"+t.optional(i)+"[a-zA-Z_]\\w*"+t.optional(a)+")",l={className:"type",variants:[{begin:"\\b[a-z\\d_]*_t\\b"},{match:/\batomic_[a-z]{3,6}\b/}]},s="\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)",u={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'("+s+"|.)",end:"'",illegal:"."},e.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},c={className:"number",variants:[{begin:"\\b(0b[01']+)"},{begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)"},{begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"}],relevance:0},d={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},e.inherit(u,{className:"string"}),{className:"string",begin:/<.*?>/},n,e.C_BLOCK_COMMENT_MODE]},g={className:"title",begin:t.optional(i)+e.IDENT_RE,relevance:0},h=t.optional(i)+e.IDENT_RE+"\\s*\\(",B={keyword:["asm","auto","break","case","continue","default","do","else","enum","extern","for","fortran","goto","if","inline","register","restrict","return","sizeof","struct","switch","typedef","union","volatile","while","_Alignas","_Alignof","_Atomic","_Generic","_Noreturn","_Static_assert","_Thread_local","alignas","alignof","noreturn","static_assert","thread_local","_Pragma"],type:["float","double","signed","unsigned","int","short","long","char","void","_Bool","_Complex","_Imaginary","_Decimal32","_Decimal64","_Decimal128","const","static","complex","bool","imaginary"],literal:"true false NULL",built_in:"std string wstring cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set pair bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap priority_queue make_pair array shared_ptr abort terminate abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf future isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf endl initializer_list unique_ptr"},C=[d,l,n,e.C_BLOCK_COMMENT_MODE,c,u],b={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:B,contains:C.concat([{begin:/\(/,end:/\)/,keywords:B,contains:C.concat(["self"]),relevance:0}]),relevance:0},Q={begin:"("+o+"[\\*&\\s]+)+"+h,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:B,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:r,keywords:B,relevance:0},{begin:h,returnBegin:!0,contains:[e.inherit(g,{className:"title.function"})],relevance:0},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:B,relevance:0,contains:[n,e.C_BLOCK_COMMENT_MODE,u,c,l,{begin:/\(/,end:/\)/,keywords:B,relevance:0,contains:["self",n,e.C_BLOCK_COMMENT_MODE,u,c,l]}]},l,n,e.C_BLOCK_COMMENT_MODE,d]};return{name:"C",aliases:["h"],keywords:B,disableAutodetect:!0,illegal:"=]/,contains:[{beginKeywords:"final class struct"},e.TITLE_MODE]}]),exports:{preprocessor:d,strings:u,keywords:B}}}function w8e(e){const t=e.regex,n=e.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),r="decltype\\(auto\\)",i="[a-zA-Z_]\\w*::",a="<[^<>]+>",o="(?!struct)("+r+"|"+t.optional(i)+"[a-zA-Z_]\\w*"+t.optional(a)+")",l={className:"type",begin:"\\b[a-z\\d_]*_t\\b"},s="\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)",u={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'("+s+"|.)",end:"'",illegal:"."},e.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},c={className:"number",variants:[{begin:"\\b(0b[01']+)"},{begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)"},{begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"}],relevance:0},d={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{keyword:"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},e.inherit(u,{className:"string"}),{className:"string",begin:/<.*?>/},n,e.C_BLOCK_COMMENT_MODE]},g={className:"title",begin:t.optional(i)+e.IDENT_RE,relevance:0},h=t.optional(i)+e.IDENT_RE+"\\s*\\(",m=["alignas","alignof","and","and_eq","asm","atomic_cancel","atomic_commit","atomic_noexcept","auto","bitand","bitor","break","case","catch","class","co_await","co_return","co_yield","compl","concept","const_cast|10","consteval","constexpr","constinit","continue","decltype","default","delete","do","dynamic_cast|10","else","enum","explicit","export","extern","false","final","for","friend","goto","if","import","inline","module","mutable","namespace","new","noexcept","not","not_eq","nullptr","operator","or","or_eq","override","private","protected","public","reflexpr","register","reinterpret_cast|10","requires","return","sizeof","static_assert","static_cast|10","struct","switch","synchronized","template","this","thread_local","throw","transaction_safe","transaction_safe_dynamic","true","try","typedef","typeid","typename","union","using","virtual","volatile","while","xor","xor_eq"],A=["bool","char","char16_t","char32_t","char8_t","double","float","int","long","short","void","wchar_t","unsigned","signed","const","static"],B=["any","auto_ptr","barrier","binary_semaphore","bitset","complex","condition_variable","condition_variable_any","counting_semaphore","deque","false_type","future","imaginary","initializer_list","istringstream","jthread","latch","lock_guard","multimap","multiset","mutex","optional","ostringstream","packaged_task","pair","promise","priority_queue","queue","recursive_mutex","recursive_timed_mutex","scoped_lock","set","shared_future","shared_lock","shared_mutex","shared_timed_mutex","shared_ptr","stack","string_view","stringstream","timed_mutex","thread","true_type","tuple","unique_lock","unique_ptr","unordered_map","unordered_multimap","unordered_multiset","unordered_set","variant","vector","weak_ptr","wstring","wstring_view"],C=["abort","abs","acos","apply","as_const","asin","atan","atan2","calloc","ceil","cerr","cin","clog","cos","cosh","cout","declval","endl","exchange","exit","exp","fabs","floor","fmod","forward","fprintf","fputs","free","frexp","fscanf","future","invoke","isalnum","isalpha","iscntrl","isdigit","isgraph","islower","isprint","ispunct","isspace","isupper","isxdigit","labs","launder","ldexp","log","log10","make_pair","make_shared","make_shared_for_overwrite","make_tuple","make_unique","malloc","memchr","memcmp","memcpy","memset","modf","move","pow","printf","putchar","puts","realloc","scanf","sin","sinh","snprintf","sprintf","sqrt","sscanf","std","stderr","stdin","stdout","strcat","strchr","strcmp","strcpy","strcspn","strlen","strncat","strncmp","strncpy","strpbrk","strrchr","strspn","strstr","swap","tan","tanh","terminate","to_underlying","tolower","toupper","vfprintf","visit","vprintf","vsprintf"],F={type:A,keyword:m,literal:["NULL","false","nullopt","nullptr","true"],built_in:["_Pragma"],_type_hints:B},K={className:"function.dispatch",relevance:0,keywords:{_hint:C},begin:t.concat(/\b/,/(?!decltype)/,/(?!if)/,/(?!for)/,/(?!switch)/,/(?!while)/,e.IDENT_RE,t.lookahead(/(<[^<>]+>|)\s*\(/))},y=[K,d,l,n,e.C_BLOCK_COMMENT_MODE,c,u],G={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:F,contains:y.concat([{begin:/\(/,end:/\)/,keywords:F,contains:y.concat(["self"]),relevance:0}]),relevance:0},X={className:"function",begin:"("+o+"[\\*&\\s]+)+"+h,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:F,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:r,keywords:F,relevance:0},{begin:h,returnBegin:!0,contains:[g],relevance:0},{begin:/::/,relevance:0},{begin:/:/,endsWithParent:!0,contains:[u,c]},{relevance:0,match:/,/},{className:"params",begin:/\(/,end:/\)/,keywords:F,relevance:0,contains:[n,e.C_BLOCK_COMMENT_MODE,u,c,l,{begin:/\(/,end:/\)/,keywords:F,relevance:0,contains:["self",n,e.C_BLOCK_COMMENT_MODE,u,c,l]}]},l,n,e.C_BLOCK_COMMENT_MODE,d]};return{name:"C++",aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:F,illegal:"",keywords:F,contains:["self",l]},{begin:e.IDENT_RE+"::",keywords:F},{match:[/\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,/\s+/,/\w+/],className:{1:"keyword",3:"title.class"}}])}}function b8e(e){const t=["bool","byte","char","decimal","delegate","double","dynamic","enum","float","int","long","nint","nuint","object","sbyte","short","string","ulong","uint","ushort"],n=["public","private","protected","static","internal","protected","abstract","async","extern","override","unsafe","virtual","new","sealed","partial"],r=["default","false","null","true"],i=["abstract","as","base","break","case","catch","class","const","continue","do","else","event","explicit","extern","finally","fixed","for","foreach","goto","if","implicit","in","interface","internal","is","lock","namespace","new","operator","out","override","params","private","protected","public","readonly","record","ref","return","scoped","sealed","sizeof","stackalloc","static","struct","switch","this","throw","try","typeof","unchecked","unsafe","using","virtual","void","volatile","while"],a=["add","alias","and","ascending","async","await","by","descending","equals","from","get","global","group","init","into","join","let","nameof","not","notnull","on","or","orderby","partial","remove","select","set","unmanaged","value|0","var","when","where","with","yield"],o={keyword:i.concat(a),built_in:t,literal:r},l=e.inherit(e.TITLE_MODE,{begin:"[a-zA-Z](\\.?\\w)*"}),s={className:"number",variants:[{begin:"\\b(0b[01']+)"},{begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)(u|U|l|L|ul|UL|f|F|b|B)"},{begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"}],relevance:0},u={className:"string",begin:'@"',end:'"',contains:[{begin:'""'}]},c=e.inherit(u,{illegal:/\n/}),d={className:"subst",begin:/\{/,end:/\}/,keywords:o},g=e.inherit(d,{illegal:/\n/}),h={className:"string",begin:/\$"/,end:'"',illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/},e.BACKSLASH_ESCAPE,g]},m={className:"string",begin:/\$@"/,end:'"',contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},d]},A=e.inherit(m,{illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},g]});d.contains=[m,h,u,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,s,e.C_BLOCK_COMMENT_MODE],g.contains=[A,h,c,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,s,e.inherit(e.C_BLOCK_COMMENT_MODE,{illegal:/\n/})];const B={variants:[m,h,u,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},C={begin:"<",end:">",contains:[{beginKeywords:"in out"},l]},b=e.IDENT_RE+"(<"+e.IDENT_RE+"(\\s*,\\s*"+e.IDENT_RE+")*>)?(\\[\\])?",Q={begin:"@"+e.IDENT_RE,relevance:0};return{name:"C#",aliases:["cs","c#"],keywords:o,illegal:/::/,contains:[e.COMMENT("///","$",{returnBegin:!0,contains:[{className:"doctag",variants:[{begin:"///",relevance:0},{begin:""},{begin:""}]}]}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"meta",begin:"#",end:"$",keywords:{keyword:"if else elif endif define undef warning error line region endregion pragma checksum"}},B,s,{beginKeywords:"class interface",relevance:0,end:/[{;=]/,illegal:/[^\s:,]/,contains:[{beginKeywords:"where class"},l,C,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"namespace",relevance:0,end:/[{;=]/,illegal:/[^\s:]/,contains:[l,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"record",relevance:0,end:/[{;=]/,illegal:/[^\s:]/,contains:[l,C,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"meta",begin:"^\\s*\\[(?=[\\w])",excludeBegin:!0,end:"\\]",excludeEnd:!0,contains:[{className:"string",begin:/"/,end:/"/}]},{beginKeywords:"new return throw await else",relevance:0},{className:"function",begin:"("+b+"\\s+)+"+e.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0,end:/\s*[{;=]/,excludeEnd:!0,keywords:o,contains:[{beginKeywords:n.join(" "),relevance:0},{begin:e.IDENT_RE+"\\s*(<[^=]+>\\s*)?\\(",returnBegin:!0,contains:[e.TITLE_MODE,C],relevance:0},{match:/\(\)/},{className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:o,relevance:0,contains:[B,s,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},Q]}}const v8e=e=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}),K8e=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],Q8e=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"],W8e=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"],y8e=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"],F8e=["align-content","align-items","align-self","all","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","content","content-visibility","counter-increment","counter-reset","cue","cue-after","cue-before","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-smoothing","font-stretch","font-style","font-synthesis","font-variant","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","gap","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","inline-size","isolation","justify-content","left","letter-spacing","line-break","line-height","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-wrap","overflow-x","overflow-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","pause","pause-after","pause-before","perspective","perspective-origin","pointer-events","position","quotes","resize","rest","rest-after","rest-before","right","row-gap","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","speak","speak-as","src","tab-size","table-layout","text-align","text-align-all","text-align-last","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-transform","text-underline-position","top","transform","transform-box","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","z-index"].reverse();function E8e(e){const t=e.regex,n=v8e(e),r={begin:/-(webkit|moz|ms|o)-(?=[a-z])/},i="and or not only",a=/@-?\w[\w]*(-\w+)*/,o="[a-zA-Z-][a-zA-Z0-9_-]*",l=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE];return{name:"CSS",case_insensitive:!0,illegal:/[=|'\$]/,keywords:{keyframePosition:"from to"},classNameAliases:{keyframePosition:"selector-tag"},contains:[n.BLOCK_COMMENT,r,n.CSS_NUMBER_MODE,{className:"selector-id",begin:/#[A-Za-z0-9_-]+/,relevance:0},{className:"selector-class",begin:"\\."+o,relevance:0},n.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",variants:[{begin:":("+W8e.join("|")+")"},{begin:":(:)?("+y8e.join("|")+")"}]},n.CSS_VARIABLE,{className:"attribute",begin:"\\b("+F8e.join("|")+")\\b"},{begin:/:/,end:/[;}{]/,contains:[n.BLOCK_COMMENT,n.HEXCOLOR,n.IMPORTANT,n.CSS_NUMBER_MODE,...l,{begin:/(url|data-uri)\(/,end:/\)/,relevance:0,keywords:{built_in:"url data-uri"},contains:[...l,{className:"string",begin:/[^)]/,endsWithParent:!0,excludeEnd:!0}]},n.FUNCTION_DISPATCH]},{begin:t.lookahead(/@/),end:"[{;]",relevance:0,illegal:/:/,contains:[{className:"keyword",begin:a},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,keywords:{$pattern:/[a-z-]+/,keyword:i,attribute:Q8e.join(" ")},contains:[{begin:/[a-z-]+(?=:)/,className:"attribute"},...l,n.CSS_NUMBER_MODE]}]},{className:"selector-tag",begin:"\\b("+K8e.join("|")+")\\b"}]}}function R8e(e){const t=e.regex;return{name:"Diff",aliases:["patch"],contains:[{className:"meta",relevance:10,match:t.either(/^@@ +-\d+,\d+ +\+\d+,\d+ +@@/,/^\*\*\* +\d+,\d+ +\*\*\*\*$/,/^--- +\d+,\d+ +----$/)},{className:"comment",variants:[{begin:t.either(/Index: /,/^index/,/={3,}/,/^-{3}/,/^\*{3} /,/^\+{3}/,/^diff --git/),end:/$/},{match:/^\*{15}$/}]},{className:"addition",begin:/^\+/,end:/$/},{className:"deletion",begin:/^-/,end:/$/},{className:"addition",begin:/^!/,end:/$/}]}}function S8e(e){const a={keyword:["break","case","chan","const","continue","default","defer","else","fallthrough","for","func","go","goto","if","import","interface","map","package","range","return","select","struct","switch","type","var"],type:["bool","byte","complex64","complex128","error","float32","float64","int8","int16","int32","int64","string","uint8","uint16","uint32","uint64","int","uint","uintptr","rune"],literal:["true","false","iota","nil"],built_in:["append","cap","close","complex","copy","imag","len","make","new","panic","print","println","real","recover","delete"]};return{name:"Go",aliases:["golang"],keywords:a,illegal:"xJ(e,t,n-1))}function k8e(e){const t=e.regex,n="[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*",r=n+xJ("(?:<"+n+"~~~(?:\\s*,\\s*"+n+"~~~)*>)?",/~~~/g,2),s={keyword:["synchronized","abstract","private","var","static","if","const ","for","while","strictfp","finally","protected","import","native","final","void","enum","else","break","transient","catch","instanceof","volatile","case","assert","package","default","public","try","switch","continue","throws","protected","public","private","module","requires","exports","do","sealed","yield","permits"],literal:["false","true","null"],type:["char","boolean","long","float","int","byte","short","double"],built_in:["super","this"]},u={className:"meta",begin:"@"+n,contains:[{begin:/\(/,end:/\)/,contains:["self"]}]},c={className:"params",begin:/\(/,end:/\)/,keywords:s,relevance:0,contains:[e.C_BLOCK_COMMENT_MODE],endsParent:!0};return{name:"Java",aliases:["jsp"],keywords:s,illegal:/<\/|#/,contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/,relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]}),{begin:/import java\.[a-z]+\./,keywords:"import",relevance:2},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{begin:/"""/,end:/"""/,className:"string",contains:[e.BACKSLASH_ESCAPE]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{match:[/\b(?:class|interface|enum|extends|implements|new)/,/\s+/,n],className:{1:"keyword",3:"title.class"}},{match:/non-sealed/,scope:"keyword"},{begin:[t.concat(/(?!else)/,n),/\s+/,n,/\s+/,/=(?!=)/],className:{1:"type",3:"variable",5:"operator"}},{begin:[/record/,/\s+/,n],className:{1:"keyword",3:"title.class"},contains:[c,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"new throw return else",relevance:0},{begin:["(?:"+r+"\\s+)",e.UNDERSCORE_IDENT_RE,/\s*(?=\()/],className:{2:"title.function"},keywords:s,contains:[{className:"params",begin:/\(/,end:/\)/,keywords:s,relevance:0,contains:[u,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,MN,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},MN,u]}}const TN="[A-Za-z$_][0-9A-Za-z$_]*",D8e=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],N8e=["true","false","null","undefined","NaN","Infinity"],GJ=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],kJ=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],DJ=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],Z8e=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],H8e=[].concat(DJ,GJ,kJ);function X8e(e){const t=e.regex,n=(I,{after:se})=>{const Z="",end:""},a=/<[A-Za-z0-9\\._:-]+\s*\/>/,o={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(I,se)=>{const Z=I[0].length+I.index,S=I.input[Z];if(S==="<"||S===","){se.ignoreMatch();return}S===">"&&(n(I,{after:Z})||se.ignoreMatch());let q;const T=I.input.substring(Z);if(q=T.match(/^\s*=/)){se.ignoreMatch();return}if((q=T.match(/^\s+extends\s+/))&&q.index===0){se.ignoreMatch();return}}},l={$pattern:TN,keyword:D8e,literal:N8e,built_in:H8e,"variable.language":Z8e},s="[0-9](_?[0-9])*",u=`\\.(${s})`,c="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",d={className:"number",variants:[{begin:`(\\b(${c})((${u})|\\.)?|(${u}))[eE][+-]?(${s})\\b`},{begin:`\\b(${c})\\b((${u})\\b|\\.)?|(${u})\\b`},{begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{begin:"\\b0[0-7]+n?\\b"}],relevance:0},g={className:"subst",begin:"\\$\\{",end:"\\}",keywords:l,contains:[]},h={begin:"html`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,g],subLanguage:"xml"}},m={begin:"css`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,g],subLanguage:"css"}},A={begin:"gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,g],subLanguage:"graphql"}},B={className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,g]},b={className:"comment",variants:[e.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{begin:"(?=@[A-Za-z]+)",relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"},{className:"type",begin:"\\{",end:"\\}",excludeEnd:!0,excludeBegin:!0,relevance:0},{className:"variable",begin:r+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]},Q=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,h,m,A,B,{match:/\$\d+/},d];g.contains=Q.concat({begin:/\{/,end:/\}/,keywords:l,contains:["self"].concat(Q)});const F=[].concat(b,g.contains),K=F.concat([{begin:/\(/,end:/\)/,keywords:l,contains:["self"].concat(F)}]),y={className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:l,contains:K},G={variants:[{match:[/class/,/\s+/,r,/\s+/,/extends/,/\s+/,t.concat(r,"(",t.concat(/\./,r),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,r],scope:{1:"keyword",3:"title.class"}}]},X={relevance:0,match:t.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),className:"title.class",keywords:{_:[...GJ,...kJ]}},H={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},v={variants:[{match:[/function/,/\s+/,r,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[y],illegal:/%/},k={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function D(I){return t.concat("(?!",I.join("|"),")")}const V={match:t.concat(/\b/,D([...DJ,"super","import"]),r,t.lookahead(/\(/)),className:"title.function",relevance:0},z={begin:t.concat(/\./,t.lookahead(t.concat(r,/(?![0-9A-Za-z$_(])/))),end:r,excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},j={match:[/get|set/,/\s+/,r,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},y]},te="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+e.UNDERSCORE_IDENT_RE+")\\s*=>",J={match:[/const|var|let/,/\s+/,r,/\s*/,/=\s*/,/(async\s*)?/,t.lookahead(te)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[y]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:l,exports:{PARAMS_CONTAINS:K,CLASS_REFERENCE:X},illegal:/#(?![$_A-z])/,contains:[e.SHEBANG({label:"shebang",binary:"node",relevance:5}),H,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,h,m,A,B,b,{match:/\$\d+/},d,X,{className:"attr",begin:r+t.lookahead(":"),relevance:0},J,{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[b,e.REGEXP_MODE,{className:"function",begin:te,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:l,contains:K}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:i.begin,end:i.end},{match:a},{begin:o.begin,"on:begin":o.isTrulyOpeningTag,end:o.end}],subLanguage:"xml",contains:[{begin:o.begin,end:o.end,skip:!0,contains:["self"]}]}]},v,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+e.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[y,e.inherit(e.TITLE_MODE,{begin:r,className:"title.function"})]},{match:/\.\.\./,relevance:0},z,{match:"\\$"+r,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[y]},V,k,G,j,{match:/\$[(.]/}]}}function L8e(e){const t={className:"attr",begin:/"(\\.|[^\\"\r\n])*"(?=\s*:)/,relevance:1.01},n={match:/[{}[\],:]/,className:"punctuation",relevance:0},r=["true","false","null"],i={scope:"literal",beginKeywords:r.join(" ")};return{name:"JSON",keywords:{literal:r},contains:[t,n,e.QUOTE_STRING_MODE,i,e.C_NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE],illegal:"\\S"}}var sp="[0-9](_*[0-9])*",h2=`\\.(${sp})`,f2="[0-9a-fA-F](_*[0-9a-fA-F])*",M8e={className:"number",variants:[{begin:`(\\b(${sp})((${h2})|\\.)?|(${h2}))[eE][+-]?(${sp})[fFdD]?\\b`},{begin:`\\b(${sp})((${h2})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{begin:`(${h2})[fFdD]?\\b`},{begin:`\\b(${sp})[fFdD]\\b`},{begin:`\\b0[xX]((${f2})\\.?|(${f2})?\\.(${f2}))[pP][+-]?(${sp})[fFdD]?\\b`},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${f2})[lL]?\\b`},{begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}],relevance:0};function T8e(e){const t={keyword:"abstract as val var vararg get set class object open private protected public noinline crossinline dynamic final enum if else do while for when throw try catch finally import package is in fun override companion reified inline lateinit init interface annotation data sealed internal infix operator out by constructor super tailrec where const inner suspend typealias external expect actual",built_in:"Byte Short Char Int Long Boolean Float Double Void Unit Nothing",literal:"true false null"},n={className:"keyword",begin:/\b(break|continue|return|this)\b/,starts:{contains:[{className:"symbol",begin:/@\w+/}]}},r={className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"@"},i={className:"subst",begin:/\$\{/,end:/\}/,contains:[e.C_NUMBER_MODE]},a={className:"variable",begin:"\\$"+e.UNDERSCORE_IDENT_RE},o={className:"string",variants:[{begin:'"""',end:'"""(?=[^"])',contains:[a,i]},{begin:"'",end:"'",illegal:/\n/,contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"',illegal:/\n/,contains:[e.BACKSLASH_ESCAPE,a,i]}]};i.contains.push(o);const l={className:"meta",begin:"@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\s*:(?:\\s*"+e.UNDERSCORE_IDENT_RE+")?"},s={className:"meta",begin:"@"+e.UNDERSCORE_IDENT_RE,contains:[{begin:/\(/,end:/\)/,contains:[e.inherit(o,{className:"string"}),"self"]}]},u=M8e,c=e.COMMENT("/\\*","\\*/",{contains:[e.C_BLOCK_COMMENT_MODE]}),d={variants:[{className:"type",begin:e.UNDERSCORE_IDENT_RE},{begin:/\(/,end:/\)/,contains:[]}]},g=d;return g.variants[1].contains=[d],d.variants[1].contains=[g],{name:"Kotlin",aliases:["kt","kts"],keywords:t,contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"}]}),e.C_LINE_COMMENT_MODE,c,n,r,l,s,{className:"function",beginKeywords:"fun",end:"[(]|$",returnBegin:!0,excludeEnd:!0,keywords:t,relevance:5,contains:[{begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,contains:[e.UNDERSCORE_TITLE_MODE]},{className:"type",begin://,keywords:"reified",relevance:0},{className:"params",begin:/\(/,end:/\)/,endsParent:!0,keywords:t,relevance:0,contains:[{begin:/:/,end:/[=,\/]/,endsWithParent:!0,contains:[d,e.C_LINE_COMMENT_MODE,c],relevance:0},e.C_LINE_COMMENT_MODE,c,l,s,o,e.C_NUMBER_MODE]},c]},{begin:[/class|interface|trait/,/\s+/,e.UNDERSCORE_IDENT_RE],beginScope:{3:"title.class"},keywords:"class interface trait",end:/[:\{(]|$/,excludeEnd:!0,illegal:"extends implements",contains:[{beginKeywords:"public protected internal private constructor"},e.UNDERSCORE_TITLE_MODE,{className:"type",begin://,excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:/[,:]\s*/,end:/[<\(,){\s]|$/,excludeBegin:!0,returnEnd:!0},l,s]},o,{className:"meta",begin:"^#!/usr/bin/env",end:"$",illegal:` +`},u]}}const V8e=e=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}),Y8e=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],I8e=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"],NJ=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"],ZJ=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"],U8e=["align-content","align-items","align-self","all","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","content","content-visibility","counter-increment","counter-reset","cue","cue-after","cue-before","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-smoothing","font-stretch","font-style","font-synthesis","font-variant","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","gap","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","inline-size","isolation","justify-content","left","letter-spacing","line-break","line-height","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-wrap","overflow-x","overflow-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","pause","pause-after","pause-before","perspective","perspective-origin","pointer-events","position","quotes","resize","rest","rest-after","rest-before","right","row-gap","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","speak","speak-as","src","tab-size","table-layout","text-align","text-align-all","text-align-last","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-transform","text-underline-position","top","transform","transform-box","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","z-index"].reverse(),O8e=NJ.concat(ZJ);function J8e(e){const t=V8e(e),n=O8e,r="and or not only",i="[\\w-]+",a="("+i+"|@\\{"+i+"\\})",o=[],l=[],s=function(Q){return{className:"string",begin:"~?"+Q+".*?"+Q}},u=function(Q,F,K){return{className:Q,begin:F,relevance:K}},c={$pattern:/[a-z-]+/,keyword:r,attribute:I8e.join(" ")},d={begin:"\\(",end:"\\)",contains:l,keywords:c,relevance:0};l.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,s("'"),s('"'),t.CSS_NUMBER_MODE,{begin:"(url|data-uri)\\(",starts:{className:"string",end:"[\\)\\n]",excludeEnd:!0}},t.HEXCOLOR,d,u("variable","@@?"+i,10),u("variable","@\\{"+i+"\\}"),u("built_in","~?`[^`]*?`"),{className:"attribute",begin:i+"\\s*:",end:":",returnBegin:!0,excludeEnd:!0},t.IMPORTANT,{beginKeywords:"and not"},t.FUNCTION_DISPATCH);const g=l.concat({begin:/\{/,end:/\}/,contains:o}),h={beginKeywords:"when",endsWithParent:!0,contains:[{beginKeywords:"and not"}].concat(l)},m={begin:a+"\\s*:",returnBegin:!0,end:/[;}]/,relevance:0,contains:[{begin:/-(webkit|moz|ms|o)-/},t.CSS_VARIABLE,{className:"attribute",begin:"\\b("+U8e.join("|")+")\\b",end:/(?=:)/,starts:{endsWithParent:!0,illegal:"[<=$]",relevance:0,contains:l}}]},A={className:"keyword",begin:"@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\b",starts:{end:"[;{}]",keywords:c,returnEnd:!0,contains:l,relevance:0}},B={className:"variable",variants:[{begin:"@"+i+"\\s*:",relevance:15},{begin:"@"+i}],starts:{end:"[;}]",returnEnd:!0,contains:g}},C={variants:[{begin:"[\\.#:&\\[>]",end:"[;{}]"},{begin:a,end:/\{/}],returnBegin:!0,returnEnd:!0,illegal:`[<='$"]`,relevance:0,contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,h,u("keyword","all\\b"),u("variable","@\\{"+i+"\\}"),{begin:"\\b("+Y8e.join("|")+")\\b",className:"selector-tag"},t.CSS_NUMBER_MODE,u("selector-tag",a,0),u("selector-id","#"+a),u("selector-class","\\."+a,0),u("selector-tag","&",0),t.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",begin:":("+NJ.join("|")+")"},{className:"selector-pseudo",begin:":(:)?("+ZJ.join("|")+")"},{begin:/\(/,end:/\)/,relevance:0,contains:g},{begin:"!important"},t.FUNCTION_DISPATCH]},b={begin:i+`:(:)?(${n.join("|")})`,returnBegin:!0,contains:[C]};return o.push(e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,A,B,b,m,C,h,t.FUNCTION_DISPATCH),{name:"Less",case_insensitive:!0,illegal:`[=>'/<($"]`,contains:o}}function z8e(e){const t="\\[=*\\[",n="\\]=*\\]",r={begin:t,end:n,contains:["self"]},i=[e.COMMENT("--(?!"+t+")","$"),e.COMMENT("--"+t,n,{contains:[r],relevance:10})];return{name:"Lua",keywords:{$pattern:e.UNDERSCORE_IDENT_RE,literal:"true false nil",keyword:"and break do else elseif end for goto if in local not or repeat return then until while",built_in:"_G _ENV _VERSION __index __newindex __mode __call __metatable __tostring __len __gc __add __sub __mul __div __mod __pow __concat __unm __eq __lt __le assert collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring module next pairs pcall print rawequal rawget rawset require select setfenv setmetatable tonumber tostring type unpack xpcall arg self coroutine resume yield status wrap create running debug getupvalue debug sethook getmetatable gethook setmetatable setlocal traceback setfenv getinfo setupvalue getlocal getregistry getfenv io lines write close flush open output type read stderr stdin input stdout popen tmpfile math log max acos huge ldexp pi cos tanh pow deg tan cosh sinh random randomseed frexp ceil floor rad abs sqrt modf asin min mod fmod log10 atan2 exp sin atan os exit setlocale date getenv difftime remove time clock tmpname rename execute package preload loadlib loaded loaders cpath config path seeall string sub upper len gfind rep find match char dump gmatch reverse byte format gsub lower table setn insert getn foreachi maxn foreach concat sort remove"},contains:i.concat([{className:"function",beginKeywords:"function",end:"\\)",contains:[e.inherit(e.TITLE_MODE,{begin:"([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*"}),{className:"params",begin:"\\(",endsWithParent:!0,contains:i}].concat(i)},e.C_NUMBER_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"string",begin:t,end:n,contains:[r],relevance:5}])}}function P8e(e){const t={className:"variable",variants:[{begin:"\\$\\("+e.UNDERSCORE_IDENT_RE+"\\)",contains:[e.BACKSLASH_ESCAPE]},{begin:/\$[@%",subLanguage:"xml",relevance:0},r={begin:"^[-\\*]{3,}",end:"$"},i={className:"code",variants:[{begin:"(`{3,})[^`](.|\\n)*?\\1`*[ ]*"},{begin:"(~{3,})[^~](.|\\n)*?\\1~*[ ]*"},{begin:"```",end:"```+[ ]*$"},{begin:"~~~",end:"~~~+[ ]*$"},{begin:"`.+?`"},{begin:"(?=^( {4}|\\t))",contains:[{begin:"^( {4}|\\t)",end:"(\\n)$"}],relevance:0}]},a={className:"bullet",begin:"^[ ]*([*+-]|(\\d+\\.))(?=\\s+)",end:"\\s+",excludeEnd:!0},o={begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]},l=/[A-Za-z][A-Za-z0-9+.-]*/,s={variants:[{begin:/\[.+?\]\[.*?\]/,relevance:0},{begin:/\[.+?\]\(((data|javascript|mailto):|(?:http|ftp)s?:\/\/).*?\)/,relevance:2},{begin:t.concat(/\[.+?\]\(/,l,/:\/\/.*?\)/),relevance:2},{begin:/\[.+?\]\([./?&#].*?\)/,relevance:1},{begin:/\[.*?\]\(.*?\)/,relevance:0}],returnBegin:!0,contains:[{match:/\[(?=\])/},{className:"string",relevance:0,begin:"\\[",end:"\\]",excludeBegin:!0,returnEnd:!0},{className:"link",relevance:0,begin:"\\]\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0},{className:"symbol",relevance:0,begin:"\\]\\[",end:"\\]",excludeBegin:!0,excludeEnd:!0}]},u={className:"strong",contains:[],variants:[{begin:/_{2}(?!\s)/,end:/_{2}/},{begin:/\*{2}(?!\s)/,end:/\*{2}/}]},c={className:"emphasis",contains:[],variants:[{begin:/\*(?![*\s])/,end:/\*/},{begin:/_(?![_\s])/,end:/_/,relevance:0}]},d=e.inherit(u,{contains:[]}),g=e.inherit(c,{contains:[]});u.contains.push(g),c.contains.push(d);let h=[n,s];return[u,c,d,g].forEach(B=>{B.contains=B.contains.concat(h)}),h=h.concat(u,c),{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[{className:"section",variants:[{begin:"^#{1,6}",end:"$",contains:h},{begin:"(?=^.+?\\n[=-]{2,}$)",contains:[{begin:"^[=-]*$"},{begin:"^",end:"\\n",contains:h}]}]},n,a,u,c,{className:"quote",begin:"^>\\s+",contains:h,end:"$"},i,r,s,o]}}function _8e(e){const t={className:"built_in",begin:"\\b(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)\\w+"},n=/[a-zA-Z@][a-zA-Z0-9_]*/,l={"variable.language":["this","super"],$pattern:n,keyword:["while","export","sizeof","typedef","const","struct","for","union","volatile","static","mutable","if","do","return","goto","enum","else","break","extern","asm","case","default","register","explicit","typename","switch","continue","inline","readonly","assign","readwrite","self","@synchronized","id","typeof","nonatomic","IBOutlet","IBAction","strong","weak","copy","in","out","inout","bycopy","byref","oneway","__strong","__weak","__block","__autoreleasing","@private","@protected","@public","@try","@property","@end","@throw","@catch","@finally","@autoreleasepool","@synthesize","@dynamic","@selector","@optional","@required","@encode","@package","@import","@defs","@compatibility_alias","__bridge","__bridge_transfer","__bridge_retained","__bridge_retain","__covariant","__contravariant","__kindof","_Nonnull","_Nullable","_Null_unspecified","__FUNCTION__","__PRETTY_FUNCTION__","__attribute__","getter","setter","retain","unsafe_unretained","nonnull","nullable","null_unspecified","null_resettable","class","instancetype","NS_DESIGNATED_INITIALIZER","NS_UNAVAILABLE","NS_REQUIRES_SUPER","NS_RETURNS_INNER_POINTER","NS_INLINE","NS_AVAILABLE","NS_DEPRECATED","NS_ENUM","NS_OPTIONS","NS_SWIFT_UNAVAILABLE","NS_ASSUME_NONNULL_BEGIN","NS_ASSUME_NONNULL_END","NS_REFINED_FOR_SWIFT","NS_SWIFT_NAME","NS_SWIFT_NOTHROW","NS_DURING","NS_HANDLER","NS_ENDHANDLER","NS_VALUERETURN","NS_VOIDRETURN"],literal:["false","true","FALSE","TRUE","nil","YES","NO","NULL"],built_in:["dispatch_once_t","dispatch_queue_t","dispatch_sync","dispatch_async","dispatch_once"],type:["int","float","char","unsigned","signed","short","long","double","wchar_t","unichar","void","bool","BOOL","id|0","_Bool"]},s={$pattern:n,keyword:["@interface","@class","@protocol","@implementation"]};return{name:"Objective-C",aliases:["mm","objc","obj-c","obj-c++","objective-c++"],keywords:l,illegal:"/,end:/$/,illegal:"\\n"},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"class",begin:"("+s.keyword.join("|")+")\\b",end:/(\{|$)/,excludeEnd:!0,keywords:s,contains:[e.UNDERSCORE_TITLE_MODE]},{begin:"\\."+e.UNDERSCORE_IDENT_RE,relevance:0}]}}function $8e(e){const t=e.regex,n=["abs","accept","alarm","and","atan2","bind","binmode","bless","break","caller","chdir","chmod","chomp","chop","chown","chr","chroot","close","closedir","connect","continue","cos","crypt","dbmclose","dbmopen","defined","delete","die","do","dump","each","else","elsif","endgrent","endhostent","endnetent","endprotoent","endpwent","endservent","eof","eval","exec","exists","exit","exp","fcntl","fileno","flock","for","foreach","fork","format","formline","getc","getgrent","getgrgid","getgrnam","gethostbyaddr","gethostbyname","gethostent","getlogin","getnetbyaddr","getnetbyname","getnetent","getpeername","getpgrp","getpriority","getprotobyname","getprotobynumber","getprotoent","getpwent","getpwnam","getpwuid","getservbyname","getservbyport","getservent","getsockname","getsockopt","given","glob","gmtime","goto","grep","gt","hex","if","index","int","ioctl","join","keys","kill","last","lc","lcfirst","length","link","listen","local","localtime","log","lstat","lt","ma","map","mkdir","msgctl","msgget","msgrcv","msgsnd","my","ne","next","no","not","oct","open","opendir","or","ord","our","pack","package","pipe","pop","pos","print","printf","prototype","push","q|0","qq","quotemeta","qw","qx","rand","read","readdir","readline","readlink","readpipe","recv","redo","ref","rename","require","reset","return","reverse","rewinddir","rindex","rmdir","say","scalar","seek","seekdir","select","semctl","semget","semop","send","setgrent","sethostent","setnetent","setpgrp","setpriority","setprotoent","setpwent","setservent","setsockopt","shift","shmctl","shmget","shmread","shmwrite","shutdown","sin","sleep","socket","socketpair","sort","splice","split","sprintf","sqrt","srand","stat","state","study","sub","substr","symlink","syscall","sysopen","sysread","sysseek","system","syswrite","tell","telldir","tie","tied","time","times","tr","truncate","uc","ucfirst","umask","undef","unless","unlink","unpack","unshift","untie","until","use","utime","values","vec","wait","waitpid","wantarray","warn","when","while","write","x|0","xor","y|0"],r=/[dualxmsipngr]{0,12}/,i={$pattern:/[\w.]+/,keyword:n.join(" ")},a={className:"subst",begin:"[$@]\\{",end:"\\}",keywords:i},o={begin:/->\{/,end:/\}/},l={variants:[{begin:/\$\d/},{begin:t.concat(/[$%@](\^\w\b|#\w+(::\w+)*|\{\w+\}|\w+(::\w*)*)/,"(?![A-Za-z])(?![@$%])")},{begin:/[$%@][^\s\w{]/,relevance:0}]},s=[e.BACKSLASH_ESCAPE,a,l],u=[/!/,/\//,/\|/,/\?/,/'/,/"/,/#/],c=(h,m,A="\\1")=>{const B=A==="\\1"?A:t.concat(A,m);return t.concat(t.concat("(?:",h,")"),m,/(?:\\.|[^\\\/])*?/,B,/(?:\\.|[^\\\/])*?/,A,r)},d=(h,m,A)=>t.concat(t.concat("(?:",h,")"),m,/(?:\\.|[^\\\/])*?/,A,r),g=[l,e.HASH_COMMENT_MODE,e.COMMENT(/^=\w/,/=cut/,{endsWithParent:!0}),o,{className:"string",contains:s,variants:[{begin:"q[qwxr]?\\s*\\(",end:"\\)",relevance:5},{begin:"q[qwxr]?\\s*\\[",end:"\\]",relevance:5},{begin:"q[qwxr]?\\s*\\{",end:"\\}",relevance:5},{begin:"q[qwxr]?\\s*\\|",end:"\\|",relevance:5},{begin:"q[qwxr]?\\s*<",end:">",relevance:5},{begin:"qw\\s+q",end:"q",relevance:5},{begin:"'",end:"'",contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"'},{begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE]},{begin:/\{\w+\}/,relevance:0},{begin:"-?\\w+\\s*=>",relevance:0}]},{className:"number",begin:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",relevance:0},{begin:"(\\/\\/|"+e.RE_STARTERS_RE+"|\\b(split|return|print|reverse|grep)\\b)\\s*",keywords:"split return print reverse grep",relevance:0,contains:[e.HASH_COMMENT_MODE,{className:"regexp",variants:[{begin:c("s|tr|y",t.either(...u,{capture:!0}))},{begin:c("s|tr|y","\\(","\\)")},{begin:c("s|tr|y","\\[","\\]")},{begin:c("s|tr|y","\\{","\\}")}],relevance:2},{className:"regexp",variants:[{begin:/(m|qr)\/\//,relevance:0},{begin:d("(?:m|qr)?",/\//,/\//)},{begin:d("m|qr",t.either(...u,{capture:!0}),/\1/)},{begin:d("m|qr",/\(/,/\)/)},{begin:d("m|qr",/\[/,/\]/)},{begin:d("m|qr",/\{/,/\}/)}]}]},{className:"function",beginKeywords:"sub",end:"(\\s*\\(.*?\\))?[;{]",excludeEnd:!0,relevance:5,contains:[e.TITLE_MODE]},{begin:"-\\w\\b",relevance:0},{begin:"^__DATA__$",end:"^__END__$",subLanguage:"mojolicious",contains:[{begin:"^@@.*",end:"$",className:"comment"}]}];return a.contains=g,o.contains=g,{name:"Perl",aliases:["pl","pm"],keywords:i,contains:g}}function q8e(e){const t=e.regex,n=/(?![A-Za-z0-9])(?![$])/,r=t.concat(/[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/,n),i=t.concat(/(\\?[A-Z][a-z0-9_\x7f-\xff]+|\\?[A-Z]+(?=[A-Z][a-z0-9_\x7f-\xff])){1,}/,n),a={scope:"variable",match:"\\$+"+r},o={scope:"meta",variants:[{begin:/<\?php/,relevance:10},{begin:/<\?=/},{begin:/<\?/,relevance:.1},{begin:/\?>/}]},l={scope:"subst",variants:[{begin:/\$\w+/},{begin:/\{\$/,end:/\}/}]},s=e.inherit(e.APOS_STRING_MODE,{illegal:null}),u=e.inherit(e.QUOTE_STRING_MODE,{illegal:null,contains:e.QUOTE_STRING_MODE.contains.concat(l)}),c={begin:/<<<[ \t]*(?:(\w+)|"(\w+)")\n/,end:/[ \t]*(\w+)\b/,contains:e.QUOTE_STRING_MODE.contains.concat(l),"on:begin":(V,z)=>{z.data._beginMatch=V[1]||V[2]},"on:end":(V,z)=>{z.data._beginMatch!==V[1]&&z.ignoreMatch()}},d=e.END_SAME_AS_BEGIN({begin:/<<<[ \t]*'(\w+)'\n/,end:/[ \t]*(\w+)\b/}),g=`[ +]`,h={scope:"string",variants:[u,s,c,d]},m={scope:"number",variants:[{begin:"\\b0[bB][01]+(?:_[01]+)*\\b"},{begin:"\\b0[oO][0-7]+(?:_[0-7]+)*\\b"},{begin:"\\b0[xX][\\da-fA-F]+(?:_[\\da-fA-F]+)*\\b"},{begin:"(?:\\b\\d+(?:_\\d+)*(\\.(?:\\d+(?:_\\d+)*))?|\\B\\.\\d+)(?:[eE][+-]?\\d+)?"}],relevance:0},A=["false","null","true"],B=["__CLASS__","__DIR__","__FILE__","__FUNCTION__","__COMPILER_HALT_OFFSET__","__LINE__","__METHOD__","__NAMESPACE__","__TRAIT__","die","echo","exit","include","include_once","print","require","require_once","array","abstract","and","as","binary","bool","boolean","break","callable","case","catch","class","clone","const","continue","declare","default","do","double","else","elseif","empty","enddeclare","endfor","endforeach","endif","endswitch","endwhile","enum","eval","extends","final","finally","float","for","foreach","from","global","goto","if","implements","instanceof","insteadof","int","integer","interface","isset","iterable","list","match|0","mixed","new","never","object","or","private","protected","public","readonly","real","return","string","switch","throw","trait","try","unset","use","var","void","while","xor","yield"],C=["Error|0","AppendIterator","ArgumentCountError","ArithmeticError","ArrayIterator","ArrayObject","AssertionError","BadFunctionCallException","BadMethodCallException","CachingIterator","CallbackFilterIterator","CompileError","Countable","DirectoryIterator","DivisionByZeroError","DomainException","EmptyIterator","ErrorException","Exception","FilesystemIterator","FilterIterator","GlobIterator","InfiniteIterator","InvalidArgumentException","IteratorIterator","LengthException","LimitIterator","LogicException","MultipleIterator","NoRewindIterator","OutOfBoundsException","OutOfRangeException","OuterIterator","OverflowException","ParentIterator","ParseError","RangeException","RecursiveArrayIterator","RecursiveCachingIterator","RecursiveCallbackFilterIterator","RecursiveDirectoryIterator","RecursiveFilterIterator","RecursiveIterator","RecursiveIteratorIterator","RecursiveRegexIterator","RecursiveTreeIterator","RegexIterator","RuntimeException","SeekableIterator","SplDoublyLinkedList","SplFileInfo","SplFileObject","SplFixedArray","SplHeap","SplMaxHeap","SplMinHeap","SplObjectStorage","SplObserver","SplPriorityQueue","SplQueue","SplStack","SplSubject","SplTempFileObject","TypeError","UnderflowException","UnexpectedValueException","UnhandledMatchError","ArrayAccess","BackedEnum","Closure","Fiber","Generator","Iterator","IteratorAggregate","Serializable","Stringable","Throwable","Traversable","UnitEnum","WeakReference","WeakMap","Directory","__PHP_Incomplete_Class","parent","php_user_filter","self","static","stdClass"],Q={keyword:B,literal:(V=>{const z=[];return V.forEach(j=>{z.push(j),j.toLowerCase()===j?z.push(j.toUpperCase()):z.push(j.toLowerCase())}),z})(A),built_in:C},F=V=>V.map(z=>z.replace(/\|\d+$/,"")),K={variants:[{match:[/new/,t.concat(g,"+"),t.concat("(?!",F(C).join("\\b|"),"\\b)"),i],scope:{1:"keyword",4:"title.class"}}]},y=t.concat(r,"\\b(?!\\()"),G={variants:[{match:[t.concat(/::/,t.lookahead(/(?!class\b)/)),y],scope:{2:"variable.constant"}},{match:[/::/,/class/],scope:{2:"variable.language"}},{match:[i,t.concat(/::/,t.lookahead(/(?!class\b)/)),y],scope:{1:"title.class",3:"variable.constant"}},{match:[i,t.concat("::",t.lookahead(/(?!class\b)/))],scope:{1:"title.class"}},{match:[i,/::/,/class/],scope:{1:"title.class",3:"variable.language"}}]},X={scope:"attr",match:t.concat(r,t.lookahead(":"),t.lookahead(/(?!::)/))},H={relevance:0,begin:/\(/,end:/\)/,keywords:Q,contains:[X,a,G,e.C_BLOCK_COMMENT_MODE,h,m,K]},v={relevance:0,match:[/\b/,t.concat("(?!fn\\b|function\\b|",F(B).join("\\b|"),"|",F(C).join("\\b|"),"\\b)"),r,t.concat(g,"*"),t.lookahead(/(?=\()/)],scope:{3:"title.function.invoke"},contains:[H]};H.contains.push(v);const k=[X,G,e.C_BLOCK_COMMENT_MODE,h,m,K],D={begin:t.concat(/#\[\s*/,i),beginScope:"meta",end:/]/,endScope:"meta",keywords:{literal:A,keyword:["new","array"]},contains:[{begin:/\[/,end:/]/,keywords:{literal:A,keyword:["new","array"]},contains:["self",...k]},...k,{scope:"meta",match:i}]};return{case_insensitive:!1,keywords:Q,contains:[D,e.HASH_COMMENT_MODE,e.COMMENT("//","$"),e.COMMENT("/\\*","\\*/",{contains:[{scope:"doctag",match:"@[A-Za-z]+"}]}),{match:/__halt_compiler\(\);/,keywords:"__halt_compiler",starts:{scope:"comment",end:e.MATCH_NOTHING_RE,contains:[{match:/\?>/,scope:"meta",endsParent:!0}]}},o,{scope:"variable.language",match:/\$this\b/},a,v,G,{match:[/const/,/\s/,r],scope:{1:"keyword",3:"variable.constant"}},K,{scope:"function",relevance:0,beginKeywords:"fn function",end:/[;{]/,excludeEnd:!0,illegal:"[$%\\[]",contains:[{beginKeywords:"use"},e.UNDERSCORE_TITLE_MODE,{begin:"=>",endsParent:!0},{scope:"params",begin:"\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0,keywords:Q,contains:["self",a,G,e.C_BLOCK_COMMENT_MODE,h,m]}]},{scope:"class",variants:[{beginKeywords:"enum",illegal:/[($"]/},{beginKeywords:"class interface trait",illegal:/[:($"]/}],relevance:0,end:/\{/,excludeEnd:!0,contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"namespace",relevance:0,end:";",illegal:/[.']/,contains:[e.inherit(e.UNDERSCORE_TITLE_MODE,{scope:"title.class"})]},{beginKeywords:"use",relevance:0,end:";",contains:[{match:/\b(as|const|function)\b/,scope:"keyword"},e.UNDERSCORE_TITLE_MODE]},h,m]}}function e6e(e){return{name:"PHP template",subLanguage:"xml",contains:[{begin:/<\?(php|=)?/,end:/\?>/,subLanguage:"php",contains:[{begin:"/\\*",end:"\\*/",skip:!0},{begin:'b"',end:'"',skip:!0},{begin:"b'",end:"'",skip:!0},e.inherit(e.APOS_STRING_MODE,{illegal:null,className:null,contains:null,skip:!0}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null,className:null,contains:null,skip:!0})]}]}}function t6e(e){return{name:"Plain text",aliases:["text","txt"],disableAutodetect:!0}}function n6e(e){const t=e.regex,n=/[\p{XID_Start}_]\p{XID_Continue}*/u,r=["and","as","assert","async","await","break","case","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","in","is","lambda","match","nonlocal|10","not","or","pass","raise","return","try","while","with","yield"],l={$pattern:/[A-Za-z]\w+|__\w+__/,keyword:r,built_in:["__import__","abs","all","any","ascii","bin","bool","breakpoint","bytearray","bytes","callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate","eval","exec","filter","float","format","frozenset","getattr","globals","hasattr","hash","help","hex","id","input","int","isinstance","issubclass","iter","len","list","locals","map","max","memoryview","min","next","object","oct","open","ord","pow","print","property","range","repr","reversed","round","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","vars","zip"],literal:["__debug__","Ellipsis","False","None","NotImplemented","True"],type:["Any","Callable","Coroutine","Dict","List","Literal","Generic","Optional","Sequence","Set","Tuple","Type","Union"]},s={className:"meta",begin:/^(>>>|\.\.\.) /},u={className:"subst",begin:/\{/,end:/\}/,keywords:l,illegal:/#/},c={begin:/\{\{/,relevance:0},d={className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,s],relevance:10},{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,s],relevance:10},{begin:/([fF][rR]|[rR][fF]|[fF])'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,s,c,u]},{begin:/([fF][rR]|[rR][fF]|[fF])"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,s,c,u]},{begin:/([uU]|[rR])'/,end:/'/,relevance:10},{begin:/([uU]|[rR])"/,end:/"/,relevance:10},{begin:/([bB]|[bB][rR]|[rR][bB])'/,end:/'/},{begin:/([bB]|[bB][rR]|[rR][bB])"/,end:/"/},{begin:/([fF][rR]|[rR][fF]|[fF])'/,end:/'/,contains:[e.BACKSLASH_ESCAPE,c,u]},{begin:/([fF][rR]|[rR][fF]|[fF])"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,c,u]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},g="[0-9](_?[0-9])*",h=`(\\b(${g}))?\\.(${g})|\\b(${g})\\.`,m=`\\b|${r.join("|")}`,A={className:"number",relevance:0,variants:[{begin:`(\\b(${g})|(${h}))[eE][+-]?(${g})[jJ]?(?=${m})`},{begin:`(${h})[jJ]?`},{begin:`\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=${m})`},{begin:`\\b0[bB](_?[01])+[lL]?(?=${m})`},{begin:`\\b0[oO](_?[0-7])+[lL]?(?=${m})`},{begin:`\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=${m})`},{begin:`\\b(${g})[jJ](?=${m})`}]},B={className:"comment",begin:t.lookahead(/# type:/),end:/$/,keywords:l,contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,endsWithParent:!0}]},C={className:"params",variants:[{className:"",begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:l,contains:["self",s,A,d,e.HASH_COMMENT_MODE]}]};return u.contains=[d,A,s],{name:"Python",aliases:["py","gyp","ipython"],unicodeRegex:!0,keywords:l,illegal:/(<\/|\?)|=>/,contains:[s,A,{begin:/\bself\b/},{beginKeywords:"if",relevance:0},d,B,e.HASH_COMMENT_MODE,{match:[/\bdef/,/\s+/,n],scope:{1:"keyword",3:"title.function"},contains:[C]},{variants:[{match:[/\bclass/,/\s+/,n,/\s*/,/\(\s*/,n,/\s*\)/]},{match:[/\bclass/,/\s+/,n]}],scope:{1:"keyword",3:"title.class",6:"title.class.inherited"}},{className:"meta",begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[A,C,d]}]}}function r6e(e){return{aliases:["pycon"],contains:[{className:"meta.prompt",starts:{end:/ |$/,starts:{end:"$",subLanguage:"python"}},variants:[{begin:/^>>>(?=[ ]|$)/},{begin:/^\.\.\.(?=[ ]|$)/}]}]}}function i6e(e){const t=e.regex,n=/(?:(?:[a-zA-Z]|\.[._a-zA-Z])[._a-zA-Z0-9]*)|\.(?!\d)/,r=t.either(/0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*[pP][+-]?\d+i?/,/0[xX][0-9a-fA-F]+(?:[pP][+-]?\d+)?[Li]?/,/(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?[Li]?/),i=/[=!<>:]=|\|\||&&|:::?|<-|<<-|->>|->|\|>|[-+*\/?!$&|:<=>@^~]|\*\*/,a=t.either(/[()]/,/[{}]/,/\[\[/,/[[\]]/,/\\/,/,/);return{name:"R",keywords:{$pattern:n,keyword:"function if in break next repeat else for while",literal:"NULL NA TRUE FALSE Inf NaN NA_integer_|10 NA_real_|10 NA_character_|10 NA_complex_|10",built_in:"LETTERS letters month.abb month.name pi T F abs acos acosh all any anyNA Arg as.call as.character as.complex as.double as.environment as.integer as.logical as.null.default as.numeric as.raw asin asinh atan atanh attr attributes baseenv browser c call ceiling class Conj cos cosh cospi cummax cummin cumprod cumsum digamma dim dimnames emptyenv exp expression floor forceAndCall gamma gc.time globalenv Im interactive invisible is.array is.atomic is.call is.character is.complex is.double is.environment is.expression is.finite is.function is.infinite is.integer is.language is.list is.logical is.matrix is.na is.name is.nan is.null is.numeric is.object is.pairlist is.raw is.recursive is.single is.symbol lazyLoadDBfetch length lgamma list log max min missing Mod names nargs nzchar oldClass on.exit pos.to.env proc.time prod quote range Re rep retracemem return round seq_along seq_len seq.int sign signif sin sinh sinpi sqrt standardGeneric substitute sum switch tan tanh tanpi tracemem trigamma trunc unclass untracemem UseMethod xtfrm"},contains:[e.COMMENT(/#'/,/$/,{contains:[{scope:"doctag",match:/@examples/,starts:{end:t.lookahead(t.either(/\n^#'\s*(?=@[a-zA-Z]+)/,/\n^(?!#')/)),endsParent:!0}},{scope:"doctag",begin:"@param",end:/$/,contains:[{scope:"variable",variants:[{match:n},{match:/`(?:\\.|[^`\\])+`/}],endsParent:!0}]},{scope:"doctag",match:/@[a-zA-Z]+/},{scope:"keyword",match:/\\[a-zA-Z]+/}]}),e.HASH_COMMENT_MODE,{scope:"string",contains:[e.BACKSLASH_ESCAPE],variants:[e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\(/,end:/\)(-*)"/}),e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\{/,end:/\}(-*)"/}),e.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\[/,end:/\](-*)"/}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\(/,end:/\)(-*)'/}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\{/,end:/\}(-*)'/}),e.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\[/,end:/\](-*)'/}),{begin:'"',end:'"',relevance:0},{begin:"'",end:"'",relevance:0}]},{relevance:0,variants:[{scope:{1:"operator",2:"number"},match:[i,r]},{scope:{1:"operator",2:"number"},match:[/%[^%]*%/,r]},{scope:{1:"punctuation",2:"number"},match:[a,r]},{scope:{2:"number"},match:[/[^a-zA-Z0-9._]|^/,r]}]},{scope:{3:"operator"},match:[n,/\s+/,/<-/,/\s+/]},{scope:"operator",relevance:0,variants:[{match:i},{match:/%[^%]*%/}]},{scope:"punctuation",relevance:0,match:a},{begin:"`",end:"`",contains:[{begin:/\\./}]}]}}function a6e(e){const t=e.regex,n="([a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?)",r=t.either(/\b([A-Z]+[a-z0-9]+)+/,/\b([A-Z]+[a-z0-9]+)+[A-Z]+/),i=t.concat(r,/(::\w+)*/),o={"variable.constant":["__FILE__","__LINE__","__ENCODING__"],"variable.language":["self","super"],keyword:["alias","and","begin","BEGIN","break","case","class","defined","do","else","elsif","end","END","ensure","for","if","in","module","next","not","or","redo","require","rescue","retry","return","then","undef","unless","until","when","while","yield",...["include","extend","prepend","public","private","protected","raise","throw"]],built_in:["proc","lambda","attr_accessor","attr_reader","attr_writer","define_method","private_constant","module_function"],literal:["true","false","nil"]},l={className:"doctag",begin:"@[A-Za-z]+"},s={begin:"#<",end:">"},u=[e.COMMENT("#","$",{contains:[l]}),e.COMMENT("^=begin","^=end",{contains:[l],relevance:10}),e.COMMENT("^__END__",e.MATCH_NOTHING_RE)],c={className:"subst",begin:/#\{/,end:/\}/,keywords:o},d={className:"string",contains:[e.BACKSLASH_ESCAPE,c],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/`/,end:/`/},{begin:/%[qQwWx]?\(/,end:/\)/},{begin:/%[qQwWx]?\[/,end:/\]/},{begin:/%[qQwWx]?\{/,end:/\}/},{begin:/%[qQwWx]?/},{begin:/%[qQwWx]?\//,end:/\//},{begin:/%[qQwWx]?%/,end:/%/},{begin:/%[qQwWx]?-/,end:/-/},{begin:/%[qQwWx]?\|/,end:/\|/},{begin:/\B\?(\\\d{1,3})/},{begin:/\B\?(\\x[A-Fa-f0-9]{1,2})/},{begin:/\B\?(\\u\{?[A-Fa-f0-9]{1,6}\}?)/},{begin:/\B\?(\\M-\\C-|\\M-\\c|\\c\\M-|\\M-|\\C-\\M-)[\x20-\x7e]/},{begin:/\B\?\\(c|C-)[\x20-\x7e]/},{begin:/\B\?\\?\S/},{begin:t.concat(/<<[-~]?'?/,t.lookahead(/(\w+)(?=\W)[^\n]*\n(?:[^\n]*\n)*?\s*\1\b/)),contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,contains:[e.BACKSLASH_ESCAPE,c]})]}]},g="[1-9](_?[0-9])*|0",h="[0-9](_?[0-9])*",m={className:"number",relevance:0,variants:[{begin:`\\b(${g})(\\.(${h}))?([eE][+-]?(${h})|r)?i?\\b`},{begin:"\\b0[dD][0-9](_?[0-9])*r?i?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*r?i?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*r?i?\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*r?i?\\b"},{begin:"\\b0(_?[0-7])+r?i?\\b"}]},A={variants:[{match:/\(\)/},{className:"params",begin:/\(/,end:/(?=\))/,excludeBegin:!0,endsParent:!0,keywords:o}]},y=[d,{variants:[{match:[/class\s+/,i,/\s+<\s+/,i]},{match:[/\b(class|module)\s+/,i]}],scope:{2:"title.class",4:"title.class.inherited"},keywords:o},{match:[/(include|extend)\s+/,i],scope:{2:"title.class"},keywords:o},{relevance:0,match:[i,/\.new[. (]/],scope:{1:"title.class"}},{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"},{relevance:0,match:r,scope:"title.class"},{match:[/def/,/\s+/,n],scope:{1:"keyword",3:"title.function"},contains:[A]},{begin:e.IDENT_RE+"::"},{className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"(!|\\?)?:",relevance:0},{className:"symbol",begin:":(?!\\s)",contains:[d,{begin:n}],relevance:0},m,{className:"variable",begin:"(\\$\\W)|((\\$|@@?)(\\w+))(?=[^@$?])(?![A-Za-z])(?![@$?'])"},{className:"params",begin:/\|/,end:/\|/,excludeBegin:!0,excludeEnd:!0,relevance:0,keywords:o},{begin:"("+e.RE_STARTERS_RE+"|unless)\\s*",keywords:"unless",contains:[{className:"regexp",contains:[e.BACKSLASH_ESCAPE,c],illegal:/\n/,variants:[{begin:"/",end:"/[a-z]*"},{begin:/%r\{/,end:/\}[a-z]*/},{begin:"%r\\(",end:"\\)[a-z]*"},{begin:"%r!",end:"![a-z]*"},{begin:"%r\\[",end:"\\][a-z]*"}]}].concat(s,u),relevance:0}].concat(s,u);c.contains=y,A.contains=y;const G="[>?]>",X="[\\w#]+\\(\\w+\\):\\d+:\\d+[>*]",H="(\\w+-)?\\d+\\.\\d+\\.\\d+(p\\d+)?[^\\d][^>]+>",v=[{begin:/^\s*=>/,starts:{end:"$",contains:y}},{className:"meta.prompt",begin:"^("+G+"|"+X+"|"+H+")(?=[ ])",starts:{end:"$",keywords:o,contains:y}}];return u.unshift(s),{name:"Ruby",aliases:["rb","gemspec","podspec","thor","irb"],keywords:o,illegal:/\/\*/,contains:[e.SHEBANG({binary:"ruby"})].concat(v).concat(u).concat(y)}}function o6e(e){const t=e.regex,n={className:"title.function.invoke",relevance:0,begin:t.concat(/\b/,/(?!let|for|while|if|else|match\b)/,e.IDENT_RE,t.lookahead(/\s*\(/))},r="([ui](8|16|32|64|128|size)|f(32|64))?",i=["abstract","as","async","await","become","box","break","const","continue","crate","do","dyn","else","enum","extern","false","final","fn","for","if","impl","in","let","loop","macro","match","mod","move","mut","override","priv","pub","ref","return","self","Self","static","struct","super","trait","true","try","type","typeof","unsafe","unsized","use","virtual","where","while","yield"],a=["true","false","Some","None","Ok","Err"],o=["drop ","Copy","Send","Sized","Sync","Drop","Fn","FnMut","FnOnce","ToOwned","Clone","Debug","PartialEq","PartialOrd","Eq","Ord","AsRef","AsMut","Into","From","Default","Iterator","Extend","IntoIterator","DoubleEndedIterator","ExactSizeIterator","SliceConcatExt","ToString","assert!","assert_eq!","bitflags!","bytes!","cfg!","col!","concat!","concat_idents!","debug_assert!","debug_assert_eq!","env!","eprintln!","panic!","file!","format!","format_args!","include_bytes!","include_str!","line!","local_data_key!","module_path!","option_env!","print!","println!","select!","stringify!","try!","unimplemented!","unreachable!","vec!","write!","writeln!","macro_rules!","assert_ne!","debug_assert_ne!"],l=["i8","i16","i32","i64","i128","isize","u8","u16","u32","u64","u128","usize","f32","f64","str","char","bool","Box","Option","Result","String","Vec"];return{name:"Rust",aliases:["rs"],keywords:{$pattern:e.IDENT_RE+"!?",type:l,keyword:i,literal:a,built_in:o},illegal:""},n]}}const l6e=e=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}),s6e=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],u6e=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"],c6e=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"],d6e=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"],p6e=["align-content","align-items","align-self","all","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","content","content-visibility","counter-increment","counter-reset","cue","cue-after","cue-before","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-smoothing","font-stretch","font-style","font-synthesis","font-variant","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","gap","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","inline-size","isolation","justify-content","left","letter-spacing","line-break","line-height","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-wrap","overflow-x","overflow-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","pause","pause-after","pause-before","perspective","perspective-origin","pointer-events","position","quotes","resize","rest","rest-after","rest-before","right","row-gap","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","speak","speak-as","src","tab-size","table-layout","text-align","text-align-all","text-align-last","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-transform","text-underline-position","top","transform","transform-box","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","z-index"].reverse();function g6e(e){const t=l6e(e),n=d6e,r=c6e,i="@[a-z-]+",a="and or not only",l={className:"variable",begin:"(\\$"+"[a-zA-Z-][a-zA-Z0-9_-]*"+")\\b",relevance:0};return{name:"SCSS",case_insensitive:!0,illegal:"[=/|']",contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,t.CSS_NUMBER_MODE,{className:"selector-id",begin:"#[A-Za-z0-9_-]+",relevance:0},{className:"selector-class",begin:"\\.[A-Za-z0-9_-]+",relevance:0},t.ATTRIBUTE_SELECTOR_MODE,{className:"selector-tag",begin:"\\b("+s6e.join("|")+")\\b",relevance:0},{className:"selector-pseudo",begin:":("+r.join("|")+")"},{className:"selector-pseudo",begin:":(:)?("+n.join("|")+")"},l,{begin:/\(/,end:/\)/,contains:[t.CSS_NUMBER_MODE]},t.CSS_VARIABLE,{className:"attribute",begin:"\\b("+p6e.join("|")+")\\b"},{begin:"\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\b"},{begin:/:/,end:/[;}{]/,relevance:0,contains:[t.BLOCK_COMMENT,l,t.HEXCOLOR,t.CSS_NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,t.IMPORTANT,t.FUNCTION_DISPATCH]},{begin:"@(page|font-face)",keywords:{$pattern:i,keyword:"@page @font-face"}},{begin:"@",end:"[{;]",returnBegin:!0,keywords:{$pattern:/[a-z-]+/,keyword:a,attribute:u6e.join(" ")},contains:[{begin:i,className:"keyword"},{begin:/[a-z-]+(?=:)/,className:"attribute"},l,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,t.HEXCOLOR,t.CSS_NUMBER_MODE]},t.FUNCTION_DISPATCH]}}function h6e(e){return{name:"Shell Session",aliases:["console","shellsession"],contains:[{className:"meta.prompt",begin:/^\s{0,3}[/~\w\d[\]()@-]*[>%$#][ ]?/,starts:{end:/[^\\](?=\s*$)/,subLanguage:"bash"}}]}}function f6e(e){const t=e.regex,n=e.COMMENT("--","$"),r={className:"string",variants:[{begin:/'/,end:/'/,contains:[{begin:/''/}]}]},i={begin:/"/,end:/"/,contains:[{begin:/""/}]},a=["true","false","unknown"],o=["double precision","large object","with timezone","without timezone"],l=["bigint","binary","blob","boolean","char","character","clob","date","dec","decfloat","decimal","float","int","integer","interval","nchar","nclob","national","numeric","real","row","smallint","time","timestamp","varchar","varying","varbinary"],s=["add","asc","collation","desc","final","first","last","view"],u=["abs","acos","all","allocate","alter","and","any","are","array","array_agg","array_max_cardinality","as","asensitive","asin","asymmetric","at","atan","atomic","authorization","avg","begin","begin_frame","begin_partition","between","bigint","binary","blob","boolean","both","by","call","called","cardinality","cascaded","case","cast","ceil","ceiling","char","char_length","character","character_length","check","classifier","clob","close","coalesce","collate","collect","column","commit","condition","connect","constraint","contains","convert","copy","corr","corresponding","cos","cosh","count","covar_pop","covar_samp","create","cross","cube","cume_dist","current","current_catalog","current_date","current_default_transform_group","current_path","current_role","current_row","current_schema","current_time","current_timestamp","current_path","current_role","current_transform_group_for_type","current_user","cursor","cycle","date","day","deallocate","dec","decimal","decfloat","declare","default","define","delete","dense_rank","deref","describe","deterministic","disconnect","distinct","double","drop","dynamic","each","element","else","empty","end","end_frame","end_partition","end-exec","equals","escape","every","except","exec","execute","exists","exp","external","extract","false","fetch","filter","first_value","float","floor","for","foreign","frame_row","free","from","full","function","fusion","get","global","grant","group","grouping","groups","having","hold","hour","identity","in","indicator","initial","inner","inout","insensitive","insert","int","integer","intersect","intersection","interval","into","is","join","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","language","large","last_value","lateral","lead","leading","left","like","like_regex","listagg","ln","local","localtime","localtimestamp","log","log10","lower","match","match_number","match_recognize","matches","max","member","merge","method","min","minute","mod","modifies","module","month","multiset","national","natural","nchar","nclob","new","no","none","normalize","not","nth_value","ntile","null","nullif","numeric","octet_length","occurrences_regex","of","offset","old","omit","on","one","only","open","or","order","out","outer","over","overlaps","overlay","parameter","partition","pattern","per","percent","percent_rank","percentile_cont","percentile_disc","period","portion","position","position_regex","power","precedes","precision","prepare","primary","procedure","ptf","range","rank","reads","real","recursive","ref","references","referencing","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","release","result","return","returns","revoke","right","rollback","rollup","row","row_number","rows","running","savepoint","scope","scroll","search","second","seek","select","sensitive","session_user","set","show","similar","sin","sinh","skip","smallint","some","specific","specifictype","sql","sqlexception","sqlstate","sqlwarning","sqrt","start","static","stddev_pop","stddev_samp","submultiset","subset","substring","substring_regex","succeeds","sum","symmetric","system","system_time","system_user","table","tablesample","tan","tanh","then","time","timestamp","timezone_hour","timezone_minute","to","trailing","translate","translate_regex","translation","treat","trigger","trim","trim_array","true","truncate","uescape","union","unique","unknown","unnest","update","upper","user","using","value","values","value_of","var_pop","var_samp","varbinary","varchar","varying","versioning","when","whenever","where","width_bucket","window","with","within","without","year"],c=["abs","acos","array_agg","asin","atan","avg","cast","ceil","ceiling","coalesce","corr","cos","cosh","count","covar_pop","covar_samp","cume_dist","dense_rank","deref","element","exp","extract","first_value","floor","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","last_value","lead","listagg","ln","log","log10","lower","max","min","mod","nth_value","ntile","nullif","percent_rank","percentile_cont","percentile_disc","position","position_regex","power","rank","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","row_number","sin","sinh","sqrt","stddev_pop","stddev_samp","substring","substring_regex","sum","tan","tanh","translate","translate_regex","treat","trim","trim_array","unnest","upper","value_of","var_pop","var_samp","width_bucket"],d=["current_catalog","current_date","current_default_transform_group","current_path","current_role","current_schema","current_transform_group_for_type","current_user","session_user","system_time","system_user","current_time","localtime","current_timestamp","localtimestamp"],g=["create table","insert into","primary key","foreign key","not null","alter table","add constraint","grouping sets","on overflow","character set","respect nulls","ignore nulls","nulls first","nulls last","depth first","breadth first"],h=c,m=[...u,...s].filter(Q=>!c.includes(Q)),A={className:"variable",begin:/@[a-z0-9][a-z0-9_]*/},B={className:"operator",begin:/[-+*/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?/,relevance:0},C={begin:t.concat(/\b/,t.either(...h),/\s*\(/),relevance:0,keywords:{built_in:h}};function b(Q,{exceptions:F,when:K}={}){const y=K;return F=F||[],Q.map(G=>G.match(/\|\d+$/)||F.includes(G)?G:y(G)?`${G}|0`:G)}return{name:"SQL",case_insensitive:!0,illegal:/[{}]|<\//,keywords:{$pattern:/\b[\w\.]+/,keyword:b(m,{when:Q=>Q.length<3}),literal:a,type:l,built_in:d},contains:[{begin:t.either(...g),relevance:0,keywords:{$pattern:/[\w\.]+/,keyword:m.concat(g),literal:a,type:l}},{className:"type",begin:t.either(...o)},C,A,r,i,e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,n,B]}}function HJ(e){return e?typeof e=="string"?e:e.source:null}function m2(e){return Yn("(?=",e,")")}function Yn(...e){return e.map(n=>HJ(n)).join("")}function m6e(e){const t=e[e.length-1];return typeof t=="object"&&t.constructor===Object?(e.splice(e.length-1,1),t):{}}function fa(...e){return"("+(m6e(e).capture?"":"?:")+e.map(r=>HJ(r)).join("|")+")"}const tR=e=>Yn(/\b/,e,/\w$/.test(e)?/\b/:/\B/),A6e=["Protocol","Type"].map(tR),VN=["init","self"].map(tR),C6e=["Any","Self"],TK=["actor","any","associatedtype","async","await",/as\?/,/as!/,"as","borrowing","break","case","catch","class","consume","consuming","continue","convenience","copy","default","defer","deinit","didSet","distributed","do","dynamic","each","else","enum","extension","fallthrough",/fileprivate\(set\)/,"fileprivate","final","for","func","get","guard","if","import","indirect","infix",/init\?/,/init!/,"inout",/internal\(set\)/,"internal","in","is","isolated","nonisolated","lazy","let","macro","mutating","nonmutating",/open\(set\)/,"open","operator","optional","override","postfix","precedencegroup","prefix",/private\(set\)/,"private","protocol",/public\(set\)/,"public","repeat","required","rethrows","return","set","some","static","struct","subscript","super","switch","throws","throw",/try\?/,/try!/,"try","typealias",/unowned\(safe\)/,/unowned\(unsafe\)/,"unowned","var","weak","where","while","willSet"],YN=["false","nil","true"],B6e=["assignment","associativity","higherThan","left","lowerThan","none","right"],w6e=["#colorLiteral","#column","#dsohandle","#else","#elseif","#endif","#error","#file","#fileID","#fileLiteral","#filePath","#function","#if","#imageLiteral","#keyPath","#line","#selector","#sourceLocation","#warning"],IN=["abs","all","any","assert","assertionFailure","debugPrint","dump","fatalError","getVaList","isKnownUniquelyReferenced","max","min","numericCast","pointwiseMax","pointwiseMin","precondition","preconditionFailure","print","readLine","repeatElement","sequence","stride","swap","swift_unboxFromSwiftValueWithType","transcode","type","unsafeBitCast","unsafeDowncast","withExtendedLifetime","withUnsafeMutablePointer","withUnsafePointer","withVaList","withoutActuallyEscaping","zip"],XJ=fa(/[/=\-+!*%<>&|^~?]/,/[\u00A1-\u00A7]/,/[\u00A9\u00AB]/,/[\u00AC\u00AE]/,/[\u00B0\u00B1]/,/[\u00B6\u00BB\u00BF\u00D7\u00F7]/,/[\u2016-\u2017]/,/[\u2020-\u2027]/,/[\u2030-\u203E]/,/[\u2041-\u2053]/,/[\u2055-\u205E]/,/[\u2190-\u23FF]/,/[\u2500-\u2775]/,/[\u2794-\u2BFF]/,/[\u2E00-\u2E7F]/,/[\u3001-\u3003]/,/[\u3008-\u3020]/,/[\u3030]/),LJ=fa(XJ,/[\u0300-\u036F]/,/[\u1DC0-\u1DFF]/,/[\u20D0-\u20FF]/,/[\uFE00-\uFE0F]/,/[\uFE20-\uFE2F]/),VK=Yn(XJ,LJ,"*"),MJ=fa(/[a-zA-Z_]/,/[\u00A8\u00AA\u00AD\u00AF\u00B2-\u00B5\u00B7-\u00BA]/,/[\u00BC-\u00BE\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]/,/[\u0100-\u02FF\u0370-\u167F\u1681-\u180D\u180F-\u1DBF]/,/[\u1E00-\u1FFF]/,/[\u200B-\u200D\u202A-\u202E\u203F-\u2040\u2054\u2060-\u206F]/,/[\u2070-\u20CF\u2100-\u218F\u2460-\u24FF\u2776-\u2793]/,/[\u2C00-\u2DFF\u2E80-\u2FFF]/,/[\u3004-\u3007\u3021-\u302F\u3031-\u303F\u3040-\uD7FF]/,/[\uF900-\uFD3D\uFD40-\uFDCF\uFDF0-\uFE1F\uFE30-\uFE44]/,/[\uFE47-\uFEFE\uFF00-\uFFFD]/),DB=fa(MJ,/\d/,/[\u0300-\u036F\u1DC0-\u1DFF\u20D0-\u20FF\uFE20-\uFE2F]/),Zs=Yn(MJ,DB,"*"),YK=Yn(/[A-Z]/,DB,"*"),b6e=["attached","autoclosure",Yn(/convention\(/,fa("swift","block","c"),/\)/),"discardableResult","dynamicCallable","dynamicMemberLookup","escaping","freestanding","frozen","GKInspectable","IBAction","IBDesignable","IBInspectable","IBOutlet","IBSegueAction","inlinable","main","nonobjc","NSApplicationMain","NSCopying","NSManaged",Yn(/objc\(/,Zs,/\)/),"objc","objcMembers","propertyWrapper","requires_stored_property_inits","resultBuilder","Sendable","testable","UIApplicationMain","unchecked","unknown","usableFromInline","warn_unqualified_access"],v6e=["iOS","iOSApplicationExtension","macOS","macOSApplicationExtension","macCatalyst","macCatalystApplicationExtension","watchOS","watchOSApplicationExtension","tvOS","tvOSApplicationExtension","swift"];function K6e(e){const t={match:/\s+/,relevance:0},n=e.COMMENT("/\\*","\\*/",{contains:["self"]}),r=[e.C_LINE_COMMENT_MODE,n],i={match:[/\./,fa(...A6e,...VN)],className:{2:"keyword"}},a={match:Yn(/\./,fa(...TK)),relevance:0},o=TK.filter(tt=>typeof tt=="string").concat(["_|0"]),l=TK.filter(tt=>typeof tt!="string").concat(C6e).map(tR),s={variants:[{className:"keyword",match:fa(...l,...VN)}]},u={$pattern:fa(/\b\w+/,/#\w+/),keyword:o.concat(w6e),literal:YN},c=[i,a,s],d={match:Yn(/\./,fa(...IN)),relevance:0},g={className:"built_in",match:Yn(/\b/,fa(...IN),/(?=\()/)},h=[d,g],m={match:/->/,relevance:0},A={className:"operator",relevance:0,variants:[{match:VK},{match:`\\.(\\.|${LJ})+`}]},B=[m,A],C="([0-9]_*)+",b="([0-9a-fA-F]_*)+",Q={className:"number",relevance:0,variants:[{match:`\\b(${C})(\\.(${C}))?([eE][+-]?(${C}))?\\b`},{match:`\\b0x(${b})(\\.(${b}))?([pP][+-]?(${C}))?\\b`},{match:/\b0o([0-7]_*)+\b/},{match:/\b0b([01]_*)+\b/}]},F=(tt="")=>({className:"subst",variants:[{match:Yn(/\\/,tt,/[0\\tnr"']/)},{match:Yn(/\\/,tt,/u\{[0-9a-fA-F]{1,8}\}/)}]}),K=(tt="")=>({className:"subst",match:Yn(/\\/,tt,/[\t ]*(?:[\r\n]|\r\n)/)}),y=(tt="")=>({className:"subst",label:"interpol",begin:Yn(/\\/,tt,/\(/),end:/\)/}),G=(tt="")=>({begin:Yn(tt,/"""/),end:Yn(/"""/,tt),contains:[F(tt),K(tt),y(tt)]}),X=(tt="")=>({begin:Yn(tt,/"/),end:Yn(/"/,tt),contains:[F(tt),y(tt)]}),H={className:"string",variants:[G(),G("#"),G("##"),G("###"),X(),X("#"),X("##"),X("###")]},v=[e.BACKSLASH_ESCAPE,{begin:/\[/,end:/\]/,relevance:0,contains:[e.BACKSLASH_ESCAPE]}],k={begin:/\/[^\s](?=[^/\n]*\/)/,end:/\//,contains:v},D=tt=>{const st=Yn(tt,/\//),pt=Yn(/\//,tt);return{begin:st,end:pt,contains:[...v,{scope:"comment",begin:`#(?!.*${pt})`,end:/$/}]}},V={scope:"regexp",variants:[D("###"),D("##"),D("#"),k]},z={match:Yn(/`/,Zs,/`/)},j={className:"variable",match:/\$\d+/},te={className:"variable",match:`\\$${DB}+`},J=[z,j,te],I={match:/(@|#(un)?)available/,scope:"keyword",starts:{contains:[{begin:/\(/,end:/\)/,keywords:v6e,contains:[...B,Q,H]}]}},se={scope:"keyword",match:Yn(/@/,fa(...b6e))},Z={scope:"meta",match:Yn(/@/,Zs)},S=[I,se,Z],q={match:m2(/\b[A-Z]/),relevance:0,contains:[{className:"type",match:Yn(/(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)/,DB,"+")},{className:"type",match:YK,relevance:0},{match:/[?!]+/,relevance:0},{match:/\.\.\./,relevance:0},{match:Yn(/\s+&\s+/,m2(YK)),relevance:0}]},T={begin://,keywords:u,contains:[...r,...c,...S,m,q]};q.contains.push(T);const ue={match:Yn(Zs,/\s*:/),keywords:"_|0",relevance:0},fe={begin:/\(/,end:/\)/,relevance:0,keywords:u,contains:["self",ue,...r,V,...c,...h,...B,Q,H,...J,...S,q]},_={begin://,keywords:"repeat each",contains:[...r,q]},Ze={begin:fa(m2(Yn(Zs,/\s*:/)),m2(Yn(Zs,/\s+/,Zs,/\s*:/))),end:/:/,relevance:0,contains:[{className:"keyword",match:/\b_\b/},{className:"params",match:Zs}]},ve={begin:/\(/,end:/\)/,keywords:u,contains:[Ze,...r,...c,...B,Q,H,...S,q,fe],endsParent:!0,illegal:/["']/},it={match:[/(func|macro)/,/\s+/,fa(z.match,Zs,VK)],className:{1:"keyword",3:"title.function"},contains:[_,ve,t],illegal:[/\[/,/%/]},et={match:[/\b(?:subscript|init[?!]?)/,/\s*(?=[<(])/],className:{1:"keyword"},contains:[_,ve,t],illegal:/\[|%/},ot={match:[/operator/,/\s+/,VK],className:{1:"keyword",3:"title"}},Oe={begin:[/precedencegroup/,/\s+/,YK],className:{1:"keyword",3:"title"},contains:[q],keywords:[...B6e,...YN],end:/}/};for(const tt of H.variants){const st=tt.contains.find(ht=>ht.label==="interpol");st.keywords=u;const pt=[...c,...h,...B,Q,H,...J];st.contains=[...pt,{begin:/\(/,end:/\)/,contains:["self",...pt]}]}return{name:"Swift",keywords:u,contains:[...r,it,et,{beginKeywords:"struct protocol class extension enum actor",end:"\\{",excludeEnd:!0,keywords:u,contains:[e.inherit(e.TITLE_MODE,{className:"title.class",begin:/[A-Za-z$_][\u00C0-\u02B80-9A-Za-z$_]*/}),...c]},ot,Oe,{beginKeywords:"import",end:/$/,contains:[...r],relevance:0},V,...c,...h,...B,Q,H,...J,...S,q,fe]}}const NB="[A-Za-z$_][0-9A-Za-z$_]*",TJ=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],VJ=["true","false","null","undefined","NaN","Infinity"],YJ=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],IJ=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],UJ=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],OJ=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],JJ=[].concat(UJ,YJ,IJ);function Q6e(e){const t=e.regex,n=(I,{after:se})=>{const Z="",end:""},a=/<[A-Za-z0-9\\._:-]+\s*\/>/,o={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(I,se)=>{const Z=I[0].length+I.index,S=I.input[Z];if(S==="<"||S===","){se.ignoreMatch();return}S===">"&&(n(I,{after:Z})||se.ignoreMatch());let q;const T=I.input.substring(Z);if(q=T.match(/^\s*=/)){se.ignoreMatch();return}if((q=T.match(/^\s+extends\s+/))&&q.index===0){se.ignoreMatch();return}}},l={$pattern:NB,keyword:TJ,literal:VJ,built_in:JJ,"variable.language":OJ},s="[0-9](_?[0-9])*",u=`\\.(${s})`,c="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",d={className:"number",variants:[{begin:`(\\b(${c})((${u})|\\.)?|(${u}))[eE][+-]?(${s})\\b`},{begin:`\\b(${c})\\b((${u})\\b|\\.)?|(${u})\\b`},{begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{begin:"\\b0[0-7]+n?\\b"}],relevance:0},g={className:"subst",begin:"\\$\\{",end:"\\}",keywords:l,contains:[]},h={begin:"html`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,g],subLanguage:"xml"}},m={begin:"css`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,g],subLanguage:"css"}},A={begin:"gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,g],subLanguage:"graphql"}},B={className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,g]},b={className:"comment",variants:[e.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{begin:"(?=@[A-Za-z]+)",relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"},{className:"type",begin:"\\{",end:"\\}",excludeEnd:!0,excludeBegin:!0,relevance:0},{className:"variable",begin:r+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]},Q=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,h,m,A,B,{match:/\$\d+/},d];g.contains=Q.concat({begin:/\{/,end:/\}/,keywords:l,contains:["self"].concat(Q)});const F=[].concat(b,g.contains),K=F.concat([{begin:/\(/,end:/\)/,keywords:l,contains:["self"].concat(F)}]),y={className:"params",begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:l,contains:K},G={variants:[{match:[/class/,/\s+/,r,/\s+/,/extends/,/\s+/,t.concat(r,"(",t.concat(/\./,r),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,r],scope:{1:"keyword",3:"title.class"}}]},X={relevance:0,match:t.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),className:"title.class",keywords:{_:[...YJ,...IJ]}},H={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},v={variants:[{match:[/function/,/\s+/,r,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[y],illegal:/%/},k={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function D(I){return t.concat("(?!",I.join("|"),")")}const V={match:t.concat(/\b/,D([...UJ,"super","import"]),r,t.lookahead(/\(/)),className:"title.function",relevance:0},z={begin:t.concat(/\./,t.lookahead(t.concat(r,/(?![0-9A-Za-z$_(])/))),end:r,excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},j={match:[/get|set/,/\s+/,r,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},y]},te="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+e.UNDERSCORE_IDENT_RE+")\\s*=>",J={match:[/const|var|let/,/\s+/,r,/\s*/,/=\s*/,/(async\s*)?/,t.lookahead(te)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[y]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:l,exports:{PARAMS_CONTAINS:K,CLASS_REFERENCE:X},illegal:/#(?![$_A-z])/,contains:[e.SHEBANG({label:"shebang",binary:"node",relevance:5}),H,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,h,m,A,B,b,{match:/\$\d+/},d,X,{className:"attr",begin:r+t.lookahead(":"),relevance:0},J,{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[b,e.REGEXP_MODE,{className:"function",begin:te,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:l,contains:K}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:i.begin,end:i.end},{match:a},{begin:o.begin,"on:begin":o.isTrulyOpeningTag,end:o.end}],subLanguage:"xml",contains:[{begin:o.begin,end:o.end,skip:!0,contains:["self"]}]}]},v,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+e.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[y,e.inherit(e.TITLE_MODE,{begin:r,className:"title.function"})]},{match:/\.\.\./,relevance:0},z,{match:"\\$"+r,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[y]},V,k,G,j,{match:/\$[(.]/}]}}function W6e(e){const t=Q6e(e),n=NB,r=["any","void","number","boolean","string","object","never","symbol","bigint","unknown"],i={beginKeywords:"namespace",end:/\{/,excludeEnd:!0,contains:[t.exports.CLASS_REFERENCE]},a={beginKeywords:"interface",end:/\{/,excludeEnd:!0,keywords:{keyword:"interface extends",built_in:r},contains:[t.exports.CLASS_REFERENCE]},o={className:"meta",relevance:10,begin:/^\s*['"]use strict['"]/},l=["type","namespace","interface","public","private","protected","implements","declare","abstract","readonly","enum","override"],s={$pattern:NB,keyword:TJ.concat(l),literal:VJ,built_in:JJ.concat(r),"variable.language":OJ},u={className:"meta",begin:"@"+n},c=(g,h,m)=>{const A=g.contains.findIndex(B=>B.label===h);if(A===-1)throw new Error("can not find mode to replace");g.contains.splice(A,1,m)};Object.assign(t.keywords,s),t.exports.PARAMS_CONTAINS.push(u),t.contains=t.contains.concat([u,i,a]),c(t,"shebang",e.SHEBANG()),c(t,"use_strict",o);const d=t.contains.find(g=>g.label==="func.def");return d.relevance=0,Object.assign(t,{name:"TypeScript",aliases:["ts","tsx","mts","cts"]}),t}function y6e(e){const t=e.regex,n={className:"string",begin:/"(""|[^/n])"C\b/},r={className:"string",begin:/"/,end:/"/,illegal:/\n/,contains:[{begin:/""/}]},i=/\d{1,2}\/\d{1,2}\/\d{4}/,a=/\d{4}-\d{1,2}-\d{1,2}/,o=/(\d|1[012])(:\d+){0,2} *(AM|PM)/,l=/\d{1,2}(:\d{1,2}){1,2}/,s={className:"literal",variants:[{begin:t.concat(/# */,t.either(a,i),/ *#/)},{begin:t.concat(/# */,l,/ *#/)},{begin:t.concat(/# */,o,/ *#/)},{begin:t.concat(/# */,t.either(a,i),/ +/,t.either(o,l),/ *#/)}]},u={className:"number",relevance:0,variants:[{begin:/\b\d[\d_]*((\.[\d_]+(E[+-]?[\d_]+)?)|(E[+-]?[\d_]+))[RFD@!#]?/},{begin:/\b\d[\d_]*((U?[SIL])|[%&])?/},{begin:/&H[\dA-F_]+((U?[SIL])|[%&])?/},{begin:/&O[0-7_]+((U?[SIL])|[%&])?/},{begin:/&B[01_]+((U?[SIL])|[%&])?/}]},c={className:"label",begin:/^\w+:/},d=e.COMMENT(/'''/,/$/,{contains:[{className:"doctag",begin:/<\/?/,end:/>/}]}),g=e.COMMENT(null,/$/,{variants:[{begin:/'/},{begin:/([\t ]|^)REM(?=\s)/}]});return{name:"Visual Basic .NET",aliases:["vb"],case_insensitive:!0,classNameAliases:{label:"symbol"},keywords:{keyword:"addhandler alias aggregate ansi as async assembly auto binary by byref byval call case catch class compare const continue custom declare default delegate dim distinct do each equals else elseif end enum erase error event exit explicit finally for friend from function get global goto group handles if implements imports in inherits interface into iterator join key let lib loop me mid module mustinherit mustoverride mybase myclass namespace narrowing new next notinheritable notoverridable of off on operator option optional order overloads overridable overrides paramarray partial preserve private property protected public raiseevent readonly redim removehandler resume return select set shadows shared skip static step stop structure strict sub synclock take text then throw to try unicode until using when where while widening with withevents writeonly yield",built_in:"addressof and andalso await directcast gettype getxmlnamespace is isfalse isnot istrue like mod nameof new not or orelse trycast typeof xor cbool cbyte cchar cdate cdbl cdec cint clng cobj csbyte cshort csng cstr cuint culng cushort",type:"boolean byte char date decimal double integer long object sbyte short single string uinteger ulong ushort",literal:"true false nothing"},illegal:"//|\\{|\\}|endif|gosub|variant|wend|^\\$ ",contains:[n,r,s,u,c,d,g,{className:"meta",begin:/[\t ]*#(const|disable|else|elseif|enable|end|externalsource|if|region)\b/,end:/$/,keywords:{keyword:"const disable else elseif enable end externalsource if region then"},contains:[g]}]}}function F6e(e){e.regex;const t=e.COMMENT(/\(;/,/;\)/);t.contains.push("self");const n=e.COMMENT(/;;/,/$/),r=["anyfunc","block","br","br_if","br_table","call","call_indirect","data","drop","elem","else","end","export","func","global.get","global.set","local.get","local.set","local.tee","get_global","get_local","global","if","import","local","loop","memory","memory.grow","memory.size","module","mut","nop","offset","param","result","return","select","set_global","set_local","start","table","tee_local","then","type","unreachable"],i={begin:[/(?:func|call|call_indirect)/,/\s+/,/\$[^\s)]+/],className:{1:"keyword",3:"title.function"}},a={className:"variable",begin:/\$[\w_]+/},o={match:/(\((?!;)|\))+/,className:"punctuation",relevance:0},l={className:"number",relevance:0,match:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/},s={match:/(i32|i64|f32|f64)(?!\.)/,className:"type"},u={className:"keyword",match:/\b(f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|nearest|neg?|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|store(?:8|16|32)?|sqrt|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))\b/};return{name:"WebAssembly",keywords:{$pattern:/[\w.]+/,keyword:r},contains:[n,t,{match:[/(?:offset|align)/,/\s*/,/=/],className:{1:"keyword",3:"operator"}},a,o,i,e.QUOTE_STRING_MODE,s,u,l]}}function E6e(e){const t=e.regex,n=t.concat(/[\p{L}_]/u,t.optional(/[\p{L}0-9_.-]*:/u),/[\p{L}0-9_.-]*/u),r=/[\p{L}0-9._:-]+/u,i={className:"symbol",begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},a={begin:/\s/,contains:[{className:"keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}]},o=e.inherit(a,{begin:/\(/,end:/\)/}),l=e.inherit(e.APOS_STRING_MODE,{className:"string"}),s=e.inherit(e.QUOTE_STRING_MODE,{className:"string"}),u={endsWithParent:!0,illegal:/`]+/}]}]}]};return{name:"HTML, XML",aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"],case_insensitive:!0,unicodeRegex:!0,contains:[{className:"meta",begin://,relevance:10,contains:[a,s,l,o,{begin:/\[/,end:/\]/,contains:[{className:"meta",begin://,contains:[a,o,s,l]}]}]},e.COMMENT(//,{relevance:10}),{begin://,relevance:10},i,{className:"meta",end:/\?>/,variants:[{begin:/<\?xml/,relevance:10,contains:[s]},{begin:/<\?[a-z][a-z0-9]+/}]},{className:"tag",begin:/)/,end:/>/,keywords:{name:"style"},contains:[u],starts:{end:/<\/style>/,returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag",begin:/)/,end:/>/,keywords:{name:"script"},contains:[u],starts:{end:/<\/script>/,returnEnd:!0,subLanguage:["javascript","handlebars","xml"]}},{className:"tag",begin:/<>|<\/>/},{className:"tag",begin:t.concat(//,/>/,/\s/)))),end:/\/?>/,contains:[{className:"name",begin:n,relevance:0,starts:u}]},{className:"tag",begin:t.concat(/<\//,t.lookahead(t.concat(n,/>/))),contains:[{className:"name",begin:n,relevance:0},{begin:/>/,relevance:0,endsParent:!0}]}]}}function R6e(e){const t="true false yes no null",n="[\\w#;/?:@&=+$,.~*'()[\\]]+",r={className:"attr",variants:[{begin:"\\w[\\w :\\/.-]*:(?=[ ]|$)"},{begin:'"\\w[\\w :\\/.-]*":(?=[ ]|$)'},{begin:"'\\w[\\w :\\/.-]*':(?=[ ]|$)"}]},i={className:"template-variable",variants:[{begin:/\{\{/,end:/\}\}/},{begin:/%\{/,end:/\}/}]},a={className:"string",relevance:0,variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/\S+/}],contains:[e.BACKSLASH_ESCAPE,i]},o=e.inherit(a,{variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/[^\s,{}[\]]+/}]}),l="[0-9]{4}(-[0-9][0-9]){0,2}",s="([Tt \\t][0-9][0-9]?(:[0-9][0-9]){2})?",u="(\\.[0-9]*)?",c="([ \\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?",d={className:"number",begin:"\\b"+l+s+u+c+"\\b"},g={end:",",endsWithParent:!0,excludeEnd:!0,keywords:t,relevance:0},h={begin:/\{/,end:/\}/,contains:[g],illegal:"\\n",relevance:0},m={begin:"\\[",end:"\\]",contains:[g],illegal:"\\n",relevance:0},A=[r,{className:"meta",begin:"^---\\s*$",relevance:10},{className:"string",begin:"[\\|>]([1-9]?[+-])?[ ]*\\n( +)[^ ][^\\n]*\\n(\\2[^\\n]+\\n?)*"},{begin:"<%[%=-]?",end:"[%-]?%>",subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0,relevance:0},{className:"type",begin:"!\\w+!"+n},{className:"type",begin:"!<"+n+">"},{className:"type",begin:"!"+n},{className:"type",begin:"!!"+n},{className:"meta",begin:"&"+e.UNDERSCORE_IDENT_RE+"$"},{className:"meta",begin:"\\*"+e.UNDERSCORE_IDENT_RE+"$"},{className:"bullet",begin:"-(?=[ ]|$)",relevance:0},e.HASH_COMMENT_MODE,{beginKeywords:t,keywords:{literal:t}},d,{className:"number",begin:e.C_NUMBER_RE+"\\b",relevance:0},h,m,a],B=[...A];return B.pop(),B.push(o),g.contains=B,{name:"YAML",case_insensitive:!0,aliases:["yml"],contains:A}}const S6e={arduino:A8e,bash:C8e,c:B8e,cpp:w8e,csharp:b8e,css:E8e,diff:R8e,go:S8e,graphql:x8e,ini:G8e,java:k8e,javascript:X8e,json:L8e,kotlin:T8e,less:J8e,lua:z8e,makefile:P8e,markdown:j8e,objectivec:_8e,perl:$8e,php:q8e,"php-template":e6e,plaintext:t6e,python:n6e,"python-repl":r6e,r:i6e,ruby:a6e,rust:o6e,scss:g6e,shell:h6e,sql:f6e,swift:K6e,typescript:W6e,vbnet:y6e,wasm:F6e,xml:E6e,yaml:R6e};function zJ(e){return e instanceof Map?e.clear=e.delete=e.set=function(){throw new Error("map is read-only")}:e instanceof Set&&(e.add=e.clear=e.delete=function(){throw new Error("set is read-only")}),Object.freeze(e),Object.getOwnPropertyNames(e).forEach(t=>{const n=e[t],r=typeof n;(r==="object"||r==="function")&&!Object.isFrozen(n)&&zJ(n)}),e}class UN{constructor(t){t.data===void 0&&(t.data={}),this.data=t.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}}function PJ(e){return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}function $u(e,...t){const n=Object.create(null);for(const r in e)n[r]=e[r];return t.forEach(function(r){for(const i in r)n[i]=r[i]}),n}const x6e="",ON=e=>!!e.scope,G6e=(e,{prefix:t})=>{if(e.startsWith("language:"))return e.replace("language:","language-");if(e.includes(".")){const n=e.split(".");return[`${t}${n.shift()}`,...n.map((r,i)=>`${r}${"_".repeat(i+1)}`)].join(" ")}return`${t}${e}`};class k6e{constructor(t,n){this.buffer="",this.classPrefix=n.classPrefix,t.walk(this)}addText(t){this.buffer+=PJ(t)}openNode(t){if(!ON(t))return;const n=G6e(t.scope,{prefix:this.classPrefix});this.span(n)}closeNode(t){ON(t)&&(this.buffer+=x6e)}value(){return this.buffer}span(t){this.buffer+=``}}const JN=(e={})=>{const t={children:[]};return Object.assign(t,e),t};class nR{constructor(){this.rootNode=JN(),this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(t){this.top.children.push(t)}openNode(t){const n=JN({scope:t});this.add(n),this.stack.push(n)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(t){return this.constructor._walk(t,this.rootNode)}static _walk(t,n){return typeof n=="string"?t.addText(n):n.children&&(t.openNode(n),n.children.forEach(r=>this._walk(t,r)),t.closeNode(n)),t}static _collapse(t){typeof t!="string"&&t.children&&(t.children.every(n=>typeof n=="string")?t.children=[t.children.join("")]:t.children.forEach(n=>{nR._collapse(n)}))}}class D6e extends nR{constructor(t){super(),this.options=t}addText(t){t!==""&&this.add(t)}startScope(t){this.openNode(t)}endScope(){this.closeNode()}__addSublanguage(t,n){const r=t.root;n&&(r.scope=`language:${n}`),this.add(r)}toHTML(){return new k6e(this,this.options).value()}finalize(){return this.closeAllNodes(),!0}}function Wf(e){return e?typeof e=="string"?e:e.source:null}function jJ(e){return md("(?=",e,")")}function N6e(e){return md("(?:",e,")*")}function Z6e(e){return md("(?:",e,")?")}function md(...e){return e.map(n=>Wf(n)).join("")}function H6e(e){const t=e[e.length-1];return typeof t=="object"&&t.constructor===Object?(e.splice(e.length-1,1),t):{}}function rR(...e){return"("+(H6e(e).capture?"":"?:")+e.map(r=>Wf(r)).join("|")+")"}function _J(e){return new RegExp(e.toString()+"|").exec("").length-1}function X6e(e,t){const n=e&&e.exec(t);return n&&n.index===0}const L6e=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function iR(e,{joinWith:t}){let n=0;return e.map(r=>{n+=1;const i=n;let a=Wf(r),o="";for(;a.length>0;){const l=L6e.exec(a);if(!l){o+=a;break}o+=a.substring(0,l.index),a=a.substring(l.index+l[0].length),l[0][0]==="\\"&&l[1]?o+="\\"+String(Number(l[1])+i):(o+=l[0],l[0]==="("&&n++)}return o}).map(r=>`(${r})`).join(t)}const M6e=/\b\B/,$J="[a-zA-Z]\\w*",aR="[a-zA-Z_]\\w*",qJ="\\b\\d+(\\.\\d+)?",ez="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",tz="\\b(0b[01]+)",T6e="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",V6e=(e={})=>{const t=/^#![ ]*\//;return e.binary&&(e.begin=md(t,/.*\b/,e.binary,/\b.*/)),$u({scope:"meta",begin:t,end:/$/,relevance:0,"on:begin":(n,r)=>{n.index!==0&&r.ignoreMatch()}},e)},yf={begin:"\\\\[\\s\\S]",relevance:0},Y6e={scope:"string",begin:"'",end:"'",illegal:"\\n",contains:[yf]},I6e={scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[yf]},U6e={begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},N3=function(e,t,n={}){const r=$u({scope:"comment",begin:e,end:t,contains:[]},n);r.contains.push({scope:"doctag",begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0});const i=rR("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/);return r.contains.push({begin:md(/[ ]+/,"(",i,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),r},O6e=N3("//","$"),J6e=N3("/\\*","\\*/"),z6e=N3("#","$"),P6e={scope:"number",begin:qJ,relevance:0},j6e={scope:"number",begin:ez,relevance:0},_6e={scope:"number",begin:tz,relevance:0},$6e={scope:"regexp",begin:/\/(?=[^/\n]*\/)/,end:/\/[gimuy]*/,contains:[yf,{begin:/\[/,end:/\]/,relevance:0,contains:[yf]}]},q6e={scope:"title",begin:$J,relevance:0},eSe={scope:"title",begin:aR,relevance:0},tSe={begin:"\\.\\s*"+aR,relevance:0},nSe=function(e){return Object.assign(e,{"on:begin":(t,n)=>{n.data._beginMatch=t[1]},"on:end":(t,n)=>{n.data._beginMatch!==t[1]&&n.ignoreMatch()}})};var A2=Object.freeze({__proto__:null,APOS_STRING_MODE:Y6e,BACKSLASH_ESCAPE:yf,BINARY_NUMBER_MODE:_6e,BINARY_NUMBER_RE:tz,COMMENT:N3,C_BLOCK_COMMENT_MODE:J6e,C_LINE_COMMENT_MODE:O6e,C_NUMBER_MODE:j6e,C_NUMBER_RE:ez,END_SAME_AS_BEGIN:nSe,HASH_COMMENT_MODE:z6e,IDENT_RE:$J,MATCH_NOTHING_RE:M6e,METHOD_GUARD:tSe,NUMBER_MODE:P6e,NUMBER_RE:qJ,PHRASAL_WORDS_MODE:U6e,QUOTE_STRING_MODE:I6e,REGEXP_MODE:$6e,RE_STARTERS_RE:T6e,SHEBANG:V6e,TITLE_MODE:q6e,UNDERSCORE_IDENT_RE:aR,UNDERSCORE_TITLE_MODE:eSe});function rSe(e,t){e.input[e.index-1]==="."&&t.ignoreMatch()}function iSe(e,t){e.className!==void 0&&(e.scope=e.className,delete e.className)}function aSe(e,t){t&&e.beginKeywords&&(e.begin="\\b("+e.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",e.__beforeBegin=rSe,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords,e.relevance===void 0&&(e.relevance=0))}function oSe(e,t){Array.isArray(e.illegal)&&(e.illegal=rR(...e.illegal))}function lSe(e,t){if(e.match){if(e.begin||e.end)throw new Error("begin & end are not supported with match");e.begin=e.match,delete e.match}}function sSe(e,t){e.relevance===void 0&&(e.relevance=1)}const uSe=(e,t)=>{if(!e.beforeMatch)return;if(e.starts)throw new Error("beforeMatch cannot be used with starts");const n=Object.assign({},e);Object.keys(e).forEach(r=>{delete e[r]}),e.keywords=n.keywords,e.begin=md(n.beforeMatch,jJ(n.begin)),e.starts={relevance:0,contains:[Object.assign(n,{endsParent:!0})]},e.relevance=0,delete n.beforeMatch},cSe=["of","and","for","in","not","or","if","then","parent","list","value"],dSe="keyword";function nz(e,t,n=dSe){const r=Object.create(null);return typeof e=="string"?i(n,e.split(" ")):Array.isArray(e)?i(n,e):Object.keys(e).forEach(function(a){Object.assign(r,nz(e[a],t,a))}),r;function i(a,o){t&&(o=o.map(l=>l.toLowerCase())),o.forEach(function(l){const s=l.split("|");r[s[0]]=[a,pSe(s[0],s[1])]})}}function pSe(e,t){return t?Number(t):gSe(e)?0:1}function gSe(e){return cSe.includes(e.toLowerCase())}const zN={},H0=e=>{console.error(e)},PN=(e,...t)=>{console.log(`WARN: ${e}`,...t)},qd=(e,t)=>{zN[`${e}/${t}`]||(console.log(`Deprecated as of ${e}. ${t}`),zN[`${e}/${t}`]=!0)},ZB=new Error;function rz(e,t,{key:n}){let r=0;const i=e[n],a={},o={};for(let l=1;l<=t.length;l++)o[l+r]=i[l],a[l+r]=!0,r+=_J(t[l-1]);e[n]=o,e[n]._emit=a,e[n]._multi=!0}function hSe(e){if(Array.isArray(e.begin)){if(e.skip||e.excludeBegin||e.returnBegin)throw H0("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),ZB;if(typeof e.beginScope!="object"||e.beginScope===null)throw H0("beginScope must be object"),ZB;rz(e,e.begin,{key:"beginScope"}),e.begin=iR(e.begin,{joinWith:""})}}function fSe(e){if(Array.isArray(e.end)){if(e.skip||e.excludeEnd||e.returnEnd)throw H0("skip, excludeEnd, returnEnd not compatible with endScope: {}"),ZB;if(typeof e.endScope!="object"||e.endScope===null)throw H0("endScope must be object"),ZB;rz(e,e.end,{key:"endScope"}),e.end=iR(e.end,{joinWith:""})}}function mSe(e){e.scope&&typeof e.scope=="object"&&e.scope!==null&&(e.beginScope=e.scope,delete e.scope)}function ASe(e){mSe(e),typeof e.beginScope=="string"&&(e.beginScope={_wrap:e.beginScope}),typeof e.endScope=="string"&&(e.endScope={_wrap:e.endScope}),hSe(e),fSe(e)}function CSe(e){function t(o,l){return new RegExp(Wf(o),"m"+(e.case_insensitive?"i":"")+(e.unicodeRegex?"u":"")+(l?"g":""))}class n{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(l,s){s.position=this.position++,this.matchIndexes[this.matchAt]=s,this.regexes.push([s,l]),this.matchAt+=_J(l)+1}compile(){this.regexes.length===0&&(this.exec=()=>null);const l=this.regexes.map(s=>s[1]);this.matcherRe=t(iR(l,{joinWith:"|"}),!0),this.lastIndex=0}exec(l){this.matcherRe.lastIndex=this.lastIndex;const s=this.matcherRe.exec(l);if(!s)return null;const u=s.findIndex((d,g)=>g>0&&d!==void 0),c=this.matchIndexes[u];return s.splice(0,u),Object.assign(s,c)}}class r{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(l){if(this.multiRegexes[l])return this.multiRegexes[l];const s=new n;return this.rules.slice(l).forEach(([u,c])=>s.addRule(u,c)),s.compile(),this.multiRegexes[l]=s,s}resumingScanAtSamePosition(){return this.regexIndex!==0}considerAll(){this.regexIndex=0}addRule(l,s){this.rules.push([l,s]),s.type==="begin"&&this.count++}exec(l){const s=this.getMatcher(this.regexIndex);s.lastIndex=this.lastIndex;let u=s.exec(l);if(this.resumingScanAtSamePosition()&&!(u&&u.index===this.lastIndex)){const c=this.getMatcher(0);c.lastIndex=this.lastIndex+1,u=c.exec(l)}return u&&(this.regexIndex+=u.position+1,this.regexIndex===this.count&&this.considerAll()),u}}function i(o){const l=new r;return o.contains.forEach(s=>l.addRule(s.begin,{rule:s,type:"begin"})),o.terminatorEnd&&l.addRule(o.terminatorEnd,{type:"end"}),o.illegal&&l.addRule(o.illegal,{type:"illegal"}),l}function a(o,l){const s=o;if(o.isCompiled)return s;[iSe,lSe,ASe,uSe].forEach(c=>c(o,l)),e.compilerExtensions.forEach(c=>c(o,l)),o.__beforeBegin=null,[aSe,oSe,sSe].forEach(c=>c(o,l)),o.isCompiled=!0;let u=null;return typeof o.keywords=="object"&&o.keywords.$pattern&&(o.keywords=Object.assign({},o.keywords),u=o.keywords.$pattern,delete o.keywords.$pattern),u=u||/\w+/,o.keywords&&(o.keywords=nz(o.keywords,e.case_insensitive)),s.keywordPatternRe=t(u,!0),l&&(o.begin||(o.begin=/\B|\b/),s.beginRe=t(s.begin),!o.end&&!o.endsWithParent&&(o.end=/\B|\b/),o.end&&(s.endRe=t(s.end)),s.terminatorEnd=Wf(s.end)||"",o.endsWithParent&&l.terminatorEnd&&(s.terminatorEnd+=(o.end?"|":"")+l.terminatorEnd)),o.illegal&&(s.illegalRe=t(o.illegal)),o.contains||(o.contains=[]),o.contains=[].concat(...o.contains.map(function(c){return BSe(c==="self"?o:c)})),o.contains.forEach(function(c){a(c,s)}),o.starts&&a(o.starts,l),s.matcher=i(s),s}if(e.compilerExtensions||(e.compilerExtensions=[]),e.contains&&e.contains.includes("self"))throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return e.classNameAliases=$u(e.classNameAliases||{}),a(e)}function iz(e){return e?e.endsWithParent||iz(e.starts):!1}function BSe(e){return e.variants&&!e.cachedVariants&&(e.cachedVariants=e.variants.map(function(t){return $u(e,{variants:null},t)})),e.cachedVariants?e.cachedVariants:iz(e)?$u(e,{starts:e.starts?$u(e.starts):null}):Object.isFrozen(e)?$u(e):e}var wSe="11.9.0";class bSe extends Error{constructor(t,n){super(t),this.name="HTMLInjectionError",this.html=n}}const IK=PJ,jN=$u,_N=Symbol("nomatch"),vSe=7,az=function(e){const t=Object.create(null),n=Object.create(null),r=[];let i=!0;const a="Could not find the language '{}', did you forget to load/include a language module?",o={disableAutodetect:!0,name:"Plain text",contains:[]};let l={ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",cssSelector:"pre code",languages:null,__emitter:D6e};function s(J){return l.noHighlightRe.test(J)}function u(J){let I=J.className+" ";I+=J.parentNode?J.parentNode.className:"";const se=l.languageDetectRe.exec(I);if(se){const Z=H(se[1]);return Z||(PN(a.replace("{}",se[1])),PN("Falling back to no-highlight mode for this block.",J)),Z?se[1]:"no-highlight"}return I.split(/\s+/).find(Z=>s(Z)||H(Z))}function c(J,I,se){let Z="",S="";typeof I=="object"?(Z=J,se=I.ignoreIllegals,S=I.language):(qd("10.7.0","highlight(lang, code, ...args) has been deprecated."),qd("10.7.0",`Please use highlight(code, options) instead. +https://github.com/highlightjs/highlight.js/issues/2277`),S=J,Z=I),se===void 0&&(se=!0);const q={code:Z,language:S};j("before:highlight",q);const T=q.result?q.result:d(q.language,q.code,se);return T.code=q.code,j("after:highlight",T),T}function d(J,I,se,Z){const S=Object.create(null);function q(de,we){return de.keywords[we]}function T(){if(!le.keywords){Re.addText(Qe);return}let de=0;le.keywordPatternRe.lastIndex=0;let we=le.keywordPatternRe.exec(Qe),ae="";for(;we;){ae+=Qe.substring(de,we.index);const xe=ht.case_insensitive?we[0].toLowerCase():we[0],nt=q(le,xe);if(nt){const[ft,Bt]=nt;if(Re.addText(ae),ae="",S[xe]=(S[xe]||0)+1,S[xe]<=vSe&&(We+=Bt),ft.startsWith("_"))ae+=we[0];else{const $=ht.classNameAliases[ft]||ft;_(we[0],$)}}else ae+=we[0];de=le.keywordPatternRe.lastIndex,we=le.keywordPatternRe.exec(Qe)}ae+=Qe.substring(de),Re.addText(ae)}function ue(){if(Qe==="")return;let de=null;if(typeof le.subLanguage=="string"){if(!t[le.subLanguage]){Re.addText(Qe);return}de=d(le.subLanguage,Qe,!0,me[le.subLanguage]),me[le.subLanguage]=de._top}else de=h(Qe,le.subLanguage.length?le.subLanguage:null);le.relevance>0&&(We+=de.relevance),Re.__addSublanguage(de._emitter,de.language)}function fe(){le.subLanguage!=null?ue():T(),Qe=""}function _(de,we){de!==""&&(Re.startScope(we),Re.addText(de),Re.endScope())}function Ze(de,we){let ae=1;const xe=we.length-1;for(;ae<=xe;){if(!de._emit[ae]){ae++;continue}const nt=ht.classNameAliases[de[ae]]||de[ae],ft=we[ae];nt?_(ft,nt):(Qe=ft,T(),Qe=""),ae++}}function ve(de,we){return de.scope&&typeof de.scope=="string"&&Re.openNode(ht.classNameAliases[de.scope]||de.scope),de.beginScope&&(de.beginScope._wrap?(_(Qe,ht.classNameAliases[de.beginScope._wrap]||de.beginScope._wrap),Qe=""):de.beginScope._multi&&(Ze(de.beginScope,we),Qe="")),le=Object.create(de,{parent:{value:le}}),le}function it(de,we,ae){let xe=X6e(de.endRe,ae);if(xe){if(de["on:end"]){const nt=new UN(de);de["on:end"](we,nt),nt.isMatchIgnored&&(xe=!1)}if(xe){for(;de.endsParent&&de.parent;)de=de.parent;return de}}if(de.endsWithParent)return it(de.parent,we,ae)}function et(de){return le.matcher.regexIndex===0?(Qe+=de[0],1):(Ce=!0,0)}function ot(de){const we=de[0],ae=de.rule,xe=new UN(ae),nt=[ae.__beforeBegin,ae["on:begin"]];for(const ft of nt)if(ft&&(ft(de,xe),xe.isMatchIgnored))return et(we);return ae.skip?Qe+=we:(ae.excludeBegin&&(Qe+=we),fe(),!ae.returnBegin&&!ae.excludeBegin&&(Qe=we)),ve(ae,de),ae.returnBegin?0:we.length}function Oe(de){const we=de[0],ae=I.substring(de.index),xe=it(le,de,ae);if(!xe)return _N;const nt=le;le.endScope&&le.endScope._wrap?(fe(),_(we,le.endScope._wrap)):le.endScope&&le.endScope._multi?(fe(),Ze(le.endScope,de)):nt.skip?Qe+=we:(nt.returnEnd||nt.excludeEnd||(Qe+=we),fe(),nt.excludeEnd&&(Qe=we));do le.scope&&Re.closeNode(),!le.skip&&!le.subLanguage&&(We+=le.relevance),le=le.parent;while(le!==xe.parent);return xe.starts&&ve(xe.starts,de),nt.returnEnd?0:we.length}function tt(){const de=[];for(let we=le;we!==ht;we=we.parent)we.scope&&de.unshift(we.scope);de.forEach(we=>Re.openNode(we))}let st={};function pt(de,we){const ae=we&&we[0];if(Qe+=de,ae==null)return fe(),0;if(st.type==="begin"&&we.type==="end"&&st.index===we.index&&ae===""){if(Qe+=I.slice(we.index,we.index+1),!i){const xe=new Error(`0 width match regex (${J})`);throw xe.languageName=J,xe.badRule=st.rule,xe}return 1}if(st=we,we.type==="begin")return ot(we);if(we.type==="illegal"&&!se){const xe=new Error('Illegal lexeme "'+ae+'" for mode "'+(le.scope||"")+'"');throw xe.mode=le,xe}else if(we.type==="end"){const xe=Oe(we);if(xe!==_N)return xe}if(we.type==="illegal"&&ae==="")return 1;if(Ie>1e5&&Ie>we.index*3)throw new Error("potential infinite loop, way more iterations than matches");return Qe+=ae,ae.length}const ht=H(J);if(!ht)throw H0(a.replace("{}",J)),new Error('Unknown language: "'+J+'"');const lt=CSe(ht);let P="",le=Z||lt;const me={},Re=new l.__emitter(l);tt();let Qe="",We=0,Ee=0,Ie=0,Ce=!1;try{if(ht.__emitTokens)ht.__emitTokens(I,Re);else{for(le.matcher.considerAll();;){Ie++,Ce?Ce=!1:le.matcher.considerAll(),le.matcher.lastIndex=Ee;const de=le.matcher.exec(I);if(!de)break;const we=I.substring(Ee,de.index),ae=pt(we,de);Ee=de.index+ae}pt(I.substring(Ee))}return Re.finalize(),P=Re.toHTML(),{language:J,value:P,relevance:We,illegal:!1,_emitter:Re,_top:le}}catch(de){if(de.message&&de.message.includes("Illegal"))return{language:J,value:IK(I),illegal:!0,relevance:0,_illegalBy:{message:de.message,index:Ee,context:I.slice(Ee-100,Ee+100),mode:de.mode,resultSoFar:P},_emitter:Re};if(i)return{language:J,value:IK(I),illegal:!1,relevance:0,errorRaised:de,_emitter:Re,_top:le};throw de}}function g(J){const I={value:IK(J),illegal:!1,relevance:0,_top:o,_emitter:new l.__emitter(l)};return I._emitter.addText(J),I}function h(J,I){I=I||l.languages||Object.keys(t);const se=g(J),Z=I.filter(H).filter(k).map(fe=>d(fe,J,!1));Z.unshift(se);const S=Z.sort((fe,_)=>{if(fe.relevance!==_.relevance)return _.relevance-fe.relevance;if(fe.language&&_.language){if(H(fe.language).supersetOf===_.language)return 1;if(H(_.language).supersetOf===fe.language)return-1}return 0}),[q,T]=S,ue=q;return ue.secondBest=T,ue}function m(J,I,se){const Z=I&&n[I]||se;J.classList.add("hljs"),J.classList.add(`language-${Z}`)}function A(J){let I=null;const se=u(J);if(s(se))return;if(j("before:highlightElement",{el:J,language:se}),J.dataset.highlighted){console.log("Element previously highlighted. To highlight again, first unset `dataset.highlighted`.",J);return}if(J.children.length>0&&(l.ignoreUnescapedHTML||(console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."),console.warn("https://github.com/highlightjs/highlight.js/wiki/security"),console.warn("The element with unescaped HTML:"),console.warn(J)),l.throwUnescapedHTML))throw new bSe("One of your code blocks includes unescaped HTML.",J.innerHTML);I=J;const Z=I.textContent,S=se?c(Z,{language:se,ignoreIllegals:!0}):h(Z);J.innerHTML=S.value,J.dataset.highlighted="yes",m(J,se,S.language),J.result={language:S.language,re:S.relevance,relevance:S.relevance},S.secondBest&&(J.secondBest={language:S.secondBest.language,relevance:S.secondBest.relevance}),j("after:highlightElement",{el:J,result:S,text:Z})}function B(J){l=jN(l,J)}const C=()=>{F(),qd("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")};function b(){F(),qd("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.")}let Q=!1;function F(){if(document.readyState==="loading"){Q=!0;return}document.querySelectorAll(l.cssSelector).forEach(A)}function K(){Q&&F()}typeof window<"u"&&window.addEventListener&&window.addEventListener("DOMContentLoaded",K,!1);function y(J,I){let se=null;try{se=I(e)}catch(Z){if(H0("Language definition for '{}' could not be registered.".replace("{}",J)),i)H0(Z);else throw Z;se=o}se.name||(se.name=J),t[J]=se,se.rawDefinition=I.bind(null,e),se.aliases&&v(se.aliases,{languageName:J})}function G(J){delete t[J];for(const I of Object.keys(n))n[I]===J&&delete n[I]}function X(){return Object.keys(t)}function H(J){return J=(J||"").toLowerCase(),t[J]||t[n[J]]}function v(J,{languageName:I}){typeof J=="string"&&(J=[J]),J.forEach(se=>{n[se.toLowerCase()]=I})}function k(J){const I=H(J);return I&&!I.disableAutodetect}function D(J){J["before:highlightBlock"]&&!J["before:highlightElement"]&&(J["before:highlightElement"]=I=>{J["before:highlightBlock"](Object.assign({block:I.el},I))}),J["after:highlightBlock"]&&!J["after:highlightElement"]&&(J["after:highlightElement"]=I=>{J["after:highlightBlock"](Object.assign({block:I.el},I))})}function V(J){D(J),r.push(J)}function z(J){const I=r.indexOf(J);I!==-1&&r.splice(I,1)}function j(J,I){const se=J;r.forEach(function(Z){Z[se]&&Z[se](I)})}function te(J){return qd("10.7.0","highlightBlock will be removed entirely in v12.0"),qd("10.7.0","Please use highlightElement now."),A(J)}Object.assign(e,{highlight:c,highlightAuto:h,highlightAll:F,highlightElement:A,highlightBlock:te,configure:B,initHighlighting:C,initHighlightingOnLoad:b,registerLanguage:y,unregisterLanguage:G,listLanguages:X,getLanguage:H,registerAliases:v,autoDetection:k,inherit:jN,addPlugin:V,removePlugin:z}),e.debugMode=function(){i=!1},e.safeMode=function(){i=!0},e.versionString=wSe,e.regex={concat:md,lookahead:jJ,either:rR,optional:Z6e,anyNumberOfTimes:N6e};for(const J in A2)typeof A2[J]=="object"&&zJ(A2[J]);return Object.assign(e,A2),e},b1=az({});b1.newInstance=()=>az({});var KSe=b1;b1.HighlightJS=b1;b1.default=b1;const QSe=Fl(KSe),$N={},WSe="hljs-";function ySe(e){const t=QSe.newInstance();return e&&a(e),{highlight:n,highlightAuto:r,listLanguages:i,register:a,registerAlias:o,registered:l};function n(s,u,c){const d=c||$N,g=typeof d.prefix=="string"?d.prefix:WSe;if(!t.getLanguage(s))throw new Error("Unknown language: `"+s+"` is not registered");t.configure({__emitter:FSe,classPrefix:g});const h=t.highlight(u,{ignoreIllegals:!0,language:s});if(h.errorRaised)throw new Error("Could not highlight with `Highlight.js`",{cause:h.errorRaised});const m=h._emitter.root,A=m.data;return A.language=h.language,A.relevance=h.relevance,m}function r(s,u){const d=(u||$N).subset||i();let g=-1,h=0,m;for(;++gh&&(h=B.data.relevance,m=B)}return m||{type:"root",children:[],data:{language:void 0,relevance:h}}}function i(){return t.listLanguages()}function a(s,u){if(typeof s=="string")t.registerLanguage(s,u);else{let c;for(c in s)Object.hasOwn(s,c)&&t.registerLanguage(c,s[c])}}function o(s,u){if(typeof s=="string")t.registerAliases(typeof u=="string"?u:[...u],{languageName:s});else{let c;for(c in s)if(Object.hasOwn(s,c)){const d=s[c];t.registerAliases(typeof d=="string"?d:[...d],{languageName:c})}}}function l(s){return!!t.getLanguage(s)}}class FSe{constructor(t){this.options=t,this.root={type:"root",children:[],data:{language:void 0,relevance:0}},this.stack=[this.root]}addText(t){if(t==="")return;const n=this.stack[this.stack.length-1],r=n.children[n.children.length-1];r&&r.type==="text"?r.value+=t:n.children.push({type:"text",value:t})}startScope(t){this.openNode(String(t))}endScope(){this.closeNode()}__addSublanguage(t,n){const r=this.stack[this.stack.length-1],i=t.root.children;n?r.children.push({type:"element",tagName:"span",properties:{className:[n]},children:i}):r.children.push(...i)}openNode(t){const n=this,r=t.split(".").map(function(o,l){return l?o+"_".repeat(l):n.options.classPrefix+o}),i=this.stack[this.stack.length-1],a={type:"element",tagName:"span",properties:{className:r},children:[]};i.children.push(a),this.stack.push(a)}closeNode(){this.stack.pop()}finalize(){}toHTML(){return""}}const ESe={};function RSe(e){const t=e||ESe,n=t.aliases,r=t.detect||!1,i=t.languages||S6e,a=t.plainText,o=t.prefix,l=t.subset;let s="hljs";const u=ySe(i);if(n&&u.registerAlias(n),o){const c=o.indexOf("-");s=c>-1?o.slice(0,c):o}return function(c,d){p3(c,"element",function(g,h,m){if(g.tagName!=="code"||!m||m.type!=="element"||m.tagName!=="pre")return;const A=SSe(g);if(A===!1||!A&&!r||A&&a&&a.includes(A))return;Array.isArray(g.properties.className)||(g.properties.className=[]),g.properties.className.includes(s)||g.properties.className.unshift(s);let B;try{B=A?u.highlight(A,CF(m),{prefix:o}):u.highlightAuto(CF(m),{prefix:o,subset:l})}catch(C){const b=C;if(A&&/Unknown language/.test(b.message)){d.message("Cannot highlight as `"+A+"`, it’s not registered",{ancestors:[m,g],cause:b,place:g.position,ruleId:"missing-language",source:"rehype-highlight"});return}throw b}!A&&B.data&&B.data.language&&g.properties.className.push("language-"+B.data.language),B.children.length>0&&(g.children=B.children)})}}function SSe(e){const t=e.properties.className;let n=-1;if(Array.isArray(t))for(;++n15?u="…"+l.slice(i-15,i):u=l.slice(0,i);var c;a+15":">","<":"<",'"':""","'":"'"},e7e=/[&><"']/g;function t7e(e){return String(e).replace(e7e,t=>qSe[t])}var uz=function e(t){return t.type==="ordgroup"||t.type==="color"?t.body.length===1?e(t.body[0]):t:t.type==="font"?e(t.body):t},n7e=function(t){var n=uz(t);return n.type==="mathord"||n.type==="textord"||n.type==="atom"},r7e=function(t){if(!t)throw new Error("Expected non-null, but got "+String(t));return t},i7e=function(t){var n=/^[\x00-\x20]*([^\\/#?]*?)(:|�*58|�*3a|&colon)/i.exec(t);return n?n[2]!==":"||!/^[a-zA-Z][a-zA-Z0-9+\-.]*$/.test(n[1])?null:n[1].toLowerCase():"_relative"},Ht={contains:PSe,deflt:jSe,escape:t7e,hyphenate:$Se,getBaseElem:uz,isCharacterBox:n7e,protocolFromUrl:i7e},mC={displayMode:{type:"boolean",description:"Render math in display mode, which puts the math in display style (so \\int and \\sum are large, for example), and centers the math on the page on its own line.",cli:"-d, --display-mode"},output:{type:{enum:["htmlAndMathml","html","mathml"]},description:"Determines the markup language of the output.",cli:"-F, --format "},leqno:{type:"boolean",description:"Render display math in leqno style (left-justified tags)."},fleqn:{type:"boolean",description:"Render display math flush left."},throwOnError:{type:"boolean",default:!0,cli:"-t, --no-throw-on-error",cliDescription:"Render errors (in the color given by --error-color) instead of throwing a ParseError exception when encountering an error."},errorColor:{type:"string",default:"#cc0000",cli:"-c, --error-color ",cliDescription:"A color string given in the format 'rgb' or 'rrggbb' (no #). This option determines the color of errors rendered by the -t option.",cliProcessor:e=>"#"+e},macros:{type:"object",cli:"-m, --macro ",cliDescription:"Define custom macro of the form '\\foo:expansion' (use multiple -m arguments for multiple macros).",cliDefault:[],cliProcessor:(e,t)=>(t.push(e),t)},minRuleThickness:{type:"number",description:"Specifies a minimum thickness, in ems, for fraction lines, `\\sqrt` top lines, `{array}` vertical lines, `\\hline`, `\\hdashline`, `\\underline`, `\\overline`, and the borders of `\\fbox`, `\\boxed`, and `\\fcolorbox`.",processor:e=>Math.max(0,e),cli:"--min-rule-thickness ",cliProcessor:parseFloat},colorIsTextColor:{type:"boolean",description:"Makes \\color behave like LaTeX's 2-argument \\textcolor, instead of LaTeX's one-argument \\color mode change.",cli:"-b, --color-is-text-color"},strict:{type:[{enum:["warn","ignore","error"]},"boolean","function"],description:"Turn on strict / LaTeX faithfulness mode, which throws an error if the input uses features that are not supported by LaTeX.",cli:"-S, --strict",cliDefault:!1},trust:{type:["boolean","function"],description:"Trust the input, enabling all HTML features such as \\url.",cli:"-T, --trust"},maxSize:{type:"number",default:1/0,description:"If non-zero, all user-specified sizes, e.g. in \\rule{500em}{500em}, will be capped to maxSize ems. Otherwise, elements and spaces can be arbitrarily large",processor:e=>Math.max(0,e),cli:"-s, --max-size ",cliProcessor:parseInt},maxExpand:{type:"number",default:1e3,description:"Limit the number of macro expansions to the specified number, to prevent e.g. infinite macro loops. If set to Infinity, the macro expander will try to fully expand as in LaTeX.",processor:e=>Math.max(0,e),cli:"-e, --max-expand ",cliProcessor:e=>e==="Infinity"?1/0:parseInt(e)},globalGroup:{type:"boolean",cli:!1}};function a7e(e){if(e.default)return e.default;var t=e.type,n=Array.isArray(t)?t[0]:t;if(typeof n!="string")return n.enum[0];switch(n){case"boolean":return!1;case"string":return"";case"number":return 0;case"object":return{}}}let oR=class{constructor(t){this.displayMode=void 0,this.output=void 0,this.leqno=void 0,this.fleqn=void 0,this.throwOnError=void 0,this.errorColor=void 0,this.macros=void 0,this.minRuleThickness=void 0,this.colorIsTextColor=void 0,this.strict=void 0,this.trust=void 0,this.maxSize=void 0,this.maxExpand=void 0,this.globalGroup=void 0,t=t||{};for(var n in mC)if(mC.hasOwnProperty(n)){var r=mC[n];this[n]=t[n]!==void 0?r.processor?r.processor(t[n]):t[n]:a7e(r)}}reportNonstrict(t,n,r){var i=this.strict;if(typeof i=="function"&&(i=i(t,n,r)),!(!i||i==="ignore")){if(i===!0||i==="error")throw new $e("LaTeX-incompatible input and strict mode is set to 'error': "+(n+" ["+t+"]"),r);i==="warn"?typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to 'warn': "+(n+" ["+t+"]")):typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to "+("unrecognized '"+i+"': "+n+" ["+t+"]"))}}useStrictBehavior(t,n,r){var i=this.strict;if(typeof i=="function")try{i=i(t,n,r)}catch{i="error"}return!i||i==="ignore"?!1:i===!0||i==="error"?!0:i==="warn"?(typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to 'warn': "+(n+" ["+t+"]")),!1):(typeof console<"u"&&console.warn("LaTeX-incompatible input and strict mode is set to "+("unrecognized '"+i+"': "+n+" ["+t+"]")),!1)}isTrusted(t){if(t.url&&!t.protocol){var n=Ht.protocolFromUrl(t.url);if(n==null)return!1;t.protocol=n}var r=typeof this.trust=="function"?this.trust(t):this.trust;return!!r}};class Gu{constructor(t,n,r){this.id=void 0,this.size=void 0,this.cramped=void 0,this.id=t,this.size=n,this.cramped=r}sup(){return Vl[o7e[this.id]]}sub(){return Vl[l7e[this.id]]}fracNum(){return Vl[s7e[this.id]]}fracDen(){return Vl[u7e[this.id]]}cramp(){return Vl[c7e[this.id]]}text(){return Vl[d7e[this.id]]}isTight(){return this.size>=2}}var lR=0,HB=1,Jp=2,$s=3,Ff=4,Do=5,v1=6,$i=7,Vl=[new Gu(lR,0,!1),new Gu(HB,0,!0),new Gu(Jp,1,!1),new Gu($s,1,!0),new Gu(Ff,2,!1),new Gu(Do,2,!0),new Gu(v1,3,!1),new Gu($i,3,!0)],o7e=[Ff,Do,Ff,Do,v1,$i,v1,$i],l7e=[Do,Do,Do,Do,$i,$i,$i,$i],s7e=[Jp,$s,Ff,Do,v1,$i,v1,$i],u7e=[$s,$s,Do,Do,$i,$i,$i,$i],c7e=[HB,HB,$s,$s,Do,Do,$i,$i],d7e=[lR,HB,Jp,$s,Jp,$s,Jp,$s],Tt={DISPLAY:Vl[lR],TEXT:Vl[Jp],SCRIPT:Vl[Ff],SCRIPTSCRIPT:Vl[v1]},bF=[{name:"latin",blocks:[[256,591],[768,879]]},{name:"cyrillic",blocks:[[1024,1279]]},{name:"armenian",blocks:[[1328,1423]]},{name:"brahmic",blocks:[[2304,4255]]},{name:"georgian",blocks:[[4256,4351]]},{name:"cjk",blocks:[[12288,12543],[19968,40879],[65280,65376]]},{name:"hangul",blocks:[[44032,55215]]}];function p7e(e){for(var t=0;t=i[0]&&e<=i[1])return n.name}return null}var AC=[];bF.forEach(e=>e.blocks.forEach(t=>AC.push(...t)));function cz(e){for(var t=0;t=AC[t]&&e<=AC[t+1])return!0;return!1}var ep=80,g7e=function(t,n){return"M95,"+(622+t+n)+` c-2.7,0,-7.17,-2.7,-13.5,-8c-5.8,-5.3,-9.5,-10,-9.5,-14 c0,-2,0.3,-3.3,1,-4c1.3,-2.7,23.83,-20.7,67.5,-54 c44.2,-33.3,65.8,-50.3,66.5,-51c1.3,-1.3,3,-2,5,-2c4.7,0,8.7,3.3,12,10 s173,378,173,378c0.7,0,35.3,-71,104,-213c68.7,-142,137.5,-285,206.5,-429 c69,-144,104.5,-217.7,106.5,-221 -l`+l/2.075+" -"+l+` +l`+t/2.075+" -"+t+` c5.3,-9.3,12,-14,20,-14 -H400000v`+(40+l)+`H845.2724 +H400000v`+(40+t)+`H845.2724 s-225.272,467,-225.272,467s-235,486,-235,486c-2.7,4.7,-9,7,-19,7 c-6,0,-10,-1,-12,-3s-194,-422,-194,-422s-65,47,-65,47z -M`+(834+l)+" "+c+"h400000v"+(40+l)+"h-400000z"},gBI=function(l,c){return"M263,"+(601+l+c)+`c0.7,0,18,39.7,52,119 +M`+(834+t)+" "+n+"h400000v"+(40+t)+"h-400000z"},h7e=function(t,n){return"M263,"+(601+t+n)+`c0.7,0,18,39.7,52,119 c34,79.3,68.167,158.7,102.5,238c34.3,79.3,51.8,119.3,52.5,120 c340,-704.7,510.7,-1060.3,512,-1067 -l`+l/2.084+" -"+l+` +l`+t/2.084+" -"+t+` c4.7,-7.3,11,-11,19,-11 -H40000v`+(40+l)+`H1012.3 +H40000v`+(40+t)+`H1012.3 s-271.3,567,-271.3,567c-38.7,80.7,-84,175,-136,283c-52,108,-89.167,185.3,-111.5,232 c-22.3,46.7,-33.8,70.3,-34.5,71c-4.7,4.7,-12.3,7,-23,7s-12,-1,-12,-1 s-109,-253,-109,-253c-72.7,-168,-109.3,-252,-110,-252c-10.7,8,-22,16.7,-34,26 c-22,17.3,-33.3,26,-34,26s-26,-26,-26,-26s76,-59,76,-59s76,-60,76,-60z -M`+(1001+l)+" "+c+"h400000v"+(40+l)+"h-400000z"},ABI=function(l,c){return"M983 "+(10+l+c)+` -l`+l/3.13+" -"+l+` -c4,-6.7,10,-10,18,-10 H400000v`+(40+l)+` +M`+(1001+t)+" "+n+"h400000v"+(40+t)+"h-400000z"},f7e=function(t,n){return"M983 "+(10+t+n)+` +l`+t/3.13+" -"+t+` +c4,-6.7,10,-10,18,-10 H400000v`+(40+t)+` H1013.1s-83.4,268,-264.1,840c-180.7,572,-277,876.3,-289,913c-4.7,4.7,-12.7,7,-24,7 s-12,0,-12,0c-1.3,-3.3,-3.7,-11.7,-7,-25c-35.3,-125.3,-106.7,-373.3,-214,-744 c-10,12,-21,25,-33,39s-32,39,-32,39c-6,-5.3,-15,-14,-27,-26s25,-30,25,-30 c26.7,-32.7,52,-63,76,-91s52,-60,52,-60s208,722,208,722 c56,-175.3,126.3,-397.3,211,-666c84.7,-268.7,153.8,-488.2,207.5,-658.5 c53.7,-170.3,84.5,-266.8,92.5,-289.5z -M`+(1001+l)+" "+c+"h400000v"+(40+l)+"h-400000z"},yBI=function(l,c){return"M424,"+(2398+l+c)+` +M`+(1001+t)+" "+n+"h400000v"+(40+t)+"h-400000z"},m7e=function(t,n){return"M424,"+(2398+t+n)+` c-1.3,-0.7,-38.5,-172,-111.5,-514c-73,-342,-109.8,-513.3,-110.5,-514 c0,-2,-10.7,14.3,-32,49c-4.7,7.3,-9.8,15.7,-15.5,25c-5.7,9.3,-9.8,16,-12.5,20 s-5,7,-5,7c-4,-3.3,-8.3,-7.7,-13,-13s-13,-13,-13,-13s76,-122,76,-122s77,-121,77,-121 s209,968,209,968c0,-2,84.7,-361.7,254,-1079c169.3,-717.3,254.7,-1077.7,256,-1081 -l`+l/4.223+" -"+l+`c4,-6.7,10,-10,18,-10 H400000 -v`+(40+l)+`H1014.6 +l`+t/4.223+" -"+t+`c4,-6.7,10,-10,18,-10 H400000 +v`+(40+t)+`H1014.6 s-87.3,378.7,-272.6,1166c-185.3,787.3,-279.3,1182.3,-282,1185 c-2,6,-10,9,-24,9 -c-8,0,-12,-0.7,-12,-2z M`+(1001+l)+" "+c+` -h400000v`+(40+l)+"h-400000z"},JBI=function(l,c){return"M473,"+(2713+l+c)+` -c339.3,-1799.3,509.3,-2700,510,-2702 l`+l/5.298+" -"+l+` -c3.3,-7.3,9.3,-11,18,-11 H400000v`+(40+l)+`H1017.7 +c-8,0,-12,-0.7,-12,-2z M`+(1001+t)+" "+n+` +h400000v`+(40+t)+"h-400000z"},A7e=function(t,n){return"M473,"+(2713+t+n)+` +c339.3,-1799.3,509.3,-2700,510,-2702 l`+t/5.298+" -"+t+` +c3.3,-7.3,9.3,-11,18,-11 H400000v`+(40+t)+`H1017.7 s-90.5,478,-276.2,1466c-185.7,988,-279.5,1483,-281.5,1485c-2,6,-10,9,-24,9 c-8,0,-12,-0.7,-12,-2c0,-1.3,-5.3,-32,-16,-92c-50.7,-293.3,-119.7,-693.3,-207,-1200 c0,-1.3,-5.3,8.7,-16,30c-10.7,21.3,-21.3,42.7,-32,64s-16,33,-16,33s-26,-26,-26,-26 s76,-153,76,-153s77,-151,77,-151c0.7,0.7,35.7,202,105,604c67.3,400.7,102,602.7,104, -606zM`+(1001+l)+" "+c+"h400000v"+(40+l)+"H1017.7z"},BBI=function(l){var c=l/2;return"M400000 "+l+" H0 L"+c+" 0 l65 45 L145 "+(l-80)+" H400000z"},kBI=function(l,c,G){var e=G-54-c-l;return"M702 "+(l+c)+"H400000"+(40+l)+` -H742v`+e+`l-4 4-4 4c-.667.7 -2 1.5-4 2.5s-4.167 1.833-6.5 2.5-5.5 1-9.5 1 +606zM`+(1001+t)+" "+n+"h400000v"+(40+t)+"H1017.7z"},C7e=function(t){var n=t/2;return"M400000 "+t+" H0 L"+n+" 0 l65 45 L145 "+(t-80)+" H400000z"},B7e=function(t,n,r){var i=r-54-n-t;return"M702 "+(t+n)+"H400000"+(40+t)+` +H742v`+i+`l-4 4-4 4c-.667.7 -2 1.5-4 2.5s-4.167 1.833-6.5 2.5-5.5 1-9.5 1 h-12l-28-84c-16.667-52-96.667 -294.333-240-727l-212 -643 -85 170 c-4-3.333-8.333-7.667-13 -13l-13-13l77-155 77-156c66 199.333 139 419.667 -219 661 l218 661zM702 `+c+"H400000v"+(40+l)+"H742z"},xBI=function(l,c,G){c=1e3*c;var e="";switch(l){case"sqrtMain":e=vBI(c,Cr);break;case"sqrtSize1":e=gBI(c,Cr);break;case"sqrtSize2":e=ABI(c,Cr);break;case"sqrtSize3":e=yBI(c,Cr);break;case"sqrtSize4":e=JBI(c,Cr);break;case"sqrtTall":e=kBI(c,Cr,G)}return e},zBI=function(l,c){switch(l){case"⎜":return"M291 0 H417 V"+c+" H291z M291 0 H417 V"+c+" H291z";case"∣":return"M145 0 H188 V"+c+" H145z M145 0 H188 V"+c+" H145z";case"∥":return"M145 0 H188 V"+c+" H145z M145 0 H188 V"+c+" H145z"+("M367 0 H410 V"+c+" H367z M367 0 H410 V"+c+" H367z");case"⎟":return"M457 0 H583 V"+c+" H457z M457 0 H583 V"+c+" H457z";case"⎢":return"M319 0 H403 V"+c+" H319z M319 0 H403 V"+c+" H319z";case"⎥":return"M263 0 H347 V"+c+" H263z M263 0 H347 V"+c+" H263z";case"⎪":return"M384 0 H504 V"+c+" H384z M384 0 H504 V"+c+" H384z";case"⏐":return"M312 0 H355 V"+c+" H312z M312 0 H355 V"+c+" H312z";case"‖":return"M257 0 H300 V"+c+" H257z M257 0 H300 V"+c+" H257z"+("M478 0 H521 V"+c+" H478z M478 0 H521 V"+c+" H478z");default:return""}},Lz={doubleleftarrow:`M262 157 +219 661 l218 661zM702 `+n+"H400000v"+(40+t)+"H742z"},w7e=function(t,n,r){n=1e3*n;var i="";switch(t){case"sqrtMain":i=g7e(n,ep);break;case"sqrtSize1":i=h7e(n,ep);break;case"sqrtSize2":i=f7e(n,ep);break;case"sqrtSize3":i=m7e(n,ep);break;case"sqrtSize4":i=A7e(n,ep);break;case"sqrtTall":i=B7e(n,ep,r)}return i},b7e=function(t,n){switch(t){case"⎜":return"M291 0 H417 V"+n+" H291z M291 0 H417 V"+n+" H291z";case"∣":return"M145 0 H188 V"+n+" H145z M145 0 H188 V"+n+" H145z";case"∥":return"M145 0 H188 V"+n+" H145z M145 0 H188 V"+n+" H145z"+("M367 0 H410 V"+n+" H367z M367 0 H410 V"+n+" H367z");case"⎟":return"M457 0 H583 V"+n+" H457z M457 0 H583 V"+n+" H457z";case"⎢":return"M319 0 H403 V"+n+" H319z M319 0 H403 V"+n+" H319z";case"⎥":return"M263 0 H347 V"+n+" H263z M263 0 H347 V"+n+" H263z";case"⎪":return"M384 0 H504 V"+n+" H384z M384 0 H504 V"+n+" H384z";case"⏐":return"M312 0 H355 V"+n+" H312z M312 0 H355 V"+n+" H312z";case"‖":return"M257 0 H300 V"+n+" H257z M257 0 H300 V"+n+" H257z"+("M478 0 H521 V"+n+" H478z M478 0 H521 V"+n+" H478z");default:return""}},nZ={doubleleftarrow:`M262 157 l10-10c34-36 62.7-77 86-123 3.3-8 5-13.3 5-16 0-5.3-6.7-8-20-8-7.3 0-12.2.5-14.5 1.5-2.3 1-4.8 4.5-7.5 10.5-49.3 97.3-121.7 169.3-217 216-28 14-57.3 25-88 33-6.7 2-11 3.8-13 5.5-2 1.7-3 4.2-3 7.5s1 5.8 3 7.5 @@ -1154,45 +993,56 @@ M93 435 v40 H400000 v-40z M500 241 v40 H400000 v-40z M500 241 v40 H400000 v-40z` c4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199, -231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6 c-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z -M500 241 v40 H399408 v-40z M500 435 v40 H400000 v-40z`},UBI=function(l,c){switch(l){case"lbrack":return"M403 1759 V84 H666 V0 H319 V1759 v"+c+` v1759 h347 v-84 -H403z M403 1759 V0 H319 V1759 v`+c+" v1759 h84z";case"rbrack":return"M347 1759 V0 H0 V84 H263 V1759 v"+c+` v1759 H0 v84 H347z -M347 1759 V0 H263 V1759 v`+c+" v1759 h84z";case"vert":return"M145 15 v585 v"+c+` v585 c2.667,10,9.667,15,21,15 -c10,0,16.667,-5,20,-15 v-585 v`+-c+` v-585 c-2.667,-10,-9.667,-15,-21,-15 -c-10,0,-16.667,5,-20,15z M188 15 H145 v585 v`+c+" v585 h43z";case"doublevert":return"M145 15 v585 v"+c+` v585 c2.667,10,9.667,15,21,15 -c10,0,16.667,-5,20,-15 v-585 v`+-c+` v-585 c-2.667,-10,-9.667,-15,-21,-15 -c-10,0,-16.667,5,-20,15z M188 15 H145 v585 v`+c+` v585 h43z -M367 15 v585 v`+c+` v585 c2.667,10,9.667,15,21,15 -c10,0,16.667,-5,20,-15 v-585 v`+-c+` v-585 c-2.667,-10,-9.667,-15,-21,-15 -c-10,0,-16.667,5,-20,15z M410 15 H367 v585 v`+c+" v585 h43z";case"lfloor":return"M319 602 V0 H403 V602 v"+c+` v1715 h263 v84 H319z -MM319 602 V0 H403 V602 v`+c+" v1715 H319z";case"rfloor":return"M319 602 V0 H403 V602 v"+c+` v1799 H0 v-84 H319z -MM319 602 V0 H403 V602 v`+c+" v1715 H319z";case"lceil":return"M403 1759 V84 H666 V0 H319 V1759 v"+c+` v602 h84z -M403 1759 V0 H319 V1759 v`+c+" v602 h84z";case"rceil":return"M347 1759 V0 H0 V84 H263 V1759 v"+c+` v602 h84z -M347 1759 V0 h-84 V1759 v`+c+" v602 h84z";case"lparen":return`M863,9c0,-2,-2,-5,-6,-9c0,0,-17,0,-17,0c-12.7,0,-19.3,0.3,-20,1 +M500 241 v40 H399408 v-40z M500 435 v40 H400000 v-40z`},v7e=function(t,n){switch(t){case"lbrack":return"M403 1759 V84 H666 V0 H319 V1759 v"+n+` v1759 h347 v-84 +H403z M403 1759 V0 H319 V1759 v`+n+" v1759 h84z";case"rbrack":return"M347 1759 V0 H0 V84 H263 V1759 v"+n+` v1759 H0 v84 H347z +M347 1759 V0 H263 V1759 v`+n+" v1759 h84z";case"vert":return"M145 15 v585 v"+n+` v585 c2.667,10,9.667,15,21,15 +c10,0,16.667,-5,20,-15 v-585 v`+-n+` v-585 c-2.667,-10,-9.667,-15,-21,-15 +c-10,0,-16.667,5,-20,15z M188 15 H145 v585 v`+n+" v585 h43z";case"doublevert":return"M145 15 v585 v"+n+` v585 c2.667,10,9.667,15,21,15 +c10,0,16.667,-5,20,-15 v-585 v`+-n+` v-585 c-2.667,-10,-9.667,-15,-21,-15 +c-10,0,-16.667,5,-20,15z M188 15 H145 v585 v`+n+` v585 h43z +M367 15 v585 v`+n+` v585 c2.667,10,9.667,15,21,15 +c10,0,16.667,-5,20,-15 v-585 v`+-n+` v-585 c-2.667,-10,-9.667,-15,-21,-15 +c-10,0,-16.667,5,-20,15z M410 15 H367 v585 v`+n+" v585 h43z";case"lfloor":return"M319 602 V0 H403 V602 v"+n+` v1715 h263 v84 H319z +MM319 602 V0 H403 V602 v`+n+" v1715 H319z";case"rfloor":return"M319 602 V0 H403 V602 v"+n+` v1799 H0 v-84 H319z +MM319 602 V0 H403 V602 v`+n+" v1715 H319z";case"lceil":return"M403 1759 V84 H666 V0 H319 V1759 v"+n+` v602 h84z +M403 1759 V0 H319 V1759 v`+n+" v602 h84z";case"rceil":return"M347 1759 V0 H0 V84 H263 V1759 v"+n+` v602 h84z +M347 1759 V0 h-84 V1759 v`+n+" v602 h84z";case"lparen":return`M863,9c0,-2,-2,-5,-6,-9c0,0,-17,0,-17,0c-12.7,0,-19.3,0.3,-20,1 c-5.3,5.3,-10.3,11,-15,17c-242.7,294.7,-395.3,682,-458,1162c-21.3,163.3,-33.3,349, --36,557 l0,`+(c+84)+`c0.2,6,0,26,0,60c2,159.3,10,310.7,24,454c53.3,528,210, +-36,557 l0,`+(n+84)+`c0.2,6,0,26,0,60c2,159.3,10,310.7,24,454c53.3,528,210, 949.7,470,1265c4.7,6,9.7,11.7,15,17c0.7,0.7,7,1,19,1c0,0,18,0,18,0c4,-4,6,-7,6,-9 c0,-2.7,-3.3,-8.7,-10,-18c-135.3,-192.7,-235.5,-414.3,-300.5,-665c-65,-250.7,-102.5, -544.7,-112.5,-882c-2,-104,-3,-167,-3,-189 -l0,-`+(c+92)+`c0,-162.7,5.7,-314,17,-454c20.7,-272,63.7,-513,129,-723c65.3, +l0,-`+(n+92)+`c0,-162.7,5.7,-314,17,-454c20.7,-272,63.7,-513,129,-723c65.3, -210,155.3,-396.3,270,-559c6.7,-9.3,10,-15.3,10,-18z`;case"rparen":return`M76,0c-16.7,0,-25,3,-25,9c0,2,2,6.3,6,13c21.3,28.7,42.3,60.3, 63,95c96.7,156.7,172.8,332.5,228.5,527.5c55.7,195,92.8,416.5,111.5,664.5 -c11.3,139.3,17,290.7,17,454c0,28,1.7,43,3.3,45l0,`+(c+9)+` +c11.3,139.3,17,290.7,17,454c0,28,1.7,43,3.3,45l0,`+(n+9)+` c-3,4,-3.3,16.7,-3.3,38c0,162,-5.7,313.7,-17,455c-18.7,248,-55.8,469.3,-111.5,664 c-55.7,194.7,-131.8,370.3,-228.5,527c-20.7,34.7,-41.7,66.3,-63,95c-2,3.3,-4,7,-6,11 c0,7.3,5.7,11,17,11c0,0,11,0,11,0c9.3,0,14.3,-0.3,15,-1c5.3,-5.3,10.3,-11,15,-17 c242.7,-294.7,395.3,-681.7,458,-1161c21.3,-164.7,33.3,-350.7,36,-558 -l0,-`+(c+144)+`c-2,-159.3,-10,-310.7,-24,-454c-53.3,-528,-210,-949.7, --470,-1265c-4.7,-6,-9.7,-11.7,-15,-17c-0.7,-0.7,-6.7,-1,-18,-1z`;default:throw new Error("Unknown stretchy delimiter.")}};class Th{constructor(l){this.children=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,this.children=l,this.classes=[],this.height=0,this.depth=0,this.maxFontSize=0,this.style={}}hasClass(l){return Bl.contains(this.classes,l)}toNode(){for(var l=document.createDocumentFragment(),c=0;cc.toText();return this.children.map(l).join("")}}var Tn={"AMS-Regular":{32:[0,0,0,0,.25],65:[0,.68889,0,0,.72222],66:[0,.68889,0,0,.66667],67:[0,.68889,0,0,.72222],68:[0,.68889,0,0,.72222],69:[0,.68889,0,0,.66667],70:[0,.68889,0,0,.61111],71:[0,.68889,0,0,.77778],72:[0,.68889,0,0,.77778],73:[0,.68889,0,0,.38889],74:[.16667,.68889,0,0,.5],75:[0,.68889,0,0,.77778],76:[0,.68889,0,0,.66667],77:[0,.68889,0,0,.94445],78:[0,.68889,0,0,.72222],79:[.16667,.68889,0,0,.77778],80:[0,.68889,0,0,.61111],81:[.16667,.68889,0,0,.77778],82:[0,.68889,0,0,.72222],83:[0,.68889,0,0,.55556],84:[0,.68889,0,0,.66667],85:[0,.68889,0,0,.72222],86:[0,.68889,0,0,.72222],87:[0,.68889,0,0,1],88:[0,.68889,0,0,.72222],89:[0,.68889,0,0,.72222],90:[0,.68889,0,0,.66667],107:[0,.68889,0,0,.55556],160:[0,0,0,0,.25],165:[0,.675,.025,0,.75],174:[.15559,.69224,0,0,.94666],240:[0,.68889,0,0,.55556],295:[0,.68889,0,0,.54028],710:[0,.825,0,0,2.33334],732:[0,.9,0,0,2.33334],770:[0,.825,0,0,2.33334],771:[0,.9,0,0,2.33334],989:[.08167,.58167,0,0,.77778],1008:[0,.43056,.04028,0,.66667],8245:[0,.54986,0,0,.275],8463:[0,.68889,0,0,.54028],8487:[0,.68889,0,0,.72222],8498:[0,.68889,0,0,.55556],8502:[0,.68889,0,0,.66667],8503:[0,.68889,0,0,.44445],8504:[0,.68889,0,0,.66667],8513:[0,.68889,0,0,.63889],8592:[-.03598,.46402,0,0,.5],8594:[-.03598,.46402,0,0,.5],8602:[-.13313,.36687,0,0,1],8603:[-.13313,.36687,0,0,1],8606:[.01354,.52239,0,0,1],8608:[.01354,.52239,0,0,1],8610:[.01354,.52239,0,0,1.11111],8611:[.01354,.52239,0,0,1.11111],8619:[0,.54986,0,0,1],8620:[0,.54986,0,0,1],8621:[-.13313,.37788,0,0,1.38889],8622:[-.13313,.36687,0,0,1],8624:[0,.69224,0,0,.5],8625:[0,.69224,0,0,.5],8630:[0,.43056,0,0,1],8631:[0,.43056,0,0,1],8634:[.08198,.58198,0,0,.77778],8635:[.08198,.58198,0,0,.77778],8638:[.19444,.69224,0,0,.41667],8639:[.19444,.69224,0,0,.41667],8642:[.19444,.69224,0,0,.41667],8643:[.19444,.69224,0,0,.41667],8644:[.1808,.675,0,0,1],8646:[.1808,.675,0,0,1],8647:[.1808,.675,0,0,1],8648:[.19444,.69224,0,0,.83334],8649:[.1808,.675,0,0,1],8650:[.19444,.69224,0,0,.83334],8651:[.01354,.52239,0,0,1],8652:[.01354,.52239,0,0,1],8653:[-.13313,.36687,0,0,1],8654:[-.13313,.36687,0,0,1],8655:[-.13313,.36687,0,0,1],8666:[.13667,.63667,0,0,1],8667:[.13667,.63667,0,0,1],8669:[-.13313,.37788,0,0,1],8672:[-.064,.437,0,0,1.334],8674:[-.064,.437,0,0,1.334],8705:[0,.825,0,0,.5],8708:[0,.68889,0,0,.55556],8709:[.08167,.58167,0,0,.77778],8717:[0,.43056,0,0,.42917],8722:[-.03598,.46402,0,0,.5],8724:[.08198,.69224,0,0,.77778],8726:[.08167,.58167,0,0,.77778],8733:[0,.69224,0,0,.77778],8736:[0,.69224,0,0,.72222],8737:[0,.69224,0,0,.72222],8738:[.03517,.52239,0,0,.72222],8739:[.08167,.58167,0,0,.22222],8740:[.25142,.74111,0,0,.27778],8741:[.08167,.58167,0,0,.38889],8742:[.25142,.74111,0,0,.5],8756:[0,.69224,0,0,.66667],8757:[0,.69224,0,0,.66667],8764:[-.13313,.36687,0,0,.77778],8765:[-.13313,.37788,0,0,.77778],8769:[-.13313,.36687,0,0,.77778],8770:[-.03625,.46375,0,0,.77778],8774:[.30274,.79383,0,0,.77778],8776:[-.01688,.48312,0,0,.77778],8778:[.08167,.58167,0,0,.77778],8782:[.06062,.54986,0,0,.77778],8783:[.06062,.54986,0,0,.77778],8785:[.08198,.58198,0,0,.77778],8786:[.08198,.58198,0,0,.77778],8787:[.08198,.58198,0,0,.77778],8790:[0,.69224,0,0,.77778],8791:[.22958,.72958,0,0,.77778],8796:[.08198,.91667,0,0,.77778],8806:[.25583,.75583,0,0,.77778],8807:[.25583,.75583,0,0,.77778],8808:[.25142,.75726,0,0,.77778],8809:[.25142,.75726,0,0,.77778],8812:[.25583,.75583,0,0,.5],8814:[.20576,.70576,0,0,.77778],8815:[.20576,.70576,0,0,.77778],8816:[.30274,.79383,0,0,.77778],8817:[.30274,.79383,0,0,.77778],8818:[.22958,.72958,0,0,.77778],8819:[.22958,.72958,0,0,.77778],8822:[.1808,.675,0,0,.77778],8823:[.1808,.675,0,0,.77778],8828:[.13667,.63667,0,0,.77778],8829:[.13667,.63667,0,0,.77778],8830:[.22958,.72958,0,0,.77778],8831:[.22958,.72958,0,0,.77778],8832:[.20576,.70576,0,0,.77778],8833:[.20576,.70576,0,0,.77778],8840:[.30274,.79383,0,0,.77778],8841:[.30274,.79383,0,0,.77778],8842:[.13597,.63597,0,0,.77778],8843:[.13597,.63597,0,0,.77778],8847:[.03517,.54986,0,0,.77778],8848:[.03517,.54986,0,0,.77778],8858:[.08198,.58198,0,0,.77778],8859:[.08198,.58198,0,0,.77778],8861:[.08198,.58198,0,0,.77778],8862:[0,.675,0,0,.77778],8863:[0,.675,0,0,.77778],8864:[0,.675,0,0,.77778],8865:[0,.675,0,0,.77778],8872:[0,.69224,0,0,.61111],8873:[0,.69224,0,0,.72222],8874:[0,.69224,0,0,.88889],8876:[0,.68889,0,0,.61111],8877:[0,.68889,0,0,.61111],8878:[0,.68889,0,0,.72222],8879:[0,.68889,0,0,.72222],8882:[.03517,.54986,0,0,.77778],8883:[.03517,.54986,0,0,.77778],8884:[.13667,.63667,0,0,.77778],8885:[.13667,.63667,0,0,.77778],8888:[0,.54986,0,0,1.11111],8890:[.19444,.43056,0,0,.55556],8891:[.19444,.69224,0,0,.61111],8892:[.19444,.69224,0,0,.61111],8901:[0,.54986,0,0,.27778],8903:[.08167,.58167,0,0,.77778],8905:[.08167,.58167,0,0,.77778],8906:[.08167,.58167,0,0,.77778],8907:[0,.69224,0,0,.77778],8908:[0,.69224,0,0,.77778],8909:[-.03598,.46402,0,0,.77778],8910:[0,.54986,0,0,.76042],8911:[0,.54986,0,0,.76042],8912:[.03517,.54986,0,0,.77778],8913:[.03517,.54986,0,0,.77778],8914:[0,.54986,0,0,.66667],8915:[0,.54986,0,0,.66667],8916:[0,.69224,0,0,.66667],8918:[.0391,.5391,0,0,.77778],8919:[.0391,.5391,0,0,.77778],8920:[.03517,.54986,0,0,1.33334],8921:[.03517,.54986,0,0,1.33334],8922:[.38569,.88569,0,0,.77778],8923:[.38569,.88569,0,0,.77778],8926:[.13667,.63667,0,0,.77778],8927:[.13667,.63667,0,0,.77778],8928:[.30274,.79383,0,0,.77778],8929:[.30274,.79383,0,0,.77778],8934:[.23222,.74111,0,0,.77778],8935:[.23222,.74111,0,0,.77778],8936:[.23222,.74111,0,0,.77778],8937:[.23222,.74111,0,0,.77778],8938:[.20576,.70576,0,0,.77778],8939:[.20576,.70576,0,0,.77778],8940:[.30274,.79383,0,0,.77778],8941:[.30274,.79383,0,0,.77778],8994:[.19444,.69224,0,0,.77778],8995:[.19444,.69224,0,0,.77778],9416:[.15559,.69224,0,0,.90222],9484:[0,.69224,0,0,.5],9488:[0,.69224,0,0,.5],9492:[0,.37788,0,0,.5],9496:[0,.37788,0,0,.5],9585:[.19444,.68889,0,0,.88889],9586:[.19444,.74111,0,0,.88889],9632:[0,.675,0,0,.77778],9633:[0,.675,0,0,.77778],9650:[0,.54986,0,0,.72222],9651:[0,.54986,0,0,.72222],9654:[.03517,.54986,0,0,.77778],9660:[0,.54986,0,0,.72222],9661:[0,.54986,0,0,.72222],9664:[.03517,.54986,0,0,.77778],9674:[.11111,.69224,0,0,.66667],9733:[.19444,.69224,0,0,.94445],10003:[0,.69224,0,0,.83334],10016:[0,.69224,0,0,.83334],10731:[.11111,.69224,0,0,.66667],10846:[.19444,.75583,0,0,.61111],10877:[.13667,.63667,0,0,.77778],10878:[.13667,.63667,0,0,.77778],10885:[.25583,.75583,0,0,.77778],10886:[.25583,.75583,0,0,.77778],10887:[.13597,.63597,0,0,.77778],10888:[.13597,.63597,0,0,.77778],10889:[.26167,.75726,0,0,.77778],10890:[.26167,.75726,0,0,.77778],10891:[.48256,.98256,0,0,.77778],10892:[.48256,.98256,0,0,.77778],10901:[.13667,.63667,0,0,.77778],10902:[.13667,.63667,0,0,.77778],10933:[.25142,.75726,0,0,.77778],10934:[.25142,.75726,0,0,.77778],10935:[.26167,.75726,0,0,.77778],10936:[.26167,.75726,0,0,.77778],10937:[.26167,.75726,0,0,.77778],10938:[.26167,.75726,0,0,.77778],10949:[.25583,.75583,0,0,.77778],10950:[.25583,.75583,0,0,.77778],10955:[.28481,.79383,0,0,.77778],10956:[.28481,.79383,0,0,.77778],57350:[.08167,.58167,0,0,.22222],57351:[.08167,.58167,0,0,.38889],57352:[.08167,.58167,0,0,.77778],57353:[0,.43056,.04028,0,.66667],57356:[.25142,.75726,0,0,.77778],57357:[.25142,.75726,0,0,.77778],57358:[.41951,.91951,0,0,.77778],57359:[.30274,.79383,0,0,.77778],57360:[.30274,.79383,0,0,.77778],57361:[.41951,.91951,0,0,.77778],57366:[.25142,.75726,0,0,.77778],57367:[.25142,.75726,0,0,.77778],57368:[.25142,.75726,0,0,.77778],57369:[.25142,.75726,0,0,.77778],57370:[.13597,.63597,0,0,.77778],57371:[.13597,.63597,0,0,.77778]},"Caligraphic-Regular":{32:[0,0,0,0,.25],65:[0,.68333,0,.19445,.79847],66:[0,.68333,.03041,.13889,.65681],67:[0,.68333,.05834,.13889,.52653],68:[0,.68333,.02778,.08334,.77139],69:[0,.68333,.08944,.11111,.52778],70:[0,.68333,.09931,.11111,.71875],71:[.09722,.68333,.0593,.11111,.59487],72:[0,.68333,.00965,.11111,.84452],73:[0,.68333,.07382,0,.54452],74:[.09722,.68333,.18472,.16667,.67778],75:[0,.68333,.01445,.05556,.76195],76:[0,.68333,0,.13889,.68972],77:[0,.68333,0,.13889,1.2009],78:[0,.68333,.14736,.08334,.82049],79:[0,.68333,.02778,.11111,.79611],80:[0,.68333,.08222,.08334,.69556],81:[.09722,.68333,0,.11111,.81667],82:[0,.68333,0,.08334,.8475],83:[0,.68333,.075,.13889,.60556],84:[0,.68333,.25417,0,.54464],85:[0,.68333,.09931,.08334,.62583],86:[0,.68333,.08222,0,.61278],87:[0,.68333,.08222,.08334,.98778],88:[0,.68333,.14643,.13889,.7133],89:[.09722,.68333,.08222,.08334,.66834],90:[0,.68333,.07944,.13889,.72473],160:[0,0,0,0,.25]},"Fraktur-Regular":{32:[0,0,0,0,.25],33:[0,.69141,0,0,.29574],34:[0,.69141,0,0,.21471],38:[0,.69141,0,0,.73786],39:[0,.69141,0,0,.21201],40:[.24982,.74947,0,0,.38865],41:[.24982,.74947,0,0,.38865],42:[0,.62119,0,0,.27764],43:[.08319,.58283,0,0,.75623],44:[0,.10803,0,0,.27764],45:[.08319,.58283,0,0,.75623],46:[0,.10803,0,0,.27764],47:[.24982,.74947,0,0,.50181],48:[0,.47534,0,0,.50181],49:[0,.47534,0,0,.50181],50:[0,.47534,0,0,.50181],51:[.18906,.47534,0,0,.50181],52:[.18906,.47534,0,0,.50181],53:[.18906,.47534,0,0,.50181],54:[0,.69141,0,0,.50181],55:[.18906,.47534,0,0,.50181],56:[0,.69141,0,0,.50181],57:[.18906,.47534,0,0,.50181],58:[0,.47534,0,0,.21606],59:[.12604,.47534,0,0,.21606],61:[-.13099,.36866,0,0,.75623],63:[0,.69141,0,0,.36245],65:[0,.69141,0,0,.7176],66:[0,.69141,0,0,.88397],67:[0,.69141,0,0,.61254],68:[0,.69141,0,0,.83158],69:[0,.69141,0,0,.66278],70:[.12604,.69141,0,0,.61119],71:[0,.69141,0,0,.78539],72:[.06302,.69141,0,0,.7203],73:[0,.69141,0,0,.55448],74:[.12604,.69141,0,0,.55231],75:[0,.69141,0,0,.66845],76:[0,.69141,0,0,.66602],77:[0,.69141,0,0,1.04953],78:[0,.69141,0,0,.83212],79:[0,.69141,0,0,.82699],80:[.18906,.69141,0,0,.82753],81:[.03781,.69141,0,0,.82699],82:[0,.69141,0,0,.82807],83:[0,.69141,0,0,.82861],84:[0,.69141,0,0,.66899],85:[0,.69141,0,0,.64576],86:[0,.69141,0,0,.83131],87:[0,.69141,0,0,1.04602],88:[0,.69141,0,0,.71922],89:[.18906,.69141,0,0,.83293],90:[.12604,.69141,0,0,.60201],91:[.24982,.74947,0,0,.27764],93:[.24982,.74947,0,0,.27764],94:[0,.69141,0,0,.49965],97:[0,.47534,0,0,.50046],98:[0,.69141,0,0,.51315],99:[0,.47534,0,0,.38946],100:[0,.62119,0,0,.49857],101:[0,.47534,0,0,.40053],102:[.18906,.69141,0,0,.32626],103:[.18906,.47534,0,0,.5037],104:[.18906,.69141,0,0,.52126],105:[0,.69141,0,0,.27899],106:[0,.69141,0,0,.28088],107:[0,.69141,0,0,.38946],108:[0,.69141,0,0,.27953],109:[0,.47534,0,0,.76676],110:[0,.47534,0,0,.52666],111:[0,.47534,0,0,.48885],112:[.18906,.52396,0,0,.50046],113:[.18906,.47534,0,0,.48912],114:[0,.47534,0,0,.38919],115:[0,.47534,0,0,.44266],116:[0,.62119,0,0,.33301],117:[0,.47534,0,0,.5172],118:[0,.52396,0,0,.5118],119:[0,.52396,0,0,.77351],120:[.18906,.47534,0,0,.38865],121:[.18906,.47534,0,0,.49884],122:[.18906,.47534,0,0,.39054],160:[0,0,0,0,.25],8216:[0,.69141,0,0,.21471],8217:[0,.69141,0,0,.21471],58112:[0,.62119,0,0,.49749],58113:[0,.62119,0,0,.4983],58114:[.18906,.69141,0,0,.33328],58115:[.18906,.69141,0,0,.32923],58116:[.18906,.47534,0,0,.50343],58117:[0,.69141,0,0,.33301],58118:[0,.62119,0,0,.33409],58119:[0,.47534,0,0,.50073]},"Main-Bold":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.35],34:[0,.69444,0,0,.60278],35:[.19444,.69444,0,0,.95833],36:[.05556,.75,0,0,.575],37:[.05556,.75,0,0,.95833],38:[0,.69444,0,0,.89444],39:[0,.69444,0,0,.31944],40:[.25,.75,0,0,.44722],41:[.25,.75,0,0,.44722],42:[0,.75,0,0,.575],43:[.13333,.63333,0,0,.89444],44:[.19444,.15556,0,0,.31944],45:[0,.44444,0,0,.38333],46:[0,.15556,0,0,.31944],47:[.25,.75,0,0,.575],48:[0,.64444,0,0,.575],49:[0,.64444,0,0,.575],50:[0,.64444,0,0,.575],51:[0,.64444,0,0,.575],52:[0,.64444,0,0,.575],53:[0,.64444,0,0,.575],54:[0,.64444,0,0,.575],55:[0,.64444,0,0,.575],56:[0,.64444,0,0,.575],57:[0,.64444,0,0,.575],58:[0,.44444,0,0,.31944],59:[.19444,.44444,0,0,.31944],60:[.08556,.58556,0,0,.89444],61:[-.10889,.39111,0,0,.89444],62:[.08556,.58556,0,0,.89444],63:[0,.69444,0,0,.54305],64:[0,.69444,0,0,.89444],65:[0,.68611,0,0,.86944],66:[0,.68611,0,0,.81805],67:[0,.68611,0,0,.83055],68:[0,.68611,0,0,.88194],69:[0,.68611,0,0,.75555],70:[0,.68611,0,0,.72361],71:[0,.68611,0,0,.90416],72:[0,.68611,0,0,.9],73:[0,.68611,0,0,.43611],74:[0,.68611,0,0,.59444],75:[0,.68611,0,0,.90138],76:[0,.68611,0,0,.69166],77:[0,.68611,0,0,1.09166],78:[0,.68611,0,0,.9],79:[0,.68611,0,0,.86388],80:[0,.68611,0,0,.78611],81:[.19444,.68611,0,0,.86388],82:[0,.68611,0,0,.8625],83:[0,.68611,0,0,.63889],84:[0,.68611,0,0,.8],85:[0,.68611,0,0,.88472],86:[0,.68611,.01597,0,.86944],87:[0,.68611,.01597,0,1.18888],88:[0,.68611,0,0,.86944],89:[0,.68611,.02875,0,.86944],90:[0,.68611,0,0,.70277],91:[.25,.75,0,0,.31944],92:[.25,.75,0,0,.575],93:[.25,.75,0,0,.31944],94:[0,.69444,0,0,.575],95:[.31,.13444,.03194,0,.575],97:[0,.44444,0,0,.55902],98:[0,.69444,0,0,.63889],99:[0,.44444,0,0,.51111],100:[0,.69444,0,0,.63889],101:[0,.44444,0,0,.52708],102:[0,.69444,.10903,0,.35139],103:[.19444,.44444,.01597,0,.575],104:[0,.69444,0,0,.63889],105:[0,.69444,0,0,.31944],106:[.19444,.69444,0,0,.35139],107:[0,.69444,0,0,.60694],108:[0,.69444,0,0,.31944],109:[0,.44444,0,0,.95833],110:[0,.44444,0,0,.63889],111:[0,.44444,0,0,.575],112:[.19444,.44444,0,0,.63889],113:[.19444,.44444,0,0,.60694],114:[0,.44444,0,0,.47361],115:[0,.44444,0,0,.45361],116:[0,.63492,0,0,.44722],117:[0,.44444,0,0,.63889],118:[0,.44444,.01597,0,.60694],119:[0,.44444,.01597,0,.83055],120:[0,.44444,0,0,.60694],121:[.19444,.44444,.01597,0,.60694],122:[0,.44444,0,0,.51111],123:[.25,.75,0,0,.575],124:[.25,.75,0,0,.31944],125:[.25,.75,0,0,.575],126:[.35,.34444,0,0,.575],160:[0,0,0,0,.25],163:[0,.69444,0,0,.86853],168:[0,.69444,0,0,.575],172:[0,.44444,0,0,.76666],176:[0,.69444,0,0,.86944],177:[.13333,.63333,0,0,.89444],184:[.17014,0,0,0,.51111],198:[0,.68611,0,0,1.04166],215:[.13333,.63333,0,0,.89444],216:[.04861,.73472,0,0,.89444],223:[0,.69444,0,0,.59722],230:[0,.44444,0,0,.83055],247:[.13333,.63333,0,0,.89444],248:[.09722,.54167,0,0,.575],305:[0,.44444,0,0,.31944],338:[0,.68611,0,0,1.16944],339:[0,.44444,0,0,.89444],567:[.19444,.44444,0,0,.35139],710:[0,.69444,0,0,.575],711:[0,.63194,0,0,.575],713:[0,.59611,0,0,.575],714:[0,.69444,0,0,.575],715:[0,.69444,0,0,.575],728:[0,.69444,0,0,.575],729:[0,.69444,0,0,.31944],730:[0,.69444,0,0,.86944],732:[0,.69444,0,0,.575],733:[0,.69444,0,0,.575],915:[0,.68611,0,0,.69166],916:[0,.68611,0,0,.95833],920:[0,.68611,0,0,.89444],923:[0,.68611,0,0,.80555],926:[0,.68611,0,0,.76666],928:[0,.68611,0,0,.9],931:[0,.68611,0,0,.83055],933:[0,.68611,0,0,.89444],934:[0,.68611,0,0,.83055],936:[0,.68611,0,0,.89444],937:[0,.68611,0,0,.83055],8211:[0,.44444,.03194,0,.575],8212:[0,.44444,.03194,0,1.14999],8216:[0,.69444,0,0,.31944],8217:[0,.69444,0,0,.31944],8220:[0,.69444,0,0,.60278],8221:[0,.69444,0,0,.60278],8224:[.19444,.69444,0,0,.51111],8225:[.19444,.69444,0,0,.51111],8242:[0,.55556,0,0,.34444],8407:[0,.72444,.15486,0,.575],8463:[0,.69444,0,0,.66759],8465:[0,.69444,0,0,.83055],8467:[0,.69444,0,0,.47361],8472:[.19444,.44444,0,0,.74027],8476:[0,.69444,0,0,.83055],8501:[0,.69444,0,0,.70277],8592:[-.10889,.39111,0,0,1.14999],8593:[.19444,.69444,0,0,.575],8594:[-.10889,.39111,0,0,1.14999],8595:[.19444,.69444,0,0,.575],8596:[-.10889,.39111,0,0,1.14999],8597:[.25,.75,0,0,.575],8598:[.19444,.69444,0,0,1.14999],8599:[.19444,.69444,0,0,1.14999],8600:[.19444,.69444,0,0,1.14999],8601:[.19444,.69444,0,0,1.14999],8636:[-.10889,.39111,0,0,1.14999],8637:[-.10889,.39111,0,0,1.14999],8640:[-.10889,.39111,0,0,1.14999],8641:[-.10889,.39111,0,0,1.14999],8656:[-.10889,.39111,0,0,1.14999],8657:[.19444,.69444,0,0,.70277],8658:[-.10889,.39111,0,0,1.14999],8659:[.19444,.69444,0,0,.70277],8660:[-.10889,.39111,0,0,1.14999],8661:[.25,.75,0,0,.70277],8704:[0,.69444,0,0,.63889],8706:[0,.69444,.06389,0,.62847],8707:[0,.69444,0,0,.63889],8709:[.05556,.75,0,0,.575],8711:[0,.68611,0,0,.95833],8712:[.08556,.58556,0,0,.76666],8715:[.08556,.58556,0,0,.76666],8722:[.13333,.63333,0,0,.89444],8723:[.13333,.63333,0,0,.89444],8725:[.25,.75,0,0,.575],8726:[.25,.75,0,0,.575],8727:[-.02778,.47222,0,0,.575],8728:[-.02639,.47361,0,0,.575],8729:[-.02639,.47361,0,0,.575],8730:[.18,.82,0,0,.95833],8733:[0,.44444,0,0,.89444],8734:[0,.44444,0,0,1.14999],8736:[0,.69224,0,0,.72222],8739:[.25,.75,0,0,.31944],8741:[.25,.75,0,0,.575],8743:[0,.55556,0,0,.76666],8744:[0,.55556,0,0,.76666],8745:[0,.55556,0,0,.76666],8746:[0,.55556,0,0,.76666],8747:[.19444,.69444,.12778,0,.56875],8764:[-.10889,.39111,0,0,.89444],8768:[.19444,.69444,0,0,.31944],8771:[.00222,.50222,0,0,.89444],8773:[.027,.638,0,0,.894],8776:[.02444,.52444,0,0,.89444],8781:[.00222,.50222,0,0,.89444],8801:[.00222,.50222,0,0,.89444],8804:[.19667,.69667,0,0,.89444],8805:[.19667,.69667,0,0,.89444],8810:[.08556,.58556,0,0,1.14999],8811:[.08556,.58556,0,0,1.14999],8826:[.08556,.58556,0,0,.89444],8827:[.08556,.58556,0,0,.89444],8834:[.08556,.58556,0,0,.89444],8835:[.08556,.58556,0,0,.89444],8838:[.19667,.69667,0,0,.89444],8839:[.19667,.69667,0,0,.89444],8846:[0,.55556,0,0,.76666],8849:[.19667,.69667,0,0,.89444],8850:[.19667,.69667,0,0,.89444],8851:[0,.55556,0,0,.76666],8852:[0,.55556,0,0,.76666],8853:[.13333,.63333,0,0,.89444],8854:[.13333,.63333,0,0,.89444],8855:[.13333,.63333,0,0,.89444],8856:[.13333,.63333,0,0,.89444],8857:[.13333,.63333,0,0,.89444],8866:[0,.69444,0,0,.70277],8867:[0,.69444,0,0,.70277],8868:[0,.69444,0,0,.89444],8869:[0,.69444,0,0,.89444],8900:[-.02639,.47361,0,0,.575],8901:[-.02639,.47361,0,0,.31944],8902:[-.02778,.47222,0,0,.575],8968:[.25,.75,0,0,.51111],8969:[.25,.75,0,0,.51111],8970:[.25,.75,0,0,.51111],8971:[.25,.75,0,0,.51111],8994:[-.13889,.36111,0,0,1.14999],8995:[-.13889,.36111,0,0,1.14999],9651:[.19444,.69444,0,0,1.02222],9657:[-.02778,.47222,0,0,.575],9661:[.19444,.69444,0,0,1.02222],9667:[-.02778,.47222,0,0,.575],9711:[.19444,.69444,0,0,1.14999],9824:[.12963,.69444,0,0,.89444],9825:[.12963,.69444,0,0,.89444],9826:[.12963,.69444,0,0,.89444],9827:[.12963,.69444,0,0,.89444],9837:[0,.75,0,0,.44722],9838:[.19444,.69444,0,0,.44722],9839:[.19444,.69444,0,0,.44722],10216:[.25,.75,0,0,.44722],10217:[.25,.75,0,0,.44722],10815:[0,.68611,0,0,.9],10927:[.19667,.69667,0,0,.89444],10928:[.19667,.69667,0,0,.89444],57376:[.19444,.69444,0,0,0]},"Main-BoldItalic":{32:[0,0,0,0,.25],33:[0,.69444,.11417,0,.38611],34:[0,.69444,.07939,0,.62055],35:[.19444,.69444,.06833,0,.94444],37:[.05556,.75,.12861,0,.94444],38:[0,.69444,.08528,0,.88555],39:[0,.69444,.12945,0,.35555],40:[.25,.75,.15806,0,.47333],41:[.25,.75,.03306,0,.47333],42:[0,.75,.14333,0,.59111],43:[.10333,.60333,.03306,0,.88555],44:[.19444,.14722,0,0,.35555],45:[0,.44444,.02611,0,.41444],46:[0,.14722,0,0,.35555],47:[.25,.75,.15806,0,.59111],48:[0,.64444,.13167,0,.59111],49:[0,.64444,.13167,0,.59111],50:[0,.64444,.13167,0,.59111],51:[0,.64444,.13167,0,.59111],52:[.19444,.64444,.13167,0,.59111],53:[0,.64444,.13167,0,.59111],54:[0,.64444,.13167,0,.59111],55:[.19444,.64444,.13167,0,.59111],56:[0,.64444,.13167,0,.59111],57:[0,.64444,.13167,0,.59111],58:[0,.44444,.06695,0,.35555],59:[.19444,.44444,.06695,0,.35555],61:[-.10889,.39111,.06833,0,.88555],63:[0,.69444,.11472,0,.59111],64:[0,.69444,.09208,0,.88555],65:[0,.68611,0,0,.86555],66:[0,.68611,.0992,0,.81666],67:[0,.68611,.14208,0,.82666],68:[0,.68611,.09062,0,.87555],69:[0,.68611,.11431,0,.75666],70:[0,.68611,.12903,0,.72722],71:[0,.68611,.07347,0,.89527],72:[0,.68611,.17208,0,.8961],73:[0,.68611,.15681,0,.47166],74:[0,.68611,.145,0,.61055],75:[0,.68611,.14208,0,.89499],76:[0,.68611,0,0,.69777],77:[0,.68611,.17208,0,1.07277],78:[0,.68611,.17208,0,.8961],79:[0,.68611,.09062,0,.85499],80:[0,.68611,.0992,0,.78721],81:[.19444,.68611,.09062,0,.85499],82:[0,.68611,.02559,0,.85944],83:[0,.68611,.11264,0,.64999],84:[0,.68611,.12903,0,.7961],85:[0,.68611,.17208,0,.88083],86:[0,.68611,.18625,0,.86555],87:[0,.68611,.18625,0,1.15999],88:[0,.68611,.15681,0,.86555],89:[0,.68611,.19803,0,.86555],90:[0,.68611,.14208,0,.70888],91:[.25,.75,.1875,0,.35611],93:[.25,.75,.09972,0,.35611],94:[0,.69444,.06709,0,.59111],95:[.31,.13444,.09811,0,.59111],97:[0,.44444,.09426,0,.59111],98:[0,.69444,.07861,0,.53222],99:[0,.44444,.05222,0,.53222],100:[0,.69444,.10861,0,.59111],101:[0,.44444,.085,0,.53222],102:[.19444,.69444,.21778,0,.4],103:[.19444,.44444,.105,0,.53222],104:[0,.69444,.09426,0,.59111],105:[0,.69326,.11387,0,.35555],106:[.19444,.69326,.1672,0,.35555],107:[0,.69444,.11111,0,.53222],108:[0,.69444,.10861,0,.29666],109:[0,.44444,.09426,0,.94444],110:[0,.44444,.09426,0,.64999],111:[0,.44444,.07861,0,.59111],112:[.19444,.44444,.07861,0,.59111],113:[.19444,.44444,.105,0,.53222],114:[0,.44444,.11111,0,.50167],115:[0,.44444,.08167,0,.48694],116:[0,.63492,.09639,0,.385],117:[0,.44444,.09426,0,.62055],118:[0,.44444,.11111,0,.53222],119:[0,.44444,.11111,0,.76777],120:[0,.44444,.12583,0,.56055],121:[.19444,.44444,.105,0,.56166],122:[0,.44444,.13889,0,.49055],126:[.35,.34444,.11472,0,.59111],160:[0,0,0,0,.25],168:[0,.69444,.11473,0,.59111],176:[0,.69444,0,0,.94888],184:[.17014,0,0,0,.53222],198:[0,.68611,.11431,0,1.02277],216:[.04861,.73472,.09062,0,.88555],223:[.19444,.69444,.09736,0,.665],230:[0,.44444,.085,0,.82666],248:[.09722,.54167,.09458,0,.59111],305:[0,.44444,.09426,0,.35555],338:[0,.68611,.11431,0,1.14054],339:[0,.44444,.085,0,.82666],567:[.19444,.44444,.04611,0,.385],710:[0,.69444,.06709,0,.59111],711:[0,.63194,.08271,0,.59111],713:[0,.59444,.10444,0,.59111],714:[0,.69444,.08528,0,.59111],715:[0,.69444,0,0,.59111],728:[0,.69444,.10333,0,.59111],729:[0,.69444,.12945,0,.35555],730:[0,.69444,0,0,.94888],732:[0,.69444,.11472,0,.59111],733:[0,.69444,.11472,0,.59111],915:[0,.68611,.12903,0,.69777],916:[0,.68611,0,0,.94444],920:[0,.68611,.09062,0,.88555],923:[0,.68611,0,0,.80666],926:[0,.68611,.15092,0,.76777],928:[0,.68611,.17208,0,.8961],931:[0,.68611,.11431,0,.82666],933:[0,.68611,.10778,0,.88555],934:[0,.68611,.05632,0,.82666],936:[0,.68611,.10778,0,.88555],937:[0,.68611,.0992,0,.82666],8211:[0,.44444,.09811,0,.59111],8212:[0,.44444,.09811,0,1.18221],8216:[0,.69444,.12945,0,.35555],8217:[0,.69444,.12945,0,.35555],8220:[0,.69444,.16772,0,.62055],8221:[0,.69444,.07939,0,.62055]},"Main-Italic":{32:[0,0,0,0,.25],33:[0,.69444,.12417,0,.30667],34:[0,.69444,.06961,0,.51444],35:[.19444,.69444,.06616,0,.81777],37:[.05556,.75,.13639,0,.81777],38:[0,.69444,.09694,0,.76666],39:[0,.69444,.12417,0,.30667],40:[.25,.75,.16194,0,.40889],41:[.25,.75,.03694,0,.40889],42:[0,.75,.14917,0,.51111],43:[.05667,.56167,.03694,0,.76666],44:[.19444,.10556,0,0,.30667],45:[0,.43056,.02826,0,.35778],46:[0,.10556,0,0,.30667],47:[.25,.75,.16194,0,.51111],48:[0,.64444,.13556,0,.51111],49:[0,.64444,.13556,0,.51111],50:[0,.64444,.13556,0,.51111],51:[0,.64444,.13556,0,.51111],52:[.19444,.64444,.13556,0,.51111],53:[0,.64444,.13556,0,.51111],54:[0,.64444,.13556,0,.51111],55:[.19444,.64444,.13556,0,.51111],56:[0,.64444,.13556,0,.51111],57:[0,.64444,.13556,0,.51111],58:[0,.43056,.0582,0,.30667],59:[.19444,.43056,.0582,0,.30667],61:[-.13313,.36687,.06616,0,.76666],63:[0,.69444,.1225,0,.51111],64:[0,.69444,.09597,0,.76666],65:[0,.68333,0,0,.74333],66:[0,.68333,.10257,0,.70389],67:[0,.68333,.14528,0,.71555],68:[0,.68333,.09403,0,.755],69:[0,.68333,.12028,0,.67833],70:[0,.68333,.13305,0,.65277],71:[0,.68333,.08722,0,.77361],72:[0,.68333,.16389,0,.74333],73:[0,.68333,.15806,0,.38555],74:[0,.68333,.14028,0,.525],75:[0,.68333,.14528,0,.76888],76:[0,.68333,0,0,.62722],77:[0,.68333,.16389,0,.89666],78:[0,.68333,.16389,0,.74333],79:[0,.68333,.09403,0,.76666],80:[0,.68333,.10257,0,.67833],81:[.19444,.68333,.09403,0,.76666],82:[0,.68333,.03868,0,.72944],83:[0,.68333,.11972,0,.56222],84:[0,.68333,.13305,0,.71555],85:[0,.68333,.16389,0,.74333],86:[0,.68333,.18361,0,.74333],87:[0,.68333,.18361,0,.99888],88:[0,.68333,.15806,0,.74333],89:[0,.68333,.19383,0,.74333],90:[0,.68333,.14528,0,.61333],91:[.25,.75,.1875,0,.30667],93:[.25,.75,.10528,0,.30667],94:[0,.69444,.06646,0,.51111],95:[.31,.12056,.09208,0,.51111],97:[0,.43056,.07671,0,.51111],98:[0,.69444,.06312,0,.46],99:[0,.43056,.05653,0,.46],100:[0,.69444,.10333,0,.51111],101:[0,.43056,.07514,0,.46],102:[.19444,.69444,.21194,0,.30667],103:[.19444,.43056,.08847,0,.46],104:[0,.69444,.07671,0,.51111],105:[0,.65536,.1019,0,.30667],106:[.19444,.65536,.14467,0,.30667],107:[0,.69444,.10764,0,.46],108:[0,.69444,.10333,0,.25555],109:[0,.43056,.07671,0,.81777],110:[0,.43056,.07671,0,.56222],111:[0,.43056,.06312,0,.51111],112:[.19444,.43056,.06312,0,.51111],113:[.19444,.43056,.08847,0,.46],114:[0,.43056,.10764,0,.42166],115:[0,.43056,.08208,0,.40889],116:[0,.61508,.09486,0,.33222],117:[0,.43056,.07671,0,.53666],118:[0,.43056,.10764,0,.46],119:[0,.43056,.10764,0,.66444],120:[0,.43056,.12042,0,.46389],121:[.19444,.43056,.08847,0,.48555],122:[0,.43056,.12292,0,.40889],126:[.35,.31786,.11585,0,.51111],160:[0,0,0,0,.25],168:[0,.66786,.10474,0,.51111],176:[0,.69444,0,0,.83129],184:[.17014,0,0,0,.46],198:[0,.68333,.12028,0,.88277],216:[.04861,.73194,.09403,0,.76666],223:[.19444,.69444,.10514,0,.53666],230:[0,.43056,.07514,0,.71555],248:[.09722,.52778,.09194,0,.51111],338:[0,.68333,.12028,0,.98499],339:[0,.43056,.07514,0,.71555],710:[0,.69444,.06646,0,.51111],711:[0,.62847,.08295,0,.51111],713:[0,.56167,.10333,0,.51111],714:[0,.69444,.09694,0,.51111],715:[0,.69444,0,0,.51111],728:[0,.69444,.10806,0,.51111],729:[0,.66786,.11752,0,.30667],730:[0,.69444,0,0,.83129],732:[0,.66786,.11585,0,.51111],733:[0,.69444,.1225,0,.51111],915:[0,.68333,.13305,0,.62722],916:[0,.68333,0,0,.81777],920:[0,.68333,.09403,0,.76666],923:[0,.68333,0,0,.69222],926:[0,.68333,.15294,0,.66444],928:[0,.68333,.16389,0,.74333],931:[0,.68333,.12028,0,.71555],933:[0,.68333,.11111,0,.76666],934:[0,.68333,.05986,0,.71555],936:[0,.68333,.11111,0,.76666],937:[0,.68333,.10257,0,.71555],8211:[0,.43056,.09208,0,.51111],8212:[0,.43056,.09208,0,1.02222],8216:[0,.69444,.12417,0,.30667],8217:[0,.69444,.12417,0,.30667],8220:[0,.69444,.1685,0,.51444],8221:[0,.69444,.06961,0,.51444],8463:[0,.68889,0,0,.54028]},"Main-Regular":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.27778],34:[0,.69444,0,0,.5],35:[.19444,.69444,0,0,.83334],36:[.05556,.75,0,0,.5],37:[.05556,.75,0,0,.83334],38:[0,.69444,0,0,.77778],39:[0,.69444,0,0,.27778],40:[.25,.75,0,0,.38889],41:[.25,.75,0,0,.38889],42:[0,.75,0,0,.5],43:[.08333,.58333,0,0,.77778],44:[.19444,.10556,0,0,.27778],45:[0,.43056,0,0,.33333],46:[0,.10556,0,0,.27778],47:[.25,.75,0,0,.5],48:[0,.64444,0,0,.5],49:[0,.64444,0,0,.5],50:[0,.64444,0,0,.5],51:[0,.64444,0,0,.5],52:[0,.64444,0,0,.5],53:[0,.64444,0,0,.5],54:[0,.64444,0,0,.5],55:[0,.64444,0,0,.5],56:[0,.64444,0,0,.5],57:[0,.64444,0,0,.5],58:[0,.43056,0,0,.27778],59:[.19444,.43056,0,0,.27778],60:[.0391,.5391,0,0,.77778],61:[-.13313,.36687,0,0,.77778],62:[.0391,.5391,0,0,.77778],63:[0,.69444,0,0,.47222],64:[0,.69444,0,0,.77778],65:[0,.68333,0,0,.75],66:[0,.68333,0,0,.70834],67:[0,.68333,0,0,.72222],68:[0,.68333,0,0,.76389],69:[0,.68333,0,0,.68056],70:[0,.68333,0,0,.65278],71:[0,.68333,0,0,.78472],72:[0,.68333,0,0,.75],73:[0,.68333,0,0,.36111],74:[0,.68333,0,0,.51389],75:[0,.68333,0,0,.77778],76:[0,.68333,0,0,.625],77:[0,.68333,0,0,.91667],78:[0,.68333,0,0,.75],79:[0,.68333,0,0,.77778],80:[0,.68333,0,0,.68056],81:[.19444,.68333,0,0,.77778],82:[0,.68333,0,0,.73611],83:[0,.68333,0,0,.55556],84:[0,.68333,0,0,.72222],85:[0,.68333,0,0,.75],86:[0,.68333,.01389,0,.75],87:[0,.68333,.01389,0,1.02778],88:[0,.68333,0,0,.75],89:[0,.68333,.025,0,.75],90:[0,.68333,0,0,.61111],91:[.25,.75,0,0,.27778],92:[.25,.75,0,0,.5],93:[.25,.75,0,0,.27778],94:[0,.69444,0,0,.5],95:[.31,.12056,.02778,0,.5],97:[0,.43056,0,0,.5],98:[0,.69444,0,0,.55556],99:[0,.43056,0,0,.44445],100:[0,.69444,0,0,.55556],101:[0,.43056,0,0,.44445],102:[0,.69444,.07778,0,.30556],103:[.19444,.43056,.01389,0,.5],104:[0,.69444,0,0,.55556],105:[0,.66786,0,0,.27778],106:[.19444,.66786,0,0,.30556],107:[0,.69444,0,0,.52778],108:[0,.69444,0,0,.27778],109:[0,.43056,0,0,.83334],110:[0,.43056,0,0,.55556],111:[0,.43056,0,0,.5],112:[.19444,.43056,0,0,.55556],113:[.19444,.43056,0,0,.52778],114:[0,.43056,0,0,.39167],115:[0,.43056,0,0,.39445],116:[0,.61508,0,0,.38889],117:[0,.43056,0,0,.55556],118:[0,.43056,.01389,0,.52778],119:[0,.43056,.01389,0,.72222],120:[0,.43056,0,0,.52778],121:[.19444,.43056,.01389,0,.52778],122:[0,.43056,0,0,.44445],123:[.25,.75,0,0,.5],124:[.25,.75,0,0,.27778],125:[.25,.75,0,0,.5],126:[.35,.31786,0,0,.5],160:[0,0,0,0,.25],163:[0,.69444,0,0,.76909],167:[.19444,.69444,0,0,.44445],168:[0,.66786,0,0,.5],172:[0,.43056,0,0,.66667],176:[0,.69444,0,0,.75],177:[.08333,.58333,0,0,.77778],182:[.19444,.69444,0,0,.61111],184:[.17014,0,0,0,.44445],198:[0,.68333,0,0,.90278],215:[.08333,.58333,0,0,.77778],216:[.04861,.73194,0,0,.77778],223:[0,.69444,0,0,.5],230:[0,.43056,0,0,.72222],247:[.08333,.58333,0,0,.77778],248:[.09722,.52778,0,0,.5],305:[0,.43056,0,0,.27778],338:[0,.68333,0,0,1.01389],339:[0,.43056,0,0,.77778],567:[.19444,.43056,0,0,.30556],710:[0,.69444,0,0,.5],711:[0,.62847,0,0,.5],713:[0,.56778,0,0,.5],714:[0,.69444,0,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,0,0,.5],729:[0,.66786,0,0,.27778],730:[0,.69444,0,0,.75],732:[0,.66786,0,0,.5],733:[0,.69444,0,0,.5],915:[0,.68333,0,0,.625],916:[0,.68333,0,0,.83334],920:[0,.68333,0,0,.77778],923:[0,.68333,0,0,.69445],926:[0,.68333,0,0,.66667],928:[0,.68333,0,0,.75],931:[0,.68333,0,0,.72222],933:[0,.68333,0,0,.77778],934:[0,.68333,0,0,.72222],936:[0,.68333,0,0,.77778],937:[0,.68333,0,0,.72222],8211:[0,.43056,.02778,0,.5],8212:[0,.43056,.02778,0,1],8216:[0,.69444,0,0,.27778],8217:[0,.69444,0,0,.27778],8220:[0,.69444,0,0,.5],8221:[0,.69444,0,0,.5],8224:[.19444,.69444,0,0,.44445],8225:[.19444,.69444,0,0,.44445],8230:[0,.123,0,0,1.172],8242:[0,.55556,0,0,.275],8407:[0,.71444,.15382,0,.5],8463:[0,.68889,0,0,.54028],8465:[0,.69444,0,0,.72222],8467:[0,.69444,0,.11111,.41667],8472:[.19444,.43056,0,.11111,.63646],8476:[0,.69444,0,0,.72222],8501:[0,.69444,0,0,.61111],8592:[-.13313,.36687,0,0,1],8593:[.19444,.69444,0,0,.5],8594:[-.13313,.36687,0,0,1],8595:[.19444,.69444,0,0,.5],8596:[-.13313,.36687,0,0,1],8597:[.25,.75,0,0,.5],8598:[.19444,.69444,0,0,1],8599:[.19444,.69444,0,0,1],8600:[.19444,.69444,0,0,1],8601:[.19444,.69444,0,0,1],8614:[.011,.511,0,0,1],8617:[.011,.511,0,0,1.126],8618:[.011,.511,0,0,1.126],8636:[-.13313,.36687,0,0,1],8637:[-.13313,.36687,0,0,1],8640:[-.13313,.36687,0,0,1],8641:[-.13313,.36687,0,0,1],8652:[.011,.671,0,0,1],8656:[-.13313,.36687,0,0,1],8657:[.19444,.69444,0,0,.61111],8658:[-.13313,.36687,0,0,1],8659:[.19444,.69444,0,0,.61111],8660:[-.13313,.36687,0,0,1],8661:[.25,.75,0,0,.61111],8704:[0,.69444,0,0,.55556],8706:[0,.69444,.05556,.08334,.5309],8707:[0,.69444,0,0,.55556],8709:[.05556,.75,0,0,.5],8711:[0,.68333,0,0,.83334],8712:[.0391,.5391,0,0,.66667],8715:[.0391,.5391,0,0,.66667],8722:[.08333,.58333,0,0,.77778],8723:[.08333,.58333,0,0,.77778],8725:[.25,.75,0,0,.5],8726:[.25,.75,0,0,.5],8727:[-.03472,.46528,0,0,.5],8728:[-.05555,.44445,0,0,.5],8729:[-.05555,.44445,0,0,.5],8730:[.2,.8,0,0,.83334],8733:[0,.43056,0,0,.77778],8734:[0,.43056,0,0,1],8736:[0,.69224,0,0,.72222],8739:[.25,.75,0,0,.27778],8741:[.25,.75,0,0,.5],8743:[0,.55556,0,0,.66667],8744:[0,.55556,0,0,.66667],8745:[0,.55556,0,0,.66667],8746:[0,.55556,0,0,.66667],8747:[.19444,.69444,.11111,0,.41667],8764:[-.13313,.36687,0,0,.77778],8768:[.19444,.69444,0,0,.27778],8771:[-.03625,.46375,0,0,.77778],8773:[-.022,.589,0,0,.778],8776:[-.01688,.48312,0,0,.77778],8781:[-.03625,.46375,0,0,.77778],8784:[-.133,.673,0,0,.778],8801:[-.03625,.46375,0,0,.77778],8804:[.13597,.63597,0,0,.77778],8805:[.13597,.63597,0,0,.77778],8810:[.0391,.5391,0,0,1],8811:[.0391,.5391,0,0,1],8826:[.0391,.5391,0,0,.77778],8827:[.0391,.5391,0,0,.77778],8834:[.0391,.5391,0,0,.77778],8835:[.0391,.5391,0,0,.77778],8838:[.13597,.63597,0,0,.77778],8839:[.13597,.63597,0,0,.77778],8846:[0,.55556,0,0,.66667],8849:[.13597,.63597,0,0,.77778],8850:[.13597,.63597,0,0,.77778],8851:[0,.55556,0,0,.66667],8852:[0,.55556,0,0,.66667],8853:[.08333,.58333,0,0,.77778],8854:[.08333,.58333,0,0,.77778],8855:[.08333,.58333,0,0,.77778],8856:[.08333,.58333,0,0,.77778],8857:[.08333,.58333,0,0,.77778],8866:[0,.69444,0,0,.61111],8867:[0,.69444,0,0,.61111],8868:[0,.69444,0,0,.77778],8869:[0,.69444,0,0,.77778],8872:[.249,.75,0,0,.867],8900:[-.05555,.44445,0,0,.5],8901:[-.05555,.44445,0,0,.27778],8902:[-.03472,.46528,0,0,.5],8904:[.005,.505,0,0,.9],8942:[.03,.903,0,0,.278],8943:[-.19,.313,0,0,1.172],8945:[-.1,.823,0,0,1.282],8968:[.25,.75,0,0,.44445],8969:[.25,.75,0,0,.44445],8970:[.25,.75,0,0,.44445],8971:[.25,.75,0,0,.44445],8994:[-.14236,.35764,0,0,1],8995:[-.14236,.35764,0,0,1],9136:[.244,.744,0,0,.412],9137:[.244,.745,0,0,.412],9651:[.19444,.69444,0,0,.88889],9657:[-.03472,.46528,0,0,.5],9661:[.19444,.69444,0,0,.88889],9667:[-.03472,.46528,0,0,.5],9711:[.19444,.69444,0,0,1],9824:[.12963,.69444,0,0,.77778],9825:[.12963,.69444,0,0,.77778],9826:[.12963,.69444,0,0,.77778],9827:[.12963,.69444,0,0,.77778],9837:[0,.75,0,0,.38889],9838:[.19444,.69444,0,0,.38889],9839:[.19444,.69444,0,0,.38889],10216:[.25,.75,0,0,.38889],10217:[.25,.75,0,0,.38889],10222:[.244,.744,0,0,.412],10223:[.244,.745,0,0,.412],10229:[.011,.511,0,0,1.609],10230:[.011,.511,0,0,1.638],10231:[.011,.511,0,0,1.859],10232:[.024,.525,0,0,1.609],10233:[.024,.525,0,0,1.638],10234:[.024,.525,0,0,1.858],10236:[.011,.511,0,0,1.638],10815:[0,.68333,0,0,.75],10927:[.13597,.63597,0,0,.77778],10928:[.13597,.63597,0,0,.77778],57376:[.19444,.69444,0,0,0]},"Math-BoldItalic":{32:[0,0,0,0,.25],48:[0,.44444,0,0,.575],49:[0,.44444,0,0,.575],50:[0,.44444,0,0,.575],51:[.19444,.44444,0,0,.575],52:[.19444,.44444,0,0,.575],53:[.19444,.44444,0,0,.575],54:[0,.64444,0,0,.575],55:[.19444,.44444,0,0,.575],56:[0,.64444,0,0,.575],57:[.19444,.44444,0,0,.575],65:[0,.68611,0,0,.86944],66:[0,.68611,.04835,0,.8664],67:[0,.68611,.06979,0,.81694],68:[0,.68611,.03194,0,.93812],69:[0,.68611,.05451,0,.81007],70:[0,.68611,.15972,0,.68889],71:[0,.68611,0,0,.88673],72:[0,.68611,.08229,0,.98229],73:[0,.68611,.07778,0,.51111],74:[0,.68611,.10069,0,.63125],75:[0,.68611,.06979,0,.97118],76:[0,.68611,0,0,.75555],77:[0,.68611,.11424,0,1.14201],78:[0,.68611,.11424,0,.95034],79:[0,.68611,.03194,0,.83666],80:[0,.68611,.15972,0,.72309],81:[.19444,.68611,0,0,.86861],82:[0,.68611,.00421,0,.87235],83:[0,.68611,.05382,0,.69271],84:[0,.68611,.15972,0,.63663],85:[0,.68611,.11424,0,.80027],86:[0,.68611,.25555,0,.67778],87:[0,.68611,.15972,0,1.09305],88:[0,.68611,.07778,0,.94722],89:[0,.68611,.25555,0,.67458],90:[0,.68611,.06979,0,.77257],97:[0,.44444,0,0,.63287],98:[0,.69444,0,0,.52083],99:[0,.44444,0,0,.51342],100:[0,.69444,0,0,.60972],101:[0,.44444,0,0,.55361],102:[.19444,.69444,.11042,0,.56806],103:[.19444,.44444,.03704,0,.5449],104:[0,.69444,0,0,.66759],105:[0,.69326,0,0,.4048],106:[.19444,.69326,.0622,0,.47083],107:[0,.69444,.01852,0,.6037],108:[0,.69444,.0088,0,.34815],109:[0,.44444,0,0,1.0324],110:[0,.44444,0,0,.71296],111:[0,.44444,0,0,.58472],112:[.19444,.44444,0,0,.60092],113:[.19444,.44444,.03704,0,.54213],114:[0,.44444,.03194,0,.5287],115:[0,.44444,0,0,.53125],116:[0,.63492,0,0,.41528],117:[0,.44444,0,0,.68102],118:[0,.44444,.03704,0,.56666],119:[0,.44444,.02778,0,.83148],120:[0,.44444,0,0,.65903],121:[.19444,.44444,.03704,0,.59028],122:[0,.44444,.04213,0,.55509],160:[0,0,0,0,.25],915:[0,.68611,.15972,0,.65694],916:[0,.68611,0,0,.95833],920:[0,.68611,.03194,0,.86722],923:[0,.68611,0,0,.80555],926:[0,.68611,.07458,0,.84125],928:[0,.68611,.08229,0,.98229],931:[0,.68611,.05451,0,.88507],933:[0,.68611,.15972,0,.67083],934:[0,.68611,0,0,.76666],936:[0,.68611,.11653,0,.71402],937:[0,.68611,.04835,0,.8789],945:[0,.44444,0,0,.76064],946:[.19444,.69444,.03403,0,.65972],947:[.19444,.44444,.06389,0,.59003],948:[0,.69444,.03819,0,.52222],949:[0,.44444,0,0,.52882],950:[.19444,.69444,.06215,0,.50833],951:[.19444,.44444,.03704,0,.6],952:[0,.69444,.03194,0,.5618],953:[0,.44444,0,0,.41204],954:[0,.44444,0,0,.66759],955:[0,.69444,0,0,.67083],956:[.19444,.44444,0,0,.70787],957:[0,.44444,.06898,0,.57685],958:[.19444,.69444,.03021,0,.50833],959:[0,.44444,0,0,.58472],960:[0,.44444,.03704,0,.68241],961:[.19444,.44444,0,0,.6118],962:[.09722,.44444,.07917,0,.42361],963:[0,.44444,.03704,0,.68588],964:[0,.44444,.13472,0,.52083],965:[0,.44444,.03704,0,.63055],966:[.19444,.44444,0,0,.74722],967:[.19444,.44444,0,0,.71805],968:[.19444,.69444,.03704,0,.75833],969:[0,.44444,.03704,0,.71782],977:[0,.69444,0,0,.69155],981:[.19444,.69444,0,0,.7125],982:[0,.44444,.03194,0,.975],1009:[.19444,.44444,0,0,.6118],1013:[0,.44444,0,0,.48333],57649:[0,.44444,0,0,.39352],57911:[.19444,.44444,0,0,.43889]},"Math-Italic":{32:[0,0,0,0,.25],48:[0,.43056,0,0,.5],49:[0,.43056,0,0,.5],50:[0,.43056,0,0,.5],51:[.19444,.43056,0,0,.5],52:[.19444,.43056,0,0,.5],53:[.19444,.43056,0,0,.5],54:[0,.64444,0,0,.5],55:[.19444,.43056,0,0,.5],56:[0,.64444,0,0,.5],57:[.19444,.43056,0,0,.5],65:[0,.68333,0,.13889,.75],66:[0,.68333,.05017,.08334,.75851],67:[0,.68333,.07153,.08334,.71472],68:[0,.68333,.02778,.05556,.82792],69:[0,.68333,.05764,.08334,.7382],70:[0,.68333,.13889,.08334,.64306],71:[0,.68333,0,.08334,.78625],72:[0,.68333,.08125,.05556,.83125],73:[0,.68333,.07847,.11111,.43958],74:[0,.68333,.09618,.16667,.55451],75:[0,.68333,.07153,.05556,.84931],76:[0,.68333,0,.02778,.68056],77:[0,.68333,.10903,.08334,.97014],78:[0,.68333,.10903,.08334,.80347],79:[0,.68333,.02778,.08334,.76278],80:[0,.68333,.13889,.08334,.64201],81:[.19444,.68333,0,.08334,.79056],82:[0,.68333,.00773,.08334,.75929],83:[0,.68333,.05764,.08334,.6132],84:[0,.68333,.13889,.08334,.58438],85:[0,.68333,.10903,.02778,.68278],86:[0,.68333,.22222,0,.58333],87:[0,.68333,.13889,0,.94445],88:[0,.68333,.07847,.08334,.82847],89:[0,.68333,.22222,0,.58056],90:[0,.68333,.07153,.08334,.68264],97:[0,.43056,0,0,.52859],98:[0,.69444,0,0,.42917],99:[0,.43056,0,.05556,.43276],100:[0,.69444,0,.16667,.52049],101:[0,.43056,0,.05556,.46563],102:[.19444,.69444,.10764,.16667,.48959],103:[.19444,.43056,.03588,.02778,.47697],104:[0,.69444,0,0,.57616],105:[0,.65952,0,0,.34451],106:[.19444,.65952,.05724,0,.41181],107:[0,.69444,.03148,0,.5206],108:[0,.69444,.01968,.08334,.29838],109:[0,.43056,0,0,.87801],110:[0,.43056,0,0,.60023],111:[0,.43056,0,.05556,.48472],112:[.19444,.43056,0,.08334,.50313],113:[.19444,.43056,.03588,.08334,.44641],114:[0,.43056,.02778,.05556,.45116],115:[0,.43056,0,.05556,.46875],116:[0,.61508,0,.08334,.36111],117:[0,.43056,0,.02778,.57246],118:[0,.43056,.03588,.02778,.48472],119:[0,.43056,.02691,.08334,.71592],120:[0,.43056,0,.02778,.57153],121:[.19444,.43056,.03588,.05556,.49028],122:[0,.43056,.04398,.05556,.46505],160:[0,0,0,0,.25],915:[0,.68333,.13889,.08334,.61528],916:[0,.68333,0,.16667,.83334],920:[0,.68333,.02778,.08334,.76278],923:[0,.68333,0,.16667,.69445],926:[0,.68333,.07569,.08334,.74236],928:[0,.68333,.08125,.05556,.83125],931:[0,.68333,.05764,.08334,.77986],933:[0,.68333,.13889,.05556,.58333],934:[0,.68333,0,.08334,.66667],936:[0,.68333,.11,.05556,.61222],937:[0,.68333,.05017,.08334,.7724],945:[0,.43056,.0037,.02778,.6397],946:[.19444,.69444,.05278,.08334,.56563],947:[.19444,.43056,.05556,0,.51773],948:[0,.69444,.03785,.05556,.44444],949:[0,.43056,0,.08334,.46632],950:[.19444,.69444,.07378,.08334,.4375],951:[.19444,.43056,.03588,.05556,.49653],952:[0,.69444,.02778,.08334,.46944],953:[0,.43056,0,.05556,.35394],954:[0,.43056,0,0,.57616],955:[0,.69444,0,0,.58334],956:[.19444,.43056,0,.02778,.60255],957:[0,.43056,.06366,.02778,.49398],958:[.19444,.69444,.04601,.11111,.4375],959:[0,.43056,0,.05556,.48472],960:[0,.43056,.03588,0,.57003],961:[.19444,.43056,0,.08334,.51702],962:[.09722,.43056,.07986,.08334,.36285],963:[0,.43056,.03588,0,.57141],964:[0,.43056,.1132,.02778,.43715],965:[0,.43056,.03588,.02778,.54028],966:[.19444,.43056,0,.08334,.65417],967:[.19444,.43056,0,.05556,.62569],968:[.19444,.69444,.03588,.11111,.65139],969:[0,.43056,.03588,0,.62245],977:[0,.69444,0,.08334,.59144],981:[.19444,.69444,0,.08334,.59583],982:[0,.43056,.02778,0,.82813],1009:[.19444,.43056,0,.08334,.51702],1013:[0,.43056,0,.05556,.4059],57649:[0,.43056,0,.02778,.32246],57911:[.19444,.43056,0,.08334,.38403]},"SansSerif-Bold":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.36667],34:[0,.69444,0,0,.55834],35:[.19444,.69444,0,0,.91667],36:[.05556,.75,0,0,.55],37:[.05556,.75,0,0,1.02912],38:[0,.69444,0,0,.83056],39:[0,.69444,0,0,.30556],40:[.25,.75,0,0,.42778],41:[.25,.75,0,0,.42778],42:[0,.75,0,0,.55],43:[.11667,.61667,0,0,.85556],44:[.10556,.13056,0,0,.30556],45:[0,.45833,0,0,.36667],46:[0,.13056,0,0,.30556],47:[.25,.75,0,0,.55],48:[0,.69444,0,0,.55],49:[0,.69444,0,0,.55],50:[0,.69444,0,0,.55],51:[0,.69444,0,0,.55],52:[0,.69444,0,0,.55],53:[0,.69444,0,0,.55],54:[0,.69444,0,0,.55],55:[0,.69444,0,0,.55],56:[0,.69444,0,0,.55],57:[0,.69444,0,0,.55],58:[0,.45833,0,0,.30556],59:[.10556,.45833,0,0,.30556],61:[-.09375,.40625,0,0,.85556],63:[0,.69444,0,0,.51945],64:[0,.69444,0,0,.73334],65:[0,.69444,0,0,.73334],66:[0,.69444,0,0,.73334],67:[0,.69444,0,0,.70278],68:[0,.69444,0,0,.79445],69:[0,.69444,0,0,.64167],70:[0,.69444,0,0,.61111],71:[0,.69444,0,0,.73334],72:[0,.69444,0,0,.79445],73:[0,.69444,0,0,.33056],74:[0,.69444,0,0,.51945],75:[0,.69444,0,0,.76389],76:[0,.69444,0,0,.58056],77:[0,.69444,0,0,.97778],78:[0,.69444,0,0,.79445],79:[0,.69444,0,0,.79445],80:[0,.69444,0,0,.70278],81:[.10556,.69444,0,0,.79445],82:[0,.69444,0,0,.70278],83:[0,.69444,0,0,.61111],84:[0,.69444,0,0,.73334],85:[0,.69444,0,0,.76389],86:[0,.69444,.01528,0,.73334],87:[0,.69444,.01528,0,1.03889],88:[0,.69444,0,0,.73334],89:[0,.69444,.0275,0,.73334],90:[0,.69444,0,0,.67223],91:[.25,.75,0,0,.34306],93:[.25,.75,0,0,.34306],94:[0,.69444,0,0,.55],95:[.35,.10833,.03056,0,.55],97:[0,.45833,0,0,.525],98:[0,.69444,0,0,.56111],99:[0,.45833,0,0,.48889],100:[0,.69444,0,0,.56111],101:[0,.45833,0,0,.51111],102:[0,.69444,.07639,0,.33611],103:[.19444,.45833,.01528,0,.55],104:[0,.69444,0,0,.56111],105:[0,.69444,0,0,.25556],106:[.19444,.69444,0,0,.28611],107:[0,.69444,0,0,.53056],108:[0,.69444,0,0,.25556],109:[0,.45833,0,0,.86667],110:[0,.45833,0,0,.56111],111:[0,.45833,0,0,.55],112:[.19444,.45833,0,0,.56111],113:[.19444,.45833,0,0,.56111],114:[0,.45833,.01528,0,.37222],115:[0,.45833,0,0,.42167],116:[0,.58929,0,0,.40417],117:[0,.45833,0,0,.56111],118:[0,.45833,.01528,0,.5],119:[0,.45833,.01528,0,.74445],120:[0,.45833,0,0,.5],121:[.19444,.45833,.01528,0,.5],122:[0,.45833,0,0,.47639],126:[.35,.34444,0,0,.55],160:[0,0,0,0,.25],168:[0,.69444,0,0,.55],176:[0,.69444,0,0,.73334],180:[0,.69444,0,0,.55],184:[.17014,0,0,0,.48889],305:[0,.45833,0,0,.25556],567:[.19444,.45833,0,0,.28611],710:[0,.69444,0,0,.55],711:[0,.63542,0,0,.55],713:[0,.63778,0,0,.55],728:[0,.69444,0,0,.55],729:[0,.69444,0,0,.30556],730:[0,.69444,0,0,.73334],732:[0,.69444,0,0,.55],733:[0,.69444,0,0,.55],915:[0,.69444,0,0,.58056],916:[0,.69444,0,0,.91667],920:[0,.69444,0,0,.85556],923:[0,.69444,0,0,.67223],926:[0,.69444,0,0,.73334],928:[0,.69444,0,0,.79445],931:[0,.69444,0,0,.79445],933:[0,.69444,0,0,.85556],934:[0,.69444,0,0,.79445],936:[0,.69444,0,0,.85556],937:[0,.69444,0,0,.79445],8211:[0,.45833,.03056,0,.55],8212:[0,.45833,.03056,0,1.10001],8216:[0,.69444,0,0,.30556],8217:[0,.69444,0,0,.30556],8220:[0,.69444,0,0,.55834],8221:[0,.69444,0,0,.55834]},"SansSerif-Italic":{32:[0,0,0,0,.25],33:[0,.69444,.05733,0,.31945],34:[0,.69444,.00316,0,.5],35:[.19444,.69444,.05087,0,.83334],36:[.05556,.75,.11156,0,.5],37:[.05556,.75,.03126,0,.83334],38:[0,.69444,.03058,0,.75834],39:[0,.69444,.07816,0,.27778],40:[.25,.75,.13164,0,.38889],41:[.25,.75,.02536,0,.38889],42:[0,.75,.11775,0,.5],43:[.08333,.58333,.02536,0,.77778],44:[.125,.08333,0,0,.27778],45:[0,.44444,.01946,0,.33333],46:[0,.08333,0,0,.27778],47:[.25,.75,.13164,0,.5],48:[0,.65556,.11156,0,.5],49:[0,.65556,.11156,0,.5],50:[0,.65556,.11156,0,.5],51:[0,.65556,.11156,0,.5],52:[0,.65556,.11156,0,.5],53:[0,.65556,.11156,0,.5],54:[0,.65556,.11156,0,.5],55:[0,.65556,.11156,0,.5],56:[0,.65556,.11156,0,.5],57:[0,.65556,.11156,0,.5],58:[0,.44444,.02502,0,.27778],59:[.125,.44444,.02502,0,.27778],61:[-.13,.37,.05087,0,.77778],63:[0,.69444,.11809,0,.47222],64:[0,.69444,.07555,0,.66667],65:[0,.69444,0,0,.66667],66:[0,.69444,.08293,0,.66667],67:[0,.69444,.11983,0,.63889],68:[0,.69444,.07555,0,.72223],69:[0,.69444,.11983,0,.59722],70:[0,.69444,.13372,0,.56945],71:[0,.69444,.11983,0,.66667],72:[0,.69444,.08094,0,.70834],73:[0,.69444,.13372,0,.27778],74:[0,.69444,.08094,0,.47222],75:[0,.69444,.11983,0,.69445],76:[0,.69444,0,0,.54167],77:[0,.69444,.08094,0,.875],78:[0,.69444,.08094,0,.70834],79:[0,.69444,.07555,0,.73611],80:[0,.69444,.08293,0,.63889],81:[.125,.69444,.07555,0,.73611],82:[0,.69444,.08293,0,.64584],83:[0,.69444,.09205,0,.55556],84:[0,.69444,.13372,0,.68056],85:[0,.69444,.08094,0,.6875],86:[0,.69444,.1615,0,.66667],87:[0,.69444,.1615,0,.94445],88:[0,.69444,.13372,0,.66667],89:[0,.69444,.17261,0,.66667],90:[0,.69444,.11983,0,.61111],91:[.25,.75,.15942,0,.28889],93:[.25,.75,.08719,0,.28889],94:[0,.69444,.0799,0,.5],95:[.35,.09444,.08616,0,.5],97:[0,.44444,.00981,0,.48056],98:[0,.69444,.03057,0,.51667],99:[0,.44444,.08336,0,.44445],100:[0,.69444,.09483,0,.51667],101:[0,.44444,.06778,0,.44445],102:[0,.69444,.21705,0,.30556],103:[.19444,.44444,.10836,0,.5],104:[0,.69444,.01778,0,.51667],105:[0,.67937,.09718,0,.23889],106:[.19444,.67937,.09162,0,.26667],107:[0,.69444,.08336,0,.48889],108:[0,.69444,.09483,0,.23889],109:[0,.44444,.01778,0,.79445],110:[0,.44444,.01778,0,.51667],111:[0,.44444,.06613,0,.5],112:[.19444,.44444,.0389,0,.51667],113:[.19444,.44444,.04169,0,.51667],114:[0,.44444,.10836,0,.34167],115:[0,.44444,.0778,0,.38333],116:[0,.57143,.07225,0,.36111],117:[0,.44444,.04169,0,.51667],118:[0,.44444,.10836,0,.46111],119:[0,.44444,.10836,0,.68334],120:[0,.44444,.09169,0,.46111],121:[.19444,.44444,.10836,0,.46111],122:[0,.44444,.08752,0,.43472],126:[.35,.32659,.08826,0,.5],160:[0,0,0,0,.25],168:[0,.67937,.06385,0,.5],176:[0,.69444,0,0,.73752],184:[.17014,0,0,0,.44445],305:[0,.44444,.04169,0,.23889],567:[.19444,.44444,.04169,0,.26667],710:[0,.69444,.0799,0,.5],711:[0,.63194,.08432,0,.5],713:[0,.60889,.08776,0,.5],714:[0,.69444,.09205,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,.09483,0,.5],729:[0,.67937,.07774,0,.27778],730:[0,.69444,0,0,.73752],732:[0,.67659,.08826,0,.5],733:[0,.69444,.09205,0,.5],915:[0,.69444,.13372,0,.54167],916:[0,.69444,0,0,.83334],920:[0,.69444,.07555,0,.77778],923:[0,.69444,0,0,.61111],926:[0,.69444,.12816,0,.66667],928:[0,.69444,.08094,0,.70834],931:[0,.69444,.11983,0,.72222],933:[0,.69444,.09031,0,.77778],934:[0,.69444,.04603,0,.72222],936:[0,.69444,.09031,0,.77778],937:[0,.69444,.08293,0,.72222],8211:[0,.44444,.08616,0,.5],8212:[0,.44444,.08616,0,1],8216:[0,.69444,.07816,0,.27778],8217:[0,.69444,.07816,0,.27778],8220:[0,.69444,.14205,0,.5],8221:[0,.69444,.00316,0,.5]},"SansSerif-Regular":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.31945],34:[0,.69444,0,0,.5],35:[.19444,.69444,0,0,.83334],36:[.05556,.75,0,0,.5],37:[.05556,.75,0,0,.83334],38:[0,.69444,0,0,.75834],39:[0,.69444,0,0,.27778],40:[.25,.75,0,0,.38889],41:[.25,.75,0,0,.38889],42:[0,.75,0,0,.5],43:[.08333,.58333,0,0,.77778],44:[.125,.08333,0,0,.27778],45:[0,.44444,0,0,.33333],46:[0,.08333,0,0,.27778],47:[.25,.75,0,0,.5],48:[0,.65556,0,0,.5],49:[0,.65556,0,0,.5],50:[0,.65556,0,0,.5],51:[0,.65556,0,0,.5],52:[0,.65556,0,0,.5],53:[0,.65556,0,0,.5],54:[0,.65556,0,0,.5],55:[0,.65556,0,0,.5],56:[0,.65556,0,0,.5],57:[0,.65556,0,0,.5],58:[0,.44444,0,0,.27778],59:[.125,.44444,0,0,.27778],61:[-.13,.37,0,0,.77778],63:[0,.69444,0,0,.47222],64:[0,.69444,0,0,.66667],65:[0,.69444,0,0,.66667],66:[0,.69444,0,0,.66667],67:[0,.69444,0,0,.63889],68:[0,.69444,0,0,.72223],69:[0,.69444,0,0,.59722],70:[0,.69444,0,0,.56945],71:[0,.69444,0,0,.66667],72:[0,.69444,0,0,.70834],73:[0,.69444,0,0,.27778],74:[0,.69444,0,0,.47222],75:[0,.69444,0,0,.69445],76:[0,.69444,0,0,.54167],77:[0,.69444,0,0,.875],78:[0,.69444,0,0,.70834],79:[0,.69444,0,0,.73611],80:[0,.69444,0,0,.63889],81:[.125,.69444,0,0,.73611],82:[0,.69444,0,0,.64584],83:[0,.69444,0,0,.55556],84:[0,.69444,0,0,.68056],85:[0,.69444,0,0,.6875],86:[0,.69444,.01389,0,.66667],87:[0,.69444,.01389,0,.94445],88:[0,.69444,0,0,.66667],89:[0,.69444,.025,0,.66667],90:[0,.69444,0,0,.61111],91:[.25,.75,0,0,.28889],93:[.25,.75,0,0,.28889],94:[0,.69444,0,0,.5],95:[.35,.09444,.02778,0,.5],97:[0,.44444,0,0,.48056],98:[0,.69444,0,0,.51667],99:[0,.44444,0,0,.44445],100:[0,.69444,0,0,.51667],101:[0,.44444,0,0,.44445],102:[0,.69444,.06944,0,.30556],103:[.19444,.44444,.01389,0,.5],104:[0,.69444,0,0,.51667],105:[0,.67937,0,0,.23889],106:[.19444,.67937,0,0,.26667],107:[0,.69444,0,0,.48889],108:[0,.69444,0,0,.23889],109:[0,.44444,0,0,.79445],110:[0,.44444,0,0,.51667],111:[0,.44444,0,0,.5],112:[.19444,.44444,0,0,.51667],113:[.19444,.44444,0,0,.51667],114:[0,.44444,.01389,0,.34167],115:[0,.44444,0,0,.38333],116:[0,.57143,0,0,.36111],117:[0,.44444,0,0,.51667],118:[0,.44444,.01389,0,.46111],119:[0,.44444,.01389,0,.68334],120:[0,.44444,0,0,.46111],121:[.19444,.44444,.01389,0,.46111],122:[0,.44444,0,0,.43472],126:[.35,.32659,0,0,.5],160:[0,0,0,0,.25],168:[0,.67937,0,0,.5],176:[0,.69444,0,0,.66667],184:[.17014,0,0,0,.44445],305:[0,.44444,0,0,.23889],567:[.19444,.44444,0,0,.26667],710:[0,.69444,0,0,.5],711:[0,.63194,0,0,.5],713:[0,.60889,0,0,.5],714:[0,.69444,0,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,0,0,.5],729:[0,.67937,0,0,.27778],730:[0,.69444,0,0,.66667],732:[0,.67659,0,0,.5],733:[0,.69444,0,0,.5],915:[0,.69444,0,0,.54167],916:[0,.69444,0,0,.83334],920:[0,.69444,0,0,.77778],923:[0,.69444,0,0,.61111],926:[0,.69444,0,0,.66667],928:[0,.69444,0,0,.70834],931:[0,.69444,0,0,.72222],933:[0,.69444,0,0,.77778],934:[0,.69444,0,0,.72222],936:[0,.69444,0,0,.77778],937:[0,.69444,0,0,.72222],8211:[0,.44444,.02778,0,.5],8212:[0,.44444,.02778,0,1],8216:[0,.69444,0,0,.27778],8217:[0,.69444,0,0,.27778],8220:[0,.69444,0,0,.5],8221:[0,.69444,0,0,.5]},"Script-Regular":{32:[0,0,0,0,.25],65:[0,.7,.22925,0,.80253],66:[0,.7,.04087,0,.90757],67:[0,.7,.1689,0,.66619],68:[0,.7,.09371,0,.77443],69:[0,.7,.18583,0,.56162],70:[0,.7,.13634,0,.89544],71:[0,.7,.17322,0,.60961],72:[0,.7,.29694,0,.96919],73:[0,.7,.19189,0,.80907],74:[.27778,.7,.19189,0,1.05159],75:[0,.7,.31259,0,.91364],76:[0,.7,.19189,0,.87373],77:[0,.7,.15981,0,1.08031],78:[0,.7,.3525,0,.9015],79:[0,.7,.08078,0,.73787],80:[0,.7,.08078,0,1.01262],81:[0,.7,.03305,0,.88282],82:[0,.7,.06259,0,.85],83:[0,.7,.19189,0,.86767],84:[0,.7,.29087,0,.74697],85:[0,.7,.25815,0,.79996],86:[0,.7,.27523,0,.62204],87:[0,.7,.27523,0,.80532],88:[0,.7,.26006,0,.94445],89:[0,.7,.2939,0,.70961],90:[0,.7,.24037,0,.8212],160:[0,0,0,0,.25]},"Size1-Regular":{32:[0,0,0,0,.25],40:[.35001,.85,0,0,.45834],41:[.35001,.85,0,0,.45834],47:[.35001,.85,0,0,.57778],91:[.35001,.85,0,0,.41667],92:[.35001,.85,0,0,.57778],93:[.35001,.85,0,0,.41667],123:[.35001,.85,0,0,.58334],125:[.35001,.85,0,0,.58334],160:[0,0,0,0,.25],710:[0,.72222,0,0,.55556],732:[0,.72222,0,0,.55556],770:[0,.72222,0,0,.55556],771:[0,.72222,0,0,.55556],8214:[-99e-5,.601,0,0,.77778],8593:[1e-5,.6,0,0,.66667],8595:[1e-5,.6,0,0,.66667],8657:[1e-5,.6,0,0,.77778],8659:[1e-5,.6,0,0,.77778],8719:[.25001,.75,0,0,.94445],8720:[.25001,.75,0,0,.94445],8721:[.25001,.75,0,0,1.05556],8730:[.35001,.85,0,0,1],8739:[-.00599,.606,0,0,.33333],8741:[-.00599,.606,0,0,.55556],8747:[.30612,.805,.19445,0,.47222],8748:[.306,.805,.19445,0,.47222],8749:[.306,.805,.19445,0,.47222],8750:[.30612,.805,.19445,0,.47222],8896:[.25001,.75,0,0,.83334],8897:[.25001,.75,0,0,.83334],8898:[.25001,.75,0,0,.83334],8899:[.25001,.75,0,0,.83334],8968:[.35001,.85,0,0,.47222],8969:[.35001,.85,0,0,.47222],8970:[.35001,.85,0,0,.47222],8971:[.35001,.85,0,0,.47222],9168:[-99e-5,.601,0,0,.66667],10216:[.35001,.85,0,0,.47222],10217:[.35001,.85,0,0,.47222],10752:[.25001,.75,0,0,1.11111],10753:[.25001,.75,0,0,1.11111],10754:[.25001,.75,0,0,1.11111],10756:[.25001,.75,0,0,.83334],10758:[.25001,.75,0,0,.83334]},"Size2-Regular":{32:[0,0,0,0,.25],40:[.65002,1.15,0,0,.59722],41:[.65002,1.15,0,0,.59722],47:[.65002,1.15,0,0,.81111],91:[.65002,1.15,0,0,.47222],92:[.65002,1.15,0,0,.81111],93:[.65002,1.15,0,0,.47222],123:[.65002,1.15,0,0,.66667],125:[.65002,1.15,0,0,.66667],160:[0,0,0,0,.25],710:[0,.75,0,0,1],732:[0,.75,0,0,1],770:[0,.75,0,0,1],771:[0,.75,0,0,1],8719:[.55001,1.05,0,0,1.27778],8720:[.55001,1.05,0,0,1.27778],8721:[.55001,1.05,0,0,1.44445],8730:[.65002,1.15,0,0,1],8747:[.86225,1.36,.44445,0,.55556],8748:[.862,1.36,.44445,0,.55556],8749:[.862,1.36,.44445,0,.55556],8750:[.86225,1.36,.44445,0,.55556],8896:[.55001,1.05,0,0,1.11111],8897:[.55001,1.05,0,0,1.11111],8898:[.55001,1.05,0,0,1.11111],8899:[.55001,1.05,0,0,1.11111],8968:[.65002,1.15,0,0,.52778],8969:[.65002,1.15,0,0,.52778],8970:[.65002,1.15,0,0,.52778],8971:[.65002,1.15,0,0,.52778],10216:[.65002,1.15,0,0,.61111],10217:[.65002,1.15,0,0,.61111],10752:[.55001,1.05,0,0,1.51112],10753:[.55001,1.05,0,0,1.51112],10754:[.55001,1.05,0,0,1.51112],10756:[.55001,1.05,0,0,1.11111],10758:[.55001,1.05,0,0,1.11111]},"Size3-Regular":{32:[0,0,0,0,.25],40:[.95003,1.45,0,0,.73611],41:[.95003,1.45,0,0,.73611],47:[.95003,1.45,0,0,1.04445],91:[.95003,1.45,0,0,.52778],92:[.95003,1.45,0,0,1.04445],93:[.95003,1.45,0,0,.52778],123:[.95003,1.45,0,0,.75],125:[.95003,1.45,0,0,.75],160:[0,0,0,0,.25],710:[0,.75,0,0,1.44445],732:[0,.75,0,0,1.44445],770:[0,.75,0,0,1.44445],771:[0,.75,0,0,1.44445],8730:[.95003,1.45,0,0,1],8968:[.95003,1.45,0,0,.58334],8969:[.95003,1.45,0,0,.58334],8970:[.95003,1.45,0,0,.58334],8971:[.95003,1.45,0,0,.58334],10216:[.95003,1.45,0,0,.75],10217:[.95003,1.45,0,0,.75]},"Size4-Regular":{32:[0,0,0,0,.25],40:[1.25003,1.75,0,0,.79167],41:[1.25003,1.75,0,0,.79167],47:[1.25003,1.75,0,0,1.27778],91:[1.25003,1.75,0,0,.58334],92:[1.25003,1.75,0,0,1.27778],93:[1.25003,1.75,0,0,.58334],123:[1.25003,1.75,0,0,.80556],125:[1.25003,1.75,0,0,.80556],160:[0,0,0,0,.25],710:[0,.825,0,0,1.8889],732:[0,.825,0,0,1.8889],770:[0,.825,0,0,1.8889],771:[0,.825,0,0,1.8889],8730:[1.25003,1.75,0,0,1],8968:[1.25003,1.75,0,0,.63889],8969:[1.25003,1.75,0,0,.63889],8970:[1.25003,1.75,0,0,.63889],8971:[1.25003,1.75,0,0,.63889],9115:[.64502,1.155,0,0,.875],9116:[1e-5,.6,0,0,.875],9117:[.64502,1.155,0,0,.875],9118:[.64502,1.155,0,0,.875],9119:[1e-5,.6,0,0,.875],9120:[.64502,1.155,0,0,.875],9121:[.64502,1.155,0,0,.66667],9122:[-99e-5,.601,0,0,.66667],9123:[.64502,1.155,0,0,.66667],9124:[.64502,1.155,0,0,.66667],9125:[-99e-5,.601,0,0,.66667],9126:[.64502,1.155,0,0,.66667],9127:[1e-5,.9,0,0,.88889],9128:[.65002,1.15,0,0,.88889],9129:[.90001,0,0,0,.88889],9130:[0,.3,0,0,.88889],9131:[1e-5,.9,0,0,.88889],9132:[.65002,1.15,0,0,.88889],9133:[.90001,0,0,0,.88889],9143:[.88502,.915,0,0,1.05556],10216:[1.25003,1.75,0,0,.80556],10217:[1.25003,1.75,0,0,.80556],57344:[-.00499,.605,0,0,1.05556],57345:[-.00499,.605,0,0,1.05556],57680:[0,.12,0,0,.45],57681:[0,.12,0,0,.45],57682:[0,.12,0,0,.45],57683:[0,.12,0,0,.45]},"Typewriter-Regular":{32:[0,0,0,0,.525],33:[0,.61111,0,0,.525],34:[0,.61111,0,0,.525],35:[0,.61111,0,0,.525],36:[.08333,.69444,0,0,.525],37:[.08333,.69444,0,0,.525],38:[0,.61111,0,0,.525],39:[0,.61111,0,0,.525],40:[.08333,.69444,0,0,.525],41:[.08333,.69444,0,0,.525],42:[0,.52083,0,0,.525],43:[-.08056,.53055,0,0,.525],44:[.13889,.125,0,0,.525],45:[-.08056,.53055,0,0,.525],46:[0,.125,0,0,.525],47:[.08333,.69444,0,0,.525],48:[0,.61111,0,0,.525],49:[0,.61111,0,0,.525],50:[0,.61111,0,0,.525],51:[0,.61111,0,0,.525],52:[0,.61111,0,0,.525],53:[0,.61111,0,0,.525],54:[0,.61111,0,0,.525],55:[0,.61111,0,0,.525],56:[0,.61111,0,0,.525],57:[0,.61111,0,0,.525],58:[0,.43056,0,0,.525],59:[.13889,.43056,0,0,.525],60:[-.05556,.55556,0,0,.525],61:[-.19549,.41562,0,0,.525],62:[-.05556,.55556,0,0,.525],63:[0,.61111,0,0,.525],64:[0,.61111,0,0,.525],65:[0,.61111,0,0,.525],66:[0,.61111,0,0,.525],67:[0,.61111,0,0,.525],68:[0,.61111,0,0,.525],69:[0,.61111,0,0,.525],70:[0,.61111,0,0,.525],71:[0,.61111,0,0,.525],72:[0,.61111,0,0,.525],73:[0,.61111,0,0,.525],74:[0,.61111,0,0,.525],75:[0,.61111,0,0,.525],76:[0,.61111,0,0,.525],77:[0,.61111,0,0,.525],78:[0,.61111,0,0,.525],79:[0,.61111,0,0,.525],80:[0,.61111,0,0,.525],81:[.13889,.61111,0,0,.525],82:[0,.61111,0,0,.525],83:[0,.61111,0,0,.525],84:[0,.61111,0,0,.525],85:[0,.61111,0,0,.525],86:[0,.61111,0,0,.525],87:[0,.61111,0,0,.525],88:[0,.61111,0,0,.525],89:[0,.61111,0,0,.525],90:[0,.61111,0,0,.525],91:[.08333,.69444,0,0,.525],92:[.08333,.69444,0,0,.525],93:[.08333,.69444,0,0,.525],94:[0,.61111,0,0,.525],95:[.09514,0,0,0,.525],96:[0,.61111,0,0,.525],97:[0,.43056,0,0,.525],98:[0,.61111,0,0,.525],99:[0,.43056,0,0,.525],100:[0,.61111,0,0,.525],101:[0,.43056,0,0,.525],102:[0,.61111,0,0,.525],103:[.22222,.43056,0,0,.525],104:[0,.61111,0,0,.525],105:[0,.61111,0,0,.525],106:[.22222,.61111,0,0,.525],107:[0,.61111,0,0,.525],108:[0,.61111,0,0,.525],109:[0,.43056,0,0,.525],110:[0,.43056,0,0,.525],111:[0,.43056,0,0,.525],112:[.22222,.43056,0,0,.525],113:[.22222,.43056,0,0,.525],114:[0,.43056,0,0,.525],115:[0,.43056,0,0,.525],116:[0,.55358,0,0,.525],117:[0,.43056,0,0,.525],118:[0,.43056,0,0,.525],119:[0,.43056,0,0,.525],120:[0,.43056,0,0,.525],121:[.22222,.43056,0,0,.525],122:[0,.43056,0,0,.525],123:[.08333,.69444,0,0,.525],124:[.08333,.69444,0,0,.525],125:[.08333,.69444,0,0,.525],126:[0,.61111,0,0,.525],127:[0,.61111,0,0,.525],160:[0,0,0,0,.525],176:[0,.61111,0,0,.525],184:[.19445,0,0,0,.525],305:[0,.43056,0,0,.525],567:[.22222,.43056,0,0,.525],711:[0,.56597,0,0,.525],713:[0,.56555,0,0,.525],714:[0,.61111,0,0,.525],715:[0,.61111,0,0,.525],728:[0,.61111,0,0,.525],730:[0,.61111,0,0,.525],770:[0,.61111,0,0,.525],771:[0,.61111,0,0,.525],776:[0,.61111,0,0,.525],915:[0,.61111,0,0,.525],916:[0,.61111,0,0,.525],920:[0,.61111,0,0,.525],923:[0,.61111,0,0,.525],926:[0,.61111,0,0,.525],928:[0,.61111,0,0,.525],931:[0,.61111,0,0,.525],933:[0,.61111,0,0,.525],934:[0,.61111,0,0,.525],936:[0,.61111,0,0,.525],937:[0,.61111,0,0,.525],8216:[0,.61111,0,0,.525],8217:[0,.61111,0,0,.525],8242:[0,.61111,0,0,.525],9251:[.11111,.21944,0,0,.525]}},I2={slant:[.25,.25,.25],space:[0,0,0],stretch:[0,0,0],shrink:[0,0,0],xHeight:[.431,.431,.431],quad:[1,1.171,1.472],extraSpace:[0,0,0],num1:[.677,.732,.925],num2:[.394,.384,.387],num3:[.444,.471,.504],denom1:[.686,.752,1.025],denom2:[.345,.344,.532],sup1:[.413,.503,.504],sup2:[.363,.431,.404],sup3:[.289,.286,.294],sub1:[.15,.143,.2],sub2:[.247,.286,.4],supDrop:[.386,.353,.494],subDrop:[.05,.071,.1],delim1:[2.39,1.7,1.98],delim2:[1.01,1.157,1.42],axisHeight:[.25,.25,.25],defaultRuleThickness:[.04,.049,.049],bigOpSpacing1:[.111,.111,.111],bigOpSpacing2:[.166,.166,.166],bigOpSpacing3:[.2,.2,.2],bigOpSpacing4:[.6,.611,.611],bigOpSpacing5:[.1,.143,.143],sqrtRuleThickness:[.04,.04,.04],ptPerEm:[10,10,10],doubleRuleSep:[.2,.2,.2],arrayRuleWidth:[.04,.04,.04],fboxsep:[.3,.3,.3],fboxrule:[.04,.04,.04]},Sz={Å:"A",Ð:"D",Þ:"o",å:"a",ð:"d",þ:"o",А:"A",Б:"B",В:"B",Г:"F",Д:"A",Е:"E",Ж:"K",З:"3",И:"N",Й:"N",К:"K",Л:"N",М:"M",Н:"H",О:"O",П:"N",Р:"P",С:"C",Т:"T",У:"y",Ф:"O",Х:"X",Ц:"U",Ч:"h",Ш:"W",Щ:"W",Ъ:"B",Ы:"X",Ь:"B",Э:"3",Ю:"X",Я:"R",а:"a",б:"b",в:"a",г:"r",д:"y",е:"e",ж:"m",з:"e",и:"n",й:"n",к:"n",л:"n",м:"m",н:"n",о:"o",п:"n",р:"p",с:"c",т:"o",у:"y",ф:"b",х:"x",ц:"n",ч:"n",ш:"w",щ:"w",ъ:"a",ы:"m",ь:"a",э:"e",ю:"m",я:"r"};function CBI(I,l){Tn[I]=l}function Gy(I,l,c){if(!Tn[l])throw new Error("Font metrics not found for font: "+l+".");var G=I.charCodeAt(0),e=Tn[l][G];if(!e&&I[0]in Sz&&(G=Sz[I[0]].charCodeAt(0),e=Tn[l][G]),!e&&c==="text"&&b7(G)&&(e=Tn[l][77]),e)return{depth:e[0],height:e[1],italic:e[2],skew:e[3],width:e[4]}}var KX={};function MBI(I){var l;if(I>=5?l=0:I>=3?l=1:l=2,!KX[l]){var c=KX[l]={cssEmPerMu:I2.quad[l]/18};for(var G in I2)I2.hasOwnProperty(G)&&(c[G]=I2[G][l])}return KX[l]}var fBI=[[1,1,1],[2,1,1],[3,1,1],[4,2,1],[5,2,1],[6,3,1],[7,4,2],[8,6,3],[9,7,6],[10,8,7],[11,10,9]],Tz=[.5,.6,.7,.8,.9,1,1.2,1.44,1.728,2.074,2.488],jz=function(l,c){return c.size<2?l:fBI[l-1][c.size-1]};class xb{constructor(l){this.style=void 0,this.color=void 0,this.size=void 0,this.textSize=void 0,this.phantom=void 0,this.font=void 0,this.fontFamily=void 0,this.fontWeight=void 0,this.fontShape=void 0,this.sizeMultiplier=void 0,this.maxSize=void 0,this.minRuleThickness=void 0,this._fontMetrics=void 0,this.style=l.style,this.color=l.color,this.size=l.size||xb.BASESIZE,this.textSize=l.textSize||this.size,this.phantom=!!l.phantom,this.font=l.font||"",this.fontFamily=l.fontFamily||"",this.fontWeight=l.fontWeight||"",this.fontShape=l.fontShape||"",this.sizeMultiplier=Tz[this.size-1],this.maxSize=l.maxSize,this.minRuleThickness=l.minRuleThickness,this._fontMetrics=void 0}extend(l){var c={style:this.style,size:this.size,textSize:this.textSize,color:this.color,phantom:this.phantom,font:this.font,fontFamily:this.fontFamily,fontWeight:this.fontWeight,fontShape:this.fontShape,maxSize:this.maxSize,minRuleThickness:this.minRuleThickness};for(var G in l)l.hasOwnProperty(G)&&(c[G]=l[G]);return new xb(c)}havingStyle(l){return this.style===l?this:this.extend({style:l,size:jz(this.textSize,l)})}havingCrampedStyle(){return this.havingStyle(this.style.cramp())}havingSize(l){return this.size===l&&this.textSize===l?this:this.extend({style:this.style.text(),size:l,textSize:l,sizeMultiplier:Tz[l-1]})}havingBaseStyle(l){l=l||this.style.text();var c=jz(xb.BASESIZE,l);return this.size===c&&this.textSize===xb.BASESIZE&&this.style===l?this:this.extend({style:l,size:c})}havingBaseSizing(){var l;switch(this.style.id){case 4:case 5:l=3;break;case 6:case 7:l=1;break;default:l=6}return this.extend({style:this.style.text(),size:l})}withColor(l){return this.extend({color:l})}withPhantom(){return this.extend({phantom:!0})}withFont(l){return this.extend({font:l})}withTextFontFamily(l){return this.extend({fontFamily:l,font:""})}withTextFontWeight(l){return this.extend({fontWeight:l,font:""})}withTextFontShape(l){return this.extend({fontShape:l,font:""})}sizingClasses(l){return l.size!==this.size?["sizing","reset-size"+l.size,"size"+this.size]:[]}baseSizingClasses(){return this.size!==xb.BASESIZE?["sizing","reset-size"+this.size,"size"+xb.BASESIZE]:[]}fontMetrics(){return this._fontMetrics||(this._fontMetrics=MBI(this.size)),this._fontMetrics}getColor(){return this.phantom?"transparent":this.color}}xb.BASESIZE=6;var aE={pt:1,mm:7227/2540,cm:7227/254,in:72.27,bp:803/800,pc:12,dd:1238/1157,cc:14856/1157,nd:685/642,nc:1370/107,sp:1/65536,px:803/800},KBI={ex:!0,em:!0,mu:!0},a7=function(l){return typeof l!="string"&&(l=l.unit),l in aE||l in KBI||l==="ex"},uG=function(l,c){var G;if(l.unit in aE)G=aE[l.unit]/c.fontMetrics().ptPerEm/c.sizeMultiplier;else if(l.unit==="mu")G=c.fontMetrics().cssEmPerMu;else{var e;if(c.style.isTight()?e=c.havingStyle(c.style.text()):e=c,l.unit==="ex")G=e.fontMetrics().xHeight;else if(l.unit==="em")G=e.fontMetrics().quad;else throw new DI("Invalid unit: '"+l.unit+"'");e!==c&&(G*=e.sizeMultiplier/c.sizeMultiplier)}return Math.min(l.number*G,c.maxSize)},el=function(l){return+l.toFixed(4)+"em"},hZ=function(l){return l.filter(c=>c).join(" ")},Z7=function(l,c,G){if(this.classes=l||[],this.attributes={},this.height=0,this.depth=0,this.maxFontSize=0,this.style=G||{},c){c.style.isTight()&&this.classes.push("mtight");var e=c.getColor();e&&(this.style.color=e)}},W7=function(l){var c=document.createElement(l);c.className=hZ(this.classes);for(var G in this.style)this.style.hasOwnProperty(G)&&(c.style[G]=this.style[G]);for(var e in this.attributes)this.attributes.hasOwnProperty(e)&&c.setAttribute(e,this.attributes[e]);for(var d=0;d",c};class jh{constructor(l,c,G,e){this.children=void 0,this.attributes=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.width=void 0,this.maxFontSize=void 0,this.style=void 0,Z7.call(this,l,G,e),this.children=c||[]}setAttribute(l,c){this.attributes[l]=c}hasClass(l){return Bl.contains(this.classes,l)}toNode(){return W7.call(this,"span")}toMarkup(){return r7.call(this,"span")}}class ey{constructor(l,c,G,e){this.children=void 0,this.attributes=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,Z7.call(this,c,e),this.children=G||[],this.setAttribute("href",l)}setAttribute(l,c){this.attributes[l]=c}hasClass(l){return Bl.contains(this.classes,l)}toNode(){return W7.call(this,"a")}toMarkup(){return r7.call(this,"a")}}class LBI{constructor(l,c,G){this.src=void 0,this.alt=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,this.alt=c,this.src=l,this.classes=["mord"],this.style=G}hasClass(l){return Bl.contains(this.classes,l)}toNode(){var l=document.createElement("img");l.src=this.src,l.alt=this.alt,l.className="mord";for(var c in this.style)this.style.hasOwnProperty(c)&&(l.style[c]=this.style[c]);return l}toMarkup(){var l=''+Bl.escape(this.alt)+'0&&(c=document.createElement("span"),c.style.marginRight=el(this.italic)),this.classes.length>0&&(c=c||document.createElement("span"),c.className=hZ(this.classes));for(var G in this.style)this.style.hasOwnProperty(G)&&(c=c||document.createElement("span"),c.style[G]=this.style[G]);return c?(c.appendChild(l),c):l}toMarkup(){var l=!1,c="0&&(G+="margin-right:"+this.italic+"em;");for(var e in this.style)this.style.hasOwnProperty(e)&&(G+=Bl.hyphenate(e)+":"+this.style[e]+";");G&&(l=!0,c+=' style="'+Bl.escape(G)+'"');var d=Bl.escape(this.text);return l?(c+=">",c+=d,c+="",c):d}}class Ia{constructor(l,c){this.children=void 0,this.attributes=void 0,this.children=l||[],this.attributes=c||{}}toNode(){var l="http://www.w3.org/2000/svg",c=document.createElementNS(l,"svg");for(var G in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,G)&&c.setAttribute(G,this.attributes[G]);for(var e=0;e':''}}class ZE{constructor(l){this.attributes=void 0,this.attributes=l||{}}toNode(){var l="http://www.w3.org/2000/svg",c=document.createElementNS(l,"line");for(var G in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,G)&&c.setAttribute(G,this.attributes[G]);return c}toMarkup(){var l=" but got "+String(I)+".")}var jBI={bin:1,close:1,inner:1,open:1,punct:1,rel:1},DBI={"accent-token":1,mathord:1,"op-token":1,spacing:1,textord:1},_c={math:{},text:{}};function Q(I,l,c,G,e,d){_c[I][e]={font:l,group:c,replace:G},d&&G&&(_c[I][G]=_c[I][e])}var y="math",MI="text",U="main",II="ams",aG="accent-token",Vl="bin",ed="close",X0="inner",zl="mathord",zG="op-token",et="open",gN="punct",cI="rel",ba="spacing",WI="textord";Q(y,U,cI,"≡","\\equiv",!0);Q(y,U,cI,"≺","\\prec",!0);Q(y,U,cI,"≻","\\succ",!0);Q(y,U,cI,"∼","\\sim",!0);Q(y,U,cI,"⊥","\\perp");Q(y,U,cI,"⪯","\\preceq",!0);Q(y,U,cI,"⪰","\\succeq",!0);Q(y,U,cI,"≃","\\simeq",!0);Q(y,U,cI,"∣","\\mid",!0);Q(y,U,cI,"≪","\\ll",!0);Q(y,U,cI,"≫","\\gg",!0);Q(y,U,cI,"≍","\\asymp",!0);Q(y,U,cI,"∥","\\parallel");Q(y,U,cI,"⋈","\\bowtie",!0);Q(y,U,cI,"⌣","\\smile",!0);Q(y,U,cI,"⊑","\\sqsubseteq",!0);Q(y,U,cI,"⊒","\\sqsupseteq",!0);Q(y,U,cI,"≐","\\doteq",!0);Q(y,U,cI,"⌢","\\frown",!0);Q(y,U,cI,"∋","\\ni",!0);Q(y,U,cI,"∝","\\propto",!0);Q(y,U,cI,"⊢","\\vdash",!0);Q(y,U,cI,"⊣","\\dashv",!0);Q(y,U,cI,"∋","\\owns");Q(y,U,gN,".","\\ldotp");Q(y,U,gN,"⋅","\\cdotp");Q(y,U,WI,"#","\\#");Q(MI,U,WI,"#","\\#");Q(y,U,WI,"&","\\&");Q(MI,U,WI,"&","\\&");Q(y,U,WI,"ℵ","\\aleph",!0);Q(y,U,WI,"∀","\\forall",!0);Q(y,U,WI,"ℏ","\\hbar",!0);Q(y,U,WI,"∃","\\exists",!0);Q(y,U,WI,"∇","\\nabla",!0);Q(y,U,WI,"♭","\\flat",!0);Q(y,U,WI,"ℓ","\\ell",!0);Q(y,U,WI,"♮","\\natural",!0);Q(y,U,WI,"♣","\\clubsuit",!0);Q(y,U,WI,"℘","\\wp",!0);Q(y,U,WI,"♯","\\sharp",!0);Q(y,U,WI,"♢","\\diamondsuit",!0);Q(y,U,WI,"ℜ","\\Re",!0);Q(y,U,WI,"♡","\\heartsuit",!0);Q(y,U,WI,"ℑ","\\Im",!0);Q(y,U,WI,"♠","\\spadesuit",!0);Q(y,U,WI,"§","\\S",!0);Q(MI,U,WI,"§","\\S");Q(y,U,WI,"¶","\\P",!0);Q(MI,U,WI,"¶","\\P");Q(y,U,WI,"†","\\dag");Q(MI,U,WI,"†","\\dag");Q(MI,U,WI,"†","\\textdagger");Q(y,U,WI,"‡","\\ddag");Q(MI,U,WI,"‡","\\ddag");Q(MI,U,WI,"‡","\\textdaggerdbl");Q(y,U,ed,"⎱","\\rmoustache",!0);Q(y,U,et,"⎰","\\lmoustache",!0);Q(y,U,ed,"⟯","\\rgroup",!0);Q(y,U,et,"⟮","\\lgroup",!0);Q(y,U,Vl,"∓","\\mp",!0);Q(y,U,Vl,"⊖","\\ominus",!0);Q(y,U,Vl,"⊎","\\uplus",!0);Q(y,U,Vl,"⊓","\\sqcap",!0);Q(y,U,Vl,"∗","\\ast");Q(y,U,Vl,"⊔","\\sqcup",!0);Q(y,U,Vl,"◯","\\bigcirc",!0);Q(y,U,Vl,"∙","\\bullet",!0);Q(y,U,Vl,"‡","\\ddagger");Q(y,U,Vl,"≀","\\wr",!0);Q(y,U,Vl,"⨿","\\amalg");Q(y,U,Vl,"&","\\And");Q(y,U,cI,"⟵","\\longleftarrow",!0);Q(y,U,cI,"⇐","\\Leftarrow",!0);Q(y,U,cI,"⟸","\\Longleftarrow",!0);Q(y,U,cI,"⟶","\\longrightarrow",!0);Q(y,U,cI,"⇒","\\Rightarrow",!0);Q(y,U,cI,"⟹","\\Longrightarrow",!0);Q(y,U,cI,"↔","\\leftrightarrow",!0);Q(y,U,cI,"⟷","\\longleftrightarrow",!0);Q(y,U,cI,"⇔","\\Leftrightarrow",!0);Q(y,U,cI,"⟺","\\Longleftrightarrow",!0);Q(y,U,cI,"↦","\\mapsto",!0);Q(y,U,cI,"⟼","\\longmapsto",!0);Q(y,U,cI,"↗","\\nearrow",!0);Q(y,U,cI,"↩","\\hookleftarrow",!0);Q(y,U,cI,"↪","\\hookrightarrow",!0);Q(y,U,cI,"↘","\\searrow",!0);Q(y,U,cI,"↼","\\leftharpoonup",!0);Q(y,U,cI,"⇀","\\rightharpoonup",!0);Q(y,U,cI,"↙","\\swarrow",!0);Q(y,U,cI,"↽","\\leftharpoondown",!0);Q(y,U,cI,"⇁","\\rightharpoondown",!0);Q(y,U,cI,"↖","\\nwarrow",!0);Q(y,U,cI,"⇌","\\rightleftharpoons",!0);Q(y,II,cI,"≮","\\nless",!0);Q(y,II,cI,"","\\@nleqslant");Q(y,II,cI,"","\\@nleqq");Q(y,II,cI,"⪇","\\lneq",!0);Q(y,II,cI,"≨","\\lneqq",!0);Q(y,II,cI,"","\\@lvertneqq");Q(y,II,cI,"⋦","\\lnsim",!0);Q(y,II,cI,"⪉","\\lnapprox",!0);Q(y,II,cI,"⊀","\\nprec",!0);Q(y,II,cI,"⋠","\\npreceq",!0);Q(y,II,cI,"⋨","\\precnsim",!0);Q(y,II,cI,"⪹","\\precnapprox",!0);Q(y,II,cI,"≁","\\nsim",!0);Q(y,II,cI,"","\\@nshortmid");Q(y,II,cI,"∤","\\nmid",!0);Q(y,II,cI,"⊬","\\nvdash",!0);Q(y,II,cI,"⊭","\\nvDash",!0);Q(y,II,cI,"⋪","\\ntriangleleft");Q(y,II,cI,"⋬","\\ntrianglelefteq",!0);Q(y,II,cI,"⊊","\\subsetneq",!0);Q(y,II,cI,"","\\@varsubsetneq");Q(y,II,cI,"⫋","\\subsetneqq",!0);Q(y,II,cI,"","\\@varsubsetneqq");Q(y,II,cI,"≯","\\ngtr",!0);Q(y,II,cI,"","\\@ngeqslant");Q(y,II,cI,"","\\@ngeqq");Q(y,II,cI,"⪈","\\gneq",!0);Q(y,II,cI,"≩","\\gneqq",!0);Q(y,II,cI,"","\\@gvertneqq");Q(y,II,cI,"⋧","\\gnsim",!0);Q(y,II,cI,"⪊","\\gnapprox",!0);Q(y,II,cI,"⊁","\\nsucc",!0);Q(y,II,cI,"⋡","\\nsucceq",!0);Q(y,II,cI,"⋩","\\succnsim",!0);Q(y,II,cI,"⪺","\\succnapprox",!0);Q(y,II,cI,"≆","\\ncong",!0);Q(y,II,cI,"","\\@nshortparallel");Q(y,II,cI,"∦","\\nparallel",!0);Q(y,II,cI,"⊯","\\nVDash",!0);Q(y,II,cI,"⋫","\\ntriangleright");Q(y,II,cI,"⋭","\\ntrianglerighteq",!0);Q(y,II,cI,"","\\@nsupseteqq");Q(y,II,cI,"⊋","\\supsetneq",!0);Q(y,II,cI,"","\\@varsupsetneq");Q(y,II,cI,"⫌","\\supsetneqq",!0);Q(y,II,cI,"","\\@varsupsetneqq");Q(y,II,cI,"⊮","\\nVdash",!0);Q(y,II,cI,"⪵","\\precneqq",!0);Q(y,II,cI,"⪶","\\succneqq",!0);Q(y,II,cI,"","\\@nsubseteqq");Q(y,II,Vl,"⊴","\\unlhd");Q(y,II,Vl,"⊵","\\unrhd");Q(y,II,cI,"↚","\\nleftarrow",!0);Q(y,II,cI,"↛","\\nrightarrow",!0);Q(y,II,cI,"⇍","\\nLeftarrow",!0);Q(y,II,cI,"⇏","\\nRightarrow",!0);Q(y,II,cI,"↮","\\nleftrightarrow",!0);Q(y,II,cI,"⇎","\\nLeftrightarrow",!0);Q(y,II,cI,"△","\\vartriangle");Q(y,II,WI,"ℏ","\\hslash");Q(y,II,WI,"▽","\\triangledown");Q(y,II,WI,"◊","\\lozenge");Q(y,II,WI,"Ⓢ","\\circledS");Q(y,II,WI,"®","\\circledR");Q(MI,II,WI,"®","\\circledR");Q(y,II,WI,"∡","\\measuredangle",!0);Q(y,II,WI,"∄","\\nexists");Q(y,II,WI,"℧","\\mho");Q(y,II,WI,"Ⅎ","\\Finv",!0);Q(y,II,WI,"⅁","\\Game",!0);Q(y,II,WI,"‵","\\backprime");Q(y,II,WI,"▲","\\blacktriangle");Q(y,II,WI,"▼","\\blacktriangledown");Q(y,II,WI,"■","\\blacksquare");Q(y,II,WI,"⧫","\\blacklozenge");Q(y,II,WI,"★","\\bigstar");Q(y,II,WI,"∢","\\sphericalangle",!0);Q(y,II,WI,"∁","\\complement",!0);Q(y,II,WI,"ð","\\eth",!0);Q(MI,U,WI,"ð","ð");Q(y,II,WI,"╱","\\diagup");Q(y,II,WI,"╲","\\diagdown");Q(y,II,WI,"□","\\square");Q(y,II,WI,"□","\\Box");Q(y,II,WI,"◊","\\Diamond");Q(y,II,WI,"¥","\\yen",!0);Q(MI,II,WI,"¥","\\yen",!0);Q(y,II,WI,"✓","\\checkmark",!0);Q(MI,II,WI,"✓","\\checkmark");Q(y,II,WI,"ℶ","\\beth",!0);Q(y,II,WI,"ℸ","\\daleth",!0);Q(y,II,WI,"ℷ","\\gimel",!0);Q(y,II,WI,"ϝ","\\digamma",!0);Q(y,II,WI,"ϰ","\\varkappa");Q(y,II,et,"┌","\\@ulcorner",!0);Q(y,II,ed,"┐","\\@urcorner",!0);Q(y,II,et,"└","\\@llcorner",!0);Q(y,II,ed,"┘","\\@lrcorner",!0);Q(y,II,cI,"≦","\\leqq",!0);Q(y,II,cI,"⩽","\\leqslant",!0);Q(y,II,cI,"⪕","\\eqslantless",!0);Q(y,II,cI,"≲","\\lesssim",!0);Q(y,II,cI,"⪅","\\lessapprox",!0);Q(y,II,cI,"≊","\\approxeq",!0);Q(y,II,Vl,"⋖","\\lessdot");Q(y,II,cI,"⋘","\\lll",!0);Q(y,II,cI,"≶","\\lessgtr",!0);Q(y,II,cI,"⋚","\\lesseqgtr",!0);Q(y,II,cI,"⪋","\\lesseqqgtr",!0);Q(y,II,cI,"≑","\\doteqdot");Q(y,II,cI,"≓","\\risingdotseq",!0);Q(y,II,cI,"≒","\\fallingdotseq",!0);Q(y,II,cI,"∽","\\backsim",!0);Q(y,II,cI,"⋍","\\backsimeq",!0);Q(y,II,cI,"⫅","\\subseteqq",!0);Q(y,II,cI,"⋐","\\Subset",!0);Q(y,II,cI,"⊏","\\sqsubset",!0);Q(y,II,cI,"≼","\\preccurlyeq",!0);Q(y,II,cI,"⋞","\\curlyeqprec",!0);Q(y,II,cI,"≾","\\precsim",!0);Q(y,II,cI,"⪷","\\precapprox",!0);Q(y,II,cI,"⊲","\\vartriangleleft");Q(y,II,cI,"⊴","\\trianglelefteq");Q(y,II,cI,"⊨","\\vDash",!0);Q(y,II,cI,"⊪","\\Vvdash",!0);Q(y,II,cI,"⌣","\\smallsmile");Q(y,II,cI,"⌢","\\smallfrown");Q(y,II,cI,"≏","\\bumpeq",!0);Q(y,II,cI,"≎","\\Bumpeq",!0);Q(y,II,cI,"≧","\\geqq",!0);Q(y,II,cI,"⩾","\\geqslant",!0);Q(y,II,cI,"⪖","\\eqslantgtr",!0);Q(y,II,cI,"≳","\\gtrsim",!0);Q(y,II,cI,"⪆","\\gtrapprox",!0);Q(y,II,Vl,"⋗","\\gtrdot");Q(y,II,cI,"⋙","\\ggg",!0);Q(y,II,cI,"≷","\\gtrless",!0);Q(y,II,cI,"⋛","\\gtreqless",!0);Q(y,II,cI,"⪌","\\gtreqqless",!0);Q(y,II,cI,"≖","\\eqcirc",!0);Q(y,II,cI,"≗","\\circeq",!0);Q(y,II,cI,"≜","\\triangleq",!0);Q(y,II,cI,"∼","\\thicksim");Q(y,II,cI,"≈","\\thickapprox");Q(y,II,cI,"⫆","\\supseteqq",!0);Q(y,II,cI,"⋑","\\Supset",!0);Q(y,II,cI,"⊐","\\sqsupset",!0);Q(y,II,cI,"≽","\\succcurlyeq",!0);Q(y,II,cI,"⋟","\\curlyeqsucc",!0);Q(y,II,cI,"≿","\\succsim",!0);Q(y,II,cI,"⪸","\\succapprox",!0);Q(y,II,cI,"⊳","\\vartriangleright");Q(y,II,cI,"⊵","\\trianglerighteq");Q(y,II,cI,"⊩","\\Vdash",!0);Q(y,II,cI,"∣","\\shortmid");Q(y,II,cI,"∥","\\shortparallel");Q(y,II,cI,"≬","\\between",!0);Q(y,II,cI,"⋔","\\pitchfork",!0);Q(y,II,cI,"∝","\\varpropto");Q(y,II,cI,"◀","\\blacktriangleleft");Q(y,II,cI,"∴","\\therefore",!0);Q(y,II,cI,"∍","\\backepsilon");Q(y,II,cI,"▶","\\blacktriangleright");Q(y,II,cI,"∵","\\because",!0);Q(y,II,cI,"⋘","\\llless");Q(y,II,cI,"⋙","\\gggtr");Q(y,II,Vl,"⊲","\\lhd");Q(y,II,Vl,"⊳","\\rhd");Q(y,II,cI,"≂","\\eqsim",!0);Q(y,U,cI,"⋈","\\Join");Q(y,II,cI,"≑","\\Doteq",!0);Q(y,II,Vl,"∔","\\dotplus",!0);Q(y,II,Vl,"∖","\\smallsetminus");Q(y,II,Vl,"⋒","\\Cap",!0);Q(y,II,Vl,"⋓","\\Cup",!0);Q(y,II,Vl,"⩞","\\doublebarwedge",!0);Q(y,II,Vl,"⊟","\\boxminus",!0);Q(y,II,Vl,"⊞","\\boxplus",!0);Q(y,II,Vl,"⋇","\\divideontimes",!0);Q(y,II,Vl,"⋉","\\ltimes",!0);Q(y,II,Vl,"⋊","\\rtimes",!0);Q(y,II,Vl,"⋋","\\leftthreetimes",!0);Q(y,II,Vl,"⋌","\\rightthreetimes",!0);Q(y,II,Vl,"⋏","\\curlywedge",!0);Q(y,II,Vl,"⋎","\\curlyvee",!0);Q(y,II,Vl,"⊝","\\circleddash",!0);Q(y,II,Vl,"⊛","\\circledast",!0);Q(y,II,Vl,"⋅","\\centerdot");Q(y,II,Vl,"⊺","\\intercal",!0);Q(y,II,Vl,"⋒","\\doublecap");Q(y,II,Vl,"⋓","\\doublecup");Q(y,II,Vl,"⊠","\\boxtimes",!0);Q(y,II,cI,"⇢","\\dashrightarrow",!0);Q(y,II,cI,"⇠","\\dashleftarrow",!0);Q(y,II,cI,"⇇","\\leftleftarrows",!0);Q(y,II,cI,"⇆","\\leftrightarrows",!0);Q(y,II,cI,"⇚","\\Lleftarrow",!0);Q(y,II,cI,"↞","\\twoheadleftarrow",!0);Q(y,II,cI,"↢","\\leftarrowtail",!0);Q(y,II,cI,"↫","\\looparrowleft",!0);Q(y,II,cI,"⇋","\\leftrightharpoons",!0);Q(y,II,cI,"↶","\\curvearrowleft",!0);Q(y,II,cI,"↺","\\circlearrowleft",!0);Q(y,II,cI,"↰","\\Lsh",!0);Q(y,II,cI,"⇈","\\upuparrows",!0);Q(y,II,cI,"↿","\\upharpoonleft",!0);Q(y,II,cI,"⇃","\\downharpoonleft",!0);Q(y,U,cI,"⊶","\\origof",!0);Q(y,U,cI,"⊷","\\imageof",!0);Q(y,II,cI,"⊸","\\multimap",!0);Q(y,II,cI,"↭","\\leftrightsquigarrow",!0);Q(y,II,cI,"⇉","\\rightrightarrows",!0);Q(y,II,cI,"⇄","\\rightleftarrows",!0);Q(y,II,cI,"↠","\\twoheadrightarrow",!0);Q(y,II,cI,"↣","\\rightarrowtail",!0);Q(y,II,cI,"↬","\\looparrowright",!0);Q(y,II,cI,"↷","\\curvearrowright",!0);Q(y,II,cI,"↻","\\circlearrowright",!0);Q(y,II,cI,"↱","\\Rsh",!0);Q(y,II,cI,"⇊","\\downdownarrows",!0);Q(y,II,cI,"↾","\\upharpoonright",!0);Q(y,II,cI,"⇂","\\downharpoonright",!0);Q(y,II,cI,"⇝","\\rightsquigarrow",!0);Q(y,II,cI,"⇝","\\leadsto");Q(y,II,cI,"⇛","\\Rrightarrow",!0);Q(y,II,cI,"↾","\\restriction");Q(y,U,WI,"‘","`");Q(y,U,WI,"$","\\$");Q(MI,U,WI,"$","\\$");Q(MI,U,WI,"$","\\textdollar");Q(y,U,WI,"%","\\%");Q(MI,U,WI,"%","\\%");Q(y,U,WI,"_","\\_");Q(MI,U,WI,"_","\\_");Q(MI,U,WI,"_","\\textunderscore");Q(y,U,WI,"∠","\\angle",!0);Q(y,U,WI,"∞","\\infty",!0);Q(y,U,WI,"′","\\prime");Q(y,U,WI,"△","\\triangle");Q(y,U,WI,"Γ","\\Gamma",!0);Q(y,U,WI,"Δ","\\Delta",!0);Q(y,U,WI,"Θ","\\Theta",!0);Q(y,U,WI,"Λ","\\Lambda",!0);Q(y,U,WI,"Ξ","\\Xi",!0);Q(y,U,WI,"Π","\\Pi",!0);Q(y,U,WI,"Σ","\\Sigma",!0);Q(y,U,WI,"Υ","\\Upsilon",!0);Q(y,U,WI,"Φ","\\Phi",!0);Q(y,U,WI,"Ψ","\\Psi",!0);Q(y,U,WI,"Ω","\\Omega",!0);Q(y,U,WI,"A","Α");Q(y,U,WI,"B","Β");Q(y,U,WI,"E","Ε");Q(y,U,WI,"Z","Ζ");Q(y,U,WI,"H","Η");Q(y,U,WI,"I","Ι");Q(y,U,WI,"K","Κ");Q(y,U,WI,"M","Μ");Q(y,U,WI,"N","Ν");Q(y,U,WI,"O","Ο");Q(y,U,WI,"P","Ρ");Q(y,U,WI,"T","Τ");Q(y,U,WI,"X","Χ");Q(y,U,WI,"¬","\\neg",!0);Q(y,U,WI,"¬","\\lnot");Q(y,U,WI,"⊤","\\top");Q(y,U,WI,"⊥","\\bot");Q(y,U,WI,"∅","\\emptyset");Q(y,II,WI,"∅","\\varnothing");Q(y,U,zl,"α","\\alpha",!0);Q(y,U,zl,"β","\\beta",!0);Q(y,U,zl,"γ","\\gamma",!0);Q(y,U,zl,"δ","\\delta",!0);Q(y,U,zl,"ϵ","\\epsilon",!0);Q(y,U,zl,"ζ","\\zeta",!0);Q(y,U,zl,"η","\\eta",!0);Q(y,U,zl,"θ","\\theta",!0);Q(y,U,zl,"ι","\\iota",!0);Q(y,U,zl,"κ","\\kappa",!0);Q(y,U,zl,"λ","\\lambda",!0);Q(y,U,zl,"μ","\\mu",!0);Q(y,U,zl,"ν","\\nu",!0);Q(y,U,zl,"ξ","\\xi",!0);Q(y,U,zl,"ο","\\omicron",!0);Q(y,U,zl,"π","\\pi",!0);Q(y,U,zl,"ρ","\\rho",!0);Q(y,U,zl,"σ","\\sigma",!0);Q(y,U,zl,"τ","\\tau",!0);Q(y,U,zl,"υ","\\upsilon",!0);Q(y,U,zl,"ϕ","\\phi",!0);Q(y,U,zl,"χ","\\chi",!0);Q(y,U,zl,"ψ","\\psi",!0);Q(y,U,zl,"ω","\\omega",!0);Q(y,U,zl,"ε","\\varepsilon",!0);Q(y,U,zl,"ϑ","\\vartheta",!0);Q(y,U,zl,"ϖ","\\varpi",!0);Q(y,U,zl,"ϱ","\\varrho",!0);Q(y,U,zl,"ς","\\varsigma",!0);Q(y,U,zl,"φ","\\varphi",!0);Q(y,U,Vl,"∗","*",!0);Q(y,U,Vl,"+","+");Q(y,U,Vl,"−","-",!0);Q(y,U,Vl,"⋅","\\cdot",!0);Q(y,U,Vl,"∘","\\circ",!0);Q(y,U,Vl,"÷","\\div",!0);Q(y,U,Vl,"±","\\pm",!0);Q(y,U,Vl,"×","\\times",!0);Q(y,U,Vl,"∩","\\cap",!0);Q(y,U,Vl,"∪","\\cup",!0);Q(y,U,Vl,"∖","\\setminus",!0);Q(y,U,Vl,"∧","\\land");Q(y,U,Vl,"∨","\\lor");Q(y,U,Vl,"∧","\\wedge",!0);Q(y,U,Vl,"∨","\\vee",!0);Q(y,U,WI,"√","\\surd");Q(y,U,et,"⟨","\\langle",!0);Q(y,U,et,"∣","\\lvert");Q(y,U,et,"∥","\\lVert");Q(y,U,ed,"?","?");Q(y,U,ed,"!","!");Q(y,U,ed,"⟩","\\rangle",!0);Q(y,U,ed,"∣","\\rvert");Q(y,U,ed,"∥","\\rVert");Q(y,U,cI,"=","=");Q(y,U,cI,":",":");Q(y,U,cI,"≈","\\approx",!0);Q(y,U,cI,"≅","\\cong",!0);Q(y,U,cI,"≥","\\ge");Q(y,U,cI,"≥","\\geq",!0);Q(y,U,cI,"←","\\gets");Q(y,U,cI,">","\\gt",!0);Q(y,U,cI,"∈","\\in",!0);Q(y,U,cI,"","\\@not");Q(y,U,cI,"⊂","\\subset",!0);Q(y,U,cI,"⊃","\\supset",!0);Q(y,U,cI,"⊆","\\subseteq",!0);Q(y,U,cI,"⊇","\\supseteq",!0);Q(y,II,cI,"⊈","\\nsubseteq",!0);Q(y,II,cI,"⊉","\\nsupseteq",!0);Q(y,U,cI,"⊨","\\models");Q(y,U,cI,"←","\\leftarrow",!0);Q(y,U,cI,"≤","\\le");Q(y,U,cI,"≤","\\leq",!0);Q(y,U,cI,"<","\\lt",!0);Q(y,U,cI,"→","\\rightarrow",!0);Q(y,U,cI,"→","\\to");Q(y,II,cI,"≱","\\ngeq",!0);Q(y,II,cI,"≰","\\nleq",!0);Q(y,U,ba," ","\\ ");Q(y,U,ba," ","\\space");Q(y,U,ba," ","\\nobreakspace");Q(MI,U,ba," ","\\ ");Q(MI,U,ba," "," ");Q(MI,U,ba," ","\\space");Q(MI,U,ba," ","\\nobreakspace");Q(y,U,ba,null,"\\nobreak");Q(y,U,ba,null,"\\allowbreak");Q(y,U,gN,",",",");Q(y,U,gN,";",";");Q(y,II,Vl,"⊼","\\barwedge",!0);Q(y,II,Vl,"⊻","\\veebar",!0);Q(y,U,Vl,"⊙","\\odot",!0);Q(y,U,Vl,"⊕","\\oplus",!0);Q(y,U,Vl,"⊗","\\otimes",!0);Q(y,U,WI,"∂","\\partial",!0);Q(y,U,Vl,"⊘","\\oslash",!0);Q(y,II,Vl,"⊚","\\circledcirc",!0);Q(y,II,Vl,"⊡","\\boxdot",!0);Q(y,U,Vl,"△","\\bigtriangleup");Q(y,U,Vl,"▽","\\bigtriangledown");Q(y,U,Vl,"†","\\dagger");Q(y,U,Vl,"⋄","\\diamond");Q(y,U,Vl,"⋆","\\star");Q(y,U,Vl,"◃","\\triangleleft");Q(y,U,Vl,"▹","\\triangleright");Q(y,U,et,"{","\\{");Q(MI,U,WI,"{","\\{");Q(MI,U,WI,"{","\\textbraceleft");Q(y,U,ed,"}","\\}");Q(MI,U,WI,"}","\\}");Q(MI,U,WI,"}","\\textbraceright");Q(y,U,et,"{","\\lbrace");Q(y,U,ed,"}","\\rbrace");Q(y,U,et,"[","\\lbrack",!0);Q(MI,U,WI,"[","\\lbrack",!0);Q(y,U,ed,"]","\\rbrack",!0);Q(MI,U,WI,"]","\\rbrack",!0);Q(y,U,et,"(","\\lparen",!0);Q(y,U,ed,")","\\rparen",!0);Q(MI,U,WI,"<","\\textless",!0);Q(MI,U,WI,">","\\textgreater",!0);Q(y,U,et,"⌊","\\lfloor",!0);Q(y,U,ed,"⌋","\\rfloor",!0);Q(y,U,et,"⌈","\\lceil",!0);Q(y,U,ed,"⌉","\\rceil",!0);Q(y,U,WI,"\\","\\backslash");Q(y,U,WI,"∣","|");Q(y,U,WI,"∣","\\vert");Q(MI,U,WI,"|","\\textbar",!0);Q(y,U,WI,"∥","\\|");Q(y,U,WI,"∥","\\Vert");Q(MI,U,WI,"∥","\\textbardbl");Q(MI,U,WI,"~","\\textasciitilde");Q(MI,U,WI,"\\","\\textbackslash");Q(MI,U,WI,"^","\\textasciicircum");Q(y,U,cI,"↑","\\uparrow",!0);Q(y,U,cI,"⇑","\\Uparrow",!0);Q(y,U,cI,"↓","\\downarrow",!0);Q(y,U,cI,"⇓","\\Downarrow",!0);Q(y,U,cI,"↕","\\updownarrow",!0);Q(y,U,cI,"⇕","\\Updownarrow",!0);Q(y,U,zG,"∐","\\coprod");Q(y,U,zG,"⋁","\\bigvee");Q(y,U,zG,"⋀","\\bigwedge");Q(y,U,zG,"⨄","\\biguplus");Q(y,U,zG,"⋂","\\bigcap");Q(y,U,zG,"⋃","\\bigcup");Q(y,U,zG,"∫","\\int");Q(y,U,zG,"∫","\\intop");Q(y,U,zG,"∬","\\iint");Q(y,U,zG,"∭","\\iiint");Q(y,U,zG,"∏","\\prod");Q(y,U,zG,"∑","\\sum");Q(y,U,zG,"⨂","\\bigotimes");Q(y,U,zG,"⨁","\\bigoplus");Q(y,U,zG,"⨀","\\bigodot");Q(y,U,zG,"∮","\\oint");Q(y,U,zG,"∯","\\oiint");Q(y,U,zG,"∰","\\oiiint");Q(y,U,zG,"⨆","\\bigsqcup");Q(y,U,zG,"∫","\\smallint");Q(MI,U,X0,"…","\\textellipsis");Q(y,U,X0,"…","\\mathellipsis");Q(MI,U,X0,"…","\\ldots",!0);Q(y,U,X0,"…","\\ldots",!0);Q(y,U,X0,"⋯","\\@cdots",!0);Q(y,U,X0,"⋱","\\ddots",!0);Q(y,U,WI,"⋮","\\varvdots");Q(y,U,aG,"ˊ","\\acute");Q(y,U,aG,"ˋ","\\grave");Q(y,U,aG,"¨","\\ddot");Q(y,U,aG,"~","\\tilde");Q(y,U,aG,"ˉ","\\bar");Q(y,U,aG,"˘","\\breve");Q(y,U,aG,"ˇ","\\check");Q(y,U,aG,"^","\\hat");Q(y,U,aG,"⃗","\\vec");Q(y,U,aG,"˙","\\dot");Q(y,U,aG,"˚","\\mathring");Q(y,U,zl,"","\\@imath");Q(y,U,zl,"","\\@jmath");Q(y,U,WI,"ı","ı");Q(y,U,WI,"ȷ","ȷ");Q(MI,U,WI,"ı","\\i",!0);Q(MI,U,WI,"ȷ","\\j",!0);Q(MI,U,WI,"ß","\\ss",!0);Q(MI,U,WI,"æ","\\ae",!0);Q(MI,U,WI,"œ","\\oe",!0);Q(MI,U,WI,"ø","\\o",!0);Q(MI,U,WI,"Æ","\\AE",!0);Q(MI,U,WI,"Œ","\\OE",!0);Q(MI,U,WI,"Ø","\\O",!0);Q(MI,U,aG,"ˊ","\\'");Q(MI,U,aG,"ˋ","\\`");Q(MI,U,aG,"ˆ","\\^");Q(MI,U,aG,"˜","\\~");Q(MI,U,aG,"ˉ","\\=");Q(MI,U,aG,"˘","\\u");Q(MI,U,aG,"˙","\\.");Q(MI,U,aG,"¸","\\c");Q(MI,U,aG,"˚","\\r");Q(MI,U,aG,"ˇ","\\v");Q(MI,U,aG,"¨",'\\"');Q(MI,U,aG,"˝","\\H");Q(MI,U,aG,"◯","\\textcircled");var m7={"--":!0,"---":!0,"``":!0,"''":!0};Q(MI,U,WI,"–","--",!0);Q(MI,U,WI,"–","\\textendash");Q(MI,U,WI,"—","---",!0);Q(MI,U,WI,"—","\\textemdash");Q(MI,U,WI,"‘","`",!0);Q(MI,U,WI,"‘","\\textquoteleft");Q(MI,U,WI,"’","'",!0);Q(MI,U,WI,"’","\\textquoteright");Q(MI,U,WI,"“","``",!0);Q(MI,U,WI,"“","\\textquotedblleft");Q(MI,U,WI,"”","''",!0);Q(MI,U,WI,"”","\\textquotedblright");Q(y,U,WI,"°","\\degree",!0);Q(MI,U,WI,"°","\\degree");Q(MI,U,WI,"°","\\textdegree",!0);Q(y,U,WI,"£","\\pounds");Q(y,U,WI,"£","\\mathsterling",!0);Q(MI,U,WI,"£","\\pounds");Q(MI,U,WI,"£","\\textsterling",!0);Q(y,II,WI,"✠","\\maltese");Q(MI,II,WI,"✠","\\maltese");var Oz='0123456789/@."';for(var LX=0;LX0)return Gn(d,a,e,c,t.concat(Z));if(b){var W,m;if(b==="boldsymbol"){var s=_BI(d,e,c,t,G);W=s.fontName,m=[s.fontClass]}else n?(W=h7[b].fontName,m=[b]):(W=e2(b,c.fontWeight,c.fontShape),m=[b,c.fontWeight,c.fontShape]);if(AN(d,W,e).metrics)return Gn(d,W,e,c,t.concat(m));if(m7.hasOwnProperty(d)&&W.slice(0,10)==="Typewriter"){for(var h=[],p=0;p{if(hZ(I.classes)!==hZ(l.classes)||I.skew!==l.skew||I.maxFontSize!==l.maxFontSize)return!1;if(I.classes.length===1){var c=I.classes[0];if(c==="mbin"||c==="mord")return!1}for(var G in I.style)if(I.style.hasOwnProperty(G)&&I.style[G]!==l.style[G])return!1;for(var e in l.style)if(l.style.hasOwnProperty(e)&&I.style[e]!==l.style[e])return!1;return!0},I9I=I=>{for(var l=0;lc&&(c=t.height),t.depth>G&&(G=t.depth),t.maxFontSize>e&&(e=t.maxFontSize)}l.height=c,l.depth=G,l.maxFontSize=e},rd=function(l,c,G,e){var d=new jh(l,c,G,e);return dy(d),d},s7=(I,l,c,G)=>new jh(I,l,c,G),l9I=function(l,c,G){var e=rd([l],[],c);return e.height=Math.max(G||c.fontMetrics().defaultRuleThickness,c.minRuleThickness),e.style.borderBottomWidth=el(e.height),e.maxFontSize=1,e},c9I=function(l,c,G,e){var d=new ey(l,c,G,e);return dy(d),d},u7=function(l){var c=new Th(l);return dy(c),c},G9I=function(l,c){return l instanceof Th?rd([],[l],c):l},e9I=function(l){if(l.positionType==="individualShift"){for(var c=l.children,G=[c[0]],e=-c[0].shift-c[0].elem.depth,d=e,t=1;t{var c=rd(["mspace"],[],l),G=uG(I,l);return c.style.marginRight=el(G),c},e2=function(l,c,G){var e="";switch(l){case"amsrm":e="AMS";break;case"textrm":e="Main";break;case"textsf":e="SansSerif";break;case"texttt":e="Typewriter";break;default:e=l}var d;return c==="textbf"&&G==="textit"?d="BoldItalic":c==="textbf"?d="Bold":c==="textit"?d="Italic":d="Regular",e+"-"+d},h7={mathbf:{variant:"bold",fontName:"Main-Bold"},mathrm:{variant:"normal",fontName:"Main-Regular"},textit:{variant:"italic",fontName:"Main-Italic"},mathit:{variant:"italic",fontName:"Main-Italic"},mathnormal:{variant:"italic",fontName:"Math-Italic"},mathbb:{variant:"double-struck",fontName:"AMS-Regular"},mathcal:{variant:"script",fontName:"Caligraphic-Regular"},mathfrak:{variant:"fraktur",fontName:"Fraktur-Regular"},mathscr:{variant:"script",fontName:"Script-Regular"},mathsf:{variant:"sans-serif",fontName:"SansSerif-Regular"},mathtt:{variant:"monospace",fontName:"Typewriter-Regular"}},p7={vec:["vec",.471,.714],oiintSize1:["oiintSize1",.957,.499],oiintSize2:["oiintSize2",1.472,.659],oiiintSize1:["oiiintSize1",1.304,.499],oiiintSize2:["oiiintSize2",1.98,.659]},n9I=function(l,c){var[G,e,d]=p7[l],t=new pZ(G),n=new Ia([t],{width:el(e),height:el(d),style:"width:"+el(e),viewBox:"0 0 "+1e3*e+" "+1e3*d,preserveAspectRatio:"xMinYMin"}),b=s7(["overlay"],[n],c);return b.height=d,b.style.height=el(d),b.style.width=el(e),b},iI={fontMap:h7,makeSymbol:Gn,mathsym:PBI,makeSpan:rd,makeSvgSpan:s7,makeLineSpan:l9I,makeAnchor:c9I,makeFragment:u7,wrapFragment:G9I,makeVList:d9I,makeOrd:qBI,makeGlue:t9I,staticSvg:n9I,svgData:p7,tryCombineChars:I9I},WG={number:3,unit:"mu"},DZ={number:4,unit:"mu"},Eb={number:5,unit:"mu"},b9I={mord:{mop:WG,mbin:DZ,mrel:Eb,minner:WG},mop:{mord:WG,mop:WG,mrel:Eb,minner:WG},mbin:{mord:DZ,mop:DZ,mopen:DZ,minner:DZ},mrel:{mord:Eb,mop:Eb,mopen:Eb,minner:Eb},mopen:{},mclose:{mop:WG,mbin:DZ,mrel:Eb,minner:WG},mpunct:{mord:WG,mop:WG,mrel:Eb,mopen:WG,mclose:WG,mpunct:WG,minner:WG},minner:{mord:WG,mop:WG,mbin:DZ,mrel:Eb,mopen:WG,mpunct:WG,minner:WG}},a9I={mord:{mop:WG},mop:{mord:WG,mop:WG},mbin:{},mrel:{},mopen:{},mclose:{mop:WG},mpunct:{},minner:{mop:WG}},o7={},ii={},Fi={};function hl(I){for(var{type:l,names:c,props:G,handler:e,htmlBuilder:d,mathmlBuilder:t}=I,n={type:l,numArgs:G.numArgs,argTypes:G.argTypes,allowedInArgument:!!G.allowedInArgument,allowedInText:!!G.allowedInText,allowedInMath:G.allowedInMath===void 0?!0:G.allowedInMath,numOptionalArgs:G.numOptionalArgs||0,infix:!!G.infix,primitive:!!G.primitive,handler:e},b=0;b{var V=p.classes[0],o=h.classes[0];V==="mbin"&&Bl.contains(W9I,o)?p.classes[0]="mord":o==="mbin"&&Bl.contains(Z9I,V)&&(h.classes[0]="mord")},{node:W},m,s),IU(d,(h,p)=>{var V=rE(p),o=rE(h),F=V&&o?h.hasClass("mtight")?a9I[V][o]:b9I[V][o]:null;if(F)return iI.makeGlue(F,a)},{node:W},m,s),d},IU=function I(l,c,G,e,d){e&&l.push(e);for(var t=0;tm=>{l.splice(W+1,0,m),t++})(t)}e&&l.pop()},V7=function(l){return l instanceof Th||l instanceof ey||l instanceof jh&&l.hasClass("enclosing")?l:null},s9I=function I(l,c){var G=V7(l);if(G){var e=G.children;if(e.length){if(c==="right")return I(e[e.length-1],"right");if(c==="left")return I(e[0],"left")}}return l},rE=function(l,c){return l?(c&&(l=s9I(l,c)),m9I[l.classes[0]]||null):null},ah=function(l,c){var G=["nulldelimiter"].concat(l.baseSizingClasses());return la(c.concat(G))},Qc=function(l,c,G){if(!l)return la();if(ii[l.type]){var e=ii[l.type](l,c);if(G&&c.size!==G.size){e=la(c.sizingClasses(G),[e],c);var d=c.sizeMultiplier/G.sizeMultiplier;e.height*=d,e.depth*=d}return e}else throw new DI("Got group of unknown type: '"+l.type+"'")};function d2(I,l){var c=la(["base"],I,l),G=la(["strut"]);return G.style.height=el(c.height+c.depth),c.depth&&(G.style.verticalAlign=el(-c.depth)),c.children.unshift(G),c}function mE(I,l){var c=null;I.length===1&&I[0].type==="tag"&&(c=I[0].tag,I=I[0].body);var G=TG(I,l,"root"),e;G.length===2&&G[1].hasClass("tag")&&(e=G.pop());for(var d=[],t=[],n=0;n0&&(d.push(d2(t,l)),t=[]),d.push(G[n]));t.length>0&&d.push(d2(t,l));var a;c?(a=d2(TG(c,l,!0)),a.classes=["tag"],d.push(a)):e&&d.push(e);var Z=la(["katex-html"],d);if(Z.setAttribute("aria-hidden","true"),a){var W=a.children[0];W.style.height=el(Z.height+Z.depth),Z.depth&&(W.style.verticalAlign=el(-Z.depth))}return Z}function i7(I){return new Th(I)}class Ht{constructor(l,c,G){this.type=void 0,this.attributes=void 0,this.children=void 0,this.classes=void 0,this.type=l,this.attributes={},this.children=c||[],this.classes=G||[]}setAttribute(l,c){this.attributes[l]=c}getAttribute(l){return this.attributes[l]}toNode(){var l=document.createElementNS("http://www.w3.org/1998/Math/MathML",this.type);for(var c in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,c)&&l.setAttribute(c,this.attributes[c]);this.classes.length>0&&(l.className=hZ(this.classes));for(var G=0;G0&&(l+=' class ="'+Bl.escape(hZ(this.classes))+'"'),l+=">";for(var G=0;G",l}toText(){return this.children.map(l=>l.toText()).join("")}}let mu=class{constructor(l){this.text=void 0,this.text=l}toNode(){return document.createTextNode(this.text)}toMarkup(){return Bl.escape(this.toText())}toText(){return this.text}};class u9I{constructor(l){this.width=void 0,this.character=void 0,this.width=l,l>=.05555&&l<=.05556?this.character=" ":l>=.1666&&l<=.1667?this.character=" ":l>=.2222&&l<=.2223?this.character=" ":l>=.2777&&l<=.2778?this.character="  ":l>=-.05556&&l<=-.05555?this.character=" ⁣":l>=-.1667&&l<=-.1666?this.character=" ⁣":l>=-.2223&&l<=-.2222?this.character=" ⁣":l>=-.2778&&l<=-.2777?this.character=" ⁣":this.character=null}toNode(){if(this.character)return document.createTextNode(this.character);var l=document.createElementNS("http://www.w3.org/1998/Math/MathML","mspace");return l.setAttribute("width",el(this.width)),l}toMarkup(){return this.character?""+this.character+"":''}toText(){return this.character?this.character:" "}}var SI={MathNode:Ht,TextNode:mu,SpaceNode:u9I,newDocumentFragment:i7},Ut=function(l,c,G){return _c[c][l]&&_c[c][l].replace&&l.charCodeAt(0)!==55349&&!(m7.hasOwnProperty(l)&&G&&(G.fontFamily&&G.fontFamily.slice(4,6)==="tt"||G.font&&G.font.slice(4,6)==="tt"))&&(l=_c[c][l].replace),new SI.TextNode(l)},ty=function(l){return l.length===1?l[0]:new SI.MathNode("mrow",l)},ny=function(l,c){if(c.fontFamily==="texttt")return"monospace";if(c.fontFamily==="textsf")return c.fontShape==="textit"&&c.fontWeight==="textbf"?"sans-serif-bold-italic":c.fontShape==="textit"?"sans-serif-italic":c.fontWeight==="textbf"?"bold-sans-serif":"sans-serif";if(c.fontShape==="textit"&&c.fontWeight==="textbf")return"bold-italic";if(c.fontShape==="textit")return"italic";if(c.fontWeight==="textbf")return"bold";var G=c.font;if(!G||G==="mathnormal")return null;var e=l.mode;if(G==="mathit")return"italic";if(G==="boldsymbol")return l.type==="textord"?"bold":"bold-italic";if(G==="mathbf")return"bold";if(G==="mathbb")return"double-struck";if(G==="mathfrak")return"fraktur";if(G==="mathscr"||G==="mathcal")return"script";if(G==="mathsf")return"sans-serif";if(G==="mathtt")return"monospace";var d=l.text;if(Bl.contains(["\\imath","\\jmath"],d))return null;_c[e][d]&&_c[e][d].replace&&(d=_c[e][d].replace);var t=iI.fontMap[G].fontName;return Gy(d,t,e)?iI.fontMap[G].variant:null},Qd=function(l,c,G){if(l.length===1){var e=Sc(l[0],c);return G&&e instanceof Ht&&e.type==="mo"&&(e.setAttribute("lspace","0em"),e.setAttribute("rspace","0em")),[e]}for(var d=[],t,n=0;n0&&(W.text=W.text.slice(0,1)+"̸"+W.text.slice(1),d.pop())}}}d.push(b),t=b}return d},oZ=function(l,c,G){return ty(Qd(l,c,G))},Sc=function(l,c){if(!l)return new SI.MathNode("mrow");if(Fi[l.type]){var G=Fi[l.type](l,c);return G}else throw new DI("Got group of unknown type: '"+l.type+"'")};function lU(I,l,c,G,e){var d=Qd(I,c),t;d.length===1&&d[0]instanceof Ht&&Bl.contains(["mrow","mtable"],d[0].type)?t=d[0]:t=new SI.MathNode("mrow",d);var n=new SI.MathNode("annotation",[new SI.TextNode(l)]);n.setAttribute("encoding","application/x-tex");var b=new SI.MathNode("semantics",[t,n]),a=new SI.MathNode("math",[b]);a.setAttribute("xmlns","http://www.w3.org/1998/Math/MathML"),G&&a.setAttribute("display","block");var Z=e?"katex":"katex-mathml";return iI.makeSpan([Z],[a])}var F7=function(l){return new xb({style:l.displayMode?Ul.DISPLAY:Ul.TEXT,maxSize:l.maxSize,minRuleThickness:l.minRuleThickness})},N7=function(l,c){if(c.displayMode){var G=["katex-display"];c.leqno&&G.push("leqno"),c.fleqn&&G.push("fleqn"),l=iI.makeSpan(G,[l])}return l},h9I=function(l,c,G){var e=F7(G),d;if(G.output==="mathml")return lU(l,c,e,G.displayMode,!0);if(G.output==="html"){var t=mE(l,e);d=iI.makeSpan(["katex"],[t])}else{var n=lU(l,c,e,G.displayMode,!1),b=mE(l,e);d=iI.makeSpan(["katex"],[n,b])}return N7(d,G)},p9I=function(l,c,G){var e=F7(G),d=mE(l,e),t=iI.makeSpan(["katex"],[d]);return N7(t,G)},o9I={widehat:"^",widecheck:"ˇ",widetilde:"~",utilde:"~",overleftarrow:"←",underleftarrow:"←",xleftarrow:"←",overrightarrow:"→",underrightarrow:"→",xrightarrow:"→",underbrace:"⏟",overbrace:"⏞",overgroup:"⏠",undergroup:"⏡",overleftrightarrow:"↔",underleftrightarrow:"↔",xleftrightarrow:"↔",Overrightarrow:"⇒",xRightarrow:"⇒",overleftharpoon:"↼",xleftharpoonup:"↼",overrightharpoon:"⇀",xrightharpoonup:"⇀",xLeftarrow:"⇐",xLeftrightarrow:"⇔",xhookleftarrow:"↩",xhookrightarrow:"↪",xmapsto:"↦",xrightharpoondown:"⇁",xleftharpoondown:"↽",xrightleftharpoons:"⇌",xleftrightharpoons:"⇋",xtwoheadleftarrow:"↞",xtwoheadrightarrow:"↠",xlongequal:"=",xtofrom:"⇄",xrightleftarrows:"⇄",xrightequilibrium:"⇌",xleftequilibrium:"⇋","\\cdrightarrow":"→","\\cdleftarrow":"←","\\cdlongequal":"="},V9I=function(l){var c=new SI.MathNode("mo",[new SI.TextNode(o9I[l.replace(/^\\/,"")])]);return c.setAttribute("stretchy","true"),c},i9I={overrightarrow:[["rightarrow"],.888,522,"xMaxYMin"],overleftarrow:[["leftarrow"],.888,522,"xMinYMin"],underrightarrow:[["rightarrow"],.888,522,"xMaxYMin"],underleftarrow:[["leftarrow"],.888,522,"xMinYMin"],xrightarrow:[["rightarrow"],1.469,522,"xMaxYMin"],"\\cdrightarrow":[["rightarrow"],3,522,"xMaxYMin"],xleftarrow:[["leftarrow"],1.469,522,"xMinYMin"],"\\cdleftarrow":[["leftarrow"],3,522,"xMinYMin"],Overrightarrow:[["doublerightarrow"],.888,560,"xMaxYMin"],xRightarrow:[["doublerightarrow"],1.526,560,"xMaxYMin"],xLeftarrow:[["doubleleftarrow"],1.526,560,"xMinYMin"],overleftharpoon:[["leftharpoon"],.888,522,"xMinYMin"],xleftharpoonup:[["leftharpoon"],.888,522,"xMinYMin"],xleftharpoondown:[["leftharpoondown"],.888,522,"xMinYMin"],overrightharpoon:[["rightharpoon"],.888,522,"xMaxYMin"],xrightharpoonup:[["rightharpoon"],.888,522,"xMaxYMin"],xrightharpoondown:[["rightharpoondown"],.888,522,"xMaxYMin"],xlongequal:[["longequal"],.888,334,"xMinYMin"],"\\cdlongequal":[["longequal"],3,334,"xMinYMin"],xtwoheadleftarrow:[["twoheadleftarrow"],.888,334,"xMinYMin"],xtwoheadrightarrow:[["twoheadrightarrow"],.888,334,"xMaxYMin"],overleftrightarrow:[["leftarrow","rightarrow"],.888,522],overbrace:[["leftbrace","midbrace","rightbrace"],1.6,548],underbrace:[["leftbraceunder","midbraceunder","rightbraceunder"],1.6,548],underleftrightarrow:[["leftarrow","rightarrow"],.888,522],xleftrightarrow:[["leftarrow","rightarrow"],1.75,522],xLeftrightarrow:[["doubleleftarrow","doublerightarrow"],1.75,560],xrightleftharpoons:[["leftharpoondownplus","rightharpoonplus"],1.75,716],xleftrightharpoons:[["leftharpoonplus","rightharpoondownplus"],1.75,716],xhookleftarrow:[["leftarrow","righthook"],1.08,522],xhookrightarrow:[["lefthook","rightarrow"],1.08,522],overlinesegment:[["leftlinesegment","rightlinesegment"],.888,522],underlinesegment:[["leftlinesegment","rightlinesegment"],.888,522],overgroup:[["leftgroup","rightgroup"],.888,342],undergroup:[["leftgroupunder","rightgroupunder"],.888,342],xmapsto:[["leftmapsto","rightarrow"],1.5,522],xtofrom:[["leftToFrom","rightToFrom"],1.75,528],xrightleftarrows:[["baraboveleftarrow","rightarrowabovebar"],1.75,901],xrightequilibrium:[["baraboveshortleftharpoon","rightharpoonaboveshortbar"],1.75,716],xleftequilibrium:[["shortbaraboveleftharpoon","shortrightharpoonabovebar"],1.75,716]},F9I=function(l){return l.type==="ordgroup"?l.body.length:1},N9I=function(l,c){function G(){var n=4e5,b=l.label.slice(1);if(Bl.contains(["widehat","widecheck","widetilde","utilde"],b)){var a=l,Z=F9I(a.base),W,m,s;if(Z>5)b==="widehat"||b==="widecheck"?(W=420,n=2364,s=.42,m=b+"4"):(W=312,n=2340,s=.34,m="tilde4");else{var h=[1,1,2,2,3,3][Z];b==="widehat"||b==="widecheck"?(n=[0,1062,2364,2364,2364][h],W=[0,239,300,360,420][h],s=[0,.24,.3,.3,.36,.42][h],m=b+h):(n=[0,600,1033,2339,2340][h],W=[0,260,286,306,312][h],s=[0,.26,.286,.3,.306,.34][h],m="tilde"+h)}var p=new pZ(m),V=new Ia([p],{width:"100%",height:el(s),viewBox:"0 0 "+n+" "+W,preserveAspectRatio:"none"});return{span:iI.makeSvgSpan([],[V],c),minWidth:0,height:s}}else{var o=[],F=i9I[b],[X,H,Y]=F,R=Y/1e3,B=X.length,C,k;if(B===1){var N=F[3];C=["hide-tail"],k=[N]}else if(B===2)C=["halfarrow-left","halfarrow-right"],k=["xMinYMin","xMaxYMin"];else if(B===3)C=["brace-left","brace-center","brace-right"],k=["xMinYMin","xMidYMin","xMaxYMin"];else throw new Error(`Correct katexImagesData or update code here to support - `+B+" children.");for(var J=0;J0&&(e.style.minWidth=el(d)),e},R9I=function(l,c,G,e,d){var t,n=l.height+l.depth+G+e;if(/fbox|color|angl/.test(c)){if(t=iI.makeSpan(["stretchy",c],[],d),c==="fbox"){var b=d.color&&d.getColor();b&&(t.style.borderColor=b)}}else{var a=[];/^[bx]cancel$/.test(c)&&a.push(new ZE({x1:"0",y1:"0",x2:"100%",y2:"100%","stroke-width":"0.046em"})),/^x?cancel$/.test(c)&&a.push(new ZE({x1:"0",y1:"100%",x2:"100%",y2:"0","stroke-width":"0.046em"}));var Z=new Ia(a,{width:"100%",height:el(n)});t=iI.makeSvgSpan([],[Z],d)}return t.height=n,t.style.height=el(n),t},ca={encloseSpan:R9I,mathMLnode:V9I,svgSpan:N9I};function cc(I,l){if(!I||I.type!==l)throw new Error("Expected node of type "+l+", but got "+(I?"node of type "+I.type:String(I)));return I}function by(I){var l=yN(I);if(!l)throw new Error("Expected node of symbol group type, but got "+(I?"node of type "+I.type:String(I)));return l}function yN(I){return I&&(I.type==="atom"||DBI.hasOwnProperty(I.type))?I:null}var ay=(I,l)=>{var c,G,e;I&&I.type==="supsub"?(G=cc(I.base,"accent"),c=G.base,I.base=c,e=TBI(Qc(I,l)),I.base=G):(G=cc(I,"accent"),c=G.base);var d=Qc(c,l.havingCrampedStyle()),t=G.isShifty&&Bl.isCharacterBox(c),n=0;if(t){var b=Bl.getBaseElem(c),a=Qc(b,l.havingCrampedStyle());n=Dz(a).skew}var Z=G.label==="\\c",W=Z?d.height+d.depth:Math.min(d.height,l.fontMetrics().xHeight),m;if(G.isStretchy)m=ca.svgSpan(G,l),m=iI.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:d},{type:"elem",elem:m,wrapperClasses:["svg-align"],wrapperStyle:n>0?{width:"calc(100% - "+el(2*n)+")",marginLeft:el(2*n)}:void 0}]},l);else{var s,h;G.label==="\\vec"?(s=iI.staticSvg("vec",l),h=iI.svgData.vec[1]):(s=iI.makeOrd({mode:G.mode,text:G.label},l,"textord"),s=Dz(s),s.italic=0,h=s.width,Z&&(W+=s.depth)),m=iI.makeSpan(["accent-body"],[s]);var p=G.label==="\\textcircled";p&&(m.classes.push("accent-full"),W=d.height);var V=n;p||(V-=h/2),m.style.left=el(V),G.label==="\\textcircled"&&(m.style.top=".2em"),m=iI.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:d},{type:"kern",size:-W},{type:"elem",elem:m}]},l)}var o=iI.makeSpan(["mord","accent"],[m],l);return e?(e.children[0]=o,e.height=Math.max(o.height,e.height),e.classes[0]="mord",e):o},R7=(I,l)=>{var c=I.isStretchy?ca.mathMLnode(I.label):new SI.MathNode("mo",[Ut(I.label,I.mode)]),G=new SI.MathNode("mover",[Sc(I.base,l),c]);return G.setAttribute("accent","true"),G},Y9I=new RegExp(["\\acute","\\grave","\\ddot","\\tilde","\\bar","\\breve","\\check","\\hat","\\vec","\\dot","\\mathring"].map(I=>"\\"+I).join("|"));hl({type:"accent",names:["\\acute","\\grave","\\ddot","\\tilde","\\bar","\\breve","\\check","\\hat","\\vec","\\dot","\\mathring","\\widecheck","\\widehat","\\widetilde","\\overrightarrow","\\overleftarrow","\\Overrightarrow","\\overleftrightarrow","\\overgroup","\\overlinesegment","\\overleftharpoon","\\overrightharpoon"],props:{numArgs:1},handler:(I,l)=>{var c=Ni(l[0]),G=!Y9I.test(I.funcName),e=!G||I.funcName==="\\widehat"||I.funcName==="\\widetilde"||I.funcName==="\\widecheck";return{type:"accent",mode:I.parser.mode,label:I.funcName,isStretchy:G,isShifty:e,base:c}},htmlBuilder:ay,mathmlBuilder:R7});hl({type:"accent",names:["\\'","\\`","\\^","\\~","\\=","\\u","\\.",'\\"',"\\c","\\r","\\H","\\v","\\textcircled"],props:{numArgs:1,allowedInText:!0,allowedInMath:!0,argTypes:["primitive"]},handler:(I,l)=>{var c=l[0],G=I.parser.mode;return G==="math"&&(I.parser.settings.reportNonstrict("mathVsTextAccents","LaTeX's accent "+I.funcName+" works only in text mode"),G="text"),{type:"accent",mode:G,label:I.funcName,isStretchy:!1,isShifty:!0,base:c}},htmlBuilder:ay,mathmlBuilder:R7});hl({type:"accentUnder",names:["\\underleftarrow","\\underrightarrow","\\underleftrightarrow","\\undergroup","\\underlinesegment","\\utilde"],props:{numArgs:1},handler:(I,l)=>{var{parser:c,funcName:G}=I,e=l[0];return{type:"accentUnder",mode:c.mode,label:G,base:e}},htmlBuilder:(I,l)=>{var c=Qc(I.base,l),G=ca.svgSpan(I,l),e=I.label==="\\utilde"?.12:0,d=iI.makeVList({positionType:"top",positionData:c.height,children:[{type:"elem",elem:G,wrapperClasses:["svg-align"]},{type:"kern",size:e},{type:"elem",elem:c}]},l);return iI.makeSpan(["mord","accentunder"],[d],l)},mathmlBuilder:(I,l)=>{var c=ca.mathMLnode(I.label),G=new SI.MathNode("munder",[Sc(I.base,l),c]);return G.setAttribute("accentunder","true"),G}});var t2=I=>{var l=new SI.MathNode("mpadded",I?[I]:[]);return l.setAttribute("width","+0.6em"),l.setAttribute("lspace","0.3em"),l};hl({type:"xArrow",names:["\\xleftarrow","\\xrightarrow","\\xLeftarrow","\\xRightarrow","\\xleftrightarrow","\\xLeftrightarrow","\\xhookleftarrow","\\xhookrightarrow","\\xmapsto","\\xrightharpoondown","\\xrightharpoonup","\\xleftharpoondown","\\xleftharpoonup","\\xrightleftharpoons","\\xleftrightharpoons","\\xlongequal","\\xtwoheadrightarrow","\\xtwoheadleftarrow","\\xtofrom","\\xrightleftarrows","\\xrightequilibrium","\\xleftequilibrium","\\\\cdrightarrow","\\\\cdleftarrow","\\\\cdlongequal"],props:{numArgs:1,numOptionalArgs:1},handler(I,l,c){var{parser:G,funcName:e}=I;return{type:"xArrow",mode:G.mode,label:e,body:l[0],below:c[0]}},htmlBuilder(I,l){var c=l.style,G=l.havingStyle(c.sup()),e=iI.wrapFragment(Qc(I.body,G,l),l),d=I.label.slice(0,2)==="\\x"?"x":"cd";e.classes.push(d+"-arrow-pad");var t;I.below&&(G=l.havingStyle(c.sub()),t=iI.wrapFragment(Qc(I.below,G,l),l),t.classes.push(d+"-arrow-pad"));var n=ca.svgSpan(I,l),b=-l.fontMetrics().axisHeight+.5*n.height,a=-l.fontMetrics().axisHeight-.5*n.height-.111;(e.depth>.25||I.label==="\\xleftequilibrium")&&(a-=e.depth);var Z;if(t){var W=-l.fontMetrics().axisHeight+t.height+.5*n.height+.111;Z=iI.makeVList({positionType:"individualShift",children:[{type:"elem",elem:e,shift:a},{type:"elem",elem:n,shift:b},{type:"elem",elem:t,shift:W}]},l)}else Z=iI.makeVList({positionType:"individualShift",children:[{type:"elem",elem:e,shift:a},{type:"elem",elem:n,shift:b}]},l);return Z.children[0].children[0].children[1].classes.push("svg-align"),iI.makeSpan(["mrel","x-arrow"],[Z],l)},mathmlBuilder(I,l){var c=ca.mathMLnode(I.label);c.setAttribute("minsize",I.label.charAt(0)==="x"?"1.75em":"3.0em");var G;if(I.body){var e=t2(Sc(I.body,l));if(I.below){var d=t2(Sc(I.below,l));G=new SI.MathNode("munderover",[c,d,e])}else G=new SI.MathNode("mover",[c,e])}else if(I.below){var t=t2(Sc(I.below,l));G=new SI.MathNode("munder",[c,t])}else G=t2(),G=new SI.MathNode("mover",[c,G]);return G}});var X9I=iI.makeSpan;function Y7(I,l){var c=TG(I.body,l,!0);return X9I([I.mclass],c,l)}function X7(I,l){var c,G=Qd(I.body,l);return I.mclass==="minner"?c=new SI.MathNode("mpadded",G):I.mclass==="mord"?I.isCharacterBox?(c=G[0],c.type="mi"):c=new SI.MathNode("mi",G):(I.isCharacterBox?(c=G[0],c.type="mo"):c=new SI.MathNode("mo",G),I.mclass==="mbin"?(c.attributes.lspace="0.22em",c.attributes.rspace="0.22em"):I.mclass==="mpunct"?(c.attributes.lspace="0em",c.attributes.rspace="0.17em"):I.mclass==="mopen"||I.mclass==="mclose"?(c.attributes.lspace="0em",c.attributes.rspace="0em"):I.mclass==="minner"&&(c.attributes.lspace="0.0556em",c.attributes.width="+0.1111em")),c}hl({type:"mclass",names:["\\mathord","\\mathbin","\\mathrel","\\mathopen","\\mathclose","\\mathpunct","\\mathinner"],props:{numArgs:1,primitive:!0},handler(I,l){var{parser:c,funcName:G}=I,e=l[0];return{type:"mclass",mode:c.mode,mclass:"m"+G.slice(5),body:vG(e),isCharacterBox:Bl.isCharacterBox(e)}},htmlBuilder:Y7,mathmlBuilder:X7});var JN=I=>{var l=I.type==="ordgroup"&&I.body.length?I.body[0]:I;return l.type==="atom"&&(l.family==="bin"||l.family==="rel")?"m"+l.family:"mord"};hl({type:"mclass",names:["\\@binrel"],props:{numArgs:2},handler(I,l){var{parser:c}=I;return{type:"mclass",mode:c.mode,mclass:JN(l[0]),body:vG(l[1]),isCharacterBox:Bl.isCharacterBox(l[1])}}});hl({type:"mclass",names:["\\stackrel","\\overset","\\underset"],props:{numArgs:2},handler(I,l){var{parser:c,funcName:G}=I,e=l[1],d=l[0],t;G!=="\\stackrel"?t=JN(e):t="mrel";var n={type:"op",mode:e.mode,limits:!0,alwaysHandleSupSub:!0,parentIsSupSub:!1,symbol:!1,suppressBaseShift:G!=="\\stackrel",body:vG(e)},b={type:"supsub",mode:d.mode,base:n,sup:G==="\\underset"?null:d,sub:G==="\\underset"?d:null};return{type:"mclass",mode:c.mode,mclass:t,body:[b],isCharacterBox:Bl.isCharacterBox(b)}},htmlBuilder:Y7,mathmlBuilder:X7});hl({type:"pmb",names:["\\pmb"],props:{numArgs:1,allowedInText:!0},handler(I,l){var{parser:c}=I;return{type:"pmb",mode:c.mode,mclass:JN(l[0]),body:vG(l[0])}},htmlBuilder(I,l){var c=TG(I.body,l,!0),G=iI.makeSpan([I.mclass],c,l);return G.style.textShadow="0.02em 0.01em 0.04px",G},mathmlBuilder(I,l){var c=Qd(I.body,l),G=new SI.MathNode("mstyle",c);return G.setAttribute("style","text-shadow: 0.02em 0.01em 0.04px"),G}});var H9I={">":"\\\\cdrightarrow","<":"\\\\cdleftarrow","=":"\\\\cdlongequal",A:"\\uparrow",V:"\\downarrow","|":"\\Vert",".":"no arrow"},cU=()=>({type:"styling",body:[],mode:"math",style:"display"}),GU=I=>I.type==="textord"&&I.text==="@",Q9I=(I,l)=>(I.type==="mathord"||I.type==="atom")&&I.text===l;function w9I(I,l,c){var G=H9I[I];switch(G){case"\\\\cdrightarrow":case"\\\\cdleftarrow":return c.callFunction(G,[l[0]],[l[1]]);case"\\uparrow":case"\\downarrow":{var e=c.callFunction("\\\\cdleft",[l[0]],[]),d={type:"atom",text:G,mode:"math",family:"rel"},t=c.callFunction("\\Big",[d],[]),n=c.callFunction("\\\\cdright",[l[1]],[]),b={type:"ordgroup",mode:"math",body:[e,t,n]};return c.callFunction("\\\\cdparent",[b],[])}case"\\\\cdlongequal":return c.callFunction("\\\\cdlongequal",[],[]);case"\\Vert":{var a={type:"textord",text:"\\Vert",mode:"math"};return c.callFunction("\\Big",[a],[])}default:return{type:"textord",text:" ",mode:"math"}}}function E9I(I){var l=[];for(I.gullet.beginGroup(),I.gullet.macros.set("\\cr","\\\\\\relax"),I.gullet.beginGroup();;){l.push(I.parseExpression(!1,"\\\\")),I.gullet.endGroup(),I.gullet.beginGroup();var c=I.fetch().text;if(c==="&"||c==="\\\\")I.consume();else if(c==="\\end"){l[l.length-1].length===0&&l.pop();break}else throw new DI("Expected \\\\ or \\cr or \\end",I.nextToken)}for(var G=[],e=[G],d=0;d-1))if("<>AV".indexOf(a)>-1)for(var W=0;W<2;W++){for(var m=!0,s=b+1;sAV=|." after @',t[b]);var h=w9I(a,Z,I),p={type:"styling",body:[h],mode:"math",style:"display"};G.push(p),n=cU()}d%2===0?G.push(n):G.shift(),G=[],e.push(G)}I.gullet.endGroup(),I.gullet.endGroup();var V=new Array(e[0].length).fill({type:"align",align:"c",pregap:.25,postgap:.25});return{type:"array",mode:"math",body:e,arraystretch:1,addJot:!0,rowGaps:[null],cols:V,colSeparationType:"CD",hLinesBeforeRow:new Array(e.length+1).fill([])}}hl({type:"cdlabel",names:["\\\\cdleft","\\\\cdright"],props:{numArgs:1},handler(I,l){var{parser:c,funcName:G}=I;return{type:"cdlabel",mode:c.mode,side:G.slice(4),label:l[0]}},htmlBuilder(I,l){var c=l.havingStyle(l.style.sup()),G=iI.wrapFragment(Qc(I.label,c,l),l);return G.classes.push("cd-label-"+I.side),G.style.bottom=el(.8-G.depth),G.height=0,G.depth=0,G},mathmlBuilder(I,l){var c=new SI.MathNode("mrow",[Sc(I.label,l)]);return c=new SI.MathNode("mpadded",[c]),c.setAttribute("width","0"),I.side==="left"&&c.setAttribute("lspace","-1width"),c.setAttribute("voffset","0.7em"),c=new SI.MathNode("mstyle",[c]),c.setAttribute("displaystyle","false"),c.setAttribute("scriptlevel","1"),c}});hl({type:"cdlabelparent",names:["\\\\cdparent"],props:{numArgs:1},handler(I,l){var{parser:c}=I;return{type:"cdlabelparent",mode:c.mode,fragment:l[0]}},htmlBuilder(I,l){var c=iI.wrapFragment(Qc(I.fragment,l),l);return c.classes.push("cd-vert-arrow"),c},mathmlBuilder(I,l){return new SI.MathNode("mrow",[Sc(I.fragment,l)])}});hl({type:"textord",names:["\\@char"],props:{numArgs:1,allowedInText:!0},handler(I,l){for(var{parser:c}=I,G=cc(l[0],"ordgroup"),e=G.body,d="",t=0;t=1114111)throw new DI("\\@char with invalid code point "+d);return b<=65535?a=String.fromCharCode(b):(b-=65536,a=String.fromCharCode((b>>10)+55296,(b&1023)+56320)),{type:"textord",mode:c.mode,text:a}}});var H7=(I,l)=>{var c=TG(I.body,l.withColor(I.color),!1);return iI.makeFragment(c)},Q7=(I,l)=>{var c=Qd(I.body,l.withColor(I.color)),G=new SI.MathNode("mstyle",c);return G.setAttribute("mathcolor",I.color),G};hl({type:"color",names:["\\textcolor"],props:{numArgs:2,allowedInText:!0,argTypes:["color","original"]},handler(I,l){var{parser:c}=I,G=cc(l[0],"color-token").color,e=l[1];return{type:"color",mode:c.mode,color:G,body:vG(e)}},htmlBuilder:H7,mathmlBuilder:Q7});hl({type:"color",names:["\\color"],props:{numArgs:1,allowedInText:!0,argTypes:["color"]},handler(I,l){var{parser:c,breakOnTokenText:G}=I,e=cc(l[0],"color-token").color;c.gullet.macros.set("\\current@color",e);var d=c.parseExpression(!0,G);return{type:"color",mode:c.mode,color:e,body:d}},htmlBuilder:H7,mathmlBuilder:Q7});hl({type:"cr",names:["\\\\"],props:{numArgs:0,numOptionalArgs:0,allowedInText:!0},handler(I,l,c){var{parser:G}=I,e=G.gullet.future().text==="["?G.parseSizeGroup(!0):null,d=!G.settings.displayMode||!G.settings.useStrictBehavior("newLineInDisplayMode","In LaTeX, \\\\ or \\newline does nothing in display mode");return{type:"cr",mode:G.mode,newLine:d,size:e&&cc(e,"size").value}},htmlBuilder(I,l){var c=iI.makeSpan(["mspace"],[],l);return I.newLine&&(c.classes.push("newline"),I.size&&(c.style.marginTop=el(uG(I.size,l)))),c},mathmlBuilder(I,l){var c=new SI.MathNode("mspace");return I.newLine&&(c.setAttribute("linebreak","newline"),I.size&&c.setAttribute("height",el(uG(I.size,l)))),c}});var sE={"\\global":"\\global","\\long":"\\\\globallong","\\\\globallong":"\\\\globallong","\\def":"\\gdef","\\gdef":"\\gdef","\\edef":"\\xdef","\\xdef":"\\xdef","\\let":"\\\\globallet","\\futurelet":"\\\\globalfuture"},w7=I=>{var l=I.text;if(/^(?:[\\{}$&#^_]|EOF)$/.test(l))throw new DI("Expected a control sequence",I);return l},v9I=I=>{var l=I.gullet.popToken();return l.text==="="&&(l=I.gullet.popToken(),l.text===" "&&(l=I.gullet.popToken())),l},E7=(I,l,c,G)=>{var e=I.gullet.macros.get(c.text);e==null&&(c.noexpand=!0,e={tokens:[c],numArgs:0,unexpandable:!I.gullet.isExpandable(c.text)}),I.gullet.macros.set(l,e,G)};hl({type:"internal",names:["\\global","\\long","\\\\globallong"],props:{numArgs:0,allowedInText:!0},handler(I){var{parser:l,funcName:c}=I;l.consumeSpaces();var G=l.fetch();if(sE[G.text])return(c==="\\global"||c==="\\\\globallong")&&(G.text=sE[G.text]),cc(l.parseFunction(),"internal");throw new DI("Invalid token after macro prefix",G)}});hl({type:"internal",names:["\\def","\\gdef","\\edef","\\xdef"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(I){var{parser:l,funcName:c}=I,G=l.gullet.popToken(),e=G.text;if(/^(?:[\\{}$&#^_]|EOF)$/.test(e))throw new DI("Expected a control sequence",G);for(var d=0,t,n=[[]];l.gullet.future().text!=="{";)if(G=l.gullet.popToken(),G.text==="#"){if(l.gullet.future().text==="{"){t=l.gullet.future(),n[d].push("{");break}if(G=l.gullet.popToken(),!/^[1-9]$/.test(G.text))throw new DI('Invalid argument number "'+G.text+'"');if(parseInt(G.text)!==d+1)throw new DI('Argument number "'+G.text+'" out of order');d++,n.push([])}else{if(G.text==="EOF")throw new DI("Expected a macro definition");n[d].push(G.text)}var{tokens:b}=l.gullet.consumeArg();return t&&b.unshift(t),(c==="\\edef"||c==="\\xdef")&&(b=l.gullet.expandTokens(b),b.reverse()),l.gullet.macros.set(e,{tokens:b,numArgs:d,delimiters:n},c===sE[c]),{type:"internal",mode:l.mode}}});hl({type:"internal",names:["\\let","\\\\globallet"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(I){var{parser:l,funcName:c}=I,G=w7(l.gullet.popToken());l.gullet.consumeSpaces();var e=v9I(l);return E7(l,G,e,c==="\\\\globallet"),{type:"internal",mode:l.mode}}});hl({type:"internal",names:["\\futurelet","\\\\globalfuture"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(I){var{parser:l,funcName:c}=I,G=w7(l.gullet.popToken()),e=l.gullet.popToken(),d=l.gullet.popToken();return E7(l,G,d,c==="\\\\globalfuture"),l.gullet.pushToken(d),l.gullet.pushToken(e),{type:"internal",mode:l.mode}}});var Ls=function(l,c,G){var e=_c.math[l]&&_c.math[l].replace,d=Gy(e||l,c,G);if(!d)throw new Error("Unsupported symbol "+l+" and font size "+c+".");return d},Zy=function(l,c,G,e){var d=G.havingBaseStyle(c),t=iI.makeSpan(e.concat(d.sizingClasses(G)),[l],G),n=d.sizeMultiplier/G.sizeMultiplier;return t.height*=n,t.depth*=n,t.maxFontSize=d.sizeMultiplier,t},v7=function(l,c,G){var e=c.havingBaseStyle(G),d=(1-c.sizeMultiplier/e.sizeMultiplier)*c.fontMetrics().axisHeight;l.classes.push("delimcenter"),l.style.top=el(d),l.height-=d,l.depth+=d},g9I=function(l,c,G,e,d,t){var n=iI.makeSymbol(l,"Main-Regular",d,e),b=Zy(n,c,e,t);return G&&v7(b,e,c),b},A9I=function(l,c,G,e){return iI.makeSymbol(l,"Size"+c+"-Regular",G,e)},g7=function(l,c,G,e,d,t){var n=A9I(l,c,d,e),b=Zy(iI.makeSpan(["delimsizing","size"+c],[n],e),Ul.TEXT,e,t);return G&&v7(b,e,Ul.TEXT),b},DX=function(l,c,G){var e;c==="Size1-Regular"?e="delim-size1":e="delim-size4";var d=iI.makeSpan(["delimsizinginner",e],[iI.makeSpan([],[iI.makeSymbol(l,c,G)])]);return{type:"elem",elem:d}},OX=function(l,c,G){var e=Tn["Size4-Regular"][l.charCodeAt(0)]?Tn["Size4-Regular"][l.charCodeAt(0)][4]:Tn["Size1-Regular"][l.charCodeAt(0)][4],d=new pZ("inner",zBI(l,Math.round(1e3*c))),t=new Ia([d],{width:el(e),height:el(c),style:"width:"+el(e),viewBox:"0 0 "+1e3*e+" "+Math.round(1e3*c),preserveAspectRatio:"xMinYMin"}),n=iI.makeSvgSpan([],[t],G);return n.height=c,n.style.height=el(c),n.style.width=el(e),{type:"elem",elem:n}},uE=.008,n2={type:"kern",size:-1*uE},y9I=["|","\\lvert","\\rvert","\\vert"],J9I=["\\|","\\lVert","\\rVert","\\Vert"],A7=function(l,c,G,e,d,t){var n,b,a,Z,W="",m=0;n=a=Z=l,b=null;var s="Size1-Regular";l==="\\uparrow"?a=Z="⏐":l==="\\Uparrow"?a=Z="‖":l==="\\downarrow"?n=a="⏐":l==="\\Downarrow"?n=a="‖":l==="\\updownarrow"?(n="\\uparrow",a="⏐",Z="\\downarrow"):l==="\\Updownarrow"?(n="\\Uparrow",a="‖",Z="\\Downarrow"):Bl.contains(y9I,l)?(a="∣",W="vert",m=333):Bl.contains(J9I,l)?(a="∥",W="doublevert",m=556):l==="["||l==="\\lbrack"?(n="⎡",a="⎢",Z="⎣",s="Size4-Regular",W="lbrack",m=667):l==="]"||l==="\\rbrack"?(n="⎤",a="⎥",Z="⎦",s="Size4-Regular",W="rbrack",m=667):l==="\\lfloor"||l==="⌊"?(a=n="⎢",Z="⎣",s="Size4-Regular",W="lfloor",m=667):l==="\\lceil"||l==="⌈"?(n="⎡",a=Z="⎢",s="Size4-Regular",W="lceil",m=667):l==="\\rfloor"||l==="⌋"?(a=n="⎥",Z="⎦",s="Size4-Regular",W="rfloor",m=667):l==="\\rceil"||l==="⌉"?(n="⎤",a=Z="⎥",s="Size4-Regular",W="rceil",m=667):l==="("||l==="\\lparen"?(n="⎛",a="⎜",Z="⎝",s="Size4-Regular",W="lparen",m=875):l===")"||l==="\\rparen"?(n="⎞",a="⎟",Z="⎠",s="Size4-Regular",W="rparen",m=875):l==="\\{"||l==="\\lbrace"?(n="⎧",b="⎨",Z="⎩",a="⎪",s="Size4-Regular"):l==="\\}"||l==="\\rbrace"?(n="⎫",b="⎬",Z="⎭",a="⎪",s="Size4-Regular"):l==="\\lgroup"||l==="⟮"?(n="⎧",Z="⎩",a="⎪",s="Size4-Regular"):l==="\\rgroup"||l==="⟯"?(n="⎫",Z="⎭",a="⎪",s="Size4-Regular"):l==="\\lmoustache"||l==="⎰"?(n="⎧",Z="⎭",a="⎪",s="Size4-Regular"):(l==="\\rmoustache"||l==="⎱")&&(n="⎫",Z="⎩",a="⎪",s="Size4-Regular");var h=Ls(n,s,d),p=h.height+h.depth,V=Ls(a,s,d),o=V.height+V.depth,F=Ls(Z,s,d),X=F.height+F.depth,H=0,Y=1;if(b!==null){var R=Ls(b,s,d);H=R.height+R.depth,Y=2}var B=p+X+H,C=Math.max(0,Math.ceil((c-B)/(Y*o))),k=B+C*Y*o,N=e.fontMetrics().axisHeight;G&&(N*=e.sizeMultiplier);var J=k/2-N,A=[];if(W.length>0){var M=k-p-X,D=Math.round(k*1e3),O=UBI(W,Math.round(M*1e3)),$=new pZ(W,O),j=(m/1e3).toFixed(3)+"em",S=(D/1e3).toFixed(3)+"em",tI=new Ia([$],{width:j,height:S,viewBox:"0 0 "+m+" "+D}),z=iI.makeSvgSpan([],[tI],e);z.height=D/1e3,z.style.width=j,z.style.height=S,A.push({type:"elem",elem:z})}else{if(A.push(DX(Z,s,d)),A.push(n2),b===null){var g=k-p-X+2*uE;A.push(OX(a,g,e))}else{var GI=(k-p-X-H)/2+2*uE;A.push(OX(a,GI,e)),A.push(n2),A.push(DX(b,s,d)),A.push(n2),A.push(OX(a,GI,e))}A.push(n2),A.push(DX(n,s,d))}var f=e.havingBaseStyle(Ul.TEXT),nI=iI.makeVList({positionType:"bottom",positionData:J,children:A},f);return Zy(iI.makeSpan(["delimsizing","mult"],[nI],f),Ul.TEXT,e,t)},PX=80,_X=.08,qX=function(l,c,G,e,d){var t=xBI(l,e,G),n=new pZ(l,t),b=new Ia([n],{width:"400em",height:el(c),viewBox:"0 0 400000 "+G,preserveAspectRatio:"xMinYMin slice"});return iI.makeSvgSpan(["hide-tail"],[b],d)},B9I=function(l,c){var G=c.havingBaseSizing(),e=k7("\\surd",l*G.sizeMultiplier,B7,G),d=G.sizeMultiplier,t=Math.max(0,c.minRuleThickness-c.fontMetrics().sqrtRuleThickness),n,b=0,a=0,Z=0,W;return e.type==="small"?(Z=1e3+1e3*t+PX,l<1?d=1:l<1.4&&(d=.7),b=(1+t+_X)/d,a=(1+t)/d,n=qX("sqrtMain",b,Z,t,c),n.style.minWidth="0.853em",W=.833/d):e.type==="large"?(Z=(1e3+PX)*su[e.size],a=(su[e.size]+t)/d,b=(su[e.size]+t+_X)/d,n=qX("sqrtSize"+e.size,b,Z,t,c),n.style.minWidth="1.02em",W=1/d):(b=l+t+_X,a=l+t,Z=Math.floor(1e3*l+t)+PX,n=qX("sqrtTall",b,Z,t,c),n.style.minWidth="0.742em",W=1.056),n.height=a,n.style.height=el(b),{span:n,advanceWidth:W,ruleWidth:(c.fontMetrics().sqrtRuleThickness+t)*d}},y7=["(","\\lparen",")","\\rparen","[","\\lbrack","]","\\rbrack","\\{","\\lbrace","\\}","\\rbrace","\\lfloor","\\rfloor","⌊","⌋","\\lceil","\\rceil","⌈","⌉","\\surd"],k9I=["\\uparrow","\\downarrow","\\updownarrow","\\Uparrow","\\Downarrow","\\Updownarrow","|","\\|","\\vert","\\Vert","\\lvert","\\rvert","\\lVert","\\rVert","\\lgroup","\\rgroup","⟮","⟯","\\lmoustache","\\rmoustache","⎰","⎱"],J7=["<",">","\\langle","\\rangle","/","\\backslash","\\lt","\\gt"],su=[0,1.2,1.8,2.4,3],x9I=function(l,c,G,e,d){if(l==="<"||l==="\\lt"||l==="⟨"?l="\\langle":(l===">"||l==="\\gt"||l==="⟩")&&(l="\\rangle"),Bl.contains(y7,l)||Bl.contains(J7,l))return g7(l,c,!1,G,e,d);if(Bl.contains(k9I,l))return A7(l,su[c],!1,G,e,d);throw new DI("Illegal delimiter: '"+l+"'")},z9I=[{type:"small",style:Ul.SCRIPTSCRIPT},{type:"small",style:Ul.SCRIPT},{type:"small",style:Ul.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4}],U9I=[{type:"small",style:Ul.SCRIPTSCRIPT},{type:"small",style:Ul.SCRIPT},{type:"small",style:Ul.TEXT},{type:"stack"}],B7=[{type:"small",style:Ul.SCRIPTSCRIPT},{type:"small",style:Ul.SCRIPT},{type:"small",style:Ul.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4},{type:"stack"}],C9I=function(l){if(l.type==="small")return"Main-Regular";if(l.type==="large")return"Size"+l.size+"-Regular";if(l.type==="stack")return"Size4-Regular";throw new Error("Add support for delim type '"+l.type+"' here.")},k7=function(l,c,G,e){for(var d=Math.min(2,3-e.style.size),t=d;tc)return G[t]}return G[G.length-1]},x7=function(l,c,G,e,d,t){l==="<"||l==="\\lt"||l==="⟨"?l="\\langle":(l===">"||l==="\\gt"||l==="⟩")&&(l="\\rangle");var n;Bl.contains(J7,l)?n=z9I:Bl.contains(y7,l)?n=B7:n=U9I;var b=k7(l,c,n,e);return b.type==="small"?g9I(l,b.style,G,e,d,t):b.type==="large"?g7(l,b.size,G,e,d,t):A7(l,c,G,e,d,t)},M9I=function(l,c,G,e,d,t){var n=e.fontMetrics().axisHeight*e.sizeMultiplier,b=901,a=5/e.fontMetrics().ptPerEm,Z=Math.max(c-n,G+n),W=Math.max(Z/500*b,2*Z-a);return x7(l,W,!0,e,d,t)},Lb={sqrtImage:B9I,sizedDelim:x9I,sizeToMaxHeight:su,customSizedDelim:x7,leftRightDelim:M9I},eU={"\\bigl":{mclass:"mopen",size:1},"\\Bigl":{mclass:"mopen",size:2},"\\biggl":{mclass:"mopen",size:3},"\\Biggl":{mclass:"mopen",size:4},"\\bigr":{mclass:"mclose",size:1},"\\Bigr":{mclass:"mclose",size:2},"\\biggr":{mclass:"mclose",size:3},"\\Biggr":{mclass:"mclose",size:4},"\\bigm":{mclass:"mrel",size:1},"\\Bigm":{mclass:"mrel",size:2},"\\biggm":{mclass:"mrel",size:3},"\\Biggm":{mclass:"mrel",size:4},"\\big":{mclass:"mord",size:1},"\\Big":{mclass:"mord",size:2},"\\bigg":{mclass:"mord",size:3},"\\Bigg":{mclass:"mord",size:4}},f9I=["(","\\lparen",")","\\rparen","[","\\lbrack","]","\\rbrack","\\{","\\lbrace","\\}","\\rbrace","\\lfloor","\\rfloor","⌊","⌋","\\lceil","\\rceil","⌈","⌉","<",">","\\langle","⟨","\\rangle","⟩","\\lt","\\gt","\\lvert","\\rvert","\\lVert","\\rVert","\\lgroup","\\rgroup","⟮","⟯","\\lmoustache","\\rmoustache","⎰","⎱","/","\\backslash","|","\\vert","\\|","\\Vert","\\uparrow","\\Uparrow","\\downarrow","\\Downarrow","\\updownarrow","\\Updownarrow","."];function BN(I,l){var c=yN(I);if(c&&Bl.contains(f9I,c.text))return c;throw c?new DI("Invalid delimiter '"+c.text+"' after '"+l.funcName+"'",I):new DI("Invalid delimiter type '"+I.type+"'",I)}hl({type:"delimsizing",names:["\\bigl","\\Bigl","\\biggl","\\Biggl","\\bigr","\\Bigr","\\biggr","\\Biggr","\\bigm","\\Bigm","\\biggm","\\Biggm","\\big","\\Big","\\bigg","\\Bigg"],props:{numArgs:1,argTypes:["primitive"]},handler:(I,l)=>{var c=BN(l[0],I);return{type:"delimsizing",mode:I.parser.mode,size:eU[I.funcName].size,mclass:eU[I.funcName].mclass,delim:c.text}},htmlBuilder:(I,l)=>I.delim==="."?iI.makeSpan([I.mclass]):Lb.sizedDelim(I.delim,I.size,l,I.mode,[I.mclass]),mathmlBuilder:I=>{var l=[];I.delim!=="."&&l.push(Ut(I.delim,I.mode));var c=new SI.MathNode("mo",l);I.mclass==="mopen"||I.mclass==="mclose"?c.setAttribute("fence","true"):c.setAttribute("fence","false"),c.setAttribute("stretchy","true");var G=el(Lb.sizeToMaxHeight[I.size]);return c.setAttribute("minsize",G),c.setAttribute("maxsize",G),c}});function dU(I){if(!I.body)throw new Error("Bug: The leftright ParseNode wasn't fully parsed.")}hl({type:"leftright-right",names:["\\right"],props:{numArgs:1,primitive:!0},handler:(I,l)=>{var c=I.parser.gullet.macros.get("\\current@color");if(c&&typeof c!="string")throw new DI("\\current@color set to non-string in \\right");return{type:"leftright-right",mode:I.parser.mode,delim:BN(l[0],I).text,color:c}}});hl({type:"leftright",names:["\\left"],props:{numArgs:1,primitive:!0},handler:(I,l)=>{var c=BN(l[0],I),G=I.parser;++G.leftrightDepth;var e=G.parseExpression(!1);--G.leftrightDepth,G.expect("\\right",!1);var d=cc(G.parseFunction(),"leftright-right");return{type:"leftright",mode:G.mode,body:e,left:c.text,right:d.delim,rightColor:d.color}},htmlBuilder:(I,l)=>{dU(I);for(var c=TG(I.body,l,!0,["mopen","mclose"]),G=0,e=0,d=!1,t=0;t{dU(I);var c=Qd(I.body,l);if(I.left!=="."){var G=new SI.MathNode("mo",[Ut(I.left,I.mode)]);G.setAttribute("fence","true"),c.unshift(G)}if(I.right!=="."){var e=new SI.MathNode("mo",[Ut(I.right,I.mode)]);e.setAttribute("fence","true"),I.rightColor&&e.setAttribute("mathcolor",I.rightColor),c.push(e)}return ty(c)}});hl({type:"middle",names:["\\middle"],props:{numArgs:1,primitive:!0},handler:(I,l)=>{var c=BN(l[0],I);if(!I.parser.leftrightDepth)throw new DI("\\middle without preceding \\left",c);return{type:"middle",mode:I.parser.mode,delim:c.text}},htmlBuilder:(I,l)=>{var c;if(I.delim===".")c=ah(l,[]);else{c=Lb.sizedDelim(I.delim,1,l,I.mode,[]);var G={delim:I.delim,options:l};c.isMiddle=G}return c},mathmlBuilder:(I,l)=>{var c=I.delim==="\\vert"||I.delim==="|"?Ut("|","text"):Ut(I.delim,I.mode),G=new SI.MathNode("mo",[c]);return G.setAttribute("fence","true"),G.setAttribute("lspace","0.05em"),G.setAttribute("rspace","0.05em"),G}});var Wy=(I,l)=>{var c=iI.wrapFragment(Qc(I.body,l),l),G=I.label.slice(1),e=l.sizeMultiplier,d,t=0,n=Bl.isCharacterBox(I.body);if(G==="sout")d=iI.makeSpan(["stretchy","sout"]),d.height=l.fontMetrics().defaultRuleThickness/e,t=-.5*l.fontMetrics().xHeight;else if(G==="phase"){var b=uG({number:.6,unit:"pt"},l),a=uG({number:.35,unit:"ex"},l),Z=l.havingBaseSizing();e=e/Z.sizeMultiplier;var W=c.height+c.depth+b+a;c.style.paddingLeft=el(W/2+b);var m=Math.floor(1e3*W*e),s=BBI(m),h=new Ia([new pZ("phase",s)],{width:"400em",height:el(m/1e3),viewBox:"0 0 400000 "+m,preserveAspectRatio:"xMinYMin slice"});d=iI.makeSvgSpan(["hide-tail"],[h],l),d.style.height=el(W),t=c.depth+b+a}else{/cancel/.test(G)?n||c.classes.push("cancel-pad"):G==="angl"?c.classes.push("anglpad"):c.classes.push("boxpad");var p=0,V=0,o=0;/box/.test(G)?(o=Math.max(l.fontMetrics().fboxrule,l.minRuleThickness),p=l.fontMetrics().fboxsep+(G==="colorbox"?0:o),V=p):G==="angl"?(o=Math.max(l.fontMetrics().defaultRuleThickness,l.minRuleThickness),p=4*o,V=Math.max(0,.25-c.depth)):(p=n?.2:0,V=p),d=ca.encloseSpan(c,G,p,V,l),/fbox|boxed|fcolorbox/.test(G)?(d.style.borderStyle="solid",d.style.borderWidth=el(o)):G==="angl"&&o!==.049&&(d.style.borderTopWidth=el(o),d.style.borderRightWidth=el(o)),t=c.depth+V,I.backgroundColor&&(d.style.backgroundColor=I.backgroundColor,I.borderColor&&(d.style.borderColor=I.borderColor))}var F;if(I.backgroundColor)F=iI.makeVList({positionType:"individualShift",children:[{type:"elem",elem:d,shift:t},{type:"elem",elem:c,shift:0}]},l);else{var X=/cancel|phase/.test(G)?["svg-align"]:[];F=iI.makeVList({positionType:"individualShift",children:[{type:"elem",elem:c,shift:0},{type:"elem",elem:d,shift:t,wrapperClasses:X}]},l)}return/cancel/.test(G)&&(F.height=c.height,F.depth=c.depth),/cancel/.test(G)&&!n?iI.makeSpan(["mord","cancel-lap"],[F],l):iI.makeSpan(["mord"],[F],l)},ry=(I,l)=>{var c=0,G=new SI.MathNode(I.label.indexOf("colorbox")>-1?"mpadded":"menclose",[Sc(I.body,l)]);switch(I.label){case"\\cancel":G.setAttribute("notation","updiagonalstrike");break;case"\\bcancel":G.setAttribute("notation","downdiagonalstrike");break;case"\\phase":G.setAttribute("notation","phasorangle");break;case"\\sout":G.setAttribute("notation","horizontalstrike");break;case"\\fbox":G.setAttribute("notation","box");break;case"\\angl":G.setAttribute("notation","actuarial");break;case"\\fcolorbox":case"\\colorbox":if(c=l.fontMetrics().fboxsep*l.fontMetrics().ptPerEm,G.setAttribute("width","+"+2*c+"pt"),G.setAttribute("height","+"+2*c+"pt"),G.setAttribute("lspace",c+"pt"),G.setAttribute("voffset",c+"pt"),I.label==="\\fcolorbox"){var e=Math.max(l.fontMetrics().fboxrule,l.minRuleThickness);G.setAttribute("style","border: "+e+"em solid "+String(I.borderColor))}break;case"\\xcancel":G.setAttribute("notation","updiagonalstrike downdiagonalstrike");break}return I.backgroundColor&&G.setAttribute("mathbackground",I.backgroundColor),G};hl({type:"enclose",names:["\\colorbox"],props:{numArgs:2,allowedInText:!0,argTypes:["color","text"]},handler(I,l,c){var{parser:G,funcName:e}=I,d=cc(l[0],"color-token").color,t=l[1];return{type:"enclose",mode:G.mode,label:e,backgroundColor:d,body:t}},htmlBuilder:Wy,mathmlBuilder:ry});hl({type:"enclose",names:["\\fcolorbox"],props:{numArgs:3,allowedInText:!0,argTypes:["color","color","text"]},handler(I,l,c){var{parser:G,funcName:e}=I,d=cc(l[0],"color-token").color,t=cc(l[1],"color-token").color,n=l[2];return{type:"enclose",mode:G.mode,label:e,backgroundColor:t,borderColor:d,body:n}},htmlBuilder:Wy,mathmlBuilder:ry});hl({type:"enclose",names:["\\fbox"],props:{numArgs:1,argTypes:["hbox"],allowedInText:!0},handler(I,l){var{parser:c}=I;return{type:"enclose",mode:c.mode,label:"\\fbox",body:l[0]}}});hl({type:"enclose",names:["\\cancel","\\bcancel","\\xcancel","\\sout","\\phase"],props:{numArgs:1},handler(I,l){var{parser:c,funcName:G}=I,e=l[0];return{type:"enclose",mode:c.mode,label:G,body:e}},htmlBuilder:Wy,mathmlBuilder:ry});hl({type:"enclose",names:["\\angl"],props:{numArgs:1,argTypes:["hbox"],allowedInText:!1},handler(I,l){var{parser:c}=I;return{type:"enclose",mode:c.mode,label:"\\angl",body:l[0]}}});var z7={};function rb(I){for(var{type:l,names:c,props:G,handler:e,htmlBuilder:d,mathmlBuilder:t}=I,n={type:l,numArgs:G.numArgs||0,allowedInText:!1,numOptionalArgs:0,handler:e},b=0;b{var l=I.parser.settings;if(!l.displayMode)throw new DI("{"+I.envName+"} can be used only in display mode.")};function my(I){if(I.indexOf("ed")===-1)return I.indexOf("*")===-1}function vZ(I,l,c){var{hskipBeforeAndAfter:G,addJot:e,cols:d,arraystretch:t,colSeparationType:n,autoTag:b,singleRow:a,emptySingleRow:Z,maxNumCols:W,leqno:m}=l;if(I.gullet.beginGroup(),a||I.gullet.macros.set("\\cr","\\\\\\relax"),!t){var s=I.gullet.expandMacroAsText("\\arraystretch");if(s==null)t=1;else if(t=parseFloat(s),!t||t<0)throw new DI("Invalid \\arraystretch: "+s)}I.gullet.beginGroup();var h=[],p=[h],V=[],o=[],F=b!=null?[]:void 0;function X(){b&&I.gullet.macros.set("\\@eqnsw","1",!0)}function H(){F&&(I.gullet.macros.get("\\df@tag")?(F.push(I.subparse([new gt("\\df@tag")])),I.gullet.macros.set("\\df@tag",void 0,!0)):F.push(!!b&&I.gullet.macros.get("\\@eqnsw")==="1"))}for(X(),o.push(tU(I));;){var Y=I.parseExpression(!1,a?"\\end":"\\\\");I.gullet.endGroup(),I.gullet.beginGroup(),Y={type:"ordgroup",mode:I.mode,body:Y},c&&(Y={type:"styling",mode:I.mode,style:c,body:[Y]}),h.push(Y);var R=I.fetch().text;if(R==="&"){if(W&&h.length===W){if(a||n)throw new DI("Too many tab characters: &",I.nextToken);I.settings.reportNonstrict("textEnv","Too few columns specified in the {array} column argument.")}I.consume()}else if(R==="\\end"){H(),h.length===1&&Y.type==="styling"&&Y.body[0].body.length===0&&(p.length>1||!Z)&&p.pop(),o.length0&&(X+=.25),a.push({pos:X,isDashed:P[eI]})}for(H(t[0]),G=0;G0&&(J+=F,BP))for(G=0;G=n)){var fI=void 0;(e>0||l.hskipBeforeAndAfter)&&(fI=Bl.deflt(GI.pregap,m),fI!==0&&(O=iI.makeSpan(["arraycolsep"],[]),O.style.width=el(fI),D.push(O)));var RI=[];for(G=0;G0){for(var _I=iI.makeLineSpan("hline",c,Z),tl=iI.makeLineSpan("hdashline",c,Z),bl=[{type:"elem",elem:b,shift:0}];a.length>0;){var Il=a.pop(),Fl=Il.pos-A;Il.isDashed?bl.push({type:"elem",elem:tl,shift:Fl}):bl.push({type:"elem",elem:_I,shift:Fl})}b=iI.makeVList({positionType:"individualShift",children:bl},c)}if(j.length===0)return iI.makeSpan(["mord"],[b],c);var al=iI.makeVList({positionType:"individualShift",children:j},c);return al=iI.makeSpan(["tag"],[al],c),iI.makeFragment([b,al])},K9I={c:"center ",l:"left ",r:"right "},sb=function(l,c){for(var G=[],e=new SI.MathNode("mtd",[],["mtr-glue"]),d=new SI.MathNode("mtd",[],["mml-eqn-num"]),t=0;t0){var h=l.cols,p="",V=!1,o=0,F=h.length;h[0].type==="separator"&&(m+="top ",o=1),h[h.length-1].type==="separator"&&(m+="bottom ",F-=1);for(var X=o;X0?"left ":"",m+=C[C.length-1].length>0?"right ":"";for(var k=1;k-1?"alignat":"align",d=l.envName==="split",t=vZ(l.parser,{cols:G,addJot:!0,autoTag:d?void 0:my(l.envName),emptySingleRow:!0,colSeparationType:e,maxNumCols:d?2:void 0,leqno:l.parser.settings.leqno},"display"),n,b=0,a={type:"ordgroup",mode:l.mode,body:[]};if(c[0]&&c[0].type==="ordgroup"){for(var Z="",W=0;W0&&s&&(V=1),G[h]={type:"align",align:p,pregap:V,postgap:0}}return t.colSeparationType=s?"align":"alignat",t};rb({type:"array",names:["array","darray"],props:{numArgs:1},handler(I,l){var c=yN(l[0]),G=c?[l[0]]:cc(l[0],"ordgroup").body,e=G.map(function(t){var n=by(t),b=n.text;if("lcr".indexOf(b)!==-1)return{type:"align",align:b};if(b==="|")return{type:"separator",separator:"|"};if(b===":")return{type:"separator",separator:":"};throw new DI("Unknown column alignment: "+b,t)}),d={cols:e,hskipBeforeAndAfter:!0,maxNumCols:e.length};return vZ(I.parser,d,sy(I.envName))},htmlBuilder:mb,mathmlBuilder:sb});rb({type:"array",names:["matrix","pmatrix","bmatrix","Bmatrix","vmatrix","Vmatrix","matrix*","pmatrix*","bmatrix*","Bmatrix*","vmatrix*","Vmatrix*"],props:{numArgs:0},handler(I){var l={matrix:null,pmatrix:["(",")"],bmatrix:["[","]"],Bmatrix:["\\{","\\}"],vmatrix:["|","|"],Vmatrix:["\\Vert","\\Vert"]}[I.envName.replace("*","")],c="c",G={hskipBeforeAndAfter:!1,cols:[{type:"align",align:c}]};if(I.envName.charAt(I.envName.length-1)==="*"){var e=I.parser;if(e.consumeSpaces(),e.fetch().text==="["){if(e.consume(),e.consumeSpaces(),c=e.fetch().text,"lcr".indexOf(c)===-1)throw new DI("Expected l or c or r",e.nextToken);e.consume(),e.consumeSpaces(),e.expect("]"),e.consume(),G.cols=[{type:"align",align:c}]}}var d=vZ(I.parser,G,sy(I.envName)),t=Math.max(0,...d.body.map(n=>n.length));return d.cols=new Array(t).fill({type:"align",align:c}),l?{type:"leftright",mode:I.mode,body:[d],left:l[0],right:l[1],rightColor:void 0}:d},htmlBuilder:mb,mathmlBuilder:sb});rb({type:"array",names:["smallmatrix"],props:{numArgs:0},handler(I){var l={arraystretch:.5},c=vZ(I.parser,l,"script");return c.colSeparationType="small",c},htmlBuilder:mb,mathmlBuilder:sb});rb({type:"array",names:["subarray"],props:{numArgs:1},handler(I,l){var c=yN(l[0]),G=c?[l[0]]:cc(l[0],"ordgroup").body,e=G.map(function(t){var n=by(t),b=n.text;if("lc".indexOf(b)!==-1)return{type:"align",align:b};throw new DI("Unknown column alignment: "+b,t)});if(e.length>1)throw new DI("{subarray} can contain only one column");var d={cols:e,hskipBeforeAndAfter:!1,arraystretch:.5};if(d=vZ(I.parser,d,"script"),d.body.length>0&&d.body[0].length>1)throw new DI("{subarray} can contain only one column");return d},htmlBuilder:mb,mathmlBuilder:sb});rb({type:"array",names:["cases","dcases","rcases","drcases"],props:{numArgs:0},handler(I){var l={arraystretch:1.2,cols:[{type:"align",align:"l",pregap:0,postgap:1},{type:"align",align:"l",pregap:0,postgap:0}]},c=vZ(I.parser,l,sy(I.envName));return{type:"leftright",mode:I.mode,body:[c],left:I.envName.indexOf("r")>-1?".":"\\{",right:I.envName.indexOf("r")>-1?"\\}":".",rightColor:void 0}},htmlBuilder:mb,mathmlBuilder:sb});rb({type:"array",names:["align","align*","aligned","split"],props:{numArgs:0},handler:C7,htmlBuilder:mb,mathmlBuilder:sb});rb({type:"array",names:["gathered","gather","gather*"],props:{numArgs:0},handler(I){Bl.contains(["gather","gather*"],I.envName)&&kN(I);var l={cols:[{type:"align",align:"c"}],addJot:!0,colSeparationType:"gather",autoTag:my(I.envName),emptySingleRow:!0,leqno:I.parser.settings.leqno};return vZ(I.parser,l,"display")},htmlBuilder:mb,mathmlBuilder:sb});rb({type:"array",names:["alignat","alignat*","alignedat"],props:{numArgs:1},handler:C7,htmlBuilder:mb,mathmlBuilder:sb});rb({type:"array",names:["equation","equation*"],props:{numArgs:0},handler(I){kN(I);var l={autoTag:my(I.envName),emptySingleRow:!0,singleRow:!0,maxNumCols:1,leqno:I.parser.settings.leqno};return vZ(I.parser,l,"display")},htmlBuilder:mb,mathmlBuilder:sb});rb({type:"array",names:["CD"],props:{numArgs:0},handler(I){return kN(I),E9I(I.parser)},htmlBuilder:mb,mathmlBuilder:sb});L("\\nonumber","\\gdef\\@eqnsw{0}");L("\\notag","\\nonumber");hl({type:"text",names:["\\hline","\\hdashline"],props:{numArgs:0,allowedInText:!0,allowedInMath:!0},handler(I,l){throw new DI(I.funcName+" valid only within array environment")}});var nU=z7;hl({type:"environment",names:["\\begin","\\end"],props:{numArgs:1,argTypes:["text"]},handler(I,l){var{parser:c,funcName:G}=I,e=l[0];if(e.type!=="ordgroup")throw new DI("Invalid environment name",e);for(var d="",t=0;t{var c=I.font,G=l.withFont(c);return Qc(I.body,G)},f7=(I,l)=>{var c=I.font,G=l.withFont(c);return Sc(I.body,G)},bU={"\\Bbb":"\\mathbb","\\bold":"\\mathbf","\\frak":"\\mathfrak","\\bm":"\\boldsymbol"};hl({type:"font",names:["\\mathrm","\\mathit","\\mathbf","\\mathnormal","\\mathbb","\\mathcal","\\mathfrak","\\mathscr","\\mathsf","\\mathtt","\\Bbb","\\bold","\\frak"],props:{numArgs:1,allowedInArgument:!0},handler:(I,l)=>{var{parser:c,funcName:G}=I,e=Ni(l[0]),d=G;return d in bU&&(d=bU[d]),{type:"font",mode:c.mode,font:d.slice(1),body:e}},htmlBuilder:M7,mathmlBuilder:f7});hl({type:"mclass",names:["\\boldsymbol","\\bm"],props:{numArgs:1},handler:(I,l)=>{var{parser:c}=I,G=l[0],e=Bl.isCharacterBox(G);return{type:"mclass",mode:c.mode,mclass:JN(G),body:[{type:"font",mode:c.mode,font:"boldsymbol",body:G}],isCharacterBox:e}}});hl({type:"font",names:["\\rm","\\sf","\\tt","\\bf","\\it","\\cal"],props:{numArgs:0,allowedInText:!0},handler:(I,l)=>{var{parser:c,funcName:G,breakOnTokenText:e}=I,{mode:d}=c,t=c.parseExpression(!0,e),n="math"+G.slice(1);return{type:"font",mode:d,font:n,body:{type:"ordgroup",mode:c.mode,body:t}}},htmlBuilder:M7,mathmlBuilder:f7});var K7=(I,l)=>{var c=l;return I==="display"?c=c.id>=Ul.SCRIPT.id?c.text():Ul.DISPLAY:I==="text"&&c.size===Ul.DISPLAY.size?c=Ul.TEXT:I==="script"?c=Ul.SCRIPT:I==="scriptscript"&&(c=Ul.SCRIPTSCRIPT),c},uy=(I,l)=>{var c=K7(I.size,l.style),G=c.fracNum(),e=c.fracDen(),d;d=l.havingStyle(G);var t=Qc(I.numer,d,l);if(I.continued){var n=8.5/l.fontMetrics().ptPerEm,b=3.5/l.fontMetrics().ptPerEm;t.height=t.height0?h=3*m:h=7*m,p=l.fontMetrics().denom1):(W>0?(s=l.fontMetrics().num2,h=m):(s=l.fontMetrics().num3,h=3*m),p=l.fontMetrics().denom2);var V;if(Z){var F=l.fontMetrics().axisHeight;s-t.depth-(F+.5*W){var c=new SI.MathNode("mfrac",[Sc(I.numer,l),Sc(I.denom,l)]);if(!I.hasBarLine)c.setAttribute("linethickness","0px");else if(I.barSize){var G=uG(I.barSize,l);c.setAttribute("linethickness",el(G))}var e=K7(I.size,l.style);if(e.size!==l.style.size){c=new SI.MathNode("mstyle",[c]);var d=e.size===Ul.DISPLAY.size?"true":"false";c.setAttribute("displaystyle",d),c.setAttribute("scriptlevel","0")}if(I.leftDelim!=null||I.rightDelim!=null){var t=[];if(I.leftDelim!=null){var n=new SI.MathNode("mo",[new SI.TextNode(I.leftDelim.replace("\\",""))]);n.setAttribute("fence","true"),t.push(n)}if(t.push(c),I.rightDelim!=null){var b=new SI.MathNode("mo",[new SI.TextNode(I.rightDelim.replace("\\",""))]);b.setAttribute("fence","true"),t.push(b)}return ty(t)}return c};hl({type:"genfrac",names:["\\dfrac","\\frac","\\tfrac","\\dbinom","\\binom","\\tbinom","\\\\atopfrac","\\\\bracefrac","\\\\brackfrac"],props:{numArgs:2,allowedInArgument:!0},handler:(I,l)=>{var{parser:c,funcName:G}=I,e=l[0],d=l[1],t,n=null,b=null,a="auto";switch(G){case"\\dfrac":case"\\frac":case"\\tfrac":t=!0;break;case"\\\\atopfrac":t=!1;break;case"\\dbinom":case"\\binom":case"\\tbinom":t=!1,n="(",b=")";break;case"\\\\bracefrac":t=!1,n="\\{",b="\\}";break;case"\\\\brackfrac":t=!1,n="[",b="]";break;default:throw new Error("Unrecognized genfrac command")}switch(G){case"\\dfrac":case"\\dbinom":a="display";break;case"\\tfrac":case"\\tbinom":a="text";break}return{type:"genfrac",mode:c.mode,continued:!1,numer:e,denom:d,hasBarLine:t,leftDelim:n,rightDelim:b,size:a,barSize:null}},htmlBuilder:uy,mathmlBuilder:hy});hl({type:"genfrac",names:["\\cfrac"],props:{numArgs:2},handler:(I,l)=>{var{parser:c,funcName:G}=I,e=l[0],d=l[1];return{type:"genfrac",mode:c.mode,continued:!0,numer:e,denom:d,hasBarLine:!0,leftDelim:null,rightDelim:null,size:"display",barSize:null}}});hl({type:"infix",names:["\\over","\\choose","\\atop","\\brace","\\brack"],props:{numArgs:0,infix:!0},handler(I){var{parser:l,funcName:c,token:G}=I,e;switch(c){case"\\over":e="\\frac";break;case"\\choose":e="\\binom";break;case"\\atop":e="\\\\atopfrac";break;case"\\brace":e="\\\\bracefrac";break;case"\\brack":e="\\\\brackfrac";break;default:throw new Error("Unrecognized infix genfrac command")}return{type:"infix",mode:l.mode,replaceWith:e,token:G}}});var aU=["display","text","script","scriptscript"],ZU=function(l){var c=null;return l.length>0&&(c=l,c=c==="."?null:c),c};hl({type:"genfrac",names:["\\genfrac"],props:{numArgs:6,allowedInArgument:!0,argTypes:["math","math","size","text","math","math"]},handler(I,l){var{parser:c}=I,G=l[4],e=l[5],d=Ni(l[0]),t=d.type==="atom"&&d.family==="open"?ZU(d.text):null,n=Ni(l[1]),b=n.type==="atom"&&n.family==="close"?ZU(n.text):null,a=cc(l[2],"size"),Z,W=null;a.isBlank?Z=!0:(W=a.value,Z=W.number>0);var m="auto",s=l[3];if(s.type==="ordgroup"){if(s.body.length>0){var h=cc(s.body[0],"textord");m=aU[Number(h.text)]}}else s=cc(s,"textord"),m=aU[Number(s.text)];return{type:"genfrac",mode:c.mode,numer:G,denom:e,continued:!1,hasBarLine:Z,barSize:W,leftDelim:t,rightDelim:b,size:m}},htmlBuilder:uy,mathmlBuilder:hy});hl({type:"infix",names:["\\above"],props:{numArgs:1,argTypes:["size"],infix:!0},handler(I,l){var{parser:c,funcName:G,token:e}=I;return{type:"infix",mode:c.mode,replaceWith:"\\\\abovefrac",size:cc(l[0],"size").value,token:e}}});hl({type:"genfrac",names:["\\\\abovefrac"],props:{numArgs:3,argTypes:["math","size","math"]},handler:(I,l)=>{var{parser:c,funcName:G}=I,e=l[0],d=iBI(cc(l[1],"infix").size),t=l[2],n=d.number>0;return{type:"genfrac",mode:c.mode,numer:e,denom:t,continued:!1,hasBarLine:n,barSize:d,leftDelim:null,rightDelim:null,size:"auto"}},htmlBuilder:uy,mathmlBuilder:hy});var L7=(I,l)=>{var c=l.style,G,e;I.type==="supsub"?(G=I.sup?Qc(I.sup,l.havingStyle(c.sup()),l):Qc(I.sub,l.havingStyle(c.sub()),l),e=cc(I.base,"horizBrace")):e=cc(I,"horizBrace");var d=Qc(e.base,l.havingBaseStyle(Ul.DISPLAY)),t=ca.svgSpan(e,l),n;if(e.isOver?(n=iI.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:d},{type:"kern",size:.1},{type:"elem",elem:t}]},l),n.children[0].children[0].children[1].classes.push("svg-align")):(n=iI.makeVList({positionType:"bottom",positionData:d.depth+.1+t.height,children:[{type:"elem",elem:t},{type:"kern",size:.1},{type:"elem",elem:d}]},l),n.children[0].children[0].children[0].classes.push("svg-align")),G){var b=iI.makeSpan(["mord",e.isOver?"mover":"munder"],[n],l);e.isOver?n=iI.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:b},{type:"kern",size:.2},{type:"elem",elem:G}]},l):n=iI.makeVList({positionType:"bottom",positionData:b.depth+.2+G.height+G.depth,children:[{type:"elem",elem:G},{type:"kern",size:.2},{type:"elem",elem:b}]},l)}return iI.makeSpan(["mord",e.isOver?"mover":"munder"],[n],l)},L9I=(I,l)=>{var c=ca.mathMLnode(I.label);return new SI.MathNode(I.isOver?"mover":"munder",[Sc(I.base,l),c])};hl({type:"horizBrace",names:["\\overbrace","\\underbrace"],props:{numArgs:1},handler(I,l){var{parser:c,funcName:G}=I;return{type:"horizBrace",mode:c.mode,label:G,isOver:/^\\over/.test(G),base:l[0]}},htmlBuilder:L7,mathmlBuilder:L9I});hl({type:"href",names:["\\href"],props:{numArgs:2,argTypes:["url","original"],allowedInText:!0},handler:(I,l)=>{var{parser:c}=I,G=l[1],e=cc(l[0],"url").url;return c.settings.isTrusted({command:"\\href",url:e})?{type:"href",mode:c.mode,href:e,body:vG(G)}:c.formatUnsupportedCmd("\\href")},htmlBuilder:(I,l)=>{var c=TG(I.body,l,!1);return iI.makeAnchor(I.href,[],c,l)},mathmlBuilder:(I,l)=>{var c=oZ(I.body,l);return c instanceof Ht||(c=new Ht("mrow",[c])),c.setAttribute("href",I.href),c}});hl({type:"href",names:["\\url"],props:{numArgs:1,argTypes:["url"],allowedInText:!0},handler:(I,l)=>{var{parser:c}=I,G=cc(l[0],"url").url;if(!c.settings.isTrusted({command:"\\url",url:G}))return c.formatUnsupportedCmd("\\url");for(var e=[],d=0;d{var{parser:c,funcName:G,token:e}=I,d=cc(l[0],"raw").string,t=l[1];c.settings.strict&&c.settings.reportNonstrict("htmlExtension","HTML extension is disabled on strict mode");var n,b={};switch(G){case"\\htmlClass":b.class=d,n={command:"\\htmlClass",class:d};break;case"\\htmlId":b.id=d,n={command:"\\htmlId",id:d};break;case"\\htmlStyle":b.style=d,n={command:"\\htmlStyle",style:d};break;case"\\htmlData":{for(var a=d.split(","),Z=0;Z{var c=TG(I.body,l,!1),G=["enclosing"];I.attributes.class&&G.push(...I.attributes.class.trim().split(/\s+/));var e=iI.makeSpan(G,c,l);for(var d in I.attributes)d!=="class"&&I.attributes.hasOwnProperty(d)&&e.setAttribute(d,I.attributes[d]);return e},mathmlBuilder:(I,l)=>oZ(I.body,l)});hl({type:"htmlmathml",names:["\\html@mathml"],props:{numArgs:2,allowedInText:!0},handler:(I,l)=>{var{parser:c}=I;return{type:"htmlmathml",mode:c.mode,html:vG(l[0]),mathml:vG(l[1])}},htmlBuilder:(I,l)=>{var c=TG(I.html,l,!1);return iI.makeFragment(c)},mathmlBuilder:(I,l)=>oZ(I.mathml,l)});var $X=function(l){if(/^[-+]? *(\d+(\.\d*)?|\.\d+)$/.test(l))return{number:+l,unit:"bp"};var c=/([-+]?) *(\d+(?:\.\d*)?|\.\d+) *([a-z]{2})/.exec(l);if(!c)throw new DI("Invalid size: '"+l+"' in \\includegraphics");var G={number:+(c[1]+c[2]),unit:c[3]};if(!a7(G))throw new DI("Invalid unit: '"+G.unit+"' in \\includegraphics.");return G};hl({type:"includegraphics",names:["\\includegraphics"],props:{numArgs:1,numOptionalArgs:1,argTypes:["raw","url"],allowedInText:!1},handler:(I,l,c)=>{var{parser:G}=I,e={number:0,unit:"em"},d={number:.9,unit:"em"},t={number:0,unit:"em"},n="";if(c[0])for(var b=cc(c[0],"raw").string,a=b.split(","),Z=0;Z{var c=uG(I.height,l),G=0;I.totalheight.number>0&&(G=uG(I.totalheight,l)-c);var e=0;I.width.number>0&&(e=uG(I.width,l));var d={height:el(c+G)};e>0&&(d.width=el(e)),G>0&&(d.verticalAlign=el(-G));var t=new LBI(I.src,I.alt,d);return t.height=c,t.depth=G,t},mathmlBuilder:(I,l)=>{var c=new SI.MathNode("mglyph",[]);c.setAttribute("alt",I.alt);var G=uG(I.height,l),e=0;if(I.totalheight.number>0&&(e=uG(I.totalheight,l)-G,c.setAttribute("valign",el(-e))),c.setAttribute("height",el(G+e)),I.width.number>0){var d=uG(I.width,l);c.setAttribute("width",el(d))}return c.setAttribute("src",I.src),c}});hl({type:"kern",names:["\\kern","\\mkern","\\hskip","\\mskip"],props:{numArgs:1,argTypes:["size"],primitive:!0,allowedInText:!0},handler(I,l){var{parser:c,funcName:G}=I,e=cc(l[0],"size");if(c.settings.strict){var d=G[1]==="m",t=e.value.unit==="mu";d?(t||c.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+G+" supports only mu units, "+("not "+e.value.unit+" units")),c.mode!=="math"&&c.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+G+" works only in math mode")):t&&c.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+G+" doesn't support mu units")}return{type:"kern",mode:c.mode,dimension:e.value}},htmlBuilder(I,l){return iI.makeGlue(I.dimension,l)},mathmlBuilder(I,l){var c=uG(I.dimension,l);return new SI.SpaceNode(c)}});hl({type:"lap",names:["\\mathllap","\\mathrlap","\\mathclap"],props:{numArgs:1,allowedInText:!0},handler:(I,l)=>{var{parser:c,funcName:G}=I,e=l[0];return{type:"lap",mode:c.mode,alignment:G.slice(5),body:e}},htmlBuilder:(I,l)=>{var c;I.alignment==="clap"?(c=iI.makeSpan([],[Qc(I.body,l)]),c=iI.makeSpan(["inner"],[c],l)):c=iI.makeSpan(["inner"],[Qc(I.body,l)]);var G=iI.makeSpan(["fix"],[]),e=iI.makeSpan([I.alignment],[c,G],l),d=iI.makeSpan(["strut"]);return d.style.height=el(e.height+e.depth),e.depth&&(d.style.verticalAlign=el(-e.depth)),e.children.unshift(d),e=iI.makeSpan(["thinbox"],[e],l),iI.makeSpan(["mord","vbox"],[e],l)},mathmlBuilder:(I,l)=>{var c=new SI.MathNode("mpadded",[Sc(I.body,l)]);if(I.alignment!=="rlap"){var G=I.alignment==="llap"?"-1":"-0.5";c.setAttribute("lspace",G+"width")}return c.setAttribute("width","0px"),c}});hl({type:"styling",names:["\\(","$"],props:{numArgs:0,allowedInText:!0,allowedInMath:!1},handler(I,l){var{funcName:c,parser:G}=I,e=G.mode;G.switchMode("math");var d=c==="\\("?"\\)":"$",t=G.parseExpression(!1,d);return G.expect(d),G.switchMode(e),{type:"styling",mode:G.mode,style:"text",body:t}}});hl({type:"text",names:["\\)","\\]"],props:{numArgs:0,allowedInText:!0,allowedInMath:!1},handler(I,l){throw new DI("Mismatched "+I.funcName)}});var WU=(I,l)=>{switch(l.style.size){case Ul.DISPLAY.size:return I.display;case Ul.TEXT.size:return I.text;case Ul.SCRIPT.size:return I.script;case Ul.SCRIPTSCRIPT.size:return I.scriptscript;default:return I.text}};hl({type:"mathchoice",names:["\\mathchoice"],props:{numArgs:4,primitive:!0},handler:(I,l)=>{var{parser:c}=I;return{type:"mathchoice",mode:c.mode,display:vG(l[0]),text:vG(l[1]),script:vG(l[2]),scriptscript:vG(l[3])}},htmlBuilder:(I,l)=>{var c=WU(I,l),G=TG(c,l,!1);return iI.makeFragment(G)},mathmlBuilder:(I,l)=>{var c=WU(I,l);return oZ(c,l)}});var S7=(I,l,c,G,e,d,t)=>{I=iI.makeSpan([],[I]);var n=c&&Bl.isCharacterBox(c),b,a;if(l){var Z=Qc(l,G.havingStyle(e.sup()),G);a={elem:Z,kern:Math.max(G.fontMetrics().bigOpSpacing1,G.fontMetrics().bigOpSpacing3-Z.depth)}}if(c){var W=Qc(c,G.havingStyle(e.sub()),G);b={elem:W,kern:Math.max(G.fontMetrics().bigOpSpacing2,G.fontMetrics().bigOpSpacing4-W.height)}}var m;if(a&&b){var s=G.fontMetrics().bigOpSpacing5+b.elem.height+b.elem.depth+b.kern+I.depth+t;m=iI.makeVList({positionType:"bottom",positionData:s,children:[{type:"kern",size:G.fontMetrics().bigOpSpacing5},{type:"elem",elem:b.elem,marginLeft:el(-d)},{type:"kern",size:b.kern},{type:"elem",elem:I},{type:"kern",size:a.kern},{type:"elem",elem:a.elem,marginLeft:el(d)},{type:"kern",size:G.fontMetrics().bigOpSpacing5}]},G)}else if(b){var h=I.height-t;m=iI.makeVList({positionType:"top",positionData:h,children:[{type:"kern",size:G.fontMetrics().bigOpSpacing5},{type:"elem",elem:b.elem,marginLeft:el(-d)},{type:"kern",size:b.kern},{type:"elem",elem:I}]},G)}else if(a){var p=I.depth+t;m=iI.makeVList({positionType:"bottom",positionData:p,children:[{type:"elem",elem:I},{type:"kern",size:a.kern},{type:"elem",elem:a.elem,marginLeft:el(d)},{type:"kern",size:G.fontMetrics().bigOpSpacing5}]},G)}else return I;var V=[m];if(b&&d!==0&&!n){var o=iI.makeSpan(["mspace"],[],G);o.style.marginRight=el(d),V.unshift(o)}return iI.makeSpan(["mop","op-limits"],V,G)},T7=["\\smallint"],H0=(I,l)=>{var c,G,e=!1,d;I.type==="supsub"?(c=I.sup,G=I.sub,d=cc(I.base,"op"),e=!0):d=cc(I,"op");var t=l.style,n=!1;t.size===Ul.DISPLAY.size&&d.symbol&&!Bl.contains(T7,d.name)&&(n=!0);var b;if(d.symbol){var a=n?"Size2-Regular":"Size1-Regular",Z="";if((d.name==="\\oiint"||d.name==="\\oiiint")&&(Z=d.name.slice(1),d.name=Z==="oiint"?"\\iint":"\\iiint"),b=iI.makeSymbol(d.name,a,"math",l,["mop","op-symbol",n?"large-op":"small-op"]),Z.length>0){var W=b.italic,m=iI.staticSvg(Z+"Size"+(n?"2":"1"),l);b=iI.makeVList({positionType:"individualShift",children:[{type:"elem",elem:b,shift:0},{type:"elem",elem:m,shift:n?.08:0}]},l),d.name="\\"+Z,b.classes.unshift("mop"),b.italic=W}}else if(d.body){var s=TG(d.body,l,!0);s.length===1&&s[0]instanceof zt?(b=s[0],b.classes[0]="mop"):b=iI.makeSpan(["mop"],s,l)}else{for(var h=[],p=1;p{var c;if(I.symbol)c=new Ht("mo",[Ut(I.name,I.mode)]),Bl.contains(T7,I.name)&&c.setAttribute("largeop","false");else if(I.body)c=new Ht("mo",Qd(I.body,l));else{c=new Ht("mi",[new mu(I.name.slice(1))]);var G=new Ht("mo",[Ut("⁡","text")]);I.parentIsSupSub?c=new Ht("mrow",[c,G]):c=i7([c,G])}return c},S9I={"∏":"\\prod","∐":"\\coprod","∑":"\\sum","⋀":"\\bigwedge","⋁":"\\bigvee","⋂":"\\bigcap","⋃":"\\bigcup","⨀":"\\bigodot","⨁":"\\bigoplus","⨂":"\\bigotimes","⨄":"\\biguplus","⨆":"\\bigsqcup"};hl({type:"op",names:["\\coprod","\\bigvee","\\bigwedge","\\biguplus","\\bigcap","\\bigcup","\\intop","\\prod","\\sum","\\bigotimes","\\bigoplus","\\bigodot","\\bigsqcup","\\smallint","∏","∐","∑","⋀","⋁","⋂","⋃","⨀","⨁","⨂","⨄","⨆"],props:{numArgs:0},handler:(I,l)=>{var{parser:c,funcName:G}=I,e=G;return e.length===1&&(e=S9I[e]),{type:"op",mode:c.mode,limits:!0,parentIsSupSub:!1,symbol:!0,name:e}},htmlBuilder:H0,mathmlBuilder:Dh});hl({type:"op",names:["\\mathop"],props:{numArgs:1,primitive:!0},handler:(I,l)=>{var{parser:c}=I,G=l[0];return{type:"op",mode:c.mode,limits:!1,parentIsSupSub:!1,symbol:!1,body:vG(G)}},htmlBuilder:H0,mathmlBuilder:Dh});var T9I={"∫":"\\int","∬":"\\iint","∭":"\\iiint","∮":"\\oint","∯":"\\oiint","∰":"\\oiiint"};hl({type:"op",names:["\\arcsin","\\arccos","\\arctan","\\arctg","\\arcctg","\\arg","\\ch","\\cos","\\cosec","\\cosh","\\cot","\\cotg","\\coth","\\csc","\\ctg","\\cth","\\deg","\\dim","\\exp","\\hom","\\ker","\\lg","\\ln","\\log","\\sec","\\sin","\\sinh","\\sh","\\tan","\\tanh","\\tg","\\th"],props:{numArgs:0},handler(I){var{parser:l,funcName:c}=I;return{type:"op",mode:l.mode,limits:!1,parentIsSupSub:!1,symbol:!1,name:c}},htmlBuilder:H0,mathmlBuilder:Dh});hl({type:"op",names:["\\det","\\gcd","\\inf","\\lim","\\max","\\min","\\Pr","\\sup"],props:{numArgs:0},handler(I){var{parser:l,funcName:c}=I;return{type:"op",mode:l.mode,limits:!0,parentIsSupSub:!1,symbol:!1,name:c}},htmlBuilder:H0,mathmlBuilder:Dh});hl({type:"op",names:["\\int","\\iint","\\iiint","\\oint","\\oiint","\\oiiint","∫","∬","∭","∮","∯","∰"],props:{numArgs:0},handler(I){var{parser:l,funcName:c}=I,G=c;return G.length===1&&(G=T9I[G]),{type:"op",mode:l.mode,limits:!1,parentIsSupSub:!1,symbol:!0,name:G}},htmlBuilder:H0,mathmlBuilder:Dh});var j7=(I,l)=>{var c,G,e=!1,d;I.type==="supsub"?(c=I.sup,G=I.sub,d=cc(I.base,"operatorname"),e=!0):d=cc(I,"operatorname");var t;if(d.body.length>0){for(var n=d.body.map(W=>{var m=W.text;return typeof m=="string"?{type:"textord",mode:W.mode,text:m}:W}),b=TG(n,l.withFont("mathrm"),!0),a=0;a{for(var c=Qd(I.body,l.withFont("mathrm")),G=!0,e=0;eZ.toText()).join("");c=[new SI.TextNode(n)]}var b=new SI.MathNode("mi",c);b.setAttribute("mathvariant","normal");var a=new SI.MathNode("mo",[Ut("⁡","text")]);return I.parentIsSupSub?new SI.MathNode("mrow",[b,a]):SI.newDocumentFragment([b,a])};hl({type:"operatorname",names:["\\operatorname@","\\operatornamewithlimits"],props:{numArgs:1},handler:(I,l)=>{var{parser:c,funcName:G}=I,e=l[0];return{type:"operatorname",mode:c.mode,body:vG(e),alwaysHandleSupSub:G==="\\operatornamewithlimits",limits:!1,parentIsSupSub:!1}},htmlBuilder:j7,mathmlBuilder:j9I});L("\\operatorname","\\@ifstar\\operatornamewithlimits\\operatorname@");tr({type:"ordgroup",htmlBuilder(I,l){return I.semisimple?iI.makeFragment(TG(I.body,l,!1)):iI.makeSpan(["mord"],TG(I.body,l,!0),l)},mathmlBuilder(I,l){return oZ(I.body,l,!0)}});hl({type:"overline",names:["\\overline"],props:{numArgs:1},handler(I,l){var{parser:c}=I,G=l[0];return{type:"overline",mode:c.mode,body:G}},htmlBuilder(I,l){var c=Qc(I.body,l.havingCrampedStyle()),G=iI.makeLineSpan("overline-line",l),e=l.fontMetrics().defaultRuleThickness,d=iI.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:c},{type:"kern",size:3*e},{type:"elem",elem:G},{type:"kern",size:e}]},l);return iI.makeSpan(["mord","overline"],[d],l)},mathmlBuilder(I,l){var c=new SI.MathNode("mo",[new SI.TextNode("‾")]);c.setAttribute("stretchy","true");var G=new SI.MathNode("mover",[Sc(I.body,l),c]);return G.setAttribute("accent","true"),G}});hl({type:"phantom",names:["\\phantom"],props:{numArgs:1,allowedInText:!0},handler:(I,l)=>{var{parser:c}=I,G=l[0];return{type:"phantom",mode:c.mode,body:vG(G)}},htmlBuilder:(I,l)=>{var c=TG(I.body,l.withPhantom(),!1);return iI.makeFragment(c)},mathmlBuilder:(I,l)=>{var c=Qd(I.body,l);return new SI.MathNode("mphantom",c)}});hl({type:"hphantom",names:["\\hphantom"],props:{numArgs:1,allowedInText:!0},handler:(I,l)=>{var{parser:c}=I,G=l[0];return{type:"hphantom",mode:c.mode,body:G}},htmlBuilder:(I,l)=>{var c=iI.makeSpan([],[Qc(I.body,l.withPhantom())]);if(c.height=0,c.depth=0,c.children)for(var G=0;G{var c=Qd(vG(I.body),l),G=new SI.MathNode("mphantom",c),e=new SI.MathNode("mpadded",[G]);return e.setAttribute("height","0px"),e.setAttribute("depth","0px"),e}});hl({type:"vphantom",names:["\\vphantom"],props:{numArgs:1,allowedInText:!0},handler:(I,l)=>{var{parser:c}=I,G=l[0];return{type:"vphantom",mode:c.mode,body:G}},htmlBuilder:(I,l)=>{var c=iI.makeSpan(["inner"],[Qc(I.body,l.withPhantom())]),G=iI.makeSpan(["fix"],[]);return iI.makeSpan(["mord","rlap"],[c,G],l)},mathmlBuilder:(I,l)=>{var c=Qd(vG(I.body),l),G=new SI.MathNode("mphantom",c),e=new SI.MathNode("mpadded",[G]);return e.setAttribute("width","0px"),e}});hl({type:"raisebox",names:["\\raisebox"],props:{numArgs:2,argTypes:["size","hbox"],allowedInText:!0},handler(I,l){var{parser:c}=I,G=cc(l[0],"size").value,e=l[1];return{type:"raisebox",mode:c.mode,dy:G,body:e}},htmlBuilder(I,l){var c=Qc(I.body,l),G=uG(I.dy,l);return iI.makeVList({positionType:"shift",positionData:-G,children:[{type:"elem",elem:c}]},l)},mathmlBuilder(I,l){var c=new SI.MathNode("mpadded",[Sc(I.body,l)]),G=I.dy.number+I.dy.unit;return c.setAttribute("voffset",G),c}});hl({type:"internal",names:["\\relax"],props:{numArgs:0,allowedInText:!0},handler(I){var{parser:l}=I;return{type:"internal",mode:l.mode}}});hl({type:"rule",names:["\\rule"],props:{numArgs:2,numOptionalArgs:1,argTypes:["size","size","size"]},handler(I,l,c){var{parser:G}=I,e=c[0],d=cc(l[0],"size"),t=cc(l[1],"size");return{type:"rule",mode:G.mode,shift:e&&cc(e,"size").value,width:d.value,height:t.value}},htmlBuilder(I,l){var c=iI.makeSpan(["mord","rule"],[],l),G=uG(I.width,l),e=uG(I.height,l),d=I.shift?uG(I.shift,l):0;return c.style.borderRightWidth=el(G),c.style.borderTopWidth=el(e),c.style.bottom=el(d),c.width=G,c.height=e+d,c.depth=-d,c.maxFontSize=e*1.125*l.sizeMultiplier,c},mathmlBuilder(I,l){var c=uG(I.width,l),G=uG(I.height,l),e=I.shift?uG(I.shift,l):0,d=l.color&&l.getColor()||"black",t=new SI.MathNode("mspace");t.setAttribute("mathbackground",d),t.setAttribute("width",el(c)),t.setAttribute("height",el(G));var n=new SI.MathNode("mpadded",[t]);return e>=0?n.setAttribute("height",el(e)):(n.setAttribute("height",el(e)),n.setAttribute("depth",el(-e))),n.setAttribute("voffset",el(e)),n}});function D7(I,l,c){for(var G=TG(I,l,!1),e=l.sizeMultiplier/c.sizeMultiplier,d=0;d{var c=l.havingSize(I.size);return D7(I.body,c,l)};hl({type:"sizing",names:rU,props:{numArgs:0,allowedInText:!0},handler:(I,l)=>{var{breakOnTokenText:c,funcName:G,parser:e}=I,d=e.parseExpression(!1,c);return{type:"sizing",mode:e.mode,size:rU.indexOf(G)+1,body:d}},htmlBuilder:D9I,mathmlBuilder:(I,l)=>{var c=l.havingSize(I.size),G=Qd(I.body,c),e=new SI.MathNode("mstyle",G);return e.setAttribute("mathsize",el(c.sizeMultiplier)),e}});hl({type:"smash",names:["\\smash"],props:{numArgs:1,numOptionalArgs:1,allowedInText:!0},handler:(I,l,c)=>{var{parser:G}=I,e=!1,d=!1,t=c[0]&&cc(c[0],"ordgroup");if(t)for(var n="",b=0;b{var c=iI.makeSpan([],[Qc(I.body,l)]);if(!I.smashHeight&&!I.smashDepth)return c;if(I.smashHeight&&(c.height=0,c.children))for(var G=0;G{var c=new SI.MathNode("mpadded",[Sc(I.body,l)]);return I.smashHeight&&c.setAttribute("height","0px"),I.smashDepth&&c.setAttribute("depth","0px"),c}});hl({type:"sqrt",names:["\\sqrt"],props:{numArgs:1,numOptionalArgs:1},handler(I,l,c){var{parser:G}=I,e=c[0],d=l[0];return{type:"sqrt",mode:G.mode,body:d,index:e}},htmlBuilder(I,l){var c=Qc(I.body,l.havingCrampedStyle());c.height===0&&(c.height=l.fontMetrics().xHeight),c=iI.wrapFragment(c,l);var G=l.fontMetrics(),e=G.defaultRuleThickness,d=e;l.style.idc.height+c.depth+t&&(t=(t+W-c.height-c.depth)/2);var m=b.height-c.height-t-a;c.style.paddingLeft=el(Z);var s=iI.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:c,wrapperClasses:["svg-align"]},{type:"kern",size:-(c.height+m)},{type:"elem",elem:b},{type:"kern",size:a}]},l);if(I.index){var h=l.havingStyle(Ul.SCRIPTSCRIPT),p=Qc(I.index,h,l),V=.6*(s.height-s.depth),o=iI.makeVList({positionType:"shift",positionData:-V,children:[{type:"elem",elem:p}]},l),F=iI.makeSpan(["root"],[o]);return iI.makeSpan(["mord","sqrt"],[F,s],l)}else return iI.makeSpan(["mord","sqrt"],[s],l)},mathmlBuilder(I,l){var{body:c,index:G}=I;return G?new SI.MathNode("mroot",[Sc(c,l),Sc(G,l)]):new SI.MathNode("msqrt",[Sc(c,l)])}});var mU={display:Ul.DISPLAY,text:Ul.TEXT,script:Ul.SCRIPT,scriptscript:Ul.SCRIPTSCRIPT};hl({type:"styling",names:["\\displaystyle","\\textstyle","\\scriptstyle","\\scriptscriptstyle"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(I,l){var{breakOnTokenText:c,funcName:G,parser:e}=I,d=e.parseExpression(!0,c),t=G.slice(1,G.length-5);return{type:"styling",mode:e.mode,style:t,body:d}},htmlBuilder(I,l){var c=mU[I.style],G=l.havingStyle(c).withFont("");return D7(I.body,G,l)},mathmlBuilder(I,l){var c=mU[I.style],G=l.havingStyle(c),e=Qd(I.body,G),d=new SI.MathNode("mstyle",e),t={display:["0","true"],text:["0","false"],script:["1","false"],scriptscript:["2","false"]},n=t[I.style];return d.setAttribute("scriptlevel",n[0]),d.setAttribute("displaystyle",n[1]),d}});var O9I=function(l,c){var G=l.base;if(G)if(G.type==="op"){var e=G.limits&&(c.style.size===Ul.DISPLAY.size||G.alwaysHandleSupSub);return e?H0:null}else if(G.type==="operatorname"){var d=G.alwaysHandleSupSub&&(c.style.size===Ul.DISPLAY.size||G.limits);return d?j7:null}else{if(G.type==="accent")return Bl.isCharacterBox(G.base)?ay:null;if(G.type==="horizBrace"){var t=!l.sub;return t===G.isOver?L7:null}else return null}else return null};tr({type:"supsub",htmlBuilder(I,l){var c=O9I(I,l);if(c)return c(I,l);var{base:G,sup:e,sub:d}=I,t=Qc(G,l),n,b,a=l.fontMetrics(),Z=0,W=0,m=G&&Bl.isCharacterBox(G);if(e){var s=l.havingStyle(l.style.sup());n=Qc(e,s,l),m||(Z=t.height-s.fontMetrics().supDrop*s.sizeMultiplier/l.sizeMultiplier)}if(d){var h=l.havingStyle(l.style.sub());b=Qc(d,h,l),m||(W=t.depth+h.fontMetrics().subDrop*h.sizeMultiplier/l.sizeMultiplier)}var p;l.style===Ul.DISPLAY?p=a.sup1:l.style.cramped?p=a.sup3:p=a.sup2;var V=l.sizeMultiplier,o=el(.5/a.ptPerEm/V),F=null;if(b){var X=I.base&&I.base.type==="op"&&I.base.name&&(I.base.name==="\\oiint"||I.base.name==="\\oiiint");(t instanceof zt||X)&&(F=el(-t.italic))}var H;if(n&&b){Z=Math.max(Z,p,n.depth+.25*a.xHeight),W=Math.max(W,a.sub2);var Y=a.defaultRuleThickness,R=4*Y;if(Z-n.depth-(b.height-W)0&&(Z+=B,W-=B)}var C=[{type:"elem",elem:b,shift:W,marginRight:o,marginLeft:F},{type:"elem",elem:n,shift:-Z,marginRight:o}];H=iI.makeVList({positionType:"individualShift",children:C},l)}else if(b){W=Math.max(W,a.sub1,b.height-.8*a.xHeight);var k=[{type:"elem",elem:b,marginLeft:F,marginRight:o}];H=iI.makeVList({positionType:"shift",positionData:W,children:k},l)}else if(n)Z=Math.max(Z,p,n.depth+.25*a.xHeight),H=iI.makeVList({positionType:"shift",positionData:-Z,children:[{type:"elem",elem:n,marginRight:o}]},l);else throw new Error("supsub must have either sup or sub.");var N=rE(t,"right")||"mord";return iI.makeSpan([N],[t,iI.makeSpan(["msupsub"],[H])],l)},mathmlBuilder(I,l){var c=!1,G,e;I.base&&I.base.type==="horizBrace"&&(e=!!I.sup,e===I.base.isOver&&(c=!0,G=I.base.isOver)),I.base&&(I.base.type==="op"||I.base.type==="operatorname")&&(I.base.parentIsSupSub=!0);var d=[Sc(I.base,l)];I.sub&&d.push(Sc(I.sub,l)),I.sup&&d.push(Sc(I.sup,l));var t;if(c)t=G?"mover":"munder";else if(I.sub)if(I.sup){var a=I.base;a&&a.type==="op"&&a.limits&&l.style===Ul.DISPLAY||a&&a.type==="operatorname"&&a.alwaysHandleSupSub&&(l.style===Ul.DISPLAY||a.limits)?t="munderover":t="msubsup"}else{var b=I.base;b&&b.type==="op"&&b.limits&&(l.style===Ul.DISPLAY||b.alwaysHandleSupSub)||b&&b.type==="operatorname"&&b.alwaysHandleSupSub&&(b.limits||l.style===Ul.DISPLAY)?t="munder":t="msub"}else{var n=I.base;n&&n.type==="op"&&n.limits&&(l.style===Ul.DISPLAY||n.alwaysHandleSupSub)||n&&n.type==="operatorname"&&n.alwaysHandleSupSub&&(n.limits||l.style===Ul.DISPLAY)?t="mover":t="msup"}return new SI.MathNode(t,d)}});tr({type:"atom",htmlBuilder(I,l){return iI.mathsym(I.text,I.mode,l,["m"+I.family])},mathmlBuilder(I,l){var c=new SI.MathNode("mo",[Ut(I.text,I.mode)]);if(I.family==="bin"){var G=ny(I,l);G==="bold-italic"&&c.setAttribute("mathvariant",G)}else I.family==="punct"?c.setAttribute("separator","true"):(I.family==="open"||I.family==="close")&&c.setAttribute("stretchy","false");return c}});var O7={mi:"italic",mn:"normal",mtext:"normal"};tr({type:"mathord",htmlBuilder(I,l){return iI.makeOrd(I,l,"mathord")},mathmlBuilder(I,l){var c=new SI.MathNode("mi",[Ut(I.text,I.mode,l)]),G=ny(I,l)||"italic";return G!==O7[c.type]&&c.setAttribute("mathvariant",G),c}});tr({type:"textord",htmlBuilder(I,l){return iI.makeOrd(I,l,"textord")},mathmlBuilder(I,l){var c=Ut(I.text,I.mode,l),G=ny(I,l)||"normal",e;return I.mode==="text"?e=new SI.MathNode("mtext",[c]):/[0-9]/.test(I.text)?e=new SI.MathNode("mn",[c]):I.text==="\\prime"?e=new SI.MathNode("mo",[c]):e=new SI.MathNode("mi",[c]),G!==O7[e.type]&&e.setAttribute("mathvariant",G),e}});var IH={"\\nobreak":"nobreak","\\allowbreak":"allowbreak"},lH={" ":{},"\\ ":{},"~":{className:"nobreak"},"\\space":{},"\\nobreakspace":{className:"nobreak"}};tr({type:"spacing",htmlBuilder(I,l){if(lH.hasOwnProperty(I.text)){var c=lH[I.text].className||"";if(I.mode==="text"){var G=iI.makeOrd(I,l,"textord");return G.classes.push(c),G}else return iI.makeSpan(["mspace",c],[iI.mathsym(I.text,I.mode,l)],l)}else{if(IH.hasOwnProperty(I.text))return iI.makeSpan(["mspace",IH[I.text]],[],l);throw new DI('Unknown type of space "'+I.text+'"')}},mathmlBuilder(I,l){var c;if(lH.hasOwnProperty(I.text))c=new SI.MathNode("mtext",[new SI.TextNode(" ")]);else{if(IH.hasOwnProperty(I.text))return new SI.MathNode("mspace");throw new DI('Unknown type of space "'+I.text+'"')}return c}});var sU=()=>{var I=new SI.MathNode("mtd",[]);return I.setAttribute("width","50%"),I};tr({type:"tag",mathmlBuilder(I,l){var c=new SI.MathNode("mtable",[new SI.MathNode("mtr",[sU(),new SI.MathNode("mtd",[oZ(I.body,l)]),sU(),new SI.MathNode("mtd",[oZ(I.tag,l)])])]);return c.setAttribute("width","100%"),c}});var uU={"\\text":void 0,"\\textrm":"textrm","\\textsf":"textsf","\\texttt":"texttt","\\textnormal":"textrm"},hU={"\\textbf":"textbf","\\textmd":"textmd"},P9I={"\\textit":"textit","\\textup":"textup"},pU=(I,l)=>{var c=I.font;return c?uU[c]?l.withTextFontFamily(uU[c]):hU[c]?l.withTextFontWeight(hU[c]):l.withTextFontShape(P9I[c]):l};hl({type:"text",names:["\\text","\\textrm","\\textsf","\\texttt","\\textnormal","\\textbf","\\textmd","\\textit","\\textup"],props:{numArgs:1,argTypes:["text"],allowedInArgument:!0,allowedInText:!0},handler(I,l){var{parser:c,funcName:G}=I,e=l[0];return{type:"text",mode:c.mode,body:vG(e),font:G}},htmlBuilder(I,l){var c=pU(I,l),G=TG(I.body,c,!0);return iI.makeSpan(["mord","text"],G,c)},mathmlBuilder(I,l){var c=pU(I,l);return oZ(I.body,c)}});hl({type:"underline",names:["\\underline"],props:{numArgs:1,allowedInText:!0},handler(I,l){var{parser:c}=I;return{type:"underline",mode:c.mode,body:l[0]}},htmlBuilder(I,l){var c=Qc(I.body,l),G=iI.makeLineSpan("underline-line",l),e=l.fontMetrics().defaultRuleThickness,d=iI.makeVList({positionType:"top",positionData:c.height,children:[{type:"kern",size:e},{type:"elem",elem:G},{type:"kern",size:3*e},{type:"elem",elem:c}]},l);return iI.makeSpan(["mord","underline"],[d],l)},mathmlBuilder(I,l){var c=new SI.MathNode("mo",[new SI.TextNode("‾")]);c.setAttribute("stretchy","true");var G=new SI.MathNode("munder",[Sc(I.body,l),c]);return G.setAttribute("accentunder","true"),G}});hl({type:"vcenter",names:["\\vcenter"],props:{numArgs:1,argTypes:["original"],allowedInText:!1},handler(I,l){var{parser:c}=I;return{type:"vcenter",mode:c.mode,body:l[0]}},htmlBuilder(I,l){var c=Qc(I.body,l),G=l.fontMetrics().axisHeight,e=.5*(c.height-G-(c.depth+G));return iI.makeVList({positionType:"shift",positionData:e,children:[{type:"elem",elem:c}]},l)},mathmlBuilder(I,l){return new SI.MathNode("mpadded",[Sc(I.body,l)],["vcenter"])}});hl({type:"verb",names:["\\verb"],props:{numArgs:0,allowedInText:!0},handler(I,l,c){throw new DI("\\verb ended by end of line instead of matching delimiter")},htmlBuilder(I,l){for(var c=oU(I),G=[],e=l.havingStyle(l.style.text()),d=0;dI.body.replace(/ /g,I.star?"␣":" "),Ma=o7,P7=`[ \r - ]`,_9I="\\\\[a-zA-Z@]+",q9I="\\\\[^\uD800-\uDFFF]",$9I="("+_9I+")"+P7+"*",I4I=`\\\\( +l0,-`+(n+144)+`c-2,-159.3,-10,-310.7,-24,-454c-53.3,-528,-210,-949.7, +-470,-1265c-4.7,-6,-9.7,-11.7,-15,-17c-0.7,-0.7,-6.7,-1,-18,-1z`;default:throw new Error("Unknown stretchy delimiter.")}};class gm{constructor(t){this.children=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,this.children=t,this.classes=[],this.height=0,this.depth=0,this.maxFontSize=0,this.style={}}hasClass(t){return Ht.contains(this.classes,t)}toNode(){for(var t=document.createDocumentFragment(),n=0;nn.toText();return this.children.map(t).join("")}}var ql={"AMS-Regular":{32:[0,0,0,0,.25],65:[0,.68889,0,0,.72222],66:[0,.68889,0,0,.66667],67:[0,.68889,0,0,.72222],68:[0,.68889,0,0,.72222],69:[0,.68889,0,0,.66667],70:[0,.68889,0,0,.61111],71:[0,.68889,0,0,.77778],72:[0,.68889,0,0,.77778],73:[0,.68889,0,0,.38889],74:[.16667,.68889,0,0,.5],75:[0,.68889,0,0,.77778],76:[0,.68889,0,0,.66667],77:[0,.68889,0,0,.94445],78:[0,.68889,0,0,.72222],79:[.16667,.68889,0,0,.77778],80:[0,.68889,0,0,.61111],81:[.16667,.68889,0,0,.77778],82:[0,.68889,0,0,.72222],83:[0,.68889,0,0,.55556],84:[0,.68889,0,0,.66667],85:[0,.68889,0,0,.72222],86:[0,.68889,0,0,.72222],87:[0,.68889,0,0,1],88:[0,.68889,0,0,.72222],89:[0,.68889,0,0,.72222],90:[0,.68889,0,0,.66667],107:[0,.68889,0,0,.55556],160:[0,0,0,0,.25],165:[0,.675,.025,0,.75],174:[.15559,.69224,0,0,.94666],240:[0,.68889,0,0,.55556],295:[0,.68889,0,0,.54028],710:[0,.825,0,0,2.33334],732:[0,.9,0,0,2.33334],770:[0,.825,0,0,2.33334],771:[0,.9,0,0,2.33334],989:[.08167,.58167,0,0,.77778],1008:[0,.43056,.04028,0,.66667],8245:[0,.54986,0,0,.275],8463:[0,.68889,0,0,.54028],8487:[0,.68889,0,0,.72222],8498:[0,.68889,0,0,.55556],8502:[0,.68889,0,0,.66667],8503:[0,.68889,0,0,.44445],8504:[0,.68889,0,0,.66667],8513:[0,.68889,0,0,.63889],8592:[-.03598,.46402,0,0,.5],8594:[-.03598,.46402,0,0,.5],8602:[-.13313,.36687,0,0,1],8603:[-.13313,.36687,0,0,1],8606:[.01354,.52239,0,0,1],8608:[.01354,.52239,0,0,1],8610:[.01354,.52239,0,0,1.11111],8611:[.01354,.52239,0,0,1.11111],8619:[0,.54986,0,0,1],8620:[0,.54986,0,0,1],8621:[-.13313,.37788,0,0,1.38889],8622:[-.13313,.36687,0,0,1],8624:[0,.69224,0,0,.5],8625:[0,.69224,0,0,.5],8630:[0,.43056,0,0,1],8631:[0,.43056,0,0,1],8634:[.08198,.58198,0,0,.77778],8635:[.08198,.58198,0,0,.77778],8638:[.19444,.69224,0,0,.41667],8639:[.19444,.69224,0,0,.41667],8642:[.19444,.69224,0,0,.41667],8643:[.19444,.69224,0,0,.41667],8644:[.1808,.675,0,0,1],8646:[.1808,.675,0,0,1],8647:[.1808,.675,0,0,1],8648:[.19444,.69224,0,0,.83334],8649:[.1808,.675,0,0,1],8650:[.19444,.69224,0,0,.83334],8651:[.01354,.52239,0,0,1],8652:[.01354,.52239,0,0,1],8653:[-.13313,.36687,0,0,1],8654:[-.13313,.36687,0,0,1],8655:[-.13313,.36687,0,0,1],8666:[.13667,.63667,0,0,1],8667:[.13667,.63667,0,0,1],8669:[-.13313,.37788,0,0,1],8672:[-.064,.437,0,0,1.334],8674:[-.064,.437,0,0,1.334],8705:[0,.825,0,0,.5],8708:[0,.68889,0,0,.55556],8709:[.08167,.58167,0,0,.77778],8717:[0,.43056,0,0,.42917],8722:[-.03598,.46402,0,0,.5],8724:[.08198,.69224,0,0,.77778],8726:[.08167,.58167,0,0,.77778],8733:[0,.69224,0,0,.77778],8736:[0,.69224,0,0,.72222],8737:[0,.69224,0,0,.72222],8738:[.03517,.52239,0,0,.72222],8739:[.08167,.58167,0,0,.22222],8740:[.25142,.74111,0,0,.27778],8741:[.08167,.58167,0,0,.38889],8742:[.25142,.74111,0,0,.5],8756:[0,.69224,0,0,.66667],8757:[0,.69224,0,0,.66667],8764:[-.13313,.36687,0,0,.77778],8765:[-.13313,.37788,0,0,.77778],8769:[-.13313,.36687,0,0,.77778],8770:[-.03625,.46375,0,0,.77778],8774:[.30274,.79383,0,0,.77778],8776:[-.01688,.48312,0,0,.77778],8778:[.08167,.58167,0,0,.77778],8782:[.06062,.54986,0,0,.77778],8783:[.06062,.54986,0,0,.77778],8785:[.08198,.58198,0,0,.77778],8786:[.08198,.58198,0,0,.77778],8787:[.08198,.58198,0,0,.77778],8790:[0,.69224,0,0,.77778],8791:[.22958,.72958,0,0,.77778],8796:[.08198,.91667,0,0,.77778],8806:[.25583,.75583,0,0,.77778],8807:[.25583,.75583,0,0,.77778],8808:[.25142,.75726,0,0,.77778],8809:[.25142,.75726,0,0,.77778],8812:[.25583,.75583,0,0,.5],8814:[.20576,.70576,0,0,.77778],8815:[.20576,.70576,0,0,.77778],8816:[.30274,.79383,0,0,.77778],8817:[.30274,.79383,0,0,.77778],8818:[.22958,.72958,0,0,.77778],8819:[.22958,.72958,0,0,.77778],8822:[.1808,.675,0,0,.77778],8823:[.1808,.675,0,0,.77778],8828:[.13667,.63667,0,0,.77778],8829:[.13667,.63667,0,0,.77778],8830:[.22958,.72958,0,0,.77778],8831:[.22958,.72958,0,0,.77778],8832:[.20576,.70576,0,0,.77778],8833:[.20576,.70576,0,0,.77778],8840:[.30274,.79383,0,0,.77778],8841:[.30274,.79383,0,0,.77778],8842:[.13597,.63597,0,0,.77778],8843:[.13597,.63597,0,0,.77778],8847:[.03517,.54986,0,0,.77778],8848:[.03517,.54986,0,0,.77778],8858:[.08198,.58198,0,0,.77778],8859:[.08198,.58198,0,0,.77778],8861:[.08198,.58198,0,0,.77778],8862:[0,.675,0,0,.77778],8863:[0,.675,0,0,.77778],8864:[0,.675,0,0,.77778],8865:[0,.675,0,0,.77778],8872:[0,.69224,0,0,.61111],8873:[0,.69224,0,0,.72222],8874:[0,.69224,0,0,.88889],8876:[0,.68889,0,0,.61111],8877:[0,.68889,0,0,.61111],8878:[0,.68889,0,0,.72222],8879:[0,.68889,0,0,.72222],8882:[.03517,.54986,0,0,.77778],8883:[.03517,.54986,0,0,.77778],8884:[.13667,.63667,0,0,.77778],8885:[.13667,.63667,0,0,.77778],8888:[0,.54986,0,0,1.11111],8890:[.19444,.43056,0,0,.55556],8891:[.19444,.69224,0,0,.61111],8892:[.19444,.69224,0,0,.61111],8901:[0,.54986,0,0,.27778],8903:[.08167,.58167,0,0,.77778],8905:[.08167,.58167,0,0,.77778],8906:[.08167,.58167,0,0,.77778],8907:[0,.69224,0,0,.77778],8908:[0,.69224,0,0,.77778],8909:[-.03598,.46402,0,0,.77778],8910:[0,.54986,0,0,.76042],8911:[0,.54986,0,0,.76042],8912:[.03517,.54986,0,0,.77778],8913:[.03517,.54986,0,0,.77778],8914:[0,.54986,0,0,.66667],8915:[0,.54986,0,0,.66667],8916:[0,.69224,0,0,.66667],8918:[.0391,.5391,0,0,.77778],8919:[.0391,.5391,0,0,.77778],8920:[.03517,.54986,0,0,1.33334],8921:[.03517,.54986,0,0,1.33334],8922:[.38569,.88569,0,0,.77778],8923:[.38569,.88569,0,0,.77778],8926:[.13667,.63667,0,0,.77778],8927:[.13667,.63667,0,0,.77778],8928:[.30274,.79383,0,0,.77778],8929:[.30274,.79383,0,0,.77778],8934:[.23222,.74111,0,0,.77778],8935:[.23222,.74111,0,0,.77778],8936:[.23222,.74111,0,0,.77778],8937:[.23222,.74111,0,0,.77778],8938:[.20576,.70576,0,0,.77778],8939:[.20576,.70576,0,0,.77778],8940:[.30274,.79383,0,0,.77778],8941:[.30274,.79383,0,0,.77778],8994:[.19444,.69224,0,0,.77778],8995:[.19444,.69224,0,0,.77778],9416:[.15559,.69224,0,0,.90222],9484:[0,.69224,0,0,.5],9488:[0,.69224,0,0,.5],9492:[0,.37788,0,0,.5],9496:[0,.37788,0,0,.5],9585:[.19444,.68889,0,0,.88889],9586:[.19444,.74111,0,0,.88889],9632:[0,.675,0,0,.77778],9633:[0,.675,0,0,.77778],9650:[0,.54986,0,0,.72222],9651:[0,.54986,0,0,.72222],9654:[.03517,.54986,0,0,.77778],9660:[0,.54986,0,0,.72222],9661:[0,.54986,0,0,.72222],9664:[.03517,.54986,0,0,.77778],9674:[.11111,.69224,0,0,.66667],9733:[.19444,.69224,0,0,.94445],10003:[0,.69224,0,0,.83334],10016:[0,.69224,0,0,.83334],10731:[.11111,.69224,0,0,.66667],10846:[.19444,.75583,0,0,.61111],10877:[.13667,.63667,0,0,.77778],10878:[.13667,.63667,0,0,.77778],10885:[.25583,.75583,0,0,.77778],10886:[.25583,.75583,0,0,.77778],10887:[.13597,.63597,0,0,.77778],10888:[.13597,.63597,0,0,.77778],10889:[.26167,.75726,0,0,.77778],10890:[.26167,.75726,0,0,.77778],10891:[.48256,.98256,0,0,.77778],10892:[.48256,.98256,0,0,.77778],10901:[.13667,.63667,0,0,.77778],10902:[.13667,.63667,0,0,.77778],10933:[.25142,.75726,0,0,.77778],10934:[.25142,.75726,0,0,.77778],10935:[.26167,.75726,0,0,.77778],10936:[.26167,.75726,0,0,.77778],10937:[.26167,.75726,0,0,.77778],10938:[.26167,.75726,0,0,.77778],10949:[.25583,.75583,0,0,.77778],10950:[.25583,.75583,0,0,.77778],10955:[.28481,.79383,0,0,.77778],10956:[.28481,.79383,0,0,.77778],57350:[.08167,.58167,0,0,.22222],57351:[.08167,.58167,0,0,.38889],57352:[.08167,.58167,0,0,.77778],57353:[0,.43056,.04028,0,.66667],57356:[.25142,.75726,0,0,.77778],57357:[.25142,.75726,0,0,.77778],57358:[.41951,.91951,0,0,.77778],57359:[.30274,.79383,0,0,.77778],57360:[.30274,.79383,0,0,.77778],57361:[.41951,.91951,0,0,.77778],57366:[.25142,.75726,0,0,.77778],57367:[.25142,.75726,0,0,.77778],57368:[.25142,.75726,0,0,.77778],57369:[.25142,.75726,0,0,.77778],57370:[.13597,.63597,0,0,.77778],57371:[.13597,.63597,0,0,.77778]},"Caligraphic-Regular":{32:[0,0,0,0,.25],65:[0,.68333,0,.19445,.79847],66:[0,.68333,.03041,.13889,.65681],67:[0,.68333,.05834,.13889,.52653],68:[0,.68333,.02778,.08334,.77139],69:[0,.68333,.08944,.11111,.52778],70:[0,.68333,.09931,.11111,.71875],71:[.09722,.68333,.0593,.11111,.59487],72:[0,.68333,.00965,.11111,.84452],73:[0,.68333,.07382,0,.54452],74:[.09722,.68333,.18472,.16667,.67778],75:[0,.68333,.01445,.05556,.76195],76:[0,.68333,0,.13889,.68972],77:[0,.68333,0,.13889,1.2009],78:[0,.68333,.14736,.08334,.82049],79:[0,.68333,.02778,.11111,.79611],80:[0,.68333,.08222,.08334,.69556],81:[.09722,.68333,0,.11111,.81667],82:[0,.68333,0,.08334,.8475],83:[0,.68333,.075,.13889,.60556],84:[0,.68333,.25417,0,.54464],85:[0,.68333,.09931,.08334,.62583],86:[0,.68333,.08222,0,.61278],87:[0,.68333,.08222,.08334,.98778],88:[0,.68333,.14643,.13889,.7133],89:[.09722,.68333,.08222,.08334,.66834],90:[0,.68333,.07944,.13889,.72473],160:[0,0,0,0,.25]},"Fraktur-Regular":{32:[0,0,0,0,.25],33:[0,.69141,0,0,.29574],34:[0,.69141,0,0,.21471],38:[0,.69141,0,0,.73786],39:[0,.69141,0,0,.21201],40:[.24982,.74947,0,0,.38865],41:[.24982,.74947,0,0,.38865],42:[0,.62119,0,0,.27764],43:[.08319,.58283,0,0,.75623],44:[0,.10803,0,0,.27764],45:[.08319,.58283,0,0,.75623],46:[0,.10803,0,0,.27764],47:[.24982,.74947,0,0,.50181],48:[0,.47534,0,0,.50181],49:[0,.47534,0,0,.50181],50:[0,.47534,0,0,.50181],51:[.18906,.47534,0,0,.50181],52:[.18906,.47534,0,0,.50181],53:[.18906,.47534,0,0,.50181],54:[0,.69141,0,0,.50181],55:[.18906,.47534,0,0,.50181],56:[0,.69141,0,0,.50181],57:[.18906,.47534,0,0,.50181],58:[0,.47534,0,0,.21606],59:[.12604,.47534,0,0,.21606],61:[-.13099,.36866,0,0,.75623],63:[0,.69141,0,0,.36245],65:[0,.69141,0,0,.7176],66:[0,.69141,0,0,.88397],67:[0,.69141,0,0,.61254],68:[0,.69141,0,0,.83158],69:[0,.69141,0,0,.66278],70:[.12604,.69141,0,0,.61119],71:[0,.69141,0,0,.78539],72:[.06302,.69141,0,0,.7203],73:[0,.69141,0,0,.55448],74:[.12604,.69141,0,0,.55231],75:[0,.69141,0,0,.66845],76:[0,.69141,0,0,.66602],77:[0,.69141,0,0,1.04953],78:[0,.69141,0,0,.83212],79:[0,.69141,0,0,.82699],80:[.18906,.69141,0,0,.82753],81:[.03781,.69141,0,0,.82699],82:[0,.69141,0,0,.82807],83:[0,.69141,0,0,.82861],84:[0,.69141,0,0,.66899],85:[0,.69141,0,0,.64576],86:[0,.69141,0,0,.83131],87:[0,.69141,0,0,1.04602],88:[0,.69141,0,0,.71922],89:[.18906,.69141,0,0,.83293],90:[.12604,.69141,0,0,.60201],91:[.24982,.74947,0,0,.27764],93:[.24982,.74947,0,0,.27764],94:[0,.69141,0,0,.49965],97:[0,.47534,0,0,.50046],98:[0,.69141,0,0,.51315],99:[0,.47534,0,0,.38946],100:[0,.62119,0,0,.49857],101:[0,.47534,0,0,.40053],102:[.18906,.69141,0,0,.32626],103:[.18906,.47534,0,0,.5037],104:[.18906,.69141,0,0,.52126],105:[0,.69141,0,0,.27899],106:[0,.69141,0,0,.28088],107:[0,.69141,0,0,.38946],108:[0,.69141,0,0,.27953],109:[0,.47534,0,0,.76676],110:[0,.47534,0,0,.52666],111:[0,.47534,0,0,.48885],112:[.18906,.52396,0,0,.50046],113:[.18906,.47534,0,0,.48912],114:[0,.47534,0,0,.38919],115:[0,.47534,0,0,.44266],116:[0,.62119,0,0,.33301],117:[0,.47534,0,0,.5172],118:[0,.52396,0,0,.5118],119:[0,.52396,0,0,.77351],120:[.18906,.47534,0,0,.38865],121:[.18906,.47534,0,0,.49884],122:[.18906,.47534,0,0,.39054],160:[0,0,0,0,.25],8216:[0,.69141,0,0,.21471],8217:[0,.69141,0,0,.21471],58112:[0,.62119,0,0,.49749],58113:[0,.62119,0,0,.4983],58114:[.18906,.69141,0,0,.33328],58115:[.18906,.69141,0,0,.32923],58116:[.18906,.47534,0,0,.50343],58117:[0,.69141,0,0,.33301],58118:[0,.62119,0,0,.33409],58119:[0,.47534,0,0,.50073]},"Main-Bold":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.35],34:[0,.69444,0,0,.60278],35:[.19444,.69444,0,0,.95833],36:[.05556,.75,0,0,.575],37:[.05556,.75,0,0,.95833],38:[0,.69444,0,0,.89444],39:[0,.69444,0,0,.31944],40:[.25,.75,0,0,.44722],41:[.25,.75,0,0,.44722],42:[0,.75,0,0,.575],43:[.13333,.63333,0,0,.89444],44:[.19444,.15556,0,0,.31944],45:[0,.44444,0,0,.38333],46:[0,.15556,0,0,.31944],47:[.25,.75,0,0,.575],48:[0,.64444,0,0,.575],49:[0,.64444,0,0,.575],50:[0,.64444,0,0,.575],51:[0,.64444,0,0,.575],52:[0,.64444,0,0,.575],53:[0,.64444,0,0,.575],54:[0,.64444,0,0,.575],55:[0,.64444,0,0,.575],56:[0,.64444,0,0,.575],57:[0,.64444,0,0,.575],58:[0,.44444,0,0,.31944],59:[.19444,.44444,0,0,.31944],60:[.08556,.58556,0,0,.89444],61:[-.10889,.39111,0,0,.89444],62:[.08556,.58556,0,0,.89444],63:[0,.69444,0,0,.54305],64:[0,.69444,0,0,.89444],65:[0,.68611,0,0,.86944],66:[0,.68611,0,0,.81805],67:[0,.68611,0,0,.83055],68:[0,.68611,0,0,.88194],69:[0,.68611,0,0,.75555],70:[0,.68611,0,0,.72361],71:[0,.68611,0,0,.90416],72:[0,.68611,0,0,.9],73:[0,.68611,0,0,.43611],74:[0,.68611,0,0,.59444],75:[0,.68611,0,0,.90138],76:[0,.68611,0,0,.69166],77:[0,.68611,0,0,1.09166],78:[0,.68611,0,0,.9],79:[0,.68611,0,0,.86388],80:[0,.68611,0,0,.78611],81:[.19444,.68611,0,0,.86388],82:[0,.68611,0,0,.8625],83:[0,.68611,0,0,.63889],84:[0,.68611,0,0,.8],85:[0,.68611,0,0,.88472],86:[0,.68611,.01597,0,.86944],87:[0,.68611,.01597,0,1.18888],88:[0,.68611,0,0,.86944],89:[0,.68611,.02875,0,.86944],90:[0,.68611,0,0,.70277],91:[.25,.75,0,0,.31944],92:[.25,.75,0,0,.575],93:[.25,.75,0,0,.31944],94:[0,.69444,0,0,.575],95:[.31,.13444,.03194,0,.575],97:[0,.44444,0,0,.55902],98:[0,.69444,0,0,.63889],99:[0,.44444,0,0,.51111],100:[0,.69444,0,0,.63889],101:[0,.44444,0,0,.52708],102:[0,.69444,.10903,0,.35139],103:[.19444,.44444,.01597,0,.575],104:[0,.69444,0,0,.63889],105:[0,.69444,0,0,.31944],106:[.19444,.69444,0,0,.35139],107:[0,.69444,0,0,.60694],108:[0,.69444,0,0,.31944],109:[0,.44444,0,0,.95833],110:[0,.44444,0,0,.63889],111:[0,.44444,0,0,.575],112:[.19444,.44444,0,0,.63889],113:[.19444,.44444,0,0,.60694],114:[0,.44444,0,0,.47361],115:[0,.44444,0,0,.45361],116:[0,.63492,0,0,.44722],117:[0,.44444,0,0,.63889],118:[0,.44444,.01597,0,.60694],119:[0,.44444,.01597,0,.83055],120:[0,.44444,0,0,.60694],121:[.19444,.44444,.01597,0,.60694],122:[0,.44444,0,0,.51111],123:[.25,.75,0,0,.575],124:[.25,.75,0,0,.31944],125:[.25,.75,0,0,.575],126:[.35,.34444,0,0,.575],160:[0,0,0,0,.25],163:[0,.69444,0,0,.86853],168:[0,.69444,0,0,.575],172:[0,.44444,0,0,.76666],176:[0,.69444,0,0,.86944],177:[.13333,.63333,0,0,.89444],184:[.17014,0,0,0,.51111],198:[0,.68611,0,0,1.04166],215:[.13333,.63333,0,0,.89444],216:[.04861,.73472,0,0,.89444],223:[0,.69444,0,0,.59722],230:[0,.44444,0,0,.83055],247:[.13333,.63333,0,0,.89444],248:[.09722,.54167,0,0,.575],305:[0,.44444,0,0,.31944],338:[0,.68611,0,0,1.16944],339:[0,.44444,0,0,.89444],567:[.19444,.44444,0,0,.35139],710:[0,.69444,0,0,.575],711:[0,.63194,0,0,.575],713:[0,.59611,0,0,.575],714:[0,.69444,0,0,.575],715:[0,.69444,0,0,.575],728:[0,.69444,0,0,.575],729:[0,.69444,0,0,.31944],730:[0,.69444,0,0,.86944],732:[0,.69444,0,0,.575],733:[0,.69444,0,0,.575],915:[0,.68611,0,0,.69166],916:[0,.68611,0,0,.95833],920:[0,.68611,0,0,.89444],923:[0,.68611,0,0,.80555],926:[0,.68611,0,0,.76666],928:[0,.68611,0,0,.9],931:[0,.68611,0,0,.83055],933:[0,.68611,0,0,.89444],934:[0,.68611,0,0,.83055],936:[0,.68611,0,0,.89444],937:[0,.68611,0,0,.83055],8211:[0,.44444,.03194,0,.575],8212:[0,.44444,.03194,0,1.14999],8216:[0,.69444,0,0,.31944],8217:[0,.69444,0,0,.31944],8220:[0,.69444,0,0,.60278],8221:[0,.69444,0,0,.60278],8224:[.19444,.69444,0,0,.51111],8225:[.19444,.69444,0,0,.51111],8242:[0,.55556,0,0,.34444],8407:[0,.72444,.15486,0,.575],8463:[0,.69444,0,0,.66759],8465:[0,.69444,0,0,.83055],8467:[0,.69444,0,0,.47361],8472:[.19444,.44444,0,0,.74027],8476:[0,.69444,0,0,.83055],8501:[0,.69444,0,0,.70277],8592:[-.10889,.39111,0,0,1.14999],8593:[.19444,.69444,0,0,.575],8594:[-.10889,.39111,0,0,1.14999],8595:[.19444,.69444,0,0,.575],8596:[-.10889,.39111,0,0,1.14999],8597:[.25,.75,0,0,.575],8598:[.19444,.69444,0,0,1.14999],8599:[.19444,.69444,0,0,1.14999],8600:[.19444,.69444,0,0,1.14999],8601:[.19444,.69444,0,0,1.14999],8636:[-.10889,.39111,0,0,1.14999],8637:[-.10889,.39111,0,0,1.14999],8640:[-.10889,.39111,0,0,1.14999],8641:[-.10889,.39111,0,0,1.14999],8656:[-.10889,.39111,0,0,1.14999],8657:[.19444,.69444,0,0,.70277],8658:[-.10889,.39111,0,0,1.14999],8659:[.19444,.69444,0,0,.70277],8660:[-.10889,.39111,0,0,1.14999],8661:[.25,.75,0,0,.70277],8704:[0,.69444,0,0,.63889],8706:[0,.69444,.06389,0,.62847],8707:[0,.69444,0,0,.63889],8709:[.05556,.75,0,0,.575],8711:[0,.68611,0,0,.95833],8712:[.08556,.58556,0,0,.76666],8715:[.08556,.58556,0,0,.76666],8722:[.13333,.63333,0,0,.89444],8723:[.13333,.63333,0,0,.89444],8725:[.25,.75,0,0,.575],8726:[.25,.75,0,0,.575],8727:[-.02778,.47222,0,0,.575],8728:[-.02639,.47361,0,0,.575],8729:[-.02639,.47361,0,0,.575],8730:[.18,.82,0,0,.95833],8733:[0,.44444,0,0,.89444],8734:[0,.44444,0,0,1.14999],8736:[0,.69224,0,0,.72222],8739:[.25,.75,0,0,.31944],8741:[.25,.75,0,0,.575],8743:[0,.55556,0,0,.76666],8744:[0,.55556,0,0,.76666],8745:[0,.55556,0,0,.76666],8746:[0,.55556,0,0,.76666],8747:[.19444,.69444,.12778,0,.56875],8764:[-.10889,.39111,0,0,.89444],8768:[.19444,.69444,0,0,.31944],8771:[.00222,.50222,0,0,.89444],8773:[.027,.638,0,0,.894],8776:[.02444,.52444,0,0,.89444],8781:[.00222,.50222,0,0,.89444],8801:[.00222,.50222,0,0,.89444],8804:[.19667,.69667,0,0,.89444],8805:[.19667,.69667,0,0,.89444],8810:[.08556,.58556,0,0,1.14999],8811:[.08556,.58556,0,0,1.14999],8826:[.08556,.58556,0,0,.89444],8827:[.08556,.58556,0,0,.89444],8834:[.08556,.58556,0,0,.89444],8835:[.08556,.58556,0,0,.89444],8838:[.19667,.69667,0,0,.89444],8839:[.19667,.69667,0,0,.89444],8846:[0,.55556,0,0,.76666],8849:[.19667,.69667,0,0,.89444],8850:[.19667,.69667,0,0,.89444],8851:[0,.55556,0,0,.76666],8852:[0,.55556,0,0,.76666],8853:[.13333,.63333,0,0,.89444],8854:[.13333,.63333,0,0,.89444],8855:[.13333,.63333,0,0,.89444],8856:[.13333,.63333,0,0,.89444],8857:[.13333,.63333,0,0,.89444],8866:[0,.69444,0,0,.70277],8867:[0,.69444,0,0,.70277],8868:[0,.69444,0,0,.89444],8869:[0,.69444,0,0,.89444],8900:[-.02639,.47361,0,0,.575],8901:[-.02639,.47361,0,0,.31944],8902:[-.02778,.47222,0,0,.575],8968:[.25,.75,0,0,.51111],8969:[.25,.75,0,0,.51111],8970:[.25,.75,0,0,.51111],8971:[.25,.75,0,0,.51111],8994:[-.13889,.36111,0,0,1.14999],8995:[-.13889,.36111,0,0,1.14999],9651:[.19444,.69444,0,0,1.02222],9657:[-.02778,.47222,0,0,.575],9661:[.19444,.69444,0,0,1.02222],9667:[-.02778,.47222,0,0,.575],9711:[.19444,.69444,0,0,1.14999],9824:[.12963,.69444,0,0,.89444],9825:[.12963,.69444,0,0,.89444],9826:[.12963,.69444,0,0,.89444],9827:[.12963,.69444,0,0,.89444],9837:[0,.75,0,0,.44722],9838:[.19444,.69444,0,0,.44722],9839:[.19444,.69444,0,0,.44722],10216:[.25,.75,0,0,.44722],10217:[.25,.75,0,0,.44722],10815:[0,.68611,0,0,.9],10927:[.19667,.69667,0,0,.89444],10928:[.19667,.69667,0,0,.89444],57376:[.19444,.69444,0,0,0]},"Main-BoldItalic":{32:[0,0,0,0,.25],33:[0,.69444,.11417,0,.38611],34:[0,.69444,.07939,0,.62055],35:[.19444,.69444,.06833,0,.94444],37:[.05556,.75,.12861,0,.94444],38:[0,.69444,.08528,0,.88555],39:[0,.69444,.12945,0,.35555],40:[.25,.75,.15806,0,.47333],41:[.25,.75,.03306,0,.47333],42:[0,.75,.14333,0,.59111],43:[.10333,.60333,.03306,0,.88555],44:[.19444,.14722,0,0,.35555],45:[0,.44444,.02611,0,.41444],46:[0,.14722,0,0,.35555],47:[.25,.75,.15806,0,.59111],48:[0,.64444,.13167,0,.59111],49:[0,.64444,.13167,0,.59111],50:[0,.64444,.13167,0,.59111],51:[0,.64444,.13167,0,.59111],52:[.19444,.64444,.13167,0,.59111],53:[0,.64444,.13167,0,.59111],54:[0,.64444,.13167,0,.59111],55:[.19444,.64444,.13167,0,.59111],56:[0,.64444,.13167,0,.59111],57:[0,.64444,.13167,0,.59111],58:[0,.44444,.06695,0,.35555],59:[.19444,.44444,.06695,0,.35555],61:[-.10889,.39111,.06833,0,.88555],63:[0,.69444,.11472,0,.59111],64:[0,.69444,.09208,0,.88555],65:[0,.68611,0,0,.86555],66:[0,.68611,.0992,0,.81666],67:[0,.68611,.14208,0,.82666],68:[0,.68611,.09062,0,.87555],69:[0,.68611,.11431,0,.75666],70:[0,.68611,.12903,0,.72722],71:[0,.68611,.07347,0,.89527],72:[0,.68611,.17208,0,.8961],73:[0,.68611,.15681,0,.47166],74:[0,.68611,.145,0,.61055],75:[0,.68611,.14208,0,.89499],76:[0,.68611,0,0,.69777],77:[0,.68611,.17208,0,1.07277],78:[0,.68611,.17208,0,.8961],79:[0,.68611,.09062,0,.85499],80:[0,.68611,.0992,0,.78721],81:[.19444,.68611,.09062,0,.85499],82:[0,.68611,.02559,0,.85944],83:[0,.68611,.11264,0,.64999],84:[0,.68611,.12903,0,.7961],85:[0,.68611,.17208,0,.88083],86:[0,.68611,.18625,0,.86555],87:[0,.68611,.18625,0,1.15999],88:[0,.68611,.15681,0,.86555],89:[0,.68611,.19803,0,.86555],90:[0,.68611,.14208,0,.70888],91:[.25,.75,.1875,0,.35611],93:[.25,.75,.09972,0,.35611],94:[0,.69444,.06709,0,.59111],95:[.31,.13444,.09811,0,.59111],97:[0,.44444,.09426,0,.59111],98:[0,.69444,.07861,0,.53222],99:[0,.44444,.05222,0,.53222],100:[0,.69444,.10861,0,.59111],101:[0,.44444,.085,0,.53222],102:[.19444,.69444,.21778,0,.4],103:[.19444,.44444,.105,0,.53222],104:[0,.69444,.09426,0,.59111],105:[0,.69326,.11387,0,.35555],106:[.19444,.69326,.1672,0,.35555],107:[0,.69444,.11111,0,.53222],108:[0,.69444,.10861,0,.29666],109:[0,.44444,.09426,0,.94444],110:[0,.44444,.09426,0,.64999],111:[0,.44444,.07861,0,.59111],112:[.19444,.44444,.07861,0,.59111],113:[.19444,.44444,.105,0,.53222],114:[0,.44444,.11111,0,.50167],115:[0,.44444,.08167,0,.48694],116:[0,.63492,.09639,0,.385],117:[0,.44444,.09426,0,.62055],118:[0,.44444,.11111,0,.53222],119:[0,.44444,.11111,0,.76777],120:[0,.44444,.12583,0,.56055],121:[.19444,.44444,.105,0,.56166],122:[0,.44444,.13889,0,.49055],126:[.35,.34444,.11472,0,.59111],160:[0,0,0,0,.25],168:[0,.69444,.11473,0,.59111],176:[0,.69444,0,0,.94888],184:[.17014,0,0,0,.53222],198:[0,.68611,.11431,0,1.02277],216:[.04861,.73472,.09062,0,.88555],223:[.19444,.69444,.09736,0,.665],230:[0,.44444,.085,0,.82666],248:[.09722,.54167,.09458,0,.59111],305:[0,.44444,.09426,0,.35555],338:[0,.68611,.11431,0,1.14054],339:[0,.44444,.085,0,.82666],567:[.19444,.44444,.04611,0,.385],710:[0,.69444,.06709,0,.59111],711:[0,.63194,.08271,0,.59111],713:[0,.59444,.10444,0,.59111],714:[0,.69444,.08528,0,.59111],715:[0,.69444,0,0,.59111],728:[0,.69444,.10333,0,.59111],729:[0,.69444,.12945,0,.35555],730:[0,.69444,0,0,.94888],732:[0,.69444,.11472,0,.59111],733:[0,.69444,.11472,0,.59111],915:[0,.68611,.12903,0,.69777],916:[0,.68611,0,0,.94444],920:[0,.68611,.09062,0,.88555],923:[0,.68611,0,0,.80666],926:[0,.68611,.15092,0,.76777],928:[0,.68611,.17208,0,.8961],931:[0,.68611,.11431,0,.82666],933:[0,.68611,.10778,0,.88555],934:[0,.68611,.05632,0,.82666],936:[0,.68611,.10778,0,.88555],937:[0,.68611,.0992,0,.82666],8211:[0,.44444,.09811,0,.59111],8212:[0,.44444,.09811,0,1.18221],8216:[0,.69444,.12945,0,.35555],8217:[0,.69444,.12945,0,.35555],8220:[0,.69444,.16772,0,.62055],8221:[0,.69444,.07939,0,.62055]},"Main-Italic":{32:[0,0,0,0,.25],33:[0,.69444,.12417,0,.30667],34:[0,.69444,.06961,0,.51444],35:[.19444,.69444,.06616,0,.81777],37:[.05556,.75,.13639,0,.81777],38:[0,.69444,.09694,0,.76666],39:[0,.69444,.12417,0,.30667],40:[.25,.75,.16194,0,.40889],41:[.25,.75,.03694,0,.40889],42:[0,.75,.14917,0,.51111],43:[.05667,.56167,.03694,0,.76666],44:[.19444,.10556,0,0,.30667],45:[0,.43056,.02826,0,.35778],46:[0,.10556,0,0,.30667],47:[.25,.75,.16194,0,.51111],48:[0,.64444,.13556,0,.51111],49:[0,.64444,.13556,0,.51111],50:[0,.64444,.13556,0,.51111],51:[0,.64444,.13556,0,.51111],52:[.19444,.64444,.13556,0,.51111],53:[0,.64444,.13556,0,.51111],54:[0,.64444,.13556,0,.51111],55:[.19444,.64444,.13556,0,.51111],56:[0,.64444,.13556,0,.51111],57:[0,.64444,.13556,0,.51111],58:[0,.43056,.0582,0,.30667],59:[.19444,.43056,.0582,0,.30667],61:[-.13313,.36687,.06616,0,.76666],63:[0,.69444,.1225,0,.51111],64:[0,.69444,.09597,0,.76666],65:[0,.68333,0,0,.74333],66:[0,.68333,.10257,0,.70389],67:[0,.68333,.14528,0,.71555],68:[0,.68333,.09403,0,.755],69:[0,.68333,.12028,0,.67833],70:[0,.68333,.13305,0,.65277],71:[0,.68333,.08722,0,.77361],72:[0,.68333,.16389,0,.74333],73:[0,.68333,.15806,0,.38555],74:[0,.68333,.14028,0,.525],75:[0,.68333,.14528,0,.76888],76:[0,.68333,0,0,.62722],77:[0,.68333,.16389,0,.89666],78:[0,.68333,.16389,0,.74333],79:[0,.68333,.09403,0,.76666],80:[0,.68333,.10257,0,.67833],81:[.19444,.68333,.09403,0,.76666],82:[0,.68333,.03868,0,.72944],83:[0,.68333,.11972,0,.56222],84:[0,.68333,.13305,0,.71555],85:[0,.68333,.16389,0,.74333],86:[0,.68333,.18361,0,.74333],87:[0,.68333,.18361,0,.99888],88:[0,.68333,.15806,0,.74333],89:[0,.68333,.19383,0,.74333],90:[0,.68333,.14528,0,.61333],91:[.25,.75,.1875,0,.30667],93:[.25,.75,.10528,0,.30667],94:[0,.69444,.06646,0,.51111],95:[.31,.12056,.09208,0,.51111],97:[0,.43056,.07671,0,.51111],98:[0,.69444,.06312,0,.46],99:[0,.43056,.05653,0,.46],100:[0,.69444,.10333,0,.51111],101:[0,.43056,.07514,0,.46],102:[.19444,.69444,.21194,0,.30667],103:[.19444,.43056,.08847,0,.46],104:[0,.69444,.07671,0,.51111],105:[0,.65536,.1019,0,.30667],106:[.19444,.65536,.14467,0,.30667],107:[0,.69444,.10764,0,.46],108:[0,.69444,.10333,0,.25555],109:[0,.43056,.07671,0,.81777],110:[0,.43056,.07671,0,.56222],111:[0,.43056,.06312,0,.51111],112:[.19444,.43056,.06312,0,.51111],113:[.19444,.43056,.08847,0,.46],114:[0,.43056,.10764,0,.42166],115:[0,.43056,.08208,0,.40889],116:[0,.61508,.09486,0,.33222],117:[0,.43056,.07671,0,.53666],118:[0,.43056,.10764,0,.46],119:[0,.43056,.10764,0,.66444],120:[0,.43056,.12042,0,.46389],121:[.19444,.43056,.08847,0,.48555],122:[0,.43056,.12292,0,.40889],126:[.35,.31786,.11585,0,.51111],160:[0,0,0,0,.25],168:[0,.66786,.10474,0,.51111],176:[0,.69444,0,0,.83129],184:[.17014,0,0,0,.46],198:[0,.68333,.12028,0,.88277],216:[.04861,.73194,.09403,0,.76666],223:[.19444,.69444,.10514,0,.53666],230:[0,.43056,.07514,0,.71555],248:[.09722,.52778,.09194,0,.51111],338:[0,.68333,.12028,0,.98499],339:[0,.43056,.07514,0,.71555],710:[0,.69444,.06646,0,.51111],711:[0,.62847,.08295,0,.51111],713:[0,.56167,.10333,0,.51111],714:[0,.69444,.09694,0,.51111],715:[0,.69444,0,0,.51111],728:[0,.69444,.10806,0,.51111],729:[0,.66786,.11752,0,.30667],730:[0,.69444,0,0,.83129],732:[0,.66786,.11585,0,.51111],733:[0,.69444,.1225,0,.51111],915:[0,.68333,.13305,0,.62722],916:[0,.68333,0,0,.81777],920:[0,.68333,.09403,0,.76666],923:[0,.68333,0,0,.69222],926:[0,.68333,.15294,0,.66444],928:[0,.68333,.16389,0,.74333],931:[0,.68333,.12028,0,.71555],933:[0,.68333,.11111,0,.76666],934:[0,.68333,.05986,0,.71555],936:[0,.68333,.11111,0,.76666],937:[0,.68333,.10257,0,.71555],8211:[0,.43056,.09208,0,.51111],8212:[0,.43056,.09208,0,1.02222],8216:[0,.69444,.12417,0,.30667],8217:[0,.69444,.12417,0,.30667],8220:[0,.69444,.1685,0,.51444],8221:[0,.69444,.06961,0,.51444],8463:[0,.68889,0,0,.54028]},"Main-Regular":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.27778],34:[0,.69444,0,0,.5],35:[.19444,.69444,0,0,.83334],36:[.05556,.75,0,0,.5],37:[.05556,.75,0,0,.83334],38:[0,.69444,0,0,.77778],39:[0,.69444,0,0,.27778],40:[.25,.75,0,0,.38889],41:[.25,.75,0,0,.38889],42:[0,.75,0,0,.5],43:[.08333,.58333,0,0,.77778],44:[.19444,.10556,0,0,.27778],45:[0,.43056,0,0,.33333],46:[0,.10556,0,0,.27778],47:[.25,.75,0,0,.5],48:[0,.64444,0,0,.5],49:[0,.64444,0,0,.5],50:[0,.64444,0,0,.5],51:[0,.64444,0,0,.5],52:[0,.64444,0,0,.5],53:[0,.64444,0,0,.5],54:[0,.64444,0,0,.5],55:[0,.64444,0,0,.5],56:[0,.64444,0,0,.5],57:[0,.64444,0,0,.5],58:[0,.43056,0,0,.27778],59:[.19444,.43056,0,0,.27778],60:[.0391,.5391,0,0,.77778],61:[-.13313,.36687,0,0,.77778],62:[.0391,.5391,0,0,.77778],63:[0,.69444,0,0,.47222],64:[0,.69444,0,0,.77778],65:[0,.68333,0,0,.75],66:[0,.68333,0,0,.70834],67:[0,.68333,0,0,.72222],68:[0,.68333,0,0,.76389],69:[0,.68333,0,0,.68056],70:[0,.68333,0,0,.65278],71:[0,.68333,0,0,.78472],72:[0,.68333,0,0,.75],73:[0,.68333,0,0,.36111],74:[0,.68333,0,0,.51389],75:[0,.68333,0,0,.77778],76:[0,.68333,0,0,.625],77:[0,.68333,0,0,.91667],78:[0,.68333,0,0,.75],79:[0,.68333,0,0,.77778],80:[0,.68333,0,0,.68056],81:[.19444,.68333,0,0,.77778],82:[0,.68333,0,0,.73611],83:[0,.68333,0,0,.55556],84:[0,.68333,0,0,.72222],85:[0,.68333,0,0,.75],86:[0,.68333,.01389,0,.75],87:[0,.68333,.01389,0,1.02778],88:[0,.68333,0,0,.75],89:[0,.68333,.025,0,.75],90:[0,.68333,0,0,.61111],91:[.25,.75,0,0,.27778],92:[.25,.75,0,0,.5],93:[.25,.75,0,0,.27778],94:[0,.69444,0,0,.5],95:[.31,.12056,.02778,0,.5],97:[0,.43056,0,0,.5],98:[0,.69444,0,0,.55556],99:[0,.43056,0,0,.44445],100:[0,.69444,0,0,.55556],101:[0,.43056,0,0,.44445],102:[0,.69444,.07778,0,.30556],103:[.19444,.43056,.01389,0,.5],104:[0,.69444,0,0,.55556],105:[0,.66786,0,0,.27778],106:[.19444,.66786,0,0,.30556],107:[0,.69444,0,0,.52778],108:[0,.69444,0,0,.27778],109:[0,.43056,0,0,.83334],110:[0,.43056,0,0,.55556],111:[0,.43056,0,0,.5],112:[.19444,.43056,0,0,.55556],113:[.19444,.43056,0,0,.52778],114:[0,.43056,0,0,.39167],115:[0,.43056,0,0,.39445],116:[0,.61508,0,0,.38889],117:[0,.43056,0,0,.55556],118:[0,.43056,.01389,0,.52778],119:[0,.43056,.01389,0,.72222],120:[0,.43056,0,0,.52778],121:[.19444,.43056,.01389,0,.52778],122:[0,.43056,0,0,.44445],123:[.25,.75,0,0,.5],124:[.25,.75,0,0,.27778],125:[.25,.75,0,0,.5],126:[.35,.31786,0,0,.5],160:[0,0,0,0,.25],163:[0,.69444,0,0,.76909],167:[.19444,.69444,0,0,.44445],168:[0,.66786,0,0,.5],172:[0,.43056,0,0,.66667],176:[0,.69444,0,0,.75],177:[.08333,.58333,0,0,.77778],182:[.19444,.69444,0,0,.61111],184:[.17014,0,0,0,.44445],198:[0,.68333,0,0,.90278],215:[.08333,.58333,0,0,.77778],216:[.04861,.73194,0,0,.77778],223:[0,.69444,0,0,.5],230:[0,.43056,0,0,.72222],247:[.08333,.58333,0,0,.77778],248:[.09722,.52778,0,0,.5],305:[0,.43056,0,0,.27778],338:[0,.68333,0,0,1.01389],339:[0,.43056,0,0,.77778],567:[.19444,.43056,0,0,.30556],710:[0,.69444,0,0,.5],711:[0,.62847,0,0,.5],713:[0,.56778,0,0,.5],714:[0,.69444,0,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,0,0,.5],729:[0,.66786,0,0,.27778],730:[0,.69444,0,0,.75],732:[0,.66786,0,0,.5],733:[0,.69444,0,0,.5],915:[0,.68333,0,0,.625],916:[0,.68333,0,0,.83334],920:[0,.68333,0,0,.77778],923:[0,.68333,0,0,.69445],926:[0,.68333,0,0,.66667],928:[0,.68333,0,0,.75],931:[0,.68333,0,0,.72222],933:[0,.68333,0,0,.77778],934:[0,.68333,0,0,.72222],936:[0,.68333,0,0,.77778],937:[0,.68333,0,0,.72222],8211:[0,.43056,.02778,0,.5],8212:[0,.43056,.02778,0,1],8216:[0,.69444,0,0,.27778],8217:[0,.69444,0,0,.27778],8220:[0,.69444,0,0,.5],8221:[0,.69444,0,0,.5],8224:[.19444,.69444,0,0,.44445],8225:[.19444,.69444,0,0,.44445],8230:[0,.123,0,0,1.172],8242:[0,.55556,0,0,.275],8407:[0,.71444,.15382,0,.5],8463:[0,.68889,0,0,.54028],8465:[0,.69444,0,0,.72222],8467:[0,.69444,0,.11111,.41667],8472:[.19444,.43056,0,.11111,.63646],8476:[0,.69444,0,0,.72222],8501:[0,.69444,0,0,.61111],8592:[-.13313,.36687,0,0,1],8593:[.19444,.69444,0,0,.5],8594:[-.13313,.36687,0,0,1],8595:[.19444,.69444,0,0,.5],8596:[-.13313,.36687,0,0,1],8597:[.25,.75,0,0,.5],8598:[.19444,.69444,0,0,1],8599:[.19444,.69444,0,0,1],8600:[.19444,.69444,0,0,1],8601:[.19444,.69444,0,0,1],8614:[.011,.511,0,0,1],8617:[.011,.511,0,0,1.126],8618:[.011,.511,0,0,1.126],8636:[-.13313,.36687,0,0,1],8637:[-.13313,.36687,0,0,1],8640:[-.13313,.36687,0,0,1],8641:[-.13313,.36687,0,0,1],8652:[.011,.671,0,0,1],8656:[-.13313,.36687,0,0,1],8657:[.19444,.69444,0,0,.61111],8658:[-.13313,.36687,0,0,1],8659:[.19444,.69444,0,0,.61111],8660:[-.13313,.36687,0,0,1],8661:[.25,.75,0,0,.61111],8704:[0,.69444,0,0,.55556],8706:[0,.69444,.05556,.08334,.5309],8707:[0,.69444,0,0,.55556],8709:[.05556,.75,0,0,.5],8711:[0,.68333,0,0,.83334],8712:[.0391,.5391,0,0,.66667],8715:[.0391,.5391,0,0,.66667],8722:[.08333,.58333,0,0,.77778],8723:[.08333,.58333,0,0,.77778],8725:[.25,.75,0,0,.5],8726:[.25,.75,0,0,.5],8727:[-.03472,.46528,0,0,.5],8728:[-.05555,.44445,0,0,.5],8729:[-.05555,.44445,0,0,.5],8730:[.2,.8,0,0,.83334],8733:[0,.43056,0,0,.77778],8734:[0,.43056,0,0,1],8736:[0,.69224,0,0,.72222],8739:[.25,.75,0,0,.27778],8741:[.25,.75,0,0,.5],8743:[0,.55556,0,0,.66667],8744:[0,.55556,0,0,.66667],8745:[0,.55556,0,0,.66667],8746:[0,.55556,0,0,.66667],8747:[.19444,.69444,.11111,0,.41667],8764:[-.13313,.36687,0,0,.77778],8768:[.19444,.69444,0,0,.27778],8771:[-.03625,.46375,0,0,.77778],8773:[-.022,.589,0,0,.778],8776:[-.01688,.48312,0,0,.77778],8781:[-.03625,.46375,0,0,.77778],8784:[-.133,.673,0,0,.778],8801:[-.03625,.46375,0,0,.77778],8804:[.13597,.63597,0,0,.77778],8805:[.13597,.63597,0,0,.77778],8810:[.0391,.5391,0,0,1],8811:[.0391,.5391,0,0,1],8826:[.0391,.5391,0,0,.77778],8827:[.0391,.5391,0,0,.77778],8834:[.0391,.5391,0,0,.77778],8835:[.0391,.5391,0,0,.77778],8838:[.13597,.63597,0,0,.77778],8839:[.13597,.63597,0,0,.77778],8846:[0,.55556,0,0,.66667],8849:[.13597,.63597,0,0,.77778],8850:[.13597,.63597,0,0,.77778],8851:[0,.55556,0,0,.66667],8852:[0,.55556,0,0,.66667],8853:[.08333,.58333,0,0,.77778],8854:[.08333,.58333,0,0,.77778],8855:[.08333,.58333,0,0,.77778],8856:[.08333,.58333,0,0,.77778],8857:[.08333,.58333,0,0,.77778],8866:[0,.69444,0,0,.61111],8867:[0,.69444,0,0,.61111],8868:[0,.69444,0,0,.77778],8869:[0,.69444,0,0,.77778],8872:[.249,.75,0,0,.867],8900:[-.05555,.44445,0,0,.5],8901:[-.05555,.44445,0,0,.27778],8902:[-.03472,.46528,0,0,.5],8904:[.005,.505,0,0,.9],8942:[.03,.903,0,0,.278],8943:[-.19,.313,0,0,1.172],8945:[-.1,.823,0,0,1.282],8968:[.25,.75,0,0,.44445],8969:[.25,.75,0,0,.44445],8970:[.25,.75,0,0,.44445],8971:[.25,.75,0,0,.44445],8994:[-.14236,.35764,0,0,1],8995:[-.14236,.35764,0,0,1],9136:[.244,.744,0,0,.412],9137:[.244,.745,0,0,.412],9651:[.19444,.69444,0,0,.88889],9657:[-.03472,.46528,0,0,.5],9661:[.19444,.69444,0,0,.88889],9667:[-.03472,.46528,0,0,.5],9711:[.19444,.69444,0,0,1],9824:[.12963,.69444,0,0,.77778],9825:[.12963,.69444,0,0,.77778],9826:[.12963,.69444,0,0,.77778],9827:[.12963,.69444,0,0,.77778],9837:[0,.75,0,0,.38889],9838:[.19444,.69444,0,0,.38889],9839:[.19444,.69444,0,0,.38889],10216:[.25,.75,0,0,.38889],10217:[.25,.75,0,0,.38889],10222:[.244,.744,0,0,.412],10223:[.244,.745,0,0,.412],10229:[.011,.511,0,0,1.609],10230:[.011,.511,0,0,1.638],10231:[.011,.511,0,0,1.859],10232:[.024,.525,0,0,1.609],10233:[.024,.525,0,0,1.638],10234:[.024,.525,0,0,1.858],10236:[.011,.511,0,0,1.638],10815:[0,.68333,0,0,.75],10927:[.13597,.63597,0,0,.77778],10928:[.13597,.63597,0,0,.77778],57376:[.19444,.69444,0,0,0]},"Math-BoldItalic":{32:[0,0,0,0,.25],48:[0,.44444,0,0,.575],49:[0,.44444,0,0,.575],50:[0,.44444,0,0,.575],51:[.19444,.44444,0,0,.575],52:[.19444,.44444,0,0,.575],53:[.19444,.44444,0,0,.575],54:[0,.64444,0,0,.575],55:[.19444,.44444,0,0,.575],56:[0,.64444,0,0,.575],57:[.19444,.44444,0,0,.575],65:[0,.68611,0,0,.86944],66:[0,.68611,.04835,0,.8664],67:[0,.68611,.06979,0,.81694],68:[0,.68611,.03194,0,.93812],69:[0,.68611,.05451,0,.81007],70:[0,.68611,.15972,0,.68889],71:[0,.68611,0,0,.88673],72:[0,.68611,.08229,0,.98229],73:[0,.68611,.07778,0,.51111],74:[0,.68611,.10069,0,.63125],75:[0,.68611,.06979,0,.97118],76:[0,.68611,0,0,.75555],77:[0,.68611,.11424,0,1.14201],78:[0,.68611,.11424,0,.95034],79:[0,.68611,.03194,0,.83666],80:[0,.68611,.15972,0,.72309],81:[.19444,.68611,0,0,.86861],82:[0,.68611,.00421,0,.87235],83:[0,.68611,.05382,0,.69271],84:[0,.68611,.15972,0,.63663],85:[0,.68611,.11424,0,.80027],86:[0,.68611,.25555,0,.67778],87:[0,.68611,.15972,0,1.09305],88:[0,.68611,.07778,0,.94722],89:[0,.68611,.25555,0,.67458],90:[0,.68611,.06979,0,.77257],97:[0,.44444,0,0,.63287],98:[0,.69444,0,0,.52083],99:[0,.44444,0,0,.51342],100:[0,.69444,0,0,.60972],101:[0,.44444,0,0,.55361],102:[.19444,.69444,.11042,0,.56806],103:[.19444,.44444,.03704,0,.5449],104:[0,.69444,0,0,.66759],105:[0,.69326,0,0,.4048],106:[.19444,.69326,.0622,0,.47083],107:[0,.69444,.01852,0,.6037],108:[0,.69444,.0088,0,.34815],109:[0,.44444,0,0,1.0324],110:[0,.44444,0,0,.71296],111:[0,.44444,0,0,.58472],112:[.19444,.44444,0,0,.60092],113:[.19444,.44444,.03704,0,.54213],114:[0,.44444,.03194,0,.5287],115:[0,.44444,0,0,.53125],116:[0,.63492,0,0,.41528],117:[0,.44444,0,0,.68102],118:[0,.44444,.03704,0,.56666],119:[0,.44444,.02778,0,.83148],120:[0,.44444,0,0,.65903],121:[.19444,.44444,.03704,0,.59028],122:[0,.44444,.04213,0,.55509],160:[0,0,0,0,.25],915:[0,.68611,.15972,0,.65694],916:[0,.68611,0,0,.95833],920:[0,.68611,.03194,0,.86722],923:[0,.68611,0,0,.80555],926:[0,.68611,.07458,0,.84125],928:[0,.68611,.08229,0,.98229],931:[0,.68611,.05451,0,.88507],933:[0,.68611,.15972,0,.67083],934:[0,.68611,0,0,.76666],936:[0,.68611,.11653,0,.71402],937:[0,.68611,.04835,0,.8789],945:[0,.44444,0,0,.76064],946:[.19444,.69444,.03403,0,.65972],947:[.19444,.44444,.06389,0,.59003],948:[0,.69444,.03819,0,.52222],949:[0,.44444,0,0,.52882],950:[.19444,.69444,.06215,0,.50833],951:[.19444,.44444,.03704,0,.6],952:[0,.69444,.03194,0,.5618],953:[0,.44444,0,0,.41204],954:[0,.44444,0,0,.66759],955:[0,.69444,0,0,.67083],956:[.19444,.44444,0,0,.70787],957:[0,.44444,.06898,0,.57685],958:[.19444,.69444,.03021,0,.50833],959:[0,.44444,0,0,.58472],960:[0,.44444,.03704,0,.68241],961:[.19444,.44444,0,0,.6118],962:[.09722,.44444,.07917,0,.42361],963:[0,.44444,.03704,0,.68588],964:[0,.44444,.13472,0,.52083],965:[0,.44444,.03704,0,.63055],966:[.19444,.44444,0,0,.74722],967:[.19444,.44444,0,0,.71805],968:[.19444,.69444,.03704,0,.75833],969:[0,.44444,.03704,0,.71782],977:[0,.69444,0,0,.69155],981:[.19444,.69444,0,0,.7125],982:[0,.44444,.03194,0,.975],1009:[.19444,.44444,0,0,.6118],1013:[0,.44444,0,0,.48333],57649:[0,.44444,0,0,.39352],57911:[.19444,.44444,0,0,.43889]},"Math-Italic":{32:[0,0,0,0,.25],48:[0,.43056,0,0,.5],49:[0,.43056,0,0,.5],50:[0,.43056,0,0,.5],51:[.19444,.43056,0,0,.5],52:[.19444,.43056,0,0,.5],53:[.19444,.43056,0,0,.5],54:[0,.64444,0,0,.5],55:[.19444,.43056,0,0,.5],56:[0,.64444,0,0,.5],57:[.19444,.43056,0,0,.5],65:[0,.68333,0,.13889,.75],66:[0,.68333,.05017,.08334,.75851],67:[0,.68333,.07153,.08334,.71472],68:[0,.68333,.02778,.05556,.82792],69:[0,.68333,.05764,.08334,.7382],70:[0,.68333,.13889,.08334,.64306],71:[0,.68333,0,.08334,.78625],72:[0,.68333,.08125,.05556,.83125],73:[0,.68333,.07847,.11111,.43958],74:[0,.68333,.09618,.16667,.55451],75:[0,.68333,.07153,.05556,.84931],76:[0,.68333,0,.02778,.68056],77:[0,.68333,.10903,.08334,.97014],78:[0,.68333,.10903,.08334,.80347],79:[0,.68333,.02778,.08334,.76278],80:[0,.68333,.13889,.08334,.64201],81:[.19444,.68333,0,.08334,.79056],82:[0,.68333,.00773,.08334,.75929],83:[0,.68333,.05764,.08334,.6132],84:[0,.68333,.13889,.08334,.58438],85:[0,.68333,.10903,.02778,.68278],86:[0,.68333,.22222,0,.58333],87:[0,.68333,.13889,0,.94445],88:[0,.68333,.07847,.08334,.82847],89:[0,.68333,.22222,0,.58056],90:[0,.68333,.07153,.08334,.68264],97:[0,.43056,0,0,.52859],98:[0,.69444,0,0,.42917],99:[0,.43056,0,.05556,.43276],100:[0,.69444,0,.16667,.52049],101:[0,.43056,0,.05556,.46563],102:[.19444,.69444,.10764,.16667,.48959],103:[.19444,.43056,.03588,.02778,.47697],104:[0,.69444,0,0,.57616],105:[0,.65952,0,0,.34451],106:[.19444,.65952,.05724,0,.41181],107:[0,.69444,.03148,0,.5206],108:[0,.69444,.01968,.08334,.29838],109:[0,.43056,0,0,.87801],110:[0,.43056,0,0,.60023],111:[0,.43056,0,.05556,.48472],112:[.19444,.43056,0,.08334,.50313],113:[.19444,.43056,.03588,.08334,.44641],114:[0,.43056,.02778,.05556,.45116],115:[0,.43056,0,.05556,.46875],116:[0,.61508,0,.08334,.36111],117:[0,.43056,0,.02778,.57246],118:[0,.43056,.03588,.02778,.48472],119:[0,.43056,.02691,.08334,.71592],120:[0,.43056,0,.02778,.57153],121:[.19444,.43056,.03588,.05556,.49028],122:[0,.43056,.04398,.05556,.46505],160:[0,0,0,0,.25],915:[0,.68333,.13889,.08334,.61528],916:[0,.68333,0,.16667,.83334],920:[0,.68333,.02778,.08334,.76278],923:[0,.68333,0,.16667,.69445],926:[0,.68333,.07569,.08334,.74236],928:[0,.68333,.08125,.05556,.83125],931:[0,.68333,.05764,.08334,.77986],933:[0,.68333,.13889,.05556,.58333],934:[0,.68333,0,.08334,.66667],936:[0,.68333,.11,.05556,.61222],937:[0,.68333,.05017,.08334,.7724],945:[0,.43056,.0037,.02778,.6397],946:[.19444,.69444,.05278,.08334,.56563],947:[.19444,.43056,.05556,0,.51773],948:[0,.69444,.03785,.05556,.44444],949:[0,.43056,0,.08334,.46632],950:[.19444,.69444,.07378,.08334,.4375],951:[.19444,.43056,.03588,.05556,.49653],952:[0,.69444,.02778,.08334,.46944],953:[0,.43056,0,.05556,.35394],954:[0,.43056,0,0,.57616],955:[0,.69444,0,0,.58334],956:[.19444,.43056,0,.02778,.60255],957:[0,.43056,.06366,.02778,.49398],958:[.19444,.69444,.04601,.11111,.4375],959:[0,.43056,0,.05556,.48472],960:[0,.43056,.03588,0,.57003],961:[.19444,.43056,0,.08334,.51702],962:[.09722,.43056,.07986,.08334,.36285],963:[0,.43056,.03588,0,.57141],964:[0,.43056,.1132,.02778,.43715],965:[0,.43056,.03588,.02778,.54028],966:[.19444,.43056,0,.08334,.65417],967:[.19444,.43056,0,.05556,.62569],968:[.19444,.69444,.03588,.11111,.65139],969:[0,.43056,.03588,0,.62245],977:[0,.69444,0,.08334,.59144],981:[.19444,.69444,0,.08334,.59583],982:[0,.43056,.02778,0,.82813],1009:[.19444,.43056,0,.08334,.51702],1013:[0,.43056,0,.05556,.4059],57649:[0,.43056,0,.02778,.32246],57911:[.19444,.43056,0,.08334,.38403]},"SansSerif-Bold":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.36667],34:[0,.69444,0,0,.55834],35:[.19444,.69444,0,0,.91667],36:[.05556,.75,0,0,.55],37:[.05556,.75,0,0,1.02912],38:[0,.69444,0,0,.83056],39:[0,.69444,0,0,.30556],40:[.25,.75,0,0,.42778],41:[.25,.75,0,0,.42778],42:[0,.75,0,0,.55],43:[.11667,.61667,0,0,.85556],44:[.10556,.13056,0,0,.30556],45:[0,.45833,0,0,.36667],46:[0,.13056,0,0,.30556],47:[.25,.75,0,0,.55],48:[0,.69444,0,0,.55],49:[0,.69444,0,0,.55],50:[0,.69444,0,0,.55],51:[0,.69444,0,0,.55],52:[0,.69444,0,0,.55],53:[0,.69444,0,0,.55],54:[0,.69444,0,0,.55],55:[0,.69444,0,0,.55],56:[0,.69444,0,0,.55],57:[0,.69444,0,0,.55],58:[0,.45833,0,0,.30556],59:[.10556,.45833,0,0,.30556],61:[-.09375,.40625,0,0,.85556],63:[0,.69444,0,0,.51945],64:[0,.69444,0,0,.73334],65:[0,.69444,0,0,.73334],66:[0,.69444,0,0,.73334],67:[0,.69444,0,0,.70278],68:[0,.69444,0,0,.79445],69:[0,.69444,0,0,.64167],70:[0,.69444,0,0,.61111],71:[0,.69444,0,0,.73334],72:[0,.69444,0,0,.79445],73:[0,.69444,0,0,.33056],74:[0,.69444,0,0,.51945],75:[0,.69444,0,0,.76389],76:[0,.69444,0,0,.58056],77:[0,.69444,0,0,.97778],78:[0,.69444,0,0,.79445],79:[0,.69444,0,0,.79445],80:[0,.69444,0,0,.70278],81:[.10556,.69444,0,0,.79445],82:[0,.69444,0,0,.70278],83:[0,.69444,0,0,.61111],84:[0,.69444,0,0,.73334],85:[0,.69444,0,0,.76389],86:[0,.69444,.01528,0,.73334],87:[0,.69444,.01528,0,1.03889],88:[0,.69444,0,0,.73334],89:[0,.69444,.0275,0,.73334],90:[0,.69444,0,0,.67223],91:[.25,.75,0,0,.34306],93:[.25,.75,0,0,.34306],94:[0,.69444,0,0,.55],95:[.35,.10833,.03056,0,.55],97:[0,.45833,0,0,.525],98:[0,.69444,0,0,.56111],99:[0,.45833,0,0,.48889],100:[0,.69444,0,0,.56111],101:[0,.45833,0,0,.51111],102:[0,.69444,.07639,0,.33611],103:[.19444,.45833,.01528,0,.55],104:[0,.69444,0,0,.56111],105:[0,.69444,0,0,.25556],106:[.19444,.69444,0,0,.28611],107:[0,.69444,0,0,.53056],108:[0,.69444,0,0,.25556],109:[0,.45833,0,0,.86667],110:[0,.45833,0,0,.56111],111:[0,.45833,0,0,.55],112:[.19444,.45833,0,0,.56111],113:[.19444,.45833,0,0,.56111],114:[0,.45833,.01528,0,.37222],115:[0,.45833,0,0,.42167],116:[0,.58929,0,0,.40417],117:[0,.45833,0,0,.56111],118:[0,.45833,.01528,0,.5],119:[0,.45833,.01528,0,.74445],120:[0,.45833,0,0,.5],121:[.19444,.45833,.01528,0,.5],122:[0,.45833,0,0,.47639],126:[.35,.34444,0,0,.55],160:[0,0,0,0,.25],168:[0,.69444,0,0,.55],176:[0,.69444,0,0,.73334],180:[0,.69444,0,0,.55],184:[.17014,0,0,0,.48889],305:[0,.45833,0,0,.25556],567:[.19444,.45833,0,0,.28611],710:[0,.69444,0,0,.55],711:[0,.63542,0,0,.55],713:[0,.63778,0,0,.55],728:[0,.69444,0,0,.55],729:[0,.69444,0,0,.30556],730:[0,.69444,0,0,.73334],732:[0,.69444,0,0,.55],733:[0,.69444,0,0,.55],915:[0,.69444,0,0,.58056],916:[0,.69444,0,0,.91667],920:[0,.69444,0,0,.85556],923:[0,.69444,0,0,.67223],926:[0,.69444,0,0,.73334],928:[0,.69444,0,0,.79445],931:[0,.69444,0,0,.79445],933:[0,.69444,0,0,.85556],934:[0,.69444,0,0,.79445],936:[0,.69444,0,0,.85556],937:[0,.69444,0,0,.79445],8211:[0,.45833,.03056,0,.55],8212:[0,.45833,.03056,0,1.10001],8216:[0,.69444,0,0,.30556],8217:[0,.69444,0,0,.30556],8220:[0,.69444,0,0,.55834],8221:[0,.69444,0,0,.55834]},"SansSerif-Italic":{32:[0,0,0,0,.25],33:[0,.69444,.05733,0,.31945],34:[0,.69444,.00316,0,.5],35:[.19444,.69444,.05087,0,.83334],36:[.05556,.75,.11156,0,.5],37:[.05556,.75,.03126,0,.83334],38:[0,.69444,.03058,0,.75834],39:[0,.69444,.07816,0,.27778],40:[.25,.75,.13164,0,.38889],41:[.25,.75,.02536,0,.38889],42:[0,.75,.11775,0,.5],43:[.08333,.58333,.02536,0,.77778],44:[.125,.08333,0,0,.27778],45:[0,.44444,.01946,0,.33333],46:[0,.08333,0,0,.27778],47:[.25,.75,.13164,0,.5],48:[0,.65556,.11156,0,.5],49:[0,.65556,.11156,0,.5],50:[0,.65556,.11156,0,.5],51:[0,.65556,.11156,0,.5],52:[0,.65556,.11156,0,.5],53:[0,.65556,.11156,0,.5],54:[0,.65556,.11156,0,.5],55:[0,.65556,.11156,0,.5],56:[0,.65556,.11156,0,.5],57:[0,.65556,.11156,0,.5],58:[0,.44444,.02502,0,.27778],59:[.125,.44444,.02502,0,.27778],61:[-.13,.37,.05087,0,.77778],63:[0,.69444,.11809,0,.47222],64:[0,.69444,.07555,0,.66667],65:[0,.69444,0,0,.66667],66:[0,.69444,.08293,0,.66667],67:[0,.69444,.11983,0,.63889],68:[0,.69444,.07555,0,.72223],69:[0,.69444,.11983,0,.59722],70:[0,.69444,.13372,0,.56945],71:[0,.69444,.11983,0,.66667],72:[0,.69444,.08094,0,.70834],73:[0,.69444,.13372,0,.27778],74:[0,.69444,.08094,0,.47222],75:[0,.69444,.11983,0,.69445],76:[0,.69444,0,0,.54167],77:[0,.69444,.08094,0,.875],78:[0,.69444,.08094,0,.70834],79:[0,.69444,.07555,0,.73611],80:[0,.69444,.08293,0,.63889],81:[.125,.69444,.07555,0,.73611],82:[0,.69444,.08293,0,.64584],83:[0,.69444,.09205,0,.55556],84:[0,.69444,.13372,0,.68056],85:[0,.69444,.08094,0,.6875],86:[0,.69444,.1615,0,.66667],87:[0,.69444,.1615,0,.94445],88:[0,.69444,.13372,0,.66667],89:[0,.69444,.17261,0,.66667],90:[0,.69444,.11983,0,.61111],91:[.25,.75,.15942,0,.28889],93:[.25,.75,.08719,0,.28889],94:[0,.69444,.0799,0,.5],95:[.35,.09444,.08616,0,.5],97:[0,.44444,.00981,0,.48056],98:[0,.69444,.03057,0,.51667],99:[0,.44444,.08336,0,.44445],100:[0,.69444,.09483,0,.51667],101:[0,.44444,.06778,0,.44445],102:[0,.69444,.21705,0,.30556],103:[.19444,.44444,.10836,0,.5],104:[0,.69444,.01778,0,.51667],105:[0,.67937,.09718,0,.23889],106:[.19444,.67937,.09162,0,.26667],107:[0,.69444,.08336,0,.48889],108:[0,.69444,.09483,0,.23889],109:[0,.44444,.01778,0,.79445],110:[0,.44444,.01778,0,.51667],111:[0,.44444,.06613,0,.5],112:[.19444,.44444,.0389,0,.51667],113:[.19444,.44444,.04169,0,.51667],114:[0,.44444,.10836,0,.34167],115:[0,.44444,.0778,0,.38333],116:[0,.57143,.07225,0,.36111],117:[0,.44444,.04169,0,.51667],118:[0,.44444,.10836,0,.46111],119:[0,.44444,.10836,0,.68334],120:[0,.44444,.09169,0,.46111],121:[.19444,.44444,.10836,0,.46111],122:[0,.44444,.08752,0,.43472],126:[.35,.32659,.08826,0,.5],160:[0,0,0,0,.25],168:[0,.67937,.06385,0,.5],176:[0,.69444,0,0,.73752],184:[.17014,0,0,0,.44445],305:[0,.44444,.04169,0,.23889],567:[.19444,.44444,.04169,0,.26667],710:[0,.69444,.0799,0,.5],711:[0,.63194,.08432,0,.5],713:[0,.60889,.08776,0,.5],714:[0,.69444,.09205,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,.09483,0,.5],729:[0,.67937,.07774,0,.27778],730:[0,.69444,0,0,.73752],732:[0,.67659,.08826,0,.5],733:[0,.69444,.09205,0,.5],915:[0,.69444,.13372,0,.54167],916:[0,.69444,0,0,.83334],920:[0,.69444,.07555,0,.77778],923:[0,.69444,0,0,.61111],926:[0,.69444,.12816,0,.66667],928:[0,.69444,.08094,0,.70834],931:[0,.69444,.11983,0,.72222],933:[0,.69444,.09031,0,.77778],934:[0,.69444,.04603,0,.72222],936:[0,.69444,.09031,0,.77778],937:[0,.69444,.08293,0,.72222],8211:[0,.44444,.08616,0,.5],8212:[0,.44444,.08616,0,1],8216:[0,.69444,.07816,0,.27778],8217:[0,.69444,.07816,0,.27778],8220:[0,.69444,.14205,0,.5],8221:[0,.69444,.00316,0,.5]},"SansSerif-Regular":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.31945],34:[0,.69444,0,0,.5],35:[.19444,.69444,0,0,.83334],36:[.05556,.75,0,0,.5],37:[.05556,.75,0,0,.83334],38:[0,.69444,0,0,.75834],39:[0,.69444,0,0,.27778],40:[.25,.75,0,0,.38889],41:[.25,.75,0,0,.38889],42:[0,.75,0,0,.5],43:[.08333,.58333,0,0,.77778],44:[.125,.08333,0,0,.27778],45:[0,.44444,0,0,.33333],46:[0,.08333,0,0,.27778],47:[.25,.75,0,0,.5],48:[0,.65556,0,0,.5],49:[0,.65556,0,0,.5],50:[0,.65556,0,0,.5],51:[0,.65556,0,0,.5],52:[0,.65556,0,0,.5],53:[0,.65556,0,0,.5],54:[0,.65556,0,0,.5],55:[0,.65556,0,0,.5],56:[0,.65556,0,0,.5],57:[0,.65556,0,0,.5],58:[0,.44444,0,0,.27778],59:[.125,.44444,0,0,.27778],61:[-.13,.37,0,0,.77778],63:[0,.69444,0,0,.47222],64:[0,.69444,0,0,.66667],65:[0,.69444,0,0,.66667],66:[0,.69444,0,0,.66667],67:[0,.69444,0,0,.63889],68:[0,.69444,0,0,.72223],69:[0,.69444,0,0,.59722],70:[0,.69444,0,0,.56945],71:[0,.69444,0,0,.66667],72:[0,.69444,0,0,.70834],73:[0,.69444,0,0,.27778],74:[0,.69444,0,0,.47222],75:[0,.69444,0,0,.69445],76:[0,.69444,0,0,.54167],77:[0,.69444,0,0,.875],78:[0,.69444,0,0,.70834],79:[0,.69444,0,0,.73611],80:[0,.69444,0,0,.63889],81:[.125,.69444,0,0,.73611],82:[0,.69444,0,0,.64584],83:[0,.69444,0,0,.55556],84:[0,.69444,0,0,.68056],85:[0,.69444,0,0,.6875],86:[0,.69444,.01389,0,.66667],87:[0,.69444,.01389,0,.94445],88:[0,.69444,0,0,.66667],89:[0,.69444,.025,0,.66667],90:[0,.69444,0,0,.61111],91:[.25,.75,0,0,.28889],93:[.25,.75,0,0,.28889],94:[0,.69444,0,0,.5],95:[.35,.09444,.02778,0,.5],97:[0,.44444,0,0,.48056],98:[0,.69444,0,0,.51667],99:[0,.44444,0,0,.44445],100:[0,.69444,0,0,.51667],101:[0,.44444,0,0,.44445],102:[0,.69444,.06944,0,.30556],103:[.19444,.44444,.01389,0,.5],104:[0,.69444,0,0,.51667],105:[0,.67937,0,0,.23889],106:[.19444,.67937,0,0,.26667],107:[0,.69444,0,0,.48889],108:[0,.69444,0,0,.23889],109:[0,.44444,0,0,.79445],110:[0,.44444,0,0,.51667],111:[0,.44444,0,0,.5],112:[.19444,.44444,0,0,.51667],113:[.19444,.44444,0,0,.51667],114:[0,.44444,.01389,0,.34167],115:[0,.44444,0,0,.38333],116:[0,.57143,0,0,.36111],117:[0,.44444,0,0,.51667],118:[0,.44444,.01389,0,.46111],119:[0,.44444,.01389,0,.68334],120:[0,.44444,0,0,.46111],121:[.19444,.44444,.01389,0,.46111],122:[0,.44444,0,0,.43472],126:[.35,.32659,0,0,.5],160:[0,0,0,0,.25],168:[0,.67937,0,0,.5],176:[0,.69444,0,0,.66667],184:[.17014,0,0,0,.44445],305:[0,.44444,0,0,.23889],567:[.19444,.44444,0,0,.26667],710:[0,.69444,0,0,.5],711:[0,.63194,0,0,.5],713:[0,.60889,0,0,.5],714:[0,.69444,0,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,0,0,.5],729:[0,.67937,0,0,.27778],730:[0,.69444,0,0,.66667],732:[0,.67659,0,0,.5],733:[0,.69444,0,0,.5],915:[0,.69444,0,0,.54167],916:[0,.69444,0,0,.83334],920:[0,.69444,0,0,.77778],923:[0,.69444,0,0,.61111],926:[0,.69444,0,0,.66667],928:[0,.69444,0,0,.70834],931:[0,.69444,0,0,.72222],933:[0,.69444,0,0,.77778],934:[0,.69444,0,0,.72222],936:[0,.69444,0,0,.77778],937:[0,.69444,0,0,.72222],8211:[0,.44444,.02778,0,.5],8212:[0,.44444,.02778,0,1],8216:[0,.69444,0,0,.27778],8217:[0,.69444,0,0,.27778],8220:[0,.69444,0,0,.5],8221:[0,.69444,0,0,.5]},"Script-Regular":{32:[0,0,0,0,.25],65:[0,.7,.22925,0,.80253],66:[0,.7,.04087,0,.90757],67:[0,.7,.1689,0,.66619],68:[0,.7,.09371,0,.77443],69:[0,.7,.18583,0,.56162],70:[0,.7,.13634,0,.89544],71:[0,.7,.17322,0,.60961],72:[0,.7,.29694,0,.96919],73:[0,.7,.19189,0,.80907],74:[.27778,.7,.19189,0,1.05159],75:[0,.7,.31259,0,.91364],76:[0,.7,.19189,0,.87373],77:[0,.7,.15981,0,1.08031],78:[0,.7,.3525,0,.9015],79:[0,.7,.08078,0,.73787],80:[0,.7,.08078,0,1.01262],81:[0,.7,.03305,0,.88282],82:[0,.7,.06259,0,.85],83:[0,.7,.19189,0,.86767],84:[0,.7,.29087,0,.74697],85:[0,.7,.25815,0,.79996],86:[0,.7,.27523,0,.62204],87:[0,.7,.27523,0,.80532],88:[0,.7,.26006,0,.94445],89:[0,.7,.2939,0,.70961],90:[0,.7,.24037,0,.8212],160:[0,0,0,0,.25]},"Size1-Regular":{32:[0,0,0,0,.25],40:[.35001,.85,0,0,.45834],41:[.35001,.85,0,0,.45834],47:[.35001,.85,0,0,.57778],91:[.35001,.85,0,0,.41667],92:[.35001,.85,0,0,.57778],93:[.35001,.85,0,0,.41667],123:[.35001,.85,0,0,.58334],125:[.35001,.85,0,0,.58334],160:[0,0,0,0,.25],710:[0,.72222,0,0,.55556],732:[0,.72222,0,0,.55556],770:[0,.72222,0,0,.55556],771:[0,.72222,0,0,.55556],8214:[-99e-5,.601,0,0,.77778],8593:[1e-5,.6,0,0,.66667],8595:[1e-5,.6,0,0,.66667],8657:[1e-5,.6,0,0,.77778],8659:[1e-5,.6,0,0,.77778],8719:[.25001,.75,0,0,.94445],8720:[.25001,.75,0,0,.94445],8721:[.25001,.75,0,0,1.05556],8730:[.35001,.85,0,0,1],8739:[-.00599,.606,0,0,.33333],8741:[-.00599,.606,0,0,.55556],8747:[.30612,.805,.19445,0,.47222],8748:[.306,.805,.19445,0,.47222],8749:[.306,.805,.19445,0,.47222],8750:[.30612,.805,.19445,0,.47222],8896:[.25001,.75,0,0,.83334],8897:[.25001,.75,0,0,.83334],8898:[.25001,.75,0,0,.83334],8899:[.25001,.75,0,0,.83334],8968:[.35001,.85,0,0,.47222],8969:[.35001,.85,0,0,.47222],8970:[.35001,.85,0,0,.47222],8971:[.35001,.85,0,0,.47222],9168:[-99e-5,.601,0,0,.66667],10216:[.35001,.85,0,0,.47222],10217:[.35001,.85,0,0,.47222],10752:[.25001,.75,0,0,1.11111],10753:[.25001,.75,0,0,1.11111],10754:[.25001,.75,0,0,1.11111],10756:[.25001,.75,0,0,.83334],10758:[.25001,.75,0,0,.83334]},"Size2-Regular":{32:[0,0,0,0,.25],40:[.65002,1.15,0,0,.59722],41:[.65002,1.15,0,0,.59722],47:[.65002,1.15,0,0,.81111],91:[.65002,1.15,0,0,.47222],92:[.65002,1.15,0,0,.81111],93:[.65002,1.15,0,0,.47222],123:[.65002,1.15,0,0,.66667],125:[.65002,1.15,0,0,.66667],160:[0,0,0,0,.25],710:[0,.75,0,0,1],732:[0,.75,0,0,1],770:[0,.75,0,0,1],771:[0,.75,0,0,1],8719:[.55001,1.05,0,0,1.27778],8720:[.55001,1.05,0,0,1.27778],8721:[.55001,1.05,0,0,1.44445],8730:[.65002,1.15,0,0,1],8747:[.86225,1.36,.44445,0,.55556],8748:[.862,1.36,.44445,0,.55556],8749:[.862,1.36,.44445,0,.55556],8750:[.86225,1.36,.44445,0,.55556],8896:[.55001,1.05,0,0,1.11111],8897:[.55001,1.05,0,0,1.11111],8898:[.55001,1.05,0,0,1.11111],8899:[.55001,1.05,0,0,1.11111],8968:[.65002,1.15,0,0,.52778],8969:[.65002,1.15,0,0,.52778],8970:[.65002,1.15,0,0,.52778],8971:[.65002,1.15,0,0,.52778],10216:[.65002,1.15,0,0,.61111],10217:[.65002,1.15,0,0,.61111],10752:[.55001,1.05,0,0,1.51112],10753:[.55001,1.05,0,0,1.51112],10754:[.55001,1.05,0,0,1.51112],10756:[.55001,1.05,0,0,1.11111],10758:[.55001,1.05,0,0,1.11111]},"Size3-Regular":{32:[0,0,0,0,.25],40:[.95003,1.45,0,0,.73611],41:[.95003,1.45,0,0,.73611],47:[.95003,1.45,0,0,1.04445],91:[.95003,1.45,0,0,.52778],92:[.95003,1.45,0,0,1.04445],93:[.95003,1.45,0,0,.52778],123:[.95003,1.45,0,0,.75],125:[.95003,1.45,0,0,.75],160:[0,0,0,0,.25],710:[0,.75,0,0,1.44445],732:[0,.75,0,0,1.44445],770:[0,.75,0,0,1.44445],771:[0,.75,0,0,1.44445],8730:[.95003,1.45,0,0,1],8968:[.95003,1.45,0,0,.58334],8969:[.95003,1.45,0,0,.58334],8970:[.95003,1.45,0,0,.58334],8971:[.95003,1.45,0,0,.58334],10216:[.95003,1.45,0,0,.75],10217:[.95003,1.45,0,0,.75]},"Size4-Regular":{32:[0,0,0,0,.25],40:[1.25003,1.75,0,0,.79167],41:[1.25003,1.75,0,0,.79167],47:[1.25003,1.75,0,0,1.27778],91:[1.25003,1.75,0,0,.58334],92:[1.25003,1.75,0,0,1.27778],93:[1.25003,1.75,0,0,.58334],123:[1.25003,1.75,0,0,.80556],125:[1.25003,1.75,0,0,.80556],160:[0,0,0,0,.25],710:[0,.825,0,0,1.8889],732:[0,.825,0,0,1.8889],770:[0,.825,0,0,1.8889],771:[0,.825,0,0,1.8889],8730:[1.25003,1.75,0,0,1],8968:[1.25003,1.75,0,0,.63889],8969:[1.25003,1.75,0,0,.63889],8970:[1.25003,1.75,0,0,.63889],8971:[1.25003,1.75,0,0,.63889],9115:[.64502,1.155,0,0,.875],9116:[1e-5,.6,0,0,.875],9117:[.64502,1.155,0,0,.875],9118:[.64502,1.155,0,0,.875],9119:[1e-5,.6,0,0,.875],9120:[.64502,1.155,0,0,.875],9121:[.64502,1.155,0,0,.66667],9122:[-99e-5,.601,0,0,.66667],9123:[.64502,1.155,0,0,.66667],9124:[.64502,1.155,0,0,.66667],9125:[-99e-5,.601,0,0,.66667],9126:[.64502,1.155,0,0,.66667],9127:[1e-5,.9,0,0,.88889],9128:[.65002,1.15,0,0,.88889],9129:[.90001,0,0,0,.88889],9130:[0,.3,0,0,.88889],9131:[1e-5,.9,0,0,.88889],9132:[.65002,1.15,0,0,.88889],9133:[.90001,0,0,0,.88889],9143:[.88502,.915,0,0,1.05556],10216:[1.25003,1.75,0,0,.80556],10217:[1.25003,1.75,0,0,.80556],57344:[-.00499,.605,0,0,1.05556],57345:[-.00499,.605,0,0,1.05556],57680:[0,.12,0,0,.45],57681:[0,.12,0,0,.45],57682:[0,.12,0,0,.45],57683:[0,.12,0,0,.45]},"Typewriter-Regular":{32:[0,0,0,0,.525],33:[0,.61111,0,0,.525],34:[0,.61111,0,0,.525],35:[0,.61111,0,0,.525],36:[.08333,.69444,0,0,.525],37:[.08333,.69444,0,0,.525],38:[0,.61111,0,0,.525],39:[0,.61111,0,0,.525],40:[.08333,.69444,0,0,.525],41:[.08333,.69444,0,0,.525],42:[0,.52083,0,0,.525],43:[-.08056,.53055,0,0,.525],44:[.13889,.125,0,0,.525],45:[-.08056,.53055,0,0,.525],46:[0,.125,0,0,.525],47:[.08333,.69444,0,0,.525],48:[0,.61111,0,0,.525],49:[0,.61111,0,0,.525],50:[0,.61111,0,0,.525],51:[0,.61111,0,0,.525],52:[0,.61111,0,0,.525],53:[0,.61111,0,0,.525],54:[0,.61111,0,0,.525],55:[0,.61111,0,0,.525],56:[0,.61111,0,0,.525],57:[0,.61111,0,0,.525],58:[0,.43056,0,0,.525],59:[.13889,.43056,0,0,.525],60:[-.05556,.55556,0,0,.525],61:[-.19549,.41562,0,0,.525],62:[-.05556,.55556,0,0,.525],63:[0,.61111,0,0,.525],64:[0,.61111,0,0,.525],65:[0,.61111,0,0,.525],66:[0,.61111,0,0,.525],67:[0,.61111,0,0,.525],68:[0,.61111,0,0,.525],69:[0,.61111,0,0,.525],70:[0,.61111,0,0,.525],71:[0,.61111,0,0,.525],72:[0,.61111,0,0,.525],73:[0,.61111,0,0,.525],74:[0,.61111,0,0,.525],75:[0,.61111,0,0,.525],76:[0,.61111,0,0,.525],77:[0,.61111,0,0,.525],78:[0,.61111,0,0,.525],79:[0,.61111,0,0,.525],80:[0,.61111,0,0,.525],81:[.13889,.61111,0,0,.525],82:[0,.61111,0,0,.525],83:[0,.61111,0,0,.525],84:[0,.61111,0,0,.525],85:[0,.61111,0,0,.525],86:[0,.61111,0,0,.525],87:[0,.61111,0,0,.525],88:[0,.61111,0,0,.525],89:[0,.61111,0,0,.525],90:[0,.61111,0,0,.525],91:[.08333,.69444,0,0,.525],92:[.08333,.69444,0,0,.525],93:[.08333,.69444,0,0,.525],94:[0,.61111,0,0,.525],95:[.09514,0,0,0,.525],96:[0,.61111,0,0,.525],97:[0,.43056,0,0,.525],98:[0,.61111,0,0,.525],99:[0,.43056,0,0,.525],100:[0,.61111,0,0,.525],101:[0,.43056,0,0,.525],102:[0,.61111,0,0,.525],103:[.22222,.43056,0,0,.525],104:[0,.61111,0,0,.525],105:[0,.61111,0,0,.525],106:[.22222,.61111,0,0,.525],107:[0,.61111,0,0,.525],108:[0,.61111,0,0,.525],109:[0,.43056,0,0,.525],110:[0,.43056,0,0,.525],111:[0,.43056,0,0,.525],112:[.22222,.43056,0,0,.525],113:[.22222,.43056,0,0,.525],114:[0,.43056,0,0,.525],115:[0,.43056,0,0,.525],116:[0,.55358,0,0,.525],117:[0,.43056,0,0,.525],118:[0,.43056,0,0,.525],119:[0,.43056,0,0,.525],120:[0,.43056,0,0,.525],121:[.22222,.43056,0,0,.525],122:[0,.43056,0,0,.525],123:[.08333,.69444,0,0,.525],124:[.08333,.69444,0,0,.525],125:[.08333,.69444,0,0,.525],126:[0,.61111,0,0,.525],127:[0,.61111,0,0,.525],160:[0,0,0,0,.525],176:[0,.61111,0,0,.525],184:[.19445,0,0,0,.525],305:[0,.43056,0,0,.525],567:[.22222,.43056,0,0,.525],711:[0,.56597,0,0,.525],713:[0,.56555,0,0,.525],714:[0,.61111,0,0,.525],715:[0,.61111,0,0,.525],728:[0,.61111,0,0,.525],730:[0,.61111,0,0,.525],770:[0,.61111,0,0,.525],771:[0,.61111,0,0,.525],776:[0,.61111,0,0,.525],915:[0,.61111,0,0,.525],916:[0,.61111,0,0,.525],920:[0,.61111,0,0,.525],923:[0,.61111,0,0,.525],926:[0,.61111,0,0,.525],928:[0,.61111,0,0,.525],931:[0,.61111,0,0,.525],933:[0,.61111,0,0,.525],934:[0,.61111,0,0,.525],936:[0,.61111,0,0,.525],937:[0,.61111,0,0,.525],8216:[0,.61111,0,0,.525],8217:[0,.61111,0,0,.525],8242:[0,.61111,0,0,.525],9251:[.11111,.21944,0,0,.525]}},C2={slant:[.25,.25,.25],space:[0,0,0],stretch:[0,0,0],shrink:[0,0,0],xHeight:[.431,.431,.431],quad:[1,1.171,1.472],extraSpace:[0,0,0],num1:[.677,.732,.925],num2:[.394,.384,.387],num3:[.444,.471,.504],denom1:[.686,.752,1.025],denom2:[.345,.344,.532],sup1:[.413,.503,.504],sup2:[.363,.431,.404],sup3:[.289,.286,.294],sub1:[.15,.143,.2],sub2:[.247,.286,.4],supDrop:[.386,.353,.494],subDrop:[.05,.071,.1],delim1:[2.39,1.7,1.98],delim2:[1.01,1.157,1.42],axisHeight:[.25,.25,.25],defaultRuleThickness:[.04,.049,.049],bigOpSpacing1:[.111,.111,.111],bigOpSpacing2:[.166,.166,.166],bigOpSpacing3:[.2,.2,.2],bigOpSpacing4:[.6,.611,.611],bigOpSpacing5:[.1,.143,.143],sqrtRuleThickness:[.04,.04,.04],ptPerEm:[10,10,10],doubleRuleSep:[.2,.2,.2],arrayRuleWidth:[.04,.04,.04],fboxsep:[.3,.3,.3],fboxrule:[.04,.04,.04]},rZ={Å:"A",Ð:"D",Þ:"o",å:"a",ð:"d",þ:"o",А:"A",Б:"B",В:"B",Г:"F",Д:"A",Е:"E",Ж:"K",З:"3",И:"N",Й:"N",К:"K",Л:"N",М:"M",Н:"H",О:"O",П:"N",Р:"P",С:"C",Т:"T",У:"y",Ф:"O",Х:"X",Ц:"U",Ч:"h",Ш:"W",Щ:"W",Ъ:"B",Ы:"X",Ь:"B",Э:"3",Ю:"X",Я:"R",а:"a",б:"b",в:"a",г:"r",д:"y",е:"e",ж:"m",з:"e",и:"n",й:"n",к:"n",л:"n",м:"m",н:"n",о:"o",п:"n",р:"p",с:"c",т:"o",у:"y",ф:"b",х:"x",ц:"n",ч:"n",ш:"w",щ:"w",ъ:"a",ы:"m",ь:"a",э:"e",ю:"m",я:"r"};function K7e(e,t){ql[e]=t}function sR(e,t,n){if(!ql[t])throw new Error("Font metrics not found for font: "+t+".");var r=e.charCodeAt(0),i=ql[t][r];if(!i&&e[0]in rZ&&(r=rZ[e[0]].charCodeAt(0),i=ql[t][r]),!i&&n==="text"&&cz(r)&&(i=ql[t][77]),i)return{depth:i[0],height:i[1],italic:i[2],skew:i[3],width:i[4]}}var OK={};function Q7e(e){var t;if(e>=5?t=0:e>=3?t=1:t=2,!OK[t]){var n=OK[t]={cssEmPerMu:C2.quad[t]/18};for(var r in C2)C2.hasOwnProperty(r)&&(n[r]=C2[r][t])}return OK[t]}var W7e=[[1,1,1],[2,1,1],[3,1,1],[4,2,1],[5,2,1],[6,3,1],[7,4,2],[8,6,3],[9,7,6],[10,8,7],[11,10,9]],iZ=[.5,.6,.7,.8,.9,1,1.2,1.44,1.728,2.074,2.488],aZ=function(t,n){return n.size<2?t:W7e[t-1][n.size-1]};class Vs{constructor(t){this.style=void 0,this.color=void 0,this.size=void 0,this.textSize=void 0,this.phantom=void 0,this.font=void 0,this.fontFamily=void 0,this.fontWeight=void 0,this.fontShape=void 0,this.sizeMultiplier=void 0,this.maxSize=void 0,this.minRuleThickness=void 0,this._fontMetrics=void 0,this.style=t.style,this.color=t.color,this.size=t.size||Vs.BASESIZE,this.textSize=t.textSize||this.size,this.phantom=!!t.phantom,this.font=t.font||"",this.fontFamily=t.fontFamily||"",this.fontWeight=t.fontWeight||"",this.fontShape=t.fontShape||"",this.sizeMultiplier=iZ[this.size-1],this.maxSize=t.maxSize,this.minRuleThickness=t.minRuleThickness,this._fontMetrics=void 0}extend(t){var n={style:this.style,size:this.size,textSize:this.textSize,color:this.color,phantom:this.phantom,font:this.font,fontFamily:this.fontFamily,fontWeight:this.fontWeight,fontShape:this.fontShape,maxSize:this.maxSize,minRuleThickness:this.minRuleThickness};for(var r in t)t.hasOwnProperty(r)&&(n[r]=t[r]);return new Vs(n)}havingStyle(t){return this.style===t?this:this.extend({style:t,size:aZ(this.textSize,t)})}havingCrampedStyle(){return this.havingStyle(this.style.cramp())}havingSize(t){return this.size===t&&this.textSize===t?this:this.extend({style:this.style.text(),size:t,textSize:t,sizeMultiplier:iZ[t-1]})}havingBaseStyle(t){t=t||this.style.text();var n=aZ(Vs.BASESIZE,t);return this.size===n&&this.textSize===Vs.BASESIZE&&this.style===t?this:this.extend({style:t,size:n})}havingBaseSizing(){var t;switch(this.style.id){case 4:case 5:t=3;break;case 6:case 7:t=1;break;default:t=6}return this.extend({style:this.style.text(),size:t})}withColor(t){return this.extend({color:t})}withPhantom(){return this.extend({phantom:!0})}withFont(t){return this.extend({font:t})}withTextFontFamily(t){return this.extend({fontFamily:t,font:""})}withTextFontWeight(t){return this.extend({fontWeight:t,font:""})}withTextFontShape(t){return this.extend({fontShape:t,font:""})}sizingClasses(t){return t.size!==this.size?["sizing","reset-size"+t.size,"size"+this.size]:[]}baseSizingClasses(){return this.size!==Vs.BASESIZE?["sizing","reset-size"+this.size,"size"+Vs.BASESIZE]:[]}fontMetrics(){return this._fontMetrics||(this._fontMetrics=Q7e(this.size)),this._fontMetrics}getColor(){return this.phantom?"transparent":this.color}}Vs.BASESIZE=6;var vF={pt:1,mm:7227/2540,cm:7227/254,in:72.27,bp:803/800,pc:12,dd:1238/1157,cc:14856/1157,nd:685/642,nc:1370/107,sp:1/65536,px:803/800},y7e={ex:!0,em:!0,mu:!0},dz=function(t){return typeof t!="string"&&(t=t.unit),t in vF||t in y7e||t==="ex"},br=function(t,n){var r;if(t.unit in vF)r=vF[t.unit]/n.fontMetrics().ptPerEm/n.sizeMultiplier;else if(t.unit==="mu")r=n.fontMetrics().cssEmPerMu;else{var i;if(n.style.isTight()?i=n.havingStyle(n.style.text()):i=n,t.unit==="ex")r=i.fontMetrics().xHeight;else if(t.unit==="em")r=i.fontMetrics().quad;else throw new $e("Invalid unit: '"+t.unit+"'");i!==n&&(r*=i.sizeMultiplier/n.sizeMultiplier)}return Math.min(t.number*r,n.maxSize)},at=function(t){return+t.toFixed(4)+"em"},Sc=function(t){return t.filter(n=>n).join(" ")},pz=function(t,n,r){if(this.classes=t||[],this.attributes={},this.height=0,this.depth=0,this.maxFontSize=0,this.style=r||{},n){n.style.isTight()&&this.classes.push("mtight");var i=n.getColor();i&&(this.style.color=i)}},gz=function(t){var n=document.createElement(t);n.className=Sc(this.classes);for(var r in this.style)this.style.hasOwnProperty(r)&&(n.style[r]=this.style[r]);for(var i in this.attributes)this.attributes.hasOwnProperty(i)&&n.setAttribute(i,this.attributes[i]);for(var a=0;a",n};class hm{constructor(t,n,r,i){this.children=void 0,this.attributes=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.width=void 0,this.maxFontSize=void 0,this.style=void 0,pz.call(this,t,r,i),this.children=n||[]}setAttribute(t,n){this.attributes[t]=n}hasClass(t){return Ht.contains(this.classes,t)}toNode(){return gz.call(this,"span")}toMarkup(){return hz.call(this,"span")}}class uR{constructor(t,n,r,i){this.children=void 0,this.attributes=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,pz.call(this,n,i),this.children=r||[],this.setAttribute("href",t)}setAttribute(t,n){this.attributes[t]=n}hasClass(t){return Ht.contains(this.classes,t)}toNode(){return gz.call(this,"a")}toMarkup(){return hz.call(this,"a")}}class F7e{constructor(t,n,r){this.src=void 0,this.alt=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,this.alt=n,this.src=t,this.classes=["mord"],this.style=r}hasClass(t){return Ht.contains(this.classes,t)}toNode(){var t=document.createElement("img");t.src=this.src,t.alt=this.alt,t.className="mord";for(var n in this.style)this.style.hasOwnProperty(n)&&(t.style[n]=this.style[n]);return t}toMarkup(){var t=''+Ht.escape(this.alt)+'0&&(n=document.createElement("span"),n.style.marginRight=at(this.italic)),this.classes.length>0&&(n=n||document.createElement("span"),n.className=Sc(this.classes));for(var r in this.style)this.style.hasOwnProperty(r)&&(n=n||document.createElement("span"),n.style[r]=this.style[r]);return n?(n.appendChild(t),n):t}toMarkup(){var t=!1,n="0&&(r+="margin-right:"+this.italic+"em;");for(var i in this.style)this.style.hasOwnProperty(i)&&(r+=Ht.hyphenate(i)+":"+this.style[i]+";");r&&(t=!0,n+=' style="'+Ht.escape(r)+'"');var a=Ht.escape(this.text);return t?(n+=">",n+=a,n+="",n):a}}class su{constructor(t,n){this.children=void 0,this.attributes=void 0,this.children=t||[],this.attributes=n||{}}toNode(){var t="http://www.w3.org/2000/svg",n=document.createElementNS(t,"svg");for(var r in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,r)&&n.setAttribute(r,this.attributes[r]);for(var i=0;i':''}}class KF{constructor(t){this.attributes=void 0,this.attributes=t||{}}toNode(){var t="http://www.w3.org/2000/svg",n=document.createElementNS(t,"line");for(var r in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,r)&&n.setAttribute(r,this.attributes[r]);return n}toMarkup(){var t=" but got "+String(e)+".")}var S7e={bin:1,close:1,inner:1,open:1,punct:1,rel:1},x7e={"accent-token":1,mathord:1,"op-token":1,spacing:1,textord:1},tr={math:{},text:{}};function R(e,t,n,r,i,a){tr[e][i]={font:t,group:n,replace:r},a&&r&&(tr[e][r]=tr[e][i])}var N="math",Te="text",M="main",ee="ams",Ar="accent-token",bt="bin",la="close",O1="inner",Mt="mathord",Ir="op-token",uo="open",Z3="punct",re="rel",Bu="spacing",pe="textord";R(N,M,re,"≡","\\equiv",!0);R(N,M,re,"≺","\\prec",!0);R(N,M,re,"≻","\\succ",!0);R(N,M,re,"∼","\\sim",!0);R(N,M,re,"⊥","\\perp");R(N,M,re,"⪯","\\preceq",!0);R(N,M,re,"⪰","\\succeq",!0);R(N,M,re,"≃","\\simeq",!0);R(N,M,re,"∣","\\mid",!0);R(N,M,re,"≪","\\ll",!0);R(N,M,re,"≫","\\gg",!0);R(N,M,re,"≍","\\asymp",!0);R(N,M,re,"∥","\\parallel");R(N,M,re,"⋈","\\bowtie",!0);R(N,M,re,"⌣","\\smile",!0);R(N,M,re,"⊑","\\sqsubseteq",!0);R(N,M,re,"⊒","\\sqsupseteq",!0);R(N,M,re,"≐","\\doteq",!0);R(N,M,re,"⌢","\\frown",!0);R(N,M,re,"∋","\\ni",!0);R(N,M,re,"∝","\\propto",!0);R(N,M,re,"⊢","\\vdash",!0);R(N,M,re,"⊣","\\dashv",!0);R(N,M,re,"∋","\\owns");R(N,M,Z3,".","\\ldotp");R(N,M,Z3,"⋅","\\cdotp");R(N,M,pe,"#","\\#");R(Te,M,pe,"#","\\#");R(N,M,pe,"&","\\&");R(Te,M,pe,"&","\\&");R(N,M,pe,"ℵ","\\aleph",!0);R(N,M,pe,"∀","\\forall",!0);R(N,M,pe,"ℏ","\\hbar",!0);R(N,M,pe,"∃","\\exists",!0);R(N,M,pe,"∇","\\nabla",!0);R(N,M,pe,"♭","\\flat",!0);R(N,M,pe,"ℓ","\\ell",!0);R(N,M,pe,"♮","\\natural",!0);R(N,M,pe,"♣","\\clubsuit",!0);R(N,M,pe,"℘","\\wp",!0);R(N,M,pe,"♯","\\sharp",!0);R(N,M,pe,"♢","\\diamondsuit",!0);R(N,M,pe,"ℜ","\\Re",!0);R(N,M,pe,"♡","\\heartsuit",!0);R(N,M,pe,"ℑ","\\Im",!0);R(N,M,pe,"♠","\\spadesuit",!0);R(N,M,pe,"§","\\S",!0);R(Te,M,pe,"§","\\S");R(N,M,pe,"¶","\\P",!0);R(Te,M,pe,"¶","\\P");R(N,M,pe,"†","\\dag");R(Te,M,pe,"†","\\dag");R(Te,M,pe,"†","\\textdagger");R(N,M,pe,"‡","\\ddag");R(Te,M,pe,"‡","\\ddag");R(Te,M,pe,"‡","\\textdaggerdbl");R(N,M,la,"⎱","\\rmoustache",!0);R(N,M,uo,"⎰","\\lmoustache",!0);R(N,M,la,"⟯","\\rgroup",!0);R(N,M,uo,"⟮","\\lgroup",!0);R(N,M,bt,"∓","\\mp",!0);R(N,M,bt,"⊖","\\ominus",!0);R(N,M,bt,"⊎","\\uplus",!0);R(N,M,bt,"⊓","\\sqcap",!0);R(N,M,bt,"∗","\\ast");R(N,M,bt,"⊔","\\sqcup",!0);R(N,M,bt,"◯","\\bigcirc",!0);R(N,M,bt,"∙","\\bullet",!0);R(N,M,bt,"‡","\\ddagger");R(N,M,bt,"≀","\\wr",!0);R(N,M,bt,"⨿","\\amalg");R(N,M,bt,"&","\\And");R(N,M,re,"⟵","\\longleftarrow",!0);R(N,M,re,"⇐","\\Leftarrow",!0);R(N,M,re,"⟸","\\Longleftarrow",!0);R(N,M,re,"⟶","\\longrightarrow",!0);R(N,M,re,"⇒","\\Rightarrow",!0);R(N,M,re,"⟹","\\Longrightarrow",!0);R(N,M,re,"↔","\\leftrightarrow",!0);R(N,M,re,"⟷","\\longleftrightarrow",!0);R(N,M,re,"⇔","\\Leftrightarrow",!0);R(N,M,re,"⟺","\\Longleftrightarrow",!0);R(N,M,re,"↦","\\mapsto",!0);R(N,M,re,"⟼","\\longmapsto",!0);R(N,M,re,"↗","\\nearrow",!0);R(N,M,re,"↩","\\hookleftarrow",!0);R(N,M,re,"↪","\\hookrightarrow",!0);R(N,M,re,"↘","\\searrow",!0);R(N,M,re,"↼","\\leftharpoonup",!0);R(N,M,re,"⇀","\\rightharpoonup",!0);R(N,M,re,"↙","\\swarrow",!0);R(N,M,re,"↽","\\leftharpoondown",!0);R(N,M,re,"⇁","\\rightharpoondown",!0);R(N,M,re,"↖","\\nwarrow",!0);R(N,M,re,"⇌","\\rightleftharpoons",!0);R(N,ee,re,"≮","\\nless",!0);R(N,ee,re,"","\\@nleqslant");R(N,ee,re,"","\\@nleqq");R(N,ee,re,"⪇","\\lneq",!0);R(N,ee,re,"≨","\\lneqq",!0);R(N,ee,re,"","\\@lvertneqq");R(N,ee,re,"⋦","\\lnsim",!0);R(N,ee,re,"⪉","\\lnapprox",!0);R(N,ee,re,"⊀","\\nprec",!0);R(N,ee,re,"⋠","\\npreceq",!0);R(N,ee,re,"⋨","\\precnsim",!0);R(N,ee,re,"⪹","\\precnapprox",!0);R(N,ee,re,"≁","\\nsim",!0);R(N,ee,re,"","\\@nshortmid");R(N,ee,re,"∤","\\nmid",!0);R(N,ee,re,"⊬","\\nvdash",!0);R(N,ee,re,"⊭","\\nvDash",!0);R(N,ee,re,"⋪","\\ntriangleleft");R(N,ee,re,"⋬","\\ntrianglelefteq",!0);R(N,ee,re,"⊊","\\subsetneq",!0);R(N,ee,re,"","\\@varsubsetneq");R(N,ee,re,"⫋","\\subsetneqq",!0);R(N,ee,re,"","\\@varsubsetneqq");R(N,ee,re,"≯","\\ngtr",!0);R(N,ee,re,"","\\@ngeqslant");R(N,ee,re,"","\\@ngeqq");R(N,ee,re,"⪈","\\gneq",!0);R(N,ee,re,"≩","\\gneqq",!0);R(N,ee,re,"","\\@gvertneqq");R(N,ee,re,"⋧","\\gnsim",!0);R(N,ee,re,"⪊","\\gnapprox",!0);R(N,ee,re,"⊁","\\nsucc",!0);R(N,ee,re,"⋡","\\nsucceq",!0);R(N,ee,re,"⋩","\\succnsim",!0);R(N,ee,re,"⪺","\\succnapprox",!0);R(N,ee,re,"≆","\\ncong",!0);R(N,ee,re,"","\\@nshortparallel");R(N,ee,re,"∦","\\nparallel",!0);R(N,ee,re,"⊯","\\nVDash",!0);R(N,ee,re,"⋫","\\ntriangleright");R(N,ee,re,"⋭","\\ntrianglerighteq",!0);R(N,ee,re,"","\\@nsupseteqq");R(N,ee,re,"⊋","\\supsetneq",!0);R(N,ee,re,"","\\@varsupsetneq");R(N,ee,re,"⫌","\\supsetneqq",!0);R(N,ee,re,"","\\@varsupsetneqq");R(N,ee,re,"⊮","\\nVdash",!0);R(N,ee,re,"⪵","\\precneqq",!0);R(N,ee,re,"⪶","\\succneqq",!0);R(N,ee,re,"","\\@nsubseteqq");R(N,ee,bt,"⊴","\\unlhd");R(N,ee,bt,"⊵","\\unrhd");R(N,ee,re,"↚","\\nleftarrow",!0);R(N,ee,re,"↛","\\nrightarrow",!0);R(N,ee,re,"⇍","\\nLeftarrow",!0);R(N,ee,re,"⇏","\\nRightarrow",!0);R(N,ee,re,"↮","\\nleftrightarrow",!0);R(N,ee,re,"⇎","\\nLeftrightarrow",!0);R(N,ee,re,"△","\\vartriangle");R(N,ee,pe,"ℏ","\\hslash");R(N,ee,pe,"▽","\\triangledown");R(N,ee,pe,"◊","\\lozenge");R(N,ee,pe,"Ⓢ","\\circledS");R(N,ee,pe,"®","\\circledR");R(Te,ee,pe,"®","\\circledR");R(N,ee,pe,"∡","\\measuredangle",!0);R(N,ee,pe,"∄","\\nexists");R(N,ee,pe,"℧","\\mho");R(N,ee,pe,"Ⅎ","\\Finv",!0);R(N,ee,pe,"⅁","\\Game",!0);R(N,ee,pe,"‵","\\backprime");R(N,ee,pe,"▲","\\blacktriangle");R(N,ee,pe,"▼","\\blacktriangledown");R(N,ee,pe,"■","\\blacksquare");R(N,ee,pe,"⧫","\\blacklozenge");R(N,ee,pe,"★","\\bigstar");R(N,ee,pe,"∢","\\sphericalangle",!0);R(N,ee,pe,"∁","\\complement",!0);R(N,ee,pe,"ð","\\eth",!0);R(Te,M,pe,"ð","ð");R(N,ee,pe,"╱","\\diagup");R(N,ee,pe,"╲","\\diagdown");R(N,ee,pe,"□","\\square");R(N,ee,pe,"□","\\Box");R(N,ee,pe,"◊","\\Diamond");R(N,ee,pe,"¥","\\yen",!0);R(Te,ee,pe,"¥","\\yen",!0);R(N,ee,pe,"✓","\\checkmark",!0);R(Te,ee,pe,"✓","\\checkmark");R(N,ee,pe,"ℶ","\\beth",!0);R(N,ee,pe,"ℸ","\\daleth",!0);R(N,ee,pe,"ℷ","\\gimel",!0);R(N,ee,pe,"ϝ","\\digamma",!0);R(N,ee,pe,"ϰ","\\varkappa");R(N,ee,uo,"┌","\\@ulcorner",!0);R(N,ee,la,"┐","\\@urcorner",!0);R(N,ee,uo,"└","\\@llcorner",!0);R(N,ee,la,"┘","\\@lrcorner",!0);R(N,ee,re,"≦","\\leqq",!0);R(N,ee,re,"⩽","\\leqslant",!0);R(N,ee,re,"⪕","\\eqslantless",!0);R(N,ee,re,"≲","\\lesssim",!0);R(N,ee,re,"⪅","\\lessapprox",!0);R(N,ee,re,"≊","\\approxeq",!0);R(N,ee,bt,"⋖","\\lessdot");R(N,ee,re,"⋘","\\lll",!0);R(N,ee,re,"≶","\\lessgtr",!0);R(N,ee,re,"⋚","\\lesseqgtr",!0);R(N,ee,re,"⪋","\\lesseqqgtr",!0);R(N,ee,re,"≑","\\doteqdot");R(N,ee,re,"≓","\\risingdotseq",!0);R(N,ee,re,"≒","\\fallingdotseq",!0);R(N,ee,re,"∽","\\backsim",!0);R(N,ee,re,"⋍","\\backsimeq",!0);R(N,ee,re,"⫅","\\subseteqq",!0);R(N,ee,re,"⋐","\\Subset",!0);R(N,ee,re,"⊏","\\sqsubset",!0);R(N,ee,re,"≼","\\preccurlyeq",!0);R(N,ee,re,"⋞","\\curlyeqprec",!0);R(N,ee,re,"≾","\\precsim",!0);R(N,ee,re,"⪷","\\precapprox",!0);R(N,ee,re,"⊲","\\vartriangleleft");R(N,ee,re,"⊴","\\trianglelefteq");R(N,ee,re,"⊨","\\vDash",!0);R(N,ee,re,"⊪","\\Vvdash",!0);R(N,ee,re,"⌣","\\smallsmile");R(N,ee,re,"⌢","\\smallfrown");R(N,ee,re,"≏","\\bumpeq",!0);R(N,ee,re,"≎","\\Bumpeq",!0);R(N,ee,re,"≧","\\geqq",!0);R(N,ee,re,"⩾","\\geqslant",!0);R(N,ee,re,"⪖","\\eqslantgtr",!0);R(N,ee,re,"≳","\\gtrsim",!0);R(N,ee,re,"⪆","\\gtrapprox",!0);R(N,ee,bt,"⋗","\\gtrdot");R(N,ee,re,"⋙","\\ggg",!0);R(N,ee,re,"≷","\\gtrless",!0);R(N,ee,re,"⋛","\\gtreqless",!0);R(N,ee,re,"⪌","\\gtreqqless",!0);R(N,ee,re,"≖","\\eqcirc",!0);R(N,ee,re,"≗","\\circeq",!0);R(N,ee,re,"≜","\\triangleq",!0);R(N,ee,re,"∼","\\thicksim");R(N,ee,re,"≈","\\thickapprox");R(N,ee,re,"⫆","\\supseteqq",!0);R(N,ee,re,"⋑","\\Supset",!0);R(N,ee,re,"⊐","\\sqsupset",!0);R(N,ee,re,"≽","\\succcurlyeq",!0);R(N,ee,re,"⋟","\\curlyeqsucc",!0);R(N,ee,re,"≿","\\succsim",!0);R(N,ee,re,"⪸","\\succapprox",!0);R(N,ee,re,"⊳","\\vartriangleright");R(N,ee,re,"⊵","\\trianglerighteq");R(N,ee,re,"⊩","\\Vdash",!0);R(N,ee,re,"∣","\\shortmid");R(N,ee,re,"∥","\\shortparallel");R(N,ee,re,"≬","\\between",!0);R(N,ee,re,"⋔","\\pitchfork",!0);R(N,ee,re,"∝","\\varpropto");R(N,ee,re,"◀","\\blacktriangleleft");R(N,ee,re,"∴","\\therefore",!0);R(N,ee,re,"∍","\\backepsilon");R(N,ee,re,"▶","\\blacktriangleright");R(N,ee,re,"∵","\\because",!0);R(N,ee,re,"⋘","\\llless");R(N,ee,re,"⋙","\\gggtr");R(N,ee,bt,"⊲","\\lhd");R(N,ee,bt,"⊳","\\rhd");R(N,ee,re,"≂","\\eqsim",!0);R(N,M,re,"⋈","\\Join");R(N,ee,re,"≑","\\Doteq",!0);R(N,ee,bt,"∔","\\dotplus",!0);R(N,ee,bt,"∖","\\smallsetminus");R(N,ee,bt,"⋒","\\Cap",!0);R(N,ee,bt,"⋓","\\Cup",!0);R(N,ee,bt,"⩞","\\doublebarwedge",!0);R(N,ee,bt,"⊟","\\boxminus",!0);R(N,ee,bt,"⊞","\\boxplus",!0);R(N,ee,bt,"⋇","\\divideontimes",!0);R(N,ee,bt,"⋉","\\ltimes",!0);R(N,ee,bt,"⋊","\\rtimes",!0);R(N,ee,bt,"⋋","\\leftthreetimes",!0);R(N,ee,bt,"⋌","\\rightthreetimes",!0);R(N,ee,bt,"⋏","\\curlywedge",!0);R(N,ee,bt,"⋎","\\curlyvee",!0);R(N,ee,bt,"⊝","\\circleddash",!0);R(N,ee,bt,"⊛","\\circledast",!0);R(N,ee,bt,"⋅","\\centerdot");R(N,ee,bt,"⊺","\\intercal",!0);R(N,ee,bt,"⋒","\\doublecap");R(N,ee,bt,"⋓","\\doublecup");R(N,ee,bt,"⊠","\\boxtimes",!0);R(N,ee,re,"⇢","\\dashrightarrow",!0);R(N,ee,re,"⇠","\\dashleftarrow",!0);R(N,ee,re,"⇇","\\leftleftarrows",!0);R(N,ee,re,"⇆","\\leftrightarrows",!0);R(N,ee,re,"⇚","\\Lleftarrow",!0);R(N,ee,re,"↞","\\twoheadleftarrow",!0);R(N,ee,re,"↢","\\leftarrowtail",!0);R(N,ee,re,"↫","\\looparrowleft",!0);R(N,ee,re,"⇋","\\leftrightharpoons",!0);R(N,ee,re,"↶","\\curvearrowleft",!0);R(N,ee,re,"↺","\\circlearrowleft",!0);R(N,ee,re,"↰","\\Lsh",!0);R(N,ee,re,"⇈","\\upuparrows",!0);R(N,ee,re,"↿","\\upharpoonleft",!0);R(N,ee,re,"⇃","\\downharpoonleft",!0);R(N,M,re,"⊶","\\origof",!0);R(N,M,re,"⊷","\\imageof",!0);R(N,ee,re,"⊸","\\multimap",!0);R(N,ee,re,"↭","\\leftrightsquigarrow",!0);R(N,ee,re,"⇉","\\rightrightarrows",!0);R(N,ee,re,"⇄","\\rightleftarrows",!0);R(N,ee,re,"↠","\\twoheadrightarrow",!0);R(N,ee,re,"↣","\\rightarrowtail",!0);R(N,ee,re,"↬","\\looparrowright",!0);R(N,ee,re,"↷","\\curvearrowright",!0);R(N,ee,re,"↻","\\circlearrowright",!0);R(N,ee,re,"↱","\\Rsh",!0);R(N,ee,re,"⇊","\\downdownarrows",!0);R(N,ee,re,"↾","\\upharpoonright",!0);R(N,ee,re,"⇂","\\downharpoonright",!0);R(N,ee,re,"⇝","\\rightsquigarrow",!0);R(N,ee,re,"⇝","\\leadsto");R(N,ee,re,"⇛","\\Rrightarrow",!0);R(N,ee,re,"↾","\\restriction");R(N,M,pe,"‘","`");R(N,M,pe,"$","\\$");R(Te,M,pe,"$","\\$");R(Te,M,pe,"$","\\textdollar");R(N,M,pe,"%","\\%");R(Te,M,pe,"%","\\%");R(N,M,pe,"_","\\_");R(Te,M,pe,"_","\\_");R(Te,M,pe,"_","\\textunderscore");R(N,M,pe,"∠","\\angle",!0);R(N,M,pe,"∞","\\infty",!0);R(N,M,pe,"′","\\prime");R(N,M,pe,"△","\\triangle");R(N,M,pe,"Γ","\\Gamma",!0);R(N,M,pe,"Δ","\\Delta",!0);R(N,M,pe,"Θ","\\Theta",!0);R(N,M,pe,"Λ","\\Lambda",!0);R(N,M,pe,"Ξ","\\Xi",!0);R(N,M,pe,"Π","\\Pi",!0);R(N,M,pe,"Σ","\\Sigma",!0);R(N,M,pe,"Υ","\\Upsilon",!0);R(N,M,pe,"Φ","\\Phi",!0);R(N,M,pe,"Ψ","\\Psi",!0);R(N,M,pe,"Ω","\\Omega",!0);R(N,M,pe,"A","Α");R(N,M,pe,"B","Β");R(N,M,pe,"E","Ε");R(N,M,pe,"Z","Ζ");R(N,M,pe,"H","Η");R(N,M,pe,"I","Ι");R(N,M,pe,"K","Κ");R(N,M,pe,"M","Μ");R(N,M,pe,"N","Ν");R(N,M,pe,"O","Ο");R(N,M,pe,"P","Ρ");R(N,M,pe,"T","Τ");R(N,M,pe,"X","Χ");R(N,M,pe,"¬","\\neg",!0);R(N,M,pe,"¬","\\lnot");R(N,M,pe,"⊤","\\top");R(N,M,pe,"⊥","\\bot");R(N,M,pe,"∅","\\emptyset");R(N,ee,pe,"∅","\\varnothing");R(N,M,Mt,"α","\\alpha",!0);R(N,M,Mt,"β","\\beta",!0);R(N,M,Mt,"γ","\\gamma",!0);R(N,M,Mt,"δ","\\delta",!0);R(N,M,Mt,"ϵ","\\epsilon",!0);R(N,M,Mt,"ζ","\\zeta",!0);R(N,M,Mt,"η","\\eta",!0);R(N,M,Mt,"θ","\\theta",!0);R(N,M,Mt,"ι","\\iota",!0);R(N,M,Mt,"κ","\\kappa",!0);R(N,M,Mt,"λ","\\lambda",!0);R(N,M,Mt,"μ","\\mu",!0);R(N,M,Mt,"ν","\\nu",!0);R(N,M,Mt,"ξ","\\xi",!0);R(N,M,Mt,"ο","\\omicron",!0);R(N,M,Mt,"π","\\pi",!0);R(N,M,Mt,"ρ","\\rho",!0);R(N,M,Mt,"σ","\\sigma",!0);R(N,M,Mt,"τ","\\tau",!0);R(N,M,Mt,"υ","\\upsilon",!0);R(N,M,Mt,"ϕ","\\phi",!0);R(N,M,Mt,"χ","\\chi",!0);R(N,M,Mt,"ψ","\\psi",!0);R(N,M,Mt,"ω","\\omega",!0);R(N,M,Mt,"ε","\\varepsilon",!0);R(N,M,Mt,"ϑ","\\vartheta",!0);R(N,M,Mt,"ϖ","\\varpi",!0);R(N,M,Mt,"ϱ","\\varrho",!0);R(N,M,Mt,"ς","\\varsigma",!0);R(N,M,Mt,"φ","\\varphi",!0);R(N,M,bt,"∗","*",!0);R(N,M,bt,"+","+");R(N,M,bt,"−","-",!0);R(N,M,bt,"⋅","\\cdot",!0);R(N,M,bt,"∘","\\circ",!0);R(N,M,bt,"÷","\\div",!0);R(N,M,bt,"±","\\pm",!0);R(N,M,bt,"×","\\times",!0);R(N,M,bt,"∩","\\cap",!0);R(N,M,bt,"∪","\\cup",!0);R(N,M,bt,"∖","\\setminus",!0);R(N,M,bt,"∧","\\land");R(N,M,bt,"∨","\\lor");R(N,M,bt,"∧","\\wedge",!0);R(N,M,bt,"∨","\\vee",!0);R(N,M,pe,"√","\\surd");R(N,M,uo,"⟨","\\langle",!0);R(N,M,uo,"∣","\\lvert");R(N,M,uo,"∥","\\lVert");R(N,M,la,"?","?");R(N,M,la,"!","!");R(N,M,la,"⟩","\\rangle",!0);R(N,M,la,"∣","\\rvert");R(N,M,la,"∥","\\rVert");R(N,M,re,"=","=");R(N,M,re,":",":");R(N,M,re,"≈","\\approx",!0);R(N,M,re,"≅","\\cong",!0);R(N,M,re,"≥","\\ge");R(N,M,re,"≥","\\geq",!0);R(N,M,re,"←","\\gets");R(N,M,re,">","\\gt",!0);R(N,M,re,"∈","\\in",!0);R(N,M,re,"","\\@not");R(N,M,re,"⊂","\\subset",!0);R(N,M,re,"⊃","\\supset",!0);R(N,M,re,"⊆","\\subseteq",!0);R(N,M,re,"⊇","\\supseteq",!0);R(N,ee,re,"⊈","\\nsubseteq",!0);R(N,ee,re,"⊉","\\nsupseteq",!0);R(N,M,re,"⊨","\\models");R(N,M,re,"←","\\leftarrow",!0);R(N,M,re,"≤","\\le");R(N,M,re,"≤","\\leq",!0);R(N,M,re,"<","\\lt",!0);R(N,M,re,"→","\\rightarrow",!0);R(N,M,re,"→","\\to");R(N,ee,re,"≱","\\ngeq",!0);R(N,ee,re,"≰","\\nleq",!0);R(N,M,Bu," ","\\ ");R(N,M,Bu," ","\\space");R(N,M,Bu," ","\\nobreakspace");R(Te,M,Bu," ","\\ ");R(Te,M,Bu," "," ");R(Te,M,Bu," ","\\space");R(Te,M,Bu," ","\\nobreakspace");R(N,M,Bu,null,"\\nobreak");R(N,M,Bu,null,"\\allowbreak");R(N,M,Z3,",",",");R(N,M,Z3,";",";");R(N,ee,bt,"⊼","\\barwedge",!0);R(N,ee,bt,"⊻","\\veebar",!0);R(N,M,bt,"⊙","\\odot",!0);R(N,M,bt,"⊕","\\oplus",!0);R(N,M,bt,"⊗","\\otimes",!0);R(N,M,pe,"∂","\\partial",!0);R(N,M,bt,"⊘","\\oslash",!0);R(N,ee,bt,"⊚","\\circledcirc",!0);R(N,ee,bt,"⊡","\\boxdot",!0);R(N,M,bt,"△","\\bigtriangleup");R(N,M,bt,"▽","\\bigtriangledown");R(N,M,bt,"†","\\dagger");R(N,M,bt,"⋄","\\diamond");R(N,M,bt,"⋆","\\star");R(N,M,bt,"◃","\\triangleleft");R(N,M,bt,"▹","\\triangleright");R(N,M,uo,"{","\\{");R(Te,M,pe,"{","\\{");R(Te,M,pe,"{","\\textbraceleft");R(N,M,la,"}","\\}");R(Te,M,pe,"}","\\}");R(Te,M,pe,"}","\\textbraceright");R(N,M,uo,"{","\\lbrace");R(N,M,la,"}","\\rbrace");R(N,M,uo,"[","\\lbrack",!0);R(Te,M,pe,"[","\\lbrack",!0);R(N,M,la,"]","\\rbrack",!0);R(Te,M,pe,"]","\\rbrack",!0);R(N,M,uo,"(","\\lparen",!0);R(N,M,la,")","\\rparen",!0);R(Te,M,pe,"<","\\textless",!0);R(Te,M,pe,">","\\textgreater",!0);R(N,M,uo,"⌊","\\lfloor",!0);R(N,M,la,"⌋","\\rfloor",!0);R(N,M,uo,"⌈","\\lceil",!0);R(N,M,la,"⌉","\\rceil",!0);R(N,M,pe,"\\","\\backslash");R(N,M,pe,"∣","|");R(N,M,pe,"∣","\\vert");R(Te,M,pe,"|","\\textbar",!0);R(N,M,pe,"∥","\\|");R(N,M,pe,"∥","\\Vert");R(Te,M,pe,"∥","\\textbardbl");R(Te,M,pe,"~","\\textasciitilde");R(Te,M,pe,"\\","\\textbackslash");R(Te,M,pe,"^","\\textasciicircum");R(N,M,re,"↑","\\uparrow",!0);R(N,M,re,"⇑","\\Uparrow",!0);R(N,M,re,"↓","\\downarrow",!0);R(N,M,re,"⇓","\\Downarrow",!0);R(N,M,re,"↕","\\updownarrow",!0);R(N,M,re,"⇕","\\Updownarrow",!0);R(N,M,Ir,"∐","\\coprod");R(N,M,Ir,"⋁","\\bigvee");R(N,M,Ir,"⋀","\\bigwedge");R(N,M,Ir,"⨄","\\biguplus");R(N,M,Ir,"⋂","\\bigcap");R(N,M,Ir,"⋃","\\bigcup");R(N,M,Ir,"∫","\\int");R(N,M,Ir,"∫","\\intop");R(N,M,Ir,"∬","\\iint");R(N,M,Ir,"∭","\\iiint");R(N,M,Ir,"∏","\\prod");R(N,M,Ir,"∑","\\sum");R(N,M,Ir,"⨂","\\bigotimes");R(N,M,Ir,"⨁","\\bigoplus");R(N,M,Ir,"⨀","\\bigodot");R(N,M,Ir,"∮","\\oint");R(N,M,Ir,"∯","\\oiint");R(N,M,Ir,"∰","\\oiiint");R(N,M,Ir,"⨆","\\bigsqcup");R(N,M,Ir,"∫","\\smallint");R(Te,M,O1,"…","\\textellipsis");R(N,M,O1,"…","\\mathellipsis");R(Te,M,O1,"…","\\ldots",!0);R(N,M,O1,"…","\\ldots",!0);R(N,M,O1,"⋯","\\@cdots",!0);R(N,M,O1,"⋱","\\ddots",!0);R(N,M,pe,"⋮","\\varvdots");R(N,M,Ar,"ˊ","\\acute");R(N,M,Ar,"ˋ","\\grave");R(N,M,Ar,"¨","\\ddot");R(N,M,Ar,"~","\\tilde");R(N,M,Ar,"ˉ","\\bar");R(N,M,Ar,"˘","\\breve");R(N,M,Ar,"ˇ","\\check");R(N,M,Ar,"^","\\hat");R(N,M,Ar,"⃗","\\vec");R(N,M,Ar,"˙","\\dot");R(N,M,Ar,"˚","\\mathring");R(N,M,Mt,"","\\@imath");R(N,M,Mt,"","\\@jmath");R(N,M,pe,"ı","ı");R(N,M,pe,"ȷ","ȷ");R(Te,M,pe,"ı","\\i",!0);R(Te,M,pe,"ȷ","\\j",!0);R(Te,M,pe,"ß","\\ss",!0);R(Te,M,pe,"æ","\\ae",!0);R(Te,M,pe,"œ","\\oe",!0);R(Te,M,pe,"ø","\\o",!0);R(Te,M,pe,"Æ","\\AE",!0);R(Te,M,pe,"Œ","\\OE",!0);R(Te,M,pe,"Ø","\\O",!0);R(Te,M,Ar,"ˊ","\\'");R(Te,M,Ar,"ˋ","\\`");R(Te,M,Ar,"ˆ","\\^");R(Te,M,Ar,"˜","\\~");R(Te,M,Ar,"ˉ","\\=");R(Te,M,Ar,"˘","\\u");R(Te,M,Ar,"˙","\\.");R(Te,M,Ar,"¸","\\c");R(Te,M,Ar,"˚","\\r");R(Te,M,Ar,"ˇ","\\v");R(Te,M,Ar,"¨",'\\"');R(Te,M,Ar,"˝","\\H");R(Te,M,Ar,"◯","\\textcircled");var fz={"--":!0,"---":!0,"``":!0,"''":!0};R(Te,M,pe,"–","--",!0);R(Te,M,pe,"–","\\textendash");R(Te,M,pe,"—","---",!0);R(Te,M,pe,"—","\\textemdash");R(Te,M,pe,"‘","`",!0);R(Te,M,pe,"‘","\\textquoteleft");R(Te,M,pe,"’","'",!0);R(Te,M,pe,"’","\\textquoteright");R(Te,M,pe,"“","``",!0);R(Te,M,pe,"“","\\textquotedblleft");R(Te,M,pe,"”","''",!0);R(Te,M,pe,"”","\\textquotedblright");R(N,M,pe,"°","\\degree",!0);R(Te,M,pe,"°","\\degree");R(Te,M,pe,"°","\\textdegree",!0);R(N,M,pe,"£","\\pounds");R(N,M,pe,"£","\\mathsterling",!0);R(Te,M,pe,"£","\\pounds");R(Te,M,pe,"£","\\textsterling",!0);R(N,ee,pe,"✠","\\maltese");R(Te,ee,pe,"✠","\\maltese");var lZ='0123456789/@."';for(var JK=0;JK0)return ll(a,u,i,n,o.concat(c));if(s){var d,g;if(s==="boldsymbol"){var h=D7e(a,i,n,o,r);d=h.fontName,g=[h.fontClass]}else l?(d=Cz[s].fontName,g=[s]):(d=v2(s,n.fontWeight,n.fontShape),g=[s,n.fontWeight,n.fontShape]);if(H3(a,d,i).metrics)return ll(a,d,i,n,o.concat(g));if(fz.hasOwnProperty(a)&&d.slice(0,10)==="Typewriter"){for(var m=[],A=0;A{if(Sc(e.classes)!==Sc(t.classes)||e.skew!==t.skew||e.maxFontSize!==t.maxFontSize)return!1;if(e.classes.length===1){var n=e.classes[0];if(n==="mbin"||n==="mord")return!1}for(var r in e.style)if(e.style.hasOwnProperty(r)&&e.style[r]!==t.style[r])return!1;for(var i in t.style)if(t.style.hasOwnProperty(i)&&e.style[i]!==t.style[i])return!1;return!0},H7e=e=>{for(var t=0;tn&&(n=o.height),o.depth>r&&(r=o.depth),o.maxFontSize>i&&(i=o.maxFontSize)}t.height=n,t.depth=r,t.maxFontSize=i},ha=function(t,n,r,i){var a=new hm(t,n,r,i);return cR(a),a},mz=(e,t,n,r)=>new hm(e,t,n,r),X7e=function(t,n,r){var i=ha([t],[],n);return i.height=Math.max(r||n.fontMetrics().defaultRuleThickness,n.minRuleThickness),i.style.borderBottomWidth=at(i.height),i.maxFontSize=1,i},L7e=function(t,n,r,i){var a=new uR(t,n,r,i);return cR(a),a},Az=function(t){var n=new gm(t);return cR(n),n},M7e=function(t,n){return t instanceof gm?ha([],[t],n):t},T7e=function(t){if(t.positionType==="individualShift"){for(var n=t.children,r=[n[0]],i=-n[0].shift-n[0].elem.depth,a=i,o=1;o{var n=ha(["mspace"],[],t),r=br(e,t);return n.style.marginRight=at(r),n},v2=function(t,n,r){var i="";switch(t){case"amsrm":i="AMS";break;case"textrm":i="Main";break;case"textsf":i="SansSerif";break;case"texttt":i="Typewriter";break;default:i=t}var a;return n==="textbf"&&r==="textit"?a="BoldItalic":n==="textbf"?a="Bold":n==="textit"?a="Italic":a="Regular",i+"-"+a},Cz={mathbf:{variant:"bold",fontName:"Main-Bold"},mathrm:{variant:"normal",fontName:"Main-Regular"},textit:{variant:"italic",fontName:"Main-Italic"},mathit:{variant:"italic",fontName:"Main-Italic"},mathnormal:{variant:"italic",fontName:"Math-Italic"},mathbb:{variant:"double-struck",fontName:"AMS-Regular"},mathcal:{variant:"script",fontName:"Caligraphic-Regular"},mathfrak:{variant:"fraktur",fontName:"Fraktur-Regular"},mathscr:{variant:"script",fontName:"Script-Regular"},mathsf:{variant:"sans-serif",fontName:"SansSerif-Regular"},mathtt:{variant:"monospace",fontName:"Typewriter-Regular"}},Bz={vec:["vec",.471,.714],oiintSize1:["oiintSize1",.957,.499],oiintSize2:["oiintSize2",1.472,.659],oiiintSize1:["oiiintSize1",1.304,.499],oiiintSize2:["oiiintSize2",1.98,.659]},I7e=function(t,n){var[r,i,a]=Bz[t],o=new xc(r),l=new su([o],{width:at(i),height:at(a),style:"width:"+at(i),viewBox:"0 0 "+1e3*i+" "+1e3*a,preserveAspectRatio:"xMinYMin"}),s=mz(["overlay"],[l],n);return s.height=a,s.style.height=at(a),s.style.width=at(i),s},Be={fontMap:Cz,makeSymbol:ll,mathsym:k7e,makeSpan:ha,makeSvgSpan:mz,makeLineSpan:X7e,makeAnchor:L7e,makeFragment:Az,wrapFragment:M7e,makeVList:V7e,makeOrd:N7e,makeGlue:Y7e,staticSvg:I7e,svgData:Bz,tryCombineChars:H7e},Br={number:3,unit:"mu"},c0={number:4,unit:"mu"},ks={number:5,unit:"mu"},U7e={mord:{mop:Br,mbin:c0,mrel:ks,minner:Br},mop:{mord:Br,mop:Br,mrel:ks,minner:Br},mbin:{mord:c0,mop:c0,mopen:c0,minner:c0},mrel:{mord:ks,mop:ks,mopen:ks,minner:ks},mopen:{},mclose:{mop:Br,mbin:c0,mrel:ks,minner:Br},mpunct:{mord:Br,mop:Br,mrel:ks,mopen:Br,mclose:Br,mpunct:Br,minner:Br},minner:{mord:Br,mop:Br,mbin:c0,mrel:ks,mopen:Br,mpunct:Br,minner:Br}},O7e={mord:{mop:Br},mop:{mord:Br,mop:Br},mbin:{},mrel:{},mopen:{},mclose:{mop:Br},mpunct:{},minner:{mop:Br}},wz={},LB={},MB={};function mt(e){for(var{type:t,names:n,props:r,handler:i,htmlBuilder:a,mathmlBuilder:o}=e,l={type:t,numArgs:r.numArgs,argTypes:r.argTypes,allowedInArgument:!!r.allowedInArgument,allowedInText:!!r.allowedInText,allowedInMath:r.allowedInMath===void 0?!0:r.allowedInMath,numOptionalArgs:r.numOptionalArgs||0,infix:!!r.infix,primitive:!!r.primitive,handler:i},s=0;s{var B=A.classes[0],C=m.classes[0];B==="mbin"&&Ht.contains(z7e,C)?A.classes[0]="mord":C==="mbin"&&Ht.contains(J7e,B)&&(m.classes[0]="mord")},{node:d},g,h),pZ(a,(m,A)=>{var B=WF(A),C=WF(m),b=B&&C?m.hasClass("mtight")?O7e[B][C]:U7e[B][C]:null;if(b)return Be.makeGlue(b,u)},{node:d},g,h),a},pZ=function e(t,n,r,i,a){i&&t.push(i);for(var o=0;og=>{t.splice(d+1,0,g),o++})(o)}i&&t.pop()},bz=function(t){return t instanceof gm||t instanceof uR||t instanceof hm&&t.hasClass("enclosing")?t:null},_7e=function e(t,n){var r=bz(t);if(r){var i=r.children;if(i.length){if(n==="right")return e(i[i.length-1],"right");if(n==="left")return e(i[0],"left")}}return t},WF=function(t,n){return t?(n&&(t=_7e(t,n)),j7e[t.classes[0]]||null):null},Ef=function(t,n){var r=["nulldelimiter"].concat(t.baseSizingClasses());return uu(n.concat(r))},Fn=function(t,n,r){if(!t)return uu();if(LB[t.type]){var i=LB[t.type](t,n);if(r&&n.size!==r.size){i=uu(n.sizingClasses(r),[i],n);var a=n.sizeMultiplier/r.sizeMultiplier;i.height*=a,i.depth*=a}return i}else throw new $e("Got group of unknown type: '"+t.type+"'")};function K2(e,t){var n=uu(["base"],e,t),r=uu(["strut"]);return r.style.height=at(n.height+n.depth),n.depth&&(r.style.verticalAlign=at(-n.depth)),n.children.unshift(r),n}function yF(e,t){var n=null;e.length===1&&e[0].type==="tag"&&(n=e[0].tag,e=e[0].body);var r=qr(e,t,"root"),i;r.length===2&&r[1].hasClass("tag")&&(i=r.pop());for(var a=[],o=[],l=0;l0&&(a.push(K2(o,t)),o=[]),a.push(r[l]));o.length>0&&a.push(K2(o,t));var u;n?(u=K2(qr(n,t,!0)),u.classes=["tag"],a.push(u)):i&&a.push(i);var c=uu(["katex-html"],a);if(c.setAttribute("aria-hidden","true"),u){var d=u.children[0];d.style.height=at(c.height+c.depth),c.depth&&(d.style.verticalAlign=at(-c.depth))}return c}function vz(e){return new gm(e)}class Go{constructor(t,n,r){this.type=void 0,this.attributes=void 0,this.children=void 0,this.classes=void 0,this.type=t,this.attributes={},this.children=n||[],this.classes=r||[]}setAttribute(t,n){this.attributes[t]=n}getAttribute(t){return this.attributes[t]}toNode(){var t=document.createElementNS("http://www.w3.org/1998/Math/MathML",this.type);for(var n in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,n)&&t.setAttribute(n,this.attributes[n]);this.classes.length>0&&(t.className=Sc(this.classes));for(var r=0;r0&&(t+=' class ="'+Ht.escape(Sc(this.classes))+'"'),t+=">";for(var r=0;r",t}toText(){return this.children.map(t=>t.toText()).join("")}}let Dh=class{constructor(t){this.text=void 0,this.text=t}toNode(){return document.createTextNode(this.text)}toMarkup(){return Ht.escape(this.toText())}toText(){return this.text}};class $7e{constructor(t){this.width=void 0,this.character=void 0,this.width=t,t>=.05555&&t<=.05556?this.character=" ":t>=.1666&&t<=.1667?this.character=" ":t>=.2222&&t<=.2223?this.character=" ":t>=.2777&&t<=.2778?this.character="  ":t>=-.05556&&t<=-.05555?this.character=" ⁣":t>=-.1667&&t<=-.1666?this.character=" ⁣":t>=-.2223&&t<=-.2222?this.character=" ⁣":t>=-.2778&&t<=-.2777?this.character=" ⁣":this.character=null}toNode(){if(this.character)return document.createTextNode(this.character);var t=document.createElementNS("http://www.w3.org/1998/Math/MathML","mspace");return t.setAttribute("width",at(this.width)),t}toMarkup(){return this.character?""+this.character+"":''}toText(){return this.character?this.character:" "}}var Ue={MathNode:Go,TextNode:Dh,SpaceNode:$7e,newDocumentFragment:vz},Io=function(t,n,r){return tr[n][t]&&tr[n][t].replace&&t.charCodeAt(0)!==55349&&!(fz.hasOwnProperty(t)&&r&&(r.fontFamily&&r.fontFamily.slice(4,6)==="tt"||r.font&&r.font.slice(4,6)==="tt"))&&(t=tr[n][t].replace),new Ue.TextNode(t)},dR=function(t){return t.length===1?t[0]:new Ue.MathNode("mrow",t)},pR=function(t,n){if(n.fontFamily==="texttt")return"monospace";if(n.fontFamily==="textsf")return n.fontShape==="textit"&&n.fontWeight==="textbf"?"sans-serif-bold-italic":n.fontShape==="textit"?"sans-serif-italic":n.fontWeight==="textbf"?"bold-sans-serif":"sans-serif";if(n.fontShape==="textit"&&n.fontWeight==="textbf")return"bold-italic";if(n.fontShape==="textit")return"italic";if(n.fontWeight==="textbf")return"bold";var r=n.font;if(!r||r==="mathnormal")return null;var i=t.mode;if(r==="mathit")return"italic";if(r==="boldsymbol")return t.type==="textord"?"bold":"bold-italic";if(r==="mathbf")return"bold";if(r==="mathbb")return"double-struck";if(r==="mathfrak")return"fraktur";if(r==="mathscr"||r==="mathcal")return"script";if(r==="mathsf")return"sans-serif";if(r==="mathtt")return"monospace";var a=t.text;if(Ht.contains(["\\imath","\\jmath"],a))return null;tr[i][a]&&tr[i][a].replace&&(a=tr[i][a].replace);var o=Be.fontMap[r].fontName;return sR(a,o,i)?Be.fontMap[r].variant:null},Sa=function(t,n,r){if(t.length===1){var i=Jn(t[0],n);return r&&i instanceof Go&&i.type==="mo"&&(i.setAttribute("lspace","0em"),i.setAttribute("rspace","0em")),[i]}for(var a=[],o,l=0;l0&&(d.text=d.text.slice(0,1)+"̸"+d.text.slice(1),a.pop())}}}a.push(s),o=s}return a},Gc=function(t,n,r){return dR(Sa(t,n,r))},Jn=function(t,n){if(!t)return new Ue.MathNode("mrow");if(MB[t.type]){var r=MB[t.type](t,n);return r}else throw new $e("Got group of unknown type: '"+t.type+"'")};function gZ(e,t,n,r,i){var a=Sa(e,n),o;a.length===1&&a[0]instanceof Go&&Ht.contains(["mrow","mtable"],a[0].type)?o=a[0]:o=new Ue.MathNode("mrow",a);var l=new Ue.MathNode("annotation",[new Ue.TextNode(t)]);l.setAttribute("encoding","application/x-tex");var s=new Ue.MathNode("semantics",[o,l]),u=new Ue.MathNode("math",[s]);u.setAttribute("xmlns","http://www.w3.org/1998/Math/MathML"),r&&u.setAttribute("display","block");var c=i?"katex":"katex-mathml";return Be.makeSpan([c],[u])}var Kz=function(t){return new Vs({style:t.displayMode?Tt.DISPLAY:Tt.TEXT,maxSize:t.maxSize,minRuleThickness:t.minRuleThickness})},Qz=function(t,n){if(n.displayMode){var r=["katex-display"];n.leqno&&r.push("leqno"),n.fleqn&&r.push("fleqn"),t=Be.makeSpan(r,[t])}return t},q7e=function(t,n,r){var i=Kz(r),a;if(r.output==="mathml")return gZ(t,n,i,r.displayMode,!0);if(r.output==="html"){var o=yF(t,i);a=Be.makeSpan(["katex"],[o])}else{var l=gZ(t,n,i,r.displayMode,!1),s=yF(t,i);a=Be.makeSpan(["katex"],[l,s])}return Qz(a,r)},exe=function(t,n,r){var i=Kz(r),a=yF(t,i),o=Be.makeSpan(["katex"],[a]);return Qz(o,r)},txe={widehat:"^",widecheck:"ˇ",widetilde:"~",utilde:"~",overleftarrow:"←",underleftarrow:"←",xleftarrow:"←",overrightarrow:"→",underrightarrow:"→",xrightarrow:"→",underbrace:"⏟",overbrace:"⏞",overgroup:"⏠",undergroup:"⏡",overleftrightarrow:"↔",underleftrightarrow:"↔",xleftrightarrow:"↔",Overrightarrow:"⇒",xRightarrow:"⇒",overleftharpoon:"↼",xleftharpoonup:"↼",overrightharpoon:"⇀",xrightharpoonup:"⇀",xLeftarrow:"⇐",xLeftrightarrow:"⇔",xhookleftarrow:"↩",xhookrightarrow:"↪",xmapsto:"↦",xrightharpoondown:"⇁",xleftharpoondown:"↽",xrightleftharpoons:"⇌",xleftrightharpoons:"⇋",xtwoheadleftarrow:"↞",xtwoheadrightarrow:"↠",xlongequal:"=",xtofrom:"⇄",xrightleftarrows:"⇄",xrightequilibrium:"⇌",xleftequilibrium:"⇋","\\cdrightarrow":"→","\\cdleftarrow":"←","\\cdlongequal":"="},nxe=function(t){var n=new Ue.MathNode("mo",[new Ue.TextNode(txe[t.replace(/^\\/,"")])]);return n.setAttribute("stretchy","true"),n},rxe={overrightarrow:[["rightarrow"],.888,522,"xMaxYMin"],overleftarrow:[["leftarrow"],.888,522,"xMinYMin"],underrightarrow:[["rightarrow"],.888,522,"xMaxYMin"],underleftarrow:[["leftarrow"],.888,522,"xMinYMin"],xrightarrow:[["rightarrow"],1.469,522,"xMaxYMin"],"\\cdrightarrow":[["rightarrow"],3,522,"xMaxYMin"],xleftarrow:[["leftarrow"],1.469,522,"xMinYMin"],"\\cdleftarrow":[["leftarrow"],3,522,"xMinYMin"],Overrightarrow:[["doublerightarrow"],.888,560,"xMaxYMin"],xRightarrow:[["doublerightarrow"],1.526,560,"xMaxYMin"],xLeftarrow:[["doubleleftarrow"],1.526,560,"xMinYMin"],overleftharpoon:[["leftharpoon"],.888,522,"xMinYMin"],xleftharpoonup:[["leftharpoon"],.888,522,"xMinYMin"],xleftharpoondown:[["leftharpoondown"],.888,522,"xMinYMin"],overrightharpoon:[["rightharpoon"],.888,522,"xMaxYMin"],xrightharpoonup:[["rightharpoon"],.888,522,"xMaxYMin"],xrightharpoondown:[["rightharpoondown"],.888,522,"xMaxYMin"],xlongequal:[["longequal"],.888,334,"xMinYMin"],"\\cdlongequal":[["longequal"],3,334,"xMinYMin"],xtwoheadleftarrow:[["twoheadleftarrow"],.888,334,"xMinYMin"],xtwoheadrightarrow:[["twoheadrightarrow"],.888,334,"xMaxYMin"],overleftrightarrow:[["leftarrow","rightarrow"],.888,522],overbrace:[["leftbrace","midbrace","rightbrace"],1.6,548],underbrace:[["leftbraceunder","midbraceunder","rightbraceunder"],1.6,548],underleftrightarrow:[["leftarrow","rightarrow"],.888,522],xleftrightarrow:[["leftarrow","rightarrow"],1.75,522],xLeftrightarrow:[["doubleleftarrow","doublerightarrow"],1.75,560],xrightleftharpoons:[["leftharpoondownplus","rightharpoonplus"],1.75,716],xleftrightharpoons:[["leftharpoonplus","rightharpoondownplus"],1.75,716],xhookleftarrow:[["leftarrow","righthook"],1.08,522],xhookrightarrow:[["lefthook","rightarrow"],1.08,522],overlinesegment:[["leftlinesegment","rightlinesegment"],.888,522],underlinesegment:[["leftlinesegment","rightlinesegment"],.888,522],overgroup:[["leftgroup","rightgroup"],.888,342],undergroup:[["leftgroupunder","rightgroupunder"],.888,342],xmapsto:[["leftmapsto","rightarrow"],1.5,522],xtofrom:[["leftToFrom","rightToFrom"],1.75,528],xrightleftarrows:[["baraboveleftarrow","rightarrowabovebar"],1.75,901],xrightequilibrium:[["baraboveshortleftharpoon","rightharpoonaboveshortbar"],1.75,716],xleftequilibrium:[["shortbaraboveleftharpoon","shortrightharpoonabovebar"],1.75,716]},ixe=function(t){return t.type==="ordgroup"?t.body.length:1},axe=function(t,n){function r(){var l=4e5,s=t.label.slice(1);if(Ht.contains(["widehat","widecheck","widetilde","utilde"],s)){var u=t,c=ixe(u.base),d,g,h;if(c>5)s==="widehat"||s==="widecheck"?(d=420,l=2364,h=.42,g=s+"4"):(d=312,l=2340,h=.34,g="tilde4");else{var m=[1,1,2,2,3,3][c];s==="widehat"||s==="widecheck"?(l=[0,1062,2364,2364,2364][m],d=[0,239,300,360,420][m],h=[0,.24,.3,.3,.36,.42][m],g=s+m):(l=[0,600,1033,2339,2340][m],d=[0,260,286,306,312][m],h=[0,.26,.286,.3,.306,.34][m],g="tilde"+m)}var A=new xc(g),B=new su([A],{width:"100%",height:at(h),viewBox:"0 0 "+l+" "+d,preserveAspectRatio:"none"});return{span:Be.makeSvgSpan([],[B],n),minWidth:0,height:h}}else{var C=[],b=rxe[s],[Q,F,K]=b,y=K/1e3,G=Q.length,X,H;if(G===1){var v=b[3];X=["hide-tail"],H=[v]}else if(G===2)X=["halfarrow-left","halfarrow-right"],H=["xMinYMin","xMaxYMin"];else if(G===3)X=["brace-left","brace-center","brace-right"],H=["xMinYMin","xMidYMin","xMaxYMin"];else throw new Error(`Correct katexImagesData or update code here to support + `+G+" children.");for(var k=0;k0&&(i.style.minWidth=at(a)),i},oxe=function(t,n,r,i,a){var o,l=t.height+t.depth+r+i;if(/fbox|color|angl/.test(n)){if(o=Be.makeSpan(["stretchy",n],[],a),n==="fbox"){var s=a.color&&a.getColor();s&&(o.style.borderColor=s)}}else{var u=[];/^[bx]cancel$/.test(n)&&u.push(new KF({x1:"0",y1:"0",x2:"100%",y2:"100%","stroke-width":"0.046em"})),/^x?cancel$/.test(n)&&u.push(new KF({x1:"0",y1:"100%",x2:"100%",y2:"0","stroke-width":"0.046em"}));var c=new su(u,{width:"100%",height:at(l)});o=Be.makeSvgSpan([],[c],a)}return o.height=l,o.style.height=at(l),o},cu={encloseSpan:oxe,mathMLnode:nxe,svgSpan:axe};function tn(e,t){if(!e||e.type!==t)throw new Error("Expected node of type "+t+", but got "+(e?"node of type "+e.type:String(e)));return e}function gR(e){var t=X3(e);if(!t)throw new Error("Expected node of symbol group type, but got "+(e?"node of type "+e.type:String(e)));return t}function X3(e){return e&&(e.type==="atom"||x7e.hasOwnProperty(e.type))?e:null}var hR=(e,t)=>{var n,r,i;e&&e.type==="supsub"?(r=tn(e.base,"accent"),n=r.base,e.base=n,i=R7e(Fn(e,t)),e.base=r):(r=tn(e,"accent"),n=r.base);var a=Fn(n,t.havingCrampedStyle()),o=r.isShifty&&Ht.isCharacterBox(n),l=0;if(o){var s=Ht.getBaseElem(n),u=Fn(s,t.havingCrampedStyle());l=oZ(u).skew}var c=r.label==="\\c",d=c?a.height+a.depth:Math.min(a.height,t.fontMetrics().xHeight),g;if(r.isStretchy)g=cu.svgSpan(r,t),g=Be.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:a},{type:"elem",elem:g,wrapperClasses:["svg-align"],wrapperStyle:l>0?{width:"calc(100% - "+at(2*l)+")",marginLeft:at(2*l)}:void 0}]},t);else{var h,m;r.label==="\\vec"?(h=Be.staticSvg("vec",t),m=Be.svgData.vec[1]):(h=Be.makeOrd({mode:r.mode,text:r.label},t,"textord"),h=oZ(h),h.italic=0,m=h.width,c&&(d+=h.depth)),g=Be.makeSpan(["accent-body"],[h]);var A=r.label==="\\textcircled";A&&(g.classes.push("accent-full"),d=a.height);var B=l;A||(B-=m/2),g.style.left=at(B),r.label==="\\textcircled"&&(g.style.top=".2em"),g=Be.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:a},{type:"kern",size:-d},{type:"elem",elem:g}]},t)}var C=Be.makeSpan(["mord","accent"],[g],t);return i?(i.children[0]=C,i.height=Math.max(C.height,i.height),i.classes[0]="mord",i):C},Wz=(e,t)=>{var n=e.isStretchy?cu.mathMLnode(e.label):new Ue.MathNode("mo",[Io(e.label,e.mode)]),r=new Ue.MathNode("mover",[Jn(e.base,t),n]);return r.setAttribute("accent","true"),r},lxe=new RegExp(["\\acute","\\grave","\\ddot","\\tilde","\\bar","\\breve","\\check","\\hat","\\vec","\\dot","\\mathring"].map(e=>"\\"+e).join("|"));mt({type:"accent",names:["\\acute","\\grave","\\ddot","\\tilde","\\bar","\\breve","\\check","\\hat","\\vec","\\dot","\\mathring","\\widecheck","\\widehat","\\widetilde","\\overrightarrow","\\overleftarrow","\\Overrightarrow","\\overleftrightarrow","\\overgroup","\\overlinesegment","\\overleftharpoon","\\overrightharpoon"],props:{numArgs:1},handler:(e,t)=>{var n=TB(t[0]),r=!lxe.test(e.funcName),i=!r||e.funcName==="\\widehat"||e.funcName==="\\widetilde"||e.funcName==="\\widecheck";return{type:"accent",mode:e.parser.mode,label:e.funcName,isStretchy:r,isShifty:i,base:n}},htmlBuilder:hR,mathmlBuilder:Wz});mt({type:"accent",names:["\\'","\\`","\\^","\\~","\\=","\\u","\\.",'\\"',"\\c","\\r","\\H","\\v","\\textcircled"],props:{numArgs:1,allowedInText:!0,allowedInMath:!0,argTypes:["primitive"]},handler:(e,t)=>{var n=t[0],r=e.parser.mode;return r==="math"&&(e.parser.settings.reportNonstrict("mathVsTextAccents","LaTeX's accent "+e.funcName+" works only in text mode"),r="text"),{type:"accent",mode:r,label:e.funcName,isStretchy:!1,isShifty:!0,base:n}},htmlBuilder:hR,mathmlBuilder:Wz});mt({type:"accentUnder",names:["\\underleftarrow","\\underrightarrow","\\underleftrightarrow","\\undergroup","\\underlinesegment","\\utilde"],props:{numArgs:1},handler:(e,t)=>{var{parser:n,funcName:r}=e,i=t[0];return{type:"accentUnder",mode:n.mode,label:r,base:i}},htmlBuilder:(e,t)=>{var n=Fn(e.base,t),r=cu.svgSpan(e,t),i=e.label==="\\utilde"?.12:0,a=Be.makeVList({positionType:"top",positionData:n.height,children:[{type:"elem",elem:r,wrapperClasses:["svg-align"]},{type:"kern",size:i},{type:"elem",elem:n}]},t);return Be.makeSpan(["mord","accentunder"],[a],t)},mathmlBuilder:(e,t)=>{var n=cu.mathMLnode(e.label),r=new Ue.MathNode("munder",[Jn(e.base,t),n]);return r.setAttribute("accentunder","true"),r}});var Q2=e=>{var t=new Ue.MathNode("mpadded",e?[e]:[]);return t.setAttribute("width","+0.6em"),t.setAttribute("lspace","0.3em"),t};mt({type:"xArrow",names:["\\xleftarrow","\\xrightarrow","\\xLeftarrow","\\xRightarrow","\\xleftrightarrow","\\xLeftrightarrow","\\xhookleftarrow","\\xhookrightarrow","\\xmapsto","\\xrightharpoondown","\\xrightharpoonup","\\xleftharpoondown","\\xleftharpoonup","\\xrightleftharpoons","\\xleftrightharpoons","\\xlongequal","\\xtwoheadrightarrow","\\xtwoheadleftarrow","\\xtofrom","\\xrightleftarrows","\\xrightequilibrium","\\xleftequilibrium","\\\\cdrightarrow","\\\\cdleftarrow","\\\\cdlongequal"],props:{numArgs:1,numOptionalArgs:1},handler(e,t,n){var{parser:r,funcName:i}=e;return{type:"xArrow",mode:r.mode,label:i,body:t[0],below:n[0]}},htmlBuilder(e,t){var n=t.style,r=t.havingStyle(n.sup()),i=Be.wrapFragment(Fn(e.body,r,t),t),a=e.label.slice(0,2)==="\\x"?"x":"cd";i.classes.push(a+"-arrow-pad");var o;e.below&&(r=t.havingStyle(n.sub()),o=Be.wrapFragment(Fn(e.below,r,t),t),o.classes.push(a+"-arrow-pad"));var l=cu.svgSpan(e,t),s=-t.fontMetrics().axisHeight+.5*l.height,u=-t.fontMetrics().axisHeight-.5*l.height-.111;(i.depth>.25||e.label==="\\xleftequilibrium")&&(u-=i.depth);var c;if(o){var d=-t.fontMetrics().axisHeight+o.height+.5*l.height+.111;c=Be.makeVList({positionType:"individualShift",children:[{type:"elem",elem:i,shift:u},{type:"elem",elem:l,shift:s},{type:"elem",elem:o,shift:d}]},t)}else c=Be.makeVList({positionType:"individualShift",children:[{type:"elem",elem:i,shift:u},{type:"elem",elem:l,shift:s}]},t);return c.children[0].children[0].children[1].classes.push("svg-align"),Be.makeSpan(["mrel","x-arrow"],[c],t)},mathmlBuilder(e,t){var n=cu.mathMLnode(e.label);n.setAttribute("minsize",e.label.charAt(0)==="x"?"1.75em":"3.0em");var r;if(e.body){var i=Q2(Jn(e.body,t));if(e.below){var a=Q2(Jn(e.below,t));r=new Ue.MathNode("munderover",[n,a,i])}else r=new Ue.MathNode("mover",[n,i])}else if(e.below){var o=Q2(Jn(e.below,t));r=new Ue.MathNode("munder",[n,o])}else r=Q2(),r=new Ue.MathNode("mover",[n,r]);return r}});var sxe=Be.makeSpan;function yz(e,t){var n=qr(e.body,t,!0);return sxe([e.mclass],n,t)}function Fz(e,t){var n,r=Sa(e.body,t);return e.mclass==="minner"?n=new Ue.MathNode("mpadded",r):e.mclass==="mord"?e.isCharacterBox?(n=r[0],n.type="mi"):n=new Ue.MathNode("mi",r):(e.isCharacterBox?(n=r[0],n.type="mo"):n=new Ue.MathNode("mo",r),e.mclass==="mbin"?(n.attributes.lspace="0.22em",n.attributes.rspace="0.22em"):e.mclass==="mpunct"?(n.attributes.lspace="0em",n.attributes.rspace="0.17em"):e.mclass==="mopen"||e.mclass==="mclose"?(n.attributes.lspace="0em",n.attributes.rspace="0em"):e.mclass==="minner"&&(n.attributes.lspace="0.0556em",n.attributes.width="+0.1111em")),n}mt({type:"mclass",names:["\\mathord","\\mathbin","\\mathrel","\\mathopen","\\mathclose","\\mathpunct","\\mathinner"],props:{numArgs:1,primitive:!0},handler(e,t){var{parser:n,funcName:r}=e,i=t[0];return{type:"mclass",mode:n.mode,mclass:"m"+r.slice(5),body:Nr(i),isCharacterBox:Ht.isCharacterBox(i)}},htmlBuilder:yz,mathmlBuilder:Fz});var L3=e=>{var t=e.type==="ordgroup"&&e.body.length?e.body[0]:e;return t.type==="atom"&&(t.family==="bin"||t.family==="rel")?"m"+t.family:"mord"};mt({type:"mclass",names:["\\@binrel"],props:{numArgs:2},handler(e,t){var{parser:n}=e;return{type:"mclass",mode:n.mode,mclass:L3(t[0]),body:Nr(t[1]),isCharacterBox:Ht.isCharacterBox(t[1])}}});mt({type:"mclass",names:["\\stackrel","\\overset","\\underset"],props:{numArgs:2},handler(e,t){var{parser:n,funcName:r}=e,i=t[1],a=t[0],o;r!=="\\stackrel"?o=L3(i):o="mrel";var l={type:"op",mode:i.mode,limits:!0,alwaysHandleSupSub:!0,parentIsSupSub:!1,symbol:!1,suppressBaseShift:r!=="\\stackrel",body:Nr(i)},s={type:"supsub",mode:a.mode,base:l,sup:r==="\\underset"?null:a,sub:r==="\\underset"?a:null};return{type:"mclass",mode:n.mode,mclass:o,body:[s],isCharacterBox:Ht.isCharacterBox(s)}},htmlBuilder:yz,mathmlBuilder:Fz});mt({type:"pmb",names:["\\pmb"],props:{numArgs:1,allowedInText:!0},handler(e,t){var{parser:n}=e;return{type:"pmb",mode:n.mode,mclass:L3(t[0]),body:Nr(t[0])}},htmlBuilder(e,t){var n=qr(e.body,t,!0),r=Be.makeSpan([e.mclass],n,t);return r.style.textShadow="0.02em 0.01em 0.04px",r},mathmlBuilder(e,t){var n=Sa(e.body,t),r=new Ue.MathNode("mstyle",n);return r.setAttribute("style","text-shadow: 0.02em 0.01em 0.04px"),r}});var uxe={">":"\\\\cdrightarrow","<":"\\\\cdleftarrow","=":"\\\\cdlongequal",A:"\\uparrow",V:"\\downarrow","|":"\\Vert",".":"no arrow"},hZ=()=>({type:"styling",body:[],mode:"math",style:"display"}),fZ=e=>e.type==="textord"&&e.text==="@",cxe=(e,t)=>(e.type==="mathord"||e.type==="atom")&&e.text===t;function dxe(e,t,n){var r=uxe[e];switch(r){case"\\\\cdrightarrow":case"\\\\cdleftarrow":return n.callFunction(r,[t[0]],[t[1]]);case"\\uparrow":case"\\downarrow":{var i=n.callFunction("\\\\cdleft",[t[0]],[]),a={type:"atom",text:r,mode:"math",family:"rel"},o=n.callFunction("\\Big",[a],[]),l=n.callFunction("\\\\cdright",[t[1]],[]),s={type:"ordgroup",mode:"math",body:[i,o,l]};return n.callFunction("\\\\cdparent",[s],[])}case"\\\\cdlongequal":return n.callFunction("\\\\cdlongequal",[],[]);case"\\Vert":{var u={type:"textord",text:"\\Vert",mode:"math"};return n.callFunction("\\Big",[u],[])}default:return{type:"textord",text:" ",mode:"math"}}}function pxe(e){var t=[];for(e.gullet.beginGroup(),e.gullet.macros.set("\\cr","\\\\\\relax"),e.gullet.beginGroup();;){t.push(e.parseExpression(!1,"\\\\")),e.gullet.endGroup(),e.gullet.beginGroup();var n=e.fetch().text;if(n==="&"||n==="\\\\")e.consume();else if(n==="\\end"){t[t.length-1].length===0&&t.pop();break}else throw new $e("Expected \\\\ or \\cr or \\end",e.nextToken)}for(var r=[],i=[r],a=0;a-1))if("<>AV".indexOf(u)>-1)for(var d=0;d<2;d++){for(var g=!0,h=s+1;hAV=|." after @',o[s]);var m=dxe(u,c,e),A={type:"styling",body:[m],mode:"math",style:"display"};r.push(A),l=hZ()}a%2===0?r.push(l):r.shift(),r=[],i.push(r)}e.gullet.endGroup(),e.gullet.endGroup();var B=new Array(i[0].length).fill({type:"align",align:"c",pregap:.25,postgap:.25});return{type:"array",mode:"math",body:i,arraystretch:1,addJot:!0,rowGaps:[null],cols:B,colSeparationType:"CD",hLinesBeforeRow:new Array(i.length+1).fill([])}}mt({type:"cdlabel",names:["\\\\cdleft","\\\\cdright"],props:{numArgs:1},handler(e,t){var{parser:n,funcName:r}=e;return{type:"cdlabel",mode:n.mode,side:r.slice(4),label:t[0]}},htmlBuilder(e,t){var n=t.havingStyle(t.style.sup()),r=Be.wrapFragment(Fn(e.label,n,t),t);return r.classes.push("cd-label-"+e.side),r.style.bottom=at(.8-r.depth),r.height=0,r.depth=0,r},mathmlBuilder(e,t){var n=new Ue.MathNode("mrow",[Jn(e.label,t)]);return n=new Ue.MathNode("mpadded",[n]),n.setAttribute("width","0"),e.side==="left"&&n.setAttribute("lspace","-1width"),n.setAttribute("voffset","0.7em"),n=new Ue.MathNode("mstyle",[n]),n.setAttribute("displaystyle","false"),n.setAttribute("scriptlevel","1"),n}});mt({type:"cdlabelparent",names:["\\\\cdparent"],props:{numArgs:1},handler(e,t){var{parser:n}=e;return{type:"cdlabelparent",mode:n.mode,fragment:t[0]}},htmlBuilder(e,t){var n=Be.wrapFragment(Fn(e.fragment,t),t);return n.classes.push("cd-vert-arrow"),n},mathmlBuilder(e,t){return new Ue.MathNode("mrow",[Jn(e.fragment,t)])}});mt({type:"textord",names:["\\@char"],props:{numArgs:1,allowedInText:!0},handler(e,t){for(var{parser:n}=e,r=tn(t[0],"ordgroup"),i=r.body,a="",o=0;o=1114111)throw new $e("\\@char with invalid code point "+a);return s<=65535?u=String.fromCharCode(s):(s-=65536,u=String.fromCharCode((s>>10)+55296,(s&1023)+56320)),{type:"textord",mode:n.mode,text:u}}});var Ez=(e,t)=>{var n=qr(e.body,t.withColor(e.color),!1);return Be.makeFragment(n)},Rz=(e,t)=>{var n=Sa(e.body,t.withColor(e.color)),r=new Ue.MathNode("mstyle",n);return r.setAttribute("mathcolor",e.color),r};mt({type:"color",names:["\\textcolor"],props:{numArgs:2,allowedInText:!0,argTypes:["color","original"]},handler(e,t){var{parser:n}=e,r=tn(t[0],"color-token").color,i=t[1];return{type:"color",mode:n.mode,color:r,body:Nr(i)}},htmlBuilder:Ez,mathmlBuilder:Rz});mt({type:"color",names:["\\color"],props:{numArgs:1,allowedInText:!0,argTypes:["color"]},handler(e,t){var{parser:n,breakOnTokenText:r}=e,i=tn(t[0],"color-token").color;n.gullet.macros.set("\\current@color",i);var a=n.parseExpression(!0,r);return{type:"color",mode:n.mode,color:i,body:a}},htmlBuilder:Ez,mathmlBuilder:Rz});mt({type:"cr",names:["\\\\"],props:{numArgs:0,numOptionalArgs:0,allowedInText:!0},handler(e,t,n){var{parser:r}=e,i=r.gullet.future().text==="["?r.parseSizeGroup(!0):null,a=!r.settings.displayMode||!r.settings.useStrictBehavior("newLineInDisplayMode","In LaTeX, \\\\ or \\newline does nothing in display mode");return{type:"cr",mode:r.mode,newLine:a,size:i&&tn(i,"size").value}},htmlBuilder(e,t){var n=Be.makeSpan(["mspace"],[],t);return e.newLine&&(n.classes.push("newline"),e.size&&(n.style.marginTop=at(br(e.size,t)))),n},mathmlBuilder(e,t){var n=new Ue.MathNode("mspace");return e.newLine&&(n.setAttribute("linebreak","newline"),e.size&&n.setAttribute("height",at(br(e.size,t)))),n}});var FF={"\\global":"\\global","\\long":"\\\\globallong","\\\\globallong":"\\\\globallong","\\def":"\\gdef","\\gdef":"\\gdef","\\edef":"\\xdef","\\xdef":"\\xdef","\\let":"\\\\globallet","\\futurelet":"\\\\globalfuture"},Sz=e=>{var t=e.text;if(/^(?:[\\{}$&#^_]|EOF)$/.test(t))throw new $e("Expected a control sequence",e);return t},gxe=e=>{var t=e.gullet.popToken();return t.text==="="&&(t=e.gullet.popToken(),t.text===" "&&(t=e.gullet.popToken())),t},xz=(e,t,n,r)=>{var i=e.gullet.macros.get(n.text);i==null&&(n.noexpand=!0,i={tokens:[n],numArgs:0,unexpandable:!e.gullet.isExpandable(n.text)}),e.gullet.macros.set(t,i,r)};mt({type:"internal",names:["\\global","\\long","\\\\globallong"],props:{numArgs:0,allowedInText:!0},handler(e){var{parser:t,funcName:n}=e;t.consumeSpaces();var r=t.fetch();if(FF[r.text])return(n==="\\global"||n==="\\\\globallong")&&(r.text=FF[r.text]),tn(t.parseFunction(),"internal");throw new $e("Invalid token after macro prefix",r)}});mt({type:"internal",names:["\\def","\\gdef","\\edef","\\xdef"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(e){var{parser:t,funcName:n}=e,r=t.gullet.popToken(),i=r.text;if(/^(?:[\\{}$&#^_]|EOF)$/.test(i))throw new $e("Expected a control sequence",r);for(var a=0,o,l=[[]];t.gullet.future().text!=="{";)if(r=t.gullet.popToken(),r.text==="#"){if(t.gullet.future().text==="{"){o=t.gullet.future(),l[a].push("{");break}if(r=t.gullet.popToken(),!/^[1-9]$/.test(r.text))throw new $e('Invalid argument number "'+r.text+'"');if(parseInt(r.text)!==a+1)throw new $e('Argument number "'+r.text+'" out of order');a++,l.push([])}else{if(r.text==="EOF")throw new $e("Expected a macro definition");l[a].push(r.text)}var{tokens:s}=t.gullet.consumeArg();return o&&s.unshift(o),(n==="\\edef"||n==="\\xdef")&&(s=t.gullet.expandTokens(s),s.reverse()),t.gullet.macros.set(i,{tokens:s,numArgs:a,delimiters:l},n===FF[n]),{type:"internal",mode:t.mode}}});mt({type:"internal",names:["\\let","\\\\globallet"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(e){var{parser:t,funcName:n}=e,r=Sz(t.gullet.popToken());t.gullet.consumeSpaces();var i=gxe(t);return xz(t,r,i,n==="\\\\globallet"),{type:"internal",mode:t.mode}}});mt({type:"internal",names:["\\futurelet","\\\\globalfuture"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(e){var{parser:t,funcName:n}=e,r=Sz(t.gullet.popToken()),i=t.gullet.popToken(),a=t.gullet.popToken();return xz(t,r,a,n==="\\\\globalfuture"),t.gullet.pushToken(a),t.gullet.pushToken(i),{type:"internal",mode:t.mode}}});var ch=function(t,n,r){var i=tr.math[t]&&tr.math[t].replace,a=sR(i||t,n,r);if(!a)throw new Error("Unsupported symbol "+t+" and font size "+n+".");return a},fR=function(t,n,r,i){var a=r.havingBaseStyle(n),o=Be.makeSpan(i.concat(a.sizingClasses(r)),[t],r),l=a.sizeMultiplier/r.sizeMultiplier;return o.height*=l,o.depth*=l,o.maxFontSize=a.sizeMultiplier,o},Gz=function(t,n,r){var i=n.havingBaseStyle(r),a=(1-n.sizeMultiplier/i.sizeMultiplier)*n.fontMetrics().axisHeight;t.classes.push("delimcenter"),t.style.top=at(a),t.height-=a,t.depth+=a},hxe=function(t,n,r,i,a,o){var l=Be.makeSymbol(t,"Main-Regular",a,i),s=fR(l,n,i,o);return r&&Gz(s,i,n),s},fxe=function(t,n,r,i){return Be.makeSymbol(t,"Size"+n+"-Regular",r,i)},kz=function(t,n,r,i,a,o){var l=fxe(t,n,a,i),s=fR(Be.makeSpan(["delimsizing","size"+n],[l],i),Tt.TEXT,i,o);return r&&Gz(s,i,Tt.TEXT),s},_K=function(t,n,r){var i;n==="Size1-Regular"?i="delim-size1":i="delim-size4";var a=Be.makeSpan(["delimsizinginner",i],[Be.makeSpan([],[Be.makeSymbol(t,n,r)])]);return{type:"elem",elem:a}},$K=function(t,n,r){var i=ql["Size4-Regular"][t.charCodeAt(0)]?ql["Size4-Regular"][t.charCodeAt(0)][4]:ql["Size1-Regular"][t.charCodeAt(0)][4],a=new xc("inner",b7e(t,Math.round(1e3*n))),o=new su([a],{width:at(i),height:at(n),style:"width:"+at(i),viewBox:"0 0 "+1e3*i+" "+Math.round(1e3*n),preserveAspectRatio:"xMinYMin"}),l=Be.makeSvgSpan([],[o],r);return l.height=n,l.style.height=at(n),l.style.width=at(i),{type:"elem",elem:l}},EF=.008,W2={type:"kern",size:-1*EF},mxe=["|","\\lvert","\\rvert","\\vert"],Axe=["\\|","\\lVert","\\rVert","\\Vert"],Dz=function(t,n,r,i,a,o){var l,s,u,c,d="",g=0;l=u=c=t,s=null;var h="Size1-Regular";t==="\\uparrow"?u=c="⏐":t==="\\Uparrow"?u=c="‖":t==="\\downarrow"?l=u="⏐":t==="\\Downarrow"?l=u="‖":t==="\\updownarrow"?(l="\\uparrow",u="⏐",c="\\downarrow"):t==="\\Updownarrow"?(l="\\Uparrow",u="‖",c="\\Downarrow"):Ht.contains(mxe,t)?(u="∣",d="vert",g=333):Ht.contains(Axe,t)?(u="∥",d="doublevert",g=556):t==="["||t==="\\lbrack"?(l="⎡",u="⎢",c="⎣",h="Size4-Regular",d="lbrack",g=667):t==="]"||t==="\\rbrack"?(l="⎤",u="⎥",c="⎦",h="Size4-Regular",d="rbrack",g=667):t==="\\lfloor"||t==="⌊"?(u=l="⎢",c="⎣",h="Size4-Regular",d="lfloor",g=667):t==="\\lceil"||t==="⌈"?(l="⎡",u=c="⎢",h="Size4-Regular",d="lceil",g=667):t==="\\rfloor"||t==="⌋"?(u=l="⎥",c="⎦",h="Size4-Regular",d="rfloor",g=667):t==="\\rceil"||t==="⌉"?(l="⎤",u=c="⎥",h="Size4-Regular",d="rceil",g=667):t==="("||t==="\\lparen"?(l="⎛",u="⎜",c="⎝",h="Size4-Regular",d="lparen",g=875):t===")"||t==="\\rparen"?(l="⎞",u="⎟",c="⎠",h="Size4-Regular",d="rparen",g=875):t==="\\{"||t==="\\lbrace"?(l="⎧",s="⎨",c="⎩",u="⎪",h="Size4-Regular"):t==="\\}"||t==="\\rbrace"?(l="⎫",s="⎬",c="⎭",u="⎪",h="Size4-Regular"):t==="\\lgroup"||t==="⟮"?(l="⎧",c="⎩",u="⎪",h="Size4-Regular"):t==="\\rgroup"||t==="⟯"?(l="⎫",c="⎭",u="⎪",h="Size4-Regular"):t==="\\lmoustache"||t==="⎰"?(l="⎧",c="⎭",u="⎪",h="Size4-Regular"):(t==="\\rmoustache"||t==="⎱")&&(l="⎫",c="⎩",u="⎪",h="Size4-Regular");var m=ch(l,h,a),A=m.height+m.depth,B=ch(u,h,a),C=B.height+B.depth,b=ch(c,h,a),Q=b.height+b.depth,F=0,K=1;if(s!==null){var y=ch(s,h,a);F=y.height+y.depth,K=2}var G=A+Q+F,X=Math.max(0,Math.ceil((n-G)/(K*C))),H=G+X*K*C,v=i.fontMetrics().axisHeight;r&&(v*=i.sizeMultiplier);var k=H/2-v,D=[];if(d.length>0){var V=H-A-Q,z=Math.round(H*1e3),j=v7e(d,Math.round(V*1e3)),te=new xc(d,j),J=(g/1e3).toFixed(3)+"em",I=(z/1e3).toFixed(3)+"em",se=new su([te],{width:J,height:I,viewBox:"0 0 "+g+" "+z}),Z=Be.makeSvgSpan([],[se],i);Z.height=z/1e3,Z.style.width=J,Z.style.height=I,D.push({type:"elem",elem:Z})}else{if(D.push(_K(c,h,a)),D.push(W2),s===null){var S=H-A-Q+2*EF;D.push($K(u,S,i))}else{var q=(H-A-Q-F)/2+2*EF;D.push($K(u,q,i)),D.push(W2),D.push(_K(s,h,a)),D.push(W2),D.push($K(u,q,i))}D.push(W2),D.push(_K(l,h,a))}var T=i.havingBaseStyle(Tt.TEXT),ue=Be.makeVList({positionType:"bottom",positionData:k,children:D},T);return fR(Be.makeSpan(["delimsizing","mult"],[ue],T),Tt.TEXT,i,o)},qK=80,eQ=.08,tQ=function(t,n,r,i,a){var o=w7e(t,i,r),l=new xc(t,o),s=new su([l],{width:"400em",height:at(n),viewBox:"0 0 400000 "+r,preserveAspectRatio:"xMinYMin slice"});return Be.makeSvgSpan(["hide-tail"],[s],a)},Cxe=function(t,n){var r=n.havingBaseSizing(),i=Xz("\\surd",t*r.sizeMultiplier,Hz,r),a=r.sizeMultiplier,o=Math.max(0,n.minRuleThickness-n.fontMetrics().sqrtRuleThickness),l,s=0,u=0,c=0,d;return i.type==="small"?(c=1e3+1e3*o+qK,t<1?a=1:t<1.4&&(a=.7),s=(1+o+eQ)/a,u=(1+o)/a,l=tQ("sqrtMain",s,c,o,n),l.style.minWidth="0.853em",d=.833/a):i.type==="large"?(c=(1e3+qK)*Nh[i.size],u=(Nh[i.size]+o)/a,s=(Nh[i.size]+o+eQ)/a,l=tQ("sqrtSize"+i.size,s,c,o,n),l.style.minWidth="1.02em",d=1/a):(s=t+o+eQ,u=t+o,c=Math.floor(1e3*t+o)+qK,l=tQ("sqrtTall",s,c,o,n),l.style.minWidth="0.742em",d=1.056),l.height=u,l.style.height=at(s),{span:l,advanceWidth:d,ruleWidth:(n.fontMetrics().sqrtRuleThickness+o)*a}},Nz=["(","\\lparen",")","\\rparen","[","\\lbrack","]","\\rbrack","\\{","\\lbrace","\\}","\\rbrace","\\lfloor","\\rfloor","⌊","⌋","\\lceil","\\rceil","⌈","⌉","\\surd"],Bxe=["\\uparrow","\\downarrow","\\updownarrow","\\Uparrow","\\Downarrow","\\Updownarrow","|","\\|","\\vert","\\Vert","\\lvert","\\rvert","\\lVert","\\rVert","\\lgroup","\\rgroup","⟮","⟯","\\lmoustache","\\rmoustache","⎰","⎱"],Zz=["<",">","\\langle","\\rangle","/","\\backslash","\\lt","\\gt"],Nh=[0,1.2,1.8,2.4,3],wxe=function(t,n,r,i,a){if(t==="<"||t==="\\lt"||t==="⟨"?t="\\langle":(t===">"||t==="\\gt"||t==="⟩")&&(t="\\rangle"),Ht.contains(Nz,t)||Ht.contains(Zz,t))return kz(t,n,!1,r,i,a);if(Ht.contains(Bxe,t))return Dz(t,Nh[n],!1,r,i,a);throw new $e("Illegal delimiter: '"+t+"'")},bxe=[{type:"small",style:Tt.SCRIPTSCRIPT},{type:"small",style:Tt.SCRIPT},{type:"small",style:Tt.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4}],vxe=[{type:"small",style:Tt.SCRIPTSCRIPT},{type:"small",style:Tt.SCRIPT},{type:"small",style:Tt.TEXT},{type:"stack"}],Hz=[{type:"small",style:Tt.SCRIPTSCRIPT},{type:"small",style:Tt.SCRIPT},{type:"small",style:Tt.TEXT},{type:"large",size:1},{type:"large",size:2},{type:"large",size:3},{type:"large",size:4},{type:"stack"}],Kxe=function(t){if(t.type==="small")return"Main-Regular";if(t.type==="large")return"Size"+t.size+"-Regular";if(t.type==="stack")return"Size4-Regular";throw new Error("Add support for delim type '"+t.type+"' here.")},Xz=function(t,n,r,i){for(var a=Math.min(2,3-i.style.size),o=a;on)return r[o]}return r[r.length-1]},Lz=function(t,n,r,i,a,o){t==="<"||t==="\\lt"||t==="⟨"?t="\\langle":(t===">"||t==="\\gt"||t==="⟩")&&(t="\\rangle");var l;Ht.contains(Zz,t)?l=bxe:Ht.contains(Nz,t)?l=Hz:l=vxe;var s=Xz(t,n,l,i);return s.type==="small"?hxe(t,s.style,r,i,a,o):s.type==="large"?kz(t,s.size,r,i,a,o):Dz(t,n,r,i,a,o)},Qxe=function(t,n,r,i,a,o){var l=i.fontMetrics().axisHeight*i.sizeMultiplier,s=901,u=5/i.fontMetrics().ptPerEm,c=Math.max(n-l,r+l),d=Math.max(c/500*s,2*c-u);return Lz(t,d,!0,i,a,o)},qs={sqrtImage:Cxe,sizedDelim:wxe,sizeToMaxHeight:Nh,customSizedDelim:Lz,leftRightDelim:Qxe},mZ={"\\bigl":{mclass:"mopen",size:1},"\\Bigl":{mclass:"mopen",size:2},"\\biggl":{mclass:"mopen",size:3},"\\Biggl":{mclass:"mopen",size:4},"\\bigr":{mclass:"mclose",size:1},"\\Bigr":{mclass:"mclose",size:2},"\\biggr":{mclass:"mclose",size:3},"\\Biggr":{mclass:"mclose",size:4},"\\bigm":{mclass:"mrel",size:1},"\\Bigm":{mclass:"mrel",size:2},"\\biggm":{mclass:"mrel",size:3},"\\Biggm":{mclass:"mrel",size:4},"\\big":{mclass:"mord",size:1},"\\Big":{mclass:"mord",size:2},"\\bigg":{mclass:"mord",size:3},"\\Bigg":{mclass:"mord",size:4}},Wxe=["(","\\lparen",")","\\rparen","[","\\lbrack","]","\\rbrack","\\{","\\lbrace","\\}","\\rbrace","\\lfloor","\\rfloor","⌊","⌋","\\lceil","\\rceil","⌈","⌉","<",">","\\langle","⟨","\\rangle","⟩","\\lt","\\gt","\\lvert","\\rvert","\\lVert","\\rVert","\\lgroup","\\rgroup","⟮","⟯","\\lmoustache","\\rmoustache","⎰","⎱","/","\\backslash","|","\\vert","\\|","\\Vert","\\uparrow","\\Uparrow","\\downarrow","\\Downarrow","\\updownarrow","\\Updownarrow","."];function M3(e,t){var n=X3(e);if(n&&Ht.contains(Wxe,n.text))return n;throw n?new $e("Invalid delimiter '"+n.text+"' after '"+t.funcName+"'",e):new $e("Invalid delimiter type '"+e.type+"'",e)}mt({type:"delimsizing",names:["\\bigl","\\Bigl","\\biggl","\\Biggl","\\bigr","\\Bigr","\\biggr","\\Biggr","\\bigm","\\Bigm","\\biggm","\\Biggm","\\big","\\Big","\\bigg","\\Bigg"],props:{numArgs:1,argTypes:["primitive"]},handler:(e,t)=>{var n=M3(t[0],e);return{type:"delimsizing",mode:e.parser.mode,size:mZ[e.funcName].size,mclass:mZ[e.funcName].mclass,delim:n.text}},htmlBuilder:(e,t)=>e.delim==="."?Be.makeSpan([e.mclass]):qs.sizedDelim(e.delim,e.size,t,e.mode,[e.mclass]),mathmlBuilder:e=>{var t=[];e.delim!=="."&&t.push(Io(e.delim,e.mode));var n=new Ue.MathNode("mo",t);e.mclass==="mopen"||e.mclass==="mclose"?n.setAttribute("fence","true"):n.setAttribute("fence","false"),n.setAttribute("stretchy","true");var r=at(qs.sizeToMaxHeight[e.size]);return n.setAttribute("minsize",r),n.setAttribute("maxsize",r),n}});function AZ(e){if(!e.body)throw new Error("Bug: The leftright ParseNode wasn't fully parsed.")}mt({type:"leftright-right",names:["\\right"],props:{numArgs:1,primitive:!0},handler:(e,t)=>{var n=e.parser.gullet.macros.get("\\current@color");if(n&&typeof n!="string")throw new $e("\\current@color set to non-string in \\right");return{type:"leftright-right",mode:e.parser.mode,delim:M3(t[0],e).text,color:n}}});mt({type:"leftright",names:["\\left"],props:{numArgs:1,primitive:!0},handler:(e,t)=>{var n=M3(t[0],e),r=e.parser;++r.leftrightDepth;var i=r.parseExpression(!1);--r.leftrightDepth,r.expect("\\right",!1);var a=tn(r.parseFunction(),"leftright-right");return{type:"leftright",mode:r.mode,body:i,left:n.text,right:a.delim,rightColor:a.color}},htmlBuilder:(e,t)=>{AZ(e);for(var n=qr(e.body,t,!0,["mopen","mclose"]),r=0,i=0,a=!1,o=0;o{AZ(e);var n=Sa(e.body,t);if(e.left!=="."){var r=new Ue.MathNode("mo",[Io(e.left,e.mode)]);r.setAttribute("fence","true"),n.unshift(r)}if(e.right!=="."){var i=new Ue.MathNode("mo",[Io(e.right,e.mode)]);i.setAttribute("fence","true"),e.rightColor&&i.setAttribute("mathcolor",e.rightColor),n.push(i)}return dR(n)}});mt({type:"middle",names:["\\middle"],props:{numArgs:1,primitive:!0},handler:(e,t)=>{var n=M3(t[0],e);if(!e.parser.leftrightDepth)throw new $e("\\middle without preceding \\left",n);return{type:"middle",mode:e.parser.mode,delim:n.text}},htmlBuilder:(e,t)=>{var n;if(e.delim===".")n=Ef(t,[]);else{n=qs.sizedDelim(e.delim,1,t,e.mode,[]);var r={delim:e.delim,options:t};n.isMiddle=r}return n},mathmlBuilder:(e,t)=>{var n=e.delim==="\\vert"||e.delim==="|"?Io("|","text"):Io(e.delim,e.mode),r=new Ue.MathNode("mo",[n]);return r.setAttribute("fence","true"),r.setAttribute("lspace","0.05em"),r.setAttribute("rspace","0.05em"),r}});var mR=(e,t)=>{var n=Be.wrapFragment(Fn(e.body,t),t),r=e.label.slice(1),i=t.sizeMultiplier,a,o=0,l=Ht.isCharacterBox(e.body);if(r==="sout")a=Be.makeSpan(["stretchy","sout"]),a.height=t.fontMetrics().defaultRuleThickness/i,o=-.5*t.fontMetrics().xHeight;else if(r==="phase"){var s=br({number:.6,unit:"pt"},t),u=br({number:.35,unit:"ex"},t),c=t.havingBaseSizing();i=i/c.sizeMultiplier;var d=n.height+n.depth+s+u;n.style.paddingLeft=at(d/2+s);var g=Math.floor(1e3*d*i),h=C7e(g),m=new su([new xc("phase",h)],{width:"400em",height:at(g/1e3),viewBox:"0 0 400000 "+g,preserveAspectRatio:"xMinYMin slice"});a=Be.makeSvgSpan(["hide-tail"],[m],t),a.style.height=at(d),o=n.depth+s+u}else{/cancel/.test(r)?l||n.classes.push("cancel-pad"):r==="angl"?n.classes.push("anglpad"):n.classes.push("boxpad");var A=0,B=0,C=0;/box/.test(r)?(C=Math.max(t.fontMetrics().fboxrule,t.minRuleThickness),A=t.fontMetrics().fboxsep+(r==="colorbox"?0:C),B=A):r==="angl"?(C=Math.max(t.fontMetrics().defaultRuleThickness,t.minRuleThickness),A=4*C,B=Math.max(0,.25-n.depth)):(A=l?.2:0,B=A),a=cu.encloseSpan(n,r,A,B,t),/fbox|boxed|fcolorbox/.test(r)?(a.style.borderStyle="solid",a.style.borderWidth=at(C)):r==="angl"&&C!==.049&&(a.style.borderTopWidth=at(C),a.style.borderRightWidth=at(C)),o=n.depth+B,e.backgroundColor&&(a.style.backgroundColor=e.backgroundColor,e.borderColor&&(a.style.borderColor=e.borderColor))}var b;if(e.backgroundColor)b=Be.makeVList({positionType:"individualShift",children:[{type:"elem",elem:a,shift:o},{type:"elem",elem:n,shift:0}]},t);else{var Q=/cancel|phase/.test(r)?["svg-align"]:[];b=Be.makeVList({positionType:"individualShift",children:[{type:"elem",elem:n,shift:0},{type:"elem",elem:a,shift:o,wrapperClasses:Q}]},t)}return/cancel/.test(r)&&(b.height=n.height,b.depth=n.depth),/cancel/.test(r)&&!l?Be.makeSpan(["mord","cancel-lap"],[b],t):Be.makeSpan(["mord"],[b],t)},AR=(e,t)=>{var n=0,r=new Ue.MathNode(e.label.indexOf("colorbox")>-1?"mpadded":"menclose",[Jn(e.body,t)]);switch(e.label){case"\\cancel":r.setAttribute("notation","updiagonalstrike");break;case"\\bcancel":r.setAttribute("notation","downdiagonalstrike");break;case"\\phase":r.setAttribute("notation","phasorangle");break;case"\\sout":r.setAttribute("notation","horizontalstrike");break;case"\\fbox":r.setAttribute("notation","box");break;case"\\angl":r.setAttribute("notation","actuarial");break;case"\\fcolorbox":case"\\colorbox":if(n=t.fontMetrics().fboxsep*t.fontMetrics().ptPerEm,r.setAttribute("width","+"+2*n+"pt"),r.setAttribute("height","+"+2*n+"pt"),r.setAttribute("lspace",n+"pt"),r.setAttribute("voffset",n+"pt"),e.label==="\\fcolorbox"){var i=Math.max(t.fontMetrics().fboxrule,t.minRuleThickness);r.setAttribute("style","border: "+i+"em solid "+String(e.borderColor))}break;case"\\xcancel":r.setAttribute("notation","updiagonalstrike downdiagonalstrike");break}return e.backgroundColor&&r.setAttribute("mathbackground",e.backgroundColor),r};mt({type:"enclose",names:["\\colorbox"],props:{numArgs:2,allowedInText:!0,argTypes:["color","text"]},handler(e,t,n){var{parser:r,funcName:i}=e,a=tn(t[0],"color-token").color,o=t[1];return{type:"enclose",mode:r.mode,label:i,backgroundColor:a,body:o}},htmlBuilder:mR,mathmlBuilder:AR});mt({type:"enclose",names:["\\fcolorbox"],props:{numArgs:3,allowedInText:!0,argTypes:["color","color","text"]},handler(e,t,n){var{parser:r,funcName:i}=e,a=tn(t[0],"color-token").color,o=tn(t[1],"color-token").color,l=t[2];return{type:"enclose",mode:r.mode,label:i,backgroundColor:o,borderColor:a,body:l}},htmlBuilder:mR,mathmlBuilder:AR});mt({type:"enclose",names:["\\fbox"],props:{numArgs:1,argTypes:["hbox"],allowedInText:!0},handler(e,t){var{parser:n}=e;return{type:"enclose",mode:n.mode,label:"\\fbox",body:t[0]}}});mt({type:"enclose",names:["\\cancel","\\bcancel","\\xcancel","\\sout","\\phase"],props:{numArgs:1},handler(e,t){var{parser:n,funcName:r}=e,i=t[0];return{type:"enclose",mode:n.mode,label:r,body:i}},htmlBuilder:mR,mathmlBuilder:AR});mt({type:"enclose",names:["\\angl"],props:{numArgs:1,argTypes:["hbox"],allowedInText:!1},handler(e,t){var{parser:n}=e;return{type:"enclose",mode:n.mode,label:"\\angl",body:t[0]}}});var Mz={};function ms(e){for(var{type:t,names:n,props:r,handler:i,htmlBuilder:a,mathmlBuilder:o}=e,l={type:t,numArgs:r.numArgs||0,allowedInText:!1,numOptionalArgs:0,handler:i},s=0;s{var t=e.parser.settings;if(!t.displayMode)throw new $e("{"+e.envName+"} can be used only in display mode.")};function CR(e){if(e.indexOf("ed")===-1)return e.indexOf("*")===-1}function Uc(e,t,n){var{hskipBeforeAndAfter:r,addJot:i,cols:a,arraystretch:o,colSeparationType:l,autoTag:s,singleRow:u,emptySingleRow:c,maxNumCols:d,leqno:g}=t;if(e.gullet.beginGroup(),u||e.gullet.macros.set("\\cr","\\\\\\relax"),!o){var h=e.gullet.expandMacroAsText("\\arraystretch");if(h==null)o=1;else if(o=parseFloat(h),!o||o<0)throw new $e("Invalid \\arraystretch: "+h)}e.gullet.beginGroup();var m=[],A=[m],B=[],C=[],b=s!=null?[]:void 0;function Q(){s&&e.gullet.macros.set("\\@eqnsw","1",!0)}function F(){b&&(e.gullet.macros.get("\\df@tag")?(b.push(e.subparse([new Ho("\\df@tag")])),e.gullet.macros.set("\\df@tag",void 0,!0)):b.push(!!s&&e.gullet.macros.get("\\@eqnsw")==="1"))}for(Q(),C.push(CZ(e));;){var K=e.parseExpression(!1,u?"\\end":"\\\\");e.gullet.endGroup(),e.gullet.beginGroup(),K={type:"ordgroup",mode:e.mode,body:K},n&&(K={type:"styling",mode:e.mode,style:n,body:[K]}),m.push(K);var y=e.fetch().text;if(y==="&"){if(d&&m.length===d){if(u||l)throw new $e("Too many tab characters: &",e.nextToken);e.settings.reportNonstrict("textEnv","Too few columns specified in the {array} column argument.")}e.consume()}else if(y==="\\end"){F(),m.length===1&&K.type==="styling"&&K.body[0].body.length===0&&(A.length>1||!c)&&A.pop(),C.length0&&(Q+=.25),u.push({pos:Q,isDashed:P[le]})}for(F(o[0]),r=0;r0&&(k+=b,GP))for(r=0;r=l)){var Ze=void 0;(i>0||t.hskipBeforeAndAfter)&&(Ze=Ht.deflt(q.pregap,g),Ze!==0&&(j=Be.makeSpan(["arraycolsep"],[]),j.style.width=at(Ze),z.push(j)));var ve=[];for(r=0;r0){for(var Oe=Be.makeLineSpan("hline",n,c),tt=Be.makeLineSpan("hdashline",n,c),st=[{type:"elem",elem:s,shift:0}];u.length>0;){var pt=u.pop(),ht=pt.pos-D;pt.isDashed?st.push({type:"elem",elem:tt,shift:ht}):st.push({type:"elem",elem:Oe,shift:ht})}s=Be.makeVList({positionType:"individualShift",children:st},n)}if(J.length===0)return Be.makeSpan(["mord"],[s],n);var lt=Be.makeVList({positionType:"individualShift",children:J},n);return lt=Be.makeSpan(["tag"],[lt],n),Be.makeFragment([s,lt])},yxe={c:"center ",l:"left ",r:"right "},Cs=function(t,n){for(var r=[],i=new Ue.MathNode("mtd",[],["mtr-glue"]),a=new Ue.MathNode("mtd",[],["mml-eqn-num"]),o=0;o0){var m=t.cols,A="",B=!1,C=0,b=m.length;m[0].type==="separator"&&(g+="top ",C=1),m[m.length-1].type==="separator"&&(g+="bottom ",b-=1);for(var Q=C;Q0?"left ":"",g+=X[X.length-1].length>0?"right ":"";for(var H=1;H-1?"alignat":"align",a=t.envName==="split",o=Uc(t.parser,{cols:r,addJot:!0,autoTag:a?void 0:CR(t.envName),emptySingleRow:!0,colSeparationType:i,maxNumCols:a?2:void 0,leqno:t.parser.settings.leqno},"display"),l,s=0,u={type:"ordgroup",mode:t.mode,body:[]};if(n[0]&&n[0].type==="ordgroup"){for(var c="",d=0;d0&&h&&(B=1),r[m]={type:"align",align:A,pregap:B,postgap:0}}return o.colSeparationType=h?"align":"alignat",o};ms({type:"array",names:["array","darray"],props:{numArgs:1},handler(e,t){var n=X3(t[0]),r=n?[t[0]]:tn(t[0],"ordgroup").body,i=r.map(function(o){var l=gR(o),s=l.text;if("lcr".indexOf(s)!==-1)return{type:"align",align:s};if(s==="|")return{type:"separator",separator:"|"};if(s===":")return{type:"separator",separator:":"};throw new $e("Unknown column alignment: "+s,o)}),a={cols:i,hskipBeforeAndAfter:!0,maxNumCols:i.length};return Uc(e.parser,a,BR(e.envName))},htmlBuilder:As,mathmlBuilder:Cs});ms({type:"array",names:["matrix","pmatrix","bmatrix","Bmatrix","vmatrix","Vmatrix","matrix*","pmatrix*","bmatrix*","Bmatrix*","vmatrix*","Vmatrix*"],props:{numArgs:0},handler(e){var t={matrix:null,pmatrix:["(",")"],bmatrix:["[","]"],Bmatrix:["\\{","\\}"],vmatrix:["|","|"],Vmatrix:["\\Vert","\\Vert"]}[e.envName.replace("*","")],n="c",r={hskipBeforeAndAfter:!1,cols:[{type:"align",align:n}]};if(e.envName.charAt(e.envName.length-1)==="*"){var i=e.parser;if(i.consumeSpaces(),i.fetch().text==="["){if(i.consume(),i.consumeSpaces(),n=i.fetch().text,"lcr".indexOf(n)===-1)throw new $e("Expected l or c or r",i.nextToken);i.consume(),i.consumeSpaces(),i.expect("]"),i.consume(),r.cols=[{type:"align",align:n}]}}var a=Uc(e.parser,r,BR(e.envName)),o=Math.max(0,...a.body.map(l=>l.length));return a.cols=new Array(o).fill({type:"align",align:n}),t?{type:"leftright",mode:e.mode,body:[a],left:t[0],right:t[1],rightColor:void 0}:a},htmlBuilder:As,mathmlBuilder:Cs});ms({type:"array",names:["smallmatrix"],props:{numArgs:0},handler(e){var t={arraystretch:.5},n=Uc(e.parser,t,"script");return n.colSeparationType="small",n},htmlBuilder:As,mathmlBuilder:Cs});ms({type:"array",names:["subarray"],props:{numArgs:1},handler(e,t){var n=X3(t[0]),r=n?[t[0]]:tn(t[0],"ordgroup").body,i=r.map(function(o){var l=gR(o),s=l.text;if("lc".indexOf(s)!==-1)return{type:"align",align:s};throw new $e("Unknown column alignment: "+s,o)});if(i.length>1)throw new $e("{subarray} can contain only one column");var a={cols:i,hskipBeforeAndAfter:!1,arraystretch:.5};if(a=Uc(e.parser,a,"script"),a.body.length>0&&a.body[0].length>1)throw new $e("{subarray} can contain only one column");return a},htmlBuilder:As,mathmlBuilder:Cs});ms({type:"array",names:["cases","dcases","rcases","drcases"],props:{numArgs:0},handler(e){var t={arraystretch:1.2,cols:[{type:"align",align:"l",pregap:0,postgap:1},{type:"align",align:"l",pregap:0,postgap:0}]},n=Uc(e.parser,t,BR(e.envName));return{type:"leftright",mode:e.mode,body:[n],left:e.envName.indexOf("r")>-1?".":"\\{",right:e.envName.indexOf("r")>-1?"\\}":".",rightColor:void 0}},htmlBuilder:As,mathmlBuilder:Cs});ms({type:"array",names:["align","align*","aligned","split"],props:{numArgs:0},handler:Vz,htmlBuilder:As,mathmlBuilder:Cs});ms({type:"array",names:["gathered","gather","gather*"],props:{numArgs:0},handler(e){Ht.contains(["gather","gather*"],e.envName)&&T3(e);var t={cols:[{type:"align",align:"c"}],addJot:!0,colSeparationType:"gather",autoTag:CR(e.envName),emptySingleRow:!0,leqno:e.parser.settings.leqno};return Uc(e.parser,t,"display")},htmlBuilder:As,mathmlBuilder:Cs});ms({type:"array",names:["alignat","alignat*","alignedat"],props:{numArgs:1},handler:Vz,htmlBuilder:As,mathmlBuilder:Cs});ms({type:"array",names:["equation","equation*"],props:{numArgs:0},handler(e){T3(e);var t={autoTag:CR(e.envName),emptySingleRow:!0,singleRow:!0,maxNumCols:1,leqno:e.parser.settings.leqno};return Uc(e.parser,t,"display")},htmlBuilder:As,mathmlBuilder:Cs});ms({type:"array",names:["CD"],props:{numArgs:0},handler(e){return T3(e),pxe(e.parser)},htmlBuilder:As,mathmlBuilder:Cs});U("\\nonumber","\\gdef\\@eqnsw{0}");U("\\notag","\\nonumber");mt({type:"text",names:["\\hline","\\hdashline"],props:{numArgs:0,allowedInText:!0,allowedInMath:!0},handler(e,t){throw new $e(e.funcName+" valid only within array environment")}});var BZ=Mz;mt({type:"environment",names:["\\begin","\\end"],props:{numArgs:1,argTypes:["text"]},handler(e,t){var{parser:n,funcName:r}=e,i=t[0];if(i.type!=="ordgroup")throw new $e("Invalid environment name",i);for(var a="",o=0;o{var n=e.font,r=t.withFont(n);return Fn(e.body,r)},Iz=(e,t)=>{var n=e.font,r=t.withFont(n);return Jn(e.body,r)},wZ={"\\Bbb":"\\mathbb","\\bold":"\\mathbf","\\frak":"\\mathfrak","\\bm":"\\boldsymbol"};mt({type:"font",names:["\\mathrm","\\mathit","\\mathbf","\\mathnormal","\\mathbb","\\mathcal","\\mathfrak","\\mathscr","\\mathsf","\\mathtt","\\Bbb","\\bold","\\frak"],props:{numArgs:1,allowedInArgument:!0},handler:(e,t)=>{var{parser:n,funcName:r}=e,i=TB(t[0]),a=r;return a in wZ&&(a=wZ[a]),{type:"font",mode:n.mode,font:a.slice(1),body:i}},htmlBuilder:Yz,mathmlBuilder:Iz});mt({type:"mclass",names:["\\boldsymbol","\\bm"],props:{numArgs:1},handler:(e,t)=>{var{parser:n}=e,r=t[0],i=Ht.isCharacterBox(r);return{type:"mclass",mode:n.mode,mclass:L3(r),body:[{type:"font",mode:n.mode,font:"boldsymbol",body:r}],isCharacterBox:i}}});mt({type:"font",names:["\\rm","\\sf","\\tt","\\bf","\\it","\\cal"],props:{numArgs:0,allowedInText:!0},handler:(e,t)=>{var{parser:n,funcName:r,breakOnTokenText:i}=e,{mode:a}=n,o=n.parseExpression(!0,i),l="math"+r.slice(1);return{type:"font",mode:a,font:l,body:{type:"ordgroup",mode:n.mode,body:o}}},htmlBuilder:Yz,mathmlBuilder:Iz});var Uz=(e,t)=>{var n=t;return e==="display"?n=n.id>=Tt.SCRIPT.id?n.text():Tt.DISPLAY:e==="text"&&n.size===Tt.DISPLAY.size?n=Tt.TEXT:e==="script"?n=Tt.SCRIPT:e==="scriptscript"&&(n=Tt.SCRIPTSCRIPT),n},wR=(e,t)=>{var n=Uz(e.size,t.style),r=n.fracNum(),i=n.fracDen(),a;a=t.havingStyle(r);var o=Fn(e.numer,a,t);if(e.continued){var l=8.5/t.fontMetrics().ptPerEm,s=3.5/t.fontMetrics().ptPerEm;o.height=o.height0?m=3*g:m=7*g,A=t.fontMetrics().denom1):(d>0?(h=t.fontMetrics().num2,m=g):(h=t.fontMetrics().num3,m=3*g),A=t.fontMetrics().denom2);var B;if(c){var b=t.fontMetrics().axisHeight;h-o.depth-(b+.5*d){var n=new Ue.MathNode("mfrac",[Jn(e.numer,t),Jn(e.denom,t)]);if(!e.hasBarLine)n.setAttribute("linethickness","0px");else if(e.barSize){var r=br(e.barSize,t);n.setAttribute("linethickness",at(r))}var i=Uz(e.size,t.style);if(i.size!==t.style.size){n=new Ue.MathNode("mstyle",[n]);var a=i.size===Tt.DISPLAY.size?"true":"false";n.setAttribute("displaystyle",a),n.setAttribute("scriptlevel","0")}if(e.leftDelim!=null||e.rightDelim!=null){var o=[];if(e.leftDelim!=null){var l=new Ue.MathNode("mo",[new Ue.TextNode(e.leftDelim.replace("\\",""))]);l.setAttribute("fence","true"),o.push(l)}if(o.push(n),e.rightDelim!=null){var s=new Ue.MathNode("mo",[new Ue.TextNode(e.rightDelim.replace("\\",""))]);s.setAttribute("fence","true"),o.push(s)}return dR(o)}return n};mt({type:"genfrac",names:["\\dfrac","\\frac","\\tfrac","\\dbinom","\\binom","\\tbinom","\\\\atopfrac","\\\\bracefrac","\\\\brackfrac"],props:{numArgs:2,allowedInArgument:!0},handler:(e,t)=>{var{parser:n,funcName:r}=e,i=t[0],a=t[1],o,l=null,s=null,u="auto";switch(r){case"\\dfrac":case"\\frac":case"\\tfrac":o=!0;break;case"\\\\atopfrac":o=!1;break;case"\\dbinom":case"\\binom":case"\\tbinom":o=!1,l="(",s=")";break;case"\\\\bracefrac":o=!1,l="\\{",s="\\}";break;case"\\\\brackfrac":o=!1,l="[",s="]";break;default:throw new Error("Unrecognized genfrac command")}switch(r){case"\\dfrac":case"\\dbinom":u="display";break;case"\\tfrac":case"\\tbinom":u="text";break}return{type:"genfrac",mode:n.mode,continued:!1,numer:i,denom:a,hasBarLine:o,leftDelim:l,rightDelim:s,size:u,barSize:null}},htmlBuilder:wR,mathmlBuilder:bR});mt({type:"genfrac",names:["\\cfrac"],props:{numArgs:2},handler:(e,t)=>{var{parser:n,funcName:r}=e,i=t[0],a=t[1];return{type:"genfrac",mode:n.mode,continued:!0,numer:i,denom:a,hasBarLine:!0,leftDelim:null,rightDelim:null,size:"display",barSize:null}}});mt({type:"infix",names:["\\over","\\choose","\\atop","\\brace","\\brack"],props:{numArgs:0,infix:!0},handler(e){var{parser:t,funcName:n,token:r}=e,i;switch(n){case"\\over":i="\\frac";break;case"\\choose":i="\\binom";break;case"\\atop":i="\\\\atopfrac";break;case"\\brace":i="\\\\bracefrac";break;case"\\brack":i="\\\\brackfrac";break;default:throw new Error("Unrecognized infix genfrac command")}return{type:"infix",mode:t.mode,replaceWith:i,token:r}}});var bZ=["display","text","script","scriptscript"],vZ=function(t){var n=null;return t.length>0&&(n=t,n=n==="."?null:n),n};mt({type:"genfrac",names:["\\genfrac"],props:{numArgs:6,allowedInArgument:!0,argTypes:["math","math","size","text","math","math"]},handler(e,t){var{parser:n}=e,r=t[4],i=t[5],a=TB(t[0]),o=a.type==="atom"&&a.family==="open"?vZ(a.text):null,l=TB(t[1]),s=l.type==="atom"&&l.family==="close"?vZ(l.text):null,u=tn(t[2],"size"),c,d=null;u.isBlank?c=!0:(d=u.value,c=d.number>0);var g="auto",h=t[3];if(h.type==="ordgroup"){if(h.body.length>0){var m=tn(h.body[0],"textord");g=bZ[Number(m.text)]}}else h=tn(h,"textord"),g=bZ[Number(h.text)];return{type:"genfrac",mode:n.mode,numer:r,denom:i,continued:!1,hasBarLine:c,barSize:d,leftDelim:o,rightDelim:s,size:g}},htmlBuilder:wR,mathmlBuilder:bR});mt({type:"infix",names:["\\above"],props:{numArgs:1,argTypes:["size"],infix:!0},handler(e,t){var{parser:n,funcName:r,token:i}=e;return{type:"infix",mode:n.mode,replaceWith:"\\\\abovefrac",size:tn(t[0],"size").value,token:i}}});mt({type:"genfrac",names:["\\\\abovefrac"],props:{numArgs:3,argTypes:["math","size","math"]},handler:(e,t)=>{var{parser:n,funcName:r}=e,i=t[0],a=r7e(tn(t[1],"infix").size),o=t[2],l=a.number>0;return{type:"genfrac",mode:n.mode,numer:i,denom:o,continued:!1,hasBarLine:l,barSize:a,leftDelim:null,rightDelim:null,size:"auto"}},htmlBuilder:wR,mathmlBuilder:bR});var Oz=(e,t)=>{var n=t.style,r,i;e.type==="supsub"?(r=e.sup?Fn(e.sup,t.havingStyle(n.sup()),t):Fn(e.sub,t.havingStyle(n.sub()),t),i=tn(e.base,"horizBrace")):i=tn(e,"horizBrace");var a=Fn(i.base,t.havingBaseStyle(Tt.DISPLAY)),o=cu.svgSpan(i,t),l;if(i.isOver?(l=Be.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:a},{type:"kern",size:.1},{type:"elem",elem:o}]},t),l.children[0].children[0].children[1].classes.push("svg-align")):(l=Be.makeVList({positionType:"bottom",positionData:a.depth+.1+o.height,children:[{type:"elem",elem:o},{type:"kern",size:.1},{type:"elem",elem:a}]},t),l.children[0].children[0].children[0].classes.push("svg-align")),r){var s=Be.makeSpan(["mord",i.isOver?"mover":"munder"],[l],t);i.isOver?l=Be.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:s},{type:"kern",size:.2},{type:"elem",elem:r}]},t):l=Be.makeVList({positionType:"bottom",positionData:s.depth+.2+r.height+r.depth,children:[{type:"elem",elem:r},{type:"kern",size:.2},{type:"elem",elem:s}]},t)}return Be.makeSpan(["mord",i.isOver?"mover":"munder"],[l],t)},Fxe=(e,t)=>{var n=cu.mathMLnode(e.label);return new Ue.MathNode(e.isOver?"mover":"munder",[Jn(e.base,t),n])};mt({type:"horizBrace",names:["\\overbrace","\\underbrace"],props:{numArgs:1},handler(e,t){var{parser:n,funcName:r}=e;return{type:"horizBrace",mode:n.mode,label:r,isOver:/^\\over/.test(r),base:t[0]}},htmlBuilder:Oz,mathmlBuilder:Fxe});mt({type:"href",names:["\\href"],props:{numArgs:2,argTypes:["url","original"],allowedInText:!0},handler:(e,t)=>{var{parser:n}=e,r=t[1],i=tn(t[0],"url").url;return n.settings.isTrusted({command:"\\href",url:i})?{type:"href",mode:n.mode,href:i,body:Nr(r)}:n.formatUnsupportedCmd("\\href")},htmlBuilder:(e,t)=>{var n=qr(e.body,t,!1);return Be.makeAnchor(e.href,[],n,t)},mathmlBuilder:(e,t)=>{var n=Gc(e.body,t);return n instanceof Go||(n=new Go("mrow",[n])),n.setAttribute("href",e.href),n}});mt({type:"href",names:["\\url"],props:{numArgs:1,argTypes:["url"],allowedInText:!0},handler:(e,t)=>{var{parser:n}=e,r=tn(t[0],"url").url;if(!n.settings.isTrusted({command:"\\url",url:r}))return n.formatUnsupportedCmd("\\url");for(var i=[],a=0;a{var{parser:n,funcName:r,token:i}=e,a=tn(t[0],"raw").string,o=t[1];n.settings.strict&&n.settings.reportNonstrict("htmlExtension","HTML extension is disabled on strict mode");var l,s={};switch(r){case"\\htmlClass":s.class=a,l={command:"\\htmlClass",class:a};break;case"\\htmlId":s.id=a,l={command:"\\htmlId",id:a};break;case"\\htmlStyle":s.style=a,l={command:"\\htmlStyle",style:a};break;case"\\htmlData":{for(var u=a.split(","),c=0;c{var n=qr(e.body,t,!1),r=["enclosing"];e.attributes.class&&r.push(...e.attributes.class.trim().split(/\s+/));var i=Be.makeSpan(r,n,t);for(var a in e.attributes)a!=="class"&&e.attributes.hasOwnProperty(a)&&i.setAttribute(a,e.attributes[a]);return i},mathmlBuilder:(e,t)=>Gc(e.body,t)});mt({type:"htmlmathml",names:["\\html@mathml"],props:{numArgs:2,allowedInText:!0},handler:(e,t)=>{var{parser:n}=e;return{type:"htmlmathml",mode:n.mode,html:Nr(t[0]),mathml:Nr(t[1])}},htmlBuilder:(e,t)=>{var n=qr(e.html,t,!1);return Be.makeFragment(n)},mathmlBuilder:(e,t)=>Gc(e.mathml,t)});var nQ=function(t){if(/^[-+]? *(\d+(\.\d*)?|\.\d+)$/.test(t))return{number:+t,unit:"bp"};var n=/([-+]?) *(\d+(?:\.\d*)?|\.\d+) *([a-z]{2})/.exec(t);if(!n)throw new $e("Invalid size: '"+t+"' in \\includegraphics");var r={number:+(n[1]+n[2]),unit:n[3]};if(!dz(r))throw new $e("Invalid unit: '"+r.unit+"' in \\includegraphics.");return r};mt({type:"includegraphics",names:["\\includegraphics"],props:{numArgs:1,numOptionalArgs:1,argTypes:["raw","url"],allowedInText:!1},handler:(e,t,n)=>{var{parser:r}=e,i={number:0,unit:"em"},a={number:.9,unit:"em"},o={number:0,unit:"em"},l="";if(n[0])for(var s=tn(n[0],"raw").string,u=s.split(","),c=0;c{var n=br(e.height,t),r=0;e.totalheight.number>0&&(r=br(e.totalheight,t)-n);var i=0;e.width.number>0&&(i=br(e.width,t));var a={height:at(n+r)};i>0&&(a.width=at(i)),r>0&&(a.verticalAlign=at(-r));var o=new F7e(e.src,e.alt,a);return o.height=n,o.depth=r,o},mathmlBuilder:(e,t)=>{var n=new Ue.MathNode("mglyph",[]);n.setAttribute("alt",e.alt);var r=br(e.height,t),i=0;if(e.totalheight.number>0&&(i=br(e.totalheight,t)-r,n.setAttribute("valign",at(-i))),n.setAttribute("height",at(r+i)),e.width.number>0){var a=br(e.width,t);n.setAttribute("width",at(a))}return n.setAttribute("src",e.src),n}});mt({type:"kern",names:["\\kern","\\mkern","\\hskip","\\mskip"],props:{numArgs:1,argTypes:["size"],primitive:!0,allowedInText:!0},handler(e,t){var{parser:n,funcName:r}=e,i=tn(t[0],"size");if(n.settings.strict){var a=r[1]==="m",o=i.value.unit==="mu";a?(o||n.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+r+" supports only mu units, "+("not "+i.value.unit+" units")),n.mode!=="math"&&n.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+r+" works only in math mode")):o&&n.settings.reportNonstrict("mathVsTextUnits","LaTeX's "+r+" doesn't support mu units")}return{type:"kern",mode:n.mode,dimension:i.value}},htmlBuilder(e,t){return Be.makeGlue(e.dimension,t)},mathmlBuilder(e,t){var n=br(e.dimension,t);return new Ue.SpaceNode(n)}});mt({type:"lap",names:["\\mathllap","\\mathrlap","\\mathclap"],props:{numArgs:1,allowedInText:!0},handler:(e,t)=>{var{parser:n,funcName:r}=e,i=t[0];return{type:"lap",mode:n.mode,alignment:r.slice(5),body:i}},htmlBuilder:(e,t)=>{var n;e.alignment==="clap"?(n=Be.makeSpan([],[Fn(e.body,t)]),n=Be.makeSpan(["inner"],[n],t)):n=Be.makeSpan(["inner"],[Fn(e.body,t)]);var r=Be.makeSpan(["fix"],[]),i=Be.makeSpan([e.alignment],[n,r],t),a=Be.makeSpan(["strut"]);return a.style.height=at(i.height+i.depth),i.depth&&(a.style.verticalAlign=at(-i.depth)),i.children.unshift(a),i=Be.makeSpan(["thinbox"],[i],t),Be.makeSpan(["mord","vbox"],[i],t)},mathmlBuilder:(e,t)=>{var n=new Ue.MathNode("mpadded",[Jn(e.body,t)]);if(e.alignment!=="rlap"){var r=e.alignment==="llap"?"-1":"-0.5";n.setAttribute("lspace",r+"width")}return n.setAttribute("width","0px"),n}});mt({type:"styling",names:["\\(","$"],props:{numArgs:0,allowedInText:!0,allowedInMath:!1},handler(e,t){var{funcName:n,parser:r}=e,i=r.mode;r.switchMode("math");var a=n==="\\("?"\\)":"$",o=r.parseExpression(!1,a);return r.expect(a),r.switchMode(i),{type:"styling",mode:r.mode,style:"text",body:o}}});mt({type:"text",names:["\\)","\\]"],props:{numArgs:0,allowedInText:!0,allowedInMath:!1},handler(e,t){throw new $e("Mismatched "+e.funcName)}});var KZ=(e,t)=>{switch(t.style.size){case Tt.DISPLAY.size:return e.display;case Tt.TEXT.size:return e.text;case Tt.SCRIPT.size:return e.script;case Tt.SCRIPTSCRIPT.size:return e.scriptscript;default:return e.text}};mt({type:"mathchoice",names:["\\mathchoice"],props:{numArgs:4,primitive:!0},handler:(e,t)=>{var{parser:n}=e;return{type:"mathchoice",mode:n.mode,display:Nr(t[0]),text:Nr(t[1]),script:Nr(t[2]),scriptscript:Nr(t[3])}},htmlBuilder:(e,t)=>{var n=KZ(e,t),r=qr(n,t,!1);return Be.makeFragment(r)},mathmlBuilder:(e,t)=>{var n=KZ(e,t);return Gc(n,t)}});var Jz=(e,t,n,r,i,a,o)=>{e=Be.makeSpan([],[e]);var l=n&&Ht.isCharacterBox(n),s,u;if(t){var c=Fn(t,r.havingStyle(i.sup()),r);u={elem:c,kern:Math.max(r.fontMetrics().bigOpSpacing1,r.fontMetrics().bigOpSpacing3-c.depth)}}if(n){var d=Fn(n,r.havingStyle(i.sub()),r);s={elem:d,kern:Math.max(r.fontMetrics().bigOpSpacing2,r.fontMetrics().bigOpSpacing4-d.height)}}var g;if(u&&s){var h=r.fontMetrics().bigOpSpacing5+s.elem.height+s.elem.depth+s.kern+e.depth+o;g=Be.makeVList({positionType:"bottom",positionData:h,children:[{type:"kern",size:r.fontMetrics().bigOpSpacing5},{type:"elem",elem:s.elem,marginLeft:at(-a)},{type:"kern",size:s.kern},{type:"elem",elem:e},{type:"kern",size:u.kern},{type:"elem",elem:u.elem,marginLeft:at(a)},{type:"kern",size:r.fontMetrics().bigOpSpacing5}]},r)}else if(s){var m=e.height-o;g=Be.makeVList({positionType:"top",positionData:m,children:[{type:"kern",size:r.fontMetrics().bigOpSpacing5},{type:"elem",elem:s.elem,marginLeft:at(-a)},{type:"kern",size:s.kern},{type:"elem",elem:e}]},r)}else if(u){var A=e.depth+o;g=Be.makeVList({positionType:"bottom",positionData:A,children:[{type:"elem",elem:e},{type:"kern",size:u.kern},{type:"elem",elem:u.elem,marginLeft:at(a)},{type:"kern",size:r.fontMetrics().bigOpSpacing5}]},r)}else return e;var B=[g];if(s&&a!==0&&!l){var C=Be.makeSpan(["mspace"],[],r);C.style.marginRight=at(a),B.unshift(C)}return Be.makeSpan(["mop","op-limits"],B,r)},zz=["\\smallint"],J1=(e,t)=>{var n,r,i=!1,a;e.type==="supsub"?(n=e.sup,r=e.sub,a=tn(e.base,"op"),i=!0):a=tn(e,"op");var o=t.style,l=!1;o.size===Tt.DISPLAY.size&&a.symbol&&!Ht.contains(zz,a.name)&&(l=!0);var s;if(a.symbol){var u=l?"Size2-Regular":"Size1-Regular",c="";if((a.name==="\\oiint"||a.name==="\\oiiint")&&(c=a.name.slice(1),a.name=c==="oiint"?"\\iint":"\\iiint"),s=Be.makeSymbol(a.name,u,"math",t,["mop","op-symbol",l?"large-op":"small-op"]),c.length>0){var d=s.italic,g=Be.staticSvg(c+"Size"+(l?"2":"1"),t);s=Be.makeVList({positionType:"individualShift",children:[{type:"elem",elem:s,shift:0},{type:"elem",elem:g,shift:l?.08:0}]},t),a.name="\\"+c,s.classes.unshift("mop"),s.italic=d}}else if(a.body){var h=qr(a.body,t,!0);h.length===1&&h[0]instanceof Yo?(s=h[0],s.classes[0]="mop"):s=Be.makeSpan(["mop"],h,t)}else{for(var m=[],A=1;A{var n;if(e.symbol)n=new Go("mo",[Io(e.name,e.mode)]),Ht.contains(zz,e.name)&&n.setAttribute("largeop","false");else if(e.body)n=new Go("mo",Sa(e.body,t));else{n=new Go("mi",[new Dh(e.name.slice(1))]);var r=new Go("mo",[Io("⁡","text")]);e.parentIsSupSub?n=new Go("mrow",[n,r]):n=vz([n,r])}return n},Exe={"∏":"\\prod","∐":"\\coprod","∑":"\\sum","⋀":"\\bigwedge","⋁":"\\bigvee","⋂":"\\bigcap","⋃":"\\bigcup","⨀":"\\bigodot","⨁":"\\bigoplus","⨂":"\\bigotimes","⨄":"\\biguplus","⨆":"\\bigsqcup"};mt({type:"op",names:["\\coprod","\\bigvee","\\bigwedge","\\biguplus","\\bigcap","\\bigcup","\\intop","\\prod","\\sum","\\bigotimes","\\bigoplus","\\bigodot","\\bigsqcup","\\smallint","∏","∐","∑","⋀","⋁","⋂","⋃","⨀","⨁","⨂","⨄","⨆"],props:{numArgs:0},handler:(e,t)=>{var{parser:n,funcName:r}=e,i=r;return i.length===1&&(i=Exe[i]),{type:"op",mode:n.mode,limits:!0,parentIsSupSub:!1,symbol:!0,name:i}},htmlBuilder:J1,mathmlBuilder:fm});mt({type:"op",names:["\\mathop"],props:{numArgs:1,primitive:!0},handler:(e,t)=>{var{parser:n}=e,r=t[0];return{type:"op",mode:n.mode,limits:!1,parentIsSupSub:!1,symbol:!1,body:Nr(r)}},htmlBuilder:J1,mathmlBuilder:fm});var Rxe={"∫":"\\int","∬":"\\iint","∭":"\\iiint","∮":"\\oint","∯":"\\oiint","∰":"\\oiiint"};mt({type:"op",names:["\\arcsin","\\arccos","\\arctan","\\arctg","\\arcctg","\\arg","\\ch","\\cos","\\cosec","\\cosh","\\cot","\\cotg","\\coth","\\csc","\\ctg","\\cth","\\deg","\\dim","\\exp","\\hom","\\ker","\\lg","\\ln","\\log","\\sec","\\sin","\\sinh","\\sh","\\tan","\\tanh","\\tg","\\th"],props:{numArgs:0},handler(e){var{parser:t,funcName:n}=e;return{type:"op",mode:t.mode,limits:!1,parentIsSupSub:!1,symbol:!1,name:n}},htmlBuilder:J1,mathmlBuilder:fm});mt({type:"op",names:["\\det","\\gcd","\\inf","\\lim","\\max","\\min","\\Pr","\\sup"],props:{numArgs:0},handler(e){var{parser:t,funcName:n}=e;return{type:"op",mode:t.mode,limits:!0,parentIsSupSub:!1,symbol:!1,name:n}},htmlBuilder:J1,mathmlBuilder:fm});mt({type:"op",names:["\\int","\\iint","\\iiint","\\oint","\\oiint","\\oiiint","∫","∬","∭","∮","∯","∰"],props:{numArgs:0},handler(e){var{parser:t,funcName:n}=e,r=n;return r.length===1&&(r=Rxe[r]),{type:"op",mode:t.mode,limits:!1,parentIsSupSub:!1,symbol:!0,name:r}},htmlBuilder:J1,mathmlBuilder:fm});var Pz=(e,t)=>{var n,r,i=!1,a;e.type==="supsub"?(n=e.sup,r=e.sub,a=tn(e.base,"operatorname"),i=!0):a=tn(e,"operatorname");var o;if(a.body.length>0){for(var l=a.body.map(d=>{var g=d.text;return typeof g=="string"?{type:"textord",mode:d.mode,text:g}:d}),s=qr(l,t.withFont("mathrm"),!0),u=0;u{for(var n=Sa(e.body,t.withFont("mathrm")),r=!0,i=0;ic.toText()).join("");n=[new Ue.TextNode(l)]}var s=new Ue.MathNode("mi",n);s.setAttribute("mathvariant","normal");var u=new Ue.MathNode("mo",[Io("⁡","text")]);return e.parentIsSupSub?new Ue.MathNode("mrow",[s,u]):Ue.newDocumentFragment([s,u])};mt({type:"operatorname",names:["\\operatorname@","\\operatornamewithlimits"],props:{numArgs:1},handler:(e,t)=>{var{parser:n,funcName:r}=e,i=t[0];return{type:"operatorname",mode:n.mode,body:Nr(i),alwaysHandleSupSub:r==="\\operatornamewithlimits",limits:!1,parentIsSupSub:!1}},htmlBuilder:Pz,mathmlBuilder:Sxe});U("\\operatorname","\\@ifstar\\operatornamewithlimits\\operatorname@");Ad({type:"ordgroup",htmlBuilder(e,t){return e.semisimple?Be.makeFragment(qr(e.body,t,!1)):Be.makeSpan(["mord"],qr(e.body,t,!0),t)},mathmlBuilder(e,t){return Gc(e.body,t,!0)}});mt({type:"overline",names:["\\overline"],props:{numArgs:1},handler(e,t){var{parser:n}=e,r=t[0];return{type:"overline",mode:n.mode,body:r}},htmlBuilder(e,t){var n=Fn(e.body,t.havingCrampedStyle()),r=Be.makeLineSpan("overline-line",t),i=t.fontMetrics().defaultRuleThickness,a=Be.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:n},{type:"kern",size:3*i},{type:"elem",elem:r},{type:"kern",size:i}]},t);return Be.makeSpan(["mord","overline"],[a],t)},mathmlBuilder(e,t){var n=new Ue.MathNode("mo",[new Ue.TextNode("‾")]);n.setAttribute("stretchy","true");var r=new Ue.MathNode("mover",[Jn(e.body,t),n]);return r.setAttribute("accent","true"),r}});mt({type:"phantom",names:["\\phantom"],props:{numArgs:1,allowedInText:!0},handler:(e,t)=>{var{parser:n}=e,r=t[0];return{type:"phantom",mode:n.mode,body:Nr(r)}},htmlBuilder:(e,t)=>{var n=qr(e.body,t.withPhantom(),!1);return Be.makeFragment(n)},mathmlBuilder:(e,t)=>{var n=Sa(e.body,t);return new Ue.MathNode("mphantom",n)}});mt({type:"hphantom",names:["\\hphantom"],props:{numArgs:1,allowedInText:!0},handler:(e,t)=>{var{parser:n}=e,r=t[0];return{type:"hphantom",mode:n.mode,body:r}},htmlBuilder:(e,t)=>{var n=Be.makeSpan([],[Fn(e.body,t.withPhantom())]);if(n.height=0,n.depth=0,n.children)for(var r=0;r{var n=Sa(Nr(e.body),t),r=new Ue.MathNode("mphantom",n),i=new Ue.MathNode("mpadded",[r]);return i.setAttribute("height","0px"),i.setAttribute("depth","0px"),i}});mt({type:"vphantom",names:["\\vphantom"],props:{numArgs:1,allowedInText:!0},handler:(e,t)=>{var{parser:n}=e,r=t[0];return{type:"vphantom",mode:n.mode,body:r}},htmlBuilder:(e,t)=>{var n=Be.makeSpan(["inner"],[Fn(e.body,t.withPhantom())]),r=Be.makeSpan(["fix"],[]);return Be.makeSpan(["mord","rlap"],[n,r],t)},mathmlBuilder:(e,t)=>{var n=Sa(Nr(e.body),t),r=new Ue.MathNode("mphantom",n),i=new Ue.MathNode("mpadded",[r]);return i.setAttribute("width","0px"),i}});mt({type:"raisebox",names:["\\raisebox"],props:{numArgs:2,argTypes:["size","hbox"],allowedInText:!0},handler(e,t){var{parser:n}=e,r=tn(t[0],"size").value,i=t[1];return{type:"raisebox",mode:n.mode,dy:r,body:i}},htmlBuilder(e,t){var n=Fn(e.body,t),r=br(e.dy,t);return Be.makeVList({positionType:"shift",positionData:-r,children:[{type:"elem",elem:n}]},t)},mathmlBuilder(e,t){var n=new Ue.MathNode("mpadded",[Jn(e.body,t)]),r=e.dy.number+e.dy.unit;return n.setAttribute("voffset",r),n}});mt({type:"internal",names:["\\relax"],props:{numArgs:0,allowedInText:!0},handler(e){var{parser:t}=e;return{type:"internal",mode:t.mode}}});mt({type:"rule",names:["\\rule"],props:{numArgs:2,numOptionalArgs:1,argTypes:["size","size","size"]},handler(e,t,n){var{parser:r}=e,i=n[0],a=tn(t[0],"size"),o=tn(t[1],"size");return{type:"rule",mode:r.mode,shift:i&&tn(i,"size").value,width:a.value,height:o.value}},htmlBuilder(e,t){var n=Be.makeSpan(["mord","rule"],[],t),r=br(e.width,t),i=br(e.height,t),a=e.shift?br(e.shift,t):0;return n.style.borderRightWidth=at(r),n.style.borderTopWidth=at(i),n.style.bottom=at(a),n.width=r,n.height=i+a,n.depth=-a,n.maxFontSize=i*1.125*t.sizeMultiplier,n},mathmlBuilder(e,t){var n=br(e.width,t),r=br(e.height,t),i=e.shift?br(e.shift,t):0,a=t.color&&t.getColor()||"black",o=new Ue.MathNode("mspace");o.setAttribute("mathbackground",a),o.setAttribute("width",at(n)),o.setAttribute("height",at(r));var l=new Ue.MathNode("mpadded",[o]);return i>=0?l.setAttribute("height",at(i)):(l.setAttribute("height",at(i)),l.setAttribute("depth",at(-i))),l.setAttribute("voffset",at(i)),l}});function jz(e,t,n){for(var r=qr(e,t,!1),i=t.sizeMultiplier/n.sizeMultiplier,a=0;a{var n=t.havingSize(e.size);return jz(e.body,n,t)};mt({type:"sizing",names:QZ,props:{numArgs:0,allowedInText:!0},handler:(e,t)=>{var{breakOnTokenText:n,funcName:r,parser:i}=e,a=i.parseExpression(!1,n);return{type:"sizing",mode:i.mode,size:QZ.indexOf(r)+1,body:a}},htmlBuilder:xxe,mathmlBuilder:(e,t)=>{var n=t.havingSize(e.size),r=Sa(e.body,n),i=new Ue.MathNode("mstyle",r);return i.setAttribute("mathsize",at(n.sizeMultiplier)),i}});mt({type:"smash",names:["\\smash"],props:{numArgs:1,numOptionalArgs:1,allowedInText:!0},handler:(e,t,n)=>{var{parser:r}=e,i=!1,a=!1,o=n[0]&&tn(n[0],"ordgroup");if(o)for(var l="",s=0;s{var n=Be.makeSpan([],[Fn(e.body,t)]);if(!e.smashHeight&&!e.smashDepth)return n;if(e.smashHeight&&(n.height=0,n.children))for(var r=0;r{var n=new Ue.MathNode("mpadded",[Jn(e.body,t)]);return e.smashHeight&&n.setAttribute("height","0px"),e.smashDepth&&n.setAttribute("depth","0px"),n}});mt({type:"sqrt",names:["\\sqrt"],props:{numArgs:1,numOptionalArgs:1},handler(e,t,n){var{parser:r}=e,i=n[0],a=t[0];return{type:"sqrt",mode:r.mode,body:a,index:i}},htmlBuilder(e,t){var n=Fn(e.body,t.havingCrampedStyle());n.height===0&&(n.height=t.fontMetrics().xHeight),n=Be.wrapFragment(n,t);var r=t.fontMetrics(),i=r.defaultRuleThickness,a=i;t.style.idn.height+n.depth+o&&(o=(o+d-n.height-n.depth)/2);var g=s.height-n.height-o-u;n.style.paddingLeft=at(c);var h=Be.makeVList({positionType:"firstBaseline",children:[{type:"elem",elem:n,wrapperClasses:["svg-align"]},{type:"kern",size:-(n.height+g)},{type:"elem",elem:s},{type:"kern",size:u}]},t);if(e.index){var m=t.havingStyle(Tt.SCRIPTSCRIPT),A=Fn(e.index,m,t),B=.6*(h.height-h.depth),C=Be.makeVList({positionType:"shift",positionData:-B,children:[{type:"elem",elem:A}]},t),b=Be.makeSpan(["root"],[C]);return Be.makeSpan(["mord","sqrt"],[b,h],t)}else return Be.makeSpan(["mord","sqrt"],[h],t)},mathmlBuilder(e,t){var{body:n,index:r}=e;return r?new Ue.MathNode("mroot",[Jn(n,t),Jn(r,t)]):new Ue.MathNode("msqrt",[Jn(n,t)])}});var WZ={display:Tt.DISPLAY,text:Tt.TEXT,script:Tt.SCRIPT,scriptscript:Tt.SCRIPTSCRIPT};mt({type:"styling",names:["\\displaystyle","\\textstyle","\\scriptstyle","\\scriptscriptstyle"],props:{numArgs:0,allowedInText:!0,primitive:!0},handler(e,t){var{breakOnTokenText:n,funcName:r,parser:i}=e,a=i.parseExpression(!0,n),o=r.slice(1,r.length-5);return{type:"styling",mode:i.mode,style:o,body:a}},htmlBuilder(e,t){var n=WZ[e.style],r=t.havingStyle(n).withFont("");return jz(e.body,r,t)},mathmlBuilder(e,t){var n=WZ[e.style],r=t.havingStyle(n),i=Sa(e.body,r),a=new Ue.MathNode("mstyle",i),o={display:["0","true"],text:["0","false"],script:["1","false"],scriptscript:["2","false"]},l=o[e.style];return a.setAttribute("scriptlevel",l[0]),a.setAttribute("displaystyle",l[1]),a}});var Gxe=function(t,n){var r=t.base;if(r)if(r.type==="op"){var i=r.limits&&(n.style.size===Tt.DISPLAY.size||r.alwaysHandleSupSub);return i?J1:null}else if(r.type==="operatorname"){var a=r.alwaysHandleSupSub&&(n.style.size===Tt.DISPLAY.size||r.limits);return a?Pz:null}else{if(r.type==="accent")return Ht.isCharacterBox(r.base)?hR:null;if(r.type==="horizBrace"){var o=!t.sub;return o===r.isOver?Oz:null}else return null}else return null};Ad({type:"supsub",htmlBuilder(e,t){var n=Gxe(e,t);if(n)return n(e,t);var{base:r,sup:i,sub:a}=e,o=Fn(r,t),l,s,u=t.fontMetrics(),c=0,d=0,g=r&&Ht.isCharacterBox(r);if(i){var h=t.havingStyle(t.style.sup());l=Fn(i,h,t),g||(c=o.height-h.fontMetrics().supDrop*h.sizeMultiplier/t.sizeMultiplier)}if(a){var m=t.havingStyle(t.style.sub());s=Fn(a,m,t),g||(d=o.depth+m.fontMetrics().subDrop*m.sizeMultiplier/t.sizeMultiplier)}var A;t.style===Tt.DISPLAY?A=u.sup1:t.style.cramped?A=u.sup3:A=u.sup2;var B=t.sizeMultiplier,C=at(.5/u.ptPerEm/B),b=null;if(s){var Q=e.base&&e.base.type==="op"&&e.base.name&&(e.base.name==="\\oiint"||e.base.name==="\\oiiint");(o instanceof Yo||Q)&&(b=at(-o.italic))}var F;if(l&&s){c=Math.max(c,A,l.depth+.25*u.xHeight),d=Math.max(d,u.sub2);var K=u.defaultRuleThickness,y=4*K;if(c-l.depth-(s.height-d)0&&(c+=G,d-=G)}var X=[{type:"elem",elem:s,shift:d,marginRight:C,marginLeft:b},{type:"elem",elem:l,shift:-c,marginRight:C}];F=Be.makeVList({positionType:"individualShift",children:X},t)}else if(s){d=Math.max(d,u.sub1,s.height-.8*u.xHeight);var H=[{type:"elem",elem:s,marginLeft:b,marginRight:C}];F=Be.makeVList({positionType:"shift",positionData:d,children:H},t)}else if(l)c=Math.max(c,A,l.depth+.25*u.xHeight),F=Be.makeVList({positionType:"shift",positionData:-c,children:[{type:"elem",elem:l,marginRight:C}]},t);else throw new Error("supsub must have either sup or sub.");var v=WF(o,"right")||"mord";return Be.makeSpan([v],[o,Be.makeSpan(["msupsub"],[F])],t)},mathmlBuilder(e,t){var n=!1,r,i;e.base&&e.base.type==="horizBrace"&&(i=!!e.sup,i===e.base.isOver&&(n=!0,r=e.base.isOver)),e.base&&(e.base.type==="op"||e.base.type==="operatorname")&&(e.base.parentIsSupSub=!0);var a=[Jn(e.base,t)];e.sub&&a.push(Jn(e.sub,t)),e.sup&&a.push(Jn(e.sup,t));var o;if(n)o=r?"mover":"munder";else if(e.sub)if(e.sup){var u=e.base;u&&u.type==="op"&&u.limits&&t.style===Tt.DISPLAY||u&&u.type==="operatorname"&&u.alwaysHandleSupSub&&(t.style===Tt.DISPLAY||u.limits)?o="munderover":o="msubsup"}else{var s=e.base;s&&s.type==="op"&&s.limits&&(t.style===Tt.DISPLAY||s.alwaysHandleSupSub)||s&&s.type==="operatorname"&&s.alwaysHandleSupSub&&(s.limits||t.style===Tt.DISPLAY)?o="munder":o="msub"}else{var l=e.base;l&&l.type==="op"&&l.limits&&(t.style===Tt.DISPLAY||l.alwaysHandleSupSub)||l&&l.type==="operatorname"&&l.alwaysHandleSupSub&&(l.limits||t.style===Tt.DISPLAY)?o="mover":o="msup"}return new Ue.MathNode(o,a)}});Ad({type:"atom",htmlBuilder(e,t){return Be.mathsym(e.text,e.mode,t,["m"+e.family])},mathmlBuilder(e,t){var n=new Ue.MathNode("mo",[Io(e.text,e.mode)]);if(e.family==="bin"){var r=pR(e,t);r==="bold-italic"&&n.setAttribute("mathvariant",r)}else e.family==="punct"?n.setAttribute("separator","true"):(e.family==="open"||e.family==="close")&&n.setAttribute("stretchy","false");return n}});var _z={mi:"italic",mn:"normal",mtext:"normal"};Ad({type:"mathord",htmlBuilder(e,t){return Be.makeOrd(e,t,"mathord")},mathmlBuilder(e,t){var n=new Ue.MathNode("mi",[Io(e.text,e.mode,t)]),r=pR(e,t)||"italic";return r!==_z[n.type]&&n.setAttribute("mathvariant",r),n}});Ad({type:"textord",htmlBuilder(e,t){return Be.makeOrd(e,t,"textord")},mathmlBuilder(e,t){var n=Io(e.text,e.mode,t),r=pR(e,t)||"normal",i;return e.mode==="text"?i=new Ue.MathNode("mtext",[n]):/[0-9]/.test(e.text)?i=new Ue.MathNode("mn",[n]):e.text==="\\prime"?i=new Ue.MathNode("mo",[n]):i=new Ue.MathNode("mi",[n]),r!==_z[i.type]&&i.setAttribute("mathvariant",r),i}});var rQ={"\\nobreak":"nobreak","\\allowbreak":"allowbreak"},iQ={" ":{},"\\ ":{},"~":{className:"nobreak"},"\\space":{},"\\nobreakspace":{className:"nobreak"}};Ad({type:"spacing",htmlBuilder(e,t){if(iQ.hasOwnProperty(e.text)){var n=iQ[e.text].className||"";if(e.mode==="text"){var r=Be.makeOrd(e,t,"textord");return r.classes.push(n),r}else return Be.makeSpan(["mspace",n],[Be.mathsym(e.text,e.mode,t)],t)}else{if(rQ.hasOwnProperty(e.text))return Be.makeSpan(["mspace",rQ[e.text]],[],t);throw new $e('Unknown type of space "'+e.text+'"')}},mathmlBuilder(e,t){var n;if(iQ.hasOwnProperty(e.text))n=new Ue.MathNode("mtext",[new Ue.TextNode(" ")]);else{if(rQ.hasOwnProperty(e.text))return new Ue.MathNode("mspace");throw new $e('Unknown type of space "'+e.text+'"')}return n}});var yZ=()=>{var e=new Ue.MathNode("mtd",[]);return e.setAttribute("width","50%"),e};Ad({type:"tag",mathmlBuilder(e,t){var n=new Ue.MathNode("mtable",[new Ue.MathNode("mtr",[yZ(),new Ue.MathNode("mtd",[Gc(e.body,t)]),yZ(),new Ue.MathNode("mtd",[Gc(e.tag,t)])])]);return n.setAttribute("width","100%"),n}});var FZ={"\\text":void 0,"\\textrm":"textrm","\\textsf":"textsf","\\texttt":"texttt","\\textnormal":"textrm"},EZ={"\\textbf":"textbf","\\textmd":"textmd"},kxe={"\\textit":"textit","\\textup":"textup"},RZ=(e,t)=>{var n=e.font;return n?FZ[n]?t.withTextFontFamily(FZ[n]):EZ[n]?t.withTextFontWeight(EZ[n]):t.withTextFontShape(kxe[n]):t};mt({type:"text",names:["\\text","\\textrm","\\textsf","\\texttt","\\textnormal","\\textbf","\\textmd","\\textit","\\textup"],props:{numArgs:1,argTypes:["text"],allowedInArgument:!0,allowedInText:!0},handler(e,t){var{parser:n,funcName:r}=e,i=t[0];return{type:"text",mode:n.mode,body:Nr(i),font:r}},htmlBuilder(e,t){var n=RZ(e,t),r=qr(e.body,n,!0);return Be.makeSpan(["mord","text"],r,n)},mathmlBuilder(e,t){var n=RZ(e,t);return Gc(e.body,n)}});mt({type:"underline",names:["\\underline"],props:{numArgs:1,allowedInText:!0},handler(e,t){var{parser:n}=e;return{type:"underline",mode:n.mode,body:t[0]}},htmlBuilder(e,t){var n=Fn(e.body,t),r=Be.makeLineSpan("underline-line",t),i=t.fontMetrics().defaultRuleThickness,a=Be.makeVList({positionType:"top",positionData:n.height,children:[{type:"kern",size:i},{type:"elem",elem:r},{type:"kern",size:3*i},{type:"elem",elem:n}]},t);return Be.makeSpan(["mord","underline"],[a],t)},mathmlBuilder(e,t){var n=new Ue.MathNode("mo",[new Ue.TextNode("‾")]);n.setAttribute("stretchy","true");var r=new Ue.MathNode("munder",[Jn(e.body,t),n]);return r.setAttribute("accentunder","true"),r}});mt({type:"vcenter",names:["\\vcenter"],props:{numArgs:1,argTypes:["original"],allowedInText:!1},handler(e,t){var{parser:n}=e;return{type:"vcenter",mode:n.mode,body:t[0]}},htmlBuilder(e,t){var n=Fn(e.body,t),r=t.fontMetrics().axisHeight,i=.5*(n.height-r-(n.depth+r));return Be.makeVList({positionType:"shift",positionData:i,children:[{type:"elem",elem:n}]},t)},mathmlBuilder(e,t){return new Ue.MathNode("mpadded",[Jn(e.body,t)],["vcenter"])}});mt({type:"verb",names:["\\verb"],props:{numArgs:0,allowedInText:!0},handler(e,t,n){throw new $e("\\verb ended by end of line instead of matching delimiter")},htmlBuilder(e,t){for(var n=SZ(e),r=[],i=t.havingStyle(t.style.text()),a=0;ae.body.replace(/ /g,e.star?"␣":" "),qu=wz,$z=`[ \r + ]`,Dxe="\\\\[a-zA-Z@]+",Nxe="\\\\[^\uD800-\uDFFF]",Zxe="("+Dxe+")"+$z+"*",Hxe=`\\\\( |[ \r ]+ -?)[ \r ]*`,hE="[̀-ͯ]",l4I=new RegExp(hE+"+$"),c4I="("+P7+"+)|"+(I4I+"|")+"([!-\\[\\]-‧‪-퟿豈-￿]"+(hE+"*")+"|[\uD800-\uDBFF][\uDC00-\uDFFF]"+(hE+"*")+"|\\\\verb\\*([^]).*?\\4|\\\\verb([^*a-zA-Z]).*?\\5"+("|"+$9I)+("|"+q9I+")");class VU{constructor(l,c){this.input=void 0,this.settings=void 0,this.tokenRegex=void 0,this.catcodes=void 0,this.input=l,this.settings=c,this.tokenRegex=new RegExp(c4I,"g"),this.catcodes={"%":14,"~":13}}setCatcode(l,c){this.catcodes[l]=c}lex(){var l=this.input,c=this.tokenRegex.lastIndex;if(c===l.length)return new gt("EOF",new Cd(this,c,c));var G=this.tokenRegex.exec(l);if(G===null||G.index!==c)throw new DI("Unexpected character: '"+l[c]+"'",new gt(l[c],new Cd(this,c,c+1)));var e=G[6]||G[3]||(G[2]?"\\ ":" ");if(this.catcodes[e]===14){var d=l.indexOf(` -`,this.tokenRegex.lastIndex);return d===-1?(this.tokenRegex.lastIndex=l.length,this.settings.reportNonstrict("commentAtEnd","% comment has no terminating newline; LaTeX would fail because of commenting the end of math mode (e.g. $)")):this.tokenRegex.lastIndex=d+1,this.lex()}return new gt(e,new Cd(this,c,this.tokenRegex.lastIndex))}}class G4I{constructor(l,c){l===void 0&&(l={}),c===void 0&&(c={}),this.current=void 0,this.builtins=void 0,this.undefStack=void 0,this.current=c,this.builtins=l,this.undefStack=[]}beginGroup(){this.undefStack.push({})}endGroup(){if(this.undefStack.length===0)throw new DI("Unbalanced namespace destruction: attempt to pop global namespace; please report this as a bug");var l=this.undefStack.pop();for(var c in l)l.hasOwnProperty(c)&&(l[c]==null?delete this.current[c]:this.current[c]=l[c])}endGroups(){for(;this.undefStack.length>0;)this.endGroup()}has(l){return this.current.hasOwnProperty(l)||this.builtins.hasOwnProperty(l)}get(l){return this.current.hasOwnProperty(l)?this.current[l]:this.builtins[l]}set(l,c,G){if(G===void 0&&(G=!1),G){for(var e=0;e0&&(this.undefStack[this.undefStack.length-1][l]=c)}else{var d=this.undefStack[this.undefStack.length-1];d&&!d.hasOwnProperty(l)&&(d[l]=this.current[l])}c==null?delete this.current[l]:this.current[l]=c}}var e4I=U7;L("\\noexpand",function(I){var l=I.popToken();return I.isExpandable(l.text)&&(l.noexpand=!0,l.treatAsRelax=!0),{tokens:[l],numArgs:0}});L("\\expandafter",function(I){var l=I.popToken();return I.expandOnce(!0),{tokens:[l],numArgs:0}});L("\\@firstoftwo",function(I){var l=I.consumeArgs(2);return{tokens:l[0],numArgs:0}});L("\\@secondoftwo",function(I){var l=I.consumeArgs(2);return{tokens:l[1],numArgs:0}});L("\\@ifnextchar",function(I){var l=I.consumeArgs(3);I.consumeSpaces();var c=I.future();return l[0].length===1&&l[0][0].text===c.text?{tokens:l[1],numArgs:0}:{tokens:l[2],numArgs:0}});L("\\@ifstar","\\@ifnextchar *{\\@firstoftwo{#1}}");L("\\TextOrMath",function(I){var l=I.consumeArgs(2);return I.mode==="text"?{tokens:l[0],numArgs:0}:{tokens:l[1],numArgs:0}});var iU={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,a:10,A:10,b:11,B:11,c:12,C:12,d:13,D:13,e:14,E:14,f:15,F:15};L("\\char",function(I){var l=I.popToken(),c,G="";if(l.text==="'")c=8,l=I.popToken();else if(l.text==='"')c=16,l=I.popToken();else if(l.text==="`")if(l=I.popToken(),l.text[0]==="\\")G=l.text.charCodeAt(1);else{if(l.text==="EOF")throw new DI("\\char` missing argument");G=l.text.charCodeAt(0)}else c=10;if(c){if(G=iU[l.text],G==null||G>=c)throw new DI("Invalid base-"+c+" digit "+l.text);for(var e;(e=iU[I.future().text])!=null&&e{var G=I.consumeArg().tokens;if(G.length!==1)throw new DI("\\newcommand's first argument must be a macro name");var e=G[0].text,d=I.isDefined(e);if(d&&!l)throw new DI("\\newcommand{"+e+"} attempting to redefine "+(e+"; use \\renewcommand"));if(!d&&!c)throw new DI("\\renewcommand{"+e+"} when command "+e+" does not yet exist; use \\newcommand");var t=0;if(G=I.consumeArg().tokens,G.length===1&&G[0].text==="["){for(var n="",b=I.expandNextToken();b.text!=="]"&&b.text!=="EOF";)n+=b.text,b=I.expandNextToken();if(!n.match(/^\s*[0-9]+\s*$/))throw new DI("Invalid number of arguments: "+n);t=parseInt(n),G=I.consumeArg().tokens}return I.macros.set(e,{tokens:G,numArgs:t}),""};L("\\newcommand",I=>py(I,!1,!0));L("\\renewcommand",I=>py(I,!0,!1));L("\\providecommand",I=>py(I,!0,!0));L("\\message",I=>{var l=I.consumeArgs(1)[0];return console.log(l.reverse().map(c=>c.text).join("")),""});L("\\errmessage",I=>{var l=I.consumeArgs(1)[0];return console.error(l.reverse().map(c=>c.text).join("")),""});L("\\show",I=>{var l=I.popToken(),c=l.text;return console.log(l,I.macros.get(c),Ma[c],_c.math[c],_c.text[c]),""});L("\\bgroup","{");L("\\egroup","}");L("~","\\nobreakspace");L("\\lq","`");L("\\rq","'");L("\\aa","\\r a");L("\\AA","\\r A");L("\\textcopyright","\\html@mathml{\\textcircled{c}}{\\char`©}");L("\\copyright","\\TextOrMath{\\textcopyright}{\\text{\\textcopyright}}");L("\\textregistered","\\html@mathml{\\textcircled{\\scriptsize R}}{\\char`®}");L("ℬ","\\mathscr{B}");L("ℰ","\\mathscr{E}");L("ℱ","\\mathscr{F}");L("ℋ","\\mathscr{H}");L("ℐ","\\mathscr{I}");L("ℒ","\\mathscr{L}");L("ℳ","\\mathscr{M}");L("ℛ","\\mathscr{R}");L("ℭ","\\mathfrak{C}");L("ℌ","\\mathfrak{H}");L("ℨ","\\mathfrak{Z}");L("\\Bbbk","\\Bbb{k}");L("·","\\cdotp");L("\\llap","\\mathllap{\\textrm{#1}}");L("\\rlap","\\mathrlap{\\textrm{#1}}");L("\\clap","\\mathclap{\\textrm{#1}}");L("\\mathstrut","\\vphantom{(}");L("\\underbar","\\underline{\\text{#1}}");L("\\not",'\\html@mathml{\\mathrel{\\mathrlap\\@not}}{\\char"338}');L("\\neq","\\html@mathml{\\mathrel{\\not=}}{\\mathrel{\\char`≠}}");L("\\ne","\\neq");L("≠","\\neq");L("\\notin","\\html@mathml{\\mathrel{{\\in}\\mathllap{/\\mskip1mu}}}{\\mathrel{\\char`∉}}");L("∉","\\notin");L("≘","\\html@mathml{\\mathrel{=\\kern{-1em}\\raisebox{0.4em}{$\\scriptsize\\frown$}}}{\\mathrel{\\char`≘}}");L("≙","\\html@mathml{\\stackrel{\\tiny\\wedge}{=}}{\\mathrel{\\char`≘}}");L("≚","\\html@mathml{\\stackrel{\\tiny\\vee}{=}}{\\mathrel{\\char`≚}}");L("≛","\\html@mathml{\\stackrel{\\scriptsize\\star}{=}}{\\mathrel{\\char`≛}}");L("≝","\\html@mathml{\\stackrel{\\tiny\\mathrm{def}}{=}}{\\mathrel{\\char`≝}}");L("≞","\\html@mathml{\\stackrel{\\tiny\\mathrm{m}}{=}}{\\mathrel{\\char`≞}}");L("≟","\\html@mathml{\\stackrel{\\tiny?}{=}}{\\mathrel{\\char`≟}}");L("⟂","\\perp");L("‼","\\mathclose{!\\mkern-0.8mu!}");L("∌","\\notni");L("⌜","\\ulcorner");L("⌝","\\urcorner");L("⌞","\\llcorner");L("⌟","\\lrcorner");L("©","\\copyright");L("®","\\textregistered");L("️","\\textregistered");L("\\ulcorner",'\\html@mathml{\\@ulcorner}{\\mathop{\\char"231c}}');L("\\urcorner",'\\html@mathml{\\@urcorner}{\\mathop{\\char"231d}}');L("\\llcorner",'\\html@mathml{\\@llcorner}{\\mathop{\\char"231e}}');L("\\lrcorner",'\\html@mathml{\\@lrcorner}{\\mathop{\\char"231f}}');L("\\vdots","\\mathord{\\varvdots\\rule{0pt}{15pt}}");L("⋮","\\vdots");L("\\varGamma","\\mathit{\\Gamma}");L("\\varDelta","\\mathit{\\Delta}");L("\\varTheta","\\mathit{\\Theta}");L("\\varLambda","\\mathit{\\Lambda}");L("\\varXi","\\mathit{\\Xi}");L("\\varPi","\\mathit{\\Pi}");L("\\varSigma","\\mathit{\\Sigma}");L("\\varUpsilon","\\mathit{\\Upsilon}");L("\\varPhi","\\mathit{\\Phi}");L("\\varPsi","\\mathit{\\Psi}");L("\\varOmega","\\mathit{\\Omega}");L("\\substack","\\begin{subarray}{c}#1\\end{subarray}");L("\\colon","\\nobreak\\mskip2mu\\mathpunct{}\\mathchoice{\\mkern-3mu}{\\mkern-3mu}{}{}{:}\\mskip6mu\\relax");L("\\boxed","\\fbox{$\\displaystyle{#1}$}");L("\\iff","\\DOTSB\\;\\Longleftrightarrow\\;");L("\\implies","\\DOTSB\\;\\Longrightarrow\\;");L("\\impliedby","\\DOTSB\\;\\Longleftarrow\\;");var FU={",":"\\dotsc","\\not":"\\dotsb","+":"\\dotsb","=":"\\dotsb","<":"\\dotsb",">":"\\dotsb","-":"\\dotsb","*":"\\dotsb",":":"\\dotsb","\\DOTSB":"\\dotsb","\\coprod":"\\dotsb","\\bigvee":"\\dotsb","\\bigwedge":"\\dotsb","\\biguplus":"\\dotsb","\\bigcap":"\\dotsb","\\bigcup":"\\dotsb","\\prod":"\\dotsb","\\sum":"\\dotsb","\\bigotimes":"\\dotsb","\\bigoplus":"\\dotsb","\\bigodot":"\\dotsb","\\bigsqcup":"\\dotsb","\\And":"\\dotsb","\\longrightarrow":"\\dotsb","\\Longrightarrow":"\\dotsb","\\longleftarrow":"\\dotsb","\\Longleftarrow":"\\dotsb","\\longleftrightarrow":"\\dotsb","\\Longleftrightarrow":"\\dotsb","\\mapsto":"\\dotsb","\\longmapsto":"\\dotsb","\\hookrightarrow":"\\dotsb","\\doteq":"\\dotsb","\\mathbin":"\\dotsb","\\mathrel":"\\dotsb","\\relbar":"\\dotsb","\\Relbar":"\\dotsb","\\xrightarrow":"\\dotsb","\\xleftarrow":"\\dotsb","\\DOTSI":"\\dotsi","\\int":"\\dotsi","\\oint":"\\dotsi","\\iint":"\\dotsi","\\iiint":"\\dotsi","\\iiiint":"\\dotsi","\\idotsint":"\\dotsi","\\DOTSX":"\\dotsx"};L("\\dots",function(I){var l="\\dotso",c=I.expandAfterFuture().text;return c in FU?l=FU[c]:(c.slice(0,4)==="\\not"||c in _c.math&&Bl.contains(["bin","rel"],_c.math[c].group))&&(l="\\dotsb"),l});var oy={")":!0,"]":!0,"\\rbrack":!0,"\\}":!0,"\\rbrace":!0,"\\rangle":!0,"\\rceil":!0,"\\rfloor":!0,"\\rgroup":!0,"\\rmoustache":!0,"\\right":!0,"\\bigr":!0,"\\biggr":!0,"\\Bigr":!0,"\\Biggr":!0,$:!0,";":!0,".":!0,",":!0};L("\\dotso",function(I){var l=I.future().text;return l in oy?"\\ldots\\,":"\\ldots"});L("\\dotsc",function(I){var l=I.future().text;return l in oy&&l!==","?"\\ldots\\,":"\\ldots"});L("\\cdots",function(I){var l=I.future().text;return l in oy?"\\@cdots\\,":"\\@cdots"});L("\\dotsb","\\cdots");L("\\dotsm","\\cdots");L("\\dotsi","\\!\\cdots");L("\\dotsx","\\ldots\\,");L("\\DOTSI","\\relax");L("\\DOTSB","\\relax");L("\\DOTSX","\\relax");L("\\tmspace","\\TextOrMath{\\kern#1#3}{\\mskip#1#2}\\relax");L("\\,","\\tmspace+{3mu}{.1667em}");L("\\thinspace","\\,");L("\\>","\\mskip{4mu}");L("\\:","\\tmspace+{4mu}{.2222em}");L("\\medspace","\\:");L("\\;","\\tmspace+{5mu}{.2777em}");L("\\thickspace","\\;");L("\\!","\\tmspace-{3mu}{.1667em}");L("\\negthinspace","\\!");L("\\negmedspace","\\tmspace-{4mu}{.2222em}");L("\\negthickspace","\\tmspace-{5mu}{.277em}");L("\\enspace","\\kern.5em ");L("\\enskip","\\hskip.5em\\relax");L("\\quad","\\hskip1em\\relax");L("\\qquad","\\hskip2em\\relax");L("\\tag","\\@ifstar\\tag@literal\\tag@paren");L("\\tag@paren","\\tag@literal{({#1})}");L("\\tag@literal",I=>{if(I.macros.get("\\df@tag"))throw new DI("Multiple \\tag");return"\\gdef\\df@tag{\\text{#1}}"});L("\\bmod","\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}\\mathbin{\\rm mod}\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}");L("\\pod","\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern8mu}{\\mkern8mu}{\\mkern8mu}(#1)");L("\\pmod","\\pod{{\\rm mod}\\mkern6mu#1}");L("\\mod","\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern12mu}{\\mkern12mu}{\\mkern12mu}{\\rm mod}\\,\\,#1");L("\\newline","\\\\\\relax");L("\\TeX","\\textrm{\\html@mathml{T\\kern-.1667em\\raisebox{-.5ex}{E}\\kern-.125emX}{TeX}}");var _7=el(Tn["Main-Regular"]["T".charCodeAt(0)][1]-.7*Tn["Main-Regular"]["A".charCodeAt(0)][1]);L("\\LaTeX","\\textrm{\\html@mathml{"+("L\\kern-.36em\\raisebox{"+_7+"}{\\scriptstyle A}")+"\\kern-.15em\\TeX}{LaTeX}}");L("\\KaTeX","\\textrm{\\html@mathml{"+("K\\kern-.17em\\raisebox{"+_7+"}{\\scriptstyle A}")+"\\kern-.15em\\TeX}{KaTeX}}");L("\\hspace","\\@ifstar\\@hspacer\\@hspace");L("\\@hspace","\\hskip #1\\relax");L("\\@hspacer","\\rule{0pt}{0pt}\\hskip #1\\relax");L("\\ordinarycolon",":");L("\\vcentcolon","\\mathrel{\\mathop\\ordinarycolon}");L("\\dblcolon",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-.9mu}\\vcentcolon}}{\\mathop{\\char"2237}}');L("\\coloneqq",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2254}}');L("\\Coloneqq",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2237\\char"3d}}');L("\\coloneq",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"3a\\char"2212}}');L("\\Coloneq",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"2237\\char"2212}}');L("\\eqqcolon",'\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2255}}');L("\\Eqqcolon",'\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"3d\\char"2237}}');L("\\eqcolon",'\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2239}}');L("\\Eqcolon",'\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"2212\\char"2237}}');L("\\colonapprox",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"3a\\char"2248}}');L("\\Colonapprox",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"2237\\char"2248}}');L("\\colonsim",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"3a\\char"223c}}');L("\\Colonsim",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"2237\\char"223c}}');L("∷","\\dblcolon");L("∹","\\eqcolon");L("≔","\\coloneqq");L("≕","\\eqqcolon");L("⩴","\\Coloneqq");L("\\ratio","\\vcentcolon");L("\\coloncolon","\\dblcolon");L("\\colonequals","\\coloneqq");L("\\coloncolonequals","\\Coloneqq");L("\\equalscolon","\\eqqcolon");L("\\equalscoloncolon","\\Eqqcolon");L("\\colonminus","\\coloneq");L("\\coloncolonminus","\\Coloneq");L("\\minuscolon","\\eqcolon");L("\\minuscoloncolon","\\Eqcolon");L("\\coloncolonapprox","\\Colonapprox");L("\\coloncolonsim","\\Colonsim");L("\\simcolon","\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\vcentcolon}");L("\\simcoloncolon","\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\dblcolon}");L("\\approxcolon","\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\vcentcolon}");L("\\approxcoloncolon","\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\dblcolon}");L("\\notni","\\html@mathml{\\not\\ni}{\\mathrel{\\char`∌}}");L("\\limsup","\\DOTSB\\operatorname*{lim\\,sup}");L("\\liminf","\\DOTSB\\operatorname*{lim\\,inf}");L("\\injlim","\\DOTSB\\operatorname*{inj\\,lim}");L("\\projlim","\\DOTSB\\operatorname*{proj\\,lim}");L("\\varlimsup","\\DOTSB\\operatorname*{\\overline{lim}}");L("\\varliminf","\\DOTSB\\operatorname*{\\underline{lim}}");L("\\varinjlim","\\DOTSB\\operatorname*{\\underrightarrow{lim}}");L("\\varprojlim","\\DOTSB\\operatorname*{\\underleftarrow{lim}}");L("\\gvertneqq","\\html@mathml{\\@gvertneqq}{≩}");L("\\lvertneqq","\\html@mathml{\\@lvertneqq}{≨}");L("\\ngeqq","\\html@mathml{\\@ngeqq}{≱}");L("\\ngeqslant","\\html@mathml{\\@ngeqslant}{≱}");L("\\nleqq","\\html@mathml{\\@nleqq}{≰}");L("\\nleqslant","\\html@mathml{\\@nleqslant}{≰}");L("\\nshortmid","\\html@mathml{\\@nshortmid}{∤}");L("\\nshortparallel","\\html@mathml{\\@nshortparallel}{∦}");L("\\nsubseteqq","\\html@mathml{\\@nsubseteqq}{⊈}");L("\\nsupseteqq","\\html@mathml{\\@nsupseteqq}{⊉}");L("\\varsubsetneq","\\html@mathml{\\@varsubsetneq}{⊊}");L("\\varsubsetneqq","\\html@mathml{\\@varsubsetneqq}{⫋}");L("\\varsupsetneq","\\html@mathml{\\@varsupsetneq}{⊋}");L("\\varsupsetneqq","\\html@mathml{\\@varsupsetneqq}{⫌}");L("\\imath","\\html@mathml{\\@imath}{ı}");L("\\jmath","\\html@mathml{\\@jmath}{ȷ}");L("\\llbracket","\\html@mathml{\\mathopen{[\\mkern-3.2mu[}}{\\mathopen{\\char`⟦}}");L("\\rrbracket","\\html@mathml{\\mathclose{]\\mkern-3.2mu]}}{\\mathclose{\\char`⟧}}");L("⟦","\\llbracket");L("⟧","\\rrbracket");L("\\lBrace","\\html@mathml{\\mathopen{\\{\\mkern-3.2mu[}}{\\mathopen{\\char`⦃}}");L("\\rBrace","\\html@mathml{\\mathclose{]\\mkern-3.2mu\\}}}{\\mathclose{\\char`⦄}}");L("⦃","\\lBrace");L("⦄","\\rBrace");L("\\minuso","\\mathbin{\\html@mathml{{\\mathrlap{\\mathchoice{\\kern{0.145em}}{\\kern{0.145em}}{\\kern{0.1015em}}{\\kern{0.0725em}}\\circ}{-}}}{\\char`⦵}}");L("⦵","\\minuso");L("\\darr","\\downarrow");L("\\dArr","\\Downarrow");L("\\Darr","\\Downarrow");L("\\lang","\\langle");L("\\rang","\\rangle");L("\\uarr","\\uparrow");L("\\uArr","\\Uparrow");L("\\Uarr","\\Uparrow");L("\\N","\\mathbb{N}");L("\\R","\\mathbb{R}");L("\\Z","\\mathbb{Z}");L("\\alef","\\aleph");L("\\alefsym","\\aleph");L("\\Alpha","\\mathrm{A}");L("\\Beta","\\mathrm{B}");L("\\bull","\\bullet");L("\\Chi","\\mathrm{X}");L("\\clubs","\\clubsuit");L("\\cnums","\\mathbb{C}");L("\\Complex","\\mathbb{C}");L("\\Dagger","\\ddagger");L("\\diamonds","\\diamondsuit");L("\\empty","\\emptyset");L("\\Epsilon","\\mathrm{E}");L("\\Eta","\\mathrm{H}");L("\\exist","\\exists");L("\\harr","\\leftrightarrow");L("\\hArr","\\Leftrightarrow");L("\\Harr","\\Leftrightarrow");L("\\hearts","\\heartsuit");L("\\image","\\Im");L("\\infin","\\infty");L("\\Iota","\\mathrm{I}");L("\\isin","\\in");L("\\Kappa","\\mathrm{K}");L("\\larr","\\leftarrow");L("\\lArr","\\Leftarrow");L("\\Larr","\\Leftarrow");L("\\lrarr","\\leftrightarrow");L("\\lrArr","\\Leftrightarrow");L("\\Lrarr","\\Leftrightarrow");L("\\Mu","\\mathrm{M}");L("\\natnums","\\mathbb{N}");L("\\Nu","\\mathrm{N}");L("\\Omicron","\\mathrm{O}");L("\\plusmn","\\pm");L("\\rarr","\\rightarrow");L("\\rArr","\\Rightarrow");L("\\Rarr","\\Rightarrow");L("\\real","\\Re");L("\\reals","\\mathbb{R}");L("\\Reals","\\mathbb{R}");L("\\Rho","\\mathrm{P}");L("\\sdot","\\cdot");L("\\sect","\\S");L("\\spades","\\spadesuit");L("\\sub","\\subset");L("\\sube","\\subseteq");L("\\supe","\\supseteq");L("\\Tau","\\mathrm{T}");L("\\thetasym","\\vartheta");L("\\weierp","\\wp");L("\\Zeta","\\mathrm{Z}");L("\\argmin","\\DOTSB\\operatorname*{arg\\,min}");L("\\argmax","\\DOTSB\\operatorname*{arg\\,max}");L("\\plim","\\DOTSB\\mathop{\\operatorname{plim}}\\limits");L("\\bra","\\mathinner{\\langle{#1}|}");L("\\ket","\\mathinner{|{#1}\\rangle}");L("\\braket","\\mathinner{\\langle{#1}\\rangle}");L("\\Bra","\\left\\langle#1\\right|");L("\\Ket","\\left|#1\\right\\rangle");var q7=I=>l=>{var c=l.consumeArg().tokens,G=l.consumeArg().tokens,e=l.consumeArg().tokens,d=l.consumeArg().tokens,t=l.macros.get("|"),n=l.macros.get("\\|");l.macros.beginGroup();var b=W=>m=>{I&&(m.macros.set("|",t),e.length&&m.macros.set("\\|",n));var s=W;if(!W&&e.length){var h=m.future();h.text==="|"&&(m.popToken(),s=!0)}return{tokens:s?e:G,numArgs:0}};l.macros.set("|",b(!1)),e.length&&l.macros.set("\\|",b(!0));var a=l.consumeArg().tokens,Z=l.expandTokens([...d,...a,...c]);return l.macros.endGroup(),{tokens:Z.reverse(),numArgs:0}};L("\\bra@ket",q7(!1));L("\\bra@set",q7(!0));L("\\Braket","\\bra@ket{\\left\\langle}{\\,\\middle\\vert\\,}{\\,\\middle\\vert\\,}{\\right\\rangle}");L("\\Set","\\bra@set{\\left\\{\\:}{\\;\\middle\\vert\\;}{\\;\\middle\\Vert\\;}{\\:\\right\\}}");L("\\set","\\bra@set{\\{\\,}{\\mid}{}{\\,\\}}");L("\\angln","{\\angl n}");L("\\blue","\\textcolor{##6495ed}{#1}");L("\\orange","\\textcolor{##ffa500}{#1}");L("\\pink","\\textcolor{##ff00af}{#1}");L("\\red","\\textcolor{##df0030}{#1}");L("\\green","\\textcolor{##28ae7b}{#1}");L("\\gray","\\textcolor{gray}{#1}");L("\\purple","\\textcolor{##9d38bd}{#1}");L("\\blueA","\\textcolor{##ccfaff}{#1}");L("\\blueB","\\textcolor{##80f6ff}{#1}");L("\\blueC","\\textcolor{##63d9ea}{#1}");L("\\blueD","\\textcolor{##11accd}{#1}");L("\\blueE","\\textcolor{##0c7f99}{#1}");L("\\tealA","\\textcolor{##94fff5}{#1}");L("\\tealB","\\textcolor{##26edd5}{#1}");L("\\tealC","\\textcolor{##01d1c1}{#1}");L("\\tealD","\\textcolor{##01a995}{#1}");L("\\tealE","\\textcolor{##208170}{#1}");L("\\greenA","\\textcolor{##b6ffb0}{#1}");L("\\greenB","\\textcolor{##8af281}{#1}");L("\\greenC","\\textcolor{##74cf70}{#1}");L("\\greenD","\\textcolor{##1fab54}{#1}");L("\\greenE","\\textcolor{##0d923f}{#1}");L("\\goldA","\\textcolor{##ffd0a9}{#1}");L("\\goldB","\\textcolor{##ffbb71}{#1}");L("\\goldC","\\textcolor{##ff9c39}{#1}");L("\\goldD","\\textcolor{##e07d10}{#1}");L("\\goldE","\\textcolor{##a75a05}{#1}");L("\\redA","\\textcolor{##fca9a9}{#1}");L("\\redB","\\textcolor{##ff8482}{#1}");L("\\redC","\\textcolor{##f9685d}{#1}");L("\\redD","\\textcolor{##e84d39}{#1}");L("\\redE","\\textcolor{##bc2612}{#1}");L("\\maroonA","\\textcolor{##ffbde0}{#1}");L("\\maroonB","\\textcolor{##ff92c6}{#1}");L("\\maroonC","\\textcolor{##ed5fa6}{#1}");L("\\maroonD","\\textcolor{##ca337c}{#1}");L("\\maroonE","\\textcolor{##9e034e}{#1}");L("\\purpleA","\\textcolor{##ddd7ff}{#1}");L("\\purpleB","\\textcolor{##c6b9fc}{#1}");L("\\purpleC","\\textcolor{##aa87ff}{#1}");L("\\purpleD","\\textcolor{##7854ab}{#1}");L("\\purpleE","\\textcolor{##543b78}{#1}");L("\\mintA","\\textcolor{##f5f9e8}{#1}");L("\\mintB","\\textcolor{##edf2df}{#1}");L("\\mintC","\\textcolor{##e0e5cc}{#1}");L("\\grayA","\\textcolor{##f6f7f7}{#1}");L("\\grayB","\\textcolor{##f0f1f2}{#1}");L("\\grayC","\\textcolor{##e3e5e6}{#1}");L("\\grayD","\\textcolor{##d6d8da}{#1}");L("\\grayE","\\textcolor{##babec2}{#1}");L("\\grayF","\\textcolor{##888d93}{#1}");L("\\grayG","\\textcolor{##626569}{#1}");L("\\grayH","\\textcolor{##3b3e40}{#1}");L("\\grayI","\\textcolor{##21242c}{#1}");L("\\kaBlue","\\textcolor{##314453}{#1}");L("\\kaGreen","\\textcolor{##71B307}{#1}");var $7={"^":!0,_:!0,"\\limits":!0,"\\nolimits":!0};class d4I{constructor(l,c,G){this.settings=void 0,this.expansionCount=void 0,this.lexer=void 0,this.macros=void 0,this.stack=void 0,this.mode=void 0,this.settings=c,this.expansionCount=0,this.feed(l),this.macros=new G4I(e4I,c.macros),this.mode=G,this.stack=[]}feed(l){this.lexer=new VU(l,this.settings)}switchMode(l){this.mode=l}beginGroup(){this.macros.beginGroup()}endGroup(){this.macros.endGroup()}endGroups(){this.macros.endGroups()}future(){return this.stack.length===0&&this.pushToken(this.lexer.lex()),this.stack[this.stack.length-1]}popToken(){return this.future(),this.stack.pop()}pushToken(l){this.stack.push(l)}pushTokens(l){this.stack.push(...l)}scanArgument(l){var c,G,e;if(l){if(this.consumeSpaces(),this.future().text!=="[")return null;c=this.popToken(),{tokens:e,end:G}=this.consumeArg(["]"])}else({tokens:e,start:c,end:G}=this.consumeArg());return this.pushToken(new gt("EOF",G.loc)),this.pushTokens(e),c.range(G,"")}consumeSpaces(){for(;;){var l=this.future();if(l.text===" ")this.stack.pop();else break}}consumeArg(l){var c=[],G=l&&l.length>0;G||this.consumeSpaces();var e=this.future(),d,t=0,n=0;do{if(d=this.popToken(),c.push(d),d.text==="{")++t;else if(d.text==="}"){if(--t,t===-1)throw new DI("Extra }",d)}else if(d.text==="EOF")throw new DI("Unexpected end of input in a macro argument, expected '"+(l&&G?l[n]:"}")+"'",d);if(l&&G)if((t===0||t===1&&l[n]==="{")&&d.text===l[n]){if(++n,n===l.length){c.splice(-n,n);break}}else n=0}while(t!==0||G);return e.text==="{"&&c[c.length-1].text==="}"&&(c.pop(),c.shift()),c.reverse(),{tokens:c,start:e,end:d}}consumeArgs(l,c){if(c){if(c.length!==l+1)throw new DI("The length of delimiters doesn't match the number of args!");for(var G=c[0],e=0;ethis.settings.maxExpand)throw new DI("Too many expansions: infinite loop or need to increase maxExpand setting")}expandOnce(l){var c=this.popToken(),G=c.text,e=c.noexpand?null:this._getExpansion(G);if(e==null||l&&e.unexpandable){if(l&&e==null&&G[0]==="\\"&&!this.isDefined(G))throw new DI("Undefined control sequence: "+G);return this.pushToken(c),!1}this.countExpansion(1);var d=e.tokens,t=this.consumeArgs(e.numArgs,e.delimiters);if(e.numArgs){d=d.slice();for(var n=d.length-1;n>=0;--n){var b=d[n];if(b.text==="#"){if(n===0)throw new DI("Incomplete placeholder at end of macro body",b);if(b=d[--n],b.text==="#")d.splice(n+1,1);else if(/^[1-9]$/.test(b.text))d.splice(n,2,...t[+b.text-1]);else throw new DI("Not a valid argument number",b)}}}return this.pushTokens(d),d.length}expandAfterFuture(){return this.expandOnce(),this.future()}expandNextToken(){for(;;)if(this.expandOnce()===!1){var l=this.stack.pop();return l.treatAsRelax&&(l.text="\\relax"),l}throw new Error}expandMacro(l){return this.macros.has(l)?this.expandTokens([new gt(l)]):void 0}expandTokens(l){var c=[],G=this.stack.length;for(this.pushTokens(l);this.stack.length>G;)if(this.expandOnce(!0)===!1){var e=this.stack.pop();e.treatAsRelax&&(e.noexpand=!1,e.treatAsRelax=!1),c.push(e)}return this.countExpansion(c.length),c}expandMacroAsText(l){var c=this.expandMacro(l);return c&&c.map(G=>G.text).join("")}_getExpansion(l){var c=this.macros.get(l);if(c==null)return c;if(l.length===1){var G=this.lexer.catcodes[l];if(G!=null&&G!==13)return}var e=typeof c=="function"?c(this):c;if(typeof e=="string"){var d=0;if(e.indexOf("#")!==-1)for(var t=e.replace(/##/g,"");t.indexOf("#"+(d+1))!==-1;)++d;for(var n=new VU(e,this.settings),b=[],a=n.lex();a.text!=="EOF";)b.push(a),a=n.lex();b.reverse();var Z={tokens:b,numArgs:d};return Z}return e}isDefined(l){return this.macros.has(l)||Ma.hasOwnProperty(l)||_c.math.hasOwnProperty(l)||_c.text.hasOwnProperty(l)||$7.hasOwnProperty(l)}isExpandable(l){var c=this.macros.get(l);return c!=null?typeof c=="string"||typeof c=="function"||!c.unexpandable:Ma.hasOwnProperty(l)&&!Ma[l].primitive}}var NU=/^[₊₋₌₍₎₀₁₂₃₄₅₆₇₈₉ₐₑₕᵢⱼₖₗₘₙₒₚᵣₛₜᵤᵥₓᵦᵧᵨᵩᵪ]/,b2=Object.freeze({"₊":"+","₋":"-","₌":"=","₍":"(","₎":")","₀":"0","₁":"1","₂":"2","₃":"3","₄":"4","₅":"5","₆":"6","₇":"7","₈":"8","₉":"9","ₐ":"a","ₑ":"e","ₕ":"h","ᵢ":"i","ⱼ":"j","ₖ":"k","ₗ":"l","ₘ":"m","ₙ":"n","ₒ":"o","ₚ":"p","ᵣ":"r","ₛ":"s","ₜ":"t","ᵤ":"u","ᵥ":"v","ₓ":"x","ᵦ":"β","ᵧ":"γ","ᵨ":"ρ","ᵩ":"ϕ","ᵪ":"χ","⁺":"+","⁻":"-","⁼":"=","⁽":"(","⁾":")","⁰":"0","¹":"1","²":"2","³":"3","⁴":"4","⁵":"5","⁶":"6","⁷":"7","⁸":"8","⁹":"9","ᴬ":"A","ᴮ":"B","ᴰ":"D","ᴱ":"E","ᴳ":"G","ᴴ":"H","ᴵ":"I","ᴶ":"J","ᴷ":"K","ᴸ":"L","ᴹ":"M","ᴺ":"N","ᴼ":"O","ᴾ":"P","ᴿ":"R","ᵀ":"T","ᵁ":"U","ⱽ":"V","ᵂ":"W","ᵃ":"a","ᵇ":"b","ᶜ":"c","ᵈ":"d","ᵉ":"e","ᶠ":"f","ᵍ":"g",ʰ:"h","ⁱ":"i",ʲ:"j","ᵏ":"k",ˡ:"l","ᵐ":"m",ⁿ:"n","ᵒ":"o","ᵖ":"p",ʳ:"r",ˢ:"s","ᵗ":"t","ᵘ":"u","ᵛ":"v",ʷ:"w",ˣ:"x",ʸ:"y","ᶻ":"z","ᵝ":"β","ᵞ":"γ","ᵟ":"δ","ᵠ":"ϕ","ᵡ":"χ","ᶿ":"θ"}),cH={"́":{text:"\\'",math:"\\acute"},"̀":{text:"\\`",math:"\\grave"},"̈":{text:'\\"',math:"\\ddot"},"̃":{text:"\\~",math:"\\tilde"},"̄":{text:"\\=",math:"\\bar"},"̆":{text:"\\u",math:"\\breve"},"̌":{text:"\\v",math:"\\check"},"̂":{text:"\\^",math:"\\hat"},"̇":{text:"\\.",math:"\\dot"},"̊":{text:"\\r",math:"\\mathring"},"̋":{text:"\\H"},"̧":{text:"\\c"}},RU={á:"á",à:"à",ä:"ä",ǟ:"ǟ",ã:"ã",ā:"ā",ă:"ă",ắ:"ắ",ằ:"ằ",ẵ:"ẵ",ǎ:"ǎ",â:"â",ấ:"ấ",ầ:"ầ",ẫ:"ẫ",ȧ:"ȧ",ǡ:"ǡ",å:"å",ǻ:"ǻ",ḃ:"ḃ",ć:"ć",ḉ:"ḉ",č:"č",ĉ:"ĉ",ċ:"ċ",ç:"ç",ď:"ď",ḋ:"ḋ",ḑ:"ḑ",é:"é",è:"è",ë:"ë",ẽ:"ẽ",ē:"ē",ḗ:"ḗ",ḕ:"ḕ",ĕ:"ĕ",ḝ:"ḝ",ě:"ě",ê:"ê",ế:"ế",ề:"ề",ễ:"ễ",ė:"ė",ȩ:"ȩ",ḟ:"ḟ",ǵ:"ǵ",ḡ:"ḡ",ğ:"ğ",ǧ:"ǧ",ĝ:"ĝ",ġ:"ġ",ģ:"ģ",ḧ:"ḧ",ȟ:"ȟ",ĥ:"ĥ",ḣ:"ḣ",ḩ:"ḩ",í:"í",ì:"ì",ï:"ï",ḯ:"ḯ",ĩ:"ĩ",ī:"ī",ĭ:"ĭ",ǐ:"ǐ",î:"î",ǰ:"ǰ",ĵ:"ĵ",ḱ:"ḱ",ǩ:"ǩ",ķ:"ķ",ĺ:"ĺ",ľ:"ľ",ļ:"ļ",ḿ:"ḿ",ṁ:"ṁ",ń:"ń",ǹ:"ǹ",ñ:"ñ",ň:"ň",ṅ:"ṅ",ņ:"ņ",ó:"ó",ò:"ò",ö:"ö",ȫ:"ȫ",õ:"õ",ṍ:"ṍ",ṏ:"ṏ",ȭ:"ȭ",ō:"ō",ṓ:"ṓ",ṑ:"ṑ",ŏ:"ŏ",ǒ:"ǒ",ô:"ô",ố:"ố",ồ:"ồ",ỗ:"ỗ",ȯ:"ȯ",ȱ:"ȱ",ő:"ő",ṕ:"ṕ",ṗ:"ṗ",ŕ:"ŕ",ř:"ř",ṙ:"ṙ",ŗ:"ŗ",ś:"ś",ṥ:"ṥ",š:"š",ṧ:"ṧ",ŝ:"ŝ",ṡ:"ṡ",ş:"ş",ẗ:"ẗ",ť:"ť",ṫ:"ṫ",ţ:"ţ",ú:"ú",ù:"ù",ü:"ü",ǘ:"ǘ",ǜ:"ǜ",ǖ:"ǖ",ǚ:"ǚ",ũ:"ũ",ṹ:"ṹ",ū:"ū",ṻ:"ṻ",ŭ:"ŭ",ǔ:"ǔ",û:"û",ů:"ů",ű:"ű",ṽ:"ṽ",ẃ:"ẃ",ẁ:"ẁ",ẅ:"ẅ",ŵ:"ŵ",ẇ:"ẇ",ẘ:"ẘ",ẍ:"ẍ",ẋ:"ẋ",ý:"ý",ỳ:"ỳ",ÿ:"ÿ",ỹ:"ỹ",ȳ:"ȳ",ŷ:"ŷ",ẏ:"ẏ",ẙ:"ẙ",ź:"ź",ž:"ž",ẑ:"ẑ",ż:"ż",Á:"Á",À:"À",Ä:"Ä",Ǟ:"Ǟ",Ã:"Ã",Ā:"Ā",Ă:"Ă",Ắ:"Ắ",Ằ:"Ằ",Ẵ:"Ẵ",Ǎ:"Ǎ",Â:"Â",Ấ:"Ấ",Ầ:"Ầ",Ẫ:"Ẫ",Ȧ:"Ȧ",Ǡ:"Ǡ",Å:"Å",Ǻ:"Ǻ",Ḃ:"Ḃ",Ć:"Ć",Ḉ:"Ḉ",Č:"Č",Ĉ:"Ĉ",Ċ:"Ċ",Ç:"Ç",Ď:"Ď",Ḋ:"Ḋ",Ḑ:"Ḑ",É:"É",È:"È",Ë:"Ë",Ẽ:"Ẽ",Ē:"Ē",Ḗ:"Ḗ",Ḕ:"Ḕ",Ĕ:"Ĕ",Ḝ:"Ḝ",Ě:"Ě",Ê:"Ê",Ế:"Ế",Ề:"Ề",Ễ:"Ễ",Ė:"Ė",Ȩ:"Ȩ",Ḟ:"Ḟ",Ǵ:"Ǵ",Ḡ:"Ḡ",Ğ:"Ğ",Ǧ:"Ǧ",Ĝ:"Ĝ",Ġ:"Ġ",Ģ:"Ģ",Ḧ:"Ḧ",Ȟ:"Ȟ",Ĥ:"Ĥ",Ḣ:"Ḣ",Ḩ:"Ḩ",Í:"Í",Ì:"Ì",Ï:"Ï",Ḯ:"Ḯ",Ĩ:"Ĩ",Ī:"Ī",Ĭ:"Ĭ",Ǐ:"Ǐ",Î:"Î",İ:"İ",Ĵ:"Ĵ",Ḱ:"Ḱ",Ǩ:"Ǩ",Ķ:"Ķ",Ĺ:"Ĺ",Ľ:"Ľ",Ļ:"Ļ",Ḿ:"Ḿ",Ṁ:"Ṁ",Ń:"Ń",Ǹ:"Ǹ",Ñ:"Ñ",Ň:"Ň",Ṅ:"Ṅ",Ņ:"Ņ",Ó:"Ó",Ò:"Ò",Ö:"Ö",Ȫ:"Ȫ",Õ:"Õ",Ṍ:"Ṍ",Ṏ:"Ṏ",Ȭ:"Ȭ",Ō:"Ō",Ṓ:"Ṓ",Ṑ:"Ṑ",Ŏ:"Ŏ",Ǒ:"Ǒ",Ô:"Ô",Ố:"Ố",Ồ:"Ồ",Ỗ:"Ỗ",Ȯ:"Ȯ",Ȱ:"Ȱ",Ő:"Ő",Ṕ:"Ṕ",Ṗ:"Ṗ",Ŕ:"Ŕ",Ř:"Ř",Ṙ:"Ṙ",Ŗ:"Ŗ",Ś:"Ś",Ṥ:"Ṥ",Š:"Š",Ṧ:"Ṧ",Ŝ:"Ŝ",Ṡ:"Ṡ",Ş:"Ş",Ť:"Ť",Ṫ:"Ṫ",Ţ:"Ţ",Ú:"Ú",Ù:"Ù",Ü:"Ü",Ǘ:"Ǘ",Ǜ:"Ǜ",Ǖ:"Ǖ",Ǚ:"Ǚ",Ũ:"Ũ",Ṹ:"Ṹ",Ū:"Ū",Ṻ:"Ṻ",Ŭ:"Ŭ",Ǔ:"Ǔ",Û:"Û",Ů:"Ů",Ű:"Ű",Ṽ:"Ṽ",Ẃ:"Ẃ",Ẁ:"Ẁ",Ẅ:"Ẅ",Ŵ:"Ŵ",Ẇ:"Ẇ",Ẍ:"Ẍ",Ẋ:"Ẋ",Ý:"Ý",Ỳ:"Ỳ",Ÿ:"Ÿ",Ỹ:"Ỹ",Ȳ:"Ȳ",Ŷ:"Ŷ",Ẏ:"Ẏ",Ź:"Ź",Ž:"Ž",Ẑ:"Ẑ",Ż:"Ż",ά:"ά",ὰ:"ὰ",ᾱ:"ᾱ",ᾰ:"ᾰ",έ:"έ",ὲ:"ὲ",ή:"ή",ὴ:"ὴ",ί:"ί",ὶ:"ὶ",ϊ:"ϊ",ΐ:"ΐ",ῒ:"ῒ",ῑ:"ῑ",ῐ:"ῐ",ό:"ό",ὸ:"ὸ",ύ:"ύ",ὺ:"ὺ",ϋ:"ϋ",ΰ:"ΰ",ῢ:"ῢ",ῡ:"ῡ",ῠ:"ῠ",ώ:"ώ",ὼ:"ὼ",Ύ:"Ύ",Ὺ:"Ὺ",Ϋ:"Ϋ",Ῡ:"Ῡ",Ῠ:"Ῠ",Ώ:"Ώ",Ὼ:"Ὼ"};class xN{constructor(l,c){this.mode=void 0,this.gullet=void 0,this.settings=void 0,this.leftrightDepth=void 0,this.nextToken=void 0,this.mode="math",this.gullet=new d4I(l,c,this.mode),this.settings=c,this.leftrightDepth=0}expect(l,c){if(c===void 0&&(c=!0),this.fetch().text!==l)throw new DI("Expected '"+l+"', got '"+this.fetch().text+"'",this.fetch());c&&this.consume()}consume(){this.nextToken=null}fetch(){return this.nextToken==null&&(this.nextToken=this.gullet.expandNextToken()),this.nextToken}switchMode(l){this.mode=l,this.gullet.switchMode(l)}parse(){this.settings.globalGroup||this.gullet.beginGroup(),this.settings.colorIsTextColor&&this.gullet.macros.set("\\color","\\textcolor");try{var l=this.parseExpression(!1);return this.expect("EOF"),this.settings.globalGroup||this.gullet.endGroup(),l}finally{this.gullet.endGroups()}}subparse(l){var c=this.nextToken;this.consume(),this.gullet.pushToken(new gt("}")),this.gullet.pushTokens(l);var G=this.parseExpression(!1);return this.expect("}"),this.nextToken=c,G}parseExpression(l,c){for(var G=[];;){this.mode==="math"&&this.consumeSpaces();var e=this.fetch();if(xN.endOfExpression.indexOf(e.text)!==-1||c&&e.text===c||l&&Ma[e.text]&&Ma[e.text].infix)break;var d=this.parseAtom(c);if(d){if(d.type==="internal")continue}else break;G.push(d)}return this.mode==="text"&&this.formLigatures(G),this.handleInfixNodes(G)}handleInfixNodes(l){for(var c=-1,G,e=0;e=0&&this.settings.reportNonstrict("unicodeTextInMathMode",'Latin-1/Unicode text character "'+c[0]+'" used in math mode',l);var n=_c[this.mode][c].group,b=Cd.range(l),a;if(jBI.hasOwnProperty(n)){var Z=n;a={type:"atom",mode:this.mode,family:Z,loc:b,text:c}}else a={type:n,mode:this.mode,loc:b,text:c};t=a}else if(c.charCodeAt(0)>=128)this.settings.strict&&(b7(c.charCodeAt(0))?this.mode==="math"&&this.settings.reportNonstrict("unicodeTextInMathMode",'Unicode text character "'+c[0]+'" used in math mode',l):this.settings.reportNonstrict("unknownSymbol",'Unrecognized Unicode character "'+c[0]+'"'+(" ("+c.charCodeAt(0)+")"),l)),t={type:"textord",mode:"text",loc:Cd.range(l),text:c};else return null;if(this.consume(),d)for(var W=0;Wt&&(t=d):d=1,e=G+l.length,G=c.indexOf(l,e);return t}function m4I(){return{enter:{mathFlow:I,mathFlowFenceMeta:l,mathText:d},exit:{mathFlow:e,mathFlowFence:G,mathFlowFenceMeta:c,mathFlowValue:n,mathText:t,mathTextData:n}};function I(b){const a={type:"element",tagName:"code",properties:{className:["language-math","math-display"]},children:[]};this.enter({type:"math",meta:null,value:"",data:{hName:"pre",hChildren:[a]}},b)}function l(){this.buffer()}function c(){const b=this.resume(),a=this.stack[this.stack.length-1];a.type,a.meta=b}function G(){this.data.mathFlowInside||(this.buffer(),this.data.mathFlowInside=!0)}function e(b){const a=this.resume().replace(/^(\r?\n|\r)|(\r?\n|\r)$/g,""),Z=this.stack[this.stack.length-1];Z.type,this.exit(b),Z.value=a;const W=Z.data.hChildren[0];W.type,W.tagName,W.children.push({type:"text",value:a}),this.data.mathFlowInside=void 0}function d(b){this.enter({type:"inlineMath",value:"",data:{hName:"code",hProperties:{className:["language-math","math-inline"]},hChildren:[]}},b),this.buffer()}function t(b){const a=this.resume(),Z=this.stack[this.stack.length-1];Z.type,this.exit(b),Z.value=a,Z.data.hChildren.push({type:"text",value:a})}function n(b){this.config.enter.data.call(this,b),this.config.exit.data.call(this,b)}}function s4I(I){let l=(I||{}).singleDollarTextMath;return l==null&&(l=!0),G.peek=e,{unsafe:[{character:"\r",inConstruct:"mathFlowMeta"},{character:` -`,inConstruct:"mathFlowMeta"},{character:"$",after:l?void 0:"\\$",inConstruct:"phrasing"},{character:"$",inConstruct:"mathFlowMeta"},{atBreak:!0,character:"$",after:"\\$"}],handlers:{math:c,inlineMath:G}};function c(d,t,n,b){const a=d.value||"",Z=n.createTracker(b),W="$".repeat(Math.max(r4I(a,"$")+1,2)),m=n.enter("mathFlow");let s=Z.move(W);if(d.meta){const h=n.enter("mathFlowMeta");s+=Z.move(n.safe(d.meta,{after:` -`,before:s,encode:["$"],...Z.current()})),h()}return s+=Z.move(` -`),a&&(s+=Z.move(a+` -`)),s+=Z.move(W),m(),s}function G(d,t,n){let b=d.value||"",a=1;for(l||a++;new RegExp("(^|[^$])"+"\\$".repeat(a)+"([^$]|$)").test(b);)a++;const Z="$".repeat(a);/[^ \r\n]/.test(b)&&(/^[ \r\n]/.test(b)&&/[ \r\n]$/.test(b)||/^\$|\$$/.test(b))&&(b=" "+b+" ");let W=-1;for(;++WI.state.config.ui)}function Ri(I){const[l,c]=E.useState(!1);return v.jsx(v.Fragment,{children:v.jsx(le,{text:l?"Copied!":"Copy",onClick:G=>{const e=typeof I.text=="string"?I.text:I.text();$W()?hd("copyText",{text:e}):navigator.clipboard.writeText(e),c(!0),setTimeout(()=>c(!1),2e3)},children:l?v.jsx(mg,{className:"w-4 h-4 text-green-500"}):v.jsx(aWI,{className:"w-4 h-4",color:I.color})})})}const X4I=LI.div` +?)[ \r ]*`,RF="[̀-ͯ]",Xxe=new RegExp(RF+"+$"),Lxe="("+$z+"+)|"+(Hxe+"|")+"([!-\\[\\]-‧‪-퟿豈-￿]"+(RF+"*")+"|[\uD800-\uDBFF][\uDC00-\uDFFF]"+(RF+"*")+"|\\\\verb\\*([^]).*?\\4|\\\\verb([^*a-zA-Z]).*?\\5"+("|"+Zxe)+("|"+Nxe+")");class xZ{constructor(t,n){this.input=void 0,this.settings=void 0,this.tokenRegex=void 0,this.catcodes=void 0,this.input=t,this.settings=n,this.tokenRegex=new RegExp(Lxe,"g"),this.catcodes={"%":14,"~":13}}setCatcode(t,n){this.catcodes[t]=n}lex(){var t=this.input,n=this.tokenRegex.lastIndex;if(n===t.length)return new Ho("EOF",new Ia(this,n,n));var r=this.tokenRegex.exec(t);if(r===null||r.index!==n)throw new $e("Unexpected character: '"+t[n]+"'",new Ho(t[n],new Ia(this,n,n+1)));var i=r[6]||r[3]||(r[2]?"\\ ":" ");if(this.catcodes[i]===14){var a=t.indexOf(` +`,this.tokenRegex.lastIndex);return a===-1?(this.tokenRegex.lastIndex=t.length,this.settings.reportNonstrict("commentAtEnd","% comment has no terminating newline; LaTeX would fail because of commenting the end of math mode (e.g. $)")):this.tokenRegex.lastIndex=a+1,this.lex()}return new Ho(i,new Ia(this,n,this.tokenRegex.lastIndex))}}class Mxe{constructor(t,n){t===void 0&&(t={}),n===void 0&&(n={}),this.current=void 0,this.builtins=void 0,this.undefStack=void 0,this.current=n,this.builtins=t,this.undefStack=[]}beginGroup(){this.undefStack.push({})}endGroup(){if(this.undefStack.length===0)throw new $e("Unbalanced namespace destruction: attempt to pop global namespace; please report this as a bug");var t=this.undefStack.pop();for(var n in t)t.hasOwnProperty(n)&&(t[n]==null?delete this.current[n]:this.current[n]=t[n])}endGroups(){for(;this.undefStack.length>0;)this.endGroup()}has(t){return this.current.hasOwnProperty(t)||this.builtins.hasOwnProperty(t)}get(t){return this.current.hasOwnProperty(t)?this.current[t]:this.builtins[t]}set(t,n,r){if(r===void 0&&(r=!1),r){for(var i=0;i0&&(this.undefStack[this.undefStack.length-1][t]=n)}else{var a=this.undefStack[this.undefStack.length-1];a&&!a.hasOwnProperty(t)&&(a[t]=this.current[t])}n==null?delete this.current[t]:this.current[t]=n}}var Txe=Tz;U("\\noexpand",function(e){var t=e.popToken();return e.isExpandable(t.text)&&(t.noexpand=!0,t.treatAsRelax=!0),{tokens:[t],numArgs:0}});U("\\expandafter",function(e){var t=e.popToken();return e.expandOnce(!0),{tokens:[t],numArgs:0}});U("\\@firstoftwo",function(e){var t=e.consumeArgs(2);return{tokens:t[0],numArgs:0}});U("\\@secondoftwo",function(e){var t=e.consumeArgs(2);return{tokens:t[1],numArgs:0}});U("\\@ifnextchar",function(e){var t=e.consumeArgs(3);e.consumeSpaces();var n=e.future();return t[0].length===1&&t[0][0].text===n.text?{tokens:t[1],numArgs:0}:{tokens:t[2],numArgs:0}});U("\\@ifstar","\\@ifnextchar *{\\@firstoftwo{#1}}");U("\\TextOrMath",function(e){var t=e.consumeArgs(2);return e.mode==="text"?{tokens:t[0],numArgs:0}:{tokens:t[1],numArgs:0}});var GZ={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,a:10,A:10,b:11,B:11,c:12,C:12,d:13,D:13,e:14,E:14,f:15,F:15};U("\\char",function(e){var t=e.popToken(),n,r="";if(t.text==="'")n=8,t=e.popToken();else if(t.text==='"')n=16,t=e.popToken();else if(t.text==="`")if(t=e.popToken(),t.text[0]==="\\")r=t.text.charCodeAt(1);else{if(t.text==="EOF")throw new $e("\\char` missing argument");r=t.text.charCodeAt(0)}else n=10;if(n){if(r=GZ[t.text],r==null||r>=n)throw new $e("Invalid base-"+n+" digit "+t.text);for(var i;(i=GZ[e.future().text])!=null&&i{var r=e.consumeArg().tokens;if(r.length!==1)throw new $e("\\newcommand's first argument must be a macro name");var i=r[0].text,a=e.isDefined(i);if(a&&!t)throw new $e("\\newcommand{"+i+"} attempting to redefine "+(i+"; use \\renewcommand"));if(!a&&!n)throw new $e("\\renewcommand{"+i+"} when command "+i+" does not yet exist; use \\newcommand");var o=0;if(r=e.consumeArg().tokens,r.length===1&&r[0].text==="["){for(var l="",s=e.expandNextToken();s.text!=="]"&&s.text!=="EOF";)l+=s.text,s=e.expandNextToken();if(!l.match(/^\s*[0-9]+\s*$/))throw new $e("Invalid number of arguments: "+l);o=parseInt(l),r=e.consumeArg().tokens}return e.macros.set(i,{tokens:r,numArgs:o}),""};U("\\newcommand",e=>vR(e,!1,!0));U("\\renewcommand",e=>vR(e,!0,!1));U("\\providecommand",e=>vR(e,!0,!0));U("\\message",e=>{var t=e.consumeArgs(1)[0];return console.log(t.reverse().map(n=>n.text).join("")),""});U("\\errmessage",e=>{var t=e.consumeArgs(1)[0];return console.error(t.reverse().map(n=>n.text).join("")),""});U("\\show",e=>{var t=e.popToken(),n=t.text;return console.log(t,e.macros.get(n),qu[n],tr.math[n],tr.text[n]),""});U("\\bgroup","{");U("\\egroup","}");U("~","\\nobreakspace");U("\\lq","`");U("\\rq","'");U("\\aa","\\r a");U("\\AA","\\r A");U("\\textcopyright","\\html@mathml{\\textcircled{c}}{\\char`©}");U("\\copyright","\\TextOrMath{\\textcopyright}{\\text{\\textcopyright}}");U("\\textregistered","\\html@mathml{\\textcircled{\\scriptsize R}}{\\char`®}");U("ℬ","\\mathscr{B}");U("ℰ","\\mathscr{E}");U("ℱ","\\mathscr{F}");U("ℋ","\\mathscr{H}");U("ℐ","\\mathscr{I}");U("ℒ","\\mathscr{L}");U("ℳ","\\mathscr{M}");U("ℛ","\\mathscr{R}");U("ℭ","\\mathfrak{C}");U("ℌ","\\mathfrak{H}");U("ℨ","\\mathfrak{Z}");U("\\Bbbk","\\Bbb{k}");U("·","\\cdotp");U("\\llap","\\mathllap{\\textrm{#1}}");U("\\rlap","\\mathrlap{\\textrm{#1}}");U("\\clap","\\mathclap{\\textrm{#1}}");U("\\mathstrut","\\vphantom{(}");U("\\underbar","\\underline{\\text{#1}}");U("\\not",'\\html@mathml{\\mathrel{\\mathrlap\\@not}}{\\char"338}');U("\\neq","\\html@mathml{\\mathrel{\\not=}}{\\mathrel{\\char`≠}}");U("\\ne","\\neq");U("≠","\\neq");U("\\notin","\\html@mathml{\\mathrel{{\\in}\\mathllap{/\\mskip1mu}}}{\\mathrel{\\char`∉}}");U("∉","\\notin");U("≘","\\html@mathml{\\mathrel{=\\kern{-1em}\\raisebox{0.4em}{$\\scriptsize\\frown$}}}{\\mathrel{\\char`≘}}");U("≙","\\html@mathml{\\stackrel{\\tiny\\wedge}{=}}{\\mathrel{\\char`≘}}");U("≚","\\html@mathml{\\stackrel{\\tiny\\vee}{=}}{\\mathrel{\\char`≚}}");U("≛","\\html@mathml{\\stackrel{\\scriptsize\\star}{=}}{\\mathrel{\\char`≛}}");U("≝","\\html@mathml{\\stackrel{\\tiny\\mathrm{def}}{=}}{\\mathrel{\\char`≝}}");U("≞","\\html@mathml{\\stackrel{\\tiny\\mathrm{m}}{=}}{\\mathrel{\\char`≞}}");U("≟","\\html@mathml{\\stackrel{\\tiny?}{=}}{\\mathrel{\\char`≟}}");U("⟂","\\perp");U("‼","\\mathclose{!\\mkern-0.8mu!}");U("∌","\\notni");U("⌜","\\ulcorner");U("⌝","\\urcorner");U("⌞","\\llcorner");U("⌟","\\lrcorner");U("©","\\copyright");U("®","\\textregistered");U("️","\\textregistered");U("\\ulcorner",'\\html@mathml{\\@ulcorner}{\\mathop{\\char"231c}}');U("\\urcorner",'\\html@mathml{\\@urcorner}{\\mathop{\\char"231d}}');U("\\llcorner",'\\html@mathml{\\@llcorner}{\\mathop{\\char"231e}}');U("\\lrcorner",'\\html@mathml{\\@lrcorner}{\\mathop{\\char"231f}}');U("\\vdots","\\mathord{\\varvdots\\rule{0pt}{15pt}}");U("⋮","\\vdots");U("\\varGamma","\\mathit{\\Gamma}");U("\\varDelta","\\mathit{\\Delta}");U("\\varTheta","\\mathit{\\Theta}");U("\\varLambda","\\mathit{\\Lambda}");U("\\varXi","\\mathit{\\Xi}");U("\\varPi","\\mathit{\\Pi}");U("\\varSigma","\\mathit{\\Sigma}");U("\\varUpsilon","\\mathit{\\Upsilon}");U("\\varPhi","\\mathit{\\Phi}");U("\\varPsi","\\mathit{\\Psi}");U("\\varOmega","\\mathit{\\Omega}");U("\\substack","\\begin{subarray}{c}#1\\end{subarray}");U("\\colon","\\nobreak\\mskip2mu\\mathpunct{}\\mathchoice{\\mkern-3mu}{\\mkern-3mu}{}{}{:}\\mskip6mu\\relax");U("\\boxed","\\fbox{$\\displaystyle{#1}$}");U("\\iff","\\DOTSB\\;\\Longleftrightarrow\\;");U("\\implies","\\DOTSB\\;\\Longrightarrow\\;");U("\\impliedby","\\DOTSB\\;\\Longleftarrow\\;");var kZ={",":"\\dotsc","\\not":"\\dotsb","+":"\\dotsb","=":"\\dotsb","<":"\\dotsb",">":"\\dotsb","-":"\\dotsb","*":"\\dotsb",":":"\\dotsb","\\DOTSB":"\\dotsb","\\coprod":"\\dotsb","\\bigvee":"\\dotsb","\\bigwedge":"\\dotsb","\\biguplus":"\\dotsb","\\bigcap":"\\dotsb","\\bigcup":"\\dotsb","\\prod":"\\dotsb","\\sum":"\\dotsb","\\bigotimes":"\\dotsb","\\bigoplus":"\\dotsb","\\bigodot":"\\dotsb","\\bigsqcup":"\\dotsb","\\And":"\\dotsb","\\longrightarrow":"\\dotsb","\\Longrightarrow":"\\dotsb","\\longleftarrow":"\\dotsb","\\Longleftarrow":"\\dotsb","\\longleftrightarrow":"\\dotsb","\\Longleftrightarrow":"\\dotsb","\\mapsto":"\\dotsb","\\longmapsto":"\\dotsb","\\hookrightarrow":"\\dotsb","\\doteq":"\\dotsb","\\mathbin":"\\dotsb","\\mathrel":"\\dotsb","\\relbar":"\\dotsb","\\Relbar":"\\dotsb","\\xrightarrow":"\\dotsb","\\xleftarrow":"\\dotsb","\\DOTSI":"\\dotsi","\\int":"\\dotsi","\\oint":"\\dotsi","\\iint":"\\dotsi","\\iiint":"\\dotsi","\\iiiint":"\\dotsi","\\idotsint":"\\dotsi","\\DOTSX":"\\dotsx"};U("\\dots",function(e){var t="\\dotso",n=e.expandAfterFuture().text;return n in kZ?t=kZ[n]:(n.slice(0,4)==="\\not"||n in tr.math&&Ht.contains(["bin","rel"],tr.math[n].group))&&(t="\\dotsb"),t});var KR={")":!0,"]":!0,"\\rbrack":!0,"\\}":!0,"\\rbrace":!0,"\\rangle":!0,"\\rceil":!0,"\\rfloor":!0,"\\rgroup":!0,"\\rmoustache":!0,"\\right":!0,"\\bigr":!0,"\\biggr":!0,"\\Bigr":!0,"\\Biggr":!0,$:!0,";":!0,".":!0,",":!0};U("\\dotso",function(e){var t=e.future().text;return t in KR?"\\ldots\\,":"\\ldots"});U("\\dotsc",function(e){var t=e.future().text;return t in KR&&t!==","?"\\ldots\\,":"\\ldots"});U("\\cdots",function(e){var t=e.future().text;return t in KR?"\\@cdots\\,":"\\@cdots"});U("\\dotsb","\\cdots");U("\\dotsm","\\cdots");U("\\dotsi","\\!\\cdots");U("\\dotsx","\\ldots\\,");U("\\DOTSI","\\relax");U("\\DOTSB","\\relax");U("\\DOTSX","\\relax");U("\\tmspace","\\TextOrMath{\\kern#1#3}{\\mskip#1#2}\\relax");U("\\,","\\tmspace+{3mu}{.1667em}");U("\\thinspace","\\,");U("\\>","\\mskip{4mu}");U("\\:","\\tmspace+{4mu}{.2222em}");U("\\medspace","\\:");U("\\;","\\tmspace+{5mu}{.2777em}");U("\\thickspace","\\;");U("\\!","\\tmspace-{3mu}{.1667em}");U("\\negthinspace","\\!");U("\\negmedspace","\\tmspace-{4mu}{.2222em}");U("\\negthickspace","\\tmspace-{5mu}{.277em}");U("\\enspace","\\kern.5em ");U("\\enskip","\\hskip.5em\\relax");U("\\quad","\\hskip1em\\relax");U("\\qquad","\\hskip2em\\relax");U("\\tag","\\@ifstar\\tag@literal\\tag@paren");U("\\tag@paren","\\tag@literal{({#1})}");U("\\tag@literal",e=>{if(e.macros.get("\\df@tag"))throw new $e("Multiple \\tag");return"\\gdef\\df@tag{\\text{#1}}"});U("\\bmod","\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}\\mathbin{\\rm mod}\\mathchoice{\\mskip1mu}{\\mskip1mu}{\\mskip5mu}{\\mskip5mu}");U("\\pod","\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern8mu}{\\mkern8mu}{\\mkern8mu}(#1)");U("\\pmod","\\pod{{\\rm mod}\\mkern6mu#1}");U("\\mod","\\allowbreak\\mathchoice{\\mkern18mu}{\\mkern12mu}{\\mkern12mu}{\\mkern12mu}{\\rm mod}\\,\\,#1");U("\\newline","\\\\\\relax");U("\\TeX","\\textrm{\\html@mathml{T\\kern-.1667em\\raisebox{-.5ex}{E}\\kern-.125emX}{TeX}}");var qz=at(ql["Main-Regular"]["T".charCodeAt(0)][1]-.7*ql["Main-Regular"]["A".charCodeAt(0)][1]);U("\\LaTeX","\\textrm{\\html@mathml{"+("L\\kern-.36em\\raisebox{"+qz+"}{\\scriptstyle A}")+"\\kern-.15em\\TeX}{LaTeX}}");U("\\KaTeX","\\textrm{\\html@mathml{"+("K\\kern-.17em\\raisebox{"+qz+"}{\\scriptstyle A}")+"\\kern-.15em\\TeX}{KaTeX}}");U("\\hspace","\\@ifstar\\@hspacer\\@hspace");U("\\@hspace","\\hskip #1\\relax");U("\\@hspacer","\\rule{0pt}{0pt}\\hskip #1\\relax");U("\\ordinarycolon",":");U("\\vcentcolon","\\mathrel{\\mathop\\ordinarycolon}");U("\\dblcolon",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-.9mu}\\vcentcolon}}{\\mathop{\\char"2237}}');U("\\coloneqq",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2254}}');U("\\Coloneqq",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}=}}{\\mathop{\\char"2237\\char"3d}}');U("\\coloneq",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"3a\\char"2212}}');U("\\Coloneq",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}}{\\mathop{\\char"2237\\char"2212}}');U("\\eqqcolon",'\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2255}}');U("\\Eqqcolon",'\\html@mathml{\\mathrel{=\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"3d\\char"2237}}');U("\\eqcolon",'\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\vcentcolon}}{\\mathop{\\char"2239}}');U("\\Eqcolon",'\\html@mathml{\\mathrel{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\dblcolon}}{\\mathop{\\char"2212\\char"2237}}');U("\\colonapprox",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"3a\\char"2248}}');U("\\Colonapprox",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\approx}}{\\mathop{\\char"2237\\char"2248}}');U("\\colonsim",'\\html@mathml{\\mathrel{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"3a\\char"223c}}');U("\\Colonsim",'\\html@mathml{\\mathrel{\\dblcolon\\mathrel{\\mkern-1.2mu}\\sim}}{\\mathop{\\char"2237\\char"223c}}');U("∷","\\dblcolon");U("∹","\\eqcolon");U("≔","\\coloneqq");U("≕","\\eqqcolon");U("⩴","\\Coloneqq");U("\\ratio","\\vcentcolon");U("\\coloncolon","\\dblcolon");U("\\colonequals","\\coloneqq");U("\\coloncolonequals","\\Coloneqq");U("\\equalscolon","\\eqqcolon");U("\\equalscoloncolon","\\Eqqcolon");U("\\colonminus","\\coloneq");U("\\coloncolonminus","\\Coloneq");U("\\minuscolon","\\eqcolon");U("\\minuscoloncolon","\\Eqcolon");U("\\coloncolonapprox","\\Colonapprox");U("\\coloncolonsim","\\Colonsim");U("\\simcolon","\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\vcentcolon}");U("\\simcoloncolon","\\mathrel{\\sim\\mathrel{\\mkern-1.2mu}\\dblcolon}");U("\\approxcolon","\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\vcentcolon}");U("\\approxcoloncolon","\\mathrel{\\approx\\mathrel{\\mkern-1.2mu}\\dblcolon}");U("\\notni","\\html@mathml{\\not\\ni}{\\mathrel{\\char`∌}}");U("\\limsup","\\DOTSB\\operatorname*{lim\\,sup}");U("\\liminf","\\DOTSB\\operatorname*{lim\\,inf}");U("\\injlim","\\DOTSB\\operatorname*{inj\\,lim}");U("\\projlim","\\DOTSB\\operatorname*{proj\\,lim}");U("\\varlimsup","\\DOTSB\\operatorname*{\\overline{lim}}");U("\\varliminf","\\DOTSB\\operatorname*{\\underline{lim}}");U("\\varinjlim","\\DOTSB\\operatorname*{\\underrightarrow{lim}}");U("\\varprojlim","\\DOTSB\\operatorname*{\\underleftarrow{lim}}");U("\\gvertneqq","\\html@mathml{\\@gvertneqq}{≩}");U("\\lvertneqq","\\html@mathml{\\@lvertneqq}{≨}");U("\\ngeqq","\\html@mathml{\\@ngeqq}{≱}");U("\\ngeqslant","\\html@mathml{\\@ngeqslant}{≱}");U("\\nleqq","\\html@mathml{\\@nleqq}{≰}");U("\\nleqslant","\\html@mathml{\\@nleqslant}{≰}");U("\\nshortmid","\\html@mathml{\\@nshortmid}{∤}");U("\\nshortparallel","\\html@mathml{\\@nshortparallel}{∦}");U("\\nsubseteqq","\\html@mathml{\\@nsubseteqq}{⊈}");U("\\nsupseteqq","\\html@mathml{\\@nsupseteqq}{⊉}");U("\\varsubsetneq","\\html@mathml{\\@varsubsetneq}{⊊}");U("\\varsubsetneqq","\\html@mathml{\\@varsubsetneqq}{⫋}");U("\\varsupsetneq","\\html@mathml{\\@varsupsetneq}{⊋}");U("\\varsupsetneqq","\\html@mathml{\\@varsupsetneqq}{⫌}");U("\\imath","\\html@mathml{\\@imath}{ı}");U("\\jmath","\\html@mathml{\\@jmath}{ȷ}");U("\\llbracket","\\html@mathml{\\mathopen{[\\mkern-3.2mu[}}{\\mathopen{\\char`⟦}}");U("\\rrbracket","\\html@mathml{\\mathclose{]\\mkern-3.2mu]}}{\\mathclose{\\char`⟧}}");U("⟦","\\llbracket");U("⟧","\\rrbracket");U("\\lBrace","\\html@mathml{\\mathopen{\\{\\mkern-3.2mu[}}{\\mathopen{\\char`⦃}}");U("\\rBrace","\\html@mathml{\\mathclose{]\\mkern-3.2mu\\}}}{\\mathclose{\\char`⦄}}");U("⦃","\\lBrace");U("⦄","\\rBrace");U("\\minuso","\\mathbin{\\html@mathml{{\\mathrlap{\\mathchoice{\\kern{0.145em}}{\\kern{0.145em}}{\\kern{0.1015em}}{\\kern{0.0725em}}\\circ}{-}}}{\\char`⦵}}");U("⦵","\\minuso");U("\\darr","\\downarrow");U("\\dArr","\\Downarrow");U("\\Darr","\\Downarrow");U("\\lang","\\langle");U("\\rang","\\rangle");U("\\uarr","\\uparrow");U("\\uArr","\\Uparrow");U("\\Uarr","\\Uparrow");U("\\N","\\mathbb{N}");U("\\R","\\mathbb{R}");U("\\Z","\\mathbb{Z}");U("\\alef","\\aleph");U("\\alefsym","\\aleph");U("\\Alpha","\\mathrm{A}");U("\\Beta","\\mathrm{B}");U("\\bull","\\bullet");U("\\Chi","\\mathrm{X}");U("\\clubs","\\clubsuit");U("\\cnums","\\mathbb{C}");U("\\Complex","\\mathbb{C}");U("\\Dagger","\\ddagger");U("\\diamonds","\\diamondsuit");U("\\empty","\\emptyset");U("\\Epsilon","\\mathrm{E}");U("\\Eta","\\mathrm{H}");U("\\exist","\\exists");U("\\harr","\\leftrightarrow");U("\\hArr","\\Leftrightarrow");U("\\Harr","\\Leftrightarrow");U("\\hearts","\\heartsuit");U("\\image","\\Im");U("\\infin","\\infty");U("\\Iota","\\mathrm{I}");U("\\isin","\\in");U("\\Kappa","\\mathrm{K}");U("\\larr","\\leftarrow");U("\\lArr","\\Leftarrow");U("\\Larr","\\Leftarrow");U("\\lrarr","\\leftrightarrow");U("\\lrArr","\\Leftrightarrow");U("\\Lrarr","\\Leftrightarrow");U("\\Mu","\\mathrm{M}");U("\\natnums","\\mathbb{N}");U("\\Nu","\\mathrm{N}");U("\\Omicron","\\mathrm{O}");U("\\plusmn","\\pm");U("\\rarr","\\rightarrow");U("\\rArr","\\Rightarrow");U("\\Rarr","\\Rightarrow");U("\\real","\\Re");U("\\reals","\\mathbb{R}");U("\\Reals","\\mathbb{R}");U("\\Rho","\\mathrm{P}");U("\\sdot","\\cdot");U("\\sect","\\S");U("\\spades","\\spadesuit");U("\\sub","\\subset");U("\\sube","\\subseteq");U("\\supe","\\supseteq");U("\\Tau","\\mathrm{T}");U("\\thetasym","\\vartheta");U("\\weierp","\\wp");U("\\Zeta","\\mathrm{Z}");U("\\argmin","\\DOTSB\\operatorname*{arg\\,min}");U("\\argmax","\\DOTSB\\operatorname*{arg\\,max}");U("\\plim","\\DOTSB\\mathop{\\operatorname{plim}}\\limits");U("\\bra","\\mathinner{\\langle{#1}|}");U("\\ket","\\mathinner{|{#1}\\rangle}");U("\\braket","\\mathinner{\\langle{#1}\\rangle}");U("\\Bra","\\left\\langle#1\\right|");U("\\Ket","\\left|#1\\right\\rangle");var eP=e=>t=>{var n=t.consumeArg().tokens,r=t.consumeArg().tokens,i=t.consumeArg().tokens,a=t.consumeArg().tokens,o=t.macros.get("|"),l=t.macros.get("\\|");t.macros.beginGroup();var s=d=>g=>{e&&(g.macros.set("|",o),i.length&&g.macros.set("\\|",l));var h=d;if(!d&&i.length){var m=g.future();m.text==="|"&&(g.popToken(),h=!0)}return{tokens:h?i:r,numArgs:0}};t.macros.set("|",s(!1)),i.length&&t.macros.set("\\|",s(!0));var u=t.consumeArg().tokens,c=t.expandTokens([...a,...u,...n]);return t.macros.endGroup(),{tokens:c.reverse(),numArgs:0}};U("\\bra@ket",eP(!1));U("\\bra@set",eP(!0));U("\\Braket","\\bra@ket{\\left\\langle}{\\,\\middle\\vert\\,}{\\,\\middle\\vert\\,}{\\right\\rangle}");U("\\Set","\\bra@set{\\left\\{\\:}{\\;\\middle\\vert\\;}{\\;\\middle\\Vert\\;}{\\:\\right\\}}");U("\\set","\\bra@set{\\{\\,}{\\mid}{}{\\,\\}}");U("\\angln","{\\angl n}");U("\\blue","\\textcolor{##6495ed}{#1}");U("\\orange","\\textcolor{##ffa500}{#1}");U("\\pink","\\textcolor{##ff00af}{#1}");U("\\red","\\textcolor{##df0030}{#1}");U("\\green","\\textcolor{##28ae7b}{#1}");U("\\gray","\\textcolor{gray}{#1}");U("\\purple","\\textcolor{##9d38bd}{#1}");U("\\blueA","\\textcolor{##ccfaff}{#1}");U("\\blueB","\\textcolor{##80f6ff}{#1}");U("\\blueC","\\textcolor{##63d9ea}{#1}");U("\\blueD","\\textcolor{##11accd}{#1}");U("\\blueE","\\textcolor{##0c7f99}{#1}");U("\\tealA","\\textcolor{##94fff5}{#1}");U("\\tealB","\\textcolor{##26edd5}{#1}");U("\\tealC","\\textcolor{##01d1c1}{#1}");U("\\tealD","\\textcolor{##01a995}{#1}");U("\\tealE","\\textcolor{##208170}{#1}");U("\\greenA","\\textcolor{##b6ffb0}{#1}");U("\\greenB","\\textcolor{##8af281}{#1}");U("\\greenC","\\textcolor{##74cf70}{#1}");U("\\greenD","\\textcolor{##1fab54}{#1}");U("\\greenE","\\textcolor{##0d923f}{#1}");U("\\goldA","\\textcolor{##ffd0a9}{#1}");U("\\goldB","\\textcolor{##ffbb71}{#1}");U("\\goldC","\\textcolor{##ff9c39}{#1}");U("\\goldD","\\textcolor{##e07d10}{#1}");U("\\goldE","\\textcolor{##a75a05}{#1}");U("\\redA","\\textcolor{##fca9a9}{#1}");U("\\redB","\\textcolor{##ff8482}{#1}");U("\\redC","\\textcolor{##f9685d}{#1}");U("\\redD","\\textcolor{##e84d39}{#1}");U("\\redE","\\textcolor{##bc2612}{#1}");U("\\maroonA","\\textcolor{##ffbde0}{#1}");U("\\maroonB","\\textcolor{##ff92c6}{#1}");U("\\maroonC","\\textcolor{##ed5fa6}{#1}");U("\\maroonD","\\textcolor{##ca337c}{#1}");U("\\maroonE","\\textcolor{##9e034e}{#1}");U("\\purpleA","\\textcolor{##ddd7ff}{#1}");U("\\purpleB","\\textcolor{##c6b9fc}{#1}");U("\\purpleC","\\textcolor{##aa87ff}{#1}");U("\\purpleD","\\textcolor{##7854ab}{#1}");U("\\purpleE","\\textcolor{##543b78}{#1}");U("\\mintA","\\textcolor{##f5f9e8}{#1}");U("\\mintB","\\textcolor{##edf2df}{#1}");U("\\mintC","\\textcolor{##e0e5cc}{#1}");U("\\grayA","\\textcolor{##f6f7f7}{#1}");U("\\grayB","\\textcolor{##f0f1f2}{#1}");U("\\grayC","\\textcolor{##e3e5e6}{#1}");U("\\grayD","\\textcolor{##d6d8da}{#1}");U("\\grayE","\\textcolor{##babec2}{#1}");U("\\grayF","\\textcolor{##888d93}{#1}");U("\\grayG","\\textcolor{##626569}{#1}");U("\\grayH","\\textcolor{##3b3e40}{#1}");U("\\grayI","\\textcolor{##21242c}{#1}");U("\\kaBlue","\\textcolor{##314453}{#1}");U("\\kaGreen","\\textcolor{##71B307}{#1}");var tP={"^":!0,_:!0,"\\limits":!0,"\\nolimits":!0};class Vxe{constructor(t,n,r){this.settings=void 0,this.expansionCount=void 0,this.lexer=void 0,this.macros=void 0,this.stack=void 0,this.mode=void 0,this.settings=n,this.expansionCount=0,this.feed(t),this.macros=new Mxe(Txe,n.macros),this.mode=r,this.stack=[]}feed(t){this.lexer=new xZ(t,this.settings)}switchMode(t){this.mode=t}beginGroup(){this.macros.beginGroup()}endGroup(){this.macros.endGroup()}endGroups(){this.macros.endGroups()}future(){return this.stack.length===0&&this.pushToken(this.lexer.lex()),this.stack[this.stack.length-1]}popToken(){return this.future(),this.stack.pop()}pushToken(t){this.stack.push(t)}pushTokens(t){this.stack.push(...t)}scanArgument(t){var n,r,i;if(t){if(this.consumeSpaces(),this.future().text!=="[")return null;n=this.popToken(),{tokens:i,end:r}=this.consumeArg(["]"])}else({tokens:i,start:n,end:r}=this.consumeArg());return this.pushToken(new Ho("EOF",r.loc)),this.pushTokens(i),n.range(r,"")}consumeSpaces(){for(;;){var t=this.future();if(t.text===" ")this.stack.pop();else break}}consumeArg(t){var n=[],r=t&&t.length>0;r||this.consumeSpaces();var i=this.future(),a,o=0,l=0;do{if(a=this.popToken(),n.push(a),a.text==="{")++o;else if(a.text==="}"){if(--o,o===-1)throw new $e("Extra }",a)}else if(a.text==="EOF")throw new $e("Unexpected end of input in a macro argument, expected '"+(t&&r?t[l]:"}")+"'",a);if(t&&r)if((o===0||o===1&&t[l]==="{")&&a.text===t[l]){if(++l,l===t.length){n.splice(-l,l);break}}else l=0}while(o!==0||r);return i.text==="{"&&n[n.length-1].text==="}"&&(n.pop(),n.shift()),n.reverse(),{tokens:n,start:i,end:a}}consumeArgs(t,n){if(n){if(n.length!==t+1)throw new $e("The length of delimiters doesn't match the number of args!");for(var r=n[0],i=0;ithis.settings.maxExpand)throw new $e("Too many expansions: infinite loop or need to increase maxExpand setting")}expandOnce(t){var n=this.popToken(),r=n.text,i=n.noexpand?null:this._getExpansion(r);if(i==null||t&&i.unexpandable){if(t&&i==null&&r[0]==="\\"&&!this.isDefined(r))throw new $e("Undefined control sequence: "+r);return this.pushToken(n),!1}this.countExpansion(1);var a=i.tokens,o=this.consumeArgs(i.numArgs,i.delimiters);if(i.numArgs){a=a.slice();for(var l=a.length-1;l>=0;--l){var s=a[l];if(s.text==="#"){if(l===0)throw new $e("Incomplete placeholder at end of macro body",s);if(s=a[--l],s.text==="#")a.splice(l+1,1);else if(/^[1-9]$/.test(s.text))a.splice(l,2,...o[+s.text-1]);else throw new $e("Not a valid argument number",s)}}}return this.pushTokens(a),a.length}expandAfterFuture(){return this.expandOnce(),this.future()}expandNextToken(){for(;;)if(this.expandOnce()===!1){var t=this.stack.pop();return t.treatAsRelax&&(t.text="\\relax"),t}throw new Error}expandMacro(t){return this.macros.has(t)?this.expandTokens([new Ho(t)]):void 0}expandTokens(t){var n=[],r=this.stack.length;for(this.pushTokens(t);this.stack.length>r;)if(this.expandOnce(!0)===!1){var i=this.stack.pop();i.treatAsRelax&&(i.noexpand=!1,i.treatAsRelax=!1),n.push(i)}return this.countExpansion(n.length),n}expandMacroAsText(t){var n=this.expandMacro(t);return n&&n.map(r=>r.text).join("")}_getExpansion(t){var n=this.macros.get(t);if(n==null)return n;if(t.length===1){var r=this.lexer.catcodes[t];if(r!=null&&r!==13)return}var i=typeof n=="function"?n(this):n;if(typeof i=="string"){var a=0;if(i.indexOf("#")!==-1)for(var o=i.replace(/##/g,"");o.indexOf("#"+(a+1))!==-1;)++a;for(var l=new xZ(i,this.settings),s=[],u=l.lex();u.text!=="EOF";)s.push(u),u=l.lex();s.reverse();var c={tokens:s,numArgs:a};return c}return i}isDefined(t){return this.macros.has(t)||qu.hasOwnProperty(t)||tr.math.hasOwnProperty(t)||tr.text.hasOwnProperty(t)||tP.hasOwnProperty(t)}isExpandable(t){var n=this.macros.get(t);return n!=null?typeof n=="string"||typeof n=="function"||!n.unexpandable:qu.hasOwnProperty(t)&&!qu[t].primitive}}var DZ=/^[₊₋₌₍₎₀₁₂₃₄₅₆₇₈₉ₐₑₕᵢⱼₖₗₘₙₒₚᵣₛₜᵤᵥₓᵦᵧᵨᵩᵪ]/,y2=Object.freeze({"₊":"+","₋":"-","₌":"=","₍":"(","₎":")","₀":"0","₁":"1","₂":"2","₃":"3","₄":"4","₅":"5","₆":"6","₇":"7","₈":"8","₉":"9","ₐ":"a","ₑ":"e","ₕ":"h","ᵢ":"i","ⱼ":"j","ₖ":"k","ₗ":"l","ₘ":"m","ₙ":"n","ₒ":"o","ₚ":"p","ᵣ":"r","ₛ":"s","ₜ":"t","ᵤ":"u","ᵥ":"v","ₓ":"x","ᵦ":"β","ᵧ":"γ","ᵨ":"ρ","ᵩ":"ϕ","ᵪ":"χ","⁺":"+","⁻":"-","⁼":"=","⁽":"(","⁾":")","⁰":"0","¹":"1","²":"2","³":"3","⁴":"4","⁵":"5","⁶":"6","⁷":"7","⁸":"8","⁹":"9","ᴬ":"A","ᴮ":"B","ᴰ":"D","ᴱ":"E","ᴳ":"G","ᴴ":"H","ᴵ":"I","ᴶ":"J","ᴷ":"K","ᴸ":"L","ᴹ":"M","ᴺ":"N","ᴼ":"O","ᴾ":"P","ᴿ":"R","ᵀ":"T","ᵁ":"U","ⱽ":"V","ᵂ":"W","ᵃ":"a","ᵇ":"b","ᶜ":"c","ᵈ":"d","ᵉ":"e","ᶠ":"f","ᵍ":"g",ʰ:"h","ⁱ":"i",ʲ:"j","ᵏ":"k",ˡ:"l","ᵐ":"m",ⁿ:"n","ᵒ":"o","ᵖ":"p",ʳ:"r",ˢ:"s","ᵗ":"t","ᵘ":"u","ᵛ":"v",ʷ:"w",ˣ:"x",ʸ:"y","ᶻ":"z","ᵝ":"β","ᵞ":"γ","ᵟ":"δ","ᵠ":"ϕ","ᵡ":"χ","ᶿ":"θ"}),aQ={"́":{text:"\\'",math:"\\acute"},"̀":{text:"\\`",math:"\\grave"},"̈":{text:'\\"',math:"\\ddot"},"̃":{text:"\\~",math:"\\tilde"},"̄":{text:"\\=",math:"\\bar"},"̆":{text:"\\u",math:"\\breve"},"̌":{text:"\\v",math:"\\check"},"̂":{text:"\\^",math:"\\hat"},"̇":{text:"\\.",math:"\\dot"},"̊":{text:"\\r",math:"\\mathring"},"̋":{text:"\\H"},"̧":{text:"\\c"}},NZ={á:"á",à:"à",ä:"ä",ǟ:"ǟ",ã:"ã",ā:"ā",ă:"ă",ắ:"ắ",ằ:"ằ",ẵ:"ẵ",ǎ:"ǎ",â:"â",ấ:"ấ",ầ:"ầ",ẫ:"ẫ",ȧ:"ȧ",ǡ:"ǡ",å:"å",ǻ:"ǻ",ḃ:"ḃ",ć:"ć",ḉ:"ḉ",č:"č",ĉ:"ĉ",ċ:"ċ",ç:"ç",ď:"ď",ḋ:"ḋ",ḑ:"ḑ",é:"é",è:"è",ë:"ë",ẽ:"ẽ",ē:"ē",ḗ:"ḗ",ḕ:"ḕ",ĕ:"ĕ",ḝ:"ḝ",ě:"ě",ê:"ê",ế:"ế",ề:"ề",ễ:"ễ",ė:"ė",ȩ:"ȩ",ḟ:"ḟ",ǵ:"ǵ",ḡ:"ḡ",ğ:"ğ",ǧ:"ǧ",ĝ:"ĝ",ġ:"ġ",ģ:"ģ",ḧ:"ḧ",ȟ:"ȟ",ĥ:"ĥ",ḣ:"ḣ",ḩ:"ḩ",í:"í",ì:"ì",ï:"ï",ḯ:"ḯ",ĩ:"ĩ",ī:"ī",ĭ:"ĭ",ǐ:"ǐ",î:"î",ǰ:"ǰ",ĵ:"ĵ",ḱ:"ḱ",ǩ:"ǩ",ķ:"ķ",ĺ:"ĺ",ľ:"ľ",ļ:"ļ",ḿ:"ḿ",ṁ:"ṁ",ń:"ń",ǹ:"ǹ",ñ:"ñ",ň:"ň",ṅ:"ṅ",ņ:"ņ",ó:"ó",ò:"ò",ö:"ö",ȫ:"ȫ",õ:"õ",ṍ:"ṍ",ṏ:"ṏ",ȭ:"ȭ",ō:"ō",ṓ:"ṓ",ṑ:"ṑ",ŏ:"ŏ",ǒ:"ǒ",ô:"ô",ố:"ố",ồ:"ồ",ỗ:"ỗ",ȯ:"ȯ",ȱ:"ȱ",ő:"ő",ṕ:"ṕ",ṗ:"ṗ",ŕ:"ŕ",ř:"ř",ṙ:"ṙ",ŗ:"ŗ",ś:"ś",ṥ:"ṥ",š:"š",ṧ:"ṧ",ŝ:"ŝ",ṡ:"ṡ",ş:"ş",ẗ:"ẗ",ť:"ť",ṫ:"ṫ",ţ:"ţ",ú:"ú",ù:"ù",ü:"ü",ǘ:"ǘ",ǜ:"ǜ",ǖ:"ǖ",ǚ:"ǚ",ũ:"ũ",ṹ:"ṹ",ū:"ū",ṻ:"ṻ",ŭ:"ŭ",ǔ:"ǔ",û:"û",ů:"ů",ű:"ű",ṽ:"ṽ",ẃ:"ẃ",ẁ:"ẁ",ẅ:"ẅ",ŵ:"ŵ",ẇ:"ẇ",ẘ:"ẘ",ẍ:"ẍ",ẋ:"ẋ",ý:"ý",ỳ:"ỳ",ÿ:"ÿ",ỹ:"ỹ",ȳ:"ȳ",ŷ:"ŷ",ẏ:"ẏ",ẙ:"ẙ",ź:"ź",ž:"ž",ẑ:"ẑ",ż:"ż",Á:"Á",À:"À",Ä:"Ä",Ǟ:"Ǟ",Ã:"Ã",Ā:"Ā",Ă:"Ă",Ắ:"Ắ",Ằ:"Ằ",Ẵ:"Ẵ",Ǎ:"Ǎ",Â:"Â",Ấ:"Ấ",Ầ:"Ầ",Ẫ:"Ẫ",Ȧ:"Ȧ",Ǡ:"Ǡ",Å:"Å",Ǻ:"Ǻ",Ḃ:"Ḃ",Ć:"Ć",Ḉ:"Ḉ",Č:"Č",Ĉ:"Ĉ",Ċ:"Ċ",Ç:"Ç",Ď:"Ď",Ḋ:"Ḋ",Ḑ:"Ḑ",É:"É",È:"È",Ë:"Ë",Ẽ:"Ẽ",Ē:"Ē",Ḗ:"Ḗ",Ḕ:"Ḕ",Ĕ:"Ĕ",Ḝ:"Ḝ",Ě:"Ě",Ê:"Ê",Ế:"Ế",Ề:"Ề",Ễ:"Ễ",Ė:"Ė",Ȩ:"Ȩ",Ḟ:"Ḟ",Ǵ:"Ǵ",Ḡ:"Ḡ",Ğ:"Ğ",Ǧ:"Ǧ",Ĝ:"Ĝ",Ġ:"Ġ",Ģ:"Ģ",Ḧ:"Ḧ",Ȟ:"Ȟ",Ĥ:"Ĥ",Ḣ:"Ḣ",Ḩ:"Ḩ",Í:"Í",Ì:"Ì",Ï:"Ï",Ḯ:"Ḯ",Ĩ:"Ĩ",Ī:"Ī",Ĭ:"Ĭ",Ǐ:"Ǐ",Î:"Î",İ:"İ",Ĵ:"Ĵ",Ḱ:"Ḱ",Ǩ:"Ǩ",Ķ:"Ķ",Ĺ:"Ĺ",Ľ:"Ľ",Ļ:"Ļ",Ḿ:"Ḿ",Ṁ:"Ṁ",Ń:"Ń",Ǹ:"Ǹ",Ñ:"Ñ",Ň:"Ň",Ṅ:"Ṅ",Ņ:"Ņ",Ó:"Ó",Ò:"Ò",Ö:"Ö",Ȫ:"Ȫ",Õ:"Õ",Ṍ:"Ṍ",Ṏ:"Ṏ",Ȭ:"Ȭ",Ō:"Ō",Ṓ:"Ṓ",Ṑ:"Ṑ",Ŏ:"Ŏ",Ǒ:"Ǒ",Ô:"Ô",Ố:"Ố",Ồ:"Ồ",Ỗ:"Ỗ",Ȯ:"Ȯ",Ȱ:"Ȱ",Ő:"Ő",Ṕ:"Ṕ",Ṗ:"Ṗ",Ŕ:"Ŕ",Ř:"Ř",Ṙ:"Ṙ",Ŗ:"Ŗ",Ś:"Ś",Ṥ:"Ṥ",Š:"Š",Ṧ:"Ṧ",Ŝ:"Ŝ",Ṡ:"Ṡ",Ş:"Ş",Ť:"Ť",Ṫ:"Ṫ",Ţ:"Ţ",Ú:"Ú",Ù:"Ù",Ü:"Ü",Ǘ:"Ǘ",Ǜ:"Ǜ",Ǖ:"Ǖ",Ǚ:"Ǚ",Ũ:"Ũ",Ṹ:"Ṹ",Ū:"Ū",Ṻ:"Ṻ",Ŭ:"Ŭ",Ǔ:"Ǔ",Û:"Û",Ů:"Ů",Ű:"Ű",Ṽ:"Ṽ",Ẃ:"Ẃ",Ẁ:"Ẁ",Ẅ:"Ẅ",Ŵ:"Ŵ",Ẇ:"Ẇ",Ẍ:"Ẍ",Ẋ:"Ẋ",Ý:"Ý",Ỳ:"Ỳ",Ÿ:"Ÿ",Ỹ:"Ỹ",Ȳ:"Ȳ",Ŷ:"Ŷ",Ẏ:"Ẏ",Ź:"Ź",Ž:"Ž",Ẑ:"Ẑ",Ż:"Ż",ά:"ά",ὰ:"ὰ",ᾱ:"ᾱ",ᾰ:"ᾰ",έ:"έ",ὲ:"ὲ",ή:"ή",ὴ:"ὴ",ί:"ί",ὶ:"ὶ",ϊ:"ϊ",ΐ:"ΐ",ῒ:"ῒ",ῑ:"ῑ",ῐ:"ῐ",ό:"ό",ὸ:"ὸ",ύ:"ύ",ὺ:"ὺ",ϋ:"ϋ",ΰ:"ΰ",ῢ:"ῢ",ῡ:"ῡ",ῠ:"ῠ",ώ:"ώ",ὼ:"ὼ",Ύ:"Ύ",Ὺ:"Ὺ",Ϋ:"Ϋ",Ῡ:"Ῡ",Ῠ:"Ῠ",Ώ:"Ώ",Ὼ:"Ὼ"};class V3{constructor(t,n){this.mode=void 0,this.gullet=void 0,this.settings=void 0,this.leftrightDepth=void 0,this.nextToken=void 0,this.mode="math",this.gullet=new Vxe(t,n,this.mode),this.settings=n,this.leftrightDepth=0}expect(t,n){if(n===void 0&&(n=!0),this.fetch().text!==t)throw new $e("Expected '"+t+"', got '"+this.fetch().text+"'",this.fetch());n&&this.consume()}consume(){this.nextToken=null}fetch(){return this.nextToken==null&&(this.nextToken=this.gullet.expandNextToken()),this.nextToken}switchMode(t){this.mode=t,this.gullet.switchMode(t)}parse(){this.settings.globalGroup||this.gullet.beginGroup(),this.settings.colorIsTextColor&&this.gullet.macros.set("\\color","\\textcolor");try{var t=this.parseExpression(!1);return this.expect("EOF"),this.settings.globalGroup||this.gullet.endGroup(),t}finally{this.gullet.endGroups()}}subparse(t){var n=this.nextToken;this.consume(),this.gullet.pushToken(new Ho("}")),this.gullet.pushTokens(t);var r=this.parseExpression(!1);return this.expect("}"),this.nextToken=n,r}parseExpression(t,n){for(var r=[];;){this.mode==="math"&&this.consumeSpaces();var i=this.fetch();if(V3.endOfExpression.indexOf(i.text)!==-1||n&&i.text===n||t&&qu[i.text]&&qu[i.text].infix)break;var a=this.parseAtom(n);if(a){if(a.type==="internal")continue}else break;r.push(a)}return this.mode==="text"&&this.formLigatures(r),this.handleInfixNodes(r)}handleInfixNodes(t){for(var n=-1,r,i=0;i=0&&this.settings.reportNonstrict("unicodeTextInMathMode",'Latin-1/Unicode text character "'+n[0]+'" used in math mode',t);var l=tr[this.mode][n].group,s=Ia.range(t),u;if(S7e.hasOwnProperty(l)){var c=l;u={type:"atom",mode:this.mode,family:c,loc:s,text:n}}else u={type:l,mode:this.mode,loc:s,text:n};o=u}else if(n.charCodeAt(0)>=128)this.settings.strict&&(cz(n.charCodeAt(0))?this.mode==="math"&&this.settings.reportNonstrict("unicodeTextInMathMode",'Unicode text character "'+n[0]+'" used in math mode',t):this.settings.reportNonstrict("unknownSymbol",'Unrecognized Unicode character "'+n[0]+'"'+(" ("+n.charCodeAt(0)+")"),t)),o={type:"textord",mode:"text",loc:Ia.range(t),text:n};else return null;if(this.consume(),a)for(var d=0;do&&(o=a):a=1,i=r+t.length,r=n.indexOf(t,i);return o}function jxe(){return{enter:{mathFlow:e,mathFlowFenceMeta:t,mathText:a},exit:{mathFlow:i,mathFlowFence:r,mathFlowFenceMeta:n,mathFlowValue:l,mathText:o,mathTextData:l}};function e(s){const u={type:"element",tagName:"code",properties:{className:["language-math","math-display"]},children:[]};this.enter({type:"math",meta:null,value:"",data:{hName:"pre",hChildren:[u]}},s)}function t(){this.buffer()}function n(){const s=this.resume(),u=this.stack[this.stack.length-1];u.type,u.meta=s}function r(){this.data.mathFlowInside||(this.buffer(),this.data.mathFlowInside=!0)}function i(s){const u=this.resume().replace(/^(\r?\n|\r)|(\r?\n|\r)$/g,""),c=this.stack[this.stack.length-1];c.type,this.exit(s),c.value=u;const d=c.data.hChildren[0];d.type,d.tagName,d.children.push({type:"text",value:u}),this.data.mathFlowInside=void 0}function a(s){this.enter({type:"inlineMath",value:"",data:{hName:"code",hProperties:{className:["language-math","math-inline"]},hChildren:[]}},s),this.buffer()}function o(s){const u=this.resume(),c=this.stack[this.stack.length-1];c.type,this.exit(s),c.value=u,c.data.hChildren.push({type:"text",value:u})}function l(s){this.config.enter.data.call(this,s),this.config.exit.data.call(this,s)}}function _xe(e){let t=(e||{}).singleDollarTextMath;return t==null&&(t=!0),r.peek=i,{unsafe:[{character:"\r",inConstruct:"mathFlowMeta"},{character:` +`,inConstruct:"mathFlowMeta"},{character:"$",after:t?void 0:"\\$",inConstruct:"phrasing"},{character:"$",inConstruct:"mathFlowMeta"},{atBreak:!0,character:"$",after:"\\$"}],handlers:{math:n,inlineMath:r}};function n(a,o,l,s){const u=a.value||"",c=l.createTracker(s),d="$".repeat(Math.max(Pxe(u,"$")+1,2)),g=l.enter("mathFlow");let h=c.move(d);if(a.meta){const m=l.enter("mathFlowMeta");h+=c.move(l.safe(a.meta,{after:` +`,before:h,encode:["$"],...c.current()})),m()}return h+=c.move(` +`),u&&(h+=c.move(u+` +`)),h+=c.move(d),g(),h}function r(a,o,l){let s=a.value||"",u=1;for(t||u++;new RegExp("(^|[^$])"+"\\$".repeat(u)+"([^$]|$)").test(s);)u++;const c="$".repeat(u);/[^ \r\n]/.test(s)&&(/^[ \r\n]/.test(s)&&/[ \r\n]$/.test(s)||/^\$|\$$/.test(s))&&(s=" "+s+" ");let d=-1;for(;++de.link?"#ff4343":"#f78383"}; + word-wrap: break-word; + border-radius: ${jt}; + background-color: ${yn}; + + ${e=>e.link&&"cursor: pointer;"} + &:hover { + ${e=>e.link&&"text-decoration: underline;"} + } +`;function sGe(e){const t=E.useContext(Zn),n=en(ZBe),[r,i]=E.useState(!1),[a,o]=E.useState(!1),[l,s]=E.useState(void 0);E.useEffect(()=>{var g;if(r)return;i(!0);let c;if(typeof e.children=="string"?c=e.children:Array.isArray(e.children)&&e.children.length>0&&typeof e.children[0]=="string"&&(c=e.children[0]),!c)return;const d=n.find(h=>["file","codebase","folder"].includes(h.id.providerTitle)&&h.description.split(" (")[0].endsWith(c));if(d)if(o(!0),d.description.includes(" (")){d.description.split(" (")[1].split(")")[0].split("-");const h=d.description.split(" (")[0];s({filepath:h,range:{start:{line:0,character:0},end:{line:0,character:0}}});return}else{s({filepath:d.description.split(" (")[0],range:{start:{line:0,character:0},end:{line:0,character:0}}});return}if(c.length>8){const h=n.find(m=>["file","codebase","folder"].includes(m.id.providerTitle)&&m.content.includes(c));if(h){const m=h.content.split(` +`).slice(1).findIndex(C=>C.includes(c)),[A,B]=h.description.split(" (");if(o(!0),B){const[C,b]=((g=B.split(")")[0])==null?void 0:g.split("-"))||["0","0"],Q=parseInt(C);s({filepath:A,range:{start:{line:Q+m,character:0},end:{line:Q+m+1,character:0}}})}else s({filepath:A,range:{start:{line:0,character:0},end:{line:0,character:0}}})}}},[r,n]);const u=()=>{a&&l&&t.post("showLines",{filepath:l.filepath,startLine:l.range.start.line,endLine:l.range.end.line})};return W.jsxs(W.Fragment,{children:[a,W.jsx(lGe,{...e,onClick:u,link:a})]})}function iP(){return en(e=>{var t,n;return((n=(t=e==null?void 0:e.state)==null?void 0:t.config)==null?void 0:n.ui)??null})}function VB(e){const[t,n]=E.useState(!1),r=E.useContext(Zn);return W.jsx(W.Fragment,{children:W.jsx(Vr,{text:t?"Copied!":"Copy",onClick:i=>{const a=typeof e.text=="string"?e.text:e.text();to()?r.request("copyText",{text:a}):navigator.clipboard.writeText(a),n(!0),setTimeout(()=>n(!1),2e3)},children:t?W.jsx(Z1,{className:"w-4 h-4 text-green-500"}):W.jsx(v0e,{className:"w-4 h-4",color:e.color})})})}const uGe=Ve.div` position: sticky; top: 0; left: 100%; @@ -1200,39 +1050,40 @@ l0,-`+(c+144)+`c-2,-159.3,-10,-310.7,-24,-454c-53.3,-528,-210,-949.7, width: 0; overflow: visible; z-index: 100; -`,H4I=LI.div` +`,cGe=Ve.div` position: absolute; - ${I=>I.bottom?"bottom: 3px;":"top: -11px;"} + ${e=>e.bottom?"bottom: 3px;":"top: -11px;"} right: 10px; display: flex; padding: 1px 2px; gap: 4px; border: 0.5px solid #8888; - border-radius: ${Pl}; - background-color: ${mZ}; -`,HU=["bash","sh"];function QU(I){E.useState(!1);const[l,c]=E.useState(!1);return v.jsx(X4I,{children:v.jsxs(H4I,{bottom:I.bottom||!1,children:[$W()||v.jsxs(v.Fragment,{children:[v.jsx(le,{text:HU.includes(I.language)?"Run in terminal":l?"Applying...":"Apply to current file",disabled:l,style:{backgroundColor:mZ},onClick:()=>{if(HU.includes(I.language)){let G=I.text;G.startsWith("$ ")&&(G=G.slice(2)),new QW().runCommand(G)}l||(Yc("applyToCurrentFile",{text:I.text}),c(!0),setTimeout(()=>c(!1),2e3))},children:l?v.jsx(mg,{className:"w-4 h-4 text-green-500"}):v.jsx(sg,{className:"w-4 h-4"})}),v.jsx(le,{text:"Insert at cursor",style:{backgroundColor:mZ},onClick:()=>{Yc("insertAtCursor",{text:I.text})},children:v.jsx(YZI,{className:"w-4 h-4"})})]}),v.jsx(Ri,{text:I.text})]})})}function cO(I){var l;return typeof I=="string"?I:I!=null&&I.props?cO((l=I.props)==null?void 0:l.children):Array.isArray(I)?GO(I):""}function GO(I){return I.map(l=>cO(l)).join("")}function Q4I(I){const l=Y4I(),c=(l==null?void 0:l.codeBlockToolbarPosition)=="bottom",[G,e]=E.useState(!1),[d,t]=E.useState("");return E.useEffect(()=>{const n=TD.debounce(()=>{t(GO(I.children.props.children))},100);return n(),()=>{n.cancel()}},[I.children]),v.jsxs("div",{style:{padding:"0px"},className:"relative",onMouseEnter:()=>e(!0),onMouseLeave:()=>e(!1),children:[!c&&G&&v.jsx(QU,{text:d,bottom:c,language:I.language}),I.children,c&&G&&v.jsx(QU,{text:d,bottom:c,language:I.language})]})}const w4I=LI.pre` + border-radius: ${jt}; + background-color: ${q0}; +`,dGe=["bash","sh"],pGe=["npm","pnpm","yarn","bun","deno","npx","cd","ls","pwd","pip","python","node","git","curl","wget","rbenv","gem","ruby","bundle"];function XZ(e,t){return dGe.includes(e)||(!e||(e==null?void 0:e.length)===0)&&(t.trim().split(` +`).length===1||pGe.some(n=>t.trim().startsWith(n)))}function LZ(e){const t=E.useContext(Zn);E.useState(!1);const[n,r]=E.useState(!1);return W.jsx(uGe,{children:W.jsxs(cGe,{bottom:e.bottom||!1,children:[to()||W.jsx(Vr,{text:XZ(e.language,e.text)?"Run in terminal":n?"Applying...":"Apply to current file",disabled:n,style:{backgroundColor:q0},onClick:()=>{if(XZ(e.language,e.text)){let i=e.text;i.startsWith("$ ")&&(i=i.slice(2)),t.ide.runCommand(i);return}n||(t.post("applyToCurrentFile",{text:e.text}),r(!0),setTimeout(()=>r(!1),2e3))},children:n?W.jsx(Z1,{className:"w-4 h-4 text-green-500"}):W.jsx(wE,{className:"w-4 h-4"})}),W.jsx(Vr,{text:"Insert at cursor",style:{backgroundColor:q0},onClick:()=>{t.post("insertAtCursor",{text:e.text})},children:W.jsx(Xce,{className:"w-4 h-4"})}),W.jsx(VB,{text:e.text})]})})}function aP(e){var t;return typeof e=="string"?e:e!=null&&e.props?aP((t=e.props)==null?void 0:t.children):Array.isArray(e)?oP(e):""}function oP(e){return e.map(t=>aP(t)).join("")}function gGe(e){const t=iP(),n=(t==null?void 0:t.codeBlockToolbarPosition)=="bottom",[r,i]=E.useState(!1),[a,o]=E.useState("");return E.useEffect(()=>{const l=gY.debounce(()=>{o(oP(e.children.props.children))},100);return l(),()=>{l.cancel()}},[e.children]),W.jsxs("div",{style:{padding:"0px"},className:"relative",onMouseEnter:()=>i(!0),onMouseLeave:()=>i(!1),children:[!n&&r&&W.jsx(LZ,{text:a,bottom:n,language:e.language}),e.children,n&&r&&W.jsx(LZ,{text:a,bottom:n,language:e.language})]})}const hGe=Ve.pre` & .hljs { - color: ${ec}; + color: ${rn}; } - ${I=>Object.keys(I.theme).map((l,c)=>` - & ${l} { - color: ${I.theme[l]}; + ${e=>Object.keys(e.theme).map((t,n)=>` + & ${t} { + color: ${e.theme[t]}; } `).join("")} -`,wU=I=>{const l=E.useContext(U_);return v.jsx(w4I,{...I,theme:l})};const E4I=LI.div` +`,MZ=e=>{const t=E.useContext(JU);return W.jsx(hGe,{...e,theme:t})};const fGe=Ve.div` pre { - background-color: ${mZ}; - border-radius: ${Pl}; + background-color: ${q0}; + border-radius: ${jt}; max-width: calc(100vw - 24px); overflow-x: scroll; overflow-y: hidden; - ${I=>{if(I.showBorder)return` + ${e=>{if(e.showBorder)return` border: 0.5px solid #8888; `}} - padding: ${I=>I.showBorder?"12px":"0px 2px"}; + padding: ${e=>e.showBorder?"12px":"0px 2px"}; } code { @@ -1240,282 +1091,123 @@ l0,-`+(c+144)+`c-2,-159.3,-10,-310.7,-24,-454c-53.3,-528,-210,-949.7, display: none; } word-wrap: break-word; - border-radius: ${Pl}; - background-color: ${mZ}; - font-size: 12px; - font-family: var(--vscode-editor-font-family); - } - - code:not(pre > code) { + border-radius: ${jt}; + background-color: ${q0}; + font-size: ${nr()-2}px; font-family: var(--vscode-editor-font-family); - color: #f78383; - } - - background-color: ${fc}; - font-family: - var(--vscode-font-family), - system-ui, - -apple-system, - BlinkMacSystemFont, - "Segoe UI", - Roboto, - Oxygen, - Ubuntu, - Cantarell, - "Open Sans", - "Helvetica Neue", - sans-serif; - font-size: ${I=>I.fontSize||Fn()}px; - padding-left: 8px; - padding-right: 8px; - color: ${ec}; - - p, - li, - ol, - ul { - line-height: 1.5; - } -`,zN=E.memo(function(l){const[c,G]=i3I({remarkPlugins:[R4I,()=>e=>{GN(e,"code",d=>{d.lang?d.lang.includes(".")&&(d.lang=d.lang.split(".").slice(-1)[0]):d.lang})}],rehypePlugins:[T5I,{},W4I,{}],rehypeReactOptions:{components:{a:({node:e,...d})=>v.jsx("a",{...d,target:"_blank",children:d.children}),pre:({node:e,...d})=>{var n,b,a,Z,W;const t=(W=(Z=(a=(b=(n=d==null?void 0:d.children)==null?void 0:n[0])==null?void 0:b.props)==null?void 0:a.className)==null?void 0:Z.split(" ").find(m=>m.startsWith("language-")))==null?void 0:W.split("-")[1];return l.showCodeBorder?v.jsx(Q4I,{language:t,children:v.jsx(wU,{...d})}):v.jsx(wU,{...d})}}}});return E.useEffect(()=>{G(l.source||"")},[l.source]),v.jsx(E4I,{fontSize:Fn(),showBorder:l.showCodeBorder,children:c})});function v4I(I,l){const c=Wu.cloneDeep(I);for(const G in l)typeof l[G]=="function"?Wu.updateWith(c,G,l[G]):Wu.updateWith(c,G,e=>l[G]);return c}const Q0={};Q0["Requires API Key"]="#FF0000";Q0.Local="#00bb00";Q0["Open-Source"]="#0033FF";Q0.Free="#ffff00";const eO={inputType:"number",key:"contextLength",label:"Context Length",defaultValue:void 0,required:!1},g4I={inputType:"number",key:"completionOptions.temperature",label:"Temperature",defaultValue:void 0,required:!1,min:0,max:1,step:.01},A4I={inputType:"number",key:"completionOptions.topP",label:"Top-P",defaultValue:void 0,required:!1,min:0,max:1,step:.01},y4I={inputType:"number",key:"completionOptions.topK",label:"Top-K",defaultValue:void 0,required:!1,min:0,step:1},J4I={inputType:"number",key:"completionOptions.presencePenalty",label:"Presence Penalty",defaultValue:void 0,required:!1,min:0,max:1,step:.01},B4I={inputType:"number",key:"completionOptions.frequencyPenalty",label:"Frequency Penalty",defaultValue:void 0,required:!1,min:0,max:1,step:.01},qt=[eO,g4I,y4I,A4I,J4I,B4I],EU={inputType:"text",key:"apiBase",label:"API Base",placeholder:"e.g. http://localhost:8080",required:!1},Yi={title:"CodeLlama Instruct",description:"A model from Meta, fine-tuned for code generation and conversation",refUrl:"",params:{title:"CodeLlama-7b",model:"codellama-7b",contextLength:4096},icon:"meta.png",dimensions:[{name:"Parameter Count",description:"The number of parameters in the model",options:{"7b":{model:"codellama-7b",title:"CodeLlama-7b"},"13b":{model:"codellama-13b",title:"CodeLlama-13b"},"34b":{model:"codellama-34b",title:"CodeLlama-34b"},"70b":{model:"codellama-70b",title:"Codellama-70b"}}}],providerOptions:["ollama","lmstudio","together","llamacpp","replicate"]},dO={title:"Codellama 70b (Free Trial)",description:"The best code model from Meta, fine-tuned for code generation and conversation",refUrl:"",params:{title:"CodeLlama-70b",model:"codellama-70b",contextLength:4096},icon:"meta.png",providerOptions:["freetrial"]},vU={title:"Mixtral (Free Trial)",description:"Mixtral 8x7b is a mixture of experts model created by Mistral AI",refUrl:"",params:{title:"Mixtral",model:"mistral-8x7b",contextLength:4096},icon:"mistral.png",providerOptions:["freetrial","groq"]},k4I={title:"Llama2 70b Chat",description:"The latest Llama model from Meta, fine-tuned for chat",refUrl:"",params:{title:"Llama2-70b",model:"llama2-70b",contextLength:4096},icon:"meta.png",providerOptions:["groq"]},Xi={title:"Llama2 Chat",description:"The latest Llama model from Meta, fine-tuned for chat",refUrl:"",params:{title:"Llama2-7b",model:"llama2-7b",contextLength:4096},icon:"meta.png",dimensions:[{name:"Parameter Count",description:"The number of parameters in the model",options:{"7b":{model:"llama2-7b",title:"Llama2-7b"},"13b":{model:"llama2-13b",title:"Llama2-13b"},"34b":{model:"llama2-34b",title:"Llama2-34b"}}}],providerOptions:["ollama","lmstudio","together","llamacpp","replicate"]},Fy={title:"WizardCoder",description:"A CodeLlama-based code generation model from WizardLM, focused on Python",refUrl:"",params:{title:"WizardCoder-7b",model:"wizardcoder-7b",contextLength:4096},icon:"wizardlm.png",dimensions:[{name:"Parameter Count",description:"The number of parameters in the model",options:{"7b":{model:"wizardcoder-7b",title:"WizardCoder-7b"},"13b":{model:"wizardcoder-13b",title:"WizardCoder-13b"},"34b":{model:"wizardcoder-34b",title:"WizardCoder-34b"}}}],providerOptions:["ollama","lmstudio","llamacpp","replicate"]},tO={title:"Phind CodeLlama (34b)",description:"A finetune of CodeLlama by Phind",icon:"meta.png",params:{title:"Phind CodeLlama",model:"phind-codellama-34b",contextLength:4096},providerOptions:["ollama","lmstudio","llamacpp","replicate","freetrial"]},Hi={title:"Mistral (7b)",description:"A 7b parameter base model created by Mistral AI, very competent for code generation and other tasks",params:{title:"Mistral",model:"mistral-7b",contextLength:4096},dimensions:[{name:"Parameter Count",description:"The number of parameters in the model",options:{"7b":{model:"mistral-7b",title:"Mistral-7b"},"8x7b (MoE)":{model:"mistral-8x7b",title:"Mixtral"}}}],icon:"mistral.png",providerOptions:["ollama","lmstudio","together","llamacpp","replicate"]},x4I={title:"Mistral Tiny (7b)",description:"An 7b parameter model created by Mistral AI",params:{title:"Mistral",model:"mistral-tiny",contextLength:4096},icon:"mistral.png",providerOptions:["ollama","lmstudio","together","llamacpp","replicate","mistral"]},z4I={title:"Mixtral (8x7b)",description:"An 8x7b parameter Mixture of Experts model created by Mistral AI (a.k.a Mistral Small)",params:{title:"Mixtral",model:"mistral-small",contextLength:4096},icon:"mistral.png",providerOptions:["ollama","lmstudio","together","llamacpp","replicate","mistral"]},U4I={title:"Mistral Medium",description:"A highly capable model created by Mistral AI",params:{title:"Mistral Medium",model:"mistral-medium",contextLength:4096},icon:"mistral.png",providerOptions:["ollama","lmstudio","together","llamacpp","replicate","mistral"]},pE={title:"Gemini Pro",description:"A highly capable model created by Google DeepMind",params:{title:"Gemini Pro",model:"gemini-pro",contextLength:32e3,apiKey:""},icon:"gemini.png",providerOptions:["palm","freetrial"]},Ny={title:"Zephyr-Beta (7b)",description:"A fine-tune of Mistral, trained on publicly available and synthetic datasets.",params:{title:"Zephyr",model:"zephyr-7b",contextLength:4096},icon:"mistral.png",providerOptions:["ollama","lmstudio","llamacpp","replicate"]},nO={title:"DeepSeek-Coder",description:"A model pre-trained on 2 trillion tokens including 80+ programming languages and a repo-level corpus.",params:{title:"DeepSeek-7b",model:"deepseek-7b",contextLength:4096},icon:"deepseek.png",dimensions:[{name:"Parameter Count",description:"The number of parameters in the model",options:{"1b":{model:"deepseek-1b",title:"DeepSeek-1b"},"7b":{model:"deepseek-7b",title:"DeepSeek-7b"},"33b":{model:"deepseek-33b",title:"DeepSeek-33b"}}}],providerOptions:["ollama","lmstudio","llamacpp"]},C4I={title:"Neural-Chat-v3-3 (7b)",description:"A fine-tuned 7B parameter LLM on the Intel Gaudi 2 processor from the Intel/neural-chat-7b-v3-1 on the meta-math/MetaMathQA dataset.",params:{title:"NeuralChat",model:"neural-chat-7b",contextLength:4096},providerOptions:["ollama","lmstudio","llamacpp","replicate"]},Hs=[nO,Fy,Yi,Hi,tO,Xi,Ny,C4I],bO={title:"GPT-4 Turbo",description:"A faster, cheaper version of GPT-4 with a longer context length",params:{model:"gpt-4-turbo-preview",contextLength:128e3,title:"gpt-4-turbo-preview"},providerOptions:["openai","freetrial"],icon:"openai.png"},aO={title:"GPT-4",description:"The most powerful model from OpenAI",params:{model:"gpt-4",contextLength:8096,title:"GPT-4"},providerOptions:["openai","freetrial"],icon:"openai.png"},gU={title:"GPT-4 Vision",description:"A faster version of GPT-4 with longer context length and image support",params:{model:"gpt-4-vision-preview",contextLength:128e3,title:"GPT-4 Vision"},providerOptions:["openai","freetrial"],icon:"openai.png"},oE={title:"GPT-3.5-Turbo",description:"A faster, cheaper OpenAI model with slightly lower capabilities",params:{model:"gpt-3.5-turbo",contextLength:8096,title:"GPT-3.5-Turbo"},providerOptions:["openai","freetrial"],icon:"openai.png"},ZO={title:"Claude 2",description:"A highly capable model with a 100k context length",params:{model:"claude-2.1",contextLength:1e5,title:"Claude 2",apiKey:""},providerOptions:["anthropic"],icon:"anthropic.png"},VE={title:"Claude 3 Opus",description:"Anthropic's most capable model, beating GPT-4 on many benchmarks",params:{model:"claude-3-opus-20240229",contextLength:2e5,title:"Claude 3 Opus",apiKey:""},providerOptions:["anthropic","freetrial"],icon:"anthropic.png"},iE={title:"Claude 3 Sonnet",description:"The second most capable model in the Claude 3 series: ideal balance of intelligence and speed",params:{model:"claude-3-sonnet-20240229",contextLength:2e5,title:"Claude 3 Sonnet",apiKey:""},providerOptions:["anthropic","freetrial"],icon:"anthropic.png"},FE={title:"Claude 3 Haiku",description:"The third most capable model in the Claude 3 series: fastest and most compact model for near-instant responsiveness",params:{model:"claude-3-haiku-20240307",contextLength:2e5,title:"Claude 3 Haiku",apiKey:""},providerOptions:["anthropic","freetrial"],icon:"anthropic.png"},ht={title:"Autodetect",description:"Automatically populate the model list by calling the /models endpoint of the server",params:{model:"AUTODETECT"},providerOptions:[]},M4I=[bO,aO,oE,pE,VE,iE,FE,ZO,nO,Hi,dO,Fy,Yi,tO,Xi,Ny],Qi={openai:{title:"OpenAI",provider:"openai",description:"Use gpt-4, gpt-3.5-turbo, or any other OpenAI model",longDescription:"Use gpt-4, gpt-3.5-turbo, or any other OpenAI model. See [here](https://openai.com/product#made-for-developers) to obtain an API key.",icon:"openai.png",tags:["Requires API Key"],packages:[aO,oE,bO,gU,{...ht,params:{...ht.params,title:"OpenAI"}}],collectInputFor:[{inputType:"text",key:"apiKey",label:"API Key",placeholder:"Enter your OpenAI API key",required:!0},...qt]},anthropic:{title:"Anthropic",provider:"anthropic",refPage:"anthropicllm",description:"Anthropic builds state-of-the-art models with large context length and high recall",icon:"anthropic.png",tags:["Requires API Key"],longDescription:"To get started with Anthropic models, you first need to sign up for the open beta [here](https://claude.ai/login) to obtain an API key.",collectInputFor:[{inputType:"text",key:"apiKey",label:"API Key",placeholder:"Enter your Anthropic API key",required:!0},...qt,{...eO,defaultValue:1e5}],packages:[VE,iE,FE,ZO]},ollama:{title:"Ollama",provider:"ollama",description:"One of the fastest ways to get started with local models on Mac, Linux, or Windows",longDescription:'To get started with Ollama, follow these steps:\n1. Download from [ollama.ai](https://ollama.ai/) and open the application\n2. Open a terminal and run `ollama run `. Example model names are `codellama:7b-instruct` or `llama2:7b-text`. You can find the full list [here](https://ollama.ai/library).\n3. Make sure that the model name used in step 2 is the same as the one in config.py (e.g. `model="codellama:7b-instruct"`)\n4. Once the model has finished downloading, you can start asking questions through Continue.',icon:"ollama.png",tags:["Local","Open-Source"],packages:[{...ht,params:{...ht.params,title:"Ollama"}},...Hs],collectInputFor:[...qt,{...EU,defaultValue:"http://localhost:11434"}]},together:{title:"TogetherAI",provider:"together",refPage:"togetherllm",description:"Use the TogetherAI API for extremely fast streaming of open-source models",icon:"together.png",longDescription:`Together is a hosted service that provides extremely fast streaming of open-source language models. To get started with Together: -1. Obtain an API key from [here](https://together.ai) -2. Paste below -3. Select a model preset`,tags:["Requires API Key","Open-Source"],params:{apiKey:""},collectInputFor:[{inputType:"text",key:"apiKey",label:"API Key",placeholder:"Enter your TogetherAI API key",required:!0},...qt],packages:[Xi,Yi,Hi].map(I=>(I.params.contextLength=4096,I))},groq:{title:"Groq",provider:"groq",icon:"groq.png",description:"Groq is the fastest LLM provider by a wide margin, using 'LPUs' to serve open-source models at blazing speed.",longDescription:"To get started with Groq, obtain an API key from their website [here](https://wow.groq.com/).",tags:["Requires API Key","Open-Source"],collectInputFor:[{inputType:"text",key:"apiKey",label:"API Key",placeholder:"Enter your Groq API key",required:!0}],packages:[{...vU,title:"Mixtral"},k4I,{...ht,params:{...ht.params,title:"Groq"}},,]},palm:{title:"Google Gemini API",provider:"google-palm",refPage:"googlepalmapi",description:"Try out Google's state-of-the-art Gemini model from their API.",longDescription:"To get started with Google Gemini API, obtain your API key from [here](https://ai.google.dev/tutorials/workspace_auth_quickstart) and paste it below.",icon:"gemini.png",tags:["Requires API Key"],collectInputFor:[{inputType:"text",key:"apiKey",label:"API Key",placeholder:"Enter your Gemini API key",required:!0}],packages:[pE]},mistral:{title:"Mistral API",provider:"mistral",description:"The Mistral API provides hosted access to their models, including Mistral-7b, Mixtral, and the very capable mistral-medium",icon:"mistral.png",longDescription:"To get access to the Mistral API, obtain your API key from the [Mistral platform](https://docs.mistral.ai/)",tags:["Requires API Key","Open-Source"],params:{apiKey:""},collectInputFor:[{inputType:"text",key:"apiKey",label:"API Key",placeholder:"Enter your Mistral API key",required:!0},...qt],packages:[x4I,z4I,U4I].map(I=>(I.params.contextLength=4096,I))},lmstudio:{title:"LM Studio",provider:"lmstudio",description:"One of the fastest ways to get started with local models on Mac or Windows",longDescription:`LMStudio provides a professional and well-designed GUI for exploring, configuring, and serving LLMs. It is available on both Mac and Windows. To get started: -1. Download from [lmstudio.ai](https://lmstudio.ai/) and open the application -2. Search for and download the desired model from the home screen of LMStudio. -3. In the left-bar, click the '<->' icon to open the Local Inference Server and press 'Start Server'. -4. Once your model is loaded and the server has started, you can begin using Continue.`,icon:"lmstudio.png",tags:["Local","Open-Source"],params:{apiBase:"http://localhost:1234/v1/"},packages:[{...ht,params:{...ht.params,title:"LM Studio"}},...Hs],collectInputFor:[...qt]},llamafile:{title:"llamafile",provider:"llamafile",icon:"llamafile.png",description:"llamafiles are a self-contained binary to run an open-source LLM",longDescription:"To get started with llamafiles, find and download a binary on their [GitHub repo](https://github.com/Mozilla-Ocho/llamafile#binary-instructions). Then run it with the following command:\n\n```shell\nchmod +x ./llamafile\n./llamafile\n```",tags:["Local","Open-Source"],packages:Hs,collectInputFor:[...qt]},replicate:{title:"Replicate",provider:"replicate",refPage:"replicatellm",description:"Use the Replicate API to run open-source models",longDescription:`Replicate is a hosted service that makes it easy to run ML models. To get started with Replicate: -1. Obtain an API key from [here](https://replicate.com) -2. Paste below -3. Select a model preset`,params:{apiKey:""},collectInputFor:[{inputType:"text",key:"apiKey",label:"API Key",placeholder:"Enter your Replicate API key",required:!0},...qt],icon:"replicate.png",tags:["Requires API Key","Open-Source"],packages:[Yi,Xi,Fy,Hi,Ny]},llamacpp:{title:"llama.cpp",provider:"llama.cpp",refPage:"llamacpp",description:"If you are running the llama.cpp server from source",longDescription:"llama.cpp comes with a [built-in server](https://github.com/ggerganov/llama.cpp/tree/master/examples/server#llamacppexampleserver) that can be run from source. To do this:\n \n1. Clone the repository with `git clone https://github.com/ggerganov/llama.cpp`.\n2. `cd llama.cpp`\n3. Run `make` to build the server.\n4. Download the model you'd like to use and place it in the `llama.cpp/models` directory (the best place to find models is [The Bloke on HuggingFace](https://huggingface.co/TheBloke))\n5. Run the llama.cpp server with the command below (replacing with the model you downloaded):\n\n```shell\n.\\server.exe -c 4096 --host 0.0.0.0 -t 16 --mlock -m models/codellama-7b-instruct.Q8_0.gguf\n```\n\nAfter it's up and running, you can start using Continue.",icon:"llamacpp.png",tags:["Local","Open-Source"],packages:Hs,collectInputFor:[...qt]},"openai-aiohttp":{title:"Other OpenAI-compatible API",provider:"openai",description:"If you are using any other OpenAI-compatible API, for example text-gen-webui, FastChat, LocalAI, or llama-cpp-python, you can simply enter your server URL",longDescription:`If you are using any other OpenAI-compatible API, you can simply enter your server URL. If you still need to set up your model server, you can follow a guide below: - -- [text-gen-webui](https://github.com/oobabooga/text-generation-webui/tree/main/extensions/openai#setup--installation) -- [LocalAI](https://localai.io/basics/getting_started/) -- [llama-cpp-python](https://github.com/continuedev/ggml-server-example) -- [FastChat](https://github.com/lm-sys/FastChat/blob/main/docs/openai_api.md)`,params:{apiBase:""},collectInputFor:[{...EU,defaultValue:"http://localhost:8000/v1/"},...qt],icon:"openai.png",tags:["Local","Open-Source"],packages:[{...ht,params:{...ht.params,title:"OpenAI"}},...Hs]},freetrial:{title:"Continue limited free trial",provider:"free-trial",refPage:"freetrial",description:"New users can try out Continue for free using a proxy server that securely makes calls to OpenAI, Google, or Together using our API key",longDescription:'New users can try out Continue for free using a proxy server that securely makes calls to OpenAI, Google, or Together using our API key. If you are ready to use your own API key or have used all 250 free uses, you can enter your API key in config.py where it says `apiKey=""` or select another model provider.',icon:"openai.png",tags:["Free"],packages:[dO,vU,{...VE,title:"Claude 3 Opus (trial)"},{...iE,title:"Claude 3 Sonnet (trial)"},{...FE,title:"Claude 3 Haiku (trial)"},{...pE,title:"Gemini Pro (trial)"},{...gU,title:"GPT-4 Vision (trial)"},{...oE,title:"GPT-3.5-Turbo (trial)"},{...ht,params:{...ht.params,title:"Free Trial"}}],collectInputFor:[...qt]}},wi=({msg:I})=>{const l=`info-hover-${encodeURIComponent(I)}`,c=document.getElementById("tooltip-portal-div");return v.jsxs(v.Fragment,{children:[v.jsx(CWI,{"data-tooltip-id":l,className:"h-5 w-5 text-gray-500 cursor-help"}),c&&fb.createPortal(v.jsx(NW,{id:l,place:"bottom",children:I}),c)]})},f4I=LI.div` - border: 1px solid ${ul}; - border-radius: ${Pl}; - position: relative; - width: 100%; - transition: all 0.5s; - - ${I=>I.disabled?` - opacity: 0.5; - `:I.hovered?` - border: 1px solid ${I.color}; - background-color: ${I.color}22; - cursor: pointer;`:""} -`,K4I=LI.div` - display: flex; - justify-content: flex-end; - margin-left: auto; - padding: 4px; - /* width: fit-content; */ - - flex-wrap: wrap; - row-gap: 12px; - - border-top: 1px solid ${ul}; -`,L4I=LI.div` - display: flex; - flex-direction: column; - align-items: center; - margin-right: 8px; - background-color: ${ul}; - padding: 4px; - border-radius: ${Pl}; - outline: 0.5px solid ${ul}; - - ${I=>I.selected&&` - background-color: ${Su}; - color: white; - `} - - &:hover { - cursor: pointer; - outline: 1px solid ${wg}; - } -`;function NE(I){var n,b,a,Z,W,m,s;const[l,c]=E.useState(((n=I.dimensions)==null?void 0:n.map(h=>Object.keys(h.options)[0]))||[]),[G,e]=E.useState(!1),[d,t]=E.useState(void 0);return E.useEffect(()=>{var h;(h=I.providerOptions)!=null&&h.length&&t(I.providerOptions[0])},[I.providerOptions]),v.jsxs(f4I,{disabled:I.disabled||!1,color:Su,hovered:G,children:[v.jsxs("div",{onMouseEnter:()=>e(!0),onMouseLeave:()=>e(!1),className:"px-2 py-1",onClick:I.disabled?void 0:h=>{h.target.closest("a")||I.onClick(h,l,d)},children:[v.jsxs("div",{style:{display:"flex",alignItems:"center"},children:[window.vscMediaUrl&&I.icon&&v.jsx("img",{src:`${window.vscMediaUrl}/logos/${I.icon}`,height:"24px",style:{marginRight:"10px"}}),v.jsx("h3",{children:I.title})]}),(b=I.tags)==null?void 0:b.map(h=>v.jsx("span",{style:{backgroundColor:`${Q0[h]}55`,color:"white",padding:"2px 4px",borderRadius:Pl,marginRight:"4px"},children:h})),v.jsx("p",{children:I.description}),I.refUrl&&v.jsx("a",{style:{position:"absolute",right:"8px",top:"8px"},href:I.refUrl,target:"_blank",children:v.jsx(le,{text:"Read the docs",children:v.jsx(xS,{width:"1.6em",height:"1.6em"})})})]}),(((a=I.dimensions)==null?void 0:a.length)||((Z=I.providerOptions)==null?void 0:Z.length))&&v.jsxs(K4I,{children:[(W=I.dimensions)==null?void 0:W.map((h,p)=>v.jsxs(v.Fragment,{children:[v.jsxs("div",{className:"flex items-center justify-between",children:[v.jsxs("div",{className:"flex items-center",children:[v.jsx(wi,{msg:h.description}),v.jsx("p",{className:"mx-2 text-sm my-0 py-0",children:h.name})]}),v.jsx("div",{className:"flex items-center",children:Object.keys(h.options).map(V=>v.jsx(L4I,{onClick:o=>{o.stopPropagation();const F=[...l];F[p]=V,c(F)},selected:l[p]===V,children:V}))})]}),v.jsx("br",{})]})),((m=I.providerOptions)==null?void 0:m.length)&&v.jsxs("div",{className:"flex items-center flex-wrap justify-end rtl",children:[v.jsx("div",{className:"flex items-center",children:v.jsx(wi,{msg:"Select the provider through which you will access the model"})}),v.jsx("div",{className:"flex items-center flex-wrap justify-end rtl",children:(s=I.providerOptions)==null?void 0:s.map((h,p)=>{const V=Qi[h];return V?v.jsx(le,{text:V.title,className:"p-2 text-center mx-1 items-center",style:{backgroundColor:p===0&&typeof d>"u"||d===h?Su+"aa":void 0},onClick:()=>{t(h)},children:window.vscMediaUrl&&V.icon&&v.jsx("img",{src:`${window.vscMediaUrl}/logos/${V.icon}`,height:"24px"})}):null})})]})]})]})}const S4I=LI.div` - display: grid; - grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); - grid-gap: 2rem; - padding: 1rem; - justify-items: center; - align-items: center; -`,WO=LI.div` - border: 1px solid ${ul}; - border-radius: ${Pl}; - padding: 4px 8px; - display: flex; - justify-content: center; - align-items: center; - transition: all 0.5s; - - ${I=>I.disabled?` - opacity: 0.5; - `:` - &:hover { - border: 1px solid #be1b55; - background-color: #be1b5522; - cursor: pointer; - } - `} -`;function T4I(){var n,b,a,Z,W;Uh();const I=c8(),{modelName:l}=_aI(),[c,G]=E.useState(void 0);E.useEffect(()=>{l&&G(Qi[l])},[l]);const e=ne(),d=Be(),t=E.useCallback(()=>{var m;return((m=c==null?void 0:c.collectInputFor)==null?void 0:m.some(s=>{if(!s.required)return!1;const h=I.watch(s.key);return typeof h>"u"||typeof h=="string"&&h===""}))||!1},[c,I]);return v.jsx(DD,{...I,children:v.jsxs("div",{className:"overflow-y-scroll",children:[v.jsxs("div",{className:"items-center flex m-0 p-0 sticky top-0",style:{borderBottom:`0.5px solid ${ul}`,backgroundColor:fc,zIndex:2},children:[v.jsx(h0,{width:"1.2em",height:"1.2em",onClick:()=>d("/models"),className:"inline-block ml-4 cursor-pointer"}),v.jsx("h3",{className:"text-lg font-bold m-2 inline-block",children:"Configure Model"})]}),v.jsxs("div",{className:"px-2",children:[v.jsxs("div",{style:{display:"flex",alignItems:"center"},children:[window.vscMediaUrl&&(c==null?void 0:c.icon)&&v.jsx("img",{src:`${window.vscMediaUrl}/logos/${c==null?void 0:c.icon}`,height:"24px",style:{marginRight:"10px"}}),v.jsx("h2",{children:c==null?void 0:c.title})]}),(n=c==null?void 0:c.tags)==null?void 0:n.map((m,s)=>v.jsx("span",{style:{backgroundColor:`${Q0[m]}55`,color:"white",padding:"2px 4px",borderRadius:Pl,marginRight:"4px"},children:m},s)),v.jsx(zN,{className:"mt-2",source:(c==null?void 0:c.longDescription)||(c==null?void 0:c.description)}),v.jsx("br",{}),(((b=c==null?void 0:c.collectInputFor)==null?void 0:b.filter(m=>m.required).length)||0)>0&&v.jsxs(v.Fragment,{children:[v.jsx("h3",{className:"mb-2",children:"Enter required parameters"}),(a=c==null?void 0:c.collectInputFor)==null?void 0:a.filter(m=>m.required).map((m,s)=>v.jsxs("div",{children:[v.jsx("label",{htmlFor:m.key,children:m.key}),v.jsx(Tu,{type:m.inputType,id:m.key,className:"border-2 border-gray-200 rounded-md p-2 m-2",placeholder:m.key,defaultValue:m.defaultValue,min:m.min,max:m.max,step:m.step,...I.register(m.key,{required:!0})})]},s))]}),(((Z=c==null?void 0:c.collectInputFor)==null?void 0:Z.filter(m=>!m.required).length)||0)>0&&v.jsxs("details",{children:[v.jsx("summary",{className:"mb-2",children:v.jsx("b",{children:"Advanced (optional)"})}),(W=c==null?void 0:c.collectInputFor)==null?void 0:W.map((m,s)=>m.required?null:v.jsxs("div",{children:[v.jsx("label",{htmlFor:m.key,children:m.key.split(".")[m.key.split(".").length-1]}),v.jsx(Tu,{type:m.inputType,id:m.key,className:"border-2 border-gray-200 rounded-md p-2 m-2",placeholder:m.key.split(".")[m.key.split(".").length-1],defaultValue:m.defaultValue,min:m.min,max:m.max,step:m.step,...I.register(m.key,{required:!1})})]},s))]}),v.jsx("h3",{className:"mb-2",children:"Select a model preset"})]}),v.jsxs(S4I,{children:[c==null?void 0:c.packages.map((m,s)=>v.jsx(NE,{disabled:t(),title:m.title,description:m.description,tags:m.tags,refUrl:m.refUrl,icon:m.icon||c.icon,dimensions:m.dimensions,onClick:(h,p)=>{var F;if(t())return;let V={};for(const X of c.collectInputFor||[])V=v4I(V,{[X.key]:X.inputType==="text"?I.watch(X.key):parseFloat(I.watch(X.key))});const o={...m.params,...c.params,...Wu.merge({},...((F=m.dimensions)==null?void 0:F.map((X,H)=>p!=null&&p[H]?{...X.options[p[H]]}:{}))||[]),...V,provider:c.provider};Yc("config/addModel",{model:o}),e(Ih(o.title)),d("/")}},s)),v.jsxs("div",{style:{padding:"8px"},children:[v.jsx("hr",{style:{color:ul,border:`1px solid ${ul}`}}),v.jsx("p",{style:{color:ul},children:"OR choose from other providers / models by editing config.json."}),v.jsx(WO,{disabled:!1,onClick:m=>{Yc("openConfigJson",void 0)},children:v.jsx("h3",{className:"text-center my-2",children:"Open config.json"})})]})]})]})})}const j4I=LI.div` - display: flex; - align-items: center; - text-align: center; - margin: auto; - width: fit-content; - cursor: pointer; - - border: 1px solid ${ul}; - - background-color: ${Mc}; - border-radius: ${Pl}; - - &:hover { - background-color: ${ul}55; - } -`,AU=LI.div` - text-align: center; - padding: 8px 12px; - border-radius: ${Pl}; - - transition: all 0.2s ease-in-out; - - ${I=>I.selected&&` - background-color: ${UV}; - box-shadow: 0px 0px 8px 0px ${ul}88; - color: ${qF}; - - `} -`;function D4I(I){return v.jsxs(j4I,{onClick:I.onClick,children:[v.jsx(AU,{selected:I.selected,children:I.optionOne}),v.jsx(AU,{selected:!I.selected,children:I.optionTwo})]})}const O4I=LI.div` - padding: 8px 12px; - border-radius: ${Pl}; - border: 1px solid ${ul}; - margin: 1rem; -`,yU=LI.div` - display: grid; - grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); - grid-gap: 2rem; - padding: 1rem; - justify-items: center; - align-items: center; -`;function P4I(){const I=Be(),l=ne();Uh();const[c,G]=Gl.useState(!0);return v.jsxs("div",{className:"overflow-y-scroll",children:[v.jsxs("div",{className:"items-center flex m-0 p-0 sticky top-0",style:{borderBottom:`0.5px solid ${ul}`,backgroundColor:fc,zIndex:2},children:[v.jsx(h0,{width:"1.2em",height:"1.2em",onClick:()=>I("/"),className:"inline-block ml-4 cursor-pointer"}),v.jsx("h3",{className:"text-lg font-bold m-2 inline-block",children:"Add new model"})]}),v.jsx("br",{}),v.jsx(D4I,{selected:c,optionOne:"Providers",optionTwo:"Models",onClick:()=>{G(e=>!e)}}),v.jsxs(O4I,{children:["To set up an LLM you will choose",v.jsxs("ul",{children:[v.jsx("li",{children:"a provider (the service used to run the LLM, e.g. Ollama, TogetherAI) and"}),v.jsx("li",{children:"a model (the LLM being run, e.g. GPT-4, CodeLlama)."})]}),"To read more about the options, check out our"," ",v.jsx("a",{href:"https://continue.dev/docs/model-setup/overview",children:"overview"})," in the docs."]}),c?v.jsx(yU,{children:Object.entries(Qi).map(([e,d])=>v.jsx(NE,{title:d.title,description:d.description,tags:d.tags,icon:d.icon,refUrl:`https://continue.dev/docs/reference/Model%20Providers/${d.refPage||d.provider.toLowerCase()}`,onClick:t=>{I(`/modelconfig/${e}`)}}))}):v.jsx(yU,{children:Object.entries(M4I).map(([e,d])=>v.jsx(NE,{title:d.title,description:d.description,tags:d.tags,icon:d.icon,dimensions:d.dimensions,providerOptions:d.providerOptions,onClick:(t,n,b)=>{var Z;const a={...d.params,...Wu.merge({},...((Z=d.dimensions)==null?void 0:Z.map((W,m)=>n!=null&&n[m]?{...W.options[n[m]]}:{}))||[]),provider:Qi[b].provider};Yc("config/addModel",{model:a}),l(Ih(a.title)),I("/")}}))}),v.jsxs("div",{style:{padding:"8px"},children:[v.jsx("hr",{style:{color:ul,border:`1px solid ${ul}`}}),v.jsx("p",{style:{color:ul},children:"OR choose from other providers / models by editing config.json."}),v.jsx(WO,{disabled:!1,onClick:e=>{Yc("openConfigJson",void 0)},children:v.jsx("h3",{className:"text-center my-2",children:"Open config.json"})})]})]})}function _4I(I,l,c){return l in I?Object.defineProperty(I,l,{value:c,enumerable:!0,configurable:!0,writable:!0}):I[l]=c,I}function JU(I,l){var c=Object.keys(I);if(Object.getOwnPropertySymbols){var G=Object.getOwnPropertySymbols(I);l&&(G=G.filter(function(e){return Object.getOwnPropertyDescriptor(I,e).enumerable})),c.push.apply(c,G)}return c}function BU(I){for(var l=1;l=0)&&(c[e]=I[e]);return c}function $4I(I,l){if(I==null)return{};var c=q4I(I,l),G,e;if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(I);for(e=0;e=0)&&Object.prototype.propertyIsEnumerable.call(I,G)&&(c[G]=I[G])}return c}function IkI(I,l){return lkI(I)||ckI(I,l)||GkI(I,l)||ekI()}function lkI(I){if(Array.isArray(I))return I}function ckI(I,l){if(!(typeof Symbol>"u"||!(Symbol.iterator in Object(I)))){var c=[],G=!0,e=!1,d=void 0;try{for(var t=I[Symbol.iterator](),n;!(G=(n=t.next()).done)&&(c.push(n.value),!(l&&c.length===l));G=!0);}catch(b){e=!0,d=b}finally{try{!G&&t.return!=null&&t.return()}finally{if(e)throw d}}return c}}function GkI(I,l){if(I){if(typeof I=="string")return kU(I,l);var c=Object.prototype.toString.call(I).slice(8,-1);if(c==="Object"&&I.constructor&&(c=I.constructor.name),c==="Map"||c==="Set")return Array.from(I);if(c==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(c))return kU(I,l)}}function kU(I,l){(l==null||l>I.length)&&(l=I.length);for(var c=0,G=new Array(l);c=I.length?I.apply(this,e):function(){for(var t=arguments.length,n=new Array(t),b=0;b1&&arguments[1]!==void 0?arguments[1]:{};a2.initial(I),a2.handler(l);var c={current:I},G=Ss(okI)(c,l),e=Ss(pkI)(c),d=Ss(a2.changes)(I),t=Ss(hkI)(c);function n(){var a=arguments.length>0&&arguments[0]!==void 0?arguments[0]:function(Z){return Z};return a2.selector(a),a(c.current)}function b(a){tkI(G,e,d,t)(a)}return[n,b]}function hkI(I,l){return Zh(l)?l(I.current):l}function pkI(I,l){return I.current=zU(zU({},I.current),l),l}function okI(I,l,c){return Zh(l)?l(I.current):Object.keys(c).forEach(function(G){var e;return(e=l[G])===null||e===void 0?void 0:e.call(l,I.current[G])}),c}var VkI={create:ukI},ikI={paths:{vs:"https://cdn.jsdelivr.net/npm/monaco-editor@0.43.0/min/vs"}};function FkI(I){return function l(){for(var c=this,G=arguments.length,e=new Array(G),d=0;d=I.length?I.apply(this,e):function(){for(var t=arguments.length,n=new Array(t),b=0;b{G.current=!1}:I,l)}var Md=TkI;function uu(){}function um(I,l,c,G){return jkI(I,G)||DkI(I,l,c,G)}function jkI(I,l){return I.editor.getModel(VO(I,l))}function DkI(I,l,c,G){return I.editor.createModel(l,c,G?VO(I,G):void 0)}function VO(I,l){return I.Uri.parse(l)}function OkI({original:I,modified:l,language:c,originalLanguage:G,modifiedLanguage:e,originalModelPath:d,modifiedModelPath:t,keepCurrentOriginalModel:n=!1,keepCurrentModifiedModel:b=!1,theme:a="light",loading:Z="Loading...",options:W={},height:m="100%",width:s="100%",className:h,wrapperProps:p={},beforeMount:V=uu,onMount:o=uu}){let[F,X]=E.useState(!1),[H,Y]=E.useState(!0),R=E.useRef(null),B=E.useRef(null),C=E.useRef(null),k=E.useRef(o),N=E.useRef(V),J=E.useRef(!1);oO(()=>{let O=hO.init();return O.then($=>(B.current=$)&&Y(!1)).catch($=>($==null?void 0:$.type)!=="cancelation"&&console.error("Monaco initialization: error:",$)),()=>R.current?D():O.cancel()}),Md(()=>{if(R.current&&B.current){let O=R.current.getOriginalEditor(),$=um(B.current,I||"",G||c||"text",d||"");$!==O.getModel()&&O.setModel($)}},[d],F),Md(()=>{if(R.current&&B.current){let O=R.current.getModifiedEditor(),$=um(B.current,l||"",e||c||"text",t||"");$!==O.getModel()&&O.setModel($)}},[t],F),Md(()=>{let O=R.current.getModifiedEditor();O.getOption(B.current.editor.EditorOption.readOnly)?O.setValue(l||""):l!==O.getValue()&&(O.executeEdits("",[{range:O.getModel().getFullModelRange(),text:l||"",forceMoveMarkers:!0}]),O.pushUndoStop())},[l],F),Md(()=>{var O,$;($=(O=R.current)==null?void 0:O.getModel())==null||$.original.setValue(I||"")},[I],F),Md(()=>{let{original:O,modified:$}=R.current.getModel();B.current.editor.setModelLanguage(O,G||c||"text"),B.current.editor.setModelLanguage($,e||c||"text")},[c,G,e],F),Md(()=>{var O;(O=B.current)==null||O.editor.setTheme(a)},[a],F),Md(()=>{var O;(O=R.current)==null||O.updateOptions(W)},[W],F);let A=E.useCallback(()=>{var j;if(!B.current)return;N.current(B.current);let O=um(B.current,I||"",G||c||"text",d||""),$=um(B.current,l||"",e||c||"text",t||"");(j=R.current)==null||j.setModel({original:O,modified:$})},[c,l,e,I,G,d,t]),M=E.useCallback(()=>{var O;!J.current&&C.current&&(R.current=B.current.editor.createDiffEditor(C.current,{automaticLayout:!0,...W}),A(),(O=B.current)==null||O.editor.setTheme(a),X(!0),J.current=!0)},[W,a,A]);E.useEffect(()=>{F&&k.current(R.current,B.current)},[F]),E.useEffect(()=>{!H&&!F&&M()},[H,F,M]);function D(){var $,j,S,tI;let O=($=R.current)==null?void 0:$.getModel();n||((j=O==null?void 0:O.original)==null||j.dispose()),b||((S=O==null?void 0:O.modified)==null||S.dispose()),(tI=R.current)==null||tI.dispose()}return Gl.createElement(pO,{width:s,height:m,isEditorReady:F,loading:Z,_ref:C,className:h,wrapperProps:p})}var PkI=OkI,_kI=E.memo(PkI);function qkI(I){let l=E.useRef();return E.useEffect(()=>{l.current=I},[I]),l.current}var $kI=qkI,Z2=new Map;function IxI({defaultValue:I,defaultLanguage:l,defaultPath:c,value:G,language:e,path:d,theme:t="light",line:n,loading:b="Loading...",options:a={},overrideServices:Z={},saveViewState:W=!0,keepCurrentModel:m=!1,width:s="100%",height:h="100%",className:p,wrapperProps:V={},beforeMount:o=uu,onMount:F=uu,onChange:X,onValidate:H=uu}){let[Y,R]=E.useState(!1),[B,C]=E.useState(!0),k=E.useRef(null),N=E.useRef(null),J=E.useRef(null),A=E.useRef(F),M=E.useRef(o),D=E.useRef(),O=E.useRef(G),$=$kI(d),j=E.useRef(!1),S=E.useRef(!1);oO(()=>{let g=hO.init();return g.then(GI=>(k.current=GI)&&C(!1)).catch(GI=>(GI==null?void 0:GI.type)!=="cancelation"&&console.error("Monaco initialization: error:",GI)),()=>N.current?z():g.cancel()}),Md(()=>{var GI,f,nI,VI;let g=um(k.current,I||G||"",l||e||"",d||c||"");g!==((GI=N.current)==null?void 0:GI.getModel())&&(W&&Z2.set($,(f=N.current)==null?void 0:f.saveViewState()),(nI=N.current)==null||nI.setModel(g),W&&((VI=N.current)==null||VI.restoreViewState(Z2.get(d))))},[d],Y),Md(()=>{var g;(g=N.current)==null||g.updateOptions(a)},[a],Y),Md(()=>{!N.current||G===void 0||(N.current.getOption(k.current.editor.EditorOption.readOnly)?N.current.setValue(G):G!==N.current.getValue()&&(S.current=!0,N.current.executeEdits("",[{range:N.current.getModel().getFullModelRange(),text:G,forceMoveMarkers:!0}]),N.current.pushUndoStop(),S.current=!1))},[G],Y),Md(()=>{var GI,f;let g=(GI=N.current)==null?void 0:GI.getModel();g&&e&&((f=k.current)==null||f.editor.setModelLanguage(g,e))},[e],Y),Md(()=>{var g;n!==void 0&&((g=N.current)==null||g.revealLine(n))},[n],Y),Md(()=>{var g;(g=k.current)==null||g.editor.setTheme(t)},[t],Y);let tI=E.useCallback(()=>{var g;if(!(!J.current||!k.current)&&!j.current){M.current(k.current);let GI=d||c,f=um(k.current,G||I||"",l||e||"",GI||"");N.current=(g=k.current)==null?void 0:g.editor.create(J.current,{model:f,automaticLayout:!0,...a},Z),W&&N.current.restoreViewState(Z2.get(GI)),k.current.editor.setTheme(t),n!==void 0&&N.current.revealLine(n),R(!0),j.current=!0}},[I,l,c,G,e,d,a,Z,W,t,n]);E.useEffect(()=>{Y&&A.current(N.current,k.current)},[Y]),E.useEffect(()=>{!B&&!Y&&tI()},[B,Y,tI]),O.current=G,E.useEffect(()=>{var g,GI;Y&&X&&((g=D.current)==null||g.dispose(),D.current=(GI=N.current)==null?void 0:GI.onDidChangeModelContent(f=>{S.current||X(N.current.getValue(),f)}))},[Y,X]),E.useEffect(()=>{if(Y){let g=k.current.editor.onDidChangeMarkers(GI=>{var nI;let f=(nI=N.current.getModel())==null?void 0:nI.uri;if(f&&GI.find(VI=>VI.path===f.path)){let VI=k.current.editor.getModelMarkers({resource:f});H==null||H(VI)}});return()=>{g==null||g.dispose()}}return()=>{}},[Y,H]);function z(){var g,GI;(g=D.current)==null||g.dispose(),m?W&&Z2.set(d,N.current.saveViewState()):(GI=N.current.getModel())==null||GI.dispose(),N.current.dispose()}return Gl.createElement(pO,{width:s,height:h,isEditorReady:Y,loading:b,_ref:J,className:p,wrapperProps:V})}var lxI=IxI;E.memo(lxI);function cxI(I){const[l,c]=Gl.useState("function sum(a, b) {return a + b;}");return E.useEffect(()=>{const G=cb(),e=d=>{d.data.messageId===G&&d.data.type==="readRangeInFile"&&c(d.data.contents)};return window.addEventListener("message",e),Yc("readFile",{filepath:I.filename}),()=>window.removeEventListener("message",e)},[]),v.jsxs("div",{children:[v.jsxs("div",{className:"my-2 px-2 py-1 flex justify-between items-center",style:{backgroundColor:Mc},children:[v.jsx("code",{className:"cursor-pointer",onClick:()=>{Yc("showFile",{filepath:I.filename})},children:I.filename.split("/").pop()}),v.jsxs("div",{className:"flex items-center",children:[v.jsx(le,{text:"Reject",onClick:()=>{},children:v.jsx(KS,{width:"1.3em",height:"1.3em",color:"red"})}),v.jsx(le,{text:"Accept",onClick:()=>{},children:v.jsx(mg,{width:"1.3em",height:"1.3em",color:"lightgreen"})})]})]}),v.jsx(_kI,{theme:"vs-dark",className:"overflow-visible p-1",height:"90px",options:{minimap:{enabled:!1},readOnly:!1,scrollbar:{vertical:"hidden"}},original:l,modified:"function sum(a, b) {return d + c;}"})]})}const GxI=["/Users/natesesti/Desktop/continue/gui/src/hooks/CustomPostHogProvider.tsx","/Users/natesesti/Desktop/continue/gui/src/hooks/CustomPostHogProvider.tsx","/Users/natesesti/Desktop/continue/gui/src/hooks/CustomPostHogProvider.tsx"];function exI(){return v.jsxs("div",{children:[v.jsx("h1",{className:"px-4",children:"Multi-File Edit"}),GxI.map(I=>v.jsx(cxI,{filename:I}))]})}const iO="28px",dxI=LI.div` - margin-top: 16px; - margin: auto; - width: ${iO}; - animation: flash 1.2s infinite ease-in-out; - @keyframes flash { - 0% { - opacity: 0.4; - } - 50% { - opacity: 1; - } - 100% { - opacity: 0.4; - } - } -`;function txI(I){const l=window.vscMediaUrl;return v.jsx(dxI,{children:l?v.jsx("img",{src:`${l}/play_button.png`,width:"22px"}):v.jsx(sg,{width:I.size||iO})})}const nxI=LI(xt)` - background-color: transparent; - color: ${ul}; - border: 1px solid ${ul}; - &:hover { - background-color: ${ul}; - color: black; - } -`,bxI=LI(xt)` - &:hover { - opacity: 0.8; - } -`,axI=LI.input.attrs({type:"range"})` - --webkit-appearance: none; - width: 100%; - background-color: ${Mc}; - outline: none; - border: none; - opacity: 0.7; - -webkit-transition: 0.2s; - transition: opacity 0.2s; - &:hover { - opacity: 1; - } - &::-webkit-slider-runnable-track { - width: 100%; - height: 8px; - cursor: pointer; - background: ${ul}; - border-radius: 4px; - } - &::-webkit-slider-thumb { - -webkit-appearance: none; - appearance: none; - width: 8px; - height: 8px; - cursor: pointer; - margin-top: -3px; - } - &::-moz-range-thumb { - width: 8px; - height: 8px; - cursor: pointer; - margin-top: -3px; } - &:focus { - outline: none; - border: none; + code:not(pre > code) { + font-family: var(--vscode-editor-font-family); + color: #f78383; } -`,ZxI=LI(xt)` - padding: 2px 4px; - margin-left: auto; - margin-right: 4px; - background-color: transparent; - color: ${ec}; - border: 1px solid ${ul}; + + background-color: ${Gn}; + font-family: + var(--vscode-font-family), + system-ui, + -apple-system, + BlinkMacSystemFont, + "Segoe UI", + Roboto, + Oxygen, + Ubuntu, + Cantarell, + "Open Sans", + "Helvetica Neue", + sans-serif; + font-size: ${e=>e.fontSize||nr()}px; + padding-left: 8px; + padding-right: 8px; + color: ${rn}; + + p, + li, + ol, + ul { + line-height: 1.5; + } +`,yR=E.memo(function(t){const[n,r]=r8e({remarkPlugins:[oGe,()=>i=>{p3(i,"code",a=>{a.lang?a.lang.includes(".")&&(a.lang=a.lang.split(".").slice(-1)[0]):a.lang})}],rehypePlugins:[RSe,{},zxe,{}],rehypeReactOptions:{components:{a:({node:i,...a})=>W.jsx("a",{...a,target:"_blank",children:a.children}),pre:({node:i,...a})=>{var l,s,u,c,d;const o=(d=(c=(u=(s=(l=a==null?void 0:a.children)==null?void 0:l[0])==null?void 0:s.props)==null?void 0:u.className)==null?void 0:c.split(" ").find(g=>g.startsWith("language-")))==null?void 0:d.split("-")[1];return t.showCodeBorder?W.jsx(gGe,{language:o,children:W.jsx(MZ,{...a})}):W.jsx(MZ,{...a})},code:({node:i,...a})=>{var o,l;return(o=a.className)!=null&&o.split(" ").includes("hljs")||((l=a.children)==null?void 0:l.length)>1?W.jsx("code",{...a,children:a.children}):W.jsx(sGe,{...a,children:a.children})}}}});return E.useEffect(()=>{r(t.source||"")},[t.source]),W.jsx(fGe,{fontSize:nr(),showBorder:t.showCodeBorder,children:n})}),mGe=Ve.div` + display: grid; + grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); + grid-gap: 2rem; + padding: 1rem; + justify-items: center; + align-items: center; +`,AGe=Ve.div` + border: 1px solid ${rt}; + border-radius: ${jt}; + padding: 4px 8px; + display: flex; + justify-content: center; + align-items: center; + transition: all 0.5s; + + ${e=>e.disabled?` + opacity: 0.5; + `:` &:hover { - background-color: ${ul}; + border: 1px solid #be1b55; + background-color: #be1b5522; + cursor: pointer; } -`;function WxI(){var d;const I=c8(),l=t=>console.log(t),c=Be(),G=Nc(t=>t.state.config);ne();const e=()=>{c("/")};return E.useEffect(()=>{var t;G&&(I.setValue("systemMessage",G.systemMessage),I.setValue("completionOptions.temperature",(t=G.completionOptions)==null?void 0:t.temperature))},[G]),v.jsx(DD,{...I,children:v.jsxs("div",{className:"overflow-y-scroll",children:[v.jsxs("div",{className:"items-center flex sticky top-0",style:{borderBottom:`0.5px solid ${ul}`,backgroundColor:fc},children:[v.jsx(h0,{width:"1.2em",height:"1.2em",onClick:e,className:"inline-block ml-4 cursor-pointer"}),v.jsx("h3",{className:"text-lg font-bold m-2 inline-block",children:"Settings"}),v.jsx(ZxI,{onClick:()=>{Yc("showFile",{filepath:PF()=="windows"?"~\\.continue\\config.json":"~/.continue/config.json"})},children:"Open config.json"})]}),v.jsx("form",{onSubmit:I.handleSubmit(l),children:G?v.jsxs("div",{className:"p-2",children:[v.jsxs("h3",{className:"flex gap-1",children:["System Message",v.jsx(wi,{msg:`Set a system message with information that the LLM should always - keep in mind (e.g. "Please give concise answers. Always respond in - Spanish.")`})]}),v.jsx(I0I,{placeholder:"Enter a system message (e.g. 'Always respond in German')",...I.register("systemMessage")}),v.jsx(nw,{}),v.jsxs("h3",{className:"flex gap-1",children:["Temperature",v.jsx(wi,{msg:`Set temperature to any value between 0 and 1. Higher values will - make the LLM more creative, while lower values will make it more - predictable.`})]}),v.jsxs("div",{className:"flex justify-between mx-16 gap-1",children:[v.jsx("p",{children:"0"}),v.jsx(axI,{type:"range",min:"0",max:"1",step:"0.01",...I.register("completionOptions.temperature")}),v.jsx("p",{children:"1"})]}),v.jsx("div",{className:"text-center",style:{marginTop:"-25px"},children:v.jsx("p",{className:"text-sm text-gray-500",children:I.watch("completionOptions.temperature")||((d=G.completionOptions)==null?void 0:d.temperature)||"-"})}),v.jsx(nw,{})]}):v.jsx(txI,{})}),v.jsx("hr",{}),v.jsxs("div",{className:"px-2",children:[v.jsx("h3",{children:"Appearance"}),v.jsx("p",{children:"Font Size"}),v.jsx(l0I,{type:"number",min:"8",max:"48",step:"1",defaultValue:Fn(),onChange:t=>{localStorage.setItem("fontSize",t.target.value)}})]}),v.jsxs("div",{className:"flex gap-2 justify-end px-4",children:[v.jsx(nxI,{onClick:()=>{c("/")},children:"Cancel"}),v.jsx(bxI,{onClick:e,children:"Save"})]})]})})}const rxI=JT([I=>I.state.config.slashCommands],I=>(I==null?void 0:I.map(l=>({title:`/${l.name}`,description:l.description,type:"slashCommand"})))||[]),mxI=JT([I=>I.state.config.contextProviders],I=>I.filter(l=>l.type==="submenu")||[]),CU={prefix:!0,fuzzy:2};function sxI(){const[I,l]=E.useState({}),[c,G]=E.useState({}),e=Nc(mxI),[d,t]=E.useState(!1);async function n(){return(await new QW().getOpenFiles()).map(m=>({id:m,title:iA(m),description:hNI(m,2),providerTitle:"file"}))}sG("refreshSubmenuItems",async W=>{t(!1)}),sG("updateSubmenuItems",async W=>{const m=new Tw({fields:["title","description"],storeFields:["id","title","description"]});if(m.addAll(W.submenuItems),l(s=>({...s,[W.provider]:m})),W.provider==="file"){const s=await n();G(h=>({...h,file:s}))}else G(s=>({...s,[W.provider]:W.submenuItems.slice(0,6)}))});function b(W,m){I[W]&&I[W].add(m)}E.useEffect(()=>{const W=setInterval(async()=>{const m=await n();G(s=>({...s,file:m}))},2e3);return()=>{clearInterval(W)}},[]),E.useEffect(()=>{e.length===0||d||(t(!0),e.forEach(async W=>{const m=new Tw({fields:["title","description"],storeFields:["id","title","description"]}),s=await hd("context/loadSubmenuItems",{title:W.title});if(m.addAll(s),l(h=>({...h,[W.title]:m})),W.title==="file"){const h=await n();G(p=>({...p,file:h}))}else G(h=>({...h,[W.title]:s.slice(0,6)}))}))},[e,d]);function a(W,m){return W===void 0?Object.keys(I).map(h=>I[h].search(m,CU).map(V=>({...V,providerTitle:h}))).flat().sort((h,p)=>p.score-h.score):I[W]?I[W].search(m,CU).map(s=>({...s,providerTitle:W})):[]}function Z(W,m,s=10){const h=a(W,m);return h.length===0?(c[W]??[]).slice(0,s).map(p=>({...p,providerTitle:W})):h.slice(0,s).map(p=>({id:p.id,title:p.title,description:p.description,providerTitle:p.providerTitle}))}return{getSubmenuContextItems:Z,addItem:b}}const MU={".hljs-comment":["comment"],".hljs-tag":["tag"],".hljs-doctag":["keyword"],".hljs-keyword":["keyword"],".hljs-meta .hljs-keyword":["keyword"],".hljs-template-tag":["keyword"],".hljs-template-variable":["keyword"],".hljs-type":["keyword"],".hljs-variable.language_":["keyword"],".hljs-title":["title","function","class"],".hljs-title.class_":["title","function","class","variable"],".hljs-title.class_.inherited__":["title","function","class","variable"],".hljs-title.function_":["support.function","entity.name.function","title","function","class"],".hljs-built_in":["support.function","entity.name.function","title","function","class"],".hljs-name":["constant"],".hljs-attr":["variable","operator","number"],".hljs-attribute":["attribute","variable","operator","number"],".hljs-literal":["variable","operator","number"],".hljs-meta":["variable","operator","number"],".hljs-number":["constant.numeric","number","variable","operator"],".hljs-operator":["variable","operator","number"],".hljs-variable":["variable","operator","number"],".hljs-selector-attr":["variable","operator","number"],".hljs-selector-class":["variable","operator","number"],".hljs-selector-id":["variable","operator","number"],".hljs-regexp":["string"],".hljs-string":["string"],".hljs-meta .hljs-string":["string"],".hljs-params":["variable","operator","number"]};function fU(I){const l=I.rules||[],c={};l.forEach(({token:e,foreground:d})=>{!d||!e||(c[e]=d)});const G={};return Object.keys(MU).forEach(e=>{const d=MU[e];for(const t of d)if(c[t]){G[e]=c[t];break}}),Object.keys(G).length===0?uxI():G}function uxI(){const l=getComputedStyle(document.body).getPropertyValue("--vscode-editor-background"),{r:c,g:G,b:e}=qmI(l);return(c+G+e)/3>=128?{".hljs-comment":"#008000",".hljs-doctag":"#0000ff",".hljs-keyword":"#0000ff",".hljs-meta .hljs-keyword":"#0000ff",".hljs-template-tag":"#0000ff",".hljs-template-variable":"#0000ff",".hljs-type":"#0000ff",".hljs-variable.language_":"#0000ff",".hljs-title.class_":"#001080",".hljs-title.class_.inherited__":"#001080",".hljs-title.function_":"#795E26",".hljs-built_in":"#795E26",".hljs-attr":"#001080",".hljs-attribute":"#001080",".hljs-literal":"#001080",".hljs-meta":"#001080",".hljs-number":"#098658",".hljs-operator":"#001080",".hljs-variable":"#001080",".hljs-selector-attr":"#001080",".hljs-selector-class":"#001080",".hljs-selector-id":"#001080",".hljs-regexp":"#a31515",".hljs-string":"#a31515",".hljs-meta .hljs-string":"#a31515",".hljs-params":"#001080"}:{".hljs-comment":"#6A9955",".hljs-doctag":"#569cd6",".hljs-keyword":"#569cd6",".hljs-meta .hljs-keyword":"#569cd6",".hljs-template-tag":"#569cd6",".hljs-template-variable":"#569cd6",".hljs-type":"#569cd6",".hljs-variable.language_":"#569cd6",".hljs-title.class_":"#9CDCFE",".hljs-title.class_.inherited__":"#9CDCFE",".hljs-title.function_":"#DCDCAA",".hljs-built_in":"#DCDCAA",".hljs-attr":"#9CDCFE",".hljs-attribute":"#9CDCFE",".hljs-literal":"#9CDCFE",".hljs-meta":"#9CDCFE",".hljs-number":"#b5cea8",".hljs-operator":"#9CDCFE",".hljs-variable":"#9CDCFE",".hljs-selector-attr":"#9CDCFE",".hljs-selector-class":"#9CDCFE",".hljs-selector-id":"#9CDCFE",".hljs-regexp":"#ce9178",".hljs-string":"#ce9178",".hljs-meta .hljs-string":"#ce9178",".hljs-params":"#9CDCFE"}}function hxI(){const[I,l]=E.useState(fU(window.fullColorTheme||{}));return sG("setTheme",async c=>{window.fullColorTheme=c.theme,l(fU(c.theme))}),I}const pxI=E.createContext(null),tH={didCatch:!1,error:null};class oxI extends E.Component{constructor(l){super(l),this.resetErrorBoundary=this.resetErrorBoundary.bind(this),this.state=tH}static getDerivedStateFromError(l){return{didCatch:!0,error:l}}resetErrorBoundary(){const{error:l}=this.state;if(l!==null){for(var c,G,e=arguments.length,d=new Array(e),t=0;t0&&arguments[0]!==void 0?arguments[0]:[],l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[];return I.length!==l.length||I.some((c,G)=>!Object.is(c,l[G]))}const ixI=LI.div` + `} +`;function CGe(){var s,u,c,d,g;sm();const e=B9(),{providerName:t}=tce(),n=E.useContext(Zn),r=Zr(),i=Hr(),[a,o]=E.useState(void 0);E.useEffect(()=>{t&&o(Ac[t])},[t]);const l=E.useCallback(()=>{var h;return((h=a==null?void 0:a.collectInputFor)==null?void 0:h.some(m=>{if(!m.required)return!1;const A=e.watch(m.key);return typeof A>"u"||typeof A=="string"&&A===""}))||!1},[a,e]);return W.jsx(m9,{...e,children:W.jsxs("div",{className:"overflow-y-scroll",children:[W.jsxs("div",{className:"items-center flex m-0 p-0 sticky top-0",style:{borderBottom:`0.5px solid ${rt}`,backgroundColor:Gn,zIndex:2},children:[W.jsx(hu,{width:"1.2em",height:"1.2em",onClick:()=>i("/addModel"),className:"inline-block ml-4 cursor-pointer"}),W.jsx("h3",{className:"text-lg font-bold m-2 inline-block",children:"Configure provider"})]}),W.jsxs("div",{className:"px-2",children:[W.jsxs("div",{style:{display:"flex",alignItems:"center"},children:[window.vscMediaUrl&&(a==null?void 0:a.icon)&&W.jsx("img",{src:`${window.vscMediaUrl}/logos/${a==null?void 0:a.icon}`,height:"24px",style:{marginRight:"10px"}}),W.jsx("h2",{children:a==null?void 0:a.title})]}),(s=a==null?void 0:a.tags)==null?void 0:s.map((h,m)=>W.jsx(wU,{tag:h},m)),W.jsx(yR,{className:"mt-2",source:(a==null?void 0:a.longDescription)||(a==null?void 0:a.description)}),W.jsx("br",{}),(((u=a==null?void 0:a.collectInputFor)==null?void 0:u.filter(h=>h.required).length)||0)>0&&W.jsxs(W.Fragment,{children:[W.jsx("h3",{className:"mb-2",children:"Enter required parameters"}),(c=a==null?void 0:a.collectInputFor)==null?void 0:c.filter(h=>h.required).map((h,m)=>W.jsxs("div",{className:"mb-2",children:[W.jsx("label",{htmlFor:h.key,children:h.label}),W.jsx(Cl,{type:h.inputType,id:h.key,className:"border-2 border-gray-200 rounded-md p-2 m-2",placeholder:h.label,defaultValue:h.defaultValue,min:h.min,max:h.max,step:h.step,...e.register(h.key,{required:!0})})]},m))]}),(((d=a==null?void 0:a.collectInputFor)==null?void 0:d.filter(h=>!h.required).length)||0)>0&&W.jsxs("details",{children:[W.jsx("summary",{className:"mb-2 cursor-pointer",children:W.jsx("b",{children:"Advanced (optional)"})}),(g=a==null?void 0:a.collectInputFor)==null?void 0:g.map((h,m)=>h.required?null:W.jsxs("div",{children:[W.jsx("label",{htmlFor:h.key,children:h.label}),W.jsx(Cl,{type:h.inputType,id:h.key,className:"border-2 border-gray-200 rounded-md p-2 m-2",placeholder:h.label,defaultValue:h.defaultValue,min:h.min,max:h.max,step:h.step,...e.register(h.key,{required:!1})})]},m))]}),W.jsx("h3",{className:"mb-2",children:"Select a model preset"})]}),W.jsx(mGe,{children:a==null?void 0:a.packages.map((h,m)=>W.jsx(lF,{disabled:l(),title:h.title,description:h.description,tags:h.tags,refUrl:h.refUrl,icon:h.icon||a.icon,dimensions:h.dimensions,onClick:(A,B)=>{var Q;if(l())return;let C={};for(const F of a.collectInputFor||[]){const K=e.watch(F.key);K===""||K===void 0||K===null||(C=p1e(C,{[F.key]:F.inputType==="text"?K:parseFloat(K)}))}const b={...h.params,...a.params,...yh.merge({},...((Q=h.dimensions)==null?void 0:Q.map((F,K)=>B!=null&&B[K]?{...F.options[B[K]]}:{}))||[]),...C,provider:a.provider};n.post("config/addModel",{model:b}),r(B1({title:b.title,force:!0})),i("/")}},m))})]})})}const BGe=Ve.div` + padding: 8px 12px; + border-radius: ${jt}; + border: 1px solid ${rt}; + margin-top: 1rem; + margin-bottom: 1rem; +`,TZ=Ve.div` display: grid; - grid-template-columns: 1fr 1fr; - grid-gap: 8px; + grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); + grid-gap: 1.25rem; + justify-items: center; + align-items: center; +`,wGe={"Open AI":[Ct.gpt4turbo,Ct.gpt4o,Ct.gpt35turbo],Anthropic:[Ct.claude3Opus,Ct.claude3Sonnet,Ct.claude3Haiku],Mistral:[Ct.codestral,Ct.mistral7b,Ct.mistral8x7b,Ct.mistral8x22b,Ct.mistralSmall,Ct.mistralLarge],Cohere:[Ct.commandR,Ct.commandRPlus],Gemini:[Ct.geminiPro,Ct.gemini15Pro,Ct.gemini15Flash],"Open Source":[Ct.llama3Chat,Ct.mistralOs,Ct.deepseek]};function bGe(){const e=Hr(),t=Zr();sm();const n=E.useContext(Zn),[r,i]=ct.useState(!0);return W.jsxs("div",{className:"overflow-y-scroll px-6 mb-6",children:[W.jsxs("div",{className:"items-center flex m-0 p-0 sticky top-0",style:{borderBottom:`0.5px solid ${rt}`,backgroundColor:Gn,zIndex:2},children:[W.jsx(hu,{width:"1.2em",height:"1.2em",onClick:()=>e("/"),className:"inline-block ml-4 cursor-pointer"}),W.jsx("h3",{className:"text-lg font-bold m-2 inline-block",children:"Add a new model"})]}),W.jsx("br",{}),W.jsxs(BGe,{children:["To add a new model you can either:",W.jsxs("ul",{children:[W.jsx("li",{children:"Start by selecting and configuring a provider, then choosing your model"}),W.jsx("li",{children:"Select a specific model directly"})]}),W.jsx(kce,{target:"_blank",to:"https://docs.continue.dev/model-setup/overview",children:"Visit our setup overview docs"})," ","to learn more."]}),W.jsx("div",{className:"col-span-full py-4",children:W.jsx(iO,{selected:r,optionOne:"Start with a provider",optionTwo:"Select a specific model",onClick:()=>{i(a=>!a)}})}),r?W.jsxs(W.Fragment,{children:[W.jsxs("div",{className:"text-center leading-relaxed col-span-full mb-8",children:[W.jsx("h2",{className:"mb-0",children:"Providers"}),W.jsxs("p",{className:"mt-2",children:["Select a provider below, or configure your own in"," ",W.jsx("code",{children:"config.json"})]})]}),W.jsx(TZ,{children:Object.entries(Ac).map(([a,o],l)=>W.jsx(lF,{title:o.title,description:o.description,tags:o.tags,icon:o.icon,refUrl:`https://docs.continue.dev/reference/Model%20Providers/${o.refPage||o.provider.toLowerCase()}`,onClick:s=>{console.log(`/addModel/provider/${a}`),e(`/addModel/provider/${a}`)}},`${a}-${l}`))})]}):W.jsxs(W.Fragment,{children:[W.jsxs("div",{className:"text-center leading-relaxed col-span-full",children:[W.jsx("h2",{className:"mb-0",children:"Models"}),W.jsxs("p",{className:"mt-2",children:["Select a model from the most popular options below, or configure your own in ",W.jsx("code",{children:"config.json"})]})]}),Object.entries(wGe).map(([a,o])=>W.jsxs("div",{className:"flex flex-col mb-6",children:[W.jsxs("div",{className:"w-full items-center mb-4",children:[W.jsx("h3",{className:"",children:a}),W.jsx("hr",{style:{height:"0px",width:"100%",color:rt,border:`1px solid ${rt}`,borderRadius:"2px"}})]}),W.jsx(TZ,{children:o.map(l=>W.jsx(lF,{title:l.title,description:l.description,tags:l.tags,icon:l.icon,dimensions:l.dimensions,providerOptions:l.providerOptions,onClick:(s,u,c)=>{var g;const d={...l.params,...yh.merge({},...((g=l.dimensions)==null?void 0:g.map((h,m)=>u!=null&&u[m]?{...h.options[u[m]]}:{}))||[]),provider:Ac[c].provider};n.post("config/addModel",{model:d}),t(B1({title:d.title,force:!0})),e("/")}}))})]}))]}),W.jsx(AGe,{className:"w-full mt-12",disabled:!1,onClick:a=>{n.post("openConfigJson",void 0)},children:W.jsxs("h3",{className:"text-center my-2",children:[W.jsx(t3,{className:"inline-block h-5 w-5 align-middle px-4"}),"Open config.json"]})})]})}const vGe=Ve(Ea)` + margin: auto; + margin-top: 8px; + margin-bottom: 16px; + display: grid; + width: 130px; + grid-template-columns: 22px 1fr; align-items: center; -`;function FxI(){const I=Be(),[l,c]=Gl.useState(""),G=ne();return v.jsxs("div",{className:"p-4",children:[v.jsx("h3",{children:"Free Trial Limit Reached"}),v.jsxs("p",{children:["You've reached the free trial limit of 250 free inputs with Continue's OpenAI API key. To keep using Continue, you can either use your own API key, or use a local LLM. To read more about the options, see our"," ",v.jsx("a",{href:"https://continue.dev/docs/customization/models",target:"_blank",children:"documentation"}),". If you're just looking for fastest way to keep going, type '/config' to open your Continue config file and paste your API key into the OpenAIFreeTrial object."]}),v.jsx(Tu,{type:"text",placeholder:"Enter your OpenAI API key",value:l,onChange:e=>c(e.target.value)}),v.jsxs(ixI,{children:[v.jsx(xt,{onClick:()=>{G(hn(!1)),I("/models")},children:"Select model"}),v.jsx(xt,{disabled:!l,onClick:()=>{Yc("config/addOpenAiKey",l),G(hn(!1)),G(Ih("GPT-4"))},children:"Use my API key"})]})]})}LI.div` + background-color: ${e=>`${e.color||"#be1b55"}${e.showStop?"33":""}`}; + + opacity: ${e=>e.isDisabled?.5:1}; + + border: 1px solid + ${e=>e.showStop?e.color||"#be1b55":"transparent"}; + + cursor: ${e=>e.isDisabled?"default":"pointer"}; + + &:hover:enabled { + background-color: ${e=>`${e.color||"#be1b55"}${e.showStop?"33":""}`}; + ${e=>e.isDisabled?"cursor: default;":` + opacity: 0.7; + `} + } +`;function lP(e){return W.jsx(vGe,{showStop:e.showStop,hidden:e.hidden,style:{fontSize:`${nr()-4}px`},className:"m-auto",onClick:e.disabled?void 0:e.onClick,isDisabled:e.disabled,children:e.showStop?W.jsxs(W.Fragment,{children:[W.jsx(xde,{width:"18px",height:"18px"}),"STOP"]}):W.jsxs(W.Fragment,{children:[window.vscMediaUrl?W.jsx("img",{src:`${window.vscMediaUrl}/play_button.png`,height:"18px"}):W.jsx(wE,{width:"18px",height:"18px"}),"CONTINUE"]})})}function KGe(){const e=XV();console.error(e);const t=Zr(),n=Hr();return W.jsxs("div",{id:"error-page",className:"text-center",style:{backgroundColor:Gn},children:[W.jsx("h1",{children:"Error in Continue React App"}),W.jsx("p",{children:W.jsx("i",{children:e.statusText||e.message})}),W.jsx("br",{}),W.jsx("p",{children:"Click below to Continue"}),W.jsx("br",{}),W.jsx(lP,{disabled:!1,showStop:!1,onClick:()=>{t(Qf()),localStorage.removeItem("persist:root"),n("/")}})]})}const QGe=E.createContext(null),oQ={didCatch:!1,error:null};class WGe extends E.Component{constructor(t){super(t),this.resetErrorBoundary=this.resetErrorBoundary.bind(this),this.state=oQ}static getDerivedStateFromError(t){return{didCatch:!0,error:t}}resetErrorBoundary(){const{error:t}=this.state;if(t!==null){for(var n,r,i=arguments.length,a=new Array(i),o=0;o0&&arguments[0]!==void 0?arguments[0]:[],t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[];return e.length!==t.length||e.some((n,r)=>!Object.is(n,t[r]))}Ve.div` display: flex; gap: 2px; align-items: center; - background-color: ${fc}; - box-shadow: 1px 1px 10px ${fc}; - border-radius: ${Pl}; + background-color: ${Gn}; + box-shadow: 1px 1px 10px ${Gn}; + border-radius: ${jt}; z-index: 100; position: absolute; right: 8px; top: 16px; height: 0; -`;const NxI=LI.div` +`;const FGe=Ve.div` padding: 2px; padding-right: 0px; - background-color: ${I=>I.isUserInput?Mc:fc}; - font-size: ${I=>I.fontSize||Fn()}px; - border-radius: ${Pl}; + background-color: ${e=>e.isUserInput?yn:Gn}; + font-size: ${e=>e.fontSize||nr()}px; + border-radius: ${jt}; overflow: hidden; -`;function RxI(I){const[l,c]=E.useState(!1),G=I.item.message.role==="user",e=Nc(Z=>Z.state.active),[d,t]=E.useState(void 0),n=Z=>{var W;if(t(Z),(W=I.item.promptLogs)!=null&&W.length)for(const[m,s]of I.item.promptLogs)Yc("devdata/log",{tableName:"chat",data:{prompt:m,completion:s,feedback:Z}})},[b,a]=E.useState(!1);return E.useEffect(()=>{if(!e){const Z=Ne(I.item.message.content).trim();[".","?","!","```"].some(m=>Z.endsWith(m))||/\p{Emoji}/u.test(Z.slice(-2))?a(!1):a(!0)}},[I.item.message.content,e]),v.jsx("div",{onMouseEnter:()=>{c(!0)},onMouseLeave:()=>{c(!1)},children:v.jsxs("div",{className:"relative",children:[v.jsx(NxI,{hidden:!I.open,isUserInput:G,fontSize:Fn(),children:v.jsx(zN,{source:Ne(I.item.message.content),showCodeBorder:!0})}),v.jsx("div",{className:"h-2"}),(l||typeof d<"u")&&!e&&v.jsxs("div",{className:"flex items-center gap-2 right-2 absolute -bottom-1",style:{zIndex:200},children:[b&&v.jsx(le,{text:"Continue generation",onClick:Z=>{I.onContinueGeneration()},children:v.jsx(MZI,{color:ul,width:"1.2em",height:"1.2em"})}),v.jsx(Ri,{text:Ne(I.item.message.content),color:ul}),v.jsx(le,{text:"Regenerate",onClick:Z=>{I.onRetry()},children:v.jsx(BZI,{color:ul,width:"1.2em",height:"1.2em"})}),d===!1||v.jsx(le,{text:"Helpful",children:v.jsx(JWI,{className:"cursor-pointer hover:text-green-500"+(d===!0?" text-green-500":""),width:"1.2em",height:"1.2em",color:ul,onClick:()=>{n(!0)}})}),d===!0||v.jsx(le,{text:"Unhelpful",children:v.jsx(gWI,{className:"cursor-pointer hover:text-red-500"+(d===!1?" text-red-500":""),width:"1.2em",height:"1.2em",color:ul,onClick:()=>{n(!1)}})})]})]})})}const YxI=LI.div` - background-color: ${fc}; +`;function EGe(e){const[t,n]=E.useState(!1),r=e.item.message.role==="user",i=en(h=>h.state.active),a=E.useContext(Zn),[o,l]=E.useState(void 0),s=en(h=>h.state.sessionId),u=h=>{var m;if(l(h),(m=e.item.promptLogs)!=null&&m.length)for(const A of e.item.promptLogs)a.post("devdata/log",{tableName:"chat",data:{...A,feedback:h,sessionId:s}})},[c,d]=E.useState(!1),g=iP();return E.useEffect(()=>{if(!i){const h=$l(e.item.message.content).trim();[".","?","!","```"].some(A=>h.endsWith(A))||/\p{Emoji}/u.test(h.slice(-2))?d(!1):d(!0)}},[e.item.message.content,i]),W.jsx("div",{onMouseEnter:()=>{n(!0)},onMouseLeave:()=>{n(!1)},children:W.jsxs("div",{className:"relative",children:[W.jsx(FGe,{hidden:!e.open,isUserInput:r,fontSize:nr(),children:g!=null&&g.displayRawMarkdown?W.jsx("pre",{className:"whitespace-pre-wrap break-words p-4 max-w-full overflow-x-auto",style:{fontSize:nr()-2},children:$l(e.item.message.content)}):W.jsx(yR,{source:$l(e.item.message.content),showCodeBorder:!0})}),W.jsx("div",{className:"h-2"}),(t||typeof o<"u")&&!i&&W.jsxs("div",{className:"flex items-center gap-2 right-2 absolute -bottom-1",style:{zIndex:200},children:[c&&W.jsx(Vr,{text:"Continue generation",onClick:h=>{e.onContinueGeneration()},children:W.jsx(t0e,{color:rt,width:"1.2em",height:"1.2em"})}),W.jsx(VB,{text:$l(e.item.message.content),color:rt}),W.jsx(Vr,{text:"Regenerate",onClick:h=>{e.onRetry()},children:W.jsx(Pce,{color:rt,width:"1.2em",height:"1.2em"})}),o===!1||W.jsx(Vr,{text:"Helpful",children:W.jsx(nde,{className:"cursor-pointer hover:text-green-500"+(o===!0?" text-green-500":""),width:"1.2em",height:"1.2em",color:rt,onClick:()=>{u(!0)}})}),o===!0||W.jsx(Vr,{text:"Unhelpful",children:W.jsx(q0e,{className:"cursor-pointer hover:text-red-500"+(o===!1?" text-red-500":""),width:"1.2em",height:"1.2em",color:rt,onClick:()=>{u(!1)}})})]})]})})}const RGe=Ve.div` + background-color: ${Gn}; display: flex; justify-content: center; align-items: center; @@ -1523,17 +1215,17 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho flex-grow: 0; margin-left: 13px; cursor: pointer; -`,XxI=LI.div` +`,SGe=Ve.div` margin-top: 8px; margin-bottom: 8px; margin-left: 8px; display: flex; align-items: center; gap: 4px; - font-size: ${I=>I.fontSize||Fn()}px; + font-size: ${e=>e.fontSize||nr()}px; min-height: 16px; -`;function HxI(I){return I.open?I.children:v.jsxs(XxI,{fontSize:Fn(),children:[v.jsx(YxI,{onClick:()=>{I.onToggle()},children:I.iconElement||v.jsx(zS,{width:"16px",height:"16px"})}),v.jsxs("span",{style:{color:ul},children:[I.item.message.role," Message"]})]})}function QxI(I){const l=I.name.split("(")[1].split(")")[0].split("-");return{filepath:I.description.split(" (")[0],range:{start:{line:parseInt(l[0]),character:0},end:{line:parseInt(l[1]),character:0}},contents:I.content}}/*! @license DOMPurify 3.0.11 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.0.11/LICENSE */const{entries:FO,setPrototypeOf:KU,isFrozen:wxI,getPrototypeOf:ExI,getOwnPropertyDescriptor:vxI}=Object;let{freeze:qe,seal:Ct,create:NO}=Object,{apply:RE,construct:YE}=typeof Reflect<"u"&&Reflect;qe||(qe=function(l){return l});Ct||(Ct=function(l){return l});RE||(RE=function(l,c,G){return l.apply(c,G)});YE||(YE=function(l,c){return new l(...c)});const W2=$d(Array.prototype.forEach),LU=$d(Array.prototype.pop),Qs=$d(Array.prototype.push),$2=$d(String.prototype.toLowerCase),nH=$d(String.prototype.toString),SU=$d(String.prototype.match),ws=$d(String.prototype.replace),gxI=$d(String.prototype.indexOf),AxI=$d(String.prototype.trim),$t=$d(Object.prototype.hasOwnProperty),kd=$d(RegExp.prototype.test),Es=yxI(TypeError);function $d(I){return function(l){for(var c=arguments.length,G=new Array(c>1?c-1:0),e=1;e2&&arguments[2]!==void 0?arguments[2]:$2;KU&&KU(I,null);let G=l.length;for(;G--;){let e=l[G];if(typeof e=="string"){const d=c(e);d!==e&&(wxI(l)||(l[G]=d),e=d)}I[e]=!0}return I}function JxI(I){for(let l=0;l/gm),UxI=Ct(/\${[\w\W]*}/gm),CxI=Ct(/^data-[\-\w.\u00B7-\uFFFF]/),MxI=Ct(/^aria-[\-\w]+$/),RO=Ct(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),fxI=Ct(/^(?:\w+script|data):/i),KxI=Ct(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),YO=Ct(/^html$/i),LxI=Ct(/^[a-z][.\w]*(-[.\w]+)+$/i);var PU=Object.freeze({__proto__:null,MUSTACHE_EXPR:xxI,ERB_EXPR:zxI,TMPLIT_EXPR:UxI,DATA_ATTR:CxI,ARIA_ATTR:MxI,IS_ALLOWED_URI:RO,IS_SCRIPT_OR_DATA:fxI,ATTR_WHITESPACE:KxI,DOCTYPE_NAME:YO,CUSTOM_ELEMENT:LxI});const SxI=function(){return typeof window>"u"?null:window},TxI=function(l,c){if(typeof l!="object"||typeof l.createPolicy!="function")return null;let G=null;const e="data-tt-policy-suffix";c&&c.hasAttribute(e)&&(G=c.getAttribute(e));const d="dompurify"+(G?"#"+G:"");try{return l.createPolicy(d,{createHTML(t){return t},createScriptURL(t){return t}})}catch{return console.warn("TrustedTypes policy "+d+" could not be created."),null}};function XO(){let I=arguments.length>0&&arguments[0]!==void 0?arguments[0]:SxI();const l=pl=>XO(pl);if(l.version="3.0.11",l.removed=[],!I||!I.document||I.document.nodeType!==9)return l.isSupported=!1,l;let{document:c}=I;const G=c,e=G.currentScript,{DocumentFragment:d,HTMLTemplateElement:t,Node:n,Element:b,NodeFilter:a,NamedNodeMap:Z=I.NamedNodeMap||I.MozNamedAttrMap,HTMLFormElement:W,DOMParser:m,trustedTypes:s}=I,h=b.prototype,p=r2(h,"cloneNode"),V=r2(h,"nextSibling"),o=r2(h,"childNodes"),F=r2(h,"parentNode");if(typeof t=="function"){const pl=c.createElement("template");pl.content&&pl.content.ownerDocument&&(c=pl.content.ownerDocument)}let X,H="";const{implementation:Y,createNodeIterator:R,createDocumentFragment:B,getElementsByTagName:C}=c,{importNode:k}=G;let N={};l.isSupported=typeof FO=="function"&&typeof F=="function"&&Y&&Y.createHTMLDocument!==void 0;const{MUSTACHE_EXPR:J,ERB_EXPR:A,TMPLIT_EXPR:M,DATA_ATTR:D,ARIA_ATTR:O,IS_SCRIPT_OR_DATA:$,ATTR_WHITESPACE:j,CUSTOM_ELEMENT:S}=PU;let{IS_ALLOWED_URI:tI}=PU,z=null;const g=mc({},[...TU,...bH,...aH,...ZH,...jU]);let GI=null;const f=mc({},[...DU,...WH,...OU,...m2]);let nI=Object.seal(NO(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),VI=null,q=null,fI=!0,RI=!0,cl=!1,OI=!0,PI=!1,_I=!1,tl=!1,bl=!1,Il=!1,Fl=!1,al=!1,P=!0,eI=!1;const uI="user-content-";let wI=!0,YI=!1,HI={},NI=null;const bI=mc({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]);let gI=null;const oI=mc({},["audio","video","img","source","image","track"]);let QI=null;const dI=mc({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),xI="http://www.w3.org/1998/Math/MathML",Wl="http://www.w3.org/2000/svg",nl="http://www.w3.org/1999/xhtml";let Hl=nl,_=!1,FI=null;const CI=mc({},[xI,Wl,nl],nH);let ll=null;const Zl=["application/xhtml+xml","text/html"],vl="text/html";let kl=null,ql=null;const dG=c.createElement("form"),ZI=function(rI){return rI instanceof RegExp||rI instanceof Function},pI=function(){let rI=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(!(ql&&ql===rI)){if((!rI||typeof rI!="object")&&(rI={}),rI=qZ(rI),ll=Zl.indexOf(rI.PARSER_MEDIA_TYPE)===-1?vl:rI.PARSER_MEDIA_TYPE,kl=ll==="application/xhtml+xml"?nH:$2,z=$t(rI,"ALLOWED_TAGS")?mc({},rI.ALLOWED_TAGS,kl):g,GI=$t(rI,"ALLOWED_ATTR")?mc({},rI.ALLOWED_ATTR,kl):f,FI=$t(rI,"ALLOWED_NAMESPACES")?mc({},rI.ALLOWED_NAMESPACES,nH):CI,QI=$t(rI,"ADD_URI_SAFE_ATTR")?mc(qZ(dI),rI.ADD_URI_SAFE_ATTR,kl):dI,gI=$t(rI,"ADD_DATA_URI_TAGS")?mc(qZ(oI),rI.ADD_DATA_URI_TAGS,kl):oI,NI=$t(rI,"FORBID_CONTENTS")?mc({},rI.FORBID_CONTENTS,kl):bI,VI=$t(rI,"FORBID_TAGS")?mc({},rI.FORBID_TAGS,kl):{},q=$t(rI,"FORBID_ATTR")?mc({},rI.FORBID_ATTR,kl):{},HI=$t(rI,"USE_PROFILES")?rI.USE_PROFILES:!1,fI=rI.ALLOW_ARIA_ATTR!==!1,RI=rI.ALLOW_DATA_ATTR!==!1,cl=rI.ALLOW_UNKNOWN_PROTOCOLS||!1,OI=rI.ALLOW_SELF_CLOSE_IN_ATTR!==!1,PI=rI.SAFE_FOR_TEMPLATES||!1,_I=rI.WHOLE_DOCUMENT||!1,Il=rI.RETURN_DOM||!1,Fl=rI.RETURN_DOM_FRAGMENT||!1,al=rI.RETURN_TRUSTED_TYPE||!1,bl=rI.FORCE_BODY||!1,P=rI.SANITIZE_DOM!==!1,eI=rI.SANITIZE_NAMED_PROPS||!1,wI=rI.KEEP_CONTENT!==!1,YI=rI.IN_PLACE||!1,tI=rI.ALLOWED_URI_REGEXP||RO,Hl=rI.NAMESPACE||nl,nI=rI.CUSTOM_ELEMENT_HANDLING||{},rI.CUSTOM_ELEMENT_HANDLING&&ZI(rI.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(nI.tagNameCheck=rI.CUSTOM_ELEMENT_HANDLING.tagNameCheck),rI.CUSTOM_ELEMENT_HANDLING&&ZI(rI.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(nI.attributeNameCheck=rI.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),rI.CUSTOM_ELEMENT_HANDLING&&typeof rI.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements=="boolean"&&(nI.allowCustomizedBuiltInElements=rI.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),PI&&(RI=!1),Fl&&(Il=!0),HI&&(z=mc({},jU),GI=[],HI.html===!0&&(mc(z,TU),mc(GI,DU)),HI.svg===!0&&(mc(z,bH),mc(GI,WH),mc(GI,m2)),HI.svgFilters===!0&&(mc(z,aH),mc(GI,WH),mc(GI,m2)),HI.mathMl===!0&&(mc(z,ZH),mc(GI,OU),mc(GI,m2))),rI.ADD_TAGS&&(z===g&&(z=qZ(z)),mc(z,rI.ADD_TAGS,kl)),rI.ADD_ATTR&&(GI===f&&(GI=qZ(GI)),mc(GI,rI.ADD_ATTR,kl)),rI.ADD_URI_SAFE_ATTR&&mc(QI,rI.ADD_URI_SAFE_ATTR,kl),rI.FORBID_CONTENTS&&(NI===bI&&(NI=qZ(NI)),mc(NI,rI.FORBID_CONTENTS,kl)),wI&&(z["#text"]=!0),_I&&mc(z,["html","head","body"]),z.table&&(mc(z,["tbody"]),delete VI.tbody),rI.TRUSTED_TYPES_POLICY){if(typeof rI.TRUSTED_TYPES_POLICY.createHTML!="function")throw Es('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof rI.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw Es('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');X=rI.TRUSTED_TYPES_POLICY,H=X.createHTML("")}else X===void 0&&(X=TxI(s,e)),X!==null&&typeof H=="string"&&(H=X.createHTML(""));qe&&qe(rI),ql=rI}},sI=mc({},["mi","mo","mn","ms","mtext"]),EI=mc({},["foreignobject","desc","title","annotation-xml"]),dl=mc({},["title","style","font","a","script"]),Al=mc({},[...bH,...aH,...BxI]),AI=mc({},[...ZH,...kxI]),KI=function(rI){let JI=F(rI);(!JI||!JI.tagName)&&(JI={namespaceURI:Hl,tagName:"template"});const ml=$2(rI.tagName),dc=$2(JI.tagName);return FI[rI.namespaceURI]?rI.namespaceURI===Wl?JI.namespaceURI===nl?ml==="svg":JI.namespaceURI===xI?ml==="svg"&&(dc==="annotation-xml"||sI[dc]):!!Al[ml]:rI.namespaceURI===xI?JI.namespaceURI===nl?ml==="math":JI.namespaceURI===Wl?ml==="math"&&EI[dc]:!!AI[ml]:rI.namespaceURI===nl?JI.namespaceURI===Wl&&!EI[dc]||JI.namespaceURI===xI&&!sI[dc]?!1:!AI[ml]&&(dl[ml]||!Al[ml]):!!(ll==="application/xhtml+xml"&&FI[rI.namespaceURI]):!1},zI=function(rI){Qs(l.removed,{element:rI});try{rI.parentNode.removeChild(rI)}catch{rI.remove()}},Ql=function(rI,JI){try{Qs(l.removed,{attribute:JI.getAttributeNode(rI),from:JI})}catch{Qs(l.removed,{attribute:null,from:JI})}if(JI.removeAttribute(rI),rI==="is"&&!GI[rI])if(Il||Fl)try{zI(JI)}catch{}else try{JI.setAttribute(rI,"")}catch{}},_l=function(rI){let JI=null,ml=null;if(bl)rI=""+rI;else{const yl=SU(rI,/^[\r\n\t ]+/);ml=yl&&yl[0]}ll==="application/xhtml+xml"&&Hl===nl&&(rI=''+rI+"");const dc=X?X.createHTML(rI):rI;if(Hl===nl)try{JI=new m().parseFromString(dc,ll)}catch{}if(!JI||!JI.documentElement){JI=Y.createDocument(Hl,"template",null);try{JI.documentElement.innerHTML=_?H:dc}catch{}}const yc=JI.body||JI.documentElement;return rI&&ml&&yc.insertBefore(c.createTextNode(ml),yc.childNodes[0]||null),Hl===nl?C.call(JI,_I?"html":"body")[0]:_I?JI.documentElement:yc},gl=function(rI){return R.call(rI.ownerDocument||rI,rI,a.SHOW_ELEMENT|a.SHOW_COMMENT|a.SHOW_TEXT|a.SHOW_PROCESSING_INSTRUCTION|a.SHOW_CDATA_SECTION,null)},$l=function(rI){return rI instanceof W&&(typeof rI.nodeName!="string"||typeof rI.textContent!="string"||typeof rI.removeChild!="function"||!(rI.attributes instanceof Z)||typeof rI.removeAttribute!="function"||typeof rI.setAttribute!="function"||typeof rI.namespaceURI!="string"||typeof rI.insertBefore!="function"||typeof rI.hasChildNodes!="function")},bc=function(rI){return typeof n=="function"&&rI instanceof n},ac=function(rI,JI,ml){N[rI]&&W2(N[rI],dc=>{dc.call(l,JI,ml,ql)})},Sl=function(rI){let JI=null;if(ac("beforeSanitizeElements",rI,null),$l(rI))return zI(rI),!0;const ml=kl(rI.nodeName);if(ac("uponSanitizeElement",rI,{tagName:ml,allowedTags:z}),rI.hasChildNodes()&&!bc(rI.firstElementChild)&&kd(/<[/\w]/g,rI.innerHTML)&&kd(/<[/\w]/g,rI.textContent)||rI.nodeType===7)return zI(rI),!0;if(!z[ml]||VI[ml]){if(!VI[ml]&&Xn(ml)&&(nI.tagNameCheck instanceof RegExp&&kd(nI.tagNameCheck,ml)||nI.tagNameCheck instanceof Function&&nI.tagNameCheck(ml)))return!1;if(wI&&!NI[ml]){const dc=F(rI)||rI.parentNode,yc=o(rI)||rI.childNodes;if(yc&&dc){const yl=yc.length;for(let Ll=yl-1;Ll>=0;--Ll)dc.insertBefore(p(yc[Ll],!0),V(rI))}}return zI(rI),!0}return rI instanceof b&&!KI(rI)||(ml==="noscript"||ml==="noembed"||ml==="noframes")&&kd(/<\/no(script|embed|frames)/i,rI.innerHTML)?(zI(rI),!0):(PI&&rI.nodeType===3&&(JI=rI.textContent,W2([J,A,M],dc=>{JI=ws(JI,dc," ")}),rI.textContent!==JI&&(Qs(l.removed,{element:rI.cloneNode()}),rI.textContent=JI)),ac("afterSanitizeElements",rI,null),!1)},be=function(rI,JI,ml){if(P&&(JI==="id"||JI==="name")&&(ml in c||ml in dG))return!1;if(!(RI&&!q[JI]&&kd(D,JI))){if(!(fI&&kd(O,JI))){if(!GI[JI]||q[JI]){if(!(Xn(rI)&&(nI.tagNameCheck instanceof RegExp&&kd(nI.tagNameCheck,rI)||nI.tagNameCheck instanceof Function&&nI.tagNameCheck(rI))&&(nI.attributeNameCheck instanceof RegExp&&kd(nI.attributeNameCheck,JI)||nI.attributeNameCheck instanceof Function&&nI.attributeNameCheck(JI))||JI==="is"&&nI.allowCustomizedBuiltInElements&&(nI.tagNameCheck instanceof RegExp&&kd(nI.tagNameCheck,ml)||nI.tagNameCheck instanceof Function&&nI.tagNameCheck(ml))))return!1}else if(!QI[JI]){if(!kd(tI,ws(ml,j,""))){if(!((JI==="src"||JI==="xlink:href"||JI==="href")&&rI!=="script"&&gxI(ml,"data:")===0&&gI[rI])){if(!(cl&&!kd($,ws(ml,j,"")))){if(ml)return!1}}}}}}return!0},Xn=function(rI){return rI!=="annotation-xml"&&SU(rI,S)},dd=function(rI){ac("beforeSanitizeAttributes",rI,null);const{attributes:JI}=rI;if(!JI)return;const ml={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:GI};let dc=JI.length;for(;dc--;){const yc=JI[dc],{name:yl,namespaceURI:Ll,value:Kc}=yc,dt=kl(yl);let DG=yl==="value"?Kc:AxI(Kc);if(ml.attrName=dt,ml.attrValue=DG,ml.keepAttr=!0,ml.forceKeepAttr=void 0,ac("uponSanitizeAttribute",rI,ml),DG=ml.attrValue,ml.forceKeepAttr||(Ql(yl,rI),!ml.keepAttr))continue;if(!OI&&kd(/\/>/i,DG)){Ql(yl,rI);continue}PI&&W2([J,A,M],U0=>{DG=ws(DG,U0," ")});const sp=kl(rI.nodeName);if(be(sp,dt,DG)){if(eI&&(dt==="id"||dt==="name")&&(Ql(yl,rI),DG=uI+DG),X&&typeof s=="object"&&typeof s.getAttributeType=="function"&&!Ll)switch(s.getAttributeType(sp,dt)){case"TrustedHTML":{DG=X.createHTML(DG);break}case"TrustedScriptURL":{DG=X.createScriptURL(DG);break}}try{Ll?rI.setAttributeNS(Ll,yl,DG):rI.setAttribute(yl,DG),LU(l.removed)}catch{}}}ac("afterSanitizeAttributes",rI,null)},Xe=function pl(rI){let JI=null;const ml=gl(rI);for(ac("beforeSanitizeShadowDOM",rI,null);JI=ml.nextNode();)ac("uponSanitizeShadowNode",JI,null),!Sl(JI)&&(JI.content instanceof d&&pl(JI.content),dd(JI));ac("afterSanitizeShadowDOM",rI,null)};return l.sanitize=function(pl){let rI=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},JI=null,ml=null,dc=null,yc=null;if(_=!pl,_&&(pl=""),typeof pl!="string"&&!bc(pl))if(typeof pl.toString=="function"){if(pl=pl.toString(),typeof pl!="string")throw Es("dirty is not a string, aborting")}else throw Es("toString is not a function");if(!l.isSupported)return pl;if(tl||pI(rI),l.removed=[],typeof pl=="string"&&(YI=!1),YI){if(pl.nodeName){const Kc=kl(pl.nodeName);if(!z[Kc]||VI[Kc])throw Es("root node is forbidden and cannot be sanitized in-place")}}else if(pl instanceof n)JI=_l(""),ml=JI.ownerDocument.importNode(pl,!0),ml.nodeType===1&&ml.nodeName==="BODY"||ml.nodeName==="HTML"?JI=ml:JI.appendChild(ml);else{if(!Il&&!PI&&!_I&&pl.indexOf("<")===-1)return X&&al?X.createHTML(pl):pl;if(JI=_l(pl),!JI)return Il?null:al?H:""}JI&&bl&&zI(JI.firstChild);const yl=gl(YI?pl:JI);for(;dc=yl.nextNode();)Sl(dc)||(dc.content instanceof d&&Xe(dc.content),dd(dc));if(YI)return pl;if(Il){if(Fl)for(yc=B.call(JI.ownerDocument);JI.firstChild;)yc.appendChild(JI.firstChild);else yc=JI;return(GI.shadowroot||GI.shadowrootmode)&&(yc=k.call(G,yc,!0)),yc}let Ll=_I?JI.outerHTML:JI.innerHTML;return _I&&z["!doctype"]&&JI.ownerDocument&&JI.ownerDocument.doctype&&JI.ownerDocument.doctype.name&&kd(YO,JI.ownerDocument.doctype.name)&&(Ll=" -`+Ll),PI&&W2([J,A,M],Kc=>{Ll=ws(Ll,Kc," ")}),X&&al?X.createHTML(Ll):Ll},l.setConfig=function(){let pl=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};pI(pl),tl=!0},l.clearConfig=function(){ql=null,tl=!1},l.isValidAttribute=function(pl,rI,JI){ql||pI({});const ml=kl(pl),dc=kl(rI);return be(ml,dc,JI)},l.addHook=function(pl,rI){typeof rI=="function"&&(N[pl]=N[pl]||[],Qs(N[pl],rI))},l.removeHook=function(pl){if(N[pl])return LU(N[pl])},l.removeHooks=function(pl){N[pl]&&(N[pl]=[])},l.removeAllHooks=function(){N={}},l}var jxI=XO(),Ry={};const DxI={folder:["folder","white"],"karma.conf.js":["karma","green"],"karma.conf.coffee":["karma","green"],"README.md":["info","blue"],"CHANGELOG.md":["clock","blue"],CHANGELOG:["clock","blue"],"CHANGES.md":["clock","blue"],"VERSION.md":["clock","blue"],VERSION:["clock","blue"],mvnw:["maven","red"],"tsconfig.json":["tsconfig","blue"],"swagger.json":["json","green"],"swagger.yml":["json","green"],"swagger.yaml":["json","green"],"mime.types":["config","grey-light"],Jenkinsfile:["jenkins","red"],"babel.config.js":["babel","yellow"],"babel.config.json":["babel","yellow"],"babel.config.cjs":["babel","yellow"],"bower.json":["bower","orange"],"Bower.json":["bower","orange"],"firebase.json":["firebase","orange"],geckodriver:["firefox","orange"],"Gruntfile.js":["grunt","orange"],"gruntfile.babel.js":["grunt","orange"],"Gruntfile.babel.js":["grunt","orange"],"gruntfile.js":["grunt","orange"],"Gruntfile.coffee":["grunt","orange"],"gruntfile.coffee":["grunt","orange"],"ionic.config.json":["ionic","blue"],"Ionic.config.json":["ionic","blue"],"ionic.project":["ionic","blue"],"Ionic.project":["ionic","blue"],"platformio.ini":["platformio","orange"],"rollup.config.js":["rollup","red"],"sass-lint.yml":["sass","pink"],"stylelint.config.js":["stylelint","white"],"stylelint.config.cjs":["stylelint","white"],"yarn.clean":["yarn","blue"],"yarn.lock":["yarn","blue"],"webpack.config.js":["webpack","blue"],"webpack.config.build.js":["webpack","blue"],"webpack.common.js":["webpack","blue"],"webpack.dev.js":["webpack","blue"],"webpack.prod.js":["webpack","blue"],"npm-debug.log":["npm_ignored","ignore"]},OxI={".bsl":["bsl","red"],".mdo":["mdo","red"],".cls":["salesforce","blue"],".apex":["salesforce","blue"],".asm":["asm","red"],".s":["asm","red"],".bicep":["bicep","blue"],".c":["c","blue"],".h":["c","purple"],".m":["c","yellow"],".cs":["c-sharp","blue"],".cshtml":["html","blue"],".aspx":["html","blue"],".ascx":["html","green"],".asax":["html","yellow"],".master":["html","yellow"],".cc":["cpp","blue"],".cpp":["cpp","blue"],".cxx":["cpp","blue"],".c++":["cpp","blue"],".hh":["cpp","purple"],".hpp":["cpp","purple"],".hxx":["cpp","purple"],".h++":["cpp","purple"],".mm":["cpp","yellow"],".clj":["clojure","green"],".cljs":["clojure","green"],".cljc":["clojure","green"],".edn":["clojure","blue"],".cfc":["coldfusion","blue"],".cfm":["coldfusion","blue"],".coffee":["coffee","yellow"],".litcoffee":["coffee","yellow"],".config":["config","grey-light"],".cfg":["config","grey-light"],".conf":["config","grey-light"],".cr":["crystal","white"],".ecr":["crystal_embedded","white"],".slang":["crystal_embedded","white"],".cson":["json","yellow"],".css":["css","blue"],".css.map":["css","blue"],".sss":["css","blue"],".csv":["csv","green"],".xls":["xls","green"],".xlsx":["xls","green"],".cu":["cu","green"],".cuh":["cu","purple"],".hu":["cu","purple"],".cake":["cake","red"],".ctp":["cake_php","red"],".d":["d","red"],".doc":["word","blue"],".docx":["word","blue"],".ejs":["ejs","yellow"],".ex":["elixir","purple"],".exs":["elixir_script","purple"],".elm":["elm","blue"],".ico":["favicon","yellow"],".fs":["f-sharp","blue"],".fsx":["f-sharp","blue"],".gitignore":["git","ignore"],".gitconfig":["git","ignore"],".gitkeep":["git","ignore"],".gitattributes":["git","ignore"],".gitmodules":["git","ignore"],".go":["go2","blue"],".slide":["go","blue"],".article":["go","blue"],".gd":["godot","blue"],".godot":["godot","red"],".tres":["godot","yellow"],".tscn":["godot","purple"],".gradle":["gradle","blue"],".groovy":["grails","green"],".gsp":["grails","green"],".gql":["graphql","pink"],".graphql":["graphql","pink"],".graphqls":["graphql","pink"],".hack":["hacklang","orange"],".haml":["haml","red"],".handlebars":["mustache","orange"],".hbs":["mustache","orange"],".hjs":["mustache","orange"],".hs":["haskell","purple"],".lhs":["haskell","purple"],".hx":["haxe","orange"],".hxs":["haxe","yellow"],".hxp":["haxe","blue"],".hxml":["haxe","purple"],".html":["html","orange"],".jade":["jade","red"],".java":["java","red"],".class":["java","red"],".classpath":["java","red"],".properties":["java","red"],".js":["javascript","yellow"],".js.map":["javascript","yellow"],".spec.js":["javascript","orange"],".test.js":["javascript","orange"],".es":["javascript","yellow"],".es5":["javascript","yellow"],".es6":["javascript","yellow"],".es7":["javascript","yellow"],".jinja":["jinja","red"],".jinja2":["jinja","red"],".json":["json","yellow"],".jl":["julia","purple"],".kt":["kotlin","orange"],".kts":["kotlin","orange"],".dart":["dart","blue"],".less":["less","blue"],".liquid":["liquid","green"],".ls":["livescript","blue"],".lua":["lua","blue"],".markdown":["markdown","blue"],".md":["markdown","blue"],".argdown":["argdown","blue"],".ad":["argdown","blue"],".mustache":["mustache","orange"],".stache":["mustache","orange"],".nim":["nim","yellow"],".nims":["nim","yellow"],".github-issues":["github","white"],".ipynb":["notebook","blue"],".njk":["nunjucks","green"],".nunjucks":["nunjucks","green"],".nunjs":["nunjucks","green"],".nunj":["nunjucks","green"],".njs":["nunjucks","green"],".nj":["nunjucks","green"],".npm-debug.log":["npm","ignore"],".npmignore":["npm","red"],".npmrc":["npm","red"],".ml":["ocaml","orange"],".mli":["ocaml","orange"],".cmx":["ocaml","orange"],".cmxa":["ocaml","orange"],".odata":["odata","orange"],".pl":["perl","blue"],".php":["php","purple"],".php.inc":["php","purple"],".pipeline":["pipeline","orange"],".pddl":["pddl","purple"],".plan":["plan","green"],".happenings":["happenings","blue"],".ps1":["powershell","blue"],".psd1":["powershell","blue"],".psm1":["powershell","blue"],".prisma":["prisma","blue"],".pug":["pug","red"],".pp":["puppet","yellow"],".epp":["puppet","yellow"],".purs":["purescript","white"],".py":["python","blue"],".jsx":["react","blue"],".spec.jsx":["react","orange"],".test.jsx":["react","orange"],".cjsx":["react","blue"],".spec.tsx":["react","orange"],".test.tsx":["react","orange"],".re":["reasonml","red"],".res":["rescript","red"],".resi":["rescript","pink"],".R":["R","blue"],".rmd":["R","blue"],".rb":["ruby","red"],".erb":["html_erb","red"],".erb.html":["html_erb","red"],".html.erb":["html_erb","red"],".rs":["rust","grey-light"],".sass":["sass","pink"],".scss":["sass","pink"],".springBeans":["spring","green"],".slim":["slim","orange"],".smarty.tpl":["smarty","yellow"],".tpl":["smarty","yellow"],".sbt":["sbt","blue"],".scala":["scala","red"],".sol":["ethereum","blue"],".styl":["stylus","green"],".svelte":["svelte","red"],".swift":["swift","orange"],".sql":["db","pink"],".soql":["db","blue"],".tf":["terraform","purple"],".tf.json":["terraform","purple"],".tfvars":["terraform","purple"],".tex":["tex","blue"],".sty":["tex","yellow"],".dtx":["tex","orange"],".ins":["tex","white"],".txt":["default","white"],".toml":["config","grey-light"],".twig":["twig","green"],".ts":["typescript","blue"],".tsx":["typescript","blue"],".spec.ts":["typescript","orange"],".test.ts":["typescript","orange"],".vala":["vala","grey-light"],".vapi":["vala","grey-light"],".component":["html","orange"],".vue":["vue","green"],".wasm":["wasm","purple"],".wat":["wat","purple"],".xml":["xml","orange"],".yml":["yml","purple"],".yaml":["yml","purple"],".pro":["prolog","orange"],".jar":["zip","red"],".zip":["zip","grey-light"],".wgt":["wgt","blue"],".ai":["illustrator","yellow"],".psd":["photoshop","blue"],".pdf":["pdf","red"],".eot":["font","red"],".ttf":["font","red"],".woff":["font","red"],".woff2":["font","red"],".gif":["image","purple"],".jpg":["image","purple"],".jpeg":["image","purple"],".png":["image","purple"],".pxm":["image","purple"],".svg":["svg","purple"],".svgx":["image","purple"],".tiff":["image","purple"],".webp":["image","purple"],".sublime-project":["sublime","orange"],".sublime-workspace":["sublime","orange"],".code-search":["code-search","purple"],".sh":["shell","green"],".zsh":["shell","green"],".fish":["shell","green"],".zshrc":["shell","green"],".bashrc":["shell","green"],".mov":["video","pink"],".ogv":["video","pink"],".webm":["video","pink"],".avi":["video","pink"],".mpg":["video","pink"],".mp4":["video","pink"],".mp3":["audio","purple"],".ogg":["audio","purple"],".wav":["audio","purple"],".flac":["audio","purple"],".3ds":["svg","blue"],".3dm":["svg","blue"],".stl":["svg","blue"],".obj":["svg","blue"],".dae":["svg","blue"],".bat":["windows","blue"],".cmd":["windows","blue"],".babelrc":["babel","yellow"],".babelrc.js":["babel","yellow"],".babelrc.cjs":["babel","yellow"],".bowerrc":["bower","orange"],".codeclimate.yml":["code-climate","green"],".eslintrc":["eslint","purple"],".eslintrc.js":["eslint","purple"],".eslintrc.cjs":["eslint","purple"],".eslintrc.yaml":["eslint","purple"],".eslintrc.yml":["eslint","purple"],".eslintrc.json":["eslint","purple"],".eslintignore":["eslint","grey"],".firebaserc":["firebase","orange"],".jshintrc":["javascript","blue"],".jscsrc":["javascript","blue"],".stylelintrc":["stylelint","white"],".stylelintrc.json":["stylelint","white"],".stylelintrc.yaml":["stylelint","white"],".stylelintrc.yml":["stylelint","white"],".stylelintrc.js":["stylelint","white"],".stylelintignore":["stylelint","grey"],".direnv":["config","grey-light"],".env":["config","grey-light"],".static":["config","grey-light"],".editorconfig":["config","grey-light"],".slugignore":["config","grey-light"],".tmp":["clock","grey-light"],".htaccess":["config","grey-light"],".key":["lock","green"],".cert":["lock","green"],".cer":["lock","green"],".crt":["lock","green"],".pem":["lock","green"],".DS_Store":["ignored","ignore"]},PxI=[["TODO",["todo","blue"]],["Procfile",["heroku","purple"]],["cmakelists.txt",["makefile","blue"]],["CMakeLists.txt",["makefile","blue"]],["CMAKELISTS.txt",["makefile","blue"]],["CMAKELISTS.TXT",["makefile","blue"]],["omakefile",["makefile","grey-light"]],["OMakefile",["makefile","grey-light"]],["OMAKEFILE",["makefile","grey-light"]],["qmakefile",["makefile","purple"]],["QMakefile",["makefile","purple"]],["QMAKEFILE",["makefile","purple"]],["makefile",["makefile","orange"]],["Makefile",["makefile","orange"]],["MAKEFILE",["makefile","orange"]],["CONTRIBUTING",["license","red"]],["COMPILING",["license","orange"]],["COPYING",["license","yellow"]],["LICENCE.md",["license","yellow"]],["LICENSE.md",["license","yellow"]],["LICENCE",["license","yellow"]],["LICENSE",["license","yellow"]],["gulpfile.js",["gulp","red"]],["gulpfile",["gulp","red"]],["Gulpfile",["gulp","red"]],["GULPFILE",["gulp","red"]],["docker-compose.override.yaml",["docker","pink"]],["docker-compose.override.yml",["docker","pink"]],["docker-compose.yaml",["docker","pink"]],["docker-compose.yml",["docker","pink"]],["docker-healthcheck",["docker","green"]],[".dockerignore",["docker","grey"]],["DOCKERFILE",["docker","blue"]],["Dockerfile",["docker","blue"]],["dockerfile",["docker","blue"]],["gemfile",["ruby","red"]],["Gemfile",["ruby","red"]],["mix",["hex","red"]]],_xI={files:DxI,extensions:OxI,partials:PxI,default:["default","white"]},qxI='',$xI='',IzI='',lzI='',czI='',GzI='',ezI='',dzI='',tzI='',nzI='',bzI='',azI='',ZzI='',WzI='',rzI='',mzI='',szI='',uzI='',hzI='',pzI='',ozI='',VzI='',izI='',FzI='',NzI='',RzI='',YzI='',XzI='',HzI='',QzI='',wzI='',EzI='',vzI='',gzI='',AzI='',yzI='',JzI='',BzI='',kzI='',xzI='',zzI='',UzI='',CzI='',MzI='',fzI='',KzI='',LzI='',SzI='',TzI='',jzI='',DzI='',OzI='',PzI='',_zI='',qzI='',$zI='',IUI='',lUI='',cUI='',GUI='',eUI='',dUI='',tUI='',nUI='',bUI='',aUI='',ZUI='',WUI='',rUI='',mUI='',sUI='',uUI='',hUI='',pUI='',oUI='',VUI='',iUI='',FUI='',NUI='',RUI='',YUI='',XUI='',HUI='',QUI='',wUI='',EUI='',vUI='',gUI='',AUI='',yUI='',JUI='',BUI='',kUI='',xUI='',zUI='',UUI='',CUI='',MUI='',fUI='',KUI='',LUI='',SUI='',TUI='',jUI='',DUI='',OUI='',PUI='',_UI='',qUI='',$UI='',ICI='',lCI='',cCI='',GCI='',eCI='',dCI='',tCI='',nCI='',bCI='',aCI='',ZCI='',WCI='',rCI='',mCI='',sCI='',uCI='',hCI='',pCI='',oCI='',VCI='',iCI='',FCI='',NCI='',RCI='',YCI='',XCI='',HCI='',QCI='',wCI='',ECI='',vCI='',gCI='',ACI='',yCI={folder:qxI,bsl:$xI,mdo:IzI,salesforce:lzI,asm:czI,bicep:GzI,c:ezI,"c-sharp":'',html:dzI,cpp:tzI,clojure:nzI,coldfusion:bzI,coffee:azI,config:ZzI,crystal:WzI,crystal_embedded:rzI,json:mzI,css:szI,csv:uzI,xls:hzI,cu:pzI,cake:ozI,cake_php:VzI,d:izI,word:FzI,ejs:NzI,elixir:RzI,elixir_script:YzI,hex:XzI,elm:HzI,favicon:QzI,"f-sharp":'',git:wzI,go2:EzI,go:vzI,godot:gzI,gradle:AzI,grails:yzI,graphql:JzI,hacklang:BzI,haml:kzI,mustache:xzI,haskell:zzI,haxe:UzI,jade:CzI,java:MzI,javascript:fzI,jinja:KzI,julia:LzI,karma:SzI,kotlin:TzI,dart:jzI,less:DzI,liquid:OzI,livescript:PzI,lua:_zI,markdown:qzI,argdown:$zI,info:IUI,clock:lUI,maven:cUI,nim:GUI,github:eUI,notebook:dUI,nunjucks:tUI,npm:nUI,ocaml:bUI,odata:aUI,perl:ZUI,php:WUI,pipeline:rUI,pddl:mUI,plan:sUI,happenings:uUI,powershell:hUI,prisma:pUI,pug:oUI,puppet:VUI,purescript:iUI,python:FUI,react:NUI,reasonml:RUI,rescript:YUI,R:XUI,ruby:HUI,html_erb:QUI,rust:wUI,sass:EUI,spring:vUI,slim:gUI,smarty:AUI,sbt:yUI,scala:JUI,ethereum:BUI,stylus:kUI,svelte:xUI,swift:zUI,db:UUI,terraform:CUI,tex:MUI,default:'',twig:fUI,typescript:KUI,tsconfig:LUI,vala:SUI,vue:TUI,wasm:jUI,wat:DUI,xml:OUI,yml:PUI,prolog:_UI,zip:qUI,wgt:$UI,illustrator:ICI,photoshop:lCI,pdf:cCI,font:GCI,image:eCI,svg:dCI,sublime:tCI,"code-search":'',shell:nCI,video:bCI,audio:aCI,windows:ZCI,jenkins:WCI,babel:rCI,bower:mCI,docker:sCI,"code-climate":'',eslint:uCI,firebase:hCI,firefox:pCI,grunt:oCI,gulp:VCI,ionic:iCI,platformio:FCI,rollup:NCI,stylelint:RCI,yarn:YCI,webpack:XCI,lock:HCI,license:QCI,makefile:wCI,heroku:ECI,todo:vCI,npm_ignored:gCI,ignored:ACI};var vi=sc&&sc.__assign||function(){return vi=Object.assign||function(I){for(var l,c=1,G=arguments.length;c-1)return e[1]}return Mr.default},HO=function(I){var l=xCI(I),c=l[0],G=l[1];return{svg:kCI[c],color:G}};Ry.getIcon=HO;var zCI=function(I){return function(l){var c=HO(l);return vi(vi({},c),{color:I[c.color]})}},UCI=Ry.themeIcons=zCI;const gi=({filename:I,height:l,width:c})=>{const G=I.includes(" (")?I.split(" "):[I,""];G.pop();const e=UCI({blue:"#268bd2",grey:"#657b83","grey-light":"#839496",green:"#859900",orange:"#cb4b16",pink:"#d33682",purple:"#6c71c4",red:"#dc322f",white:"#fdf6e3",yellow:"#b58900",ignore:"#586e75"}),{svg:d,color:t}=e(G.join(" ")),n=jxI.sanitize(d);return v.jsx("div",{dangerouslySetInnerHTML:{__html:n},style:{width:c,height:l,fill:t,flexShrink:0}})},_U=LI.div` +`;function xGe(e){return e.open?e.children:W.jsxs(SGe,{fontSize:nr(),children:[W.jsx(RGe,{onClick:()=>{e.onToggle()},children:e.iconElement||W.jsx(MV,{width:"16px",height:"16px"})}),W.jsxs("span",{style:{color:rt},children:[e.item.message.role," Message"]})]})}function GGe(e){const t=e.name.split("(")[1].split(")")[0].split("-");return{filepath:e.id.itemId,range:{start:{line:Number.parseInt(t[0]),character:0},end:{line:Number.parseInt(t[1]),character:0}},contents:e.content}}/*! @license DOMPurify 3.1.5 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.1.5/LICENSE */const{entries:sP,setPrototypeOf:VZ,isFrozen:kGe,getPrototypeOf:DGe,getOwnPropertyDescriptor:NGe}=Object;let{freeze:ta,seal:Uo,create:uP}=Object,{apply:SF,construct:xF}=typeof Reflect<"u"&&Reflect;ta||(ta=function(t){return t});Uo||(Uo=function(t){return t});SF||(SF=function(t,n,r){return t.apply(n,r)});xF||(xF=function(t,n){return new t(...n)});const F2=io(Array.prototype.forEach),YZ=io(Array.prototype.pop),Jg=io(Array.prototype.push),CC=io(String.prototype.toLowerCase),lQ=io(String.prototype.toString),IZ=io(String.prototype.match),zg=io(String.prototype.replace),ZGe=io(String.prototype.indexOf),HGe=io(String.prototype.trim),rl=io(Object.prototype.hasOwnProperty),Ui=io(RegExp.prototype.test),Pg=XGe(TypeError);function io(e){return function(t){for(var n=arguments.length,r=new Array(n>1?n-1:0),i=1;i2&&arguments[2]!==void 0?arguments[2]:CC;VZ&&VZ(e,null);let r=t.length;for(;r--;){let i=t[r];if(typeof i=="string"){const a=n(i);a!==i&&(kGe(t)||(t[r]=a),i=a)}e[i]=!0}return e}function LGe(e){for(let t=0;t/gm),IGe=Uo(/\${[\w\W]*}/gm),UGe=Uo(/^data-[\-\w.\u00B7-\uFFFF]/),OGe=Uo(/^aria-[\-\w]+$/),cP=Uo(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),JGe=Uo(/^(?:\w+script|data):/i),zGe=Uo(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),dP=Uo(/^html$/i),PGe=Uo(/^[a-z][.\w]*(-[.\w]+)+$/i);var PZ=Object.freeze({__proto__:null,MUSTACHE_EXPR:VGe,ERB_EXPR:YGe,TMPLIT_EXPR:IGe,DATA_ATTR:UGe,ARIA_ATTR:OGe,IS_ALLOWED_URI:cP,IS_SCRIPT_OR_DATA:JGe,ATTR_WHITESPACE:zGe,DOCTYPE_NAME:dP,CUSTOM_ELEMENT:PGe});const jg={element:1,attribute:2,text:3,cdataSection:4,entityReference:5,entityNode:6,progressingInstruction:7,comment:8,document:9,documentType:10,documentFragment:11,notation:12},jGe=function(){return typeof window>"u"?null:window},_Ge=function(t,n){if(typeof t!="object"||typeof t.createPolicy!="function")return null;let r=null;const i="data-tt-policy-suffix";n&&n.hasAttribute(i)&&(r=n.getAttribute(i));const a="dompurify"+(r?"#"+r:"");try{return t.createPolicy(a,{createHTML(o){return o},createScriptURL(o){return o}})}catch{return console.warn("TrustedTypes policy "+a+" could not be created."),null}};function pP(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:jGe();const t=vt=>pP(vt);if(t.version="3.1.5",t.removed=[],!e||!e.document||e.document.nodeType!==jg.document)return t.isSupported=!1,t;let{document:n}=e;const r=n,i=r.currentScript,{DocumentFragment:a,HTMLTemplateElement:o,Node:l,Element:s,NodeFilter:u,NamedNodeMap:c=e.NamedNodeMap||e.MozNamedAttrMap,HTMLFormElement:d,DOMParser:g,trustedTypes:h}=e,m=s.prototype,A=E2(m,"cloneNode"),B=E2(m,"nextSibling"),C=E2(m,"childNodes"),b=E2(m,"parentNode");if(typeof o=="function"){const vt=n.createElement("template");vt.content&&vt.content.ownerDocument&&(n=vt.content.ownerDocument)}let Q,F="";const{implementation:K,createNodeIterator:y,createDocumentFragment:G,getElementsByTagName:X}=n,{importNode:H}=r;let v={};t.isSupported=typeof sP=="function"&&typeof b=="function"&&K&&K.createHTMLDocument!==void 0;const{MUSTACHE_EXPR:k,ERB_EXPR:D,TMPLIT_EXPR:V,DATA_ATTR:z,ARIA_ATTR:j,IS_SCRIPT_OR_DATA:te,ATTR_WHITESPACE:J,CUSTOM_ELEMENT:I}=PZ;let{IS_ALLOWED_URI:se}=PZ,Z=null;const S=pn({},[...UZ,...sQ,...uQ,...cQ,...OZ]);let q=null;const T=pn({},[...JZ,...dQ,...zZ,...R2]);let ue=Object.seal(uP(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),fe=null,_=null,Ze=!0,ve=!0,it=!1,et=!0,ot=!1,Oe=!0,tt=!1,st=!1,pt=!1,ht=!1,lt=!1,P=!1,le=!0,me=!1;const Re="user-content-";let Qe=!0,We=!1,Ee={},Ie=null;const Ce=pn({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]);let de=null;const we=pn({},["audio","video","img","source","image","track"]);let ae=null;const xe=pn({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),nt="http://www.w3.org/1998/Math/MathML",ft="http://www.w3.org/2000/svg",Bt="http://www.w3.org/1999/xhtml";let $=Bt,Ke=!1,Ne=null;const ut=pn({},[nt,ft,Bt],lQ);let Pe=null;const Gt=["application/xhtml+xml","text/html"],An="text/html";let Xt=null,Hn=null;const Cn=n.createElement("form"),rr=function(oe){return oe instanceof RegExp||oe instanceof Function},ie=function(){let oe=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(!(Hn&&Hn===oe)){if((!oe||typeof oe!="object")&&(oe={}),oe=h0(oe),Pe=Gt.indexOf(oe.PARSER_MEDIA_TYPE)===-1?An:oe.PARSER_MEDIA_TYPE,Xt=Pe==="application/xhtml+xml"?lQ:CC,Z=rl(oe,"ALLOWED_TAGS")?pn({},oe.ALLOWED_TAGS,Xt):S,q=rl(oe,"ALLOWED_ATTR")?pn({},oe.ALLOWED_ATTR,Xt):T,Ne=rl(oe,"ALLOWED_NAMESPACES")?pn({},oe.ALLOWED_NAMESPACES,lQ):ut,ae=rl(oe,"ADD_URI_SAFE_ATTR")?pn(h0(xe),oe.ADD_URI_SAFE_ATTR,Xt):xe,de=rl(oe,"ADD_DATA_URI_TAGS")?pn(h0(we),oe.ADD_DATA_URI_TAGS,Xt):we,Ie=rl(oe,"FORBID_CONTENTS")?pn({},oe.FORBID_CONTENTS,Xt):Ce,fe=rl(oe,"FORBID_TAGS")?pn({},oe.FORBID_TAGS,Xt):{},_=rl(oe,"FORBID_ATTR")?pn({},oe.FORBID_ATTR,Xt):{},Ee=rl(oe,"USE_PROFILES")?oe.USE_PROFILES:!1,Ze=oe.ALLOW_ARIA_ATTR!==!1,ve=oe.ALLOW_DATA_ATTR!==!1,it=oe.ALLOW_UNKNOWN_PROTOCOLS||!1,et=oe.ALLOW_SELF_CLOSE_IN_ATTR!==!1,ot=oe.SAFE_FOR_TEMPLATES||!1,Oe=oe.SAFE_FOR_XML!==!1,tt=oe.WHOLE_DOCUMENT||!1,ht=oe.RETURN_DOM||!1,lt=oe.RETURN_DOM_FRAGMENT||!1,P=oe.RETURN_TRUSTED_TYPE||!1,pt=oe.FORCE_BODY||!1,le=oe.SANITIZE_DOM!==!1,me=oe.SANITIZE_NAMED_PROPS||!1,Qe=oe.KEEP_CONTENT!==!1,We=oe.IN_PLACE||!1,se=oe.ALLOWED_URI_REGEXP||cP,$=oe.NAMESPACE||Bt,ue=oe.CUSTOM_ELEMENT_HANDLING||{},oe.CUSTOM_ELEMENT_HANDLING&&rr(oe.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(ue.tagNameCheck=oe.CUSTOM_ELEMENT_HANDLING.tagNameCheck),oe.CUSTOM_ELEMENT_HANDLING&&rr(oe.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(ue.attributeNameCheck=oe.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),oe.CUSTOM_ELEMENT_HANDLING&&typeof oe.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements=="boolean"&&(ue.allowCustomizedBuiltInElements=oe.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),ot&&(ve=!1),lt&&(ht=!0),Ee&&(Z=pn({},OZ),q=[],Ee.html===!0&&(pn(Z,UZ),pn(q,JZ)),Ee.svg===!0&&(pn(Z,sQ),pn(q,dQ),pn(q,R2)),Ee.svgFilters===!0&&(pn(Z,uQ),pn(q,dQ),pn(q,R2)),Ee.mathMl===!0&&(pn(Z,cQ),pn(q,zZ),pn(q,R2))),oe.ADD_TAGS&&(Z===S&&(Z=h0(Z)),pn(Z,oe.ADD_TAGS,Xt)),oe.ADD_ATTR&&(q===T&&(q=h0(q)),pn(q,oe.ADD_ATTR,Xt)),oe.ADD_URI_SAFE_ATTR&&pn(ae,oe.ADD_URI_SAFE_ATTR,Xt),oe.FORBID_CONTENTS&&(Ie===Ce&&(Ie=h0(Ie)),pn(Ie,oe.FORBID_CONTENTS,Xt)),Qe&&(Z["#text"]=!0),tt&&pn(Z,["html","head","body"]),Z.table&&(pn(Z,["tbody"]),delete fe.tbody),oe.TRUSTED_TYPES_POLICY){if(typeof oe.TRUSTED_TYPES_POLICY.createHTML!="function")throw Pg('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof oe.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw Pg('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');Q=oe.TRUSTED_TYPES_POLICY,F=Q.createHTML("")}else Q===void 0&&(Q=_Ge(h,i)),Q!==null&&typeof F=="string"&&(F=Q.createHTML(""));ta&&ta(oe),Hn=oe}},ge=pn({},["mi","mo","mn","ms","mtext"]),Fe=pn({},["foreignobject","annotation-xml"]),Le=pn({},["title","style","font","a","script"]),be=pn({},[...sQ,...uQ,...MGe]),Je=pn({},[...cQ,...TGe]),Me=function(oe){let He=b(oe);(!He||!He.tagName)&&(He={namespaceURI:$,tagName:"template"});const At=CC(oe.tagName),an=CC(He.tagName);return Ne[oe.namespaceURI]?oe.namespaceURI===ft?He.namespaceURI===Bt?At==="svg":He.namespaceURI===nt?At==="svg"&&(an==="annotation-xml"||ge[an]):!!be[At]:oe.namespaceURI===nt?He.namespaceURI===Bt?At==="math":He.namespaceURI===ft?At==="math"&&Fe[an]:!!Je[At]:oe.namespaceURI===Bt?He.namespaceURI===ft&&!Fe[an]||He.namespaceURI===nt&&!ge[an]?!1:!Je[At]&&(Le[At]||!be[At]):!!(Pe==="application/xhtml+xml"&&Ne[oe.namespaceURI]):!1},ze=function(oe){Jg(t.removed,{element:oe});try{oe.parentNode.removeChild(oe)}catch{oe.remove()}},Kt=function(oe,He){try{Jg(t.removed,{attribute:He.getAttributeNode(oe),from:He})}catch{Jg(t.removed,{attribute:null,from:He})}if(He.removeAttribute(oe),oe==="is"&&!q[oe])if(ht||lt)try{ze(He)}catch{}else try{He.setAttribute(oe,"")}catch{}},St=function(oe){let He=null,At=null;if(pt)oe=""+oe;else{const on=IZ(oe,/^[\r\n\t ]+/);At=on&&on[0]}Pe==="application/xhtml+xml"&&$===Bt&&(oe=''+oe+"");const an=Q?Q.createHTML(oe):oe;if($===Bt)try{He=new g().parseFromString(an,Pe)}catch{}if(!He||!He.documentElement){He=K.createDocument($,"template",null);try{He.documentElement.innerHTML=Ke?F:an}catch{}}const Nt=He.body||He.documentElement;return oe&&At&&Nt.insertBefore(n.createTextNode(At),Nt.childNodes[0]||null),$===Bt?X.call(He,tt?"html":"body")[0]:tt?He.documentElement:Nt},Qn=function(oe){return y.call(oe.ownerDocument||oe,oe,u.SHOW_ELEMENT|u.SHOW_COMMENT|u.SHOW_TEXT|u.SHOW_PROCESSING_INSTRUCTION|u.SHOW_CDATA_SECTION,null)},un=function(oe){return oe instanceof d&&(typeof oe.nodeName!="string"||typeof oe.textContent!="string"||typeof oe.removeChild!="function"||!(oe.attributes instanceof c)||typeof oe.removeAttribute!="function"||typeof oe.setAttribute!="function"||typeof oe.namespaceURI!="string"||typeof oe.insertBefore!="function"||typeof oe.hasChildNodes!="function")},yt=function(oe){return typeof l=="function"&&oe instanceof l},Rt=function(oe,He,At){v[oe]&&F2(v[oe],an=>{an.call(t,He,At,Hn)})},Xn=function(oe){let He=null;if(Rt("beforeSanitizeElements",oe,null),un(oe))return ze(oe),!0;const At=Xt(oe.nodeName);if(Rt("uponSanitizeElement",oe,{tagName:At,allowedTags:Z}),oe.hasChildNodes()&&!yt(oe.firstElementChild)&&Ui(/<[/\w]/g,oe.innerHTML)&&Ui(/<[/\w]/g,oe.textContent)||oe.nodeType===jg.progressingInstruction||Oe&&oe.nodeType===jg.comment&&Ui(/<[/\w]/g,oe.data))return ze(oe),!0;if(!Z[At]||fe[At]){if(!fe[At]&&Wi(At)&&(ue.tagNameCheck instanceof RegExp&&Ui(ue.tagNameCheck,At)||ue.tagNameCheck instanceof Function&&ue.tagNameCheck(At)))return!1;if(Qe&&!Ie[At]){const an=b(oe)||oe.parentNode,Nt=C(oe)||oe.childNodes;if(Nt&&an){const on=Nt.length;for(let En=on-1;En>=0;--En){const kn=A(Nt[En],!0);kn.__removalCount=(oe.__removalCount||0)+1,an.insertBefore(kn,B(oe))}}}return ze(oe),!0}return oe instanceof s&&!Me(oe)||(At==="noscript"||At==="noembed"||At==="noframes")&&Ui(/<\/no(script|embed|frames)/i,oe.innerHTML)?(ze(oe),!0):(ot&&oe.nodeType===jg.text&&(He=oe.textContent,F2([k,D,V],an=>{He=zg(He,an," ")}),oe.textContent!==He&&(Jg(t.removed,{element:oe.cloneNode()}),oe.textContent=He)),Rt("afterSanitizeElements",oe,null),!1)},co=function(oe,He,At){if(le&&(He==="id"||He==="name")&&(At in n||At in Cn))return!1;if(!(ve&&!_[He]&&Ui(z,He))){if(!(Ze&&Ui(j,He))){if(!q[He]||_[He]){if(!(Wi(oe)&&(ue.tagNameCheck instanceof RegExp&&Ui(ue.tagNameCheck,oe)||ue.tagNameCheck instanceof Function&&ue.tagNameCheck(oe))&&(ue.attributeNameCheck instanceof RegExp&&Ui(ue.attributeNameCheck,He)||ue.attributeNameCheck instanceof Function&&ue.attributeNameCheck(He))||He==="is"&&ue.allowCustomizedBuiltInElements&&(ue.tagNameCheck instanceof RegExp&&Ui(ue.tagNameCheck,At)||ue.tagNameCheck instanceof Function&&ue.tagNameCheck(At))))return!1}else if(!ae[He]){if(!Ui(se,zg(At,J,""))){if(!((He==="src"||He==="xlink:href"||He==="href")&&oe!=="script"&&ZGe(At,"data:")===0&&de[oe])){if(!(it&&!Ui(te,zg(At,J,"")))){if(At)return!1}}}}}}return!0},Wi=function(oe){return oe!=="annotation-xml"&&IZ(oe,I)},Xi=function(oe){Rt("beforeSanitizeAttributes",oe,null);const{attributes:He}=oe;if(!He)return;const At={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:q};let an=He.length;for(;an--;){const Nt=He[an],{name:on,namespaceURI:En,value:kn}=Nt,Ga=Xt(on);let Xr=on==="value"?kn:HGe(kn);if(At.attrName=Ga,At.attrValue=Xr,At.keepAttr=!0,At.forceKeepAttr=void 0,Rt("uponSanitizeAttribute",oe,At),Xr=At.attrValue,At.forceKeepAttr||(Kt(on,oe),!At.keepAttr))continue;if(!et&&Ui(/\/>/i,Xr)){Kt(on,oe);continue}if(Oe&&Ui(/((--!?|])>)|<\/(style|title)/i,Xr)){Kt(on,oe);continue}ot&&F2([k,D,V],ag=>{Xr=zg(Xr,ag," ")});const Pc=Xt(oe.nodeName);if(co(Pc,Ga,Xr)){if(me&&(Ga==="id"||Ga==="name")&&(Kt(on,oe),Xr=Re+Xr),Q&&typeof h=="object"&&typeof h.getAttributeType=="function"&&!En)switch(h.getAttributeType(Pc,Ga)){case"TrustedHTML":{Xr=Q.createHTML(Xr);break}case"TrustedScriptURL":{Xr=Q.createScriptURL(Xr);break}}try{En?oe.setAttributeNS(En,on,Xr):oe.setAttribute(on,Xr),un(oe)?ze(oe):YZ(t.removed)}catch{}}}Rt("afterSanitizeAttributes",oe,null)},xa=function vt(oe){let He=null;const At=Qn(oe);for(Rt("beforeSanitizeShadowDOM",oe,null);He=At.nextNode();)Rt("uponSanitizeShadowNode",He,null),!Xn(He)&&(He.content instanceof a&&vt(He.content),Xi(He));Rt("afterSanitizeShadowDOM",oe,null)};return t.sanitize=function(vt){let oe=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},He=null,At=null,an=null,Nt=null;if(Ke=!vt,Ke&&(vt=""),typeof vt!="string"&&!yt(vt))if(typeof vt.toString=="function"){if(vt=vt.toString(),typeof vt!="string")throw Pg("dirty is not a string, aborting")}else throw Pg("toString is not a function");if(!t.isSupported)return vt;if(st||ie(oe),t.removed=[],typeof vt=="string"&&(We=!1),We){if(vt.nodeName){const kn=Xt(vt.nodeName);if(!Z[kn]||fe[kn])throw Pg("root node is forbidden and cannot be sanitized in-place")}}else if(vt instanceof l)He=St(""),At=He.ownerDocument.importNode(vt,!0),At.nodeType===jg.element&&At.nodeName==="BODY"||At.nodeName==="HTML"?He=At:He.appendChild(At);else{if(!ht&&!ot&&!tt&&vt.indexOf("<")===-1)return Q&&P?Q.createHTML(vt):vt;if(He=St(vt),!He)return ht?null:P?F:""}He&&pt&&ze(He.firstChild);const on=Qn(We?vt:He);for(;an=on.nextNode();)Xn(an)||(an.content instanceof a&&xa(an.content),Xi(an));if(We)return vt;if(ht){if(lt)for(Nt=G.call(He.ownerDocument);He.firstChild;)Nt.appendChild(He.firstChild);else Nt=He;return(q.shadowroot||q.shadowrootmode)&&(Nt=H.call(r,Nt,!0)),Nt}let En=tt?He.outerHTML:He.innerHTML;return tt&&Z["!doctype"]&&He.ownerDocument&&He.ownerDocument.doctype&&He.ownerDocument.doctype.name&&Ui(dP,He.ownerDocument.doctype.name)&&(En=" +`+En),ot&&F2([k,D,V],kn=>{En=zg(En,kn," ")}),Q&&P?Q.createHTML(En):En},t.setConfig=function(){let vt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};ie(vt),st=!0},t.clearConfig=function(){Hn=null,st=!1},t.isValidAttribute=function(vt,oe,He){Hn||ie({});const At=Xt(vt),an=Xt(oe);return co(At,an,He)},t.addHook=function(vt,oe){typeof oe=="function"&&(v[vt]=v[vt]||[],Jg(v[vt],oe))},t.removeHook=function(vt){if(v[vt])return YZ(v[vt])},t.removeHooks=function(vt){v[vt]&&(v[vt]=[])},t.removeAllHooks=function(){v={}},t}var $Ge=pP(),FR={};const qGe={folder:["folder","white"],"karma.conf.js":["karma","green"],"karma.conf.coffee":["karma","green"],"README.md":["info","blue"],"CHANGELOG.md":["clock","blue"],CHANGELOG:["clock","blue"],"CHANGES.md":["clock","blue"],"VERSION.md":["clock","blue"],VERSION:["clock","blue"],mvnw:["maven","red"],"tsconfig.json":["tsconfig","blue"],"swagger.json":["json","green"],"swagger.yml":["json","green"],"swagger.yaml":["json","green"],"mime.types":["config","grey-light"],Jenkinsfile:["jenkins","red"],"babel.config.js":["babel","yellow"],"babel.config.json":["babel","yellow"],"babel.config.cjs":["babel","yellow"],"bower.json":["bower","orange"],"Bower.json":["bower","orange"],"firebase.json":["firebase","orange"],geckodriver:["firefox","orange"],"Gruntfile.js":["grunt","orange"],"gruntfile.babel.js":["grunt","orange"],"Gruntfile.babel.js":["grunt","orange"],"gruntfile.js":["grunt","orange"],"Gruntfile.coffee":["grunt","orange"],"gruntfile.coffee":["grunt","orange"],"ionic.config.json":["ionic","blue"],"Ionic.config.json":["ionic","blue"],"ionic.project":["ionic","blue"],"Ionic.project":["ionic","blue"],"platformio.ini":["platformio","orange"],"rollup.config.js":["rollup","red"],"sass-lint.yml":["sass","pink"],"stylelint.config.js":["stylelint","white"],"stylelint.config.cjs":["stylelint","white"],"yarn.clean":["yarn","blue"],"yarn.lock":["yarn","blue"],"webpack.config.js":["webpack","blue"],"webpack.config.build.js":["webpack","blue"],"webpack.common.js":["webpack","blue"],"webpack.dev.js":["webpack","blue"],"webpack.prod.js":["webpack","blue"],"npm-debug.log":["npm_ignored","ignore"]},eke={".bsl":["bsl","red"],".mdo":["mdo","red"],".cls":["salesforce","blue"],".apex":["salesforce","blue"],".asm":["asm","red"],".s":["asm","red"],".bicep":["bicep","blue"],".c":["c","blue"],".h":["c","purple"],".m":["c","yellow"],".cs":["c-sharp","blue"],".cshtml":["html","blue"],".aspx":["html","blue"],".ascx":["html","green"],".asax":["html","yellow"],".master":["html","yellow"],".cc":["cpp","blue"],".cpp":["cpp","blue"],".cxx":["cpp","blue"],".c++":["cpp","blue"],".hh":["cpp","purple"],".hpp":["cpp","purple"],".hxx":["cpp","purple"],".h++":["cpp","purple"],".mm":["cpp","yellow"],".clj":["clojure","green"],".cljs":["clojure","green"],".cljc":["clojure","green"],".edn":["clojure","blue"],".cfc":["coldfusion","blue"],".cfm":["coldfusion","blue"],".coffee":["coffee","yellow"],".litcoffee":["coffee","yellow"],".config":["config","grey-light"],".cfg":["config","grey-light"],".conf":["config","grey-light"],".cr":["crystal","white"],".ecr":["crystal_embedded","white"],".slang":["crystal_embedded","white"],".cson":["json","yellow"],".css":["css","blue"],".css.map":["css","blue"],".sss":["css","blue"],".csv":["csv","green"],".xls":["xls","green"],".xlsx":["xls","green"],".cu":["cu","green"],".cuh":["cu","purple"],".hu":["cu","purple"],".cake":["cake","red"],".ctp":["cake_php","red"],".d":["d","red"],".doc":["word","blue"],".docx":["word","blue"],".ejs":["ejs","yellow"],".ex":["elixir","purple"],".exs":["elixir_script","purple"],".elm":["elm","blue"],".ico":["favicon","yellow"],".fs":["f-sharp","blue"],".fsx":["f-sharp","blue"],".gitignore":["git","ignore"],".gitconfig":["git","ignore"],".gitkeep":["git","ignore"],".gitattributes":["git","ignore"],".gitmodules":["git","ignore"],".go":["go2","blue"],".slide":["go","blue"],".article":["go","blue"],".gd":["godot","blue"],".godot":["godot","red"],".tres":["godot","yellow"],".tscn":["godot","purple"],".gradle":["gradle","blue"],".groovy":["grails","green"],".gsp":["grails","green"],".gql":["graphql","pink"],".graphql":["graphql","pink"],".graphqls":["graphql","pink"],".hack":["hacklang","orange"],".haml":["haml","red"],".handlebars":["mustache","orange"],".hbs":["mustache","orange"],".hjs":["mustache","orange"],".hs":["haskell","purple"],".lhs":["haskell","purple"],".hx":["haxe","orange"],".hxs":["haxe","yellow"],".hxp":["haxe","blue"],".hxml":["haxe","purple"],".html":["html","orange"],".jade":["jade","red"],".java":["java","red"],".class":["java","red"],".classpath":["java","red"],".properties":["java","red"],".js":["javascript","yellow"],".js.map":["javascript","yellow"],".spec.js":["javascript","orange"],".test.js":["javascript","orange"],".es":["javascript","yellow"],".es5":["javascript","yellow"],".es6":["javascript","yellow"],".es7":["javascript","yellow"],".jinja":["jinja","red"],".jinja2":["jinja","red"],".json":["json","yellow"],".jl":["julia","purple"],".kt":["kotlin","orange"],".kts":["kotlin","orange"],".dart":["dart","blue"],".less":["less","blue"],".liquid":["liquid","green"],".ls":["livescript","blue"],".lua":["lua","blue"],".markdown":["markdown","blue"],".md":["markdown","blue"],".argdown":["argdown","blue"],".ad":["argdown","blue"],".mustache":["mustache","orange"],".stache":["mustache","orange"],".nim":["nim","yellow"],".nims":["nim","yellow"],".github-issues":["github","white"],".ipynb":["notebook","blue"],".njk":["nunjucks","green"],".nunjucks":["nunjucks","green"],".nunjs":["nunjucks","green"],".nunj":["nunjucks","green"],".njs":["nunjucks","green"],".nj":["nunjucks","green"],".npm-debug.log":["npm","ignore"],".npmignore":["npm","red"],".npmrc":["npm","red"],".ml":["ocaml","orange"],".mli":["ocaml","orange"],".cmx":["ocaml","orange"],".cmxa":["ocaml","orange"],".odata":["odata","orange"],".pl":["perl","blue"],".php":["php","purple"],".php.inc":["php","purple"],".pipeline":["pipeline","orange"],".pddl":["pddl","purple"],".plan":["plan","green"],".happenings":["happenings","blue"],".ps1":["powershell","blue"],".psd1":["powershell","blue"],".psm1":["powershell","blue"],".prisma":["prisma","blue"],".pug":["pug","red"],".pp":["puppet","yellow"],".epp":["puppet","yellow"],".purs":["purescript","white"],".py":["python","blue"],".jsx":["react","blue"],".spec.jsx":["react","orange"],".test.jsx":["react","orange"],".cjsx":["react","blue"],".spec.tsx":["react","orange"],".test.tsx":["react","orange"],".re":["reasonml","red"],".res":["rescript","red"],".resi":["rescript","pink"],".R":["R","blue"],".rmd":["R","blue"],".rb":["ruby","red"],".erb":["html_erb","red"],".erb.html":["html_erb","red"],".html.erb":["html_erb","red"],".rs":["rust","grey-light"],".sass":["sass","pink"],".scss":["sass","pink"],".springBeans":["spring","green"],".slim":["slim","orange"],".smarty.tpl":["smarty","yellow"],".tpl":["smarty","yellow"],".sbt":["sbt","blue"],".scala":["scala","red"],".sol":["ethereum","blue"],".styl":["stylus","green"],".svelte":["svelte","red"],".swift":["swift","orange"],".sql":["db","pink"],".soql":["db","blue"],".tf":["terraform","purple"],".tf.json":["terraform","purple"],".tfvars":["terraform","purple"],".tex":["tex","blue"],".sty":["tex","yellow"],".dtx":["tex","orange"],".ins":["tex","white"],".txt":["default","white"],".toml":["config","grey-light"],".twig":["twig","green"],".ts":["typescript","blue"],".tsx":["typescript","blue"],".spec.ts":["typescript","orange"],".test.ts":["typescript","orange"],".vala":["vala","grey-light"],".vapi":["vala","grey-light"],".component":["html","orange"],".vue":["vue","green"],".wasm":["wasm","purple"],".wat":["wat","purple"],".xml":["xml","orange"],".yml":["yml","purple"],".yaml":["yml","purple"],".pro":["prolog","orange"],".jar":["zip","red"],".zip":["zip","grey-light"],".wgt":["wgt","blue"],".ai":["illustrator","yellow"],".psd":["photoshop","blue"],".pdf":["pdf","red"],".eot":["font","red"],".ttf":["font","red"],".woff":["font","red"],".woff2":["font","red"],".gif":["image","purple"],".jpg":["image","purple"],".jpeg":["image","purple"],".png":["image","purple"],".pxm":["image","purple"],".svg":["svg","purple"],".svgx":["image","purple"],".tiff":["image","purple"],".webp":["image","purple"],".sublime-project":["sublime","orange"],".sublime-workspace":["sublime","orange"],".code-search":["code-search","purple"],".sh":["shell","green"],".zsh":["shell","green"],".fish":["shell","green"],".zshrc":["shell","green"],".bashrc":["shell","green"],".mov":["video","pink"],".ogv":["video","pink"],".webm":["video","pink"],".avi":["video","pink"],".mpg":["video","pink"],".mp4":["video","pink"],".mp3":["audio","purple"],".ogg":["audio","purple"],".wav":["audio","purple"],".flac":["audio","purple"],".3ds":["svg","blue"],".3dm":["svg","blue"],".stl":["svg","blue"],".obj":["svg","blue"],".dae":["svg","blue"],".bat":["windows","blue"],".cmd":["windows","blue"],".babelrc":["babel","yellow"],".babelrc.js":["babel","yellow"],".babelrc.cjs":["babel","yellow"],".bowerrc":["bower","orange"],".codeclimate.yml":["code-climate","green"],".eslintrc":["eslint","purple"],".eslintrc.js":["eslint","purple"],".eslintrc.cjs":["eslint","purple"],".eslintrc.yaml":["eslint","purple"],".eslintrc.yml":["eslint","purple"],".eslintrc.json":["eslint","purple"],".eslintignore":["eslint","grey"],".firebaserc":["firebase","orange"],".jshintrc":["javascript","blue"],".jscsrc":["javascript","blue"],".stylelintrc":["stylelint","white"],".stylelintrc.json":["stylelint","white"],".stylelintrc.yaml":["stylelint","white"],".stylelintrc.yml":["stylelint","white"],".stylelintrc.js":["stylelint","white"],".stylelintignore":["stylelint","grey"],".direnv":["config","grey-light"],".env":["config","grey-light"],".static":["config","grey-light"],".editorconfig":["config","grey-light"],".slugignore":["config","grey-light"],".tmp":["clock","grey-light"],".htaccess":["config","grey-light"],".key":["lock","green"],".cert":["lock","green"],".cer":["lock","green"],".crt":["lock","green"],".pem":["lock","green"],".DS_Store":["ignored","ignore"]},tke=[["TODO",["todo","blue"]],["Procfile",["heroku","purple"]],["cmakelists.txt",["makefile","blue"]],["CMakeLists.txt",["makefile","blue"]],["CMAKELISTS.txt",["makefile","blue"]],["CMAKELISTS.TXT",["makefile","blue"]],["omakefile",["makefile","grey-light"]],["OMakefile",["makefile","grey-light"]],["OMAKEFILE",["makefile","grey-light"]],["qmakefile",["makefile","purple"]],["QMakefile",["makefile","purple"]],["QMAKEFILE",["makefile","purple"]],["makefile",["makefile","orange"]],["Makefile",["makefile","orange"]],["MAKEFILE",["makefile","orange"]],["CONTRIBUTING",["license","red"]],["COMPILING",["license","orange"]],["COPYING",["license","yellow"]],["LICENCE.md",["license","yellow"]],["LICENSE.md",["license","yellow"]],["LICENCE",["license","yellow"]],["LICENSE",["license","yellow"]],["gulpfile.js",["gulp","red"]],["gulpfile",["gulp","red"]],["Gulpfile",["gulp","red"]],["GULPFILE",["gulp","red"]],["docker-compose.override.yaml",["docker","pink"]],["docker-compose.override.yml",["docker","pink"]],["docker-compose.yaml",["docker","pink"]],["docker-compose.yml",["docker","pink"]],["docker-healthcheck",["docker","green"]],[".dockerignore",["docker","grey"]],["DOCKERFILE",["docker","blue"]],["Dockerfile",["docker","blue"]],["dockerfile",["docker","blue"]],["gemfile",["ruby","red"]],["Gemfile",["ruby","red"]],["mix",["hex","red"]]],nke={files:qGe,extensions:eke,partials:tke,default:["default","white"]},rke='',ike='',ake='',oke='',lke='',ske='',uke='',cke='',dke='',pke='',gke='',hke='',fke='',mke='',Ake='',Cke='',Bke='',wke='',bke='',vke='',Kke='',Qke='',Wke='',yke='',Fke='',Eke='',Rke='',Ske='',xke='',Gke='',kke='',Dke='',Nke='',Zke='',Hke='',Xke='',Lke='',Mke='',Tke='',Vke='',Yke='',Ike='',Uke='',Oke='',Jke='',zke='',Pke='',jke='',_ke='',$ke='',qke='',eDe='',tDe='',nDe='',rDe='',iDe='',aDe='',oDe='',lDe='',sDe='',uDe='',cDe='',dDe='',pDe='',gDe='',hDe='',fDe='',mDe='',ADe='',CDe='',BDe='',wDe='',bDe='',vDe='',KDe='',QDe='',WDe='',yDe='',FDe='',EDe='',RDe='',SDe='',xDe='',GDe='',kDe='',DDe='',NDe='',ZDe='',HDe='',XDe='',LDe='',MDe='',TDe='',VDe='',YDe='',IDe='',UDe='',ODe='',JDe='',zDe='',PDe='',jDe='',_De='',$De='',qDe='',eNe='',tNe='',nNe='',rNe='',iNe='',aNe='',oNe='',lNe='',sNe='',uNe='',cNe='',dNe='',pNe='',gNe='',hNe='',fNe='',mNe='',ANe='',CNe='',BNe='',wNe='',bNe='',vNe='',KNe='',QNe='',WNe='',yNe='',FNe='',ENe='',RNe='',SNe='',xNe='',GNe='',kNe='',DNe='',NNe='',ZNe='',HNe='',XNe={folder:rke,bsl:ike,mdo:ake,salesforce:oke,asm:lke,bicep:ske,c:uke,"c-sharp":'',html:cke,cpp:dke,clojure:pke,coldfusion:gke,coffee:hke,config:fke,crystal:mke,crystal_embedded:Ake,json:Cke,css:Bke,csv:wke,xls:bke,cu:vke,cake:Kke,cake_php:Qke,d:Wke,word:yke,ejs:Fke,elixir:Eke,elixir_script:Rke,hex:Ske,elm:xke,favicon:Gke,"f-sharp":'',git:kke,go2:Dke,go:Nke,godot:Zke,gradle:Hke,grails:Xke,graphql:Lke,hacklang:Mke,haml:Tke,mustache:Vke,haskell:Yke,haxe:Ike,jade:Uke,java:Oke,javascript:Jke,jinja:zke,julia:Pke,karma:jke,kotlin:_ke,dart:$ke,less:qke,liquid:eDe,livescript:tDe,lua:nDe,markdown:rDe,argdown:iDe,info:aDe,clock:oDe,maven:lDe,nim:sDe,github:uDe,notebook:cDe,nunjucks:dDe,npm:pDe,ocaml:gDe,odata:hDe,perl:fDe,php:mDe,pipeline:ADe,pddl:CDe,plan:BDe,happenings:wDe,powershell:bDe,prisma:vDe,pug:KDe,puppet:QDe,purescript:WDe,python:yDe,react:FDe,reasonml:EDe,rescript:RDe,R:SDe,ruby:xDe,html_erb:GDe,rust:kDe,sass:DDe,spring:NDe,slim:ZDe,smarty:HDe,sbt:XDe,scala:LDe,ethereum:MDe,stylus:TDe,svelte:VDe,swift:YDe,db:IDe,terraform:UDe,tex:ODe,default:'',twig:JDe,typescript:zDe,tsconfig:PDe,vala:jDe,vue:_De,wasm:$De,wat:qDe,xml:eNe,yml:tNe,prolog:nNe,zip:rNe,wgt:iNe,illustrator:aNe,photoshop:oNe,pdf:lNe,font:sNe,image:uNe,svg:cNe,sublime:dNe,"code-search":'',shell:pNe,video:gNe,audio:hNe,windows:fNe,jenkins:mNe,babel:ANe,bower:CNe,docker:BNe,"code-climate":'',eslint:wNe,firebase:bNe,firefox:vNe,grunt:KNe,gulp:QNe,ionic:WNe,platformio:yNe,rollup:FNe,stylelint:ENe,yarn:RNe,webpack:SNe,lock:xNe,license:GNe,makefile:kNe,heroku:DNe,todo:NNe,npm_ignored:ZNe,ignored:HNe};var YB=hn&&hn.__assign||function(){return YB=Object.assign||function(e){for(var t,n=1,r=arguments.length;n-1)return i[1]}return tp.default},gP=function(e){var t=VNe(e),n=t[0],r=t[1];return{svg:TNe[n],color:r}};FR.getIcon=gP;var YNe=function(e){return function(t){var n=gP(t);return YB(YB({},n),{color:e[n.color]})}},INe=FR.themeIcons=YNe;const IB=({filename:e,height:t,width:n})=>{const r=e.includes(" (")?e.split(" "):[e,""];r.pop();const i=INe({blue:"#268bd2",grey:"#657b83","grey-light":"#839496",green:"#859900",orange:"#cb4b16",pink:"#d33682",purple:"#6c71c4",red:"#dc322f",white:"#fdf6e3",yellow:"#b58900",ignore:"#586e75"}),{svg:a,color:o}=i(r.join(" ")),l=$Ge.sanitize(a);return W.jsx("div",{dangerouslySetInnerHTML:{__html:l},style:{width:n,height:t,fill:o,flexShrink:0}})},jZ=Ve.div` cursor: pointer; padding-left: 6px; padding-right: 10px; @@ -1542,24 +1234,25 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho margin-left: 4px; display: flex; align-items: center; - border-radius: ${Pl}; + border-radius: ${jt}; width: fit-content; &:hover { background-color: #fff1; } -`,CCI=I=>{var e;const[l,c]=Gl.useState(!1);if(!I.contextItems||I.contextItems.length===0)return null;function G(d){if(d.description.startsWith("http"))window.open(d.description,"_blank");else if(d.description.startsWith("/")||d.description.startsWith("\\"))if(d.name.includes(" (")&&d.name.endsWith(")")){const t=QxI(d);new QW().showLines(t.filepath,t.range.start.line,t.range.end.line)}else new QW().openFile(d.description);else new QW().showVirtualFile(d.name,d.content)}return v.jsxs("div",{style:{paddingLeft:"8px",paddingTop:"8px",backgroundColor:fc},children:[v.jsxs("div",{style:{color:ul,cursor:"pointer",display:"flex",justifyContent:"left",alignItems:"center",fontSize:"11px"},onClick:()=>c(d=>!d),children:[l?v.jsx(CS,{width:"1.0em",height:"1.0em",style:{color:ul}}):v.jsx(US,{width:"1.0em",height:"1.0em",style:{color:ul}}),"Context Used"]}),l&&v.jsx("div",{style:{paddingTop:"2px"},children:(e=I.contextItems)==null?void 0:e.map((d,t)=>d.description.startsWith("http")?v.jsx("a",{href:d.description,target:"_blank",style:{color:ec,textDecoration:"none"},children:v.jsxs(_U,{onClick:()=>{G(d)},children:[v.jsx(gi,{filename:d.description.split(" ").shift().split("#").shift()||"",height:"1.6em",width:"1.6em"}),d.name]})},t):v.jsxs(_U,{onClick:()=>{G(d)},children:[v.jsx(gi,{filename:d.description.split(" ").shift(),height:"1.6em",width:"1.6em"}),d.name]},t))})]})};function ue(I){this.content=I}ue.prototype={constructor:ue,find:function(I){for(var l=0;l>1}};ue.from=function(I){if(I instanceof ue)return I;var l=[];if(I)for(var c in I)l.push(c,I[c]);return new ue(l)};function QO(I,l,c){for(let G=0;;G++){if(G==I.childCount||G==l.childCount)return I.childCount==l.childCount?null:c;let e=I.child(G),d=l.child(G);if(e==d){c+=e.nodeSize;continue}if(!e.sameMarkup(d))return c;if(e.isText&&e.text!=d.text){for(let t=0;e.text[t]==d.text[t];t++)c++;return c}if(e.content.size||d.content.size){let t=QO(e.content,d.content,c+1);if(t!=null)return t}c+=e.nodeSize}}function wO(I,l,c,G){for(let e=I.childCount,d=l.childCount;;){if(e==0||d==0)return e==d?null:{a:c,b:G};let t=I.child(--e),n=l.child(--d),b=t.nodeSize;if(t==n){c-=b,G-=b;continue}if(!t.sameMarkup(n))return{a:c,b:G};if(t.isText&&t.text!=n.text){let a=0,Z=Math.min(t.text.length,n.text.length);for(;al&&G(b,e+n,d||null,t)!==!1&&b.content.size){let Z=n+1;b.nodesBetween(Math.max(0,l-Z),Math.min(b.content.size,c-Z),G,e+Z)}n=a}}descendants(l){this.nodesBetween(0,this.size,l)}textBetween(l,c,G,e){let d="",t=!0;return this.nodesBetween(l,c,(n,b)=>{let a=n.isText?n.text.slice(Math.max(l,b)-b,c-b):n.isLeaf?e?typeof e=="function"?e(n):e:n.type.spec.leafText?n.type.spec.leafText(n):"":"";n.isBlock&&(n.isLeaf&&a||n.isTextblock)&&G&&(t?t=!1:d+=G),d+=a},0),d}append(l){if(!l.size)return this;if(!this.size)return l;let c=this.lastChild,G=l.firstChild,e=this.content.slice(),d=0;for(c.isText&&c.sameMarkup(G)&&(e[e.length-1]=c.withText(c.text+G.text),d=1);dl)for(let d=0,t=0;tl&&((tc)&&(n.isText?n=n.cut(Math.max(0,l-t),Math.min(n.text.length,c-t)):n=n.cut(Math.max(0,l-t-1),Math.min(n.content.size,c-t-1))),G.push(n),e+=n.nodeSize),t=b}return new TI(G,e)}cutByIndex(l,c){return l==c?TI.empty:l==0&&c==this.content.length?this:new TI(this.content.slice(l,c))}replaceChild(l,c){let G=this.content[l];if(G==c)return this;let e=this.content.slice(),d=this.size+c.nodeSize-G.nodeSize;return e[l]=c,new TI(e,d)}addToStart(l){return new TI([l].concat(this.content),this.size+l.nodeSize)}addToEnd(l){return new TI(this.content.concat(l),this.size+l.nodeSize)}eq(l){if(this.content.length!=l.content.length)return!1;for(let c=0;cthis.size||l<0)throw new RangeError(`Position ${l} outside of fragment (${this})`);for(let G=0,e=0;;G++){let d=this.child(G),t=e+d.nodeSize;if(t>=l)return t==l||c>0?s2(G+1,t):s2(G,e);e=t}}toString(){return"<"+this.toStringInner()+">"}toStringInner(){return this.content.join(", ")}toJSON(){return this.content.length?this.content.map(l=>l.toJSON()):null}static fromJSON(l,c){if(!c)return TI.empty;if(!Array.isArray(c))throw new RangeError("Invalid input for Fragment.fromJSON");return new TI(c.map(l.nodeFromJSON))}static fromArray(l){if(!l.length)return TI.empty;let c,G=0;for(let e=0;ethis.type.rank&&(c||(c=l.slice(0,e)),c.push(this),G=!0),c&&c.push(d)}}return c||(c=l.slice()),G||c.push(this),c}removeFromSet(l){for(let c=0;cG.type.rank-e.type.rank),c}};Cc.none=[];class yi extends Error{}class ol{constructor(l,c,G){this.content=l,this.openStart=c,this.openEnd=G}get size(){return this.content.size-this.openStart-this.openEnd}insertAt(l,c){let G=vO(this.content,l+this.openStart,c);return G&&new ol(G,this.openStart,this.openEnd)}removeBetween(l,c){return new ol(EO(this.content,l+this.openStart,c+this.openStart),this.openStart,this.openEnd)}eq(l){return this.content.eq(l.content)&&this.openStart==l.openStart&&this.openEnd==l.openEnd}toString(){return this.content+"("+this.openStart+","+this.openEnd+")"}toJSON(){if(!this.content.size)return null;let l={content:this.content.toJSON()};return this.openStart>0&&(l.openStart=this.openStart),this.openEnd>0&&(l.openEnd=this.openEnd),l}static fromJSON(l,c){if(!c)return ol.empty;let G=c.openStart||0,e=c.openEnd||0;if(typeof G!="number"||typeof e!="number")throw new RangeError("Invalid input for Slice.fromJSON");return new ol(TI.fromJSON(l,c.content),G,e)}static maxOpen(l,c=!0){let G=0,e=0;for(let d=l.firstChild;d&&!d.isLeaf&&(c||!d.type.spec.isolating);d=d.firstChild)G++;for(let d=l.lastChild;d&&!d.isLeaf&&(c||!d.type.spec.isolating);d=d.lastChild)e++;return new ol(l,G,e)}}ol.empty=new ol(TI.empty,0,0);function EO(I,l,c){let{index:G,offset:e}=I.findIndex(l),d=I.maybeChild(G),{index:t,offset:n}=I.findIndex(c);if(e==l||d.isText){if(n!=c&&!I.child(t).isText)throw new RangeError("Removing non-flat range");return I.cut(0,l).append(I.cut(c))}if(G!=t)throw new RangeError("Removing non-flat range");return I.replaceChild(G,d.copy(EO(d.content,l-e-1,c-e-1)))}function vO(I,l,c,G){let{index:e,offset:d}=I.findIndex(l),t=I.maybeChild(e);if(d==l||t.isText)return G&&!G.canReplace(e,e,c)?null:I.cut(0,l).append(c).append(I.cut(l));let n=vO(t.content,l-d-1,c);return n&&I.replaceChild(e,t.copy(n))}function MCI(I,l,c){if(c.openStart>I.depth)throw new yi("Inserted content deeper than insertion position");if(I.depth-c.openStart!=l.depth-c.openEnd)throw new yi("Inconsistent open depths");return gO(I,l,c,0)}function gO(I,l,c,G){let e=I.index(G),d=I.node(G);if(e==l.index(G)&&G=0&&I.isText&&I.sameMarkup(l[c])?l[c]=I.withText(l[c].text+I.text):l.push(I)}function hu(I,l,c,G){let e=(l||I).node(c),d=0,t=l?l.index(c):e.childCount;I&&(d=I.index(c),I.depth>c?d++:I.textOffset&&(EW(I.nodeAfter,G),d++));for(let n=d;ne&&HE(I,l,e+1),t=G.depth>e&&HE(c,G,e+1),n=[];return hu(null,I,e,n),d&&t&&l.index(e)==c.index(e)?(AO(d,t),EW(vW(d,yO(I,l,c,G,e+1)),n)):(d&&EW(vW(d,Ji(I,l,e+1)),n),hu(l,c,e,n),t&&EW(vW(t,Ji(c,G,e+1)),n)),hu(G,null,e,n),new TI(n)}function Ji(I,l,c){let G=[];if(hu(null,I,c,G),I.depth>c){let e=HE(I,l,c+1);EW(vW(e,Ji(I,l,c+1)),G)}return hu(l,null,c,G),new TI(G)}function fCI(I,l){let c=l.depth-I.openStart,e=l.node(c).copy(I.content);for(let d=c-1;d>=0;d--)e=l.node(d).copy(TI.from(e));return{start:e.resolveNoCache(I.openStart+c),end:e.resolveNoCache(e.content.size-I.openEnd-c)}}class Wh{constructor(l,c,G){this.pos=l,this.path=c,this.parentOffset=G,this.depth=c.length/3-1}resolveDepth(l){return l==null?this.depth:l<0?this.depth+l:l}get parent(){return this.node(this.depth)}get doc(){return this.node(0)}node(l){return this.path[this.resolveDepth(l)*3]}index(l){return this.path[this.resolveDepth(l)*3+1]}indexAfter(l){return l=this.resolveDepth(l),this.index(l)+(l==this.depth&&!this.textOffset?0:1)}start(l){return l=this.resolveDepth(l),l==0?0:this.path[l*3-1]+1}end(l){return l=this.resolveDepth(l),this.start(l)+this.node(l).content.size}before(l){if(l=this.resolveDepth(l),!l)throw new RangeError("There is no position before the top-level node");return l==this.depth+1?this.pos:this.path[l*3-1]}after(l){if(l=this.resolveDepth(l),!l)throw new RangeError("There is no position after the top-level node");return l==this.depth+1?this.pos:this.path[l*3-1]+this.path[l*3].nodeSize}get textOffset(){return this.pos-this.path[this.path.length-1]}get nodeAfter(){let l=this.parent,c=this.index(this.depth);if(c==l.childCount)return null;let G=this.pos-this.path[this.path.length-1],e=l.child(c);return G?l.child(c).cut(G):e}get nodeBefore(){let l=this.index(this.depth),c=this.pos-this.path[this.path.length-1];return c?this.parent.child(l).cut(0,c):l==0?null:this.parent.child(l-1)}posAtIndex(l,c){c=this.resolveDepth(c);let G=this.path[c*3],e=c==0?0:this.path[c*3-1]+1;for(let d=0;d0;c--)if(this.start(c)<=l&&this.end(c)>=l)return c;return 0}blockRange(l=this,c){if(l.pos=0;G--)if(l.pos<=this.end(G)&&(!c||c(this.node(G))))return new Bi(this,l,G);return null}sameParent(l){return this.pos-this.parentOffset==l.pos-l.parentOffset}max(l){return l.pos>this.pos?l:this}min(l){return l.pos=0&&c<=l.content.size))throw new RangeError("Position "+c+" out of range");let G=[],e=0,d=c;for(let t=l;;){let{index:n,offset:b}=t.content.findIndex(d),a=d-b;if(G.push(t,n,e+b),!a||(t=t.child(n),t.isText))break;d=a-1,e+=b+1}return new Wh(c,G,d)}static resolveCached(l,c){for(let e=0;el&&this.nodesBetween(l,c,d=>(G.isInSet(d.marks)&&(e=!0),!e)),e}get isBlock(){return this.type.isBlock}get isTextblock(){return this.type.isTextblock}get inlineContent(){return this.type.inlineContent}get isInline(){return this.type.isInline}get isText(){return this.type.isText}get isLeaf(){return this.type.isLeaf}get isAtom(){return this.type.isAtom}toString(){if(this.type.spec.toDebugString)return this.type.spec.toDebugString(this);let l=this.type.name;return this.content.size&&(l+="("+this.content.toStringInner()+")"),JO(this.marks,l)}contentMatchAt(l){let c=this.type.contentMatch.matchFragment(this.content,0,l);if(!c)throw new Error("Called contentMatchAt on a node with invalid content");return c}canReplace(l,c,G=TI.empty,e=0,d=G.childCount){let t=this.contentMatchAt(l).matchFragment(G,e,d),n=t&&t.matchFragment(this.content,c);if(!n||!n.validEnd)return!1;for(let b=e;bc.type.name)}`);this.content.forEach(c=>c.check())}toJSON(){let l={type:this.type.name};for(let c in this.attrs){l.attrs=this.attrs;break}return this.content.size&&(l.content=this.content.toJSON()),this.marks.length&&(l.marks=this.marks.map(c=>c.toJSON())),l}static fromJSON(l,c){if(!c)throw new RangeError("Invalid input for Node.fromJSON");let G=null;if(c.marks){if(!Array.isArray(c.marks))throw new RangeError("Invalid mark data for Node.fromJSON");G=c.marks.map(l.markFromJSON)}if(c.type=="text"){if(typeof c.text!="string")throw new RangeError("Invalid text node in JSON");return l.text(c.text,G)}let e=TI.fromJSON(l,c.content);return l.nodeType(c.type).create(c.attrs,e,G)}};gW.prototype.text=void 0;class ki extends gW{constructor(l,c,G,e){if(super(l,c,null,e),!G)throw new RangeError("Empty text nodes are not allowed");this.text=G}toString(){return this.type.spec.toDebugString?this.type.spec.toDebugString(this):JO(this.marks,JSON.stringify(this.text))}get textContent(){return this.text}textBetween(l,c){return this.text.slice(l,c)}get nodeSize(){return this.text.length}mark(l){return l==this.marks?this:new ki(this.type,this.attrs,this.text,l)}withText(l){return l==this.text?this:new ki(this.type,this.attrs,l,this.marks)}cut(l=0,c=this.text.length){return l==0&&c==this.text.length?this:this.withText(this.text.slice(l,c))}eq(l){return this.sameMarkup(l)&&this.text==l.text}toJSON(){let l=super.toJSON();return l.text=this.text,l}}function JO(I,l){for(let c=I.length-1;c>=0;c--)l=I[c].type.name+"("+l+")";return l}class jW{constructor(l){this.validEnd=l,this.next=[],this.wrapCache=[]}static parse(l,c){let G=new SCI(l,c);if(G.next==null)return jW.empty;let e=BO(G);G.next&&G.err("Unexpected trailing text");let d=qCI(_CI(e));return $CI(d,G),d}matchType(l){for(let c=0;ca.createAndFill()));for(let a=0;a=this.next.length)throw new RangeError(`There's no ${l}th edge in this content match`);return this.next[l]}toString(){let l=[];function c(G){l.push(G);for(let e=0;e{let d=e+(G.validEnd?"*":" ")+" ";for(let t=0;t"+l.indexOf(G.next[t].next);return d}).join(` -`)}}jW.empty=new jW(!0);class SCI{constructor(l,c){this.string=l,this.nodeTypes=c,this.inline=null,this.pos=0,this.tokens=l.split(/\s*(?=\b|\W|$)/),this.tokens[this.tokens.length-1]==""&&this.tokens.pop(),this.tokens[0]==""&&this.tokens.shift()}get next(){return this.tokens[this.pos]}eat(l){return this.next==l&&(this.pos++||!0)}err(l){throw new SyntaxError(l+" (in content expression '"+this.string+"')")}}function BO(I){let l=[];do l.push(TCI(I));while(I.eat("|"));return l.length==1?l[0]:{type:"choice",exprs:l}}function TCI(I){let l=[];do l.push(jCI(I));while(I.next&&I.next!=")"&&I.next!="|");return l.length==1?l[0]:{type:"seq",exprs:l}}function jCI(I){let l=PCI(I);for(;;)if(I.eat("+"))l={type:"plus",expr:l};else if(I.eat("*"))l={type:"star",expr:l};else if(I.eat("?"))l={type:"opt",expr:l};else if(I.eat("{"))l=DCI(I,l);else break;return l}function qU(I){/\D/.test(I.next)&&I.err("Expected number, got '"+I.next+"'");let l=Number(I.next);return I.pos++,l}function DCI(I,l){let c=qU(I),G=c;return I.eat(",")&&(I.next!="}"?G=qU(I):G=-1),I.eat("}")||I.err("Unclosed braced range"),{type:"range",min:c,max:G,expr:l}}function OCI(I,l){let c=I.nodeTypes,G=c[l];if(G)return[G];let e=[];for(let d in c){let t=c[d];t.groups.indexOf(l)>-1&&e.push(t)}return e.length==0&&I.err("No node type or group '"+l+"' found"),e}function PCI(I){if(I.eat("(")){let l=BO(I);return I.eat(")")||I.err("Missing closing paren"),l}else if(/\W/.test(I.next))I.err("Unexpected token '"+I.next+"'");else{let l=OCI(I,I.next).map(c=>(I.inline==null?I.inline=c.isInline:I.inline!=c.isInline&&I.err("Mixing inline and block content"),{type:"name",value:c}));return I.pos++,l.length==1?l[0]:{type:"choice",exprs:l}}}function _CI(I){let l=[[]];return e(d(I,0),c()),l;function c(){return l.push([])-1}function G(t,n,b){let a={term:b,to:n};return l[t].push(a),a}function e(t,n){t.forEach(b=>b.to=n)}function d(t,n){if(t.type=="choice")return t.exprs.reduce((b,a)=>b.concat(d(a,n)),[]);if(t.type=="seq")for(let b=0;;b++){let a=d(t.exprs[b],n);if(b==t.exprs.length-1)return a;e(a,n=c())}else if(t.type=="star"){let b=c();return G(n,b),e(d(t.expr,b),b),[G(b)]}else if(t.type=="plus"){let b=c();return e(d(t.expr,n),b),e(d(t.expr,b),b),[G(b)]}else{if(t.type=="opt")return[G(n)].concat(d(t.expr,n));if(t.type=="range"){let b=n;for(let a=0;a{I[t].forEach(({term:n,to:b})=>{if(!n)return;let a;for(let Z=0;Z{a||e.push([n,a=[]]),a.indexOf(Z)==-1&&a.push(Z)})})});let d=l[G.join(",")]=new jW(G.indexOf(I.length-1)>-1);for(let t=0;t-1}allowsMarks(l){if(this.markSet==null)return!0;for(let c=0;cG[d]=new CO(d,c,t));let e=c.spec.topNode||"doc";if(!G[e])throw new RangeError("Schema is missing its top node type ('"+e+"')");if(!G.text)throw new RangeError("Every schema needs a 'text' type");for(let d in G.text.attrs)throw new RangeError("The text node type should not have attributes");return G}};class IMI{constructor(l){this.hasDefault=Object.prototype.hasOwnProperty.call(l,"default"),this.default=l.default}get isRequired(){return!this.hasDefault}}class CN{constructor(l,c,G,e){this.name=l,this.rank=c,this.schema=G,this.spec=e,this.attrs=UO(e.attrs),this.excluded=null;let d=xO(this.attrs);this.instance=d?new Cc(this,d):null}create(l=null){return!l&&this.instance?this.instance:new Cc(this,zO(this.attrs,l))}static compile(l,c){let G=Object.create(null),e=0;return l.forEach((d,t)=>G[d]=new CN(d,e++,c,t)),G}removeFromSet(l){for(var c=0;c-1}}class lMI{constructor(l){this.cached=Object.create(null);let c=this.spec={};for(let e in l)c[e]=l[e];c.nodes=ue.from(l.nodes),c.marks=ue.from(l.marks||{}),this.nodes=IC.compile(this.spec.nodes,this),this.marks=CN.compile(this.spec.marks,this);let G=Object.create(null);for(let e in this.nodes){if(e in this.marks)throw new RangeError(e+" can not be both a node and a mark");let d=this.nodes[e],t=d.spec.content||"",n=d.spec.marks;d.contentMatch=G[t]||(G[t]=jW.parse(t,this.nodes)),d.inlineContent=d.contentMatch.inlineContent,d.markSet=n=="_"?null:n?lC(this,n.split(" ")):n==""||!d.inlineContent?[]:null}for(let e in this.marks){let d=this.marks[e],t=d.spec.excludes;d.excluded=t==null?[d]:t==""?[]:lC(this,t.split(" "))}this.nodeFromJSON=this.nodeFromJSON.bind(this),this.markFromJSON=this.markFromJSON.bind(this),this.topNodeType=this.nodes[this.spec.topNode||"doc"],this.cached.wrappings=Object.create(null)}node(l,c=null,G,e){if(typeof l=="string")l=this.nodeType(l);else if(l instanceof IC){if(l.schema!=this)throw new RangeError("Node type from different schema used ("+l.name+")")}else throw new RangeError("Invalid node type: "+l);return l.createChecked(c,G,e)}text(l,c){let G=this.nodes.text;return new ki(G,G.defaultAttrs,l,Cc.setFrom(c))}mark(l,c){return typeof l=="string"&&(l=this.marks[l]),l.create(c)}nodeFromJSON(l){return gW.fromJSON(this,l)}markFromJSON(l){return Cc.fromJSON(this,l)}nodeType(l){let c=this.nodes[l];if(!c)throw new RangeError("Unknown node type: "+l);return c}}function lC(I,l){let c=[];for(let G=0;G-1)&&c.push(t=b)}if(!t)throw new SyntaxError("Unknown mark type: '"+l[G]+"'")}return c}let Yy=class wE{constructor(l,c){this.schema=l,this.rules=c,this.tags=[],this.styles=[],c.forEach(G=>{G.tag?this.tags.push(G):G.style&&this.styles.push(G)}),this.normalizeLists=!this.tags.some(G=>{if(!/^(ul|ol)\b/.test(G.tag)||!G.node)return!1;let e=l.nodes[G.node];return e.contentMatch.matchType(e)})}parse(l,c={}){let G=new GC(this,c,!1);return G.addAll(l,c.from,c.to),G.finish()}parseSlice(l,c={}){let G=new GC(this,c,!0);return G.addAll(l,c.from,c.to),ol.maxOpen(G.finish())}matchTag(l,c,G){for(let e=G?this.tags.indexOf(G)+1:0;el.length&&(n.charCodeAt(l.length)!=61||n.slice(l.length+1)!=c))){if(t.getAttrs){let b=t.getAttrs(c);if(b===!1)continue;t.attrs=b||void 0}return t}}}static schemaRules(l){let c=[];function G(e){let d=e.priority==null?50:e.priority,t=0;for(;t{G(t=eC(t)),t.mark||t.ignore||t.clearMark||(t.mark=e)})}for(let e in l.nodes){let d=l.nodes[e].spec.parseDOM;d&&d.forEach(t=>{G(t=eC(t)),t.node||t.ignore||t.mark||(t.node=e)})}return c}static fromSchema(l){return l.cached.domParser||(l.cached.domParser=new wE(l,wE.schemaRules(l)))}};const MO={address:!0,article:!0,aside:!0,blockquote:!0,canvas:!0,dd:!0,div:!0,dl:!0,fieldset:!0,figcaption:!0,figure:!0,footer:!0,form:!0,h1:!0,h2:!0,h3:!0,h4:!0,h5:!0,h6:!0,header:!0,hgroup:!0,hr:!0,li:!0,noscript:!0,ol:!0,output:!0,p:!0,pre:!0,section:!0,table:!0,tfoot:!0,ul:!0},cMI={head:!0,noscript:!0,object:!0,script:!0,style:!0,title:!0},fO={ol:!0,ul:!0},xi=1,zi=2,pu=4;function cC(I,l,c){return l!=null?(l?xi:0)|(l==="full"?zi:0):I&&I.whitespace=="pre"?xi|zi:c&~pu}class u2{constructor(l,c,G,e,d,t,n){this.type=l,this.attrs=c,this.marks=G,this.pendingMarks=e,this.solid=d,this.options=n,this.content=[],this.activeMarks=Cc.none,this.stashMarks=[],this.match=t||(n&pu?null:l.contentMatch)}findWrapping(l){if(!this.match){if(!this.type)return[];let c=this.type.contentMatch.fillBefore(TI.from(l));if(c)this.match=this.type.contentMatch.matchFragment(c);else{let G=this.type.contentMatch,e;return(e=G.findWrapping(l.type))?(this.match=G,e):null}}return this.match.findWrapping(l.type)}finish(l){if(!(this.options&xi)){let G=this.content[this.content.length-1],e;if(G&&G.isText&&(e=/[ \t\r\n\u000c]+$/.exec(G.text))){let d=G;G.text.length==e[0].length?this.content.pop():this.content[this.content.length-1]=d.withText(d.text.slice(0,d.text.length-e[0].length))}}let c=TI.from(this.content);return!l&&this.match&&(c=c.append(this.match.fillBefore(TI.empty,!0))),this.type?this.type.create(this.attrs,c,this.marks):c}popFromStashMark(l){for(let c=this.stashMarks.length-1;c>=0;c--)if(l.eq(this.stashMarks[c]))return this.stashMarks.splice(c,1)[0]}applyPending(l){for(let c=0,G=this.pendingMarks;cthis.addAll(l)),t&&this.sync(n),this.needsBlock=b}else this.withStyleRules(l,()=>{this.addElementByRule(l,d,d.consuming===!1?e:void 0)})}leafFallback(l){l.nodeName=="BR"&&this.top.type&&this.top.type.inlineContent&&this.addTextNode(l.ownerDocument.createTextNode(` -`))}ignoreFallback(l){l.nodeName=="BR"&&(!this.top.type||!this.top.type.inlineContent)&&this.findPlace(this.parser.schema.text("-"))}readStyles(l){let c=Cc.none,G=Cc.none;for(let e=0;e{t.clearMark(n)&&(G=n.addToSet(G))}):c=this.parser.schema.marks[t.mark].create(t.attrs).addToSet(c),t.consuming===!1)d=t;else break}return[c,G]}addElementByRule(l,c,G){let e,d,t;c.node?(d=this.parser.schema.nodes[c.node],d.isLeaf?this.insertNode(d.create(c.attrs))||this.leafFallback(l):e=this.enter(d,c.attrs||null,c.preserveWhitespace)):(t=this.parser.schema.marks[c.mark].create(c.attrs),this.addPendingMark(t));let n=this.top;if(d&&d.isLeaf)this.findInside(l);else if(G)this.addElement(l,G);else if(c.getContent)this.findInside(l),c.getContent(l,this.parser.schema).forEach(b=>this.insertNode(b));else{let b=l;typeof c.contentElement=="string"?b=l.querySelector(c.contentElement):typeof c.contentElement=="function"?b=c.contentElement(l):c.contentElement&&(b=c.contentElement),this.findAround(l,b,!0),this.addAll(b)}e&&this.sync(n)&&this.open--,t&&this.removePendingMark(t,n)}addAll(l,c,G){let e=c||0;for(let d=c?l.childNodes[c]:l.firstChild,t=G==null?null:l.childNodes[G];d!=t;d=d.nextSibling,++e)this.findAtPoint(l,e),this.addDOM(d);this.findAtPoint(l,e)}findPlace(l){let c,G;for(let e=this.open;e>=0;e--){let d=this.nodes[e],t=d.findWrapping(l);if(t&&(!c||c.length>t.length)&&(c=t,G=d,!t.length)||d.solid)break}if(!c)return!1;this.sync(G);for(let e=0;ethis.open){for(;c>this.open;c--)this.nodes[c-1].content.push(this.nodes[c].finish(l));this.nodes.length=this.open+1}}finish(){return this.open=0,this.closeExtra(this.isOpen),this.nodes[0].finish(this.isOpen||this.options.topOpen)}sync(l){for(let c=this.open;c>=0;c--)if(this.nodes[c]==l)return this.open=c,!0;return!1}get currentPos(){this.closeExtra();let l=0;for(let c=this.open;c>=0;c--){let G=this.nodes[c].content;for(let e=G.length-1;e>=0;e--)l+=G[e].nodeSize;c&&l++}return l}findAtPoint(l,c){if(this.find)for(let G=0;G-1)return l.split(/\s*\|\s*/).some(this.matchesContext,this);let c=l.split("/"),G=this.options.context,e=!this.isOpen&&(!G||G.parent.type==this.nodes[0].type),d=-(G?G.depth+1:0)+(e?0:1),t=(n,b)=>{for(;n>=0;n--){let a=c[n];if(a==""){if(n==c.length-1||n==0)continue;for(;b>=d;b--)if(t(n-1,b))return!0;return!1}else{let Z=b>0||b==0&&e?this.nodes[b].type:G&&b>=d?G.node(b-d).type:null;if(!Z||Z.name!=a&&Z.groups.indexOf(a)==-1)return!1;b--}}return!0};return t(c.length-1,this.open)}textblockFromContext(){let l=this.options.context;if(l)for(let c=l.depth;c>=0;c--){let G=l.node(c).contentMatchAt(l.indexAfter(c)).defaultType;if(G&&G.isTextblock&&G.defaultAttrs)return G}for(let c in this.parser.schema.nodes){let G=this.parser.schema.nodes[c];if(G.isTextblock&&G.defaultAttrs)return G}}addPendingMark(l){let c=nMI(l,this.top.pendingMarks);c&&this.top.stashMarks.push(c),this.top.pendingMarks=l.addToSet(this.top.pendingMarks)}removePendingMark(l,c){for(let G=this.open;G>=0;G--){let e=this.nodes[G];if(e.pendingMarks.lastIndexOf(l)>-1)e.pendingMarks=l.removeFromSet(e.pendingMarks);else{e.activeMarks=l.removeFromSet(e.activeMarks);let t=e.popFromStashMark(l);t&&e.type&&e.type.allowsMarkType(t.type)&&(e.activeMarks=t.addToSet(e.activeMarks))}if(e==c)break}}}function GMI(I){for(let l=I.firstChild,c=null;l;l=l.nextSibling){let G=l.nodeType==1?l.nodeName.toLowerCase():null;G&&fO.hasOwnProperty(G)&&c?(c.appendChild(l),l=c):G=="li"?c=l:G&&(c=null)}}function eMI(I,l){return(I.matches||I.msMatchesSelector||I.webkitMatchesSelector||I.mozMatchesSelector).call(I,l)}function dMI(I){let l=/\s*([\w-]+)\s*:\s*([^;]+)/g,c,G=[];for(;c=l.exec(I);)G.push(c[1],c[2].trim());return G}function eC(I){let l={};for(let c in I)l[c]=I[c];return l}function tMI(I,l){let c=l.schema.nodes;for(let G in c){let e=c[G];if(!e.allowsMarkType(I))continue;let d=[],t=n=>{d.push(n);for(let b=0;b{if(d.length||t.marks.length){let n=0,b=0;for(;n=0;e--){let d=this.serializeMark(l.marks[e],l.isInline,c);d&&((d.contentDOM||d.dom).appendChild(G),G=d.dom)}return G}serializeMark(l,c,G={}){let e=this.marks[l.type.name];return e&&jn.renderSpec(uH(G),e(l,c))}static renderSpec(l,c,G=null){if(typeof c=="string")return{dom:l.createTextNode(c)};if(c.nodeType!=null)return{dom:c};if(c.dom&&c.dom.nodeType!=null)return c;let e=c[0],d=e.indexOf(" ");d>0&&(G=e.slice(0,d),e=e.slice(d+1));let t,n=G?l.createElementNS(G,e):l.createElement(e),b=c[1],a=1;if(b&&typeof b=="object"&&b.nodeType==null&&!Array.isArray(b)){a=2;for(let Z in b)if(b[Z]!=null){let W=Z.indexOf(" ");W>0?n.setAttributeNS(Z.slice(0,W),Z.slice(W+1),b[Z]):n.setAttribute(Z,b[Z])}}for(let Z=a;Za)throw new RangeError("Content hole must be the only child of its parent node");return{dom:n,contentDOM:n}}else{let{dom:m,contentDOM:s}=jn.renderSpec(l,W,G);if(n.appendChild(m),s){if(t)throw new RangeError("Multiple content holes");t=s}}}return{dom:n,contentDOM:t}}static fromSchema(l){return l.cached.domSerializer||(l.cached.domSerializer=new jn(this.nodesFromSchema(l),this.marksFromSchema(l)))}static nodesFromSchema(l){let c=dC(l.nodes);return c.text||(c.text=G=>G.text),c}static marksFromSchema(l){return dC(l.marks)}}function dC(I){let l={};for(let c in I){let G=I[c].spec.toDOM;G&&(l[c]=G)}return l}function uH(I){return I.document||window.document}const KO=65535,LO=Math.pow(2,16);function bMI(I,l){return I+l*LO}function tC(I){return I&KO}function aMI(I){return(I-(I&KO))/LO}const SO=1,TO=2,IV=4,jO=8;class EE{constructor(l,c,G){this.pos=l,this.delInfo=c,this.recover=G}get deleted(){return(this.delInfo&jO)>0}get deletedBefore(){return(this.delInfo&(SO|IV))>0}get deletedAfter(){return(this.delInfo&(TO|IV))>0}get deletedAcross(){return(this.delInfo&IV)>0}}class Kd{constructor(l,c=!1){if(this.ranges=l,this.inverted=c,!l.length&&Kd.empty)return Kd.empty}recover(l){let c=0,G=tC(l);if(!this.inverted)for(let e=0;el)break;let a=this.ranges[n+d],Z=this.ranges[n+t],W=b+a;if(l<=W){let m=a?l==b?-1:l==W?1:c:c,s=b+e+(m<0?0:Z);if(G)return s;let h=l==(c<0?b:W)?null:bMI(n/3,l-b),p=l==b?TO:l==W?SO:IV;return(c<0?l!=b:l!=W)&&(p|=jO),new EE(s,p,h)}e+=Z-a}return G?l+e:new EE(l+e,0,null)}touches(l,c){let G=0,e=tC(c),d=this.inverted?2:1,t=this.inverted?1:2;for(let n=0;nl)break;let a=this.ranges[n+d],Z=b+a;if(l<=Z&&n==e*3)return!0;G+=this.ranges[n+t]-a}return!1}forEach(l){let c=this.inverted?2:1,G=this.inverted?1:2;for(let e=0,d=0;e=0;c--){let e=l.getMirror(c);this.appendMap(l.maps[c].invert(),e!=null&&e>c?G-e-1:void 0)}}invert(){let l=new ym;return l.appendMappingInverted(this),l}map(l,c=1){if(this.mirror)return this._map(l,c,!0);for(let G=this.from;Gd&&b!t.isAtom||!n.type.allowsMarkType(this.mark.type)?t:t.mark(this.mark.addToSet(t.marks)),e),c.openStart,c.openEnd);return xG.fromReplace(l,this.from,this.to,d)}invert(){return new Dn(this.from,this.to,this.mark)}map(l){let c=l.mapResult(this.from,1),G=l.mapResult(this.to,-1);return c.deleted&&G.deleted||c.pos>=G.pos?null:new fa(c.pos,G.pos,this.mark)}merge(l){return l instanceof fa&&l.mark.eq(this.mark)&&this.from<=l.to&&this.to>=l.from?new fa(Math.min(this.from,l.from),Math.max(this.to,l.to),this.mark):null}toJSON(){return{stepType:"addMark",mark:this.mark.toJSON(),from:this.from,to:this.to}}static fromJSON(l,c){if(typeof c.from!="number"||typeof c.to!="number")throw new RangeError("Invalid input for AddMarkStep.fromJSON");return new fa(c.from,c.to,l.markFromJSON(c.mark))}}xe.jsonID("addMark",fa);class Dn extends xe{constructor(l,c,G){super(),this.from=l,this.to=c,this.mark=G}apply(l){let c=l.slice(this.from,this.to),G=new ol(Xy(c.content,e=>e.mark(this.mark.removeFromSet(e.marks)),l),c.openStart,c.openEnd);return xG.fromReplace(l,this.from,this.to,G)}invert(){return new fa(this.from,this.to,this.mark)}map(l){let c=l.mapResult(this.from,1),G=l.mapResult(this.to,-1);return c.deleted&&G.deleted||c.pos>=G.pos?null:new Dn(c.pos,G.pos,this.mark)}merge(l){return l instanceof Dn&&l.mark.eq(this.mark)&&this.from<=l.to&&this.to>=l.from?new Dn(Math.min(this.from,l.from),Math.max(this.to,l.to),this.mark):null}toJSON(){return{stepType:"removeMark",mark:this.mark.toJSON(),from:this.from,to:this.to}}static fromJSON(l,c){if(typeof c.from!="number"||typeof c.to!="number")throw new RangeError("Invalid input for RemoveMarkStep.fromJSON");return new Dn(c.from,c.to,l.markFromJSON(c.mark))}}xe.jsonID("removeMark",Dn);class Ka extends xe{constructor(l,c){super(),this.pos=l,this.mark=c}apply(l){let c=l.nodeAt(this.pos);if(!c)return xG.fail("No node at mark step's position");let G=c.type.create(c.attrs,null,this.mark.addToSet(c.marks));return xG.fromReplace(l,this.pos,this.pos+1,new ol(TI.from(G),0,c.isLeaf?0:1))}invert(l){let c=l.nodeAt(this.pos);if(c){let G=this.mark.addToSet(c.marks);if(G.length==c.marks.length){for(let e=0;eG.pos?null:new Ge(c.pos,G.pos,e,d,this.slice,this.insert,this.structure)}toJSON(){let l={stepType:"replaceAround",from:this.from,to:this.to,gapFrom:this.gapFrom,gapTo:this.gapTo,insert:this.insert};return this.slice.size&&(l.slice=this.slice.toJSON()),this.structure&&(l.structure=!0),l}static fromJSON(l,c){if(typeof c.from!="number"||typeof c.to!="number"||typeof c.gapFrom!="number"||typeof c.gapTo!="number"||typeof c.insert!="number")throw new RangeError("Invalid input for ReplaceAroundStep.fromJSON");return new Ge(c.from,c.to,c.gapFrom,c.gapTo,ol.fromJSON(l,c.slice),c.insert,!!c.structure)}}xe.jsonID("replaceAround",Ge);function vE(I,l,c){let G=I.resolve(l),e=c-l,d=G.depth;for(;e>0&&d>0&&G.indexAfter(d)==G.node(d).childCount;)d--,e--;if(e>0){let t=G.node(d).maybeChild(G.indexAfter(d));for(;e>0;){if(!t||t.isLeaf)return!0;t=t.firstChild,e--}}return!1}function ZMI(I,l,c,G){let e=[],d=[],t,n;I.doc.nodesBetween(l,c,(b,a,Z)=>{if(!b.isInline)return;let W=b.marks;if(!G.isInSet(W)&&Z.type.allowsMarkType(G.type)){let m=Math.max(a,l),s=Math.min(a+b.nodeSize,c),h=G.addToSet(W);for(let p=0;pI.step(b)),d.forEach(b=>I.step(b))}function WMI(I,l,c,G){let e=[],d=0;I.doc.nodesBetween(l,c,(t,n)=>{if(!t.isInline)return;d++;let b=null;if(G instanceof CN){let a=t.marks,Z;for(;Z=G.isInSet(a);)(b||(b=[])).push(Z),a=Z.removeFromSet(a)}else G?G.isInSet(t.marks)&&(b=[G]):b=t.marks;if(b&&b.length){let a=Math.min(n+t.nodeSize,c);for(let Z=0;ZI.step(new Dn(t.from,t.to,t.style)))}function rMI(I,l,c,G=c.contentMatch){let e=I.doc.nodeAt(l),d=[],t=l+1;for(let n=0;n=0;n--)I.step(d[n])}function mMI(I,l,c){return(l==0||I.canReplace(l,I.childCount))&&(c==I.childCount||I.canReplace(0,c))}function w0(I){let c=I.parent.content.cutByIndex(I.startIndex,I.endIndex);for(let G=I.depth;;--G){let e=I.$from.node(G),d=I.$from.index(G),t=I.$to.indexAfter(G);if(Gc;h--)p||G.index(h)>0?(p=!0,Z=TI.from(G.node(h).copy(Z)),W++):b--;let m=TI.empty,s=0;for(let h=d,p=!1;h>c;h--)p||e.after(h+1)=0;t--){if(G.size){let n=c[t].type.contentMatch.matchFragment(G);if(!n||!n.validEnd)throw new RangeError("Wrapper type given to Transform.wrap does not form valid content of its parent wrapper")}G=TI.from(c[t].type.create(c[t].attrs,G))}let e=l.start,d=l.end;I.step(new Ge(e,d,e,d,new ol(G,0,0),c.length,!0))}function oMI(I,l,c,G,e){if(!G.isTextblock)throw new RangeError("Type given to setBlockType should be a textblock");let d=I.steps.length;I.doc.nodesBetween(l,c,(t,n)=>{if(t.isTextblock&&!t.hasMarkup(G,e)&&VMI(I.doc,I.mapping.slice(d).map(n),G)){I.clearIncompatible(I.mapping.slice(d).map(n,1),G);let b=I.mapping.slice(d),a=b.map(n,1),Z=b.map(n+t.nodeSize,1);return I.step(new Ge(a,Z,a+1,Z-1,new ol(TI.from(G.create(e,null,t.marks)),0,0),1,!0)),!1}})}function VMI(I,l,c){let G=I.resolve(l),e=G.index();return G.parent.canReplaceWith(e,e+1,c)}function iMI(I,l,c,G,e){let d=I.doc.nodeAt(l);if(!d)throw new RangeError("No node at given position");c||(c=d.type);let t=c.create(G,null,e||d.marks);if(d.isLeaf)return I.replaceWith(l,l+d.nodeSize,t);if(!c.validContent(d.content))throw new RangeError("Invalid content for node type "+c.name);I.step(new Ge(l,l+d.nodeSize,l+1,l+d.nodeSize-1,new ol(TI.from(t),0,0),1,!0))}function Jm(I,l,c=1,G){let e=I.resolve(l),d=e.depth-c,t=G&&G[G.length-1]||e.parent;if(d<0||e.parent.type.spec.isolating||!e.parent.canReplace(e.index(),e.parent.childCount)||!t.type.validContent(e.parent.content.cutByIndex(e.index(),e.parent.childCount)))return!1;for(let a=e.depth-1,Z=c-2;a>d;a--,Z--){let W=e.node(a),m=e.index(a);if(W.type.spec.isolating)return!1;let s=W.content.cutByIndex(m,W.childCount),h=G&&G[Z+1];h&&(s=s.replaceChild(0,h.type.create(h.attrs)));let p=G&&G[Z]||W;if(!W.canReplace(m+1,W.childCount)||!p.type.validContent(s))return!1}let n=e.indexAfter(d),b=G&&G[0];return e.node(d).canReplaceWith(n,n,b?b.type:e.node(d+1).type)}function FMI(I,l,c=1,G){let e=I.doc.resolve(l),d=TI.empty,t=TI.empty;for(let n=e.depth,b=e.depth-c,a=c-1;n>b;n--,a--){d=TI.from(e.node(n).copy(d));let Z=G&&G[a];t=TI.from(Z?Z.type.create(Z.attrs,t):e.node(n).copy(t))}I.step(new Ie(l,l,new ol(d.append(t),c,c),!0))}function nr(I,l){let c=I.resolve(l),G=c.index();return OO(c.nodeBefore,c.nodeAfter)&&c.parent.canReplace(G,G+1)}function OO(I,l){return!!(I&&l&&!I.isLeaf&&I.canAppend(l))}function MN(I,l,c=-1){let G=I.resolve(l);for(let e=G.depth;;e--){let d,t,n=G.index(e);if(e==G.depth?(d=G.nodeBefore,t=G.nodeAfter):c>0?(d=G.node(e+1),n++,t=G.node(e).maybeChild(n)):(d=G.node(e).maybeChild(n-1),t=G.node(e+1)),d&&!d.isTextblock&&OO(d,t)&&G.node(e).canReplace(n,n+1))return l;if(e==0)break;l=c<0?G.before(e):G.after(e)}}function NMI(I,l,c){let G=new Ie(l-c,l+c,ol.empty,!0);I.step(G)}function RMI(I,l,c){let G=I.resolve(l);if(G.parent.canReplaceWith(G.index(),G.index(),c))return l;if(G.parentOffset==0)for(let e=G.depth-1;e>=0;e--){let d=G.index(e);if(G.node(e).canReplaceWith(d,d,c))return G.before(e+1);if(d>0)return null}if(G.parentOffset==G.parent.content.size)for(let e=G.depth-1;e>=0;e--){let d=G.indexAfter(e);if(G.node(e).canReplaceWith(d,d,c))return G.after(e+1);if(d=0;t--){let n=t==G.depth?0:G.pos<=(G.start(t+1)+G.end(t+1))/2?-1:1,b=G.index(t)+(n>0?1:0),a=G.node(t),Z=!1;if(d==1)Z=a.canReplace(b,b,e);else{let W=a.contentMatchAt(b).findWrapping(e.firstChild.type);Z=W&&a.canReplaceWith(b,b,W[0])}if(Z)return n==0?G.pos:n<0?G.before(t+1):G.after(t+1)}return null}function fN(I,l,c=l,G=ol.empty){if(l==c&&!G.size)return null;let e=I.resolve(l),d=I.resolve(c);return PO(e,d,G)?new Ie(l,c,G):new XMI(e,d,G).fit()}function PO(I,l,c){return!c.openStart&&!c.openEnd&&I.start()==l.start()&&I.parent.canReplace(I.index(),l.index(),c.content)}class XMI{constructor(l,c,G){this.$from=l,this.$to=c,this.unplaced=G,this.frontier=[],this.placed=TI.empty;for(let e=0;e<=l.depth;e++){let d=l.node(e);this.frontier.push({type:d.type,match:d.contentMatchAt(l.indexAfter(e))})}for(let e=l.depth;e>0;e--)this.placed=TI.from(l.node(e).copy(this.placed))}get depth(){return this.frontier.length-1}fit(){for(;this.unplaced.size;){let a=this.findFittable();a?this.placeNodes(a):this.openMore()||this.dropNode()}let l=this.mustMoveInline(),c=this.placed.size-this.depth-this.$from.depth,G=this.$from,e=this.close(l<0?this.$to:G.doc.resolve(l));if(!e)return null;let d=this.placed,t=G.depth,n=e.depth;for(;t&&n&&d.childCount==1;)d=d.firstChild.content,t--,n--;let b=new ol(d,t,n);return l>-1?new Ge(G.pos,l,this.$to.pos,this.$to.end(),b,c):b.size||G.pos!=this.$to.pos?new Ie(G.pos,e.pos,b):null}findFittable(){let l=this.unplaced.openStart;for(let c=this.unplaced.content,G=0,e=this.unplaced.openEnd;G1&&(e=0),d.type.spec.isolating&&e<=G){l=G;break}c=d.content}for(let c=1;c<=2;c++)for(let G=c==1?l:this.unplaced.openStart;G>=0;G--){let e,d=null;G?(d=pH(this.unplaced.content,G-1).firstChild,e=d.content):e=this.unplaced.content;let t=e.firstChild;for(let n=this.depth;n>=0;n--){let{type:b,match:a}=this.frontier[n],Z,W=null;if(c==1&&(t?a.matchType(t.type)||(W=a.fillBefore(TI.from(t),!1)):d&&b.compatibleContent(d.type)))return{sliceDepth:G,frontierDepth:n,parent:d,inject:W};if(c==2&&t&&(Z=a.findWrapping(t.type)))return{sliceDepth:G,frontierDepth:n,parent:d,wrap:Z};if(d&&a.matchType(d.type))break}}}openMore(){let{content:l,openStart:c,openEnd:G}=this.unplaced,e=pH(l,c);return!e.childCount||e.firstChild.isLeaf?!1:(this.unplaced=new ol(l,c+1,Math.max(G,e.size+c>=l.size-G?c+1:0)),!0)}dropNode(){let{content:l,openStart:c,openEnd:G}=this.unplaced,e=pH(l,c);if(e.childCount<=1&&c>0){let d=l.size-c<=c+e.size;this.unplaced=new ol(Ts(l,c-1,1),c-1,d?c-1:G)}else this.unplaced=new ol(Ts(l,c,1),c,G)}placeNodes({sliceDepth:l,frontierDepth:c,parent:G,inject:e,wrap:d}){for(;this.depth>c;)this.closeFrontierNode();if(d)for(let p=0;p1||b==0||p.content.size)&&(W=V,Z.push(_O(p.mark(m.allowedMarks(p.marks)),a==1?b:0,a==n.childCount?s:-1)))}let h=a==n.childCount;h||(s=-1),this.placed=js(this.placed,c,TI.from(Z)),this.frontier[c].match=W,h&&s<0&&G&&G.type==this.frontier[this.depth].type&&this.frontier.length>1&&this.closeFrontierNode();for(let p=0,V=n;p1&&e==this.$to.end(--G);)++e;return e}findCloseLevel(l){I:for(let c=Math.min(this.depth,l.depth);c>=0;c--){let{match:G,type:e}=this.frontier[c],d=c=0;n--){let{match:b,type:a}=this.frontier[n],Z=oH(l,n,a,b,!0);if(!Z||Z.childCount)continue I}return{depth:c,fit:t,move:d?l.doc.resolve(l.after(c+1)):l}}}}close(l){let c=this.findCloseLevel(l);if(!c)return null;for(;this.depth>c.depth;)this.closeFrontierNode();c.fit.childCount&&(this.placed=js(this.placed,c.depth,c.fit)),l=c.move;for(let G=c.depth+1;G<=l.depth;G++){let e=l.node(G),d=e.type.contentMatch.fillBefore(e.content,!0,l.index(G));this.openFrontierNode(e.type,e.attrs,d)}return l}openFrontierNode(l,c=null,G){let e=this.frontier[this.depth];e.match=e.match.matchType(l),this.placed=js(this.placed,this.depth,TI.from(l.create(c,G))),this.frontier.push({type:l,match:l.contentMatch})}closeFrontierNode(){let c=this.frontier.pop().match.fillBefore(TI.empty,!0);c.childCount&&(this.placed=js(this.placed,this.frontier.length,c))}}function Ts(I,l,c){return l==0?I.cutByIndex(c,I.childCount):I.replaceChild(0,I.firstChild.copy(Ts(I.firstChild.content,l-1,c)))}function js(I,l,c){return l==0?I.append(c):I.replaceChild(I.childCount-1,I.lastChild.copy(js(I.lastChild.content,l-1,c)))}function pH(I,l){for(let c=0;c1&&(G=G.replaceChild(0,_O(G.firstChild,l-1,G.childCount==1?c-1:0))),l>0&&(G=I.type.contentMatch.fillBefore(G).append(G),c<=0&&(G=G.append(I.type.contentMatch.matchFragment(G).fillBefore(TI.empty,!0)))),I.copy(G)}function oH(I,l,c,G,e){let d=I.node(l),t=e?I.indexAfter(l):I.index(l);if(t==d.childCount&&!c.compatibleContent(d.type))return null;let n=G.fillBefore(d.content,!0,t);return n&&!HMI(c,d.content,t)?n:null}function HMI(I,l,c){for(let G=c;G0;m--,s--){let h=e.node(m).type.spec;if(h.defining||h.definingAsContext||h.isolating)break;t.indexOf(m)>-1?n=m:e.before(m)==s&&t.splice(1,0,-m)}let b=t.indexOf(n),a=[],Z=G.openStart;for(let m=G.content,s=0;;s++){let h=m.firstChild;if(a.push(h),s==G.openStart)break;m=h.content}for(let m=Z-1;m>=0;m--){let s=a[m],h=QMI(s.type);if(h&&!s.sameMarkup(e.node(Math.abs(n)-1)))Z=m;else if(h||!s.type.isTextblock)break}for(let m=G.openStart;m>=0;m--){let s=(m+Z+1)%(G.openStart+1),h=a[s];if(h)for(let p=0;p=0&&(I.replace(l,c,G),!(I.steps.length>W));m--){let s=t[m];s<0||(l=e.before(s),c=d.after(s))}}function qO(I,l,c,G,e){if(lG){let d=e.contentMatchAt(0),t=d.fillBefore(I).append(I);I=t.append(d.matchFragment(t).fillBefore(TI.empty,!0))}return I}function EMI(I,l,c,G){if(!G.isInline&&l==c&&I.doc.resolve(l).parent.content.size){let e=RMI(I.doc,l,G.type);e!=null&&(l=c=e)}I.replaceRange(l,c,new ol(TI.from(G),0,0))}function vMI(I,l,c){let G=I.doc.resolve(l),e=I.doc.resolve(c),d=$O(G,e);for(let t=0;t0&&(b||G.node(n-1).canReplace(G.index(n-1),e.indexAfter(n-1))))return I.delete(G.before(n),e.after(n))}for(let t=1;t<=G.depth&&t<=e.depth;t++)if(l-G.start(t)==G.depth-t&&c>G.end(t)&&e.end(t)-c!=e.depth-t)return I.delete(G.before(t),c);I.delete(l,c)}function $O(I,l){let c=[],G=Math.min(I.depth,l.depth);for(let e=G;e>=0;e--){let d=I.start(e);if(dl.pos+(l.depth-e)||I.node(e).type.spec.isolating||l.node(e).type.spec.isolating)break;(d==l.start(e)||e==I.depth&&e==l.depth&&I.parent.inlineContent&&l.parent.inlineContent&&e&&l.start(e-1)==d-1)&&c.push(e)}return c}class Bm extends xe{constructor(l,c,G){super(),this.pos=l,this.attr=c,this.value=G}apply(l){let c=l.nodeAt(this.pos);if(!c)return xG.fail("No node at attribute step's position");let G=Object.create(null);for(let d in c.attrs)G[d]=c.attrs[d];G[this.attr]=this.value;let e=c.type.create(G,null,c.marks);return xG.fromReplace(l,this.pos,this.pos+1,new ol(TI.from(e),0,c.isLeaf?0:1))}getMap(){return Kd.empty}invert(l){return new Bm(this.pos,this.attr,l.nodeAt(this.pos).attrs[this.attr])}map(l){let c=l.mapResult(this.pos,1);return c.deletedAfter?null:new Bm(c.pos,this.attr,this.value)}toJSON(){return{stepType:"attr",pos:this.pos,attr:this.attr,value:this.value}}static fromJSON(l,c){if(typeof c.pos!="number"||typeof c.attr!="string")throw new RangeError("Invalid input for AttrStep.fromJSON");return new Bm(c.pos,c.attr,c.value)}}xe.jsonID("attr",Bm);class rh extends xe{constructor(l,c){super(),this.attr=l,this.value=c}apply(l){let c=Object.create(null);for(let e in l.attrs)c[e]=l.attrs[e];c[this.attr]=this.value;let G=l.type.create(c,l.content,l.marks);return xG.ok(G)}getMap(){return Kd.empty}invert(l){return new rh(this.attr,l.attrs[this.attr])}map(l){return this}toJSON(){return{stepType:"docAttr",attr:this.attr,value:this.value}}static fromJSON(l,c){if(typeof c.attr!="string")throw new RangeError("Invalid input for DocAttrStep.fromJSON");return new rh(c.attr,c.value)}}xe.jsonID("docAttr",rh);let d0=class extends Error{};d0=function I(l){let c=Error.call(this,l);return c.__proto__=I.prototype,c};d0.prototype=Object.create(Error.prototype);d0.prototype.constructor=d0;d0.prototype.name="TransformError";class gMI{constructor(l){this.doc=l,this.steps=[],this.docs=[],this.mapping=new ym}get before(){return this.docs.length?this.docs[0]:this.doc}step(l){let c=this.maybeStep(l);if(c.failed)throw new d0(c.failed);return this}maybeStep(l){let c=l.apply(this.doc);return c.failed||this.addStep(l,c.doc),c}get docChanged(){return this.steps.length>0}addStep(l,c){this.docs.push(this.doc),this.steps.push(l),this.mapping.appendMap(l.getMap()),this.doc=c}replace(l,c=l,G=ol.empty){let e=fN(this.doc,l,c,G);return e&&this.step(e),this}replaceWith(l,c,G){return this.replace(l,c,new ol(TI.from(G),0,0))}delete(l,c){return this.replace(l,c,ol.empty)}insert(l,c){return this.replaceWith(l,l,c)}replaceRange(l,c,G){return wMI(this,l,c,G),this}replaceRangeWith(l,c,G){return EMI(this,l,c,G),this}deleteRange(l,c){return vMI(this,l,c),this}lift(l,c){return sMI(this,l,c),this}join(l,c=1){return NMI(this,l,c),this}wrap(l,c){return pMI(this,l,c),this}setBlockType(l,c=l,G,e=null){return oMI(this,l,c,G,e),this}setNodeMarkup(l,c,G=null,e){return iMI(this,l,c,G,e),this}setNodeAttribute(l,c,G){return this.step(new Bm(l,c,G)),this}setDocAttribute(l,c){return this.step(new rh(l,c)),this}addNodeMark(l,c){return this.step(new Ka(l,c)),this}removeNodeMark(l,c){if(!(c instanceof Cc)){let G=this.doc.nodeAt(l);if(!G)throw new RangeError("No node at position "+l);if(c=c.isInSet(G.marks),!c)return this}return this.step(new e0(l,c)),this}split(l,c=1,G){return FMI(this,l,c,G),this}addMark(l,c,G){return ZMI(this,l,c,G),this}removeMark(l,c,G){return WMI(this,l,c,G),this}clearIncompatible(l,c,G){return rMI(this,l,c,G),this}}const VH=Object.create(null);class pc{constructor(l,c,G){this.$anchor=l,this.$head=c,this.ranges=G||[new AMI(l.min(c),l.max(c))]}get anchor(){return this.$anchor.pos}get head(){return this.$head.pos}get from(){return this.$from.pos}get to(){return this.$to.pos}get $from(){return this.ranges[0].$from}get $to(){return this.ranges[0].$to}get empty(){let l=this.ranges;for(let c=0;c=0;d--){let t=c<0?Dr(l.node(0),l.node(d),l.before(d+1),l.index(d),c,G):Dr(l.node(0),l.node(d),l.after(d+1),l.index(d)+1,c,G);if(t)return t}return null}static near(l,c=1){return this.findFrom(l,c)||this.findFrom(l,-c)||new sn(l.node(0))}static atStart(l){return Dr(l,l,0,0,1)||new sn(l)}static atEnd(l){return Dr(l,l,l.content.size,l.childCount,-1)||new sn(l)}static fromJSON(l,c){if(!c||!c.type)throw new RangeError("Invalid input for Selection.fromJSON");let G=VH[c.type];if(!G)throw new RangeError(`No selection type ${c.type} defined`);return G.fromJSON(l,c)}static jsonID(l,c){if(l in VH)throw new RangeError("Duplicate use of selection JSON ID "+l);return VH[l]=c,c.prototype.jsonID=l,c}getBookmark(){return uc.between(this.$anchor,this.$head).getBookmark()}}pc.prototype.visible=!0;class AMI{constructor(l,c){this.$from=l,this.$to=c}}let bC=!1;function aC(I){!bC&&!I.parent.inlineContent&&(bC=!0,console.warn("TextSelection endpoint not pointing into a node with inline content ("+I.parent.type.name+")"))}class uc extends pc{constructor(l,c=l){aC(l),aC(c),super(l,c)}get $cursor(){return this.$anchor.pos==this.$head.pos?this.$head:null}map(l,c){let G=l.resolve(c.map(this.head));if(!G.parent.inlineContent)return pc.near(G);let e=l.resolve(c.map(this.anchor));return new uc(e.parent.inlineContent?e:G,G)}replace(l,c=ol.empty){if(super.replace(l,c),c==ol.empty){let G=this.$from.marksAcross(this.$to);G&&l.ensureMarks(G)}}eq(l){return l instanceof uc&&l.anchor==this.anchor&&l.head==this.head}getBookmark(){return new KN(this.anchor,this.head)}toJSON(){return{type:"text",anchor:this.anchor,head:this.head}}static fromJSON(l,c){if(typeof c.anchor!="number"||typeof c.head!="number")throw new RangeError("Invalid input for TextSelection.fromJSON");return new uc(l.resolve(c.anchor),l.resolve(c.head))}static create(l,c,G=c){let e=l.resolve(c);return new this(e,G==c?e:l.resolve(G))}static between(l,c,G){let e=l.pos-c.pos;if((!G||e)&&(G=e>=0?1:-1),!c.parent.inlineContent){let d=pc.findFrom(c,G,!0)||pc.findFrom(c,-G,!0);if(d)c=d.$head;else return pc.near(c,G)}return l.parent.inlineContent||(e==0?l=c:(l=(pc.findFrom(l,-G,!0)||pc.findFrom(l,G,!0)).$anchor,l.pos0?0:1);e>0?t=0;t+=e){let n=l.child(t);if(n.isAtom){if(!d&&Kl.isSelectable(n))return Kl.create(I,c-(e<0?n.nodeSize:0))}else{let b=Dr(I,n,c+e,e<0?n.childCount:0,e,d);if(b)return b}c+=n.nodeSize*e}return null}function ZC(I,l,c){let G=I.steps.length-1;if(G{t==null&&(t=Z)}),I.setSelection(pc.near(I.doc.resolve(t),c))}const WC=1,h2=2,rC=4;class JMI extends gMI{constructor(l){super(l.doc),this.curSelectionFor=0,this.updated=0,this.meta=Object.create(null),this.time=Date.now(),this.curSelection=l.selection,this.storedMarks=l.storedMarks}get selection(){return this.curSelectionFor0}setStoredMarks(l){return this.storedMarks=l,this.updated|=h2,this}ensureMarks(l){return Cc.sameSet(this.storedMarks||this.selection.$from.marks(),l)||this.setStoredMarks(l),this}addStoredMark(l){return this.ensureMarks(l.addToSet(this.storedMarks||this.selection.$head.marks()))}removeStoredMark(l){return this.ensureMarks(l.removeFromSet(this.storedMarks||this.selection.$head.marks()))}get storedMarksSet(){return(this.updated&h2)>0}addStep(l,c){super.addStep(l,c),this.updated=this.updated&~h2,this.storedMarks=null}setTime(l){return this.time=l,this}replaceSelection(l){return this.selection.replace(this,l),this}replaceSelectionWith(l,c=!0){let G=this.selection;return c&&(l=l.mark(this.storedMarks||(G.empty?G.$from.marks():G.$from.marksAcross(G.$to)||Cc.none))),G.replaceWith(this,l),this}deleteSelection(){return this.selection.replace(this),this}insertText(l,c,G){let e=this.doc.type.schema;if(c==null)return l?this.replaceSelectionWith(e.text(l),!0):this.deleteSelection();{if(G==null&&(G=c),G=G??c,!l)return this.deleteRange(c,G);let d=this.storedMarks;if(!d){let t=this.doc.resolve(c);d=G==c?t.marks():t.marksAcross(this.doc.resolve(G))}return this.replaceRangeWith(c,G,e.text(l,d)),this.selection.empty||this.setSelection(pc.near(this.selection.$to)),this}}setMeta(l,c){return this.meta[typeof l=="string"?l:l.key]=c,this}getMeta(l){return this.meta[typeof l=="string"?l:l.key]}get isGeneric(){for(let l in this.meta)return!1;return!0}scrollIntoView(){return this.updated|=rC,this}get scrolledIntoView(){return(this.updated&rC)>0}}function mC(I,l){return!l||!I?I:I.bind(l)}class Ds{constructor(l,c,G){this.name=l,this.init=mC(c.init,G),this.apply=mC(c.apply,G)}}const BMI=[new Ds("doc",{init(I){return I.doc||I.schema.topNodeType.createAndFill()},apply(I){return I.doc}}),new Ds("selection",{init(I,l){return I.selection||pc.atStart(l.doc)},apply(I){return I.selection}}),new Ds("storedMarks",{init(I){return I.storedMarks||null},apply(I,l,c,G){return G.selection.$cursor?I.storedMarks:null}}),new Ds("scrollToSelection",{init(){return 0},apply(I,l){return I.scrolledIntoView?l+1:l}})];class iH{constructor(l,c){this.schema=l,this.plugins=[],this.pluginsByKey=Object.create(null),this.fields=BMI.slice(),c&&c.forEach(G=>{if(this.pluginsByKey[G.key])throw new RangeError("Adding different instances of a keyed plugin ("+G.key+")");this.plugins.push(G),this.pluginsByKey[G.key]=G,G.spec.state&&this.fields.push(new Ds(G.key,G.spec.state,G))})}}class hm{constructor(l){this.config=l}get schema(){return this.config.schema}get plugins(){return this.config.plugins}apply(l){return this.applyTransaction(l).state}filterTransaction(l,c=-1){for(let G=0;GG.toJSON())),l&&typeof l=="object")for(let G in l){if(G=="doc"||G=="selection")throw new RangeError("The JSON fields `doc` and `selection` are reserved");let e=l[G],d=e.spec.state;d&&d.toJSON&&(c[G]=d.toJSON.call(e,this[e.key]))}return c}static fromJSON(l,c,G){if(!c)throw new RangeError("Invalid input for EditorState.fromJSON");if(!l.schema)throw new RangeError("Required config field 'schema' missing");let e=new iH(l.schema,l.plugins),d=new hm(e);return e.fields.forEach(t=>{if(t.name=="doc")d.doc=gW.fromJSON(l.schema,c.doc);else if(t.name=="selection")d.selection=pc.fromJSON(d.doc,c.selection);else if(t.name=="storedMarks")c.storedMarks&&(d.storedMarks=c.storedMarks.map(l.schema.markFromJSON));else{if(G)for(let n in G){let b=G[n],a=b.spec.state;if(b.key==t.name&&a&&a.fromJSON&&Object.prototype.hasOwnProperty.call(c,n)){d[t.name]=a.fromJSON.call(b,l,c[n],d);return}}d[t.name]=t.init(l,d)}}),d}}function IP(I,l,c){for(let G in I){let e=I[G];e instanceof Function?e=e.bind(l):G=="handleDOMEvents"&&(e=IP(e,l,{})),c[G]=e}return c}class Rn{constructor(l){this.spec=l,this.props={},l.props&&IP(l.props,this,this.props),this.key=l.key?l.key.key:lP("plugin")}getState(l){return l[this.key]}}const FH=Object.create(null);function lP(I){return I in FH?I+"$"+ ++FH[I]:(FH[I]=0,I+"$")}class Yn{constructor(l="key"){this.key=lP(l)}get(l){return l.config.pluginsByKey[this.key]}getState(l){return l[this.key]}}const oe=function(I){for(var l=0;;l++)if(I=I.previousSibling,!I)return l},mh=function(I){let l=I.assignedSlot||I.parentNode;return l&&l.nodeType==11?l.host:l};let gE=null;const Jb=function(I,l,c){let G=gE||(gE=document.createRange());return G.setEnd(I,c??I.nodeValue.length),G.setStart(I,l||0),G},kMI=function(){gE=null},DW=function(I,l,c,G){return c&&(sC(I,l,c,G,-1)||sC(I,l,c,G,1))},xMI=/^(img|br|input|textarea|hr)$/i;function sC(I,l,c,G,e){for(;;){if(I==c&&l==G)return!0;if(l==(e<0?0:fn(I))){let d=I.parentNode;if(!d||d.nodeType!=1||Ph(I)||xMI.test(I.nodeName)||I.contentEditable=="false")return!1;l=oe(I)+(e<0?0:1),I=d}else if(I.nodeType==1){if(I=I.childNodes[l+(e<0?-1:0)],I.contentEditable=="false")return!1;l=e<0?fn(I):0}else return!1}}function fn(I){return I.nodeType==3?I.nodeValue.length:I.childNodes.length}function zMI(I,l){for(;;){if(I.nodeType==3&&l)return I;if(I.nodeType==1&&l>0){if(I.contentEditable=="false")return null;I=I.childNodes[l-1],l=fn(I)}else if(I.parentNode&&!Ph(I))l=oe(I),I=I.parentNode;else return null}}function UMI(I,l){for(;;){if(I.nodeType==3&&l2),Nt=t0||(tb?/Mac/.test(tb.platform):!1),LMI=tb?/Win/.test(tb.platform):!1,dn=/Android \d/.test(gZ),_h=!!uC&&"webkitFontSmoothing"in uC.documentElement.style,SMI=_h?+(/\bAppleWebKit\/(\d+)/.exec(navigator.userAgent)||[0,0])[1]:0;function TMI(I){let l=I.defaultView&&I.defaultView.visualViewport;return l?{left:0,right:l.width,top:0,bottom:l.height}:{left:0,right:I.documentElement.clientWidth,top:0,bottom:I.documentElement.clientHeight}}function vb(I,l){return typeof I=="number"?I:I[l]}function jMI(I){let l=I.getBoundingClientRect(),c=l.width/I.offsetWidth||1,G=l.height/I.offsetHeight||1;return{left:l.left,right:l.left+I.clientWidth*c,top:l.top,bottom:l.top+I.clientHeight*G}}function hC(I,l,c){let G=I.someProp("scrollThreshold")||0,e=I.someProp("scrollMargin")||5,d=I.dom.ownerDocument;for(let t=c||I.dom;t;t=mh(t)){if(t.nodeType!=1)continue;let n=t,b=n==d.body,a=b?TMI(d):jMI(n),Z=0,W=0;if(l.topa.bottom-vb(G,"bottom")&&(W=l.bottom-l.top>a.bottom-a.top?l.top+vb(e,"top")-a.top:l.bottom-a.bottom+vb(e,"bottom")),l.lefta.right-vb(G,"right")&&(Z=l.right-a.right+vb(e,"right")),Z||W)if(b)d.defaultView.scrollBy(Z,W);else{let m=n.scrollLeft,s=n.scrollTop;W&&(n.scrollTop+=W),Z&&(n.scrollLeft+=Z);let h=n.scrollLeft-m,p=n.scrollTop-s;l={left:l.left-h,top:l.top-p,right:l.right-h,bottom:l.bottom-p}}if(b||/^(fixed|sticky)$/.test(getComputedStyle(t).position))break}}function DMI(I){let l=I.dom.getBoundingClientRect(),c=Math.max(0,l.top),G,e;for(let d=(l.left+l.right)/2,t=c+1;t=c-20){G=n,e=b.top;break}}return{refDOM:G,refTop:e,stack:GP(I.dom)}}function GP(I){let l=[],c=I.ownerDocument;for(let G=I;G&&(l.push({dom:G,top:G.scrollTop,left:G.scrollLeft}),I!=c);G=mh(G));return l}function OMI({refDOM:I,refTop:l,stack:c}){let G=I?I.getBoundingClientRect().top:0;eP(c,G==0?0:G-l)}function eP(I,l){for(let c=0;c=n){t=Math.max(h.bottom,t),n=Math.min(h.top,n);let p=h.left>l.left?h.left-l.left:h.right=(h.left+h.right)/2?1:0));continue}}else h.top>l.top&&!b&&h.left<=l.left&&h.right>=l.left&&(b=Z,a={left:Math.max(h.left,Math.min(h.right,l.left)),top:h.top});!c&&(l.left>=h.right&&l.top>=h.top||l.left>=h.left&&l.top>=h.bottom)&&(d=W+1)}}return!c&&b&&(c=b,e=a,G=0),c&&c.nodeType==3?_MI(c,e):!c||G&&c.nodeType==1?{node:I,offset:d}:dP(c,e)}function _MI(I,l){let c=I.nodeValue.length,G=document.createRange();for(let e=0;e=(d.left+d.right)/2?1:0)}}return{node:I,offset:0}}function Qy(I,l){return I.left>=l.left-1&&I.left<=l.right+1&&I.top>=l.top-1&&I.top<=l.bottom+1}function qMI(I,l){let c=I.parentNode;return c&&/^li$/i.test(c.nodeName)&&l.left(t.left+t.right)/2?1:-1}return I.docView.posFromDOM(G,e,d)}function IfI(I,l,c,G){let e=-1;for(let d=l,t=!1;d!=I.dom;){let n=I.docView.nearestDesc(d,!0);if(!n)return null;if(n.dom.nodeType==1&&(n.node.isBlock&&n.parent&&!t||!n.contentDOM)){let b=n.dom.getBoundingClientRect();if(n.node.isBlock&&n.parent&&!t&&(t=!0,b.left>G.left||b.top>G.top?e=n.posBefore:(b.right-1?e:I.docView.posFromDOM(l,c,-1)}function tP(I,l,c){let G=I.childNodes.length;if(G&&c.topl.top&&e++}let a;_h&&e&&G.nodeType==1&&(a=G.childNodes[e-1]).nodeType==1&&a.contentEditable=="false"&&a.getBoundingClientRect().top>=l.top&&e--,G==I.dom&&e==G.childNodes.length-1&&G.lastChild.nodeType==1&&l.top>G.lastChild.getBoundingClientRect().bottom?n=I.state.doc.content.size:(e==0||G.nodeType!=1||G.childNodes[e-1].nodeName!="BR")&&(n=IfI(I,G,e,l))}n==null&&(n=$MI(I,t,l));let b=I.docView.nearestDesc(t,!0);return{pos:n,inside:b?b.posAtStart-b.border:-1}}function pC(I){return I.top=0&&e==G.nodeValue.length?(b--,Z=1):c<0?b--:a++,vs(Ya(Jb(G,b,a),Z),Z<0)}if(!I.state.doc.resolve(l-(d||0)).parent.inlineContent){if(d==null&&e&&(c<0||e==fn(G))){let b=G.childNodes[e-1];if(b.nodeType==1)return NH(b.getBoundingClientRect(),!1)}if(d==null&&e=0)}if(d==null&&e&&(c<0||e==fn(G))){let b=G.childNodes[e-1],a=b.nodeType==3?Jb(b,fn(b)-(t?0:1)):b.nodeType==1&&(b.nodeName!="BR"||!b.nextSibling)?b:null;if(a)return vs(Ya(a,1),!1)}if(d==null&&e=0)}function vs(I,l){if(I.width==0)return I;let c=l?I.left:I.right;return{top:I.top,bottom:I.bottom,left:c,right:c}}function NH(I,l){if(I.height==0)return I;let c=l?I.top:I.bottom;return{top:c,bottom:c,left:I.left,right:I.right}}function bP(I,l,c){let G=I.state,e=I.root.activeElement;G!=l&&I.updateState(l),e!=I.dom&&I.focus();try{return c()}finally{G!=l&&I.updateState(G),e!=I.dom&&e&&e.focus()}}function GfI(I,l,c){let G=l.selection,e=c=="up"?G.$from:G.$to;return bP(I,l,()=>{let{node:d}=I.docView.domFromPos(e.pos,c=="up"?-1:1);for(;;){let n=I.docView.nearestDesc(d,!0);if(!n)break;if(n.node.isBlock){d=n.contentDOM||n.dom;break}d=n.dom.parentNode}let t=nP(I,e.pos,1);for(let n=d.firstChild;n;n=n.nextSibling){let b;if(n.nodeType==1)b=n.getClientRects();else if(n.nodeType==3)b=Jb(n,0,n.nodeValue.length).getClientRects();else continue;for(let a=0;aZ.top+1&&(c=="up"?t.top-Z.top>(Z.bottom-t.top)*2:Z.bottom-t.bottom>(t.bottom-Z.top)*2))return!1}}return!0})}const efI=/[\u0590-\u08ac]/;function dfI(I,l,c){let{$head:G}=l.selection;if(!G.parent.isTextblock)return!1;let e=G.parentOffset,d=!e,t=e==G.parent.content.size,n=I.domSelection();return!efI.test(G.parent.textContent)||!n.modify?c=="left"||c=="backward"?d:t:bP(I,l,()=>{let{focusNode:b,focusOffset:a,anchorNode:Z,anchorOffset:W}=I.domSelectionRange(),m=n.caretBidiLevel;n.modify("move",c,"character");let s=G.depth?I.docView.domAfterPos(G.before()):I.dom,{focusNode:h,focusOffset:p}=I.domSelectionRange(),V=h&&!s.contains(h.nodeType==1?h:h.parentNode)||b==h&&a==p;try{n.collapse(Z,W),b&&(b!=Z||a!=W)&&n.extend&&n.extend(b,a)}catch{}return m!=null&&(n.caretBidiLevel=m),V})}let oC=null,VC=null,iC=!1;function tfI(I,l,c){return oC==l&&VC==c?iC:(oC=l,VC=c,iC=c=="up"||c=="down"?GfI(I,l,c):dfI(I,l,c))}const At=0,FC=1,hW=2,nb=3;class qh{constructor(l,c,G,e){this.parent=l,this.children=c,this.dom=G,this.contentDOM=e,this.dirty=At,G.pmViewDesc=this}matchesWidget(l){return!1}matchesMark(l){return!1}matchesNode(l,c,G){return!1}matchesHack(l){return!1}parseRule(){return null}stopEvent(l){return!1}get size(){let l=0;for(let c=0;coe(this.contentDOM);else if(this.contentDOM&&this.contentDOM!=this.dom&&this.dom.contains(this.contentDOM))e=l.compareDocumentPosition(this.contentDOM)&2;else if(this.dom.firstChild){if(c==0)for(let d=l;;d=d.parentNode){if(d==this.dom){e=!1;break}if(d.previousSibling)break}if(e==null&&c==l.childNodes.length)for(let d=l;;d=d.parentNode){if(d==this.dom){e=!0;break}if(d.nextSibling)break}}return e??G>0?this.posAtEnd:this.posAtStart}nearestDesc(l,c=!1){for(let G=!0,e=l;e;e=e.parentNode){let d=this.getDesc(e),t;if(d&&(!c||d.node))if(G&&(t=d.nodeDOM)&&!(t.nodeType==1?t.contains(l.nodeType==1?l:l.parentNode):t==l))G=!1;else return d}}getDesc(l){let c=l.pmViewDesc;for(let G=c;G;G=G.parent)if(G==this)return c}posFromDOM(l,c,G){for(let e=l;e;e=e.parentNode){let d=this.getDesc(e);if(d)return d.localPosFromDOM(l,c,G)}return-1}descAt(l){for(let c=0,G=0;cl||t instanceof ZP){e=l-d;break}d=n}if(e)return this.children[G].domFromPos(e-this.children[G].border,c);for(let d;G&&!(d=this.children[G-1]).size&&d instanceof aP&&d.side>=0;G--);if(c<=0){let d,t=!0;for(;d=G?this.children[G-1]:null,!(!d||d.dom.parentNode==this.contentDOM);G--,t=!1);return d&&c&&t&&!d.border&&!d.domAtom?d.domFromPos(d.size,c):{node:this.contentDOM,offset:d?oe(d.dom)+1:0}}else{let d,t=!0;for(;d=G=Z&&c<=a-b.border&&b.node&&b.contentDOM&&this.contentDOM.contains(b.contentDOM))return b.parseRange(l,c,Z);l=t;for(let W=n;W>0;W--){let m=this.children[W-1];if(m.size&&m.dom.parentNode==this.contentDOM&&!m.emptyChildAt(1)){e=oe(m.dom)+1;break}l-=m.size}e==-1&&(e=0)}if(e>-1&&(a>c||n==this.children.length-1)){c=a;for(let Z=n+1;Zs&&tc){let s=n;n=b,b=s}let m=document.createRange();m.setEnd(b.node,b.offset),m.setStart(n.node,n.offset),a.removeAllRanges(),a.addRange(m)}}ignoreMutation(l){return!this.contentDOM&&l.type!="selection"}get contentLost(){return this.contentDOM&&this.contentDOM!=this.dom&&!this.dom.contains(this.contentDOM)}markDirty(l,c){for(let G=0,e=0;e=G:lG){let n=G+d.border,b=t-d.border;if(l>=n&&c<=b){this.dirty=l==G||c==t?hW:FC,l==n&&c==b&&(d.contentLost||d.dom.parentNode!=this.contentDOM)?d.dirty=nb:d.markDirty(l-n,c-n);return}else d.dirty=d.dom==d.contentDOM&&d.dom.parentNode==this.contentDOM&&!d.children.length?hW:nb}G=t}this.dirty=hW}markParentsDirty(){let l=1;for(let c=this.parent;c;c=c.parent,l++){let G=l==1?hW:FC;c.dirty{if(!d)return e;if(d.parent)return d.parent.posBeforeChild(d)})),!c.type.spec.raw){if(t.nodeType!=1){let n=document.createElement("span");n.appendChild(t),t=n}t.contentEditable="false",t.classList.add("ProseMirror-widget")}super(l,[],t,null),this.widget=c,this.widget=c,d=this}matchesWidget(l){return this.dirty==At&&l.type.eq(this.widget.type)}parseRule(){return{ignore:!0}}stopEvent(l){let c=this.widget.spec.stopEvent;return c?c(l):!1}ignoreMutation(l){return l.type!="selection"||this.widget.spec.ignoreSelection}destroy(){this.widget.type.destroy(this.dom),super.destroy()}get domAtom(){return!0}get side(){return this.widget.type.side}}class nfI extends qh{constructor(l,c,G,e){super(l,[],c,null),this.textDOM=G,this.text=e}get size(){return this.text.length}localPosFromDOM(l,c){return l!=this.textDOM?this.posAtStart+(c?this.size:0):this.posAtStart+c}domFromPos(l){return{node:this.textDOM,offset:l}}ignoreMutation(l){return l.type==="characterData"&&l.target.nodeValue==l.oldValue}}class OW extends qh{constructor(l,c,G,e){super(l,[],G,e),this.mark=c}static create(l,c,G,e){let d=e.nodeViews[c.type.name],t=d&&d(c,e,G);return(!t||!t.dom)&&(t=jn.renderSpec(document,c.type.spec.toDOM(c,G))),new OW(l,c,t.dom,t.contentDOM||t.dom)}parseRule(){return this.dirty&nb||this.mark.type.spec.reparseInView?null:{mark:this.mark.type.name,attrs:this.mark.attrs,contentElement:this.contentDOM}}matchesMark(l){return this.dirty!=nb&&this.mark.eq(l)}markDirty(l,c){if(super.markDirty(l,c),this.dirty!=At){let G=this.parent;for(;!G.node;)G=G.parent;G.dirty0&&(d=xE(d,0,l,G));for(let n=0;n{if(!b)return t;if(b.parent)return b.parent.posBeforeChild(b)},G,e),Z=a&&a.dom,W=a&&a.contentDOM;if(c.isText){if(!Z)Z=document.createTextNode(c.text);else if(Z.nodeType!=3)throw new RangeError("Text must be rendered as a DOM text node")}else Z||({dom:Z,contentDOM:W}=jn.renderSpec(document,c.type.spec.toDOM(c)));!W&&!c.isText&&Z.nodeName!="BR"&&(Z.hasAttribute("contenteditable")||(Z.contentEditable="false"),c.type.spec.draggable&&(Z.draggable=!0));let m=Z;return Z=mP(Z,G,c),a?b=new bfI(l,c,G,e,Z,W||null,m,a,d,t+1):c.isText?new SN(l,c,G,e,Z,m,d):new tZ(l,c,G,e,Z,W||null,m,d,t+1)}parseRule(){if(this.node.type.spec.reparseInView)return null;let l={node:this.node.type.name,attrs:this.node.attrs};if(this.node.type.whitespace=="pre"&&(l.preserveWhitespace="full"),!this.contentDOM)l.getContent=()=>this.node.content;else if(!this.contentLost)l.contentElement=this.contentDOM;else{for(let c=this.children.length-1;c>=0;c--){let G=this.children[c];if(this.dom.contains(G.dom.parentNode)){l.contentElement=G.dom.parentNode;break}}l.contentElement||(l.getContent=()=>TI.empty)}return l}matchesNode(l,c,G){return this.dirty==At&&l.eq(this.node)&&kE(c,this.outerDeco)&&G.eq(this.innerDeco)}get size(){return this.node.nodeSize}get border(){return this.node.isLeaf?0:1}updateChildren(l,c){let G=this.node.inlineContent,e=c,d=l.composing?this.localCompositionInfo(l,c):null,t=d&&d.pos>-1?d:null,n=d&&d.pos<0,b=new ZfI(this,t&&t.node,l);mfI(this.node,this.innerDeco,(a,Z,W)=>{a.spec.marks?b.syncToMarks(a.spec.marks,G,l):a.type.side>=0&&!W&&b.syncToMarks(Z==this.node.childCount?Cc.none:this.node.child(Z).marks,G,l),b.placeWidget(a,l,e)},(a,Z,W,m)=>{b.syncToMarks(a.marks,G,l);let s;b.findNodeMatch(a,Z,W,m)||n&&l.state.selection.from>e&&l.state.selection.to-1&&b.updateNodeAt(a,Z,W,s,l)||b.updateNextNode(a,Z,W,l,m,e)||b.addNode(a,Z,W,l,e),e+=a.nodeSize}),b.syncToMarks([],G,l),this.node.isTextblock&&b.addTextblockHacks(),b.destroyRest(),(b.changed||this.dirty==hW)&&(t&&this.protectLocalComposition(l,t),WP(this.contentDOM,this.children,l),t0&&sfI(this.dom))}localCompositionInfo(l,c){let{from:G,to:e}=l.state.selection;if(!(l.state.selection instanceof uc)||Gc+this.node.content.size)return null;let d=l.input.compositionNode;if(!d||!this.dom.contains(d.parentNode))return null;if(this.node.inlineContent){let t=d.nodeValue,n=ufI(this.node.content,t,G-c,e-c);return n<0?null:{node:d,pos:n,text:t}}else return{node:d,pos:-1,text:""}}protectLocalComposition(l,{node:c,pos:G,text:e}){if(this.getDesc(c))return;let d=c;for(;d.parentNode!=this.contentDOM;d=d.parentNode){for(;d.previousSibling;)d.parentNode.removeChild(d.previousSibling);for(;d.nextSibling;)d.parentNode.removeChild(d.nextSibling);d.pmViewDesc&&(d.pmViewDesc=void 0)}let t=new nfI(this,d,c,e);l.input.compositionNodes.push(t),this.children=xE(this.children,G,G+e.length,l,t)}update(l,c,G,e){return this.dirty==nb||!l.sameMarkup(this.node)?!1:(this.updateInner(l,c,G,e),!0)}updateInner(l,c,G,e){this.updateOuterDeco(c),this.node=l,this.innerDeco=G,this.contentDOM&&this.updateChildren(e,this.posAtStart),this.dirty=At}updateOuterDeco(l){if(kE(l,this.outerDeco))return;let c=this.nodeDOM.nodeType!=1,G=this.dom;this.dom=rP(this.dom,this.nodeDOM,BE(this.outerDeco,this.node,c),BE(l,this.node,c)),this.dom!=G&&(G.pmViewDesc=void 0,this.dom.pmViewDesc=this),this.outerDeco=l}selectNode(){this.nodeDOM.nodeType==1&&this.nodeDOM.classList.add("ProseMirror-selectednode"),(this.contentDOM||!this.node.type.spec.draggable)&&(this.dom.draggable=!0)}deselectNode(){this.nodeDOM.nodeType==1&&this.nodeDOM.classList.remove("ProseMirror-selectednode"),(this.contentDOM||!this.node.type.spec.draggable)&&this.dom.removeAttribute("draggable")}get domAtom(){return this.node.isAtom}}function NC(I,l,c,G,e){mP(G,l,I);let d=new tZ(void 0,I,l,c,G,G,G,e,0);return d.contentDOM&&d.updateChildren(e,0),d}class SN extends tZ{constructor(l,c,G,e,d,t,n){super(l,c,G,e,d,null,t,n,0)}parseRule(){let l=this.nodeDOM.parentNode;for(;l&&l!=this.dom&&!l.pmIsDeco;)l=l.parentNode;return{skip:l||!0}}update(l,c,G,e){return this.dirty==nb||this.dirty!=At&&!this.inParent()||!l.sameMarkup(this.node)?!1:(this.updateOuterDeco(c),(this.dirty!=At||l.text!=this.node.text)&&l.text!=this.nodeDOM.nodeValue&&(this.nodeDOM.nodeValue=l.text,e.trackWrites==this.nodeDOM&&(e.trackWrites=null)),this.node=l,this.dirty=At,!0)}inParent(){let l=this.parent.contentDOM;for(let c=this.nodeDOM;c;c=c.parentNode)if(c==l)return!0;return!1}domFromPos(l){return{node:this.nodeDOM,offset:l}}localPosFromDOM(l,c,G){return l==this.nodeDOM?this.posAtStart+Math.min(c,this.node.text.length):super.localPosFromDOM(l,c,G)}ignoreMutation(l){return l.type!="characterData"&&l.type!="selection"}slice(l,c,G){let e=this.node.cut(l,c),d=document.createTextNode(e.text);return new SN(this.parent,e,this.outerDeco,this.innerDeco,d,d,G)}markDirty(l,c){super.markDirty(l,c),this.dom!=this.nodeDOM&&(l==0||c==this.nodeDOM.nodeValue.length)&&(this.dirty=nb)}get domAtom(){return!1}isText(l){return this.node.text==l}}class ZP extends qh{parseRule(){return{ignore:!0}}matchesHack(l){return this.dirty==At&&this.dom.nodeName==l}get domAtom(){return!0}get ignoreForCoords(){return this.dom.nodeName=="IMG"}}class bfI extends tZ{constructor(l,c,G,e,d,t,n,b,a,Z){super(l,c,G,e,d,t,n,a,Z),this.spec=b}update(l,c,G,e){if(this.dirty==nb)return!1;if(this.spec.update){let d=this.spec.update(l,c,G);return d&&this.updateInner(l,c,G,e),d}else return!this.contentDOM&&!l.isLeaf?!1:super.update(l,c,G,e)}selectNode(){this.spec.selectNode?this.spec.selectNode():super.selectNode()}deselectNode(){this.spec.deselectNode?this.spec.deselectNode():super.deselectNode()}setSelection(l,c,G,e){this.spec.setSelection?this.spec.setSelection(l,c,G):super.setSelection(l,c,G,e)}destroy(){this.spec.destroy&&this.spec.destroy(),super.destroy()}stopEvent(l){return this.spec.stopEvent?this.spec.stopEvent(l):!1}ignoreMutation(l){return this.spec.ignoreMutation?this.spec.ignoreMutation(l):super.ignoreMutation(l)}}function WP(I,l,c){let G=I.firstChild,e=!1;for(let d=0;d>1,t=Math.min(d,l.length);for(;e-1)n>this.index&&(this.changed=!0,this.destroyBetween(this.index,n)),this.top=this.top.children[this.index];else{let b=OW.create(this.top,l[d],c,G);this.top.children.splice(this.index,0,b),this.top=b,this.changed=!0}this.index=0,d++}}findNodeMatch(l,c,G,e){let d=-1,t;if(e>=this.preMatch.index&&(t=this.preMatch.matches[e-this.preMatch.index]).parent==this.top&&t.matchesNode(l,c,G))d=this.top.children.indexOf(t,this.index);else for(let n=this.index,b=Math.min(this.top.children.length,n+5);n0;){let n;for(;;)if(G){let a=c.children[G-1];if(a instanceof OW)c=a,G=a.children.length;else{n=a,G--;break}}else{if(c==l)break I;G=c.parent.children.indexOf(c),c=c.parent}let b=n.node;if(b){if(b!=I.child(e-1))break;--e,d.set(n,e),t.push(n)}}return{index:e,matched:d,matches:t.reverse()}}function rfI(I,l){return I.type.side-l.type.side}function mfI(I,l,c,G){let e=l.locals(I),d=0;if(e.length==0){for(let a=0;ad;)n.push(e[t++]);let h=d+m.nodeSize;if(m.isText){let V=h;t!V.inline):n.slice();G(m,p,l.forChild(d,m),s),d=h}}function sfI(I){if(I.nodeName=="UL"||I.nodeName=="OL"){let l=I.style.cssText;I.style.cssText=l+"; list-style: square !important",window.getComputedStyle(I).listStyle,I.style.cssText=l}}function ufI(I,l,c,G){for(let e=0,d=0;e=c){if(d>=G&&b.slice(G-l.length-n,G-n)==l)return G-l.length;let a=n=0&&a+l.length+n>=c)return n+a;if(c==G&&b.length>=G+l.length-n&&b.slice(G-n,G-n+l.length)==l)return G}}return-1}function xE(I,l,c,G,e){let d=[];for(let t=0,n=0;t=c||Z<=l?d.push(b):(ac&&d.push(b.slice(c-a,b.size,G)))}return d}function wy(I,l=null){let c=I.domSelectionRange(),G=I.state.doc;if(!c.focusNode)return null;let e=I.docView.nearestDesc(c.focusNode),d=e&&e.size==0,t=I.docView.posFromDOM(c.focusNode,c.focusOffset,1);if(t<0)return null;let n=G.resolve(t),b,a;if(LN(c)){for(b=n;e&&!e.node;)e=e.parent;let Z=e.node;if(e&&Z.isAtom&&Kl.isSelectable(Z)&&e.parent&&!(Z.isInline&&CMI(c.focusNode,c.focusOffset,e.dom))){let W=e.posBefore;a=new Kl(t==W?n:G.resolve(W))}}else{let Z=I.docView.posFromDOM(c.anchorNode,c.anchorOffset,1);if(Z<0)return null;b=G.resolve(Z)}if(!a){let Z=l=="pointer"||I.state.selection.head{(c.anchorNode!=G||c.anchorOffset!=e)&&(l.removeEventListener("selectionchange",I.input.hideSelectionGuard),setTimeout(()=>{(!sP(I)||I.state.selection.visible)&&I.dom.classList.remove("ProseMirror-hideselection")},20))})}function pfI(I){let l=I.domSelection(),c=document.createRange(),G=I.cursorWrapper.dom,e=G.nodeName=="IMG";e?c.setEnd(G.parentNode,oe(G)+1):c.setEnd(G,0),c.collapse(!1),l.removeAllRanges(),l.addRange(c),!e&&!I.state.selection.visible&&Rd&&dZ<=11&&(G.disabled=!0,G.disabled=!1)}function uP(I,l){if(l instanceof Kl){let c=I.docView.descAt(l.from);c!=I.lastSelectedViewDesc&&(QC(I),c&&c.selectNode(),I.lastSelectedViewDesc=c)}else QC(I)}function QC(I){I.lastSelectedViewDesc&&(I.lastSelectedViewDesc.parent&&I.lastSelectedViewDesc.deselectNode(),I.lastSelectedViewDesc=void 0)}function Ey(I,l,c,G){return I.someProp("createSelectionBetween",e=>e(I,l,c))||uc.between(l,c,G)}function wC(I){return I.editable&&!I.hasFocus()?!1:hP(I)}function hP(I){let l=I.domSelectionRange();if(!l.anchorNode)return!1;try{return I.dom.contains(l.anchorNode.nodeType==3?l.anchorNode.parentNode:l.anchorNode)&&(I.editable||I.dom.contains(l.focusNode.nodeType==3?l.focusNode.parentNode:l.focusNode))}catch{return!1}}function ofI(I){let l=I.docView.domFromPos(I.state.selection.anchor,0),c=I.domSelectionRange();return DW(l.node,l.offset,c.anchorNode,c.anchorOffset)}function zE(I,l){let{$anchor:c,$head:G}=I.selection,e=l>0?c.max(G):c.min(G),d=e.parent.inlineContent?e.depth?I.doc.resolve(l>0?e.after():e.before()):null:e;return d&&pc.findFrom(d,l)}function Ea(I,l){return I.dispatch(I.state.tr.setSelection(l).scrollIntoView()),!0}function EC(I,l,c){let G=I.state.selection;if(G instanceof uc)if(c.indexOf("s")>-1){let{$head:e}=G,d=e.textOffset?null:l<0?e.nodeBefore:e.nodeAfter;if(!d||d.isText||!d.isLeaf)return!1;let t=I.state.doc.resolve(e.pos+d.nodeSize*(l<0?-1:1));return Ea(I,new uc(G.$anchor,t))}else if(G.empty){if(I.endOfTextblock(l>0?"forward":"backward")){let e=zE(I.state,l);return e&&e instanceof Kl?Ea(I,e):!1}else if(!(Nt&&c.indexOf("m")>-1)){let e=G.$head,d=e.textOffset?null:l<0?e.nodeBefore:e.nodeAfter,t;if(!d||d.isText)return!1;let n=l<0?e.pos-d.nodeSize:e.pos;return d.isAtom||(t=I.docView.descAt(n))&&!t.contentDOM?Kl.isSelectable(d)?Ea(I,new Kl(l<0?I.state.doc.resolve(e.pos-d.nodeSize):e)):_h?Ea(I,new uc(I.state.doc.resolve(l<0?n:n+d.nodeSize))):!1:!1}}else return!1;else{if(G instanceof Kl&&G.node.isInline)return Ea(I,new uc(l>0?G.$to:G.$from));{let e=zE(I.state,l);return e?Ea(I,e):!1}}}function Ui(I){return I.nodeType==3?I.nodeValue.length:I.childNodes.length}function Vu(I,l){let c=I.pmViewDesc;return c&&c.size==0&&(l<0||I.nextSibling||I.nodeName!="BR")}function Kr(I,l){return l<0?VfI(I):ifI(I)}function VfI(I){let l=I.domSelectionRange(),c=l.focusNode,G=l.focusOffset;if(!c)return;let e,d,t=!1;for(pn&&c.nodeType==1&&G0){if(c.nodeType!=1)break;{let n=c.childNodes[G-1];if(Vu(n,-1))e=c,d=--G;else if(n.nodeType==3)c=n,G=c.nodeValue.length;else break}}else{if(pP(c))break;{let n=c.previousSibling;for(;n&&Vu(n,-1);)e=c.parentNode,d=oe(n),n=n.previousSibling;if(n)c=n,G=Ui(c);else{if(c=c.parentNode,c==I.dom)break;G=0}}}t?UE(I,c,G):e&&UE(I,e,d)}function ifI(I){let l=I.domSelectionRange(),c=l.focusNode,G=l.focusOffset;if(!c)return;let e=Ui(c),d,t;for(;;)if(G{I.state==e&&Sb(I)},50)}function vC(I,l){let c=I.state.doc.resolve(l);if(!(Pe||LMI)&&c.parent.inlineContent){let e=I.coordsAtPos(l);if(l>c.start()){let d=I.coordsAtPos(l-1),t=(d.top+d.bottom)/2;if(t>e.top&&t1)return d.lefte.top&&t1)return d.left>e.left?"ltr":"rtl"}}return getComputedStyle(I.dom).direction=="rtl"?"rtl":"ltr"}function gC(I,l,c){let G=I.state.selection;if(G instanceof uc&&!G.empty||c.indexOf("s")>-1||Nt&&c.indexOf("m")>-1)return!1;let{$from:e,$to:d}=G;if(!e.parent.inlineContent||I.endOfTextblock(l<0?"up":"down")){let t=zE(I.state,l);if(t&&t instanceof Kl)return Ea(I,t)}if(!e.parent.inlineContent){let t=l<0?e:d,n=G instanceof sn?pc.near(t,l):pc.findFrom(t,l);return n?Ea(I,n):!1}return!1}function AC(I,l){if(!(I.state.selection instanceof uc))return!0;let{$head:c,$anchor:G,empty:e}=I.state.selection;if(!c.sameParent(G))return!0;if(!e)return!1;if(I.endOfTextblock(l>0?"forward":"backward"))return!0;let d=!c.textOffset&&(l<0?c.nodeBefore:c.nodeAfter);if(d&&!d.isText){let t=I.state.tr;return l<0?t.delete(c.pos-d.nodeSize,c.pos):t.delete(c.pos,c.pos+d.nodeSize),I.dispatch(t),!0}return!1}function yC(I,l,c){I.domObserver.stop(),l.contentEditable=c,I.domObserver.start()}function RfI(I){if(!$e||I.state.selection.$head.parentOffset>0)return!1;let{focusNode:l,focusOffset:c}=I.domSelectionRange();if(l&&l.nodeType==1&&c==0&&l.firstChild&&l.firstChild.contentEditable=="false"){let G=l.firstChild;yC(I,G,"true"),setTimeout(()=>yC(I,G,"false"),20)}return!1}function YfI(I){let l="";return I.ctrlKey&&(l+="c"),I.metaKey&&(l+="m"),I.altKey&&(l+="a"),I.shiftKey&&(l+="s"),l}function XfI(I,l){let c=l.keyCode,G=YfI(l);if(c==8||Nt&&c==72&&G=="c")return AC(I,-1)||Kr(I,-1);if(c==46&&!l.shiftKey||Nt&&c==68&&G=="c")return AC(I,1)||Kr(I,1);if(c==13||c==27)return!0;if(c==37||Nt&&c==66&&G=="c"){let e=c==37?vC(I,I.state.selection.from)=="ltr"?-1:1:-1;return EC(I,e,G)||Kr(I,e)}else if(c==39||Nt&&c==70&&G=="c"){let e=c==39?vC(I,I.state.selection.from)=="ltr"?1:-1:1;return EC(I,e,G)||Kr(I,e)}else{if(c==38||Nt&&c==80&&G=="c")return gC(I,-1,G)||Kr(I,-1);if(c==40||Nt&&c==78&&G=="c")return RfI(I)||gC(I,1,G)||Kr(I,1);if(G==(Nt?"m":"c")&&(c==66||c==73||c==89||c==90))return!0}return!1}function oP(I,l){I.someProp("transformCopied",s=>{l=s(l,I)});let c=[],{content:G,openStart:e,openEnd:d}=l;for(;e>1&&d>1&&G.childCount==1&&G.firstChild.childCount==1;){e--,d--;let s=G.firstChild;c.push(s.type.name,s.attrs!=s.type.defaultAttrs?s.attrs:null),G=s.content}let t=I.someProp("clipboardSerializer")||jn.fromSchema(I.state.schema),n=YP(),b=n.createElement("div");b.appendChild(t.serializeFragment(G,{document:n}));let a=b.firstChild,Z,W=0;for(;a&&a.nodeType==1&&(Z=RP[a.nodeName.toLowerCase()]);){for(let s=Z.length-1;s>=0;s--){let h=n.createElement(Z[s]);for(;b.firstChild;)h.appendChild(b.firstChild);b.appendChild(h),W++}a=b.firstChild}a&&a.nodeType==1&&a.setAttribute("data-pm-slice",`${e} ${d}${W?` -${W}`:""} ${JSON.stringify(c)}`);let m=I.someProp("clipboardTextSerializer",s=>s(l,I))||l.content.textBetween(0,l.content.size,` - -`);return{dom:b,text:m}}function VP(I,l,c,G,e){let d=e.parent.type.spec.code,t,n;if(!c&&!l)return null;let b=l&&(G||d||!c);if(b){if(I.someProp("transformPastedText",m=>{l=m(l,d||G,I)}),d)return l?new ol(TI.from(I.state.schema.text(l.replace(/\r\n?/g,` -`))),0,0):ol.empty;let W=I.someProp("clipboardTextParser",m=>m(l,e,G,I));if(W)n=W;else{let m=e.marks(),{schema:s}=I.state,h=jn.fromSchema(s);t=document.createElement("div"),l.split(/(?:\r\n?|\n)+/).forEach(p=>{let V=t.appendChild(document.createElement("p"));p&&V.appendChild(h.serializeNode(s.text(p,m)))})}}else I.someProp("transformPastedHTML",W=>{c=W(c,I)}),t=wfI(c),_h&&EfI(t);let a=t&&t.querySelector("[data-pm-slice]"),Z=a&&/^(\d+) (\d+)(?: -(\d+))? (.*)/.exec(a.getAttribute("data-pm-slice")||"");if(Z&&Z[3])for(let W=+Z[3];W>0;W--){let m=t.firstChild;for(;m&&m.nodeType!=1;)m=m.nextSibling;if(!m)break;t=m}if(n||(n=(I.someProp("clipboardParser")||I.someProp("domParser")||Yy.fromSchema(I.state.schema)).parseSlice(t,{preserveWhitespace:!!(b||Z),context:e,ruleFromNode(m){return m.nodeName=="BR"&&!m.nextSibling&&m.parentNode&&!HfI.test(m.parentNode.nodeName)?{ignore:!0}:null}})),Z)n=vfI(JC(n,+Z[1],+Z[2]),Z[4]);else if(n=ol.maxOpen(QfI(n.content,e),!0),n.openStart||n.openEnd){let W=0,m=0;for(let s=n.content.firstChild;W{n=W(n,I)}),n}const HfI=/^(a|abbr|acronym|b|cite|code|del|em|i|ins|kbd|label|output|q|ruby|s|samp|span|strong|sub|sup|time|u|tt|var)$/i;function QfI(I,l){if(I.childCount<2)return I;for(let c=l.depth;c>=0;c--){let e=l.node(c).contentMatchAt(l.index(c)),d,t=[];if(I.forEach(n=>{if(!t)return;let b=e.findWrapping(n.type),a;if(!b)return t=null;if(a=t.length&&d.length&&FP(b,d,n,t[t.length-1],0))t[t.length-1]=a;else{t.length&&(t[t.length-1]=NP(t[t.length-1],d.length));let Z=iP(n,b);t.push(Z),e=e.matchType(Z.type),d=b}}),t)return TI.from(t)}return I}function iP(I,l,c=0){for(let G=l.length-1;G>=c;G--)I=l[G].create(null,TI.from(I));return I}function FP(I,l,c,G,e){if(e1&&(d=0),e=c&&(n=l<0?t.contentMatchAt(0).fillBefore(n,d<=e).append(n):n.append(t.contentMatchAt(t.childCount).fillBefore(TI.empty,!0))),I.replaceChild(l<0?0:I.childCount-1,t.copy(n))}function JC(I,l,c){return l]*>)*/.exec(I);l&&(I=I.slice(l[0].length));let c=YP().createElement("div"),G=/<([a-z][^>\s]+)/i.exec(I),e;if((e=G&&RP[G[1].toLowerCase()])&&(I=e.map(d=>"<"+d+">").join("")+I+e.map(d=>"").reverse().join("")),c.innerHTML=I,e)for(let d=0;d=0;n-=2){let b=c.nodes[G[n]];if(!b||b.hasRequiredAttrs())break;e=TI.from(b.create(G[n+1],e)),d++,t++}return new ol(e,d,t)}const Id={},ld={},gfI={touchstart:!0,touchmove:!0};class AfI{constructor(){this.shiftKey=!1,this.mouseDown=null,this.lastKeyCode=null,this.lastKeyCodeTime=0,this.lastClick={time:0,x:0,y:0,type:""},this.lastSelectionOrigin=null,this.lastSelectionTime=0,this.lastIOSEnter=0,this.lastIOSEnterFallbackTimeout=-1,this.lastFocus=0,this.lastTouch=0,this.lastAndroidDelete=0,this.composing=!1,this.compositionNode=null,this.composingTimeout=-1,this.compositionNodes=[],this.compositionEndedAt=-2e8,this.compositionID=1,this.compositionPendingChanges=0,this.domChangeCount=0,this.eventHandlers=Object.create(null),this.hideSelectionGuard=null}}function yfI(I){for(let l in Id){let c=Id[l];I.dom.addEventListener(l,I.input.eventHandlers[l]=G=>{BfI(I,G)&&!vy(I,G)&&(I.editable||!(G.type in ld))&&c(I,G)},gfI[l]?{passive:!0}:void 0)}$e&&I.dom.addEventListener("input",()=>null),ME(I)}function La(I,l){I.input.lastSelectionOrigin=l,I.input.lastSelectionTime=Date.now()}function JfI(I){I.domObserver.stop();for(let l in I.input.eventHandlers)I.dom.removeEventListener(l,I.input.eventHandlers[l]);clearTimeout(I.input.composingTimeout),clearTimeout(I.input.lastIOSEnterFallbackTimeout)}function ME(I){I.someProp("handleDOMEvents",l=>{for(let c in l)I.input.eventHandlers[c]||I.dom.addEventListener(c,I.input.eventHandlers[c]=G=>vy(I,G))})}function vy(I,l){return I.someProp("handleDOMEvents",c=>{let G=c[l.type];return G?G(I,l)||l.defaultPrevented:!1})}function BfI(I,l){if(!l.bubbles)return!0;if(l.defaultPrevented)return!1;for(let c=l.target;c!=I.dom;c=c.parentNode)if(!c||c.nodeType==11||c.pmViewDesc&&c.pmViewDesc.stopEvent(l))return!1;return!0}function kfI(I,l){!vy(I,l)&&Id[l.type]&&(I.editable||!(l.type in ld))&&Id[l.type](I,l)}ld.keydown=(I,l)=>{let c=l;if(I.input.shiftKey=c.keyCode==16||c.shiftKey,!HP(I,c)&&(I.input.lastKeyCode=c.keyCode,I.input.lastKeyCodeTime=Date.now(),!(dn&&Pe&&c.keyCode==13)))if(c.keyCode!=229&&I.domObserver.forceFlush(),t0&&c.keyCode==13&&!c.ctrlKey&&!c.altKey&&!c.metaKey){let G=Date.now();I.input.lastIOSEnter=G,I.input.lastIOSEnterFallbackTimeout=setTimeout(()=>{I.input.lastIOSEnter==G&&(I.someProp("handleKeyDown",e=>e(I,eW(13,"Enter"))),I.input.lastIOSEnter=0)},200)}else I.someProp("handleKeyDown",G=>G(I,c))||XfI(I,c)?c.preventDefault():La(I,"key")};ld.keyup=(I,l)=>{l.keyCode==16&&(I.input.shiftKey=!1)};ld.keypress=(I,l)=>{let c=l;if(HP(I,c)||!c.charCode||c.ctrlKey&&!c.altKey||Nt&&c.metaKey)return;if(I.someProp("handleKeyPress",e=>e(I,c))){c.preventDefault();return}let G=I.state.selection;if(!(G instanceof uc)||!G.$from.sameParent(G.$to)){let e=String.fromCharCode(c.charCode);!/[\r\n]/.test(e)&&!I.someProp("handleTextInput",d=>d(I,G.$from.pos,G.$to.pos,e))&&I.dispatch(I.state.tr.insertText(e).scrollIntoView()),c.preventDefault()}};function TN(I){return{left:I.clientX,top:I.clientY}}function xfI(I,l){let c=l.x-I.clientX,G=l.y-I.clientY;return c*c+G*G<100}function gy(I,l,c,G,e){if(G==-1)return!1;let d=I.state.doc.resolve(G);for(let t=d.depth+1;t>0;t--)if(I.someProp(l,n=>t>d.depth?n(I,c,d.nodeAfter,d.before(t),e,!0):n(I,c,d.node(t),d.before(t),e,!1)))return!0;return!1}function km(I,l,c){I.focused||I.focus();let G=I.state.tr.setSelection(l);c=="pointer"&&G.setMeta("pointer",!0),I.dispatch(G)}function zfI(I,l){if(l==-1)return!1;let c=I.state.doc.resolve(l),G=c.nodeAfter;return G&&G.isAtom&&Kl.isSelectable(G)?(km(I,new Kl(c),"pointer"),!0):!1}function UfI(I,l){if(l==-1)return!1;let c=I.state.selection,G,e;c instanceof Kl&&(G=c.node);let d=I.state.doc.resolve(l);for(let t=d.depth+1;t>0;t--){let n=t>d.depth?d.nodeAfter:d.node(t);if(Kl.isSelectable(n)){G&&c.$from.depth>0&&t>=c.$from.depth&&d.before(c.$from.depth+1)==c.$from.pos?e=d.before(c.$from.depth):e=d.before(t);break}}return e!=null?(km(I,Kl.create(I.state.doc,e),"pointer"),!0):!1}function CfI(I,l,c,G,e){return gy(I,"handleClickOn",l,c,G)||I.someProp("handleClick",d=>d(I,l,G))||(e?UfI(I,c):zfI(I,c))}function MfI(I,l,c,G){return gy(I,"handleDoubleClickOn",l,c,G)||I.someProp("handleDoubleClick",e=>e(I,l,G))}function ffI(I,l,c,G){return gy(I,"handleTripleClickOn",l,c,G)||I.someProp("handleTripleClick",e=>e(I,l,G))||KfI(I,c,G)}function KfI(I,l,c){if(c.button!=0)return!1;let G=I.state.doc;if(l==-1)return G.inlineContent?(km(I,uc.create(G,0,G.content.size),"pointer"),!0):!1;let e=G.resolve(l);for(let d=e.depth+1;d>0;d--){let t=d>e.depth?e.nodeAfter:e.node(d),n=e.before(d);if(t.inlineContent)km(I,uc.create(G,n+1,n+1+t.content.size),"pointer");else if(Kl.isSelectable(t))km(I,Kl.create(G,n),"pointer");else continue;return!0}}function Ay(I){return Ci(I)}const XP=Nt?"metaKey":"ctrlKey";Id.mousedown=(I,l)=>{let c=l;I.input.shiftKey=c.shiftKey;let G=Ay(I),e=Date.now(),d="singleClick";e-I.input.lastClick.time<500&&xfI(c,I.input.lastClick)&&!c[XP]&&(I.input.lastClick.type=="singleClick"?d="doubleClick":I.input.lastClick.type=="doubleClick"&&(d="tripleClick")),I.input.lastClick={time:e,x:c.clientX,y:c.clientY,type:d};let t=I.posAtCoords(TN(c));t&&(d=="singleClick"?(I.input.mouseDown&&I.input.mouseDown.done(),I.input.mouseDown=new LfI(I,t,c,!!G)):(d=="doubleClick"?MfI:ffI)(I,t.pos,t.inside,c)?c.preventDefault():La(I,"pointer"))};class LfI{constructor(l,c,G,e){this.view=l,this.pos=c,this.event=G,this.flushed=e,this.delayedSelectionSync=!1,this.mightDrag=null,this.startDoc=l.state.doc,this.selectNode=!!G[XP],this.allowDefault=G.shiftKey;let d,t;if(c.inside>-1)d=l.state.doc.nodeAt(c.inside),t=c.inside;else{let Z=l.state.doc.resolve(c.pos);d=Z.parent,t=Z.depth?Z.before():0}const n=e?null:G.target,b=n?l.docView.nearestDesc(n,!0):null;this.target=b?b.dom:null;let{selection:a}=l.state;(G.button==0&&d.type.spec.draggable&&d.type.spec.selectable!==!1||a instanceof Kl&&a.from<=t&&a.to>t)&&(this.mightDrag={node:d,pos:t,addAttr:!!(this.target&&!this.target.draggable),setUneditable:!!(this.target&&pn&&!this.target.hasAttribute("contentEditable"))}),this.target&&this.mightDrag&&(this.mightDrag.addAttr||this.mightDrag.setUneditable)&&(this.view.domObserver.stop(),this.mightDrag.addAttr&&(this.target.draggable=!0),this.mightDrag.setUneditable&&setTimeout(()=>{this.view.input.mouseDown==this&&this.target.setAttribute("contentEditable","false")},20),this.view.domObserver.start()),l.root.addEventListener("mouseup",this.up=this.up.bind(this)),l.root.addEventListener("mousemove",this.move=this.move.bind(this)),La(l,"pointer")}done(){this.view.root.removeEventListener("mouseup",this.up),this.view.root.removeEventListener("mousemove",this.move),this.mightDrag&&this.target&&(this.view.domObserver.stop(),this.mightDrag.addAttr&&this.target.removeAttribute("draggable"),this.mightDrag.setUneditable&&this.target.removeAttribute("contentEditable"),this.view.domObserver.start()),this.delayedSelectionSync&&setTimeout(()=>Sb(this.view)),this.view.input.mouseDown=null}up(l){if(this.done(),!this.view.dom.contains(l.target))return;let c=this.pos;this.view.state.doc!=this.startDoc&&(c=this.view.posAtCoords(TN(l))),this.updateAllowDefault(l),this.allowDefault||!c?La(this.view,"pointer"):CfI(this.view,c.pos,c.inside,l,this.selectNode)?l.preventDefault():l.button==0&&(this.flushed||$e&&this.mightDrag&&!this.mightDrag.node.isAtom||Pe&&!this.view.state.selection.visible&&Math.min(Math.abs(c.pos-this.view.state.selection.from),Math.abs(c.pos-this.view.state.selection.to))<=2)?(km(this.view,pc.near(this.view.state.doc.resolve(c.pos)),"pointer"),l.preventDefault()):La(this.view,"pointer")}move(l){this.updateAllowDefault(l),La(this.view,"pointer"),l.buttons==0&&this.done()}updateAllowDefault(l){!this.allowDefault&&(Math.abs(this.event.x-l.clientX)>4||Math.abs(this.event.y-l.clientY)>4)&&(this.allowDefault=!0)}}Id.touchstart=I=>{I.input.lastTouch=Date.now(),Ay(I),La(I,"pointer")};Id.touchmove=I=>{I.input.lastTouch=Date.now(),La(I,"pointer")};Id.contextmenu=I=>Ay(I);function HP(I,l){return I.composing?!0:$e&&Math.abs(l.timeStamp-I.input.compositionEndedAt)<500?(I.input.compositionEndedAt=-2e8,!0):!1}const SfI=dn?5e3:-1;ld.compositionstart=ld.compositionupdate=I=>{if(!I.composing){I.domObserver.flush();let{state:l}=I,c=l.selection.$from;if(l.selection.empty&&(l.storedMarks||!c.textOffset&&c.parentOffset&&c.nodeBefore.marks.some(G=>G.type.spec.inclusive===!1)))I.markCursor=I.state.storedMarks||c.marks(),Ci(I,!0),I.markCursor=null;else if(Ci(I),pn&&l.selection.empty&&c.parentOffset&&!c.textOffset&&c.nodeBefore.marks.length){let G=I.domSelectionRange();for(let e=G.focusNode,d=G.focusOffset;e&&e.nodeType==1&&d!=0;){let t=d<0?e.lastChild:e.childNodes[d-1];if(!t)break;if(t.nodeType==3){I.domSelection().collapse(t,t.nodeValue.length);break}else e=t,d=-1}}I.input.composing=!0}QP(I,SfI)};ld.compositionend=(I,l)=>{I.composing&&(I.input.composing=!1,I.input.compositionEndedAt=l.timeStamp,I.input.compositionPendingChanges=I.domObserver.pendingRecords().length?I.input.compositionID:0,I.input.compositionNode=null,I.input.compositionPendingChanges&&Promise.resolve().then(()=>I.domObserver.flush()),I.input.compositionID++,QP(I,20))};function QP(I,l){clearTimeout(I.input.composingTimeout),l>-1&&(I.input.composingTimeout=setTimeout(()=>Ci(I),l))}function wP(I){for(I.composing&&(I.input.composing=!1,I.input.compositionEndedAt=jfI());I.input.compositionNodes.length>0;)I.input.compositionNodes.pop().markParentsDirty()}function TfI(I){let l=I.domSelectionRange();if(!l.focusNode)return null;let c=zMI(l.focusNode,l.focusOffset),G=UMI(l.focusNode,l.focusOffset);if(c&&G&&c!=G){let e=G.pmViewDesc;if(!e||!e.isText(G.nodeValue))return G;if(I.input.compositionNode==G){let d=c.pmViewDesc;if(!(!d||!d.isText(c.nodeValue)))return G}}return c}function jfI(){let I=document.createEvent("Event");return I.initEvent("event",!0,!0),I.timeStamp}function Ci(I,l=!1){if(!(dn&&I.domObserver.flushingSoon>=0)){if(I.domObserver.forceFlush(),wP(I),l||I.docView&&I.docView.dirty){let c=wy(I);return c&&!c.eq(I.state.selection)?I.dispatch(I.state.tr.setSelection(c)):I.updateState(I.state),!0}return!1}}function DfI(I,l){if(!I.dom.parentNode)return;let c=I.dom.parentNode.appendChild(document.createElement("div"));c.appendChild(l),c.style.cssText="position: fixed; left: -10000px; top: 10px";let G=getSelection(),e=document.createRange();e.selectNodeContents(l),I.dom.blur(),G.removeAllRanges(),G.addRange(e),setTimeout(()=>{c.parentNode&&c.parentNode.removeChild(c),I.focus()},50)}const sh=Rd&&dZ<15||t0&&SMI<604;Id.copy=ld.cut=(I,l)=>{let c=l,G=I.state.selection,e=c.type=="cut";if(G.empty)return;let d=sh?null:c.clipboardData,t=G.content(),{dom:n,text:b}=oP(I,t);d?(c.preventDefault(),d.clearData(),d.setData("text/html",n.innerHTML),d.setData("text/plain",b)):DfI(I,n),e&&I.dispatch(I.state.tr.deleteSelection().scrollIntoView().setMeta("uiEvent","cut"))};function OfI(I){return I.openStart==0&&I.openEnd==0&&I.content.childCount==1?I.content.firstChild:null}function PfI(I,l){if(!I.dom.parentNode)return;let c=I.input.shiftKey||I.state.selection.$from.parent.type.spec.code,G=I.dom.parentNode.appendChild(document.createElement(c?"textarea":"div"));c||(G.contentEditable="true"),G.style.cssText="position: fixed; left: -10000px; top: 10px",G.focus();let e=I.input.shiftKey&&I.input.lastKeyCode!=45;setTimeout(()=>{I.focus(),G.parentNode&&G.parentNode.removeChild(G),c?uh(I,G.value,null,e,l):uh(I,G.textContent,G.innerHTML,e,l)},50)}function uh(I,l,c,G,e){let d=VP(I,l,c,G,I.state.selection.$from);if(I.someProp("handlePaste",b=>b(I,e,d||ol.empty)))return!0;if(!d)return!1;let t=OfI(d),n=t?I.state.tr.replaceSelectionWith(t,G):I.state.tr.replaceSelection(d);return I.dispatch(n.scrollIntoView().setMeta("paste",!0).setMeta("uiEvent","paste")),!0}function EP(I){let l=I.getData("text/plain")||I.getData("Text");if(l)return l;let c=I.getData("text/uri-list");return c?c.replace(/\r?\n/g," "):""}ld.paste=(I,l)=>{let c=l;if(I.composing&&!dn)return;let G=sh?null:c.clipboardData,e=I.input.shiftKey&&I.input.lastKeyCode!=45;G&&uh(I,EP(G),G.getData("text/html"),e,c)?c.preventDefault():PfI(I,c)};class vP{constructor(l,c,G){this.slice=l,this.move=c,this.node=G}}const gP=Nt?"altKey":"ctrlKey";Id.dragstart=(I,l)=>{let c=l,G=I.input.mouseDown;if(G&&G.done(),!c.dataTransfer)return;let e=I.state.selection,d=e.empty?null:I.posAtCoords(TN(c)),t;if(!(d&&d.pos>=e.from&&d.pos<=(e instanceof Kl?e.to-1:e.to))){if(G&&G.mightDrag)t=Kl.create(I.state.doc,G.mightDrag.pos);else if(c.target&&c.target.nodeType==1){let Z=I.docView.nearestDesc(c.target,!0);Z&&Z.node.type.spec.draggable&&Z!=I.docView&&(t=Kl.create(I.state.doc,Z.posBefore))}}let n=(t||I.state.selection).content(),{dom:b,text:a}=oP(I,n);c.dataTransfer.clearData(),c.dataTransfer.setData(sh?"Text":"text/html",b.innerHTML),c.dataTransfer.effectAllowed="copyMove",sh||c.dataTransfer.setData("text/plain",a),I.dragging=new vP(n,!c[gP],t)};Id.dragend=I=>{let l=I.dragging;window.setTimeout(()=>{I.dragging==l&&(I.dragging=null)},50)};ld.dragover=ld.dragenter=(I,l)=>l.preventDefault();ld.drop=(I,l)=>{let c=l,G=I.dragging;if(I.dragging=null,!c.dataTransfer)return;let e=I.posAtCoords(TN(c));if(!e)return;let d=I.state.doc.resolve(e.pos),t=G&&G.slice;t?I.someProp("transformPasted",h=>{t=h(t,I)}):t=VP(I,EP(c.dataTransfer),sh?null:c.dataTransfer.getData("text/html"),!1,d);let n=!!(G&&!c[gP]);if(I.someProp("handleDrop",h=>h(I,c,t||ol.empty,n))){c.preventDefault();return}if(!t)return;c.preventDefault();let b=t?YMI(I.state.doc,d.pos,t):d.pos;b==null&&(b=d.pos);let a=I.state.tr;if(n){let{node:h}=G;h?h.replace(a):a.deleteSelection()}let Z=a.mapping.map(b),W=t.openStart==0&&t.openEnd==0&&t.content.childCount==1,m=a.doc;if(W?a.replaceRangeWith(Z,Z,t.content.firstChild):a.replaceRange(Z,Z,t),a.doc.eq(m))return;let s=a.doc.resolve(Z);if(W&&Kl.isSelectable(t.content.firstChild)&&s.nodeAfter&&s.nodeAfter.sameMarkup(t.content.firstChild))a.setSelection(new Kl(s));else{let h=a.mapping.map(b);a.mapping.maps[a.mapping.maps.length-1].forEach((p,V,o,F)=>h=F),a.setSelection(Ey(I,s,a.doc.resolve(h)))}I.focus(),I.dispatch(a.setMeta("uiEvent","drop"))};Id.focus=I=>{I.input.lastFocus=Date.now(),I.focused||(I.domObserver.stop(),I.dom.classList.add("ProseMirror-focused"),I.domObserver.start(),I.focused=!0,setTimeout(()=>{I.docView&&I.hasFocus()&&!I.domObserver.currentSelection.eq(I.domSelectionRange())&&Sb(I)},20))};Id.blur=(I,l)=>{let c=l;I.focused&&(I.domObserver.stop(),I.dom.classList.remove("ProseMirror-focused"),I.domObserver.start(),c.relatedTarget&&I.dom.contains(c.relatedTarget)&&I.domObserver.currentSelection.clear(),I.focused=!1)};Id.beforeinput=(I,l)=>{if(Pe&&dn&&l.inputType=="deleteContentBackward"){I.domObserver.flushSoon();let{domChangeCount:G}=I.input;setTimeout(()=>{if(I.input.domChangeCount!=G||(I.dom.blur(),I.focus(),I.someProp("handleKeyDown",d=>d(I,eW(8,"Backspace")))))return;let{$cursor:e}=I.state.selection;e&&e.pos>0&&I.dispatch(I.state.tr.delete(e.pos-1,e.pos).scrollIntoView())},50)}};for(let I in ld)Id[I]=ld[I];function hh(I,l){if(I==l)return!0;for(let c in I)if(I[c]!==l[c])return!1;for(let c in l)if(!(c in I))return!1;return!0}class Mi{constructor(l,c){this.toDOM=l,this.spec=c||AW,this.side=this.spec.side||0}map(l,c,G,e){let{pos:d,deleted:t}=l.mapResult(c.from+e,this.side<0?-1:1);return t?null:new Td(d-G,d-G,this)}valid(){return!0}eq(l){return this==l||l instanceof Mi&&(this.spec.key&&this.spec.key==l.spec.key||this.toDOM==l.toDOM&&hh(this.spec,l.spec))}destroy(l){this.spec.destroy&&this.spec.destroy(l)}}class nZ{constructor(l,c){this.attrs=l,this.spec=c||AW}map(l,c,G,e){let d=l.map(c.from+e,this.spec.inclusiveStart?-1:1)-G,t=l.map(c.to+e,this.spec.inclusiveEnd?1:-1)-G;return d>=t?null:new Td(d,t,this)}valid(l,c){return c.from=l&&(!d||d(n.spec))&&G.push(n.copy(n.from+e,n.to+e))}for(let t=0;tl){let n=this.children[t]+1;this.children[t+2].findInner(l-n,c-n,G,e+n,d)}}map(l,c,G){return this==ge||l.maps.length==0?this:this.mapInner(l,c,0,0,G||AW)}mapInner(l,c,G,e,d){let t;for(let n=0;n{let a=b+G,Z;if(Z=yP(c,n,a)){for(e||(e=this.children.slice());dn&&W.to=l){this.children[n]==l&&(G=this.children[n+2]);break}let d=l+1,t=d+c.content.size;for(let n=0;nd&&b.type instanceof nZ){let a=Math.max(d,b.from)-d,Z=Math.min(t,b.to)-d;ae.map(l,c,AW));return Ba.from(G)}forChild(l,c){if(c.isLeaf)return BG.empty;let G=[];for(let e=0;ec instanceof BG)?l:l.reduce((c,G)=>c.concat(G instanceof BG?G:G.members),[]))}}}function _fI(I,l,c,G,e,d,t){let n=I.slice();for(let a=0,Z=d;a{let V=p-h-(s-m);for(let o=0;oF+Z-W)continue;let X=n[o]+Z-W;s>=X?n[o+1]=m<=X?-2:-1:m>=Z&&V&&(n[o]+=V,n[o+1]+=V)}W+=V}),Z=c.maps[a].map(Z,-1)}let b=!1;for(let a=0;a=G.content.size){b=!0;continue}let m=c.map(I[a+1]+d,-1),s=m-e,{index:h,offset:p}=G.content.findIndex(W),V=G.maybeChild(h);if(V&&p==W&&p+V.nodeSize==s){let o=n[a+2].mapInner(c,V,Z+1,I[a]+d+1,t);o!=ge?(n[a]=W,n[a+1]=s,n[a+2]=o):(n[a+1]=-2,b=!0)}else b=!0}if(b){let a=qfI(n,I,l,c,e,d,t),Z=fi(a,G,0,t);l=Z.local;for(let W=0;Wc&&t.to{let a=yP(I,n,b+c);if(a){d=!0;let Z=fi(a,n,c+b+1,G);Z!=ge&&e.push(b,b+n.nodeSize,Z)}});let t=AP(d?JP(I):I,-c).sort(yW);for(let n=0;n0;)l++;I.splice(l,0,c)}function YH(I){let l=[];return I.someProp("decorations",c=>{let G=c(I.state);G&&G!=ge&&l.push(G)}),I.cursorWrapper&&l.push(BG.create(I.state.doc,[I.cursorWrapper.deco])),Ba.from(l)}const $fI={childList:!0,characterData:!0,characterDataOldValue:!0,attributes:!0,attributeOldValue:!0,subtree:!0},IKI=Rd&&dZ<=11;class lKI{constructor(){this.anchorNode=null,this.anchorOffset=0,this.focusNode=null,this.focusOffset=0}set(l){this.anchorNode=l.anchorNode,this.anchorOffset=l.anchorOffset,this.focusNode=l.focusNode,this.focusOffset=l.focusOffset}clear(){this.anchorNode=this.focusNode=null}eq(l){return l.anchorNode==this.anchorNode&&l.anchorOffset==this.anchorOffset&&l.focusNode==this.focusNode&&l.focusOffset==this.focusOffset}}class cKI{constructor(l,c){this.view=l,this.handleDOMChange=c,this.queue=[],this.flushingSoon=-1,this.observer=null,this.currentSelection=new lKI,this.onCharData=null,this.suppressingSelectionUpdates=!1,this.observer=window.MutationObserver&&new window.MutationObserver(G=>{for(let e=0;ee.type=="childList"&&e.removedNodes.length||e.type=="characterData"&&e.oldValue.length>e.target.nodeValue.length)?this.flushSoon():this.flush()}),IKI&&(this.onCharData=G=>{this.queue.push({target:G.target,type:"characterData",oldValue:G.prevValue}),this.flushSoon()}),this.onSelectionChange=this.onSelectionChange.bind(this)}flushSoon(){this.flushingSoon<0&&(this.flushingSoon=window.setTimeout(()=>{this.flushingSoon=-1,this.flush()},20))}forceFlush(){this.flushingSoon>-1&&(window.clearTimeout(this.flushingSoon),this.flushingSoon=-1,this.flush())}start(){this.observer&&(this.observer.takeRecords(),this.observer.observe(this.view.dom,$fI)),this.onCharData&&this.view.dom.addEventListener("DOMCharacterDataModified",this.onCharData),this.connectSelection()}stop(){if(this.observer){let l=this.observer.takeRecords();if(l.length){for(let c=0;cthis.flush(),20)}this.observer.disconnect()}this.onCharData&&this.view.dom.removeEventListener("DOMCharacterDataModified",this.onCharData),this.disconnectSelection()}connectSelection(){this.view.dom.ownerDocument.addEventListener("selectionchange",this.onSelectionChange)}disconnectSelection(){this.view.dom.ownerDocument.removeEventListener("selectionchange",this.onSelectionChange)}suppressSelectionUpdates(){this.suppressingSelectionUpdates=!0,setTimeout(()=>this.suppressingSelectionUpdates=!1,50)}onSelectionChange(){if(wC(this.view)){if(this.suppressingSelectionUpdates)return Sb(this.view);if(Rd&&dZ<=11&&!this.view.state.selection.empty){let l=this.view.domSelectionRange();if(l.focusNode&&DW(l.focusNode,l.focusOffset,l.anchorNode,l.anchorOffset))return this.flushSoon()}this.flush()}}setCurSelection(){this.currentSelection.set(this.view.domSelectionRange())}ignoreSelectionChange(l){if(!l.focusNode)return!0;let c=new Set,G;for(let d=l.focusNode;d;d=mh(d))c.add(d);for(let d=l.anchorNode;d;d=mh(d))if(c.has(d)){G=d;break}let e=G&&this.view.docView.nearestDesc(G);if(e&&e.ignoreMutation({type:"selection",target:G.nodeType==3?G.parentNode:G}))return this.setCurSelection(),!0}pendingRecords(){if(this.observer)for(let l of this.observer.takeRecords())this.queue.push(l);return this.queue}flush(){let{view:l}=this;if(!l.docView||this.flushingSoon>-1)return;let c=this.pendingRecords();c.length&&(this.queue=[]);let G=l.domSelectionRange(),e=!this.suppressingSelectionUpdates&&!this.currentSelection.eq(G)&&wC(l)&&!this.ignoreSelectionChange(G),d=-1,t=-1,n=!1,b=[];if(l.editable)for(let Z=0;Z1){let Z=b.filter(W=>W.nodeName=="BR");if(Z.length==2){let W=Z[0],m=Z[1];W.parentNode&&W.parentNode.parentNode==m.parentNode?m.remove():W.remove()}}let a=null;d<0&&e&&l.input.lastFocus>Date.now()-200&&Math.max(l.input.lastTouch,l.input.lastClick.time)-1||e)&&(d>-1&&(l.docView.markDirty(d,t),GKI(l)),this.handleDOMChange(d,t,n,b),l.docView&&l.docView.dirty?l.updateState(l.state):this.currentSelection.eq(G)||Sb(l),this.currentSelection.set(G))}registerMutation(l,c){if(c.indexOf(l.target)>-1)return null;let G=this.view.docView.nearestDesc(l.target);if(l.type=="attributes"&&(G==this.view.docView||l.attributeName=="contenteditable"||l.attributeName=="style"&&!l.oldValue&&!l.target.getAttribute("style"))||!G||G.ignoreMutation(l))return null;if(l.type=="childList"){for(let Z=0;Ze;V--){let o=G.childNodes[V-1],F=o.pmViewDesc;if(o.nodeName=="BR"&&!F){d=V;break}if(!F||F.size)break}let W=I.state.doc,m=I.someProp("domParser")||Yy.fromSchema(I.state.schema),s=W.resolve(t),h=null,p=m.parse(G,{topNode:s.parent,topMatch:s.parent.contentMatchAt(s.index()),topOpen:!0,from:e,to:d,preserveWhitespace:s.parent.type.whitespace=="pre"?"full":!0,findPositions:a,ruleFromNode:tKI,context:s});if(a&&a[0].pos!=null){let V=a[0].pos,o=a[1]&&a[1].pos;o==null&&(o=V),h={anchor:V+t,head:o+t}}return{doc:p,sel:h,from:t,to:n}}function tKI(I){let l=I.pmViewDesc;if(l)return l.parseRule();if(I.nodeName=="BR"&&I.parentNode){if($e&&/^(ul|ol)$/i.test(I.parentNode.nodeName)){let c=document.createElement("div");return c.appendChild(document.createElement("li")),{skip:c}}else if(I.parentNode.lastChild==I||$e&&/^(tr|table)$/i.test(I.parentNode.nodeName))return{ignore:!0}}else if(I.nodeName=="IMG"&&I.getAttribute("mark-placeholder"))return{ignore:!0};return null}const nKI=/^(a|abbr|acronym|b|bd[io]|big|br|button|cite|code|data(list)?|del|dfn|em|i|ins|kbd|label|map|mark|meter|output|q|ruby|s|samp|small|span|strong|su[bp]|time|u|tt|var)$/i;function bKI(I,l,c,G,e){let d=I.input.compositionPendingChanges||(I.composing?I.input.compositionID:0);if(I.input.compositionPendingChanges=0,l<0){let k=I.input.lastSelectionTime>Date.now()-50?I.input.lastSelectionOrigin:null,N=wy(I,k);if(N&&!I.state.selection.eq(N)){if(Pe&&dn&&I.input.lastKeyCode===13&&Date.now()-100A(I,eW(13,"Enter"))))return;let J=I.state.tr.setSelection(N);k=="pointer"?J.setMeta("pointer",!0):k=="key"&&J.scrollIntoView(),d&&J.setMeta("composition",d),I.dispatch(J)}return}let t=I.state.doc.resolve(l),n=t.sharedDepth(c);l=t.before(n+1),c=I.state.doc.resolve(c).after(n+1);let b=I.state.selection,a=dKI(I,l,c),Z=I.state.doc,W=Z.slice(a.from,a.to),m,s;I.input.lastKeyCode===8&&Date.now()-100Date.now()-225||dn)&&e.some(k=>k.nodeType==1&&!nKI.test(k.nodeName))&&(!h||h.endA>=h.endB)&&I.someProp("handleKeyDown",k=>k(I,eW(13,"Enter")))){I.input.lastIOSEnter=0;return}if(!h)if(G&&b instanceof uc&&!b.empty&&b.$head.sameParent(b.$anchor)&&!I.composing&&!(a.sel&&a.sel.anchor!=a.sel.head))h={start:b.from,endA:b.to,endB:b.to};else{if(a.sel){let k=UC(I,I.state.doc,a.sel);if(k&&!k.eq(I.state.selection)){let N=I.state.tr.setSelection(k);d&&N.setMeta("composition",d),I.dispatch(N)}}return}I.input.domChangeCount++,I.state.selection.fromI.state.selection.from&&h.start<=I.state.selection.from+2&&I.state.selection.from>=a.from?h.start=I.state.selection.from:h.endA=I.state.selection.to-2&&I.state.selection.to<=a.to&&(h.endB+=I.state.selection.to-h.endA,h.endA=I.state.selection.to)),Rd&&dZ<=11&&h.endB==h.start+1&&h.endA==h.start&&h.start>a.from&&a.doc.textBetween(h.start-a.from-1,h.start-a.from+1)=="  "&&(h.start--,h.endA--,h.endB--);let p=a.doc.resolveNoCache(h.start-a.from),V=a.doc.resolveNoCache(h.endB-a.from),o=Z.resolve(h.start),F=p.sameParent(V)&&p.parent.inlineContent&&o.end()>=h.endA,X;if((t0&&I.input.lastIOSEnter>Date.now()-225&&(!F||e.some(k=>k.nodeName=="DIV"||k.nodeName=="P"))||!F&&p.posk(I,eW(13,"Enter")))){I.input.lastIOSEnter=0;return}if(I.state.selection.anchor>h.start&&ZKI(Z,h.start,h.endA,p,V)&&I.someProp("handleKeyDown",k=>k(I,eW(8,"Backspace")))){dn&&Pe&&I.domObserver.suppressSelectionUpdates();return}Pe&&dn&&h.endB==h.start&&(I.input.lastAndroidDelete=Date.now()),dn&&!F&&p.start()!=V.start()&&V.parentOffset==0&&p.depth==V.depth&&a.sel&&a.sel.anchor==a.sel.head&&a.sel.head==h.endA&&(h.endB-=2,V=a.doc.resolveNoCache(h.endB-a.from),setTimeout(()=>{I.someProp("handleKeyDown",function(k){return k(I,eW(13,"Enter"))})},20));let H=h.start,Y=h.endA,R,B,C;if(F){if(p.pos==V.pos)Rd&&dZ<=11&&p.parentOffset==0&&(I.domObserver.suppressSelectionUpdates(),setTimeout(()=>Sb(I),20)),R=I.state.tr.delete(H,Y),B=Z.resolve(h.start).marksAcross(Z.resolve(h.endA));else if(h.endA==h.endB&&(C=aKI(p.parent.content.cut(p.parentOffset,V.parentOffset),o.parent.content.cut(o.parentOffset,h.endA-o.start()))))R=I.state.tr,C.type=="add"?R.addMark(H,Y,C.mark):R.removeMark(H,Y,C.mark);else if(p.parent.child(p.index()).isText&&p.index()==V.index()-(V.textOffset?0:1)){let k=p.parent.textBetween(p.parentOffset,V.parentOffset);if(I.someProp("handleTextInput",N=>N(I,H,Y,k)))return;R=I.state.tr.insertText(k,H,Y)}}if(R||(R=I.state.tr.replace(H,Y,a.doc.slice(h.start-a.from,h.endB-a.from))),a.sel){let k=UC(I,R.doc,a.sel);k&&!(Pe&&dn&&I.composing&&k.empty&&(h.start!=h.endB||I.input.lastAndroidDeletel.content.size?null:Ey(I,l.resolve(c.anchor),l.resolve(c.head))}function aKI(I,l){let c=I.firstChild.marks,G=l.firstChild.marks,e=c,d=G,t,n,b;for(let Z=0;ZZ.mark(n.addToSet(Z.marks));else if(e.length==0&&d.length==1)n=d[0],t="remove",b=Z=>Z.mark(n.removeFromSet(Z.marks));else return null;let a=[];for(let Z=0;Zc||XH(t,!0,!1)0&&(l||I.indexAfter(G)==I.node(G).childCount);)G--,e++,l=!1;if(c){let d=I.node(G).maybeChild(I.indexAfter(G));for(;d&&!d.isLeaf;)d=d.firstChild,e++}return e}function WKI(I,l,c,G,e){let d=I.findDiffStart(l,c);if(d==null)return null;let{a:t,b:n}=I.findDiffEnd(l,c+I.size,c+l.size);if(e=="end"){let b=Math.max(0,d-Math.min(t,n));G-=t+b-d}if(t=t?d-G:0;d-=b,d&&d=n?d-G:0;d-=b,d&&d=56320&&l<=57343&&c>=55296&&c<=56319}class rKI{constructor(l,c){this._root=null,this.focused=!1,this.trackWrites=null,this.mounted=!1,this.markCursor=null,this.cursorWrapper=null,this.lastSelectedViewDesc=void 0,this.input=new AfI,this.prevDirectPlugins=[],this.pluginViews=[],this.requiresGeckoHackNode=!1,this.dragging=null,this._props=c,this.state=c.state,this.directPlugins=c.plugins||[],this.directPlugins.forEach(SC),this.dispatch=this.dispatch.bind(this),this.dom=l&&l.mount||document.createElement("div"),l&&(l.appendChild?l.appendChild(this.dom):typeof l=="function"?l(this.dom):l.mount&&(this.mounted=!0)),this.editable=KC(this),fC(this),this.nodeViews=LC(this),this.docView=NC(this.state.doc,MC(this),YH(this),this.dom,this),this.domObserver=new cKI(this,(G,e,d,t)=>bKI(this,G,e,d,t)),this.domObserver.start(),yfI(this),this.updatePluginViews()}get composing(){return this.input.composing}get props(){if(this._props.state!=this.state){let l=this._props;this._props={};for(let c in l)this._props[c]=l[c];this._props.state=this.state}return this._props}update(l){l.handleDOMEvents!=this._props.handleDOMEvents&&ME(this);let c=this._props;this._props=l,l.plugins&&(l.plugins.forEach(SC),this.directPlugins=l.plugins),this.updateStateInner(l.state,c)}setProps(l){let c={};for(let G in this._props)c[G]=this._props[G];c.state=this.state;for(let G in l)c[G]=l[G];this.update(c)}updateState(l){this.updateStateInner(l,this._props)}updateStateInner(l,c){var G;let e=this.state,d=!1,t=!1;l.storedMarks&&this.composing&&(wP(this),t=!0),this.state=l;let n=e.plugins!=l.plugins||this._props.plugins!=c.plugins;if(n||this._props.plugins!=c.plugins||this._props.nodeViews!=c.nodeViews){let s=LC(this);sKI(s,this.nodeViews)&&(this.nodeViews=s,d=!0)}(n||c.handleDOMEvents!=this._props.handleDOMEvents)&&ME(this),this.editable=KC(this),fC(this);let b=YH(this),a=MC(this),Z=e.plugins!=l.plugins&&!e.doc.eq(l.doc)?"reset":l.scrollToSelection>e.scrollToSelection?"to selection":"preserve",W=d||!this.docView.matchesNode(l.doc,a,b);(W||!l.selection.eq(e.selection))&&(t=!0);let m=Z=="preserve"&&t&&this.dom.style.overflowAnchor==null&&DMI(this);if(t){this.domObserver.stop();let s=W&&(Rd||Pe)&&!this.composing&&!e.selection.empty&&!l.selection.empty&&mKI(e.selection,l.selection);if(W){let h=Pe?this.trackWrites=this.domSelectionRange().focusNode:null;this.composing&&(this.input.compositionNode=TfI(this)),(d||!this.docView.update(l.doc,a,b,this))&&(this.docView.updateOuterDeco(a),this.docView.destroy(),this.docView=NC(l.doc,a,b,this.dom,this)),h&&!this.trackWrites&&(s=!0)}s||!(this.input.mouseDown&&this.domObserver.currentSelection.eq(this.domSelectionRange())&&ofI(this))?Sb(this,s):(uP(this,l.selection),this.domObserver.setCurSelection()),this.domObserver.start()}this.updatePluginViews(e),!((G=this.dragging)===null||G===void 0)&&G.node&&!e.doc.eq(l.doc)&&this.updateDraggedNode(this.dragging,e),Z=="reset"?this.dom.scrollTop=0:Z=="to selection"?this.scrollToSelection():m&&OMI(m)}scrollToSelection(){let l=this.domSelectionRange().focusNode;if(!this.someProp("handleScrollToSelection",c=>c(this)))if(this.state.selection instanceof Kl){let c=this.docView.domAfterPos(this.state.selection.from);c.nodeType==1&&hC(this,c.getBoundingClientRect(),l)}else hC(this,this.coordsAtPos(this.state.selection.head,1),l)}destroyPluginViews(){let l;for(;l=this.pluginViews.pop();)l.destroy&&l.destroy()}updatePluginViews(l){if(!l||l.plugins!=this.state.plugins||this.directPlugins!=this.prevDirectPlugins){this.prevDirectPlugins=this.directPlugins,this.destroyPluginViews();for(let c=0;c0&&this.state.doc.nodeAt(d))==G.node&&(e=d)}this.dragging=new vP(l.slice,l.move,e<0?void 0:Kl.create(this.state.doc,e))}someProp(l,c){let G=this._props&&this._props[l],e;if(G!=null&&(e=c?c(G):G))return e;for(let t=0;tc.ownerDocument.getSelection()),this._root=c}return l||document}updateRoot(){this._root=null}posAtCoords(l){return lfI(this,l)}coordsAtPos(l,c=1){return nP(this,l,c)}domAtPos(l,c=0){return this.docView.domFromPos(l,c)}nodeDOM(l){let c=this.docView.descAt(l);return c?c.nodeDOM:null}posAtDOM(l,c,G=-1){let e=this.docView.posFromDOM(l,c,G);if(e==null)throw new RangeError("DOM position not inside the editor");return e}endOfTextblock(l,c){return tfI(this,c||this.state,l)}pasteHTML(l,c){return uh(this,"",l,!1,c||new ClipboardEvent("paste"))}pasteText(l,c){return uh(this,l,null,!0,c||new ClipboardEvent("paste"))}destroy(){this.docView&&(JfI(this),this.destroyPluginViews(),this.mounted?(this.docView.update(this.state.doc,[],YH(this),this),this.dom.textContent=""):this.dom.parentNode&&this.dom.parentNode.removeChild(this.dom),this.docView.destroy(),this.docView=null,kMI())}get isDestroyed(){return this.docView==null}dispatchEvent(l){return kfI(this,l)}dispatch(l){let c=this._props.dispatchTransaction;c?c.call(this,l):this.updateState(this.state.apply(l))}domSelectionRange(){return $e&&this.root.nodeType===11&&MMI(this.dom.ownerDocument)==this.dom?eKI(this):this.domSelection()}domSelection(){return this.root.getSelection()}}function MC(I){let l=Object.create(null);return l.class="ProseMirror",l.contenteditable=String(I.editable),I.someProp("attributes",c=>{if(typeof c=="function"&&(c=c(I.state)),c)for(let G in c)G=="class"?l.class+=" "+c[G]:G=="style"?l.style=(l.style?l.style+";":"")+c[G]:!l[G]&&G!="contenteditable"&&G!="nodeName"&&(l[G]=String(c[G]))}),l.translate||(l.translate="no"),[Td.node(0,I.state.doc.content.size,l)]}function fC(I){if(I.markCursor){let l=document.createElement("img");l.className="ProseMirror-separator",l.setAttribute("mark-placeholder","true"),l.setAttribute("alt",""),I.cursorWrapper={dom:l,deco:Td.widget(I.state.selection.head,l,{raw:!0,marks:I.markCursor})}}else I.cursorWrapper=null}function KC(I){return!I.someProp("editable",l=>l(I.state)===!1)}function mKI(I,l){let c=Math.min(I.$anchor.sharedDepth(I.head),l.$anchor.sharedDepth(l.head));return I.$anchor.start(c)!=l.$anchor.start(c)}function LC(I){let l=Object.create(null);function c(G){for(let e in G)Object.prototype.hasOwnProperty.call(l,e)||(l[e]=G[e])}return I.someProp("nodeViews",c),I.someProp("markViews",c),l}function sKI(I,l){let c=0,G=0;for(let e in I){if(I[e]!=l[e])return!0;c++}for(let e in l)G++;return c!=G}function SC(I){if(I.spec.state||I.spec.filterTransaction||I.spec.appendTransaction)throw new RangeError("Plugins passed directly to the view must not have a state component")}var VZ={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:"'"},Ki={48:")",49:"!",50:"@",51:"#",52:"$",53:"%",54:"^",55:"&",56:"*",57:"(",59:":",61:"+",173:"_",186:":",187:"+",188:"<",189:"_",190:">",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"'},uKI=typeof navigator<"u"&&/Mac/.test(navigator.platform),hKI=typeof navigator<"u"&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent);for(var Ve=0;Ve<10;Ve++)VZ[48+Ve]=VZ[96+Ve]=String(Ve);for(var Ve=1;Ve<=24;Ve++)VZ[Ve+111]="F"+Ve;for(var Ve=65;Ve<=90;Ve++)VZ[Ve]=String.fromCharCode(Ve+32),Ki[Ve]=String.fromCharCode(Ve);for(var HH in VZ)Ki.hasOwnProperty(HH)||(Ki[HH]=VZ[HH]);function pKI(I){var l=uKI&&I.metaKey&&I.shiftKey&&!I.ctrlKey&&!I.altKey||hKI&&I.shiftKey&&I.key&&I.key.length==1||I.key=="Unidentified",c=!l&&I.key||(I.shiftKey?Ki:VZ)[I.keyCode]||I.key||"Unidentified";return c=="Esc"&&(c="Escape"),c=="Del"&&(c="Delete"),c=="Left"&&(c="ArrowLeft"),c=="Up"&&(c="ArrowUp"),c=="Right"&&(c="ArrowRight"),c=="Down"&&(c="ArrowDown"),c}const oKI=typeof navigator<"u"?/Mac|iP(hone|[oa]d)/.test(navigator.platform):!1;function VKI(I){let l=I.split(/-(?!$)/),c=l[l.length-1];c=="Space"&&(c=" ");let G,e,d,t;for(let n=0;n127)&&(d=VZ[G.keyCode])&&d!=e){let n=l[QH(d,G)];if(n&&n(c.state,c.dispatch,c))return!0}}return!1}}const RKI=(I,l)=>I.selection.empty?!1:(l&&l(I.tr.deleteSelection().scrollIntoView()),!0);function BP(I,l){let{$cursor:c}=I.selection;return!c||(l?!l.endOfTextblock("backward",I):c.parentOffset>0)?null:c}const YKI=(I,l,c)=>{let G=BP(I,c);if(!G)return!1;let e=By(G);if(!e){let t=G.blockRange(),n=t&&w0(t);return n==null?!1:(l&&l(I.tr.lift(t,n).scrollIntoView()),!0)}let d=e.nodeBefore;if(!d.type.spec.isolating&&UP(I,e,l))return!0;if(G.parent.content.size==0&&(n0(d,"end")||Kl.isSelectable(d))){let t=fN(I.doc,G.before(),G.after(),ol.empty);if(t&&t.slice.size{let G=BP(I,c);if(!G)return!1;let e=By(G);return e?kP(I,e,l):!1},HKI=(I,l,c)=>{let G=xP(I,c);if(!G)return!1;let e=ky(G);return e?kP(I,e,l):!1};function kP(I,l,c){let G=l.nodeBefore,e=G,d=l.pos-1;for(;!e.isTextblock;d--){if(e.type.spec.isolating)return!1;let Z=e.lastChild;if(!Z)return!1;e=Z}let t=l.nodeAfter,n=t,b=l.pos+1;for(;!n.isTextblock;b++){if(n.type.spec.isolating)return!1;let Z=n.firstChild;if(!Z)return!1;n=Z}let a=fN(I.doc,d,b,ol.empty);if(!a||a.from!=d||a instanceof Ie&&a.slice.size>=b-d)return!1;if(c){let Z=I.tr.step(a);Z.setSelection(uc.create(Z.doc,d)),c(Z.scrollIntoView())}return!0}function n0(I,l,c=!1){for(let G=I;G;G=l=="start"?G.firstChild:G.lastChild){if(G.isTextblock)return!0;if(c&&G.childCount!=1)return!1}return!1}const QKI=(I,l,c)=>{let{$head:G,empty:e}=I.selection,d=G;if(!e)return!1;if(G.parent.isTextblock){if(c?!c.endOfTextblock("backward",I):G.parentOffset>0)return!1;d=By(G)}let t=d&&d.nodeBefore;return!t||!Kl.isSelectable(t)?!1:(l&&l(I.tr.setSelection(Kl.create(I.doc,d.pos-t.nodeSize)).scrollIntoView()),!0)};function By(I){if(!I.parent.type.spec.isolating)for(let l=I.depth-1;l>=0;l--){if(I.index(l)>0)return I.doc.resolve(I.before(l+1));if(I.node(l).type.spec.isolating)break}return null}function xP(I,l){let{$cursor:c}=I.selection;return!c||(l?!l.endOfTextblock("forward",I):c.parentOffset{let G=xP(I,c);if(!G)return!1;let e=ky(G);if(!e)return!1;let d=e.nodeAfter;if(UP(I,e,l))return!0;if(G.parent.content.size==0&&(n0(d,"start")||Kl.isSelectable(d))){let t=fN(I.doc,G.before(),G.after(),ol.empty);if(t&&t.slice.size{let{$head:G,empty:e}=I.selection,d=G;if(!e)return!1;if(G.parent.isTextblock){if(c?!c.endOfTextblock("forward",I):G.parentOffset=0;l--){let c=I.node(l);if(I.index(l)+1{let c=I.selection,G=c instanceof Kl,e;if(G){if(c.node.isTextblock||!nr(I.doc,c.from))return!1;e=c.from}else if(e=MN(I.doc,c.from,-1),e==null)return!1;if(l){let d=I.tr.join(e);G&&d.setSelection(Kl.create(d.doc,e-I.doc.resolve(e).nodeBefore.nodeSize)),l(d.scrollIntoView())}return!0},gKI=(I,l)=>{let c=I.selection,G;if(c instanceof Kl){if(c.node.isTextblock||!nr(I.doc,c.to))return!1;G=c.to}else if(G=MN(I.doc,c.to,1),G==null)return!1;return l&&l(I.tr.join(G).scrollIntoView()),!0},AKI=(I,l)=>{let{$from:c,$to:G}=I.selection,e=c.blockRange(G),d=e&&w0(e);return d==null?!1:(l&&l(I.tr.lift(e,d).scrollIntoView()),!0)},yKI=(I,l)=>{let{$head:c,$anchor:G}=I.selection;return!c.parent.type.spec.code||!c.sameParent(G)?!1:(l&&l(I.tr.insertText(` -`).scrollIntoView()),!0)};function zP(I){for(let l=0;l{let{$head:c,$anchor:G}=I.selection;if(!c.parent.type.spec.code||!c.sameParent(G))return!1;let e=c.node(-1),d=c.indexAfter(-1),t=zP(e.contentMatchAt(d));if(!t||!e.canReplaceWith(d,d,t))return!1;if(l){let n=c.after(),b=I.tr.replaceWith(n,n,t.createAndFill());b.setSelection(pc.near(b.doc.resolve(n),1)),l(b.scrollIntoView())}return!0},BKI=(I,l)=>{let c=I.selection,{$from:G,$to:e}=c;if(c instanceof sn||G.parent.inlineContent||e.parent.inlineContent)return!1;let d=zP(e.parent.contentMatchAt(e.indexAfter()));if(!d||!d.isTextblock)return!1;if(l){let t=(!G.parentOffset&&e.index(){let{$cursor:c}=I.selection;if(!c||c.parent.content.size)return!1;if(c.depth>1&&c.after()!=c.end(-1)){let d=c.before();if(Jm(I.doc,d))return l&&l(I.tr.split(d).scrollIntoView()),!0}let G=c.blockRange(),e=G&&w0(G);return e==null?!1:(l&&l(I.tr.lift(G,e).scrollIntoView()),!0)},xKI=(I,l)=>{let{$from:c,to:G}=I.selection,e,d=c.sharedDepth(G);return d==0?!1:(e=c.before(d),l&&l(I.tr.setSelection(Kl.create(I.doc,e))),!0)};function zKI(I,l,c){let G=l.nodeBefore,e=l.nodeAfter,d=l.index();return!G||!e||!G.type.compatibleContent(e.type)?!1:!G.content.size&&l.parent.canReplace(d-1,d)?(c&&c(I.tr.delete(l.pos-G.nodeSize,l.pos).scrollIntoView()),!0):!l.parent.canReplace(d,d+1)||!(e.isTextblock||nr(I.doc,l.pos))?!1:(c&&c(I.tr.clearIncompatible(l.pos,G.type,G.contentMatchAt(G.childCount)).join(l.pos).scrollIntoView()),!0)}function UP(I,l,c){let G=l.nodeBefore,e=l.nodeAfter,d,t;if(G.type.spec.isolating||e.type.spec.isolating)return!1;if(zKI(I,l,c))return!0;let n=l.parent.canReplace(l.index(),l.index()+1);if(n&&(d=(t=G.contentMatchAt(G.childCount)).findWrapping(e.type))&&t.matchType(d[0]||e.type).validEnd){if(c){let W=l.pos+e.nodeSize,m=TI.empty;for(let p=d.length-1;p>=0;p--)m=TI.from(d[p].create(null,m));m=TI.from(G.copy(m));let s=I.tr.step(new Ge(l.pos-1,W,l.pos,W,new ol(m,1,0),d.length,!0)),h=W+2*d.length;nr(s.doc,h)&&s.join(h),c(s.scrollIntoView())}return!0}let b=pc.findFrom(l,1),a=b&&b.$from.blockRange(b.$to),Z=a&&w0(a);if(Z!=null&&Z>=l.depth)return c&&c(I.tr.lift(a,Z).scrollIntoView()),!0;if(n&&n0(e,"start",!0)&&n0(G,"end")){let W=G,m=[];for(;m.push(W),!W.isTextblock;)W=W.lastChild;let s=e,h=1;for(;!s.isTextblock;s=s.firstChild)h++;if(W.canReplace(W.childCount,W.childCount,s.content)){if(c){let p=TI.empty;for(let o=m.length-1;o>=0;o--)p=TI.from(m[o].copy(p));let V=I.tr.step(new Ge(l.pos-m.length,l.pos+e.nodeSize,l.pos+h,l.pos+e.nodeSize-h,new ol(p,m.length,0),0,!0));c(V.scrollIntoView())}return!0}}return!1}function CP(I){return function(l,c){let G=l.selection,e=I<0?G.$from:G.$to,d=e.depth;for(;e.node(d).isInline;){if(!d)return!1;d--}return e.node(d).isTextblock?(c&&c(l.tr.setSelection(uc.create(l.doc,I<0?e.start(d):e.end(d)))),!0):!1}}const UKI=CP(-1),CKI=CP(1);function MKI(I,l=null){return function(c,G){let{$from:e,$to:d}=c.selection,t=e.blockRange(d),n=t&&DO(t,I,l);return n?(G&&G(c.tr.wrap(t,n).scrollIntoView()),!0):!1}}function TC(I,l=null){return function(c,G){let e=!1;for(let d=0;d{if(e)return!1;if(!(!b.isTextblock||b.hasMarkup(I,l)))if(b.type==I)e=!0;else{let Z=c.doc.resolve(a),W=Z.index();e=Z.parent.canReplaceWith(W,W+1,I)}})}if(!e)return!1;if(G){let d=c.tr;for(let t=0;t=2&&e.node(t.depth-1).type.compatibleContent(I)&&t.startIndex==0){if(e.index(t.depth-1)==0)return!1;let Z=c.doc.resolve(t.start-2);b=new Bi(Z,Z,t.depth),t.endIndex=0;Z--)d=TI.from(c[Z].type.create(c[Z].attrs,d));I.step(new Ge(l.start-(G?2:0),l.end,l.start,l.end,new ol(d,0,0),c.length,!0));let t=0;for(let Z=0;Zt.childCount>0&&t.firstChild.type==I);return d?c?G.node(d.depth-1).type==I?SKI(l,c,I,d):TKI(l,c,d):!0:!1}}function SKI(I,l,c,G){let e=I.tr,d=G.end,t=G.$to.end(G.depth);dp;h--)s-=e.child(h).nodeSize,G.delete(s-1,s+1);let d=G.doc.resolve(c.start),t=d.nodeAfter;if(G.mapping.map(c.end)!=c.start+d.nodeAfter.nodeSize)return!1;let n=c.startIndex==0,b=c.endIndex==e.childCount,a=d.node(-1),Z=d.index(-1);if(!a.canReplace(Z+(n?0:1),Z+1,t.content.append(b?TI.empty:TI.from(e))))return!1;let W=d.pos,m=W+t.nodeSize;return G.step(new Ge(W-(n?1:0),m+(b?1:0),W+1,m-1,new ol((n?TI.empty:TI.from(e.copy(TI.empty))).append(b?TI.empty:TI.from(e.copy(TI.empty))),n?0:1,b?0:1),n?0:1)),l(G.scrollIntoView()),!0}function jKI(I){return function(l,c){let{$from:G,$to:e}=l.selection,d=G.blockRange(e,a=>a.childCount>0&&a.firstChild.type==I);if(!d)return!1;let t=d.startIndex;if(t==0)return!1;let n=d.parent,b=n.child(t-1);if(b.type!=I)return!1;if(c){let a=b.lastChild&&b.lastChild.type==n.type,Z=TI.from(a?I.create():null),W=new ol(TI.from(I.create(null,TI.from(n.type.create(null,Z)))),a?3:1,0),m=d.start,s=d.end;c(l.tr.step(new Ge(m-(a?3:1),s,m,s,W,1,!0)).scrollIntoView())}return!0}}function jN(I){const{state:l,transaction:c}=I;let{selection:G}=c,{doc:e}=c,{storedMarks:d}=c;return{...l,apply:l.apply.bind(l),applyTransaction:l.applyTransaction.bind(l),plugins:l.plugins,schema:l.schema,reconfigure:l.reconfigure.bind(l),toJSON:l.toJSON.bind(l),get storedMarks(){return d},get selection(){return G},get doc(){return e},get tr(){return G=c.selection,e=c.doc,d=c.storedMarks,c}}}class DN{constructor(l){this.editor=l.editor,this.rawCommands=this.editor.extensionManager.commands,this.customState=l.state}get hasCustomState(){return!!this.customState}get state(){return this.customState||this.editor.state}get commands(){const{rawCommands:l,editor:c,state:G}=this,{view:e}=c,{tr:d}=G,t=this.buildProps(d);return Object.fromEntries(Object.entries(l).map(([n,b])=>[n,(...Z)=>{const W=b(...Z)(t);return!d.getMeta("preventDispatch")&&!this.hasCustomState&&e.dispatch(d),W}]))}get chain(){return()=>this.createChain()}get can(){return()=>this.createCan()}createChain(l,c=!0){const{rawCommands:G,editor:e,state:d}=this,{view:t}=e,n=[],b=!!l,a=l||d.tr,Z=()=>(!b&&c&&!a.getMeta("preventDispatch")&&!this.hasCustomState&&t.dispatch(a),n.every(m=>m===!0)),W={...Object.fromEntries(Object.entries(G).map(([m,s])=>[m,(...p)=>{const V=this.buildProps(a,c),o=s(...p)(V);return n.push(o),W}])),run:Z};return W}createCan(l){const{rawCommands:c,state:G}=this,e=!1,d=l||G.tr,t=this.buildProps(d,e);return{...Object.fromEntries(Object.entries(c).map(([b,a])=>[b,(...Z)=>a(...Z)({...t,dispatch:void 0})])),chain:()=>this.createChain(d,e)}}buildProps(l,c=!0){const{rawCommands:G,editor:e,state:d}=this,{view:t}=e,n={tr:l,editor:e,view:t,state:jN({state:d,transaction:l}),dispatch:c?()=>{}:void 0,chain:()=>this.createChain(l,c),can:()=>this.createCan(l),get commands(){return Object.fromEntries(Object.entries(G).map(([b,a])=>[b,(...Z)=>a(...Z)(n)]))}};return n}}class DKI{constructor(){this.callbacks={}}on(l,c){return this.callbacks[l]||(this.callbacks[l]=[]),this.callbacks[l].push(c),this}emit(l,...c){const G=this.callbacks[l];return G&&G.forEach(e=>e.apply(this,c)),this}off(l,c){const G=this.callbacks[l];return G&&(c?this.callbacks[l]=G.filter(e=>e!==c):delete this.callbacks[l]),this}removeAllListeners(){this.callbacks={}}}function Xl(I,l,c){return I.config[l]===void 0&&I.parent?Xl(I.parent,l,c):typeof I.config[l]=="function"?I.config[l].bind({...c,parent:I.parent?Xl(I.parent,l,c):null}):I.config[l]}function ON(I){const l=I.filter(e=>e.type==="extension"),c=I.filter(e=>e.type==="node"),G=I.filter(e=>e.type==="mark");return{baseExtensions:l,nodeExtensions:c,markExtensions:G}}function MP(I){const l=[],{nodeExtensions:c,markExtensions:G}=ON(I),e=[...c,...G],d={default:null,rendered:!0,renderHTML:null,parseHTML:null,keepOnSplit:!0,isRequired:!1};return I.forEach(t=>{const n={name:t.name,options:t.options,storage:t.storage},b=Xl(t,"addGlobalAttributes",n);if(!b)return;b().forEach(Z=>{Z.types.forEach(W=>{Object.entries(Z.attributes).forEach(([m,s])=>{l.push({type:W,name:m,attribute:{...d,...s}})})})})}),e.forEach(t=>{const n={name:t.name,options:t.options,storage:t.storage},b=Xl(t,"addAttributes",n);if(!b)return;const a=b();Object.entries(a).forEach(([Z,W])=>{const m={...d,...W};typeof(m==null?void 0:m.default)=="function"&&(m.default=m.default()),m!=null&&m.isRequired&&(m==null?void 0:m.default)===void 0&&delete m.default,l.push({type:t.name,name:Z,attribute:m})})}),l}function de(I,l){if(typeof I=="string"){if(!l.nodes[I])throw Error(`There is no node type named '${I}'. Maybe you forgot to add the extension?`);return l.nodes[I]}return I}function E0(...I){return I.filter(l=>!!l).reduce((l,c)=>{const G={...l};return Object.entries(c).forEach(([e,d])=>{if(!G[e]){G[e]=d;return}if(e==="class"){const n=d?d.split(" "):[],b=G[e]?G[e].split(" "):[],a=n.filter(Z=>!b.includes(Z));G[e]=[...b,...a].join(" ")}else e==="style"?G[e]=[G[e],d].join("; "):G[e]=d}),G},{})}function fE(I,l){return l.filter(c=>c.attribute.rendered).map(c=>c.attribute.renderHTML?c.attribute.renderHTML(I.attrs)||{}:{[c.name]:I.attrs[c.name]}).reduce((c,G)=>E0(c,G),{})}function fP(I){return typeof I=="function"}function ic(I,l=void 0,...c){return fP(I)?l?I.bind(l)(...c):I(...c):I}function OKI(I={}){return Object.keys(I).length===0&&I.constructor===Object}function PKI(I){return typeof I!="string"?I:I.match(/^[+-]?(?:\d*\.)?\d+$/)?Number(I):I==="true"?!0:I==="false"?!1:I}function jC(I,l){return I.style?I:{...I,getAttrs:c=>{const G=I.getAttrs?I.getAttrs(c):I.attrs;if(G===!1)return!1;const e=l.reduce((d,t)=>{const n=t.attribute.parseHTML?t.attribute.parseHTML(c):PKI(c.getAttribute(t.name));return n==null?d:{...d,[t.name]:n}},{});return{...G,...e}}}}function DC(I){return Object.fromEntries(Object.entries(I).filter(([l,c])=>l==="attrs"&&OKI(c)?!1:c!=null))}function _KI(I,l){var c;const G=MP(I),{nodeExtensions:e,markExtensions:d}=ON(I),t=(c=e.find(a=>Xl(a,"topNode")))===null||c===void 0?void 0:c.name,n=Object.fromEntries(e.map(a=>{const Z=G.filter(o=>o.type===a.name),W={name:a.name,options:a.options,storage:a.storage,editor:l},m=I.reduce((o,F)=>{const X=Xl(F,"extendNodeSchema",W);return{...o,...X?X(a):{}}},{}),s=DC({...m,content:ic(Xl(a,"content",W)),marks:ic(Xl(a,"marks",W)),group:ic(Xl(a,"group",W)),inline:ic(Xl(a,"inline",W)),atom:ic(Xl(a,"atom",W)),selectable:ic(Xl(a,"selectable",W)),draggable:ic(Xl(a,"draggable",W)),code:ic(Xl(a,"code",W)),defining:ic(Xl(a,"defining",W)),isolating:ic(Xl(a,"isolating",W)),attrs:Object.fromEntries(Z.map(o=>{var F;return[o.name,{default:(F=o==null?void 0:o.attribute)===null||F===void 0?void 0:F.default}]}))}),h=ic(Xl(a,"parseHTML",W));h&&(s.parseDOM=h.map(o=>jC(o,Z)));const p=Xl(a,"renderHTML",W);p&&(s.toDOM=o=>p({node:o,HTMLAttributes:fE(o,Z)}));const V=Xl(a,"renderText",W);return V&&(s.toText=V),[a.name,s]})),b=Object.fromEntries(d.map(a=>{const Z=G.filter(V=>V.type===a.name),W={name:a.name,options:a.options,storage:a.storage,editor:l},m=I.reduce((V,o)=>{const F=Xl(o,"extendMarkSchema",W);return{...V,...F?F(a):{}}},{}),s=DC({...m,inclusive:ic(Xl(a,"inclusive",W)),excludes:ic(Xl(a,"excludes",W)),group:ic(Xl(a,"group",W)),spanning:ic(Xl(a,"spanning",W)),code:ic(Xl(a,"code",W)),attrs:Object.fromEntries(Z.map(V=>{var o;return[V.name,{default:(o=V==null?void 0:V.attribute)===null||o===void 0?void 0:o.default}]}))}),h=ic(Xl(a,"parseHTML",W));h&&(s.parseDOM=h.map(V=>jC(V,Z)));const p=Xl(a,"renderHTML",W);return p&&(s.toDOM=V=>p({mark:V,HTMLAttributes:fE(V,Z)})),[a.name,s]}));return new lMI({topNode:t,nodes:n,marks:b})}function wH(I,l){return l.nodes[I]||l.marks[I]||null}function OC(I,l){return Array.isArray(l)?l.some(c=>(typeof c=="string"?c:c.name)===I.name):l}const qKI=(I,l=500)=>{let c="";const G=I.parentOffset;return I.parent.nodesBetween(Math.max(0,G-l),G,(e,d,t,n)=>{var b,a;const Z=((a=(b=e.type.spec).toText)===null||a===void 0?void 0:a.call(b,{node:e,pos:d,parent:t,index:n}))||e.textContent||"%leaf%";c+=Z.slice(0,Math.max(0,G-d))}),c};function xy(I){return Object.prototype.toString.call(I)==="[object RegExp]"}class $KI{constructor(l){this.find=l.find,this.handler=l.handler}}const ILI=(I,l)=>{if(xy(l))return l.exec(I);const c=l(I);if(!c)return null;const G=[c.text];return G.index=c.index,G.input=I,G.data=c.data,c.replaceWith&&(c.text.includes(c.replaceWith)||console.warn('[tiptap warn]: "inputRuleMatch.replaceWith" must be part of "inputRuleMatch.text".'),G.push(c.replaceWith)),G};function EH(I){var l;const{editor:c,from:G,to:e,text:d,rules:t,plugin:n}=I,{view:b}=c;if(b.composing)return!1;const a=b.state.doc.resolve(G);if(a.parent.type.spec.code||!((l=a.nodeBefore||a.nodeAfter)===null||l===void 0)&&l.marks.find(m=>m.type.spec.code))return!1;let Z=!1;const W=qKI(a)+d;return t.forEach(m=>{if(Z)return;const s=ILI(W,m.find);if(!s)return;const h=b.state.tr,p=jN({state:b.state,transaction:h}),V={from:G-(s[0].length-d.length),to:e},{commands:o,chain:F,can:X}=new DN({editor:c,state:p});m.handler({state:p,range:V,match:s,commands:o,chain:F,can:X})===null||!h.steps.length||(h.setMeta(n,{transform:h,from:G,to:e,text:d}),b.dispatch(h),Z=!0)}),Z}function lLI(I){const{editor:l,rules:c}=I,G=new Rn({state:{init(){return null},apply(e,d){const t=e.getMeta(G);return t||(e.selectionSet||e.docChanged?null:d)}},props:{handleTextInput(e,d,t,n){return EH({editor:l,from:d,to:t,text:n,rules:c,plugin:G})},handleDOMEvents:{compositionend:e=>(setTimeout(()=>{const{$cursor:d}=e.state.selection;d&&EH({editor:l,from:d.pos,to:d.pos,text:"",rules:c,plugin:G})}),!1)},handleKeyDown(e,d){if(d.key!=="Enter")return!1;const{$cursor:t}=e.state.selection;return t?EH({editor:l,from:t.pos,to:t.pos,text:` -`,rules:c,plugin:G}):!1}},isInputRules:!0});return G}function cLI(I){return typeof I=="number"}const GLI=(I,l,c)=>{if(xy(l))return[...I.matchAll(l)];const G=l(I,c);return G?G.map(e=>{const d=[e.text];return d.index=e.index,d.input=I,d.data=e.data,e.replaceWith&&(e.text.includes(e.replaceWith)||console.warn('[tiptap warn]: "pasteRuleMatch.replaceWith" must be part of "pasteRuleMatch.text".'),d.push(e.replaceWith)),d}):[]};function eLI(I){const{editor:l,state:c,from:G,to:e,rule:d,pasteEvent:t,dropEvent:n}=I,{commands:b,chain:a,can:Z}=new DN({editor:l,state:c}),W=[];return c.doc.nodesBetween(G,e,(s,h)=>{if(!s.isTextblock||s.type.spec.code)return;const p=Math.max(G,h),V=Math.min(e,h+s.content.size),o=s.textBetween(p-h,V-h,void 0,"");GLI(o,d.find,t).forEach(X=>{if(X.index===void 0)return;const H=p+X.index+1,Y=H+X[0].length,R={from:c.tr.mapping.map(H),to:c.tr.mapping.map(Y)},B=d.handler({state:c,range:R,match:X,commands:b,chain:a,can:Z,pasteEvent:t,dropEvent:n});W.push(B)})}),W.every(s=>s!==null)}function dLI(I){const{editor:l,rules:c}=I;let G=null,e=!1,d=!1,t=typeof ClipboardEvent<"u"?new ClipboardEvent("paste"):null,n=typeof DragEvent<"u"?new DragEvent("drop"):null;return c.map(a=>new Rn({view(Z){const W=m=>{var s;G=!((s=Z.dom.parentElement)===null||s===void 0)&&s.contains(m.target)?Z.dom.parentElement:null};return window.addEventListener("dragstart",W),{destroy(){window.removeEventListener("dragstart",W)}}},props:{handleDOMEvents:{drop:(Z,W)=>(d=G===Z.dom.parentElement,n=W,!1),paste:(Z,W)=>{var m;const s=(m=W.clipboardData)===null||m===void 0?void 0:m.getData("text/html");return t=W,e=!!(s!=null&&s.includes("data-pm-slice")),!1}}},appendTransaction:(Z,W,m)=>{const s=Z[0],h=s.getMeta("uiEvent")==="paste"&&!e,p=s.getMeta("uiEvent")==="drop"&&!d;if(!h&&!p)return;const V=W.doc.content.findDiffStart(m.doc.content),o=W.doc.content.findDiffEnd(m.doc.content);if(!cLI(V)||!o||V===o.b)return;const F=m.tr,X=jN({state:m,transaction:F});if(!(!eLI({editor:l,state:X,from:Math.max(V-1,0),to:o.b-1,rule:a,pasteEvent:t,dropEvent:n})||!F.steps.length))return n=typeof DragEvent<"u"?new DragEvent("drop"):null,t=typeof ClipboardEvent<"u"?new ClipboardEvent("paste"):null,F}}))}function tLI(I){const l=I.filter((c,G)=>I.indexOf(c)!==G);return[...new Set(l)]}class pm{constructor(l,c){this.splittableMarks=[],this.editor=c,this.extensions=pm.resolve(l),this.schema=_KI(this.extensions,c),this.extensions.forEach(G=>{var e;this.editor.extensionStorage[G.name]=G.storage;const d={name:G.name,options:G.options,storage:G.storage,editor:this.editor,type:wH(G.name,this.schema)};G.type==="mark"&&(!((e=ic(Xl(G,"keepOnSplit",d)))!==null&&e!==void 0)||e)&&this.splittableMarks.push(G.name);const t=Xl(G,"onBeforeCreate",d);t&&this.editor.on("beforeCreate",t);const n=Xl(G,"onCreate",d);n&&this.editor.on("create",n);const b=Xl(G,"onUpdate",d);b&&this.editor.on("update",b);const a=Xl(G,"onSelectionUpdate",d);a&&this.editor.on("selectionUpdate",a);const Z=Xl(G,"onTransaction",d);Z&&this.editor.on("transaction",Z);const W=Xl(G,"onFocus",d);W&&this.editor.on("focus",W);const m=Xl(G,"onBlur",d);m&&this.editor.on("blur",m);const s=Xl(G,"onDestroy",d);s&&this.editor.on("destroy",s)})}static resolve(l){const c=pm.sort(pm.flatten(l)),G=tLI(c.map(e=>e.name));return G.length&&console.warn(`[tiptap warn]: Duplicate extension names found: [${G.map(e=>`'${e}'`).join(", ")}]. This can lead to issues.`),c}static flatten(l){return l.map(c=>{const G={name:c.name,options:c.options,storage:c.storage},e=Xl(c,"addExtensions",G);return e?[c,...this.flatten(e())]:c}).flat(10)}static sort(l){return l.sort((G,e)=>{const d=Xl(G,"priority")||100,t=Xl(e,"priority")||100;return d>t?-1:d{const G={name:c.name,options:c.options,storage:c.storage,editor:this.editor,type:wH(c.name,this.schema)},e=Xl(c,"addCommands",G);return e?{...l,...e()}:l},{})}get plugins(){const{editor:l}=this,c=pm.sort([...this.extensions].reverse()),G=[],e=[],d=c.map(t=>{const n={name:t.name,options:t.options,storage:t.storage,editor:l,type:wH(t.name,this.schema)},b=[],a=Xl(t,"addKeyboardShortcuts",n);let Z={};if(t.type==="mark"&&t.config.exitable&&(Z.ArrowRight=()=>Ti.handleExit({editor:l,mark:t})),a){const p=Object.fromEntries(Object.entries(a()).map(([V,o])=>[V,()=>o({editor:l})]));Z={...Z,...p}}const W=FKI(Z);b.push(W);const m=Xl(t,"addInputRules",n);OC(t,l.options.enableInputRules)&&m&&G.push(...m());const s=Xl(t,"addPasteRules",n);OC(t,l.options.enablePasteRules)&&s&&e.push(...s());const h=Xl(t,"addProseMirrorPlugins",n);if(h){const p=h();b.push(...p)}return b}).flat();return[lLI({editor:l,rules:G}),...dLI({editor:l,rules:e}),...d]}get attributes(){return MP(this.extensions)}get nodeViews(){const{editor:l}=this,{nodeExtensions:c}=ON(this.extensions);return Object.fromEntries(c.filter(G=>!!Xl(G,"addNodeView")).map(G=>{const e=this.attributes.filter(b=>b.type===G.name),d={name:G.name,options:G.options,storage:G.storage,editor:l,type:de(G.name,this.schema)},t=Xl(G,"addNodeView",d);if(!t)return[];const n=(b,a,Z,W)=>{const m=fE(b,e);return t()({editor:l,node:b,getPos:Z,decorations:W,HTMLAttributes:m,extension:G})};return[G.name,n]}))}}function nLI(I){return Object.prototype.toString.call(I).slice(8,-1)}function vH(I){return nLI(I)!=="Object"?!1:I.constructor===Object&&Object.getPrototypeOf(I)===Object.prototype}function PN(I,l){const c={...I};return vH(I)&&vH(l)&&Object.keys(l).forEach(G=>{vH(l[G])?G in I?c[G]=PN(I[G],l[G]):Object.assign(c,{[G]:l[G]}):Object.assign(c,{[G]:l[G]})}),c}class on{constructor(l={}){this.type="extension",this.name="extension",this.parent=null,this.child=null,this.config={name:this.name,defaultOptions:{}},this.config={...this.config,...l},this.name=this.config.name,l.defaultOptions&&Object.keys(l.defaultOptions).length>0&&console.warn(`[tiptap warn]: BREAKING CHANGE: "defaultOptions" is deprecated. Please use "addOptions" instead. Found in extension: "${this.name}".`),this.options=this.config.defaultOptions,this.config.addOptions&&(this.options=ic(Xl(this,"addOptions",{name:this.name}))),this.storage=ic(Xl(this,"addStorage",{name:this.name,options:this.options}))||{}}static create(l={}){return new on(l)}configure(l={}){const c=this.extend();return c.options=PN(this.options,l),c.storage=ic(Xl(c,"addStorage",{name:c.name,options:c.options})),c}extend(l={}){const c=new on({...this.config,...l});return c.parent=this,this.child=c,c.name=l.name?l.name:c.parent.name,l.defaultOptions&&console.warn(`[tiptap warn]: BREAKING CHANGE: "defaultOptions" is deprecated. Please use "addOptions" instead. Found in extension: "${c.name}".`),c.options=ic(Xl(c,"addOptions",{name:c.name})),c.storage=ic(Xl(c,"addStorage",{name:c.name,options:c.options})),c}}function KP(I,l,c){const{from:G,to:e}=l,{blockSeparator:d=` - -`,textSerializers:t={}}=c||{};let n="",b=!0;return I.nodesBetween(G,e,(a,Z,W,m)=>{var s;const h=t==null?void 0:t[a.type.name];h?(a.isBlock&&!b&&(n+=d,b=!0),W&&(n+=h({node:a,pos:Z,parent:W,index:m,range:l}))):a.isText?(n+=(s=a==null?void 0:a.text)===null||s===void 0?void 0:s.slice(Math.max(G,Z)-Z,e-Z),b=!1):a.isBlock&&!b&&(n+=d,b=!0)}),n}function LP(I){return Object.fromEntries(Object.entries(I.nodes).filter(([,l])=>l.spec.toText).map(([l,c])=>[l,c.spec.toText]))}const bLI=on.create({name:"clipboardTextSerializer",addProseMirrorPlugins(){return[new Rn({key:new Yn("clipboardTextSerializer"),props:{clipboardTextSerializer:()=>{const{editor:I}=this,{state:l,schema:c}=I,{doc:G,selection:e}=l,{ranges:d}=e,t=Math.min(...d.map(Z=>Z.$from.pos)),n=Math.max(...d.map(Z=>Z.$to.pos)),b=LP(c);return KP(G,{from:t,to:n},{textSerializers:b})}}})]}}),aLI=()=>({editor:I,view:l})=>(requestAnimationFrame(()=>{var c;I.isDestroyed||(l.dom.blur(),(c=window==null?void 0:window.getSelection())===null||c===void 0||c.removeAllRanges())}),!0),ZLI=(I=!1)=>({commands:l})=>l.setContent("",I),WLI=()=>({state:I,tr:l,dispatch:c})=>{const{selection:G}=l,{ranges:e}=G;return c&&e.forEach(({$from:d,$to:t})=>{I.doc.nodesBetween(d.pos,t.pos,(n,b)=>{if(n.type.isText)return;const{doc:a,mapping:Z}=l,W=a.resolve(Z.map(b)),m=a.resolve(Z.map(b+n.nodeSize)),s=W.blockRange(m);if(!s)return;const h=w0(s);if(n.type.isTextblock){const{defaultType:p}=W.parent.contentMatchAt(W.index());l.setNodeMarkup(s.start,p)}(h||h===0)&&l.lift(s,h)})}),!0},rLI=I=>l=>I(l),mLI=()=>({state:I,dispatch:l})=>BKI(I,l),sLI=(I,l)=>({editor:c,tr:G})=>{const{state:e}=c,d=e.doc.slice(I.from,I.to);G.deleteRange(I.from,I.to);const t=G.mapping.map(l);return G.insert(t,d.content),G.setSelection(new uc(G.doc.resolve(t-1))),!0},uLI=()=>({tr:I,dispatch:l})=>{const{selection:c}=I,G=c.$anchor.node();if(G.content.size>0)return!1;const e=I.selection.$anchor;for(let d=e.depth;d>0;d-=1)if(e.node(d).type===G.type){if(l){const n=e.before(d),b=e.after(d);I.delete(n,b).scrollIntoView()}return!0}return!1},hLI=I=>({tr:l,state:c,dispatch:G})=>{const e=de(I,c.schema),d=l.selection.$anchor;for(let t=d.depth;t>0;t-=1)if(d.node(t).type===e){if(G){const b=d.before(t),a=d.after(t);l.delete(b,a).scrollIntoView()}return!0}return!1},pLI=I=>({tr:l,dispatch:c})=>{const{from:G,to:e}=I;return c&&l.delete(G,e),!0},oLI=()=>({state:I,dispatch:l})=>RKI(I,l),VLI=()=>({commands:I})=>I.keyboardShortcut("Enter"),iLI=()=>({state:I,dispatch:l})=>JKI(I,l);function Li(I,l,c={strict:!0}){const G=Object.keys(l);return G.length?G.every(e=>c.strict?l[e]===I[e]:xy(l[e])?l[e].test(I[e]):l[e]===I[e]):!0}function KE(I,l,c={}){return I.find(G=>G.type===l&&Li(G.attrs,c))}function FLI(I,l,c={}){return!!KE(I,l,c)}function SP(I,l,c={}){if(!I||!l)return;let G=I.parent.childAfter(I.parentOffset);if(I.parentOffset===G.offset&&G.offset!==0&&(G=I.parent.childBefore(I.parentOffset)),!G.node)return;const e=KE([...G.node.marks],l,c);if(!e)return;let d=G.index,t=I.start()+G.offset,n=d+1,b=t+G.node.nodeSize;for(KE([...G.node.marks],l,c);d>0&&e.isInSet(I.parent.child(d-1).marks);)d-=1,t-=I.parent.child(d).nodeSize;for(;n({tr:c,state:G,dispatch:e})=>{const d=AZ(I,G.schema),{doc:t,selection:n}=c,{$from:b,from:a,to:Z}=n;if(e){const W=SP(b,d,l);if(W&&W.from<=a&&W.to>=Z){const m=uc.create(t,W.from,W.to);c.setSelection(m)}}return!0},RLI=I=>l=>{const c=typeof I=="function"?I(l):I;for(let G=0;G({editor:c,view:G,tr:e,dispatch:d})=>{l={scrollIntoView:!0,...l};const t=()=>{_N()&&G.dom.focus(),requestAnimationFrame(()=>{c.isDestroyed||(G.focus(),l!=null&&l.scrollIntoView&&c.commands.scrollIntoView())})};if(G.hasFocus()&&I===null||I===!1)return!0;if(d&&I===null&&!TP(c.state.selection))return t(),!0;const n=jP(e.doc,I)||c.state.selection,b=c.state.selection.eq(n);return d&&(b||e.setSelection(n),b&&e.storedMarks&&e.setStoredMarks(e.storedMarks),t()),!0},XLI=(I,l)=>c=>I.every((G,e)=>l(G,{...c,index:e})),HLI=(I,l)=>({tr:c,commands:G})=>G.insertContentAt({from:c.selection.from,to:c.selection.to},I,l),DP=I=>{const l=I.childNodes;for(let c=l.length-1;c>=0;c-=1){const G=l[c];G.nodeType===3&&G.nodeValue&&/^(\n\s\s|\n)$/.test(G.nodeValue)?I.removeChild(G):G.nodeType===1&&DP(G)}return I};function PC(I){const l=`${I}`,c=new window.DOMParser().parseFromString(l,"text/html").body;return DP(c)}function Si(I,l,c){if(c={slice:!0,parseOptions:{},...c},typeof I=="object"&&I!==null)try{return Array.isArray(I)&&I.length>0?TI.fromArray(I.map(G=>l.nodeFromJSON(G))):l.nodeFromJSON(I)}catch(G){return console.warn("[tiptap warn]: Invalid content.","Passed value:",I,"Error:",G),Si("",l,c)}if(typeof I=="string"){const G=Yy.fromSchema(l);return c.slice?G.parseSlice(PC(I),c.parseOptions).content:G.parse(PC(I),c.parseOptions)}return Si("",l,c)}function QLI(I,l,c){const G=I.steps.length-1;if(G{t===0&&(t=Z)}),I.setSelection(pc.near(I.doc.resolve(t),c))}const wLI=I=>I.toString().startsWith("<"),ELI=(I,l,c)=>({tr:G,dispatch:e,editor:d})=>{if(e){c={parseOptions:{},updateSelection:!0,...c};const t=Si(l,d.schema,{parseOptions:{preserveWhitespace:"full",...c.parseOptions}});if(t.toString()==="<>")return!0;let{from:n,to:b}=typeof I=="number"?{from:I,to:I}:{from:I.from,to:I.to},a=!0,Z=!0;if((wLI(t)?t:[t]).forEach(m=>{m.check(),a=a?m.isText&&m.marks.length===0:!1,Z=Z?m.isBlock:!1}),n===b&&Z){const{parent:m}=G.doc.resolve(n);m.isTextblock&&!m.type.spec.code&&!m.childCount&&(n-=1,b+=1)}a?Array.isArray(l)?G.insertText(l.map(m=>m.text||"").join(""),n,b):typeof l=="object"&&l&&l.text?G.insertText(l.text,n,b):G.insertText(l,n,b):G.replaceWith(n,b,t),c.updateSelection&&QLI(G,G.steps.length-1,-1)}return!0},vLI=()=>({state:I,dispatch:l})=>vKI(I,l),gLI=()=>({state:I,dispatch:l})=>gKI(I,l),ALI=()=>({state:I,dispatch:l})=>YKI(I,l),yLI=()=>({state:I,dispatch:l})=>wKI(I,l),JLI=()=>({tr:I,state:l,dispatch:c})=>{try{const G=MN(l.doc,l.selection.$from.pos,-1);return G==null?!1:(I.join(G,2),c&&c(I),!0)}catch{return!1}},BLI=()=>({state:I,dispatch:l,tr:c})=>{try{const G=MN(I.doc,I.selection.$from.pos,1);return G==null?!1:(c.join(G,2),l&&l(c),!0)}catch{return!1}},kLI=()=>({state:I,dispatch:l})=>XKI(I,l),xLI=()=>({state:I,dispatch:l})=>HKI(I,l);function OP(){return typeof navigator<"u"?/Mac/.test(navigator.platform):!1}function zLI(I){const l=I.split(/-(?!$)/);let c=l[l.length-1];c==="Space"&&(c=" ");let G,e,d,t;for(let n=0;n({editor:l,view:c,tr:G,dispatch:e})=>{const d=zLI(I).split(/-(?!$)/),t=d.find(a=>!["Alt","Ctrl","Meta","Shift"].includes(a)),n=new KeyboardEvent("keydown",{key:t==="Space"?" ":t,altKey:d.includes("Alt"),ctrlKey:d.includes("Ctrl"),metaKey:d.includes("Meta"),shiftKey:d.includes("Shift"),bubbles:!0,cancelable:!0}),b=l.captureTransaction(()=>{c.someProp("handleKeyDown",a=>a(c,n))});return b==null||b.steps.forEach(a=>{const Z=a.map(G.mapping);Z&&e&&G.maybeStep(Z)}),!0};function ph(I,l,c={}){const{from:G,to:e,empty:d}=I.selection,t=l?de(l,I.schema):null,n=[];I.doc.nodesBetween(G,e,(W,m)=>{if(W.isText)return;const s=Math.max(G,m),h=Math.min(e,m+W.nodeSize);n.push({node:W,from:s,to:h})});const b=e-G,a=n.filter(W=>t?t.name===W.node.type.name:!0).filter(W=>Li(W.node.attrs,c,{strict:!1}));return d?!!a.length:a.reduce((W,m)=>W+m.to-m.from,0)>=b}const CLI=(I,l={})=>({state:c,dispatch:G})=>{const e=de(I,c.schema);return ph(c,e,l)?AKI(c,G):!1},MLI=()=>({state:I,dispatch:l})=>kKI(I,l),fLI=I=>({state:l,dispatch:c})=>{const G=de(I,l.schema);return LKI(G)(l,c)},KLI=()=>({state:I,dispatch:l})=>yKI(I,l);function qN(I,l){return l.nodes[I]?"node":l.marks[I]?"mark":null}function _C(I,l){const c=typeof l=="string"?[l]:l;return Object.keys(I).reduce((G,e)=>(c.includes(e)||(G[e]=I[e]),G),{})}const LLI=(I,l)=>({tr:c,state:G,dispatch:e})=>{let d=null,t=null;const n=qN(typeof I=="string"?I:I.name,G.schema);return n?(n==="node"&&(d=de(I,G.schema)),n==="mark"&&(t=AZ(I,G.schema)),e&&c.selection.ranges.forEach(b=>{G.doc.nodesBetween(b.$from.pos,b.$to.pos,(a,Z)=>{d&&d===a.type&&c.setNodeMarkup(Z,void 0,_C(a.attrs,l)),t&&a.marks.length&&a.marks.forEach(W=>{t===W.type&&c.addMark(Z,Z+a.nodeSize,t.create(_C(W.attrs,l)))})})}),!0):!1},SLI=()=>({tr:I,dispatch:l})=>(l&&I.scrollIntoView(),!0),TLI=()=>({tr:I,commands:l})=>l.setTextSelection({from:0,to:I.doc.content.size}),jLI=()=>({state:I,dispatch:l})=>QKI(I,l),DLI=()=>({state:I,dispatch:l})=>EKI(I,l),OLI=()=>({state:I,dispatch:l})=>xKI(I,l),PLI=()=>({state:I,dispatch:l})=>CKI(I,l),_LI=()=>({state:I,dispatch:l})=>UKI(I,l);function PP(I,l,c={}){return Si(I,l,{slice:!1,parseOptions:c})}const qLI=(I,l=!1,c={})=>({tr:G,editor:e,dispatch:d})=>{const{doc:t}=G,n=PP(I,e.schema,c);return d&&G.replaceWith(0,t.content.size,n).setMeta("preventUpdate",!l),!0};function _P(I,l){const c=AZ(l,I.schema),{from:G,to:e,empty:d}=I.selection,t=[];d?(I.storedMarks&&t.push(...I.storedMarks),t.push(...I.selection.$head.marks())):I.doc.nodesBetween(G,e,b=>{t.push(...b.marks)});const n=t.find(b=>b.type.name===c.name);return n?{...n.attrs}:{}}function $LI(I){for(let l=0;l0;c-=1){const G=I.node(c);if(l(G))return{pos:c>0?I.before(c):0,start:I.start(c),depth:c,node:G}}}function zy(I){return l=>ISI(l.$from,I)}function lSI(I,l){const c=jn.fromSchema(l).serializeFragment(I),e=document.implementation.createHTMLDocument().createElement("div");return e.appendChild(c),e.innerHTML}function cSI(I,l){const c={from:0,to:I.content.size};return KP(I,c,l)}function GSI(I,l){const c=de(l,I.schema),{from:G,to:e}=I.selection,d=[];I.doc.nodesBetween(G,e,n=>{d.push(n)});const t=d.reverse().find(n=>n.type.name===c.name);return t?{...t.attrs}:{}}function eSI(I,l){const c=qN(typeof l=="string"?l:l.name,I.schema);return c==="node"?GSI(I,l):c==="mark"?_P(I,l):{}}function lV(I,l,c){return Object.fromEntries(Object.entries(c).filter(([G])=>{const e=I.find(d=>d.type===l&&d.name===G);return e?e.attribute.keepOnSplit:!1}))}function LE(I,l,c={}){const{empty:G,ranges:e}=I.selection,d=l?AZ(l,I.schema):null;if(G)return!!(I.storedMarks||I.selection.$from.marks()).filter(W=>d?d.name===W.type.name:!0).find(W=>Li(W.attrs,c,{strict:!1}));let t=0;const n=[];if(e.forEach(({$from:W,$to:m})=>{const s=W.pos,h=m.pos;I.doc.nodesBetween(s,h,(p,V)=>{if(!p.isText&&!p.marks.length)return;const o=Math.max(s,V),F=Math.min(h,V+p.nodeSize),X=F-o;t+=X,n.push(...p.marks.map(H=>({mark:H,from:o,to:F})))})}),t===0)return!1;const b=n.filter(W=>d?d.name===W.mark.type.name:!0).filter(W=>Li(W.mark.attrs,c,{strict:!1})).reduce((W,m)=>W+m.to-m.from,0),a=n.filter(W=>d?W.mark.type!==d&&W.mark.type.excludes(d):!0).reduce((W,m)=>W+m.to-m.from,0);return(b>0?b+a:b)>=t}function dSI(I,l,c={}){if(!l)return ph(I,null,c)||LE(I,null,c);const G=qN(l,I.schema);return G==="node"?ph(I,l,c):G==="mark"?LE(I,l,c):!1}function qC(I,l){const{nodeExtensions:c}=ON(l),G=c.find(t=>t.name===I);if(!G)return!1;const e={name:G.name,options:G.options,storage:G.storage},d=ic(Xl(G,"group",e));return typeof d!="string"?!1:d.split(" ").includes("list")}function tSI(I){var l;const c=(l=I.type.createAndFill())===null||l===void 0?void 0:l.toJSON(),G=I.toJSON();return JSON.stringify(c)===JSON.stringify(G)}function nSI(I,l,c){var G;const{selection:e}=l;let d=null;if(TP(e)&&(d=e.$cursor),d){const n=(G=I.storedMarks)!==null&&G!==void 0?G:d.marks();return!!c.isInSet(n)||!n.some(b=>b.type.excludes(c))}const{ranges:t}=e;return t.some(({$from:n,$to:b})=>{let a=n.depth===0?I.doc.inlineContent&&I.doc.type.allowsMarkType(c):!1;return I.doc.nodesBetween(n.pos,b.pos,(Z,W,m)=>{if(a)return!1;if(Z.isInline){const s=!m||m.type.allowsMarkType(c),h=!!c.isInSet(Z.marks)||!Z.marks.some(p=>p.type.excludes(c));a=s&&h}return!a}),a})}const bSI=(I,l={})=>({tr:c,state:G,dispatch:e})=>{const{selection:d}=c,{empty:t,ranges:n}=d,b=AZ(I,G.schema);if(e)if(t){const a=_P(G,b);c.addStoredMark(b.create({...a,...l}))}else n.forEach(a=>{const Z=a.$from.pos,W=a.$to.pos;G.doc.nodesBetween(Z,W,(m,s)=>{const h=Math.max(s,Z),p=Math.min(s+m.nodeSize,W);m.marks.find(o=>o.type===b)?m.marks.forEach(o=>{b===o.type&&c.addMark(h,p,b.create({...o.attrs,...l}))}):c.addMark(h,p,b.create(l))})});return nSI(G,c,b)},aSI=(I,l)=>({tr:c})=>(c.setMeta(I,l),!0),ZSI=(I,l={})=>({state:c,dispatch:G,chain:e})=>{const d=de(I,c.schema);return d.isTextblock?e().command(({commands:t})=>TC(d,l)(c)?!0:t.clearNodes()).command(({state:t})=>TC(d,l)(t,G)).run():(console.warn('[tiptap warn]: Currently "setNode()" only supports text block nodes.'),!1)},WSI=I=>({tr:l,dispatch:c})=>{if(c){const{doc:G}=l,e=oW(I,0,G.content.size),d=Kl.create(G,e);l.setSelection(d)}return!0},rSI=I=>({tr:l,dispatch:c})=>{if(c){const{doc:G}=l,{from:e,to:d}=typeof I=="number"?{from:I,to:I}:I,t=uc.atStart(G).from,n=uc.atEnd(G).to,b=oW(e,t,n),a=oW(d,t,n),Z=uc.create(G,b,a);l.setSelection(Z)}return!0},mSI=I=>({state:l,dispatch:c})=>{const G=de(I,l.schema);return jKI(G)(l,c)};function $C(I,l){const c=I.storedMarks||I.selection.$to.parentOffset&&I.selection.$from.marks();if(c){const G=c.filter(e=>l==null?void 0:l.includes(e.type.name));I.tr.ensureMarks(G)}}const sSI=({keepMarks:I=!0}={})=>({tr:l,state:c,dispatch:G,editor:e})=>{const{selection:d,doc:t}=l,{$from:n,$to:b}=d,a=e.extensionManager.attributes,Z=lV(a,n.node().type.name,n.node().attrs);if(d instanceof Kl&&d.node.isBlock)return!n.parentOffset||!Jm(t,n.pos)?!1:(G&&(I&&$C(c,e.extensionManager.splittableMarks),l.split(n.pos).scrollIntoView()),!0);if(!n.parent.isBlock)return!1;if(G){const W=b.parentOffset===b.parent.content.size;d instanceof uc&&l.deleteSelection();const m=n.depth===0?void 0:$LI(n.node(-1).contentMatchAt(n.indexAfter(-1)));let s=W&&m?[{type:m,attrs:Z}]:void 0,h=Jm(l.doc,l.mapping.map(n.pos),1,s);if(!s&&!h&&Jm(l.doc,l.mapping.map(n.pos),1,m?[{type:m}]:void 0)&&(h=!0,s=m?[{type:m,attrs:Z}]:void 0),h&&(l.split(l.mapping.map(n.pos),1,s),m&&!W&&!n.parentOffset&&n.parent.type!==m)){const p=l.mapping.map(n.before()),V=l.doc.resolve(p);n.node(-1).canReplaceWith(V.index(),V.index()+1,m)&&l.setNodeMarkup(l.mapping.map(n.before()),m)}I&&$C(c,e.extensionManager.splittableMarks),l.scrollIntoView()}return!0},uSI=I=>({tr:l,state:c,dispatch:G,editor:e})=>{var d;const t=de(I,c.schema),{$from:n,$to:b}=c.selection,a=c.selection.node;if(a&&a.isBlock||n.depth<2||!n.sameParent(b))return!1;const Z=n.node(-1);if(Z.type!==t)return!1;const W=e.extensionManager.attributes;if(n.parent.content.size===0&&n.node(-1).childCount===n.indexAfter(-1)){if(n.depth===2||n.node(-3).type!==t||n.index(-2)!==n.node(-2).childCount-1)return!1;if(G){let V=TI.empty;const o=n.index(-1)?1:n.index(-2)?2:3;for(let B=n.depth-o;B>=n.depth-3;B-=1)V=TI.from(n.node(B).copy(V));const F=n.indexAfter(-1){if(R>-1)return!1;B.isTextblock&&B.content.size===0&&(R=C+1)}),R>-1&&l.setSelection(uc.near(l.doc.resolve(R))),l.scrollIntoView()}return!0}const m=b.pos===n.end()?Z.contentMatchAt(0).defaultType:null,s=lV(W,Z.type.name,Z.attrs),h=lV(W,n.node().type.name,n.node().attrs);l.delete(n.pos,b.pos);const p=m?[{type:t,attrs:s},{type:m,attrs:h}]:[{type:t,attrs:s}];if(!Jm(l.doc,n.pos,2))return!1;if(G){const{selection:V,storedMarks:o}=c,{splittableMarks:F}=e.extensionManager,X=o||V.$to.parentOffset&&V.$from.marks();if(l.split(n.pos,2,p).scrollIntoView(),!X||!G)return!0;const H=X.filter(Y=>F.includes(Y.type.name));l.ensureMarks(H)}return!0},gH=(I,l)=>{const c=zy(t=>t.type===l)(I.selection);if(!c)return!0;const G=I.doc.resolve(Math.max(0,c.pos-1)).before(c.depth);if(G===void 0)return!0;const e=I.doc.nodeAt(G);return c.node.type===(e==null?void 0:e.type)&&nr(I.doc,c.pos)&&I.join(c.pos),!0},AH=(I,l)=>{const c=zy(t=>t.type===l)(I.selection);if(!c)return!0;const G=I.doc.resolve(c.start).after(c.depth);if(G===void 0)return!0;const e=I.doc.nodeAt(G);return c.node.type===(e==null?void 0:e.type)&&nr(I.doc,G)&&I.join(G),!0},hSI=(I,l,c,G={})=>({editor:e,tr:d,state:t,dispatch:n,chain:b,commands:a,can:Z})=>{const{extensions:W,splittableMarks:m}=e.extensionManager,s=de(I,t.schema),h=de(l,t.schema),{selection:p,storedMarks:V}=t,{$from:o,$to:F}=p,X=o.blockRange(F),H=V||p.$to.parentOffset&&p.$from.marks();if(!X)return!1;const Y=zy(R=>qC(R.type.name,W))(p);if(X.depth>=1&&Y&&X.depth-Y.depth<=1){if(Y.node.type===s)return a.liftListItem(h);if(qC(Y.node.type.name,W)&&s.validContent(Y.node.content)&&n)return b().command(()=>(d.setNodeMarkup(Y.pos,s),!0)).command(()=>gH(d,s)).command(()=>AH(d,s)).run()}return!c||!H||!n?b().command(()=>Z().wrapInList(s,G)?!0:a.clearNodes()).wrapInList(s,G).command(()=>gH(d,s)).command(()=>AH(d,s)).run():b().command(()=>{const R=Z().wrapInList(s,G),B=H.filter(C=>m.includes(C.type.name));return d.ensureMarks(B),R?!0:a.clearNodes()}).wrapInList(s,G).command(()=>gH(d,s)).command(()=>AH(d,s)).run()},pSI=(I,l={},c={})=>({state:G,commands:e})=>{const{extendEmptyMarkRange:d=!1}=c,t=AZ(I,G.schema);return LE(G,t,l)?e.unsetMark(t,{extendEmptyMarkRange:d}):e.setMark(t,l)},oSI=(I,l,c={})=>({state:G,commands:e})=>{const d=de(I,G.schema),t=de(l,G.schema);return ph(G,d,c)?e.setNode(t):e.setNode(d,c)},VSI=(I,l={})=>({state:c,commands:G})=>{const e=de(I,c.schema);return ph(c,e,l)?G.lift(e):G.wrapIn(e,l)},iSI=()=>({state:I,dispatch:l})=>{const c=I.plugins;for(let G=0;G=0;b-=1)t.step(n.steps[b].invert(n.docs[b]));if(d.text){const b=t.doc.resolve(d.from).marks();t.replaceWith(d.from,d.to,I.schema.text(d.text,b))}else t.delete(d.from,d.to)}return!0}}return!1},FSI=()=>({tr:I,dispatch:l})=>{const{selection:c}=I,{empty:G,ranges:e}=c;return G||l&&e.forEach(d=>{I.removeMark(d.$from.pos,d.$to.pos)}),!0},NSI=(I,l={})=>({tr:c,state:G,dispatch:e})=>{var d;const{extendEmptyMarkRange:t=!1}=l,{selection:n}=c,b=AZ(I,G.schema),{$from:a,empty:Z,ranges:W}=n;if(!e)return!0;if(Z&&t){let{from:m,to:s}=n;const h=(d=a.marks().find(V=>V.type===b))===null||d===void 0?void 0:d.attrs,p=SP(a,b,h);p&&(m=p.from,s=p.to),c.removeMark(m,s,b)}else W.forEach(m=>{c.removeMark(m.$from.pos,m.$to.pos,b)});return c.removeStoredMark(b),!0},RSI=(I,l={})=>({tr:c,state:G,dispatch:e})=>{let d=null,t=null;const n=qN(typeof I=="string"?I:I.name,G.schema);return n?(n==="node"&&(d=de(I,G.schema)),n==="mark"&&(t=AZ(I,G.schema)),e&&c.selection.ranges.forEach(b=>{const a=b.$from.pos,Z=b.$to.pos;G.doc.nodesBetween(a,Z,(W,m)=>{d&&d===W.type&&c.setNodeMarkup(m,void 0,{...W.attrs,...l}),t&&W.marks.length&&W.marks.forEach(s=>{if(t===s.type){const h=Math.max(m,a),p=Math.min(m+W.nodeSize,Z);c.addMark(h,p,t.create({...s.attrs,...l}))}})})}),!0):!1},YSI=(I,l={})=>({state:c,dispatch:G})=>{const e=de(I,c.schema);return MKI(e,l)(c,G)},XSI=(I,l={})=>({state:c,dispatch:G})=>{const e=de(I,c.schema);return fKI(e,l)(c,G)};var HSI=Object.freeze({__proto__:null,blur:aLI,clearContent:ZLI,clearNodes:WLI,command:rLI,createParagraphNear:mLI,cut:sLI,deleteCurrentNode:uLI,deleteNode:hLI,deleteRange:pLI,deleteSelection:oLI,enter:VLI,exitCode:iLI,extendMarkRange:NLI,first:RLI,focus:YLI,forEach:XLI,insertContent:HLI,insertContentAt:ELI,joinUp:vLI,joinDown:gLI,joinBackward:ALI,joinForward:yLI,joinItemBackward:JLI,joinItemForward:BLI,joinTextblockBackward:kLI,joinTextblockForward:xLI,keyboardShortcut:ULI,lift:CLI,liftEmptyBlock:MLI,liftListItem:fLI,newlineInCode:KLI,resetAttributes:LLI,scrollIntoView:SLI,selectAll:TLI,selectNodeBackward:jLI,selectNodeForward:DLI,selectParentNode:OLI,selectTextblockEnd:PLI,selectTextblockStart:_LI,setContent:qLI,setMark:bSI,setMeta:aSI,setNode:ZSI,setNodeSelection:WSI,setTextSelection:rSI,sinkListItem:mSI,splitBlock:sSI,splitListItem:uSI,toggleList:hSI,toggleMark:pSI,toggleNode:oSI,toggleWrap:VSI,undoInputRule:iSI,unsetAllMarks:FSI,unsetMark:NSI,updateAttributes:RSI,wrapIn:YSI,wrapInList:XSI});const QSI=on.create({name:"commands",addCommands(){return{...HSI}}}),wSI=on.create({name:"editable",addProseMirrorPlugins(){return[new Rn({key:new Yn("editable"),props:{editable:()=>this.editor.options.editable}})]}}),ESI=on.create({name:"focusEvents",addProseMirrorPlugins(){const{editor:I}=this;return[new Rn({key:new Yn("focusEvents"),props:{handleDOMEvents:{focus:(l,c)=>{I.isFocused=!0;const G=I.state.tr.setMeta("focus",{event:c}).setMeta("addToHistory",!1);return l.dispatch(G),!1},blur:(l,c)=>{I.isFocused=!1;const G=I.state.tr.setMeta("blur",{event:c}).setMeta("addToHistory",!1);return l.dispatch(G),!1}}}})]}}),vSI=on.create({name:"keymap",addKeyboardShortcuts(){const I=()=>this.editor.commands.first(({commands:t})=>[()=>t.undoInputRule(),()=>t.command(({tr:n})=>{const{selection:b,doc:a}=n,{empty:Z,$anchor:W}=b,{pos:m,parent:s}=W,h=W.parent.isTextblock?n.doc.resolve(m-1):W,p=h.parent.type.spec.isolating,V=W.pos-W.parentOffset,o=p&&h.parent.childCount===1?V===W.pos:pc.atStart(a).from===m;return!Z||!o||!s.type.isTextblock||s.textContent.length?!1:t.clearNodes()}),()=>t.deleteSelection(),()=>t.joinBackward(),()=>t.selectNodeBackward()]),l=()=>this.editor.commands.first(({commands:t})=>[()=>t.deleteSelection(),()=>t.deleteCurrentNode(),()=>t.joinForward(),()=>t.selectNodeForward()]),G={Enter:()=>this.editor.commands.first(({commands:t})=>[()=>t.newlineInCode(),()=>t.createParagraphNear(),()=>t.liftEmptyBlock(),()=>t.splitBlock()]),"Mod-Enter":()=>this.editor.commands.exitCode(),Backspace:I,"Mod-Backspace":I,"Shift-Backspace":I,Delete:l,"Mod-Delete":l,"Mod-a":()=>this.editor.commands.selectAll()},e={...G},d={...G,"Ctrl-h":I,"Alt-Backspace":I,"Ctrl-d":l,"Ctrl-Alt-Backspace":l,"Alt-Delete":l,"Alt-d":l,"Ctrl-a":()=>this.editor.commands.selectTextblockStart(),"Ctrl-e":()=>this.editor.commands.selectTextblockEnd()};return _N()||OP()?d:e},addProseMirrorPlugins(){return[new Rn({key:new Yn("clearDocument"),appendTransaction:(I,l,c)=>{if(!(I.some(h=>h.docChanged)&&!l.doc.eq(c.doc)))return;const{empty:e,from:d,to:t}=l.selection,n=pc.atStart(l.doc).from,b=pc.atEnd(l.doc).to;if(e||!(d===n&&t===b)||!(c.doc.textBetween(0,c.doc.content.size," "," ").length===0))return;const W=c.tr,m=jN({state:c,transaction:W}),{commands:s}=new DN({editor:this.editor,state:m});if(s.clearNodes(),!!W.steps.length)return W}})]}}),gSI=on.create({name:"tabindex",addProseMirrorPlugins(){return[new Rn({key:new Yn("tabindex"),props:{attributes:this.editor.isEditable?{tabindex:"0"}:{}}})]}});var ASI=Object.freeze({__proto__:null,ClipboardTextSerializer:bLI,Commands:QSI,Editable:wSI,FocusEvents:ESI,Keymap:vSI,Tabindex:gSI});class dW{constructor(l,c,G=!1,e=null){this.currentNode=null,this.actualDepth=null,this.isBlock=G,this.resolvedPos=l,this.editor=c,this.currentNode=e}get name(){return this.node.type.name}get node(){return this.currentNode||this.resolvedPos.node()}get element(){return this.editor.view.domAtPos(this.pos).node}get depth(){var l;return(l=this.actualDepth)!==null&&l!==void 0?l:this.resolvedPos.depth}get pos(){return this.resolvedPos.pos}get content(){return this.node.content}set content(l){let c=this.from,G=this.to;if(this.isBlock){if(this.content.size===0){console.error(`You can’t set content on a block node. Tried to set content on ${this.name} at ${this.pos}`);return}c=this.from+1,G=this.to-1}this.editor.commands.insertContentAt({from:c,to:G},l)}get attributes(){return this.node.attrs}get textContent(){return this.node.textContent}get size(){return this.node.nodeSize}get from(){return this.isBlock?this.pos:this.resolvedPos.start(this.resolvedPos.depth)}get range(){return{from:this.from,to:this.to}}get to(){return this.isBlock?this.pos+this.size:this.resolvedPos.end(this.resolvedPos.depth)+(this.node.isText?0:1)}get parent(){if(this.depth===0)return null;const l=this.resolvedPos.start(this.resolvedPos.depth-1),c=this.resolvedPos.doc.resolve(l);return new dW(c,this.editor)}get before(){let l=this.resolvedPos.doc.resolve(this.from-(this.isBlock?1:2));return l.depth!==this.depth&&(l=this.resolvedPos.doc.resolve(this.from-3)),new dW(l,this.editor)}get after(){let l=this.resolvedPos.doc.resolve(this.to+(this.isBlock?2:1));return l.depth!==this.depth&&(l=this.resolvedPos.doc.resolve(this.to+3)),new dW(l,this.editor)}get children(){const l=[];return this.node.content.forEach((c,G)=>{const e=c.isBlock&&!c.isTextblock,d=this.pos+G+(e?0:1),t=this.resolvedPos.doc.resolve(d);if(!e&&t.depth<=this.depth)return;const n=new dW(t,this.editor,e,e?c:null);e&&(n.actualDepth=this.depth+1),l.push(new dW(t,this.editor,e,e?c:null))}),l}get firstChild(){return this.children[0]||null}get lastChild(){const l=this.children;return l[l.length-1]||null}closest(l,c={}){let G=null,e=this.parent;for(;e&&!G;){if(e.node.type.name===l)if(Object.keys(c).length>0){const d=e.node.attrs,t=Object.keys(c);for(let n=0;n{if(d.node.type.name===l){if(Object.keys(c).length>0){const t=d.node.attrs,n=Object.keys(c);for(let b=0;b{var a;const t=E.useContext(Zn),[n,r]=ct.useState(!1);if(!e.contextItems||e.contextItems.length===0)return null;function i(o){if(o.description.startsWith("http"))window.open(o.description,"_blank");else if(o.description.startsWith("/")||o.description.startsWith("\\"))if(o.name.includes(" (")&&o.name.endsWith(")")){const l=GGe(o);t.ide.showLines(l.filepath,l.range.start.line,l.range.end.line)}else t.ide.openFile(o.description);else t.ide.showVirtualFile(o.name,o.content)}return W.jsxs("div",{style:{paddingLeft:"8px",paddingTop:"8px",backgroundColor:Gn},children:[W.jsxs("div",{style:{color:rt,cursor:"pointer",display:"flex",justifyContent:"left",alignItems:"center",fontSize:`${nr()-3}px`},onClick:()=>r(o=>!o),children:[n?W.jsx(VV,{width:"1.0em",height:"1.0em",style:{color:rt}}):W.jsx(TV,{width:"1.0em",height:"1.0em",style:{color:rt}}),"Context Used"]}),n&&W.jsx("div",{style:{paddingTop:"2px"},children:(a=e.contextItems)==null?void 0:a.map((o,l)=>o.description.startsWith("http")?W.jsx("a",{href:o.description,target:"_blank",style:{color:rn,textDecoration:"none"},children:W.jsxs(jZ,{onClick:()=>{i(o)},children:[W.jsx(IB,{filename:o.description.split(" ").shift().split("#").shift()||"",height:"1.6em",width:"1.6em"}),o.name]})},l):W.jsxs(jZ,{onClick:()=>{i(o)},children:[W.jsx(IB,{filename:o.description.split(" ").shift(),height:"1.6em",width:"1.6em"}),o.name]},l))})]})};function mi(e){this.content=e}mi.prototype={constructor:mi,find:function(e){for(var t=0;t>1}};mi.from=function(e){if(e instanceof mi)return e;var t=[];if(e)for(var n in e)t.push(n,e[n]);return new mi(t)};function hP(e,t,n){for(let r=0;;r++){if(r==e.childCount||r==t.childCount)return e.childCount==t.childCount?null:n;let i=e.child(r),a=t.child(r);if(i==a){n+=i.nodeSize;continue}if(!i.sameMarkup(a))return n;if(i.isText&&i.text!=a.text){for(let o=0;i.text[o]==a.text[o];o++)n++;return n}if(i.content.size||a.content.size){let o=hP(i.content,a.content,n+1);if(o!=null)return o}n+=i.nodeSize}}function fP(e,t,n,r){for(let i=e.childCount,a=t.childCount;;){if(i==0||a==0)return i==a?null:{a:n,b:r};let o=e.child(--i),l=t.child(--a),s=o.nodeSize;if(o==l){n-=s,r-=s;continue}if(!o.sameMarkup(l))return{a:n,b:r};if(o.isText&&o.text!=l.text){let u=0,c=Math.min(o.text.length,l.text.length);for(;ut&&r(s,i+l,a||null,o)!==!1&&s.content.size){let c=l+1;s.nodesBetween(Math.max(0,t-c),Math.min(s.content.size,n-c),r,i+c)}l=u}}descendants(t){this.nodesBetween(0,this.size,t)}textBetween(t,n,r,i){let a="",o=!0;return this.nodesBetween(t,n,(l,s)=>{let u=l.isText?l.text.slice(Math.max(t,s)-s,n-s):l.isLeaf?i?typeof i=="function"?i(l):i:l.type.spec.leafText?l.type.spec.leafText(l):"":"";l.isBlock&&(l.isLeaf&&u||l.isTextblock)&&r&&(o?o=!1:a+=r),a+=u},0),a}append(t){if(!t.size)return this;if(!this.size)return t;let n=this.lastChild,r=t.firstChild,i=this.content.slice(),a=0;for(n.isText&&n.sameMarkup(r)&&(i[i.length-1]=n.withText(n.text+r.text),a=1);at)for(let a=0,o=0;ot&&((on)&&(l.isText?l=l.cut(Math.max(0,t-o),Math.min(l.text.length,n-o)):l=l.cut(Math.max(0,t-o-1),Math.min(l.content.size,n-o-1))),r.push(l),i+=l.nodeSize),o=s}return new je(r,i)}cutByIndex(t,n){return t==n?je.empty:t==0&&n==this.content.length?this:new je(this.content.slice(t,n))}replaceChild(t,n){let r=this.content[t];if(r==n)return this;let i=this.content.slice(),a=this.size+n.nodeSize-r.nodeSize;return i[t]=n,new je(i,a)}addToStart(t){return new je([t].concat(this.content),this.size+t.nodeSize)}addToEnd(t){return new je(this.content.concat(t),this.size+t.nodeSize)}eq(t){if(this.content.length!=t.content.length)return!1;for(let n=0;nthis.size||t<0)throw new RangeError(`Position ${t} outside of fragment (${this})`);for(let r=0,i=0;;r++){let a=this.child(r),o=i+a.nodeSize;if(o>=t)return o==t||n>0?S2(r+1,o):S2(r,i);i=o}}toString(){return"<"+this.toStringInner()+">"}toStringInner(){return this.content.join(", ")}toJSON(){return this.content.length?this.content.map(t=>t.toJSON()):null}static fromJSON(t,n){if(!n)return je.empty;if(!Array.isArray(n))throw new RangeError("Invalid input for Fragment.fromJSON");return new je(n.map(t.nodeFromJSON))}static fromArray(t){if(!t.length)return je.empty;let n,r=0;for(let i=0;ithis.type.rank&&(n||(n=t.slice(0,i)),n.push(this),r=!0),n&&n.push(a)}}return n||(n=t.slice()),r||n.push(this),n}removeFromSet(t){for(let n=0;nr.type.rank-i.type.rank),n}};In.none=[];class OB extends Error{}class wt{constructor(t,n,r){this.content=t,this.openStart=n,this.openEnd=r}get size(){return this.content.size-this.openStart-this.openEnd}insertAt(t,n){let r=AP(this.content,t+this.openStart,n);return r&&new wt(r,this.openStart,this.openEnd)}removeBetween(t,n){return new wt(mP(this.content,t+this.openStart,n+this.openStart),this.openStart,this.openEnd)}eq(t){return this.content.eq(t.content)&&this.openStart==t.openStart&&this.openEnd==t.openEnd}toString(){return this.content+"("+this.openStart+","+this.openEnd+")"}toJSON(){if(!this.content.size)return null;let t={content:this.content.toJSON()};return this.openStart>0&&(t.openStart=this.openStart),this.openEnd>0&&(t.openEnd=this.openEnd),t}static fromJSON(t,n){if(!n)return wt.empty;let r=n.openStart||0,i=n.openEnd||0;if(typeof r!="number"||typeof i!="number")throw new RangeError("Invalid input for Slice.fromJSON");return new wt(je.fromJSON(t,n.content),r,i)}static maxOpen(t,n=!0){let r=0,i=0;for(let a=t.firstChild;a&&!a.isLeaf&&(n||!a.type.spec.isolating);a=a.firstChild)r++;for(let a=t.lastChild;a&&!a.isLeaf&&(n||!a.type.spec.isolating);a=a.lastChild)i++;return new wt(t,r,i)}}wt.empty=new wt(je.empty,0,0);function mP(e,t,n){let{index:r,offset:i}=e.findIndex(t),a=e.maybeChild(r),{index:o,offset:l}=e.findIndex(n);if(i==t||a.isText){if(l!=n&&!e.child(o).isText)throw new RangeError("Removing non-flat range");return e.cut(0,t).append(e.cut(n))}if(r!=o)throw new RangeError("Removing non-flat range");return e.replaceChild(r,a.copy(mP(a.content,t-i-1,n-i-1)))}function AP(e,t,n,r){let{index:i,offset:a}=e.findIndex(t),o=e.maybeChild(i);if(a==t||o.isText)return r&&!r.canReplace(i,i,n)?null:e.cut(0,t).append(n).append(e.cut(t));let l=AP(o.content,t-a-1,n);return l&&e.replaceChild(i,o.copy(l))}function ONe(e,t,n){if(n.openStart>e.depth)throw new OB("Inserted content deeper than insertion position");if(e.depth-n.openStart!=t.depth-n.openEnd)throw new OB("Inconsistent open depths");return CP(e,t,n,0)}function CP(e,t,n,r){let i=e.index(r),a=e.node(r);if(i==t.index(r)&&r=0&&e.isText&&e.sameMarkup(t[n])?t[n]=e.withText(t[n].text+e.text):t.push(e)}function Zh(e,t,n,r){let i=(t||e).node(n),a=0,o=t?t.index(n):i.childCount;e&&(a=e.index(n),e.depth>n?a++:e.textOffset&&(X0(e.nodeAfter,r),a++));for(let l=a;li&&kF(e,t,i+1),o=r.depth>i&&kF(n,r,i+1),l=[];return Zh(null,e,i,l),a&&o&&t.index(i)==n.index(i)?(BP(a,o),X0(L0(a,wP(e,t,n,r,i+1)),l)):(a&&X0(L0(a,JB(e,t,i+1)),l),Zh(t,n,i,l),o&&X0(L0(o,JB(n,r,i+1)),l)),Zh(r,null,i,l),new je(l)}function JB(e,t,n){let r=[];if(Zh(null,e,n,r),e.depth>n){let i=kF(e,t,n+1);X0(L0(i,JB(e,t,n+1)),r)}return Zh(t,null,n,r),new je(r)}function JNe(e,t){let n=t.depth-e.openStart,i=t.node(n).copy(e.content);for(let a=n-1;a>=0;a--)i=t.node(a).copy(je.from(i));return{start:i.resolveNoCache(e.openStart+n),end:i.resolveNoCache(i.content.size-e.openEnd-n)}}class Rf{constructor(t,n,r){this.pos=t,this.path=n,this.parentOffset=r,this.depth=n.length/3-1}resolveDepth(t){return t==null?this.depth:t<0?this.depth+t:t}get parent(){return this.node(this.depth)}get doc(){return this.node(0)}node(t){return this.path[this.resolveDepth(t)*3]}index(t){return this.path[this.resolveDepth(t)*3+1]}indexAfter(t){return t=this.resolveDepth(t),this.index(t)+(t==this.depth&&!this.textOffset?0:1)}start(t){return t=this.resolveDepth(t),t==0?0:this.path[t*3-1]+1}end(t){return t=this.resolveDepth(t),this.start(t)+this.node(t).content.size}before(t){if(t=this.resolveDepth(t),!t)throw new RangeError("There is no position before the top-level node");return t==this.depth+1?this.pos:this.path[t*3-1]}after(t){if(t=this.resolveDepth(t),!t)throw new RangeError("There is no position after the top-level node");return t==this.depth+1?this.pos:this.path[t*3-1]+this.path[t*3].nodeSize}get textOffset(){return this.pos-this.path[this.path.length-1]}get nodeAfter(){let t=this.parent,n=this.index(this.depth);if(n==t.childCount)return null;let r=this.pos-this.path[this.path.length-1],i=t.child(n);return r?t.child(n).cut(r):i}get nodeBefore(){let t=this.index(this.depth),n=this.pos-this.path[this.path.length-1];return n?this.parent.child(t).cut(0,n):t==0?null:this.parent.child(t-1)}posAtIndex(t,n){n=this.resolveDepth(n);let r=this.path[n*3],i=n==0?0:this.path[n*3-1]+1;for(let a=0;a0;n--)if(this.start(n)<=t&&this.end(n)>=t)return n;return 0}blockRange(t=this,n){if(t.pos=0;r--)if(t.pos<=this.end(r)&&(!n||n(this.node(r))))return new zB(this,t,r);return null}sameParent(t){return this.pos-this.parentOffset==t.pos-t.parentOffset}max(t){return t.pos>this.pos?t:this}min(t){return t.pos=0&&n<=t.content.size))throw new RangeError("Position "+n+" out of range");let r=[],i=0,a=n;for(let o=t;;){let{index:l,offset:s}=o.content.findIndex(a),u=a-s;if(r.push(o,l,i+s),!u||(o=o.child(l),o.isText))break;a=u-1,i+=s+1}return new Rf(n,r,a)}static resolveCached(t,n){for(let i=0;it&&this.nodesBetween(t,n,a=>(r.isInSet(a.marks)&&(i=!0),!i)),i}get isBlock(){return this.type.isBlock}get isTextblock(){return this.type.isTextblock}get inlineContent(){return this.type.inlineContent}get isInline(){return this.type.isInline}get isText(){return this.type.isText}get isLeaf(){return this.type.isLeaf}get isAtom(){return this.type.isAtom}toString(){if(this.type.spec.toDebugString)return this.type.spec.toDebugString(this);let t=this.type.name;return this.content.size&&(t+="("+this.content.toStringInner()+")"),bP(this.marks,t)}contentMatchAt(t){let n=this.type.contentMatch.matchFragment(this.content,0,t);if(!n)throw new Error("Called contentMatchAt on a node with invalid content");return n}canReplace(t,n,r=je.empty,i=0,a=r.childCount){let o=this.contentMatchAt(t).matchFragment(r,i,a),l=o&&o.matchFragment(this.content,n);if(!l||!l.validEnd)return!1;for(let s=i;sn.type.name)}`);this.content.forEach(n=>n.check())}toJSON(){let t={type:this.type.name};for(let n in this.attrs){t.attrs=this.attrs;break}return this.content.size&&(t.content=this.content.toJSON()),this.marks.length&&(t.marks=this.marks.map(n=>n.toJSON())),t}static fromJSON(t,n){if(!n)throw new RangeError("Invalid input for Node.fromJSON");let r=null;if(n.marks){if(!Array.isArray(n.marks))throw new RangeError("Invalid mark data for Node.fromJSON");r=n.marks.map(t.markFromJSON)}if(n.type=="text"){if(typeof n.text!="string")throw new RangeError("Invalid text node in JSON");return t.text(n.text,r)}let i=je.fromJSON(t,n.content);return t.nodeType(n.type).create(n.attrs,i,r)}};M0.prototype.text=void 0;class PB extends M0{constructor(t,n,r,i){if(super(t,n,null,i),!r)throw new RangeError("Empty text nodes are not allowed");this.text=r}toString(){return this.type.spec.toDebugString?this.type.spec.toDebugString(this):bP(this.marks,JSON.stringify(this.text))}get textContent(){return this.text}textBetween(t,n){return this.text.slice(t,n)}get nodeSize(){return this.text.length}mark(t){return t==this.marks?this:new PB(this.type,this.attrs,this.text,t)}withText(t){return t==this.text?this:new PB(this.type,this.attrs,t,this.marks)}cut(t=0,n=this.text.length){return t==0&&n==this.text.length?this:this.withText(this.text.slice(t,n))}eq(t){return this.sameMarkup(t)&&this.text==t.text}toJSON(){let t=super.toJSON();return t.text=this.text,t}}function bP(e,t){for(let n=e.length-1;n>=0;n--)t=e[n].type.name+"("+t+")";return t}class rd{constructor(t){this.validEnd=t,this.next=[],this.wrapCache=[]}static parse(t,n){let r=new jNe(t,n);if(r.next==null)return rd.empty;let i=vP(r);r.next&&r.err("Unexpected trailing text");let a=rZe(nZe(i));return iZe(a,r),a}matchType(t){for(let n=0;nu.createAndFill()));for(let u=0;u=this.next.length)throw new RangeError(`There's no ${t}th edge in this content match`);return this.next[t]}toString(){let t=[];function n(r){t.push(r);for(let i=0;i{let a=i+(r.validEnd?"*":" ")+" ";for(let o=0;o"+t.indexOf(r.next[o].next);return a}).join(` +`)}}rd.empty=new rd(!0);class jNe{constructor(t,n){this.string=t,this.nodeTypes=n,this.inline=null,this.pos=0,this.tokens=t.split(/\s*(?=\b|\W|$)/),this.tokens[this.tokens.length-1]==""&&this.tokens.pop(),this.tokens[0]==""&&this.tokens.shift()}get next(){return this.tokens[this.pos]}eat(t){return this.next==t&&(this.pos++||!0)}err(t){throw new SyntaxError(t+" (in content expression '"+this.string+"')")}}function vP(e){let t=[];do t.push(_Ne(e));while(e.eat("|"));return t.length==1?t[0]:{type:"choice",exprs:t}}function _Ne(e){let t=[];do t.push($Ne(e));while(e.next&&e.next!=")"&&e.next!="|");return t.length==1?t[0]:{type:"seq",exprs:t}}function $Ne(e){let t=tZe(e);for(;;)if(e.eat("+"))t={type:"plus",expr:t};else if(e.eat("*"))t={type:"star",expr:t};else if(e.eat("?"))t={type:"opt",expr:t};else if(e.eat("{"))t=qNe(e,t);else break;return t}function _Z(e){/\D/.test(e.next)&&e.err("Expected number, got '"+e.next+"'");let t=Number(e.next);return e.pos++,t}function qNe(e,t){let n=_Z(e),r=n;return e.eat(",")&&(e.next!="}"?r=_Z(e):r=-1),e.eat("}")||e.err("Unclosed braced range"),{type:"range",min:n,max:r,expr:t}}function eZe(e,t){let n=e.nodeTypes,r=n[t];if(r)return[r];let i=[];for(let a in n){let o=n[a];o.groups.indexOf(t)>-1&&i.push(o)}return i.length==0&&e.err("No node type or group '"+t+"' found"),i}function tZe(e){if(e.eat("(")){let t=vP(e);return e.eat(")")||e.err("Missing closing paren"),t}else if(/\W/.test(e.next))e.err("Unexpected token '"+e.next+"'");else{let t=eZe(e,e.next).map(n=>(e.inline==null?e.inline=n.isInline:e.inline!=n.isInline&&e.err("Mixing inline and block content"),{type:"name",value:n}));return e.pos++,t.length==1?t[0]:{type:"choice",exprs:t}}}function nZe(e){let t=[[]];return i(a(e,0),n()),t;function n(){return t.push([])-1}function r(o,l,s){let u={term:s,to:l};return t[o].push(u),u}function i(o,l){o.forEach(s=>s.to=l)}function a(o,l){if(o.type=="choice")return o.exprs.reduce((s,u)=>s.concat(a(u,l)),[]);if(o.type=="seq")for(let s=0;;s++){let u=a(o.exprs[s],l);if(s==o.exprs.length-1)return u;i(u,l=n())}else if(o.type=="star"){let s=n();return r(l,s),i(a(o.expr,s),s),[r(s)]}else if(o.type=="plus"){let s=n();return i(a(o.expr,l),s),i(a(o.expr,s),s),[r(s)]}else{if(o.type=="opt")return[r(l)].concat(a(o.expr,l));if(o.type=="range"){let s=l;for(let u=0;u{e[o].forEach(({term:l,to:s})=>{if(!l)return;let u;for(let c=0;c{u||i.push([l,u=[]]),u.indexOf(c)==-1&&u.push(c)})})});let a=t[r.join(",")]=new rd(r.indexOf(e.length-1)>-1);for(let o=0;o-1}allowsMarks(t){if(this.markSet==null)return!0;for(let n=0;nr[a]=new FP(a,n,o));let i=n.spec.topNode||"doc";if(!r[i])throw new RangeError("Schema is missing its top node type ('"+i+"')");if(!r.text)throw new RangeError("Every schema needs a 'text' type");for(let a in r.text.attrs)throw new RangeError("The text node type should not have attributes");return r}};class aZe{constructor(t){this.hasDefault=Object.prototype.hasOwnProperty.call(t,"default"),this.default=t.default}get isRequired(){return!this.hasDefault}}class Y3{constructor(t,n,r,i){this.name=t,this.rank=n,this.schema=r,this.spec=i,this.attrs=yP(i.attrs),this.excluded=null;let a=QP(this.attrs);this.instance=a?new In(this,a):null}create(t=null){return!t&&this.instance?this.instance:new In(this,WP(this.attrs,t))}static compile(t,n){let r=Object.create(null),i=0;return t.forEach((a,o)=>r[a]=new Y3(a,i++,n,o)),r}removeFromSet(t){for(var n=0;n-1}}class oZe{constructor(t){this.linebreakReplacement=null,this.cached=Object.create(null);let n=this.spec={};for(let i in t)n[i]=t[i];n.nodes=mi.from(t.nodes),n.marks=mi.from(t.marks||{}),this.nodes=qZ.compile(this.spec.nodes,this),this.marks=Y3.compile(this.spec.marks,this);let r=Object.create(null);for(let i in this.nodes){if(i in this.marks)throw new RangeError(i+" can not be both a node and a mark");let a=this.nodes[i],o=a.spec.content||"",l=a.spec.marks;if(a.contentMatch=r[o]||(r[o]=rd.parse(o,this.nodes)),a.inlineContent=a.contentMatch.inlineContent,a.spec.linebreakReplacement){if(this.linebreakReplacement)throw new RangeError("Multiple linebreak nodes defined");if(!a.isInline||!a.isLeaf)throw new RangeError("Linebreak replacement nodes must be inline leaf nodes");this.linebreakReplacement=a}a.markSet=l=="_"?null:l?eH(this,l.split(" ")):l==""||!a.inlineContent?[]:null}for(let i in this.marks){let a=this.marks[i],o=a.spec.excludes;a.excluded=o==null?[a]:o==""?[]:eH(this,o.split(" "))}this.nodeFromJSON=this.nodeFromJSON.bind(this),this.markFromJSON=this.markFromJSON.bind(this),this.topNodeType=this.nodes[this.spec.topNode||"doc"],this.cached.wrappings=Object.create(null)}node(t,n=null,r,i){if(typeof t=="string")t=this.nodeType(t);else if(t instanceof qZ){if(t.schema!=this)throw new RangeError("Node type from different schema used ("+t.name+")")}else throw new RangeError("Invalid node type: "+t);return t.createChecked(n,r,i)}text(t,n){let r=this.nodes.text;return new PB(r,r.defaultAttrs,t,In.setFrom(n))}mark(t,n){return typeof t=="string"&&(t=this.marks[t]),t.create(n)}nodeFromJSON(t){return M0.fromJSON(this,t)}markFromJSON(t){return In.fromJSON(this,t)}nodeType(t){let n=this.nodes[t];if(!n)throw new RangeError("Unknown node type: "+t);return n}}function eH(e,t){let n=[];for(let r=0;r-1)&&n.push(o=s)}if(!o)throw new SyntaxError("Unknown mark type: '"+t[r]+"'")}return n}function lZe(e){return e.tag!=null}function sZe(e){return e.style!=null}let ER=class NF{constructor(t,n){this.schema=t,this.rules=n,this.tags=[],this.styles=[],n.forEach(r=>{lZe(r)?this.tags.push(r):sZe(r)&&this.styles.push(r)}),this.normalizeLists=!this.tags.some(r=>{if(!/^(ul|ol)\b/.test(r.tag)||!r.node)return!1;let i=t.nodes[r.node];return i.contentMatch.matchType(i)})}parse(t,n={}){let r=new nH(this,n,!1);return r.addAll(t,n.from,n.to),r.finish()}parseSlice(t,n={}){let r=new nH(this,n,!0);return r.addAll(t,n.from,n.to),wt.maxOpen(r.finish())}matchTag(t,n,r){for(let i=r?this.tags.indexOf(r)+1:0;it.length&&(l.charCodeAt(t.length)!=61||l.slice(t.length+1)!=n))){if(o.getAttrs){let s=o.getAttrs(n);if(s===!1)continue;o.attrs=s||void 0}return o}}}static schemaRules(t){let n=[];function r(i){let a=i.priority==null?50:i.priority,o=0;for(;o{r(o=rH(o)),o.mark||o.ignore||o.clearMark||(o.mark=i)})}for(let i in t.nodes){let a=t.nodes[i].spec.parseDOM;a&&a.forEach(o=>{r(o=rH(o)),o.node||o.ignore||o.mark||(o.node=i)})}return n}static fromSchema(t){return t.cached.domParser||(t.cached.domParser=new NF(t,NF.schemaRules(t)))}};const EP={address:!0,article:!0,aside:!0,blockquote:!0,canvas:!0,dd:!0,div:!0,dl:!0,fieldset:!0,figcaption:!0,figure:!0,footer:!0,form:!0,h1:!0,h2:!0,h3:!0,h4:!0,h5:!0,h6:!0,header:!0,hgroup:!0,hr:!0,li:!0,noscript:!0,ol:!0,output:!0,p:!0,pre:!0,section:!0,table:!0,tfoot:!0,ul:!0},uZe={head:!0,noscript:!0,object:!0,script:!0,style:!0,title:!0},RP={ol:!0,ul:!0},jB=1,_B=2,Hh=4;function tH(e,t,n){return t!=null?(t?jB:0)|(t==="full"?_B:0):e&&e.whitespace=="pre"?jB|_B:n&~Hh}class x2{constructor(t,n,r,i,a,o,l){this.type=t,this.attrs=n,this.marks=r,this.pendingMarks=i,this.solid=a,this.options=l,this.content=[],this.activeMarks=In.none,this.stashMarks=[],this.match=o||(l&Hh?null:t.contentMatch)}findWrapping(t){if(!this.match){if(!this.type)return[];let n=this.type.contentMatch.fillBefore(je.from(t));if(n)this.match=this.type.contentMatch.matchFragment(n);else{let r=this.type.contentMatch,i;return(i=r.findWrapping(t.type))?(this.match=r,i):null}}return this.match.findWrapping(t.type)}finish(t){if(!(this.options&jB)){let r=this.content[this.content.length-1],i;if(r&&r.isText&&(i=/[ \t\r\n\u000c]+$/.exec(r.text))){let a=r;r.text.length==i[0].length?this.content.pop():this.content[this.content.length-1]=a.withText(a.text.slice(0,a.text.length-i[0].length))}}let n=je.from(this.content);return!t&&this.match&&(n=n.append(this.match.fillBefore(je.empty,!0))),this.type?this.type.create(this.attrs,n,this.marks):n}popFromStashMark(t){for(let n=this.stashMarks.length-1;n>=0;n--)if(t.eq(this.stashMarks[n]))return this.stashMarks.splice(n,1)[0]}applyPending(t){for(let n=0,r=this.pendingMarks;nthis.addAll(t)),o&&this.sync(l),this.needsBlock=s}else this.withStyleRules(t,()=>{this.addElementByRule(t,a,a.consuming===!1?i:void 0)})}leafFallback(t){t.nodeName=="BR"&&this.top.type&&this.top.type.inlineContent&&this.addTextNode(t.ownerDocument.createTextNode(` +`))}ignoreFallback(t){t.nodeName=="BR"&&(!this.top.type||!this.top.type.inlineContent)&&this.findPlace(this.parser.schema.text("-"))}readStyles(t){let n=In.none,r=In.none;for(let i=0,a=t.length;i{s.clearMark(u)&&(r=u.addToSet(r))}):n=this.parser.schema.marks[s.mark].create(s.attrs).addToSet(n),s.consuming===!1)l=s;else break}}return[n,r]}addElementByRule(t,n,r){let i,a,o;n.node?(a=this.parser.schema.nodes[n.node],a.isLeaf?this.insertNode(a.create(n.attrs))||this.leafFallback(t):i=this.enter(a,n.attrs||null,n.preserveWhitespace)):(o=this.parser.schema.marks[n.mark].create(n.attrs),this.addPendingMark(o));let l=this.top;if(a&&a.isLeaf)this.findInside(t);else if(r)this.addElement(t,r);else if(n.getContent)this.findInside(t),n.getContent(t,this.parser.schema).forEach(s=>this.insertNode(s));else{let s=t;typeof n.contentElement=="string"?s=t.querySelector(n.contentElement):typeof n.contentElement=="function"?s=n.contentElement(t):n.contentElement&&(s=n.contentElement),this.findAround(t,s,!0),this.addAll(s)}i&&this.sync(l)&&this.open--,o&&this.removePendingMark(o,l)}addAll(t,n,r){let i=n||0;for(let a=n?t.childNodes[n]:t.firstChild,o=r==null?null:t.childNodes[r];a!=o;a=a.nextSibling,++i)this.findAtPoint(t,i),this.addDOM(a);this.findAtPoint(t,i)}findPlace(t){let n,r;for(let i=this.open;i>=0;i--){let a=this.nodes[i],o=a.findWrapping(t);if(o&&(!n||n.length>o.length)&&(n=o,r=a,!o.length)||a.solid)break}if(!n)return!1;this.sync(r);for(let i=0;ithis.open){for(;n>this.open;n--)this.nodes[n-1].content.push(this.nodes[n].finish(t));this.nodes.length=this.open+1}}finish(){return this.open=0,this.closeExtra(this.isOpen),this.nodes[0].finish(this.isOpen||this.options.topOpen)}sync(t){for(let n=this.open;n>=0;n--)if(this.nodes[n]==t)return this.open=n,!0;return!1}get currentPos(){this.closeExtra();let t=0;for(let n=this.open;n>=0;n--){let r=this.nodes[n].content;for(let i=r.length-1;i>=0;i--)t+=r[i].nodeSize;n&&t++}return t}findAtPoint(t,n){if(this.find)for(let r=0;r-1)return t.split(/\s*\|\s*/).some(this.matchesContext,this);let n=t.split("/"),r=this.options.context,i=!this.isOpen&&(!r||r.parent.type==this.nodes[0].type),a=-(r?r.depth+1:0)+(i?0:1),o=(l,s)=>{for(;l>=0;l--){let u=n[l];if(u==""){if(l==n.length-1||l==0)continue;for(;s>=a;s--)if(o(l-1,s))return!0;return!1}else{let c=s>0||s==0&&i?this.nodes[s].type:r&&s>=a?r.node(s-a).type:null;if(!c||c.name!=u&&c.groups.indexOf(u)==-1)return!1;s--}}return!0};return o(n.length-1,this.open)}textblockFromContext(){let t=this.options.context;if(t)for(let n=t.depth;n>=0;n--){let r=t.node(n).contentMatchAt(t.indexAfter(n)).defaultType;if(r&&r.isTextblock&&r.defaultAttrs)return r}for(let n in this.parser.schema.nodes){let r=this.parser.schema.nodes[n];if(r.isTextblock&&r.defaultAttrs)return r}}addPendingMark(t){let n=gZe(t,this.top.pendingMarks);n&&this.top.stashMarks.push(n),this.top.pendingMarks=t.addToSet(this.top.pendingMarks)}removePendingMark(t,n){for(let r=this.open;r>=0;r--){let i=this.nodes[r];if(i.pendingMarks.lastIndexOf(t)>-1)i.pendingMarks=t.removeFromSet(i.pendingMarks);else{i.activeMarks=t.removeFromSet(i.activeMarks);let o=i.popFromStashMark(t);o&&i.type&&i.type.allowsMarkType(o.type)&&(i.activeMarks=o.addToSet(i.activeMarks))}if(i==n)break}}}function cZe(e){for(let t=e.firstChild,n=null;t;t=t.nextSibling){let r=t.nodeType==1?t.nodeName.toLowerCase():null;r&&RP.hasOwnProperty(r)&&n?(n.appendChild(t),t=n):r=="li"?n=t:r&&(n=null)}}function dZe(e,t){return(e.matches||e.msMatchesSelector||e.webkitMatchesSelector||e.mozMatchesSelector).call(e,t)}function rH(e){let t={};for(let n in e)t[n]=e[n];return t}function pZe(e,t){let n=t.schema.nodes;for(let r in n){let i=n[r];if(!i.allowsMarkType(e))continue;let a=[],o=l=>{a.push(l);for(let s=0;s{if(a.length||o.marks.length){let l=0,s=0;for(;l=0;i--){let a=this.serializeMark(t.marks[i],t.isInline,n);a&&((a.contentDOM||a.dom).appendChild(r),r=a.dom)}return r}serializeMark(t,n,r={}){let i=this.marks[t.type.name];return i&&es.renderSpec(fQ(r),i(t,n))}static renderSpec(t,n,r=null){if(typeof n=="string")return{dom:t.createTextNode(n)};if(n.nodeType!=null)return{dom:n};if(n.dom&&n.dom.nodeType!=null)return n;let i=n[0],a=i.indexOf(" ");a>0&&(r=i.slice(0,a),i=i.slice(a+1));let o,l=r?t.createElementNS(r,i):t.createElement(i),s=n[1],u=1;if(s&&typeof s=="object"&&s.nodeType==null&&!Array.isArray(s)){u=2;for(let c in s)if(s[c]!=null){let d=c.indexOf(" ");d>0?l.setAttributeNS(c.slice(0,d),c.slice(d+1),s[c]):l.setAttribute(c,s[c])}}for(let c=u;cu)throw new RangeError("Content hole must be the only child of its parent node");return{dom:l,contentDOM:l}}else{let{dom:g,contentDOM:h}=es.renderSpec(t,d,r);if(l.appendChild(g),h){if(o)throw new RangeError("Multiple content holes");o=h}}}return{dom:l,contentDOM:o}}static fromSchema(t){return t.cached.domSerializer||(t.cached.domSerializer=new es(this.nodesFromSchema(t),this.marksFromSchema(t)))}static nodesFromSchema(t){let n=iH(t.nodes);return n.text||(n.text=r=>r.text),n}static marksFromSchema(t){return iH(t.marks)}}function iH(e){let t={};for(let n in e){let r=e[n].spec.toDOM;r&&(t[n]=r)}return t}function fQ(e){return e.document||window.document}const SP=65535,xP=Math.pow(2,16);function hZe(e,t){return e+t*xP}function aH(e){return e&SP}function fZe(e){return(e-(e&SP))/xP}const GP=1,kP=2,BC=4,DP=8;class ZF{constructor(t,n,r){this.pos=t,this.delInfo=n,this.recover=r}get deleted(){return(this.delInfo&DP)>0}get deletedBefore(){return(this.delInfo&(GP|BC))>0}get deletedAfter(){return(this.delInfo&(kP|BC))>0}get deletedAcross(){return(this.delInfo&BC)>0}}class Ja{constructor(t,n=!1){if(this.ranges=t,this.inverted=n,!t.length&&Ja.empty)return Ja.empty}recover(t){let n=0,r=aH(t);if(!this.inverted)for(let i=0;it)break;let u=this.ranges[l+a],c=this.ranges[l+o],d=s+u;if(t<=d){let g=u?t==s?-1:t==d?1:n:n,h=s+i+(g<0?0:c);if(r)return h;let m=t==(n<0?s:d)?null:hZe(l/3,t-s),A=t==s?kP:t==d?GP:BC;return(n<0?t!=s:t!=d)&&(A|=DP),new ZF(h,A,m)}i+=c-u}return r?t+i:new ZF(t+i,0,null)}touches(t,n){let r=0,i=aH(n),a=this.inverted?2:1,o=this.inverted?1:2;for(let l=0;lt)break;let u=this.ranges[l+a],c=s+u;if(t<=c&&l==i*3)return!0;r+=this.ranges[l+o]-u}return!1}forEach(t){let n=this.inverted?2:1,r=this.inverted?1:2;for(let i=0,a=0;i=0;n--){let i=t.getMirror(n);this.appendMap(t.maps[n].invert(),i!=null&&i>n?r-i-1:void 0)}}invert(){let t=new zp;return t.appendMappingInverted(this),t}map(t,n=1){if(this.mirror)return this._map(t,n,!0);for(let r=this.from;ra&&s!o.isAtom||!l.type.allowsMarkType(this.mark.type)?o:o.mark(this.mark.addToSet(o.marks)),i),n.openStart,n.openEnd);return Yr.fromReplace(t,this.from,this.to,a)}invert(){return new ts(this.from,this.to,this.mark)}map(t){let n=t.mapResult(this.from,1),r=t.mapResult(this.to,-1);return n.deleted&&r.deleted||n.pos>=r.pos?null:new ec(n.pos,r.pos,this.mark)}merge(t){return t instanceof ec&&t.mark.eq(this.mark)&&this.from<=t.to&&this.to>=t.from?new ec(Math.min(this.from,t.from),Math.max(this.to,t.to),this.mark):null}toJSON(){return{stepType:"addMark",mark:this.mark.toJSON(),from:this.from,to:this.to}}static fromJSON(t,n){if(typeof n.from!="number"||typeof n.to!="number")throw new RangeError("Invalid input for AddMarkStep.fromJSON");return new ec(n.from,n.to,t.markFromJSON(n.mark))}}Hi.jsonID("addMark",ec);class ts extends Hi{constructor(t,n,r){super(),this.from=t,this.to=n,this.mark=r}apply(t){let n=t.slice(this.from,this.to),r=new wt(RR(n.content,i=>i.mark(this.mark.removeFromSet(i.marks)),t),n.openStart,n.openEnd);return Yr.fromReplace(t,this.from,this.to,r)}invert(){return new ec(this.from,this.to,this.mark)}map(t){let n=t.mapResult(this.from,1),r=t.mapResult(this.to,-1);return n.deleted&&r.deleted||n.pos>=r.pos?null:new ts(n.pos,r.pos,this.mark)}merge(t){return t instanceof ts&&t.mark.eq(this.mark)&&this.from<=t.to&&this.to>=t.from?new ts(Math.min(this.from,t.from),Math.max(this.to,t.to),this.mark):null}toJSON(){return{stepType:"removeMark",mark:this.mark.toJSON(),from:this.from,to:this.to}}static fromJSON(t,n){if(typeof n.from!="number"||typeof n.to!="number")throw new RangeError("Invalid input for RemoveMarkStep.fromJSON");return new ts(n.from,n.to,t.markFromJSON(n.mark))}}Hi.jsonID("removeMark",ts);class tc extends Hi{constructor(t,n){super(),this.pos=t,this.mark=n}apply(t){let n=t.nodeAt(this.pos);if(!n)return Yr.fail("No node at mark step's position");let r=n.type.create(n.attrs,null,this.mark.addToSet(n.marks));return Yr.fromReplace(t,this.pos,this.pos+1,new wt(je.from(r),0,n.isLeaf?0:1))}invert(t){let n=t.nodeAt(this.pos);if(n){let r=this.mark.addToSet(n.marks);if(r.length==n.marks.length){for(let i=0;ir.pos?null:new li(n.pos,r.pos,i,a,this.slice,this.insert,this.structure)}toJSON(){let t={stepType:"replaceAround",from:this.from,to:this.to,gapFrom:this.gapFrom,gapTo:this.gapTo,insert:this.insert};return this.slice.size&&(t.slice=this.slice.toJSON()),this.structure&&(t.structure=!0),t}static fromJSON(t,n){if(typeof n.from!="number"||typeof n.to!="number"||typeof n.gapFrom!="number"||typeof n.gapTo!="number"||typeof n.insert!="number")throw new RangeError("Invalid input for ReplaceAroundStep.fromJSON");return new li(n.from,n.to,n.gapFrom,n.gapTo,wt.fromJSON(t,n.slice),n.insert,!!n.structure)}}Hi.jsonID("replaceAround",li);function HF(e,t,n){let r=e.resolve(t),i=n-t,a=r.depth;for(;i>0&&a>0&&r.indexAfter(a)==r.node(a).childCount;)a--,i--;if(i>0){let o=r.node(a).maybeChild(r.indexAfter(a));for(;i>0;){if(!o||o.isLeaf)return!0;o=o.firstChild,i--}}return!1}function mZe(e,t,n,r){let i=[],a=[],o,l;e.doc.nodesBetween(t,n,(s,u,c)=>{if(!s.isInline)return;let d=s.marks;if(!r.isInSet(d)&&c.type.allowsMarkType(r.type)){let g=Math.max(u,t),h=Math.min(u+s.nodeSize,n),m=r.addToSet(d);for(let A=0;Ae.step(s)),a.forEach(s=>e.step(s))}function AZe(e,t,n,r){let i=[],a=0;e.doc.nodesBetween(t,n,(o,l)=>{if(!o.isInline)return;a++;let s=null;if(r instanceof Y3){let u=o.marks,c;for(;c=r.isInSet(u);)(s||(s=[])).push(c),u=c.removeFromSet(u)}else r?r.isInSet(o.marks)&&(s=[r]):s=o.marks;if(s&&s.length){let u=Math.min(l+o.nodeSize,n);for(let c=0;ce.step(new ts(o.from,o.to,o.style)))}function NP(e,t,n,r=n.contentMatch,i=!0){let a=e.doc.nodeAt(t),o=[],l=t+1;for(let s=0;s=0;s--)e.step(o[s])}function CZe(e,t,n){return(t==0||e.canReplace(t,e.childCount))&&(n==e.childCount||e.canReplace(0,n))}function z1(e){let n=e.parent.content.cutByIndex(e.startIndex,e.endIndex);for(let r=e.depth;;--r){let i=e.$from.node(r),a=e.$from.index(r),o=e.$to.indexAfter(r);if(rn;m--)A||r.index(m)>0?(A=!0,c=je.from(r.node(m).copy(c)),d++):s--;let g=je.empty,h=0;for(let m=a,A=!1;m>n;m--)A||i.after(m+1)=0;o--){if(r.size){let l=n[o].type.contentMatch.matchFragment(r);if(!l||!l.validEnd)throw new RangeError("Wrapper type given to Transform.wrap does not form valid content of its parent wrapper")}r=je.from(n[o].type.create(n[o].attrs,r))}let i=t.start,a=t.end;e.step(new li(i,a,i,a,new wt(r,0,0),n.length,!0))}function KZe(e,t,n,r,i){if(!r.isTextblock)throw new RangeError("Type given to setBlockType should be a textblock");let a=e.steps.length;e.doc.nodesBetween(t,n,(o,l)=>{if(o.isTextblock&&!o.hasMarkup(r,i)&&yZe(e.doc,e.mapping.slice(a).map(l),r)){let s=null;if(r.schema.linebreakReplacement){let g=r.whitespace=="pre",h=!!r.contentMatch.matchType(r.schema.linebreakReplacement);g&&!h?s=!1:!g&&h&&(s=!0)}s===!1&&WZe(e,o,l,a),NP(e,e.mapping.slice(a).map(l,1),r,void 0,s===null);let u=e.mapping.slice(a),c=u.map(l,1),d=u.map(l+o.nodeSize,1);return e.step(new li(c,d,c+1,d-1,new wt(je.from(r.create(i,null,o.marks)),0,0),1,!0)),s===!0&&QZe(e,o,l,a),!1}})}function QZe(e,t,n,r){t.forEach((i,a)=>{if(i.isText){let o,l=/\r?\n|\r/g;for(;o=l.exec(i.text);){let s=e.mapping.slice(r).map(n+1+a+o.index);e.replaceWith(s,s+1,t.type.schema.linebreakReplacement.create())}}})}function WZe(e,t,n,r){t.forEach((i,a)=>{if(i.type==i.type.schema.linebreakReplacement){let o=e.mapping.slice(r).map(n+1+a);e.replaceWith(o,o+1,t.type.schema.text(` +`))}})}function yZe(e,t,n){let r=e.resolve(t),i=r.index();return r.parent.canReplaceWith(i,i+1,n)}function FZe(e,t,n,r,i){let a=e.doc.nodeAt(t);if(!a)throw new RangeError("No node at given position");n||(n=a.type);let o=n.create(r,null,i||a.marks);if(a.isLeaf)return e.replaceWith(t,t+a.nodeSize,o);if(!n.validContent(a.content))throw new RangeError("Invalid content for node type "+n.name);e.step(new li(t,t+a.nodeSize,t+1,t+a.nodeSize-1,new wt(je.from(o),0,0),1,!0))}function Pp(e,t,n=1,r){let i=e.resolve(t),a=i.depth-n,o=r&&r[r.length-1]||i.parent;if(a<0||i.parent.type.spec.isolating||!i.parent.canReplace(i.index(),i.parent.childCount)||!o.type.validContent(i.parent.content.cutByIndex(i.index(),i.parent.childCount)))return!1;for(let u=i.depth-1,c=n-2;u>a;u--,c--){let d=i.node(u),g=i.index(u);if(d.type.spec.isolating)return!1;let h=d.content.cutByIndex(g,d.childCount),m=r&&r[c+1];m&&(h=h.replaceChild(0,m.type.create(m.attrs)));let A=r&&r[c]||d;if(!d.canReplace(g+1,d.childCount)||!A.type.validContent(h))return!1}let l=i.indexAfter(a),s=r&&r[0];return i.node(a).canReplaceWith(l,l,s?s.type:i.node(a+1).type)}function EZe(e,t,n=1,r){let i=e.doc.resolve(t),a=je.empty,o=je.empty;for(let l=i.depth,s=i.depth-n,u=n-1;l>s;l--,u--){a=je.from(i.node(l).copy(a));let c=r&&r[u];o=je.from(c?c.type.create(c.attrs,o):i.node(l).copy(o))}e.step(new ai(t,t,new wt(a.append(o),n,n),!0))}function Cd(e,t){let n=e.resolve(t),r=n.index();return HP(n.nodeBefore,n.nodeAfter)&&n.parent.canReplace(r,r+1)}function HP(e,t){return!!(e&&t&&!e.isLeaf&&e.canAppend(t))}function I3(e,t,n=-1){let r=e.resolve(t);for(let i=r.depth;;i--){let a,o,l=r.index(i);if(i==r.depth?(a=r.nodeBefore,o=r.nodeAfter):n>0?(a=r.node(i+1),l++,o=r.node(i).maybeChild(l)):(a=r.node(i).maybeChild(l-1),o=r.node(i+1)),a&&!a.isTextblock&&HP(a,o)&&r.node(i).canReplace(l,l+1))return t;if(i==0)break;t=n<0?r.before(i):r.after(i)}}function RZe(e,t,n){let r=new ai(t-n,t+n,wt.empty,!0);e.step(r)}function SZe(e,t,n){let r=e.resolve(t);if(r.parent.canReplaceWith(r.index(),r.index(),n))return t;if(r.parentOffset==0)for(let i=r.depth-1;i>=0;i--){let a=r.index(i);if(r.node(i).canReplaceWith(a,a,n))return r.before(i+1);if(a>0)return null}if(r.parentOffset==r.parent.content.size)for(let i=r.depth-1;i>=0;i--){let a=r.indexAfter(i);if(r.node(i).canReplaceWith(a,a,n))return r.after(i+1);if(a=0;o--){let l=o==r.depth?0:r.pos<=(r.start(o+1)+r.end(o+1))/2?-1:1,s=r.index(o)+(l>0?1:0),u=r.node(o),c=!1;if(a==1)c=u.canReplace(s,s,i);else{let d=u.contentMatchAt(s).findWrapping(i.firstChild.type);c=d&&u.canReplaceWith(s,s,d[0])}if(c)return l==0?r.pos:l<0?r.before(o+1):r.after(o+1)}return null}function U3(e,t,n=t,r=wt.empty){if(t==n&&!r.size)return null;let i=e.resolve(t),a=e.resolve(n);return XP(i,a,r)?new ai(t,n,r):new GZe(i,a,r).fit()}function XP(e,t,n){return!n.openStart&&!n.openEnd&&e.start()==t.start()&&e.parent.canReplace(e.index(),t.index(),n.content)}class GZe{constructor(t,n,r){this.$from=t,this.$to=n,this.unplaced=r,this.frontier=[],this.placed=je.empty;for(let i=0;i<=t.depth;i++){let a=t.node(i);this.frontier.push({type:a.type,match:a.contentMatchAt(t.indexAfter(i))})}for(let i=t.depth;i>0;i--)this.placed=je.from(t.node(i).copy(this.placed))}get depth(){return this.frontier.length-1}fit(){for(;this.unplaced.size;){let u=this.findFittable();u?this.placeNodes(u):this.openMore()||this.dropNode()}let t=this.mustMoveInline(),n=this.placed.size-this.depth-this.$from.depth,r=this.$from,i=this.close(t<0?this.$to:r.doc.resolve(t));if(!i)return null;let a=this.placed,o=r.depth,l=i.depth;for(;o&&l&&a.childCount==1;)a=a.firstChild.content,o--,l--;let s=new wt(a,o,l);return t>-1?new li(r.pos,t,this.$to.pos,this.$to.end(),s,n):s.size||r.pos!=this.$to.pos?new ai(r.pos,i.pos,s):null}findFittable(){let t=this.unplaced.openStart;for(let n=this.unplaced.content,r=0,i=this.unplaced.openEnd;r1&&(i=0),a.type.spec.isolating&&i<=r){t=r;break}n=a.content}for(let n=1;n<=2;n++)for(let r=n==1?t:this.unplaced.openStart;r>=0;r--){let i,a=null;r?(a=AQ(this.unplaced.content,r-1).firstChild,i=a.content):i=this.unplaced.content;let o=i.firstChild;for(let l=this.depth;l>=0;l--){let{type:s,match:u}=this.frontier[l],c,d=null;if(n==1&&(o?u.matchType(o.type)||(d=u.fillBefore(je.from(o),!1)):a&&s.compatibleContent(a.type)))return{sliceDepth:r,frontierDepth:l,parent:a,inject:d};if(n==2&&o&&(c=u.findWrapping(o.type)))return{sliceDepth:r,frontierDepth:l,parent:a,wrap:c};if(a&&u.matchType(a.type))break}}}openMore(){let{content:t,openStart:n,openEnd:r}=this.unplaced,i=AQ(t,n);return!i.childCount||i.firstChild.isLeaf?!1:(this.unplaced=new wt(t,n+1,Math.max(r,i.size+n>=t.size-r?n+1:0)),!0)}dropNode(){let{content:t,openStart:n,openEnd:r}=this.unplaced,i=AQ(t,n);if(i.childCount<=1&&n>0){let a=t.size-n<=n+i.size;this.unplaced=new wt(dh(t,n-1,1),n-1,a?n-1:r)}else this.unplaced=new wt(dh(t,n,1),n,r)}placeNodes({sliceDepth:t,frontierDepth:n,parent:r,inject:i,wrap:a}){for(;this.depth>n;)this.closeFrontierNode();if(a)for(let A=0;A1||s==0||A.content.size)&&(d=B,c.push(LP(A.mark(g.allowedMarks(A.marks)),u==1?s:0,u==l.childCount?h:-1)))}let m=u==l.childCount;m||(h=-1),this.placed=ph(this.placed,n,je.from(c)),this.frontier[n].match=d,m&&h<0&&r&&r.type==this.frontier[this.depth].type&&this.frontier.length>1&&this.closeFrontierNode();for(let A=0,B=l;A1&&i==this.$to.end(--r);)++i;return i}findCloseLevel(t){e:for(let n=Math.min(this.depth,t.depth);n>=0;n--){let{match:r,type:i}=this.frontier[n],a=n=0;l--){let{match:s,type:u}=this.frontier[l],c=CQ(t,l,u,s,!0);if(!c||c.childCount)continue e}return{depth:n,fit:o,move:a?t.doc.resolve(t.after(n+1)):t}}}}close(t){let n=this.findCloseLevel(t);if(!n)return null;for(;this.depth>n.depth;)this.closeFrontierNode();n.fit.childCount&&(this.placed=ph(this.placed,n.depth,n.fit)),t=n.move;for(let r=n.depth+1;r<=t.depth;r++){let i=t.node(r),a=i.type.contentMatch.fillBefore(i.content,!0,t.index(r));this.openFrontierNode(i.type,i.attrs,a)}return t}openFrontierNode(t,n=null,r){let i=this.frontier[this.depth];i.match=i.match.matchType(t),this.placed=ph(this.placed,this.depth,je.from(t.create(n,r))),this.frontier.push({type:t,match:t.contentMatch})}closeFrontierNode(){let n=this.frontier.pop().match.fillBefore(je.empty,!0);n.childCount&&(this.placed=ph(this.placed,this.frontier.length,n))}}function dh(e,t,n){return t==0?e.cutByIndex(n,e.childCount):e.replaceChild(0,e.firstChild.copy(dh(e.firstChild.content,t-1,n)))}function ph(e,t,n){return t==0?e.append(n):e.replaceChild(e.childCount-1,e.lastChild.copy(ph(e.lastChild.content,t-1,n)))}function AQ(e,t){for(let n=0;n1&&(r=r.replaceChild(0,LP(r.firstChild,t-1,r.childCount==1?n-1:0))),t>0&&(r=e.type.contentMatch.fillBefore(r).append(r),n<=0&&(r=r.append(e.type.contentMatch.matchFragment(r).fillBefore(je.empty,!0)))),e.copy(r)}function CQ(e,t,n,r,i){let a=e.node(t),o=i?e.indexAfter(t):e.index(t);if(o==a.childCount&&!n.compatibleContent(a.type))return null;let l=r.fillBefore(a.content,!0,o);return l&&!kZe(n,a.content,o)?l:null}function kZe(e,t,n){for(let r=n;r0;g--,h--){let m=i.node(g).type.spec;if(m.defining||m.definingAsContext||m.isolating)break;o.indexOf(g)>-1?l=g:i.before(g)==h&&o.splice(1,0,-g)}let s=o.indexOf(l),u=[],c=r.openStart;for(let g=r.content,h=0;;h++){let m=g.firstChild;if(u.push(m),h==r.openStart)break;g=m.content}for(let g=c-1;g>=0;g--){let h=u[g],m=DZe(h.type);if(m&&!h.sameMarkup(i.node(Math.abs(l)-1)))c=g;else if(m||!h.type.isTextblock)break}for(let g=r.openStart;g>=0;g--){let h=(g+c+1)%(r.openStart+1),m=u[h];if(m)for(let A=0;A=0&&(e.replace(t,n,r),!(e.steps.length>d));g--){let h=o[g];h<0||(t=i.before(h),n=a.after(h))}}function MP(e,t,n,r,i){if(tr){let a=i.contentMatchAt(0),o=a.fillBefore(e).append(e);e=o.append(a.matchFragment(o).fillBefore(je.empty,!0))}return e}function ZZe(e,t,n,r){if(!r.isInline&&t==n&&e.doc.resolve(t).parent.content.size){let i=SZe(e.doc,t,r.type);i!=null&&(t=n=i)}e.replaceRange(t,n,new wt(je.from(r),0,0))}function HZe(e,t,n){let r=e.doc.resolve(t),i=e.doc.resolve(n),a=TP(r,i);for(let o=0;o0&&(s||r.node(l-1).canReplace(r.index(l-1),i.indexAfter(l-1))))return e.delete(r.before(l),i.after(l))}for(let o=1;o<=r.depth&&o<=i.depth;o++)if(t-r.start(o)==r.depth-o&&n>r.end(o)&&i.end(o)-n!=i.depth-o)return e.delete(r.before(o),n);e.delete(t,n)}function TP(e,t){let n=[],r=Math.min(e.depth,t.depth);for(let i=r;i>=0;i--){let a=e.start(i);if(at.pos+(t.depth-i)||e.node(i).type.spec.isolating||t.node(i).type.spec.isolating)break;(a==t.start(i)||i==e.depth&&i==t.depth&&e.parent.inlineContent&&t.parent.inlineContent&&i&&t.start(i-1)==a-1)&&n.push(i)}return n}class jp extends Hi{constructor(t,n,r){super(),this.pos=t,this.attr=n,this.value=r}apply(t){let n=t.nodeAt(this.pos);if(!n)return Yr.fail("No node at attribute step's position");let r=Object.create(null);for(let a in n.attrs)r[a]=n.attrs[a];r[this.attr]=this.value;let i=n.type.create(r,null,n.marks);return Yr.fromReplace(t,this.pos,this.pos+1,new wt(je.from(i),0,n.isLeaf?0:1))}getMap(){return Ja.empty}invert(t){return new jp(this.pos,this.attr,t.nodeAt(this.pos).attrs[this.attr])}map(t){let n=t.mapResult(this.pos,1);return n.deletedAfter?null:new jp(n.pos,this.attr,this.value)}toJSON(){return{stepType:"attr",pos:this.pos,attr:this.attr,value:this.value}}static fromJSON(t,n){if(typeof n.pos!="number"||typeof n.attr!="string")throw new RangeError("Invalid input for AttrStep.fromJSON");return new jp(n.pos,n.attr,n.value)}}Hi.jsonID("attr",jp);class Sf extends Hi{constructor(t,n){super(),this.attr=t,this.value=n}apply(t){let n=Object.create(null);for(let i in t.attrs)n[i]=t.attrs[i];n[this.attr]=this.value;let r=t.type.create(n,t.content,t.marks);return Yr.ok(r)}getMap(){return Ja.empty}invert(t){return new Sf(this.attr,t.attrs[this.attr])}map(t){return this}toJSON(){return{stepType:"docAttr",attr:this.attr,value:this.value}}static fromJSON(t,n){if(typeof n.attr!="string")throw new RangeError("Invalid input for DocAttrStep.fromJSON");return new Sf(n.attr,n.value)}}Hi.jsonID("docAttr",Sf);let Q1=class extends Error{};Q1=function e(t){let n=Error.call(this,t);return n.__proto__=e.prototype,n};Q1.prototype=Object.create(Error.prototype);Q1.prototype.constructor=Q1;Q1.prototype.name="TransformError";class XZe{constructor(t){this.doc=t,this.steps=[],this.docs=[],this.mapping=new zp}get before(){return this.docs.length?this.docs[0]:this.doc}step(t){let n=this.maybeStep(t);if(n.failed)throw new Q1(n.failed);return this}maybeStep(t){let n=t.apply(this.doc);return n.failed||this.addStep(t,n.doc),n}get docChanged(){return this.steps.length>0}addStep(t,n){this.docs.push(this.doc),this.steps.push(t),this.mapping.appendMap(t.getMap()),this.doc=n}replace(t,n=t,r=wt.empty){let i=U3(this.doc,t,n,r);return i&&this.step(i),this}replaceWith(t,n,r){return this.replace(t,n,new wt(je.from(r),0,0))}delete(t,n){return this.replace(t,n,wt.empty)}insert(t,n){return this.replaceWith(t,t,n)}replaceRange(t,n,r){return NZe(this,t,n,r),this}replaceRangeWith(t,n,r){return ZZe(this,t,n,r),this}deleteRange(t,n){return HZe(this,t,n),this}lift(t,n){return BZe(this,t,n),this}join(t,n=1){return RZe(this,t,n),this}wrap(t,n){return vZe(this,t,n),this}setBlockType(t,n=t,r,i=null){return KZe(this,t,n,r,i),this}setNodeMarkup(t,n,r=null,i){return FZe(this,t,n,r,i),this}setNodeAttribute(t,n,r){return this.step(new jp(t,n,r)),this}setDocAttribute(t,n){return this.step(new Sf(t,n)),this}addNodeMark(t,n){return this.step(new tc(t,n)),this}removeNodeMark(t,n){if(!(n instanceof In)){let r=this.doc.nodeAt(t);if(!r)throw new RangeError("No node at position "+t);if(n=n.isInSet(r.marks),!n)return this}return this.step(new K1(t,n)),this}split(t,n=1,r){return EZe(this,t,n,r),this}addMark(t,n,r){return mZe(this,t,n,r),this}removeMark(t,n,r){return AZe(this,t,n,r),this}clearIncompatible(t,n,r){return NP(this,t,n,r),this}}const BQ=Object.create(null);class wn{constructor(t,n,r){this.$anchor=t,this.$head=n,this.ranges=r||[new LZe(t.min(n),t.max(n))]}get anchor(){return this.$anchor.pos}get head(){return this.$head.pos}get from(){return this.$from.pos}get to(){return this.$to.pos}get $from(){return this.ranges[0].$from}get $to(){return this.ranges[0].$to}get empty(){let t=this.ranges;for(let n=0;n=0;a--){let o=n<0?up(t.node(0),t.node(a),t.before(a+1),t.index(a),n,r):up(t.node(0),t.node(a),t.after(a+1),t.index(a)+1,n,r);if(o)return o}return null}static near(t,n=1){return this.findFrom(t,n)||this.findFrom(t,-n)||new wl(t.node(0))}static atStart(t){return up(t,t,0,0,1)||new wl(t)}static atEnd(t){return up(t,t,t.content.size,t.childCount,-1)||new wl(t)}static fromJSON(t,n){if(!n||!n.type)throw new RangeError("Invalid input for Selection.fromJSON");let r=BQ[n.type];if(!r)throw new RangeError(`No selection type ${n.type} defined`);return r.fromJSON(t,n)}static jsonID(t,n){if(t in BQ)throw new RangeError("Duplicate use of selection JSON ID "+t);return BQ[t]=n,n.prototype.jsonID=t,n}getBookmark(){return fn.between(this.$anchor,this.$head).getBookmark()}}wn.prototype.visible=!0;class LZe{constructor(t,n){this.$from=t,this.$to=n}}let lH=!1;function sH(e){!lH&&!e.parent.inlineContent&&(lH=!0,console.warn("TextSelection endpoint not pointing into a node with inline content ("+e.parent.type.name+")"))}class fn extends wn{constructor(t,n=t){sH(t),sH(n),super(t,n)}get $cursor(){return this.$anchor.pos==this.$head.pos?this.$head:null}map(t,n){let r=t.resolve(n.map(this.head));if(!r.parent.inlineContent)return wn.near(r);let i=t.resolve(n.map(this.anchor));return new fn(i.parent.inlineContent?i:r,r)}replace(t,n=wt.empty){if(super.replace(t,n),n==wt.empty){let r=this.$from.marksAcross(this.$to);r&&t.ensureMarks(r)}}eq(t){return t instanceof fn&&t.anchor==this.anchor&&t.head==this.head}getBookmark(){return new O3(this.anchor,this.head)}toJSON(){return{type:"text",anchor:this.anchor,head:this.head}}static fromJSON(t,n){if(typeof n.anchor!="number"||typeof n.head!="number")throw new RangeError("Invalid input for TextSelection.fromJSON");return new fn(t.resolve(n.anchor),t.resolve(n.head))}static create(t,n,r=n){let i=t.resolve(n);return new this(i,r==n?i:t.resolve(r))}static between(t,n,r){let i=t.pos-n.pos;if((!r||i)&&(r=i>=0?1:-1),!n.parent.inlineContent){let a=wn.findFrom(n,r,!0)||wn.findFrom(n,-r,!0);if(a)n=a.$head;else return wn.near(n,r)}return t.parent.inlineContent||(i==0?t=n:(t=(wn.findFrom(t,-r,!0)||wn.findFrom(t,r,!0)).$anchor,t.pos0?0:1);i>0?o=0;o+=i){let l=t.child(o);if(l.isAtom){if(!a&&Ut.isSelectable(l))return Ut.create(e,n-(i<0?l.nodeSize:0))}else{let s=up(e,l,n+i,i<0?l.childCount:0,i,a);if(s)return s}n+=l.nodeSize*i}return null}function uH(e,t,n){let r=e.steps.length-1;if(r{o==null&&(o=c)}),e.setSelection(wn.near(e.doc.resolve(o),n))}const cH=1,G2=2,dH=4;class TZe extends XZe{constructor(t){super(t.doc),this.curSelectionFor=0,this.updated=0,this.meta=Object.create(null),this.time=Date.now(),this.curSelection=t.selection,this.storedMarks=t.storedMarks}get selection(){return this.curSelectionFor0}setStoredMarks(t){return this.storedMarks=t,this.updated|=G2,this}ensureMarks(t){return In.sameSet(this.storedMarks||this.selection.$from.marks(),t)||this.setStoredMarks(t),this}addStoredMark(t){return this.ensureMarks(t.addToSet(this.storedMarks||this.selection.$head.marks()))}removeStoredMark(t){return this.ensureMarks(t.removeFromSet(this.storedMarks||this.selection.$head.marks()))}get storedMarksSet(){return(this.updated&G2)>0}addStep(t,n){super.addStep(t,n),this.updated=this.updated&~G2,this.storedMarks=null}setTime(t){return this.time=t,this}replaceSelection(t){return this.selection.replace(this,t),this}replaceSelectionWith(t,n=!0){let r=this.selection;return n&&(t=t.mark(this.storedMarks||(r.empty?r.$from.marks():r.$from.marksAcross(r.$to)||In.none))),r.replaceWith(this,t),this}deleteSelection(){return this.selection.replace(this),this}insertText(t,n,r){let i=this.doc.type.schema;if(n==null)return t?this.replaceSelectionWith(i.text(t),!0):this.deleteSelection();{if(r==null&&(r=n),r=r??n,!t)return this.deleteRange(n,r);let a=this.storedMarks;if(!a){let o=this.doc.resolve(n);a=r==n?o.marks():o.marksAcross(this.doc.resolve(r))}return this.replaceRangeWith(n,r,i.text(t,a)),this.selection.empty||this.setSelection(wn.near(this.selection.$to)),this}}setMeta(t,n){return this.meta[typeof t=="string"?t:t.key]=n,this}getMeta(t){return this.meta[typeof t=="string"?t:t.key]}get isGeneric(){for(let t in this.meta)return!1;return!0}scrollIntoView(){return this.updated|=dH,this}get scrolledIntoView(){return(this.updated&dH)>0}}function pH(e,t){return!t||!e?e:e.bind(t)}class gh{constructor(t,n,r){this.name=t,this.init=pH(n.init,r),this.apply=pH(n.apply,r)}}const VZe=[new gh("doc",{init(e){return e.doc||e.schema.topNodeType.createAndFill()},apply(e){return e.doc}}),new gh("selection",{init(e,t){return e.selection||wn.atStart(t.doc)},apply(e){return e.selection}}),new gh("storedMarks",{init(e){return e.storedMarks||null},apply(e,t,n,r){return r.selection.$cursor?e.storedMarks:null}}),new gh("scrollToSelection",{init(){return 0},apply(e,t){return e.scrolledIntoView?t+1:t}})];class wQ{constructor(t,n){this.schema=t,this.plugins=[],this.pluginsByKey=Object.create(null),this.fields=VZe.slice(),n&&n.forEach(r=>{if(this.pluginsByKey[r.key])throw new RangeError("Adding different instances of a keyed plugin ("+r.key+")");this.plugins.push(r),this.pluginsByKey[r.key]=r,r.spec.state&&this.fields.push(new gh(r.key,r.spec.state,r))})}}class Rp{constructor(t){this.config=t}get schema(){return this.config.schema}get plugins(){return this.config.plugins}apply(t){return this.applyTransaction(t).state}filterTransaction(t,n=-1){for(let r=0;rr.toJSON())),t&&typeof t=="object")for(let r in t){if(r=="doc"||r=="selection")throw new RangeError("The JSON fields `doc` and `selection` are reserved");let i=t[r],a=i.spec.state;a&&a.toJSON&&(n[r]=a.toJSON.call(i,this[i.key]))}return n}static fromJSON(t,n,r){if(!n)throw new RangeError("Invalid input for EditorState.fromJSON");if(!t.schema)throw new RangeError("Required config field 'schema' missing");let i=new wQ(t.schema,t.plugins),a=new Rp(i);return i.fields.forEach(o=>{if(o.name=="doc")a.doc=M0.fromJSON(t.schema,n.doc);else if(o.name=="selection")a.selection=wn.fromJSON(a.doc,n.selection);else if(o.name=="storedMarks")n.storedMarks&&(a.storedMarks=n.storedMarks.map(t.schema.markFromJSON));else{if(r)for(let l in r){let s=r[l],u=s.spec.state;if(s.key==o.name&&u&&u.fromJSON&&Object.prototype.hasOwnProperty.call(n,l)){a[o.name]=u.fromJSON.call(s,t,n[l],a);return}}a[o.name]=o.init(t,a)}}),a}}function VP(e,t,n){for(let r in e){let i=e[r];i instanceof Function?i=i.bind(t):r=="handleDOMEvents"&&(i=VP(i,t,{})),n[r]=i}return n}class Rl{constructor(t){this.spec=t,this.props={},t.props&&VP(t.props,this,this.props),this.key=t.key?t.key.key:YP("plugin")}getState(t){return t[this.key]}}const bQ=Object.create(null);function YP(e){return e in bQ?e+"$"+ ++bQ[e]:(bQ[e]=0,e+"$")}class Sl{constructor(t="key"){this.key=YP(t)}get(t){return t.config.pluginsByKey[this.key]}getState(t){return t[this.key]}}const Bi=function(e){for(var t=0;;t++)if(e=e.previousSibling,!e)return t},xf=function(e){let t=e.assignedSlot||e.parentNode;return t&&t.nodeType==11?t.host:t};let XF=null;const Ms=function(e,t,n){let r=XF||(XF=document.createRange());return r.setEnd(e,n??e.nodeValue.length),r.setStart(e,t||0),r},YZe=function(){XF=null},id=function(e,t,n,r){return n&&(gH(e,t,n,r,-1)||gH(e,t,n,r,1))},IZe=/^(img|br|input|textarea|hr)$/i;function gH(e,t,n,r,i){for(;;){if(e==n&&t==r)return!0;if(t==(i<0?0:Jl(e))){let a=e.parentNode;if(!a||a.nodeType!=1||mm(e)||IZe.test(e.nodeName)||e.contentEditable=="false")return!1;t=Bi(e)+(i<0?0:1),e=a}else if(e.nodeType==1){if(e=e.childNodes[t+(i<0?-1:0)],e.contentEditable=="false")return!1;t=i<0?Jl(e):0}else return!1}}function Jl(e){return e.nodeType==3?e.nodeValue.length:e.childNodes.length}function UZe(e,t){for(;;){if(e.nodeType==3&&t)return e;if(e.nodeType==1&&t>0){if(e.contentEditable=="false")return null;e=e.childNodes[t-1],t=Jl(e)}else if(e.parentNode&&!mm(e))t=Bi(e),e=e.parentNode;else return null}}function OZe(e,t){for(;;){if(e.nodeType==3&&t2),yo=W1||(ds?/Mac/.test(ds.platform):!1),_Ze=ds?/Win/.test(ds.platform):!1,ul=/Android \d/.test(Oc),Am=!!hH&&"webkitFontSmoothing"in hH.documentElement.style,$Ze=Am?+(/\bAppleWebKit\/(\d+)/.exec(navigator.userAgent)||[0,0])[1]:0;function qZe(e){let t=e.defaultView&&e.defaultView.visualViewport;return t?{left:0,right:t.width,top:0,bottom:t.height}:{left:0,right:e.documentElement.clientWidth,top:0,bottom:e.documentElement.clientHeight}}function Ds(e,t){return typeof e=="number"?e:e[t]}function eHe(e){let t=e.getBoundingClientRect(),n=t.width/e.offsetWidth||1,r=t.height/e.offsetHeight||1;return{left:t.left,right:t.left+e.clientWidth*n,top:t.top,bottom:t.top+e.clientHeight*r}}function fH(e,t,n){let r=e.someProp("scrollThreshold")||0,i=e.someProp("scrollMargin")||5,a=e.dom.ownerDocument;for(let o=n||e.dom;o;o=xf(o)){if(o.nodeType!=1)continue;let l=o,s=l==a.body,u=s?qZe(a):eHe(l),c=0,d=0;if(t.topu.bottom-Ds(r,"bottom")&&(d=t.bottom-t.top>u.bottom-u.top?t.top+Ds(i,"top")-u.top:t.bottom-u.bottom+Ds(i,"bottom")),t.leftu.right-Ds(r,"right")&&(c=t.right-u.right+Ds(i,"right")),c||d)if(s)a.defaultView.scrollBy(c,d);else{let g=l.scrollLeft,h=l.scrollTop;d&&(l.scrollTop+=d),c&&(l.scrollLeft+=c);let m=l.scrollLeft-g,A=l.scrollTop-h;t={left:t.left-m,top:t.top-A,right:t.right-m,bottom:t.bottom-A}}if(s||/^(fixed|sticky)$/.test(getComputedStyle(o).position))break}}function tHe(e){let t=e.dom.getBoundingClientRect(),n=Math.max(0,t.top),r,i;for(let a=(t.left+t.right)/2,o=n+1;o=n-20){r=l,i=s.top;break}}return{refDOM:r,refTop:i,stack:UP(e.dom)}}function UP(e){let t=[],n=e.ownerDocument;for(let r=e;r&&(t.push({dom:r,top:r.scrollTop,left:r.scrollLeft}),e!=n);r=xf(r));return t}function nHe({refDOM:e,refTop:t,stack:n}){let r=e?e.getBoundingClientRect().top:0;OP(n,r==0?0:r-t)}function OP(e,t){for(let n=0;n=l){o=Math.max(m.bottom,o),l=Math.min(m.top,l);let A=m.left>t.left?m.left-t.left:m.right=(m.left+m.right)/2?1:0));continue}}else m.top>t.top&&!s&&m.left<=t.left&&m.right>=t.left&&(s=c,u={left:Math.max(m.left,Math.min(m.right,t.left)),top:m.top});!n&&(t.left>=m.right&&t.top>=m.top||t.left>=m.left&&t.top>=m.bottom)&&(a=d+1)}}return!n&&s&&(n=s,i=u,r=0),n&&n.nodeType==3?iHe(n,i):!n||r&&n.nodeType==1?{node:e,offset:a}:JP(n,i)}function iHe(e,t){let n=e.nodeValue.length,r=document.createRange();for(let i=0;i=(a.left+a.right)/2?1:0)}}return{node:e,offset:0}}function xR(e,t){return e.left>=t.left-1&&e.left<=t.right+1&&e.top>=t.top-1&&e.top<=t.bottom+1}function aHe(e,t){let n=e.parentNode;return n&&/^li$/i.test(n.nodeName)&&t.left(o.left+o.right)/2?1:-1}return e.docView.posFromDOM(r,i,a)}function lHe(e,t,n,r){let i=-1;for(let a=t,o=!1;a!=e.dom;){let l=e.docView.nearestDesc(a,!0);if(!l)return null;if(l.dom.nodeType==1&&(l.node.isBlock&&l.parent||!l.contentDOM)){let s=l.dom.getBoundingClientRect();if(l.node.isBlock&&l.parent&&(!o&&s.left>r.left||s.top>r.top?i=l.posBefore:(!o&&s.right-1?i:e.docView.posFromDOM(t,n,-1)}function zP(e,t,n){let r=e.childNodes.length;if(r&&n.topt.top&&i++}let u;Am&&i&&r.nodeType==1&&(u=r.childNodes[i-1]).nodeType==1&&u.contentEditable=="false"&&u.getBoundingClientRect().top>=t.top&&i--,r==e.dom&&i==r.childNodes.length-1&&r.lastChild.nodeType==1&&t.top>r.lastChild.getBoundingClientRect().bottom?l=e.state.doc.content.size:(i==0||r.nodeType!=1||r.childNodes[i-1].nodeName!="BR")&&(l=lHe(e,r,i,t))}l==null&&(l=oHe(e,o,t));let s=e.docView.nearestDesc(o,!0);return{pos:l,inside:s?s.posAtStart-s.border:-1}}function mH(e){return e.top=0&&i==r.nodeValue.length?(s--,c=1):n<0?s--:u++,_g(Nu(Ms(r,s,u),c),c<0)}if(!e.state.doc.resolve(t-(a||0)).parent.inlineContent){if(a==null&&i&&(n<0||i==Jl(r))){let s=r.childNodes[i-1];if(s.nodeType==1)return vQ(s.getBoundingClientRect(),!1)}if(a==null&&i=0)}if(a==null&&i&&(n<0||i==Jl(r))){let s=r.childNodes[i-1],u=s.nodeType==3?Ms(s,Jl(s)-(o?0:1)):s.nodeType==1&&(s.nodeName!="BR"||!s.nextSibling)?s:null;if(u)return _g(Nu(u,1),!1)}if(a==null&&i=0)}function _g(e,t){if(e.width==0)return e;let n=t?e.left:e.right;return{top:e.top,bottom:e.bottom,left:n,right:n}}function vQ(e,t){if(e.height==0)return e;let n=t?e.top:e.bottom;return{top:n,bottom:n,left:e.left,right:e.right}}function jP(e,t,n){let r=e.state,i=e.root.activeElement;r!=t&&e.updateState(t),i!=e.dom&&e.focus();try{return n()}finally{r!=t&&e.updateState(r),i!=e.dom&&i&&i.focus()}}function cHe(e,t,n){let r=t.selection,i=n=="up"?r.$from:r.$to;return jP(e,t,()=>{let{node:a}=e.docView.domFromPos(i.pos,n=="up"?-1:1);for(;;){let l=e.docView.nearestDesc(a,!0);if(!l)break;if(l.node.isBlock){a=l.contentDOM||l.dom;break}a=l.dom.parentNode}let o=PP(e,i.pos,1);for(let l=a.firstChild;l;l=l.nextSibling){let s;if(l.nodeType==1)s=l.getClientRects();else if(l.nodeType==3)s=Ms(l,0,l.nodeValue.length).getClientRects();else continue;for(let u=0;uc.top+1&&(n=="up"?o.top-c.top>(c.bottom-o.top)*2:c.bottom-o.bottom>(o.bottom-c.top)*2))return!1}}return!0})}const dHe=/[\u0590-\u08ac]/;function pHe(e,t,n){let{$head:r}=t.selection;if(!r.parent.isTextblock)return!1;let i=r.parentOffset,a=!i,o=i==r.parent.content.size,l=e.domSelection();return!dHe.test(r.parent.textContent)||!l.modify?n=="left"||n=="backward"?a:o:jP(e,t,()=>{let{focusNode:s,focusOffset:u,anchorNode:c,anchorOffset:d}=e.domSelectionRange(),g=l.caretBidiLevel;l.modify("move",n,"character");let h=r.depth?e.docView.domAfterPos(r.before()):e.dom,{focusNode:m,focusOffset:A}=e.domSelectionRange(),B=m&&!h.contains(m.nodeType==1?m:m.parentNode)||s==m&&u==A;try{l.collapse(c,d),s&&(s!=c||u!=d)&&l.extend&&l.extend(s,u)}catch{}return g!=null&&(l.caretBidiLevel=g),B})}let AH=null,CH=null,BH=!1;function gHe(e,t,n){return AH==t&&CH==n?BH:(AH=t,CH=n,BH=n=="up"||n=="down"?cHe(e,t,n):pHe(e,t,n))}const Xo=0,wH=1,R0=2,ps=3;class Cm{constructor(t,n,r,i){this.parent=t,this.children=n,this.dom=r,this.contentDOM=i,this.dirty=Xo,r.pmViewDesc=this}matchesWidget(t){return!1}matchesMark(t){return!1}matchesNode(t,n,r){return!1}matchesHack(t){return!1}parseRule(){return null}stopEvent(t){return!1}get size(){let t=0;for(let n=0;nBi(this.contentDOM);else if(this.contentDOM&&this.contentDOM!=this.dom&&this.dom.contains(this.contentDOM))i=t.compareDocumentPosition(this.contentDOM)&2;else if(this.dom.firstChild){if(n==0)for(let a=t;;a=a.parentNode){if(a==this.dom){i=!1;break}if(a.previousSibling)break}if(i==null&&n==t.childNodes.length)for(let a=t;;a=a.parentNode){if(a==this.dom){i=!0;break}if(a.nextSibling)break}}return i??r>0?this.posAtEnd:this.posAtStart}nearestDesc(t,n=!1){for(let r=!0,i=t;i;i=i.parentNode){let a=this.getDesc(i),o;if(a&&(!n||a.node))if(r&&(o=a.nodeDOM)&&!(o.nodeType==1?o.contains(t.nodeType==1?t:t.parentNode):o==t))r=!1;else return a}}getDesc(t){let n=t.pmViewDesc;for(let r=n;r;r=r.parent)if(r==this)return n}posFromDOM(t,n,r){for(let i=t;i;i=i.parentNode){let a=this.getDesc(i);if(a)return a.localPosFromDOM(t,n,r)}return-1}descAt(t){for(let n=0,r=0;nt||o instanceof $P){i=t-a;break}a=l}if(i)return this.children[r].domFromPos(i-this.children[r].border,n);for(let a;r&&!(a=this.children[r-1]).size&&a instanceof _P&&a.side>=0;r--);if(n<=0){let a,o=!0;for(;a=r?this.children[r-1]:null,!(!a||a.dom.parentNode==this.contentDOM);r--,o=!1);return a&&n&&o&&!a.border&&!a.domAtom?a.domFromPos(a.size,n):{node:this.contentDOM,offset:a?Bi(a.dom)+1:0}}else{let a,o=!0;for(;a=r=c&&n<=u-s.border&&s.node&&s.contentDOM&&this.contentDOM.contains(s.contentDOM))return s.parseRange(t,n,c);t=o;for(let d=l;d>0;d--){let g=this.children[d-1];if(g.size&&g.dom.parentNode==this.contentDOM&&!g.emptyChildAt(1)){i=Bi(g.dom)+1;break}t-=g.size}i==-1&&(i=0)}if(i>-1&&(u>n||l==this.children.length-1)){n=u;for(let c=l+1;ch&&on){let h=l;l=s,s=h}let g=document.createRange();g.setEnd(s.node,s.offset),g.setStart(l.node,l.offset),u.removeAllRanges(),u.addRange(g)}}ignoreMutation(t){return!this.contentDOM&&t.type!="selection"}get contentLost(){return this.contentDOM&&this.contentDOM!=this.dom&&!this.dom.contains(this.contentDOM)}markDirty(t,n){for(let r=0,i=0;i=r:tr){let l=r+a.border,s=o-a.border;if(t>=l&&n<=s){this.dirty=t==r||n==o?R0:wH,t==l&&n==s&&(a.contentLost||a.dom.parentNode!=this.contentDOM)?a.dirty=ps:a.markDirty(t-l,n-l);return}else a.dirty=a.dom==a.contentDOM&&a.dom.parentNode==this.contentDOM&&!a.children.length?R0:ps}r=o}this.dirty=R0}markParentsDirty(){let t=1;for(let n=this.parent;n;n=n.parent,t++){let r=t==1?R0:wH;n.dirty{if(!a)return i;if(a.parent)return a.parent.posBeforeChild(a)})),!n.type.spec.raw){if(o.nodeType!=1){let l=document.createElement("span");l.appendChild(o),o=l}o.contentEditable="false",o.classList.add("ProseMirror-widget")}super(t,[],o,null),this.widget=n,this.widget=n,a=this}matchesWidget(t){return this.dirty==Xo&&t.type.eq(this.widget.type)}parseRule(){return{ignore:!0}}stopEvent(t){let n=this.widget.spec.stopEvent;return n?n(t):!1}ignoreMutation(t){return t.type!="selection"||this.widget.spec.ignoreSelection}destroy(){this.widget.type.destroy(this.dom),super.destroy()}get domAtom(){return!0}get side(){return this.widget.type.side}}class hHe extends Cm{constructor(t,n,r,i){super(t,[],n,null),this.textDOM=r,this.text=i}get size(){return this.text.length}localPosFromDOM(t,n){return t!=this.textDOM?this.posAtStart+(n?this.size:0):this.posAtStart+n}domFromPos(t){return{node:this.textDOM,offset:t}}ignoreMutation(t){return t.type==="characterData"&&t.target.nodeValue==t.oldValue}}class ad extends Cm{constructor(t,n,r,i){super(t,[],r,i),this.mark=n}static create(t,n,r,i){let a=i.nodeViews[n.type.name],o=a&&a(n,i,r);return(!o||!o.dom)&&(o=es.renderSpec(document,n.type.spec.toDOM(n,r))),new ad(t,n,o.dom,o.contentDOM||o.dom)}parseRule(){return this.dirty&ps||this.mark.type.spec.reparseInView?null:{mark:this.mark.type.name,attrs:this.mark.attrs,contentElement:this.contentDOM}}matchesMark(t){return this.dirty!=ps&&this.mark.eq(t)}markDirty(t,n){if(super.markDirty(t,n),this.dirty!=Xo){let r=this.parent;for(;!r.node;)r=r.parent;r.dirty0&&(a=IF(a,0,t,r));for(let l=0;l{if(!s)return o;if(s.parent)return s.parent.posBeforeChild(s)},r,i),c=u&&u.dom,d=u&&u.contentDOM;if(n.isText){if(!c)c=document.createTextNode(n.text);else if(c.nodeType!=3)throw new RangeError("Text must be rendered as a DOM text node")}else c||({dom:c,contentDOM:d}=es.renderSpec(document,n.type.spec.toDOM(n)));!d&&!n.isText&&c.nodeName!="BR"&&(c.hasAttribute("contenteditable")||(c.contentEditable="false"),n.type.spec.draggable&&(c.draggable=!0));let g=c;return c=tj(c,r,n),u?s=new fHe(t,n,r,i,c,d||null,g,u,a,o+1):n.isText?new z3(t,n,r,i,c,g,a):new Bc(t,n,r,i,c,d||null,g,a,o+1)}parseRule(){if(this.node.type.spec.reparseInView)return null;let t={node:this.node.type.name,attrs:this.node.attrs};if(this.node.type.whitespace=="pre"&&(t.preserveWhitespace="full"),!this.contentDOM)t.getContent=()=>this.node.content;else if(!this.contentLost)t.contentElement=this.contentDOM;else{for(let n=this.children.length-1;n>=0;n--){let r=this.children[n];if(this.dom.contains(r.dom.parentNode)){t.contentElement=r.dom.parentNode;break}}t.contentElement||(t.getContent=()=>je.empty)}return t}matchesNode(t,n,r){return this.dirty==Xo&&t.eq(this.node)&&YF(n,this.outerDeco)&&r.eq(this.innerDeco)}get size(){return this.node.nodeSize}get border(){return this.node.isLeaf?0:1}updateChildren(t,n){let r=this.node.inlineContent,i=n,a=t.composing?this.localCompositionInfo(t,n):null,o=a&&a.pos>-1?a:null,l=a&&a.pos<0,s=new AHe(this,o&&o.node,t);wHe(this.node,this.innerDeco,(u,c,d)=>{u.spec.marks?s.syncToMarks(u.spec.marks,r,t):u.type.side>=0&&!d&&s.syncToMarks(c==this.node.childCount?In.none:this.node.child(c).marks,r,t),s.placeWidget(u,t,i)},(u,c,d,g)=>{s.syncToMarks(u.marks,r,t);let h;s.findNodeMatch(u,c,d,g)||l&&t.state.selection.from>i&&t.state.selection.to-1&&s.updateNodeAt(u,c,d,h,t)||s.updateNextNode(u,c,d,t,g,i)||s.addNode(u,c,d,t,i),i+=u.nodeSize}),s.syncToMarks([],r,t),this.node.isTextblock&&s.addTextblockHacks(),s.destroyRest(),(s.changed||this.dirty==R0)&&(o&&this.protectLocalComposition(t,o),qP(this.contentDOM,this.children,t),W1&&bHe(this.dom))}localCompositionInfo(t,n){let{from:r,to:i}=t.state.selection;if(!(t.state.selection instanceof fn)||rn+this.node.content.size)return null;let a=t.input.compositionNode;if(!a||!this.dom.contains(a.parentNode))return null;if(this.node.inlineContent){let o=a.nodeValue,l=vHe(this.node.content,o,r-n,i-n);return l<0?null:{node:a,pos:l,text:o}}else return{node:a,pos:-1,text:""}}protectLocalComposition(t,{node:n,pos:r,text:i}){if(this.getDesc(n))return;let a=n;for(;a.parentNode!=this.contentDOM;a=a.parentNode){for(;a.previousSibling;)a.parentNode.removeChild(a.previousSibling);for(;a.nextSibling;)a.parentNode.removeChild(a.nextSibling);a.pmViewDesc&&(a.pmViewDesc=void 0)}let o=new hHe(this,a,n,i);t.input.compositionNodes.push(o),this.children=IF(this.children,r,r+i.length,t,o)}update(t,n,r,i){return this.dirty==ps||!t.sameMarkup(this.node)?!1:(this.updateInner(t,n,r,i),!0)}updateInner(t,n,r,i){this.updateOuterDeco(n),this.node=t,this.innerDeco=r,this.contentDOM&&this.updateChildren(i,this.posAtStart),this.dirty=Xo}updateOuterDeco(t){if(YF(t,this.outerDeco))return;let n=this.nodeDOM.nodeType!=1,r=this.dom;this.dom=ej(this.dom,this.nodeDOM,VF(this.outerDeco,this.node,n),VF(t,this.node,n)),this.dom!=r&&(r.pmViewDesc=void 0,this.dom.pmViewDesc=this),this.outerDeco=t}selectNode(){this.nodeDOM.nodeType==1&&this.nodeDOM.classList.add("ProseMirror-selectednode"),(this.contentDOM||!this.node.type.spec.draggable)&&(this.dom.draggable=!0)}deselectNode(){this.nodeDOM.nodeType==1&&(this.nodeDOM.classList.remove("ProseMirror-selectednode"),(this.contentDOM||!this.node.type.spec.draggable)&&this.dom.removeAttribute("draggable"))}get domAtom(){return this.node.isAtom}}function bH(e,t,n,r,i){tj(r,t,e);let a=new Bc(void 0,e,t,n,r,r,r,i,0);return a.contentDOM&&a.updateChildren(i,0),a}class z3 extends Bc{constructor(t,n,r,i,a,o,l){super(t,n,r,i,a,null,o,l,0)}parseRule(){let t=this.nodeDOM.parentNode;for(;t&&t!=this.dom&&!t.pmIsDeco;)t=t.parentNode;return{skip:t||!0}}update(t,n,r,i){return this.dirty==ps||this.dirty!=Xo&&!this.inParent()||!t.sameMarkup(this.node)?!1:(this.updateOuterDeco(n),(this.dirty!=Xo||t.text!=this.node.text)&&t.text!=this.nodeDOM.nodeValue&&(this.nodeDOM.nodeValue=t.text,i.trackWrites==this.nodeDOM&&(i.trackWrites=null)),this.node=t,this.dirty=Xo,!0)}inParent(){let t=this.parent.contentDOM;for(let n=this.nodeDOM;n;n=n.parentNode)if(n==t)return!0;return!1}domFromPos(t){return{node:this.nodeDOM,offset:t}}localPosFromDOM(t,n,r){return t==this.nodeDOM?this.posAtStart+Math.min(n,this.node.text.length):super.localPosFromDOM(t,n,r)}ignoreMutation(t){return t.type!="characterData"&&t.type!="selection"}slice(t,n,r){let i=this.node.cut(t,n),a=document.createTextNode(i.text);return new z3(this.parent,i,this.outerDeco,this.innerDeco,a,a,r)}markDirty(t,n){super.markDirty(t,n),this.dom!=this.nodeDOM&&(t==0||n==this.nodeDOM.nodeValue.length)&&(this.dirty=ps)}get domAtom(){return!1}isText(t){return this.node.text==t}}class $P extends Cm{parseRule(){return{ignore:!0}}matchesHack(t){return this.dirty==Xo&&this.dom.nodeName==t}get domAtom(){return!0}get ignoreForCoords(){return this.dom.nodeName=="IMG"}}class fHe extends Bc{constructor(t,n,r,i,a,o,l,s,u,c){super(t,n,r,i,a,o,l,u,c),this.spec=s}update(t,n,r,i){if(this.dirty==ps)return!1;if(this.spec.update){let a=this.spec.update(t,n,r);return a&&this.updateInner(t,n,r,i),a}else return!this.contentDOM&&!t.isLeaf?!1:super.update(t,n,r,i)}selectNode(){this.spec.selectNode?this.spec.selectNode():super.selectNode()}deselectNode(){this.spec.deselectNode?this.spec.deselectNode():super.deselectNode()}setSelection(t,n,r,i){this.spec.setSelection?this.spec.setSelection(t,n,r):super.setSelection(t,n,r,i)}destroy(){this.spec.destroy&&this.spec.destroy(),super.destroy()}stopEvent(t){return this.spec.stopEvent?this.spec.stopEvent(t):!1}ignoreMutation(t){return this.spec.ignoreMutation?this.spec.ignoreMutation(t):super.ignoreMutation(t)}}function qP(e,t,n){let r=e.firstChild,i=!1;for(let a=0;a>1,o=Math.min(a,t.length);for(;i-1)l>this.index&&(this.changed=!0,this.destroyBetween(this.index,l)),this.top=this.top.children[this.index];else{let s=ad.create(this.top,t[a],n,r);this.top.children.splice(this.index,0,s),this.top=s,this.changed=!0}this.index=0,a++}}findNodeMatch(t,n,r,i){let a=-1,o;if(i>=this.preMatch.index&&(o=this.preMatch.matches[i-this.preMatch.index]).parent==this.top&&o.matchesNode(t,n,r))a=this.top.children.indexOf(o,this.index);else for(let l=this.index,s=Math.min(this.top.children.length,l+5);l0;){let l;for(;;)if(r){let u=n.children[r-1];if(u instanceof ad)n=u,r=u.children.length;else{l=u,r--;break}}else{if(n==t)break e;r=n.parent.children.indexOf(n),n=n.parent}let s=l.node;if(s){if(s!=e.child(i-1))break;--i,a.set(l,i),o.push(l)}}return{index:i,matched:a,matches:o.reverse()}}function BHe(e,t){return e.type.side-t.type.side}function wHe(e,t,n,r){let i=t.locals(e),a=0;if(i.length==0){for(let u=0;ua;)l.push(i[o++]);let m=a+g.nodeSize;if(g.isText){let B=m;o!B.inline):l.slice();r(g,A,t.forChild(a,g),h),a=m}}function bHe(e){if(e.nodeName=="UL"||e.nodeName=="OL"){let t=e.style.cssText;e.style.cssText=t+"; list-style: square !important",window.getComputedStyle(e).listStyle,e.style.cssText=t}}function vHe(e,t,n,r){for(let i=0,a=0;i=n){if(a>=r&&s.slice(r-t.length-l,r-l)==t)return r-t.length;let u=l=0&&u+t.length+l>=n)return l+u;if(n==r&&s.length>=r+t.length-l&&s.slice(r-l,r-l+t.length)==t)return r}}return-1}function IF(e,t,n,r,i){let a=[];for(let o=0,l=0;o=n||c<=t?a.push(s):(un&&a.push(s.slice(n-u,s.size,r)))}return a}function GR(e,t=null){let n=e.domSelectionRange(),r=e.state.doc;if(!n.focusNode)return null;let i=e.docView.nearestDesc(n.focusNode),a=i&&i.size==0,o=e.docView.posFromDOM(n.focusNode,n.focusOffset,1);if(o<0)return null;let l=r.resolve(o),s,u;if(J3(n)){for(s=l;i&&!i.node;)i=i.parent;let c=i.node;if(i&&c.isAtom&&Ut.isSelectable(c)&&i.parent&&!(c.isInline&&JZe(n.focusNode,n.focusOffset,i.dom))){let d=i.posBefore;u=new Ut(o==d?l:r.resolve(d))}}else{let c=e.docView.posFromDOM(n.anchorNode,n.anchorOffset,1);if(c<0)return null;s=r.resolve(c)}if(!u){let c=t=="pointer"||e.state.selection.head{(n.anchorNode!=r||n.anchorOffset!=i)&&(t.removeEventListener("selectionchange",e.input.hideSelectionGuard),setTimeout(()=>{(!nj(e)||e.state.selection.visible)&&e.dom.classList.remove("ProseMirror-hideselection")},20))})}function QHe(e){let t=e.domSelection(),n=document.createRange(),r=e.cursorWrapper.dom,i=r.nodeName=="IMG";i?n.setEnd(r.parentNode,Bi(r)+1):n.setEnd(r,0),n.collapse(!1),t.removeAllRanges(),t.addRange(n),!i&&!e.state.selection.visible&&Wa&&Cc<=11&&(r.disabled=!0,r.disabled=!1)}function rj(e,t){if(t instanceof Ut){let n=e.docView.descAt(t.from);n!=e.lastSelectedViewDesc&&(yH(e),n&&n.selectNode(),e.lastSelectedViewDesc=n)}else yH(e)}function yH(e){e.lastSelectedViewDesc&&(e.lastSelectedViewDesc.parent&&e.lastSelectedViewDesc.deselectNode(),e.lastSelectedViewDesc=void 0)}function kR(e,t,n,r){return e.someProp("createSelectionBetween",i=>i(e,t,n))||fn.between(t,n,r)}function FH(e){return e.editable&&!e.hasFocus()?!1:ij(e)}function ij(e){let t=e.domSelectionRange();if(!t.anchorNode)return!1;try{return e.dom.contains(t.anchorNode.nodeType==3?t.anchorNode.parentNode:t.anchorNode)&&(e.editable||e.dom.contains(t.focusNode.nodeType==3?t.focusNode.parentNode:t.focusNode))}catch{return!1}}function WHe(e){let t=e.docView.domFromPos(e.state.selection.anchor,0),n=e.domSelectionRange();return id(t.node,t.offset,n.anchorNode,n.anchorOffset)}function UF(e,t){let{$anchor:n,$head:r}=e.selection,i=t>0?n.max(r):n.min(r),a=i.parent.inlineContent?i.depth?e.doc.resolve(t>0?i.after():i.before()):null:i;return a&&wn.findFrom(a,t)}function Mu(e,t){return e.dispatch(e.state.tr.setSelection(t).scrollIntoView()),!0}function EH(e,t,n){let r=e.state.selection;if(r instanceof fn)if(n.indexOf("s")>-1){let{$head:i}=r,a=i.textOffset?null:t<0?i.nodeBefore:i.nodeAfter;if(!a||a.isText||!a.isLeaf)return!1;let o=e.state.doc.resolve(i.pos+a.nodeSize*(t<0?-1:1));return Mu(e,new fn(r.$anchor,o))}else if(r.empty){if(e.endOfTextblock(t>0?"forward":"backward")){let i=UF(e.state,t);return i&&i instanceof Ut?Mu(e,i):!1}else if(!(yo&&n.indexOf("m")>-1)){let i=r.$head,a=i.textOffset?null:t<0?i.nodeBefore:i.nodeAfter,o;if(!a||a.isText)return!1;let l=t<0?i.pos-a.nodeSize:i.pos;return a.isAtom||(o=e.docView.descAt(l))&&!o.contentDOM?Ut.isSelectable(a)?Mu(e,new Ut(t<0?e.state.doc.resolve(i.pos-a.nodeSize):i)):Am?Mu(e,new fn(e.state.doc.resolve(t<0?l:l+a.nodeSize))):!1:!1}}else return!1;else{if(r instanceof Ut&&r.node.isInline)return Mu(e,new fn(t>0?r.$to:r.$from));{let i=UF(e.state,t);return i?Mu(e,i):!1}}}function $B(e){return e.nodeType==3?e.nodeValue.length:e.childNodes.length}function Lh(e,t){let n=e.pmViewDesc;return n&&n.size==0&&(t<0||e.nextSibling||e.nodeName!="BR")}function rp(e,t){return t<0?yHe(e):FHe(e)}function yHe(e){let t=e.domSelectionRange(),n=t.focusNode,r=t.focusOffset;if(!n)return;let i,a,o=!1;for(Wl&&n.nodeType==1&&r<$B(n)&&Lh(n.childNodes[r],-1)&&(o=!0);;)if(r>0){if(n.nodeType!=1)break;{let l=n.childNodes[r-1];if(Lh(l,-1))i=n,a=--r;else if(l.nodeType==3)n=l,r=n.nodeValue.length;else break}}else{if(aj(n))break;{let l=n.previousSibling;for(;l&&Lh(l,-1);)i=n.parentNode,a=Bi(l),l=l.previousSibling;if(l)n=l,r=$B(n);else{if(n=n.parentNode,n==e.dom)break;r=0}}}o?OF(e,n,r):i&&OF(e,i,a)}function FHe(e){let t=e.domSelectionRange(),n=t.focusNode,r=t.focusOffset;if(!n)return;let i=$B(n),a,o;for(;;)if(r{e.state==i&&eu(e)},50)}function RH(e,t){let n=e.state.doc.resolve(t);if(!(qi||_Ze)&&n.parent.inlineContent){let i=e.coordsAtPos(t);if(t>n.start()){let a=e.coordsAtPos(t-1),o=(a.top+a.bottom)/2;if(o>i.top&&o1)return a.lefti.top&&o1)return a.left>i.left?"ltr":"rtl"}}return getComputedStyle(e.dom).direction=="rtl"?"rtl":"ltr"}function SH(e,t,n){let r=e.state.selection;if(r instanceof fn&&!r.empty||n.indexOf("s")>-1||yo&&n.indexOf("m")>-1)return!1;let{$from:i,$to:a}=r;if(!i.parent.inlineContent||e.endOfTextblock(t<0?"up":"down")){let o=UF(e.state,t);if(o&&o instanceof Ut)return Mu(e,o)}if(!i.parent.inlineContent){let o=t<0?i:a,l=r instanceof wl?wn.near(o,t):wn.findFrom(o,t);return l?Mu(e,l):!1}return!1}function xH(e,t){if(!(e.state.selection instanceof fn))return!0;let{$head:n,$anchor:r,empty:i}=e.state.selection;if(!n.sameParent(r))return!0;if(!i)return!1;if(e.endOfTextblock(t>0?"forward":"backward"))return!0;let a=!n.textOffset&&(t<0?n.nodeBefore:n.nodeAfter);if(a&&!a.isText){let o=e.state.tr;return t<0?o.delete(n.pos-a.nodeSize,n.pos):o.delete(n.pos,n.pos+a.nodeSize),e.dispatch(o),!0}return!1}function GH(e,t,n){e.domObserver.stop(),t.contentEditable=n,e.domObserver.start()}function SHe(e){if(!na||e.state.selection.$head.parentOffset>0)return!1;let{focusNode:t,focusOffset:n}=e.domSelectionRange();if(t&&t.nodeType==1&&n==0&&t.firstChild&&t.firstChild.contentEditable=="false"){let r=t.firstChild;GH(e,r,"true"),setTimeout(()=>GH(e,r,"false"),20)}return!1}function xHe(e){let t="";return e.ctrlKey&&(t+="c"),e.metaKey&&(t+="m"),e.altKey&&(t+="a"),e.shiftKey&&(t+="s"),t}function GHe(e,t){let n=t.keyCode,r=xHe(t);if(n==8||yo&&n==72&&r=="c")return xH(e,-1)||rp(e,-1);if(n==46&&!t.shiftKey||yo&&n==68&&r=="c")return xH(e,1)||rp(e,1);if(n==13||n==27)return!0;if(n==37||yo&&n==66&&r=="c"){let i=n==37?RH(e,e.state.selection.from)=="ltr"?-1:1:-1;return EH(e,i,r)||rp(e,i)}else if(n==39||yo&&n==70&&r=="c"){let i=n==39?RH(e,e.state.selection.from)=="ltr"?1:-1:1;return EH(e,i,r)||rp(e,i)}else{if(n==38||yo&&n==80&&r=="c")return SH(e,-1,r)||rp(e,-1);if(n==40||yo&&n==78&&r=="c")return SHe(e)||SH(e,1,r)||rp(e,1);if(r==(yo?"m":"c")&&(n==66||n==73||n==89||n==90))return!0}return!1}function oj(e,t){e.someProp("transformCopied",h=>{t=h(t,e)});let n=[],{content:r,openStart:i,openEnd:a}=t;for(;i>1&&a>1&&r.childCount==1&&r.firstChild.childCount==1;){i--,a--;let h=r.firstChild;n.push(h.type.name,h.attrs!=h.type.defaultAttrs?h.attrs:null),r=h.content}let o=e.someProp("clipboardSerializer")||es.fromSchema(e.state.schema),l=pj(),s=l.createElement("div");s.appendChild(o.serializeFragment(r,{document:l}));let u=s.firstChild,c,d=0;for(;u&&u.nodeType==1&&(c=dj[u.nodeName.toLowerCase()]);){for(let h=c.length-1;h>=0;h--){let m=l.createElement(c[h]);for(;s.firstChild;)m.appendChild(s.firstChild);s.appendChild(m),d++}u=s.firstChild}u&&u.nodeType==1&&u.setAttribute("data-pm-slice",`${i} ${a}${d?` -${d}`:""} ${JSON.stringify(n)}`);let g=e.someProp("clipboardTextSerializer",h=>h(t,e))||t.content.textBetween(0,t.content.size,` + +`);return{dom:s,text:g,slice:t}}function lj(e,t,n,r,i){let a=i.parent.type.spec.code,o,l;if(!n&&!t)return null;let s=t&&(r||a||!n);if(s){if(e.someProp("transformPastedText",g=>{t=g(t,a||r,e)}),a)return t?new wt(je.from(e.state.schema.text(t.replace(/\r\n?/g,` +`))),0,0):wt.empty;let d=e.someProp("clipboardTextParser",g=>g(t,i,r,e));if(d)l=d;else{let g=i.marks(),{schema:h}=e.state,m=es.fromSchema(h);o=document.createElement("div"),t.split(/(?:\r\n?|\n)+/).forEach(A=>{let B=o.appendChild(document.createElement("p"));A&&B.appendChild(m.serializeNode(h.text(A,g)))})}}else e.someProp("transformPastedHTML",d=>{n=d(n,e)}),o=NHe(n),Am&&ZHe(o);let u=o&&o.querySelector("[data-pm-slice]"),c=u&&/^(\d+) (\d+)(?: -(\d+))? (.*)/.exec(u.getAttribute("data-pm-slice")||"");if(c&&c[3])for(let d=+c[3];d>0;d--){let g=o.firstChild;for(;g&&g.nodeType!=1;)g=g.nextSibling;if(!g)break;o=g}if(l||(l=(e.someProp("clipboardParser")||e.someProp("domParser")||ER.fromSchema(e.state.schema)).parseSlice(o,{preserveWhitespace:!!(s||c),context:i,ruleFromNode(g){return g.nodeName=="BR"&&!g.nextSibling&&g.parentNode&&!kHe.test(g.parentNode.nodeName)?{ignore:!0}:null}})),c)l=HHe(kH(l,+c[1],+c[2]),c[4]);else if(l=wt.maxOpen(DHe(l.content,i),!0),l.openStart||l.openEnd){let d=0,g=0;for(let h=l.content.firstChild;d{l=d(l,e)}),l}const kHe=/^(a|abbr|acronym|b|cite|code|del|em|i|ins|kbd|label|output|q|ruby|s|samp|span|strong|sub|sup|time|u|tt|var)$/i;function DHe(e,t){if(e.childCount<2)return e;for(let n=t.depth;n>=0;n--){let i=t.node(n).contentMatchAt(t.index(n)),a,o=[];if(e.forEach(l=>{if(!o)return;let s=i.findWrapping(l.type),u;if(!s)return o=null;if(u=o.length&&a.length&&uj(s,a,l,o[o.length-1],0))o[o.length-1]=u;else{o.length&&(o[o.length-1]=cj(o[o.length-1],a.length));let c=sj(l,s);o.push(c),i=i.matchType(c.type),a=s}}),o)return je.from(o)}return e}function sj(e,t,n=0){for(let r=t.length-1;r>=n;r--)e=t[r].create(null,je.from(e));return e}function uj(e,t,n,r,i){if(i1&&(a=0),i=n&&(l=t<0?o.contentMatchAt(0).fillBefore(l,a<=i).append(l):l.append(o.contentMatchAt(o.childCount).fillBefore(je.empty,!0))),e.replaceChild(t<0?0:e.childCount-1,o.copy(l))}function kH(e,t,n){return t]*>)*/.exec(e);t&&(e=e.slice(t[0].length));let n=pj().createElement("div"),r=/<([a-z][^>\s]+)/i.exec(e),i;if((i=r&&dj[r[1].toLowerCase()])&&(e=i.map(a=>"<"+a+">").join("")+e+i.map(a=>"").reverse().join("")),n.innerHTML=e,i)for(let a=0;a=0;l-=2){let s=n.nodes[r[l]];if(!s||s.hasRequiredAttrs())break;i=je.from(s.create(r[l+1],i)),a++,o++}return new wt(i,a,o)}const ra={},ia={},XHe={touchstart:!0,touchmove:!0};class LHe{constructor(){this.shiftKey=!1,this.mouseDown=null,this.lastKeyCode=null,this.lastKeyCodeTime=0,this.lastClick={time:0,x:0,y:0,type:""},this.lastSelectionOrigin=null,this.lastSelectionTime=0,this.lastIOSEnter=0,this.lastIOSEnterFallbackTimeout=-1,this.lastFocus=0,this.lastTouch=0,this.lastAndroidDelete=0,this.composing=!1,this.compositionNode=null,this.composingTimeout=-1,this.compositionNodes=[],this.compositionEndedAt=-2e8,this.compositionID=1,this.compositionPendingChanges=0,this.domChangeCount=0,this.eventHandlers=Object.create(null),this.hideSelectionGuard=null}}function MHe(e){for(let t in ra){let n=ra[t];e.dom.addEventListener(t,e.input.eventHandlers[t]=r=>{VHe(e,r)&&!DR(e,r)&&(e.editable||!(r.type in ia))&&n(e,r)},XHe[t]?{passive:!0}:void 0)}na&&e.dom.addEventListener("input",()=>null),zF(e)}function nc(e,t){e.input.lastSelectionOrigin=t,e.input.lastSelectionTime=Date.now()}function THe(e){e.domObserver.stop();for(let t in e.input.eventHandlers)e.dom.removeEventListener(t,e.input.eventHandlers[t]);clearTimeout(e.input.composingTimeout),clearTimeout(e.input.lastIOSEnterFallbackTimeout)}function zF(e){e.someProp("handleDOMEvents",t=>{for(let n in t)e.input.eventHandlers[n]||e.dom.addEventListener(n,e.input.eventHandlers[n]=r=>DR(e,r))})}function DR(e,t){return e.someProp("handleDOMEvents",n=>{let r=n[t.type];return r?r(e,t)||t.defaultPrevented:!1})}function VHe(e,t){if(!t.bubbles)return!0;if(t.defaultPrevented)return!1;for(let n=t.target;n!=e.dom;n=n.parentNode)if(!n||n.nodeType==11||n.pmViewDesc&&n.pmViewDesc.stopEvent(t))return!1;return!0}function YHe(e,t){!DR(e,t)&&ra[t.type]&&(e.editable||!(t.type in ia))&&ra[t.type](e,t)}ia.keydown=(e,t)=>{let n=t;if(e.input.shiftKey=n.keyCode==16||n.shiftKey,!hj(e,n)&&(e.input.lastKeyCode=n.keyCode,e.input.lastKeyCodeTime=Date.now(),!(ul&&qi&&n.keyCode==13)))if(n.keyCode!=229&&e.domObserver.forceFlush(),W1&&n.keyCode==13&&!n.ctrlKey&&!n.altKey&&!n.metaKey){let r=Date.now();e.input.lastIOSEnter=r,e.input.lastIOSEnterFallbackTimeout=setTimeout(()=>{e.input.lastIOSEnter==r&&(e.someProp("handleKeyDown",i=>i(e,B0(13,"Enter"))),e.input.lastIOSEnter=0)},200)}else e.someProp("handleKeyDown",r=>r(e,n))||GHe(e,n)?n.preventDefault():nc(e,"key")};ia.keyup=(e,t)=>{t.keyCode==16&&(e.input.shiftKey=!1)};ia.keypress=(e,t)=>{let n=t;if(hj(e,n)||!n.charCode||n.ctrlKey&&!n.altKey||yo&&n.metaKey)return;if(e.someProp("handleKeyPress",i=>i(e,n))){n.preventDefault();return}let r=e.state.selection;if(!(r instanceof fn)||!r.$from.sameParent(r.$to)){let i=String.fromCharCode(n.charCode);!/[\r\n]/.test(i)&&!e.someProp("handleTextInput",a=>a(e,r.$from.pos,r.$to.pos,i))&&e.dispatch(e.state.tr.insertText(i).scrollIntoView()),n.preventDefault()}};function P3(e){return{left:e.clientX,top:e.clientY}}function IHe(e,t){let n=t.x-e.clientX,r=t.y-e.clientY;return n*n+r*r<100}function NR(e,t,n,r,i){if(r==-1)return!1;let a=e.state.doc.resolve(r);for(let o=a.depth+1;o>0;o--)if(e.someProp(t,l=>o>a.depth?l(e,n,a.nodeAfter,a.before(o),i,!0):l(e,n,a.node(o),a.before(o),i,!1)))return!0;return!1}function _p(e,t,n){e.focused||e.focus();let r=e.state.tr.setSelection(t);n=="pointer"&&r.setMeta("pointer",!0),e.dispatch(r)}function UHe(e,t){if(t==-1)return!1;let n=e.state.doc.resolve(t),r=n.nodeAfter;return r&&r.isAtom&&Ut.isSelectable(r)?(_p(e,new Ut(n),"pointer"),!0):!1}function OHe(e,t){if(t==-1)return!1;let n=e.state.selection,r,i;n instanceof Ut&&(r=n.node);let a=e.state.doc.resolve(t);for(let o=a.depth+1;o>0;o--){let l=o>a.depth?a.nodeAfter:a.node(o);if(Ut.isSelectable(l)){r&&n.$from.depth>0&&o>=n.$from.depth&&a.before(n.$from.depth+1)==n.$from.pos?i=a.before(n.$from.depth):i=a.before(o);break}}return i!=null?(_p(e,Ut.create(e.state.doc,i),"pointer"),!0):!1}function JHe(e,t,n,r,i){return NR(e,"handleClickOn",t,n,r)||e.someProp("handleClick",a=>a(e,t,r))||(i?OHe(e,n):UHe(e,n))}function zHe(e,t,n,r){return NR(e,"handleDoubleClickOn",t,n,r)||e.someProp("handleDoubleClick",i=>i(e,t,r))}function PHe(e,t,n,r){return NR(e,"handleTripleClickOn",t,n,r)||e.someProp("handleTripleClick",i=>i(e,t,r))||jHe(e,n,r)}function jHe(e,t,n){if(n.button!=0)return!1;let r=e.state.doc;if(t==-1)return r.inlineContent?(_p(e,fn.create(r,0,r.content.size),"pointer"),!0):!1;let i=r.resolve(t);for(let a=i.depth+1;a>0;a--){let o=a>i.depth?i.nodeAfter:i.node(a),l=i.before(a);if(o.inlineContent)_p(e,fn.create(r,l+1,l+1+o.content.size),"pointer");else if(Ut.isSelectable(o))_p(e,Ut.create(r,l),"pointer");else continue;return!0}}function ZR(e){return qB(e)}const gj=yo?"metaKey":"ctrlKey";ra.mousedown=(e,t)=>{let n=t;e.input.shiftKey=n.shiftKey;let r=ZR(e),i=Date.now(),a="singleClick";i-e.input.lastClick.time<500&&IHe(n,e.input.lastClick)&&!n[gj]&&(e.input.lastClick.type=="singleClick"?a="doubleClick":e.input.lastClick.type=="doubleClick"&&(a="tripleClick")),e.input.lastClick={time:i,x:n.clientX,y:n.clientY,type:a};let o=e.posAtCoords(P3(n));o&&(a=="singleClick"?(e.input.mouseDown&&e.input.mouseDown.done(),e.input.mouseDown=new _He(e,o,n,!!r)):(a=="doubleClick"?zHe:PHe)(e,o.pos,o.inside,n)?n.preventDefault():nc(e,"pointer"))};class _He{constructor(t,n,r,i){this.view=t,this.pos=n,this.event=r,this.flushed=i,this.delayedSelectionSync=!1,this.mightDrag=null,this.startDoc=t.state.doc,this.selectNode=!!r[gj],this.allowDefault=r.shiftKey;let a,o;if(n.inside>-1)a=t.state.doc.nodeAt(n.inside),o=n.inside;else{let c=t.state.doc.resolve(n.pos);a=c.parent,o=c.depth?c.before():0}const l=i?null:r.target,s=l?t.docView.nearestDesc(l,!0):null;this.target=s&&s.dom.nodeType==1?s.dom:null;let{selection:u}=t.state;(r.button==0&&a.type.spec.draggable&&a.type.spec.selectable!==!1||u instanceof Ut&&u.from<=o&&u.to>o)&&(this.mightDrag={node:a,pos:o,addAttr:!!(this.target&&!this.target.draggable),setUneditable:!!(this.target&&Wl&&!this.target.hasAttribute("contentEditable"))}),this.target&&this.mightDrag&&(this.mightDrag.addAttr||this.mightDrag.setUneditable)&&(this.view.domObserver.stop(),this.mightDrag.addAttr&&(this.target.draggable=!0),this.mightDrag.setUneditable&&setTimeout(()=>{this.view.input.mouseDown==this&&this.target.setAttribute("contentEditable","false")},20),this.view.domObserver.start()),t.root.addEventListener("mouseup",this.up=this.up.bind(this)),t.root.addEventListener("mousemove",this.move=this.move.bind(this)),nc(t,"pointer")}done(){this.view.root.removeEventListener("mouseup",this.up),this.view.root.removeEventListener("mousemove",this.move),this.mightDrag&&this.target&&(this.view.domObserver.stop(),this.mightDrag.addAttr&&this.target.removeAttribute("draggable"),this.mightDrag.setUneditable&&this.target.removeAttribute("contentEditable"),this.view.domObserver.start()),this.delayedSelectionSync&&setTimeout(()=>eu(this.view)),this.view.input.mouseDown=null}up(t){if(this.done(),!this.view.dom.contains(t.target))return;let n=this.pos;this.view.state.doc!=this.startDoc&&(n=this.view.posAtCoords(P3(t))),this.updateAllowDefault(t),this.allowDefault||!n?nc(this.view,"pointer"):JHe(this.view,n.pos,n.inside,t,this.selectNode)?t.preventDefault():t.button==0&&(this.flushed||na&&this.mightDrag&&!this.mightDrag.node.isAtom||qi&&!this.view.state.selection.visible&&Math.min(Math.abs(n.pos-this.view.state.selection.from),Math.abs(n.pos-this.view.state.selection.to))<=2)?(_p(this.view,wn.near(this.view.state.doc.resolve(n.pos)),"pointer"),t.preventDefault()):nc(this.view,"pointer")}move(t){this.updateAllowDefault(t),nc(this.view,"pointer"),t.buttons==0&&this.done()}updateAllowDefault(t){!this.allowDefault&&(Math.abs(this.event.x-t.clientX)>4||Math.abs(this.event.y-t.clientY)>4)&&(this.allowDefault=!0)}}ra.touchstart=e=>{e.input.lastTouch=Date.now(),ZR(e),nc(e,"pointer")};ra.touchmove=e=>{e.input.lastTouch=Date.now(),nc(e,"pointer")};ra.contextmenu=e=>ZR(e);function hj(e,t){return e.composing?!0:na&&Math.abs(t.timeStamp-e.input.compositionEndedAt)<500?(e.input.compositionEndedAt=-2e8,!0):!1}const $He=ul?5e3:-1;ia.compositionstart=ia.compositionupdate=e=>{if(!e.composing){e.domObserver.flush();let{state:t}=e,n=t.selection.$from;if(t.selection.empty&&(t.storedMarks||!n.textOffset&&n.parentOffset&&n.nodeBefore.marks.some(r=>r.type.spec.inclusive===!1)))e.markCursor=e.state.storedMarks||n.marks(),qB(e,!0),e.markCursor=null;else if(qB(e),Wl&&t.selection.empty&&n.parentOffset&&!n.textOffset&&n.nodeBefore.marks.length){let r=e.domSelectionRange();for(let i=r.focusNode,a=r.focusOffset;i&&i.nodeType==1&&a!=0;){let o=a<0?i.lastChild:i.childNodes[a-1];if(!o)break;if(o.nodeType==3){e.domSelection().collapse(o,o.nodeValue.length);break}else i=o,a=-1}}e.input.composing=!0}fj(e,$He)};ia.compositionend=(e,t)=>{e.composing&&(e.input.composing=!1,e.input.compositionEndedAt=t.timeStamp,e.input.compositionPendingChanges=e.domObserver.pendingRecords().length?e.input.compositionID:0,e.input.compositionNode=null,e.input.compositionPendingChanges&&Promise.resolve().then(()=>e.domObserver.flush()),e.input.compositionID++,fj(e,20))};function fj(e,t){clearTimeout(e.input.composingTimeout),t>-1&&(e.input.composingTimeout=setTimeout(()=>qB(e),t))}function mj(e){for(e.composing&&(e.input.composing=!1,e.input.compositionEndedAt=eXe());e.input.compositionNodes.length>0;)e.input.compositionNodes.pop().markParentsDirty()}function qHe(e){let t=e.domSelectionRange();if(!t.focusNode)return null;let n=UZe(t.focusNode,t.focusOffset),r=OZe(t.focusNode,t.focusOffset);if(n&&r&&n!=r){let i=r.pmViewDesc;if(!i||!i.isText(r.nodeValue))return r;if(e.input.compositionNode==r){let a=n.pmViewDesc;if(!(!a||!a.isText(n.nodeValue)))return r}}return n||r}function eXe(){let e=document.createEvent("Event");return e.initEvent("event",!0,!0),e.timeStamp}function qB(e,t=!1){if(!(ul&&e.domObserver.flushingSoon>=0)){if(e.domObserver.forceFlush(),mj(e),t||e.docView&&e.docView.dirty){let n=GR(e);return n&&!n.eq(e.state.selection)?e.dispatch(e.state.tr.setSelection(n)):e.updateState(e.state),!0}return!1}}function tXe(e,t){if(!e.dom.parentNode)return;let n=e.dom.parentNode.appendChild(document.createElement("div"));n.appendChild(t),n.style.cssText="position: fixed; left: -10000px; top: 10px";let r=getSelection(),i=document.createRange();i.selectNodeContents(t),e.dom.blur(),r.removeAllRanges(),r.addRange(i),setTimeout(()=>{n.parentNode&&n.parentNode.removeChild(n),e.focus()},50)}const Gf=Wa&&Cc<15||W1&&$Ze<604;ra.copy=ia.cut=(e,t)=>{let n=t,r=e.state.selection,i=n.type=="cut";if(r.empty)return;let a=Gf?null:n.clipboardData,o=r.content(),{dom:l,text:s}=oj(e,o);a?(n.preventDefault(),a.clearData(),a.setData("text/html",l.innerHTML),a.setData("text/plain",s)):tXe(e,l),i&&e.dispatch(e.state.tr.deleteSelection().scrollIntoView().setMeta("uiEvent","cut"))};function nXe(e){return e.openStart==0&&e.openEnd==0&&e.content.childCount==1?e.content.firstChild:null}function rXe(e,t){if(!e.dom.parentNode)return;let n=e.input.shiftKey||e.state.selection.$from.parent.type.spec.code,r=e.dom.parentNode.appendChild(document.createElement(n?"textarea":"div"));n||(r.contentEditable="true"),r.style.cssText="position: fixed; left: -10000px; top: 10px",r.focus();let i=e.input.shiftKey&&e.input.lastKeyCode!=45;setTimeout(()=>{e.focus(),r.parentNode&&r.parentNode.removeChild(r),n?kf(e,r.value,null,i,t):kf(e,r.textContent,r.innerHTML,i,t)},50)}function kf(e,t,n,r,i){let a=lj(e,t,n,r,e.state.selection.$from);if(e.someProp("handlePaste",s=>s(e,i,a||wt.empty)))return!0;if(!a)return!1;let o=nXe(a),l=o?e.state.tr.replaceSelectionWith(o,r):e.state.tr.replaceSelection(a);return e.dispatch(l.scrollIntoView().setMeta("paste",!0).setMeta("uiEvent","paste")),!0}function Aj(e){let t=e.getData("text/plain")||e.getData("Text");if(t)return t;let n=e.getData("text/uri-list");return n?n.replace(/\r?\n/g," "):""}ia.paste=(e,t)=>{let n=t;if(e.composing&&!ul)return;let r=Gf?null:n.clipboardData,i=e.input.shiftKey&&e.input.lastKeyCode!=45;r&&kf(e,Aj(r),r.getData("text/html"),i,n)?n.preventDefault():rXe(e,n)};class Cj{constructor(t,n,r){this.slice=t,this.move=n,this.node=r}}const Bj=yo?"altKey":"ctrlKey";ra.dragstart=(e,t)=>{let n=t,r=e.input.mouseDown;if(r&&r.done(),!n.dataTransfer)return;let i=e.state.selection,a=i.empty?null:e.posAtCoords(P3(n)),o;if(!(a&&a.pos>=i.from&&a.pos<=(i instanceof Ut?i.to-1:i.to))){if(r&&r.mightDrag)o=Ut.create(e.state.doc,r.mightDrag.pos);else if(n.target&&n.target.nodeType==1){let d=e.docView.nearestDesc(n.target,!0);d&&d.node.type.spec.draggable&&d!=e.docView&&(o=Ut.create(e.state.doc,d.posBefore))}}let l=(o||e.state.selection).content(),{dom:s,text:u,slice:c}=oj(e,l);n.dataTransfer.clearData(),n.dataTransfer.setData(Gf?"Text":"text/html",s.innerHTML),n.dataTransfer.effectAllowed="copyMove",Gf||n.dataTransfer.setData("text/plain",u),e.dragging=new Cj(c,!n[Bj],o)};ra.dragend=e=>{let t=e.dragging;window.setTimeout(()=>{e.dragging==t&&(e.dragging=null)},50)};ia.dragover=ia.dragenter=(e,t)=>t.preventDefault();ia.drop=(e,t)=>{let n=t,r=e.dragging;if(e.dragging=null,!n.dataTransfer)return;let i=e.posAtCoords(P3(n));if(!i)return;let a=e.state.doc.resolve(i.pos),o=r&&r.slice;o?e.someProp("transformPasted",m=>{o=m(o,e)}):o=lj(e,Aj(n.dataTransfer),Gf?null:n.dataTransfer.getData("text/html"),!1,a);let l=!!(r&&!n[Bj]);if(e.someProp("handleDrop",m=>m(e,n,o||wt.empty,l))){n.preventDefault();return}if(!o)return;n.preventDefault();let s=o?xZe(e.state.doc,a.pos,o):a.pos;s==null&&(s=a.pos);let u=e.state.tr;if(l){let{node:m}=r;m?m.replace(u):u.deleteSelection()}let c=u.mapping.map(s),d=o.openStart==0&&o.openEnd==0&&o.content.childCount==1,g=u.doc;if(d?u.replaceRangeWith(c,c,o.content.firstChild):u.replaceRange(c,c,o),u.doc.eq(g))return;let h=u.doc.resolve(c);if(d&&Ut.isSelectable(o.content.firstChild)&&h.nodeAfter&&h.nodeAfter.sameMarkup(o.content.firstChild))u.setSelection(new Ut(h));else{let m=u.mapping.map(s);u.mapping.maps[u.mapping.maps.length-1].forEach((A,B,C,b)=>m=b),u.setSelection(kR(e,h,u.doc.resolve(m)))}e.focus(),e.dispatch(u.setMeta("uiEvent","drop"))};ra.focus=e=>{e.input.lastFocus=Date.now(),e.focused||(e.domObserver.stop(),e.dom.classList.add("ProseMirror-focused"),e.domObserver.start(),e.focused=!0,setTimeout(()=>{e.docView&&e.hasFocus()&&!e.domObserver.currentSelection.eq(e.domSelectionRange())&&eu(e)},20))};ra.blur=(e,t)=>{let n=t;e.focused&&(e.domObserver.stop(),e.dom.classList.remove("ProseMirror-focused"),e.domObserver.start(),n.relatedTarget&&e.dom.contains(n.relatedTarget)&&e.domObserver.currentSelection.clear(),e.focused=!1)};ra.beforeinput=(e,t)=>{if(qi&&ul&&t.inputType=="deleteContentBackward"){e.domObserver.flushSoon();let{domChangeCount:r}=e.input;setTimeout(()=>{if(e.input.domChangeCount!=r||(e.dom.blur(),e.focus(),e.someProp("handleKeyDown",a=>a(e,B0(8,"Backspace")))))return;let{$cursor:i}=e.state.selection;i&&i.pos>0&&e.dispatch(e.state.tr.delete(i.pos-1,i.pos).scrollIntoView())},50)}};for(let e in ia)ra[e]=ia[e];function Df(e,t){if(e==t)return!0;for(let n in e)if(e[n]!==t[n])return!1;for(let n in t)if(!(n in e))return!1;return!0}class e4{constructor(t,n){this.toDOM=t,this.spec=n||T0,this.side=this.spec.side||0}map(t,n,r,i){let{pos:a,deleted:o}=t.mapResult(n.from+i,this.side<0?-1:1);return o?null:new ja(a-r,a-r,this)}valid(){return!0}eq(t){return this==t||t instanceof e4&&(this.spec.key&&this.spec.key==t.spec.key||this.toDOM==t.toDOM&&Df(this.spec,t.spec))}destroy(t){this.spec.destroy&&this.spec.destroy(t)}}class wc{constructor(t,n){this.attrs=t,this.spec=n||T0}map(t,n,r,i){let a=t.map(n.from+i,this.spec.inclusiveStart?-1:1)-r,o=t.map(n.to+i,this.spec.inclusiveEnd?1:-1)-r;return a>=o?null:new ja(a,o,this)}valid(t,n){return n.from=t&&(!a||a(l.spec))&&r.push(l.copy(l.from+i,l.to+i))}for(let o=0;ot){let l=this.children[o]+1;this.children[o+2].findInner(t-l,n-l,r,i+l,a)}}map(t,n,r){return this==xi||t.maps.length==0?this:this.mapInner(t,n,0,0,r||T0)}mapInner(t,n,r,i,a){let o;for(let l=0;l{let u=s+r,c;if(c=bj(n,l,u)){for(i||(i=this.children.slice());al&&d.to=t){this.children[l]==t&&(r=this.children[l+2]);break}let a=t+1,o=a+n.content.size;for(let l=0;la&&s.type instanceof wc){let u=Math.max(a,s.from)-a,c=Math.min(o,s.to)-a;ui.map(t,n,T0));return Ou.from(r)}forChild(t,n){if(n.isLeaf)return Mr.empty;let r=[];for(let i=0;in instanceof Mr)?t:t.reduce((n,r)=>n.concat(r instanceof Mr?r:r.members),[]))}}}function iXe(e,t,n,r,i,a,o){let l=e.slice();for(let u=0,c=a;u{let B=A-m-(h-g);for(let C=0;Cb+c-d)continue;let Q=l[C]+c-d;h>=Q?l[C+1]=g<=Q?-2:-1:g>=c&&B&&(l[C]+=B,l[C+1]+=B)}d+=B}),c=n.maps[u].map(c,-1)}let s=!1;for(let u=0;u=r.content.size){s=!0;continue}let g=n.map(e[u+1]+a,-1),h=g-i,{index:m,offset:A}=r.content.findIndex(d),B=r.maybeChild(m);if(B&&A==d&&A+B.nodeSize==h){let C=l[u+2].mapInner(n,B,c+1,e[u]+a+1,o);C!=xi?(l[u]=d,l[u+1]=h,l[u+2]=C):(l[u+1]=-2,s=!0)}else s=!0}if(s){let u=aXe(l,e,t,n,i,a,o),c=t4(u,r,0,o);t=c.local;for(let d=0;dn&&o.to{let u=bj(e,l,s+n);if(u){a=!0;let c=t4(u,l,n+s+1,r);c!=xi&&i.push(s,s+l.nodeSize,c)}});let o=wj(a?vj(e):e,-n).sort(V0);for(let l=0;l0;)t++;e.splice(t,0,n)}function QQ(e){let t=[];return e.someProp("decorations",n=>{let r=n(e.state);r&&r!=xi&&t.push(r)}),e.cursorWrapper&&t.push(Mr.create(e.state.doc,[e.cursorWrapper.deco])),Ou.from(t)}const oXe={childList:!0,characterData:!0,characterDataOldValue:!0,attributes:!0,attributeOldValue:!0,subtree:!0},lXe=Wa&&Cc<=11;class sXe{constructor(){this.anchorNode=null,this.anchorOffset=0,this.focusNode=null,this.focusOffset=0}set(t){this.anchorNode=t.anchorNode,this.anchorOffset=t.anchorOffset,this.focusNode=t.focusNode,this.focusOffset=t.focusOffset}clear(){this.anchorNode=this.focusNode=null}eq(t){return t.anchorNode==this.anchorNode&&t.anchorOffset==this.anchorOffset&&t.focusNode==this.focusNode&&t.focusOffset==this.focusOffset}}class uXe{constructor(t,n){this.view=t,this.handleDOMChange=n,this.queue=[],this.flushingSoon=-1,this.observer=null,this.currentSelection=new sXe,this.onCharData=null,this.suppressingSelectionUpdates=!1,this.observer=window.MutationObserver&&new window.MutationObserver(r=>{for(let i=0;ii.type=="childList"&&i.removedNodes.length||i.type=="characterData"&&i.oldValue.length>i.target.nodeValue.length)?this.flushSoon():this.flush()}),lXe&&(this.onCharData=r=>{this.queue.push({target:r.target,type:"characterData",oldValue:r.prevValue}),this.flushSoon()}),this.onSelectionChange=this.onSelectionChange.bind(this)}flushSoon(){this.flushingSoon<0&&(this.flushingSoon=window.setTimeout(()=>{this.flushingSoon=-1,this.flush()},20))}forceFlush(){this.flushingSoon>-1&&(window.clearTimeout(this.flushingSoon),this.flushingSoon=-1,this.flush())}start(){this.observer&&(this.observer.takeRecords(),this.observer.observe(this.view.dom,oXe)),this.onCharData&&this.view.dom.addEventListener("DOMCharacterDataModified",this.onCharData),this.connectSelection()}stop(){if(this.observer){let t=this.observer.takeRecords();if(t.length){for(let n=0;nthis.flush(),20)}this.observer.disconnect()}this.onCharData&&this.view.dom.removeEventListener("DOMCharacterDataModified",this.onCharData),this.disconnectSelection()}connectSelection(){this.view.dom.ownerDocument.addEventListener("selectionchange",this.onSelectionChange)}disconnectSelection(){this.view.dom.ownerDocument.removeEventListener("selectionchange",this.onSelectionChange)}suppressSelectionUpdates(){this.suppressingSelectionUpdates=!0,setTimeout(()=>this.suppressingSelectionUpdates=!1,50)}onSelectionChange(){if(FH(this.view)){if(this.suppressingSelectionUpdates)return eu(this.view);if(Wa&&Cc<=11&&!this.view.state.selection.empty){let t=this.view.domSelectionRange();if(t.focusNode&&id(t.focusNode,t.focusOffset,t.anchorNode,t.anchorOffset))return this.flushSoon()}this.flush()}}setCurSelection(){this.currentSelection.set(this.view.domSelectionRange())}ignoreSelectionChange(t){if(!t.focusNode)return!0;let n=new Set,r;for(let a=t.focusNode;a;a=xf(a))n.add(a);for(let a=t.anchorNode;a;a=xf(a))if(n.has(a)){r=a;break}let i=r&&this.view.docView.nearestDesc(r);if(i&&i.ignoreMutation({type:"selection",target:r.nodeType==3?r.parentNode:r}))return this.setCurSelection(),!0}pendingRecords(){if(this.observer)for(let t of this.observer.takeRecords())this.queue.push(t);return this.queue}flush(){let{view:t}=this;if(!t.docView||this.flushingSoon>-1)return;let n=this.pendingRecords();n.length&&(this.queue=[]);let r=t.domSelectionRange(),i=!this.suppressingSelectionUpdates&&!this.currentSelection.eq(r)&&FH(t)&&!this.ignoreSelectionChange(r),a=-1,o=-1,l=!1,s=[];if(t.editable)for(let c=0;cd.nodeName=="BR");if(c.length==2){let[d,g]=c;d.parentNode&&d.parentNode.parentNode==g.parentNode?g.remove():d.remove()}else{let{focusNode:d}=this.currentSelection;for(let g of c){let h=g.parentNode;h&&h.nodeName=="LI"&&(!d||pXe(t,d)!=h)&&g.remove()}}}let u=null;a<0&&i&&t.input.lastFocus>Date.now()-200&&Math.max(t.input.lastTouch,t.input.lastClick.time)-1||i)&&(a>-1&&(t.docView.markDirty(a,o),cXe(t)),this.handleDOMChange(a,o,l,s),t.docView&&t.docView.dirty?t.updateState(t.state):this.currentSelection.eq(r)||eu(t),this.currentSelection.set(r))}registerMutation(t,n){if(n.indexOf(t.target)>-1)return null;let r=this.view.docView.nearestDesc(t.target);if(t.type=="attributes"&&(r==this.view.docView||t.attributeName=="contenteditable"||t.attributeName=="style"&&!t.oldValue&&!t.target.getAttribute("style"))||!r||r.ignoreMutation(t))return null;if(t.type=="childList"){for(let c=0;ci;B--){let C=r.childNodes[B-1],b=C.pmViewDesc;if(C.nodeName=="BR"&&!b){a=B;break}if(!b||b.size)break}let d=e.state.doc,g=e.someProp("domParser")||ER.fromSchema(e.state.schema),h=d.resolve(o),m=null,A=g.parse(r,{topNode:h.parent,topMatch:h.parent.contentMatchAt(h.index()),topOpen:!0,from:i,to:a,preserveWhitespace:h.parent.type.whitespace=="pre"?"full":!0,findPositions:u,ruleFromNode:hXe,context:h});if(u&&u[0].pos!=null){let B=u[0].pos,C=u[1]&&u[1].pos;C==null&&(C=B),m={anchor:B+o,head:C+o}}return{doc:A,sel:m,from:o,to:l}}function hXe(e){let t=e.pmViewDesc;if(t)return t.parseRule();if(e.nodeName=="BR"&&e.parentNode){if(na&&/^(ul|ol)$/i.test(e.parentNode.nodeName)){let n=document.createElement("div");return n.appendChild(document.createElement("li")),{skip:n}}else if(e.parentNode.lastChild==e||na&&/^(tr|table)$/i.test(e.parentNode.nodeName))return{ignore:!0}}else if(e.nodeName=="IMG"&&e.getAttribute("mark-placeholder"))return{ignore:!0};return null}const fXe=/^(a|abbr|acronym|b|bd[io]|big|br|button|cite|code|data(list)?|del|dfn|em|i|ins|kbd|label|map|mark|meter|output|q|ruby|s|samp|small|span|strong|su[bp]|time|u|tt|var)$/i;function mXe(e,t,n,r,i){let a=e.input.compositionPendingChanges||(e.composing?e.input.compositionID:0);if(e.input.compositionPendingChanges=0,t<0){let H=e.input.lastSelectionTime>Date.now()-50?e.input.lastSelectionOrigin:null,v=GR(e,H);if(v&&!e.state.selection.eq(v)){if(qi&&ul&&e.input.lastKeyCode===13&&Date.now()-100D(e,B0(13,"Enter"))))return;let k=e.state.tr.setSelection(v);H=="pointer"?k.setMeta("pointer",!0):H=="key"&&k.scrollIntoView(),a&&k.setMeta("composition",a),e.dispatch(k)}return}let o=e.state.doc.resolve(t),l=o.sharedDepth(n);t=o.before(l+1),n=e.state.doc.resolve(n).after(l+1);let s=e.state.selection,u=gXe(e,t,n),c=e.state.doc,d=c.slice(u.from,u.to),g,h;e.input.lastKeyCode===8&&Date.now()-100Date.now()-225||ul)&&i.some(H=>H.nodeType==1&&!fXe.test(H.nodeName))&&(!m||m.endA>=m.endB)&&e.someProp("handleKeyDown",H=>H(e,B0(13,"Enter")))){e.input.lastIOSEnter=0;return}if(!m)if(r&&s instanceof fn&&!s.empty&&s.$head.sameParent(s.$anchor)&&!e.composing&&!(u.sel&&u.sel.anchor!=u.sel.head))m={start:s.from,endA:s.to,endB:s.to};else{if(u.sel){let H=LH(e,e.state.doc,u.sel);if(H&&!H.eq(e.state.selection)){let v=e.state.tr.setSelection(H);a&&v.setMeta("composition",a),e.dispatch(v)}}return}e.input.domChangeCount++,e.state.selection.frome.state.selection.from&&m.start<=e.state.selection.from+2&&e.state.selection.from>=u.from?m.start=e.state.selection.from:m.endA=e.state.selection.to-2&&e.state.selection.to<=u.to&&(m.endB+=e.state.selection.to-m.endA,m.endA=e.state.selection.to)),Wa&&Cc<=11&&m.endB==m.start+1&&m.endA==m.start&&m.start>u.from&&u.doc.textBetween(m.start-u.from-1,m.start-u.from+1)=="  "&&(m.start--,m.endA--,m.endB--);let A=u.doc.resolveNoCache(m.start-u.from),B=u.doc.resolveNoCache(m.endB-u.from),C=c.resolve(m.start),b=A.sameParent(B)&&A.parent.inlineContent&&C.end()>=m.endA,Q;if((W1&&e.input.lastIOSEnter>Date.now()-225&&(!b||i.some(H=>H.nodeName=="DIV"||H.nodeName=="P"))||!b&&A.posH(e,B0(13,"Enter")))){e.input.lastIOSEnter=0;return}if(e.state.selection.anchor>m.start&&CXe(c,m.start,m.endA,A,B)&&e.someProp("handleKeyDown",H=>H(e,B0(8,"Backspace")))){ul&&qi&&e.domObserver.suppressSelectionUpdates();return}qi&&ul&&m.endB==m.start&&(e.input.lastAndroidDelete=Date.now()),ul&&!b&&A.start()!=B.start()&&B.parentOffset==0&&A.depth==B.depth&&u.sel&&u.sel.anchor==u.sel.head&&u.sel.head==m.endA&&(m.endB-=2,B=u.doc.resolveNoCache(m.endB-u.from),setTimeout(()=>{e.someProp("handleKeyDown",function(H){return H(e,B0(13,"Enter"))})},20));let F=m.start,K=m.endA,y,G,X;if(b){if(A.pos==B.pos)Wa&&Cc<=11&&A.parentOffset==0&&(e.domObserver.suppressSelectionUpdates(),setTimeout(()=>eu(e),20)),y=e.state.tr.delete(F,K),G=c.resolve(m.start).marksAcross(c.resolve(m.endA));else if(m.endA==m.endB&&(X=AXe(A.parent.content.cut(A.parentOffset,B.parentOffset),C.parent.content.cut(C.parentOffset,m.endA-C.start()))))y=e.state.tr,X.type=="add"?y.addMark(F,K,X.mark):y.removeMark(F,K,X.mark);else if(A.parent.child(A.index()).isText&&A.index()==B.index()-(B.textOffset?0:1)){let H=A.parent.textBetween(A.parentOffset,B.parentOffset);if(e.someProp("handleTextInput",v=>v(e,F,K,H)))return;y=e.state.tr.insertText(H,F,K)}}if(y||(y=e.state.tr.replace(F,K,u.doc.slice(m.start-u.from,m.endB-u.from))),u.sel){let H=LH(e,y.doc,u.sel);H&&!(qi&&ul&&e.composing&&H.empty&&(m.start!=m.endB||e.input.lastAndroidDeletet.content.size?null:kR(e,t.resolve(n.anchor),t.resolve(n.head))}function AXe(e,t){let n=e.firstChild.marks,r=t.firstChild.marks,i=n,a=r,o,l,s;for(let c=0;cc.mark(l.addToSet(c.marks));else if(i.length==0&&a.length==1)l=a[0],o="remove",s=c=>c.mark(l.removeFromSet(c.marks));else return null;let u=[];for(let c=0;cn||WQ(o,!0,!1)0&&(t||e.indexAfter(r)==e.node(r).childCount);)r--,i++,t=!1;if(n){let a=e.node(r).maybeChild(e.indexAfter(r));for(;a&&!a.isLeaf;)a=a.firstChild,i++}return i}function BXe(e,t,n,r,i){let a=e.findDiffStart(t,n);if(a==null)return null;let{a:o,b:l}=e.findDiffEnd(t,n+e.size,n+t.size);if(i=="end"){let s=Math.max(0,a-Math.min(o,l));r-=o+s-a}if(o=o?a-r:0;a-=s,a&&a=l?a-r:0;a-=s,a&&a=56320&&t<=57343&&n>=55296&&n<=56319}class wXe{constructor(t,n){this._root=null,this.focused=!1,this.trackWrites=null,this.mounted=!1,this.markCursor=null,this.cursorWrapper=null,this.lastSelectedViewDesc=void 0,this.input=new LHe,this.prevDirectPlugins=[],this.pluginViews=[],this.requiresGeckoHackNode=!1,this.dragging=null,this._props=n,this.state=n.state,this.directPlugins=n.plugins||[],this.directPlugins.forEach(UH),this.dispatch=this.dispatch.bind(this),this.dom=t&&t.mount||document.createElement("div"),t&&(t.appendChild?t.appendChild(this.dom):typeof t=="function"?t(this.dom):t.mount&&(this.mounted=!0)),this.editable=YH(this),VH(this),this.nodeViews=IH(this),this.docView=bH(this.state.doc,TH(this),QQ(this),this.dom,this),this.domObserver=new uXe(this,(r,i,a,o)=>mXe(this,r,i,a,o)),this.domObserver.start(),MHe(this),this.updatePluginViews()}get composing(){return this.input.composing}get props(){if(this._props.state!=this.state){let t=this._props;this._props={};for(let n in t)this._props[n]=t[n];this._props.state=this.state}return this._props}update(t){t.handleDOMEvents!=this._props.handleDOMEvents&&zF(this);let n=this._props;this._props=t,t.plugins&&(t.plugins.forEach(UH),this.directPlugins=t.plugins),this.updateStateInner(t.state,n)}setProps(t){let n={};for(let r in this._props)n[r]=this._props[r];n.state=this.state;for(let r in t)n[r]=t[r];this.update(n)}updateState(t){this.updateStateInner(t,this._props)}updateStateInner(t,n){var r;let i=this.state,a=!1,o=!1;t.storedMarks&&this.composing&&(mj(this),o=!0),this.state=t;let l=i.plugins!=t.plugins||this._props.plugins!=n.plugins;if(l||this._props.plugins!=n.plugins||this._props.nodeViews!=n.nodeViews){let h=IH(this);vXe(h,this.nodeViews)&&(this.nodeViews=h,a=!0)}(l||n.handleDOMEvents!=this._props.handleDOMEvents)&&zF(this),this.editable=YH(this),VH(this);let s=QQ(this),u=TH(this),c=i.plugins!=t.plugins&&!i.doc.eq(t.doc)?"reset":t.scrollToSelection>i.scrollToSelection?"to selection":"preserve",d=a||!this.docView.matchesNode(t.doc,u,s);(d||!t.selection.eq(i.selection))&&(o=!0);let g=c=="preserve"&&o&&this.dom.style.overflowAnchor==null&&tHe(this);if(o){this.domObserver.stop();let h=d&&(Wa||qi)&&!this.composing&&!i.selection.empty&&!t.selection.empty&&bXe(i.selection,t.selection);if(d){let m=qi?this.trackWrites=this.domSelectionRange().focusNode:null;this.composing&&(this.input.compositionNode=qHe(this)),(a||!this.docView.update(t.doc,u,s,this))&&(this.docView.updateOuterDeco(u),this.docView.destroy(),this.docView=bH(t.doc,u,s,this.dom,this)),m&&!this.trackWrites&&(h=!0)}h||!(this.input.mouseDown&&this.domObserver.currentSelection.eq(this.domSelectionRange())&&WHe(this))?eu(this,h):(rj(this,t.selection),this.domObserver.setCurSelection()),this.domObserver.start()}this.updatePluginViews(i),!((r=this.dragging)===null||r===void 0)&&r.node&&!i.doc.eq(t.doc)&&this.updateDraggedNode(this.dragging,i),c=="reset"?this.dom.scrollTop=0:c=="to selection"?this.scrollToSelection():g&&nHe(g)}scrollToSelection(){let t=this.domSelectionRange().focusNode;if(!this.someProp("handleScrollToSelection",n=>n(this)))if(this.state.selection instanceof Ut){let n=this.docView.domAfterPos(this.state.selection.from);n.nodeType==1&&fH(this,n.getBoundingClientRect(),t)}else fH(this,this.coordsAtPos(this.state.selection.head,1),t)}destroyPluginViews(){let t;for(;t=this.pluginViews.pop();)t.destroy&&t.destroy()}updatePluginViews(t){if(!t||t.plugins!=this.state.plugins||this.directPlugins!=this.prevDirectPlugins){this.prevDirectPlugins=this.directPlugins,this.destroyPluginViews();for(let n=0;n0&&this.state.doc.nodeAt(a))==r.node&&(i=a)}this.dragging=new Cj(t.slice,t.move,i<0?void 0:Ut.create(this.state.doc,i))}someProp(t,n){let r=this._props&&this._props[t],i;if(r!=null&&(i=n?n(r):r))return i;for(let o=0;on.ownerDocument.getSelection()),this._root=n}return t||document}updateRoot(){this._root=null}posAtCoords(t){return sHe(this,t)}coordsAtPos(t,n=1){return PP(this,t,n)}domAtPos(t,n=0){return this.docView.domFromPos(t,n)}nodeDOM(t){let n=this.docView.descAt(t);return n?n.nodeDOM:null}posAtDOM(t,n,r=-1){let i=this.docView.posFromDOM(t,n,r);if(i==null)throw new RangeError("DOM position not inside the editor");return i}endOfTextblock(t,n){return gHe(this,n||this.state,t)}pasteHTML(t,n){return kf(this,"",t,!1,n||new ClipboardEvent("paste"))}pasteText(t,n){return kf(this,t,null,!0,n||new ClipboardEvent("paste"))}destroy(){this.docView&&(THe(this),this.destroyPluginViews(),this.mounted?(this.docView.update(this.state.doc,[],QQ(this),this),this.dom.textContent=""):this.dom.parentNode&&this.dom.parentNode.removeChild(this.dom),this.docView.destroy(),this.docView=null,YZe())}get isDestroyed(){return this.docView==null}dispatchEvent(t){return YHe(this,t)}dispatch(t){let n=this._props.dispatchTransaction;n?n.call(this,t):this.updateState(this.state.apply(t))}domSelectionRange(){let t=this.domSelection();return na&&this.root.nodeType===11&&zZe(this.dom.ownerDocument)==this.dom&&dXe(this,t)||t}domSelection(){return this.root.getSelection()}}function TH(e){let t=Object.create(null);return t.class="ProseMirror",t.contenteditable=String(e.editable),e.someProp("attributes",n=>{if(typeof n=="function"&&(n=n(e.state)),n)for(let r in n)r=="class"?t.class+=" "+n[r]:r=="style"?t.style=(t.style?t.style+";":"")+n[r]:!t[r]&&r!="contenteditable"&&r!="nodeName"&&(t[r]=String(n[r]))}),t.translate||(t.translate="no"),[ja.node(0,e.state.doc.content.size,t)]}function VH(e){if(e.markCursor){let t=document.createElement("img");t.className="ProseMirror-separator",t.setAttribute("mark-placeholder","true"),t.setAttribute("alt",""),e.cursorWrapper={dom:t,deco:ja.widget(e.state.selection.head,t,{raw:!0,marks:e.markCursor})}}else e.cursorWrapper=null}function YH(e){return!e.someProp("editable",t=>t(e.state)===!1)}function bXe(e,t){let n=Math.min(e.$anchor.sharedDepth(e.head),t.$anchor.sharedDepth(t.head));return e.$anchor.start(n)!=t.$anchor.start(n)}function IH(e){let t=Object.create(null);function n(r){for(let i in r)Object.prototype.hasOwnProperty.call(t,i)||(t[i]=r[i])}return e.someProp("nodeViews",n),e.someProp("markViews",n),t}function vXe(e,t){let n=0,r=0;for(let i in e){if(e[i]!=t[i])return!0;n++}for(let i in t)r++;return n!=r}function UH(e){if(e.spec.state||e.spec.filterTransaction||e.spec.appendTransaction)throw new RangeError("Plugins passed directly to the view must not have a state component")}var kc={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:"'"},n4={48:")",49:"!",50:"@",51:"#",52:"$",53:"%",54:"^",55:"&",56:"*",57:"(",59:":",61:"+",173:"_",186:":",187:"+",188:"<",189:"_",190:">",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"'},KXe=typeof navigator<"u"&&/Mac/.test(navigator.platform),QXe=typeof navigator<"u"&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent);for(var wi=0;wi<10;wi++)kc[48+wi]=kc[96+wi]=String(wi);for(var wi=1;wi<=24;wi++)kc[wi+111]="F"+wi;for(var wi=65;wi<=90;wi++)kc[wi]=String.fromCharCode(wi+32),n4[wi]=String.fromCharCode(wi);for(var yQ in kc)n4.hasOwnProperty(yQ)||(n4[yQ]=kc[yQ]);function WXe(e){var t=KXe&&e.metaKey&&e.shiftKey&&!e.ctrlKey&&!e.altKey||QXe&&e.shiftKey&&e.key&&e.key.length==1||e.key=="Unidentified",n=!t&&e.key||(e.shiftKey?n4:kc)[e.keyCode]||e.key||"Unidentified";return n=="Esc"&&(n="Escape"),n=="Del"&&(n="Delete"),n=="Left"&&(n="ArrowLeft"),n=="Up"&&(n="ArrowUp"),n=="Right"&&(n="ArrowRight"),n=="Down"&&(n="ArrowDown"),n}const yXe=typeof navigator<"u"?/Mac|iP(hone|[oa]d)/.test(navigator.platform):!1;function FXe(e){let t=e.split(/-(?!$)/),n=t[t.length-1];n=="Space"&&(n=" ");let r,i,a,o;for(let l=0;l127)&&(a=kc[r.keyCode])&&a!=i){let l=t[FQ(a,r)];if(l&&l(n.state,n.dispatch,n))return!0}}return!1}}const xXe=(e,t)=>e.selection.empty?!1:(t&&t(e.tr.deleteSelection().scrollIntoView()),!0);function Kj(e,t){let{$cursor:n}=e.selection;return!n||(t?!t.endOfTextblock("backward",e):n.parentOffset>0)?null:n}const GXe=(e,t,n)=>{let r=Kj(e,n);if(!r)return!1;let i=LR(r);if(!i){let o=r.blockRange(),l=o&&z1(o);return l==null?!1:(t&&t(e.tr.lift(o,l).scrollIntoView()),!0)}let a=i.nodeBefore;if(!a.type.spec.isolating&&Fj(e,i,t))return!0;if(r.parent.content.size==0&&(y1(a,"end")||Ut.isSelectable(a))){let o=U3(e.doc,r.before(),r.after(),wt.empty);if(o&&o.slice.size{let r=Kj(e,n);if(!r)return!1;let i=LR(r);return i?Qj(e,i,t):!1},DXe=(e,t,n)=>{let r=Wj(e,n);if(!r)return!1;let i=MR(r);return i?Qj(e,i,t):!1};function Qj(e,t,n){let r=t.nodeBefore,i=r,a=t.pos-1;for(;!i.isTextblock;a--){if(i.type.spec.isolating)return!1;let c=i.lastChild;if(!c)return!1;i=c}let o=t.nodeAfter,l=o,s=t.pos+1;for(;!l.isTextblock;s++){if(l.type.spec.isolating)return!1;let c=l.firstChild;if(!c)return!1;l=c}let u=U3(e.doc,a,s,wt.empty);if(!u||u.from!=a||u instanceof ai&&u.slice.size>=s-a)return!1;if(n){let c=e.tr.step(u);c.setSelection(fn.create(c.doc,a)),n(c.scrollIntoView())}return!0}function y1(e,t,n=!1){for(let r=e;r;r=t=="start"?r.firstChild:r.lastChild){if(r.isTextblock)return!0;if(n&&r.childCount!=1)return!1}return!1}const NXe=(e,t,n)=>{let{$head:r,empty:i}=e.selection,a=r;if(!i)return!1;if(r.parent.isTextblock){if(n?!n.endOfTextblock("backward",e):r.parentOffset>0)return!1;a=LR(r)}let o=a&&a.nodeBefore;return!o||!Ut.isSelectable(o)?!1:(t&&t(e.tr.setSelection(Ut.create(e.doc,a.pos-o.nodeSize)).scrollIntoView()),!0)};function LR(e){if(!e.parent.type.spec.isolating)for(let t=e.depth-1;t>=0;t--){if(e.index(t)>0)return e.doc.resolve(e.before(t+1));if(e.node(t).type.spec.isolating)break}return null}function Wj(e,t){let{$cursor:n}=e.selection;return!n||(t?!t.endOfTextblock("forward",e):n.parentOffset{let r=Wj(e,n);if(!r)return!1;let i=MR(r);if(!i)return!1;let a=i.nodeAfter;if(Fj(e,i,t))return!0;if(r.parent.content.size==0&&(y1(a,"start")||Ut.isSelectable(a))){let o=U3(e.doc,r.before(),r.after(),wt.empty);if(o&&o.slice.size{let{$head:r,empty:i}=e.selection,a=r;if(!i)return!1;if(r.parent.isTextblock){if(n?!n.endOfTextblock("forward",e):r.parentOffset=0;t--){let n=e.node(t);if(e.index(t)+1{let n=e.selection,r=n instanceof Ut,i;if(r){if(n.node.isTextblock||!Cd(e.doc,n.from))return!1;i=n.from}else if(i=I3(e.doc,n.from,-1),i==null)return!1;if(t){let a=e.tr.join(i);r&&a.setSelection(Ut.create(a.doc,i-e.doc.resolve(i).nodeBefore.nodeSize)),t(a.scrollIntoView())}return!0},LXe=(e,t)=>{let n=e.selection,r;if(n instanceof Ut){if(n.node.isTextblock||!Cd(e.doc,n.to))return!1;r=n.to}else if(r=I3(e.doc,n.to,1),r==null)return!1;return t&&t(e.tr.join(r).scrollIntoView()),!0},MXe=(e,t)=>{let{$from:n,$to:r}=e.selection,i=n.blockRange(r),a=i&&z1(i);return a==null?!1:(t&&t(e.tr.lift(i,a).scrollIntoView()),!0)},TXe=(e,t)=>{let{$head:n,$anchor:r}=e.selection;return!n.parent.type.spec.code||!n.sameParent(r)?!1:(t&&t(e.tr.insertText(` +`).scrollIntoView()),!0)};function yj(e){for(let t=0;t{let{$head:n,$anchor:r}=e.selection;if(!n.parent.type.spec.code||!n.sameParent(r))return!1;let i=n.node(-1),a=n.indexAfter(-1),o=yj(i.contentMatchAt(a));if(!o||!i.canReplaceWith(a,a,o))return!1;if(t){let l=n.after(),s=e.tr.replaceWith(l,l,o.createAndFill());s.setSelection(wn.near(s.doc.resolve(l),1)),t(s.scrollIntoView())}return!0},YXe=(e,t)=>{let n=e.selection,{$from:r,$to:i}=n;if(n instanceof wl||r.parent.inlineContent||i.parent.inlineContent)return!1;let a=yj(i.parent.contentMatchAt(i.indexAfter()));if(!a||!a.isTextblock)return!1;if(t){let o=(!r.parentOffset&&i.index(){let{$cursor:n}=e.selection;if(!n||n.parent.content.size)return!1;if(n.depth>1&&n.after()!=n.end(-1)){let a=n.before();if(Pp(e.doc,a))return t&&t(e.tr.split(a).scrollIntoView()),!0}let r=n.blockRange(),i=r&&z1(r);return i==null?!1:(t&&t(e.tr.lift(r,i).scrollIntoView()),!0)},UXe=(e,t)=>{let{$from:n,to:r}=e.selection,i,a=n.sharedDepth(r);return a==0?!1:(i=n.before(a),t&&t(e.tr.setSelection(Ut.create(e.doc,i))),!0)};function OXe(e,t,n){let r=t.nodeBefore,i=t.nodeAfter,a=t.index();return!r||!i||!r.type.compatibleContent(i.type)?!1:!r.content.size&&t.parent.canReplace(a-1,a)?(n&&n(e.tr.delete(t.pos-r.nodeSize,t.pos).scrollIntoView()),!0):!t.parent.canReplace(a,a+1)||!(i.isTextblock||Cd(e.doc,t.pos))?!1:(n&&n(e.tr.clearIncompatible(t.pos,r.type,r.contentMatchAt(r.childCount)).join(t.pos).scrollIntoView()),!0)}function Fj(e,t,n){let r=t.nodeBefore,i=t.nodeAfter,a,o;if(r.type.spec.isolating||i.type.spec.isolating)return!1;if(OXe(e,t,n))return!0;let l=t.parent.canReplace(t.index(),t.index()+1);if(l&&(a=(o=r.contentMatchAt(r.childCount)).findWrapping(i.type))&&o.matchType(a[0]||i.type).validEnd){if(n){let d=t.pos+i.nodeSize,g=je.empty;for(let A=a.length-1;A>=0;A--)g=je.from(a[A].create(null,g));g=je.from(r.copy(g));let h=e.tr.step(new li(t.pos-1,d,t.pos,d,new wt(g,1,0),a.length,!0)),m=d+2*a.length;Cd(h.doc,m)&&h.join(m),n(h.scrollIntoView())}return!0}let s=wn.findFrom(t,1),u=s&&s.$from.blockRange(s.$to),c=u&&z1(u);if(c!=null&&c>=t.depth)return n&&n(e.tr.lift(u,c).scrollIntoView()),!0;if(l&&y1(i,"start",!0)&&y1(r,"end")){let d=r,g=[];for(;g.push(d),!d.isTextblock;)d=d.lastChild;let h=i,m=1;for(;!h.isTextblock;h=h.firstChild)m++;if(d.canReplace(d.childCount,d.childCount,h.content)){if(n){let A=je.empty;for(let C=g.length-1;C>=0;C--)A=je.from(g[C].copy(A));let B=e.tr.step(new li(t.pos-g.length,t.pos+i.nodeSize,t.pos+m,t.pos+i.nodeSize-m,new wt(A,g.length,0),0,!0));n(B.scrollIntoView())}return!0}}return!1}function Ej(e){return function(t,n){let r=t.selection,i=e<0?r.$from:r.$to,a=i.depth;for(;i.node(a).isInline;){if(!a)return!1;a--}return i.node(a).isTextblock?(n&&n(t.tr.setSelection(fn.create(t.doc,e<0?i.start(a):i.end(a)))),!0):!1}}const JXe=Ej(-1),zXe=Ej(1);function PXe(e,t=null){return function(n,r){let{$from:i,$to:a}=n.selection,o=i.blockRange(a),l=o&&ZP(o,e,t);return l?(r&&r(n.tr.wrap(o,l).scrollIntoView()),!0):!1}}function OH(e,t=null){return function(n,r){let i=!1;for(let a=0;a{if(i)return!1;if(!(!s.isTextblock||s.hasMarkup(e,t)))if(s.type==e)i=!0;else{let c=n.doc.resolve(u),d=c.index();i=c.parent.canReplaceWith(d,d+1,e)}})}if(!i)return!1;if(r){let a=n.tr;for(let o=0;o=2&&i.node(o.depth-1).type.compatibleContent(e)&&o.startIndex==0){if(i.index(o.depth-1)==0)return!1;let c=n.doc.resolve(o.start-2);s=new zB(c,c,o.depth),o.endIndex=0;c--)a=je.from(n[c].type.create(n[c].attrs,a));e.step(new li(t.start-(r?2:0),t.end,t.start,t.end,new wt(a,0,0),n.length,!0));let o=0;for(let c=0;co.childCount>0&&o.firstChild.type==e);return a?n?r.node(a.depth-1).type==e?qXe(t,n,e,a):eLe(t,n,a):!0:!1}}function qXe(e,t,n,r){let i=e.tr,a=r.end,o=r.$to.end(r.depth);aA;m--)h-=i.child(m).nodeSize,r.delete(h-1,h+1);let a=r.doc.resolve(n.start),o=a.nodeAfter;if(r.mapping.map(n.end)!=n.start+a.nodeAfter.nodeSize)return!1;let l=n.startIndex==0,s=n.endIndex==i.childCount,u=a.node(-1),c=a.index(-1);if(!u.canReplace(c+(l?0:1),c+1,o.content.append(s?je.empty:je.from(i))))return!1;let d=a.pos,g=d+o.nodeSize;return r.step(new li(d-(l?1:0),g+(s?1:0),d+1,g-1,new wt((l?je.empty:je.from(i.copy(je.empty))).append(s?je.empty:je.from(i.copy(je.empty))),l?0:1,s?0:1),l?0:1)),t(r.scrollIntoView()),!0}function tLe(e){return function(t,n){let{$from:r,$to:i}=t.selection,a=r.blockRange(i,u=>u.childCount>0&&u.firstChild.type==e);if(!a)return!1;let o=a.startIndex;if(o==0)return!1;let l=a.parent,s=l.child(o-1);if(s.type!=e)return!1;if(n){let u=s.lastChild&&s.lastChild.type==l.type,c=je.from(u?e.create():null),d=new wt(je.from(e.create(null,je.from(l.type.create(null,c)))),u?3:1,0),g=a.start,h=a.end;n(t.tr.step(new li(g-(u?3:1),h,g,h,d,1,!0)).scrollIntoView())}return!0}}function j3(e){const{state:t,transaction:n}=e;let{selection:r}=n,{doc:i}=n,{storedMarks:a}=n;return{...t,apply:t.apply.bind(t),applyTransaction:t.applyTransaction.bind(t),plugins:t.plugins,schema:t.schema,reconfigure:t.reconfigure.bind(t),toJSON:t.toJSON.bind(t),get storedMarks(){return a},get selection(){return r},get doc(){return i},get tr(){return r=n.selection,i=n.doc,a=n.storedMarks,n}}}class _3{constructor(t){this.editor=t.editor,this.rawCommands=this.editor.extensionManager.commands,this.customState=t.state}get hasCustomState(){return!!this.customState}get state(){return this.customState||this.editor.state}get commands(){const{rawCommands:t,editor:n,state:r}=this,{view:i}=n,{tr:a}=r,o=this.buildProps(a);return Object.fromEntries(Object.entries(t).map(([l,s])=>[l,(...c)=>{const d=s(...c)(o);return!a.getMeta("preventDispatch")&&!this.hasCustomState&&i.dispatch(a),d}]))}get chain(){return()=>this.createChain()}get can(){return()=>this.createCan()}createChain(t,n=!0){const{rawCommands:r,editor:i,state:a}=this,{view:o}=i,l=[],s=!!t,u=t||a.tr,c=()=>(!s&&n&&!u.getMeta("preventDispatch")&&!this.hasCustomState&&o.dispatch(u),l.every(g=>g===!0)),d={...Object.fromEntries(Object.entries(r).map(([g,h])=>[g,(...A)=>{const B=this.buildProps(u,n),C=h(...A)(B);return l.push(C),d}])),run:c};return d}createCan(t){const{rawCommands:n,state:r}=this,i=!1,a=t||r.tr,o=this.buildProps(a,i);return{...Object.fromEntries(Object.entries(n).map(([s,u])=>[s,(...c)=>u(...c)({...o,dispatch:void 0})])),chain:()=>this.createChain(a,i)}}buildProps(t,n=!0){const{rawCommands:r,editor:i,state:a}=this,{view:o}=i,l={tr:t,editor:i,view:o,state:j3({state:a,transaction:t}),dispatch:n?()=>{}:void 0,chain:()=>this.createChain(t,n),can:()=>this.createCan(t),get commands(){return Object.fromEntries(Object.entries(r).map(([s,u])=>[s,(...c)=>u(...c)(l)]))}};return l}}class nLe{constructor(){this.callbacks={}}on(t,n){return this.callbacks[t]||(this.callbacks[t]=[]),this.callbacks[t].push(n),this}emit(t,...n){const r=this.callbacks[t];return r&&r.forEach(i=>i.apply(this,n)),this}off(t,n){const r=this.callbacks[t];return r&&(n?this.callbacks[t]=r.filter(i=>i!==n):delete this.callbacks[t]),this}removeAllListeners(){this.callbacks={}}}function Et(e,t,n){return e.config[t]===void 0&&e.parent?Et(e.parent,t,n):typeof e.config[t]=="function"?e.config[t].bind({...n,parent:e.parent?Et(e.parent,t,n):null}):e.config[t]}function $3(e){const t=e.filter(i=>i.type==="extension"),n=e.filter(i=>i.type==="node"),r=e.filter(i=>i.type==="mark");return{baseExtensions:t,nodeExtensions:n,markExtensions:r}}function Rj(e){const t=[],{nodeExtensions:n,markExtensions:r}=$3(e),i=[...n,...r],a={default:null,rendered:!0,renderHTML:null,parseHTML:null,keepOnSplit:!0,isRequired:!1};return e.forEach(o=>{const l={name:o.name,options:o.options,storage:o.storage},s=Et(o,"addGlobalAttributes",l);if(!s)return;s().forEach(c=>{c.types.forEach(d=>{Object.entries(c.attributes).forEach(([g,h])=>{t.push({type:d,name:g,attribute:{...a,...h}})})})})}),i.forEach(o=>{const l={name:o.name,options:o.options,storage:o.storage},s=Et(o,"addAttributes",l);if(!s)return;const u=s();Object.entries(u).forEach(([c,d])=>{const g={...a,...d};typeof(g==null?void 0:g.default)=="function"&&(g.default=g.default()),g!=null&&g.isRequired&&(g==null?void 0:g.default)===void 0&&delete g.default,t.push({type:o.name,name:c,attribute:g})})}),t}function ui(e,t){if(typeof e=="string"){if(!t.nodes[e])throw Error(`There is no node type named '${e}'. Maybe you forgot to add the extension?`);return t.nodes[e]}return e}function P1(...e){return e.filter(t=>!!t).reduce((t,n)=>{const r={...t};return Object.entries(n).forEach(([i,a])=>{if(!r[i]){r[i]=a;return}if(i==="class"){const l=a?a.split(" "):[],s=r[i]?r[i].split(" "):[],u=l.filter(c=>!s.includes(c));r[i]=[...s,...u].join(" ")}else i==="style"?r[i]=[r[i],a].join("; "):r[i]=a}),r},{})}function PF(e,t){return t.filter(n=>n.attribute.rendered).map(n=>n.attribute.renderHTML?n.attribute.renderHTML(e.attrs)||{}:{[n.name]:e.attrs[n.name]}).reduce((n,r)=>P1(n,r),{})}function Sj(e){return typeof e=="function"}function Kn(e,t=void 0,...n){return Sj(e)?t?e.bind(t)(...n):e(...n):e}function rLe(e={}){return Object.keys(e).length===0&&e.constructor===Object}function iLe(e){return typeof e!="string"?e:e.match(/^[+-]?(?:\d*\.)?\d+$/)?Number(e):e==="true"?!0:e==="false"?!1:e}function JH(e,t){return e.style?e:{...e,getAttrs:n=>{const r=e.getAttrs?e.getAttrs(n):e.attrs;if(r===!1)return!1;const i=t.reduce((a,o)=>{const l=o.attribute.parseHTML?o.attribute.parseHTML(n):iLe(n.getAttribute(o.name));return l==null?a:{...a,[o.name]:l}},{});return{...r,...i}}}}function zH(e){return Object.fromEntries(Object.entries(e).filter(([t,n])=>t==="attrs"&&rLe(n)?!1:n!=null))}function aLe(e,t){var n;const r=Rj(e),{nodeExtensions:i,markExtensions:a}=$3(e),o=(n=i.find(u=>Et(u,"topNode")))===null||n===void 0?void 0:n.name,l=Object.fromEntries(i.map(u=>{const c=r.filter(C=>C.type===u.name),d={name:u.name,options:u.options,storage:u.storage,editor:t},g=e.reduce((C,b)=>{const Q=Et(b,"extendNodeSchema",d);return{...C,...Q?Q(u):{}}},{}),h=zH({...g,content:Kn(Et(u,"content",d)),marks:Kn(Et(u,"marks",d)),group:Kn(Et(u,"group",d)),inline:Kn(Et(u,"inline",d)),atom:Kn(Et(u,"atom",d)),selectable:Kn(Et(u,"selectable",d)),draggable:Kn(Et(u,"draggable",d)),code:Kn(Et(u,"code",d)),defining:Kn(Et(u,"defining",d)),isolating:Kn(Et(u,"isolating",d)),attrs:Object.fromEntries(c.map(C=>{var b;return[C.name,{default:(b=C==null?void 0:C.attribute)===null||b===void 0?void 0:b.default}]}))}),m=Kn(Et(u,"parseHTML",d));m&&(h.parseDOM=m.map(C=>JH(C,c)));const A=Et(u,"renderHTML",d);A&&(h.toDOM=C=>A({node:C,HTMLAttributes:PF(C,c)}));const B=Et(u,"renderText",d);return B&&(h.toText=B),[u.name,h]})),s=Object.fromEntries(a.map(u=>{const c=r.filter(B=>B.type===u.name),d={name:u.name,options:u.options,storage:u.storage,editor:t},g=e.reduce((B,C)=>{const b=Et(C,"extendMarkSchema",d);return{...B,...b?b(u):{}}},{}),h=zH({...g,inclusive:Kn(Et(u,"inclusive",d)),excludes:Kn(Et(u,"excludes",d)),group:Kn(Et(u,"group",d)),spanning:Kn(Et(u,"spanning",d)),code:Kn(Et(u,"code",d)),attrs:Object.fromEntries(c.map(B=>{var C;return[B.name,{default:(C=B==null?void 0:B.attribute)===null||C===void 0?void 0:C.default}]}))}),m=Kn(Et(u,"parseHTML",d));m&&(h.parseDOM=m.map(B=>JH(B,c)));const A=Et(u,"renderHTML",d);return A&&(h.toDOM=B=>A({mark:B,HTMLAttributes:PF(B,c)})),[u.name,h]}));return new oZe({topNode:o,nodes:l,marks:s})}function EQ(e,t){return t.nodes[e]||t.marks[e]||null}function PH(e,t){return Array.isArray(t)?t.some(n=>(typeof n=="string"?n:n.name)===e.name):t}const oLe=(e,t=500)=>{let n="";const r=e.parentOffset;return e.parent.nodesBetween(Math.max(0,r-t),r,(i,a,o,l)=>{var s,u;const c=((u=(s=i.type.spec).toText)===null||u===void 0?void 0:u.call(s,{node:i,pos:a,parent:o,index:l}))||i.textContent||"%leaf%";n+=c.slice(0,Math.max(0,r-a))}),n};function TR(e){return Object.prototype.toString.call(e)==="[object RegExp]"}class lLe{constructor(t){this.find=t.find,this.handler=t.handler}}const sLe=(e,t)=>{if(TR(t))return t.exec(e);const n=t(e);if(!n)return null;const r=[n.text];return r.index=n.index,r.input=e,r.data=n.data,n.replaceWith&&(n.text.includes(n.replaceWith)||console.warn('[tiptap warn]: "inputRuleMatch.replaceWith" must be part of "inputRuleMatch.text".'),r.push(n.replaceWith)),r};function k2(e){var t;const{editor:n,from:r,to:i,text:a,rules:o,plugin:l}=e,{view:s}=n;if(s.composing)return!1;const u=s.state.doc.resolve(r);if(u.parent.type.spec.code||!((t=u.nodeBefore||u.nodeAfter)===null||t===void 0)&&t.marks.find(g=>g.type.spec.code))return!1;let c=!1;const d=oLe(u)+a;return o.forEach(g=>{if(c)return;const h=sLe(d,g.find);if(!h)return;const m=s.state.tr,A=j3({state:s.state,transaction:m}),B={from:r-(h[0].length-a.length),to:i},{commands:C,chain:b,can:Q}=new _3({editor:n,state:A});g.handler({state:A,range:B,match:h,commands:C,chain:b,can:Q})===null||!m.steps.length||(m.setMeta(l,{transform:m,from:r,to:i,text:a}),s.dispatch(m),c=!0)}),c}function uLe(e){const{editor:t,rules:n}=e,r=new Rl({state:{init(){return null},apply(i,a){const o=i.getMeta(r);if(o)return o;const l=i.getMeta("applyInputRules");return!!l&&setTimeout(()=>{const{from:u,text:c}=l,d=u+c.length;k2({editor:t,from:u,to:d,text:c,rules:n,plugin:r})}),i.selectionSet||i.docChanged?null:a}},props:{handleTextInput(i,a,o,l){return k2({editor:t,from:a,to:o,text:l,rules:n,plugin:r})},handleDOMEvents:{compositionend:i=>(setTimeout(()=>{const{$cursor:a}=i.state.selection;a&&k2({editor:t,from:a.pos,to:a.pos,text:"",rules:n,plugin:r})}),!1)},handleKeyDown(i,a){if(a.key!=="Enter")return!1;const{$cursor:o}=i.state.selection;return o?k2({editor:t,from:o.pos,to:o.pos,text:` +`,rules:n,plugin:r}):!1}},isInputRules:!0});return r}function cLe(e){return typeof e=="number"}const dLe=(e,t,n)=>{if(TR(t))return[...e.matchAll(t)];const r=t(e,n);return r?r.map(i=>{const a=[i.text];return a.index=i.index,a.input=e,a.data=i.data,i.replaceWith&&(i.text.includes(i.replaceWith)||console.warn('[tiptap warn]: "pasteRuleMatch.replaceWith" must be part of "pasteRuleMatch.text".'),a.push(i.replaceWith)),a}):[]};function pLe(e){const{editor:t,state:n,from:r,to:i,rule:a,pasteEvent:o,dropEvent:l}=e,{commands:s,chain:u,can:c}=new _3({editor:t,state:n}),d=[];return n.doc.nodesBetween(r,i,(h,m)=>{if(!h.isTextblock||h.type.spec.code)return;const A=Math.max(r,m),B=Math.min(i,m+h.content.size),C=h.textBetween(A-m,B-m,void 0,"");dLe(C,a.find,o).forEach(Q=>{if(Q.index===void 0)return;const F=A+Q.index+1,K=F+Q[0].length,y={from:n.tr.mapping.map(F),to:n.tr.mapping.map(K)},G=a.handler({state:n,range:y,match:Q,commands:s,chain:u,can:c,pasteEvent:o,dropEvent:l});d.push(G)})}),d.every(h=>h!==null)}const gLe=e=>{var t;const n=new ClipboardEvent("paste",{clipboardData:new DataTransfer});return(t=n.clipboardData)===null||t===void 0||t.setData("text/html",e),n};function hLe(e){const{editor:t,rules:n}=e;let r=null,i=!1,a=!1,o=typeof ClipboardEvent<"u"?new ClipboardEvent("paste"):null,l=typeof DragEvent<"u"?new DragEvent("drop"):null;const s=({state:c,from:d,to:g,rule:h,pasteEvt:m})=>{const A=c.tr,B=j3({state:c,transaction:A});if(!(!pLe({editor:t,state:B,from:Math.max(d-1,0),to:g.b-1,rule:h,pasteEvent:m,dropEvent:l})||!A.steps.length))return l=typeof DragEvent<"u"?new DragEvent("drop"):null,o=typeof ClipboardEvent<"u"?new ClipboardEvent("paste"):null,A};return n.map(c=>new Rl({view(d){const g=h=>{var m;r=!((m=d.dom.parentElement)===null||m===void 0)&&m.contains(h.target)?d.dom.parentElement:null};return window.addEventListener("dragstart",g),{destroy(){window.removeEventListener("dragstart",g)}}},props:{handleDOMEvents:{drop:(d,g)=>(a=r===d.dom.parentElement,l=g,!1),paste:(d,g)=>{var h;const m=(h=g.clipboardData)===null||h===void 0?void 0:h.getData("text/html");return o=g,i=!!(m!=null&&m.includes("data-pm-slice")),!1}}},appendTransaction:(d,g,h)=>{const m=d[0],A=m.getMeta("uiEvent")==="paste"&&!i,B=m.getMeta("uiEvent")==="drop"&&!a,C=m.getMeta("applyPasteRules"),b=!!C;if(!A&&!B&&!b)return;if(b){const{from:K,text:y}=C,G=K+y.length,X=gLe(y);return s({rule:c,state:h,from:K,to:{b:G},pasteEvt:X})}const Q=g.doc.content.findDiffStart(h.doc.content),F=g.doc.content.findDiffEnd(h.doc.content);if(!(!cLe(Q)||!F||Q===F.b))return s({rule:c,state:h,from:Q,to:F,pasteEvt:o})}}))}function fLe(e){const t=e.filter((n,r)=>e.indexOf(n)!==r);return[...new Set(t)]}class Sp{constructor(t,n){this.splittableMarks=[],this.editor=n,this.extensions=Sp.resolve(t),this.schema=aLe(this.extensions,n),this.setupExtensions()}static resolve(t){const n=Sp.sort(Sp.flatten(t)),r=fLe(n.map(i=>i.name));return r.length&&console.warn(`[tiptap warn]: Duplicate extension names found: [${r.map(i=>`'${i}'`).join(", ")}]. This can lead to issues.`),n}static flatten(t){return t.map(n=>{const r={name:n.name,options:n.options,storage:n.storage},i=Et(n,"addExtensions",r);return i?[n,...this.flatten(i())]:n}).flat(10)}static sort(t){return t.sort((r,i)=>{const a=Et(r,"priority")||100,o=Et(i,"priority")||100;return a>o?-1:a{const r={name:n.name,options:n.options,storage:n.storage,editor:this.editor,type:EQ(n.name,this.schema)},i=Et(n,"addCommands",r);return i?{...t,...i()}:t},{})}get plugins(){const{editor:t}=this,n=Sp.sort([...this.extensions].reverse()),r=[],i=[],a=n.map(o=>{const l={name:o.name,options:o.options,storage:o.storage,editor:t,type:EQ(o.name,this.schema)},s=[],u=Et(o,"addKeyboardShortcuts",l);let c={};if(o.type==="mark"&&o.config.exitable&&(c.ArrowRight=()=>a4.handleExit({editor:t,mark:o})),u){const A=Object.fromEntries(Object.entries(u()).map(([B,C])=>[B,()=>C({editor:t})]));c={...c,...A}}const d=RXe(c);s.push(d);const g=Et(o,"addInputRules",l);PH(o,t.options.enableInputRules)&&g&&r.push(...g());const h=Et(o,"addPasteRules",l);PH(o,t.options.enablePasteRules)&&h&&i.push(...h());const m=Et(o,"addProseMirrorPlugins",l);if(m){const A=m();s.push(...A)}return s}).flat();return[uLe({editor:t,rules:r}),...hLe({editor:t,rules:i}),...a]}get attributes(){return Rj(this.extensions)}get nodeViews(){const{editor:t}=this,{nodeExtensions:n}=$3(this.extensions);return Object.fromEntries(n.filter(r=>!!Et(r,"addNodeView")).map(r=>{const i=this.attributes.filter(s=>s.type===r.name),a={name:r.name,options:r.options,storage:r.storage,editor:t,type:ui(r.name,this.schema)},o=Et(r,"addNodeView",a);if(!o)return[];const l=(s,u,c,d)=>{const g=PF(s,i);return o()({editor:t,node:s,getPos:c,decorations:d,HTMLAttributes:g,extension:r})};return[r.name,l]}))}setupExtensions(){this.extensions.forEach(t=>{var n;this.editor.extensionStorage[t.name]=t.storage;const r={name:t.name,options:t.options,storage:t.storage,editor:this.editor,type:EQ(t.name,this.schema)};t.type==="mark"&&(!((n=Kn(Et(t,"keepOnSplit",r)))!==null&&n!==void 0)||n)&&this.splittableMarks.push(t.name);const i=Et(t,"onBeforeCreate",r),a=Et(t,"onCreate",r),o=Et(t,"onUpdate",r),l=Et(t,"onSelectionUpdate",r),s=Et(t,"onTransaction",r),u=Et(t,"onFocus",r),c=Et(t,"onBlur",r),d=Et(t,"onDestroy",r);i&&this.editor.on("beforeCreate",i),a&&this.editor.on("create",a),o&&this.editor.on("update",o),l&&this.editor.on("selectionUpdate",l),s&&this.editor.on("transaction",s),u&&this.editor.on("focus",u),c&&this.editor.on("blur",c),d&&this.editor.on("destroy",d)})}}function mLe(e){return Object.prototype.toString.call(e).slice(8,-1)}function RQ(e){return mLe(e)!=="Object"?!1:e.constructor===Object&&Object.getPrototypeOf(e)===Object.prototype}function q3(e,t){const n={...e};return RQ(e)&&RQ(t)&&Object.keys(t).forEach(r=>{RQ(t[r])?r in e?n[r]=q3(e[r],t[r]):Object.assign(n,{[r]:t[r]}):Object.assign(n,{[r]:t[r]})}),n}class yl{constructor(t={}){this.type="extension",this.name="extension",this.parent=null,this.child=null,this.config={name:this.name,defaultOptions:{}},this.config={...this.config,...t},this.name=this.config.name,t.defaultOptions&&Object.keys(t.defaultOptions).length>0&&console.warn(`[tiptap warn]: BREAKING CHANGE: "defaultOptions" is deprecated. Please use "addOptions" instead. Found in extension: "${this.name}".`),this.options=this.config.defaultOptions,this.config.addOptions&&(this.options=Kn(Et(this,"addOptions",{name:this.name}))),this.storage=Kn(Et(this,"addStorage",{name:this.name,options:this.options}))||{}}static create(t={}){return new yl(t)}configure(t={}){const n=this.extend();return n.parent=this.parent,n.options=q3(this.options,t),n.storage=Kn(Et(n,"addStorage",{name:n.name,options:n.options})),n}extend(t={}){const n=new yl({...this.config,...t});return n.parent=this,this.child=n,n.name=t.name?t.name:n.parent.name,t.defaultOptions&&console.warn(`[tiptap warn]: BREAKING CHANGE: "defaultOptions" is deprecated. Please use "addOptions" instead. Found in extension: "${n.name}".`),n.options=Kn(Et(n,"addOptions",{name:n.name})),n.storage=Kn(Et(n,"addStorage",{name:n.name,options:n.options})),n}}function xj(e,t,n){const{from:r,to:i}=t,{blockSeparator:a=` + +`,textSerializers:o={}}=n||{};let l="";return e.nodesBetween(r,i,(s,u,c,d)=>{var g;s.isBlock&&u>r&&(l+=a);const h=o==null?void 0:o[s.type.name];if(h)return c&&(l+=h({node:s,pos:u,parent:c,index:d,range:t})),!1;s.isText&&(l+=(g=s==null?void 0:s.text)===null||g===void 0?void 0:g.slice(Math.max(r,u)-u,i-u))}),l}function Gj(e){return Object.fromEntries(Object.entries(e.nodes).filter(([,t])=>t.spec.toText).map(([t,n])=>[t,n.spec.toText]))}const ALe=yl.create({name:"clipboardTextSerializer",addOptions(){return{blockSeparator:void 0}},addProseMirrorPlugins(){return[new Rl({key:new Sl("clipboardTextSerializer"),props:{clipboardTextSerializer:()=>{const{editor:e}=this,{state:t,schema:n}=e,{doc:r,selection:i}=t,{ranges:a}=i,o=Math.min(...a.map(c=>c.$from.pos)),l=Math.max(...a.map(c=>c.$to.pos)),s=Gj(n);return xj(r,{from:o,to:l},{...this.options.blockSeparator!==void 0?{blockSeparator:this.options.blockSeparator}:{},textSerializers:s})}}})]}}),CLe=()=>({editor:e,view:t})=>(requestAnimationFrame(()=>{var n;e.isDestroyed||(t.dom.blur(),(n=window==null?void 0:window.getSelection())===null||n===void 0||n.removeAllRanges())}),!0),BLe=(e=!1)=>({commands:t})=>t.setContent("",e),wLe=()=>({state:e,tr:t,dispatch:n})=>{const{selection:r}=t,{ranges:i}=r;return n&&i.forEach(({$from:a,$to:o})=>{e.doc.nodesBetween(a.pos,o.pos,(l,s)=>{if(l.type.isText)return;const{doc:u,mapping:c}=t,d=u.resolve(c.map(s)),g=u.resolve(c.map(s+l.nodeSize)),h=d.blockRange(g);if(!h)return;const m=z1(h);if(l.type.isTextblock){const{defaultType:A}=d.parent.contentMatchAt(d.index());t.setNodeMarkup(h.start,A)}(m||m===0)&&t.lift(h,m)})}),!0},bLe=e=>t=>e(t),vLe=()=>({state:e,dispatch:t})=>YXe(e,t),KLe=(e,t)=>({editor:n,tr:r})=>{const{state:i}=n,a=i.doc.slice(e.from,e.to);r.deleteRange(e.from,e.to);const o=r.mapping.map(t);return r.insert(o,a.content),r.setSelection(new fn(r.doc.resolve(o-1))),!0},QLe=()=>({tr:e,dispatch:t})=>{const{selection:n}=e,r=n.$anchor.node();if(r.content.size>0)return!1;const i=e.selection.$anchor;for(let a=i.depth;a>0;a-=1)if(i.node(a).type===r.type){if(t){const l=i.before(a),s=i.after(a);e.delete(l,s).scrollIntoView()}return!0}return!1},WLe=e=>({tr:t,state:n,dispatch:r})=>{const i=ui(e,n.schema),a=t.selection.$anchor;for(let o=a.depth;o>0;o-=1)if(a.node(o).type===i){if(r){const s=a.before(o),u=a.after(o);t.delete(s,u).scrollIntoView()}return!0}return!1},yLe=e=>({tr:t,dispatch:n})=>{const{from:r,to:i}=e;return n&&t.delete(r,i),!0},FLe=()=>({state:e,dispatch:t})=>xXe(e,t),ELe=()=>({commands:e})=>e.keyboardShortcut("Enter"),RLe=()=>({state:e,dispatch:t})=>VXe(e,t);function r4(e,t,n={strict:!0}){const r=Object.keys(t);return r.length?r.every(i=>n.strict?t[i]===e[i]:TR(t[i])?t[i].test(e[i]):t[i]===e[i]):!0}function jF(e,t,n={}){return e.find(r=>r.type===t&&r4(r.attrs,n))}function SLe(e,t,n={}){return!!jF(e,t,n)}function kj(e,t,n={}){if(!e||!t)return;let r=e.parent.childAfter(e.parentOffset);if(e.parentOffset===r.offset&&r.offset!==0&&(r=e.parent.childBefore(e.parentOffset)),!r.node)return;const i=jF([...r.node.marks],t,n);if(!i)return;let a=r.index,o=e.start()+r.offset,l=a+1,s=o+r.node.nodeSize;for(jF([...r.node.marks],t,n);a>0&&i.isInSet(e.parent.child(a-1).marks);)a-=1,o-=e.parent.child(a).nodeSize;for(;l({tr:n,state:r,dispatch:i})=>{const a=Jc(e,r.schema),{doc:o,selection:l}=n,{$from:s,from:u,to:c}=l;if(i){const d=kj(s,a,t);if(d&&d.from<=u&&d.to>=c){const g=fn.create(o,d.from,d.to);n.setSelection(g)}}return!0},GLe=e=>t=>{const n=typeof e=="function"?e(t):e;for(let r=0;r({editor:n,view:r,tr:i,dispatch:a})=>{t={scrollIntoView:!0,...t};const o=()=>{ew()&&r.dom.focus(),requestAnimationFrame(()=>{n.isDestroyed||(r.focus(),t!=null&&t.scrollIntoView&&n.commands.scrollIntoView())})};if(r.hasFocus()&&e===null||e===!1)return!0;if(a&&e===null&&!Dj(n.state.selection))return o(),!0;const l=Nj(i.doc,e)||n.state.selection,s=n.state.selection.eq(l);return a&&(s||i.setSelection(l),s&&i.storedMarks&&i.setStoredMarks(i.storedMarks),o()),!0},DLe=(e,t)=>n=>e.every((r,i)=>t(r,{...n,index:i})),NLe=(e,t)=>({tr:n,commands:r})=>r.insertContentAt({from:n.selection.from,to:n.selection.to},e,t),Zj=e=>{const t=e.childNodes;for(let n=t.length-1;n>=0;n-=1){const r=t[n];r.nodeType===3&&r.nodeValue&&/^(\n\s\s|\n)$/.test(r.nodeValue)?e.removeChild(r):r.nodeType===1&&Zj(r)}return e};function jH(e){const t=`${e}`,n=new window.DOMParser().parseFromString(t,"text/html").body;return Zj(n)}function i4(e,t,n){n={slice:!0,parseOptions:{},...n};const r=typeof e=="object"&&e!==null,i=typeof e=="string";if(r)try{return Array.isArray(e)&&e.length>0?je.fromArray(e.map(o=>t.nodeFromJSON(o))):t.nodeFromJSON(e)}catch(a){return console.warn("[tiptap warn]: Invalid content.","Passed value:",e,"Error:",a),i4("",t,n)}if(i){const a=ER.fromSchema(t);return n.slice?a.parseSlice(jH(e),n.parseOptions).content:a.parse(jH(e),n.parseOptions)}return i4("",t,n)}function ZLe(e,t,n){const r=e.steps.length-1;if(r{o===0&&(o=c)}),e.setSelection(wn.near(e.doc.resolve(o),n))}const HLe=e=>e.toString().startsWith("<"),XLe=(e,t,n)=>({tr:r,dispatch:i,editor:a})=>{if(i){n={parseOptions:{},updateSelection:!0,applyInputRules:!1,applyPasteRules:!1,...n};const o=i4(t,a.schema,{parseOptions:{preserveWhitespace:"full",...n.parseOptions}});if(o.toString()==="<>")return!0;let{from:l,to:s}=typeof e=="number"?{from:e,to:e}:{from:e.from,to:e.to},u=!0,c=!0;if((HLe(o)?o:[o]).forEach(h=>{h.check(),u=u?h.isText&&h.marks.length===0:!1,c=c?h.isBlock:!1}),l===s&&c){const{parent:h}=r.doc.resolve(l);h.isTextblock&&!h.type.spec.code&&!h.childCount&&(l-=1,s+=1)}let g;u?(Array.isArray(t)?g=t.map(h=>h.text||"").join(""):typeof t=="object"&&t&&t.text?g=t.text:g=t,r.insertText(g,l,s)):(g=o,r.replaceWith(l,s,g)),n.updateSelection&&ZLe(r,r.steps.length-1,-1),n.applyInputRules&&r.setMeta("applyInputRules",{from:l,text:g}),n.applyPasteRules&&r.setMeta("applyPasteRules",{from:l,text:g})}return!0},LLe=()=>({state:e,dispatch:t})=>XXe(e,t),MLe=()=>({state:e,dispatch:t})=>LXe(e,t),TLe=()=>({state:e,dispatch:t})=>GXe(e,t),VLe=()=>({state:e,dispatch:t})=>ZXe(e,t),YLe=()=>({tr:e,state:t,dispatch:n})=>{try{const r=I3(t.doc,t.selection.$from.pos,-1);return r==null?!1:(e.join(r,2),n&&n(e),!0)}catch{return!1}},ILe=()=>({state:e,dispatch:t,tr:n})=>{try{const r=I3(e.doc,e.selection.$from.pos,1);return r==null?!1:(n.join(r,2),t&&t(n),!0)}catch{return!1}},ULe=()=>({state:e,dispatch:t})=>kXe(e,t),OLe=()=>({state:e,dispatch:t})=>DXe(e,t);function Hj(){return typeof navigator<"u"?/Mac/.test(navigator.platform):!1}function JLe(e){const t=e.split(/-(?!$)/);let n=t[t.length-1];n==="Space"&&(n=" ");let r,i,a,o;for(let l=0;l({editor:t,view:n,tr:r,dispatch:i})=>{const a=JLe(e).split(/-(?!$)/),o=a.find(u=>!["Alt","Ctrl","Meta","Shift"].includes(u)),l=new KeyboardEvent("keydown",{key:o==="Space"?" ":o,altKey:a.includes("Alt"),ctrlKey:a.includes("Ctrl"),metaKey:a.includes("Meta"),shiftKey:a.includes("Shift"),bubbles:!0,cancelable:!0}),s=t.captureTransaction(()=>{n.someProp("handleKeyDown",u=>u(n,l))});return s==null||s.steps.forEach(u=>{const c=u.map(r.mapping);c&&i&&r.maybeStep(c)}),!0};function Nf(e,t,n={}){const{from:r,to:i,empty:a}=e.selection,o=t?ui(t,e.schema):null,l=[];e.doc.nodesBetween(r,i,(d,g)=>{if(d.isText)return;const h=Math.max(r,g),m=Math.min(i,g+d.nodeSize);l.push({node:d,from:h,to:m})});const s=i-r,u=l.filter(d=>o?o.name===d.node.type.name:!0).filter(d=>r4(d.node.attrs,n,{strict:!1}));return a?!!u.length:u.reduce((d,g)=>d+g.to-g.from,0)>=s}const PLe=(e,t={})=>({state:n,dispatch:r})=>{const i=ui(e,n.schema);return Nf(n,i,t)?MXe(n,r):!1},jLe=()=>({state:e,dispatch:t})=>IXe(e,t),_Le=e=>({state:t,dispatch:n})=>{const r=ui(e,t.schema);return $Xe(r)(t,n)},$Le=()=>({state:e,dispatch:t})=>TXe(e,t);function tw(e,t){return t.nodes[e]?"node":t.marks[e]?"mark":null}function _H(e,t){const n=typeof t=="string"?[t]:t;return Object.keys(e).reduce((r,i)=>(n.includes(i)||(r[i]=e[i]),r),{})}const qLe=(e,t)=>({tr:n,state:r,dispatch:i})=>{let a=null,o=null;const l=tw(typeof e=="string"?e:e.name,r.schema);return l?(l==="node"&&(a=ui(e,r.schema)),l==="mark"&&(o=Jc(e,r.schema)),i&&n.selection.ranges.forEach(s=>{r.doc.nodesBetween(s.$from.pos,s.$to.pos,(u,c)=>{a&&a===u.type&&n.setNodeMarkup(c,void 0,_H(u.attrs,t)),o&&u.marks.length&&u.marks.forEach(d=>{o===d.type&&n.addMark(c,c+u.nodeSize,o.create(_H(d.attrs,t)))})})}),!0):!1},eMe=()=>({tr:e,dispatch:t})=>(t&&e.scrollIntoView(),!0),tMe=()=>({tr:e,commands:t})=>t.setTextSelection({from:0,to:e.doc.content.size}),nMe=()=>({state:e,dispatch:t})=>NXe(e,t),rMe=()=>({state:e,dispatch:t})=>HXe(e,t),iMe=()=>({state:e,dispatch:t})=>UXe(e,t),aMe=()=>({state:e,dispatch:t})=>zXe(e,t),oMe=()=>({state:e,dispatch:t})=>JXe(e,t);function Xj(e,t,n={}){return i4(e,t,{slice:!1,parseOptions:n})}const lMe=(e,t=!1,n={})=>({tr:r,editor:i,dispatch:a})=>{const{doc:o}=r,l=Xj(e,i.schema,n);return a&&r.replaceWith(0,o.content.size,l).setMeta("preventUpdate",!t),!0};function Lj(e,t){const n=Jc(t,e.schema),{from:r,to:i,empty:a}=e.selection,o=[];a?(e.storedMarks&&o.push(...e.storedMarks),o.push(...e.selection.$head.marks())):e.doc.nodesBetween(r,i,s=>{o.push(...s.marks)});const l=o.find(s=>s.type.name===n.name);return l?{...l.attrs}:{}}function sMe(e){for(let t=0;t0;n-=1){const r=e.node(n);if(t(r))return{pos:n>0?e.before(n):0,start:e.start(n),depth:n,node:r}}}function VR(e){return t=>uMe(t.$from,e)}function cMe(e,t){const n=es.fromSchema(t).serializeFragment(e),i=document.implementation.createHTMLDocument().createElement("div");return i.appendChild(n),i.innerHTML}function dMe(e,t){const n={from:0,to:e.content.size};return xj(e,n,t)}function pMe(e,t){const n=ui(t,e.schema),{from:r,to:i}=e.selection,a=[];e.doc.nodesBetween(r,i,l=>{a.push(l)});const o=a.reverse().find(l=>l.type.name===n.name);return o?{...o.attrs}:{}}function gMe(e,t){const n=tw(typeof t=="string"?t:t.name,e.schema);return n==="node"?pMe(e,t):n==="mark"?Lj(e,t):{}}function wC(e,t,n){return Object.fromEntries(Object.entries(n).filter(([r])=>{const i=e.find(a=>a.type===t&&a.name===r);return i?i.attribute.keepOnSplit:!1}))}function _F(e,t,n={}){const{empty:r,ranges:i}=e.selection,a=t?Jc(t,e.schema):null;if(r)return!!(e.storedMarks||e.selection.$from.marks()).filter(d=>a?a.name===d.type.name:!0).find(d=>r4(d.attrs,n,{strict:!1}));let o=0;const l=[];if(i.forEach(({$from:d,$to:g})=>{const h=d.pos,m=g.pos;e.doc.nodesBetween(h,m,(A,B)=>{if(!A.isText&&!A.marks.length)return;const C=Math.max(h,B),b=Math.min(m,B+A.nodeSize),Q=b-C;o+=Q,l.push(...A.marks.map(F=>({mark:F,from:C,to:b})))})}),o===0)return!1;const s=l.filter(d=>a?a.name===d.mark.type.name:!0).filter(d=>r4(d.mark.attrs,n,{strict:!1})).reduce((d,g)=>d+g.to-g.from,0),u=l.filter(d=>a?d.mark.type!==a&&d.mark.type.excludes(a):!0).reduce((d,g)=>d+g.to-g.from,0);return(s>0?s+u:s)>=o}function hMe(e,t,n={}){if(!t)return Nf(e,null,n)||_F(e,null,n);const r=tw(t,e.schema);return r==="node"?Nf(e,t,n):r==="mark"?_F(e,t,n):!1}function $H(e,t){const{nodeExtensions:n}=$3(t),r=n.find(o=>o.name===e);if(!r)return!1;const i={name:r.name,options:r.options,storage:r.storage},a=Kn(Et(r,"group",i));return typeof a!="string"?!1:a.split(" ").includes("list")}function fMe(e){var t;const n=(t=e.type.createAndFill())===null||t===void 0?void 0:t.toJSON(),r=e.toJSON();return JSON.stringify(n)===JSON.stringify(r)}function mMe(e,t,n){var r;const{selection:i}=t;let a=null;if(Dj(i)&&(a=i.$cursor),a){const l=(r=e.storedMarks)!==null&&r!==void 0?r:a.marks();return!!n.isInSet(l)||!l.some(s=>s.type.excludes(n))}const{ranges:o}=i;return o.some(({$from:l,$to:s})=>{let u=l.depth===0?e.doc.inlineContent&&e.doc.type.allowsMarkType(n):!1;return e.doc.nodesBetween(l.pos,s.pos,(c,d,g)=>{if(u)return!1;if(c.isInline){const h=!g||g.type.allowsMarkType(n),m=!!n.isInSet(c.marks)||!c.marks.some(A=>A.type.excludes(n));u=h&&m}return!u}),u})}const AMe=(e,t={})=>({tr:n,state:r,dispatch:i})=>{const{selection:a}=n,{empty:o,ranges:l}=a,s=Jc(e,r.schema);if(i)if(o){const u=Lj(r,s);n.addStoredMark(s.create({...u,...t}))}else l.forEach(u=>{const c=u.$from.pos,d=u.$to.pos;r.doc.nodesBetween(c,d,(g,h)=>{const m=Math.max(h,c),A=Math.min(h+g.nodeSize,d);g.marks.find(C=>C.type===s)?g.marks.forEach(C=>{s===C.type&&n.addMark(m,A,s.create({...C.attrs,...t}))}):n.addMark(m,A,s.create(t))})});return mMe(r,n,s)},CMe=(e,t)=>({tr:n})=>(n.setMeta(e,t),!0),BMe=(e,t={})=>({state:n,dispatch:r,chain:i})=>{const a=ui(e,n.schema);return a.isTextblock?i().command(({commands:o})=>OH(a,t)(n)?!0:o.clearNodes()).command(({state:o})=>OH(a,t)(o,r)).run():(console.warn('[tiptap warn]: Currently "setNode()" only supports text block nodes.'),!1)},wMe=e=>({tr:t,dispatch:n})=>{if(n){const{doc:r}=t,i=x0(e,0,r.content.size),a=Ut.create(r,i);t.setSelection(a)}return!0},bMe=e=>({tr:t,dispatch:n})=>{if(n){const{doc:r}=t,{from:i,to:a}=typeof e=="number"?{from:e,to:e}:e,o=fn.atStart(r).from,l=fn.atEnd(r).to,s=x0(i,o,l),u=x0(a,o,l),c=fn.create(r,s,u);t.setSelection(c)}return!0},vMe=e=>({state:t,dispatch:n})=>{const r=ui(e,t.schema);return tLe(r)(t,n)};function qH(e,t){const n=e.storedMarks||e.selection.$to.parentOffset&&e.selection.$from.marks();if(n){const r=n.filter(i=>t==null?void 0:t.includes(i.type.name));e.tr.ensureMarks(r)}}const KMe=({keepMarks:e=!0}={})=>({tr:t,state:n,dispatch:r,editor:i})=>{const{selection:a,doc:o}=t,{$from:l,$to:s}=a,u=i.extensionManager.attributes,c=wC(u,l.node().type.name,l.node().attrs);if(a instanceof Ut&&a.node.isBlock)return!l.parentOffset||!Pp(o,l.pos)?!1:(r&&(e&&qH(n,i.extensionManager.splittableMarks),t.split(l.pos).scrollIntoView()),!0);if(!l.parent.isBlock)return!1;if(r){const d=s.parentOffset===s.parent.content.size;a instanceof fn&&t.deleteSelection();const g=l.depth===0?void 0:sMe(l.node(-1).contentMatchAt(l.indexAfter(-1)));let h=d&&g?[{type:g,attrs:c}]:void 0,m=Pp(t.doc,t.mapping.map(l.pos),1,h);if(!h&&!m&&Pp(t.doc,t.mapping.map(l.pos),1,g?[{type:g}]:void 0)&&(m=!0,h=g?[{type:g,attrs:c}]:void 0),m&&(t.split(t.mapping.map(l.pos),1,h),g&&!d&&!l.parentOffset&&l.parent.type!==g)){const A=t.mapping.map(l.before()),B=t.doc.resolve(A);l.node(-1).canReplaceWith(B.index(),B.index()+1,g)&&t.setNodeMarkup(t.mapping.map(l.before()),g)}e&&qH(n,i.extensionManager.splittableMarks),t.scrollIntoView()}return!0},QMe=e=>({tr:t,state:n,dispatch:r,editor:i})=>{var a;const o=ui(e,n.schema),{$from:l,$to:s}=n.selection,u=n.selection.node;if(u&&u.isBlock||l.depth<2||!l.sameParent(s))return!1;const c=l.node(-1);if(c.type!==o)return!1;const d=i.extensionManager.attributes;if(l.parent.content.size===0&&l.node(-1).childCount===l.indexAfter(-1)){if(l.depth===2||l.node(-3).type!==o||l.index(-2)!==l.node(-2).childCount-1)return!1;if(r){let B=je.empty;const C=l.index(-1)?1:l.index(-2)?2:3;for(let G=l.depth-C;G>=l.depth-3;G-=1)B=je.from(l.node(G).copy(B));const b=l.indexAfter(-1){if(y>-1)return!1;G.isTextblock&&G.content.size===0&&(y=X+1)}),y>-1&&t.setSelection(fn.near(t.doc.resolve(y))),t.scrollIntoView()}return!0}const g=s.pos===l.end()?c.contentMatchAt(0).defaultType:null,h=wC(d,c.type.name,c.attrs),m=wC(d,l.node().type.name,l.node().attrs);t.delete(l.pos,s.pos);const A=g?[{type:o,attrs:h},{type:g,attrs:m}]:[{type:o,attrs:h}];if(!Pp(t.doc,l.pos,2))return!1;if(r){const{selection:B,storedMarks:C}=n,{splittableMarks:b}=i.extensionManager,Q=C||B.$to.parentOffset&&B.$from.marks();if(t.split(l.pos,2,A).scrollIntoView(),!Q||!r)return!0;const F=Q.filter(K=>b.includes(K.type.name));t.ensureMarks(F)}return!0},SQ=(e,t)=>{const n=VR(o=>o.type===t)(e.selection);if(!n)return!0;const r=e.doc.resolve(Math.max(0,n.pos-1)).before(n.depth);if(r===void 0)return!0;const i=e.doc.nodeAt(r);return n.node.type===(i==null?void 0:i.type)&&Cd(e.doc,n.pos)&&e.join(n.pos),!0},xQ=(e,t)=>{const n=VR(o=>o.type===t)(e.selection);if(!n)return!0;const r=e.doc.resolve(n.start).after(n.depth);if(r===void 0)return!0;const i=e.doc.nodeAt(r);return n.node.type===(i==null?void 0:i.type)&&Cd(e.doc,r)&&e.join(r),!0},WMe=(e,t,n,r={})=>({editor:i,tr:a,state:o,dispatch:l,chain:s,commands:u,can:c})=>{const{extensions:d,splittableMarks:g}=i.extensionManager,h=ui(e,o.schema),m=ui(t,o.schema),{selection:A,storedMarks:B}=o,{$from:C,$to:b}=A,Q=C.blockRange(b),F=B||A.$to.parentOffset&&A.$from.marks();if(!Q)return!1;const K=VR(y=>$H(y.type.name,d))(A);if(Q.depth>=1&&K&&Q.depth-K.depth<=1){if(K.node.type===h)return u.liftListItem(m);if($H(K.node.type.name,d)&&h.validContent(K.node.content)&&l)return s().command(()=>(a.setNodeMarkup(K.pos,h),!0)).command(()=>SQ(a,h)).command(()=>xQ(a,h)).run()}return!n||!F||!l?s().command(()=>c().wrapInList(h,r)?!0:u.clearNodes()).wrapInList(h,r).command(()=>SQ(a,h)).command(()=>xQ(a,h)).run():s().command(()=>{const y=c().wrapInList(h,r),G=F.filter(X=>g.includes(X.type.name));return a.ensureMarks(G),y?!0:u.clearNodes()}).wrapInList(h,r).command(()=>SQ(a,h)).command(()=>xQ(a,h)).run()},yMe=(e,t={},n={})=>({state:r,commands:i})=>{const{extendEmptyMarkRange:a=!1}=n,o=Jc(e,r.schema);return _F(r,o,t)?i.unsetMark(o,{extendEmptyMarkRange:a}):i.setMark(o,t)},FMe=(e,t,n={})=>({state:r,commands:i})=>{const a=ui(e,r.schema),o=ui(t,r.schema);return Nf(r,a,n)?i.setNode(o):i.setNode(a,n)},EMe=(e,t={})=>({state:n,commands:r})=>{const i=ui(e,n.schema);return Nf(n,i,t)?r.lift(i):r.wrapIn(i,t)},RMe=()=>({state:e,dispatch:t})=>{const n=e.plugins;for(let r=0;r=0;s-=1)o.step(l.steps[s].invert(l.docs[s]));if(a.text){const s=o.doc.resolve(a.from).marks();o.replaceWith(a.from,a.to,e.schema.text(a.text,s))}else o.delete(a.from,a.to)}return!0}}return!1},SMe=()=>({tr:e,dispatch:t})=>{const{selection:n}=e,{empty:r,ranges:i}=n;return r||t&&i.forEach(a=>{e.removeMark(a.$from.pos,a.$to.pos)}),!0},xMe=(e,t={})=>({tr:n,state:r,dispatch:i})=>{var a;const{extendEmptyMarkRange:o=!1}=t,{selection:l}=n,s=Jc(e,r.schema),{$from:u,empty:c,ranges:d}=l;if(!i)return!0;if(c&&o){let{from:g,to:h}=l;const m=(a=u.marks().find(B=>B.type===s))===null||a===void 0?void 0:a.attrs,A=kj(u,s,m);A&&(g=A.from,h=A.to),n.removeMark(g,h,s)}else d.forEach(g=>{n.removeMark(g.$from.pos,g.$to.pos,s)});return n.removeStoredMark(s),!0},GMe=(e,t={})=>({tr:n,state:r,dispatch:i})=>{let a=null,o=null;const l=tw(typeof e=="string"?e:e.name,r.schema);return l?(l==="node"&&(a=ui(e,r.schema)),l==="mark"&&(o=Jc(e,r.schema)),i&&n.selection.ranges.forEach(s=>{const u=s.$from.pos,c=s.$to.pos;r.doc.nodesBetween(u,c,(d,g)=>{a&&a===d.type&&n.setNodeMarkup(g,void 0,{...d.attrs,...t}),o&&d.marks.length&&d.marks.forEach(h=>{if(o===h.type){const m=Math.max(g,u),A=Math.min(g+d.nodeSize,c);n.addMark(m,A,o.create({...h.attrs,...t}))}})})}),!0):!1},kMe=(e,t={})=>({state:n,dispatch:r})=>{const i=ui(e,n.schema);return PXe(i,t)(n,r)},DMe=(e,t={})=>({state:n,dispatch:r})=>{const i=ui(e,n.schema);return jXe(i,t)(n,r)};var NMe=Object.freeze({__proto__:null,blur:CLe,clearContent:BLe,clearNodes:wLe,command:bLe,createParagraphNear:vLe,cut:KLe,deleteCurrentNode:QLe,deleteNode:WLe,deleteRange:yLe,deleteSelection:FLe,enter:ELe,exitCode:RLe,extendMarkRange:xLe,first:GLe,focus:kLe,forEach:DLe,insertContent:NLe,insertContentAt:XLe,joinUp:LLe,joinDown:MLe,joinBackward:TLe,joinForward:VLe,joinItemBackward:YLe,joinItemForward:ILe,joinTextblockBackward:ULe,joinTextblockForward:OLe,keyboardShortcut:zLe,lift:PLe,liftEmptyBlock:jLe,liftListItem:_Le,newlineInCode:$Le,resetAttributes:qLe,scrollIntoView:eMe,selectAll:tMe,selectNodeBackward:nMe,selectNodeForward:rMe,selectParentNode:iMe,selectTextblockEnd:aMe,selectTextblockStart:oMe,setContent:lMe,setMark:AMe,setMeta:CMe,setNode:BMe,setNodeSelection:wMe,setTextSelection:bMe,sinkListItem:vMe,splitBlock:KMe,splitListItem:QMe,toggleList:WMe,toggleMark:yMe,toggleNode:FMe,toggleWrap:EMe,undoInputRule:RMe,unsetAllMarks:SMe,unsetMark:xMe,updateAttributes:GMe,wrapIn:kMe,wrapInList:DMe});const ZMe=yl.create({name:"commands",addCommands(){return{...NMe}}}),HMe=yl.create({name:"editable",addProseMirrorPlugins(){return[new Rl({key:new Sl("editable"),props:{editable:()=>this.editor.options.editable}})]}}),XMe=yl.create({name:"focusEvents",addProseMirrorPlugins(){const{editor:e}=this;return[new Rl({key:new Sl("focusEvents"),props:{handleDOMEvents:{focus:(t,n)=>{e.isFocused=!0;const r=e.state.tr.setMeta("focus",{event:n}).setMeta("addToHistory",!1);return t.dispatch(r),!1},blur:(t,n)=>{e.isFocused=!1;const r=e.state.tr.setMeta("blur",{event:n}).setMeta("addToHistory",!1);return t.dispatch(r),!1}}}})]}}),LMe=yl.create({name:"keymap",addKeyboardShortcuts(){const e=()=>this.editor.commands.first(({commands:o})=>[()=>o.undoInputRule(),()=>o.command(({tr:l})=>{const{selection:s,doc:u}=l,{empty:c,$anchor:d}=s,{pos:g,parent:h}=d,m=d.parent.isTextblock&&g>0?l.doc.resolve(g-1):d,A=m.parent.type.spec.isolating,B=d.pos-d.parentOffset,C=A&&m.parent.childCount===1?B===d.pos:wn.atStart(u).from===g;return!c||!h.type.isTextblock||h.textContent.length||!C||C&&d.parent.type.name==="paragraph"?!1:o.clearNodes()}),()=>o.deleteSelection(),()=>o.joinBackward(),()=>o.selectNodeBackward()]),t=()=>this.editor.commands.first(({commands:o})=>[()=>o.deleteSelection(),()=>o.deleteCurrentNode(),()=>o.joinForward(),()=>o.selectNodeForward()]),r={Enter:()=>this.editor.commands.first(({commands:o})=>[()=>o.newlineInCode(),()=>o.createParagraphNear(),()=>o.liftEmptyBlock(),()=>o.splitBlock()]),"Mod-Enter":()=>this.editor.commands.exitCode(),Backspace:e,"Mod-Backspace":e,"Shift-Backspace":e,Delete:t,"Mod-Delete":t,"Mod-a":()=>this.editor.commands.selectAll()},i={...r},a={...r,"Ctrl-h":e,"Alt-Backspace":e,"Ctrl-d":t,"Ctrl-Alt-Backspace":t,"Alt-Delete":t,"Alt-d":t,"Ctrl-a":()=>this.editor.commands.selectTextblockStart(),"Ctrl-e":()=>this.editor.commands.selectTextblockEnd()};return ew()||Hj()?a:i},addProseMirrorPlugins(){return[new Rl({key:new Sl("clearDocument"),appendTransaction:(e,t,n)=>{if(!(e.some(m=>m.docChanged)&&!t.doc.eq(n.doc)))return;const{empty:i,from:a,to:o}=t.selection,l=wn.atStart(t.doc).from,s=wn.atEnd(t.doc).to;if(i||!(a===l&&o===s)||!(n.doc.textBetween(0,n.doc.content.size," "," ").length===0))return;const d=n.tr,g=j3({state:n,transaction:d}),{commands:h}=new _3({editor:this.editor,state:g});if(h.clearNodes(),!!d.steps.length)return d}})]}}),MMe=yl.create({name:"tabindex",addProseMirrorPlugins(){return[new Rl({key:new Sl("tabindex"),props:{attributes:this.editor.isEditable?{tabindex:"0"}:{}}})]}});class w0{constructor(t,n,r=!1,i=null){this.currentNode=null,this.actualDepth=null,this.isBlock=r,this.resolvedPos=t,this.editor=n,this.currentNode=i}get name(){return this.node.type.name}get node(){return this.currentNode||this.resolvedPos.node()}get element(){return this.editor.view.domAtPos(this.pos).node}get depth(){var t;return(t=this.actualDepth)!==null&&t!==void 0?t:this.resolvedPos.depth}get pos(){return this.resolvedPos.pos}get content(){return this.node.content}set content(t){let n=this.from,r=this.to;if(this.isBlock){if(this.content.size===0){console.error(`You can’t set content on a block node. Tried to set content on ${this.name} at ${this.pos}`);return}n=this.from+1,r=this.to-1}this.editor.commands.insertContentAt({from:n,to:r},t)}get attributes(){return this.node.attrs}get textContent(){return this.node.textContent}get size(){return this.node.nodeSize}get from(){return this.isBlock?this.pos:this.resolvedPos.start(this.resolvedPos.depth)}get range(){return{from:this.from,to:this.to}}get to(){return this.isBlock?this.pos+this.size:this.resolvedPos.end(this.resolvedPos.depth)+(this.node.isText?0:1)}get parent(){if(this.depth===0)return null;const t=this.resolvedPos.start(this.resolvedPos.depth-1),n=this.resolvedPos.doc.resolve(t);return new w0(n,this.editor)}get before(){let t=this.resolvedPos.doc.resolve(this.from-(this.isBlock?1:2));return t.depth!==this.depth&&(t=this.resolvedPos.doc.resolve(this.from-3)),new w0(t,this.editor)}get after(){let t=this.resolvedPos.doc.resolve(this.to+(this.isBlock?2:1));return t.depth!==this.depth&&(t=this.resolvedPos.doc.resolve(this.to+3)),new w0(t,this.editor)}get children(){const t=[];return this.node.content.forEach((n,r)=>{const i=n.isBlock&&!n.isTextblock,a=this.pos+r+1,o=this.resolvedPos.doc.resolve(a);if(!i&&o.depth<=this.depth)return;const l=new w0(o,this.editor,i,i?n:null);i&&(l.actualDepth=this.depth+1),t.push(new w0(o,this.editor,i,i?n:null))}),t}get firstChild(){return this.children[0]||null}get lastChild(){const t=this.children;return t[t.length-1]||null}closest(t,n={}){let r=null,i=this.parent;for(;i&&!r;){if(i.node.type.name===t)if(Object.keys(n).length>0){const a=i.node.attrs,o=Object.keys(n);for(let l=0;l{r&&i.length>0||(o.node.type.name===t&&a.every(s=>n[s]===o.node.attrs[s])&&i.push(o),!(r&&i.length>0)&&(i=i.concat(o.querySelectorAll(t,n,r))))}),i}setAttribute(t){const n=this.editor.state.selection;this.editor.chain().setTextSelection(this.from).updateAttributes(this.node.type.name,t).setTextSelection(n.from).run()}}const TMe=`.ProseMirror { position: relative; } @@ -1633,86 +1326,84 @@ img.ProseMirror-separator { .tippy-box[data-animation=fade][data-state=hidden] { opacity: 0 -}`;function JSI(I,l,c){const G=document.querySelector(`style[data-tiptap-style${c?`-${c}`:""}]`);if(G!==null)return G;const e=document.createElement("style");return l&&e.setAttribute("nonce",l),e.setAttribute(`data-tiptap-style${c?`-${c}`:""}`,""),e.innerHTML=I,document.getElementsByTagName("head")[0].appendChild(e),e}let BSI=class extends DKI{constructor(l={}){super(),this.isFocused=!1,this.extensionStorage={},this.options={element:document.createElement("div"),content:"",injectCSS:!0,injectNonce:void 0,extensions:[],autofocus:!1,editable:!0,editorProps:{},parseOptions:{},enableInputRules:!0,enablePasteRules:!0,enableCoreExtensions:!0,onBeforeCreate:()=>null,onCreate:()=>null,onUpdate:()=>null,onSelectionUpdate:()=>null,onTransaction:()=>null,onFocus:()=>null,onBlur:()=>null,onDestroy:()=>null},this.isCapturingTransaction=!1,this.capturedTransaction=null,this.setOptions(l),this.createExtensionManager(),this.createCommandManager(),this.createSchema(),this.on("beforeCreate",this.options.onBeforeCreate),this.emit("beforeCreate",{editor:this}),this.createView(),this.injectCSS(),this.on("create",this.options.onCreate),this.on("update",this.options.onUpdate),this.on("selectionUpdate",this.options.onSelectionUpdate),this.on("transaction",this.options.onTransaction),this.on("focus",this.options.onFocus),this.on("blur",this.options.onBlur),this.on("destroy",this.options.onDestroy),window.setTimeout(()=>{this.isDestroyed||(this.commands.focus(this.options.autofocus),this.emit("create",{editor:this}))},0)}get storage(){return this.extensionStorage}get commands(){return this.commandManager.commands}chain(){return this.commandManager.chain()}can(){return this.commandManager.can()}injectCSS(){this.options.injectCSS&&document&&(this.css=JSI(ySI,this.options.injectNonce))}setOptions(l={}){this.options={...this.options,...l},!(!this.view||!this.state||this.isDestroyed)&&(this.options.editorProps&&this.view.setProps(this.options.editorProps),this.view.updateState(this.state))}setEditable(l,c=!0){this.setOptions({editable:l}),c&&this.emit("update",{editor:this,transaction:this.state.tr})}get isEditable(){return this.options.editable&&this.view&&this.view.editable}get state(){return this.view.state}registerPlugin(l,c){const G=fP(c)?c(l,[...this.state.plugins]):[...this.state.plugins,l],e=this.state.reconfigure({plugins:G});this.view.updateState(e)}unregisterPlugin(l){if(this.isDestroyed)return;const c=typeof l=="string"?`${l}$`:l.key,G=this.state.reconfigure({plugins:this.state.plugins.filter(e=>!e.key.startsWith(c))});this.view.updateState(G)}createExtensionManager(){const c=[...this.options.enableCoreExtensions?Object.values(ASI):[],...this.options.extensions].filter(G=>["extension","node","mark"].includes(G==null?void 0:G.type));this.extensionManager=new pm(c,this)}createCommandManager(){this.commandManager=new DN({editor:this})}createSchema(){this.schema=this.extensionManager.schema}createView(){const l=PP(this.options.content,this.schema,this.options.parseOptions),c=jP(l,this.options.autofocus);this.view=new rKI(this.options.element,{...this.options.editorProps,dispatchTransaction:this.dispatchTransaction.bind(this),state:hm.create({doc:l,selection:c||void 0})});const G=this.state.reconfigure({plugins:this.extensionManager.plugins});this.view.updateState(G),this.createNodeViews(),this.prependClass();const e=this.view.dom;e.editor=this}createNodeViews(){this.view.setProps({nodeViews:this.extensionManager.nodeViews})}prependClass(){this.view.dom.className=`tiptap ${this.view.dom.className}`}captureTransaction(l){this.isCapturingTransaction=!0,l(),this.isCapturingTransaction=!1;const c=this.capturedTransaction;return this.capturedTransaction=null,c}dispatchTransaction(l){if(this.view.isDestroyed)return;if(this.isCapturingTransaction){if(!this.capturedTransaction){this.capturedTransaction=l;return}l.steps.forEach(t=>{var n;return(n=this.capturedTransaction)===null||n===void 0?void 0:n.step(t)});return}const c=this.state.apply(l),G=!this.state.selection.eq(c.selection);this.view.updateState(c),this.emit("transaction",{editor:this,transaction:l}),G&&this.emit("selectionUpdate",{editor:this,transaction:l});const e=l.getMeta("focus"),d=l.getMeta("blur");e&&this.emit("focus",{editor:this,event:e.event,transaction:l}),d&&this.emit("blur",{editor:this,event:d.event,transaction:l}),!(!l.docChanged||l.getMeta("preventUpdate"))&&this.emit("update",{editor:this,transaction:l})}getAttributes(l){return eSI(this.state,l)}isActive(l,c){const G=typeof l=="string"?l:null,e=typeof l=="string"?c:l;return dSI(this.state,G,e)}getJSON(){return this.state.doc.toJSON()}getHTML(){return lSI(this.state.doc.content,this.schema)}getText(l){const{blockSeparator:c=` +}`;function VMe(e,t,n){const r=document.querySelector(`style[data-tiptap-style${n?`-${n}`:""}]`);if(r!==null)return r;const i=document.createElement("style");return t&&i.setAttribute("nonce",t),i.setAttribute(`data-tiptap-style${n?`-${n}`:""}`,""),i.innerHTML=e,document.getElementsByTagName("head")[0].appendChild(i),i}let YMe=class extends nLe{constructor(t={}){super(),this.isFocused=!1,this.extensionStorage={},this.options={element:document.createElement("div"),content:"",injectCSS:!0,injectNonce:void 0,extensions:[],autofocus:!1,editable:!0,editorProps:{},parseOptions:{},coreExtensionOptions:{},enableInputRules:!0,enablePasteRules:!0,enableCoreExtensions:!0,onBeforeCreate:()=>null,onCreate:()=>null,onUpdate:()=>null,onSelectionUpdate:()=>null,onTransaction:()=>null,onFocus:()=>null,onBlur:()=>null,onDestroy:()=>null},this.isCapturingTransaction=!1,this.capturedTransaction=null,this.setOptions(t),this.createExtensionManager(),this.createCommandManager(),this.createSchema(),this.on("beforeCreate",this.options.onBeforeCreate),this.emit("beforeCreate",{editor:this}),this.createView(),this.injectCSS(),this.on("create",this.options.onCreate),this.on("update",this.options.onUpdate),this.on("selectionUpdate",this.options.onSelectionUpdate),this.on("transaction",this.options.onTransaction),this.on("focus",this.options.onFocus),this.on("blur",this.options.onBlur),this.on("destroy",this.options.onDestroy),window.setTimeout(()=>{this.isDestroyed||(this.commands.focus(this.options.autofocus),this.emit("create",{editor:this}))},0)}get storage(){return this.extensionStorage}get commands(){return this.commandManager.commands}chain(){return this.commandManager.chain()}can(){return this.commandManager.can()}injectCSS(){this.options.injectCSS&&document&&(this.css=VMe(TMe,this.options.injectNonce))}setOptions(t={}){this.options={...this.options,...t},!(!this.view||!this.state||this.isDestroyed)&&(this.options.editorProps&&this.view.setProps(this.options.editorProps),this.view.updateState(this.state))}setEditable(t,n=!0){this.setOptions({editable:t}),n&&this.emit("update",{editor:this,transaction:this.state.tr})}get isEditable(){return this.options.editable&&this.view&&this.view.editable}get state(){return this.view.state}registerPlugin(t,n){const r=Sj(n)?n(t,[...this.state.plugins]):[...this.state.plugins,t],i=this.state.reconfigure({plugins:r});this.view.updateState(i)}unregisterPlugin(t){if(this.isDestroyed)return;const n=typeof t=="string"?`${t}$`:t.key,r=this.state.reconfigure({plugins:this.state.plugins.filter(i=>!i.key.startsWith(n))});this.view.updateState(r)}createExtensionManager(){var t,n;const i=[...this.options.enableCoreExtensions?[HMe,ALe.configure({blockSeparator:(n=(t=this.options.coreExtensionOptions)===null||t===void 0?void 0:t.clipboardTextSerializer)===null||n===void 0?void 0:n.blockSeparator}),ZMe,XMe,LMe,MMe]:[],...this.options.extensions].filter(a=>["extension","node","mark"].includes(a==null?void 0:a.type));this.extensionManager=new Sp(i,this)}createCommandManager(){this.commandManager=new _3({editor:this})}createSchema(){this.schema=this.extensionManager.schema}createView(){const t=Xj(this.options.content,this.schema,this.options.parseOptions),n=Nj(t,this.options.autofocus);this.view=new wXe(this.options.element,{...this.options.editorProps,dispatchTransaction:this.dispatchTransaction.bind(this),state:Rp.create({doc:t,selection:n||void 0})});const r=this.state.reconfigure({plugins:this.extensionManager.plugins});this.view.updateState(r),this.createNodeViews(),this.prependClass();const i=this.view.dom;i.editor=this}createNodeViews(){this.view.setProps({nodeViews:this.extensionManager.nodeViews})}prependClass(){this.view.dom.className=`tiptap ${this.view.dom.className}`}captureTransaction(t){this.isCapturingTransaction=!0,t(),this.isCapturingTransaction=!1;const n=this.capturedTransaction;return this.capturedTransaction=null,n}dispatchTransaction(t){if(this.view.isDestroyed)return;if(this.isCapturingTransaction){if(!this.capturedTransaction){this.capturedTransaction=t;return}t.steps.forEach(o=>{var l;return(l=this.capturedTransaction)===null||l===void 0?void 0:l.step(o)});return}const n=this.state.apply(t),r=!this.state.selection.eq(n.selection);this.view.updateState(n),this.emit("transaction",{editor:this,transaction:t}),r&&this.emit("selectionUpdate",{editor:this,transaction:t});const i=t.getMeta("focus"),a=t.getMeta("blur");i&&this.emit("focus",{editor:this,event:i.event,transaction:t}),a&&this.emit("blur",{editor:this,event:a.event,transaction:t}),!(!t.docChanged||t.getMeta("preventUpdate"))&&this.emit("update",{editor:this,transaction:t})}getAttributes(t){return gMe(this.state,t)}isActive(t,n){const r=typeof t=="string"?t:null,i=typeof t=="string"?n:t;return hMe(this.state,r,i)}getJSON(){return this.state.doc.toJSON()}getHTML(){return cMe(this.state.doc.content,this.schema)}getText(t){const{blockSeparator:n=` -`,textSerializers:G={}}=l||{};return cSI(this.state.doc,{blockSeparator:c,textSerializers:{...LP(this.schema),...G}})}get isEmpty(){return tSI(this.state.doc)}getCharacterCount(){return console.warn('[tiptap warn]: "editor.getCharacterCount()" is deprecated. Please use "editor.storage.characterCount.characters()" instead.'),this.state.doc.content.size-2}destroy(){this.emit("destroy"),this.view&&this.view.destroy(),this.removeAllListeners()}get isDestroyed(){var l;return!(!((l=this.view)===null||l===void 0)&&l.docView)}$node(l,c){var G;return((G=this.$doc)===null||G===void 0?void 0:G.querySelector(l,c))||null}$nodes(l,c){var G;return((G=this.$doc)===null||G===void 0?void 0:G.querySelectorAll(l,c))||null}$pos(l){const c=this.state.doc.resolve(l);return new dW(c,this)}get $doc(){return this.$pos(0)}};function kSI(I){return new $KI({find:I.find,handler:({state:l,range:c,match:G})=>{const e=ic(I.getAttributes,void 0,G)||{},{tr:d}=l,t=c.from;let n=c.to;const b=I.type.create(e);if(G[1]){const a=G[0].lastIndexOf(G[1]);let Z=t+a;Z>n?Z=n:n=Z+G[1].length;const W=G[0][G[0].length-1];d.insertText(W,t+G[0].length-1),d.replaceWith(Z,n,b)}else G[0]&&d.insert(t-1,I.type.create(e)).delete(d.mapping.map(t),d.mapping.map(n));d.scrollIntoView()}})}class Ti{constructor(l={}){this.type="mark",this.name="mark",this.parent=null,this.child=null,this.config={name:this.name,defaultOptions:{}},this.config={...this.config,...l},this.name=this.config.name,l.defaultOptions&&Object.keys(l.defaultOptions).length>0&&console.warn(`[tiptap warn]: BREAKING CHANGE: "defaultOptions" is deprecated. Please use "addOptions" instead. Found in extension: "${this.name}".`),this.options=this.config.defaultOptions,this.config.addOptions&&(this.options=ic(Xl(this,"addOptions",{name:this.name}))),this.storage=ic(Xl(this,"addStorage",{name:this.name,options:this.options}))||{}}static create(l={}){return new Ti(l)}configure(l={}){const c=this.extend();return c.options=PN(this.options,l),c.storage=ic(Xl(c,"addStorage",{name:c.name,options:c.options})),c}extend(l={}){const c=new Ti({...this.config,...l});return c.parent=this,this.child=c,c.name=l.name?l.name:c.parent.name,l.defaultOptions&&console.warn(`[tiptap warn]: BREAKING CHANGE: "defaultOptions" is deprecated. Please use "addOptions" instead. Found in extension: "${c.name}".`),c.options=ic(Xl(c,"addOptions",{name:c.name})),c.storage=ic(Xl(c,"addStorage",{name:c.name,options:c.options})),c}static handleExit({editor:l,mark:c}){const{tr:G}=l.state,e=l.state.selection.$from;if(e.pos===e.end()){const t=e.marks();if(!!!t.find(a=>(a==null?void 0:a.type.name)===c.name))return!1;const b=t.find(a=>(a==null?void 0:a.type.name)===c.name);return b&&G.removeStoredMark(b),G.insertText(" ",e.pos),l.view.dispatch(G),!0}return!1}}let br=class SE{constructor(l={}){this.type="node",this.name="node",this.parent=null,this.child=null,this.config={name:this.name,defaultOptions:{}},this.config={...this.config,...l},this.name=this.config.name,l.defaultOptions&&Object.keys(l.defaultOptions).length>0&&console.warn(`[tiptap warn]: BREAKING CHANGE: "defaultOptions" is deprecated. Please use "addOptions" instead. Found in extension: "${this.name}".`),this.options=this.config.defaultOptions,this.config.addOptions&&(this.options=ic(Xl(this,"addOptions",{name:this.name}))),this.storage=ic(Xl(this,"addStorage",{name:this.name,options:this.options}))||{}}static create(l={}){return new SE(l)}configure(l={}){const c=this.extend();return c.options=PN(this.options,l),c.storage=ic(Xl(c,"addStorage",{name:c.name,options:c.options})),c}extend(l={}){const c=new SE({...this.config,...l});return c.parent=this,this.child=c,c.name=l.name?l.name:c.parent.name,l.defaultOptions&&console.warn(`[tiptap warn]: BREAKING CHANGE: "defaultOptions" is deprecated. Please use "addOptions" instead. Found in extension: "${c.name}".`),c.options=ic(Xl(c,"addOptions",{name:c.name})),c.storage=ic(Xl(c,"addStorage",{name:c.name,options:c.options})),c}};function xSI(){return navigator.platform==="Android"||/android/i.test(navigator.userAgent)}class zSI{constructor(l,c,G){this.isDragging=!1,this.component=l,this.editor=c.editor,this.options={stopEvent:null,ignoreMutation:null,...G},this.extension=c.extension,this.node=c.node,this.decorations=c.decorations,this.getPos=c.getPos,this.mount()}mount(){}get dom(){return this.editor.view.dom}get contentDOM(){return null}onDragStart(l){var c,G,e,d,t,n,b;const{view:a}=this.editor,Z=l.target,W=Z.nodeType===3?(c=Z.parentElement)===null||c===void 0?void 0:c.closest("[data-drag-handle]"):Z.closest("[data-drag-handle]");if(!this.dom||!((G=this.contentDOM)===null||G===void 0)&&G.contains(Z)||!W)return;let m=0,s=0;if(this.dom!==W){const V=this.dom.getBoundingClientRect(),o=W.getBoundingClientRect(),F=(e=l.offsetX)!==null&&e!==void 0?e:(d=l.nativeEvent)===null||d===void 0?void 0:d.offsetX,X=(t=l.offsetY)!==null&&t!==void 0?t:(n=l.nativeEvent)===null||n===void 0?void 0:n.offsetY;m=o.x-V.x+F,s=o.y-V.y+X}(b=l.dataTransfer)===null||b===void 0||b.setDragImage(this.dom,m,s);const h=Kl.create(a.state.doc,this.getPos()),p=a.state.tr.setSelection(h);a.dispatch(p)}stopEvent(l){var c;if(!this.dom)return!1;if(typeof this.options.stopEvent=="function")return this.options.stopEvent({event:l});const G=l.target;if(!(this.dom.contains(G)&&!(!((c=this.contentDOM)===null||c===void 0)&&c.contains(G))))return!1;const d=l.type.startsWith("drag"),t=l.type==="drop";if((["INPUT","BUTTON","SELECT","TEXTAREA"].includes(G.tagName)||G.isContentEditable)&&!t&&!d)return!0;const{isEditable:b}=this.editor,{isDragging:a}=this,Z=!!this.node.type.spec.draggable,W=Kl.isSelectable(this.node),m=l.type==="copy",s=l.type==="paste",h=l.type==="cut",p=l.type==="mousedown";if(!Z&&W&&d&&l.preventDefault(),Z&&d&&!a)return l.preventDefault(),!1;if(Z&&b&&!a&&p){const V=G.closest("[data-drag-handle]");V&&(this.dom===V||this.dom.contains(V))&&(this.isDragging=!0,document.addEventListener("dragend",()=>{this.isDragging=!1},{once:!0}),document.addEventListener("drop",()=>{this.isDragging=!1},{once:!0}),document.addEventListener("mouseup",()=>{this.isDragging=!1},{once:!0}))}return!(a||t||m||s||h||p&&W)}ignoreMutation(l){return!this.dom||!this.contentDOM?!0:typeof this.options.ignoreMutation=="function"?this.options.ignoreMutation({mutation:l}):this.node.isLeaf||this.node.isAtom?!0:l.type==="selection"||this.dom.contains(l.target)&&l.type==="childList"&&(_N()||xSI())&&this.editor.isFocused&&[...Array.from(l.addedNodes),...Array.from(l.removedNodes)].every(G=>G.isContentEditable)?!1:this.contentDOM===l.target&&l.type==="attributes"?!0:!this.contentDOM.contains(l.target)}updateAttributes(l){this.editor.commands.command(({tr:c})=>{const G=this.getPos();return c.setNodeMarkup(G,void 0,{...this.node.attrs,...l}),!0})}deleteNode(){const l=this.getPos(),c=l+this.node.nodeSize;this.editor.commands.deleteRange({from:l,to:c})}}function USI(I){return I.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&")}const CSI=br.create({name:"doc",topNode:!0,content:"block+"});var ji=200,ee=function(){};ee.prototype.append=function(l){return l.length?(l=ee.from(l),!this.length&&l||l.length=c?ee.empty:this.sliceInner(Math.max(0,l),Math.min(this.length,c))};ee.prototype.get=function(l){if(!(l<0||l>=this.length))return this.getInner(l)};ee.prototype.forEach=function(l,c,G){c===void 0&&(c=0),G===void 0&&(G=this.length),c<=G?this.forEachInner(l,c,G,0):this.forEachInvertedInner(l,c,G,0)};ee.prototype.map=function(l,c,G){c===void 0&&(c=0),G===void 0&&(G=this.length);var e=[];return this.forEach(function(d,t){return e.push(l(d,t))},c,G),e};ee.from=function(l){return l instanceof ee?l:l&&l.length?new qP(l):ee.empty};var qP=function(I){function l(G){I.call(this),this.values=G}I&&(l.__proto__=I),l.prototype=Object.create(I&&I.prototype),l.prototype.constructor=l;var c={length:{configurable:!0},depth:{configurable:!0}};return l.prototype.flatten=function(){return this.values},l.prototype.sliceInner=function(e,d){return e==0&&d==this.length?this:new l(this.values.slice(e,d))},l.prototype.getInner=function(e){return this.values[e]},l.prototype.forEachInner=function(e,d,t,n){for(var b=d;b=t;b--)if(e(this.values[b],n+b)===!1)return!1},l.prototype.leafAppend=function(e){if(this.length+e.length<=ji)return new l(this.values.concat(e.flatten()))},l.prototype.leafPrepend=function(e){if(this.length+e.length<=ji)return new l(e.flatten().concat(this.values))},c.length.get=function(){return this.values.length},c.depth.get=function(){return 0},Object.defineProperties(l.prototype,c),l}(ee);ee.empty=new qP([]);var MSI=function(I){function l(c,G){I.call(this),this.left=c,this.right=G,this.length=c.length+G.length,this.depth=Math.max(c.depth,G.depth)+1}return I&&(l.__proto__=I),l.prototype=Object.create(I&&I.prototype),l.prototype.constructor=l,l.prototype.flatten=function(){return this.left.flatten().concat(this.right.flatten())},l.prototype.getInner=function(G){return Gn&&this.right.forEachInner(G,Math.max(e-n,0),Math.min(this.length,d)-n,t+n)===!1)return!1},l.prototype.forEachInvertedInner=function(G,e,d,t){var n=this.left.length;if(e>n&&this.right.forEachInvertedInner(G,e-n,Math.max(d,n)-n,t+n)===!1||d=d?this.right.slice(G-d,e-d):this.left.slice(G,d).append(this.right.slice(0,e-d))},l.prototype.leafAppend=function(G){var e=this.right.leafAppend(G);if(e)return new l(this.left,e)},l.prototype.leafPrepend=function(G){var e=this.left.leafPrepend(G);if(e)return new l(e,this.right)},l.prototype.appendInner=function(G){return this.left.depth>=Math.max(this.right.depth,G.depth)+1?new l(this.left,new l(this.right,G)):new l(this,G)},l}(ee);const fSI=500;class an{constructor(l,c){this.items=l,this.eventCount=c}popEvent(l,c){if(this.eventCount==0)return null;let G=this.items.length;for(;;G--)if(this.items.get(G-1).selection){--G;break}let e,d;c&&(e=this.remapping(G,this.items.length),d=e.maps.length);let t=l.tr,n,b,a=[],Z=[];return this.items.forEach((W,m)=>{if(!W.step){e||(e=this.remapping(G,m+1),d=e.maps.length),d--,Z.push(W);return}if(e){Z.push(new Jn(W.map));let s=W.step.map(e.slice(d)),h;s&&t.maybeStep(s).doc&&(h=t.mapping.maps[t.mapping.maps.length-1],a.push(new Jn(h,void 0,void 0,a.length+Z.length))),d--,h&&e.appendMap(h,d)}else t.maybeStep(W.step);if(W.selection)return n=e?W.selection.map(e.slice(d)):W.selection,b=new an(this.items.slice(0,G).append(Z.reverse().concat(a)),this.eventCount-1),!1},this.items.length,0),{remaining:b,transform:t,selection:n}}addTransform(l,c,G,e){let d=[],t=this.eventCount,n=this.items,b=!e&&n.length?n.get(n.length-1):null;for(let Z=0;ZLSI&&(n=KSI(n,a),t-=a),new an(n.append(d),t)}remapping(l,c){let G=new ym;return this.items.forEach((e,d)=>{let t=e.mirrorOffset!=null&&d-e.mirrorOffset>=l?G.maps.length-e.mirrorOffset:void 0;G.appendMap(e.map,t)},l,c),G}addMaps(l){return this.eventCount==0?this:new an(this.items.append(l.map(c=>new Jn(c))),this.eventCount)}rebased(l,c){if(!this.eventCount)return this;let G=[],e=Math.max(0,this.items.length-c),d=l.mapping,t=l.steps.length,n=this.eventCount;this.items.forEach(m=>{m.selection&&n--},e);let b=c;this.items.forEach(m=>{let s=d.getMirror(--b);if(s==null)return;t=Math.min(t,s);let h=d.maps[s];if(m.step){let p=l.steps[s].invert(l.docs[s]),V=m.selection&&m.selection.map(d.slice(b+1,s));V&&n++,G.push(new Jn(h,p,V))}else G.push(new Jn(h))},e);let a=[];for(let m=c;mfSI&&(W=W.compress(this.items.length-G.length)),W}emptyItemCount(){let l=0;return this.items.forEach(c=>{c.step||l++}),l}compress(l=this.items.length){let c=this.remapping(0,l),G=c.maps.length,e=[],d=0;return this.items.forEach((t,n)=>{if(n>=l)e.push(t),t.selection&&d++;else if(t.step){let b=t.step.map(c.slice(G)),a=b&&b.getMap();if(G--,a&&c.appendMap(a,G),b){let Z=t.selection&&t.selection.map(c.slice(G));Z&&d++;let W=new Jn(a.invert(),b,Z),m,s=e.length-1;(m=e.length&&e[s].merge(W))?e[s]=m:e.push(W)}}else t.map&&G--},this.items.length,0),new an(ee.from(e.reverse()),d)}}an.empty=new an(ee.empty,0);function KSI(I,l){let c;return I.forEach((G,e)=>{if(G.selection&&l--==0)return c=e,!1}),I.slice(c)}class Jn{constructor(l,c,G,e){this.map=l,this.step=c,this.selection=G,this.mirrorOffset=e}merge(l){if(this.step&&l.step&&!l.selection){let c=l.step.merge(this.step);if(c)return new Jn(c.getMap().invert(),c,this.selection)}}}class va{constructor(l,c,G,e,d){this.done=l,this.undone=c,this.prevRanges=G,this.prevTime=e,this.prevComposition=d}}const LSI=20;function SSI(I,l,c,G){let e=c.getMeta(JW),d;if(e)return e.historyState;c.getMeta(DSI)&&(I=new va(I.done,I.undone,null,0,-1));let t=c.getMeta("appendedTransaction");if(c.steps.length==0)return I;if(t&&t.getMeta(JW))return t.getMeta(JW).redo?new va(I.done.addTransform(c,void 0,G,cV(l)),I.undone,IM(c.mapping.maps[c.steps.length-1]),I.prevTime,I.prevComposition):new va(I.done,I.undone.addTransform(c,void 0,G,cV(l)),null,I.prevTime,I.prevComposition);if(c.getMeta("addToHistory")!==!1&&!(t&&t.getMeta("addToHistory")===!1)){let n=c.getMeta("composition"),b=I.prevTime==0||!t&&I.prevComposition!=n&&(I.prevTime<(c.time||0)-G.newGroupDelay||!TSI(c,I.prevRanges)),a=t?yH(I.prevRanges,c.mapping):IM(c.mapping.maps[c.steps.length-1]);return new va(I.done.addTransform(c,b?l.selection.getBookmark():void 0,G,cV(l)),an.empty,a,c.time,n??I.prevComposition)}else return(d=c.getMeta("rebased"))?new va(I.done.rebased(c,d),I.undone.rebased(c,d),yH(I.prevRanges,c.mapping),I.prevTime,I.prevComposition):new va(I.done.addMaps(c.mapping.maps),I.undone.addMaps(c.mapping.maps),yH(I.prevRanges,c.mapping),I.prevTime,I.prevComposition)}function TSI(I,l){if(!l)return!1;if(!I.docChanged)return!0;let c=!1;return I.mapping.maps[0].forEach((G,e)=>{for(let d=0;d=l[d]&&(c=!0)}),c}function IM(I){let l=[];return I.forEach((c,G,e,d)=>l.push(e,d)),l}function yH(I,l){if(!I)return null;let c=[];for(let G=0;G{let e=JW.getState(c);if(!e||(I?e.undone:e.done).eventCount==0)return!1;if(G){let d=jSI(e,c,I);d&&G(l?d.scrollIntoView():d)}return!0}}const I_=$P(!1,!0),l_=$P(!0,!0),PSI=on.create({name:"history",addOptions(){return{depth:100,newGroupDelay:500}},addCommands(){return{undo:()=>({state:I,dispatch:l})=>I_(I,l),redo:()=>({state:I,dispatch:l})=>l_(I,l)}},addProseMirrorPlugins(){return[OSI(this.options)]},addKeyboardShortcuts(){return{"Mod-z":()=>this.editor.commands.undo(),"Shift-Mod-z":()=>this.editor.commands.redo(),"Mod-y":()=>this.editor.commands.redo(),"Mod-я":()=>this.editor.commands.undo(),"Shift-Mod-я":()=>this.editor.commands.redo()}}}),_SI=/(?:^|\s)(!\[(.+|:?)]\((\S+)(?:(?:\s+)["'](\S+)["'])?\))$/,qSI=br.create({name:"image",addOptions(){return{inline:!1,allowBase64:!1,HTMLAttributes:{}}},inline(){return this.options.inline},group(){return this.options.inline?"inline":"block"},draggable:!0,addAttributes(){return{src:{default:null},alt:{default:null},title:{default:null}}},parseHTML(){return[{tag:this.options.allowBase64?"img[src]":'img[src]:not([src^="data:"])'}]},renderHTML({HTMLAttributes:I}){return["img",E0(this.options.HTMLAttributes,I)]},addCommands(){return{setImage:I=>({commands:l})=>l.insertContent({type:this.name,attrs:I})}},addInputRules(){return[kSI({find:_SI,type:this.type,getAttributes:I=>{const[,,l,c,G]=I;return{src:c,alt:l,title:G}}})]}}),$SI=br.create({name:"paragraph",priority:1e3,addOptions(){return{HTMLAttributes:{}}},group:"block",content:"inline*",parseHTML(){return[{tag:"p"}]},renderHTML({HTMLAttributes:I}){return["p",E0(this.options.HTMLAttributes,I),0]},addCommands(){return{setParagraph:()=>({commands:I})=>I.setNode(this.name)}},addKeyboardShortcuts(){return{"Mod-Alt-0":()=>this.editor.commands.setParagraph()}}}),ITI=on.create({name:"placeholder",addOptions(){return{emptyEditorClass:"is-editor-empty",emptyNodeClass:"is-empty",placeholder:"Write something …",showOnlyWhenEditable:!0,considerAnyAsEmpty:!1,showOnlyCurrent:!0,includeChildren:!1}},addProseMirrorPlugins(){return[new Rn({key:new Yn("placeholder"),props:{decorations:({doc:I,selection:l})=>{var c;const G=this.editor.isEditable||!this.options.showOnlyWhenEditable,{anchor:e}=l,d=[];if(!G)return null;const{firstChild:t}=I.content,n=t&&t.type.isLeaf,b=t&&t.isAtom,a=this.options.considerAnyAsEmpty?!0:t&&t.type.name===((c=I.type.contentMatch.defaultType)===null||c===void 0?void 0:c.name),Z=I.content.childCount<=1&&t&&a&&t.nodeSize<=2&&(!n||!b);return I.descendants((W,m)=>{const s=e>=m&&e<=m+W.nodeSize,h=!W.isLeaf&&!W.childCount;if((s||!this.options.showOnlyCurrent)&&h){const p=[this.options.emptyNodeClass];Z&&p.push(this.options.emptyEditorClass);const V=Td.node(m,m+W.nodeSize,{class:p.join(" "),"data-placeholder":typeof this.options.placeholder=="function"?this.options.placeholder({editor:this.editor,node:W,pos:m,hasAnchor:s}):this.options.placeholder});d.push(V)}return this.options.includeChildren}),BG.create(I,d)}}})]}}),lTI=br.create({name:"text",group:"inline"});var Yd="top",Mt="bottom",ft="right",Xd="left",Uy="auto",$h=[Yd,Mt,ft,Xd],b0="start",oh="end",cTI="clippingParents",c_="viewport",gs="popper",GTI="reference",cM=$h.reduce(function(I,l){return I.concat([l+"-"+b0,l+"-"+oh])},[]),G_=[].concat($h,[Uy]).reduce(function(I,l){return I.concat([l,l+"-"+b0,l+"-"+oh])},[]),eTI="beforeRead",dTI="read",tTI="afterRead",nTI="beforeMain",bTI="main",aTI="afterMain",ZTI="beforeWrite",WTI="write",rTI="afterWrite",mTI=[eTI,dTI,tTI,nTI,bTI,aTI,ZTI,WTI,rTI];function bb(I){return I?(I.nodeName||"").toLowerCase():null}function It(I){if(I==null)return window;if(I.toString()!=="[object Window]"){var l=I.ownerDocument;return l&&l.defaultView||window}return I}function PW(I){var l=It(I).Element;return I instanceof l||I instanceof Element}function yt(I){var l=It(I).HTMLElement;return I instanceof l||I instanceof HTMLElement}function Cy(I){if(typeof ShadowRoot>"u")return!1;var l=It(I).ShadowRoot;return I instanceof l||I instanceof ShadowRoot}function sTI(I){var l=I.state;Object.keys(l.elements).forEach(function(c){var G=l.styles[c]||{},e=l.attributes[c]||{},d=l.elements[c];!yt(d)||!bb(d)||(Object.assign(d.style,G),Object.keys(e).forEach(function(t){var n=e[t];n===!1?d.removeAttribute(t):d.setAttribute(t,n===!0?"":n)}))})}function uTI(I){var l=I.state,c={popper:{position:l.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(l.elements.popper.style,c.popper),l.styles=c,l.elements.arrow&&Object.assign(l.elements.arrow.style,c.arrow),function(){Object.keys(l.elements).forEach(function(G){var e=l.elements[G],d=l.attributes[G]||{},t=Object.keys(l.styles.hasOwnProperty(G)?l.styles[G]:c[G]),n=t.reduce(function(b,a){return b[a]="",b},{});!yt(e)||!bb(e)||(Object.assign(e.style,n),Object.keys(d).forEach(function(b){e.removeAttribute(b)}))})}}const e_={name:"applyStyles",enabled:!0,phase:"write",fn:sTI,effect:uTI,requires:["computeStyles"]};function Ib(I){return I.split("-")[0]}var BW=Math.max,Di=Math.min,a0=Math.round;function TE(){var I=navigator.userAgentData;return I!=null&&I.brands&&Array.isArray(I.brands)?I.brands.map(function(l){return l.brand+"/"+l.version}).join(" "):navigator.userAgent}function d_(){return!/^((?!chrome|android).)*safari/i.test(TE())}function Z0(I,l,c){l===void 0&&(l=!1),c===void 0&&(c=!1);var G=I.getBoundingClientRect(),e=1,d=1;l&&yt(I)&&(e=I.offsetWidth>0&&a0(G.width)/I.offsetWidth||1,d=I.offsetHeight>0&&a0(G.height)/I.offsetHeight||1);var t=PW(I)?It(I):window,n=t.visualViewport,b=!d_()&&c,a=(G.left+(b&&n?n.offsetLeft:0))/e,Z=(G.top+(b&&n?n.offsetTop:0))/d,W=G.width/e,m=G.height/d;return{width:W,height:m,top:Z,right:a+W,bottom:Z+m,left:a,x:a,y:Z}}function My(I){var l=Z0(I),c=I.offsetWidth,G=I.offsetHeight;return Math.abs(l.width-c)<=1&&(c=l.width),Math.abs(l.height-G)<=1&&(G=l.height),{x:I.offsetLeft,y:I.offsetTop,width:c,height:G}}function t_(I,l){var c=l.getRootNode&&l.getRootNode();if(I.contains(l))return!0;if(c&&Cy(c)){var G=l;do{if(G&&I.isSameNode(G))return!0;G=G.parentNode||G.host}while(G)}return!1}function Ga(I){return It(I).getComputedStyle(I)}function hTI(I){return["table","td","th"].indexOf(bb(I))>=0}function yZ(I){return((PW(I)?I.ownerDocument:I.document)||window.document).documentElement}function $N(I){return bb(I)==="html"?I:I.assignedSlot||I.parentNode||(Cy(I)?I.host:null)||yZ(I)}function GM(I){return!yt(I)||Ga(I).position==="fixed"?null:I.offsetParent}function pTI(I){var l=/firefox/i.test(TE()),c=/Trident/i.test(TE());if(c&&yt(I)){var G=Ga(I);if(G.position==="fixed")return null}var e=$N(I);for(Cy(e)&&(e=e.host);yt(e)&&["html","body"].indexOf(bb(e))<0;){var d=Ga(e);if(d.transform!=="none"||d.perspective!=="none"||d.contain==="paint"||["transform","perspective"].indexOf(d.willChange)!==-1||l&&d.willChange==="filter"||l&&d.filter&&d.filter!=="none")return e;e=e.parentNode}return null}function Ip(I){for(var l=It(I),c=GM(I);c&&hTI(c)&&Ga(c).position==="static";)c=GM(c);return c&&(bb(c)==="html"||bb(c)==="body"&&Ga(c).position==="static")?l:c||pTI(I)||l}function fy(I){return["top","bottom"].indexOf(I)>=0?"x":"y"}function iu(I,l,c){return BW(I,Di(l,c))}function oTI(I,l,c){var G=iu(I,l,c);return G>c?c:G}function n_(){return{top:0,right:0,bottom:0,left:0}}function b_(I){return Object.assign({},n_(),I)}function a_(I,l){return l.reduce(function(c,G){return c[G]=I,c},{})}var VTI=function(l,c){return l=typeof l=="function"?l(Object.assign({},c.rects,{placement:c.placement})):l,b_(typeof l!="number"?l:a_(l,$h))};function iTI(I){var l,c=I.state,G=I.name,e=I.options,d=c.elements.arrow,t=c.modifiersData.popperOffsets,n=Ib(c.placement),b=fy(n),a=[Xd,ft].indexOf(n)>=0,Z=a?"height":"width";if(!(!d||!t)){var W=VTI(e.padding,c),m=My(d),s=b==="y"?Yd:Xd,h=b==="y"?Mt:ft,p=c.rects.reference[Z]+c.rects.reference[b]-t[b]-c.rects.popper[Z],V=t[b]-c.rects.reference[b],o=Ip(d),F=o?b==="y"?o.clientHeight||0:o.clientWidth||0:0,X=p/2-V/2,H=W[s],Y=F-m[Z]-W[h],R=F/2-m[Z]/2+X,B=iu(H,R,Y),C=b;c.modifiersData[G]=(l={},l[C]=B,l.centerOffset=B-R,l)}}function FTI(I){var l=I.state,c=I.options,G=c.element,e=G===void 0?"[data-popper-arrow]":G;e!=null&&(typeof e=="string"&&(e=l.elements.popper.querySelector(e),!e)||t_(l.elements.popper,e)&&(l.elements.arrow=e))}const NTI={name:"arrow",enabled:!0,phase:"main",fn:iTI,effect:FTI,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function W0(I){return I.split("-")[1]}var RTI={top:"auto",right:"auto",bottom:"auto",left:"auto"};function YTI(I,l){var c=I.x,G=I.y,e=l.devicePixelRatio||1;return{x:a0(c*e)/e||0,y:a0(G*e)/e||0}}function eM(I){var l,c=I.popper,G=I.popperRect,e=I.placement,d=I.variation,t=I.offsets,n=I.position,b=I.gpuAcceleration,a=I.adaptive,Z=I.roundOffsets,W=I.isFixed,m=t.x,s=m===void 0?0:m,h=t.y,p=h===void 0?0:h,V=typeof Z=="function"?Z({x:s,y:p}):{x:s,y:p};s=V.x,p=V.y;var o=t.hasOwnProperty("x"),F=t.hasOwnProperty("y"),X=Xd,H=Yd,Y=window;if(a){var R=Ip(c),B="clientHeight",C="clientWidth";if(R===It(c)&&(R=yZ(c),Ga(R).position!=="static"&&n==="absolute"&&(B="scrollHeight",C="scrollWidth")),R=R,e===Yd||(e===Xd||e===ft)&&d===oh){H=Mt;var k=W&&R===Y&&Y.visualViewport?Y.visualViewport.height:R[B];p-=k-G.height,p*=b?1:-1}if(e===Xd||(e===Yd||e===Mt)&&d===oh){X=ft;var N=W&&R===Y&&Y.visualViewport?Y.visualViewport.width:R[C];s-=N-G.width,s*=b?1:-1}}var J=Object.assign({position:n},a&&RTI),A=Z===!0?YTI({x:s,y:p},It(c)):{x:s,y:p};if(s=A.x,p=A.y,b){var M;return Object.assign({},J,(M={},M[H]=F?"0":"",M[X]=o?"0":"",M.transform=(Y.devicePixelRatio||1)<=1?"translate("+s+"px, "+p+"px)":"translate3d("+s+"px, "+p+"px, 0)",M))}return Object.assign({},J,(l={},l[H]=F?p+"px":"",l[X]=o?s+"px":"",l.transform="",l))}function XTI(I){var l=I.state,c=I.options,G=c.gpuAcceleration,e=G===void 0?!0:G,d=c.adaptive,t=d===void 0?!0:d,n=c.roundOffsets,b=n===void 0?!0:n,a={placement:Ib(l.placement),variation:W0(l.placement),popper:l.elements.popper,popperRect:l.rects.popper,gpuAcceleration:e,isFixed:l.options.strategy==="fixed"};l.modifiersData.popperOffsets!=null&&(l.styles.popper=Object.assign({},l.styles.popper,eM(Object.assign({},a,{offsets:l.modifiersData.popperOffsets,position:l.options.strategy,adaptive:t,roundOffsets:b})))),l.modifiersData.arrow!=null&&(l.styles.arrow=Object.assign({},l.styles.arrow,eM(Object.assign({},a,{offsets:l.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:b})))),l.attributes.popper=Object.assign({},l.attributes.popper,{"data-popper-placement":l.placement})}const HTI={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:XTI,data:{}};var p2={passive:!0};function QTI(I){var l=I.state,c=I.instance,G=I.options,e=G.scroll,d=e===void 0?!0:e,t=G.resize,n=t===void 0?!0:t,b=It(l.elements.popper),a=[].concat(l.scrollParents.reference,l.scrollParents.popper);return d&&a.forEach(function(Z){Z.addEventListener("scroll",c.update,p2)}),n&&b.addEventListener("resize",c.update,p2),function(){d&&a.forEach(function(Z){Z.removeEventListener("scroll",c.update,p2)}),n&&b.removeEventListener("resize",c.update,p2)}}const wTI={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:QTI,data:{}};var ETI={left:"right",right:"left",bottom:"top",top:"bottom"};function GV(I){return I.replace(/left|right|bottom|top/g,function(l){return ETI[l]})}var vTI={start:"end",end:"start"};function dM(I){return I.replace(/start|end/g,function(l){return vTI[l]})}function Ky(I){var l=It(I),c=l.pageXOffset,G=l.pageYOffset;return{scrollLeft:c,scrollTop:G}}function Ly(I){return Z0(yZ(I)).left+Ky(I).scrollLeft}function gTI(I,l){var c=It(I),G=yZ(I),e=c.visualViewport,d=G.clientWidth,t=G.clientHeight,n=0,b=0;if(e){d=e.width,t=e.height;var a=d_();(a||!a&&l==="fixed")&&(n=e.offsetLeft,b=e.offsetTop)}return{width:d,height:t,x:n+Ly(I),y:b}}function ATI(I){var l,c=yZ(I),G=Ky(I),e=(l=I.ownerDocument)==null?void 0:l.body,d=BW(c.scrollWidth,c.clientWidth,e?e.scrollWidth:0,e?e.clientWidth:0),t=BW(c.scrollHeight,c.clientHeight,e?e.scrollHeight:0,e?e.clientHeight:0),n=-G.scrollLeft+Ly(I),b=-G.scrollTop;return Ga(e||c).direction==="rtl"&&(n+=BW(c.clientWidth,e?e.clientWidth:0)-d),{width:d,height:t,x:n,y:b}}function Sy(I){var l=Ga(I),c=l.overflow,G=l.overflowX,e=l.overflowY;return/auto|scroll|overlay|hidden/.test(c+e+G)}function Z_(I){return["html","body","#document"].indexOf(bb(I))>=0?I.ownerDocument.body:yt(I)&&Sy(I)?I:Z_($N(I))}function Fu(I,l){var c;l===void 0&&(l=[]);var G=Z_(I),e=G===((c=I.ownerDocument)==null?void 0:c.body),d=It(G),t=e?[d].concat(d.visualViewport||[],Sy(G)?G:[]):G,n=l.concat(t);return e?n:n.concat(Fu($N(t)))}function jE(I){return Object.assign({},I,{left:I.x,top:I.y,right:I.x+I.width,bottom:I.y+I.height})}function yTI(I,l){var c=Z0(I,!1,l==="fixed");return c.top=c.top+I.clientTop,c.left=c.left+I.clientLeft,c.bottom=c.top+I.clientHeight,c.right=c.left+I.clientWidth,c.width=I.clientWidth,c.height=I.clientHeight,c.x=c.left,c.y=c.top,c}function tM(I,l,c){return l===c_?jE(gTI(I,c)):PW(l)?yTI(l,c):jE(ATI(yZ(I)))}function JTI(I){var l=Fu($N(I)),c=["absolute","fixed"].indexOf(Ga(I).position)>=0,G=c&&yt(I)?Ip(I):I;return PW(G)?l.filter(function(e){return PW(e)&&t_(e,G)&&bb(e)!=="body"}):[]}function BTI(I,l,c,G){var e=l==="clippingParents"?JTI(I):[].concat(l),d=[].concat(e,[c]),t=d[0],n=d.reduce(function(b,a){var Z=tM(I,a,G);return b.top=BW(Z.top,b.top),b.right=Di(Z.right,b.right),b.bottom=Di(Z.bottom,b.bottom),b.left=BW(Z.left,b.left),b},tM(I,t,G));return n.width=n.right-n.left,n.height=n.bottom-n.top,n.x=n.left,n.y=n.top,n}function W_(I){var l=I.reference,c=I.element,G=I.placement,e=G?Ib(G):null,d=G?W0(G):null,t=l.x+l.width/2-c.width/2,n=l.y+l.height/2-c.height/2,b;switch(e){case Yd:b={x:t,y:l.y-c.height};break;case Mt:b={x:t,y:l.y+l.height};break;case ft:b={x:l.x+l.width,y:n};break;case Xd:b={x:l.x-c.width,y:n};break;default:b={x:l.x,y:l.y}}var a=e?fy(e):null;if(a!=null){var Z=a==="y"?"height":"width";switch(d){case b0:b[a]=b[a]-(l[Z]/2-c[Z]/2);break;case oh:b[a]=b[a]+(l[Z]/2-c[Z]/2);break}}return b}function Vh(I,l){l===void 0&&(l={});var c=l,G=c.placement,e=G===void 0?I.placement:G,d=c.strategy,t=d===void 0?I.strategy:d,n=c.boundary,b=n===void 0?cTI:n,a=c.rootBoundary,Z=a===void 0?c_:a,W=c.elementContext,m=W===void 0?gs:W,s=c.altBoundary,h=s===void 0?!1:s,p=c.padding,V=p===void 0?0:p,o=b_(typeof V!="number"?V:a_(V,$h)),F=m===gs?GTI:gs,X=I.rects.popper,H=I.elements[h?F:m],Y=BTI(PW(H)?H:H.contextElement||yZ(I.elements.popper),b,Z,t),R=Z0(I.elements.reference),B=W_({reference:R,element:X,strategy:"absolute",placement:e}),C=jE(Object.assign({},X,B)),k=m===gs?C:R,N={top:Y.top-k.top+o.top,bottom:k.bottom-Y.bottom+o.bottom,left:Y.left-k.left+o.left,right:k.right-Y.right+o.right},J=I.modifiersData.offset;if(m===gs&&J){var A=J[e];Object.keys(N).forEach(function(M){var D=[ft,Mt].indexOf(M)>=0?1:-1,O=[Yd,Mt].indexOf(M)>=0?"y":"x";N[M]+=A[O]*D})}return N}function kTI(I,l){l===void 0&&(l={});var c=l,G=c.placement,e=c.boundary,d=c.rootBoundary,t=c.padding,n=c.flipVariations,b=c.allowedAutoPlacements,a=b===void 0?G_:b,Z=W0(G),W=Z?n?cM:cM.filter(function(h){return W0(h)===Z}):$h,m=W.filter(function(h){return a.indexOf(h)>=0});m.length===0&&(m=W);var s=m.reduce(function(h,p){return h[p]=Vh(I,{placement:p,boundary:e,rootBoundary:d,padding:t})[Ib(p)],h},{});return Object.keys(s).sort(function(h,p){return s[h]-s[p]})}function xTI(I){if(Ib(I)===Uy)return[];var l=GV(I);return[dM(I),l,dM(l)]}function zTI(I){var l=I.state,c=I.options,G=I.name;if(!l.modifiersData[G]._skip){for(var e=c.mainAxis,d=e===void 0?!0:e,t=c.altAxis,n=t===void 0?!0:t,b=c.fallbackPlacements,a=c.padding,Z=c.boundary,W=c.rootBoundary,m=c.altBoundary,s=c.flipVariations,h=s===void 0?!0:s,p=c.allowedAutoPlacements,V=l.options.placement,o=Ib(V),F=o===V,X=b||(F||!h?[GV(V)]:xTI(V)),H=[V].concat(X).reduce(function(nI,VI){return nI.concat(Ib(VI)===Uy?kTI(l,{placement:VI,boundary:Z,rootBoundary:W,padding:a,flipVariations:h,allowedAutoPlacements:p}):VI)},[]),Y=l.rects.reference,R=l.rects.popper,B=new Map,C=!0,k=H[0],N=0;N=0,O=D?"width":"height",$=Vh(l,{placement:J,boundary:Z,rootBoundary:W,altBoundary:m,padding:a}),j=D?M?ft:Xd:M?Mt:Yd;Y[O]>R[O]&&(j=GV(j));var S=GV(j),tI=[];if(d&&tI.push($[A]<=0),n&&tI.push($[j]<=0,$[S]<=0),tI.every(function(nI){return nI})){k=J,C=!1;break}B.set(J,tI)}if(C)for(var z=h?3:1,g=function(VI){var q=H.find(function(fI){var RI=B.get(fI);if(RI)return RI.slice(0,VI).every(function(cl){return cl})});if(q)return k=q,"break"},GI=z;GI>0;GI--){var f=g(GI);if(f==="break")break}l.placement!==k&&(l.modifiersData[G]._skip=!0,l.placement=k,l.reset=!0)}}const UTI={name:"flip",enabled:!0,phase:"main",fn:zTI,requiresIfExists:["offset"],data:{_skip:!1}};function nM(I,l,c){return c===void 0&&(c={x:0,y:0}),{top:I.top-l.height-c.y,right:I.right-l.width+c.x,bottom:I.bottom-l.height+c.y,left:I.left-l.width-c.x}}function bM(I){return[Yd,ft,Mt,Xd].some(function(l){return I[l]>=0})}function CTI(I){var l=I.state,c=I.name,G=l.rects.reference,e=l.rects.popper,d=l.modifiersData.preventOverflow,t=Vh(l,{elementContext:"reference"}),n=Vh(l,{altBoundary:!0}),b=nM(t,G),a=nM(n,e,d),Z=bM(b),W=bM(a);l.modifiersData[c]={referenceClippingOffsets:b,popperEscapeOffsets:a,isReferenceHidden:Z,hasPopperEscaped:W},l.attributes.popper=Object.assign({},l.attributes.popper,{"data-popper-reference-hidden":Z,"data-popper-escaped":W})}const MTI={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:CTI};function fTI(I,l,c){var G=Ib(I),e=[Xd,Yd].indexOf(G)>=0?-1:1,d=typeof c=="function"?c(Object.assign({},l,{placement:I})):c,t=d[0],n=d[1];return t=t||0,n=(n||0)*e,[Xd,ft].indexOf(G)>=0?{x:n,y:t}:{x:t,y:n}}function KTI(I){var l=I.state,c=I.options,G=I.name,e=c.offset,d=e===void 0?[0,0]:e,t=G_.reduce(function(Z,W){return Z[W]=fTI(W,l.rects,d),Z},{}),n=t[l.placement],b=n.x,a=n.y;l.modifiersData.popperOffsets!=null&&(l.modifiersData.popperOffsets.x+=b,l.modifiersData.popperOffsets.y+=a),l.modifiersData[G]=t}const LTI={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:KTI};function STI(I){var l=I.state,c=I.name;l.modifiersData[c]=W_({reference:l.rects.reference,element:l.rects.popper,strategy:"absolute",placement:l.placement})}const TTI={name:"popperOffsets",enabled:!0,phase:"read",fn:STI,data:{}};function jTI(I){return I==="x"?"y":"x"}function DTI(I){var l=I.state,c=I.options,G=I.name,e=c.mainAxis,d=e===void 0?!0:e,t=c.altAxis,n=t===void 0?!1:t,b=c.boundary,a=c.rootBoundary,Z=c.altBoundary,W=c.padding,m=c.tether,s=m===void 0?!0:m,h=c.tetherOffset,p=h===void 0?0:h,V=Vh(l,{boundary:b,rootBoundary:a,padding:W,altBoundary:Z}),o=Ib(l.placement),F=W0(l.placement),X=!F,H=fy(o),Y=jTI(H),R=l.modifiersData.popperOffsets,B=l.rects.reference,C=l.rects.popper,k=typeof p=="function"?p(Object.assign({},l.rects,{placement:l.placement})):p,N=typeof k=="number"?{mainAxis:k,altAxis:k}:Object.assign({mainAxis:0,altAxis:0},k),J=l.modifiersData.offset?l.modifiersData.offset[l.placement]:null,A={x:0,y:0};if(R){if(d){var M,D=H==="y"?Yd:Xd,O=H==="y"?Mt:ft,$=H==="y"?"height":"width",j=R[H],S=j+V[D],tI=j-V[O],z=s?-C[$]/2:0,g=F===b0?B[$]:C[$],GI=F===b0?-C[$]:-B[$],f=l.elements.arrow,nI=s&&f?My(f):{width:0,height:0},VI=l.modifiersData["arrow#persistent"]?l.modifiersData["arrow#persistent"].padding:n_(),q=VI[D],fI=VI[O],RI=iu(0,B[$],nI[$]),cl=X?B[$]/2-z-RI-q-N.mainAxis:g-RI-q-N.mainAxis,OI=X?-B[$]/2+z+RI+fI+N.mainAxis:GI+RI+fI+N.mainAxis,PI=l.elements.arrow&&Ip(l.elements.arrow),_I=PI?H==="y"?PI.clientTop||0:PI.clientLeft||0:0,tl=(M=J==null?void 0:J[H])!=null?M:0,bl=j+cl-tl-_I,Il=j+OI-tl,Fl=iu(s?Di(S,bl):S,j,s?BW(tI,Il):tI);R[H]=Fl,A[H]=Fl-j}if(n){var al,P=H==="x"?Yd:Xd,eI=H==="x"?Mt:ft,uI=R[Y],wI=Y==="y"?"height":"width",YI=uI+V[P],HI=uI-V[eI],NI=[Yd,Xd].indexOf(o)!==-1,bI=(al=J==null?void 0:J[Y])!=null?al:0,gI=NI?YI:uI-B[wI]-C[wI]-bI+N.altAxis,oI=NI?uI+B[wI]+C[wI]-bI-N.altAxis:HI,QI=s&&NI?oTI(gI,uI,oI):iu(s?gI:YI,uI,s?oI:HI);R[Y]=QI,A[Y]=QI-uI}l.modifiersData[G]=A}}const OTI={name:"preventOverflow",enabled:!0,phase:"main",fn:DTI,requiresIfExists:["offset"]};function PTI(I){return{scrollLeft:I.scrollLeft,scrollTop:I.scrollTop}}function _TI(I){return I===It(I)||!yt(I)?Ky(I):PTI(I)}function qTI(I){var l=I.getBoundingClientRect(),c=a0(l.width)/I.offsetWidth||1,G=a0(l.height)/I.offsetHeight||1;return c!==1||G!==1}function $TI(I,l,c){c===void 0&&(c=!1);var G=yt(l),e=yt(l)&&qTI(l),d=yZ(l),t=Z0(I,e,c),n={scrollLeft:0,scrollTop:0},b={x:0,y:0};return(G||!G&&!c)&&((bb(l)!=="body"||Sy(d))&&(n=_TI(l)),yt(l)?(b=Z0(l,!0),b.x+=l.clientLeft,b.y+=l.clientTop):d&&(b.x=Ly(d))),{x:t.left+n.scrollLeft-b.x,y:t.top+n.scrollTop-b.y,width:t.width,height:t.height}}function IjI(I){var l=new Map,c=new Set,G=[];I.forEach(function(d){l.set(d.name,d)});function e(d){c.add(d.name);var t=[].concat(d.requires||[],d.requiresIfExists||[]);t.forEach(function(n){if(!c.has(n)){var b=l.get(n);b&&e(b)}}),G.push(d)}return I.forEach(function(d){c.has(d.name)||e(d)}),G}function ljI(I){var l=IjI(I);return mTI.reduce(function(c,G){return c.concat(l.filter(function(e){return e.phase===G}))},[])}function cjI(I){var l;return function(){return l||(l=new Promise(function(c){Promise.resolve().then(function(){l=void 0,c(I())})})),l}}function GjI(I){var l=I.reduce(function(c,G){var e=c[G.name];return c[G.name]=e?Object.assign({},e,G,{options:Object.assign({},e.options,G.options),data:Object.assign({},e.data,G.data)}):G,c},{});return Object.keys(l).map(function(c){return l[c]})}var aM={placement:"bottom",modifiers:[],strategy:"absolute"};function ZM(){for(var I=arguments.length,l=new Array(I),c=0;c-1}function h_(I,l){return typeof I=="function"?I.apply(void 0,l):I}function WM(I,l){if(l===0)return I;var c;return function(G){clearTimeout(c),c=setTimeout(function(){I(G)},l)}}function ajI(I){return I.split(/\s+/).filter(Boolean)}function Pr(I){return[].concat(I)}function rM(I,l){I.indexOf(l)===-1&&I.push(l)}function ZjI(I){return I.filter(function(l,c){return I.indexOf(l)===c})}function WjI(I){return I.split("-")[0]}function Oi(I){return[].slice.call(I)}function mM(I){return Object.keys(I).reduce(function(l,c){return I[c]!==void 0&&(l[c]=I[c]),l},{})}function Nu(){return document.createElement("div")}function I1(I){return["Element","Fragment"].some(function(l){return Ty(I,l)})}function rjI(I){return Ty(I,"NodeList")}function mjI(I){return Ty(I,"MouseEvent")}function sjI(I){return!!(I&&I._tippy&&I._tippy.reference===I)}function ujI(I){return I1(I)?[I]:rjI(I)?Oi(I):Array.isArray(I)?I:Oi(document.querySelectorAll(I))}function kH(I,l){I.forEach(function(c){c&&(c.style.transitionDuration=l+"ms")})}function sM(I,l){I.forEach(function(c){c&&c.setAttribute("data-state",l)})}function hjI(I){var l,c=Pr(I),G=c[0];return G!=null&&(l=G.ownerDocument)!=null&&l.body?G.ownerDocument:document}function pjI(I,l){var c=l.clientX,G=l.clientY;return I.every(function(e){var d=e.popperRect,t=e.popperState,n=e.props,b=n.interactiveBorder,a=WjI(t.placement),Z=t.modifiersData.offset;if(!Z)return!0;var W=a==="bottom"?Z.top.y:0,m=a==="top"?Z.bottom.y:0,s=a==="right"?Z.left.x:0,h=a==="left"?Z.right.x:0,p=d.top-G+W>b,V=G-d.bottom-m>b,o=d.left-c+s>b,F=c-d.right-h>b;return p||V||o||F})}function xH(I,l,c){var G=l+"EventListener";["transitionend","webkitTransitionEnd"].forEach(function(e){I[G](e,c)})}function uM(I,l){for(var c=l;c;){var G;if(I.contains(c))return!0;c=c.getRootNode==null||(G=c.getRootNode())==null?void 0:G.host}return!1}var xn={isTouch:!1},hM=0;function ojI(){xn.isTouch||(xn.isTouch=!0,window.performance&&document.addEventListener("mousemove",p_))}function p_(){var I=performance.now();I-hM<20&&(xn.isTouch=!1,document.removeEventListener("mousemove",p_)),hM=I}function VjI(){var I=document.activeElement;if(sjI(I)){var l=I._tippy;I.blur&&!l.state.isVisible&&I.blur()}}function ijI(){document.addEventListener("touchstart",ojI,$Z),window.addEventListener("blur",VjI)}var FjI=typeof window<"u"&&typeof document<"u",NjI=FjI?!!window.msCrypto:!1,RjI={animateFill:!1,followCursor:!1,inlinePositioning:!1,sticky:!1},YjI={allowHTML:!1,animation:"fade",arrow:!0,content:"",inertia:!1,maxWidth:350,role:"tooltip",theme:"",zIndex:9999},Zn=Object.assign({appendTo:u_,aria:{content:"auto",expanded:"auto"},delay:0,duration:[300,250],getReferenceClientRect:null,hideOnClick:!0,ignoreAttributes:!1,interactive:!1,interactiveBorder:2,interactiveDebounce:0,moveTransition:"",offset:[0,10],onAfterUpdate:function(){},onBeforeUpdate:function(){},onCreate:function(){},onDestroy:function(){},onHidden:function(){},onHide:function(){},onMount:function(){},onShow:function(){},onShown:function(){},onTrigger:function(){},onUntrigger:function(){},onClickOutside:function(){},placement:"top",plugins:[],popperOptions:{},render:null,showOnCreate:!1,touch:!0,trigger:"mouseenter focus",triggerTarget:null},RjI,YjI),XjI=Object.keys(Zn),HjI=function(l){var c=Object.keys(l);c.forEach(function(G){Zn[G]=l[G]})};function o_(I){var l=I.plugins||[],c=l.reduce(function(G,e){var d=e.name,t=e.defaultValue;if(d){var n;G[d]=I[d]!==void 0?I[d]:(n=Zn[d])!=null?n:t}return G},{});return Object.assign({},I,c)}function QjI(I,l){var c=l?Object.keys(o_(Object.assign({},Zn,{plugins:l}))):XjI,G=c.reduce(function(e,d){var t=(I.getAttribute("data-tippy-"+d)||"").trim();if(!t)return e;if(d==="content")e[d]=t;else try{e[d]=JSON.parse(t)}catch{e[d]=t}return e},{});return G}function pM(I,l){var c=Object.assign({},l,{content:h_(l.content,[I])},l.ignoreAttributes?{}:QjI(I,l.plugins));return c.aria=Object.assign({},Zn.aria,c.aria),c.aria={expanded:c.aria.expanded==="auto"?l.interactive:c.aria.expanded,content:c.aria.content==="auto"?l.interactive?null:"describedby":c.aria.content},c}var wjI=function(){return"innerHTML"};function DE(I,l){I[wjI()]=l}function oM(I){var l=Nu();return I===!0?l.className=m_:(l.className=s_,I1(I)?l.appendChild(I):DE(l,I)),l}function VM(I,l){I1(l.content)?(DE(I,""),I.appendChild(l.content)):typeof l.content!="function"&&(l.allowHTML?DE(I,l.content):I.textContent=l.content)}function OE(I){var l=I.firstElementChild,c=Oi(l.children);return{box:l,content:c.find(function(G){return G.classList.contains(r_)}),arrow:c.find(function(G){return G.classList.contains(m_)||G.classList.contains(s_)}),backdrop:c.find(function(G){return G.classList.contains(bjI)})}}function V_(I){var l=Nu(),c=Nu();c.className=njI,c.setAttribute("data-state","hidden"),c.setAttribute("tabindex","-1");var G=Nu();G.className=r_,G.setAttribute("data-state","hidden"),VM(G,I.props),l.appendChild(c),c.appendChild(G),e(I.props,I.props);function e(d,t){var n=OE(l),b=n.box,a=n.content,Z=n.arrow;t.theme?b.setAttribute("data-theme",t.theme):b.removeAttribute("data-theme"),typeof t.animation=="string"?b.setAttribute("data-animation",t.animation):b.removeAttribute("data-animation"),t.inertia?b.setAttribute("data-inertia",""):b.removeAttribute("data-inertia"),b.style.maxWidth=typeof t.maxWidth=="number"?t.maxWidth+"px":t.maxWidth,t.role?b.setAttribute("role",t.role):b.removeAttribute("role"),(d.content!==t.content||d.allowHTML!==t.allowHTML)&&VM(a,I.props),t.arrow?Z?d.arrow!==t.arrow&&(b.removeChild(Z),b.appendChild(oM(t.arrow))):b.appendChild(oM(t.arrow)):Z&&b.removeChild(Z)}return{popper:l,onUpdate:e}}V_.$$tippy=!0;var EjI=1,o2=[],zH=[];function vjI(I,l){var c=pM(I,Object.assign({},Zn,o_(mM(l)))),G,e,d,t=!1,n=!1,b=!1,a=!1,Z,W,m,s=[],h=WM(bl,c.interactiveDebounce),p,V=EjI++,o=null,F=ZjI(c.plugins),X={isEnabled:!0,isVisible:!1,isDestroyed:!1,isMounted:!1,isShown:!1},H={id:V,reference:I,popper:Nu(),popperInstance:o,props:c,state:X,plugins:F,clearDelayTimeouts:gI,setProps:oI,setContent:QI,show:dI,hide:xI,hideWithInteractivity:Wl,enable:NI,disable:bI,unmount:nl,destroy:Hl};if(!c.render)return H;var Y=c.render(H),R=Y.popper,B=Y.onUpdate;R.setAttribute("data-tippy-root",""),R.id="tippy-"+H.id,H.popper=R,I._tippy=H,R._tippy=H;var C=F.map(function(_){return _.fn(H)}),k=I.hasAttribute("aria-expanded");return PI(),z(),j(),S("onCreate",[H]),c.showOnCreate&&YI(),R.addEventListener("mouseenter",function(){H.props.interactive&&H.state.isVisible&&H.clearDelayTimeouts()}),R.addEventListener("mouseleave",function(){H.props.interactive&&H.props.trigger.indexOf("mouseenter")>=0&&D().addEventListener("mousemove",h)}),H;function N(){var _=H.props.touch;return Array.isArray(_)?_:[_,0]}function J(){return N()[0]==="hold"}function A(){var _;return!!((_=H.props.render)!=null&&_.$$tippy)}function M(){return p||I}function D(){var _=M().parentNode;return _?hjI(_):document}function O(){return OE(R)}function $(_){return H.state.isMounted&&!H.state.isVisible||xn.isTouch||Z&&Z.type==="focus"?0:BH(H.props.delay,_?0:1,Zn.delay)}function j(_){_===void 0&&(_=!1),R.style.pointerEvents=H.props.interactive&&!_?"":"none",R.style.zIndex=""+H.props.zIndex}function S(_,FI,CI){if(CI===void 0&&(CI=!0),C.forEach(function(Zl){Zl[_]&&Zl[_].apply(Zl,FI)}),CI){var ll;(ll=H.props)[_].apply(ll,FI)}}function tI(){var _=H.props.aria;if(_.content){var FI="aria-"+_.content,CI=R.id,ll=Pr(H.props.triggerTarget||I);ll.forEach(function(Zl){var vl=Zl.getAttribute(FI);if(H.state.isVisible)Zl.setAttribute(FI,vl?vl+" "+CI:CI);else{var kl=vl&&vl.replace(CI,"").trim();kl?Zl.setAttribute(FI,kl):Zl.removeAttribute(FI)}})}}function z(){if(!(k||!H.props.aria.expanded)){var _=Pr(H.props.triggerTarget||I);_.forEach(function(FI){H.props.interactive?FI.setAttribute("aria-expanded",H.state.isVisible&&FI===M()?"true":"false"):FI.removeAttribute("aria-expanded")})}}function g(){D().removeEventListener("mousemove",h),o2=o2.filter(function(_){return _!==h})}function GI(_){if(!(xn.isTouch&&(b||_.type==="mousedown"))){var FI=_.composedPath&&_.composedPath()[0]||_.target;if(!(H.props.interactive&&uM(R,FI))){if(Pr(H.props.triggerTarget||I).some(function(CI){return uM(CI,FI)})){if(xn.isTouch||H.state.isVisible&&H.props.trigger.indexOf("click")>=0)return}else S("onClickOutside",[H,_]);H.props.hideOnClick===!0&&(H.clearDelayTimeouts(),H.hide(),n=!0,setTimeout(function(){n=!1}),H.state.isMounted||q())}}}function f(){b=!0}function nI(){b=!1}function VI(){var _=D();_.addEventListener("mousedown",GI,!0),_.addEventListener("touchend",GI,$Z),_.addEventListener("touchstart",nI,$Z),_.addEventListener("touchmove",f,$Z)}function q(){var _=D();_.removeEventListener("mousedown",GI,!0),_.removeEventListener("touchend",GI,$Z),_.removeEventListener("touchstart",nI,$Z),_.removeEventListener("touchmove",f,$Z)}function fI(_,FI){cl(_,function(){!H.state.isVisible&&R.parentNode&&R.parentNode.contains(R)&&FI()})}function RI(_,FI){cl(_,FI)}function cl(_,FI){var CI=O().box;function ll(Zl){Zl.target===CI&&(xH(CI,"remove",ll),FI())}if(_===0)return FI();xH(CI,"remove",W),xH(CI,"add",ll),W=ll}function OI(_,FI,CI){CI===void 0&&(CI=!1);var ll=Pr(H.props.triggerTarget||I);ll.forEach(function(Zl){Zl.addEventListener(_,FI,CI),s.push({node:Zl,eventType:_,handler:FI,options:CI})})}function PI(){J()&&(OI("touchstart",tl,{passive:!0}),OI("touchend",Il,{passive:!0})),ajI(H.props.trigger).forEach(function(_){if(_!=="manual")switch(OI(_,tl),_){case"mouseenter":OI("mouseleave",Il);break;case"focus":OI(NjI?"focusout":"blur",Fl);break;case"focusin":OI("focusout",Fl);break}})}function _I(){s.forEach(function(_){var FI=_.node,CI=_.eventType,ll=_.handler,Zl=_.options;FI.removeEventListener(CI,ll,Zl)}),s=[]}function tl(_){var FI,CI=!1;if(!(!H.state.isEnabled||al(_)||n)){var ll=((FI=Z)==null?void 0:FI.type)==="focus";Z=_,p=_.currentTarget,z(),!H.state.isVisible&&mjI(_)&&o2.forEach(function(Zl){return Zl(_)}),_.type==="click"&&(H.props.trigger.indexOf("mouseenter")<0||t)&&H.props.hideOnClick!==!1&&H.state.isVisible?CI=!0:YI(_),_.type==="click"&&(t=!CI),CI&&!ll&&HI(_)}}function bl(_){var FI=_.target,CI=M().contains(FI)||R.contains(FI);if(!(_.type==="mousemove"&&CI)){var ll=wI().concat(R).map(function(Zl){var vl,kl=Zl._tippy,ql=(vl=kl.popperInstance)==null?void 0:vl.state;return ql?{popperRect:Zl.getBoundingClientRect(),popperState:ql,props:c}:null}).filter(Boolean);pjI(ll,_)&&(g(),HI(_))}}function Il(_){var FI=al(_)||H.props.trigger.indexOf("click")>=0&&t;if(!FI){if(H.props.interactive){H.hideWithInteractivity(_);return}HI(_)}}function Fl(_){H.props.trigger.indexOf("focusin")<0&&_.target!==M()||H.props.interactive&&_.relatedTarget&&R.contains(_.relatedTarget)||HI(_)}function al(_){return xn.isTouch?J()!==_.type.indexOf("touch")>=0:!1}function P(){eI();var _=H.props,FI=_.popperOptions,CI=_.placement,ll=_.offset,Zl=_.getReferenceClientRect,vl=_.moveTransition,kl=A()?OE(R).arrow:null,ql=Zl?{getBoundingClientRect:Zl,contextElement:Zl.contextElement||M()}:I,dG={name:"$$tippy",enabled:!0,phase:"beforeWrite",requires:["computeStyles"],fn:function(sI){var EI=sI.state;if(A()){var dl=O(),Al=dl.box;["placement","reference-hidden","escaped"].forEach(function(AI){AI==="placement"?Al.setAttribute("data-placement",EI.placement):EI.attributes.popper["data-popper-"+AI]?Al.setAttribute("data-"+AI,""):Al.removeAttribute("data-"+AI)}),EI.attributes.popper={}}}},ZI=[{name:"offset",options:{offset:ll}},{name:"preventOverflow",options:{padding:{top:2,bottom:2,left:5,right:5}}},{name:"flip",options:{padding:5}},{name:"computeStyles",options:{adaptive:!vl}},dG];A()&&kl&&ZI.push({name:"arrow",options:{element:kl,padding:3}}),ZI.push.apply(ZI,(FI==null?void 0:FI.modifiers)||[]),H.popperInstance=tjI(ql,R,Object.assign({},FI,{placement:CI,onFirstUpdate:m,modifiers:ZI}))}function eI(){H.popperInstance&&(H.popperInstance.destroy(),H.popperInstance=null)}function uI(){var _=H.props.appendTo,FI,CI=M();H.props.interactive&&_===u_||_==="parent"?FI=CI.parentNode:FI=h_(_,[CI]),FI.contains(R)||FI.appendChild(R),H.state.isMounted=!0,P()}function wI(){return Oi(R.querySelectorAll("[data-tippy-root]"))}function YI(_){H.clearDelayTimeouts(),_&&S("onTrigger",[H,_]),VI();var FI=$(!0),CI=N(),ll=CI[0],Zl=CI[1];xn.isTouch&&ll==="hold"&&Zl&&(FI=Zl),FI?G=setTimeout(function(){H.show()},FI):H.show()}function HI(_){if(H.clearDelayTimeouts(),S("onUntrigger",[H,_]),!H.state.isVisible){q();return}if(!(H.props.trigger.indexOf("mouseenter")>=0&&H.props.trigger.indexOf("click")>=0&&["mouseleave","mousemove"].indexOf(_.type)>=0&&t)){var FI=$(!1);FI?e=setTimeout(function(){H.state.isVisible&&H.hide()},FI):d=requestAnimationFrame(function(){H.hide()})}}function NI(){H.state.isEnabled=!0}function bI(){H.hide(),H.state.isEnabled=!1}function gI(){clearTimeout(G),clearTimeout(e),cancelAnimationFrame(d)}function oI(_){if(!H.state.isDestroyed){S("onBeforeUpdate",[H,_]),_I();var FI=H.props,CI=pM(I,Object.assign({},FI,mM(_),{ignoreAttributes:!0}));H.props=CI,PI(),FI.interactiveDebounce!==CI.interactiveDebounce&&(g(),h=WM(bl,CI.interactiveDebounce)),FI.triggerTarget&&!CI.triggerTarget?Pr(FI.triggerTarget).forEach(function(ll){ll.removeAttribute("aria-expanded")}):CI.triggerTarget&&I.removeAttribute("aria-expanded"),z(),j(),B&&B(FI,CI),H.popperInstance&&(P(),wI().forEach(function(ll){requestAnimationFrame(ll._tippy.popperInstance.forceUpdate)})),S("onAfterUpdate",[H,_])}}function QI(_){H.setProps({content:_})}function dI(){var _=H.state.isVisible,FI=H.state.isDestroyed,CI=!H.state.isEnabled,ll=xn.isTouch&&!H.props.touch,Zl=BH(H.props.duration,0,Zn.duration);if(!(_||FI||CI||ll)&&!M().hasAttribute("disabled")&&(S("onShow",[H],!1),H.props.onShow(H)!==!1)){if(H.state.isVisible=!0,A()&&(R.style.visibility="visible"),j(),VI(),H.state.isMounted||(R.style.transition="none"),A()){var vl=O(),kl=vl.box,ql=vl.content;kH([kl,ql],0)}m=function(){var ZI;if(!(!H.state.isVisible||a)){if(a=!0,R.offsetHeight,R.style.transition=H.props.moveTransition,A()&&H.props.animation){var pI=O(),sI=pI.box,EI=pI.content;kH([sI,EI],Zl),sM([sI,EI],"visible")}tI(),z(),rM(zH,H),(ZI=H.popperInstance)==null||ZI.forceUpdate(),S("onMount",[H]),H.props.animation&&A()&&RI(Zl,function(){H.state.isShown=!0,S("onShown",[H])})}},uI()}}function xI(){var _=!H.state.isVisible,FI=H.state.isDestroyed,CI=!H.state.isEnabled,ll=BH(H.props.duration,1,Zn.duration);if(!(_||FI||CI)&&(S("onHide",[H],!1),H.props.onHide(H)!==!1)){if(H.state.isVisible=!1,H.state.isShown=!1,a=!1,t=!1,A()&&(R.style.visibility="hidden"),g(),q(),j(!0),A()){var Zl=O(),vl=Zl.box,kl=Zl.content;H.props.animation&&(kH([vl,kl],ll),sM([vl,kl],"hidden"))}tI(),z(),H.props.animation?A()&&fI(ll,H.unmount):H.unmount()}}function Wl(_){D().addEventListener("mousemove",h),rM(o2,h),h(_)}function nl(){H.state.isVisible&&H.hide(),H.state.isMounted&&(eI(),wI().forEach(function(_){_._tippy.unmount()}),R.parentNode&&R.parentNode.removeChild(R),zH=zH.filter(function(_){return _!==H}),H.state.isMounted=!1,S("onHidden",[H]))}function Hl(){H.state.isDestroyed||(H.clearDelayTimeouts(),H.unmount(),_I(),delete I._tippy,H.state.isDestroyed=!0,S("onDestroy",[H]))}}function lp(I,l){l===void 0&&(l={});var c=Zn.plugins.concat(l.plugins||[]);ijI();var G=Object.assign({},l,{plugins:c}),e=ujI(I),d=e.reduce(function(t,n){var b=n&&vjI(n,G);return b&&t.push(b),t},[]);return I1(I)?d[0]:d}lp.defaultProps=Zn;lp.setDefaultProps=HjI;lp.currentInput=xn;Object.assign({},e_,{effect:function(l){var c=l.state,G={popper:{position:c.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};Object.assign(c.elements.popper.style,G.popper),c.styles=G,c.elements.arrow&&Object.assign(c.elements.arrow.style,G.arrow)}});lp.setDefaultProps({render:V_});const gjI=(...I)=>l=>{I.forEach(c=>{typeof c=="function"?c(l):c&&(c.current=l)})},AjI=({renderers:I})=>Gl.createElement(Gl.Fragment,null,Object.entries(I).map(([l,c])=>fb.createPortal(c.reactElement,c.element,l)));class yjI extends Gl.Component{constructor(l){super(l),this.editorContentRef=Gl.createRef(),this.initialized=!1,this.state={renderers:{}}}componentDidMount(){this.init()}componentDidUpdate(){this.init()}init(){const{editor:l}=this.props;if(l&&l.options.element){if(l.contentComponent)return;const c=this.editorContentRef.current;c.append(...l.options.element.childNodes),l.setOptions({element:c}),l.contentComponent=this,l.createNodeViews(),this.initialized=!0}}maybeFlushSync(l){this.initialized?Xh.flushSync(l):l()}setRenderer(l,c){this.maybeFlushSync(()=>{this.setState(({renderers:G})=>({renderers:{...G,[l]:c}}))})}removeRenderer(l){this.maybeFlushSync(()=>{this.setState(({renderers:c})=>{const G={...c};return delete G[l],{renderers:G}})})}componentWillUnmount(){const{editor:l}=this.props;if(!l||(this.initialized=!1,l.isDestroyed||l.view.setProps({nodeViews:{}}),l.contentComponent=null,!l.options.element.firstChild))return;const c=document.createElement("div");c.append(...l.options.element.childNodes),l.setOptions({element:c})}render(){const{editor:l,innerRef:c,...G}=this.props;return Gl.createElement(Gl.Fragment,null,Gl.createElement("div",{ref:gjI(c,this.editorContentRef),...G}),Gl.createElement(AjI,{renderers:this.state.renderers}))}}const JjI=E.forwardRef((I,l)=>{const c=Gl.useMemo(()=>Math.floor(Math.random()*4294967295).toString(),[I.editor]);return Gl.createElement(yjI,{key:c,innerRef:l,...I})}),BjI=Gl.memo(JjI);class kjI extends BSI{constructor(){super(...arguments),this.contentComponent=null}}const xjI=(I={},l=[])=>{const c=E.useRef(null),[,G]=E.useState({}),{onBeforeCreate:e,onBlur:d,onCreate:t,onDestroy:n,onFocus:b,onSelectionUpdate:a,onTransaction:Z,onUpdate:W}=I,m=E.useRef(e),s=E.useRef(d),h=E.useRef(t),p=E.useRef(n),V=E.useRef(b),o=E.useRef(a),F=E.useRef(Z),X=E.useRef(W);return E.useEffect(()=>{c.current&&(e&&(c.current.off("beforeCreate",m.current),c.current.on("beforeCreate",e),m.current=e),d&&(c.current.off("blur",s.current),c.current.on("blur",d),s.current=d),t&&(c.current.off("create",h.current),c.current.on("create",t),h.current=t),n&&(c.current.off("destroy",p.current),c.current.on("destroy",n),p.current=n),b&&(c.current.off("focus",V.current),c.current.on("focus",b),V.current=b),a&&(c.current.off("selectionUpdate",o.current),c.current.on("selectionUpdate",a),o.current=a),Z&&(c.current.off("transaction",F.current),c.current.on("transaction",Z),F.current=Z),W&&(c.current.off("update",X.current),c.current.on("update",W),X.current=W))},[e,d,t,n,b,a,Z,W,c.current]),E.useEffect(()=>{let H=!0;return c.current=new kjI(I),c.current.on("transaction",()=>{requestAnimationFrame(()=>{requestAnimationFrame(()=>{H&&G({})})})}),()=>{H=!1}},l),E.useEffect(()=>()=>{var H;return(H=c.current)===null||H===void 0?void 0:H.destroy()},[]),c.current},zjI=E.createContext({editor:null});zjI.Consumer;const i_=E.createContext({onDragStart:void 0}),UjI=()=>E.useContext(i_),CjI=Gl.forwardRef((I,l)=>{const{onDragStart:c}=UjI(),G=I.as||"div";return Gl.createElement(G,{...I,ref:l,"data-node-view-wrapper":"",onDragStart:c,style:{whiteSpace:"normal",...I.style}})});function MjI(I){return!!(typeof I=="function"&&I.prototype&&I.prototype.isReactComponent)}function fjI(I){var l;return typeof I=="object"&&((l=I.$$typeof)===null||l===void 0?void 0:l.toString())==="Symbol(react.forward_ref)"}class F_{constructor(l,{editor:c,props:G={},as:e="div",className:d="",attrs:t}){this.ref=null,this.id=Math.floor(Math.random()*4294967295).toString(),this.component=l,this.editor=c,this.props=G,this.element=document.createElement(e),this.element.classList.add("react-renderer"),d&&this.element.classList.add(...d.split(" ")),t&&Object.keys(t).forEach(n=>{this.element.setAttribute(n,t[n])}),this.render()}render(){var l,c;const G=this.component,e=this.props;(MjI(G)||fjI(G))&&(e.ref=d=>{this.ref=d}),this.reactElement=Gl.createElement(G,{...e}),(c=(l=this.editor)===null||l===void 0?void 0:l.contentComponent)===null||c===void 0||c.setRenderer(this.id,this)}updateProps(l={}){this.props={...this.props,...l},this.render()}destroy(){var l,c;(c=(l=this.editor)===null||l===void 0?void 0:l.contentComponent)===null||c===void 0||c.removeRenderer(this.id)}}class KjI extends zSI{mount(){const l={editor:this.editor,node:this.node,decorations:this.decorations,selected:!1,extension:this.extension,getPos:()=>this.getPos(),updateAttributes:(d={})=>this.updateAttributes(d),deleteNode:()=>this.deleteNode()};if(!this.component.displayName){const d=t=>t.charAt(0).toUpperCase()+t.substring(1);this.component.displayName=d(this.extension.name)}const c=d=>{const t=this.component,n=this.onDragStart.bind(this),b=a=>{a&&this.contentDOMElement&&a.firstChild!==this.contentDOMElement&&a.appendChild(this.contentDOMElement)};return Gl.createElement(Gl.Fragment,null,Gl.createElement(i_.Provider,{value:{onDragStart:n,nodeViewContentRef:b}},Gl.createElement(t,{...d})))};c.displayName="ReactNodeView",this.node.isLeaf?this.contentDOMElement=null:this.options.contentDOMElementTag?this.contentDOMElement=document.createElement(this.options.contentDOMElementTag):this.contentDOMElement=document.createElement(this.node.isInline?"span":"div"),this.contentDOMElement&&(this.contentDOMElement.style.whiteSpace="inherit");let G=this.node.isInline?"span":"div";this.options.as&&(G=this.options.as);const{className:e=""}=this.options;this.handleSelectionUpdate=this.handleSelectionUpdate.bind(this),this.editor.on("selectionUpdate",this.handleSelectionUpdate),this.renderer=new F_(c,{editor:this.editor,props:l,as:G,className:`node-${this.node.type.name} ${e}`.trim(),attrs:this.options.attrs})}get dom(){var l;if(this.renderer.element.firstElementChild&&!(!((l=this.renderer.element.firstElementChild)===null||l===void 0)&&l.hasAttribute("data-node-view-wrapper")))throw Error("Please use the NodeViewWrapper component for your node view.");return this.renderer.element}get contentDOM(){return this.node.isLeaf?null:this.contentDOMElement}handleSelectionUpdate(){const{from:l,to:c}=this.editor.state.selection;if(l<=this.getPos()&&c>=this.getPos()+this.node.nodeSize){if(this.renderer.props.selected)return;this.selectNode()}else{if(!this.renderer.props.selected)return;this.deselectNode()}}update(l,c){const G=e=>{this.renderer.updateProps(e)};if(l.type!==this.node.type)return!1;if(typeof this.options.update=="function"){const e=this.node,d=this.decorations;return this.node=l,this.decorations=c,this.options.update({oldNode:e,oldDecorations:d,newNode:l,newDecorations:c,updateProps:()=>G({node:l,decorations:c})})}return l===this.node&&this.decorations===c||(this.node=l,this.decorations=c,G({node:l,decorations:c})),!0}selectNode(){this.renderer.updateProps({selected:!0}),this.renderer.element.classList.add("ProseMirror-selectednode")}deselectNode(){this.renderer.updateProps({selected:!1}),this.renderer.element.classList.remove("ProseMirror-selectednode")}destroy(){this.renderer.destroy(),this.editor.off("selectionUpdate",this.handleSelectionUpdate),this.contentDOMElement=null}}function LjI(I,l){return c=>c.editor.contentComponent?new KjI(I,c,l):{}}function As(I,l=[]){const c=E.useRef(I);return E.useEffect(()=>{c.current=I},[I,...l]),c}const SjI=LI.div` - background-color: ${mZ}; - border-radius: ${Pl}; - border: 0.5px solid ${I=>I.borderColor||ul}; +`,textSerializers:r={}}=t||{};return dMe(this.state.doc,{blockSeparator:n,textSerializers:{...Gj(this.schema),...r}})}get isEmpty(){return fMe(this.state.doc)}getCharacterCount(){return console.warn('[tiptap warn]: "editor.getCharacterCount()" is deprecated. Please use "editor.storage.characterCount.characters()" instead.'),this.state.doc.content.size-2}destroy(){this.emit("destroy"),this.view&&this.view.destroy(),this.removeAllListeners()}get isDestroyed(){var t;return!(!((t=this.view)===null||t===void 0)&&t.docView)}$node(t,n){var r;return((r=this.$doc)===null||r===void 0?void 0:r.querySelector(t,n))||null}$nodes(t,n){var r;return((r=this.$doc)===null||r===void 0?void 0:r.querySelectorAll(t,n))||null}$pos(t){const n=this.state.doc.resolve(t);return new w0(n,this)}get $doc(){return this.$pos(0)}};function IMe(e){return new lLe({find:e.find,handler:({state:t,range:n,match:r})=>{const i=Kn(e.getAttributes,void 0,r)||{},{tr:a}=t,o=n.from;let l=n.to;const s=e.type.create(i);if(r[1]){const u=r[0].lastIndexOf(r[1]);let c=o+u;c>l?c=l:l=c+r[1].length;const d=r[0][r[0].length-1];a.insertText(d,o+r[0].length-1),a.replaceWith(c,l,s)}else r[0]&&a.insert(o-1,e.type.create(i)).delete(a.mapping.map(o),a.mapping.map(l));a.scrollIntoView()}})}class a4{constructor(t={}){this.type="mark",this.name="mark",this.parent=null,this.child=null,this.config={name:this.name,defaultOptions:{}},this.config={...this.config,...t},this.name=this.config.name,t.defaultOptions&&Object.keys(t.defaultOptions).length>0&&console.warn(`[tiptap warn]: BREAKING CHANGE: "defaultOptions" is deprecated. Please use "addOptions" instead. Found in extension: "${this.name}".`),this.options=this.config.defaultOptions,this.config.addOptions&&(this.options=Kn(Et(this,"addOptions",{name:this.name}))),this.storage=Kn(Et(this,"addStorage",{name:this.name,options:this.options}))||{}}static create(t={}){return new a4(t)}configure(t={}){const n=this.extend();return n.options=q3(this.options,t),n.storage=Kn(Et(n,"addStorage",{name:n.name,options:n.options})),n}extend(t={}){const n=new a4({...this.config,...t});return n.parent=this,this.child=n,n.name=t.name?t.name:n.parent.name,t.defaultOptions&&console.warn(`[tiptap warn]: BREAKING CHANGE: "defaultOptions" is deprecated. Please use "addOptions" instead. Found in extension: "${n.name}".`),n.options=Kn(Et(n,"addOptions",{name:n.name})),n.storage=Kn(Et(n,"addStorage",{name:n.name,options:n.options})),n}static handleExit({editor:t,mark:n}){const{tr:r}=t.state,i=t.state.selection.$from;if(i.pos===i.end()){const o=i.marks();if(!!!o.find(u=>(u==null?void 0:u.type.name)===n.name))return!1;const s=o.find(u=>(u==null?void 0:u.type.name)===n.name);return s&&r.removeStoredMark(s),r.insertText(" ",i.pos),t.view.dispatch(r),!0}return!1}}let Bd=class $F{constructor(t={}){this.type="node",this.name="node",this.parent=null,this.child=null,this.config={name:this.name,defaultOptions:{}},this.config={...this.config,...t},this.name=this.config.name,t.defaultOptions&&Object.keys(t.defaultOptions).length>0&&console.warn(`[tiptap warn]: BREAKING CHANGE: "defaultOptions" is deprecated. Please use "addOptions" instead. Found in extension: "${this.name}".`),this.options=this.config.defaultOptions,this.config.addOptions&&(this.options=Kn(Et(this,"addOptions",{name:this.name}))),this.storage=Kn(Et(this,"addStorage",{name:this.name,options:this.options}))||{}}static create(t={}){return new $F(t)}configure(t={}){const n=this.extend();return n.options=q3(this.options,t),n.storage=Kn(Et(n,"addStorage",{name:n.name,options:n.options})),n}extend(t={}){const n=new $F({...this.config,...t});return n.parent=this,this.child=n,n.name=t.name?t.name:n.parent.name,t.defaultOptions&&console.warn(`[tiptap warn]: BREAKING CHANGE: "defaultOptions" is deprecated. Please use "addOptions" instead. Found in extension: "${n.name}".`),n.options=Kn(Et(n,"addOptions",{name:n.name})),n.storage=Kn(Et(n,"addStorage",{name:n.name,options:n.options})),n}};function UMe(){return navigator.platform==="Android"||/android/i.test(navigator.userAgent)}class OMe{constructor(t,n,r){this.isDragging=!1,this.component=t,this.editor=n.editor,this.options={stopEvent:null,ignoreMutation:null,...r},this.extension=n.extension,this.node=n.node,this.decorations=n.decorations,this.getPos=n.getPos,this.mount()}mount(){}get dom(){return this.editor.view.dom}get contentDOM(){return null}onDragStart(t){var n,r,i,a,o,l,s;const{view:u}=this.editor,c=t.target,d=c.nodeType===3?(n=c.parentElement)===null||n===void 0?void 0:n.closest("[data-drag-handle]"):c.closest("[data-drag-handle]");if(!this.dom||!((r=this.contentDOM)===null||r===void 0)&&r.contains(c)||!d)return;let g=0,h=0;if(this.dom!==d){const B=this.dom.getBoundingClientRect(),C=d.getBoundingClientRect(),b=(i=t.offsetX)!==null&&i!==void 0?i:(a=t.nativeEvent)===null||a===void 0?void 0:a.offsetX,Q=(o=t.offsetY)!==null&&o!==void 0?o:(l=t.nativeEvent)===null||l===void 0?void 0:l.offsetY;g=C.x-B.x+b,h=C.y-B.y+Q}(s=t.dataTransfer)===null||s===void 0||s.setDragImage(this.dom,g,h);const m=Ut.create(u.state.doc,this.getPos()),A=u.state.tr.setSelection(m);u.dispatch(A)}stopEvent(t){var n;if(!this.dom)return!1;if(typeof this.options.stopEvent=="function")return this.options.stopEvent({event:t});const r=t.target;if(!(this.dom.contains(r)&&!(!((n=this.contentDOM)===null||n===void 0)&&n.contains(r))))return!1;const a=t.type.startsWith("drag"),o=t.type==="drop";if((["INPUT","BUTTON","SELECT","TEXTAREA"].includes(r.tagName)||r.isContentEditable)&&!o&&!a)return!0;const{isEditable:s}=this.editor,{isDragging:u}=this,c=!!this.node.type.spec.draggable,d=Ut.isSelectable(this.node),g=t.type==="copy",h=t.type==="paste",m=t.type==="cut",A=t.type==="mousedown";if(!c&&d&&a&&t.preventDefault(),c&&a&&!u)return t.preventDefault(),!1;if(c&&s&&!u&&A){const B=r.closest("[data-drag-handle]");B&&(this.dom===B||this.dom.contains(B))&&(this.isDragging=!0,document.addEventListener("dragend",()=>{this.isDragging=!1},{once:!0}),document.addEventListener("drop",()=>{this.isDragging=!1},{once:!0}),document.addEventListener("mouseup",()=>{this.isDragging=!1},{once:!0}))}return!(u||o||g||h||m||A&&d)}ignoreMutation(t){return!this.dom||!this.contentDOM?!0:typeof this.options.ignoreMutation=="function"?this.options.ignoreMutation({mutation:t}):this.node.isLeaf||this.node.isAtom?!0:t.type==="selection"||this.dom.contains(t.target)&&t.type==="childList"&&(ew()||UMe())&&this.editor.isFocused&&[...Array.from(t.addedNodes),...Array.from(t.removedNodes)].every(r=>r.isContentEditable)?!1:this.contentDOM===t.target&&t.type==="attributes"?!0:!this.contentDOM.contains(t.target)}updateAttributes(t){this.editor.commands.command(({tr:n})=>{const r=this.getPos();return n.setNodeMarkup(r,void 0,{...this.node.attrs,...t}),!0})}deleteNode(){const t=this.getPos(),n=t+this.node.nodeSize;this.editor.commands.deleteRange({from:t,to:n})}}function JMe(e){return e.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&")}const zMe=Bd.create({name:"doc",topNode:!0,content:"block+"});var o4=200,si=function(){};si.prototype.append=function(t){return t.length?(t=si.from(t),!this.length&&t||t.length=n?si.empty:this.sliceInner(Math.max(0,t),Math.min(this.length,n))};si.prototype.get=function(t){if(!(t<0||t>=this.length))return this.getInner(t)};si.prototype.forEach=function(t,n,r){n===void 0&&(n=0),r===void 0&&(r=this.length),n<=r?this.forEachInner(t,n,r,0):this.forEachInvertedInner(t,n,r,0)};si.prototype.map=function(t,n,r){n===void 0&&(n=0),r===void 0&&(r=this.length);var i=[];return this.forEach(function(a,o){return i.push(t(a,o))},n,r),i};si.from=function(t){return t instanceof si?t:t&&t.length?new Mj(t):si.empty};var Mj=function(e){function t(r){e.call(this),this.values=r}e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t;var n={length:{configurable:!0},depth:{configurable:!0}};return t.prototype.flatten=function(){return this.values},t.prototype.sliceInner=function(i,a){return i==0&&a==this.length?this:new t(this.values.slice(i,a))},t.prototype.getInner=function(i){return this.values[i]},t.prototype.forEachInner=function(i,a,o,l){for(var s=a;s=o;s--)if(i(this.values[s],l+s)===!1)return!1},t.prototype.leafAppend=function(i){if(this.length+i.length<=o4)return new t(this.values.concat(i.flatten()))},t.prototype.leafPrepend=function(i){if(this.length+i.length<=o4)return new t(i.flatten().concat(this.values))},n.length.get=function(){return this.values.length},n.depth.get=function(){return 0},Object.defineProperties(t.prototype,n),t}(si);si.empty=new Mj([]);var PMe=function(e){function t(n,r){e.call(this),this.left=n,this.right=r,this.length=n.length+r.length,this.depth=Math.max(n.depth,r.depth)+1}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.flatten=function(){return this.left.flatten().concat(this.right.flatten())},t.prototype.getInner=function(r){return rl&&this.right.forEachInner(r,Math.max(i-l,0),Math.min(this.length,a)-l,o+l)===!1)return!1},t.prototype.forEachInvertedInner=function(r,i,a,o){var l=this.left.length;if(i>l&&this.right.forEachInvertedInner(r,i-l,Math.max(a,l)-l,o+l)===!1||a=a?this.right.slice(r-a,i-a):this.left.slice(r,a).append(this.right.slice(0,i-a))},t.prototype.leafAppend=function(r){var i=this.right.leafAppend(r);if(i)return new t(this.left,i)},t.prototype.leafPrepend=function(r){var i=this.left.leafPrepend(r);if(i)return new t(i,this.right)},t.prototype.appendInner=function(r){return this.left.depth>=Math.max(this.right.depth,r.depth)+1?new t(this.left,new t(this.right,r)):new t(this,r)},t}(si);const jMe=500;class gl{constructor(t,n){this.items=t,this.eventCount=n}popEvent(t,n){if(this.eventCount==0)return null;let r=this.items.length;for(;;r--)if(this.items.get(r-1).selection){--r;break}let i,a;n&&(i=this.remapping(r,this.items.length),a=i.maps.length);let o=t.tr,l,s,u=[],c=[];return this.items.forEach((d,g)=>{if(!d.step){i||(i=this.remapping(r,g+1),a=i.maps.length),a--,c.push(d);return}if(i){c.push(new Ll(d.map));let h=d.step.map(i.slice(a)),m;h&&o.maybeStep(h).doc&&(m=o.mapping.maps[o.mapping.maps.length-1],u.push(new Ll(m,void 0,void 0,u.length+c.length))),a--,m&&i.appendMap(m,a)}else o.maybeStep(d.step);if(d.selection)return l=i?d.selection.map(i.slice(a)):d.selection,s=new gl(this.items.slice(0,r).append(c.reverse().concat(u)),this.eventCount-1),!1},this.items.length,0),{remaining:s,transform:o,selection:l}}addTransform(t,n,r,i){let a=[],o=this.eventCount,l=this.items,s=!i&&l.length?l.get(l.length-1):null;for(let c=0;c$Me&&(l=_Me(l,u),o-=u),new gl(l.append(a),o)}remapping(t,n){let r=new zp;return this.items.forEach((i,a)=>{let o=i.mirrorOffset!=null&&a-i.mirrorOffset>=t?r.maps.length-i.mirrorOffset:void 0;r.appendMap(i.map,o)},t,n),r}addMaps(t){return this.eventCount==0?this:new gl(this.items.append(t.map(n=>new Ll(n))),this.eventCount)}rebased(t,n){if(!this.eventCount)return this;let r=[],i=Math.max(0,this.items.length-n),a=t.mapping,o=t.steps.length,l=this.eventCount;this.items.forEach(g=>{g.selection&&l--},i);let s=n;this.items.forEach(g=>{let h=a.getMirror(--s);if(h==null)return;o=Math.min(o,h);let m=a.maps[h];if(g.step){let A=t.steps[h].invert(t.docs[h]),B=g.selection&&g.selection.map(a.slice(s+1,h));B&&l++,r.push(new Ll(m,A,B))}else r.push(new Ll(m))},i);let u=[];for(let g=n;gjMe&&(d=d.compress(this.items.length-r.length)),d}emptyItemCount(){let t=0;return this.items.forEach(n=>{n.step||t++}),t}compress(t=this.items.length){let n=this.remapping(0,t),r=n.maps.length,i=[],a=0;return this.items.forEach((o,l)=>{if(l>=t)i.push(o),o.selection&&a++;else if(o.step){let s=o.step.map(n.slice(r)),u=s&&s.getMap();if(r--,u&&n.appendMap(u,r),s){let c=o.selection&&o.selection.map(n.slice(r));c&&a++;let d=new Ll(u.invert(),s,c),g,h=i.length-1;(g=i.length&&i[h].merge(d))?i[h]=g:i.push(d)}}else o.map&&r--},this.items.length,0),new gl(si.from(i.reverse()),a)}}gl.empty=new gl(si.empty,0);function _Me(e,t){let n;return e.forEach((r,i)=>{if(r.selection&&t--==0)return n=i,!1}),e.slice(n)}class Ll{constructor(t,n,r,i){this.map=t,this.step=n,this.selection=r,this.mirrorOffset=i}merge(t){if(this.step&&t.step&&!t.selection){let n=t.step.merge(this.step);if(n)return new Ll(n.getMap().invert(),n,this.selection)}}}class Tu{constructor(t,n,r,i,a){this.done=t,this.undone=n,this.prevRanges=r,this.prevTime=i,this.prevComposition=a}}const $Me=20;function qMe(e,t,n,r){let i=n.getMeta(Y0),a;if(i)return i.historyState;n.getMeta(nTe)&&(e=new Tu(e.done,e.undone,null,0,-1));let o=n.getMeta("appendedTransaction");if(n.steps.length==0)return e;if(o&&o.getMeta(Y0))return o.getMeta(Y0).redo?new Tu(e.done.addTransform(n,void 0,r,bC(t)),e.undone,eX(n.mapping.maps[n.steps.length-1]),e.prevTime,e.prevComposition):new Tu(e.done,e.undone.addTransform(n,void 0,r,bC(t)),null,e.prevTime,e.prevComposition);if(n.getMeta("addToHistory")!==!1&&!(o&&o.getMeta("addToHistory")===!1)){let l=n.getMeta("composition"),s=e.prevTime==0||!o&&e.prevComposition!=l&&(e.prevTime<(n.time||0)-r.newGroupDelay||!eTe(n,e.prevRanges)),u=o?GQ(e.prevRanges,n.mapping):eX(n.mapping.maps[n.steps.length-1]);return new Tu(e.done.addTransform(n,s?t.selection.getBookmark():void 0,r,bC(t)),gl.empty,u,n.time,l??e.prevComposition)}else return(a=n.getMeta("rebased"))?new Tu(e.done.rebased(n,a),e.undone.rebased(n,a),GQ(e.prevRanges,n.mapping),e.prevTime,e.prevComposition):new Tu(e.done.addMaps(n.mapping.maps),e.undone.addMaps(n.mapping.maps),GQ(e.prevRanges,n.mapping),e.prevTime,e.prevComposition)}function eTe(e,t){if(!t)return!1;if(!e.docChanged)return!0;let n=!1;return e.mapping.maps[0].forEach((r,i)=>{for(let a=0;a=t[a]&&(n=!0)}),n}function eX(e){let t=[];return e.forEach((n,r,i,a)=>t.push(i,a)),t}function GQ(e,t){if(!e)return null;let n=[];for(let r=0;r{let i=Y0.getState(n);if(!i||(e?i.undone:i.done).eventCount==0)return!1;if(r){let a=tTe(i,n,e);a&&r(t?a.scrollIntoView():a)}return!0}}const Vj=Tj(!1,!0),Yj=Tj(!0,!0),iTe=yl.create({name:"history",addOptions(){return{depth:100,newGroupDelay:500}},addCommands(){return{undo:()=>({state:e,dispatch:t})=>Vj(e,t),redo:()=>({state:e,dispatch:t})=>Yj(e,t)}},addProseMirrorPlugins(){return[rTe(this.options)]},addKeyboardShortcuts(){return{"Mod-z":()=>this.editor.commands.undo(),"Shift-Mod-z":()=>this.editor.commands.redo(),"Mod-y":()=>this.editor.commands.redo(),"Mod-я":()=>this.editor.commands.undo(),"Shift-Mod-я":()=>this.editor.commands.redo()}}}),aTe=/(?:^|\s)(!\[(.+|:?)]\((\S+)(?:(?:\s+)["'](\S+)["'])?\))$/,oTe=Bd.create({name:"image",addOptions(){return{inline:!1,allowBase64:!1,HTMLAttributes:{}}},inline(){return this.options.inline},group(){return this.options.inline?"inline":"block"},draggable:!0,addAttributes(){return{src:{default:null},alt:{default:null},title:{default:null}}},parseHTML(){return[{tag:this.options.allowBase64?"img[src]":'img[src]:not([src^="data:"])'}]},renderHTML({HTMLAttributes:e}){return["img",P1(this.options.HTMLAttributes,e)]},addCommands(){return{setImage:e=>({commands:t})=>t.insertContent({type:this.name,attrs:e})}},addInputRules(){return[IMe({find:aTe,type:this.type,getAttributes:e=>{const[,,t,n,r]=e;return{src:n,alt:t,title:r}}})]}}),lTe=Bd.create({name:"paragraph",priority:1e3,addOptions(){return{HTMLAttributes:{}}},group:"block",content:"inline*",parseHTML(){return[{tag:"p"}]},renderHTML({HTMLAttributes:e}){return["p",P1(this.options.HTMLAttributes,e),0]},addCommands(){return{setParagraph:()=>({commands:e})=>e.setNode(this.name)}},addKeyboardShortcuts(){return{"Mod-Alt-0":()=>this.editor.commands.setParagraph()}}}),sTe=yl.create({name:"placeholder",addOptions(){return{emptyEditorClass:"is-editor-empty",emptyNodeClass:"is-empty",placeholder:"Write something …",showOnlyWhenEditable:!0,considerAnyAsEmpty:!1,showOnlyCurrent:!0,includeChildren:!1}},addProseMirrorPlugins(){return[new Rl({key:new Sl("placeholder"),props:{decorations:({doc:e,selection:t})=>{var n;const r=this.editor.isEditable||!this.options.showOnlyWhenEditable,{anchor:i}=t,a=[];if(!r)return null;const{firstChild:o}=e.content,l=o&&o.type.isLeaf,s=o&&o.isAtom,u=this.options.considerAnyAsEmpty?!0:o&&o.type.name===((n=e.type.contentMatch.defaultType)===null||n===void 0?void 0:n.name),c=e.content.childCount<=1&&o&&u&&o.nodeSize<=2&&(!l||!s);return e.descendants((d,g)=>{const h=i>=g&&i<=g+d.nodeSize,m=!d.isLeaf&&!d.childCount;if((h||!this.options.showOnlyCurrent)&&m){const A=[this.options.emptyNodeClass];c&&A.push(this.options.emptyEditorClass);const B=ja.node(g,g+d.nodeSize,{class:A.join(" "),"data-placeholder":typeof this.options.placeholder=="function"?this.options.placeholder({editor:this.editor,node:d,pos:g,hasAnchor:h}):this.options.placeholder});a.push(B)}return this.options.includeChildren}),Mr.create(e,a)}}})]}}),uTe=Bd.create({name:"text",group:"inline"});var ya="top",Oo="bottom",Jo="right",Fa="left",YR="auto",Bm=[ya,Oo,Jo,Fa],F1="start",Zf="end",cTe="clippingParents",Ij="viewport",$g="popper",dTe="reference",nX=Bm.reduce(function(e,t){return e.concat([t+"-"+F1,t+"-"+Zf])},[]),Uj=[].concat(Bm,[YR]).reduce(function(e,t){return e.concat([t,t+"-"+F1,t+"-"+Zf])},[]),pTe="beforeRead",gTe="read",hTe="afterRead",fTe="beforeMain",mTe="main",ATe="afterMain",CTe="beforeWrite",BTe="write",wTe="afterWrite",bTe=[pTe,gTe,hTe,fTe,mTe,ATe,CTe,BTe,wTe];function gs(e){return e?(e.nodeName||"").toLowerCase():null}function ao(e){if(e==null)return window;if(e.toString()!=="[object Window]"){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function od(e){var t=ao(e).Element;return e instanceof t||e instanceof Element}function Lo(e){var t=ao(e).HTMLElement;return e instanceof t||e instanceof HTMLElement}function IR(e){if(typeof ShadowRoot>"u")return!1;var t=ao(e).ShadowRoot;return e instanceof t||e instanceof ShadowRoot}function vTe(e){var t=e.state;Object.keys(t.elements).forEach(function(n){var r=t.styles[n]||{},i=t.attributes[n]||{},a=t.elements[n];!Lo(a)||!gs(a)||(Object.assign(a.style,r),Object.keys(i).forEach(function(o){var l=i[o];l===!1?a.removeAttribute(o):a.setAttribute(o,l===!0?"":l)}))})}function KTe(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach(function(r){var i=t.elements[r],a=t.attributes[r]||{},o=Object.keys(t.styles.hasOwnProperty(r)?t.styles[r]:n[r]),l=o.reduce(function(s,u){return s[u]="",s},{});!Lo(i)||!gs(i)||(Object.assign(i.style,l),Object.keys(a).forEach(function(s){i.removeAttribute(s)}))})}}const Oj={name:"applyStyles",enabled:!0,phase:"write",fn:vTe,effect:KTe,requires:["computeStyles"]};function ls(e){return e.split("-")[0]}var I0=Math.max,l4=Math.min,E1=Math.round;function qF(){var e=navigator.userAgentData;return e!=null&&e.brands&&Array.isArray(e.brands)?e.brands.map(function(t){return t.brand+"/"+t.version}).join(" "):navigator.userAgent}function Jj(){return!/^((?!chrome|android).)*safari/i.test(qF())}function R1(e,t,n){t===void 0&&(t=!1),n===void 0&&(n=!1);var r=e.getBoundingClientRect(),i=1,a=1;t&&Lo(e)&&(i=e.offsetWidth>0&&E1(r.width)/e.offsetWidth||1,a=e.offsetHeight>0&&E1(r.height)/e.offsetHeight||1);var o=od(e)?ao(e):window,l=o.visualViewport,s=!Jj()&&n,u=(r.left+(s&&l?l.offsetLeft:0))/i,c=(r.top+(s&&l?l.offsetTop:0))/a,d=r.width/i,g=r.height/a;return{width:d,height:g,top:c,right:u+d,bottom:c+g,left:u,x:u,y:c}}function UR(e){var t=R1(e),n=e.offsetWidth,r=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-r)<=1&&(r=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:r}}function zj(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&IR(n)){var r=t;do{if(r&&e.isSameNode(r))return!0;r=r.parentNode||r.host}while(r)}return!1}function du(e){return ao(e).getComputedStyle(e)}function QTe(e){return["table","td","th"].indexOf(gs(e))>=0}function zc(e){return((od(e)?e.ownerDocument:e.document)||window.document).documentElement}function nw(e){return gs(e)==="html"?e:e.assignedSlot||e.parentNode||(IR(e)?e.host:null)||zc(e)}function rX(e){return!Lo(e)||du(e).position==="fixed"?null:e.offsetParent}function WTe(e){var t=/firefox/i.test(qF()),n=/Trident/i.test(qF());if(n&&Lo(e)){var r=du(e);if(r.position==="fixed")return null}var i=nw(e);for(IR(i)&&(i=i.host);Lo(i)&&["html","body"].indexOf(gs(i))<0;){var a=du(i);if(a.transform!=="none"||a.perspective!=="none"||a.contain==="paint"||["transform","perspective"].indexOf(a.willChange)!==-1||t&&a.willChange==="filter"||t&&a.filter&&a.filter!=="none")return i;i=i.parentNode}return null}function wm(e){for(var t=ao(e),n=rX(e);n&&QTe(n)&&du(n).position==="static";)n=rX(n);return n&&(gs(n)==="html"||gs(n)==="body"&&du(n).position==="static")?t:n||WTe(e)||t}function OR(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function Mh(e,t,n){return I0(e,l4(t,n))}function yTe(e,t,n){var r=Mh(e,t,n);return r>n?n:r}function Pj(){return{top:0,right:0,bottom:0,left:0}}function jj(e){return Object.assign({},Pj(),e)}function _j(e,t){return t.reduce(function(n,r){return n[r]=e,n},{})}var FTe=function(t,n){return t=typeof t=="function"?t(Object.assign({},n.rects,{placement:n.placement})):t,jj(typeof t!="number"?t:_j(t,Bm))};function ETe(e){var t,n=e.state,r=e.name,i=e.options,a=n.elements.arrow,o=n.modifiersData.popperOffsets,l=ls(n.placement),s=OR(l),u=[Fa,Jo].indexOf(l)>=0,c=u?"height":"width";if(!(!a||!o)){var d=FTe(i.padding,n),g=UR(a),h=s==="y"?ya:Fa,m=s==="y"?Oo:Jo,A=n.rects.reference[c]+n.rects.reference[s]-o[s]-n.rects.popper[c],B=o[s]-n.rects.reference[s],C=wm(a),b=C?s==="y"?C.clientHeight||0:C.clientWidth||0:0,Q=A/2-B/2,F=d[h],K=b-g[c]-d[m],y=b/2-g[c]/2+Q,G=Mh(F,y,K),X=s;n.modifiersData[r]=(t={},t[X]=G,t.centerOffset=G-y,t)}}function RTe(e){var t=e.state,n=e.options,r=n.element,i=r===void 0?"[data-popper-arrow]":r;i!=null&&(typeof i=="string"&&(i=t.elements.popper.querySelector(i),!i)||zj(t.elements.popper,i)&&(t.elements.arrow=i))}const STe={name:"arrow",enabled:!0,phase:"main",fn:ETe,effect:RTe,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function S1(e){return e.split("-")[1]}var xTe={top:"auto",right:"auto",bottom:"auto",left:"auto"};function GTe(e,t){var n=e.x,r=e.y,i=t.devicePixelRatio||1;return{x:E1(n*i)/i||0,y:E1(r*i)/i||0}}function iX(e){var t,n=e.popper,r=e.popperRect,i=e.placement,a=e.variation,o=e.offsets,l=e.position,s=e.gpuAcceleration,u=e.adaptive,c=e.roundOffsets,d=e.isFixed,g=o.x,h=g===void 0?0:g,m=o.y,A=m===void 0?0:m,B=typeof c=="function"?c({x:h,y:A}):{x:h,y:A};h=B.x,A=B.y;var C=o.hasOwnProperty("x"),b=o.hasOwnProperty("y"),Q=Fa,F=ya,K=window;if(u){var y=wm(n),G="clientHeight",X="clientWidth";if(y===ao(n)&&(y=zc(n),du(y).position!=="static"&&l==="absolute"&&(G="scrollHeight",X="scrollWidth")),y=y,i===ya||(i===Fa||i===Jo)&&a===Zf){F=Oo;var H=d&&y===K&&K.visualViewport?K.visualViewport.height:y[G];A-=H-r.height,A*=s?1:-1}if(i===Fa||(i===ya||i===Oo)&&a===Zf){Q=Jo;var v=d&&y===K&&K.visualViewport?K.visualViewport.width:y[X];h-=v-r.width,h*=s?1:-1}}var k=Object.assign({position:l},u&&xTe),D=c===!0?GTe({x:h,y:A},ao(n)):{x:h,y:A};if(h=D.x,A=D.y,s){var V;return Object.assign({},k,(V={},V[F]=b?"0":"",V[Q]=C?"0":"",V.transform=(K.devicePixelRatio||1)<=1?"translate("+h+"px, "+A+"px)":"translate3d("+h+"px, "+A+"px, 0)",V))}return Object.assign({},k,(t={},t[F]=b?A+"px":"",t[Q]=C?h+"px":"",t.transform="",t))}function kTe(e){var t=e.state,n=e.options,r=n.gpuAcceleration,i=r===void 0?!0:r,a=n.adaptive,o=a===void 0?!0:a,l=n.roundOffsets,s=l===void 0?!0:l,u={placement:ls(t.placement),variation:S1(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:i,isFixed:t.options.strategy==="fixed"};t.modifiersData.popperOffsets!=null&&(t.styles.popper=Object.assign({},t.styles.popper,iX(Object.assign({},u,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:o,roundOffsets:s})))),t.modifiersData.arrow!=null&&(t.styles.arrow=Object.assign({},t.styles.arrow,iX(Object.assign({},u,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:s})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})}const DTe={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:kTe,data:{}};var D2={passive:!0};function NTe(e){var t=e.state,n=e.instance,r=e.options,i=r.scroll,a=i===void 0?!0:i,o=r.resize,l=o===void 0?!0:o,s=ao(t.elements.popper),u=[].concat(t.scrollParents.reference,t.scrollParents.popper);return a&&u.forEach(function(c){c.addEventListener("scroll",n.update,D2)}),l&&s.addEventListener("resize",n.update,D2),function(){a&&u.forEach(function(c){c.removeEventListener("scroll",n.update,D2)}),l&&s.removeEventListener("resize",n.update,D2)}}const ZTe={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:NTe,data:{}};var HTe={left:"right",right:"left",bottom:"top",top:"bottom"};function vC(e){return e.replace(/left|right|bottom|top/g,function(t){return HTe[t]})}var XTe={start:"end",end:"start"};function aX(e){return e.replace(/start|end/g,function(t){return XTe[t]})}function JR(e){var t=ao(e),n=t.pageXOffset,r=t.pageYOffset;return{scrollLeft:n,scrollTop:r}}function zR(e){return R1(zc(e)).left+JR(e).scrollLeft}function LTe(e,t){var n=ao(e),r=zc(e),i=n.visualViewport,a=r.clientWidth,o=r.clientHeight,l=0,s=0;if(i){a=i.width,o=i.height;var u=Jj();(u||!u&&t==="fixed")&&(l=i.offsetLeft,s=i.offsetTop)}return{width:a,height:o,x:l+zR(e),y:s}}function MTe(e){var t,n=zc(e),r=JR(e),i=(t=e.ownerDocument)==null?void 0:t.body,a=I0(n.scrollWidth,n.clientWidth,i?i.scrollWidth:0,i?i.clientWidth:0),o=I0(n.scrollHeight,n.clientHeight,i?i.scrollHeight:0,i?i.clientHeight:0),l=-r.scrollLeft+zR(e),s=-r.scrollTop;return du(i||n).direction==="rtl"&&(l+=I0(n.clientWidth,i?i.clientWidth:0)-a),{width:a,height:o,x:l,y:s}}function PR(e){var t=du(e),n=t.overflow,r=t.overflowX,i=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+i+r)}function $j(e){return["html","body","#document"].indexOf(gs(e))>=0?e.ownerDocument.body:Lo(e)&&PR(e)?e:$j(nw(e))}function Th(e,t){var n;t===void 0&&(t=[]);var r=$j(e),i=r===((n=e.ownerDocument)==null?void 0:n.body),a=ao(r),o=i?[a].concat(a.visualViewport||[],PR(r)?r:[]):r,l=t.concat(o);return i?l:l.concat(Th(nw(o)))}function e5(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function TTe(e,t){var n=R1(e,!1,t==="fixed");return n.top=n.top+e.clientTop,n.left=n.left+e.clientLeft,n.bottom=n.top+e.clientHeight,n.right=n.left+e.clientWidth,n.width=e.clientWidth,n.height=e.clientHeight,n.x=n.left,n.y=n.top,n}function oX(e,t,n){return t===Ij?e5(LTe(e,n)):od(t)?TTe(t,n):e5(MTe(zc(e)))}function VTe(e){var t=Th(nw(e)),n=["absolute","fixed"].indexOf(du(e).position)>=0,r=n&&Lo(e)?wm(e):e;return od(r)?t.filter(function(i){return od(i)&&zj(i,r)&&gs(i)!=="body"}):[]}function YTe(e,t,n,r){var i=t==="clippingParents"?VTe(e):[].concat(t),a=[].concat(i,[n]),o=a[0],l=a.reduce(function(s,u){var c=oX(e,u,r);return s.top=I0(c.top,s.top),s.right=l4(c.right,s.right),s.bottom=l4(c.bottom,s.bottom),s.left=I0(c.left,s.left),s},oX(e,o,r));return l.width=l.right-l.left,l.height=l.bottom-l.top,l.x=l.left,l.y=l.top,l}function qj(e){var t=e.reference,n=e.element,r=e.placement,i=r?ls(r):null,a=r?S1(r):null,o=t.x+t.width/2-n.width/2,l=t.y+t.height/2-n.height/2,s;switch(i){case ya:s={x:o,y:t.y-n.height};break;case Oo:s={x:o,y:t.y+t.height};break;case Jo:s={x:t.x+t.width,y:l};break;case Fa:s={x:t.x-n.width,y:l};break;default:s={x:t.x,y:t.y}}var u=i?OR(i):null;if(u!=null){var c=u==="y"?"height":"width";switch(a){case F1:s[u]=s[u]-(t[c]/2-n[c]/2);break;case Zf:s[u]=s[u]+(t[c]/2-n[c]/2);break}}return s}function Hf(e,t){t===void 0&&(t={});var n=t,r=n.placement,i=r===void 0?e.placement:r,a=n.strategy,o=a===void 0?e.strategy:a,l=n.boundary,s=l===void 0?cTe:l,u=n.rootBoundary,c=u===void 0?Ij:u,d=n.elementContext,g=d===void 0?$g:d,h=n.altBoundary,m=h===void 0?!1:h,A=n.padding,B=A===void 0?0:A,C=jj(typeof B!="number"?B:_j(B,Bm)),b=g===$g?dTe:$g,Q=e.rects.popper,F=e.elements[m?b:g],K=YTe(od(F)?F:F.contextElement||zc(e.elements.popper),s,c,o),y=R1(e.elements.reference),G=qj({reference:y,element:Q,strategy:"absolute",placement:i}),X=e5(Object.assign({},Q,G)),H=g===$g?X:y,v={top:K.top-H.top+C.top,bottom:H.bottom-K.bottom+C.bottom,left:K.left-H.left+C.left,right:H.right-K.right+C.right},k=e.modifiersData.offset;if(g===$g&&k){var D=k[i];Object.keys(v).forEach(function(V){var z=[Jo,Oo].indexOf(V)>=0?1:-1,j=[ya,Oo].indexOf(V)>=0?"y":"x";v[V]+=D[j]*z})}return v}function ITe(e,t){t===void 0&&(t={});var n=t,r=n.placement,i=n.boundary,a=n.rootBoundary,o=n.padding,l=n.flipVariations,s=n.allowedAutoPlacements,u=s===void 0?Uj:s,c=S1(r),d=c?l?nX:nX.filter(function(m){return S1(m)===c}):Bm,g=d.filter(function(m){return u.indexOf(m)>=0});g.length===0&&(g=d);var h=g.reduce(function(m,A){return m[A]=Hf(e,{placement:A,boundary:i,rootBoundary:a,padding:o})[ls(A)],m},{});return Object.keys(h).sort(function(m,A){return h[m]-h[A]})}function UTe(e){if(ls(e)===YR)return[];var t=vC(e);return[aX(e),t,aX(t)]}function OTe(e){var t=e.state,n=e.options,r=e.name;if(!t.modifiersData[r]._skip){for(var i=n.mainAxis,a=i===void 0?!0:i,o=n.altAxis,l=o===void 0?!0:o,s=n.fallbackPlacements,u=n.padding,c=n.boundary,d=n.rootBoundary,g=n.altBoundary,h=n.flipVariations,m=h===void 0?!0:h,A=n.allowedAutoPlacements,B=t.options.placement,C=ls(B),b=C===B,Q=s||(b||!m?[vC(B)]:UTe(B)),F=[B].concat(Q).reduce(function(ue,fe){return ue.concat(ls(fe)===YR?ITe(t,{placement:fe,boundary:c,rootBoundary:d,padding:u,flipVariations:m,allowedAutoPlacements:A}):fe)},[]),K=t.rects.reference,y=t.rects.popper,G=new Map,X=!0,H=F[0],v=0;v=0,j=z?"width":"height",te=Hf(t,{placement:k,boundary:c,rootBoundary:d,altBoundary:g,padding:u}),J=z?V?Jo:Fa:V?Oo:ya;K[j]>y[j]&&(J=vC(J));var I=vC(J),se=[];if(a&&se.push(te[D]<=0),l&&se.push(te[J]<=0,te[I]<=0),se.every(function(ue){return ue})){H=k,X=!1;break}G.set(k,se)}if(X)for(var Z=m?3:1,S=function(fe){var _=F.find(function(Ze){var ve=G.get(Ze);if(ve)return ve.slice(0,fe).every(function(it){return it})});if(_)return H=_,"break"},q=Z;q>0;q--){var T=S(q);if(T==="break")break}t.placement!==H&&(t.modifiersData[r]._skip=!0,t.placement=H,t.reset=!0)}}const JTe={name:"flip",enabled:!0,phase:"main",fn:OTe,requiresIfExists:["offset"],data:{_skip:!1}};function lX(e,t,n){return n===void 0&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function sX(e){return[ya,Jo,Oo,Fa].some(function(t){return e[t]>=0})}function zTe(e){var t=e.state,n=e.name,r=t.rects.reference,i=t.rects.popper,a=t.modifiersData.preventOverflow,o=Hf(t,{elementContext:"reference"}),l=Hf(t,{altBoundary:!0}),s=lX(o,r),u=lX(l,i,a),c=sX(s),d=sX(u);t.modifiersData[n]={referenceClippingOffsets:s,popperEscapeOffsets:u,isReferenceHidden:c,hasPopperEscaped:d},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":c,"data-popper-escaped":d})}const PTe={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:zTe};function jTe(e,t,n){var r=ls(e),i=[Fa,ya].indexOf(r)>=0?-1:1,a=typeof n=="function"?n(Object.assign({},t,{placement:e})):n,o=a[0],l=a[1];return o=o||0,l=(l||0)*i,[Fa,Jo].indexOf(r)>=0?{x:l,y:o}:{x:o,y:l}}function _Te(e){var t=e.state,n=e.options,r=e.name,i=n.offset,a=i===void 0?[0,0]:i,o=Uj.reduce(function(c,d){return c[d]=jTe(d,t.rects,a),c},{}),l=o[t.placement],s=l.x,u=l.y;t.modifiersData.popperOffsets!=null&&(t.modifiersData.popperOffsets.x+=s,t.modifiersData.popperOffsets.y+=u),t.modifiersData[r]=o}const $Te={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:_Te};function qTe(e){var t=e.state,n=e.name;t.modifiersData[n]=qj({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})}const eVe={name:"popperOffsets",enabled:!0,phase:"read",fn:qTe,data:{}};function tVe(e){return e==="x"?"y":"x"}function nVe(e){var t=e.state,n=e.options,r=e.name,i=n.mainAxis,a=i===void 0?!0:i,o=n.altAxis,l=o===void 0?!1:o,s=n.boundary,u=n.rootBoundary,c=n.altBoundary,d=n.padding,g=n.tether,h=g===void 0?!0:g,m=n.tetherOffset,A=m===void 0?0:m,B=Hf(t,{boundary:s,rootBoundary:u,padding:d,altBoundary:c}),C=ls(t.placement),b=S1(t.placement),Q=!b,F=OR(C),K=tVe(F),y=t.modifiersData.popperOffsets,G=t.rects.reference,X=t.rects.popper,H=typeof A=="function"?A(Object.assign({},t.rects,{placement:t.placement})):A,v=typeof H=="number"?{mainAxis:H,altAxis:H}:Object.assign({mainAxis:0,altAxis:0},H),k=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,D={x:0,y:0};if(y){if(a){var V,z=F==="y"?ya:Fa,j=F==="y"?Oo:Jo,te=F==="y"?"height":"width",J=y[F],I=J+B[z],se=J-B[j],Z=h?-X[te]/2:0,S=b===F1?G[te]:X[te],q=b===F1?-X[te]:-G[te],T=t.elements.arrow,ue=h&&T?UR(T):{width:0,height:0},fe=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:Pj(),_=fe[z],Ze=fe[j],ve=Mh(0,G[te],ue[te]),it=Q?G[te]/2-Z-ve-_-v.mainAxis:S-ve-_-v.mainAxis,et=Q?-G[te]/2+Z+ve+Ze+v.mainAxis:q+ve+Ze+v.mainAxis,ot=t.elements.arrow&&wm(t.elements.arrow),Oe=ot?F==="y"?ot.clientTop||0:ot.clientLeft||0:0,tt=(V=k==null?void 0:k[F])!=null?V:0,st=J+it-tt-Oe,pt=J+et-tt,ht=Mh(h?l4(I,st):I,J,h?I0(se,pt):se);y[F]=ht,D[F]=ht-J}if(l){var lt,P=F==="x"?ya:Fa,le=F==="x"?Oo:Jo,me=y[K],Re=K==="y"?"height":"width",Qe=me+B[P],We=me-B[le],Ee=[ya,Fa].indexOf(C)!==-1,Ie=(lt=k==null?void 0:k[K])!=null?lt:0,Ce=Ee?Qe:me-G[Re]-X[Re]-Ie+v.altAxis,de=Ee?me+G[Re]+X[Re]-Ie-v.altAxis:We,we=h&&Ee?yTe(Ce,me,de):Mh(h?Ce:Qe,me,h?de:We);y[K]=we,D[K]=we-me}t.modifiersData[r]=D}}const rVe={name:"preventOverflow",enabled:!0,phase:"main",fn:nVe,requiresIfExists:["offset"]};function iVe(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}function aVe(e){return e===ao(e)||!Lo(e)?JR(e):iVe(e)}function oVe(e){var t=e.getBoundingClientRect(),n=E1(t.width)/e.offsetWidth||1,r=E1(t.height)/e.offsetHeight||1;return n!==1||r!==1}function lVe(e,t,n){n===void 0&&(n=!1);var r=Lo(t),i=Lo(t)&&oVe(t),a=zc(t),o=R1(e,i,n),l={scrollLeft:0,scrollTop:0},s={x:0,y:0};return(r||!r&&!n)&&((gs(t)!=="body"||PR(a))&&(l=aVe(t)),Lo(t)?(s=R1(t,!0),s.x+=t.clientLeft,s.y+=t.clientTop):a&&(s.x=zR(a))),{x:o.left+l.scrollLeft-s.x,y:o.top+l.scrollTop-s.y,width:o.width,height:o.height}}function sVe(e){var t=new Map,n=new Set,r=[];e.forEach(function(a){t.set(a.name,a)});function i(a){n.add(a.name);var o=[].concat(a.requires||[],a.requiresIfExists||[]);o.forEach(function(l){if(!n.has(l)){var s=t.get(l);s&&i(s)}}),r.push(a)}return e.forEach(function(a){n.has(a.name)||i(a)}),r}function uVe(e){var t=sVe(e);return bTe.reduce(function(n,r){return n.concat(t.filter(function(i){return i.phase===r}))},[])}function cVe(e){var t;return function(){return t||(t=new Promise(function(n){Promise.resolve().then(function(){t=void 0,n(e())})})),t}}function dVe(e){var t=e.reduce(function(n,r){var i=n[r.name];return n[r.name]=i?Object.assign({},i,r,{options:Object.assign({},i.options,r.options),data:Object.assign({},i.data,r.data)}):r,n},{});return Object.keys(t).map(function(n){return t[n]})}var uX={placement:"bottom",modifiers:[],strategy:"absolute"};function cX(){for(var e=arguments.length,t=new Array(e),n=0;n-1}function i_(e,t){return typeof e=="function"?e.apply(void 0,t):e}function dX(e,t){if(t===0)return e;var n;return function(r){clearTimeout(n),n=setTimeout(function(){e(r)},t)}}function AVe(e){return e.split(/\s+/).filter(Boolean)}function dp(e){return[].concat(e)}function pX(e,t){e.indexOf(t)===-1&&e.push(t)}function CVe(e){return e.filter(function(t,n){return e.indexOf(t)===n})}function BVe(e){return e.split("-")[0]}function s4(e){return[].slice.call(e)}function gX(e){return Object.keys(e).reduce(function(t,n){return e[n]!==void 0&&(t[n]=e[n]),t},{})}function Vh(){return document.createElement("div")}function rw(e){return["Element","Fragment"].some(function(t){return jR(e,t)})}function wVe(e){return jR(e,"NodeList")}function bVe(e){return jR(e,"MouseEvent")}function vVe(e){return!!(e&&e._tippy&&e._tippy.reference===e)}function KVe(e){return rw(e)?[e]:wVe(e)?s4(e):Array.isArray(e)?e:s4(document.querySelectorAll(e))}function NQ(e,t){e.forEach(function(n){n&&(n.style.transitionDuration=t+"ms")})}function hX(e,t){e.forEach(function(n){n&&n.setAttribute("data-state",t)})}function QVe(e){var t,n=dp(e),r=n[0];return r!=null&&(t=r.ownerDocument)!=null&&t.body?r.ownerDocument:document}function WVe(e,t){var n=t.clientX,r=t.clientY;return e.every(function(i){var a=i.popperRect,o=i.popperState,l=i.props,s=l.interactiveBorder,u=BVe(o.placement),c=o.modifiersData.offset;if(!c)return!0;var d=u==="bottom"?c.top.y:0,g=u==="top"?c.bottom.y:0,h=u==="right"?c.left.x:0,m=u==="left"?c.right.x:0,A=a.top-r+d>s,B=r-a.bottom-g>s,C=a.left-n+h>s,b=n-a.right-m>s;return A||B||C||b})}function ZQ(e,t,n){var r=t+"EventListener";["transitionend","webkitTransitionEnd"].forEach(function(i){e[r](i,n)})}function fX(e,t){for(var n=t;n;){var r;if(e.contains(n))return!0;n=n.getRootNode==null||(r=n.getRootNode())==null?void 0:r.host}return!1}var Yl={isTouch:!1},mX=0;function yVe(){Yl.isTouch||(Yl.isTouch=!0,window.performance&&document.addEventListener("mousemove",a_))}function a_(){var e=performance.now();e-mX<20&&(Yl.isTouch=!1,document.removeEventListener("mousemove",a_)),mX=e}function FVe(){var e=document.activeElement;if(vVe(e)){var t=e._tippy;e.blur&&!t.state.isVisible&&e.blur()}}function EVe(){document.addEventListener("touchstart",yVe,f0),window.addEventListener("blur",FVe)}var RVe=typeof window<"u"&&typeof document<"u",SVe=RVe?!!window.msCrypto:!1,xVe={animateFill:!1,followCursor:!1,inlinePositioning:!1,sticky:!1},GVe={allowHTML:!1,animation:"fade",arrow:!0,content:"",inertia:!1,maxWidth:350,role:"tooltip",theme:"",zIndex:9999},hl=Object.assign({appendTo:r_,aria:{content:"auto",expanded:"auto"},delay:0,duration:[300,250],getReferenceClientRect:null,hideOnClick:!0,ignoreAttributes:!1,interactive:!1,interactiveBorder:2,interactiveDebounce:0,moveTransition:"",offset:[0,10],onAfterUpdate:function(){},onBeforeUpdate:function(){},onCreate:function(){},onDestroy:function(){},onHidden:function(){},onHide:function(){},onMount:function(){},onShow:function(){},onShown:function(){},onTrigger:function(){},onUntrigger:function(){},onClickOutside:function(){},placement:"top",plugins:[],popperOptions:{},render:null,showOnCreate:!1,touch:!0,trigger:"mouseenter focus",triggerTarget:null},xVe,GVe),kVe=Object.keys(hl),DVe=function(t){var n=Object.keys(t);n.forEach(function(r){hl[r]=t[r]})};function o_(e){var t=e.plugins||[],n=t.reduce(function(r,i){var a=i.name,o=i.defaultValue;if(a){var l;r[a]=e[a]!==void 0?e[a]:(l=hl[a])!=null?l:o}return r},{});return Object.assign({},e,n)}function NVe(e,t){var n=t?Object.keys(o_(Object.assign({},hl,{plugins:t}))):kVe,r=n.reduce(function(i,a){var o=(e.getAttribute("data-tippy-"+a)||"").trim();if(!o)return i;if(a==="content")i[a]=o;else try{i[a]=JSON.parse(o)}catch{i[a]=o}return i},{});return r}function AX(e,t){var n=Object.assign({},t,{content:i_(t.content,[e])},t.ignoreAttributes?{}:NVe(e,t.plugins));return n.aria=Object.assign({},hl.aria,n.aria),n.aria={expanded:n.aria.expanded==="auto"?t.interactive:n.aria.expanded,content:n.aria.content==="auto"?t.interactive?null:"describedby":n.aria.content},n}var ZVe=function(){return"innerHTML"};function t5(e,t){e[ZVe()]=t}function CX(e){var t=Vh();return e===!0?t.className=t_:(t.className=n_,rw(e)?t.appendChild(e):t5(t,e)),t}function BX(e,t){rw(t.content)?(t5(e,""),e.appendChild(t.content)):typeof t.content!="function"&&(t.allowHTML?t5(e,t.content):e.textContent=t.content)}function n5(e){var t=e.firstElementChild,n=s4(t.children);return{box:t,content:n.find(function(r){return r.classList.contains(e_)}),arrow:n.find(function(r){return r.classList.contains(t_)||r.classList.contains(n_)}),backdrop:n.find(function(r){return r.classList.contains(mVe)})}}function l_(e){var t=Vh(),n=Vh();n.className=fVe,n.setAttribute("data-state","hidden"),n.setAttribute("tabindex","-1");var r=Vh();r.className=e_,r.setAttribute("data-state","hidden"),BX(r,e.props),t.appendChild(n),n.appendChild(r),i(e.props,e.props);function i(a,o){var l=n5(t),s=l.box,u=l.content,c=l.arrow;o.theme?s.setAttribute("data-theme",o.theme):s.removeAttribute("data-theme"),typeof o.animation=="string"?s.setAttribute("data-animation",o.animation):s.removeAttribute("data-animation"),o.inertia?s.setAttribute("data-inertia",""):s.removeAttribute("data-inertia"),s.style.maxWidth=typeof o.maxWidth=="number"?o.maxWidth+"px":o.maxWidth,o.role?s.setAttribute("role",o.role):s.removeAttribute("role"),(a.content!==o.content||a.allowHTML!==o.allowHTML)&&BX(u,e.props),o.arrow?c?a.arrow!==o.arrow&&(s.removeChild(c),s.appendChild(CX(o.arrow))):s.appendChild(CX(o.arrow)):c&&s.removeChild(c)}return{popper:t,onUpdate:i}}l_.$$tippy=!0;var HVe=1,N2=[],HQ=[];function XVe(e,t){var n=AX(e,Object.assign({},hl,o_(gX(t)))),r,i,a,o=!1,l=!1,s=!1,u=!1,c,d,g,h=[],m=dX(st,n.interactiveDebounce),A,B=HVe++,C=null,b=CVe(n.plugins),Q={isEnabled:!0,isVisible:!1,isDestroyed:!1,isMounted:!1,isShown:!1},F={id:B,reference:e,popper:Vh(),popperInstance:C,props:n,state:Q,plugins:b,clearDelayTimeouts:Ce,setProps:de,setContent:we,show:ae,hide:xe,hideWithInteractivity:nt,enable:Ee,disable:Ie,unmount:ft,destroy:Bt};if(!n.render)return F;var K=n.render(F),y=K.popper,G=K.onUpdate;y.setAttribute("data-tippy-root",""),y.id="tippy-"+F.id,F.popper=y,e._tippy=F,y._tippy=F;var X=b.map(function($){return $.fn(F)}),H=e.hasAttribute("aria-expanded");return ot(),Z(),J(),I("onCreate",[F]),n.showOnCreate&&Qe(),y.addEventListener("mouseenter",function(){F.props.interactive&&F.state.isVisible&&F.clearDelayTimeouts()}),y.addEventListener("mouseleave",function(){F.props.interactive&&F.props.trigger.indexOf("mouseenter")>=0&&z().addEventListener("mousemove",m)}),F;function v(){var $=F.props.touch;return Array.isArray($)?$:[$,0]}function k(){return v()[0]==="hold"}function D(){var $;return!!(($=F.props.render)!=null&&$.$$tippy)}function V(){return A||e}function z(){var $=V().parentNode;return $?QVe($):document}function j(){return n5(y)}function te($){return F.state.isMounted&&!F.state.isVisible||Yl.isTouch||c&&c.type==="focus"?0:DQ(F.props.delay,$?0:1,hl.delay)}function J($){$===void 0&&($=!1),y.style.pointerEvents=F.props.interactive&&!$?"":"none",y.style.zIndex=""+F.props.zIndex}function I($,Ke,Ne){if(Ne===void 0&&(Ne=!0),X.forEach(function(Pe){Pe[$]&&Pe[$].apply(Pe,Ke)}),Ne){var ut;(ut=F.props)[$].apply(ut,Ke)}}function se(){var $=F.props.aria;if($.content){var Ke="aria-"+$.content,Ne=y.id,ut=dp(F.props.triggerTarget||e);ut.forEach(function(Pe){var Gt=Pe.getAttribute(Ke);if(F.state.isVisible)Pe.setAttribute(Ke,Gt?Gt+" "+Ne:Ne);else{var An=Gt&&Gt.replace(Ne,"").trim();An?Pe.setAttribute(Ke,An):Pe.removeAttribute(Ke)}})}}function Z(){if(!(H||!F.props.aria.expanded)){var $=dp(F.props.triggerTarget||e);$.forEach(function(Ke){F.props.interactive?Ke.setAttribute("aria-expanded",F.state.isVisible&&Ke===V()?"true":"false"):Ke.removeAttribute("aria-expanded")})}}function S(){z().removeEventListener("mousemove",m),N2=N2.filter(function($){return $!==m})}function q($){if(!(Yl.isTouch&&(s||$.type==="mousedown"))){var Ke=$.composedPath&&$.composedPath()[0]||$.target;if(!(F.props.interactive&&fX(y,Ke))){if(dp(F.props.triggerTarget||e).some(function(Ne){return fX(Ne,Ke)})){if(Yl.isTouch||F.state.isVisible&&F.props.trigger.indexOf("click")>=0)return}else I("onClickOutside",[F,$]);F.props.hideOnClick===!0&&(F.clearDelayTimeouts(),F.hide(),l=!0,setTimeout(function(){l=!1}),F.state.isMounted||_())}}}function T(){s=!0}function ue(){s=!1}function fe(){var $=z();$.addEventListener("mousedown",q,!0),$.addEventListener("touchend",q,f0),$.addEventListener("touchstart",ue,f0),$.addEventListener("touchmove",T,f0)}function _(){var $=z();$.removeEventListener("mousedown",q,!0),$.removeEventListener("touchend",q,f0),$.removeEventListener("touchstart",ue,f0),$.removeEventListener("touchmove",T,f0)}function Ze($,Ke){it($,function(){!F.state.isVisible&&y.parentNode&&y.parentNode.contains(y)&&Ke()})}function ve($,Ke){it($,Ke)}function it($,Ke){var Ne=j().box;function ut(Pe){Pe.target===Ne&&(ZQ(Ne,"remove",ut),Ke())}if($===0)return Ke();ZQ(Ne,"remove",d),ZQ(Ne,"add",ut),d=ut}function et($,Ke,Ne){Ne===void 0&&(Ne=!1);var ut=dp(F.props.triggerTarget||e);ut.forEach(function(Pe){Pe.addEventListener($,Ke,Ne),h.push({node:Pe,eventType:$,handler:Ke,options:Ne})})}function ot(){k()&&(et("touchstart",tt,{passive:!0}),et("touchend",pt,{passive:!0})),AVe(F.props.trigger).forEach(function($){if($!=="manual")switch(et($,tt),$){case"mouseenter":et("mouseleave",pt);break;case"focus":et(SVe?"focusout":"blur",ht);break;case"focusin":et("focusout",ht);break}})}function Oe(){h.forEach(function($){var Ke=$.node,Ne=$.eventType,ut=$.handler,Pe=$.options;Ke.removeEventListener(Ne,ut,Pe)}),h=[]}function tt($){var Ke,Ne=!1;if(!(!F.state.isEnabled||lt($)||l)){var ut=((Ke=c)==null?void 0:Ke.type)==="focus";c=$,A=$.currentTarget,Z(),!F.state.isVisible&&bVe($)&&N2.forEach(function(Pe){return Pe($)}),$.type==="click"&&(F.props.trigger.indexOf("mouseenter")<0||o)&&F.props.hideOnClick!==!1&&F.state.isVisible?Ne=!0:Qe($),$.type==="click"&&(o=!Ne),Ne&&!ut&&We($)}}function st($){var Ke=$.target,Ne=V().contains(Ke)||y.contains(Ke);if(!($.type==="mousemove"&&Ne)){var ut=Re().concat(y).map(function(Pe){var Gt,An=Pe._tippy,Xt=(Gt=An.popperInstance)==null?void 0:Gt.state;return Xt?{popperRect:Pe.getBoundingClientRect(),popperState:Xt,props:n}:null}).filter(Boolean);WVe(ut,$)&&(S(),We($))}}function pt($){var Ke=lt($)||F.props.trigger.indexOf("click")>=0&&o;if(!Ke){if(F.props.interactive){F.hideWithInteractivity($);return}We($)}}function ht($){F.props.trigger.indexOf("focusin")<0&&$.target!==V()||F.props.interactive&&$.relatedTarget&&y.contains($.relatedTarget)||We($)}function lt($){return Yl.isTouch?k()!==$.type.indexOf("touch")>=0:!1}function P(){le();var $=F.props,Ke=$.popperOptions,Ne=$.placement,ut=$.offset,Pe=$.getReferenceClientRect,Gt=$.moveTransition,An=D()?n5(y).arrow:null,Xt=Pe?{getBoundingClientRect:Pe,contextElement:Pe.contextElement||V()}:e,Hn={name:"$$tippy",enabled:!0,phase:"beforeWrite",requires:["computeStyles"],fn:function(ie){var ge=ie.state;if(D()){var Fe=j(),Le=Fe.box;["placement","reference-hidden","escaped"].forEach(function(be){be==="placement"?Le.setAttribute("data-placement",ge.placement):ge.attributes.popper["data-popper-"+be]?Le.setAttribute("data-"+be,""):Le.removeAttribute("data-"+be)}),ge.attributes.popper={}}}},Cn=[{name:"offset",options:{offset:ut}},{name:"preventOverflow",options:{padding:{top:2,bottom:2,left:5,right:5}}},{name:"flip",options:{padding:5}},{name:"computeStyles",options:{adaptive:!Gt}},Hn];D()&&An&&Cn.push({name:"arrow",options:{element:An,padding:3}}),Cn.push.apply(Cn,(Ke==null?void 0:Ke.modifiers)||[]),F.popperInstance=hVe(Xt,y,Object.assign({},Ke,{placement:Ne,onFirstUpdate:g,modifiers:Cn}))}function le(){F.popperInstance&&(F.popperInstance.destroy(),F.popperInstance=null)}function me(){var $=F.props.appendTo,Ke,Ne=V();F.props.interactive&&$===r_||$==="parent"?Ke=Ne.parentNode:Ke=i_($,[Ne]),Ke.contains(y)||Ke.appendChild(y),F.state.isMounted=!0,P()}function Re(){return s4(y.querySelectorAll("[data-tippy-root]"))}function Qe($){F.clearDelayTimeouts(),$&&I("onTrigger",[F,$]),fe();var Ke=te(!0),Ne=v(),ut=Ne[0],Pe=Ne[1];Yl.isTouch&&ut==="hold"&&Pe&&(Ke=Pe),Ke?r=setTimeout(function(){F.show()},Ke):F.show()}function We($){if(F.clearDelayTimeouts(),I("onUntrigger",[F,$]),!F.state.isVisible){_();return}if(!(F.props.trigger.indexOf("mouseenter")>=0&&F.props.trigger.indexOf("click")>=0&&["mouseleave","mousemove"].indexOf($.type)>=0&&o)){var Ke=te(!1);Ke?i=setTimeout(function(){F.state.isVisible&&F.hide()},Ke):a=requestAnimationFrame(function(){F.hide()})}}function Ee(){F.state.isEnabled=!0}function Ie(){F.hide(),F.state.isEnabled=!1}function Ce(){clearTimeout(r),clearTimeout(i),cancelAnimationFrame(a)}function de($){if(!F.state.isDestroyed){I("onBeforeUpdate",[F,$]),Oe();var Ke=F.props,Ne=AX(e,Object.assign({},Ke,gX($),{ignoreAttributes:!0}));F.props=Ne,ot(),Ke.interactiveDebounce!==Ne.interactiveDebounce&&(S(),m=dX(st,Ne.interactiveDebounce)),Ke.triggerTarget&&!Ne.triggerTarget?dp(Ke.triggerTarget).forEach(function(ut){ut.removeAttribute("aria-expanded")}):Ne.triggerTarget&&e.removeAttribute("aria-expanded"),Z(),J(),G&&G(Ke,Ne),F.popperInstance&&(P(),Re().forEach(function(ut){requestAnimationFrame(ut._tippy.popperInstance.forceUpdate)})),I("onAfterUpdate",[F,$])}}function we($){F.setProps({content:$})}function ae(){var $=F.state.isVisible,Ke=F.state.isDestroyed,Ne=!F.state.isEnabled,ut=Yl.isTouch&&!F.props.touch,Pe=DQ(F.props.duration,0,hl.duration);if(!($||Ke||Ne||ut)&&!V().hasAttribute("disabled")&&(I("onShow",[F],!1),F.props.onShow(F)!==!1)){if(F.state.isVisible=!0,D()&&(y.style.visibility="visible"),J(),fe(),F.state.isMounted||(y.style.transition="none"),D()){var Gt=j(),An=Gt.box,Xt=Gt.content;NQ([An,Xt],0)}g=function(){var Cn;if(!(!F.state.isVisible||u)){if(u=!0,y.offsetHeight,y.style.transition=F.props.moveTransition,D()&&F.props.animation){var rr=j(),ie=rr.box,ge=rr.content;NQ([ie,ge],Pe),hX([ie,ge],"visible")}se(),Z(),pX(HQ,F),(Cn=F.popperInstance)==null||Cn.forceUpdate(),I("onMount",[F]),F.props.animation&&D()&&ve(Pe,function(){F.state.isShown=!0,I("onShown",[F])})}},me()}}function xe(){var $=!F.state.isVisible,Ke=F.state.isDestroyed,Ne=!F.state.isEnabled,ut=DQ(F.props.duration,1,hl.duration);if(!($||Ke||Ne)&&(I("onHide",[F],!1),F.props.onHide(F)!==!1)){if(F.state.isVisible=!1,F.state.isShown=!1,u=!1,o=!1,D()&&(y.style.visibility="hidden"),S(),_(),J(!0),D()){var Pe=j(),Gt=Pe.box,An=Pe.content;F.props.animation&&(NQ([Gt,An],ut),hX([Gt,An],"hidden"))}se(),Z(),F.props.animation?D()&&Ze(ut,F.unmount):F.unmount()}}function nt($){z().addEventListener("mousemove",m),pX(N2,m),m($)}function ft(){F.state.isVisible&&F.hide(),F.state.isMounted&&(le(),Re().forEach(function($){$._tippy.unmount()}),y.parentNode&&y.parentNode.removeChild(y),HQ=HQ.filter(function($){return $!==F}),F.state.isMounted=!1,I("onHidden",[F]))}function Bt(){F.state.isDestroyed||(F.clearDelayTimeouts(),F.unmount(),Oe(),delete e._tippy,F.state.isDestroyed=!0,I("onDestroy",[F]))}}function bm(e,t){t===void 0&&(t={});var n=hl.plugins.concat(t.plugins||[]);EVe();var r=Object.assign({},t,{plugins:n}),i=KVe(e),a=i.reduce(function(o,l){var s=l&&XVe(l,r);return s&&o.push(s),o},[]);return rw(e)?a[0]:a}bm.defaultProps=hl;bm.setDefaultProps=DVe;bm.currentInput=Yl;Object.assign({},Oj,{effect:function(t){var n=t.state,r={popper:{position:n.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};Object.assign(n.elements.popper.style,r.popper),n.styles=r,n.elements.arrow&&Object.assign(n.elements.arrow.style,r.arrow)}});bm.setDefaultProps({render:l_});const LVe=(...e)=>t=>{e.forEach(n=>{typeof n=="function"?n(t):n&&(n.current=t)})},MVe=({renderers:e})=>ct.createElement(ct.Fragment,null,Object.entries(e).map(([t,n])=>Al.createPortal(n.reactElement,n.element,t)));class TVe extends ct.Component{constructor(t){super(t),this.editorContentRef=ct.createRef(),this.initialized=!1,this.state={renderers:{}}}componentDidMount(){this.init()}componentDidUpdate(){this.init()}init(){const{editor:t}=this.props;if(t&&t.options.element){if(t.contentComponent)return;const n=this.editorContentRef.current;n.append(...t.options.element.childNodes),t.setOptions({element:n}),t.contentComponent=this,t.createNodeViews(),this.initialized=!0}}maybeFlushSync(t){this.initialized?If.flushSync(t):t()}setRenderer(t,n){this.maybeFlushSync(()=>{this.setState(({renderers:r})=>({renderers:{...r,[t]:n}}))})}removeRenderer(t){this.maybeFlushSync(()=>{this.setState(({renderers:n})=>{const r={...n};return delete r[t],{renderers:r}})})}componentWillUnmount(){const{editor:t}=this.props;if(!t||(this.initialized=!1,t.isDestroyed||t.view.setProps({nodeViews:{}}),t.contentComponent=null,!t.options.element.firstChild))return;const n=document.createElement("div");n.append(...t.options.element.childNodes),t.setOptions({element:n})}render(){const{editor:t,innerRef:n,...r}=this.props;return ct.createElement(ct.Fragment,null,ct.createElement("div",{ref:LVe(n,this.editorContentRef),...r}),ct.createElement(MVe,{renderers:this.state.renderers}))}}const VVe=E.forwardRef((e,t)=>{const n=ct.useMemo(()=>Math.floor(Math.random()*4294967295).toString(),[e.editor]);return ct.createElement(TVe,{key:n,innerRef:t,...e})}),YVe=ct.memo(VVe);class IVe extends YMe{constructor(){super(...arguments),this.contentComponent=null}}const UVe=(e={},t=[])=>{const n=E.useRef(null),[,r]=E.useState({}),{onBeforeCreate:i,onBlur:a,onCreate:o,onDestroy:l,onFocus:s,onSelectionUpdate:u,onTransaction:c,onUpdate:d}=e,g=E.useRef(i),h=E.useRef(a),m=E.useRef(o),A=E.useRef(l),B=E.useRef(s),C=E.useRef(u),b=E.useRef(c),Q=E.useRef(d);return E.useEffect(()=>{n.current&&(i&&(n.current.off("beforeCreate",g.current),n.current.on("beforeCreate",i),g.current=i),a&&(n.current.off("blur",h.current),n.current.on("blur",a),h.current=a),o&&(n.current.off("create",m.current),n.current.on("create",o),m.current=o),l&&(n.current.off("destroy",A.current),n.current.on("destroy",l),A.current=l),s&&(n.current.off("focus",B.current),n.current.on("focus",s),B.current=s),u&&(n.current.off("selectionUpdate",C.current),n.current.on("selectionUpdate",u),C.current=u),c&&(n.current.off("transaction",b.current),n.current.on("transaction",c),b.current=c),d&&(n.current.off("update",Q.current),n.current.on("update",d),Q.current=d))},[i,a,o,l,s,u,c,d,n.current]),E.useEffect(()=>{let F=!0;const K=new IVe(e);return n.current=K,n.current.on("transaction",()=>{requestAnimationFrame(()=>{requestAnimationFrame(()=>{F&&r({})})})}),()=>{F=!1,K.destroy()}},t),n.current},OVe=E.createContext({editor:null});OVe.Consumer;const s_=E.createContext({onDragStart:void 0}),JVe=()=>E.useContext(s_),zVe=ct.forwardRef((e,t)=>{const{onDragStart:n}=JVe(),r=e.as||"div";return ct.createElement(r,{...e,ref:t,"data-node-view-wrapper":"",onDragStart:n,style:{whiteSpace:"normal",...e.style}})});function PVe(e){return!!(typeof e=="function"&&e.prototype&&e.prototype.isReactComponent)}function jVe(e){var t;return typeof e=="object"&&((t=e.$$typeof)===null||t===void 0?void 0:t.toString())==="Symbol(react.forward_ref)"}class u_{constructor(t,{editor:n,props:r={},as:i="div",className:a="",attrs:o}){this.ref=null,this.id=Math.floor(Math.random()*4294967295).toString(),this.component=t,this.editor=n,this.props=r,this.element=document.createElement(i),this.element.classList.add("react-renderer"),a&&this.element.classList.add(...a.split(" ")),o&&Object.keys(o).forEach(l=>{this.element.setAttribute(l,o[l])}),this.render()}render(){var t,n;const r=this.component,i=this.props;(PVe(r)||jVe(r))&&(i.ref=a=>{this.ref=a}),this.reactElement=ct.createElement(r,{...i}),(n=(t=this.editor)===null||t===void 0?void 0:t.contentComponent)===null||n===void 0||n.setRenderer(this.id,this)}updateProps(t={}){this.props={...this.props,...t},this.render()}destroy(){var t,n;(n=(t=this.editor)===null||t===void 0?void 0:t.contentComponent)===null||n===void 0||n.removeRenderer(this.id)}}class _Ve extends OMe{mount(){const t={editor:this.editor,node:this.node,decorations:this.decorations,selected:!1,extension:this.extension,getPos:()=>this.getPos(),updateAttributes:(a={})=>this.updateAttributes(a),deleteNode:()=>this.deleteNode()};if(!this.component.displayName){const a=o=>o.charAt(0).toUpperCase()+o.substring(1);this.component.displayName=a(this.extension.name)}const n=a=>{const o=this.component,l=this.onDragStart.bind(this),s=u=>{u&&this.contentDOMElement&&u.firstChild!==this.contentDOMElement&&u.appendChild(this.contentDOMElement)};return ct.createElement(ct.Fragment,null,ct.createElement(s_.Provider,{value:{onDragStart:l,nodeViewContentRef:s}},ct.createElement(o,{...a})))};n.displayName="ReactNodeView",this.node.isLeaf?this.contentDOMElement=null:this.options.contentDOMElementTag?this.contentDOMElement=document.createElement(this.options.contentDOMElementTag):this.contentDOMElement=document.createElement(this.node.isInline?"span":"div"),this.contentDOMElement&&(this.contentDOMElement.style.whiteSpace="inherit");let r=this.node.isInline?"span":"div";this.options.as&&(r=this.options.as);const{className:i=""}=this.options;this.handleSelectionUpdate=this.handleSelectionUpdate.bind(this),this.editor.on("selectionUpdate",this.handleSelectionUpdate),this.renderer=new u_(n,{editor:this.editor,props:t,as:r,className:`node-${this.node.type.name} ${i}`.trim(),attrs:this.options.attrs})}get dom(){var t;if(this.renderer.element.firstElementChild&&!(!((t=this.renderer.element.firstElementChild)===null||t===void 0)&&t.hasAttribute("data-node-view-wrapper")))throw Error("Please use the NodeViewWrapper component for your node view.");return this.renderer.element}get contentDOM(){return this.node.isLeaf?null:this.contentDOMElement}handleSelectionUpdate(){const{from:t,to:n}=this.editor.state.selection;if(t<=this.getPos()&&n>=this.getPos()+this.node.nodeSize){if(this.renderer.props.selected)return;this.selectNode()}else{if(!this.renderer.props.selected)return;this.deselectNode()}}update(t,n){const r=i=>{this.renderer.updateProps(i)};if(t.type!==this.node.type)return!1;if(typeof this.options.update=="function"){const i=this.node,a=this.decorations;return this.node=t,this.decorations=n,this.options.update({oldNode:i,oldDecorations:a,newNode:t,newDecorations:n,updateProps:()=>r({node:t,decorations:n})})}return t===this.node&&this.decorations===n||(this.node=t,this.decorations=n,r({node:t,decorations:n})),!0}selectNode(){this.renderer.updateProps({selected:!0}),this.renderer.element.classList.add("ProseMirror-selectednode")}deselectNode(){this.renderer.updateProps({selected:!1}),this.renderer.element.classList.remove("ProseMirror-selectednode")}destroy(){this.renderer.destroy(),this.editor.off("selectionUpdate",this.handleSelectionUpdate),this.contentDOMElement=null}}function $Ve(e,t){return n=>n.editor.contentComponent?new _Ve(e,n,t):{}}function qVe(e,t){return e.length>t?e.slice(0,t-3)+"...":e}function iw(e){const t=en(d=>d.state);en(cd),en(d=>d.state.config.disableSessionTitles);const n=E.useContext(Zn);async function r(d,g){return await n.request("history/list",{offset:d,limit:g})}async function i(){var m;if(t.history.length===0)return;const d={...t};e(Qf()),await new Promise(A=>setTimeout(A,10));let g=d.title==="New Session"?qVe($l(d.history[0].message.content).split(` +`).filter(A=>A.trim()!=="").slice(-1)[0]||"",50):(await a(d.sessionId)).title;const h={history:d.history,title:g,sessionId:d.sessionId,workspaceDirectory:((m=window.workspacePaths)==null?void 0:m[0])||""};return Di("lastSessionId",d.sessionId),await n.request("history/save",h)}async function a(d){return await n.request("history/load",{id:d})}async function o(d){return await n.request("history/save",d)}async function l(d){return await n.request("history/delete",{id:d})}async function s(d){Di("lastSessionId",t.sessionId);const g=await n.request("history/load",{id:d});return e(Qf(g)),g}async function u(){const d=Vo("lastSessionId");if(d)return await s(d)}function c(){return Vo("lastSessionId")}return{getHistory:r,saveSession:i,deleteSession:l,loadSession:s,loadLastSession:u,getLastSessionId:c,updateSession:o,getSession:a}}function Ml(e,t=[]){const n=E.useRef(e);return E.useEffect(()=>{n.current=e},[e,...t]),n}const wX=()=>({type:"doc",content:[{type:"paragraph",content:[{type:"text",text:""}]}]}),XQ=100;function eYe(){var g;const[e,t]=E.useState(((g=Vo("inputHistory"))==null?void 0:g.slice(-XQ))??[]),[n,r]=E.useState(wX()),[i,a]=E.useState(e.length);function o(h){let m=i;if(m===e.length&&r(h),m>0&&m<=e.length)return a(A=>A-1),e[m-1]}function l(){let h=i;if(h>=0&&hm+1),h===e.length-1?n:e[h+1]}function s(h){if(r(wX()),JSON.stringify(e[e.length-1])===JSON.stringify(h)){a(e.length);return}else a(e.length+1);t(m=>[...m,h].slice(-XQ)),Di("inputHistory",[...e,h].slice(-XQ))}const u=Ml(o,[e]),c=Ml(l,[e]),d=Ml(s,[e]);return{prevRef:u,nextRef:c,addRef:d}}const tYe=Ve.div` + background-color: ${q0}; + border-radius: ${jt}; + border: 0.5px solid ${e=>e.borderColor||rt}; margin-top: 4px; margin-bottom: 4px; overflow: hidden; position: relative; & div { - background-color: ${mZ}; + background-color: ${q0}; } -`,TjI=LI.div` +`,nYe=Ve.div` margin: 0; padding: 2px 6px; - border-bottom: 0.5px solid ${ul}; + border-bottom: 0.5px solid ${rt}; word-break: break-all; - font-size: ${Fn()-2}px; + font-size: ${nr()-2}px; display: flex; align-items: center; -`,jjI=LI(le)` - ${I=>I.color&&`background-color: ${I.color};`} -`,iM=300,DjI=/`{3,}/gm;function OjI(I){var b,a;const[l,c]=Gl.useState(!0),[G,e]=Gl.useState(!1),d=Gl.useMemo(()=>{const Z=I.item.content.match(DjI);return Z?Z.sort().at(-1)+"`":"```"},[I.item.content]),t=Gl.useRef(null),n=`${Math.min(iM,((b=t.current)==null?void 0:b.scrollHeight)??I.item.content.split(` -`).length*18+36)}px`;return v.jsxs(SjI,{spellCheck:!1,onMouseEnter:()=>e(!0),onMouseLeave:()=>e(!1),borderColor:I.borderColor,children:[v.jsxs(TjI,{className:"flex justify-between cursor-pointer",onClick:()=>{if(I.item.id.providerTitle==="file")Yc("showFile",{filepath:I.item.description});else if(I.item.id.providerTitle==="code"){const Z=I.item.name.split("(")[1].split(")")[0].split("-");new QW().showLines(I.item.description,parseInt(Z[0])-1,parseInt(Z[1])-1)}else Yc("showVirtualFile",{name:I.item.name,content:I.item.content})},children:[v.jsxs("div",{className:"flex items-center",children:[v.jsx(gi,{height:"20px",width:"20px",filename:I.item.name}),I.item.name]}),v.jsxs("div",{className:"flex items-center",children:[I.onEdit&&v.jsx(jjI,{text:"Edit",onClick:Z=>{Z.stopPropagation(),Z.preventDefault(),I.onEdit()},...I.editing&&{color:"#f0f4"},children:v.jsx(fS,{width:"1.1em",height:"1.1em"})}),v.jsx(le,{text:"Delete",onClick:Z=>{Z.stopPropagation(),I.onDelete()},children:v.jsx(KS,{width:"1.1em",height:"1.1em"})})]})]}),v.jsx("div",{contentEditable:!1,className:"m-0",ref:t,style:{height:l?n:void 0,overflow:l?"hidden":"auto"},children:v.jsx(zN,{source:`${d}${pNI(I.item.description)} -${I.item.content.trim()} -${d}`,showCodeBorder:!1})}),((a=t.current)==null?void 0:a.scrollHeight)>iM&&v.jsx(le,{className:"bottom-1 right-1 absolute",text:l?"Expand":"Collapse",children:l?v.jsx(US,{width:"1.2em",height:"1.2em",onClick:()=>c(!1)}):v.jsx(CS,{width:"1.2em",height:"1.2em",onClick:()=>c(!0)})})]})}const PjI=({node:I,deleteNode:l,selected:c,editor:G,updateAttributes:e})=>{var b,a;const d=ne(),t=I.attrs.item,n=Nc(Z=>Z.state.contextItems);return v.jsx(CjI,{className:"code-block-with-content",as:"p",children:v.jsx(OjI,{borderColor:t.id===((b=n[0])==null?void 0:b.id)?"#d0d":c?Ah:void 0,item:t,onDelete:()=>{l()},onEdit:async()=>{var Z;if(d(Dj({item:t})),t.id===((Z=n[0])==null?void 0:Z.id)){let W=0;for(const m of G.getJSON().content){if(m.type==="slashcommand"&&m.attrs.id==="/edit"){G.chain().deleteRange({from:W,to:W+2}).focus("end").run();break}W+=1}e({item:{...t,editing:!1}})}else{for(const W of G.getJSON().content)if(W.type!=="codeBlock")break;G.chain().focus("end").insertContent([{type:"slashcommand",attrs:{id:"/edit",label:"/edit"}},{type:"text",text:" "}]).run(),e({item:{...t,editing:!0}}),await new Promise(W=>setTimeout(W,100)),G.commands.focus("end")}},editing:t.id===((a=n[0])==null?void 0:a.id)})})},_jI=br.create({name:"codeBlock",group:"block",content:"inline*",atom:!0,selectable:!0,parseHTML(){return[{tag:"code-block"}]},addAttributes(){return{item:{default:""}}},renderHTML({HTMLAttributes:I}){return["code-block",E0(I),0]},addNodeView(){return LjI(PjI)}});function qjI(I){var l;const{char:c,allowSpaces:G,allowedPrefixes:e,startOfLine:d,$position:t}=I,n=USI(c),b=new RegExp(`\\s${n}$`),a=d?"^":"",Z=G?new RegExp(`${a}${n}.*?(?=\\s${n}|$)`,"gm"):new RegExp(`${a}(?:^)?${n}[^\\s${n}]*`,"gm"),W=((l=t.nodeBefore)===null||l===void 0?void 0:l.isText)&&t.nodeBefore.text;if(!W)return null;const m=t.pos-W.length,s=Array.from(W.matchAll(Z)).pop();if(!s||s.input===void 0||s.index===void 0)return null;const h=s.input.slice(Math.max(0,s.index-1),s.index),p=new RegExp(`^[${e==null?void 0:e.join("")}\0]?$`).test(h);if(e!==null&&!p)return null;const V=m+s.index;let o=V+s[0].length;return G&&b.test(W.slice(o-1,o+1))&&(s[0]+=" ",o+=1),V=t.pos?{range:{from:V,to:o},query:s[0].slice(c.length),text:s[0]}:null}const $jI=new Yn("suggestion");function N_({pluginKey:I=$jI,editor:l,char:c="@",allowSpaces:G=!1,allowedPrefixes:e=[" "],startOfLine:d=!1,decorationTag:t="span",decorationClass:n="suggestion",command:b=()=>null,items:a=()=>[],render:Z=()=>({}),allow:W=()=>!0,findSuggestionMatch:m=qjI}){let s;const h=Z==null?void 0:Z(),p=new Rn({key:I,view(){return{update:async(V,o)=>{var F,X,H,Y,R,B,C;const k=(F=this.key)===null||F===void 0?void 0:F.getState(o),N=(X=this.key)===null||X===void 0?void 0:X.getState(V.state),J=k.active&&N.active&&k.range.from!==N.range.from,A=!k.active&&N.active,M=k.active&&!N.active,D=!A&&!M&&k.query!==N.query,O=A||J,$=D&&!J,j=M||J;if(!O&&!$&&!j)return;const S=j&&!O?k:N,tI=V.dom.querySelector(`[data-decoration-id="${S.decorationId}"]`);s={editor:l,range:S.range,query:S.query,text:S.text,items:[],command:z=>{b({editor:l,range:S.range,props:z})},decorationNode:tI,clientRect:tI?()=>{var z;const{decorationId:g}=(z=this.key)===null||z===void 0?void 0:z.getState(l.state),GI=V.dom.querySelector(`[data-decoration-id="${g}"]`);return(GI==null?void 0:GI.getBoundingClientRect())||null}:null},O&&((H=h==null?void 0:h.onBeforeStart)===null||H===void 0||H.call(h,s)),$&&((Y=h==null?void 0:h.onBeforeUpdate)===null||Y===void 0||Y.call(h,s)),($||O)&&(s.items=await a({editor:l,query:S.query})),j&&((R=h==null?void 0:h.onExit)===null||R===void 0||R.call(h,s)),$&&((B=h==null?void 0:h.onUpdate)===null||B===void 0||B.call(h,s)),O&&((C=h==null?void 0:h.onStart)===null||C===void 0||C.call(h,s))},destroy:()=>{var V;s&&((V=h==null?void 0:h.onExit)===null||V===void 0||V.call(h,s))}}},state:{init(){return{active:!1,range:{from:0,to:0},query:null,text:null,composing:!1}},apply(V,o,F,X){const{isEditable:H}=l,{composing:Y}=l.view,{selection:R}=V,{empty:B,from:C}=R,k={...o};if(k.composing=Y,H&&(B||l.view.composing)){(Co.range.to)&&!Y&&!o.composing&&(k.active=!1);const N=m({char:c,allowSpaces:G,allowedPrefixes:e,startOfLine:d,$position:R.$from}),J=`id_${Math.floor(Math.random()*4294967295)}`;N&&W({editor:l,state:X,range:N.range})?(k.active=!0,k.decorationId=o.decorationId?o.decorationId:J,k.range=N.range,k.query=N.query,k.text=N.text):k.active=!1}else k.active=!1;return k.active||(k.decorationId=null,k.range={from:0,to:0},k.query=null,k.text=null),k}},props:{handleKeyDown(V,o){var F;const{active:X,range:H}=p.getState(V.state);return X&&((F=h==null?void 0:h.onKeyDown)===null||F===void 0?void 0:F.call(h,{view:V,event:o,range:H}))||!1},decorations(V){const{active:o,range:F,decorationId:X}=p.getState(V);return o?BG.create(V.doc,[Td.inline(F.from,F.to,{nodeName:t,class:n,"data-decoration-id":X})]):null}}});return p}const IDI=new Yn("slashcommand"),lDI=br.create({name:"slashcommand",addOptions(){return{HTMLAttributes:{},renderText({options:I,node:l}){return`${I.suggestion.char}${l.attrs.label??l.attrs.id}`},suggestion:{char:"/",pluginKey:IDI,startOfLine:!0,command:({editor:I,range:l,props:c})=>{var d,t;const G=I.view.state.selection.$to.nodeAfter;((d=G==null?void 0:G.text)==null?void 0:d.startsWith(" "))&&(l.to+=1),I.chain().focus().insertContentAt(l,[{type:this.name,attrs:c},{type:"text",text:" "}]).run(),(t=window.getSelection())==null||t.collapseToEnd()},allow:({state:I,range:l})=>{const c=I.doc.resolve(l.from),G=I.schema.nodes[this.name];return!!c.parent.type.contentMatch.matchType(G)}}}},group:"inline",inline:!0,selectable:!1,atom:!0,addAttributes(){return{id:{default:null,parseHTML:I=>I.getAttribute("data-id"),renderHTML:I=>I.id?{"data-id":I.id}:{}},label:{default:null,parseHTML:I=>I.getAttribute("data-label"),renderHTML:I=>I.label?{"data-label":I.label}:{}}}},parseHTML(){return[{tag:`span[data-type="${this.name}"]`}]},renderHTML({node:I,HTMLAttributes:l}){return["span",E0({"data-type":this.name},this.options.HTMLAttributes,l),this.options.renderText({options:this.options,node:I})]},renderText({node:I}){return this.options.renderText({options:this.options,node:I})},addKeyboardShortcuts(){return{Backspace:()=>this.editor.commands.command(({tr:I,state:l})=>{let c=!1;const{selection:G}=l,{empty:e,anchor:d}=G;return e?(l.doc.nodesBetween(d-1,d,(t,n)=>{if(t.type.name===this.name)return c=!0,I.insertText(this.options.suggestion.char||"",n,n+t.nodeSize),!1}),c):!1})}},addProseMirrorPlugins(){return[N_({editor:this.editor,...this.options.suggestion})]}});function cDI({title:I,titleId:l,...c},G){return E.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true","data-slot":"icon",ref:G,"aria-labelledby":l},c),I?E.createElement("title",{id:l},I):null,E.createElement("path",{fillRule:"evenodd",d:"M1.5 6a2.25 2.25 0 0 1 2.25-2.25h16.5A2.25 2.25 0 0 1 22.5 6v12a2.25 2.25 0 0 1-2.25 2.25H3.75A2.25 2.25 0 0 1 1.5 18V6ZM3 16.06V18c0 .414.336.75.75.75h16.5A.75.75 0 0 0 21 18v-1.94l-2.69-2.689a1.5 1.5 0 0 0-2.12 0l-.88.879.97.97a.75.75 0 1 1-1.06 1.06l-5.16-5.159a1.5 1.5 0 0 0-2.12 0L3 16.061Zm10.125-7.81a1.125 1.125 0 1 1 2.25 0 1.125 1.125 0 0 1-2.25 0Z",clipRule:"evenodd"}))}const GDI=E.forwardRef(cDI),eDI=GDI,dDI=LI.div` +`,rYe=Ve(Vr)` + ${e=>e.color&&`background-color: ${e.color};`} +`,bX=300,iYe=/`{3,}/gm;function aYe(e){var u,c;const t=E.useContext(Zn),[n,r]=ct.useState(!0),[i,a]=ct.useState(!1),o=ct.useMemo(()=>{const d=e.item.content.match(iYe);return d?d.sort().at(-1)+"`":"```"},[e.item.content]),l=ct.useRef(null),s=`${Math.min(bX,((u=l.current)==null?void 0:u.scrollHeight)??e.item.content.split(` +`).length*18+36)}px`;return W.jsxs(tYe,{spellCheck:!1,onMouseEnter:()=>a(!0),onMouseLeave:()=>a(!1),borderColor:e.borderColor,children:[W.jsxs(nYe,{className:"flex justify-between cursor-pointer",onClick:()=>{if(e.item.id.providerTitle==="file")t.post("showFile",{filepath:e.item.description});else if(e.item.id.providerTitle==="code"){const d=e.item.name.split("(")[1].split(")")[0].split("-");t.ide.showLines(e.item.description,parseInt(d[0])-1,parseInt(d[1])-1)}else t.post("showVirtualFile",{name:e.item.name,content:e.item.content})},children:[W.jsxs("div",{className:"flex items-center",children:[W.jsx(IB,{height:"20px",width:"20px",filename:e.item.name}),e.item.name]}),W.jsxs("div",{className:"flex items-center",children:[e.onEdit&&W.jsx(rYe,{text:"Edit",onClick:d=>{d.stopPropagation(),d.preventDefault(),e.onEdit()},...e.editing&&{color:"#f0f4"},children:W.jsx(YV,{width:"1.1em",height:"1.1em"})}),W.jsx(Vr,{text:"Delete",onClick:d=>{d.stopPropagation(),e.onDelete()},children:W.jsx(IV,{width:"1.1em",height:"1.1em"})})]})]}),W.jsx("div",{contentEditable:!1,className:"m-0",ref:l,style:{height:n?s:void 0,overflow:n?"hidden":"auto"},children:W.jsx(yR,{source:`${o}${G3e(e.item.description)} +${e.item.content.trimEnd()} +${o}`,showCodeBorder:!1})}),((c=l.current)==null?void 0:c.scrollHeight)>bX&&W.jsx(Vr,{className:"bottom-1 right-1 absolute",text:n?"Expand":"Collapse",children:n?W.jsx(TV,{width:"1.2em",height:"1.2em",onClick:()=>r(!1)}):W.jsx(VV,{width:"1.2em",height:"1.2em",onClick:()=>r(!0)})})]})}const oYe=({node:e,deleteNode:t,selected:n,editor:r,updateAttributes:i})=>{var s,u;const a=Zr(),o=e.attrs.item,l=en(c=>c.state.contextItems);return W.jsx(zVe,{className:"code-block-with-content",as:"p",children:W.jsx(aYe,{borderColor:o.id===((s=l[0])==null?void 0:s.id)?"#d0d":n?ed:void 0,item:o,onDelete:()=>{t()},onEdit:async()=>{var c;if(a(yU({item:o})),o.id===((c=l[0])==null?void 0:c.id)){let d=0;for(const g of r.getJSON().content){if(g.type==="slashcommand"&&g.attrs.id==="/edit"){r.chain().deleteRange({from:d,to:d+2}).focus("end").run();break}d+=1}i({item:{...o,editing:!1}})}else{for(const d of r.getJSON().content)if(d.type!=="codeBlock")break;r.chain().focus("end").insertContent([{type:"slashcommand",attrs:{id:"/edit",label:"/edit"}},{type:"text",text:" "}]).run(),i({item:{...o,editing:!0}}),await new Promise(d=>setTimeout(d,100)),r.commands.focus("end")}},editing:o.id===((u=l[0])==null?void 0:u.id)})})},lYe=Bd.create({name:"codeBlock",group:"block",content:"inline*",atom:!0,selectable:!0,parseHTML(){return[{tag:"code-block"}]},addAttributes(){return{item:{default:""}}},renderHTML({HTMLAttributes:e}){return["code-block",P1(e),0]},addNodeView(){return $Ve(oYe)}});function sYe(e){var t;const{char:n,allowSpaces:r,allowedPrefixes:i,startOfLine:a,$position:o}=e,l=JMe(n),s=new RegExp(`\\s${l}$`),u=a?"^":"",c=r?new RegExp(`${u}${l}.*?(?=\\s${l}|$)`,"gm"):new RegExp(`${u}(?:^)?${l}[^\\s${l}]*`,"gm"),d=((t=o.nodeBefore)===null||t===void 0?void 0:t.isText)&&o.nodeBefore.text;if(!d)return null;const g=o.pos-d.length,h=Array.from(d.matchAll(c)).pop();if(!h||h.input===void 0||h.index===void 0)return null;const m=h.input.slice(Math.max(0,h.index-1),h.index),A=new RegExp(`^[${i==null?void 0:i.join("")}\0]?$`).test(m);if(i!==null&&!A)return null;const B=g+h.index;let C=B+h[0].length;return r&&s.test(d.slice(C-1,C+1))&&(h[0]+=" ",C+=1),B=o.pos?{range:{from:B,to:C},query:h[0].slice(n.length),text:h[0]}:null}const uYe=new Sl("suggestion");function c_({pluginKey:e=uYe,editor:t,char:n="@",allowSpaces:r=!1,allowedPrefixes:i=[" "],startOfLine:a=!1,decorationTag:o="span",decorationClass:l="suggestion",command:s=()=>null,items:u=()=>[],render:c=()=>({}),allow:d=()=>!0,findSuggestionMatch:g=sYe}){let h;const m=c==null?void 0:c(),A=new Rl({key:e,view(){return{update:async(B,C)=>{var b,Q,F,K,y,G,X;const H=(b=this.key)===null||b===void 0?void 0:b.getState(C),v=(Q=this.key)===null||Q===void 0?void 0:Q.getState(B.state),k=H.active&&v.active&&H.range.from!==v.range.from,D=!H.active&&v.active,V=H.active&&!v.active,z=!D&&!V&&H.query!==v.query,j=D||k,te=z&&!k,J=V||k;if(!j&&!te&&!J)return;const I=J&&!j?H:v,se=B.dom.querySelector(`[data-decoration-id="${I.decorationId}"]`);h={editor:t,range:I.range,query:I.query,text:I.text,items:[],command:Z=>s({editor:t,range:I.range,props:Z}),decorationNode:se,clientRect:se?()=>{var Z;const{decorationId:S}=(Z=this.key)===null||Z===void 0?void 0:Z.getState(t.state),q=B.dom.querySelector(`[data-decoration-id="${S}"]`);return(q==null?void 0:q.getBoundingClientRect())||null}:null},j&&((F=m==null?void 0:m.onBeforeStart)===null||F===void 0||F.call(m,h)),te&&((K=m==null?void 0:m.onBeforeUpdate)===null||K===void 0||K.call(m,h)),(te||j)&&(h.items=await u({editor:t,query:I.query})),J&&((y=m==null?void 0:m.onExit)===null||y===void 0||y.call(m,h)),te&&((G=m==null?void 0:m.onUpdate)===null||G===void 0||G.call(m,h)),j&&((X=m==null?void 0:m.onStart)===null||X===void 0||X.call(m,h))},destroy:()=>{var B;h&&((B=m==null?void 0:m.onExit)===null||B===void 0||B.call(m,h))}}},state:{init(){return{active:!1,range:{from:0,to:0},query:null,text:null,composing:!1}},apply(B,C,b,Q){const{isEditable:F}=t,{composing:K}=t.view,{selection:y}=B,{empty:G,from:X}=y,H={...C};if(H.composing=K,F&&(G||t.view.composing)){(XC.range.to)&&!K&&!C.composing&&(H.active=!1);const v=g({char:n,allowSpaces:r,allowedPrefixes:i,startOfLine:a,$position:y.$from}),k=`id_${Math.floor(Math.random()*4294967295)}`;v&&d({editor:t,state:Q,range:v.range})?(H.active=!0,H.decorationId=C.decorationId?C.decorationId:k,H.range=v.range,H.query=v.query,H.text=v.text):H.active=!1}else H.active=!1;return H.active||(H.decorationId=null,H.range={from:0,to:0},H.query=null,H.text=null),H}},props:{handleKeyDown(B,C){var b;const{active:Q,range:F}=A.getState(B.state);return Q&&((b=m==null?void 0:m.onKeyDown)===null||b===void 0?void 0:b.call(m,{view:B,event:C,range:F}))||!1},decorations(B){const{active:C,range:b,decorationId:Q}=A.getState(B);return C?Mr.create(B.doc,[ja.inline(b.from,b.to,{nodeName:o,class:l,"data-decoration-id":Q})]):null}}});return A}const cYe=new Sl("slashcommand"),dYe=Bd.create({name:"slashcommand",addOptions(){return{HTMLAttributes:{},renderText({options:e,node:t}){return`${e.suggestion.char}${t.attrs.label??t.attrs.id}`},suggestion:{char:"/",pluginKey:cYe,startOfLine:!0,command:({editor:e,range:t,props:n})=>{var a,o;const r=e.view.state.selection.$to.nodeAfter;((a=r==null?void 0:r.text)==null?void 0:a.startsWith(" "))&&(t.to+=1),e.chain().focus().insertContentAt(t,[{type:this.name,attrs:n},{type:"text",text:" "}]).run(),(o=window.getSelection())==null||o.collapseToEnd()},allow:({state:e,range:t})=>{const n=e.doc.resolve(t.from),r=e.schema.nodes[this.name];return!!n.parent.type.contentMatch.matchType(r)}}}},group:"inline",inline:!0,selectable:!1,atom:!0,addAttributes(){return{id:{default:null,parseHTML:e=>e.getAttribute("data-id"),renderHTML:e=>e.id?{"data-id":e.id}:{}},label:{default:null,parseHTML:e=>e.getAttribute("data-label"),renderHTML:e=>e.label?{"data-label":e.label}:{}}}},parseHTML(){return[{tag:`span[data-type="${this.name}"]`}]},renderHTML({node:e,HTMLAttributes:t}){return["span",P1({"data-type":this.name},this.options.HTMLAttributes,t),this.options.renderText({options:this.options,node:e})]},renderText({node:e}){return this.options.renderText({options:this.options,node:e})},addKeyboardShortcuts(){return{Backspace:()=>this.editor.commands.command(({tr:e,state:t})=>{let n=!1;const{selection:r}=t,{empty:i,anchor:a}=r;return i?(t.doc.nodesBetween(a-1,a,(o,l)=>{if(o.type.name===this.name)return n=!0,e.insertText(this.options.suggestion.char||"",l,l+o.nodeSize),!1}),n):!1})}},addProseMirrorPlugins(){return[c_({editor:this.editor,...this.options.suggestion})]}});function pYe({title:e,titleId:t,...n},r){return E.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?E.createElement("title",{id:t},e):null,E.createElement("path",{fillRule:"evenodd",d:"M2.25 12c0-5.385 4.365-9.75 9.75-9.75s9.75 4.365 9.75 9.75-4.365 9.75-9.75 9.75S2.25 17.385 2.25 12Zm13.36-1.814a.75.75 0 1 0-1.22-.872l-3.236 4.53L9.53 12.22a.75.75 0 0 0-1.06 1.06l2.25 2.25a.75.75 0 0 0 1.14-.094l3.75-5.25Z",clipRule:"evenodd"}))}const gYe=E.forwardRef(pYe),hYe=gYe;function fYe({title:e,titleId:t,...n},r){return E.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true","data-slot":"icon",ref:r,"aria-labelledby":t},n),e?E.createElement("title",{id:t},e):null,E.createElement("path",{fillRule:"evenodd",d:"M1.5 6a2.25 2.25 0 0 1 2.25-2.25h16.5A2.25 2.25 0 0 1 22.5 6v12a2.25 2.25 0 0 1-2.25 2.25H3.75A2.25 2.25 0 0 1 1.5 18V6ZM3 16.06V18c0 .414.336.75.75.75h16.5A.75.75 0 0 0 21 18v-1.94l-2.69-2.689a1.5 1.5 0 0 0-2.12 0l-.88.879.97.97a.75.75 0 1 1-1.06 1.06l-5.16-5.159a1.5 1.5 0 0 0-2.12 0L3 16.061Zm10.125-7.81a1.125 1.125 0 1 1 2.25 0 1.125 1.125 0 0 1-2.25 0Z",clipRule:"evenodd"}))}const mYe=E.forwardRef(fYe),AYe=mYe,CYe=Ve.div` position: absolute; display: flex; gap: 4px; right: 4px; bottom: 4px; width: calc(100% - 10px); - background-color: ${Mc}; + background-color: ${yn}; - ${I=>I.hidden?"display: none;":""} + ${e=>e.hidden?"display: none;":""} align-items: center; z-index: 50; - font-size: 10px; + font-size: ${nr()-4}px; cursor: text; & > * { flex: 0 0 auto; } -`,tDI=LI.div` +`,BYe=Ve.div` padding: 2px 4px; display: flex; align-items: center; - background-color: ${I=>I.offFocus?void 0:ul+"33"}; - border-radius: ${Pl}; - color: ${ec}; + background-color: ${e=>e.offFocus?void 0:rt+"33"}; + border-radius: ${jt}; + color: ${rn}; &:hover { - background-color: ${Ah}; - color: ${_mI}; + background-color: ${ed}; + color: ${A1e}; } cursor: pointer; -`;function nDI(I){const l=E.useRef(null),[c,G]=E.useState(!1),e=Nc(Ir);return v.jsxs(dDI,{hidden:I.hidden,onClick:I.onClick,id:"input-toolbar",children:[v.jsxs("span",{className:"cursor-pointer mr-auto flex items-center",children:[v.jsx("span",{style:{color:ul},onClick:d=>{I.onAddContextItem()},className:"hover:underline cursor-pointer",children:"+ Add Context"}),e&&qV(e.provider,e.model)&&v.jsxs("span",{className:"ml-1.5 mt-0.5",onMouseLeave:()=>G(!1),onMouseEnter:()=>G(!0),children:[v.jsx("input",{type:"file",ref:l,style:{display:"none"},accept:".jpg,.jpeg,.png,.gif,.svg,.webp",onChange:d=>{for(const t of d.target.files)I.onImageFileSelected(t)}}),c?v.jsx(eDI,{width:"1.4em",height:"1.4em",color:ul,onClick:d=>{var t;(t=l.current)==null||t.click()}}):v.jsx(DWI,{width:"1.4em",height:"1.4em",color:ul,onClick:d=>{var t;(t=l.current)==null||t.click()}})]})]}),v.jsxs("span",{style:{color:I.usingCodebase?Ah:ul,backgroundColor:I.usingCodebase?ul+"33":void 0,borderRadius:Pl,padding:"2px 4px"},onClick:d=>{I.onEnter({useCodebase:!0})},className:"hover:underline cursor-pointer float-right",children:[zV()," ⏎ Use Codebase"]}),v.jsx(tDI,{offFocus:I.usingCodebase,onClick:d=>{I.onEnter({useCodebase:gh(d)})},children:"⏎ Enter"})]})}const bDI=new Yn("mention"),aDI=br.create({name:"mention",addOptions(){return{HTMLAttributes:{},renderHTML({options:I,node:l}){return["span",this.HTMLAttributes,`${I.suggestion.char}${l.attrs.label??l.attrs.id}`]},suggestion:{char:"@",pluginKey:bDI,command:({editor:I,range:l,props:c})=>{var d,t;const G=I.view.state.selection.$to.nodeAfter;((d=G==null?void 0:G.text)==null?void 0:d.startsWith(" "))&&(l.to+=1),I.chain().focus().insertContentAt(l,[{type:this.name,attrs:c},{type:"text",text:" "}]).run(),(t=window.getSelection())==null||t.collapseToEnd()},allow:({state:I,range:l})=>{const c=I.doc.resolve(l.from),G=I.schema.nodes[this.name];return!!c.parent.type.contentMatch.matchType(G)}}}},group:"inline",inline:!0,selectable:!1,atom:!0,addAttributes(){return{id:{default:null,parseHTML:I=>I.getAttribute("data-id"),renderHTML:I=>I.id?{"data-id":I.id}:{}},label:{default:null,parseHTML:I=>I.getAttribute("data-label"),renderHTML:I=>I.label?{"data-label":I.label}:{}},renderInlineAs:{default:null,parseHTML:I=>I.getAttribute("data-renderInlineAs"),renderHTML:I=>I.renderInlineAs?{"data-renderInlineAs":I.renderInlineAs}:{}},query:{default:null,parseHTML:I=>I.getAttribute("data-query"),renderHTML:I=>I.query?{"data-query":I.query}:{}},itemType:{default:null,parseHTML:I=>I.getAttribute("data-itemType"),renderHTML:I=>I.itemType?{"data-itemType":I.itemType}:{}}}},parseHTML(){return[{tag:`span[data-type="${this.name}"]`}]},renderHTML({node:I,HTMLAttributes:l}){const c=this.options.renderHTML({options:this.options,node:I});return typeof c=="string"?["span",E0({"data-type":this.name},this.options.HTMLAttributes,l),c]:c},addKeyboardShortcuts(){return{Backspace:()=>this.editor.commands.command(({tr:I,state:l})=>{let c=!1;const{selection:G}=l,{empty:e,anchor:d}=G;return e?(l.doc.nodesBetween(d-1,d,(t,n)=>{if(t.type.name===this.name)return c=!0,I.insertText(this.options.suggestion.char||"",n,n+t.nodeSize),!1}),c):!1})}},addProseMirrorPlugins(){return[N_({editor:this.editor,...this.options.suggestion})]}});LI.div` - display: grid; - grid-template-columns: 1fr 1fr; - grid-gap: 8px; - align-items: center; -`;function ZDI(){const[I,l]=Gl.useState(""),[c,G]=Gl.useState(""),[e,d]=Gl.useState(!1),t=ne(),{addItem:n}=E.useContext(l3),b=Gl.useRef(null),a=VA();return E.useLayoutEffect(()=>{setTimeout(()=>{b.current&&b.current.focus()},100)},[b]),v.jsxs("div",{className:"p-4",children:[v.jsx("h3",{children:"Add Docs"}),v.jsx(Tu,{type:"url",placeholder:"URL",value:I,ref:b,onChange:Z=>{l(Z.target.value),d(Z.target.validity.valid)}}),v.jsx(Tu,{type:"text",placeholder:"Title",value:c,onChange:Z=>G(Z.target.value)}),v.jsx(xt,{disabled:!I||!e,className:"ml-auto",onClick:()=>{Yc("context/addDocs",{url:I,title:c}),G(""),l(""),t(hn(!1)),n("docs",{id:I,title:c,description:new URL(I).hostname}),a.capture("add_docs",{url:I})},children:"Done"})]})}const WDI={file:k9,code:rWI,terminal:J9,diff:ug,search:KWI,url:x9,open:YWI,codebase:z9,problems:FWI,folder:k9,docs:xS,issue:B9,"/edit":fS,"/clear":hg,"/test":LZI,"/config":MS,"/comment":xWI,"/share":AZI,"/cmd":J9,"/codebase":z9,"/so":x9,"/issue":B9};function rDI(I){if(I.item.type==="action")return v.jsx(ug,{className:I.className,height:"1.2em",width:"1.2em"});const l=I.item.type==="contextProvider"||I.item.type==="slashCommand"?I.item.id:I.item.type,c=WDI[l],G=`${I.className} flex-shrink-0`;return c?v.jsx(c,{className:G,height:"1.2em",width:"1.2em"}):I.item.type==="contextProvider"?v.jsx(zZI,{className:G,height:"1.2em",width:"1.2em"}):v.jsx($ZI,{className:G,height:"1.2em",width:"1.2em"})}const mDI=LI.div` - border-radius: ${Pl}; +`;function wYe(e){const t=E.useRef(null),[n,r]=E.useState(!1),i=en(cd),a=en(rO);return W.jsxs(CYe,{hidden:e.hidden,onClick:e.onClick,id:"input-toolbar",children:[W.jsxs("span",{className:"cursor-pointer mr-auto flex items-center",children:[W.jsx("span",{style:{color:rt},onClick:o=>{e.onAddContextItem()},className:"hover:underline cursor-pointer",children:"+ Add Context"}),i&&eF(i.provider,i.model,i.title)&&W.jsxs("span",{className:"ml-1.5 mt-0.5",onMouseLeave:()=>r(!1),onMouseEnter:()=>r(!0),children:[W.jsx("input",{type:"file",ref:t,style:{display:"none"},accept:".jpg,.jpeg,.png,.gif,.svg,.webp",onChange:o=>{for(const l of o.target.files)e.onImageFileSelected(l)}}),n?W.jsx(AYe,{width:"1.4em",height:"1.4em",color:rt,onClick:o=>{var l;(l=t.current)==null||l.click()}}):W.jsx(Bde,{width:"1.4em",height:"1.4em",color:rt,onClick:o=>{var l;(l=t.current)==null||l.click()}})]})]}),e.showNoContext?W.jsxs("span",{style:{color:e.usingCodebase?ed:rt,backgroundColor:e.usingCodebase?rt+"33":void 0,borderRadius:jt,padding:"2px 4px"},children:[d1e()," ⏎"," ",a?"No context":"Use active file"]}):W.jsxs("span",{style:{color:e.usingCodebase?ed:rt,backgroundColor:e.usingCodebase?rt+"33":void 0,borderRadius:jt,padding:"2px 4px"},onClick:o=>{e.onEnter({useCodebase:!0,noContext:!a})},className:"hover:underline cursor-pointer float-right",children:[aB()," ⏎ Use codebase"]}),W.jsx(BYe,{offFocus:e.usingCodebase,onClick:o=>{e.onEnter({useCodebase:_f(o),noContext:a?o.altKey:!o.altKey})},children:"⏎ Enter"})]})}const bYe=new Sl("mention"),vYe=Bd.create({name:"mention",addOptions(){return{HTMLAttributes:{},renderHTML({options:e,node:t}){return["span",this.HTMLAttributes,`${e.suggestion.char}${t.attrs.label??t.attrs.id}`]},suggestion:{char:"@",pluginKey:bYe,command:({editor:e,range:t,props:n})=>{var a,o;const r=e.view.state.selection.$to.nodeAfter;((a=r==null?void 0:r.text)==null?void 0:a.startsWith(" "))&&(t.to+=1),e.chain().focus().insertContentAt(t,[{type:this.name,attrs:n},{type:"text",text:" "}]).run(),(o=window.getSelection())==null||o.collapseToEnd()},allow:({state:e,range:t})=>{const n=e.doc.resolve(t.from),r=e.schema.nodes[this.name];return!!n.parent.type.contentMatch.matchType(r)}}}},group:"inline",inline:!0,selectable:!1,atom:!0,addAttributes(){return{id:{default:null,parseHTML:e=>e.getAttribute("data-id"),renderHTML:e=>e.id?{"data-id":e.id}:{}},label:{default:null,parseHTML:e=>e.getAttribute("data-label"),renderHTML:e=>e.label?{"data-label":e.label}:{}},renderInlineAs:{default:null,parseHTML:e=>e.getAttribute("data-renderInlineAs"),renderHTML:e=>e.renderInlineAs?{"data-renderInlineAs":e.renderInlineAs}:{}},query:{default:null,parseHTML:e=>e.getAttribute("data-query"),renderHTML:e=>e.query?{"data-query":e.query}:{}},itemType:{default:null,parseHTML:e=>e.getAttribute("data-itemType"),renderHTML:e=>e.itemType?{"data-itemType":e.itemType}:{}}}},parseHTML(){return[{tag:`span[data-type="${this.name}"]`}]},renderHTML({node:e,HTMLAttributes:t}){const n=this.options.renderHTML({options:this.options,node:e});return typeof n=="string"?["span",P1({"data-type":this.name},this.options.HTMLAttributes,t),n]:n},addKeyboardShortcuts(){return{Backspace:()=>this.editor.commands.command(({tr:e,state:t})=>{let n=!1;const{selection:r}=t,{empty:i,anchor:a}=r;return i?(t.doc.nodesBetween(a-1,a,(o,l)=>{if(o.type.name===this.name)return n=!0,e.insertText(this.options.suggestion.char||"",l,l+o.nodeSize),!1}),n):!1})}},addProseMirrorPlugins(){return[c_({editor:this.editor,...this.options.suggestion})]}});const vX=3;function KYe(){const e=qf(),t=Zr(),n=E.useRef(null),[r,i]=E.useState(""),[a,o]=E.useState(""),[l,s]=E.useState(!1),[u,c]=E.useState(""),d=E.useContext(Zn),{addItem:g}=E.useContext(E9),h=r&&a&&l;E.useLayoutEffect(()=>{setTimeout(()=>{n.current&&n.current.focus()},100)},[n]);function m(A){A.preventDefault();const B={startUrl:r,rootUrl:r,title:a,maxDepth:typeof u=="string"?vX:u};d.post("context/addDocs",B),o(""),i(""),c(""),t(Ql(!1)),g("docs",{id:r,title:a,description:new URL(r).hostname}),e.capture("add_docs",{url:r})}return W.jsxs("div",{className:"p-4",children:[W.jsxs("div",{className:"mb-8",children:[W.jsx("h2",{children:"Add Docs"}),W.jsx("p",{children:"Continue pre-indexes many common documentation sites, but if there's one you don't see in the dropdown, enter the URL here."}),W.jsx("p",{children:"Continue's indexing engine will crawl the site and generate embeddings so that you can ask questions."})]}),W.jsxs("form",{onSubmit:m,className:"flex flex-col space-y-4",children:[W.jsxs("label",{children:["URL",W.jsx(Cl,{type:"url",placeholder:"URL",value:r,ref:n,onChange:A=>{i(A.target.value),s(A.target.validity.valid)}})]}),W.jsxs("label",{children:["Title",W.jsx(Cl,{type:"text",placeholder:"Title",value:a,onChange:A=>o(A.target.value)})]}),W.jsxs("label",{children:["Max Depth [Optional]",W.jsx(Cl,{type:"text",inputMode:"numeric",placeholder:`Max depth (Default: ${vX})`,title:"The maximum search tree depth - where your input url is the root node",value:u,onChange:A=>{const B=A.target.value;B==""?c(""):!isNaN(+B)&&Number(B)>0&&c(Number(B))}})]}),W.jsx("div",{className:"flex justify-end",children:W.jsx(Ea,{disabled:!h,type:"submit",children:"Submit"})})]})]})}const d_={file:Hx,code:W0e,terminal:oy,diff:bE,search:dde,url:Xx,open:Y0e,codebase:Lx,problems:M0e,folder:Hx,docs:LV,issue:Zx,trash:$C,"/edit":YV,"/clear":$C,"/test":i0e,"/config":t3,"/comment":ade,"/share":Oce,"/cmd":oy,"/codebase":Lx,"/so":Xx,"/issue":Zx};function QYe(e){if(e.item.type==="action")return W.jsx(bE,{className:e.className,height:"1.2em",width:"1.2em"});const t=e.item.type==="contextProvider"||e.item.type==="slashCommand"?e.item.id:e.item.type,n=`${e.className} flex-shrink-0`;let r;const i=d_[t];return i?r=W.jsx(i,{className:n,height:"1.2em",width:"1.2em"}):r=e.item.type==="contextProvider"?W.jsx($ce,{className:n,height:"1.2em",width:"1.2em"}):W.jsx(N0e,{className:n,height:"1.2em",width:"1.2em"}),r}const WYe=Ve.div` + border-radius: ${jt}; box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.05), 0px 10px 20px rgba(0, 0, 0, 0.1); font-size: 0.9rem; - overflow: hidden; + overflow-x: hidden; + overflow-y: auto; + max-height: 330px; padding: 0.2rem; position: relative; - background-color: ${DmI}; + background-color: ${f1e}; /* backdrop-filter: blur(12px); */ -`,UH=LI.div` +`,LQ=Ve.div` background: transparent; border: 1px solid transparent; border-radius: 0.4rem; @@ -1721,22 +1412,22 @@ ${d}`,showCodeBorder:!1})}),((a=t.current)==null?void 0:a.scrollHeight)>iM&&v.js padding: 0.2rem 0.4rem; text-align: left; width: 100%; - color: ${ec}; + color: ${rn}; cursor: pointer; &.is-selected { - background-color: ${UV}; - color: ${qF}; + background-color: ${g1}; + color: ${$f}; } -`,sDI=LI.textarea` +`,yYe=Ve.textarea` background-color: #fff1; - border: 1px solid ${ul}; - border-radius: ${Pl}; + border: 1px solid ${rt}; + border-radius: ${jt}; padding: 0.2rem 0.4rem; width: 240px; - color: ${ec}; + color: ${rn}; &:focus { outline: none; @@ -1744,70 +1435,70 @@ ${d}`,showCodeBorder:!1})}),((a=t.current)==null?void 0:a.scrollHeight)>iM&&v.js font-family: inherit; resize: none; -`,uDI=E.forwardRef((I,l)=>{const c=ne(),[G,e]=E.useState(0),[d,t]=E.useState(void 0),[n,b]=E.useState(void 0),[a,Z]=E.useState([]);E.useEffect(()=>{const o=[...I.items];d==="Type to search docs"&&o.push({title:"Add Docs",type:"action",action:()=>{c(hn(!0)),c(RW(v.jsx(ZDI,{})));const{tr:F}=I.editor.view.state,H=F.doc.textBetween(0,F.selection.from).lastIndexOf("@");I.editor.view.dispatch(F.delete(H,F.selection.from).scrollIntoView())},description:"Add a new documentation source"}),Z(o)},[d,I.items,I.editor]);const W=E.useRef(null);E.useEffect(()=>{W.current&&W.current.focus()},[n]);const m=o=>{var X,H;const F=a[o];if(F.type==="action"&&F.action){F.action();return}if(F.type==="contextProvider"&&((X=F.contextProvider)==null?void 0:X.type)==="submenu"){t(F.description),I.enterSubmenu(I.editor,F.id);return}if(((H=F.contextProvider)==null?void 0:H.type)==="query"){t(F.description),b(F);return}F&&I.command({...F,itemType:F.type})},s=()=>{e((G+a.length-1)%a.length)},h=()=>{e((G+1)%a.length)},p=()=>{m(G)};E.useEffect(()=>e(0),[a]),E.useImperativeHandle(l,()=>({onKeyDown:({event:o})=>o.key==="ArrowUp"?(s(),!0):o.key==="ArrowDown"?(h(),!0):o.key==="Enter"||o.key==="Tab"?(p(),o.stopPropagation(),o.preventDefault(),!0):o.key==="Escape"?(o.preventDefault(),o.stopPropagation(),!0):o.key===" "&&a.length===1?(p(),!0):!1}));const V=o=>["file","code"].includes(o.type);return v.jsx(mDI,{children:n?v.jsx(sDI,{rows:1,ref:W,placeholder:n.description,onKeyDown:o=>{o.key==="Enter"?o.shiftKey?W.current.innerText+=` -`:I.command({...n,itemType:n.type,query:W.current.value,label:`${n.label}: ${W.current.value}`}):o.key==="Escape"&&(b(void 0),t(void 0))}}):v.jsxs(v.Fragment,{children:[d&&v.jsx(UH,{className:"mb-2",children:d}),a.length?a.map((o,F)=>{var X;return v.jsx(UH,{as:"button",className:`item ${F===G?"is-selected":""}`,onClick:()=>m(F),onMouseEnter:()=>e(F),children:v.jsxs("span",{className:"flex justify-between w-full items-center",children:[v.jsxs("div",{className:"flex items-center justify-center",children:[V(o)&&v.jsx(gi,{height:"20px",width:"20px",filename:o.description}),!V(o)&&v.jsx(v.Fragment,{children:v.jsx(rDI,{item:o,className:"mr-2"})}),o.title," "]}),v.jsxs("span",{style:{color:qF,float:"right",textAlign:"right",opacity:F!==G?0:1,minWidth:"30px"},className:"whitespace-nowrap overflow-hidden overflow-ellipsis ml-2 flex items-center",children:[o.description,o.type==="contextProvider"&&((X=o.contextProvider)==null?void 0:X.type)==="submenu"&&v.jsx(EZI,{className:"ml-2 flex-shrink-0",width:"1.2em",height:"1.2em"})]})]})},F)}):v.jsx(UH,{className:"item",children:"No results"})]})})});function R_(I,l=e=>{},c=()=>{},G=()=>{}){return{items:I,allowSpaces:!0,render:()=>{let e,d;return{onStart:t=>{if(e=new F_(uDI,{props:{...t,enterSubmenu:l},editor:t.editor}),!t.clientRect){console.log("no client rect");return}d=lp("body",{getReferenceClientRect:t.clientRect,appendTo:()=>document.body,content:e.element,showOnCreate:!0,interactive:!0,trigger:"manual",placement:"bottom-start",maxWidth:`${window.innerWidth-24}px`}),G()},onUpdate(t){e.updateProps({...t,enterSubmenu:l}),t.clientRect&&d[0].setProps({getReferenceClientRect:t.clientRect})},onKeyDown(t){var n;return t.event.key==="Escape"?(d[0].hide(),!0):(n=e.ref)==null?void 0:n.onKeyDown(t)},onExit(){var t;(t=d==null?void 0:d[0])==null||t.destroy(),e==null||e.destroy(),c()}}}}}function hDI(I,l,c,G,e,d){return R_(async({query:n})=>{var a;if(d.current)return l.current(d.current,n).map(W=>({...W,label:W.title,type:d.current,query:W.id}));const b=((a=I.current)==null?void 0:a.filter(Z=>Z.title.toLowerCase().startsWith(n.toLowerCase())||Z.displayTitle.toLowerCase().startsWith(n.toLowerCase())).map(Z=>({name:Z.displayTitle,description:Z.description,id:Z.title,title:Z.displayTitle,label:Z.displayTitle,renderInlineAs:Z.renderInlineAs,type:"contextProvider",contextProvider:Z})).sort((Z,W)=>Z.id==="file"?-1:1))||[];return b.length===0?l.current(void 0,n).map(W=>({...W,label:W.title,type:W.providerTitle,query:W.id})):(b.length===I.current.length&&b.push({title:"Add more context providers",type:"action",action:()=>{hd("openUrl","https://continue.dev/docs/customization/context-providers#built-in-context-providers")},description:""}),b)},c,G,e)}function pDI(I,l,c){return R_(async({query:e})=>{var d;return(((d=I.current)==null?void 0:d.filter(t=>{const n=t.title.substring(1).toLowerCase(),b=e.toLowerCase();return n.startsWith(b)}))||[]).map(t=>({name:t.title,description:t.description,id:t.title,title:t.title,label:t.title,type:"slashCommand"}))},void 0,l,c)}const oDI=LI.div` +`,FYe=E.forwardRef((e,t)=>{const n=Zr(),[r,i]=E.useState(0),[a,o]=E.useState(void 0),[l,s]=E.useState(void 0),[u,c]=E.useState([]);E.useEffect(()=>{const Q=[...e.items];a==="Type to search docs"&&Q.push({title:"Add Docs",type:"action",action:()=>{n(Ql(!0)),n(Ec(W.jsx(KYe,{})));const{tr:F}=e.editor.view.state,y=F.doc.textBetween(0,F.selection.from).lastIndexOf("@");e.editor.view.dispatch(F.delete(y,F.selection.from).scrollIntoView())},description:"Add a new documentation source"}),c(Q)},[a,e.items,e.editor]);const d=E.useRef(null);E.useEffect(()=>{d.current&&d.current.focus()},[l]);const g=Q=>{var K,y;const F=u[Q];if(F.type==="action"&&F.action){F.action();return}if(F.type==="contextProvider"&&((K=F.contextProvider)==null?void 0:K.type)==="submenu"){o(F.description),e.enterSubmenu(e.editor,F.id);return}if(((y=F.contextProvider)==null?void 0:y.type)==="query"){const{tr:G}=e.editor.view.state,X=G.doc.textBetween(0,G.selection.from),H=X.slice(X.lastIndexOf("@")+1),v=F.title.slice(H.length);e.editor.view.dispatch(G.insertText(v,G.selection.from)),o(F.description),s(F);return}F&&e.command({...F,itemType:F.type})},h=u.length,m=E.useRef([]),A=()=>{i(Q=>{var K;const F=Q-1>=0?Q-1:0;return(K=m.current[F])==null||K.scrollIntoView({behavior:"instant",block:"nearest"}),F})},B=()=>{i(Q=>{var K;const F=Q+1{g(r)};E.useEffect(()=>i(0),[u]),E.useImperativeHandle(t,()=>({onKeyDown:({event:Q})=>Q.key==="ArrowUp"?(A(),!0):Q.key==="ArrowDown"?(B(),!0):Q.key==="Enter"||Q.key==="Tab"?(C(),Q.stopPropagation(),Q.preventDefault(),!0):Q.key==="Escape"?(Q.preventDefault(),Q.stopPropagation(),!0):Q.key===" "&&u.length===1?(C(),!0):!1}));const b=Q=>["file","code"].includes(Q.type);return E.useEffect(()=>{m.current=m.current.slice(0,u.length)},[u]),W.jsx(WYe,{className:"items-container",children:l?W.jsx(yYe,{rows:1,ref:d,placeholder:l.description,onKeyDown:Q=>{Q.key==="Enter"?Q.shiftKey?d.current.innerText+=` +`:e.command({...l,itemType:l.type,query:d.current.value,label:`${l.label}: ${d.current.value}`}):Q.key==="Escape"&&(s(void 0),o(void 0))}}):W.jsxs(W.Fragment,{children:[a&&W.jsx(LQ,{className:"mb-2",children:a}),u.length?u.map((Q,F)=>{var K,y;return W.jsx(LQ,{as:"button",ref:G=>m.current[F]=G,className:`item ${F===r?"is-selected":""}`,onClick:()=>g(F),onMouseEnter:()=>i(F),children:W.jsxs("span",{className:"flex justify-between w-full items-center",children:[W.jsxs("div",{className:"flex items-center justify-center",children:[b(Q)&&W.jsx(IB,{height:"20px",width:"20px",filename:Q.description}),!b(Q)&&W.jsx(W.Fragment,{children:W.jsx(QYe,{item:Q,className:"mr-2"})}),W.jsx("span",{title:Q.id,children:Q.title})," "]}),W.jsxs("span",{style:{color:$f,float:"right",textAlign:"right",opacity:F!==r?0:1,minWidth:"30px"},className:"whitespace-nowrap overflow-hidden overflow-ellipsis ml-2 flex items-center",children:[Q.description,Q.type==="contextProvider"&&((K=Q.contextProvider)==null?void 0:K.type)==="submenu"&&W.jsx(Yce,{className:"ml-2 flex-shrink-0",width:"1.2em",height:"1.2em"}),(y=Q.subActions)==null?void 0:y.map(G=>{const X=d_[G.icon];return W.jsx(Vr,{onClick:H=>{G.action(Q),H.stopPropagation(),H.preventDefault(),e.onClose()},text:void 0,children:W.jsx(X,{width:"1.2em",height:"1.2em"})})})]})]})},F)}):W.jsx(LQ,{className:"item",children:"No results"})]})})});function p_(e,t=i=>{},n=()=>{},r=()=>{}){return{items:e,allowSpaces:!0,render:()=>{let i,a;const o=()=>{var l;(l=a==null?void 0:a[0])==null||l.destroy(),i==null||i.destroy(),n()};return{onStart:l=>{if(i=new u_(FYe,{props:{...l,enterSubmenu:t,onClose:o},editor:l.editor}),!l.clientRect){console.log("no client rect");return}a=bm("body",{getReferenceClientRect:l.clientRect,appendTo:()=>document.body,content:i.element,showOnCreate:!0,interactive:!0,trigger:"manual",placement:"bottom-start",maxWidth:`${window.innerWidth-24}px`}),r()},onUpdate(l){i.updateProps({...l,enterSubmenu:t}),l.clientRect&&a[0].setProps({getReferenceClientRect:l.clientRect})},onKeyDown(l){var s;return l.event.key==="Escape"?(a[0].hide(),!0):(s=i.ref)==null?void 0:s.onKeyDown(l)},onExit:o}}}}function EYe(e,t){var n;if(e.providerTitle==="docs"&&!((n=e.metadata)!=null&&n.preIndexed))return[{label:"Open in new tab",icon:"trash",action:()=>{t.request("context/removeDocs",{baseUrl:e.id})}}]}function RYe(e,t,n,r,i,a,o){return p_(async({query:s})=>{var c;if(a.current)return t.current(a.current,s).map(g=>({...g,label:g.title,type:a.current,query:g.id,subActions:EYe(g,o)}));const u=((c=e.current)==null?void 0:c.filter(d=>d.title.toLowerCase().startsWith(s.toLowerCase())||d.displayTitle.toLowerCase().startsWith(s.toLowerCase())).map(d=>({name:d.displayTitle,description:d.description,id:d.title,title:d.displayTitle,label:d.displayTitle,renderInlineAs:d.renderInlineAs,type:"contextProvider",contextProvider:d})).sort((d,g)=>d.id==="file"?-1:1))||[];return u.length===0?t.current(void 0,s).map(g=>({...g,label:g.title,type:g.providerTitle,query:g.id})):(u.length===e.current.length&&u.push({title:"Add more context providers",type:"action",action:()=>{o.request("openUrl","https://docs.continue.dev/customization/context-providers#built-in-context-providers")},description:""}),u)},n,r,i)}function SYe(e,t,n,r){return p_(async({query:a})=>([...e.current,{title:"Build a custom prompt",description:"Build a custom prompt",type:"action",id:"createPromptFile",label:"Create Prompt File",action:()=>{console.log("I",r.request),r.request("config/newPromptFile",void 0)},name:"Create Prompt File"}].filter(l=>{const s=l.title.substring(1).toLowerCase(),u=a.toLowerCase();return s.startsWith(u)})||[]).map(l=>({name:l.title,description:l.description,id:l.title,title:l.title,label:l.title,type:l.type??"slashCommand",action:l.action})),void 0,t,n)}const xYe=Ve.div` resize: none; padding: 8px; padding-bottom: 24px; font-family: inherit; - border-radius: ${Pl}; + border-radius: ${jt}; margin: 0; height: auto; width: calc(100% - 18px); - background-color: ${Mc}; - color: ${ec}; + background-color: ${yn}; + color: ${rn}; z-index: 1; - border: 0.5px solid ${OmI}; + border: 0.5px solid ${yY}; outline: none; - font-size: 14px; + font-size: ${nr()}px; &:focus { outline: none; - border: 0.5px solid ${PmI}; + border: 0.5px solid ${m1e}; } &::placeholder { - color: ${ul}cc; + color: ${rt}cc; } position: relative; -`,VDI=LI.div` +`,GYe=Ve.div` position: absolute; width: 100%; height: 100%; top: 0; left: 0; opacity: 0.5; - background-color: ${Ah}; - color: ${ec}; + background-color: ${ed}; + color: ${rn}; z-index: 100; display: flex; align-items: center; justify-content: center; -`,iDI=LI.div` +`,kYe=Ve.div` position: absolute; width: 100%; height: 100%; top: 0; left: 0; - color: ${ec}; + color: ${rn}; z-index: 100; display: flex; align-items: center; justify-content: center; -`;function FDI(I,l){const e=Math.min(512/l.width,512/l.height),d=document.createElement("canvas");return d.width=l.width*e,d.height=l.height*e,d.getContext("2d").drawImage(l,0,0,d.width,d.height),d.toDataURL("image/jpeg",.7)}function NDI(I){const l=ne(),{getSubmenuContextItems:c}=E.useContext(l3),G=Nc(N=>N.state.history.length),[e,d]=E.useState(!1),{saveSession:t}=mN(l),n=E.useRef(void 0),b=E.useRef(!1),a=async(N,J)=>{const A=N.getText(),M=A.lastIndexOf("@");M!==-1&&(N.commands.deleteRange({from:M+2,to:A.length+1}),n.current=J,N.commands.insertContent(" "),N.commands.deleteRange({from:N.state.selection.anchor-1,to:N.state.selection.anchor}))},Z=()=>{n.current=void 0,b.current=!1},W=()=>{b.current=!0},m=Nc(N=>N.state.contextItems),s=Nc(Ir),h=As(c),p=As(I.availableContextProviders),V=As(G),o=As(I.availableSlashCommands);async function F(N){let J=N.size/1024/1024;if(["image/jpeg","image/jpg","image/png","image/gif","image/svg","image/webp"].includes(N.type)&&J<10){let A=window.URL||window.webkitURL,M=new window.Image;return M.src=A.createObjectURL(N),await new Promise(D=>{M.onload=function(){const O=FDI(N,M);let $=new window.Image;$.src=O,$.onload=function(){D([$,O])}}})}else Yc("errorPopup",{message:"Images need to be in jpg or png format and less than 10MB in size."})}const X=xjI({extensions:[CSI,PSI,qSI,ITI.configure({placeholder:()=>V.current===0?"Ask anything, '/' for slash commands, '@' to add context":"Ask a follow-up"}),$SI.extend({addKeyboardShortcuts(){return{Enter:()=>b.current?!1:(H.current({useCodebase:!1}),!0),"Cmd-Enter":()=>(H.current({useCodebase:!0}),!0),"Shift-Enter":()=>this.editor.commands.first(({commands:N})=>[()=>N.newlineInCode(),()=>N.createParagraphNear(),()=>N.liftEmptyBlock(),()=>N.splitBlock()])}}}).configure({HTMLAttributes:{class:"my-1"}}),lTI,aDI.configure({HTMLAttributes:{class:"mention"},suggestion:hDI(p,h,a,Z,W,n),renderHTML:N=>`@${N.node.attrs.label||N.node.attrs.id}`}),lDI.configure({HTMLAttributes:{class:"mention"},suggestion:pDI(o,Z,W),renderText:N=>N.node.attrs.label}),_jI],editorProps:{attributes:{class:"outline-none -mt-1 overflow-hidden",style:"font-size: 14px;"}},content:I.editorState||"",onUpdate:({editor:N,transaction:J})=>{var D;if(m.length>0)return;const A=N.getJSON();let M=(D=A.content)==null?void 0:D.find(O=>O.type==="codeBlock");if(M){for(const O of A.content)if(!(O.type!=="paragraph"||!O.content||typeof O.content=="string")){for(const $ of O.content)if($.type==="slashcommand"&&["/edit","/comment"].includes($.attrs.label)){l(Dj({item:M.attrs.item}));return}}}}}),H=As(N=>{var A;const J=X.getJSON();(A=J.content)!=null&&A.some(M=>M.content)&&(I.onEnter(J,N),I.isMainInput&&X.commands.clearContent(!0))},[I.onEnter,X,I.isMainInput]),[Y,R]=E.useState(!1);E.useEffect(()=>{const N=J=>{gh(J)&&($W()?J.code==="KeyJ":J.code==="KeyL")?(R(!0),setTimeout(()=>{R(!1)},100)):J.key==="Escape"&&Yc("focusEditor",void 0)};return window.addEventListener("keydown",N),()=>{window.removeEventListener("keydown",N)}},[]);const B=Nc(N=>N.state.active);E.useEffect(()=>{X&&!B&&I.isMainInput&&document.hasFocus()&&X.commands.focus()},[I.isMainInput,B,X]),sG("userInput",async N=>{I.isMainInput&&(X==null||X.commands.insertContent(N.input),H.current({useCodebase:!1}))},[X,H.current,I.isMainInput]),sG("jetbrains/editorInsetRefresh",async()=>{X==null||X.chain().clearContent().focus().run()}),sG("focusContinueInput",async N=>{I.isMainInput&&(G>0&&t(),setTimeout(()=>{X==null||X.commands.blur(),X==null||X.commands.focus("end")},20))},[G,t,X,I.isMainInput]),sG("focusContinueInputWithoutClear",async()=>{I.isMainInput&&setTimeout(()=>{X==null||X.commands.focus("end")},20)},[X,I.isMainInput]),sG("focusContinueInputWithNewSession",async()=>{I.isMainInput&&(t(),setTimeout(()=>{X==null||X.commands.focus("end")},20))},[X,I.isMainInput]),sG("highlightedCode",async N=>{if(!(!I.isMainInput||!X)){if(!Y){const J=N.rangeInFileWithContents,A=iA(J.filepath),M={content:J.contents,name:`${A} (${J.range.start.line+1}-${J.range.end.line+1})`,description:J.filepath,id:{providerTitle:"code",itemId:J.filepath}};let D=0;for(const O of X.getJSON().content)if(O.type==="codeBlock")D+=2;else break;X.chain().insertContentAt(D,{type:"codeBlock",attrs:{item:M}}).run(),setTimeout(()=>{X.commands.blur(),X.commands.focus("end")},20)}R(!1)}},[X,I.isMainInput,G,Y,I.isMainInput]);const[C,k]=E.useState(!1);return E.useEffect(()=>{const N=A=>{A.shiftKey||k(!0)};window.addEventListener("dragover",N);const J=A=>{A.shiftKey?k(!1):setTimeout(()=>k(!1),2e3)};return window.addEventListener("dragleave",J),()=>{window.removeEventListener("dragover",N),window.removeEventListener("dragleave",J)}},[]),v.jsxs(oDI,{className:"cursor-text",onClick:()=>{X&&X.commands.focus()},onDragOver:N=>{N.preventDefault(),k(!0)},onDragLeave:N=>{N.relatedTarget===null&&(N.shiftKey?k(!1):setTimeout(()=>k(!1),2e3))},onDragEnter:()=>{k(!0)},onDrop:N=>{if(!qV(s.provider,s.model))return;k(!1);let J=N.dataTransfer.files[0];F(J).then(([A,M])=>{const{schema:D}=X.state,O=D.nodes.image.create({src:M}),$=X.state.tr.insert(0,O);X.view.dispatch($)}),N.preventDefault()},children:[v.jsx(BjI,{spellCheck:!1,editor:X,onFocus:()=>{d(!0)},onBlur:()=>{setTimeout(()=>{d(!1)},100)},onClick:N=>{N.stopPropagation()}}),v.jsx(nDI,{hidden:!(e||I.isMainInput),onAddContextItem:()=>{X.getText().endsWith("@")||X.commands.insertContent("@")},onEnter:H.current,onImageFileSelected:N=>{F(N).then(([J,A])=>{const{schema:M}=X.state,D=M.nodes.image.create({src:A});X.commands.command(({tr:O})=>(O.insert(0,D),!0))})}}),C&&qV(s.provider,s.model)&&v.jsxs(v.Fragment,{children:[v.jsx(VDI,{}),v.jsx(iDI,{children:"Hold ⇧ to drop image"})]})]})}const RDI=Vg` +`;function DYe(e,t){const i=Math.min(512/t.width,512/t.height),a=document.createElement("canvas");return a.width=t.width*i,a.height=t.height*i,a.getContext("2d").drawImage(t,0,0,a.width,a.height),a.toDataURL("image/jpeg",.7)}function NYe(e){const t=Zr(),n=E.useContext(Zn),{getSubmenuContextItems:r}=E.useContext(E9),i=en(Z=>Z.state.history.length),a=en(rO),[o,l]=E.useState(!1),{saveSession:s}=iw(t),u=E.useRef(void 0),c=E.useRef(!1),d=async(Z,S)=>{const q=Z.getText(),T=q.lastIndexOf("@");T!==-1&&(Z.commands.deleteRange({from:T+2,to:q.length+1}),u.current=S,Z.commands.insertContent(" "),Z.commands.deleteRange({from:Z.state.selection.anchor-1,to:Z.state.selection.anchor}))},g=()=>{u.current=void 0,c.current=!1},h=()=>{c.current=!0},m=en(Z=>Z.state.contextItems),A=en(cd),B=Ml(r),C=Ml(e.availableContextProviders),b=Ml(i),Q=Ml(e.availableSlashCommands),F=en(Z=>Z.state.active),K=Ml(F);async function y(Z){let S=Z.size/1024/1024;if(["image/jpeg","image/jpg","image/png","image/gif","image/svg","image/webp"].includes(Z.type)&&S<10){let q=window.URL||window.webkitURL,T=new window.Image;return T.src=q.createObjectURL(Z),await new Promise(ue=>{T.onload=function(){const fe=DYe(Z,T);let _=new window.Image;_.src=fe,_.onload=function(){ue([_,fe])}}})}else n.post("errorPopup",{message:"Images need to be in jpg or png format and less than 10MB in size."})}const G=en(Z=>Z.state.mainEditorContent),{prevRef:X,nextRef:H,addRef:v}=eYe(),k=UVe({extensions:[zMe,iTe,oTe,sTe.configure({placeholder:()=>b.current===0?"Ask anything, '/' for slash commands, '@' to add context":"Ask a follow-up"}),lTe.extend({addKeyboardShortcuts(){return{Enter:()=>c.current?!1:(V.current({useCodebase:!1,noContext:!a}),!0),"Cmd-Enter":()=>(V.current({useCodebase:!0,noContext:!a}),!0),"Alt-Enter":()=>(V.current({useCodebase:!1,noContext:a}),!0),"Cmd-Backspace":()=>{if(K.current)return!0},"Shift-Enter":()=>this.editor.commands.first(({commands:Z})=>[()=>Z.newlineInCode(),()=>Z.createParagraphNear(),()=>Z.liftEmptyBlock(),()=>Z.splitBlock()]),ArrowUp:()=>{if(this.editor.state.selection.anchor>1)return!1;const Z=X.current(this.editor.state.toJSON().doc);if(Z)return this.editor.commands.setContent(Z),setTimeout(()=>{this.editor.commands.blur(),this.editor.commands.focus("start")},0),!0},ArrowDown:()=>{if(this.editor.state.selection.anchor{this.editor.commands.blur(),this.editor.commands.focus("end")},0),!0}}}}).configure({HTMLAttributes:{class:"my-1"}}),uTe,vYe.configure({HTMLAttributes:{class:"mention"},suggestion:RYe(C,B,d,g,h,u,n),renderHTML:Z=>`@${Z.node.attrs.label||Z.node.attrs.id}`}),dYe.configure({HTMLAttributes:{class:"mention"},suggestion:SYe(Q,g,h,n),renderText:Z=>Z.node.attrs.label}),lYe],editorProps:{attributes:{class:"outline-none -mt-1 overflow-hidden",style:`font-size: ${nr()}px;`}},content:e.editorState||G||"",onUpdate:({editor:Z,transaction:S})=>{var ue;if(m.length>0)return;const q=Z.getJSON();let T=(ue=q.content)==null?void 0:ue.find(fe=>fe.type==="codeBlock");if(T){for(const fe of q.content)if(!(fe.type!=="paragraph"||!fe.content||typeof fe.content=="string")){for(const _ of fe.content)if(_.type==="slashcommand"&&["/edit","/comment"].includes(_.attrs.label)){t(yU({item:T.attrs.item}));return}}}}}),D=Ml(k==null?void 0:k.isFocused,[k]);E.useEffect(()=>{if(to())return;const Z=async S=>{!k||!D.current||(S.metaKey&&S.key==="x"?(document.execCommand("cut"),S.stopPropagation(),S.preventDefault()):S.metaKey&&S.key==="v"?(document.execCommand("paste"),S.stopPropagation(),S.preventDefault()):S.metaKey&&S.key==="c"&&(document.execCommand("copy"),S.stopPropagation(),S.preventDefault()))};return document.addEventListener("keydown",Z),()=>{document.removeEventListener("keydown",Z)}},[k,D]),E.useEffect(()=>{G&&k&&(k.commands.setContent(G),t(YBe()))},[G,k]);const V=Ml(Z=>{var q;const S=k.getJSON();if((q=S.content)!=null&&q.some(T=>T.content)&&(e.onEnter(S,Z),e.isMainInput)){const T=k.state.toJSON().doc;v.current(T),k.commands.clearContent(!0)}},[e.onEnter,k,e.isMainInput]),[z,j]=E.useState(!1);E.useEffect(()=>{const Z=S=>{_f(S)&&(to()?S.code==="KeyJ":S.code==="KeyL")?(j(!0),setTimeout(()=>{j(!1)},100)):S.key==="Escape"&&n.post("focusEditor",void 0)};return window.addEventListener("keydown",Z),()=>{window.removeEventListener("keydown",Z)}},[]),E.useEffect(()=>{k&&!F&&e.isMainInput&&document.hasFocus()&&k.commands.focus(void 0,{scrollIntoView:!1})},[e.isMainInput,F,k]),On("userInput",async Z=>{e.isMainInput&&(k==null||k.commands.insertContent(Z.input),V.current({useCodebase:!1,noContext:!0}))},[k,V.current,e.isMainInput]),On("jetbrains/editorInsetRefresh",async()=>{k==null||k.chain().clearContent().focus().run()}),On("focusContinueInput",async Z=>{e.isMainInput&&(i>0&&s(),setTimeout(()=>{k==null||k.commands.blur(),k==null||k.commands.focus("end")},20))},[i,s,k,e.isMainInput]),On("focusContinueInputWithoutClear",async()=>{e.isMainInput&&setTimeout(()=>{k==null||k.commands.focus("end")},20)},[k,e.isMainInput]),On("focusContinueInputWithNewSession",async()=>{e.isMainInput&&(s(),setTimeout(()=>{k==null||k.commands.focus("end")},20))},[k,e.isMainInput]),On("highlightedCode",async Z=>{if(!(!e.isMainInput||!k)){if(!z){const S=Z.rangeInFileWithContents,q=C3(S.filepath),T=R9(S.filepath,await n.ide.getWorkspaceDirs()),ue=`(${S.range.start.line+1}-${S.range.end.line+1})`,fe={content:S.contents,name:`${q} ${ue}`,description:`${T} ${ue}`,id:{providerTitle:"code",itemId:S.filepath}};let _=0;for(const Ze of k.getJSON().content)if(Ze.type==="codeBlock")_+=2;else break;k.chain().insertContentAt(_,{type:"codeBlock",attrs:{item:fe}}).run(),Z.prompt&&(k.commands.focus("end"),k.commands.insertContent(Z.prompt)),Z.shouldRun&&V.current({useCodebase:!1,noContext:!0}),setTimeout(()=>{k.commands.blur(),k.commands.focus("end")},20)}j(!1)}},[k,e.isMainInput,i,z,e.isMainInput,V.current]);const[te,J]=E.useState(!1);E.useEffect(()=>{const Z=q=>{q.shiftKey||J(!0)};window.addEventListener("dragover",Z);const S=q=>{q.shiftKey?J(!1):setTimeout(()=>J(!1),2e3)};return window.addEventListener("dragleave",S),()=>{window.removeEventListener("dragover",Z),window.removeEventListener("dragleave",S)}},[]);const[I,se]=E.useState(!1);return W.jsxs(xYe,{onKeyDown:Z=>{Z.key==="Alt"&&se(!0)},onKeyUp:Z=>{Z.key==="Alt"&&se(!1)},className:"cursor-text",onClick:()=>{k&&k.commands.focus()},onDragOver:Z=>{Z.preventDefault(),J(!0)},onDragLeave:Z=>{Z.relatedTarget===null&&(Z.shiftKey?J(!1):setTimeout(()=>J(!1),2e3))},onDragEnter:()=>{J(!0)},onDrop:Z=>{if(!eF(A.provider,A.model,A.title))return;J(!1);let S=Z.dataTransfer.files[0];y(S).then(([q,T])=>{const{schema:ue}=k.state,fe=ue.nodes.image.create({src:T}),_=k.state.tr.insert(0,fe);k.view.dispatch(_)}),Z.preventDefault()},children:[W.jsx(YVe,{spellCheck:!1,editor:k,onFocus:()=>{l(!0)},onBlur:()=>{setTimeout(()=>{l(!1)},100)},onClick:Z=>{Z.stopPropagation()}}),W.jsx(wYe,{showNoContext:I,hidden:!(o||e.isMainInput),onAddContextItem:()=>{k.getText().endsWith("@")||k.commands.insertContent("@")},onEnter:V.current,onImageFileSelected:Z=>{y(Z).then(([S,q])=>{const{schema:T}=k.state,ue=T.nodes.image.create({src:q});k.commands.command(({tr:fe})=>(fe.insert(0,ue),!0))})}}),te&&eF(A.provider,A.model,A.title)&&W.jsxs(W.Fragment,{children:[W.jsx(GYe,{}),W.jsx(kYe,{children:"Hold ⇧ to drop image"})]})]})}const ZYe=n3` 0% { background-position: 0px 0; } 100% { background-position: 100em 0; } -`,YDI=LI.div` - border-radius: ${I=>I.borderRadius||"0"}; +`,HYe=Ve.div` + border-radius: ${e=>e.borderRadius||"0"}; padding: 1px; - background: ${I=>I.borderColor?I.borderColor:`repeating-linear-gradient( + background: ${e=>e.borderColor?e.borderColor:`repeating-linear-gradient( 101.79deg, #1BBE84 0%, #331BBE 16%, @@ -1817,14 +1508,14 @@ ${d}`,showCodeBorder:!1})}),((a=t.current)==null?void 0:a.scrollHeight)>iM&&v.js #331BBE 85%, #1BBE84 99% )`}; - animation: ${I=>I.loading?RDI:""} 6s linear infinite; + animation: ${e=>e.loading?ZYe:""} 6s linear infinite; background-size: 200% 200%; width: 100%; display: flex; flex-direction: row; align-items: center; margin-top: 8px; -`;function FM(I){const l=ne(),c=Nc(d=>d.state.active),G=Nc(rxI),e=Nc(d=>d.state.config.contextProviders);return sG("newSessionWithPrompt",async d=>{I.isMainInput&&(l(zh()),l(Oj({message:{role:"user",content:d.prompt},index:0})))},[I.isMainInput]),v.jsxs("div",{style:{paddingTop:"4px",backgroundColor:fc,display:I.hidden?"none":"inherit"},children:[v.jsx("div",{className:"flex px-2 relative",style:{backgroundColor:fc},children:v.jsx(YDI,{loading:c&&I.isLastUserInput?1:0,isFirst:!1,isLast:!1,borderColor:c&&I.isLastUserInput?void 0:fc,borderRadius:Pl,children:v.jsx(NDI,{editorState:I.editorState,onEnter:I.onEnter,isMainInput:I.isMainInput,availableContextProviders:e,availableSlashCommands:G})})}),v.jsx(CCI,{contextItems:I.contextItems})]})}const XDI={useCodebase:!1},HDI=LI.div` +`;function KX(e){const t=Zr(),n=en(a=>a.state.active),r=en(_3e),i=en(a=>a.state.config.contextProviders);return On("newSessionWithPrompt",async a=>{e.isMainInput&&(t(Qf()),t(FU({message:{role:"user",content:a.prompt},index:0})))},[e.isMainInput]),W.jsxs("div",{style:{paddingTop:"4px",backgroundColor:Gn,display:e.hidden?"none":"inherit"},children:[W.jsx("div",{className:"flex px-2 relative",style:{backgroundColor:Gn},children:W.jsx(HYe,{loading:n&&e.isLastUserInput?1:0,isFirst:!1,isLast:!1,borderColor:n&&e.isLastUserInput?void 0:Gn,borderRadius:jt,children:W.jsx(NYe,{editorState:e.editorState,onEnter:e.onEnter,isMainInput:e.isMainInput,availableContextProviders:i,availableSlashCommands:r})})}),W.jsx(UNe,{contextItems:e.contextItems})]})}const XYe={useCodebase:!1,noContext:!0},LYe=Ve.div` overflow-y: scroll; scrollbar-width: none; /* Firefox */ @@ -1835,20 +1526,20 @@ ${d}`,showCodeBorder:!1})}),((a=t.current)==null?void 0:a.scrollHeight)>iM&&v.js } height: 100%; -`,QDI=LI.div` +`,MYe=Ve.div` width: fit-content; margin-right: auto; margin-left: auto; - font-size: 12px; + font-size: ${nr()-2}px; - border: 0.5px solid ${ul}; - border-radius: ${Pl}; + border: 0.5px solid ${rt}; + border-radius: ${jt}; padding: 4px 8px; - color: ${ul}; + color: ${rt}; cursor: pointer; -`,wDI=LI.div` +`,TYe=Ve.div` position: relative; background-color: transparent; @@ -1861,162 +1552,285 @@ ${d}`,showCodeBorder:!1})}),((a=t.current)==null?void 0:a.scrollHeight)>iM&&v.js // content: ""; // position: absolute; // height: calc(100% - 12px); - // border-left: 2px solid ${ul}; + // border-left: 2px solid ${rt}; // left: 28px; // z-index: 0; // bottom: 12px; // } -`,EDI=LI.div` +`,QX=Ve.div` width: fit-content; margin-right: auto; margin-left: 8px; margin-top: 4px; - font-size: 12px; + font-size: ${nr()-2}px; - border-radius: ${Pl}; - padding: 2px 8px; - color: ${ul}; + border-radius: ${jt}; + padding: 2px 6px; + color: ${rt}; &:hover { - background-color: ${ul}33; - color: ${ec}; + background-color: ${rt}33; + color: ${rn}; } cursor: pointer; -`;function vDI({error:I,resetErrorBoundary:l}){return v.jsxs("div",{role:"alert",className:"px-2",style:{backgroundColor:fc},children:[v.jsx("p",{children:"Something went wrong:"}),v.jsx("pre",{style:{color:"red"},children:I.message}),v.jsx("div",{className:"text-center",children:v.jsx(xt,{onClick:l,children:"Restart"})})]})}function NM(I){var X;const l=VA(),c=ne();Be();const G=Nc(H=>H.state),e=Nc(Ir),d=Nc(H=>H.state.active),[t,n]=E.useState([]),[b,a]=E.useState(!1);E.useEffect(()=>{setTimeout(()=>{a(!0)},5e3)},[]);const Z=E.useRef(null),W=E.useRef(null),[m,s]=E.useState(!1),h=Nc(H=>H.state);E.useEffect(()=>{var Y;const H=()=>{var N,J;const B=((N=W.current)==null?void 0:N.scrollTop)||0,C=((J=W.current)==null?void 0:J.scrollHeight)||0,k=window.innerHeight||0;B+k+-25>=C?s(!1):s(!0)};return(Y=W.current)==null||Y.addEventListener("scroll",H),()=>{window.removeEventListener("scroll",H)}},[W.current]),E.useLayoutEffect(()=>{var H,Y;m||(Y=W.current)==null||Y.scrollTo({top:(H=W.current)==null?void 0:H.scrollHeight,behavior:"instant"})},[(X=W.current)==null?void 0:X.scrollHeight,G.history]),E.useEffect(()=>{const H=Y=>{Y.key==="Backspace"&&gh(Y)&&!Y.shiftKey&&c($u())};return window.addEventListener("keydown",H),()=>{window.removeEventListener("keydown",H)}},[d]);const{streamResponse:p}=zD(c),V=E.useCallback((H,Y)=>{if((e==null?void 0:e.provider)==="free-trial"){const B=localStorage.getItem("ftc");if(B){const C=parseInt(B);if(localStorage.setItem("ftc",(C+1).toString()),C>=250){c(hn(!0)),c(RW(v.jsx(FxI,{}))),l==null||l.capture("ftc_reached");return}}else localStorage.setItem("ftc","1")}p(H,Y);const R=sw("mainTextEntryCounter");R?(TV("mainTextEntryCounter",R+1),R===300&&(c(RW(v.jsxs("div",{className:"text-center p-4",children:["👋 Thanks for using Continue. We are a beta product and love working closely with our first users. If you're interested in speaking, enter your name and email. We won't use this information for anything other than reaching out.",v.jsx("br",{}),v.jsx("br",{}),v.jsxs("form",{onSubmit:B=>{B.preventDefault(),l==null||l.capture("user_interest_form",{name:B.target.elements[0].value,email:B.target.elements[1].value}),c(RW(v.jsx("div",{className:"text-center p-4",children:"Thanks! We'll be in touch soon."})))},style:{display:"flex",flexDirection:"column",gap:"10px"},children:[v.jsx("input",{style:{padding:"10px",borderRadius:"5px"},type:"text",name:"name",placeholder:"Name",required:!0}),v.jsx("input",{style:{padding:"10px",borderRadius:"5px"},type:"email",name:"email",placeholder:"Email",required:!0}),v.jsx("button",{style:{padding:"10px",borderRadius:"5px",cursor:"pointer"},type:"submit",children:"Submit"})]})]}))),c(lsI(!1)),c(hn(!0)))):TV("mainTextEntryCounter",1)},[G.history,G.contextItems,e,h,p]),{saveSession:o}=mN(c);sG("newSession",async()=>{var H,Y;o(),(Y=(H=Z.current)==null?void 0:H.focus)==null||Y.call(H)},[o]);const F=E.useCallback(H=>{let Y=!1;for(let R=H+1;Rv.jsx(E.Fragment,{children:v.jsx(oxI,{FallbackComponent:vDI,onReset:()=>{c(zh())},children:H.message.role==="user"?v.jsx(FM,{onEnter:async(R,B)=>{p(R,B,Y)},isLastUserInput:F(Y),isMainInput:!1,editorState:H.editorState,contextItems:H.contextItems}):v.jsx(HxI,{item:H,iconElement:v.jsx(zS,{width:"16px",height:"16px"}),open:typeof t[Y]>"u"?!0:t[Y],onToggle:()=>{},children:v.jsx(RxI,{index:Y,isLast:Y===G.history.length-1,isFirst:Y===0,open:typeof t[Y]>"u"?!0:t[Y],onUserInput:R=>{},item:H,onReverse:()=>{},onRetry:()=>{p(h.history[Y-1].editorState,h.history[Y-1].modifiers??XDI,Y-1)},onContinueGeneration:()=>{window.postMessage({messageType:"userInput",data:{input:"Keep going"}},"*")},onDelete:()=>{}},Y)})})},Y))}),v.jsx(FM,{onEnter:(H,Y)=>{V(H,Y)},isLastUserInput:!1,isMainInput:!0,hidden:d}),d?v.jsxs(v.Fragment,{children:[v.jsx("br",{}),v.jsx("br",{})]}):h.history.length>0?v.jsxs(EDI,{onClick:()=>{o()},className:"mr-auto",children:["New Session (",zV()," ",$W()?"J":"L",")"]}):null]})}),d&&v.jsxs(QDI,{className:"mt-auto",onClick:()=>{c($u())},children:[zV()," ⌫ Cancel"]})]})}const Y_=LI(xt)` - margin-left: auto; - background-color: transparent; - color: ${ec}; - border: 0.5px solid ${ul}; +`;function VYe({error:e,resetErrorBoundary:t}){return W.jsxs("div",{role:"alert",className:"px-2",style:{backgroundColor:Gn},children:[W.jsx("p",{children:"Something went wrong:"}),W.jsx("pre",{style:{color:"red"},children:e.message}),W.jsx("div",{className:"text-center",children:W.jsx(Ea,{onClick:t,children:"Restart"})})]})}function WX(e){var G;const t=qf(),n=Zr(),r=Hr(),i=E.useContext(Zn),a=en(X=>X.state),o=en(cd),l=en(X=>X.state.active),[s,u]=E.useState([]),[c,d]=E.useState(!1);E.useEffect(()=>{setTimeout(()=>{d(!0)},5e3)},[]);const g=E.useRef(null),h=E.useRef(null),[m,A]=E.useState(!1),B=en(X=>X.state);E.useEffect(()=>{var H;const X=()=>{var z,j;const k=((z=h.current)==null?void 0:z.scrollTop)||0,D=((j=h.current)==null?void 0:j.scrollHeight)||0,V=window.innerHeight||0;k+V+-25>=D?A(!1):A(!0)};return(H=h.current)==null||H.addEventListener("scroll",X),()=>{window.removeEventListener("scroll",X)}},[h.current]),E.useLayoutEffect(()=>{var X,H;m||(H=h.current)==null||H.scrollTo({top:(X=h.current)==null?void 0:X.scrollHeight,behavior:"instant"})},[(G=h.current)==null?void 0:G.scrollHeight,a.history]),E.useEffect(()=>{const X=H=>{H.key==="Backspace"&&_f(H)&&!H.shiftKey&&n(Kf())};return window.addEventListener("keydown",X),()=>{window.removeEventListener("keydown",X)}},[l]);const{streamResponse:C}=jU(n,i),b=E.useCallback((X,H)=>{if((o==null?void 0:o.provider)==="free-trial"){const k=Vo("ftc");if(k){if(Di("ftc",k+1),k>=dd){r("/onboarding"),t==null||t.capture("ftc_reached");return}}else Di("ftc",1)}C(X,H,i);const v=Vo("mainTextEntryCounter");v?(Di("mainTextEntryCounter",v+1),v===300&&(n(Ec(W.jsxs("div",{className:"text-center p-4",children:["👋 Thanks for using Continue. We are always trying to improve and love hearing from users. If you're interested in speaking, enter your name and email. We won't use this information for anything other than reaching out.",W.jsx("br",{}),W.jsx("br",{}),W.jsxs("form",{onSubmit:k=>{k.preventDefault(),t==null||t.capture("user_interest_form",{name:k.target.elements[0].value,email:k.target.elements[1].value}),n(Ec(W.jsx("div",{className:"text-center p-4",children:"Thanks! We'll be in touch soon."})))},style:{display:"flex",flexDirection:"column",gap:"10px"},children:[W.jsx("input",{style:{padding:"10px",borderRadius:"5px"},type:"text",name:"name",placeholder:"Name",required:!0}),W.jsx("input",{style:{padding:"10px",borderRadius:"5px"},type:"email",name:"email",placeholder:"Email",required:!0}),W.jsx("button",{style:{padding:"10px",borderRadius:"5px",cursor:"pointer"},type:"submit",children:"Submit"})]})]}))),n(nfe(!1)),n(Ql(!0)))):Di("mainTextEntryCounter",1)},[a.history,a.contextItems,o,B,C]),{saveSession:Q,getLastSessionId:F,loadLastSession:K}=iw(n);On("newSession",async()=>{var X,H;Q(),(H=(X=g.current)==null?void 0:X.focus)==null||H.call(X)},[Q]);const y=E.useCallback(X=>{let H=!1;for(let v=X+1;vW.jsx(E.Fragment,{children:W.jsx(WGe,{FallbackComponent:VYe,onReset:()=>{n(Qf())},children:X.message.role==="user"?W.jsx(KX,{onEnter:async(v,k)=>{C(v,k,i,H)},isLastUserInput:y(H),isMainInput:!1,editorState:X.editorState,contextItems:X.contextItems}):W.jsx(xGe,{item:X,iconElement:W.jsx(MV,{width:"16px",height:"16px"}),open:typeof s[H]>"u"?!0:s[H],onToggle:()=>{},children:W.jsx(EGe,{index:H,isLast:H===a.history.length-1,isFirst:H===0,open:typeof s[H]>"u"?!0:s[H],onUserInput:v=>{},item:X,onReverse:()=>{},onRetry:()=>{C(B.history[H-1].editorState,B.history[H-1].modifiers??XYe,i,H-1)},onContinueGeneration:()=>{window.postMessage({messageType:"userInput",data:{input:"Continue your response exactly where you left off:"}},"*")},onDelete:()=>{}},H)})})},H))}),W.jsx(KX,{onEnter:(X,H)=>{b(X,H)},isLastUserInput:!1,isMainInput:!0,hidden:l}),l?W.jsxs(W.Fragment,{children:[W.jsx("br",{}),W.jsx("br",{})]}):B.history.length>0?W.jsxs(QX,{onClick:()=>{Q()},className:"mr-auto",children:["New Session (",aB()," ",to()?"J":"L",")"]}):F()?W.jsxs(QX,{onClick:async()=>{K()},className:"mr-auto flex items-center gap-1",children:[W.jsx(hu,{width:"11px",height:"11px"}),"Last Session"]}):null]})}),l&&W.jsxs(MYe,{className:"mt-auto",onClick:()=>{var X;n(Kf()),((X=B.history[B.history.length-1])==null?void 0:X.message.content.length)===0&&n(EU())},children:[aB()," ⌫ Cancel"]})]})}const YYe=Ve.div` + display: grid; + grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); + grid-gap: 2rem; + padding: 1rem; + justify-items: center; + align-items: center; - &:hover { - ${I=>!I.disabled&&`box-shadow: 0 0 4px 4px ${wT};`} - } -`,Ru=LI.div` - border: 1px solid ${ul}; - border-radius: ${Pl}; - transition: all 0.5s; - padding-left: 16px; - padding-right: 16px; + border-top: 0.5px solid ${rt}; +`,IYe=Ve.div` + border: 0.5px solid ${rt}; + border-radius: ${jt}; + padding: 4px; + color: ${rn}; - ${I=>I.disabled?` - opacity: 0.5; - `:I.hovered||I.selected?` - border: 1px solid ${I.color}; - background-color: ${I.color}22; - cursor: pointer;`:""} + width: 16px; + height: 16px; - ${I=>I.selected?` - box-shadow: 0 0 4px 0px ${I.color}; - `:""} -`,gDI=LI.div` - overflow-y: scroll; + display: flex; + justify-content: center; + align-items: center; +`,UYe={"⌘":"Cmd","⌃":"Ctrl","⇧":"Shift","⏎":"Enter","⌫":"Backspace","⌥":"Option","⎇":"Alt"};function OYe({text:e}){const t=document.getElementById("tooltip-portal-div");return W.jsxs(W.Fragment,{children:[W.jsx(IYe,{"data-tooltip-id":`header_button_${e}`,children:e}),t&&Al.createPortal(W.jsx(pc,{id:`header_button_${e}`,place:"bottom",children:UYe[e]}),t)]})}function JYe(e){const t=jf()==="mac"?e.mac:e.windows;return W.jsxs("div",{className:"flex justify-between w-full items-center",children:[W.jsx("span",{style:{color:rn},children:e.description}),W.jsx("div",{className:"flex gap-2 float-right",children:t.split(" ").map((n,r)=>W.jsx(OYe,{text:n},r))})]})}const zYe=[{mac:"⌘ L",windows:"⌃ L",description:"Select Code + New Session"},{mac:"⌘ I",windows:"⌃ I",description:"Edit highlighted code"},{mac:"⌘ ⇧ L",windows:"⌃ ⇧ L",description:"Select Code"},{mac:"⌘ ⇧ ⏎",windows:"⌃ ⇧ ⏎",description:"Accept Diff"},{mac:"⌘ ⇧ ⌫",windows:"⌃ ⇧ ⌫",description:"Reject Diff"},{mac:"⌥ ⌘ Y",windows:"Alt ⌃ Y",description:"Accept Top Change in Diff"},{mac:"⌥ ⌘ N",windows:"Alt ⌃ N",description:"Reject Top Change in Diff"},{mac:"⌥ ⌘ L",windows:"Alt ⌃ L",description:"Toggle Continue Sidebar"},{mac:"⌘ ⇧ R",windows:"⌃ ⇧ R",description:"Debug Terminal"},{mac:"⌘ ⌫",windows:"⌃ ⌫",description:"Cancel response"},{mac:"⌘ K ⌘ M",windows:"⌃ K ⌃ M",description:"Toggle Full Screen"},{mac:"⌘ '",windows:"⌃ '",description:"Toggle Selected Model"}],PYe=[{mac:"⌘ J",windows:"⌃ J",description:"Select Code + New Session"},{mac:"⌘ ⇧ J",windows:"⌃ ⇧ J",description:"Select Code"},{mac:"⌘ I",windows:"⌃ I",description:"Edit highlighted code"},{mac:"⌘ ⇧ I",windows:"⌃ ⇧ I",description:"Toggle inline edit focus"},{mac:"⌘ ⇧ ⏎",windows:"⌃ ⇧ ⏎",description:"Accept Diff"},{mac:"⌘ ⇧ ⌫",windows:"⌃ ⇧ ⌫",description:"Reject Diff"},{mac:"⌥ ⇧ J",windows:"Alt ⇧ J",description:"Quick Input"},{mac:"⌥ ⌘ J",windows:"Alt ⌃ J",description:"Toggle Sidebar"},{mac:"⌘ ⌫",windows:"⌃ ⌫",description:"Cancel response"},{mac:"⌘ '",windows:"⌃ '",description:"Toggle Selected Model"}];function jYe(){return W.jsxs("div",{className:"p-2",children:[W.jsx("h3",{className:"my-3 mx-auto text-center",children:"Keyboard Shortcuts"}),W.jsx(YYe,{children:(to()?PYe:zYe).map((e,t)=>W.jsx(JYe,{mac:e.mac,windows:e.windows,description:e.description},t))})]})}const _Ye=Ve.div` + margin: 4px; + border-top: 0.5px solid ${rt}; + border-bottom: 0.5px solid ${rt}; +`,Z2=Ve.div` + display: flex; + align-items: center; + justify-content: center; + cursor: pointer; - scrollbar-width: none; /* Firefox */ + padding: 12px; - /* Hide scrollbar for Chrome, Safari and Opera */ - &::-webkit-scrollbar { - display: none; + & > a { + color: ${rn}; + text-decoration: none; + display: flex; + align-items: center; + width: 100%; + justify-content: center; } - height: 100%; -`;function ADI(){const I=Be(),[l,c]=E.useState(!1),[G,e]=E.useState(!1),[d,t]=E.useState(-1);return v.jsx(gDI,{children:v.jsxs("div",{className:"m-auto p-2 max-w-96 mt-16 overflow-y-scroll",children:[v.jsx("h1",{className:"text-center",children:"Use Improved Models?"}),v.jsx("p",{className:"text-center pb-2",children:"Continue now integrates with higher quality models for autocomplete and codebase retrieval."}),v.jsxs(Ru,{color:Su,disabled:!1,selected:d===0,hovered:l,onClick:()=>{t(0)},onMouseEnter:()=>c(!0),onMouseLeave:()=>c(!1),children:[v.jsx("h3",{children:"🔒 Keep existing setup"}),v.jsx("p",{children:"Continue using fully local autocomplete + embeddings, or whichever options you have configured."})]}),v.jsx("br",{}),v.jsxs(Ru,{color:"#be841b",disabled:!1,selected:d===1,hovered:G,onClick:()=>{t(1)},onMouseEnter:()=>e(!0),onMouseLeave:()=>e(!1),children:[v.jsx("h3",{children:"✨ Use optimized models"}),v.jsx("p",{children:"Continue's autocomplete and codebase retrieval will feel significantly improved. API calls are made to Fireworks/Voyage, but code is only ever stored locally."})]}),d===1&&v.jsx(v.Fragment,{children:v.jsx(zN,{source:`The following will be written to \`config.json\`: -\`\`\`json -{ - // Starcoder 7b on Fireworks AI - "tabAutocompleteModel": { - "title": "Tab Autocomplete", - "provider": "free-trial", - "model": "starcoder-7b" - }, - // Voyage AI's voyage-code-2 - "embeddingsProvider": { - "provider": "free-trial" - }, - // Voyage AI's rerank-lite-1 - "reranker": { - "name": "free-trial" + &:hover { + background-color: ${e=>e.backgroundColor||rt}; } -} -\`\`\` - -Alternatively, you can enter your own API keys: -\`\`\`json -{ - "tabAutocompleteModel": { - "title": "Starcoder 2", - "provider": "openai", - "model": "accounts/fireworks/models/starcoder-7b", - "apiBase": "https://api.fireworks.ai/inference/v1", - "apiKey": "FIREWORKS_API_KEY" - } - "embeddingsProvider": { - "provider": "openai", - "model": "voyage-code-2", - "apiBase": "https://api.voyageai.com/v1", - "apiKey": "VOYAGE_API_KEY" - }, - "reranker": { - "name": "voyage", - "params": { - "apiKey": "VOYAGE_API_KEY" - } +`,$Ye=Ve(Ea)` + padding: 2px 4px; + margin-left: auto; + margin-right: 12px; + background-color: transparent; + color: ${rn}; + border: 1px solid ${rt}; + &:hover { + background-color: ${rt}; } -} -\`\`\``})}),v.jsx("br",{}),v.jsx("div",{className:"flex",children:v.jsx(Y_,{disabled:d<0,onClick:()=>{Yc("completeOnboarding",{mode:["localExistingUser","optimizedExistingUser"][d]}),Yc("openConfigJson",void 0),TV("onboardingComplete",!0),Yc("index/forceReIndex",void 0),I("/")},children:"Continue"})})]})})}function yDI(){const I=Be(),[l,c]=E.useState(!1),[G,e]=E.useState(!1),[d,t]=E.useState(!1),[n,b]=E.useState(-1);return v.jsxs("div",{className:"p-2 max-w-96 mt-16 mx-auto",children:[v.jsx("h1",{className:"text-center",children:"Welcome to Continue"}),v.jsx("p",{className:"text-center pb-2",children:"Let's find the setup that works best for you"}),v.jsxs(Ru,{color:Su,disabled:!1,selected:n===0,hovered:l,onClick:()=>{b(0)},onMouseEnter:()=>c(!0),onMouseLeave:()=>c(!1),children:[v.jsx("h3",{children:"🔒 Fully local"}),v.jsx("p",{children:"No code will leave your computer, but less powerful models are used. Works with Ollama, LM Studio and others."})]}),n===0&&v.jsxs("p",{className:"px-3",children:[v.jsx("b",{children:"Embeddings:"})," Local sentence-transformers model",v.jsx("br",{}),v.jsx("br",{}),v.jsx("b",{children:"Autocomplete:"})," Starcoder2 3b (manual setup with Ollama, LM Studio, etc.)",v.jsx("br",{}),v.jsx("br",{}),v.jsx("b",{children:"Chat:"})," Manual setup with Ollama, LM Studio, etc."]}),v.jsx("br",{}),v.jsxs(Ru,{color:"#be841b",disabled:!1,selected:n===1,hovered:G,onClick:()=>{b(1)},onMouseEnter:()=>e(!0),onMouseLeave:()=>e(!1),children:[v.jsx("h3",{children:"✨ Optimized"}),v.jsx("p",{children:"Use the best available commercial models to index code and answer questions. Code is still only ever stored locally."})]}),n===1&&v.jsxs("p",{className:"px-3",children:[v.jsx("b",{children:"Embeddings:"})," Voyage Code 2",v.jsx("br",{}),v.jsx("br",{}),v.jsx("b",{children:"Autocomplete:"})," Starcoder 7b via Fireworks AI (free trial)",v.jsx("br",{}),v.jsx("br",{}),v.jsx("b",{children:"Chat:"})," GPT-4, Claude 3, and others (free trial)"]}),v.jsx("br",{}),v.jsxs(Ru,{color:"#1b84be",disabled:!1,selected:n===2,hovered:d,onMouseEnter:()=>t(!0),onMouseLeave:()=>t(!1),onClick:()=>{b(2),Yc("openConfigJson",void 0)},children:[v.jsx("h3",{children:"⚙️ Custom"}),v.jsxs("p",{children:[v.jsx("a",{href:"https://continue.dev/docs/customization/overview",children:"Read the docs"})," ","to learn more and fully customize Continue by opening config.json. This can always be done later."]})]}),v.jsx("br",{}),v.jsx("div",{className:"flex",children:v.jsx(Y_,{disabled:n<0,onClick:()=>{Yc("showTutorial",void 0),Yc("completeOnboarding",{mode:["local","optimized","custom"][n]}),TV("onboardingComplete",!0),Yc("index/forceReIndex",void 0),I("/")},children:"Continue"})})]})}var X_={},l1={},cp={},Gp={},jy={exports:{}},JDI=({onlyFirst:I=!1}={})=>{const l=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(l,I?void 0:"g")};const BDI=JDI;var Dy=I=>typeof I=="string"?I.replace(BDI(),""):I,Oy={exports:{}};const H_=I=>Number.isNaN(I)?!1:I>=4352&&(I<=4447||I===9001||I===9002||11904<=I&&I<=12871&&I!==12351||12880<=I&&I<=19903||19968<=I&&I<=42182||43360<=I&&I<=43388||44032<=I&&I<=55203||63744<=I&&I<=64255||65040<=I&&I<=65049||65072<=I&&I<=65131||65281<=I&&I<=65376||65504<=I&&I<=65510||110592<=I&&I<=110593||127488<=I&&I<=127569||131072<=I&&I<=262141);Oy.exports=H_;Oy.exports.default=H_;var Q_=Oy.exports,kDI=function(){return/\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F|\uD83D\uDC68(?:\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68\uD83C\uDFFB|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|[\u2695\u2696\u2708]\uFE0F|\uD83D[\uDC66\uDC67]|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708])\uFE0F|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C[\uDFFB-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)\uD83C\uDFFB|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB\uDFFC])|\uD83D\uDC69(?:\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB-\uDFFD])|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|(?:(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)\uFE0F|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\uD83C\uDFF4\u200D\u2620)\uFE0F|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF4\uD83C\uDDF2|\uD83C\uDDF6\uD83C\uDDE6|[#\*0-9]\uFE0F\u20E3|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270A-\u270D]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC70\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDCAA\uDD74\uDD7A\uDD90\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD36\uDDB5\uDDB6\uDDBB\uDDD2-\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5\uDEEB\uDEEC\uDEF4-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g};const xDI=Dy,zDI=Q_,UDI=kDI,w_=I=>{if(typeof I!="string"||I.length===0||(I=xDI(I),I.length===0))return 0;I=I.replace(UDI()," ");let l=0;for(let c=0;c=127&&G<=159||G>=768&&G<=879||(G>65535&&c++,l+=zDI(G)?2:1)}return l};jy.exports=w_;jy.exports.default=w_;var ep=jy.exports,Dl={};const RM="[\uD800-\uDBFF][\uDC00-\uDFFF]",CDI=I=>I&&I.exact?new RegExp(`^${RM}$`):new RegExp(RM,"g");var MDI=CDI,Py={exports:{}},CH,YM;function fDI(){return YM||(YM=1,CH={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}),CH}var MH,XM;function E_(){if(XM)return MH;XM=1;const I=fDI(),l={};for(const e of Object.keys(I))l[I[e]]=e;const c={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};MH=c;for(const e of Object.keys(c)){if(!("channels"in c[e]))throw new Error("missing channels property: "+e);if(!("labels"in c[e]))throw new Error("missing channel labels property: "+e);if(c[e].labels.length!==c[e].channels)throw new Error("channel and label counts mismatch: "+e);const{channels:d,labels:t}=c[e];delete c[e].channels,delete c[e].labels,Object.defineProperty(c[e],"channels",{value:d}),Object.defineProperty(c[e],"labels",{value:t})}c.rgb.hsl=function(e){const d=e[0]/255,t=e[1]/255,n=e[2]/255,b=Math.min(d,t,n),a=Math.max(d,t,n),Z=a-b;let W,m;a===b?W=0:d===a?W=(t-n)/Z:t===a?W=2+(n-d)/Z:n===a&&(W=4+(d-t)/Z),W=Math.min(W*60,360),W<0&&(W+=360);const s=(b+a)/2;return a===b?m=0:s<=.5?m=Z/(a+b):m=Z/(2-a-b),[W,m*100,s*100]},c.rgb.hsv=function(e){let d,t,n,b,a;const Z=e[0]/255,W=e[1]/255,m=e[2]/255,s=Math.max(Z,W,m),h=s-Math.min(Z,W,m),p=function(V){return(s-V)/6/h+1/2};return h===0?(b=0,a=0):(a=h/s,d=p(Z),t=p(W),n=p(m),Z===s?b=n-t:W===s?b=1/3+d-n:m===s&&(b=2/3+t-d),b<0?b+=1:b>1&&(b-=1)),[b*360,a*100,s*100]},c.rgb.hwb=function(e){const d=e[0],t=e[1];let n=e[2];const b=c.rgb.hsl(e)[0],a=1/255*Math.min(d,Math.min(t,n));return n=1-1/255*Math.max(d,Math.max(t,n)),[b,a*100,n*100]},c.rgb.cmyk=function(e){const d=e[0]/255,t=e[1]/255,n=e[2]/255,b=Math.min(1-d,1-t,1-n),a=(1-d-b)/(1-b)||0,Z=(1-t-b)/(1-b)||0,W=(1-n-b)/(1-b)||0;return[a*100,Z*100,W*100,b*100]};function G(e,d){return(e[0]-d[0])**2+(e[1]-d[1])**2+(e[2]-d[2])**2}return c.rgb.keyword=function(e){const d=l[e];if(d)return d;let t=1/0,n;for(const b of Object.keys(I)){const a=I[b],Z=G(e,a);Z.04045?((d+.055)/1.055)**2.4:d/12.92,t=t>.04045?((t+.055)/1.055)**2.4:t/12.92,n=n>.04045?((n+.055)/1.055)**2.4:n/12.92;const b=d*.4124+t*.3576+n*.1805,a=d*.2126+t*.7152+n*.0722,Z=d*.0193+t*.1192+n*.9505;return[b*100,a*100,Z*100]},c.rgb.lab=function(e){const d=c.rgb.xyz(e);let t=d[0],n=d[1],b=d[2];t/=95.047,n/=100,b/=108.883,t=t>.008856?t**(1/3):7.787*t+16/116,n=n>.008856?n**(1/3):7.787*n+16/116,b=b>.008856?b**(1/3):7.787*b+16/116;const a=116*n-16,Z=500*(t-n),W=200*(n-b);return[a,Z,W]},c.hsl.rgb=function(e){const d=e[0]/360,t=e[1]/100,n=e[2]/100;let b,a,Z;if(t===0)return Z=n*255,[Z,Z,Z];n<.5?b=n*(1+t):b=n+t-n*t;const W=2*n-b,m=[0,0,0];for(let s=0;s<3;s++)a=d+1/3*-(s-1),a<0&&a++,a>1&&a--,6*a<1?Z=W+(b-W)*6*a:2*a<1?Z=b:3*a<2?Z=W+(b-W)*(2/3-a)*6:Z=W,m[s]=Z*255;return m},c.hsl.hsv=function(e){const d=e[0];let t=e[1]/100,n=e[2]/100,b=t;const a=Math.max(n,.01);n*=2,t*=n<=1?n:2-n,b*=a<=1?a:2-a;const Z=(n+t)/2,W=n===0?2*b/(a+b):2*t/(n+t);return[d,W*100,Z*100]},c.hsv.rgb=function(e){const d=e[0]/60,t=e[1]/100;let n=e[2]/100;const b=Math.floor(d)%6,a=d-Math.floor(d),Z=255*n*(1-t),W=255*n*(1-t*a),m=255*n*(1-t*(1-a));switch(n*=255,b){case 0:return[n,m,Z];case 1:return[W,n,Z];case 2:return[Z,n,m];case 3:return[Z,W,n];case 4:return[m,Z,n];case 5:return[n,Z,W]}},c.hsv.hsl=function(e){const d=e[0],t=e[1]/100,n=e[2]/100,b=Math.max(n,.01);let a,Z;Z=(2-t)*n;const W=(2-t)*b;return a=t*b,a/=W<=1?W:2-W,a=a||0,Z/=2,[d,a*100,Z*100]},c.hwb.rgb=function(e){const d=e[0]/360;let t=e[1]/100,n=e[2]/100;const b=t+n;let a;b>1&&(t/=b,n/=b);const Z=Math.floor(6*d),W=1-n;a=6*d-Z,Z&1&&(a=1-a);const m=t+a*(W-t);let s,h,p;switch(Z){default:case 6:case 0:s=W,h=m,p=t;break;case 1:s=m,h=W,p=t;break;case 2:s=t,h=W,p=m;break;case 3:s=t,h=m,p=W;break;case 4:s=m,h=t,p=W;break;case 5:s=W,h=t,p=m;break}return[s*255,h*255,p*255]},c.cmyk.rgb=function(e){const d=e[0]/100,t=e[1]/100,n=e[2]/100,b=e[3]/100,a=1-Math.min(1,d*(1-b)+b),Z=1-Math.min(1,t*(1-b)+b),W=1-Math.min(1,n*(1-b)+b);return[a*255,Z*255,W*255]},c.xyz.rgb=function(e){const d=e[0]/100,t=e[1]/100,n=e[2]/100;let b,a,Z;return b=d*3.2406+t*-1.5372+n*-.4986,a=d*-.9689+t*1.8758+n*.0415,Z=d*.0557+t*-.204+n*1.057,b=b>.0031308?1.055*b**(1/2.4)-.055:b*12.92,a=a>.0031308?1.055*a**(1/2.4)-.055:a*12.92,Z=Z>.0031308?1.055*Z**(1/2.4)-.055:Z*12.92,b=Math.min(Math.max(0,b),1),a=Math.min(Math.max(0,a),1),Z=Math.min(Math.max(0,Z),1),[b*255,a*255,Z*255]},c.xyz.lab=function(e){let d=e[0],t=e[1],n=e[2];d/=95.047,t/=100,n/=108.883,d=d>.008856?d**(1/3):7.787*d+16/116,t=t>.008856?t**(1/3):7.787*t+16/116,n=n>.008856?n**(1/3):7.787*n+16/116;const b=116*t-16,a=500*(d-t),Z=200*(t-n);return[b,a,Z]},c.lab.xyz=function(e){const d=e[0],t=e[1],n=e[2];let b,a,Z;a=(d+16)/116,b=t/500+a,Z=a-n/200;const W=a**3,m=b**3,s=Z**3;return a=W>.008856?W:(a-16/116)/7.787,b=m>.008856?m:(b-16/116)/7.787,Z=s>.008856?s:(Z-16/116)/7.787,b*=95.047,a*=100,Z*=108.883,[b,a,Z]},c.lab.lch=function(e){const d=e[0],t=e[1],n=e[2];let b;b=Math.atan2(n,t)*360/2/Math.PI,b<0&&(b+=360);const Z=Math.sqrt(t*t+n*n);return[d,Z,b]},c.lch.lab=function(e){const d=e[0],t=e[1],b=e[2]/360*2*Math.PI,a=t*Math.cos(b),Z=t*Math.sin(b);return[d,a,Z]},c.rgb.ansi16=function(e,d=null){const[t,n,b]=e;let a=d===null?c.rgb.hsv(e)[2]:d;if(a=Math.round(a/50),a===0)return 30;let Z=30+(Math.round(b/255)<<2|Math.round(n/255)<<1|Math.round(t/255));return a===2&&(Z+=60),Z},c.hsv.ansi16=function(e){return c.rgb.ansi16(c.hsv.rgb(e),e[2])},c.rgb.ansi256=function(e){const d=e[0],t=e[1],n=e[2];return d===t&&t===n?d<8?16:d>248?231:Math.round((d-8)/247*24)+232:16+36*Math.round(d/255*5)+6*Math.round(t/255*5)+Math.round(n/255*5)},c.ansi16.rgb=function(e){let d=e%10;if(d===0||d===7)return e>50&&(d+=3.5),d=d/10.5*255,[d,d,d];const t=(~~(e>50)+1)*.5,n=(d&1)*t*255,b=(d>>1&1)*t*255,a=(d>>2&1)*t*255;return[n,b,a]},c.ansi256.rgb=function(e){if(e>=232){const a=(e-232)*10+8;return[a,a,a]}e-=16;let d;const t=Math.floor(e/36)/5*255,n=Math.floor((d=e%36)/6)/5*255,b=d%6/5*255;return[t,n,b]},c.rgb.hex=function(e){const t=(((Math.round(e[0])&255)<<16)+((Math.round(e[1])&255)<<8)+(Math.round(e[2])&255)).toString(16).toUpperCase();return"000000".substring(t.length)+t},c.hex.rgb=function(e){const d=e.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!d)return[0,0,0];let t=d[0];d[0].length===3&&(t=t.split("").map(W=>W+W).join(""));const n=parseInt(t,16),b=n>>16&255,a=n>>8&255,Z=n&255;return[b,a,Z]},c.rgb.hcg=function(e){const d=e[0]/255,t=e[1]/255,n=e[2]/255,b=Math.max(Math.max(d,t),n),a=Math.min(Math.min(d,t),n),Z=b-a;let W,m;return Z<1?W=a/(1-Z):W=0,Z<=0?m=0:b===d?m=(t-n)/Z%6:b===t?m=2+(n-d)/Z:m=4+(d-t)/Z,m/=6,m%=1,[m*360,Z*100,W*100]},c.hsl.hcg=function(e){const d=e[1]/100,t=e[2]/100,n=t<.5?2*d*t:2*d*(1-t);let b=0;return n<1&&(b=(t-.5*n)/(1-n)),[e[0],n*100,b*100]},c.hsv.hcg=function(e){const d=e[1]/100,t=e[2]/100,n=d*t;let b=0;return n<1&&(b=(t-n)/(1-n)),[e[0],n*100,b*100]},c.hcg.rgb=function(e){const d=e[0]/360,t=e[1]/100,n=e[2]/100;if(t===0)return[n*255,n*255,n*255];const b=[0,0,0],a=d%1*6,Z=a%1,W=1-Z;let m=0;switch(Math.floor(a)){case 0:b[0]=1,b[1]=Z,b[2]=0;break;case 1:b[0]=W,b[1]=1,b[2]=0;break;case 2:b[0]=0,b[1]=1,b[2]=Z;break;case 3:b[0]=0,b[1]=W,b[2]=1;break;case 4:b[0]=Z,b[1]=0,b[2]=1;break;default:b[0]=1,b[1]=0,b[2]=W}return m=(1-t)*n,[(t*b[0]+m)*255,(t*b[1]+m)*255,(t*b[2]+m)*255]},c.hcg.hsv=function(e){const d=e[1]/100,t=e[2]/100,n=d+t*(1-d);let b=0;return n>0&&(b=d/n),[e[0],b*100,n*100]},c.hcg.hsl=function(e){const d=e[1]/100,n=e[2]/100*(1-d)+.5*d;let b=0;return n>0&&n<.5?b=d/(2*n):n>=.5&&n<1&&(b=d/(2*(1-n))),[e[0],b*100,n*100]},c.hcg.hwb=function(e){const d=e[1]/100,t=e[2]/100,n=d+t*(1-d);return[e[0],(n-d)*100,(1-n)*100]},c.hwb.hcg=function(e){const d=e[1]/100,n=1-e[2]/100,b=n-d;let a=0;return b<1&&(a=(n-b)/(1-b)),[e[0],b*100,a*100]},c.apple.rgb=function(e){return[e[0]/65535*255,e[1]/65535*255,e[2]/65535*255]},c.rgb.apple=function(e){return[e[0]/255*65535,e[1]/255*65535,e[2]/255*65535]},c.gray.rgb=function(e){return[e[0]/100*255,e[0]/100*255,e[0]/100*255]},c.gray.hsl=function(e){return[0,0,e[0]]},c.gray.hsv=c.gray.hsl,c.gray.hwb=function(e){return[0,100,e[0]]},c.gray.cmyk=function(e){return[0,0,0,e[0]]},c.gray.lab=function(e){return[e[0],0,0]},c.gray.hex=function(e){const d=Math.round(e[0]/100*255)&255,n=((d<<16)+(d<<8)+d).toString(16).toUpperCase();return"000000".substring(n.length)+n},c.rgb.gray=function(e){return[(e[0]+e[1]+e[2])/3/255*100]},MH}var fH,HM;function KDI(){if(HM)return fH;HM=1;const I=E_();function l(){const d={},t=Object.keys(I);for(let n=t.length,b=0;b1&&(b=a),t(b))};return"conversion"in t&&(n.conversion=t.conversion),n}function d(t){const n=function(...b){const a=b[0];if(a==null)return a;a.length>1&&(b=a);const Z=t(b);if(typeof Z=="object")for(let W=Z.length,m=0;m{c[t]={},Object.defineProperty(c[t],"channels",{value:I[t].channels}),Object.defineProperty(c[t],"labels",{value:I[t].labels});const n=l(t);Object.keys(n).forEach(a=>{const Z=n[a];c[t][a]=d(Z),c[t][a].raw=e(Z)})}),KH=c,KH}Py.exports;(function(I){const l=(Z,W)=>(...m)=>`\x1B[${Z(...m)+W}m`,c=(Z,W)=>(...m)=>{const s=Z(...m);return`\x1B[${38+W};5;${s}m`},G=(Z,W)=>(...m)=>{const s=Z(...m);return`\x1B[${38+W};2;${s[0]};${s[1]};${s[2]}m`},e=Z=>Z,d=(Z,W,m)=>[Z,W,m],t=(Z,W,m)=>{Object.defineProperty(Z,W,{get:()=>{const s=m();return Object.defineProperty(Z,W,{value:s,enumerable:!0,configurable:!0}),s},enumerable:!0,configurable:!0})};let n;const b=(Z,W,m,s)=>{n===void 0&&(n=LDI());const h=s?10:0,p={};for(const[V,o]of Object.entries(n)){const F=V==="ansi16"?"ansi":V;V===W?p[F]=Z(m,h):typeof o=="object"&&(p[F]=Z(o[W],h))}return p};function a(){const Z=new Map,W={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};W.color.gray=W.color.blackBright,W.bgColor.bgGray=W.bgColor.bgBlackBright,W.color.grey=W.color.blackBright,W.bgColor.bgGrey=W.bgColor.bgBlackBright;for(const[m,s]of Object.entries(W)){for(const[h,p]of Object.entries(s))W[h]={open:`\x1B[${p[0]}m`,close:`\x1B[${p[1]}m`},s[h]=W[h],Z.set(p[0],p[1]);Object.defineProperty(W,m,{value:s,enumerable:!1})}return Object.defineProperty(W,"codes",{value:Z,enumerable:!1}),W.color.close="\x1B[39m",W.bgColor.close="\x1B[49m",t(W.color,"ansi",()=>b(l,"ansi16",e,!1)),t(W.color,"ansi256",()=>b(c,"ansi256",e,!1)),t(W.color,"ansi16m",()=>b(G,"rgb",d,!1)),t(W.bgColor,"ansi",()=>b(l,"ansi16",e,!0)),t(W.bgColor,"ansi256",()=>b(c,"ansi256",e,!0)),t(W.bgColor,"ansi16m",()=>b(G,"rgb",d,!0)),W}Object.defineProperty(I,"exports",{enumerable:!0,get:a})})(Py);var SDI=Py.exports;const TDI=Q_,jDI=MDI,wM=SDI,v_=["\x1B","›"],V2=I=>`${v_[0]}[${I}m`,EM=(I,l,c)=>{let G=[];I=[...I];for(let e of I){const d=e;e.includes(";")&&(e=e.split(";")[0][0]+"0");const t=wM.codes.get(Number.parseInt(e,10));if(t){const n=I.indexOf(t.toString());n===-1?G.push(V2(l?t:d)):I.splice(n,1)}else if(l){G.push(V2(0));break}else G.push(V2(d))}if(l&&(G=G.filter((e,d)=>G.indexOf(e)===d),c!==void 0)){const e=V2(wM.codes.get(Number.parseInt(c,10)));G=G.reduce((d,t)=>t===e?[t,...d]:[...d,t],[])}return G.join("")};var _y=(I,l,c)=>{const G=[...I],e=[];let d=typeof c=="number"?c:G.length,t=!1,n,b=0,a="";for(const[Z,W]of G.entries()){let m=!1;if(v_.includes(W)){const s=/\d[^m]*/.exec(I.slice(Z,Z+18));n=s&&s.length>0?s[0]:void 0,bl&&b<=d)a+=W;else if(b===l&&!t&&n!==void 0)a=EM(e);else if(b>=d){a+=EM(e,!0,n);break}}return a},dp={};Object.defineProperty(dp,"__esModule",{value:!0});dp.getBorderCharacters=void 0;const DDI=I=>{if(I==="honeywell")return{topBody:"═",topJoin:"╤",topLeft:"╔",topRight:"╗",bottomBody:"═",bottomJoin:"╧",bottomLeft:"╚",bottomRight:"╝",bodyLeft:"║",bodyRight:"║",bodyJoin:"│",headerJoin:"┬",joinBody:"─",joinLeft:"╟",joinRight:"╢",joinJoin:"┼",joinMiddleDown:"┬",joinMiddleUp:"┴",joinMiddleLeft:"┤",joinMiddleRight:"├"};if(I==="norc")return{topBody:"─",topJoin:"┬",topLeft:"┌",topRight:"┐",bottomBody:"─",bottomJoin:"┴",bottomLeft:"└",bottomRight:"┘",bodyLeft:"│",bodyRight:"│",bodyJoin:"│",headerJoin:"┬",joinBody:"─",joinLeft:"├",joinRight:"┤",joinJoin:"┼",joinMiddleDown:"┬",joinMiddleUp:"┴",joinMiddleLeft:"┤",joinMiddleRight:"├"};if(I==="ramac")return{topBody:"-",topJoin:"+",topLeft:"+",topRight:"+",bottomBody:"-",bottomJoin:"+",bottomLeft:"+",bottomRight:"+",bodyLeft:"|",bodyRight:"|",bodyJoin:"|",headerJoin:"+",joinBody:"-",joinLeft:"|",joinRight:"|",joinJoin:"|",joinMiddleDown:"+",joinMiddleUp:"+",joinMiddleLeft:"+",joinMiddleRight:"+"};if(I==="void")return{topBody:"",topJoin:"",topLeft:"",topRight:"",bottomBody:"",bottomJoin:"",bottomLeft:"",bottomRight:"",bodyLeft:"",bodyRight:"",bodyJoin:"",headerJoin:"",joinBody:"",joinLeft:"",joinRight:"",joinJoin:"",joinMiddleDown:"",joinMiddleUp:"",joinMiddleLeft:"",joinMiddleRight:""};throw new Error('Unknown border template "'+I+'".')};dp.getBorderCharacters=DDI;var qy=sc&&sc.__importDefault||function(I){return I&&I.__esModule?I:{default:I}};Object.defineProperty(Dl,"__esModule",{value:!0});Dl.isCellInRange=Dl.areCellEqual=Dl.calculateRangeCoordinate=Dl.flatten=Dl.extractTruncates=Dl.sumArray=Dl.sequence=Dl.distributeUnevenly=Dl.countSpaceSequence=Dl.groupBySizes=Dl.makeBorderConfig=Dl.splitAnsi=Dl.normalizeString=void 0;const ODI=qy(_y),PDI=qy(ep),_DI=qy(Dy),qDI=dp,$DI=I=>I.replace(/\r\n/g,` -`);Dl.normalizeString=$DI;const I8I=I=>{const l=(0,_DI.default)(I).split(` -`).map(PDI.default),c=[];let G=0;return l.forEach(e=>{c.push(e===0?"":(0,ODI.default)(I,G,G+e)),G+=e+1}),c};Dl.splitAnsi=I8I;const l8I=I=>({...(0,qDI.getBorderCharacters)("honeywell"),...I});Dl.makeBorderConfig=l8I;const c8I=(I,l)=>{let c=0;return l.map(G=>{const e=I.slice(c,c+G);return c+=G,e})};Dl.groupBySizes=c8I;const G8I=I=>{var l,c;return(c=(l=I.match(/\s+/g))===null||l===void 0?void 0:l.length)!==null&&c!==void 0?c:0};Dl.countSpaceSequence=G8I;const e8I=(I,l)=>Array.from({length:l}).fill(Math.floor(I/l)).map((G,e)=>G+(eArray.from({length:l-I+1},(c,G)=>G+I);Dl.sequence=d8I;const t8I=I=>I.reduce((l,c)=>l+c,0);Dl.sumArray=t8I;const n8I=I=>I.columns.map(({truncate:l})=>l);Dl.extractTruncates=n8I;const b8I=I=>[].concat(...I);Dl.flatten=b8I;const a8I=I=>{const{row:l,col:c,colSpan:G=1,rowSpan:e=1}=I;return{bottomRight:{col:c+G-1,row:l+e-1},topLeft:{col:c,row:l}}};Dl.calculateRangeCoordinate=a8I;const Z8I=(I,l)=>I.row===l.row&&I.col===l.col;Dl.areCellEqual=Z8I;const W8I=(I,{topLeft:l,bottomRight:c})=>l.row<=I.row&&I.row<=c.row&&l.col<=I.col&&I.col<=c.col;Dl.isCellInRange=W8I;var r8I=sc&&sc.__importDefault||function(I){return I&&I.__esModule?I:{default:I}};Object.defineProperty(Gp,"__esModule",{value:!0});Gp.alignString=void 0;const m8I=r8I(ep),vM=Dl,PE=(I,l)=>I+" ".repeat(l),s8I=(I,l)=>" ".repeat(l)+I,u8I=(I,l)=>" ".repeat(Math.floor(l/2))+I+" ".repeat(Math.ceil(l/2)),h8I=(I,l)=>{const c=(0,vM.countSpaceSequence)(I);if(c===0)return PE(I,l);const G=(0,vM.distributeUnevenly)(l,c);if(Math.max(...G)>3)return PE(I,l);let e=0;return I.replace(/\s+/g,d=>d+" ".repeat(G[e++]))},p8I=(I,l,c)=>{const G=(0,m8I.default)(I);if(G===l)return I;if(G>l)throw new Error("Subject parameter value width cannot be greater than the container width.");if(G===0)return" ".repeat(l);const e=l-G;return c==="left"?PE(I,e):c==="right"?s8I(I,e):c==="justify"?h8I(I,e):u8I(I,e)};Gp.alignString=p8I;Object.defineProperty(cp,"__esModule",{value:!0});cp.alignTableData=void 0;const o8I=Gp,V8I=(I,l)=>I.map((c,G)=>c.map((e,d)=>{var t;const{width:n,alignment:b}=l.columns[d];return((t=l.spanningCellManager)===null||t===void 0?void 0:t.getContainingRange({col:d,row:G},{mapped:!0}))?e:(0,o8I.alignString)(e,n,b)}));cp.alignTableData=V8I;var tp={},c1={},v0={},G1={},g_=sc&&sc.__importDefault||function(I){return I&&I.__esModule?I:{default:I}};Object.defineProperty(G1,"__esModule",{value:!0});G1.wrapString=void 0;const gM=g_(_y),i8I=g_(ep),F8I=(I,l)=>{let c=I;const G=[];do G.push((0,gM.default)(c,0,l)),c=(0,gM.default)(c,l).trim();while((0,i8I.default)(c));return G};G1.wrapString=F8I;var e1={},A_=sc&&sc.__importDefault||function(I){return I&&I.__esModule?I:{default:I}};Object.defineProperty(e1,"__esModule",{value:!0});e1.wrapWord=void 0;const N8I=A_(_y),R8I=A_(Dy),Y8I=(I,l)=>{let c=(0,R8I.default)(I);const G=[],e=new RegExp("(^.{1,"+String(Math.max(l,1))+"}(\\s+|$))|(^.{1,"+String(Math.max(l-1,1))+"}(\\\\|/|_|\\.|,|;|-))");do{let d;const t=e.exec(c);if(t){d=t[0],c=c.slice(d.length);const n=d.trim().length,b=d.length-n;G.push([n,b])}else d=c.slice(0,l),c=c.slice(l),G.push([d.length,0])}while(c.length);return G},X8I=(I,l)=>{const c=[];let G=0;return Y8I(I,l).forEach(([e,d])=>{c.push((0,N8I.default)(I,G,G+e)),G+=e+d}),c};e1.wrapWord=X8I;Object.defineProperty(v0,"__esModule",{value:!0});v0.wrapCell=void 0;const H8I=Dl,Q8I=G1,w8I=e1,E8I=(I,l,c)=>{const G=(0,H8I.splitAnsi)(I);for(let e=0;e(0,v8I.wrapCell)(I,l,c).length;c1.calculateCellHeight=g8I;Object.defineProperty(tp,"__esModule",{value:!0});tp.calculateRowHeights=void 0;const A8I=c1,AM=Dl,y8I=(I,l)=>{const c=[];for(const[G,e]of I.entries()){let d=1;e.forEach((t,n)=>{var b;const a=(b=l.spanningCellManager)===null||b===void 0?void 0:b.getContainingRange({col:n,row:G});if(!a){const s=(0,A8I.calculateCellHeight)(t,l.columns[n].width,l.columns[n].wrapWord);d=Math.max(d,s);return}const{topLeft:Z,bottomRight:W,height:m}=a;if(G===W.row){const s=(0,AM.sumArray)(c.slice(Z.row)),h=W.row-Z.row,p=(0,AM.sequence)(Z.row+1,W.row).filter(o=>{var F;return!(!((F=l.drawHorizontalLine)===null||F===void 0)&&F.call(l,o,I.length))}).length,V=m-s-h+p;d=Math.max(d,V)}}),c.push(d)}return c};tp.calculateRowHeights=y8I;var $y={},g0={};Object.defineProperty(g0,"__esModule",{value:!0});g0.drawContent=void 0;const J8I=I=>{const{contents:l,separatorGetter:c,drawSeparator:G,spanningCellManager:e,rowIndex:d,elementType:t}=I,n=l.length,b=[];return G(0,n)&&b.push(c(0,n)),l.forEach((a,Z)=>{if((!t||t==="border"||t==="row")&&b.push(a),t==="cell"&&d===void 0&&b.push(a),t==="cell"&&d!==void 0){const W=e==null?void 0:e.getContainingRange({col:Z,row:d});(!W||Z===W.topLeft.col)&&b.push(a)}if(Z+1{const{separator:W,horizontalBorderIndex:m,spanningCellManager:s}=Z;return a.map((h,p)=>{const V=W.body.repeat(h);if(m===void 0)return V;const o=s==null?void 0:s.getContainingRange({col:p,row:m});if(!o)return V;const{topLeft:F}=o;return m===F.row?V:p!==F.col?"":o.extractBorderContent(m)})};I.drawBorderSegments=c;const G=a=>{const{separator:Z,spanningCellManager:W,horizontalBorderIndex:m,rowCount:s}=a;return(h,p)=>{const V=W==null?void 0:W.inSameRange;if(m!==void 0&&V){const o={col:h,row:m-1},F={col:h-1,row:m},X={col:h-1,row:m-1},H={col:h,row:m},Y=[[X,o],[o,H],[H,F],[F,X]];if(h===0)return V(H,o)&&Z.bodyJoinOuter?Z.bodyJoinOuter:Z.left;if(h===p)return V(X,F)&&Z.bodyJoinOuter?Z.bodyJoinOuter:Z.right;if(m===0)return V(H,F)?Z.body:Z.join;if(m===s)return V(o,X)?Z.body:Z.join;const R=Y.map(B=>V(...B)).filter(Boolean).length;if(R===0)return Z.join;if(R===4)return"";if(R===2)return V(...Y[1])&&V(...Y[3])&&Z.bodyJoinInner?Z.bodyJoinInner:Z.body;if(R===1){if(!Z.joinRight||!Z.joinLeft||!Z.joinUp||!Z.joinDown)throw new Error(`Can not get border separator for position [${m}, ${h}]`);return V(...Y[0])?Z.joinDown:V(...Y[1])?Z.joinLeft:V(...Y[2])?Z.joinUp:Z.joinRight}throw new Error("Invalid case")}return h===0?Z.left:h===p?Z.right:Z.join}};I.createSeparatorGetter=G;const e=(a,Z)=>{const W=(0,I.drawBorderSegments)(a,Z),{drawVerticalLine:m,horizontalBorderIndex:s,spanningCellManager:h}=Z;return(0,l.drawContent)({contents:W,drawSeparator:m,elementType:"border",rowIndex:s,separatorGetter:(0,I.createSeparatorGetter)(Z),spanningCellManager:h})+` -`};I.drawBorder=e;const d=(a,Z)=>{const{border:W}=Z,m=(0,I.drawBorder)(a,{...Z,separator:{body:W.topBody,join:W.topJoin,left:W.topLeft,right:W.topRight}});return m===` -`?"":m};I.drawBorderTop=d;const t=(a,Z)=>{const{border:W}=Z;return(0,I.drawBorder)(a,{...Z,separator:{body:W.joinBody,bodyJoinInner:W.bodyJoin,bodyJoinOuter:W.bodyLeft,join:W.joinJoin,joinDown:W.joinMiddleDown,joinLeft:W.joinMiddleLeft,joinRight:W.joinMiddleRight,joinUp:W.joinMiddleUp,left:W.joinLeft,right:W.joinRight}})};I.drawBorderJoin=t;const n=(a,Z)=>{const{border:W}=Z;return(0,I.drawBorder)(a,{...Z,separator:{body:W.bottomBody,join:W.bottomJoin,left:W.bottomLeft,right:W.bottomRight}})};I.drawBorderBottom=n;const b=(a,Z)=>(W,m)=>{const s={...Z,horizontalBorderIndex:W};return W===0?(0,I.drawBorderTop)(a,s):W===m?(0,I.drawBorderBottom)(a,s):(0,I.drawBorderJoin)(a,s)};I.createTableBorderGetter=b})($y);var np={};Object.defineProperty(np,"__esModule",{value:!0});np.drawRow=void 0;const B8I=g0,k8I=(I,l)=>{const{border:c,drawVerticalLine:G,rowIndex:e,spanningCellManager:d}=l;return(0,B8I.drawContent)({contents:I,drawSeparator:G,elementType:"cell",rowIndex:e,separatorGetter:(t,n)=>t===0?c.bodyLeft:t===n?c.bodyRight:c.bodyJoin,spanningCellManager:d})+` -`};np.drawRow=k8I;var d1={},bp={},y_={},I3={},x8I=function I(l,c){if(l===c)return!0;if(l&&c&&typeof l=="object"&&typeof c=="object"){if(l.constructor!==c.constructor)return!1;var G,e,d;if(Array.isArray(l)){if(G=l.length,G!=c.length)return!1;for(e=G;e--!==0;)if(!I(l[e],c[e]))return!1;return!0}if(l.constructor===RegExp)return l.source===c.source&&l.flags===c.flags;if(l.valueOf!==Object.prototype.valueOf)return l.valueOf()===c.valueOf();if(l.toString!==Object.prototype.toString)return l.toString()===c.toString();if(d=Object.keys(l),G=d.length,G!==Object.keys(c).length)return!1;for(e=G;e--!==0;)if(!Object.prototype.hasOwnProperty.call(c,d[e]))return!1;for(e=G;e--!==0;){var t=d[e];if(!I(l[t],c[t]))return!1}return!0}return l!==l&&c!==c};Object.defineProperty(I3,"__esModule",{value:!0});const J_=x8I;J_.code='require("ajv/dist/runtime/equal").default';I3.default=J_;(function(I){I["config.json"]=V;const l={$id:"config.json",$schema:"http://json-schema.org/draft-07/schema#",type:"object",properties:{border:{$ref:"shared.json#/definitions/borders"},header:{type:"object",properties:{content:{type:"string"},alignment:{$ref:"shared.json#/definitions/alignment"},wrapWord:{type:"boolean"},truncate:{type:"integer"},paddingLeft:{type:"integer"},paddingRight:{type:"integer"}},required:["content"],additionalProperties:!1},columns:{$ref:"shared.json#/definitions/columns"},columnDefault:{$ref:"shared.json#/definitions/column"},drawVerticalLine:{typeof:"function"},drawHorizontalLine:{typeof:"function"},singleLine:{typeof:"boolean"},spanningCells:{type:"array",items:{type:"object",properties:{col:{type:"integer",minimum:0},row:{type:"integer",minimum:0},colSpan:{type:"integer",minimum:1},rowSpan:{type:"integer",minimum:1},alignment:{$ref:"shared.json#/definitions/alignment"},verticalAlignment:{$ref:"shared.json#/definitions/verticalAlignment"},wrapWord:{type:"boolean"},truncate:{type:"integer"},paddingLeft:{type:"integer"},paddingRight:{type:"integer"}},required:["row","col"],additionalProperties:!1}}},additionalProperties:!1},c={type:"object",properties:{topBody:{$ref:"#/definitions/border"},topJoin:{$ref:"#/definitions/border"},topLeft:{$ref:"#/definitions/border"},topRight:{$ref:"#/definitions/border"},bottomBody:{$ref:"#/definitions/border"},bottomJoin:{$ref:"#/definitions/border"},bottomLeft:{$ref:"#/definitions/border"},bottomRight:{$ref:"#/definitions/border"},bodyLeft:{$ref:"#/definitions/border"},bodyRight:{$ref:"#/definitions/border"},bodyJoin:{$ref:"#/definitions/border"},headerJoin:{$ref:"#/definitions/border"},joinBody:{$ref:"#/definitions/border"},joinLeft:{$ref:"#/definitions/border"},joinRight:{$ref:"#/definitions/border"},joinJoin:{$ref:"#/definitions/border"},joinMiddleUp:{$ref:"#/definitions/border"},joinMiddleDown:{$ref:"#/definitions/border"},joinMiddleLeft:{$ref:"#/definitions/border"},joinMiddleRight:{$ref:"#/definitions/border"}},additionalProperties:!1},G=Object.prototype.hasOwnProperty;function e(Y,{instancePath:R="",parentData:B,parentDataProperty:C,rootData:k=Y}={}){let N=null,J=0;if(typeof Y!="string"){const A={instancePath:R,schemaPath:"#/type",keyword:"type",params:{type:"string"},message:"must be string"};N===null?N=[A]:N.push(A),J++}return e.errors=N,J===0}function d(Y,{instancePath:R="",parentData:B,parentDataProperty:C,rootData:k=Y}={}){let N=null,J=0;if(Y&&typeof Y=="object"&&!Array.isArray(Y)){for(const A in Y)if(!G.call(c.properties,A)){const M={instancePath:R,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty:A},message:"must NOT have additional properties"};N===null?N=[M]:N.push(M),J++}Y.topBody!==void 0&&(e(Y.topBody,{instancePath:R+"/topBody",parentData:Y,parentDataProperty:"topBody",rootData:k})||(N=N===null?e.errors:N.concat(e.errors),J=N.length)),Y.topJoin!==void 0&&(e(Y.topJoin,{instancePath:R+"/topJoin",parentData:Y,parentDataProperty:"topJoin",rootData:k})||(N=N===null?e.errors:N.concat(e.errors),J=N.length)),Y.topLeft!==void 0&&(e(Y.topLeft,{instancePath:R+"/topLeft",parentData:Y,parentDataProperty:"topLeft",rootData:k})||(N=N===null?e.errors:N.concat(e.errors),J=N.length)),Y.topRight!==void 0&&(e(Y.topRight,{instancePath:R+"/topRight",parentData:Y,parentDataProperty:"topRight",rootData:k})||(N=N===null?e.errors:N.concat(e.errors),J=N.length)),Y.bottomBody!==void 0&&(e(Y.bottomBody,{instancePath:R+"/bottomBody",parentData:Y,parentDataProperty:"bottomBody",rootData:k})||(N=N===null?e.errors:N.concat(e.errors),J=N.length)),Y.bottomJoin!==void 0&&(e(Y.bottomJoin,{instancePath:R+"/bottomJoin",parentData:Y,parentDataProperty:"bottomJoin",rootData:k})||(N=N===null?e.errors:N.concat(e.errors),J=N.length)),Y.bottomLeft!==void 0&&(e(Y.bottomLeft,{instancePath:R+"/bottomLeft",parentData:Y,parentDataProperty:"bottomLeft",rootData:k})||(N=N===null?e.errors:N.concat(e.errors),J=N.length)),Y.bottomRight!==void 0&&(e(Y.bottomRight,{instancePath:R+"/bottomRight",parentData:Y,parentDataProperty:"bottomRight",rootData:k})||(N=N===null?e.errors:N.concat(e.errors),J=N.length)),Y.bodyLeft!==void 0&&(e(Y.bodyLeft,{instancePath:R+"/bodyLeft",parentData:Y,parentDataProperty:"bodyLeft",rootData:k})||(N=N===null?e.errors:N.concat(e.errors),J=N.length)),Y.bodyRight!==void 0&&(e(Y.bodyRight,{instancePath:R+"/bodyRight",parentData:Y,parentDataProperty:"bodyRight",rootData:k})||(N=N===null?e.errors:N.concat(e.errors),J=N.length)),Y.bodyJoin!==void 0&&(e(Y.bodyJoin,{instancePath:R+"/bodyJoin",parentData:Y,parentDataProperty:"bodyJoin",rootData:k})||(N=N===null?e.errors:N.concat(e.errors),J=N.length)),Y.headerJoin!==void 0&&(e(Y.headerJoin,{instancePath:R+"/headerJoin",parentData:Y,parentDataProperty:"headerJoin",rootData:k})||(N=N===null?e.errors:N.concat(e.errors),J=N.length)),Y.joinBody!==void 0&&(e(Y.joinBody,{instancePath:R+"/joinBody",parentData:Y,parentDataProperty:"joinBody",rootData:k})||(N=N===null?e.errors:N.concat(e.errors),J=N.length)),Y.joinLeft!==void 0&&(e(Y.joinLeft,{instancePath:R+"/joinLeft",parentData:Y,parentDataProperty:"joinLeft",rootData:k})||(N=N===null?e.errors:N.concat(e.errors),J=N.length)),Y.joinRight!==void 0&&(e(Y.joinRight,{instancePath:R+"/joinRight",parentData:Y,parentDataProperty:"joinRight",rootData:k})||(N=N===null?e.errors:N.concat(e.errors),J=N.length)),Y.joinJoin!==void 0&&(e(Y.joinJoin,{instancePath:R+"/joinJoin",parentData:Y,parentDataProperty:"joinJoin",rootData:k})||(N=N===null?e.errors:N.concat(e.errors),J=N.length)),Y.joinMiddleUp!==void 0&&(e(Y.joinMiddleUp,{instancePath:R+"/joinMiddleUp",parentData:Y,parentDataProperty:"joinMiddleUp",rootData:k})||(N=N===null?e.errors:N.concat(e.errors),J=N.length)),Y.joinMiddleDown!==void 0&&(e(Y.joinMiddleDown,{instancePath:R+"/joinMiddleDown",parentData:Y,parentDataProperty:"joinMiddleDown",rootData:k})||(N=N===null?e.errors:N.concat(e.errors),J=N.length)),Y.joinMiddleLeft!==void 0&&(e(Y.joinMiddleLeft,{instancePath:R+"/joinMiddleLeft",parentData:Y,parentDataProperty:"joinMiddleLeft",rootData:k})||(N=N===null?e.errors:N.concat(e.errors),J=N.length)),Y.joinMiddleRight!==void 0&&(e(Y.joinMiddleRight,{instancePath:R+"/joinMiddleRight",parentData:Y,parentDataProperty:"joinMiddleRight",rootData:k})||(N=N===null?e.errors:N.concat(e.errors),J=N.length))}else{const A={instancePath:R,schemaPath:"#/type",keyword:"type",params:{type:"object"},message:"must be object"};N===null?N=[A]:N.push(A),J++}return d.errors=N,J===0}const t={type:"string",enum:["left","right","center","justify"]};I3.default;function n(Y,{instancePath:R="",parentData:B,parentDataProperty:C,rootData:k=Y}={}){let N=null,J=0;if(typeof Y!="string"){const A={instancePath:R,schemaPath:"#/type",keyword:"type",params:{type:"string"},message:"must be string"};N===null?N=[A]:N.push(A),J++}if(!(Y==="left"||Y==="right"||Y==="center"||Y==="justify")){const A={instancePath:R,schemaPath:"#/enum",keyword:"enum",params:{allowedValues:t.enum},message:"must be equal to one of the allowed values"};N===null?N=[A]:N.push(A),J++}return n.errors=N,J===0}const b=new RegExp("^[0-9]+$","u");function a(Y,{instancePath:R="",parentData:B,parentDataProperty:C,rootData:k=Y}={}){let N=null,J=0;if(typeof Y!="string"){const A={instancePath:R,schemaPath:"#/type",keyword:"type",params:{type:"string"},message:"must be string"};N===null?N=[A]:N.push(A),J++}if(!(Y==="left"||Y==="right"||Y==="center"||Y==="justify")){const A={instancePath:R,schemaPath:"#/enum",keyword:"enum",params:{allowedValues:t.enum},message:"must be equal to one of the allowed values"};N===null?N=[A]:N.push(A),J++}return a.errors=N,J===0}const Z={type:"string",enum:["top","middle","bottom"]};function W(Y,{instancePath:R="",parentData:B,parentDataProperty:C,rootData:k=Y}={}){let N=null,J=0;if(typeof Y!="string"){const A={instancePath:R,schemaPath:"#/type",keyword:"type",params:{type:"string"},message:"must be string"};N===null?N=[A]:N.push(A),J++}if(!(Y==="top"||Y==="middle"||Y==="bottom")){const A={instancePath:R,schemaPath:"#/enum",keyword:"enum",params:{allowedValues:Z.enum},message:"must be equal to one of the allowed values"};N===null?N=[A]:N.push(A),J++}return W.errors=N,J===0}function m(Y,{instancePath:R="",parentData:B,parentDataProperty:C,rootData:k=Y}={}){let N=null,J=0;if(Y&&typeof Y=="object"&&!Array.isArray(Y)){for(const A in Y)if(!(A==="alignment"||A==="verticalAlignment"||A==="width"||A==="wrapWord"||A==="truncate"||A==="paddingLeft"||A==="paddingRight")){const M={instancePath:R,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty:A},message:"must NOT have additional properties"};N===null?N=[M]:N.push(M),J++}if(Y.alignment!==void 0&&(a(Y.alignment,{instancePath:R+"/alignment",parentData:Y,parentDataProperty:"alignment",rootData:k})||(N=N===null?a.errors:N.concat(a.errors),J=N.length)),Y.verticalAlignment!==void 0&&(W(Y.verticalAlignment,{instancePath:R+"/verticalAlignment",parentData:Y,parentDataProperty:"verticalAlignment",rootData:k})||(N=N===null?W.errors:N.concat(W.errors),J=N.length)),Y.width!==void 0){let A=Y.width;if(!(typeof A=="number"&&!(A%1)&&!isNaN(A)&&isFinite(A))){const M={instancePath:R+"/width",schemaPath:"#/properties/width/type",keyword:"type",params:{type:"integer"},message:"must be integer"};N===null?N=[M]:N.push(M),J++}if(typeof A=="number"&&isFinite(A)&&(A<1||isNaN(A))){const M={instancePath:R+"/width",schemaPath:"#/properties/width/minimum",keyword:"minimum",params:{comparison:">=",limit:1},message:"must be >= 1"};N===null?N=[M]:N.push(M),J++}}if(Y.wrapWord!==void 0&&typeof Y.wrapWord!="boolean"){const A={instancePath:R+"/wrapWord",schemaPath:"#/properties/wrapWord/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"};N===null?N=[A]:N.push(A),J++}if(Y.truncate!==void 0){let A=Y.truncate;if(!(typeof A=="number"&&!(A%1)&&!isNaN(A)&&isFinite(A))){const M={instancePath:R+"/truncate",schemaPath:"#/properties/truncate/type",keyword:"type",params:{type:"integer"},message:"must be integer"};N===null?N=[M]:N.push(M),J++}}if(Y.paddingLeft!==void 0){let A=Y.paddingLeft;if(!(typeof A=="number"&&!(A%1)&&!isNaN(A)&&isFinite(A))){const M={instancePath:R+"/paddingLeft",schemaPath:"#/properties/paddingLeft/type",keyword:"type",params:{type:"integer"},message:"must be integer"};N===null?N=[M]:N.push(M),J++}}if(Y.paddingRight!==void 0){let A=Y.paddingRight;if(!(typeof A=="number"&&!(A%1)&&!isNaN(A)&&isFinite(A))){const M={instancePath:R+"/paddingRight",schemaPath:"#/properties/paddingRight/type",keyword:"type",params:{type:"integer"},message:"must be integer"};N===null?N=[M]:N.push(M),J++}}}else{const A={instancePath:R,schemaPath:"#/type",keyword:"type",params:{type:"object"},message:"must be object"};N===null?N=[A]:N.push(A),J++}return m.errors=N,J===0}function s(Y,{instancePath:R="",parentData:B,parentDataProperty:C,rootData:k=Y}={}){let N=null,J=0;const A=J;let M=!1,D=null;const O=J;if(Y&&typeof Y=="object"&&!Array.isArray(Y)){for(const S in Y)if(!b.test(S)){const tI={instancePath:R,schemaPath:"#/oneOf/0/additionalProperties",keyword:"additionalProperties",params:{additionalProperty:S},message:"must NOT have additional properties"};N===null?N=[tI]:N.push(tI),J++}for(const S in Y)b.test(S)&&(m(Y[S],{instancePath:R+"/"+S.replace(/~/g,"~0").replace(/\//g,"~1"),parentData:Y,parentDataProperty:S,rootData:k})||(N=N===null?m.errors:N.concat(m.errors),J=N.length))}else{const S={instancePath:R,schemaPath:"#/oneOf/0/type",keyword:"type",params:{type:"object"},message:"must be object"};N===null?N=[S]:N.push(S),J++}var j=O===J;j&&(M=!0,D=0);const $=J;if(Array.isArray(Y)){const S=Y.length;for(let tI=0;tI=",limit:1},message:"must be >= 1"};N===null?N=[M]:N.push(M),J++}}if(Y.wrapWord!==void 0&&typeof Y.wrapWord!="boolean"){const A={instancePath:R+"/wrapWord",schemaPath:"#/properties/wrapWord/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"};N===null?N=[A]:N.push(A),J++}if(Y.truncate!==void 0){let A=Y.truncate;if(!(typeof A=="number"&&!(A%1)&&!isNaN(A)&&isFinite(A))){const M={instancePath:R+"/truncate",schemaPath:"#/properties/truncate/type",keyword:"type",params:{type:"integer"},message:"must be integer"};N===null?N=[M]:N.push(M),J++}}if(Y.paddingLeft!==void 0){let A=Y.paddingLeft;if(!(typeof A=="number"&&!(A%1)&&!isNaN(A)&&isFinite(A))){const M={instancePath:R+"/paddingLeft",schemaPath:"#/properties/paddingLeft/type",keyword:"type",params:{type:"integer"},message:"must be integer"};N===null?N=[M]:N.push(M),J++}}if(Y.paddingRight!==void 0){let A=Y.paddingRight;if(!(typeof A=="number"&&!(A%1)&&!isNaN(A)&&isFinite(A))){const M={instancePath:R+"/paddingRight",schemaPath:"#/properties/paddingRight/type",keyword:"type",params:{type:"integer"},message:"must be integer"};N===null?N=[M]:N.push(M),J++}}}else{const A={instancePath:R,schemaPath:"#/type",keyword:"type",params:{type:"object"},message:"must be object"};N===null?N=[A]:N.push(A),J++}return h.errors=N,J===0}function p(Y,{instancePath:R="",parentData:B,parentDataProperty:C,rootData:k=Y}={}){let N=null,J=0;if(typeof Y!="string"){const A={instancePath:R,schemaPath:"#/type",keyword:"type",params:{type:"string"},message:"must be string"};N===null?N=[A]:N.push(A),J++}if(!(Y==="top"||Y==="middle"||Y==="bottom")){const A={instancePath:R,schemaPath:"#/enum",keyword:"enum",params:{allowedValues:Z.enum},message:"must be equal to one of the allowed values"};N===null?N=[A]:N.push(A),J++}return p.errors=N,J===0}function V(Y,{instancePath:R="",parentData:B,parentDataProperty:C,rootData:k=Y}={}){let N=null,J=0;if(Y&&typeof Y=="object"&&!Array.isArray(Y)){for(const A in Y)if(!(A==="border"||A==="header"||A==="columns"||A==="columnDefault"||A==="drawVerticalLine"||A==="drawHorizontalLine"||A==="singleLine"||A==="spanningCells")){const M={instancePath:R,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty:A},message:"must NOT have additional properties"};N===null?N=[M]:N.push(M),J++}if(Y.border!==void 0&&(d(Y.border,{instancePath:R+"/border",parentData:Y,parentDataProperty:"border",rootData:k})||(N=N===null?d.errors:N.concat(d.errors),J=N.length)),Y.header!==void 0){let A=Y.header;if(A&&typeof A=="object"&&!Array.isArray(A)){if(A.content===void 0){const M={instancePath:R+"/header",schemaPath:"#/properties/header/required",keyword:"required",params:{missingProperty:"content"},message:"must have required property 'content'"};N===null?N=[M]:N.push(M),J++}for(const M in A)if(!(M==="content"||M==="alignment"||M==="wrapWord"||M==="truncate"||M==="paddingLeft"||M==="paddingRight")){const D={instancePath:R+"/header",schemaPath:"#/properties/header/additionalProperties",keyword:"additionalProperties",params:{additionalProperty:M},message:"must NOT have additional properties"};N===null?N=[D]:N.push(D),J++}if(A.content!==void 0&&typeof A.content!="string"){const M={instancePath:R+"/header/content",schemaPath:"#/properties/header/properties/content/type",keyword:"type",params:{type:"string"},message:"must be string"};N===null?N=[M]:N.push(M),J++}if(A.alignment!==void 0&&(n(A.alignment,{instancePath:R+"/header/alignment",parentData:A,parentDataProperty:"alignment",rootData:k})||(N=N===null?n.errors:N.concat(n.errors),J=N.length)),A.wrapWord!==void 0&&typeof A.wrapWord!="boolean"){const M={instancePath:R+"/header/wrapWord",schemaPath:"#/properties/header/properties/wrapWord/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"};N===null?N=[M]:N.push(M),J++}if(A.truncate!==void 0){let M=A.truncate;if(!(typeof M=="number"&&!(M%1)&&!isNaN(M)&&isFinite(M))){const D={instancePath:R+"/header/truncate",schemaPath:"#/properties/header/properties/truncate/type",keyword:"type",params:{type:"integer"},message:"must be integer"};N===null?N=[D]:N.push(D),J++}}if(A.paddingLeft!==void 0){let M=A.paddingLeft;if(!(typeof M=="number"&&!(M%1)&&!isNaN(M)&&isFinite(M))){const D={instancePath:R+"/header/paddingLeft",schemaPath:"#/properties/header/properties/paddingLeft/type",keyword:"type",params:{type:"integer"},message:"must be integer"};N===null?N=[D]:N.push(D),J++}}if(A.paddingRight!==void 0){let M=A.paddingRight;if(!(typeof M=="number"&&!(M%1)&&!isNaN(M)&&isFinite(M))){const D={instancePath:R+"/header/paddingRight",schemaPath:"#/properties/header/properties/paddingRight/type",keyword:"type",params:{type:"integer"},message:"must be integer"};N===null?N=[D]:N.push(D),J++}}}else{const M={instancePath:R+"/header",schemaPath:"#/properties/header/type",keyword:"type",params:{type:"object"},message:"must be object"};N===null?N=[M]:N.push(M),J++}}if(Y.columns!==void 0&&(s(Y.columns,{instancePath:R+"/columns",parentData:Y,parentDataProperty:"columns",rootData:k})||(N=N===null?s.errors:N.concat(s.errors),J=N.length)),Y.columnDefault!==void 0&&(h(Y.columnDefault,{instancePath:R+"/columnDefault",parentData:Y,parentDataProperty:"columnDefault",rootData:k})||(N=N===null?h.errors:N.concat(h.errors),J=N.length)),Y.drawVerticalLine!==void 0&&typeof Y.drawVerticalLine!="function"){const A={instancePath:R+"/drawVerticalLine",schemaPath:"#/properties/drawVerticalLine/typeof",keyword:"typeof",params:{},message:'must pass "typeof" keyword validation'};N===null?N=[A]:N.push(A),J++}if(Y.drawHorizontalLine!==void 0&&typeof Y.drawHorizontalLine!="function"){const A={instancePath:R+"/drawHorizontalLine",schemaPath:"#/properties/drawHorizontalLine/typeof",keyword:"typeof",params:{},message:'must pass "typeof" keyword validation'};N===null?N=[A]:N.push(A),J++}if(Y.singleLine!==void 0&&typeof Y.singleLine!="boolean"){const A={instancePath:R+"/singleLine",schemaPath:"#/properties/singleLine/typeof",keyword:"typeof",params:{},message:'must pass "typeof" keyword validation'};N===null?N=[A]:N.push(A),J++}if(Y.spanningCells!==void 0){let A=Y.spanningCells;if(Array.isArray(A)){const M=A.length;for(let D=0;D=",limit:0},message:"must be >= 0"};N===null?N=[j]:N.push(j),J++}}if(O.row!==void 0){let $=O.row;if(!(typeof $=="number"&&!($%1)&&!isNaN($)&&isFinite($))){const j={instancePath:R+"/spanningCells/"+D+"/row",schemaPath:"#/properties/spanningCells/items/properties/row/type",keyword:"type",params:{type:"integer"},message:"must be integer"};N===null?N=[j]:N.push(j),J++}if(typeof $=="number"&&isFinite($)&&($<0||isNaN($))){const j={instancePath:R+"/spanningCells/"+D+"/row",schemaPath:"#/properties/spanningCells/items/properties/row/minimum",keyword:"minimum",params:{comparison:">=",limit:0},message:"must be >= 0"};N===null?N=[j]:N.push(j),J++}}if(O.colSpan!==void 0){let $=O.colSpan;if(!(typeof $=="number"&&!($%1)&&!isNaN($)&&isFinite($))){const j={instancePath:R+"/spanningCells/"+D+"/colSpan",schemaPath:"#/properties/spanningCells/items/properties/colSpan/type",keyword:"type",params:{type:"integer"},message:"must be integer"};N===null?N=[j]:N.push(j),J++}if(typeof $=="number"&&isFinite($)&&($<1||isNaN($))){const j={instancePath:R+"/spanningCells/"+D+"/colSpan",schemaPath:"#/properties/spanningCells/items/properties/colSpan/minimum",keyword:"minimum",params:{comparison:">=",limit:1},message:"must be >= 1"};N===null?N=[j]:N.push(j),J++}}if(O.rowSpan!==void 0){let $=O.rowSpan;if(!(typeof $=="number"&&!($%1)&&!isNaN($)&&isFinite($))){const j={instancePath:R+"/spanningCells/"+D+"/rowSpan",schemaPath:"#/properties/spanningCells/items/properties/rowSpan/type",keyword:"type",params:{type:"integer"},message:"must be integer"};N===null?N=[j]:N.push(j),J++}if(typeof $=="number"&&isFinite($)&&($<1||isNaN($))){const j={instancePath:R+"/spanningCells/"+D+"/rowSpan",schemaPath:"#/properties/spanningCells/items/properties/rowSpan/minimum",keyword:"minimum",params:{comparison:">=",limit:1},message:"must be >= 1"};N===null?N=[j]:N.push(j),J++}}if(O.alignment!==void 0&&(n(O.alignment,{instancePath:R+"/spanningCells/"+D+"/alignment",parentData:O,parentDataProperty:"alignment",rootData:k})||(N=N===null?n.errors:N.concat(n.errors),J=N.length)),O.verticalAlignment!==void 0&&(p(O.verticalAlignment,{instancePath:R+"/spanningCells/"+D+"/verticalAlignment",parentData:O,parentDataProperty:"verticalAlignment",rootData:k})||(N=N===null?p.errors:N.concat(p.errors),J=N.length)),O.wrapWord!==void 0&&typeof O.wrapWord!="boolean"){const $={instancePath:R+"/spanningCells/"+D+"/wrapWord",schemaPath:"#/properties/spanningCells/items/properties/wrapWord/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"};N===null?N=[$]:N.push($),J++}if(O.truncate!==void 0){let $=O.truncate;if(!(typeof $=="number"&&!($%1)&&!isNaN($)&&isFinite($))){const j={instancePath:R+"/spanningCells/"+D+"/truncate",schemaPath:"#/properties/spanningCells/items/properties/truncate/type",keyword:"type",params:{type:"integer"},message:"must be integer"};N===null?N=[j]:N.push(j),J++}}if(O.paddingLeft!==void 0){let $=O.paddingLeft;if(!(typeof $=="number"&&!($%1)&&!isNaN($)&&isFinite($))){const j={instancePath:R+"/spanningCells/"+D+"/paddingLeft",schemaPath:"#/properties/spanningCells/items/properties/paddingLeft/type",keyword:"type",params:{type:"integer"},message:"must be integer"};N===null?N=[j]:N.push(j),J++}}if(O.paddingRight!==void 0){let $=O.paddingRight;if(!(typeof $=="number"&&!($%1)&&!isNaN($)&&isFinite($))){const j={instancePath:R+"/spanningCells/"+D+"/paddingRight",schemaPath:"#/properties/spanningCells/items/properties/paddingRight/type",keyword:"type",params:{type:"integer"},message:"must be integer"};N===null?N=[j]:N.push(j),J++}}}else{const $={instancePath:R+"/spanningCells/"+D,schemaPath:"#/properties/spanningCells/items/type",keyword:"type",params:{type:"object"},message:"must be object"};N===null?N=[$]:N.push($),J++}}}else{const M={instancePath:R+"/spanningCells",schemaPath:"#/properties/spanningCells/type",keyword:"type",params:{type:"array"},message:"must be array"};N===null?N=[M]:N.push(M),J++}}}else{const A={instancePath:R,schemaPath:"#/type",keyword:"type",params:{type:"object"},message:"must be object"};N===null?N=[A]:N.push(A),J++}return V.errors=N,J===0}I["streamConfig.json"]=H;function o(Y,{instancePath:R="",parentData:B,parentDataProperty:C,rootData:k=Y}={}){let N=null,J=0;if(Y&&typeof Y=="object"&&!Array.isArray(Y)){for(const A in Y)if(!G.call(c.properties,A)){const M={instancePath:R,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty:A},message:"must NOT have additional properties"};N===null?N=[M]:N.push(M),J++}Y.topBody!==void 0&&(e(Y.topBody,{instancePath:R+"/topBody",parentData:Y,parentDataProperty:"topBody",rootData:k})||(N=N===null?e.errors:N.concat(e.errors),J=N.length)),Y.topJoin!==void 0&&(e(Y.topJoin,{instancePath:R+"/topJoin",parentData:Y,parentDataProperty:"topJoin",rootData:k})||(N=N===null?e.errors:N.concat(e.errors),J=N.length)),Y.topLeft!==void 0&&(e(Y.topLeft,{instancePath:R+"/topLeft",parentData:Y,parentDataProperty:"topLeft",rootData:k})||(N=N===null?e.errors:N.concat(e.errors),J=N.length)),Y.topRight!==void 0&&(e(Y.topRight,{instancePath:R+"/topRight",parentData:Y,parentDataProperty:"topRight",rootData:k})||(N=N===null?e.errors:N.concat(e.errors),J=N.length)),Y.bottomBody!==void 0&&(e(Y.bottomBody,{instancePath:R+"/bottomBody",parentData:Y,parentDataProperty:"bottomBody",rootData:k})||(N=N===null?e.errors:N.concat(e.errors),J=N.length)),Y.bottomJoin!==void 0&&(e(Y.bottomJoin,{instancePath:R+"/bottomJoin",parentData:Y,parentDataProperty:"bottomJoin",rootData:k})||(N=N===null?e.errors:N.concat(e.errors),J=N.length)),Y.bottomLeft!==void 0&&(e(Y.bottomLeft,{instancePath:R+"/bottomLeft",parentData:Y,parentDataProperty:"bottomLeft",rootData:k})||(N=N===null?e.errors:N.concat(e.errors),J=N.length)),Y.bottomRight!==void 0&&(e(Y.bottomRight,{instancePath:R+"/bottomRight",parentData:Y,parentDataProperty:"bottomRight",rootData:k})||(N=N===null?e.errors:N.concat(e.errors),J=N.length)),Y.bodyLeft!==void 0&&(e(Y.bodyLeft,{instancePath:R+"/bodyLeft",parentData:Y,parentDataProperty:"bodyLeft",rootData:k})||(N=N===null?e.errors:N.concat(e.errors),J=N.length)),Y.bodyRight!==void 0&&(e(Y.bodyRight,{instancePath:R+"/bodyRight",parentData:Y,parentDataProperty:"bodyRight",rootData:k})||(N=N===null?e.errors:N.concat(e.errors),J=N.length)),Y.bodyJoin!==void 0&&(e(Y.bodyJoin,{instancePath:R+"/bodyJoin",parentData:Y,parentDataProperty:"bodyJoin",rootData:k})||(N=N===null?e.errors:N.concat(e.errors),J=N.length)),Y.headerJoin!==void 0&&(e(Y.headerJoin,{instancePath:R+"/headerJoin",parentData:Y,parentDataProperty:"headerJoin",rootData:k})||(N=N===null?e.errors:N.concat(e.errors),J=N.length)),Y.joinBody!==void 0&&(e(Y.joinBody,{instancePath:R+"/joinBody",parentData:Y,parentDataProperty:"joinBody",rootData:k})||(N=N===null?e.errors:N.concat(e.errors),J=N.length)),Y.joinLeft!==void 0&&(e(Y.joinLeft,{instancePath:R+"/joinLeft",parentData:Y,parentDataProperty:"joinLeft",rootData:k})||(N=N===null?e.errors:N.concat(e.errors),J=N.length)),Y.joinRight!==void 0&&(e(Y.joinRight,{instancePath:R+"/joinRight",parentData:Y,parentDataProperty:"joinRight",rootData:k})||(N=N===null?e.errors:N.concat(e.errors),J=N.length)),Y.joinJoin!==void 0&&(e(Y.joinJoin,{instancePath:R+"/joinJoin",parentData:Y,parentDataProperty:"joinJoin",rootData:k})||(N=N===null?e.errors:N.concat(e.errors),J=N.length)),Y.joinMiddleUp!==void 0&&(e(Y.joinMiddleUp,{instancePath:R+"/joinMiddleUp",parentData:Y,parentDataProperty:"joinMiddleUp",rootData:k})||(N=N===null?e.errors:N.concat(e.errors),J=N.length)),Y.joinMiddleDown!==void 0&&(e(Y.joinMiddleDown,{instancePath:R+"/joinMiddleDown",parentData:Y,parentDataProperty:"joinMiddleDown",rootData:k})||(N=N===null?e.errors:N.concat(e.errors),J=N.length)),Y.joinMiddleLeft!==void 0&&(e(Y.joinMiddleLeft,{instancePath:R+"/joinMiddleLeft",parentData:Y,parentDataProperty:"joinMiddleLeft",rootData:k})||(N=N===null?e.errors:N.concat(e.errors),J=N.length)),Y.joinMiddleRight!==void 0&&(e(Y.joinMiddleRight,{instancePath:R+"/joinMiddleRight",parentData:Y,parentDataProperty:"joinMiddleRight",rootData:k})||(N=N===null?e.errors:N.concat(e.errors),J=N.length))}else{const A={instancePath:R,schemaPath:"#/type",keyword:"type",params:{type:"object"},message:"must be object"};N===null?N=[A]:N.push(A),J++}return o.errors=N,J===0}function F(Y,{instancePath:R="",parentData:B,parentDataProperty:C,rootData:k=Y}={}){let N=null,J=0;const A=J;let M=!1,D=null;const O=J;if(Y&&typeof Y=="object"&&!Array.isArray(Y)){for(const S in Y)if(!b.test(S)){const tI={instancePath:R,schemaPath:"#/oneOf/0/additionalProperties",keyword:"additionalProperties",params:{additionalProperty:S},message:"must NOT have additional properties"};N===null?N=[tI]:N.push(tI),J++}for(const S in Y)b.test(S)&&(m(Y[S],{instancePath:R+"/"+S.replace(/~/g,"~0").replace(/\//g,"~1"),parentData:Y,parentDataProperty:S,rootData:k})||(N=N===null?m.errors:N.concat(m.errors),J=N.length))}else{const S={instancePath:R,schemaPath:"#/oneOf/0/type",keyword:"type",params:{type:"object"},message:"must be object"};N===null?N=[S]:N.push(S),J++}var j=O===J;j&&(M=!0,D=0);const $=J;if(Array.isArray(Y)){const S=Y.length;for(let tI=0;tI=",limit:1},message:"must be >= 1"};N===null?N=[M]:N.push(M),J++}}if(Y.wrapWord!==void 0&&typeof Y.wrapWord!="boolean"){const A={instancePath:R+"/wrapWord",schemaPath:"#/properties/wrapWord/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"};N===null?N=[A]:N.push(A),J++}if(Y.truncate!==void 0){let A=Y.truncate;if(!(typeof A=="number"&&!(A%1)&&!isNaN(A)&&isFinite(A))){const M={instancePath:R+"/truncate",schemaPath:"#/properties/truncate/type",keyword:"type",params:{type:"integer"},message:"must be integer"};N===null?N=[M]:N.push(M),J++}}if(Y.paddingLeft!==void 0){let A=Y.paddingLeft;if(!(typeof A=="number"&&!(A%1)&&!isNaN(A)&&isFinite(A))){const M={instancePath:R+"/paddingLeft",schemaPath:"#/properties/paddingLeft/type",keyword:"type",params:{type:"integer"},message:"must be integer"};N===null?N=[M]:N.push(M),J++}}if(Y.paddingRight!==void 0){let A=Y.paddingRight;if(!(typeof A=="number"&&!(A%1)&&!isNaN(A)&&isFinite(A))){const M={instancePath:R+"/paddingRight",schemaPath:"#/properties/paddingRight/type",keyword:"type",params:{type:"integer"},message:"must be integer"};N===null?N=[M]:N.push(M),J++}}}else{const A={instancePath:R,schemaPath:"#/type",keyword:"type",params:{type:"object"},message:"must be object"};N===null?N=[A]:N.push(A),J++}return X.errors=N,J===0}function H(Y,{instancePath:R="",parentData:B,parentDataProperty:C,rootData:k=Y}={}){let N=null,J=0;if(Y&&typeof Y=="object"&&!Array.isArray(Y)){if(Y.columnDefault===void 0){const A={instancePath:R,schemaPath:"#/required",keyword:"required",params:{missingProperty:"columnDefault"},message:"must have required property 'columnDefault'"};N===null?N=[A]:N.push(A),J++}if(Y.columnCount===void 0){const A={instancePath:R,schemaPath:"#/required",keyword:"required",params:{missingProperty:"columnCount"},message:"must have required property 'columnCount'"};N===null?N=[A]:N.push(A),J++}for(const A in Y)if(!(A==="border"||A==="columns"||A==="columnDefault"||A==="columnCount"||A==="drawVerticalLine")){const M={instancePath:R,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty:A},message:"must NOT have additional properties"};N===null?N=[M]:N.push(M),J++}if(Y.border!==void 0&&(o(Y.border,{instancePath:R+"/border",parentData:Y,parentDataProperty:"border",rootData:k})||(N=N===null?o.errors:N.concat(o.errors),J=N.length)),Y.columns!==void 0&&(F(Y.columns,{instancePath:R+"/columns",parentData:Y,parentDataProperty:"columns",rootData:k})||(N=N===null?F.errors:N.concat(F.errors),J=N.length)),Y.columnDefault!==void 0&&(X(Y.columnDefault,{instancePath:R+"/columnDefault",parentData:Y,parentDataProperty:"columnDefault",rootData:k})||(N=N===null?X.errors:N.concat(X.errors),J=N.length)),Y.columnCount!==void 0){let A=Y.columnCount;if(!(typeof A=="number"&&!(A%1)&&!isNaN(A)&&isFinite(A))){const M={instancePath:R+"/columnCount",schemaPath:"#/properties/columnCount/type",keyword:"type",params:{type:"integer"},message:"must be integer"};N===null?N=[M]:N.push(M),J++}if(typeof A=="number"&&isFinite(A)&&(A<1||isNaN(A))){const M={instancePath:R+"/columnCount",schemaPath:"#/properties/columnCount/minimum",keyword:"minimum",params:{comparison:">=",limit:1},message:"must be >= 1"};N===null?N=[M]:N.push(M),J++}}if(Y.drawVerticalLine!==void 0&&typeof Y.drawVerticalLine!="function"){const A={instancePath:R+"/drawVerticalLine",schemaPath:"#/properties/drawVerticalLine/typeof",keyword:"typeof",params:{},message:'must pass "typeof" keyword validation'};N===null?N=[A]:N.push(A),J++}}else{const A={instancePath:R,schemaPath:"#/type",keyword:"type",params:{type:"object"},message:"must be object"};N===null?N=[A]:N.push(A),J++}return H.errors=N,J===0}})(y_);var z8I=sc&&sc.__importDefault||function(I){return I&&I.__esModule?I:{default:I}};Object.defineProperty(bp,"__esModule",{value:!0});bp.validateConfig=void 0;const U8I=z8I(y_),C8I=(I,l)=>{const c=U8I.default[I];if(!c(l)&&c.errors){const G=c.errors.map(e=>({message:e.message,params:e.params,schemaPath:e.schemaPath}));throw console.log("config",l),console.log("errors",G),new Error("Invalid config.")}};bp.validateConfig=C8I;Object.defineProperty(d1,"__esModule",{value:!0});d1.makeStreamConfig=void 0;const M8I=Dl,f8I=bp,K8I=(I,l={},c)=>Array.from({length:I}).map((G,e)=>({alignment:"left",paddingLeft:1,paddingRight:1,truncate:Number.POSITIVE_INFINITY,verticalAlignment:"top",wrapWord:!1,...c,...l[e]})),L8I=I=>{if((0,f8I.validateConfig)("streamConfig.json",I),I.columnDefault.width===void 0)throw new Error("Must provide config.columnDefault.width when creating a stream.");return{drawVerticalLine:()=>!0,...I,border:(0,M8I.makeBorderConfig)(I.border),columns:K8I(I.columnCount,I.columns,I.columnDefault)}};d1.makeStreamConfig=L8I;var t1={};(function(I){Object.defineProperty(I,"__esModule",{value:!0}),I.mapDataUsingRowHeights=I.padCellVertically=void 0;const l=Dl,c=v0,G=t=>new Array(t).fill(""),e=(t,n,b)=>{const a=n-t.length;return b==="top"?[...t,...G(a)]:b==="bottom"?[...G(a),...t]:[...G(Math.floor(a/2)),...t,...G(Math.ceil(a/2))]};I.padCellVertically=e;const d=(t,n,b)=>{const a=t[0].length,Z=t.map((W,m)=>{const s=n[m],h=Array.from({length:s},()=>new Array(a).fill(""));return W.forEach((p,V)=>{var o;const F=(o=b.spanningCellManager)===null||o===void 0?void 0:o.getContainingRange({col:V,row:m});if(F){F.extractCellContent(m).forEach((Y,R)=>{h[R][V]=Y});return}const X=(0,c.wrapCell)(p,b.columns[V].width,b.columns[V].wrapWord);(0,I.padCellVertically)(X,s,b.columns[V].verticalAlignment).forEach((Y,R)=>{h[R][V]=Y})}),h});return(0,l.flatten)(Z)};I.mapDataUsingRowHeights=d})(t1);var n1={};(function(I){Object.defineProperty(I,"__esModule",{value:!0}),I.padTableData=I.padString=void 0;const l=(G,e,d)=>" ".repeat(e)+G+" ".repeat(d);I.padString=l;const c=(G,e)=>G.map((d,t)=>d.map((n,b)=>{var a;if((a=e.spanningCellManager)===null||a===void 0?void 0:a.getContainingRange({col:b,row:t},{mapped:!0}))return n;const{paddingLeft:W,paddingRight:m}=e.columns[b];return(0,I.padString)(n,W,m)}));I.padTableData=c})(n1);var ap={};Object.defineProperty(ap,"__esModule",{value:!0});ap.stringifyTableData=void 0;const S8I=Dl,T8I=I=>I.map(l=>l.map(c=>(0,S8I.normalizeString)(String(c))));ap.stringifyTableData=T8I;var b1={},Pi={exports:{}};Pi.exports;(function(I,l){var c=30,G="...",e=1/0,d=17976931348623157e292,t=0/0,n="[object RegExp]",b="[object Symbol]",a=/^\s+|\s+$/g,Z=/\w*$/,W=/^[-+]0x[0-9a-f]+$/i,m=/^0b[01]+$/i,s=/^0o[0-7]+$/i,h="\\ud800-\\udfff",p="\\u0300-\\u036f\\ufe20-\\ufe23",V="\\u20d0-\\u20f0",o="\\ufe0e\\ufe0f",F="["+h+"]",X="["+p+V+"]",H="\\ud83c[\\udffb-\\udfff]",Y="(?:"+X+"|"+H+")",R="[^"+h+"]",B="(?:\\ud83c[\\udde6-\\uddff]){2}",C="[\\ud800-\\udbff][\\udc00-\\udfff]",k="\\u200d",N=Y+"?",J="["+o+"]?",A="(?:"+k+"(?:"+[R,B,C].join("|")+")"+J+N+")*",M=J+N+A,D="(?:"+[R+X+"?",X,B,C,F].join("|")+")",O=RegExp(H+"(?="+H+")|"+D+M,"g"),$=RegExp("["+k+h+p+V+o+"]"),j=parseInt,S=typeof sc=="object"&&sc&&sc.Object===Object&&sc,tI=typeof self=="object"&&self&&self.Object===Object&&self,z=S||tI||Function("return this")(),g=l&&!l.nodeType&&l,GI=g&&!0&&I&&!I.nodeType&&I,f=GI&&GI.exports===g,nI=f&&S.process,VI=function(){try{return nI&&nI.binding("util")}catch{}}(),q=VI&&VI.isRegExp,fI=cl("length");function RI(_){return _.split("")}function cl(_){return function(FI){return FI==null?void 0:FI[_]}}function OI(_){return function(FI){return _(FI)}}function PI(_){return $.test(_)}function _I(_){return PI(_)?bl(_):fI(_)}function tl(_){return PI(_)?Il(_):RI(_)}function bl(_){for(var FI=O.lastIndex=0;O.test(_);)FI++;return FI}function Il(_){return _.match(O)||[]}var Fl=Object.prototype,al=Fl.toString,P=z.Symbol,eI=P?P.prototype:void 0,uI=eI?eI.toString:void 0;function wI(_){return bI(_)&&al.call(_)==n}function YI(_,FI,CI){var ll=-1,Zl=_.length;FI<0&&(FI=-FI>Zl?0:Zl+FI),CI=CI>Zl?Zl:CI,CI<0&&(CI+=Zl),Zl=FI>CI?0:CI-FI>>>0,FI>>>=0;for(var vl=Array(Zl);++ll=ll?_:YI(_,FI,CI)}function bI(_){var FI=typeof _;return!!_&&(FI=="object"||FI=="function")}function gI(_){return!!_&&typeof _=="object"}var oI=q?OI(q):wI;function QI(_){return typeof _=="symbol"||gI(_)&&al.call(_)==b}function dI(_){if(!_)return _===0?_:0;if(_=Wl(_),_===e||_===-e){var FI=_<0?-1:1;return FI*d}return _===_?_:0}function xI(_){var FI=dI(_),CI=FI%1;return FI===FI?CI?FI-CI:FI:0}function Wl(_){if(typeof _=="number")return _;if(QI(_))return t;if(bI(_)){var FI=typeof _.valueOf=="function"?_.valueOf():_;_=bI(FI)?FI+"":FI}if(typeof _!="string")return _===0?_:+_;_=_.replace(a,"");var CI=m.test(_);return CI||s.test(_)?j(_.slice(2),CI?2:8):W.test(_)?t:+_}function nl(_){return _==null?"":HI(_)}function Hl(_,FI){var CI=c,ll=G;if(bI(FI)){var Zl="separator"in FI?FI.separator:Zl;CI="length"in FI?xI(FI.length):CI,ll="omission"in FI?HI(FI.omission):ll}_=nl(_);var vl=_.length;if(PI(_)){var kl=tl(_);vl=kl.length}if(CI>=vl)return _;var ql=CI-_I(ll);if(ql<1)return ll;var dG=kl?NI(kl,0,ql).join(""):_.slice(0,ql);if(Zl===void 0)return dG+ll;if(kl&&(ql+=dG.length-ql),oI(Zl)){if(_.slice(ql).search(Zl)){var ZI,pI=dG;for(Zl.global||(Zl=RegExp(Zl.source,nl(Z.exec(Zl))+"g")),Zl.lastIndex=0;ZI=Zl.exec(pI);)var sI=ZI.index;dG=dG.slice(0,sI===void 0?ql:sI)}}else if(_.indexOf(HI(Zl),ql)!=ql){var EI=dG.lastIndexOf(Zl);EI>-1&&(dG=dG.slice(0,EI))}return dG+ll}I.exports=Hl})(Pi,Pi.exports);var j8I=Pi.exports;(function(I){var l=sc&&sc.__importDefault||function(d){return d&&d.__esModule?d:{default:d}};Object.defineProperty(I,"__esModule",{value:!0}),I.truncateTableData=I.truncateString=void 0;const c=l(j8I),G=(d,t)=>(0,c.default)(d,{length:t,omission:"…"});I.truncateString=G;const e=(d,t)=>d.map(n=>n.map((b,a)=>(0,I.truncateString)(b,t[a])));I.truncateTableData=e})(b1);Object.defineProperty(l1,"__esModule",{value:!0});l1.createStream=void 0;const D8I=cp,O8I=tp,_i=$y,B_=np,P8I=d1,_8I=t1,q8I=n1,$8I=ap,I6I=b1,l6I=Dl,k_=(I,l)=>{let c=(0,$8I.stringifyTableData)(I);c=(0,I6I.truncateTableData)(c,(0,l6I.extractTruncates)(l));const G=(0,O8I.calculateRowHeights)(c,l);return c=(0,_8I.mapDataUsingRowHeights)(c,G,l),c=(0,D8I.alignTableData)(c,l),c=(0,q8I.padTableData)(c,l),c},c6I=(I,l,c)=>{const e=k_([I],c).map(t=>(0,B_.drawRow)(t,c)).join("");let d;d="",d+=(0,_i.drawBorderTop)(l,c),d+=e,d+=(0,_i.drawBorderBottom)(l,c),d=d.trimEnd(),process.stdout.write(d)},G6I=(I,l,c)=>{const e=k_([I],c).map(n=>(0,B_.drawRow)(n,c)).join("");let d="";const t=(0,_i.drawBorderBottom)(l,c);t!==` -`&&(d="\r\x1B[K"),d+=(0,_i.drawBorderJoin)(l,c),d+=e,d+=t,d=d.trimEnd(),process.stdout.write(d)},e6I=I=>{const l=(0,P8I.makeStreamConfig)(I),c=Object.values(l.columns).map(e=>e.width+e.paddingLeft+e.paddingRight);let G=!0;return{write:e=>{if(e.length!==l.columnCount)throw new Error("Row cell count does not match the config.columnCount.");G?(G=!1,c6I(e,c,l)):G6I(e,c,l)}}};l1.createStream=e6I;var a1={},Z1={};Object.defineProperty(Z1,"__esModule",{value:!0});Z1.calculateOutputColumnWidths=void 0;const d6I=I=>I.columns.map(l=>l.paddingLeft+l.width+l.paddingRight);Z1.calculateOutputColumnWidths=d6I;var W1={};Object.defineProperty(W1,"__esModule",{value:!0});W1.drawTable=void 0;const t6I=$y,n6I=g0,b6I=np,a6I=Dl,Z6I=(I,l,c,G)=>{const{drawHorizontalLine:e,singleLine:d}=G,t=(0,a6I.groupBySizes)(I,c).map((n,b)=>n.map(a=>(0,b6I.drawRow)(a,{...G,rowIndex:b})).join(""));return(0,n6I.drawContent)({contents:t,drawSeparator:(n,b)=>(n===0||n===b||!d)&&e(n,b),elementType:"row",rowIndex:-1,separatorGetter:(0,t6I.createTableBorderGetter)(l,{...G,rowCount:t.length}),spanningCellManager:G.spanningCellManager})};W1.drawTable=Z6I;var r1={};Object.defineProperty(r1,"__esModule",{value:!0});r1.injectHeaderConfig=void 0;const W6I=(I,l)=>{var c;let G=(c=l.spanningCells)!==null&&c!==void 0?c:[];const e=l.header,d=[...I];if(e){G=G.map(({row:b,...a})=>({...a,row:b+1}));const{content:t,...n}=e;G.unshift({alignment:"center",col:0,colSpan:I[0].length,paddingLeft:1,paddingRight:1,row:0,wrapWord:!1,...n}),d.unshift([t,...Array.from({length:I[0].length-1}).fill("")])}return[d,G]};r1.injectHeaderConfig=W6I;var m1={},x_={};(function(I){var l=sc&&sc.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(I,"__esModule",{value:!0}),I.calculateMaximumColumnWidths=I.calculateMaximumCellWidth=void 0;const c=l(ep),G=Dl,e=t=>Math.max(...t.split(` -`).map(c.default));I.calculateMaximumCellWidth=e;const d=(t,n=[])=>{const b=new Array(t[0].length).fill(0),a=n.map(G.calculateRangeCoordinate),Z=(W,m)=>a.some(s=>(0,G.isCellInRange)({col:m,row:W},s));return t.forEach((W,m)=>{W.forEach((s,h)=>{Z(m,h)||(b[h]=Math.max(b[h],(0,I.calculateMaximumCellWidth)(s)))})}),b};I.calculateMaximumColumnWidths=d})(x_);var s1={},r0={},r6I=sc&&sc.__importDefault||function(I){return I&&I.__esModule?I:{default:I}};Object.defineProperty(r0,"__esModule",{value:!0});r0.alignVerticalRangeContent=r0.wrapRangeContent=void 0;const m6I=r6I(ep),s6I=Gp,u6I=t1,h6I=n1,p6I=b1,yM=Dl,o6I=v0,V6I=(I,l,c)=>{const{topLeft:G,paddingRight:e,paddingLeft:d,truncate:t,wrapWord:n,alignment:b}=I,a=c.rows[G.row][G.col],Z=l-d-e;return(0,o6I.wrapCell)((0,p6I.truncateString)(a,t),Z,n).map(W=>{const m=(0,s6I.alignString)(W,Z,b);return(0,h6I.padString)(m,d,e)})};r0.wrapRangeContent=V6I;const i6I=(I,l,c)=>{const{rows:G,drawHorizontalLine:e,rowHeights:d}=c,{topLeft:t,bottomRight:n,verticalAlignment:b}=I;if(d.length===0)return[];const a=(0,yM.sumArray)(d.slice(t.row,n.row+1)),Z=n.row-t.row,W=(0,yM.sequence)(t.row+1,n.row).filter(s=>!e(s,G.length)).length,m=a+Z-W;return(0,u6I.padCellVertically)(l,m,b).map(s=>s.length===0?" ".repeat((0,m6I.default)(l[0])):s)};r0.alignVerticalRangeContent=i6I;var u1={};Object.defineProperty(u1,"__esModule",{value:!0});u1.calculateSpanningCellWidth=void 0;const LH=Dl,F6I=(I,l)=>{const{columnsConfig:c,drawVerticalLine:G}=l,{topLeft:e,bottomRight:d}=I,t=(0,LH.sumArray)(c.slice(e.col,d.col+1).map(({width:Z})=>Z)),n=e.col===d.col?c[e.col].paddingRight+c[d.col].paddingLeft:(0,LH.sumArray)(c.slice(e.col,d.col+1).map(({paddingLeft:Z,paddingRight:W})=>Z+W)),b=d.col-e.col,a=(0,LH.sequence)(e.col+1,d.col).filter(Z=>!G(Z,c.length)).length;return t+n+b-a};u1.calculateSpanningCellWidth=F6I;var h1={};Object.defineProperty(h1,"__esModule",{value:!0});h1.makeRangeConfig=void 0;const N6I=Dl,R6I=(I,l)=>{var c;const{topLeft:G,bottomRight:e}=(0,N6I.calculateRangeCoordinate)(I);return{...{...l[G.col],...I,paddingRight:(c=I.paddingRight)!==null&&c!==void 0?c:l[e.col].paddingRight},bottomRight:e,topLeft:G}};h1.makeRangeConfig=R6I;Object.defineProperty(s1,"__esModule",{value:!0});s1.createSpanningCellManager=void 0;const JM=r0,Y6I=u1,X6I=h1,xm=Dl,_E=(I,l)=>l.find(c=>(0,xm.isCellInRange)(I,c)),BM=(I,l)=>{const c=(0,Y6I.calculateSpanningCellWidth)(I,l),G=(0,JM.wrapRangeContent)(I,c,l),e=(0,JM.alignVerticalRangeContent)(I,G,l);return{...I,extractBorderContent:n=>{const{topLeft:b}=I,a=(0,xm.sumArray)(l.rowHeights.slice(b.row,n))+(n-b.row-1);return e[a]},extractCellContent:n=>{const{topLeft:b}=I,{drawHorizontalLine:a,rowHeights:Z}=l,W=n-b.row,m=(0,xm.sequence)(b.row+1,n).filter(h=>!(a!=null&&a(h,Z.length))).length,s=(0,xm.sumArray)(Z.slice(b.row,n))+W-m;return e.slice(s,s+Z[n])},height:G.length,width:c}},H6I=(I,l,c)=>{const G=_E(I,c),e=_E(l,c);return G&&e?(0,xm.areCellEqual)(G.topLeft,e.topLeft):!1},Q6I=I=>{const{row:l,col:c}=I.topLeft;return`${l}/${c}`},w6I=I=>{const{spanningCellConfigs:l,columnsConfig:c}=I,G=l.map(n=>(0,X6I.makeRangeConfig)(n,c)),e={};let d=[],t=[];return{getContainingRange:(n,b)=>{var a;const Z=b!=null&&b.mapped?t[n.row]:n.row,W=_E({...n,row:Z},G);if(!W)return;if(d.length===0)return BM(W,{...I,rowHeights:d});const m=Q6I(W);return(a=e[m])!==null&&a!==void 0||(e[m]=BM(W,{...I,rowHeights:d})),e[m]},inSameRange:(n,b)=>H6I(n,b,G),rowHeights:d,rowIndexMapping:t,setRowHeights:n=>{d=n},setRowIndexMapping:n=>{t=(0,xm.flatten)(n.map((b,a)=>Array.from({length:b},()=>a)))}}};s1.createSpanningCellManager=w6I;var p1={};Object.defineProperty(p1,"__esModule",{value:!0});p1.validateSpanningCellConfig=void 0;const SH=Dl,i2=(I,l,c)=>I<=c&&c<=l,E6I=(I,l)=>{const[c,G]=[I.length,I[0].length];l.forEach((t,n)=>{const{colSpan:b,rowSpan:a}=t;if(b===void 0&&a===void 0)throw new Error(`Expect at least colSpan or rowSpan is provided in config.spanningCells[${n}]`);if(b!==void 0&&b<1)throw new Error(`Expect colSpan is not equal zero, instead got: ${b} in config.spanningCells[${n}]`);if(a!==void 0&&a<1)throw new Error(`Expect rowSpan is not equal zero, instead got: ${a} in config.spanningCells[${n}]`)});const e=l.map(SH.calculateRangeCoordinate);e.forEach(({topLeft:t,bottomRight:n},b)=>{if(!i2(0,G-1,t.col)||!i2(0,c-1,t.row)||!i2(0,G-1,n.col)||!i2(0,c-1,n.row))throw new Error(`Some cells in config.spanningCells[${b}] are out of the table`)});const d=Array.from({length:c},()=>Array.from({length:G}));e.forEach(({topLeft:t,bottomRight:n},b)=>{(0,SH.sequence)(t.row,n.row).forEach(a=>{(0,SH.sequence)(t.col,n.col).forEach(Z=>{if(d[a][Z]!==void 0)throw new Error(`Spanning cells in config.spanningCells[${d[a][Z]}] and config.spanningCells[${b}] are overlap each other`);d[a][Z]=b})})})};p1.validateSpanningCellConfig=E6I;Object.defineProperty(m1,"__esModule",{value:!0});m1.makeTableConfig=void 0;const v6I=x_,g6I=s1,A6I=Dl,y6I=bp,J6I=p1,B6I=(I,l,c,G)=>{const e=(0,v6I.calculateMaximumColumnWidths)(I,G);return I[0].map((d,t)=>({alignment:"left",paddingLeft:1,paddingRight:1,truncate:Number.POSITIVE_INFINITY,verticalAlignment:"top",width:e[t],wrapWord:!1,...c,...l==null?void 0:l[t]}))},k6I=(I,l={},c)=>{var G,e,d,t,n;(0,y6I.validateConfig)("config.json",l),(0,J6I.validateSpanningCellConfig)(I,(G=l.spanningCells)!==null&&G!==void 0?G:[]);const b=(e=c??l.spanningCells)!==null&&e!==void 0?e:[],a=B6I(I,l.columns,l.columnDefault,b),Z=(d=l.drawVerticalLine)!==null&&d!==void 0?d:()=>!0,W=(t=l.drawHorizontalLine)!==null&&t!==void 0?t:()=>!0;return{...l,border:(0,A6I.makeBorderConfig)(l.border),columns:a,drawHorizontalLine:W,drawVerticalLine:Z,singleLine:(n=l.singleLine)!==null&&n!==void 0?n:!1,spanningCellManager:(0,g6I.createSpanningCellManager)({columnsConfig:a,drawHorizontalLine:W,drawVerticalLine:Z,rows:I,spanningCellConfigs:b})}};m1.makeTableConfig=k6I;var o1={};Object.defineProperty(o1,"__esModule",{value:!0});o1.validateTableData=void 0;const x6I=Dl,z6I=I=>{if(!Array.isArray(I))throw new TypeError("Table data must be an array.");if(I.length===0)throw new Error("Table must define at least one row.");if(I[0].length===0)throw new Error("Table must define at least one column.");const l=I[0].length;for(const c of I){if(!Array.isArray(c))throw new TypeError("Table row data must be an array.");if(c.length!==l)throw new Error("Table must have a consistent number of cells.");for(const G of c)if(/[\u0001-\u0006\u0008\u0009\u000B-\u001A]/.test((0,x6I.normalizeString)(String(G))))throw new Error("Table data must not contain control characters.")}};o1.validateTableData=z6I;Object.defineProperty(a1,"__esModule",{value:!0});a1.table=void 0;const U6I=cp,C6I=Z1,M6I=tp,f6I=W1,K6I=r1,L6I=m1,S6I=t1,T6I=n1,j6I=ap,D6I=b1,O6I=Dl,P6I=o1,_6I=(I,l={})=>{(0,P6I.validateTableData)(I);let c=(0,j6I.stringifyTableData)(I);const[G,e]=(0,K6I.injectHeaderConfig)(c,l),d=(0,L6I.makeTableConfig)(G,l,e);c=(0,D6I.truncateTableData)(G,(0,O6I.extractTruncates)(d));const t=(0,M6I.calculateRowHeights)(c,d);d.spanningCellManager.setRowHeights(t),d.spanningCellManager.setRowIndexMapping(t),c=(0,S6I.mapDataUsingRowHeights)(c,t,d),c=(0,U6I.alignTableData)(c,d),c=(0,T6I.padTableData)(c,d);const n=(0,C6I.calculateOutputColumnWidths)(d);return(0,f6I.drawTable)(c,n,t,d)};a1.table=_6I;var z_={};Object.defineProperty(z_,"__esModule",{value:!0});(function(I){var l=sc&&sc.__createBinding||(Object.create?function(t,n,b,a){a===void 0&&(a=b),Object.defineProperty(t,a,{enumerable:!0,get:function(){return n[b]}})}:function(t,n,b,a){a===void 0&&(a=b),t[a]=n[b]}),c=sc&&sc.__exportStar||function(t,n){for(var b in t)b!=="default"&&!Object.prototype.hasOwnProperty.call(n,b)&&l(n,t,b)};Object.defineProperty(I,"__esModule",{value:!0}),I.getBorderCharacters=I.createStream=I.table=void 0;const G=l1;Object.defineProperty(I,"createStream",{enumerable:!0,get:function(){return G.createStream}});const e=dp;Object.defineProperty(I,"getBorderCharacters",{enumerable:!0,get:function(){return e.getBorderCharacters}});const d=a1;Object.defineProperty(I,"table",{enumerable:!0,get:function(){return d.table}}),c(z_,I)})(X_);const F2=LI.th` - padding: 0.5rem; - text-align: left; - border: 1px solid ${Mc}; -`,N2=LI.tr` +`;function yX(){sm();const e=Hr(),t=E.useContext(Zn);return W.jsxs("div",{className:"overflow-y-scroll overflow-x-hidden",children:[W.jsxs("div",{className:"items-center flex m-0 p-0 sticky top-0",style:{borderBottom:`0.5px solid ${rt}`,backgroundColor:Gn},children:[W.jsx(hu,{width:"1.2em",height:"1.2em",onClick:()=>e("/"),className:"inline-block ml-4 cursor-pointer"}),W.jsx("h3",{className:"text-lg font-bold m-2 inline-block",children:"Help Center"}),W.jsx($Ye,{onClick:()=>{t.post("showTutorial",void 0),e("/onboarding")},children:"Open tutorial"})]}),W.jsx("h3",{className:"my-0 py-3 mx-auto text-center cursor-pointer",onClick:()=>{e("/stats")},children:"View My Usage"}),W.jsx(Ay,{className:"my-0"}),W.jsx("h3",{className:"my-3 mx-auto text-center",children:"Resources"}),W.jsxs(_Ye,{className:"border",children:[W.jsx(Z2,{backgroundColor:"rgb(234, 51, 35)",children:W.jsxs("a",{href:"https://youtu.be/3Ocrc-WX4iQ?si=eDLYtkc6CXQoHsEc",target:"_blank",children:[W.jsx("svg",{width:"42px",height:"42px",xmlns:"http://www.w3.org/2000/svg",viewBox:"-5.2 -4.5 60 60",fill:rn,children:W.jsx("path",{d:"M 44.898438 14.5 C 44.5 12.300781 42.601563 10.699219 40.398438 10.199219 C 37.101563 9.5 31 9 24.398438 9 C 17.800781 9 11.601563 9.5 8.300781 10.199219 C 6.101563 10.699219 4.199219 12.199219 3.800781 14.5 C 3.398438 17 3 20.5 3 25 C 3 29.5 3.398438 33 3.898438 35.5 C 4.300781 37.699219 6.199219 39.300781 8.398438 39.800781 C 11.898438 40.5 17.898438 41 24.5 41 C 31.101563 41 37.101563 40.5 40.601563 39.800781 C 42.800781 39.300781 44.699219 37.800781 45.101563 35.5 C 45.5 33 46 29.398438 46.101563 25 C 45.898438 20.5 45.398438 17 44.898438 14.5 Z M 19 32 L 19 18 L 31.199219 25 Z"})}),"Demo Video"]})}),W.jsx(Z2,{backgroundColor:"#1bbe84a8",children:W.jsxs("a",{href:"https://docs.continue.dev/how-to-use-continue",target:"_blank",children:[W.jsx("svg",{width:"42px",height:"42px",xmlns:"http://www.w3.org/2000/svg",viewBox:"-2.2 -2 28 28",fill:rn,children:W.jsx("path",{d:"M11.25 4.533A9.707 9.707 0 006 3a9.735 9.735 0 00-3.25.555.75.75 0 00-.5.707v14.25a.75.75 0 001 .707A8.237 8.237 0 016 18.75c1.995 0 3.823.707 5.25 1.886V4.533zM12.75 20.636A8.214 8.214 0 0118 18.75c.966 0 1.89.166 2.75.47a.75.75 0 001-.708V4.262a.75.75 0 00-.5-.707A9.735 9.735 0 0018 3a9.707 9.707 0 00-5.25 1.533v16.103z"})}),"Documentation"]})}),W.jsx(Z2,{backgroundColor:"rgb(88, 98, 227)",children:W.jsxs("a",{href:"https://discord.gg/vapESyrFmJ",target:"_blank",children:[W.jsx("svg",{width:"42px",height:"42px",xmlns:"http://www.w3.org/2000/svg",viewBox:"-5 -5.5 60 60",fill:rn,children:W.jsx("path",{d:"M 41.625 10.769531 C 37.644531 7.566406 31.347656 7.023438 31.078125 7.003906 C 30.660156 6.96875 30.261719 7.203125 30.089844 7.589844 C 30.074219 7.613281 29.9375 7.929688 29.785156 8.421875 C 32.417969 8.867188 35.652344 9.761719 38.578125 11.578125 C 39.046875 11.867188 39.191406 12.484375 38.902344 12.953125 C 38.710938 13.261719 38.386719 13.429688 38.050781 13.429688 C 37.871094 13.429688 37.6875 13.378906 37.523438 13.277344 C 32.492188 10.15625 26.210938 10 25 10 C 23.789063 10 17.503906 10.15625 12.476563 13.277344 C 12.007813 13.570313 11.390625 13.425781 11.101563 12.957031 C 10.808594 12.484375 10.953125 11.871094 11.421875 11.578125 C 14.347656 9.765625 17.582031 8.867188 20.214844 8.425781 C 20.0625 7.929688 19.925781 7.617188 19.914063 7.589844 C 19.738281 7.203125 19.34375 6.960938 18.921875 7.003906 C 18.652344 7.023438 12.355469 7.566406 8.320313 10.8125 C 6.214844 12.761719 2 24.152344 2 34 C 2 34.175781 2.046875 34.34375 2.132813 34.496094 C 5.039063 39.605469 12.972656 40.941406 14.78125 41 C 14.789063 41 14.800781 41 14.8125 41 C 15.132813 41 15.433594 40.847656 15.621094 40.589844 L 17.449219 38.074219 C 12.515625 36.800781 9.996094 34.636719 9.851563 34.507813 C 9.4375 34.144531 9.398438 33.511719 9.765625 33.097656 C 10.128906 32.683594 10.761719 32.644531 11.175781 33.007813 C 11.234375 33.0625 15.875 37 25 37 C 34.140625 37 38.78125 33.046875 38.828125 33.007813 C 39.242188 32.648438 39.871094 32.683594 40.238281 33.101563 C 40.601563 33.515625 40.5625 34.144531 40.148438 34.507813 C 40.003906 34.636719 37.484375 36.800781 32.550781 38.074219 L 34.378906 40.589844 C 34.566406 40.847656 34.867188 41 35.1875 41 C 35.199219 41 35.210938 41 35.21875 41 C 37.027344 40.941406 44.960938 39.605469 47.867188 34.496094 C 47.953125 34.34375 48 34.175781 48 34 C 48 24.152344 43.785156 12.761719 41.625 10.769531 Z M 18.5 30 C 16.566406 30 15 28.210938 15 26 C 15 23.789063 16.566406 22 18.5 22 C 20.433594 22 22 23.789063 22 26 C 22 28.210938 20.433594 30 18.5 30 Z M 31.5 30 C 29.566406 30 28 28.210938 28 26 C 28 23.789063 29.566406 22 31.5 22 C 33.433594 22 35 23.789063 35 26 C 35 28.210938 33.433594 30 31.5 30 Z"})}),"Continue Discord"]})}),W.jsx(Z2,{children:W.jsxs("a",{href:"https://github.com/continuedev/continue/issues/new/choose",target:"_blank",children:[W.jsx("svg",{width:"42px",height:"42px",xmlns:"http://www.w3.org/2000/svg",viewBox:"-1.2 -1.2 32 32",fill:rn,children:W.jsx("path",{d:"M15,3C8.373,3,3,8.373,3,15c0,5.623,3.872,10.328,9.092,11.63C12.036,26.468,12,26.28,12,26.047v-2.051 c-0.487,0-1.303,0-1.508,0c-0.821,0-1.551-0.353-1.905-1.009c-0.393-0.729-0.461-1.844-1.435-2.526 c-0.289-0.227-0.069-0.486,0.264-0.451c0.615,0.174,1.125,0.596,1.605,1.222c0.478,0.627,0.703,0.769,1.596,0.769 c0.433,0,1.081-0.025,1.691-0.121c0.328-0.833,0.895-1.6,1.588-1.962c-3.996-0.411-5.903-2.399-5.903-5.098 c0-1.162,0.495-2.286,1.336-3.233C9.053,10.647,8.706,8.73,9.435,8c1.798,0,2.885,1.166,3.146,1.481C13.477,9.174,14.461,9,15.495,9 c1.036,0,2.024,0.174,2.922,0.483C18.675,9.17,19.763,8,21.565,8c0.732,0.731,0.381,2.656,0.102,3.594 c0.836,0.945,1.328,2.066,1.328,3.226c0,2.697-1.904,4.684-5.894,5.097C18.199,20.49,19,22.1,19,23.313v2.734 c0,0.104-0.023,0.179-0.035,0.268C23.641,24.676,27,20.236,27,15C27,8.373,21.627,3,15,3z"})}),"GitHub Issues"]})})]}),W.jsx(jYe,{})]})}const qYe=Ve.input` + padding: 4px 8px; + border-radius: ${jt}; + border: 0.5px solid #888; + outline: none; + width: 90vw; + max-width: 500px; + margin: 8px auto; + display: block; + background-color: ${yn}; + color: ${rn}; + &:focus { + border: 0.5px solid ${ed}; + outline: none; + } +`,eIe=Ve.tr` &:hover { - background-color: ${Mc}; + background-color: ${yn}; } overflow-wrap: anywhere; - border: 1px solid ${Mc}; -`,R2=LI.td` - padding: 0.5rem; - border: 1px solid ${Mc}; -`;function kM(I){return X_.table(I)}function q6I(){Uh();const I=Be(),[l,c]=E.useState([]);E.useEffect(()=>{hd("stats/getTokensPerDay",void 0).then(d=>{c(d)})},[]);const[G,e]=E.useState([]);return E.useEffect(()=>{hd("stats/getTokensPerModel",void 0).then(d=>{e(d)})},[]),v.jsxs("div",{children:[v.jsxs("div",{className:"items-center flex m-0 p-0 sticky top-0",style:{borderBottom:`0.5px solid ${ul}`,backgroundColor:fc},children:[v.jsx(h0,{width:"1.2em",height:"1.2em",onClick:()=>I("/"),className:"inline-block ml-4 cursor-pointer"}),v.jsx("h3",{className:"text-lg font-bold m-2 inline-block",children:"My Usage"})]}),v.jsxs("div",{className:"flex gap-2 items-center",children:[v.jsx("h2",{className:"ml-2",children:"Tokens per Day"}),v.jsx(Ri,{text:kM([["Day","Tokens"]].concat(l.map(d=>[d.day,d.tokens])))})]}),v.jsxs("table",{className:"w-full border-collapse",children:[v.jsx("thead",{children:v.jsxs(N2,{children:[v.jsx(F2,{children:"Day"}),v.jsx(F2,{children:"Tokens"})]})}),v.jsx("tbody",{children:l.map(d=>v.jsxs(N2,{className:"",children:[v.jsx(R2,{children:d.day}),v.jsx(R2,{children:d.tokens})]},d.day))})]}),v.jsxs("div",{className:"flex gap-2 items-center",children:[v.jsx("h2",{className:"ml-2",children:"Tokens per Model"}),v.jsx(Ri,{text:kM([["Model","Tokens"]].concat(G.map(d=>[d.model,d.tokens])))})]}),v.jsxs("table",{className:"w-full border-collapse",children:[v.jsx("thead",{children:v.jsxs(N2,{children:[v.jsx(F2,{children:"Model"}),v.jsx(F2,{children:"Tokens"})]})}),v.jsx("tbody",{children:G.map(d=>v.jsxs(N2,{className:"",children:[v.jsx(R2,{children:d.model}),v.jsx(R2,{children:d.tokens})]},d.model))})]})]})}const $6I=rZI([{path:"/",element:v.jsx(BiI,{}),errorElement:v.jsx(XNI,{}),children:[{path:"/index.html",element:v.jsx(NM,{})},{path:"/",element:v.jsx(NM,{})},{path:"/history",element:v.jsx(c1I,{})},{path:"/stats",element:v.jsx(q6I,{})},{path:"/help",element:v.jsx(rx,{})},{path:"/settings",element:v.jsx(WxI,{})},{path:"/models",element:v.jsx(P4I,{})},{path:"/help",element:v.jsx(rx,{})},{path:"/modelconfig/:modelName",element:v.jsx(T4I,{})},{path:"/monaco",element:v.jsx(exI,{})},{path:"/onboarding",element:v.jsx(yDI,{})},{path:"/existingUserOnboarding",element:v.jsx(ADI,{})},{path:"/migration",element:v.jsx(G1I,{})}]}]),l3=E.createContext({getSubmenuContextItems:()=>[],addItem:()=>{}}),U_=E.createContext(void 0);function I7I(){const I=ne();RNI(I);const l=hxI(),c=sxI();return v.jsx(U_.Provider,{value:l,children:v.jsx(l3.Provider,{value:c,children:v.jsx(iZI,{router:$6I})})})}const l7I=({children:I})=>{const l=Nc(e=>{var d;return(d=e==null?void 0:e.state)==null?void 0:d.config.allowAnonymousTelemetry}),[c,G]=Gl.useState(void 0);return E.useEffect(()=>{l===!0?(HW.init("phc_JS6XFROuNbhJtVCEdTSYk6gl5ArRrTNMpCcguAXlSPs",{api_host:"https://app.posthog.com",disable_session_recording:!0}),HW.identify(window.vscMachineId),HW.opt_in_capturing(),G(c)):G(void 0)},[l]),l?v.jsx(uNI,{client:c,children:I}):v.jsx(v.Fragment,{children:I})};const c7I=yh({name:"misc",initialState:{takenAction:!1,serverStatusMessage:"Continue Server Starting"},reducers:{setTakenActionTrue:I=>{I.takenAction=!0},setServerStatusMessage:(I,l)=>{I.serverStatusMessage=l.payload}}}),G7I=c7I.reducer,c3={},e7I=Object.freeze(Object.defineProperty({__proto__:null,default:c3},Symbol.toStringTag,{value:"Module"}));var JZ={exports:{}};const V1=ff(e7I),d7I="dotenv",t7I="16.4.5",n7I="Loads environment variables from .env file",b7I="lib/main.js",a7I="lib/main.d.ts",Z7I={".":{types:"./lib/main.d.ts",require:"./lib/main.js",default:"./lib/main.js"},"./config":"./config.js","./config.js":"./config.js","./lib/env-options":"./lib/env-options.js","./lib/env-options.js":"./lib/env-options.js","./lib/cli-options":"./lib/cli-options.js","./lib/cli-options.js":"./lib/cli-options.js","./package.json":"./package.json"},W7I={"dts-check":"tsc --project tests/types/tsconfig.json",lint:"standard","lint-readme":"standard-markdown",pretest:"npm run lint && npm run dts-check",test:"tap tests/*.js --100 -Rspec","test:coverage":"tap --coverage-report=lcov",prerelease:"npm test",release:"standard-version"},r7I={type:"git",url:"git://github.com/motdotla/dotenv.git"},m7I="https://dotenvx.com",s7I=["dotenv","env",".env","environment","variables","config","settings"],u7I="README.md",h7I="BSD-2-Clause",p7I={"@definitelytyped/dtslint":"^0.0.133","@types/node":"^18.11.3",decache:"^4.6.1",sinon:"^14.0.1",standard:"^17.0.0","standard-markdown":"^7.1.0","standard-version":"^9.5.0",tap:"^16.3.0",tar:"^6.1.11",typescript:"^4.8.4"},o7I={node:">=12"},V7I={fs:!1},i7I={name:d7I,version:t7I,description:n7I,main:b7I,types:a7I,exports:Z7I,scripts:W7I,repository:r7I,funding:m7I,keywords:s7I,readmeFilename:u7I,license:h7I,devDependencies:p7I,engines:o7I,browser:V7I},qE=V1,G3=V1,F7I=V1,N7I=V1,R7I=i7I,e3=R7I.version,Y7I=/(?:^|^)\s*(?:export\s+)?([\w.-]+)(?:\s*=\s*?|:\s+?)(\s*'(?:\\'|[^'])*'|\s*"(?:\\"|[^"])*"|\s*`(?:\\`|[^`])*`|[^#\r\n]+)?\s*(?:#.*)?(?:$|$)/mg;function X7I(I){const l={};let c=I.toString();c=c.replace(/\r\n?/mg,` -`);let G;for(;(G=Y7I.exec(c))!=null;){const e=G[1];let d=G[2]||"";d=d.trim();const t=d[0];d=d.replace(/^(['"`])([\s\S]*)\1$/mg,"$2"),t==='"'&&(d=d.replace(/\\n/g,` -`),d=d.replace(/\\r/g,"\r")),l[e]=d}return l}function H7I(I){const l=M_(I),c=LG.configDotenv({path:l});if(!c.parsed){const t=new Error(`MISSING_DATA: Cannot parse ${l} for an unknown reason`);throw t.code="MISSING_DATA",t}const G=C_(I).split(","),e=G.length;let d;for(let t=0;t=e)throw n}return LG.parse(d)}function Q7I(I){console.log(`[dotenv@${e3}][INFO] ${I}`)}function w7I(I){console.log(`[dotenv@${e3}][WARN] ${I}`)}function qi(I){console.log(`[dotenv@${e3}][DEBUG] ${I}`)}function C_(I){return I&&I.DOTENV_KEY&&I.DOTENV_KEY.length>0?I.DOTENV_KEY:{}.DOTENV_KEY&&{}.DOTENV_KEY.length>0?{}.DOTENV_KEY:""}function E7I(I,l){let c;try{c=new URL(l)}catch(n){if(n.code==="ERR_INVALID_URL"){const b=new Error("INVALID_DOTENV_KEY: Wrong format. Must be in valid uri format like dotenv://:key_1234@dotenvx.com/vault/.env.vault?environment=development");throw b.code="INVALID_DOTENV_KEY",b}throw n}const G=c.password;if(!G){const n=new Error("INVALID_DOTENV_KEY: Missing key part");throw n.code="INVALID_DOTENV_KEY",n}const e=c.searchParams.get("environment");if(!e){const n=new Error("INVALID_DOTENV_KEY: Missing environment part");throw n.code="INVALID_DOTENV_KEY",n}const d=`DOTENV_VAULT_${e.toUpperCase()}`,t=I.parsed[d];if(!t){const n=new Error(`NOT_FOUND_DOTENV_ENVIRONMENT: Cannot locate environment ${d} in your .env.vault file.`);throw n.code="NOT_FOUND_DOTENV_ENVIRONMENT",n}return{ciphertext:t,key:G}}function M_(I){let l=null;if(I&&I.path&&I.path.length>0)if(Array.isArray(I.path))for(const c of I.path)qE.existsSync(c)&&(l=c.endsWith(".vault")?c:`${c}.vault`);else l=I.path.endsWith(".vault")?I.path:`${I.path}.vault`;else l=G3.resolve(process.cwd(),".env.vault");return qE.existsSync(l)?l:null}function xM(I){return I[0]==="~"?G3.join(F7I.homedir(),I.slice(1)):I}function v7I(I){Q7I("Loading env from encrypted .env.vault");const l=LG._parseVault(I);let c=process.env;return I&&I.processEnv!=null&&(c=I.processEnv),LG.populate(c,l,I),{parsed:l}}function g7I(I){const l=G3.resolve(process.cwd(),".env");let c="utf8";const G=!!(I&&I.debug);I&&I.encoding?c=I.encoding:G&&qi("No encoding is specified. UTF-8 is used by default");let e=[l];if(I&&I.path)if(!Array.isArray(I.path))e=[xM(I.path)];else{e=[];for(const b of I.path)e.push(xM(b))}let d;const t={};for(const b of e)try{const a=LG.parse(qE.readFileSync(b,{encoding:c}));LG.populate(t,a,I)}catch(a){G&&qi(`Failed to load ${b} ${a.message}`),d=a}let n=process.env;return I&&I.processEnv!=null&&(n=I.processEnv),LG.populate(n,t,I),d?{parsed:t,error:d}:{parsed:t}}function A7I(I){if(C_(I).length===0)return LG.configDotenv(I);const l=M_(I);return l?LG._configVault(I):(w7I(`You set DOTENV_KEY but you are missing a .env.vault file at ${l}. Did you forget to build it?`),LG.configDotenv(I))}function y7I(I,l){const c=Buffer.from(l.slice(-64),"hex");let G=Buffer.from(I,"base64");const e=G.subarray(0,12),d=G.subarray(-16);G=G.subarray(12,-16);try{const t=N7I.createDecipheriv("aes-256-gcm",c,e);return t.setAuthTag(d),`${t.update(G)}${t.final()}`}catch(t){const n=t instanceof RangeError,b=t.message==="Invalid key length",a=t.message==="Unsupported state or unable to authenticate data";if(n||b){const Z=new Error("INVALID_DOTENV_KEY: It must be 64 characters long (or more)");throw Z.code="INVALID_DOTENV_KEY",Z}else if(a){const Z=new Error("DECRYPTION_FAILED: Please check your DOTENV_KEY");throw Z.code="DECRYPTION_FAILED",Z}else throw t}}function J7I(I,l,c={}){const G=!!(c&&c.debug),e=!!(c&&c.override);if(typeof l!="object"){const d=new Error("OBJECT_REQUIRED: Please check the processEnv argument being passed to populate");throw d.code="OBJECT_REQUIRED",d}for(const d of Object.keys(l))Object.prototype.hasOwnProperty.call(I,d)?(e===!0&&(I[d]=l[d]),G&&qi(e===!0?`"${d}" is already defined and WAS overwritten`:`"${d}" is already defined and was NOT overwritten`)):I[d]=l[d]}const LG={configDotenv:g7I,_configVault:v7I,_parseVault:H7I,config:A7I,decrypt:y7I,parse:X7I,populate:J7I};JZ.exports.configDotenv=LG.configDotenv;JZ.exports._configVault=LG._configVault;JZ.exports._parseVault=LG._parseVault;JZ.exports.config=LG.config;JZ.exports.decrypt=LG.decrypt;JZ.exports.parse=LG.parse;JZ.exports.populate=LG.populate;JZ.exports=LG;function B7I(){const I=(void 0)((void 0)(),".continue");return(void 0)(I)||(void 0)(I),I}function k7I(){const I=(void 0)(B7I(),"dev_data");return(void 0)(I)||(void 0)(I),I}function x7I(){return(void 0)(k7I(),"devdata.sqlite")}const ot=class ot{static async createTables(l){await l.exec(`CREATE TABLE IF NOT EXISTS tokens_generated ( - id INTEGER PRIMARY KEY AUTOINCREMENT, - model TEXT NOT NULL, - provider TEXT NOT NULL, - tokens_generated INTEGER NOT NULL, - timestamp DATETIME DEFAULT CURRENT_TIMESTAMP - )`)}static async logTokensGenerated(l,c,G){const e=await ot.get();await(e==null?void 0:e.run("INSERT INTO tokens_generated (model, provider, tokens_generated) VALUES (?, ?, ?)",[l,c,G]))}static async getTokensPerDay(){const l=await ot.get();return await(l==null?void 0:l.all(`SELECT date(timestamp) as day, sum(tokens_generated) as tokens - FROM tokens_generated - GROUP BY date(timestamp)`))??[]}static async getTokensPerModel(){const l=await ot.get();return await(l==null?void 0:l.all(`SELECT model, sum(tokens_generated) as tokens - FROM tokens_generated - GROUP BY model`))??[]}static async get(){const l=x7I();if(ot.db&&c3.existsSync(l))return ot.db;const{open:c}=require("sqlite"),G=require("sqlite3");return ot.db=await c({filename:l,driver:G.Database}),await ot.createTables(ot.db),ot.db}};Zc(ot,"db",null);let $E=ot;function Iv(I,l,c,G){const e=JSON.parse(JSON.stringify(I));try{for(var d in l){let t=l[d];if(!(d in e)||c==="overwrite"){e[d]=t;continue}const n=e[d];if(Array.isArray(t)&&Array.isArray(n))if(G!=null&&G[d]){let b=[];n.forEach(a=>{t.some(Z=>G[d](a,Z))||b.push(a)}),e[d]=[...b,...t]}else e[d]=[...n,...t];else typeof t=="object"&&typeof n=="object"?e[d]=Iv(n,t,c):e[d]=t}return e}catch(t){return console.error("Error merging JSON",t,e,l),{...e,...l}}}const z7I="modulepreload",U7I=function(I){return"/"+I},zM={},C7I=function(l,c,G){if(!c||c.length===0)return l();const e=document.getElementsByTagName("link");return Promise.all(c.map(d=>{if(d=U7I(d),d in zM)return;zM[d]=!0;const t=d.endsWith(".css"),n=t?'[rel="stylesheet"]':"";if(!!G)for(let Z=e.length-1;Z>=0;Z--){const W=e[Z];if(W.href===d&&(!t||W.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${d}"]${n}`))return;const a=document.createElement("link");if(a.rel=t?"stylesheet":z7I,t||(a.as="script",a.crossOrigin=""),a.href=d,document.head.appendChild(a),t)return new Promise((Z,W)=>{a.addEventListener("load",Z),a.addEventListener("error",()=>W(new Error(`Unable to preload CSS for ${d}`)))})})).then(()=>l()).catch(d=>{const t=new Event("vite:preloadError",{cancelable:!0});if(t.payload=d,window.dispatchEvent(t),!t.defaultPrevented)throw d})},me=class me{static async capture(l,c){var G;(G=me.client)==null||G.capture({distinctId:me.uniqueId,event:l,properties:{...c,os:me.os,extensionVersion:me.extensionVersion}})}static shutdownPosthogClient(){var l;(l=me.client)==null||l.shutdown()}static async setup(l,c,G){if(me.uniqueId=c,me.os=c3.platform(),me.extensionVersion=G,!l)me.client=void 0;else try{if(!me.client){const{PostHog:e}=await C7I(()=>import("./index.esm.js"),[]);me.client=new e("phc_JS6XFROuNbhJtVCEdTSYk6gl5ArRrTNMpCcguAXlSPs",{host:"https://app.posthog.com"})}}catch(e){console.error(`Failed to setup telemetry: ${e}`)}}};Zc(me,"client"),Zc(me,"uniqueId","NOT_UNIQUE"),Zc(me,"os"),Zc(me,"extensionVersion");let $i=me;const UM={"codellama-70b":{stop:["Source: assistant"]}};class lv{constructor(l){Zc(this,"uniqueId");Zc(this,"model");Zc(this,"title");Zc(this,"systemMessage");Zc(this,"contextLength");Zc(this,"completionOptions");Zc(this,"requestOptions");Zc(this,"template");Zc(this,"promptTemplates");Zc(this,"templateMessages");Zc(this,"writeLog");Zc(this,"llmRequestHook");Zc(this,"apiKey");Zc(this,"apiBase");Zc(this,"engine");Zc(this,"apiVersion");Zc(this,"apiType");Zc(this,"region");Zc(this,"projectId");Zc(this,"_llmOptions");Zc(this,"_fetch");var G;this._llmOptions=l,l={title:this.constructor.providerName,...this.constructor.defaultOptions,...l};const c=l.template??qu(l.model);this.title=l.title,this.uniqueId=l.uniqueId??"None",this.model=l.model,this.systemMessage=l.systemMessage,this.contextLength=l.contextLength??n4,this.completionOptions={...l.completionOptions,model:l.model||"gpt-4",maxTokens:((G=l.completionOptions)==null?void 0:G.maxTokens)??zs},UM[l.model]&&(this.completionOptions=Iv(this.completionOptions,UM[l.model]??{})),this.requestOptions=l.requestOptions,this.promptTemplates={...tiI(l.model,c),...l.promptTemplates},this.templateMessages=l.templateMessages??Hk(l.model,this.providerName,l.template),this.writeLog=l.writeLog,this.llmRequestHook=l.llmRequestHook,this.apiKey=l.apiKey,this.apiBase=l.apiBase,this.apiBase&&!this.apiBase.endsWith("/")&&(this.apiBase=this.apiBase+"/"),this.engine=l.engine,this.apiVersion=l.apiVersion,this.apiType=l.apiType,this.region=l.region,this.projectId=l.projectId}get providerName(){return this.constructor.providerName}supportsImages(){return qV(this.providerName,this.model)}supportsCompletions(){var l,c;return!(this.providerName==="openai"&&((l=this.apiBase)!=null&&l.includes("api.groq.com")||(c=this.apiBase)!=null&&c.includes(":1337")))}supportsPrefill(){return["ollama","anthropic"].includes(this.providerName)}listModels(){return Promise.resolve([])}_compileChatMessages(l,c,G){let e=this.contextLength;return l.model!==this.model&&l.model in b4&&(e=b4[l.model]||n4),WiI(l.model,c,e,l.maxTokens??zs,this.supportsImages(),void 0,G,this.systemMessage)}_getSystemMessage(){return this.systemMessage}_templatePromptLikeMessages(l){if(!this.templateMessages)return l;const c=[{role:"user",content:l}],G=this._getSystemMessage();return G&&c.unshift({role:"system",content:G}),this.templateMessages(c)}_compileLogMessage(l,c){const G={contextLength:this.contextLength,...c};return`Settings: -${Object.entries(G).map(([d,t])=>`${d}: ${t}`).join(` -`)} + border-bottom: 1px solid ${yn}; + border-top: 1px solid ${yn}; +`,H2=e=>{let t=new Date(e);return isNaN(t.getTime())&&(t=new Date(parseInt(e))),t},MQ=Ve.tr` + padding: 4px; + padding-left: 16px; + padding-right: 16px; + background-color: ${yn}; + width: 100%; + font-weight: bold; + text-align: center; + align-items: center; + margin: 0; + position: sticky; + height: 1.5em; +`,tIe=Ve.div` + cursor: pointer; + flex-grow: 1; + padding-left: 1rem; + padding-right: 1rem; + padding-top: 0.5rem; + padding-bottom: 0.5rem; +`;function nIe({session:e,date:t,onDelete:n}){const r=Zr(),i=Hr(),[a,o]=E.useState(!1),[l,s]=E.useState(!1),[u,c]=E.useState(e.title),{saveSession:d,deleteSession:g,loadSession:h,getSession:m,updateSession:A}=iw(r),B=async C=>{if(C.key==="Enter"){if(u!==e.title){e.title=u;const b=await m(e.sessionId);b.title=u,await A(b),s(!1)}}else C.key==="Escape"&&(s(!1),c(e.title))};return W.jsx("td",{onMouseEnter:()=>o(!0),onMouseLeave:()=>o(!1),children:W.jsxs("div",{className:"flex justify-between items-center w-full",children:[W.jsxs(tIe,{onClick:async()=>{d(),await h(e.sessionId),i("/")},children:[W.jsx("div",{className:"text-md w-100",children:l?W.jsx(Cl,{type:"text",style:{width:"100%"},ref:C=>C&&C.focus(),value:u,onChange:C=>c(C.target.value),onKeyUp:C=>B(C),onBlur:()=>s(!1)}):JSON.stringify(e.title).slice(1,-1)}),W.jsxs("div",{style:{color:"#9ca3af"},children:[t.toLocaleString("en-US",{year:"2-digit",month:"2-digit",day:"2-digit",hour:"numeric",minute:"2-digit",hour12:!0})," | ",rIe(e.workspaceDirectory||"")]})]}),a&&W.jsx(Vr,{className:"mr-2",text:"Edit",onClick:async()=>{s(!0)},children:W.jsx(mde,{width:"1.3em",height:"1.3em"})}),a&&W.jsx(Vr,{className:"mr-2",text:"Delete",onClick:async()=>{g(e.sessionId),n(e.sessionId)},children:W.jsx($C,{width:"1.3em",height:"1.3em"})})]})})}function rIe(e){const t=e.includes("/")?"/":"\\";return e.split(t).pop()||e}function iIe(){sm();const e=Hr(),[t,n]=E.useState([]),[r,i]=E.useState([]),a=window.workspacePaths||[],o=async y=>{n(G=>G.filter(X=>X.sessionId!==y))},[l,s]=E.useState(!1),u=ct.useRef(null),[c,d]=E.useState(0),g=Zr(),{getHistory:h}=iw(g),[m,A]=E.useState(new iF({fields:["title"],storeFields:["title","sessionId","id"]})),[B,C]=E.useState("");E.useEffect(()=>{(async()=>{const G=await h();n(G),m.addAll(G.map(X=>({title:X.title,sessionId:X.sessionId,id:X.sessionId})))})()},[]),E.useEffect(()=>{const y=m.search(B,{fuzzy:.1}).map(G=>G.id);i(t.filter(G=>!l||typeof a>"u"||typeof G.workspaceDirectory>"u"?!0:a.includes(G.workspaceDirectory)).filter(G=>B===""||y.includes(G.sessionId)).sort((G,X)=>H2(X.dateCreated).getTime()-H2(G.dateCreated).getTime()))},[l,t,B,m]),E.useEffect(()=>{var y;d(((y=u.current)==null?void 0:y.clientHeight)||100)},[u.current]);const b=new Date(Date.now()-1e3*60*60*24),Q=new Date(Date.now()-1e3*60*60*24*7),F=new Date(Date.now()-1e3*60*60*24*30),K=new Date(0);return W.jsxs("div",{className:"overflow-y-scroll",style:{fontSize:nr()},children:[W.jsx("div",{ref:u,className:"sticky top-0",style:{backgroundColor:Gn},children:W.jsxs("div",{className:"items-center flex m-0 p-0",style:{borderBottom:`0.5px solid ${rt}`},children:[W.jsx(hu,{width:"1.2em",height:"1.2em",onClick:()=>e("/"),className:"inline-block ml-4 cursor-pointer"}),W.jsx("h3",{className:"text-lg font-bold m-2 inline-block",children:"History"})]})}),W.jsxs("div",{children:[W.jsx(qYe,{placeholder:"Search past sessions",type:"text",onChange:y=>C(y.target.value)}),r.length===0&&W.jsxs("div",{className:"text-center m-4",children:['No past sessions found. To start a new session, either click the "+" button or use the keyboard shortcut: ',W.jsx("b",{children:"Option + Command + N"})]}),W.jsx("table",{className:"w-full border-spacing-0 border-collapse",children:W.jsx("tbody",{children:r.map((y,G)=>{const X=G>0?H2(r[G-1].dateCreated):K,H=H2(y.dateCreated);return W.jsxs(E.Fragment,{children:[G===0&&H>b&&W.jsx(MQ,{style:{top:`${c-1}px`},children:"Today"}),HQ&&X>b&&W.jsx(MQ,{style:{top:`${c-1}px`},children:"This Week"}),HF&&X>Q&&W.jsx(MQ,{style:{top:`${c-1}px`},children:"This Month"}),W.jsx(eIe,{children:W.jsx(nIe,{session:y,date:H,onDelete:()=>o(y.sessionId)})},G)]},G)})})}),W.jsx("br",{}),W.jsx("i",{className:"text-sm ml-4",children:"All session data is saved in ~/.continue/sessions"})]})]})}function aIe(){const e=Hr();return W.jsxs("div",{className:"p-8",children:[W.jsxs("h1",{children:["Migration to ",W.jsx("code",{children:"config.json"})]}),W.jsx("p",{children:"Continue now uses a .json config file. We hope that this takes the guesswork out of setting up."}),W.jsx("p",{children:"Your configuration should have been automatically migrated, but we recommend double-checking that everything looks correct."}),W.jsxs("p",{children:["For a summary of what changed and examples of ",W.jsx("code",{children:"config.json"}),", please see the"," ",W.jsx("a",{href:"https://docs.continue.dev/walkthroughs/config-file-migration",target:"_blank",children:"migration walkthrough"}),", and if you have any questions please reach out to us on"," ",W.jsx("a",{href:"https://discord.gg/Y83xkG3uUW",target:"_blank",children:"Discord"}),"."]}),W.jsx("i",{children:"Note: If you are running the server manually and have not updated the server, this message does not apply."}),W.jsx(lP,{showStop:!1,onClick:()=>{e("/")},disabled:!1})]})}function oIe(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function FX(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function EX(e){for(var t=1;t=0)&&(n[i]=e[i]);return n}function sIe(e,t){if(e==null)return{};var n=lIe(e,t),r,i;if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function uIe(e,t){return cIe(e)||dIe(e,t)||pIe(e,t)||gIe()}function cIe(e){if(Array.isArray(e))return e}function dIe(e,t){if(!(typeof Symbol>"u"||!(Symbol.iterator in Object(e)))){var n=[],r=!0,i=!1,a=void 0;try{for(var o=e[Symbol.iterator](),l;!(r=(l=o.next()).done)&&(n.push(l.value),!(t&&n.length===t));r=!0);}catch(s){i=!0,a=s}finally{try{!r&&o.return!=null&&o.return()}finally{if(i)throw a}}return n}}function pIe(e,t){if(e){if(typeof e=="string")return RX(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return RX(e,t)}}function RX(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n=e.length?e.apply(this,i):function(){for(var o=arguments.length,l=new Array(o),s=0;s1&&arguments[1]!==void 0?arguments[1]:{};X2.initial(e),X2.handler(t);var n={current:e},r=hh(FIe)(n,t),i=hh(yIe)(n),a=hh(X2.changes)(e),o=hh(WIe)(n);function l(){var u=arguments.length>0&&arguments[0]!==void 0?arguments[0]:function(c){return c};return X2.selector(u),u(n.current)}function s(u){fIe(r,i,a,o)(u)}return[l,s]}function WIe(e,t){return Xf(t)?t(e.current):t}function yIe(e,t){return e.current=xX(xX({},e.current),t),t}function FIe(e,t,n){return Xf(t)?t(e.current):Object.keys(n).forEach(function(r){var i;return(i=t[r])===null||i===void 0?void 0:i.call(t,e.current[r])}),n}var EIe={create:QIe},RIe={paths:{vs:"https://cdn.jsdelivr.net/npm/monaco-editor@0.43.0/min/vs"}};function SIe(e){return function t(){for(var n=this,r=arguments.length,i=new Array(r),a=0;a=e.length?e.apply(this,i):function(){for(var o=arguments.length,l=new Array(o),s=0;s{r.current=!1}:e,t)}var Ua=tUe;function Yh(){}function xp(e,t,n,r){return nUe(e,r)||rUe(e,t,n,r)}function nUe(e,t){return e.editor.getModel(w_(e,t))}function rUe(e,t,n,r){return e.editor.createModel(t,n,r?w_(e,r):void 0)}function w_(e,t){return e.Uri.parse(t)}function iUe({original:e,modified:t,language:n,originalLanguage:r,modifiedLanguage:i,originalModelPath:a,modifiedModelPath:o,keepCurrentOriginalModel:l=!1,keepCurrentModifiedModel:s=!1,theme:u="light",loading:c="Loading...",options:d={},height:g="100%",width:h="100%",className:m,wrapperProps:A={},beforeMount:B=Yh,onMount:C=Yh}){let[b,Q]=E.useState(!1),[F,K]=E.useState(!0),y=E.useRef(null),G=E.useRef(null),X=E.useRef(null),H=E.useRef(C),v=E.useRef(B),k=E.useRef(!1);B_(()=>{let j=A_.init();return j.then(te=>(G.current=te)&&K(!1)).catch(te=>(te==null?void 0:te.type)!=="cancelation"&&console.error("Monaco initialization: error:",te)),()=>y.current?z():j.cancel()}),Ua(()=>{if(y.current&&G.current){let j=y.current.getOriginalEditor(),te=xp(G.current,e||"",r||n||"text",a||"");te!==j.getModel()&&j.setModel(te)}},[a],b),Ua(()=>{if(y.current&&G.current){let j=y.current.getModifiedEditor(),te=xp(G.current,t||"",i||n||"text",o||"");te!==j.getModel()&&j.setModel(te)}},[o],b),Ua(()=>{let j=y.current.getModifiedEditor();j.getOption(G.current.editor.EditorOption.readOnly)?j.setValue(t||""):t!==j.getValue()&&(j.executeEdits("",[{range:j.getModel().getFullModelRange(),text:t||"",forceMoveMarkers:!0}]),j.pushUndoStop())},[t],b),Ua(()=>{var j,te;(te=(j=y.current)==null?void 0:j.getModel())==null||te.original.setValue(e||"")},[e],b),Ua(()=>{let{original:j,modified:te}=y.current.getModel();G.current.editor.setModelLanguage(j,r||n||"text"),G.current.editor.setModelLanguage(te,i||n||"text")},[n,r,i],b),Ua(()=>{var j;(j=G.current)==null||j.editor.setTheme(u)},[u],b),Ua(()=>{var j;(j=y.current)==null||j.updateOptions(d)},[d],b);let D=E.useCallback(()=>{var J;if(!G.current)return;v.current(G.current);let j=xp(G.current,e||"",r||n||"text",a||""),te=xp(G.current,t||"",i||n||"text",o||"");(J=y.current)==null||J.setModel({original:j,modified:te})},[n,t,i,e,r,a,o]),V=E.useCallback(()=>{var j;!k.current&&X.current&&(y.current=G.current.editor.createDiffEditor(X.current,{automaticLayout:!0,...d}),D(),(j=G.current)==null||j.editor.setTheme(u),Q(!0),k.current=!0)},[d,u,D]);E.useEffect(()=>{b&&H.current(y.current,G.current)},[b]),E.useEffect(()=>{!F&&!b&&V()},[F,b,V]);function z(){var te,J,I,se;let j=(te=y.current)==null?void 0:te.getModel();l||((J=j==null?void 0:j.original)==null||J.dispose()),s||((I=j==null?void 0:j.modified)==null||I.dispose()),(se=y.current)==null||se.dispose()}return ct.createElement(C_,{width:h,height:g,isEditorReady:b,loading:c,_ref:X,className:m,wrapperProps:A})}var aUe=iUe,oUe=E.memo(aUe);function lUe(e){let t=E.useRef();return E.useEffect(()=>{t.current=e},[e]),t.current}var sUe=lUe,L2=new Map;function uUe({defaultValue:e,defaultLanguage:t,defaultPath:n,value:r,language:i,path:a,theme:o="light",line:l,loading:s="Loading...",options:u={},overrideServices:c={},saveViewState:d=!0,keepCurrentModel:g=!1,width:h="100%",height:m="100%",className:A,wrapperProps:B={},beforeMount:C=Yh,onMount:b=Yh,onChange:Q,onValidate:F=Yh}){let[K,y]=E.useState(!1),[G,X]=E.useState(!0),H=E.useRef(null),v=E.useRef(null),k=E.useRef(null),D=E.useRef(b),V=E.useRef(C),z=E.useRef(),j=E.useRef(r),te=sUe(a),J=E.useRef(!1),I=E.useRef(!1);B_(()=>{let S=A_.init();return S.then(q=>(H.current=q)&&X(!1)).catch(q=>(q==null?void 0:q.type)!=="cancelation"&&console.error("Monaco initialization: error:",q)),()=>v.current?Z():S.cancel()}),Ua(()=>{var q,T,ue,fe;let S=xp(H.current,e||r||"",t||i||"",a||n||"");S!==((q=v.current)==null?void 0:q.getModel())&&(d&&L2.set(te,(T=v.current)==null?void 0:T.saveViewState()),(ue=v.current)==null||ue.setModel(S),d&&((fe=v.current)==null||fe.restoreViewState(L2.get(a))))},[a],K),Ua(()=>{var S;(S=v.current)==null||S.updateOptions(u)},[u],K),Ua(()=>{!v.current||r===void 0||(v.current.getOption(H.current.editor.EditorOption.readOnly)?v.current.setValue(r):r!==v.current.getValue()&&(I.current=!0,v.current.executeEdits("",[{range:v.current.getModel().getFullModelRange(),text:r,forceMoveMarkers:!0}]),v.current.pushUndoStop(),I.current=!1))},[r],K),Ua(()=>{var q,T;let S=(q=v.current)==null?void 0:q.getModel();S&&i&&((T=H.current)==null||T.editor.setModelLanguage(S,i))},[i],K),Ua(()=>{var S;l!==void 0&&((S=v.current)==null||S.revealLine(l))},[l],K),Ua(()=>{var S;(S=H.current)==null||S.editor.setTheme(o)},[o],K);let se=E.useCallback(()=>{var S;if(!(!k.current||!H.current)&&!J.current){V.current(H.current);let q=a||n,T=xp(H.current,r||e||"",t||i||"",q||"");v.current=(S=H.current)==null?void 0:S.editor.create(k.current,{model:T,automaticLayout:!0,...u},c),d&&v.current.restoreViewState(L2.get(q)),H.current.editor.setTheme(o),l!==void 0&&v.current.revealLine(l),y(!0),J.current=!0}},[e,t,n,r,i,a,u,c,d,o,l]);E.useEffect(()=>{K&&D.current(v.current,H.current)},[K]),E.useEffect(()=>{!G&&!K&&se()},[G,K,se]),j.current=r,E.useEffect(()=>{var S,q;K&&Q&&((S=z.current)==null||S.dispose(),z.current=(q=v.current)==null?void 0:q.onDidChangeModelContent(T=>{I.current||Q(v.current.getValue(),T)}))},[K,Q]),E.useEffect(()=>{if(K){let S=H.current.editor.onDidChangeMarkers(q=>{var ue;let T=(ue=v.current.getModel())==null?void 0:ue.uri;if(T&&q.find(fe=>fe.path===T.path)){let fe=H.current.editor.getModelMarkers({resource:T});F==null||F(fe)}});return()=>{S==null||S.dispose()}}return()=>{}},[K,F]);function Z(){var S,q;(S=z.current)==null||S.dispose(),g?d&&L2.set(a,v.current.saveViewState()):(q=v.current.getModel())==null||q.dispose(),v.current.dispose()}return ct.createElement(C_,{width:h,height:m,isEditorReady:K,loading:s,_ref:k,className:A,wrapperProps:B})}var cUe=uUe;E.memo(cUe);function dUe(e){const[t,n]=ct.useState("function sum(a, b) {return a + b;}"),r=E.useContext(Zn);return E.useEffect(()=>{const i=zl(),a=o=>{o.data.messageId===i&&o.data.type==="readRangeInFile"&&n(o.data.contents)};return window.addEventListener("message",a),r.post("readFile",{filepath:e.filename}),()=>window.removeEventListener("message",a)},[]),W.jsxs("div",{children:[W.jsxs("div",{className:"my-2 px-2 py-1 flex justify-between items-center",style:{backgroundColor:yn},children:[W.jsx("code",{className:"cursor-pointer",onClick:()=>{r.post("showFile",{filepath:e.filename})},children:e.filename.split("/").pop()}),W.jsxs("div",{className:"flex items-center",children:[W.jsx(Vr,{text:"Reject",onClick:()=>{},children:W.jsx(IV,{width:"1.3em",height:"1.3em",color:"red"})}),W.jsx(Vr,{text:"Accept",onClick:()=>{},children:W.jsx(Z1,{width:"1.3em",height:"1.3em",color:"lightgreen"})})]})]}),W.jsx(oUe,{theme:"vs-dark",className:"overflow-visible p-1",height:"90px",options:{minimap:{enabled:!1},readOnly:!1,scrollbar:{vertical:"hidden"}},original:t,modified:"function sum(a, b) {return d + c;}"})]})}const pUe=["/Users/natesesti/Desktop/continue/gui/src/hooks/CustomPostHogProvider.tsx","/Users/natesesti/Desktop/continue/gui/src/hooks/CustomPostHogProvider.tsx","/Users/natesesti/Desktop/continue/gui/src/hooks/CustomPostHogProvider.tsx"];function gUe(){return W.jsxs("div",{children:[W.jsx("h1",{className:"px-4",children:"Multi-File Edit"}),pUe.map(e=>W.jsx(dUe,{filename:e}))]})}const hUe="codestral-latest",kX="Ollama";function b_(e){const t=E.useContext(Zn),[n,r]=E.useState("");return to()?W.jsxs("div",{className:"text-center",children:[W.jsx("div",{className:"flex justify-center",children:W.jsxs(h1,{onClick:()=>{t.post("openUrl","https://github.com/settings/tokens/new?scopes=user:email&description=Continue%20Free%20Trial%20Token%20")},className:"grid grid-flow-col items-center gap-2",children:[W.jsx("svg",{viewBox:"0 0 98 96",height:24,xmlns:"http://www.w3.org/2000/svg",children:W.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M48.854 0C21.839 0 0 22 0 49.217c0 21.756 13.993 40.172 33.405 46.69 2.427.49 3.316-1.059 3.316-2.362 0-1.141-.08-5.052-.08-9.127-13.59 2.934-16.42-5.867-16.42-5.867-2.184-5.704-5.42-7.17-5.42-7.17-4.448-3.015.324-3.015.324-3.015 4.934.326 7.523 5.052 7.523 5.052 4.367 7.496 11.404 5.378 14.235 4.074.404-3.178 1.699-5.378 3.074-6.6-10.839-1.141-22.243-5.378-22.243-24.283 0-5.378 1.94-9.778 5.014-13.2-.485-1.222-2.184-6.275.486-13.038 0 0 4.125-1.304 13.426 5.052a46.97 46.97 0 0 1 12.214-1.63c4.125 0 8.33.571 12.213 1.63 9.302-6.356 13.427-5.052 13.427-5.052 2.67 6.763.97 11.816.485 13.038 3.155 3.422 5.015 7.822 5.015 13.2 0 18.905-11.404 23.06-22.324 24.283 1.78 1.548 3.316 4.481 3.316 9.126 0 6.6-.08 11.897-.08 13.526 0 1.304.89 2.853 3.316 2.364 19.412-6.52 33.405-24.935 33.405-46.691C97.707 22 75.788 0 48.854 0z",fill:rn})}),"Generate Token"]})}),W.jsx(Cl,{placeholder:"Paste token here",value:n,onChange:i=>r(i.target.value)}),W.jsx(Ea,{disabled:!n,onClick:async()=>{await t.request("setGitHubAuthToken",{token:n}),Di("signedInToGh",!0),e.onComplete(n)},children:"Continue"})]}):W.jsx("div",{className:"flex justify-center",children:W.jsxs(h1,{onClick:async()=>{const i=await t.request("getGitHubAuthToken",void 0);Di("signedInToGh",!0),e.onComplete(i)},className:"grid grid-flow-col items-center gap-2",children:[W.jsx("svg",{viewBox:"0 0 98 96",height:24,xmlns:"http://www.w3.org/2000/svg",children:W.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M48.854 0C21.839 0 0 22 0 49.217c0 21.756 13.993 40.172 33.405 46.69 2.427.49 3.316-1.059 3.316-2.362 0-1.141-.08-5.052-.08-9.127-13.59 2.934-16.42-5.867-16.42-5.867-2.184-5.704-5.42-7.17-5.42-7.17-4.448-3.015.324-3.015.324-3.015 4.934.326 7.523 5.052 7.523 5.052 4.367 7.496 11.404 5.378 14.235 4.074.404-3.178 1.699-5.378 3.074-6.6-10.839-1.141-22.243-5.378-22.243-24.283 0-5.378 1.94-9.778 5.014-13.2-.485-1.222-2.184-6.275.486-13.038 0 0 4.125-1.304 13.426 5.052a46.97 46.97 0 0 1 12.214-1.63c4.125 0 8.33.571 12.213 1.63 9.302-6.356 13.427-5.052 13.427-5.052 2.67 6.763.97 11.816.485 13.038 3.155 3.422 5.015 7.822 5.015 13.2 0 18.905-11.404 23.06-22.324 24.283 1.78 1.548 3.316 4.481 3.316 9.126 0 6.6-.08 11.897-.08 13.526 0 1.304.89 2.853 3.316 2.364 19.412-6.52 33.405-24.935 33.405-46.691C97.707 22 75.788 0 48.854 0z",fill:rn})}),"Sign in with GitHub"]})})}const v_=[{provider:"free-trial",title:"Free Trial (Codestral)"},{provider:"fireworks",title:"Fireworks AI"},{provider:"ollama",title:"Ollama",icon:"ollama.png"}];function fUe({selectedProvider:e,setSelectedProvider:t}){return W.jsx(TU,{value:e,onChange:t,children:W.jsxs("div",{className:"relative mt-1",children:[W.jsxs(VU,{children:[W.jsxs("span",{className:"flex items-center",children:[window.vscMediaUrl&&e.icon&&W.jsx("img",{src:`${window.vscMediaUrl}/logos/${e.icon}`,height:"24px",style:{marginRight:"10px"}}),W.jsx("span",{className:"text-md",children:e.title})]}),W.jsx("span",{className:"pointer-events-none absolute inset-y-0 right-0 flex items-center pr-2",children:W.jsx(BE,{className:"h-5 w-5 text-gray-400","aria-hidden":"true"})})]}),W.jsx(F9,{as:E.Fragment,leave:"transition ease-in duration-100",leaveFrom:"opacity-100",leaveTo:"opacity-0",children:W.jsx(YU,{children:v_.map((n,r)=>W.jsx(IU,{selected:e.title===n.title,className:({active:i})=>`relative cursor-default select-none py-2 pl-10 pr-4 ${i?"bg-amber-100 text-amber-900":"text-gray-900"}`,value:n,children:({selected:i})=>W.jsxs(W.Fragment,{children:[window.vscMediaUrl&&n.icon&&W.jsx("img",{src:`${window.vscMediaUrl}/logos/${n.icon}`,height:"24px",style:{marginRight:"10px"}}),W.jsx("span",{className:"text-md",children:n.title}),i?W.jsx("span",{className:"inset-y-0 ml-auto flex items-center pl-3 text-amber-600",children:W.jsx(Z1,{className:"h-5 w-5","aria-hidden":"true"})}):null]})},r))})})]})})}function mUe(){const e=E.useContext(Zn),t=Hr(),[n,r]=E.useState(v_[0]),[i,a]=E.useState(""),{completeOnboarding:o}=em();return W.jsxs("div",{className:"p-2 max-w-96 mt-16 mx-auto",children:[W.jsx("h1",{className:"text-center",children:"Autocomplete Model"}),W.jsx("p",{className:"text-center",children:"Tab autocomplete requires a separate model. Currently we are supporting free usage by signing in with GitHub. Alternatively, select another option from the dropdown."}),W.jsx("br",{}),W.jsx("br",{}),W.jsx(fUe,{selectedProvider:n,setSelectedProvider:r}),W.jsx("br",{}),W.jsx("br",{}),n.provider==="ollama"&&W.jsx("div",{className:"text-center",children:W.jsx(Ea,{onClick:()=>{t("/localOnboarding")},children:"Set up Ollama"})}),n.provider==="free-trial"&&W.jsxs("div",{className:"text-center",children:[W.jsx("p",{children:"Sign in to GitHub to try autocomplete for free"}),W.jsx(b_,{onComplete:async l=>{await e.request("addAutocompleteModel",{model:{title:"Autocomplete Trial",provider:"free-trial",model:hUe}}),o()}})]}),n.provider==="fireworks"&&W.jsxs("div",{className:"text-center",children:[W.jsx("h4",{children:"Paste your API key"}),W.jsx(h1,{className:"w-full border-2 border-solid",onClick:()=>{e.post("openUrl","https://fireworks.ai/api-keys")},children:"Get API Key"}),W.jsx(Cl,{id:"apiKey",className:"w-full",placeholder:"Enter API Key",value:i,onChange:l=>{a(l.target.value)}}),W.jsx(Ea,{onClick:async()=>{await e.request("addAutocompleteModel",{model:{title:"Fireworks Autocomplete",provider:"fireworks",model:"starcoder-7b",apiKey:i}}),o()},children:"Save"})]})]})}const _R=Ve(Ea)` + background-color: transparent; + color: ${rn}; + border: 1px solid ${rt}cc; + + &:hover { + border: 1px solid ${rt}; + background-color: ${rt}22; + } +`,IQ=Ve.div` + border: 1px solid ${rt}; + border-radius: ${jt}; + transition: all 0.2s; + padding-left: 16px; + padding-right: 16px; -############################################ + &:hover { + ${e=>e.selected?"":`background-color: ${rt}22;`} + box-shadow: 0 0 4px 0px ${rt}; + cursor: pointer; + } -${l}`}_logTokensGenerated(l,c){let G=this.countTokens(c);$i.capture("tokens_generated",{model:l,provider:this.providerName,tokens:G}),$i.capture("tokensGenerated",{model:l,provider:this.providerName,tokens:G}),$E.logTokensGenerated(l,this.providerName,G)}fetch(l,c){var e;if(this._fetch)return this._fetch(l,c);const G=new Headers(c==null?void 0:c.headers);for(const[d,t]of Object.entries(((e=this.requestOptions)==null?void 0:e.headers)??{}))G.append(d,t);return fetch(l,{...c,headers:G})}_parseCompletionOptions(l){const c=l.log??!0,G=l.raw??!1;return delete l.log,{completionOptions:Iv(this.completionOptions,l),log:c,raw:G}}_formatChatMessages(l){const c=l?l.map(e=>({...e})):[];let G="";for(let e of c){if("content"in e&&Array.isArray(e.content)){const d=Ne(e.content);e.content=d}G+=`<${e.role}> -${e.content||""} + ${e=>e.selected&&` + background-color: ${rt}44; + box-shadow: 0 0 4px 0px ${rt}; + `} +`,DX=Ve.p` + font-size: 0.8rem; + color: ${rt}; + margin-top: 0.25rem; +`;function AUe(){const e=Zr(),t=E.useContext(Zn),[n,r]=E.useState(""),[i,a]=E.useState(""),{completeOnboarding:o}=em(),l=!!n&&!!i,{anthropic:s,mistral:u}=Ac,{claude35Sonnet:c,codestral:d}=Ct;async function g(h){h.preventDefault();const m={model:c.params.model,provider:s.provider,apiKey:i,title:c.params.title},A={title:d.params.title,provider:u.provider,model:d.params.model,apiKey:n};t.post("config/addModel",{model:m}),e(B1({title:m.title,force:!0})),await t.request("addAutocompleteModel",{model:A}),t.post("showTutorial",void 0),o()}return W.jsxs("form",{onSubmit:g,className:"pt-8",children:[W.jsxs("div",{children:[W.jsxs("h2",{children:["Chat model - ",W.jsx("i",{children:c.title})]}),W.jsx("p",{className:"pb-6",children:c.description}),W.jsxs("label",{className:"block pb-4",children:["Anthropic API Key",W.jsx(Cl,{className:"w-full",placeholder:"Enter your Anthropic API Key",value:i,onChange:h=>a(h.target.value)}),W.jsxs(DX,{children:[W.jsx("a",{href:s.apiKeyUrl,target:"_blank",children:"Click here"})," ","to create an Anthropic API key"]})]})]}),W.jsxs("div",{children:[W.jsxs("h2",{children:["Autocomplete model - ",W.jsx("i",{children:d.title})]}),W.jsx("p",{className:"pb-6",children:d.description}),W.jsxs("label",{className:"block pb-8",children:["Mistral API Key (",W.jsx("i",{children:d.title}),")",W.jsx(Cl,{className:"w-full",placeholder:"Enter your Mistral API Key",value:n,onChange:h=>r(h.target.value)}),W.jsxs(DX,{children:[W.jsx("a",{href:u.apiKeyUrl,target:"_blank",children:"Click here"})," ","to create a Mistral API key"]})]})]}),W.jsx("div",{className:"flex justify-end",children:W.jsx(_R,{type:"submit",disabled:!l,children:"Done"})})]})}function CUe(){const e=E.useContext(Zn),t=Hr(),[n,r]=E.useState(!0),{completeOnboarding:i}=em();return W.jsxs("div",{className:"p-8 overflow-y-scroll",children:[W.jsx("div",{children:W.jsx(hu,{width:"1.2em",height:"1.2em",onClick:()=>t(-1),className:"inline-block cursor-pointer"})}),W.jsxs("div",{className:"pb-4 text-center",children:[W.jsx("h1",{children:"Model setup"}),W.jsx("p",{children:"Choose between our default configuration that includes the best models available, or configure your own setup."})]}),W.jsx(iO,{selected:n,optionOne:"Best models",optionTwo:"Configure your own",onClick:()=>{r(a=>!a)}}),n&&W.jsx(AUe,{}),!n&&W.jsx(UU,{onDone:()=>{e.post("showTutorial",void 0),Vo("signedInToGh")?i():t("/apiKeyAutocompleteOnboarding")}})]})}const BUe=Ve.div` + padding-left: 8px; + padding-right: 8px; + display: flex; + border-radius: ${jt}; + width: fit-content; + gap: 8px; -`}return G}async*streamComplete(l,c={}){const{completionOptions:G,log:e,raw:d}=this._parseCompletionOptions(c);l=Qw(G.model,this.contextLength,l,G.maxTokens??zs),d||(l=this._templatePromptLikeMessages(l)),e&&(this.writeLog&&await this.writeLog(this._compileLogMessage(l,G)),this.llmRequestHook&&this.llmRequestHook(G.model,l));let t="";for await(const n of this._streamComplete(l,G))t+=n,yield n;return this._logTokensGenerated(G.model,t),e&&this.writeLog&&await this.writeLog(`Completion: + ${({clicked:e})=>e&&"background-color: #0f02;"} -${t} + align-items: center; -`),{prompt:l,completion:t}}async complete(l,c={}){const{completionOptions:G,log:e,raw:d}=this._parseCompletionOptions(c);l=Qw(G.model,this.contextLength,l,G.maxTokens??zs),d||(l=this._templatePromptLikeMessages(l)),e&&(this.writeLog&&await this.writeLog(this._compileLogMessage(l,G)),this.llmRequestHook&&this.llmRequestHook(G.model,l));const t=await this._complete(l,G);return this._logTokensGenerated(G.model,t),e&&this.writeLog&&await this.writeLog(`Completion: + border: 1px solid ${rt}; -${t} + cursor: pointer; + &:hover { + background-color: ${({clicked:e})=>e?"#0f02":"#fff1"}; + } +`;function UQ(e){const[t,n]=E.useState(!1),r=`info-hover-${encodeURIComponent(e.children)}`,i=document.getElementById("tooltip-portal-div"),a=E.useContext(Zn);return W.jsxs(W.Fragment,{children:[W.jsx("div",{className:"flex items-center justify-center mt-8","data-tooltip-id":r,children:W.jsxs(BUe,{clicked:t,style:{border:`0.5px solid ${rt}`},className:"grid-cols-2",onClick:()=>{a.ide.runCommand(e.children),n(!0),setTimeout(()=>n(!1),2e3),a.post("copyText",{text:e.children})},children:[t?W.jsx(Z1,{width:"20px",height:"20px",className:"cursor-pointer hover:bg-white",color:"#0b0"}):W.jsx(oy,{width:"20px",height:"20px",className:"cursor-pointer hover:bg-white"}),W.jsx("pre",{children:W.jsx("code",{style:{color:rn,backgroundColor:"transparent"},children:e.children})})]})}),i&&Al.createPortal(W.jsx(pc,{id:r,place:"top",children:"Copy to terminal"}),i)]})}function M2(e){return W.jsxs("div",{className:"flex gap-4 items-center",children:[e.isComplete?W.jsx(hYe,{width:"24px",height:"24px",color:"#0b0",className:"flex-none"}):W.jsx("div",{className:"flex-none border border-solid rounded-full w-5 h-5 mt-1",style:{borderColor:rt}}),W.jsx("h3",{children:e.children})]})}const wUe="https://ollama.com/download",bUe=1e3;function vUe(){const e=Hr(),t=E.useContext(Zn),[n,r]=E.useState(void 0),[i,a]=E.useState("waiting_to_download"),[o,l]=E.useState(!1),{completeOnboarding:s}=em(),u=i==="verified";function c(g){return n?n.some(h=>h.startsWith(g)):!1}function d(g){switch(g){case"waiting_to_download":return W.jsxs("div",{className:"pb-6",children:[W.jsx("a",{href:wUe,target:"_blank",onClick:()=>a("downloading"),children:"Click here to download Ollama from their site."}),W.jsx("p",{className:"leading-relaxed",children:"Once downloaded, start the application. This page will refresh once you've started Ollama."})]});case"downloading":return W.jsx("p",{className:"pb-6",children:"Checking for connection to Ollama..."});case"verified":return W.jsx(W.Fragment,{});default:return W.jsx(W.Fragment,{})}}return E.useEffect(()=>{!o&&c("llama3")&&(t.post("llm/complete",{completionOptions:{},prompt:"",title:kX}),l(!0))},[n]),E.useEffect(()=>{const g=async()=>{const m=await t.request("llm/listModels",{title:kX});Array.isArray(m)&&(u||a("verified"),r(m))};g();const h=setInterval(g,bUe);return()=>{clearInterval(h)}},[]),W.jsxs("div",{className:"p-8 overflow-y-scroll",children:[W.jsx("div",{children:W.jsx(hu,{width:"1.2em",height:"1.2em",onClick:()=>e(-1),className:"inline-block cursor-pointer"})}),W.jsx("h1",{className:"text-center",children:"Set up your local LLM"}),W.jsxs("div",{children:[W.jsx(M2,{isComplete:u,children:"1. Download and start Ollama"}),d(i)]}),W.jsxs("div",{children:[W.jsx(M2,{isComplete:c("llama3"),children:"2. Download a model for chat"}),!c("llama3")&&W.jsxs("div",{className:"pb-6",children:[W.jsxs("p",{className:"leading-relaxed",children:["We recommend using ",W.jsx("code",{children:"llama3"}),", the latest open-source model trained by Meta."]}),W.jsx(UQ,{children:" ollama run llama3"})]})]}),W.jsxs("div",{children:[W.jsx(M2,{isComplete:c("starcoder2:3b"),children:"3. Download a model for tab autocomplete"}),!c("starcoder2:3b")&&W.jsxs("div",{className:"pb-6",children:[W.jsxs("p",{className:"leading-relaxed",children:["We recommend using ",W.jsx("code",{children:"starcoder2:3b"}),", a state-of-the-art 3B parameter autocomplete model trained by Hugging Face."]}),W.jsx(UQ,{children:"ollama run starcoder2:3b"})]})]}),W.jsxs("div",{children:[W.jsx(M2,{isComplete:c("nomic-embed-text"),children:"4. Download a model for embeddings"}),!c("nomic-embed-text")&&W.jsxs("div",{className:"pb-6",children:[W.jsxs("p",{className:"leading-relaxed",children:["We recommend using ",W.jsx("code",{children:"nomic-embed-text"}),", a 8192 context-length that outperforms OpenAI ",W.jsx("code",{children:"ada-002"})," ","and ",W.jsx("code",{children:"text-embedding-3-small"}),"on both short and long context tasks."]}),W.jsx(UQ,{children:"ollama pull nomic-embed-text"})]})]}),W.jsx("div",{className:"flex flex-col justify-end mt-4",children:W.jsx(_R,{onClick:s,children:"Complete onboarding"})})]})}function KUe(){const e=Hr(),t=Zr(),n=E.useContext(Zn),[r,i]=E.useState(!1),[a,o]=E.useState(void 0),{completeOnboarding:l}=em();function s(){switch(n.post("completeOnboarding",{mode:a}),a!=="local"&&n.post("index/forceReIndex",void 0),a){case"local":e("/localOnboarding");break;case"apiKeys":e("/apiKeysOnboarding");break;case"freeTrial":l();break}}return W.jsxs("div",{className:"max-w-96 mx-auto leading-normal",children:[W.jsxs("div",{className:"leading-relaxed",children:[W.jsx("h1",{className:"text-center",children:"Welcome to Continue"}),W.jsxs("p",{className:"text-center ",children:["Let's find the setup that works best for you. You can update your configuration after onboarding by clicking the",W.jsx(t3,{className:"inline-block h-5 w-5 align-middle px-1"}),"icon in the bottom-right corner of Continue."]})]}),W.jsxs("div",{className:"flex flex-col gap-6 pb-8 pt-4",children:[(!QI()||to())&&W.jsxs(IQ,{selected:a==="freeTrial",onClick:()=>o("freeTrial"),children:[W.jsxs("h3",{children:[W.jsx(z0e,{width:"1.4em",height:"1.4em",className:"align-middle pr-2"}),"Free trial"]}),W.jsxs("p",{children:["Start your free trial of ",dd," requests by signing into GitHub."]}),W.jsxs("ul",{className:"pl-4 mb-0",children:[W.jsxs("li",{children:[W.jsx("b",{children:"Chat:"})," Llama 3 with Ollama, LM Studio, etc."]}),W.jsxs("li",{children:[W.jsx("b",{children:"Embeddings:"})," Nomic Embed"]}),W.jsxs("li",{children:[W.jsx("b",{children:"Autocomplete:"})," Starcoder2 3B"]})]}),!r&&W.jsx("div",{className:"flex justify-center py-3",children:W.jsx(b_,{onComplete:()=>i(!0)})})]}),W.jsxs(IQ,{selected:a==="local",onClick:()=>o("local"),children:[W.jsxs("h3",{children:[W.jsx(G0e,{width:"1.4em",height:"1.4em",className:"align-middle pr-2"}),"Local models"]}),W.jsx("p",{children:"No code will leave your computer, but less powerful models are used."}),W.jsxs("ul",{className:"pl-4 ",children:[W.jsxs("li",{children:[W.jsx("b",{children:"Chat:"})," Llama 3 with Ollama, LM Studio, etc."]}),W.jsxs("li",{children:[W.jsx("b",{children:"Embeddings:"})," Nomic Embed"]}),W.jsxs("li",{children:[W.jsx("b",{children:"Autocomplete:"})," Starcoder2 3B"]})]})]}),W.jsxs(IQ,{selected:a==="apiKeys",onClick:()=>o("apiKeys"),children:[W.jsxs("h3",{children:[W.jsx(d0e,{width:"1.4em",height:"1.4em",className:"align-middle pr-2"}),"Best experience"]}),W.jsx("p",{children:"Start with the most powerful models available, or customize your own configuration."}),W.jsxs("ul",{className:"pl-4 ",children:[W.jsxs("li",{children:[W.jsx("b",{children:"Chat:"})," Claude 3.5 Sonnet"]}),W.jsxs("li",{children:[W.jsx("b",{children:"Embeddings:"})," Voyage Code 2"]}),W.jsxs("li",{children:[W.jsx("b",{children:"Autocomplete:"})," Codestral"]})]})]})]}),W.jsx("div",{className:"flex justify-end",children:W.jsxs("div",{className:"flex items-center gap-4 ml-auto",children:[W.jsx("div",{className:"cursor-pointer",style:{color:rt},onClick:u=>{t(Ql(!0)),t(Ec(W.jsx(OU,{text:"Are you sure you want to skip onboarding? Unless you are an existing user or already have a config.json we don't recommend this.",onConfirm:()=>{l()}})))},children:"Skip"}),W.jsx(_R,{disabled:!a,onClick:s,children:"Continue"})]})})]})}const K_="28px",QUe=Ve.div` + margin-top: 16px; + margin: auto; + width: ${K_}; + animation: flash 1.2s infinite ease-in-out; + @keyframes flash { + 0% { + opacity: 0.4; + } + 50% { + opacity: 1; + } + 100% { + opacity: 0.4; + } + } +`;function WUe(e){const t=window.vscMediaUrl;return W.jsx(QUe,{children:t?W.jsx("img",{src:`${t}/play_button.png`,width:"22px"}):W.jsx(wE,{width:e.size||K_})})}const yUe=Ve(Ea)` + background-color: transparent; + color: ${rt}; + border: 1px solid ${rt}; + &:hover { + background-color: ${rt}; + color: black; + } +`,FUe=Ve(Ea)` + &:hover { + opacity: 0.8; + } +`,EUe=Ve.input.attrs({type:"range"})` + --webkit-appearance: none; + width: 100%; + background-color: ${yn}; + outline: none; + border: none; + opacity: 0.7; + -webkit-transition: 0.2s; + transition: opacity 0.2s; + &:hover { + opacity: 1; + } + &::-webkit-slider-runnable-track { + width: 100%; + height: 8px; + cursor: pointer; + background: ${rt}; + border-radius: 4px; + } + &::-webkit-slider-thumb { + -webkit-appearance: none; + appearance: none; + width: 8px; + height: 8px; + cursor: pointer; + margin-top: -3px; + } + &::-moz-range-thumb { + width: 8px; + height: 8px; + cursor: pointer; + margin-top: -3px; + } -`),t}async chat(l,c={}){let G="";for await(const e of this.streamChat(l,c))G+=e.content;return{role:"assistant",content:G}}async*streamChat(l,c={}){const{completionOptions:G,log:e,raw:d}=this._parseCompletionOptions(c);l=this._compileChatMessages(G,l);const t=this.templateMessages?this.templateMessages(l):this._formatChatMessages(l);e&&(this.writeLog&&await this.writeLog(this._compileLogMessage(t,G)),this.llmRequestHook&&this.llmRequestHook(G.model,t));let n="";try{if(this.templateMessages)for await(const b of this._streamComplete(t,G))n+=b,yield{role:"assistant",content:b};else for await(const b of this._streamChat(l,G))n+=b.content,yield b}catch(b){throw console.log(b),b}return this._logTokensGenerated(G.model,n),e&&this.writeLog&&await this.writeLog(`Completion: + &:focus { + outline: none; + border: none; + } +`,RUe=Ve(Ea)` + padding: 2px 4px; + margin-left: auto; + margin-right: 4px; + background-color: transparent; + color: ${rn}; + border: 1px solid ${rt}; + &:hover { + background-color: ${rt}; + } +`;function SUe(){var o;const e=B9(),t=l=>console.log(l),n=E.useContext(Zn),r=Hr(),i=en(l=>l.state.config);Zr();const a=()=>{r("/")};return E.useEffect(()=>{var l;i&&(e.setValue("systemMessage",i.systemMessage),e.setValue("completionOptions.temperature",(l=i.completionOptions)==null?void 0:l.temperature))},[i]),W.jsx(m9,{...e,children:W.jsxs("div",{className:"overflow-y-scroll",children:[W.jsxs("div",{className:"items-center flex sticky top-0",style:{borderBottom:`0.5px solid ${rt}`,backgroundColor:Gn},children:[W.jsx(hu,{width:"1.2em",height:"1.2em",onClick:a,className:"inline-block ml-4 cursor-pointer"}),W.jsx("h3",{className:"text-lg font-bold m-2 inline-block",children:"Settings"}),W.jsx(RUe,{onClick:()=>{n.post("showFile",{filepath:jf()=="windows"?"~\\.continue\\config.json":"~/.continue/config.json"})},children:"Open config.json"})]}),W.jsx("form",{onSubmit:e.handleSubmit(t),children:i?W.jsxs("div",{className:"p-2",children:[W.jsxs("h3",{className:"flex gap-1",children:["System Message",W.jsx(GB,{msg:`Set a system message with information that the LLM should always + keep in mind (e.g. "Please give concise answers. Always respond in + Spanish.")`})]}),W.jsx(v1e,{placeholder:"Enter a system message (e.g. 'Always respond in German')",...e.register("systemMessage")}),W.jsx(Ay,{}),W.jsxs("h3",{className:"flex gap-1",children:["Temperature",W.jsx(GB,{msg:`Set temperature to any value between 0 and 1. Higher values will + make the LLM more creative, while lower values will make it more + predictable.`})]}),W.jsxs("div",{className:"flex justify-between mx-16 gap-1",children:[W.jsx("p",{children:"0"}),W.jsx(EUe,{type:"range",min:"0",max:"1",step:"0.01",...e.register("completionOptions.temperature")}),W.jsx("p",{children:"1"})]}),W.jsx("div",{className:"text-center",style:{marginTop:"-25px"},children:W.jsx("p",{className:"text-sm text-gray-500",children:e.watch("completionOptions.temperature")||((o=i.completionOptions)==null?void 0:o.temperature)||"-"})}),W.jsx(Ay,{})]}):W.jsx(WUe,{})}),W.jsx("hr",{}),W.jsxs("div",{className:"px-2",children:[W.jsx("h3",{children:"Appearance"}),W.jsx("p",{children:"Font Size"}),W.jsx(K1e,{type:"number",min:"8",max:"48",step:"1",defaultValue:nr(),onChange:l=>{Di("fontSize",parseInt(l.target.value))}})]}),W.jsxs("div",{className:"flex gap-2 justify-end px-4",children:[W.jsx(yUe,{onClick:()=>{r("/")},children:"Cancel"}),W.jsx(FUe,{onClick:a,children:"Save"})]})]})})}var Q_={},ow={},Km={},Qm={},$R={exports:{}},xUe=({onlyFirst:e=!1}={})=>{const t=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(t,e?void 0:"g")};const GUe=xUe;var qR=e=>typeof e=="string"?e.replace(GUe(),""):e,e8={exports:{}};const W_=e=>Number.isNaN(e)?!1:e>=4352&&(e<=4447||e===9001||e===9002||11904<=e&&e<=12871&&e!==12351||12880<=e&&e<=19903||19968<=e&&e<=42182||43360<=e&&e<=43388||44032<=e&&e<=55203||63744<=e&&e<=64255||65040<=e&&e<=65049||65072<=e&&e<=65131||65281<=e&&e<=65376||65504<=e&&e<=65510||110592<=e&&e<=110593||127488<=e&&e<=127569||131072<=e&&e<=262141);e8.exports=W_;e8.exports.default=W_;var y_=e8.exports,kUe=function(){return/\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F|\uD83D\uDC68(?:\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68\uD83C\uDFFB|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|[\u2695\u2696\u2708]\uFE0F|\uD83D[\uDC66\uDC67]|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708])\uFE0F|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C[\uDFFB-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)\uD83C\uDFFB|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB\uDFFC])|\uD83D\uDC69(?:\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB-\uDFFD])|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|(?:(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)\uFE0F|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\uD83C\uDFF4\u200D\u2620)\uFE0F|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF4\uD83C\uDDF2|\uD83C\uDDF6\uD83C\uDDE6|[#\*0-9]\uFE0F\u20E3|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270A-\u270D]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC70\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDCAA\uDD74\uDD7A\uDD90\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD36\uDDB5\uDDB6\uDDBB\uDDD2-\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5\uDEEB\uDEEC\uDEF4-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g};const DUe=qR,NUe=y_,ZUe=kUe,F_=e=>{if(typeof e!="string"||e.length===0||(e=DUe(e),e.length===0))return 0;e=e.replace(ZUe()," ");let t=0;for(let n=0;n=127&&r<=159||r>=768&&r<=879||(r>65535&&n++,t+=NUe(r)?2:1)}return t};$R.exports=F_;$R.exports.default=F_;var Wm=$R.exports,zt={};const NX="[\uD800-\uDBFF][\uDC00-\uDFFF]",HUe=e=>e&&e.exact?new RegExp(`^${NX}$`):new RegExp(NX,"g");var XUe=HUe,t8={exports:{}},OQ,ZX;function LUe(){return ZX||(ZX=1,OQ={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}),OQ}var JQ,HX;function E_(){if(HX)return JQ;HX=1;const e=LUe(),t={};for(const i of Object.keys(e))t[e[i]]=i;const n={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};JQ=n;for(const i of Object.keys(n)){if(!("channels"in n[i]))throw new Error("missing channels property: "+i);if(!("labels"in n[i]))throw new Error("missing channel labels property: "+i);if(n[i].labels.length!==n[i].channels)throw new Error("channel and label counts mismatch: "+i);const{channels:a,labels:o}=n[i];delete n[i].channels,delete n[i].labels,Object.defineProperty(n[i],"channels",{value:a}),Object.defineProperty(n[i],"labels",{value:o})}n.rgb.hsl=function(i){const a=i[0]/255,o=i[1]/255,l=i[2]/255,s=Math.min(a,o,l),u=Math.max(a,o,l),c=u-s;let d,g;u===s?d=0:a===u?d=(o-l)/c:o===u?d=2+(l-a)/c:l===u&&(d=4+(a-o)/c),d=Math.min(d*60,360),d<0&&(d+=360);const h=(s+u)/2;return u===s?g=0:h<=.5?g=c/(u+s):g=c/(2-u-s),[d,g*100,h*100]},n.rgb.hsv=function(i){let a,o,l,s,u;const c=i[0]/255,d=i[1]/255,g=i[2]/255,h=Math.max(c,d,g),m=h-Math.min(c,d,g),A=function(B){return(h-B)/6/m+1/2};return m===0?(s=0,u=0):(u=m/h,a=A(c),o=A(d),l=A(g),c===h?s=l-o:d===h?s=1/3+a-l:g===h&&(s=2/3+o-a),s<0?s+=1:s>1&&(s-=1)),[s*360,u*100,h*100]},n.rgb.hwb=function(i){const a=i[0],o=i[1];let l=i[2];const s=n.rgb.hsl(i)[0],u=1/255*Math.min(a,Math.min(o,l));return l=1-1/255*Math.max(a,Math.max(o,l)),[s,u*100,l*100]},n.rgb.cmyk=function(i){const a=i[0]/255,o=i[1]/255,l=i[2]/255,s=Math.min(1-a,1-o,1-l),u=(1-a-s)/(1-s)||0,c=(1-o-s)/(1-s)||0,d=(1-l-s)/(1-s)||0;return[u*100,c*100,d*100,s*100]};function r(i,a){return(i[0]-a[0])**2+(i[1]-a[1])**2+(i[2]-a[2])**2}return n.rgb.keyword=function(i){const a=t[i];if(a)return a;let o=1/0,l;for(const s of Object.keys(e)){const u=e[s],c=r(i,u);c.04045?((a+.055)/1.055)**2.4:a/12.92,o=o>.04045?((o+.055)/1.055)**2.4:o/12.92,l=l>.04045?((l+.055)/1.055)**2.4:l/12.92;const s=a*.4124+o*.3576+l*.1805,u=a*.2126+o*.7152+l*.0722,c=a*.0193+o*.1192+l*.9505;return[s*100,u*100,c*100]},n.rgb.lab=function(i){const a=n.rgb.xyz(i);let o=a[0],l=a[1],s=a[2];o/=95.047,l/=100,s/=108.883,o=o>.008856?o**(1/3):7.787*o+16/116,l=l>.008856?l**(1/3):7.787*l+16/116,s=s>.008856?s**(1/3):7.787*s+16/116;const u=116*l-16,c=500*(o-l),d=200*(l-s);return[u,c,d]},n.hsl.rgb=function(i){const a=i[0]/360,o=i[1]/100,l=i[2]/100;let s,u,c;if(o===0)return c=l*255,[c,c,c];l<.5?s=l*(1+o):s=l+o-l*o;const d=2*l-s,g=[0,0,0];for(let h=0;h<3;h++)u=a+1/3*-(h-1),u<0&&u++,u>1&&u--,6*u<1?c=d+(s-d)*6*u:2*u<1?c=s:3*u<2?c=d+(s-d)*(2/3-u)*6:c=d,g[h]=c*255;return g},n.hsl.hsv=function(i){const a=i[0];let o=i[1]/100,l=i[2]/100,s=o;const u=Math.max(l,.01);l*=2,o*=l<=1?l:2-l,s*=u<=1?u:2-u;const c=(l+o)/2,d=l===0?2*s/(u+s):2*o/(l+o);return[a,d*100,c*100]},n.hsv.rgb=function(i){const a=i[0]/60,o=i[1]/100;let l=i[2]/100;const s=Math.floor(a)%6,u=a-Math.floor(a),c=255*l*(1-o),d=255*l*(1-o*u),g=255*l*(1-o*(1-u));switch(l*=255,s){case 0:return[l,g,c];case 1:return[d,l,c];case 2:return[c,l,g];case 3:return[c,d,l];case 4:return[g,c,l];case 5:return[l,c,d]}},n.hsv.hsl=function(i){const a=i[0],o=i[1]/100,l=i[2]/100,s=Math.max(l,.01);let u,c;c=(2-o)*l;const d=(2-o)*s;return u=o*s,u/=d<=1?d:2-d,u=u||0,c/=2,[a,u*100,c*100]},n.hwb.rgb=function(i){const a=i[0]/360;let o=i[1]/100,l=i[2]/100;const s=o+l;let u;s>1&&(o/=s,l/=s);const c=Math.floor(6*a),d=1-l;u=6*a-c,c&1&&(u=1-u);const g=o+u*(d-o);let h,m,A;switch(c){default:case 6:case 0:h=d,m=g,A=o;break;case 1:h=g,m=d,A=o;break;case 2:h=o,m=d,A=g;break;case 3:h=o,m=g,A=d;break;case 4:h=g,m=o,A=d;break;case 5:h=d,m=o,A=g;break}return[h*255,m*255,A*255]},n.cmyk.rgb=function(i){const a=i[0]/100,o=i[1]/100,l=i[2]/100,s=i[3]/100,u=1-Math.min(1,a*(1-s)+s),c=1-Math.min(1,o*(1-s)+s),d=1-Math.min(1,l*(1-s)+s);return[u*255,c*255,d*255]},n.xyz.rgb=function(i){const a=i[0]/100,o=i[1]/100,l=i[2]/100;let s,u,c;return s=a*3.2406+o*-1.5372+l*-.4986,u=a*-.9689+o*1.8758+l*.0415,c=a*.0557+o*-.204+l*1.057,s=s>.0031308?1.055*s**(1/2.4)-.055:s*12.92,u=u>.0031308?1.055*u**(1/2.4)-.055:u*12.92,c=c>.0031308?1.055*c**(1/2.4)-.055:c*12.92,s=Math.min(Math.max(0,s),1),u=Math.min(Math.max(0,u),1),c=Math.min(Math.max(0,c),1),[s*255,u*255,c*255]},n.xyz.lab=function(i){let a=i[0],o=i[1],l=i[2];a/=95.047,o/=100,l/=108.883,a=a>.008856?a**(1/3):7.787*a+16/116,o=o>.008856?o**(1/3):7.787*o+16/116,l=l>.008856?l**(1/3):7.787*l+16/116;const s=116*o-16,u=500*(a-o),c=200*(o-l);return[s,u,c]},n.lab.xyz=function(i){const a=i[0],o=i[1],l=i[2];let s,u,c;u=(a+16)/116,s=o/500+u,c=u-l/200;const d=u**3,g=s**3,h=c**3;return u=d>.008856?d:(u-16/116)/7.787,s=g>.008856?g:(s-16/116)/7.787,c=h>.008856?h:(c-16/116)/7.787,s*=95.047,u*=100,c*=108.883,[s,u,c]},n.lab.lch=function(i){const a=i[0],o=i[1],l=i[2];let s;s=Math.atan2(l,o)*360/2/Math.PI,s<0&&(s+=360);const c=Math.sqrt(o*o+l*l);return[a,c,s]},n.lch.lab=function(i){const a=i[0],o=i[1],s=i[2]/360*2*Math.PI,u=o*Math.cos(s),c=o*Math.sin(s);return[a,u,c]},n.rgb.ansi16=function(i,a=null){const[o,l,s]=i;let u=a===null?n.rgb.hsv(i)[2]:a;if(u=Math.round(u/50),u===0)return 30;let c=30+(Math.round(s/255)<<2|Math.round(l/255)<<1|Math.round(o/255));return u===2&&(c+=60),c},n.hsv.ansi16=function(i){return n.rgb.ansi16(n.hsv.rgb(i),i[2])},n.rgb.ansi256=function(i){const a=i[0],o=i[1],l=i[2];return a===o&&o===l?a<8?16:a>248?231:Math.round((a-8)/247*24)+232:16+36*Math.round(a/255*5)+6*Math.round(o/255*5)+Math.round(l/255*5)},n.ansi16.rgb=function(i){let a=i%10;if(a===0||a===7)return i>50&&(a+=3.5),a=a/10.5*255,[a,a,a];const o=(~~(i>50)+1)*.5,l=(a&1)*o*255,s=(a>>1&1)*o*255,u=(a>>2&1)*o*255;return[l,s,u]},n.ansi256.rgb=function(i){if(i>=232){const u=(i-232)*10+8;return[u,u,u]}i-=16;let a;const o=Math.floor(i/36)/5*255,l=Math.floor((a=i%36)/6)/5*255,s=a%6/5*255;return[o,l,s]},n.rgb.hex=function(i){const o=(((Math.round(i[0])&255)<<16)+((Math.round(i[1])&255)<<8)+(Math.round(i[2])&255)).toString(16).toUpperCase();return"000000".substring(o.length)+o},n.hex.rgb=function(i){const a=i.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!a)return[0,0,0];let o=a[0];a[0].length===3&&(o=o.split("").map(d=>d+d).join(""));const l=parseInt(o,16),s=l>>16&255,u=l>>8&255,c=l&255;return[s,u,c]},n.rgb.hcg=function(i){const a=i[0]/255,o=i[1]/255,l=i[2]/255,s=Math.max(Math.max(a,o),l),u=Math.min(Math.min(a,o),l),c=s-u;let d,g;return c<1?d=u/(1-c):d=0,c<=0?g=0:s===a?g=(o-l)/c%6:s===o?g=2+(l-a)/c:g=4+(a-o)/c,g/=6,g%=1,[g*360,c*100,d*100]},n.hsl.hcg=function(i){const a=i[1]/100,o=i[2]/100,l=o<.5?2*a*o:2*a*(1-o);let s=0;return l<1&&(s=(o-.5*l)/(1-l)),[i[0],l*100,s*100]},n.hsv.hcg=function(i){const a=i[1]/100,o=i[2]/100,l=a*o;let s=0;return l<1&&(s=(o-l)/(1-l)),[i[0],l*100,s*100]},n.hcg.rgb=function(i){const a=i[0]/360,o=i[1]/100,l=i[2]/100;if(o===0)return[l*255,l*255,l*255];const s=[0,0,0],u=a%1*6,c=u%1,d=1-c;let g=0;switch(Math.floor(u)){case 0:s[0]=1,s[1]=c,s[2]=0;break;case 1:s[0]=d,s[1]=1,s[2]=0;break;case 2:s[0]=0,s[1]=1,s[2]=c;break;case 3:s[0]=0,s[1]=d,s[2]=1;break;case 4:s[0]=c,s[1]=0,s[2]=1;break;default:s[0]=1,s[1]=0,s[2]=d}return g=(1-o)*l,[(o*s[0]+g)*255,(o*s[1]+g)*255,(o*s[2]+g)*255]},n.hcg.hsv=function(i){const a=i[1]/100,o=i[2]/100,l=a+o*(1-a);let s=0;return l>0&&(s=a/l),[i[0],s*100,l*100]},n.hcg.hsl=function(i){const a=i[1]/100,l=i[2]/100*(1-a)+.5*a;let s=0;return l>0&&l<.5?s=a/(2*l):l>=.5&&l<1&&(s=a/(2*(1-l))),[i[0],s*100,l*100]},n.hcg.hwb=function(i){const a=i[1]/100,o=i[2]/100,l=a+o*(1-a);return[i[0],(l-a)*100,(1-l)*100]},n.hwb.hcg=function(i){const a=i[1]/100,l=1-i[2]/100,s=l-a;let u=0;return s<1&&(u=(l-s)/(1-s)),[i[0],s*100,u*100]},n.apple.rgb=function(i){return[i[0]/65535*255,i[1]/65535*255,i[2]/65535*255]},n.rgb.apple=function(i){return[i[0]/255*65535,i[1]/255*65535,i[2]/255*65535]},n.gray.rgb=function(i){return[i[0]/100*255,i[0]/100*255,i[0]/100*255]},n.gray.hsl=function(i){return[0,0,i[0]]},n.gray.hsv=n.gray.hsl,n.gray.hwb=function(i){return[0,100,i[0]]},n.gray.cmyk=function(i){return[0,0,0,i[0]]},n.gray.lab=function(i){return[i[0],0,0]},n.gray.hex=function(i){const a=Math.round(i[0]/100*255)&255,l=((a<<16)+(a<<8)+a).toString(16).toUpperCase();return"000000".substring(l.length)+l},n.rgb.gray=function(i){return[(i[0]+i[1]+i[2])/3/255*100]},JQ}var zQ,XX;function MUe(){if(XX)return zQ;XX=1;const e=E_();function t(){const a={},o=Object.keys(e);for(let l=o.length,s=0;s1&&(s=u),o(s))};return"conversion"in o&&(l.conversion=o.conversion),l}function a(o){const l=function(...s){const u=s[0];if(u==null)return u;u.length>1&&(s=u);const c=o(s);if(typeof c=="object")for(let d=c.length,g=0;g{n[o]={},Object.defineProperty(n[o],"channels",{value:e[o].channels}),Object.defineProperty(n[o],"labels",{value:e[o].labels});const l=t(o);Object.keys(l).forEach(u=>{const c=l[u];n[o][u]=a(c),n[o][u].raw=i(c)})}),PQ=n,PQ}t8.exports;(function(e){const t=(c,d)=>(...g)=>`\x1B[${c(...g)+d}m`,n=(c,d)=>(...g)=>{const h=c(...g);return`\x1B[${38+d};5;${h}m`},r=(c,d)=>(...g)=>{const h=c(...g);return`\x1B[${38+d};2;${h[0]};${h[1]};${h[2]}m`},i=c=>c,a=(c,d,g)=>[c,d,g],o=(c,d,g)=>{Object.defineProperty(c,d,{get:()=>{const h=g();return Object.defineProperty(c,d,{value:h,enumerable:!0,configurable:!0}),h},enumerable:!0,configurable:!0})};let l;const s=(c,d,g,h)=>{l===void 0&&(l=TUe());const m=h?10:0,A={};for(const[B,C]of Object.entries(l)){const b=B==="ansi16"?"ansi":B;B===d?A[b]=c(g,m):typeof C=="object"&&(A[b]=c(C[d],m))}return A};function u(){const c=new Map,d={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};d.color.gray=d.color.blackBright,d.bgColor.bgGray=d.bgColor.bgBlackBright,d.color.grey=d.color.blackBright,d.bgColor.bgGrey=d.bgColor.bgBlackBright;for(const[g,h]of Object.entries(d)){for(const[m,A]of Object.entries(h))d[m]={open:`\x1B[${A[0]}m`,close:`\x1B[${A[1]}m`},h[m]=d[m],c.set(A[0],A[1]);Object.defineProperty(d,g,{value:h,enumerable:!1})}return Object.defineProperty(d,"codes",{value:c,enumerable:!1}),d.color.close="\x1B[39m",d.bgColor.close="\x1B[49m",o(d.color,"ansi",()=>s(t,"ansi16",i,!1)),o(d.color,"ansi256",()=>s(n,"ansi256",i,!1)),o(d.color,"ansi16m",()=>s(r,"rgb",a,!1)),o(d.bgColor,"ansi",()=>s(t,"ansi16",i,!0)),o(d.bgColor,"ansi256",()=>s(n,"ansi256",i,!0)),o(d.bgColor,"ansi16m",()=>s(r,"rgb",a,!0)),d}Object.defineProperty(e,"exports",{enumerable:!0,get:u})})(t8);var VUe=t8.exports;const YUe=y_,IUe=XUe,MX=VUe,R_=["\x1B","›"],T2=e=>`${R_[0]}[${e}m`,TX=(e,t,n)=>{let r=[];e=[...e];for(let i of e){const a=i;i.includes(";")&&(i=i.split(";")[0][0]+"0");const o=MX.codes.get(Number.parseInt(i,10));if(o){const l=e.indexOf(o.toString());l===-1?r.push(T2(t?o:a)):e.splice(l,1)}else if(t){r.push(T2(0));break}else r.push(T2(a))}if(t&&(r=r.filter((i,a)=>r.indexOf(i)===a),n!==void 0)){const i=T2(MX.codes.get(Number.parseInt(n,10)));r=r.reduce((a,o)=>o===i?[o,...a]:[...a,o],[])}return r.join("")};var n8=(e,t,n)=>{const r=[...e],i=[];let a=typeof n=="number"?n:r.length,o=!1,l,s=0,u="";for(const[c,d]of r.entries()){let g=!1;if(R_.includes(d)){const h=/\d[^m]*/.exec(e.slice(c,c+18));l=h&&h.length>0?h[0]:void 0,st&&s<=a)u+=d;else if(s===t&&!o&&l!==void 0)u=TX(i);else if(s>=a){u+=TX(i,!0,l);break}}return u},ym={};Object.defineProperty(ym,"__esModule",{value:!0});ym.getBorderCharacters=void 0;const UUe=e=>{if(e==="honeywell")return{topBody:"═",topJoin:"╤",topLeft:"╔",topRight:"╗",bottomBody:"═",bottomJoin:"╧",bottomLeft:"╚",bottomRight:"╝",bodyLeft:"║",bodyRight:"║",bodyJoin:"│",headerJoin:"┬",joinBody:"─",joinLeft:"╟",joinRight:"╢",joinJoin:"┼",joinMiddleDown:"┬",joinMiddleUp:"┴",joinMiddleLeft:"┤",joinMiddleRight:"├"};if(e==="norc")return{topBody:"─",topJoin:"┬",topLeft:"┌",topRight:"┐",bottomBody:"─",bottomJoin:"┴",bottomLeft:"└",bottomRight:"┘",bodyLeft:"│",bodyRight:"│",bodyJoin:"│",headerJoin:"┬",joinBody:"─",joinLeft:"├",joinRight:"┤",joinJoin:"┼",joinMiddleDown:"┬",joinMiddleUp:"┴",joinMiddleLeft:"┤",joinMiddleRight:"├"};if(e==="ramac")return{topBody:"-",topJoin:"+",topLeft:"+",topRight:"+",bottomBody:"-",bottomJoin:"+",bottomLeft:"+",bottomRight:"+",bodyLeft:"|",bodyRight:"|",bodyJoin:"|",headerJoin:"+",joinBody:"-",joinLeft:"|",joinRight:"|",joinJoin:"|",joinMiddleDown:"+",joinMiddleUp:"+",joinMiddleLeft:"+",joinMiddleRight:"+"};if(e==="void")return{topBody:"",topJoin:"",topLeft:"",topRight:"",bottomBody:"",bottomJoin:"",bottomLeft:"",bottomRight:"",bodyLeft:"",bodyRight:"",bodyJoin:"",headerJoin:"",joinBody:"",joinLeft:"",joinRight:"",joinJoin:"",joinMiddleDown:"",joinMiddleUp:"",joinMiddleLeft:"",joinMiddleRight:""};throw new Error('Unknown border template "'+e+'".')};ym.getBorderCharacters=UUe;var r8=hn&&hn.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(zt,"__esModule",{value:!0});zt.isCellInRange=zt.areCellEqual=zt.calculateRangeCoordinate=zt.flatten=zt.extractTruncates=zt.sumArray=zt.sequence=zt.distributeUnevenly=zt.countSpaceSequence=zt.groupBySizes=zt.makeBorderConfig=zt.splitAnsi=zt.normalizeString=void 0;const OUe=r8(n8),JUe=r8(Wm),zUe=r8(qR),PUe=ym,jUe=e=>e.replace(/\r\n/g,` +`);zt.normalizeString=jUe;const _Ue=e=>{const t=(0,zUe.default)(e).split(` +`).map(JUe.default),n=[];let r=0;return t.forEach(i=>{n.push(i===0?"":(0,OUe.default)(e,r,r+i)),r+=i+1}),n};zt.splitAnsi=_Ue;const $Ue=e=>({...(0,PUe.getBorderCharacters)("honeywell"),...e});zt.makeBorderConfig=$Ue;const qUe=(e,t)=>{let n=0;return t.map(r=>{const i=e.slice(n,n+r);return n+=r,i})};zt.groupBySizes=qUe;const eOe=e=>{var t,n;return(n=(t=e.match(/\s+/g))===null||t===void 0?void 0:t.length)!==null&&n!==void 0?n:0};zt.countSpaceSequence=eOe;const tOe=(e,t)=>Array.from({length:t}).fill(Math.floor(e/t)).map((r,i)=>r+(iArray.from({length:t-e+1},(n,r)=>r+e);zt.sequence=nOe;const rOe=e=>e.reduce((t,n)=>t+n,0);zt.sumArray=rOe;const iOe=e=>e.columns.map(({truncate:t})=>t);zt.extractTruncates=iOe;const aOe=e=>[].concat(...e);zt.flatten=aOe;const oOe=e=>{const{row:t,col:n,colSpan:r=1,rowSpan:i=1}=e;return{bottomRight:{col:n+r-1,row:t+i-1},topLeft:{col:n,row:t}}};zt.calculateRangeCoordinate=oOe;const lOe=(e,t)=>e.row===t.row&&e.col===t.col;zt.areCellEqual=lOe;const sOe=(e,{topLeft:t,bottomRight:n})=>t.row<=e.row&&e.row<=n.row&&t.col<=e.col&&e.col<=n.col;zt.isCellInRange=sOe;var uOe=hn&&hn.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Qm,"__esModule",{value:!0});Qm.alignString=void 0;const cOe=uOe(Wm),VX=zt,r5=(e,t)=>e+" ".repeat(t),dOe=(e,t)=>" ".repeat(t)+e,pOe=(e,t)=>" ".repeat(Math.floor(t/2))+e+" ".repeat(Math.ceil(t/2)),gOe=(e,t)=>{const n=(0,VX.countSpaceSequence)(e);if(n===0)return r5(e,t);const r=(0,VX.distributeUnevenly)(t,n);if(Math.max(...r)>3)return r5(e,t);let i=0;return e.replace(/\s+/g,a=>a+" ".repeat(r[i++]))},hOe=(e,t,n)=>{const r=(0,cOe.default)(e);if(r===t)return e;if(r>t)throw new Error("Subject parameter value width cannot be greater than the container width.");if(r===0)return" ".repeat(t);const i=t-r;return n==="left"?r5(e,i):n==="right"?dOe(e,i):n==="justify"?gOe(e,i):pOe(e,i)};Qm.alignString=hOe;Object.defineProperty(Km,"__esModule",{value:!0});Km.alignTableData=void 0;const fOe=Qm,mOe=(e,t)=>e.map((n,r)=>n.map((i,a)=>{var o;const{width:l,alignment:s}=t.columns[a];return((o=t.spanningCellManager)===null||o===void 0?void 0:o.getContainingRange({col:a,row:r},{mapped:!0}))?i:(0,fOe.alignString)(i,l,s)}));Km.alignTableData=mOe;var Fm={},lw={},j1={},sw={},S_=hn&&hn.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(sw,"__esModule",{value:!0});sw.wrapString=void 0;const YX=S_(n8),AOe=S_(Wm),COe=(e,t)=>{let n=e;const r=[];do r.push((0,YX.default)(n,0,t)),n=(0,YX.default)(n,t).trim();while((0,AOe.default)(n));return r};sw.wrapString=COe;var uw={},x_=hn&&hn.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(uw,"__esModule",{value:!0});uw.wrapWord=void 0;const BOe=x_(n8),wOe=x_(qR),bOe=(e,t)=>{let n=(0,wOe.default)(e);const r=[],i=new RegExp("(^.{1,"+String(Math.max(t,1))+"}(\\s+|$))|(^.{1,"+String(Math.max(t-1,1))+"}(\\\\|/|_|\\.|,|;|-))");do{let a;const o=i.exec(n);if(o){a=o[0],n=n.slice(a.length);const l=a.trim().length,s=a.length-l;r.push([l,s])}else a=n.slice(0,t),n=n.slice(t),r.push([a.length,0])}while(n.length);return r},vOe=(e,t)=>{const n=[];let r=0;return bOe(e,t).forEach(([i,a])=>{n.push((0,BOe.default)(e,r,r+i)),r+=i+a}),n};uw.wrapWord=vOe;Object.defineProperty(j1,"__esModule",{value:!0});j1.wrapCell=void 0;const KOe=zt,QOe=sw,WOe=uw,yOe=(e,t,n)=>{const r=(0,KOe.splitAnsi)(e);for(let i=0;i(0,FOe.wrapCell)(e,t,n).length;lw.calculateCellHeight=EOe;Object.defineProperty(Fm,"__esModule",{value:!0});Fm.calculateRowHeights=void 0;const ROe=lw,IX=zt,SOe=(e,t)=>{const n=[];for(const[r,i]of e.entries()){let a=1;i.forEach((o,l)=>{var s;const u=(s=t.spanningCellManager)===null||s===void 0?void 0:s.getContainingRange({col:l,row:r});if(!u){const h=(0,ROe.calculateCellHeight)(o,t.columns[l].width,t.columns[l].wrapWord);a=Math.max(a,h);return}const{topLeft:c,bottomRight:d,height:g}=u;if(r===d.row){const h=(0,IX.sumArray)(n.slice(c.row)),m=d.row-c.row,A=(0,IX.sequence)(c.row+1,d.row).filter(C=>{var b;return!(!((b=t.drawHorizontalLine)===null||b===void 0)&&b.call(t,C,e.length))}).length,B=g-h-m+A;a=Math.max(a,B)}}),n.push(a)}return n};Fm.calculateRowHeights=SOe;var i8={},_1={};Object.defineProperty(_1,"__esModule",{value:!0});_1.drawContent=void 0;const xOe=e=>{const{contents:t,separatorGetter:n,drawSeparator:r,spanningCellManager:i,rowIndex:a,elementType:o}=e,l=t.length,s=[];return r(0,l)&&s.push(n(0,l)),t.forEach((u,c)=>{if((!o||o==="border"||o==="row")&&s.push(u),o==="cell"&&a===void 0&&s.push(u),o==="cell"&&a!==void 0){const d=i==null?void 0:i.getContainingRange({col:c,row:a});(!d||c===d.topLeft.col)&&s.push(u)}if(c+1{const{separator:d,horizontalBorderIndex:g,spanningCellManager:h}=c;return u.map((m,A)=>{const B=d.body.repeat(m);if(g===void 0)return B;const C=h==null?void 0:h.getContainingRange({col:A,row:g});if(!C)return B;const{topLeft:b}=C;return g===b.row?B:A!==b.col?"":C.extractBorderContent(g)})};e.drawBorderSegments=n;const r=u=>{const{separator:c,spanningCellManager:d,horizontalBorderIndex:g,rowCount:h}=u;return(m,A)=>{const B=d==null?void 0:d.inSameRange;if(g!==void 0&&B){const C={col:m,row:g-1},b={col:m-1,row:g},Q={col:m-1,row:g-1},F={col:m,row:g},K=[[Q,C],[C,F],[F,b],[b,Q]];if(m===0)return B(F,C)&&c.bodyJoinOuter?c.bodyJoinOuter:c.left;if(m===A)return B(Q,b)&&c.bodyJoinOuter?c.bodyJoinOuter:c.right;if(g===0)return B(F,b)?c.body:c.join;if(g===h)return B(C,Q)?c.body:c.join;const y=K.map(G=>B(...G)).filter(Boolean).length;if(y===0)return c.join;if(y===4)return"";if(y===2)return B(...K[1])&&B(...K[3])&&c.bodyJoinInner?c.bodyJoinInner:c.body;if(y===1){if(!c.joinRight||!c.joinLeft||!c.joinUp||!c.joinDown)throw new Error(`Can not get border separator for position [${g}, ${m}]`);return B(...K[0])?c.joinDown:B(...K[1])?c.joinLeft:B(...K[2])?c.joinUp:c.joinRight}throw new Error("Invalid case")}return m===0?c.left:m===A?c.right:c.join}};e.createSeparatorGetter=r;const i=(u,c)=>{const d=(0,e.drawBorderSegments)(u,c),{drawVerticalLine:g,horizontalBorderIndex:h,spanningCellManager:m}=c;return(0,t.drawContent)({contents:d,drawSeparator:g,elementType:"border",rowIndex:h,separatorGetter:(0,e.createSeparatorGetter)(c),spanningCellManager:m})+` +`};e.drawBorder=i;const a=(u,c)=>{const{border:d}=c,g=(0,e.drawBorder)(u,{...c,separator:{body:d.topBody,join:d.topJoin,left:d.topLeft,right:d.topRight}});return g===` +`?"":g};e.drawBorderTop=a;const o=(u,c)=>{const{border:d}=c;return(0,e.drawBorder)(u,{...c,separator:{body:d.joinBody,bodyJoinInner:d.bodyJoin,bodyJoinOuter:d.bodyLeft,join:d.joinJoin,joinDown:d.joinMiddleDown,joinLeft:d.joinMiddleLeft,joinRight:d.joinMiddleRight,joinUp:d.joinMiddleUp,left:d.joinLeft,right:d.joinRight}})};e.drawBorderJoin=o;const l=(u,c)=>{const{border:d}=c;return(0,e.drawBorder)(u,{...c,separator:{body:d.bottomBody,join:d.bottomJoin,left:d.bottomLeft,right:d.bottomRight}})};e.drawBorderBottom=l;const s=(u,c)=>(d,g)=>{const h={...c,horizontalBorderIndex:d};return d===0?(0,e.drawBorderTop)(u,h):d===g?(0,e.drawBorderBottom)(u,h):(0,e.drawBorderJoin)(u,h)};e.createTableBorderGetter=s})(i8);var Em={};Object.defineProperty(Em,"__esModule",{value:!0});Em.drawRow=void 0;const GOe=_1,kOe=(e,t)=>{const{border:n,drawVerticalLine:r,rowIndex:i,spanningCellManager:a}=t;return(0,GOe.drawContent)({contents:e,drawSeparator:r,elementType:"cell",rowIndex:i,separatorGetter:(o,l)=>o===0?n.bodyLeft:o===l?n.bodyRight:n.bodyJoin,spanningCellManager:a})+` +`};Em.drawRow=kOe;var cw={},Rm={},G_={},a8={},DOe=function e(t,n){if(t===n)return!0;if(t&&n&&typeof t=="object"&&typeof n=="object"){if(t.constructor!==n.constructor)return!1;var r,i,a;if(Array.isArray(t)){if(r=t.length,r!=n.length)return!1;for(i=r;i--!==0;)if(!e(t[i],n[i]))return!1;return!0}if(t.constructor===RegExp)return t.source===n.source&&t.flags===n.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===n.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===n.toString();if(a=Object.keys(t),r=a.length,r!==Object.keys(n).length)return!1;for(i=r;i--!==0;)if(!Object.prototype.hasOwnProperty.call(n,a[i]))return!1;for(i=r;i--!==0;){var o=a[i];if(!e(t[o],n[o]))return!1}return!0}return t!==t&&n!==n};Object.defineProperty(a8,"__esModule",{value:!0});const k_=DOe;k_.code='require("ajv/dist/runtime/equal").default';a8.default=k_;(function(e){e["config.json"]=B;const t={$id:"config.json",$schema:"http://json-schema.org/draft-07/schema#",type:"object",properties:{border:{$ref:"shared.json#/definitions/borders"},header:{type:"object",properties:{content:{type:"string"},alignment:{$ref:"shared.json#/definitions/alignment"},wrapWord:{type:"boolean"},truncate:{type:"integer"},paddingLeft:{type:"integer"},paddingRight:{type:"integer"}},required:["content"],additionalProperties:!1},columns:{$ref:"shared.json#/definitions/columns"},columnDefault:{$ref:"shared.json#/definitions/column"},drawVerticalLine:{typeof:"function"},drawHorizontalLine:{typeof:"function"},singleLine:{typeof:"boolean"},spanningCells:{type:"array",items:{type:"object",properties:{col:{type:"integer",minimum:0},row:{type:"integer",minimum:0},colSpan:{type:"integer",minimum:1},rowSpan:{type:"integer",minimum:1},alignment:{$ref:"shared.json#/definitions/alignment"},verticalAlignment:{$ref:"shared.json#/definitions/verticalAlignment"},wrapWord:{type:"boolean"},truncate:{type:"integer"},paddingLeft:{type:"integer"},paddingRight:{type:"integer"}},required:["row","col"],additionalProperties:!1}}},additionalProperties:!1},n={type:"object",properties:{topBody:{$ref:"#/definitions/border"},topJoin:{$ref:"#/definitions/border"},topLeft:{$ref:"#/definitions/border"},topRight:{$ref:"#/definitions/border"},bottomBody:{$ref:"#/definitions/border"},bottomJoin:{$ref:"#/definitions/border"},bottomLeft:{$ref:"#/definitions/border"},bottomRight:{$ref:"#/definitions/border"},bodyLeft:{$ref:"#/definitions/border"},bodyRight:{$ref:"#/definitions/border"},bodyJoin:{$ref:"#/definitions/border"},headerJoin:{$ref:"#/definitions/border"},joinBody:{$ref:"#/definitions/border"},joinLeft:{$ref:"#/definitions/border"},joinRight:{$ref:"#/definitions/border"},joinJoin:{$ref:"#/definitions/border"},joinMiddleUp:{$ref:"#/definitions/border"},joinMiddleDown:{$ref:"#/definitions/border"},joinMiddleLeft:{$ref:"#/definitions/border"},joinMiddleRight:{$ref:"#/definitions/border"}},additionalProperties:!1},r=Object.prototype.hasOwnProperty;function i(K,{instancePath:y="",parentData:G,parentDataProperty:X,rootData:H=K}={}){let v=null,k=0;if(typeof K!="string"){const D={instancePath:y,schemaPath:"#/type",keyword:"type",params:{type:"string"},message:"must be string"};v===null?v=[D]:v.push(D),k++}return i.errors=v,k===0}function a(K,{instancePath:y="",parentData:G,parentDataProperty:X,rootData:H=K}={}){let v=null,k=0;if(K&&typeof K=="object"&&!Array.isArray(K)){for(const D in K)if(!r.call(n.properties,D)){const V={instancePath:y,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty:D},message:"must NOT have additional properties"};v===null?v=[V]:v.push(V),k++}K.topBody!==void 0&&(i(K.topBody,{instancePath:y+"/topBody",parentData:K,parentDataProperty:"topBody",rootData:H})||(v=v===null?i.errors:v.concat(i.errors),k=v.length)),K.topJoin!==void 0&&(i(K.topJoin,{instancePath:y+"/topJoin",parentData:K,parentDataProperty:"topJoin",rootData:H})||(v=v===null?i.errors:v.concat(i.errors),k=v.length)),K.topLeft!==void 0&&(i(K.topLeft,{instancePath:y+"/topLeft",parentData:K,parentDataProperty:"topLeft",rootData:H})||(v=v===null?i.errors:v.concat(i.errors),k=v.length)),K.topRight!==void 0&&(i(K.topRight,{instancePath:y+"/topRight",parentData:K,parentDataProperty:"topRight",rootData:H})||(v=v===null?i.errors:v.concat(i.errors),k=v.length)),K.bottomBody!==void 0&&(i(K.bottomBody,{instancePath:y+"/bottomBody",parentData:K,parentDataProperty:"bottomBody",rootData:H})||(v=v===null?i.errors:v.concat(i.errors),k=v.length)),K.bottomJoin!==void 0&&(i(K.bottomJoin,{instancePath:y+"/bottomJoin",parentData:K,parentDataProperty:"bottomJoin",rootData:H})||(v=v===null?i.errors:v.concat(i.errors),k=v.length)),K.bottomLeft!==void 0&&(i(K.bottomLeft,{instancePath:y+"/bottomLeft",parentData:K,parentDataProperty:"bottomLeft",rootData:H})||(v=v===null?i.errors:v.concat(i.errors),k=v.length)),K.bottomRight!==void 0&&(i(K.bottomRight,{instancePath:y+"/bottomRight",parentData:K,parentDataProperty:"bottomRight",rootData:H})||(v=v===null?i.errors:v.concat(i.errors),k=v.length)),K.bodyLeft!==void 0&&(i(K.bodyLeft,{instancePath:y+"/bodyLeft",parentData:K,parentDataProperty:"bodyLeft",rootData:H})||(v=v===null?i.errors:v.concat(i.errors),k=v.length)),K.bodyRight!==void 0&&(i(K.bodyRight,{instancePath:y+"/bodyRight",parentData:K,parentDataProperty:"bodyRight",rootData:H})||(v=v===null?i.errors:v.concat(i.errors),k=v.length)),K.bodyJoin!==void 0&&(i(K.bodyJoin,{instancePath:y+"/bodyJoin",parentData:K,parentDataProperty:"bodyJoin",rootData:H})||(v=v===null?i.errors:v.concat(i.errors),k=v.length)),K.headerJoin!==void 0&&(i(K.headerJoin,{instancePath:y+"/headerJoin",parentData:K,parentDataProperty:"headerJoin",rootData:H})||(v=v===null?i.errors:v.concat(i.errors),k=v.length)),K.joinBody!==void 0&&(i(K.joinBody,{instancePath:y+"/joinBody",parentData:K,parentDataProperty:"joinBody",rootData:H})||(v=v===null?i.errors:v.concat(i.errors),k=v.length)),K.joinLeft!==void 0&&(i(K.joinLeft,{instancePath:y+"/joinLeft",parentData:K,parentDataProperty:"joinLeft",rootData:H})||(v=v===null?i.errors:v.concat(i.errors),k=v.length)),K.joinRight!==void 0&&(i(K.joinRight,{instancePath:y+"/joinRight",parentData:K,parentDataProperty:"joinRight",rootData:H})||(v=v===null?i.errors:v.concat(i.errors),k=v.length)),K.joinJoin!==void 0&&(i(K.joinJoin,{instancePath:y+"/joinJoin",parentData:K,parentDataProperty:"joinJoin",rootData:H})||(v=v===null?i.errors:v.concat(i.errors),k=v.length)),K.joinMiddleUp!==void 0&&(i(K.joinMiddleUp,{instancePath:y+"/joinMiddleUp",parentData:K,parentDataProperty:"joinMiddleUp",rootData:H})||(v=v===null?i.errors:v.concat(i.errors),k=v.length)),K.joinMiddleDown!==void 0&&(i(K.joinMiddleDown,{instancePath:y+"/joinMiddleDown",parentData:K,parentDataProperty:"joinMiddleDown",rootData:H})||(v=v===null?i.errors:v.concat(i.errors),k=v.length)),K.joinMiddleLeft!==void 0&&(i(K.joinMiddleLeft,{instancePath:y+"/joinMiddleLeft",parentData:K,parentDataProperty:"joinMiddleLeft",rootData:H})||(v=v===null?i.errors:v.concat(i.errors),k=v.length)),K.joinMiddleRight!==void 0&&(i(K.joinMiddleRight,{instancePath:y+"/joinMiddleRight",parentData:K,parentDataProperty:"joinMiddleRight",rootData:H})||(v=v===null?i.errors:v.concat(i.errors),k=v.length))}else{const D={instancePath:y,schemaPath:"#/type",keyword:"type",params:{type:"object"},message:"must be object"};v===null?v=[D]:v.push(D),k++}return a.errors=v,k===0}const o={type:"string",enum:["left","right","center","justify"]};a8.default;function l(K,{instancePath:y="",parentData:G,parentDataProperty:X,rootData:H=K}={}){let v=null,k=0;if(typeof K!="string"){const D={instancePath:y,schemaPath:"#/type",keyword:"type",params:{type:"string"},message:"must be string"};v===null?v=[D]:v.push(D),k++}if(!(K==="left"||K==="right"||K==="center"||K==="justify")){const D={instancePath:y,schemaPath:"#/enum",keyword:"enum",params:{allowedValues:o.enum},message:"must be equal to one of the allowed values"};v===null?v=[D]:v.push(D),k++}return l.errors=v,k===0}const s=new RegExp("^[0-9]+$","u");function u(K,{instancePath:y="",parentData:G,parentDataProperty:X,rootData:H=K}={}){let v=null,k=0;if(typeof K!="string"){const D={instancePath:y,schemaPath:"#/type",keyword:"type",params:{type:"string"},message:"must be string"};v===null?v=[D]:v.push(D),k++}if(!(K==="left"||K==="right"||K==="center"||K==="justify")){const D={instancePath:y,schemaPath:"#/enum",keyword:"enum",params:{allowedValues:o.enum},message:"must be equal to one of the allowed values"};v===null?v=[D]:v.push(D),k++}return u.errors=v,k===0}const c={type:"string",enum:["top","middle","bottom"]};function d(K,{instancePath:y="",parentData:G,parentDataProperty:X,rootData:H=K}={}){let v=null,k=0;if(typeof K!="string"){const D={instancePath:y,schemaPath:"#/type",keyword:"type",params:{type:"string"},message:"must be string"};v===null?v=[D]:v.push(D),k++}if(!(K==="top"||K==="middle"||K==="bottom")){const D={instancePath:y,schemaPath:"#/enum",keyword:"enum",params:{allowedValues:c.enum},message:"must be equal to one of the allowed values"};v===null?v=[D]:v.push(D),k++}return d.errors=v,k===0}function g(K,{instancePath:y="",parentData:G,parentDataProperty:X,rootData:H=K}={}){let v=null,k=0;if(K&&typeof K=="object"&&!Array.isArray(K)){for(const D in K)if(!(D==="alignment"||D==="verticalAlignment"||D==="width"||D==="wrapWord"||D==="truncate"||D==="paddingLeft"||D==="paddingRight")){const V={instancePath:y,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty:D},message:"must NOT have additional properties"};v===null?v=[V]:v.push(V),k++}if(K.alignment!==void 0&&(u(K.alignment,{instancePath:y+"/alignment",parentData:K,parentDataProperty:"alignment",rootData:H})||(v=v===null?u.errors:v.concat(u.errors),k=v.length)),K.verticalAlignment!==void 0&&(d(K.verticalAlignment,{instancePath:y+"/verticalAlignment",parentData:K,parentDataProperty:"verticalAlignment",rootData:H})||(v=v===null?d.errors:v.concat(d.errors),k=v.length)),K.width!==void 0){let D=K.width;if(!(typeof D=="number"&&!(D%1)&&!isNaN(D)&&isFinite(D))){const V={instancePath:y+"/width",schemaPath:"#/properties/width/type",keyword:"type",params:{type:"integer"},message:"must be integer"};v===null?v=[V]:v.push(V),k++}if(typeof D=="number"&&isFinite(D)&&(D<1||isNaN(D))){const V={instancePath:y+"/width",schemaPath:"#/properties/width/minimum",keyword:"minimum",params:{comparison:">=",limit:1},message:"must be >= 1"};v===null?v=[V]:v.push(V),k++}}if(K.wrapWord!==void 0&&typeof K.wrapWord!="boolean"){const D={instancePath:y+"/wrapWord",schemaPath:"#/properties/wrapWord/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"};v===null?v=[D]:v.push(D),k++}if(K.truncate!==void 0){let D=K.truncate;if(!(typeof D=="number"&&!(D%1)&&!isNaN(D)&&isFinite(D))){const V={instancePath:y+"/truncate",schemaPath:"#/properties/truncate/type",keyword:"type",params:{type:"integer"},message:"must be integer"};v===null?v=[V]:v.push(V),k++}}if(K.paddingLeft!==void 0){let D=K.paddingLeft;if(!(typeof D=="number"&&!(D%1)&&!isNaN(D)&&isFinite(D))){const V={instancePath:y+"/paddingLeft",schemaPath:"#/properties/paddingLeft/type",keyword:"type",params:{type:"integer"},message:"must be integer"};v===null?v=[V]:v.push(V),k++}}if(K.paddingRight!==void 0){let D=K.paddingRight;if(!(typeof D=="number"&&!(D%1)&&!isNaN(D)&&isFinite(D))){const V={instancePath:y+"/paddingRight",schemaPath:"#/properties/paddingRight/type",keyword:"type",params:{type:"integer"},message:"must be integer"};v===null?v=[V]:v.push(V),k++}}}else{const D={instancePath:y,schemaPath:"#/type",keyword:"type",params:{type:"object"},message:"must be object"};v===null?v=[D]:v.push(D),k++}return g.errors=v,k===0}function h(K,{instancePath:y="",parentData:G,parentDataProperty:X,rootData:H=K}={}){let v=null,k=0;const D=k;let V=!1,z=null;const j=k;if(K&&typeof K=="object"&&!Array.isArray(K)){for(const I in K)if(!s.test(I)){const se={instancePath:y,schemaPath:"#/oneOf/0/additionalProperties",keyword:"additionalProperties",params:{additionalProperty:I},message:"must NOT have additional properties"};v===null?v=[se]:v.push(se),k++}for(const I in K)s.test(I)&&(g(K[I],{instancePath:y+"/"+I.replace(/~/g,"~0").replace(/\//g,"~1"),parentData:K,parentDataProperty:I,rootData:H})||(v=v===null?g.errors:v.concat(g.errors),k=v.length))}else{const I={instancePath:y,schemaPath:"#/oneOf/0/type",keyword:"type",params:{type:"object"},message:"must be object"};v===null?v=[I]:v.push(I),k++}var J=j===k;J&&(V=!0,z=0);const te=k;if(Array.isArray(K)){const I=K.length;for(let se=0;se=",limit:1},message:"must be >= 1"};v===null?v=[V]:v.push(V),k++}}if(K.wrapWord!==void 0&&typeof K.wrapWord!="boolean"){const D={instancePath:y+"/wrapWord",schemaPath:"#/properties/wrapWord/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"};v===null?v=[D]:v.push(D),k++}if(K.truncate!==void 0){let D=K.truncate;if(!(typeof D=="number"&&!(D%1)&&!isNaN(D)&&isFinite(D))){const V={instancePath:y+"/truncate",schemaPath:"#/properties/truncate/type",keyword:"type",params:{type:"integer"},message:"must be integer"};v===null?v=[V]:v.push(V),k++}}if(K.paddingLeft!==void 0){let D=K.paddingLeft;if(!(typeof D=="number"&&!(D%1)&&!isNaN(D)&&isFinite(D))){const V={instancePath:y+"/paddingLeft",schemaPath:"#/properties/paddingLeft/type",keyword:"type",params:{type:"integer"},message:"must be integer"};v===null?v=[V]:v.push(V),k++}}if(K.paddingRight!==void 0){let D=K.paddingRight;if(!(typeof D=="number"&&!(D%1)&&!isNaN(D)&&isFinite(D))){const V={instancePath:y+"/paddingRight",schemaPath:"#/properties/paddingRight/type",keyword:"type",params:{type:"integer"},message:"must be integer"};v===null?v=[V]:v.push(V),k++}}}else{const D={instancePath:y,schemaPath:"#/type",keyword:"type",params:{type:"object"},message:"must be object"};v===null?v=[D]:v.push(D),k++}return m.errors=v,k===0}function A(K,{instancePath:y="",parentData:G,parentDataProperty:X,rootData:H=K}={}){let v=null,k=0;if(typeof K!="string"){const D={instancePath:y,schemaPath:"#/type",keyword:"type",params:{type:"string"},message:"must be string"};v===null?v=[D]:v.push(D),k++}if(!(K==="top"||K==="middle"||K==="bottom")){const D={instancePath:y,schemaPath:"#/enum",keyword:"enum",params:{allowedValues:c.enum},message:"must be equal to one of the allowed values"};v===null?v=[D]:v.push(D),k++}return A.errors=v,k===0}function B(K,{instancePath:y="",parentData:G,parentDataProperty:X,rootData:H=K}={}){let v=null,k=0;if(K&&typeof K=="object"&&!Array.isArray(K)){for(const D in K)if(!(D==="border"||D==="header"||D==="columns"||D==="columnDefault"||D==="drawVerticalLine"||D==="drawHorizontalLine"||D==="singleLine"||D==="spanningCells")){const V={instancePath:y,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty:D},message:"must NOT have additional properties"};v===null?v=[V]:v.push(V),k++}if(K.border!==void 0&&(a(K.border,{instancePath:y+"/border",parentData:K,parentDataProperty:"border",rootData:H})||(v=v===null?a.errors:v.concat(a.errors),k=v.length)),K.header!==void 0){let D=K.header;if(D&&typeof D=="object"&&!Array.isArray(D)){if(D.content===void 0){const V={instancePath:y+"/header",schemaPath:"#/properties/header/required",keyword:"required",params:{missingProperty:"content"},message:"must have required property 'content'"};v===null?v=[V]:v.push(V),k++}for(const V in D)if(!(V==="content"||V==="alignment"||V==="wrapWord"||V==="truncate"||V==="paddingLeft"||V==="paddingRight")){const z={instancePath:y+"/header",schemaPath:"#/properties/header/additionalProperties",keyword:"additionalProperties",params:{additionalProperty:V},message:"must NOT have additional properties"};v===null?v=[z]:v.push(z),k++}if(D.content!==void 0&&typeof D.content!="string"){const V={instancePath:y+"/header/content",schemaPath:"#/properties/header/properties/content/type",keyword:"type",params:{type:"string"},message:"must be string"};v===null?v=[V]:v.push(V),k++}if(D.alignment!==void 0&&(l(D.alignment,{instancePath:y+"/header/alignment",parentData:D,parentDataProperty:"alignment",rootData:H})||(v=v===null?l.errors:v.concat(l.errors),k=v.length)),D.wrapWord!==void 0&&typeof D.wrapWord!="boolean"){const V={instancePath:y+"/header/wrapWord",schemaPath:"#/properties/header/properties/wrapWord/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"};v===null?v=[V]:v.push(V),k++}if(D.truncate!==void 0){let V=D.truncate;if(!(typeof V=="number"&&!(V%1)&&!isNaN(V)&&isFinite(V))){const z={instancePath:y+"/header/truncate",schemaPath:"#/properties/header/properties/truncate/type",keyword:"type",params:{type:"integer"},message:"must be integer"};v===null?v=[z]:v.push(z),k++}}if(D.paddingLeft!==void 0){let V=D.paddingLeft;if(!(typeof V=="number"&&!(V%1)&&!isNaN(V)&&isFinite(V))){const z={instancePath:y+"/header/paddingLeft",schemaPath:"#/properties/header/properties/paddingLeft/type",keyword:"type",params:{type:"integer"},message:"must be integer"};v===null?v=[z]:v.push(z),k++}}if(D.paddingRight!==void 0){let V=D.paddingRight;if(!(typeof V=="number"&&!(V%1)&&!isNaN(V)&&isFinite(V))){const z={instancePath:y+"/header/paddingRight",schemaPath:"#/properties/header/properties/paddingRight/type",keyword:"type",params:{type:"integer"},message:"must be integer"};v===null?v=[z]:v.push(z),k++}}}else{const V={instancePath:y+"/header",schemaPath:"#/properties/header/type",keyword:"type",params:{type:"object"},message:"must be object"};v===null?v=[V]:v.push(V),k++}}if(K.columns!==void 0&&(h(K.columns,{instancePath:y+"/columns",parentData:K,parentDataProperty:"columns",rootData:H})||(v=v===null?h.errors:v.concat(h.errors),k=v.length)),K.columnDefault!==void 0&&(m(K.columnDefault,{instancePath:y+"/columnDefault",parentData:K,parentDataProperty:"columnDefault",rootData:H})||(v=v===null?m.errors:v.concat(m.errors),k=v.length)),K.drawVerticalLine!==void 0&&typeof K.drawVerticalLine!="function"){const D={instancePath:y+"/drawVerticalLine",schemaPath:"#/properties/drawVerticalLine/typeof",keyword:"typeof",params:{},message:'must pass "typeof" keyword validation'};v===null?v=[D]:v.push(D),k++}if(K.drawHorizontalLine!==void 0&&typeof K.drawHorizontalLine!="function"){const D={instancePath:y+"/drawHorizontalLine",schemaPath:"#/properties/drawHorizontalLine/typeof",keyword:"typeof",params:{},message:'must pass "typeof" keyword validation'};v===null?v=[D]:v.push(D),k++}if(K.singleLine!==void 0&&typeof K.singleLine!="boolean"){const D={instancePath:y+"/singleLine",schemaPath:"#/properties/singleLine/typeof",keyword:"typeof",params:{},message:'must pass "typeof" keyword validation'};v===null?v=[D]:v.push(D),k++}if(K.spanningCells!==void 0){let D=K.spanningCells;if(Array.isArray(D)){const V=D.length;for(let z=0;z=",limit:0},message:"must be >= 0"};v===null?v=[J]:v.push(J),k++}}if(j.row!==void 0){let te=j.row;if(!(typeof te=="number"&&!(te%1)&&!isNaN(te)&&isFinite(te))){const J={instancePath:y+"/spanningCells/"+z+"/row",schemaPath:"#/properties/spanningCells/items/properties/row/type",keyword:"type",params:{type:"integer"},message:"must be integer"};v===null?v=[J]:v.push(J),k++}if(typeof te=="number"&&isFinite(te)&&(te<0||isNaN(te))){const J={instancePath:y+"/spanningCells/"+z+"/row",schemaPath:"#/properties/spanningCells/items/properties/row/minimum",keyword:"minimum",params:{comparison:">=",limit:0},message:"must be >= 0"};v===null?v=[J]:v.push(J),k++}}if(j.colSpan!==void 0){let te=j.colSpan;if(!(typeof te=="number"&&!(te%1)&&!isNaN(te)&&isFinite(te))){const J={instancePath:y+"/spanningCells/"+z+"/colSpan",schemaPath:"#/properties/spanningCells/items/properties/colSpan/type",keyword:"type",params:{type:"integer"},message:"must be integer"};v===null?v=[J]:v.push(J),k++}if(typeof te=="number"&&isFinite(te)&&(te<1||isNaN(te))){const J={instancePath:y+"/spanningCells/"+z+"/colSpan",schemaPath:"#/properties/spanningCells/items/properties/colSpan/minimum",keyword:"minimum",params:{comparison:">=",limit:1},message:"must be >= 1"};v===null?v=[J]:v.push(J),k++}}if(j.rowSpan!==void 0){let te=j.rowSpan;if(!(typeof te=="number"&&!(te%1)&&!isNaN(te)&&isFinite(te))){const J={instancePath:y+"/spanningCells/"+z+"/rowSpan",schemaPath:"#/properties/spanningCells/items/properties/rowSpan/type",keyword:"type",params:{type:"integer"},message:"must be integer"};v===null?v=[J]:v.push(J),k++}if(typeof te=="number"&&isFinite(te)&&(te<1||isNaN(te))){const J={instancePath:y+"/spanningCells/"+z+"/rowSpan",schemaPath:"#/properties/spanningCells/items/properties/rowSpan/minimum",keyword:"minimum",params:{comparison:">=",limit:1},message:"must be >= 1"};v===null?v=[J]:v.push(J),k++}}if(j.alignment!==void 0&&(l(j.alignment,{instancePath:y+"/spanningCells/"+z+"/alignment",parentData:j,parentDataProperty:"alignment",rootData:H})||(v=v===null?l.errors:v.concat(l.errors),k=v.length)),j.verticalAlignment!==void 0&&(A(j.verticalAlignment,{instancePath:y+"/spanningCells/"+z+"/verticalAlignment",parentData:j,parentDataProperty:"verticalAlignment",rootData:H})||(v=v===null?A.errors:v.concat(A.errors),k=v.length)),j.wrapWord!==void 0&&typeof j.wrapWord!="boolean"){const te={instancePath:y+"/spanningCells/"+z+"/wrapWord",schemaPath:"#/properties/spanningCells/items/properties/wrapWord/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"};v===null?v=[te]:v.push(te),k++}if(j.truncate!==void 0){let te=j.truncate;if(!(typeof te=="number"&&!(te%1)&&!isNaN(te)&&isFinite(te))){const J={instancePath:y+"/spanningCells/"+z+"/truncate",schemaPath:"#/properties/spanningCells/items/properties/truncate/type",keyword:"type",params:{type:"integer"},message:"must be integer"};v===null?v=[J]:v.push(J),k++}}if(j.paddingLeft!==void 0){let te=j.paddingLeft;if(!(typeof te=="number"&&!(te%1)&&!isNaN(te)&&isFinite(te))){const J={instancePath:y+"/spanningCells/"+z+"/paddingLeft",schemaPath:"#/properties/spanningCells/items/properties/paddingLeft/type",keyword:"type",params:{type:"integer"},message:"must be integer"};v===null?v=[J]:v.push(J),k++}}if(j.paddingRight!==void 0){let te=j.paddingRight;if(!(typeof te=="number"&&!(te%1)&&!isNaN(te)&&isFinite(te))){const J={instancePath:y+"/spanningCells/"+z+"/paddingRight",schemaPath:"#/properties/spanningCells/items/properties/paddingRight/type",keyword:"type",params:{type:"integer"},message:"must be integer"};v===null?v=[J]:v.push(J),k++}}}else{const te={instancePath:y+"/spanningCells/"+z,schemaPath:"#/properties/spanningCells/items/type",keyword:"type",params:{type:"object"},message:"must be object"};v===null?v=[te]:v.push(te),k++}}}else{const V={instancePath:y+"/spanningCells",schemaPath:"#/properties/spanningCells/type",keyword:"type",params:{type:"array"},message:"must be array"};v===null?v=[V]:v.push(V),k++}}}else{const D={instancePath:y,schemaPath:"#/type",keyword:"type",params:{type:"object"},message:"must be object"};v===null?v=[D]:v.push(D),k++}return B.errors=v,k===0}e["streamConfig.json"]=F;function C(K,{instancePath:y="",parentData:G,parentDataProperty:X,rootData:H=K}={}){let v=null,k=0;if(K&&typeof K=="object"&&!Array.isArray(K)){for(const D in K)if(!r.call(n.properties,D)){const V={instancePath:y,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty:D},message:"must NOT have additional properties"};v===null?v=[V]:v.push(V),k++}K.topBody!==void 0&&(i(K.topBody,{instancePath:y+"/topBody",parentData:K,parentDataProperty:"topBody",rootData:H})||(v=v===null?i.errors:v.concat(i.errors),k=v.length)),K.topJoin!==void 0&&(i(K.topJoin,{instancePath:y+"/topJoin",parentData:K,parentDataProperty:"topJoin",rootData:H})||(v=v===null?i.errors:v.concat(i.errors),k=v.length)),K.topLeft!==void 0&&(i(K.topLeft,{instancePath:y+"/topLeft",parentData:K,parentDataProperty:"topLeft",rootData:H})||(v=v===null?i.errors:v.concat(i.errors),k=v.length)),K.topRight!==void 0&&(i(K.topRight,{instancePath:y+"/topRight",parentData:K,parentDataProperty:"topRight",rootData:H})||(v=v===null?i.errors:v.concat(i.errors),k=v.length)),K.bottomBody!==void 0&&(i(K.bottomBody,{instancePath:y+"/bottomBody",parentData:K,parentDataProperty:"bottomBody",rootData:H})||(v=v===null?i.errors:v.concat(i.errors),k=v.length)),K.bottomJoin!==void 0&&(i(K.bottomJoin,{instancePath:y+"/bottomJoin",parentData:K,parentDataProperty:"bottomJoin",rootData:H})||(v=v===null?i.errors:v.concat(i.errors),k=v.length)),K.bottomLeft!==void 0&&(i(K.bottomLeft,{instancePath:y+"/bottomLeft",parentData:K,parentDataProperty:"bottomLeft",rootData:H})||(v=v===null?i.errors:v.concat(i.errors),k=v.length)),K.bottomRight!==void 0&&(i(K.bottomRight,{instancePath:y+"/bottomRight",parentData:K,parentDataProperty:"bottomRight",rootData:H})||(v=v===null?i.errors:v.concat(i.errors),k=v.length)),K.bodyLeft!==void 0&&(i(K.bodyLeft,{instancePath:y+"/bodyLeft",parentData:K,parentDataProperty:"bodyLeft",rootData:H})||(v=v===null?i.errors:v.concat(i.errors),k=v.length)),K.bodyRight!==void 0&&(i(K.bodyRight,{instancePath:y+"/bodyRight",parentData:K,parentDataProperty:"bodyRight",rootData:H})||(v=v===null?i.errors:v.concat(i.errors),k=v.length)),K.bodyJoin!==void 0&&(i(K.bodyJoin,{instancePath:y+"/bodyJoin",parentData:K,parentDataProperty:"bodyJoin",rootData:H})||(v=v===null?i.errors:v.concat(i.errors),k=v.length)),K.headerJoin!==void 0&&(i(K.headerJoin,{instancePath:y+"/headerJoin",parentData:K,parentDataProperty:"headerJoin",rootData:H})||(v=v===null?i.errors:v.concat(i.errors),k=v.length)),K.joinBody!==void 0&&(i(K.joinBody,{instancePath:y+"/joinBody",parentData:K,parentDataProperty:"joinBody",rootData:H})||(v=v===null?i.errors:v.concat(i.errors),k=v.length)),K.joinLeft!==void 0&&(i(K.joinLeft,{instancePath:y+"/joinLeft",parentData:K,parentDataProperty:"joinLeft",rootData:H})||(v=v===null?i.errors:v.concat(i.errors),k=v.length)),K.joinRight!==void 0&&(i(K.joinRight,{instancePath:y+"/joinRight",parentData:K,parentDataProperty:"joinRight",rootData:H})||(v=v===null?i.errors:v.concat(i.errors),k=v.length)),K.joinJoin!==void 0&&(i(K.joinJoin,{instancePath:y+"/joinJoin",parentData:K,parentDataProperty:"joinJoin",rootData:H})||(v=v===null?i.errors:v.concat(i.errors),k=v.length)),K.joinMiddleUp!==void 0&&(i(K.joinMiddleUp,{instancePath:y+"/joinMiddleUp",parentData:K,parentDataProperty:"joinMiddleUp",rootData:H})||(v=v===null?i.errors:v.concat(i.errors),k=v.length)),K.joinMiddleDown!==void 0&&(i(K.joinMiddleDown,{instancePath:y+"/joinMiddleDown",parentData:K,parentDataProperty:"joinMiddleDown",rootData:H})||(v=v===null?i.errors:v.concat(i.errors),k=v.length)),K.joinMiddleLeft!==void 0&&(i(K.joinMiddleLeft,{instancePath:y+"/joinMiddleLeft",parentData:K,parentDataProperty:"joinMiddleLeft",rootData:H})||(v=v===null?i.errors:v.concat(i.errors),k=v.length)),K.joinMiddleRight!==void 0&&(i(K.joinMiddleRight,{instancePath:y+"/joinMiddleRight",parentData:K,parentDataProperty:"joinMiddleRight",rootData:H})||(v=v===null?i.errors:v.concat(i.errors),k=v.length))}else{const D={instancePath:y,schemaPath:"#/type",keyword:"type",params:{type:"object"},message:"must be object"};v===null?v=[D]:v.push(D),k++}return C.errors=v,k===0}function b(K,{instancePath:y="",parentData:G,parentDataProperty:X,rootData:H=K}={}){let v=null,k=0;const D=k;let V=!1,z=null;const j=k;if(K&&typeof K=="object"&&!Array.isArray(K)){for(const I in K)if(!s.test(I)){const se={instancePath:y,schemaPath:"#/oneOf/0/additionalProperties",keyword:"additionalProperties",params:{additionalProperty:I},message:"must NOT have additional properties"};v===null?v=[se]:v.push(se),k++}for(const I in K)s.test(I)&&(g(K[I],{instancePath:y+"/"+I.replace(/~/g,"~0").replace(/\//g,"~1"),parentData:K,parentDataProperty:I,rootData:H})||(v=v===null?g.errors:v.concat(g.errors),k=v.length))}else{const I={instancePath:y,schemaPath:"#/oneOf/0/type",keyword:"type",params:{type:"object"},message:"must be object"};v===null?v=[I]:v.push(I),k++}var J=j===k;J&&(V=!0,z=0);const te=k;if(Array.isArray(K)){const I=K.length;for(let se=0;se=",limit:1},message:"must be >= 1"};v===null?v=[V]:v.push(V),k++}}if(K.wrapWord!==void 0&&typeof K.wrapWord!="boolean"){const D={instancePath:y+"/wrapWord",schemaPath:"#/properties/wrapWord/type",keyword:"type",params:{type:"boolean"},message:"must be boolean"};v===null?v=[D]:v.push(D),k++}if(K.truncate!==void 0){let D=K.truncate;if(!(typeof D=="number"&&!(D%1)&&!isNaN(D)&&isFinite(D))){const V={instancePath:y+"/truncate",schemaPath:"#/properties/truncate/type",keyword:"type",params:{type:"integer"},message:"must be integer"};v===null?v=[V]:v.push(V),k++}}if(K.paddingLeft!==void 0){let D=K.paddingLeft;if(!(typeof D=="number"&&!(D%1)&&!isNaN(D)&&isFinite(D))){const V={instancePath:y+"/paddingLeft",schemaPath:"#/properties/paddingLeft/type",keyword:"type",params:{type:"integer"},message:"must be integer"};v===null?v=[V]:v.push(V),k++}}if(K.paddingRight!==void 0){let D=K.paddingRight;if(!(typeof D=="number"&&!(D%1)&&!isNaN(D)&&isFinite(D))){const V={instancePath:y+"/paddingRight",schemaPath:"#/properties/paddingRight/type",keyword:"type",params:{type:"integer"},message:"must be integer"};v===null?v=[V]:v.push(V),k++}}}else{const D={instancePath:y,schemaPath:"#/type",keyword:"type",params:{type:"object"},message:"must be object"};v===null?v=[D]:v.push(D),k++}return Q.errors=v,k===0}function F(K,{instancePath:y="",parentData:G,parentDataProperty:X,rootData:H=K}={}){let v=null,k=0;if(K&&typeof K=="object"&&!Array.isArray(K)){if(K.columnDefault===void 0){const D={instancePath:y,schemaPath:"#/required",keyword:"required",params:{missingProperty:"columnDefault"},message:"must have required property 'columnDefault'"};v===null?v=[D]:v.push(D),k++}if(K.columnCount===void 0){const D={instancePath:y,schemaPath:"#/required",keyword:"required",params:{missingProperty:"columnCount"},message:"must have required property 'columnCount'"};v===null?v=[D]:v.push(D),k++}for(const D in K)if(!(D==="border"||D==="columns"||D==="columnDefault"||D==="columnCount"||D==="drawVerticalLine")){const V={instancePath:y,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty:D},message:"must NOT have additional properties"};v===null?v=[V]:v.push(V),k++}if(K.border!==void 0&&(C(K.border,{instancePath:y+"/border",parentData:K,parentDataProperty:"border",rootData:H})||(v=v===null?C.errors:v.concat(C.errors),k=v.length)),K.columns!==void 0&&(b(K.columns,{instancePath:y+"/columns",parentData:K,parentDataProperty:"columns",rootData:H})||(v=v===null?b.errors:v.concat(b.errors),k=v.length)),K.columnDefault!==void 0&&(Q(K.columnDefault,{instancePath:y+"/columnDefault",parentData:K,parentDataProperty:"columnDefault",rootData:H})||(v=v===null?Q.errors:v.concat(Q.errors),k=v.length)),K.columnCount!==void 0){let D=K.columnCount;if(!(typeof D=="number"&&!(D%1)&&!isNaN(D)&&isFinite(D))){const V={instancePath:y+"/columnCount",schemaPath:"#/properties/columnCount/type",keyword:"type",params:{type:"integer"},message:"must be integer"};v===null?v=[V]:v.push(V),k++}if(typeof D=="number"&&isFinite(D)&&(D<1||isNaN(D))){const V={instancePath:y+"/columnCount",schemaPath:"#/properties/columnCount/minimum",keyword:"minimum",params:{comparison:">=",limit:1},message:"must be >= 1"};v===null?v=[V]:v.push(V),k++}}if(K.drawVerticalLine!==void 0&&typeof K.drawVerticalLine!="function"){const D={instancePath:y+"/drawVerticalLine",schemaPath:"#/properties/drawVerticalLine/typeof",keyword:"typeof",params:{},message:'must pass "typeof" keyword validation'};v===null?v=[D]:v.push(D),k++}}else{const D={instancePath:y,schemaPath:"#/type",keyword:"type",params:{type:"object"},message:"must be object"};v===null?v=[D]:v.push(D),k++}return F.errors=v,k===0}})(G_);var NOe=hn&&hn.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Rm,"__esModule",{value:!0});Rm.validateConfig=void 0;const ZOe=NOe(G_),HOe=(e,t)=>{const n=ZOe.default[e];if(!n(t)&&n.errors){const r=n.errors.map(i=>({message:i.message,params:i.params,schemaPath:i.schemaPath}));throw console.log("config",t),console.log("errors",r),new Error("Invalid config.")}};Rm.validateConfig=HOe;Object.defineProperty(cw,"__esModule",{value:!0});cw.makeStreamConfig=void 0;const XOe=zt,LOe=Rm,MOe=(e,t={},n)=>Array.from({length:e}).map((r,i)=>({alignment:"left",paddingLeft:1,paddingRight:1,truncate:Number.POSITIVE_INFINITY,verticalAlignment:"top",wrapWord:!1,...n,...t[i]})),TOe=e=>{if((0,LOe.validateConfig)("streamConfig.json",e),e.columnDefault.width===void 0)throw new Error("Must provide config.columnDefault.width when creating a stream.");return{drawVerticalLine:()=>!0,...e,border:(0,XOe.makeBorderConfig)(e.border),columns:MOe(e.columnCount,e.columns,e.columnDefault)}};cw.makeStreamConfig=TOe;var dw={};(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.mapDataUsingRowHeights=e.padCellVertically=void 0;const t=zt,n=j1,r=o=>new Array(o).fill(""),i=(o,l,s)=>{const u=l-o.length;return s==="top"?[...o,...r(u)]:s==="bottom"?[...r(u),...o]:[...r(Math.floor(u/2)),...o,...r(Math.ceil(u/2))]};e.padCellVertically=i;const a=(o,l,s)=>{const u=o[0].length,c=o.map((d,g)=>{const h=l[g],m=Array.from({length:h},()=>new Array(u).fill(""));return d.forEach((A,B)=>{var C;const b=(C=s.spanningCellManager)===null||C===void 0?void 0:C.getContainingRange({col:B,row:g});if(b){b.extractCellContent(g).forEach((K,y)=>{m[y][B]=K});return}const Q=(0,n.wrapCell)(A,s.columns[B].width,s.columns[B].wrapWord);(0,e.padCellVertically)(Q,h,s.columns[B].verticalAlignment).forEach((K,y)=>{m[y][B]=K})}),m});return(0,t.flatten)(c)};e.mapDataUsingRowHeights=a})(dw);var pw={};(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.padTableData=e.padString=void 0;const t=(r,i,a)=>" ".repeat(i)+r+" ".repeat(a);e.padString=t;const n=(r,i)=>r.map((a,o)=>a.map((l,s)=>{var u;if((u=i.spanningCellManager)===null||u===void 0?void 0:u.getContainingRange({col:s,row:o},{mapped:!0}))return l;const{paddingLeft:d,paddingRight:g}=i.columns[s];return(0,e.padString)(l,d,g)}));e.padTableData=n})(pw);var Sm={};Object.defineProperty(Sm,"__esModule",{value:!0});Sm.stringifyTableData=void 0;const VOe=zt,YOe=e=>e.map(t=>t.map(n=>(0,VOe.normalizeString)(String(n))));Sm.stringifyTableData=YOe;var gw={},c4={exports:{}};c4.exports;(function(e,t){var n=30,r="...",i=1/0,a=17976931348623157e292,o=0/0,l="[object RegExp]",s="[object Symbol]",u=/^\s+|\s+$/g,c=/\w*$/,d=/^[-+]0x[0-9a-f]+$/i,g=/^0b[01]+$/i,h=/^0o[0-7]+$/i,m="\\ud800-\\udfff",A="\\u0300-\\u036f\\ufe20-\\ufe23",B="\\u20d0-\\u20f0",C="\\ufe0e\\ufe0f",b="["+m+"]",Q="["+A+B+"]",F="\\ud83c[\\udffb-\\udfff]",K="(?:"+Q+"|"+F+")",y="[^"+m+"]",G="(?:\\ud83c[\\udde6-\\uddff]){2}",X="[\\ud800-\\udbff][\\udc00-\\udfff]",H="\\u200d",v=K+"?",k="["+C+"]?",D="(?:"+H+"(?:"+[y,G,X].join("|")+")"+k+v+")*",V=k+v+D,z="(?:"+[y+Q+"?",Q,G,X,b].join("|")+")",j=RegExp(F+"(?="+F+")|"+z+V,"g"),te=RegExp("["+H+m+A+B+C+"]"),J=parseInt,I=typeof hn=="object"&&hn&&hn.Object===Object&&hn,se=typeof self=="object"&&self&&self.Object===Object&&self,Z=I||se||Function("return this")(),S=t&&!t.nodeType&&t,q=S&&!0&&e&&!e.nodeType&&e,T=q&&q.exports===S,ue=T&&I.process,fe=function(){try{return ue&&ue.binding("util")}catch{}}(),_=fe&&fe.isRegExp,Ze=it("length");function ve($){return $.split("")}function it($){return function(Ke){return Ke==null?void 0:Ke[$]}}function et($){return function(Ke){return $(Ke)}}function ot($){return te.test($)}function Oe($){return ot($)?st($):Ze($)}function tt($){return ot($)?pt($):ve($)}function st($){for(var Ke=j.lastIndex=0;j.test($);)Ke++;return Ke}function pt($){return $.match(j)||[]}var ht=Object.prototype,lt=ht.toString,P=Z.Symbol,le=P?P.prototype:void 0,me=le?le.toString:void 0;function Re($){return Ie($)&<.call($)==l}function Qe($,Ke,Ne){var ut=-1,Pe=$.length;Ke<0&&(Ke=-Ke>Pe?0:Pe+Ke),Ne=Ne>Pe?Pe:Ne,Ne<0&&(Ne+=Pe),Pe=Ke>Ne?0:Ne-Ke>>>0,Ke>>>=0;for(var Gt=Array(Pe);++ut=ut?$:Qe($,Ke,Ne)}function Ie($){var Ke=typeof $;return!!$&&(Ke=="object"||Ke=="function")}function Ce($){return!!$&&typeof $=="object"}var de=_?et(_):Re;function we($){return typeof $=="symbol"||Ce($)&<.call($)==s}function ae($){if(!$)return $===0?$:0;if($=nt($),$===i||$===-i){var Ke=$<0?-1:1;return Ke*a}return $===$?$:0}function xe($){var Ke=ae($),Ne=Ke%1;return Ke===Ke?Ne?Ke-Ne:Ke:0}function nt($){if(typeof $=="number")return $;if(we($))return o;if(Ie($)){var Ke=typeof $.valueOf=="function"?$.valueOf():$;$=Ie(Ke)?Ke+"":Ke}if(typeof $!="string")return $===0?$:+$;$=$.replace(u,"");var Ne=g.test($);return Ne||h.test($)?J($.slice(2),Ne?2:8):d.test($)?o:+$}function ft($){return $==null?"":We($)}function Bt($,Ke){var Ne=n,ut=r;if(Ie(Ke)){var Pe="separator"in Ke?Ke.separator:Pe;Ne="length"in Ke?xe(Ke.length):Ne,ut="omission"in Ke?We(Ke.omission):ut}$=ft($);var Gt=$.length;if(ot($)){var An=tt($);Gt=An.length}if(Ne>=Gt)return $;var Xt=Ne-Oe(ut);if(Xt<1)return ut;var Hn=An?Ee(An,0,Xt).join(""):$.slice(0,Xt);if(Pe===void 0)return Hn+ut;if(An&&(Xt+=Hn.length-Xt),de(Pe)){if($.slice(Xt).search(Pe)){var Cn,rr=Hn;for(Pe.global||(Pe=RegExp(Pe.source,ft(c.exec(Pe))+"g")),Pe.lastIndex=0;Cn=Pe.exec(rr);)var ie=Cn.index;Hn=Hn.slice(0,ie===void 0?Xt:ie)}}else if($.indexOf(We(Pe),Xt)!=Xt){var ge=Hn.lastIndexOf(Pe);ge>-1&&(Hn=Hn.slice(0,ge))}return Hn+ut}e.exports=Bt})(c4,c4.exports);var IOe=c4.exports;(function(e){var t=hn&&hn.__importDefault||function(a){return a&&a.__esModule?a:{default:a}};Object.defineProperty(e,"__esModule",{value:!0}),e.truncateTableData=e.truncateString=void 0;const n=t(IOe),r=(a,o)=>(0,n.default)(a,{length:o,omission:"…"});e.truncateString=r;const i=(a,o)=>a.map(l=>l.map((s,u)=>(0,e.truncateString)(s,o[u])));e.truncateTableData=i})(gw);Object.defineProperty(ow,"__esModule",{value:!0});ow.createStream=void 0;const UOe=Km,OOe=Fm,d4=i8,D_=Em,JOe=cw,zOe=dw,POe=pw,jOe=Sm,_Oe=gw,$Oe=zt,N_=(e,t)=>{let n=(0,jOe.stringifyTableData)(e);n=(0,_Oe.truncateTableData)(n,(0,$Oe.extractTruncates)(t));const r=(0,OOe.calculateRowHeights)(n,t);return n=(0,zOe.mapDataUsingRowHeights)(n,r,t),n=(0,UOe.alignTableData)(n,t),n=(0,POe.padTableData)(n,t),n},qOe=(e,t,n)=>{const i=N_([e],n).map(o=>(0,D_.drawRow)(o,n)).join("");let a;a="",a+=(0,d4.drawBorderTop)(t,n),a+=i,a+=(0,d4.drawBorderBottom)(t,n),a=a.trimEnd(),process.stdout.write(a)},eJe=(e,t,n)=>{const i=N_([e],n).map(l=>(0,D_.drawRow)(l,n)).join("");let a="";const o=(0,d4.drawBorderBottom)(t,n);o!==` +`&&(a="\r\x1B[K"),a+=(0,d4.drawBorderJoin)(t,n),a+=i,a+=o,a=a.trimEnd(),process.stdout.write(a)},tJe=e=>{const t=(0,JOe.makeStreamConfig)(e),n=Object.values(t.columns).map(i=>i.width+i.paddingLeft+i.paddingRight);let r=!0;return{write:i=>{if(i.length!==t.columnCount)throw new Error("Row cell count does not match the config.columnCount.");r?(r=!1,qOe(i,n,t)):eJe(i,n,t)}}};ow.createStream=tJe;var hw={},fw={};Object.defineProperty(fw,"__esModule",{value:!0});fw.calculateOutputColumnWidths=void 0;const nJe=e=>e.columns.map(t=>t.paddingLeft+t.width+t.paddingRight);fw.calculateOutputColumnWidths=nJe;var mw={};Object.defineProperty(mw,"__esModule",{value:!0});mw.drawTable=void 0;const rJe=i8,iJe=_1,aJe=Em,oJe=zt,lJe=(e,t,n,r)=>{const{drawHorizontalLine:i,singleLine:a}=r,o=(0,oJe.groupBySizes)(e,n).map((l,s)=>l.map(u=>(0,aJe.drawRow)(u,{...r,rowIndex:s})).join(""));return(0,iJe.drawContent)({contents:o,drawSeparator:(l,s)=>(l===0||l===s||!a)&&i(l,s),elementType:"row",rowIndex:-1,separatorGetter:(0,rJe.createTableBorderGetter)(t,{...r,rowCount:o.length}),spanningCellManager:r.spanningCellManager})};mw.drawTable=lJe;var Aw={};Object.defineProperty(Aw,"__esModule",{value:!0});Aw.injectHeaderConfig=void 0;const sJe=(e,t)=>{var n;let r=(n=t.spanningCells)!==null&&n!==void 0?n:[];const i=t.header,a=[...e];if(i){r=r.map(({row:s,...u})=>({...u,row:s+1}));const{content:o,...l}=i;r.unshift({alignment:"center",col:0,colSpan:e[0].length,paddingLeft:1,paddingRight:1,row:0,wrapWord:!1,...l}),a.unshift([o,...Array.from({length:e[0].length-1}).fill("")])}return[a,r]};Aw.injectHeaderConfig=sJe;var Cw={},Z_={};(function(e){var t=hn&&hn.__importDefault||function(o){return o&&o.__esModule?o:{default:o}};Object.defineProperty(e,"__esModule",{value:!0}),e.calculateMaximumColumnWidths=e.calculateMaximumCellWidth=void 0;const n=t(Wm),r=zt,i=o=>Math.max(...o.split(` +`).map(n.default));e.calculateMaximumCellWidth=i;const a=(o,l=[])=>{const s=new Array(o[0].length).fill(0),u=l.map(r.calculateRangeCoordinate),c=(d,g)=>u.some(h=>(0,r.isCellInRange)({col:g,row:d},h));return o.forEach((d,g)=>{d.forEach((h,m)=>{c(g,m)||(s[m]=Math.max(s[m],(0,e.calculateMaximumCellWidth)(h)))})}),s};e.calculateMaximumColumnWidths=a})(Z_);var Bw={},x1={},uJe=hn&&hn.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(x1,"__esModule",{value:!0});x1.alignVerticalRangeContent=x1.wrapRangeContent=void 0;const cJe=uJe(Wm),dJe=Qm,pJe=dw,gJe=pw,hJe=gw,UX=zt,fJe=j1,mJe=(e,t,n)=>{const{topLeft:r,paddingRight:i,paddingLeft:a,truncate:o,wrapWord:l,alignment:s}=e,u=n.rows[r.row][r.col],c=t-a-i;return(0,fJe.wrapCell)((0,hJe.truncateString)(u,o),c,l).map(d=>{const g=(0,dJe.alignString)(d,c,s);return(0,gJe.padString)(g,a,i)})};x1.wrapRangeContent=mJe;const AJe=(e,t,n)=>{const{rows:r,drawHorizontalLine:i,rowHeights:a}=n,{topLeft:o,bottomRight:l,verticalAlignment:s}=e;if(a.length===0)return[];const u=(0,UX.sumArray)(a.slice(o.row,l.row+1)),c=l.row-o.row,d=(0,UX.sequence)(o.row+1,l.row).filter(h=>!i(h,r.length)).length,g=u+c-d;return(0,pJe.padCellVertically)(t,g,s).map(h=>h.length===0?" ".repeat((0,cJe.default)(t[0])):h)};x1.alignVerticalRangeContent=AJe;var ww={};Object.defineProperty(ww,"__esModule",{value:!0});ww.calculateSpanningCellWidth=void 0;const jQ=zt,CJe=(e,t)=>{const{columnsConfig:n,drawVerticalLine:r}=t,{topLeft:i,bottomRight:a}=e,o=(0,jQ.sumArray)(n.slice(i.col,a.col+1).map(({width:c})=>c)),l=i.col===a.col?n[i.col].paddingRight+n[a.col].paddingLeft:(0,jQ.sumArray)(n.slice(i.col,a.col+1).map(({paddingLeft:c,paddingRight:d})=>c+d)),s=a.col-i.col,u=(0,jQ.sequence)(i.col+1,a.col).filter(c=>!r(c,n.length)).length;return o+l+s-u};ww.calculateSpanningCellWidth=CJe;var bw={};Object.defineProperty(bw,"__esModule",{value:!0});bw.makeRangeConfig=void 0;const BJe=zt,wJe=(e,t)=>{var n;const{topLeft:r,bottomRight:i}=(0,BJe.calculateRangeCoordinate)(e);return{...{...t[r.col],...e,paddingRight:(n=e.paddingRight)!==null&&n!==void 0?n:t[i.col].paddingRight},bottomRight:i,topLeft:r}};bw.makeRangeConfig=wJe;Object.defineProperty(Bw,"__esModule",{value:!0});Bw.createSpanningCellManager=void 0;const OX=x1,bJe=ww,vJe=bw,$p=zt,i5=(e,t)=>t.find(n=>(0,$p.isCellInRange)(e,n)),JX=(e,t)=>{const n=(0,bJe.calculateSpanningCellWidth)(e,t),r=(0,OX.wrapRangeContent)(e,n,t),i=(0,OX.alignVerticalRangeContent)(e,r,t);return{...e,extractBorderContent:l=>{const{topLeft:s}=e,u=(0,$p.sumArray)(t.rowHeights.slice(s.row,l))+(l-s.row-1);return i[u]},extractCellContent:l=>{const{topLeft:s}=e,{drawHorizontalLine:u,rowHeights:c}=t,d=l-s.row,g=(0,$p.sequence)(s.row+1,l).filter(m=>!(u!=null&&u(m,c.length))).length,h=(0,$p.sumArray)(c.slice(s.row,l))+d-g;return i.slice(h,h+c[l])},height:r.length,width:n}},KJe=(e,t,n)=>{const r=i5(e,n),i=i5(t,n);return r&&i?(0,$p.areCellEqual)(r.topLeft,i.topLeft):!1},QJe=e=>{const{row:t,col:n}=e.topLeft;return`${t}/${n}`},WJe=e=>{const{spanningCellConfigs:t,columnsConfig:n}=e,r=t.map(l=>(0,vJe.makeRangeConfig)(l,n)),i={};let a=[],o=[];return{getContainingRange:(l,s)=>{var u;const c=s!=null&&s.mapped?o[l.row]:l.row,d=i5({...l,row:c},r);if(!d)return;if(a.length===0)return JX(d,{...e,rowHeights:a});const g=QJe(d);return(u=i[g])!==null&&u!==void 0||(i[g]=JX(d,{...e,rowHeights:a})),i[g]},inSameRange:(l,s)=>KJe(l,s,r),rowHeights:a,rowIndexMapping:o,setRowHeights:l=>{a=l},setRowIndexMapping:l=>{o=(0,$p.flatten)(l.map((s,u)=>Array.from({length:s},()=>u)))}}};Bw.createSpanningCellManager=WJe;var vw={};Object.defineProperty(vw,"__esModule",{value:!0});vw.validateSpanningCellConfig=void 0;const _Q=zt,V2=(e,t,n)=>e<=n&&n<=t,yJe=(e,t)=>{const[n,r]=[e.length,e[0].length];t.forEach((o,l)=>{const{colSpan:s,rowSpan:u}=o;if(s===void 0&&u===void 0)throw new Error(`Expect at least colSpan or rowSpan is provided in config.spanningCells[${l}]`);if(s!==void 0&&s<1)throw new Error(`Expect colSpan is not equal zero, instead got: ${s} in config.spanningCells[${l}]`);if(u!==void 0&&u<1)throw new Error(`Expect rowSpan is not equal zero, instead got: ${u} in config.spanningCells[${l}]`)});const i=t.map(_Q.calculateRangeCoordinate);i.forEach(({topLeft:o,bottomRight:l},s)=>{if(!V2(0,r-1,o.col)||!V2(0,n-1,o.row)||!V2(0,r-1,l.col)||!V2(0,n-1,l.row))throw new Error(`Some cells in config.spanningCells[${s}] are out of the table`)});const a=Array.from({length:n},()=>Array.from({length:r}));i.forEach(({topLeft:o,bottomRight:l},s)=>{(0,_Q.sequence)(o.row,l.row).forEach(u=>{(0,_Q.sequence)(o.col,l.col).forEach(c=>{if(a[u][c]!==void 0)throw new Error(`Spanning cells in config.spanningCells[${a[u][c]}] and config.spanningCells[${s}] are overlap each other`);a[u][c]=s})})})};vw.validateSpanningCellConfig=yJe;Object.defineProperty(Cw,"__esModule",{value:!0});Cw.makeTableConfig=void 0;const FJe=Z_,EJe=Bw,RJe=zt,SJe=Rm,xJe=vw,GJe=(e,t,n,r)=>{const i=(0,FJe.calculateMaximumColumnWidths)(e,r);return e[0].map((a,o)=>({alignment:"left",paddingLeft:1,paddingRight:1,truncate:Number.POSITIVE_INFINITY,verticalAlignment:"top",width:i[o],wrapWord:!1,...n,...t==null?void 0:t[o]}))},kJe=(e,t={},n)=>{var r,i,a,o,l;(0,SJe.validateConfig)("config.json",t),(0,xJe.validateSpanningCellConfig)(e,(r=t.spanningCells)!==null&&r!==void 0?r:[]);const s=(i=n??t.spanningCells)!==null&&i!==void 0?i:[],u=GJe(e,t.columns,t.columnDefault,s),c=(a=t.drawVerticalLine)!==null&&a!==void 0?a:()=>!0,d=(o=t.drawHorizontalLine)!==null&&o!==void 0?o:()=>!0;return{...t,border:(0,RJe.makeBorderConfig)(t.border),columns:u,drawHorizontalLine:d,drawVerticalLine:c,singleLine:(l=t.singleLine)!==null&&l!==void 0?l:!1,spanningCellManager:(0,EJe.createSpanningCellManager)({columnsConfig:u,drawHorizontalLine:d,drawVerticalLine:c,rows:e,spanningCellConfigs:s})}};Cw.makeTableConfig=kJe;var Kw={};Object.defineProperty(Kw,"__esModule",{value:!0});Kw.validateTableData=void 0;const DJe=zt,NJe=e=>{if(!Array.isArray(e))throw new TypeError("Table data must be an array.");if(e.length===0)throw new Error("Table must define at least one row.");if(e[0].length===0)throw new Error("Table must define at least one column.");const t=e[0].length;for(const n of e){if(!Array.isArray(n))throw new TypeError("Table row data must be an array.");if(n.length!==t)throw new Error("Table must have a consistent number of cells.");for(const r of n)if(/[\u0001-\u0006\u0008\u0009\u000B-\u001A]/.test((0,DJe.normalizeString)(String(r))))throw new Error("Table data must not contain control characters.")}};Kw.validateTableData=NJe;Object.defineProperty(hw,"__esModule",{value:!0});hw.table=void 0;const ZJe=Km,HJe=fw,XJe=Fm,LJe=mw,MJe=Aw,TJe=Cw,VJe=dw,YJe=pw,IJe=Sm,UJe=gw,OJe=zt,JJe=Kw,zJe=(e,t={})=>{(0,JJe.validateTableData)(e);let n=(0,IJe.stringifyTableData)(e);const[r,i]=(0,MJe.injectHeaderConfig)(n,t),a=(0,TJe.makeTableConfig)(r,t,i);n=(0,UJe.truncateTableData)(r,(0,OJe.extractTruncates)(a));const o=(0,XJe.calculateRowHeights)(n,a);a.spanningCellManager.setRowHeights(o),a.spanningCellManager.setRowIndexMapping(o),n=(0,VJe.mapDataUsingRowHeights)(n,o,a),n=(0,ZJe.alignTableData)(n,a),n=(0,YJe.padTableData)(n,a);const l=(0,HJe.calculateOutputColumnWidths)(a);return(0,LJe.drawTable)(n,l,o,a)};hw.table=zJe;var H_={};Object.defineProperty(H_,"__esModule",{value:!0});(function(e){var t=hn&&hn.__createBinding||(Object.create?function(o,l,s,u){u===void 0&&(u=s),Object.defineProperty(o,u,{enumerable:!0,get:function(){return l[s]}})}:function(o,l,s,u){u===void 0&&(u=s),o[u]=l[s]}),n=hn&&hn.__exportStar||function(o,l){for(var s in o)s!=="default"&&!Object.prototype.hasOwnProperty.call(l,s)&&t(l,o,s)};Object.defineProperty(e,"__esModule",{value:!0}),e.getBorderCharacters=e.createStream=e.table=void 0;const r=ow;Object.defineProperty(e,"createStream",{enumerable:!0,get:function(){return r.createStream}});const i=ym;Object.defineProperty(e,"getBorderCharacters",{enumerable:!0,get:function(){return i.getBorderCharacters}});const a=hw;Object.defineProperty(e,"table",{enumerable:!0,get:function(){return a.table}}),n(H_,e)})(Q_);const ip=Ve.th` + padding: 0.5rem; + text-align: left; + border: 1px solid ${yn}; +`,Y2=Ve.tr` + &:hover { + background-color: ${yn}; + } -${n} + overflow-wrap: anywhere; -`),{prompt:t,completion:n}}async*_streamComplete(l,c){throw new Error("Not implemented")}async*_streamChat(l,c){if(!this.templateMessages)throw new Error("You must either implement templateMessages or _streamChat");for await(const G of this._streamComplete(this.templateMessages(l),c))yield{role:"assistant",content:G}}async _complete(l,c){let G="";for await(const e of this._streamComplete(l,c))G+=e;return G}countTokens(l){return it(l,this.model)}collectArgs(l){return{...e0I,...l}}renderPromptTemplate(l,c,G,e=!1){var d;if(typeof l=="string"){let t={history:c,...G};return c.length>0&&c[0].role=="system"&&(t.system_message=c.shift().content),Handlebars.compile(l)(t)}else{const t=l(c,{...G,supportsCompletions:this.supportsCompletions()?"true":"false",supportsPrefill:this.supportsPrefill()?"true":"false"});return typeof t!="string"&&((d=t[t.length-1])==null?void 0:d.role)==="assistant"&&!e?Hk(this.model,this.providerName,qu(this.model))(t):t}}}Zc(lv,"providerName"),Zc(lv,"defaultOptions");function M7I(){return{}}const CM="https://proxy-server-green-l6vsfbzhba-uw.a.run.app";async function*MM(I){if(I.status!==200)throw new Error(await I.text());if(!I.body)throw new Error("No response body returned.");const l=I.body,c=new TextDecoder("utf-8");for await(const G of l)yield c.decode(G)}class cv extends lv{_getHeaders(){return{uniqueId:this.uniqueId||"None","Content-Type":"application/json",...M7I()}}_convertArgs(l){var c;return{model:l.model,frequency_penalty:l.frequencyPenalty,presence_penalty:l.presencePenalty,max_tokens:l.maxTokens,stop:l.model==="starcoder-7b"?l.stop:(c=l.stop)==null?void 0:c.slice(0,2),temperature:l.temperature,top_p:l.topP}}async*_streamComplete(l,c){const G=this._convertArgs(this.collectArgs(c)),e=await this.fetch(`${CM}/stream_complete`,{method:"POST",headers:this._getHeaders(),body:JSON.stringify({prompt:l,...G})});for await(const d of MM(e))yield d}_convertMessage(l){if(typeof l.content=="string")return l;const c=l.content.map(G=>({type:G.type,text:G.text,image_url:{...G.imageUrl,detail:"low"}}));return{...l,content:c}}async*_streamChat(l,c){const G=this._convertArgs(this.collectArgs(c)),e=await this.fetch(`${CM}/stream_chat`,{method:"POST",headers:this._getHeaders(),body:JSON.stringify({messages:l.map(this._convertMessage),...G})});for await(const d of MM(e))yield{role:"assistant",content:d}}async listModels(){return["gpt-3.5-turbo","gpt-4","gemini-pro","gpt-4-vision-preview","codellama-70b","claude-3-opus-20240229","claude-3-sonnet-20240229","claude-3-haiku-20240307"]}}Zc(cv,"providerName","free-trial");const f7I={meilisearchUrl:void 0,slashCommands:[],selectedContextItems:[],config:{models:[new cv({model:"gpt-4"}),new cv({model:"gpt-3.5-turbo"})]},contextProviders:[],savedContextGroups:[],indexingProgress:1},K7I=yh({name:"serverState",initialState:f7I,reducers:{setSlashCommands:(I,l)=>{I.slashCommands=[...l.payload,{name:"codebase",description:"Retrieve codebase context"},{name:"so",description:"Search StackOverflow"}]},setContextProviders:(I,l)=>{I.contextProviders=l.payload},setIndexingProgress:(I,l)=>{I.indexingProgress=l.payload}}}),L7I=K7I.reducer;var i1="persist:",d3="persist/FLUSH",F1="persist/REHYDRATE",t3="persist/PAUSE",n3="persist/PERSIST",b3="persist/PURGE",a3="persist/REGISTER",Z3=-1;function eV(I){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?eV=function(c){return typeof c}:eV=function(c){return c&&typeof Symbol=="function"&&c.constructor===Symbol&&c!==Symbol.prototype?"symbol":typeof c},eV(I)}function fM(I,l){var c=Object.keys(I);if(Object.getOwnPropertySymbols){var G=Object.getOwnPropertySymbols(I);l&&(G=G.filter(function(e){return Object.getOwnPropertyDescriptor(I,e).enumerable})),c.push.apply(c,G)}return c}function S7I(I){for(var l=1;l=0)&&Object.prototype.propertyIsEnumerable.call(I,G)&&(c[G]=I[G])}return c}function $7I(I,l){if(I==null)return{};var c={},G=Object.keys(I),e,d;for(d=0;d=0)&&(c[e]=I[e]);return c}var IOI=5e3;function W3(I,l){var c=I.version!==void 0?I.version:Z3;I.debug;var G=I.stateReconciler===void 0?j7I:I.stateReconciler,e=I.getStoredState||K_,d=I.timeout!==void 0?I.timeout:IOI,t=null,n=!1,b=!0,a=function(W){return W._persist.rehydrated&&t&&!b&&t.update(W),W};return function(Z,W){var m=Z||{},s=m._persist,h=q7I(m,["_persist"]),p=h;if(W.type===n3){var V=!1,o=function(C,k){V||(W.rehydrate(I.key,C,k),V=!0)};if(d&&setTimeout(function(){!V&&o(void 0,new Error('redux-persist: persist timed out for persist key "'.concat(I.key,'"')))},d),b=!1,t||(t=f_(I)),s)return gb({},l(p,W),{_persist:s});if(typeof W.rehydrate!="function"||typeof W.register!="function")throw new Error("redux-persist: either rehydrate or register is not a function on the PERSIST action. This can happen if the action is being replayed. This is an unexplored use case, please open an issue and we will figure out a resolution.");return W.register(I.key),e(I).then(function(B){var C=I.migrate||function(k,N){return Promise.resolve(k)};C(B,c).then(function(k){o(k)},function(k){o(void 0,k)})},function(B){o(void 0,B)}),gb({},l(p,W),{_persist:{version:c,rehydrated:!1}})}else{if(W.type===b3)return n=!0,W.result(L_(I)),gb({},l(p,W),{_persist:s});if(W.type===d3)return W.result(t&&t.flush()),gb({},l(p,W),{_persist:s});if(W.type===t3)b=!0;else if(W.type===F1){if(n)return gb({},p,{_persist:gb({},s,{rehydrated:!0})});if(W.key===I.key){var F=l(p,W),X=W.payload,H=G!==!1&&X!==void 0?G(X,Z,F,I):F,Y=gb({},H,{_persist:gb({},s,{rehydrated:!0})});return a(Y)}}}if(!s)return l(Z,W);var R=l(p,W);return R===p?Z:a(gb({},R,{_persist:s}))}}function Yu(I){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Yu=function(c){return typeof c}:Yu=function(c){return c&&typeof Symbol=="function"&&c.constructor===Symbol&&c!==Symbol.prototype?"symbol":typeof c},Yu(I)}function LM(I,l){var c=Object.keys(I);if(Object.getOwnPropertySymbols){var G=Object.getOwnPropertySymbols(I);l&&(G=G.filter(function(e){return Object.getOwnPropertyDescriptor(I,e).enumerable})),c.push.apply(c,G)}return c}function SM(I){for(var l=1;l0&&arguments[0]!==void 0?arguments[0]:S_,c=arguments.length>1?arguments[1]:void 0;switch(c.type){case a3:return Gv({},l,{registry:[].concat(TM(l.registry),[c.key])});case F1:var G=l.registry.indexOf(c.key),e=TM(l.registry);return e.splice(G,1),Gv({},l,{registry:e,bootstrapped:e.length===0});default:return l}};function T_(I,l,c){var G=c||!1,e=Bg(aOI,S_,l&&l.enhancer?l.enhancer:void 0),d=function(a){e.dispatch({type:a3,key:a})},t=function(a,Z,W){var m={type:F1,payload:Z,err:W,key:a};I.dispatch(m),e.dispatch(m),G&&n.getState().bootstrapped&&(G(),G=!1)},n=Gv({},e,{purge:function(){var a=[];return I.dispatch({type:b3,result:function(W){a.push(W)}}),Promise.all(a)},flush:function(){var a=[];return I.dispatch({type:d3,result:function(W){a.push(W)}}),Promise.all(a)},pause:function(){I.dispatch({type:t3})},persist:function(){I.dispatch({type:n3,register:d,rehydrate:t})}});return l&&l.manualPersist||n.persist(),n}function ZOI(I,l){var c=l||{},G=c.debug;return function(e,d){if(!e)return Promise.resolve(void 0);var t=e._persist&&e._persist.version!==void 0?e._persist.version:Z3;if(t===d||t>d)return Promise.resolve(e);var n=Object.keys(I).map(function(a){return parseInt(a)}).filter(function(a){return d>=a&&a>t}).sort(function(a,Z){return a-Z});try{var b=n.reduce(function(a,Z){return I[Z](a)},e);return Promise.resolve(b)}catch(a){return Promise.reject(a)}}}function WOI(I,l){var c=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},G=c.whitelist||null,e=c.blacklist||null;function d(t){return!!(G&&G.indexOf(t)===-1||e&&e.indexOf(t)!==-1)}return{in:function(n,b,a){return!d(b)&&I?I(n,b,a):n},out:function(n,b,a){return!d(b)&&l?l(n,b,a):n}}}const rOI=Object.freeze(Object.defineProperty({__proto__:null,DEFAULT_VERSION:Z3,FLUSH:d3,KEY_PREFIX:i1,PAUSE:t3,PERSIST:n3,PURGE:b3,REGISTER:a3,REHYDRATE:F1,createMigrate:ZOI,createPersistoid:f_,createTransform:WOI,getStoredState:K_,persistCombineReducers:eOI,persistReducer:W3,persistStore:T_,purgeStoredState:L_},Symbol.toStringTag,{value:"Module"}));var A0={};const mOI=ff(rOI);var sOI=Array.isArray,ub=sOI,uOI=typeof sc=="object"&&sc&&sc.Object===Object&&sc,j_=uOI,hOI=j_,pOI=typeof self=="object"&&self&&self.Object===Object&&self,oOI=hOI||pOI||Function("return this")(),hb=oOI,VOI=hb,iOI=VOI.Symbol,Zp=iOI,DM=Zp,D_=Object.prototype,FOI=D_.hasOwnProperty,NOI=D_.toString,ys=DM?DM.toStringTag:void 0;function ROI(I){var l=FOI.call(I,ys),c=I[ys];try{I[ys]=void 0;var G=!0}catch{}var e=NOI.call(I);return G&&(l?I[ys]=c:delete I[ys]),e}var YOI=ROI,XOI=Object.prototype,HOI=XOI.toString;function QOI(I){return HOI.call(I)}var wOI=QOI,OM=Zp,EOI=YOI,vOI=wOI,gOI="[object Null]",AOI="[object Undefined]",PM=OM?OM.toStringTag:void 0;function yOI(I){return I==null?I===void 0?AOI:gOI:PM&&PM in Object(I)?EOI(I):vOI(I)}var Wp=yOI;function JOI(I){return I!=null&&typeof I=="object"}var ar=JOI,BOI=Wp,kOI=ar,xOI="[object Symbol]";function zOI(I){return typeof I=="symbol"||kOI(I)&&BOI(I)==xOI}var r3=zOI,UOI=ub,COI=r3,MOI=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,fOI=/^\w*$/;function KOI(I,l){if(UOI(I))return!1;var c=typeof I;return c=="number"||c=="symbol"||c=="boolean"||I==null||COI(I)?!0:fOI.test(I)||!MOI.test(I)||l!=null&&I in Object(l)}var m3=KOI;function LOI(I){var l=typeof I;return I!=null&&(l=="object"||l=="function")}var Zr=LOI,SOI=Wp,TOI=Zr,jOI="[object AsyncFunction]",DOI="[object Function]",OOI="[object GeneratorFunction]",POI="[object Proxy]";function _OI(I){if(!TOI(I))return!1;var l=SOI(I);return l==DOI||l==OOI||l==jOI||l==POI}var O_=_OI,qOI=hb,$OI=qOI["__core-js_shared__"],IPI=$OI,TH=IPI,_M=function(){var I=/[^.]+$/.exec(TH&&TH.keys&&TH.keys.IE_PROTO||"");return I?"Symbol(src)_1."+I:""}();function lPI(I){return!!_M&&_M in I}var cPI=lPI,GPI=Function.prototype,ePI=GPI.toString;function dPI(I){if(I!=null){try{return ePI.call(I)}catch{}try{return I+""}catch{}}return""}var P_=dPI,tPI=O_,nPI=cPI,bPI=Zr,aPI=P_,ZPI=/[\\^$.*+?()[\]{}|]/g,WPI=/^\[object .+?Constructor\]$/,rPI=Function.prototype,mPI=Object.prototype,sPI=rPI.toString,uPI=mPI.hasOwnProperty,hPI=RegExp("^"+sPI.call(uPI).replace(ZPI,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function pPI(I){if(!bPI(I)||nPI(I))return!1;var l=tPI(I)?hPI:WPI;return l.test(aPI(I))}var oPI=pPI;function VPI(I,l){return I==null?void 0:I[l]}var iPI=VPI,FPI=oPI,NPI=iPI;function RPI(I,l){var c=NPI(I,l);return FPI(c)?c:void 0}var Wr=RPI,YPI=Wr,XPI=YPI(Object,"create"),N1=XPI,qM=N1;function HPI(){this.__data__=qM?qM(null):{},this.size=0}var QPI=HPI;function wPI(I){var l=this.has(I)&&delete this.__data__[I];return this.size-=l?1:0,l}var EPI=wPI,vPI=N1,gPI="__lodash_hash_undefined__",API=Object.prototype,yPI=API.hasOwnProperty;function JPI(I){var l=this.__data__;if(vPI){var c=l[I];return c===gPI?void 0:c}return yPI.call(l,I)?l[I]:void 0}var BPI=JPI,kPI=N1,xPI=Object.prototype,zPI=xPI.hasOwnProperty;function UPI(I){var l=this.__data__;return kPI?l[I]!==void 0:zPI.call(l,I)}var CPI=UPI,MPI=N1,fPI="__lodash_hash_undefined__";function KPI(I,l){var c=this.__data__;return this.size+=this.has(I)?0:1,c[I]=MPI&&l===void 0?fPI:l,this}var LPI=KPI,SPI=QPI,TPI=EPI,jPI=BPI,DPI=CPI,OPI=LPI;function y0(I){var l=-1,c=I==null?0:I.length;for(this.clear();++l-1}var r_I=W_I,m_I=R1;function s_I(I,l){var c=this.__data__,G=m_I(c,I);return G<0?(++this.size,c.push([I,l])):c[G][1]=l,this}var u_I=s_I,h_I=qPI,p_I=t_I,o_I=a_I,V_I=r_I,i_I=u_I;function J0(I){var l=-1,c=I==null?0:I.length;for(this.clear();++l-1&&I%1==0&&Ie?0:e+l),c=c>e?e:c,c<0&&(c+=e),e=l>c?0:c-l>>>0,l>>>=0;for(var d=Array(e);++Gn))return!1;var a=d.get(I),Z=d.get(l);if(a&&Z)return a==l&&Z==I;var W=-1,m=!0,s=c&O$I?new S$I:void 0;for(d.set(I,l),d.set(l,I);++W-1&&I%1==0&&I<=jIl}var R3=DIl,OIl=Wp,PIl=R3,_Il=ar,qIl="[object Arguments]",$Il="[object Array]",Ill="[object Boolean]",lll="[object Date]",cll="[object Error]",Gll="[object Function]",ell="[object Map]",dll="[object Number]",tll="[object Object]",nll="[object RegExp]",bll="[object Set]",all="[object String]",Zll="[object WeakMap]",Wll="[object ArrayBuffer]",rll="[object DataView]",mll="[object Float32Array]",sll="[object Float64Array]",ull="[object Int8Array]",hll="[object Int16Array]",pll="[object Int32Array]",oll="[object Uint8Array]",Vll="[object Uint8ClampedArray]",ill="[object Uint16Array]",Fll="[object Uint32Array]",cG={};cG[mll]=cG[sll]=cG[ull]=cG[hll]=cG[pll]=cG[oll]=cG[Vll]=cG[ill]=cG[Fll]=!0;cG[qIl]=cG[$Il]=cG[Wll]=cG[Ill]=cG[rll]=cG[lll]=cG[cll]=cG[Gll]=cG[ell]=cG[dll]=cG[tll]=cG[nll]=cG[bll]=cG[all]=cG[Zll]=!1;function Nll(I){return _Il(I)&&PIl(I.length)&&!!cG[OIl(I)]}var Rll=Nll;function Yll(I){return function(l){return I(l)}}var Y3=Yll,cF={exports:{}};cF.exports;(function(I,l){var c=j_,G=l&&!l.nodeType&&l,e=G&&!0&&I&&!I.nodeType&&I,d=e&&e.exports===G,t=d&&c.process,n=function(){try{var b=e&&e.require&&e.require("util").types;return b||t&&t.binding&&t.binding("util")}catch{}}();I.exports=n})(cF,cF.exports);var X3=cF.exports,Xll=Rll,Hll=Y3,Zf=X3,Wf=Zf&&Zf.isTypedArray,Qll=Wf?Hll(Wf):Xll,H3=Qll,wll=BIl,Ell=N3,vll=ub,gll=Q1,All=V3,yll=H3,Jll=Object.prototype,Bll=Jll.hasOwnProperty;function kll(I,l){var c=vll(I),G=!c&&Ell(I),e=!c&&!G&&gll(I),d=!c&&!G&&!e&&yll(I),t=c||G||e||d,n=t?wll(I.length,String):[],b=n.length;for(var a in I)(l||Bll.call(I,a))&&!(t&&(a=="length"||e&&(a=="offset"||a=="parent")||d&&(a=="buffer"||a=="byteLength"||a=="byteOffset")||All(a,b)))&&n.push(a);return n}var aq=kll,xll=Object.prototype;function zll(I){var l=I&&I.constructor,c=typeof l=="function"&&l.prototype||xll;return I===c}var w1=zll;function Ull(I,l){return function(c){return I(l(c))}}var Zq=Ull,Cll=Zq,Mll=Cll(Object.keys,Object),fll=Mll,Kll=w1,Lll=fll,Sll=Object.prototype,Tll=Sll.hasOwnProperty;function jll(I){if(!Kll(I))return Lll(I);var l=[];for(var c in Object(I))Tll.call(I,c)&&c!="constructor"&&l.push(c);return l}var Wq=jll,Dll=O_,Oll=R3;function Pll(I){return I!=null&&Oll(I.length)&&!Dll(I)}var Q3=Pll,_ll=aq,qll=Wq,$ll=Q3;function Icl(I){return $ll(I)?_ll(I):qll(I)}var E1=Icl,lcl=tq,ccl=F3,Gcl=E1;function ecl(I){return lcl(I,Gcl,ccl)}var rq=ecl,rf=rq,dcl=1,tcl=Object.prototype,ncl=tcl.hasOwnProperty;function bcl(I,l,c,G,e,d){var t=c&dcl,n=rf(I),b=n.length,a=rf(l),Z=a.length;if(b!=Z&&!t)return!1;for(var W=b;W--;){var m=n[W];if(!(t?m in l:ncl.call(l,m)))return!1}var s=d.get(I),h=d.get(l);if(s&&h)return s==l&&h==I;var p=!0;d.set(I,l),d.set(l,I);for(var V=t;++W3&&arguments[3]!==void 0?arguments[3]:"whitelist";return(0,Knl.createTransform)(function(e,d){return l?av(e,l,G):e},function(e,d){return c?av(e,c,G):e},{whitelist:[I]})}function Ibl(I,l,c){return A1(I,l,c,"whitelist")}function lbl(I,l,c){return A1(I,l,c,"blacklist")}function zf(I,l){var c=I.path,G=I.filterFunction,e=G===void 0?function(){return!0}:G,d=(0,tV.default)(l,c,l);return d instanceof Array?d.filter(e):(0,Dnl.default)(d,e)}function av(I){var l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],c=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"whitelist",G={};return typeof l=="string"&&(l=[l]),c==="whitelist"?l.forEach(function(e){if((typeof e>"u"?"undefined":Bf(e))==="object"&&!(e instanceof Array)){var d=zf(e,I);(0,xf.default)(d)||(0,OH.default)(G,e.path,d)}else{var t=(0,tV.default)(I,e);typeof t<"u"&&(0,OH.default)(G,e,t)}}):c==="blacklist"?(G=(0,$nl.default)(I),l.forEach(function(e){if((typeof e>"u"?"undefined":Bf(e))==="object"&&!(e instanceof Array)){var d=zf(e,I);(0,xf.default)(d)?G=d:d instanceof Array?(0,OH.default)(G,e.path,(0,tV.default)(G,e.path,G).filter(function(n){return!1})):(0,_nl.default)(d,function(n,b){(0,kf.default)(G,e.path+"["+b+"]")})}else{var t=(0,tV.default)(I,e);typeof t<"u"&&(0,kf.default)(G,e)}})):G=I,G}A0.default=A1;var cbl=ebl;function Xu(I){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Xu=function(c){return typeof c}:Xu=function(c){return c&&typeof Symbol=="function"&&c.constructor===Symbol&&c!==Symbol.prototype?"symbol":typeof c},Xu(I)}function Uf(I,l){var c=Object.keys(I);if(Object.getOwnPropertySymbols){var G=Object.getOwnPropertySymbols(I);l&&(G=G.filter(function(e){return Object.getOwnPropertyDescriptor(I,e).enumerable})),c.push.apply(c,G)}return c}function Cf(I){for(var l=1;l"u"?"undefined":nV(self))!=="object"||!(I in self))return!1;try{var l=self[I],c="redux-persist ".concat(I," test");l.setItem(c,"test"),l.getItem(c),l.removeItem(c)}catch{return!1}return!0}function bbl(I){var l="".concat(I,"Storage");return nbl(l)?self[l]:tbl}E3.__esModule=!0;E3.default=Wbl;var abl=Zbl(v3);function Zbl(I){return I&&I.__esModule?I:{default:I}}function Wbl(I){var l=(0,abl.default)(I);return{getItem:function(G){return new Promise(function(e,d){e(l.getItem(G))})},setItem:function(G,e){return new Promise(function(d,t){d(l.setItem(G,e))})},removeItem:function(G){return new Promise(function(e,d){e(l.removeItem(G))})}}}var Xq=void 0,rbl=mbl(E3);function mbl(I){return I&&I.__esModule?I:{default:I}}var sbl=(0,rbl.default)("local");Xq=sbl;const ubl=kg({state:oiI,config:xiI,misc:G7I,uiState:csI,serverState:L7I}),hbl=[fnl("state",["history","contextItems","sessionId","defaultModelTitle"])],pbl={key:"root",storage:Xq,transforms:[...hbl],stateReconciler:cbl},obl=W3(pbl,ubl),Hq=K0I({reducer:obl,middleware:I=>I({serializableCheck:!1})}),Vbl=T_(Hq);(async()=>qH.createRoot(document.getElementById("root")).render(v.jsx(Gl.StrictMode,{children:v.jsx(qbI,{store:Hq,children:v.jsx(pS,{loading:null,persistor:Vbl,children:v.jsx(l7I,{children:v.jsx(I7I,{})})})})})))();export{sc as c}; + border: 1px solid ${yn}; +`,ap=Ve.td` + padding: 0.5rem; + border: 1px solid ${yn}; +`;function zX(e){return Q_.table(e)}function PJe(){sm();const e=Hr(),t=E.useContext(Zn),[n,r]=E.useState([]),[i,a]=E.useState([]);return E.useEffect(()=>{t.request("stats/getTokensPerDay",void 0).then(o=>{r(o)})},[]),E.useEffect(()=>{t.request("stats/getTokensPerModel",void 0).then(o=>{a(o)})},[]),W.jsxs("div",{children:[W.jsxs("div",{className:"items-center flex m-0 p-0 sticky top-0",style:{borderBottom:`0.5px solid ${rt}`,backgroundColor:Gn},children:[W.jsx(hu,{width:"1.2em",height:"1.2em",onClick:()=>e("/"),className:"inline-block ml-4 cursor-pointer"}),W.jsx("h3",{className:"text-lg font-bold m-2 inline-block",children:"My Usage"})]}),W.jsxs("div",{className:"flex gap-2 items-center",children:[W.jsx("h2",{className:"ml-2",children:"Tokens per Day"}),W.jsx(VB,{text:zX([["Day","Generated Tokens","Prompt Tokens"]].concat(n.map(o=>[o.day,o.generatedTokens,o.promptTokens])))})]}),W.jsxs("table",{className:"w-full border-collapse",children:[W.jsx("thead",{children:W.jsxs(Y2,{children:[W.jsx(ip,{children:"Day"}),W.jsx(ip,{children:"Generated Tokens"}),W.jsx(ip,{children:"Prompt Tokens"})]})}),W.jsx("tbody",{children:n.map(o=>W.jsxs(Y2,{className:"",children:[W.jsx(ap,{children:o.day}),W.jsx(ap,{children:o.generatedTokens}),W.jsx(ap,{children:o.promptTokens})]},o.day))})]}),W.jsxs("div",{className:"flex gap-2 items-center",children:[W.jsx("h2",{className:"ml-2",children:"Tokens per Model"}),W.jsx(VB,{text:zX([["Model","Generated Tokens","Prompt Tokens"]].concat(i.map(o=>[o.model,o.generatedTokens,o.promptTokens])))})]}),W.jsxs("table",{className:"w-full border-collapse",children:[W.jsx("thead",{children:W.jsxs(Y2,{children:[W.jsx(ip,{children:"Model"}),W.jsx(ip,{children:"Generated Tokens"}),W.jsx(ip,{children:"Prompt Tokens"})]})}),W.jsx("tbody",{children:i.map(o=>W.jsxs(Y2,{className:"",children:[W.jsx(ap,{children:o.model}),W.jsx(ap,{children:o.generatedTokens}),W.jsx(ap,{children:o.promptTokens})]},o.model))})]})]})}const jJe=mce([{path:"/",element:W.jsx(y3e,{}),errorElement:W.jsx(KGe,{}),children:[{path:"/index.html",element:W.jsx(WX,{})},{path:"/",element:W.jsx(WX,{})},{path:"/history",element:W.jsx(iIe,{})},{path:"/stats",element:W.jsx(PJe,{})},{path:"/help",element:W.jsx(yX,{})},{path:"/settings",element:W.jsx(SUe,{})},{path:"/addModel",element:W.jsx(bGe,{})},{path:"/addModel/provider/:providerName",element:W.jsx(CGe,{})},{path:"/help",element:W.jsx(yX,{})},{path:"/monaco",element:W.jsx(gUe,{})},{path:"/onboarding",element:W.jsx(KUe,{})},{path:"/localOnboarding",element:W.jsx(vUe,{})},{path:"/migration",element:W.jsx(aIe,{})},{path:"/apiKeysOnboarding",element:W.jsx(CUe,{})},{path:"/apiKeyAutocompleteOnboarding",element:W.jsx(mUe,{})}]}]);function _Je(){const e=Zr();H3e(e);const t=twe(),n=q3e();return W.jsx(JU.Provider,{value:t,children:W.jsx(E9.Provider,{value:n,children:W.jsx(Rce,{router:jJe})})})}const $Je=({children:e})=>{const t=en(i=>{var a;return(a=i==null?void 0:i.state)==null?void 0:a.config.allowAnonymousTelemetry}),[n,r]=ct.useState(void 0);return E.useEffect(()=>{t?(N0.init("phc_JS6XFROuNbhJtVCEdTSYk6gl5ArRrTNMpCcguAXlSPs",{api_host:"https://app.posthog.com",disable_session_recording:!0,capture_pageview:!1}),N0.identify(window.vscMachineId),N0.opt_in_capturing(),r(n)):r(void 0)},[t]),t?W.jsx(ahe,{client:n,children:e}):W.jsx(W.Fragment,{children:e})};const qJe=tm({name:"misc",initialState:{takenAction:!1,serverStatusMessage:"Continue Server Starting"},reducers:{setTakenActionTrue:e=>{e.takenAction=!0},setServerStatusMessage:(e,t)=>{e.serverStatusMessage=t.payload}}}),eze=qJe.reducer,tze={meilisearchUrl:void 0,slashCommands:[],selectedContextItems:[],config:{models:[]},contextProviders:[],savedContextGroups:[],indexingProgress:1},nze=tm({name:"serverState",initialState:tze,reducers:{setSlashCommands:(e,t)=>{e.slashCommands=[...t.payload,{name:"codebase",description:"Retrieve codebase context"},{name:"so",description:"Search StackOverflow"}]},setContextProviders:(e,t)=>{e.contextProviders=t.payload},setIndexingProgress:(e,t)=>{e.indexingProgress=t.payload}}}),rze=nze.reducer;var Qw="persist:",o8="persist/FLUSH",Ww="persist/REHYDRATE",l8="persist/PAUSE",s8="persist/PERSIST",u8="persist/PURGE",c8="persist/REGISTER",d8=-1;function KC(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?KC=function(n){return typeof n}:KC=function(n){return n&&typeof Symbol=="function"&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},KC(e)}function PX(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function ize(e){for(var t=1;t=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function pze(e,t){if(e==null)return{};var n={},r=Object.keys(e),i,a;for(a=0;a=0)&&(n[i]=e[i]);return n}var gze=5e3;function p8(e,t){var n=e.version!==void 0?e.version:d8;e.debug;var r=e.stateReconciler===void 0?oze:e.stateReconciler,i=e.getStoredState||L_,a=e.timeout!==void 0?e.timeout:gze,o=null,l=!1,s=!0,u=function(d){return d._persist.rehydrated&&o&&!s&&o.update(d),d};return function(c,d){var g=c||{},h=g._persist,m=dze(g,["_persist"]),A=m;if(d.type===s8){var B=!1,C=function(X,H){B||(d.rehydrate(e.key,X,H),B=!0)};if(a&&setTimeout(function(){!B&&C(void 0,new Error('redux-persist: persist timed out for persist key "'.concat(e.key,'"')))},a),s=!1,o||(o=X_(e)),h)return Ns({},t(A,d),{_persist:h});if(typeof d.rehydrate!="function"||typeof d.register!="function")throw new Error("redux-persist: either rehydrate or register is not a function on the PERSIST action. This can happen if the action is being replayed. This is an unexplored use case, please open an issue and we will figure out a resolution.");return d.register(e.key),i(e).then(function(G){var X=e.migrate||function(H,v){return Promise.resolve(H)};X(G,n).then(function(H){C(H)},function(H){C(void 0,H)})},function(G){C(void 0,G)}),Ns({},t(A,d),{_persist:{version:n,rehydrated:!1}})}else{if(d.type===u8)return l=!0,d.result(M_(e)),Ns({},t(A,d),{_persist:h});if(d.type===o8)return d.result(o&&o.flush()),Ns({},t(A,d),{_persist:h});if(d.type===l8)s=!0;else if(d.type===Ww){if(l)return Ns({},A,{_persist:Ns({},h,{rehydrated:!0})});if(d.key===e.key){var b=t(A,d),Q=d.payload,F=r!==!1&&Q!==void 0?r(Q,c,b,e):b,K=Ns({},F,{_persist:Ns({},h,{rehydrated:!0})});return u(K)}}}if(!h)return t(c,d);var y=t(A,d);return y===A?c:u(Ns({},y,{_persist:h}))}}function Ih(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Ih=function(n){return typeof n}:Ih=function(n){return n&&typeof Symbol=="function"&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},Ih(e)}function _X(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function $X(e){for(var t=1;t0&&arguments[0]!==void 0?arguments[0]:T_,n=arguments.length>1?arguments[1]:void 0;switch(n.type){case c8:return a5({},t,{registry:[].concat(qX(t.registry),[n.key])});case Ww:var r=t.registry.indexOf(n.key),i=qX(t.registry);return i.splice(r,1),a5({},t,{registry:i,bootstrapped:i.length===0});default:return t}};function V_(e,t,n){var r=n||!1,i=jE(vze,T_,t&&t.enhancer?t.enhancer:void 0),a=function(u){i.dispatch({type:c8,key:u})},o=function(u,c,d){var g={type:Ww,payload:c,err:d,key:u};e.dispatch(g),i.dispatch(g),r&&l.getState().bootstrapped&&(r(),r=!1)},l=a5({},i,{purge:function(){var u=[];return e.dispatch({type:u8,result:function(d){u.push(d)}}),Promise.all(u)},flush:function(){var u=[];return e.dispatch({type:o8,result:function(d){u.push(d)}}),Promise.all(u)},pause:function(){e.dispatch({type:l8})},persist:function(){e.dispatch({type:s8,register:a,rehydrate:o})}});return t&&t.manualPersist||l.persist(),l}function Kze(e,t){var n=t||{},r=n.debug;return function(i,a){if(!i)return Promise.resolve(void 0);var o=i._persist&&i._persist.version!==void 0?i._persist.version:d8;if(o===a||o>a)return Promise.resolve(i);var l=Object.keys(e).map(function(u){return parseInt(u)}).filter(function(u){return a>=u&&u>o}).sort(function(u,c){return u-c});try{var s=l.reduce(function(u,c){return e[c](u)},i);return Promise.resolve(s)}catch(u){return Promise.reject(u)}}}function Qze(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},r=n.whitelist||null,i=n.blacklist||null;function a(o){return!!(r&&r.indexOf(o)===-1||i&&i.indexOf(o)!==-1)}return{in:function(l,s,u){return!a(s)&&e?e(l,s,u):l},out:function(l,s,u){return!a(s)&&t?t(l,s,u):l}}}const Wze=Object.freeze(Object.defineProperty({__proto__:null,DEFAULT_VERSION:d8,FLUSH:o8,KEY_PREFIX:Qw,PAUSE:l8,PERSIST:s8,PURGE:u8,REGISTER:c8,REHYDRATE:Ww,createMigrate:Kze,createPersistoid:X_,createTransform:Qze,getStoredState:L_,persistCombineReducers:Aze,persistReducer:p8,persistStore:V_,purgeStoredState:M_},Symbol.toStringTag,{value:"Module"}));var $1={};const yze=Rae(Wze);var Fze=Array.isArray,Bs=Fze,Eze=typeof hn=="object"&&hn&&hn.Object===Object&&hn,Y_=Eze,Rze=Y_,Sze=typeof self=="object"&&self&&self.Object===Object&&self,xze=Rze||Sze||Function("return this")(),ws=xze,Gze=ws,kze=Gze.Symbol,xm=kze,tL=xm,I_=Object.prototype,Dze=I_.hasOwnProperty,Nze=I_.toString,qg=tL?tL.toStringTag:void 0;function Zze(e){var t=Dze.call(e,qg),n=e[qg];try{e[qg]=void 0;var r=!0}catch{}var i=Nze.call(e);return r&&(t?e[qg]=n:delete e[qg]),i}var Hze=Zze,Xze=Object.prototype,Lze=Xze.toString;function Mze(e){return Lze.call(e)}var Tze=Mze,nL=xm,Vze=Hze,Yze=Tze,Ize="[object Null]",Uze="[object Undefined]",rL=nL?nL.toStringTag:void 0;function Oze(e){return e==null?e===void 0?Uze:Ize:rL&&rL in Object(e)?Vze(e):Yze(e)}var Gm=Oze;function Jze(e){return e!=null&&typeof e=="object"}var wd=Jze,zze=Gm,Pze=wd,jze="[object Symbol]";function _ze(e){return typeof e=="symbol"||Pze(e)&&zze(e)==jze}var g8=_ze,$ze=Bs,qze=g8,ePe=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,tPe=/^\w*$/;function nPe(e,t){if($ze(e))return!1;var n=typeof e;return n=="number"||n=="symbol"||n=="boolean"||e==null||qze(e)?!0:tPe.test(e)||!ePe.test(e)||t!=null&&e in Object(t)}var h8=nPe;function rPe(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var bd=rPe,iPe=Gm,aPe=bd,oPe="[object AsyncFunction]",lPe="[object Function]",sPe="[object GeneratorFunction]",uPe="[object Proxy]";function cPe(e){if(!aPe(e))return!1;var t=iPe(e);return t==lPe||t==sPe||t==oPe||t==uPe}var U_=cPe,dPe=ws,pPe=dPe["__core-js_shared__"],gPe=pPe,$Q=gPe,iL=function(){var e=/[^.]+$/.exec($Q&&$Q.keys&&$Q.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function hPe(e){return!!iL&&iL in e}var fPe=hPe,mPe=Function.prototype,APe=mPe.toString;function CPe(e){if(e!=null){try{return APe.call(e)}catch{}try{return e+""}catch{}}return""}var O_=CPe,BPe=U_,wPe=fPe,bPe=bd,vPe=O_,KPe=/[\\^$.*+?()[\]{}|]/g,QPe=/^\[object .+?Constructor\]$/,WPe=Function.prototype,yPe=Object.prototype,FPe=WPe.toString,EPe=yPe.hasOwnProperty,RPe=RegExp("^"+FPe.call(EPe).replace(KPe,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function SPe(e){if(!bPe(e)||wPe(e))return!1;var t=BPe(e)?RPe:QPe;return t.test(vPe(e))}var xPe=SPe;function GPe(e,t){return e==null?void 0:e[t]}var kPe=GPe,DPe=xPe,NPe=kPe;function ZPe(e,t){var n=NPe(e,t);return DPe(n)?n:void 0}var vd=ZPe,HPe=vd,XPe=HPe(Object,"create"),yw=XPe,aL=yw;function LPe(){this.__data__=aL?aL(null):{},this.size=0}var MPe=LPe;function TPe(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var VPe=TPe,YPe=yw,IPe="__lodash_hash_undefined__",UPe=Object.prototype,OPe=UPe.hasOwnProperty;function JPe(e){var t=this.__data__;if(YPe){var n=t[e];return n===IPe?void 0:n}return OPe.call(t,e)?t[e]:void 0}var zPe=JPe,PPe=yw,jPe=Object.prototype,_Pe=jPe.hasOwnProperty;function $Pe(e){var t=this.__data__;return PPe?t[e]!==void 0:_Pe.call(t,e)}var qPe=$Pe,eje=yw,tje="__lodash_hash_undefined__";function nje(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=eje&&t===void 0?tje:t,this}var rje=nje,ije=MPe,aje=VPe,oje=zPe,lje=qPe,sje=rje;function q1(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t-1}var Wje=Qje,yje=Fw;function Fje(e,t){var n=this.__data__,r=yje(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}var Eje=Fje,Rje=dje,Sje=Bje,xje=vje,Gje=Wje,kje=Eje;function eg(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t-1&&e%1==0&&ei?0:i+t),n=n>i?i:n,n<0&&(n+=i),i=t>n?0:n-t>>>0,t>>>=0;for(var a=Array(i);++rl))return!1;var u=a.get(e),c=a.get(t);if(u&&c)return u==t&&c==e;var d=-1,g=!0,h=n&sqe?new iqe:void 0;for(a.set(e,t),a.set(t,e);++d-1&&e%1==0&&e<=oet}var Q8=set,uet=Gm,cet=Q8,det=wd,pet="[object Arguments]",get="[object Array]",het="[object Boolean]",fet="[object Date]",met="[object Error]",Aet="[object Function]",Cet="[object Map]",Bet="[object Number]",wet="[object Object]",bet="[object RegExp]",vet="[object Set]",Ket="[object String]",Qet="[object WeakMap]",Wet="[object ArrayBuffer]",yet="[object DataView]",Fet="[object Float32Array]",Eet="[object Float64Array]",Ret="[object Int8Array]",xet="[object Int16Array]",Get="[object Int32Array]",ket="[object Uint8Array]",Det="[object Uint8ClampedArray]",Net="[object Uint16Array]",Zet="[object Uint32Array]",ur={};ur[Fet]=ur[Eet]=ur[Ret]=ur[xet]=ur[Get]=ur[ket]=ur[Det]=ur[Net]=ur[Zet]=!0;ur[pet]=ur[get]=ur[Wet]=ur[het]=ur[yet]=ur[fet]=ur[met]=ur[Aet]=ur[Cet]=ur[Bet]=ur[wet]=ur[bet]=ur[vet]=ur[Ket]=ur[Qet]=!1;function Het(e){return det(e)&&cet(e.length)&&!!ur[uet(e)]}var Xet=Het;function Let(e){return function(t){return e(t)}}var W8=Let,h4={exports:{}};h4.exports;(function(e,t){var n=Y_,r=t&&!t.nodeType&&t,i=r&&!0&&e&&!e.nodeType&&e,a=i&&i.exports===r,o=a&&n.process,l=function(){try{var s=i&&i.require&&i.require("util").types;return s||o&&o.binding&&o.binding("util")}catch{}}();e.exports=l})(h4,h4.exports);var y8=h4.exports,Met=Xet,Tet=W8,AL=y8,CL=AL&&AL.isTypedArray,Vet=CL?Tet(CL):Met,F8=Vet,Yet=zqe,Iet=K8,Uet=Bs,Oet=xw,Jet=w8,zet=F8,Pet=Object.prototype,jet=Pet.hasOwnProperty;function _et(e,t){var n=Uet(e),r=!n&&Iet(e),i=!n&&!r&&Oet(e),a=!n&&!r&&!i&&zet(e),o=n||r||i||a,l=o?Yet(e.length,String):[],s=l.length;for(var u in e)(t||jet.call(e,u))&&!(o&&(u=="length"||i&&(u=="offset"||u=="parent")||a&&(u=="buffer"||u=="byteLength"||u=="byteOffset")||Jet(u,s)))&&l.push(u);return l}var a$=_et,$et=Object.prototype;function qet(e){var t=e&&e.constructor,n=typeof t=="function"&&t.prototype||$et;return e===n}var Gw=qet;function ett(e,t){return function(n){return e(t(n))}}var o$=ett,ttt=o$,ntt=ttt(Object.keys,Object),rtt=ntt,itt=Gw,att=rtt,ott=Object.prototype,ltt=ott.hasOwnProperty;function stt(e){if(!itt(e))return att(e);var t=[];for(var n in Object(e))ltt.call(e,n)&&n!="constructor"&&t.push(n);return t}var l$=stt,utt=U_,ctt=Q8;function dtt(e){return e!=null&&ctt(e.length)&&!utt(e)}var E8=dtt,ptt=a$,gtt=l$,htt=E8;function ftt(e){return htt(e)?ptt(e):gtt(e)}var kw=ftt,mtt=n$,Att=v8,Ctt=kw;function Btt(e){return mtt(e,Ctt,Att)}var s$=Btt,BL=s$,wtt=1,btt=Object.prototype,vtt=btt.hasOwnProperty;function Ktt(e,t,n,r,i,a){var o=n&wtt,l=BL(e),s=l.length,u=BL(t),c=u.length;if(s!=c&&!o)return!1;for(var d=s;d--;){var g=l[d];if(!(o?g in t:vtt.call(t,g)))return!1}var h=a.get(e),m=a.get(t);if(h&&m)return h==t&&m==e;var A=!0;a.set(e,t),a.set(t,e);for(var B=o;++d3&&arguments[3]!==void 0?arguments[3]:"whitelist";return(0,ilt.createTransform)(function(i,a){return t?d5(i,t,r):i},function(i,a){return n?d5(i,n,r):i},{whitelist:[e]})}function flt(e,t,n){return Zw(e,t,n,"whitelist")}function mlt(e,t,n){return Zw(e,t,n,"blacklist")}function IL(e,t){var n=e.path,r=e.filterFunction,i=r===void 0?function(){return!0}:r,a=(0,WC.default)(t,n,t);return a instanceof Array?a.filter(i):(0,ult.default)(a,i)}function d5(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"whitelist",r={};return typeof t=="string"&&(t=[t]),n==="whitelist"?t.forEach(function(i){if((typeof i>"u"?"undefined":TL(i))==="object"&&!(i instanceof Array)){var a=IL(i,e);(0,YL.default)(a)||(0,tW.default)(r,i.path,a)}else{var o=(0,WC.default)(e,i);typeof o<"u"&&(0,tW.default)(r,i,o)}}):n==="blacklist"?(r=(0,hlt.default)(e),t.forEach(function(i){if((typeof i>"u"?"undefined":TL(i))==="object"&&!(i instanceof Array)){var a=IL(i,e);(0,YL.default)(a)?r=a:a instanceof Array?(0,tW.default)(r,i.path,(0,WC.default)(r,i.path,r).filter(function(l){return!1})):(0,plt.default)(a,function(l,s){(0,VL.default)(r,i.path+"["+s+"]")})}else{var o=(0,WC.default)(e,i);typeof o<"u"&&(0,VL.default)(r,i)}})):r=e,r}$1.default=Zw;var Alt=Blt;function Uh(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Uh=function(n){return typeof n}:Uh=function(n){return n&&typeof Symbol=="function"&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},Uh(e)}function UL(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function OL(e){for(var t=1;t"u"?"undefined":yC(self))!=="object"||!(e in self))return!1;try{var t=self[e],n="redux-persist ".concat(e," test");t.setItem(n,"test"),t.getItem(n),t.removeItem(n)}catch{return!1}return!0}function Klt(e){var t="".concat(e,"Storage");return vlt(t)?self[t]:blt}S8.__esModule=!0;S8.default=ylt;var Qlt=Wlt(x8);function Wlt(e){return e&&e.__esModule?e:{default:e}}function ylt(e){var t=(0,Qlt.default)(e);return{getItem:function(r){return new Promise(function(i,a){i(t.getItem(r))})},setItem:function(r,i){return new Promise(function(a,o){a(t.setItem(r,i))})},removeItem:function(r){return new Promise(function(i,a){i(t.removeItem(r))})}}}var b$=void 0,Flt=Elt(S8);function Elt(e){return e&&e.__esModule?e:{default:e}}var Rlt=(0,Flt.default)("local");b$=Rlt;const Slt=_E({state:IBe,config:E3e,misc:eze,uiState:rfe,serverState:rze}),xlt=[rlt("state",["history","contextItems","sessionId","defaultModelTitle"])],Glt={key:"root",storage:b$,transforms:[...xlt],stateReconciler:Alt},klt=p8(Glt,Slt),v$=Ihe({reducer:klt,middleware:e=>e({serializableCheck:!1})}),Dlt=V_(v$);(async()=>iW.createRoot(document.getElementById("root")).render(W.jsx(ct.StrictMode,{children:W.jsx(jse,{store:v$,children:W.jsx(bV,{loading:null,persistor:Dlt,children:W.jsx($Je,{children:W.jsx(_Je,{})})})})})))(); diff --git a/extensions/intellij/src/main/resources/webview/index.html b/extensions/intellij/src/main/resources/webview/index.html index 5f2db045f..be67d62c9 100644 --- a/extensions/intellij/src/main/resources/webview/index.html +++ b/extensions/intellij/src/main/resources/webview/index.html @@ -12,7 +12,7 @@
diff --git a/extensions/intellij/src/main/resources/webview/jetbrains_index.html b/extensions/intellij/src/main/resources/webview/jetbrains_index.html index 590109a35..d0cc90128 100644 --- a/extensions/intellij/src/main/resources/webview/jetbrains_index.html +++ b/extensions/intellij/src/main/resources/webview/jetbrains_index.html @@ -19,7 +19,7 @@ diff --git a/extensions/intellij/src/test/kotlin/com/github/continuedev/continueintellijextension/MyPluginTest.kt b/extensions/intellij/src/test/kotlin/com/github/continuedev/continueintellijextension/MyPluginTest.kt index 0e3bf10bf..09eb8a95f 100644 --- a/extensions/intellij/src/test/kotlin/com/github/continuedev/continueintellijextension/MyPluginTest.kt +++ b/extensions/intellij/src/test/kotlin/com/github/continuedev/continueintellijextension/MyPluginTest.kt @@ -26,10 +26,6 @@ class MyPluginTest : BasePlatformTestCase() { } } - fun testRename() { - myFixture.testRename("foo.xml", "foo_after.xml", "a2") - } - fun testProjectService() { val projectService = project.service() diff --git a/extensions/vscode/.continueignore b/extensions/vscode/.continueignore index 18420af9d..7f9f9b9cd 100644 --- a/extensions/vscode/.continueignore +++ b/extensions/vscode/.continueignore @@ -1,3 +1,6 @@ media **/*.tmLanguage -textmate-syntaxes +models/**/* +builtin-themes/ +**/textmate-syntaxes/ +**/*.scm diff --git a/extensions/vscode/.continuerc.json b/extensions/vscode/.continuerc.json index 7fbb047a6..f7216dc96 100644 --- a/extensions/vscode/.continuerc.json +++ b/extensions/vscode/.continuerc.json @@ -1,9 +1,3 @@ { - "customCommands": [ - { - "name": "hello", - "prompt": "Write a comprehensive set of unit tests for the selected code. It should setup, run tests that check for correctness including important edge cases, and teardown. Ensure that the tests are complete and sophisticated. Give the tests just as chat output, don't edit any file.", - "description": "This is an example custom command. Use /config to edit it and create more" - } - ] -} + "customCommands": [] +} \ No newline at end of file diff --git a/extensions/vscode/.npmrc b/extensions/vscode/.npmrc new file mode 100644 index 000000000..aa026a602 --- /dev/null +++ b/extensions/vscode/.npmrc @@ -0,0 +1,3 @@ +# Used by prepackage.js to copy from node_modules into out/node_modules +public-hoist-pattern[]=@lancedb/* +public-hoist-pattern[]=@esbuild/* \ No newline at end of file diff --git a/extensions/vscode/.prompts/review.prompt b/extensions/vscode/.prompts/review.prompt new file mode 100644 index 000000000..85bbcad6e --- /dev/null +++ b/extensions/vscode/.prompts/review.prompt @@ -0,0 +1,28 @@ +temperature: 0.0 +--- +{{{ diff }}} + +Give me feedback on the above changes. For each file, you should output a markdown section including the following: +- If you found any problems, an h3 like "❌ " +- If you didn't find any problems, an h3 like "✅ " +- If you found any problems, add below a bullet point description of what you found, including a minimal code snippet explaining how to fix it +- If you didn't find any problems, you don't need to add anything else + +Here is an example. The example is surrounded in backticks, but your response should not be: + +``` +### ✅ + +### ❌ + + +``` + +You should look primarily for the following types of issues, and only mention other problems if they are highly pressing. + +- console.logs that have been left after debugging +- repeated code +- algorithmic errors that could fail under edge cases +- something that could be refactored + +Make sure to review ALL files that were changed, do not skip any. \ No newline at end of file diff --git a/extensions/vscode/.prompts/test.prompt b/extensions/vscode/.prompts/test.prompt new file mode 100644 index 000000000..369fe07dc --- /dev/null +++ b/extensions/vscode/.prompts/test.prompt @@ -0,0 +1,17 @@ +temperature: 0.5 +maxTokens: 4096 +--- + +You are an expert programmer + + +{{{ input }}} + +Write unit tests for the above selected code, following each of these instructions: +- Use `jest` +- Properly set up and tear down +- Include important edge cases +- The tests should be complete and sophisticated +- Give the tests just as chat output, don't edit any file +- Don't explain how to set up `jest` +- Write a single code block, making sure to label with the language being used (e.g. "```typscript") \ No newline at end of file diff --git a/extensions/vscode/.vscodeignore b/extensions/vscode/.vscodeignore index 9d59dbe5c..3505fedd4 100644 --- a/extensions/vscode/.vscodeignore +++ b/extensions/vscode/.vscodeignore @@ -24,4 +24,7 @@ scripts server/exe/** !out/node_modules/** -!node_modules/@vscode/ripgrep/bin/rg \ No newline at end of file +!node_modules/@vscode/ripgrep/bin/rg + +media/**/*.gif +!media/sidebar.gif diff --git a/extensions/vscode/CHANGELOG.md b/extensions/vscode/CHANGELOG.md index 4597028ab..85e4fb870 100644 --- a/extensions/vscode/CHANGELOG.md +++ b/extensions/vscode/CHANGELOG.md @@ -1,44 +1,69 @@ -# Changelog All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html), and is generated by [Changie](https://github.com/miniscruff/changie). +## 0.8.40 - 2024-07-02 -Pre-release Changes ### Added -* Support for Gemini 1.5 Pro + +- Support for Gemini 1.5 Pro +- Link to code in the sidebar when using codebase retrieval +- Smoother onboarding experience +- .prompt files, a way of saving and sharing slash commands +- Support for Claude 3.5 Sonnet, Deepseek Coder v2, and other new models +- Support for comments in config.json +- Specify multiple autocomplete models and switch between them +- Improved bracket matching strategy reduces noisy completions + +### Fixed + +- Numerous reliability upgrades to codebase indexing ## 0.8.24 - 2024-04-12 + ### Added -* Support for improved retrieval models (Voyage embeddings/reranking) -* New @code context provider -* Personal usage analytics + +- Support for improved retrieval models (Voyage embeddings/reranking) +- New @code context provider +- Personal usage analytics ## 0.8.15 - 2024-03-05 + ### Added -* Tab-autocomplete in beta + +- Tab-autocomplete in beta ## 0.8.14 - 2024-03-03 + ### Added -* Image support -* Full-text search index for retrieval -* Docs context provider -* CodeLlama-70b support + +- Image support +- Full-text search index for retrieval +- Docs context provider +- CodeLlama-70b support + ### Changed -* config.ts only runs in NodeJS, not browser + +- config.ts only runs in NodeJS, not browser + ### Fixed -* Fixed proxy setting in config.json + +- Fixed proxy setting in config.json ## v0.8.2 - 2024-01-23 + ### Added -* Add codellama and gemini to free trial, using new server -* Local codebase syncing and embeddings using LanceDB -* Improved VS Code theme matching + +- Add codellama and gemini to free trial, using new server +- Local codebase syncing and embeddings using LanceDB +- Improved VS Code theme matching + ### Changed -* Updates to packaging to download native modules for current platform (lancedb, sqlite, onnxruntime, tree-sitter wasms) -* Context providers now run from the extension side (in Node.js instead of browser javascript) + +- Updates to packaging to download native modules for current platform (lancedb, sqlite, onnxruntime, tree-sitter wasms) +- Context providers now run from the extension side (in Node.js instead of browser javascript) ## v0.8.1 - 2024-01-08 diff --git a/extensions/vscode/CONTRIBUTING.md b/extensions/vscode/CONTRIBUTING.md index ddeca6bcb..5cfbf3cb1 100644 --- a/extensions/vscode/CONTRIBUTING.md +++ b/extensions/vscode/CONTRIBUTING.md @@ -7,11 +7,11 @@ This is the Continue VS Code Extension. Its primary jobs are # How to run the extension -See [Environment Setup](../CONTRIBUTING.md#environment-setup) +See [Environment Setup](../../CONTRIBUTING.md#environment-setup) # How to run and debug tests -After following the setup in [Environment Setup](../CONTRIBUTING.md#environment-setup) you can run the `Extension (VSCode)` launch configuration in VS Code. +After following the setup in [Environment Setup](../../CONTRIBUTING.md#environment-setup) you can run the `Extension (VSCode)` launch configuration in VS Code. ## Notes diff --git a/extensions/vscode/README.md b/extensions/vscode/README.md index 7ec66bf3d..3c66e202f 100644 --- a/extensions/vscode/README.md +++ b/extensions/vscode/README.md @@ -9,39 +9,39 @@ -# ⏩ Features +
+ +## Easily understand code sections + +![understand](docs/static/img/understand.gif) -# 🔎 Ask about highlighted code +`cmd+L` (MacOS) / `ctrl+L` (Windows) -![Editing With Continue](media/readme.gif) +## Tab to autocomplete code suggestions -Highlight + select code sections and ask a question to get another perspective +![autocomplete](docs/static/img/autocomplete.gif) -- “how can I set up a Prisma schema that cascades deletes?” -- “where in the page should I be making this request to the backend?” -- “how can I communicate between these iframes?” +`tab` (MacOS) / `tab` (Windows) -# 🪄 Reference context inline +## Refactor functions where you are coding -![Reference context inline](media/image.gif) +![inline](docs/static/img/inline.gif) -- "@diff check my commit for mistakes" -- "how does @server.py stream responses?" -- "how do i fix this error in the @terminal?" +`cmd+I` (MacOS) / `ctrl+I` (Windows) -# ⚡️ Get completions directly in your editor +## Ask questions about your codebase -![Continue autocomplete](media/autocomplete.gif) +![codebase](docs/static/img/codebase.gif) -# ✏️ Edit in natural language +`@codebase` (MacOS) / `@codebase` (Windows) -Highlight + select a section of code and instruct Continue to refactor it +## Quickly use documentation as context -- “/edit migrate this digital ocean terraform file into one that works for GCP” -- “/edit change this plot into a bar chart in this dashboard component” -- “/edit rewrite this function to be async” +![docs](docs/static/img/docs.gif) -![Above line edit](media/above-line-edit.gif) +`@docs` (MacOS) / `@docs` (Windows) + +
## License diff --git a/extensions/vscode/config_schema.json b/extensions/vscode/config_schema.json index d94309807..cbbb173c3 100644 --- a/extensions/vscode/config_schema.json +++ b/extensions/vscode/config_schema.json @@ -1,1851 +1,2492 @@ { - "title": "config.json", - "$ref": "#/definitions/SerializedContinueConfig", - "definitions": { - "BaseCompletionOptions": { - "title": "BaseCompletionOptions", - "type": "object", - "properties": { - "stream": { - "title": "Stream", - "description": "Whether to stream the LLM response. Currently only respected by the 'anthropic' provider. Otherwise will always stream.", - "type": "boolean", - "default": true - }, - "temperature": { - "title": "Temperature", - "description": "The temperature of the completion.", - "type": "number" - }, - "topP": { - "title": "Top P", - "description": "The topP of the completion.", - "type": "number" - }, - "topK": { - "title": "Top K", - "description": "The topK of the completion.", - "type": "integer" - }, - "presencePenalty": { - "title": "Presence Penalty", - "description": "The presence penalty Aof the completion.", - "type": "number" - }, - "frequencePenalty": { - "title": "Frequency Penalty", - "description": "The frequency penalty of the completion.", - "type": "number" - }, - "mirostat": { - "title": "Mirostat", - "description": "Enable Mirostat sampling, controlling perplexity during text generation (default: 0, 0 = disabled, 1 = Mirostat, 2 = Mirostat 2.0). Only available for Ollama, LM Studio, and llama.cpp providers", - "type": "number" - }, - "stop": { - "title": "Stop", - "description": "The stop tokens of the completion.", - "type": "array", - "items": { - "type": "string" - } - }, - "maxTokens": { - "title": "Max Tokens", - "description": "The maximum number of tokens to generate.", - "default": 600, - "type": "integer" - }, - "numThreads": { - "title": "Number of threads", - "description": "The number of threads used in the generation process. Only available for Ollama (this is the num_thread parameter)", - "type": "integer" - }, - "keepAlive": { - "title": "Ollama keep_alive", - "description": "The number of seconds after no requests are made to unload the model from memory. Defaults to 60*30 = 30min", - "type": "integer" - } - } - }, - "RequestOptions": { - "title": "RequestOptions", - "type": "object", - "properties": { - "timeout": { - "title": "Timeout", - "description": "Set the timeout for each request to the LLM. If you are running a local LLM that takes a while to respond, you might want to set this to avoid timeouts.", - "default": 7200, - "type": "integer" - }, - "verifySsl": { - "title": "Verify Ssl", - "description": "Whether to verify SSL certificates for requests.", - "type": "boolean" - }, - "caBundlePath": { - "title": "Ca Bundle Path", - "description": "Path to a custom CA bundle to use when making the HTTP request", - "anyOf": [ - { - "type": "string" - }, - { - "type": "array", - "items": { - "type": "string" - } - } - ] - }, - "proxy": { - "title": "Proxy", - "description": "Proxy URL to use when making the HTTP request", - "type": "string" - }, - "headers": { - "title": "Headers", - "description": "Headers to use when making the HTTP request", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "extraBodyProperties": { - "title": "Extra Body Properties", - "description": "This object will be merged with the body when making the HTTP requests", - "type": "object" - } - } - }, - "ModelDescription": { - "title": "ModelDescription", - "type": "object", - "properties": { - "title": { - "title": "Title", - "description": "The title you wish to give your model.", - "type": "string" - }, - "provider": { - "title": "Provider", - "description": "The provider of the model. This is used to determine the type of model, and how to interact with it.", - "enum": [ - "openai", - "free-trial", - "anthropic", - "bedrock", - "together", - "ollama", - "huggingface-tgi", - "huggingface-inference-api", - "llama.cpp", - "replicate", - "google-palm", - "lmstudio", - "llamafile", - "mistral", - "deepinfra", - "flowise", - "groq" - ], - "markdownEnumDescriptions": [ - "### OpenAI\nUse gpt-4, gpt-3.5-turbo, or any other OpenAI model. See [here](https://openai.com/product#made-for-developers) to obtain an API key.\n\n> [Reference](https://continue.dev/docs/reference/Model%20Providers/openai)", - "### Free Trial\nNew users can try out Continue for free using a proxy server that securely makes calls to OpenAI using our API key. If you are ready to use your own API key or have used all 250 free uses, you can enter your API key in config.py where it says `apiKey=\"\"` or select another model provider.\n> [Reference](https://continue.dev/docs/reference/Model%20Providers/freetrial)", - "### Anthropic\nTo get started with Anthropic models, you first need to sign up for the open beta [here](https://claude.ai/login) to obtain an API key.\n> [Reference](https://continue.dev/docs/reference/Model%20Providers/anthropicllm)", - "### Bedrock\nTo get started with Bedrock you need to sign up on AWS [here](https://aws.amazon.com/bedrock/claude/)", - "### Together\nTogether is a hosted service that provides extremely fast streaming of open-source language models. To get started with Together:\n1. Obtain an API key from [here](https://together.ai)\n2. Paste below\n3. Select a model preset\n> [Reference](https://continue.dev/docs/reference/Model%20Providers/togetherllm)", - "### Ollama\nTo get started with Ollama, follow these steps:\n1. Download from [ollama.ai](https://ollama.ai/) and open the application\n2. Open a terminal and run `ollama run `. Example model names are `codellama:7b-instruct` or `llama2:7b-text`. You can find the full list [here](https://ollama.ai/library).\n3. Make sure that the model name used in step 2 is the same as the one in config.py (e.g. `model=\"codellama:7b-instruct\"`)\n4. Once the model has finished downloading, you can start asking questions through Continue.\n> [Reference](https://continue.dev/docs/reference/Model%20Providers/ollama)", - "### Huggingface TGI\n\n> [Reference](https://continue.dev/docs/reference/Model%20Providers/huggingfacetgi)", - "### Huggingface Inference API\n\n> [Reference](https://continue.dev/docs/reference/Model%20Providers/huggingfaceinferenceapi)", - "### Llama.cpp\nllama.cpp comes with a [built-in server](https://github.com/ggerganov/llama.cpp/tree/master/examples/server#llamacppexampleserver) that can be run from source. To do this:\n\n1. Clone the repository with `git clone https://github.com/ggerganov/llama.cpp`.\n2. `cd llama.cpp`\n3. Run `make` to build the server.\n4. Download the model you'd like to use and place it in the `llama.cpp/models` directory (the best place to find models is [The Bloke on HuggingFace](https://huggingface.co/TheBloke))\n5. Run the llama.cpp server with the command below (replacing with the model you downloaded):\n\n```shell\n.\\server.exe -c 4096 --host 0.0.0.0 -t 16 --mlock -m models/codellama-7b-instruct.Q8_0.gguf\n```\n\nAfter it's up and running, you can start using Continue.\n> [Reference](https://continue.dev/docs/reference/Model%20Providers/llamacpp)", - "### Replicate\nReplicate is a hosted service that makes it easy to run ML models. To get started with Replicate:\n1. Obtain an API key from [here](https://replicate.com)\n2. Paste below\n3. Select a model preset\n> [Reference](https://continue.dev/docs/reference/Model%20Providers/replicatellm)", - "### Google PALM\nTo get started with Google Makersuite, obtain your API key from [here](https://makersuite.google.com) and paste it below.\n> [Reference](https://continue.dev/docs/reference/Model%20Providers/googlepalmapi)", - "### LMStudio\nLMStudio provides a professional and well-designed GUI for exploring, configuring, and serving LLMs. It is available on both Mac and Windows. To get started:\n1. Download from [lmstudio.ai](https://lmstudio.ai/) and open the application\n2. Search for and download the desired model from the home screen of LMStudio.\n3. In the left-bar, click the '<->' icon to open the Local Inference Server and press 'Start Server'.\n4. Once your model is loaded and the server has started, you can begin using Continue.\n> [Reference](https://continue.dev/docs/reference/Model%20Providers/lmstudio)", - "### Llamafile\nTo get started with llamafiles, find and download a binary on their [GitHub repo](https://github.com/Mozilla-Ocho/llamafile#binary-instructions). Then run it with the following command:\n\n```shell\nchmod +x ./llamafile\n./llamafile\n```\n> [Reference](https://continue.dev/docs/reference/Model%20Providers/llamafile)", - "### Mistral API\n\nTo get access to the Mistral API, obtain your API key from the [Mistral platform](https://docs.mistral.ai/)", - "### DeepInfra\n\n> [Reference](https://continue.dev/docs/reference/Model%20Providers/deepinfra)" - ], - "type": "string" - }, - "model": { - "title": "Model", - "description": "The name of the model. Used to autodetect prompt template.", - "type": "string" - }, - "apiKey": { - "title": "Api Key", - "description": "OpenAI, Anthropic, Together, or other API key", - "type": "string" - }, - "apiBase": { - "title": "Api Base", - "description": "The base URL of the LLM API.", - "type": "string" - }, - "contextLength": { - "title": "Context Length", - "description": "The maximum context length of the LLM in tokens, as counted by countTokens.", - "default": 2048, - "type": "integer" - }, - "template": { - "title": "Template", - "description": "The chat template used to format messages. This is auto-detected for most models, but can be overridden here. Choose none if you are using vLLM or another server that automatically handles prompting.", - "enum": [ - "llama2", - "alpaca", - "zephyr", - "phi2", - "phind", - "anthropic", - "chatml", - "none", - "deepseek", - "openchat", - "xwin-coder", - "neural-chat", - "codellama-70b", - "llava", - "gemma" - ], - "type": "string" - }, - "promptTemplates": { - "title": "Prompt Templates", - "markdownDescription": "A mapping of prompt template name ('edit' is currently the only one used in Continue) to a string giving the prompt template. See [here](https://continue.dev/docs/model-setup/configuration#customizing-the-edit-prompt) for an example.", - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "completionOptions": { - "title": "Completion Options", - "description": "Options for the completion endpoint. Read more about the completion options in the documentation.", - "default": { - "temperature": null, - "topP": null, - "topK": null, - "presencePenalty": null, - "frequencyPenalty": null, - "stop": null, - "maxTokens": 600 - }, - "allOf": [ - { - "$ref": "#/definitions/BaseCompletionOptions" - } - ] - }, - "systemMessage": { - "title": "System Message", - "description": "A system message that will always be followed by the LLM", - "type": "string" - }, - "requestOptions": { - "title": "Request Options", - "description": "Options for the HTTP request to the LLM.", - "default": { - "timeout": 7200, - "verifySsl": null, - "caBundlePath": null, - "proxy": null, - "headers": null, - "extraBodyProperties": null - }, - "allOf": [ - { - "$ref": "#/definitions/RequestOptions" - } - ] - }, - "apiType": { - "title": "Api Type", - "markdownDescription": "OpenAI API type, either `openai` or `azure`", - "enum": ["openai", "azure"] - }, - "apiVersion": { - "title": "Api Version", - "description": "Azure OpenAI API version (e.g. 2023-07-01-preview)", - "type": "string" - }, - "engine": { - "title": "Engine", - "description": "Azure OpenAI engine", - "type": "string" - } - }, - "required": ["title", "provider", "model"], - "allOf": [ - { - "if": { - "properties": { - "provider": { - "type": "str" - } - }, - "not": { - "required": ["provider"] - } - }, - "then": { - "properties": { - "model": { - "description": "Choose a provider first, then model options will be shown here." - } - } - } - }, - { - "if": { - "properties": { - "provider": { - "enum": [ - "openai", - "anthropic", - "google-palm", - "huggingface-inference-api", - "replicate", - "together" - ] - } - }, - "required": ["provider"] - }, - "then": { - "required": ["apiKey"] - } - }, - { - "if": { - "properties": { - "provider": { - "enum": ["huggingface-tgi", "huggingface-inference-api"] - } - } - }, - "then": { - "required": ["apiBase"] - }, - "required": ["provider"] - }, - { - "if": { - "properties": { - "provider": { - "enum": ["openai"] - } - }, - "required": ["provider"] - }, - "then": { + "title": "config.json", + "$ref": "#/definitions/SerializedContinueConfig", + "definitions": { + "BaseCompletionOptions": { + "title": "BaseCompletionOptions", + "type": "object", "properties": { - "engine": { - "type": "string" - }, - "apiType": { - "type": "string" - }, - "apiVersion": { - "type": "string" - } + "stream": { + "title": "Stream", + "description": "Whether to stream the LLM response. Currently only respected by the 'anthropic' provider. Otherwise will always stream.", + "type": "boolean", + "default": true + }, + "temperature": { + "title": "Temperature", + "description": "The temperature of the completion.", + "type": "number" + }, + "topP": { + "title": "Top P", + "description": "The topP of the completion.", + "type": "number" + }, + "topK": { + "title": "Top K", + "description": "The topK of the completion.", + "type": "integer" + }, + "presencePenalty": { + "title": "Presence Penalty", + "description": "The presence penalty Aof the completion.", + "type": "number" + }, + "frequencePenalty": { + "title": "Frequency Penalty", + "description": "The frequency penalty of the completion.", + "type": "number" + }, + "mirostat": { + "title": "Mirostat", + "description": "Enable Mirostat sampling, controlling perplexity during text generation (default: 0, 0 = disabled, 1 = Mirostat, 2 = Mirostat 2.0). Only available for Ollama, LM Studio, and llama.cpp providers", + "type": "number" + }, + "stop": { + "title": "Stop", + "description": "The stop tokens of the completion.", + "type": "array", + "items": { + "type": "string" + } + }, + "maxTokens": { + "title": "Max Tokens", + "description": "The maximum number of tokens to generate.", + "default": 600, + "type": "integer" + }, + "numThreads": { + "title": "Number of threads", + "description": "The number of threads used in the generation process. Only available for Ollama (this is the num_thread parameter)", + "type": "integer" + }, + "keepAlive": { + "title": "Ollama keep_alive", + "description": "The number of seconds after no requests are made to unload the model from memory. Defaults to 60*30 = 30min", + "type": "integer" + } } - } }, - { - "if": { - "properties": { - "provider": { - "enum": ["openai"] - } - }, - "required": ["provider"] - }, - "then": { + "ClientCertificateOptions": { + "title": "ClientCertificateOptions", + "type": "object", "properties": { - "model": { - "anyOf": [ - { - "enum": [ - "gpt-3.5-turbo", - "gpt-3.5-turbo-16k", - "gpt-4", - "gpt-3.5-turbo-0613", - "gpt-4-32k", - "gpt-4-0125-preview", - "gpt-4-turbo-preview", - "AUTODETECT" - ] - }, - { + "cert": { + "title": "Cert Path", + "description": "Path to the client certificate file", "type": "string" - } - ] - } - } - } - }, - { - "if": { - "properties": { - "provider": { - "enum": ["replicate"] - } - }, - "required": ["provider"] - }, - "then": { - "properties": { - "model": { - "anyOf": [ - { - "enum": [ - "codellama-7b", - "codellama-13b", - "codellama-34b", - "llama2-7b", - "llama2-13b" - ] - }, - { + }, + "key": { + "title": "Key Path", + "description": "Path to the client certificate key file", + "type": "string" + }, + "passphrase": { + "title": "Passphrase", + "description": "Passphrase for the client certificate key file", "type": "string" - } - ] - }, - "markdownDescription": "Select a pre-defined option, or find an exact model ID from Replicate [here](https://replicate.com/collections/streaming-language-models)." - } - } - }, - { - "if": { - "properties": { - "provider": { - "enum": ["free-trial"] - } - }, - "required": ["provider"] - }, - "then": { - "properties": { - "model": { - "enum": [ - "gpt-3.5-turbo", - "gpt-4", - "phind-codellama-34b", - "gemini-pro", - "gpt-4-vision-preview", - "codellama-70b", - "mistral-8x7b", - "claude-3-opus-20240229", - "claude-3-sonnet-20240229", - "claude-3-haiku-20240307", - "starcoder-7b", - "AUTODETECT" - ] - } - } - } - }, - { - "if": { - "properties": { - "provider": { - "enum": ["openai"] - }, - "apiType": { - "not": { - "const": "azure" } - } }, - "required": ["provider"] - }, - "then": { + "required": [ + "cert", + "key" + ] + }, + "RequestOptions": { + "title": "RequestOptions", + "type": "object", "properties": { - "model": { - "anyOf": [ - { - "enum": [ - "gpt-3.5-turbo", - "gpt-3.5-turbo-16k", - "gpt-4", - "gpt-3.5-turbo-0613", - "gpt-4-32k", - "gpt-4-turbo-preview", - "gpt-4-vision-preview", - "mistral-7b", - "mistral-8x7b", - "llama2-7b", - "llama2-13b", - "codellama-7b", - "codellama-13b", - "codellama-34b", - "codellama-70b", - "phind-codellama-34b", - "wizardcoder-7b", - "wizardcoder-13b", - "wizardcoder-34b", - "zephyr-7b", - "codeup-13b", - "deepseek-7b", - "deepseek-33b", - "neural-chat-7b", - "deepseek-1b", - "stable-code-3b", - "starcoder-1b", - "starcoder-3b", - "starcoder2-3b", - "mistral-tiny", - "mistral-small", - "mistral-medium", - "AUTODETECT" + "timeout": { + "title": "Timeout", + "description": "Set the timeout for each request to the LLM. If you are running a local LLM that takes a while to respond, you might want to set this to avoid timeouts.", + "default": 7200, + "type": "integer" + }, + "verifySsl": { + "title": "Verify Ssl", + "description": "Whether to verify SSL certificates for requests.", + "type": "boolean" + }, + "caBundlePath": { + "title": "Ca Bundle Path", + "description": "Path to a custom CA bundle to use when making the HTTP request", + "anyOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } ] - }, - { + }, + "proxy": { + "title": "Proxy", + "description": "Proxy URL to use when making the HTTP request", "type": "string" - } - ] - } + }, + "headers": { + "title": "Headers", + "description": "Headers to use when making the HTTP request", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "extraBodyProperties": { + "title": "Extra Body Properties", + "description": "This object will be merged with the body when making the HTTP requests", + "type": "object" + }, + "noProxy": { + "title": "No Proxy", + "description": "A list of hostnames for which Continue should not use the proxy specified in requestOptions.proxy", + "type": "array", + "items": { + "type": "string" + } + }, + "clientCertificate": { + "title": "Client Certificate", + "description": "Client certificate to use when making the HTTP request", + "$ref": "#/definitions/ClientCertificateOptions" + } } - } }, - { - "if": { - "properties": { - "provider": { - "enum": ["anthropic"] - } - }, - "required": ["provider"] - }, - "then": { + "ModelDescription": { + "title": "ModelDescription", + "type": "object", "properties": { - "model": { - "anyOf": [ - { - "enum": [ - "claude-2", - "claude-instant-1", - "claude-3-opus-20240229", - "claude-3-sonnet-20240229", - "claude-3-haiku-20240307", - "claude-2.1" - ] - }, - { + "title": { + "title": "Title", + "description": "The title you wish to give your model.", "type": "string" - } - ] - } - } - } - }, - { - "if": { - "properties": { - "provider": { - "enum": ["bedrock"] - } - }, - "required": ["provider"] - }, - "then": { - "properties": { - "model": { - "anyOf": [ - { + }, + "provider": { + "title": "Provider", + "description": "The provider of the model. This is used to determine the type of model, and how to interact with it.", "enum": [ - "claude-3-sonnet-20240229", - "claude-3-haiku-20240307", - "claude-2" - ] - }, - { + "openai", + "free-trial", + "anthropic", + "cohere", + "bedrock", + "together", + "ollama", + "huggingface-tgi", + "huggingface-inference-api", + "llama.cpp", + "replicate", + "gemini", + "lmstudio", + "llamafile", + "mistral", + "deepinfra", + "groq", + "fireworks", + "cloudflare", + "deepseek", + "azure", + "msty" + ], + "markdownEnumDescriptions": [ + "### OpenAI\nUse gpt-4, gpt-3.5-turbo, or any other OpenAI model. See [here](https://openai.com/product#made-for-developers) to obtain an API key.\n\n> [Reference](https://docs.continue.dev/reference/Model%20Providers/openai)", + "### Free Trial\nNew users can try out Continue for free using a proxy server that securely makes calls to OpenAI using our API key. If you are ready to use your own API key or have used all 250 free uses, you can enter your API key in config.json where it says `apiKey=\"\"` or select another model provider.\n> [Reference](https://docs.continue.dev/reference/Model%20Providers/freetrial)", + "### Anthropic\nTo get started with Anthropic models, you first need to sign up for the open beta [here](https://claude.ai/login) to obtain an API key.\n> [Reference](https://docs.continue.dev/reference/Model%20Providers/anthropicllm)", + "### Cohere\nTo use Cohere, visit the [Cohere dashboard](https://dashboard.cohere.com/api-keys) to create an API key.\n\n> [Reference](https://docs.continue.dev/reference/Model%20Providers/cohere)", + "### Bedrock\nTo get started with Bedrock you need to sign up on AWS [here](https://aws.amazon.com/bedrock/claude/)", + "### Together\nTogether is a hosted service that provides extremely fast streaming of open-source language models. To get started with Together:\n1. Obtain an API key from [here](https://together.ai)\n2. Paste below\n3. Select a model preset\n> [Reference](https://docs.continue.dev/reference/Model%20Providers/togetherllm)", + "### Ollama\nTo get started with Ollama, follow these steps:\n1. Download from [ollama.ai](https://ollama.ai/) and open the application\n2. Open a terminal and run `ollama run `. Example model names are `codellama:7b-instruct` or `llama2:7b-text`. You can find the full list [here](https://ollama.ai/library).\n3. Make sure that the model name used in step 2 is the same as the one in config.json (e.g. `model=\"codellama:7b-instruct\"`)\n4. Once the model has finished downloading, you can start asking questions through Continue.\n> [Reference](https://docs.continue.dev/reference/Model%20Providers/ollama)", + "### Huggingface TGI\n\n> [Reference](https://docs.continue.dev/reference/Model%20Providers/huggingfacetgi)", + "### Huggingface Inference API\n\n> [Reference](https://docs.continue.dev/reference/Model%20Providers/huggingfaceinferenceapi)", + "### Llama.cpp\nllama.cpp comes with a [built-in server](https://github.com/ggerganov/llama.cpp/tree/master/examples/server#llamacppexampleserver) that can be run from source. To do this:\n\n1. Clone the repository with `git clone https://github.com/ggerganov/llama.cpp`.\n2. `cd llama.cpp`\n3. Run `make` to build the server.\n4. Download the model you'd like to use and place it in the `llama.cpp/models` directory (the best place to find models is [The Bloke on HuggingFace](https://huggingface.co/TheBloke))\n5. Run the llama.cpp server with the command below (replacing with the model you downloaded):\n\n```shell\n.\\server.exe -c 4096 --host 0.0.0.0 -t 16 --mlock -m models/codellama-7b-instruct.Q8_0.gguf\n```\n\nAfter it's up and running, you can start using Continue.\n> [Reference](https://docs.continue.dev/reference/Model%20Providers/llamacpp)", + "### Replicate\nReplicate is a hosted service that makes it easy to run ML models. To get started with Replicate:\n1. Obtain an API key from [here](https://replicate.com)\n2. Paste below\n3. Select a model preset\n> [Reference](https://docs.continue.dev/reference/Model%20Providers/replicatellm)", + "### Gemini API\nTo get started with Google Makersuite, obtain your API key from [here](https://makersuite.google.com) and paste it below.\n> [Reference](https://docs.continue.dev/reference/Model%20Providers/geminiapi)", + "### LMStudio\nLMStudio provides a professional and well-designed GUI for exploring, configuring, and serving LLMs. It is available on both Mac and Windows. To get started:\n1. Download from [lmstudio.ai](https://lmstudio.ai/) and open the application\n2. Search for and download the desired model from the home screen of LMStudio.\n3. In the left-bar, click the '<->' icon to open the Local Inference Server and press 'Start Server'.\n4. Once your model is loaded and the server has started, you can begin using Continue.\n> [Reference](https://docs.continue.dev/reference/Model%20Providers/lmstudio)", + "### Llamafile\nTo get started with llamafiles, find and download a binary on their [GitHub repo](https://github.com/Mozilla-Ocho/llamafile#binary-instructions). Then run it with the following command:\n\n```shell\nchmod +x ./llamafile\n./llamafile\n```\n> [Reference](https://docs.continue.dev/reference/Model%20Providers/llamafile)", + "### Mistral API\n\nTo get access to the Mistral API, obtain your API key from the [Mistral platform](https://docs.mistral.ai/)", + "### DeepInfra\n\n> [Reference](https://docs.continue.dev/reference/Model%20Providers/deepinfra)", + "### Groq\nGroq provides extremely fast inference of open-source language models. To get started, obtain an API key from [their console](https://console.groq.com/keys).", + "### Fireworks\nFireworks is a fast inference engine for open-source language models. To get started, obtain an API key from [their console](https://fireworks.ai/api-keys).", + "### Cloudflare Workers AI\n\n[Reference](https://developers.cloudflare.com/workers-ai/)", + "### Deepseek\n Deepseek's API provides the best pricing for their state-of-the-art Deepseek Coder models. To get started, obtain an API key from [their console](https://platform.deepseek.com/api_keys)", + "### Azure OpenAI\n Azure OpenAI lets you securely run OpenAI's models on Azure. To get started, follow the steps [here](https://docs.continue.dev/reference/Model%20Providers/azure)", + "### Msty\nMsty is the simplest way to get started with online or local LLMs on all desktop platforms - Windows, Mac, and Linux. No fussing around, one-click and you are up and running. To get started, follow these steps:\n1. Download from [Msty.app](https://msty.app/), open the application, and click 'Setup Local AI'.\n2. Go to the Local AI Module page and download a model of your choice.\n3. Once the model has finished downloading, you can start asking questions through Continue.\n> [Reference](https://continue.dev/docs/reference/Model%20Providers/Msty)" + ], "type": "string" - } - ] - } - } - } - }, - { - "if": { - "properties": { - "provider": { - "enum": ["google-palm"] - } - }, - "required": ["provider"] - }, - "then": { - "properties": { - "model": { - "enum": [ - "chat-bison-001", - "gemini-pro", - "gemini-1.5-pro-latest" - ] - } - } - } - }, - { - "if": { - "properties": { - "provider": { - "enum": ["together"] - } - }, - "required": ["provider"] - }, - "then": { - "properties": { - "model": { - "anyOf": [ - { - "enum": [ - "mistral-7b", - "mistral-8x7b", - "llama2-7b", - "llama2-13b", - "codellama-7b", - "codellama-13b", - "codellama-34b", - "codellama-70b", - "phind-codellama-34b" - ] - }, - { + }, + "model": { + "title": "Model", + "description": "The name of the model. Used to autodetect prompt template.", "type": "string" - } - ], - "markdownDescription": "Select a pre-defined option, or find an exact model string from Together AI [here](https://docs.together.ai/docs/inference-models)." - } - } - } - }, - { - "if": { - "properties": { - "provider": { - "enum": ["deepinfra"] - } - }, - "required": ["provider"] - }, - "then": { - "properties": { - "model": { - "markdownDescription": "Find the model name you want to use from DeepInfra [here](https://deepinfra.com/models?type=text-generation)." - } - } - } - }, - { - "if": { - "properties": { - "provider": { - "enum": [ - "huggingface-tgi", - "huggingface-inference-api", - "llama.cpp", - "text-gen-webui", - "llamafile" - ] - } - }, - "required": ["provider"] - }, - "then": { - "properties": { - "model": { - "anyOf": [ - { + }, + "apiKey": { + "title": "Api Key", + "description": "OpenAI, Anthropic, Cohere, Together, or other API key", + "type": "string" + }, + "apiBase": { + "title": "Api Base", + "description": "The base URL of the LLM API.", + "type": "string" + }, + "contextLength": { + "title": "Context Length", + "description": "The maximum context length of the LLM in tokens, as counted by countTokens.", + "default": 2048, + "type": "integer" + }, + "template": { + "title": "Template", + "description": "The chat template used to format messages. This is auto-detected for most models, but can be overridden here. Choose none if you are using vLLM or another server that automatically handles prompting.", "enum": [ - "mistral-7b", - "mistral-8x7b", - "llama2-7b", - "llama2-13b", - "codellama-7b", - "codellama-13b", - "codellama-34b", - "codellama-70b", - "phind-codellama-34b", - "wizardcoder-7b", - "wizardcoder-13b", - "wizardcoder-34b", - "zephyr-7b", - "codeup-13b", - "deepseek-7b", - "deepseek-33b", - "neural-chat-7b", - "deepseek-1b", - "stable-code-3b", - "starcoder-1b", - "starcoder-3b", - "starcoder2-3b" + "llama2", + "alpaca", + "zephyr", + "phi2", + "phind", + "anthropic", + "chatml", + "none", + "deepseek", + "openchat", + "xwin-coder", + "neural-chat", + "codellama-70b", + "llava", + "gemma", + "llama3" + ], + "type": "string" + }, + "promptTemplates": { + "title": "Prompt Templates", + "markdownDescription": "A mapping of prompt template name ('edit' is currently the only one used in Continue) to a string giving the prompt template. See [here](https://docs.continue.dev/model-setup/configuration#customizing-the-edit-prompt) for an example.", + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "completionOptions": { + "title": "Completion Options", + "description": "Options for the completion endpoint. Read more about the completion options in the documentation.", + "default": { + "temperature": null, + "topP": null, + "topK": null, + "presencePenalty": null, + "frequencyPenalty": null, + "stop": null, + "maxTokens": 600 + }, + "allOf": [ + { + "$ref": "#/definitions/BaseCompletionOptions" + } ] - }, - { + }, + "systemMessage": { + "title": "System Message", + "description": "A system message that will always be followed by the LLM", "type": "string" - } - ] - } - } - } - }, - { - "if": { - "properties": { - "provider": { - "enum": ["ollama"] - } - }, - "required": ["provider"] - }, - "then": { - "properties": { - "model": { - "anyOf": [ - { + }, + "requestOptions": { + "title": "Request Options", + "description": "Options for the HTTP request to the LLM.", + "default": { + "timeout": 7200, + "verifySsl": null, + "caBundlePath": null, + "proxy": null, + "headers": null, + "extraBodyProperties": null + }, + "allOf": [ + { + "$ref": "#/definitions/RequestOptions" + } + ] + }, + "apiType": { + "title": "Api Type", + "markdownDescription": "OpenAI API type, either `openai` or `azure`", "enum": [ - "mistral-7b", - "llama2-7b", - "llama2-13b", - "codellama-7b", - "codellama-13b", - "codellama-34b", - "codellama-70b", - "phi-2", - "phind-codellama-34b", - "wizardcoder-7b", - "wizardcoder-13b", - "wizardcoder-34b", - "zephyr-7b", - "codeup-13b", - "deepseek-7b", - "deepseek-33b", - "neural-chat-7b", - "deepseek-1b", - "stable-code-3b", - "starcoder-1b", - "starcoder-3b", - "starcoder2-3b", - "AUTODETECT" + "openai", + "azure" ] - }, - { + }, + "apiVersion": { + "title": "Api Version", + "description": "Azure OpenAI API version (e.g. 2023-07-01-preview)", "type": "string" - } - ], - "markdownDescription": "Select a pre-defined option, or find the exact model tag for an Ollama model [here](https://ollama.ai/library)." - } - } - } - }, - { - "if": { - "properties": { - "provider": { - "enum": ["mistral"] - } - }, - "required": ["provider"] - }, - "then": { - "properties": { - "model": { - "enum": ["mistral-tiny", "mistral-small", "mistral-medium"] - } - } - } - }, - { - "if": { - "properties": { - "provider": { - "enum": ["groq"] - } - }, - "required": ["provider"] - }, - "then": { - "properties": { - "model": { - "enum": ["llama2-70b", "mistral-8x7b", "gemma"] - } - } - } - }, - { - "if": { - "properties": { - "apiType": { - "const": "azure" - } - }, - "required": ["apiType"] - }, - "then": { - "required": ["engine", "apiVersion", "apiBase"] - } - }, - { - "if": { - "properties": { - "provider": { - "enum": ["openai"] - } - }, - "required": ["provider"] - }, - "then": { - "properties": { - "useLegacyCompletionsEndpoint": { - "type": "boolean" - } - } - } - }, - { - "if": { - "properties": { - "provider": { - "const": "llamafile" - } - }, - "required": ["provider"] - }, - "then": { - "properties": { - "llamafileCommand": { - "type": "string" - } - } - } - }, - { - "if": { - "properties": { - "provider": { - "enum": ["text-gen-webui"] - } - }, - "required": ["provider"] - }, - "then": { - "properties": { - "streamingUrl": { - "type": "string" - } - } - } - }, - { - "if": { - "properties": { - "provider": { - "enum": ["flowise"] - } + }, + "engine": { + "title": "Engine", + "description": "Azure OpenAI engine", + "type": "string" + } }, - "required": ["provider"] - }, - "then": { - "properties": { - "timeout": { - "title": "Timeout", - "description": "Set the timeout for each request to Flowise. If you are running a local version of Flowise it might takes a while to respond, you might want to set this to avoid timeouts.", - "default": 5000, - "type": "integer" - }, - "additionalHeaders": { - "description": "A list of additional headers", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "title": "Key", - "description": "Header key", - "type": "string" + "required": [ + "title", + "provider", + "model" + ], + "allOf": [ + { + "if": { + "properties": { + "provider": { + "type": "str" + } + }, + "not": { + "required": [ + "provider" + ] + } }, - "value": { - "title": "Value", - "description": "Header value", - "type": "string" + "then": { + "properties": { + "model": { + "description": "Choose a provider first, then model options will be shown here." + } + } } - }, - "required": ["key", "value"] - } - }, - "additionalFlowiseConfiguration": { - "description": "A list of additional properties to be sent along `overrideConfig`", - "type": "array", - "items": { - "type": "object", - "properties": { - "key": { - "title": "Key", - "description": "Configuration Property key", - "type": "string" + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "openai", + "anthropic", + "cohere", + "gemini", + "huggingface-inference-api", + "replicate", + "together", + "cloudflare" + ] + } + }, + "required": [ + "provider" + ] }, - "value": { - "title": "Value", - "description": "Configuration Property value" + "then": { + "required": [ + "apiKey" + ] } - }, - "required": ["key", "value"] - } - }, - "model": { - "anyOf": [ - { - "enum": [ - "gpt-3.5-turbo", - "gpt-3.5-turbo-16k", - "gpt-4", - "gpt-3.5-turbo-0613", - "gpt-4-32k", - "gpt-4-turbo-preview", - "gpt-4-vision-preview", - "mistral-7b", - "mistral-8x7b", - "llama2-7b", - "llama2-13b", - "codellama-7b", - "codellama-13b", - "codellama-34b", - "codellama-70b", - "phind-codellama-34b", - "wizardcoder-7b", - "wizardcoder-13b", - "wizardcoder-34b", - "zephyr-7b", - "codeup-13b", - "deepseek-7b", - "deepseek-33b", - "claude-2", - "claude-instant-1", - "claude-3-opus-20240229", - "claude-3-sonnet-20240229", - "claude-3-haiku-20240307", - "claude-2.1", - "chat-bison-001", - "gemini-pro", - "gemini-1.5-pro-latest", - "mistral-tiny", - "mistral-small", - "mistral-medium", - "deepseek-1b", - "stable-code-3b", - "starcoder-1b", - "starcoder-3b", - "starcoder2-3b" + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "huggingface-tgi", + "huggingface-inference-api" + ] + } + } + }, + "then": { + "required": [ + "apiBase" + ] + }, + "required": [ + "provider" ] - }, - { - "type": "string" - } - ] - } - } - } - } - ] - }, - "ModelRoles": { - "title": "ModelRoles", - "type": "object", - "properties": { - "default": { - "title": "Default", - "description": "The default model. If other model roles are not set, they will fall back to default.", - "type": "string" - }, - "chat": { - "title": "Chat", - "description": "The model to use for chat. If not set, will fall back to default.", - "type": "string" - }, - "edit": { - "title": "Edit", - "description": "The model to use for editing. If not set, will fall back to default.", - "type": "string" - }, - "summarize": { - "title": "Summarize", - "description": "The model to use for summarization. If not set, will fall back to default.", - "type": "string" - } - }, - "required": ["default"] - }, - "SlashCommand": { - "title": "SlashCommand", - "type": "object", - "properties": { - "name": { - "title": "Name", - "anyOf": [ - { - "enum": [ - "issue", - "share", - "so", - "cmd", - "edit", - "comment", - "http", - "commit", - "review" - ], - "type": "string", - "markdownEnumDescriptions": [ - "Generate a link to a drafted GitHub issue", - "Export the current chat session to markdown", - "Reference StackOverflow to answer the question", - "Generate a terminal command and paste it into the terminal", - "Edit the highlighted code with given instructions", - "Add comments to the highlighted code", - "Write a custom slash command at your own HTTP endpoint. Set 'url' in the params object for the endpoint you have setup.", - "Generate a commit message for the current changes", - "Review code and give feedback" - ] - }, - { - "type": "string" - } - ] - }, - "description": { - "title": "Description", - "type": "string" - }, - "step": { - "title": "Step", - "description": "This property is no longer required and has no effect. To use a built-in slash command, instead set the 'name' property to one of the pre-configured options.", - "type": "string" - }, - "params": { - "title": "Params", - "default": {}, - "type": "object" - } - }, - "allOf": [ - { - "if": { - "properties": { - "name": { - "enum": ["issue"] - } - } - }, - "then": { - "properties": { - "params": { - "properties": { - "repositoryUrl": { - "type": "string", - "description": "Enter the URL of the GitHub repository for which you want to generate the issue." - } - }, - "required": ["repositoryUrl"] - } - }, - "required": ["params"] - } - }, - { - "if": { - "properties": { - "name": { - "enum": ["edit"] - } - } - }, - "then": { - "properties": { - "params": { - "properties": { - "recap": { - "type": "boolean", - "markdownDescription": "If recap is set to `true`, Continue will generate a summary of the changes after making the edit." - }, - "tokenLimit": { - "type": "integer", - "markdownDescription": "By default, Continue doesn't let you edit extremely large ranges (beyond 1,200 tokens), because the LLM is unlikely to succeed. But if you would like to override this limit with the understanding of possible failure you may do so here." - } - } - } - } - } - } - ], - "required": ["name", "description"] - }, - "CustomCommand": { - "title": "CustomCommand", - "type": "object", - "properties": { - "name": { - "title": "Name", - "type": "string" - }, - "prompt": { - "title": "Prompt", - "type": "string" - }, - "description": { - "title": "Description", - "type": "string" - } - }, - "required": ["name", "prompt", "description"] - }, - "ContextProviderWithParams": { - "title": "ContextProviderWithParams", - "type": "object", - "properties": { - "name": { - "title": "Name", - "anyOf": [ - { - "enum": [ - "diff", - "terminal", - "locals", - "open", - "google", - "search", - "http", - "codebase", - "problems", - "folder", - "issue", - "docs", - "tree", - "highlights", - "outline", - "postgres", - "code", - "system" - ], - "markdownEnumDescriptions": [ - "Reference the contents of the current changes as given by `git diff`", - "Reference the contents of the terminal", - "Reference the contents of all open or pinned files.", - "Enter a search phrase and include the Google search results as context", - "Reference the results of a ripgrep search in your codebase", - "Write a custom context provider at your own HTTP endpoint. Set 'url' in the params object for the endpoint you have setup.", - "Use embeddings to automatically find relevant files from throughout the codebase", - "Reference all linting errors and warnings in the currently open file", - "Include important files from a folder in the prompt, as determined by similarity search", - "Reference GitHub issues from a repository", - "Retrieve important pages from a documentation website, as determined by similarity search", - "Index and retrieve the contents of any documentation site, using embeddings to find important snippets", - "Display a file tree of the current workspace", - "Include a repo map showing important code objects", - "Displays important snippets of code from the currently open files", - "Displays definition lines from the currently open files", - "References Postgres table schema and sample rows", - "Reference specific functions and classes from throughout your codebase", - "Reference your operating system and cpu" - ], - "type": "string" - }, - { - "type": "string" - } - ] - }, - "params": { - "title": "Params", - "default": {}, - "type": "object" - } - }, - "allOf": [ - { - "if": { - "properties": { - "name": { - "enum": ["google"] - } - } - }, - "then": { - "properties": { - "params": { - "properties": { - "serperApiKey": { - "type": "string", - "description": "Your API key for https://serper.dev in order to get Google search results" - } - }, - "required": ["serperApiKey"] - } - }, - "required": ["params"] - } - }, - { - "if": { - "properties": { - "name": { - "enum": ["open"] - } - } - }, - "then": { - "properties": { - "params": { - "properties": { - "onlyPinned": { - "type": "boolean", - "description": "If set to true, only 'pinned' files will be included.", - "default": false - } - } - } - } - } - }, - { - "if": { - "properties": { - "name": { - "enum": ["issue"] - } - } - }, - "then": { - "properties": { - "params": { - "properties": { - "githubToken": { - "type": "string", - "description": "Your GitHub token to access the GitHub API. Required for private repositories." - }, - "repos": { - "type": "array", - "description": "A list of repositories to search for issues", - "items": { - "type": "object", - "properties": { - "owner": { - "type": "string", - "description": "The owner of the repository" - }, - "repo": { - "type": "string", - "description": "The name of the repository" - }, - "type": { - "type": "string", - "description": "The type of issues to search for", - "enum": ["open", "closed", "all"] + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "openai" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "properties": { + "engine": { + "type": "string" + }, + "apiType": { + "type": "string" + }, + "apiVersion": { + "type": "string" + } } - }, - "required": ["owner", "repo"] } - } }, - "required": ["repos"] - } - }, - "required": ["params"] - } - }, - { - "if": { - "properties": { - "name": { - "enum": ["database"] - } - } - }, - "then": { - "connections": { - "type": "array", - "description": "A list of database connections", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "A unique name for this database connection" - }, - "connection_type": { - "type": "string", - "description": "The type of database (e.g., 'postgres', 'mysql')", - "enum": ["postgres", "mysql", "sqlite"] - }, - "connection": { - "type": "object", - "properties": { - "user": { - "type": "string", - "description": "The database user name" - }, - "host": { - "type": "string", - "description": "The host address of the database server" - }, - "database": { - "type": "string", - "description": "The name of the database to connect to" - }, - "password": { - "type": "string", - "description": "The password for the database user" - }, - "port": { - "type": "integer", - "description": "The port number to connect to at the host" - }, - "filename": { - "type": "string", - "description": "File location for simple file DB's" - } + { + "if": { + "properties": { + "provider": { + "enum": [ + "cloudflare" + ] + } + }, + "required": [ + "provider" + ] }, - "required": [] - } + "then": { + "properties": { + "accountId": { + "type": "string" + }, + "aiGatewaySlug": { + "type": "string" + }, + "model": { + "anyOf": [ + { + "enum": [ + "@cf/meta/llama-3-8b-instruct", + "@hf/thebloke/deepseek-coder-6.7b-instruct-awq", + "@cf/deepseek-ai/deepseek-math-7b-instruct", + "@cf/thebloke/discolm-german-7b-v1-awq", + "@cf/tiiuae/falcon-7b-instruct", + "@cf/google/gemma-2b-it-lora", + "@hf/google/gemma-7b-it", + "@cf/google/gemma-7b-it-lora", + "@hf/nousresearch/hermes-2-pro-mistral-7b", + "@cf/meta/llama-2-7b-chat-fp16", + "@cf/meta/llama-2-7b-chat-int8", + "@cf/meta-llama/llama-2-7b-chat-hf-lora", + "@hf/thebloke/llama-2-13b-chat-awq", + "@hf/thebloke/llamaguard-7b-awq", + "@cf/mistral/mistral-7b-instruct-v0.1", + "@hf/mistral/mistral-7b-instruct-v0.2", + "@cf/mistral/mistral-7b-instruct-v0.2-lora", + "@hf/thebloke/neural-chat-7b-v3-1-awq", + "@cf/openchat/openchat-3.5-0106", + "@hf/thebloke/openhermes-2.5-mistral-7b-awq", + "@cf/microsoft/phi-2", + "@cf/qwen/qwen1.5-0.5b-chat", + "@cf/qwen/qwen1.5-1.8b-chat", + "@cf/qwen/qwen1.5-7b-chat-awq", + "@cf/qwen/qwen1.5-14b-chat-awq", + "@cf/defog/sqlcoder-7b-2", + "@hf/nexusflow/starling-lm-7b-beta", + "@cf/tinyllama/tinyllama-1.1b-chat-v1.0", + "@hf/thebloke/zephyr-7b-beta-awq", + "@hf/thebloke/deepseek-coder-6.7b-base-awq" + ] + }, + { + "type": "string" + } + ] + } + } + } }, - "required": ["name", "type", "connection"] - } - }, - "required": ["connections"] - } + { + "if": { + "properties": { + "provider": { + "enum": [ + "openai" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "properties": { + "model": { + "anyOf": [ + { + "enum": [ + "gpt-3.5-turbo", + "gpt-3.5-turbo-16k", + "gpt-4o", + "gpt-4", + "gpt-3.5-turbo-0613", + "gpt-4-32k", + "gpt-4-0125-preview", + "gpt-4-turbo", + "AUTODETECT" + ] + }, + { + "type": "string" + } + ] + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "replicate" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "properties": { + "model": { + "anyOf": [ + { + "enum": [ + "llama3-8b", + "llama3-70b", + "codellama-7b", + "codellama-13b", + "codellama-34b", + "llama2-7b", + "llama2-13b" + ] + }, + { + "type": "string" + } + ] + }, + "markdownDescription": "Select a pre-defined option, or find an exact model ID from Replicate [here](https://replicate.com/collections/streaming-language-models)." + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "free-trial" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "properties": { + "model": { + "enum": [ + "gpt-4o", + "codestral-latest", + "llama3-70b", + "gpt-3.5-turbo", + "phind-codellama-34b", + "gemini-pro", + "mistral-8x7b", + "claude-3-5-sonnet-20240620", + "claude-3-haiku-20240307", + "AUTODETECT" + ] + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "openai" + ] + }, + "apiType": { + "not": { + "const": "azure" + } + } + }, + "required": [ + "provider" + ] + }, + "then": { + "properties": { + "model": { + "anyOf": [ + { + "enum": [ + "gpt-3.5-turbo", + "gpt-3.5-turbo-16k", + "gpt-4o", + "gpt-4", + "gpt-3.5-turbo-0613", + "gpt-4-32k", + "gpt-4-turbo", + "gpt-4-vision-preview", + "mistral-7b", + "mistral-8x7b", + "llama2-7b", + "llama2-13b", + "codellama-7b", + "codellama-13b", + "codellama-34b", + "codellama-70b", + "llama3-8b", + "llama3-70b", + "phind-codellama-34b", + "wizardcoder-7b", + "wizardcoder-13b", + "wizardcoder-34b", + "zephyr-7b", + "codeup-13b", + "deepseek-7b", + "deepseek-33b", + "neural-chat-7b", + "deepseek-1b", + "stable-code-3b", + "starcoder-1b", + "starcoder-3b", + "starcoder2-3b", + "mistral-tiny", + "mistral-small", + "mistral-medium", + "AUTODETECT" + ] + }, + { + "type": "string" + } + ] + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "anthropic" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "properties": { + "model": { + "anyOf": [ + { + "enum": [ + "claude-2", + "claude-instant-1", + "claude-3-5-sonnet-20240620", + "claude-3-opus-20240229", + "claude-3-sonnet-20240229", + "claude-3-haiku-20240307", + "claude-2.1" + ] + }, + { + "type": "string" + } + ] + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "cohere" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "properties": { + "model": { + "enum": [ + "command-r", + "command-r-plus" + ] + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "bedrock" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "properties": { + "model": { + "anyOf": [ + { + "enum": [ + "claude-3-sonnet-20240229", + "claude-3-haiku-20240307", + "claude-2" + ] + }, + { + "type": "string" + } + ] + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "gemini" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "properties": { + "model": { + "enum": [ + "chat-bison-001", + "gemini-pro", + "gemini-1.5-pro-latest", + "gemini-1.5-pro", + "gemini-1.5-flash-latest", + "gemini-1.5-flash" + ] + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "together" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "properties": { + "model": { + "anyOf": [ + { + "enum": [ + "mistral-7b", + "mistral-8x7b", + "llama2-7b", + "llama2-13b", + "llama3-8b", + "llama3-70b", + "codellama-7b", + "codellama-13b", + "codellama-34b", + "codellama-70b", + "phind-codellama-34b" + ] + }, + { + "type": "string" + } + ], + "markdownDescription": "Select a pre-defined option, or find an exact model string from Together AI [here](https://docs.together.ai/docs/inference-models)." + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "deepinfra" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "properties": { + "model": { + "markdownDescription": "Find the model name you want to use from DeepInfra [here](https://deepinfra.com/models?type=text-generation)." + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "huggingface-tgi", + "huggingface-inference-api", + "llama.cpp", + "text-gen-webui", + "llamafile" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "properties": { + "model": { + "anyOf": [ + { + "enum": [ + "mistral-7b", + "mistral-8x7b", + "llama2-7b", + "llama2-13b", + "codellama-7b", + "codellama-13b", + "codellama-34b", + "codellama-70b", + "llama3-8b", + "llama3-70b", + "phind-codellama-34b", + "wizardcoder-7b", + "wizardcoder-13b", + "wizardcoder-34b", + "zephyr-7b", + "codeup-13b", + "deepseek-7b", + "deepseek-33b", + "neural-chat-7b", + "deepseek-1b", + "stable-code-3b", + "starcoder-1b", + "starcoder-3b", + "starcoder2-3b" + ] + }, + { + "type": "string" + } + ] + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "ollama" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "properties": { + "model": { + "anyOf": [ + { + "enum": [ + "mistral-7b", + "llama2-7b", + "llama2-13b", + "codellama-7b", + "codellama-13b", + "codellama-34b", + "codellama-70b", + "llama3-8b", + "llama3-70b", + "phi-2", + "phind-codellama-34b", + "wizardcoder-7b", + "wizardcoder-13b", + "wizardcoder-34b", + "zephyr-7b", + "codeup-13b", + "deepseek-7b", + "deepseek-33b", + "neural-chat-7b", + "deepseek-1b", + "stable-code-3b", + "starcoder-1b", + "starcoder-3b", + "starcoder2-3b", + "AUTODETECT" + ] + }, + { + "type": "string" + } + ], + "markdownDescription": "Select a pre-defined option, or find the exact model tag for an Ollama model [here](https://ollama.ai/library)." + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "mistral" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "properties": { + "model": { + "enum": [ + "codestral-latest", + "codestral-mamba-latest", + "open-mistral-7b", + "open-mixtral-8x7b", + "open-mixtral-8x22b", + "mistral-small-latest", + "mistral-large-latest" + ] + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "deepseek" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "properties": { + "model": { + "enum": [ + "deepseek-chat", + "deepseek-coder" + ] + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "groq" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "properties": { + "model": { + "enum": [ + "llama2-70b", + "mistral-8x7b", + "gemma", + "llama3-8b", + "llama3-70b", + "AUTODETECT" + ] + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "fireworks" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "properties": { + "model": { + "enum": [ + "starcoder-7b" + ] + } + } + } + }, + { + "if": { + "properties": { + "apiType": { + "const": "azure" + } + }, + "required": [ + "apiType" + ] + }, + "then": { + "required": [ + "engine", + "apiVersion", + "apiBase" + ] + } + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "openai" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "properties": { + "useLegacyCompletionsEndpoint": { + "type": "boolean" + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "const": "llamafile" + } + }, + "required": [ + "provider" + ] + }, + "then": { + "properties": { + "llamafileCommand": { + "type": "string" + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "text-gen-webui" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "properties": { + "streamingUrl": { + "type": "string" + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "flowise" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "properties": { + "timeout": { + "title": "Timeout", + "description": "Set the timeout for each request to Flowise. If you are running a local version of Flowise it might takes a while to respond, you might want to set this to avoid timeouts.", + "default": 5000, + "type": "integer" + }, + "additionalHeaders": { + "description": "A list of additional headers", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "title": "Key", + "description": "Header key", + "type": "string" + }, + "value": { + "title": "Value", + "description": "Header value", + "type": "string" + } + }, + "required": [ + "key", + "value" + ] + } + }, + "additionalFlowiseConfiguration": { + "description": "A list of additional properties to be sent along `overrideConfig`", + "type": "array", + "items": { + "type": "object", + "properties": { + "key": { + "title": "Key", + "description": "Configuration Property key", + "type": "string" + }, + "value": { + "title": "Value", + "description": "Configuration Property value" + } + }, + "required": [ + "key", + "value" + ] + } + }, + "model": { + "anyOf": [ + { + "enum": [ + "gpt-3.5-turbo", + "gpt-3.5-turbo-16k", + "gpt-4o", + "gpt-4", + "gpt-3.5-turbo-0613", + "gpt-4-32k", + "gpt-4-turbo", + "gpt-4-vision-preview", + "mistral-7b", + "mistral-8x7b", + "llama2-7b", + "llama2-13b", + "codellama-7b", + "codellama-13b", + "codellama-34b", + "codellama-70b", + "llama3-8b", + "llama3-70b", + "phind-codellama-34b", + "wizardcoder-7b", + "wizardcoder-13b", + "wizardcoder-34b", + "zephyr-7b", + "codeup-13b", + "deepseek-7b", + "deepseek-33b", + "claude-2", + "claude-instant-1", + "claude-3-5-sonnet-20240620", + "claude-3-opus-20240229", + "claude-3-sonnet-20240229", + "claude-3-haiku-20240307", + "claude-2.1", + "command-r", + "command-r-plus", + "chat-bison-001", + "gemini-pro", + "gemini-1.5-pro-latest", + "gemini-1.5-pro", + "gemini-1.5-flash-latest", + "gemini-1.5-flash", + "mistral-tiny", + "mistral-small", + "mistral-medium", + "deepseek-1b", + "stable-code-3b", + "starcoder-1b", + "starcoder-3b", + "starcoder2-3b" + ] + }, + { + "type": "string" + } + ] + } + } + } + } + ] }, - { - "if": { - "properties": { - "name": { - "enum": ["gitlab-mr"] - } - } - }, - "then": { + "ModelRoles": { + "title": "ModelRoles", + "type": "object", "properties": { - "params": { - "properties": { - "domain": { - "type": "string", - "description": "Your GitLab domain, will default to gitlab.com" - }, - "token": { - "type": "string", - "description": "Your private access token." - }, - "filterComments": { - "type": "boolean", - "description": "If you have code selected, filters out comments that aren't related to the selection." - } + "default": { + "title": "Default", + "description": "The default model. If other model roles are not set, they will fall back to default.", + "type": "string" + }, + "chat": { + "title": "Chat", + "description": "The model to use for chat. If not set, will fall back to default.", + "type": "string" + }, + "edit": { + "title": "Edit", + "description": "The model to use for editing. If not set, will fall back to default.", + "type": "string" }, - "required": ["token"] - } + "summarize": { + "title": "Summarize", + "description": "The model to use for summarization. If not set, will fall back to default.", + "type": "string" + } }, - "required": ["params"] - } + "required": [ + "default" + ] }, - { - "if": { + "SlashCommand": { + "title": "SlashCommand", + "type": "object", "properties": { - "name": { - "enum": ["jira"] - } - } - }, - "then": { - "properties": { - "params": { - "properties": { - "domain": { - "type": "string", - "description": "Your Jira domain, for example company.atlassian.net." - }, - "email": { - "type": "string", - "description": "The email that you log into Jira with" - }, - "token": { - "type": "string", - "description": "Your atlassian API token from https://id.atlassian.com/manage-profile/security/api-tokens" - }, - "issueQuery": { - "type": "string", - "description": "Customize the query used to find Jira issues" - }, - "apiVersion": { - "type": "integer", - "markdownDescription": "This context provider supports both Jira API version 2 and 3. It will use version 3 by default since that's what the cloud version uses, but if you have the datacenter version of Jira, you'll need to set the API Version to 2 using the `apiVersion` property." - }, - "requestOptions": { - "title": "Request Options", - "description": "Options for the HTTPS request to Jira.", - "default": { - "timeout": 7200, - "verifySsl": null, - "caBundlePath": null, - "proxy": null, - "headers": null, - "extraBodyProperties": null - }, - "allOf": [ - { - "$ref": "#/definitions/RequestOptions" - } + "name": { + "title": "Name", + "anyOf": [ + { + "enum": [ + "issue", + "share", + "so", + "cmd", + "edit", + "comment", + "http", + "commit", + "review" + ], + "type": "string", + "markdownEnumDescriptions": [ + "Generate a link to a drafted GitHub issue", + "Export the current chat session to markdown", + "Reference StackOverflow to answer the question", + "Generate a terminal command and paste it into the terminal", + "Edit the highlighted code with given instructions", + "Add comments to the highlighted code", + "Write a custom slash command at your own HTTP endpoint. Set 'url' in the params object for the endpoint you have setup.", + "Generate a commit message for the current changes", + "Review code and give feedback" + ] + }, + { + "type": "string" + } ] - } }, - "required": ["domain", "token"] - } + "description": { + "title": "Description", + "type": "string" + }, + "step": { + "title": "Step", + "description": "This property is no longer required and has no effect. To use a built-in slash command, instead set the 'name' property to one of the pre-configured options.", + "type": "string" + }, + "params": { + "title": "Params", + "default": {}, + "type": "object" + } }, - "required": ["params"] - } - }, - { - "if": { - "properties": { - "name": { - "enum": ["http"] - } - } - }, - "then": { + "allOf": [ + { + "if": { + "properties": { + "name": { + "enum": [ + "issue" + ] + } + } + }, + "then": { + "properties": { + "params": { + "properties": { + "repositoryUrl": { + "type": "string", + "description": "Enter the URL of the GitHub repository for which you want to generate the issue." + } + }, + "required": [ + "repositoryUrl" + ] + } + }, + "required": [ + "params" + ] + } + }, + { + "if": { + "properties": { + "name": { + "enum": [ + "edit" + ] + } + } + }, + "then": { + "properties": { + "params": { + "properties": { + "recap": { + "type": "boolean", + "markdownDescription": "If recap is set to `true`, Continue will generate a summary of the changes after making the edit." + }, + "tokenLimit": { + "type": "integer", + "markdownDescription": "By default, Continue doesn't let you edit extremely large ranges (beyond 1,200 tokens), because the LLM is unlikely to succeed. But if you would like to override this limit with the understanding of possible failure you may do so here." + } + } + } + } + } + }, + { + "if": { + "properties": { + "name": { + "enum": [ + "share" + ] + } + } + }, + "then": { + "properties": { + "params": { + "properties": { + "outputDir": { + "type": "string", + "markdownDescription": "If outputDir is set to `.` or begins with `./` or `.\\`, file will be saved to the current workspace or a subdirectory thereof, respectively. `~` can similarly be used to specify the user's home directory." + } + } + } + } + } + } + ], + "required": [ + "name", + "description" + ] + }, + "CustomCommand": { + "title": "CustomCommand", + "type": "object", "properties": { - "params": { - "properties": { - "url": { - "type": "string", - "description": "The HTTP endpoint of your context provider server." - } - }, - "required": ["url"] - } + "name": { + "title": "Name", + "type": "string" + }, + "prompt": { + "title": "Prompt", + "type": "string" + }, + "description": { + "title": "Description", + "type": "string" + } }, - "required": ["params"] - } - }, - { - "if": { + "required": [ + "name", + "prompt", + "description" + ] + }, + "ContextProviderWithParams": { + "title": "ContextProviderWithParams", + "type": "object", "properties": { - "name": { - "enum": ["codebase", "folder"] - } - } - }, - "then": { + "name": { + "title": "Name", + "anyOf": [ + { + "enum": [ + "diff", + "terminal", + "locals", + "open", + "google", + "search", + "http", + "codebase", + "problems", + "folder", + "issue", + "docs", + "tree", + "highlights", + "outline", + "postgres", + "code", + "currentFile", + "url", + "database", + "os" + ], + "markdownEnumDescriptions": [ + "Reference the contents of the current changes as given by `git diff`", + "Reference the contents of the terminal", + "Reference the contents of the local variables with top n level (defaulting to 3) of call stack for that thread", + "Reference the contents of all open or pinned files.", + "Enter a search phrase and include the Google search results as context", + "Reference the results of a ripgrep search in your codebase", + "Write a custom context provider at your own HTTP endpoint. Set 'url' in the params object for the endpoint you have setup.", + "Use embeddings to automatically find relevant files from throughout the codebase", + "Reference all linting errors and warnings in the currently open file", + "Include important files from a folder in the prompt, as determined by similarity search", + "Reference GitHub issues from a repository", + "Retrieve important pages from a documentation website, as determined by similarity search", + "Display a file tree of the current workspace", + "Include important highlighted sections from your code", + "Include a repo map showing important code objects", + "References Postgres table schema and sample rows", + "Reference specific functions and classes from throughout your codebase", + "Reference the contents of the currently active file", + "Reference the contents of a page at a URL", + "Reference table schemas", + "Operating system and CPU Information" + ], + "type": "string" + }, + { + "type": "string" + } + ] + }, + "params": { + "title": "Params", + "default": {}, + "type": "object" + } + }, + "allOf": [ + { + "if": { + "properties": { + "name": { + "enum": [ + "google" + ] + } + } + }, + "then": { + "properties": { + "params": { + "properties": { + "serperApiKey": { + "type": "string", + "description": "Your API key for https://serper.dev in order to get Google search results" + } + }, + "required": [ + "serperApiKey" + ] + } + }, + "required": [ + "params" + ] + } + }, + { + "if": { + "properties": { + "name": { + "enum": [ + "open" + ] + } + } + }, + "then": { + "properties": { + "params": { + "properties": { + "onlyPinned": { + "type": "boolean", + "description": "If set to true, only 'pinned' files will be included.", + "default": false + } + } + } + } + } + }, + { + "if": { + "properties": { + "name": { + "enum": [ + "issue" + ] + } + } + }, + "then": { + "properties": { + "params": { + "properties": { + "githubToken": { + "type": "string", + "description": "Your GitHub token to access the GitHub API. Required for private repositories." + }, + "repos": { + "type": "array", + "description": "A list of repositories to search for issues", + "items": { + "type": "object", + "properties": { + "owner": { + "type": "string", + "description": "The owner of the repository" + }, + "repo": { + "type": "string", + "description": "The name of the repository" + }, + "type": { + "type": "string", + "description": "The type of issues to search for", + "enum": [ + "open", + "closed", + "all" + ] + } + }, + "required": [ + "owner", + "repo" + ] + } + } + }, + "required": [ + "repos" + ] + } + }, + "required": [ + "params" + ] + } + }, + { + "if": { + "properties": { + "name": { + "enum": [ + "database" + ] + } + } + }, + "then": { + "properties": { + "params": { + "properties": { + "connections": { + "type": "array", + "description": "A list of database connections", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "A unique name for this database connection" + }, + "connection_type": { + "type": "string", + "description": "The type of database (e.g., 'postgres', 'mysql')", + "enum": [ + "postgres", + "mysql", + "sqlite" + ] + }, + "connection": { + "type": "object", + "properties": { + "user": { + "type": "string", + "description": "The database user name" + }, + "host": { + "type": "string", + "description": "The host address of the database server" + }, + "database": { + "type": "string", + "description": "The name of the database to connect to" + }, + "password": { + "type": "string", + "description": "The password for the database user" + }, + "port": { + "type": "integer", + "description": "The port number to connect to at the host" + }, + "filename": { + "type": "string", + "description": "File location for simple file DB's" + } + }, + "required": [] + } + }, + "required": [ + "name", + "connection_type", + "connection" + ] + } + } + }, + "required": [ + "connections" + ] + } + }, + "required": [ + "params" + ] + } + }, + { + "if": { + "properties": { + "name": { + "enum": [ + "gitlab-mr" + ] + } + } + }, + "then": { + "properties": { + "params": { + "properties": { + "domain": { + "type": "string", + "description": "Your GitLab domain, will default to gitlab.com" + }, + "token": { + "type": "string", + "description": "Your private access token." + }, + "filterComments": { + "type": "boolean", + "description": "If you have code selected, filters out comments that aren't related to the selection." + } + }, + "required": [ + "token" + ] + } + }, + "required": [ + "params" + ] + } + }, + { + "if": { + "properties": { + "name": { + "enum": [ + "jira" + ] + } + } + }, + "then": { + "properties": { + "params": { + "properties": { + "domain": { + "type": "string", + "description": "Your Jira domain, for example company.atlassian.net." + }, + "email": { + "type": "string", + "description": "The email that you log into Jira with" + }, + "token": { + "type": "string", + "description": "Your atlassian API token from https://id.atlassian.com/manage-profile/security/api-tokens" + }, + "issueQuery": { + "type": "string", + "description": "Customize the query used to find Jira issues" + }, + "apiVersion": { + "type": "integer", + "markdownDescription": "This context provider supports both Jira API version 2 and 3. It will use version 3 by default since that's what the cloud version uses, but if you have the datacenter version of Jira, you'll need to set the API Version to 2 using the `apiVersion` property." + }, + "requestOptions": { + "title": "Request Options", + "description": "Options for the HTTPS request to Jira.", + "default": { + "timeout": 7200, + "verifySsl": null, + "caBundlePath": null, + "proxy": null, + "headers": null, + "extraBodyProperties": null + }, + "allOf": [ + { + "$ref": "#/definitions/RequestOptions" + } + ] + } + }, + "required": [ + "domain", + "token" + ] + } + }, + "required": [ + "params" + ] + } + }, + { + "if": { + "properties": { + "name": { + "enum": [ + "http" + ] + } + } + }, + "then": { + "properties": { + "params": { + "properties": { + "url": { + "type": "string", + "description": "The HTTP endpoint of your context provider server." + } + }, + "required": [ + "url" + ] + } + }, + "required": [ + "params" + ] + } + }, + { + "if": { + "properties": { + "name": { + "enum": [ + "codebase", + "folder" + ] + } + } + }, + "then": { + "properties": { + "params": { + "properties": { + "nRetrieve": { + "title": "N Retrieve", + "description": "Number of results to initially retrieve from vector database", + "default": 50, + "type": "integer" + }, + "nFinal": { + "title": "N Final", + "description": "Final number of results to use after re-ranking", + "default": 10, + "type": "integer" + }, + "useReranking": { + "title": "Use Reranking", + "description": "Whether to use re-ranking, which will allow initial selection of nRetrieve results, then will use an LLM to select the top nFinal results. Disabling re-ranking will give faster, but less accurate, results.", + "default": true, + "type": "boolean" + } + } + } + } + } + }, + { + "if": { + "properties": { + "name": { + "enum": [ + "postgres" + ] + } + } + }, + "then": { + "properties": { + "params": { + "properties": { + "host": { + "title": "Host", + "description": "Database host", + "default": "localhost", + "type": "string" + }, + "port": { + "title": "Port", + "description": "Database port", + "default": 5432, + "type": "integer" + }, + "user": { + "title": "User", + "description": "Database user", + "default": "postgres", + "type": "string" + }, + "password": { + "title": "Password", + "description": "Database password", + "type": "string" + }, + "database": { + "title": "Database", + "description": "Database name", + "default": "postgres", + "type": "string" + }, + "schema": { + "title": "Schema", + "description": "Database schema", + "default": "public", + "type": "string" + }, + "sampleRows": { + "title": "Sample Rows", + "description": "Number of rows to sample from the database", + "default": 3, + "type": "integer" + } + } + } + }, + "required": [ + "host", + "port", + "user", + "password", + "database" + ] + } + } + ], + "required": [ + "name" + ] + }, + "SerializedContinueConfig": { + "title": "config.json", + "type": "object", "properties": { - "params": { - "properties": { - "nRetrieve": { - "title": "N Retrieve", - "description": "Number of results to initially retrieve from vector database", - "default": 50, - "type": "integer" - }, - "nFinal": { - "title": "N Final", - "description": "Final number of results to use after re-ranking", - "default": 10, - "type": "integer" - }, - "useReranking": { - "title": "Use Reranking", - "description": "Whether to use re-ranking, which will allow initial selection of nRetrieve results, then will use an LLM to select the top nFinal results. Disabling re-ranking will give faster, but less accurate, results.", + "allowAnonymousTelemetry": { + "title": "Allow Anonymous Telemetry", + "markdownDescription": "If this field is set to True, we will collect anonymous telemetry as described in the documentation page on telemetry. If set to `false`, we will not collect any data. Learn more in [the docs](https://docs.continue.dev/telemetry).", "default": true, "type": "boolean" - } - } - } - } - } - }, - { - "if": { - "properties": { - "name": { - "enum": ["postgres"] - } - } - }, - "then": { - "properties": { - "params": { - "properties": { - "host": { - "title": "Host", - "description": "Database host", - "default": "localhost", - "type": "string" - }, - "port": { - "title": "Port", - "description": "Database port", - "default": 5432, - "type": "integer" - }, - "user": { - "title": "User", - "description": "Database user", - "default": "postgres", - "type": "string" - }, - "password": { - "title": "Password", - "description": "Database password", + }, + "models": { + "title": "Models", + "markdownDescription": "Learn about setting up models in [the documentation](https://docs.continue.dev/model-setup/overview).", + "default": [ + { + "title": "GPT-4 (trial)", + "provider": "free-trial", + "model": "gpt-4", + "apiKey": "" + } + ], + "type": "array", + "items": { + "$ref": "#/definitions/ModelDescription" + } + }, + "systemMessage": { + "title": "System Message", + "description": "A system message that will always be followed by the LLM", "type": "string" - }, - "database": { - "title": "Database", - "description": "Database name", - "default": "postgres", + }, + "completionOptions": { + "title": "Completion Options", + "description": "Default options for completion. These will be overriden by any options set for a specific model.", + "default": { + "temperature": null, + "topP": null, + "topK": null, + "presencePenalty": null, + "frequencyPenalty": null, + "stop": null, + "maxTokens": 600 + }, + "allOf": [ + { + "$ref": "#/definitions/BaseCompletionOptions" + } + ] + }, + "requestOptions": { + "title": "Request Options", + "description": "Default request options for all fetch requests from models and context providers. These will be overriden by any model-specific request options.", + "allOf": [ + { + "$ref": "#/definitions/RequestOptions" + } + ] + }, + "slashCommands": { + "title": "Slash Commands", + "markdownDescription": "An array of slash commands that let you take custom actions from the sidebar. Learn more in the [documentation](https://docs.continue.dev/customization/slash-commands).", + "default": [], + "type": "array", + "items": { + "$ref": "#/definitions/SlashCommand" + } + }, + "customCommands": { + "title": "Custom Commands", + "markdownDescription": "An array of custom commands that allow you to reuse prompts. Each has name, description, and prompt properties. When you enter / in the text input, it will act as a shortcut to the prompt. Learn more in the [documentation](https://docs.continue.dev/customization/slash-commands#custom-commands-use-natural-language).", + "default": [ + { + "name": "test", + "prompt": "{{{ input }}}\n\nWrite a comprehensive set of unit tests for the selected code. It should setup, run tests that check for correctness including important edge cases, and teardown. Ensure that the tests are complete and sophisticated. Give the tests just as chat output, don't edit any file.", + "description": "This is an example custom command. Open config.json to edit it and create more" + } + ], + "type": "array", + "items": { + "$ref": "#/definitions/CustomCommand" + } + }, + "contextProviders": { + "title": "Context Providers", + "markdownDescription": "A list of ContextProvider objects that can be used to provide context to the LLM by typing '@'. Read more about ContextProviders in [the documentation](https://docs.continue.dev/customization/context-providers).", + "default": [], + "type": "array", + "items": { + "$ref": "#/definitions/ContextProviderWithParams" + } + }, + "userToken": { + "title": "User Token", + "description": "An optional token to identify the user.", "type": "string" - }, - "schema": { - "title": "Schema", - "description": "Database schema", - "default": "public", + }, + "dataServerUrl": { + "title": "Data Server Url", + "description": "The URL of the server where development data is sent. No data is sent unless a valid user token is provided.", + "default": "https://us-west1-autodebug.cloudfunctions.net", "type": "string" - }, - "sampleRows": { - "title": "Sample Rows", - "description": "Number of rows to sample from the database", - "default": 3, - "type": "integer" - } - } - } - }, - "required": ["host", "port", "user", "password", "database"] - } - } - ], - "required": ["name"] - }, - "SerializedContinueConfig": { - "title": "config.json", - "type": "object", - "properties": { - "allowAnonymousTelemetry": { - "title": "Allow Anonymous Telemetry", - "markdownDescription": "If this field is set to True, we will collect anonymous telemetry as described in the documentation page on telemetry. If set to `false`, we will not collect any data. Learn more in [the docs](https://continue.dev/docs/telemetry).", - "default": true, - "type": "boolean" - }, - "models": { - "title": "Models", - "markdownDescription": "Learn about setting up models in [the documentation](https://continue.dev/docs/model-setup/overview).", - "default": [ - { - "title": "GPT-4 (trial)", - "provider": "free-trial", - "model": "gpt-4", - "apiKey": "" - } - ], - "type": "array", - "items": { - "$ref": "#/definitions/ModelDescription" - } - }, - "systemMessage": { - "title": "System Message", - "description": "A system message that will always be followed by the LLM", - "type": "string" - }, - "completionOptions": { - "title": "Completion Options", - "description": "Default options for completion. These will be overriden by any options set for a specific model.", - "default": { - "temperature": null, - "topP": null, - "topK": null, - "presencePenalty": null, - "frequencyPenalty": null, - "stop": null, - "maxTokens": 600 - }, - "allOf": [ - { - "$ref": "#/definitions/BaseCompletionOptions" - } - ] - }, - "slashCommands": { - "title": "Slash Commands", - "markdownDescription": "An array of slash commands that let you take custom actions from the sidebar. Learn more in the [documentation](https://continue.dev/docs/customization/slash-commands).", - "default": [], - "type": "array", - "items": { - "$ref": "#/definitions/SlashCommand" - } - }, - "customCommands": { - "title": "Custom Commands", - "markdownDescription": "An array of custom commands that allow you to reuse prompts. Each has name, description, and prompt properties. When you enter / in the text input, it will act as a shortcut to the prompt. Learn more in the [documentation](https://continue.dev/docs/customization/slash-commands#custom-commands-use-natural-language).", - "default": [ - { - "name": "test", - "prompt": "Write a comprehensive set of unit tests for the selected code. It should setup, run tests that check for correctness including important edge cases, and teardown. Ensure that the tests are complete and sophisticated. Give the tests just as chat output, don't edit any file.", - "description": "This is an example custom command. Use /config to edit it and create more" - } - ], - "type": "array", - "items": { - "$ref": "#/definitions/CustomCommand" - } - }, - "contextProviders": { - "title": "Context Providers", - "markdownDescription": "A list of ContextProvider objects that can be used to provide context to the LLM by typing '@'. Read more about ContextProviders in [the documentation](https://continue.dev/docs/customization/context-providers).", - "default": [], - "type": "array", - "items": { - "$ref": "#/definitions/ContextProviderWithParams" - } - }, - "userToken": { - "title": "User Token", - "description": "An optional token to identify the user.", - "type": "string" - }, - "dataServerUrl": { - "title": "Data Server Url", - "description": "The URL of the server where development data is sent. No data is sent unless a valid user token is provided.", - "default": "https://us-west1-autodebug.cloudfunctions.net", - "type": "string" - }, - "disableSummaries": { - "title": "Disable Summaries", - "markdownDescription": "If set to `true`, Continue will not generate summaries for each Step. This can be useful if you want to save on compute.", - "default": false, - "type": "boolean" - }, - "disableIndexing": { - "title": "Disable Indexing", - "markdownDescription": "If set to `true`, Continue will not index the codebase. This is mainly used for debugging purposes.", - "default": false, - "type": "boolean" - }, - "disableSessionTitles": { - "title": "Disable Session Titles", - "markdownDescription": "If set to `true`, Continue will not make extra requests to the LLM to generate a summary title of each session.", - "default": false, - "type": "boolean" - }, - "embeddingsProvider": { - "title": "Embeddings Provider", - "markdownDescription": "The method that will be used to generate codebase embeddings. The default is transformers.js, which will run locally in the browser. Learn about the other options [here](https://continue.dev/docs/walkthroughs/codebase-embeddings#embeddings-providers).", - "type": "object", - "properties": { - "provider": { - "enum": ["transformers.js", "ollama", "openai", "free-trial"] - }, - "model": { - "type": "string" - }, - "apiKey": { - "type": "string" - }, - "apiBase": { - "type": "string" - } - }, - "required": ["provider"], - "allOf": [ - { - "if": { - "properties": { - "provider": { - "enum": ["ollama"] - } - }, - "required": ["provider"] - }, - "then": { - "required": ["model"] - } - } - ] - }, - "reranker": { - "title": "Reranker", - "markdownDescription": "The reranker is responsible for selecting the final results when retrieving snippets from your codebase.", - "type": "object", - "properties": { - "name": { - "enum": ["voyage", "llm", "free-trial"] - }, - "params": { - "type": "object" - } - }, - "required": ["name"], - "allOf": [ - { - "if": { - "properties": { - "name": { - "enum": ["llm"] - } - }, - "required": ["name"] - }, - "then": { - "properties": { - "params": { + }, + "disableSummaries": { + "title": "Disable Summaries", + "markdownDescription": "If set to `true`, Continue will not generate summaries for each Step. This can be useful if you want to save on compute.", + "default": false, + "type": "boolean" + }, + "disableIndexing": { + "title": "Disable Indexing", + "markdownDescription": "If set to `true`, Continue will not index the codebase. This is mainly used for debugging purposes.", + "default": false, + "type": "boolean" + }, + "disableSessionTitles": { + "title": "Disable Session Titles", + "markdownDescription": "If set to `true`, Continue will not make extra requests to the LLM to generate a summary title of each session.", + "default": false, + "type": "boolean" + }, + "embeddingsProvider": { + "title": "Embeddings Provider", + "markdownDescription": "The method that will be used to generate codebase embeddings. The default is transformers.js, which will run locally in the browser. Learn about the other options [here](https://docs.continue.dev/walkthroughs/codebase-embeddings#embeddings-providers).", "type": "object", "properties": { - "modelTitle": { - "type": "string" - } + "provider": { + "enum": [ + "huggingface-tei", + "transformers.js", + "ollama", + "openai", + "cohere", + "free-trial", + "gemini" + ] + }, + "model": { + "type": "string" + }, + "apiKey": { + "type": "string" + }, + "apiBase": { + "type": "string" + }, + "requestOptions": { + "title": "Request Options", + "description": "Request options to be used in any fetch requests made by the embeddings provider", + "$ref": "#/definitions/RequestOptions" + }, + "maxChunkSize": { + "title": "Maximum Chunk Size", + "description": "The maximum number of tokens that each chunk of a document is allowed to have", + "type": "integer", + "minimum": 128, + "exclusiveMaximum": 2147483647 + } }, - "required": ["modelTitle"] - } - } - } - }, - { - "if": { - "properties": { - "name": { - "enum": ["voyage"] - } - }, - "required": ["name"] - }, - "then": { - "properties": { - "params": { + "required": [ + "provider" + ], + "allOf": [ + { + "if": { + "properties": { + "provider": { + "enum": [ + "cohere" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "required": [ + "apiKey" + ] + } + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "gemini" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "required": [ + "apiKey" + ] + } + } + ] + }, + "reranker": { + "title": "Reranker", + "markdownDescription": "The reranker is responsible for selecting the final results when retrieving snippets from your codebase.", "type": "object", "properties": { - "apiKey": { - "type": "string" - }, - "model": { - "enum": ["rerank-lite-1"] - } + "name": { + "enum": [ + "cohere", + "voyage", + "llm", + "free-trial" + ] + }, + "params": { + "type": "object" + } }, - "required": ["apiKey"] - } - } - } - } - ] - }, - "tabAutocompleteModel": { - "title": "Tab Autocomplete Model", - "markdownDescription": "The model used for tab autocompletion. If undefined, Continue will default to using starcoder2:3b on a local Ollama instance.\n\n*IMPORTANT*:\n\nIf you use a custom model, ensure that it is one trained for fill-in-the-middle completions. An instruct model is typically not well-suited to autocomplete and you may receive unsatisfactory completions.", - "default": { - "title": "Tab Autocomplete Model", - "provider": "ollama", - "model": "deepseek-coder:1.3b-base" - }, - "$ref": "#/definitions/ModelDescription" - }, - "tabAutocompleteOptions": { - "title": "TabAutocompleteOptions", - "type": "object", - "markdownDescription": "These options let you customize your tab-autocomplete experience. Read about all options in [the docs](https://continue.dev/docs/walkthroughs/tab-autocomplete#configuration-options).", - "properties": { - "disable": { - "type": "boolean", - "description": "Disable tab autocomplete. This can also be done from the IDE settings.", - "default": false - }, - "useCopyBuffer": { - "type": "boolean", - "description": "Determines whether the copy buffer will be considered when contructing the prompt." - }, - "useSuffix": { - "type": "boolean", - "description": "Determines whether to use the file suffix in the prompt." - }, - "maxPromptTokens": { - "type": "number", - "description": "The maximum number of prompt tokens to use. A smaller number will yield faster completions, but less context." - }, - "debounceDelay": { - "type": "number", - "description": "The delay in milliseconds before triggering autocomplete after a keystroke." - }, - "maxSuffixPercentage": { - "type": "number", - "description": "The maximum percentage of the prompt that can be dedicated to the suffix." - }, - "prefixPercentage": { - "type": "number", - "description": "The percentage of the input that should be dedicated to the prefix." - }, - "template": { - "type": "string", - "description": "An optional template string to be used for autocomplete. It will be rendered with the Mustache templating language, and is passed the 'prefix' and 'suffix' variables." - }, - "multilineCompletions": { - "enum": ["always", "never", "auto"], - "description": "If set to true, Continue will only complete a single line at a time." - }, - "useCache": { - "type": "boolean", - "description": "Whether to cache completions" - }, - "onlyMyCode": { - "type": "boolean", - "description": "If set to true, Continue will not include any snippets from go to definition unless they are within your repository" - }, - "useOtherFiles": { - "type": "boolean", - "description": "Defaults to true. If set to false, Continue will not attempt to include snippets from other files." - } - }, - "required": [] - }, - "ui": { - "type": "object", - "properties": { - "codeBlockToolbarPosition": { - "enum": ["top", "bottom"], - "default": "top", - "description": "Whether to show the copy and apply code buttons at the top or bottom of code blocks in the sidebar." - } - } - }, - "experimental": { - "type": "object", - "title": "Experimental", - "description": "Experimental properties are subject to change.", - "properties": { - "contextMenuPrompts": { - "type": "object", - "properties": { - "comment": { - "type": "string", - "default": "Write comments for this code. Do not change anything about the code itself." - }, - "docstring": { - "type": "string", - "default": "Write a docstring for this code. Do not change anything about the code itself." - }, - "fix": { - "type": "string", - "default": "Fix this code" - }, - "optimize": { - "type": "string", - "default": "Optimize this code" - }, - "fixGrammar": { - "type": "string", - "default": "If there are any grammar or spelling mistakes in this writing, fix them. Do not make other large changes to the writing." + "required": [ + "name" + ], + "allOf": [ + { + "if": { + "properties": { + "name": { + "enum": [ + "cohere" + ] + } + }, + "required": [ + "name" + ] + }, + "then": { + "properties": { + "params": { + "type": "object", + "properties": { + "model": { + "enum": [ + "rerank-english-v3.0", + "rerank-multilingual-v3.0", + "rerank-english-v2.0", + "rerank-multilingual-v2.0" + ] + }, + "apiBase": { + "type": "string" + }, + "apiKey": { + "type": "string" + } + }, + "required": [ + "apiKey" + ] + } + } + } + }, + { + "if": { + "properties": { + "name": { + "enum": [ + "llm" + ] + } + }, + "required": [ + "name" + ] + }, + "then": { + "properties": { + "params": { + "type": "object", + "properties": { + "modelTitle": { + "type": "string" + } + }, + "required": [ + "modelTitle" + ] + } + } + } + }, + { + "if": { + "properties": { + "name": { + "enum": [ + "voyage" + ] + } + }, + "required": [ + "name" + ] + }, + "then": { + "properties": { + "params": { + "type": "object", + "properties": { + "apiKey": { + "type": "string" + }, + "model": { + "enum": [ + "rerank-lite-1", + "rerank-1" + ] + } + }, + "required": [ + "apiKey" + ] + } + } + } + } + ] + }, + "tabAutocompleteModel": { + "title": "Tab Autocomplete Model", + "markdownDescription": "The model used for tab autocompletion. If undefined, Continue will default to using starcoder2:3b on a local Ollama instance.\n\n*IMPORTANT*:\n\nIf you use a custom model, ensure that it is one trained for fill-in-the-middle completions. An instruct model is typically not well-suited to autocomplete and you may receive unsatisfactory completions.", + "default": { + "title": "Tab Autocomplete Model", + "provider": "ollama", + "model": "deepseek-coder:1.3b-base" + }, + "oneOf": [ + { + "$ref": "#/definitions/ModelDescription" + }, + { + "type": "array", + "items": { + "$ref": "#/definitions/ModelDescription" + } + } + ] + }, + "tabAutocompleteOptions": { + "title": "TabAutocompleteOptions", + "type": "object", + "markdownDescription": "These options let you customize your tab-autocomplete experience. Read about all options in [the docs](https://docs.continue.dev/walkthroughs/tab-autocomplete#configuration-options).", + "properties": { + "disable": { + "type": "boolean", + "description": "Disable tab autocomplete. This can also be done from the IDE settings.", + "default": false + }, + "useCopyBuffer": { + "type": "boolean", + "description": "Determines whether the copy buffer will be considered when contructing the prompt." + }, + "useFileSuffix": { + "type": "boolean", + "description": "Determines whether to use the file suffix in the prompt." + }, + "maxPromptTokens": { + "type": "number", + "description": "The maximum number of prompt tokens to use. A smaller number will yield faster completions, but less context." + }, + "debounceDelay": { + "type": "number", + "description": "The delay in milliseconds before triggering autocomplete after a keystroke." + }, + "maxSuffixPercentage": { + "type": "number", + "description": "The maximum percentage of the prompt that can be dedicated to the suffix." + }, + "prefixPercentage": { + "type": "number", + "description": "The percentage of the input that should be dedicated to the prefix." + }, + "template": { + "type": "string", + "description": "An optional template string to be used for autocomplete. It will be rendered with the Mustache templating language, and is passed the 'prefix' and 'suffix' variables." + }, + "multilineCompletions": { + "enum": [ + "always", + "never", + "auto" + ], + "description": "If set to true, Continue will only complete a single line at a time." + }, + "useCache": { + "type": "boolean", + "description": "Whether to cache completions" + }, + "onlyMyCode": { + "type": "boolean", + "description": "If set to true, Continue will not include any snippets from go to definition unless they are within your repository" + }, + "useOtherFiles": { + "type": "boolean", + "description": "Defaults to true. If set to false, Continue will not attempt to include snippets from other files." + }, + "disableInFiles": { + "description": "A list of files / glob patterns in which to disable tab autocomplete. For example, *.csv if you'd like to disable autocomplete in .csv files.", + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [] + }, + "ui": { + "type": "object", + "properties": { + "codeBlockToolbarPosition": { + "enum": [ + "top", + "bottom" + ], + "default": "top", + "description": "Whether to show the copy and apply code buttons at the top or bottom of code blocks in the sidebar." + }, + "fontSize": { + "type": "number" + }, + "displayRawMarkdown": { + "type": "boolean", + "description": "If set to true, we will display the model output as raw markdown.", + "default": false + } + } + }, + "experimental": { + "type": "object", + "title": "Experimental", + "description": "Experimental properties are subject to change.", + "properties": { + "defaultContext": { + "type": "array", + "items": { + "enum": [ + "activeFile" + ] + } + }, + "modelRoles": { + "type": "object", + "properties": { + "inlineEdit": { + "type": "string" + } + } + }, + "promptPath": { + "type": "string" + }, + "quickActions": { + "type": "array", + "items": { + "type": "object", + "properties": { + "title": { + "type": "string", + "description": "The title of the quick action that will display in the Code Lens." + }, + "prompt": { + "type": "string", + "description": "The prompt that will be sent to the model when the quick action is invoked, with the function or class body concatenated." + }, + "sendToChat": { + "type": "boolean", + "description": "If true, the result of the quick action will be sent to the chat panel. If false, the streamed result will be inserted into the document.", + "default": false + } + }, + "required": [ + "prompt", + "title" + ] + }, + "description": "Quick actions are a way to add custom commands to the Code Lens of function and class declarations." + }, + "contextMenuPrompts": { + "type": "object", + "properties": { + "comment": { + "type": "string", + "default": "Write comments for this code. Do not change anything about the code itself." + }, + "docstring": { + "type": "string", + "default": "Write a docstring for this code. Do not change anything about the code itself." + }, + "fix": { + "type": "string", + "default": "Fix this code" + }, + "optimize": { + "type": "string", + "default": "Optimize this code" + }, + "fixGrammar": { + "type": "string", + "default": "If there are any grammar or spelling mistakes in this writing, fix them. Do not make other large changes to the writing." + } + } + } + } } - } } - } } - } } - } -} +} \ No newline at end of file diff --git a/extensions/vscode/continue_rc_schema.json b/extensions/vscode/continue_rc_schema.json index 84b74f722..1b5e677c2 100644 --- a/extensions/vscode/continue_rc_schema.json +++ b/extensions/vscode/continue_rc_schema.json @@ -68,6 +68,31 @@ } } }, + "ClientCertificateOptions": { + "title": "ClientCertificateOptions", + "type": "object", + "properties": { + "cert": { + "title": "Cert Path", + "description": "Path to the client certificate file", + "type": "string" + }, + "key": { + "title": "Key Path", + "description": "Path to the client certificate key file", + "type": "string" + }, + "passphrase": { + "title": "Passphrase", + "description": "Passphrase for the client certificate key file", + "type": "string" + } + }, + "required": [ + "cert", + "key" + ] + }, "RequestOptions": { "title": "RequestOptions", "type": "object", @@ -115,6 +140,19 @@ "title": "Extra Body Properties", "description": "This object will be merged with the body when making the HTTP requests", "type": "object" + }, + "noProxy": { + "title": "No Proxy", + "description": "A list of hostnames for which Continue should not use the proxy specified in requestOptions.proxy", + "type": "array", + "items": { + "type": "string" + } + }, + "clientCertificate": { + "title": "Client Certificate", + "description": "Client certificate to use when making the HTTP request", + "$ref": "#/definitions/ClientCertificateOptions" } } }, @@ -134,6 +172,7 @@ "openai", "free-trial", "anthropic", + "cohere", "bedrock", "together", "ollama", @@ -141,30 +180,41 @@ "huggingface-inference-api", "llama.cpp", "replicate", - "google-palm", + "gemini", "lmstudio", "llamafile", "mistral", "deepinfra", - "flowise", - "groq" + "groq", + "fireworks", + "cloudflare", + "deepseek", + "azure", + "msty" ], "markdownEnumDescriptions": [ - "### OpenAI\nUse gpt-4, gpt-3.5-turbo, or any other OpenAI model. See [here](https://openai.com/product#made-for-developers) to obtain an API key.\n\n> [Reference](https://continue.dev/docs/reference/Model%20Providers/openai)", - "### Free Trial\nNew users can try out Continue for free using a proxy server that securely makes calls to OpenAI using our API key. If you are ready to use your own API key or have used all 250 free uses, you can enter your API key in config.py where it says `apiKey=\"\"` or select another model provider.\n> [Reference](https://continue.dev/docs/reference/Model%20Providers/freetrial)", - "### Anthropic\nTo get started with Anthropic models, you first need to sign up for the open beta [here](https://claude.ai/login) to obtain an API key.\n> [Reference](https://continue.dev/docs/reference/Model%20Providers/anthropicllm)", + "### OpenAI\nUse gpt-4, gpt-3.5-turbo, or any other OpenAI model. See [here](https://openai.com/product#made-for-developers) to obtain an API key.\n\n> [Reference](https://docs.continue.dev/reference/Model%20Providers/openai)", + "### Free Trial\nNew users can try out Continue for free using a proxy server that securely makes calls to OpenAI using our API key. If you are ready to use your own API key or have used all 250 free uses, you can enter your API key in config.json where it says `apiKey=\"\"` or select another model provider.\n> [Reference](https://docs.continue.dev/reference/Model%20Providers/freetrial)", + "### Anthropic\nTo get started with Anthropic models, you first need to sign up for the open beta [here](https://claude.ai/login) to obtain an API key.\n> [Reference](https://docs.continue.dev/reference/Model%20Providers/anthropicllm)", + "### Cohere\nTo use Cohere, visit the [Cohere dashboard](https://dashboard.cohere.com/api-keys) to create an API key.\n\n> [Reference](https://docs.continue.dev/reference/Model%20Providers/cohere)", "### Bedrock\nTo get started with Bedrock you need to sign up on AWS [here](https://aws.amazon.com/bedrock/claude/)", - "### Together\nTogether is a hosted service that provides extremely fast streaming of open-source language models. To get started with Together:\n1. Obtain an API key from [here](https://together.ai)\n2. Paste below\n3. Select a model preset\n> [Reference](https://continue.dev/docs/reference/Model%20Providers/togetherllm)", - "### Ollama\nTo get started with Ollama, follow these steps:\n1. Download from [ollama.ai](https://ollama.ai/) and open the application\n2. Open a terminal and run `ollama run `. Example model names are `codellama:7b-instruct` or `llama2:7b-text`. You can find the full list [here](https://ollama.ai/library).\n3. Make sure that the model name used in step 2 is the same as the one in config.py (e.g. `model=\"codellama:7b-instruct\"`)\n4. Once the model has finished downloading, you can start asking questions through Continue.\n> [Reference](https://continue.dev/docs/reference/Model%20Providers/ollama)", - "### Huggingface TGI\n\n> [Reference](https://continue.dev/docs/reference/Model%20Providers/huggingfacetgi)", - "### Huggingface Inference API\n\n> [Reference](https://continue.dev/docs/reference/Model%20Providers/huggingfaceinferenceapi)", - "### Llama.cpp\nllama.cpp comes with a [built-in server](https://github.com/ggerganov/llama.cpp/tree/master/examples/server#llamacppexampleserver) that can be run from source. To do this:\n\n1. Clone the repository with `git clone https://github.com/ggerganov/llama.cpp`.\n2. `cd llama.cpp`\n3. Run `make` to build the server.\n4. Download the model you'd like to use and place it in the `llama.cpp/models` directory (the best place to find models is [The Bloke on HuggingFace](https://huggingface.co/TheBloke))\n5. Run the llama.cpp server with the command below (replacing with the model you downloaded):\n\n```shell\n.\\server.exe -c 4096 --host 0.0.0.0 -t 16 --mlock -m models/codellama-7b-instruct.Q8_0.gguf\n```\n\nAfter it's up and running, you can start using Continue.\n> [Reference](https://continue.dev/docs/reference/Model%20Providers/llamacpp)", - "### Replicate\nReplicate is a hosted service that makes it easy to run ML models. To get started with Replicate:\n1. Obtain an API key from [here](https://replicate.com)\n2. Paste below\n3. Select a model preset\n> [Reference](https://continue.dev/docs/reference/Model%20Providers/replicatellm)", - "### Google PALM\nTo get started with Google Makersuite, obtain your API key from [here](https://makersuite.google.com) and paste it below.\n> [Reference](https://continue.dev/docs/reference/Model%20Providers/googlepalmapi)", - "### LMStudio\nLMStudio provides a professional and well-designed GUI for exploring, configuring, and serving LLMs. It is available on both Mac and Windows. To get started:\n1. Download from [lmstudio.ai](https://lmstudio.ai/) and open the application\n2. Search for and download the desired model from the home screen of LMStudio.\n3. In the left-bar, click the '<->' icon to open the Local Inference Server and press 'Start Server'.\n4. Once your model is loaded and the server has started, you can begin using Continue.\n> [Reference](https://continue.dev/docs/reference/Model%20Providers/lmstudio)", - "### Llamafile\nTo get started with llamafiles, find and download a binary on their [GitHub repo](https://github.com/Mozilla-Ocho/llamafile#binary-instructions). Then run it with the following command:\n\n```shell\nchmod +x ./llamafile\n./llamafile\n```\n> [Reference](https://continue.dev/docs/reference/Model%20Providers/llamafile)", + "### Together\nTogether is a hosted service that provides extremely fast streaming of open-source language models. To get started with Together:\n1. Obtain an API key from [here](https://together.ai)\n2. Paste below\n3. Select a model preset\n> [Reference](https://docs.continue.dev/reference/Model%20Providers/togetherllm)", + "### Ollama\nTo get started with Ollama, follow these steps:\n1. Download from [ollama.ai](https://ollama.ai/) and open the application\n2. Open a terminal and run `ollama run `. Example model names are `codellama:7b-instruct` or `llama2:7b-text`. You can find the full list [here](https://ollama.ai/library).\n3. Make sure that the model name used in step 2 is the same as the one in config.json (e.g. `model=\"codellama:7b-instruct\"`)\n4. Once the model has finished downloading, you can start asking questions through Continue.\n> [Reference](https://docs.continue.dev/reference/Model%20Providers/ollama)", + "### Huggingface TGI\n\n> [Reference](https://docs.continue.dev/reference/Model%20Providers/huggingfacetgi)", + "### Huggingface Inference API\n\n> [Reference](https://docs.continue.dev/reference/Model%20Providers/huggingfaceinferenceapi)", + "### Llama.cpp\nllama.cpp comes with a [built-in server](https://github.com/ggerganov/llama.cpp/tree/master/examples/server#llamacppexampleserver) that can be run from source. To do this:\n\n1. Clone the repository with `git clone https://github.com/ggerganov/llama.cpp`.\n2. `cd llama.cpp`\n3. Run `make` to build the server.\n4. Download the model you'd like to use and place it in the `llama.cpp/models` directory (the best place to find models is [The Bloke on HuggingFace](https://huggingface.co/TheBloke))\n5. Run the llama.cpp server with the command below (replacing with the model you downloaded):\n\n```shell\n.\\server.exe -c 4096 --host 0.0.0.0 -t 16 --mlock -m models/codellama-7b-instruct.Q8_0.gguf\n```\n\nAfter it's up and running, you can start using Continue.\n> [Reference](https://docs.continue.dev/reference/Model%20Providers/llamacpp)", + "### Replicate\nReplicate is a hosted service that makes it easy to run ML models. To get started with Replicate:\n1. Obtain an API key from [here](https://replicate.com)\n2. Paste below\n3. Select a model preset\n> [Reference](https://docs.continue.dev/reference/Model%20Providers/replicatellm)", + "### Gemini API\nTo get started with Google Makersuite, obtain your API key from [here](https://makersuite.google.com) and paste it below.\n> [Reference](https://docs.continue.dev/reference/Model%20Providers/geminiapi)", + "### LMStudio\nLMStudio provides a professional and well-designed GUI for exploring, configuring, and serving LLMs. It is available on both Mac and Windows. To get started:\n1. Download from [lmstudio.ai](https://lmstudio.ai/) and open the application\n2. Search for and download the desired model from the home screen of LMStudio.\n3. In the left-bar, click the '<->' icon to open the Local Inference Server and press 'Start Server'.\n4. Once your model is loaded and the server has started, you can begin using Continue.\n> [Reference](https://docs.continue.dev/reference/Model%20Providers/lmstudio)", + "### Llamafile\nTo get started with llamafiles, find and download a binary on their [GitHub repo](https://github.com/Mozilla-Ocho/llamafile#binary-instructions). Then run it with the following command:\n\n```shell\nchmod +x ./llamafile\n./llamafile\n```\n> [Reference](https://docs.continue.dev/reference/Model%20Providers/llamafile)", "### Mistral API\n\nTo get access to the Mistral API, obtain your API key from the [Mistral platform](https://docs.mistral.ai/)", - "### DeepInfra\n\n> [Reference](https://continue.dev/docs/reference/Model%20Providers/deepinfra)" + "### DeepInfra\n\n> [Reference](https://docs.continue.dev/reference/Model%20Providers/deepinfra)", + "### Groq\nGroq provides extremely fast inference of open-source language models. To get started, obtain an API key from [their console](https://console.groq.com/keys).", + "### Fireworks\nFireworks is a fast inference engine for open-source language models. To get started, obtain an API key from [their console](https://fireworks.ai/api-keys).", + "### Cloudflare Workers AI\n\n[Reference](https://developers.cloudflare.com/workers-ai/)", + "### Deepseek\n Deepseek's API provides the best pricing for their state-of-the-art Deepseek Coder models. To get started, obtain an API key from [their console](https://platform.deepseek.com/api_keys)", + "### Azure OpenAI\n Azure OpenAI lets you securely run OpenAI's models on Azure. To get started, follow the steps [here](https://docs.continue.dev/reference/Model%20Providers/azure)", + "### Msty\nMsty is the simplest way to get started with online or local LLMs on all desktop platforms - Windows, Mac, and Linux. No fussing around, one-click and you are up and running. To get started, follow these steps:\n1. Download from [Msty.app](https://msty.app/), open the application, and click 'Setup Local AI'.\n2. Go to the Local AI Module page and download a model of your choice.\n3. Once the model has finished downloading, you can start asking questions through Continue.\n> [Reference](https://continue.dev/docs/reference/Model%20Providers/Msty)" ], "type": "string" }, @@ -175,7 +225,7 @@ }, "apiKey": { "title": "Api Key", - "description": "OpenAI, Anthropic, Together, or other API key", + "description": "OpenAI, Anthropic, Cohere, Together, or other API key", "type": "string" }, "apiBase": { @@ -207,13 +257,14 @@ "neural-chat", "codellama-70b", "llava", - "gemma" + "gemma", + "llama3" ], "type": "string" }, "promptTemplates": { "title": "Prompt Templates", - "markdownDescription": "A mapping of prompt template name ('edit' is currently the only one used in Continue) to a string giving the prompt template. See [here](https://continue.dev/docs/model-setup/configuration#customizing-the-edit-prompt) for an example.", + "markdownDescription": "A mapping of prompt template name ('edit' is currently the only one used in Continue) to a string giving the prompt template. See [here](https://docs.continue.dev/model-setup/configuration#customizing-the-edit-prompt) for an example.", "type": "object", "additionalProperties": { "type": "string" @@ -312,10 +363,12 @@ "enum": [ "openai", "anthropic", - "google-palm", + "cohere", + "gemini", "huggingface-inference-api", "replicate", - "together" + "together", + "cloudflare" ] } }, @@ -376,6 +429,71 @@ } } }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "cloudflare" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "properties": { + "accountId": { + "type": "string" + }, + "aiGatewaySlug": { + "type": "string" + }, + "model": { + "anyOf": [ + { + "enum": [ + "@cf/meta/llama-3-8b-instruct", + "@hf/thebloke/deepseek-coder-6.7b-instruct-awq", + "@cf/deepseek-ai/deepseek-math-7b-instruct", + "@cf/thebloke/discolm-german-7b-v1-awq", + "@cf/tiiuae/falcon-7b-instruct", + "@cf/google/gemma-2b-it-lora", + "@hf/google/gemma-7b-it", + "@cf/google/gemma-7b-it-lora", + "@hf/nousresearch/hermes-2-pro-mistral-7b", + "@cf/meta/llama-2-7b-chat-fp16", + "@cf/meta/llama-2-7b-chat-int8", + "@cf/meta-llama/llama-2-7b-chat-hf-lora", + "@hf/thebloke/llama-2-13b-chat-awq", + "@hf/thebloke/llamaguard-7b-awq", + "@cf/mistral/mistral-7b-instruct-v0.1", + "@hf/mistral/mistral-7b-instruct-v0.2", + "@cf/mistral/mistral-7b-instruct-v0.2-lora", + "@hf/thebloke/neural-chat-7b-v3-1-awq", + "@cf/openchat/openchat-3.5-0106", + "@hf/thebloke/openhermes-2.5-mistral-7b-awq", + "@cf/microsoft/phi-2", + "@cf/qwen/qwen1.5-0.5b-chat", + "@cf/qwen/qwen1.5-1.8b-chat", + "@cf/qwen/qwen1.5-7b-chat-awq", + "@cf/qwen/qwen1.5-14b-chat-awq", + "@cf/defog/sqlcoder-7b-2", + "@hf/nexusflow/starling-lm-7b-beta", + "@cf/tinyllama/tinyllama-1.1b-chat-v1.0", + "@hf/thebloke/zephyr-7b-beta-awq", + "@hf/thebloke/deepseek-coder-6.7b-base-awq" + ] + }, + { + "type": "string" + } + ] + } + } + } + }, { "if": { "properties": { @@ -397,11 +515,12 @@ "enum": [ "gpt-3.5-turbo", "gpt-3.5-turbo-16k", + "gpt-4o", "gpt-4", "gpt-3.5-turbo-0613", "gpt-4-32k", "gpt-4-0125-preview", - "gpt-4-turbo-preview", + "gpt-4-turbo", "AUTODETECT" ] }, @@ -432,6 +551,8 @@ "anyOf": [ { "enum": [ + "llama3-8b", + "llama3-70b", "codellama-7b", "codellama-13b", "codellama-34b", @@ -465,17 +586,15 @@ "properties": { "model": { "enum": [ + "gpt-4o", + "codestral-latest", + "llama3-70b", "gpt-3.5-turbo", - "gpt-4", "phind-codellama-34b", "gemini-pro", - "gpt-4-vision-preview", - "codellama-70b", "mistral-8x7b", - "claude-3-opus-20240229", - "claude-3-sonnet-20240229", + "claude-3-5-sonnet-20240620", "claude-3-haiku-20240307", - "starcoder-7b", "AUTODETECT" ] } @@ -508,10 +627,11 @@ "enum": [ "gpt-3.5-turbo", "gpt-3.5-turbo-16k", + "gpt-4o", "gpt-4", "gpt-3.5-turbo-0613", "gpt-4-32k", - "gpt-4-turbo-preview", + "gpt-4-turbo", "gpt-4-vision-preview", "mistral-7b", "mistral-8x7b", @@ -521,6 +641,8 @@ "codellama-13b", "codellama-34b", "codellama-70b", + "llama3-8b", + "llama3-70b", "phind-codellama-34b", "wizardcoder-7b", "wizardcoder-13b", @@ -570,6 +692,7 @@ "enum": [ "claude-2", "claude-instant-1", + "claude-3-5-sonnet-20240620", "claude-3-opus-20240229", "claude-3-sonnet-20240229", "claude-3-haiku-20240307", @@ -584,6 +707,30 @@ } } }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "cohere" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "properties": { + "model": { + "enum": [ + "command-r", + "command-r-plus" + ] + } + } + } + }, { "if": { "properties": { @@ -621,7 +768,7 @@ "properties": { "provider": { "enum": [ - "google-palm" + "gemini" ] } }, @@ -635,7 +782,10 @@ "enum": [ "chat-bison-001", "gemini-pro", - "gemini-1.5-pro-latest" + "gemini-1.5-pro-latest", + "gemini-1.5-pro", + "gemini-1.5-flash-latest", + "gemini-1.5-flash" ] } } @@ -664,6 +814,8 @@ "mistral-8x7b", "llama2-7b", "llama2-13b", + "llama3-8b", + "llama3-70b", "codellama-7b", "codellama-13b", "codellama-34b", @@ -732,6 +884,8 @@ "codellama-13b", "codellama-34b", "codellama-70b", + "llama3-8b", + "llama3-70b", "phind-codellama-34b", "wizardcoder-7b", "wizardcoder-13b", @@ -782,6 +936,8 @@ "codellama-13b", "codellama-34b", "codellama-70b", + "llama3-8b", + "llama3-70b", "phi-2", "phind-codellama-34b", "wizardcoder-7b", @@ -826,9 +982,37 @@ "properties": { "model": { "enum": [ - "mistral-tiny", - "mistral-small", - "mistral-medium" + "codestral-latest", + "codestral-mamba-latest", + "open-mistral-7b", + "open-mixtral-8x7b", + "open-mixtral-8x22b", + "mistral-small-latest", + "mistral-large-latest" + ] + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "deepseek" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "properties": { + "model": { + "enum": [ + "deepseek-chat", + "deepseek-coder" ] } } @@ -853,7 +1037,33 @@ "enum": [ "llama2-70b", "mistral-8x7b", - "gemma" + "gemma", + "llama3-8b", + "llama3-70b", + "AUTODETECT" + ] + } + } + } + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "fireworks" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "properties": { + "model": { + "enum": [ + "starcoder-7b" ] } } @@ -1011,10 +1221,11 @@ "enum": [ "gpt-3.5-turbo", "gpt-3.5-turbo-16k", + "gpt-4o", "gpt-4", "gpt-3.5-turbo-0613", "gpt-4-32k", - "gpt-4-turbo-preview", + "gpt-4-turbo", "gpt-4-vision-preview", "mistral-7b", "mistral-8x7b", @@ -1024,6 +1235,8 @@ "codellama-13b", "codellama-34b", "codellama-70b", + "llama3-8b", + "llama3-70b", "phind-codellama-34b", "wizardcoder-7b", "wizardcoder-13b", @@ -1034,13 +1247,19 @@ "deepseek-33b", "claude-2", "claude-instant-1", + "claude-3-5-sonnet-20240620", "claude-3-opus-20240229", "claude-3-sonnet-20240229", "claude-3-haiku-20240307", "claude-2.1", + "command-r", + "command-r-plus", "chat-bison-001", "gemini-pro", "gemini-1.5-pro-latest", + "gemini-1.5-pro", + "gemini-1.5-flash-latest", + "gemini-1.5-flash", "mistral-tiny", "mistral-small", "mistral-medium", @@ -1198,6 +1417,29 @@ } } } + }, + { + "if": { + "properties": { + "name": { + "enum": [ + "share" + ] + } + } + }, + "then": { + "properties": { + "params": { + "properties": { + "outputDir": { + "type": "string", + "markdownDescription": "If outputDir is set to `.` or begins with `./` or `.\\`, file will be saved to the current workspace or a subdirectory thereof, respectively. `~` can similarly be used to specify the user's home directory." + } + } + } + } + } } ], "required": [ @@ -1254,11 +1496,15 @@ "outline", "postgres", "code", - "system" + "currentFile", + "url", + "database", + "os" ], "markdownEnumDescriptions": [ "Reference the contents of the current changes as given by `git diff`", "Reference the contents of the terminal", + "Reference the contents of the local variables with top n level (defaulting to 3) of call stack for that thread", "Reference the contents of all open or pinned files.", "Enter a search phrase and include the Google search results as context", "Reference the results of a ripgrep search in your codebase", @@ -1268,14 +1514,15 @@ "Include important files from a folder in the prompt, as determined by similarity search", "Reference GitHub issues from a repository", "Retrieve important pages from a documentation website, as determined by similarity search", - "Index and retrieve the contents of any documentation site, using embeddings to find important snippets", "Display a file tree of the current workspace", + "Include important highlighted sections from your code", "Include a repo map showing important code objects", - "Displays important snippets of code from the currently open files", - "Displays definition lines from the currently open files", "References Postgres table schema and sample rows", "Reference specific functions and classes from throughout your codebase", - "Reference your operating system and cpu" + "Reference the contents of the currently active file", + "Reference the contents of a page at a URL", + "Reference table schemas", + "Operating system and CPU Information" ], "type": "string" }, @@ -1414,65 +1661,74 @@ } }, "then": { - "connections": { - "type": "array", - "description": "A list of database connections", - "items": { - "type": "object", + "properties": { + "params": { "properties": { - "name": { - "type": "string", - "description": "A unique name for this database connection" - }, - "connection_type": { - "type": "string", - "description": "The type of database (e.g., 'postgres', 'mysql')", - "enum": [ - "postgres", - "mysql", - "sqlite" - ] - }, - "connection": { - "type": "object", - "properties": { - "user": { - "type": "string", - "description": "The database user name" - }, - "host": { - "type": "string", - "description": "The host address of the database server" - }, - "database": { - "type": "string", - "description": "The name of the database to connect to" - }, - "password": { - "type": "string", - "description": "The password for the database user" - }, - "port": { - "type": "integer", - "description": "The port number to connect to at the host" + "connections": { + "type": "array", + "description": "A list of database connections", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "A unique name for this database connection" + }, + "connection_type": { + "type": "string", + "description": "The type of database (e.g., 'postgres', 'mysql')", + "enum": [ + "postgres", + "mysql", + "sqlite" + ] + }, + "connection": { + "type": "object", + "properties": { + "user": { + "type": "string", + "description": "The database user name" + }, + "host": { + "type": "string", + "description": "The host address of the database server" + }, + "database": { + "type": "string", + "description": "The name of the database to connect to" + }, + "password": { + "type": "string", + "description": "The password for the database user" + }, + "port": { + "type": "integer", + "description": "The port number to connect to at the host" + }, + "filename": { + "type": "string", + "description": "File location for simple file DB's" + } + }, + "required": [] + } }, - "filename": { - "type": "string", - "description": "File location for simple file DB's" - } - }, - "required": [] + "required": [ + "name", + "connection_type", + "connection" + ] + } } }, "required": [ - "name", - "type", - "connection" + "connections" ] } }, "required": [ - "connections" + "params" ] } }, @@ -1721,13 +1977,13 @@ "properties": { "allowAnonymousTelemetry": { "title": "Allow Anonymous Telemetry", - "markdownDescription": "If this field is set to True, we will collect anonymous telemetry as described in the documentation page on telemetry. If set to `false`, we will not collect any data. Learn more in [the docs](https://continue.dev/docs/telemetry).", + "markdownDescription": "If this field is set to True, we will collect anonymous telemetry as described in the documentation page on telemetry. If set to `false`, we will not collect any data. Learn more in [the docs](https://docs.continue.dev/telemetry).", "default": true, "type": "boolean" }, "models": { "title": "Models", - "markdownDescription": "Learn about setting up models in [the documentation](https://continue.dev/docs/model-setup/overview).", + "markdownDescription": "Learn about setting up models in [the documentation](https://docs.continue.dev/model-setup/overview).", "default": [ { "title": "GPT-4 (trial)", @@ -1764,9 +2020,18 @@ } ] }, + "requestOptions": { + "title": "Request Options", + "description": "Default request options for all fetch requests from models and context providers. These will be overriden by any model-specific request options.", + "allOf": [ + { + "$ref": "#/definitions/RequestOptions" + } + ] + }, "slashCommands": { "title": "Slash Commands", - "markdownDescription": "An array of slash commands that let you take custom actions from the sidebar. Learn more in the [documentation](https://continue.dev/docs/customization/slash-commands).", + "markdownDescription": "An array of slash commands that let you take custom actions from the sidebar. Learn more in the [documentation](https://docs.continue.dev/customization/slash-commands).", "default": [], "type": "array", "items": { @@ -1775,12 +2040,12 @@ }, "customCommands": { "title": "Custom Commands", - "markdownDescription": "An array of custom commands that allow you to reuse prompts. Each has name, description, and prompt properties. When you enter / in the text input, it will act as a shortcut to the prompt. Learn more in the [documentation](https://continue.dev/docs/customization/slash-commands#custom-commands-use-natural-language).", + "markdownDescription": "An array of custom commands that allow you to reuse prompts. Each has name, description, and prompt properties. When you enter / in the text input, it will act as a shortcut to the prompt. Learn more in the [documentation](https://docs.continue.dev/customization/slash-commands#custom-commands-use-natural-language).", "default": [ { "name": "test", - "prompt": "Write a comprehensive set of unit tests for the selected code. It should setup, run tests that check for correctness including important edge cases, and teardown. Ensure that the tests are complete and sophisticated. Give the tests just as chat output, don't edit any file.", - "description": "This is an example custom command. Use /config to edit it and create more" + "prompt": "{{{ input }}}\n\nWrite a comprehensive set of unit tests for the selected code. It should setup, run tests that check for correctness including important edge cases, and teardown. Ensure that the tests are complete and sophisticated. Give the tests just as chat output, don't edit any file.", + "description": "This is an example custom command. Open config.json to edit it and create more" } ], "type": "array", @@ -1790,7 +2055,7 @@ }, "contextProviders": { "title": "Context Providers", - "markdownDescription": "A list of ContextProvider objects that can be used to provide context to the LLM by typing '@'. Read more about ContextProviders in [the documentation](https://continue.dev/docs/customization/context-providers).", + "markdownDescription": "A list of ContextProvider objects that can be used to provide context to the LLM by typing '@'. Read more about ContextProviders in [the documentation](https://docs.continue.dev/customization/context-providers).", "default": [], "type": "array", "items": { @@ -1828,15 +2093,18 @@ }, "embeddingsProvider": { "title": "Embeddings Provider", - "markdownDescription": "The method that will be used to generate codebase embeddings. The default is transformers.js, which will run locally in the browser. Learn about the other options [here](https://continue.dev/docs/walkthroughs/codebase-embeddings#embeddings-providers).", + "markdownDescription": "The method that will be used to generate codebase embeddings. The default is transformers.js, which will run locally in the browser. Learn about the other options [here](https://docs.continue.dev/walkthroughs/codebase-embeddings#embeddings-providers).", "type": "object", "properties": { "provider": { "enum": [ + "huggingface-tei", "transformers.js", "ollama", "openai", - "free-trial" + "cohere", + "free-trial", + "gemini" ] }, "model": { @@ -1847,6 +2115,18 @@ }, "apiBase": { "type": "string" + }, + "requestOptions": { + "title": "Request Options", + "description": "Request options to be used in any fetch requests made by the embeddings provider", + "$ref": "#/definitions/RequestOptions" + }, + "maxChunkSize": { + "title": "Maximum Chunk Size", + "description": "The maximum number of tokens that each chunk of a document is allowed to have", + "type": "integer", + "minimum": 128, + "exclusiveMaximum": 2147483647 } }, "required": [ @@ -1858,7 +2138,7 @@ "properties": { "provider": { "enum": [ - "ollama" + "cohere" ] } }, @@ -1868,7 +2148,26 @@ }, "then": { "required": [ - "model" + "apiKey" + ] + } + }, + { + "if": { + "properties": { + "provider": { + "enum": [ + "gemini" + ] + } + }, + "required": [ + "provider" + ] + }, + "then": { + "required": [ + "apiKey" ] } } @@ -1881,6 +2180,7 @@ "properties": { "name": { "enum": [ + "cohere", "voyage", "llm", "free-trial" @@ -1894,6 +2194,46 @@ "name" ], "allOf": [ + { + "if": { + "properties": { + "name": { + "enum": [ + "cohere" + ] + } + }, + "required": [ + "name" + ] + }, + "then": { + "properties": { + "params": { + "type": "object", + "properties": { + "model": { + "enum": [ + "rerank-english-v3.0", + "rerank-multilingual-v3.0", + "rerank-english-v2.0", + "rerank-multilingual-v2.0" + ] + }, + "apiBase": { + "type": "string" + }, + "apiKey": { + "type": "string" + } + }, + "required": [ + "apiKey" + ] + } + } + } + }, { "if": { "properties": { @@ -1946,7 +2286,8 @@ }, "model": { "enum": [ - "rerank-lite-1" + "rerank-lite-1", + "rerank-1" ] } }, @@ -1967,12 +2308,22 @@ "provider": "ollama", "model": "deepseek-coder:1.3b-base" }, - "$ref": "#/definitions/ModelDescription" + "oneOf": [ + { + "$ref": "#/definitions/ModelDescription" + }, + { + "type": "array", + "items": { + "$ref": "#/definitions/ModelDescription" + } + } + ] }, "tabAutocompleteOptions": { "title": "TabAutocompleteOptions", "type": "object", - "markdownDescription": "These options let you customize your tab-autocomplete experience. Read about all options in [the docs](https://continue.dev/docs/walkthroughs/tab-autocomplete#configuration-options).", + "markdownDescription": "These options let you customize your tab-autocomplete experience. Read about all options in [the docs](https://docs.continue.dev/walkthroughs/tab-autocomplete#configuration-options).", "properties": { "disable": { "type": "boolean", @@ -1983,7 +2334,7 @@ "type": "boolean", "description": "Determines whether the copy buffer will be considered when contructing the prompt." }, - "useSuffix": { + "useFileSuffix": { "type": "boolean", "description": "Determines whether to use the file suffix in the prompt." }, @@ -2026,6 +2377,13 @@ "useOtherFiles": { "type": "boolean", "description": "Defaults to true. If set to false, Continue will not attempt to include snippets from other files." + }, + "disableInFiles": { + "description": "A list of files / glob patterns in which to disable tab autocomplete. For example, *.csv if you'd like to disable autocomplete in .csv files.", + "type": "array", + "items": { + "type": "string" + } } }, "required": [] @@ -2040,6 +2398,14 @@ ], "default": "top", "description": "Whether to show the copy and apply code buttons at the top or bottom of code blocks in the sidebar." + }, + "fontSize": { + "type": "number" + }, + "displayRawMarkdown": { + "type": "boolean", + "description": "If set to true, we will display the model output as raw markdown.", + "default": false } } }, @@ -2048,6 +2414,51 @@ "title": "Experimental", "description": "Experimental properties are subject to change.", "properties": { + "defaultContext": { + "type": "array", + "items": { + "enum": [ + "activeFile" + ] + } + }, + "modelRoles": { + "type": "object", + "properties": { + "inlineEdit": { + "type": "string" + } + } + }, + "promptPath": { + "type": "string" + }, + "quickActions": { + "type": "array", + "items": { + "type": "object", + "properties": { + "title": { + "type": "string", + "description": "The title of the quick action that will display in the Code Lens." + }, + "prompt": { + "type": "string", + "description": "The prompt that will be sent to the model when the quick action is invoked, with the function or class body concatenated." + }, + "sendToChat": { + "type": "boolean", + "description": "If true, the result of the quick action will be sent to the chat panel. If false, the streamed result will be inserted into the document.", + "default": false + } + }, + "required": [ + "prompt", + "title" + ] + }, + "description": "Quick actions are a way to add custom commands to the Code Lens of function and class declarations." + }, "contextMenuPrompts": { "type": "object", "properties": { diff --git a/extensions/vscode/continue_tutorial.py b/extensions/vscode/continue_tutorial.py index 48c10ae2d..fe52925cb 100644 --- a/extensions/vscode/continue_tutorial.py +++ b/extensions/vscode/continue_tutorial.py @@ -1,15 +1,13 @@ """ _________ _____ _____ __ ____/______ _______ __ /____(_)_______ ____ _______ -_ / _ __ \__ __ \_ __/__ / __ __ \_ / / /_ _ \ +_ / _ __ \__ __ \_ __/__ / __ __ \_ / / /_ _ \ / /___ / /_/ /_ / / // /_ _ / _ / / // /_/ / / __/ \____/ \____/ /_/ /_/ \__/ /_/ /_/ /_/ \__,_/ \___/ Welcome to Continue! This is a 2 minute tutorial. -You can either -- follow the instructions on your own, or -- follow along by clicking the gray CodeLens buttons above the lines, in order, starting with "Begin Section" +You can click the gray buttons, starting with "Highlight the function" to follow along. """ # region —————————————————————————— Part 1: Ask a question about code [Cmd+L] —————————————————————————— @@ -38,6 +36,8 @@ def mysterious_function(x): """Step 1: Highlight this code""" + + def mysterious_function(x): n = len(x) for i in range(n): @@ -76,4 +76,4 @@ def print_sum(list_to_print): # endregion -# Ready to learn more? Check out the Continue documentation: https://continue.dev/docs \ No newline at end of file +# Ready to learn more? Check out the Continue documentation: https://docs.continue.dev diff --git a/extensions/vscode/esbuild.test.mjs b/extensions/vscode/esbuild.test.mjs index f6dc092c2..3d6ca8b94 100644 --- a/extensions/vscode/esbuild.test.mjs +++ b/extensions/vscode/esbuild.test.mjs @@ -1,39 +1,41 @@ import * as esbuild from "esbuild"; import glob from "glob"; -/** +/** * Bundles tests into multiple files, runTestOnVSCodeHost is then run using node runTestOnVSCodeHost.js * It downloads vscode, starts it and passes test file to run - mochaRunner.js * mochaRunner.js then runs tests using Mocha class -*/ + */ + +console.log("Bundling tests..."); // Bundles script to run tests on VSCode host + mocha runner that will be invoked from within VSCode host await esbuild.build({ - entryPoints: [ - // Runs mocha runner on VSCode host using runTests from @vscode/test-electron - "src/test-runner/runTestOnVSCodeHost.ts", - - // Runs the bundled tests using Mocha class - "src/test-runner/mochaRunner.ts", - ], - bundle: true, - outdir: "out/test-runner", - - external: [ - "vscode", - - // Its important to externalize mocha, otherwise mocha seems to be not initialized properly when running tests - // Example warning by esbuild when mocha is not externalized: - // [WARNING] "./reporters/parallel-buffered" should be marked as external for use with "require.resolve" [require-resolve-not-external] - "mocha", - ], - format: "cjs", - platform: "node", - sourcemap: true, - loader: { - // eslint-disable-next-line @typescript-eslint/naming-convention - ".node": "file", - }, + entryPoints: [ + // Runs mocha runner on VSCode host using runTests from @vscode/test-electron + "src/test/runner/runTestOnVSCodeHost.ts", + + // Runs the bundled tests using Mocha class + "src/test/runner/mochaRunner.ts", + ], + bundle: true, + outdir: "out", + + external: [ + "vscode", + + // Its important to externalize mocha, otherwise mocha seems to be not initialized properly when running tests + // Example warning by esbuild when mocha is not externalized: + // [WARNING] "./reporters/parallel-buffered" should be marked as external for use with "require.resolve" [require-resolve-not-external] + "mocha", + ], + format: "cjs", + platform: "node", + sourcemap: true, + loader: { + // eslint-disable-next-line @typescript-eslint/naming-convention + ".node": "file", + }, }); /** @@ -41,21 +43,25 @@ await esbuild.build({ * Rather than figuring out a combination of tsconfig.json that would work, I decided to bundle tests instead. */ await esbuild.build({ - // Tests can be added anywhere in src folder - entryPoints: glob.sync("src/**/*.test.ts"), - bundle: true, - outdir: "out/test-suites", - external: [ - "vscode", - - // Its important to externalize mocha, otherwise mocha seems to be not initialized properly when running tests - "mocha", - ], - format: "cjs", - platform: "node", - sourcemap: true, - loader: { - // eslint-disable-next-line @typescript-eslint/naming-convention - ".node": "file", - }, + // Tests can be added anywhere in src folder + entryPoints: glob.sync("src/**/*.test.ts"), + bundle: true, + outdir: "out", + external: [ + "vscode", + + // Its important to externalize mocha, otherwise mocha seems to be not initialized properly when running tests + "mocha", + ], + format: "cjs", + platform: "node", + sourcemap: true, + loader: { + // eslint-disable-next-line @typescript-eslint/naming-convention + ".node": "file", + }, + // To allow import.meta.path for transformers.js + // https://github.com/evanw/esbuild/issues/1492#issuecomment-893144483 + inject: ["./scripts/importMetaUrl.js"], + define: { "import.meta.url": "importMetaUrl" }, }); diff --git a/extensions/intellij/src/main/resources/webview/continue-dev-square.png b/extensions/vscode/gui/continue-dev-square.png similarity index 100% rename from extensions/intellij/src/main/resources/webview/continue-dev-square.png rename to extensions/vscode/gui/continue-dev-square.png diff --git a/extensions/intellij/src/main/resources/webview/continue.gif b/extensions/vscode/gui/continue.gif similarity index 100% rename from extensions/intellij/src/main/resources/webview/continue.gif rename to extensions/vscode/gui/continue.gif diff --git a/extensions/vscode/gui/index.html b/extensions/vscode/gui/index.html new file mode 100644 index 000000000..c8053de74 --- /dev/null +++ b/extensions/vscode/gui/index.html @@ -0,0 +1,15 @@ + + + + + + + Continue + + + + +
+ + + diff --git a/extensions/vscode/gui/logos/anthropic.png b/extensions/vscode/gui/logos/anthropic.png new file mode 100644 index 000000000..9adf1b71b Binary files /dev/null and b/extensions/vscode/gui/logos/anthropic.png differ diff --git a/extensions/vscode/gui/logos/google-palm.png b/extensions/vscode/gui/logos/google-palm.png new file mode 100644 index 000000000..0f9dc3451 Binary files /dev/null and b/extensions/vscode/gui/logos/google-palm.png differ diff --git a/extensions/vscode/gui/logos/hf.png b/extensions/vscode/gui/logos/hf.png new file mode 100644 index 000000000..49e2841dd Binary files /dev/null and b/extensions/vscode/gui/logos/hf.png differ diff --git a/extensions/vscode/gui/logos/llamacpp.png b/extensions/vscode/gui/logos/llamacpp.png new file mode 100644 index 000000000..119087b0e Binary files /dev/null and b/extensions/vscode/gui/logos/llamacpp.png differ diff --git a/extensions/vscode/gui/logos/lmstudio.png b/extensions/vscode/gui/logos/lmstudio.png new file mode 100644 index 000000000..b2b73591f Binary files /dev/null and b/extensions/vscode/gui/logos/lmstudio.png differ diff --git a/extensions/vscode/gui/logos/meta.png b/extensions/vscode/gui/logos/meta.png new file mode 100644 index 000000000..84a15698e Binary files /dev/null and b/extensions/vscode/gui/logos/meta.png differ diff --git a/extensions/vscode/gui/logos/mistral.png b/extensions/vscode/gui/logos/mistral.png new file mode 100644 index 000000000..0f535f84e Binary files /dev/null and b/extensions/vscode/gui/logos/mistral.png differ diff --git a/extensions/vscode/gui/logos/ollama.png b/extensions/vscode/gui/logos/ollama.png new file mode 100644 index 000000000..56ef23f4a Binary files /dev/null and b/extensions/vscode/gui/logos/ollama.png differ diff --git a/extensions/vscode/gui/logos/openai.png b/extensions/vscode/gui/logos/openai.png new file mode 100644 index 000000000..e24b90113 Binary files /dev/null and b/extensions/vscode/gui/logos/openai.png differ diff --git a/extensions/vscode/gui/logos/replicate.png b/extensions/vscode/gui/logos/replicate.png new file mode 100644 index 000000000..f71504f59 Binary files /dev/null and b/extensions/vscode/gui/logos/replicate.png differ diff --git a/extensions/vscode/gui/logos/together.png b/extensions/vscode/gui/logos/together.png new file mode 100644 index 000000000..e989afdde Binary files /dev/null and b/extensions/vscode/gui/logos/together.png differ diff --git a/extensions/vscode/gui/logos/wizardlm.png b/extensions/vscode/gui/logos/wizardlm.png new file mode 100644 index 000000000..a420cf038 Binary files /dev/null and b/extensions/vscode/gui/logos/wizardlm.png differ diff --git a/extensions/intellij/src/main/resources/webview/play_button.png b/extensions/vscode/gui/play_button.png similarity index 100% rename from extensions/intellij/src/main/resources/webview/play_button.png rename to extensions/vscode/gui/play_button.png diff --git a/extensions/vscode/manual-testing-sandbox/example.ipynb b/extensions/vscode/manual-testing-sandbox/example.ipynb new file mode 100644 index 000000000..0586244a0 --- /dev/null +++ b/extensions/vscode/manual-testing-sandbox/example.ipynb @@ -0,0 +1,34 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "def sort(array):\n", + " return sorted(array)\n", + "\n", + "def reverse(array):\n", + " return array[::-1]\n", + "\n", + "for i in range(10):\n", + " print(i)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/extensions/vscode/media/readme.png b/extensions/vscode/media/readme.png new file mode 100644 index 000000000..64f65b845 Binary files /dev/null and b/extensions/vscode/media/readme.png differ diff --git a/extensions/vscode/media/sidebar-icon.png b/extensions/vscode/media/sidebar-icon.png new file mode 100644 index 000000000..4f41d9dfd Binary files /dev/null and b/extensions/vscode/media/sidebar-icon.png differ diff --git a/extensions/vscode/models/all-MiniLM-L6-v2/config.json b/extensions/vscode/models/all-MiniLM-L6-v2/config.json index 72147e4ff..dd6c563f2 100644 --- a/extensions/vscode/models/all-MiniLM-L6-v2/config.json +++ b/extensions/vscode/models/all-MiniLM-L6-v2/config.json @@ -1,8 +1,13 @@ { +<<<<<<< HEAD "_name_or_path": "sentence-transformers/all-MiniLM-L6-v2", "architectures": [ "BertModel" ], +======= + "_name_or_path": "all-MiniLM-L6-v2", + "architectures": ["BertModel"], +>>>>>>> v0.9.184-vscode "attention_probs_dropout_prob": 0.1, "classifier_dropout": null, "gradient_checkpointing": false, diff --git a/extensions/vscode/package-lock.json b/extensions/vscode/package-lock.json index 8dfd89f81..636150e65 100644 --- a/extensions/vscode/package-lock.json +++ b/extensions/vscode/package-lock.json @@ -1,14901 +1,12584 @@ { - "name": "ahrefs-continue", - "version": "1.1.11", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "ahrefs-continue", - "version": "1.1.11", - "dependencies": { - "@electron/rebuild": "^3.2.10", - "@reduxjs/toolkit": "^1.9.3", - "@types/jest": "^29.5.11", - "@types/node-fetch": "^2.6.11", - "@vscode/ripgrep": "^1.15.9", - "@vscode/test-electron": "^2.3.9", - "axios": "^1.2.5", - "core": "file:../../core", - "cors": "^2.8.5", - "dbinfoz": "^0.1.4", - "downshift": "^7.6.0", - "express": "^4.18.2", - "fkill": "^8.1.0", - "follow-redirects": "^1.15.4", - "handlebars": "^4.7.8", - "highlight.js": "^11.7.0", - "highlightable": "^1.3.0-beta.0", - "http-proxy": "^1.18.1", - "http-proxy-agent": "^7.0.0", - "http-proxy-middleware": "^2.0.6", - "https-proxy-agent": "^7.0.2", - "ignore": "^5.3.0", - "jest": "^29.7.0", - "jsdom": "^24.0.0", - "mocha": "^10.3.0", - "monaco-editor": "^0.45.0", - "monaco-vscode-textmate-theme-converter": "^0.1.7", - "ncp": "^2.0.0", - "node-fetch": "^3.3.2", - "node-machine-id": "^1.1.12", - "posthog-node": "^3.1.2", - "react-markdown": "^8.0.7", - "react-redux": "^8.0.5", - "request": "^2.88.2", - "socket.io-client": "^4.7.2", - "strip-ansi": "^7.1.0", - "tailwindcss": "^3.3.2", - "undici": "^6.2.0", - "uuidv4": "^6.2.13", - "vectordb": "0.4.12", - "vscode-languageclient": "^8.0.2", - "ws": "^8.13.0", - "yarn": "^1.22.21" - }, - "devDependencies": { - "@nestjs/common": "^8.4.7", - "@openapitools/openapi-generator-cli": "^2.5.2", - "@types/cors": "^2.8.17", - "@types/express": "^4.17.21", - "@types/follow-redirects": "^1.14.4", - "@types/glob": "^8.0.0", - "@types/node": "16.x", - "@types/react-dom": "^18.2.4", - "@types/request": "^2.48.8", - "@types/vscode": "1.70", - "@types/ws": "^8.5.4", - "@typescript-eslint/eslint-plugin": "^5.45.0", - "@typescript-eslint/parser": "^5.45.0", - "@vscode/vsce": "^2.22.0", - "cargo-cp-artifact": "^0.1", - "esbuild": "0.17.19", - "eslint": "^8.28.0", - "glob": "^8.0.3", - "json-schema-to-typescript": "^12.0.0", - "ovsx": "^0.8.3", - "rimraf": "^5.0.5", - "typescript": "^5.3.3", - "vite": "^4.3.9", - "vsce": "^2.15.0" - }, - "engines": { - "node": ">=20.11.0", - "vscode": "^1.70.0" - } - }, - "../../core": { - "name": "@continuedev/core", - "version": "1.0.6", - "license": "Apache-2.0", - "dependencies": { - "@mozilla/readability": "^0.5.0", - "@octokit/rest": "^20.0.2", - "@types/jsdom": "^21.1.6", - "@types/mozilla-readability": "^0.2.1", - "@types/node-fetch": "^2.6.11", - "@xenova/transformers": "^2.14.0", - "adf-to-md": "^1.1.0", - "axios": "^1.6.7", - "cheerio": "^1.0.0-rc.12", - "commander": "^12.0.0", - "dbinfoz": "^0.1.4", - "dotenv": "^16.3.1", - "fastest-levenshtein": "^1.0.16", - "follow-redirects": "^1.15.5", - "handlebars": "^4.7.8", - "http-proxy-agent": "^7.0.1", - "https-proxy-agent": "^7.0.3", - "ignore": "^5.3.1", - "js-tiktoken": "^1.0.8", - "jsdom": "^24.0.0", - "llama-tokenizer-js": "^1.1.3", - "llm-code-highlighter": "^0.0.14", - "node-fetch": "^3.3.2", - "node-html-markdown": "^1.3.0", - "ollama": "^0.4.6", - "openai": "^4.20.1", - "pg": "^8.11.3", - "posthog-node": "^3.6.2", - "replicate": "^0.26.0", - "request": "^2.88.2", - "socket.io-client": "^4.7.3", - "sqlite": "^5.1.1", - "sqlite3": "^5.1.7", - "tree-sitter-wasms": "^0.1.6", - "uuid": "^9.0.1", - "vectordb": "0.4.12", - "web-tree-sitter": "^0.21.0" - }, - "devDependencies": { - "@google/generative-ai": "^0.11.4", - "@types/follow-redirects": "^1.14.4", - "@types/handlebars": "^4.1.0", - "@types/jest": "^29.5.11", - "@types/jquery": "^3.5.29", - "@types/mustache": "^4.2.5", - "@types/uuid": "^9.0.7", - "esbuild": "^0.19.11", - "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "vite-plugin-node": "^3.1.0" - }, - "engines": { - "node": ">=20.11.0" - } - }, - "node_modules/@75lb/deep-merge": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@75lb/deep-merge/-/deep-merge-1.1.1.tgz", - "integrity": "sha512-xvgv6pkMGBA6GwdyJbNAnDmfAIR/DfWhrj9jgWh3TY7gRm3KO46x/GPjRg6wJ0nOepwqrNxFfojebh0Df4h4Tw==", - "peer": true, - "dependencies": { - "lodash.assignwith": "^4.2.0", - "typical": "^7.1.1" - }, - "engines": { - "node": ">=12.17" - } - }, - "node_modules/@75lb/deep-merge/node_modules/typical": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/typical/-/typical-7.1.1.tgz", - "integrity": "sha512-T+tKVNs6Wu7IWiAce5BgMd7OZfNYUndHwc5MknN+UHOudi7sGZzuHdCadllRuqJ3fPtgFtIH9+lt9qRv6lmpfA==", - "peer": true, - "engines": { - "node": ">=12.17" - } - }, - "node_modules/@aashutoshrathi/word-wrap": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", - "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@alloc/quick-lru": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", - "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@ampproject/remapping": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", - "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@apache-arrow/ts": { - "version": "14.0.2", - "resolved": "https://registry.npmjs.org/@apache-arrow/ts/-/ts-14.0.2.tgz", - "integrity": "sha512-CtwAvLkK0CZv7xsYeCo91ml6PvlfzAmAJZkRYuz2GNBwfYufj5SVi0iuSMwIMkcU/szVwvLdzORSLa5PlF/2ug==", - "peer": true, - "dependencies": { - "@types/command-line-args": "5.2.0", - "@types/command-line-usage": "5.0.2", - "@types/node": "20.3.0", - "@types/pad-left": "2.1.1", - "command-line-args": "5.2.1", - "command-line-usage": "7.0.1", - "flatbuffers": "23.5.26", - "json-bignum": "^0.0.3", - "pad-left": "^2.1.0", - "tslib": "^2.5.3" - } - }, - "node_modules/@apache-arrow/ts/node_modules/@types/node": { - "version": "20.3.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.3.0.tgz", - "integrity": "sha512-cumHmIAf6On83X7yP+LrsEyUOf/YlociZelmpRYaGFydoaPdxdt80MAbu6vWerQT2COCp2nPvHdsbD7tHn/YlQ==", - "peer": true - }, - "node_modules/@azure/abort-controller": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-1.1.0.tgz", - "integrity": "sha512-TrRLIoSQVzfAJX9H1JeFjzAoDGcoK1IYX1UImfceTZpsyYfWr09Ss1aHW1y5TrrR3iq6RZLBwJ3E24uwPhwahw==", - "dev": true, - "dependencies": { - "tslib": "^2.2.0" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/@azure/core-auth": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/@azure/core-auth/-/core-auth-1.7.2.tgz", - "integrity": "sha512-Igm/S3fDYmnMq1uKS38Ae1/m37B3zigdlZw+kocwEhh5GjyKjPrXKO2J6rzpC1wAxrNil/jX9BJRqBshyjnF3g==", - "dev": true, - "dependencies": { - "@azure/abort-controller": "^2.0.0", - "@azure/core-util": "^1.1.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@azure/core-auth/node_modules/@azure/abort-controller": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-2.1.2.tgz", - "integrity": "sha512-nBrLsEWm4J2u5LpAPjxADTlq3trDgVZZXHNKabeXZtpq3d3AbN/KGO82R87rdDz5/lYB024rtEf10/q0urNgsA==", - "dev": true, - "dependencies": { - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@azure/core-client": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/@azure/core-client/-/core-client-1.9.2.tgz", - "integrity": "sha512-kRdry/rav3fUKHl/aDLd/pDLcB+4pOFwPPTVEExuMyaI5r+JBbMWqRbCY1pn5BniDaU3lRxO9eaQ1AmSMehl/w==", - "dev": true, - "dependencies": { - "@azure/abort-controller": "^2.0.0", - "@azure/core-auth": "^1.4.0", - "@azure/core-rest-pipeline": "^1.9.1", - "@azure/core-tracing": "^1.0.0", - "@azure/core-util": "^1.6.1", - "@azure/logger": "^1.0.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@azure/core-client/node_modules/@azure/abort-controller": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-2.1.2.tgz", - "integrity": "sha512-nBrLsEWm4J2u5LpAPjxADTlq3trDgVZZXHNKabeXZtpq3d3AbN/KGO82R87rdDz5/lYB024rtEf10/q0urNgsA==", - "dev": true, - "dependencies": { - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@azure/core-rest-pipeline": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/@azure/core-rest-pipeline/-/core-rest-pipeline-1.15.2.tgz", - "integrity": "sha512-BmWfpjc/QXc2ipHOh6LbUzp3ONCaa6xzIssTU0DwH9bbYNXJlGUL6tujx5TrbVd/QQknmS+vlQJGrCq2oL1gZA==", - "dev": true, - "dependencies": { - "@azure/abort-controller": "^2.0.0", - "@azure/core-auth": "^1.4.0", - "@azure/core-tracing": "^1.0.1", - "@azure/core-util": "^1.3.0", - "@azure/logger": "^1.0.0", - "http-proxy-agent": "^7.0.0", - "https-proxy-agent": "^7.0.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@azure/core-rest-pipeline/node_modules/@azure/abort-controller": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-2.1.2.tgz", - "integrity": "sha512-nBrLsEWm4J2u5LpAPjxADTlq3trDgVZZXHNKabeXZtpq3d3AbN/KGO82R87rdDz5/lYB024rtEf10/q0urNgsA==", - "dev": true, - "dependencies": { - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@azure/core-tracing": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@azure/core-tracing/-/core-tracing-1.1.2.tgz", - "integrity": "sha512-dawW9ifvWAWmUm9/h+/UQ2jrdvjCJ7VJEuCJ6XVNudzcOwm53BFZH4Q845vjfgoUAM8ZxokvVNxNxAITc502YA==", - "dev": true, - "dependencies": { - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@azure/core-util": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@azure/core-util/-/core-util-1.9.0.tgz", - "integrity": "sha512-AfalUQ1ZppaKuxPPMsFEUdX6GZPB3d9paR9d/TTL7Ow2De8cJaC7ibi7kWVlFAVPCYo31OcnGymc0R89DX8Oaw==", - "dev": true, - "dependencies": { - "@azure/abort-controller": "^2.0.0", - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@azure/core-util/node_modules/@azure/abort-controller": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-2.1.2.tgz", - "integrity": "sha512-nBrLsEWm4J2u5LpAPjxADTlq3trDgVZZXHNKabeXZtpq3d3AbN/KGO82R87rdDz5/lYB024rtEf10/q0urNgsA==", - "dev": true, - "dependencies": { - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@azure/identity": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@azure/identity/-/identity-4.1.0.tgz", - "integrity": "sha512-BhYkF8Xr2gXjyDxocm0pc9RI5J5a1jw8iW0dw6Bx95OGdYbuMyFZrrwNw4eYSqQ2BB6FZOqpJP3vjsAqRcvDhw==", - "dev": true, - "dependencies": { - "@azure/abort-controller": "^1.0.0", - "@azure/core-auth": "^1.5.0", - "@azure/core-client": "^1.4.0", - "@azure/core-rest-pipeline": "^1.1.0", - "@azure/core-tracing": "^1.0.0", - "@azure/core-util": "^1.3.0", - "@azure/logger": "^1.0.0", - "@azure/msal-browser": "^3.11.1", - "@azure/msal-node": "^2.6.6", - "events": "^3.0.0", - "jws": "^4.0.0", - "open": "^8.0.0", - "stoppable": "^1.1.0", - "tslib": "^2.2.0" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@azure/logger": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@azure/logger/-/logger-1.1.2.tgz", - "integrity": "sha512-l170uE7bsKpIU6B/giRc9i4NI0Mj+tANMMMxf7Zi/5cKzEqPayP7+X1WPrG7e+91JgY8N+7K7nF2WOi7iVhXvg==", - "dev": true, - "dependencies": { - "tslib": "^2.6.2" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@azure/msal-browser": { - "version": "3.13.0", - "resolved": "https://registry.npmjs.org/@azure/msal-browser/-/msal-browser-3.13.0.tgz", - "integrity": "sha512-fD906nmJei3yE7la6DZTdUtXKvpwzJURkfsiz9747Icv4pit77cegSm6prJTKLQ1fw4iiZzrrWwxnhMLrTf5gQ==", - "dev": true, - "dependencies": { - "@azure/msal-common": "14.9.0" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/@azure/msal-common": { - "version": "14.9.0", - "resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-14.9.0.tgz", - "integrity": "sha512-yzBPRlWPnTBeixxLNI3BBIgF5/bHpbhoRVuuDBnYjCyWRavaPUsKAHUDYLqpGkBLDciA6TCc6GOxN4/S3WiSxg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/@azure/msal-node": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/@azure/msal-node/-/msal-node-2.7.0.tgz", - "integrity": "sha512-wXD8LkUvHICeSWZydqg6o8Yvv+grlBEcmLGu+QEI4FcwFendbTEZrlSygnAXXSOCVaGAirWLchca35qrgpO6Jw==", - "dev": true, - "dependencies": { - "@azure/msal-common": "14.9.0", - "jsonwebtoken": "^9.0.0", - "uuid": "^8.3.0" - }, - "engines": { - "node": ">=16" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", - "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", - "dependencies": { - "@babel/highlight": "^7.23.4", - "chalk": "^2.4.2" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/code-frame/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/code-frame/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/code-frame/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/code-frame/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" - }, - "node_modules/@babel/code-frame/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/@babel/code-frame/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/code-frame/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz", - "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.0.tgz", - "integrity": "sha512-fQfkg0Gjkza3nf0c7/w6Xf34BW4YvzNfACRLmmb7XRLa6XHdR+K9AlJlxneFfWYf6uhOzuzZVTjF/8KfndZANw==", - "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.23.5", - "@babel/generator": "^7.23.6", - "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helpers": "^7.24.0", - "@babel/parser": "^7.24.0", - "@babel/template": "^7.24.0", - "@babel/traverse": "^7.24.0", - "@babel/types": "^7.24.0", - "convert-source-map": "^2.0.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.3", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/core/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/generator": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz", - "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==", - "dependencies": { - "@babel/types": "^7.23.6", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", - "jsesc": "^2.5.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", - "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", - "dependencies": { - "@babel/compat-data": "^7.23.5", - "@babel/helper-validator-option": "^7.23.5", - "browserslist": "^4.22.2", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/@babel/helper-compilation-targets/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-compilation-targets/node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" - }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", - "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", - "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", - "dependencies": { - "@babel/template": "^7.22.15", - "@babel/types": "^7.23.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", - "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", - "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", - "dependencies": { - "@babel/types": "^7.22.15" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", - "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", - "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-simple-access": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/helper-validator-identifier": "^7.22.20" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", - "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-simple-access": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", - "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", - "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", - "dependencies": { - "@babel/types": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-string-parser": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", - "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", - "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.0.tgz", - "integrity": "sha512-ulDZdc0Aj5uLc5nETsa7EPx2L7rM0YJM8r7ck7U73AXi7qOV44IHHRAYZHY6iU1rr3C5N4NtTmMRUJP6kwCWeA==", - "dependencies": { - "@babel/template": "^7.24.0", - "@babel/traverse": "^7.24.0", - "@babel/types": "^7.24.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", - "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", - "dependencies": { - "@babel/helper-validator-identifier": "^7.22.20", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/highlight/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" - }, - "node_modules/@babel/highlight/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/@babel/highlight/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/parser": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.0.tgz", - "integrity": "sha512-QuP/FxEAzMSjXygs8v4N9dvdXzEHN4W1oF3PxuWAtPo08UdM17u89RDMgjLn/mlc56iM0HlLmVkO/wgR+rDgHg==", - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", - "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz", - "integrity": "sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz", - "integrity": "sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/runtime": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.0.tgz", - "integrity": "sha512-Chk32uHMg6TnQdvw2e9IlqPpFX/6NLuK0Ys2PqLb7/gL5uFn9mXvK715FGLlOLQrcO4qIkNHkvPGktzzXexsFw==", - "dependencies": { - "regenerator-runtime": "^0.14.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/template": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz", - "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", - "dependencies": { - "@babel/code-frame": "^7.23.5", - "@babel/parser": "^7.24.0", - "@babel/types": "^7.24.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.0.tgz", - "integrity": "sha512-HfuJlI8qq3dEDmNU5ChzzpZRWq+oxCZQyMzIMEqLho+AQnhMnKQUzH6ydo3RBl/YjPCuk68Y6s0Gx0AeyULiWw==", - "dependencies": { - "@babel/code-frame": "^7.23.5", - "@babel/generator": "^7.23.6", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.24.0", - "@babel/types": "^7.24.0", - "debug": "^4.3.1", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse/node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/types": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz", - "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==", - "dependencies": { - "@babel/helper-string-parser": "^7.23.4", - "@babel/helper-validator-identifier": "^7.22.20", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@bcherny/json-schema-ref-parser": { - "version": "10.0.5-fork", - "resolved": "https://registry.npmjs.org/@bcherny/json-schema-ref-parser/-/json-schema-ref-parser-10.0.5-fork.tgz", - "integrity": "sha512-E/jKbPoca1tfUPj3iSbitDZTGnq6FUFjkH6L8U2oDwSuwK1WhnnVtCG7oFOTg/DDnyoXbQYUiUiGOibHqaGVnw==", - "dev": true, - "dependencies": { - "@jsdevtools/ono": "^7.1.3", - "@types/json-schema": "^7.0.6", - "call-me-maybe": "^1.0.1", - "js-yaml": "^4.1.0" - }, - "engines": { - "node": ">= 16" - }, - "funding": { - "url": "https://github.com/sponsors/philsturgeon" - } - }, - "node_modules/@bcoe/v8-coverage": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==" - }, - "node_modules/@electron/rebuild": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/@electron/rebuild/-/rebuild-3.6.0.tgz", - "integrity": "sha512-zF4x3QupRU3uNGaP5X1wjpmcjfw1H87kyqZ00Tc3HvriV+4gmOGuvQjGNkrJuXdsApssdNyVwLsy+TaeTGGcVw==", - "dependencies": { - "@malept/cross-spawn-promise": "^2.0.0", - "chalk": "^4.0.0", - "debug": "^4.1.1", - "detect-libc": "^2.0.1", - "fs-extra": "^10.0.0", - "got": "^11.7.0", - "node-abi": "^3.45.0", - "node-api-version": "^0.2.0", - "node-gyp": "^9.0.0", - "ora": "^5.1.0", - "read-binary-file-arch": "^1.0.6", - "semver": "^7.3.5", - "tar": "^6.0.5", - "yargs": "^17.0.1" - }, - "bin": { - "electron-rebuild": "lib/cli.js" - }, - "engines": { - "node": ">=12.13.0" - } - }, - "node_modules/@esbuild/android-arm": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.19.tgz", - "integrity": "sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-arm64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.19.tgz", - "integrity": "sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.19.tgz", - "integrity": "sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.19.tgz", - "integrity": "sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz", - "integrity": "sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.19.tgz", - "integrity": "sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.19.tgz", - "integrity": "sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.19.tgz", - "integrity": "sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz", - "integrity": "sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.19.tgz", - "integrity": "sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz", - "integrity": "sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==", - "cpu": [ - "loong64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.19.tgz", - "integrity": "sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==", - "cpu": [ - "mips64el" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.19.tgz", - "integrity": "sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.19.tgz", - "integrity": "sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==", - "cpu": [ - "riscv64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.19.tgz", - "integrity": "sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==", - "cpu": [ - "s390x" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz", - "integrity": "sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.19.tgz", - "integrity": "sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.19.tgz", - "integrity": "sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.19.tgz", - "integrity": "sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz", - "integrity": "sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.19.tgz", - "integrity": "sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz", - "integrity": "sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", - "dev": true, - "dependencies": { - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" - } - }, - "node_modules/@eslint-community/regexpp": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", - "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", - "dev": true, - "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" - } - }, - "node_modules/@eslint/eslintrc": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", - "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", - "dev": true, - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@eslint/js": { - "version": "8.57.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", - "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/@gar/promisify": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", - "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==" - }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.11.14", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", - "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", - "dev": true, - "dependencies": { - "@humanwhocodes/object-schema": "^2.0.2", - "debug": "^4.3.1", - "minimatch": "^3.0.5" - }, - "engines": { - "node": ">=10.10.0" - } - }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true, - "engines": { - "node": ">=12.22" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz", - "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==", - "dev": true - }, - "node_modules/@isaacs/cliui": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", - "dependencies": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@isaacs/cliui/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@isaacs/cliui/node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" - }, - "node_modules/@isaacs/cliui/node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", - "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", - "dependencies": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/load-nyc-config/node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" - }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/console": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", - "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", - "dependencies": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0", - "slash": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/core": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", - "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", - "dependencies": { - "@jest/console": "^29.7.0", - "@jest/reporters": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-changed-files": "^29.7.0", - "jest-config": "^29.7.0", - "jest-haste-map": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.7.0", - "jest-resolve-dependencies": "^29.7.0", - "jest-runner": "^29.7.0", - "jest-runtime": "^29.7.0", - "jest-snapshot": "^29.7.0", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "jest-watcher": "^29.7.0", - "micromatch": "^4.0.4", - "pretty-format": "^29.7.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/@jest/core/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/core/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/environment": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", - "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", - "dependencies": { - "@jest/fake-timers": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "jest-mock": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/expect": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", - "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", - "dependencies": { - "expect": "^29.7.0", - "jest-snapshot": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/expect-utils": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", - "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", - "dependencies": { - "jest-get-type": "^29.6.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/fake-timers": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", - "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", - "dependencies": { - "@jest/types": "^29.6.3", - "@sinonjs/fake-timers": "^10.0.2", - "@types/node": "*", - "jest-message-util": "^29.7.0", - "jest-mock": "^29.7.0", - "jest-util": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/globals": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", - "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", - "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/expect": "^29.7.0", - "@jest/types": "^29.6.3", - "jest-mock": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/reporters": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", - "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", - "dependencies": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@jridgewell/trace-mapping": "^0.3.18", - "@types/node": "*", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^6.0.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.1.3", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0", - "jest-worker": "^29.7.0", - "slash": "^3.0.0", - "string-length": "^4.0.1", - "strip-ansi": "^6.0.0", - "v8-to-istanbul": "^9.0.1" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/@jest/reporters/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/reporters/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@jest/reporters/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/schemas": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", - "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", - "dependencies": { - "@sinclair/typebox": "^0.27.8" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/source-map": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", - "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.18", - "callsites": "^3.0.0", - "graceful-fs": "^4.2.9" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/test-result": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", - "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", - "dependencies": { - "@jest/console": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/test-sequencer": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", - "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", - "dependencies": { - "@jest/test-result": "^29.7.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "slash": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/transform": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", - "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", - "dependencies": { - "@babel/core": "^7.11.6", - "@jest/types": "^29.6.3", - "@jridgewell/trace-mapping": "^0.3.18", - "babel-plugin-istanbul": "^6.1.1", - "chalk": "^4.0.0", - "convert-source-map": "^2.0.0", - "fast-json-stable-stringify": "^2.1.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "jest-regex-util": "^29.6.3", - "jest-util": "^29.7.0", - "micromatch": "^4.0.4", - "pirates": "^4.0.4", - "slash": "^3.0.0", - "write-file-atomic": "^4.0.2" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/types": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", - "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", - "dependencies": { - "@jest/schemas": "^29.6.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^17.0.8", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", - "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", - "dependencies": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.25", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", - "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", - "dependencies": { - "@jridgewell/resolve-uri": "^3.1.0", - "@jridgewell/sourcemap-codec": "^1.4.14" - } - }, - "node_modules/@jsdevtools/ono": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/@jsdevtools/ono/-/ono-7.1.3.tgz", - "integrity": "sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==", - "dev": true - }, - "node_modules/@lancedb/vectordb-darwin-arm64": { - "version": "0.4.12", - "resolved": "https://registry.npmjs.org/@lancedb/vectordb-darwin-arm64/-/vectordb-darwin-arm64-0.4.12.tgz", - "integrity": "sha512-38/rkJRlWXkPWXuj9onzvbrhnIWcIUQjgEp5G9v5ixPosBowm7A4j8e2Q8CJMsVSNcVX2JLqwWVldiWegZFuYw==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@lancedb/vectordb-darwin-x64": { - "version": "0.4.12", - "resolved": "https://registry.npmjs.org/@lancedb/vectordb-darwin-x64/-/vectordb-darwin-x64-0.4.12.tgz", - "integrity": "sha512-psE48dztyO450hXWdv9Rl9aayM2HQ1uF9wErfC0gKmDUh1N0NdVq2viDuFpZxnmCis/nvGwKlYiYT9OnYNCJ9g==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@lancedb/vectordb-linux-arm64-gnu": { - "version": "0.4.12", - "resolved": "https://registry.npmjs.org/@lancedb/vectordb-linux-arm64-gnu/-/vectordb-linux-arm64-gnu-0.4.12.tgz", - "integrity": "sha512-xwkgF6MiF5aAdG9JG8v4ke652YxUJrhs9z4OrsEfrENnvsIQd2C5UyKMepVLdvij4BI/XPFRFWXdjPvP7S9rTA==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@lancedb/vectordb-linux-x64-gnu": { - "version": "0.4.12", - "resolved": "https://registry.npmjs.org/@lancedb/vectordb-linux-x64-gnu/-/vectordb-linux-x64-gnu-0.4.12.tgz", - "integrity": "sha512-gJqYR0aymrS+C60xc4EQPzmQ5/69XfeFv2ofBvAj7qW+c6BcnoAcfVl+7s1IrcWeGz251sm5cD5Lx4AzJd89dA==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@lancedb/vectordb-win32-x64-msvc": { - "version": "0.4.12", - "resolved": "https://registry.npmjs.org/@lancedb/vectordb-win32-x64-msvc/-/vectordb-win32-x64-msvc-0.4.12.tgz", - "integrity": "sha512-LhCzpyEeBUyO6L2fuVqeP3mW8kYDryyU9PNqcM01m88sZB1Do6AlwiM+GjPRQ0SpzD0LK9oxQqSmJrdcNGqjbw==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@lukeed/csprng": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@lukeed/csprng/-/csprng-1.1.0.tgz", - "integrity": "sha512-Z7C/xXCiGWsg0KuKsHTKJxbWhpI3Vs5GwLfOean7MGyVFGqdRgBbAjOCh6u4bbjPc/8MJ2pZmK/0DLdCbivLDA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@malept/cross-spawn-promise": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@malept/cross-spawn-promise/-/cross-spawn-promise-2.0.0.tgz", - "integrity": "sha512-1DpKU0Z5ThltBwjNySMC14g0CkbyhCaz9FkhxqNsZI6uAPJXFS8cMXlBKo26FJ8ZuW6S9GCMcR9IO5k2X5/9Fg==", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/malept" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/subscription/pkg/npm-.malept-cross-spawn-promise?utm_medium=referral&utm_source=npm_fund" - } - ], - "dependencies": { - "cross-spawn": "^7.0.1" - }, - "engines": { - "node": ">= 12.13.0" - } - }, - "node_modules/@neon-rs/load": { - "version": "0.0.74", - "resolved": "https://registry.npmjs.org/@neon-rs/load/-/load-0.0.74.tgz", - "integrity": "sha512-/cPZD907UNz55yrc/ud4wDgQKtU1TvkD9jeqZWG6J4IMmZkp6zgjkQcKA8UvpkZlcpPHvc8J17sGzLFbP/LUYg==" - }, - "node_modules/@nestjs/axios": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@nestjs/axios/-/axios-3.0.1.tgz", - "integrity": "sha512-VlOZhAGDmOoFdsmewn8AyClAdGpKXQQaY1+3PGB+g6ceurGIdTxZgRX3VXc1T6Zs60PedWjg3A82TDOB05mrzQ==", - "dev": true, - "peerDependencies": { - "@nestjs/common": "^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0", - "axios": "^1.3.1", - "reflect-metadata": "^0.1.12", - "rxjs": "^6.0.0 || ^7.0.0" - } - }, - "node_modules/@nestjs/common": { - "version": "8.4.7", - "resolved": "https://registry.npmjs.org/@nestjs/common/-/common-8.4.7.tgz", - "integrity": "sha512-m/YsbcBal+gA5CFrDpqXqsSfylo+DIQrkFY3qhVIltsYRfu8ct8J9pqsTO6OPf3mvqdOpFGrV5sBjoyAzOBvsw==", - "dev": true, - "dependencies": { - "axios": "0.27.2", - "iterare": "1.2.1", - "tslib": "2.4.0", - "uuid": "8.3.2" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/nest" - }, - "peerDependencies": { - "cache-manager": "*", - "class-transformer": "*", - "class-validator": "*", - "reflect-metadata": "^0.1.12", - "rxjs": "^7.1.0" - }, - "peerDependenciesMeta": { - "cache-manager": { - "optional": true - }, - "class-transformer": { - "optional": true - }, - "class-validator": { - "optional": true - } - } - }, - "node_modules/@nestjs/common/node_modules/axios": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", - "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", - "dev": true, - "dependencies": { - "follow-redirects": "^1.14.9", - "form-data": "^4.0.0" - } - }, - "node_modules/@nestjs/common/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", - "dev": true - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@npmcli/fs": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.2.tgz", - "integrity": "sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==", - "dependencies": { - "@gar/promisify": "^1.1.3", - "semver": "^7.3.5" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/@npmcli/move-file": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-2.0.1.tgz", - "integrity": "sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==", - "deprecated": "This functionality has been moved to @npmcli/fs", - "dependencies": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/@npmcli/move-file/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@npmcli/move-file/node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@nuxtjs/opencollective": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@nuxtjs/opencollective/-/opencollective-0.3.2.tgz", - "integrity": "sha512-um0xL3fO7Mf4fDxcqx9KryrB7zgRM5JSlvGN5AGkP6JLM5XEKyjeAiPbNxdXVXQ16isuAhYpvP88NgL2BGd6aA==", - "dev": true, - "dependencies": { - "chalk": "^4.1.0", - "consola": "^2.15.0", - "node-fetch": "^2.6.1" - }, - "bin": { - "opencollective": "bin/opencollective.js" - }, - "engines": { - "node": ">=8.0.0", - "npm": ">=5.0.0" - } - }, - "node_modules/@nuxtjs/opencollective/node_modules/node-fetch": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", - "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", - "dev": true, - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/@nuxtjs/opencollective/node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "dev": true - }, - "node_modules/@nuxtjs/opencollective/node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "dev": true - }, - "node_modules/@nuxtjs/opencollective/node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dev": true, - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "node_modules/@openapitools/openapi-generator-cli": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/@openapitools/openapi-generator-cli/-/openapi-generator-cli-2.11.0.tgz", - "integrity": "sha512-oqTNvFARvhztEgMHoOvdwx148MM89/Ersa8KZTZxMVtLXCynIDyTqWnZqvCsBUZDc2Bl+N8pT6XWbLkz3JVh0w==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "@nestjs/axios": "3.0.1", - "@nestjs/common": "10.3.0", - "@nestjs/core": "10.3.0", - "@nuxtjs/opencollective": "0.3.2", - "axios": "1.6.5", - "chalk": "4.1.2", - "commander": "8.3.0", - "compare-versions": "4.1.4", - "concurrently": "6.5.1", - "console.table": "0.10.0", - "fs-extra": "10.1.0", - "glob": "7.2.3", - "inquirer": "8.2.6", - "lodash": "4.17.21", - "reflect-metadata": "0.1.13", - "rxjs": "7.8.1", - "tslib": "2.6.2" - }, - "bin": { - "openapi-generator-cli": "main.js" - }, - "engines": { - "node": ">=10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/openapi_generator" - } - }, - "node_modules/@openapitools/openapi-generator-cli/node_modules/@nestjs/common": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/@nestjs/common/-/common-10.3.0.tgz", - "integrity": "sha512-DGv34UHsZBxCM3H5QGE2XE/+oLJzz5+714JQjBhjD9VccFlQs3LRxo/epso4l7nJIiNlZkPyIUC8WzfU/5RTsQ==", - "dev": true, - "dependencies": { - "iterare": "1.2.1", - "tslib": "2.6.2", - "uid": "2.0.2" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/nest" - }, - "peerDependencies": { - "class-transformer": "*", - "class-validator": "*", - "reflect-metadata": "^0.1.12", - "rxjs": "^7.1.0" - }, - "peerDependenciesMeta": { - "class-transformer": { - "optional": true - }, - "class-validator": { - "optional": true - } - } - }, - "node_modules/@openapitools/openapi-generator-cli/node_modules/@nestjs/core": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/@nestjs/core/-/core-10.3.0.tgz", - "integrity": "sha512-N06P5ncknW/Pm8bj964WvLIZn2gNhHliCBoAO1LeBvNImYkecqKcrmLbY49Fa1rmMfEM3MuBHeDys3edeuYAOA==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "@nuxtjs/opencollective": "0.3.2", - "fast-safe-stringify": "2.1.1", - "iterare": "1.2.1", - "path-to-regexp": "3.2.0", - "tslib": "2.6.2", - "uid": "2.0.2" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/nest" - }, - "peerDependencies": { - "@nestjs/common": "^10.0.0", - "@nestjs/microservices": "^10.0.0", - "@nestjs/platform-express": "^10.0.0", - "@nestjs/websockets": "^10.0.0", - "reflect-metadata": "^0.1.12", - "rxjs": "^7.1.0" - }, - "peerDependenciesMeta": { - "@nestjs/microservices": { - "optional": true - }, - "@nestjs/platform-express": { - "optional": true - }, - "@nestjs/websockets": { - "optional": true - } - } - }, - "node_modules/@openapitools/openapi-generator-cli/node_modules/axios": { - "version": "1.6.5", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.5.tgz", - "integrity": "sha512-Ii012v05KEVuUoFWmMW/UQv9aRIc3ZwkWDcM+h5Il8izZCtRVpDUfwpoFf7eOtajT3QiGR4yDUx7lPqHJULgbg==", - "dev": true, - "dependencies": { - "follow-redirects": "^1.15.4", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" - } - }, - "node_modules/@openapitools/openapi-generator-cli/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@openapitools/openapi-generator-cli/node_modules/path-to-regexp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-3.2.0.tgz", - "integrity": "sha512-jczvQbCUS7XmS7o+y1aEO9OBVFeZBQ1MDSEqmO7xSoPgOPoowY/SxLpZ6Vh97/8qHZOteiCKb7gkG9gA2ZUxJA==", - "dev": true - }, - "node_modules/@openapitools/openapi-generator-cli/node_modules/reflect-metadata": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", - "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==", - "dev": true - }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "optional": true, - "engines": { - "node": ">=14" - } - }, - "node_modules/@reduxjs/toolkit": { - "version": "1.9.7", - "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-1.9.7.tgz", - "integrity": "sha512-t7v8ZPxhhKgOKtU+uyJT13lu4vL7az5aFi4IdoDs/eS548edn2M8Ik9h8fxgvMjGoAUVFSt6ZC1P5cWmQ014QQ==", - "dependencies": { - "immer": "^9.0.21", - "redux": "^4.2.1", - "redux-thunk": "^2.4.2", - "reselect": "^4.1.8" - }, - "peerDependencies": { - "react": "^16.9.0 || ^17.0.0 || ^18", - "react-redux": "^7.2.1 || ^8.0.2" - }, - "peerDependenciesMeta": { - "react": { - "optional": true - }, - "react-redux": { - "optional": true - } - } - }, - "node_modules/@sinclair/typebox": { - "version": "0.27.8", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", - "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==" - }, - "node_modules/@sindresorhus/is": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", - "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/is?sponsor=1" - } - }, - "node_modules/@sinonjs/commons": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz", - "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", - "dependencies": { - "type-detect": "4.0.8" - } - }, - "node_modules/@sinonjs/fake-timers": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", - "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", - "dependencies": { - "@sinonjs/commons": "^3.0.0" - } - }, - "node_modules/@socket.io/component-emitter": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz", - "integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==" - }, - "node_modules/@szmarczak/http-timer": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", - "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", - "dependencies": { - "defer-to-connect": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", - "engines": { - "node": ">= 6" - } - }, - "node_modules/@types/babel__core": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", - "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", - "dependencies": { - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "node_modules/@types/babel__generator": { - "version": "7.6.8", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", - "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", - "dependencies": { - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__template": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", - "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", - "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__traverse": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.5.tgz", - "integrity": "sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==", - "dependencies": { - "@babel/types": "^7.20.7" - } - }, - "node_modules/@types/body-parser": { - "version": "1.19.5", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", - "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", - "devOptional": true, - "dependencies": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "node_modules/@types/cacheable-request": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz", - "integrity": "sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==", - "dependencies": { - "@types/http-cache-semantics": "*", - "@types/keyv": "^3.1.4", - "@types/node": "*", - "@types/responselike": "^1.0.0" - } - }, - "node_modules/@types/caseless": { - "version": "0.12.5", - "resolved": "https://registry.npmjs.org/@types/caseless/-/caseless-0.12.5.tgz", - "integrity": "sha512-hWtVTC2q7hc7xZ/RLbxapMvDMgUnDvKvMOpKal4DrMyfGBUfB1oKaZlIRr6mJL+If3bAP6sV/QneGzF6tJjZDg==", - "dev": true - }, - "node_modules/@types/command-line-args": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@types/command-line-args/-/command-line-args-5.2.0.tgz", - "integrity": "sha512-UuKzKpJJ/Ief6ufIaIzr3A/0XnluX7RvFgwkV89Yzvm77wCh1kFaFmqN8XEnGcN62EuHdedQjEMb8mYxFLGPyA==", - "peer": true - }, - "node_modules/@types/command-line-usage": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@types/command-line-usage/-/command-line-usage-5.0.2.tgz", - "integrity": "sha512-n7RlEEJ+4x4TS7ZQddTmNSxP+zziEG0TNsMfiRIxcIVXt71ENJ9ojeXmGO3wPoTdn7pJcU2xc3CJYMktNT6DPg==", - "peer": true - }, - "node_modules/@types/connect": { - "version": "3.4.38", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", - "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", - "devOptional": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/cors": { - "version": "2.8.17", - "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.17.tgz", - "integrity": "sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/debug": { - "version": "4.1.12", - "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", - "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", - "dependencies": { - "@types/ms": "*" - } - }, - "node_modules/@types/express": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz", - "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==", - "devOptional": true, - "dependencies": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.33", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "node_modules/@types/express-serve-static-core": { - "version": "4.17.43", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.43.tgz", - "integrity": "sha512-oaYtiBirUOPQGSWNGPWnzyAFJ0BP3cwvN4oWZQY+zUBwpVIGsKUkpBpSztp74drYcjavs7SKFZ4DX1V2QeN8rg==", - "devOptional": true, - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*", - "@types/send": "*" - } - }, - "node_modules/@types/follow-redirects": { - "version": "1.14.4", - "resolved": "https://registry.npmjs.org/@types/follow-redirects/-/follow-redirects-1.14.4.tgz", - "integrity": "sha512-GWXfsD0Jc1RWiFmMuMFCpXMzi9L7oPDVwxUnZdg89kDNnqsRfUKXEtUYtA98A6lig1WXH/CYY/fvPW9HuN5fTA==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w==", - "dev": true, - "dependencies": { - "@types/minimatch": "^5.1.2", - "@types/node": "*" - } - }, - "node_modules/@types/graceful-fs": { - "version": "4.1.9", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", - "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/hast": { - "version": "2.3.10", - "resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.10.tgz", - "integrity": "sha512-McWspRw8xx8J9HurkVBfYj0xKoE25tOFlHGdx4MJ5xORQrMGZNqJhVQWaIbm6Oyla5kYOXtDiopzKRJzEOkwJw==", - "dependencies": { - "@types/unist": "^2" - } - }, - "node_modules/@types/hoist-non-react-statics": { - "version": "3.3.5", - "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.5.tgz", - "integrity": "sha512-SbcrWzkKBw2cdwRTwQAswfpB9g9LJWfjtUeW/jvNwbhC8cpmmNYVePa+ncbUe0rGTQ7G3Ff6mYUN2VMfLVr+Sg==", - "dependencies": { - "@types/react": "*", - "hoist-non-react-statics": "^3.3.0" - } - }, - "node_modules/@types/http-cache-semantics": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz", - "integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==" - }, - "node_modules/@types/http-errors": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", - "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==", - "devOptional": true - }, - "node_modules/@types/http-proxy": { - "version": "1.17.14", - "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.14.tgz", - "integrity": "sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", - "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==" - }, - "node_modules/@types/istanbul-lib-report": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", - "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", - "dependencies": { - "@types/istanbul-lib-coverage": "*" - } - }, - "node_modules/@types/istanbul-reports": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", - "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", - "dependencies": { - "@types/istanbul-lib-report": "*" - } - }, - "node_modules/@types/jest": { - "version": "29.5.12", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.12.tgz", - "integrity": "sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw==", - "dependencies": { - "expect": "^29.0.0", - "pretty-format": "^29.0.0" - } - }, - "node_modules/@types/json-schema": { - "version": "7.0.15", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", - "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", - "dev": true - }, - "node_modules/@types/keyv": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz", - "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/lodash": { - "version": "4.14.202", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.202.tgz", - "integrity": "sha512-OvlIYQK9tNneDlS0VN54LLd5uiPCBOp7gS5Z0f1mjoJYBrtStzgmJBxONW3U6OZqdtNzZPmn9BS/7WI7BFFcFQ==", - "dev": true - }, - "node_modules/@types/mdast": { - "version": "3.0.15", - "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.15.tgz", - "integrity": "sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==", - "dependencies": { - "@types/unist": "^2" - } - }, - "node_modules/@types/mime": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", - "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", - "devOptional": true - }, - "node_modules/@types/minimatch": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz", - "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==", - "dev": true - }, - "node_modules/@types/ms": { - "version": "0.7.34", - "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.34.tgz", - "integrity": "sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==" - }, - "node_modules/@types/node": { - "version": "16.18.87", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.87.tgz", - "integrity": "sha512-+IzfhNirR/MDbXz6Om5eHV54D9mQlEMGag6AgEzlju0xH3M8baCXYwqQ6RKgGMpn9wSTx6Ltya/0y4Z8eSfdLw==" - }, - "node_modules/@types/node-fetch": { - "version": "2.6.11", - "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.11.tgz", - "integrity": "sha512-24xFj9R5+rfQJLRyM56qh+wnVSYhyXC2tkoBndtY0U+vubqNsYXGjufB2nn8Q6gt0LrARwL6UBtMCSVCwl4B1g==", - "dependencies": { - "@types/node": "*", - "form-data": "^4.0.0" - } - }, - "node_modules/@types/pad-left": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@types/pad-left/-/pad-left-2.1.1.tgz", - "integrity": "sha512-Xd22WCRBydkGSApl5Bw0PhAOHKSVjNL3E3AwzKaps96IMraPqy5BvZIsBVK6JLwdybUzjHnuWVwpDd0JjTfHXA==", - "peer": true - }, - "node_modules/@types/prettier": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.3.tgz", - "integrity": "sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==", - "dev": true - }, - "node_modules/@types/prop-types": { - "version": "15.7.11", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.11.tgz", - "integrity": "sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng==" - }, - "node_modules/@types/qs": { - "version": "6.9.12", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.12.tgz", - "integrity": "sha512-bZcOkJ6uWrL0Qb2NAWKa7TBU+mJHPzhx9jjLL1KHF+XpzEcR7EXHvjbHlGtR/IsP1vyPrehuS6XqkmaePy//mg==", - "devOptional": true - }, - "node_modules/@types/range-parser": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", - "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", - "devOptional": true - }, - "node_modules/@types/react": { - "version": "18.2.64", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.64.tgz", - "integrity": "sha512-MlmPvHgjj2p3vZaxbQgFUQFvD8QiZwACfGqEdDSWou5yISWxDQ4/74nCAwsUiX7UFLKZz3BbVSPj+YxeoGGCfg==", - "dependencies": { - "@types/prop-types": "*", - "@types/scheduler": "*", - "csstype": "^3.0.2" - } - }, - "node_modules/@types/react-dom": { - "version": "18.2.21", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.21.tgz", - "integrity": "sha512-gnvBA/21SA4xxqNXEwNiVcP0xSGHh/gi1VhWv9Bl46a0ItbTT5nFY+G9VSQpaG/8N/qdJpJ+vftQ4zflTtnjLw==", - "devOptional": true, - "dependencies": { - "@types/react": "*" - } - }, - "node_modules/@types/request": { - "version": "2.48.12", - "resolved": "https://registry.npmjs.org/@types/request/-/request-2.48.12.tgz", - "integrity": "sha512-G3sY+NpsA9jnwm0ixhAFQSJ3Q9JkpLZpJbI3GMv0mIAT0y3mRabYeINzal5WOChIiaTEGQYlHOKgkaM9EisWHw==", - "dev": true, - "dependencies": { - "@types/caseless": "*", - "@types/node": "*", - "@types/tough-cookie": "*", - "form-data": "^2.5.0" - } - }, - "node_modules/@types/request/node_modules/form-data": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz", - "integrity": "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==", - "dev": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 0.12" - } - }, - "node_modules/@types/responselike": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.3.tgz", - "integrity": "sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/scheduler": { - "version": "0.16.8", - "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.8.tgz", - "integrity": "sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==" - }, - "node_modules/@types/semver": { - "version": "7.5.8", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", - "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==", - "dev": true - }, - "node_modules/@types/send": { - "version": "0.17.4", - "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", - "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", - "devOptional": true, - "dependencies": { - "@types/mime": "^1", - "@types/node": "*" - } - }, - "node_modules/@types/serve-static": { - "version": "1.15.5", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.5.tgz", - "integrity": "sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==", - "devOptional": true, - "dependencies": { - "@types/http-errors": "*", - "@types/mime": "*", - "@types/node": "*" - } - }, - "node_modules/@types/stack-utils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", - "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==" - }, - "node_modules/@types/tough-cookie": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.5.tgz", - "integrity": "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==", - "dev": true - }, - "node_modules/@types/unist": { - "version": "2.0.10", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.10.tgz", - "integrity": "sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==" - }, - "node_modules/@types/use-sync-external-store": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/@types/use-sync-external-store/-/use-sync-external-store-0.0.3.tgz", - "integrity": "sha512-EwmlvuaxPNej9+T4v5AuBPJa2x2UOJVdjCtDHgcDqitUeOtjnJKJ+apYjVcAoBEMjKW1VVFGZLUb5+qqa09XFA==" - }, - "node_modules/@types/uuid": { - "version": "8.3.4", - "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.4.tgz", - "integrity": "sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==" - }, - "node_modules/@types/vscode": { - "version": "1.70.0", - "resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.70.0.tgz", - "integrity": "sha512-3/9Fz0F2eBgwciazc94Ien+9u1elnjFg9YAhvAb3qDy/WeFWD9VrOPU7CIytryOVUdbxus8uzL4VZYONA0gDtA==", - "dev": true - }, - "node_modules/@types/ws": { - "version": "8.5.10", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.10.tgz", - "integrity": "sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/yargs": { - "version": "17.0.32", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz", - "integrity": "sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==", - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/@types/yargs-parser": { - "version": "21.0.3", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", - "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==" - }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz", - "integrity": "sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==", - "dev": true, - "dependencies": { - "@eslint-community/regexpp": "^4.4.0", - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/type-utils": "5.62.0", - "@typescript-eslint/utils": "5.62.0", - "debug": "^4.3.4", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "natural-compare-lite": "^1.4.0", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^5.0.0", - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/parser": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz", - "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==", - "dev": true, - "dependencies": { - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/typescript-estree": "5.62.0", - "debug": "^4.3.4" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", - "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/type-utils": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz", - "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==", - "dev": true, - "dependencies": { - "@typescript-eslint/typescript-estree": "5.62.0", - "@typescript-eslint/utils": "5.62.0", - "debug": "^4.3.4", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "*" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/types": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", - "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", - "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/utils": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", - "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", - "dev": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@types/json-schema": "^7.0.9", - "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/typescript-estree": "5.62.0", - "eslint-scope": "^5.1.1", - "semver": "^7.3.7" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", - "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "5.62.0", - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@ungap/structured-clone": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", - "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", - "dev": true - }, - "node_modules/@vscode/ripgrep": { - "version": "1.15.9", - "resolved": "https://registry.npmjs.org/@vscode/ripgrep/-/ripgrep-1.15.9.tgz", - "integrity": "sha512-4q2PXRvUvr3bF+LsfrifmUZgSPmCNcUZo6SbEAZgArIChchkezaxLoIeQMJe/z3CCKStvaVKpBXLxN3Z8lQjFQ==", - "hasInstallScript": true, - "dependencies": { - "https-proxy-agent": "^7.0.2", - "proxy-from-env": "^1.1.0", - "yauzl": "^2.9.2" - } - }, - "node_modules/@vscode/test-electron": { - "version": "2.3.9", - "resolved": "https://registry.npmjs.org/@vscode/test-electron/-/test-electron-2.3.9.tgz", - "integrity": "sha512-z3eiChaCQXMqBnk2aHHSEkobmC2VRalFQN0ApOAtydL172zXGxTwGrRtviT5HnUB+Q+G3vtEYFtuQkYqBzYgMA==", - "dependencies": { - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "jszip": "^3.10.1", - "semver": "^7.5.2" - }, - "engines": { - "node": ">=16" - } - }, - "node_modules/@vscode/test-electron/node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/@vscode/test-electron/node_modules/http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", - "dependencies": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/@vscode/test-electron/node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/@vscode/vsce": { - "version": "2.26.0", - "resolved": "https://registry.npmjs.org/@vscode/vsce/-/vsce-2.26.0.tgz", - "integrity": "sha512-v54ltgMzUG8lGY0kAgaOlry57xse1RlWzes9FotfGEx+Fr05KeR8rZicQzEMDmi9QnOgVWHuiEq+xA2HWkAz+Q==", - "dev": true, - "dependencies": { - "@azure/identity": "^4.1.0", - "azure-devops-node-api": "^12.5.0", - "chalk": "^2.4.2", - "cheerio": "^1.0.0-rc.9", - "cockatiel": "^3.1.2", - "commander": "^6.2.1", - "form-data": "^4.0.0", - "glob": "^7.0.6", - "hosted-git-info": "^4.0.2", - "jsonc-parser": "^3.2.0", - "leven": "^3.1.0", - "markdown-it": "^12.3.2", - "mime": "^1.3.4", - "minimatch": "^3.0.3", - "parse-semver": "^1.1.1", - "read": "^1.0.7", - "semver": "^7.5.2", - "tmp": "^0.2.1", - "typed-rest-client": "^1.8.4", - "url-join": "^4.0.1", - "xml2js": "^0.5.0", - "yauzl": "^2.3.1", - "yazl": "^2.2.2" - }, - "bin": { - "vsce": "vsce" - }, - "engines": { - "node": ">= 16" - }, - "optionalDependencies": { - "keytar": "^7.7.0" - } - }, - "node_modules/@vscode/vsce/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@vscode/vsce/node_modules/azure-devops-node-api": { - "version": "12.5.0", - "resolved": "https://registry.npmjs.org/azure-devops-node-api/-/azure-devops-node-api-12.5.0.tgz", - "integrity": "sha512-R5eFskGvOm3U/GzeAuxRkUsAl0hrAwGgWn6zAd2KrZmrEhWZVqLew4OOupbQlXUuojUzpGtq62SmdhJ06N88og==", - "dev": true, - "dependencies": { - "tunnel": "0.0.6", - "typed-rest-client": "^1.8.4" - } - }, - "node_modules/@vscode/vsce/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@vscode/vsce/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@vscode/vsce/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/@vscode/vsce/node_modules/commander": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", - "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/@vscode/vsce/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/@vscode/vsce/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@vscode/vsce/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@vscode/vsce/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" - }, - "node_modules/accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", - "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/acorn": { - "version": "8.11.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", - "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/agent-base": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz", - "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==", - "dependencies": { - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/agentkeepalive": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.5.0.tgz", - "integrity": "sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==", - "dependencies": { - "humanize-ms": "^1.2.1" - }, - "engines": { - "node": ">= 8.0.0" - } - }, - "node_modules/aggregate-error": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-4.0.1.tgz", - "integrity": "sha512-0poP0T7el6Vq3rstR8Mn4V/IQrpBLO6POkUSrN7RhyY+GF/InCFShQzsQ39T25gkHhLgSLByyAz+Kjb+c2L98w==", - "dependencies": { - "clean-stack": "^4.0.0", - "indent-string": "^5.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", - "engines": { - "node": ">=6" - } - }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-escapes/node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/any-promise": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==" - }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/apache-arrow": { - "version": "14.0.2", - "resolved": "https://registry.npmjs.org/apache-arrow/-/apache-arrow-14.0.2.tgz", - "integrity": "sha512-EBO2xJN36/XoY81nhLcwCJgFwkboDZeyNQ+OPsG7bCoQjc2BT0aTyH/MR6SrL+LirSNz+cYqjGRlupMMlP1aEg==", - "peer": true, - "dependencies": { - "@types/command-line-args": "5.2.0", - "@types/command-line-usage": "5.0.2", - "@types/node": "20.3.0", - "@types/pad-left": "2.1.1", - "command-line-args": "5.2.1", - "command-line-usage": "7.0.1", - "flatbuffers": "23.5.26", - "json-bignum": "^0.0.3", - "pad-left": "^2.1.0", - "tslib": "^2.5.3" - }, - "bin": { - "arrow2csv": "bin/arrow2csv.js" - } - }, - "node_modules/apache-arrow/node_modules/@types/node": { - "version": "20.3.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.3.0.tgz", - "integrity": "sha512-cumHmIAf6On83X7yP+LrsEyUOf/YlociZelmpRYaGFydoaPdxdt80MAbu6vWerQT2COCp2nPvHdsbD7tHn/YlQ==", - "peer": true - }, - "node_modules/aproba": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", - "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==" - }, - "node_modules/are-we-there-yet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", - "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/are-we-there-yet/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/arg": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", - "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==" - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - }, - "node_modules/array-back": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", - "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", - "peer": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" - }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/arrify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-3.0.0.tgz", - "integrity": "sha512-tLkvA81vQG/XqE2mjDkGQHoOINtMHtysSnemrmoGe6PydDPMRbVugqyk4A6V/WDWEfm3l+0d8anA9r8cv/5Jaw==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/asn1": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", - "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", - "dependencies": { - "safer-buffer": "~2.1.0" - } - }, - "node_modules/assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" - }, - "node_modules/aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", - "engines": { - "node": "*" - } - }, - "node_modules/aws4": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.12.0.tgz", - "integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==" - }, - "node_modules/axios": { - "version": "1.6.7", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.7.tgz", - "integrity": "sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA==", - "dependencies": { - "follow-redirects": "^1.15.4", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" - } - }, - "node_modules/azure-devops-node-api": { - "version": "11.2.0", - "resolved": "https://registry.npmjs.org/azure-devops-node-api/-/azure-devops-node-api-11.2.0.tgz", - "integrity": "sha512-XdiGPhrpaT5J8wdERRKs5g8E0Zy1pvOYTli7z9E8nmOn3YGp4FhtjhrOyFmX/8veWCwdI69mCHKJw6l+4J/bHA==", - "dev": true, - "dependencies": { - "tunnel": "0.0.6", - "typed-rest-client": "^1.8.4" - } - }, - "node_modules/babel-jest": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", - "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", - "dependencies": { - "@jest/transform": "^29.7.0", - "@types/babel__core": "^7.1.14", - "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^29.6.3", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "slash": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.8.0" - } - }, - "node_modules/babel-plugin-istanbul": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", - "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^5.0.4", - "test-exclude": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", - "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", - "dependencies": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-plugin-istanbul/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/babel-plugin-jest-hoist": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", - "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", - "dependencies": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.1.14", - "@types/babel__traverse": "^7.0.6" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/babel-preset-current-node-syntax": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", - "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", - "dependencies": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.8.3", - "@babel/plugin-syntax-import-meta": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-top-level-await": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/babel-preset-jest": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", - "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", - "dependencies": { - "babel-plugin-jest-hoist": "^29.6.3", - "babel-preset-current-node-syntax": "^1.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/bail": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", - "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", - "dependencies": { - "tweetnacl": "^0.14.3" - } - }, - "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "engines": { - "node": ">=8" - } - }, - "node_modules/bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "dependencies": { - "file-uri-to-path": "1.0.0" - } - }, - "node_modules/bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "dependencies": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "node_modules/bl/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/body-parser": { - "version": "1.20.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", - "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", - "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.5", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.11.0", - "raw-body": "2.5.2", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/body-parser/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/body-parser/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", - "dev": true - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "dependencies": { - "fill-range": "^7.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browser-stdout": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==" - }, - "node_modules/browserslist": { - "version": "4.23.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", - "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "caniuse-lite": "^1.0.30001587", - "electron-to-chromium": "^1.4.668", - "node-releases": "^2.0.14", - "update-browserslist-db": "^1.0.13" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/bser": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", - "dependencies": { - "node-int64": "^0.4.0" - } - }, - "node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", - "engines": { - "node": "*" - } - }, - "node_modules/buffer-equal-constant-time": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", - "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==", - "dev": true - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" - }, - "node_modules/buffer-writer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/buffer-writer/-/buffer-writer-2.0.0.tgz", - "integrity": "sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw==", - "engines": { - "node": ">=4" - } - }, - "node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/cacache": { - "version": "16.1.3", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-16.1.3.tgz", - "integrity": "sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==", - "dependencies": { - "@npmcli/fs": "^2.1.0", - "@npmcli/move-file": "^2.0.0", - "chownr": "^2.0.0", - "fs-minipass": "^2.1.0", - "glob": "^8.0.1", - "infer-owner": "^1.0.4", - "lru-cache": "^7.7.1", - "minipass": "^3.1.6", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "mkdirp": "^1.0.4", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^9.0.0", - "tar": "^6.1.11", - "unique-filename": "^2.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/cacache/node_modules/lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "engines": { - "node": ">=12" - } - }, - "node_modules/cacache/node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/cacache/node_modules/rimraf/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/cacheable-lookup": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", - "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==", - "engines": { - "node": ">=10.6.0" - } - }, - "node_modules/cacheable-request": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.4.tgz", - "integrity": "sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==", - "dependencies": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^4.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^6.0.1", - "responselike": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cacheable-request/node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/call-bind": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", - "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", - "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/call-me-maybe": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.2.tgz", - "integrity": "sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==", - "dev": true - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "engines": { - "node": ">=6" - } - }, - "node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "engines": { - "node": ">=6" - } - }, - "node_modules/camelcase-css": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", - "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", - "engines": { - "node": ">= 6" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001596", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001596.tgz", - "integrity": "sha512-zpkZ+kEr6We7w63ORkoJ2pOfBwBkY/bJrG/UZ90qNb45Isblu8wzDgevEOrRL1r9dWayHjYiiyCMEXPn4DweGQ==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ] - }, - "node_modules/cargo-cp-artifact": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/cargo-cp-artifact/-/cargo-cp-artifact-0.1.8.tgz", - "integrity": "sha512-3j4DaoTrsCD1MRkTF2Soacii0Nx7UHCce0EwUf4fHnggwiE4fbmF2AbnfzayR36DF8KGadfh7M/Yfy625kgPlA==", - "dev": true, - "bin": { - "cargo-cp-artifact": "bin/cargo-cp-artifact.js" - } - }, - "node_modules/caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==" - }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/chalk-template": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/chalk-template/-/chalk-template-0.4.0.tgz", - "integrity": "sha512-/ghrgmhfY8RaSdeo43hNXxpoHAtxdbskUHjPpfqUWGttFgycUhYPGx3YZBCnUCvOa7Doivn1IZec3DEGFoMgLg==", - "peer": true, - "dependencies": { - "chalk": "^4.1.2" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/chalk-template?sponsor=1" - } - }, - "node_modules/char-regex": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", - "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", - "engines": { - "node": ">=10" - } - }, - "node_modules/character-entities": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz", - "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", - "dev": true - }, - "node_modules/cheerio": { - "version": "1.0.0-rc.12", - "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz", - "integrity": "sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==", - "dev": true, - "dependencies": { - "cheerio-select": "^2.1.0", - "dom-serializer": "^2.0.0", - "domhandler": "^5.0.3", - "domutils": "^3.0.1", - "htmlparser2": "^8.0.1", - "parse5": "^7.0.0", - "parse5-htmlparser2-tree-adapter": "^7.0.0" - }, - "engines": { - "node": ">= 6" - }, - "funding": { - "url": "https://github.com/cheeriojs/cheerio?sponsor=1" - } - }, - "node_modules/cheerio-select": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz", - "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==", - "dev": true, - "dependencies": { - "boolbase": "^1.0.0", - "css-select": "^5.1.0", - "css-what": "^6.1.0", - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3", - "domutils": "^3.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/chokidar/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", - "engines": { - "node": ">=10" - } - }, - "node_modules/ci-info": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", - "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/sibiraj-s" - } - ], - "engines": { - "node": ">=8" - } - }, - "node_modules/cjs-module-lexer": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz", - "integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==" - }, - "node_modules/clean-stack": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-4.2.0.tgz", - "integrity": "sha512-LYv6XPxoyODi36Dp976riBtSY27VmFo+MKqEU9QCCWyTrdEPDog+RWA7xQWHi6Vbp61j5c4cdzzX1NidnwtUWg==", - "dependencies": { - "escape-string-regexp": "5.0.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/clean-stack/node_modules/escape-string-regexp": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", - "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cli-color": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/cli-color/-/cli-color-2.0.4.tgz", - "integrity": "sha512-zlnpg0jNcibNrO7GG9IeHH7maWFeCz+Ja1wx/7tZNU5ASSSSZ+/qZciM0/LHCYxSdqv5h2sdbQ/PXYdOuetXvA==", - "dev": true, - "dependencies": { - "d": "^1.0.1", - "es5-ext": "^0.10.64", - "es6-iterator": "^2.0.3", - "memoizee": "^0.4.15", - "timers-ext": "^0.1.7" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dependencies": { - "restore-cursor": "^3.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cli-spinners": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", - "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cli-width": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", - "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", - "dev": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/cliui/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/cliui/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cliui/node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/clone-response": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", - "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", - "dependencies": { - "mimic-response": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", - "engines": { - "iojs": ">= 1.0.0", - "node": ">= 0.12.0" - } - }, - "node_modules/cockatiel": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/cockatiel/-/cockatiel-3.1.2.tgz", - "integrity": "sha512-5yARKww0dWyWg2/3xZeXgoxjHLwpVqFptj9Zy7qioJ6+/L0ARM184sgMUrQDjxw7ePJWlGhV998mKhzrxT0/Kg==", - "dev": true, - "engines": { - "node": ">=16" - } - }, - "node_modules/collect-v8-coverage": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", - "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==" - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/color-support": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", - "bin": { - "color-support": "bin.js" - } - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/comma-separated-tokens": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", - "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/command-line-args": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz", - "integrity": "sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==", - "peer": true, - "dependencies": { - "array-back": "^3.1.0", - "find-replace": "^3.0.0", - "lodash.camelcase": "^4.3.0", - "typical": "^4.0.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/command-line-usage": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-7.0.1.tgz", - "integrity": "sha512-NCyznE//MuTjwi3y84QVUGEOT+P5oto1e1Pk/jFPVdPPfsG03qpTIl3yw6etR+v73d0lXsoojRpvbru2sqePxQ==", - "peer": true, - "dependencies": { - "array-back": "^6.2.2", - "chalk-template": "^0.4.0", - "table-layout": "^3.0.0", - "typical": "^7.1.1" - }, - "engines": { - "node": ">=12.20.0" - } - }, - "node_modules/command-line-usage/node_modules/array-back": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-6.2.2.tgz", - "integrity": "sha512-gUAZ7HPyb4SJczXAMUXMGAvI976JoK3qEx9v1FTmeYuJj0IBiaKttG1ydtGKdkfqWkIkouke7nG8ufGy77+Cvw==", - "peer": true, - "engines": { - "node": ">=12.17" - } - }, - "node_modules/command-line-usage/node_modules/typical": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/typical/-/typical-7.1.1.tgz", - "integrity": "sha512-T+tKVNs6Wu7IWiAce5BgMd7OZfNYUndHwc5MknN+UHOudi7sGZzuHdCadllRuqJ3fPtgFtIH9+lt9qRv6lmpfA==", - "peer": true, - "engines": { - "node": ">=12.17" - } - }, - "node_modules/commander": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", - "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", - "engines": { - "node": ">= 12" - } - }, - "node_modules/compare-versions": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-4.1.4.tgz", - "integrity": "sha512-FemMreK9xNyL8gQevsdRMrvO4lFCkQP7qbuktn1q8ndcNk1+0mz7lgE7b/sNvbhVgY4w6tMN1FDp6aADjqw2rw==", - "dev": true - }, - "node_modules/compute-scroll-into-view": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-2.0.4.tgz", - "integrity": "sha512-y/ZA3BGnxoM/QHHQ2Uy49CLtnWPbt4tTPpEEZiEmmiWBFKjej7nEyH8Ryz54jH0MLXflUYA3Er2zUxPSJu5R+g==" - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" - }, - "node_modules/concurrently": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-6.5.1.tgz", - "integrity": "sha512-FlSwNpGjWQfRwPLXvJ/OgysbBxPkWpiVjy1042b0U7on7S7qwwMIILRj7WTN1mTgqa582bG6NFuScOoh6Zgdag==", - "dev": true, - "dependencies": { - "chalk": "^4.1.0", - "date-fns": "^2.16.1", - "lodash": "^4.17.21", - "rxjs": "^6.6.3", - "spawn-command": "^0.0.2-1", - "supports-color": "^8.1.0", - "tree-kill": "^1.2.2", - "yargs": "^16.2.0" - }, - "bin": { - "concurrently": "bin/concurrently.js" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/concurrently/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/concurrently/node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/concurrently/node_modules/rxjs": { - "version": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", - "dev": true, - "dependencies": { - "tslib": "^1.9.0" - }, - "engines": { - "npm": ">=2.0.0" - } - }, - "node_modules/concurrently/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/concurrently/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/concurrently/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "node_modules/concurrently/node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/concurrently/node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dev": true, - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/consola": { - "version": "2.15.3", - "resolved": "https://registry.npmjs.org/consola/-/consola-2.15.3.tgz", - "integrity": "sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==", - "dev": true - }, - "node_modules/console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==" - }, - "node_modules/console.table": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/console.table/-/console.table-0.10.0.tgz", - "integrity": "sha512-dPyZofqggxuvSf7WXvNjuRfnsOk1YazkVP8FdxH4tcH2c37wc79/Yl6Bhr7Lsu00KMgy2ql/qCMuNu8xctZM8g==", - "dev": true, - "dependencies": { - "easy-table": "1.1.0" - }, - "engines": { - "node": "> 0.10" - } - }, - "node_modules/content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "dependencies": { - "safe-buffer": "5.2.1" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/content-type": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", - "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==" - }, - "node_modules/cookie": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", - "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" - }, - "node_modules/core": { - "resolved": "../../core", - "link": true - }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" - }, - "node_modules/cors": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", - "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", - "dependencies": { - "object-assign": "^4", - "vary": "^1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/create-jest": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", - "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", - "dependencies": { - "@jest/types": "^29.6.3", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-config": "^29.7.0", - "jest-util": "^29.7.0", - "prompts": "^2.0.1" - }, - "bin": { - "create-jest": "bin/create-jest.js" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/css-select": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", - "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", - "dev": true, - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^6.1.0", - "domhandler": "^5.0.2", - "domutils": "^3.0.1", - "nth-check": "^2.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/css-what": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", - "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", - "dev": true, - "engines": { - "node": ">= 6" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/cssstyle": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-4.0.1.tgz", - "integrity": "sha512-8ZYiJ3A/3OkDd093CBT/0UKDWry7ak4BdPTFP2+QEP7cmhouyq/Up709ASSj2cK02BbZiMgk7kYjZNS4QP5qrQ==", - "dependencies": { - "rrweb-cssom": "^0.6.0" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/csstype": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", - "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" - }, - "node_modules/d": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.2.tgz", - "integrity": "sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw==", - "dev": true, - "dependencies": { - "es5-ext": "^0.10.64", - "type": "^2.7.2" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", - "dependencies": { - "assert-plus": "^1.0.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/data-uri-to-buffer": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", - "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", - "engines": { - "node": ">= 12" - } - }, - "node_modules/data-urls": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-5.0.0.tgz", - "integrity": "sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==", - "dependencies": { - "whatwg-mimetype": "^4.0.0", - "whatwg-url": "^14.0.0" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/date-fns": { - "version": "2.30.0", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz", - "integrity": "sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.21.0" - }, - "engines": { - "node": ">=0.11" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/date-fns" - } - }, - "node_modules/dbinfoz": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/dbinfoz/-/dbinfoz-0.1.4.tgz", - "integrity": "sha512-MB56+xS571ip7qoXqxdnOUtXebbWaqoZN+S++W51SQYJRSjQFGEIPucNmxgeQlBGJ1vM4mQNV47wzV6fcrezZg==", - "dependencies": { - "mysql2": "^3.9.1", - "pg": "^8.11.3", - "sqlite3": "^5.1.7" - } - }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/decamelize": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", - "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/decimal.js": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", - "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==" - }, - "node_modules/decode-named-character-reference": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz", - "integrity": "sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==", - "dependencies": { - "character-entities": "^2.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/decompress-response": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", - "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", - "dependencies": { - "mimic-response": "^3.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/decompress-response/node_modules/mimic-response": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", - "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/dedent": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.1.tgz", - "integrity": "sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==", - "peerDependencies": { - "babel-plugin-macros": "^3.1.0" - }, - "peerDependenciesMeta": { - "babel-plugin-macros": { - "optional": true - } - } - }, - "node_modules/deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "node_modules/deepmerge": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", - "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/defaults": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", - "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", - "dependencies": { - "clone": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/defer-to-connect": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", - "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", - "engines": { - "node": ">=10" - } - }, - "node_modules/define-data-property": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", - "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/define-lazy-prop": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", - "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==" - }, - "node_modules/denque": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz", - "integrity": "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==", - "engines": { - "node": ">=0.10" - } - }, - "node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/dequal": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", - "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", - "engines": { - "node": ">=6" - } - }, - "node_modules/destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/detect-libc": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.2.tgz", - "integrity": "sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==", - "engines": { - "node": ">=8" - } - }, - "node_modules/detect-newline": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", - "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", - "engines": { - "node": ">=8" - } - }, - "node_modules/didyoumean": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", - "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==" - }, - "node_modules/diff": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", - "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/diff-sequences": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", - "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "dependencies": { - "path-type": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/dlv": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", - "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==" - }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/dom-serializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", - "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", - "dev": true, - "dependencies": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.2", - "entities": "^4.2.0" - }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" - } - }, - "node_modules/domelementtype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", - "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ] - }, - "node_modules/domhandler": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", - "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", - "dev": true, - "dependencies": { - "domelementtype": "^2.3.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, - "node_modules/domutils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", - "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", - "dev": true, - "dependencies": { - "dom-serializer": "^2.0.0", - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3" - }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" - } - }, - "node_modules/downshift": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/downshift/-/downshift-7.6.2.tgz", - "integrity": "sha512-iOv+E1Hyt3JDdL9yYcOgW7nZ7GQ2Uz6YbggwXvKUSleetYhU2nXD482Rz6CzvM4lvI1At34BYruKAL4swRGxaA==", - "dependencies": { - "@babel/runtime": "^7.14.8", - "compute-scroll-into-view": "^2.0.4", - "prop-types": "^15.7.2", - "react-is": "^17.0.2", - "tslib": "^2.3.0" - }, - "peerDependencies": { - "react": ">=16.12.0" - } - }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" - }, - "node_modules/easy-table": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/easy-table/-/easy-table-1.1.0.tgz", - "integrity": "sha512-oq33hWOSSnl2Hoh00tZWaIPi1ievrD9aFG82/IgjlycAnW9hHx5PkJiXpxPsgEE+H7BsbVQXFVFST8TEXS6/pA==", - "dev": true, - "optionalDependencies": { - "wcwidth": ">=1.0.1" - } - }, - "node_modules/ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", - "dependencies": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "node_modules/ecc-jsbn/node_modules/jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==" - }, - "node_modules/ecdsa-sig-formatter": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", - "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", - "dev": true, - "dependencies": { - "safe-buffer": "^5.0.1" - } - }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" - }, - "node_modules/electron-to-chromium": { - "version": "1.4.699", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.699.tgz", - "integrity": "sha512-I7q3BbQi6e4tJJN5CRcyvxhK0iJb34TV8eJQcgh+fR2fQ8miMgZcEInckCo1U9exDHbfz7DLDnFn8oqH/VcRKw==" - }, - "node_modules/emittery": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", - "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sindresorhus/emittery?sponsor=1" - } - }, - "node_modules/emoji-regex": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.3.0.tgz", - "integrity": "sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==" - }, - "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "optional": true, - "dependencies": { - "iconv-lite": "^0.6.2" - } - }, - "node_modules/encoding/node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "optional": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/engine.io-client": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.5.3.tgz", - "integrity": "sha512-9Z0qLB0NIisTRt1DZ/8U2k12RJn8yls/nXMZLn+/N8hANT3TcYjKFKcwbw5zFQiN4NTde3TSY9zb79e1ij6j9Q==", - "dependencies": { - "@socket.io/component-emitter": "~3.1.0", - "debug": "~4.3.1", - "engine.io-parser": "~5.2.1", - "ws": "~8.11.0", - "xmlhttprequest-ssl": "~2.0.0" - } - }, - "node_modules/engine.io-client/node_modules/ws": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", - "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/engine.io-parser": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.2.tgz", - "integrity": "sha512-RcyUFKA93/CXH20l4SoVvzZfrSDMOTUS3bWVpTt2FuFP+XYrL8i8oonHP7WInRyVHXh0n/ORtoeiE1os+8qkSw==", - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/entities": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/env-paths": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", - "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", - "engines": { - "node": ">=6" - } - }, - "node_modules/err-code": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", - "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==" - }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/es-define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", - "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", - "dependencies": { - "get-intrinsic": "^1.2.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-errors": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es5-ext": { - "version": "0.10.64", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.64.tgz", - "integrity": "sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.3", - "esniff": "^2.0.1", - "next-tick": "^1.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", - "dev": true, - "dependencies": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "node_modules/es6-symbol": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.4.tgz", - "integrity": "sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg==", - "dev": true, - "dependencies": { - "d": "^1.0.2", - "ext": "^1.7.0" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/es6-weak-map": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", - "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", - "dev": true, - "dependencies": { - "d": "1", - "es5-ext": "^0.10.46", - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.1" - } - }, - "node_modules/esbuild": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.19.tgz", - "integrity": "sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==", - "dev": true, - "hasInstallScript": true, - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "@esbuild/android-arm": "0.17.19", - "@esbuild/android-arm64": "0.17.19", - "@esbuild/android-x64": "0.17.19", - "@esbuild/darwin-arm64": "0.17.19", - "@esbuild/darwin-x64": "0.17.19", - "@esbuild/freebsd-arm64": "0.17.19", - "@esbuild/freebsd-x64": "0.17.19", - "@esbuild/linux-arm": "0.17.19", - "@esbuild/linux-arm64": "0.17.19", - "@esbuild/linux-ia32": "0.17.19", - "@esbuild/linux-loong64": "0.17.19", - "@esbuild/linux-mips64el": "0.17.19", - "@esbuild/linux-ppc64": "0.17.19", - "@esbuild/linux-riscv64": "0.17.19", - "@esbuild/linux-s390x": "0.17.19", - "@esbuild/linux-x64": "0.17.19", - "@esbuild/netbsd-x64": "0.17.19", - "@esbuild/openbsd-x64": "0.17.19", - "@esbuild/sunos-x64": "0.17.19", - "@esbuild/win32-arm64": "0.17.19", - "@esbuild/win32-ia32": "0.17.19", - "@esbuild/win32-x64": "0.17.19" - } - }, - "node_modules/escalade": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", - "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" - }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint": { - "version": "8.57.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", - "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", - "dev": true, - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.57.0", - "@humanwhocodes/config-array": "^0.11.14", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "@ungap/structured-clone": "^1.2.0", - "ajv": "^6.12.4", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.3", - "espree": "^9.6.1", - "esquery": "^1.4.2", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/eslint-scope": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/eslint/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/esniff": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/esniff/-/esniff-2.0.1.tgz", - "integrity": "sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==", - "dev": true, - "dependencies": { - "d": "^1.0.1", - "es5-ext": "^0.10.62", - "event-emitter": "^0.3.5", - "type": "^2.7.2" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", - "dev": true, - "dependencies": { - "acorn": "^8.9.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/esquery": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", - "dev": true, - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esquery/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/event-emitter": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", - "integrity": "sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==", - "dev": true, - "dependencies": { - "d": "1", - "es5-ext": "~0.10.14" - } - }, - "node_modules/eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" - }, - "node_modules/events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "dev": true, - "engines": { - "node": ">=0.8.x" - } - }, - "node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/expand-template": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", - "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==", - "engines": { - "node": ">=6" - } - }, - "node_modules/expect": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", - "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", - "dependencies": { - "@jest/expect-utils": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-matcher-utils": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/exponential-backoff": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.1.tgz", - "integrity": "sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==" - }, - "node_modules/express": { - "version": "4.18.3", - "resolved": "https://registry.npmjs.org/express/-/express-4.18.3.tgz", - "integrity": "sha512-6VyCijWQ+9O7WuVMTRBTl+cjNNIzD5cY5mQ1WM8r/LEkI2u8EYpOotESNwzNlyCn3g+dmjKYI6BmNneSr/FSRw==", - "dependencies": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.2", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.5.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.2.0", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.11.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/express/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/express/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/ext": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz", - "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==", - "dev": true, - "dependencies": { - "type": "^2.7.2" - } - }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "node_modules/external-editor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", - "dev": true, - "dependencies": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/external-editor/node_modules/tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dev": true, - "dependencies": { - "os-tmpdir": "~1.0.2" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", - "engines": [ - "node >=0.6.0" - ] - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" - }, - "node_modules/fast-glob": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", - "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fast-glob/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true - }, - "node_modules/fast-safe-stringify": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", - "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", - "dev": true - }, - "node_modules/fastq": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", - "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/fb-watchman": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", - "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", - "dependencies": { - "bser": "2.1.1" - } - }, - "node_modules/fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", - "dependencies": { - "pend": "~1.2.0" - } - }, - "node_modules/fetch-blob": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", - "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/jimmywarting" - }, - { - "type": "paypal", - "url": "https://paypal.me/jimmywarting" - } - ], - "dependencies": { - "node-domexception": "^1.0.0", - "web-streams-polyfill": "^3.0.3" - }, - "engines": { - "node": "^12.20 || >= 14.13" - } - }, - "node_modules/figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^1.0.5" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/figures/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, - "dependencies": { - "flat-cache": "^3.0.4" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" - }, - "node_modules/fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/finalhandler": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/finalhandler/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/finalhandler/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/find-replace": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz", - "integrity": "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==", - "peer": true, - "dependencies": { - "array-back": "^3.0.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/fkill": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/fkill/-/fkill-8.1.1.tgz", - "integrity": "sha512-138B7rFQMEKoJQOVl3NCPyRAaex0ruLvQgqkEWa/CyUY9MFFxZ8TtztiMJSs6/wD60M6kK0OKUOwHRsr3U2RBg==", - "dependencies": { - "aggregate-error": "^4.0.0", - "execa": "^5.1.1", - "pid-port": "^0.2.0", - "process-exists": "^4.1.0", - "ps-list": "^7.2.0", - "taskkill": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/flat": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", - "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", - "bin": { - "flat": "cli.js" - } - }, - "node_modules/flat-cache": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", - "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", - "dev": true, - "dependencies": { - "flatted": "^3.2.9", - "keyv": "^4.5.3", - "rimraf": "^3.0.2" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/flat-cache/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/flat-cache/node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/flatbuffers": { - "version": "23.5.26", - "resolved": "https://registry.npmjs.org/flatbuffers/-/flatbuffers-23.5.26.tgz", - "integrity": "sha512-vE+SI9vrJDwi1oETtTIFldC/o9GsVKRM+s6EL0nQgxXlYV1Vc4Tk30hj4xGICftInKQKj1F3up2n8UbIVobISQ==", - "peer": true - }, - "node_modules/flatted": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", - "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", - "dev": true - }, - "node_modules/follow-redirects": { - "version": "1.15.5", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.5.tgz", - "integrity": "sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "node_modules/foreground-child": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", - "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", - "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^4.0.1" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/foreground-child/node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", - "engines": { - "node": "*" - } - }, - "node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/formdata-polyfill": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", - "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", - "dependencies": { - "fetch-blob": "^3.1.2" - }, - "engines": { - "node": ">=12.20.0" - } - }, - "node_modules/forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" - }, - "node_modules/fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", - "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/gauge/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/gauge/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/generate-function": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.3.1.tgz", - "integrity": "sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==", - "dependencies": { - "is-property": "^1.0.2" - } - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-intrinsic": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", - "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", - "dependencies": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/get-stdin": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-8.0.0.tgz", - "integrity": "sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", - "dependencies": { - "assert-plus": "^1.0.0" - } - }, - "node_modules/github-from-package": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", - "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==" - }, - "node_modules/glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/glob/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/glob/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", - "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "dependencies": { - "get-intrinsic": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/got": { - "version": "11.8.6", - "resolved": "https://registry.npmjs.org/got/-/got-11.8.6.tgz", - "integrity": "sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==", - "dependencies": { - "@sindresorhus/is": "^4.0.0", - "@szmarczak/http-timer": "^4.0.5", - "@types/cacheable-request": "^6.0.1", - "@types/responselike": "^1.0.0", - "cacheable-lookup": "^5.0.3", - "cacheable-request": "^7.0.2", - "decompress-response": "^6.0.0", - "http2-wrapper": "^1.0.0-beta.5.2", - "lowercase-keys": "^2.0.0", - "p-cancelable": "^2.0.0", - "responselike": "^2.0.0" - }, - "engines": { - "node": ">=10.19.0" - }, - "funding": { - "url": "https://github.com/sindresorhus/got?sponsor=1" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" - }, - "node_modules/graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true - }, - "node_modules/handlebars": { - "version": "4.7.8", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", - "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", - "dependencies": { - "minimist": "^1.2.5", - "neo-async": "^2.6.2", - "source-map": "^0.6.1", - "wordwrap": "^1.0.0" - }, - "bin": { - "handlebars": "bin/handlebars" - }, - "engines": { - "node": ">=0.4.7" - }, - "optionalDependencies": { - "uglify-js": "^3.1.4" - } - }, - "node_modules/har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==", - "engines": { - "node": ">=4" - } - }, - "node_modules/har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "deprecated": "this library is no longer supported", - "dependencies": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/has-property-descriptors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", - "dependencies": { - "es-define-property": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-proto": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", - "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==" - }, - "node_modules/hasown": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.1.tgz", - "integrity": "sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==", - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/hast-util-whitespace": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-2.0.1.tgz", - "integrity": "sha512-nAxA0v8+vXSBDt3AnRUNjyRIQ0rD+ntpbAp4LnPkumc5M9yUbSMa4XDU9Q6etY4f1Wp4bNgvc1yjiZtsTTrSng==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "bin": { - "he": "bin/he" - } - }, - "node_modules/highlight.js": { - "version": "11.9.0", - "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-11.9.0.tgz", - "integrity": "sha512-fJ7cW7fQGCYAkgv4CPfwFHrfd/cLS4Hau96JuJ+ZTOWhjnhoeN1ub1tFmALm/+lW5z4WCAuAV9bm05AP0mS6Gw==", - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/highlightable": { - "version": "1.3.0-beta.0", - "resolved": "https://registry.npmjs.org/highlightable/-/highlightable-1.3.0-beta.0.tgz", - "integrity": "sha512-pDgzsLBus8oscL7KOqZ5rVMXgCnEmoig+G5gWoDczMm1SFDsNLzRwmNjkJoKdiA3q0oW/f+VqZ3W2YzG5lXQYA==", - "dependencies": { - "@types/react": "^18.0.28", - "emoji-regex": "^10.2.1", - "react": "^18.2.0", - "react-dom": "^18.2.0" - } - }, - "node_modules/hoist-non-react-statics": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", - "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", - "dependencies": { - "react-is": "^16.7.0" - } - }, - "node_modules/hoist-non-react-statics/node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" - }, - "node_modules/hosted-git-info": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", - "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/html-encoding-sniffer": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-4.0.0.tgz", - "integrity": "sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==", - "dependencies": { - "whatwg-encoding": "^3.1.1" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==" - }, - "node_modules/htmlparser2": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz", - "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==", - "dev": true, - "funding": [ - "https://github.com/fb55/htmlparser2?sponsor=1", - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "dependencies": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3", - "domutils": "^3.0.1", - "entities": "^4.4.0" - } - }, - "node_modules/http-cache-semantics": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", - "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==" - }, - "node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/http-proxy": { - "version": "1.18.1", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", - "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", - "dependencies": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/http-proxy-agent": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", - "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", - "dependencies": { - "agent-base": "^7.1.0", - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/http-proxy-middleware": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", - "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==", - "dependencies": { - "@types/http-proxy": "^1.17.8", - "http-proxy": "^1.18.1", - "is-glob": "^4.0.1", - "is-plain-obj": "^3.0.0", - "micromatch": "^4.0.2" - }, - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "@types/express": "^4.17.13" - }, - "peerDependenciesMeta": { - "@types/express": { - "optional": true - } - } - }, - "node_modules/http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", - "dependencies": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - }, - "engines": { - "node": ">=0.8", - "npm": ">=1.3.7" - } - }, - "node_modules/http2-wrapper": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", - "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", - "dependencies": { - "quick-lru": "^5.1.1", - "resolve-alpn": "^1.0.0" - }, - "engines": { - "node": ">=10.19.0" - } - }, - "node_modules/https-proxy-agent": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz", - "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==", - "dependencies": { - "agent-base": "^7.0.2", - "debug": "4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "engines": { - "node": ">=10.17.0" - } - }, - "node_modules/humanize-ms": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", - "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", - "dependencies": { - "ms": "^2.0.0" - } - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/ignore": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", - "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", - "engines": { - "node": ">= 4" - } - }, - "node_modules/immediate": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", - "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==" - }, - "node_modules/immer": { - "version": "9.0.21", - "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.21.tgz", - "integrity": "sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/immer" - } - }, - "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/import-local": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", - "dependencies": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/indent-string": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", - "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/infer-owner": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==" - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" - }, - "node_modules/inline-style-parser": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.1.1.tgz", - "integrity": "sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==" - }, - "node_modules/inquirer": { - "version": "8.2.6", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.6.tgz", - "integrity": "sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==", - "dev": true, - "dependencies": { - "ansi-escapes": "^4.2.1", - "chalk": "^4.1.1", - "cli-cursor": "^3.1.0", - "cli-width": "^3.0.0", - "external-editor": "^3.0.3", - "figures": "^3.0.0", - "lodash": "^4.17.21", - "mute-stream": "0.0.8", - "ora": "^5.4.1", - "run-async": "^2.4.0", - "rxjs": "^7.5.5", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0", - "through": "^2.3.6", - "wrap-ansi": "^6.0.1" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/inquirer/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/inquirer/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ip-address": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", - "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==", - "dependencies": { - "jsbn": "1.1.0", - "sprintf-js": "^1.1.3" - }, - "engines": { - "node": ">= 12" - } - }, - "node_modules/ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-buffer": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", - "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "engines": { - "node": ">=4" - } - }, - "node_modules/is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", - "dev": true, - "dependencies": { - "ci-info": "^2.0.0" - }, - "bin": { - "is-ci": "bin.js" - } - }, - "node_modules/is-ci/node_modules/ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", - "dev": true - }, - "node_modules/is-core-module": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", - "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", - "dependencies": { - "hasown": "^2.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", - "dev": true, - "bin": { - "is-docker": "cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-generator-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", - "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", - "engines": { - "node": ">=6" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-interactive": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", - "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-lambda": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", - "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==" - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-plain-obj": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", - "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-potential-custom-element-name": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", - "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==" - }, - "node_modules/is-promise": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", - "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==", - "dev": true - }, - "node_modules/is-property": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", - "integrity": "sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g==" - }, - "node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" - }, - "node_modules/is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "dev": true, - "dependencies": { - "is-docker": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" - }, - "node_modules/isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==" - }, - "node_modules/istanbul-lib-coverage": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", - "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.2.tgz", - "integrity": "sha512-1WUsZ9R1lA0HtBSohTkm39WTPlNKSJ5iFk7UwqXkBLoHQT+hfqPsfsTDVuZdKGaBwn7din9bS7SsnoAr943hvw==", - "dependencies": { - "@babel/core": "^7.23.9", - "@babel/parser": "^7.23.9", - "@istanbuljs/schema": "^0.1.3", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^7.5.4" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-lib-report": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", - "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", - "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^4.0.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-lib-source-maps": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", - "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-reports": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz", - "integrity": "sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==", - "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/iterare": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/iterare/-/iterare-1.2.1.tgz", - "integrity": "sha512-RKYVTCjAnRthyJes037NX/IiqeidgN1xc3j1RjFfECFp28A1GVwK9nA+i0rJPaHqSZwygLzRnFlzUuHFoWWy+Q==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/jackspeak": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", - "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", - "dependencies": { - "@isaacs/cliui": "^8.0.2" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" - } - }, - "node_modules/jest": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", - "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", - "dependencies": { - "@jest/core": "^29.7.0", - "@jest/types": "^29.6.3", - "import-local": "^3.0.2", - "jest-cli": "^29.7.0" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/jest-changed-files": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", - "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", - "dependencies": { - "execa": "^5.0.0", - "jest-util": "^29.7.0", - "p-limit": "^3.1.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-circus": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", - "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", - "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/expect": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "dedent": "^1.0.0", - "is-generator-fn": "^2.0.0", - "jest-each": "^29.7.0", - "jest-matcher-utils": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-runtime": "^29.7.0", - "jest-snapshot": "^29.7.0", - "jest-util": "^29.7.0", - "p-limit": "^3.1.0", - "pretty-format": "^29.7.0", - "pure-rand": "^6.0.0", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-cli": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", - "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", - "dependencies": { - "@jest/core": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/types": "^29.6.3", - "chalk": "^4.0.0", - "create-jest": "^29.7.0", - "exit": "^0.1.2", - "import-local": "^3.0.2", - "jest-config": "^29.7.0", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "yargs": "^17.3.1" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/jest-config": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", - "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", - "dependencies": { - "@babel/core": "^7.11.6", - "@jest/test-sequencer": "^29.7.0", - "@jest/types": "^29.6.3", - "babel-jest": "^29.7.0", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-circus": "^29.7.0", - "jest-environment-node": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.7.0", - "jest-runner": "^29.7.0", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "micromatch": "^4.0.4", - "parse-json": "^5.2.0", - "pretty-format": "^29.7.0", - "slash": "^3.0.0", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "@types/node": "*", - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "ts-node": { - "optional": true - } - } - }, - "node_modules/jest-config/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/jest-diff": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", - "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", - "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^29.6.3", - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-docblock": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", - "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", - "dependencies": { - "detect-newline": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-each": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", - "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", - "dependencies": { - "@jest/types": "^29.6.3", - "chalk": "^4.0.0", - "jest-get-type": "^29.6.3", - "jest-util": "^29.7.0", - "pretty-format": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-environment-node": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", - "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", - "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/fake-timers": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "jest-mock": "^29.7.0", - "jest-util": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-get-type": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", - "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-haste-map": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", - "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", - "dependencies": { - "@jest/types": "^29.6.3", - "@types/graceful-fs": "^4.1.3", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-regex-util": "^29.6.3", - "jest-util": "^29.7.0", - "jest-worker": "^29.7.0", - "micromatch": "^4.0.4", - "walker": "^1.0.8" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "optionalDependencies": { - "fsevents": "^2.3.2" - } - }, - "node_modules/jest-leak-detector": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", - "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", - "dependencies": { - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-matcher-utils": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", - "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", - "dependencies": { - "chalk": "^4.0.0", - "jest-diff": "^29.7.0", - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-message-util": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", - "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^29.6.3", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^29.7.0", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-mock": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", - "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", - "dependencies": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "jest-util": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-pnp-resolver": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", - "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", - "engines": { - "node": ">=6" - }, - "peerDependencies": { - "jest-resolve": "*" - }, - "peerDependenciesMeta": { - "jest-resolve": { - "optional": true - } - } - }, - "node_modules/jest-regex-util": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", - "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-resolve": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", - "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", - "dependencies": { - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "resolve": "^1.20.0", - "resolve.exports": "^2.0.0", - "slash": "^3.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-resolve-dependencies": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", - "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", - "dependencies": { - "jest-regex-util": "^29.6.3", - "jest-snapshot": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-runner": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", - "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", - "dependencies": { - "@jest/console": "^29.7.0", - "@jest/environment": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.13.1", - "graceful-fs": "^4.2.9", - "jest-docblock": "^29.7.0", - "jest-environment-node": "^29.7.0", - "jest-haste-map": "^29.7.0", - "jest-leak-detector": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-resolve": "^29.7.0", - "jest-runtime": "^29.7.0", - "jest-util": "^29.7.0", - "jest-watcher": "^29.7.0", - "jest-worker": "^29.7.0", - "p-limit": "^3.1.0", - "source-map-support": "0.5.13" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-runtime": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", - "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", - "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/fake-timers": "^29.7.0", - "@jest/globals": "^29.7.0", - "@jest/source-map": "^29.6.3", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "cjs-module-lexer": "^1.0.0", - "collect-v8-coverage": "^1.0.0", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-mock": "^29.7.0", - "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.7.0", - "jest-snapshot": "^29.7.0", - "jest-util": "^29.7.0", - "slash": "^3.0.0", - "strip-bom": "^4.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-runtime/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/jest-snapshot": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", - "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", - "dependencies": { - "@babel/core": "^7.11.6", - "@babel/generator": "^7.7.2", - "@babel/plugin-syntax-jsx": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/types": "^7.3.3", - "@jest/expect-utils": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^29.7.0", - "graceful-fs": "^4.2.9", - "jest-diff": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-matcher-utils": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0", - "natural-compare": "^1.4.0", - "pretty-format": "^29.7.0", - "semver": "^7.5.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-util": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", - "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", - "dependencies": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-validate": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", - "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", - "dependencies": { - "@jest/types": "^29.6.3", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^29.6.3", - "leven": "^3.1.0", - "pretty-format": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-validate/node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest-watcher": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", - "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", - "dependencies": { - "@jest/test-result": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.13.1", - "jest-util": "^29.7.0", - "string-length": "^4.0.1" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-worker": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", - "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", - "dependencies": { - "@types/node": "*", - "jest-util": "^29.7.0", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/jiti": { - "version": "1.21.0", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz", - "integrity": "sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==", - "bin": { - "jiti": "bin/jiti.js" - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - }, - "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsbn": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", - "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==" - }, - "node_modules/jsdom": { - "version": "24.0.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-24.0.0.tgz", - "integrity": "sha512-UDS2NayCvmXSXVP6mpTj+73JnNQadZlr9N68189xib2tx5Mls7swlTNao26IoHv46BZJFvXygyRtyXd1feAk1A==", - "dependencies": { - "cssstyle": "^4.0.1", - "data-urls": "^5.0.0", - "decimal.js": "^10.4.3", - "form-data": "^4.0.0", - "html-encoding-sniffer": "^4.0.0", - "http-proxy-agent": "^7.0.0", - "https-proxy-agent": "^7.0.2", - "is-potential-custom-element-name": "^1.0.1", - "nwsapi": "^2.2.7", - "parse5": "^7.1.2", - "rrweb-cssom": "^0.6.0", - "saxes": "^6.0.0", - "symbol-tree": "^3.2.4", - "tough-cookie": "^4.1.3", - "w3c-xmlserializer": "^5.0.0", - "webidl-conversions": "^7.0.0", - "whatwg-encoding": "^3.1.1", - "whatwg-mimetype": "^4.0.0", - "whatwg-url": "^14.0.0", - "ws": "^8.16.0", - "xml-name-validator": "^5.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "canvas": "^2.11.2" - }, - "peerDependenciesMeta": { - "canvas": { - "optional": true - } - } - }, - "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/json-bignum": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/json-bignum/-/json-bignum-0.0.3.tgz", - "integrity": "sha512-2WHyXj3OfHSgNyuzDbSxI1w2jgw5gkWSWhS7Qg4bWXx1nLk3jnbwfUeS0PSba3IzpTUWdHxBieELUzXRjQB2zg==", - "peer": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" - }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" - }, - "node_modules/json-schema": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", - "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" - }, - "node_modules/json-schema-to-typescript": { - "version": "12.0.0", - "resolved": "https://registry.npmjs.org/json-schema-to-typescript/-/json-schema-to-typescript-12.0.0.tgz", - "integrity": "sha512-Uk/BDIAo8vqepPBhM86UhNMHgCv7JulicNj/BgnQPHE1fGCoej0UTtcEYzXU/uk6lSvbZCf7pccW+dnNMrr5rg==", - "dev": true, - "dependencies": { - "@bcherny/json-schema-ref-parser": "10.0.5-fork", - "@types/json-schema": "^7.0.11", - "@types/lodash": "^4.14.182", - "@types/prettier": "^2.6.1", - "cli-color": "^2.0.2", - "get-stdin": "^8.0.0", - "glob": "^7.1.6", - "glob-promise": "^4.2.2", - "is-glob": "^4.0.3", - "lodash": "^4.17.21", - "minimist": "^1.2.6", - "mkdirp": "^1.0.4", - "mz": "^2.7.0", - "prettier": "^2.6.2" - }, - "bin": { - "json2ts": "dist/src/cli.js" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/json-schema-to-typescript/node_modules/@types/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", - "dev": true, - "dependencies": { - "@types/minimatch": "*", - "@types/node": "*" - } - }, - "node_modules/json-schema-to-typescript/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/json-schema-to-typescript/node_modules/glob-promise": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/glob-promise/-/glob-promise-4.2.2.tgz", - "integrity": "sha512-xcUzJ8NWN5bktoTIX7eOclO1Npxd/dyVqUJxlLIDasT4C7KZyqlPIwkdJ0Ypiy3p2ZKahTjK4M9uC3sNSfNMzw==", - "dev": true, - "dependencies": { - "@types/glob": "^7.1.3" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "type": "individual", - "url": "https://github.com/sponsors/ahmadnassri" - }, - "peerDependencies": { - "glob": "^7.1.6" - } - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true - }, - "node_modules/json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==" - }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsonc-parser": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.1.tgz", - "integrity": "sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==", - "dev": true - }, - "node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/jsonwebtoken": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz", - "integrity": "sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==", - "dev": true, - "dependencies": { - "jws": "^3.2.2", - "lodash.includes": "^4.3.0", - "lodash.isboolean": "^3.0.3", - "lodash.isinteger": "^4.0.4", - "lodash.isnumber": "^3.0.3", - "lodash.isplainobject": "^4.0.6", - "lodash.isstring": "^4.0.1", - "lodash.once": "^4.0.0", - "ms": "^2.1.1", - "semver": "^7.5.4" - }, - "engines": { - "node": ">=12", - "npm": ">=6" - } - }, - "node_modules/jsonwebtoken/node_modules/jwa": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", - "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", - "dev": true, - "dependencies": { - "buffer-equal-constant-time": "1.0.1", - "ecdsa-sig-formatter": "1.0.11", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/jsonwebtoken/node_modules/jws": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", - "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", - "dev": true, - "dependencies": { - "jwa": "^1.4.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/jsprim": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", - "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", - "dependencies": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.4.0", - "verror": "1.10.0" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/jszip": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz", - "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==", - "dependencies": { - "lie": "~3.3.0", - "pako": "~1.0.2", - "readable-stream": "~2.3.6", - "setimmediate": "^1.0.5" - } - }, - "node_modules/jwa": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.0.tgz", - "integrity": "sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA==", - "dev": true, - "dependencies": { - "buffer-equal-constant-time": "1.0.1", - "ecdsa-sig-formatter": "1.0.11", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/jws": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.0.tgz", - "integrity": "sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==", - "dev": true, - "dependencies": { - "jwa": "^2.0.0", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/keytar": { - "version": "7.9.0", - "resolved": "https://registry.npmjs.org/keytar/-/keytar-7.9.0.tgz", - "integrity": "sha512-VPD8mtVtm5JNtA2AErl6Chp06JBfy7diFQ7TQQhdpWOl6MrCRB+eRbvAZUsbGQS9kiMq0coJsy0W0vHpDCkWsQ==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "node-addon-api": "^4.3.0", - "prebuild-install": "^7.0.1" - } - }, - "node_modules/keyv": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", - "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", - "dependencies": { - "json-buffer": "3.0.1" - } - }, - "node_modules/kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", - "engines": { - "node": ">=6" - } - }, - "node_modules/leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "engines": { - "node": ">=6" - } - }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/lie": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", - "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", - "dependencies": { - "immediate": "~3.0.5" - } - }, - "node_modules/lilconfig": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", - "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", - "engines": { - "node": ">=10" - } - }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" - }, - "node_modules/linkify-it": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-3.0.3.tgz", - "integrity": "sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==", - "dev": true, - "dependencies": { - "uc.micro": "^1.0.1" - } - }, - "node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "node_modules/lodash.assignwith": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.assignwith/-/lodash.assignwith-4.2.0.tgz", - "integrity": "sha512-ZznplvbvtjK2gMvnQ1BR/zqPFZmS6jbK4p+6Up4xcRYA7yMIwxHCfbTcrYxXKzzqLsQ05eJPVznEW3tuwV7k1g==", - "peer": true - }, - "node_modules/lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", - "peer": true - }, - "node_modules/lodash.includes": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", - "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==", - "dev": true - }, - "node_modules/lodash.isboolean": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", - "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==", - "dev": true - }, - "node_modules/lodash.isinteger": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", - "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==", - "dev": true - }, - "node_modules/lodash.isnumber": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", - "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==", - "dev": true - }, - "node_modules/lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", - "dev": true - }, - "node_modules/lodash.isstring": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", - "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==", - "dev": true - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true - }, - "node_modules/lodash.once": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", - "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==", - "dev": true - }, - "node_modules/log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/long": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", - "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==" - }, - "node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, - "node_modules/lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "engines": { - "node": ">=8" - } - }, - "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/lru-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz", - "integrity": "sha512-BpdYkt9EvGl8OfWHDQPISVpcl5xZthb+XPsbELj5AQXxIC8IriDZIQYjBJPEm5rS420sjZ0TLEzRcq5KdBhYrQ==", - "dev": true, - "dependencies": { - "es5-ext": "~0.10.2" - } - }, - "node_modules/make-dir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", - "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", - "dependencies": { - "semver": "^7.5.3" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/make-fetch-happen": { - "version": "10.2.1", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz", - "integrity": "sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==", - "dependencies": { - "agentkeepalive": "^4.2.1", - "cacache": "^16.1.0", - "http-cache-semantics": "^4.1.0", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^7.7.1", - "minipass": "^3.1.6", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^2.0.3", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^7.0.0", - "ssri": "^9.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/make-fetch-happen/node_modules/@tootallnate/once": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", - "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", - "engines": { - "node": ">= 10" - } - }, - "node_modules/make-fetch-happen/node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/make-fetch-happen/node_modules/http-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", - "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", - "dependencies": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/make-fetch-happen/node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/make-fetch-happen/node_modules/lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "engines": { - "node": ">=12" - } - }, - "node_modules/makeerror": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", - "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", - "dependencies": { - "tmpl": "1.0.5" - } - }, - "node_modules/markdown-it": { - "version": "12.3.2", - "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-12.3.2.tgz", - "integrity": "sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg==", - "dev": true, - "dependencies": { - "argparse": "^2.0.1", - "entities": "~2.1.0", - "linkify-it": "^3.0.1", - "mdurl": "^1.0.1", - "uc.micro": "^1.0.5" - }, - "bin": { - "markdown-it": "bin/markdown-it.js" - } - }, - "node_modules/markdown-it/node_modules/entities": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz", - "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==", - "dev": true, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/mdast-util-definitions": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-5.1.2.tgz", - "integrity": "sha512-8SVPMuHqlPME/z3gqVwWY4zVXn8lqKv/pAhC57FuJ40ImXyBpmO5ukh98zB2v7Blql2FiHjHv9LVztSIqjY+MA==", - "dependencies": { - "@types/mdast": "^3.0.0", - "@types/unist": "^2.0.0", - "unist-util-visit": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-from-markdown": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-1.3.1.tgz", - "integrity": "sha512-4xTO/M8c82qBcnQc1tgpNtubGUW/Y1tBQ1B0i5CtSoelOLKFYlElIr3bvgREYYO5iRqbMY1YuqZng0GVOI8Qww==", - "dependencies": { - "@types/mdast": "^3.0.0", - "@types/unist": "^2.0.0", - "decode-named-character-reference": "^1.0.0", - "mdast-util-to-string": "^3.1.0", - "micromark": "^3.0.0", - "micromark-util-decode-numeric-character-reference": "^1.0.0", - "micromark-util-decode-string": "^1.0.0", - "micromark-util-normalize-identifier": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "unist-util-stringify-position": "^3.0.0", - "uvu": "^0.5.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-to-hast": { - "version": "12.3.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-12.3.0.tgz", - "integrity": "sha512-pits93r8PhnIoU4Vy9bjW39M2jJ6/tdHyja9rrot9uujkN7UTU9SDnE6WNJz/IGyQk3XHX6yNNtrBH6cQzm8Hw==", - "dependencies": { - "@types/hast": "^2.0.0", - "@types/mdast": "^3.0.0", - "mdast-util-definitions": "^5.0.0", - "micromark-util-sanitize-uri": "^1.1.0", - "trim-lines": "^3.0.0", - "unist-util-generated": "^2.0.0", - "unist-util-position": "^4.0.0", - "unist-util-visit": "^4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdast-util-to-string": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-3.2.0.tgz", - "integrity": "sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg==", - "dependencies": { - "@types/mdast": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/mdurl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", - "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==", - "dev": true - }, - "node_modules/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/memoizee": { - "version": "0.4.15", - "resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.15.tgz", - "integrity": "sha512-UBWmJpLZd5STPm7PMUlOw/TSy972M+z8gcyQ5veOnSDRREz/0bmpyTfKt3/51DhEBqCZQn1udM/5flcSPYhkdQ==", - "dev": true, - "dependencies": { - "d": "^1.0.1", - "es5-ext": "^0.10.53", - "es6-weak-map": "^2.0.3", - "event-emitter": "^0.3.5", - "is-promise": "^2.2.2", - "lru-queue": "^0.1.0", - "next-tick": "^1.1.0", - "timers-ext": "^0.1.7" - } - }, - "node_modules/merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "engines": { - "node": ">= 8" - } - }, - "node_modules/methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/micromark": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/micromark/-/micromark-3.2.0.tgz", - "integrity": "sha512-uD66tJj54JLYq0De10AhWycZWGQNUvDI55xPgk2sQM5kn1JYlhbCMTtEeT27+vAhW2FBQxLlOmS3pmA7/2z4aA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "@types/debug": "^4.0.0", - "debug": "^4.0.0", - "decode-named-character-reference": "^1.0.0", - "micromark-core-commonmark": "^1.0.1", - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-chunked": "^1.0.0", - "micromark-util-combine-extensions": "^1.0.0", - "micromark-util-decode-numeric-character-reference": "^1.0.0", - "micromark-util-encode": "^1.0.0", - "micromark-util-normalize-identifier": "^1.0.0", - "micromark-util-resolve-all": "^1.0.0", - "micromark-util-sanitize-uri": "^1.0.0", - "micromark-util-subtokenize": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.1", - "uvu": "^0.5.0" - } - }, - "node_modules/micromark-core-commonmark": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-1.1.0.tgz", - "integrity": "sha512-BgHO1aRbolh2hcrzL2d1La37V0Aoz73ymF8rAcKnohLy93titmv62E0gP8Hrx9PKcKrqCZ1BbLGbP3bEhoXYlw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "decode-named-character-reference": "^1.0.0", - "micromark-factory-destination": "^1.0.0", - "micromark-factory-label": "^1.0.0", - "micromark-factory-space": "^1.0.0", - "micromark-factory-title": "^1.0.0", - "micromark-factory-whitespace": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-chunked": "^1.0.0", - "micromark-util-classify-character": "^1.0.0", - "micromark-util-html-tag-name": "^1.0.0", - "micromark-util-normalize-identifier": "^1.0.0", - "micromark-util-resolve-all": "^1.0.0", - "micromark-util-subtokenize": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.1", - "uvu": "^0.5.0" - } - }, - "node_modules/micromark-factory-destination": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-1.1.0.tgz", - "integrity": "sha512-XaNDROBgx9SgSChd69pjiGKbV+nfHGDPVYFs5dOoDd7ZnMAE+Cuu91BCpsY8RT2NP9vo/B8pds2VQNCLiu0zhg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" - } - }, - "node_modules/micromark-factory-label": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-1.1.0.tgz", - "integrity": "sha512-OLtyez4vZo/1NjxGhcpDSbHQ+m0IIGnT8BoPamh+7jVlzLJBH98zzuCoUeMxvM6WsNeh8wx8cKvqLiPHEACn0w==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" - } - }, - "node_modules/micromark-factory-space": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-1.1.0.tgz", - "integrity": "sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-character": "^1.0.0", - "micromark-util-types": "^1.0.0" - } - }, - "node_modules/micromark-factory-title": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-1.1.0.tgz", - "integrity": "sha512-J7n9R3vMmgjDOCY8NPw55jiyaQnH5kBdV2/UXCtZIpnHH3P6nHUKaH7XXEYuWwx/xUJcawa8plLBEjMPU24HzQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" - } - }, - "node_modules/micromark-factory-whitespace": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-1.1.0.tgz", - "integrity": "sha512-v2WlmiymVSp5oMg+1Q0N1Lxmt6pMhIHD457whWM7/GUlEks1hI9xj5w3zbc4uuMKXGisksZk8DzP2UyGbGqNsQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-factory-space": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" - } - }, - "node_modules/micromark-util-character": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-1.2.0.tgz", - "integrity": "sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" - } - }, - "node_modules/micromark-util-chunked": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-1.1.0.tgz", - "integrity": "sha512-Ye01HXpkZPNcV6FiyoW2fGZDUw4Yc7vT0E9Sad83+bEDiCJ1uXu0S3mr8WLpsz3HaG3x2q0HM6CTuPdcZcluFQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-symbol": "^1.0.0" - } - }, - "node_modules/micromark-util-classify-character": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-1.1.0.tgz", - "integrity": "sha512-SL0wLxtKSnklKSUplok1WQFoGhUdWYKggKUiqhX+Swala+BtptGCu5iPRc+xvzJ4PXE/hwM3FNXsfEVgoZsWbw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-character": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" - } - }, - "node_modules/micromark-util-combine-extensions": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-1.1.0.tgz", - "integrity": "sha512-Q20sp4mfNf9yEqDL50WwuWZHUrCO4fEyeDCnMGmG5Pr0Cz15Uo7KBs6jq+dq0EgX4DPwwrh9m0X+zPV1ypFvUA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-chunked": "^1.0.0", - "micromark-util-types": "^1.0.0" - } - }, - "node_modules/micromark-util-decode-numeric-character-reference": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-1.1.0.tgz", - "integrity": "sha512-m9V0ExGv0jB1OT21mrWcuf4QhP46pH1KkfWy9ZEezqHKAxkj4mPCy3nIH1rkbdMlChLHX531eOrymlwyZIf2iw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-symbol": "^1.0.0" - } - }, - "node_modules/micromark-util-decode-string": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-1.1.0.tgz", - "integrity": "sha512-YphLGCK8gM1tG1bd54azwyrQRjCFcmgj2S2GoJDNnh4vYtnL38JS8M4gpxzOPNyHdNEpheyWXCTnnTDY3N+NVQ==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "decode-named-character-reference": "^1.0.0", - "micromark-util-character": "^1.0.0", - "micromark-util-decode-numeric-character-reference": "^1.0.0", - "micromark-util-symbol": "^1.0.0" - } - }, - "node_modules/micromark-util-encode": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-1.1.0.tgz", - "integrity": "sha512-EuEzTWSTAj9PA5GOAs992GzNh2dGQO52UvAbtSOMvXTxv3Criqb6IOzJUBCmEqrrXSblJIJBbFFv6zPxpreiJw==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ] - }, - "node_modules/micromark-util-html-tag-name": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.2.0.tgz", - "integrity": "sha512-VTQzcuQgFUD7yYztuQFKXT49KghjtETQ+Wv/zUjGSGBioZnkA4P1XXZPT1FHeJA6RwRXSF47yvJ1tsJdoxwO+Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ] - }, - "node_modules/micromark-util-normalize-identifier": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-1.1.0.tgz", - "integrity": "sha512-N+w5vhqrBihhjdpM8+5Xsxy71QWqGn7HYNUvch71iV2PM7+E3uWGox1Qp90loa1ephtCxG2ftRV/Conitc6P2Q==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-symbol": "^1.0.0" - } - }, - "node_modules/micromark-util-resolve-all": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-1.1.0.tgz", - "integrity": "sha512-b/G6BTMSg+bX+xVCshPTPyAu2tmA0E4X98NSR7eIbeC6ycCqCeE7wjfDIgzEbkzdEVJXRtOG4FbEm/uGbCRouA==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-types": "^1.0.0" - } - }, - "node_modules/micromark-util-sanitize-uri": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.2.0.tgz", - "integrity": "sha512-QO4GXv0XZfWey4pYFndLUKEAktKkG5kZTdUNaTAkzbuJxn2tNBOr+QtxR2XpWaMhbImT2dPzyLrPXLlPhph34A==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-character": "^1.0.0", - "micromark-util-encode": "^1.0.0", - "micromark-util-symbol": "^1.0.0" - } - }, - "node_modules/micromark-util-subtokenize": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-1.1.0.tgz", - "integrity": "sha512-kUQHyzRoxvZO2PuLzMt2P/dwVsTiivCK8icYTeR+3WgbuPqfHgPPy7nFKbeqRivBvn/3N3GBiNC+JRTMSxEC7A==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ], - "dependencies": { - "micromark-util-chunked": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0", - "uvu": "^0.5.0" - } - }, - "node_modules/micromark-util-symbol": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-1.1.0.tgz", - "integrity": "sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ] - }, - "node_modules/micromark-util-types": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-1.1.0.tgz", - "integrity": "sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==", - "funding": [ - { - "type": "GitHub Sponsors", - "url": "https://github.com/sponsors/unifiedjs" - }, - { - "type": "OpenCollective", - "url": "https://opencollective.com/unified" - } - ] - }, - "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "engines": { - "node": ">=6" - } - }, - "node_modules/mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "engines": { - "node": ">=4" - } - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-collect": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", - "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minipass-fetch": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-2.1.2.tgz", - "integrity": "sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==", - "dependencies": { - "minipass": "^3.1.6", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - }, - "optionalDependencies": { - "encoding": "^0.1.13" - } - }, - "node_modules/minipass-flush": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", - "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minipass-pipeline": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", - "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-sized": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", - "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "dependencies": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/mkdirp-classic": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", - "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==" - }, - "node_modules/mocha": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.3.0.tgz", - "integrity": "sha512-uF2XJs+7xSLsrmIvn37i/wnc91nw7XjOQB8ccyx5aEgdnohr7n+rEiZP23WkCYHjilR6+EboEnbq/ZQDz4LSbg==", - "dependencies": { - "ansi-colors": "4.1.1", - "browser-stdout": "1.3.1", - "chokidar": "3.5.3", - "debug": "4.3.4", - "diff": "5.0.0", - "escape-string-regexp": "4.0.0", - "find-up": "5.0.0", - "glob": "8.1.0", - "he": "1.2.0", - "js-yaml": "4.1.0", - "log-symbols": "4.1.0", - "minimatch": "5.0.1", - "ms": "2.1.3", - "serialize-javascript": "6.0.0", - "strip-json-comments": "3.1.1", - "supports-color": "8.1.1", - "workerpool": "6.2.1", - "yargs": "16.2.0", - "yargs-parser": "20.2.4", - "yargs-unparser": "2.0.0" - }, - "bin": { - "_mocha": "bin/_mocha", - "mocha": "bin/mocha.js" - }, - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/mocha/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/mocha/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/mocha/node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/mocha/node_modules/minimatch": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", - "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/mocha/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, - "node_modules/mocha/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/mocha/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/mocha/node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/mocha/node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/monaco-editor": { - "version": "0.45.0", - "resolved": "https://registry.npmjs.org/monaco-editor/-/monaco-editor-0.45.0.tgz", - "integrity": "sha512-mjv1G1ZzfEE3k9HZN0dQ2olMdwIfaeAAjFiwNprLfYNRSz7ctv9XuCT7gPtBGrMUeV1/iZzYKj17Khu1hxoHOA==" - }, - "node_modules/monaco-vscode-textmate-theme-converter": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/monaco-vscode-textmate-theme-converter/-/monaco-vscode-textmate-theme-converter-0.1.7.tgz", - "integrity": "sha512-ZMsq1RPWwOD3pvXD0n+9ddnhfzZoiUMwNIWPNUqYqEiQeH2HjyZ9KYOdt/pqe0kkN8WnYWLrxT9C/SrtIsAu2Q==", - "dependencies": { - "commander": "^8.1.0", - "fs-extra": "^7.0.1", - "tslib": "^2.3.0" - }, - "bin": { - "mvttc": "lib/cjs/npx-script.js" - }, - "peerDependencies": { - "tslib": "^2.0.1" - } - }, - "node_modules/monaco-vscode-textmate-theme-converter/node_modules/fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, - "node_modules/monaco-vscode-textmate-theme-converter/node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/monaco-vscode-textmate-theme-converter/node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/mri": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", - "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", - "engines": { - "node": ">=4" - } - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/mute-stream": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", - "dev": true - }, - "node_modules/mysql2": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/mysql2/-/mysql2-3.10.1.tgz", - "integrity": "sha512-6zo1T3GILsXMCex3YEu7hCz2OXLUarxFsxvFcUHWMpkPtmZLeTTWgRdc1gWyNJiYt6AxITmIf9bZDRy/jAfWew==", - "dependencies": { - "denque": "^2.1.0", - "generate-function": "^2.3.1", - "iconv-lite": "^0.6.3", - "long": "^5.2.1", - "lru-cache": "^8.0.0", - "named-placeholders": "^1.1.3", - "seq-queue": "^0.0.5", - "sqlstring": "^2.3.2" - }, - "engines": { - "node": ">= 8.0" - } - }, - "node_modules/mysql2/node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/mysql2/node_modules/lru-cache": { - "version": "8.0.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-8.0.5.tgz", - "integrity": "sha512-MhWWlVnuab1RG5/zMRRcVGXZLCXrZTgfwMikgzCegsPnG62yDQo5JnqKkrK4jO5iKqDAZGItAqN5CtKBCBWRUA==", - "engines": { - "node": ">=16.14" - } - }, - "node_modules/mz": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", - "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", - "dependencies": { - "any-promise": "^1.0.0", - "object-assign": "^4.0.1", - "thenify-all": "^1.0.0" - } - }, - "node_modules/named-placeholders": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/named-placeholders/-/named-placeholders-1.1.3.tgz", - "integrity": "sha512-eLoBxg6wE/rZkJPhU/xRX1WTpkFEwDJEN96oxFrTsqBdbT5ec295Q+CoHrL9IT0DipqKhmGcaZmwOt8OON5x1w==", - "dependencies": { - "lru-cache": "^7.14.1" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/named-placeholders/node_modules/lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "engines": { - "node": ">=12" - } - }, - "node_modules/nanoid": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", - "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/napi-build-utils": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz", - "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==" - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==" - }, - "node_modules/natural-compare-lite": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", - "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", - "dev": true - }, - "node_modules/ncp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ncp/-/ncp-2.0.0.tgz", - "integrity": "sha512-zIdGUrPRFTUELUvr3Gmc7KZ2Sw/h1PiVM0Af/oHB6zgnV1ikqSfRk+TOufi79aHYCW3NiOXmr1BP5nWbzojLaA==", - "bin": { - "ncp": "bin/ncp" - } - }, - "node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" - }, - "node_modules/next-tick": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", - "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==", - "dev": true - }, - "node_modules/node-abi": { - "version": "3.56.0", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.56.0.tgz", - "integrity": "sha512-fZjdhDOeRcaS+rcpve7XuwHBmktS1nS1gzgghwKUQQ8nTy2FdSDr6ZT8k6YhvlJeHmmQMYiT/IH9hfco5zeW2Q==", - "dependencies": { - "semver": "^7.3.5" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/node-addon-api": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-4.3.0.tgz", - "integrity": "sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==", - "dev": true - }, - "node_modules/node-api-version": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/node-api-version/-/node-api-version-0.2.0.tgz", - "integrity": "sha512-fthTTsi8CxaBXMaBAD7ST2uylwvsnYxh2PfaScwpMhos6KlSFajXQPcM4ogNE1q2s3Lbz9GCGqeIHC+C6OZnKg==", - "dependencies": { - "semver": "^7.3.5" - } - }, - "node_modules/node-domexception": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", - "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/jimmywarting" - }, - { - "type": "github", - "url": "https://paypal.me/jimmywarting" - } - ], - "engines": { - "node": ">=10.5.0" - } - }, - "node_modules/node-fetch": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz", - "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==", - "dependencies": { - "data-uri-to-buffer": "^4.0.0", - "fetch-blob": "^3.1.4", - "formdata-polyfill": "^4.0.10" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/node-fetch" - } - }, - "node_modules/node-gyp": { - "version": "9.4.1", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-9.4.1.tgz", - "integrity": "sha512-OQkWKbjQKbGkMf/xqI1jjy3oCTgMKJac58G2+bjZb3fza6gW2YrCSdMQYaoTb70crvE//Gngr4f0AgVHmqHvBQ==", - "dependencies": { - "env-paths": "^2.2.0", - "exponential-backoff": "^3.1.1", - "glob": "^7.1.4", - "graceful-fs": "^4.2.6", - "make-fetch-happen": "^10.0.3", - "nopt": "^6.0.0", - "npmlog": "^6.0.0", - "rimraf": "^3.0.2", - "semver": "^7.3.5", - "tar": "^6.1.2", - "which": "^2.0.2" - }, - "bin": { - "node-gyp": "bin/node-gyp.js" - }, - "engines": { - "node": "^12.13 || ^14.13 || >=16" - } - }, - "node_modules/node-gyp/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/node-gyp/node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==" - }, - "node_modules/node-machine-id": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/node-machine-id/-/node-machine-id-1.1.12.tgz", - "integrity": "sha512-QNABxbrPa3qEIfrE6GOJ7BYIuignnJw7iQ2YPbc3Nla1HzRJjXzZOiikfF8m7eAMfichLt3M4VgLOetqgDmgGQ==" - }, - "node_modules/node-releases": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", - "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==" - }, - "node_modules/nopt": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-6.0.0.tgz", - "integrity": "sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==", - "dependencies": { - "abbrev": "^1.0.0" - }, - "bin": { - "nopt": "bin/nopt.js" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-url": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", - "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", - "dependencies": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/nth-check": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", - "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", - "dev": true, - "dependencies": { - "boolbase": "^1.0.0" - }, - "funding": { - "url": "https://github.com/fb55/nth-check?sponsor=1" - } - }, - "node_modules/nwsapi": { - "version": "2.2.7", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.7.tgz", - "integrity": "sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==" - }, - "node_modules/oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "engines": { - "node": "*" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-hash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", - "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", - "engines": { - "node": ">= 6" - } - }, - "node_modules/object-inspect": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", - "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/open": { - "version": "8.4.2", - "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", - "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", - "dev": true, - "dependencies": { - "define-lazy-prop": "^2.0.0", - "is-docker": "^2.1.1", - "is-wsl": "^2.2.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/optionator": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", - "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", - "dev": true, - "dependencies": { - "@aashutoshrathi/word-wrap": "^1.2.3", - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/ora": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", - "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", - "dependencies": { - "bl": "^4.1.0", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-spinners": "^2.5.0", - "is-interactive": "^1.0.0", - "is-unicode-supported": "^0.1.0", - "log-symbols": "^4.1.0", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ora/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/ora/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ovsx": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/ovsx/-/ovsx-0.8.3.tgz", - "integrity": "sha512-LG7wTzy4eYV/KolFeO4AwWPzQSARvCONzd5oHQlNvYOlji2r/zjbdK8pyObZN84uZlk6rQBWrJrAdJfh/SX0Hg==", - "dev": true, - "dependencies": { - "@vscode/vsce": "^2.19.0", - "commander": "^6.1.0", - "follow-redirects": "^1.14.6", - "is-ci": "^2.0.0", - "leven": "^3.1.0", - "semver": "^7.5.2", - "tmp": "^0.2.1" - }, - "bin": { - "ovsx": "lib/ovsx" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/ovsx/node_modules/commander": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", - "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/p-cancelable": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", - "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-map/node_modules/aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-map/node_modules/clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "engines": { - "node": ">=6" - } - }, - "node_modules/p-map/node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "engines": { - "node": ">=6" - } - }, - "node_modules/packet-reader": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/packet-reader/-/packet-reader-1.0.0.tgz", - "integrity": "sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ==" - }, - "node_modules/pad-left": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/pad-left/-/pad-left-2.1.0.tgz", - "integrity": "sha512-HJxs9K9AztdIQIAIa/OIazRAUW/L6B9hbQDxO4X07roW3eo9XqZc2ur9bn1StH9CnbbI9EgvejHQX7CBpCF1QA==", - "peer": true, - "dependencies": { - "repeat-string": "^1.5.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" - }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/parse-semver": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/parse-semver/-/parse-semver-1.1.1.tgz", - "integrity": "sha512-Eg1OuNntBMH0ojvEKSrvDSnwLmvVuUOSdylH/pSCPNMIspLlweJyIWXCE+k/5hm3cj/EBUYwmWkjhBALNP4LXQ==", - "dev": true, - "dependencies": { - "semver": "^5.1.0" - } - }, - "node_modules/parse-semver/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/parse5": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", - "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", - "dependencies": { - "entities": "^4.4.0" - }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" - } - }, - "node_modules/parse5-htmlparser2-tree-adapter": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz", - "integrity": "sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==", - "dev": true, - "dependencies": { - "domhandler": "^5.0.2", - "parse5": "^7.0.0" - }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" - } - }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" - }, - "node_modules/path-scurry": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", - "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", - "dependencies": { - "lru-cache": "^9.1.1 || ^10.0.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", - "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", - "engines": { - "node": "14 || >=16.14" - } - }, - "node_modules/path-scurry/node_modules/minipass": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", - "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" - }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==" - }, - "node_modules/performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==" - }, - "node_modules/pg": { - "version": "8.11.3", - "resolved": "https://registry.npmjs.org/pg/-/pg-8.11.3.tgz", - "integrity": "sha512-+9iuvG8QfaaUrrph+kpF24cXkH1YOOUeArRNYIxq1viYHZagBxrTno7cecY1Fa44tJeZvaoG+Djpkc3JwehN5g==", - "dependencies": { - "buffer-writer": "2.0.0", - "packet-reader": "1.0.0", - "pg-connection-string": "^2.6.2", - "pg-pool": "^3.6.1", - "pg-protocol": "^1.6.0", - "pg-types": "^2.1.0", - "pgpass": "1.x" - }, - "engines": { - "node": ">= 8.0.0" - }, - "optionalDependencies": { - "pg-cloudflare": "^1.1.1" - }, - "peerDependencies": { - "pg-native": ">=3.0.1" - }, - "peerDependenciesMeta": { - "pg-native": { - "optional": true - } - } - }, - "node_modules/pg-cloudflare": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pg-cloudflare/-/pg-cloudflare-1.1.1.tgz", - "integrity": "sha512-xWPagP/4B6BgFO+EKz3JONXv3YDgvkbVrGw2mTo3D6tVDQRh1e7cqVGvyR3BE+eQgAvx1XhW/iEASj4/jCWl3Q==", - "optional": true - }, - "node_modules/pg-connection-string": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.6.2.tgz", - "integrity": "sha512-ch6OwaeaPYcova4kKZ15sbJ2hKb/VP48ZD2gE7i1J+L4MspCtBMAx8nMgz7bksc7IojCIIWuEhHibSMFH8m8oA==" - }, - "node_modules/pg-int8": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz", - "integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==", - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/pg-pool": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.6.1.tgz", - "integrity": "sha512-jizsIzhkIitxCGfPRzJn1ZdcosIt3pz9Sh3V01fm1vZnbnCMgmGl5wvGGdNN2EL9Rmb0EcFoCkixH4Pu+sP9Og==", - "peerDependencies": { - "pg": ">=8.0" - } - }, - "node_modules/pg-protocol": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.6.0.tgz", - "integrity": "sha512-M+PDm637OY5WM307051+bsDia5Xej6d9IR4GwJse1qA1DIhiKlksvrneZOYQq42OM+spubpcNYEo2FcKQrDk+Q==" - }, - "node_modules/pg-types": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz", - "integrity": "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==", - "dependencies": { - "pg-int8": "1.0.1", - "postgres-array": "~2.0.0", - "postgres-bytea": "~1.0.0", - "postgres-date": "~1.0.4", - "postgres-interval": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/pgpass": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/pgpass/-/pgpass-1.0.5.tgz", - "integrity": "sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==", - "dependencies": { - "split2": "^4.1.0" - } - }, - "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pid-port": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/pid-port/-/pid-port-0.2.0.tgz", - "integrity": "sha512-xVU9H1FCRSeGrD9Oim5bLg2U7B2BgW0qzK2oahpV5BIf9hwzqQaWyOkOVC0Kgbsc90A9x6525beawx+QK+JduQ==", - "dependencies": { - "execa": "^5.1.1" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pirates": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", - "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", - "engines": { - "node": ">= 6" - } - }, - "node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pkg-dir/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/postcss": { - "version": "8.4.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.35.tgz", - "integrity": "sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "nanoid": "^3.3.7", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/postcss-import": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", - "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", - "dependencies": { - "postcss-value-parser": "^4.0.0", - "read-cache": "^1.0.0", - "resolve": "^1.1.7" - }, - "engines": { - "node": ">=14.0.0" - }, - "peerDependencies": { - "postcss": "^8.0.0" - } - }, - "node_modules/postcss-js": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", - "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", - "dependencies": { - "camelcase-css": "^2.0.1" - }, - "engines": { - "node": "^12 || ^14 || >= 16" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": "^8.4.21" - } - }, - "node_modules/postcss-load-config": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", - "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "lilconfig": "^3.0.0", - "yaml": "^2.3.4" - }, - "engines": { - "node": ">= 14" - }, - "peerDependencies": { - "postcss": ">=8.0.9", - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "postcss": { - "optional": true - }, - "ts-node": { - "optional": true - } - } - }, - "node_modules/postcss-load-config/node_modules/lilconfig": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.1.tgz", - "integrity": "sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/antonk52" - } - }, - "node_modules/postcss-nested": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz", - "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==", - "dependencies": { - "postcss-selector-parser": "^6.0.11" - }, - "engines": { - "node": ">=12.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - "peerDependencies": { - "postcss": "^8.2.14" - } - }, - "node_modules/postcss-selector-parser": { - "version": "6.0.15", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz", - "integrity": "sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" - }, - "node_modules/postgres-array": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz", - "integrity": "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==", - "engines": { - "node": ">=4" - } - }, - "node_modules/postgres-bytea": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz", - "integrity": "sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postgres-date": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz", - "integrity": "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postgres-interval": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz", - "integrity": "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==", - "dependencies": { - "xtend": "^4.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/posthog-node": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/posthog-node/-/posthog-node-3.6.3.tgz", - "integrity": "sha512-JB+ei0LkwE+rKHyW5z79Nd1jUaGxU6TvkfjFqY9vQaHxU5aU8dRl0UUaEmZdZbHwjp3WmXCBQQRNyimwbNQfCw==", - "dependencies": { - "axios": "^1.6.2", - "rusha": "^0.8.14" - }, - "engines": { - "node": ">=15.0.0" - } - }, - "node_modules/prebuild-install": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.2.tgz", - "integrity": "sha512-UnNke3IQb6sgarcZIDU3gbMeTp/9SSU1DAIkil7PrqG1vZlBtY5msYccSKSHDqa3hNg436IXK+SNImReuA1wEQ==", - "dependencies": { - "detect-libc": "^2.0.0", - "expand-template": "^2.0.3", - "github-from-package": "0.0.0", - "minimist": "^1.2.3", - "mkdirp-classic": "^0.5.3", - "napi-build-utils": "^1.0.1", - "node-abi": "^3.3.0", - "pump": "^3.0.0", - "rc": "^1.2.7", - "simple-get": "^4.0.0", - "tar-fs": "^2.0.0", - "tunnel-agent": "^0.6.0" - }, - "bin": { - "prebuild-install": "bin.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/prettier": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", - "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", - "dev": true, - "bin": { - "prettier": "bin-prettier.js" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" - } - }, - "node_modules/pretty-format": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", - "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/pretty-format/node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" - }, - "node_modules/process-exists": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/process-exists/-/process-exists-4.1.0.tgz", - "integrity": "sha512-BBJoiorUKoP2AuM5q/yKwIfT1YWRHsaxjW+Ayu9erLhqKOfnXzzVVML0XTYoQZuI1YvcWKmc1dh06DEy4+KzfA==", - "dependencies": { - "ps-list": "^6.3.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/process-exists/node_modules/ps-list": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/ps-list/-/ps-list-6.3.0.tgz", - "integrity": "sha512-qau0czUSB0fzSlBOQt0bo+I2v6R+xiQdj78e1BR/Qjfl5OHWJ/urXi8+ilw1eHe+5hSeDI1wrwVTgDp2wst4oA==", - "engines": { - "node": ">=8" - } - }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" - }, - "node_modules/promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==" - }, - "node_modules/promise-retry": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", - "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", - "dependencies": { - "err-code": "^2.0.2", - "retry": "^0.12.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/prompts": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", - "dependencies": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/prop-types": { - "version": "15.8.1", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", - "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", - "dependencies": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.13.1" - } - }, - "node_modules/prop-types/node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" - }, - "node_modules/property-information": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.4.1.tgz", - "integrity": "sha512-OHYtXfu5aI2sS2LWFSN5rgJjrQ4pCy8i1jubJLe2QvMF8JJ++HXTUIVWFLfXJoaOfvYYjk2SN8J2wFUWIGXT4w==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" - }, - "node_modules/ps-list": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/ps-list/-/ps-list-7.2.0.tgz", - "integrity": "sha512-v4Bl6I3f2kJfr5o80ShABNHAokIgY+wFDTQfE+X3zWYgSGQOCBeYptLZUpoOALBqO5EawmDN/tjTldJesd0ujQ==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/psl": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", - "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==" - }, - "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "engines": { - "node": ">=6" - } - }, - "node_modules/pure-rand": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.4.tgz", - "integrity": "sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA==", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/dubzzz" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/fast-check" - } - ] - }, - "node_modules/qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", - "dependencies": { - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/querystringify": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", - "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/quick-lru": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", - "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/raw-body": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", - "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", - "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "dependencies": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "bin": { - "rc": "cli.js" - } - }, - "node_modules/rc/node_modules/strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", - "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", - "dependencies": { - "loose-envify": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-dom": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", - "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", - "dependencies": { - "loose-envify": "^1.1.0", - "scheduler": "^0.23.0" - }, - "peerDependencies": { - "react": "^18.2.0" - } - }, - "node_modules/react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" - }, - "node_modules/react-markdown": { - "version": "8.0.7", - "resolved": "https://registry.npmjs.org/react-markdown/-/react-markdown-8.0.7.tgz", - "integrity": "sha512-bvWbzG4MtOU62XqBx3Xx+zB2raaFFsq4mYiAzfjXJMEz2sixgeAfraA3tvzULF02ZdOMUOKTBFFaZJDDrq+BJQ==", - "dependencies": { - "@types/hast": "^2.0.0", - "@types/prop-types": "^15.0.0", - "@types/unist": "^2.0.0", - "comma-separated-tokens": "^2.0.0", - "hast-util-whitespace": "^2.0.0", - "prop-types": "^15.0.0", - "property-information": "^6.0.0", - "react-is": "^18.0.0", - "remark-parse": "^10.0.0", - "remark-rehype": "^10.0.0", - "space-separated-tokens": "^2.0.0", - "style-to-object": "^0.4.0", - "unified": "^10.0.0", - "unist-util-visit": "^4.0.0", - "vfile": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - }, - "peerDependencies": { - "@types/react": ">=16", - "react": ">=16" - } - }, - "node_modules/react-markdown/node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" - }, - "node_modules/react-redux": { - "version": "8.1.3", - "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-8.1.3.tgz", - "integrity": "sha512-n0ZrutD7DaX/j9VscF+uTALI3oUPa/pO4Z3soOBIjuRn/FzVu6aehhysxZCLi6y7duMf52WNZGMl7CtuK5EnRw==", - "dependencies": { - "@babel/runtime": "^7.12.1", - "@types/hoist-non-react-statics": "^3.3.1", - "@types/use-sync-external-store": "^0.0.3", - "hoist-non-react-statics": "^3.3.2", - "react-is": "^18.0.0", - "use-sync-external-store": "^1.0.0" - }, - "peerDependencies": { - "@types/react": "^16.8 || ^17.0 || ^18.0", - "@types/react-dom": "^16.8 || ^17.0 || ^18.0", - "react": "^16.8 || ^17.0 || ^18.0", - "react-dom": "^16.8 || ^17.0 || ^18.0", - "react-native": ">=0.59", - "redux": "^4 || ^5.0.0-beta.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - }, - "react-dom": { - "optional": true - }, - "react-native": { - "optional": true - }, - "redux": { - "optional": true - } - } - }, - "node_modules/react-redux/node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" - }, - "node_modules/read": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", - "integrity": "sha512-rSOKNYUmaxy0om1BNjMN4ezNT6VKK+2xF4GBhc81mkH7L60i6dp8qPYrkndNLT3QPphoII3maL9PVC9XmhHwVQ==", - "dev": true, - "dependencies": { - "mute-stream": "~0.0.4" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/read-binary-file-arch": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/read-binary-file-arch/-/read-binary-file-arch-1.0.6.tgz", - "integrity": "sha512-BNg9EN3DD3GsDXX7Aa8O4p92sryjkmzYYgmgTAc6CA4uGLEDzFfxOxugu21akOxpcXHiEgsYkC6nPsQvLLLmEg==", - "dependencies": { - "debug": "^4.3.4" - }, - "bin": { - "read-binary-file-arch": "cli.js" - } - }, - "node_modules/read-cache": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", - "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", - "dependencies": { - "pify": "^2.3.0" - } - }, - "node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/readable-stream/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/redux": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/redux/-/redux-4.2.1.tgz", - "integrity": "sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w==", - "dependencies": { - "@babel/runtime": "^7.9.2" - } - }, - "node_modules/redux-thunk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-2.4.2.tgz", - "integrity": "sha512-+P3TjtnP0k/FEjcBL5FZpoovtvrTNT/UXd4/sluaSyrURlSlhLSzEdfsTBW7WsKB6yPvgd7q/iZPICFjW4o57Q==", - "peerDependencies": { - "redux": "^4" - } - }, - "node_modules/reflect-metadata": { - "version": "0.1.14", - "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.14.tgz", - "integrity": "sha512-ZhYeb6nRaXCfhnndflDK8qI6ZQ/YcWZCISRAWICW9XYqMUwjZM9Z0DveWX/ABN01oxSHwVxKQmxeYZSsm0jh5A==", - "dev": true, - "peer": true - }, - "node_modules/regenerator-runtime": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", - "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" - }, - "node_modules/remark-parse": { - "version": "10.0.2", - "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-10.0.2.tgz", - "integrity": "sha512-3ydxgHa/ZQzG8LvC7jTXccARYDcRld3VfcgIIFs7bI6vbRSxJJmzgLEIIoYKyrfhaY+ujuWaf/PJiMZXoiCXgw==", - "dependencies": { - "@types/mdast": "^3.0.0", - "mdast-util-from-markdown": "^1.0.0", - "unified": "^10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/remark-rehype": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-10.1.0.tgz", - "integrity": "sha512-EFmR5zppdBp0WQeDVZ/b66CWJipB2q2VLNFMabzDSGR66Z2fQii83G5gTBbgGEnEEA0QRussvrFHxk1HWGJskw==", - "dependencies": { - "@types/hast": "^2.0.0", - "@types/mdast": "^3.0.0", - "mdast-util-to-hast": "^12.1.0", - "unified": "^10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", - "peer": true, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", - "dependencies": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/request/node_modules/form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 0.12" - } - }, - "node_modules/request/node_modules/qs": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", - "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/request/node_modules/tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dependencies": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/request/node_modules/uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", - "bin": { - "uuid": "bin/uuid" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==" - }, - "node_modules/reselect": { - "version": "4.1.8", - "resolved": "https://registry.npmjs.org/reselect/-/reselect-4.1.8.tgz", - "integrity": "sha512-ab9EmR80F/zQTMNeneUr4cv+jSwPJgIlvEmVwLerwrWVbpLlBuls9XHzIeTFy4cegU2NHBp3va0LKOzU5qFEYQ==" - }, - "node_modules/resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", - "dependencies": { - "is-core-module": "^2.13.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-alpn": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", - "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==" - }, - "node_modules/resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "dependencies": { - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-cwd/node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/resolve.exports": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", - "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", - "engines": { - "node": ">=10" - } - }, - "node_modules/responselike": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz", - "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==", - "dependencies": { - "lowercase-keys": "^2.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", - "engines": { - "node": ">= 4" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rimraf": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.5.tgz", - "integrity": "sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==", - "dev": true, - "dependencies": { - "glob": "^10.3.7" - }, - "bin": { - "rimraf": "dist/esm/bin.mjs" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rimraf/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/rimraf/node_modules/glob": { - "version": "10.3.10", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", - "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", - "dev": true, - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^2.3.5", - "minimatch": "^9.0.1", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", - "path-scurry": "^1.10.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rimraf/node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rimraf/node_modules/minipass": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", - "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", - "dev": true, - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/rollup": { - "version": "3.29.4", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz", - "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==", - "dev": true, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=14.18.0", - "npm": ">=8.0.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/rrweb-cssom": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.6.0.tgz", - "integrity": "sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==" - }, - "node_modules/run-async": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", - "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/rusha": { - "version": "0.8.14", - "resolved": "https://registry.npmjs.org/rusha/-/rusha-0.8.14.tgz", - "integrity": "sha512-cLgakCUf6PedEu15t8kbsjnwIFFR2D4RfL+W3iWFJ4iac7z4B0ZI8fxy4R3J956kAI68HclCFGL8MPoUVC3qVA==" - }, - "node_modules/rxjs": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", - "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", - "dev": true, - "dependencies": { - "tslib": "^2.1.0" - } - }, - "node_modules/sade": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", - "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", - "dependencies": { - "mri": "^1.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "node_modules/sax": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz", - "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==", - "dev": true - }, - "node_modules/saxes": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", - "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", - "dependencies": { - "xmlchars": "^2.2.0" - }, - "engines": { - "node": ">=v12.22.7" - } - }, - "node_modules/scheduler": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", - "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", - "dependencies": { - "loose-envify": "^1.1.0" - } - }, - "node_modules/semver": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", - "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", - "dependencies": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/send/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/send/node_modules/debug/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/send/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, - "node_modules/seq-queue": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/seq-queue/-/seq-queue-0.0.5.tgz", - "integrity": "sha512-hr3Wtp/GZIc/6DAGPDcV4/9WoZhjrkXsi5B/07QgX8tsdc6ilr7BFM6PM6rbdAX1kFSDYeZGLipIZZKyQP0O5Q==" - }, - "node_modules/serialize-javascript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/serve-static": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", - "dependencies": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.18.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==" - }, - "node_modules/set-function-length": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", - "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", - "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==" - }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "engines": { - "node": ">=8" - } - }, - "node_modules/side-channel": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", - "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", - "dependencies": { - "call-bind": "^1.0.7", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4", - "object-inspect": "^1.13.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" - }, - "node_modules/simple-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", - "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/simple-get": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz", - "integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "decompress-response": "^6.0.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" - } - }, - "node_modules/sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" - }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "engines": { - "node": ">=8" - } - }, - "node_modules/smart-buffer": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", - "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", - "engines": { - "node": ">= 6.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/socket.io-client": { - "version": "4.7.4", - "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.7.4.tgz", - "integrity": "sha512-wh+OkeF0rAVCrABWQBaEjLfb7DVPotMbu0cgWgyR0v6eA4EoVnAwcIeIbcdTE3GT/H3kbdLl7OoH2+asoDRIIg==", - "dependencies": { - "@socket.io/component-emitter": "~3.1.0", - "debug": "~4.3.2", - "engine.io-client": "~6.5.2", - "socket.io-parser": "~4.2.4" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/socket.io-parser": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.4.tgz", - "integrity": "sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==", - "dependencies": { - "@socket.io/component-emitter": "~3.1.0", - "debug": "~4.3.1" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/socks": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.1.tgz", - "integrity": "sha512-B6w7tkwNid7ToxjZ08rQMT8M9BJAf8DKx8Ft4NivzH0zBUfd6jldGcisJn/RLgxcX3FPNDdNQCUEMMT79b+oCQ==", - "dependencies": { - "ip-address": "^9.0.5", - "smart-buffer": "^4.2.0" - }, - "engines": { - "node": ">= 10.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/socks-proxy-agent": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz", - "integrity": "sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==", - "dependencies": { - "agent-base": "^6.0.2", - "debug": "^4.3.3", - "socks": "^2.6.2" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/socks-proxy-agent/node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.13", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", - "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/space-separated-tokens": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", - "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/spawn-command": { - "version": "0.0.2-1", - "resolved": "https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2-1.tgz", - "integrity": "sha512-n98l9E2RMSJ9ON1AKisHzz7V42VDiBQGY6PB1BwRglz99wpVsSuGzQ+jOi6lFXBGVTCrRpltvjm+/XA+tpeJrg==", - "dev": true - }, - "node_modules/split2": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", - "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", - "engines": { - "node": ">= 10.x" - } - }, - "node_modules/sprintf-js": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", - "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==" - }, - "node_modules/sqlite3": { - "version": "5.1.7", - "resolved": "https://registry.npmjs.org/sqlite3/-/sqlite3-5.1.7.tgz", - "integrity": "sha512-GGIyOiFaG+TUra3JIfkI/zGP8yZYLPQ0pl1bH+ODjiX57sPhrLU5sQJn1y9bDKZUFYkX1crlrPfSYt0BKKdkog==", - "hasInstallScript": true, - "dependencies": { - "bindings": "^1.5.0", - "node-addon-api": "^7.0.0", - "prebuild-install": "^7.1.1", - "tar": "^6.1.11" - }, - "optionalDependencies": { - "node-gyp": "8.x" - }, - "peerDependencies": { - "node-gyp": "8.x" - }, - "peerDependenciesMeta": { - "node-gyp": { - "optional": true - } - } - }, - "node_modules/sqlite3/node_modules/@npmcli/fs": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz", - "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==", - "optional": true, - "dependencies": { - "@gar/promisify": "^1.0.1", - "semver": "^7.3.5" - } - }, - "node_modules/sqlite3/node_modules/@npmcli/move-file": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", - "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", - "deprecated": "This functionality has been moved to @npmcli/fs", - "optional": true, - "dependencies": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/sqlite3/node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "optional": true, - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/sqlite3/node_modules/cacache": { - "version": "15.3.0", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", - "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", - "optional": true, - "dependencies": { - "@npmcli/fs": "^1.0.0", - "@npmcli/move-file": "^1.0.1", - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "glob": "^7.1.4", - "infer-owner": "^1.0.4", - "lru-cache": "^6.0.0", - "minipass": "^3.1.1", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.2", - "mkdirp": "^1.0.3", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^8.0.1", - "tar": "^6.0.2", - "unique-filename": "^1.1.1" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/sqlite3/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "optional": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/sqlite3/node_modules/http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", - "optional": true, - "dependencies": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/sqlite3/node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "optional": true, - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/sqlite3/node_modules/make-fetch-happen": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", - "integrity": "sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==", - "optional": true, - "dependencies": { - "agentkeepalive": "^4.1.3", - "cacache": "^15.2.0", - "http-cache-semantics": "^4.1.0", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^6.0.0", - "minipass": "^3.1.3", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^1.3.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.2", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^6.0.0", - "ssri": "^8.0.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/sqlite3/node_modules/minipass-fetch": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz", - "integrity": "sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==", - "optional": true, - "dependencies": { - "minipass": "^3.1.0", - "minipass-sized": "^1.0.3", - "minizlib": "^2.0.0" - }, - "engines": { - "node": ">=8" - }, - "optionalDependencies": { - "encoding": "^0.1.12" - } - }, - "node_modules/sqlite3/node_modules/node-addon-api": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.0.tgz", - "integrity": "sha512-mNcltoe1R8o7STTegSOHdnJNN7s5EUvhoS7ShnTHDyOSd+8H+UdWODq6qSv67PjC8Zc5JRT8+oLAMCr0SIXw7g==", - "engines": { - "node": "^16 || ^18 || >= 20" - } - }, - "node_modules/sqlite3/node_modules/node-gyp": { - "version": "8.4.1", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-8.4.1.tgz", - "integrity": "sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==", - "optional": true, - "dependencies": { - "env-paths": "^2.2.0", - "glob": "^7.1.4", - "graceful-fs": "^4.2.6", - "make-fetch-happen": "^9.1.0", - "nopt": "^5.0.0", - "npmlog": "^6.0.0", - "rimraf": "^3.0.2", - "semver": "^7.3.5", - "tar": "^6.1.2", - "which": "^2.0.2" - }, - "bin": { - "node-gyp": "bin/node-gyp.js" - }, - "engines": { - "node": ">= 10.12.0" - } - }, - "node_modules/sqlite3/node_modules/nopt": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", - "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", - "optional": true, - "dependencies": { - "abbrev": "1" - }, - "bin": { - "nopt": "bin/nopt.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/sqlite3/node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "optional": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/sqlite3/node_modules/socks-proxy-agent": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz", - "integrity": "sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==", - "optional": true, - "dependencies": { - "agent-base": "^6.0.2", - "debug": "^4.3.3", - "socks": "^2.6.2" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/sqlite3/node_modules/ssri": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", - "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", - "optional": true, - "dependencies": { - "minipass": "^3.1.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/sqlite3/node_modules/unique-filename": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", - "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", - "optional": true, - "dependencies": { - "unique-slug": "^2.0.0" - } - }, - "node_modules/sqlite3/node_modules/unique-slug": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", - "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", - "optional": true, - "dependencies": { - "imurmurhash": "^0.1.4" - } - }, - "node_modules/sqlstring": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.3.tgz", - "integrity": "sha512-qC9iz2FlN7DQl3+wjwn3802RTyjCx7sDvfQEXchwa6CWOx07/WVfh91gBmQ9fahw8snwGEWU3xGzOt4tFyHLxg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/sshpk": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.18.0.tgz", - "integrity": "sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==", - "dependencies": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - }, - "bin": { - "sshpk-conv": "bin/sshpk-conv", - "sshpk-sign": "bin/sshpk-sign", - "sshpk-verify": "bin/sshpk-verify" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sshpk/node_modules/jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==" - }, - "node_modules/ssri": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz", - "integrity": "sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==", - "dependencies": { - "minipass": "^3.1.1" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/stack-utils": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", - "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", - "dependencies": { - "escape-string-regexp": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/stack-utils/node_modules/escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "engines": { - "node": ">=8" - } - }, - "node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/stoppable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/stoppable/-/stoppable-1.1.0.tgz", - "integrity": "sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw==", - "dev": true, - "engines": { - "node": ">=4", - "npm": ">=6" - } - }, - "node_modules/stream-read-all": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/stream-read-all/-/stream-read-all-3.0.1.tgz", - "integrity": "sha512-EWZT9XOceBPlVJRrYcykW8jyRSZYbkb/0ZK36uLEmoWVO5gxBOnntNTseNzfREsqxqdfEGQrD8SXQ3QWbBmq8A==", - "peer": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/string_decoder/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/string-length": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", - "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", - "dependencies": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/string-length/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/string-length/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width-cjs": { - "name": "string-width", - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width-cjs/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width-cjs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/string-width-cjs/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/string-width/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/strip-ansi-cjs": { - "name": "strip-ansi", - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "engines": { - "node": ">=6" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/style-to-object": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-0.4.4.tgz", - "integrity": "sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==", - "dependencies": { - "inline-style-parser": "0.1.1" - } - }, - "node_modules/sucrase": { - "version": "3.35.0", - "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", - "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.2", - "commander": "^4.0.0", - "glob": "^10.3.10", - "lines-and-columns": "^1.1.6", - "mz": "^2.7.0", - "pirates": "^4.0.1", - "ts-interface-checker": "^0.1.9" - }, - "bin": { - "sucrase": "bin/sucrase", - "sucrase-node": "bin/sucrase-node" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/sucrase/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/sucrase/node_modules/commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "engines": { - "node": ">= 6" - } - }, - "node_modules/sucrase/node_modules/glob": { - "version": "10.3.10", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", - "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^2.3.5", - "minimatch": "^9.0.1", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", - "path-scurry": "^1.10.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/sucrase/node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/sucrase/node_modules/minipass": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", - "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/symbol-tree": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", - "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==" - }, - "node_modules/table-layout": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-3.0.2.tgz", - "integrity": "sha512-rpyNZYRw+/C+dYkcQ3Pr+rLxW4CfHpXjPDnG7lYhdRoUcZTUt+KEsX+94RGp/aVp/MQU35JCITv2T/beY4m+hw==", - "peer": true, - "dependencies": { - "@75lb/deep-merge": "^1.1.1", - "array-back": "^6.2.2", - "command-line-args": "^5.2.1", - "command-line-usage": "^7.0.0", - "stream-read-all": "^3.0.1", - "typical": "^7.1.1", - "wordwrapjs": "^5.1.0" - }, - "bin": { - "table-layout": "bin/cli.js" - }, - "engines": { - "node": ">=12.17" - } - }, - "node_modules/table-layout/node_modules/array-back": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-6.2.2.tgz", - "integrity": "sha512-gUAZ7HPyb4SJczXAMUXMGAvI976JoK3qEx9v1FTmeYuJj0IBiaKttG1ydtGKdkfqWkIkouke7nG8ufGy77+Cvw==", - "peer": true, - "engines": { - "node": ">=12.17" - } - }, - "node_modules/table-layout/node_modules/typical": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/typical/-/typical-7.1.1.tgz", - "integrity": "sha512-T+tKVNs6Wu7IWiAce5BgMd7OZfNYUndHwc5MknN+UHOudi7sGZzuHdCadllRuqJ3fPtgFtIH9+lt9qRv6lmpfA==", - "peer": true, - "engines": { - "node": ">=12.17" - } - }, - "node_modules/tailwindcss": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.1.tgz", - "integrity": "sha512-qAYmXRfk3ENzuPBakNK0SRrUDipP8NQnEY6772uDhflcQz5EhRdD7JNZxyrFHVQNCwULPBn6FNPp9brpO7ctcA==", - "dependencies": { - "@alloc/quick-lru": "^5.2.0", - "arg": "^5.0.2", - "chokidar": "^3.5.3", - "didyoumean": "^1.2.2", - "dlv": "^1.1.3", - "fast-glob": "^3.3.0", - "glob-parent": "^6.0.2", - "is-glob": "^4.0.3", - "jiti": "^1.19.1", - "lilconfig": "^2.1.0", - "micromatch": "^4.0.5", - "normalize-path": "^3.0.0", - "object-hash": "^3.0.0", - "picocolors": "^1.0.0", - "postcss": "^8.4.23", - "postcss-import": "^15.1.0", - "postcss-js": "^4.0.1", - "postcss-load-config": "^4.0.1", - "postcss-nested": "^6.0.1", - "postcss-selector-parser": "^6.0.11", - "resolve": "^1.22.2", - "sucrase": "^3.32.0" - }, - "bin": { - "tailwind": "lib/cli.js", - "tailwindcss": "lib/cli.js" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/tar": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz", - "integrity": "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==", - "dependencies": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^5.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/tar-fs": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", - "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", - "dependencies": { - "chownr": "^1.1.1", - "mkdirp-classic": "^0.5.2", - "pump": "^3.0.0", - "tar-stream": "^2.1.4" - } - }, - "node_modules/tar-fs/node_modules/chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" - }, - "node_modules/tar-stream": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", - "dependencies": { - "bl": "^4.0.3", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/tar-stream/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/tar/node_modules/minipass": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/taskkill": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/taskkill/-/taskkill-4.0.0.tgz", - "integrity": "sha512-h+BGQ8ExIUZ81h4iHRvatZY5eeBBl2WZk31MmMdFG9LBTc5eCH5u/bzZ7phaPH3bsiB7WhM7YTkOyB2dyFQfXg==", - "dependencies": { - "arrify": "^3.0.0", - "execa": "^5.1.1" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/test-exclude/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true - }, - "node_modules/thenify": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", - "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", - "dependencies": { - "any-promise": "^1.0.0" - } - }, - "node_modules/thenify-all": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", - "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", - "dependencies": { - "thenify": ">= 3.1.0 < 4" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", - "dev": true - }, - "node_modules/timers-ext": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.7.tgz", - "integrity": "sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ==", - "dev": true, - "dependencies": { - "es5-ext": "~0.10.46", - "next-tick": "1" - } - }, - "node_modules/tmp": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz", - "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==", - "dev": true, - "engines": { - "node": ">=14.14" - } - }, - "node_modules/tmpl": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", - "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==" - }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "engines": { - "node": ">=4" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/tough-cookie": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz", - "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==", - "dependencies": { - "psl": "^1.1.33", - "punycode": "^2.1.1", - "universalify": "^0.2.0", - "url-parse": "^1.5.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/tough-cookie/node_modules/universalify": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", - "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/tr46": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-5.0.0.tgz", - "integrity": "sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g==", - "dependencies": { - "punycode": "^2.3.1" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/tree-kill": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", - "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", - "dev": true, - "bin": { - "tree-kill": "cli.js" - } - }, - "node_modules/trim-lines": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", - "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/trough": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.2.0.tgz", - "integrity": "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/ts-interface-checker": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", - "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==" - }, - "node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" - }, - "node_modules/tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "dev": true, - "dependencies": { - "tslib": "^1.8.1" - }, - "engines": { - "node": ">= 6" - }, - "peerDependencies": { - "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" - } - }, - "node_modules/tsutils/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "node_modules/tunnel": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", - "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==", - "dev": true, - "engines": { - "node": ">=0.6.11 <=0.7.0 || >=0.7.3" - } - }, - "node_modules/tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", - "dependencies": { - "safe-buffer": "^5.0.1" - }, - "engines": { - "node": "*" - } - }, - "node_modules/tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==" - }, - "node_modules/type": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz", - "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==", - "dev": true - }, - "node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "engines": { - "node": ">=4" - } - }, - "node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/typed-rest-client": { - "version": "1.8.11", - "resolved": "https://registry.npmjs.org/typed-rest-client/-/typed-rest-client-1.8.11.tgz", - "integrity": "sha512-5UvfMpd1oelmUPRbbaVnq+rHP7ng2cE4qoQkQeAqxRL6PklkxsM0g32/HL0yfvruK6ojQ5x8EE+HF4YV6DtuCA==", - "dev": true, - "dependencies": { - "qs": "^6.9.1", - "tunnel": "0.0.6", - "underscore": "^1.12.1" - } - }, - "node_modules/typescript": { - "version": "5.4.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.2.tgz", - "integrity": "sha512-+2/g0Fds1ERlP6JsakQQDXjZdZMM+rqpamFZJEKh4kwTIn3iDkgKtby0CeNd5ATNZ4Ry1ax15TMx0W2V+miizQ==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/typical": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz", - "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==", - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/uc.micro": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", - "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==", - "dev": true - }, - "node_modules/uglify-js": { - "version": "3.17.4", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", - "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==", - "optional": true, - "bin": { - "uglifyjs": "bin/uglifyjs" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/uid": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/uid/-/uid-2.0.2.tgz", - "integrity": "sha512-u3xV3X7uzvi5b1MncmZo3i2Aw222Zk1keqLA1YkHldREkAhAqi65wuPfe7lHx8H/Wzy+8CE7S7uS3jekIM5s8g==", - "dev": true, - "dependencies": { - "@lukeed/csprng": "^1.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/underscore": { - "version": "1.13.6", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.6.tgz", - "integrity": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==", - "dev": true - }, - "node_modules/undici": { - "version": "6.7.1", - "resolved": "https://registry.npmjs.org/undici/-/undici-6.7.1.tgz", - "integrity": "sha512-+Wtb9bAQw6HYWzCnxrPTMVEV3Q1QjYanI0E4q02ehReMuquQdLTEFEYbfs7hcImVYKcQkWSwT6buEmSVIiDDtQ==", - "engines": { - "node": ">=18.0" - } - }, - "node_modules/unified": { - "version": "10.1.2", - "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.2.tgz", - "integrity": "sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==", - "dependencies": { - "@types/unist": "^2.0.0", - "bail": "^2.0.0", - "extend": "^3.0.0", - "is-buffer": "^2.0.0", - "is-plain-obj": "^4.0.0", - "trough": "^2.0.0", - "vfile": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unified/node_modules/is-plain-obj": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", - "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/unique-filename": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-2.0.1.tgz", - "integrity": "sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==", - "dependencies": { - "unique-slug": "^3.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/unique-slug": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-3.0.0.tgz", - "integrity": "sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==", - "dependencies": { - "imurmurhash": "^0.1.4" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/unist-util-generated": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-2.0.1.tgz", - "integrity": "sha512-qF72kLmPxAw0oN2fwpWIqbXAVyEqUzDHMsbtPvOudIlUzXYFIeQIuxXQCRCFh22B7cixvU0MG7m3MW8FTq/S+A==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-is": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.2.1.tgz", - "integrity": "sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==", - "dependencies": { - "@types/unist": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-position": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.4.tgz", - "integrity": "sha512-kUBE91efOWfIVBo8xzh/uZQ7p9ffYRtUbMRZBNFYwf0RK8koUMx6dGUfwylLOKmaT2cs4wSW96QoYUSXAyEtpg==", - "dependencies": { - "@types/unist": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-stringify-position": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.3.tgz", - "integrity": "sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==", - "dependencies": { - "@types/unist": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-visit": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.2.tgz", - "integrity": "sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0", - "unist-util-visit-parents": "^5.1.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/unist-util-visit-parents": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz", - "integrity": "sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-is": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/universalify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", - "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/update-browserslist-db": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", - "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - }, - "bin": { - "update-browserslist-db": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/url-join": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz", - "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==", - "dev": true - }, - "node_modules/url-parse": { - "version": "1.5.10", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", - "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", - "dependencies": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" - } - }, - "node_modules/use-sync-external-store": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz", - "integrity": "sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==", - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" - }, - "node_modules/utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/uuidv4": { - "version": "6.2.13", - "resolved": "https://registry.npmjs.org/uuidv4/-/uuidv4-6.2.13.tgz", - "integrity": "sha512-AXyzMjazYB3ovL3q051VLH06Ixj//Knx7QnUSi1T//Ie3io6CpsPu9nVMOx5MoLWh6xV0B9J0hIaxungxXUbPQ==", - "dependencies": { - "@types/uuid": "8.3.4", - "uuid": "8.3.2" - } - }, - "node_modules/uvu": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/uvu/-/uvu-0.5.6.tgz", - "integrity": "sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==", - "dependencies": { - "dequal": "^2.0.0", - "diff": "^5.0.0", - "kleur": "^4.0.3", - "sade": "^1.7.3" - }, - "bin": { - "uvu": "bin.js" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/uvu/node_modules/kleur": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", - "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", - "engines": { - "node": ">=6" - } - }, - "node_modules/v8-to-istanbul": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.2.0.tgz", - "integrity": "sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==", - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.12", - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^2.0.0" - }, - "engines": { - "node": ">=10.12.0" - } - }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/vectordb": { - "version": "0.4.12", - "resolved": "https://registry.npmjs.org/vectordb/-/vectordb-0.4.12.tgz", - "integrity": "sha512-H2mFwZ87d3BcuX4yGx5RoW06amRZQ3W5u/FRTNc86rwVINuEEa+Ivsqng1i8hURHXoTDbF/0Y9qwCshySkeznQ==", - "cpu": [ - "x64", - "arm64" - ], - "os": [ - "darwin", - "linux", - "win32" - ], - "dependencies": { - "@neon-rs/load": "^0.0.74", - "axios": "^1.4.0" - }, - "optionalDependencies": { - "@lancedb/vectordb-darwin-arm64": "0.4.12", - "@lancedb/vectordb-darwin-x64": "0.4.12", - "@lancedb/vectordb-linux-arm64-gnu": "0.4.12", - "@lancedb/vectordb-linux-x64-gnu": "0.4.12", - "@lancedb/vectordb-win32-x64-msvc": "0.4.12" - }, - "peerDependencies": { - "@apache-arrow/ts": "^14.0.2", - "apache-arrow": "^14.0.2" - } - }, - "node_modules/verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", - "engines": [ - "node >=0.6.0" - ], - "dependencies": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "node_modules/verror/node_modules/core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==" - }, - "node_modules/vfile": { - "version": "5.3.7", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.3.7.tgz", - "integrity": "sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==", - "dependencies": { - "@types/unist": "^2.0.0", - "is-buffer": "^2.0.0", - "unist-util-stringify-position": "^3.0.0", - "vfile-message": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/vfile-message": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.1.4.tgz", - "integrity": "sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==", - "dependencies": { - "@types/unist": "^2.0.0", - "unist-util-stringify-position": "^3.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/unified" - } - }, - "node_modules/vite": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.2.tgz", - "integrity": "sha512-tBCZBNSBbHQkaGyhGCDUGqeo2ph8Fstyp6FMSvTtsXeZSPpSMGlviAOav2hxVTqFcx8Hj/twtWKsMJXNY0xI8w==", - "dev": true, - "dependencies": { - "esbuild": "^0.18.10", - "postcss": "^8.4.27", - "rollup": "^3.27.1" - }, - "bin": { - "vite": "bin/vite.js" - }, - "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/vitejs/vite?sponsor=1" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - }, - "peerDependencies": { - "@types/node": ">= 14", - "less": "*", - "lightningcss": "^1.21.0", - "sass": "*", - "stylus": "*", - "sugarss": "*", - "terser": "^5.4.0" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "less": { - "optional": true - }, - "lightningcss": { - "optional": true - }, - "sass": { - "optional": true - }, - "stylus": { - "optional": true - }, - "sugarss": { - "optional": true - }, - "terser": { - "optional": true - } - } - }, - "node_modules/vite/node_modules/@esbuild/android-arm": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz", - "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/android-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz", - "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/android-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz", - "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/darwin-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz", - "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/darwin-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz", - "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/freebsd-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz", - "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/freebsd-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz", - "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-arm": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz", - "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz", - "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-ia32": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz", - "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-loong64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz", - "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==", - "cpu": [ - "loong64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-mips64el": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz", - "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==", - "cpu": [ - "mips64el" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-ppc64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz", - "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-riscv64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz", - "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==", - "cpu": [ - "riscv64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-s390x": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz", - "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==", - "cpu": [ - "s390x" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/linux-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz", - "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/netbsd-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz", - "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/openbsd-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz", - "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/sunos-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz", - "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/win32-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz", - "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/win32-ia32": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz", - "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/@esbuild/win32-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz", - "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/vite/node_modules/esbuild": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz", - "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==", - "dev": true, - "hasInstallScript": true, - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "@esbuild/android-arm": "0.18.20", - "@esbuild/android-arm64": "0.18.20", - "@esbuild/android-x64": "0.18.20", - "@esbuild/darwin-arm64": "0.18.20", - "@esbuild/darwin-x64": "0.18.20", - "@esbuild/freebsd-arm64": "0.18.20", - "@esbuild/freebsd-x64": "0.18.20", - "@esbuild/linux-arm": "0.18.20", - "@esbuild/linux-arm64": "0.18.20", - "@esbuild/linux-ia32": "0.18.20", - "@esbuild/linux-loong64": "0.18.20", - "@esbuild/linux-mips64el": "0.18.20", - "@esbuild/linux-ppc64": "0.18.20", - "@esbuild/linux-riscv64": "0.18.20", - "@esbuild/linux-s390x": "0.18.20", - "@esbuild/linux-x64": "0.18.20", - "@esbuild/netbsd-x64": "0.18.20", - "@esbuild/openbsd-x64": "0.18.20", - "@esbuild/sunos-x64": "0.18.20", - "@esbuild/win32-arm64": "0.18.20", - "@esbuild/win32-ia32": "0.18.20", - "@esbuild/win32-x64": "0.18.20" - } - }, - "node_modules/vsce": { - "version": "2.15.0", - "resolved": "https://registry.npmjs.org/vsce/-/vsce-2.15.0.tgz", - "integrity": "sha512-P8E9LAZvBCQnoGoizw65JfGvyMqNGlHdlUXD1VAuxtvYAaHBKLBdKPnpy60XKVDAkQCfmMu53g+gq9FM+ydepw==", - "deprecated": "vsce has been renamed to @vscode/vsce. Install using @vscode/vsce instead.", - "dev": true, - "dependencies": { - "azure-devops-node-api": "^11.0.1", - "chalk": "^2.4.2", - "cheerio": "^1.0.0-rc.9", - "commander": "^6.1.0", - "glob": "^7.0.6", - "hosted-git-info": "^4.0.2", - "keytar": "^7.7.0", - "leven": "^3.1.0", - "markdown-it": "^12.3.2", - "mime": "^1.3.4", - "minimatch": "^3.0.3", - "parse-semver": "^1.1.1", - "read": "^1.0.7", - "semver": "^5.1.0", - "tmp": "^0.2.1", - "typed-rest-client": "^1.8.4", - "url-join": "^4.0.1", - "xml2js": "^0.4.23", - "yauzl": "^2.3.1", - "yazl": "^2.2.2" - }, - "bin": { - "vsce": "vsce" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/vsce/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/vsce/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/vsce/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/vsce/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/vsce/node_modules/commander": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", - "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/vsce/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/vsce/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/vsce/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/vsce/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/vsce/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/vsce/node_modules/xml2js": { - "version": "0.4.23", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", - "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", - "dev": true, - "dependencies": { - "sax": ">=0.6.0", - "xmlbuilder": "~11.0.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/vscode-jsonrpc": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.1.0.tgz", - "integrity": "sha512-6TDy/abTQk+zDGYazgbIPc+4JoXdwC8NHU9Pbn4UJP1fehUyZmM4RHp5IthX7A6L5KS30PRui+j+tbbMMMafdw==", - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/vscode-languageclient": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/vscode-languageclient/-/vscode-languageclient-8.1.0.tgz", - "integrity": "sha512-GL4QdbYUF/XxQlAsvYWZRV3V34kOkpRlvV60/72ghHfsYFnS/v2MANZ9P6sHmxFcZKOse8O+L9G7Czg0NUWing==", - "dependencies": { - "minimatch": "^5.1.0", - "semver": "^7.3.7", - "vscode-languageserver-protocol": "3.17.3" - }, - "engines": { - "vscode": "^1.67.0" - } - }, - "node_modules/vscode-languageclient/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/vscode-languageclient/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/vscode-languageserver-protocol": { - "version": "3.17.3", - "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.3.tgz", - "integrity": "sha512-924/h0AqsMtA5yK22GgMtCYiMdCOtWTSGgUOkgEDX+wk2b0x4sAfLiO4NxBxqbiVtz7K7/1/RgVrVI0NClZwqA==", - "dependencies": { - "vscode-jsonrpc": "8.1.0", - "vscode-languageserver-types": "3.17.3" - } - }, - "node_modules/vscode-languageserver-types": { - "version": "3.17.3", - "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.3.tgz", - "integrity": "sha512-SYU4z1dL0PyIMd4Vj8YOqFvHu7Hz/enbWtpfnVbJHU4Nd1YNYx8u0ennumc6h48GQNeOLxmwySmnADouT/AuZA==" - }, - "node_modules/w3c-xmlserializer": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz", - "integrity": "sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==", - "dependencies": { - "xml-name-validator": "^5.0.0" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/walker": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", - "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", - "dependencies": { - "makeerror": "1.0.12" - } - }, - "node_modules/wcwidth": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", - "dependencies": { - "defaults": "^1.0.3" - } - }, - "node_modules/web-streams-polyfill": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz", - "integrity": "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==", - "engines": { - "node": ">= 8" - } - }, - "node_modules/webidl-conversions": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", - "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", - "engines": { - "node": ">=12" - } - }, - "node_modules/whatwg-encoding": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz", - "integrity": "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==", - "dependencies": { - "iconv-lite": "0.6.3" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/whatwg-encoding/node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/whatwg-mimetype": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz", - "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==", - "engines": { - "node": ">=18" - } - }, - "node_modules/whatwg-url": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-14.0.0.tgz", - "integrity": "sha512-1lfMEm2IEr7RIV+f4lUNPOqfFL+pO+Xw3fJSqmjX9AbXcXcYOkCe1P6+9VBZB6n94af16NfZf+sSk0JCBZC9aw==", - "dependencies": { - "tr46": "^5.0.0", - "webidl-conversions": "^7.0.0" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/wide-align": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", - "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", - "dependencies": { - "string-width": "^1.0.2 || 2 || 3 || 4" - } - }, - "node_modules/wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==" - }, - "node_modules/wordwrapjs": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-5.1.0.tgz", - "integrity": "sha512-JNjcULU2e4KJwUNv6CHgI46UvDGitb6dGryHajXTDiLgg1/RiGoPSDw4kZfYnwGtEXf2ZMeIewDQgFGzkCB2Sg==", - "peer": true, - "engines": { - "node": ">=12.17" - } - }, - "node_modules/workerpool": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", - "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==" - }, - "node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi-cjs": { - "name": "wrap-ansi", - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" - }, - "node_modules/write-file-atomic": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", - "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", - "dependencies": { - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.7" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/ws": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz", - "integrity": "sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true + "name": "ahrefs-continue", + "version": "1.1.17", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "ahrefs-continue", + "version": "1.1.17", + "dependencies": { + "@electron/rebuild": "^3.2.10", + "@reduxjs/toolkit": "^1.9.3", + "@types/fast-levenshtein": "^0.0.4", + "@types/node-fetch": "^2.6.11", + "@types/uuid": "^9.0.8", + "@vscode/ripgrep": "^1.15.9", + "@vscode/test-electron": "^2.3.9", + "axios": "^1.2.5", + "core": "file:../../core", + "cors": "^2.8.5", + "dbinfoz": "^0.1.4", + "downshift": "^7.6.0", + "esbuild": "^0.17.19", + "express": "^4.18.2", + "fast-levenshtein": "^3.0.0", + "fkill": "^8.1.0", + "follow-redirects": "^1.15.4", + "handlebars": "^4.7.8", + "highlight.js": "^11.7.0", + "highlightable": "^1.3.0-beta.0", + "http-proxy": "^1.18.1", + "http-proxy-agent": "^7.0.0", + "http-proxy-middleware": "^2.0.6", + "https-proxy-agent": "^7.0.2", + "ignore": "^5.3.0", + "jsdom": "^24.0.0", + "minisearch": "^7.0.0", + "monaco-editor": "^0.45.0", + "monaco-vscode-textmate-theme-converter": "^0.1.7", + "ncp": "^2.0.0", + "node-fetch": "^3.3.2", + "node-machine-id": "^1.1.12", + "posthog-node": "^3.6.3", + "react-markdown": "^8.0.7", + "react-redux": "^8.0.5", + "read-last-lines": "^1.8.0", + "request": "^2.88.2", + "socket.io-client": "^4.7.2", + "strip-ansi": "^7.1.0", + "systeminformation": "^5.22.10", + "tailwindcss": "^3.3.2", + "undici": "^6.2.0", + "uuid": "^9.0.1", + "uuidv4": "^6.2.13", + "vectordb": "^0.4.20", + "vscode-languageclient": "^8.0.2", + "ws": "^8.13.0", + "yarn": "^1.22.21" + }, + "devDependencies": { + "@biomejs/biome": "1.6.4", + "@nestjs/common": "^8.4.7", + "@openapitools/openapi-generator-cli": "^2.5.2", + "@types/cors": "^2.8.17", + "@types/express": "^4.17.21", + "@types/fast-levenshtein": "^0.0.4", + "@types/follow-redirects": "^1.14.4", + "@types/glob": "^8.0.0", + "@types/mocha": "^10.0.6", + "@types/node": "16.x", + "@types/react-dom": "^18.2.4", + "@types/request": "^2.48.8", + "@types/vscode": "1.70", + "@types/ws": "^8.5.4", + "@typescript-eslint/eslint-plugin": "^5.45.0", + "@typescript-eslint/parser": "^5.45.0", + "@vscode/vsce": "^2.22.0", + "cargo-cp-artifact": "^0.1", + "eslint": "^8.28.0", + "glob": "^8.0.3", + "json-schema-to-typescript": "^12.0.0", + "mocha": "^10.4.0", + "ovsx": "^0.8.3", + "rimraf": "^5.0.5", + "typescript": "^5.3.3", + "vite": "^4.3.9", + "vsce": "^2.15.0" + }, + "engines": { + "node": ">=20.11.0", + "vscode": "^1.70.0" + } + }, + "../../core": { + "name": "@continuedev/core", + "version": "1.0.13", + "license": "Apache-2.0", + "dependencies": { + "@aws-sdk/client-bedrock-runtime": "^3.574.0", + "@aws-sdk/credential-providers": "^3.596.0", + "@continuedev/config-types": "^1.0.6", + "@continuedev/llm-info": "^1.0.1", + "@mozilla/readability": "^0.5.0", + "@octokit/rest": "^20.0.2", + "@types/jsdom": "^21.1.6", + "@types/mozilla-readability": "^0.2.1", + "@types/node-fetch": "^2.6.11", + "@typescript-eslint/eslint-plugin": "^7.8.0", + "@typescript-eslint/parser": "^7.8.0", + "@xenova/transformers": "2.14.0", + "adf-to-md": "^1.1.0", + "async-mutex": "^0.5.0", + "axios": "^1.6.7", + "cheerio": "^1.0.0-rc.12", + "commander": "^12.0.0", + "comment-json": "^4.2.3", + "dbinfoz": "^0.1.4", + "dotenv": "^16.4.5", + "fastest-levenshtein": "^1.0.16", + "follow-redirects": "^1.15.5", + "handlebars": "^4.7.8", + "http-proxy-agent": "^7.0.1", + "https-proxy-agent": "^7.0.3", + "ignore": "^5.3.1", + "js-tiktoken": "^1.0.8", + "jsdom": "^24.0.0", + "launchdarkly-node-client-sdk": "^3.2.0", + "llm-code-highlighter": "^0.0.14", + "mac-ca": "^3.1.0", + "node-fetch": "^3.3.2", + "node-html-markdown": "^1.3.0", + "ollama": "^0.4.6", + "onnxruntime-node": "1.14.0", + "openai": "^4.20.1", + "pg": "^8.11.3", + "posthog-node": "^3.6.3", + "replicate": "^0.26.0", + "request": "^2.88.2", + "socket.io-client": "^4.7.3", + "sqlite": "^5.1.1", + "sqlite3": "^5.1.7", + "system-ca": "^1.0.3", + "tree-sitter-wasms": "^0.1.11", + "uuid": "^9.0.1", + "vectordb": "^0.4.20", + "web-tree-sitter": "^0.21.0", + "win-ca": "^3.5.1", + "yaml": "^2.4.2", + "zod": "^3.23.8" + }, + "devDependencies": { + "@babel/preset-env": "^7.24.7", + "@biomejs/biome": "1.6.4", + "@google/generative-ai": "^0.11.4", + "@types/follow-redirects": "^1.14.4", + "@types/jest": "^29.5.12", + "@types/jquery": "^3.5.29", + "@types/mustache": "^4.2.5", + "@types/uuid": "^9.0.7", + "esbuild": "0.17.19", + "eslint": "^8", + "eslint-plugin-import": "^2.29.1", + "jest": "^29.7.0", + "onnxruntime-common": "1.14.0", + "onnxruntime-web": "1.14.0", + "ts-jest": "^29.1.1" + }, + "engines": { + "node": ">=20.11.0" + } + }, + "node_modules/@75lb/deep-merge": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@75lb/deep-merge/-/deep-merge-1.1.1.tgz", + "integrity": "sha512-xvgv6pkMGBA6GwdyJbNAnDmfAIR/DfWhrj9jgWh3TY7gRm3KO46x/GPjRg6wJ0nOepwqrNxFfojebh0Df4h4Tw==", + "peer": true, + "dependencies": { + "lodash.assignwith": "^4.2.0", + "typical": "^7.1.1" + }, + "engines": { + "node": ">=12.17" + } + }, + "node_modules/@75lb/deep-merge/node_modules/typical": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/typical/-/typical-7.1.1.tgz", + "integrity": "sha512-T+tKVNs6Wu7IWiAce5BgMd7OZfNYUndHwc5MknN+UHOudi7sGZzuHdCadllRuqJ3fPtgFtIH9+lt9qRv6lmpfA==", + "peer": true, + "engines": { + "node": ">=12.17" + } + }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@apache-arrow/ts": { + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/@apache-arrow/ts/-/ts-14.0.2.tgz", + "integrity": "sha512-CtwAvLkK0CZv7xsYeCo91ml6PvlfzAmAJZkRYuz2GNBwfYufj5SVi0iuSMwIMkcU/szVwvLdzORSLa5PlF/2ug==", + "peer": true, + "dependencies": { + "@types/command-line-args": "5.2.0", + "@types/command-line-usage": "5.0.2", + "@types/node": "20.3.0", + "@types/pad-left": "2.1.1", + "command-line-args": "5.2.1", + "command-line-usage": "7.0.1", + "flatbuffers": "23.5.26", + "json-bignum": "^0.0.3", + "pad-left": "^2.1.0", + "tslib": "^2.5.3" + } + }, + "node_modules/@apache-arrow/ts/node_modules/@types/node": { + "version": "20.3.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.3.0.tgz", + "integrity": "sha512-cumHmIAf6On83X7yP+LrsEyUOf/YlociZelmpRYaGFydoaPdxdt80MAbu6vWerQT2COCp2nPvHdsbD7tHn/YlQ==", + "peer": true + }, + "node_modules/@azure/abort-controller": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-1.1.0.tgz", + "integrity": "sha512-TrRLIoSQVzfAJX9H1JeFjzAoDGcoK1IYX1UImfceTZpsyYfWr09Ss1aHW1y5TrrR3iq6RZLBwJ3E24uwPhwahw==", + "dev": true, + "dependencies": { + "tslib": "^2.2.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/@azure/core-auth": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@azure/core-auth/-/core-auth-1.7.2.tgz", + "integrity": "sha512-Igm/S3fDYmnMq1uKS38Ae1/m37B3zigdlZw+kocwEhh5GjyKjPrXKO2J6rzpC1wAxrNil/jX9BJRqBshyjnF3g==", + "dev": true, + "dependencies": { + "@azure/abort-controller": "^2.0.0", + "@azure/core-util": "^1.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@azure/core-auth/node_modules/@azure/abort-controller": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-2.1.2.tgz", + "integrity": "sha512-nBrLsEWm4J2u5LpAPjxADTlq3trDgVZZXHNKabeXZtpq3d3AbN/KGO82R87rdDz5/lYB024rtEf10/q0urNgsA==", + "dev": true, + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@azure/core-client": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/@azure/core-client/-/core-client-1.9.2.tgz", + "integrity": "sha512-kRdry/rav3fUKHl/aDLd/pDLcB+4pOFwPPTVEExuMyaI5r+JBbMWqRbCY1pn5BniDaU3lRxO9eaQ1AmSMehl/w==", + "dev": true, + "dependencies": { + "@azure/abort-controller": "^2.0.0", + "@azure/core-auth": "^1.4.0", + "@azure/core-rest-pipeline": "^1.9.1", + "@azure/core-tracing": "^1.0.0", + "@azure/core-util": "^1.6.1", + "@azure/logger": "^1.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@azure/core-client/node_modules/@azure/abort-controller": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-2.1.2.tgz", + "integrity": "sha512-nBrLsEWm4J2u5LpAPjxADTlq3trDgVZZXHNKabeXZtpq3d3AbN/KGO82R87rdDz5/lYB024rtEf10/q0urNgsA==", + "dev": true, + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@azure/core-rest-pipeline": { + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/@azure/core-rest-pipeline/-/core-rest-pipeline-1.16.0.tgz", + "integrity": "sha512-CeuTvsXxCUmEuxH5g/aceuSl6w2EugvNHKAtKKVdiX915EjJJxAwfzNNWZreNnbxHZ2fi0zaM6wwS23x2JVqSQ==", + "dev": true, + "dependencies": { + "@azure/abort-controller": "^2.0.0", + "@azure/core-auth": "^1.4.0", + "@azure/core-tracing": "^1.0.1", + "@azure/core-util": "^1.9.0", + "@azure/logger": "^1.0.0", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@azure/core-rest-pipeline/node_modules/@azure/abort-controller": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-2.1.2.tgz", + "integrity": "sha512-nBrLsEWm4J2u5LpAPjxADTlq3trDgVZZXHNKabeXZtpq3d3AbN/KGO82R87rdDz5/lYB024rtEf10/q0urNgsA==", + "dev": true, + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@azure/core-tracing": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@azure/core-tracing/-/core-tracing-1.1.2.tgz", + "integrity": "sha512-dawW9ifvWAWmUm9/h+/UQ2jrdvjCJ7VJEuCJ6XVNudzcOwm53BFZH4Q845vjfgoUAM8ZxokvVNxNxAITc502YA==", + "dev": true, + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@azure/core-util": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@azure/core-util/-/core-util-1.9.0.tgz", + "integrity": "sha512-AfalUQ1ZppaKuxPPMsFEUdX6GZPB3d9paR9d/TTL7Ow2De8cJaC7ibi7kWVlFAVPCYo31OcnGymc0R89DX8Oaw==", + "dev": true, + "dependencies": { + "@azure/abort-controller": "^2.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@azure/core-util/node_modules/@azure/abort-controller": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-2.1.2.tgz", + "integrity": "sha512-nBrLsEWm4J2u5LpAPjxADTlq3trDgVZZXHNKabeXZtpq3d3AbN/KGO82R87rdDz5/lYB024rtEf10/q0urNgsA==", + "dev": true, + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@azure/identity": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@azure/identity/-/identity-4.2.0.tgz", + "integrity": "sha512-ve3aYv79qXOJ8wRxQ5jO0eIz2DZ4o0TyME4m4vlGV5YyePddVZ+pFMzusAMODNAflYAAv1cBIhKnd4xytmXyig==", + "dev": true, + "dependencies": { + "@azure/abort-controller": "^1.0.0", + "@azure/core-auth": "^1.5.0", + "@azure/core-client": "^1.4.0", + "@azure/core-rest-pipeline": "^1.1.0", + "@azure/core-tracing": "^1.0.0", + "@azure/core-util": "^1.3.0", + "@azure/logger": "^1.0.0", + "@azure/msal-browser": "^3.11.1", + "@azure/msal-node": "^2.6.6", + "events": "^3.0.0", + "jws": "^4.0.0", + "open": "^8.0.0", + "stoppable": "^1.1.0", + "tslib": "^2.2.0" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@azure/logger": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@azure/logger/-/logger-1.1.2.tgz", + "integrity": "sha512-l170uE7bsKpIU6B/giRc9i4NI0Mj+tANMMMxf7Zi/5cKzEqPayP7+X1WPrG7e+91JgY8N+7K7nF2WOi7iVhXvg==", + "dev": true, + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@azure/msal-browser": { + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/@azure/msal-browser/-/msal-browser-3.14.0.tgz", + "integrity": "sha512-Un85LhOoecJ3HDTS3Uv3UWnXC9/43ZSO+Kc+anSqpZvcEt58SiO/3DuVCAe1A3I5UIBYJNMgTmZPGXQ0MVYrwA==", + "dev": true, + "dependencies": { + "@azure/msal-common": "14.10.0" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@azure/msal-common": { + "version": "14.10.0", + "resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-14.10.0.tgz", + "integrity": "sha512-Zk6DPDz7e1wPgLoLgAp0349Yay9RvcjPM5We/ehuenDNsz/t9QEFI7tRoHpp/e47I4p20XE3FiDlhKwAo3utDA==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@azure/msal-node": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/@azure/msal-node/-/msal-node-2.8.1.tgz", + "integrity": "sha512-VcZZM+5VvCWRBTOF7SxMKaxrz+EXjntx2u5AQe7QE06e6FuPJElGBrImgNgCh5QmFaNCfVFO+3qNR7UoFD/Gfw==", + "dev": true, + "dependencies": { + "@azure/msal-common": "14.10.0", + "jsonwebtoken": "^9.0.0", + "uuid": "^8.3.0" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@azure/msal-node/node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/@babel/runtime": { + "version": "7.24.5", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.5.tgz", + "integrity": "sha512-Nms86NXrsaeU9vbBJKni6gXiEXZ4CVpYVzEjDH9Sb8vmZ3UljyA1GSOJl/6LGPO8EHLuSF9H+IxNXHPX8QHJ4g==", + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@bcherny/json-schema-ref-parser": { + "version": "10.0.5-fork", + "resolved": "https://registry.npmjs.org/@bcherny/json-schema-ref-parser/-/json-schema-ref-parser-10.0.5-fork.tgz", + "integrity": "sha512-E/jKbPoca1tfUPj3iSbitDZTGnq6FUFjkH6L8U2oDwSuwK1WhnnVtCG7oFOTg/DDnyoXbQYUiUiGOibHqaGVnw==", + "dev": true, + "dependencies": { + "@jsdevtools/ono": "^7.1.3", + "@types/json-schema": "^7.0.6", + "call-me-maybe": "^1.0.1", + "js-yaml": "^4.1.0" + }, + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/philsturgeon" + } + }, + "node_modules/@biomejs/biome": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/@biomejs/biome/-/biome-1.6.4.tgz", + "integrity": "sha512-3groVd2oWsLC0ZU+XXgHSNbq31lUcOCBkCcA7sAQGBopHcmL+jmmdoWlY3S61zIh+f2mqQTQte1g6PZKb3JJjA==", + "dev": true, + "hasInstallScript": true, + "bin": { + "biome": "bin/biome" + }, + "engines": { + "node": ">=14.21.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/biome" + }, + "optionalDependencies": { + "@biomejs/cli-darwin-arm64": "1.6.4", + "@biomejs/cli-darwin-x64": "1.6.4", + "@biomejs/cli-linux-arm64": "1.6.4", + "@biomejs/cli-linux-arm64-musl": "1.6.4", + "@biomejs/cli-linux-x64": "1.6.4", + "@biomejs/cli-linux-x64-musl": "1.6.4", + "@biomejs/cli-win32-arm64": "1.6.4", + "@biomejs/cli-win32-x64": "1.6.4" + } + }, + "node_modules/@biomejs/cli-darwin-arm64": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-arm64/-/cli-darwin-arm64-1.6.4.tgz", + "integrity": "sha512-2WZef8byI9NRzGajGj5RTrroW9BxtfbP9etigW1QGAtwu/6+cLkdPOWRAs7uFtaxBNiKFYA8j/BxV5zeAo5QOQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=14.21.3" + } + }, + "node_modules/@biomejs/cli-darwin-x64": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-x64/-/cli-darwin-x64-1.6.4.tgz", + "integrity": "sha512-uo1zgM7jvzcoDpF6dbGizejDLCqNpUIRkCj/oEK0PB0NUw8re/cn1EnxuOLZqDpn+8G75COLQTOx8UQIBBN/Kg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=14.21.3" + } + }, + "node_modules/@biomejs/cli-linux-arm64": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64/-/cli-linux-arm64-1.6.4.tgz", + "integrity": "sha512-wAOieaMNIpLrxGc2/xNvM//CIZg7ueWy3V5A4T7gDZ3OL/Go27EKE59a+vMKsBCYmTt7jFl4yHz0TUkUbodA/w==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=14.21.3" + } + }, + "node_modules/@biomejs/cli-linux-arm64-musl": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64-musl/-/cli-linux-arm64-musl-1.6.4.tgz", + "integrity": "sha512-Hp8Jwt6rjj0wCcYAEN6/cfwrrPLLlGOXZ56Lei4Pt4jy39+UuPeAVFPeclrrCfxyL1wQ2xPrhd/saTHSL6DoJg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=14.21.3" + } + }, + "node_modules/@biomejs/cli-linux-x64": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64/-/cli-linux-x64-1.6.4.tgz", + "integrity": "sha512-qTWhuIw+/ePvOkjE9Zxf5OqSCYxtAvcTJtVmZT8YQnmY2I62JKNV2m7tf6O5ViKZUOP0mOQ6NgqHKcHH1eT8jw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=14.21.3" + } + }, + "node_modules/@biomejs/cli-linux-x64-musl": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64-musl/-/cli-linux-x64-musl-1.6.4.tgz", + "integrity": "sha512-wqi0hr8KAx5kBO0B+m5u8QqiYFFBJOSJVSuRqTeGWW+GYLVUtXNidykNqf1JsW6jJDpbkSp2xHKE/bTlVaG2Kg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=14.21.3" + } + }, + "node_modules/@biomejs/cli-win32-arm64": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/@biomejs/cli-win32-arm64/-/cli-win32-arm64-1.6.4.tgz", + "integrity": "sha512-Wp3FiEeF6v6C5qMfLkHwf4YsoNHr/n0efvoC8jCKO/kX05OXaVExj+1uVQ1eGT7Pvx0XVm/TLprRO0vq/V6UzA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=14.21.3" + } + }, + "node_modules/@biomejs/cli-win32-x64": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/@biomejs/cli-win32-x64/-/cli-win32-x64-1.6.4.tgz", + "integrity": "sha512-mz183Di5hTSGP7KjNWEhivcP1wnHLGmOxEROvoFsIxMYtDhzJDad4k5gI/1JbmA0xe4n52vsgqo09tBhrMT/Zg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=14.21.3" + } + }, + "node_modules/@electron/rebuild": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/@electron/rebuild/-/rebuild-3.6.0.tgz", + "integrity": "sha512-zF4x3QupRU3uNGaP5X1wjpmcjfw1H87kyqZ00Tc3HvriV+4gmOGuvQjGNkrJuXdsApssdNyVwLsy+TaeTGGcVw==", + "dependencies": { + "@malept/cross-spawn-promise": "^2.0.0", + "chalk": "^4.0.0", + "debug": "^4.1.1", + "detect-libc": "^2.0.1", + "fs-extra": "^10.0.0", + "got": "^11.7.0", + "node-abi": "^3.45.0", + "node-api-version": "^0.2.0", + "node-gyp": "^9.0.0", + "ora": "^5.1.0", + "read-binary-file-arch": "^1.0.6", + "semver": "^7.3.5", + "tar": "^6.0.5", + "yargs": "^17.0.1" + }, + "bin": { + "electron-rebuild": "lib/cli.js" + }, + "engines": { + "node": ">=12.13.0" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.19.tgz", + "integrity": "sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.19.tgz", + "integrity": "sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.19.tgz", + "integrity": "sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.19.tgz", + "integrity": "sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz", + "integrity": "sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.19.tgz", + "integrity": "sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.19.tgz", + "integrity": "sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.19.tgz", + "integrity": "sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz", + "integrity": "sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.19.tgz", + "integrity": "sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz", + "integrity": "sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==", + "cpu": [ + "loong64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.19.tgz", + "integrity": "sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==", + "cpu": [ + "mips64el" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.19.tgz", + "integrity": "sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==", + "cpu": [ + "ppc64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.19.tgz", + "integrity": "sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==", + "cpu": [ + "riscv64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.19.tgz", + "integrity": "sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==", + "cpu": [ + "s390x" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz", + "integrity": "sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.19.tgz", + "integrity": "sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.19.tgz", + "integrity": "sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.19.tgz", + "integrity": "sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz", + "integrity": "sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.19.tgz", + "integrity": "sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz", + "integrity": "sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", + "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/js": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", + "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@gar/promisify": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", + "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==" + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.14", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", + "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.2", + "debug": "^4.3.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "dev": true + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@jsdevtools/ono": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/@jsdevtools/ono/-/ono-7.1.3.tgz", + "integrity": "sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==", + "dev": true + }, + "node_modules/@lancedb/vectordb-darwin-arm64": { + "version": "0.4.20", + "resolved": "https://registry.npmjs.org/@lancedb/vectordb-darwin-arm64/-/vectordb-darwin-arm64-0.4.20.tgz", + "integrity": "sha512-ffP2K4sA5mQTgePyARw1y8dPN996FmpvyAYoWO+TSItaXlhcXvc+KVa5udNMCZMDYeEnEv2Xpj6k4PwW3oBz+A==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@lancedb/vectordb-darwin-x64": { + "version": "0.4.20", + "resolved": "https://registry.npmjs.org/@lancedb/vectordb-darwin-x64/-/vectordb-darwin-x64-0.4.20.tgz", + "integrity": "sha512-GSYsXE20RIehDu30FjREhJdEzhnwOTV7ZsrSXagStzLY1gr7pyd7sfqxmmUtdD09di7LnQoiM71AOpPTa01YwQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@lancedb/vectordb-linux-arm64-gnu": { + "version": "0.4.20", + "resolved": "https://registry.npmjs.org/@lancedb/vectordb-linux-arm64-gnu/-/vectordb-linux-arm64-gnu-0.4.20.tgz", + "integrity": "sha512-FpNOjOsz3nJVm6EBGyNgbOW2aFhsWZ/igeY45Z8hbZaaK2YBwrg/DASoNlUzgv6IR8cUaGJ2irNVJfsKR2cG6g==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@lancedb/vectordb-linux-x64-gnu": { + "version": "0.4.20", + "resolved": "https://registry.npmjs.org/@lancedb/vectordb-linux-x64-gnu/-/vectordb-linux-x64-gnu-0.4.20.tgz", + "integrity": "sha512-pOqWjrRZQSrLTlQPkjidRii7NZDw8Xu9pN6ouVu2JAK8n81FXaPtFCyAI+Y3v9GpnYDN0rvD4eQ36aHAVPsa2g==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@lancedb/vectordb-win32-x64-msvc": { + "version": "0.4.20", + "resolved": "https://registry.npmjs.org/@lancedb/vectordb-win32-x64-msvc/-/vectordb-win32-x64-msvc-0.4.20.tgz", + "integrity": "sha512-5J5SsYSJ7jRCmU/sgwVHdrGz43B/7R2T9OEoFTKyVAtqTZdu75rkytXyn9SyEayXVhlUOaw76N0ASm0hAoDS/A==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@lukeed/csprng": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@lukeed/csprng/-/csprng-1.1.0.tgz", + "integrity": "sha512-Z7C/xXCiGWsg0KuKsHTKJxbWhpI3Vs5GwLfOean7MGyVFGqdRgBbAjOCh6u4bbjPc/8MJ2pZmK/0DLdCbivLDA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@malept/cross-spawn-promise": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@malept/cross-spawn-promise/-/cross-spawn-promise-2.0.0.tgz", + "integrity": "sha512-1DpKU0Z5ThltBwjNySMC14g0CkbyhCaz9FkhxqNsZI6uAPJXFS8cMXlBKo26FJ8ZuW6S9GCMcR9IO5k2X5/9Fg==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/malept" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/subscription/pkg/npm-.malept-cross-spawn-promise?utm_medium=referral&utm_source=npm_fund" + } + ], + "dependencies": { + "cross-spawn": "^7.0.1" + }, + "engines": { + "node": ">= 12.13.0" + } + }, + "node_modules/@neon-rs/load": { + "version": "0.0.74", + "resolved": "https://registry.npmjs.org/@neon-rs/load/-/load-0.0.74.tgz", + "integrity": "sha512-/cPZD907UNz55yrc/ud4wDgQKtU1TvkD9jeqZWG6J4IMmZkp6zgjkQcKA8UvpkZlcpPHvc8J17sGzLFbP/LUYg==" + }, + "node_modules/@nestjs/axios": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@nestjs/axios/-/axios-3.0.2.tgz", + "integrity": "sha512-Z6GuOUdNQjP7FX+OuV2Ybyamse+/e0BFdTWBX5JxpBDKA+YkdLynDgG6HTF04zy6e9zPa19UX0WA2VDoehwhXQ==", + "dev": true, + "peerDependencies": { + "@nestjs/common": "^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0", + "axios": "^1.3.1", + "rxjs": "^6.0.0 || ^7.0.0" + } + }, + "node_modules/@nestjs/common": { + "version": "8.4.7", + "resolved": "https://registry.npmjs.org/@nestjs/common/-/common-8.4.7.tgz", + "integrity": "sha512-m/YsbcBal+gA5CFrDpqXqsSfylo+DIQrkFY3qhVIltsYRfu8ct8J9pqsTO6OPf3mvqdOpFGrV5sBjoyAzOBvsw==", + "dev": true, + "dependencies": { + "axios": "0.27.2", + "iterare": "1.2.1", + "tslib": "2.4.0", + "uuid": "8.3.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nest" + }, + "peerDependencies": { + "cache-manager": "*", + "class-transformer": "*", + "class-validator": "*", + "reflect-metadata": "^0.1.12", + "rxjs": "^7.1.0" + }, + "peerDependenciesMeta": { + "cache-manager": { + "optional": true + }, + "class-transformer": { + "optional": true + }, + "class-validator": { + "optional": true + } + } + }, + "node_modules/@nestjs/common/node_modules/axios": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", + "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", + "dev": true, + "dependencies": { + "follow-redirects": "^1.14.9", + "form-data": "^4.0.0" + } + }, + "node_modules/@nestjs/common/node_modules/tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "dev": true + }, + "node_modules/@nestjs/common/node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@npmcli/fs": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.2.tgz", + "integrity": "sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==", + "dependencies": { + "@gar/promisify": "^1.1.3", + "semver": "^7.3.5" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/@npmcli/move-file": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-2.0.1.tgz", + "integrity": "sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==", + "deprecated": "This functionality has been moved to @npmcli/fs", + "dependencies": { + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/@npmcli/move-file/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@npmcli/move-file/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@nuxtjs/opencollective": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@nuxtjs/opencollective/-/opencollective-0.3.2.tgz", + "integrity": "sha512-um0xL3fO7Mf4fDxcqx9KryrB7zgRM5JSlvGN5AGkP6JLM5XEKyjeAiPbNxdXVXQ16isuAhYpvP88NgL2BGd6aA==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "consola": "^2.15.0", + "node-fetch": "^2.6.1" + }, + "bin": { + "opencollective": "bin/opencollective.js" + }, + "engines": { + "node": ">=8.0.0", + "npm": ">=5.0.0" + } + }, + "node_modules/@nuxtjs/opencollective/node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "dev": true, + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/@nuxtjs/opencollective/node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true + }, + "node_modules/@nuxtjs/opencollective/node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true + }, + "node_modules/@nuxtjs/opencollective/node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dev": true, + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/@openapitools/openapi-generator-cli": { + "version": "2.13.4", + "resolved": "https://registry.npmjs.org/@openapitools/openapi-generator-cli/-/openapi-generator-cli-2.13.4.tgz", + "integrity": "sha512-4JKyrk55ohQK2FcuZbPdNvxdyXD14jjOIvE8hYjJ+E1cHbRbfXQXbYnjTODFE52Gx8eAxz8C9icuhDYDLn7nww==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "@nestjs/axios": "3.0.2", + "@nestjs/common": "10.3.0", + "@nestjs/core": "10.3.0", + "@nuxtjs/opencollective": "0.3.2", + "axios": "1.6.8", + "chalk": "4.1.2", + "commander": "8.3.0", + "compare-versions": "4.1.4", + "concurrently": "6.5.1", + "console.table": "0.10.0", + "fs-extra": "10.1.0", + "glob": "7.2.3", + "https-proxy-agent": "7.0.4", + "inquirer": "8.2.6", + "lodash": "4.17.21", + "reflect-metadata": "0.1.13", + "rxjs": "7.8.1", + "tslib": "2.6.2" + }, + "bin": { + "openapi-generator-cli": "main.js" + }, + "engines": { + "node": ">=10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/openapi_generator" + } + }, + "node_modules/@openapitools/openapi-generator-cli/node_modules/@nestjs/common": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@nestjs/common/-/common-10.3.0.tgz", + "integrity": "sha512-DGv34UHsZBxCM3H5QGE2XE/+oLJzz5+714JQjBhjD9VccFlQs3LRxo/epso4l7nJIiNlZkPyIUC8WzfU/5RTsQ==", + "dev": true, + "dependencies": { + "iterare": "1.2.1", + "tslib": "2.6.2", + "uid": "2.0.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nest" + }, + "peerDependencies": { + "class-transformer": "*", + "class-validator": "*", + "reflect-metadata": "^0.1.12", + "rxjs": "^7.1.0" + }, + "peerDependenciesMeta": { + "class-transformer": { + "optional": true + }, + "class-validator": { + "optional": true + } + } + }, + "node_modules/@openapitools/openapi-generator-cli/node_modules/@nestjs/core": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/@nestjs/core/-/core-10.3.0.tgz", + "integrity": "sha512-N06P5ncknW/Pm8bj964WvLIZn2gNhHliCBoAO1LeBvNImYkecqKcrmLbY49Fa1rmMfEM3MuBHeDys3edeuYAOA==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "@nuxtjs/opencollective": "0.3.2", + "fast-safe-stringify": "2.1.1", + "iterare": "1.2.1", + "path-to-regexp": "3.2.0", + "tslib": "2.6.2", + "uid": "2.0.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nest" + }, + "peerDependencies": { + "@nestjs/common": "^10.0.0", + "@nestjs/microservices": "^10.0.0", + "@nestjs/platform-express": "^10.0.0", + "@nestjs/websockets": "^10.0.0", + "reflect-metadata": "^0.1.12", + "rxjs": "^7.1.0" + }, + "peerDependenciesMeta": { + "@nestjs/microservices": { + "optional": true + }, + "@nestjs/platform-express": { + "optional": true + }, + "@nestjs/websockets": { + "optional": true + } + } + }, + "node_modules/@openapitools/openapi-generator-cli/node_modules/axios": { + "version": "1.6.8", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.8.tgz", + "integrity": "sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==", + "dev": true, + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/@openapitools/openapi-generator-cli/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@openapitools/openapi-generator-cli/node_modules/path-to-regexp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-3.2.0.tgz", + "integrity": "sha512-jczvQbCUS7XmS7o+y1aEO9OBVFeZBQ1MDSEqmO7xSoPgOPoowY/SxLpZ6Vh97/8qHZOteiCKb7gkG9gA2ZUxJA==", + "dev": true + }, + "node_modules/@openapitools/openapi-generator-cli/node_modules/reflect-metadata": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", + "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==", + "dev": true + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@reduxjs/toolkit": { + "version": "1.9.7", + "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-1.9.7.tgz", + "integrity": "sha512-t7v8ZPxhhKgOKtU+uyJT13lu4vL7az5aFi4IdoDs/eS548edn2M8Ik9h8fxgvMjGoAUVFSt6ZC1P5cWmQ014QQ==", + "dependencies": { + "immer": "^9.0.21", + "redux": "^4.2.1", + "redux-thunk": "^2.4.2", + "reselect": "^4.1.8" + }, + "peerDependencies": { + "react": "^16.9.0 || ^17.0.0 || ^18", + "react-redux": "^7.2.1 || ^8.0.2" + }, + "peerDependenciesMeta": { + "react": { + "optional": true + }, + "react-redux": { + "optional": true + } + } + }, + "node_modules/@sindresorhus/is": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", + "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" + } + }, + "node_modules/@socket.io/component-emitter": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz", + "integrity": "sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==" + }, + "node_modules/@szmarczak/http-timer": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", + "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", + "dependencies": { + "defer-to-connect": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/@types/body-parser": { + "version": "1.19.5", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", + "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", + "devOptional": true, + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/cacheable-request": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz", + "integrity": "sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==", + "dependencies": { + "@types/http-cache-semantics": "*", + "@types/keyv": "^3.1.4", + "@types/node": "*", + "@types/responselike": "^1.0.0" + } + }, + "node_modules/@types/caseless": { + "version": "0.12.5", + "resolved": "https://registry.npmjs.org/@types/caseless/-/caseless-0.12.5.tgz", + "integrity": "sha512-hWtVTC2q7hc7xZ/RLbxapMvDMgUnDvKvMOpKal4DrMyfGBUfB1oKaZlIRr6mJL+If3bAP6sV/QneGzF6tJjZDg==", + "dev": true + }, + "node_modules/@types/command-line-args": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@types/command-line-args/-/command-line-args-5.2.0.tgz", + "integrity": "sha512-UuKzKpJJ/Ief6ufIaIzr3A/0XnluX7RvFgwkV89Yzvm77wCh1kFaFmqN8XEnGcN62EuHdedQjEMb8mYxFLGPyA==", + "peer": true + }, + "node_modules/@types/command-line-usage": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@types/command-line-usage/-/command-line-usage-5.0.2.tgz", + "integrity": "sha512-n7RlEEJ+4x4TS7ZQddTmNSxP+zziEG0TNsMfiRIxcIVXt71ENJ9ojeXmGO3wPoTdn7pJcU2xc3CJYMktNT6DPg==", + "peer": true + }, + "node_modules/@types/connect": { + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", + "devOptional": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/cors": { + "version": "2.8.17", + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.17.tgz", + "integrity": "sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/debug": { + "version": "4.1.12", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", + "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", + "dependencies": { + "@types/ms": "*" + } + }, + "node_modules/@types/express": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz", + "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==", + "devOptional": true, + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.33", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "4.19.0", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.0.tgz", + "integrity": "sha512-bGyep3JqPCRry1wq+O5n7oiBgGWmeIJXPjXXCo8EK0u8duZGSYar7cGqd3ML2JUsLGeB7fmc06KYo9fLGWqPvQ==", + "devOptional": true, + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, + "node_modules/@types/fast-levenshtein": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/@types/fast-levenshtein/-/fast-levenshtein-0.0.4.tgz", + "integrity": "sha512-tkDveuitddQCxut1Db8eEFfMahTjOumTJGPHmT9E7KUH+DkVq9WTpVvlfenf3S+uCBeu8j5FP2xik/KfxOEjeA==", + "dev": true + }, + "node_modules/@types/follow-redirects": { + "version": "1.14.4", + "resolved": "https://registry.npmjs.org/@types/follow-redirects/-/follow-redirects-1.14.4.tgz", + "integrity": "sha512-GWXfsD0Jc1RWiFmMuMFCpXMzi9L7oPDVwxUnZdg89kDNnqsRfUKXEtUYtA98A6lig1WXH/CYY/fvPW9HuN5fTA==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w==", + "dev": true, + "dependencies": { + "@types/minimatch": "^5.1.2", + "@types/node": "*" + } + }, + "node_modules/@types/hast": { + "version": "2.3.10", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.10.tgz", + "integrity": "sha512-McWspRw8xx8J9HurkVBfYj0xKoE25tOFlHGdx4MJ5xORQrMGZNqJhVQWaIbm6Oyla5kYOXtDiopzKRJzEOkwJw==", + "dependencies": { + "@types/unist": "^2" + } + }, + "node_modules/@types/hoist-non-react-statics": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.5.tgz", + "integrity": "sha512-SbcrWzkKBw2cdwRTwQAswfpB9g9LJWfjtUeW/jvNwbhC8cpmmNYVePa+ncbUe0rGTQ7G3Ff6mYUN2VMfLVr+Sg==", + "dependencies": { + "@types/react": "*", + "hoist-non-react-statics": "^3.3.0" + } + }, + "node_modules/@types/http-cache-semantics": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz", + "integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==" + }, + "node_modules/@types/http-errors": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", + "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==", + "devOptional": true + }, + "node_modules/@types/http-proxy": { + "version": "1.17.14", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.14.tgz", + "integrity": "sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true + }, + "node_modules/@types/keyv": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz", + "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/lodash": { + "version": "4.17.4", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha512-wYCP26ZLxaT3R39kiN2+HcJ4kTd3U1waI/cY7ivWYqFP6pW3ZNpvi6Wd6PHZx7T/t8z0vlkXMg3QYLa7DZ/IJQ==", + "dev": true + }, + "node_modules/@types/mdast": { + "version": "3.0.15", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.15.tgz", + "integrity": "sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==", + "dependencies": { + "@types/unist": "^2" + } + }, + "node_modules/@types/mime": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", + "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", + "devOptional": true + }, + "node_modules/@types/minimatch": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz", + "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==", + "dev": true + }, + "node_modules/@types/mocha": { + "version": "10.0.6", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.6.tgz", + "integrity": "sha512-dJvrYWxP/UcXm36Qn36fxhUKu8A/xMRXVT2cliFF1Z7UA9liG5Psj3ezNSZw+5puH2czDXRLcXQxf8JbJt0ejg==", + "dev": true + }, + "node_modules/@types/ms": { + "version": "0.7.34", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.34.tgz", + "integrity": "sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==" + }, + "node_modules/@types/node": { + "version": "16.18.97", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.97.tgz", + "integrity": "sha512-4muilE1Lbfn57unR+/nT9AFjWk0MtWi5muwCEJqnOvfRQDbSfLCUdN7vCIg8TYuaANfhLOV85ve+FNpiUsbSRg==" + }, + "node_modules/@types/node-fetch": { + "version": "2.6.11", + "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.11.tgz", + "integrity": "sha512-24xFj9R5+rfQJLRyM56qh+wnVSYhyXC2tkoBndtY0U+vubqNsYXGjufB2nn8Q6gt0LrARwL6UBtMCSVCwl4B1g==", + "dependencies": { + "@types/node": "*", + "form-data": "^4.0.0" + } + }, + "node_modules/@types/pad-left": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@types/pad-left/-/pad-left-2.1.1.tgz", + "integrity": "sha512-Xd22WCRBydkGSApl5Bw0PhAOHKSVjNL3E3AwzKaps96IMraPqy5BvZIsBVK6JLwdybUzjHnuWVwpDd0JjTfHXA==", + "peer": true + }, + "node_modules/@types/prettier": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.3.tgz", + "integrity": "sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==", + "dev": true + }, + "node_modules/@types/prop-types": { + "version": "15.7.12", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.12.tgz", + "integrity": "sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==" + }, + "node_modules/@types/qs": { + "version": "6.9.15", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.15.tgz", + "integrity": "sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==", + "devOptional": true + }, + "node_modules/@types/range-parser": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", + "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", + "devOptional": true + }, + "node_modules/@types/react": { + "version": "18.3.2", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.2.tgz", + "integrity": "sha512-Btgg89dAnqD4vV7R3hlwOxgqobUQKgx3MmrQRi0yYbs/P0ym8XozIAlkqVilPqHQwXs4e9Tf63rrCgl58BcO4w==", + "dependencies": { + "@types/prop-types": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "18.3.0", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.0.tgz", + "integrity": "sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==", + "devOptional": true, + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/request": { + "version": "2.48.12", + "resolved": "https://registry.npmjs.org/@types/request/-/request-2.48.12.tgz", + "integrity": "sha512-G3sY+NpsA9jnwm0ixhAFQSJ3Q9JkpLZpJbI3GMv0mIAT0y3mRabYeINzal5WOChIiaTEGQYlHOKgkaM9EisWHw==", + "dev": true, + "dependencies": { + "@types/caseless": "*", + "@types/node": "*", + "@types/tough-cookie": "*", + "form-data": "^2.5.0" + } + }, + "node_modules/@types/request/node_modules/form-data": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz", + "integrity": "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/@types/responselike": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.3.tgz", + "integrity": "sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/semver": { + "version": "7.5.8", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", + "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==", + "dev": true + }, + "node_modules/@types/send": { + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", + "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", + "devOptional": true, + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "node_modules/@types/serve-static": { + "version": "1.15.7", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz", + "integrity": "sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw==", + "devOptional": true, + "dependencies": { + "@types/http-errors": "*", + "@types/node": "*", + "@types/send": "*" + } + }, + "node_modules/@types/tough-cookie": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.5.tgz", + "integrity": "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==", + "dev": true + }, + "node_modules/@types/unist": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.10.tgz", + "integrity": "sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==" + }, + "node_modules/@types/use-sync-external-store": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/@types/use-sync-external-store/-/use-sync-external-store-0.0.3.tgz", + "integrity": "sha512-EwmlvuaxPNej9+T4v5AuBPJa2x2UOJVdjCtDHgcDqitUeOtjnJKJ+apYjVcAoBEMjKW1VVFGZLUb5+qqa09XFA==" + }, + "node_modules/@types/uuid": { + "version": "9.0.8", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-9.0.8.tgz", + "integrity": "sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==" + }, + "node_modules/@types/vscode": { + "version": "1.70.0", + "resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.70.0.tgz", + "integrity": "sha512-3/9Fz0F2eBgwciazc94Ien+9u1elnjFg9YAhvAb3qDy/WeFWD9VrOPU7CIytryOVUdbxus8uzL4VZYONA0gDtA==", + "dev": true + }, + "node_modules/@types/ws": { + "version": "8.5.10", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.10.tgz", + "integrity": "sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz", + "integrity": "sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==", + "dev": true, + "dependencies": { + "@eslint-community/regexpp": "^4.4.0", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/type-utils": "5.62.0", + "@typescript-eslint/utils": "5.62.0", + "debug": "^4.3.4", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "natural-compare-lite": "^1.4.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz", + "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/typescript-estree": "5.62.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", + "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz", + "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==", + "dev": true, + "dependencies": { + "@typescript-eslint/typescript-estree": "5.62.0", + "@typescript-eslint/utils": "5.62.0", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", + "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", + "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", + "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/typescript-estree": "5.62.0", + "eslint-scope": "^5.1.1", + "semver": "^7.3.7" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", + "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true + }, + "node_modules/@vscode/ripgrep": { + "version": "1.15.9", + "resolved": "https://registry.npmjs.org/@vscode/ripgrep/-/ripgrep-1.15.9.tgz", + "integrity": "sha512-4q2PXRvUvr3bF+LsfrifmUZgSPmCNcUZo6SbEAZgArIChchkezaxLoIeQMJe/z3CCKStvaVKpBXLxN3Z8lQjFQ==", + "hasInstallScript": true, + "dependencies": { + "https-proxy-agent": "^7.0.2", + "proxy-from-env": "^1.1.0", + "yauzl": "^2.9.2" + } + }, + "node_modules/@vscode/test-electron": { + "version": "2.3.10", + "resolved": "https://registry.npmjs.org/@vscode/test-electron/-/test-electron-2.3.10.tgz", + "integrity": "sha512-FxMqrvUm6a8S5tP4CymNJ40e6kD+wUTWTc6K32U629yrCCa+kl/rmpkC2gKpN4F4zjg1r+0Hnk9sl0+N2atsYA==", + "dependencies": { + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "jszip": "^3.10.1", + "semver": "^7.5.2" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@vscode/test-electron/node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/@vscode/test-electron/node_modules/http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "dependencies": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@vscode/test-electron/node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@vscode/vsce": { + "version": "2.26.1", + "resolved": "https://registry.npmjs.org/@vscode/vsce/-/vsce-2.26.1.tgz", + "integrity": "sha512-QOG6Ht7V93nhwcBxPWcG33UK0qDGEoJdg0xtVeaTN27W6PGdMJUJGTPhB/sNHUIFKwvwzv/zMAHvDgMNXbcwlA==", + "dev": true, + "dependencies": { + "@azure/identity": "^4.1.0", + "azure-devops-node-api": "^12.5.0", + "chalk": "^2.4.2", + "cheerio": "^1.0.0-rc.9", + "cockatiel": "^3.1.2", + "commander": "^6.2.1", + "form-data": "^4.0.0", + "glob": "^7.0.6", + "hosted-git-info": "^4.0.2", + "jsonc-parser": "^3.2.0", + "leven": "^3.1.0", + "markdown-it": "^12.3.2", + "mime": "^1.3.4", + "minimatch": "^3.0.3", + "parse-semver": "^1.1.1", + "read": "^1.0.7", + "semver": "^7.5.2", + "tmp": "^0.2.1", + "typed-rest-client": "^1.8.4", + "url-join": "^4.0.1", + "xml2js": "^0.5.0", + "yauzl": "^2.3.1", + "yazl": "^2.2.2" + }, + "bin": { + "vsce": "vsce" + }, + "engines": { + "node": ">= 16" + }, + "optionalDependencies": { + "keytar": "^7.7.0" + } + }, + "node_modules/@vscode/vsce/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@vscode/vsce/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@vscode/vsce/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@vscode/vsce/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/@vscode/vsce/node_modules/commander": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", + "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@vscode/vsce/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@vscode/vsce/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@vscode/vsce/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@vscode/vsce/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.11.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/agent-base": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", + "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", + "dependencies": { + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/agentkeepalive": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.5.0.tgz", + "integrity": "sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==", + "dependencies": { + "humanize-ms": "^1.2.1" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/aggregate-error": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-4.0.1.tgz", + "integrity": "sha512-0poP0T7el6Vq3rstR8Mn4V/IQrpBLO6POkUSrN7RhyY+GF/InCFShQzsQ39T25gkHhLgSLByyAz+Kjb+c2L98w==", + "dependencies": { + "clean-stack": "^4.0.0", + "indent-string": "^5.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-escapes/node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==" + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/apache-arrow": { + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/apache-arrow/-/apache-arrow-14.0.2.tgz", + "integrity": "sha512-EBO2xJN36/XoY81nhLcwCJgFwkboDZeyNQ+OPsG7bCoQjc2BT0aTyH/MR6SrL+LirSNz+cYqjGRlupMMlP1aEg==", + "peer": true, + "dependencies": { + "@types/command-line-args": "5.2.0", + "@types/command-line-usage": "5.0.2", + "@types/node": "20.3.0", + "@types/pad-left": "2.1.1", + "command-line-args": "5.2.1", + "command-line-usage": "7.0.1", + "flatbuffers": "23.5.26", + "json-bignum": "^0.0.3", + "pad-left": "^2.1.0", + "tslib": "^2.5.3" + }, + "bin": { + "arrow2csv": "bin/arrow2csv.js" + } + }, + "node_modules/apache-arrow/node_modules/@types/node": { + "version": "20.3.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.3.0.tgz", + "integrity": "sha512-cumHmIAf6On83X7yP+LrsEyUOf/YlociZelmpRYaGFydoaPdxdt80MAbu6vWerQT2COCp2nPvHdsbD7tHn/YlQ==", + "peer": true + }, + "node_modules/aproba": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", + "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==" + }, + "node_modules/are-we-there-yet": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", + "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", + "deprecated": "This package is no longer supported.", + "dependencies": { + "delegates": "^1.0.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/are-we-there-yet/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==" + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/array-back": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", + "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/arrify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-3.0.0.tgz", + "integrity": "sha512-tLkvA81vQG/XqE2mjDkGQHoOINtMHtysSnemrmoGe6PydDPMRbVugqyk4A6V/WDWEfm3l+0d8anA9r8cv/5Jaw==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/asn1": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", + "dependencies": { + "safer-buffer": "~2.1.0" + } + }, + "node_modules/assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "node_modules/aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", + "engines": { + "node": "*" + } + }, + "node_modules/aws4": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.13.0.tgz", + "integrity": "sha512-3AungXC4I8kKsS9PuS4JH2nc+0bVY/mjgrephHTIi8fpEeGsTHBUJeosp0Wc1myYMElmD0B3Oc4XL/HVJ4PV2g==" + }, + "node_modules/axios": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.1.tgz", + "integrity": "sha512-+LV37nQcd1EpFalkXksWNBiA17NZ5m5/WspmHGmZmdx1qBOg/VNq/c4eRJiA9VQQHBOs+N0ZhhdU10h2TyNK7Q==", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/azure-devops-node-api": { + "version": "12.5.0", + "resolved": "https://registry.npmjs.org/azure-devops-node-api/-/azure-devops-node-api-12.5.0.tgz", + "integrity": "sha512-R5eFskGvOm3U/GzeAuxRkUsAl0hrAwGgWn6zAd2KrZmrEhWZVqLew4OOupbQlXUuojUzpGtq62SmdhJ06N88og==", + "dev": true, + "dependencies": { + "tunnel": "0.0.6", + "typed-rest-client": "^1.8.4" + } + }, + "node_modules/bail": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", + "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", + "dependencies": { + "tweetnacl": "^0.14.3" + } + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "dependencies": { + "file-uri-to-path": "1.0.0" + } + }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/bl/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/body-parser": { + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", + "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.2", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", + "dev": true + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "engines": { + "node": "*" + } + }, + "node_modules/buffer-equal-constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==", + "dev": true + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/cacache": { + "version": "16.1.3", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-16.1.3.tgz", + "integrity": "sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==", + "dependencies": { + "@npmcli/fs": "^2.1.0", + "@npmcli/move-file": "^2.0.0", + "chownr": "^2.0.0", + "fs-minipass": "^2.1.0", + "glob": "^8.0.1", + "infer-owner": "^1.0.4", + "lru-cache": "^7.7.1", + "minipass": "^3.1.6", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "mkdirp": "^1.0.4", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^9.0.0", + "tar": "^6.1.11", + "unique-filename": "^2.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/cacache/node_modules/lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "engines": { + "node": ">=12" + } + }, + "node_modules/cacache/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/cacache/node_modules/rimraf/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/cacheable-lookup": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", + "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==", + "engines": { + "node": ">=10.6.0" + } + }, + "node_modules/cacheable-request": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.4.tgz", + "integrity": "sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==", + "dependencies": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^4.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^6.0.1", + "responselike": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cacheable-request/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/call-me-maybe": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.2.tgz", + "integrity": "sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==", + "dev": true + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/cargo-cp-artifact": { + "version": "0.1.9", + "resolved": "https://registry.npmjs.org/cargo-cp-artifact/-/cargo-cp-artifact-0.1.9.tgz", + "integrity": "sha512-6F+UYzTaGB+awsTXg0uSJA1/b/B3DDJzpKVRu0UmyI7DmNeaAl2RFHuTGIN6fEgpadRxoXGb7gbC1xo4C3IdyA==", + "dev": true, + "bin": { + "cargo-cp-artifact": "bin/cargo-cp-artifact.js" + } + }, + "node_modules/caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==" + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chalk-template": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/chalk-template/-/chalk-template-0.4.0.tgz", + "integrity": "sha512-/ghrgmhfY8RaSdeo43hNXxpoHAtxdbskUHjPpfqUWGttFgycUhYPGx3YZBCnUCvOa7Doivn1IZec3DEGFoMgLg==", + "peer": true, + "dependencies": { + "chalk": "^4.1.2" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/chalk-template?sponsor=1" + } + }, + "node_modules/character-entities": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz", + "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true + }, + "node_modules/cheerio": { + "version": "1.0.0-rc.12", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz", + "integrity": "sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==", + "dev": true, + "dependencies": { + "cheerio-select": "^2.1.0", + "dom-serializer": "^2.0.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "htmlparser2": "^8.0.1", + "parse5": "^7.0.0", + "parse5-htmlparser2-tree-adapter": "^7.0.0" + }, + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/cheeriojs/cheerio?sponsor=1" + } + }, + "node_modules/cheerio-select": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz", + "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0", + "css-select": "^5.1.0", + "css-what": "^6.1.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "engines": { + "node": ">=10" + } + }, + "node_modules/ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "dev": true + }, + "node_modules/clean-stack": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-4.2.0.tgz", + "integrity": "sha512-LYv6XPxoyODi36Dp976riBtSY27VmFo+MKqEU9QCCWyTrdEPDog+RWA7xQWHi6Vbp61j5c4cdzzX1NidnwtUWg==", + "dependencies": { + "escape-string-regexp": "5.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/clean-stack/node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-color": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/cli-color/-/cli-color-2.0.4.tgz", + "integrity": "sha512-zlnpg0jNcibNrO7GG9IeHH7maWFeCz+Ja1wx/7tZNU5ASSSSZ+/qZciM0/LHCYxSdqv5h2sdbQ/PXYdOuetXvA==", + "dev": true, + "dependencies": { + "d": "^1.0.1", + "es5-ext": "^0.10.64", + "es6-iterator": "^2.0.3", + "memoizee": "^0.4.15", + "timers-ext": "^0.1.7" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-spinners": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", + "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-width": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/cliui/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/clone-response": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", + "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", + "dependencies": { + "mimic-response": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cockatiel": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/cockatiel/-/cockatiel-3.1.3.tgz", + "integrity": "sha512-xC759TpZ69d7HhfDp8m2WkRwEUiCkxY8Ee2OQH/3H6zmy2D/5Sm+zSTbPRa+V2QyjDtpMvjOIAOVjA2gp6N1kQ==", + "dev": true, + "engines": { + "node": ">=16" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/color-support": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", + "bin": { + "color-support": "bin.js" + } + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/comma-separated-tokens": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", + "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/command-line-args": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz", + "integrity": "sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==", + "peer": true, + "dependencies": { + "array-back": "^3.1.0", + "find-replace": "^3.0.0", + "lodash.camelcase": "^4.3.0", + "typical": "^4.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/command-line-usage": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-7.0.1.tgz", + "integrity": "sha512-NCyznE//MuTjwi3y84QVUGEOT+P5oto1e1Pk/jFPVdPPfsG03qpTIl3yw6etR+v73d0lXsoojRpvbru2sqePxQ==", + "peer": true, + "dependencies": { + "array-back": "^6.2.2", + "chalk-template": "^0.4.0", + "table-layout": "^3.0.0", + "typical": "^7.1.1" + }, + "engines": { + "node": ">=12.20.0" + } + }, + "node_modules/command-line-usage/node_modules/array-back": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-6.2.2.tgz", + "integrity": "sha512-gUAZ7HPyb4SJczXAMUXMGAvI976JoK3qEx9v1FTmeYuJj0IBiaKttG1ydtGKdkfqWkIkouke7nG8ufGy77+Cvw==", + "peer": true, + "engines": { + "node": ">=12.17" + } + }, + "node_modules/command-line-usage/node_modules/typical": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/typical/-/typical-7.1.1.tgz", + "integrity": "sha512-T+tKVNs6Wu7IWiAce5BgMd7OZfNYUndHwc5MknN+UHOudi7sGZzuHdCadllRuqJ3fPtgFtIH9+lt9qRv6lmpfA==", + "peer": true, + "engines": { + "node": ">=12.17" + } + }, + "node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "engines": { + "node": ">= 12" + } + }, + "node_modules/compare-versions": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-4.1.4.tgz", + "integrity": "sha512-FemMreK9xNyL8gQevsdRMrvO4lFCkQP7qbuktn1q8ndcNk1+0mz7lgE7b/sNvbhVgY4w6tMN1FDp6aADjqw2rw==", + "dev": true + }, + "node_modules/compute-scroll-into-view": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-2.0.4.tgz", + "integrity": "sha512-y/ZA3BGnxoM/QHHQ2Uy49CLtnWPbt4tTPpEEZiEmmiWBFKjej7nEyH8Ryz54jH0MLXflUYA3Er2zUxPSJu5R+g==" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "node_modules/concurrently": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-6.5.1.tgz", + "integrity": "sha512-FlSwNpGjWQfRwPLXvJ/OgysbBxPkWpiVjy1042b0U7on7S7qwwMIILRj7WTN1mTgqa582bG6NFuScOoh6Zgdag==", + "dev": true, + "dependencies": { + "chalk": "^4.1.0", + "date-fns": "^2.16.1", + "lodash": "^4.17.21", + "rxjs": "^6.6.3", + "spawn-command": "^0.0.2-1", + "supports-color": "^8.1.0", + "tree-kill": "^1.2.2", + "yargs": "^16.2.0" + }, + "bin": { + "concurrently": "bin/concurrently.js" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/concurrently/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/concurrently/node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/concurrently/node_modules/rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/concurrently/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/concurrently/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/concurrently/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/concurrently/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/concurrently/node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/consola": { + "version": "2.15.3", + "resolved": "https://registry.npmjs.org/consola/-/consola-2.15.3.tgz", + "integrity": "sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==", + "dev": true + }, + "node_modules/console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==" + }, + "node_modules/console.table": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/console.table/-/console.table-0.10.0.tgz", + "integrity": "sha512-dPyZofqggxuvSf7WXvNjuRfnsOk1YazkVP8FdxH4tcH2c37wc79/Yl6Bhr7Lsu00KMgy2ql/qCMuNu8xctZM8g==", + "dev": true, + "dependencies": { + "easy-table": "1.1.0" + }, + "engines": { + "node": "> 0.10" + } + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + }, + "node_modules/core": { + "resolved": "../../core", + "link": true + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "node_modules/cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/css-select": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", + "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "dev": true, + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssstyle": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-4.0.1.tgz", + "integrity": "sha512-8ZYiJ3A/3OkDd093CBT/0UKDWry7ak4BdPTFP2+QEP7cmhouyq/Up709ASSj2cK02BbZiMgk7kYjZNS4QP5qrQ==", + "dependencies": { + "rrweb-cssom": "^0.6.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" + }, + "node_modules/d": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.2.tgz", + "integrity": "sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw==", + "dev": true, + "dependencies": { + "es5-ext": "^0.10.64", + "type": "^2.7.2" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", + "dependencies": { + "assert-plus": "^1.0.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/data-uri-to-buffer": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", + "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", + "engines": { + "node": ">= 12" + } + }, + "node_modules/data-urls": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-5.0.0.tgz", + "integrity": "sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==", + "dependencies": { + "whatwg-mimetype": "^4.0.0", + "whatwg-url": "^14.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/date-fns": { + "version": "2.30.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz", + "integrity": "sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.21.0" + }, + "engines": { + "node": ">=0.11" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/date-fns" + } + }, + "node_modules/dbinfoz": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/dbinfoz/-/dbinfoz-0.1.4.tgz", + "integrity": "sha512-MB56+xS571ip7qoXqxdnOUtXebbWaqoZN+S++W51SQYJRSjQFGEIPucNmxgeQlBGJ1vM4mQNV47wzV6fcrezZg==", + "dependencies": { + "mysql2": "^3.9.1", + "pg": "^8.11.3", + "sqlite3": "^5.1.7" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decamelize": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", + "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/decimal.js": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", + "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==" + }, + "node_modules/decode-named-character-reference": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz", + "integrity": "sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==", + "dependencies": { + "character-entities": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "dependencies": { + "mimic-response": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/decompress-response/node_modules/mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/defaults": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", + "dependencies": { + "clone": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/defer-to-connect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", + "engines": { + "node": ">=10" + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==" + }, + "node_modules/denque": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz", + "integrity": "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/detect-libc": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", + "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==" + }, + "node_modules/diff": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", + "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==" + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dev": true, + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dev": true, + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", + "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", + "dev": true, + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/downshift": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/downshift/-/downshift-7.6.2.tgz", + "integrity": "sha512-iOv+E1Hyt3JDdL9yYcOgW7nZ7GQ2Uz6YbggwXvKUSleetYhU2nXD482Rz6CzvM4lvI1At34BYruKAL4swRGxaA==", + "dependencies": { + "@babel/runtime": "^7.14.8", + "compute-scroll-into-view": "^2.0.4", + "prop-types": "^15.7.2", + "react-is": "^17.0.2", + "tslib": "^2.3.0" + }, + "peerDependencies": { + "react": ">=16.12.0" + } + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" + }, + "node_modules/easy-table": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/easy-table/-/easy-table-1.1.0.tgz", + "integrity": "sha512-oq33hWOSSnl2Hoh00tZWaIPi1ievrD9aFG82/IgjlycAnW9hHx5PkJiXpxPsgEE+H7BsbVQXFVFST8TEXS6/pA==", + "dev": true, + "optionalDependencies": { + "wcwidth": ">=1.0.1" + } + }, + "node_modules/ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", + "dependencies": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/ecc-jsbn/node_modules/jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==" + }, + "node_modules/ecdsa-sig-formatter": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + }, + "node_modules/emoji-regex": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.3.0.tgz", + "integrity": "sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==" + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "optional": true, + "dependencies": { + "iconv-lite": "^0.6.2" + } + }, + "node_modules/encoding/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "optional": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/engine.io-client": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.5.3.tgz", + "integrity": "sha512-9Z0qLB0NIisTRt1DZ/8U2k12RJn8yls/nXMZLn+/N8hANT3TcYjKFKcwbw5zFQiN4NTde3TSY9zb79e1ij6j9Q==", + "dependencies": { + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.1", + "engine.io-parser": "~5.2.1", + "ws": "~8.11.0", + "xmlhttprequest-ssl": "~2.0.0" + } + }, + "node_modules/engine.io-client/node_modules/ws": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", + "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/engine.io-parser": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.2.tgz", + "integrity": "sha512-RcyUFKA93/CXH20l4SoVvzZfrSDMOTUS3bWVpTt2FuFP+XYrL8i8oonHP7WInRyVHXh0n/ORtoeiE1os+8qkSw==", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "engines": { + "node": ">=6" + } + }, + "node_modules/err-code": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", + "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==" + }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es5-ext": { + "version": "0.10.64", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.64.tgz", + "integrity": "sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "es6-iterator": "^2.0.3", + "es6-symbol": "^3.1.3", + "esniff": "^2.0.1", + "next-tick": "^1.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", + "dev": true, + "dependencies": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "node_modules/es6-symbol": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.4.tgz", + "integrity": "sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg==", + "dev": true, + "dependencies": { + "d": "^1.0.2", + "ext": "^1.7.0" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/es6-weak-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", + "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", + "dev": true, + "dependencies": { + "d": "1", + "es5-ext": "^0.10.46", + "es6-iterator": "^2.0.3", + "es6-symbol": "^3.1.1" + } + }, + "node_modules/esbuild": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.19.tgz", + "integrity": "sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==", + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.17.19", + "@esbuild/android-arm64": "0.17.19", + "@esbuild/android-x64": "0.17.19", + "@esbuild/darwin-arm64": "0.17.19", + "@esbuild/darwin-x64": "0.17.19", + "@esbuild/freebsd-arm64": "0.17.19", + "@esbuild/freebsd-x64": "0.17.19", + "@esbuild/linux-arm": "0.17.19", + "@esbuild/linux-arm64": "0.17.19", + "@esbuild/linux-ia32": "0.17.19", + "@esbuild/linux-loong64": "0.17.19", + "@esbuild/linux-mips64el": "0.17.19", + "@esbuild/linux-ppc64": "0.17.19", + "@esbuild/linux-riscv64": "0.17.19", + "@esbuild/linux-s390x": "0.17.19", + "@esbuild/linux-x64": "0.17.19", + "@esbuild/netbsd-x64": "0.17.19", + "@esbuild/openbsd-x64": "0.17.19", + "@esbuild/sunos-x64": "0.17.19", + "@esbuild/win32-arm64": "0.17.19", + "@esbuild/win32-ia32": "0.17.19", + "@esbuild/win32-x64": "0.17.19" + } + }, + "node_modules/escalade": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", + "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.0", + "@humanwhocodes/config-array": "^0.11.14", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/eslint/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/esniff": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/esniff/-/esniff-2.0.1.tgz", + "integrity": "sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==", + "dev": true, + "dependencies": { + "d": "^1.0.1", + "es5-ext": "^0.10.62", + "event-emitter": "^0.3.5", + "type": "^2.7.2" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esquery/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/event-emitter": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", + "integrity": "sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==", + "dev": true, + "dependencies": { + "d": "1", + "es5-ext": "~0.10.14" + } + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true, + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/expand-template": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", + "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/exponential-backoff": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.1.tgz", + "integrity": "sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==" + }, + "node_modules/express": { + "version": "4.19.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz", + "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.2", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.6.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/ext": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz", + "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==", + "dev": true, + "dependencies": { + "type": "^2.7.2" + } + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "node_modules/external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dev": true, + "dependencies": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/external-editor/node_modules/tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "dependencies": { + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", + "engines": [ + "node >=0.6.0" + ] + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + }, + "node_modules/fast-levenshtein": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-3.0.0.tgz", + "integrity": "sha512-hKKNajm46uNmTlhHSyZkmToAc56uZJwYq7yrciZjqOxnlfQwERDQJmHPUp7m1m9wx8vgOe8IaCKZ5Kv2k1DdCQ==", + "dependencies": { + "fastest-levenshtein": "^1.0.7" + } + }, + "node_modules/fast-safe-stringify": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", + "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", + "dev": true + }, + "node_modules/fastest-levenshtein": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", + "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", + "engines": { + "node": ">= 4.9.1" + } + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "dependencies": { + "pend": "~1.2.0" + } + }, + "node_modules/fetch-blob": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", + "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "paypal", + "url": "https://paypal.me/jimmywarting" + } + ], + "dependencies": { + "node-domexception": "^1.0.0", + "web-streams-polyfill": "^3.0.3" + }, + "engines": { + "node": "^12.20 || >= 14.13" + } + }, + "node_modules/figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/figures/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/find-replace": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz", + "integrity": "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==", + "peer": true, + "dependencies": { + "array-back": "^3.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/fkill": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/fkill/-/fkill-8.1.1.tgz", + "integrity": "sha512-138B7rFQMEKoJQOVl3NCPyRAaex0ruLvQgqkEWa/CyUY9MFFxZ8TtztiMJSs6/wD60M6kK0OKUOwHRsr3U2RBg==", + "dependencies": { + "aggregate-error": "^4.0.0", + "execa": "^5.1.1", + "pid-port": "^0.2.0", + "process-exists": "^4.1.0", + "ps-list": "^7.2.0", + "taskkill": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "dev": true, + "bin": { + "flat": "cli.js" + } + }, + "node_modules/flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dev": true, + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flat-cache/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/flat-cache/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/flatbuffers": { + "version": "23.5.26", + "resolved": "https://registry.npmjs.org/flatbuffers/-/flatbuffers-23.5.26.tgz", + "integrity": "sha512-vE+SI9vrJDwi1oETtTIFldC/o9GsVKRM+s6EL0nQgxXlYV1Vc4Tk30hj4xGICftInKQKj1F3up2n8UbIVobISQ==", + "peer": true + }, + "node_modules/flatted": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "dev": true + }, + "node_modules/follow-redirects": { + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/foreground-child": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", + "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/foreground-child/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", + "engines": { + "node": "*" + } + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/formdata-polyfill": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", + "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", + "dependencies": { + "fetch-blob": "^3.1.2" + }, + "engines": { + "node": ">=12.20.0" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" + }, + "node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gauge": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", + "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", + "deprecated": "This package is no longer supported.", + "dependencies": { + "aproba": "^1.0.3 || ^2.0.0", + "color-support": "^1.1.3", + "console-control-strings": "^1.1.0", + "has-unicode": "^2.0.1", + "signal-exit": "^3.0.7", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wide-align": "^1.1.5" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/gauge/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/gauge/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/generate-function": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.3.1.tgz", + "integrity": "sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==", + "dependencies": { + "is-property": "^1.0.2" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-stdin": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-8.0.0.tgz", + "integrity": "sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", + "dependencies": { + "assert-plus": "^1.0.0" + } + }, + "node_modules/github-from-package": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", + "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==" + }, + "node_modules/glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/glob/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/got": { + "version": "11.8.6", + "resolved": "https://registry.npmjs.org/got/-/got-11.8.6.tgz", + "integrity": "sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==", + "dependencies": { + "@sindresorhus/is": "^4.0.0", + "@szmarczak/http-timer": "^4.0.5", + "@types/cacheable-request": "^6.0.1", + "@types/responselike": "^1.0.0", + "cacheable-lookup": "^5.0.3", + "cacheable-request": "^7.0.2", + "decompress-response": "^6.0.0", + "http2-wrapper": "^1.0.0-beta.5.2", + "lowercase-keys": "^2.0.0", + "p-cancelable": "^2.0.0", + "responselike": "^2.0.0" + }, + "engines": { + "node": ">=10.19.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/got?sponsor=1" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, + "node_modules/handlebars": { + "version": "4.7.8", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", + "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", + "dependencies": { + "minimist": "^1.2.5", + "neo-async": "^2.6.2", + "source-map": "^0.6.1", + "wordwrap": "^1.0.0" + }, + "bin": { + "handlebars": "bin/handlebars" + }, + "engines": { + "node": ">=0.4.7" + }, + "optionalDependencies": { + "uglify-js": "^3.1.4" + } + }, + "node_modules/har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==", + "engines": { + "node": ">=4" + } + }, + "node_modules/har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "deprecated": "this library is no longer supported", + "dependencies": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==" + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hast-util-whitespace": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-2.0.1.tgz", + "integrity": "sha512-nAxA0v8+vXSBDt3AnRUNjyRIQ0rD+ntpbAp4LnPkumc5M9yUbSMa4XDU9Q6etY4f1Wp4bNgvc1yjiZtsTTrSng==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, + "bin": { + "he": "bin/he" + } + }, + "node_modules/highlight.js": { + "version": "11.9.0", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-11.9.0.tgz", + "integrity": "sha512-fJ7cW7fQGCYAkgv4CPfwFHrfd/cLS4Hau96JuJ+ZTOWhjnhoeN1ub1tFmALm/+lW5z4WCAuAV9bm05AP0mS6Gw==", + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/highlightable": { + "version": "1.3.0-beta.0", + "resolved": "https://registry.npmjs.org/highlightable/-/highlightable-1.3.0-beta.0.tgz", + "integrity": "sha512-pDgzsLBus8oscL7KOqZ5rVMXgCnEmoig+G5gWoDczMm1SFDsNLzRwmNjkJoKdiA3q0oW/f+VqZ3W2YzG5lXQYA==", + "dependencies": { + "@types/react": "^18.0.28", + "emoji-regex": "^10.2.1", + "react": "^18.2.0", + "react-dom": "^18.2.0" + } + }, + "node_modules/hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "dependencies": { + "react-is": "^16.7.0" + } + }, + "node_modules/hoist-non-react-statics/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, + "node_modules/hosted-git-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/html-encoding-sniffer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-4.0.0.tgz", + "integrity": "sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==", + "dependencies": { + "whatwg-encoding": "^3.1.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/htmlparser2": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz", + "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==", + "dev": true, + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "entities": "^4.4.0" + } + }, + "node_modules/http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==" + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "dependencies": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/http-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/http-proxy-middleware": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", + "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==", + "dependencies": { + "@types/http-proxy": "^1.17.8", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.1", + "is-plain-obj": "^3.0.0", + "micromatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "@types/express": "^4.17.13" + }, + "peerDependenciesMeta": { + "@types/express": { + "optional": true + } + } + }, + "node_modules/http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", + "dependencies": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + }, + "engines": { + "node": ">=0.8", + "npm": ">=1.3.7" + } + }, + "node_modules/http2-wrapper": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", + "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", + "dependencies": { + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.0.0" + }, + "engines": { + "node": ">=10.19.0" + } + }, + "node_modules/https-proxy-agent": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz", + "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==", + "dependencies": { + "agent-base": "^7.0.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/humanize-ms": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", + "dependencies": { + "ms": "^2.0.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/ignore": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "engines": { + "node": ">= 4" + } + }, + "node_modules/immediate": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==" + }, + "node_modules/immer": { + "version": "9.0.21", + "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.21.tgz", + "integrity": "sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/immer" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", + "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==" + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + }, + "node_modules/inline-style-parser": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.1.1.tgz", + "integrity": "sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==" + }, + "node_modules/inquirer": { + "version": "8.2.6", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.6.tgz", + "integrity": "sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==", + "dev": true, + "dependencies": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.1", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.21", + "mute-stream": "0.0.8", + "ora": "^5.4.1", + "run-async": "^2.4.0", + "rxjs": "^7.5.5", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6", + "wrap-ansi": "^6.0.1" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/inquirer/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/inquirer/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ip-address": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", + "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==", + "dependencies": { + "jsbn": "1.1.0", + "sprintf-js": "^1.1.3" + }, + "engines": { + "node": ">= 12" + } + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-buffer": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", + "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "engines": { + "node": ">=4" + } + }, + "node_modules/is-ci": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "dev": true, + "dependencies": { + "ci-info": "^2.0.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, + "node_modules/is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "dependencies": { + "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-lambda": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", + "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==" + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==" + }, + "node_modules/is-promise": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", + "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==", + "dev": true + }, + "node_modules/is-property": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", + "integrity": "sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g==" + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" + }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "node_modules/isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==" + }, + "node_modules/iterare": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/iterare/-/iterare-1.2.1.tgz", + "integrity": "sha512-RKYVTCjAnRthyJes037NX/IiqeidgN1xc3j1RjFfECFp28A1GVwK9nA+i0rJPaHqSZwygLzRnFlzUuHFoWWy+Q==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/jackspeak": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", + "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jiti": { + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz", + "integrity": "sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==", + "bin": { + "jiti": "bin/jiti.js" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsbn": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz", + "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==" + }, + "node_modules/jsdom": { + "version": "24.0.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-24.0.0.tgz", + "integrity": "sha512-UDS2NayCvmXSXVP6mpTj+73JnNQadZlr9N68189xib2tx5Mls7swlTNao26IoHv46BZJFvXygyRtyXd1feAk1A==", + "dependencies": { + "cssstyle": "^4.0.1", + "data-urls": "^5.0.0", + "decimal.js": "^10.4.3", + "form-data": "^4.0.0", + "html-encoding-sniffer": "^4.0.0", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.2", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.7", + "parse5": "^7.1.2", + "rrweb-cssom": "^0.6.0", + "saxes": "^6.0.0", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.1.3", + "w3c-xmlserializer": "^5.0.0", + "webidl-conversions": "^7.0.0", + "whatwg-encoding": "^3.1.1", + "whatwg-mimetype": "^4.0.0", + "whatwg-url": "^14.0.0", + "ws": "^8.16.0", + "xml-name-validator": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "canvas": "^2.11.2" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, + "node_modules/json-bignum": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/json-bignum/-/json-bignum-0.0.3.tgz", + "integrity": "sha512-2WHyXj3OfHSgNyuzDbSxI1w2jgw5gkWSWhS7Qg4bWXx1nLk3jnbwfUeS0PSba3IzpTUWdHxBieELUzXRjQB2zg==", + "peer": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" + }, + "node_modules/json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" + }, + "node_modules/json-schema-to-typescript": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/json-schema-to-typescript/-/json-schema-to-typescript-12.0.0.tgz", + "integrity": "sha512-Uk/BDIAo8vqepPBhM86UhNMHgCv7JulicNj/BgnQPHE1fGCoej0UTtcEYzXU/uk6lSvbZCf7pccW+dnNMrr5rg==", + "dev": true, + "dependencies": { + "@bcherny/json-schema-ref-parser": "10.0.5-fork", + "@types/json-schema": "^7.0.11", + "@types/lodash": "^4.14.182", + "@types/prettier": "^2.6.1", + "cli-color": "^2.0.2", + "get-stdin": "^8.0.0", + "glob": "^7.1.6", + "glob-promise": "^4.2.2", + "is-glob": "^4.0.3", + "lodash": "^4.17.21", + "minimist": "^1.2.6", + "mkdirp": "^1.0.4", + "mz": "^2.7.0", + "prettier": "^2.6.2" + }, + "bin": { + "json2ts": "dist/src/cli.js" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/json-schema-to-typescript/node_modules/@types/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", + "dev": true, + "dependencies": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "node_modules/json-schema-to-typescript/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/json-schema-to-typescript/node_modules/glob-promise": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/glob-promise/-/glob-promise-4.2.2.tgz", + "integrity": "sha512-xcUzJ8NWN5bktoTIX7eOclO1Npxd/dyVqUJxlLIDasT4C7KZyqlPIwkdJ0Ypiy3p2ZKahTjK4M9uC3sNSfNMzw==", + "dev": true, + "dependencies": { + "@types/glob": "^7.1.3" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "type": "individual", + "url": "https://github.com/sponsors/ahmadnassri" + }, + "peerDependencies": { + "glob": "^7.1.6" + } + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==" + }, + "node_modules/jsonc-parser": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.1.tgz", + "integrity": "sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==", + "dev": true + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsonwebtoken": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz", + "integrity": "sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==", + "dev": true, + "dependencies": { + "jws": "^3.2.2", + "lodash.includes": "^4.3.0", + "lodash.isboolean": "^3.0.3", + "lodash.isinteger": "^4.0.4", + "lodash.isnumber": "^3.0.3", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.once": "^4.0.0", + "ms": "^2.1.1", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=12", + "npm": ">=6" + } + }, + "node_modules/jsonwebtoken/node_modules/jwa": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", + "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", + "dev": true, + "dependencies": { + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/jsonwebtoken/node_modules/jws": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", + "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", + "dev": true, + "dependencies": { + "jwa": "^1.4.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/jsprim": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", + "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", + "dependencies": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.4.0", + "verror": "1.10.0" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/jszip": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz", + "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==", + "dependencies": { + "lie": "~3.3.0", + "pako": "~1.0.2", + "readable-stream": "~2.3.6", + "setimmediate": "^1.0.5" + } + }, + "node_modules/jwa": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.0.tgz", + "integrity": "sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA==", + "dev": true, + "dependencies": { + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/jws": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.0.tgz", + "integrity": "sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==", + "dev": true, + "dependencies": { + "jwa": "^2.0.0", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/keytar": { + "version": "7.9.0", + "resolved": "https://registry.npmjs.org/keytar/-/keytar-7.9.0.tgz", + "integrity": "sha512-VPD8mtVtm5JNtA2AErl6Chp06JBfy7diFQ7TQQhdpWOl6MrCRB+eRbvAZUsbGQS9kiMq0coJsy0W0vHpDCkWsQ==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "node-addon-api": "^4.3.0", + "prebuild-install": "^7.0.1" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/kleur": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", + "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lie": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", + "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", + "dependencies": { + "immediate": "~3.0.5" + } + }, + "node_modules/lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "engines": { + "node": ">=10" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" + }, + "node_modules/linkify-it": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-3.0.3.tgz", + "integrity": "sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==", + "dev": true, + "dependencies": { + "uc.micro": "^1.0.1" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/lodash.assignwith": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.assignwith/-/lodash.assignwith-4.2.0.tgz", + "integrity": "sha512-ZznplvbvtjK2gMvnQ1BR/zqPFZmS6jbK4p+6Up4xcRYA7yMIwxHCfbTcrYxXKzzqLsQ05eJPVznEW3tuwV7k1g==", + "peer": true + }, + "node_modules/lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", + "peer": true + }, + "node_modules/lodash.includes": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", + "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==", + "dev": true + }, + "node_modules/lodash.isboolean": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", + "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==", + "dev": true + }, + "node_modules/lodash.isinteger": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", + "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==", + "dev": true + }, + "node_modules/lodash.isnumber": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", + "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==", + "dev": true + }, + "node_modules/lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", + "dev": true + }, + "node_modules/lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==", + "dev": true + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==", + "dev": true + }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/long": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", + "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==" + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "devOptional": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/lru-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz", + "integrity": "sha512-BpdYkt9EvGl8OfWHDQPISVpcl5xZthb+XPsbELj5AQXxIC8IriDZIQYjBJPEm5rS420sjZ0TLEzRcq5KdBhYrQ==", + "dev": true, + "dependencies": { + "es5-ext": "~0.10.2" + } + }, + "node_modules/make-fetch-happen": { + "version": "10.2.1", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz", + "integrity": "sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==", + "dependencies": { + "agentkeepalive": "^4.2.1", + "cacache": "^16.1.0", + "http-cache-semantics": "^4.1.0", + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.0", + "is-lambda": "^1.0.1", + "lru-cache": "^7.7.1", + "minipass": "^3.1.6", + "minipass-collect": "^1.0.2", + "minipass-fetch": "^2.0.3", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.3", + "promise-retry": "^2.0.1", + "socks-proxy-agent": "^7.0.0", + "ssri": "^9.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/make-fetch-happen/node_modules/@tootallnate/once": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", + "engines": { + "node": ">= 10" + } + }, + "node_modules/make-fetch-happen/node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/make-fetch-happen/node_modules/http-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "dependencies": { + "@tootallnate/once": "2", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/make-fetch-happen/node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/make-fetch-happen/node_modules/lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "engines": { + "node": ">=12" + } + }, + "node_modules/markdown-it": { + "version": "12.3.2", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-12.3.2.tgz", + "integrity": "sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1", + "entities": "~2.1.0", + "linkify-it": "^3.0.1", + "mdurl": "^1.0.1", + "uc.micro": "^1.0.5" + }, + "bin": { + "markdown-it": "bin/markdown-it.js" + } + }, + "node_modules/markdown-it/node_modules/entities": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz", + "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==", + "dev": true, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/mdast-util-definitions": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-5.1.2.tgz", + "integrity": "sha512-8SVPMuHqlPME/z3gqVwWY4zVXn8lqKv/pAhC57FuJ40ImXyBpmO5ukh98zB2v7Blql2FiHjHv9LVztSIqjY+MA==", + "dependencies": { + "@types/mdast": "^3.0.0", + "@types/unist": "^2.0.0", + "unist-util-visit": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-from-markdown": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-1.3.1.tgz", + "integrity": "sha512-4xTO/M8c82qBcnQc1tgpNtubGUW/Y1tBQ1B0i5CtSoelOLKFYlElIr3bvgREYYO5iRqbMY1YuqZng0GVOI8Qww==", + "dependencies": { + "@types/mdast": "^3.0.0", + "@types/unist": "^2.0.0", + "decode-named-character-reference": "^1.0.0", + "mdast-util-to-string": "^3.1.0", + "micromark": "^3.0.0", + "micromark-util-decode-numeric-character-reference": "^1.0.0", + "micromark-util-decode-string": "^1.0.0", + "micromark-util-normalize-identifier": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "unist-util-stringify-position": "^3.0.0", + "uvu": "^0.5.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-hast": { + "version": "12.3.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-12.3.0.tgz", + "integrity": "sha512-pits93r8PhnIoU4Vy9bjW39M2jJ6/tdHyja9rrot9uujkN7UTU9SDnE6WNJz/IGyQk3XHX6yNNtrBH6cQzm8Hw==", + "dependencies": { + "@types/hast": "^2.0.0", + "@types/mdast": "^3.0.0", + "mdast-util-definitions": "^5.0.0", + "micromark-util-sanitize-uri": "^1.1.0", + "trim-lines": "^3.0.0", + "unist-util-generated": "^2.0.0", + "unist-util-position": "^4.0.0", + "unist-util-visit": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-string": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-3.2.0.tgz", + "integrity": "sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg==", + "dependencies": { + "@types/mdast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdurl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", + "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==", + "dev": true + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/memoizee": { + "version": "0.4.15", + "resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.15.tgz", + "integrity": "sha512-UBWmJpLZd5STPm7PMUlOw/TSy972M+z8gcyQ5veOnSDRREz/0bmpyTfKt3/51DhEBqCZQn1udM/5flcSPYhkdQ==", + "dev": true, + "dependencies": { + "d": "^1.0.1", + "es5-ext": "^0.10.53", + "es6-weak-map": "^2.0.3", + "event-emitter": "^0.3.5", + "is-promise": "^2.2.2", + "lru-queue": "^0.1.0", + "next-tick": "^1.1.0", + "timers-ext": "^0.1.7" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micromark": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-3.2.0.tgz", + "integrity": "sha512-uD66tJj54JLYq0De10AhWycZWGQNUvDI55xPgk2sQM5kn1JYlhbCMTtEeT27+vAhW2FBQxLlOmS3pmA7/2z4aA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "@types/debug": "^4.0.0", + "debug": "^4.0.0", + "decode-named-character-reference": "^1.0.0", + "micromark-core-commonmark": "^1.0.1", + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-chunked": "^1.0.0", + "micromark-util-combine-extensions": "^1.0.0", + "micromark-util-decode-numeric-character-reference": "^1.0.0", + "micromark-util-encode": "^1.0.0", + "micromark-util-normalize-identifier": "^1.0.0", + "micromark-util-resolve-all": "^1.0.0", + "micromark-util-sanitize-uri": "^1.0.0", + "micromark-util-subtokenize": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.1", + "uvu": "^0.5.0" + } + }, + "node_modules/micromark-core-commonmark": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-1.1.0.tgz", + "integrity": "sha512-BgHO1aRbolh2hcrzL2d1La37V0Aoz73ymF8rAcKnohLy93titmv62E0gP8Hrx9PKcKrqCZ1BbLGbP3bEhoXYlw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "micromark-factory-destination": "^1.0.0", + "micromark-factory-label": "^1.0.0", + "micromark-factory-space": "^1.0.0", + "micromark-factory-title": "^1.0.0", + "micromark-factory-whitespace": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-chunked": "^1.0.0", + "micromark-util-classify-character": "^1.0.0", + "micromark-util-html-tag-name": "^1.0.0", + "micromark-util-normalize-identifier": "^1.0.0", + "micromark-util-resolve-all": "^1.0.0", + "micromark-util-subtokenize": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.1", + "uvu": "^0.5.0" + } + }, + "node_modules/micromark-factory-destination": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-1.1.0.tgz", + "integrity": "sha512-XaNDROBgx9SgSChd69pjiGKbV+nfHGDPVYFs5dOoDd7ZnMAE+Cuu91BCpsY8RT2NP9vo/B8pds2VQNCLiu0zhg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/micromark-factory-label": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-1.1.0.tgz", + "integrity": "sha512-OLtyez4vZo/1NjxGhcpDSbHQ+m0IIGnT8BoPamh+7jVlzLJBH98zzuCoUeMxvM6WsNeh8wx8cKvqLiPHEACn0w==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0" + } + }, + "node_modules/micromark-factory-space": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-1.1.0.tgz", + "integrity": "sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/micromark-factory-title": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-1.1.0.tgz", + "integrity": "sha512-J7n9R3vMmgjDOCY8NPw55jiyaQnH5kBdV2/UXCtZIpnHH3P6nHUKaH7XXEYuWwx/xUJcawa8plLBEjMPU24HzQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/micromark-factory-whitespace": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-1.1.0.tgz", + "integrity": "sha512-v2WlmiymVSp5oMg+1Q0N1Lxmt6pMhIHD457whWM7/GUlEks1hI9xj5w3zbc4uuMKXGisksZk8DzP2UyGbGqNsQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/micromark-util-character": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-1.2.0.tgz", + "integrity": "sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/micromark-util-chunked": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-1.1.0.tgz", + "integrity": "sha512-Ye01HXpkZPNcV6FiyoW2fGZDUw4Yc7vT0E9Sad83+bEDiCJ1uXu0S3mr8WLpsz3HaG3x2q0HM6CTuPdcZcluFQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^1.0.0" + } + }, + "node_modules/micromark-util-classify-character": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-1.1.0.tgz", + "integrity": "sha512-SL0wLxtKSnklKSUplok1WQFoGhUdWYKggKUiqhX+Swala+BtptGCu5iPRc+xvzJ4PXE/hwM3FNXsfEVgoZsWbw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/micromark-util-combine-extensions": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-1.1.0.tgz", + "integrity": "sha512-Q20sp4mfNf9yEqDL50WwuWZHUrCO4fEyeDCnMGmG5Pr0Cz15Uo7KBs6jq+dq0EgX4DPwwrh9m0X+zPV1ypFvUA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-chunked": "^1.0.0", + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/micromark-util-decode-numeric-character-reference": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-1.1.0.tgz", + "integrity": "sha512-m9V0ExGv0jB1OT21mrWcuf4QhP46pH1KkfWy9ZEezqHKAxkj4mPCy3nIH1rkbdMlChLHX531eOrymlwyZIf2iw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^1.0.0" + } + }, + "node_modules/micromark-util-decode-string": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-1.1.0.tgz", + "integrity": "sha512-YphLGCK8gM1tG1bd54azwyrQRjCFcmgj2S2GoJDNnh4vYtnL38JS8M4gpxzOPNyHdNEpheyWXCTnnTDY3N+NVQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-decode-numeric-character-reference": "^1.0.0", + "micromark-util-symbol": "^1.0.0" + } + }, + "node_modules/micromark-util-encode": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-1.1.0.tgz", + "integrity": "sha512-EuEzTWSTAj9PA5GOAs992GzNh2dGQO52UvAbtSOMvXTxv3Criqb6IOzJUBCmEqrrXSblJIJBbFFv6zPxpreiJw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-util-html-tag-name": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.2.0.tgz", + "integrity": "sha512-VTQzcuQgFUD7yYztuQFKXT49KghjtETQ+Wv/zUjGSGBioZnkA4P1XXZPT1FHeJA6RwRXSF47yvJ1tsJdoxwO+Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-util-normalize-identifier": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-1.1.0.tgz", + "integrity": "sha512-N+w5vhqrBihhjdpM8+5Xsxy71QWqGn7HYNUvch71iV2PM7+E3uWGox1Qp90loa1ephtCxG2ftRV/Conitc6P2Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^1.0.0" + } + }, + "node_modules/micromark-util-resolve-all": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-1.1.0.tgz", + "integrity": "sha512-b/G6BTMSg+bX+xVCshPTPyAu2tmA0E4X98NSR7eIbeC6ycCqCeE7wjfDIgzEbkzdEVJXRtOG4FbEm/uGbCRouA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-types": "^1.0.0" + } + }, + "node_modules/micromark-util-sanitize-uri": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.2.0.tgz", + "integrity": "sha512-QO4GXv0XZfWey4pYFndLUKEAktKkG5kZTdUNaTAkzbuJxn2tNBOr+QtxR2XpWaMhbImT2dPzyLrPXLlPhph34A==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^1.0.0", + "micromark-util-encode": "^1.0.0", + "micromark-util-symbol": "^1.0.0" + } + }, + "node_modules/micromark-util-subtokenize": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-1.1.0.tgz", + "integrity": "sha512-kUQHyzRoxvZO2PuLzMt2P/dwVsTiivCK8icYTeR+3WgbuPqfHgPPy7nFKbeqRivBvn/3N3GBiNC+JRTMSxEC7A==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-chunked": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0" + } + }, + "node_modules/micromark-util-symbol": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-1.1.0.tgz", + "integrity": "sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-util-types": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-1.1.0.tgz", + "integrity": "sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromatch": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.6.tgz", + "integrity": "sha512-Y4Ypn3oujJYxJcMacVgcs92wofTHxp9FzfDpQON4msDefoC0lb3ETvQLOdLcbhSwU1bz8HrL/1sygfBIHudrkQ==", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/micromatch/node_modules/picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-collect": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", + "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-fetch": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-2.1.2.tgz", + "integrity": "sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==", + "dependencies": { + "minipass": "^3.1.6", + "minipass-sized": "^1.0.3", + "minizlib": "^2.1.2" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + }, + "optionalDependencies": { + "encoding": "^0.1.13" + } + }, + "node_modules/minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-pipeline": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-sized": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", + "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minisearch": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/minisearch/-/minisearch-7.0.0.tgz", + "integrity": "sha512-0OIJ3hUE+YBJNruDCqbTMFmk/IoB1CpZzuGfl11khFIel66ew9UoLF/+gfq3bdyrneqr3P7BTjFZApUbmk+9Dg==" + }, + "node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mkdirp-classic": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", + "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==" + }, + "node_modules/mocha": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.4.0.tgz", + "integrity": "sha512-eqhGB8JKapEYcC4ytX/xrzKforgEc3j1pGlAXVy3eRwrtAy5/nIfT1SvgGzfN0XZZxeLq0aQWkOUAmqIJiv+bA==", + "dev": true, + "dependencies": { + "ansi-colors": "4.1.1", + "browser-stdout": "1.3.1", + "chokidar": "3.5.3", + "debug": "4.3.4", + "diff": "5.0.0", + "escape-string-regexp": "4.0.0", + "find-up": "5.0.0", + "glob": "8.1.0", + "he": "1.2.0", + "js-yaml": "4.1.0", + "log-symbols": "4.1.0", + "minimatch": "5.0.1", + "ms": "2.1.3", + "serialize-javascript": "6.0.0", + "strip-json-comments": "3.1.1", + "supports-color": "8.1.1", + "workerpool": "6.2.1", + "yargs": "16.2.0", + "yargs-parser": "20.2.4", + "yargs-unparser": "2.0.0" + }, + "bin": { + "_mocha": "bin/_mocha", + "mocha": "bin/mocha.js" + }, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/mocha/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/mocha/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/mocha/node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/mocha/node_modules/minimatch": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", + "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mocha/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/mocha/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/mocha/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/mocha/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/mocha/node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/monaco-editor": { + "version": "0.45.0", + "resolved": "https://registry.npmjs.org/monaco-editor/-/monaco-editor-0.45.0.tgz", + "integrity": "sha512-mjv1G1ZzfEE3k9HZN0dQ2olMdwIfaeAAjFiwNprLfYNRSz7ctv9XuCT7gPtBGrMUeV1/iZzYKj17Khu1hxoHOA==" + }, + "node_modules/monaco-vscode-textmate-theme-converter": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/monaco-vscode-textmate-theme-converter/-/monaco-vscode-textmate-theme-converter-0.1.7.tgz", + "integrity": "sha512-ZMsq1RPWwOD3pvXD0n+9ddnhfzZoiUMwNIWPNUqYqEiQeH2HjyZ9KYOdt/pqe0kkN8WnYWLrxT9C/SrtIsAu2Q==", + "dependencies": { + "commander": "^8.1.0", + "fs-extra": "^7.0.1", + "tslib": "^2.3.0" + }, + "bin": { + "mvttc": "lib/cjs/npx-script.js" + }, + "peerDependencies": { + "tslib": "^2.0.1" + } + }, + "node_modules/monaco-vscode-textmate-theme-converter/node_modules/fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "dependencies": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/monaco-vscode-textmate-theme-converter/node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/monaco-vscode-textmate-theme-converter/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/mri": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", + "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "dev": true + }, + "node_modules/mysql2": { + "version": "3.9.7", + "resolved": "https://registry.npmjs.org/mysql2/-/mysql2-3.9.7.tgz", + "integrity": "sha512-KnJT8vYRcNAZv73uf9zpXqNbvBG7DJrs+1nACsjZP1HMJ1TgXEy8wnNilXAn/5i57JizXKtrUtwDB7HxT9DDpw==", + "dependencies": { + "denque": "^2.1.0", + "generate-function": "^2.3.1", + "iconv-lite": "^0.6.3", + "long": "^5.2.1", + "lru-cache": "^8.0.0", + "named-placeholders": "^1.1.3", + "seq-queue": "^0.0.5", + "sqlstring": "^2.3.2" + }, + "engines": { + "node": ">= 8.0" + } + }, + "node_modules/mysql2/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mysql2/node_modules/lru-cache": { + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-8.0.5.tgz", + "integrity": "sha512-MhWWlVnuab1RG5/zMRRcVGXZLCXrZTgfwMikgzCegsPnG62yDQo5JnqKkrK4jO5iKqDAZGItAqN5CtKBCBWRUA==", + "engines": { + "node": ">=16.14" + } + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/named-placeholders": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/named-placeholders/-/named-placeholders-1.1.3.tgz", + "integrity": "sha512-eLoBxg6wE/rZkJPhU/xRX1WTpkFEwDJEN96oxFrTsqBdbT5ec295Q+CoHrL9IT0DipqKhmGcaZmwOt8OON5x1w==", + "dependencies": { + "lru-cache": "^7.14.1" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/named-placeholders/node_modules/lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "engines": { + "node": ">=12" + } + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/napi-build-utils": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz", + "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==" + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/natural-compare-lite": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", + "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", + "dev": true + }, + "node_modules/ncp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ncp/-/ncp-2.0.0.tgz", + "integrity": "sha512-zIdGUrPRFTUELUvr3Gmc7KZ2Sw/h1PiVM0Af/oHB6zgnV1ikqSfRk+TOufi79aHYCW3NiOXmr1BP5nWbzojLaA==", + "bin": { + "ncp": "bin/ncp" + } + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" + }, + "node_modules/next-tick": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", + "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==", + "dev": true + }, + "node_modules/node-abi": { + "version": "3.62.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.62.0.tgz", + "integrity": "sha512-CPMcGa+y33xuL1E0TcNIu4YyaZCxnnvkVaEXrsosR3FxN+fV8xvb7Mzpb7IgKler10qeMkE6+Dp8qJhpzdq35g==", + "dependencies": { + "semver": "^7.3.5" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/node-addon-api": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-4.3.0.tgz", + "integrity": "sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==", + "dev": true + }, + "node_modules/node-api-version": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/node-api-version/-/node-api-version-0.2.0.tgz", + "integrity": "sha512-fthTTsi8CxaBXMaBAD7ST2uylwvsnYxh2PfaScwpMhos6KlSFajXQPcM4ogNE1q2s3Lbz9GCGqeIHC+C6OZnKg==", + "dependencies": { + "semver": "^7.3.5" + } + }, + "node_modules/node-domexception": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", + "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "github", + "url": "https://paypal.me/jimmywarting" + } + ], + "engines": { + "node": ">=10.5.0" + } + }, + "node_modules/node-fetch": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz", + "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==", + "dependencies": { + "data-uri-to-buffer": "^4.0.0", + "fetch-blob": "^3.1.4", + "formdata-polyfill": "^4.0.10" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/node-fetch" + } + }, + "node_modules/node-gyp": { + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-9.4.1.tgz", + "integrity": "sha512-OQkWKbjQKbGkMf/xqI1jjy3oCTgMKJac58G2+bjZb3fza6gW2YrCSdMQYaoTb70crvE//Gngr4f0AgVHmqHvBQ==", + "dependencies": { + "env-paths": "^2.2.0", + "exponential-backoff": "^3.1.1", + "glob": "^7.1.4", + "graceful-fs": "^4.2.6", + "make-fetch-happen": "^10.0.3", + "nopt": "^6.0.0", + "npmlog": "^6.0.0", + "rimraf": "^3.0.2", + "semver": "^7.3.5", + "tar": "^6.1.2", + "which": "^2.0.2" + }, + "bin": { + "node-gyp": "bin/node-gyp.js" + }, + "engines": { + "node": "^12.13 || ^14.13 || >=16" + } + }, + "node_modules/node-gyp/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/node-gyp/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/node-machine-id": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/node-machine-id/-/node-machine-id-1.1.12.tgz", + "integrity": "sha512-QNABxbrPa3qEIfrE6GOJ7BYIuignnJw7iQ2YPbc3Nla1HzRJjXzZOiikfF8m7eAMfichLt3M4VgLOetqgDmgGQ==" + }, + "node_modules/nopt": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-6.0.0.tgz", + "integrity": "sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==", + "dependencies": { + "abbrev": "^1.0.0" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/npmlog": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", + "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", + "deprecated": "This package is no longer supported.", + "dependencies": { + "are-we-there-yet": "^3.0.0", + "console-control-strings": "^1.1.0", + "gauge": "^4.0.3", + "set-blocking": "^2.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/nwsapi": { + "version": "2.2.10", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.10.tgz", + "integrity": "sha512-QK0sRs7MKv0tKe1+5uZIQk/C8XGza4DAnztJG8iD+TpJIORARrCxczA738awHrZoHeTjSSoHqao2teO0dC/gFQ==" + }, + "node_modules/oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "engines": { + "node": "*" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/object-inspect": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", + "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", + "dev": true, + "dependencies": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/optionator/node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/ora": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "dependencies": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ora/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/ora/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ovsx": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/ovsx/-/ovsx-0.8.4.tgz", + "integrity": "sha512-RMtGSVNM4NWSF9uVWCUqaYiA7ID8Vqm/rSk2W37eYVrDLOI/3do2IRY7rQYkvJqb6sS6LAnALODBkD50tIM1kw==", + "dev": true, + "dependencies": { + "@vscode/vsce": "^2.19.0", + "commander": "^6.1.0", + "follow-redirects": "^1.14.6", + "is-ci": "^2.0.0", + "leven": "^3.1.0", + "semver": "^7.5.2", + "tmp": "^0.2.1" + }, + "bin": { + "ovsx": "lib/ovsx" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/ovsx/node_modules/commander": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", + "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/p-cancelable": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", + "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-map/node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-map/node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "engines": { + "node": ">=6" + } + }, + "node_modules/p-map/node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/pad-left": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/pad-left/-/pad-left-2.1.0.tgz", + "integrity": "sha512-HJxs9K9AztdIQIAIa/OIazRAUW/L6B9hbQDxO4X07roW3eo9XqZc2ur9bn1StH9CnbbI9EgvejHQX7CBpCF1QA==", + "peer": true, + "dependencies": { + "repeat-string": "^1.5.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-semver": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/parse-semver/-/parse-semver-1.1.1.tgz", + "integrity": "sha512-Eg1OuNntBMH0ojvEKSrvDSnwLmvVuUOSdylH/pSCPNMIspLlweJyIWXCE+k/5hm3cj/EBUYwmWkjhBALNP4LXQ==", + "dev": true, + "dependencies": { + "semver": "^5.1.0" + } + }, + "node_modules/parse-semver/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/parse5": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", + "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", + "dependencies": { + "entities": "^4.4.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parse5-htmlparser2-tree-adapter": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz", + "integrity": "sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==", + "dev": true, + "dependencies": { + "domhandler": "^5.0.2", + "parse5": "^7.0.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", + "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/path-scurry/node_modules/minipass": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.1.tgz", + "integrity": "sha512-UZ7eQ+h8ywIRAW1hIEl2AqdwzJucU/Kp59+8kkZeSvafXhZjul247BvIJjEVFVeON6d7lM46XX1HXCduKAS8VA==", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==" + }, + "node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==" + }, + "node_modules/pg": { + "version": "8.11.5", + "resolved": "https://registry.npmjs.org/pg/-/pg-8.11.5.tgz", + "integrity": "sha512-jqgNHSKL5cbDjFlHyYsCXmQDrfIX/3RsNwYqpd4N0Kt8niLuNoRNH+aazv6cOd43gPh9Y4DjQCtb+X0MH0Hvnw==", + "dependencies": { + "pg-connection-string": "^2.6.4", + "pg-pool": "^3.6.2", + "pg-protocol": "^1.6.1", + "pg-types": "^2.1.0", + "pgpass": "1.x" + }, + "engines": { + "node": ">= 8.0.0" + }, + "optionalDependencies": { + "pg-cloudflare": "^1.1.1" + }, + "peerDependencies": { + "pg-native": ">=3.0.1" + }, + "peerDependenciesMeta": { + "pg-native": { + "optional": true + } + } + }, + "node_modules/pg-cloudflare": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pg-cloudflare/-/pg-cloudflare-1.1.1.tgz", + "integrity": "sha512-xWPagP/4B6BgFO+EKz3JONXv3YDgvkbVrGw2mTo3D6tVDQRh1e7cqVGvyR3BE+eQgAvx1XhW/iEASj4/jCWl3Q==", + "optional": true + }, + "node_modules/pg-connection-string": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.6.4.tgz", + "integrity": "sha512-v+Z7W/0EO707aNMaAEfiGnGL9sxxumwLl2fJvCQtMn9Fxsg+lPpPkdcyBSv/KFgpGdYkMfn+EI1Or2EHjpgLCA==" + }, + "node_modules/pg-int8": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz", + "integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/pg-pool": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.6.2.tgz", + "integrity": "sha512-Htjbg8BlwXqSBQ9V8Vjtc+vzf/6fVUuak/3/XXKA9oxZprwW3IMDQTGHP+KDmVL7rtd+R1QjbnCFPuTHm3G4hg==", + "peerDependencies": { + "pg": ">=8.0" + } + }, + "node_modules/pg-protocol": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.6.1.tgz", + "integrity": "sha512-jPIlvgoD63hrEuihvIg+tJhoGjUsLPn6poJY9N5CnlPd91c2T18T/9zBtLxZSb1EhYxBRoZJtzScCaWlYLtktg==" + }, + "node_modules/pg-types": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz", + "integrity": "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==", + "dependencies": { + "pg-int8": "1.0.1", + "postgres-array": "~2.0.0", + "postgres-bytea": "~1.0.0", + "postgres-date": "~1.0.4", + "postgres-interval": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pgpass": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/pgpass/-/pgpass-1.0.5.tgz", + "integrity": "sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==", + "dependencies": { + "split2": "^4.1.0" + } + }, + "node_modules/picocolors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pid-port": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/pid-port/-/pid-port-0.2.0.tgz", + "integrity": "sha512-xVU9H1FCRSeGrD9Oim5bLg2U7B2BgW0qzK2oahpV5BIf9hwzqQaWyOkOVC0Kgbsc90A9x6525beawx+QK+JduQ==", + "dependencies": { + "execa": "^5.1.1" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/postcss": { + "version": "8.4.38", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", + "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.0", + "source-map-js": "^1.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-import": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-js": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", + "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", + "dependencies": { + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.4.21" + } + }, + "node_modules/postcss-load-config": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", + "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "lilconfig": "^3.0.0", + "yaml": "^2.3.4" + }, + "engines": { + "node": ">= 14" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-load-config/node_modules/lilconfig": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.1.tgz", + "integrity": "sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/postcss-nested": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz", + "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==", + "dependencies": { + "postcss-selector-parser": "^6.0.11" + }, + "engines": { + "node": ">=12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.16", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.16.tgz", + "integrity": "sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" + }, + "node_modules/postgres-array": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz", + "integrity": "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/postgres-bytea": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz", + "integrity": "sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postgres-date": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz", + "integrity": "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postgres-interval": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz", + "integrity": "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==", + "dependencies": { + "xtend": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/posthog-node": { + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/posthog-node/-/posthog-node-3.6.3.tgz", + "integrity": "sha512-JB+ei0LkwE+rKHyW5z79Nd1jUaGxU6TvkfjFqY9vQaHxU5aU8dRl0UUaEmZdZbHwjp3WmXCBQQRNyimwbNQfCw==", + "dependencies": { + "axios": "^1.6.2", + "rusha": "^0.8.14" + }, + "engines": { + "node": ">=15.0.0" + } + }, + "node_modules/prebuild-install": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.2.tgz", + "integrity": "sha512-UnNke3IQb6sgarcZIDU3gbMeTp/9SSU1DAIkil7PrqG1vZlBtY5msYccSKSHDqa3hNg436IXK+SNImReuA1wEQ==", + "dependencies": { + "detect-libc": "^2.0.0", + "expand-template": "^2.0.3", + "github-from-package": "0.0.0", + "minimist": "^1.2.3", + "mkdirp-classic": "^0.5.3", + "napi-build-utils": "^1.0.1", + "node-abi": "^3.3.0", + "pump": "^3.0.0", + "rc": "^1.2.7", + "simple-get": "^4.0.0", + "tar-fs": "^2.0.0", + "tunnel-agent": "^0.6.0" + }, + "bin": { + "prebuild-install": "bin.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "dev": true, + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/process-exists": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/process-exists/-/process-exists-4.1.0.tgz", + "integrity": "sha512-BBJoiorUKoP2AuM5q/yKwIfT1YWRHsaxjW+Ayu9erLhqKOfnXzzVVML0XTYoQZuI1YvcWKmc1dh06DEy4+KzfA==", + "dependencies": { + "ps-list": "^6.3.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/process-exists/node_modules/ps-list": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/ps-list/-/ps-list-6.3.0.tgz", + "integrity": "sha512-qau0czUSB0fzSlBOQt0bo+I2v6R+xiQdj78e1BR/Qjfl5OHWJ/urXi8+ilw1eHe+5hSeDI1wrwVTgDp2wst4oA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "node_modules/promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==" + }, + "node_modules/promise-retry": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", + "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", + "dependencies": { + "err-code": "^2.0.2", + "retry": "^0.12.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/prop-types/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, + "node_modules/property-information": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.5.0.tgz", + "integrity": "sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, + "node_modules/ps-list": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/ps-list/-/ps-list-7.2.0.tgz", + "integrity": "sha512-v4Bl6I3f2kJfr5o80ShABNHAokIgY+wFDTQfE+X3zWYgSGQOCBeYptLZUpoOALBqO5EawmDN/tjTldJesd0ujQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/psl": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", + "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==" + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, + "node_modules/rc/node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.2" + }, + "peerDependencies": { + "react": "^18.3.1" + } + }, + "node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" + }, + "node_modules/react-markdown": { + "version": "8.0.7", + "resolved": "https://registry.npmjs.org/react-markdown/-/react-markdown-8.0.7.tgz", + "integrity": "sha512-bvWbzG4MtOU62XqBx3Xx+zB2raaFFsq4mYiAzfjXJMEz2sixgeAfraA3tvzULF02ZdOMUOKTBFFaZJDDrq+BJQ==", + "dependencies": { + "@types/hast": "^2.0.0", + "@types/prop-types": "^15.0.0", + "@types/unist": "^2.0.0", + "comma-separated-tokens": "^2.0.0", + "hast-util-whitespace": "^2.0.0", + "prop-types": "^15.0.0", + "property-information": "^6.0.0", + "react-is": "^18.0.0", + "remark-parse": "^10.0.0", + "remark-rehype": "^10.0.0", + "space-separated-tokens": "^2.0.0", + "style-to-object": "^0.4.0", + "unified": "^10.0.0", + "unist-util-visit": "^4.0.0", + "vfile": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + }, + "peerDependencies": { + "@types/react": ">=16", + "react": ">=16" + } + }, + "node_modules/react-markdown/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==" + }, + "node_modules/react-redux": { + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-8.1.3.tgz", + "integrity": "sha512-n0ZrutD7DaX/j9VscF+uTALI3oUPa/pO4Z3soOBIjuRn/FzVu6aehhysxZCLi6y7duMf52WNZGMl7CtuK5EnRw==", + "dependencies": { + "@babel/runtime": "^7.12.1", + "@types/hoist-non-react-statics": "^3.3.1", + "@types/use-sync-external-store": "^0.0.3", + "hoist-non-react-statics": "^3.3.2", + "react-is": "^18.0.0", + "use-sync-external-store": "^1.0.0" + }, + "peerDependencies": { + "@types/react": "^16.8 || ^17.0 || ^18.0", + "@types/react-dom": "^16.8 || ^17.0 || ^18.0", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0", + "react-native": ">=0.59", + "redux": "^4 || ^5.0.0-beta.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + }, + "react-dom": { + "optional": true + }, + "react-native": { + "optional": true + }, + "redux": { + "optional": true + } + } + }, + "node_modules/react-redux/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==" + }, + "node_modules/read": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz", + "integrity": "sha512-rSOKNYUmaxy0om1BNjMN4ezNT6VKK+2xF4GBhc81mkH7L60i6dp8qPYrkndNLT3QPphoII3maL9PVC9XmhHwVQ==", + "dev": true, + "dependencies": { + "mute-stream": "~0.0.4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/read-binary-file-arch": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/read-binary-file-arch/-/read-binary-file-arch-1.0.6.tgz", + "integrity": "sha512-BNg9EN3DD3GsDXX7Aa8O4p92sryjkmzYYgmgTAc6CA4uGLEDzFfxOxugu21akOxpcXHiEgsYkC6nPsQvLLLmEg==", + "dependencies": { + "debug": "^4.3.4" + }, + "bin": { + "read-binary-file-arch": "cli.js" + } + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/read-last-lines": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/read-last-lines/-/read-last-lines-1.8.0.tgz", + "integrity": "sha512-oPL0cnZkhsO2xF7DBrdzVhXSNajPP5TzzCim/2IAjeGb17ArLLTRriI/ceV6Rook3L27mvbrOvLlf9xYYnaftQ==", + "dependencies": { + "mz": "^2.7.0" + } + }, + "node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/readable-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/redux": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/redux/-/redux-4.2.1.tgz", + "integrity": "sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w==", + "dependencies": { + "@babel/runtime": "^7.9.2" + } + }, + "node_modules/redux-thunk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/redux-thunk/-/redux-thunk-2.4.2.tgz", + "integrity": "sha512-+P3TjtnP0k/FEjcBL5FZpoovtvrTNT/UXd4/sluaSyrURlSlhLSzEdfsTBW7WsKB6yPvgd7q/iZPICFjW4o57Q==", + "peerDependencies": { + "redux": "^4" + } + }, + "node_modules/reflect-metadata": { + "version": "0.1.14", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.14.tgz", + "integrity": "sha512-ZhYeb6nRaXCfhnndflDK8qI6ZQ/YcWZCISRAWICW9XYqMUwjZM9Z0DveWX/ABN01oxSHwVxKQmxeYZSsm0jh5A==", + "dev": true, + "peer": true + }, + "node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" + }, + "node_modules/remark-parse": { + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-10.0.2.tgz", + "integrity": "sha512-3ydxgHa/ZQzG8LvC7jTXccARYDcRld3VfcgIIFs7bI6vbRSxJJmzgLEIIoYKyrfhaY+ujuWaf/PJiMZXoiCXgw==", + "dependencies": { + "@types/mdast": "^3.0.0", + "mdast-util-from-markdown": "^1.0.0", + "unified": "^10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-rehype": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-10.1.0.tgz", + "integrity": "sha512-EFmR5zppdBp0WQeDVZ/b66CWJipB2q2VLNFMabzDSGR66Z2fQii83G5gTBbgGEnEEA0QRussvrFHxk1HWGJskw==", + "dependencies": { + "@types/hast": "^2.0.0", + "@types/mdast": "^3.0.0", + "mdast-util-to-hast": "^12.1.0", + "unified": "^10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", + "peer": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", + "dependencies": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/request/node_modules/form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/request/node_modules/qs": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", + "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/request/node_modules/tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "dependencies": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/request/node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==" + }, + "node_modules/reselect": { + "version": "4.1.8", + "resolved": "https://registry.npmjs.org/reselect/-/reselect-4.1.8.tgz", + "integrity": "sha512-ab9EmR80F/zQTMNeneUr4cv+jSwPJgIlvEmVwLerwrWVbpLlBuls9XHzIeTFy4cegU2NHBp3va0LKOzU5qFEYQ==" + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-alpn": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", + "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==" + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/responselike": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz", + "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==", + "dependencies": { + "lowercase-keys": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", + "engines": { + "node": ">= 4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.7.tgz", + "integrity": "sha512-nV6YcJo5wbLW77m+8KjH8aB/7/rxQy9SZ0HY5shnwULfS+9nmTtVXAJET5NdZmCzA4fPI/Hm1wo/Po/4mopOdg==", + "dev": true, + "dependencies": { + "glob": "^10.3.7" + }, + "bin": { + "rimraf": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/rimraf/node_modules/glob": { + "version": "10.3.15", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.15.tgz", + "integrity": "sha512-0c6RlJt1TICLyvJYIApxb8GsXoai0KUP7AxKKAtsYXdgJR1mGEUa7DgwShbdk1nly0PYoZj01xd4hzbq3fsjpw==", + "dev": true, + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.6", + "minimatch": "^9.0.1", + "minipass": "^7.0.4", + "path-scurry": "^1.11.0" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/minimatch": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/minipass": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.1.tgz", + "integrity": "sha512-UZ7eQ+h8ywIRAW1hIEl2AqdwzJucU/Kp59+8kkZeSvafXhZjul247BvIJjEVFVeON6d7lM46XX1HXCduKAS8VA==", + "dev": true, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/rollup": { + "version": "3.29.4", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz", + "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==", + "dev": true, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=14.18.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/rrweb-cssom": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.6.0.tgz", + "integrity": "sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==" + }, + "node_modules/run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/rusha": { + "version": "0.8.14", + "resolved": "https://registry.npmjs.org/rusha/-/rusha-0.8.14.tgz", + "integrity": "sha512-cLgakCUf6PedEu15t8kbsjnwIFFR2D4RfL+W3iWFJ4iac7z4B0ZI8fxy4R3J956kAI68HclCFGL8MPoUVC3qVA==" + }, + "node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "dev": true, + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/sade": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", + "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", + "dependencies": { + "mri": "^1.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/sax": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz", + "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==", + "dev": true + }, + "node_modules/saxes": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", + "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=v12.22.7" + } + }, + "node_modules/scheduler": { + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/seq-queue": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/seq-queue/-/seq-queue-0.0.5.tgz", + "integrity": "sha512-hr3Wtp/GZIc/6DAGPDcV4/9WoZhjrkXsi5B/07QgX8tsdc6ilr7BFM6PM6rbdAX1kFSDYeZGLipIZZKyQP0O5Q==" + }, + "node_modules/serialize-javascript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==" + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==" + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + }, + "node_modules/simple-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", + "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/simple-get": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz", + "integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "decompress-response": "^6.0.0", + "once": "^1.3.1", + "simple-concat": "^1.0.0" + } + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socket.io-client": { + "version": "4.7.5", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.7.5.tgz", + "integrity": "sha512-sJ/tqHOCe7Z50JCBCXrsY3I2k03iOiUe+tj1OmKeD2lXPiGH/RUCdTZFoqVyN7l1MnpIzPrGtLcijffmeouNlQ==", + "dependencies": { + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.2", + "engine.io-client": "~6.5.2", + "socket.io-parser": "~4.2.4" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/socket.io-parser": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.4.tgz", + "integrity": "sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==", + "dependencies": { + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/socks": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.3.tgz", + "integrity": "sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==", + "dependencies": { + "ip-address": "^9.0.5", + "smart-buffer": "^4.2.0" + }, + "engines": { + "node": ">= 10.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks-proxy-agent": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz", + "integrity": "sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==", + "dependencies": { + "agent-base": "^6.0.2", + "debug": "^4.3.3", + "socks": "^2.6.2" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/socks-proxy-agent/node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", + "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/space-separated-tokens": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", + "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/spawn-command": { + "version": "0.0.2-1", + "resolved": "https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2-1.tgz", + "integrity": "sha512-n98l9E2RMSJ9ON1AKisHzz7V42VDiBQGY6PB1BwRglz99wpVsSuGzQ+jOi6lFXBGVTCrRpltvjm+/XA+tpeJrg==", + "dev": true + }, + "node_modules/split2": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", + "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", + "engines": { + "node": ">= 10.x" + } + }, + "node_modules/sprintf-js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==" + }, + "node_modules/sqlite3": { + "version": "5.1.7", + "resolved": "https://registry.npmjs.org/sqlite3/-/sqlite3-5.1.7.tgz", + "integrity": "sha512-GGIyOiFaG+TUra3JIfkI/zGP8yZYLPQ0pl1bH+ODjiX57sPhrLU5sQJn1y9bDKZUFYkX1crlrPfSYt0BKKdkog==", + "hasInstallScript": true, + "dependencies": { + "bindings": "^1.5.0", + "node-addon-api": "^7.0.0", + "prebuild-install": "^7.1.1", + "tar": "^6.1.11" + }, + "optionalDependencies": { + "node-gyp": "8.x" + }, + "peerDependencies": { + "node-gyp": "8.x" + }, + "peerDependenciesMeta": { + "node-gyp": { + "optional": true + } + } + }, + "node_modules/sqlite3/node_modules/@npmcli/fs": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz", + "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==", + "optional": true, + "dependencies": { + "@gar/promisify": "^1.0.1", + "semver": "^7.3.5" + } + }, + "node_modules/sqlite3/node_modules/@npmcli/move-file": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", + "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", + "deprecated": "This functionality has been moved to @npmcli/fs", + "optional": true, + "dependencies": { + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/sqlite3/node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "optional": true, + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/sqlite3/node_modules/cacache": { + "version": "15.3.0", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", + "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", + "optional": true, + "dependencies": { + "@npmcli/fs": "^1.0.0", + "@npmcli/move-file": "^1.0.1", + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "glob": "^7.1.4", + "infer-owner": "^1.0.4", + "lru-cache": "^6.0.0", + "minipass": "^3.1.1", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "mkdirp": "^1.0.3", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^8.0.1", + "tar": "^6.0.2", + "unique-filename": "^1.1.1" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/sqlite3/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "optional": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/sqlite3/node_modules/http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "optional": true, + "dependencies": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/sqlite3/node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "optional": true, + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/sqlite3/node_modules/make-fetch-happen": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", + "integrity": "sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==", + "optional": true, + "dependencies": { + "agentkeepalive": "^4.1.3", + "cacache": "^15.2.0", + "http-cache-semantics": "^4.1.0", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-lambda": "^1.0.1", + "lru-cache": "^6.0.0", + "minipass": "^3.1.3", + "minipass-collect": "^1.0.2", + "minipass-fetch": "^1.3.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.2", + "promise-retry": "^2.0.1", + "socks-proxy-agent": "^6.0.0", + "ssri": "^8.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/sqlite3/node_modules/minipass-fetch": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz", + "integrity": "sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==", + "optional": true, + "dependencies": { + "minipass": "^3.1.0", + "minipass-sized": "^1.0.3", + "minizlib": "^2.0.0" + }, + "engines": { + "node": ">=8" + }, + "optionalDependencies": { + "encoding": "^0.1.12" + } + }, + "node_modules/sqlite3/node_modules/node-addon-api": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.0.tgz", + "integrity": "sha512-mNcltoe1R8o7STTegSOHdnJNN7s5EUvhoS7ShnTHDyOSd+8H+UdWODq6qSv67PjC8Zc5JRT8+oLAMCr0SIXw7g==", + "engines": { + "node": "^16 || ^18 || >= 20" + } + }, + "node_modules/sqlite3/node_modules/node-gyp": { + "version": "8.4.1", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-8.4.1.tgz", + "integrity": "sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==", + "optional": true, + "dependencies": { + "env-paths": "^2.2.0", + "glob": "^7.1.4", + "graceful-fs": "^4.2.6", + "make-fetch-happen": "^9.1.0", + "nopt": "^5.0.0", + "npmlog": "^6.0.0", + "rimraf": "^3.0.2", + "semver": "^7.3.5", + "tar": "^6.1.2", + "which": "^2.0.2" + }, + "bin": { + "node-gyp": "bin/node-gyp.js" + }, + "engines": { + "node": ">= 10.12.0" + } + }, + "node_modules/sqlite3/node_modules/nopt": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", + "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", + "optional": true, + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/sqlite3/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "optional": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/sqlite3/node_modules/socks-proxy-agent": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz", + "integrity": "sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==", + "optional": true, + "dependencies": { + "agent-base": "^6.0.2", + "debug": "^4.3.3", + "socks": "^2.6.2" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/sqlite3/node_modules/ssri": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", + "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", + "optional": true, + "dependencies": { + "minipass": "^3.1.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/sqlite3/node_modules/unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "optional": true, + "dependencies": { + "unique-slug": "^2.0.0" + } + }, + "node_modules/sqlite3/node_modules/unique-slug": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "optional": true, + "dependencies": { + "imurmurhash": "^0.1.4" + } + }, + "node_modules/sqlstring": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.3.tgz", + "integrity": "sha512-qC9iz2FlN7DQl3+wjwn3802RTyjCx7sDvfQEXchwa6CWOx07/WVfh91gBmQ9fahw8snwGEWU3xGzOt4tFyHLxg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/sshpk": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.18.0.tgz", + "integrity": "sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==", + "dependencies": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + }, + "bin": { + "sshpk-conv": "bin/sshpk-conv", + "sshpk-sign": "bin/sshpk-sign", + "sshpk-verify": "bin/sshpk-verify" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sshpk/node_modules/jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==" + }, + "node_modules/ssri": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz", + "integrity": "sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==", + "dependencies": { + "minipass": "^3.1.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/stoppable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/stoppable/-/stoppable-1.1.0.tgz", + "integrity": "sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw==", + "dev": true, + "engines": { + "node": ">=4", + "npm": ">=6" + } + }, + "node_modules/stream-read-all": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/stream-read-all/-/stream-read-all-3.0.1.tgz", + "integrity": "sha512-EWZT9XOceBPlVJRrYcykW8jyRSZYbkb/0ZK36uLEmoWVO5gxBOnntNTseNzfREsqxqdfEGQrD8SXQ3QWbBmq8A==", + "peer": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/string-width-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/string-width/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/style-to-object": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-0.4.4.tgz", + "integrity": "sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==", + "dependencies": { + "inline-style-parser": "0.1.1" + } + }, + "node_modules/sucrase": { + "version": "3.35.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", + "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "^10.3.10", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/sucrase/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/sucrase/node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/sucrase/node_modules/glob": { + "version": "10.3.15", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.15.tgz", + "integrity": "sha512-0c6RlJt1TICLyvJYIApxb8GsXoai0KUP7AxKKAtsYXdgJR1mGEUa7DgwShbdk1nly0PYoZj01xd4hzbq3fsjpw==", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.6", + "minimatch": "^9.0.1", + "minipass": "^7.0.4", + "path-scurry": "^1.11.0" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/sucrase/node_modules/minimatch": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", + "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/sucrase/node_modules/minipass": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.1.tgz", + "integrity": "sha512-UZ7eQ+h8ywIRAW1hIEl2AqdwzJucU/Kp59+8kkZeSvafXhZjul247BvIJjEVFVeON6d7lM46XX1HXCduKAS8VA==", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==" + }, + "node_modules/systeminformation": { + "version": "5.22.11", + "resolved": "https://registry.npmjs.org/systeminformation/-/systeminformation-5.22.11.tgz", + "integrity": "sha512-aLws5yi4KCHTb0BVvbodQY5bY8eW4asMRDTxTW46hqw9lGjACX6TlLdJrkdoHYRB0qs+MekqEq1zG7WDnWE8Ug==", + "os": [ + "darwin", + "linux", + "win32", + "freebsd", + "openbsd", + "netbsd", + "sunos", + "android" + ], + "bin": { + "systeminformation": "lib/cli.js" + }, + "engines": { + "node": ">=8.0.0" + }, + "funding": { + "type": "Buy me a coffee", + "url": "https://www.buymeacoffee.com/systeminfo" + } + }, + "node_modules/table-layout": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-3.0.2.tgz", + "integrity": "sha512-rpyNZYRw+/C+dYkcQ3Pr+rLxW4CfHpXjPDnG7lYhdRoUcZTUt+KEsX+94RGp/aVp/MQU35JCITv2T/beY4m+hw==", + "peer": true, + "dependencies": { + "@75lb/deep-merge": "^1.1.1", + "array-back": "^6.2.2", + "command-line-args": "^5.2.1", + "command-line-usage": "^7.0.0", + "stream-read-all": "^3.0.1", + "typical": "^7.1.1", + "wordwrapjs": "^5.1.0" + }, + "bin": { + "table-layout": "bin/cli.js" + }, + "engines": { + "node": ">=12.17" + } + }, + "node_modules/table-layout/node_modules/array-back": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/array-back/-/array-back-6.2.2.tgz", + "integrity": "sha512-gUAZ7HPyb4SJczXAMUXMGAvI976JoK3qEx9v1FTmeYuJj0IBiaKttG1ydtGKdkfqWkIkouke7nG8ufGy77+Cvw==", + "peer": true, + "engines": { + "node": ">=12.17" + } + }, + "node_modules/table-layout/node_modules/typical": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/typical/-/typical-7.1.1.tgz", + "integrity": "sha512-T+tKVNs6Wu7IWiAce5BgMd7OZfNYUndHwc5MknN+UHOudi7sGZzuHdCadllRuqJ3fPtgFtIH9+lt9qRv6lmpfA==", + "peer": true, + "engines": { + "node": ">=12.17" + } + }, + "node_modules/tailwindcss": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.3.tgz", + "integrity": "sha512-U7sxQk/n397Bmx4JHbJx/iSOOv5G+II3f1kpLpY2QeUv5DcPdcTsYLlusZfq1NthHS1c1cZoyFmmkex1rzke0A==", + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.5.3", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.3.0", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.21.0", + "lilconfig": "^2.1.0", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.4.23", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.1", + "postcss-nested": "^6.0.1", + "postcss-selector-parser": "^6.0.11", + "resolve": "^1.22.2", + "sucrase": "^3.32.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tar": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", + "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^5.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/tar-fs": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", + "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", + "dependencies": { + "chownr": "^1.1.1", + "mkdirp-classic": "^0.5.2", + "pump": "^3.0.0", + "tar-stream": "^2.1.4" + } + }, + "node_modules/tar-fs/node_modules/chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" + }, + "node_modules/tar-stream": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "dependencies": { + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tar-stream/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/tar/node_modules/minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/taskkill": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/taskkill/-/taskkill-4.0.0.tgz", + "integrity": "sha512-h+BGQ8ExIUZ81h4iHRvatZY5eeBBl2WZk31MmMdFG9LBTc5eCH5u/bzZ7phaPH3bsiB7WhM7YTkOyB2dyFQfXg==", + "dependencies": { + "arrify": "^3.0.0", + "execa": "^5.1.1" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "dev": true + }, + "node_modules/timers-ext": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.7.tgz", + "integrity": "sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ==", + "dev": true, + "dependencies": { + "es5-ext": "~0.10.46", + "next-tick": "1" + } + }, + "node_modules/tmp": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz", + "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==", + "dev": true, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/tough-cookie": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.4.tgz", + "integrity": "sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==", + "dependencies": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.2.0", + "url-parse": "^1.5.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tough-cookie/node_modules/universalify": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/tr46": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-5.0.0.tgz", + "integrity": "sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g==", + "dependencies": { + "punycode": "^2.3.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", + "dev": true, + "bin": { + "tree-kill": "cli.js" + } + }, + "node_modules/trim-lines": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", + "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/trough": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/trough/-/trough-2.2.0.tgz", + "integrity": "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==" + }, + "node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + }, + "node_modules/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, + "node_modules/tsutils/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/tunnel": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", + "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==", + "dev": true, + "engines": { + "node": ">=0.6.11 <=0.7.0 || >=0.7.3" + } + }, + "node_modules/tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==" + }, + "node_modules/type": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz", + "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==", + "dev": true + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typed-rest-client": { + "version": "1.8.11", + "resolved": "https://registry.npmjs.org/typed-rest-client/-/typed-rest-client-1.8.11.tgz", + "integrity": "sha512-5UvfMpd1oelmUPRbbaVnq+rHP7ng2cE4qoQkQeAqxRL6PklkxsM0g32/HL0yfvruK6ojQ5x8EE+HF4YV6DtuCA==", + "dev": true, + "dependencies": { + "qs": "^6.9.1", + "tunnel": "0.0.6", + "underscore": "^1.12.1" + } + }, + "node_modules/typescript": { + "version": "5.4.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", + "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/typical": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz", + "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/uc.micro": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", + "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==", + "dev": true + }, + "node_modules/uglify-js": { + "version": "3.17.4", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", + "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==", + "optional": true, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/uid": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/uid/-/uid-2.0.2.tgz", + "integrity": "sha512-u3xV3X7uzvi5b1MncmZo3i2Aw222Zk1keqLA1YkHldREkAhAqi65wuPfe7lHx8H/Wzy+8CE7S7uS3jekIM5s8g==", + "dev": true, + "dependencies": { + "@lukeed/csprng": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/underscore": { + "version": "1.13.6", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.6.tgz", + "integrity": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==", + "dev": true + }, + "node_modules/undici": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-6.18.0.tgz", + "integrity": "sha512-nT8jjv/fE9Et1ilR6QoW8ingRTY2Pp4l2RUrdzV5Yz35RJDrtPc1DXvuNqcpsJSGIRHFdt3YKKktTzJA6r0fTA==", + "engines": { + "node": ">=18.17" + } + }, + "node_modules/unified": { + "version": "10.1.2", + "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.2.tgz", + "integrity": "sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==", + "dependencies": { + "@types/unist": "^2.0.0", + "bail": "^2.0.0", + "extend": "^3.0.0", + "is-buffer": "^2.0.0", + "is-plain-obj": "^4.0.0", + "trough": "^2.0.0", + "vfile": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unified/node_modules/is-plain-obj": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", + "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/unique-filename": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-2.0.1.tgz", + "integrity": "sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==", + "dependencies": { + "unique-slug": "^3.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/unique-slug": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-3.0.0.tgz", + "integrity": "sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==", + "dependencies": { + "imurmurhash": "^0.1.4" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/unist-util-generated": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-2.0.1.tgz", + "integrity": "sha512-qF72kLmPxAw0oN2fwpWIqbXAVyEqUzDHMsbtPvOudIlUzXYFIeQIuxXQCRCFh22B7cixvU0MG7m3MW8FTq/S+A==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-is": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.2.1.tgz", + "integrity": "sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==", + "dependencies": { + "@types/unist": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-position": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.4.tgz", + "integrity": "sha512-kUBE91efOWfIVBo8xzh/uZQ7p9ffYRtUbMRZBNFYwf0RK8koUMx6dGUfwylLOKmaT2cs4wSW96QoYUSXAyEtpg==", + "dependencies": { + "@types/unist": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-stringify-position": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.3.tgz", + "integrity": "sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==", + "dependencies": { + "@types/unist": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.2.tgz", + "integrity": "sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0", + "unist-util-visit-parents": "^5.1.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit-parents": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz", + "integrity": "sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/url-join": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz", + "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==", + "dev": true + }, + "node_modules/url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "node_modules/use-sync-external-store": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.2.tgz", + "integrity": "sha512-PElTlVMwpblvbNqQ82d2n6RjStvdSoNe9FG28kNfz3WiXilJm4DdNkEzRhCZuIDwY8U08WVihhGR5iRqAwfDiw==", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/uuidv4": { + "version": "6.2.13", + "resolved": "https://registry.npmjs.org/uuidv4/-/uuidv4-6.2.13.tgz", + "integrity": "sha512-AXyzMjazYB3ovL3q051VLH06Ixj//Knx7QnUSi1T//Ie3io6CpsPu9nVMOx5MoLWh6xV0B9J0hIaxungxXUbPQ==", + "dependencies": { + "@types/uuid": "8.3.4", + "uuid": "8.3.2" + } + }, + "node_modules/uuidv4/node_modules/@types/uuid": { + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.4.tgz", + "integrity": "sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==" + }, + "node_modules/uuidv4/node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/uvu": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/uvu/-/uvu-0.5.6.tgz", + "integrity": "sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==", + "dependencies": { + "dequal": "^2.0.0", + "diff": "^5.0.0", + "kleur": "^4.0.3", + "sade": "^1.7.3" + }, + "bin": { + "uvu": "bin.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/vectordb": { + "version": "0.4.20", + "resolved": "https://registry.npmjs.org/vectordb/-/vectordb-0.4.20.tgz", + "integrity": "sha512-A8X5uvNMl7btbKBshaOx0A6R6Q2eQqOE5Ifwu6r1fZALOS+V0rnoQmUKa1K1v31Vcr3S5GvQsFIl+v6yWataqA==", + "cpu": [ + "x64", + "arm64" + ], + "os": [ + "darwin", + "linux", + "win32" + ], + "dependencies": { + "@neon-rs/load": "^0.0.74", + "axios": "^1.4.0" + }, + "optionalDependencies": { + "@lancedb/vectordb-darwin-arm64": "0.4.20", + "@lancedb/vectordb-darwin-x64": "0.4.20", + "@lancedb/vectordb-linux-arm64-gnu": "0.4.20", + "@lancedb/vectordb-linux-x64-gnu": "0.4.20", + "@lancedb/vectordb-win32-x64-msvc": "0.4.20" + }, + "peerDependencies": { + "@apache-arrow/ts": "^14.0.2", + "apache-arrow": "^14.0.2" + } + }, + "node_modules/verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "node_modules/verror/node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==" + }, + "node_modules/vfile": { + "version": "5.3.7", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.3.7.tgz", + "integrity": "sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==", + "dependencies": { + "@types/unist": "^2.0.0", + "is-buffer": "^2.0.0", + "unist-util-stringify-position": "^3.0.0", + "vfile-message": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-message": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.1.4.tgz", + "integrity": "sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-stringify-position": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vite": { + "version": "4.5.3", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.3.tgz", + "integrity": "sha512-kQL23kMeX92v3ph7IauVkXkikdDRsYMGTVl5KY2E9OY4ONLvkHf04MDTbnfo6NKxZiDLWzVpP5oTa8hQD8U3dg==", + "dev": true, + "dependencies": { + "esbuild": "^0.18.10", + "postcss": "^8.4.27", + "rollup": "^3.27.1" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + }, + "peerDependencies": { + "@types/node": ">= 14", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vite/node_modules/@esbuild/android-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz", + "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/android-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz", + "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/android-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz", + "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/darwin-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz", + "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/darwin-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz", + "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/freebsd-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz", + "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/freebsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz", + "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz", + "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz", + "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz", + "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-loong64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz", + "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-mips64el": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz", + "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-ppc64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz", + "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-riscv64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz", + "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-s390x": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz", + "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz", + "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/netbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz", + "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/openbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz", + "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/sunos-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz", + "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz", + "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz", + "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz", + "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/esbuild": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz", + "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.18.20", + "@esbuild/android-arm64": "0.18.20", + "@esbuild/android-x64": "0.18.20", + "@esbuild/darwin-arm64": "0.18.20", + "@esbuild/darwin-x64": "0.18.20", + "@esbuild/freebsd-arm64": "0.18.20", + "@esbuild/freebsd-x64": "0.18.20", + "@esbuild/linux-arm": "0.18.20", + "@esbuild/linux-arm64": "0.18.20", + "@esbuild/linux-ia32": "0.18.20", + "@esbuild/linux-loong64": "0.18.20", + "@esbuild/linux-mips64el": "0.18.20", + "@esbuild/linux-ppc64": "0.18.20", + "@esbuild/linux-riscv64": "0.18.20", + "@esbuild/linux-s390x": "0.18.20", + "@esbuild/linux-x64": "0.18.20", + "@esbuild/netbsd-x64": "0.18.20", + "@esbuild/openbsd-x64": "0.18.20", + "@esbuild/sunos-x64": "0.18.20", + "@esbuild/win32-arm64": "0.18.20", + "@esbuild/win32-ia32": "0.18.20", + "@esbuild/win32-x64": "0.18.20" + } + }, + "node_modules/vsce": { + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/vsce/-/vsce-2.15.0.tgz", + "integrity": "sha512-P8E9LAZvBCQnoGoizw65JfGvyMqNGlHdlUXD1VAuxtvYAaHBKLBdKPnpy60XKVDAkQCfmMu53g+gq9FM+ydepw==", + "deprecated": "vsce has been renamed to @vscode/vsce. Install using @vscode/vsce instead.", + "dev": true, + "dependencies": { + "azure-devops-node-api": "^11.0.1", + "chalk": "^2.4.2", + "cheerio": "^1.0.0-rc.9", + "commander": "^6.1.0", + "glob": "^7.0.6", + "hosted-git-info": "^4.0.2", + "keytar": "^7.7.0", + "leven": "^3.1.0", + "markdown-it": "^12.3.2", + "mime": "^1.3.4", + "minimatch": "^3.0.3", + "parse-semver": "^1.1.1", + "read": "^1.0.7", + "semver": "^5.1.0", + "tmp": "^0.2.1", + "typed-rest-client": "^1.8.4", + "url-join": "^4.0.1", + "xml2js": "^0.4.23", + "yauzl": "^2.3.1", + "yazl": "^2.2.2" + }, + "bin": { + "vsce": "vsce" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/vsce/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/vsce/node_modules/azure-devops-node-api": { + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/azure-devops-node-api/-/azure-devops-node-api-11.2.0.tgz", + "integrity": "sha512-XdiGPhrpaT5J8wdERRKs5g8E0Zy1pvOYTli7z9E8nmOn3YGp4FhtjhrOyFmX/8veWCwdI69mCHKJw6l+4J/bHA==", + "dev": true, + "dependencies": { + "tunnel": "0.0.6", + "typed-rest-client": "^1.8.4" + } + }, + "node_modules/vsce/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/vsce/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/vsce/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/vsce/node_modules/commander": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", + "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/vsce/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/vsce/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/vsce/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/vsce/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/vsce/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/vsce/node_modules/xml2js": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", + "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", + "dev": true, + "dependencies": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/vscode-jsonrpc": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.1.0.tgz", + "integrity": "sha512-6TDy/abTQk+zDGYazgbIPc+4JoXdwC8NHU9Pbn4UJP1fehUyZmM4RHp5IthX7A6L5KS30PRui+j+tbbMMMafdw==", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/vscode-languageclient": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/vscode-languageclient/-/vscode-languageclient-8.1.0.tgz", + "integrity": "sha512-GL4QdbYUF/XxQlAsvYWZRV3V34kOkpRlvV60/72ghHfsYFnS/v2MANZ9P6sHmxFcZKOse8O+L9G7Czg0NUWing==", + "dependencies": { + "minimatch": "^5.1.0", + "semver": "^7.3.7", + "vscode-languageserver-protocol": "3.17.3" + }, + "engines": { + "vscode": "^1.67.0" + } + }, + "node_modules/vscode-languageclient/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/vscode-languageclient/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/vscode-languageserver-protocol": { + "version": "3.17.3", + "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.3.tgz", + "integrity": "sha512-924/h0AqsMtA5yK22GgMtCYiMdCOtWTSGgUOkgEDX+wk2b0x4sAfLiO4NxBxqbiVtz7K7/1/RgVrVI0NClZwqA==", + "dependencies": { + "vscode-jsonrpc": "8.1.0", + "vscode-languageserver-types": "3.17.3" + } + }, + "node_modules/vscode-languageserver-types": { + "version": "3.17.3", + "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.3.tgz", + "integrity": "sha512-SYU4z1dL0PyIMd4Vj8YOqFvHu7Hz/enbWtpfnVbJHU4Nd1YNYx8u0ennumc6h48GQNeOLxmwySmnADouT/AuZA==" + }, + "node_modules/w3c-xmlserializer": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz", + "integrity": "sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==", + "dependencies": { + "xml-name-validator": "^5.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", + "dependencies": { + "defaults": "^1.0.3" + } + }, + "node_modules/web-streams-polyfill": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz", + "integrity": "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/webidl-conversions": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", + "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", + "engines": { + "node": ">=12" + } + }, + "node_modules/whatwg-encoding": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz", + "integrity": "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==", + "dependencies": { + "iconv-lite": "0.6.3" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/whatwg-encoding/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/whatwg-mimetype": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz", + "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==", + "engines": { + "node": ">=18" + } + }, + "node_modules/whatwg-url": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-14.0.0.tgz", + "integrity": "sha512-1lfMEm2IEr7RIV+f4lUNPOqfFL+pO+Xw3fJSqmjX9AbXcXcYOkCe1P6+9VBZB6n94af16NfZf+sSk0JCBZC9aw==", + "dependencies": { + "tr46": "^5.0.0", + "webidl-conversions": "^7.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/wide-align": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", + "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", + "dependencies": { + "string-width": "^1.0.2 || 2 || 3 || 4" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==" + }, + "node_modules/wordwrapjs": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-5.1.0.tgz", + "integrity": "sha512-JNjcULU2e4KJwUNv6CHgI46UvDGitb6dGryHajXTDiLgg1/RiGoPSDw4kZfYnwGtEXf2ZMeIewDQgFGzkCB2Sg==", + "peer": true, + "engines": { + "node": ">=12.17" + } + }, + "node_modules/workerpool": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", + "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==", + "dev": true + }, + "node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "node_modules/ws": { + "version": "8.17.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.0.tgz", + "integrity": "sha512-uJq6108EgZMAl20KagGkzCKfMEjxmKvZHG7Tlq0Z6nOky7YF7aq4mOx6xK8TJ/i1LeK4Qus7INktacctDgY8Ow==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xml-name-validator": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-5.0.0.tgz", + "integrity": "sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==", + "engines": { + "node": ">=18" + } + }, + "node_modules/xml2js": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.5.0.tgz", + "integrity": "sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==", + "dev": true, + "dependencies": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/xmlbuilder": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==" + }, + "node_modules/xmlhttprequest-ssl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz", + "integrity": "sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/yaml": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.2.tgz", + "integrity": "sha512-B3VqDZ+JAg1nZpaEmWtTXUlBneoGx6CPM9b0TENK6aoSu5t73dItudwdgmi6tHlIZZId4dZ9skcAQ2UbcyAeVA==", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "20.2.4", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-unparser": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", + "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", + "dev": true, + "dependencies": { + "camelcase": "^6.0.0", + "decamelize": "^4.0.0", + "flat": "^5.0.2", + "is-plain-obj": "^2.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-unparser/node_modules/is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "engines": { + "node": ">=12" + } + }, + "node_modules/yarn": { + "version": "1.22.22", + "resolved": "https://registry.npmjs.org/yarn/-/yarn-1.22.22.tgz", + "integrity": "sha512-prL3kGtyG7o9Z9Sv8IPfBNrWTDmXB4Qbes8A9rEzt6wkJV8mUvoirjU0Mp3GGAU06Y0XQyA3/2/RQFVuK7MTfg==", + "hasInstallScript": true, + "bin": { + "yarn": "bin/yarn.js", + "yarnpkg": "bin/yarn.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, + "node_modules/yazl": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/yazl/-/yazl-2.5.1.tgz", + "integrity": "sha512-phENi2PLiHnHb6QBVot+dJnaAZ0xosj7p3fWl+znIjBDlnMI2PsZCJZ306BPTFOaHf5qdDEI8x5qFrSOBN5vrw==", + "dev": true, + "dependencies": { + "buffer-crc32": "~0.2.3" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } } - } - }, - "node_modules/xml-name-validator": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-5.0.0.tgz", - "integrity": "sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==", - "engines": { - "node": ">=18" - } - }, - "node_modules/xml2js": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.5.0.tgz", - "integrity": "sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==", - "dev": true, - "dependencies": { - "sax": ">=0.6.0", - "xmlbuilder": "~11.0.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/xmlbuilder": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", - "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/xmlchars": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", - "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==" - }, - "node_modules/xmlhttprequest-ssl": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz", - "integrity": "sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A==", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "engines": { - "node": ">=0.4" - } - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "engines": { - "node": ">=10" - } - }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, - "node_modules/yaml": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.1.tgz", - "integrity": "sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg==", - "bin": { - "yaml": "bin.mjs" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/yargs-parser": { - "version": "20.2.4", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs-unparser": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", - "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", - "dependencies": { - "camelcase": "^6.0.0", - "decamelize": "^4.0.0", - "flat": "^5.0.2", - "is-plain-obj": "^2.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs-unparser/node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/yargs-unparser/node_modules/is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", - "engines": { - "node": ">=8" - } - }, - "node_modules/yargs/node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "engines": { - "node": ">=12" - } - }, - "node_modules/yarn": { - "version": "1.22.22", - "resolved": "https://registry.npmjs.org/yarn/-/yarn-1.22.22.tgz", - "integrity": "sha512-prL3kGtyG7o9Z9Sv8IPfBNrWTDmXB4Qbes8A9rEzt6wkJV8mUvoirjU0Mp3GGAU06Y0XQyA3/2/RQFVuK7MTfg==", - "hasInstallScript": true, - "bin": { - "yarn": "bin/yarn.js", - "yarnpkg": "bin/yarn.js" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", - "dependencies": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" - } - }, - "node_modules/yazl": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/yazl/-/yazl-2.5.1.tgz", - "integrity": "sha512-phENi2PLiHnHb6QBVot+dJnaAZ0xosj7p3fWl+znIjBDlnMI2PsZCJZ306BPTFOaHf5qdDEI8x5qFrSOBN5vrw==", - "dev": true, - "dependencies": { - "buffer-crc32": "~0.2.3" - } - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } } - } } diff --git a/extensions/vscode/package.json b/extensions/vscode/package.json index ddead85dd..6c194e132 100644 --- a/extensions/vscode/package.json +++ b/extensions/vscode/package.json @@ -1,7 +1,7 @@ { "name": "ahrefs-continue", "icon": "media/a_ahrefs_logo.png", - "version": "1.1.13", + "version": "1.1.15", "repository": { "type": "git", "url": "https://github.com/ahrefs/ahrefs-continue" @@ -30,6 +30,8 @@ "theme": "dark" }, "categories": [ + "AI", + "Chat", "Programming Languages", "Education", "Machine Learning", @@ -39,9 +41,13 @@ "chatgpt", "github", "copilot", - "llama", + "claude", + "sonnet", + "mistral", + "codestral", "codegpt", - "ai" + "ai", + "llama" ], "activationEvents": [ "onStartupFinished", @@ -50,23 +56,42 @@ "main": "./out/extension.js", "browser": "./out/extension.js", "contributes": { + "languages": [ + { + "filenames": [ + "config.json", + ".ahrefs-continuerc.json" + ], + "id": "jsonc" + } + ], "configuration": { "title": "Ahrefs-Continue", "properties": { "ahrefs-continue.telemetryEnabled": { "type": "boolean", - "default": false, - "markdownDescription": "Ahrefs-Continue collects anonymous usage data, cleaned of PII, to help us improve the product for our users. Read more at [continue.dev › Telemetry](https://continue.dev/docs/telemetry)." + "default": true, + "markdownDescription": "Ahrefs-Continue collects anonymous usage data, cleaned of PII, to help us improve the product for our users." }, "ahrefs-continue.showInlineTip": { "type": "boolean", "default": true, "description": "Show inline suggestion to use the Ahrefs-Continue keyboard shortcuts (e.g. \"Cmd/Ctrl L to select code, Cmd/Ctrl I to edit\")." }, + "ahrefs-continue.enableQuickActions": { + "type": "boolean", + "default": true, + "markdownDescription": "Enable the experimental Quick Actions feature." + }, "ahrefs-continue.enableTabAutocomplete": { "type": "boolean", "default": true, - "markdownDescription": "Enable Ahrefs-Continue's tab autocomplete feature. Read our walkthrough to learn about configuration and how to share feedback: [continue.dev › Walkthrough: Tab Autocomplete](https://continue.dev/docs/walkthroughs/tab-autocomplete)" + "markdownDescription": "Enable Ahrefs-Continue's tab autocomplete feature." + }, + "ahrefs-continue.pauseTabAutocompleteOnBattery": { + "type": "boolean", + "default": false, + "markdownDescription": "Pause Ahrefs-Continue's tab autocomplete feature when your battery is low." }, "ahrefs-continue.remoteConfigServerUrl": { "type": "string", @@ -83,20 +108,15 @@ "default": 60, "description": "The period of time in minutes between automatic syncs." }, - "ahrefs-continue.commandModel": { - "type": "string", - "default": null, - "description": "Selected model to execute command" - }, - "ahrefs-continue.completionModel": { - "type": "string", - "default": null, - "description": "Selected model for code completion" - }, "ahrefs-continue.interruptGeneration": { "type": "boolean", "default": false, "description": "Interrupt generation when this is True." + }, + "ahrefs-continue.commandModel": { + "type": "string", + "default": null, + "description": "Selected model to execute command" } } }, @@ -107,12 +127,6 @@ "title": "Select Command Execution Model (e.g. Ahrefs-Continue: Quick Edit)", "group": "Ahrefs-Continue" }, - { - "command": "ahrefs-continue.selectCompletionModel", - "category": "Ahrefs-Continue", - "title": "Select Code Completion Model", - "group": "Ahrefs-Continue" - }, { "command": "ahrefs-continue.acceptDiff", "category": "Ahrefs-Continue", @@ -141,13 +155,7 @@ { "command": "ahrefs-continue.quickEdit", "category": "Ahrefs-Continue", - "title": "Quick Edit", - "group": "Ahrefs-Continue" - }, - { - "command": "ahrefs-continue.toggleAuxiliaryBar", - "category": "Ahrefs-Continue", - "title": "Toggle Right Sidebar", + "title": "Generate Code", "group": "Ahrefs-Continue" }, { @@ -165,7 +173,7 @@ { "command": "ahrefs-continue.debugTerminal", "category": "Ahrefs-Continue", - "title": "Debug Terminal", + "title": "Ahrefs-Continue: Debug Terminal", "group": "Ahrefs-Continue" }, { @@ -176,9 +184,15 @@ "group": "Ahrefs-Continue" }, { - "command": "ahrefs-continue.saveChatSession", + "command": "ahrefs-continue.openConfigJson", "category": "Ahrefs-Continue", - "title": "Save Chat Session", + "title": "Open config.json", + "group": "Ahrefs-Continue" + }, + { + "command": "ahrefs-continue.toggleTabAutocompleteEnabled", + "category": "Ahrefs-Continue", + "title": "Toggle Autocomplete Enabled", "group": "Ahrefs-Continue" }, { @@ -202,9 +216,51 @@ "group": "Ahrefs-Continue" }, { - "command": "ahrefs-continue.toggleTabAutocompleteEnabled", + "command": "ahrefs-continue.writeCommentsForCode", "category": "Ahrefs-Continue", - "title": "Toggle Autocomplete Enabled", + "title": "Write Comments for this Code", + "group": "Ahrefs-Continue" + }, + { + "command": "ahrefs-continue.writeDocstringForCode", + "category": "Ahrefs-Continue", + "title": "Write a Docstring for this Code", + "group": "Ahrefs-Continue" + }, + { + "command": "ahrefs-continue.fixCode", + "category": "Ahrefs-Continue", + "title": "Fix this Code", + "group": "Ahrefs-Continue" + }, + { + "command": "ahrefs-continue.optimizeCode", + "category": "Ahrefs-Continue", + "title": "Optimize this Code", + "group": "Ahrefs-Continue" + }, + { + "command": "ahrefs-continue.fixGrammar", + "category": "Ahrefs-Continue", + "title": "Fix Grammar / Spelling", + "group": "Ahrefs-Continue" + }, + { + "command": "ahrefs-continue.docsIndex", + "category": "Ahrefs-Continue", + "title": "Docs Index", + "group": "Ahrefs-Continue" + }, + { + "command": "ahrefs-continue.docsReIndex", + "category": "Ahrefs-Continue", + "title": "Docs Force Re-Index", + "group": "Ahrefs-Continue" + }, + { + "command": "ahrefs-continue.saveChatSession", + "category": "Ahrefs-Continue", + "title": "Save Chat Session", "group": "Ahrefs-Continue" } ], @@ -219,6 +275,11 @@ "mac": "cmd+shift+l", "key": "ctrl+shift+l" }, + { + "command": "ahrefs-continue.toggleAuxiliaryBar", + "mac": "alt+cmd+l", + "key": "alt+ctrl+l" + }, { "command": "ahrefs-continue.acceptDiff", "mac": "shift+cmd+enter", @@ -235,6 +296,18 @@ "key": "ctrl+z", "when": "ahrefs-continue.diffVisible" }, + { + "command": "ahrefs-continue.quickEditHistoryUp", + "mac": "up", + "key": "up", + "when": "ahrefs-continue.quickEditHistoryFocused" + }, + { + "command": "ahrefs-continue.quickEditHistoryDown", + "mac": "down", + "key": "down", + "when": "ahrefs-continue.quickEditHistoryFocused" + }, { "command": "ahrefs-continue.acceptVerticalDiffBlock", "mac": "alt+cmd+y", @@ -250,11 +323,6 @@ "mac": "cmd+i", "key": "ctrl+i" }, - { - "command": "ahrefs-continue.toggleAuxiliaryBar", - "mac": "alt+cmd+l", - "key": "alt+ctrl+l" - }, { "command": "ahrefs-continue.debugTerminal", "mac": "cmd+shift+r", @@ -269,7 +337,13 @@ { "command": "ahrefs-continue.toggleTabAutocompleteEnabled", "mac": "cmd+k cmd+a", - "key": "ctrl+k ctrl+a" + "key": "ctrl+k ctrl+a", + "when": "!terminalFocus" + }, + { + "command": "ahrefs-continue.interruptGeneration", + "mac": "cmd+shift+c", + "key": "ctrl+shift+c" } ], "submenus": [ @@ -283,9 +357,6 @@ { "command": "ahrefs-continue.quickEdit" }, - { - "command": "ahrefs-continue.toggleAuxiliaryBar" - }, { "command": "ahrefs-continue.focusContinueInput" }, @@ -305,7 +376,7 @@ "editor/context": [ { "submenu": "ahrefs-continue.ahrefs-continueSubMenu", - "group": "0_aahrefs-continue" + "group": "0_acontinue" } ], "editor/title/run": [ @@ -320,6 +391,31 @@ "command": "ahrefs-continue.focusContinueInputWithoutClear", "group": "Ahrefs-Continue", "when": "editorHasSelection" + }, + { + "command": "ahrefs-continue.writeCommentsForCode", + "group": "Ahrefs-Continue", + "when": "editorHasSelection" + }, + { + "command": "ahrefs-continue.writeDocstringForCode", + "group": "Ahrefs-Continue", + "when": "editorHasSelection" + }, + { + "command": "ahrefs-continue.fixCode", + "group": "Ahrefs-Continue", + "when": "editorHasSelection" + }, + { + "command": "ahrefs-continue.optimizeCode", + "group": "Ahrefs-Continue", + "when": "editorHasSelection" + }, + { + "command": "ahrefs-continue.fixGrammar", + "group": "Ahrefs-Continue", + "when": "editorHasSelection && editorLangId == 'markdown'" } ], "explorer/context": [ @@ -351,6 +447,12 @@ "group": "navigation@1", "when": "activeWebviewPanelId == ahrefs-continue.ahrefs-continueGUIView" } + ], + "terminal/context": [ + { + "command": "ahrefs-continue.debugTerminal", + "group": "navigation@top" + } ] }, "viewsContainers": { @@ -417,13 +519,13 @@ "url": "./config_schema.json" }, { - "fileMatch": ".continuerc.json", - "url": "./continue_rc_schema.json" + "fileMatch": ".ahrefs-continuerc.json", + "url": "./ahrefs-continue_rc_schema.json" } ] }, "scripts": { - "esbuild-base": "node esbuild.js", + "esbuild-base": "node scripts/esbuild.js", "vscode:prepublish": "npm run esbuild-base -- --minify", "esbuild": "npm run esbuild-base -- --sourcemap", "esbuild-watch": "npm run esbuild-base -- --sourcemap --watch", @@ -431,23 +533,27 @@ "tsc-watch": "tsc -watch -p ./", "rebuild": "electron-rebuild -v 19.1.8 node-pty", "lint": "eslint src --ext ts", - "build-test": "tsc && node esbuild.test.mjs", - "test": "npm run build-test && node ./out/test-runner/runTestOnVSCodeHost.js", + "build-test": "npm run esbuild && node esbuild.test.mjs", + "test": "npm run build-test && node ./out/runTestOnVSCodeHost.js", + "quick-test": "npm run build-test && node ./out/runTestOnVSCodeHost.js", "prepackage": "node scripts/prepackage.js", "package": "node scripts/package.js", + "package-all": "node scripts/package-all.js", "package:pre-release": "node scripts/package.js --pre-release", "build:rust": "cargo-cp-artifact -ac sync sync.node -- cargo build --manifest-path ../../sync/Cargo.toml --message-format=json-render-diagnostics", "build-debug:rust": "npm run build:rust --", "build-release:rust": "npm run build:rust -- --release" }, "devDependencies": { + "@biomejs/biome": "1.6.4", "@nestjs/common": "^8.4.7", "@openapitools/openapi-generator-cli": "^2.5.2", + "@types/fast-levenshtein": "^0.0.4", "@types/cors": "^2.8.17", "@types/express": "^4.17.21", "@types/follow-redirects": "^1.14.4", "@types/glob": "^8.0.0", - "@types/fast-levenshtein": "^0.0.4", + "@types/mocha": "^10.0.6", "@types/node": "16.x", "@types/react-dom": "^18.2.4", "@types/request": "^2.48.8", @@ -457,23 +563,22 @@ "@typescript-eslint/parser": "^5.45.0", "@vscode/vsce": "^2.22.0", "cargo-cp-artifact": "^0.1", - "esbuild": "0.17.19", "eslint": "^8.28.0", "glob": "^8.0.3", "json-schema-to-typescript": "^12.0.0", + "mocha": "^10.4.0", "ovsx": "^0.8.3", "rimraf": "^5.0.5", "typescript": "^5.3.3", "vite": "^4.3.9", - "vsce": "^2.15.0", - "fast-levenshtein": "^3.0.0" + "vsce": "^2.15.0" }, "dependencies": { "@electron/rebuild": "^3.2.10", "@reduxjs/toolkit": "^1.9.3", - "@types/jest": "^29.5.11", "@types/node-fetch": "^2.6.11", "@types/fast-levenshtein": "^0.0.4", + "@types/uuid": "^9.0.8", "@vscode/ripgrep": "^1.15.9", "@vscode/test-electron": "^2.3.9", "axios": "^1.2.5", @@ -481,7 +586,9 @@ "cors": "^2.8.5", "dbinfoz": "^0.1.4", "downshift": "^7.6.0", + "esbuild": "^0.17.19", "express": "^4.18.2", + "fast-levenshtein": "^3.0.0", "fkill": "^8.1.0", "follow-redirects": "^1.15.4", "handlebars": "^4.7.8", @@ -492,27 +599,28 @@ "http-proxy-middleware": "^2.0.6", "https-proxy-agent": "^7.0.2", "ignore": "^5.3.0", - "jest": "^29.7.0", "jsdom": "^24.0.0", - "mocha": "^10.3.0", + "minisearch": "^7.0.0", "monaco-editor": "^0.45.0", "monaco-vscode-textmate-theme-converter": "^0.1.7", "ncp": "^2.0.0", "node-fetch": "^3.3.2", "node-machine-id": "^1.1.12", - "posthog-node": "^3.1.2", + "posthog-node": "^3.6.3", "react-markdown": "^8.0.7", "react-redux": "^8.0.5", + "read-last-lines": "^1.8.0", "request": "^2.88.2", "socket.io-client": "^4.7.2", "strip-ansi": "^7.1.0", + "systeminformation": "^5.22.10", "tailwindcss": "^3.3.2", "undici": "^6.2.0", + "uuid": "^9.0.1", "uuidv4": "^6.2.13", - "vectordb": "0.4.12", + "vectordb": "^0.4.20", "vscode-languageclient": "^8.0.2", "ws": "^8.13.0", - "yarn": "^1.22.21", - "fast-levenshtein": "^3.0.0" + "yarn": "^1.22.21" } } \ No newline at end of file diff --git a/extensions/vscode/scripts/esbuild.js b/extensions/vscode/scripts/esbuild.js new file mode 100644 index 000000000..9aa62fa7a --- /dev/null +++ b/extensions/vscode/scripts/esbuild.js @@ -0,0 +1,32 @@ +const esbuild = require("esbuild"); + +const flags = process.argv.slice(2); + +const esbuildConfig = { + entryPoints: ["src/extension.ts"], + bundle: true, + outfile: "out/extension.js", + external: ["vscode", "esbuild", "./xhr-sync-worker.js"], + format: "cjs", + platform: "node", + sourcemap: flags.includes("--sourcemap"), + loader: { + // eslint-disable-next-line @typescript-eslint/naming-convention + ".node": "file", + }, + + // To allow import.meta.path for transformers.js + // https://github.com/evanw/esbuild/issues/1492#issuecomment-893144483 + inject: ["./scripts/importMetaUrl.js"], + define: { "import.meta.url": "importMetaUrl" }, +}; + +(async () => { + // Bundles the extension into one file + if (flags.includes("--watch")) { + const ctx = await esbuild.context(esbuildConfig); + await ctx.watch(); + } else { + await esbuild.build(esbuildConfig); + } +})(); diff --git a/extensions/vscode/scripts/importMetaUrl.js b/extensions/vscode/scripts/importMetaUrl.js new file mode 100644 index 000000000..0508c8d33 --- /dev/null +++ b/extensions/vscode/scripts/importMetaUrl.js @@ -0,0 +1,2 @@ +// https://github.com/evanw/esbuild/issues/1492#issuecomment-893144483 +export var importMetaUrl = require("url").pathToFileURL(__filename); diff --git a/extensions/vscode/scripts/package-all.js b/extensions/vscode/scripts/package-all.js new file mode 100644 index 000000000..7f1047110 --- /dev/null +++ b/extensions/vscode/scripts/package-all.js @@ -0,0 +1,33 @@ +const { execSync } = require("child_process"); + +const PLATFORMS = [ + "win32-x64", +// "win32-arm64", can't be built due to no sqlite3 binaries + "linux-x64", + "linux-arm64", + "darwin-x64", + "darwin-arm64", +] +const args = process.argv.slice(2); +const isPreRelease = args.includes("--pre-release"); + +(async () => { + for (const i in PLATFORMS) { + const platform = PLATFORMS[i]; + const pkgCommand = isPreRelease + ? "node scripts/package.js --pre-release --target " + platform // --yarn" + : "node scripts/package.js --target " + platform; // --yarn"; + + execSync( + "node scripts/prepackage-cross-platform.js --target "+ platform, + {stdio: 'inherit'} + + ); + execSync( + pkgCommand, + {stdio: 'inherit'} + ); + } +})(); + + \ No newline at end of file diff --git a/extensions/vscode/scripts/package.js b/extensions/vscode/scripts/package.js index 48d7ca5a3..af2e76193 100644 --- a/extensions/vscode/scripts/package.js +++ b/extensions/vscode/scripts/package.js @@ -2,27 +2,23 @@ const { exec } = require("child_process"); const fs = require("fs"); const args = process.argv.slice(2); -let isPreRelease = false; -let target = ""; -if (args.includes("--pre-release")) { - isPreRelease = True; -} -else { - const targetIndex = args.indexOf("--target") + 1; - if (targetIndex > 0 && targetIndex < args.length) { - target = args[targetIndex]; // Corrected to get the value following "--target" - } -} - +let target; +if (args[0] === "--target") { + target = args[1]; +} if (!fs.existsSync("build")) { fs.mkdirSync("build"); } -const command = isPreRelease - ? "vsce package --out ./build patch --pre-release" // --yarn" - : "vsce package --out ./build patch --target ${target}"; // --yarn"; +const isPreRelease = args.includes("--pre-release"); + +let command = isPreRelease +? "npx vsce package --out ./build patch --pre-release --no-dependencies" // --yarn" +: "npx vsce package --out ./build patch --no-dependencies"; // --yarn"; + +if (target) command += ` --target ${target}`; exec(command, (error) => { if (error) throw error; diff --git a/extensions/vscode/scripts/prepackage-cross-platform.js b/extensions/vscode/scripts/prepackage-cross-platform.js new file mode 100644 index 000000000..59089dd62 --- /dev/null +++ b/extensions/vscode/scripts/prepackage-cross-platform.js @@ -0,0 +1,211 @@ +/** + * This is an experimental copy of `prepackage.js` that will attempt to build the extension in a fully cross-platform way. + * This is not what we use for real builds. + * It is also not complete. Current status is that it is just beginning to be refactored. + */ + +const fs = require("fs"); +const path = require("path"); +const { rimrafSync } = require("rimraf"); +const { + validateFilesPresent, + autodetectPlatformAndArch, +} = require("../../../scripts/util/index"); +const { + copyConfigSchema, + installNodeModules, + buildGui, + copyOnnxRuntimeFromNodeModules, + copyTreeSitterWasms, + copyTreeSitterTagQryFiles, + copyNodeModules, + downloadEsbuildBinary, + downloadRipgrepBinary, + copySqliteBinary, + installNodeModuleInTempDirAndCopyToCurrent, + downloadSqliteBinary, +} = require("./utils"); + +// Clear folders that will be packaged to ensure clean slate +rimrafSync(path.join(__dirname, "..", "bin")); +rimrafSync(path.join(__dirname, "..", "out")); +fs.mkdirSync(path.join(__dirname, "..", "out", "node_modules"), { + recursive: true, +}); +const guiDist = path.join(__dirname, "..", "..", "..", "gui", "dist"); +if (!fs.existsSync(guiDist)) { + fs.mkdirSync(guiDist, { recursive: true }); +} + +// Get the target to package for +let target = undefined; +const args = process.argv; +if (args[2] === "--target") { + target = args[3]; +} + +let os; +let arch; +if (!target) { + [os, arch] = autodetectPlatformAndArch(); +} else { + [os, arch] = target.split("-"); +} + +if (os === "alpine") { + os = "linux"; +} +if (arch === "armhf") { + arch = "arm64"; +} +target = `${os}-${arch}`; +console.log("[info] Using target: ", target); + +const exe = os === "win32" ? ".exe" : ""; + +console.log("[info] Using target: ", target); + +function ghAction() { + return !!process.env.GITHUB_ACTIONS; +} + +function isArm() { + return ( + target === "darwin-arm64" || + target === "linux-arm64" || + target === "win32-arm64" + ); +} + +function isWin() { + return target?.startsWith("win"); +} + +async function package(target, os, arch, exe) { + console.log("[info] Packaging extension for target ", target); + + // Copy config_schema.json to config.json in docs and intellij + copyConfigSchema(); + + // Install node_modules + installNodeModules(); + + // Build gui and copy to extensions + await buildGui(ghAction()); + + // Assets + // Copy tree-sitter-wasm files + await copyTreeSitterWasms(); + + // Copy tree-sitter tag query files + await copyTreeSitterTagQryFiles(); + + // Install and copy over native modules + // *** onnxruntime-node *** + await copyOnnxRuntimeFromNodeModules(target); + + // *** Install @lancedb binary *** + const lancePackageToInstall = { + "darwin-arm64": "@lancedb/vectordb-darwin-arm64", + "darwin-x64": "@lancedb/vectordb-darwin-x64", + "linux-arm64": "@lancedb/vectordb-linux-arm64-gnu", + "linux-x64": "@lancedb/vectordb-linux-x64-gnu", + "win32-x64": "@lancedb/vectordb-win32-x64-msvc", + "win32-arm64": "@lancedb/vectordb-win32-x64-msvc", // they don't have a win32-arm64 build + }[target]; + await installNodeModuleInTempDirAndCopyToCurrent( + lancePackageToInstall, + "@lancedb", + ); + // *** esbuild *** + // await installNodeModuleInTempDirAndCopyToCurrent( + // "esbuild@0.17.19", + // "@esbuild", + // ); + await downloadEsbuildBinary(target); + + // *** sqlite *** + await downloadSqliteBinary(target); + await copySqliteBinary(); + + await downloadRipgrepBinary(target); + + // copy node_modules to out/node_modules + await copyNodeModules(); + + // Copy over any worker files + fs.cpSync( + "node_modules/jsdom/lib/jsdom/living/xhr/xhr-sync-worker.js", + "out/xhr-sync-worker.js", + ); + + // Validate the all of the necessary files are present + validateFilesPresent([ + // Queries used to create the index for @code context provider + "tree-sitter/code-snippet-queries/c_sharp.scm", + + // Queries used for @outline and @highlights context providers + "tag-qry/tree-sitter-c_sharp-tags.scm", + + // onnx runtime bindngs + `bin/napi-v3/${os}/${arch}/onnxruntime_binding.node`, + `bin/napi-v3/${os}/${arch}/${ + os === "darwin" + ? "libonnxruntime.1.14.0.dylib" + : os === "linux" + ? "libonnxruntime.so.1.14.0" + : "onnxruntime.dll" + }`, + "builtin-themes/dark_modern.json", + + // Code/styling for the sidebar + "gui/assets/index.js", + "gui/assets/index.css", + + // Tutorial + "media/welcome.md", + "continue_tutorial.py", + "config_schema.json", + + // Embeddings model + "models/all-MiniLM-L6-v2/config.json", + "models/all-MiniLM-L6-v2/special_tokens_map.json", + "models/all-MiniLM-L6-v2/tokenizer_config.json", + "models/all-MiniLM-L6-v2/tokenizer.json", + "models/all-MiniLM-L6-v2/vocab.txt", + "models/all-MiniLM-L6-v2/onnx/model_quantized.onnx", + + // node_modules (it's a bit confusing why this is necessary) + `node_modules/@vscode/ripgrep/bin/rg${exe}`, + + // out directory (where the extension.js lives) + // "out/extension.js", This is generated afterward by vsce + // web-tree-sitter + "out/tree-sitter.wasm", + // Worker required by jsdom + "out/xhr-sync-worker.js", + // SQLite3 Node native module + "out/build/Release/node_sqlite3.node", + + // out/node_modules (to be accessed by extension.js) + `out/node_modules/@vscode/ripgrep/bin/rg${exe}`, + `out/node_modules/@esbuild/${ + target === "win32-arm64" + ? "esbuild.exe" + : target === "win32-x64" + ? "win32-x64/esbuild.exe" + : `${target}/bin/esbuild` + }`, + `out/node_modules/@lancedb/vectordb-${ + os === "win32" + ? "win32-x64-msvc" + : `${target}${os === "linux" ? "-gnu" : ""}` + }/index.node`, + `out/node_modules/esbuild/lib/main.js`, + `out/node_modules/esbuild/bin/esbuild`, + ]); +} + +(async () => { + await package(target, os, arch, exe); +})(); diff --git a/extensions/vscode/scripts/prepackage.js b/extensions/vscode/scripts/prepackage.js index 8bad500d3..7a710e791 100644 --- a/extensions/vscode/scripts/prepackage.js +++ b/extensions/vscode/scripts/prepackage.js @@ -1,21 +1,23 @@ -const { execSync } = require("child_process"); const fs = require("fs"); const ncp = require("ncp").ncp; const path = require("path"); const { rimrafSync } = require("rimraf"); - -function execCmdSync(cmd) { - try { - execSync(cmd); - } catch (err) { - console.error(`Error executing command '${cmd}': `, err.output.toString()); - process.exit(1); - } -} +const { + validateFilesPresent, + execCmdSync, + autodetectPlatformAndArch, +} = require("../../../scripts/util/index"); // Clear folders that will be packaged to ensure clean slate -rimrafSync(path.join(__dirname, "bin")); -rimrafSync(path.join(__dirname, "out")); +rimrafSync(path.join(__dirname, "..", "bin")); +rimrafSync(path.join(__dirname, "..", "out")); +fs.mkdirSync(path.join(__dirname, "..", "out", "node_modules"), { + recursive: true, +}); +const guiDist = path.join(__dirname, "..", "..", "..", "gui", "dist"); +if (!fs.existsSync(guiDist)) { + fs.mkdirSync(guiDist, { recursive: true }); +} // Get the target to package for let target = undefined; @@ -27,29 +29,7 @@ if (args[2] === "--target") { let os; let arch; if (!target) { - os = { - aix: "linux", - darwin: "darwin", - freebsd: "linux", - linux: "linux", - openbsd: "linux", - sunos: "linux", - win32: "win32", - }[process.platform]; - arch = { - arm: "arm64", - arm64: "arm64", - ia32: "x64", - loong64: "arm64", - mips: "arm64", - mipsel: "arm64", - ppc: "x64", - ppc64: "x64", - riscv64: "arm64", - s390: "x64", - s390x: "x64", - x64: "x64", - }[process.arch]; + [os, arch] = autodetectPlatformAndArch(); } else { [os, arch] = target.split("-"); } @@ -102,12 +82,12 @@ const exe = os === "win32" ? ".exe" : ""; } // Install node_modules // - execCmdSync("npm install --no-save"); + execCmdSync("npm install"); console.log("[info] npm install in extensions/vscode completed"); process.chdir("../../gui"); - execCmdSync("npm install --no-save"); + execCmdSync("npm install"); console.log("[info] npm install in gui completed"); if (ghAction()) { @@ -161,12 +141,19 @@ const exe = os === "win32" ? ".exe" : ""; // Then copy over the dist folder to the VSCode extension // const vscodeGuiPath = path.join("../extensions/vscode/gui"); fs.mkdirSync(vscodeGuiPath, { recursive: true }); - ncp("dist", vscodeGuiPath, (error) => { - if (error) { - console.log("Error copying React app build to VSCode extension: ", error); - throw error; - } - console.log("Copied gui build to VSCode extension"); + await new Promise((resolve, reject) => { + ncp("dist", vscodeGuiPath, (error) => { + if (error) { + console.log( + "Error copying React app build to VSCode extension: ", + error, + ); + reject(error); + } else { + console.log("Copied gui build to VSCode extension"); + resolve(); + } + }); }); if (!fs.existsSync(path.join("dist", "assets", "index.js"))) { @@ -186,6 +173,9 @@ const exe = os === "win32" ? ".exe" : ""; ncp( path.join(__dirname, "../../../core/node_modules/onnxruntime-node/bin"), path.join(__dirname, "../bin"), + { + dereference: true, + }, (error) => { if (error) { console.warn("[info] Error copying onnxruntime-node files", error); @@ -207,6 +197,25 @@ const exe = os === "win32" ? ".exe" : ""; if (!target.startsWith("win")) { rimrafSync(path.join(__dirname, "../bin/napi-v3/win32")); } + + // Also don't want to include cuda/shared/tensorrt binaries, they are too large + if (target.startsWith("linux")) { + const filesToRemove = [ + "libonnxruntime_providers_cuda.so", + "libonnxruntime_providers_shared.so", + "libonnxruntime_providers_tensorrt.so", + ]; + filesToRemove.forEach((file) => { + const filepath = path.join( + __dirname, + "../bin/napi-v3/linux/x64", + file, + ); + if (fs.existsSync(filepath)) { + fs.rmSync(filepath); + } + }); + } } catch (e) { console.warn("[info] Error removing unused binaries", e); } @@ -220,6 +229,7 @@ const exe = os === "win32" ? ".exe" : ""; ncp( path.join(__dirname, "../../../core/node_modules/tree-sitter-wasms/out"), path.join(__dirname, "../out/tree-sitter-wasms"), + { dereference: true }, (error) => { if (error) { console.warn("[error] Error copying tree-sitter-wasm files", error); @@ -241,13 +251,13 @@ const exe = os === "win32" ? ".exe" : ""; // ncp( // path.join( // __dirname, - // "../../../core/node_modules/llm-code-highlighter/dist/tag-qry" + // "../../../core/node_modules/llm-code-highlighter/dist/tag-qry", // ), // path.join(__dirname, "../out/tag-qry"), // (error) => { // if (error) // console.warn("Error copying code-highlighter tag-qry files", error); - // } + // }, // ); // textmate-syntaxes @@ -282,34 +292,88 @@ const exe = os === "win32" ? ".exe" : ""; return target?.startsWith("win"); } + async function installNodeModuleInTempDirAndCopyToCurrent( + packageName, + toCopy, + ) { + console.log(`Copying ${packageName} to ${toCopy}`); + // This is a way to install only one package without npm trying to install all the dependencies + // Create a temporary directory for installing the package + const adjustedName = packageName.replace(/@/g, "").replace("/", "-"); + + const tempDir = `/tmp/continue-node_modules-${adjustedName}`; + const currentDir = process.cwd(); + + // Remove the dir we will be copying to + rimrafSync(`node_modules/${toCopy}`); + + // Ensure the temporary directory exists + fs.mkdirSync(tempDir, { recursive: true }); + + try { + // Move to the temporary directory + process.chdir(tempDir); + + // Initialize a new package.json and install the package + execCmdSync(`npm init -y && npm i -f ${packageName} --no-save`); + + console.log( + `Contents of: ${packageName}`, + fs.readdirSync(path.join(tempDir, "node_modules", toCopy)), + ); + + // Without this it seems the file isn't completely written to disk + // Ideally we validate file integrity in the validation at the end + await new Promise((resolve) => setTimeout(resolve, 2000)); + + // Copy the installed package back to the current directory + await new Promise((resolve, reject) => { + ncp( + path.join(tempDir, "node_modules", toCopy), + path.join(currentDir, "node_modules", toCopy), + { dereference: true }, + (error) => { + if (error) { + console.error( + `[error] Error copying ${packageName} package`, + error, + ); + reject(error); + } else { + resolve(); + } + }, + ); + }); + } finally { + // Clean up the temporary directory + // rimrafSync(tempDir); + + // Return to the original directory + process.chdir(currentDir); + } + } + // GitHub Actions doesn't support ARM, so we need to download pre-saved binaries - if (isArm()) { - // Neither lancedb nor sqlite3 have pre-built windows arm64 binaries + if (ghAction() && isArm()) { + // sqlite3 if (!isWin()) { + // Neither lancedb nor sqlite3 have pre-built windows arm64 binaries + // lancedb binary - console.log("[info] Downloading pre-built lancedb binary"); - rimrafSync("node_modules/@lancedb"); const packageToInstall = { "darwin-arm64": "@lancedb/vectordb-darwin-arm64", "linux-arm64": "@lancedb/vectordb-linux-arm64-gnu", }[target]; - execCmdSync(`npm install -f ${packageToInstall} --no-save`); - } + console.log( + "[info] Downloading pre-built lancedb binary: " + packageToInstall, + ); - // Download and unzip esbuild - console.log("[info] Downloading pre-built esbuild binary"); - rimrafSync("node_modules/@esbuild"); - fs.mkdirSync("node_modules/@esbuild", { recursive: true }); - execCmdSync( - `curl -o node_modules/@esbuild/esbuild.zip https://continue-server-binaries.s3.us-west-1.amazonaws.com/${target}/esbuild.zip`, - ); - execCmdSync(`cd node_modules/@esbuild && unzip esbuild.zip`); - fs.unlinkSync("node_modules/@esbuild/esbuild.zip"); - } + await installNodeModuleInTempDirAndCopyToCurrent( + packageToInstall, + "@lancedb", + ); - if (ghAction()) { - // sqlite3 - if (isArm() && !isWin()) { // Replace the installed with pre-built console.log("[info] Downloading pre-built sqlite3 binary"); rimrafSync("../../core/node_modules/sqlite3/build"); @@ -327,12 +391,48 @@ const exe = os === "win32" ? ".exe" : ""; ); fs.unlinkSync("../../core/node_modules/sqlite3/build.tar.gz"); } + + // Download and unzip esbuild + console.log("[info] Downloading pre-built esbuild binary"); + rimrafSync("node_modules/@esbuild"); + fs.mkdirSync("node_modules/@esbuild", { recursive: true }); + execCmdSync( + `curl -o node_modules/@esbuild/esbuild.zip https://continue-server-binaries.s3.us-west-1.amazonaws.com/${target}/esbuild.zip`, + ); + execCmdSync(`cd node_modules/@esbuild && unzip esbuild.zip`); + fs.unlinkSync("node_modules/@esbuild/esbuild.zip"); + } else { + // Download esbuild from npm in tmp and copy over + console.log("npm installing esbuild binary"); + await installNodeModuleInTempDirAndCopyToCurrent( + "esbuild@0.17.19", + "@esbuild", + ); } + console.log("[info] Copying sqlite node binding from core"); await new Promise((resolve, reject) => { ncp( path.join(__dirname, "../../../core/node_modules/sqlite3/build"), path.join(__dirname, "../out/build"), + { dereference: true }, + (error) => { + if (error) { + console.warn("[error] Error copying sqlite3 files", error); + reject(error); + } else { + resolve(); + } + }, + ); + }); + + // Copied here as well for the VS Code test suite + await new Promise((resolve, reject) => { + ncp( + path.join(__dirname, "../../../core/node_modules/sqlite3/build"), + path.join(__dirname, "../out"), + { dereference: true }, (error) => { if (error) { console.warn("[error] Error copying sqlite3 files", error); @@ -345,7 +445,12 @@ const exe = os === "win32" ? ".exe" : ""; }); // Copy node_modules for pre-built binaries - const NODE_MODULES_TO_COPY = ["esbuild", "@esbuild", "@lancedb", "@vscode"]; + const NODE_MODULES_TO_COPY = [ + "esbuild", + "@esbuild", + "@lancedb", + "@vscode/ripgrep", + ]; fs.mkdirSync("out/node_modules", { recursive: true }); await Promise.all( @@ -356,11 +461,13 @@ const exe = os === "win32" ? ".exe" : ""; ncp( `node_modules/${mod}`, `out/node_modules/${mod}`, + { dereference: true }, function (error) { if (error) { console.error(`[error] Error copying ${mod}`, error); reject(error); } else { + console.log(`[info] Copied ${mod}`); resolve(); } }, @@ -378,27 +485,21 @@ const exe = os === "win32" ? ".exe" : ""; ); // Validate the all of the necessary files are present - validateFilesPresent(); -})(); - -function validateFilesPresent() { - // This script verifies after pacakging that necessary files are in the correct locations - // In many cases just taking a sample file from the folder when they are all roughly the same thing - - const pathsToVerify = [ + validateFilesPresent([ // Queries used to create the index for @code context provider - "tree-sitter/code-snippet-queries/tree-sitter-c_sharp-tags.scm", + "tree-sitter/code-snippet-queries/c_sharp.scm", // Queries used for @outline and @highlights context providers "tag-qry/tree-sitter-c_sharp-tags.scm", // onnx runtime bindngs `bin/napi-v3/${os}/${arch}/onnxruntime_binding.node`, - `bin/napi-v3/${os}/${arch}/${os === "darwin" - ? "libonnxruntime.1.14.0.dylib" - : os === "linux" - ? "libonnxruntime.so.1.14.0" - : "onnxruntime.dll" + `bin/napi-v3/${os}/${arch}/${ + os === "darwin" + ? "libonnxruntime.1.14.0.dylib" + : os === "linux" + ? "libonnxruntime.so.1.14.0" + : "onnxruntime.dll" }`, "builtin-themes/dark_modern.json", @@ -433,64 +534,19 @@ function validateFilesPresent() { // out/node_modules (to be accessed by extension.js) `out/node_modules/@vscode/ripgrep/bin/rg${exe}`, - `out/node_modules/@esbuild/${target === "win32-arm64" - ? "esbuild.exe" - : target === "win32-x64" - ? "win32-x64/esbuild.exe" - : `${target}/bin/esbuild` + `out/node_modules/@esbuild/${ + target === "win32-arm64" + ? "esbuild.exe" + : target === "win32-x64" + ? "win32-x64/esbuild.exe" + : `${target}/bin/esbuild` }`, - `out/node_modules/@lancedb/vectordb-${os === "win32" - ? "win32-x64-msvc" - : `${target}${os === "linux" ? "-gnu" : ""}` + `out/node_modules/@lancedb/vectordb-${ + os === "win32" + ? "win32-x64-msvc" + : `${target}${os === "linux" ? "-gnu" : ""}` }/index.node`, `out/node_modules/esbuild/lib/main.js`, `out/node_modules/esbuild/bin/esbuild`, - ]; - - let missingFiles = []; - for (const path of pathsToVerify) { - if (!fs.existsSync(path)) { - const parentFolder = path.split("/").slice(0, -1).join("/"); - const grandparentFolder = path.split("/").slice(0, -2).join("/"); - const grandGrandparentFolder = path.split("/").slice(0, -3).join("/"); - - console.error(`File ${path} does not exist`); - if (!fs.existsSync(parentFolder)) { - console.error(`Parent folder ${parentFolder} does not exist`); - } else { - console.error( - "Contents of parent folder:", - fs.readdirSync(parentFolder), - ); - } - if (!fs.existsSync(grandparentFolder)) { - console.error(`Grandparent folder ${grandparentFolder} does not exist`); - if (!fs.existsSync(grandGrandparentFolder)) { - console.error( - `Grandgrandparent folder ${grandGrandparentFolder} does not exist`, - ); - } else { - console.error( - "Contents of grandgrandparent folder:", - fs.readdirSync(grandGrandparentFolder), - ); - } - } else { - console.error( - "Contents of grandparent folder:", - fs.readdirSync(grandparentFolder), - ); - } - - missingFiles.push(path); - } - } - - if (missingFiles.length > 0) { - throw new Error( - `The following files were missing:\n- ${missingFiles.join("\n- ")}`, - ); - } else { - console.log("All paths exist"); - } -} \ No newline at end of file + ]); +})(); diff --git a/extensions/vscode/scripts/utils.js b/extensions/vscode/scripts/utils.js new file mode 100644 index 000000000..b0d7def7d --- /dev/null +++ b/extensions/vscode/scripts/utils.js @@ -0,0 +1,500 @@ +const fs = require("fs"); +const ncp = require("ncp").ncp; +const path = require("path"); +const { rimrafSync } = require("rimraf"); +const { + validateFilesPresent, + execCmdSync, + autodetectPlatformAndArch, +} = require("../../../scripts/util/index"); + +const continueDir = path.join(__dirname, "..", "..", ".."); + +function copyConfigSchema() { + fs.copyFileSync( + "config_schema.json", + path.join("..", "..", "docs", "static", "schemas", "config.json"), + ); + fs.copyFileSync( + "config_schema.json", + path.join( + "..", + "intellij", + "src", + "main", + "resources", + "config_schema.json", + ), + ); + // Modify and copy for .continuerc.json + const schema = JSON.parse(fs.readFileSync("config_schema.json", "utf8")); + schema.definitions.SerializedContinueConfig.properties.mergeBehavior = { + type: "string", + enum: ["merge", "overwrite"], + default: "merge", + title: "Merge behavior", + markdownDescription: + "If set to 'merge', .continuerc.json will be applied on top of config.json (arrays and objects are merged). If set to 'overwrite', then every top-level property of .continuerc.json will overwrite that property from config.json.", + }; + fs.writeFileSync("continue_rc_schema.json", JSON.stringify(schema, null, 2)); +} + +function installNodeModules() { + // Make sure we are in the right directory + if (!process.cwd().endsWith("vscode")) { + process.chdir(path.join(continueDir, "extensions", "vscode")); + } + + // Install node_modules // + execCmdSync("npm install"); + console.log("[info] npm install in extensions/vscode completed"); + + process.chdir(path.join(continueDir, "gui")); + + execCmdSync("npm install"); + console.log("[info] npm install in gui completed"); +} + +async function buildGui(isGhAction) { + // Make sure we are in the right directory + if (!process.cwd().endsWith("gui")) { + process.chdir(path.join(continueDir, "gui")); + } + if (isGhAction) { + execCmdSync("npm run build"); + } + + // Copy over the dist folder to the Intellij extension // + const intellijExtensionWebviewPath = path.join( + "..", + "extensions", + "intellij", + "src", + "main", + "resources", + "webview", + ); + + const indexHtmlPath = path.join(intellijExtensionWebviewPath, "index.html"); + fs.copyFileSync(indexHtmlPath, "tmp_index.html"); + rimrafSync(intellijExtensionWebviewPath); + fs.mkdirSync(intellijExtensionWebviewPath, { recursive: true }); + + await new Promise((resolve, reject) => { + ncp("dist", intellijExtensionWebviewPath, (error) => { + if (error) { + console.warn( + "[error] Error copying React app build to Intellij extension: ", + error, + ); + reject(error); + } + resolve(); + }); + }); + + // Put back index.html + if (fs.existsSync(indexHtmlPath)) { + rimrafSync(indexHtmlPath); + } + fs.copyFileSync("tmp_index.html", indexHtmlPath); + fs.unlinkSync("tmp_index.html"); + + // Copy over other misc. files + fs.copyFileSync( + "../extensions/vscode/gui/onigasm.wasm", + path.join(intellijExtensionWebviewPath, "onigasm.wasm"), + ); + + console.log("[info] Copied gui build to Intellij extension"); + + // Then copy over the dist folder to the VSCode extension // + const vscodeGuiPath = path.join("../extensions/vscode/gui"); + fs.mkdirSync(vscodeGuiPath, { recursive: true }); + await new Promise((resolve, reject) => { + ncp("dist", vscodeGuiPath, (error) => { + if (error) { + console.log( + "Error copying React app build to VSCode extension: ", + error, + ); + reject(error); + } else { + console.log("Copied gui build to VSCode extension"); + resolve(); + } + }); + }); + + if (!fs.existsSync(path.join("dist", "assets", "index.js"))) { + throw new Error("gui build did not produce index.js"); + } + if (!fs.existsSync(path.join("dist", "assets", "index.css"))) { + throw new Error("gui build did not produce index.css"); + } +} + +async function copyOnnxRuntimeFromNodeModules(target) { + process.chdir(path.join(continueDir, "extensions", "vscode")); + fs.mkdirSync("bin", { recursive: true }); + + await new Promise((resolve, reject) => { + ncp( + path.join(__dirname, "../../../core/node_modules/onnxruntime-node/bin"), + path.join(__dirname, "../bin"), + { + dereference: true, + }, + (error) => { + if (error) { + console.warn("[info] Error copying onnxruntime-node files", error); + reject(error); + } + resolve(); + }, + ); + }); + if (target) { + // If building for production, only need the binaries for current platform + try { + if (!target.startsWith("darwin")) { + rimrafSync(path.join(__dirname, "../bin/napi-v3/darwin")); + } + if (!target.startsWith("linux")) { + rimrafSync(path.join(__dirname, "../bin/napi-v3/linux")); + } + if (!target.startsWith("win")) { + rimrafSync(path.join(__dirname, "../bin/napi-v3/win32")); + } + + // Also don't want to include cuda/shared/tensorrt binaries, they are too large + if (target.startsWith("linux")) { + const filesToRemove = [ + "libonnxruntime_providers_cuda.so", + "libonnxruntime_providers_shared.so", + "libonnxruntime_providers_tensorrt.so", + ]; + filesToRemove.forEach((file) => { + const filepath = path.join( + __dirname, + "../bin/napi-v3/linux/x64", + file, + ); + if (fs.existsSync(filepath)) { + fs.rmSync(filepath); + } + }); + } + } catch (e) { + console.warn("[info] Error removing unused binaries", e); + } + } + console.log("[info] Copied onnxruntime-node"); +} + +async function copyTreeSitterWasms() { + process.chdir(path.join(continueDir, "extensions", "vscode")); + fs.mkdirSync("out", { recursive: true }); + + await new Promise((resolve, reject) => { + ncp( + path.join(__dirname, "../../../core/node_modules/tree-sitter-wasms/out"), + path.join(__dirname, "../out/tree-sitter-wasms"), + { dereference: true }, + (error) => { + if (error) { + console.warn("[error] Error copying tree-sitter-wasm files", error); + reject(error); + } else { + resolve(); + } + }, + ); + }); + + fs.copyFileSync( + path.join(__dirname, "../../../core/vendor/tree-sitter.wasm"), + path.join(__dirname, "../out/tree-sitter.wasm"), + ); + console.log("[info] Copied tree-sitter wasms"); +} + +async function copyTreeSitterTagQryFiles() { + // ncp( + // path.join( + // __dirname, + // "../../../core/node_modules/llm-code-highlighter/dist/tag-qry", + // ), + // path.join(__dirname, "../out/tag-qry"), + // (error) => { + // if (error) + // console.warn("Error copying code-highlighter tag-qry files", error); + // }, + // ); +} + +async function copyNodeModules() { + // Copy node_modules for pre-built binaries + process.chdir(path.join(continueDir, "extensions", "vscode")); + + const NODE_MODULES_TO_COPY = [ + "esbuild", + "@esbuild", + "@lancedb", + "@vscode/ripgrep", + ]; + fs.mkdirSync("out/node_modules", { recursive: true }); + + await Promise.all( + NODE_MODULES_TO_COPY.map( + (mod) => + new Promise((resolve, reject) => { + fs.mkdirSync(`out/node_modules/${mod}`, { recursive: true }); + ncp( + `node_modules/${mod}`, + `out/node_modules/${mod}`, + { dereference: true }, + function (error) { + if (error) { + console.error(`[error] Error copying ${mod}`, error); + reject(error); + } else { + console.log(`[info] Copied ${mod}`); + resolve(); + } + }, + ); + }), + ), + ); + + console.log(`[info] Copied ${NODE_MODULES_TO_COPY.join(", ")}`); +} + +// async function downloadEsbuildBinary(isGhAction, isArm, target) { +// process.chdir(path.join(continueDir, "extensions", "vscode")); + +// if (isGhAction && isArm) { +// // Download and unzip esbuild +// console.log("[info] Downloading pre-built esbuild binary"); +// rimrafSync("node_modules/@esbuild"); +// fs.mkdirSync("node_modules/@esbuild", { recursive: true }); +// execCmdSync( +// `curl -o node_modules/@esbuild/esbuild.zip https://continue-server-binaries.s3.us-west-1.amazonaws.com/${target}/esbuild.zip`, +// ); +// execCmdSync(`cd node_modules/@esbuild && unzip esbuild.zip`); +// fs.unlinkSync("node_modules/@esbuild/esbuild.zip"); +// } else { +// // Download esbuild from npm in tmp and copy over +// console.log("npm installing esbuild binary"); +// await installNodeModuleInTempDirAndCopyToCurrent( +// "esbuild@0.17.19", +// "@esbuild", +// ); +// } +// } + +async function downloadEsbuildBinary(target) { + console.log("[info] Downloading pre-built esbuild binary"); + rimrafSync("out/node_modules/@esbuild"); + fs.mkdirSync(`out/node_modules/@esbuild/${target}/bin`, { recursive: true }); + fs.mkdirSync(`out/tmp`, { recursive: true }); + const downloadUrl = { + "darwin-arm64": + "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.19.tgz", + "linux-arm64": + "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz", + "win32-arm64": + "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz", + "linux-x64": + "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz", + "darwin-x64": + "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz", + "win32-x64": + "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz", + }[target]; + execCmdSync( + `curl -L -o out/tmp/esbuild.tgz ${downloadUrl}`, + ); + execCmdSync("cd out/tmp && tar -xvzf esbuild.tgz"); + // Copy the installed package back to the current directory + let tmpPath = "out/tmp/package/bin"; + let outPath = `out/node_modules/@esbuild/${target}/bin`; + if (target.startsWith("win")) { + tmpPath = 'out/tmp/package'; + outPath = `out/node_modules/@esbuild/${target}`; + } + + await new Promise((resolve, reject) => { + ncp( + path.join(tmpPath), + path.join(outPath), + { dereference: true }, + (error) => { + if (error) { + console.error( + `[error] Error copying esbuild package`, + error, + ); + reject(error); + } else { + resolve(); + } + }, + ); + }); + rimrafSync("out/tmp") +} + +async function downloadSqliteBinary(target) { + console.log("[info] Downloading pre-built sqlite3 binary"); + rimrafSync("../../core/node_modules/sqlite3/build"); + const downloadUrl = { + "darwin-arm64": + "https://github.com/TryGhost/node-sqlite3/releases/download/v5.1.7/sqlite3-v5.1.7-napi-v6-darwin-arm64.tar.gz", + "linux-arm64": + "https://github.com/TryGhost/node-sqlite3/releases/download/v5.1.7/sqlite3-v5.1.7-napi-v3-linux-arm64.tar.gz", + "win32-arm64": + "https://github.com/TryGhost/node-sqlite3/releases/download/v5.1.7/sqlite3-v5.1.7-napi-v6-win32-arm64.tar.gz", + "linux-x64": + "https://github.com/TryGhost/node-sqlite3/releases/download/v5.1.7/sqlite3-v5.1.7-napi-v3-linux-x64.tar.gz", + "darwin-x64": + "https://github.com/TryGhost/node-sqlite3/releases/download/v5.1.7/sqlite3-v5.1.7-napi-v6-darwin-x64.tar.gz", + "win32-x64": + "https://github.com/TryGhost/node-sqlite3/releases/download/v5.1.7/sqlite3-v5.1.7-napi-v3-win32-x64.tar.gz", + }[target]; + execCmdSync( + `curl -L -o ../../core/node_modules/sqlite3/build.tar.gz ${downloadUrl}`, + ); + execCmdSync("cd ../../core/node_modules/sqlite3 && tar -xvzf build.tar.gz"); + fs.unlinkSync("../../core/node_modules/sqlite3/build.tar.gz"); +} + +async function copySqliteBinary() { + process.chdir(path.join(continueDir, "extensions", "vscode")); + console.log("[info] Copying sqlite node binding from core"); + await new Promise((resolve, reject) => { + ncp( + path.join(__dirname, "../../../core/node_modules/sqlite3/build"), + path.join(__dirname, "../out/build"), + { dereference: true }, + (error) => { + if (error) { + console.warn("[error] Error copying sqlite3 files", error); + reject(error); + } else { + resolve(); + } + }, + ); + }); +} + +async function downloadRipgrepBinary(target) { + console.log("[info] Downloading pre-built ripgrep binary"); + rimrafSync("node_modules/@vscode/ripgrep/bin"); + fs.mkdirSync("node_modules/@vscode/ripgrep/bin", { recursive: true });4 + const downloadUrl = { + "darwin-arm64": + "https://github.com/microsoft/ripgrep-prebuilt/releases/download/v13.0.0-10/ripgrep-v13.0.0-10-aarch64-apple-darwin.tar.gz", + "linux-arm64": + "https://github.com/microsoft/ripgrep-prebuilt/releases/download/v13.0.0-10/ripgrep-v13.0.0-10-aarch64-unknown-linux-gnu.tar.gz", + "win32-arm64": + "https://github.com/microsoft/ripgrep-prebuilt/releases/download/v13.0.0-10/ripgrep-v13.0.0-10-aarch64-pc-windows-msvc.zip", + "linux-x64": + "https://github.com/microsoft/ripgrep-prebuilt/releases/download/v13.0.0-10/ripgrep-v13.0.0-10-x86_64-unknown-linux-musl.tar.gz", + "darwin-x64": + "https://github.com/microsoft/ripgrep-prebuilt/releases/download/v13.0.0-10/ripgrep-v13.0.0-10-x86_64-apple-darwin.tar.gz", + "win32-x64": + "https://github.com/microsoft/ripgrep-prebuilt/releases/download/v13.0.0-10/ripgrep-v13.0.0-10-x86_64-pc-windows-msvc.zip", + }[target]; + + + if(target.startsWith("win")) { + execCmdSync( + `curl -L -o node_modules/@vscode/ripgrep/bin/build.zip ${downloadUrl}`, + ); + execCmdSync("cd node_modules/@vscode/ripgrep/bin && unzip build.zip"); + fs.unlinkSync("node_modules/@vscode/ripgrep/bin/build.zip"); + } else { + execCmdSync( + `curl -L -o node_modules/@vscode/ripgrep/bin/build.tar.gz ${downloadUrl}`, + ); + execCmdSync("cd node_modules/@vscode/ripgrep/bin && tar -xvzf build.tar.gz"); + fs.unlinkSync("node_modules/@vscode/ripgrep/bin/build.tar.gz"); + } +} + +async function installNodeModuleInTempDirAndCopyToCurrent(packageName, toCopy) { + console.log(`Copying ${packageName} to ${toCopy}`); + // This is a way to install only one package without npm trying to install all the dependencies + // Create a temporary directory for installing the package + const adjustedName = packageName.replace(/@/g, "").replace("/", "-"); + + const tempDir = `/tmp/continue-node_modules-${adjustedName}`; + const currentDir = process.cwd(); + + // Remove the dir we will be copying to + rimrafSync(`node_modules/${toCopy}`); + + // Ensure the temporary directory exists + fs.mkdirSync(tempDir, { recursive: true }); + + try { + // Move to the temporary directory + process.chdir(tempDir); + + // Initialize a new package.json and install the package + execCmdSync(`npm init -y && npm i -f ${packageName} --no-save`); + + console.log( + `Contents of: ${packageName}`, + fs.readdirSync(path.join(tempDir, "node_modules", toCopy)), + ); + + // Without this it seems the file isn't completely written to disk + // Ideally we validate file integrity in the validation at the end + await new Promise((resolve) => setTimeout(resolve, 2000)); + + // Copy the installed package back to the current directory + await new Promise((resolve, reject) => { + ncp( + path.join(tempDir, "node_modules", toCopy), + path.join(currentDir, "node_modules", toCopy), + { dereference: true }, + (error) => { + if (error) { + console.error( + `[error] Error copying ${packageName} package`, + error, + ); + reject(error); + } else { + resolve(); + } + }, + ); + }); + } finally { + // Clean up the temporary directory + // rimrafSync(tempDir); + + // Return to the original directory + process.chdir(currentDir); + } +} + +module.exports = { + copyConfigSchema, + installNodeModules, + buildGui, + copyOnnxRuntimeFromNodeModules, + copyTreeSitterWasms, + copyTreeSitterTagQryFiles, + copyNodeModules, + downloadEsbuildBinary, + copySqliteBinary, + installNodeModuleInTempDirAndCopyToCurrent, + downloadSqliteBinary, + downloadRipgrepBinary, +}; diff --git a/extensions/vscode/scripts/versionCheck.js b/extensions/vscode/scripts/versionCheck.js new file mode 100644 index 000000000..6fc148f46 --- /dev/null +++ b/extensions/vscode/scripts/versionCheck.js @@ -0,0 +1,12 @@ +// Make sure odd-numbered version isn't published to main release. This will irreversibly cause us to bump the minor version by 2 +const fs = require("fs"); + +const packageJson = fs.readFileSync("package.json"); +const packageJsonJson = JSON.parse(packageJson); +const version = packageJsonJson.version; +const minor = parseInt(version.split(".")[1]); +if (minor % 2 !== 0) { + throw new Error( + "Do not publish odd-numbered version to main VS Code release!" + ); +} diff --git a/extensions/vscode/sort_changes.sh b/extensions/vscode/sort_changes.sh new file mode 100644 index 000000000..37e56c7b3 --- /dev/null +++ b/extensions/vscode/sort_changes.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +# Get the list of unstaged files +unstaged_files=$(git status --short | grep '^[ M]' | awk '{print $2}') + +# Get the modification times and sort them +for file in $unstaged_files; do + if [ -f "$file" ]; then + echo "$(stat -f %m "$file") $file" + fi +done | sort -n | awk '{print $2}' diff --git a/extensions/vscode/src/ContinueGUIWebviewViewProvider.ts b/extensions/vscode/src/ContinueGUIWebviewViewProvider.ts new file mode 100644 index 000000000..c713244b0 --- /dev/null +++ b/extensions/vscode/src/ContinueGUIWebviewViewProvider.ts @@ -0,0 +1,172 @@ +import type { FileEdit } from "core"; +import { ConfigHandler } from "core/config/ConfigHandler"; +import * as vscode from "vscode"; +import { getTheme } from "./util/getTheme"; +import { getExtensionVersion } from "./util/util"; +import { getExtensionUri, getNonce, getUniqueId } from "./util/vscode"; +import { VsCodeWebviewProtocol } from "./webviewProtocol"; + +export class ContinueGUIWebviewViewProvider + implements vscode.WebviewViewProvider +{ + public static readonly viewType = "continue.continueGUIView"; + public webviewProtocol: VsCodeWebviewProtocol; + + resolveWebviewView( + webviewView: vscode.WebviewView, + _context: vscode.WebviewViewResolveContext, + _token: vscode.CancellationToken, + ): void | Thenable { + this._webview = webviewView.webview; + webviewView.webview.html = this.getSidebarContent( + this.extensionContext, + webviewView, + ); + } + + private _webview?: vscode.Webview; + private _webviewView?: vscode.WebviewView; + + get isVisible() { + return this._webviewView?.visible; + } + + get webview() { + return this._webview; + } + + public resetWebviewProtocolWebview(): void { + if (this._webview) { + this.webviewProtocol.webview = this._webview; + } else { + console.warn("no webview found during reset"); + } + } + + sendMainUserInput(input: string) { + this.webview?.postMessage({ + type: "userInput", + input, + }); + } + + constructor( + private readonly configHandlerPromise: Promise, + private readonly windowId: string, + private readonly extensionContext: vscode.ExtensionContext, + ) { + this.webviewProtocol = new VsCodeWebviewProtocol( + (async () => { + const configHandler = await this.configHandlerPromise; + return configHandler.reloadConfig(); + }).bind(this), + ); + } + + getSidebarContent( + context: vscode.ExtensionContext | undefined, + panel: vscode.WebviewPanel | vscode.WebviewView, + page: string | undefined = undefined, + edits: FileEdit[] | undefined = undefined, + isFullScreen = false, + ): string { + const extensionUri = getExtensionUri(); + let scriptUri: string; + let styleMainUri: string; + const vscMediaUrl: string = panel.webview + .asWebviewUri(vscode.Uri.joinPath(extensionUri, "gui")) + .toString(); + + const inDevelopmentMode = + context?.extensionMode === vscode.ExtensionMode.Development; + if (!inDevelopmentMode) { + scriptUri = panel.webview + .asWebviewUri(vscode.Uri.joinPath(extensionUri, "gui/assets/index.js")) + .toString(); + styleMainUri = panel.webview + .asWebviewUri(vscode.Uri.joinPath(extensionUri, "gui/assets/index.css")) + .toString(); + } else { + scriptUri = "http://localhost:5173/src/main.tsx"; + styleMainUri = "http://localhost:5173/src/index.css"; + } + + panel.webview.options = { + enableScripts: true, + localResourceRoots: [ + vscode.Uri.joinPath(extensionUri, "gui"), + vscode.Uri.joinPath(extensionUri, "assets"), + ], + enableCommandUris: true, + portMapping: [ + { + webviewPort: 65433, + extensionHostPort: 65433, + }, + ], + }; + + const nonce = getNonce(); + + const currentTheme = getTheme(); + vscode.workspace.onDidChangeConfiguration((e) => { + if (e.affectsConfiguration("workbench.colorTheme")) { + // Send new theme to GUI to update embedded Monaco themes + this.webviewProtocol?.request("setTheme", { theme: getTheme() }); + } + }); + + this.webviewProtocol.webview = panel.webview; + + return ` + + + + + + + + Continue + + +
+ + ${ + inDevelopmentMode + ? `` + : "" + } + + + + + + + + + + + + + + + ${ + edits + ? `` + : "" + } + ${page ? `` : ""} + + `; + } +} diff --git a/extensions/vscode/src/activation/activate.ts b/extensions/vscode/src/activation/activate.ts index 2d0369db6..0f85656de 100644 --- a/extensions/vscode/src/activation/activate.ts +++ b/extensions/vscode/src/activation/activate.ts @@ -1,52 +1,28 @@ -import { getTsConfigPath, migrate } from "core/util/paths"; -import { Telemetry } from "core/util/posthog"; -import path from "path"; +import { getTsConfigPath, getContinueRcPath, migrate } from "core/util/paths"; +import { Telemetry } from "core/util/logging"; +import path from "node:path"; import * as vscode from "vscode"; -import { VsCodeExtension } from "../extension/vscodeExtension"; +import { VsCodeExtension } from "../extension/VsCodeExtension"; import registerQuickFixProvider from "../lang-server/codeActions"; +import { WorkOsAuthProvider } from "../stubs/WorkOsAuthProvider"; import { getExtensionVersion } from "../util/util"; import { getExtensionUri } from "../util/vscode"; +import { VsCodeContinueApi } from "./api"; import { setupInlineTips } from "./inlineTips"; -function showRefactorMigrationMessage( - extensionContext: vscode.ExtensionContext, -) { - // Only if the vscode setting continue.manuallyRunningSserver is true - const manuallyRunningServer = - vscode.workspace - .getConfiguration("ahrefs-continue") - .get("manuallyRunningServer") || false; - if ( - manuallyRunningServer && - extensionContext?.globalState.get( - "continue.showRefactorMigrationMessage", - ) !== false - ) { - vscode.window - .showInformationMessage( - "The Continue server protocol was recently updated in a way that requires the latest server version to work properly. Since you are manually running the server, please be sure to upgrade with `pip install --upgrade continuedev`.", - "Got it", - "Don't show again", - ) - .then((selection) => { - if (selection === "Don't show again") { - // Get the global state - extensionContext?.globalState.update( - "continue.showRefactorMigrationMessage", - false, - ); - } - }); - } -} - export async function activateExtension(context: vscode.ExtensionContext) { // Add necessary files getTsConfigPath(); + getContinueRcPath(); // Register commands and providers + registerQuickFixProvider(); setupInlineTips(context); - showRefactorMigrationMessage(context); + + // Register auth provider + const workOsAuthProvider = new WorkOsAuthProvider(context); + await workOsAuthProvider.initialize(); + context.subscriptions.push(workOsAuthProvider); const vscodeExtension = new VsCodeExtension(context); @@ -57,13 +33,32 @@ export async function activateExtension(context: vscode.ExtensionContext) { path.join(getExtensionUri().fsPath, "media", "welcome.md"), ), ); + + vscode.commands.executeCommand("ahrefs-continue.focusContinueInput"); }); // Load Continue configuration if (!context.globalState.get("hasBeenInstalled")) { context.globalState.update("hasBeenInstalled", true); - Telemetry.capture("install", { - extensionVersion: getExtensionVersion(), - }); + Telemetry.capture( + "install", + { + extensionVersion: getExtensionVersion(), + } + ); } + + const api = new VsCodeContinueApi(vscodeExtension); + const continuePublicApi = { + registerCustomContextProvider: api.registerCustomContextProvider.bind(api), + }; + + // 'export' public api-surface + // or entire extension for testing + return process.env.NODE_ENV === "test" + ? { + ...continuePublicApi, + extension: vscodeExtension, + } + : continuePublicApi; } diff --git a/extensions/vscode/src/activation/api.ts b/extensions/vscode/src/activation/api.ts new file mode 100644 index 000000000..9d8f5d0db --- /dev/null +++ b/extensions/vscode/src/activation/api.ts @@ -0,0 +1,10 @@ +import { IContextProvider } from "core"; +import { VsCodeExtension } from "../extension/VsCodeExtension"; + +export class VsCodeContinueApi { + constructor(private readonly vscodeExtension: VsCodeExtension) {} + + registerCustomContextProvider(contextProvider: IContextProvider) { + this.vscodeExtension.registerCustomContextProvider(contextProvider); + } +} diff --git a/extensions/vscode/src/activation/inlineTips.ts b/extensions/vscode/src/activation/inlineTips.ts index 72d2a416d..e0415dca7 100644 --- a/extensions/vscode/src/activation/inlineTips.ts +++ b/extensions/vscode/src/activation/inlineTips.ts @@ -1,9 +1,9 @@ import * as vscode from "vscode"; -import { getMetaKeyLabel } from "../util/util"; +import { getMetaKeyName } from "../util/util"; const inlineTipDecoration = vscode.window.createTextEditorDecorationType({ after: { - contentText: `${getMetaKeyLabel()} L to select code, ${getMetaKeyLabel()} I to edit`, + contentText: `Add to chat (${getMetaKeyName()}+L) | Edit highlighted code (${getMetaKeyName()}+I).`, color: "#888", margin: "0 0 0 6em", fontWeight: "bold", @@ -32,7 +32,7 @@ function handleSelectionChange(e: vscode.TextEditorSelectionChangeEvent) { const line = Math.max(0, selection.start.line - 1); const hoverMarkdown = new vscode.MarkdownString( - `Use ${getMetaKeyLabel()} L to select code, or ${getMetaKeyLabel()} I to edit highlighted code. Click [here](command:continue.hideInlineTip) if you don't want to see these inline suggestions.`, + `Click [here](command:continue.hideInlineTip) to hide these suggestions`, ); hoverMarkdown.isTrusted = true; hoverMarkdown.supportHtml = true; @@ -50,7 +50,7 @@ function handleSelectionChange(e: vscode.TextEditorSelectionChangeEvent) { const emptyFileTooltipDecoration = vscode.window.createTextEditorDecorationType( { after: { - contentText: `Use ${getMetaKeyLabel()} I to generate code`, + contentText: `Use ${getMetaKeyName()}+I to generate code`, color: "#888", margin: "2em 0 0 0", fontStyle: "italic", diff --git a/extensions/vscode/src/activation/languageClient.ts b/extensions/vscode/src/activation/languageClient.ts index 9e7e4ffa8..1999ddf33 100644 --- a/extensions/vscode/src/activation/languageClient.ts +++ b/extensions/vscode/src/activation/languageClient.ts @@ -2,15 +2,15 @@ * If we wanted to run or use another language server from our extension, this is how we would do it. */ -import * as path from "path"; -import { ExtensionContext, extensions, workspace } from "vscode"; +import * as path from "node:path"; +import { type ExtensionContext, extensions, workspace } from "vscode"; import { LanguageClient, - LanguageClientOptions, - ServerOptions, + type LanguageClientOptions, + type ServerOptions, State, - StateChangeEvent, + type StateChangeEvent, TransportKind, } from "vscode-languageclient/node"; import { getExtensionUri } from "../util/vscode"; @@ -18,7 +18,7 @@ import { getExtensionUri } from "../util/vscode"; let client: LanguageClient; export async function startLanguageClient(context: ExtensionContext) { - let pythonLS = startPythonLanguageServer(context); + const pythonLS = startPythonLanguageServer(context); pythonLS.start(); } @@ -27,7 +27,7 @@ export async function makeRequest(method: string, param: any): Promise { return; } else if (client.state === State.Starting) { return new Promise((resolve, reject) => { - let stateListener = client.onDidChangeState((e: StateChangeEvent) => { + const stateListener = client.onDidChangeState((e: StateChangeEvent) => { if (e.newState === State.Running) { stateListener.dispose(); resolve(client.sendRequest(method, param)); @@ -50,7 +50,7 @@ export function deactivate(): Thenable | undefined { } function startPythonLanguageServer(context: ExtensionContext): LanguageClient { - let extensionPath = getExtensionUri().fsPath; + const extensionPath = getExtensionUri().fsPath; const command = `cd ${path.join( extensionPath, "scripts", @@ -65,26 +65,26 @@ function startPythonLanguageServer(context: ExtensionContext): LanguageClient { configurationSection: "pyls", }, }; - return new LanguageClient(command, serverOptions, clientOptions); + return new LanguageClient(command, serverOptions, clientOptions) } async function startPylance(context: ExtensionContext) { - let pylance = extensions.getExtension("ms-python.vscode-pylance"); + const pylance = extensions.getExtension("ms-python.vscode-pylance"); await pylance?.activate(); if (!pylance) { return; } - let { path: lsPath } = await pylance.exports.languageServerFolder(); + const { path: lsPath } = await pylance.exports.languageServerFolder(); // The server is implemented in node - let serverModule = context.asAbsolutePath(lsPath); + const serverModule = context.asAbsolutePath(lsPath); // The debug options for the server // --inspect=6009: runs the server in Node's Inspector mode so VS Code can attach to the server for debugging - let debugOptions = { execArgv: ["--nolazy", "--inspect=6009"] }; + const debugOptions = { execArgv: ["--nolazy", "--inspect=6009"] }; // If the extension is launched in debug mode then the debug server options are used // Otherwise the run options are used - let serverOptions: ServerOptions = { + const serverOptions: ServerOptions = { run: { module: serverModule, transport: TransportKind.ipc }, debug: { module: serverModule, @@ -94,7 +94,7 @@ async function startPylance(context: ExtensionContext) { }; // Options to control the language client - let clientOptions: LanguageClientOptions = { + const clientOptions: LanguageClientOptions = { // Register the server for plain text documents documentSelector: [{ scheme: "file", language: "python" }], synchronize: { diff --git a/extensions/vscode/src/autocomplete/completionProvider.ts b/extensions/vscode/src/autocomplete/completionProvider.ts index 599ebc0a9..2b60d75fd 100644 --- a/extensions/vscode/src/autocomplete/completionProvider.ts +++ b/extensions/vscode/src/autocomplete/completionProvider.ts @@ -4,13 +4,18 @@ import { CompletionProvider, type AutocompleteInput, } from "core/autocomplete/completionProvider"; -import type { ConfigHandler } from "core/config/handler"; +import { IConfigHandler } from "core/config/IConfigHandler"; import { v4 as uuidv4 } from "uuid"; import * as vscode from "vscode"; import type { TabAutocompleteModel } from "../util/loadAutocompleteModel"; import { getDefinitionsFromLsp } from "./lsp"; import { RecentlyEditedTracker } from "./recentlyEdited"; -import { setupStatusBar, stopStatusBarLoading } from "./statusBar"; +import { + StatusBarStatus, + getStatusBarStatus, + setupStatusBar, + stopStatusBarLoading, +} from "./statusBar"; interface VsCodeCompletionInput { document: vscode.TextDocument; @@ -43,7 +48,7 @@ export class ContinueCompletionProvider private recentlyEditedTracker = new RecentlyEditedTracker(); constructor( - private readonly configHandler: ConfigHandler, + private readonly configHandler: IConfigHandler, private readonly ide: IDE, private readonly tabAutocompleteModel: TabAutocompleteModel, ) { @@ -74,9 +79,7 @@ export class ContinueCompletionProvider //@ts-ignore ): ProviderResult { const enableTabAutocomplete = - vscode.workspace - .getConfiguration("ahrefs-continue") - .get("enableTabAutocomplete") || false; + getStatusBarStatus() === StatusBarStatus.Enabled; if (token.isCancellationRequested || !enableTabAutocomplete) { return null; } @@ -196,7 +199,7 @@ export class ContinueCompletionProvider injectDetails, }; - setupStatusBar(true, true); + setupStatusBar(undefined, true); const outcome = await this.completionProvider.provideInlineCompletionItems( input, @@ -244,11 +247,11 @@ export class ContinueCompletionProvider startPos.translate(0, outcome.completion.length), ); const completionItem = new vscode.InlineCompletionItem( - outcome.completion, + outcome.completion, completionRange, - { - title: "Log Autocomplete Outcome", - command: "continue.logAutocompleteOutcome", + { + title: "Log Autocomplete Outcome", + command: "continue.logAutocompleteOutcome", arguments: [input.completionId, this.completionProvider], }, ); diff --git a/extensions/vscode/src/autocomplete/lsp.ts b/extensions/vscode/src/autocomplete/lsp.ts index 238debf2f..315545e32 100644 --- a/extensions/vscode/src/autocomplete/lsp.ts +++ b/extensions/vscode/src/autocomplete/lsp.ts @@ -35,7 +35,9 @@ function gotoInputKey(input: GotoInput) { const MAX_CACHE_SIZE = 50; const gotoCache = new Map(); -async function executeGotoProvider(input: GotoInput): Promise { +export async function executeGotoProvider( + input: GotoInput, +): Promise { const cacheKey = gotoInputKey(input); const cached = gotoCache.get(cacheKey); if (cached) { @@ -107,6 +109,40 @@ function findChildren( return matchingNodes; } +function isAbsolutePath(inputPath: string): boolean { + return path.isAbsolute(inputPath); + } + + function findFunctionDefinitions(node: Parser.SyntaxNode, functionName: string): Array { + const functions = []; + const queue = [node]; + + while (queue.length > 0) { + const currentNode = queue.shift(); + + if (currentNode) { + if (currentNode.type === 'function_declaration' || currentNode.type === 'method_definition') { + const nameNode = currentNode.childForFieldName('name'); + if (nameNode && nameNode.text === functionName) { + functions.push(currentNode); + } + else if (functionName === "*") { + functions.push(currentNode); + } + } + + for (let i = 0; i < currentNode.childCount; i++) { + const childNode = currentNode.child(i); + if (childNode) { + queue.push(childNode); + } + } + } + } + + return functions; + } + function findTypeIdentifiers(node: Parser.SyntaxNode): Parser.SyntaxNode[] { return findChildren( node, @@ -118,6 +154,42 @@ function findTypeIdentifiers(node: Parser.SyntaxNode): Parser.SyntaxNode[] { ); } +function findClosestMatchingFile(filepath: string): Promise { + return new Promise((resolve, reject) => { + const directory = path.dirname(filepath); + const targetFileName = path.basename(filepath); + + // Read the directory contents + fs.readdir(directory, (err, files) => { + if (err) { + console.error('Error reading directory:', err); + reject(err); + return; + } + + // Initialize variables to keep track of the closest match + let closestFile: string | null = null; + let closestDistance = Infinity; + + // Iterate over each file in the directory + files.forEach(file => { + const distance = levenshtein.get(targetFileName, file); + + if (distance < closestDistance) { + closestDistance = distance; + closestFile = file; + } + }); + + if (closestFile) { + resolve(path.resolve(directory, closestFile)); + } else { + resolve(undefined); + } + }); + }); + } + async function crawlTypes( rif: RangeInFile | RangeInFileWithContents, ide: IDE, @@ -194,76 +266,6 @@ async function crawlTypes( return results; } -function isAbsolutePath(inputPath: string): boolean { - return path.isAbsolute(inputPath); -} - -function findFunctionDefinitions(node: Parser.SyntaxNode, functionName: string): Array { - const functions = []; - const queue = [node]; - - while (queue.length > 0) { - const currentNode = queue.shift(); - - if (currentNode) { - if (currentNode.type === 'function_declaration' || currentNode.type === 'method_definition') { - const nameNode = currentNode.childForFieldName('name'); - if (nameNode && nameNode.text === functionName) { - functions.push(currentNode); - } - else if (functionName === "*") { - functions.push(currentNode); - } - } - - for (let i = 0; i < currentNode.childCount; i++) { - const childNode = currentNode.child(i); - if (childNode) { - queue.push(childNode); - } - } - } - } - - return functions; -} - -function findClosestMatchingFile(filepath: string): Promise { - return new Promise((resolve, reject) => { - const directory = path.dirname(filepath); - const targetFileName = path.basename(filepath); - - // Read the directory contents - fs.readdir(directory, (err, files) => { - if (err) { - console.error('Error reading directory:', err); - reject(err); - return; - } - - // Initialize variables to keep track of the closest match - let closestFile: string | null = null; - let closestDistance = Infinity; - - // Iterate over each file in the directory - files.forEach(file => { - const distance = levenshtein.get(targetFileName, file); - - if (distance < closestDistance) { - closestDistance = distance; - closestFile = file; - } - }); - - if (closestFile) { - resolve(path.resolve(directory, closestFile)); - } else { - resolve(undefined); - } - }); - }); -} - export async function getDefinitionsForNode( uri: string, node: Parser.SyntaxNode, @@ -488,4 +490,4 @@ export const getDefinitionsFromLsp: GetLspDefinitionsFunction = async ( console.warn("Error getting definitions from LSP: ", e); return []; } -}; \ No newline at end of file +}; diff --git a/extensions/vscode/src/autocomplete/recentlyEdited.ts b/extensions/vscode/src/autocomplete/recentlyEdited.ts index aec821c9b..3c8b4e95f 100644 --- a/extensions/vscode/src/autocomplete/recentlyEdited.ts +++ b/extensions/vscode/src/autocomplete/recentlyEdited.ts @@ -1,12 +1,12 @@ +import { getSymbolsForSnippet } from "core/autocomplete/ranking"; import { RecentlyEditedRange } from "core/autocomplete/recentlyEdited"; import { RangeInFileWithContents } from "core/commands/util"; import * as vscode from "vscode"; -interface VsCodeRecentlyEditedRange { - timestamp: number; +type VsCodeRecentlyEditedRange = { uri: vscode.Uri; range: vscode.Range; -} +} & Omit; interface VsCodeRecentlyEditedDocument { timestamp: number; @@ -46,21 +46,35 @@ export class RecentlyEditedTracker { }, 1000 * 15); } - private insertRange(editedRange: VsCodeRecentlyEditedRange): void { + private async insertRange( + editedRange: Omit, + ): Promise { // Check for overlap with any existing ranges for (let i = 0; i < this.recentlyEditedRanges.length; i++) { let range = this.recentlyEditedRanges[i]; if (range.range.intersection(editedRange.range)) { + const union = range.range.union(editedRange.range); + const contents = await this._getContentsForRange({ + ...range, + range: union, + }); range = { ...range, - range: range.range.union(editedRange.range), + range: union, + lines: contents.split("\n"), + symbols: getSymbolsForSnippet(contents), }; return; } } // Otherwise, just add the new and maintain max size - const newLength = this.recentlyEditedRanges.unshift(editedRange); + const contents = await this._getContentsForRange(editedRange); + const newLength = this.recentlyEditedRanges.unshift({ + ...editedRange, + lines: contents.split("\n"), + symbols: getSymbolsForSnippet(contents), + }); if (newLength >= RecentlyEditedTracker.maxRecentlyEditedRanges) { this.recentlyEditedRanges = this.recentlyEditedRanges.slice( 0, @@ -93,40 +107,25 @@ export class RecentlyEditedTracker { ); } - public async getRecentlyEditedRanges(): Promise { - const results = await Promise.all( - this.recentlyEditedRanges.map(async (entry) => { - try { - const contents = await vscode.workspace.fs - .readFile(entry.uri) - .then((content) => - content - .toString() - .split("\n") - .slice(entry.range.start.line, entry.range.end.line + 1) - .join("\n"), - ); - return { - timestamp: entry.timestamp, - filepath: entry.uri.fsPath, - contents, - range: { - start: { - line: entry.range.start.line, - character: entry.range.start.character, - }, - end: { - line: entry.range.end.line, - character: entry.range.end.character, - }, - }, - }; - } catch (e) { - return null; - } - }), + private async _getContentsForRange( + entry: Omit, + ): Promise { + return vscode.workspace.fs.readFile(entry.uri).then((content) => + content + .toString() + .split("\n") + .slice(entry.range.start.line, entry.range.end.line + 1) + .join("\n"), ); - return results.filter((result) => result !== null) as any; + } + + public async getRecentlyEditedRanges(): Promise { + return this.recentlyEditedRanges.map((entry) => { + return { + ...entry, + filepath: entry.uri.fsPath, + }; + }); } public async getRecentlyEditedDocuments(): Promise< diff --git a/extensions/vscode/src/autocomplete/statusBar.ts b/extensions/vscode/src/autocomplete/statusBar.ts index 20f1a79d0..1a08dd624 100644 --- a/extensions/vscode/src/autocomplete/statusBar.ts +++ b/extensions/vscode/src/autocomplete/statusBar.ts @@ -1,22 +1,79 @@ import * as vscode from "vscode"; +import { Battery } from "../util/battery"; +import { + CONTINUE_WORKSPACE_KEY, + getContinueWorkspaceConfig, +} from "../util/workspaceConfig"; -const statusBarItemText = (enabled: boolean | undefined) => - enabled ? "$(check) Ahrefs-Continue" : "$(circle-slash) Ahrefs-Continue"; +export enum StatusBarStatus { + Disabled, + Enabled, + Paused, +} + +export const quickPickStatusText = (status: StatusBarStatus | undefined) => { + switch (status) { + case undefined: + case StatusBarStatus.Disabled: + return "$(circle-slash) Disable autocomplete"; + case StatusBarStatus.Enabled: + return "$(check) Enable autocomplete"; + case StatusBarStatus.Paused: + return "$(debug-pause) Pause autocomplete"; + } +}; + +export const getStatusBarStatusFromQuickPickItemLabel = ( + label: string, +): StatusBarStatus | undefined => { + switch (label) { + case "$(circle-slash) Disable autocomplete": + return StatusBarStatus.Disabled; + case "$(check) Enable autocomplete": + return StatusBarStatus.Enabled; + case "$(debug-pause) Pause autocomplete": + return StatusBarStatus.Paused; + default: + return undefined; + } +}; + +const statusBarItemText = (status: StatusBarStatus | undefined) => { + switch (status) { + case undefined: + case StatusBarStatus.Disabled: + return "$(circle-slash) Ahrefs-Continue"; + case StatusBarStatus.Enabled: + return "$(check) Ahrefs-Continue"; + case StatusBarStatus.Paused: + return "$(debug-pause) Ahrefs-Continue"; + } +}; -const statusBarItemTooltip = (enabled: boolean | undefined) => - enabled ? "Tab autocomplete is enabled" : "Click to enable tab autocomplete"; +const statusBarItemTooltip = (status: StatusBarStatus | undefined) => { + switch (status) { + case undefined: + case StatusBarStatus.Disabled: + return "Click to enable tab autocomplete"; + case StatusBarStatus.Enabled: + return "Tab autocomplete is enabled"; + case StatusBarStatus.Paused: + return "Tab autocomplete is paused"; + } +}; +let statusBarStatus: StatusBarStatus | undefined = undefined; let statusBarItem: vscode.StatusBarItem | undefined = undefined; let statusBarFalseTimeout: NodeJS.Timeout | undefined = undefined; export function stopStatusBarLoading() { statusBarFalseTimeout = setTimeout(() => { - setupStatusBar(true, false); + setupStatusBar(StatusBarStatus.Enabled, false); }, 100); } export function setupStatusBar( - enabled: boolean | undefined, + status: StatusBarStatus | undefined, loading?: boolean, ) { if (loading !== false) { @@ -33,17 +90,47 @@ export function setupStatusBar( statusBarItem.text = loading ? "$(loading~spin) Ahrefs-Continue" - : statusBarItemText(enabled); - statusBarItem.tooltip = statusBarItemTooltip(enabled); - statusBarItem.command = "ahrefs-continue.toggleTabAutocompleteEnabled"; + : statusBarItemText(status); + statusBarItem.tooltip = statusBarItemTooltip(status ?? statusBarStatus); + statusBarItem.command = "ahrefs-continue.openTabAutocompleteConfigMenu"; statusBarItem.show(); + if (status !== undefined) { + statusBarStatus = status; + } vscode.workspace.onDidChangeConfiguration((event) => { - if (event.affectsConfiguration("ahrefs-continue")) { - const config = vscode.workspace.getConfiguration("ahrefs-continue"); - const enabled = config.get("enableTabAutocomplete"); - setupStatusBar(enabled); + if (event.affectsConfiguration(CONTINUE_WORKSPACE_KEY)) { + const enabled = getContinueWorkspaceConfig().get( + "enableTabAutocomplete", + ); + if (enabled && statusBarStatus === StatusBarStatus.Paused) { + return; + } + setupStatusBar( + enabled ? StatusBarStatus.Enabled : StatusBarStatus.Disabled, + ); + } + }); +} + +export function getStatusBarStatus(): StatusBarStatus | undefined { + return statusBarStatus; +} + +export function monitorBatteryChanges(battery: Battery): vscode.Disposable { + return battery.onChangeAC((acConnected: boolean) => { + const config = vscode.workspace.getConfiguration("continue"); + const enabled = config.get("enableTabAutocomplete"); + if (!!enabled) { + const pauseOnBattery = config.get( + "pauseTabAutocompleteOnBattery", + ); + setupStatusBar( + acConnected || !pauseOnBattery + ? StatusBarStatus.Enabled + : StatusBarStatus.Paused, + ); } }); } diff --git a/extensions/vscode/src/commands.ts b/extensions/vscode/src/commands.ts index 2e36876e6..b97683f3b 100644 --- a/extensions/vscode/src/commands.ts +++ b/extensions/vscode/src/commands.ts @@ -1,36 +1,99 @@ -import * as fs from "fs"; -import * as os from "os"; -import * as path from "path"; +/* eslint-disable @typescript-eslint/naming-convention */ +import * as fs from "node:fs"; +import * as os from "node:os"; +import * as path from "node:path"; import * as vscode from "vscode"; -import { IDE, ContinueSDK } from "core"; -import { AutocompleteOutcome } from "core/autocomplete/completionProvider"; -import { ConfigHandler } from "core/config/handler"; -import { fetchwithRequestOptions } from "core/util/fetchWithOptions"; -import { logDevData } from "core/util/devdata"; -import { Telemetry } from "core/util/posthog"; +import { ContextMenuConfig, IDE } from "core"; +import { CompletionProvider } from "core/autocomplete/completionProvider"; +import { IConfigHandler } from "core/config/IConfigHandler"; +import { ContinueServerClient } from "core/continueServer/stubs/client"; +import { GlobalContext } from "core/util/GlobalContext"; +import { getConfigJsonPath, getDevDataFilePath } from "core/util/paths"; +import { Telemetry } from "core/util/logging"; +import readLastLines from "read-last-lines"; +import { + StatusBarStatus, + getStatusBarStatus, + getStatusBarStatusFromQuickPickItemLabel, + quickPickStatusText, + setupStatusBar, +} from "./autocomplete/statusBar"; import { ContinueGUIWebviewViewProvider } from "./debugPanel"; import { DiffManager } from "./diff/horizontal"; import { VerticalPerLineDiffManager } from "./diff/verticalPerLine/manager"; -import { getPlatform } from "./util/util"; -import { VsCodeWebviewProtocol } from "./webviewProtocol"; +import { QuickEdit } from "./quickEdit/QuickEdit"; +import { Battery } from "./util/battery"; +import type { VsCodeWebviewProtocol } from "./webviewProtocol"; + +let fullScreenPanel: vscode.WebviewPanel | undefined; function getFullScreenTab() { const tabs = vscode.window.tabGroups.all.flatMap((tabGroup) => tabGroup.tabs); - return tabs.find( - (tab) => (tab.input as any)?.viewType?.endsWith("ahrefs-continue.ahrefs-continueGUIView"), + return tabs.find((tab) => + (tab.input as any)?.viewType?.endsWith("ahrefs-continue.ahrefs-continueGUIView"), ); } -function addHighlightedCodeToContext( +type TelemetryCaptureParams = Parameters; + +/** + * Helper method to add the `isCommandEvent` to all telemetry captures + */ +function captureCommandTelemetry( + commandName: TelemetryCaptureParams[0], + properties: TelemetryCaptureParams[1] = {}, +) { + Telemetry.capture(commandName, { isCommandEvent: true, ...properties }); +} + +function addCodeToContextFromRange( + range: vscode.Range, + webviewProtocol: VsCodeWebviewProtocol, + prompt?: string, +) { + const document = vscode.window.activeTextEditor?.document; + + if (!document) { + return; + } + + const rangeInFileWithContents = { + filepath: document.uri.fsPath, + contents: document.getText(range), + range: { + start: { + line: range.start.line, + character: range.start.character, + }, + end: { + line: range.end.line, + character: range.end.character, + }, + }, + }; + + webviewProtocol?.request("highlightedCode", { + rangeInFileWithContents, + prompt, + // Assume `true` since range selection is currently only used for quick actions/fixes + shouldRun: true, + }); +} + +async function addHighlightedCodeToContext( edit: boolean, webviewProtocol: VsCodeWebviewProtocol | undefined, ) { const editor = vscode.window.activeTextEditor; if (editor) { const selection = editor.selection; - if (selection.isEmpty) return; - const range = new vscode.Range(selection.start, selection.end); + if (selection.isEmpty) { + return; + } + // adjust starting position to include indentation + const start = new vscode.Position(selection.start.line, 0); + const range = new vscode.Range(start, selection.end); const contents = editor.document.getText(range); const rangeInFileWithContents = { filepath: editor.document.uri.fsPath, @@ -101,9 +164,11 @@ const commandsMap: ( ide: IDE, extensionContext: vscode.ExtensionContext, sidebar: ContinueGUIWebviewViewProvider, - configHandler: ConfigHandler, + configHandler: IConfigHandler, diffManager: DiffManager, verticalDiffManager: VerticalPerLineDiffManager, + continueServerClientPromise: Promise, + battery: Battery, ) => { [command: string]: (...args: any) => any } = ( ide, extensionContext, @@ -111,420 +176,530 @@ const commandsMap: ( configHandler, diffManager, verticalDiffManager, -) => ({ - "ahrefs-continue.acceptDiff": async (newFilepath?: string | vscode.Uri) => { - if (newFilepath instanceof vscode.Uri) { - newFilepath = newFilepath.fsPath; - } - verticalDiffManager.clearForFilepath(newFilepath, true); - await diffManager.acceptDiff(newFilepath); - }, - "ahrefs-continue.rejectDiff": async (newFilepath?: string | vscode.Uri) => { - if (newFilepath instanceof vscode.Uri) { - newFilepath = newFilepath.fsPath; - } - verticalDiffManager.clearForFilepath(newFilepath, false); - await diffManager.rejectDiff(newFilepath); - }, - "ahrefs-continue.acceptVerticalDiffBlock": (filepath?: string, index?: number) => { - verticalDiffManager.acceptRejectVerticalDiffBlock(true, filepath, index); - }, - "ahrefs-continue.rejectVerticalDiffBlock": (filepath?: string, index?: number) => { - verticalDiffManager.acceptRejectVerticalDiffBlock(false, filepath, index); - }, - "ahrefs-continue.quickFix": async (message: string, code: string, edit: boolean) => { - sidebar.webviewProtocol?.request("newSessionWithPrompt", { - prompt: `${edit ? "/edit " : "" - }${code}\n\nHow do I fix this problem in the above code?: ${message}`, - }); - - if (!edit) { - vscode.commands.executeCommand("ahrefs-continue.continueGUIView.focus"); - } - }, - "ahrefs-continue.focusContinueInput": async () => { - if (!getFullScreenTab()) { - vscode.commands.executeCommand("ahrefs-continue.continueGUIView.focus"); - } - sidebar.webviewProtocol?.request("focusContinueInput", undefined); - addHighlightedCodeToContext(false, sidebar.webviewProtocol); - }, - "ahrefs-continue.focusContinueInputWithoutClear": async () => { - if (!getFullScreenTab()) { - vscode.commands.executeCommand("ahrefs-continue.continueGUIView.focus"); - } - sidebar.webviewProtocol?.request( - "focusContinueInputWithoutClear", - undefined, - ); - addHighlightedCodeToContext(true, sidebar.webviewProtocol); - }, - "ahrefs-continue.toggleAuxiliaryBar": () => { - vscode.commands.executeCommand("workbench.action.toggleAuxiliaryBar"); - }, - "ahrefs-continue.selectCommandModel": async () => { + continueServerClientPromise, + battery, +) => { + /** + * Streams an inline edit to the vertical diff manager. + * + * This function retrieves the configuration, determines the appropriate model title, + * increments the FTC count, and then streams an edit to the + * vertical diff manager. + * + * @param promptName - The key for the prompt in the context menu configuration. + * @param fallbackPrompt - The prompt to use if the configured prompt is not available. + * @param [onlyOneInsertion] - Optional. If true, only one insertion will be made. + * @param [range] - Optional. The range to edit if provided. + * @returns + */ + async function streamInlineEdit( + promptName: keyof ContextMenuConfig, + fallbackPrompt: string, + onlyOneInsertion?: boolean, + range?: vscode.Range, + ) { const config = await configHandler.loadConfig(); - const commandModels = config.commandModels.map(m => m.title || m.model) - const pick = await vscode.window.showQuickPick(commandModels, { - placeHolder: 'Select Command Execution Model (e.g. Ahrefs-Continue: Quick Edit)', - onDidSelectItem: item => vscode.window.showInformationMessage(`Selected: ${item}`) - }); - if (pick) { - const config = vscode.workspace.getConfiguration(); - await config.update('ahrefs-continue.commandModel', pick, vscode.ConfigurationTarget.Global); - vscode.window.showInformationMessage(`commandModel has been set to ${pick}`); - } - }, - "ahrefs-continue.selectCompletionModel": async () => { - const config = await configHandler.loadConfig(); - const commandModels = config.tabAutocompleteModels.map(m => m.title || m.model) - const pick = await vscode.window.showQuickPick(commandModels, { - placeHolder: 'Select model for code completion', - onDidSelectItem: item => vscode.window.showInformationMessage(`Selected: ${item}`) - }); + const modelTitle = + config.experimental?.modelRoles?.inlineEdit ?? + (await sidebar.webviewProtocol.request( + "getDefaultModelTitle", + undefined, + )); - if (pick) { - const config = vscode.workspace.getConfiguration(); - await config.update('ahrefs-continue.completionModel', pick, vscode.ConfigurationTarget.Global); - vscode.window.showInformationMessage(`completionModel has been set to ${pick}`); - } - }, - "ahrefs-continue.quickEdit": async () => { - const selectionEmpty = vscode.window.activeTextEditor?.selection.isEmpty; + sidebar.webviewProtocol.request("incrementFtc", undefined); - const editor = vscode.window.activeTextEditor; - const existingHandler = verticalDiffManager.getHandlerForFile( - editor?.document.uri.fsPath ?? "", + await verticalDiffManager.streamEdit( + config.experimental?.contextMenuPrompts?.[promptName] ?? fallbackPrompt, + modelTitle, + extensionContext, + onlyOneInsertion, + undefined, + range, ); - const previousInput = existingHandler?.input; + } - const config = await configHandler.loadConfig(); - const ws_config = vscode.workspace.getConfiguration(); - let commandModelTitle = ws_config.get('ahrefs-continue.commandModel', ''); + const historyUpEventEmitter = new vscode.EventEmitter(); + const historyDownEventEmitter = new vscode.EventEmitter(); + const quickEdit = new QuickEdit( + verticalDiffManager, + configHandler, + sidebar.webviewProtocol, + ide, + extensionContext, + historyUpEventEmitter.event, + historyDownEventEmitter.event, + ); - if (commandModelTitle === "") { - commandModelTitle = config.commandModels[0].title ?? config.commandModels[0].model; - } + return { + "ahrefs-continue.interruptGeneration": () => { + extensionContext.globalState.update("interruptGeneration", true); + }, + "ahrefs-continue.acceptDiff": async (newFilepath?: string | vscode.Uri) => { + captureCommandTelemetry("acceptDiff"); + if (newFilepath instanceof vscode.Uri) { + newFilepath = newFilepath.fsPath; + } + verticalDiffManager.clearForFilepath(newFilepath, true); + await diffManager.acceptDiff(newFilepath); + }, + "ahrefs-continue.rejectDiff": async (newFilepath?: string | vscode.Uri) => { + captureCommandTelemetry("rejectDiff"); - const quickPickItems = - config.contextProviders - ?.filter((provider) => provider.description.type === "normal") - .map((provider) => { - return { - label: provider.description.displayTitle, - description: provider.description.title, - detail: provider.description.description, - }; - }) || []; - - const addContextMsg = quickPickItems.length - ? " (or press enter to add context first)" - : ""; - const textInputOptions: vscode.InputBoxOptions = { - placeHolder: selectionEmpty - ? `Type instructions to generate code${addContextMsg}` - : `Describe how to edit the highlighted code${addContextMsg}`, - title: `${getPlatform() === "mac" ? "Cmd" : "Ctrl"}+I`, - prompt: `[${commandModelTitle}]`, - }; - if (previousInput) { - textInputOptions.value = previousInput + ", "; - textInputOptions.valueSelection = [ - textInputOptions.value.length, - textInputOptions.value.length, - ]; - } + if (newFilepath instanceof vscode.Uri) { + newFilepath = newFilepath.fsPath; + } + verticalDiffManager.clearForFilepath(newFilepath, false); + await diffManager.rejectDiff(newFilepath); + }, + "ahrefs-continue.acceptVerticalDiffBlock": (filepath?: string, index?: number) => { + captureCommandTelemetry("acceptVerticalDiffBlock"); + verticalDiffManager.acceptRejectVerticalDiffBlock(true, filepath, index); + }, + "ahrefs-continue.rejectVerticalDiffBlock": (filepath?: string, index?: number) => { + captureCommandTelemetry("rejectVerticalDiffBlock"); + verticalDiffManager.acceptRejectVerticalDiffBlock(false, filepath, index); + }, + "ahrefs-continue.quickFix": async ( + range: vscode.Range, + diagnosticMessage: string, + ) => { + captureCommandTelemetry("quickFix"); - let text = await vscode.window.showInputBox(textInputOptions); + const prompt = `How do I fix the following problem in the above code?: ${diagnosticMessage}`; - if (text === undefined) { - return; - } + addCodeToContextFromRange(range, sidebar.webviewProtocol, prompt); - if (text.length > 0 || quickPickItems.length === 0) { - await verticalDiffManager.streamEdit(text, commandModelTitle); - } else { - // Pick context first - const selectedProviders = await vscode.window.showQuickPick( - quickPickItems, - { - title: "Add Context", - canPickMany: true, - }, + vscode.commands.executeCommand("ahrefs-continue.ahrefs-continueGUIView.focus"); + }, + "ahrefs-continue.defaultQuickActionDocstring": async (range: vscode.Range) => { + captureCommandTelemetry("defaultQuickActionDocstring"); + + streamInlineEdit( + "docstring", + "Write a docstring for this code. Do not change anything about the code itself.", + true, + range, ); + }, + "ahrefs-continue.defaultQuickActionExplain": async (range: vscode.Range) => { + captureCommandTelemetry("defaultQuickActionExplain"); + + const prompt = + `Explain the above code in a few sentences without ` + + `going into detail on specific methods.`; - let text = await vscode.window.showInputBox(textInputOptions); - if (text) { - const llm = await configHandler.llmFromTitle(); + addCodeToContextFromRange(range, sidebar.webviewProtocol, prompt); + + vscode.commands.executeCommand("ahrefs-continue.ahrefs-continueGUIView.focus"); + }, + "ahrefs-continue.customQuickActionSendToChat": async ( + prompt: string, + range: vscode.Range, + ) => { + captureCommandTelemetry("customQuickActionSendToChat"); + + addCodeToContextFromRange(range, sidebar.webviewProtocol, prompt); + + vscode.commands.executeCommand("ahrefs-continue.ahrefs-continueGUIView.focus"); + }, + "ahrefs-continue.customQuickActionStreamInlineEdit": async ( + prompt: string, + range: vscode.Range, + ) => { + captureCommandTelemetry("customQuickActionStreamInlineEdit"); + + streamInlineEdit("docstring", prompt, false, range); + }, + "ahrefs-continue.toggleAuxiliaryBar": () => { + vscode.commands.executeCommand("workbench.action.toggleAuxiliaryBar"); + }, + "ahrefs-continue.focusContinueInput": async () => { + const fullScreenTab = getFullScreenTab(); + if (!fullScreenTab) { + // focus sidebar + vscode.commands.executeCommand("ahrefs-continue.ahrefs-continueGUIView.focus"); + } else { + // focus fullscreen + fullScreenPanel?.reveal(); + } + sidebar.webviewProtocol?.request("focusContinueInput", undefined); + await addHighlightedCodeToContext(false, sidebar.webviewProtocol); + }, + "ahrefs-continue.focusContinueInputWithoutClear": async () => { + if (!getFullScreenTab()) { + vscode.commands.executeCommand("ahrefs-continue.ahrefs-continueGUIView.focus"); + } + sidebar.webviewProtocol?.request( + "focusContinueInputWithoutClear", + undefined, + ); + await addHighlightedCodeToContext(true, sidebar.webviewProtocol); + }, + "ahrefs-continue.selectCommandModel": async () => { const config = await configHandler.loadConfig(); - const context = ( - await Promise.all( - selectedProviders?.map((providerTitle) => { - const provider = config.contextProviders?.find( - (provider) => - provider.description.title === providerTitle.description, - ); - if (!provider) { - return []; - } - - return provider.getContextItems("", { - embeddingsProvider: config.embeddingsProvider, - reranker: config.reranker, - ide, - llm, - fullInput: text || "", - selectedCode: [], - fetch: (url, init) => - fetchwithRequestOptions(url, init, config.requestOptions), - }); - }) || [], - ) - ).flat(); - - text = - context.map((item) => item.content).join("\n\n") + - "\n\n---\n\n" + - text; - - await verticalDiffManager.streamEdit(text, commandModelTitle); + const commandModels = config.commandModels.map(m => m.title || m.model) + const pick = await vscode.window.showQuickPick(commandModels, { + placeHolder: 'Select Command Execution Model (e.g. Ahrefs-Continue: Quick Edit)', + onDidSelectItem: item => vscode.window.showInformationMessage(`Selected: ${item}`) + }); + + if (pick) { + const config = vscode.workspace.getConfiguration(); + await config.update('ahrefs-continue.commandModel', pick, vscode.ConfigurationTarget.Global); + vscode.window.showInformationMessage(`commandModel has been set to ${pick}`); + } + }, + "ahrefs-continue.quickEdit": (injectedPrompt?: string) => { + captureCommandTelemetry("quickEdit"); + quickEdit.run(injectedPrompt); + }, + "ahrefs-continue.writeCommentsForCode": async () => { + captureCommandTelemetry("writeCommentsForCode"); + + streamInlineEdit( + "comment", + "Write comments for this code. Do not change anything about the code itself.", + ); + }, + "ahrefs-continue.writeDocstringForCode": async () => { + captureCommandTelemetry("writeDocstringForCode"); + + streamInlineEdit( + "docstring", + "Write a docstring for this code. Do not change anything about the code itself.", + true, + ); + }, + "ahrefs-continue.fixCode": async () => { + captureCommandTelemetry("fixCode"); + + streamInlineEdit( + "fix", + "Fix this code. If it is already 100% correct, simply rewrite the code.", + ); + }, + "ahrefs-continue.optimizeCode": async () => { + captureCommandTelemetry("optimizeCode"); + streamInlineEdit("optimize", "Optimize this code"); + }, + "ahrefs-continue.fixGrammar": async () => { + captureCommandTelemetry("fixGrammar"); + streamInlineEdit( + "fixGrammar", + "If there are any grammar or spelling mistakes in this writing, fix them. Do not make other large changes to the writing.", + ); + }, + "ahrefs-continue.viewLogs": async () => { + captureCommandTelemetry("viewLogs"); + + // Open ~/.ahrefs-continue/ahrefs-continue.log + const logFile = path.join(os.homedir(), ".ahrefs-continue", "ahrefs-continue.log"); + // Make sure the file/directory exist + if (!fs.existsSync(logFile)) { + fs.mkdirSync(path.dirname(logFile), { recursive: true }); + fs.writeFileSync(logFile, ""); } - } - }, - - // "continue.writeCommentsForCode": async () => { - // await verticalDiffManager.streamEdit( - // (await configHandler.loadConfig()).experimental?.contextMenuPrompts - // ?.comment || - // "Write comments for this code. Do not change anything about the code itself.", - // await sidebar.webviewProtocol.request("getDefaultModelTitle", undefined), - // ); - // }, - // "continue.writeDocstringForCode": async () => { - // await verticalDiffManager.streamEdit( - // (await configHandler.loadConfig()).experimental?.contextMenuPrompts - // ?.docstring || - // "Write a docstring for this code. Do not change anything about the code itself.", - // await sidebar.webviewProtocol.request("getDefaultModelTitle", undefined), - // ); - // }, - // "continue.fixCode": async () => { - // await verticalDiffManager.streamEdit( - // (await configHandler.loadConfig()).experimental?.contextMenuPrompts - // ?.fix || "Fix this code", - // await sidebar.webviewProtocol.request("getDefaultModelTitle", undefined), - // ); - // }, - // "continue.optimizeCode": async () => { - // await verticalDiffManager.streamEdit( - // (await configHandler.loadConfig()).experimental?.contextMenuPrompts - // ?.optimize || "Optimize this code", - // await sidebar.webviewProtocol.request("getDefaultModelTitle", undefined), - // ); - // }, - // "continue.fixGrammar": async () => { - // await verticalDiffManager.streamEdit( - // (await configHandler.loadConfig()).experimental?.contextMenuPrompts - // ?.fixGrammar || - // "If there are any grammar or spelling mistakes in this writing, fix them. Do not make other large changes to the writing.", - // await sidebar.webviewProtocol.request("getDefaultModelTitle", undefined), - // ); - // }, - - "ahrefs-continue.viewLogs": async () => { - // Open ~/.continue/continue.log - const logFile = path.join(os.homedir(), ".ahrefs-continue", "ahrefs-continue.log"); - // Make sure the file/directory exist - if (!fs.existsSync(logFile)) { - fs.mkdirSync(path.dirname(logFile), { recursive: true }); - fs.writeFileSync(logFile, ""); - } - const uri = vscode.Uri.file(logFile); - await vscode.window.showTextDocument(uri); - }, - "ahrefs-continue.debugTerminal": async () => { - const terminalContents = await ide.getTerminalContents(); - vscode.commands.executeCommand("ahrefs-continue.continueGUIView.focus"); - sidebar.webviewProtocol?.request("userInput", { - input: `I got the following error, can you please help explain how to fix it?\n\n${terminalContents.trim()}`, - }); - }, - "ahrefs-continue.hideInlineTip": () => { - vscode.workspace - .getConfiguration("ahrefs-continue") - .update("showInlineTip", false, vscode.ConfigurationTarget.Global); - }, - - // Commands without keyboard shortcuts - "ahrefs-continue.addModel": () => { - vscode.commands.executeCommand("ahrefs-continue.continueGUIView.focus"); - sidebar.webviewProtocol?.request("addModel", undefined); - }, - "ahrefs-continue.openSettingsUI": () => { - vscode.commands.executeCommand("ahrefs-continue.continueGUIView.focus"); - sidebar.webviewProtocol?.request("openSettings", undefined); - }, - "ahrefs-continue.sendMainUserInput": (text: string) => { - sidebar.webviewProtocol?.request("userInput", { - input: text, - }); - }, - "ahrefs-continue.saveChatSession": () => { - sidebar.webviewProtocol.request("sendSessionChatHistory", undefined); - }, - "ahrefs-continue.selectRange": (startLine: number, endLine: number) => { - if (!vscode.window.activeTextEditor) { - return; - } - vscode.window.activeTextEditor.selection = new vscode.Selection( - startLine, - 0, - endLine, - 0, - ); - }, - "ahrefs-continue.foldAndUnfold": ( - foldSelectionLines: number[], - unfoldSelectionLines: number[], - ) => { - vscode.commands.executeCommand("editor.unfold", { - selectionLines: unfoldSelectionLines, - }); - vscode.commands.executeCommand("editor.fold", { - selectionLines: foldSelectionLines, - }); - }, - "ahrefs-continue.sendToTerminal": (text: string) => { - ide.runCommand(text); - }, - "ahrefs-continue.newSession": () => { - sidebar.webviewProtocol?.request("newSession", undefined); - }, - "ahrefs-continue.viewHistory": () => { - sidebar.webviewProtocol?.request("viewHistory", undefined); - }, - "ahrefs-continue.toggleFullScreen": () => { - // Check if full screen is already open by checking open tabs - const fullScreenTab = getFullScreenTab(); - - // Check if the active editor is the Continue GUI View - if (fullScreenTab && fullScreenTab.isActive) { - //Full screen open and focused - close it - vscode.commands.executeCommand("workbench.action.closeActiveEditor"); //this will trigger the onDidDispose listener below - return; - } + const uri = vscode.Uri.file(logFile); + await vscode.window.showTextDocument(uri); + }, + "ahrefs-continue.debugTerminal": async () => { + captureCommandTelemetry("debugTerminal"); + + const terminalContents = await ide.getTerminalContents(); + + vscode.commands.executeCommand("ahrefs-continue.ahrefs-continueGUIView.focus"); + + sidebar.webviewProtocol?.request("userInput", { + input: `I got the following error, can you please help explain how to fix it?\n\n${terminalContents.trim()}`, + }); + }, + "ahrefs-continue.hideInlineTip": () => { + vscode.workspace + .getConfiguration("continue") + .update("showInlineTip", false, vscode.ConfigurationTarget.Global); + }, + + // Commands without keyboard shortcuts + "ahrefs-continue.addModel": () => { + captureCommandTelemetry("addModel"); - if (fullScreenTab) { - //Full screen open, but not focused - focus it - // Focus the tab - const openOptions = { - preserveFocus: true, - preview: fullScreenTab.isPreview, - viewColumn: fullScreenTab.group.viewColumn, - }; - - vscode.commands.executeCommand( - "vscode.open", - (fullScreenTab.input as any).uri, - openOptions, + vscode.commands.executeCommand("ahrefs-continue.ahrefs-continueGUIView.focus"); + sidebar.webviewProtocol?.request("addModel", undefined); + }, + "ahrefs-continue.openSettingsUI": () => { + vscode.commands.executeCommand("ahrefs-continue.ahrefs-continueGUIView.focus"); + sidebar.webviewProtocol?.request("openSettings", undefined); + }, + "ahrefs-continue.sendMainUserInput": (text: string) => { + sidebar.webviewProtocol?.request("userInput", { + input: text, + }); + }, + "ahrefs-continue.selectRange": (startLine: number, endLine: number) => { + if (!vscode.window.activeTextEditor) { + return; + } + vscode.window.activeTextEditor.selection = new vscode.Selection( + startLine, + 0, + endLine, + 0, ); - return; - } + }, + "ahrefs-continue.foldAndUnfold": ( + foldSelectionLines: number[], + unfoldSelectionLines: number[], + ) => { + vscode.commands.executeCommand("editor.unfold", { + selectionLines: unfoldSelectionLines, + }); + vscode.commands.executeCommand("editor.fold", { + selectionLines: foldSelectionLines, + }); + }, + "ahrefs-continue.sendToTerminal": (text: string) => { + captureCommandTelemetry("sendToTerminal"); + ide.runCommand(text); + }, + "ahrefs-continue.newSession": () => { + sidebar.webviewProtocol?.request("newSession", undefined); + }, + "ahrefs-continue.viewHistory": () => { + sidebar.webviewProtocol?.request("viewHistory", undefined); + }, + "ahrefs-continue.toggleFullScreen": () => { + // Check if full screen is already open by checking open tabs + const fullScreenTab = getFullScreenTab(); + + // Check if the active editor is the Ahrefs-Continue GUI View + if (fullScreenTab && fullScreenTab.isActive) { + //Full screen open and focused - close it + vscode.commands.executeCommand("workbench.action.closeActiveEditor"); //this will trigger the onDidDispose listener below + return; + } - //Full screen not open - open it + if (fullScreenTab && fullScreenPanel) { + //Full screen open, but not focused - focus it + fullScreenPanel.reveal(); + return; + } - // Close the sidebar.webviews - // vscode.commands.executeCommand("workbench.action.closeSidebar"); - vscode.commands.executeCommand("workbench.action.closeAuxiliaryBar"); - // vscode.commands.executeCommand("workbench.action.toggleZenMode"); + //Full screen not open - open it + captureCommandTelemetry("openFullScreen"); - //create the full screen panel - let panel = vscode.window.createWebviewPanel( - "ahrefs-continue.continueGUIView", - "Ahrefs-Continue", - vscode.ViewColumn.One, - ); + // Close the sidebar.webviews + // vscode.commands.executeCommand("workbench.action.closeSidebar"); + vscode.commands.executeCommand("workbench.action.closeAuxiliaryBar"); + // vscode.commands.executeCommand("workbench.action.toggleZenMode"); - //Add content to the panel - panel.webview.html = sidebar.getSidebarContent( - extensionContext, - panel, - ide, - configHandler, - verticalDiffManager, - undefined, - undefined, - true, - ); + //create the full screen panel + let panel = vscode.window.createWebviewPanel( + "ahrefs-continue.ahrefs-continueGUIView", + "Ahrefs-Continue", + vscode.ViewColumn.One, + { + retainContextWhenHidden: true, + }, + ); + fullScreenPanel = panel; + + //Add content to the panel + panel.webview.html = sidebar.getSidebarContent( + extensionContext, + panel, + undefined, + undefined, + true, + ); - //When panel closes, reset the webview and focus - panel.onDidDispose( - () => { - sidebar.resetWebviewProtocolWebview(); - vscode.commands.executeCommand("ahrefs-continue.focusContinueInput"); - }, - null, - extensionContext.subscriptions, - ); - }, - "ahrefs-continue.selectFilesAsContext": ( - firstUri: vscode.Uri, - uris: vscode.Uri[], - ) => { - vscode.commands.executeCommand("ahrefs-continue.continueGUIView.focus"); - - for (const uri of uris) { - addEntireFileToContext(uri, false, sidebar.webviewProtocol); - } - }, - "ahrefs-continue.updateAllReferences": (filepath: vscode.Uri) => { - // Get the cursor position in the editor - const editor = vscode.window.activeTextEditor; - if (!editor) { - return; - } - const position = editor.selection.active; - sidebar.sendMainUserInput( - `/references ${filepath.fsPath} ${position.line} ${position.character}`, - ); - }, - "ahrefs-continue.logAutocompleteOutcome": ( - outcome: AutocompleteOutcome, - logRejectionTimeout: NodeJS.Timeout, - ) => { - clearTimeout(logRejectionTimeout); - outcome.accepted = true; - logDevData("autocomplete", outcome); - Telemetry.capture("autocomplete", { - accepted: outcome.accepted, - modelName: outcome.modelName, - modelProvider: outcome.modelProvider, - time: outcome.time, - cacheHit: outcome.cacheHit, - }); - }, - "ahrefs-continue.toggleTabAutocompleteEnabled": () => { - const config = vscode.workspace.getConfiguration("ahrefs-continue"); - const enabled = config.get("enableTabAutocomplete"); - config.update( - "enableTabAutocomplete", - !enabled, - vscode.ConfigurationTarget.Global, - ); - }, -}); + //When panel closes, reset the webview and focus + panel.onDidDispose( + () => { + sidebar.resetWebviewProtocolWebview(); + vscode.commands.executeCommand("ahrefs-continue.focusContinueInput"); + }, + null, + extensionContext.subscriptions, + ); + }, + "ahrefs-continue.openConfigJson": () => { + ide.openFile(getConfigJsonPath()); + }, + "ahrefs-continue.selectFilesAsContext": ( + firstUri: vscode.Uri, + uris: vscode.Uri[], + ) => { + vscode.commands.executeCommand("ahrefs-continue.ahrefs-continueGUIView.focus"); + + for (const uri of uris) { + addEntireFileToContext(uri, false, sidebar.webviewProtocol); + } + }, + "ahrefs-continue.logAutocompleteOutcome": ( + completionId: string, + completionProvider: CompletionProvider, + ) => { + completionProvider.accept(completionId); + }, + "ahrefs-continue.toggleTabAutocompleteEnabled": () => { + captureCommandTelemetry("toggleTabAutocompleteEnabled"); + + const config = vscode.workspace.getConfiguration("continue"); + const enabled = config.get("enableTabAutocomplete"); + const pauseOnBattery = config.get( + "pauseTabAutocompleteOnBattery", + ); + if (!pauseOnBattery || battery.isACConnected()) { + config.update( + "enableTabAutocomplete", + !enabled, + vscode.ConfigurationTarget.Global, + ); + } else { + if (enabled) { + const paused = getStatusBarStatus() === StatusBarStatus.Paused; + if (paused) { + setupStatusBar(StatusBarStatus.Enabled); + } else { + config.update( + "enableTabAutocomplete", + false, + vscode.ConfigurationTarget.Global, + ); + } + } else { + setupStatusBar(StatusBarStatus.Paused); + config.update( + "enableTabAutocomplete", + true, + vscode.ConfigurationTarget.Global, + ); + } + } + }, + "ahrefs-continue.openTabAutocompleteConfigMenu": async () => { + captureCommandTelemetry("openTabAutocompleteConfigMenu"); + + const config = vscode.workspace.getConfiguration("continue"); + const quickPick = vscode.window.createQuickPick(); + const selected = new GlobalContext().get("selectedTabAutocompleteModel"); + const autocompleteModelTitles = (( + await configHandler.loadConfig() + ).tabAutocompleteModels + ?.map((model) => model.title) + .filter((t) => t !== undefined) || []) as string[]; + + // Toggle between Disabled, Paused, and Enabled + const pauseOnBattery = + config.get("pauseTabAutocompleteOnBattery") && + !battery.isACConnected(); + const currentStatus = getStatusBarStatus(); + + let targetStatus: StatusBarStatus | undefined; + if (pauseOnBattery) { + // Cycle from Disabled -> Paused -> Enabled + targetStatus = + currentStatus === StatusBarStatus.Paused + ? StatusBarStatus.Enabled + : currentStatus === StatusBarStatus.Disabled + ? StatusBarStatus.Paused + : StatusBarStatus.Disabled; + } else { + // Toggle between Disabled and Enabled + targetStatus = + currentStatus === StatusBarStatus.Disabled + ? StatusBarStatus.Enabled + : StatusBarStatus.Disabled; + } + quickPick.items = [ + { + label: quickPickStatusText(targetStatus), + }, + { + label: "$(gear) Configure autocomplete options", + }, + { + label: "$(feedback) Give feedback", + }, + { + kind: vscode.QuickPickItemKind.Separator, + label: "Switch model", + }, + ...autocompleteModelTitles.map((title) => ({ + label: title === selected ? `$(check) ${title}` : title, + description: title === selected ? "Currently selected" : undefined, + })), + ]; + quickPick.onDidAccept(() => { + const selectedOption = quickPick.selectedItems[0].label; + const targetStatus = + getStatusBarStatusFromQuickPickItemLabel(selectedOption); + + if (targetStatus !== undefined) { + setupStatusBar(targetStatus); + config.update( + "enableTabAutocomplete", + targetStatus === StatusBarStatus.Enabled, + vscode.ConfigurationTarget.Global, + ); + } else if ( + selectedOption === "$(gear) Configure autocomplete options" + ) { + ide.openFile(getConfigJsonPath()); + } else if (autocompleteModelTitles.includes(selectedOption)) { + new GlobalContext().update( + "selectedTabAutocompleteModel", + selectedOption, + ); + configHandler.reloadConfig(); + } else if (selectedOption === "$(feedback) Give feedback") { + vscode.commands.executeCommand("ahrefs-continue.giveAutocompleteFeedback"); + } + quickPick.dispose(); + }); + quickPick.show(); + }, + "ahrefs-continue.giveAutocompleteFeedback": async () => { + const feedback = await vscode.window.showInputBox({ + ignoreFocusOut: true, + prompt: + "Please share what went wrong with the last completion. The details of the completion as well as this message will be sent to the Ahrefs-Continue team in order to improve.", + }); + if (feedback) { + const client = await continueServerClientPromise; + const completionsPath = getDevDataFilePath("autocomplete"); + + const lastLines = await readLastLines.read(completionsPath, 2); + client.sendFeedback(feedback, lastLines); + } + }, + "ahrefs-continue.quickEditHistoryUp": async () => { + captureCommandTelemetry("quickEditHistoryUp"); + historyUpEventEmitter.fire(); + }, + "ahrefs-continue.quickEditHistoryDown": async () => { + captureCommandTelemetry("quickEditHistoryDown"); + historyDownEventEmitter.fire(); + }, + "ahrefs-continue.saveChatSession": () => { + sidebar.webviewProtocol.request("sendSessionChatHistory", undefined); + }, + }; +}; export function registerAllCommands( context: vscode.ExtensionContext, ide: IDE, extensionContext: vscode.ExtensionContext, sidebar: ContinueGUIWebviewViewProvider, - configHandler: ConfigHandler, + configHandler: IConfigHandler, diffManager: DiffManager, verticalDiffManager: VerticalPerLineDiffManager, + continueServerClientPromise: Promise, + battery: Battery, ) { for (const [command, callback] of Object.entries( commandsMap( @@ -534,10 +709,12 @@ export function registerAllCommands( configHandler, diffManager, verticalDiffManager, + continueServerClientPromise, + battery, ), )) { context.subscriptions.push( vscode.commands.registerCommand(command, callback), ); } -} +} \ No newline at end of file diff --git a/extensions/vscode/src/debug/debug.ts b/extensions/vscode/src/debug/debug.ts index 15c374846..d4f12ea5a 100644 --- a/extensions/vscode/src/debug/debug.ts +++ b/extensions/vscode/src/debug/debug.ts @@ -1,13 +1,13 @@ import * as vscode from "vscode"; -import { VsCodeWebviewProtocol } from "../webviewProtocol"; -import { VsCodeIde } from "../ideProtocol"; +import type { VsCodeIde } from "../ideProtocol"; +import type { VsCodeWebviewProtocol } from "../webviewProtocol"; export const threadStopped: Map = new Map(); // Arrays has better perf but you probably won't have thousands of threads in a single debug session export function registerDebugTracker( webviewProtocol: VsCodeWebviewProtocol, - ide: VsCodeIde + ide: VsCodeIde, ) { vscode.debug.registerDebugAdapterTrackerFactory("*", { createDebugAdapterTracker(_session: vscode.DebugSession) { @@ -28,33 +28,33 @@ export function registerDebugTracker( updateThreads(); }, async onDidSendMessage(message: any) { - if (message.type == "event") { + if (message.type === "event") { switch (message.event) { case "continued": case "stopped": if (typeof message.body.threadId !== "undefined") threadStopped.set( Number(message.body.threadId), - message.event == "stopped" + message.event === "stopped", ); if (message.body.allThreadsStopped) threadStopped.forEach((_, key) => - threadStopped.set(key, true) + threadStopped.set(key, true), ); if (message.body.allThreadsContinued) threadStopped.forEach((_, key) => - threadStopped.set(key, false) + threadStopped.set(key, false), ); updateThreads(); break; case "thread": - if (message.body.reason == "exited") + if (message.body.reason === "exited") threadStopped.delete(Number(message.body.threadId)); - else if (message.body.reason == "started") + else if (message.body.reason === "started") threadStopped.set(Number(message.body.threadId), false); // somehow the threadId does not respect the specification in my vscodium (debugging C++) // expecting a number but got a string instead diff --git a/extensions/vscode/src/debugPanel.ts b/extensions/vscode/src/debugPanel.ts index 67f7d13d2..4d65b2ef1 100644 --- a/extensions/vscode/src/debugPanel.ts +++ b/extensions/vscode/src/debugPanel.ts @@ -1,8 +1,8 @@ -import { FileEdit, IDE } from "core"; -import { ConfigHandler } from "core/config/handler"; +import type { FileEdit } from "core"; +import { IConfigHandler } from "core/config/IConfigHandler"; import * as vscode from "vscode"; -import { VerticalPerLineDiffManager } from "./diff/verticalPerLine/manager"; import { getTheme } from "./util/getTheme"; +import { getExtensionVersion } from "./util/util"; import { getExtensionUri, getNonce, getUniqueId } from "./util/vscode"; import { VsCodeWebviewProtocol } from "./webviewProtocol"; @@ -21,9 +21,6 @@ export class ContinueGUIWebviewViewProvider webviewView.webview.html = this.getSidebarContent( this.extensionContext, webviewView, - this.ide, - this.configHandler, - this.verticalDiffManager, ); } @@ -34,10 +31,10 @@ export class ContinueGUIWebviewViewProvider } public resetWebviewProtocolWebview(): void { - if (this._webview) { + if (this._webview) { this.webviewProtocol.webview = this._webview; - } else{ - console.warn("no webview found during reset") + } else { + console.warn("no webview found during reset"); } } @@ -49,33 +46,29 @@ export class ContinueGUIWebviewViewProvider } constructor( - private readonly configHandler: ConfigHandler, - private readonly ide: IDE, + private readonly configHandlerPromise: Promise, private readonly windowId: string, private readonly extensionContext: vscode.ExtensionContext, - private readonly verticalDiffManager: VerticalPerLineDiffManager, ) { this.webviewProtocol = new VsCodeWebviewProtocol( - ide, - configHandler, - verticalDiffManager, + (async () => { + const configHandler = await this.configHandlerPromise; + return configHandler.reloadConfig(); + }).bind(this), ); } getSidebarContent( context: vscode.ExtensionContext | undefined, panel: vscode.WebviewPanel | vscode.WebviewView, - ide: IDE, - configHandler: ConfigHandler, - verticalDiffManager: VerticalPerLineDiffManager, page: string | undefined = undefined, edits: FileEdit[] | undefined = undefined, - isFullScreen: boolean = false, + isFullScreen = false, ): string { - let extensionUri = getExtensionUri(); + const extensionUri = getExtensionUri(); let scriptUri: string; let styleMainUri: string; - let vscMediaUrl: string = panel.webview + const vscMediaUrl: string = panel.webview .asWebviewUri(vscode.Uri.joinPath(extensionUri, "gui")) .toString(); @@ -147,7 +140,8 @@ export class ContinueGUIWebviewViewProvider - + + @@ -170,4 +164,4 @@ export class ContinueGUIWebviewViewProvider `; } -} +} \ No newline at end of file diff --git a/extensions/vscode/src/decorations.ts b/extensions/vscode/src/decorations.ts index 746d4b599..9ac6a49ca 100644 --- a/extensions/vscode/src/decorations.ts +++ b/extensions/vscode/src/decorations.ts @@ -1,4 +1,4 @@ -import * as path from "path"; +import * as path from "node:path"; import * as vscode from "vscode"; import { uriFromFilePath } from "./util/vscode"; @@ -20,9 +20,9 @@ export function showAnswerInTextEditor( vscode.TextEditorRevealType.InCenter, ); - let decorationType = vscode.window.createTextEditorDecorationType({ + const decorationType = vscode.window.createTextEditorDecorationType({ after: { - contentText: answer + "\n", + contentText: `${answer}\n`, color: "rgb(0, 255, 0, 0.8)", }, backgroundColor: "rgb(0, 255, 0, 0.2)", @@ -112,7 +112,7 @@ class DecorationManager { } deleteDecoration(key: DecorationKey) { - let decorationTypes = this.editorToDecorations.get(key.editorUri); + const decorationTypes = this.editorToDecorations.get(key.editorUri); if (!decorationTypes) { return; } @@ -128,12 +128,12 @@ class DecorationManager { } deleteAllDecorations(editorUri: string) { - let decorationTypes = this.editorToDecorations.get(editorUri)?.keys(); + const decorationTypes = this.editorToDecorations.get(editorUri)?.keys(); if (!decorationTypes) { return; } this.editorToDecorations.delete(editorUri); - for (let decorationType of decorationTypes) { + for (const decorationType of decorationTypes) { this.rerenderDecorations(editorUri, decorationType); } } @@ -156,24 +156,6 @@ function constructBaseKey( }; } -const gutterSpinnerDecorationType = - vscode.window.createTextEditorDecorationType({ - gutterIconPath: vscode.Uri.file( - path.join(__dirname, "..", "media", "spinner.gif"), - ), - gutterIconSize: "contain", - }); - -export function showGutterSpinner( - editor: vscode.TextEditor, - lineno: number, -): DecorationKey { - const key = constructBaseKey(editor, lineno, gutterSpinnerDecorationType); - decorationManager.addDecoration(key); - - return key; -} - export function showLintMessage( editor: vscode.TextEditor, lineno: number, @@ -198,7 +180,7 @@ export function showLintMessage( export function highlightCode( editor: vscode.TextEditor, range: vscode.Range, - removeOnClick: boolean = true, + removeOnClick = true, ): DecorationKey { const decorationType = vscode.window.createTextEditorDecorationType({ backgroundColor: "rgb(255, 255, 0, 0.1)", diff --git a/extensions/vscode/src/diff/horizontal.ts b/extensions/vscode/src/diff/horizontal.ts index fcb77bded..6313f0bfa 100644 --- a/extensions/vscode/src/diff/horizontal.ts +++ b/extensions/vscode/src/diff/horizontal.ts @@ -1,11 +1,11 @@ import { devDataPath } from "core/util/paths"; -import * as fs from "fs"; -import * as os from "os"; -import * as path from "path"; +import * as fs from "node:fs"; +import * as os from "node:os"; +import * as path from "node:path"; import * as vscode from "vscode"; import { getMetaKeyLabel, getPlatform } from "../util/util"; import { uriFromFilePath } from "../util/vscode"; -import { VsCodeWebviewProtocol } from "../webviewProtocol"; +import type { VsCodeWebviewProtocol } from "../webviewProtocol"; interface DiffInfo { originalFilepath: string; @@ -64,10 +64,13 @@ export class DiffManager { } private escapeFilepath(filepath: string): string { - return filepath.replace(/\//g, "_f_").replace(/\\/g, "_b_"); + return filepath + .replace(/\//g, "_f_") + .replace(/\\/g, "_b_") + .replace(/:/g, "_c_"); } - private remoteTmpDir: string = "/tmp/continue"; + private remoteTmpDir = "/tmp/continue"; private getNewFilepath(originalFilepath: string): string { if (vscode.env.remoteName) { // If we're in a remote, use the remote's temp directory @@ -121,7 +124,7 @@ export class DiffManager { ) { vscode.window .showInformationMessage( - `Accept (${getMetaKeyLabel()}⇧↩) or reject (${getMetaKeyLabel()}⇧⌫) at the top of the file.`, + `Accept (${getMetaKeyLabel()}⇧⏎) or reject (${getMetaKeyLabel()}⇧⌫) at the top of the file.`, "Got it", "Don't show again", ) @@ -199,7 +202,7 @@ export class DiffManager { return newFilepath; } - cleanUpDiff(diffInfo: DiffInfo, hideEditor: boolean = true) { + cleanUpDiff(diffInfo: DiffInfo, hideEditor = true) { // Close the editor, remove the record, delete the file if (hideEditor && diffInfo.editor) { try { diff --git a/extensions/vscode/src/diff/verticalPerCharacter.ts b/extensions/vscode/src/diff/verticalPerCharacter.ts index 2dd7730ee..da63fa041 100644 --- a/extensions/vscode/src/diff/verticalPerCharacter.ts +++ b/extensions/vscode/src/diff/verticalPerCharacter.ts @@ -39,7 +39,7 @@ async function* streamDiffEvents( completionStream: AsyncGenerator, oldCode: string, ): AsyncGenerator { - let remainingLines = oldCode.split("\n"); + const remainingLines = oldCode.split("\n"); let i = 0; let oldLine = remainingLines.shift(); let newLine = ""; diff --git a/extensions/vscode/src/diff/verticalPerLine/decorations.ts b/extensions/vscode/src/diff/verticalPerLine/decorations.ts index fa6e70baf..276145207 100644 --- a/extensions/vscode/src/diff/verticalPerLine/decorations.ts +++ b/extensions/vscode/src/diff/verticalPerLine/decorations.ts @@ -2,15 +2,21 @@ import * as vscode from "vscode"; export const redDecorationType = vscode.window.createTextEditorDecorationType({ isWholeLine: true, - backgroundColor: "rgba(255, 0, 0, 0.2)", - color: "rgb(200, 200, 200)", + backgroundColor: { id: "diffEditor.removedLineBackground" }, + color: "#808080", + outlineWidth: "1px", + outlineStyle: "solid", + outlineColor: { id: "diffEditor.removedTextBorder" }, rangeBehavior: vscode.DecorationRangeBehavior.ClosedClosed, }); export const greenDecorationType = vscode.window.createTextEditorDecorationType( { isWholeLine: true, - backgroundColor: "rgba(0, 255, 0, 0.2)", + backgroundColor: { id: "diffEditor.insertedLineBackground" }, + outlineWidth: "1px", + outlineStyle: "solid", + outlineColor: { id: "diffEditor.insertedTextBorder" }, rangeBehavior: vscode.DecorationRangeBehavior.ClosedClosed, }, ); diff --git a/extensions/vscode/src/diff/verticalPerLine/handler.ts b/extensions/vscode/src/diff/verticalPerLine/handler.ts index f6973e054..6a7175c7c 100644 --- a/extensions/vscode/src/diff/verticalPerLine/handler.ts +++ b/extensions/vscode/src/diff/verticalPerLine/handler.ts @@ -1,4 +1,4 @@ -import { DiffLine } from "core"; +import type { DiffLine } from "core"; import * as vscode from "vscode"; import { DecorationTypeRangeManager, @@ -7,14 +7,14 @@ import { indexDecorationType, redDecorationType, } from "./decorations"; -import { VerticalDiffCodeLens } from "./manager"; +import type { VerticalDiffCodeLens } from "./manager"; -export class VerticalPerLineDiffHandler { +export class VerticalPerLineDiffHandler implements vscode.Disposable { private editor: vscode.TextEditor; private startLine: number; private endLine: number; private currentLineIndex: number; - private cancelled: boolean = false; + private cancelled = false; public get range(): vscode.Range { const startLine = Math.min(this.startLine, this.endLine); @@ -22,7 +22,7 @@ export class VerticalPerLineDiffHandler { return new vscode.Range(startLine, 0, endLine, Number.MAX_SAFE_INTEGER); } - private newLinesAdded: number = 0; + private newLinesAdded = 0; public input?: string; @@ -56,7 +56,7 @@ export class VerticalPerLineDiffHandler { this.editor, ); - vscode.window.onDidChangeActiveTextEditor((editor) => { + const disposable = vscode.window.onDidChangeActiveTextEditor((editor) => { // When we switch away and back to this editor, need to re-draw decorations if (editor?.document.uri.fsPath === this.filepath) { this.editor = editor; @@ -69,6 +69,7 @@ export class VerticalPerLineDiffHandler { this.queueDiffLine(undefined); } }); + this.disposables.push(disposable); } private get filepath() { @@ -148,10 +149,10 @@ export class VerticalPerLineDiffHandler { lineCount, this.editor.document.lineAt(lineCount - 1).text.length, ), - "\n" + text, + `\n${text}`, ); } else { - editBuilder.insert(new vscode.Position(index, 0), text + "\n"); + editBuilder.insert(new vscode.Position(index, 0), `${text}\n`); } }, { @@ -167,7 +168,7 @@ export class VerticalPerLineDiffHandler { this.newLinesAdded++; } - private async deleteLinesAt(index: number, numLines: number = 1) { + private async deleteLinesAt(index: number, numLines = 1) { const startLine = new vscode.Position(index, 0); await this.editor.edit( (editBuilder) => { @@ -208,10 +209,26 @@ export class VerticalPerLineDiffHandler { this.editor.setDecorations(indexDecorationType, []); } - clear(accept: boolean) { + public getLineDeltaBeforeLine(line: number) { + // Returns the number of lines removed from a file when the diff currently active is closed + let totalLineDelta = 0; + for (const range of this.greenDecorationManager + .getRanges() + .sort((a, b) => a.start.line - b.start.line)) { + if (range.start.line > line) { + break; + } + + totalLineDelta -= range.end.line - range.start.line + 1; + } + + return totalLineDelta; + } + + async clear(accept: boolean) { vscode.commands.executeCommand( "setContext", - "continue.streamingDiff", + "ahrefs-continue.streamingDiff", false, ); const rangesToDelete = accept @@ -224,7 +241,7 @@ export class VerticalPerLineDiffHandler { this.editorToVerticalDiffCodeLens.delete(this.filepath); - this.editor.edit( + await this.editor.edit( (editBuilder) => { for (const range of rangesToDelete) { editBuilder.delete( @@ -243,6 +260,13 @@ export class VerticalPerLineDiffHandler { this.cancelled = true; this.refreshCodeLens(); + this.dispose(); + } + + disposables: vscode.Disposable[] = []; + + dispose() { + this.disposables.forEach((disposable) => disposable.dispose()); } get isCancelled() { @@ -300,15 +324,19 @@ export class VerticalPerLineDiffHandler { } } - async run(diffLineGenerator: AsyncGenerator) { + async run(diffLineGenerator: AsyncGenerator, context?: vscode.ExtensionContext) { try { // As an indicator of loading this.updateIndexLineDecorations(); - for await (let diffLine of diffLineGenerator) { + for await (const diffLine of diffLineGenerator) { if (this.isCancelled) { return; } + if (context && context.globalState.get("interruptGeneration", false)) { + context.globalState.update("interruptGeneration", false); + break; + } await this.queueDiffLine(diffLine); } @@ -361,6 +389,11 @@ export class VerticalPerLineDiffHandler { this.redDecorationManager.shiftDownAfterLine(startLine, offset); this.greenDecorationManager.shiftDownAfterLine(startLine, offset); + // Shift the codelens objects + this.shiftCodeLensObjects(startLine, offset); + } + + private shiftCodeLensObjects(startLine: number, offset: number) { // Shift the codelens objects const blocks = this.editorToVerticalDiffCodeLens @@ -376,4 +409,23 @@ export class VerticalPerLineDiffHandler { this.refreshCodeLens(); } -} + + public updateLineDelta( + filepath: string, + startLine: number, + lineDelta: number, + ) { + // Retrieve the diff blocks for the given file + const blocks = this.editorToVerticalDiffCodeLens.get(filepath); + if (!blocks) { + return; + } + + //update decorations + this.redDecorationManager.shiftDownAfterLine(startLine, lineDelta); + this.greenDecorationManager.shiftDownAfterLine(startLine, lineDelta); + + //update code lens + this.shiftCodeLensObjects(startLine, lineDelta); + } +} \ No newline at end of file diff --git a/extensions/vscode/src/diff/verticalPerLine/manager.ts b/extensions/vscode/src/diff/verticalPerLine/manager.ts index 96356dc25..57e56f213 100644 --- a/extensions/vscode/src/diff/verticalPerLine/manager.ts +++ b/extensions/vscode/src/diff/verticalPerLine/manager.ts @@ -1,4 +1,4 @@ -import { ConfigHandler } from "core/config/handler"; +import { IConfigHandler } from "core/config/IConfigHandler"; import { pruneLinesFromBottom, pruneLinesFromTop } from "core/llm/countTokens"; import { getMarkdownLanguageTagForFile } from "core/util"; import { streamDiffLines } from "core/util/verticalEdit"; @@ -12,14 +12,18 @@ export interface VerticalDiffCodeLens { } export class VerticalPerLineDiffManager { - public refreshCodeLens: () => void = () => { }; + public refreshCodeLens: () => void = () => {}; private filepathToHandler: Map = new Map(); filepathToCodeLens: Map = new Map(); - constructor(private readonly configHandler: ConfigHandler) { } + private userChangeListener: vscode.Disposable | undefined; + + constructor(private readonly configHandler: IConfigHandler) { + this.userChangeListener = undefined; + } createVerticalPerLineDiffHandler( filepath: string, @@ -49,34 +53,56 @@ export class VerticalPerLineDiffManager { } } - getOrCreateVerticalPerLineDiffHandler( - filepath: string, - startLine: number, - endLine: number, - ) { - if (this.filepathToHandler.has(filepath)) { - return this.filepathToHandler.get(filepath)!; - } else { - const editor = vscode.window.activeTextEditor; // TODO - if (editor && editor.document.uri.fsPath === filepath) { - const handler = new VerticalPerLineDiffHandler( - startLine, - endLine, - editor, - this.filepathToCodeLens, - this.clearForFilepath.bind(this), - this.refreshCodeLens, - ); - this.filepathToHandler.set(filepath, handler); - return handler; - } else { - return undefined; - } + getHandlerForFile(filepath: string) { + return this.filepathToHandler.get(filepath); + } + + // Creates a listener for document changes by user. + private enableDocumentChangeListener(): vscode.Disposable | undefined { + if (this.userChangeListener) { + //Only create one listener per file + return; } + + this.userChangeListener = vscode.workspace.onDidChangeTextDocument( + (event) => { + // Check if there is an active handler for the affected file + const filepath = event.document.uri.fsPath; + const handler = this.getHandlerForFile(filepath); + if (handler) { + // If there is an active diff for that file, handle the document change + this.handleDocumentChange(event, handler); + } + }, + ); } - getHandlerForFile(filepath: string) { - return this.filepathToHandler.get(filepath); + // Listener for user doc changes is disabled during updates to the text document by continue + public disableDocumentChangeListener() { + if (this.userChangeListener) { + this.userChangeListener.dispose(); + this.userChangeListener = undefined; + } + } + + private handleDocumentChange( + event: vscode.TextDocumentChangeEvent, + handler: VerticalPerLineDiffHandler, + ) { + // Loop through each change in the event + event.contentChanges.forEach((change) => { + // Calculate the number of lines added or removed + const linesAdded = change.text.split("\n").length - 1; + const linesDeleted = change.range.end.line - change.range.start.line; + const lineDelta = linesAdded - linesDeleted; + + // Update the diff handler with the new line delta + handler.updateLineDelta( + event.document.uri.fsPath, + change.range.start.line, + lineDelta, + ); + }); } clearForFilepath(filepath: string | undefined, accept: boolean) { @@ -94,10 +120,12 @@ export class VerticalPerLineDiffManager { this.filepathToHandler.delete(filepath); } - vscode.commands.executeCommand("setContext", "continue.diffVisible", false); + this.disableDocumentChangeListener(); + + vscode.commands.executeCommand("setContext", "ahrefs-continue.diffVisible", false); } - acceptRejectVerticalDiffBlock( + async acceptRejectVerticalDiffBlock( accept: boolean, filepath?: string, index?: number, @@ -114,7 +142,7 @@ export class VerticalPerLineDiffManager { index = 0; } - let blocks = this.filepathToCodeLens.get(filepath); + const blocks = this.filepathToCodeLens.get(filepath); const block = blocks?.[index]; if (!blocks || !block) { return; @@ -125,8 +153,11 @@ export class VerticalPerLineDiffManager { return; } + // Disable listening to file changes while continue makes changes + this.disableDocumentChangeListener(); + // CodeLens object removed from editorToVerticalDiffCodeLens here - handler.acceptRejectBlock( + await handler.acceptRejectBlock( accept, block.start, block.numGreen, @@ -135,47 +166,127 @@ export class VerticalPerLineDiffManager { if (blocks.length === 1) { this.clearForFilepath(filepath, true); + } else { + // Re-enable listener for user changes to file + this.enableDocumentChangeListener(); } } - async streamEdit(input: string, modelTitle: string | undefined) { - vscode.commands.executeCommand("setContext", "continue.diffVisible", true); + /** + * Streams an edit to the current document based on user input and model output. + * + * @param input - The user's input or instruction for the edit. + * @param modelTitle - The title of the language model to be used. + * @param [onlyOneInsertion] - Optional flag to limit the edit to a single insertion. + * @param [quickEdit] - Optional string indicating if this is a quick edit. + * @param [range] - Optional range to use instead of the highlighted text. Note that the `quickEdit` + * property currently can't be passed with `range` since it assumes there is an + * active selection. + * + * This method performs the following steps: + * 1. Sets up the editor context for the diff. + * 2. Determines the range of text to be edited. + * 3. Clears any existing diff handlers for the file. + * 4. Creates a new vertical diff handler. + * 5. Prepares the context (prefix and suffix) for the language model. + * 6. Streams the diff lines from the language model. + * 7. Applies the changes to the document. + * 8. Sets up a listener for subsequent user edits. + * + * The method handles various edge cases, such as quick edits and existing diffs, + * and manages the lifecycle of diff handlers and document change listeners. + */ + async streamEdit( + input: string, + modelTitle: string | undefined, + context?: vscode.ExtensionContext, + onlyOneInsertion?: boolean, + quickEdit?: string, + range?: vscode.Range, + ) { + vscode.commands.executeCommand("setContext", "ahrefs-continue.diffVisible", true); + + let editor = vscode.window.activeTextEditor; - const editor = vscode.window.activeTextEditor; if (!editor) { return; } const filepath = editor.document.uri.fsPath; - const startLine = editor.selection.start.line; - const endLine = editor.selection.end.line; + let startLine, endLine: number; + + if (range) { + startLine = range.start.line; + endLine = range.end.line; + } else { + startLine = editor.selection.start.line; + endLine = editor.selection.end.line; + } + + // Check for existing handlers in the same file the new one will be created in const existingHandler = this.getHandlerForFile(filepath); - existingHandler?.clear(false); + + if (existingHandler) { + if (quickEdit) { + // Previous diff was a quickEdit + // Check if user has highlighted a range + let rangeBool = + startLine != endLine || + editor.selection.start.character != editor.selection.end.character; + + // Check if the range is different from the previous range + let newRangeBool = + startLine != existingHandler.range.start.line || + endLine != existingHandler.range.end.line; + + if (!rangeBool || !newRangeBool) { + // User did not highlight a new range -> use start/end from the previous quickEdit + startLine = existingHandler.range.start.line; + endLine = existingHandler.range.end.line; + } + } + + // Clear the previous handler + // This allows the user to edit above the changed area, + // but extra delta was added for each line generated by Continue + // Before adding this back, we need to distinguish between human and Continue + // let effectiveLineDelta = + // existingHandler.getLineDeltaBeforeLine(startLine); + // startLine += effectiveLineDelta; + // endLine += effectiveLineDelta; + + existingHandler.clear(false); + } + await new Promise((resolve) => { setTimeout(resolve, 200); }); + + // Create new handler with determined start/end const diffHandler = this.createVerticalPerLineDiffHandler( filepath, - existingHandler?.range.start.line ?? startLine, - existingHandler?.range.end.line ?? endLine, + startLine, + endLine, input, ); + if (!diffHandler) { + console.warn("Issue occured while creating new vertical diff handler"); return; } - let selectedRange = existingHandler?.range ?? editor.selection; + let selectedRange = diffHandler.range; // Only if the selection is empty, use exact prefix/suffix instead of by line - if (!selectedRange.isEmpty) { + if (selectedRange.isEmpty) { selectedRange = new vscode.Range( editor.selection.start.with(undefined, 0), editor.selection.end.with(undefined, Number.MAX_SAFE_INTEGER), ); } - const llm = await this.configHandler.loadCommandLlm(modelTitle); + const llm = await this.configHandler.llmFromTitle(modelTitle); const rangeContent = editor.document.getText(selectedRange); const prefix = pruneLinesFromTop( editor.document.getText( @@ -195,18 +306,41 @@ export class VerticalPerLineDiffManager { llm.model, ); - // Unselect the range - editor.selection = new vscode.Selection( - editor.selection.active, - editor.selection.active, - ); + if (editor.selection) { + // Unselect the range + editor.selection = new vscode.Selection( + editor.selection.active, + editor.selection.active, + ); + } vscode.commands.executeCommand( "setContext", - "continue.streamingDiff", + "ahrefs-continue.streamingDiff", true, ); + let interruptGenerationKey = "interruptGeneration"; + if (context && context.globalState.get(interruptGenerationKey) === undefined) { + context.globalState.update(interruptGenerationKey, false); + } + + if (context) { + const dontShowAgainKey = 'dontShowInfoAgain'; + const showInfo = context.globalState.get(dontShowAgainKey, true); + + if (showInfo) { + const message = "Interrupt generation by pressing CMD+SHIFT+C on Mac or CTRL+SHIFT+C on Windows."; + const dontShowAgainButton = "Don't show this again"; + + vscode.window.showInformationMessage(message, dontShowAgainButton).then(selection => { + if (selection === dontShowAgainButton) { + context.globalState.update(dontShowAgainKey, false); + } + }); + } + } + try { await diffHandler.run( streamDiffLines( @@ -216,14 +350,20 @@ export class VerticalPerLineDiffManager { llm, input, getMarkdownLanguageTagForFile(filepath), + onlyOneInsertion, ), + context ); + + // enable a listener for user edits to file while diff is open + this.enableDocumentChangeListener(); } catch (e) { - console.error("Error streaming diff:", e); + this.disableDocumentChangeListener(); + vscode.window.showErrorMessage(`Error streaming diff: ${e}`); } finally { vscode.commands.executeCommand( "setContext", - "continue.streamingDiff", + "ahrefs-continue.streamingDiff", false, ); } diff --git a/extensions/vscode/src/extension.ts b/extensions/vscode/src/extension.ts index 00286a81f..6993dbb62 100644 --- a/extensions/vscode/src/extension.ts +++ b/extensions/vscode/src/extension.ts @@ -2,14 +2,15 @@ * This is the entry point for the extension. */ -import { Telemetry } from "core/util/posthog"; +import { setupCa } from "core/util/ca"; +import { Telemetry } from "core/util/logging"; import * as vscode from "vscode"; import { getExtensionVersion } from "./util/util"; async function dynamicImportAndActivate(context: vscode.ExtensionContext) { const { activateExtension } = await import("./activation/activate"); try { - await activateExtension(context); + return activateExtension(context); } catch (e) { console.log("Error activating extension: ", e); vscode.window @@ -30,13 +31,15 @@ async function dynamicImportAndActivate(context: vscode.ExtensionContext) { } export function activate(context: vscode.ExtensionContext) { - dynamicImportAndActivate(context); + setupCa(); + return dynamicImportAndActivate(context); } export function deactivate() { - Telemetry.capture("deactivate", { - extensionVersion: getExtensionVersion(), - }); - - Telemetry.shutdownPosthogClient(); -} \ No newline at end of file + Telemetry.capture( + "deactivate", + { + extensionVersion: getExtensionVersion(), + }, + ); +} diff --git a/extensions/vscode/src/extension/VsCodeExtension.ts b/extensions/vscode/src/extension/VsCodeExtension.ts new file mode 100644 index 000000000..13adf595d --- /dev/null +++ b/extensions/vscode/src/extension/VsCodeExtension.ts @@ -0,0 +1,301 @@ +import { IContextProvider } from "core"; +import { IConfigHandler } from "core/config/IConfigHandler"; +import { Core } from "core/core"; +import { FromCoreProtocol, ToCoreProtocol } from "core/protocol/index"; +import { InProcessMessenger } from "core/util/messenger"; +import { getConfigJsonPath, getConfigTsPath } from "core/util/paths"; +import fs from "fs"; +import { v4 as uuidv4 } from "uuid"; +import * as vscode from "vscode"; +import { ContinueCompletionProvider } from "../autocomplete/completionProvider"; +import { + StatusBarStatus, + monitorBatteryChanges, + setupStatusBar, +} from "../autocomplete/statusBar"; +import { registerAllCommands } from "../commands"; +import { registerDebugTracker } from "../debug/debug"; +import { ContinueGUIWebviewViewProvider } from "../debugPanel"; +import { DiffManager } from "../diff/horizontal"; +import { VerticalPerLineDiffManager } from "../diff/verticalPerLine/manager"; +import { VsCodeIde } from "../ideProtocol"; +import { registerAllCodeLensProviders } from "../lang-server/codeLens"; +import { setupRemoteConfigSync } from "../stubs/activation"; +import { Battery } from "../util/battery"; +import { TabAutocompleteModel } from "../util/loadAutocompleteModel"; +import type { VsCodeWebviewProtocol } from "../webviewProtocol"; +import { VsCodeMessenger } from "./VsCodeMessenger"; + +export class VsCodeExtension { + // Currently some of these are public so they can be used in testing (test/test-suites) + + private configHandler: IConfigHandler; + private extensionContext: vscode.ExtensionContext; + private ide: VsCodeIde; + private tabAutocompleteModel: TabAutocompleteModel; + private sidebar: ContinueGUIWebviewViewProvider; + private windowId: string; + private diffManager: DiffManager; + private verticalDiffManager: VerticalPerLineDiffManager; + webviewProtocolPromise: Promise; + private core: Core; + private battery: Battery; + private quickActionsCodeLensDisposable?: vscode.Disposable; + + constructor(context: vscode.ExtensionContext) { + let resolveWebviewProtocol: any = undefined; + this.webviewProtocolPromise = new Promise( + (resolve) => { + resolveWebviewProtocol = resolve; + }, + ); + this.diffManager = new DiffManager(context); + this.ide = new VsCodeIde(this.diffManager, this.webviewProtocolPromise); + this.extensionContext = context; + this.windowId = uuidv4(); + + const ideSettings = this.ide.getIdeSettingsSync(); + const { remoteConfigServerUrl } = ideSettings; + + // Dependencies of core + let resolveVerticalDiffManager: any = undefined; + const verticalDiffManagerPromise = new Promise( + (resolve) => { + resolveVerticalDiffManager = resolve; + }, + ); + let resolveConfigHandler: any = undefined; + const configHandlerPromise = new Promise((resolve) => { + resolveConfigHandler = resolve; + }); + this.sidebar = new ContinueGUIWebviewViewProvider( + configHandlerPromise, + this.windowId, + this.extensionContext, + ); + + // Sidebar + context.subscriptions.push( + vscode.window.registerWebviewViewProvider( + "ahrefs-continue.ahrefs-continueGUIView", + this.sidebar, + { + webviewOptions: { retainContextWhenHidden: true }, + }, + ), + ); + resolveWebviewProtocol(this.sidebar.webviewProtocol); + + // Config Handler with output channel + const outputChannel = vscode.window.createOutputChannel( + "Ahrefs-Continue - LLM Prompt/Completion", + ); + const inProcessMessenger = new InProcessMessenger< + ToCoreProtocol, + FromCoreProtocol + >(); + + new VsCodeMessenger( + inProcessMessenger, + this.sidebar.webviewProtocol, + this.ide, + verticalDiffManagerPromise, + configHandlerPromise, + ); + + this.core = new Core(inProcessMessenger, this.ide, async (log: string) => { + outputChannel.appendLine( + "==========================================================================", + ); + outputChannel.appendLine( + "==========================================================================", + ); + outputChannel.append(log); + }); + this.configHandler = this.core.configHandler; + resolveConfigHandler?.(this.configHandler); + + this.configHandler.reloadConfig(); + this.verticalDiffManager = new VerticalPerLineDiffManager( + this.configHandler, + ); + resolveVerticalDiffManager?.(this.verticalDiffManager); + this.tabAutocompleteModel = new TabAutocompleteModel(this.configHandler); + + setupRemoteConfigSync( + this.configHandler.reloadConfig.bind(this.configHandler), + ); + + // Indexing + pause token + this.diffManager.webviewProtocol = this.sidebar.webviewProtocol; + + this.configHandler.loadConfig().then((config) => { + const { verticalDiffCodeLens } = registerAllCodeLensProviders( + context, + this.diffManager, + this.verticalDiffManager.filepathToCodeLens, + config, + ); + + this.verticalDiffManager.refreshCodeLens = + verticalDiffCodeLens.refresh.bind(verticalDiffCodeLens); + }); + + this.configHandler.onConfigUpdate((newConfig) => { + this.sidebar.webviewProtocol?.request("configUpdate", undefined); + + this.tabAutocompleteModel.clearLlm.bind(this.tabAutocompleteModel); + + registerAllCodeLensProviders( + context, + this.diffManager, + this.verticalDiffManager.filepathToCodeLens, + newConfig, + ); + }); + + // Tab autocomplete + const config = vscode.workspace.getConfiguration("ahrefs-continue"); + const enabled = config.get("enableTabAutocomplete"); + + // Register inline completion provider + setupStatusBar( + enabled ? StatusBarStatus.Enabled : StatusBarStatus.Disabled, + ); + context.subscriptions.push( + vscode.languages.registerInlineCompletionItemProvider( + [{ pattern: "**" }], + new ContinueCompletionProvider( + this.configHandler, + this.ide, + this.tabAutocompleteModel, + ), + ), + ); + + // Battery + this.battery = new Battery(); + context.subscriptions.push(this.battery); + context.subscriptions.push(monitorBatteryChanges(this.battery)); + + // Commands + registerAllCommands( + context, + this.ide, + context, + this.sidebar, + this.configHandler, + this.diffManager, + this.verticalDiffManager, + this.core.continueServerClientPromise, + this.battery, + ); + + registerDebugTracker(this.sidebar.webviewProtocol, this.ide); + + // Listen for file saving - use global file watcher so that changes + // from outside the window are also caught + fs.watchFile(getConfigJsonPath(), { interval: 1000 }, async (stats) => { + await this.configHandler.reloadConfig(); + }); + + fs.watchFile(getConfigTsPath(), { interval: 1000 }, (stats) => { + this.configHandler.reloadConfig(); + }); + + vscode.workspace.onDidSaveTextDocument((event) => { + // Listen for file changes in the workspace + const filepath = event.uri.fsPath; + + if (filepath === getConfigJsonPath()) { + // Trigger a toast notification to provide UI feedback that config + // has been updated + const showToast = context.globalState.get( + "showConfigUpdateToast", + true, + ); + if (showToast) { + vscode.window + .showInformationMessage("Config updated", "Don't show again") + .then((selection) => { + if (selection === "Don't show again") { + context.globalState.update("showConfigUpdateToast", false); + } + }); + } + } + + if ( + filepath.endsWith(".ahrefs-continuerc.json") || + filepath.endsWith(".prompt") + ) { + this.configHandler.reloadConfig(); + } else if ( + filepath.endsWith(".ahrefs-continueignore") || + filepath.endsWith(".gitignore") + ) { + // Update embeddings! (TODO) + } + }); + + // When GitHub sign-in status changes, reload config + vscode.authentication.onDidChangeSessions((e) => { + if (e.provider.id === "github") { + this.configHandler.reloadConfig(); + } + }); + + // Refresh index when branch is changed + this.ide.getWorkspaceDirs().then((dirs) => + dirs.forEach(async (dir) => { + const repo = await this.ide.getRepo(vscode.Uri.file(dir)); + if (repo) { + repo.state.onDidChange(() => { + // args passed to this callback are always undefined, so keep track of previous branch + const currentBranch = repo?.state?.HEAD?.name; + if (currentBranch) { + if (this.PREVIOUS_BRANCH_FOR_WORKSPACE_DIR[dir]) { + if ( + currentBranch !== this.PREVIOUS_BRANCH_FOR_WORKSPACE_DIR[dir] + ) { + // Trigger refresh of index only in this directory + this.core.invoke("index/forceReIndex", dir); + } + } + + this.PREVIOUS_BRANCH_FOR_WORKSPACE_DIR[dir] = currentBranch; + } + }); + } + }), + ); + + // Register a content provider for the readonly virtual documents + const documentContentProvider = new (class + implements vscode.TextDocumentContentProvider + { + // emitter and its event + onDidChangeEmitter = new vscode.EventEmitter(); + onDidChange = this.onDidChangeEmitter.event; + + provideTextDocumentContent(uri: vscode.Uri): string { + return uri.query; + } + })(); + context.subscriptions.push( + vscode.workspace.registerTextDocumentContentProvider( + VsCodeExtension.continueVirtualDocumentScheme, + documentContentProvider, + ), + ); + } + + static continueVirtualDocumentScheme = "ahrefs-continue"; + + // eslint-disable-next-line @typescript-eslint/naming-convention + private PREVIOUS_BRANCH_FOR_WORKSPACE_DIR: { [dir: string]: string } = {}; + + registerCustomContextProvider(contextProvider: IContextProvider) { + this.configHandler.registerCustomContextProvider(contextProvider); + } +} \ No newline at end of file diff --git a/extensions/vscode/src/extension/VsCodeMessenger.ts b/extensions/vscode/src/extension/VsCodeMessenger.ts new file mode 100644 index 000000000..c26310831 --- /dev/null +++ b/extensions/vscode/src/extension/VsCodeMessenger.ts @@ -0,0 +1,326 @@ +import { IConfigHandler } from "core/config/IConfigHandler"; +import { FromCoreProtocol, ToCoreProtocol } from "core/protocol/index"; +import { ToWebviewFromCoreProtocol } from "core/protocol/coreWebview"; +import { ToIdeFromWebviewOrCoreProtocol } from "core/protocol/ide"; +import { ToIdeFromCoreProtocol } from "core/protocol/ideCore"; +import { + CORE_TO_WEBVIEW_PASS_THROUGH, + WEBVIEW_TO_CORE_PASS_THROUGH, +} from "core/protocol/passThrough"; +import { InProcessMessenger, Message } from "core/util/messenger"; +import { getConfigJsonPath } from "core/util/paths"; +import * as fs from "node:fs"; +import * as path from "node:path"; +import * as vscode from "vscode"; +import { VerticalPerLineDiffManager } from "../diff/verticalPerLine/manager"; +import { VsCodeIde } from "../ideProtocol"; +import { getExtensionUri } from "../util/vscode"; +import { + ToCoreOrIdeFromWebviewProtocol, + VsCodeWebviewProtocol, +} from "../webviewProtocol"; +import { stripImages } from "../../../../core/llm/countTokens"; + +/** + * A shared messenger class between Core and Webview + * so we don't have to rewrite some of the handlers + */ +type TODO = any; +type ToIdeOrWebviewFromCoreProtocol = ToIdeFromCoreProtocol & + ToWebviewFromCoreProtocol; +export class VsCodeMessenger { + onWebview( + messageType: T, + handler: ( + message: Message, + ) => + | Promise + | ToCoreOrIdeFromWebviewProtocol[T][1], + ): void { + this.webviewProtocol.on(messageType, handler); + } + + onCore( + messageType: T, + handler: ( + message: Message, + ) => + | Promise + | ToIdeOrWebviewFromCoreProtocol[T][1], + ): void { + this.inProcessMessenger.externalOn(messageType, handler); + } + + onWebviewOrCore( + messageType: T, + handler: ( + message: Message, + ) => + | Promise + | ToIdeFromWebviewOrCoreProtocol[T][1], + ): void { + this.onWebview(messageType, handler); + this.onCore(messageType, handler); + } + + constructor( + private readonly inProcessMessenger: InProcessMessenger< + ToCoreProtocol, + FromCoreProtocol + >, + private readonly webviewProtocol: VsCodeWebviewProtocol, + private readonly ide: VsCodeIde, + private readonly verticalDiffManagerPromise: Promise, + private readonly configHandlerPromise: Promise, + ) { + /** WEBVIEW ONLY LISTENERS **/ + this.onWebview("showFile", (msg) => { + this.ide.openFile(msg.data.filepath); + }); + this.onWebview("openConfigJson", (msg) => { + this.ide.openFile(getConfigJsonPath()); + }); + this.onWebview("readRangeInFile", async (msg) => { + return await vscode.workspace + .openTextDocument(msg.data.filepath) + .then((document) => { + const start = new vscode.Position(0, 0); + const end = new vscode.Position(5, 0); + const range = new vscode.Range(start, end); + + const contents = document.getText(range); + return contents; + }); + }); + this.onWebview("toggleDevTools", (msg) => { + vscode.commands.executeCommand("workbench.action.toggleDevTools"); + vscode.commands.executeCommand("continue.viewLogs"); + }); + this.onWebview("reloadWindow", (msg) => { + vscode.commands.executeCommand("workbench.action.reloadWindow"); + }); + this.onWebview("focusEditor", (msg) => { + vscode.commands.executeCommand("workbench.action.focusActiveEditorGroup"); + }); + this.onWebview("toggleFullScreen", (msg) => { + vscode.commands.executeCommand("continue.toggleFullScreen"); + }); + // History + this.onWebview("saveFile", async (msg) => { + return await ide.saveFile(msg.data.filepath); + }); + this.onWebview("readFile", async (msg) => { + return await ide.readFile(msg.data.filepath); + }); + this.onWebview("showDiff", async (msg) => { + return await ide.showDiff( + msg.data.filepath, + msg.data.newContents, + msg.data.stepIndex, + ); + }); + this.onWebview("saveSessionChatHistory", async (msg) => { + const datetime = new Date(); + const year = datetime.getFullYear(); + const month = String(datetime.getMonth() + 1).padStart(2, '0'); + const day = String(datetime.getDate()).padStart(2, '0'); + const hours = String(datetime.getHours()).padStart(2, '0'); + const minutes = String(datetime.getMinutes()).padStart(2, '0'); + const seconds = String(datetime.getSeconds()).padStart(2, '0'); + + const datetime_filename = `${year}${month}${day}_${hours}${minutes}${seconds}`; + + let content = `This is a session transcript from Ahrefs-Continue on ${datetime.toLocaleString()}.`; + + for (const m of msg.data.chatHistory) { + content += `\n\n## ${ + m.message.role === "user" ? "User" : `Ahrefs-Continue: ${msg.data.defaultTitle}` + }\n\n${stripImages(m.message.content)}`; + } + + const continueDir = await ide.getContinueDir(); + const savedSessionsPath = `${continueDir}/saved_sessions` + if (!fs.existsSync(savedSessionsPath)) { + fs.mkdirSync(savedSessionsPath); + } + const path = `${savedSessionsPath}/${datetime_filename}_session.md`; + await ide.writeFile(path, content); + await ide.openFile(path); + + vscode.window.showInformationMessage(`Chat session saved to ${path}`); + }) + + this.onWebview("applyToCurrentFile", async (msg) => { + // Select the entire current file + const editor = vscode.window.activeTextEditor; + + if (!editor) { + vscode.window.showErrorMessage("No active editor to apply edits to"); + return; + } + + if (editor.selection.isEmpty) { + const document = editor.document; + const start = new vscode.Position(0, 0); + const end = new vscode.Position( + document.lineCount - 1, + document.lineAt(document.lineCount - 1).text.length, + ); + editor.selection = new vscode.Selection(start, end); + } + + const verticalDiffManager = await this.verticalDiffManagerPromise; + const prompt = `The following code was suggested as an edit:\n\`\`\`\n${msg.data.text}\n\`\`\`\nPlease apply it to the previous code.`; + + const configHandler = await configHandlerPromise; + const config = await configHandler.loadConfig(); + + const modelTitle = + config.experimental?.modelRoles?.applyCodeBlock ?? + (await this.webviewProtocol.request("getDefaultModelTitle", undefined)); + + verticalDiffManager.streamEdit(prompt, modelTitle); + }); + + this.onWebview("showTutorial", async (msg) => { + const tutorialPath = path.join( + getExtensionUri().fsPath, + "continue_tutorial.py", + ); + // Ensure keyboard shortcuts match OS + if (process.platform !== "darwin") { + let tutorialContent = fs.readFileSync(tutorialPath, "utf8"); + tutorialContent = tutorialContent + .replace("⌘", "^") + .replace("Cmd", "Ctrl"); + fs.writeFileSync(tutorialPath, tutorialContent); + } + + const doc = await vscode.workspace.openTextDocument( + vscode.Uri.file(tutorialPath), + ); + await vscode.window.showTextDocument(doc); + }); + + this.onWebview("openUrl", (msg) => { + vscode.env.openExternal(vscode.Uri.parse(msg.data)); + }); + this.onWebview("insertAtCursor", async (msg) => { + const editor = vscode.window.activeTextEditor; + if (editor === undefined || !editor.selection) { + return; + } + + editor.edit((editBuilder) => { + editBuilder.replace( + new vscode.Range(editor.selection.start, editor.selection.end), + msg.data.text, + ); + }); + }); + + /** PASS THROUGH FROM WEBVIEW TO CORE AND BACK **/ + WEBVIEW_TO_CORE_PASS_THROUGH.forEach((messageType) => { + this.onWebview(messageType, async (msg) => { + return (await this.inProcessMessenger.externalRequest( + messageType, + msg.data, + msg.messageId, + )) as TODO; + }); + }); + + /** PASS THROUGH FROM CORE TO WEBVIEW AND BACK **/ + CORE_TO_WEBVIEW_PASS_THROUGH.forEach((messageType) => { + this.onCore(messageType, async (msg) => { + return this.webviewProtocol.request(messageType, msg.data); + }); + }); + + /** CORE ONLY LISTENERS **/ + // None right now + + /** BOTH CORE AND WEBVIEW **/ + this.onWebviewOrCore("getIdeSettings", async (msg) => { + return ide.getIdeSettings(); + }); + this.onWebviewOrCore("getDiff", async (msg) => { + return ide.getDiff(); + }); + this.onWebviewOrCore("getTerminalContents", async (msg) => { + return ide.getTerminalContents(); + }); + this.onWebviewOrCore("getDebugLocals", async (msg) => { + return ide.getDebugLocals(Number(msg.data.threadIndex)); + }); + this.onWebviewOrCore("getAvailableThreads", async (msg) => { + return ide.getAvailableThreads(); + }); + this.onWebviewOrCore("getTopLevelCallStackSources", async (msg) => { + return ide.getTopLevelCallStackSources( + msg.data.threadIndex, + msg.data.stackDepth, + ); + }); + this.onWebviewOrCore("getWorkspaceDirs", async (msg) => { + return ide.getWorkspaceDirs(); + }); + this.onWebviewOrCore("listFolders", async (msg) => { + return ide.listFolders(); + }); + this.onWebviewOrCore("writeFile", async (msg) => { + return ide.writeFile(msg.data.path, msg.data.contents); + }); + this.onWebviewOrCore("showVirtualFile", async (msg) => { + return ide.showVirtualFile(msg.data.name, msg.data.content); + }); + this.onWebviewOrCore("getContinueDir", async (msg) => { + return ide.getContinueDir(); + }); + this.onWebviewOrCore("openFile", async (msg) => { + return ide.openFile(msg.data.path); + }); + this.onWebviewOrCore("runCommand", async (msg) => { + await ide.runCommand(msg.data.command); + }); + this.onWebviewOrCore("getSearchResults", async (msg) => { + return ide.getSearchResults(msg.data.query); + }); + this.onWebviewOrCore("subprocess", async (msg) => { + return ide.subprocess(msg.data.command); + }); + this.onWebviewOrCore("getProblems", async (msg) => { + return ide.getProblems(msg.data.filepath); + }); + this.onWebviewOrCore("getBranch", async (msg) => { + const { dir } = msg.data; + return ide.getBranch(dir); + }); + this.onWebviewOrCore("getOpenFiles", async (msg) => { + return ide.getOpenFiles(); + }); + this.onWebviewOrCore("getCurrentFile", async () => { + return ide.getCurrentFile(); + }); + this.onWebviewOrCore("getPinnedFiles", async (msg) => { + return ide.getPinnedFiles(); + }); + this.onWebviewOrCore("showLines", async (msg) => { + const { filepath, startLine, endLine } = msg.data; + return ide.showLines(filepath, startLine, endLine); + }); + // Other + this.onWebviewOrCore("errorPopup", (msg) => { + vscode.window + .showErrorMessage(msg.data.message, "Show Logs") + .then((selection) => { + if (selection === "Show Logs") { + vscode.commands.executeCommand("workbench.action.toggleDevTools"); + } + }); + }); + this.onWebviewOrCore("getGitHubAuthToken", (msg) => + ide.getGitHubAuthToken(), + ); + } +} \ No newline at end of file diff --git a/extensions/vscode/src/extension/vscodeExtension.ts b/extensions/vscode/src/extension/vscodeExtension.ts deleted file mode 100644 index 559eca572..000000000 --- a/extensions/vscode/src/extension/vscodeExtension.ts +++ /dev/null @@ -1,275 +0,0 @@ -import { ConfigHandler } from "core/config/handler"; -import { CodebaseIndexer, PauseToken } from "core/indexing/indexCodebase"; -import { IdeSettings } from "core/protocol"; -import { v4 as uuidv4 } from "uuid"; -import * as vscode from "vscode"; -import { ContinueCompletionProvider } from "../autocomplete/completionProvider"; -import { setupStatusBar } from "../autocomplete/statusBar"; -import { registerAllCommands } from "../commands"; -import { registerDebugTracker } from "../debug/debug"; -import { ContinueGUIWebviewViewProvider } from "../debugPanel"; -import { DiffManager } from "../diff/horizontal"; -import { VerticalPerLineDiffManager } from "../diff/verticalPerLine/manager"; -import { VsCodeIde } from "../ideProtocol"; -import { registerAllCodeLensProviders } from "../lang-server/codeLens"; -import { setupRemoteConfigSync } from "../stubs/activation"; -import { getUserToken } from "../stubs/auth"; -import { TabAutocompleteModel } from "../util/loadAutocompleteModel"; -import { VsCodeWebviewProtocol } from "../webviewProtocol"; - -export class VsCodeExtension { - private configHandler: ConfigHandler; - private extensionContext: vscode.ExtensionContext; - private ide: VsCodeIde; - private tabAutocompleteModel: TabAutocompleteModel; - private sidebar: ContinueGUIWebviewViewProvider; - private windowId: string; - private indexer: CodebaseIndexer; - private diffManager: DiffManager; - private verticalDiffManager: VerticalPerLineDiffManager; - private webviewProtocol: VsCodeWebviewProtocol; - - constructor(context: vscode.ExtensionContext) { - this.diffManager = new DiffManager(context); - this.ide = new VsCodeIde(this.diffManager); - - const settings = vscode.workspace.getConfiguration("ahrefs-continue"); - const remoteConfigServerUrl = settings.get( - "remoteConfigServerUrl", - undefined, - ); - const ideSettings: IdeSettings = { - remoteConfigServerUrl, - remoteConfigSyncPeriod: settings.get( - "remoteConfigSyncPeriod", - 60, - ), - userToken: settings.get("userToken", ""), - }; - - // Config Handler with output channel - const outputChannel = vscode.window.createOutputChannel( - "Ahrefs-Continue - LLM Prompt/Completion", - ); - this.configHandler = new ConfigHandler( - this.ide, - Promise.resolve(ideSettings), - async (log: string) => { - outputChannel.appendLine( - "==========================================================================", - ); - outputChannel.appendLine( - "==========================================================================", - ); - outputChannel.append(log); - }, - (() => this.webviewProtocol?.request("configUpdate", undefined)).bind( - this, - ), - ); - - this.configHandler.reloadConfig(); - this.verticalDiffManager = new VerticalPerLineDiffManager( - this.configHandler, - ); - this.extensionContext = context; - this.tabAutocompleteModel = new TabAutocompleteModel(this.configHandler); - this.windowId = uuidv4(); - this.sidebar = new ContinueGUIWebviewViewProvider( - this.configHandler, - this.ide, - this.windowId, - this.extensionContext, - this.verticalDiffManager, - ); - - setupRemoteConfigSync( - this.configHandler.reloadConfig.bind(this.configHandler), - ); - - // Sidebar - context.subscriptions.push( - vscode.window.registerWebviewViewProvider( - "ahrefs-continue.ahrefs-continueGUIView", - this.sidebar, - { - webviewOptions: { retainContextWhenHidden: true }, - }, - ), - ); - this.webviewProtocol = this.sidebar.webviewProtocol; - - // Indexing + pause token - const indexingPauseToken = new PauseToken( - context.globalState.get("ahrefs-continue.indexingPaused") === true, - ); - this.webviewProtocol.on("index/setPaused", (msg) => { - context.globalState.update("ahrefs-continue.indexingPaused", msg.data); - indexingPauseToken.paused = msg.data; - }); - this.webviewProtocol.on("index/forceReIndex", (msg) => { - this.ide - .getWorkspaceDirs() - .then((dirs) => this.refreshCodebaseIndex(dirs)); - }); - - this.diffManager.webviewProtocol = this.webviewProtocol; - - const userTokenPromise: Promise = new Promise( - async (resolve) => { - if ( - remoteConfigServerUrl === null || - remoteConfigServerUrl === undefined || - remoteConfigServerUrl.trim() === "" - ) { - resolve(undefined); - return; - } - const token = await getUserToken(); - resolve(token); - }, - ); - this.indexer = new CodebaseIndexer( - this.configHandler, - this.ide, - indexingPauseToken, - ideSettings.remoteConfigServerUrl, - userTokenPromise, - ); - - if ( - !( - remoteConfigServerUrl === null || - remoteConfigServerUrl === undefined || - remoteConfigServerUrl.trim() === "" - ) - ) { - getUserToken().then((token) => {}); - } - - // CodeLens - const verticalDiffCodeLens = registerAllCodeLensProviders( - context, - this.diffManager, - this.verticalDiffManager.filepathToCodeLens, - ); - this.verticalDiffManager.refreshCodeLens = - verticalDiffCodeLens.refresh.bind(verticalDiffCodeLens); - - // Tab autocomplete - const config = vscode.workspace.getConfiguration("ahrefs-continue"); - const enabled = config.get("enableTabAutocomplete"); - - // Register inline completion provider - setupStatusBar(enabled); - context.subscriptions.push( - vscode.languages.registerInlineCompletionItemProvider( - [{ pattern: "**" }], - new ContinueCompletionProvider( - this.configHandler, - this.ide, - this.tabAutocompleteModel, - ), - ), - ); - - // Commands - registerAllCommands( - context, - this.ide, - context, - this.sidebar, - this.configHandler, - this.diffManager, - this.verticalDiffManager, - ); - - registerDebugTracker(this.webviewProtocol, this.ide); - - // Indexing - this.ide.getWorkspaceDirs().then((dirs) => this.refreshCodebaseIndex(dirs)); - - // Listen for file saving - vscode.workspace.onDidSaveTextDocument((event) => { - const filepath = event.uri.fsPath; - - if ( - filepath.endsWith(".continue/config.json") || - filepath.endsWith(".continue\\config.json") || - filepath.endsWith(".continue/config.ts") || - filepath.endsWith(".continue\\config.ts") || - filepath.endsWith(".continuerc.json") - ) { - this.configHandler.reloadConfig(); - this.tabAutocompleteModel.clearLlm(); - } else if ( - filepath.endsWith(".continueignore") || - filepath.endsWith(".gitignore") - ) { - // Update embeddings! (TODO) - } - }); - - // Refresh index when branch is changed - this.ide.getWorkspaceDirs().then((dirs) => - dirs.forEach(async (dir) => { - const repo = await this.ide.getRepo(vscode.Uri.file(dir)); - if (repo) { - repo.state.onDidChange(() => { - // args passed to this callback are always undefined, so keep track of previous branch - const currentBranch = repo?.state?.HEAD?.name; - if (currentBranch) { - if (this.PREVIOUS_BRANCH_FOR_WORKSPACE_DIR[dir]) { - if ( - currentBranch !== this.PREVIOUS_BRANCH_FOR_WORKSPACE_DIR[dir] - ) { - // Trigger refresh of index only in this directory - this.refreshCodebaseIndex([dir]); - } - } - - this.PREVIOUS_BRANCH_FOR_WORKSPACE_DIR[dir] = currentBranch; - } - }); - } - }), - ); - - // Register a content provider for the readonly virtual documents - const documentContentProvider = new (class - implements vscode.TextDocumentContentProvider - { - // emitter and its event - onDidChangeEmitter = new vscode.EventEmitter(); - onDidChange = this.onDidChangeEmitter.event; - - provideTextDocumentContent(uri: vscode.Uri): string { - return uri.query; - } - })(); - context.subscriptions.push( - vscode.workspace.registerTextDocumentContentProvider( - VsCodeExtension.continueVirtualDocumentScheme, - documentContentProvider, - ), - ); - } - - static continueVirtualDocumentScheme = "continue"; - - private PREVIOUS_BRANCH_FOR_WORKSPACE_DIR: { [dir: string]: string } = {}; - private indexingCancellationController: AbortController | undefined; - - private async refreshCodebaseIndex(dirs: string[]) { - if (this.indexingCancellationController) { - this.indexingCancellationController.abort(); - } - this.indexingCancellationController = new AbortController(); - for await (const update of this.indexer.refresh( - dirs, - this.indexingCancellationController.signal, - )) { - this.webviewProtocol.request("indexProgress", update); - } - } -} diff --git a/extensions/vscode/src/ideProtocol.ts b/extensions/vscode/src/ideProtocol.ts index 2febbb3fb..40539e005 100644 --- a/extensions/vscode/src/ideProtocol.ts +++ b/extensions/vscode/src/ideProtocol.ts @@ -1,40 +1,194 @@ -import * as child_process from "child_process"; -import { exec } from "child_process"; -import { +import * as child_process from "node:child_process"; +import { exec } from "node:child_process"; +import * as path from "node:path"; + +import type { ContinueRcJson, FileType, IDE, IdeInfo, + IdeSettings, IndexTag, + Location, Problem, - Range, + RangeInFile, Thread, } from "core"; -import { getContinueGlobalPath } from "core/util/paths"; -import { defaultIgnoreFile } from "core/indexing/ignore"; -import * as path from "path"; +import { Range } from "core"; +import { walkDir } from "core/indexing/walkDir"; +import { + editConfigJson, + getConfigJsonPath, + getContinueGlobalPath, + internalBetaPathExists, +} from "core/util/paths"; import * as vscode from "vscode"; +import { executeGotoProvider } from "./autocomplete/lsp"; import { DiffManager } from "./diff/horizontal"; +import { Repository } from "./otherExtensions/git"; import { VsCodeIdeUtils } from "./util/ideUtils"; -import { traverseDirectory } from "./util/traverseDirectory"; import { getExtensionUri, openEditorAndRevealRange, uriFromFilePath, } from "./util/vscode"; +import { VsCodeWebviewProtocol } from "./webviewProtocol"; class VsCodeIde implements IDE { ideUtils: VsCodeIdeUtils; - constructor(private readonly diffManager: DiffManager) { + constructor( + private readonly diffManager: DiffManager, + private readonly vscodeWebviewProtocolPromise: Promise, + ) { this.ideUtils = new VsCodeIdeUtils(); } + pathSep(): Promise { + return Promise.resolve(this.ideUtils.path.sep); + } + async fileExists(filepath: string): Promise { + return vscode.workspace.fs.stat(uriFromFilePath(filepath)).then( + () => true, + () => false, + ); + } + + async gotoDefinition(location: Location): Promise { + const result = await executeGotoProvider({ + uri: location.filepath, + line: location.position.line, + character: location.position.character, + name: "vscode.executeDefinitionProvider", + }); + + return result; + } + + onDidChangeActiveTextEditor(callback: (filepath: string) => void): void { + vscode.window.onDidChangeActiveTextEditor((editor) => { + if (editor) { + callback(editor.document.uri.fsPath); + } + }); + } private authToken: string | undefined; private askedForAuth = false; async getGitHubAuthToken(): Promise { - console.log("Reading Github Auth Token is not supported.") + // Saved auth token + if (this.authToken) { + return this.authToken; + } + + // Try to ask silently + const session = await vscode.authentication.getSession("github", [], { + silent: true, + }); + if (session) { + this.authToken = session.accessToken; + return this.authToken; + } + + try { + // If we haven't asked yet, give explanation of what is happening and why + // But don't wait to return this immediately + // We will use a callback to refresh the config + if (!this.askedForAuth) { + vscode.window + .showInformationMessage( + "Continue will request read access to your GitHub email so that we can prevent abuse of the free trial. If you prefer not to sign in, you can use Continue with your own API keys or local model.", + "Sign in", + "Use API key / local model", + "Learn more", + ) + .then(async (selection) => { + if (selection === "Use API key / local model") { + await vscode.commands.executeCommand( + "ahrefs-continue.ahrefs-continueGUIView.focus", + ); + (await this.vscodeWebviewProtocolPromise).request( + "openOnboarding", + undefined, + ); + + // Remove free trial models + editConfigJson((config) => { + let tabAutocompleteModel = undefined; + if (Array.isArray(config.tabAutocompleteModels)) { + tabAutocompleteModel = config.tabAutocompleteModels.filter( + (model) => model.provider !== "free-trial", + ); + } else if ( + config.tabAutocompleteModels?.provider === "free-trial" + ) { + tabAutocompleteModel = undefined; + } + + return { + ...config, + models: config.models.filter( + (model) => model.provider !== "free-trial", + ), + tabAutocompleteModel, + }; + }); + } else if (selection === "Learn more") { + vscode.env.openExternal( + vscode.Uri.parse( + "https://docs.continue.dev/reference/Model%20Providers/freetrial", + ), + ); + } else if (selection === "Sign in") { + const session = await vscode.authentication.getSession( + "github", + [], + { + createIfNone: true, + }, + ); + if (session) { + this.authToken = session.accessToken; + } + } + }); + this.askedForAuth = true; + return undefined; + } + + const session = await vscode.authentication.getSession("github", [], { + silent: this.askedForAuth, + createIfNone: !this.askedForAuth, + }); + if (session) { + this.authToken = session.accessToken; + return session.accessToken; + } else if (!this.askedForAuth) { + // User cancelled the login prompt + // Explain that they can avoid the prompt by removing free trial models from config.json + vscode.window + .showInformationMessage( + "We'll only ask you to log in if using the free trial. To avoid this prompt, make sure to remove free trial models from your config.json", + "Remove for me", + "Open config.json", + ) + .then((selection) => { + if (selection === "Remove for me") { + editConfigJson((configJson) => { + configJson.models = configJson.models.filter( + (model) => model.provider !== "free-trial", + ); + configJson.tabAutocompleteModels = undefined; + return configJson; + }); + } else if (selection === "Open config.json") { + this.openFile(getConfigJsonPath()); + } + }); + } + } catch (error) { + console.error("Failed to get GitHub authentication session:", error); + } return undefined; } @@ -48,17 +202,20 @@ class VsCodeIde implements IDE { async getRepoName(dir: string): Promise { const repo = await this.getRepo(vscode.Uri.file(dir)); + const remotes = repo?.state.remotes; + if (!remotes) { + return undefined; + } const remote = - repo?.repository.remotes.find((r: any) => r.name === "origin") ?? - repo?.repository.remotes[0]; + remotes?.find((r: any) => r.name === "origin") ?? remotes?.[0]; if (!remote) { return undefined; } const ownerAndRepo = remote.fetchUrl - .replace(".git", "") + ?.replace(".git", "") .split("/") .slice(-2); - return ownerAndRepo.join("/"); + return ownerAndRepo?.join("/"); } async getTags(artifactId: string): Promise { @@ -109,21 +266,7 @@ class VsCodeIde implements IDE { return pathToLastModified; } - async getStats(directory: string): Promise<{ [path: string]: number }> { - const scheme = vscode.workspace.workspaceFolders?.[0].uri.scheme; - const files = await this.listWorkspaceContents(directory); - const pathToLastModified: { [path: string]: number } = {}; - await Promise.all( - files.map(async (file) => { - let stat = await vscode.workspace.fs.stat(uriFromFilePath(file)); - pathToLastModified[file] = stat.mtime; - }), - ); - - return pathToLastModified; - } - - async getRepo(dir: vscode.Uri): Promise { + async getRepo(dir: vscode.Uri): Promise { return this.ideUtils.getRepo(dir); } @@ -163,19 +306,6 @@ class VsCodeIde implements IDE { return await this.ideUtils.getAvailableThreads(); } - async listWorkspaceContents(directory?: string): Promise { - if (directory) { - return await this.ideUtils.getDirectoryContents(directory, true); - } else { - const contents = await Promise.all( - this.ideUtils - .getWorkspaceDirectories() - .map((dir) => this.ideUtils.getDirectoryContents(dir, true)), - ); - return contents.flat(); - } - } - async getWorkspaceConfigs() { const workspaceDirs = vscode.workspace.workspaceFolders?.map((folder) => folder.uri) || []; @@ -199,14 +329,8 @@ class VsCodeIde implements IDE { const workspaceDirs = await this.getWorkspaceDirs(); for (const directory of workspaceDirs) { - for await (const dir of traverseDirectory( - directory, - [], - false, - undefined, - )) { - allDirs.push(dir); - } + const dirs = await walkDir(directory, this, { onlyDirs: true }); + allDirs.push(...dirs); } return allDirs; @@ -244,22 +368,21 @@ class VsCodeIde implements IDE { new vscode.Position(startLine, 0), new vscode.Position(endLine, 0), ); - openEditorAndRevealRange(filepath, range).then(() => { - // TODO: Highlight lines - // this.ideUtils.highlightCode( - // { - // filepath, - // range, - // }, - // "#fff1" - // ); + openEditorAndRevealRange(filepath, range).then((editor) => { + // Select the lines + editor.selection = new vscode.Selection( + new vscode.Position(startLine, 0), + new vscode.Position(endLine, 0), + ); }); } async runCommand(command: string): Promise { if (vscode.window.terminals.length) { - vscode.window.terminals[0].show(); - vscode.window.terminals[0].sendText(command, false); + const terminal = + vscode.window.activeTerminal ?? vscode.window.terminals[0]; + terminal.show(); + terminal.sendText(command, false); } else { const terminal = vscode.window.createTerminal(); terminal.show(); @@ -331,8 +454,8 @@ class VsCodeIde implements IDE { } async getSearchResults(query: string): Promise { - let results = []; - for (let dir of await this.getWorkspaceDirs()) { + const results = []; + for (const dir of await this.getWorkspaceDirs()) { results.push(await this._searchDir(query, dir)); } @@ -382,12 +505,33 @@ class VsCodeIde implements IDE { } async listDir(dir: string): Promise<[string, FileType][]> { - const files = await vscode.workspace.fs.readDirectory(uriFromFilePath(dir)); - return files - .filter(([name, type]) => { - !(type === vscode.FileType.File && defaultIgnoreFile.ignores(name)); - }) - .map(([name, type]) => [path.join(dir, name), type]) as any; + return vscode.workspace.fs.readDirectory(uriFromFilePath(dir)) as any; + } + + getIdeSettingsSync(): IdeSettings { + const settings = vscode.workspace.getConfiguration("continue"); + const remoteConfigServerUrl = settings.get( + "remoteConfigServerUrl", + undefined, + ); + const ideSettings: IdeSettings = { + remoteConfigServerUrl, + remoteConfigSyncPeriod: settings.get( + "remoteConfigSyncPeriod", + 60, + ), + userToken: settings.get("userToken", ""), + enableControlServerBeta: internalBetaPathExists(), + // settings.get( + // "enableControlServerBeta", + // false, + // ), + }; + return ideSettings; + } + + async getIdeSettings(): Promise { + return this.getIdeSettingsSync(); } } diff --git a/extensions/vscode/src/lang-server/codeActions.ts b/extensions/vscode/src/lang-server/codeActions.ts index 0dbee4b43..7b7387939 100644 --- a/extensions/vscode/src/lang-server/codeActions.ts +++ b/extensions/vscode/src/lang-server/codeActions.ts @@ -15,34 +15,29 @@ class ContinueQuickFixProvider implements vscode.CodeActionProvider { return []; } - const createQuickFix = (edit: boolean) => { - const diagnostic = context.diagnostics[0]; - const quickFix = new vscode.CodeAction( - edit ? "Fix with Continue" : "Ask Continue", - vscode.CodeActionKind.QuickFix, - ); - quickFix.isPreferred = false; - const surroundingRange = new vscode.Range( - Math.max(0, range.start.line - 3), - 0, - Math.min(document.lineCount, range.end.line + 3), - 0, - ); - quickFix.command = { - command: "continue.quickFix", - title: "Continue Quick Fix", - arguments: [ - diagnostic.message, - document.getText(surroundingRange), - edit, - ], - }; - return quickFix; + const diagnostic = context.diagnostics[0]; + + const quickFix = new vscode.CodeAction( + "Ask Continue", + vscode.CodeActionKind.QuickFix, + ); + + quickFix.isPreferred = false; + + const surroundingRange = new vscode.Range( + Math.max(0, range.start.line - 3), + 0, + Math.min(document.lineCount, range.end.line + 3), + 0, + ); + + quickFix.command = { + command: "ahrefs-continue.quickFix", + title: "Ahrefs-Continue Quick Fix", + arguments: [surroundingRange, diagnostic.message], }; - return [ - // createQuickFix(true), - createQuickFix(false), - ]; + + return [quickFix]; } } diff --git a/extensions/vscode/src/lang-server/codeLens.ts b/extensions/vscode/src/lang-server/codeLens.ts deleted file mode 100644 index 13ef17df5..000000000 --- a/extensions/vscode/src/lang-server/codeLens.ts +++ /dev/null @@ -1,430 +0,0 @@ -import * as os from "os"; -import * as path from "path"; -import * as vscode from "vscode"; -import { DIFF_DIRECTORY, DiffManager } from "../diff/horizontal"; -import { VerticalDiffCodeLens } from "../diff/verticalPerLine/manager"; -import { editorSuggestionsLocked, editorToSuggestions } from "../suggestions"; -import { getAltOrOption, getMetaKeyLabel } from "../util/util"; -import { getExtensionUri } from "../util/vscode"; - -class VerticalPerLineCodeLensProvider implements vscode.CodeLensProvider { - private _eventEmitter: vscode.EventEmitter = - new vscode.EventEmitter(); - onDidChangeCodeLenses: vscode.Event = this._eventEmitter.event; - - public refresh(): void { - this._eventEmitter.fire(); - } - - constructor( - private readonly editorToVerticalDiffCodeLens: Map< - string, - VerticalDiffCodeLens[] - >, - ) { } - - public provideCodeLenses( - document: vscode.TextDocument, - _: vscode.CancellationToken, - ): vscode.CodeLens[] | Thenable { - const filepath = document.uri.fsPath; - const blocks = this.editorToVerticalDiffCodeLens.get(filepath); - if (!blocks) { - return []; - } - - const codeLenses: vscode.CodeLens[] = []; - for (let i = 0; i < blocks.length; i++) { - const block = blocks[i]; - const start = new vscode.Position(block.start, 0); - const range = new vscode.Range( - start, - start.translate(block.numGreen + block.numRed), - ); - if (codeLenses.length === 0) { - codeLenses.push( - new vscode.CodeLens(range, { - title: `Accept All (${getMetaKeyLabel()}⇧↩)`, - command: "ahrefs-continue.acceptVerticalDiffBlock", - arguments: [filepath, i], - }), - new vscode.CodeLens(range, { - title: `Reject All (${getMetaKeyLabel()}⇧⌫)`, - command: "ahrefs-continue.rejectVerticalDiffBlock", - arguments: [filepath, i], - }), - ); - } - codeLenses.push( - new vscode.CodeLens(range, { - title: `Accept${codeLenses.length === 2 - ? ` (${getAltOrOption()}${getMetaKeyLabel()}Y)` - : "" - }`, - command: "ahrefs-continue.acceptVerticalDiffBlock", - arguments: [filepath, i], - }), - new vscode.CodeLens(range, { - title: `Reject${codeLenses.length === 2 - ? ` (${getAltOrOption()}${getMetaKeyLabel()}N)` - : "" - }`, - command: "ahrefs-continue.rejectVerticalDiffBlock", - arguments: [filepath, i], - }), - ); - if (codeLenses.length === 4) { - codeLenses.push( - new vscode.CodeLens(range, { - title: `${getMetaKeyLabel()}I to add instructions`, - command: "", - }), - ); - } - } - - return codeLenses; - } -} - -class SuggestionsCodeLensProvider implements vscode.CodeLensProvider { - public provideCodeLenses( - document: vscode.TextDocument, - _: vscode.CancellationToken, - ): vscode.CodeLens[] | Thenable { - const suggestions = editorToSuggestions.get(document.uri.toString()); - if (!suggestions) { - return []; - } - const locked = editorSuggestionsLocked.get(document.uri.fsPath.toString()); - - const codeLenses: vscode.CodeLens[] = []; - for (const suggestion of suggestions) { - const range = new vscode.Range( - suggestion.oldRange.start, - suggestion.newRange.end, - ); - codeLenses.push( - new vscode.CodeLens(range, { - title: "Accept", - command: "ahrefs-continue.acceptSuggestion", - arguments: [suggestion], - }), - new vscode.CodeLens(range, { - title: "Reject", - command: "ahrefs-continue.rejectSuggestion", - arguments: [suggestion], - }), - ); - if (codeLenses.length === 2) { - codeLenses.push( - new vscode.CodeLens(range, { - title: `(${getMetaKeyLabel()}⇧↩/${getMetaKeyLabel()}⇧⌫ to accept/reject all)`, - command: "", - }), - ); - } - } - - return codeLenses; - } -} - -class DiffViewerCodeLensProvider implements vscode.CodeLensProvider { - diffManager: DiffManager; - - constructor(diffManager: DiffManager) { - this.diffManager = diffManager; - } - - public provideCodeLenses( - document: vscode.TextDocument, - _: vscode.CancellationToken, - ): vscode.CodeLens[] | Thenable { - if (path.dirname(document.uri.fsPath) === DIFF_DIRECTORY) { - const codeLenses: vscode.CodeLens[] = []; - let range = new vscode.Range(0, 0, 1, 0); - const diffInfo = this.diffManager.diffAtNewFilepath(document.uri.fsPath); - if (diffInfo) { - range = diffInfo.range; - } - codeLenses.push( - new vscode.CodeLens(range, { - title: `Accept All ✅ (${getMetaKeyLabel()}⇧↩)`, - command: "ahrefs-continue.acceptDiff", - arguments: [document.uri.fsPath], - }), - new vscode.CodeLens(range, { - title: `Reject All ❌ (${getMetaKeyLabel()}⇧⌫)`, - command: "ahrefs-continue.rejectDiff", - arguments: [document.uri.fsPath], - }), - // new vscode.CodeLens(range, { - // title: `Further Edit ✏️ (${getMetaKeyLabel()}⇧M)`, - // command: "ahrefs-continue.focusContinueInputWithEdit", - // }) - ); - return codeLenses; - } else { - return []; - } - } -} - -class ConfigPyCodeLensProvider implements vscode.CodeLensProvider { - public provideCodeLenses( - document: vscode.TextDocument, - _: vscode.CancellationToken, - ): vscode.CodeLens[] | Thenable { - const codeLenses: vscode.CodeLens[] = []; - - if ( - !document.uri.fsPath.endsWith(".continue/config.json") && - !document.uri.fsPath.endsWith(".continue\\config.json") - ) { - return codeLenses; - } - - const lines = document.getText().split(os.EOL); - let lineOfModels = lines.findIndex((line) => line.includes('"models": [')); - - if (lineOfModels >= 0) { - const range = new vscode.Range(lineOfModels, 0, lineOfModels + 1, 0); - // codeLenses.push( - // new vscode.CodeLens(range, { - // title: `+ Add a Model`, - // command: "ahrefs-continue.addModel", - // }) - // ); - } - - const lineOfSystemMessage = lines.findIndex((line) => - line.includes("ContinueConfig("), - ); - - if (lineOfSystemMessage >= 0) { - const range = new vscode.Range( - lineOfSystemMessage, - 0, - lineOfSystemMessage + 1, - 0, - ); - codeLenses.push( - new vscode.CodeLens(range, { - title: `✏️ Edit in UI`, - command: "ahrefs-continue.openSettingsUI", - }), - ); - } - - return codeLenses; - } -} - -interface TutorialCodeLensItems { - lineIncludes: string; - commands: vscode.Command[]; -} -const actions: TutorialCodeLensItems[] = [ - { - lineIncludes: "Step 2: Use the keyboard shortcut cmd/ctrl + L", - commands: [ - { - title: `Do it for me`, - command: "ahrefs-continue.focusContinueInput", - }, - ], - }, - { - lineIncludes: "Step 3: Ask a question", - commands: [ - { - title: `"what does this code do?"`, - command: "ahrefs-continue.sendMainUserInput", - arguments: ["what does this code do?"], - }, - { - title: `"what is an alternative to this?"`, - command: "ahrefs-continue.sendMainUserInput", - arguments: ["what is an alternative to this?"], - }, - ], - }, - { - lineIncludes: 'Step 3: Type "" and press Enter', - commands: [ - { - title: `"/edit make this more efficient"`, - command: "ahrefs-continue.sendMainUserInput", - arguments: ["/edit make this more efficient"], - }, - { - title: `"/edit write comments for this function"`, - command: "ahrefs-continue.sendMainUserInput", - arguments: ["/edit write comments for this function"], - }, - ], - }, - { - lineIncludes: "Step 1: Run this Python file", - commands: [ - { - title: "Run the file", - command: "ahrefs-continue.sendToTerminal", - arguments: [ - "python " + - path.join(getExtensionUri().fsPath, "continue_tutorial.py") + - "\n", - ], - }, - ], - }, - { - lineIncludes: "Step 2: Use the keyboard shortcut cmd/ctrl + shift + R", - commands: [ - { - title: "Debug the error", - command: "ahrefs-continue.debugTerminal", - }, - ], - }, -]; - -class TutorialCodeLensProvider implements vscode.CodeLensProvider { - public provideCodeLenses( - document: vscode.TextDocument, - _: vscode.CancellationToken, - ): vscode.CodeLens[] | Thenable { - const codeLenses: vscode.CodeLens[] = []; - - if (!document.uri.fsPath.endsWith("continue_tutorial.py")) { - return codeLenses; - } - - const lines = document.getText().split(os.EOL); - - for (const action of actions) { - const lineOfAction = lines.findIndex((line) => - line.includes(action.lineIncludes), - ); - - if (lineOfAction >= 0) { - const range = new vscode.Range(lineOfAction, 0, lineOfAction + 1, 0); - for (const command of action.commands) { - codeLenses.push(new vscode.CodeLens(range, command)); - } - } - } - - const lineOf11 = lines.findIndex((line) => - line.includes("Step 1: Highlight the function below"), - ); - if (lineOf11 >= 0) { - const range = new vscode.Range(lineOf11, 0, lineOf11 + 1, 0); - codeLenses.push( - new vscode.CodeLens(range, { - title: "Highlight the function", - command: "ahrefs-continue.selectRange", - arguments: [lineOf11 + 3, lineOf11 + 11], - }), - ); - } - const lineOf21 = lines.findIndex((line) => - line.includes("Step 1: Highlight this code"), - ); - if (lineOf21 >= 0) { - const range = new vscode.Range(lineOf21, 0, lineOf21 + 1, 0); - codeLenses.push( - new vscode.CodeLens(range, { - title: "Highlight the function", - command: "ahrefs-continue.selectRange", - arguments: [lineOf21 + 3, lineOf21 + 14], - }), - ); - } - - // Folding of the tutorial - const regionLines = lines - .map((line, i) => [line, i]) - .filter(([line, i]) => (line as string).startsWith("# region ")) - .map(([line, i]) => i); - for (const lineOfRegion of regionLines as number[]) { - const range = new vscode.Range(lineOfRegion, 0, lineOfRegion + 1, 0); - - const linesToFold = regionLines - .filter((i) => lineOfRegion !== i) - .flatMap((i) => { - return [i, (i as number) + 1]; - }); - codeLenses.push( - new vscode.CodeLens(range, { - title: `Begin Section`, - command: "ahrefs-continue.foldAndUnfold", - arguments: [linesToFold, [lineOfRegion, lineOfRegion + 1]], - }), - ); - } - - return codeLenses; - } -} - -export let verticalPerLineCodeLensProvider: vscode.Disposable | undefined = - undefined; -let diffsCodeLensDisposable: vscode.Disposable | undefined = undefined; -let suggestionsCodeLensDisposable: vscode.Disposable | undefined = undefined; -let configPyCodeLensDisposable: vscode.Disposable | undefined = undefined; -let tutorialCodeLensDisposable: vscode.Disposable | undefined = undefined; - -export function registerAllCodeLensProviders( - context: vscode.ExtensionContext, - diffManager: DiffManager, - editorToVerticalDiffCodeLens: Map, -) { - if (verticalPerLineCodeLensProvider) { - verticalPerLineCodeLensProvider.dispose(); - } - if (suggestionsCodeLensDisposable) { - suggestionsCodeLensDisposable.dispose(); - } - if (diffsCodeLensDisposable) { - diffsCodeLensDisposable.dispose(); - } - if (configPyCodeLensDisposable) { - configPyCodeLensDisposable.dispose(); - } - if (tutorialCodeLensDisposable) { - tutorialCodeLensDisposable.dispose(); - } - - const verticalDiffCodeLens = new VerticalPerLineCodeLensProvider( - editorToVerticalDiffCodeLens, - ); - verticalPerLineCodeLensProvider = vscode.languages.registerCodeLensProvider( - "*", - verticalDiffCodeLens, - ); - suggestionsCodeLensDisposable = vscode.languages.registerCodeLensProvider( - "*", - new SuggestionsCodeLensProvider(), - ); - diffsCodeLensDisposable = vscode.languages.registerCodeLensProvider( - "*", - new DiffViewerCodeLensProvider(diffManager), - ); - configPyCodeLensDisposable = vscode.languages.registerCodeLensProvider( - "*", - new ConfigPyCodeLensProvider(), - ); - tutorialCodeLensDisposable = vscode.languages.registerCodeLensProvider( - "*", - new TutorialCodeLensProvider(), - ); - context.subscriptions.push(verticalPerLineCodeLensProvider); - context.subscriptions.push(suggestionsCodeLensDisposable); - context.subscriptions.push(diffsCodeLensDisposable); - context.subscriptions.push(configPyCodeLensDisposable); - context.subscriptions.push(tutorialCodeLensDisposable); - - return verticalDiffCodeLens; -} diff --git a/extensions/vscode/src/lang-server/codeLens/index.ts b/extensions/vscode/src/lang-server/codeLens/index.ts new file mode 100644 index 000000000..8e4337016 --- /dev/null +++ b/extensions/vscode/src/lang-server/codeLens/index.ts @@ -0,0 +1 @@ +export { registerAllCodeLensProviders } from "./registerAllCodeLensProviders"; diff --git a/extensions/vscode/src/lang-server/codeLens/providers/ConfigPyCodeLensProvider.ts b/extensions/vscode/src/lang-server/codeLens/providers/ConfigPyCodeLensProvider.ts new file mode 100644 index 000000000..c3f374c48 --- /dev/null +++ b/extensions/vscode/src/lang-server/codeLens/providers/ConfigPyCodeLensProvider.ts @@ -0,0 +1,44 @@ +import * as vscode from "vscode"; +import * as os from "os"; + +export class ConfigPyCodeLensProvider implements vscode.CodeLensProvider { + public provideCodeLenses( + document: vscode.TextDocument, + _: vscode.CancellationToken, + ): vscode.CodeLens[] | Thenable { + const codeLenses: vscode.CodeLens[] = []; + + if ( + !document.uri.fsPath.endsWith(".continue/config.json") && + !document.uri.fsPath.endsWith(".continue\\config.json") + ) { + return codeLenses; + } + + const lines = document.getText().split(os.EOL); + const lineOfModels = lines.findIndex((line) => + line.includes('"models": ['), + ); + + const lineOfSystemMessage = lines.findIndex((line) => + line.includes("ContinueConfig("), + ); + + if (lineOfSystemMessage >= 0) { + const range = new vscode.Range( + lineOfSystemMessage, + 0, + lineOfSystemMessage + 1, + 0, + ); + codeLenses.push( + new vscode.CodeLens(range, { + title: "✏️ Edit in UI", + command: "continue.openSettingsUI", + }), + ); + } + + return codeLenses; + } +} diff --git a/extensions/vscode/src/lang-server/codeLens/providers/DiffViewerCodeLensProvider.ts b/extensions/vscode/src/lang-server/codeLens/providers/DiffViewerCodeLensProvider.ts new file mode 100644 index 000000000..405df9a24 --- /dev/null +++ b/extensions/vscode/src/lang-server/codeLens/providers/DiffViewerCodeLensProvider.ts @@ -0,0 +1,41 @@ +import path from "path"; +import * as vscode from "vscode"; +import { DiffManager, DIFF_DIRECTORY } from "../../../diff/horizontal"; +import { getMetaKeyLabel } from "../../../util/util"; + +export class DiffViewerCodeLensProvider implements vscode.CodeLensProvider { + diffManager: DiffManager; + + constructor(diffManager: DiffManager) { + this.diffManager = diffManager; + } + + public provideCodeLenses( + document: vscode.TextDocument, + _: vscode.CancellationToken, + ): vscode.CodeLens[] | Thenable { + if (path.dirname(document.uri.fsPath) === DIFF_DIRECTORY) { + const codeLenses: vscode.CodeLens[] = []; + let range = new vscode.Range(0, 0, 1, 0); + const diffInfo = this.diffManager.diffAtNewFilepath(document.uri.fsPath); + if (diffInfo) { + range = diffInfo.range; + } + codeLenses.push( + new vscode.CodeLens(range, { + title: `Accept All ✅ (${getMetaKeyLabel()}⇧⏎)`, + command: "continue.acceptDiff", + arguments: [document.uri.fsPath], + }), + new vscode.CodeLens(range, { + title: `Reject All ❌ (${getMetaKeyLabel()}⇧⌫)`, + command: "continue.rejectDiff", + arguments: [document.uri.fsPath], + }), + ); + return codeLenses; + } else { + return []; + } + } +} diff --git a/extensions/vscode/src/lang-server/codeLens/providers/QuickActionsCodeLensProvider.ts b/extensions/vscode/src/lang-server/codeLens/providers/QuickActionsCodeLensProvider.ts new file mode 100644 index 000000000..9a8f85c98 --- /dev/null +++ b/extensions/vscode/src/lang-server/codeLens/providers/QuickActionsCodeLensProvider.ts @@ -0,0 +1,133 @@ +import { ContinueConfig, QuickActionConfig } from "core"; +import * as vscode from "vscode"; +import { + CONTINUE_WORKSPACE_KEY, + getContinueWorkspaceConfig, +} from "../../../util/workspaceConfig"; +import { isTutorialFile } from "./TutorialCodeLensProvider"; +import { Telemetry } from "core/util/logging"; + +export const ENABLE_QUICK_ACTIONS_KEY = "enableQuickActions"; + +export function getQuickActionsConfig(config: ContinueConfig) { + return config.experimental?.quickActions; +} + +export function subscribeToVSCodeQuickActionsSettings(listener: Function) { + vscode.workspace.onDidChangeConfiguration((e) => { + const configKey = `${CONTINUE_WORKSPACE_KEY}.${ENABLE_QUICK_ACTIONS_KEY}`; + + if (e.affectsConfiguration(configKey)) { + Telemetry.capture("VSCode Quick Actions Settings Changed", { + enabled: quickActionsEnabledStatus(), + }); + + listener(); + } + }); +} + +export function toggleQuickActions() { + const curStatus = quickActionsEnabledStatus(); + + getContinueWorkspaceConfig().update(ENABLE_QUICK_ACTIONS_KEY, curStatus); +} + +export function quickActionsEnabledStatus() { + return getContinueWorkspaceConfig().get(ENABLE_QUICK_ACTIONS_KEY); +} + +/** + * A CodeLensProvider for Quick Actions. + * + * This class provides code lenses for Quick Actions, which can be either custom or default actions. + * It supports actions for functions and classes, and can be configured with custom quick action settings. + */ +export class QuickActionsCodeLensProvider implements vscode.CodeLensProvider { + /** + * Defines which code elements are eligible for Quick Actions. + * + * Right now, we only allow functions, methods and classes + * to keep things simple. + */ + static quickActionSymbolKinds = [ + vscode.SymbolKind.Function, + vscode.SymbolKind.Method, + vscode.SymbolKind.Class, + ]; + + customQuickActionsConfig?: QuickActionConfig[]; + + constructor(customQuickActionsConfigs?: QuickActionConfig[]) { + if (customQuickActionsConfigs) { + this.customQuickActionsConfig = customQuickActionsConfigs; + } + } + + getCustomCommands( + range: vscode.Range, + quickActionConfigs: QuickActionConfig[], + ): vscode.Command[] { + return quickActionConfigs.map(({ title, prompt, sendToChat }) => { + return sendToChat + ? { + title, + command: "continue.customQuickActionSendToChat", + arguments: [prompt, range], + } + : { + title, + command: "continue.customQuickActionStreamInlineEdit", + arguments: [prompt, range], + }; + }); + } + + getDefaultCommands(range: vscode.Range): vscode.Command[] { + const explain: vscode.Command = { + command: "continue.defaultQuickActionExplain", + title: "Explain", + arguments: [range], + }; + + const comment: vscode.Command = { + command: "continue.defaultQuickActionDocstring", + title: "Docstring", + arguments: [range], + }; + + return [explain, comment]; + } + + async provideCodeLenses( + document: vscode.TextDocument, + ): Promise { + // The tutorial file already has a lot of Code Lenses + // so we don't want to add more to it. + if (isTutorialFile(document.uri)) { + return []; + } + + const editor = vscode.window.activeTextEditor; + + if (!editor) { + return []; + } + + const symbols = await vscode.commands.executeCommand< + Array + >("vscode.executeDocumentSymbolProvider", document.uri); + + const filteredSmybols = symbols?.filter((def) => + QuickActionsCodeLensProvider.quickActionSymbolKinds.includes(def.kind), + ); + + return filteredSmybols.flatMap(({ range }) => { + const commands: vscode.Command[] = !!this.customQuickActionsConfig + ? this.getCustomCommands(range, this.customQuickActionsConfig) + : this.getDefaultCommands(range); + + return commands.map((command) => new vscode.CodeLens(range, command)); + }); + } +} \ No newline at end of file diff --git a/extensions/vscode/src/lang-server/codeLens/providers/SuggestionsCodeLensProvider.ts b/extensions/vscode/src/lang-server/codeLens/providers/SuggestionsCodeLensProvider.ts new file mode 100644 index 000000000..d0541d228 --- /dev/null +++ b/extensions/vscode/src/lang-server/codeLens/providers/SuggestionsCodeLensProvider.ts @@ -0,0 +1,45 @@ +import * as vscode from "vscode"; +import { editorToSuggestions } from "../../../suggestions"; +import { getMetaKeyLabel } from "../../../util/util"; + +export class SuggestionsCodeLensProvider implements vscode.CodeLensProvider { + public provideCodeLenses( + document: vscode.TextDocument, + _: vscode.CancellationToken, + ): vscode.CodeLens[] | Thenable { + const suggestions = editorToSuggestions.get(document.uri.toString()); + if (!suggestions) { + return []; + } + + const codeLenses: vscode.CodeLens[] = []; + for (const suggestion of suggestions) { + const range = new vscode.Range( + suggestion.oldRange.start, + suggestion.newRange.end, + ); + codeLenses.push( + new vscode.CodeLens(range, { + title: "Accept", + command: "continue.acceptSuggestion", + arguments: [suggestion], + }), + new vscode.CodeLens(range, { + title: "Reject", + command: "continue.rejectSuggestion", + arguments: [suggestion], + }), + ); + if (codeLenses.length === 2) { + codeLenses.push( + new vscode.CodeLens(range, { + title: `(${getMetaKeyLabel()}⇧⏎/${getMetaKeyLabel()}⇧⌫ to accept/reject all)`, + command: "", + }), + ); + } + } + + return codeLenses; + } +} diff --git a/extensions/vscode/src/lang-server/codeLens/providers/TutorialCodeLensProvider.ts b/extensions/vscode/src/lang-server/codeLens/providers/TutorialCodeLensProvider.ts new file mode 100644 index 000000000..7cbe87534 --- /dev/null +++ b/extensions/vscode/src/lang-server/codeLens/providers/TutorialCodeLensProvider.ts @@ -0,0 +1,145 @@ +import * as os from "node:os"; +import path from "path"; +import * as vscode from "vscode"; +import { getPlatform } from "../../../util/util"; +import { getExtensionUri } from "../../../util/vscode"; + +interface TutorialCodeLensItems { + lineIncludes: string; + commands: vscode.Command[]; +} + +const TUTORIAL_FILE_NAME = "continue_tutorial.py"; + +const cmdCtrl = getPlatform() === "mac" ? "Cmd" : "Ctrl"; + +const actions: TutorialCodeLensItems[] = [ + { + lineIncludes: `Step 2: Use the keyboard shortcut [${cmdCtrl}+L]`, + commands: [ + { + title: `${cmdCtrl}+L`, + command: "continue.focusContinueInput", + }, + ], + }, + { + lineIncludes: "Step 3: Ask a question", + commands: [ + { + title: `"what does this code do?"`, + command: "continue.sendMainUserInput", + arguments: ["what does this code do?"], + }, + { + title: `"what is an alternative to this?"`, + command: "continue.sendMainUserInput", + arguments: ["what is an alternative to this?"], + }, + ], + }, + { + lineIncludes: `Step 2: Use the keyboard shortcut [${cmdCtrl}+I] to edit`, + commands: [ + { + title: `${cmdCtrl}+I`, + command: "continue.quickEdit", + arguments: ["Add comments"], + }, + ], + }, + { + lineIncludes: "Step 1: Run this Python file", + commands: [ + { + title: "Run the file", + command: "continue.sendToTerminal", + arguments: [ + `python ${path.join( + getExtensionUri().fsPath, + "continue_tutorial.py", + )}\n`, + ], + }, + ], + }, + { + lineIncludes: "Step 2: Use the keyboard shortcut cmd/ctrl + shift + R", + commands: [ + { + title: "Debug the error", + command: "continue.debugTerminal", + }, + ], + }, + { + lineIncludes: `Step 2: Use the keyboard shortcut [${cmdCtrl}+Shift+R]`, + commands: [ + { + title: `${cmdCtrl}+Shift+R`, + command: "continue.debugTerminal", + }, + ], + }, +]; + +export function isTutorialFile(uri: vscode.Uri) { + return uri.fsPath.endsWith(TUTORIAL_FILE_NAME); +} + +export class TutorialCodeLensProvider implements vscode.CodeLensProvider { + public provideCodeLenses( + document: vscode.TextDocument, + _: vscode.CancellationToken, + ): vscode.CodeLens[] | Thenable { + const codeLenses: vscode.CodeLens[] = []; + + if (!isTutorialFile(document.uri)) { + return codeLenses; + } + + const lines = document.getText().split(os.EOL); + + for (const action of actions) { + const lineOfAction = lines.findIndex((line) => + line.includes(action.lineIncludes), + ); + + if (lineOfAction >= 0) { + const range = new vscode.Range(lineOfAction, 0, lineOfAction + 1, 0); + for (const command of action.commands) { + codeLenses.push(new vscode.CodeLens(range, command)); + } + } + } + + const lineOf11 = lines.findIndex((line) => + line.includes("Step 1: Highlight the function below"), + ); + if (lineOf11 >= 0) { + const range = new vscode.Range(lineOf11, 0, lineOf11 + 1, 0); + codeLenses.push( + new vscode.CodeLens(range, { + title: "Highlight the function", + command: "continue.selectRange", + arguments: [lineOf11 + 3, lineOf11 + 11], + }), + ); + } + const lineOf21 = lines.findIndex((line) => + line.includes("Step 1: Highlight this code"), + ); + if (lineOf21 >= 0) { + const range = new vscode.Range(lineOf21, 0, lineOf21 + 1, 0); + codeLenses.push( + new vscode.CodeLens(range, { + title: "Highlight the function", + command: "continue.selectRange", + arguments: [lineOf21 + 3, lineOf21 + 14], + }), + ); + } + + return codeLenses; + } +} \ No newline at end of file diff --git a/extensions/vscode/src/lang-server/codeLens/providers/VerticalPerLineCodeLensProvider.ts b/extensions/vscode/src/lang-server/codeLens/providers/VerticalPerLineCodeLensProvider.ts new file mode 100644 index 000000000..285d67bb5 --- /dev/null +++ b/extensions/vscode/src/lang-server/codeLens/providers/VerticalPerLineCodeLensProvider.ts @@ -0,0 +1,96 @@ +import * as vscode from "vscode"; +import { VerticalDiffCodeLens } from "../../../diff/verticalPerLine/manager"; +import { getAltOrOption, getMetaKeyLabel } from "../../../util/util"; + +export class VerticalPerLineCodeLensProvider + implements vscode.CodeLensProvider +{ + private _eventEmitter: vscode.EventEmitter = + new vscode.EventEmitter(); + + onDidChangeCodeLenses: vscode.Event = this._eventEmitter.event; + + public refresh(): void { + this._eventEmitter.fire(); + } + + constructor( + private readonly editorToVerticalDiffCodeLens: Map< + string, + VerticalDiffCodeLens[] + >, + ) {} + + public provideCodeLenses( + document: vscode.TextDocument, + _: vscode.CancellationToken, + ): vscode.CodeLens[] | Thenable { + const filepath = document.uri.fsPath; + const blocks = this.editorToVerticalDiffCodeLens.get(filepath); + + if (!blocks) { + return []; + } + + const codeLenses: vscode.CodeLens[] = []; + + for (let i = 0; i < blocks.length; i++) { + const isFirstBlockInMultiBlockDocument = + codeLenses.length === 0 && blocks.length > 1; + + const block = blocks[i]; + const start = new vscode.Position(block.start, 0); + const range = new vscode.Range( + start, + start.translate(block.numGreen + block.numRed), + ); + + if (isFirstBlockInMultiBlockDocument) { + codeLenses.push( + new vscode.CodeLens(range, { + title: `Accept All (${getMetaKeyLabel()}⇧↩)`, + command: "continue.acceptDiff", + arguments: [filepath, i], + }), + new vscode.CodeLens(range, { + title: `Reject All (${getMetaKeyLabel()}⇧⌫)`, + command: "continue.rejectDiff", + arguments: [filepath, i], + }), + ); + } + + codeLenses.push( + new vscode.CodeLens(range, { + title: `Accept${ + codeLenses.length === 2 + ? ` (${getAltOrOption()}${getMetaKeyLabel()}Y)` + : "" + }`, + command: "ahrefs-continue.acceptVerticalDiffBlock", + arguments: [filepath, i], + }), + new vscode.CodeLens(range, { + title: `Reject${ + codeLenses.length === 2 + ? ` (${getAltOrOption()}${getMetaKeyLabel()}N)` + : "" + }`, + command: "ahrefs-continue.rejectVerticalDiffBlock", + arguments: [filepath, i], + }), + ); + + if (codeLenses.length === 4) { + codeLenses.push( + new vscode.CodeLens(range, { + title: `${getMetaKeyLabel()}I to add instructions`, + command: "", + }), + ); + } + } + + return codeLenses; + } +} diff --git a/extensions/vscode/src/lang-server/codeLens/providers/index.ts b/extensions/vscode/src/lang-server/codeLens/providers/index.ts new file mode 100644 index 000000000..f5bdfc4d7 --- /dev/null +++ b/extensions/vscode/src/lang-server/codeLens/providers/index.ts @@ -0,0 +1,6 @@ +export { ConfigPyCodeLensProvider } from "./ConfigPyCodeLensProvider"; +export { DiffViewerCodeLensProvider } from "./DiffViewerCodeLensProvider"; +export { QuickActionsCodeLensProvider } from "./QuickActionsCodeLensProvider"; +export { SuggestionsCodeLensProvider } from "./SuggestionsCodeLensProvider"; +export { TutorialCodeLensProvider } from "./TutorialCodeLensProvider"; +export { VerticalPerLineCodeLensProvider } from "./VerticalPerLineCodeLensProvider"; diff --git a/extensions/vscode/src/lang-server/codeLens/registerAllCodeLensProviders.ts b/extensions/vscode/src/lang-server/codeLens/registerAllCodeLensProviders.ts new file mode 100644 index 000000000..89066fbc8 --- /dev/null +++ b/extensions/vscode/src/lang-server/codeLens/registerAllCodeLensProviders.ts @@ -0,0 +1,142 @@ +import { ContinueConfig } from "core"; +import * as vscode from "vscode"; +import { VerticalDiffCodeLens } from "../../diff/verticalPerLine/manager"; +import { DiffManager } from "../../diff/horizontal"; +import * as providers from "./providers"; +import { + getQuickActionsConfig, + quickActionsEnabledStatus, + subscribeToVSCodeQuickActionsSettings, +} from "./providers/QuickActionsCodeLensProvider"; + +const { registerCodeLensProvider } = vscode.languages; + +export let verticalPerLineCodeLensProvider: vscode.Disposable | undefined = + undefined; +let diffsCodeLensDisposable: vscode.Disposable | undefined = undefined; +let suggestionsCodeLensDisposable: vscode.Disposable | undefined = undefined; +let configPyCodeLensDisposable: vscode.Disposable | undefined = undefined; +let tutorialCodeLensDisposable: vscode.Disposable | undefined = undefined; +let quickActionsCodeLensDisposable: vscode.Disposable | undefined = undefined; + +/** + * Registers the Quick Actions CodeLens provider if Quick Actions are enabled. + * + * This function checks if Quick Actions are enabled in the VSCode workspace settings, + * and if so, it registers a new QuickActionsCodeLensProvider. If the user has custom + * actions defined in their config, it initiaizes the provider with these actions. + * + * If a previous provider was registered, it is disposed of before the new one is created. + * + * @param config - The Continue configuration object + * @param context - The VS Code extension context + */ +function registerQuickActionsProvider( + config: ContinueConfig, + context: vscode.ExtensionContext, +) { + if (quickActionsCodeLensDisposable) { + quickActionsCodeLensDisposable.dispose(); + } + + if (quickActionsEnabledStatus()) { + const quickActionsConfig = getQuickActionsConfig(config); + + quickActionsCodeLensDisposable = registerCodeLensProvider( + "*", + new providers.QuickActionsCodeLensProvider(quickActionsConfig), + ); + + context.subscriptions.push(quickActionsCodeLensDisposable); + } +} + +/** + * Registers all CodeLens providers for the Continue extension. + * + * This function disposes of any existing CodeLens providers and registers new ones for: + * - Vertical per-line diffs + * - Suggestions + * - Diff viewer + * - Config.py + * - Tutorial + * - Quick Actions + * + * It also sets up a subscription to VS Code Quick Actions settings changes. + * + * @param context - The VS Code extension context + * @param diffManager - The DiffManager instance for managing diffs + * @param editorToVerticalDiffCodeLens - A Map of editor IDs to VerticalDiffCodeLens arrays + * @param config - The Continue configuration object + * + * @returns An object containing the verticalDiffCodeLens provider + */ +export function registerAllCodeLensProviders( + context: vscode.ExtensionContext, + diffManager: DiffManager, + editorToVerticalDiffCodeLens: Map, + config: ContinueConfig, +) { + if (verticalPerLineCodeLensProvider) { + verticalPerLineCodeLensProvider.dispose(); + } + + if (suggestionsCodeLensDisposable) { + suggestionsCodeLensDisposable.dispose(); + } + + if (diffsCodeLensDisposable) { + diffsCodeLensDisposable.dispose(); + } + + if (configPyCodeLensDisposable) { + configPyCodeLensDisposable.dispose(); + } + + if (tutorialCodeLensDisposable) { + tutorialCodeLensDisposable.dispose(); + } + + const verticalDiffCodeLens = new providers.VerticalPerLineCodeLensProvider( + editorToVerticalDiffCodeLens, + ); + + verticalPerLineCodeLensProvider = registerCodeLensProvider( + "*", + verticalDiffCodeLens, + ); + + suggestionsCodeLensDisposable = registerCodeLensProvider( + "*", + new providers.SuggestionsCodeLensProvider(), + ); + + diffsCodeLensDisposable = registerCodeLensProvider( + "*", + new providers.DiffViewerCodeLensProvider(diffManager), + ); + + configPyCodeLensDisposable = registerCodeLensProvider( + "*", + new providers.ConfigPyCodeLensProvider(), + ); + + tutorialCodeLensDisposable = registerCodeLensProvider( + "*", + new providers.TutorialCodeLensProvider(), + ); + + registerQuickActionsProvider(config, context); + + subscribeToVSCodeQuickActionsSettings(() => + registerQuickActionsProvider(config, context), + ); + + context.subscriptions.push(verticalPerLineCodeLensProvider); + context.subscriptions.push(suggestionsCodeLensDisposable); + context.subscriptions.push(diffsCodeLensDisposable); + context.subscriptions.push(configPyCodeLensDisposable); + context.subscriptions.push(tutorialCodeLensDisposable); + + return { verticalDiffCodeLens }; +} diff --git a/extensions/vscode/src/otherExtensions/git.d.ts b/extensions/vscode/src/otherExtensions/git.d.ts new file mode 100644 index 000000000..15f48aaa4 --- /dev/null +++ b/extensions/vscode/src/otherExtensions/git.d.ts @@ -0,0 +1,437 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +import { + CancellationToken, + Command, + Disposable, + Event, + ProviderResult, + Uri, +} from "vscode"; +export { ProviderResult } from "vscode"; + +export interface Git { + readonly path: string; +} + +export interface InputBox { + value: string; +} + +export const enum ForcePushMode { + Force, + ForceWithLease, + ForceWithLeaseIfIncludes, +} + +export const enum RefType { + Head, + RemoteHead, + Tag, +} + +export interface Ref { + readonly type: RefType; + readonly name?: string; + readonly commit?: string; + readonly remote?: string; +} + +export interface UpstreamRef { + readonly remote: string; + readonly name: string; + readonly commit?: string; +} + +export interface Branch extends Ref { + readonly upstream?: UpstreamRef; + readonly ahead?: number; + readonly behind?: number; +} + +export interface CommitShortStat { + readonly files: number; + readonly insertions: number; + readonly deletions: number; +} + +export interface Commit { + readonly hash: string; + readonly message: string; + readonly parents: string[]; + readonly authorDate?: Date; + readonly authorName?: string; + readonly authorEmail?: string; + readonly commitDate?: Date; + readonly shortStat?: CommitShortStat; +} + +export interface Submodule { + readonly name: string; + readonly path: string; + readonly url: string; +} + +export interface Remote { + readonly name: string; + readonly fetchUrl?: string; + readonly pushUrl?: string; + readonly isReadOnly: boolean; +} + +export const enum Status { + INDEX_MODIFIED, + INDEX_ADDED, + INDEX_DELETED, + INDEX_RENAMED, + INDEX_COPIED, + + MODIFIED, + DELETED, + UNTRACKED, + IGNORED, + INTENT_TO_ADD, + INTENT_TO_RENAME, + TYPE_CHANGED, + + ADDED_BY_US, + ADDED_BY_THEM, + DELETED_BY_US, + DELETED_BY_THEM, + BOTH_ADDED, + BOTH_DELETED, + BOTH_MODIFIED, +} + +export interface Change { + /** + * Returns either `originalUri` or `renameUri`, depending + * on whether this change is a rename change. When + * in doubt always use `uri` over the other two alternatives. + */ + readonly uri: Uri; + readonly originalUri: Uri; + readonly renameUri: Uri | undefined; + readonly status: Status; +} + +export interface RepositoryState { + readonly HEAD: Branch | undefined; + readonly refs: Ref[]; + readonly remotes: Remote[]; + readonly submodules: Submodule[]; + readonly rebaseCommit: Commit | undefined; + + readonly mergeChanges: Change[]; + readonly indexChanges: Change[]; + readonly workingTreeChanges: Change[]; + + readonly onDidChange: Event; +} + +export interface RepositoryUIState { + readonly selected: boolean; + readonly onDidChange: Event; +} + +/** + * Log options. + */ +export interface LogOptions { + /** Max number of log entries to retrieve. If not specified, the default is 32. */ + readonly maxEntries?: number; + readonly path?: string; + /** A commit range, such as "0a47c67f0fb52dd11562af48658bc1dff1d75a38..0bb4bdea78e1db44d728fd6894720071e303304f" */ + readonly range?: string; + readonly reverse?: boolean; + readonly sortByAuthorDate?: boolean; + readonly shortStats?: boolean; + readonly author?: string; +} + +export interface CommitOptions { + all?: boolean | "tracked"; + amend?: boolean; + signoff?: boolean; + signCommit?: boolean; + empty?: boolean; + noVerify?: boolean; + requireUserConfig?: boolean; + useEditor?: boolean; + verbose?: boolean; + /** + * string - execute the specified command after the commit operation + * undefined - execute the command specified in git.postCommitCommand + * after the commit operation + * null - do not execute any command after the commit operation + */ + postCommitCommand?: string | null; +} + +export interface FetchOptions { + remote?: string; + ref?: string; + all?: boolean; + prune?: boolean; + depth?: number; +} + +export interface InitOptions { + defaultBranch?: string; +} + +export interface RefQuery { + readonly contains?: string; + readonly count?: number; + readonly pattern?: string; + readonly sort?: "alphabetically" | "committerdate"; +} + +export interface BranchQuery extends RefQuery { + readonly remote?: boolean; +} + +export interface Repository { + readonly rootUri: Uri; + readonly inputBox: InputBox; + readonly state: RepositoryState; + readonly ui: RepositoryUIState; + + readonly onDidCommit: Event; + + getConfigs(): Promise<{ key: string; value: string }[]>; + getConfig(key: string): Promise; + setConfig(key: string, value: string): Promise; + getGlobalConfig(key: string): Promise; + + getObjectDetails( + treeish: string, + path: string, + ): Promise<{ mode: string; object: string; size: number }>; + detectObjectType( + object: string, + ): Promise<{ mimetype: string; encoding?: string }>; + buffer(ref: string, path: string): Promise; + show(ref: string, path: string): Promise; + getCommit(ref: string): Promise; + + add(paths: string[]): Promise; + revert(paths: string[]): Promise; + clean(paths: string[]): Promise; + + apply(patch: string, reverse?: boolean): Promise; + diff(cached?: boolean): Promise; + diffWithHEAD(): Promise; + diffWithHEAD(path: string): Promise; + diffWith(ref: string): Promise; + diffWith(ref: string, path: string): Promise; + diffIndexWithHEAD(): Promise; + diffIndexWithHEAD(path: string): Promise; + diffIndexWith(ref: string): Promise; + diffIndexWith(ref: string, path: string): Promise; + diffBlobs(object1: string, object2: string): Promise; + diffBetween(ref1: string, ref2: string): Promise; + diffBetween(ref1: string, ref2: string, path: string): Promise; + + hashObject(data: string): Promise; + + createBranch(name: string, checkout: boolean, ref?: string): Promise; + deleteBranch(name: string, force?: boolean): Promise; + getBranch(name: string): Promise; + getBranches( + query: BranchQuery, + cancellationToken?: CancellationToken, + ): Promise; + getBranchBase(name: string): Promise; + setBranchUpstream(name: string, upstream: string): Promise; + + getRefs( + query: RefQuery, + cancellationToken?: CancellationToken, + ): Promise; + + getMergeBase(ref1: string, ref2: string): Promise; + + tag(name: string, upstream: string): Promise; + deleteTag(name: string): Promise; + + status(): Promise; + checkout(treeish: string): Promise; + + addRemote(name: string, url: string): Promise; + removeRemote(name: string): Promise; + renameRemote(name: string, newName: string): Promise; + + fetch(options?: FetchOptions): Promise; + fetch(remote?: string, ref?: string, depth?: number): Promise; + pull(unshallow?: boolean): Promise; + push( + remoteName?: string, + branchName?: string, + setUpstream?: boolean, + force?: ForcePushMode, + ): Promise; + + blame(path: string): Promise; + log(options?: LogOptions): Promise; + + commit(message: string, opts?: CommitOptions): Promise; + merge(ref: string): Promise; + mergeAbort(): Promise; +} + +export interface RemoteSource { + readonly name: string; + readonly description?: string; + readonly url: string | string[]; +} + +export interface RemoteSourceProvider { + readonly name: string; + readonly icon?: string; // codicon name + readonly supportsQuery?: boolean; + getRemoteSources(query?: string): ProviderResult; + getBranches?(url: string): ProviderResult; + publishRepository?(repository: Repository): Promise; +} + +export interface RemoteSourcePublisher { + readonly name: string; + readonly icon?: string; // codicon name + publishRepository(repository: Repository): Promise; +} + +export interface Credentials { + readonly username: string; + readonly password: string; +} + +export interface CredentialsProvider { + getCredentials(host: Uri): ProviderResult; +} + +export interface PostCommitCommandsProvider { + getCommands(repository: Repository): Command[]; +} + +export interface PushErrorHandler { + handlePushError( + repository: Repository, + remote: Remote, + refspec: string, + error: Error & { gitErrorCode: GitErrorCodes }, + ): Promise; +} + +export interface BranchProtection { + readonly remote: string; + readonly rules: BranchProtectionRule[]; +} + +export interface BranchProtectionRule { + readonly include?: string[]; + readonly exclude?: string[]; +} + +export interface BranchProtectionProvider { + onDidChangeBranchProtection: Event; + provideBranchProtection(): BranchProtection[]; +} + +export type APIState = "uninitialized" | "initialized"; + +export interface PublishEvent { + repository: Repository; + branch?: string; +} + +export interface API { + readonly state: APIState; + readonly onDidChangeState: Event; + readonly onDidPublish: Event; + readonly git: Git; + readonly repositories: Repository[]; + readonly onDidOpenRepository: Event; + readonly onDidCloseRepository: Event; + + toGitUri(uri: Uri, ref: string): Uri; + getRepository(uri: Uri): Repository | null; + init(root: Uri, options?: InitOptions): Promise; + openRepository(root: Uri): Promise; + + registerRemoteSourcePublisher(publisher: RemoteSourcePublisher): Disposable; + registerRemoteSourceProvider(provider: RemoteSourceProvider): Disposable; + registerCredentialsProvider(provider: CredentialsProvider): Disposable; + registerPostCommitCommandsProvider( + provider: PostCommitCommandsProvider, + ): Disposable; + registerPushErrorHandler(handler: PushErrorHandler): Disposable; + registerBranchProtectionProvider( + root: Uri, + provider: BranchProtectionProvider, + ): Disposable; +} + +export interface GitExtension { + readonly enabled: boolean; + readonly onDidChangeEnablement: Event; + + /** + * Returns a specific API version. + * + * Throws error if git extension is disabled. You can listen to the + * [GitExtension.onDidChangeEnablement](#GitExtension.onDidChangeEnablement) event + * to know when the extension becomes enabled/disabled. + * + * @param version Version number. + * @returns API instance + */ + getAPI(version: 1): API; +} + +export const enum GitErrorCodes { + BadConfigFile = "BadConfigFile", + AuthenticationFailed = "AuthenticationFailed", + NoUserNameConfigured = "NoUserNameConfigured", + NoUserEmailConfigured = "NoUserEmailConfigured", + NoRemoteRepositorySpecified = "NoRemoteRepositorySpecified", + NotAGitRepository = "NotAGitRepository", + NotAtRepositoryRoot = "NotAtRepositoryRoot", + Conflict = "Conflict", + StashConflict = "StashConflict", + UnmergedChanges = "UnmergedChanges", + PushRejected = "PushRejected", + ForcePushWithLeaseRejected = "ForcePushWithLeaseRejected", + ForcePushWithLeaseIfIncludesRejected = "ForcePushWithLeaseIfIncludesRejected", + RemoteConnectionError = "RemoteConnectionError", + DirtyWorkTree = "DirtyWorkTree", + CantOpenResource = "CantOpenResource", + GitNotFound = "GitNotFound", + CantCreatePipe = "CantCreatePipe", + PermissionDenied = "PermissionDenied", + CantAccessRemote = "CantAccessRemote", + RepositoryNotFound = "RepositoryNotFound", + RepositoryIsLocked = "RepositoryIsLocked", + BranchNotFullyMerged = "BranchNotFullyMerged", + NoRemoteReference = "NoRemoteReference", + InvalidBranchName = "InvalidBranchName", + BranchAlreadyExists = "BranchAlreadyExists", + NoLocalChanges = "NoLocalChanges", + NoStashFound = "NoStashFound", + LocalChangesOverwritten = "LocalChangesOverwritten", + NoUpstreamBranch = "NoUpstreamBranch", + IsInSubmodule = "IsInSubmodule", + WrongCase = "WrongCase", + CantLockRef = "CantLockRef", + CantRebaseMultipleBranches = "CantRebaseMultipleBranches", + PatchDoesNotApply = "PatchDoesNotApply", + NoPathFound = "NoPathFound", + UnknownPath = "UnknownPath", + EmptyCommitMessage = "EmptyCommitMessage", + BranchFastForwardRejected = "BranchFastForwardRejected", + BranchNotYetBorn = "BranchNotYetBorn", + TagConflict = "TagConflict", +} diff --git a/extensions/vscode/src/quickEdit/InputBoxWithHistory.ts b/extensions/vscode/src/quickEdit/InputBoxWithHistory.ts new file mode 100644 index 000000000..0b8d993c1 --- /dev/null +++ b/extensions/vscode/src/quickEdit/InputBoxWithHistory.ts @@ -0,0 +1,181 @@ +import * as vscode from "vscode"; + +// Because we have to hide and show the input box again to allow history, this class can act like a more contiguous input box. +export default class InputBoxWithHistory implements vscode.Disposable { + private static MaxSize = 50; + private static HistoryKey = "quickEditHistory"; + private currentIndex: number; + private history: string[] = []; + + private cancellationReason: "up" | "down" | undefined = undefined; + private readonly completionEventEmitter = new vscode.EventEmitter< + string | undefined + >(); + private currentInputBoxCancellationTokenSource: + | vscode.CancellationTokenSource + | undefined = undefined; + + private disposables: vscode.Disposable[] = []; + + constructor( + private readonly context: vscode.ExtensionContext, + private readonly historyUpEvent: vscode.Event, + private readonly historyDownEvent: vscode.Event, + private readonly options: vscode.InputBoxOptions, + ) { + this.history = this.context.globalState.get( + InputBoxWithHistory.HistoryKey, + [], + ); + this.currentIndex = this.history.length; + + this.disposables.push( + this.historyUpEvent(() => { + const value = this.up(); + this.cancellationReason = "up"; + + if (typeof value === "undefined") { + return; + } + this._displayInputBox(value); + }), + ); + this.disposables.push( + this.historyDownEvent(() => { + const value = this.down(); + this.cancellationReason = "down"; + + if (typeof value === "undefined") { + return; + } + this._displayInputBox(value); + }), + ); + } + + dispose() { + if (this.currentInputBoxCancellationTokenSource) { + this.currentInputBoxCancellationTokenSource.dispose(); + } + this.completionEventEmitter.dispose(); + this.disposables.forEach((disposable) => disposable.dispose()); + vscode.commands.executeCommand( + "setContext", + "ahrefs-continue.quickEditHistoryFocused", + false, + ); + } + + appendToHistory(item: string) { + let history = this.history; + // Remove duplicate if exists + if (history[history.length - 1] === item) { + history = history.slice(0, -1); + } + + // Add new item + history.push(item); + + // Truncate if over max size + if (history.length > InputBoxWithHistory.MaxSize) { + history = history.slice(-InputBoxWithHistory.MaxSize); + } + + this.context.globalState.update(InputBoxWithHistory.HistoryKey, history); + } + + up(): string | undefined { + if (this.currentIndex > 0) { + this.currentIndex--; + return this.history[this.currentIndex]; + } + return undefined; + } + + down(): string | undefined { + if (this.currentIndex < this.history.length - 1) { + this.currentIndex++; + return this.history[this.currentIndex]; + } else if (this.currentIndex === this.history.length - 1) { + this.currentIndex++; + return ""; + } + return undefined; + } + + private _displayInputBox(value?: string) { + if (this.currentInputBoxCancellationTokenSource) { + this.currentInputBoxCancellationTokenSource.cancel(); + } + + this.currentInputBoxCancellationTokenSource = + new vscode.CancellationTokenSource(); + this.currentInputBoxCancellationTokenSource.token.onCancellationRequested( + () => { + // Up/down will cancel the input box, but we don't want that to trigger everything to be disposed + if ( + this.cancellationReason === "up" || + this.cancellationReason === "down" + ) { + return; + } + this.completionEventEmitter.fire(undefined); + }, + ); + + const options = { + ...this.options, + }; + if (value) { + options.value = value; + } + vscode.window + .showInputBox(options, this.currentInputBoxCancellationTokenSource.token) + .then((input) => { + if ( + (!input && this.cancellationReason === "up") || + this.cancellationReason === "down" + ) { + return; + } + this.completionEventEmitter.fire(input); + }); + + setTimeout(() => { + this.cancellationReason = undefined; + }, 100); + } + + async getInput(): Promise { + try { + vscode.commands.executeCommand( + "setContext", + "ahrefs-continue.quickEditHistoryFocused", + true, + ); + + return await new Promise((resolve, reject) => { + const completionDisposable = this.completionEventEmitter.event( + (input) => { + resolve(input); + completionDisposable.dispose(); + if (input) { + this.appendToHistory(input); + } + this.dispose(); + }, + ); + + this._displayInputBox(); + }); + } catch (e) { + console.error(e); + } finally { + vscode.commands.executeCommand( + "setContext", + "ahrefs-continue.quickEditHistoryFocused", + false, + ); + } + } +} \ No newline at end of file diff --git a/extensions/vscode/src/quickEdit/QuickEdit.ts b/extensions/vscode/src/quickEdit/QuickEdit.ts new file mode 100644 index 000000000..707bc97e9 --- /dev/null +++ b/extensions/vscode/src/quickEdit/QuickEdit.ts @@ -0,0 +1,196 @@ +import { IDE } from "core"; +import { IConfigHandler } from "core/config/IConfigHandler"; +import { fetchwithRequestOptions } from "core/util/fetchWithOptions"; +import * as vscode from "vscode"; +import { VerticalPerLineDiffManager } from "../diff/verticalPerLine/manager"; +import { getPlatform } from "../util/util"; +import { VsCodeWebviewProtocol } from "../webviewProtocol"; +import InputBoxWithHistory from "./InputBoxWithHistory"; + +interface QuickEditFlowStuff { + defaultModelTitle: string; + quickPickItems: vscode.QuickPickItem[]; + previousInput: string | undefined; + injectedPrompt?: string | undefined; +} + +export class QuickEdit { + constructor( + private readonly verticalDiffManager: VerticalPerLineDiffManager, + private readonly configHandler: IConfigHandler, + private readonly webviewProtocol: VsCodeWebviewProtocol, + private readonly ide: IDE, + private readonly context: vscode.ExtensionContext, + private readonly historyUpEvent: vscode.Event, + private readonly historyDownEvent: vscode.Event, + ) {} + + private async _getDefaultModelTitle(): Promise { + const config = await this.configHandler.loadConfig(); + const ws_config = vscode.workspace.getConfiguration(); + let commandModelTitle = ws_config.get('ahrefs-continue.commandModel', ''); + + if (commandModelTitle === "") { + commandModelTitle = config.commandModels[0].title ?? config.commandModels[0].model; + } + + return commandModelTitle + } + + private async _getQuickPickItems(): Promise { + const contextProviders = (await this.configHandler.loadConfig()) + .contextProviders; + const quickPickItems = + contextProviders + ?.filter((provider) => provider.description.type === "normal") + .map((provider) => { + return { + label: provider.description.displayTitle, + description: provider.description.title, + detail: provider.description.description, + }; + }) || []; + return quickPickItems; + } + + private async _getStuff( + injectedPrompt: string | undefined, + ): Promise { + const editor = vscode.window.activeTextEditor; + const existingHandler = this.verticalDiffManager.getHandlerForFile( + editor?.document.uri.fsPath ?? "", + ); + const previousInput = existingHandler?.input; + const stuff: QuickEditFlowStuff = { + defaultModelTitle: await this._getDefaultModelTitle(), + quickPickItems: await this._getQuickPickItems(), + previousInput, + injectedPrompt, + }; + return stuff; + } + + async _getTextInputOptions(stuff: QuickEditFlowStuff) { + const selectionEmpty = vscode.window.activeTextEditor?.selection.isEmpty; + const addContextMsg = stuff.quickPickItems.length + ? " (or press enter to add context first)" + : ""; + const textInputOptions: vscode.InputBoxOptions = { + placeHolder: selectionEmpty + ? `Type instructions to generate code${addContextMsg}` + : `Describe how to edit the highlighted code${addContextMsg}`, + title: `${getPlatform() === "mac" ? "Cmd" : "Ctrl"}+I`, + prompt: `[${stuff.defaultModelTitle}]`, + value: stuff.injectedPrompt, + ignoreFocusOut: true, + }; + if (stuff.previousInput) { + textInputOptions.value = stuff.previousInput + ", "; + textInputOptions.valueSelection = [ + textInputOptions.value.length, + textInputOptions.value.length, + ]; + } + return textInputOptions; + } + + async _collectTextInput( + stuff: QuickEditFlowStuff, + ): Promise { + const inputBox = new InputBoxWithHistory( + this.context, + this.historyUpEvent, + this.historyDownEvent, + await this._getTextInputOptions(stuff), + ); + const input = await inputBox.getInput(); + inputBox.dispose(); + return input; + } + + private async _runWithContextItems(stuff: QuickEditFlowStuff) { + const selectedProviders = await vscode.window.showQuickPick( + stuff.quickPickItems, + { + title: "Add Context", + canPickMany: true, + }, + ); + + const input = await this._collectTextInput(stuff); + if (input) { + const inputWithContext = await this._addSelectedProvidersToInput( + input, + selectedProviders, + ); + + await this._sendRequest(inputWithContext, stuff); + } + } + + private async _addSelectedProvidersToInput( + input: string, + selectedProviders: vscode.QuickPickItem[] | undefined, + ): Promise { + const llm = await this.configHandler.llmFromTitle(); + const config = await this.configHandler.loadConfig(); + const context = ( + await Promise.all( + selectedProviders?.map((providerTitle) => { + const provider = config.contextProviders?.find( + (provider) => + provider.description.title === providerTitle.description, + ); + if (!provider) { + return []; + } + + return provider.getContextItems("", { + embeddingsProvider: config.embeddingsProvider, + reranker: config.reranker, + ide: this.ide, + llm, + fullInput: input || "", + selectedCode: [], + fetch: (url, init) => + fetchwithRequestOptions(url, init, config.requestOptions), + }); + }) || [], + ) + ).flat(); + + return ( + context.map((item) => item.content).join("\n\n") + "\n\n---\n\n" + input + ); + } + + private async _handleInitialInput( + initialInput: string | undefined, + stuff: QuickEditFlowStuff, + ) { + // If the user presses enter, we take them to context items selector + if (initialInput?.length === 0 && stuff.quickPickItems.length > 0) { + await this._runWithContextItems(stuff); + } else if (initialInput) { + // If there's input, then start generating the diff + await this._sendRequest(initialInput, stuff); + } + } + + private async _sendRequest(input: string, stuff: QuickEditFlowStuff) { + this.webviewProtocol.request("incrementFtc", undefined); + await this.verticalDiffManager.streamEdit( + input, + stuff.defaultModelTitle, + this.context, + undefined, + stuff.previousInput, + ); + } + + async run(injectedPrompt: string | undefined) { + const stuff = await this._getStuff(injectedPrompt); + const initialInput = await this._collectTextInput(stuff); + await this._handleInitialInput(initialInput, stuff); + } +} \ No newline at end of file diff --git a/extensions/vscode/src/stubs/WorkOsAuthProvider.ts b/extensions/vscode/src/stubs/WorkOsAuthProvider.ts new file mode 100644 index 000000000..3ffb3a8af --- /dev/null +++ b/extensions/vscode/src/stubs/WorkOsAuthProvider.ts @@ -0,0 +1,418 @@ +import fetch from "node-fetch"; +import { v4 as uuidv4 } from "uuid"; +import { + authentication, + AuthenticationProvider, + AuthenticationProviderAuthenticationSessionsChangeEvent, + AuthenticationSession, + Disposable, + env, + EventEmitter, + ExtensionContext, + ProgressLocation, + Uri, + UriHandler, + window, +} from "vscode"; +import { PromiseAdapter, promiseFromEvent } from "./promiseUtils"; + +export const AUTH_TYPE = "continue"; +const AUTH_NAME = "Continue"; +const CLIENT_ID = "client_01J0FW6XN8N2XJAECF7NE0Y65J"; +const SESSIONS_SECRET_KEY = `${AUTH_TYPE}.sessions`; + +class UriEventHandler extends EventEmitter implements UriHandler { + public handleUri(uri: Uri) { + this.fire(uri); + } +} + +import { + CONTROL_PLANE_URL, + ControlPlaneSessionInfo, +} from "core/control-plane/client"; +import crypto from "crypto"; + +// Function to generate a random string of specified length +function generateRandomString(length: number): string { + const possibleCharacters = + "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~"; + let randomString = ""; + for (let i = 0; i < length; i++) { + const randomIndex = Math.floor(Math.random() * possibleCharacters.length); + randomString += possibleCharacters[randomIndex]; + } + return randomString; +} + +// Function to generate a code challenge from the code verifier + +async function generateCodeChallenge(verifier: string) { + // Create a SHA-256 hash of the verifier + const hash = crypto.createHash("sha256").update(verifier).digest(); + + // Convert the hash to a base64 URL-encoded string + const base64String = hash + .toString("base64") + .replace(/\+/g, "-") + .replace(/\//g, "_") + .replace(/=+$/, ""); + + return base64String; +} + +interface ContinueAuthenticationSession extends AuthenticationSession { + accessToken: string; + refreshToken: string; + expiresIn: number; +} + +export class WorkOsAuthProvider implements AuthenticationProvider, Disposable { + private _sessionChangeEmitter = + new EventEmitter(); + private _disposable: Disposable; + private _pendingStates: string[] = []; + private _codeExchangePromises = new Map< + string, + { promise: Promise; cancel: EventEmitter } + >(); + private _uriHandler = new UriEventHandler(); + private _sessions: ContinueAuthenticationSession[] = []; + + private static EXPIRATION_TIME_MS = 1000 * 60 * 5; // 5 minutes + + constructor(private readonly context: ExtensionContext) { + this._disposable = Disposable.from( + authentication.registerAuthenticationProvider( + AUTH_TYPE, + AUTH_NAME, + this, + { supportsMultipleAccounts: false }, + ), + window.registerUriHandler(this._uriHandler), + ); + } + + get onDidChangeSessions() { + return this._sessionChangeEmitter.event; + } + + get redirectUri() { + const publisher = this.context.extension.packageJSON.publisher; + const name = this.context.extension.packageJSON.name; + return `${env.uriScheme}://${publisher}.${name}`; + } + + async initialize() { + let sessions = await this.context.secrets.get(SESSIONS_SECRET_KEY); + this._sessions = sessions ? JSON.parse(sessions) : []; + await this._refreshSessions(); + } + + private async _refreshSessions(): Promise { + if (!this._sessions.length) { + return; + } + for (const session of this._sessions) { + try { + const newSession = await this._refreshSession(session.refreshToken); + session.accessToken = newSession.accessToken; + session.refreshToken = newSession.refreshToken; + session.expiresIn = newSession.expiresIn; + } catch (e: any) { + if (e.message === "Network failure") { + setTimeout(() => this._refreshSessions(), 60 * 1000); + return; + } + } + } + await this.context.secrets.store( + SESSIONS_SECRET_KEY, + JSON.stringify(this._sessions), + ); + this._sessionChangeEmitter.fire({ + added: [], + removed: [], + changed: this._sessions, + }); + + if (this._sessions[0].expiresIn) { + setTimeout( + () => this._refreshSessions(), + (this._sessions[0].expiresIn * 1000 * 2) / 3, + ); + } + } + + private async _refreshSession( + refreshToken: string, + ): Promise<{ accessToken: string; refreshToken: string; expiresIn: number }> { + const response = await fetch(new URL("/auth/refresh", CONTROL_PLANE_URL), { + method: "POST", + headers: { + "Content-Type": "application/json", + }, + body: JSON.stringify({ + refreshToken, + }), + }); + if (!response.ok) { + throw new Error("Network failure"); + } + const data = (await response.json()) as any; + return { + accessToken: data.accessToken, + refreshToken: data.refreshToken, + expiresIn: WorkOsAuthProvider.EXPIRATION_TIME_MS, + }; + } + + /** + * Get the existing sessions + * @param scopes + * @returns + */ + public async getSessions( + scopes?: string[], + ): Promise { + const allSessions = await this.context.secrets.get(SESSIONS_SECRET_KEY); + + if (allSessions) { + return JSON.parse(allSessions) as ContinueAuthenticationSession[]; + } + + return []; + } + + /** + * Create a new auth session + * @param scopes + * @returns + */ + public async createSession( + scopes: string[], + ): Promise { + try { + const codeVerifier = generateRandomString(64); + const codeChallenge = await generateCodeChallenge(codeVerifier); + const token = await this.login(codeChallenge, scopes); + if (!token) { + throw new Error(`Continue login failure`); + } + + const userInfo = (await this.getUserInfo(token, codeVerifier)) as any; + const { user, access_token, refresh_token } = userInfo; + + const session: ContinueAuthenticationSession = { + id: uuidv4(), + accessToken: access_token, + refreshToken: refresh_token, + expiresIn: WorkOsAuthProvider.EXPIRATION_TIME_MS, + account: { + label: user.first_name + " " + user.last_name, + id: user.email, + }, + scopes: [], + }; + + await this.context.secrets.store( + SESSIONS_SECRET_KEY, + JSON.stringify([session]), + ); + + this._sessionChangeEmitter.fire({ + added: [session], + removed: [], + changed: [], + }); + + return session; + } catch (e) { + window.showErrorMessage(`Sign in failed: ${e}`); + throw e; + } + } + + /** + * Remove an existing session + * @param sessionId + */ + public async removeSession(sessionId: string): Promise { + const allSessions = await this.context.secrets.get(SESSIONS_SECRET_KEY); + if (allSessions) { + let sessions = JSON.parse(allSessions) as ContinueAuthenticationSession[]; + const sessionIdx = sessions.findIndex((s) => s.id === sessionId); + const session = sessions[sessionIdx]; + sessions.splice(sessionIdx, 1); + + await this.context.secrets.store( + SESSIONS_SECRET_KEY, + JSON.stringify(sessions), + ); + + if (session) { + this._sessionChangeEmitter.fire({ + added: [], + removed: [session], + changed: [], + }); + } + } + } + + /** + * Dispose the registered services + */ + public async dispose() { + this._disposable.dispose(); + } + + /** + * Log in to Continue + */ + private async login(codeChallenge: string, scopes: string[] = []) { + return await window.withProgress( + { + location: ProgressLocation.Notification, + title: "Signing in to Continue...", + cancellable: true, + }, + async (_, token) => { + const stateId = uuidv4(); + + this._pendingStates.push(stateId); + + const scopeString = scopes.join(" "); + + const url = new URL("https://api.workos.com/user_management/authorize"); + const params = { + response_type: "code", + client_id: CLIENT_ID, + redirect_uri: this.redirectUri, + state: stateId, + code_challenge: codeChallenge, + code_challenge_method: "S256", + provider: "authkit", + }; + + Object.keys(params).forEach((key) => + url.searchParams.append(key, params[key as keyof typeof params]), + ); + + const oauthUrl = url; + if (oauthUrl) { + await env.openExternal(Uri.parse(oauthUrl.toString())); + } else { + return; + } + + let codeExchangePromise = this._codeExchangePromises.get(scopeString); + if (!codeExchangePromise) { + codeExchangePromise = promiseFromEvent( + this._uriHandler.event, + this.handleUri(scopes), + ); + this._codeExchangePromises.set(scopeString, codeExchangePromise); + } + + try { + return await Promise.race([ + codeExchangePromise.promise, + new Promise((_, reject) => + setTimeout(() => reject("Cancelled"), 60000), + ), + promiseFromEvent( + token.onCancellationRequested, + (_, __, reject) => { + reject("User Cancelled"); + }, + ).promise, + ]); + } finally { + this._pendingStates = this._pendingStates.filter( + (n) => n !== stateId, + ); + codeExchangePromise?.cancel.fire(); + this._codeExchangePromises.delete(scopeString); + } + }, + ); + } + + /** + * Handle the redirect to VS Code (after sign in from Continue) + * @param scopes + * @returns + */ + private handleUri: ( + scopes: readonly string[], + ) => PromiseAdapter = + (scopes) => async (uri, resolve, reject) => { + const query = new URLSearchParams(uri.query); + const access_token = query.get("code"); + const state = query.get("state"); + + if (!access_token) { + reject(new Error("No token")); + return; + } + if (!state) { + reject(new Error("No state")); + return; + } + + // Check if it is a valid auth request started by the extension + if (!this._pendingStates.some((n) => n === state)) { + reject(new Error("State not found")); + return; + } + + resolve(access_token); + }; + + /** + * Get the user info from WorkOS + * @param token + * @returns + */ + private async getUserInfo(token: string, codeVerifier: string) { + const resp = await fetch( + "https://api.workos.com/user_management/authenticate", + { + method: "POST", + headers: { + "Content-Type": "application/json", + }, + body: JSON.stringify({ + client_id: CLIENT_ID, + code_verifier: codeVerifier, + grant_type: "authorization_code", + code: token, + }), + }, + ); + const text = await resp.text(); + const data = JSON.parse(text); + return data; + } +} + +export async function getControlPlaneSessionInfo( + silent: boolean, +): Promise { + const session = await authentication.getSession( + "continue", + [], + silent ? { silent: true } : { createIfNone: true }, + ); + if (!session) { + return undefined; + } + return { + accessToken: session.accessToken, + account: { + id: session.account.id, + label: session.account.label, + }, + }; +} diff --git a/extensions/vscode/src/stubs/activation.ts b/extensions/vscode/src/stubs/activation.ts index 3e4ae2635..7a4507db1 100644 --- a/extensions/vscode/src/stubs/activation.ts +++ b/extensions/vscode/src/stubs/activation.ts @@ -1 +1,29 @@ -export async function setupRemoteConfigSync(reloadConfig: () => void) {} +import * as vscode from "vscode"; +import { getUserToken } from "./auth"; +import { RemoteConfigSync } from "./remoteConfig"; + +export async function setupRemoteConfigSync(reloadConfig: () => void) { + const settings = vscode.workspace.getConfiguration("continue"); + const remoteConfigServerUrl = settings.get( + "remoteConfigServerUrl", + null, + ); + if ( + remoteConfigServerUrl === null || + remoteConfigServerUrl === undefined || + remoteConfigServerUrl.trim() === "" + ) { + return; + } + getUserToken().then(async (token) => { + await vscode.workspace + .getConfiguration("continue") + .update("userToken", token, vscode.ConfigurationTarget.Global); + try { + const configSync = new RemoteConfigSync(reloadConfig, token); + configSync.setup(); + } catch (e) { + console.warn(`Failed to sync remote config: ${e}`); + } + }); +} diff --git a/extensions/vscode/src/stubs/auth.ts b/extensions/vscode/src/stubs/auth.ts index 70de9e24b..618f47efa 100644 --- a/extensions/vscode/src/stubs/auth.ts +++ b/extensions/vscode/src/stubs/auth.ts @@ -1,3 +1,15 @@ +import * as vscode from "vscode"; + export async function getUserToken(): Promise { - return Promise.resolve(""); + // Prefer manual user token first + const settings = vscode.workspace.getConfiguration("continue"); + const userToken = settings.get("userToken", null); + if (userToken) { + return userToken; + } + + const session = await vscode.authentication.getSession("github", [], { + createIfNone: true, + }); + return session.accessToken; } diff --git a/extensions/vscode/src/stubs/promiseUtils.ts b/extensions/vscode/src/stubs/promiseUtils.ts new file mode 100644 index 000000000..fd126d848 --- /dev/null +++ b/extensions/vscode/src/stubs/promiseUtils.ts @@ -0,0 +1,57 @@ +import { Disposable, Event, EventEmitter } from "vscode"; + +export interface PromiseAdapter { + ( + value: T, + resolve: (value: U | PromiseLike) => void, + reject: (reason: any) => void, + ): any; +} + +const passthrough = (value: any, resolve: (value?: any) => void) => + resolve(value); + +/** + * Return a promise that resolves with the next emitted event, or with some future + * event as decided by an adapter. + * + * If specified, the adapter is a function that will be called with + * `(event, resolve, reject)`. It will be called once per event until it resolves or + * rejects. + * + * The default adapter is the passthrough function `(value, resolve) => resolve(value)`. + * + * @param event the event + * @param adapter controls resolution of the returned promise + * @returns a promise that resolves or rejects as specified by the adapter + */ +export function promiseFromEvent( + event: Event, + adapter: PromiseAdapter = passthrough, +): { promise: Promise; cancel: EventEmitter } { + let subscription: Disposable; + let cancel = new EventEmitter(); + + return { + promise: new Promise((resolve, reject) => { + cancel.event((_) => reject("Cancelled")); + subscription = event((value: T) => { + try { + Promise.resolve(adapter(value, resolve, reject)).catch(reject); + } catch (error) { + reject(error); + } + }); + }).then( + (result: U) => { + subscription.dispose(); + return result; + }, + (error) => { + subscription.dispose(); + throw error; + }, + ), + cancel, + }; +} diff --git a/extensions/vscode/src/stubs/remoteConfig.ts b/extensions/vscode/src/stubs/remoteConfig.ts new file mode 100644 index 000000000..fa5293a39 --- /dev/null +++ b/extensions/vscode/src/stubs/remoteConfig.ts @@ -0,0 +1,125 @@ +import { ContinueServerClient } from "core/continueServer/stubs/client"; +import { + getConfigJsPathForRemote, + getConfigJsonPathForRemote, +} from "core/util/paths"; +import * as fs from "fs"; +import * as vscode from "vscode"; +import { CONTINUE_WORKSPACE_KEY } from "../util/workspaceConfig"; + +export class RemoteConfigSync { + private userToken: string | null; + private remoteConfigServerUrl: string | null; + private remoteConfigSyncPeriod: number; + + private syncInterval: NodeJS.Timer | undefined = undefined; + + constructor( + private triggerReloadConfig: () => void, + userToken: string | null, + ) { + let { + userToken: settingsUserToken, + remoteConfigServerUrl, + remoteConfigSyncPeriod, + } = this.loadVsCodeSettings(); + this.userToken = settingsUserToken || userToken; + this.remoteConfigServerUrl = remoteConfigServerUrl; + this.remoteConfigSyncPeriod = remoteConfigSyncPeriod; + + // Listen for changes to VS Code settings, then trigger a refresh + vscode.workspace.onDidChangeConfiguration(async (event) => { + if (event.affectsConfiguration(CONTINUE_WORKSPACE_KEY)) { + const { userToken, remoteConfigServerUrl, remoteConfigSyncPeriod } = + await this.loadVsCodeSettings(); + if ( + userToken !== this.userToken || + remoteConfigServerUrl !== this.remoteConfigServerUrl || + remoteConfigSyncPeriod !== this.remoteConfigSyncPeriod + ) { + this.userToken = userToken; + this.remoteConfigServerUrl = remoteConfigServerUrl; + this.remoteConfigSyncPeriod = remoteConfigSyncPeriod; + + this.setInterval(); + } + } + }); + } + + private loadVsCodeSettings() { + const settings = vscode.workspace.getConfiguration("continue"); + const userToken = settings.get("userToken", null); + const remoteConfigServerUrl = settings.get( + "remoteConfigServerUrl", + null, + ); + const remoteConfigSyncPeriod = settings.get( + "remoteConfigSyncPeriod", + 60, + ); + + return { + userToken, + remoteConfigServerUrl, + remoteConfigSyncPeriod, + }; + } + + async setup() { + if ( + this.userToken === null || + this.remoteConfigServerUrl === null || + this.remoteConfigServerUrl.trim() === "" + ) { + return; + } + if (!URL.canParse(this.remoteConfigServerUrl)) { + vscode.window.showErrorMessage( + "The value set for 'remoteConfigServerUrl' is not valid: ", + this.remoteConfigServerUrl, + ); + return; + } + + // Sync once + await this.sync(this.userToken, this.remoteConfigServerUrl); + + // Set timer to sync at user-defined interval + this.setInterval(); + } + + private setInterval() { + if (this.syncInterval !== undefined) { + clearInterval(this.syncInterval); + } + this.syncInterval = setInterval(() => { + if (!this.userToken || !this.remoteConfigServerUrl) { + return; + } + this.sync(this.userToken, this.remoteConfigServerUrl); + }, this.remoteConfigSyncPeriod * 1000 * 60); + } + + async sync(userToken: string, remoteConfigServerUrl: string) { + try { + const client = new ContinueServerClient( + remoteConfigServerUrl.toString(), + userToken, + ); + const { configJson, configJs } = await client.getConfig(); + + fs.writeFileSync( + getConfigJsonPathForRemote(remoteConfigServerUrl), + configJson, + ); + fs.writeFileSync( + getConfigJsPathForRemote(remoteConfigServerUrl), + configJs, + ); + this.triggerReloadConfig(); + } catch (e) { + vscode.window.showWarningMessage(`Failed to sync remote config: ${e}`); + } + } +} diff --git a/extensions/vscode/src/suggestions.ts b/extensions/vscode/src/suggestions.ts index 5a6d2985e..71149a7ba 100644 --- a/extensions/vscode/src/suggestions.ts +++ b/extensions/vscode/src/suggestions.ts @@ -90,7 +90,7 @@ export function rerenderDecorations(editorUri: string) { let newSels: vscode.Range[] = []; for (let i = 0; i < suggestions.length; i++) { const suggestion = suggestions[i]; - if (typeof idx != "undefined" && idx === i) { + if (typeof idx !== "undefined" && idx === i) { if (suggestion.newSelected) { olds.push(suggestion.oldRange); newSels.push(suggestion.newRange); @@ -192,9 +192,9 @@ function selectSuggestion( } if (idx === undefined) return; - let [suggestion] = suggestions.splice(idx, 1); + const [suggestion] = suggestions.splice(idx, 1); - var rangeToDelete: vscode.Range; + let rangeToDelete: vscode.Range; switch (accept) { case "old": rangeToDelete = suggestion.newRange; @@ -217,8 +217,8 @@ function selectSuggestion( }); // Shift the below suggestions up - let linesToShift = rangeToDelete.end.line - rangeToDelete.start.line; - for (let below of suggestions) { + const linesToShift = rangeToDelete.end.line - rangeToDelete.start.line; + for (const below of suggestions) { // Assumes there should be no crossover between suggestions. Might want to enforce this. if ( below.oldRange.union(below.newRange).start.line > @@ -302,15 +302,15 @@ export async function showSuggestion( if (success) { const suggestionLinesLength = suggestion === "" ? 0 : suggestion.split("\n").length; - let suggestionRange = new vscode.Range( + const suggestionRange = new vscode.Range( new vscode.Position(range.end.line, 0), new vscode.Position(range.end.line + suggestionLinesLength, 0), ); - let content = editor!.document.getText(suggestionRange); + const content = editor!.document.getText(suggestionRange); const filename = editor!.document.uri.toString(); if (editorToSuggestions.has(filename)) { - let suggestions = editorToSuggestions.get(filename)!; + const suggestions = editorToSuggestions.get(filename)!; suggestions.push({ oldRange: range, newRange: suggestionRange, diff --git a/extensions/vscode/src/terminal/terminalEmulator.ts b/extensions/vscode/src/terminal/terminalEmulator.ts index 960f5ef8e..d76823da6 100644 --- a/extensions/vscode/src/terminal/terminalEmulator.ts +++ b/extensions/vscode/src/terminal/terminalEmulator.ts @@ -1,9 +1,9 @@ /* Terminal emulator - commented because node-pty is causing problems. */ -import * as os from "os"; +import { longestCommonSubsequence } from "core/util/lcs"; +import * as os from "node:os"; import stripAnsi from "strip-ansi"; import * as vscode from "vscode"; -import { longestCommonSubsequence } from "../util/lcs"; function loadNativeModule(id: string): T | null { try { @@ -55,7 +55,7 @@ export class CapturedTerminal { private readonly ptyProcess: any; private shellPrompt: string | undefined = undefined; - private dataBuffer: string = ""; + private dataBuffer = ""; private onDataListeners: ((data: string) => void)[] = []; @@ -68,7 +68,7 @@ export class CapturedTerminal { } private commandQueue: [string, (output: string) => void][] = []; - private hasRunCommand: boolean = false; + private hasRunCommand = false; private dataEndsInPrompt(strippedData: string): boolean { const lines = strippedData.split("\n"); @@ -128,7 +128,7 @@ export class CapturedTerminal { private readonly writeEmitter: vscode.EventEmitter; - private splitByCommandsBuffer: string = ""; + private splitByCommandsBuffer = ""; private readonly onCommandOutput: ((output: string) => void) | undefined; splitByCommandsListener(data: string) { @@ -144,8 +144,8 @@ export class CapturedTerminal { } } - private runningClearToGetPrompt: boolean = false; - private seenClear: boolean = false; + private runningClearToGetPrompt = false; + private seenClear = false; private commandPromptString: string | undefined = undefined; private resolveMeWhenCommandPromptStringFound: | ((_: unknown) => void) @@ -225,7 +225,7 @@ export class CapturedTerminal { this.seenClear = false; this.commandPromptString = commandPromptString; console.log( - "Found command prompt string: " + this.commandPromptString, + `Found command prompt string: ${this.commandPromptString}`, ); if (this.resolveMeWhenCommandPromptStringFound) { this.resolveMeWhenCommandPromptStringFound(undefined); @@ -240,7 +240,7 @@ export class CapturedTerminal { this.writeEmitter.fire(data); this.splitByCommandsListener(data); - for (let listener of this.onDataListeners) { + for (const listener of this.onDataListeners) { listener(data); } }); diff --git a/extensions/vscode/src/test/runner/mochaRunner.ts b/extensions/vscode/src/test/runner/mochaRunner.ts new file mode 100644 index 000000000..66d61a77f --- /dev/null +++ b/extensions/vscode/src/test/runner/mochaRunner.ts @@ -0,0 +1,48 @@ +import * as path from "node:path"; +import * as glob from "glob"; +import Mocha from "mocha"; + +export function run() { + // Avoid timing out when stopping on breakpoints during debugging in VSCode + const timeoutOption = process.env.MOCHA_TIMEOUT + ? Number.parseInt(process.env.MOCHA_TIMEOUT) + : // : undefined; + 30_000; + + // Create the mocha test + const mocha = new Mocha({ + ui: "tdd", + color: true, + timeout: timeoutOption, + }); + + // See esbuild.test.mjs for more details + // Assumes this file is in out/test/runner/mochaRunner.js + const compiledTestSuitesDirectory = path.resolve(__dirname); + + glob + .sync("**/**.test.js", { cwd: compiledTestSuitesDirectory }) + .forEach((file) => { + mocha.addFile(path.resolve(compiledTestSuitesDirectory, file)); + }); + + console.log( + `Testing files in ${compiledTestSuitesDirectory}: ${mocha.files}`, + ); + + return new Promise((resolve, reject) => { + try { + // Run the mocha test + mocha.run((failures) => { + if (failures > 0) { + reject(new Error(`${failures} tests failed.`)); + } else { + resolve(); + } + }); + } catch (err) { + console.error(err); + reject(err); + } + }); +} diff --git a/extensions/vscode/src/test/runner/runTestOnVSCodeHost.ts b/extensions/vscode/src/test/runner/runTestOnVSCodeHost.ts new file mode 100644 index 000000000..13fe2f404 --- /dev/null +++ b/extensions/vscode/src/test/runner/runTestOnVSCodeHost.ts @@ -0,0 +1,126 @@ +import { runTests } from "@vscode/test-electron"; +import { defaultConfig } from "core/config/default"; +import fs from "node:fs"; +import * as path from "node:path"; + +export const testWorkspacePath = path.resolve( + __dirname, + "..", + "src", + "test", + "fixtures", + "test-workspace", +); + +const continueGlobalDir = path.resolve( + __dirname, + "..", + "src", + "test", + "fixtures", + ".continue", +); + +function setupTestWorkspace() { + if (fs.existsSync(testWorkspacePath)) { + fs.rmSync(testWorkspacePath, { recursive: true }); + } + fs.mkdirSync(testWorkspacePath, { + recursive: true, + }); + + fs.writeFileSync( + path.join(testWorkspacePath, "test.py"), + "print('Hello World!')", + ); + fs.writeFileSync( + path.join(testWorkspacePath, "index.js"), + "console.log('Hello World!')", + ); + fs.writeFileSync( + path.join(testWorkspacePath, "test.py"), + "print('Hello World!')", + ); + fs.mkdirSync(path.join(testWorkspacePath, "test-folder")); + fs.writeFileSync( + path.join(testWorkspacePath, "test-folder", "test.js"), + "console.log('Hello World!')", + ); +} + +function setupContinueGlobalDir() { + if (fs.existsSync(continueGlobalDir)) { + fs.rmSync(continueGlobalDir, { recursive: true }); + } + fs.mkdirSync(continueGlobalDir, { + recursive: true, + }); + fs.writeFileSync( + path.join(continueGlobalDir, "config.json"), + JSON.stringify({ + ...defaultConfig, + models: [ + { + title: "Test Model", + provider: "openai", + model: "gpt-3.5-turbo", + apiKey: "API_KEY", + }, + ], + }), + ); +} + +function cleanupTestWorkspace() { + if (fs.existsSync(testWorkspacePath)) { + fs.rmSync(testWorkspacePath, { recursive: true }); + } +} + +function cleanupContinueGlobalDir() { + if (fs.existsSync(continueGlobalDir)) { + fs.rmSync(continueGlobalDir, { recursive: true }); + } +} + +async function main() { + try { + // The folder containing the Extension Manifest package.json + // Passed to `--extensionDevelopmentPath` + + // Assumes this file is in out/runTestOnVSCodeHost.js + const extensionDevelopmentPath = path.resolve(__dirname, "../"); + console.log("extensionDevelopmentPath", extensionDevelopmentPath); + + // The path to test runner + // Passed to --extensionTestsPath + const extensionTestsPath = path.resolve( + extensionDevelopmentPath, + "out/mochaRunner", + ); + + const extensionTestsEnv = { + NODE_ENV: "test", + CONTINUE_GLOBAL_DIR: continueGlobalDir, + }; + + setupTestWorkspace(); + setupContinueGlobalDir(); + + // Download VS Code, unzip it and run the integration test + await runTests({ + extensionDevelopmentPath, + extensionTestsPath, + extensionTestsEnv, + launchArgs: [testWorkspacePath], + }); + } catch (err) { + console.error("Failed to run tests", err); + process.exit(1); + } finally { + cleanupTestWorkspace(); + cleanupContinueGlobalDir(); + } +} + +main(); diff --git a/extensions/vscode/src/test/test-suites/ideUtils.test.ts b/extensions/vscode/src/test/test-suites/ideUtils.test.ts new file mode 100644 index 000000000..761a8343c --- /dev/null +++ b/extensions/vscode/src/test/test-suites/ideUtils.test.ts @@ -0,0 +1,96 @@ +import { describe, test } from "mocha"; +import assert from "node:assert"; +import path from "node:path"; +import * as vscode from "vscode"; +import { VsCodeIdeUtils } from "../../util/ideUtils"; +import { testWorkspacePath } from "../runner/runTestOnVSCodeHost"; +const util = require("node:util"); +const asyncExec = util.promisify(require("node:child_process").exec); + +describe("IDE Utils", () => { + const utils = new VsCodeIdeUtils(); + const testPyPath = path.join(testWorkspacePath, "test.py"); + const testJsPath = path.join(testWorkspacePath, "test-folder", "test.js"); + + test("getWorkspaceDirectories", async () => { + const [dir] = utils.getWorkspaceDirectories(); + assert(dir.endsWith("test-workspace")); + }); + + test("fileExists", async () => { + const exists2 = await utils.fileExists( + path.join(testWorkspacePath, "test.py"), + ); + assert(exists2); + }); + + test("getAbsolutePath", async () => { + const groundTruth = path.join(testWorkspacePath, "test.py"); + assert(utils.getAbsolutePath("test.py") === groundTruth); + assert(utils.getAbsolutePath(groundTruth) === groundTruth); + }); + + test("getOpenFiles", async () => { + let openFiles = utils.getOpenFiles(); + assert(openFiles.length === 0); + // await utils.openFile(testPyPath); + let document = await vscode.workspace.openTextDocument(testPyPath); + await vscode.window.showTextDocument(document, { + preview: false, + }); + openFiles = utils.getOpenFiles(); + assert(openFiles.length === 1); + assert(openFiles[0] === testPyPath); + + document = await vscode.workspace.openTextDocument(testJsPath); + await vscode.window.showTextDocument(document, { + preview: false, + }); + openFiles = utils.getOpenFiles(); + assert(openFiles.length === 2); + assert(openFiles.includes(testPyPath)); + assert(openFiles.includes(testJsPath)); + }); + + test("getUniqueId", async () => { + const uniqueId = utils.getUniqueId(); + assert(uniqueId.length === 64); + const regex = /^[a-z0-9]+$/; + assert(regex.test(uniqueId)); + }); + + test("readFile", async () => { + const testPyContents = await utils.readFile(testPyPath); + assert(testPyContents === "print('Hello World!')"); + const testJsContents = await utils.readFile(testJsPath); + assert(testJsContents === "console.log('Hello World!')"); + }); + + test.skip("getTerminalContents", async () => { + await new Promise((resolve) => setTimeout(resolve, 1000)); + const terminal = vscode.window.createTerminal(); + await new Promise((resolve) => setTimeout(resolve, 1000)); + terminal.show(); + await new Promise((resolve) => setTimeout(resolve, 1000)); + terminal.sendText("echo abcdefg", true); + const contents = await utils.getTerminalContents(1); + console.log("TERMINAL CONTENTS: ", contents); + assert(contents.includes("abcdefg")); + terminal.dispose(); + }); + + test("noDiff", async () => { + const noDiff = await utils.getDiff(); + assert(noDiff === ""); + }); + + test.skip("getBranch", async () => { + const uri = vscode.Uri.file(testWorkspacePath); + const branch = await utils.getBranch(uri); + assert(typeof branch === "string"); + const { stdout } = await asyncExec("git rev-parse --abbrev-ref HEAD", { + cwd: __dirname, + }); + assert(branch === stdout?.trim()); + }); +}); diff --git a/extensions/vscode/src/test/test-suites/main.test.ts b/extensions/vscode/src/test/test-suites/main.test.ts new file mode 100644 index 000000000..01945f804 --- /dev/null +++ b/extensions/vscode/src/test/test-suites/main.test.ts @@ -0,0 +1,26 @@ +import { describe, test } from "mocha"; +import assert from "node:assert"; +import * as vscode from "vscode"; +import { VsCodeExtension } from "../../extension/VsCodeExtension"; + +describe("Extension Test Suite", () => { + vscode.window.showInformationMessage("Start all tests."); + + // test("Make sure that nothing breaks after 10 seconds", async () => { + // await new Promise((resolve) => setTimeout(resolve, 10_000)); + // }); + + test("Get the default model from webview", async () => { + const continueExtensionApi = + vscode.extensions.getExtension("continue.continue"); + const extension: VsCodeExtension = continueExtensionApi?.exports.extension; + await new Promise((resolve) => setTimeout(resolve, 400)); + await vscode.commands.executeCommand("continue.focusContinueInput"); + await new Promise((resolve) => setTimeout(resolve, 400)); + const title = await ( + await extension.webviewProtocolPromise + ).request("getDefaultModelTitle", undefined); + assert.strictEqual(typeof title, "string"); + assert.strictEqual(title, "Test Model"); + }); +}); diff --git a/extensions/vscode/src/util/battery.ts b/extensions/vscode/src/util/battery.ts new file mode 100644 index 000000000..1f0f03a3d --- /dev/null +++ b/extensions/vscode/src/util/battery.ts @@ -0,0 +1,52 @@ +import * as si from "systeminformation"; +import { Disposable, EventEmitter } from "vscode"; + +const UPDATE_INTERVAL_MS = 1000; + +export class Battery implements Disposable { + private updateTimeout: NodeJS.Timeout | undefined; + private readonly onChangeACEmitter = new EventEmitter(); + private readonly onChangeLevelEmitter = new EventEmitter(); + private acConnected: boolean = true; + private level = 100; + private readonly batteryStatsPromise = si.battery(); + + constructor() { + this.updateTimeout = setInterval(() => this.update(), UPDATE_INTERVAL_MS); + } + + dispose() { + if (this.updateTimeout) { + clearInterval(this.updateTimeout); + } + } + + private async update() { + const stats = await this.batteryStatsPromise; + const level = stats.hasBattery ? stats.percent : 100; + const isACConnected = + !stats.hasBattery || stats.acConnected || level == 100; + + if (isACConnected !== this.acConnected) { + this.acConnected = isACConnected; + this.onChangeACEmitter.fire(isACConnected); + } + + if (level !== this.level) { + this.level = level; + this.onChangeLevelEmitter.fire(level); + } + } + + public getLevel(): number { + return this.level; + } + + public isACConnected(): boolean { + return false; + return this.acConnected; + } + + public readonly onChangeLevel = this.onChangeLevelEmitter.event; + public readonly onChangeAC = this.onChangeACEmitter.event; +} diff --git a/extensions/vscode/src/util/cleanSlate.ts b/extensions/vscode/src/util/cleanSlate.ts new file mode 100644 index 000000000..09703f481 --- /dev/null +++ b/extensions/vscode/src/util/cleanSlate.ts @@ -0,0 +1,19 @@ +import { getContinueGlobalPath } from "core/util/paths"; +import { ExtensionContext } from "vscode"; +import fs from "fs"; + +/** + * Clear all Continue-related artifacts to simulate a brand new user + */ +export function cleanSlate(context: ExtensionContext) { + // Commented just to be safe + // // Remove ~/.continue + // const continuePath = getContinueGlobalPath(); + // if (fs.existsSync(continuePath)) { + // fs.rmSync(continuePath, { recursive: true, force: true }); + // } + // // Clear extension's globalState + // context.globalState.keys().forEach((key) => { + // context.globalState.update(key, undefined); + // }); +} diff --git a/extensions/vscode/src/util/expandSnippet.ts b/extensions/vscode/src/util/expandSnippet.ts index 88dd8f2ad..cd83691f7 100644 --- a/extensions/vscode/src/util/expandSnippet.ts +++ b/extensions/vscode/src/util/expandSnippet.ts @@ -109,4 +109,4 @@ export async function expandSnippet( }), ); return chunks; -} \ No newline at end of file +} diff --git a/extensions/vscode/src/util/getTheme.ts b/extensions/vscode/src/util/getTheme.ts index 621429909..26bb042e0 100644 --- a/extensions/vscode/src/util/getTheme.ts +++ b/extensions/vscode/src/util/getTheme.ts @@ -1,7 +1,7 @@ +import * as fs from "node:fs"; +import * as path from "node:path"; import mergeJson from "core/util/merge"; -import * as fs from "fs"; import { convertTheme } from "monaco-vscode-textmate-theme-converter/lib/cjs"; -import * as path from "path"; import * as vscode from "vscode"; import { getExtensionUri } from "./vscode"; @@ -57,7 +57,7 @@ export function getTheme() { } if (currentTheme === undefined && builtinThemes[colorTheme]) { - const filename = builtinThemes[colorTheme] + ".json"; + const filename = `${builtinThemes[colorTheme]}.json`; currentTheme = fs .readFileSync( path.join(getExtensionUri().fsPath, "builtin-themes", filename), @@ -84,8 +84,8 @@ export function getTheme() { ["vs", "hc-black"].includes(converted.base) ? converted.base : colorTheme.includes("Light") - ? "vs" - : "vs-dark" + ? "vs" + : "vs-dark" ) as any; return converted; diff --git a/extensions/vscode/src/util/ideUtils.ts b/extensions/vscode/src/util/ideUtils.ts index 485322d73..71cf4d44b 100644 --- a/extensions/vscode/src/util/ideUtils.ts +++ b/extensions/vscode/src/util/ideUtils.ts @@ -1,9 +1,9 @@ -import { FileEdit, RangeInFile, Thread } from "core"; -import { defaultIgnoreFile } from "core/indexing/ignore"; -import path from "path"; +import type { FileEdit, RangeInFile, Thread } from "core"; +import path from "node:path"; import * as vscode from "vscode"; import { threadStopped } from "../debug/debug"; -import { VsCodeExtension } from "../extension/vscodeExtension"; +import { VsCodeExtension } from "../extension/VsCodeExtension"; +import { GitExtension, Repository } from "../otherExtensions/git"; import { SuggestionRanges, acceptSuggestionCommand, @@ -11,15 +11,16 @@ import { rejectSuggestionCommand, showSuggestion as showSuggestionInEditor, } from "../suggestions"; -import { traverseDirectory } from "./traverseDirectory"; import { getUniqueId, openEditorAndRevealRange, uriFromFilePath, } from "./vscode"; -const util = require("util"); -const asyncExec = util.promisify(require("child_process").exec); +import _ from "lodash"; + +const util = require("node:util"); +const asyncExec = util.promisify(require("node:child_process").exec); export class VsCodeIdeUtils { visibleMessages: Set = new Set(); @@ -61,11 +62,15 @@ export class VsCodeIdeUtils { ); } + private _workspaceDirectories: string[] | undefined = undefined; getWorkspaceDirectories(): string[] { - return ( - vscode.workspace.workspaceFolders?.map((folder) => folder.uri.fsPath) || - [] - ); + if (this._workspaceDirectories === undefined) { + this._workspaceDirectories = + vscode.workspace.workspaceFolders?.map((folder) => folder.uri.fsPath) || + []; + } + + return this._workspaceDirectories; } getUniqueId() { @@ -133,8 +138,8 @@ export class VsCodeIdeUtils { showMultiFileEdit(edits: FileEdit[]) { vscode.commands.executeCommand("workbench.action.closeAuxiliaryBar"); const panel = vscode.window.createWebviewPanel( - "ahrefs-continue.ahrefs-continueGUIView", - "Ahrefs-Continue", + "continue.continueGUIView", + "Continue", vscode.ViewColumn.One, ); // panel.webview.html = this.sidebar.getSidebarContent( @@ -181,7 +186,7 @@ export class VsCodeIdeUtils { async getUserSecret(key: string) { // Check if secret already exists in VS Code settings (global) - let secret = vscode.workspace.getConfiguration("ahrefs-continue").get(key); + let secret = vscode.workspace.getConfiguration("continue").get(key); if (typeof secret !== "undefined" && secret !== null) { return secret; } @@ -194,7 +199,7 @@ export class VsCodeIdeUtils { // Add secret to VS Code settings vscode.workspace - .getConfiguration("ahrefs-continue") + .getConfiguration("continue") .update(key, secret, vscode.ConfigurationTarget.Global); return secret; @@ -217,21 +222,26 @@ export class VsCodeIdeUtils { // Checks to see if the editor is a code editor. // In some cases vscode.window.visibleTextEditors can return non-code editors // e.g. terminal editors in side-by-side mode - private documentIsCode(document: vscode.TextDocument) { - return document.uri.scheme === "file"; + private documentIsCode(uri: vscode.Uri) { + return uri.scheme === "file"; } getOpenFiles(): string[] { - return vscode.workspace.textDocuments - .filter((document) => this.documentIsCode(document)) - .map((document) => { - return document.uri.fsPath; - }); + return vscode.window.tabGroups.all + .map((group) => { + return group.tabs.map((tab) => { + return (tab.input as any)?.uri; + }); + }) + .flat() + .filter(Boolean) // filter out undefined values + .filter((uri) => this.documentIsCode(uri)) // Filter out undesired documents + .map((uri) => uri.fsPath); } getVisibleFiles(): string[] { return vscode.window.visibleTextEditors - .filter((editor) => this.documentIsCode(editor.document)) + .filter((editor) => this.documentIsCode(editor.document.uri)) .map((editor) => { return editor.document.uri.fsPath; }); @@ -239,7 +249,7 @@ export class VsCodeIdeUtils { saveFile(filepath: string) { vscode.window.visibleTextEditors - .filter((editor) => this.documentIsCode(editor.document)) + .filter((editor) => this.documentIsCode(editor.document.uri)) .forEach((editor) => { if (editor.document.uri.fsPath === filepath) { editor.document.save(); @@ -247,44 +257,27 @@ export class VsCodeIdeUtils { }); } - async getDirectoryContents( - directory: string, - recursive: boolean, - ): Promise { - if (!recursive) { - return ( - await vscode.workspace.fs.readDirectory(uriFromFilePath(directory)) - ) - .filter(([name, type]) => { - type === vscode.FileType.File && !defaultIgnoreFile.ignores(name); - }) - .map(([name, type]) => path.join(directory, name)); + private _cachedPath: path.PlatformPath | undefined; + get path(): path.PlatformPath { + if (this._cachedPath) { + return this._cachedPath; } - const allFiles: string[] = []; - const gitRoot = await this.getGitRoot(directory); - let onlyThisDirectory = undefined; - if (gitRoot) { - onlyThisDirectory = directory.slice(gitRoot.length).split(path.sep); - if (onlyThisDirectory[0] === "") { - onlyThisDirectory.shift(); - } - } - for await (const file of traverseDirectory( - gitRoot ?? directory, - [], - true, - gitRoot === directory ? undefined : onlyThisDirectory, - )) { - allFiles.push(file); - } - return allFiles; + // Return "path" module for either windows or posix depending on sample workspace folder path format + const sampleWorkspaceFolder = + vscode.workspace.workspaceFolders?.[0]?.uri.fsPath; + const isWindows = sampleWorkspaceFolder + ? !sampleWorkspaceFolder.startsWith("/") + : false; + + this._cachedPath = isWindows ? path.win32 : path.posix; + return this._cachedPath; } getAbsolutePath(filepath: string): string { const workspaceDirectories = this.getWorkspaceDirectories(); - if (!path.isAbsolute(filepath) && workspaceDirectories.length === 1) { - return path.join(workspaceDirectories[0], filepath); + if (!this.path.isAbsolute(filepath) && workspaceDirectories.length === 1) { + return this.path.join(workspaceDirectories[0], filepath); } else { return filepath; } @@ -297,7 +290,23 @@ export class VsCodeIdeUtils { filepath = this.getAbsolutePath(filepath); const uri = uriFromFilePath(filepath); - // Check first whether it's an open document + // First, check whether it's a notebook document + // Need to iterate over the cells to get full contents + const notebook = + vscode.workspace.notebookDocuments.find( + (doc) => doc.uri.toString() === uri.toString(), + ) ?? + (uri.fsPath.endsWith("ipynb") + ? await vscode.workspace.openNotebookDocument(uri) + : undefined); + if (notebook) { + return notebook + .getCells() + .map((cell) => cell.document.getText()) + .join("\n\n"); + } + + // Check whether it's an open document const openTextDocument = vscode.workspace.textDocuments.find( (doc) => doc.uri.fsPath === uri.fsPath, ); @@ -318,7 +327,8 @@ export class VsCodeIdeUtils { const truncatedBytes = bytes.slice(0, VsCodeIdeUtils.MAX_BYTES); const contents = new TextDecoder().decode(truncatedBytes); return contents; - } catch { + } catch (e) { + console.warn("Error reading file", e); return ""; } } @@ -331,16 +341,14 @@ export class VsCodeIdeUtils { await vscode.workspace.fs.readFile(vscode.Uri.file(filepath)), ); const lines = contents.split("\n"); - return ( - lines.slice(range.start.line, range.end.line).join("\n") + - "\n" + - lines[ - range.end.line < lines.length - 1 ? range.end.line : lines.length - 1 - ].slice(0, range.end.character) - ); + return `${lines + .slice(range.start.line, range.end.line) + .join("\n")}\n${lines[ + range.end.line < lines.length - 1 ? range.end.line : lines.length - 1 + ].slice(0, range.end.character)}`; } - async getTerminalContents(commands: number = -1): Promise { + async getTerminalContents(commands = -1): Promise { const tempCopyBuffer = await vscode.env.clipboard.readText(); if (commands < 0) { await vscode.commands.executeCommand( @@ -359,13 +367,23 @@ export class VsCodeIdeUtils { await vscode.commands.executeCommand( "workbench.action.terminal.clearSelection", ); - const terminalContents = await vscode.env.clipboard.readText(); + let terminalContents = (await vscode.env.clipboard.readText()).trim(); await vscode.env.clipboard.writeText(tempCopyBuffer); if (tempCopyBuffer === terminalContents) { // This means there is no terminal open to select text from return ""; } + + // Sometimes the above won't successfully separate by command, so we attempt manually + const lines = terminalContents.split("\n"); + const lastLine = lines.pop()?.trim(); + if (lastLine) { + let i = lines.length - 1; + while (i >= 0 && !lines[i].trim().startsWith(lastLine)) i--; + terminalContents = lines.slice(Math.max(i, 0)).join("\n"); + } + return terminalContents; } @@ -388,7 +406,7 @@ export class VsCodeIdeUtils { return threadsResponse.threads; } - async getDebugLocals(threadIndex: number = 0): Promise { + async getDebugLocals(threadIndex = 0): Promise { const session = vscode.debug.activeDebugSession; if (!session) { @@ -428,7 +446,7 @@ export class VsCodeIdeUtils { async getTopLevelCallStackSources( threadIndex: number, - stackDepth: number = 3, + stackDepth = 3, ): Promise { const session = vscode.debug.activeDebugSession; if (!session) return []; @@ -448,7 +466,9 @@ export class VsCodeIdeUtils { const scope = scopeResponse.scopes[0]; - return await this.retrieveSource(scope.source ? scope : stackFrame); + return await this.retrieveSource( + scope.source && !_.isEmpty(scope.source) ? scope : stackFrame, + ); }), ); @@ -483,7 +503,7 @@ export class VsCodeIdeUtils { return await this.readRangeInFile( sourceContainer.source.path, new vscode.Range( - sourceContainer.line - 3, + Math.max(0, sourceContainer.line - 3), 0, sourceContainer.line + 2, 0, @@ -492,9 +512,12 @@ export class VsCodeIdeUtils { else return "unavailable"; } - private async _getRepo(forDirectory: vscode.Uri): Promise { + private async _getRepo( + forDirectory: vscode.Uri, + ): Promise { // Use the native git extension to get the branch name - const extension = vscode.extensions.getExtension("vscode.git"); + const extension = + vscode.extensions.getExtension("vscode.git"); if ( typeof extension === "undefined" || !extension.isActive || @@ -505,7 +528,7 @@ export class VsCodeIdeUtils { try { const git = extension.exports.getAPI(1); - return git.getRepository(forDirectory); + return git.getRepository(forDirectory) ?? undefined; } catch (e) { this._repoWasNone = true; console.warn("Git not found: ", e); @@ -514,7 +537,22 @@ export class VsCodeIdeUtils { } private _repoWasNone: boolean = false; - async getRepo(forDirectory: vscode.Uri): Promise { + private repoCache: Map = new Map(); + private static secondsToWaitForGitToLoad = + process.env.NODE_ENV === "test" ? 1 : 20; + async getRepo(forDirectory: vscode.Uri): Promise { + const workspaceDirs = this.getWorkspaceDirectories(); + const parentDir = workspaceDirs.find((dir) => + forDirectory.fsPath.startsWith(dir), + ); + if (parentDir) { + // Check if the repository is already cached + const cachedRepo = this.repoCache.get(parentDir); + if (cachedRepo) { + return cachedRepo; + } + } + let repo = await this._getRepo(forDirectory); let i = 0; @@ -523,12 +561,18 @@ export class VsCodeIdeUtils { await new Promise((resolve) => setTimeout(resolve, 1000)); i++; - if (i >= 20) { + if (i >= VsCodeIdeUtils.secondsToWaitForGitToLoad) { this._repoWasNone = true; return undefined; } repo = await this._getRepo(forDirectory); } + + if (parentDir) { + // Cache the repository for the parent directory + this.repoCache.set(parentDir, repo); + } + return repo; } @@ -538,7 +582,7 @@ export class VsCodeIdeUtils { } async getBranch(forDirectory: vscode.Uri) { - let repo = await this.getRepo(forDirectory); + const repo = await this.getRepo(forDirectory); if (repo?.state?.HEAD?.name === undefined) { try { const { stdout } = await asyncExec("git rev-parse --abbrev-ref HEAD", { @@ -554,7 +598,8 @@ export class VsCodeIdeUtils { } async getDiff(): Promise { - let diffs = []; + let diffs: string[] = []; + let repos = []; for (const dir of this.getWorkspaceDirectories()) { const repo = await this.getRepo(vscode.Uri.file(dir)); @@ -562,17 +607,32 @@ export class VsCodeIdeUtils { continue; } - diffs.push((await repo.getDiff()).join("\n")); + repos.push(repo.state.HEAD?.name); + // Staged changes + // const a = await repo.diffIndexWithHEAD(); + const staged = await repo.diff(true); + // Un-staged changes + // const b = await repo.diffWithHEAD(); + const unstaged = await repo.diff(false); + // All changes + // const e = await repo.diffWith("HEAD"); + // Only staged + // const f = await repo.diffIndexWith("HEAD"); + diffs.push(`${staged}\n${unstaged}`); } - return diffs.join("\n\n"); + const fullDiff = diffs.join("\n\n"); + if (fullDiff.trim() === "") { + console.log(`Diff empty for repos: ${repos}`); + } + return fullDiff; } getHighlightedCode(): RangeInFile[] { // TODO - let rangeInFiles: RangeInFile[] = []; + const rangeInFiles: RangeInFile[] = []; vscode.window.visibleTextEditors - .filter((editor) => this.documentIsCode(editor.document)) + .filter((editor) => this.documentIsCode(editor.document.uri)) .forEach((editor) => { editor.selections.forEach((selection) => { // if (!selection.isEmpty) { diff --git a/extensions/vscode/src/util/loadAutocompleteModel.ts b/extensions/vscode/src/util/loadAutocompleteModel.ts index 7fabedc1d..db56c7e31 100644 --- a/extensions/vscode/src/util/loadAutocompleteModel.ts +++ b/extensions/vscode/src/util/loadAutocompleteModel.ts @@ -1,19 +1,21 @@ -import { ILLM } from "core"; -import { ConfigHandler } from "core/config/handler"; +import type { ILLM } from "core"; +import { IConfigHandler } from "core/config/IConfigHandler"; import Ollama from "core/llm/llms/Ollama"; +import { GlobalContext } from "core/util/GlobalContext"; import * as vscode from "vscode"; export class TabAutocompleteModel { private _llm: ILLM | undefined; - private defaultTag: string = "starcoder2:3b"; - private defaultTagName: string = "Starcoder2 3b"; + private defaultTag = "starcoder2:3b"; + private defaultTagName = "Starcoder2 3b"; + private globalContext: GlobalContext = new GlobalContext(); - private shownOllamaWarning: boolean = false; - private shownDeepseekWarning: boolean = false; + private shownOllamaWarning = false; + private shownDeepseekWarning = false; - private configHandler: ConfigHandler; + private configHandler: IConfigHandler; - constructor(configHandler: ConfigHandler) { + constructor(configHandler: IConfigHandler) { this.configHandler = configHandler; } @@ -40,7 +42,7 @@ export class TabAutocompleteModel { if (value === "Documentation") { vscode.env.openExternal( vscode.Uri.parse( - "https://continue.dev/docs/walkthroughs/tab-autocomplete", + "https://docs.continue.dev/walkthroughs/tab-autocomplete", ), ); } else if (value === "Copy Command") { @@ -56,15 +58,18 @@ export class TabAutocompleteModel { vscode.window .showWarningMessage( "Continue failed to connect to Ollama, which is used by default for tab-autocomplete. If you haven't downloaded it yet, you can do so at https://ollama.ai (recommended). If you'd like to use a custom model for tab autocomplete, learn more in the docs", + "Download Ollama", "Documentation", ) .then((value) => { if (value === "Documentation") { vscode.env.openExternal( vscode.Uri.parse( - "https://continue.dev/docs/walkthroughs/tab-autocomplete", + "https://docs.continue.dev/walkthroughs/tab-autocomplete", ), ); + } else if (value === "Download Ollama") { + vscode.env.openExternal(vscode.Uri.parse("https://ollama.ai")); } }); this.shownOllamaWarning = true; @@ -77,12 +82,28 @@ export class TabAutocompleteModel { async get() { if (!this._llm) { - const ws_config = vscode.workspace.getConfiguration(); const config = await this.configHandler.loadConfig(); - let completionModelName = ws_config.get("ahrefs-continue.completionModel", "") - let completionModel: ILLM = config.tabAutocompleteModels.find((m) => m.title == completionModelName || m.model == completionModelName) || config.tabAutocompleteModels[0]; - this._llm = completionModel; + if (config.tabAutocompleteModels?.length) { + const selected = this.globalContext.get("selectedTabAutocompleteModel"); + if (selected) { + this._llm = + config.tabAutocompleteModels?.find( + (model) => model.title === selected, + ) ?? config.tabAutocompleteModels?.[0]; + } else { + if (config.tabAutocompleteModels[0].title) { + this.globalContext.update( + "selectedTabAutocompleteModel", + config.tabAutocompleteModels[0].title, + ); + } + this._llm = config.tabAutocompleteModels[0]; + } + } else { + this._llm = await this.getDefaultTabAutocompleteModel(); + } } + return this._llm; } } diff --git a/extensions/vscode/src/util/util.ts b/extensions/vscode/src/util/util.ts index 5a2f5cbf8..fb0d88c14 100644 --- a/extensions/vscode/src/util/util.ts +++ b/extensions/vscode/src/util/util.ts @@ -1,9 +1,13 @@ -const os = require("os"); +const os = require("node:os"); import * as vscode from "vscode"; function charIsEscapedAtIndex(index: number, str: string): boolean { - if (index === 0) return false; - if (str[index - 1] !== "\\") return false; + if (index === 0) { + return false; + } + if (str[index - 1] !== "\\") { + return false; + } return !charIsEscapedAtIndex(index - 1, str); } @@ -51,9 +55,9 @@ export function convertSingleToDoubleQuoteJSON(json: string): string { return newJson; } -export function debounced(delay: number, fn: Function) { +export function debounced(delay: number, fn: (...args: any[]) => void) { let timerId: NodeJS.Timeout | null; - return function (...args: any[]) { + return (...args: any[]) => { if (timerId) { clearTimeout(timerId); } @@ -83,7 +87,7 @@ export function getAltOrOption() { if (getPlatform() === "mac") { return "⌥"; } else { - return "⎇"; + return "Alt"; } } @@ -100,7 +104,20 @@ export function getMetaKeyLabel() { } } -export function getExtensionVersion() { +export function getMetaKeyName() { + const platform = getPlatform(); + switch (platform) { + case "mac": + return "Cmd"; + case "linux": + case "windows": + return "Ctrl"; + default: + return "Ctrl"; + } +} + +export function getExtensionVersion(): string { const extension = vscode.extensions.getExtension("continue.continue"); - return extension?.packageJSON.version || ""; + return extension?.packageJSON.version || "0.1.0"; } diff --git a/extensions/vscode/src/util/vscode.ts b/extensions/vscode/src/util/vscode.ts index 8fb0104c8..d248acee5 100644 --- a/extensions/vscode/src/util/vscode.ts +++ b/extensions/vscode/src/util/vscode.ts @@ -1,5 +1,5 @@ import { machineIdSync } from "node-machine-id"; -import * as path from "path"; +import * as path from "node:path"; import * as vscode from "vscode"; export function translate(range: vscode.Range, lines: number): vscode.Range { @@ -28,8 +28,8 @@ export function getExtensionUri(): vscode.Uri { export function getViewColumnOfFile( filepath: string, ): vscode.ViewColumn | undefined { - for (let tabGroup of vscode.window.tabGroups.all) { - for (let tab of tabGroup.tabs) { + for (const tabGroup of vscode.window.tabGroups.all) { + for (const tab of tabGroup.tabs) { if ( (tab?.input as any)?.uri && (tab.input as any).uri.fsPath === filepath @@ -44,7 +44,7 @@ export function getViewColumnOfFile( export function getRightViewColumn(): vscode.ViewColumn { // When you want to place in the rightmost panel if there is already more than one, otherwise use Beside let column = vscode.ViewColumn.Beside; - let columnOrdering = [ + const columnOrdering = [ vscode.ViewColumn.One, vscode.ViewColumn.Beside, vscode.ViewColumn.Two, @@ -56,7 +56,7 @@ export function getRightViewColumn(): vscode.ViewColumn { vscode.ViewColumn.Eight, vscode.ViewColumn.Nine, ]; - for (let tabGroup of vscode.window.tabGroups.all) { + for (const tabGroup of vscode.window.tabGroups.all) { if ( columnOrdering.indexOf(tabGroup.viewColumn) > columnOrdering.indexOf(column) @@ -73,15 +73,17 @@ export function openEditorAndRevealRange( editorFilename: string, range?: vscode.Range, viewColumn?: vscode.ViewColumn, + preview?: boolean, ): Promise { return new Promise((resolve, _) => { + let filename = editorFilename; if (editorFilename.startsWith("~")) { - editorFilename = path.join( + filename = path.join( process.env.HOME || process.env.USERPROFILE || "", editorFilename.slice(1), ); } - vscode.workspace.openTextDocument(editorFilename).then(async (doc) => { + vscode.workspace.openTextDocument(filename).then(async (doc) => { try { // An error is thrown mysteriously if you open two documents in parallel, hence this while (showTextDocumentInProcess) { @@ -93,10 +95,10 @@ export function openEditorAndRevealRange( } showTextDocumentInProcess = true; vscode.window - .showTextDocument( - doc, - getViewColumnOfFile(editorFilename) || viewColumn, - ) + .showTextDocument(doc, { + viewColumn: getViewColumnOfFile(editorFilename) || viewColumn, + preview, + }) .then((editor) => { if (range) { editor.revealRange(range); @@ -123,7 +125,7 @@ function windowsToPosix(windowsPath: string): string { function isWindowsLocalButNotRemote(): boolean { return ( vscode.env.remoteName !== undefined && - ["wsl", "ssh-remote", "dev-container", "attached-container"].includes( + ["wsl", "ssh-remote", "dev-container", "attached-container", "tunnel"].includes( vscode.env.remoteName, ) && process.platform === "win32" @@ -135,15 +137,16 @@ export function getPathSep(): string { } export function uriFromFilePath(filepath: string): vscode.Uri { + let finalPath = filepath; if (vscode.env.remoteName) { if (isWindowsLocalButNotRemote()) { - filepath = windowsToPosix(filepath); + finalPath = windowsToPosix(filepath); } return vscode.Uri.parse( - `vscode-remote://${vscode.env.remoteName}${filepath}`, + `vscode-remote://${vscode.env.remoteName}${finalPath}`, ); } else { - return vscode.Uri.file(filepath); + return vscode.Uri.file(finalPath); } } diff --git a/extensions/vscode/src/util/workspaceConfig.ts b/extensions/vscode/src/util/workspaceConfig.ts new file mode 100644 index 000000000..3adc6d252 --- /dev/null +++ b/extensions/vscode/src/util/workspaceConfig.ts @@ -0,0 +1,7 @@ +import { workspace } from "vscode"; + +export const CONTINUE_WORKSPACE_KEY = "continue"; + +export function getContinueWorkspaceConfig() { + return workspace.getConfiguration(CONTINUE_WORKSPACE_KEY); +} diff --git a/extensions/vscode/src/webviewProtocol.ts b/extensions/vscode/src/webviewProtocol.ts index 0e291f459..432daaf1a 100644 --- a/extensions/vscode/src/webviewProtocol.ts +++ b/extensions/vscode/src/webviewProtocol.ts @@ -1,34 +1,20 @@ -import { ContextItemId, IDE } from "core"; -import { ConfigHandler } from "core/config/handler"; -import { fetchwithRequestOptions } from "core/util/fetchWithOptions"; -import { - setupLocalMode, - setupOptimizedExistingUserMode, - setupOptimizedMode, -} from "core/config/onboarding"; -import { SiteIndexingConfig } from "core" -import { addModel, addOpenAIKey, deleteModel } from "core/config/util"; -import { indexDocs } from "core/indexing/docs"; -import TransformersJsEmbeddingsProvider from "core/indexing/embeddings/TransformersJsEmbeddingsProvider"; -import { logDevData } from "core/util/devdata"; -import { DevDataSqliteDb } from "core/util/devdataSqlite"; -import historyManager from "core/util/history"; import { Message } from "core/util/messenger"; -import { editConfigJson, getConfigJsonPath } from "core/util/paths"; -import { Telemetry } from "core/util/posthog"; -import { - ReverseWebviewProtocol, - WebviewProtocol, -} from "core/web/webviewProtocol"; -import fs from "fs"; -import * as path from "path"; +import fs from "node:fs"; +import path from "path"; import { v4 as uuidv4 } from "uuid"; import * as vscode from "vscode"; -import { VerticalPerLineDiffManager } from "./diff/verticalPerLine/manager"; +import { + ToCoreFromWebviewProtocol, + ToWebviewFromCoreProtocol, +} from "../../../core/protocol/coreWebview"; +import { + ToIdeFromWebviewProtocol, + ToWebviewFromIdeProtocol, +} from "../../../core/protocol/ideWebview"; +import { IMessenger } from "../../../core/util/messenger"; import { getExtensionUri } from "./util/vscode"; -import { stripImages } from "../../../core/llm/countTokens"; -async function showTutorial() { +export async function showTutorial() { const tutorialPath = path.join( getExtensionUri().fsPath, "continue_tutorial.py", @@ -43,14 +29,26 @@ async function showTutorial() { const doc = await vscode.workspace.openTextDocument( vscode.Uri.file(tutorialPath), ); - await vscode.window.showTextDocument(doc); + await vscode.window.showTextDocument(doc, { preview: false }); } -export class VsCodeWebviewProtocol { - listeners = new Map any)[]>(); - abortedMessageIds: Set = new Set(); - - private send(messageType: string, data: any, messageId?: string): string { +export type ToCoreOrIdeFromWebviewProtocol = ToCoreFromWebviewProtocol & + ToIdeFromWebviewProtocol; +type FullToWebviewFromIdeOrCoreProtocol = ToWebviewFromIdeProtocol & + ToWebviewFromCoreProtocol; +export class VsCodeWebviewProtocol + implements + IMessenger< + ToCoreOrIdeFromWebviewProtocol, + FullToWebviewFromIdeOrCoreProtocol + > +{ + listeners = new Map< + keyof ToCoreOrIdeFromWebviewProtocol, + ((message: Message) => any)[] + >(); + + send(messageType: string, data: any, messageId?: string): string { const id = messageId ?? uuidv4(); this.webview?.postMessage({ messageType, @@ -60,11 +58,13 @@ export class VsCodeWebviewProtocol { return id; } - on( + on( messageType: T, handler: ( - message: Message, - ) => Promise | WebviewProtocol[T][1], + message: Message, + ) => + | Promise + | ToCoreOrIdeFromWebviewProtocol[T][1], ): void { if (!this.listeners.has(messageType)) { this.listeners.set(messageType, []); @@ -85,7 +85,7 @@ export class VsCodeWebviewProtocol { this._webviewListener = this._webview.onDidReceiveMessage(async (msg) => { if (!msg.messageType || !msg.messageId) { - throw new Error("Invalid webview protocol msg: " + JSON.stringify(msg)); + throw new Error(`Invalid webview protocol msg: ${JSON.stringify(msg)}`); } const respond = (message: any) => @@ -109,578 +109,125 @@ export class VsCodeWebviewProtocol { respond(response || {}); } } catch (e: any) { + respond({ done: true, error: e }); + console.error( - "Error handling webview message: " + - JSON.stringify({ msg }, null, 2), + `Error handling webview message: ${JSON.stringify( + { msg }, + null, + 2, + )}\n\n${e}`, ); let message = e.message; if (e.cause) { if (e.cause.name === "ConnectTimeoutError") { - message = `Connection timed out. If you expect it to take a long time to connect, you can increase the timeout in config.json by setting "requestOptions": { "timeout": 10000 }. You can find the full config reference here: https://continue.dev/docs/reference/config`; + message = `Connection timed out. If you expect it to take a long time to connect, you can increase the timeout in config.json by setting "requestOptions": { "timeout": 10000 }. You can find the full config reference here: https://docs.continue.dev/reference/config`; } else if (e.cause.code === "ECONNREFUSED") { - message = `Connection was refused. This likely means that there is no server running at the specified URL. If you are running your own server you may need to set the "apiBase" parameter in config.json. For example, you can set up an OpenAI-compatible server like here: https://continue.dev/docs/reference/Model%20Providers/openai#openai-compatible-servers--apis`; + message = `Connection was refused. This likely means that there is no server running at the specified URL. If you are running your own server you may need to set the "apiBase" parameter in config.json. For example, you can set up an OpenAI-compatible server like here: https://docs.continue.dev/reference/Model%20Providers/openai#openai-compatible-servers--apis`; } else { message = `The request failed with "${e.cause.name}": ${e.cause.message}. If you're having trouble setting up Continue, please see the troubleshooting guide for help.`; } } - vscode.window - .showErrorMessage(message, "Show Logs", "Troubleshooting") - .then((selection) => { - if (selection === "Show Logs") { - vscode.commands.executeCommand( - "workbench.action.toggleDevTools", - ); - } else if (selection === "Troubleshooting") { - vscode.env.openExternal( - vscode.Uri.parse("https://continue.dev/docs/troubleshooting"), - ); - } - }); - } - } - }); - } - - constructor( - private readonly ide: IDE, - private readonly configHandler: ConfigHandler, - private readonly verticalDiffManager: VerticalPerLineDiffManager, - ) { - this.on("abort", (msg) => { - this.abortedMessageIds.add(msg.messageId); - }); - this.on("showFile", (msg) => { - this.ide.openFile(msg.data.filepath); - }); - this.on("openConfigJson", (msg) => { - this.ide.openFile(getConfigJsonPath()); - }); - this.on("readRangeInFile", async (msg) => { - return await vscode.workspace - .openTextDocument(msg.data.filepath) - .then((document) => { - let start = new vscode.Position(0, 0); - let end = new vscode.Position(5, 0); - let range = new vscode.Range(start, end); - - let contents = document.getText(range); - return contents; - }); - }); - this.on("toggleDevTools", (msg) => { - vscode.commands.executeCommand("workbench.action.toggleDevTools"); - vscode.commands.executeCommand("continue.viewLogs"); - }); - this.on("reloadWindow", (msg) => { - vscode.commands.executeCommand("workbench.action.reloadWindow"); - }); - this.on("focusEditor", (msg) => { - vscode.commands.executeCommand("workbench.action.focusActiveEditorGroup"); - }); - this.on("toggleFullScreen", (msg) => { - vscode.commands.executeCommand("continue.toggleFullScreen"); - }); - - // IDE - this.on("getDiff", async (msg) => { - return await ide.getDiff(); - }); - this.on("config/getBrowserSerialized", async (msg) => { - return await configHandler.getSerializedConfig(); - }); - this.on("getTerminalContents", async (msg) => { - return await ide.getTerminalContents(); - }); - this.on("getDebugLocals", async (msg) => { - return await ide.getDebugLocals(Number(msg.data.threadIndex)); - }); - this.on("getAvailableThreads", async (msg) => { - return await ide.getAvailableThreads(); - }); - this.on("getTopLevelCallStackSources", async (msg) => { - return await ide.getTopLevelCallStackSources( - msg.data.threadIndex, - msg.data.stackDepth, - ); - }); - this.on("listWorkspaceContents", async (msg) => { - return await ide.listWorkspaceContents(); - }); - this.on("getWorkspaceDirs", async (msg) => { - return await ide.getWorkspaceDirs(); - }); - this.on("listFolders", async (msg) => { - return await ide.listFolders(); - }); - this.on("writeFile", async (msg) => { - return await ide.writeFile(msg.data.path, msg.data.contents); - }); - this.on("showVirtualFile", async (msg) => { - return await ide.showVirtualFile(msg.data.name, msg.data.content); - }); - this.on("getContinueDir", async (msg) => { - return await ide.getContinueDir(); - }); - this.on("openFile", async (msg) => { - return await ide.openFile(msg.data.path); - }); - this.on("runCommand", async (msg) => { - await ide.runCommand(msg.data.command); - }); - this.on("getSearchResults", async (msg) => { - return await ide.getSearchResults(msg.data.query); - }); - this.on("subprocess", async (msg) => { - return await ide.subprocess(msg.data.command); - }); - // History - this.on("history/list", (msg) => { - return historyManager.list(); - }); - this.on("history/save", (msg) => { - historyManager.save(msg.data); - }); - this.on("history/delete", (msg) => { - historyManager.delete(msg.data.id); - }); - this.on("history/load", (msg) => { - return historyManager.load(msg.data.id); - }); - this.on("saveFile", async (msg) => { - return await ide.saveFile(msg.data.filepath); - }); - this.on("saveSessionChatHistory", async (msg) => { - const datetime = new Date(); - const year = datetime.getFullYear(); - const month = String(datetime.getMonth() + 1).padStart(2, '0'); - const day = String(datetime.getDate()).padStart(2, '0'); - const hours = String(datetime.getHours()).padStart(2, '0'); - const minutes = String(datetime.getMinutes()).padStart(2, '0'); - const seconds = String(datetime.getSeconds()).padStart(2, '0'); - - const datetime_filename = `${year}${month}${day}_${hours}${minutes}${seconds}`; - - let content = `This is a session transcript from Ahrefs-Continue on ${datetime.toLocaleString()}.`; - - for (const m of msg.data.chatHistory) { - content += `\n\n## ${ - m.message.role === "user" ? "User" : `Ahrefs-Continue: ${msg.data.defaultTitle}` - }\n\n${stripImages(m.message.content)}`; - } - - const continueDir = await ide.getContinueDir(); - const savedSessionsPath = `${continueDir}/saved_sessions` - if (!fs.existsSync(savedSessionsPath)) { - fs.mkdirSync(savedSessionsPath); - } - const path = `${savedSessionsPath}/${datetime_filename}_session.md`; - await ide.writeFile(path, content); - await ide.openFile(path); - - vscode.window.showInformationMessage(`Chat session saved to ${path}`); - }) - this.on("readFile", async (msg) => { - return await ide.readFile(msg.data.filepath); - }); - this.on("showDiff", async (msg) => { - return await ide.showDiff( - msg.data.filepath, - msg.data.newContents, - msg.data.stepIndex, - ); - }); - - this.on("getProblems", async (msg) => { - return await ide.getProblems(msg.data.filepath); - }); - this.on("getBranch", async (msg) => { - const { dir } = msg.data; - return await ide.getBranch(dir); - }); - this.on("getOpenFiles", async (msg) => { - return await ide.getOpenFiles(); - }); - this.on("getPinnedFiles", async (msg) => { - return await ide.getPinnedFiles(); - }); - this.on("showLines", async (msg) => { - const { filepath, startLine, endLine } = msg.data; - return await ide.showLines(filepath, startLine, endLine); - }); - // Other - this.on("errorPopup", (msg) => { - vscode.window - .showErrorMessage(msg.data.message, "Show Logs") - .then((selection) => { - if (selection === "Show Logs") { - vscode.commands.executeCommand("workbench.action.toggleDevTools"); - } - }); - }); - this.on("devdata/log", (msg) => { - logDevData(msg.data.tableName, msg.data.data); - }); - this.on("config/addModel", (msg) => { - const model = msg.data.model; - const newConfigString = addModel(model); - this.configHandler.reloadConfig(); - this.ide.openFile(getConfigJsonPath()); - - // Find the range where it was added and highlight - let lines = newConfigString.split("\n"); - let startLine; - let endLine; - for (let i = 0; i < lines.length; i++) { - let line = lines[i]; + if (message.includes("https://proxy-server")) { + message = message.split("\n").filter((l: string) => l !== "")[1]; + try { + message = JSON.parse(message).message; + } catch {} + if (message.includes("exceeded")) { + message += + " To keep using Continue, you can set up a local model or use your own API key."; + } - if (!startLine) { - if (line.trim() === `"title": "${model.title}",`) { - startLine = i - 1; - } - } else { - if (line.startsWith(" }")) { - endLine = i; - break; + vscode.window + .showInformationMessage(message, "Add API Key", "Use Local Model") + .then((selection) => { + if (selection === "Add API Key") { + this.request("addApiKey", undefined); + } else if (selection === "Use Local Model") { + this.request("setupLocalModel", undefined); + } + }); + } else if (message.includes("Please sign in with GitHub")) { + vscode.window + .showInformationMessage( + message, + "Sign In", + "Use API key / local model", + ) + .then((selection) => { + if (selection === "Sign In") { + vscode.authentication + .getSession("github", [], { + createIfNone: true, + }) + .then(() => { + this.reloadConfig(); + }); + } else if (selection === "Use API key / local model") { + this.request("openOnboarding", undefined); + } + }); + } else { + vscode.window + .showErrorMessage( + message.split("\n\n")[0], + "Show Logs", + "Troubleshooting", + ) + .then((selection) => { + if (selection === "Show Logs") { + vscode.commands.executeCommand( + "workbench.action.toggleDevTools", + ); + } else if (selection === "Troubleshooting") { + vscode.env.openExternal( + vscode.Uri.parse( + "https://docs.continue.dev/troubleshooting", + ), + ); + } + }); } } } - - if (startLine && endLine) { - this.ide.showLines( - getConfigJsonPath(), - startLine, - endLine, - // "#fff1" - ); - } - vscode.window.showInformationMessage( - "🎉 Your model has been successfully added to config.json. You can use this file to further edit its configuration.", - ); - }); - this.on("config/deleteModel", (msg) => { - deleteModel(msg.data.title); - this.configHandler.reloadConfig(); - }); - this.on("config/addOpenAiKey", async (msg) => { - addOpenAIKey(msg.data); - this.configHandler.reloadConfig(); - }); - - async function* llmStreamComplete( - protocol: VsCodeWebviewProtocol, - msg: Message, - ) { - const model = await protocol.configHandler.llmFromTitle(msg.data.title); - const gen = model.streamComplete( - msg.data.prompt, - msg.data.completionOptions, - ); - let next = await gen.next(); - while (!next.done) { - if (protocol.abortedMessageIds.has(msg.messageId)) { - protocol.abortedMessageIds.delete(msg.messageId); - next = await gen.return({ - completion: "", - prompt: "", - completionOptions: { - ...msg.data.completionOptions, - model: model.model, - }, - }); - break; - } - yield { content: next.value }; - next = await gen.next(); - } - - return { done: true, content: next.value }; - } - this.on("llm/streamComplete", (msg) => llmStreamComplete(this, msg)); - - async function* llmStreamChat( - protocol: VsCodeWebviewProtocol, - msg: Message, - ) { - const model = await protocol.configHandler.llmFromTitle(msg.data.title); - const gen = model.streamChat( - msg.data.messages, - msg.data.completionOptions, - ); - let next = await gen.next(); - while (!next.done) { - if (protocol.abortedMessageIds.has(msg.messageId)) { - protocol.abortedMessageIds.delete(msg.messageId); - next = await gen.return({ - completion: "", - prompt: "", - completionOptions: { - ...msg.data.completionOptions, - model: model.model, - }, - }); - break; - } - yield { content: next.value.content }; - next = await gen.next(); - } - - return { done: true, content: next.value }; - } - this.on("llm/streamChat", (msg) => llmStreamChat(this, msg)); - this.on("llm/complete", async (msg) => { - const model = await this.configHandler.llmFromTitle(msg.data.title); - const completion = await model.complete( - msg.data.prompt, - msg.data.completionOptions, - ); - return completion; - }); - - async function* runNodeJsSlashCommand( - protocol: VsCodeWebviewProtocol, - msg: Message, - ) { - const { - input, - history, - modelTitle, - slashCommandName, - contextItems, - params, - historyIndex, - selectedCode, - } = msg.data; - - const config = await protocol.configHandler.loadConfig(); - const llm = await protocol.configHandler.llmFromTitle(modelTitle); - const slashCommand = config.slashCommands?.find( - (sc) => sc.name === slashCommandName, - ); - if (!slashCommand) { - throw new Error(`Unknown slash command ${slashCommandName}`); - } - - Telemetry.capture("useSlashCommand", { - name: slashCommandName, - }); - - for await (const content of slashCommand.run({ - input, - history, - llm, - contextItems, - params, - ide, - addContextItem: (item) => { - protocol.request("addContextItem", { - item, - historyIndex, - }); - }, - selectedCode, - config, - fetch: (url, init) => - fetchwithRequestOptions(url, init, config.requestOptions), - })) { - if (content) { - yield { content }; - } - } - yield { done: true, content: "" }; - } - this.on("command/run", (msg) => runNodeJsSlashCommand(this, msg)); - - this.on("context/loadSubmenuItems", async (msg) => { - const { title } = msg.data; - const config = await this.configHandler.loadConfig(); - const provider = config.contextProviders?.find( - (p) => p.description.title === title, - ); - if (!provider) { - vscode.window.showErrorMessage( - `Unknown provider ${title}. Existing providers: ${config.contextProviders - ?.map((p) => p.description.title) - .join(", ")}`, - ); - return []; - } - - try { - const items = await provider.loadSubmenuItems({ - ide: this.ide, - fetch: (url, init) => - fetchwithRequestOptions(url, init, config.requestOptions) - }); - return items; - } catch (e) { - vscode.window.showErrorMessage( - `Error loading submenu items from ${title}: ${e}`, - ); - return []; - } - }); - - this.on("context/getContextItems", async (msg) => { - const { name, query, fullInput, selectedCode } = msg.data; - const config = await this.configHandler.loadConfig(); - const llm = await this.configHandler.llmFromTitle(); - const provider = config.contextProviders?.find( - (p) => p.description.title === name, - ); - if (!provider) { - vscode.window.showErrorMessage( - `Unknown provider ${name}. Existing providers: ${config.contextProviders - ?.map((p) => p.description.title) - .join(", ")}`, - ); - return []; - } - - try { - const id: ContextItemId = { - providerTitle: provider.description.title, - itemId: uuidv4(), - }; - const items = await provider.getContextItems(query, { - llm, - embeddingsProvider: config.embeddingsProvider, - reranker: config.reranker, - fullInput, - ide, - selectedCode, - fetch: (url, init) => - fetchwithRequestOptions(url, init, config.requestOptions), - }); - - Telemetry.capture("useContextProvider", { - name: provider.description.title, - }); - - return items.map((item) => ({ ...item, id })); - } catch (e) { - vscode.window.showErrorMessage( - `Error getting context items from ${name}: ${e}`, - ); - return []; - } - }); - - this.on("context/addDocs", (msg) => { - const siteIndexingConfig: SiteIndexingConfig = { - startUrl: msg.data.startUrl, - rootUrl: msg.data.rootUrl, - title: msg.data.title, - maxDepth: msg.data.maxDepth, - }; - - vscode.window.withProgress( - { - location: vscode.ProgressLocation.Notification, - title: `Indexing ${msg.data.title}`, - cancellable: false, - }, - async (progress) => { - for await (const update of indexDocs( - siteIndexingConfig, - new TransformersJsEmbeddingsProvider(), - )) { - progress.report({ - increment: update.progress, - message: update.desc, - }); - } - - vscode.window.showInformationMessage( - `🎉 Successfully indexed ${msg.data.title}`, - ); - - this.request("refreshSubmenuItems", undefined); - }, - ); - }); - this.on("applyToCurrentFile", async (msg) => { - // Select the entire current file - const editor = vscode.window.activeTextEditor; - if (!editor) { - vscode.window.showErrorMessage("No active editor to apply edits to"); - return; - } - const document = editor.document; - const start = new vscode.Position(0, 0); - const end = new vscode.Position( - document.lineCount - 1, - document.lineAt(document.lineCount - 1).text.length, - ); - editor.selection = new vscode.Selection(start, end); - - this.verticalDiffManager.streamEdit( - `The following code was suggested as an edit:\n\`\`\`\n${msg.data.text}\n\`\`\`\nPlease apply it to the previous code.`, - await this.request("getDefaultModelTitle", undefined), - ); - }); - this.on("showTutorial", (msg) => { - showTutorial(); - }); - - this.on("completeOnboarding", (msg) => { - const mode = msg.data.mode; - Telemetry.capture("onboardingSelection", { - mode, - }); - if (mode === "custom" || mode === "localExistingUser") { - return; - } - editConfigJson( - mode === "local" - ? setupLocalMode - : mode === "optimized" - ? setupOptimizedMode - : setupOptimizedExistingUserMode, - ); }); + } - this.on("openUrl", (msg) => { - vscode.env.openExternal(vscode.Uri.parse(msg.data)); - }); - this.on("stats/getTokensPerDay", async (msg) => { - const rows = await DevDataSqliteDb.getTokensPerDay(); - return rows; - }); - this.on("stats/getTokensPerModel", async (msg) => { - const rows = await DevDataSqliteDb.getTokensPerModel(); - return rows; - }); - this.on("insertAtCursor", async (msg) => { - const editor = vscode.window.activeTextEditor; - if (editor === undefined || !editor.selection) { - return; - } + constructor(private readonly reloadConfig: () => void) {} + invoke( + messageType: T, + data: ToCoreOrIdeFromWebviewProtocol[T][0], + messageId?: string, + ): ToCoreOrIdeFromWebviewProtocol[T][1] { + throw new Error("Method not implemented."); + } - editor.edit((editBuilder) => { - editBuilder.replace( - new vscode.Range(editor.selection.start, editor.selection.end), - msg.data.text, - ); - }); - }); + onError(handler: (error: Error) => void): void { + throw new Error("Method not implemented."); } - public request( + public request( messageType: T, - data: ReverseWebviewProtocol[T][0], - ): Promise { + data: FullToWebviewFromIdeOrCoreProtocol[T][0], + ): Promise { const messageId = uuidv4(); - return new Promise((resolve) => { - if (!this.webview) { - resolve(undefined); - return; + return new Promise(async (resolve) => { + let i = 0; + while (!this.webview) { + if (i >= 10) { + resolve(undefined); + return; + } else { + await new Promise((res) => setTimeout(res, i >= 5 ? 1000 : 500)); + i++; + } } this.send(messageType, data, messageId); const disposable = this.webview.onDidReceiveMessage( - (msg: Message) => { + (msg: Message) => { if (msg.messageId === messageId) { resolve(msg.data); disposable?.dispose(); @@ -689,4 +236,4 @@ export class VsCodeWebviewProtocol { ); }); } -} +} \ No newline at end of file diff --git a/extensions/vscode/tree-sitter/code-snippet-queries/c.scm b/extensions/vscode/tree-sitter/code-snippet-queries/c.scm new file mode 100644 index 000000000..bb343911e --- /dev/null +++ b/extensions/vscode/tree-sitter/code-snippet-queries/c.scm @@ -0,0 +1,9 @@ +(function_definition declarator: (function_declarator (identifier) @name)) @definition.function + +(struct_specifier name: (type_identifier) @name.definition.class body:(_)) @definition.class + +(declaration type: (union_specifier name: (type_identifier) @name.definition.class)) @definition.class + +(type_definition declarator: (type_identifier) @name ) @body + +(enum_specifier name: (type_identifier) @name.definition.type) @definition.type diff --git a/extensions/vscode/tree-sitter/code-snippet-queries/c_sharp.scm b/extensions/vscode/tree-sitter/code-snippet-queries/c_sharp.scm new file mode 100644 index 000000000..d3334b9bd --- /dev/null +++ b/extensions/vscode/tree-sitter/code-snippet-queries/c_sharp.scm @@ -0,0 +1,23 @@ +(class_declaration + name: (identifier) @name.definition.class + ) @definition.class + +(class_declaration + bases: (base_list (_) @name.reference.class) + ) @reference.class + +(interface_declaration + name: (identifier) @name.definition.interface + ) @definition.interface + +(interface_declaration + bases: (base_list (_) @name.reference.interface) + ) @reference.interface + +(method_declaration + name: (identifier) @name.definition.method + ) @definition.method + +(namespace_declaration + name: (identifier) @name.definition.module +) @definition.module diff --git a/extensions/vscode/tree-sitter/code-snippet-queries/cpp.scm b/extensions/vscode/tree-sitter/code-snippet-queries/cpp.scm new file mode 100644 index 000000000..ed2154aca --- /dev/null +++ b/extensions/vscode/tree-sitter/code-snippet-queries/cpp.scm @@ -0,0 +1,7 @@ +(function_definition declarator: (function_declarator) @name.definition.function) @definition.function + +(type_definition declarator: (type_identifier) @name.definition.type) @definition.type + +(enum_specifier name: (type_identifier) @name.definition.type) @definition.type + +(class_specifier name: (type_identifier) @name.definition.class) @definition.class diff --git a/extensions/vscode/tree-sitter/code-snippet-queries/elisp.scm b/extensions/vscode/tree-sitter/code-snippet-queries/elisp.scm new file mode 100644 index 000000000..0c9bc51e9 --- /dev/null +++ b/extensions/vscode/tree-sitter/code-snippet-queries/elisp.scm @@ -0,0 +1,6 @@ +;; defun/defsubst +(function_definition name: (symbol) @name.definition.function) @definition.function + +;; Treat macros as function definitions for the sake of TAGS. +(macro_definition name: (symbol) @name.definition.function) @definition.function + diff --git a/extensions/vscode/tree-sitter/code-snippet-queries/elixir.scm b/extensions/vscode/tree-sitter/code-snippet-queries/elixir.scm new file mode 100644 index 000000000..e43215bb3 --- /dev/null +++ b/extensions/vscode/tree-sitter/code-snippet-queries/elixir.scm @@ -0,0 +1,26 @@ +; Definitions + +; * modules and protocols +(call + target: (identifier) @ignore + (arguments (alias) @name.definition.module) + (#match? @ignore "^(defmodule|defprotocol)$")) @definition.module + +; * functions/macros +(call + target: (identifier) @ignore + (arguments + [ + ; zero-arity functions with no parentheses + (identifier) @name.definition.function + ; regular function clause + (call target: (identifier) @name.definition.function) + ; function clause with a guard clause + (binary_operator + left: (call target: (identifier) @name.definition.function) + operator: "when") + ]) + (#match? @ignore "^(def|defp|defdelegate|defguard|defguardp|defmacro|defmacrop|defn|defnp)$")) @definition.function + +; * modules +(alias) @name.reference.module @reference.module diff --git a/extensions/vscode/tree-sitter/code-snippet-queries/go.scm b/extensions/vscode/tree-sitter/code-snippet-queries/go.scm new file mode 100644 index 000000000..9d2af874d --- /dev/null +++ b/extensions/vscode/tree-sitter/code-snippet-queries/go.scm @@ -0,0 +1,20 @@ +( + (comment)* @doc + . + (function_declaration + name: (identifier) @name.definition.function) @definition.function + (#strip! @doc "^//\\s*") + (#set-adjacent! @doc @definition.function) +) + +( + (comment)* @doc + . + (method_declaration + name: (field_identifier) @name.definition.method) @definition.method + (#strip! @doc "^//\\s*") + (#set-adjacent! @doc @definition.method) +) + +(type_spec + name: (type_identifier) @name.definition.type) @definition.type \ No newline at end of file diff --git a/extensions/vscode/tree-sitter/code-snippet-queries/java.scm b/extensions/vscode/tree-sitter/code-snippet-queries/java.scm new file mode 100644 index 000000000..593a75fc6 --- /dev/null +++ b/extensions/vscode/tree-sitter/code-snippet-queries/java.scm @@ -0,0 +1,8 @@ +(class_declaration + name: (identifier) @name.definition.class) @definition.class + +(method_declaration + name: (identifier) @name.definition.method) @definition.method + +(interface_declaration + name: (identifier) @name.definition.interface) @definition.interface \ No newline at end of file diff --git a/extensions/vscode/tree-sitter/code-snippet-queries/javascript.scm b/extensions/vscode/tree-sitter/code-snippet-queries/javascript.scm new file mode 100644 index 000000000..7be9458f4 --- /dev/null +++ b/extensions/vscode/tree-sitter/code-snippet-queries/javascript.scm @@ -0,0 +1,8 @@ +(class_declaration + name: (_) @name) @body + +(function_declaration + name: (_) @name) @body + +(method_definition + name: (_) @name) @body \ No newline at end of file diff --git a/extensions/vscode/tree-sitter/code-snippet-queries/ocaml.scm b/extensions/vscode/tree-sitter/code-snippet-queries/ocaml.scm new file mode 100644 index 000000000..9bc034d8e --- /dev/null +++ b/extensions/vscode/tree-sitter/code-snippet-queries/ocaml.scm @@ -0,0 +1,12 @@ +(value_definition + (let_binding + pattern: (_) @name) +) @body + +(module_type_definition + name: (_) @name) @body + +(class_definition + (class_binding + name: (_) @name) +) @body \ No newline at end of file diff --git a/extensions/vscode/tree-sitter/code-snippet-queries/php.scm b/extensions/vscode/tree-sitter/code-snippet-queries/php.scm new file mode 100644 index 000000000..c95663f3c --- /dev/null +++ b/extensions/vscode/tree-sitter/code-snippet-queries/php.scm @@ -0,0 +1,8 @@ +(class_declaration + name: (name) @name) @body + +(function_definition + name: (name) @name) @body + +(method_declaration + name: (name) @name) @body \ No newline at end of file diff --git a/extensions/vscode/tree-sitter/code-snippet-queries/python.scm b/extensions/vscode/tree-sitter/code-snippet-queries/python.scm new file mode 100644 index 000000000..04289704f --- /dev/null +++ b/extensions/vscode/tree-sitter/code-snippet-queries/python.scm @@ -0,0 +1,5 @@ +(class_definition + name: (_) @name) @body + +(function_definition + name: (_) @name) @body \ No newline at end of file diff --git a/extensions/vscode/tree-sitter/code-snippet-queries/ql.scm b/extensions/vscode/tree-sitter/code-snippet-queries/ql.scm new file mode 100644 index 000000000..3164aa25a --- /dev/null +++ b/extensions/vscode/tree-sitter/code-snippet-queries/ql.scm @@ -0,0 +1,26 @@ +(classlessPredicate + name: (predicateName) @name.definition.function) @definition.function + +(memberPredicate + name: (predicateName) @name.definition.method) @definition.method + +(aritylessPredicateExpr + name: (literalId) @name.reference.call) @reference.call + +(module + name: (moduleName) @name.definition.module) @definition.module + +(dataclass + name: (className) @name.definition.class) @definition.class + +(datatype + name: (className) @name.definition.class) @definition.class + +(datatypeBranch + name: (className) @name.definition.class) @definition.class + +(qualifiedRhs + name: (predicateName) @name.reference.call) @reference.call + +(typeExpr + name: (className) @name.reference.type) @reference.type diff --git a/extensions/vscode/tree-sitter/code-snippet-queries/ruby.scm b/extensions/vscode/tree-sitter/code-snippet-queries/ruby.scm new file mode 100644 index 000000000..e69de29bb diff --git a/extensions/vscode/tree-sitter/code-snippet-queries/rust.scm b/extensions/vscode/tree-sitter/code-snippet-queries/rust.scm new file mode 100644 index 000000000..e4125cabf --- /dev/null +++ b/extensions/vscode/tree-sitter/code-snippet-queries/rust.scm @@ -0,0 +1,8 @@ +(function_item + name: (_) @name) @body + +(struct_item + name: (_) @name) @body + +(impl_item + type: (_) @name) @body \ No newline at end of file diff --git a/extensions/vscode/tree-sitter/code-snippet-queries/typescript.scm b/extensions/vscode/tree-sitter/code-snippet-queries/typescript.scm new file mode 100644 index 000000000..c56cf4fba --- /dev/null +++ b/extensions/vscode/tree-sitter/code-snippet-queries/typescript.scm @@ -0,0 +1,11 @@ +(class_declaration + name: (_) @name) @body + +(function_declaration + name: (_) @name) @body + +(method_definition + name: (_) @name) @body + +(interface_declaration + name: (_) @name) @body \ No newline at end of file diff --git a/extensions/vscode/tree-sitter/import-queries/typescript.scm b/extensions/vscode/tree-sitter/import-queries/typescript.scm new file mode 100644 index 000000000..19a4d024a --- /dev/null +++ b/extensions/vscode/tree-sitter/import-queries/typescript.scm @@ -0,0 +1,9 @@ +(import_statement + (import_clause + (named_imports + (import_specifier + (identifier) @import)))) + +(import_statement + (import_clause + (identifier) @import )) \ No newline at end of file diff --git a/extensions/vscode/tsconfig.json b/extensions/vscode/tsconfig.json index 9d1481221..b160ec053 100644 --- a/extensions/vscode/tsconfig.json +++ b/extensions/vscode/tsconfig.json @@ -12,8 +12,10 @@ // "noFallthroughCasesInSwitch": true, /* Report errors for fallthrough cases in switch statement. */ // "noUnusedParameters": true, /* Report errors on unused parameters. */ "esModuleInterop": true /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */, - "resolveJsonModule": true /* Enable importing .json files */ + "resolveJsonModule": true /* Enable importing .json files */, + "types": ["mocha"] // This solves conflict between jest and mocha: https://github.com/cypress-io/cypress/issues/7435#issuecomment-631695007 }, - "include": ["src/**/*", "../../core/**/*.ts"], - "exclude": ["../../core/dist/**/*"] + "include": ["src/**/*", "../../core/**/*.ts", "../../core/**/*.d.ts"], + // core/test uses @types/jest, which conflicts with @types/mocha + "exclude": ["../../core/dist/**/*", "../../core/test/**/*"] } diff --git a/extensions/vscode/yarn.lock b/extensions/vscode/yarn.lock index 99f236f67..227ee6470 100644 --- a/extensions/vscode/yarn.lock +++ b/extensions/vscode/yarn.lock @@ -2,23 +2,34 @@ # yarn lockfile v1 -"@aashutoshrathi/word-wrap@^1.2.3": - version "1.2.6" - resolved "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz" - integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA== +"@75lb/deep-merge@^1.1.1": + version "1.1.1" + resolved "https://registry.npmjs.org/@75lb/deep-merge/-/deep-merge-1.1.1.tgz" + integrity sha512-xvgv6pkMGBA6GwdyJbNAnDmfAIR/DfWhrj9jgWh3TY7gRm3KO46x/GPjRg6wJ0nOepwqrNxFfojebh0Df4h4Tw== + dependencies: + lodash.assignwith "^4.2.0" + typical "^7.1.1" "@alloc/quick-lru@^5.2.0": version "5.2.0" resolved "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz" integrity sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw== -"@ampproject/remapping@^2.2.0": - version "2.3.0" - resolved "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz" - integrity sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw== - dependencies: - "@jridgewell/gen-mapping" "^0.3.5" - "@jridgewell/trace-mapping" "^0.3.24" +"@apache-arrow/ts@^14.0.2": + version "14.0.2" + resolved "https://registry.npmjs.org/@apache-arrow/ts/-/ts-14.0.2.tgz" + integrity sha512-CtwAvLkK0CZv7xsYeCo91ml6PvlfzAmAJZkRYuz2GNBwfYufj5SVi0iuSMwIMkcU/szVwvLdzORSLa5PlF/2ug== + dependencies: + "@types/command-line-args" "5.2.0" + "@types/command-line-usage" "5.0.2" + "@types/node" "20.3.0" + "@types/pad-left" "2.1.1" + command-line-args "5.2.1" + command-line-usage "7.0.1" + flatbuffers "23.5.26" + json-bignum "^0.0.3" + pad-left "^2.1.0" + tslib "^2.5.3" "@azure/abort-controller@^1.0.0": version "1.1.0" @@ -57,14 +68,14 @@ tslib "^2.6.2" "@azure/core-rest-pipeline@^1.1.0", "@azure/core-rest-pipeline@^1.9.1": - version "1.15.2" - resolved "https://registry.npmjs.org/@azure/core-rest-pipeline/-/core-rest-pipeline-1.15.2.tgz" - integrity sha512-BmWfpjc/QXc2ipHOh6LbUzp3ONCaa6xzIssTU0DwH9bbYNXJlGUL6tujx5TrbVd/QQknmS+vlQJGrCq2oL1gZA== + version "1.16.0" + resolved "https://registry.npmjs.org/@azure/core-rest-pipeline/-/core-rest-pipeline-1.16.0.tgz" + integrity sha512-CeuTvsXxCUmEuxH5g/aceuSl6w2EugvNHKAtKKVdiX915EjJJxAwfzNNWZreNnbxHZ2fi0zaM6wwS23x2JVqSQ== dependencies: "@azure/abort-controller" "^2.0.0" "@azure/core-auth" "^1.4.0" "@azure/core-tracing" "^1.0.1" - "@azure/core-util" "^1.3.0" + "@azure/core-util" "^1.9.0" "@azure/logger" "^1.0.0" http-proxy-agent "^7.0.0" https-proxy-agent "^7.0.0" @@ -77,7 +88,7 @@ dependencies: tslib "^2.6.2" -"@azure/core-util@^1.1.0", "@azure/core-util@^1.3.0", "@azure/core-util@^1.6.1": +"@azure/core-util@^1.1.0", "@azure/core-util@^1.3.0", "@azure/core-util@^1.6.1", "@azure/core-util@^1.9.0": version "1.9.0" resolved "https://registry.npmjs.org/@azure/core-util/-/core-util-1.9.0.tgz" integrity sha512-AfalUQ1ZppaKuxPPMsFEUdX6GZPB3d9paR9d/TTL7Ow2De8cJaC7ibi7kWVlFAVPCYo31OcnGymc0R89DX8Oaw== @@ -86,9 +97,9 @@ tslib "^2.6.2" "@azure/identity@^4.1.0": - version "4.1.0" - resolved "https://registry.npmjs.org/@azure/identity/-/identity-4.1.0.tgz" - integrity sha512-BhYkF8Xr2gXjyDxocm0pc9RI5J5a1jw8iW0dw6Bx95OGdYbuMyFZrrwNw4eYSqQ2BB6FZOqpJP3vjsAqRcvDhw== + version "4.2.0" + resolved "https://registry.npmjs.org/@azure/identity/-/identity-4.2.0.tgz" + integrity sha512-ve3aYv79qXOJ8wRxQ5jO0eIz2DZ4o0TyME4m4vlGV5YyePddVZ+pFMzusAMODNAflYAAv1cBIhKnd4xytmXyig== dependencies: "@azure/abort-controller" "^1.0.0" "@azure/core-auth" "^1.5.0" @@ -113,315 +124,33 @@ tslib "^2.6.2" "@azure/msal-browser@^3.11.1": - version "3.13.0" - resolved "https://registry.npmjs.org/@azure/msal-browser/-/msal-browser-3.13.0.tgz" - integrity sha512-fD906nmJei3yE7la6DZTdUtXKvpwzJURkfsiz9747Icv4pit77cegSm6prJTKLQ1fw4iiZzrrWwxnhMLrTf5gQ== + version "3.14.0" + resolved "https://registry.npmjs.org/@azure/msal-browser/-/msal-browser-3.14.0.tgz" + integrity sha512-Un85LhOoecJ3HDTS3Uv3UWnXC9/43ZSO+Kc+anSqpZvcEt58SiO/3DuVCAe1A3I5UIBYJNMgTmZPGXQ0MVYrwA== dependencies: - "@azure/msal-common" "14.9.0" + "@azure/msal-common" "14.10.0" -"@azure/msal-common@14.9.0": - version "14.9.0" - resolved "https://registry.npmjs.org/@azure/msal-common/-/msal-common-14.9.0.tgz" - integrity sha512-yzBPRlWPnTBeixxLNI3BBIgF5/bHpbhoRVuuDBnYjCyWRavaPUsKAHUDYLqpGkBLDciA6TCc6GOxN4/S3WiSxg== +"@azure/msal-common@14.10.0": + version "14.10.0" + resolved "https://registry.npmjs.org/@azure/msal-common/-/msal-common-14.10.0.tgz" + integrity sha512-Zk6DPDz7e1wPgLoLgAp0349Yay9RvcjPM5We/ehuenDNsz/t9QEFI7tRoHpp/e47I4p20XE3FiDlhKwAo3utDA== "@azure/msal-node@^2.6.6": - version "2.7.0" - resolved "https://registry.npmjs.org/@azure/msal-node/-/msal-node-2.7.0.tgz" - integrity sha512-wXD8LkUvHICeSWZydqg6o8Yvv+grlBEcmLGu+QEI4FcwFendbTEZrlSygnAXXSOCVaGAirWLchca35qrgpO6Jw== + version "2.8.1" + resolved "https://registry.npmjs.org/@azure/msal-node/-/msal-node-2.8.1.tgz" + integrity sha512-VcZZM+5VvCWRBTOF7SxMKaxrz+EXjntx2u5AQe7QE06e6FuPJElGBrImgNgCh5QmFaNCfVFO+3qNR7UoFD/Gfw== dependencies: - "@azure/msal-common" "14.9.0" + "@azure/msal-common" "14.10.0" jsonwebtoken "^9.0.0" uuid "^8.3.0" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.23.5": - version "7.23.5" - resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz" - integrity sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA== - dependencies: - "@babel/highlight" "^7.23.4" - chalk "^2.4.2" - -"@babel/compat-data@^7.23.5": - version "7.23.5" - resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz" - integrity sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw== - -"@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.23.9": - version "7.24.0" - resolved "https://registry.npmjs.org/@babel/core/-/core-7.24.0.tgz" - integrity sha512-fQfkg0Gjkza3nf0c7/w6Xf34BW4YvzNfACRLmmb7XRLa6XHdR+K9AlJlxneFfWYf6uhOzuzZVTjF/8KfndZANw== - dependencies: - "@ampproject/remapping" "^2.2.0" - "@babel/code-frame" "^7.23.5" - "@babel/generator" "^7.23.6" - "@babel/helper-compilation-targets" "^7.23.6" - "@babel/helper-module-transforms" "^7.23.3" - "@babel/helpers" "^7.24.0" - "@babel/parser" "^7.24.0" - "@babel/template" "^7.24.0" - "@babel/traverse" "^7.24.0" - "@babel/types" "^7.24.0" - convert-source-map "^2.0.0" - debug "^4.1.0" - gensync "^1.0.0-beta.2" - json5 "^2.2.3" - semver "^6.3.1" - -"@babel/generator@^7.23.6", "@babel/generator@^7.7.2": - version "7.23.6" - resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz" - integrity sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw== - dependencies: - "@babel/types" "^7.23.6" - "@jridgewell/gen-mapping" "^0.3.2" - "@jridgewell/trace-mapping" "^0.3.17" - jsesc "^2.5.1" - -"@babel/helper-compilation-targets@^7.23.6": - version "7.23.6" - resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz" - integrity sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ== - dependencies: - "@babel/compat-data" "^7.23.5" - "@babel/helper-validator-option" "^7.23.5" - browserslist "^4.22.2" - lru-cache "^5.1.1" - semver "^6.3.1" - -"@babel/helper-environment-visitor@^7.22.20": - version "7.22.20" - resolved "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz" - integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA== - -"@babel/helper-function-name@^7.23.0": - version "7.23.0" - resolved "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz" - integrity sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw== - dependencies: - "@babel/template" "^7.22.15" - "@babel/types" "^7.23.0" - -"@babel/helper-hoist-variables@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz" - integrity sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw== - dependencies: - "@babel/types" "^7.22.5" - -"@babel/helper-module-imports@^7.22.15": - version "7.22.15" - resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz" - integrity sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w== - dependencies: - "@babel/types" "^7.22.15" - -"@babel/helper-module-transforms@^7.23.3": - version "7.23.3" - resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz" - integrity sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ== - dependencies: - "@babel/helper-environment-visitor" "^7.22.20" - "@babel/helper-module-imports" "^7.22.15" - "@babel/helper-simple-access" "^7.22.5" - "@babel/helper-split-export-declaration" "^7.22.6" - "@babel/helper-validator-identifier" "^7.22.20" - -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.8.0": - version "7.24.0" - resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz" - integrity sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w== - -"@babel/helper-simple-access@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz" - integrity sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w== - dependencies: - "@babel/types" "^7.22.5" - -"@babel/helper-split-export-declaration@^7.22.6": - version "7.22.6" - resolved "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz" - integrity sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g== - dependencies: - "@babel/types" "^7.22.5" - -"@babel/helper-string-parser@^7.23.4": - version "7.23.4" - resolved "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz" - integrity sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ== - -"@babel/helper-validator-identifier@^7.22.20": - version "7.22.20" - resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz" - integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A== - -"@babel/helper-validator-option@^7.23.5": - version "7.23.5" - resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz" - integrity sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw== - -"@babel/helpers@^7.24.0": - version "7.24.0" - resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.0.tgz" - integrity sha512-ulDZdc0Aj5uLc5nETsa7EPx2L7rM0YJM8r7ck7U73AXi7qOV44IHHRAYZHY6iU1rr3C5N4NtTmMRUJP6kwCWeA== - dependencies: - "@babel/template" "^7.24.0" - "@babel/traverse" "^7.24.0" - "@babel/types" "^7.24.0" - -"@babel/highlight@^7.23.4": - version "7.23.4" - resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz" - integrity sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A== - dependencies: - "@babel/helper-validator-identifier" "^7.22.20" - chalk "^2.4.2" - js-tokens "^4.0.0" - -"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.23.9", "@babel/parser@^7.24.0": - version "7.24.0" - resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.24.0.tgz" - integrity sha512-QuP/FxEAzMSjXygs8v4N9dvdXzEHN4W1oF3PxuWAtPo08UdM17u89RDMgjLn/mlc56iM0HlLmVkO/wgR+rDgHg== - -"@babel/plugin-syntax-async-generators@^7.8.4": - version "7.8.4" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz" - integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-bigint@^7.8.3": - version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz" - integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-class-properties@^7.8.3": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz" - integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-syntax-import-meta@^7.8.3": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz" - integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-json-strings@^7.8.3": - version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz" - integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-jsx@^7.7.2": - version "7.23.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz" - integrity sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/plugin-syntax-logical-assignment-operators@^7.8.3": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz" - integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": - version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz" - integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-numeric-separator@^7.8.3": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz" - integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-object-rest-spread@^7.8.3": - version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz" - integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-optional-catch-binding@^7.8.3": - version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz" - integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-optional-chaining@^7.8.3": - version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz" - integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-top-level-await@^7.8.3": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz" - integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-syntax-typescript@^7.7.2": - version "7.23.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz" - integrity sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/runtime@^7.12.1", "@babel/runtime@^7.14.8", "@babel/runtime@^7.21.0", "@babel/runtime@^7.9.2": - version "7.24.0" - resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.0.tgz" - integrity sha512-Chk32uHMg6TnQdvw2e9IlqPpFX/6NLuK0Ys2PqLb7/gL5uFn9mXvK715FGLlOLQrcO4qIkNHkvPGktzzXexsFw== + version "7.24.5" + resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.5.tgz" + integrity sha512-Nms86NXrsaeU9vbBJKni6gXiEXZ4CVpYVzEjDH9Sb8vmZ3UljyA1GSOJl/6LGPO8EHLuSF9H+IxNXHPX8QHJ4g== dependencies: regenerator-runtime "^0.14.0" -"@babel/template@^7.22.15", "@babel/template@^7.24.0", "@babel/template@^7.3.3": - version "7.24.0" - resolved "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz" - integrity sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA== - dependencies: - "@babel/code-frame" "^7.23.5" - "@babel/parser" "^7.24.0" - "@babel/types" "^7.24.0" - -"@babel/traverse@^7.24.0": - version "7.24.0" - resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.0.tgz" - integrity sha512-HfuJlI8qq3dEDmNU5ChzzpZRWq+oxCZQyMzIMEqLho+AQnhMnKQUzH6ydo3RBl/YjPCuk68Y6s0Gx0AeyULiWw== - dependencies: - "@babel/code-frame" "^7.23.5" - "@babel/generator" "^7.23.6" - "@babel/helper-environment-visitor" "^7.22.20" - "@babel/helper-function-name" "^7.23.0" - "@babel/helper-hoist-variables" "^7.22.5" - "@babel/helper-split-export-declaration" "^7.22.6" - "@babel/parser" "^7.24.0" - "@babel/types" "^7.24.0" - debug "^4.3.1" - globals "^11.1.0" - -"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.22.15", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.23.6", "@babel/types@^7.24.0", "@babel/types@^7.3.3": - version "7.24.0" - resolved "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz" - integrity sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w== - dependencies: - "@babel/helper-string-parser" "^7.23.4" - "@babel/helper-validator-identifier" "^7.22.20" - to-fast-properties "^2.0.0" - "@bcherny/json-schema-ref-parser@10.0.5-fork": version "10.0.5-fork" resolved "https://registry.npmjs.org/@bcherny/json-schema-ref-parser/-/json-schema-ref-parser-10.0.5-fork.tgz" @@ -432,10 +161,24 @@ call-me-maybe "^1.0.1" js-yaml "^4.1.0" -"@bcoe/v8-coverage@^0.2.3": - version "0.2.3" - resolved "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz" - integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== +"@biomejs/biome@1.6.4": + version "1.6.4" + resolved "https://registry.npmjs.org/@biomejs/biome/-/biome-1.6.4.tgz" + integrity sha512-3groVd2oWsLC0ZU+XXgHSNbq31lUcOCBkCcA7sAQGBopHcmL+jmmdoWlY3S61zIh+f2mqQTQte1g6PZKb3JJjA== + optionalDependencies: + "@biomejs/cli-darwin-arm64" "1.6.4" + "@biomejs/cli-darwin-x64" "1.6.4" + "@biomejs/cli-linux-arm64" "1.6.4" + "@biomejs/cli-linux-arm64-musl" "1.6.4" + "@biomejs/cli-linux-x64" "1.6.4" + "@biomejs/cli-linux-x64-musl" "1.6.4" + "@biomejs/cli-win32-arm64" "1.6.4" + "@biomejs/cli-win32-x64" "1.6.4" + +"@biomejs/cli-darwin-arm64@1.6.4": + version "1.6.4" + resolved "https://registry.npmjs.org/@biomejs/cli-darwin-arm64/-/cli-darwin-arm64-1.6.4.tgz" + integrity sha512-2WZef8byI9NRzGajGj5RTrroW9BxtfbP9etigW1QGAtwu/6+cLkdPOWRAs7uFtaxBNiKFYA8j/BxV5zeAo5QOQ== "@electron/rebuild@^3.2.10": version "3.6.0" @@ -457,36 +200,6 @@ tar "^6.0.5" yargs "^17.0.1" -"@esbuild/android-arm64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.17.19.tgz#bafb75234a5d3d1b690e7c2956a599345e84a2fd" - integrity sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA== - -"@esbuild/android-arm64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz#984b4f9c8d0377443cc2dfcef266d02244593622" - integrity sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ== - -"@esbuild/android-arm@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.17.19.tgz#5898f7832c2298bc7d0ab53701c57beb74d78b4d" - integrity sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A== - -"@esbuild/android-arm@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.18.20.tgz#fedb265bc3a589c84cc11f810804f234947c3682" - integrity sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw== - -"@esbuild/android-x64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.17.19.tgz#658368ef92067866d95fb268719f98f363d13ae1" - integrity sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww== - -"@esbuild/android-x64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.18.20.tgz#35cf419c4cfc8babe8893d296cd990e9e9f756f2" - integrity sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg== - "@esbuild/darwin-arm64@0.17.19": version "0.17.19" resolved "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.19.tgz" @@ -497,186 +210,6 @@ resolved "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz" integrity sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA== -"@esbuild/darwin-x64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz#7751d236dfe6ce136cce343dce69f52d76b7f6cb" - integrity sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw== - -"@esbuild/darwin-x64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz#d70d5790d8bf475556b67d0f8b7c5bdff053d85d" - integrity sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ== - -"@esbuild/freebsd-arm64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.19.tgz#cacd171665dd1d500f45c167d50c6b7e539d5fd2" - integrity sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ== - -"@esbuild/freebsd-arm64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz#98755cd12707f93f210e2494d6a4b51b96977f54" - integrity sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw== - -"@esbuild/freebsd-x64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.17.19.tgz#0769456eee2a08b8d925d7c00b79e861cb3162e4" - integrity sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ== - -"@esbuild/freebsd-x64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz#c1eb2bff03915f87c29cece4c1a7fa1f423b066e" - integrity sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ== - -"@esbuild/linux-arm64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz#38e162ecb723862c6be1c27d6389f48960b68edb" - integrity sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg== - -"@esbuild/linux-arm64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz#bad4238bd8f4fc25b5a021280c770ab5fc3a02a0" - integrity sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA== - -"@esbuild/linux-arm@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.17.19.tgz#1a2cd399c50040184a805174a6d89097d9d1559a" - integrity sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA== - -"@esbuild/linux-arm@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz#3e617c61f33508a27150ee417543c8ab5acc73b0" - integrity sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg== - -"@esbuild/linux-ia32@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.17.19.tgz#e28c25266b036ce1cabca3c30155222841dc035a" - integrity sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ== - -"@esbuild/linux-ia32@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz#699391cccba9aee6019b7f9892eb99219f1570a7" - integrity sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA== - -"@esbuild/linux-loong64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz#0f887b8bb3f90658d1a0117283e55dbd4c9dcf72" - integrity sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ== - -"@esbuild/linux-loong64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz#e6fccb7aac178dd2ffb9860465ac89d7f23b977d" - integrity sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg== - -"@esbuild/linux-mips64el@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.17.19.tgz#f5d2a0b8047ea9a5d9f592a178ea054053a70289" - integrity sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A== - -"@esbuild/linux-mips64el@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz#eeff3a937de9c2310de30622a957ad1bd9183231" - integrity sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ== - -"@esbuild/linux-ppc64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.17.19.tgz#876590e3acbd9fa7f57a2c7d86f83717dbbac8c7" - integrity sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg== - -"@esbuild/linux-ppc64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz#2f7156bde20b01527993e6881435ad79ba9599fb" - integrity sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA== - -"@esbuild/linux-riscv64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.17.19.tgz#7f49373df463cd9f41dc34f9b2262d771688bf09" - integrity sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA== - -"@esbuild/linux-riscv64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz#6628389f210123d8b4743045af8caa7d4ddfc7a6" - integrity sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A== - -"@esbuild/linux-s390x@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.17.19.tgz#e2afd1afcaf63afe2c7d9ceacd28ec57c77f8829" - integrity sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q== - -"@esbuild/linux-s390x@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz#255e81fb289b101026131858ab99fba63dcf0071" - integrity sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ== - -"@esbuild/linux-x64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz#8a0e9738b1635f0c53389e515ae83826dec22aa4" - integrity sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw== - -"@esbuild/linux-x64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz#c7690b3417af318a9b6f96df3031a8865176d338" - integrity sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w== - -"@esbuild/netbsd-x64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.17.19.tgz#c29fb2453c6b7ddef9a35e2c18b37bda1ae5c462" - integrity sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q== - -"@esbuild/netbsd-x64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz#30e8cd8a3dded63975e2df2438ca109601ebe0d1" - integrity sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A== - -"@esbuild/openbsd-x64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.17.19.tgz#95e75a391403cb10297280d524d66ce04c920691" - integrity sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g== - -"@esbuild/openbsd-x64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz#7812af31b205055874c8082ea9cf9ab0da6217ae" - integrity sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg== - -"@esbuild/sunos-x64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.17.19.tgz#722eaf057b83c2575937d3ffe5aeb16540da7273" - integrity sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg== - -"@esbuild/sunos-x64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz#d5c275c3b4e73c9b0ecd38d1ca62c020f887ab9d" - integrity sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ== - -"@esbuild/win32-arm64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz#9aa9dc074399288bdcdd283443e9aeb6b9552b6f" - integrity sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag== - -"@esbuild/win32-arm64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz#73bc7f5a9f8a77805f357fab97f290d0e4820ac9" - integrity sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg== - -"@esbuild/win32-ia32@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.17.19.tgz#95ad43c62ad62485e210f6299c7b2571e48d2b03" - integrity sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw== - -"@esbuild/win32-ia32@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz#ec93cbf0ef1085cc12e71e0d661d20569ff42102" - integrity sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g== - -"@esbuild/win32-x64@0.17.19": - version "0.17.19" - resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz#8cfaf2ff603e9aabb910e9c0558c26cf32744061" - integrity sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA== - -"@esbuild/win32-x64@0.18.20": - version "0.18.20" - resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz#786c5f41f043b07afb1af37683d7c33668858f6d" - integrity sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ== - "@eslint-community/eslint-utils@^4.2.0": version "4.4.0" resolved "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz" @@ -714,11 +247,6 @@ resolved "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz" integrity sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw== -"@huggingface/jinja@^0.2.2": - version "0.2.2" - resolved "https://registry.yarnpkg.com/@huggingface/jinja/-/jinja-0.2.2.tgz#faeb205a9d6995089bef52655ddd8245d3190627" - integrity sha512-/KPde26khDUIPkTGU82jdtTW9UAuvUTumCAbFs/7giR0SxsvZC4hru51PBvpijH6BVkHcROcvZM/lpy5h1jRRA== - "@humanwhocodes/config-array@^0.11.14": version "0.11.14" resolved "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz" @@ -734,9 +262,9 @@ integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== "@humanwhocodes/object-schema@^2.0.2": - version "2.0.2" - resolved "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz" - integrity sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw== + version "2.0.3" + resolved "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz" + integrity sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA== "@isaacs/cliui@^8.0.2": version "8.0.2" @@ -750,215 +278,7 @@ wrap-ansi "^8.1.0" wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" -"@istanbuljs/load-nyc-config@^1.0.0": - version "1.1.0" - resolved "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz" - integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ== - dependencies: - camelcase "^5.3.1" - find-up "^4.1.0" - get-package-type "^0.1.0" - js-yaml "^3.13.1" - resolve-from "^5.0.0" - -"@istanbuljs/schema@^0.1.2", "@istanbuljs/schema@^0.1.3": - version "0.1.3" - resolved "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz" - integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== - -"@jest/console@^29.7.0": - version "29.7.0" - resolved "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz" - integrity sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg== - dependencies: - "@jest/types" "^29.6.3" - "@types/node" "*" - chalk "^4.0.0" - jest-message-util "^29.7.0" - jest-util "^29.7.0" - slash "^3.0.0" - -"@jest/core@^29.7.0": - version "29.7.0" - resolved "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz" - integrity sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg== - dependencies: - "@jest/console" "^29.7.0" - "@jest/reporters" "^29.7.0" - "@jest/test-result" "^29.7.0" - "@jest/transform" "^29.7.0" - "@jest/types" "^29.6.3" - "@types/node" "*" - ansi-escapes "^4.2.1" - chalk "^4.0.0" - ci-info "^3.2.0" - exit "^0.1.2" - graceful-fs "^4.2.9" - jest-changed-files "^29.7.0" - jest-config "^29.7.0" - jest-haste-map "^29.7.0" - jest-message-util "^29.7.0" - jest-regex-util "^29.6.3" - jest-resolve "^29.7.0" - jest-resolve-dependencies "^29.7.0" - jest-runner "^29.7.0" - jest-runtime "^29.7.0" - jest-snapshot "^29.7.0" - jest-util "^29.7.0" - jest-validate "^29.7.0" - jest-watcher "^29.7.0" - micromatch "^4.0.4" - pretty-format "^29.7.0" - slash "^3.0.0" - strip-ansi "^6.0.0" - -"@jest/environment@^29.7.0": - version "29.7.0" - resolved "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz" - integrity sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw== - dependencies: - "@jest/fake-timers" "^29.7.0" - "@jest/types" "^29.6.3" - "@types/node" "*" - jest-mock "^29.7.0" - -"@jest/expect-utils@^29.7.0": - version "29.7.0" - resolved "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz" - integrity sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA== - dependencies: - jest-get-type "^29.6.3" - -"@jest/expect@^29.7.0": - version "29.7.0" - resolved "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz" - integrity sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ== - dependencies: - expect "^29.7.0" - jest-snapshot "^29.7.0" - -"@jest/fake-timers@^29.7.0": - version "29.7.0" - resolved "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz" - integrity sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ== - dependencies: - "@jest/types" "^29.6.3" - "@sinonjs/fake-timers" "^10.0.2" - "@types/node" "*" - jest-message-util "^29.7.0" - jest-mock "^29.7.0" - jest-util "^29.7.0" - -"@jest/globals@^29.7.0": - version "29.7.0" - resolved "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz" - integrity sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ== - dependencies: - "@jest/environment" "^29.7.0" - "@jest/expect" "^29.7.0" - "@jest/types" "^29.6.3" - jest-mock "^29.7.0" - -"@jest/reporters@^29.7.0": - version "29.7.0" - resolved "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz" - integrity sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg== - dependencies: - "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^29.7.0" - "@jest/test-result" "^29.7.0" - "@jest/transform" "^29.7.0" - "@jest/types" "^29.6.3" - "@jridgewell/trace-mapping" "^0.3.18" - "@types/node" "*" - chalk "^4.0.0" - collect-v8-coverage "^1.0.0" - exit "^0.1.2" - glob "^7.1.3" - graceful-fs "^4.2.9" - istanbul-lib-coverage "^3.0.0" - istanbul-lib-instrument "^6.0.0" - istanbul-lib-report "^3.0.0" - istanbul-lib-source-maps "^4.0.0" - istanbul-reports "^3.1.3" - jest-message-util "^29.7.0" - jest-util "^29.7.0" - jest-worker "^29.7.0" - slash "^3.0.0" - string-length "^4.0.1" - strip-ansi "^6.0.0" - v8-to-istanbul "^9.0.1" - -"@jest/schemas@^29.6.3": - version "29.6.3" - resolved "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz" - integrity sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA== - dependencies: - "@sinclair/typebox" "^0.27.8" - -"@jest/source-map@^29.6.3": - version "29.6.3" - resolved "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz" - integrity sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw== - dependencies: - "@jridgewell/trace-mapping" "^0.3.18" - callsites "^3.0.0" - graceful-fs "^4.2.9" - -"@jest/test-result@^29.7.0": - version "29.7.0" - resolved "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz" - integrity sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA== - dependencies: - "@jest/console" "^29.7.0" - "@jest/types" "^29.6.3" - "@types/istanbul-lib-coverage" "^2.0.0" - collect-v8-coverage "^1.0.0" - -"@jest/test-sequencer@^29.7.0": - version "29.7.0" - resolved "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz" - integrity sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw== - dependencies: - "@jest/test-result" "^29.7.0" - graceful-fs "^4.2.9" - jest-haste-map "^29.7.0" - slash "^3.0.0" - -"@jest/transform@^29.7.0": - version "29.7.0" - resolved "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz" - integrity sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw== - dependencies: - "@babel/core" "^7.11.6" - "@jest/types" "^29.6.3" - "@jridgewell/trace-mapping" "^0.3.18" - babel-plugin-istanbul "^6.1.1" - chalk "^4.0.0" - convert-source-map "^2.0.0" - fast-json-stable-stringify "^2.1.0" - graceful-fs "^4.2.9" - jest-haste-map "^29.7.0" - jest-regex-util "^29.6.3" - jest-util "^29.7.0" - micromatch "^4.0.4" - pirates "^4.0.4" - slash "^3.0.0" - write-file-atomic "^4.0.2" - -"@jest/types@^29.6.3": - version "29.6.3" - resolved "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz" - integrity sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw== - dependencies: - "@jest/schemas" "^29.6.3" - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^3.0.0" - "@types/node" "*" - "@types/yargs" "^17.0.8" - chalk "^4.0.0" - -"@jridgewell/gen-mapping@^0.3.2", "@jridgewell/gen-mapping@^0.3.5": +"@jridgewell/gen-mapping@^0.3.2": version "0.3.5" resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz" integrity sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg== @@ -982,7 +302,7 @@ resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz" integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== -"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.18", "@jridgewell/trace-mapping@^0.3.24": +"@jridgewell/trace-mapping@^0.3.24": version "0.3.25" resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz" integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== @@ -995,30 +315,10 @@ resolved "https://registry.npmjs.org/@jsdevtools/ono/-/ono-7.1.3.tgz" integrity sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg== -"@lancedb/vectordb-darwin-arm64@0.4.12": - version "0.4.12" - resolved "https://registry.npmjs.org/@lancedb/vectordb-darwin-arm64/-/vectordb-darwin-arm64-0.4.12.tgz" - integrity sha512-38/rkJRlWXkPWXuj9onzvbrhnIWcIUQjgEp5G9v5ixPosBowm7A4j8e2Q8CJMsVSNcVX2JLqwWVldiWegZFuYw== - -"@lancedb/vectordb-darwin-x64@0.4.12": - version "0.4.12" - resolved "https://registry.yarnpkg.com/@lancedb/vectordb-darwin-x64/-/vectordb-darwin-x64-0.4.12.tgz#7a2cac3118d35af8de3011a393668024bc75b5c9" - integrity sha512-psE48dztyO450hXWdv9Rl9aayM2HQ1uF9wErfC0gKmDUh1N0NdVq2viDuFpZxnmCis/nvGwKlYiYT9OnYNCJ9g== - -"@lancedb/vectordb-linux-arm64-gnu@0.4.12": - version "0.4.12" - resolved "https://registry.yarnpkg.com/@lancedb/vectordb-linux-arm64-gnu/-/vectordb-linux-arm64-gnu-0.4.12.tgz#fc8a35e2781655374bd72e2c9a25a692f5c5092a" - integrity sha512-xwkgF6MiF5aAdG9JG8v4ke652YxUJrhs9z4OrsEfrENnvsIQd2C5UyKMepVLdvij4BI/XPFRFWXdjPvP7S9rTA== - -"@lancedb/vectordb-linux-x64-gnu@0.4.12": - version "0.4.12" - resolved "https://registry.yarnpkg.com/@lancedb/vectordb-linux-x64-gnu/-/vectordb-linux-x64-gnu-0.4.12.tgz#b4b1384d233dfe7e5254ab712dbe490313982b72" - integrity sha512-gJqYR0aymrS+C60xc4EQPzmQ5/69XfeFv2ofBvAj7qW+c6BcnoAcfVl+7s1IrcWeGz251sm5cD5Lx4AzJd89dA== - -"@lancedb/vectordb-win32-x64-msvc@0.4.12": - version "0.4.12" - resolved "https://registry.yarnpkg.com/@lancedb/vectordb-win32-x64-msvc/-/vectordb-win32-x64-msvc-0.4.12.tgz#7aa0899fe72271e2eb9ec7cf53b445ef54bc596f" - integrity sha512-LhCzpyEeBUyO6L2fuVqeP3mW8kYDryyU9PNqcM01m88sZB1Do6AlwiM+GjPRQ0SpzD0LK9oxQqSmJrdcNGqjbw== +"@lancedb/vectordb-darwin-arm64@0.4.20": + version "0.4.20" + resolved "https://registry.npmjs.org/@lancedb/vectordb-darwin-arm64/-/vectordb-darwin-arm64-0.4.20.tgz" + integrity sha512-ffP2K4sA5mQTgePyARw1y8dPN996FmpvyAYoWO+TSItaXlhcXvc+KVa5udNMCZMDYeEnEv2Xpj6k4PwW3oBz+A== "@lukeed/csprng@^1.0.0": version "1.1.0" @@ -1032,31 +332,26 @@ dependencies: cross-spawn "^7.0.1" -"@mozilla/readability@^0.5.0": - version "0.5.0" - resolved "https://registry.yarnpkg.com/@mozilla/readability/-/readability-0.5.0.tgz#a6d5055bbadd0f329cc3e72089d4f176ed96c1d5" - integrity sha512-Z+CZ3QaosfFaTqvhQsIktyGrjFjSC0Fa4EMph4mqKnWhmyoGICsV/8QK+8HpXut6zV7zwfWwqDmEjtk1Qf6EgQ== - "@neon-rs/load@^0.0.74": version "0.0.74" resolved "https://registry.npmjs.org/@neon-rs/load/-/load-0.0.74.tgz" integrity sha512-/cPZD907UNz55yrc/ud4wDgQKtU1TvkD9jeqZWG6J4IMmZkp6zgjkQcKA8UvpkZlcpPHvc8J17sGzLFbP/LUYg== -"@nestjs/axios@3.0.1": - version "3.0.1" - resolved "https://registry.npmjs.org/@nestjs/axios/-/axios-3.0.1.tgz" - integrity sha512-VlOZhAGDmOoFdsmewn8AyClAdGpKXQQaY1+3PGB+g6ceurGIdTxZgRX3VXc1T6Zs60PedWjg3A82TDOB05mrzQ== +"@nestjs/axios@3.0.2": + version "3.0.2" + resolved "https://registry.npmjs.org/@nestjs/axios/-/axios-3.0.2.tgz" + integrity sha512-Z6GuOUdNQjP7FX+OuV2Ybyamse+/e0BFdTWBX5JxpBDKA+YkdLynDgG6HTF04zy6e9zPa19UX0WA2VDoehwhXQ== -"@nestjs/common@10.3.0": +"@nestjs/common@^10.0.0", "@nestjs/common@10.3.0": version "10.3.0" resolved "https://registry.npmjs.org/@nestjs/common/-/common-10.3.0.tgz" integrity sha512-DGv34UHsZBxCM3H5QGE2XE/+oLJzz5+714JQjBhjD9VccFlQs3LRxo/epso4l7nJIiNlZkPyIUC8WzfU/5RTsQ== dependencies: - uid "2.0.2" iterare "1.2.1" tslib "2.6.2" + uid "2.0.2" -"@nestjs/common@^8.4.7": +"@nestjs/common@^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0", "@nestjs/common@^8.4.7": version "8.4.7" resolved "https://registry.npmjs.org/@nestjs/common/-/common-8.4.7.tgz" integrity sha512-m/YsbcBal+gA5CFrDpqXqsSfylo+DIQrkFY3qhVIltsYRfu8ct8J9pqsTO6OPf3mvqdOpFGrV5sBjoyAzOBvsw== @@ -1071,12 +366,12 @@ resolved "https://registry.npmjs.org/@nestjs/core/-/core-10.3.0.tgz" integrity sha512-N06P5ncknW/Pm8bj964WvLIZn2gNhHliCBoAO1LeBvNImYkecqKcrmLbY49Fa1rmMfEM3MuBHeDys3edeuYAOA== dependencies: - uid "2.0.2" "@nuxtjs/opencollective" "0.3.2" fast-safe-stringify "2.1.1" iterare "1.2.1" path-to-regexp "3.2.0" tslib "2.6.2" + uid "2.0.2" "@nodelib/fs.scandir@2.1.5": version "2.1.5" @@ -1086,7 +381,7 @@ "@nodelib/fs.stat" "2.0.5" run-parallel "^1.1.9" -"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": +"@nodelib/fs.stat@^2.0.2", "@nodelib/fs.stat@2.0.5": version "2.0.5" resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz" integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== @@ -1140,111 +435,16 @@ consola "^2.15.0" node-fetch "^2.6.1" -"@octokit/auth-token@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-4.0.0.tgz#40d203ea827b9f17f42a29c6afb93b7745ef80c7" - integrity sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA== - -"@octokit/core@^5.0.2": - version "5.2.0" - resolved "https://registry.yarnpkg.com/@octokit/core/-/core-5.2.0.tgz#ddbeaefc6b44a39834e1bb2e58a49a117672a7ea" - integrity sha512-1LFfa/qnMQvEOAdzlQymH0ulepxbxnCYAKJZfMci/5XJyIHWgEYnDmgnKakbTh7CH2tFQ5O60oYDvns4i9RAIg== - dependencies: - "@octokit/auth-token" "^4.0.0" - "@octokit/graphql" "^7.1.0" - "@octokit/request" "^8.3.1" - "@octokit/request-error" "^5.1.0" - "@octokit/types" "^13.0.0" - before-after-hook "^2.2.0" - universal-user-agent "^6.0.0" - -"@octokit/endpoint@^9.0.1": - version "9.0.5" - resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-9.0.5.tgz#e6c0ee684e307614c02fc6ac12274c50da465c44" - integrity sha512-ekqR4/+PCLkEBF6qgj8WqJfvDq65RH85OAgrtnVp1mSxaXF03u2xW/hUdweGS5654IlC0wkNYC18Z50tSYTAFw== - dependencies: - "@octokit/types" "^13.1.0" - universal-user-agent "^6.0.0" - -"@octokit/graphql@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@octokit/graphql/-/graphql-7.1.0.tgz#9bc1c5de92f026648131f04101cab949eeffe4e0" - integrity sha512-r+oZUH7aMFui1ypZnAvZmn0KSqAUgE1/tUXIWaqUCa1758ts/Jio84GZuzsvUkme98kv0WFY8//n0J1Z+vsIsQ== - dependencies: - "@octokit/request" "^8.3.0" - "@octokit/types" "^13.0.0" - universal-user-agent "^6.0.0" - -"@octokit/openapi-types@^22.2.0": - version "22.2.0" - resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-22.2.0.tgz#75aa7dcd440821d99def6a60b5f014207ae4968e" - integrity sha512-QBhVjcUa9W7Wwhm6DBFu6ZZ+1/t/oYxqc2tp81Pi41YNuJinbFRx8B133qVOrAaBbF7D/m0Et6f9/pZt9Rc+tg== - -"@octokit/plugin-paginate-rest@11.3.1": - version "11.3.1" - resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-11.3.1.tgz#fe92d04b49f134165d6fbb716e765c2f313ad364" - integrity sha512-ryqobs26cLtM1kQxqeZui4v8FeznirUsksiA+RYemMPJ7Micju0WSkv50dBksTuZks9O5cg4wp+t8fZ/cLY56g== - dependencies: - "@octokit/types" "^13.5.0" - -"@octokit/plugin-request-log@^4.0.0": - version "4.0.1" - resolved "https://registry.yarnpkg.com/@octokit/plugin-request-log/-/plugin-request-log-4.0.1.tgz#98a3ca96e0b107380664708111864cb96551f958" - integrity sha512-GihNqNpGHorUrO7Qa9JbAl0dbLnqJVrV8OXe2Zm5/Y4wFkZQDfTreBzVmiRfJVfE4mClXdihHnbpyyO9FSX4HA== - -"@octokit/plugin-rest-endpoint-methods@13.2.2": - version "13.2.2" - resolved "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-13.2.2.tgz#af8e5dd2cddfea576f92ffaf9cb84659f302a638" - integrity sha512-EI7kXWidkt3Xlok5uN43suK99VWqc8OaIMktY9d9+RNKl69juoTyxmLoWPIZgJYzi41qj/9zU7G/ljnNOJ5AFA== - dependencies: - "@octokit/types" "^13.5.0" - -"@octokit/request-error@^5.1.0": - version "5.1.0" - resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-5.1.0.tgz#ee4138538d08c81a60be3f320cd71063064a3b30" - integrity sha512-GETXfE05J0+7H2STzekpKObFe765O5dlAKUTLNGeH+x47z7JjXHfsHKo5z21D/o/IOZTUEI6nyWyR+bZVP/n5Q== - dependencies: - "@octokit/types" "^13.1.0" - deprecation "^2.0.0" - once "^1.4.0" - -"@octokit/request@^8.3.0", "@octokit/request@^8.3.1": - version "8.4.0" - resolved "https://registry.yarnpkg.com/@octokit/request/-/request-8.4.0.tgz#7f4b7b1daa3d1f48c0977ad8fffa2c18adef8974" - integrity sha512-9Bb014e+m2TgBeEJGEbdplMVWwPmL1FPtggHQRkV+WVsMggPtEkLKPlcVYm/o8xKLkpJ7B+6N8WfQMtDLX2Dpw== - dependencies: - "@octokit/endpoint" "^9.0.1" - "@octokit/request-error" "^5.1.0" - "@octokit/types" "^13.1.0" - universal-user-agent "^6.0.0" - -"@octokit/rest@^20.0.2": - version "20.1.1" - resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-20.1.1.tgz#ec775864f53fb42037a954b9a40d4f5275b3dc95" - integrity sha512-MB4AYDsM5jhIHro/dq4ix1iWTLGToIGk6cWF5L6vanFaMble5jTX/UBQyiv05HsWnwUtY8JrfHy2LWfKwihqMw== - dependencies: - "@octokit/core" "^5.0.2" - "@octokit/plugin-paginate-rest" "11.3.1" - "@octokit/plugin-request-log" "^4.0.0" - "@octokit/plugin-rest-endpoint-methods" "13.2.2" - -"@octokit/types@^13.0.0", "@octokit/types@^13.1.0", "@octokit/types@^13.5.0": - version "13.5.0" - resolved "https://registry.yarnpkg.com/@octokit/types/-/types-13.5.0.tgz#4796e56b7b267ebc7c921dcec262b3d5bfb18883" - integrity sha512-HdqWTf5Z3qwDVlzCrP8UJquMwunpDiMPt5er+QjGzL4hqr/vBVY/MauQgS1xWxCDT1oMx1EULyqxncdCY/NVSQ== - dependencies: - "@octokit/openapi-types" "^22.2.0" - "@openapitools/openapi-generator-cli@^2.5.2": - version "2.11.0" - resolved "https://registry.npmjs.org/@openapitools/openapi-generator-cli/-/openapi-generator-cli-2.11.0.tgz" - integrity sha512-oqTNvFARvhztEgMHoOvdwx148MM89/Ersa8KZTZxMVtLXCynIDyTqWnZqvCsBUZDc2Bl+N8pT6XWbLkz3JVh0w== + version "2.13.4" + resolved "https://registry.npmjs.org/@openapitools/openapi-generator-cli/-/openapi-generator-cli-2.13.4.tgz" + integrity sha512-4JKyrk55ohQK2FcuZbPdNvxdyXD14jjOIvE8hYjJ+E1cHbRbfXQXbYnjTODFE52Gx8eAxz8C9icuhDYDLn7nww== dependencies: - "@nestjs/axios" "3.0.1" + "@nestjs/axios" "3.0.2" "@nestjs/common" "10.3.0" "@nestjs/core" "10.3.0" "@nuxtjs/opencollective" "0.3.2" - axios "1.6.5" + axios "1.6.8" chalk "4.1.2" commander "8.3.0" compare-versions "4.1.4" @@ -1252,6 +452,7 @@ console.table "0.10.0" fs-extra "10.1.0" glob "7.2.3" + https-proxy-agent "7.0.4" inquirer "8.2.6" lodash "4.17.21" reflect-metadata "0.1.13" @@ -1263,59 +464,6 @@ resolved "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz" integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== -"@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@protobufjs/aspromise/-/aspromise-1.1.2.tgz#9b8b0cc663d669a7d8f6f5d0893a14d348f30fbf" - integrity sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ== - -"@protobufjs/base64@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@protobufjs/base64/-/base64-1.1.2.tgz#4c85730e59b9a1f1f349047dbf24296034bb2735" - integrity sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg== - -"@protobufjs/codegen@^2.0.4": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@protobufjs/codegen/-/codegen-2.0.4.tgz#7ef37f0d010fb028ad1ad59722e506d9262815cb" - integrity sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg== - -"@protobufjs/eventemitter@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz#355cbc98bafad5978f9ed095f397621f1d066b70" - integrity sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q== - -"@protobufjs/fetch@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/fetch/-/fetch-1.1.0.tgz#ba99fb598614af65700c1619ff06d454b0d84c45" - integrity sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ== - dependencies: - "@protobufjs/aspromise" "^1.1.1" - "@protobufjs/inquire" "^1.1.0" - -"@protobufjs/float@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@protobufjs/float/-/float-1.0.2.tgz#5e9e1abdcb73fc0a7cb8b291df78c8cbd97b87d1" - integrity sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ== - -"@protobufjs/inquire@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/inquire/-/inquire-1.1.0.tgz#ff200e3e7cf2429e2dcafc1140828e8cc638f089" - integrity sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q== - -"@protobufjs/path@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@protobufjs/path/-/path-1.1.2.tgz#6cc2b20c5c9ad6ad0dccfd21ca7673d8d7fbf68d" - integrity sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA== - -"@protobufjs/pool@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/pool/-/pool-1.1.0.tgz#09fd15f2d6d3abfa9b65bc366506d6ad7846ff54" - integrity sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw== - -"@protobufjs/utf8@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570" - integrity sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw== - "@reduxjs/toolkit@^1.9.3": version "1.9.7" resolved "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-1.9.7.tgz" @@ -1326,34 +474,15 @@ redux-thunk "^2.4.2" reselect "^4.1.8" -"@sinclair/typebox@^0.27.8": - version "0.27.8" - resolved "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz" - integrity sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA== - "@sindresorhus/is@^4.0.0": version "4.6.0" resolved "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz" integrity sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw== -"@sinonjs/commons@^3.0.0": - version "3.0.1" - resolved "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz" - integrity sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ== - dependencies: - type-detect "4.0.8" - -"@sinonjs/fake-timers@^10.0.2": - version "10.3.0" - resolved "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz" - integrity sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA== - dependencies: - "@sinonjs/commons" "^3.0.0" - "@socket.io/component-emitter@~3.1.0": - version "3.1.0" - resolved "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz" - integrity sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg== + version "3.1.2" + resolved "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz" + integrity sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA== "@szmarczak/http-timer@^4.0.5": version "4.0.6" @@ -1372,39 +501,6 @@ resolved "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz" integrity sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A== -"@types/babel__core@^7.1.14": - version "7.20.5" - resolved "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz" - integrity sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA== - dependencies: - "@babel/parser" "^7.20.7" - "@babel/types" "^7.20.7" - "@types/babel__generator" "*" - "@types/babel__template" "*" - "@types/babel__traverse" "*" - -"@types/babel__generator@*": - version "7.6.8" - resolved "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz" - integrity sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw== - dependencies: - "@babel/types" "^7.0.0" - -"@types/babel__template@*": - version "7.4.4" - resolved "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz" - integrity sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A== - dependencies: - "@babel/parser" "^7.1.0" - "@babel/types" "^7.0.0" - -"@types/babel__traverse@*", "@types/babel__traverse@^7.0.6": - version "7.20.5" - resolved "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.5.tgz" - integrity sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ== - dependencies: - "@babel/types" "^7.20.7" - "@types/body-parser@*": version "1.19.5" resolved "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz" @@ -1428,6 +524,16 @@ resolved "https://registry.npmjs.org/@types/caseless/-/caseless-0.12.5.tgz" integrity sha512-hWtVTC2q7hc7xZ/RLbxapMvDMgUnDvKvMOpKal4DrMyfGBUfB1oKaZlIRr6mJL+If3bAP6sV/QneGzF6tJjZDg== +"@types/command-line-args@5.2.0": + version "5.2.0" + resolved "https://registry.npmjs.org/@types/command-line-args/-/command-line-args-5.2.0.tgz" + integrity sha512-UuKzKpJJ/Ief6ufIaIzr3A/0XnluX7RvFgwkV89Yzvm77wCh1kFaFmqN8XEnGcN62EuHdedQjEMb8mYxFLGPyA== + +"@types/command-line-usage@5.0.2": + version "5.0.2" + resolved "https://registry.npmjs.org/@types/command-line-usage/-/command-line-usage-5.0.2.tgz" + integrity sha512-n7RlEEJ+4x4TS7ZQddTmNSxP+zziEG0TNsMfiRIxcIVXt71ENJ9ojeXmGO3wPoTdn7pJcU2xc3CJYMktNT6DPg== + "@types/connect@*": version "3.4.38" resolved "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz" @@ -1450,16 +556,16 @@ "@types/ms" "*" "@types/express-serve-static-core@^4.17.33": - version "4.17.43" - resolved "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.43.tgz" - integrity sha512-oaYtiBirUOPQGSWNGPWnzyAFJ0BP3cwvN4oWZQY+zUBwpVIGsKUkpBpSztp74drYcjavs7SKFZ4DX1V2QeN8rg== + version "4.19.0" + resolved "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.19.0.tgz" + integrity sha512-bGyep3JqPCRry1wq+O5n7oiBgGWmeIJXPjXXCo8EK0u8duZGSYar7cGqd3ML2JUsLGeB7fmc06KYo9fLGWqPvQ== dependencies: "@types/node" "*" "@types/qs" "*" "@types/range-parser" "*" "@types/send" "*" -"@types/express@^4.17.21": +"@types/express@^4.17.13", "@types/express@^4.17.21": version "4.17.21" resolved "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz" integrity sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ== @@ -1497,13 +603,6 @@ "@types/minimatch" "^5.1.2" "@types/node" "*" -"@types/graceful-fs@^4.1.3": - version "4.1.9" - resolved "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz" - integrity sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ== - dependencies: - "@types/node" "*" - "@types/hast@^2.0.0": version "2.3.10" resolved "https://registry.npmjs.org/@types/hast/-/hast-2.3.10.tgz" @@ -1536,42 +635,6 @@ dependencies: "@types/node" "*" -"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": - version "2.0.6" - resolved "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz" - integrity sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w== - -"@types/istanbul-lib-report@*": - version "3.0.3" - resolved "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz" - integrity sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA== - dependencies: - "@types/istanbul-lib-coverage" "*" - -"@types/istanbul-reports@^3.0.0": - version "3.0.4" - resolved "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz" - integrity sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ== - dependencies: - "@types/istanbul-lib-report" "*" - -"@types/jest@^29.5.11": - version "29.5.12" - resolved "https://registry.npmjs.org/@types/jest/-/jest-29.5.12.tgz" - integrity sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw== - dependencies: - expect "^29.0.0" - pretty-format "^29.0.0" - -"@types/jsdom@^21.1.6": - version "21.1.7" - resolved "https://registry.yarnpkg.com/@types/jsdom/-/jsdom-21.1.7.tgz#9edcb09e0b07ce876e7833922d3274149c898cfa" - integrity sha512-yOriVnggzrnQ3a9OKOCxaVuSug3w3/SbOj5i7VwXWZEyUNl3bLF9V3MfxGbZKuwqJOQyRfqXyROBB1CoZLFWzA== - dependencies: - "@types/node" "*" - "@types/tough-cookie" "*" - parse5 "^7.0.0" - "@types/json-schema@^7.0.11", "@types/json-schema@^7.0.6", "@types/json-schema@^7.0.9": version "7.0.15" resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz" @@ -1585,14 +648,9 @@ "@types/node" "*" "@types/lodash@^4.14.182": - version "4.14.202" - resolved "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.202.tgz" - integrity sha512-OvlIYQK9tNneDlS0VN54LLd5uiPCBOp7gS5Z0f1mjoJYBrtStzgmJBxONW3U6OZqdtNzZPmn9BS/7WI7BFFcFQ== - -"@types/long@^4.0.1": - version "4.0.2" - resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.2.tgz#b74129719fc8d11c01868010082d483b7545591a" - integrity sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA== + version "4.17.4" + resolved "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.4.tgz" + integrity sha512-wYCP26ZLxaT3R39kiN2+HcJ4kTd3U1waI/cY7ivWYqFP6pW3ZNpvi6Wd6PHZx7T/t8z0vlkXMg3QYLa7DZ/IJQ== "@types/mdast@^3.0.0": version "3.0.15" @@ -1601,7 +659,7 @@ dependencies: "@types/unist" "^2" -"@types/mime@*", "@types/mime@^1": +"@types/mime@^1": version "1.3.5" resolved "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz" integrity sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w== @@ -1611,17 +669,17 @@ resolved "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz" integrity sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA== -"@types/mozilla-readability@^0.2.1": - version "0.2.1" - resolved "https://registry.yarnpkg.com/@types/mozilla-readability/-/mozilla-readability-0.2.1.tgz#3c92215157f2d36d117c2676389887f530ccafd5" - integrity sha512-RjLpe3MIpj53L+q50DTNlhv6KjHjgajFQwAF4KuxVZTa2+6Cs2UNAxS5awxABfZEHRYjGKeRDB21Zrtnsi911w== +"@types/mocha@^10.0.6": + version "10.0.6" + resolved "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.6.tgz" + integrity sha512-dJvrYWxP/UcXm36Qn36fxhUKu8A/xMRXVT2cliFF1Z7UA9liG5Psj3ezNSZw+5puH2czDXRLcXQxf8JbJt0ejg== "@types/ms@*": version "0.7.34" resolved "https://registry.npmjs.org/@types/ms/-/ms-0.7.34.tgz" integrity sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g== -"@types/node-fetch@^2.6.11", "@types/node-fetch@^2.6.4": +"@types/node-fetch@^2.6.11": version "2.6.11" resolved "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.11.tgz" integrity sha512-24xFj9R5+rfQJLRyM56qh+wnVSYhyXC2tkoBndtY0U+vubqNsYXGjufB2nn8Q6gt0LrARwL6UBtMCSVCwl4B1g== @@ -1629,24 +687,20 @@ "@types/node" "*" form-data "^4.0.0" -"@types/node@*", "@types/node@16.x": - version "16.18.87" - resolved "https://registry.npmjs.org/@types/node/-/node-16.18.87.tgz" - integrity sha512-+IzfhNirR/MDbXz6Om5eHV54D9mQlEMGag6AgEzlju0xH3M8baCXYwqQ6RKgGMpn9wSTx6Ltya/0y4Z8eSfdLw== +"@types/node@*", "@types/node@>= 14", "@types/node@16.x": + version "16.18.97" + resolved "https://registry.npmjs.org/@types/node/-/node-16.18.97.tgz" + integrity sha512-4muilE1Lbfn57unR+/nT9AFjWk0MtWi5muwCEJqnOvfRQDbSfLCUdN7vCIg8TYuaANfhLOV85ve+FNpiUsbSRg== -"@types/node@>=13.7.0": - version "20.14.9" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.14.9.tgz#12e8e765ab27f8c421a1820c99f5f313a933b420" - integrity sha512-06OCtnTXtWOZBJlRApleWndH4JsRVs1pDCc8dLSQp+7PpUpX3ePdHyeNSFTeSe7FtKyQkrlPvHwJOW3SLd8Oyg== - dependencies: - undici-types "~5.26.4" +"@types/node@20.3.0": + version "20.3.0" + resolved "https://registry.npmjs.org/@types/node/-/node-20.3.0.tgz" + integrity sha512-cumHmIAf6On83X7yP+LrsEyUOf/YlociZelmpRYaGFydoaPdxdt80MAbu6vWerQT2COCp2nPvHdsbD7tHn/YlQ== -"@types/node@^18.11.18": - version "18.19.39" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.19.39.tgz#c316340a5b4adca3aee9dcbf05de385978590593" - integrity sha512-nPwTRDKUctxw3di5b4TfT3I0sWDiWoPQCZjXhvdkINntwr8lcoVCKsTgnXeRubKIlfnV+eN/HYk6Jb40tbcEAQ== - dependencies: - undici-types "~5.26.4" +"@types/pad-left@2.1.1": + version "2.1.1" + resolved "https://registry.npmjs.org/@types/pad-left/-/pad-left-2.1.1.tgz" + integrity sha512-Xd22WCRBydkGSApl5Bw0PhAOHKSVjNL3E3AwzKaps96IMraPqy5BvZIsBVK6JLwdybUzjHnuWVwpDd0JjTfHXA== "@types/prettier@^2.6.1": version "2.7.3" @@ -1654,34 +708,33 @@ integrity sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA== "@types/prop-types@*", "@types/prop-types@^15.0.0": - version "15.7.11" - resolved "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.11.tgz" - integrity sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng== + version "15.7.12" + resolved "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.12.tgz" + integrity sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q== "@types/qs@*": - version "6.9.12" - resolved "https://registry.npmjs.org/@types/qs/-/qs-6.9.12.tgz" - integrity sha512-bZcOkJ6uWrL0Qb2NAWKa7TBU+mJHPzhx9jjLL1KHF+XpzEcR7EXHvjbHlGtR/IsP1vyPrehuS6XqkmaePy//mg== + version "6.9.15" + resolved "https://registry.npmjs.org/@types/qs/-/qs-6.9.15.tgz" + integrity sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg== "@types/range-parser@*": version "1.2.7" resolved "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz" integrity sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ== -"@types/react-dom@^18.2.4": - version "18.2.21" - resolved "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.21.tgz" - integrity sha512-gnvBA/21SA4xxqNXEwNiVcP0xSGHh/gi1VhWv9Bl46a0ItbTT5nFY+G9VSQpaG/8N/qdJpJ+vftQ4zflTtnjLw== +"@types/react-dom@^16.8 || ^17.0 || ^18.0", "@types/react-dom@^18.2.4": + version "18.3.0" + resolved "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.0.tgz" + integrity sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg== dependencies: "@types/react" "*" -"@types/react@*", "@types/react@^18.0.28": - version "18.2.64" - resolved "https://registry.npmjs.org/@types/react/-/react-18.2.64.tgz" - integrity sha512-MlmPvHgjj2p3vZaxbQgFUQFvD8QiZwACfGqEdDSWou5yISWxDQ4/74nCAwsUiX7UFLKZz3BbVSPj+YxeoGGCfg== +"@types/react@*", "@types/react@^16.8 || ^17.0 || ^18.0", "@types/react@^18.0.28", "@types/react@>=16": + version "18.3.2" + resolved "https://registry.npmjs.org/@types/react/-/react-18.3.2.tgz" + integrity sha512-Btgg89dAnqD4vV7R3hlwOxgqobUQKgx3MmrQRi0yYbs/P0ym8XozIAlkqVilPqHQwXs4e9Tf63rrCgl58BcO4w== dependencies: "@types/prop-types" "*" - "@types/scheduler" "*" csstype "^3.0.2" "@types/request@^2.48.8": @@ -1701,11 +754,6 @@ dependencies: "@types/node" "*" -"@types/scheduler@*": - version "0.16.8" - resolved "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.8.tgz" - integrity sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A== - "@types/semver@^7.3.12": version "7.5.8" resolved "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz" @@ -1720,18 +768,13 @@ "@types/node" "*" "@types/serve-static@*": - version "1.15.5" - resolved "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.5.tgz" - integrity sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ== + version "1.15.7" + resolved "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.7.tgz" + integrity sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw== dependencies: "@types/http-errors" "*" - "@types/mime" "*" "@types/node" "*" - -"@types/stack-utils@^2.0.0": - version "2.0.3" - resolved "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz" - integrity sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw== + "@types/send" "*" "@types/tough-cookie@*": version "4.0.5" @@ -1748,6 +791,11 @@ resolved "https://registry.npmjs.org/@types/use-sync-external-store/-/use-sync-external-store-0.0.3.tgz" integrity sha512-EwmlvuaxPNej9+T4v5AuBPJa2x2UOJVdjCtDHgcDqitUeOtjnJKJ+apYjVcAoBEMjKW1VVFGZLUb5+qqa09XFA== +"@types/uuid@^9.0.8": + version "9.0.8" + resolved "https://registry.npmjs.org/@types/uuid/-/uuid-9.0.8.tgz" + integrity sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA== + "@types/uuid@8.3.4": version "8.3.4" resolved "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.4.tgz" @@ -1765,18 +813,6 @@ dependencies: "@types/node" "*" -"@types/yargs-parser@*": - version "21.0.3" - resolved "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz" - integrity sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ== - -"@types/yargs@^17.0.8": - version "17.0.32" - resolved "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz" - integrity sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog== - dependencies: - "@types/yargs-parser" "*" - "@typescript-eslint/eslint-plugin@^5.45.0": version "5.62.0" resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz" @@ -1793,7 +829,7 @@ semver "^7.3.7" tsutils "^3.21.0" -"@typescript-eslint/parser@^5.45.0": +"@typescript-eslint/parser@^5.0.0", "@typescript-eslint/parser@^5.45.0": version "5.62.0" resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz" integrity sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA== @@ -1876,9 +912,9 @@ yauzl "^2.9.2" "@vscode/test-electron@^2.3.9": - version "2.3.9" - resolved "https://registry.npmjs.org/@vscode/test-electron/-/test-electron-2.3.9.tgz" - integrity sha512-z3eiChaCQXMqBnk2aHHSEkobmC2VRalFQN0ApOAtydL172zXGxTwGrRtviT5HnUB+Q+G3vtEYFtuQkYqBzYgMA== + version "2.3.10" + resolved "https://registry.npmjs.org/@vscode/test-electron/-/test-electron-2.3.10.tgz" + integrity sha512-FxMqrvUm6a8S5tP4CymNJ40e6kD+wUTWTc6K32U629yrCCa+kl/rmpkC2gKpN4F4zjg1r+0Hnk9sl0+N2atsYA== dependencies: http-proxy-agent "^4.0.1" https-proxy-agent "^5.0.0" @@ -1886,9 +922,9 @@ semver "^7.5.2" "@vscode/vsce@^2.19.0", "@vscode/vsce@^2.22.0": - version "2.26.0" - resolved "https://registry.npmjs.org/@vscode/vsce/-/vsce-2.26.0.tgz" - integrity sha512-v54ltgMzUG8lGY0kAgaOlry57xse1RlWzes9FotfGEx+Fr05KeR8rZicQzEMDmi9QnOgVWHuiEq+xA2HWkAz+Q== + version "2.26.1" + resolved "https://registry.npmjs.org/@vscode/vsce/-/vsce-2.26.1.tgz" + integrity sha512-QOG6Ht7V93nhwcBxPWcG33UK0qDGEoJdg0xtVeaTN27W6PGdMJUJGTPhB/sNHUIFKwvwzv/zMAHvDgMNXbcwlA== dependencies: "@azure/identity" "^4.1.0" azure-devops-node-api "^12.5.0" @@ -1916,34 +952,11 @@ optionalDependencies: keytar "^7.7.0" -"@xenova/transformers@^2.14.0": - version "2.17.2" - resolved "https://registry.yarnpkg.com/@xenova/transformers/-/transformers-2.17.2.tgz#7448d73b90f67bced66f39fe2dd656adc891fde5" - integrity sha512-lZmHqzrVIkSvZdKZEx7IYY51TK0WDrC8eR0c5IMnBsO8di8are1zzw8BlLhyO2TklZKLN5UffNGs1IJwT6oOqQ== - dependencies: - "@huggingface/jinja" "^0.2.2" - onnxruntime-web "1.14.0" - sharp "^0.32.0" - optionalDependencies: - onnxruntime-node "1.14.0" - -"@yomguithereal/helpers@^1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@yomguithereal/helpers/-/helpers-1.1.1.tgz#185dfb0f88ca2beec53d0adf6eed15c33b1c549d" - integrity sha512-UYvAq/XCA7xoh1juWDYsq3W0WywOB+pz8cgVnE1b45ZfdMhBvHDrgmSFG3jXeZSr2tMTYLGHFHON+ekG05Jebg== - -abbrev@1, abbrev@^1.0.0: +abbrev@^1.0.0, abbrev@1: version "1.1.1" resolved "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz" integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== -abort-controller@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392" - integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg== - dependencies: - event-target-shim "^5.0.0" - accepts@~1.3.8: version "1.3.8" resolved "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz" @@ -1957,19 +970,12 @@ acorn-jsx@^5.3.2: resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz" integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== -acorn@^8.9.0: +"acorn@^6.0.0 || ^7.0.0 || ^8.0.0", acorn@^8.9.0: version "8.11.3" resolved "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz" integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg== -adf-to-md@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/adf-to-md/-/adf-to-md-1.1.0.tgz#97c0159e9858281ae0e1ff361defca367bf3743c" - integrity sha512-iYY6SNkgnfeRq7/7Qazy9Lq00X6DJmnEwfTWFIpSGLJ929Q26Zo/lHN0AVa5yLQT6pXTtKIWvRgKur/xSibJ0g== - dependencies: - eslint-config-nodebb "0.1.1" - -agent-base@6, agent-base@^6.0.2: +agent-base@^6.0.2, agent-base@6: version "6.0.2" resolved "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz" integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== @@ -1977,9 +983,9 @@ agent-base@6, agent-base@^6.0.2: debug "4" agent-base@^7.0.2, agent-base@^7.1.0: - version "7.1.0" - resolved "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz" - integrity sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg== + version "7.1.1" + resolved "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz" + integrity sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA== dependencies: debug "^4.3.4" @@ -2052,11 +1058,6 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0: dependencies: color-convert "^2.0.1" -ansi-styles@^5.0.0: - version "5.2.0" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz" - integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== - ansi-styles@^6.1.0: version "6.2.1" resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz" @@ -2067,7 +1068,7 @@ any-promise@^1.0.0: resolved "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz" integrity sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A== -anymatch@^3.0.3, anymatch@~3.1.2: +anymatch@~3.1.2: version "3.1.3" resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz" integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== @@ -2075,6 +1076,22 @@ anymatch@^3.0.3, anymatch@~3.1.2: normalize-path "^3.0.0" picomatch "^2.0.4" +apache-arrow@^14.0.2: + version "14.0.2" + resolved "https://registry.npmjs.org/apache-arrow/-/apache-arrow-14.0.2.tgz" + integrity sha512-EBO2xJN36/XoY81nhLcwCJgFwkboDZeyNQ+OPsG7bCoQjc2BT0aTyH/MR6SrL+LirSNz+cYqjGRlupMMlP1aEg== + dependencies: + "@types/command-line-args" "5.2.0" + "@types/command-line-usage" "5.0.2" + "@types/node" "20.3.0" + "@types/pad-left" "2.1.1" + command-line-args "5.2.1" + command-line-usage "7.0.1" + flatbuffers "23.5.26" + json-bignum "^0.0.3" + pad-left "^2.1.0" + tslib "^2.5.3" + "aproba@^1.0.3 || ^2.0.0": version "2.0.0" resolved "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz" @@ -2093,18 +1110,21 @@ arg@^5.0.2: resolved "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz" integrity sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg== -argparse@^1.0.7: - version "1.0.10" - resolved "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz" - integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== - dependencies: - sprintf-js "~1.0.2" - argparse@^2.0.1: version "2.0.1" resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz" integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== +array-back@^3.0.1, array-back@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz" + integrity sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q== + +array-back@^6.2.2: + version "6.2.2" + resolved "https://registry.npmjs.org/array-back/-/array-back-6.2.2.tgz" + integrity sha512-gUAZ7HPyb4SJczXAMUXMGAvI976JoK3qEx9v1FTmeYuJj0IBiaKttG1ydtGKdkfqWkIkouke7nG8ufGy77+Cvw== + array-flatten@1.1.1: version "1.1.1" resolved "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz" @@ -2127,7 +1147,7 @@ asn1@~0.2.3: dependencies: safer-buffer "~2.1.0" -assert-plus@1.0.0, assert-plus@^1.0.0: +assert-plus@^1.0.0, assert-plus@1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz" integrity sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw== @@ -2143,9 +1163,18 @@ aws-sign2@~0.7.0: integrity sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA== aws4@^1.8.0: - version "1.12.0" - resolved "https://registry.npmjs.org/aws4/-/aws4-1.12.0.tgz" - integrity sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg== + version "1.13.0" + resolved "https://registry.npmjs.org/aws4/-/aws4-1.13.0.tgz" + integrity sha512-3AungXC4I8kKsS9PuS4JH2nc+0bVY/mjgrephHTIi8fpEeGsTHBUJeosp0Wc1myYMElmD0B3Oc4XL/HVJ4PV2g== + +axios@^1.2.5, axios@^1.3.1, axios@^1.4.0, axios@^1.6.2: + version "1.7.1" + resolved "https://registry.npmjs.org/axios/-/axios-1.7.1.tgz" + integrity sha512-+LV37nQcd1EpFalkXksWNBiA17NZ5m5/WspmHGmZmdx1qBOg/VNq/c4eRJiA9VQQHBOs+N0ZhhdU10h2TyNK7Q== + dependencies: + follow-redirects "^1.15.6" + form-data "^4.0.0" + proxy-from-env "^1.1.0" axios@0.27.2: version "0.27.2" @@ -2155,28 +1184,10 @@ axios@0.27.2: follow-redirects "^1.14.9" form-data "^4.0.0" -axios@1.6.5: - version "1.6.5" - resolved "https://registry.npmjs.org/axios/-/axios-1.6.5.tgz" - integrity sha512-Ii012v05KEVuUoFWmMW/UQv9aRIc3ZwkWDcM+h5Il8izZCtRVpDUfwpoFf7eOtajT3QiGR4yDUx7lPqHJULgbg== - dependencies: - follow-redirects "^1.15.4" - form-data "^4.0.0" - proxy-from-env "^1.1.0" - -axios@^1.2.5, axios@^1.4.0, axios@^1.6.2: - version "1.6.7" - resolved "https://registry.npmjs.org/axios/-/axios-1.6.7.tgz" - integrity sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA== - dependencies: - follow-redirects "^1.15.4" - form-data "^4.0.0" - proxy-from-env "^1.1.0" - -axios@^1.6.7: - version "1.7.2" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.7.2.tgz#b625db8a7051fbea61c35a3cbb3a1daa7b9c7621" - integrity sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw== +axios@1.6.8: + version "1.6.8" + resolved "https://registry.npmjs.org/axios/-/axios-1.6.8.tgz" + integrity sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ== dependencies: follow-redirects "^1.15.6" form-data "^4.0.0" @@ -2198,71 +1209,6 @@ azure-devops-node-api@^12.5.0: tunnel "0.0.6" typed-rest-client "^1.8.4" -b4a@^1.6.4: - version "1.6.6" - resolved "https://registry.yarnpkg.com/b4a/-/b4a-1.6.6.tgz#a4cc349a3851987c3c4ac2d7785c18744f6da9ba" - integrity sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg== - -babel-jest@^29.7.0: - version "29.7.0" - resolved "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz" - integrity sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg== - dependencies: - "@jest/transform" "^29.7.0" - "@types/babel__core" "^7.1.14" - babel-plugin-istanbul "^6.1.1" - babel-preset-jest "^29.6.3" - chalk "^4.0.0" - graceful-fs "^4.2.9" - slash "^3.0.0" - -babel-plugin-istanbul@^6.1.1: - version "6.1.1" - resolved "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz" - integrity sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@istanbuljs/load-nyc-config" "^1.0.0" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-instrument "^5.0.4" - test-exclude "^6.0.0" - -babel-plugin-jest-hoist@^29.6.3: - version "29.6.3" - resolved "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz" - integrity sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg== - dependencies: - "@babel/template" "^7.3.3" - "@babel/types" "^7.3.3" - "@types/babel__core" "^7.1.14" - "@types/babel__traverse" "^7.0.6" - -babel-preset-current-node-syntax@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz" - integrity sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ== - dependencies: - "@babel/plugin-syntax-async-generators" "^7.8.4" - "@babel/plugin-syntax-bigint" "^7.8.3" - "@babel/plugin-syntax-class-properties" "^7.8.3" - "@babel/plugin-syntax-import-meta" "^7.8.3" - "@babel/plugin-syntax-json-strings" "^7.8.3" - "@babel/plugin-syntax-logical-assignment-operators" "^7.8.3" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - "@babel/plugin-syntax-numeric-separator" "^7.8.3" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" - "@babel/plugin-syntax-top-level-await" "^7.8.3" - -babel-preset-jest@^29.6.3: - version "29.6.3" - resolved "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz" - integrity sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA== - dependencies: - babel-plugin-jest-hoist "^29.6.3" - babel-preset-current-node-syntax "^1.0.0" - bail@^2.0.0: version "2.0.2" resolved "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz" @@ -2273,40 +1219,7 @@ balanced-match@^1.0.0: resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== -bare-events@^2.0.0, bare-events@^2.2.0: - version "2.4.2" - resolved "https://registry.yarnpkg.com/bare-events/-/bare-events-2.4.2.tgz#3140cca7a0e11d49b3edc5041ab560659fd8e1f8" - integrity sha512-qMKFd2qG/36aA4GwvKq8MxnPgCQAmBWmSyLWsJcbn8v03wvIPQ/hG1Ms8bPzndZxMDoHpxez5VOS+gC9Yi24/Q== - -bare-fs@^2.1.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/bare-fs/-/bare-fs-2.3.1.tgz#cdbd63dac7a552dfb2b87d18c822298d1efd213d" - integrity sha512-W/Hfxc/6VehXlsgFtbB5B4xFcsCl+pAh30cYhoFyXErf6oGrwjh8SwiPAdHgpmWonKuYpZgGywN0SXt7dgsADA== - dependencies: - bare-events "^2.0.0" - bare-path "^2.0.0" - bare-stream "^2.0.0" - -bare-os@^2.1.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/bare-os/-/bare-os-2.4.0.tgz#5de5e3ba7704f459c9656629edca7cc736e06608" - integrity sha512-v8DTT08AS/G0F9xrhyLtepoo9EJBJ85FRSMbu1pQUlAf6A8T0tEEQGMVObWeqpjhSPXsE0VGlluFBJu2fdoTNg== - -bare-path@^2.0.0, bare-path@^2.1.0: - version "2.1.3" - resolved "https://registry.yarnpkg.com/bare-path/-/bare-path-2.1.3.tgz#594104c829ef660e43b5589ec8daef7df6cedb3e" - integrity sha512-lh/eITfU8hrj9Ru5quUp0Io1kJWIk1bTjzo7JH1P5dWmQ2EL4hFUlfI8FonAhSlgIfhn63p84CDY/x+PisgcXA== - dependencies: - bare-os "^2.1.0" - -bare-stream@^2.0.0: - version "2.1.3" - resolved "https://registry.yarnpkg.com/bare-stream/-/bare-stream-2.1.3.tgz#070b69919963a437cc9e20554ede079ce0a129b2" - integrity sha512-tiDAH9H/kP+tvNO5sczyn9ZAA7utrSMobyDchsnyyXBuUe2FSQWbxhtuHB8jwpHYYevVo2UJpcmvvjrbHboUUQ== - dependencies: - streamx "^2.18.0" - -base64-js@^1.3.1, base64-js@^1.5.1: +base64-js@^1.3.1: version "1.5.1" resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== @@ -2318,15 +1231,10 @@ bcrypt-pbkdf@^1.0.0: dependencies: tweetnacl "^0.14.3" -before-after-hook@^2.2.0: - version "2.2.3" - resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.2.3.tgz#c51e809c81a4e354084422b9b26bad88249c517c" - integrity sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ== - binary-extensions@^2.0.0: - version "2.2.0" - resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz" - integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== + version "2.3.0" + resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz" + integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== bindings@^1.5.0: version "1.5.0" @@ -2382,34 +1290,17 @@ brace-expansion@^2.0.1: dependencies: balanced-match "^1.0.0" -braces@^3.0.2, braces@~3.0.2: +braces@^3.0.3, braces@~3.0.2: version "3.0.3" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789" + resolved "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz" integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== dependencies: fill-range "^7.1.1" browser-stdout@1.3.1: version "1.3.1" - resolved "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz" - integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== - -browserslist@^4.22.2: - version "4.23.0" - resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz" - integrity sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ== - dependencies: - caniuse-lite "^1.0.30001587" - electron-to-chromium "^1.4.668" - node-releases "^2.0.14" - update-browserslist-db "^1.0.13" - -bser@2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz" - integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ== - dependencies: - node-int64 "^0.4.0" + resolved "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz" + integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== buffer-crc32@~0.2.3: version "0.2.13" @@ -2421,16 +1312,6 @@ buffer-equal-constant-time@1.0.1: resolved "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz" integrity sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA== -buffer-from@^1.0.0: - version "1.1.2" - resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz" - integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== - -buffer-writer@2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/buffer-writer/-/buffer-writer-2.0.0.tgz" - integrity sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw== - buffer@^5.5.0: version "5.7.1" resolved "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz" @@ -2439,14 +1320,6 @@ buffer@^5.5.0: base64-js "^1.3.1" ieee754 "^1.1.13" -buffer@^6.0.3: - version "6.0.3" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" - integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== - dependencies: - base64-js "^1.3.1" - ieee754 "^1.2.1" - bytes@3.1.2: version "3.1.2" resolved "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz" @@ -2518,7 +1391,7 @@ cacheable-request@^7.0.2: normalize-url "^6.0.1" responselike "^2.0.0" -call-bind@^1.0.5, call-bind@^1.0.7: +call-bind@^1.0.7: version "1.0.7" resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz" integrity sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w== @@ -2544,38 +1417,27 @@ camelcase-css@^2.0.1: resolved "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz" integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA== -camelcase@^5.3.1: - version "5.3.1" - resolved "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz" - integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== - -camelcase@^6.0.0, camelcase@^6.2.0: +camelcase@^6.0.0: version "6.3.0" resolved "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== -caniuse-lite@^1.0.30001587: - version "1.0.30001596" - resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001596.tgz" - integrity sha512-zpkZ+kEr6We7w63ORkoJ2pOfBwBkY/bJrG/UZ90qNb45Isblu8wzDgevEOrRL1r9dWayHjYiiyCMEXPn4DweGQ== - cargo-cp-artifact@^0.1: - version "0.1.8" - resolved "https://registry.npmjs.org/cargo-cp-artifact/-/cargo-cp-artifact-0.1.8.tgz" - integrity sha512-3j4DaoTrsCD1MRkTF2Soacii0Nx7UHCce0EwUf4fHnggwiE4fbmF2AbnfzayR36DF8KGadfh7M/Yfy625kgPlA== + version "0.1.9" + resolved "https://registry.npmjs.org/cargo-cp-artifact/-/cargo-cp-artifact-0.1.9.tgz" + integrity sha512-6F+UYzTaGB+awsTXg0uSJA1/b/B3DDJzpKVRu0UmyI7DmNeaAl2RFHuTGIN6fEgpadRxoXGb7gbC1xo4C3IdyA== caseless@~0.12.0: version "0.12.0" resolved "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz" integrity sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw== -chalk@4.1.2, chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.1: - version "4.1.2" - resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== +chalk-template@^0.4.0: + version "0.4.0" + resolved "https://registry.npmjs.org/chalk-template/-/chalk-template-0.4.0.tgz" + integrity sha512-/ghrgmhfY8RaSdeo43hNXxpoHAtxdbskUHjPpfqUWGttFgycUhYPGx3YZBCnUCvOa7Doivn1IZec3DEGFoMgLg== dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" + chalk "^4.1.2" chalk@^2.4.2: version "2.4.2" @@ -2586,10 +1448,13 @@ chalk@^2.4.2: escape-string-regexp "^1.0.5" supports-color "^5.3.0" -char-regex@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz" - integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== +chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.1, chalk@^4.1.2, chalk@4.1.2: + version "4.1.2" + resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" character-entities@^2.0.0: version "2.0.2" @@ -2613,9 +1478,9 @@ cheerio-select@^2.1.0: domhandler "^5.0.3" domutils "^3.0.1" -cheerio@^1.0.0-rc.12, cheerio@^1.0.0-rc.9: +cheerio@^1.0.0-rc.9: version "1.0.0-rc.12" - resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.12.tgz#788bf7466506b1c6bf5fae51d24a2c4d62e47683" + resolved "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz" integrity sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q== dependencies: cheerio-select "^2.1.0" @@ -2626,7 +1491,7 @@ cheerio@^1.0.0-rc.12, cheerio@^1.0.0-rc.9: parse5 "^7.0.0" parse5-htmlparser2-tree-adapter "^7.0.0" -chokidar@3.5.3, chokidar@^3.5.3: +chokidar@^3.5.3, chokidar@3.5.3: version "3.5.3" resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz" integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== @@ -2656,16 +1521,6 @@ ci-info@^2.0.0: resolved "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz" integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== -ci-info@^3.2.0: - version "3.9.0" - resolved "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz" - integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ== - -cjs-module-lexer@^1.0.0: - version "1.2.3" - resolved "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz" - integrity sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ== - clean-stack@^2.0.0: version "2.2.0" resolved "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz" @@ -2736,20 +1591,10 @@ clone@^1.0.2: resolved "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz" integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg== -co@^4.6.0: - version "4.6.0" - resolved "https://registry.npmjs.org/co/-/co-4.6.0.tgz" - integrity sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ== - cockatiel@^3.1.2: - version "3.1.2" - resolved "https://registry.npmjs.org/cockatiel/-/cockatiel-3.1.2.tgz" - integrity sha512-5yARKww0dWyWg2/3xZeXgoxjHLwpVqFptj9Zy7qioJ6+/L0ARM184sgMUrQDjxw7ePJWlGhV998mKhzrxT0/Kg== - -collect-v8-coverage@^1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz" - integrity sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q== + version "3.1.3" + resolved "https://registry.npmjs.org/cockatiel/-/cockatiel-3.1.3.tgz" + integrity sha512-xC759TpZ69d7HhfDp8m2WkRwEUiCkxY8Ee2OQH/3H6zmy2D/5Sm+zSTbPRa+V2QyjDtpMvjOIAOVjA2gp6N1kQ== color-convert@^1.9.0: version "1.9.3" @@ -2765,37 +1610,21 @@ color-convert@^2.0.1: dependencies: color-name "~1.1.4" -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" - integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== - -color-name@^1.0.0, color-name@~1.1.4: +color-name@~1.1.4: version "1.1.4" resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== -color-string@^1.9.0: - version "1.9.1" - resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.9.1.tgz#4467f9146f036f855b764dfb5bf8582bf342c7a4" - integrity sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg== - dependencies: - color-name "^1.0.0" - simple-swizzle "^0.2.2" +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== color-support@^1.1.3: version "1.1.3" resolved "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz" integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== -color@^4.2.3: - version "4.2.3" - resolved "https://registry.yarnpkg.com/color/-/color-4.2.3.tgz#d781ecb5e57224ee43ea9627560107c0e0c6463a" - integrity sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A== - dependencies: - color-convert "^2.0.1" - color-string "^1.9.0" - combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: version "1.0.8" resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz" @@ -2808,26 +1637,46 @@ comma-separated-tokens@^2.0.0: resolved "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz" integrity sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg== -commander@8.3.0, commander@^8.1.0: - version "8.3.0" - resolved "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz" - integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== +command-line-args@^5.2.1, command-line-args@5.2.1: + version "5.2.1" + resolved "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz" + integrity sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg== + dependencies: + array-back "^3.1.0" + find-replace "^3.0.0" + lodash.camelcase "^4.3.0" + typical "^4.0.0" -commander@^12.0.0: - version "12.1.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-12.1.0.tgz#01423b36f501259fdaac4d0e4d60c96c991585d3" - integrity sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA== +command-line-usage@^7.0.0, command-line-usage@7.0.1: + version "7.0.1" + resolved "https://registry.npmjs.org/command-line-usage/-/command-line-usage-7.0.1.tgz" + integrity sha512-NCyznE//MuTjwi3y84QVUGEOT+P5oto1e1Pk/jFPVdPPfsG03qpTIl3yw6etR+v73d0lXsoojRpvbru2sqePxQ== + dependencies: + array-back "^6.2.2" + chalk-template "^0.4.0" + table-layout "^3.0.0" + typical "^7.1.1" commander@^4.0.0: version "4.1.1" resolved "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz" integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== -commander@^6.1.0, commander@^6.2.1: +commander@^6.1.0: + version "6.2.1" + resolved "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz" + integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA== + +commander@^6.2.1: version "6.2.1" resolved "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz" integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA== +commander@^8.1.0, commander@8.3.0: + version "8.3.0" + resolved "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz" + integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== + compare-versions@4.1.4: version "4.1.4" resolved "https://registry.npmjs.org/compare-versions/-/compare-versions-4.1.4.tgz" @@ -2857,11 +1706,6 @@ concurrently@6.5.1: tree-kill "^1.2.2" yargs "^16.2.0" -confusing-browser-globals@^1.0.10: - version "1.0.11" - resolved "https://registry.yarnpkg.com/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz#ae40e9b57cdd3915408a2805ebd3a5585608dc81" - integrity sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA== - consola@^2.15.0: version "2.15.3" resolved "https://registry.npmjs.org/consola/-/consola-2.15.3.tgz" @@ -2891,46 +1735,50 @@ content-type@~1.0.4, content-type@~1.0.5: resolved "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz" integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== -convert-source-map@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz" - integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== - cookie-signature@1.0.6: version "1.0.6" resolved "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz" integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== -cookie@0.5.0: - version "0.5.0" - resolved "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz" - integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== - -core-util-is@1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz" - integrity sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ== +cookie@0.6.0: + version "0.6.0" + resolved "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz" + integrity sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw== core-util-is@~1.0.0: version "1.0.3" resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz" integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== +core-util-is@1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz" + integrity sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ== + "core@file:../../core": - version "1.0.6" + version "1.0.13" + resolved "file:../../core" dependencies: + "@aws-sdk/client-bedrock-runtime" "^3.574.0" + "@aws-sdk/credential-providers" "^3.596.0" + "@continuedev/config-types" "^1.0.6" + "@continuedev/llm-info" "^1.0.1" "@mozilla/readability" "^0.5.0" "@octokit/rest" "^20.0.2" "@types/jsdom" "^21.1.6" "@types/mozilla-readability" "^0.2.1" "@types/node-fetch" "^2.6.11" - "@xenova/transformers" "^2.14.0" + "@typescript-eslint/eslint-plugin" "^7.8.0" + "@typescript-eslint/parser" "^7.8.0" + "@xenova/transformers" "2.14.0" adf-to-md "^1.1.0" + async-mutex "^0.5.0" axios "^1.6.7" cheerio "^1.0.0-rc.12" commander "^12.0.0" + comment-json "^4.2.3" dbinfoz "^0.1.4" - dotenv "^16.3.1" + dotenv "^16.4.5" fastest-levenshtein "^1.0.16" follow-redirects "^1.15.5" handlebars "^4.7.8" @@ -2939,23 +1787,29 @@ core-util-is@~1.0.0: ignore "^5.3.1" js-tiktoken "^1.0.8" jsdom "^24.0.0" - llama-tokenizer-js "^1.1.3" + launchdarkly-node-client-sdk "^3.2.0" llm-code-highlighter "^0.0.14" + mac-ca "^3.1.0" node-fetch "^3.3.2" node-html-markdown "^1.3.0" ollama "^0.4.6" + onnxruntime-node "1.14.0" openai "^4.20.1" pg "^8.11.3" - posthog-node "^3.6.2" + posthog-node "^3.6.3" replicate "^0.26.0" request "^2.88.2" socket.io-client "^4.7.3" sqlite "^5.1.1" sqlite3 "^5.1.7" - tree-sitter-wasms "^0.1.6" + system-ca "^1.0.3" + tree-sitter-wasms "^0.1.11" uuid "^9.0.1" - vectordb "0.4.12" + vectordb "^0.4.20" web-tree-sitter "^0.21.0" + win-ca "^3.5.1" + yaml "^2.4.2" + zod "^3.23.8" cors@^2.8.5: version "2.8.5" @@ -2965,19 +1819,6 @@ cors@^2.8.5: object-assign "^4" vary "^1" -create-jest@^29.7.0: - version "29.7.0" - resolved "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz" - integrity sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q== - dependencies: - "@jest/types" "^29.6.3" - chalk "^4.0.0" - exit "^0.1.2" - graceful-fs "^4.2.9" - jest-config "^29.7.0" - jest-util "^29.7.0" - prompts "^2.0.1" - cross-spawn@^7.0.0, cross-spawn@^7.0.1, cross-spawn@^7.0.2, cross-spawn@^7.0.3: version "7.0.3" resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz" @@ -3020,7 +1861,7 @@ csstype@^3.0.2: resolved "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz" integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw== -d@1, d@^1.0.1, d@^1.0.2: +d@^1.0.1, d@^1.0.2, d@1: version "1.0.2" resolved "https://registry.npmjs.org/d/-/d-1.0.2.tgz" integrity sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw== @@ -3064,6 +1905,13 @@ dbinfoz@^0.1.4: pg "^8.11.3" sqlite3 "^5.1.7" +debug@^4.0.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4, debug@~4.3.1, debug@~4.3.2, debug@4, debug@4.3.4: + version "4.3.4" + resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== + dependencies: + ms "2.1.2" + debug@2.6.9: version "2.6.9" resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" @@ -3071,13 +1919,6 @@ debug@2.6.9: dependencies: ms "2.0.0" -debug@4, debug@4.3.4, debug@^4.0.0, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4, debug@~4.3.1, debug@~4.3.2: - version "4.3.4" - resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz" - integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== - dependencies: - ms "2.1.2" - decamelize@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz" @@ -3102,11 +1943,6 @@ decompress-response@^6.0.0: dependencies: mimic-response "^3.1.0" -dedent@^1.0.0: - version "1.5.1" - resolved "https://registry.npmjs.org/dedent/-/dedent-1.5.1.tgz" - integrity sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg== - deep-extend@^0.6.0: version "0.6.0" resolved "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz" @@ -3117,11 +1953,6 @@ deep-is@^0.1.3: resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz" integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== -deepmerge@^4.2.2: - version "4.3.1" - resolved "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz" - integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== - defaults@^1.0.3: version "1.0.4" resolved "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz" @@ -3134,7 +1965,7 @@ defer-to-connect@^2.0.0: resolved "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz" integrity sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg== -define-data-property@^1.0.1, define-data-property@^1.1.4: +define-data-property@^1.1.4: version "1.1.4" resolved "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz" integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A== @@ -3148,15 +1979,6 @@ define-lazy-prop@^2.0.0: resolved "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz" integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== -define-properties@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c" - integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg== - dependencies: - define-data-property "^1.0.1" - has-property-descriptors "^1.0.0" - object-keys "^1.1.1" - delayed-stream@~1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" @@ -3177,11 +1999,6 @@ depd@2.0.0: resolved "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz" integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== -deprecation@^2.0.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/deprecation/-/deprecation-2.3.1.tgz#6368cbdb40abf3373b525ac87e4a260c3a700919" - integrity sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ== - dequal@^2.0.0: version "2.0.3" resolved "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz" @@ -3193,31 +2010,16 @@ destroy@1.2.0: integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== detect-libc@^2.0.0, detect-libc@^2.0.1: - version "2.0.2" - resolved "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.2.tgz" - integrity sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw== - -detect-libc@^2.0.2: version "2.0.3" - resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.3.tgz#f0cd503b40f9939b894697d19ad50895e30cf700" + resolved "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz" integrity sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw== -detect-newline@^3.0.0: - version "3.1.0" - resolved "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz" - integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== - didyoumean@^1.2.2: version "1.2.2" resolved "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz" integrity sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw== -diff-sequences@^29.6.3: - version "29.6.3" - resolved "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz" - integrity sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q== - -diff@5.0.0, diff@^5.0.0: +diff@^5.0.0, diff@5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz" integrity sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w== @@ -3271,11 +2073,6 @@ domutils@^3.0.1: domelementtype "^2.3.0" domhandler "^5.0.3" -dotenv@^16.3.1: - version "16.4.5" - resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.4.5.tgz#cdd3b3b604cb327e286b4762e13502f717cb099f" - integrity sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg== - downshift@^7.6.0: version "7.6.2" resolved "https://registry.npmjs.org/downshift/-/downshift-7.6.2.tgz" @@ -3319,16 +2116,6 @@ ee-first@1.1.1: resolved "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz" integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== -electron-to-chromium@^1.4.668: - version "1.4.699" - resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.699.tgz" - integrity sha512-I7q3BbQi6e4tJJN5CRcyvxhK0iJb34TV8eJQcgh+fR2fQ8miMgZcEInckCo1U9exDHbfz7DLDnFn8oqH/VcRKw== - -emittery@^0.13.1: - version "0.13.1" - resolved "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz" - integrity sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ== - emoji-regex@^10.2.1: version "10.3.0" resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.3.0.tgz" @@ -3349,7 +2136,7 @@ encodeurl@~1.0.2: resolved "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz" integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== -encoding@^0.1.12, encoding@^0.1.13: +encoding@^0.1.0, encoding@^0.1.12, encoding@^0.1.13: version "0.1.13" resolved "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz" integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== @@ -3399,13 +2186,6 @@ err-code@^2.0.2: resolved "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz" integrity sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA== -error-ex@^1.3.1: - version "1.3.2" - resolved "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz" - integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== - dependencies: - is-arrayish "^0.2.1" - es-define-property@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz" @@ -3418,13 +2198,6 @@ es-errors@^1.3.0: resolved "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz" integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== -es-object-atoms@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/es-object-atoms/-/es-object-atoms-1.0.0.tgz#ddb55cd47ac2e240701260bc2a8e31ecb643d941" - integrity sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw== - dependencies: - es-errors "^1.3.0" - es5-ext@^0.10.35, es5-ext@^0.10.46, es5-ext@^0.10.53, es5-ext@^0.10.62, es5-ext@^0.10.64, es5-ext@~0.10.14, es5-ext@~0.10.2, es5-ext@~0.10.46: version "0.10.64" resolved "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.64.tgz" @@ -3462,7 +2235,7 @@ es6-weak-map@^2.0.3: es6-iterator "^2.0.3" es6-symbol "^3.1.1" -esbuild@0.17.19: +esbuild@^0.17.19: version "0.17.19" resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.17.19.tgz" integrity sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw== @@ -3528,7 +2301,12 @@ escape-html@~1.0.3: resolved "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz" integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== -escape-string-regexp@4.0.0, escape-string-regexp@^4.0.0: +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== + +escape-string-regexp@^4.0.0, escape-string-regexp@4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== @@ -3538,33 +2316,6 @@ escape-string-regexp@5.0.0: resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz" integrity sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw== -escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" - integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== - -escape-string-regexp@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz" - integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== - -eslint-config-airbnb-base@15.0.0: - version "15.0.0" - resolved "https://registry.yarnpkg.com/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz#6b09add90ac79c2f8d723a2580e07f3925afd236" - integrity sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig== - dependencies: - confusing-browser-globals "^1.0.10" - object.assign "^4.1.2" - object.entries "^1.1.5" - semver "^6.3.0" - -eslint-config-nodebb@0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/eslint-config-nodebb/-/eslint-config-nodebb-0.1.1.tgz#da29bca090442d70a8532cc9e8774ef4651ed000" - integrity sha512-+LSX8iYe10fKb6k4JuyMygce7GQMSMsttdgi+BO+v+P3tXXxH//OUnEfZ2cbTungZap9Z8NuK6Tog1wrRQo6CQ== - dependencies: - eslint-config-airbnb-base "15.0.0" - eslint-scope@^5.1.1: version "5.1.1" resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz" @@ -3586,7 +2337,7 @@ eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4 resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz" integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== -eslint@^8.28.0: +eslint@*, "eslint@^6.0.0 || ^7.0.0 || ^8.0.0", "eslint@^6.0.0 || ^7.0.0 || >=8.0.0", eslint@^8.28.0: version "8.57.0" resolved "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz" integrity sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ== @@ -3649,11 +2400,6 @@ espree@^9.6.0, espree@^9.6.1: acorn-jsx "^5.3.2" eslint-visitor-keys "^3.4.1" -esprima@^4.0.0: - version "4.0.1" - resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz" - integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== - esquery@^1.4.2: version "1.5.0" resolved "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz" @@ -3673,7 +2419,12 @@ estraverse@^4.1.1: resolved "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz" integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== -estraverse@^5.1.0, estraverse@^5.2.0: +estraverse@^5.1.0: + version "5.3.0" + resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz" + integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== + +estraverse@^5.2.0: version "5.3.0" resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz" integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== @@ -3696,22 +2447,17 @@ event-emitter@^0.3.5: d "1" es5-ext "~0.10.14" -event-target-shim@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" - integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== - eventemitter3@^4.0.0: version "4.0.7" resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz" integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== -events@^3.0.0, events@^3.3.0: +events@^3.0.0: version "3.3.0" - resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" + resolved "https://registry.npmjs.org/events/-/events-3.3.0.tgz" integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== -execa@^5.0.0, execa@^5.1.1: +execa@^5.1.1: version "5.1.1" resolved "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz" integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== @@ -3726,43 +2472,27 @@ execa@^5.0.0, execa@^5.1.1: signal-exit "^3.0.3" strip-final-newline "^2.0.0" -exit@^0.1.2: - version "0.1.2" - resolved "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz" - integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ== - expand-template@^2.0.3: version "2.0.3" resolved "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz" integrity sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg== -expect@^29.0.0, expect@^29.7.0: - version "29.7.0" - resolved "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz" - integrity sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw== - dependencies: - "@jest/expect-utils" "^29.7.0" - jest-get-type "^29.6.3" - jest-matcher-utils "^29.7.0" - jest-message-util "^29.7.0" - jest-util "^29.7.0" - exponential-backoff@^3.1.1: version "3.1.1" resolved "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.1.tgz" integrity sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw== express@^4.18.2: - version "4.18.3" - resolved "https://registry.npmjs.org/express/-/express-4.18.3.tgz" - integrity sha512-6VyCijWQ+9O7WuVMTRBTl+cjNNIzD5cY5mQ1WM8r/LEkI2u8EYpOotESNwzNlyCn3g+dmjKYI6BmNneSr/FSRw== + version "4.19.2" + resolved "https://registry.npmjs.org/express/-/express-4.19.2.tgz" + integrity sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q== dependencies: accepts "~1.3.8" array-flatten "1.1.1" body-parser "1.20.2" content-disposition "0.5.4" content-type "~1.0.4" - cookie "0.5.0" + cookie "0.6.0" cookie-signature "1.0.6" debug "2.6.9" depd "2.0.0" @@ -3810,7 +2540,7 @@ external-editor@^3.0.3: iconv-lite "^0.4.24" tmp "^0.0.33" -extsprintf@1.3.0, extsprintf@^1.2.0: +extsprintf@^1.2.0, extsprintf@1.3.0: version "1.3.0" resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz" integrity sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g== @@ -3820,11 +2550,6 @@ fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== -fast-fifo@^1.2.0, fast-fifo@^1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/fast-fifo/-/fast-fifo-1.3.2.tgz#286e31de96eb96d38a97899815740ba2a4f3640c" - integrity sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ== - fast-glob@^3.2.9, fast-glob@^3.3.0: version "3.3.2" resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz" @@ -3836,7 +2561,7 @@ fast-glob@^3.2.9, fast-glob@^3.3.0: merge2 "^1.3.0" micromatch "^4.0.4" -fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.0: +fast-json-stable-stringify@^2.0.0: version "2.1.0" resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== @@ -3870,13 +2595,6 @@ fastq@^1.6.0: dependencies: reusify "^1.0.4" -fb-watchman@^2.0.0: - version "2.0.2" - resolved "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz" - integrity sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA== - dependencies: - bser "2.1.1" - fd-slicer@~1.1.0: version "1.1.0" resolved "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz" @@ -3913,7 +2631,7 @@ file-uri-to-path@1.0.0: fill-range@^7.1.1: version "7.1.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292" + resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz" integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== dependencies: to-regex-range "^5.0.1" @@ -3931,7 +2649,14 @@ finalhandler@1.2.0: statuses "2.0.1" unpipe "~1.0.0" -find-up@5.0.0, find-up@^5.0.0: +find-replace@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz" + integrity sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ== + dependencies: + array-back "^3.0.1" + +find-up@^5.0.0, find-up@5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz" integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== @@ -3939,14 +2664,6 @@ find-up@5.0.0, find-up@^5.0.0: locate-path "^6.0.0" path-exists "^4.0.0" -find-up@^4.0.0, find-up@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz" - integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== - dependencies: - locate-path "^5.0.0" - path-exists "^4.0.0" - fkill@^8.1.0: version "8.1.1" resolved "https://registry.npmjs.org/fkill/-/fkill-8.1.1.tgz" @@ -3973,24 +2690,19 @@ flat@^5.0.2: resolved "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz" integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== -flatbuffers@^1.12.0: - version "1.12.0" - resolved "https://registry.yarnpkg.com/flatbuffers/-/flatbuffers-1.12.0.tgz#72e87d1726cb1b216e839ef02658aa87dcef68aa" - integrity sha512-c7CZADjRcl6j0PlvFy0ZqXQ67qSEZfrVPynmnL+2zPc+NtMvrF8Y0QceMo7QqnSPc7+uWjUIAbvCQ5WIKlMVdQ== +flatbuffers@23.5.26: + version "23.5.26" + resolved "https://registry.npmjs.org/flatbuffers/-/flatbuffers-23.5.26.tgz" + integrity sha512-vE+SI9vrJDwi1oETtTIFldC/o9GsVKRM+s6EL0nQgxXlYV1Vc4Tk30hj4xGICftInKQKj1F3up2n8UbIVobISQ== flatted@^3.2.9: version "3.3.1" resolved "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz" integrity sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw== -follow-redirects@^1.0.0, follow-redirects@^1.14.6, follow-redirects@^1.14.9, follow-redirects@^1.15.4: - version "1.15.5" - resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.5.tgz" - integrity sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw== - -follow-redirects@^1.15.5, follow-redirects@^1.15.6: +follow-redirects@^1.0.0, follow-redirects@^1.14.6, follow-redirects@^1.14.9, follow-redirects@^1.15.4, follow-redirects@^1.15.6: version "1.15.6" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.6.tgz#7f815c0cda4249c74ff09e95ef97c23b5fd0399b" + resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz" integrity sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA== foreground-child@^3.1.0: @@ -4006,11 +2718,6 @@ forever-agent@~0.6.1: resolved "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz" integrity sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw== -form-data-encoder@1.7.2: - version "1.7.2" - resolved "https://registry.yarnpkg.com/form-data-encoder/-/form-data-encoder-1.7.2.tgz#1f1ae3dccf58ed4690b86d87e4f57c654fbab040" - integrity sha512-qfqtYan3rxrnCk1VYaA4H+Ms9xdpPqvLZa6xmMgFvhO32x7/3J/ExcTd6qpxM0vH2GdMI+poehyBZvqfMTto8A== - form-data@^2.5.0: version "2.5.1" resolved "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz" @@ -4038,14 +2745,6 @@ form-data@~2.3.2: combined-stream "^1.0.6" mime-types "^2.1.12" -formdata-node@^4.3.2: - version "4.4.1" - resolved "https://registry.yarnpkg.com/formdata-node/-/formdata-node-4.4.1.tgz#23f6a5cb9cb55315912cbec4ff7b0f59bbd191e2" - integrity sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ== - dependencies: - node-domexception "1.0.0" - web-streams-polyfill "4.0.0-beta.3" - formdata-polyfill@^4.0.10: version "4.0.10" resolved "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz" @@ -4068,7 +2767,7 @@ fs-constants@^1.0.0: resolved "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz" integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== -fs-extra@10.1.0, fs-extra@^10.0.0: +fs-extra@^10.0.0, fs-extra@10.1.0: version "10.1.0" resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz" integrity sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ== @@ -4098,7 +2797,7 @@ fs.realpath@^1.0.0: resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== -fsevents@^2.3.2, fsevents@~2.3.2: +fsevents@~2.3.2: version "2.3.3" resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz" integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== @@ -4129,11 +2828,6 @@ generate-function@^2.3.1: dependencies: is-property "^1.0.2" -gensync@^1.0.0-beta.2: - version "1.0.0-beta.2" - resolved "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz" - integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== - get-caller-file@^2.0.5: version "2.0.5" resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz" @@ -4150,11 +2844,6 @@ get-intrinsic@^1.1.3, get-intrinsic@^1.2.4: has-symbols "^1.0.3" hasown "^2.0.0" -get-package-type@^0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz" - integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== - get-stdin@^8.0.0: version "8.0.0" resolved "https://registry.npmjs.org/get-stdin/-/get-stdin-8.0.0.tgz" @@ -4184,7 +2873,7 @@ github-from-package@0.0.0: resolved "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz" integrity sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw== -glob-parent@^5.1.2, glob-parent@~5.1.2: +glob-parent@^5.1.2: version "5.1.2" resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== @@ -4198,6 +2887,13 @@ glob-parent@^6.0.2: dependencies: is-glob "^4.0.3" +glob-parent@~5.1.2: + version "5.1.2" + resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + glob-promise@^4.2.2: version "4.2.2" resolved "https://registry.npmjs.org/glob-promise/-/glob-promise-4.2.2.tgz" @@ -4205,7 +2901,53 @@ glob-promise@^4.2.2: dependencies: "@types/glob" "^7.1.3" -glob@7.2.3, glob@^7.0.6, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: +glob@^10.3.10: + version "10.3.15" + resolved "https://registry.npmjs.org/glob/-/glob-10.3.15.tgz" + integrity sha512-0c6RlJt1TICLyvJYIApxb8GsXoai0KUP7AxKKAtsYXdgJR1mGEUa7DgwShbdk1nly0PYoZj01xd4hzbq3fsjpw== + dependencies: + foreground-child "^3.1.0" + jackspeak "^2.3.6" + minimatch "^9.0.1" + minipass "^7.0.4" + path-scurry "^1.11.0" + +glob@^10.3.7: + version "10.3.15" + resolved "https://registry.npmjs.org/glob/-/glob-10.3.15.tgz" + integrity sha512-0c6RlJt1TICLyvJYIApxb8GsXoai0KUP7AxKKAtsYXdgJR1mGEUa7DgwShbdk1nly0PYoZj01xd4hzbq3fsjpw== + dependencies: + foreground-child "^3.1.0" + jackspeak "^2.3.6" + minimatch "^9.0.1" + minipass "^7.0.4" + path-scurry "^1.11.0" + +glob@^7.0.6: + version "7.2.3" + resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.1.1" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^7.1.3, glob@^7.1.4: + version "7.2.3" + resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.1.1" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^7.1.6: version "7.2.3" resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== @@ -4217,7 +2959,7 @@ glob@7.2.3, glob@^7.0.6, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: once "^1.3.0" path-is-absolute "^1.0.0" -glob@8.1.0, glob@^8.0.1, glob@^8.0.3: +glob@^8.0.1, glob@^8.0.3, glob@8.1.0: version "8.1.0" resolved "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz" integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== @@ -4228,21 +2970,17 @@ glob@8.1.0, glob@^8.0.1, glob@^8.0.3: minimatch "^5.0.1" once "^1.3.0" -glob@^10.3.10, glob@^10.3.7: - version "10.3.10" - resolved "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz" - integrity sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g== +glob@7.2.3: + version "7.2.3" + resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== dependencies: - foreground-child "^3.1.0" - jackspeak "^2.3.5" - minimatch "^9.0.1" - minipass "^5.0.0 || ^6.0.2 || ^7.0.0" - path-scurry "^1.10.1" - -globals@^11.1.0: - version "11.12.0" - resolved "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz" - integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.1.1" + once "^1.3.0" + path-is-absolute "^1.0.0" globals@^13.19.0: version "13.24.0" @@ -4287,7 +3025,7 @@ got@^11.7.0: p-cancelable "^2.0.0" responselike "^2.0.0" -graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.6, graceful-fs@^4.2.9: +graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.6: version "4.2.11" resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz" integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== @@ -4297,51 +3035,6 @@ graphemer@^1.4.0: resolved "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz" integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== -graphology-indices@^0.17.0: - version "0.17.0" - resolved "https://registry.yarnpkg.com/graphology-indices/-/graphology-indices-0.17.0.tgz#b93ad32162ff8b09814547aedb101248f0fcbd2e" - integrity sha512-A7RXuKQvdqSWOpn7ZVQo4S33O0vCfPBnUSf7FwE0zNCasqwZVUaCXePuWo5HBpWw68KJcwObZDHpFk6HKH6MYQ== - dependencies: - graphology-utils "^2.4.2" - mnemonist "^0.39.0" - -graphology-metrics@^2.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/graphology-metrics/-/graphology-metrics-2.3.0.tgz#201a42b7dd80525932c80a68e056ff7f4903ca9d" - integrity sha512-ayDWSnSlq2wIL1QIrRQ3cIUsS7V/kRdBzciLPkGsI8Vl/MDQkxiU9WDt9cUAMzAE6Q1n1pWT5SXPkKeZdKCjzA== - dependencies: - graphology-shortest-path "^2.0.0" - graphology-utils "^2.4.4" - mnemonist "^0.39.0" - -graphology-shortest-path@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/graphology-shortest-path/-/graphology-shortest-path-2.1.0.tgz#b5c5a568e7c86b24cbfd2042f9d84f2a54e0b331" - integrity sha512-KbT9CTkP/u72vGEJzyRr24xFC7usI9Es3LMmCPHGwQ1KTsoZjxwA9lMKxfU0syvT/w+7fZUdB/Hu2wWYcJBm6Q== - dependencies: - "@yomguithereal/helpers" "^1.1.1" - graphology-indices "^0.17.0" - graphology-utils "^2.4.3" - mnemonist "^0.39.0" - -graphology-utils@^2.4.2, graphology-utils@^2.4.3, graphology-utils@^2.4.4: - version "2.5.2" - resolved "https://registry.yarnpkg.com/graphology-utils/-/graphology-utils-2.5.2.tgz#4d30d6e567d27c01f105e1494af816742e8d2440" - integrity sha512-ckHg8MXrXJkOARk56ZaSCM1g1Wihe2d6iTmz1enGOz4W/l831MBCKSayeFQfowgF8wd+PQ4rlch/56Vs/VZLDQ== - -graphology@^0.25.4: - version "0.25.4" - resolved "https://registry.yarnpkg.com/graphology/-/graphology-0.25.4.tgz#e528a64555ac1f392a9d965321ada5b2b843efe1" - integrity sha512-33g0Ol9nkWdD6ulw687viS8YJQBxqG5LWII6FI6nul0pq6iM2t5EKquOTFDbyTblRB3O9I+7KX4xI8u5ffekAQ== - dependencies: - events "^3.3.0" - obliterator "^2.0.2" - -guid-typescript@^1.0.9: - version "1.0.9" - resolved "https://registry.yarnpkg.com/guid-typescript/-/guid-typescript-1.0.9.tgz#e35f77003535b0297ea08548f5ace6adb1480ddc" - integrity sha512-Y8T4vYhEfwJOTbouREvG+3XDsjr8E3kIr7uf+JZ0BYloFsttiHU0WfvANVsR7TxNUJa/WpCnw/Ino/p+DeBhBQ== - handlebars@^4.7.8: version "4.7.8" resolved "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz" @@ -4377,7 +3070,7 @@ has-flag@^4.0.0: resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== -has-property-descriptors@^1.0.0, has-property-descriptors@^1.0.2: +has-property-descriptors@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz" integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg== @@ -4400,9 +3093,9 @@ has-unicode@^2.0.1: integrity sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ== hasown@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/hasown/-/hasown-2.0.1.tgz" - integrity sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA== + version "2.0.2" + resolved "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz" + integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== dependencies: function-bind "^1.1.2" @@ -4452,11 +3145,6 @@ html-encoding-sniffer@^4.0.0: dependencies: whatwg-encoding "^3.1.1" -html-escaper@^2.0.0: - version "2.0.2" - resolved "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz" - integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== - htmlparser2@^8.0.1: version "8.0.2" resolved "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz" @@ -4501,7 +3189,7 @@ http-proxy-agent@^5.0.0: agent-base "6" debug "4" -http-proxy-agent@^7.0.0, http-proxy-agent@^7.0.1: +http-proxy-agent@^7.0.0: version "7.0.2" resolved "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz" integrity sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig== @@ -4554,7 +3242,7 @@ https-proxy-agent@^5.0.0: agent-base "6" debug "4" -https-proxy-agent@^7.0.0, https-proxy-agent@^7.0.2, https-proxy-agent@^7.0.3: +https-proxy-agent@^7.0.0, https-proxy-agent@^7.0.2, https-proxy-agent@7.0.4: version "7.0.4" resolved "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz" integrity sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg== @@ -4574,28 +3262,42 @@ humanize-ms@^1.2.1: dependencies: ms "^2.0.0" -iconv-lite@0.4.24, iconv-lite@^0.4.24: +iconv-lite@^0.4.24, iconv-lite@0.4.24: version "0.4.24" resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz" integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== dependencies: safer-buffer ">= 2.1.2 < 3" -iconv-lite@0.6.3, iconv-lite@^0.6.2, iconv-lite@^0.6.3: +iconv-lite@^0.6.2: + version "0.6.3" + resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz" + integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== + dependencies: + safer-buffer ">= 2.1.2 < 3.0.0" + +iconv-lite@^0.6.3: + version "0.6.3" + resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz" + integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== + dependencies: + safer-buffer ">= 2.1.2 < 3.0.0" + +iconv-lite@0.6.3: version "0.6.3" resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz" integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== dependencies: safer-buffer ">= 2.1.2 < 3.0.0" -ieee754@^1.1.13, ieee754@^1.2.1: +ieee754@^1.1.13: version "1.2.1" resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz" integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== -ignore@^5.2.0, ignore@^5.3.0, ignore@^5.3.1: +ignore@^5.2.0, ignore@^5.3.0: version "5.3.1" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.1.tgz#5073e554cd42c5b33b394375f538b8593e34d4ef" + resolved "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz" integrity sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw== immediate@~3.0.5: @@ -4616,14 +3318,6 @@ import-fresh@^3.2.1: parent-module "^1.0.0" resolve-from "^4.0.0" -import-local@^3.0.2: - version "3.1.0" - resolved "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz" - integrity sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg== - dependencies: - pkg-dir "^4.2.0" - resolve-cwd "^3.0.0" - imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz" @@ -4652,7 +3346,7 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@2.0.4, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3: +inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3, inherits@2, inherits@2.0.4: version "2.0.4" resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -4698,18 +3392,8 @@ ip-address@^9.0.5: ipaddr.js@1.9.1: version "1.9.1" - resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz" - integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== - -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz" - integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== - -is-arrayish@^0.3.1: - version "0.3.2" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" - integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== + resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz" + integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== is-binary-path@~2.1.0: version "2.1.0" @@ -4752,11 +3436,6 @@ is-fullwidth-code-point@^3.0.0: resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== -is-generator-fn@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz" - integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== - is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: version "4.0.3" resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz" @@ -4851,65 +3530,12 @@ isstream@~0.1.2: resolved "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz" integrity sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g== -istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: - version "3.2.2" - resolved "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz" - integrity sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg== - -istanbul-lib-instrument@^5.0.4: - version "5.2.1" - resolved "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz" - integrity sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg== - dependencies: - "@babel/core" "^7.12.3" - "@babel/parser" "^7.14.7" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-coverage "^3.2.0" - semver "^6.3.0" - -istanbul-lib-instrument@^6.0.0: - version "6.0.2" - resolved "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.2.tgz" - integrity sha512-1WUsZ9R1lA0HtBSohTkm39WTPlNKSJ5iFk7UwqXkBLoHQT+hfqPsfsTDVuZdKGaBwn7din9bS7SsnoAr943hvw== - dependencies: - "@babel/core" "^7.23.9" - "@babel/parser" "^7.23.9" - "@istanbuljs/schema" "^0.1.3" - istanbul-lib-coverage "^3.2.0" - semver "^7.5.4" - -istanbul-lib-report@^3.0.0: - version "3.0.1" - resolved "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz" - integrity sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw== - dependencies: - istanbul-lib-coverage "^3.0.0" - make-dir "^4.0.0" - supports-color "^7.1.0" - -istanbul-lib-source-maps@^4.0.0: - version "4.0.1" - resolved "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz" - integrity sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw== - dependencies: - debug "^4.1.1" - istanbul-lib-coverage "^3.0.0" - source-map "^0.6.1" - -istanbul-reports@^3.1.3: - version "3.1.7" - resolved "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.7.tgz" - integrity sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g== - dependencies: - html-escaper "^2.0.0" - istanbul-lib-report "^3.0.0" - iterare@1.2.1: version "1.2.1" resolved "https://registry.npmjs.org/iterare/-/iterare-1.2.1.tgz" integrity sha512-RKYVTCjAnRthyJes037NX/IiqeidgN1xc3j1RjFfECFp28A1GVwK9nA+i0rJPaHqSZwygLzRnFlzUuHFoWWy+Q== -jackspeak@^2.3.5: +jackspeak@^2.3.6: version "2.3.6" resolved "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz" integrity sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ== @@ -4918,406 +3544,33 @@ jackspeak@^2.3.5: optionalDependencies: "@pkgjs/parseargs" "^0.11.0" -jest-changed-files@^29.7.0: - version "29.7.0" - resolved "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz" - integrity sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w== - dependencies: - execa "^5.0.0" - jest-util "^29.7.0" - p-limit "^3.1.0" - -jest-circus@^29.7.0: - version "29.7.0" - resolved "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz" - integrity sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw== - dependencies: - "@jest/environment" "^29.7.0" - "@jest/expect" "^29.7.0" - "@jest/test-result" "^29.7.0" - "@jest/types" "^29.6.3" - "@types/node" "*" - chalk "^4.0.0" - co "^4.6.0" - dedent "^1.0.0" - is-generator-fn "^2.0.0" - jest-each "^29.7.0" - jest-matcher-utils "^29.7.0" - jest-message-util "^29.7.0" - jest-runtime "^29.7.0" - jest-snapshot "^29.7.0" - jest-util "^29.7.0" - p-limit "^3.1.0" - pretty-format "^29.7.0" - pure-rand "^6.0.0" - slash "^3.0.0" - stack-utils "^2.0.3" - -jest-cli@^29.7.0: - version "29.7.0" - resolved "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz" - integrity sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg== - dependencies: - "@jest/core" "^29.7.0" - "@jest/test-result" "^29.7.0" - "@jest/types" "^29.6.3" - chalk "^4.0.0" - create-jest "^29.7.0" - exit "^0.1.2" - import-local "^3.0.2" - jest-config "^29.7.0" - jest-util "^29.7.0" - jest-validate "^29.7.0" - yargs "^17.3.1" - -jest-config@^29.7.0: - version "29.7.0" - resolved "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz" - integrity sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ== - dependencies: - "@babel/core" "^7.11.6" - "@jest/test-sequencer" "^29.7.0" - "@jest/types" "^29.6.3" - babel-jest "^29.7.0" - chalk "^4.0.0" - ci-info "^3.2.0" - deepmerge "^4.2.2" - glob "^7.1.3" - graceful-fs "^4.2.9" - jest-circus "^29.7.0" - jest-environment-node "^29.7.0" - jest-get-type "^29.6.3" - jest-regex-util "^29.6.3" - jest-resolve "^29.7.0" - jest-runner "^29.7.0" - jest-util "^29.7.0" - jest-validate "^29.7.0" - micromatch "^4.0.4" - parse-json "^5.2.0" - pretty-format "^29.7.0" - slash "^3.0.0" - strip-json-comments "^3.1.1" - -jest-diff@^29.7.0: - version "29.7.0" - resolved "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz" - integrity sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw== - dependencies: - chalk "^4.0.0" - diff-sequences "^29.6.3" - jest-get-type "^29.6.3" - pretty-format "^29.7.0" - -jest-docblock@^29.7.0: - version "29.7.0" - resolved "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz" - integrity sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g== - dependencies: - detect-newline "^3.0.0" - -jest-each@^29.7.0: - version "29.7.0" - resolved "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz" - integrity sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ== - dependencies: - "@jest/types" "^29.6.3" - chalk "^4.0.0" - jest-get-type "^29.6.3" - jest-util "^29.7.0" - pretty-format "^29.7.0" - -jest-environment-node@^29.7.0: - version "29.7.0" - resolved "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz" - integrity sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw== - dependencies: - "@jest/environment" "^29.7.0" - "@jest/fake-timers" "^29.7.0" - "@jest/types" "^29.6.3" - "@types/node" "*" - jest-mock "^29.7.0" - jest-util "^29.7.0" - -jest-get-type@^29.6.3: - version "29.6.3" - resolved "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz" - integrity sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw== - -jest-haste-map@^29.7.0: - version "29.7.0" - resolved "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz" - integrity sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA== - dependencies: - "@jest/types" "^29.6.3" - "@types/graceful-fs" "^4.1.3" - "@types/node" "*" - anymatch "^3.0.3" - fb-watchman "^2.0.0" - graceful-fs "^4.2.9" - jest-regex-util "^29.6.3" - jest-util "^29.7.0" - jest-worker "^29.7.0" - micromatch "^4.0.4" - walker "^1.0.8" - optionalDependencies: - fsevents "^2.3.2" - -jest-leak-detector@^29.7.0: - version "29.7.0" - resolved "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz" - integrity sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw== - dependencies: - jest-get-type "^29.6.3" - pretty-format "^29.7.0" - -jest-matcher-utils@^29.7.0: - version "29.7.0" - resolved "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz" - integrity sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g== - dependencies: - chalk "^4.0.0" - jest-diff "^29.7.0" - jest-get-type "^29.6.3" - pretty-format "^29.7.0" - -jest-message-util@^29.7.0: - version "29.7.0" - resolved "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz" - integrity sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w== - dependencies: - "@babel/code-frame" "^7.12.13" - "@jest/types" "^29.6.3" - "@types/stack-utils" "^2.0.0" - chalk "^4.0.0" - graceful-fs "^4.2.9" - micromatch "^4.0.4" - pretty-format "^29.7.0" - slash "^3.0.0" - stack-utils "^2.0.3" - -jest-mock@^29.7.0: - version "29.7.0" - resolved "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz" - integrity sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw== - dependencies: - "@jest/types" "^29.6.3" - "@types/node" "*" - jest-util "^29.7.0" - -jest-pnp-resolver@^1.2.2: - version "1.2.3" - resolved "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz" - integrity sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w== - -jest-regex-util@^29.6.3: - version "29.6.3" - resolved "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz" - integrity sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg== - -jest-resolve-dependencies@^29.7.0: - version "29.7.0" - resolved "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz" - integrity sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA== - dependencies: - jest-regex-util "^29.6.3" - jest-snapshot "^29.7.0" - -jest-resolve@^29.7.0: - version "29.7.0" - resolved "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz" - integrity sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA== - dependencies: - chalk "^4.0.0" - graceful-fs "^4.2.9" - jest-haste-map "^29.7.0" - jest-pnp-resolver "^1.2.2" - jest-util "^29.7.0" - jest-validate "^29.7.0" - resolve "^1.20.0" - resolve.exports "^2.0.0" - slash "^3.0.0" - -jest-runner@^29.7.0: - version "29.7.0" - resolved "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz" - integrity sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ== - dependencies: - "@jest/console" "^29.7.0" - "@jest/environment" "^29.7.0" - "@jest/test-result" "^29.7.0" - "@jest/transform" "^29.7.0" - "@jest/types" "^29.6.3" - "@types/node" "*" - chalk "^4.0.0" - emittery "^0.13.1" - graceful-fs "^4.2.9" - jest-docblock "^29.7.0" - jest-environment-node "^29.7.0" - jest-haste-map "^29.7.0" - jest-leak-detector "^29.7.0" - jest-message-util "^29.7.0" - jest-resolve "^29.7.0" - jest-runtime "^29.7.0" - jest-util "^29.7.0" - jest-watcher "^29.7.0" - jest-worker "^29.7.0" - p-limit "^3.1.0" - source-map-support "0.5.13" - -jest-runtime@^29.7.0: - version "29.7.0" - resolved "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz" - integrity sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ== - dependencies: - "@jest/environment" "^29.7.0" - "@jest/fake-timers" "^29.7.0" - "@jest/globals" "^29.7.0" - "@jest/source-map" "^29.6.3" - "@jest/test-result" "^29.7.0" - "@jest/transform" "^29.7.0" - "@jest/types" "^29.6.3" - "@types/node" "*" - chalk "^4.0.0" - cjs-module-lexer "^1.0.0" - collect-v8-coverage "^1.0.0" - glob "^7.1.3" - graceful-fs "^4.2.9" - jest-haste-map "^29.7.0" - jest-message-util "^29.7.0" - jest-mock "^29.7.0" - jest-regex-util "^29.6.3" - jest-resolve "^29.7.0" - jest-snapshot "^29.7.0" - jest-util "^29.7.0" - slash "^3.0.0" - strip-bom "^4.0.0" - -jest-snapshot@^29.7.0: - version "29.7.0" - resolved "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz" - integrity sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw== - dependencies: - "@babel/core" "^7.11.6" - "@babel/generator" "^7.7.2" - "@babel/plugin-syntax-jsx" "^7.7.2" - "@babel/plugin-syntax-typescript" "^7.7.2" - "@babel/types" "^7.3.3" - "@jest/expect-utils" "^29.7.0" - "@jest/transform" "^29.7.0" - "@jest/types" "^29.6.3" - babel-preset-current-node-syntax "^1.0.0" - chalk "^4.0.0" - expect "^29.7.0" - graceful-fs "^4.2.9" - jest-diff "^29.7.0" - jest-get-type "^29.6.3" - jest-matcher-utils "^29.7.0" - jest-message-util "^29.7.0" - jest-util "^29.7.0" - natural-compare "^1.4.0" - pretty-format "^29.7.0" - semver "^7.5.3" - -jest-util@^29.7.0: - version "29.7.0" - resolved "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz" - integrity sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA== - dependencies: - "@jest/types" "^29.6.3" - "@types/node" "*" - chalk "^4.0.0" - ci-info "^3.2.0" - graceful-fs "^4.2.9" - picomatch "^2.2.3" - -jest-validate@^29.7.0: - version "29.7.0" - resolved "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz" - integrity sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw== - dependencies: - "@jest/types" "^29.6.3" - camelcase "^6.2.0" - chalk "^4.0.0" - jest-get-type "^29.6.3" - leven "^3.1.0" - pretty-format "^29.7.0" - -jest-watcher@^29.7.0: - version "29.7.0" - resolved "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz" - integrity sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g== - dependencies: - "@jest/test-result" "^29.7.0" - "@jest/types" "^29.6.3" - "@types/node" "*" - ansi-escapes "^4.2.1" - chalk "^4.0.0" - emittery "^0.13.1" - jest-util "^29.7.0" - string-length "^4.0.1" - -jest-worker@^29.7.0: - version "29.7.0" - resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz" - integrity sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw== - dependencies: - "@types/node" "*" - jest-util "^29.7.0" - merge-stream "^2.0.0" - supports-color "^8.0.0" - -jest@^29.7.0: - version "29.7.0" - resolved "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz" - integrity sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw== - dependencies: - "@jest/core" "^29.7.0" - "@jest/types" "^29.6.3" - import-local "^3.0.2" - jest-cli "^29.7.0" - -jiti@^1.19.1: +jiti@^1.21.0: version "1.21.0" resolved "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz" integrity sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q== -js-tiktoken@^1.0.8: - version "1.0.12" - resolved "https://registry.yarnpkg.com/js-tiktoken/-/js-tiktoken-1.0.12.tgz#af0f5cf58e5e7318240d050c8413234019424211" - integrity sha512-L7wURW1fH9Qaext0VzaUDpFGVQgjkdE3Dgsy9/+yXyGEpBKnylTd0mU0bfbNkKDlXRb6TEsZkwuflu1B8uQbJQ== - dependencies: - base64-js "^1.5.1" - -"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: +"js-tokens@^3.0.0 || ^4.0.0": version "4.0.0" resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== -js-yaml@4.1.0, js-yaml@^4.1.0: +js-yaml@^4.1.0, js-yaml@4.1.0: version "4.1.0" resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz" integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== dependencies: argparse "^2.0.1" -js-yaml@^3.13.1: - version "3.14.1" - resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz" - integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" +jsbn@~0.1.0: + version "0.1.1" + resolved "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz" + integrity sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg== jsbn@1.1.0: version "1.1.0" resolved "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz" integrity sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A== -jsbn@~0.1.0: - version "0.1.1" - resolved "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz" - integrity sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg== - jsdom@^24.0.0: version "24.0.0" resolved "https://registry.npmjs.org/jsdom/-/jsdom-24.0.0.tgz" @@ -5345,21 +3598,16 @@ jsdom@^24.0.0: ws "^8.16.0" xml-name-validator "^5.0.0" -jsesc@^2.5.1: - version "2.5.2" - resolved "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz" - integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== +json-bignum@^0.0.3: + version "0.0.3" + resolved "https://registry.npmjs.org/json-bignum/-/json-bignum-0.0.3.tgz" + integrity sha512-2WHyXj3OfHSgNyuzDbSxI1w2jgw5gkWSWhS7Qg4bWXx1nLk3jnbwfUeS0PSba3IzpTUWdHxBieELUzXRjQB2zg== json-buffer@3.0.1: version "3.0.1" resolved "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz" integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== -json-parse-even-better-errors@^2.3.0: - version "2.3.1" - resolved "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz" - integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== - json-schema-to-typescript@^12.0.0: version "12.0.0" resolved "https://registry.npmjs.org/json-schema-to-typescript/-/json-schema-to-typescript-12.0.0.tgz" @@ -5400,11 +3648,6 @@ json-stringify-safe@~5.0.1: resolved "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== -json5@^2.2.3: - version "2.2.3" - resolved "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz" - integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== - jsonc-parser@^3.2.0: version "3.2.1" resolved "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.1.tgz" @@ -5511,11 +3754,6 @@ keyv@^4.0.0, keyv@^4.5.3: dependencies: json-buffer "3.0.1" -kleur@^3.0.3: - version "3.0.3" - resolved "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz" - integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== - kleur@^4.0.3: version "4.1.5" resolved "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz" @@ -5563,29 +3801,6 @@ linkify-it@^3.0.1: dependencies: uc.micro "^1.0.1" -llama-tokenizer-js@^1.1.3: - version "1.2.2" - resolved "https://registry.yarnpkg.com/llama-tokenizer-js/-/llama-tokenizer-js-1.2.2.tgz#4db5d5f0120e772fb46162ddc7b119f8d2044f4e" - integrity sha512-Wmth393dc3odWU3IzARJ3r2oIfWgw9GdJ5Gm+hGhfECNO18UHLRqEFSf511jn4E9KcQGzuuKw4Wl08pHAemLAw== - -llm-code-highlighter@^0.0.14: - version "0.0.14" - resolved "https://registry.yarnpkg.com/llm-code-highlighter/-/llm-code-highlighter-0.0.14.tgz#4ecc11a452be029eea1c6f81007c654726eff417" - integrity sha512-FxGAmu4zRp3Xi+9esP5SYrr4neC6SZqP+YnP/IfksT9k+AdnoemkQopUtilqKAWZp5c2VqG6NDMnHp6zyadebg== - dependencies: - graphology "^0.25.4" - graphology-metrics "^2.2.0" - lodash "^4.17.21" - tree-sitter-wasms "^0.1.6" - web-tree-sitter "^0.21.0" - -locate-path@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz" - integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== - dependencies: - p-locate "^4.1.0" - locate-path@^6.0.0: version "6.0.0" resolved "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz" @@ -5593,6 +3808,16 @@ locate-path@^6.0.0: dependencies: p-locate "^5.0.0" +lodash.assignwith@^4.2.0: + version "4.2.0" + resolved "https://registry.npmjs.org/lodash.assignwith/-/lodash.assignwith-4.2.0.tgz" + integrity sha512-ZznplvbvtjK2gMvnQ1BR/zqPFZmS6jbK4p+6Up4xcRYA7yMIwxHCfbTcrYxXKzzqLsQ05eJPVznEW3tuwV7k1g== + +lodash.camelcase@^4.3.0: + version "4.3.0" + resolved "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz" + integrity sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA== + lodash.includes@^4.3.0: version "4.3.0" resolved "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz" @@ -5633,12 +3858,12 @@ lodash.once@^4.0.0: resolved "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz" integrity sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg== -lodash@4.17.21, lodash@^4.17.21: +lodash@^4.17.21, lodash@4.17.21: version "4.17.21" resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== -log-symbols@4.1.0, log-symbols@^4.1.0: +log-symbols@^4.1.0, log-symbols@4.1.0: version "4.1.0" resolved "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz" integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== @@ -5646,11 +3871,6 @@ log-symbols@4.1.0, log-symbols@^4.1.0: chalk "^4.1.0" is-unicode-supported "^0.1.0" -long@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" - integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA== - long@^5.2.1: version "5.2.3" resolved "https://registry.npmjs.org/long/-/long-5.2.3.tgz" @@ -5668,12 +3888,10 @@ lowercase-keys@^2.0.0: resolved "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz" integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== -lru-cache@^5.1.1: - version "5.1.1" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz" - integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== - dependencies: - yallist "^3.0.2" +lru-cache@^10.2.0: + version "10.2.2" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz" + integrity sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ== lru-cache@^6.0.0: version "6.0.0" @@ -5682,7 +3900,12 @@ lru-cache@^6.0.0: dependencies: yallist "^4.0.0" -lru-cache@^7.14.1, lru-cache@^7.7.1: +lru-cache@^7.14.1: + version "7.18.3" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz" + integrity sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA== + +lru-cache@^7.7.1: version "7.18.3" resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz" integrity sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA== @@ -5692,11 +3915,6 @@ lru-cache@^8.0.0: resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-8.0.5.tgz" integrity sha512-MhWWlVnuab1RG5/zMRRcVGXZLCXrZTgfwMikgzCegsPnG62yDQo5JnqKkrK4jO5iKqDAZGItAqN5CtKBCBWRUA== -"lru-cache@^9.1.1 || ^10.0.0": - version "10.2.0" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz" - integrity sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q== - lru-queue@^0.1.0: version "0.1.0" resolved "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz" @@ -5704,13 +3922,6 @@ lru-queue@^0.1.0: dependencies: es5-ext "~0.10.2" -make-dir@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz" - integrity sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw== - dependencies: - semver "^7.5.3" - make-fetch-happen@^10.0.3: version "10.2.1" resolved "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz" @@ -5755,13 +3966,6 @@ make-fetch-happen@^9.1.0: socks-proxy-agent "^6.0.0" ssri "^8.0.0" -makeerror@1.0.12: - version "1.0.12" - resolved "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz" - integrity sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg== - dependencies: - tmpl "1.0.5" - markdown-it@^12.3.2: version "12.3.2" resolved "https://registry.npmjs.org/markdown-it/-/markdown-it-12.3.2.tgz" @@ -6060,12 +4264,12 @@ micromark@^3.0.0: uvu "^0.5.0" micromatch@^4.0.2, micromatch@^4.0.4, micromatch@^4.0.5: - version "4.0.5" - resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz" - integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== + version "4.0.6" + resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.6.tgz" + integrity sha512-Y4Ypn3oujJYxJcMacVgcs92wofTHxp9FzfDpQON4msDefoC0lb3ETvQLOdLcbhSwU1bz8HrL/1sygfBIHudrkQ== dependencies: - braces "^3.0.2" - picomatch "^2.3.1" + braces "^3.0.3" + picomatch "^4.0.2" mime-db@1.52.0: version "1.52.0" @@ -6079,7 +4283,7 @@ mime-types@^2.1.12, mime-types@~2.1.19, mime-types@~2.1.24, mime-types@~2.1.34: dependencies: mime-db "1.52.0" -mime@1.6.0, mime@^1.3.4: +mime@^1.3.4, mime@1.6.0: version "1.6.0" resolved "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz" integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== @@ -6099,21 +4303,21 @@ mimic-response@^3.1.0: resolved "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz" integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== -minimatch@5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz" - integrity sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g== - dependencies: - brace-expansion "^2.0.1" - -minimatch@^3.0.3, minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: +minimatch@^3.0.3, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== dependencies: brace-expansion "^1.1.7" -minimatch@^5.0.1, minimatch@^5.1.0: +minimatch@^5.0.1: + version "5.1.6" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz" + integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== + dependencies: + brace-expansion "^2.0.1" + +minimatch@^5.1.0: version "5.1.6" resolved "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz" integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== @@ -6121,9 +4325,16 @@ minimatch@^5.0.1, minimatch@^5.1.0: brace-expansion "^2.0.1" minimatch@^9.0.1: - version "9.0.3" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz" - integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== + version "9.0.4" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz" + integrity sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw== + dependencies: + brace-expansion "^2.0.1" + +minimatch@5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz" + integrity sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g== dependencies: brace-expansion "^2.0.1" @@ -6189,15 +4400,25 @@ minipass@^3.0.0, minipass@^3.1.0, minipass@^3.1.1, minipass@^3.1.3, minipass@^3. dependencies: yallist "^4.0.0" +"minipass@^5.0.0 || ^6.0.2 || ^7.0.0": + version "7.1.1" + resolved "https://registry.npmjs.org/minipass/-/minipass-7.1.1.tgz" + integrity sha512-UZ7eQ+h8ywIRAW1hIEl2AqdwzJucU/Kp59+8kkZeSvafXhZjul247BvIJjEVFVeON6d7lM46XX1HXCduKAS8VA== + minipass@^5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz" integrity sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ== -"minipass@^5.0.0 || ^6.0.2 || ^7.0.0": - version "7.0.4" - resolved "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz" - integrity sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ== +minipass@^7.0.4: + version "7.1.1" + resolved "https://registry.npmjs.org/minipass/-/minipass-7.1.1.tgz" + integrity sha512-UZ7eQ+h8ywIRAW1hIEl2AqdwzJucU/Kp59+8kkZeSvafXhZjul247BvIJjEVFVeON6d7lM46XX1HXCduKAS8VA== + +minisearch@^7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/minisearch/-/minisearch-7.0.0.tgz" + integrity sha512-0OIJ3hUE+YBJNruDCqbTMFmk/IoB1CpZzuGfl11khFIel66ew9UoLF/+gfq3bdyrneqr3P7BTjFZApUbmk+9Dg== minizlib@^2.0.0, minizlib@^2.1.1, minizlib@^2.1.2: version "2.1.2" @@ -6217,17 +4438,10 @@ mkdirp@^1.0.3, mkdirp@^1.0.4: resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== -mnemonist@^0.39.0: - version "0.39.8" - resolved "https://registry.yarnpkg.com/mnemonist/-/mnemonist-0.39.8.tgz#9078cd8386081afd986cca34b52b5d84ea7a4d38" - integrity sha512-vyWo2K3fjrUw8YeeZ1zF0fy6Mu59RHokURlld8ymdUPjMlD9EC9ov1/YPqTgqRvUN9nTr3Gqfz29LYAmu0PHPQ== - dependencies: - obliterator "^2.0.1" - -mocha@^10.3.0: - version "10.3.0" - resolved "https://registry.npmjs.org/mocha/-/mocha-10.3.0.tgz" - integrity sha512-uF2XJs+7xSLsrmIvn37i/wnc91nw7XjOQB8ccyx5aEgdnohr7n+rEiZP23WkCYHjilR6+EboEnbq/ZQDz4LSbg== +mocha@^10.4.0: + version "10.4.0" + resolved "https://registry.npmjs.org/mocha/-/mocha-10.4.0.tgz" + integrity sha512-eqhGB8JKapEYcC4ytX/xrzKforgEc3j1pGlAXVy3eRwrtAy5/nIfT1SvgGzfN0XZZxeLq0aQWkOUAmqIJiv+bA== dependencies: ansi-colors "4.1.1" browser-stdout "1.3.1" @@ -6269,30 +4483,30 @@ mri@^1.1.0: resolved "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz" integrity sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA== +ms@^2.0.0, ms@^2.1.1, ms@2.1.2: + version "2.1.2" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + ms@2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== -ms@2.1.2, ms@^2.0.0, ms@^2.1.1: - version "2.1.2" - resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - ms@2.1.3: version "2.1.3" resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== -mute-stream@0.0.8, mute-stream@~0.0.4: +mute-stream@~0.0.4, mute-stream@0.0.8: version "0.0.8" resolved "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz" integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== mysql2@^3.9.1: - version "3.10.1" - resolved "https://registry.yarnpkg.com/mysql2/-/mysql2-3.10.1.tgz#c39b8faf24ef4fd56330ef269122471a22d19198" - integrity sha512-6zo1T3GILsXMCex3YEu7hCz2OXLUarxFsxvFcUHWMpkPtmZLeTTWgRdc1gWyNJiYt6AxITmIf9bZDRy/jAfWew== + version "3.9.7" + resolved "https://registry.npmjs.org/mysql2/-/mysql2-3.9.7.tgz" + integrity sha512-KnJT8vYRcNAZv73uf9zpXqNbvBG7DJrs+1nACsjZP1HMJ1TgXEy8wnNilXAn/5i57JizXKtrUtwDB7HxT9DDpw== dependencies: denque "^2.1.0" generate-function "^2.3.1" @@ -6344,7 +4558,7 @@ ncp@^2.0.0: resolved "https://registry.npmjs.org/ncp/-/ncp-2.0.0.tgz" integrity sha512-zIdGUrPRFTUELUvr3Gmc7KZ2Sw/h1PiVM0Af/oHB6zgnV1ikqSfRk+TOufi79aHYCW3NiOXmr1BP5nWbzojLaA== -negotiator@0.6.3, negotiator@^0.6.2, negotiator@^0.6.3: +negotiator@^0.6.2, negotiator@^0.6.3, negotiator@0.6.3: version "0.6.3" resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz" integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== @@ -6354,15 +4568,15 @@ neo-async@^2.6.2: resolved "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz" integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== -next-tick@1, next-tick@^1.1.0: +next-tick@^1.1.0, next-tick@1: version "1.1.0" resolved "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz" integrity sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ== node-abi@^3.3.0, node-abi@^3.45.0: - version "3.56.0" - resolved "https://registry.npmjs.org/node-abi/-/node-abi-3.56.0.tgz" - integrity sha512-fZjdhDOeRcaS+rcpve7XuwHBmktS1nS1gzgghwKUQQ8nTy2FdSDr6ZT8k6YhvlJeHmmQMYiT/IH9hfco5zeW2Q== + version "3.62.0" + resolved "https://registry.npmjs.org/node-abi/-/node-abi-3.62.0.tgz" + integrity sha512-CPMcGa+y33xuL1E0TcNIu4YyaZCxnnvkVaEXrsosR3FxN+fV8xvb7Mzpb7IgKler10qeMkE6+Dp8qJhpzdq35g== dependencies: semver "^7.3.5" @@ -6371,11 +4585,6 @@ node-addon-api@^4.3.0: resolved "https://registry.npmjs.org/node-addon-api/-/node-addon-api-4.3.0.tgz" integrity sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ== -node-addon-api@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-6.1.0.tgz#ac8470034e58e67d0c6f1204a18ae6995d9c0d76" - integrity sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA== - node-addon-api@^7.0.0: version "7.1.0" resolved "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.0.tgz" @@ -6388,14 +4597,14 @@ node-api-version@^0.2.0: dependencies: semver "^7.3.5" -node-domexception@1.0.0, node-domexception@^1.0.0: +node-domexception@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz" integrity sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ== -node-fetch@^2.6.1, node-fetch@^2.6.7: +node-fetch@^2.6.1: version "2.7.0" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" + resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz" integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== dependencies: whatwg-url "^5.0.0" @@ -6409,69 +4618,44 @@ node-fetch@^3.3.2: fetch-blob "^3.1.4" formdata-polyfill "^4.0.10" -node-gyp@8.x: - version "8.4.1" - resolved "https://registry.npmjs.org/node-gyp/-/node-gyp-8.4.1.tgz" - integrity sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w== +node-gyp@^9.0.0: + version "9.4.1" + resolved "https://registry.npmjs.org/node-gyp/-/node-gyp-9.4.1.tgz" + integrity sha512-OQkWKbjQKbGkMf/xqI1jjy3oCTgMKJac58G2+bjZb3fza6gW2YrCSdMQYaoTb70crvE//Gngr4f0AgVHmqHvBQ== dependencies: env-paths "^2.2.0" + exponential-backoff "^3.1.1" glob "^7.1.4" graceful-fs "^4.2.6" - make-fetch-happen "^9.1.0" - nopt "^5.0.0" + make-fetch-happen "^10.0.3" + nopt "^6.0.0" npmlog "^6.0.0" rimraf "^3.0.2" semver "^7.3.5" tar "^6.1.2" which "^2.0.2" -node-gyp@^9.0.0: - version "9.4.1" - resolved "https://registry.npmjs.org/node-gyp/-/node-gyp-9.4.1.tgz" - integrity sha512-OQkWKbjQKbGkMf/xqI1jjy3oCTgMKJac58G2+bjZb3fza6gW2YrCSdMQYaoTb70crvE//Gngr4f0AgVHmqHvBQ== +node-gyp@8.x: + version "8.4.1" + resolved "https://registry.npmjs.org/node-gyp/-/node-gyp-8.4.1.tgz" + integrity sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w== dependencies: env-paths "^2.2.0" - exponential-backoff "^3.1.1" glob "^7.1.4" graceful-fs "^4.2.6" - make-fetch-happen "^10.0.3" - nopt "^6.0.0" + make-fetch-happen "^9.1.0" + nopt "^5.0.0" npmlog "^6.0.0" rimraf "^3.0.2" semver "^7.3.5" tar "^6.1.2" which "^2.0.2" -node-html-markdown@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/node-html-markdown/-/node-html-markdown-1.3.0.tgz#ef0b19a3bbfc0f1a880abb9ff2a0c9aa6bbff2a9" - integrity sha512-OeFi3QwC/cPjvVKZ114tzzu+YoR+v9UXW5RwSXGUqGb0qCl0DvP406tzdL7SFn8pZrMyzXoisfG2zcuF9+zw4g== - dependencies: - node-html-parser "^6.1.1" - -node-html-parser@^6.1.1: - version "6.1.13" - resolved "https://registry.yarnpkg.com/node-html-parser/-/node-html-parser-6.1.13.tgz#a1df799b83df5c6743fcd92740ba14682083b7e4" - integrity sha512-qIsTMOY4C/dAa5Q5vsobRpOOvPfC4pB61UVW2uSwZNUp0QU/jCekTal1vMmbO0DgdHeLUJpv/ARmDqErVxA3Sg== - dependencies: - css-select "^5.1.0" - he "1.2.0" - -node-int64@^0.4.0: - version "0.4.0" - resolved "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz" - integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw== - node-machine-id@^1.1.12: version "1.1.12" resolved "https://registry.npmjs.org/node-machine-id/-/node-machine-id-1.1.12.tgz" integrity sha512-QNABxbrPa3qEIfrE6GOJ7BYIuignnJw7iQ2YPbc3Nla1HzRJjXzZOiikfF8m7eAMfichLt3M4VgLOetqgDmgGQ== -node-releases@^2.0.14: - version "2.0.14" - resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz" - integrity sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw== - nopt@^5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz" @@ -6521,9 +4705,9 @@ nth-check@^2.0.1: boolbase "^1.0.0" nwsapi@^2.2.7: - version "2.2.7" - resolved "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.7.tgz" - integrity sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ== + version "2.2.10" + resolved "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.10.tgz" + integrity sha512-QK0sRs7MKv0tKe1+5uZIQk/C8XGza4DAnztJG8iD+TpJIORARrCxczA738awHrZoHeTjSSoHqao2teO0dC/gFQ== oauth-sign@~0.9.0: version "0.9.0" @@ -6545,42 +4729,6 @@ object-inspect@^1.13.1: resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz" integrity sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ== -object-keys@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" - integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== - -object.assign@^4.1.2: - version "4.1.5" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.5.tgz#3a833f9ab7fdb80fc9e8d2300c803d216d8fdbb0" - integrity sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ== - dependencies: - call-bind "^1.0.5" - define-properties "^1.2.1" - has-symbols "^1.0.3" - object-keys "^1.1.1" - -object.entries@^1.1.5: - version "1.1.8" - resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.8.tgz#bffe6f282e01f4d17807204a24f8edd823599c41" - integrity sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ== - dependencies: - call-bind "^1.0.7" - define-properties "^1.2.1" - es-object-atoms "^1.0.0" - -obliterator@^2.0.1, obliterator@^2.0.2: - version "2.0.4" - resolved "https://registry.yarnpkg.com/obliterator/-/obliterator-2.0.4.tgz#fa650e019b2d075d745e44f1effeb13a2adbe816" - integrity sha512-lgHwxlxV1qIg1Eap7LgIeoBWIMFibOjbrYPIPJZcI1mmGAI2m3lNYpK12Y+GBdPQ0U1hRwSord7GIaawz962qQ== - -ollama@^0.4.6: - version "0.4.9" - resolved "https://registry.yarnpkg.com/ollama/-/ollama-0.4.9.tgz#f0f2f6999eb9dfeefed4e2f5176ea4b523a2941b" - integrity sha512-hVf5xix5zwswfMN6ydt3K2TS886aOk9RT9xksajXxdIHhi2yokEsdzJYE7IGg+1bjQSPZ6JHzHbESYjNB0pTCg== - dependencies: - whatwg-fetch "^3.6.20" - on-finished@2.4.1: version "2.4.1" resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz" @@ -6593,45 +4741,14 @@ once@^1.3.0, once@^1.3.1, once@^1.4.0: resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== dependencies: - wrappy "1" - -onetime@^5.1.0, onetime@^5.1.2: - version "5.1.2" - resolved "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz" - integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== - dependencies: - mimic-fn "^2.1.0" - -onnx-proto@^4.0.4: - version "4.0.4" - resolved "https://registry.yarnpkg.com/onnx-proto/-/onnx-proto-4.0.4.tgz#2431a25bee25148e915906dda0687aafe3b9e044" - integrity sha512-aldMOB3HRoo6q/phyB6QRQxSt895HNNw82BNyZ2CMh4bjeKv7g/c+VpAFtJuEMVfYLMbRx61hbuqnKceLeDcDA== - dependencies: - protobufjs "^6.8.8" - -onnxruntime-common@~1.14.0: - version "1.14.0" - resolved "https://registry.yarnpkg.com/onnxruntime-common/-/onnxruntime-common-1.14.0.tgz#2bb5dac5261269779aa5fb6536ca379657de8bf6" - integrity sha512-3LJpegM2iMNRX2wUmtYfeX/ytfOzNwAWKSq1HbRrKc9+uqG/FsEA0bbKZl1btQeZaXhC26l44NWpNUeXPII7Ew== - -onnxruntime-node@1.14.0: - version "1.14.0" - resolved "https://registry.yarnpkg.com/onnxruntime-node/-/onnxruntime-node-1.14.0.tgz#c4ae6c355cfae7d83abaf36dd39a905c4a010217" - integrity sha512-5ba7TWomIV/9b6NH/1x/8QEeowsb+jBEvFzU6z0T4mNsFwdPqXeFUM7uxC6QeSRkEbWu3qEB0VMjrvzN/0S9+w== - dependencies: - onnxruntime-common "~1.14.0" + wrappy "1" -onnxruntime-web@1.14.0: - version "1.14.0" - resolved "https://registry.yarnpkg.com/onnxruntime-web/-/onnxruntime-web-1.14.0.tgz#c8cee538781b1d4c1c6b043934f4a3e6ddf1466e" - integrity sha512-Kcqf43UMfW8mCydVGcX9OMXI2VN17c0p6XvR7IPSZzBf/6lteBzXHvcEVWDPmCKuGombl997HgLqj91F11DzXw== +onetime@^5.1.0, onetime@^5.1.2: + version "5.1.2" + resolved "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz" + integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== dependencies: - flatbuffers "^1.12.0" - guid-typescript "^1.0.9" - long "^4.0.0" - onnx-proto "^4.0.4" - onnxruntime-common "~1.14.0" - platform "^1.3.6" + mimic-fn "^2.1.0" open@^8.0.0: version "8.4.2" @@ -6642,31 +4759,17 @@ open@^8.0.0: is-docker "^2.1.1" is-wsl "^2.2.0" -openai@^4.20.1: - version "4.52.1" - resolved "https://registry.yarnpkg.com/openai/-/openai-4.52.1.tgz#44acc362a844fa2927b0cfa1fb70fb51e388af65" - integrity sha512-kv2hevAWZZ3I/vd2t8znGO2rd8wkowncsfcYpo8i+wU9ML+JEcdqiViANXXjWWGjIhajFNixE6gOY1fEgqILAg== - dependencies: - "@types/node" "^18.11.18" - "@types/node-fetch" "^2.6.4" - abort-controller "^3.0.0" - agentkeepalive "^4.2.1" - form-data-encoder "1.7.2" - formdata-node "^4.3.2" - node-fetch "^2.6.7" - web-streams-polyfill "^3.2.1" - optionator@^0.9.3: - version "0.9.3" - resolved "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz" - integrity sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg== + version "0.9.4" + resolved "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz" + integrity sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g== dependencies: - "@aashutoshrathi/word-wrap" "^1.2.3" deep-is "^0.1.3" fast-levenshtein "^2.0.6" levn "^0.4.1" prelude-ls "^1.2.1" type-check "^0.4.0" + word-wrap "^1.2.5" ora@^5.1.0, ora@^5.4.1: version "5.4.1" @@ -6689,9 +4792,9 @@ os-tmpdir@~1.0.2: integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== ovsx@^0.8.3: - version "0.8.3" - resolved "https://registry.npmjs.org/ovsx/-/ovsx-0.8.3.tgz" - integrity sha512-LG7wTzy4eYV/KolFeO4AwWPzQSARvCONzd5oHQlNvYOlji2r/zjbdK8pyObZN84uZlk6rQBWrJrAdJfh/SX0Hg== + version "0.8.4" + resolved "https://registry.npmjs.org/ovsx/-/ovsx-0.8.4.tgz" + integrity sha512-RMtGSVNM4NWSF9uVWCUqaYiA7ID8Vqm/rSk2W37eYVrDLOI/3do2IRY7rQYkvJqb6sS6LAnALODBkD50tIM1kw== dependencies: "@vscode/vsce" "^2.19.0" commander "^6.1.0" @@ -6706,27 +4809,13 @@ p-cancelable@^2.0.0: resolved "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz" integrity sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg== -p-limit@^2.2.0: - version "2.3.0" - resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz" - integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== - dependencies: - p-try "^2.0.0" - -p-limit@^3.0.2, p-limit@^3.1.0: +p-limit@^3.0.2: version "3.1.0" resolved "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz" integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== dependencies: yocto-queue "^0.1.0" -p-locate@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz" - integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== - dependencies: - p-limit "^2.2.0" - p-locate@^5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz" @@ -6741,15 +4830,12 @@ p-map@^4.0.0: dependencies: aggregate-error "^3.0.0" -p-try@^2.0.0: - version "2.2.0" - resolved "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz" - integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== - -packet-reader@1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/packet-reader/-/packet-reader-1.0.0.tgz" - integrity sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ== +pad-left@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/pad-left/-/pad-left-2.1.0.tgz" + integrity sha512-HJxs9K9AztdIQIAIa/OIazRAUW/L6B9hbQDxO4X07roW3eo9XqZc2ur9bn1StH9CnbbI9EgvejHQX7CBpCF1QA== + dependencies: + repeat-string "^1.5.4" pako@~1.0.2: version "1.0.11" @@ -6763,16 +4849,6 @@ parent-module@^1.0.0: dependencies: callsites "^3.0.0" -parse-json@^5.2.0: - version "5.2.0" - resolved "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz" - integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== - dependencies: - "@babel/code-frame" "^7.0.0" - error-ex "^1.3.1" - json-parse-even-better-errors "^2.3.0" - lines-and-columns "^1.1.6" - parse-semver@^1.1.1: version "1.1.1" resolved "https://registry.npmjs.org/parse-semver/-/parse-semver-1.1.1.tgz" @@ -6820,12 +4896,12 @@ path-parse@^1.0.7: resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== -path-scurry@^1.10.1: - version "1.10.1" - resolved "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz" - integrity sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ== +path-scurry@^1.11.0: + version "1.11.1" + resolved "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz" + integrity sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA== dependencies: - lru-cache "^9.1.1 || ^10.0.0" + lru-cache "^10.2.0" minipass "^5.0.0 || ^6.0.2 || ^7.0.0" path-to-regexp@0.1.7: @@ -6858,25 +4934,25 @@ pg-cloudflare@^1.1.1: resolved "https://registry.npmjs.org/pg-cloudflare/-/pg-cloudflare-1.1.1.tgz" integrity sha512-xWPagP/4B6BgFO+EKz3JONXv3YDgvkbVrGw2mTo3D6tVDQRh1e7cqVGvyR3BE+eQgAvx1XhW/iEASj4/jCWl3Q== -pg-connection-string@^2.6.2: - version "2.6.2" - resolved "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.6.2.tgz" - integrity sha512-ch6OwaeaPYcova4kKZ15sbJ2hKb/VP48ZD2gE7i1J+L4MspCtBMAx8nMgz7bksc7IojCIIWuEhHibSMFH8m8oA== +pg-connection-string@^2.6.4: + version "2.6.4" + resolved "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.6.4.tgz" + integrity sha512-v+Z7W/0EO707aNMaAEfiGnGL9sxxumwLl2fJvCQtMn9Fxsg+lPpPkdcyBSv/KFgpGdYkMfn+EI1Or2EHjpgLCA== pg-int8@1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz" integrity sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw== -pg-pool@^3.6.1: - version "3.6.1" - resolved "https://registry.npmjs.org/pg-pool/-/pg-pool-3.6.1.tgz" - integrity sha512-jizsIzhkIitxCGfPRzJn1ZdcosIt3pz9Sh3V01fm1vZnbnCMgmGl5wvGGdNN2EL9Rmb0EcFoCkixH4Pu+sP9Og== +pg-pool@^3.6.2: + version "3.6.2" + resolved "https://registry.npmjs.org/pg-pool/-/pg-pool-3.6.2.tgz" + integrity sha512-Htjbg8BlwXqSBQ9V8Vjtc+vzf/6fVUuak/3/XXKA9oxZprwW3IMDQTGHP+KDmVL7rtd+R1QjbnCFPuTHm3G4hg== -pg-protocol@^1.6.0: - version "1.6.0" - resolved "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.6.0.tgz" - integrity sha512-M+PDm637OY5WM307051+bsDia5Xej6d9IR4GwJse1qA1DIhiKlksvrneZOYQq42OM+spubpcNYEo2FcKQrDk+Q== +pg-protocol@^1.6.1: + version "1.6.1" + resolved "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.6.1.tgz" + integrity sha512-jPIlvgoD63hrEuihvIg+tJhoGjUsLPn6poJY9N5CnlPd91c2T18T/9zBtLxZSb1EhYxBRoZJtzScCaWlYLtktg== pg-types@^2.1.0: version "2.2.0" @@ -6889,16 +4965,14 @@ pg-types@^2.1.0: postgres-date "~1.0.4" postgres-interval "^1.1.0" -pg@^8.11.3: - version "8.11.3" - resolved "https://registry.npmjs.org/pg/-/pg-8.11.3.tgz" - integrity sha512-+9iuvG8QfaaUrrph+kpF24cXkH1YOOUeArRNYIxq1viYHZagBxrTno7cecY1Fa44tJeZvaoG+Djpkc3JwehN5g== - dependencies: - buffer-writer "2.0.0" - packet-reader "1.0.0" - pg-connection-string "^2.6.2" - pg-pool "^3.6.1" - pg-protocol "^1.6.0" +pg@^8.11.3, pg@>=8.0: + version "8.11.5" + resolved "https://registry.npmjs.org/pg/-/pg-8.11.5.tgz" + integrity sha512-jqgNHSKL5cbDjFlHyYsCXmQDrfIX/3RsNwYqpd4N0Kt8niLuNoRNH+aazv6cOd43gPh9Y4DjQCtb+X0MH0Hvnw== + dependencies: + pg-connection-string "^2.6.4" + pg-pool "^3.6.2" + pg-protocol "^1.6.1" pg-types "^2.1.0" pgpass "1.x" optionalDependencies: @@ -6912,15 +4986,20 @@ pgpass@1.x: split2 "^4.1.0" picocolors@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz" - integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== + version "1.0.1" + resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz" + integrity sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew== -picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3, picomatch@^2.3.1: +picomatch@^2.0.4, picomatch@^2.2.1: version "2.3.1" resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== +picomatch@^4.0.2: + version "4.0.2" + resolved "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz" + integrity sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg== + pid-port@^0.2.0: version "0.2.0" resolved "https://registry.npmjs.org/pid-port/-/pid-port-0.2.0.tgz" @@ -6933,23 +5012,11 @@ pify@^2.3.0: resolved "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz" integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== -pirates@^4.0.1, pirates@^4.0.4: +pirates@^4.0.1: version "4.0.6" resolved "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz" integrity sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg== -pkg-dir@^4.2.0: - version "4.2.0" - resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz" - integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== - dependencies: - find-up "^4.0.0" - -platform@^1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/platform/-/platform-1.3.6.tgz#48b4ce983164b209c2d45a107adb31f473a6e7a7" - integrity sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg== - postcss-import@^15.1.0: version "15.1.0" resolved "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz" @@ -6982,9 +5049,9 @@ postcss-nested@^6.0.1: postcss-selector-parser "^6.0.11" postcss-selector-parser@^6.0.11: - version "6.0.15" - resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz" - integrity sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw== + version "6.0.16" + resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.16.tgz" + integrity sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw== dependencies: cssesc "^3.0.0" util-deprecate "^1.0.2" @@ -6994,14 +5061,14 @@ postcss-value-parser@^4.0.0: resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz" integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== -postcss@^8.4.23, postcss@^8.4.27: - version "8.4.35" - resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.35.tgz" - integrity sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA== +postcss@^8.0.0, postcss@^8.2.14, postcss@^8.4.21, postcss@^8.4.23, postcss@^8.4.27, postcss@>=8.0.9: + version "8.4.38" + resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz" + integrity sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A== dependencies: nanoid "^3.3.7" picocolors "^1.0.0" - source-map-js "^1.0.2" + source-map-js "^1.2.0" postgres-array@~2.0.0: version "2.0.0" @@ -7025,9 +5092,9 @@ postgres-interval@^1.1.0: dependencies: xtend "^4.0.0" -posthog-node@^3.1.2, posthog-node@^3.6.2: +posthog-node@^3.6.3: version "3.6.3" - resolved "https://registry.yarnpkg.com/posthog-node/-/posthog-node-3.6.3.tgz#4d3a2a4385e01c4d9e91d01dbde104e60285853d" + resolved "https://registry.npmjs.org/posthog-node/-/posthog-node-3.6.3.tgz" integrity sha512-JB+ei0LkwE+rKHyW5z79Nd1jUaGxU6TvkfjFqY9vQaHxU5aU8dRl0UUaEmZdZbHwjp3WmXCBQQRNyimwbNQfCw== dependencies: axios "^1.6.2" @@ -7061,15 +5128,6 @@ prettier@^2.6.2: resolved "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz" integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== -pretty-format@^29.0.0, pretty-format@^29.7.0: - version "29.7.0" - resolved "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz" - integrity sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ== - dependencies: - "@jest/schemas" "^29.6.3" - ansi-styles "^5.0.0" - react-is "^18.0.0" - process-exists@^4.1.0: version "4.1.0" resolved "https://registry.npmjs.org/process-exists/-/process-exists-4.1.0.tgz" @@ -7082,11 +5140,6 @@ process-nextick-args@~2.0.0: resolved "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz" integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== -process@^0.11.10: - version "0.11.10" - resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" - integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== - promise-inflight@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz" @@ -7100,14 +5153,6 @@ promise-retry@^2.0.1: err-code "^2.0.2" retry "^0.12.0" -prompts@^2.0.1: - version "2.4.2" - resolved "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz" - integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q== - dependencies: - kleur "^3.0.3" - sisteransi "^1.0.5" - prop-types@^15.0.0, prop-types@^15.7.2: version "15.8.1" resolved "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz" @@ -7118,28 +5163,9 @@ prop-types@^15.0.0, prop-types@^15.7.2: react-is "^16.13.1" property-information@^6.0.0: - version "6.4.1" - resolved "https://registry.npmjs.org/property-information/-/property-information-6.4.1.tgz" - integrity sha512-OHYtXfu5aI2sS2LWFSN5rgJjrQ4pCy8i1jubJLe2QvMF8JJ++HXTUIVWFLfXJoaOfvYYjk2SN8J2wFUWIGXT4w== - -protobufjs@^6.8.8: - version "6.11.4" - resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-6.11.4.tgz#29a412c38bf70d89e537b6d02d904a6f448173aa" - integrity sha512-5kQWPaJHi1WoCpjTGszzQ32PG2F4+wRY6BmAT4Vfw56Q2FZ4YZzK20xUYQH4YkfehY1e6QSICrJquM6xXZNcrw== - dependencies: - "@protobufjs/aspromise" "^1.1.2" - "@protobufjs/base64" "^1.1.2" - "@protobufjs/codegen" "^2.0.4" - "@protobufjs/eventemitter" "^1.1.0" - "@protobufjs/fetch" "^1.1.0" - "@protobufjs/float" "^1.0.2" - "@protobufjs/inquire" "^1.1.0" - "@protobufjs/path" "^1.1.2" - "@protobufjs/pool" "^1.1.0" - "@protobufjs/utf8" "^1.1.0" - "@types/long" "^4.0.1" - "@types/node" ">=13.7.0" - long "^4.0.0" + version "6.5.0" + resolved "https://registry.npmjs.org/property-information/-/property-information-6.5.0.tgz" + integrity sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig== proxy-addr@~2.0.7: version "2.0.7" @@ -7182,12 +5208,7 @@ punycode@^2.1.0, punycode@^2.1.1, punycode@^2.3.1: resolved "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz" integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== -pure-rand@^6.0.0: - version "6.0.4" - resolved "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.4.tgz" - integrity sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA== - -qs@6.11.0, qs@^6.9.1: +qs@^6.9.1, qs@6.11.0: version "6.11.0" resolved "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz" integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== @@ -7209,11 +5230,6 @@ queue-microtask@^1.2.2: resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz" integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== -queue-tick@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/queue-tick/-/queue-tick-1.0.1.tgz#f6f07ac82c1fd60f82e098b417a80e52f1f4c142" - integrity sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag== - quick-lru@^5.1.1: version "5.1.1" resolved "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz" @@ -7251,15 +5267,20 @@ rc@^1.2.7: minimist "^1.2.0" strip-json-comments "~2.0.1" -react-dom@^18.2.0: - version "18.2.0" - resolved "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz" - integrity sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g== +"react-dom@^16.8 || ^17.0 || ^18.0", react-dom@^18.2.0: + version "18.3.1" + resolved "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz" + integrity sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw== dependencies: loose-envify "^1.1.0" - scheduler "^0.23.0" + scheduler "^0.23.2" + +react-is@^16.13.1: + version "16.13.1" + resolved "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz" + integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== -react-is@^16.13.1, react-is@^16.7.0: +react-is@^16.7.0: version "16.13.1" resolved "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz" integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== @@ -7270,9 +5291,9 @@ react-is@^17.0.2: integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== react-is@^18.0.0: - version "18.2.0" - resolved "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz" - integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w== + version "18.3.1" + resolved "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz" + integrity sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg== react-markdown@^8.0.7: version "8.0.7" @@ -7295,7 +5316,7 @@ react-markdown@^8.0.7: unist-util-visit "^4.0.0" vfile "^5.0.0" -react-redux@^8.0.5: +"react-redux@^7.2.1 || ^8.0.2", react-redux@^8.0.5: version "8.1.3" resolved "https://registry.npmjs.org/react-redux/-/react-redux-8.1.3.tgz" integrity sha512-n0ZrutD7DaX/j9VscF+uTALI3oUPa/pO4Z3soOBIjuRn/FzVu6aehhysxZCLi6y7duMf52WNZGMl7CtuK5EnRw== @@ -7307,10 +5328,10 @@ react-redux@^8.0.5: react-is "^18.0.0" use-sync-external-store "^1.0.0" -react@^18.2.0: - version "18.2.0" - resolved "https://registry.npmjs.org/react/-/react-18.2.0.tgz" - integrity sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ== +"react@^16.8 || ^17.0 || ^18.0", "react@^16.8.0 || ^17.0.0 || ^18.0.0", "react@^16.9.0 || ^17.0.0 || ^18", react@^18.2.0, react@^18.3.1, react@>=16, react@>=16.12.0: + version "18.3.1" + resolved "https://registry.npmjs.org/react/-/react-18.3.1.tgz" + integrity sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ== dependencies: loose-envify "^1.1.0" @@ -7328,6 +5349,13 @@ read-cache@^1.0.0: dependencies: pify "^2.3.0" +read-last-lines@^1.8.0: + version "1.8.0" + resolved "https://registry.npmjs.org/read-last-lines/-/read-last-lines-1.8.0.tgz" + integrity sha512-oPL0cnZkhsO2xF7DBrdzVhXSNajPP5TzzCim/2IAjeGb17ArLLTRriI/ceV6Rook3L27mvbrOvLlf9xYYnaftQ== + dependencies: + mz "^2.7.0" + read@^1.0.7: version "1.0.7" resolved "https://registry.npmjs.org/read/-/read-1.0.7.tgz" @@ -7335,18 +5363,25 @@ read@^1.0.7: dependencies: mute-stream "~0.0.4" -readable-stream@>=4.0.0: - version "4.5.2" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-4.5.2.tgz#9e7fc4c45099baeed934bff6eb97ba6cf2729e09" - integrity sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g== +readable-stream@^3.1.1: + version "3.6.2" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz" + integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readable-stream@^3.4.0: + version "3.6.2" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz" + integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== dependencies: - abort-controller "^3.0.0" - buffer "^6.0.3" - events "^3.3.0" - process "^0.11.10" - string_decoder "^1.3.0" + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" -readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0: +readable-stream@^3.6.0: version "3.6.2" resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz" integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== @@ -7380,13 +5415,18 @@ redux-thunk@^2.4.2: resolved "https://registry.npmjs.org/redux-thunk/-/redux-thunk-2.4.2.tgz" integrity sha512-+P3TjtnP0k/FEjcBL5FZpoovtvrTNT/UXd4/sluaSyrURlSlhLSzEdfsTBW7WsKB6yPvgd7q/iZPICFjW4o57Q== -redux@^4.2.1: +redux@^4, "redux@^4 || ^5.0.0-beta.0", redux@^4.2.1: version "4.2.1" resolved "https://registry.npmjs.org/redux/-/redux-4.2.1.tgz" integrity sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w== dependencies: "@babel/runtime" "^7.9.2" +reflect-metadata@^0.1.12: + version "0.1.14" + resolved "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.14.tgz" + integrity sha512-ZhYeb6nRaXCfhnndflDK8qI6ZQ/YcWZCISRAWICW9XYqMUwjZM9Z0DveWX/ABN01oxSHwVxKQmxeYZSsm0jh5A== + reflect-metadata@0.1.13: version "0.1.13" resolved "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz" @@ -7416,12 +5456,10 @@ remark-rehype@^10.0.0: mdast-util-to-hast "^12.1.0" unified "^10.0.0" -replicate@^0.26.0: - version "0.26.0" - resolved "https://registry.yarnpkg.com/replicate/-/replicate-0.26.0.tgz#066d3d49f3439fc77bae4d966f564bd24f0f60df" - integrity sha512-BR7zI/pJp11IuCZZ38hdJVZ07ZCfe6b3tbPuUpRIbt76sVKoGtQhn4Cp2H6/r6qU1fOO6dHadl2VKK4Y0j9Lkg== - optionalDependencies: - readable-stream ">=4.0.0" +repeat-string@^1.5.4: + version "1.6.1" + resolved "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz" + integrity sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w== request@^2.88.2: version "2.88.2" @@ -7469,29 +5507,12 @@ resolve-alpn@^1.0.0: resolved "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz" integrity sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g== -resolve-cwd@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz" - integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== - dependencies: - resolve-from "^5.0.0" - resolve-from@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz" integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== -resolve-from@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz" - integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== - -resolve.exports@^2.0.0: - version "2.0.2" - resolved "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz" - integrity sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg== - -resolve@^1.1.7, resolve@^1.20.0, resolve@^1.22.2: +resolve@^1.1.7, resolve@^1.22.2: version "1.22.8" resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz" integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== @@ -7533,9 +5554,9 @@ rimraf@^3.0.2: glob "^7.1.3" rimraf@^5.0.5: - version "5.0.5" - resolved "https://registry.npmjs.org/rimraf/-/rimraf-5.0.5.tgz" - integrity sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A== + version "5.0.7" + resolved "https://registry.npmjs.org/rimraf/-/rimraf-5.0.7.tgz" + integrity sha512-nV6YcJo5wbLW77m+8KjH8aB/7/rxQy9SZ0HY5shnwULfS+9nmTtVXAJET5NdZmCzA4fPI/Hm1wo/Po/4mopOdg== dependencies: glob "^10.3.7" @@ -7568,7 +5589,7 @@ rusha@^0.8.14: resolved "https://registry.npmjs.org/rusha/-/rusha-0.8.14.tgz" integrity sha512-cLgakCUf6PedEu15t8kbsjnwIFFR2D4RfL+W3iWFJ4iac7z4B0ZI8fxy4R3J956kAI68HclCFGL8MPoUVC3qVA== -rxjs@7.8.1, rxjs@^7.5.5: +"rxjs@^6.0.0 || ^7.0.0", rxjs@^7.1.0, rxjs@^7.5.5, rxjs@7.8.1: version "7.8.1" resolved "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz" integrity sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg== @@ -7589,17 +5610,22 @@ sade@^1.7.3: dependencies: mri "^1.1.0" -safe-buffer@5.2.1, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.2, safe-buffer@~5.2.0: +safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.2, safe-buffer@5.2.1: version "5.2.1" resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== -safe-buffer@~5.1.0, safe-buffer@~5.1.1: +safe-buffer@~5.1.0: + version "5.1.2" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== -"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: +safer-buffer@^2.0.2, safer-buffer@^2.1.0, "safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@~2.1.0: version "2.1.2" resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== @@ -7616,10 +5642,10 @@ saxes@^6.0.0: dependencies: xmlchars "^2.2.0" -scheduler@^0.23.0: - version "0.23.0" - resolved "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz" - integrity sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw== +scheduler@^0.23.2: + version "0.23.2" + resolved "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz" + integrity sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ== dependencies: loose-envify "^1.1.0" @@ -7628,17 +5654,10 @@ semver@^5.1.0: resolved "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz" integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== -semver@^6.3.0, semver@^6.3.1: - version "6.3.1" - resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz" - integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== - -semver@^7.3.5, semver@^7.3.7, semver@^7.5.2, semver@^7.5.3, semver@^7.5.4: - version "7.6.0" - resolved "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz" - integrity sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg== - dependencies: - lru-cache "^6.0.0" +semver@^7.3.5, semver@^7.3.7, semver@^7.5.2, semver@^7.5.4: + version "7.6.2" + resolved "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz" + integrity sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w== send@0.18.0: version "0.18.0" @@ -7708,20 +5727,6 @@ setprototypeof@1.2.0: resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz" integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== -sharp@^0.32.0: - version "0.32.6" - resolved "https://registry.yarnpkg.com/sharp/-/sharp-0.32.6.tgz#6ad30c0b7cd910df65d5f355f774aa4fce45732a" - integrity sha512-KyLTWwgcR9Oe4d9HwCwNM2l7+J0dUQwn/yf7S0EnTtb0eVS4RxO0eUSvxPtzT4F3SY+C4K6fqdv/DO27sJ/v/w== - dependencies: - color "^4.2.3" - detect-libc "^2.0.2" - node-addon-api "^6.1.0" - prebuild-install "^7.1.1" - semver "^7.5.4" - simple-get "^4.0.1" - tar-fs "^3.0.4" - tunnel-agent "^0.6.0" - shebang-command@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" @@ -7759,7 +5764,7 @@ simple-concat@^1.0.0: resolved "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz" integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== -simple-get@^4.0.0, simple-get@^4.0.1: +simple-get@^4.0.0: version "4.0.1" resolved "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz" integrity sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA== @@ -7768,18 +5773,6 @@ simple-get@^4.0.0, simple-get@^4.0.1: once "^1.3.1" simple-concat "^1.0.0" -simple-swizzle@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" - integrity sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg== - dependencies: - is-arrayish "^0.3.1" - -sisteransi@^1.0.5: - version "1.0.5" - resolved "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz" - integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== - slash@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz" @@ -7791,18 +5784,8 @@ smart-buffer@^4.2.0: integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg== socket.io-client@^4.7.2: - version "4.7.4" - resolved "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.7.4.tgz" - integrity sha512-wh+OkeF0rAVCrABWQBaEjLfb7DVPotMbu0cgWgyR0v6eA4EoVnAwcIeIbcdTE3GT/H3kbdLl7OoH2+asoDRIIg== - dependencies: - "@socket.io/component-emitter" "~3.1.0" - debug "~4.3.2" - engine.io-client "~6.5.2" - socket.io-parser "~4.2.4" - -socket.io-client@^4.7.3: version "4.7.5" - resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-4.7.5.tgz#919be76916989758bdc20eec63f7ee0ae45c05b7" + resolved "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.7.5.tgz" integrity sha512-sJ/tqHOCe7Z50JCBCXrsY3I2k03iOiUe+tj1OmKeD2lXPiGH/RUCdTZFoqVyN7l1MnpIzPrGtLcijffmeouNlQ== dependencies: "@socket.io/component-emitter" "~3.1.0" @@ -7837,27 +5820,19 @@ socks-proxy-agent@^7.0.0: socks "^2.6.2" socks@^2.6.2: - version "2.8.1" - resolved "https://registry.npmjs.org/socks/-/socks-2.8.1.tgz" - integrity sha512-B6w7tkwNid7ToxjZ08rQMT8M9BJAf8DKx8Ft4NivzH0zBUfd6jldGcisJn/RLgxcX3FPNDdNQCUEMMT79b+oCQ== + version "2.8.3" + resolved "https://registry.npmjs.org/socks/-/socks-2.8.3.tgz" + integrity sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw== dependencies: ip-address "^9.0.5" smart-buffer "^4.2.0" -source-map-js@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz" - integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== - -source-map-support@0.5.13: - version "0.5.13" - resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz" - integrity sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" +source-map-js@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz" + integrity sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg== -source-map@^0.6.0, source-map@^0.6.1: +source-map@^0.6.1: version "0.6.1" resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== @@ -7882,11 +5857,6 @@ sprintf-js@^1.1.3: resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz" integrity sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA== -sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz" - integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== - sqlite3@^5.1.7: version "5.1.7" resolved "https://registry.npmjs.org/sqlite3/-/sqlite3-5.1.7.tgz" @@ -7899,11 +5869,6 @@ sqlite3@^5.1.7: optionalDependencies: node-gyp "8.x" -sqlite@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/sqlite/-/sqlite-5.1.1.tgz#26a6a200fdac490643880af2b6cb3940ada59274" - integrity sha512-oBkezXa2hnkfuJwUo44Hl9hS3er+YFtueifoajrgidvqsJRQFpc5fKoAkAor1O5ZnLoa28GBScfHXs8j0K358Q== - sqlstring@^2.3.2: version "2.3.3" resolved "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.3.tgz" @@ -7938,13 +5903,6 @@ ssri@^9.0.0: dependencies: minipass "^3.1.1" -stack-utils@^2.0.3: - version "2.0.6" - resolved "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz" - integrity sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ== - dependencies: - escape-string-regexp "^2.0.0" - statuses@2.0.1: version "2.0.1" resolved "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz" @@ -7955,24 +5913,17 @@ stoppable@^1.1.0: resolved "https://registry.npmjs.org/stoppable/-/stoppable-1.1.0.tgz" integrity sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw== -streamx@^2.15.0, streamx@^2.18.0: - version "2.18.0" - resolved "https://registry.yarnpkg.com/streamx/-/streamx-2.18.0.tgz#5bc1a51eb412a667ebfdcd4e6cf6a6fc65721ac7" - integrity sha512-LLUC1TWdjVdn1weXGcSxyTR3T4+acB6tVGXT95y0nGbca4t4o/ng1wKAGTljm9VicuCVLvRlqFYXYy5GwgM7sQ== - dependencies: - fast-fifo "^1.3.2" - queue-tick "^1.0.1" - text-decoder "^1.1.0" - optionalDependencies: - bare-events "^2.2.0" +stream-read-all@^3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/stream-read-all/-/stream-read-all-3.0.1.tgz" + integrity sha512-EWZT9XOceBPlVJRrYcykW8jyRSZYbkb/0ZK36uLEmoWVO5gxBOnntNTseNzfREsqxqdfEGQrD8SXQ3QWbBmq8A== -string-length@^4.0.1: - version "4.0.2" - resolved "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz" - integrity sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ== +string_decoder@^1.1.1, string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== dependencies: - char-regex "^1.0.2" - strip-ansi "^6.0.0" + safe-buffer "~5.1.0" "string-width-cjs@npm:string-width@^4.2.0": version "4.2.3" @@ -8001,20 +5952,6 @@ string-width@^5.0.1, string-width@^5.1.2: emoji-regex "^9.2.2" strip-ansi "^7.0.1" -string_decoder@^1.1.1, string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== - dependencies: - safe-buffer "~5.1.0" - -string_decoder@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - "strip-ansi-cjs@npm:strip-ansi@^6.0.1": version "6.0.1" resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" @@ -8036,17 +5973,12 @@ strip-ansi@^7.0.1, strip-ansi@^7.1.0: dependencies: ansi-regex "^6.0.1" -strip-bom@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz" - integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== - strip-final-newline@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz" integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== -strip-json-comments@3.1.1, strip-json-comments@^3.1.1: +strip-json-comments@^3.1.1, strip-json-comments@3.1.1: version "3.1.1" resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== @@ -8076,13 +6008,6 @@ sucrase@^3.32.0: pirates "^4.0.1" ts-interface-checker "^0.1.9" -supports-color@8.1.1, supports-color@^8.0.0, supports-color@^8.1.0: - version "8.1.1" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz" - integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== - dependencies: - has-flag "^4.0.0" - supports-color@^5.3.0: version "5.5.0" resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" @@ -8097,6 +6022,20 @@ supports-color@^7.1.0: dependencies: has-flag "^4.0.0" +supports-color@^8.1.0: + version "8.1.1" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + +supports-color@8.1.1: + version "8.1.1" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + supports-preserve-symlinks-flag@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz" @@ -8107,10 +6046,28 @@ symbol-tree@^3.2.4: resolved "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz" integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== +systeminformation@^5.22.10: + version "5.22.11" + resolved "https://registry.npmjs.org/systeminformation/-/systeminformation-5.22.11.tgz" + integrity sha512-aLws5yi4KCHTb0BVvbodQY5bY8eW4asMRDTxTW46hqw9lGjACX6TlLdJrkdoHYRB0qs+MekqEq1zG7WDnWE8Ug== + +table-layout@^3.0.0: + version "3.0.2" + resolved "https://registry.npmjs.org/table-layout/-/table-layout-3.0.2.tgz" + integrity sha512-rpyNZYRw+/C+dYkcQ3Pr+rLxW4CfHpXjPDnG7lYhdRoUcZTUt+KEsX+94RGp/aVp/MQU35JCITv2T/beY4m+hw== + dependencies: + "@75lb/deep-merge" "^1.1.1" + array-back "^6.2.2" + command-line-args "^5.2.1" + command-line-usage "^7.0.0" + stream-read-all "^3.0.1" + typical "^7.1.1" + wordwrapjs "^5.1.0" + tailwindcss@^3.3.2: - version "3.4.1" - resolved "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.1.tgz" - integrity sha512-qAYmXRfk3ENzuPBakNK0SRrUDipP8NQnEY6772uDhflcQz5EhRdD7JNZxyrFHVQNCwULPBn6FNPp9brpO7ctcA== + version "3.4.3" + resolved "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.3.tgz" + integrity sha512-U7sxQk/n397Bmx4JHbJx/iSOOv5G+II3f1kpLpY2QeUv5DcPdcTsYLlusZfq1NthHS1c1cZoyFmmkex1rzke0A== dependencies: "@alloc/quick-lru" "^5.2.0" arg "^5.0.2" @@ -8120,7 +6077,7 @@ tailwindcss@^3.3.2: fast-glob "^3.3.0" glob-parent "^6.0.2" is-glob "^4.0.3" - jiti "^1.19.1" + jiti "^1.21.0" lilconfig "^2.1.0" micromatch "^4.0.5" normalize-path "^3.0.0" @@ -8145,17 +6102,6 @@ tar-fs@^2.0.0: pump "^3.0.0" tar-stream "^2.1.4" -tar-fs@^3.0.4: - version "3.0.6" - resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-3.0.6.tgz#eaccd3a67d5672f09ca8e8f9c3d2b89fa173f217" - integrity sha512-iokBDQQkUyeXhgPYaZxmczGPhnhXZ0CmrqI+MOb/WFGS9DW5wnfrLgtjUJBvz50vQ3qfRwJ62QVoCFu8mPVu5w== - dependencies: - pump "^3.0.0" - tar-stream "^3.1.5" - optionalDependencies: - bare-fs "^2.1.1" - bare-path "^2.1.0" - tar-stream@^2.1.4: version "2.2.0" resolved "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz" @@ -8167,19 +6113,10 @@ tar-stream@^2.1.4: inherits "^2.0.3" readable-stream "^3.1.1" -tar-stream@^3.1.5: - version "3.1.7" - resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-3.1.7.tgz#24b3fb5eabada19fe7338ed6d26e5f7c482e792b" - integrity sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ== - dependencies: - b4a "^1.6.4" - fast-fifo "^1.2.0" - streamx "^2.15.0" - tar@^6.0.2, tar@^6.0.5, tar@^6.1.11, tar@^6.1.2: - version "6.2.0" - resolved "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz" - integrity sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ== + version "6.2.1" + resolved "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz" + integrity sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A== dependencies: chownr "^2.0.0" fs-minipass "^2.0.0" @@ -8196,22 +6133,6 @@ taskkill@^4.0.0: arrify "^3.0.0" execa "^5.1.1" -test-exclude@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz" - integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== - dependencies: - "@istanbuljs/schema" "^0.1.2" - glob "^7.1.4" - minimatch "^3.0.4" - -text-decoder@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/text-decoder/-/text-decoder-1.1.0.tgz#3379e728fcf4d3893ec1aea35e8c2cac215ef190" - integrity sha512-TmLJNj6UgX8xcUZo4UDStGQtDiTzF7BzWlzn9g7UWrjkpHr5uJTK1ld16wZ3LXb2vb6jH8qU89dW5whuMdXYdw== - dependencies: - b4a "^1.6.4" - text-table@^0.2.0: version "0.2.0" resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz" @@ -8256,16 +6177,6 @@ tmp@^0.2.1: resolved "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz" integrity sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w== -tmpl@1.0.5: - version "1.0.5" - resolved "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz" - integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw== - -to-fast-properties@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz" - integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== - to-regex-range@^5.0.1: version "5.0.1" resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" @@ -8279,9 +6190,9 @@ toidentifier@1.0.1: integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== tough-cookie@^4.1.3: - version "4.1.3" - resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz" - integrity sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw== + version "4.1.4" + resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.4.tgz" + integrity sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag== dependencies: psl "^1.1.33" punycode "^2.1.1" @@ -8313,11 +6224,6 @@ tree-kill@^1.2.2: resolved "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz" integrity sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A== -tree-sitter-wasms@^0.1.6: - version "0.1.11" - resolved "https://registry.yarnpkg.com/tree-sitter-wasms/-/tree-sitter-wasms-0.1.11.tgz#fcf096d2149009476672928c49be13d027d5d01a" - integrity sha512-26sE4+qoTi1CbzHdo9sHs9pRE/jXVFVRigSG/5TNAbwhSMVjHfMAg4UjmOhAFAIx5UxgoQuaURwqhm0SRNrpWA== - trim-lines@^3.0.0: version "3.0.1" resolved "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz" @@ -8333,20 +6239,25 @@ ts-interface-checker@^0.1.9: resolved "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz" integrity sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA== -tslib@2.4.0: - version "2.4.0" - resolved "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz" - integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== +tslib@^1.8.1: + version "1.14.1" + resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== + +tslib@^1.9.0: + version "1.14.1" + resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@2.6.2, tslib@^2.1.0, tslib@^2.2.0, tslib@^2.3.0, tslib@^2.6.2: +tslib@^2.1.0, tslib@^2.2.0, tslib@^2.3.0, tslib@^2.5.3, tslib@^2.6.2, tslib@2.6.2: version "2.6.2" resolved "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz" integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== -tslib@^1.8.1, tslib@^1.9.0: - version "1.14.1" - resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz" - integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== +tslib@2.4.0: + version "2.4.0" + resolved "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz" + integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== tsutils@^3.21.0: version "3.21.0" @@ -8379,11 +6290,6 @@ type-check@^0.4.0, type-check@~0.4.0: dependencies: prelude-ls "^1.2.1" -type-detect@4.0.8: - version "4.0.8" - resolved "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz" - integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== - type-fest@^0.20.2: version "0.20.2" resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz" @@ -8416,10 +6322,20 @@ typed-rest-client@^1.8.4: tunnel "0.0.6" underscore "^1.12.1" -typescript@^5.3.3: - version "5.4.2" - resolved "https://registry.npmjs.org/typescript/-/typescript-5.4.2.tgz" - integrity sha512-+2/g0Fds1ERlP6JsakQQDXjZdZMM+rqpamFZJEKh4kwTIn3iDkgKtby0CeNd5ATNZ4Ry1ax15TMx0W2V+miizQ== +typescript@^5.3.3, "typescript@>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta": + version "5.4.5" + resolved "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz" + integrity sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ== + +typical@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz" + integrity sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw== + +typical@^7.1.1: + version "7.1.1" + resolved "https://registry.npmjs.org/typical/-/typical-7.1.1.tgz" + integrity sha512-T+tKVNs6Wu7IWiAce5BgMd7OZfNYUndHwc5MknN+UHOudi7sGZzuHdCadllRuqJ3fPtgFtIH9+lt9qRv6lmpfA== uc.micro@^1.0.1, uc.micro@^1.0.5: version "1.0.6" @@ -8443,15 +6359,10 @@ underscore@^1.12.1: resolved "https://registry.npmjs.org/underscore/-/underscore-1.13.6.tgz" integrity sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A== -undici-types@~5.26.4: - version "5.26.5" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" - integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== - undici@^6.2.0: - version "6.7.1" - resolved "https://registry.npmjs.org/undici/-/undici-6.7.1.tgz" - integrity sha512-+Wtb9bAQw6HYWzCnxrPTMVEV3Q1QjYanI0E4q02ehReMuquQdLTEFEYbfs7hcImVYKcQkWSwT6buEmSVIiDDtQ== + version "6.18.0" + resolved "https://registry.npmjs.org/undici/-/undici-6.18.0.tgz" + integrity sha512-nT8jjv/fE9Et1ilR6QoW8ingRTY2Pp4l2RUrdzV5Yz35RJDrtPc1DXvuNqcpsJSGIRHFdt3YKKktTzJA6r0fTA== unified@^10.0.0: version "10.1.2" @@ -8537,11 +6448,6 @@ unist-util-visit@^4.0.0: unist-util-is "^5.0.0" unist-util-visit-parents "^5.1.1" -universal-user-agent@^6.0.0: - version "6.0.1" - resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-6.0.1.tgz#15f20f55da3c930c57bddbf1734c6654d5fd35aa" - integrity sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ== - universalify@^0.1.0: version "0.1.2" resolved "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz" @@ -8557,19 +6463,11 @@ universalify@^2.0.0: resolved "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz" integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw== -unpipe@1.0.0, unpipe@~1.0.0: +unpipe@~1.0.0, unpipe@1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== -update-browserslist-db@^1.0.13: - version "1.0.13" - resolved "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz" - integrity sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg== - dependencies: - escalade "^3.1.1" - picocolors "^1.0.0" - uri-js@^4.2.2: version "4.4.1" resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz" @@ -8591,9 +6489,9 @@ url-parse@^1.5.3: requires-port "^1.0.0" use-sync-external-store@^1.0.0: - version "1.2.0" - resolved "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz" - integrity sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA== + version "1.2.2" + resolved "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.2.tgz" + integrity sha512-PElTlVMwpblvbNqQ82d2n6RjStvdSoNe9FG28kNfz3WiXilJm4DdNkEzRhCZuIDwY8U08WVihhGR5iRqAwfDiw== util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: version "1.0.2" @@ -8605,21 +6503,26 @@ utils-merge@1.0.1: resolved "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz" integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== -uuid@8.3.2, uuid@^8.3.0: - version "8.3.2" - resolved "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz" - integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== - uuid@^3.3.2: version "3.4.0" resolved "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz" integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== +uuid@^8.3.0: + version "8.3.2" + resolved "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + uuid@^9.0.1: version "9.0.1" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.1.tgz#e188d4c8853cc722220392c424cd637f32293f30" + resolved "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz" integrity sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA== +uuid@8.3.2: + version "8.3.2" + resolved "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + uuidv4@^6.2.13: version "6.2.13" resolved "https://registry.npmjs.org/uuidv4/-/uuidv4-6.2.13.tgz" @@ -8638,33 +6541,24 @@ uvu@^0.5.0: kleur "^4.0.3" sade "^1.7.3" -v8-to-istanbul@^9.0.1: - version "9.2.0" - resolved "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.2.0.tgz" - integrity sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA== - dependencies: - "@jridgewell/trace-mapping" "^0.3.12" - "@types/istanbul-lib-coverage" "^2.0.1" - convert-source-map "^2.0.0" - vary@^1, vary@~1.1.2: version "1.1.2" resolved "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz" integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== -vectordb@0.4.12: - version "0.4.12" - resolved "https://registry.npmjs.org/vectordb/-/vectordb-0.4.12.tgz" - integrity sha512-H2mFwZ87d3BcuX4yGx5RoW06amRZQ3W5u/FRTNc86rwVINuEEa+Ivsqng1i8hURHXoTDbF/0Y9qwCshySkeznQ== +vectordb@^0.4.20: + version "0.4.20" + resolved "https://registry.npmjs.org/vectordb/-/vectordb-0.4.20.tgz" + integrity sha512-A8X5uvNMl7btbKBshaOx0A6R6Q2eQqOE5Ifwu6r1fZALOS+V0rnoQmUKa1K1v31Vcr3S5GvQsFIl+v6yWataqA== dependencies: "@neon-rs/load" "^0.0.74" axios "^1.4.0" optionalDependencies: - "@lancedb/vectordb-darwin-arm64" "0.4.12" - "@lancedb/vectordb-darwin-x64" "0.4.12" - "@lancedb/vectordb-linux-arm64-gnu" "0.4.12" - "@lancedb/vectordb-linux-x64-gnu" "0.4.12" - "@lancedb/vectordb-win32-x64-msvc" "0.4.12" + "@lancedb/vectordb-darwin-arm64" "0.4.20" + "@lancedb/vectordb-darwin-x64" "0.4.20" + "@lancedb/vectordb-linux-arm64-gnu" "0.4.20" + "@lancedb/vectordb-linux-x64-gnu" "0.4.20" + "@lancedb/vectordb-win32-x64-msvc" "0.4.20" verror@1.10.0: version "1.10.0" @@ -8694,9 +6588,9 @@ vfile@^5.0.0: vfile-message "^3.0.0" vite@^4.3.9: - version "4.5.2" - resolved "https://registry.npmjs.org/vite/-/vite-4.5.2.tgz" - integrity sha512-tBCZBNSBbHQkaGyhGCDUGqeo2ph8Fstyp6FMSvTtsXeZSPpSMGlviAOav2hxVTqFcx8Hj/twtWKsMJXNY0xI8w== + version "4.5.3" + resolved "https://registry.npmjs.org/vite/-/vite-4.5.3.tgz" + integrity sha512-kQL23kMeX92v3ph7IauVkXkikdDRsYMGTVl5KY2E9OY4ONLvkHf04MDTbnfo6NKxZiDLWzVpP5oTa8hQD8U3dg== dependencies: esbuild "^0.18.10" postcss "^8.4.27" @@ -8764,35 +6658,18 @@ w3c-xmlserializer@^5.0.0: dependencies: xml-name-validator "^5.0.0" -walker@^1.0.8: - version "1.0.8" - resolved "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz" - integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ== - dependencies: - makeerror "1.0.12" - -wcwidth@>=1.0.1, wcwidth@^1.0.1: +wcwidth@^1.0.1, wcwidth@>=1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz" integrity sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg== dependencies: defaults "^1.0.3" -web-streams-polyfill@4.0.0-beta.3: - version "4.0.0-beta.3" - resolved "https://registry.yarnpkg.com/web-streams-polyfill/-/web-streams-polyfill-4.0.0-beta.3.tgz#2898486b74f5156095e473efe989dcf185047a38" - integrity sha512-QW95TCTaHmsYfHDybGMwO5IJIM93I/6vTRk+daHTWFPhwh+C8Cg7j7XyKrwrj8Ib6vYXe0ocYNrmzY4xAAN6ug== - -web-streams-polyfill@^3.0.3, web-streams-polyfill@^3.2.1: +web-streams-polyfill@^3.0.3: version "3.3.3" resolved "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz" integrity sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw== -web-tree-sitter@^0.21.0: - version "0.21.0" - resolved "https://registry.yarnpkg.com/web-tree-sitter/-/web-tree-sitter-0.21.0.tgz#5f92f28f67049c3d1da450b3e88ee28df2fc1909" - integrity sha512-iJ+QJ6ikN9D9cG7Kh6q3KtAstYFUQbYZ8OjuPEJYWfj2kLrmp5I3C2n6WjE1Y3jvj7nJbkcrJytJGWUEhCxn+g== - webidl-conversions@^3.0.0: version "3.0.1" resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz" @@ -8810,11 +6687,6 @@ whatwg-encoding@^3.1.1: dependencies: iconv-lite "0.6.3" -whatwg-fetch@^3.6.20: - version "3.6.20" - resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.6.20.tgz#580ce6d791facec91d37c72890995a0b48d31c70" - integrity sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg== - whatwg-mimetype@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz" @@ -8850,11 +6722,21 @@ wide-align@^1.1.5: dependencies: string-width "^1.0.2 || 2 || 3 || 4" +word-wrap@^1.2.5: + version "1.2.5" + resolved "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz" + integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA== + wordwrap@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz" integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q== +wordwrapjs@^5.1.0: + version "5.1.0" + resolved "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-5.1.0.tgz" + integrity sha512-JNjcULU2e4KJwUNv6CHgI46UvDGitb6dGryHajXTDiLgg1/RiGoPSDw4kZfYnwGtEXf2ZMeIewDQgFGzkCB2Sg== + workerpool@6.2.1: version "6.2.1" resolved "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz" @@ -8901,18 +6783,10 @@ wrappy@1: resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== -write-file-atomic@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz" - integrity sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg== - dependencies: - imurmurhash "^0.1.4" - signal-exit "^3.0.7" - ws@^8.13.0, ws@^8.16.0: - version "8.16.0" - resolved "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz" - integrity sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ== + version "8.17.0" + resolved "https://registry.npmjs.org/ws/-/ws-8.17.0.tgz" + integrity sha512-uJq6108EgZMAl20KagGkzCKfMEjxmKvZHG7Tlq0Z6nOky7YF7aq4mOx6xK8TJ/i1LeK4Qus7INktacctDgY8Ow== ws@~8.11.0: version "8.11.0" @@ -8965,22 +6839,17 @@ y18n@^5.0.5: resolved "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz" integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== -yallist@^3.0.2: - version "3.1.1" - resolved "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz" - integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== - yallist@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== yaml@^2.3.4: - version "2.4.1" - resolved "https://registry.npmjs.org/yaml/-/yaml-2.4.1.tgz" - integrity sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg== + version "2.4.2" + resolved "https://registry.npmjs.org/yaml/-/yaml-2.4.2.tgz" + integrity sha512-B3VqDZ+JAg1nZpaEmWtTXUlBneoGx6CPM9b0TENK6aoSu5t73dItudwdgmi6tHlIZZId4dZ9skcAQ2UbcyAeVA== -yargs-parser@20.2.4, yargs-parser@^20.2.2: +yargs-parser@^20.2.2, yargs-parser@20.2.4: version "20.2.4" resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz" integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== @@ -9000,7 +6869,7 @@ yargs-unparser@2.0.0: flat "^5.0.2" is-plain-obj "^2.1.0" -yargs@16.2.0, yargs@^16.2.0: +yargs@^16.2.0: version "16.2.0" resolved "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz" integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== @@ -9013,7 +6882,7 @@ yargs@16.2.0, yargs@^16.2.0: y18n "^5.0.5" yargs-parser "^20.2.2" -yargs@^17.0.1, yargs@^17.3.1: +yargs@^17.0.1: version "17.7.2" resolved "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz" integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== @@ -9026,6 +6895,19 @@ yargs@^17.0.1, yargs@^17.3.1: y18n "^5.0.5" yargs-parser "^21.1.1" +yargs@16.2.0: + version "16.2.0" + resolved "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz" + integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== + dependencies: + cliui "^7.0.2" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.0" + y18n "^5.0.5" + yargs-parser "^20.2.2" + yarn@^1.22.21: version "1.22.22" resolved "https://registry.npmjs.org/yarn/-/yarn-1.22.22.tgz" diff --git a/gui/package-lock.json b/gui/package-lock.json index cd2a0f126..c8deda005 100644 --- a/gui/package-lock.json +++ b/gui/package-lock.json @@ -11,10 +11,15 @@ "@heroicons/react": "^2.0.18", "@monaco-editor/react": "^4.6.0", "@reduxjs/toolkit": "^1.9.3", + "@tiptap/core": "^2.3.2", + "@tiptap/extension-document": "^2.3.2", "@tiptap/extension-dropcursor": "^2.1.16", + "@tiptap/extension-history": "^2.3.2", "@tiptap/extension-image": "^2.1.16", "@tiptap/extension-mention": "^2.1.13", + "@tiptap/extension-paragraph": "^2.3.2", "@tiptap/extension-placeholder": "^2.1.13", + "@tiptap/extension-text": "^2.3.2", "@tiptap/pm": "^2.1.13", "@tiptap/react": "^2.1.13", "@tiptap/starter-kit": "^2.1.13", @@ -26,7 +31,7 @@ "lodash": "^4.17.21", "minisearch": "^6.3.0", "onigasm": "^2.2.5", - "posthog-js": "^1.58.0", + "posthog-js": "^1.130.1", "prismjs": "^1.29.0", "react": "^18.2.0", "react-dom": "^18.2.0", @@ -45,6 +50,7 @@ "rehype-katex": "^7.0.0", "rehype-wrap-all": "^1.1.0", "remark-math": "^6.0.0", + "reselect": "^5.1.1", "seti-file-icons": "^0.0.8", "socket.io-client": "^4.7.2", "styled-components": "^5.3.6", @@ -55,7 +61,8 @@ "vscode-webview": "^1.0.1-beta.1" }, "devDependencies": { - "@google/generative-ai": "^0.11.4", + "@swc/cli": "^0.3.12", + "@swc/core": "^1.5.25", "@types/node": "^20.5.6", "@types/node-fetch": "^2.6.4", "@types/react": "^18.0.27", @@ -76,21 +83,29 @@ }, "../core": { "name": "@continuedev/core", - "version": "1.0.6", + "version": "1.0.13", "license": "Apache-2.0", "dependencies": { + "@aws-sdk/client-bedrock-runtime": "^3.574.0", + "@aws-sdk/credential-providers": "^3.596.0", + "@continuedev/config-types": "^1.0.6", + "@continuedev/llm-info": "^1.0.1", "@mozilla/readability": "^0.5.0", "@octokit/rest": "^20.0.2", "@types/jsdom": "^21.1.6", "@types/mozilla-readability": "^0.2.1", "@types/node-fetch": "^2.6.11", - "@xenova/transformers": "^2.14.0", + "@typescript-eslint/eslint-plugin": "^7.8.0", + "@typescript-eslint/parser": "^7.8.0", + "@xenova/transformers": "2.14.0", "adf-to-md": "^1.1.0", + "async-mutex": "^0.5.0", "axios": "^1.6.7", "cheerio": "^1.0.0-rc.12", "commander": "^12.0.0", + "comment-json": "^4.2.3", "dbinfoz": "^0.1.4", - "dotenv": "^16.3.1", + "dotenv": "^16.4.5", "fastest-levenshtein": "^1.0.16", "follow-redirects": "^1.15.5", "handlebars": "^4.7.8", @@ -99,36 +114,46 @@ "ignore": "^5.3.1", "js-tiktoken": "^1.0.8", "jsdom": "^24.0.0", - "llama-tokenizer-js": "^1.1.3", + "launchdarkly-node-client-sdk": "^3.2.0", "llm-code-highlighter": "^0.0.14", + "mac-ca": "^3.1.0", "node-fetch": "^3.3.2", "node-html-markdown": "^1.3.0", "ollama": "^0.4.6", + "onnxruntime-node": "1.14.0", "openai": "^4.20.1", "pg": "^8.11.3", - "posthog-node": "^3.6.2", + "posthog-node": "^3.6.3", "replicate": "^0.26.0", "request": "^2.88.2", "socket.io-client": "^4.7.3", "sqlite": "^5.1.1", "sqlite3": "^5.1.7", - "tree-sitter-wasms": "^0.1.6", + "system-ca": "^1.0.3", + "tree-sitter-wasms": "^0.1.11", "uuid": "^9.0.1", - "vectordb": "0.4.12", - "web-tree-sitter": "^0.21.0" + "vectordb": "^0.4.20", + "web-tree-sitter": "^0.21.0", + "win-ca": "^3.5.1", + "yaml": "^2.4.2", + "zod": "^3.23.8" }, "devDependencies": { + "@babel/preset-env": "^7.24.7", + "@biomejs/biome": "1.6.4", "@google/generative-ai": "^0.11.4", "@types/follow-redirects": "^1.14.4", - "@types/handlebars": "^4.1.0", - "@types/jest": "^29.5.11", + "@types/jest": "^29.5.12", "@types/jquery": "^3.5.29", "@types/mustache": "^4.2.5", "@types/uuid": "^9.0.7", - "esbuild": "^0.19.11", + "esbuild": "0.17.19", + "eslint": "^8", + "eslint-plugin-import": "^2.29.1", "jest": "^29.7.0", - "ts-jest": "^29.1.1", - "vite-plugin-node": "^3.1.0" + "onnxruntime-common": "1.14.0", + "onnxruntime-web": "1.14.0", + "ts-jest": "^29.1.1" }, "engines": { "node": ">=20.11.0" @@ -160,11 +185,11 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.24.2", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.2.tgz", - "integrity": "sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", + "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", "dependencies": { - "@babel/highlight": "^7.24.2", + "@babel/highlight": "^7.24.7", "picocolors": "^1.0.0" }, "engines": { @@ -172,30 +197,30 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.1.tgz", - "integrity": "sha512-Pc65opHDliVpRHuKfzI+gSA4zcgr65O4cl64fFJIWEEh8JoHIHh0Oez1Eo8Arz8zq/JhgKodQaxEwUPRtZylVA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.7.tgz", + "integrity": "sha512-qJzAIcv03PyaWqxRgO4mSU3lihncDT296vnyuE2O8uA4w3UHWI4S3hgeZd1L8W1Bft40w9JxJ2b412iDUFFRhw==", "peer": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.24.3", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.3.tgz", - "integrity": "sha512-5FcvN1JHw2sHJChotgx8Ek0lyuh4kCKelgMTTqhYJJtloNvUfpAFMeNQUtdlIaktwrSV9LtCdqwk48wL2wBacQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.7.tgz", + "integrity": "sha512-nykK+LEK86ahTkX/3TgauT0ikKoNCfKHEaZYTUVupJdTLzGNvrblu4u6fa7DhZONAltdf8e662t/abY8idrd/g==", "peer": true, "dependencies": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.24.2", - "@babel/generator": "^7.24.1", - "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helpers": "^7.24.1", - "@babel/parser": "^7.24.1", - "@babel/template": "^7.24.0", - "@babel/traverse": "^7.24.1", - "@babel/types": "^7.24.0", + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.24.7", + "@babel/helper-compilation-targets": "^7.24.7", + "@babel/helper-module-transforms": "^7.24.7", + "@babel/helpers": "^7.24.7", + "@babel/parser": "^7.24.7", + "@babel/template": "^7.24.7", + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -211,11 +236,11 @@ } }, "node_modules/@babel/generator": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.1.tgz", - "integrity": "sha512-DfCRfZsBcrPEHUfuBMgbJ1Ut01Y/itOs+hY2nFLgqsqXd52/iSiVq5TITtUasIUgm+IIKdY2/1I7auiQOEeC9A==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.7.tgz", + "integrity": "sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==", "dependencies": { - "@babel/types": "^7.24.0", + "@babel/types": "^7.24.7", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", "jsesc": "^2.5.1" @@ -225,24 +250,24 @@ } }, "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", - "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.7.tgz", + "integrity": "sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==", "dependencies": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", - "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.7.tgz", + "integrity": "sha512-ctSdRHBi20qWOfy27RUb4Fhp07KSJ3sXcuSvTrXrc4aG8NSYDo1ici3Vhg9bg69y5bj0Mr1lh0aeEgTvc12rMg==", "peer": true, "dependencies": { - "@babel/compat-data": "^7.23.5", - "@babel/helper-validator-option": "^7.23.5", + "@babel/compat-data": "^7.24.7", + "@babel/helper-validator-option": "^7.24.7", "browserslist": "^4.22.2", "lru-cache": "^5.1.1", "semver": "^6.3.1" @@ -252,58 +277,62 @@ } }, "node_modules/@babel/helper-environment-visitor": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", - "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.7.tgz", + "integrity": "sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==", + "dependencies": { + "@babel/types": "^7.24.7" + }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-function-name": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", - "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.24.7.tgz", + "integrity": "sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==", "dependencies": { - "@babel/template": "^7.22.15", - "@babel/types": "^7.23.0" + "@babel/template": "^7.24.7", + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-hoist-variables": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", - "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.7.tgz", + "integrity": "sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==", "dependencies": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-imports": { - "version": "7.24.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.3.tgz", - "integrity": "sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz", + "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==", "dependencies": { - "@babel/types": "^7.24.0" + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", - "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.7.tgz", + "integrity": "sha512-1fuJEwIrp+97rM4RWdO+qrRsZlAeL1lQJoPqtCYWv0NL115XM93hIH4CSRln2w52SqvmY5hqdtauB6QFCDiZNQ==", "peer": true, "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-simple-access": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/helper-validator-identifier": "^7.22.20" + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-simple-access": "^7.24.7", + "@babel/helper-split-export-declaration": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -313,81 +342,81 @@ } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.0.tgz", - "integrity": "sha512-9cUznXMG0+FxRuJfvL82QlTqIzhVW9sL0KjMPHhAOOvpQGL8QtdxnBKILjBqxlHyliz0yCa1G903ZXI/FuHy2w==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.7.tgz", + "integrity": "sha512-Rq76wjt7yz9AAc1KnlRKNAi/dMSVWgDRx43FHoJEbcYU6xOWaE2dVPwcdTukJrjxS65GITyfbvEYHvkirZ6uEg==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-simple-access": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", - "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz", + "integrity": "sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==", "peer": true, "dependencies": { - "@babel/types": "^7.22.5" + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-split-export-declaration": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", - "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.7.tgz", + "integrity": "sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==", "dependencies": { - "@babel/types": "^7.22.5" + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-string-parser": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.1.tgz", - "integrity": "sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.7.tgz", + "integrity": "sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", + "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", - "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.7.tgz", + "integrity": "sha512-yy1/KvjhV/ZCL+SM7hBrvnZJ3ZuT9OuZgIJAGpPEToANvc3iM6iDvBnRjtElWibHU6n8/LPR/EjX9EtIEYO3pw==", "peer": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.1.tgz", - "integrity": "sha512-BpU09QqEe6ZCHuIHFphEFgvNSrubve1FtyMton26ekZ85gRGi6LrTF7zArARp2YvyFxloeiRmtSCq5sjh1WqIg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.7.tgz", + "integrity": "sha512-NlmJJtvcw72yRJRcnCmGvSi+3jDEg8qFu3z0AFoymmzLx5ERVWyzd9kVXr7Th9/8yIJi2Zc6av4Tqz3wFs8QWg==", "peer": true, "dependencies": { - "@babel/template": "^7.24.0", - "@babel/traverse": "^7.24.1", - "@babel/types": "^7.24.0" + "@babel/template": "^7.24.7", + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/highlight": { - "version": "7.24.2", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.2.tgz", - "integrity": "sha512-Yac1ao4flkTxTteCDZLEvdxg2fZfz1v8M4QpaGypq/WPDqg3ijHYbDfs+LG5hvzSoqaSZ9/Z9lKSP3CjZjv+pA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", + "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", "dependencies": { - "@babel/helper-validator-identifier": "^7.22.20", + "@babel/helper-validator-identifier": "^7.24.7", "chalk": "^2.4.2", "js-tokens": "^4.0.0", "picocolors": "^1.0.0" @@ -397,9 +426,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.1.tgz", - "integrity": "sha512-Zo9c7N3xdOIQrNip7Lc9wvRPzlRtovHVE4lkz8WEDr7uYh/GMQhSiIgFxGIArRHYdJE5kxtZjAf8rT0xhdLCzg==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.7.tgz", + "integrity": "sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==", "bin": { "parser": "bin/babel-parser.js" }, @@ -408,11 +437,11 @@ } }, "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.1.tgz", - "integrity": "sha512-2eCtxZXf+kbkMIsXS4poTvT4Yu5rXiRa+9xGVT56raghjmBTKMpFNc9R4IDiB4emao9eO22Ox7CxuJG7BgExqA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.7.tgz", + "integrity": "sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.0" + "@babel/helper-plugin-utils": "^7.24.7" }, "engines": { "node": ">=6.9.0" @@ -422,9 +451,9 @@ } }, "node_modules/@babel/runtime": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.1.tgz", - "integrity": "sha512-+BIznRzyqBf+2wCTxcKE3wDjfGeCoVE61KSHGpkzqrLi8qxqFwBeUFyId2cxkTmm55fzDGnm0+yCxaxygrLUnQ==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.7.tgz", + "integrity": "sha512-UwgBRMjJP+xv857DCngvqXI3Iq6J4v0wXmwc6sapg+zyhbwmQX67LUEFrkK5tbyJ30jGuG3ZvWpBiB9LCy1kWw==", "dependencies": { "regenerator-runtime": "^0.14.0" }, @@ -433,31 +462,31 @@ } }, "node_modules/@babel/template": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.0.tgz", - "integrity": "sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.7.tgz", + "integrity": "sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==", "dependencies": { - "@babel/code-frame": "^7.23.5", - "@babel/parser": "^7.24.0", - "@babel/types": "^7.24.0" + "@babel/code-frame": "^7.24.7", + "@babel/parser": "^7.24.7", + "@babel/types": "^7.24.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.24.1", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.1.tgz", - "integrity": "sha512-xuU6o9m68KeqZbQuDt2TcKSxUw/mrsvavlEqQ1leZ/B+C9tk6E4sRWy97WaXgvq5E+nU3cXMxv3WKOCanVMCmQ==", - "dependencies": { - "@babel/code-frame": "^7.24.1", - "@babel/generator": "^7.24.1", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.24.1", - "@babel/types": "^7.24.0", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.7.tgz", + "integrity": "sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==", + "dependencies": { + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.24.7", + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-function-name": "^7.24.7", + "@babel/helper-hoist-variables": "^7.24.7", + "@babel/helper-split-export-declaration": "^7.24.7", + "@babel/parser": "^7.24.7", + "@babel/types": "^7.24.7", "debug": "^4.3.1", "globals": "^11.1.0" }, @@ -466,12 +495,12 @@ } }, "node_modules/@babel/types": { - "version": "7.24.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz", - "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==", + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.7.tgz", + "integrity": "sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==", "dependencies": { - "@babel/helper-string-parser": "^7.23.4", - "@babel/helper-validator-identifier": "^7.22.20", + "@babel/helper-string-parser": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7", "to-fast-properties": "^2.0.0" }, "engines": { @@ -854,40 +883,31 @@ } }, "node_modules/@floating-ui/core": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.0.tgz", - "integrity": "sha512-PcF++MykgmTj3CIyOQbKA/hDzOAiqI3mhuoN44WRCopIs1sgoDoU4oty4Jtqaj/y3oDU6fnVSm4QG0a3t5i0+g==", + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.2.tgz", + "integrity": "sha512-+2XpQV9LLZeanU4ZevzRnGFg2neDeKHgFLjP6YLW+tly0IvrhqT4u8enLGjLH3qeh85g19xY5rsAusfwTdn5lg==", "dependencies": { - "@floating-ui/utils": "^0.2.1" + "@floating-ui/utils": "^0.2.0" } }, "node_modules/@floating-ui/dom": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.3.tgz", - "integrity": "sha512-RnDthu3mzPlQ31Ss/BTwQ1zjzIhr3lk1gZB1OC56h/1vEtaXkESrOqL5fQVMfXpwGtRwX+YsZBdyHtJMQnkArw==", + "version": "1.6.5", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.5.tgz", + "integrity": "sha512-Nsdud2X65Dz+1RHjAIP0t8z5e2ff/IRbei6BqFrl1urT8sDVzM1HMQ+R0XcU5ceRfyO3I6ayeqIfh+6Wb8LGTw==", "dependencies": { "@floating-ui/core": "^1.0.0", "@floating-ui/utils": "^0.2.0" } }, "node_modules/@floating-ui/utils": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.1.tgz", - "integrity": "sha512-9TANp6GPoMtYzQdt54kfAyMmz1+osLlXdg2ENroU7zzrtflTLrrC/lgrIfaSe+Wu0b89GKccT7vxXA0MoAIO+Q==" - }, - "node_modules/@google/generative-ai": { - "version": "0.11.5", - "resolved": "https://registry.npmjs.org/@google/generative-ai/-/generative-ai-0.11.5.tgz", - "integrity": "sha512-DviMgrnljEKh6qkDT2pVFW+NEuVhggqBUoEnyy2PNL7l4ewxXRJubk3PctC9yPl1AdRIlhqP7E076QQt+IWuTg==", - "dev": true, - "engines": { - "node": ">=18.0.0" - } + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.2.tgz", + "integrity": "sha512-J4yDIIthosAsRZ5CPYP/jQvUAQtlZTTD/4suA08/FEnlxqW3sKS9iAhgsa9VYLZ6vDHn/ixJgIqRQPotoBjxIw==" }, "node_modules/@headlessui/react": { - "version": "1.7.18", - "resolved": "https://registry.npmjs.org/@headlessui/react/-/react-1.7.18.tgz", - "integrity": "sha512-4i5DOrzwN4qSgNsL4Si61VMkUcWbcSKueUV7sFhpHzQcSShdlHENE5+QBntMSRvHt8NyoFO2AGG8si9lq+w4zQ==", + "version": "1.7.19", + "resolved": "https://registry.npmjs.org/@headlessui/react/-/react-1.7.19.tgz", + "integrity": "sha512-Ll+8q3OlMJfJbAKM/+/Y2q6PPYbryqNTXDbryx7SXLIDamkF6iQFbriYHga0dY44PvDhvvBWCx1Xj4U5+G4hOw==", "dependencies": { "@tanstack/react-virtual": "^3.0.0-beta.60", "client-only": "^0.0.1" @@ -1050,6 +1070,25 @@ "unist-util-is": "^3.0.0" } }, + "node_modules/@mole-inc/bin-wrapper": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@mole-inc/bin-wrapper/-/bin-wrapper-8.0.1.tgz", + "integrity": "sha512-sTGoeZnjI8N4KS+sW2AN95gDBErhAguvkw/tWdCjeM8bvxpz5lqrnd0vOJABA1A+Ic3zED7PYoLP/RANLgVotA==", + "dev": true, + "dependencies": { + "bin-check": "^4.1.0", + "bin-version-check": "^5.0.0", + "content-disposition": "^0.5.4", + "ext-name": "^5.0.0", + "file-type": "^17.1.6", + "filenamify": "^5.0.2", + "got": "^11.8.5", + "os-filter-obj": "^2.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, "node_modules/@monaco-editor/loader": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/@monaco-editor/loader/-/loader-1.4.0.tgz", @@ -1151,33 +1190,96 @@ } } }, + "node_modules/@reduxjs/toolkit/node_modules/reselect": { + "version": "4.1.8", + "resolved": "https://registry.npmjs.org/reselect/-/reselect-4.1.8.tgz", + "integrity": "sha512-ab9EmR80F/zQTMNeneUr4cv+jSwPJgIlvEmVwLerwrWVbpLlBuls9XHzIeTFy4cegU2NHBp3va0LKOzU5qFEYQ==" + }, "node_modules/@remirror/core-constants": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/@remirror/core-constants/-/core-constants-2.0.2.tgz", "integrity": "sha512-dyHY+sMF0ihPus3O27ODd4+agdHMEmuRdyiZJ2CCWjPV5UFmn17ZbElvk6WOGVE4rdCJKZQCrPV2BcikOMLUGQ==" }, "node_modules/@remix-run/router": { - "version": "1.15.3", - "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.15.3.tgz", - "integrity": "sha512-Oy8rmScVrVxWZVOpEF57ovlnhpZ8CCPlnIIumVcV9nFdiSIrus99+Lw78ekXyGvVDlIsFJbSfmSovJUhCWYV3w==", + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.16.1.tgz", + "integrity": "sha512-es2g3dq6Nb07iFxGk5GuHN20RwBZOsuDQN7izWIisUcv9r+d2C5jQxqmgkdebXgReWfiyUabcki6Fg77mSNrig==", "engines": { "node": ">=14.0.0" } }, + "node_modules/@sindresorhus/is": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", + "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" + } + }, "node_modules/@socket.io/component-emitter": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz", - "integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==" + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz", + "integrity": "sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==" + }, + "node_modules/@swc/cli": { + "version": "0.3.12", + "resolved": "https://registry.npmjs.org/@swc/cli/-/cli-0.3.12.tgz", + "integrity": "sha512-h7bvxT+4+UDrLWJLFHt6V+vNAcUNii2G4aGSSotKz1ECEk4MyEh5CWxmeSscwuz5K3i+4DWTgm4+4EyMCQKn+g==", + "dev": true, + "dependencies": { + "@mole-inc/bin-wrapper": "^8.0.1", + "@swc/counter": "^0.1.3", + "commander": "^8.3.0", + "fast-glob": "^3.2.5", + "minimatch": "^9.0.3", + "piscina": "^4.3.0", + "semver": "^7.3.8", + "slash": "3.0.0", + "source-map": "^0.7.3" + }, + "bin": { + "spack": "bin/spack.js", + "swc": "bin/swc.js", + "swcx": "bin/swcx.js" + }, + "engines": { + "node": ">= 16.14.0" + }, + "peerDependencies": { + "@swc/core": "^1.2.66", + "chokidar": "^3.5.1" + }, + "peerDependenciesMeta": { + "chokidar": { + "optional": true + } + } + }, + "node_modules/@swc/cli/node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } }, "node_modules/@swc/core": { - "version": "1.4.11", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.4.11.tgz", - "integrity": "sha512-WKEakMZxkVwRdgMN4AMJ9K5nysY8g8npgQPczmjBeNK5In7QEAZAJwnyccrWwJZU0XjVeHn2uj+XbOKdDW17rg==", + "version": "1.5.25", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.5.25.tgz", + "integrity": "sha512-qdGEIdLVoTjEQ7w72UyyQ0wLFY4XbHfZiidmPHKJQsvSXzdpHXxPdlTCea/mY4AhMqo/M+pvkJSXJAxZnFl7qw==", "dev": true, "hasInstallScript": true, "dependencies": { - "@swc/counter": "^0.1.2", - "@swc/types": "^0.1.5" + "@swc/counter": "^0.1.3", + "@swc/types": "^0.1.7" }, "engines": { "node": ">=10" @@ -1187,19 +1289,19 @@ "url": "https://opencollective.com/swc" }, "optionalDependencies": { - "@swc/core-darwin-arm64": "1.4.11", - "@swc/core-darwin-x64": "1.4.11", - "@swc/core-linux-arm-gnueabihf": "1.4.11", - "@swc/core-linux-arm64-gnu": "1.4.11", - "@swc/core-linux-arm64-musl": "1.4.11", - "@swc/core-linux-x64-gnu": "1.4.11", - "@swc/core-linux-x64-musl": "1.4.11", - "@swc/core-win32-arm64-msvc": "1.4.11", - "@swc/core-win32-ia32-msvc": "1.4.11", - "@swc/core-win32-x64-msvc": "1.4.11" + "@swc/core-darwin-arm64": "1.5.25", + "@swc/core-darwin-x64": "1.5.25", + "@swc/core-linux-arm-gnueabihf": "1.5.25", + "@swc/core-linux-arm64-gnu": "1.5.25", + "@swc/core-linux-arm64-musl": "1.5.25", + "@swc/core-linux-x64-gnu": "1.5.25", + "@swc/core-linux-x64-musl": "1.5.25", + "@swc/core-win32-arm64-msvc": "1.5.25", + "@swc/core-win32-ia32-msvc": "1.5.25", + "@swc/core-win32-x64-msvc": "1.5.25" }, "peerDependencies": { - "@swc/helpers": "^0.5.0" + "@swc/helpers": "*" }, "peerDependenciesMeta": { "@swc/helpers": { @@ -1208,9 +1310,9 @@ } }, "node_modules/@swc/core-darwin-arm64": { - "version": "1.4.11", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.4.11.tgz", - "integrity": "sha512-C1j1Qp/IHSelVWdEnT7f0iONWxQz6FAqzjCF2iaL+0vFg4V5f2nlgrueY8vj5pNNzSGhrAlxsMxEIp4dj1MXkg==", + "version": "1.5.25", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.5.25.tgz", + "integrity": "sha512-YbD0SBgVJS2DM0vwJTU5m7+wOyCjHPBDMf3nCBJQzFZzOLzK11eRW7SzU2jhJHr9HI9sKcNFfN4lIC2Sj+4inA==", "cpu": [ "arm64" ], @@ -1224,9 +1326,9 @@ } }, "node_modules/@swc/core-darwin-x64": { - "version": "1.4.11", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.4.11.tgz", - "integrity": "sha512-0TTy3Ni8ncgaMCchSQ7FK8ZXQLlamy0FXmGWbR58c+pVZWYZltYPTmheJUvVcR0H2+gPAymRKyfC0iLszDALjg==", + "version": "1.5.25", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.5.25.tgz", + "integrity": "sha512-OhP4TROT6gQuozn+ah0Y4UidSdgDmxwtQq3lgCUIAxJYErJAQ82/Y0kve2UaNmkSGjOHU+/b4siHPrYTkXOk0Q==", "cpu": [ "x64" ], @@ -1240,9 +1342,9 @@ } }, "node_modules/@swc/core-linux-arm-gnueabihf": { - "version": "1.4.11", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.4.11.tgz", - "integrity": "sha512-XJLB71uw0rog4DjYAPxFGAuGCBQpgJDlPZZK6MTmZOvI/1t0+DelJ24IjHIxk500YYM26Yv47xPabqFPD7I2zQ==", + "version": "1.5.25", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.5.25.tgz", + "integrity": "sha512-tNmUfrAHxN2gvYPyYNnHx2CYlPO7DGAUuK/bZrqawu++djcg+atAV3eI3XYJgmHId7/sYAlDQ9wjkrOLofFjVg==", "cpu": [ "arm" ], @@ -1256,9 +1358,9 @@ } }, "node_modules/@swc/core-linux-arm64-gnu": { - "version": "1.4.11", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.4.11.tgz", - "integrity": "sha512-vYQwzJvm/iu052d5Iw27UFALIN5xSrGkPZXxLNMHPySVko2QMNNBv35HLatkEQHbQ3X+VKSW9J9SkdtAvAVRAQ==", + "version": "1.5.25", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.5.25.tgz", + "integrity": "sha512-stzpke+bRaNFM/HrZPRjX0aQZ86S/2DChVCwb8NAV1n5lu9mz1CS750y7WbbtX/KZjk92FsCeRy2qwkvjI0gWw==", "cpu": [ "arm64" ], @@ -1272,9 +1374,9 @@ } }, "node_modules/@swc/core-linux-arm64-musl": { - "version": "1.4.11", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.4.11.tgz", - "integrity": "sha512-eV+KduiRYUFjPsvbZuJ9aknQH9Tj0U2/G9oIZSzLx/18WsYi+upzHbgxmIIHJ2VJgfd7nN40RI/hMtxNsUzR/g==", + "version": "1.5.25", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.5.25.tgz", + "integrity": "sha512-UckUfDYedish/bj2V1jgQDGgouLhyRpG7jgF3mp8jHir11V2K6JiTyjFoz99eOiclS3+hNdr4QLJ+ifrQMJNZw==", "cpu": [ "arm64" ], @@ -1288,9 +1390,9 @@ } }, "node_modules/@swc/core-linux-x64-gnu": { - "version": "1.4.11", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.4.11.tgz", - "integrity": "sha512-WA1iGXZ2HpqM1OR9VCQZJ8sQ1KP2or9O4bO8vWZo6HZJIeoQSo7aa9waaCLRpkZvkng1ct/TF/l6ymqSNFXIzQ==", + "version": "1.5.25", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.5.25.tgz", + "integrity": "sha512-LwbJEgNT3lXbvz4WFzVNXNvs8DvxpoXjMZk9K9Hig8tmZQJKHC2qZTGomcyK5EFzfj2HBuBXZnAEW8ZT9PcEaA==", "cpu": [ "x64" ], @@ -1304,9 +1406,9 @@ } }, "node_modules/@swc/core-linux-x64-musl": { - "version": "1.4.11", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.4.11.tgz", - "integrity": "sha512-UkVJToKf0owwQYRnGvjHAeYVDfeimCEcx0VQSbJoN7Iy0ckRZi7YPlmWJU31xtKvikE2bQWCOVe0qbSDqqcWXA==", + "version": "1.5.25", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.5.25.tgz", + "integrity": "sha512-rsepMTgml0EkswWkBpg3Wrjj5eqjwTzZN5omAn1klzXSZnClTrfeHvBuoIJYVr1yx+jmBkqySgME2p7+magUAw==", "cpu": [ "x64" ], @@ -1320,9 +1422,9 @@ } }, "node_modules/@swc/core-win32-arm64-msvc": { - "version": "1.4.11", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.4.11.tgz", - "integrity": "sha512-35khwkyly7lF5NDSyvIrukBMzxPorgc5iTSDfVO/LvnmN5+fm4lTlrDr4tUfTdOhv3Emy7CsKlsNAeFRJ+Pm+w==", + "version": "1.5.25", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.5.25.tgz", + "integrity": "sha512-DJDsLBsRBV3uQBShRK2x6fqzABp9RLNVxDUpTTvUjc7qywJ8vS/yn+POK/zCyVEqLagf1z/8D5CEQ+RAIJq1NA==", "cpu": [ "arm64" ], @@ -1336,9 +1438,9 @@ } }, "node_modules/@swc/core-win32-ia32-msvc": { - "version": "1.4.11", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.4.11.tgz", - "integrity": "sha512-Wx8/6f0ufgQF2pbVPsJ2dAmFLwIOW+xBE5fxnb7VnEbGkTgP1qMDWiiAtD9rtvDSuODG3i1AEmAak/2HAc6i6A==", + "version": "1.5.25", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.5.25.tgz", + "integrity": "sha512-BARL1ulHol53MEKC1ZVWM3A3FP757UUgG5Q8v97za+4a1SaIgbwvAQyHDxMYWi9+ij+OapK8YnWjJcFa17g8dw==", "cpu": [ "ia32" ], @@ -1352,9 +1454,9 @@ } }, "node_modules/@swc/core-win32-x64-msvc": { - "version": "1.4.11", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.4.11.tgz", - "integrity": "sha512-0xRFW6K9UZQH2NVC/0pVB0GJXS45lY24f+6XaPBF1YnMHd8A8GoHl7ugyM5yNUTe2AKhSgk5fJV00EJt/XBtdQ==", + "version": "1.5.25", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.5.25.tgz", + "integrity": "sha512-o+MHUWrQI9iR6EusEV8eNU2Ezi3KtlhUR4gfptQN5MbVzlgjTvQbhiKpE1GYOxp+0BLBbKRwITKOcdhxfEJ2Uw==", "cpu": [ "x64" ], @@ -1374,20 +1476,32 @@ "dev": true }, "node_modules/@swc/types": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.6.tgz", - "integrity": "sha512-/JLo/l2JsT/LRd80C3HfbmVpxOAJ11FO2RCEslFrgzLltoP9j8XIbsyDcfCt2WWyX+CM96rBoNM+IToAkFOugg==", + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.7.tgz", + "integrity": "sha512-scHWahbHF0eyj3JsxG9CFJgFdFNaVQCNAimBlT6PzS3n/HptxqREjsm4OH6AN3lYcffZYSPxXW8ua2BEHp0lJQ==", "dev": true, "dependencies": { "@swc/counter": "^0.1.3" } }, + "node_modules/@szmarczak/http-timer": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", + "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", + "dev": true, + "dependencies": { + "defer-to-connect": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/@tanstack/react-virtual": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@tanstack/react-virtual/-/react-virtual-3.2.0.tgz", - "integrity": "sha512-OEdMByf2hEfDa6XDbGlZN8qO6bTjlNKqjM3im9JG+u3mCL8jALy0T/67oDI001raUUPh1Bdmfn4ZvPOV5knpcg==", + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/@tanstack/react-virtual/-/react-virtual-3.5.1.tgz", + "integrity": "sha512-jIsuhfgy8GqA67PdWqg73ZB2LFE+HD9hjWL1L6ifEIZVyZVAKpYmgUG4WsKQ005aEyImJmbuimPiEvc57IY0Aw==", "dependencies": { - "@tanstack/virtual-core": "3.2.0" + "@tanstack/virtual-core": "3.5.1" }, "funding": { "type": "github", @@ -1399,18 +1513,18 @@ } }, "node_modules/@tanstack/virtual-core": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@tanstack/virtual-core/-/virtual-core-3.2.0.tgz", - "integrity": "sha512-P5XgYoAw/vfW65byBbJQCw+cagdXDT/qH6wmABiLt4v4YBT2q2vqCOhihe+D1Nt325F/S/0Tkv6C5z0Lv+VBQQ==", + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/@tanstack/virtual-core/-/virtual-core-3.5.1.tgz", + "integrity": "sha512-046+AUSiDru/V9pajE1du8WayvBKeCvJ2NmKPy/mR8/SbKKrqmSbj7LJBfXE+nSq4f5TBXvnCzu0kcYebI9WdQ==", "funding": { "type": "github", "url": "https://github.com/sponsors/tannerlinsley" } }, "node_modules/@tiptap/core": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@tiptap/core/-/core-2.2.4.tgz", - "integrity": "sha512-cRrI8IlLIhCE1hacBQzXIC8dsRvGq6a4lYWQK/BaHuZg21CG7szp3Vd8Ix+ra1f5v0xPOT+Hy+QFNQooRMKMCw==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@tiptap/core/-/core-2.4.0.tgz", + "integrity": "sha512-YJSahk8pkxpCs8SflCZfTnJpE7IPyUWIylfgXM2DefjRQa5DZ+c6sNY0s/zbxKYFQ6AuHVX40r9pCfcqHChGxQ==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -1420,9 +1534,9 @@ } }, "node_modules/@tiptap/extension-blockquote": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@tiptap/extension-blockquote/-/extension-blockquote-2.2.4.tgz", - "integrity": "sha512-FrfPnn0VgVrUwWLwja1afX99JGLp6PE9ThVcmri+tLwUZQvTTVcCvHoCdOakav3/nge1+aV4iE3tQdyq1tWI9Q==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-blockquote/-/extension-blockquote-2.4.0.tgz", + "integrity": "sha512-nJJy4KsPgQqWTTDOWzFRdjCfG5+QExfZj44dulgDFNh+E66xhamnbM70PklllXJgEcge7xmT5oKM0gKls5XgFw==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -1432,9 +1546,9 @@ } }, "node_modules/@tiptap/extension-bold": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@tiptap/extension-bold/-/extension-bold-2.2.4.tgz", - "integrity": "sha512-v3tTLc8YESFZPOGj5ByFr8VbmQ/PTo49T1vsK50VubxIN/5r9cXlKH8kb3dZlZxCxJa3FrXNO/M8rdGBSWQvSg==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-bold/-/extension-bold-2.4.0.tgz", + "integrity": "sha512-csnW6hMDEHoRfxcPRLSqeJn+j35Lgtt1YRiOwn7DlS66sAECGRuoGfCvQSPij0TCDp4VCR9if5Sf8EymhnQumQ==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -1444,9 +1558,9 @@ } }, "node_modules/@tiptap/extension-bubble-menu": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@tiptap/extension-bubble-menu/-/extension-bubble-menu-2.2.4.tgz", - "integrity": "sha512-Nx1fS9jcFlhxaTDYlnayz2UulhK6CMaePc36+7PQIVI+u20RhgTCRNr25zKNemvsiM0RPZZVUjlHkxC0l5as1Q==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-bubble-menu/-/extension-bubble-menu-2.4.0.tgz", + "integrity": "sha512-s99HmttUtpW3rScWq8rqk4+CGCwergNZbHLTkF6Rp6TSboMwfp+rwL5Q/JkcAG9KGLso1vGyXKbt1xHOvm8zMw==", "dependencies": { "tippy.js": "^6.3.7" }, @@ -1460,9 +1574,9 @@ } }, "node_modules/@tiptap/extension-bullet-list": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@tiptap/extension-bullet-list/-/extension-bullet-list-2.2.4.tgz", - "integrity": "sha512-z/MPmW8bhRougMuorl6MAQBXeK4rhlP+jBWlNwT+CT8h5IkXqPnDbM1sZeagp2nYfVV6Yc4RWpzimqHHtGnYTA==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-bullet-list/-/extension-bullet-list-2.4.0.tgz", + "integrity": "sha512-9S5DLIvFRBoExvmZ+/ErpTvs4Wf1yOEs8WXlKYUCcZssK7brTFj99XDwpHFA29HKDwma5q9UHhr2OB2o0JYAdw==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -1472,9 +1586,9 @@ } }, "node_modules/@tiptap/extension-code": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@tiptap/extension-code/-/extension-code-2.2.4.tgz", - "integrity": "sha512-JB4SJ2mUU/9qXFUf+K5K9szvovnN9AIcCb0f0UlcVBuddKHSqCl3wO3QJgYt44BfQTLMNuyzr+zVqfFd6BNt/g==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-code/-/extension-code-2.4.0.tgz", + "integrity": "sha512-wjhBukuiyJMq4cTcK3RBTzUPV24k5n1eEPlpmzku6ThwwkMdwynnMGMAmSF3fErh3AOyOUPoTTjgMYN2d10SJA==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -1484,9 +1598,9 @@ } }, "node_modules/@tiptap/extension-code-block": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@tiptap/extension-code-block/-/extension-code-block-2.2.4.tgz", - "integrity": "sha512-h6WV9TmaBEZmvqe1ezMR83DhCPUap6P2mSR5pwVk0WVq6rvZjfgU0iF3EetBJOeDgPlz7cNe2NMDfVb1nGTM/g==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-code-block/-/extension-code-block-2.4.0.tgz", + "integrity": "sha512-QWGdv1D56TBGbbJSj2cIiXGJEKguPiAl9ONzJ/Ql1ZksiQsYwx0YHriXX6TOC//T4VIf6NSClHEtwtxWBQ/Csg==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -1497,9 +1611,9 @@ } }, "node_modules/@tiptap/extension-document": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@tiptap/extension-document/-/extension-document-2.2.4.tgz", - "integrity": "sha512-z+05xGK0OFoXV1GL+/8bzcZuWMdMA3+EKwk5c+iziG60VZcvGTF7jBRsZidlu9Oaj0cDwWHCeeo6L9SgSh6i2A==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-document/-/extension-document-2.4.0.tgz", + "integrity": "sha512-3jRodQJZDGbXlRPERaloS+IERg/VwzpC1IO6YSJR9jVIsBO6xC29P3cKTQlg1XO7p6ZH/0ksK73VC5BzzTwoHg==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -1509,9 +1623,9 @@ } }, "node_modules/@tiptap/extension-dropcursor": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@tiptap/extension-dropcursor/-/extension-dropcursor-2.2.4.tgz", - "integrity": "sha512-IHwkEKmqpqXyJi16h7871NrcIqeyN7I6XRE2qdqi+MhGigVWI8nWHoYbjRKa7K/1uhs5zeRYyDlq5EuZyL6mgA==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-dropcursor/-/extension-dropcursor-2.4.0.tgz", + "integrity": "sha512-c46HoG2PEEpSZv5rmS5UX/lJ6/kP1iVO0Ax+6JrNfLEIiDULUoi20NqdjolEa38La2VhWvs+o20OviiTOKEE9g==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -1522,9 +1636,9 @@ } }, "node_modules/@tiptap/extension-floating-menu": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@tiptap/extension-floating-menu/-/extension-floating-menu-2.2.4.tgz", - "integrity": "sha512-U25l7PEzOmlAPugNRl8t8lqyhQZS6W/+3f92+FdwW9qXju3i62iX/3OGCC3Gv+vybmQ4fbZmMjvl+VDfenNi3A==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-floating-menu/-/extension-floating-menu-2.4.0.tgz", + "integrity": "sha512-vLb9v+htbHhXyty0oaXjT3VC8St4xuGSHWUB9GuAJAQ+NajIO6rBPbLUmm9qM0Eh2zico5mpSD1Qtn5FM6xYzg==", "dependencies": { "tippy.js": "^6.3.7" }, @@ -1538,9 +1652,9 @@ } }, "node_modules/@tiptap/extension-gapcursor": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@tiptap/extension-gapcursor/-/extension-gapcursor-2.2.4.tgz", - "integrity": "sha512-Y6htT/RDSqkQ1UwG2Ia+rNVRvxrKPOs3RbqKHPaWr3vbFWwhHyKhMCvi/FqfI3d5pViVHOZQ7jhb5hT/a0BmNw==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-gapcursor/-/extension-gapcursor-2.4.0.tgz", + "integrity": "sha512-F4y/0J2lseohkFUw9P2OpKhrJ6dHz69ZScABUvcHxjznJLd6+0Zt7014Lw5PA8/m2d/w0fX8LZQ88pZr4quZPQ==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -1551,9 +1665,9 @@ } }, "node_modules/@tiptap/extension-hard-break": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@tiptap/extension-hard-break/-/extension-hard-break-2.2.4.tgz", - "integrity": "sha512-FPvS57GcqHIeLbPKGJa3gnH30Xw+YB1PXXnAWG2MpnMtc2Vtj1l5xaYYBZB+ADdXLAlU0YMbKhFLQO4+pg1Isg==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-hard-break/-/extension-hard-break-2.4.0.tgz", + "integrity": "sha512-3+Z6zxevtHza5IsDBZ4lZqvNR3Kvdqwxq/QKCKu9UhJN1DUjsg/l1Jn2NilSQ3NYkBYh2yJjT8CMo9pQIu776g==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -1563,9 +1677,9 @@ } }, "node_modules/@tiptap/extension-heading": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@tiptap/extension-heading/-/extension-heading-2.2.4.tgz", - "integrity": "sha512-gkq7Ns2FcrOCRq7Q+VRYt5saMt2R9g4REAtWy/jEevJ5UV5vA2AiGnYDmxwAkHutoYU0sAUkjqx37wE0wpamNw==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-heading/-/extension-heading-2.4.0.tgz", + "integrity": "sha512-fYkyP/VMo7YHO76YVrUjd95Qeo0cubWn/Spavmwm1gLTHH/q7xMtbod2Z/F0wd6QHnc7+HGhO7XAjjKWDjldaw==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -1575,9 +1689,9 @@ } }, "node_modules/@tiptap/extension-history": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@tiptap/extension-history/-/extension-history-2.2.4.tgz", - "integrity": "sha512-FDM32XYF5NU4mzh+fJ8w2CyUqv0l2Nl15sd6fOhQkVxSj8t57z+DUXc9ZR3zkH+1RAagYJo/2Gu3e99KpMr0tg==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-history/-/extension-history-2.4.0.tgz", + "integrity": "sha512-gr5qsKAXEVGr1Lyk1598F7drTaEtAxqZiuuSwTCzZzkiwgEQsWMWTWc9F8FlneCEaqe1aIYg6WKWlmYPaFwr0w==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -1588,9 +1702,9 @@ } }, "node_modules/@tiptap/extension-horizontal-rule": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@tiptap/extension-horizontal-rule/-/extension-horizontal-rule-2.2.4.tgz", - "integrity": "sha512-iCRHjFQQHApWg3R4fkKkJQhWEOdu1Fdc4YEAukdOXPSg3fg36IwjvsMXjt9SYBtVZ+iio3rORCZGXyMvgCH9uw==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-horizontal-rule/-/extension-horizontal-rule-2.4.0.tgz", + "integrity": "sha512-yDgxy+YxagcEsBbdWvbQiXYxsv3noS1VTuGwc9G7ZK9xPmBHJ5y0agOkB7HskwsZvJHoaSqNRsh7oZTkf0VR3g==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -1601,9 +1715,9 @@ } }, "node_modules/@tiptap/extension-image": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@tiptap/extension-image/-/extension-image-2.2.4.tgz", - "integrity": "sha512-xOnqZpnP/fAfmK5AKmXplVQdXBtY5AoZ9B+qllH129aLABaDRzl3e14ZRHC8ahQawOmCe6AOCCXYUBXDOlY5Jg==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-image/-/extension-image-2.4.0.tgz", + "integrity": "sha512-NIVhRPMO/ONo8OywEd+8zh0Q6Q7EbFHtBxVsvfOKj9KtZkaXQfUO4MzONTyptkvAchTpj9pIzeaEY5fyU87gFA==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -1613,9 +1727,9 @@ } }, "node_modules/@tiptap/extension-italic": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@tiptap/extension-italic/-/extension-italic-2.2.4.tgz", - "integrity": "sha512-qIhGNvWnsQswSgEMRA8jQQjxfkOGNAuNWKEVQX9DPoqAUgknT41hQcAMP8L2+OdACpb2jbVMOO5Cy5Dof2L8/w==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-italic/-/extension-italic-2.4.0.tgz", + "integrity": "sha512-aaW/L9q+KNHHK+X73MPloHeIsT191n3VLd3xm6uUcFDnUNvzYJ/q65/1ZicdtCaOLvTutxdrEvhbkrVREX6a8g==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -1625,9 +1739,9 @@ } }, "node_modules/@tiptap/extension-list-item": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@tiptap/extension-list-item/-/extension-list-item-2.2.4.tgz", - "integrity": "sha512-lPLKGKsHpM9ClUa8n7GEUn8pG6HCYU0vFruIy3l2t6jZdHkrgBnYtVGMZ13K8UDnj/hlAlccxku0D0P4mA1Vrg==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-list-item/-/extension-list-item-2.4.0.tgz", + "integrity": "sha512-reUVUx+2cI2NIAqMZhlJ9uK/+zvRzm1GTmlU2Wvzwc7AwLN4yemj6mBDsmBLEXAKPvitfLh6EkeHaruOGymQtg==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -1637,9 +1751,9 @@ } }, "node_modules/@tiptap/extension-mention": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@tiptap/extension-mention/-/extension-mention-2.2.4.tgz", - "integrity": "sha512-myUlwpbrQgWfRJwG4UHM2PbiSp+squJv6LPKfKINs5yDxIproaZ0/4TAJt3heeSXZJnboPAQxSP7eLd5pY8lBw==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-mention/-/extension-mention-2.4.0.tgz", + "integrity": "sha512-7BqCNfqF1Mv9IrtdlHADwXMFo968UNmthf/TepVXC7EX2Ke6/Y4vvxmpYVNZc55FdswFwpVyZ2VeXBj3AC2JcA==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -1651,9 +1765,9 @@ } }, "node_modules/@tiptap/extension-ordered-list": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@tiptap/extension-ordered-list/-/extension-ordered-list-2.2.4.tgz", - "integrity": "sha512-TpFy140O9Af1JciXt+xwqYUXxcJ6YG8zi/B5UDJujp+FH5sCmlYYBBnWxiFMhVaj6yEmA2eafu1qUkic/1X5Aw==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-ordered-list/-/extension-ordered-list-2.4.0.tgz", + "integrity": "sha512-Zo0c9M0aowv+2+jExZiAvhCB83GZMjZsxywmuOrdUbq5EGYKb7q8hDyN3hkrktVHr9UPXdPAYTmLAHztTOHYRA==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -1663,9 +1777,9 @@ } }, "node_modules/@tiptap/extension-paragraph": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@tiptap/extension-paragraph/-/extension-paragraph-2.2.4.tgz", - "integrity": "sha512-m1KwyvTNJxsq7StbspbcOhxO4Wk4YpElDbqOouWi+H4c8azdpI5Pn96ZqhFeE9bSyjByg6OcB/wqoJsLbeFWdQ==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-paragraph/-/extension-paragraph-2.4.0.tgz", + "integrity": "sha512-+yse0Ow67IRwcACd9K/CzBcxlpr9OFnmf0x9uqpaWt1eHck1sJnti6jrw5DVVkyEBHDh/cnkkV49gvctT/NyCw==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -1675,9 +1789,9 @@ } }, "node_modules/@tiptap/extension-placeholder": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@tiptap/extension-placeholder/-/extension-placeholder-2.2.4.tgz", - "integrity": "sha512-UL4Fn9T33SoS7vdI3NnSxBJVeGUIgCIutgXZZ5J8CkcRoDIeS78z492z+6J+qGctHwTd0xUL5NzNJI82HfiTdg==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-placeholder/-/extension-placeholder-2.4.0.tgz", + "integrity": "sha512-SmWOjgWpmhFt0BPOnL65abCUH0wS5yksUJgtANn5bQoHF4HFSsyl7ETRmgf0ykxdjc7tzOg31FfpWVH4wzKSYg==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -1688,9 +1802,9 @@ } }, "node_modules/@tiptap/extension-strike": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@tiptap/extension-strike/-/extension-strike-2.2.4.tgz", - "integrity": "sha512-/a2EwQgA+PpG17V2tVRspcrIY0SN3blwcgM7lxdW4aucGkqSKnf7+91dkhQEwCZ//o8kv9mBCyRoCUcGy6S5Xg==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-strike/-/extension-strike-2.4.0.tgz", + "integrity": "sha512-pE1uN/fQPOMS3i+zxPYMmPmI3keubnR6ivwM+KdXWOMnBiHl9N4cNpJgq1n2eUUGKLurC2qrQHpnVyGAwBS6Vg==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -1700,9 +1814,9 @@ } }, "node_modules/@tiptap/extension-text": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@tiptap/extension-text/-/extension-text-2.2.4.tgz", - "integrity": "sha512-NlKHMPnRJXB+0AGtDlU0P2Pg+SdesA2lMMd7JzDUgJgL7pX2jOb8eUqSeOjFKuSzFSqYfH6C3o6mQiNhuQMv+g==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-text/-/extension-text-2.4.0.tgz", + "integrity": "sha512-LV0bvE+VowE8IgLca7pM8ll7quNH+AgEHRbSrsI3SHKDCYB9gTHMjWaAkgkUVaO1u0IfCrjnCLym/PqFKa+vvg==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -1712,9 +1826,9 @@ } }, "node_modules/@tiptap/pm": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@tiptap/pm/-/pm-2.2.4.tgz", - "integrity": "sha512-Po0klR165zgtinhVp1nwMubjyKx6gAY9kH3IzcniYLCkqhPgiqnAcCr61TBpp4hfK8YURBS4ihvCB1dyfCyY8A==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@tiptap/pm/-/pm-2.4.0.tgz", + "integrity": "sha512-B1HMEqGS4MzIVXnpgRZDLm30mxDWj51LkBT/if1XD+hj5gm8B9Q0c84bhvODX6KIs+c6z+zsY9VkVu8w9Yfgxg==", "dependencies": { "prosemirror-changeset": "^2.2.1", "prosemirror-collab": "^1.3.1", @@ -1741,12 +1855,12 @@ } }, "node_modules/@tiptap/react": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@tiptap/react/-/react-2.2.4.tgz", - "integrity": "sha512-HkYmMZWcETPZn3KpzdDg/ns2TKeFh54TvtCEInA4ljYtWGLoZc/A+KaiEtMIgVs+Mo1XwrhuoNGjL9c0OK2HJw==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@tiptap/react/-/react-2.4.0.tgz", + "integrity": "sha512-baxnIr6Dy+5iGagOEIKFeHzdl1ZRa6Cg+SJ3GDL/BVLpO6KiCM3Mm5ymB726UKP1w7icrBiQD2fGY3Bx8KaiSA==", "dependencies": { - "@tiptap/extension-bubble-menu": "^2.2.4", - "@tiptap/extension-floating-menu": "^2.2.4" + "@tiptap/extension-bubble-menu": "^2.4.0", + "@tiptap/extension-floating-menu": "^2.4.0" }, "funding": { "type": "github", @@ -1760,29 +1874,29 @@ } }, "node_modules/@tiptap/starter-kit": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@tiptap/starter-kit/-/starter-kit-2.2.4.tgz", - "integrity": "sha512-Kbk7qUfIZg3+bNa3e/wBeDQt4jJB46uQgM+xy5NSY6H8NZP6gdmmap3aIrn9S/W/hGpxJl4RcXAeaT0CQji9XA==", - "dependencies": { - "@tiptap/core": "^2.2.4", - "@tiptap/extension-blockquote": "^2.2.4", - "@tiptap/extension-bold": "^2.2.4", - "@tiptap/extension-bullet-list": "^2.2.4", - "@tiptap/extension-code": "^2.2.4", - "@tiptap/extension-code-block": "^2.2.4", - "@tiptap/extension-document": "^2.2.4", - "@tiptap/extension-dropcursor": "^2.2.4", - "@tiptap/extension-gapcursor": "^2.2.4", - "@tiptap/extension-hard-break": "^2.2.4", - "@tiptap/extension-heading": "^2.2.4", - "@tiptap/extension-history": "^2.2.4", - "@tiptap/extension-horizontal-rule": "^2.2.4", - "@tiptap/extension-italic": "^2.2.4", - "@tiptap/extension-list-item": "^2.2.4", - "@tiptap/extension-ordered-list": "^2.2.4", - "@tiptap/extension-paragraph": "^2.2.4", - "@tiptap/extension-strike": "^2.2.4", - "@tiptap/extension-text": "^2.2.4" + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@tiptap/starter-kit/-/starter-kit-2.4.0.tgz", + "integrity": "sha512-DYYzMZdTEnRn9oZhKOeRCcB+TjhNz5icLlvJKoHoOGL9kCbuUyEf8WRR2OSPckI0+KUIPJL3oHRqO4SqSdTjfg==", + "dependencies": { + "@tiptap/core": "^2.4.0", + "@tiptap/extension-blockquote": "^2.4.0", + "@tiptap/extension-bold": "^2.4.0", + "@tiptap/extension-bullet-list": "^2.4.0", + "@tiptap/extension-code": "^2.4.0", + "@tiptap/extension-code-block": "^2.4.0", + "@tiptap/extension-document": "^2.4.0", + "@tiptap/extension-dropcursor": "^2.4.0", + "@tiptap/extension-gapcursor": "^2.4.0", + "@tiptap/extension-hard-break": "^2.4.0", + "@tiptap/extension-heading": "^2.4.0", + "@tiptap/extension-history": "^2.4.0", + "@tiptap/extension-horizontal-rule": "^2.4.0", + "@tiptap/extension-italic": "^2.4.0", + "@tiptap/extension-list-item": "^2.4.0", + "@tiptap/extension-ordered-list": "^2.4.0", + "@tiptap/extension-paragraph": "^2.4.0", + "@tiptap/extension-strike": "^2.4.0", + "@tiptap/extension-text": "^2.4.0" }, "funding": { "type": "github", @@ -1790,9 +1904,9 @@ } }, "node_modules/@tiptap/suggestion": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/@tiptap/suggestion/-/suggestion-2.2.4.tgz", - "integrity": "sha512-g6HHsKM6K3asW+ZlwMYyLCRqCRaswoliZOQofY4iZt5ru5HNTSzm3YW4XSyW5RGXJIuc319yyrOFgtJ3Fyu5rQ==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@tiptap/suggestion/-/suggestion-2.4.0.tgz", + "integrity": "sha512-6dCkjbL8vIzcLWtS6RCBx0jlYPKf2Beuyq5nNLrDDZZuyJow5qJAY0eGu6Xomp9z0WDK/BYOxT4hHNoGMDkoAg==", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -1802,6 +1916,24 @@ "@tiptap/pm": "^2.0.0" } }, + "node_modules/@tokenizer/token": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz", + "integrity": "sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==", + "dev": true + }, + "node_modules/@types/cacheable-request": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz", + "integrity": "sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==", + "dev": true, + "dependencies": { + "@types/http-cache-semantics": "*", + "@types/keyv": "^3.1.4", + "@types/node": "*", + "@types/responselike": "^1.0.0" + } + }, "node_modules/@types/debug": { "version": "4.1.12", "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", @@ -1846,15 +1978,30 @@ "hoist-non-react-statics": "^3.3.0" } }, + "node_modules/@types/http-cache-semantics": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz", + "integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==", + "dev": true + }, "node_modules/@types/katex": { "version": "0.16.7", "resolved": "https://registry.npmjs.org/@types/katex/-/katex-0.16.7.tgz", "integrity": "sha512-HMwFiRujE5PjrgwHQ25+bsLJgowjGjm5Z8FVSf0N6PwgJrwxH0QxzHYDcKsTfV3wva0vzrpqMTJS2jXPr5BMEQ==" }, + "node_modules/@types/keyv": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz", + "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@types/mdast": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz", - "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", + "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", "dependencies": { "@types/unist": "*" } @@ -1865,9 +2012,9 @@ "integrity": "sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==" }, "node_modules/@types/node": { - "version": "20.12.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.2.tgz", - "integrity": "sha512-zQ0NYO87hyN6Xrclcqp7f8ZbXNbRfoGWNcMvHTPQp9UUrwI0mI7XBz+cu7/W6/VClYo2g63B0cjull/srU7LgQ==", + "version": "20.14.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.2.tgz", + "integrity": "sha512-xyu6WAMVwv6AKFLB+e/7ySZVr/0zLCzOa7rSpq6jNwpqOrUbcACDWC+53d4n2QHOnDou0fbIsg8wZu/sxrnI4Q==", "dev": true, "dependencies": { "undici-types": "~5.26.4" @@ -1889,18 +2036,18 @@ "integrity": "sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==" }, "node_modules/@types/react": { - "version": "18.2.74", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.74.tgz", - "integrity": "sha512-9AEqNZZyBx8OdZpxzQlaFEVCSFUM2YXJH46yPOiOpm078k6ZLOCcuAzGum/zK8YBwY+dbahVNbHrbgrAwIRlqw==", + "version": "18.3.3", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.3.tgz", + "integrity": "sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw==", "dependencies": { "@types/prop-types": "*", "csstype": "^3.0.2" } }, "node_modules/@types/react-dom": { - "version": "18.2.23", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.23.tgz", - "integrity": "sha512-ZQ71wgGOTmDYpnav2knkjr3qXdAFu0vsk8Ci5w3pGAIdj7/kKAyn+VsQDhXsmzzzepAiI9leWMmubXz690AI/A==", + "version": "18.3.0", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.0.tgz", + "integrity": "sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==", "devOptional": true, "dependencies": { "@types/react": "*" @@ -1928,14 +2075,23 @@ } }, "node_modules/@types/react-syntax-highlighter": { - "version": "15.5.11", - "resolved": "https://registry.npmjs.org/@types/react-syntax-highlighter/-/react-syntax-highlighter-15.5.11.tgz", - "integrity": "sha512-ZqIJl+Pg8kD+47kxUjvrlElrraSUrYa4h0dauY/U/FTUuprSCqvUj+9PNQNQzVc6AJgIWUUxn87/gqsMHNbRjw==", + "version": "15.5.13", + "resolved": "https://registry.npmjs.org/@types/react-syntax-highlighter/-/react-syntax-highlighter-15.5.13.tgz", + "integrity": "sha512-uLGJ87j6Sz8UaBAooU0T6lWJ0dBmjZgN1PZTrj05TNql2/XpC6+4HhMT5syIdFUUt+FASfCeLLv4kBygNU+8qA==", "dev": true, "dependencies": { "@types/react": "*" } }, + "node_modules/@types/responselike": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.3.tgz", + "integrity": "sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@types/styled-components": { "version": "5.1.34", "resolved": "https://registry.npmjs.org/@types/styled-components/-/styled-components-5.1.34.tgz", @@ -1968,26 +2124,26 @@ "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==" }, "node_modules/@vitejs/plugin-react-swc": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react-swc/-/plugin-react-swc-3.6.0.tgz", - "integrity": "sha512-XFRbsGgpGxGzEV5i5+vRiro1bwcIaZDIdBRP16qwm+jP68ue/S8FJTBEgOeojtVDYrbSua3XFp71kC8VJE6v+g==", + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react-swc/-/plugin-react-swc-3.7.0.tgz", + "integrity": "sha512-yrknSb3Dci6svCd/qhHqhFPDSw0QtjumcqdKMoNNzmOl5lMXTTiqzjWtG4Qask2HdvvzaNgSunbQGet8/GrKdA==", "dev": true, "dependencies": { - "@swc/core": "^1.3.107" + "@swc/core": "^1.5.7" }, "peerDependencies": { "vite": "^4 || ^5" } }, "node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.16.0.tgz", + "integrity": "sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw==", "dependencies": { - "fast-deep-equal": "^3.1.1", + "fast-deep-equal": "^3.1.3", "json-schema-traverse": "^1.0.0", "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" + "uri-js": "^4.4.1" }, "funding": { "type": "github", @@ -2032,6 +2188,26 @@ "node": ">= 8" } }, + "node_modules/arch": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz", + "integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, "node_modules/arg": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", @@ -2133,6 +2309,129 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/bin-check": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bin-check/-/bin-check-4.1.0.tgz", + "integrity": "sha512-b6weQyEUKsDGFlACWSIOfveEnImkJyK/FGW6FAG42loyoquvjdtOIqO6yBFzHyqyVVhNgNkQxxx09SFLK28YnA==", + "dev": true, + "dependencies": { + "execa": "^0.7.0", + "executable": "^4.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/bin-version": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/bin-version/-/bin-version-6.0.0.tgz", + "integrity": "sha512-nk5wEsP4RiKjG+vF+uG8lFsEn4d7Y6FVDamzzftSunXOoOcOOkzcWdKVlGgFFwlUQCj63SgnUkLLGF8v7lufhw==", + "dev": true, + "dependencies": { + "execa": "^5.0.0", + "find-versions": "^5.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bin-version-check": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/bin-version-check/-/bin-version-check-5.1.0.tgz", + "integrity": "sha512-bYsvMqJ8yNGILLz1KP9zKLzQ6YpljV3ln1gqhuLkUtyfGi3qXKGuK2p+U4NAvjVFzDFiBBtOpCOSFNuYYEGZ5g==", + "dev": true, + "dependencies": { + "bin-version": "^6.0.0", + "semver": "^7.5.3", + "semver-truncate": "^3.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bin-version-check/node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/bin-version/node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/bin-version/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bin-version/node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bin-version/node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/bin-version/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, "node_modules/binary-extensions": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", @@ -2202,6 +2501,48 @@ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, + "node_modules/cacheable-lookup": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", + "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==", + "dev": true, + "engines": { + "node": ">=10.6.0" + } + }, + "node_modules/cacheable-request": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.4.tgz", + "integrity": "sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==", + "dev": true, + "dependencies": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^4.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^6.0.1", + "responselike": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cacheable-request/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/camelcase-css": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", @@ -2220,9 +2561,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001605", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001605.tgz", - "integrity": "sha512-nXwGlFWo34uliI9z3n6Qc0wZaf7zaZWA1CPZ169La5mV3I/gem7bst0vr5XQH5TJXZIMfDeZyOrZnSlVzKxxHQ==", + "version": "1.0.30001628", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001628.tgz", + "integrity": "sha512-S3BnR4Kh26TBxbi5t5kpbcUlLJb9lhtDXISDPwOfI+JoC+ik0QksvkZtUVyikw3hjnkgkMPSJ8oIM9yMm9vflA==", "funding": [ { "type": "opencollective", @@ -2350,6 +2691,18 @@ "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==" }, + "node_modules/clone-response": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", + "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", + "dev": true, + "dependencies": { + "mimic-response": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", @@ -2397,6 +2750,18 @@ "resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-2.0.4.tgz", "integrity": "sha512-y/ZA3BGnxoM/QHHQ2Uy49CLtnWPbt4tTPpEEZiEmmiWBFKjej7nEyH8Ryz54jH0MLXflUYA3Er2zUxPSJu5R+g==" }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dev": true, + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/convert-source-map": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", @@ -2467,9 +2832,9 @@ "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" }, "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", + "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", "dependencies": { "ms": "2.1.2" }, @@ -2494,6 +2859,42 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "dev": true, + "dependencies": { + "mimic-response": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/decompress-response/node_modules/mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/defer-to-connect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", + "dev": true, + "engines": { + "node": ">=10" + } + }, "node_modules/delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", @@ -2548,9 +2949,9 @@ "dev": true }, "node_modules/dompurify": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.0.11.tgz", - "integrity": "sha512-Fan4uMuyB26gFV3ovPoEoQbxRRPfTu3CvImyZnhGq5fsIEO+gEFLp45ISFt+kQBWsK5ulDdT0oV28jS1UrwQLg==" + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.1.5.tgz", + "integrity": "sha512-lwG+n5h8QNpxtyrJW/gJWckL+1/DQiYMX8f7t8Z2AZTPw1esVrqjI63i7Zc2Gz0aKzLVMYC1V1PL/ky+aY/NgA==" }, "node_modules/downshift": { "version": "7.6.2", @@ -2579,15 +2980,24 @@ "dev": true }, "node_modules/electron-to-chromium": { - "version": "1.4.723", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.723.tgz", - "integrity": "sha512-rxFVtrMGMFROr4qqU6n95rUi9IlfIm+lIAt+hOToy/9r6CDv0XiEcQdC3VP71y1pE5CFTzKV0RvxOGYCPWWHPw==" + "version": "1.4.790", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.790.tgz", + "integrity": "sha512-eVGeQxpaBYbomDBa/Mehrs28MdvCXfJmEFzaMFsv8jH/MJDLIylJN81eTJ5kvx7B7p18OiPK0BkC06lydEy63A==" }, "node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "dependencies": { + "once": "^1.4.0" + } + }, "node_modules/engine.io-client": { "version": "6.5.3", "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.5.3.tgz", @@ -2684,6 +3094,127 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/execa": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "integrity": "sha512-RztN09XglpYI7aBBrJCPW95jEH7YF1UEPOoX9yDhUTPdp7mK+CQvnLTuD10BNXZ3byLTu2uehZ8EcKT/4CGiFw==", + "dev": true, + "dependencies": { + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/execa/node_modules/cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==", + "dev": true, + "dependencies": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "node_modules/execa/node_modules/lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "dependencies": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "node_modules/execa/node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "dev": true, + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/execa/node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/execa/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/execa/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/execa/node_modules/yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==", + "dev": true + }, + "node_modules/executable": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/executable/-/executable-4.1.1.tgz", + "integrity": "sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==", + "dev": true, + "dependencies": { + "pify": "^2.2.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ext-list": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/ext-list/-/ext-list-2.2.2.tgz", + "integrity": "sha512-u+SQgsubraE6zItfVA0tBuCBhfU9ogSRnsvygI7wht9TS510oLkBRXBsqopeUG/GBOIQyKZO9wjTqIu/sf5zFA==", + "dev": true, + "dependencies": { + "mime-db": "^1.28.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ext-name": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ext-name/-/ext-name-5.0.0.tgz", + "integrity": "sha512-yblEwXAbGv1VQDmow7s38W77hzAgJAO50ztBLMcUyUBfxv1HC+LGwtiEN+Co6LtlqT/5uwVOxsD4TNIilWhwdQ==", + "dev": true, + "dependencies": { + "ext-list": "^2.0.0", + "sort-keys-length": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", @@ -2748,6 +3279,52 @@ "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.4.8.tgz", "integrity": "sha512-FJqqoDBR00Mdj9ppamLa/Y7vxm+PRmNWA67N846RvsoYVMKB4q3y/de5PA7gUmRMYK/8CMz2GDZQmCRN1wBcWA==" }, + "node_modules/file-type": { + "version": "17.1.6", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-17.1.6.tgz", + "integrity": "sha512-hlDw5Ev+9e883s0pwUsuuYNu4tD7GgpUnOvykjv1Gya0ZIjuKumthDRua90VUn6/nlRKAjcxLUnHNTIUWwWIiw==", + "dev": true, + "dependencies": { + "readable-web-to-node-stream": "^3.0.2", + "strtok3": "^7.0.0-alpha.9", + "token-types": "^5.0.0-alpha.2" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/file-type?sponsor=1" + } + }, + "node_modules/filename-reserved-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-3.0.0.tgz", + "integrity": "sha512-hn4cQfU6GOT/7cFHXBqeBg2TbrMBgdD0kcjLhvSQYYwm3s4B6cjvBfb7nBALJLAXqmU5xajSa7X2NnUud/VCdw==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/filenamify": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-5.1.1.tgz", + "integrity": "sha512-M45CbrJLGACfrPOkrTp3j2EcO9OBkKUYME0eiqOCa7i2poaklU0jhlIaMlr8ijLorT0uLAzrn3qXOp5684CkfA==", + "dev": true, + "dependencies": { + "filename-reserved-regex": "^3.0.0", + "strip-outer": "^2.0.0", + "trim-repeated": "^2.0.0" + }, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/fill-range": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", @@ -2760,6 +3337,21 @@ "node": ">=8" } }, + "node_modules/find-versions": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/find-versions/-/find-versions-5.1.0.tgz", + "integrity": "sha512-+iwzCJ7C5v5KgcBuueqVoNiHVoQpwiUK5XFLjf0affFTep+Wcw93tPvmb8tqujDNmzhBDPddnWV/qgWSXgq+Hg==", + "dev": true, + "dependencies": { + "semver-regex": "^4.0.5" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/foreground-child": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", @@ -2856,23 +3448,32 @@ "node": ">=6.9.0" } }, + "node_modules/get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/glob": { - "version": "10.3.12", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.12.tgz", - "integrity": "sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg==", + "version": "10.4.1", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.1.tgz", + "integrity": "sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==", "dev": true, "dependencies": { "foreground-child": "^3.1.0", - "jackspeak": "^2.3.6", - "minimatch": "^9.0.1", - "minipass": "^7.0.4", - "path-scurry": "^1.10.2" + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "path-scurry": "^1.11.1" }, "bin": { "glob": "dist/esm/bin.mjs" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=16 || 14 >=14.18" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -2898,6 +3499,31 @@ "node": ">=4" } }, + "node_modules/got": { + "version": "11.8.6", + "resolved": "https://registry.npmjs.org/got/-/got-11.8.6.tgz", + "integrity": "sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==", + "dev": true, + "dependencies": { + "@sindresorhus/is": "^4.0.0", + "@szmarczak/http-timer": "^4.0.5", + "@types/cacheable-request": "^6.0.1", + "@types/responselike": "^1.0.0", + "cacheable-lookup": "^5.0.3", + "cacheable-request": "^7.0.2", + "decompress-response": "^6.0.0", + "http2-wrapper": "^1.0.0-beta.5.2", + "lowercase-keys": "^2.0.0", + "p-cancelable": "^2.0.0", + "responselike": "^2.0.0" + }, + "engines": { + "node": ">=10.19.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/got?sponsor=1" + } + }, "node_modules/graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", @@ -3317,9 +3943,9 @@ } }, "node_modules/hast-util-to-text": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/hast-util-to-text/-/hast-util-to-text-4.0.0.tgz", - "integrity": "sha512-EWiE1FSArNBPUo1cKWtzqgnuRQwEeQbQtnFJRYV1hb1BWDgrAlBU0ExptvZMM/KSA82cDpm2sFGf3Dmc5Mza3w==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/hast-util-to-text/-/hast-util-to-text-4.0.2.tgz", + "integrity": "sha512-KK6y/BN8lbaq654j7JgBydev7wuNMcID54lkRav1P0CaE1e47P72AWWPiGKXTJU271ooYzcvTAn/Zt0REnvc7A==", "dependencies": { "@types/hast": "^3.0.0", "@types/unist": "^3.0.0", @@ -3432,6 +4058,54 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", + "dev": true + }, + "node_modules/http2-wrapper": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", + "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", + "dev": true, + "dependencies": { + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.0.0" + }, + "engines": { + "node": ">=10.19.0" + } + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, "node_modules/immer": { "version": "9.0.21", "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.21.tgz", @@ -3441,6 +4115,12 @@ "url": "https://opencollective.com/immer" } }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, "node_modules/inline-style-parser": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.3.tgz", @@ -3581,6 +4261,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", @@ -3588,9 +4277,9 @@ "dev": true }, "node_modules/jackspeak": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", - "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.3.0.tgz", + "integrity": "sha512-glPiBfKguqA7v8JsXO3iLjJWZ9FV1vNpoI0I9hI9Mnk5yetO9uPLSpiCEmiVijAssv2f54HpvtzvAHfhPieiDQ==", "dev": true, "dependencies": { "@isaacs/cliui": "^8.0.2" @@ -3606,9 +4295,9 @@ } }, "node_modules/jiti": { - "version": "1.21.0", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz", - "integrity": "sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==", + "version": "1.21.3", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.3.tgz", + "integrity": "sha512-uy2bNX5zQ+tESe+TiC7ilGRz8AtRGmnJH55NC5S0nSUjvvvM2hJHmefHErugGXN4pNv4Qx7vLsnNw9qJ9mtIsw==", "dev": true, "bin": { "jiti": "bin/jiti.js" @@ -3630,6 +4319,12 @@ "node": ">=4" } }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, "node_modules/json-schema-traverse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", @@ -3673,6 +4368,15 @@ "katex": "cli.js" } }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.1" + } + }, "node_modules/lilconfig": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", @@ -3726,6 +4430,15 @@ "loose-envify": "cli.js" } }, + "node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/lowlight": { "version": "1.20.0", "resolved": "https://registry.npmjs.org/lowlight/-/lowlight-1.20.0.tgz", @@ -3817,9 +4530,9 @@ } }, "node_modules/mdast-util-from-markdown": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.0.tgz", - "integrity": "sha512-n7MTOr/z+8NAX/wmhhDji8O3bRvPTV/U0oTCaZJkjhPSKTPhS3xufVhKGF8s1pJ7Ox4QgoIU7KHseh09S+9rTA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.1.tgz", + "integrity": "sha512-aJEUyzZ6TzlsX2s5B4Of7lN7EQtAxvtradMMglCQDyaTFgse6CmtmdJ15ElnVRlCg1vpNyVtbem0PWzlNieZsA==", "dependencies": { "@types/mdast": "^4.0.0", "@types/unist": "^3.0.0", @@ -3984,6 +4697,12 @@ "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz", "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==" }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, "node_modules/merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", @@ -4028,9 +4747,9 @@ } }, "node_modules/micromark-core-commonmark": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.0.tgz", - "integrity": "sha512-jThOz/pVmAYUtkroV3D5c1osFXAMv9e0ypGDOIZuCeAe91/sD6BoE2Sjzt30yuXtwOYUmySOhMas/PVyh02itA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.1.tgz", + "integrity": "sha512-CUQyKr1e///ZODyD1U3xit6zXwy1a8q2a1S1HKtIlmgvurrEpaw/Y9y6KSIbF8P59cn/NjzHyO+Q2fAyYLQrAA==", "funding": [ { "type": "GitHub Sponsors", @@ -4382,9 +5101,9 @@ } }, "node_modules/micromark-util-subtokenize": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.0.0.tgz", - "integrity": "sha512-vc93L1t+gpR3p8jxeVdaYlbV2jTYteDje19rNSS/H5dlhxUYll5Fy6vJ2cDwP8RnsXi818yGty1ayP55y3W6fg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.0.1.tgz", + "integrity": "sha512-jZNtiFl/1aY73yS3UGQkutD0UbhTt68qnRpw2Pifmz5wV9h8gOVsN70v+Lq/f1rKaU/W8pxRe8y8Q9FX1AOe1Q==", "funding": [ { "type": "GitHub Sponsors", @@ -4433,12 +5152,12 @@ ] }, "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz", + "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==", "dev": true, "dependencies": { - "braces": "^3.0.2", + "braces": "^3.0.3", "picomatch": "^2.3.1" }, "engines": { @@ -4466,6 +5185,24 @@ "node": ">= 0.6" } }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/minimatch": { "version": "9.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", @@ -4482,9 +5219,9 @@ } }, "node_modules/minipass": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", - "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", "dev": true, "engines": { "node": ">=16 || 14 >=14.17" @@ -4496,9 +5233,9 @@ "integrity": "sha512-ihFnidEeU8iXzcVHy74dhkxh/dn8Dc08ERl0xwoMMGqp4+LvRSCgicb+zGqWthVokQKvCSxITlh3P08OzdTYCQ==" }, "node_modules/monaco-editor": { - "version": "0.47.0", - "resolved": "https://registry.npmjs.org/monaco-editor/-/monaco-editor-0.47.0.tgz", - "integrity": "sha512-VabVvHvQ9QmMwXu4du008ZDuyLnHs9j7ThVFsiJoXSOQk18+LF89N4ADzPbFenm0W4V2bGHnFBztIRQTgBfxzw==", + "version": "0.49.0", + "resolved": "https://registry.npmjs.org/monaco-editor/-/monaco-editor-0.49.0.tgz", + "integrity": "sha512-2I8/T3X/hLxB2oPHgqcNYUVdA/ZEFShT7IAujifIPMfKkNbLOqY8XCoyHCXrsdjb36dW9MwoTwBCFpXKMwNwaQ==", "peer": true }, "node_modules/ms": { @@ -4535,6 +5272,40 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, + "node_modules/nice-napi": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/nice-napi/-/nice-napi-1.0.2.tgz", + "integrity": "sha512-px/KnJAJZf5RuBGcfD+Sp2pAKq0ytz8j+1NehvgIGFkvtvFrDM3T8E4x/JJODXK9WZow8RRGrbA9QQ3hs+pDhA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "!win32" + ], + "dependencies": { + "node-addon-api": "^3.0.0", + "node-gyp-build": "^4.2.2" + } + }, + "node_modules/node-addon-api": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz", + "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==", + "dev": true, + "optional": true + }, + "node_modules/node-gyp-build": { + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.1.tgz", + "integrity": "sha512-OSs33Z9yWr148JZcbZd5WiAXhh/n9z8TxQcdMhIOlpN9AhWpLfvVFO73+m77bBABQMaY9XSvIa+qk0jlI7Gcaw==", + "dev": true, + "optional": true, + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" + } + }, "node_modules/node-releases": { "version": "2.0.14", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", @@ -4558,11 +5329,44 @@ "node": ">=0.10.0" } }, - "node_modules/not": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/not/-/not-0.1.0.tgz", - "integrity": "sha512-5PDmaAsVfnWUgTUbJ3ERwn7u79Z0dYxN9ErxCpVJJqe2RK0PJ3z+iFUxuqjwtlDDegXvtWoxD/3Fzxox7tFGWA==" - }, + "node_modules/normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/not": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/not/-/not-0.1.0.tgz", + "integrity": "sha512-5PDmaAsVfnWUgTUbJ3ERwn7u79Z0dYxN9ErxCpVJJqe2RK0PJ3z+iFUxuqjwtlDDegXvtWoxD/3Fzxox7tFGWA==" + }, + "node_modules/npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==", + "dev": true, + "dependencies": { + "path-key": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-path/node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/nth-check": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", @@ -4591,6 +5395,30 @@ "node": ">= 6" } }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/onigasm": { "version": "2.2.5", "resolved": "https://registry.npmjs.org/onigasm/-/onigasm-2.2.5.tgz", @@ -4604,6 +5432,36 @@ "resolved": "https://registry.npmjs.org/orderedmap/-/orderedmap-2.1.1.tgz", "integrity": "sha512-TvAWxi0nDe1j/rtMcWcIj94+Ffe6n7zhow33h40SKxmsmozs6dz/e+EajymfoFcHd7sxNn8yHM8839uixMOV6g==" }, + "node_modules/os-filter-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/os-filter-obj/-/os-filter-obj-2.0.0.tgz", + "integrity": "sha512-uksVLsqG3pVdzzPvmAHpBK0wKxYItuzZr7SziusRPoz67tGV8rL1szZ6IdeUrbqLjGDwApBtN29eEE3IqGHOjg==", + "dev": true, + "dependencies": { + "arch": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-cancelable": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", + "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/parse-entities": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.1.tgz", @@ -4655,34 +5513,47 @@ "dev": true }, "node_modules/path-scurry": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.2.tgz", - "integrity": "sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", "dev": true, "dependencies": { "lru-cache": "^10.2.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=16 || 14 >=14.18" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", - "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", + "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", "dev": true, "engines": { "node": "14 || >=16.14" } }, + "node_modules/peek-readable": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-5.0.0.tgz", + "integrity": "sha512-YtCKvLUOvwtMGmrniQPdO7MwPjgkFBtFIrmfSbYmYuq3tKDV/mcfAhBth1+C3ru7uXIZasc/pHnb+YDYNkkj4A==", + "dev": true, + "engines": { + "node": ">=14.16" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" + } + }, "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==" }, "node_modules/picomatch": { "version": "2.3.1", @@ -4713,6 +5584,15 @@ "node": ">= 6" } }, + "node_modules/piscina": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/piscina/-/piscina-4.5.1.tgz", + "integrity": "sha512-DVhySLPfqAW+uRH9dF0bjA2xEWr5ANLAzkYXx5adSLMFnwssSIVJYhg0FlvgYsnT/khILQJ3WkjqbAlBvt+maw==", + "dev": true, + "optionalDependencies": { + "nice-napi": "^1.0.2" + } + }, "node_modules/postcss": { "version": "8.4.38", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", @@ -4844,9 +5724,9 @@ } }, "node_modules/postcss-selector-parser": { - "version": "6.0.16", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.16.tgz", - "integrity": "sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.0.tgz", + "integrity": "sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==", "dev": true, "dependencies": { "cssesc": "^3.0.0", @@ -4862,18 +5742,18 @@ "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" }, "node_modules/posthog-js": { - "version": "1.116.6", - "resolved": "https://registry.npmjs.org/posthog-js/-/posthog-js-1.116.6.tgz", - "integrity": "sha512-rvt8HxzJD4c2B/xsUa4jle8ApdqljeBI2Qqjp4XJMohQf18DXRyM6b96H5/UMs8jxYuZG14Er0h/kEIWeU6Fmw==", + "version": "1.136.8", + "resolved": "https://registry.npmjs.org/posthog-js/-/posthog-js-1.136.8.tgz", + "integrity": "sha512-R3NtFXoBv5bbm0nRNbjdKfCVS9UCHJf/EbBbDVcfqj4DaS1ovVSZ7wmx4Uj6SSQFwDBSRh6xePSVq8XW3AVPOw==", "dependencies": { "fflate": "^0.4.8", "preact": "^10.19.3" } }, "node_modules/preact": { - "version": "10.20.1", - "resolved": "https://registry.npmjs.org/preact/-/preact-10.20.1.tgz", - "integrity": "sha512-JIFjgFg9B2qnOoGiYMVBtrcFxHqn+dNXbq76bVmcaHYJFYR4lW67AOcXgAYQQTDYXDOg/kTZrKPNCdRgJ2UJmw==", + "version": "10.22.0", + "resolved": "https://registry.npmjs.org/preact/-/preact-10.22.0.tgz", + "integrity": "sha512-RRurnSjJPj4rp5K6XoP45Ui33ncb7e4H7WiOHVpjbkvqvA3U+N8Z6Qbo0AE6leGYBV66n8EhEaFixvIu3SkxFw==", "funding": { "type": "opencollective", "url": "https://opencollective.com/preact" @@ -4903,9 +5783,9 @@ "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" }, "node_modules/property-information": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.4.1.tgz", - "integrity": "sha512-OHYtXfu5aI2sS2LWFSN5rgJjrQ4pCy8i1jubJLe2QvMF8JJ++HXTUIVWFLfXJoaOfvYYjk2SN8J2wFUWIGXT4w==", + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.5.0.tgz", + "integrity": "sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -4988,12 +5868,12 @@ } }, "node_modules/prosemirror-markdown": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/prosemirror-markdown/-/prosemirror-markdown-1.12.0.tgz", - "integrity": "sha512-6F5HS8Z0HDYiS2VQDZzfZP6A0s/I0gbkJy8NCzzDMtcsz3qrfqyroMMeoSjAmOhDITyon11NbXSzztfKi+frSQ==", + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/prosemirror-markdown/-/prosemirror-markdown-1.13.0.tgz", + "integrity": "sha512-UziddX3ZYSYibgx8042hfGKmukq5Aljp2qoBiJRejD/8MH70siQNz5RB1TrdTPheqLMy4aCe4GYNF10/3lQS5g==", "dependencies": { "markdown-it": "^14.0.0", - "prosemirror-model": "^1.0.0" + "prosemirror-model": "^1.20.0" } }, "node_modules/prosemirror-menu": { @@ -5008,9 +5888,9 @@ } }, "node_modules/prosemirror-model": { - "version": "1.19.4", - "resolved": "https://registry.npmjs.org/prosemirror-model/-/prosemirror-model-1.19.4.tgz", - "integrity": "sha512-RPmVXxUfOhyFdayHawjuZCxiROsm9L4FCUA6pWI+l7n2yCBsWy9VpdE1hpDHUS8Vad661YLY9AzqfjLhAKQ4iQ==", + "version": "1.21.1", + "resolved": "https://registry.npmjs.org/prosemirror-model/-/prosemirror-model-1.21.1.tgz", + "integrity": "sha512-IVBAuMqOfltTr7yPypwpfdGT+6rGAteVOw2FO6GEvCGGa1ZwxLseqC1Eax/EChDvG/xGquB2d/hLdgh3THpsYg==", "dependencies": { "orderedmap": "^2.0.0" } @@ -5070,23 +5950,39 @@ } }, "node_modules/prosemirror-transform": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/prosemirror-transform/-/prosemirror-transform-1.8.0.tgz", - "integrity": "sha512-BaSBsIMv52F1BVVMvOmp1yzD3u65uC3HTzCBQV1WDPqJRQ2LuHKcyfn0jwqodo8sR9vVzMzZyI+Dal5W9E6a9A==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/prosemirror-transform/-/prosemirror-transform-1.9.0.tgz", + "integrity": "sha512-5UXkr1LIRx3jmpXXNKDhv8OyAOeLTGuXNwdVfg8x27uASna/wQkr9p6fD3eupGOi4PLJfbezxTyi/7fSJypXHg==", "dependencies": { - "prosemirror-model": "^1.0.0" + "prosemirror-model": "^1.21.0" } }, "node_modules/prosemirror-view": { - "version": "1.33.3", - "resolved": "https://registry.npmjs.org/prosemirror-view/-/prosemirror-view-1.33.3.tgz", - "integrity": "sha512-P4Ao/bc4OrU/2yLIf8dL4lJaEtjLR3QjIvQHgJYp2jUS7kYM4bSR6okbBjkqzOs/FwUon6UGjTLdKMnPL1MZqw==", + "version": "1.33.7", + "resolved": "https://registry.npmjs.org/prosemirror-view/-/prosemirror-view-1.33.7.tgz", + "integrity": "sha512-jo6eMQCtPRwcrA2jISBCnm0Dd2B+szS08BU1Ay+XGiozHo5EZMHfLQE8R5nO4vb1spTH2RW1woZIYXRiQsuP8g==", "dependencies": { - "prosemirror-model": "^1.16.0", + "prosemirror-model": "^1.20.0", "prosemirror-state": "^1.0.0", "prosemirror-transform": "^1.1.0" } }, + "node_modules/pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==", + "dev": true + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, "node_modules/punycode": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", @@ -5123,10 +6019,22 @@ } ] }, + "node_modules/quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/react": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", - "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", "dependencies": { "loose-envify": "^1.1.0" }, @@ -5135,15 +6043,15 @@ } }, "node_modules/react-dom": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", - "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", "dependencies": { "loose-envify": "^1.1.0", - "scheduler": "^0.23.0" + "scheduler": "^0.23.2" }, "peerDependencies": { - "react": "^18.2.0" + "react": "^18.3.1" } }, "node_modules/react-error-boundary": { @@ -5158,9 +6066,9 @@ } }, "node_modules/react-hook-form": { - "version": "7.51.2", - "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.51.2.tgz", - "integrity": "sha512-y++lwaWjtzDt/XNnyGDQy6goHskFualmDlf+jzEZvjvz6KWDf7EboL7pUvRCzPTJd0EOPpdekYaQLEvvG6m6HA==", + "version": "7.51.5", + "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.51.5.tgz", + "integrity": "sha512-J2ILT5gWx1XUIJRETiA7M19iXHlG74+6O3KApzvqB/w8S5NQR7AbU8HVZrMALdmDgWpRPYiZJl0zx8Z4L2mP6Q==", "engines": { "node": ">=12.22.0" }, @@ -5173,9 +6081,9 @@ } }, "node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==" }, "node_modules/react-markdown": { "version": "9.0.1", @@ -5579,11 +6487,11 @@ } }, "node_modules/react-router": { - "version": "6.22.3", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.22.3.tgz", - "integrity": "sha512-dr2eb3Mj5zK2YISHK++foM9w4eBnO23eKnZEDs7c880P6oKbrjz/Svg9+nxqtHQK+oMW4OtjZca0RqPglXxguQ==", + "version": "6.23.1", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.23.1.tgz", + "integrity": "sha512-fzcOaRF69uvqbbM7OhvQyBTFDVrrGlsFdS3AL+1KfIBtGETibHzi3FkoTRyiDJnWNc2VxrfvR+657ROHjaNjqQ==", "dependencies": { - "@remix-run/router": "1.15.3" + "@remix-run/router": "1.16.1" }, "engines": { "node": ">=14.0.0" @@ -5593,12 +6501,12 @@ } }, "node_modules/react-router-dom": { - "version": "6.22.3", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.22.3.tgz", - "integrity": "sha512-7ZILI7HjcE+p31oQvwbokjk6OA/bnFxrhJ19n82Ex9Ph8fNAq+Hm/7KchpMGlTgWhUxRHMMCut+vEtNpWpowKw==", + "version": "6.23.1", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.23.1.tgz", + "integrity": "sha512-utP+K+aSTtEdbWpC+4gxhdlPFwuEfDKq8ZrPFU65bbRJY+l706qjR7yaidBpo3MSeA/fzwbXWbKBI6ftOnP3OQ==", "dependencies": { - "@remix-run/router": "1.15.3", - "react-router": "6.22.3" + "@remix-run/router": "1.16.1", + "react-router": "6.23.1" }, "engines": { "node": ">=14.0.0" @@ -5636,9 +6544,9 @@ } }, "node_modules/react-tooltip": { - "version": "5.26.3", - "resolved": "https://registry.npmjs.org/react-tooltip/-/react-tooltip-5.26.3.tgz", - "integrity": "sha512-MpYAws8CEHUd/RC4GaDCdoceph/T4KHM5vS5Dbk8FOmLMvvIht2ymP2htWdrke7K6lqPO8rz8+bnwWUIXeDlzg==", + "version": "5.26.4", + "resolved": "https://registry.npmjs.org/react-tooltip/-/react-tooltip-5.26.4.tgz", + "integrity": "sha512-5WyDrsfw1+6qNVSr3IjqElqJ+cCwE8+44b+HpJ8qRLv7v0a3mcKf8wvv+NfgALFS6QpksGFqTLV2JQ60c+okZQ==", "dependencies": { "@floating-ui/dom": "^1.6.1", "classnames": "^2.3.0" @@ -5657,6 +6565,36 @@ "pify": "^2.3.0" } }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readable-web-to-node-stream": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.2.tgz", + "integrity": "sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw==", + "dev": true, + "dependencies": { + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" + } + }, "node_modules/readdirp": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", @@ -5994,9 +6932,9 @@ } }, "node_modules/reselect": { - "version": "4.1.8", - "resolved": "https://registry.npmjs.org/reselect/-/reselect-4.1.8.tgz", - "integrity": "sha512-ab9EmR80F/zQTMNeneUr4cv+jSwPJgIlvEmVwLerwrWVbpLlBuls9XHzIeTFy4cegU2NHBp3va0LKOzU5qFEYQ==" + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/reselect/-/reselect-5.1.1.tgz", + "integrity": "sha512-K/BG6eIky/SBpzfHZv/dd+9JBFiS4SWV7FIujVyJRux6e45+73RaUHXLmIR1f7WOMaQ0U1km6qwklRQxpJJY0w==" }, "node_modules/resolve": { "version": "1.22.8", @@ -6015,6 +6953,24 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/resolve-alpn": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", + "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==", + "dev": true + }, + "node_modules/responselike": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz", + "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==", + "dev": true, + "dependencies": { + "lowercase-keys": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/reusify": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", @@ -6069,10 +7025,30 @@ "queue-microtask": "^1.2.2" } }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, "node_modules/scheduler": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", - "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", "dependencies": { "loose-envify": "^1.1.0" } @@ -6086,6 +7062,45 @@ "semver": "bin/semver.js" } }, + "node_modules/semver-regex": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-4.0.5.tgz", + "integrity": "sha512-hunMQrEy1T6Jr2uEVjrAIqjwWcQTgOAcIM52C8MY1EZSD3DDNft04XzvYKPqjED65bNVVko0YI38nYeEHCX3yw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/semver-truncate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/semver-truncate/-/semver-truncate-3.0.0.tgz", + "integrity": "sha512-LJWA9kSvMolR51oDE6PN3kALBNaUdkxzAGcexw8gjMA8xr5zUqK0JiR3CgARSqanYF3Z1YHvsErb1KDgh+v7Rg==", + "dev": true, + "dependencies": { + "semver": "^7.3.5" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/semver-truncate/node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/seti-file-icons": { "version": "0.0.8", "resolved": "https://registry.npmjs.org/seti-file-icons/-/seti-file-icons-0.0.8.tgz", @@ -6129,6 +7144,15 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/slice-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", @@ -6201,6 +7225,48 @@ "node": ">=10.0.0" } }, + "node_modules/sort-keys": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", + "integrity": "sha512-vzn8aSqKgytVik0iwdBEi+zevbTYZogewTUM6dtpmGwEcdzbub/TX4bCzRhebDCRC3QzXgJsLRKB2V/Oof7HXg==", + "dev": true, + "dependencies": { + "is-plain-obj": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sort-keys-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sort-keys-length/-/sort-keys-length-1.0.1.tgz", + "integrity": "sha512-GRbEOUqCxemTAk/b32F2xa8wDTs+Z1QHOkbhJDQTvv/6G3ZkbJ+frYWsTcc7cBB3Fu4wy4XlLCuNtJuMn7Gsvw==", + "dev": true, + "dependencies": { + "sort-keys": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sort-keys/node_modules/is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, "node_modules/source-map-js": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", @@ -6224,6 +7290,15 @@ "resolved": "https://registry.npmjs.org/state-local/-/state-local-1.0.7.tgz", "integrity": "sha512-HTEHMNieakEnoe33shBYcZ7NX83ACUjCu8c40iOGEZsngj9zRnkqS9j1pqQPXwobB0ZcVTk27REb7COQ0UR59w==" }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, "node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", @@ -6253,9 +7328,9 @@ } }, "node_modules/stringify-entities": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.3.tgz", - "integrity": "sha512-BP9nNHMhhfcMbiuQKCqMjhDP5yBCAxsPu4pHFFzJ6Alo9dZgY4VLDPutXqIjpRiMoKdp7Av85Gr73Q5uH9k7+g==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz", + "integrity": "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==", "dependencies": { "character-entities-html4": "^2.0.0", "character-entities-legacy": "^3.0.0" @@ -6289,6 +7364,53 @@ "node": ">=8" } }, + "node_modules/strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-outer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-2.0.0.tgz", + "integrity": "sha512-A21Xsm1XzUkK0qK1ZrytDUvqsQWict2Cykhvi0fBQntGG5JSprESasEyV1EZ/4CiR5WB5KjzLTrP/bO37B0wPg==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strtok3": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-7.0.0.tgz", + "integrity": "sha512-pQ+V+nYQdC5H3Q7qBZAz/MO6lwGhoC2gOAjuouGf/VO0m7vQRh8QNMl2Uf6SwAtzZ9bOw3UIeBukEGNJl5dtXQ==", + "dev": true, + "dependencies": { + "@tokenizer/token": "^0.3.0", + "peek-readable": "^5.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" + } + }, "node_modules/style-to-object": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.6.tgz", @@ -6481,6 +7603,23 @@ "node": ">=8.0" } }, + "node_modules/token-types": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/token-types/-/token-types-5.0.1.tgz", + "integrity": "sha512-Y2fmSnZjQdDb9W4w4r1tswlMHylzWIeOKpx0aZH9BgGtACHhrk3OkT52AzwcuqTRBZtvvnTjDBh8eynMulu8Vg==", + "dev": true, + "dependencies": { + "@tokenizer/token": "^0.3.0", + "ieee754": "^1.2.1" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" + } + }, "node_modules/trim-lines": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", @@ -6490,6 +7629,30 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/trim-repeated": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-2.0.0.tgz", + "integrity": "sha512-QUHBFTJGdOwmp0tbOG505xAgOp/YliZP/6UgafFXYZ26WT1bvQmSMJUvkeVSASuJJHbqsFbynTvkd5W8RBTipg==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^5.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/trim-repeated/node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/trough": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/trough/-/trough-2.2.0.tgz", @@ -6506,9 +7669,9 @@ "dev": true }, "node_modules/tslib": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz", + "integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==" }, "node_modules/typescript": { "version": "4.9.5", @@ -6668,9 +7831,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", - "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz", + "integrity": "sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==", "funding": [ { "type": "opencollective", @@ -6686,8 +7849,8 @@ } ], "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" + "escalade": "^3.1.2", + "picocolors": "^1.0.1" }, "bin": { "update-browserslist-db": "cli.js" @@ -6705,9 +7868,9 @@ } }, "node_modules/use-sync-external-store": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz", - "integrity": "sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.2.tgz", + "integrity": "sha512-PElTlVMwpblvbNqQ82d2n6RjStvdSoNe9FG28kNfz3WiXilJm4DdNkEzRhCZuIDwY8U08WVihhGR5iRqAwfDiw==", "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0" } @@ -6992,6 +8155,12 @@ "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, "node_modules/ws": { "version": "8.11.0", "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", @@ -7034,9 +8203,9 @@ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" }, "node_modules/yaml": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.1.tgz", - "integrity": "sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg==", + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.3.tgz", + "integrity": "sha512-sntgmxj8o7DE7g/Qi60cqpLBA3HG3STcDA0kO+WfB05jEKhZMbY7umNm2rBpQvsmZ16/lPXCJGW2672dgOUkrg==", "dev": true, "bin": { "yaml": "bin.mjs" diff --git a/gui/package.json b/gui/package.json index 8bba33185..3b9842d82 100644 --- a/gui/package.json +++ b/gui/package.json @@ -13,10 +13,15 @@ "@heroicons/react": "^2.0.18", "@monaco-editor/react": "^4.6.0", "@reduxjs/toolkit": "^1.9.3", + "@tiptap/core": "^2.3.2", + "@tiptap/extension-document": "^2.3.2", "@tiptap/extension-dropcursor": "^2.1.16", + "@tiptap/extension-history": "^2.3.2", "@tiptap/extension-image": "^2.1.16", "@tiptap/extension-mention": "^2.1.13", + "@tiptap/extension-paragraph": "^2.3.2", "@tiptap/extension-placeholder": "^2.1.13", + "@tiptap/extension-text": "^2.3.2", "@tiptap/pm": "^2.1.13", "@tiptap/react": "^2.1.13", "@tiptap/starter-kit": "^2.1.13", @@ -28,7 +33,7 @@ "lodash": "^4.17.21", "minisearch": "^6.3.0", "onigasm": "^2.2.5", - "posthog-js": "^1.58.0", + "posthog-js": "^1.130.1", "prismjs": "^1.29.0", "react": "^18.2.0", "react-dom": "^18.2.0", @@ -47,6 +52,7 @@ "rehype-katex": "^7.0.0", "rehype-wrap-all": "^1.1.0", "remark-math": "^6.0.0", + "reselect": "^5.1.1", "seti-file-icons": "^0.0.8", "socket.io-client": "^4.7.2", "styled-components": "^5.3.6", @@ -57,7 +63,8 @@ "vscode-webview": "^1.0.1-beta.1" }, "devDependencies": { - "@google/generative-ai": "^0.11.4", + "@swc/cli": "^0.3.12", + "@swc/core": "^1.5.25", "@types/node": "^20.5.6", "@types/node-fetch": "^2.6.4", "@types/react": "^18.0.27", diff --git a/gui/public/jetbrains_index.html b/gui/public/jetbrains_index.html index 590109a35..d0cc90128 100644 --- a/gui/public/jetbrains_index.html +++ b/gui/public/jetbrains_index.html @@ -19,7 +19,7 @@ diff --git a/gui/public/logos/azure.png b/gui/public/logos/azure.png new file mode 100644 index 000000000..c24fcbe8c Binary files /dev/null and b/gui/public/logos/azure.png differ diff --git a/gui/public/logos/cohere.png b/gui/public/logos/cohere.png new file mode 100644 index 000000000..3da0b8373 Binary files /dev/null and b/gui/public/logos/cohere.png differ diff --git a/gui/public/logos/fireworks.png b/gui/public/logos/fireworks.png new file mode 100644 index 000000000..aecb2a27b Binary files /dev/null and b/gui/public/logos/fireworks.png differ diff --git a/gui/public/logos/msty.png b/gui/public/logos/msty.png new file mode 100644 index 000000000..8e1b2f3e4 Binary files /dev/null and b/gui/public/logos/msty.png differ diff --git a/gui/src/App.tsx b/gui/src/App.tsx index 50ae708a1..f72f9aaa8 100644 --- a/gui/src/App.tsx +++ b/gui/src/App.tsx @@ -1,23 +1,23 @@ -import { createContext } from "react"; import { useDispatch } from "react-redux"; import { RouterProvider, createMemoryRouter } from "react-router-dom"; import Layout from "./components/Layout"; +import { SubmenuContextProvidersContext } from "./context/SubmenuContextProviders"; +import { VscThemeContext } from "./context/VscTheme"; import useSetup from "./hooks/useSetup"; +import useSubmenuContextProviders from "./hooks/useSubmenuContextProviders"; +import { useVscTheme } from "./hooks/useVscTheme"; +import { AddNewModel, ConfigureProvider } from "./pages/AddNewModel"; import ErrorPage from "./pages/error"; +import GUI from "./pages/gui"; import { default as Help, default as HelpPage } from "./pages/help"; import History from "./pages/history"; import MigrationPage from "./pages/migration"; -import ModelConfig from "./pages/modelconfig"; -import Models from "./pages/models"; import MonacoPage from "./pages/monaco"; +import ApiKeyAutocompleteOnboarding from "./pages/onboarding/apiKeyAutocompleteOnboarding"; +import ApiKeysOnboarding from "./pages/onboarding/ApiKeysOnboarding"; +import LocalOnboarding from "./pages/onboarding/LocalOnboarding"; +import Onboarding from "./pages/onboarding/Onboarding"; import SettingsPage from "./pages/settings"; - -import { ContextSubmenuItem } from "core"; -import useSubmenuContextProviders from "./hooks/useSubmenuContextProviders"; -import { useVscTheme } from "./hooks/useVscTheme"; -import GUI from "./pages/gui"; -import ExistingUserOnboarding from "./pages/onboarding/existingUserOnboarding"; -import Onboarding from "./pages/onboarding/onboarding"; import Stats from "./pages/stats"; const router = createMemoryRouter([ @@ -51,16 +51,16 @@ const router = createMemoryRouter([ element: , }, { - path: "/models", - element: , + path: "/addModel", + element: , }, { - path: "/help", - element: , + path: "/addModel/provider/:providerName", + element: , }, { - path: "/modelconfig/:modelName", - element: , + path: "/help", + element: , }, { path: "/monaco", @@ -71,30 +71,25 @@ const router = createMemoryRouter([ element: , }, { - path: "/existingUserOnboarding", - element: , + path: "/localOnboarding", + element: , }, { path: "/migration", element: , }, + { + path: "/apiKeysOnboarding", + element: , + }, + { + path: "/apiKeyAutocompleteOnboarding", + element: , + }, ], }, ]); -export const SubmenuContextProvidersContext = createContext<{ - getSubmenuContextItems: ( - providerTitle: string | undefined, - query: string, - ) => (ContextSubmenuItem & { providerTitle: string })[]; - addItem: (providerTitle: string, item: ContextSubmenuItem) => void; -}>({ - getSubmenuContextItems: () => [], - addItem: () => {}, -}); - -export const VscThemeContext = createContext(undefined); - function App() { const dispatch = useDispatch(); diff --git a/gui/src/components/HeaderButtonWithText.tsx b/gui/src/components/HeaderButtonWithText.tsx index b1b4f5241..9c5647a91 100644 --- a/gui/src/components/HeaderButtonWithText.tsx +++ b/gui/src/components/HeaderButtonWithText.tsx @@ -5,7 +5,7 @@ import { HeaderButton, StyledTooltip } from "."; import { v4 as uuidv4 } from "uuid"; interface HeaderButtonWithTextProps { - text: string; + text: string | undefined; onClick?: (e: any) => void; children: React.ReactNode; disabled?: boolean; @@ -15,6 +15,8 @@ interface HeaderButtonWithTextProps { onKeyDown?: (e: any) => void; tabIndex?: number; style?: React.CSSProperties; + backgroundColor?: string; + hoverBackgroundColor?: string; } const HeaderButtonWithText = React.forwardRef< @@ -29,6 +31,8 @@ const HeaderButtonWithText = React.forwardRef< return ( <> {props.children} - {tooltipPortalDiv && + {props.text && + tooltipPortalDiv && ReactDOM.createPortal( {props.text} diff --git a/gui/src/components/Layout.tsx b/gui/src/components/Layout.tsx index 675f893e7..e4e41e963 100644 --- a/gui/src/components/Layout.tsx +++ b/gui/src/components/Layout.tsx @@ -2,17 +2,20 @@ import { Cog6ToothIcon, QuestionMarkCircleIcon, } from "@heroicons/react/24/outline"; -import { useEffect, useState } from "react"; +import { IndexingProgressUpdate } from "core"; +import { useContext, useEffect, useState } from "react"; import { useDispatch, useSelector } from "react-redux"; import { Outlet, useLocation, useNavigate } from "react-router-dom"; import styled from "styled-components"; import { + CustomScrollbarDiv, defaultBorderRadius, - vscBackground, vscForeground, vscInputBackground, } from "."; +import { IdeMessengerContext } from "../context/IdeMessenger"; import { useWebviewListener } from "../hooks/useWebviewListener"; +import { shouldBeginOnboarding } from "../pages/onboarding/utils"; import { defaultModelSelector } from "../redux/selectors/modelSelectors"; import { setBottomMessage, @@ -21,37 +24,21 @@ import { } from "../redux/slices/uiStateSlice"; import { RootState } from "../redux/store"; import { getFontSize, isMetaEquivalentKeyPressed } from "../util"; -import { isJetBrains, postToIde } from "../util/ide"; -import { getLocalStorage } from "../util/localStorage"; -import HeaderButtonWithText from "./HeaderButtonWithText"; +import { FREE_TRIAL_LIMIT_REQUESTS } from "../util/freeTrial"; +import { getLocalStorage, setLocalStorage } from "../util/localStorage"; import TextDialog from "./dialogs"; +import HeaderButtonWithText from "./HeaderButtonWithText"; import IndexingProgressBar from "./loaders/IndexingProgressBar"; import ProgressBar from "./loaders/ProgressBar"; import ModelSelect from "./modelSelection/ModelSelect"; +import PostHogPageView from "./PosthogPageView"; // #region Styled Components const FOOTER_HEIGHT = "1.8em"; -const LayoutTopDiv = styled.div` +const LayoutTopDiv = styled(CustomScrollbarDiv)` height: 100%; border-radius: ${defaultBorderRadius}; - scrollbar-base-color: transparent; - scrollbar-width: thin; - background-color: ${vscBackground}; - - & * { - ::-webkit-scrollbar { - width: 4px; - } - - ::-webkit-scrollbar:horizontal { - height: 4px; - } - - ::-webkit-scrollbar-thumb { - border-radius: 2px; - } - } `; const BottomMessageDiv = styled.div<{ displayOnBottom: boolean }>` @@ -103,10 +90,18 @@ const DropdownPortalDiv = styled.div` // #endregion +const HIDE_FOOTER_ON_PAGES = [ + "/onboarding", + "/localOnboarding", + "/apiKeyOnboarding", +]; + const Layout = () => { const navigate = useNavigate(); const location = useLocation(); const dispatch = useDispatch(); + const ideMessenger = useContext(IdeMessengerContext); + const dialogMessage = useSelector( (state: RootState) => state.uiState.dialogMessage, ); @@ -157,7 +152,7 @@ const Layout = () => { ); useWebviewListener("openSettings", async () => { - postToIde("openConfigJson", undefined); + ideMessenger.post("openConfigJson", undefined); }); useWebviewListener( @@ -174,27 +169,63 @@ const Layout = () => { ); useWebviewListener("indexProgress", async (data) => { - setIndexingProgress(data.progress); - setIndexingTask(data.desc); + setIndexingState(data); }); + useWebviewListener( + "addApiKey", + async () => { + navigate("/apiKeyOnboarding"); + }, + [navigate], + ); + + useWebviewListener( + "openOnboarding", + async () => { + navigate("/onboarding"); + }, + [navigate], + ); + + useWebviewListener( + "incrementFtc", + async () => { + const u = getLocalStorage("ftc"); + if (u) { + setLocalStorage("ftc", u + 1); + } else { + setLocalStorage("ftc", 1); + } + }, + [], + ); + + useWebviewListener( + "setupLocalModel", + async () => { + ideMessenger.post("completeOnboarding", { + mode: "localAfterFreeTrial", + }); + navigate("/localOnboarding"); + }, + [navigate], + ); + useEffect(() => { - const onboardingComplete = getLocalStorage("onboardingComplete"); if ( - !onboardingComplete && - !location.pathname.startsWith("/onboarding") && - !location.pathname.startsWith("/existingUserOnboarding") + shouldBeginOnboarding() && + (location.pathname === "/" || location.pathname === "/index.html") ) { - if (getLocalStorage("mainTextEntryCounter")) { - navigate("/existingUserOnboarding"); - } else { - navigate("/onboarding"); - } + navigate("/onboarding"); } }, [location]); - const [indexingProgress, setIndexingProgress] = useState(1); - const [indexingTask, setIndexingTask] = useState("Indexing Codebase"); + const [indexingState, setIndexingState] = useState({ + desc: "Loading indexing config", + progress: 0.0, + status: "loading", + }); return ( @@ -218,75 +249,47 @@ const Layout = () => { /> + -
-
- {/* {localStorage.getItem("ide") === "jetbrains" || - localStorage.getItem("hideFeature") === "true" || ( - { - localStorage.setItem("hideFeature", "true"); - }} - onMouseEnter={() => { - dispatch( - setBottomMessage( - `🎁 New Feature: Use ${getMetaKeyLabel()}⇧R automatically debug errors in the terminal (you can click the sparkle icon to make it go away)` - ) - ); - }} - onMouseLeave={() => { - dispatch( - setBottomMessageCloseTimeout( - setTimeout(() => { - dispatch(setBottomMessage(undefined)); - }, 2000) - ) - ); - }} - width="1.3em" - height="1.3em" - color="yellow" - /> - )} */} - - {indexingProgress >= 1 && // Would take up too much space together with indexing progress - defaultModel?.provider === "free-trial" && - (location.pathname === "/settings" || - parseInt(localStorage.getItem("ftc") || "0") >= 125) && ( - - )} - - {isJetBrains() || ( - - )} -
- { - navigate("/help"); - }} - > - - - { - // navigate("/settings"); - postToIde("openConfigJson", undefined); - }} - text="Configure Continue" - > - - -
+ {HIDE_FOOTER_ON_PAGES.includes(location.pathname) || ( +
+
+
+ +
+ {indexingState.status !== "indexing" && // Would take up too much space together with indexing progress + defaultModel?.provider === "free-trial" && ( + + )} + +
+ { + if (location.pathname === "/help") { + navigate("/"); + } else { + navigate("/help"); + } + }} + > + + + { + // navigate("/settings"); + ideMessenger.post("openConfigJson", undefined); + }} + text="Configure Continue" + > + + +
+ )}
{ {bottomMessage} -
+
); }; diff --git a/gui/src/components/PosthogPageView.ts b/gui/src/components/PosthogPageView.ts new file mode 100644 index 000000000..18eb37e9b --- /dev/null +++ b/gui/src/components/PosthogPageView.ts @@ -0,0 +1,30 @@ +import { useEffect } from "react"; +import { usePostHog } from "posthog-js/react"; +import { useSearchParams, useLocation } from "react-router-dom"; + +/** + * This is copied from here: https://posthog.com/tutorials/single-page-app-pageviews#tracking-pageviews-in-nextjs-app-router + * They don't have a non-NextJS doc for React apps. + */ +export default function PostHogPageView() { + const { pathname } = useLocation(); + const [searchParams] = useSearchParams(); + const posthog = usePostHog(); + + // Track pageviews + useEffect(() => { + if (pathname && posthog) { + let url = window.origin + pathname; + + if (searchParams.toString()) { + url = url + `?${searchParams.toString()}`; + } + + posthog.capture("$pageview", { + $current_url: url, + }); + } + }, [pathname, searchParams, posthog]); + + return null; +} diff --git a/gui/src/components/SafeImg.tsx b/gui/src/components/SafeImg.tsx new file mode 100644 index 000000000..06633bbd6 --- /dev/null +++ b/gui/src/components/SafeImg.tsx @@ -0,0 +1,66 @@ +import React, { useEffect, useState } from "react"; + +interface SafeImg { + src: string; + height?: string; + width?: string; + className?: string; + fallback: React.ReactNode; +} + +const SafeImg: React.FC = ({ + src, + height, + width, + className, + fallback, +}) => { + const [hasError, setHasError] = useState(false); + + const [cachedSrc, setCachedSrc] = useState(null); + + useEffect(() => { + const cachedImage = localStorage.getItem(src); + if (cachedImage) { + console.log("Using cached image"); + setCachedSrc(cachedImage); + } else { + fetch(src) + .then((response) => response.blob()) + .then((blob) => { + const reader = new FileReader(); + reader.onloadend = () => { + localStorage.setItem(src, reader.result as string); + setCachedSrc(reader.result as string); + }; + reader.readAsDataURL(blob); + }) + .catch((error) => { + // console.error("Error fetching image:", error); + }); + } + }, [src]); + + const handleError = () => { + setHasError(true); + setCachedSrc(null); + }; + + return ( + <> + {!hasError ? ( + + ) : ( + fallback + )} + + ); +}; + +export default SafeImg; diff --git a/gui/src/components/archive/EditableDiv.tsx b/gui/src/components/archive/EditableDiv.tsx deleted file mode 100644 index 1ed08ee24..000000000 --- a/gui/src/components/archive/EditableDiv.tsx +++ /dev/null @@ -1,86 +0,0 @@ -import styled from "styled-components"; -import { - defaultBorderRadius, - lightGray, - vscForeground, - vscInputBackground, -} from ".."; -import { getFontSize } from "../../util"; - -const Div = styled.div<{ fontSize?: number }>` - resize: none; - - padding: 8px; - font-size: ${(props) => props.fontSize || getFontSize()}px; - font-family: inherit; - border-radius: ${defaultBorderRadius}; - margin: 8px auto; - height: auto; - width: 100%; - background-color: ${vscInputBackground}; - color: ${vscForeground}; - z-index: 1; - border: 1px solid transparent; - - &:focus { - outline: 1px solid ${lightGray}; - border: 1px solid transparent; - } - - &::placeholder { - color: ${lightGray}80; - } -`; - -const Span = styled.span<{ color?: string }>` - background-color: ${(props) => props.color || "#2cf8"}; - border-radius: ${defaultBorderRadius}; - padding: 2px 4px; -`; - -interface EditableDivProps { - onChange: (e: any) => void; - value?: string; -} - -function EditableDiv(props: EditableDivProps) { - return ( -
{ - const target = e.target as HTMLTextAreaElement; - // Update the height of the textarea to match the content, up to a max of 200px. - target.style.height = "auto"; - target.style.height = `${Math.min( - target.scrollHeight, - 300 - ).toString()}px`; - - // setShowContextDropdown(target.value.endsWith("@")); - props.onChange(e); - }} - onKeyDown={(e) => { - // if (e.key === "Delete") { - // // Delete spans if they are last child - // const selection = window.getSelection(); - // const range = selection?.getRangeAt(0); - // const node = range?.startContainer; - // console.log("Del"); - // if (node?.nodeName === "SPAN") { - // console.log("span"); - // const parent = node.parentNode; - // if (parent?.childNodes.length === 1) { - // parent.removeChild(node); - // } - // } - // } - }} - > - {props.value ? props.value : testing} -
- ); -} - -export default EditableDiv; diff --git a/gui/src/components/dialogs/AddDocsDialog.tsx b/gui/src/components/dialogs/AddDocsDialog.tsx index 2bfc10b61..34d3a836d 100644 --- a/gui/src/components/dialogs/AddDocsDialog.tsx +++ b/gui/src/components/dialogs/AddDocsDialog.tsx @@ -1,32 +1,29 @@ import { SiteIndexingConfig } from "core"; import { usePostHog } from "posthog-js/react"; -import React, { useContext, useLayoutEffect } from "react"; +import React, { useContext, useLayoutEffect, useRef, useState } from "react"; import { useDispatch } from "react-redux"; -import styled from "styled-components"; import { Button, Input } from ".."; -import { SubmenuContextProvidersContext } from "../../App"; +import { IdeMessengerContext } from "../../context/IdeMessenger"; +import { SubmenuContextProvidersContext } from "../../context/SubmenuContextProviders"; import { setShowDialog } from "../../redux/slices/uiStateSlice"; -import { postToIde } from "../../util/ide"; -const GridDiv = styled.div` - display: grid; - grid-template-columns: 1fr 1fr; - grid-gap: 8px; - align-items: center; -`; +const DEFAULT_MAX_DEPTH = 3; function AddDocsDialog() { - const defaultMaxDepth = 3; - const [docsUrl, setDocsUrl] = React.useState(""); - const [docsTitle, setDocsTitle] = React.useState(""); - const [urlValid, setUrlValid] = React.useState(false); - const [maxDepth, setMaxDepth] = React.useState(""); // Change here + const posthog = usePostHog(); const dispatch = useDispatch(); + const ref = useRef(null); + + const [docsUrl, setDocsUrl] = useState(""); + const [docsTitle, setDocsTitle] = useState(""); + const [urlValid, setUrlValid] = useState(false); + const [maxDepth, setMaxDepth] = useState(""); + + const ideMessenger = useContext(IdeMessengerContext); const { addItem } = useContext(SubmenuContextProvidersContext); - const ref = React.useRef(null); - const posthog = usePostHog(); + const isFormValid = docsUrl && docsTitle && urlValid; useLayoutEffect(() => { setTimeout(() => { @@ -36,51 +33,99 @@ function AddDocsDialog() { }, 100); }, [ref]); + function onSubmit(e) { + e.preventDefault(); + + const siteIndexingConfig: SiteIndexingConfig = { + startUrl: docsUrl, + rootUrl: docsUrl, + title: docsTitle, + maxDepth: typeof maxDepth === "string" ? DEFAULT_MAX_DEPTH : maxDepth, + }; + + ideMessenger.post("context/addDocs", siteIndexingConfig); + + setDocsTitle(""); + setDocsUrl(""); + setMaxDepth(""); + + dispatch(setShowDialog(false)); + + addItem("docs", { + id: docsUrl, + title: docsTitle, + description: new URL(docsUrl).hostname, + }); + + posthog.capture("add_docs", { url: docsUrl }); + } + return (
-

Add Docs

- - { - setDocsUrl(e.target.value); - setUrlValid(e.target.validity.valid); - }} - /> - setDocsTitle(e.target.value)} - /> - - +
+

Add Docs

+ +

+ Continue pre-indexes many common documentation sites, but if there's + one you don't see in the dropdown, enter the URL here. +

+ +

+ Continue's indexing engine will crawl the site and generate embeddings + so that you can ask questions. +

+
+ +
+ + + + + + +
+ +
+
); } diff --git a/gui/src/components/dialogs/ConfirmationDialog.tsx b/gui/src/components/dialogs/ConfirmationDialog.tsx index 39aab9658..b3e737805 100644 --- a/gui/src/components/dialogs/ConfirmationDialog.tsx +++ b/gui/src/components/dialogs/ConfirmationDialog.tsx @@ -1,6 +1,6 @@ import { useDispatch } from "react-redux"; import styled from "styled-components"; -import { Button } from ".."; +import { Button, SecondaryButton } from ".."; import { setDialogMessage, setShowDialog, @@ -28,7 +28,7 @@ function ConfirmationDialog(props: ConfirmationDialogProps) {

{props.text}

- + -
- ); -} - -export default SelectContextGroupDialog; diff --git a/gui/src/components/dialogs/SetupLocalOrKey.tsx b/gui/src/components/dialogs/SetupLocalOrKey.tsx new file mode 100644 index 000000000..a0164f74b --- /dev/null +++ b/gui/src/components/dialogs/SetupLocalOrKey.tsx @@ -0,0 +1,87 @@ +import React, { useContext } from "react"; +import { useDispatch } from "react-redux"; +import { useNavigate } from "react-router-dom"; +import styled from "styled-components"; +import { Button, Input } from ".."; +import { IdeMessengerContext } from "../../context/IdeMessenger"; +import { setDefaultModel } from "../../redux/slices/stateSlice"; +import { setShowDialog } from "../../redux/slices/uiStateSlice"; + +const GridDiv = styled.div` + display: grid; + grid-template-columns: 1fr 1fr; + grid-gap: 8px; + align-items: center; +`; + +function SetupLocalOrKeyDialog() { + const navigate = useNavigate(); + const [apiKey, setApiKey] = React.useState(""); + const dispatch = useDispatch(); + + const ideMessenger = useContext(IdeMessengerContext); + + return ( +
+

Set up your own model

+

+ To keep using Continue after your free inputs, you can either use your + own API key, or use a local LLM. To read more about the options, see our{" "} + + ideMessenger.request( + "openUrl", + "https://docs.continue.dev/reference/Model%20Providers/freetrial", + ) + } + > + documentation + + . +

+ + setApiKey(e.target.value)} + /> + +
— OR —
+ + + + +
+ ); +} + +export default SetupLocalOrKeyDialog; diff --git a/gui/src/components/dialogs/index.tsx b/gui/src/components/dialogs/index.tsx index 69ae3ab96..50fc3ca07 100644 --- a/gui/src/components/dialogs/index.tsx +++ b/gui/src/components/dialogs/index.tsx @@ -8,7 +8,6 @@ import { vscBackground, vscFocusBorder, vscForeground, - vscInputBackground, } from ".."; const ScreenCover = styled.div` @@ -36,26 +35,7 @@ const Dialog = styled.div` border: 1px solid ${vscFocusBorder}; margin: auto; word-wrap: break-word; - overflow: hidden; -`; - -const TextArea = styled.textarea` - border: 1px solid #ccc; - border-radius: ${defaultBorderRadius}; - padding: 8px; - outline: 1px solid black; - resize: none; - background-color: ${vscInputBackground}; - color: ${vscForeground}; - - &:focus { - outline: 1px solid ${vscForeground}; - } -`; - -const P = styled.p` - color: ${vscForeground}; - margin: 8px auto; + // overflow: hidden; `; const TextDialog = (props: { diff --git a/gui/src/components/gui/StepContainer.tsx b/gui/src/components/gui/StepContainer.tsx index e45f162a8..a93d377e1 100644 --- a/gui/src/components/gui/StepContainer.tsx +++ b/gui/src/components/gui/StepContainer.tsx @@ -6,7 +6,7 @@ import { } from "@heroicons/react/24/outline"; import { ChatHistoryItem } from "core"; import { stripImages } from "core/llm/countTokens"; -import { useEffect, useState } from "react"; +import { useContext, useEffect, useState } from "react"; import { useSelector } from "react-redux"; import styled from "styled-components"; import { @@ -15,9 +15,10 @@ import { vscBackground, vscInputBackground, } from ".."; +import { IdeMessengerContext } from "../../context/IdeMessenger"; +import useUIConfig from "../../hooks/useUIConfig"; import { RootState } from "../../redux/store"; import { getFontSize } from "../../util"; -import { postToIde } from "../../util/ide"; import HeaderButtonWithText from "../HeaderButtonWithText"; import { CopyButton } from "../markdown/CopyButton"; import StyledMarkdownPreview from "../markdown/StyledMarkdownPreview"; @@ -67,16 +68,19 @@ function StepContainer(props: StepContainerProps) { const [isHovered, setIsHovered] = useState(false); const isUserInput = props.item.message.role === "user"; const active = useSelector((store: RootState) => store.state.active); + const ideMessenger = useContext(IdeMessengerContext); const [feedback, setFeedback] = useState(undefined); + const sessionId = useSelector((store: RootState) => store.state.sessionId); + const sendFeedback = (feedback: boolean) => { setFeedback(feedback); if (props.item.promptLogs?.length) { for (const promptLog of props.item.promptLogs) { - postToIde("devdata/log", { + ideMessenger.post("devdata/log", { tableName: "chat", - data: { ...promptLog, feedback }, + data: { ...promptLog, feedback, sessionId }, }); } } @@ -84,6 +88,8 @@ function StepContainer(props: StepContainerProps) { const [truncatedEarly, setTruncatedEarly] = useState(false); + const uiConfig = useUIConfig(); + useEffect(() => { if (!active) { const content = stripImages(props.item.message.content).trim(); @@ -118,10 +124,19 @@ function StepContainer(props: StepContainerProps) { isUserInput={isUserInput} fontSize={getFontSize()} > - + {uiConfig?.displayRawMarkdown ? ( +
+              {stripImages(props.item.message.content)}
+            
+ ) : ( + + )}
{(isHovered || typeof feedback !== "undefined") && !active && ( diff --git a/gui/src/components/index.ts b/gui/src/components/index.tsx similarity index 85% rename from gui/src/components/index.ts rename to gui/src/components/index.tsx index fae690909..fad5f7849 100644 --- a/gui/src/components/index.ts +++ b/gui/src/components/index.tsx @@ -1,7 +1,6 @@ import { Tooltip } from "react-tooltip"; import styled, { keyframes } from "styled-components"; -import { getFontSize } from "../util"; -import { isJetBrains } from "../util/ide"; +import { getFontSize, isJetBrains } from "../util"; export const VSC_INPUT_BACKGROUND_VAR = "--vscode-input-background"; export const VSC_BACKGROUND_VAR = "--vscode-sideBar-background"; @@ -139,20 +138,61 @@ export const Button = styled.button` } `; -export const StyledTooltip = styled(Tooltip)` - font-size: 12px; - background-color: ${vscEditorBackground}; - color: ${vscForeground}; +export const SecondaryButton = styled.button` + padding: 10px 12px; + margin: 8px 0; border-radius: ${defaultBorderRadius}; - box-shadow: 0 0 1px 0 ${vscForeground}; - padding: 2px; - padding-left: 4px; - padding-right: 4px; - z-index: 1000; - max-width: 80vw; + border: 1px solid ${vscInputBorder}; + color: ${vscForeground}; + background-color: ${vscBackground}; + + &:disabled { + color: gray; + } + + &:hover:enabled { + cursor: pointer; + background-color: ${vscInputBackground}; + } +`; + +export const CustomScrollbarDiv = styled.div` + scrollbar-base-color: transparent; + scrollbar-width: thin; + background-color: ${vscBackground}; + + & * { + ::-webkit-scrollbar { + width: 4px; + } + + ::-webkit-scrollbar:horizontal { + height: 4px; + } + + ::-webkit-scrollbar-thumb { + border-radius: 2px; + } + } `; +const TooltipStyles = { + fontSize: `${getFontSize() - 2}px`, + backgroundColor: vscInputBackground, + boxShadow: `0px 0px 2px 1px ${vscBadgeBackground}`, + color: vscForeground, + padding: "2px 6px", + zIndex: 1000, + maxWidth: "80vw", + textAlign: "center", + overflow: "hidden", +}; + +export function StyledTooltip(props) { + return ; +} + export const TextArea = styled.textarea` padding: 8px; font-family: inherit; @@ -282,18 +322,6 @@ export const MainContainerWithBorder = styled.div<{ borderWidth?: string }>` background-color: white; `; -export const MainTextInput = styled.textarea` - padding: 8px; - font-size: 16px; - border-radius: ${defaultBorderRadius}; - border: 1px solid #ccc; - margin: 8px 8px; - background-color: ${vscBackground}; - color: ${vscForeground}; - outline: 1px solid orange; - resize: none; -`; - export const appear = keyframes` from { opacity: 0; @@ -305,9 +333,14 @@ export const appear = keyframes` } `; -export const HeaderButton = styled.button<{ inverted: boolean | undefined }>` - background-color: ${({ inverted }) => - inverted ? vscForeground : "transparent"}; +export const HeaderButton = styled.button<{ + inverted: boolean | undefined; + backgroundColor?: string; + hoverBackgroundColor?: string; +}>` + background-color: ${({ inverted, backgroundColor }) => { + return backgroundColor ?? (inverted ? vscForeground : "transparent"); + }}; color: ${({ inverted }) => (inverted ? vscBackground : vscForeground)}; border: none; @@ -320,9 +353,9 @@ export const HeaderButton = styled.button<{ inverted: boolean | undefined }>` } &:hover { - background-color: ${({ inverted }) => + background-color: ${({ inverted, hoverBackgroundColor }) => typeof inverted === "undefined" || inverted - ? vscInputBackground + ? hoverBackgroundColor ?? vscInputBackground : "transparent"}; } display: flex; diff --git a/gui/src/components/loaders/BlinkingDot.tsx b/gui/src/components/loaders/BlinkingDot.tsx new file mode 100644 index 000000000..db8feb5a5 --- /dev/null +++ b/gui/src/components/loaders/BlinkingDot.tsx @@ -0,0 +1,34 @@ +import styled, { css, keyframes } from "styled-components"; + +const DEFAULT_DIAMETER = 6; + +const blink = keyframes` + 0%, 100% { + transform: scale(1); + opacity: 1; + } + 50% { + opacity: 0.25; + } +`; + +const blinkAnimation = css` + animation: ${blink} 3s infinite; +`; + +const BlinkingDot = styled.div<{ + color: string; + diameter?: number; + shouldBlink?: boolean; +}>` + background-color: ${(props) => props.color}; + box-shadow: 0px 0px 2px 1px ${(props) => props.color}; + width: ${(props) => props.diameter ?? DEFAULT_DIAMETER}px; + height: ${(props) => props.diameter ?? DEFAULT_DIAMETER}px; + border-radius: 50%; + border: 1px solid rgba(255, 255, 255, 0.75); + margin: 0 2px; + ${(props) => (props.shouldBlink ?? false) && blinkAnimation}; +`; + +export default BlinkingDot; diff --git a/gui/src/components/loaders/IndexingProgressBar.tsx b/gui/src/components/loaders/IndexingProgressBar.tsx index 47086735f..f2e9cb138 100644 --- a/gui/src/components/loaders/IndexingProgressBar.tsx +++ b/gui/src/components/loaders/IndexingProgressBar.tsx @@ -1,24 +1,28 @@ -import { useEffect, useState } from "react"; +import { IndexingProgressUpdate } from "core"; +import { useContext, useEffect, useState } from "react"; import ReactDOM from "react-dom"; +import { useSelector } from "react-redux"; import styled from "styled-components"; import { StyledTooltip, lightGray, vscForeground } from ".."; -import { postToIde } from "../../util/ide"; - -const DIAMETER = 6; -const CircleDiv = styled.div<{ color: string }>` - background-color: ${(props) => props.color}; - box-shadow: 0px 0px 2px 1px ${(props) => props.color}; - width: ${DIAMETER}px; - height: ${DIAMETER}px; - border-radius: ${DIAMETER / 2}px; -`; +import { IdeMessengerContext } from "../../context/IdeMessenger"; +import { RootState } from "../../redux/store"; +import { getFontSize, isJetBrains } from "../../util"; +import StatusDot from "./StatusDot"; + +const STATUS_COLORS = { + DISABLED: lightGray, // light gray + LOADING: "#00B8D9", // ice blue + INDEXING: "#6554C0", // purple + PAUSED: "#FFAB00", // yellow + DONE: "#36B37E", // green + FAILED: "#FF5630", // red +}; const ProgressBarWrapper = styled.div` width: 100px; height: 6px; border-radius: 6px; border: 0.5px solid ${lightGray}; - margin-top: 6px; `; const ProgressBarFill = styled.div<{ completed: number; color?: string }>` @@ -29,106 +33,189 @@ const ProgressBarFill = styled.div<{ completed: number; color?: string }>` width: ${(props) => props.completed}%; `; -const GridDiv = styled.div` - display: grid; - grid-template-rows: 1fr auto; +const FlexDiv = styled.div` + display: flex; align-items: center; - justify-items: center; - margin-left: 8px; + gap: 6px; + overflow: hidden; `; -const P = styled.p` - margin: 0; - margin-top: 2px; - font-size: 11.5px; +const StatusHeading = styled.div` color: ${lightGray}; - text-align: center; + font-size: ${getFontSize() - 2.4}px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; + + @media (max-width: 400px) { + display: none; + } +`; + +const StatusInfo = styled.div` + font-size: ${getFontSize() - 3.6}px; + color: ${lightGray}; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + margin-top: 2px; `; interface ProgressBarProps { - completed: number; - total: number; - currentlyIndexing?: string; + indexingState?: IndexingProgressUpdate; } const IndexingProgressBar = ({ - completed, - total, - currentlyIndexing, + indexingState: indexingStateProp, }: ProgressBarProps) => { - const fillPercentage = Math.min(100, Math.max(0, (completed / total) * 100)); + // If sidebar is opened before extension initiates, define a default indexingState + const defaultIndexingState: IndexingProgressUpdate = { + status: "loading", + progress: 0, + desc: "", + }; + const indexingState = indexingStateProp || defaultIndexingState; + + // If sidebar is opened after extension initializes, retrieve saved states. + let initialized = false; + useEffect(() => { + if (!initialized) { + // Triggers retrieval for possible non-default states set prior to IndexingProgressBar initialization + ideMessenger.post("index/indexingProgressBarInitialized", undefined); + initialized = true; + } + }, []); + + const fillPercentage = Math.min( + 100, + Math.max(0, indexingState.progress * 100), + ); + + const ideMessenger = useContext(IdeMessengerContext); + + const embeddingsProvider = useSelector( + (state: RootState) => state.state.config.embeddingsProvider, + ); const tooltipPortalDiv = document.getElementById("tooltip-portal-div"); - const [expanded, setExpanded] = useState(true); + const [paused, setPaused] = useState(undefined); const [hovered, setHovered] = useState(false); useEffect(() => { - postToIde("index/setPaused", !expanded); - }, [expanded]); + if (paused === undefined) return; + ideMessenger.post("index/setPaused", paused); + }, [paused]); + + function getIndexingErrMsg(msg: string): string { + if (isJetBrains() && embeddingsProvider === "all-MiniLM-L6-v2") { + return "The 'transformers.js' embeddingsProvider is currently unsupported in JetBrains. To enable codebase indexing, you can use any of the other providers described in the docs: https://docs.continue.dev/features/codebase-embeddings#embeddings-providers"; + } + return msg; + } return (
{ - if (completed < total) { - setExpanded((prev) => !prev); + if ( + indexingState.status !== "failed" && + indexingState.progress < 1 && + indexingState.progress >= 0 + ) { + setPaused((prev) => !prev); } else { - postToIde("index/forceReIndex", undefined); + ideMessenger.post("index/forceReIndex", undefined); } }} className="cursor-pointer" > - {completed >= total ? ( - <> - + {indexingState.status === "failed" ? ( + + +
+ Indexing error! Click to retry + {getIndexingErrMsg(indexingState.desc)} +
{tooltipPortalDiv && ReactDOM.createPortal( - - Index up to date. Click to force re-indexing + + {getIndexingErrMsg(indexingState.desc)} , tooltipPortalDiv, )} - - ) : expanded ? ( - <> - setHovered(true)} - onMouseLeave={() => setHovered(false)} - > - - - -

- {hovered - ? "Click to pause" - : `Indexing (${Math.trunc((completed / total) * 100)}%)`} -

-
+
+ ) : indexingState.status === "loading" ? ( + + + Continue is initializing + + ) : indexingState.status === "done" ? ( + + +
+ Index up to date +
{tooltipPortalDiv && ReactDOM.createPortal( - - {currentlyIndexing} + + Index up to date +
+ Click to force re-indexing
, tooltipPortalDiv, )} - - ) : ( - <> - +
+ ) : indexingState.status === "disabled" ? ( + + {tooltipPortalDiv && ReactDOM.createPortal( - - Click to unpause indexing ( - {Math.trunc((completed / total) * 100)}%) + + {indexingState.desc} , tooltipPortalDiv, )} - - )} + + ) : indexingState.status === "paused" || + (paused && indexingState.status === "indexing") ? ( + + { + ideMessenger.post("index/setPaused", false); + }} + > + + Indexing paused ({Math.trunc(indexingState.progress * 100)} + %) + + + ) : indexingState.status === "indexing" ? ( + setHovered(true)} + onMouseLeave={() => setHovered(false)} + onClick={(e) => { + ideMessenger.post("index/setPaused", true); + }} + > + +
+ + + + + + {`${Math.trunc(indexingState.progress * 100)}%`} + + + + {hovered ? "Click to pause" : indexingState.desc} + +
+
+ ) : null}
); }; diff --git a/gui/src/components/loaders/ProgressBar.tsx b/gui/src/components/loaders/ProgressBar.tsx index fef34d01a..5844539f6 100644 --- a/gui/src/components/loaders/ProgressBar.tsx +++ b/gui/src/components/loaders/ProgressBar.tsx @@ -1,5 +1,15 @@ +import ReactDOM from "react-dom"; +import { useDispatch } from "react-redux"; +import { useNavigate } from "react-router-dom"; import styled from "styled-components"; import { StyledTooltip, lightGray, vscForeground } from ".."; +import { + setDialogMessage, + setShowDialog, +} from "../../redux/slices/uiStateSlice"; +import { getFontSize } from "../../util"; +import QuickModelSetup from "../modelSelection/quickSetup/QuickModelSetup"; +import { FREE_TRIAL_LIMIT_REQUESTS } from "../../util/freeTrial"; const ProgressBarWrapper = styled.div` width: 100px; @@ -22,12 +32,13 @@ const GridDiv = styled.div` grid-template-rows: 1fr auto; align-items: center; justify-items: center; + cursor: pointer; `; const P = styled.p` margin: 0; margin-top: 2px; - font-size: 11.5px; + font-size: ${getFontSize() - 2.5}px; color: ${lightGray}; text-align: center; white-space: nowrap; @@ -41,37 +52,54 @@ interface ProgressBarProps { } const ProgressBar = ({ completed, total }: ProgressBarProps) => { + const dispatch = useDispatch(); + const navigate = useNavigate(); const fillPercentage = Math.min(100, Math.max(0, (completed / total) * 100)); + const tooltipPortalDiv = document.getElementById("tooltip-portal-div"); + return ( <> - { + dispatch(setShowDialog(true)); + dispatch( + setDialogMessage( + { + dispatch(setShowDialog(false)); + navigate("/"); + }} + />, + ), + ); + }} > - - - 0.75 - ? completed / total > 0.95 - ? "#f00" - : "#fc0" - : undefined - } - /> - -

- Free Uses: {completed} / {total} -

-
-
- - { - "Continue allows you to use our OpenAI API key for up to 250 inputs. After this, you can either use your own API key, or use a local LLM. Click the progress bar to go to the docs and learn more." - } - + + 0.75 + ? completed / total > 0.9 + ? "#f00" + : "#fc0" + : undefined + } + /> + +

+ Free Uses: {completed} / {total} +

+ + + {tooltipPortalDiv && + ReactDOM.createPortal( + + {`Click to use your own API key or local LLM (required after ${FREE_TRIAL_LIMIT_REQUESTS} inputs)`} + , + tooltipPortalDiv, + )} ); }; diff --git a/gui/src/components/loaders/StatusDot.tsx b/gui/src/components/loaders/StatusDot.tsx new file mode 100644 index 000000000..24c8cdc3d --- /dev/null +++ b/gui/src/components/loaders/StatusDot.tsx @@ -0,0 +1,34 @@ +import styled, { css, keyframes } from "styled-components"; + +const DEFAULT_DIAMETER = 6; + +const blink = keyframes` + 0%, 100% { + transform: scale(1); + opacity: 1; + } + 50% { + opacity: 0.25; + } +`; + +const blinkAnimation = css` + animation: ${blink} 3s infinite; +`; + +const StatusDot = styled.div<{ + color: string; + diameter?: number; + shouldBlink?: boolean; +}>` + background-color: ${(props) => props.color}; + box-shadow: 0px 0px 2px 1px ${(props) => props.color}; + width: ${(props) => props.diameter ?? DEFAULT_DIAMETER}px; + height: ${(props) => props.diameter ?? DEFAULT_DIAMETER}px; + border-radius: 50%; + border: 1px solid rgba(255, 255, 255, 0.75); + margin: 0 2px; + ${(props) => (props.shouldBlink ?? false) && blinkAnimation}; +`; + +export default StatusDot; diff --git a/gui/src/components/mainInput/ContextItemsPeek.tsx b/gui/src/components/mainInput/ContextItemsPeek.tsx index d7dba9f9d..48a3422e1 100644 --- a/gui/src/components/mainInput/ContextItemsPeek.tsx +++ b/gui/src/components/mainInput/ContextItemsPeek.tsx @@ -1,7 +1,7 @@ import { ChevronDownIcon, ChevronUpIcon } from "@heroicons/react/24/outline"; import { ContextItemWithId } from "core"; import { contextItemToRangeInFileWithContents } from "core/commands/util"; -import React from "react"; +import React, { useContext } from "react"; import styled from "styled-components"; import { defaultBorderRadius, @@ -9,7 +9,8 @@ import { vscBackground, vscForeground, } from ".."; -import { WebviewIde } from "../../util/webviewIde"; +import { IdeMessengerContext } from "../../context/IdeMessenger"; +import { getFontSize } from "../../util"; import FileIcon from "../FileIcon"; const ContextItemDiv = styled.div` @@ -34,6 +35,8 @@ interface ContextItemsPeekProps { } const ContextItemsPeek = (props: ContextItemsPeekProps) => { + const ideMessenger = useContext(IdeMessengerContext); + const [open, setOpen] = React.useState(false); if (!props.contextItems || props.contextItems.length === 0) { @@ -49,16 +52,16 @@ const ContextItemsPeek = (props: ContextItemsPeekProps) => { ) { if (contextItem.name.includes(" (") && contextItem.name.endsWith(")")) { const rif = contextItemToRangeInFileWithContents(contextItem); - new WebviewIde().showLines( + ideMessenger.ide.showLines( rif.filepath, rif.range.start.line, rif.range.end.line, ); } else { - new WebviewIde().openFile(contextItem.description); + ideMessenger.ide.openFile(contextItem.description); } } else { - new WebviewIde().showVirtualFile(contextItem.name, contextItem.content); + ideMessenger.ide.showVirtualFile(contextItem.name, contextItem.content); } } @@ -77,7 +80,7 @@ const ContextItemsPeek = (props: ContextItemsPeekProps) => { display: "flex", justifyContent: "left", alignItems: "center", - fontSize: "11px", + fontSize: `${getFontSize() - 3}px`, }} onClick={() => setOpen((prev) => !prev)} > diff --git a/gui/src/components/mainInput/ContinueButton.tsx b/gui/src/components/mainInput/ContinueButton.tsx index b550aec48..23776bbcf 100644 --- a/gui/src/components/mainInput/ContinueButton.tsx +++ b/gui/src/components/mainInput/ContinueButton.tsx @@ -1,7 +1,7 @@ import { PlayIcon, StopIcon } from "@heroicons/react/24/outline"; -import { useEffect, useState } from "react"; import styled from "styled-components"; import { Button } from ".."; +import { getFontSize } from "../../util"; const StyledButton = styled(Button)<{ color?: string | null; @@ -43,30 +43,11 @@ function ContinueButton(props: { disabled: boolean; showStop: boolean; }) { - const [buttonColor, setButtonColor] = useState( - localStorage.getItem("continueButtonColor") - ); - - useEffect(() => { - const handleStorageChange = (e: any) => { - if (e.key === "continueButtonColor") { - // Update your state or do whatever you need to do here - setButtonColor(e.newValue); - } - }; - - window.addEventListener("storage", handleStorageChange); - - // Don't forget to cleanup the event listener - return () => window.removeEventListener("storage", handleStorageChange); - }, []); - return (
{ height="1.2em" /> )} + {item.subActions?.map((subAction) => { + const Icon = ICONS_FOR_DROPDOWN[subAction.icon]; + return ( + { + subAction.action(item); + e.stopPropagation(); + e.preventDefault(); + props.onClose(); + }} + text={undefined} + > + + + ); + })} @@ -369,6 +440,7 @@ const MentionList = forwardRef((props: MentionListProps, ref) => { ) : ( No results )} + {/* */} )} diff --git a/gui/src/components/mainInput/TipTapEditor.tsx b/gui/src/components/mainInput/TipTapEditor.tsx index 312023037..4b53fb00b 100644 --- a/gui/src/components/mainInput/TipTapEditor.tsx +++ b/gui/src/components/mainInput/TipTapEditor.tsx @@ -12,7 +12,7 @@ import { RangeInFile, } from "core"; import { modelSupportsImages } from "core/llm/autodetect"; -import { getBasename } from "core/util"; +import { getBasename, getRelativePath } from "core/util"; import { useContext, useEffect, useRef, useState } from "react"; import { useDispatch, useSelector } from "react-redux"; import styled from "styled-components"; @@ -25,22 +25,33 @@ import { vscInputBorder, vscInputBorderFocus, } from ".."; -import { SubmenuContextProvidersContext } from "../../App"; +import { IdeMessengerContext } from "../../context/IdeMessenger"; +import { SubmenuContextProvidersContext } from "../../context/SubmenuContextProviders"; import useHistory from "../../hooks/useHistory"; +import { useInputHistory } from "../../hooks/useInputHistory"; import useUpdatingRef from "../../hooks/useUpdatingRef"; import { useWebviewListener } from "../../hooks/useWebviewListener"; import { selectUseActiveFile } from "../../redux/selectors"; import { defaultModelSelector } from "../../redux/selectors/modelSelectors"; -import { setEditingContextItemAtIndex } from "../../redux/slices/stateSlice"; +import { + consumeMainEditorContent, + setEditingContextItemAtIndex, +} from "../../redux/slices/stateSlice"; import { RootState } from "../../redux/store"; -import { isMetaEquivalentKeyPressed } from "../../util"; -import { isJetBrains, postToIde } from "../../util/ide"; +import { + getFontSize, + isJetBrains, + isMetaEquivalentKeyPressed, +} from "../../util"; import CodeBlockExtension from "./CodeBlockExtension"; import { SlashCommand } from "./CommandsExtension"; import InputToolbar from "./InputToolbar"; import { Mention } from "./MentionExtension"; import "./TipTapEditor.css"; -import { getCommandSuggestion, getMentionSuggestion } from "./getSuggestion"; +import { + getContextProviderDropdownOptions, + getSlashCommandDropdownOptions, +} from "./getSuggestion"; import { ComboBoxItem } from "./types"; const InputBoxDiv = styled.div` @@ -58,7 +69,7 @@ const InputBoxDiv = styled.div` z-index: 1; border: 0.5px solid ${vscInputBorder}; outline: none; - font-size: 14px; + font-size: ${getFontSize()}px; &:focus { outline: none; @@ -132,12 +143,12 @@ interface TipTapEditorProps { function TipTapEditor(props: TipTapEditorProps) { const dispatch = useDispatch(); + const ideMessenger = useContext(IdeMessengerContext); const { getSubmenuContextItems } = useContext(SubmenuContextProvidersContext); const historyLength = useSelector( (store: RootState) => store.state.history.length, ); - const useActiveFile = useSelector(selectUseActiveFile); const [inputFocused, setInputFocused] = useState(false); @@ -193,6 +204,9 @@ function TipTapEditor(props: TipTapEditorProps) { props.availableSlashCommands, ); + const active = useSelector((state: RootState) => state.state.active); + const activeRef = useUpdatingRef(active); + async function handleImageFile( file: File, ): Promise<[HTMLImageElement, string] | undefined> { @@ -226,7 +240,7 @@ function TipTapEditor(props: TipTapEditorProps) { }; }); } else { - postToIde("errorPopup", { + ideMessenger.post("errorPopup", { message: "Images need to be in jpg or png format and less than 10MB in size.", }); @@ -234,6 +248,12 @@ function TipTapEditor(props: TipTapEditorProps) { return undefined; } + const mainEditorContent = useSelector( + (store: RootState) => store.state.mainEditorContent, + ); + + const { prevRef, nextRef, addRef } = useInputHistory(); + const editor: Editor = useEditor({ extensions: [ Document, @@ -267,6 +287,21 @@ function TipTapEditor(props: TipTapEditorProps) { }); return true; }, + "Alt-Enter": () => { + onEnterRef.current({ + useCodebase: false, + noContext: useActiveFile, + }); + return true; + }, + "Cmd-Backspace": () => { + // If you press cmd+backspace wanting to cancel, + // but are inside of a text box, it shouldn't + // delete the text + if (activeRef.current) { + return true; + } + }, "Shift-Enter": () => this.editor.commands.first(({ commands }) => [ () => commands.newlineInCode(), @@ -274,6 +309,41 @@ function TipTapEditor(props: TipTapEditorProps) { () => commands.liftEmptyBlock(), () => commands.splitBlock(), ]), + + ArrowUp: () => { + if (this.editor.state.selection.anchor > 1) { + return false; + } + + const previousInput = prevRef.current( + this.editor.state.toJSON().doc, + ); + if (previousInput) { + this.editor.commands.setContent(previousInput); + setTimeout(() => { + this.editor.commands.blur(); + this.editor.commands.focus("start"); + }, 0); + return true; + } + }, + ArrowDown: () => { + if ( + this.editor.state.selection.anchor < + this.editor.state.doc.content.size - 1 + ) { + return false; + } + const nextInput = nextRef.current(); + if (nextInput) { + this.editor.commands.setContent(nextInput); + setTimeout(() => { + this.editor.commands.blur(); + this.editor.commands.focus("end"); + }, 0); + return true; + } + }, }; }, }).configure({ @@ -286,13 +356,14 @@ function TipTapEditor(props: TipTapEditorProps) { HTMLAttributes: { class: "mention", }, - suggestion: getMentionSuggestion( + suggestion: getContextProviderDropdownOptions( availableContextProvidersRef, getSubmenuContextItemsRef, enterSubmenu, onClose, onOpen, inSubmenuRef, + ideMessenger, ), renderHTML: (props) => { return `@${props.node.attrs.label || props.node.attrs.id}`; @@ -302,10 +373,11 @@ function TipTapEditor(props: TipTapEditorProps) { HTMLAttributes: { class: "mention", }, - suggestion: getCommandSuggestion( + suggestion: getSlashCommandDropdownOptions( availableSlashCommandsRef, onClose, onOpen, + ideMessenger, ), renderText: (props) => { return props.node.attrs.label; @@ -316,10 +388,10 @@ function TipTapEditor(props: TipTapEditorProps) { editorProps: { attributes: { class: "outline-none -mt-1 overflow-hidden", - style: "font-size: 14px;", + style: `font-size: ${getFontSize()}px;`, }, }, - content: props.editorState || "", + content: props.editorState || mainEditorContent || "", onUpdate: ({ editor, transaction }) => { // If /edit is typed and no context items are selected, select the first @@ -358,6 +430,46 @@ function TipTapEditor(props: TipTapEditorProps) { }, }); + const editorFocusedRef = useUpdatingRef(editor?.isFocused, [editor]); + + useEffect(() => { + if (isJetBrains()) { + // This is only for VS Code .ipynb files + return; + } + + const handleKeyDown = async (event: KeyboardEvent) => { + if (!editor || !editorFocusedRef.current) return; + + if (event.metaKey && event.key === "x") { + document.execCommand("cut"); + event.stopPropagation(); + event.preventDefault(); + } else if (event.metaKey && event.key === "v") { + document.execCommand("paste"); + event.stopPropagation(); + event.preventDefault(); + } else if (event.metaKey && event.key === "c") { + document.execCommand("copy"); + event.stopPropagation(); + event.preventDefault(); + } + }; + + document.addEventListener("keydown", handleKeyDown); + + return () => { + document.removeEventListener("keydown", handleKeyDown); + }; + }, [editor, editorFocusedRef]); + + useEffect(() => { + if (mainEditorContent && editor) { + editor.commands.setContent(mainEditorContent); + dispatch(consumeMainEditorContent()); + } + }, [mainEditorContent, editor]); + const onEnterRef = useUpdatingRef( (modifiers: InputModifiers) => { const json = editor.getJSON(); @@ -370,6 +482,8 @@ function TipTapEditor(props: TipTapEditorProps) { props.onEnter(json, modifiers); if (props.isMainInput) { + const content = editor.state.toJSON().doc; + addRef.current(content); editor.commands.clearContent(true); } }, @@ -390,7 +504,7 @@ function TipTapEditor(props: TipTapEditorProps) { setIgnoreHighlightedCode(false); }, 100); } else if (event.key === "Escape") { - postToIde("focusEditor", undefined); + ideMessenger.post("focusEditor", undefined); } }; @@ -402,10 +516,9 @@ function TipTapEditor(props: TipTapEditorProps) { }, []); // Re-focus main input after done generating - const active = useSelector((state: RootState) => state.state.active); useEffect(() => { if (editor && !active && props.isMainInput && document.hasFocus()) { - editor.commands.focus(); + editor.commands.focus(undefined, { scrollIntoView: false }); } }, [props.isMainInput, active, editor]); @@ -480,12 +593,18 @@ function TipTapEditor(props: TipTapEditorProps) { const rif: RangeInFile & { contents: string } = data.rangeInFileWithContents; const basename = getBasename(rif.filepath); + const relativePath = getRelativePath( + rif.filepath, + await ideMessenger.ide.getWorkspaceDirs(), + ); + const rangeStr = `(${rif.range.start.line + 1}-${ + rif.range.end.line + 1 + })`; const item: ContextItemWithId = { content: rif.contents, - name: `${basename} (${rif.range.start.line + 1}-${ - rif.range.end.line + 1 - })`, - description: rif.filepath, + name: `${basename} ${rangeStr}`, + // Description is passed on to the LLM to give more context on file path + description: `${relativePath} ${rangeStr}`, id: { providerTitle: "code", itemId: rif.filepath, @@ -509,6 +628,16 @@ function TipTapEditor(props: TipTapEditorProps) { }, }) .run(); + + if (data.prompt) { + editor.commands.focus("end"); + editor.commands.insertContent(data.prompt); + } + + if (data.shouldRun) { + onEnterRef.current({ useCodebase: false, noContext: true }); + } + setTimeout(() => { editor.commands.blur(); editor.commands.focus("end"); @@ -522,6 +651,7 @@ function TipTapEditor(props: TipTapEditorProps) { historyLength, ignoreHighlightedCode, props.isMainInput, + onEnterRef.current, ], ); @@ -560,8 +690,20 @@ function TipTapEditor(props: TipTapEditorProps) { }; }, []); + const [optionKeyHeld, setOptionKeyHeld] = useState(false); + return ( { + if (e.key === "Alt") { + setOptionKeyHeld(true); + } + }} + onKeyUp={(e) => { + if (e.key === "Alt") { + setOptionKeyHeld(false); + } + }} className="cursor-text" onClick={() => { editor && editor.commands.focus(); @@ -583,7 +725,13 @@ function TipTapEditor(props: TipTapEditorProps) { setShowDragOverMsg(true); }} onDrop={(event) => { - if (!modelSupportsImages(defaultModel.provider, defaultModel.model)) { + if ( + !modelSupportsImages( + defaultModel.provider, + defaultModel.model, + defaultModel.title, + ) + ) { return; } setShowDragOverMsg(false); @@ -614,6 +762,7 @@ function TipTapEditor(props: TipTapEditorProps) { }} />